From 943d5a706a99c60abee1672c2986f889fd00a4a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 28 Aug 2020 17:11:27 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes ProDOS.FX/ProDOS.S.XDOS.A.txt | 30 +++++++------ ProDOS.FX/ProDOS.S.XDOS.B.txt | 81 ++++++++++++++++------------------ ProDOS.FX/ProDOS.S.XDOS.C.txt | 2 +- ProDOS.FX/ProDOS.S.XDOS.E.txt | 7 +-- ProDOS.FX/ProDOS.S.txt | 5 ++- SYS/KM.RAMWORKS.S.txt | 33 +++++++------- 8 files changed, 74 insertions(+), 84 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 9807a00168ac8b38d95c0d9ef53901816b6dc99b..c388778435a071ebc360269b01ca045131d43fac 100644 GIT binary patch delta 20671 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 aaUbyj@euI{@h9Rh#AAewUN8Pl=lvi291h_C delta 20895 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�U*~p&?dih!Yy(g@y#7!5}mwZf-F44fEQlriMkE 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 VF5({IKH>r5A;L~?6d%!<{|{o+M-Tu2 diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 49400c54a4845f76e31495e4dbec755931b1930e..950969b282ebb16bfc5890aecd82f53b44decdff 100644 GIT binary patch delta 21012 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%0AA^2%^}Wo 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 Ya{BMIDgb_!@EZufK_Aho;ITFTA3Ny1vH$=8 delta 21211 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 diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index 996c4bcf..67e07791 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -520,12 +520,15 @@ fndfcbuf lda FCBs+FCB.BUFID,y get page address of file buffer. inx inx index block always 2 pages after data stx zpt+1 + lda FCBs+FCB.DEVID,y also set up device # sta devnum lda bufaddrl sta datptr index and data buffers always on sta zpt page boundaries. + lda #VCB0 + fndfvol tax search for associated vcb lda VCBs+VCB.DEV,x cmp FCBs+FCB.DEVID,y is this vcb the same device? @@ -603,33 +606,32 @@ H3459 phx save index to last item on list clc onlinerr rts *-------------------------------------- -online1 jsr fnddvcb see if it has already been logged in. +online1 jsr XDOS.FindVCBForDevNum see if it has already been logged in. bcs olinerr1 branch if vcb is full. lda #$02 ldx #$00 read in root (volume) directory jsr XDOS.ReadGBufAX read ROOT VOL into general purpose buffer. - ldx vcbptr index to the vcb entry. bcc volfound branch if read was ok. - tay error value. - lda VCBs+VCB.OFCNT,x don't take the vcb offline if - bne rtrnerr there are active files present. + ldx vcbptr + ldy VCBs+VCB.OFCNT,x don't take the vcb offline if + bne olinerr1 there are active files present. - sta VCBs,x now take the volume offline - sta VCBs+VCB.DEV,x + stz VCBs,x now take the volume offline + stz VCBs+VCB.DEV,x -rtrnerr tya error value. - bcs olinerr1 branch if unable to read. + bra olinerr1 branch if unable to read. volfound .DO LOWERCASE=1 lda gbuf+$23 sta h_entln lda gbuf+$24 sta h_maxent - jsr XDOS.UnpackGBuf + jsr XDOS.UnpackGBuf X trashed.... .FIN - + + ldx vcbptr lda VCBs,x has it been logged in before? beq H349E if not. @@ -1072,7 +1074,7 @@ ripple lda gbuf+4 test for 'root' directory because ldx gbuf+40 .DO LOWERCASE=1 - jsr XDOS.ReadGBufAX Dir + jsr XDOS.ReadGBufAX no need to pak/unpak....will disturb zpt .ELSE jsr XDOS.ReadGBufAX read it .FIN @@ -1093,7 +1095,7 @@ H3732 lda p8date,x bpl H3732 H373B .DO LOWERCASE=1 - jsr XDOS.WriteGBuf Dir + jsr XDOS.WriteGBuf .ELSE jsr XDOS.WriteGBuf write updated entry back to disk. .FIN @@ -1111,7 +1113,7 @@ H373B .DO LOWERCASE=1 beq ripple they are the same, continue to root dir. H3751 .DO LOWERCASE=1 - jsr XDOS.ReadGBufAX Dir + jsr XDOS.ReadGBufAX .ELSE jsr XDOS.ReadGBufAX .FIN diff --git a/ProDOS.FX/ProDOS.S.XDOS.B.txt b/ProDOS.FX/ProDOS.S.XDOS.B.txt index 02bbdb3a..b7503fcb 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.B.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.B.txt @@ -363,6 +363,8 @@ findvol lda #$00 L396F sty vnptr and save. sta devnum zero out dev# until vcb located. + lda #VCB0 + L3975 pha acc now used as vcb lookup index. tax index pointer to x. lda VCBs,x get vcb volume name length. @@ -373,6 +375,7 @@ L397C ldy vnptr restore pointer to requested vol name. clc adc #VCB bcc L3975 branch if more vcb's to check + bcs L39D4 otherwise go look for unlogged volumes. L3987 sta namcnt save length of vol name to be compared. @@ -454,16 +457,18 @@ L39F1 ldx DEVCNT now remove the device from the list L39F4 cmp loklst,x of prospective devices. beq L39FE branch if match. + dex look until found. bpl L39F4 always taken (usually) unless bmi L39ED if dev was removed from devlst (/RAM). L39FE sta devnum preserve device to be checked next. stz loklst,x mark this one as tested. - jsr fnddvcb find vcb that claims this dev (if any). + + jsr XDOS.FindVCBForDevNum find vcb that claims this dev (if any). bcs L3A29 branch if vcb full. - ldx vcbptr did fndvcb find it or return free vcb? - lda VCBs,x + + lda VCBs,x did we find it or return free vcb? beq L3A16 if free vcb. lda VCBs+VCB.OFCNT,x is this volume active? @@ -496,51 +501,54 @@ L3A2D lda DEVLST,x active device list. ldx DEVCNT rts *-------------------------------------- -fnddvcb lda #$00 look for vcb with this device# +XDOS.FindVCBForDevNum + lda #VCB0 look for vcb for devnum ldy #$FF -L3A40 tax new index to next vcb +.1 tax new index to next vcb lda VCBs+VCB.DEV,x check all devnums cmp devnum is this the vcb? - bne L3A4E if not + beq .7 - stx vcbptr - clc indicates found - rts - -L3A4E lda VCBs,x is this a free vcb? - bne L3A57 if not + lda VCBs,x is this a free vcb? + bne .3 if not iny - stx vcbptr + bne .3 already found a free one + + stx vcbptr save first free VCB -L3A57 txa +.3 txa clc inc index to next vcb adc #VCB - bcc L3A40 + bcc .1 + + ldx vcbptr get found free if any tya any free vcb's available? - bpl L3A79 yes + bpl .8 yes, exit withX = vcbptr - lda #$00 look for an entry to kick out + lda #VCB0 look for an entry to kick out -L3A62 tax +.4 tax lda VCBs+VCB.OFCNT,x any open files? - beq L3A70 no, kick this one out. + beq .5 no, kick this one out. txa next vcb clc adc #VCB - bcc L3A62 + bcc .4 lda #MLI.E.VCBFULL all vcb entries have open files * sec rts -L3A70 stx vcbptr save entry index. - stz VCBs,x free this entry +.5 stz VCBs,x free this entry stz VCBs+VCB.DEV,x -L3A79 clc no error. + +.7 stx vcbptr save entry index. + +.8 clc no error. rts *-------------------------------------- XDOS.CheckVolName @@ -579,12 +587,12 @@ logvcb ldx vcbptr previously logged in volume? jsr cmpvcb does vcb match vol read? bcc XDOS.CheckVolName.RTS yes, do not disturb. -logvcb1 ldy #VCB-1 zero out vcb entry +logvcb1 ldy #VCB zero out vcb entry L3AB2 stz VCBs,x inx dey - bpl L3AB2 + bne L3AB2 lda gbuf pointer to previous dir block ora gbuf+1 must be null @@ -602,7 +610,8 @@ L3AB2 stz VCBs,x and #$0F strip root marker tay pha - ora vcbptr +* clc + adc vcbptr tax L3ACE lda gbuf+4,y @@ -617,21 +626,6 @@ L3ACE lda gbuf+4,y lda devnum last device used. sta VCBs+VCB.DEV,x save device # and -* lda bloknml save address of root directory. -* sta VCBs+VCB.ROOT,x -* lda bloknml+1 -* sta VCBs+VCB.ROOT+1,x - -* lda gbuf+39 save address of the 1st bitmap. -* sta VCBs+VCB.BMAP,x -* lda gbuf+40 -* sta VCBs+VCB.BMAP+1,x - -* lda gbuf+41 total # of blocks on this unit. -* sta VCBs+VCB.TBLK,x -* lda gbuf+42 -* sta VCBs+VCB.TBLK+1,x - ldy #0 .1 lda gbuf+39,y @@ -655,7 +649,8 @@ cmpvcb lda gbuf+4 with name in directory. bne L3B1E if not the same. tay - ora xvcbptr + clc + adc xvcbptr tax L3B18 lda gbuf+4,y @@ -673,7 +668,7 @@ L3B1E sec anticipate different names. L3B26 ldx xvcbptr offset to start of vcb (rev note #23) rts *-------------------------------------- -tstdupvol lda #$00 check for other logged in volumes with the same name. +tstdupvol lda #VCB0 check for other logged in volumes with the same name. L3B2C tax jsr cmpvcb diff --git a/ProDOS.FX/ProDOS.S.XDOS.C.txt b/ProDOS.FX/ProDOS.S.XDOS.C.txt index 77951063..dedc5a69 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.C.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.C.txt @@ -396,7 +396,7 @@ XDOS.Pack.Init lda #4 sta zpt+1 ldx h_maxent - beq * + beq * DEBUG : should never happends rts *-------------------------------------- XDOS.Pack.Next lda h_entln diff --git a/ProDOS.FX/ProDOS.S.XDOS.E.txt b/ProDOS.FX/ProDOS.S.XDOS.E.txt index 62fb3c08..9895b806 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.E.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.E.txt @@ -49,14 +49,9 @@ close2 ldy fcbptr sta FCBs,y free fcb too lda FCBs+FCB.DEVID,y sta devnum go look for associated vcb - jsr fnddvcb + jsr XDOS.FindVCBForDevNum get vcb pointer. - ldx vcbptr get vcb pointer. dec VCBs+VCB.OFCNT,x indicate one less file open. -* bne L46B4 branch if that wasn't the last... - -* clc strip 'files open' bit -* ror VCBs+VCB.OF,x L46B4 clc rts diff --git a/ProDOS.FX/ProDOS.S.txt b/ProDOS.FX/ProDOS.S.txt index c4609f96..175e63a1 100644 --- a/ProDOS.FX/ProDOS.S.txt +++ b/ProDOS.FX/ProDOS.S.txt @@ -162,6 +162,8 @@ FCB.NLMASK .EQ 31 FCB .EQ 32 *-------------------------------------- VCBs .EQ $D900 +* 6 free bytes +VCB0 .EQ 06 range $D906-$DA00 VCB.DEV .EQ 16 VCB.OFCNT .EQ 17 VCB.BMAP .EQ 18 2 bytes @@ -169,8 +171,7 @@ VCB.TBLK .EQ 20 2 bytes VCB.FBLK .EQ 22 2 bytes VCB.BMAPIDX .EQ 24 * -*VCB .EQ 25 -VCB .EQ 32 +VCB .EQ 25 *-------------------------------------- bmbuf .EQ $DA00 512 byte bitmap buffer gbuf .EQ $DC00 general purpose 512 byte block buffer diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index f31766ab..01fbbbcb 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -404,16 +404,21 @@ RWDRV.START cld ProDOS will check that byte!!! ldy DRV.COMMAND 0 = Status ? beq RMDRV.CMDSTATUS cpy #3 - beq RWDRV.EXITOK 3 = Format : nothing to do, exit with no error - bcs RWDRV.IOERR > 3 = Invalid OP, IO error + beq RWDRV.EXITOK 3 = Format : nothing to do, exit with no error +* bcs RWDRV.IOERR > 3 = Invalid OP, IO error + +RWDRV.IOERR lda #MLI.E.IO Carry already set + rts + ldx DRV.BLKNUM cpx RWDRV.MAXLO+1 lda DRV.BLKNUM+1 sbc RWDRV.MAXHI+1 bcs RWDRV.IOERR DRV.BLKNUM >= RW.DRV.SIZE, IO error -* bit RD80STORE save 80 Store status + bit RD80STORE save 80 Store status + php Disable IRQ as no vector set in RW Banks sei @@ -468,14 +473,14 @@ RWDRV.RW.DST sta ($FF),y dec DRV.A2H bcc RWDRV.RW.LOOP - stz RWBankSelect +RWDRV.EXIT stz RWBankSelect sta CLRREADAUX sta CLRWRITEAUX plp restore IRQ -* bpl RMDRV.CMDSTATUS -* sta SET80STORE + bpl RMDRV.CMDSTATUS + sta SET80STORE RMDRV.CMDSTATUS RWDRV.MAXLO ldx #$FF return device block count in X,Y... @@ -483,9 +488,6 @@ RWDRV.MAXHI ldy #$FF RWDRV.EXITOK lda #0 make A=0 clc rts - -RWDRV.IOERR lda #MLI.E.IO Carry already set - rts *-------------------------------------- * X=Page(0/1 or LC),A=Bank *-------------------------------------- @@ -506,12 +508,10 @@ RWDRV.GOAUX pha save BANK * returns : CC=WRITE, CS=READ sta CLRREADAUX CLRWRITEAUX already triggered by code copy jsr RWDRV.XM.RUN Now execute generated code in main memory - sta SETREADAUX - jsr RWDRVX.RESTORE - sta CLRREADAUX - plp restore IRQ - rts A & carry setup properly by RWDRVX.RESTORE + sta SETREADAUX + jmp RWDRVX.RESTORE + RWDRV.END .EP RWDRV.B.END .LIST ON @@ -575,10 +575,7 @@ RWDRVX.RESTORE ldy #RWDRVX.XM.SIZE Now, restore begining of $300 dey bne .1 - tya setup A=0 and CC for exit with non error - - clc - rts + jmp RWDRV.EXIT *-------------------------------------- * "auXMove" Code, moved from Aux to main $300 * $0200 -> $02FF TMP buffer for 2 steps moving between LCs