From 238dacc59710009bccea7861b3428b07187f5a4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 17 Jul 2020 08:04:08 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes ProDOS.FX/ProDOS.S.XDOS.A.txt | 12 +-- ProDOS.FX/ProDOS.S.XDOS.B.txt | 30 +++---- ProDOS.FX/ProDOS.S.XDOS.C.txt | 4 +- ProDOS.FX/ProDOS.S.XDOS.E.txt | 148 +++++++++++++++++----------------- ProDOS.FX/ProDOS.S.XDOS.F.txt | 7 +- ProDOS.FX/ProDOS.S.txt | 7 +- 7 files changed, 107 insertions(+), 101 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index acaa062eb0585c49059e03ee2d4041cd903a747d..7fe14ed99df427efee825cd0a5382601738ec4ef 100644 GIT binary patch delta 19682 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 Y!UKed2#*jRBMcz$bUVy`G?V!M0Q}nZ82|tP delta 19064 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 diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index 75db26bd..600bf1ee 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -536,7 +536,7 @@ fndfvol tax search for associated vcb nxtfvol txa adjust index to next vcb. clc - adc #$20 + adc #VCB bcc fndfvol loop until volume found. lda #$0A open file has no volume so @@ -611,24 +611,24 @@ online1 jsr fnddvcb see if it has already been logged in. ldx #$00 read in root (volume) directory lda #$02 - jsr XDOS.ReadGBufAX read it into general purpose buffer. + jsr XDOS.ReadGBufAX read it 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 + lda VCBs+VCB.OFCNT,x don't take the vcb offline if bne rtrnerr there are active files present. - sta VCBs,x now take the volume offline + sta VCBs,x now take the volume offline sta VCBs+VCB.DEV,x rtrnerr tya error value. bcs olinerr1 branch if unable to read. -volfound lda VCBs,x has it been logged in before? +volfound lda VCBs,x has it been logged in before? beq H349E if not. - lda VCBs+VCB.OFCNT,x it has, are there active files? + lda VCBs+VCB.OFCNT,x it has, are there active files? bne H34AA branch if volume is currently busy. H349E jsr logvcb1 go log it in. diff --git a/ProDOS.FX/ProDOS.S.XDOS.B.txt b/ProDOS.FX/ProDOS.S.XDOS.B.txt index 526d73a7..bee6994f 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.B.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.B.txt @@ -319,9 +319,9 @@ preproot jsr findvol search vcb's and dev's for spec'd volume ldx vcbptr inx -.2 lda VCBs+VCB.TBLK,x misc info includes +.2 lda VCBs+VCB.TBLK,x misc info includes sta h_tblk,y total # of blocks, - lda VCBs+VCB.BMAP,x the address of the 1st bitmap, + lda VCBs+VCB.BMAP,x the address of the 1st bitmap, sta h_bmap,y lda bloknml,y directory's disk address, sta d_head,y @@ -361,13 +361,13 @@ L396F sty vnptr and save. L3975 pha acc now used as vcb lookup index. tax index pointer to x. - lda VCBs,x get vcb volume name length. + lda VCBs,x get vcb volume name length. bne L3987 branch if claimed vcb to be tested. L397C ldy vnptr restore pointer to requested vol name. pla now adj vcb index to next vcb entry. clc - adc #$20 + adc #VCB bcc L3975 branch if more vcb's to check bcs L39D4 otherwise go look for unlogged volumes. @@ -405,7 +405,7 @@ L39AC tay if prefix then find ptr to prefixed * verify volume name -L39C2 jsr XDOS.ReadGBuf read in directory (or prefix dir) +L39C2 jsr XDOS.ReadGBuf read in directory (or prefix dir) bcs L39CC if error then look on other devices. jsr XDOS.CheckVolName compare dir name with path name. @@ -448,7 +448,7 @@ L39FE sta devnum preserve device to be checked next. lda VCBs,x beq L3A16 if free vcb. - lda VCBs+VCB.OFCNT,x is this volume active? + lda VCBs+VCB.OFCNT,x is this volume active? bne L39E2 if so, no need to re-log. L3A16 lda #$02 go read root dir into gbuf @@ -478,7 +478,7 @@ fnddvcb lda #$00 look for vcb with this device# ldy #$FF L3A40 tax new index to next vcb - lda VCBs+VCB.DEV,x check all devnums + lda VCBs+VCB.DEV,x check all devnums cmp devnum is this the vcb? bne L3A4E if not @@ -486,7 +486,7 @@ L3A40 tax new index to next vcb clc indicates found rts -L3A4E lda VCBs,x is this a free vcb? +L3A4E lda VCBs,x is this a free vcb? bne L3A57 if not iny @@ -494,8 +494,8 @@ L3A4E lda VCBs,x is this a free vcb? L3A57 txa clc inc index to next vcb - adc #$20 - bne L3A40 + adc #VCB + bcc L3A40 tya any free vcb's available? bpl L3A79 yes @@ -503,20 +503,20 @@ L3A57 txa lda #$00 look for an entry to kick out L3A62 tax - lda VCBs+VCB.OFCNT,x any open files? + lda VCBs+VCB.OFCNT,x any open files? beq L3A70 no, kick this one out. txa next vcb clc - adc #$20 (vcb entry size) - bne L3A62 + adc #VCB + bcc L3A62 lda #MLI.E.VCBFULL all vcb entries have open files * sec rts L3A70 stx vcbptr save entry index. - stz VCBs,x free this entry + stz VCBs,x free this entry stz VCBs+VCB.DEV,x L3A79 clc no error. rts @@ -571,7 +571,7 @@ XDOS.CheckVolName.RTS rts *-------------------------------------- logvcb ldx vcbptr previously logged in volume? - lda VCBs,x (acc = 0?) + lda VCBs,x (acc = 0?) beq logvcb1 no, go prepare vcb. jsr cmpvcb does vcb match vol read? diff --git a/ProDOS.FX/ProDOS.S.XDOS.C.txt b/ProDOS.FX/ProDOS.S.XDOS.C.txt index 224ac5bf..c0f5ad16 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.C.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.C.txt @@ -873,8 +873,8 @@ L41A9 lda FCBs,y all bytes must match to say that it's L41C1 tya calc position of next fcb. and #$E0 first strip any possible index offsets. clc - adc #$20 inc to next fcb. - bne L4188 branch if more to compare. + adc #FCB inc to next fcb. + bcc L4188 branch if more to compare. clc report no conflicts. rts diff --git a/ProDOS.FX/ProDOS.S.XDOS.E.txt b/ProDOS.FX/ProDOS.S.XDOS.E.txt index 0f766f37..3f99bd99 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.E.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.E.txt @@ -28,7 +28,7 @@ L4654 sta fcbptr save current low byte of pointer. L4675 lda fcbptr inc pointer to next fcb clc - adc #$20 + adc #FCB bcc L4654 branch if within same page. lda cferr on final close report logged errors. @@ -69,6 +69,7 @@ XDOS.Flush ldy #$01 flush all ? sta cferr clear global flush error. lda #$00 start at the beginning. + L46C3 sta fcbptr save current low byte of pointer. tay index to ref #. lda FCBs,y is this reference file open ? @@ -79,7 +80,7 @@ L46C3 sta fcbptr save current low byte of pointer. L46D1 lda fcbptr inc pointer to next fcb. clc - adc #$20 + adc #FCB bcc L46C3 branch if within same page L46D9 clc @@ -450,35 +451,6 @@ XDOS.NewLine ldy #$02 adjust newline status for open file. clc no error possible rts *-------------------------------------- -XDOS.GetFileInfoEx - jsr findfile see if file exists - bcc .1 - - cmp #MLI.E.INVPATH - sec - bne .9 - -.1 ldx #S.FIEX.BLKPTR+2-1 - ldy #S.FIEX.BLKPTR+2-1+3 - -.2 lda d_stor,x - sta (A3L),y - dey - dex - bpl .2 - - ldx #7 - ldy #S.FIEX.ACL+7+3 - -.3 lda h_acl,x - sta (A3L),y - dey - dex - bpl .3 - - clc -.9 rts -*-------------------------------------- XDOS.GetFileInfo jsr findfile look for file. bcc L4988 no error. @@ -534,47 +506,6 @@ L4994 lda inftabl-3,y L49A4 rts *-------------------------------------- -XDOS.SetFileInfoEx - jsr findfile - bcs L49A4 - - ldx #S.FIEX.BLKPTR+2-1 - ldy #S.FIEX.BLKPTR+2-1+3 - -.2 lda (A3L),y - sta d_stor,x - dey - dex - bpl .2 - - jmp drevise1 -*-------------------------------------- -XDOS.SetACL jsr findfile - bcs .9 - - lda d_stor - and #$F0 - cmp #$D0 - bne .99 - - jsr XDOS.ReadGBuf_d_frst - bcs .9 - - ldx #7 - ldy #S.FIEX.ACL+7+3 - -.3 lda (A3L),y - sta gbuf+$14,x - dey - dex - bpl .3 - - jmp XDOS.WriteGBuf - -.99 lda MLI.E.UNSUPST - sec -.9 rts -*-------------------------------------- XDOS.SetFileInfo jsr findfile get the file to work on. bcs L49CF if error. @@ -611,6 +542,79 @@ L49D0 ldy #$0B jmp drevise1 end by updating directory. L49D9 jmp drevise update with clock also... *-------------------------------------- +XDOS.SetFileInfoEx + jsr findfile + bcs L49A4 + + ldx #S.FIEX.BLKPTR+2-1 + ldy #S.FIEX.BLKPTR+2-1+3 + +.2 lda (A3L),y + sta d_stor,x + dey + dex + bpl .2 + + jmp drevise1 +*-------------------------------------- +XDOS.GetFileInfoEx + jsr findfile see if file exists + bcc .1 + + cmp #MLI.E.INVPATH + sec + bne .9 + +.1 ldx #S.FIEX.BLKPTR+2-1 + ldy #S.FIEX.BLKPTR+2-1+3 + +.2 lda d_stor,x + sta (A3L),y + dey + dex + bpl .2 + + ldx #7 + ldy #S.FIEX.ACL+7+3 + +.3 lda h_acl,x + sta (A3L),y + dey + dex + bpl .3 + + clc +.9 rts +*-------------------------------------- +XDOS.SetACL jsr findfile + bcs .9 + + lda d_stor + and #$F0 + cmp #$D0 + bne .99 + + jsr XDOS.ReadGBuf_d_frst + bcs .9 + + ldx #7 + ldy #S.FIEX.ACL+7+3 + +.3 lda (A3L),y + sta gbuf+$14,x + dey + dex + bpl .3 + + jmp XDOS.WriteGBuf + +.99 lda MLI.E.UNSUPST + sec +.9 rts +*-------------------------------------- +XDOS.GetACL clc + rts +*-------------------------------------- XDOS.Rename jsr lookfile look for source (original) file. bcc XDOS.RenameFileDir if found. diff --git a/ProDOS.FX/ProDOS.S.XDOS.F.txt b/ProDOS.FX/ProDOS.S.XDOS.F.txt index b18a7365..6f34358e 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.F.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.F.txt @@ -816,7 +816,7 @@ XDOS.CmdNums .HS D3D4D5D6 table of valid mli command numbers. .HS 808182 .HS 65 .HS C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF - .HS 00 + .HS D7 .HS D0D1D2 XDOS.ParamCnt .HS 02020202 parameter counts for the calls @@ -824,7 +824,7 @@ XDOS.ParamCnt .HS 02020202 parameter counts for the calls .HS 030300 .HS 04 .HS 070102070A0201010303040401010202 - .HS FF + .HS 02 .HS 020202 XDOS.CmdFlags .HS A0A1A2 @@ -834,7 +834,7 @@ XDOS.CmdFlags .HS A0A1A2 .HS 2C2D .HS 4E4F .HS 50515253 - .HS 949596 + .HS 94959697 cmdtable .DA XDOS.Create .DA XDOS.Destroy @@ -864,6 +864,7 @@ cmdtable .DA XDOS.Create .DA XDOS.SetFileInfoEx .DA XDOS.GetFileInfoEx .DA XDOS.SetACL + .DA XDOS.GetACL dinctbl .HS 0100000200 table to increment directory usage/eof counts .DO LOWERCASE=1 diff --git a/ProDOS.FX/ProDOS.S.txt b/ProDOS.FX/ProDOS.S.txt index ed61a89e..7f332563 100644 --- a/ProDOS.FX/ProDOS.S.txt +++ b/ProDOS.FX/ProDOS.S.txt @@ -150,6 +150,7 @@ FCB.IBLK .EQ 14 FCB.EOF .EQ 21 3 bytes FCB.FLEVEL .EQ 27 FCB.NLMASK .EQ 31 +* FCB .EQ 32 *-------------------------------------- VCBs .EQ $D900 @@ -158,10 +159,10 @@ VCB.OFCNT .EQ 17 VCB.BMAP .EQ 18 VCB.TBLK .EQ 20 VCB.FBLK .EQ 22 -VCB.ROOT .EQ 24 -VCB.BMAPIDX .EQ 26 +*VCB.ROOT .EQ 24 +VCB.BMAPIDX .EQ 24 * -VCB .EQ 27 +VCB .EQ 32 *-------------------------------------- bmbuf .EQ $DA00 512 byte bitmap buffer gbuf .EQ $DC00 general purpose 512 byte block buffer