From 6b09f0dd579f62470b4956a6d3a49bb0e6c646eb Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 2 Sep 2021 17:16:35 -0400 Subject: [PATCH] Use GSTRNS to parse OSFILE filenames --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.hostfs.s | 88 +++++++++++++++++++----------------------------- 2 files changed, 35 insertions(+), 53 deletions(-) diff --git a/applecorn.po b/applecorn.po index 3bfde6eec57c86b65fb98235169fcf9feaed75a3..4c4bad1cad10d59e3b470048b43b728c8669bba5 100644 GIT binary patch delta 2648 zcmYjS4R9036}~%pW#a^}Q$kEq$N~;ver)WtLFt5mu?2E+*ugfb)1-rdq@#2w!?c|# z!!)%##Tx#^h*8VYGHMR-Qx1oW=1C|b11F=J@zLPyn zwX65uzWv_rdvD+F>GcJAeSyuKLM_ZR|2^dunSGn`$~y})vxyKvEM1pRP()tg?y8;Y zow=H_ipuR3xfLmYByx!SQewrrIoOJI8JQHZVGdSOT2h%?K@cexB9+KYPr}UkD7kjk zEUTVnS7urFEQ_PH^7dGnMD9@HjG|RwoRM?|uUNM@^NT+z?@0x1t^9zC{RVgSx8i6R zOTk!hQjCi+EIf#Y?i<Zs9RP2OO4B$zXLJ2lcW?h)XP3ih z<{sCX+h*FoIQOJ@bu}N1O^HuYSc*5D+<3Fgo{ayyewU-= z4(QuuI}u03@8dW$9*h~;*0z53=AGUihuL=QE4hjNYGV2I28&$;LLmKmtb(Vi?n^UnTK}tGhnOg zQO)dVNxCO{Zh;*Qo%Lv%B-IU$FHtKA^T%$W?PO;|?+vsMh7AQ@qa2bv%Y4v?Fj>QV z(ui&=Z^<6rYuI)ZognAc)V{&JR=b(&Wd8FFD$U*-wh&ZD#$&uVgn!+K+j%Y(M-q4} zkwsetZkXlqkE6_vZ_yxmomtj|vVd)BLSIqiqYaTJ6eOu1M;rQXqnqRlr%Q(nrc-4@ zN6*xouCb)ubQSyWakrQ)x6$)Uo1f#OI*s(aGa(f?l~S20&6y_sR(E7ZO9uv-Wv%GO zlG34C)Ah2U+A}QG*cm=!Y6qJ~x+7T0OtzxU8y2{Wikla>i%ZI7T3+(5THiRdy<9D` z!lEK|MFj|zC6%0{XF2eqN+XfKyA#wlxrrLZr76>g5ua-`}&Tn5vh4I4~H&#(l&hZ$}|N7iSGF#S16 z{HVp9J+wk^sdvBkuvhOj!|1a2Yj3yL?|tZ1_!juEPvI-@X?zvFJq??`Lp)h+ z87bdgdekzat~zcRDJk7vb^k-jLN{w zV$Om;OA%+DlmP~SvL0l8P?mhU7BJEbNAdHx6ntBdqMSk_ubESgKV>#|p!HiRzg__r zwNZ|!m1-YigI`*NDSxdbOX;%o5S-&}mmXe`E=O@ZapljtNgYCcn3JbLQ)orvM4C5VxDxMmE>&(ccOCTLEpwDO$V97 zod_?<6t64w8|T9t!Odg!P~spR;pWk|8G9#Ml~w1*XZ`&AQy(^9%@;g=M!=+-XuVs+k-R{N_g z+z~jUk}F$>my2>~V<$GHJF9I`&n_FABAU`uX>P{5<<)iy$C;3 zA3AdE+>A=A!S&3xUbNz+4WVo2HY!=dM6oYv1EgH)Hp-d{C;J{#-HZMJ&ovVVPQJ(J zc(f~fxp*yk&vO>yTv3;^(3x&Z&H8u~5LUGy!Hep95&M4AfGtC?3_XafSXu&3c8 h7do#nXHY8*gUB$bGz_L12Gb0K^9+OOR|cQC_CG6NX9WNN delta 2916 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 diff --git a/auxmem.hostfs.s b/auxmem.hostfs.s index f462cbc..6375791 100644 --- a/auxmem.hostfs.s +++ b/auxmem.hostfs.s @@ -211,10 +211,19 @@ FILEHND PHX PHY PHA - STX ZP1 ; LSB of parameter block - STX CBPTR - STY ZP1+1 ; MSB of parameter block - STY CBPTR+1 + STX CBPTR ; LSB of parameter block + STX ZP1 + STY CBPTR+1 ; MSB of parameter block + STY ZP1+1 + + LDA (ZP1) ; Filename ptr->XY + TAX + LDY #$01 + LDA (ZP1),Y + TAY + + JSR PARSNAME ; Copy filename->MOSFILE + LDA #FILEBLK @@ -228,44 +237,6 @@ FILEHND PHX CPY #$12 BNE :L1 - LDA (ZP1) ; Pointer to filename->ZP2 - STA ZP2 - LDY #$01 - LDA (ZP1),Y - STA ZP2+1 - LDA #MOSFILE+1 - STA ZP1+1 - LDA (ZP2) ; Look at first char of filename - CMP #'9'+1 - BCS :NOTDIGT - CMP #'0' - BCC :NOTDIGT - LDA #'N' ; Prefix numeric with 'N' - >>> WRTMAIN - STA (ZP1) - >>> WRTAUX - LDY #$01 ; Increment Y - DEC ZP2 ; Decrement source pointer - LDA ZP2 - CMP #$FF - BNE :L2 - DEC ZP2+1 - BRA :L2 -:NOTDIGT LDY #$00 -:L2 LDA (ZP2),Y - >>> WRTMAIN - STA (ZP1),Y - >>> WRTAUX - INY - CMP #$21 ; Space or Carriage return - BCS :L2 - DEY - >>> WRTMAIN - STY MOSFILE ; Length (Pascal string) - >>> WRTAUX - PLA ; Get action back PHA BEQ :SAVE ; A=00 -> SAVE @@ -276,15 +247,7 @@ FILEHND PHX BCC :JMPINFO ; A=01-05 -> INFO CMP #$08 BEQ :MKDIR ; A=08 -> MKDIR -* LDA #OSFILEM -* JSR PRSTR -* PLA -* PHA -* JSR OUTHEX -* LDA #OSFILEM2 -* JSR PRSTR + PLA ; Not implemented, return unchanged PLY PLX @@ -800,6 +763,27 @@ STARDIRRET BRK :EXIT RTS +* Parse filename pointed to by XY +* Write filename to MOSFILE in main memory +PARSNAME JSR XYtoLPTR + CLC ; Means parsing a filename + JSR GSINIT ; Init gen string handling + PHP + SEI ; Disable IRQs + LDX #$00 ; Length +:L1 JSR GSREAD ; Handle next char + BCS :DONE + STA $C004 ; Write to main mem + STA MOSFILE+1,X + STA $C005 ; Write to aux mem + INX + BNE :L1 +:DONE STA $C004 ; Write to main mem + STX MOSFILE ; Length byte (Pascal) + STA $C005 ; Back to aux + PLP ; IRQs back as they were + RTS + * Move this somewhere CHKERROR CMP #$20 BCS MKERROR @@ -970,5 +954,3 @@ ERROR2E DW $C800 ASC 'Disk changed' ; $2E - Disk switched DB $00 - -