From 58cc1e43ccdd67d341822b93c55a64ef9b59b50c Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 24 Oct 2019 16:23:50 -0400 Subject: [PATCH] NSWEEP now gets correct file sizes --- SOFTCARD80.ASM#040000 | 99 +++++++++++++++++++++++++++--------------- SOFTCARD80.BIN#041000 | Bin 43011 -> 43011 bytes zapple2.po | Bin 819200 -> 819200 bytes 3 files changed, 65 insertions(+), 34 deletions(-) diff --git a/SOFTCARD80.ASM#040000 b/SOFTCARD80.ASM#040000 index ff79bae..14dccbd 100644 --- a/SOFTCARD80.ASM#040000 +++ b/SOFTCARD80.ASM#040000 @@ -16,6 +16,7 @@ ; ; TODO: F_WRITE bug turns out to be bug in ProDOS 2.5.0a7 (SET_MARK) +; Or maybe I was trashing memory. Need to retest. ; TODO: How does DIR / NSWEEP work out file sizes? Need to support this. ; TODO: Implement missing system calls: ; - F_ATTRIB @@ -1252,8 +1253,8 @@ F_READRAND PUSH DE ; Copy pointer to FCB ... LD (SMMLIN),A ; Store in parameter list for SET_MARK LD (FRMLIN),A ; Store in parameter list for READ - LD H,(IX+21H) ; Load LSB of random record number - LD L,(IX+22H) ; ... + LD L,(IX+21H) ; Load LSB of random record number + LD H,(IX+22H) ; Load MSB of random record number CALL RRN2LEN ; Leaves the length in bytes in HL LD (SMMLIP1),HL ; Write 16 bit length in FRMLIP1,FRMLIP2 XOR A ; Set FRMLIP3 to zero @@ -1280,8 +1281,8 @@ F_READRAND PUSH DE ; Copy pointer to FCB ... CP 0 ; See if there was some other error JP NZ,FRRERR ; If so, return code 0FFH (h/w error) - LD H,(IX+21H) ; Load LSB of random record number - LD L,(IX+22H) ; ... + LD L,(IX+21H) ; Load LSB of random record number + LD H,(IX+22H) ; Load MSB of random record number CALL RECS2EXRC ; Puts extent in B, recs in A LD A,(IX+20H),A ; Update sequential record number LD B,(IX+0CH),B ; Update sequential extent number @@ -1315,8 +1316,8 @@ F_WRITERAND PUSH DE ; Copy pointer to FCB ... LD HL,GEMLI ; Pass address of 6502 JSR instruction CALL PRODOS ; Invoke ProDOS MLI - GET_EOF - LD H,(IX+21H) ; Load LSB of random record number - LD L,(IX+22H) ; ... + LD L,(IX+21H) ; Load LSB of random record number + LD H,(IX+22H) ; Load MSB of random record number CALL RRN2LEN ; Leaves the length in bytes in HL LD (SMMLIP1),HL ; 16 bit len in SMMLIP1,2 for SET_MARK XOR A ; Set SMMLIP3 to zero @@ -1354,8 +1355,8 @@ FWRS1 LD HL,SMMLI ; Pass address of 6502 JSR instruction CP 0 ; See if there was some other error JP NZ,FWRERR ; If so, return code 0FFH (h/w error) - LD H,(IX+21H) ; Load LSB of random record number - LD L,(IX+22H) ; ... + LD L,(IX+21H) ; Load LSB of random record number + LD H,(IX+22H) ; Load MSB of random record number CALL RECS2EXRC ; Puts extent in B, recs in A LD A,(IX+20H),A ; Update sequential record number LD B,(IX+0CH),B ; Update sequential extent number @@ -1379,12 +1380,13 @@ FWRERR LD A,0FFH ; All other errors are 0FFH ; Error codes are returned in A and L (0 for success, 0FFH if file not found) ; Returns the number of 128 byte records in random record count field of FCB F_SIZE CALL FCB2PATH ; Populate PATHLEN and PATH - LD HL,FSMLI ; Pass address of 6502 JSR instruction + LD HL,GFIMLI ; Pass address of 6502 JSR instruction CALL PRODOS ; Invoke ProDOS MLI CP 0 ; See if there was an error JP NZ,FSERR ; Handle error - LD HL,(FSMLIBU) ; Obtain the blocks used field - ADD HL,HL ; Mult x 2 to get 128 byte records + LD HL,(GFIMLIBU) ; Obtain the blocks used field + ADD HL,HL ; Mult x 4 to get 128 byte records + ADD HL,HL ; ... ; Store records used in R0,R1 fields of FCB PUSH DE ; Copy DE ... @@ -1561,17 +1563,19 @@ P2FL3 INC HL ; Advance source pointer INC DE ; Advance destination pointer LD A,C ; Get count of chars remaining CP 0 ; If none left ... - RET Z ; We are done + JP Z,P2FS3 ; We are done LD A,B ; Get count of chars written CP 8+3 ; If 8+3 chars have been written ... - RET Z ; We are done + JP Z,P2FS3 ; We are done LD A,(HL) ; Read character CP '.' ; See if it is a period - JP Z,P2FS2 ; Initialize things to copy the extension + JP Z,P2FS2 ; Prepare to copy the extension LD (DE),A ; Write character INC B ; Increment count of chars written P2FS1 DEC C ; Decrement count of chars remaining JP P2FL3 ; Loop + + ; Initialize DE, B to start processing the extension P2FS2 LD DE,(DMAADDR) ; Destination is start of extension INC DE ; INC DE ; @@ -1584,6 +1588,33 @@ P2FS2 LD DE,(DMAADDR) ; Destination is start of extension LD B,8 ; 8 chars have been written JP P2FS1 ; Jump back into the read-write loop + ; Handle file size info +P2FS3 LD DE,(DMAADDR) ; Pointer to start of FCB + LD IX,PATHBUF ; Destination buffer + CALL FCB2PATH ; Populate PATHLEN and PATH from new FCB + LD HL,GFIMLI ; Pass address of 6502 JSR instruction + CALL PRODOS ; Invoke ProDOS MLI + CP 0 ; See if there was an error + JP NZ,P2FERR ; Handle error + LD HL,(GFIMLIBU) ; Obtain the blocks used field + ADD HL,HL ; Mult x 4 to get 128 byte records + ADD HL,HL ; ... + CALL RECS2EXRC ; Puts extent in B, recs in A + LD DE,(DMAADDR) ; Pointer to start of FCB + PUSH DE ; Copy into IX + POP IX ; ... + LD (IX+0CH),B ; Store num extents in EX field of FCB + LD (IX+0FH),A ; Store num recs in RC field of FCB + RET +P2FERR LD DE,(DMAADDR) ; Pointer to start of FCB + PUSH DE ; Copy into IX + POP IX ; ... + LD A,0 ; If error, set num extents to zero + LD (IX+0CH),A ; Store in EX field of FCB + LD A,0 ; If error, set record count to zero + LD (IX+0FH),A ; Store in RC field of FCB + RET + ; Read 512 byte block of directory ; Used by F_SFIRST and F_SNEXT ; Trashes HL + registers trashed by F_READ (best to assume all of them!) @@ -1802,8 +1833,8 @@ RRN2LEN ADD HL,HL ; Shift left seven times ; Length in records in passed in HL ; Returns extent number in B and records within extent in A RECS2EXRC SLA H ; 7 MS-bits of extent number - BIT 7,L ; See if MS-bit is set - JP NZ,R2ERS1 ; If set ... + BIT 7,L ; See if MS-bit of L is set + JP Z,R2ERS1 ; If set ... INC H ; ... set LSB of extent number R2ERS1 LD B,H ; Return extent in B LD A,L ; Now for the recs in the extent @@ -1881,21 +1912,21 @@ FRNMLIP1 DEFW PATHBUF+OFFSET ; ProDOS PL: Pointer to path in 6502 addr FRNMLIP2 DEFW PATHBUF2+OFFSET ; ProDOS PL: Pointer to path in 6502 addr ; Parameter list for ProDOS GET_FILE_INFO call -FSMLI DEFB 20H,00H,0BFH ; JSR $BF00 in 6502 code +GFIMLI DEFB 20H,00H,0BFH ; JSR $BF00 in 6502 code DEFB 0C4H ; ProDOS GET_FILE_INFO call - DEFW FSMLIPL+OFFSET ; Pointer to parm list in 6502 addr space + DEFW GFIMLIPL+OFFSET ; Pointer to parm list in 6502 addr space DEFB 60H ; RTS in 6502 code -FSMLIPL DEFB 0AH ; ProDOS PL: Ten parameters -FSMLIP DEFW PATHBUF+OFFSET ; ProDOS PL: Pointer to path in 6502 addr -FSMLIAC DEFB 0 ; ProDOS PL: Access -FSMLIT DEFB 0 ; ProDOS PL: File type -FSMLIAT DEFW 0000H ; ProDOS PL: Aux type -FSMLIS DEFB 1 ; ProDOS PL: Storage type -FSMLIBU DEFW 0000H ; ProDOS PL: Blocks used -FSMLIMD DEFW 0000H ; ProDOS PL: Modification date -FSMLIMT DEFW 0000H ; ProDOS PL: Modification time -FSMLICD DEFW 0000H ; ProDOS PL: Create date -FSMLICT DEFW 0000H ; ProDOS PL: Create time +GFIMLIPL DEFB 0AH ; ProDOS PL: Ten parameters +GFIMLIP DEFW PATHBUF+OFFSET ; ProDOS PL: Pointer to path in 6502 addr +GFIMLIAC DEFB 0 ; ProDOS PL: Access +GFIMLIT DEFB 0 ; ProDOS PL: File type +GFIMLIAT DEFW 0000H ; ProDOS PL: Aux type +GFIMLIS DEFB 1 ; ProDOS PL: Storage type +GFIMLIBU DEFW 0000H ; ProDOS PL: Blocks used +GFIMLIMD DEFW 0000H ; ProDOS PL: Modification date +GFIMLIMT DEFW 0000H ; ProDOS PL: Modification time +GFIMLICD DEFW 0000H ; ProDOS PL: Create date +GFIMLICT DEFW 0000H ; ProDOS PL: Create time ; Parameter list for ProDOS OPEN call FOMLI DEFB 20H,00H,0BFH ; JSR $BF00 in 6502 code @@ -1997,11 +2028,11 @@ DFCBRR DEFB 0,0,0 ; FCB rand record number ; Drive parameter block (CP/M 2.2 format) ; See Johnson-Laird Pg 33-34 DPB DEFW 32 ; # 128 byte records per track (for Disk II) - DEFB 7 ; Block shift (16384 byte allocation blocks) - DEFB 127 ; Block mask (16384 byte allocation blocks) - DEFB 7 ; Extent mask - DEFW 2047 ; # allocation blocks on disk (32MB) - DEFW 1023 ; # directory entries + DEFB 3 ; Block shift (1024 byte allocation blocks) + DEFB 7 ; Block mask (1024 byte allocation blocks) + DEFB 0 ; Extent mask (1024 byte alocation blocks) + DEFW 1023 ; # allocation blocks on disk (1MB) + DEFW 255 ; # directory entries DEFB 0 ; Directory allocation bitmap byte 1 DEFB 0 ; Directory allocation bitmap byte 2 DEFW 0 ; Checksum vector size diff --git a/SOFTCARD80.BIN#041000 b/SOFTCARD80.BIN#041000 index 8c21e654e33862b7f9259d9e1795345cc41feb0e..ecf1d8b038028e9cb389a2fe206a73930970d334 100644 GIT binary patch delta 1449 zcmZ`&O>7%g5PloGj^nubRihB6iPuJ|VnkHAw18{5!HH6!e*$_z5vnPu2P!3igq)~J zoL@Crd-px>A})yHR0ybwv<=}91f{_akX^DNsT6K|@S(X>7CE6_vdg?(Co~nTwC}x{ z`M!BG^JXU3D<;<~?)V*^X;Jf%m^n~?T?#pTm6ljPy>Qm?%amta3{QyRNijSn`DXeZ z0)JD=%$Uy4i8e3cS@yh{)t33qouaIX*f3SZh1(E=>Z$@C5%wy8cmw4T7fF(xWKDR5 zuuD`IQi-PGon)=Nlk`X05IZKi(1ofz6~rM_0Ay^9T`4snHxoUFu5rSwKC3Sk_{V%u_y zv$?mQ;1*_Vyw=4*LMo@TR*r1cj_H-W$_;?O0cBG!>Z3K`J0v_t^ijXw>(vgBz&w$| z3xxgJLZ4HgPaEBILHU#EP?KGnal#IQS*lOJ@FKAB|FgfKY*{um>~+eXNFVdq zk#$hQ@5VHhw&4 zDU)eVl_TVhv#OfeP2he;w+WB1ovsXZVBoLXSC17E{*lnC;PPviS$o%n6jC}fPrfR} z?;qkz-FFH59fZj5m8_4Kf_%g2a-KX~-^Uv-tCwgiy~F=U4D|jAI|iEY>(m=yIX?6@ z>5#7R?MzYnlt0e=DQ)m=sT0De;aA;)d&uypm4aJOB5zO+7XIShV8}NJ!Gc?ebyBq+ zbRh~pA-D$(hkD!wJ1M#q_&Z6YJcLKBLGlN|C~)HfNWmJvC06HO6CRFk)m|v|HKD-< z7Ya5GK|`jp!k|&DW+94Bbxde*9xPlDD5SCcx!i?eOR?K{yZPJ|Xg(do zYN*9Hr9Ovy7xSlZW6&F`{yyJIMu?2h%v1f6vAugic4s#YOd79GQS^5l1Fr`w2&;U|W{@@%faB z$kRO|TPZ~=VrXJzSo4u#t(}a(KGN)Lhwtz0BfsX>x*8f4Kf1ScG?%C}=L+DPfggeD z=k8pBG3VfvKbK2Xm~&k>;k^82F5xlfD8>TPg9TstFqd#x20*>4rg8}<7{+Yl@4`ND z^)qly@6f(1AJ$~J0iLjo+kc@~q2IiA;x?_4P<~2MVGXmzJ_GEyTsqL;nEI CFqRwu delta 1397 zcmZ`(Z)h837=P1*CQZ9^ZL!w2wz-^8iP*`lMLpB>FRgA_D{P;PV%V5prmg!RY3-k= z+gx+W-TOB8Rb~ppkU4HLgbgyL7oEM+E8UvUi;WGc0K0);k-YZj0GQeFR z%re!5FB0P-t|Xh4N;1gzAZ936k7gS90oh8ocg6{GyvB?Oe4IF*BLXud_X}OAG-*i_ z!z0l3O4`Uu5MfbZrgE<5P(vt&6>b`rnUa7!jZ#T`(EDM&>VUSM!>x3v=LaPTMwj%#{H59^rxInlCLc0>HeeD`+H%$0bQa(CM zE|UH*dN10SD}%=q}(_l1O_9A3K1Qvup&oqY|7_Y#?Z# z8`amPhbyJ#nR2`x&9~Mgwr#;e8}nA<#){RiFG{VR1I5!4wYJrsdS5X~eLR3m4>vv3 zj*LwKO1v*o#gF?HQ}TWUC{nu|rTB{!t?mFuYXhfj0Cif!`XAEd4fV0q#x_M8Z>l9p zp+f_8mYQLVy77Z;gO~2^fcOmrsCwa-p(z^76HJv+m3*!~d;UNXff4ipwwxv zp^Ty-gr@jt?uI^x`C$+rV15L|BIZXyd@O&Br&H=J{LI91DWw^gFkDS-$+(Y~j9>9G z$mI@CFFb!f>bsNQ9BFOSg6Q_Q<*WyWmBj`VQq2uEIL(RDV8ES6Hvm{rBzp zguk#(F*cBHZ1~2Ze8O!T0Chx<B^I=bih^Bdrr#xPFRHkac7_w~ob`{WuK{~IBaYL);1 diff --git a/zapple2.po b/zapple2.po index 1fc158e781a8db7e1c3984619cef71c6b89c9fd1..7eacc873c8bb73a6c08f43b3e3bafc22566f01be 100644 GIT binary patch delta 4719 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 delta 85201 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