diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d349addc..7e90bfe3 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index f78e4952..8470e024 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/.Floppies/A2osX.BOOT192.woz b/.Floppies/A2osX.BOOT192.woz index 66663738..daecc450 100644 Binary files a/.Floppies/A2osX.BOOT192.woz and b/.Floppies/A2osX.BOOT192.woz differ diff --git a/.Floppies/ProDOSFX.BOOT.po b/.Floppies/ProDOSFX.BOOT.po index c3c92ba8..a5f289bf 100644 Binary files a/.Floppies/ProDOSFX.BOOT.po and b/.Floppies/ProDOSFX.BOOT.po differ diff --git a/BIN/ARCME.S.txt b/BIN/ARCME.S.txt index f0ee94ef..c409024b 100644 --- a/BIN/ARCME.S.txt +++ b/BIN/ARCME.S.txt @@ -7,7 +7,6 @@ NEW *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i - .INB inc/kernel.i .INB inc/mli.e.i .INB inc/arc.i *-------------------------------------- @@ -151,30 +150,12 @@ CS.RUN.START >PUSHW L.MSG.SRCFILE CS.RUN.RTS rts *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.hStdIn - lda (pPS),y - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs CS.RUN.RTS - - tay - bne .1 - - >LIBC GetChar - bcs CS.RUN.RTS - - cmp #$03 Ctrl-C - beq CS.RUN.RTS Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 lda bPause - bne CS.RUN.LOOP Pause... + + bvs CS.RUN.LOOP Pause... *-------------------------------------- jsr CS.RUN.GetChunk bcs CS.RUN.RTS @@ -548,6 +529,7 @@ CS.QUIT.BUF lda hDstBuf .8 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.arc.s *-------------------------------------- MSG.USAGE .CZ "Usage : ARCME SourceBIN PackedBIN\r\n" diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index 79ee3e8e..75a6e700 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -30,7 +30,7 @@ ArgIndex .BS 1 pFile .BS 2 LineNum .BS 2 bPrintedBlankLine .BS 1 -ZS.END .ED +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -50,7 +50,7 @@ CS.START cld *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN - .DA CS.DOEVENT + .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.CRLF .DA MSG.CRLF @@ -74,12 +74,12 @@ CS.RUN inc ArgCount cmp #'-' bne .4 - ldy #1 + ldy #1 lda (ZPPtr1),y beq .99 .1 ldx #OptionVars-OptionList-1 - + .2 cmp OptionList,x beq .3 @@ -94,12 +94,12 @@ CS.RUN inc ArgCount .3 lda OptionVars,x tax -* sec +* sec ror 0,x iny lda (ZPPtr1),y bne .1 - + bra CS.RUN .4 inc FileCount @@ -113,13 +113,13 @@ CS.RUN inc ArgCount bcs .9 >STYA ZPBufPtr - + ldy #S.PS.pStdOut jsr X.IsPipeY - bcs .9 - - bvs CS.RUN.LOOP - + bcs CS.RUN.LOOP Unkown output ... file ? + + bvs CS.RUN.LOOP PIPE...no TTY linewrap + >SS >PUSHW L.MSG.INIT >PUSHBI 0 @@ -127,7 +127,7 @@ CS.RUN inc ArgCount >SR *-------------------------------------- CS.RUN.LOOP >SLEEP - + jsr X.CheckCtrl bcs .99 @@ -162,7 +162,7 @@ CS.RUN.LOOP >SLEEP jsr CS.RUN.PRINT bcs .99 - + jmp CS.RUN.LOOP .7 cmp #MLI.E.EOF @@ -177,7 +177,7 @@ CS.RUN.LOOP >SLEEP .99 rts *-------------------------------------- CS.RUN.OPEN stz bPrintedBlankLine Reset this flag for the new file - + >SS >PUSHYA >PUSHBI O.RDONLY+O.TEXT @@ -212,7 +212,7 @@ CS.RUN.PRINT inc LineNum lda bPrintAll bmi .3 - + ldy #$ff .20 iny @@ -225,7 +225,7 @@ CS.RUN.PRINT inc LineNum lda #C.SPACE sta (ZPBufPtr),y bra .20 - + .21 >LDYA ZPBufPtr >LIBC PutS rts @@ -273,7 +273,7 @@ CS.RUN.PRINT inc LineNum .62 inc ByteIndex bne .4 - + .7 >SS >PUSHW L.MSG.CRLF >PUSHBI 0 @@ -295,7 +295,7 @@ CS.RUN.PRINTNUM clc *-------------------------------------- CS.QUIT >LDYA ZPBufPtr beq CS.RUN.CLOSE - + >LIBC Free CS.RUN.CLOSE >LDYA pFile diff --git a/BIN/CHAUX.S.txt b/BIN/CHAUX.S.txt index f4909f3d..3490b1fd 100644 --- a/BIN/CHAUX.S.txt +++ b/BIN/CHAUX.S.txt @@ -32,9 +32,7 @@ ArgIndex .BS 1 bAuxFileType .BS 1 AuxFileType .BS 2 -hSrcFullPath .BS 1 bPause .BS 1 - bContinue .BS 1 bRecurse .BS 1 @@ -100,7 +98,7 @@ CS.RUN inc ArgIndex .3 ldy OptionVars,x lda #$80 - sta $0,y + sta 0,y bra CS.RUN *-------------------------------------- .4 bit bAuxFileType @@ -131,34 +129,12 @@ CS.RUN inc ArgIndex >STYA ZPFullPath *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 - tay - bne .1 - - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 bit bPause - bmi CS.RUN.LOOP Pause... + bvs CS.RUN.LOOP Pause... *-------------------------------------- jsr X.GetEntry bcs CS.RUN.LEAVE @@ -339,6 +315,7 @@ GetAuxType lda (ZPPtr1) .9 sec rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * diff --git a/BIN/CHGRP.S.txt b/BIN/CHGRP.S.txt index f0dfb035..ff4ac383 100644 --- a/BIN/CHGRP.S.txt +++ b/BIN/CHGRP.S.txt @@ -25,6 +25,10 @@ ZPFileStat .BS 2 ZPFullPath .BS 2 ArgIndex .BS 1 +bContinue .BS 1 +bRecurse .BS 1 +bPause .BS 1 + ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -86,7 +90,7 @@ CS.RUN inc ArgIndex .3 ldy OptionVars,x lda #$80 - sta (pData),y + sta 0,y bra CS.RUN *-------------------------------------- .4 >LDA.G GID @@ -119,34 +123,12 @@ CS.RUN inc ArgIndex >STYA ZPFullPath *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 - tay - bne .1 - - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - >LDA.G bPause - eor #$ff - sta (pData),y - bne CS.RUN.LOOP - -.1 >LDA.G bPause - bne CS.RUN.LOOP Pause... + bvs CS.RUN.LOOP Pause... *-------------------------------------- jsr X.GetEntry bcs CS.RUN.LEAVE @@ -285,6 +267,7 @@ CS.QUIT jsr X.Quit .8 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * @@ -305,12 +288,7 @@ ID.END .EQ * .DUMMY .OR 0 -bContinue .BS 1 -bRecurse .BS 1 -bPause .BS 1 - -GID .BS 1 -hSrcFullPath .BS 1 +GID .BS 2 .INB usr/src/shared/x.fileenum.g diff --git a/BIN/CHMOD.S.txt b/BIN/CHMOD.S.txt index 345d2093..fc1a54c5 100644 --- a/BIN/CHMOD.S.txt +++ b/BIN/CHMOD.S.txt @@ -27,6 +27,10 @@ ZPMode .BS 2 ArgIndex .BS 1 StrMode .BS 1 +bContinue .BS 1 +bRecurse .BS 1 +bPause .BS 1 + ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -76,6 +80,7 @@ CS.RUN inc ArgIndex .2 cmp OptionList,x beq .3 + dex bpl .2 @@ -87,7 +92,7 @@ CS.RUN inc ArgIndex .3 ldy OptionVars,x lda #$80 - sta (pData),y + sta 0,y bra CS.RUN *-------------------------------------- .4 lda StrMode @@ -121,34 +126,12 @@ CS.RUN inc ArgIndex >STYA ZPFullPath *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 - - tay - bne .1 - - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - >LDA.G bPause - eor #$ff - sta (pData),y - bne CS.RUN.LOOP - -.1 >LDA.G bPause - bne CS.RUN.LOOP Pause... + + bvs CS.RUN.LOOP Pause... *-------------------------------------- jsr X.GetEntry bcs CS.RUN.LEAVE @@ -323,6 +306,7 @@ CS.QUIT jsr X.Quit .8 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * @@ -343,11 +327,6 @@ ID.END .EQ * .DUMMY .OR 0 -bContinue .BS 1 -bRecurse .BS 1 - -bPause .BS 1 - .INB usr/src/shared/x.fileenum.g DS.END .ED diff --git a/BIN/CHOWN.S.txt b/BIN/CHOWN.S.txt index bb5445fe..eecab47f 100644 --- a/BIN/CHOWN.S.txt +++ b/BIN/CHOWN.S.txt @@ -25,6 +25,10 @@ ZPFileStat .BS 2 ZPFullPath .BS 2 ArgIndex .BS 1 +bContinue .BS 1 +bRecurse .BS 1 +bPause .BS 1 + ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -74,6 +78,7 @@ CS.RUN inc ArgIndex .2 cmp OptionList,x beq .3 + dex bpl .2 @@ -85,7 +90,7 @@ CS.RUN inc ArgIndex .3 ldy OptionVars,x lda #$80 - sta (pData),y + sta 0,y bra CS.RUN *-------------------------------------- .4 >LDA.G UID @@ -118,34 +123,12 @@ CS.RUN inc ArgIndex >STYA ZPFullPath *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 - - tay - bne .1 - - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - >LDA.G bPause - eor #$ff - sta (pData),y - bne CS.RUN.LOOP - -.1 >LDA.G bPause - bne CS.RUN.LOOP Pause... + + bvs CS.RUN.LOOP Pause... *-------------------------------------- jsr X.GetEntry bcs CS.RUN.LEAVE @@ -220,7 +203,7 @@ CS.RUN.DIR lda (ZPFileName) jsr CS.RUN.CheckErr bcs .9 - >LDA.G bRecurse + bit bRecurse bpl .8 >LDYA ZPFileName @@ -244,20 +227,25 @@ CS.RUN.GetUID >LIBC ArgV .9 rts *-------------------------------------- CS.RUN.CheckErr bcs .1 + >LDYA L.MSG.OK >LIBC PutS rts -.1 pha +.1 >SS + pha >PUSHW L.MSG.ERR pla pha >PUSHA >PUSHBI 1 >LIBC PrintF - >LDA.G bContinue + >SR + + lda bContinue eor #$80 asl + pla rts *-------------------------------------- @@ -284,6 +272,7 @@ CS.QUIT jsr X.Quit .8 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * @@ -304,12 +293,7 @@ ID.END .EQ * .DUMMY .OR 0 -bContinue .BS 1 -bRecurse .BS 1 -bPause .BS 1 - -UID .BS 1 -hSrcFullPath .BS 1 +UID .BS 2 .INB usr/src/shared/x.fileenum.g diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index 83bbc985..6a65f893 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -126,35 +126,13 @@ CS.RUN inc ArgIndex bcs .99 >STYA ZPFullPath *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 + + bvs CS.RUN.LOOP Pause... - tay - bne .1 - - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 bit bPause - bmi CS.RUN.LOOP Pause... -*-------------------------------------- jsr X.GetEntry bcs CS.RUN.LEAVE @@ -398,6 +376,7 @@ IsDigit16 cmp #'0' .9 sec rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * diff --git a/BIN/CMP.S.txt b/BIN/CMP.S.txt index 56e6351e..ffd25747 100644 --- a/BIN/CMP.S.txt +++ b/BIN/CMP.S.txt @@ -140,34 +140,10 @@ CS.RUN >STYA ZPBufPtr2 *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF - bcs .9 IO error - - tay - bne .1 no char - - >LIBC GetChar - bcs .9 IO error - - cmp #$03 Ctrl-C - beq .9 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 lda bPause - bne CS.RUN.LOOP Pause... +CS.RUN.LOOP jsr X.CheckCtrl + bcs .99 + + bvs CS.RUN.LOOP Pause... jsr CS.RUN.READ1 bcc .2 @@ -184,7 +160,7 @@ CS.RUN.LOOP ldy #S.PS.pStdIn cmp #MLI.E.EOF bne .9 - bra .99 + bra .98 .20 cpy BufCnt pha @@ -210,7 +186,7 @@ CS.RUN.LOOP ldy #S.PS.pStdIn bcs .9 .5 bit bAll - bpl .99 + bpl .98 .8 iny cpy BufCnt @@ -222,16 +198,16 @@ CS.RUN.LOOP ldy #S.PS.pStdIn inc Offset+1 bra CS.RUN.LOOP -.99 lda bDiff +.98 lda bDiff .9 sec - rts +.99 rts *-------------------------------------- CS.RUN.OPEN >SS >PUSHW ZPPtr1 >PUSHBI O.RDONLY - >PUSHBI 0 Type - >PUSHWZ Aux type + >PUSHBI 0 Type + >PUSHWZ Aux type >LIBC FOpen >SR rts @@ -339,6 +315,8 @@ CS.RUN.CheckOpt ldy #1 sta 0,x clc rts +*-------------------------------------- + .INB usr/src/shared/x.checkctrl.s *-------------------------------------- CS.END .EQ * *-------------------------------------- diff --git a/BIN/CP.S.txt b/BIN/CP.S.txt index 3d8dbc61..75f61358 100644 --- a/BIN/CP.S.txt +++ b/BIN/CP.S.txt @@ -16,6 +16,7 @@ X.DELETE.SOURCE .EQ 0 *-------------------------------------- .INB usr/src/shared/x.cpmvrm.s .INB usr/src/shared/x.fileenum.s + .INB usr/src/shared/x.checkctrl.s *-------------------------------------- CS.END .EQ * *-------------------------------------- diff --git a/BIN/DU.S.txt b/BIN/DU.S.txt index 78d414c7..9d1df761 100644 --- a/BIN/DU.S.txt +++ b/BIN/DU.S.txt @@ -1,105 +1,105 @@ NEW AUTO 3,1 - .LIST OFF - .OP 65C02 - .OR $2000 - .TF bin/du + .LIST OFF + .OP 65C02 + .OR $2000 + .TF bin/du *-------------------------------------- - .INB inc/macros.i - .INB inc/a2osx.i - .INB inc/mli.i - .INB inc/mli.e.i + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/mli.i + .INB inc/mli.e.i *-------------------------------------- -X.ENTER.SUBDIR .EQ 1 -X.COPY.TO.DEST .EQ 0 -X.DELETE.SOURCE .EQ 0 +X.ENTER.SUBDIR .EQ 1 +X.COPY.TO.DEST .EQ 0 +X.DELETE.SOURCE .EQ 0 X.RESET.SRC.DIR .EQ 1 *-------------------------------------- - .DUMMY - .OR ZPBIN + .DUMMY + .OR ZPBIN ZS.START -ZPPtr1 .BS 2 -ZPPtr2 .BS 2 -ZPFileName .BS 2 -ZPFileStat .BS 2 +ZPPtr1 .BS 2 +ZPPtr2 .BS 2 +ZPFileName .BS 2 +ZPFileStat .BS 2 -bPass2 .BS 1 +bPass2 .BS 1 -bDirLevel .BS 1 +bDirLevel .BS 1 bCRLF .BS 1 -bPause .BS 1 -bSummary .BS 1 -bAllFiles .BS 1 +bPause .BS 1 +bSummary .BS 1 +bAllFiles .BS 1 -ArgCount .BS 1 +ArgCount .BS 1 ArgDir .BS 1 -ZS.END .ED +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- -CS.START cld - jmp (.1,x) - .DA #$61 6502,Level 1 (65c02) +CS.START cld + jmp (.1,x) + .DA #$61 6502,Level 1 (65c02) .DA #2 BIN Layout Version 2 .DA #0 .DA #0 .DA CS.END .DA ID.END .DA DS.END - .DA #64 Stack Size - .DA #ZS.END-ZS.START Zero Page Size + .DA #64 Stack Size + .DA #ZS.END-ZS.START Zero Page Size *-------------------------------------- * Relocation Table *-------------------------------------- -.1 .DA CS.INIT - .DA CS.RUN - .DA CS.SIG - .DA CS.QUIT -L.MSG.USAGE .DA MSG.USAGE -L.MSG.REG1 .DA MSG.REG1 -L.MSG.REG2 .DA MSG.REG2 -L.MSG.DIRSUMM .DA MSG.DIRSUMM -L.MSG.BDEV .DA MSG.BDEV -L.MSG.BDEVEXT .DA MSG.BDEVEXT -L.MSG.CWD .DA MSG.CWD -J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG - .DA CS.RUN.PRINT.DIR - .DA CS.RUN.PRINT.CDEV - .DA CS.RUN.PRINT.BDEV - .DA CS.RUN.PRINT.CDEV - .DA CS.RUN.PRINT.CDEV - .DA CS.RUN.PRINT.CDEV - .DA CS.RUN.PRINT.CDEV - .DA 0 +.1 .DA CS.INIT + .DA CS.RUN + .DA CS.SIG + .DA CS.QUIT +L.MSG.USAGE .DA MSG.USAGE +L.MSG.REG1 .DA MSG.REG1 +L.MSG.REG2 .DA MSG.REG2 +L.MSG.DIRSUMM .DA MSG.DIRSUMM +L.MSG.BDEV .DA MSG.BDEV +L.MSG.BDEVEXT .DA MSG.BDEVEXT +L.MSG.CWD .DA MSG.CWD +J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG + .DA CS.RUN.PRINT.DIR + .DA CS.RUN.PRINT.CDEV + .DA CS.RUN.PRINT.BDEV + .DA CS.RUN.PRINT.CDEV + .DA CS.RUN.PRINT.CDEV + .DA CS.RUN.PRINT.CDEV + .DA CS.RUN.PRINT.CDEV + .DA 0 *-------------------------------------- -CS.INIT clc - rts +CS.INIT clc + rts *-------------------------------------- -CS.RUN jsr CS.RUN.SetCRLF +CS.RUN jsr CS.RUN.SetCRLF -.1 inc ArgCount +.1 inc ArgCount lda ArgCount - >LIBC ArgV - bcs .6 + >LIBC ArgV + bcs .6 >STYA ZPPtr1 - lda (ZPPtr1) - cmp #'-' - bne .4 + lda (ZPPtr1) + cmp #'-' + bne .4 ldy #1 - lda (ZPPtr1),y + lda (ZPPtr1),y beq .9 - ldy #OptionVars-OptionList-1 + ldy #OptionVars-OptionList-1 -.2 cmp OptionList,y - beq .3 +.2 cmp OptionList,y + beq .3 dey - bpl .2 + bpl .2 .9 >LDYA L.MSG.USAGE >LIBC PutS @@ -108,130 +108,108 @@ CS.RUN jsr CS.RUN.SetCRLF sec .99 rts -.3 ldx OptionVars,y +.3 ldx OptionVars,y sec ror $0,x - bra .1 + bra .1 -.4 lda ArgDir +.4 lda ArgDir bne .9 lda ArgCount sta ArgDir >LDYA ZPPtr1 - jsr X.InitSrcDirYA - bcc .1 scan for any other args + jsr X.InitSrcDirYA + bcc .1 scan for any other args rts *-------------------------------------- -.6 lda ArgDir do we have a Source dir ? - bne CS.RUN.LOOP +.6 lda ArgDir do we have a Source dir ? + bne CS.RUN.LOOP - ldy #S.PS.pCWD + ldy #S.PS.pCWD jsr A2osX.GetPSy pha iny jsr A2osX.GetPSy ply - jsr X.InitSrcDirYA - bcs .99 + jsr X.InitSrcDirYA + bcs .99 *-------------------------------------- -CS.RUN.LOOP stz bPass2 +CS.RUN.LOOP stz bPass2 -.1 ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF - bcc .2 +.1 >SLEEP - rts I/O error + jsr X.CheckCtrl + bcs .99 + + bvs .1 -.2 tay - bne .3 no char + jsr X.GetEntry First entry + bcs .9 - >LIBC GetChar - cmp #$03 Ctrl-C - beq .99 Abort.... + jsr X.IncludeMatch Filter filename + bcs .8 no match, skip.... - cmp #$13 Ctrl-S - bne .3 + lda (ZPFileName) + cmp #'.' + beq .8 - lda bPause - eor #$ff - sta bPause - bne .1 +.4 ldy #S.STAT.MODE+1 + lda (ZPFileStat),y -.3 bit bPause - bmi .1 + and #$70 + lsr + lsr + lsr + tax + jsr CS.RUN.PRINT.JMP + bcs .99 + +.8 jsr X.GetNextEntry Next entry + bcc .1 If there is one, go again + + bit bPass2 + bmi .9 + + jsr X.ResetSrcDir + bcs .99 + + dec bPass2 + bra .1 *-------------------------------------- - jsr X.GetEntry First entry - bcs .9 +.9 bit bSummary + bmi .91 - jsr X.IncludeMatch Filter filename - bcs .8 no match, skip.... + jsr CS.RUN.PrintDirSumm + jsr CS.RUN.PrintCwd + jsr CS.RUN.NewLine - lda (ZPFileName) - cmp #'.' - beq .8 +.91 dec bDirLevel + jsr X.LeaveSubDir "cd .." + bcs .97 This means we are done -.4 ldy #S.STAT.MODE+1 - lda (ZPFileStat),y + jsr X.BasePath.. Prune pathname - and #$70 - lsr - lsr - lsr - tax - jsr CS.RUN.PRINT.JMP - bcs .99 - -.8 jsr X.GetNextEntry Next entry - bcc .1 If there is one, go again - - bit bPass2 - bmi .9 - - jsr X.ResetSrcDir - bcs .99 - - dec bPass2 - bra .1 -*-------------------------------------- -.9 bit bSummary - bmi .91 - - jsr CS.RUN.PrintDirSumm - jsr CS.RUN.PrintCwd - jsr CS.RUN.NewLine - -.91 dec bDirLevel - jsr X.LeaveSubDir "cd .." - bcs .97 This means we are done - - jsr X.BasePath.. Prune pathname - - jsr X.GetNextEntry Get next entry - jmp CS.RUN.LOOP Go again + jsr X.GetNextEntry Get next entry + jmp CS.RUN.LOOP Go again .97 bit bSummary - bpl .98 + bpl .98 - inc bDirLevel - jsr CS.RUN.PrintDirSumm - jsr CS.RUN.PrintBaseDir - jsr CS.RUN.NewLine + inc bDirLevel + jsr CS.RUN.PrintDirSumm + jsr CS.RUN.PrintBaseDir + jsr CS.RUN.NewLine -.98 lda #0 - sec -.99 rts +.98 lda #0 + sec +.99 rts *-------------------------------------- CS.RUN.PRINT.JMP - jmp (J.CS.RUN.PRINT,x) + jmp (J.CS.RUN.PRINT,x) *-------------------------------------- CS.RUN.PRINT.REG bit bPass2 @@ -449,35 +427,36 @@ CS.RUN.SetCRLF ldy #S.PS.pStdOut .9 rts *-------------------------------------- CS.SIG sec - rts + rts *-------------------------------------- -CS.QUIT jmp X.Quit +CS.QUIT jmp X.Quit *-------------------------------------- - .INB usr/src/shared/x.fileenum.s + .INB usr/src/shared/x.checkctrl.s + .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * *-------------------------------------- -OptionList .AS "SAsa" -OptionVars .DA #bSummary,#bAllFiles,#bSummary,#bAllFiles +OptionList .AS "SAsa" +OptionVars .DA #bSummary,#bAllFiles,#bSummary,#bAllFiles *-------------------------------------- -MSG.USAGE .CS "Usage : DU [-A] [-S] [filespec]\r\n" - .CS " -A : Show all files (not only directories)\r\n" - .CZ " -S : Show only summary\r\n" -MSG.REG1 .CZ "%5u " -MSG.REG2 .CZ "%s" -MSG.CWD .CZ "%s" -MSG.DIRSUMM .CZ "%5u " -MSG.BDEVEXT .CZ "/%15s s%dd%d Blocks Used:%5D Total:%5D" -MSG.BDEV .CZ "\e[32m%s/\e[0m" +MSG.USAGE .CS "Usage : DU [-A] [-S] [filespec]\r\n" + .CS " -A : Show all files (not only directories)\r\n" + .CZ " -S : Show only summary\r\n" +MSG.REG1 .CZ "%5u " +MSG.REG2 .CZ "%s" +MSG.CWD .CZ "%s" +MSG.DIRSUMM .CZ "%5u " +MSG.BDEVEXT .CZ "/%15s s%dd%d Blocks Used:%5D Total:%5D" +MSG.BDEV .CZ "\e[32m%s/\e[0m" *-------------------------------------- ID.END .EQ * *-------------------------------------- - .DUMMY - .OR 0 + .DUMMY + .OR 0 -BlkCounters .BS 64 Array of 32 bit integers, size 16 - .INB usr/src/shared/x.fileenum.g -DS.END .ED +BlkCounters .BS 64 Array of 32 bit integers, size 16 + .INB usr/src/shared/x.fileenum.g +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/du.s diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 2823cf64..fa9eac92 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -544,7 +544,7 @@ BUF.BufPtrSetup >STYA TmpLen bcc .8 - jsr BUF.BufPtr.Realloc + jsr BUF.Realloc bcs .9 jsr BUF.ComputeCOffset @@ -570,11 +570,10 @@ BUF.BufPtrSetup >STYA TmpLen clc .9 rts *-------------------------------------- -BUF.BufPtr.Realloc - >SS +BUF.Realloc >SS >PUSHW.G pBuf - lda FileLen+1 + lda BufLen+1 inc inc sta BufLen+1 diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index ce249c46..642ff632 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -227,6 +227,7 @@ Ctrl.LF jsr BUF.GetNextLine Ctrl.VT >LDA.G FileY+1 tax dey + >DEBUG ora (pData),y beq .8 diff --git a/BIN/EDIT.S.FILE.txt b/BIN/EDIT.S.FILE.txt index 5ba64695..04e18cbe 100644 --- a/BIN/EDIT.S.FILE.txt +++ b/BIN/EDIT.S.FILE.txt @@ -133,7 +133,7 @@ FILE.Load.ASM.Decode .9 rts -.2 cmp #$C0 REPEAT char? +.2 cmp #$C0 REPEAT char? bne .5 lda (LineBufPtr),y Get Repeat Count @@ -148,10 +148,10 @@ FILE.Load.ASM.Decode dex bne .4 - iny Skip Repeat char + iny Skip Repeat char bra .1 -.5 and #$3F Compute blank count +.5 and #$3F Compute blank count tax .6 lda #C.SPACE @@ -166,10 +166,7 @@ FILE.Load.ASM.Decode .8 lda #C.CR *-------------------------------------- -FILE.Load.2Buf phy - phx - - sta (BufPtr) +FILE.Load.2Buf sta (BufPtr) inc BufPtr bne .1 @@ -182,9 +179,15 @@ FILE.Load.2Buf phy lda FileLen+1 cmp BufLen+1 - bne .8 + beq .2 + +.8 clc + rts - jsr BUF.BufPtr.Realloc +.2 phy + phx + + jsr BUF.Realloc bcs .9 >LDA.G pBuf @@ -196,10 +199,11 @@ FILE.Load.2Buf phy adc FileLen+1 sta BufPtr+1 -.8 clc +* clc .9 plx ply + FILE.Save.9 rts *-------------------------------------- FILE.Save >LDYA.G pLineBuf diff --git a/BIN/GREP.S.txt b/BIN/GREP.S.txt index 3aa986c1..3dfe838d 100644 --- a/BIN/GREP.S.txt +++ b/BIN/GREP.S.txt @@ -36,13 +36,12 @@ ZPPtr1 .BS 2 ZPPatternPtr .BS 2 ZPBufPtr .BS 2 -ArgIndex .BS 1 -ArgPattern .BS 1 - pFILE .BS 2 LineNum .BS 2 char .BS 1 +ArgIndex .BS 1 + bIgnoreCase .BS 1 bLineNum .BS 1 @@ -137,11 +136,9 @@ CS.RUN.CheckArgs cmp #'-' beq .1 - lda ArgPattern + lda ZPPatternPtr+1 bne .11 - lda ArgIndex - sta ArgPattern >LDYA ZPPtr1 >STYA ZPPatternPtr bra CS.RUN.CheckArgs @@ -186,8 +183,10 @@ CS.RUN.CheckArgs .7 lda pFILE+1 bne .8 - jsr CS.RUN.CheckPipe - bcs .98 + jsr X.IsPipeIn + bcs .9 + + bvc .97 >STYA pFILE @@ -295,41 +294,6 @@ CS.RUN.PRINT >LDYA ZPBufPtr .8 clc .9 rts *-------------------------------------- -CS.RUN.CheckPipe - ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - - >STYA ZPPtr1 - - >LIBC FileNo - bcs .99 - - >SS - >PUSHYA - >PUSHEA.G STATBUF - >LIBC FStat - >SR - bcs .99 - - >LDA.G STATBUF+S.STAT.MODE+1 - and #$F0 - - cmp /S.STAT.MODE.FIFO - bne .98 - - >LDYA ZPPtr1 - - clc - rts - -.98 lda #E.SYN - sec -.99 rts -*-------------------------------------- CS.RUN.toUpper bit bIgnoreCase bpl .9 @@ -358,6 +322,8 @@ CS.QUIT >LDYA pFILE *-------------------------------------- CS.SIG sec rts +*-------------------------------------- + .INB usr/src/shared/x.ispipein.s *-------------------------------------- CS.END .EQ * *-------------------------------------- diff --git a/BIN/LC.S.txt b/BIN/LC.S.txt index 840daee8..e8b533f5 100644 --- a/BIN/LC.S.txt +++ b/BIN/LC.S.txt @@ -105,34 +105,12 @@ CS.RUN inc ArgIndex >STYA ZPNewPath *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 - tay - bne .1 - - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 lda bPause - bne CS.RUN.LOOP Pause... + bvs CS.RUN.LOOP Pause... *-------------------------------------- jsr X.GetEntry bcs CS.RUN.LEAVE @@ -338,6 +316,7 @@ CS.RUN.CheckOpt ldy #1 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 8b1849fa..b17c8afe 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -104,18 +104,22 @@ CS.RUN ldy #S.PS.pStdOut >LIBC FileNo bcs .99 - >PUSHYA - >PUSHEA.G STATBUF - >LIBC FStat + >KAPI GetFDByID bcs .99 - - >LDA.G STATBUF+S.STAT.MODE+1 - and #$F0 - -* cmp /S.STAT.MODE.REG + + >STYA ZPPtr1 + lda (ZPPtr1) + + pha + + >LDYA ZPPtr1 + >LIBC Free + + pla +* cmp #S.FD.T.REG beq .10 - cmp /S.STAT.MODE.FIFO + cmp #S.FD.T.PIPE bne .1 .10 dec bToFile @@ -127,7 +131,7 @@ CS.RUN ldy #S.PS.pStdOut bcs .6 >STYA ZPPtr1 - + lda (ZPPtr1) cmp #'-' bne .4 @@ -149,7 +153,7 @@ CS.RUN ldy #S.PS.pStdOut >PUSHBI 0 >LIBC PrintF >SR - + lda #E.SYN sec rts @@ -158,11 +162,11 @@ CS.RUN ldy #S.PS.pStdOut tax * sec ror $0,x - + iny lda (ZPPtr1),y bne .20 - + bra .1 *-------------------------------------- .4 >LDYA ZPPtr1 @@ -180,7 +184,7 @@ CS.RUN ldy #S.PS.pStdOut iny jsr A2osX.GetPSy ply - + jsr X.InitSrcDirYA bcs .9 @@ -204,32 +208,10 @@ CS.RUN.LOOP stz bPass2 .1 >SLEEP - ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF - bcs .99 I/O error - - tay - bne .2 no char - - >LIBC GetChar - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .2 - - lda bPause - eor #$ff - sta bPause - bne .1 - -.2 bit bPause - bmi .1 + jsr X.CheckCtrl + bcs .99 + + bvs CS.RUN.LOOP *-------------------------------------- jsr X.GetEntry bcs .6 @@ -246,7 +228,7 @@ CS.RUN.LOOP stz bPass2 .4 ldy #S.STAT.MODE+1 lda (ZPFileStat),y - + and #$70 lsr lsr @@ -430,7 +412,7 @@ CS.RUN.PRINT.CDEV bit bColumn bpl .1 - + jmp CS.RUN.PRINT.CDEV1 .1 bit bFullPath @@ -444,7 +426,7 @@ CS.RUN.PRINT.CDEV jsr CS.RUN.FN2LineBuf jsr CS.RUN.IncColCnt bcs .9 - + jmp CS.RUN.PRINT.CDEVEND .9 rts @@ -462,7 +444,7 @@ CS.RUN.PRINT.CDEVEXT >SR jsr CS.RUN.PrintDates - + ldy #COLOR.CDEV jsr CS.RUN.SetColorY @@ -472,10 +454,10 @@ CS.RUN.PRINT.CDEV1 jsr CS.RUN.FN2LineBuf jsr CS.RUN.LineBufOut bcs .9 - + jmp CS.RUN.PRINT.CDEVEND -.9 rts +.9 rts *-------------------------------------- CS.RUN.PRINT.BDEV clc @@ -593,7 +575,7 @@ CS.RUN.ENTER.MSG jsr CS.RUN.LineBufYAOut >LDYA.G pSrcBasePath - + jsr CS.RUN.LineBufYAOut ldy #0 @@ -706,7 +688,7 @@ CS.RUN.PrintDates lda #0 adc ZPFileStat+1 sta ZPPtr1+1 - + >SS >PUSHW ZPLineBufPtr @@ -871,6 +853,7 @@ CS.RUN.LineBufFlush1 CS.RUN.LineBufOut lda #C.CR jsr CS.RUN.LineBufCOut + bit bToFile bmi .1 @@ -881,7 +864,7 @@ CS.RUN.LineBufOut sta (ZPLineBufPtr) >SS - + >LDYA ZPLineBuf >STYA ZPLineBufPtr >PUSHYA @@ -892,7 +875,7 @@ CS.RUN.LineBufOut dey jsr A2osX.GetPSy >PUSHA - + >LIBC FPutS >SR rts @@ -967,6 +950,8 @@ CS.QUIT jsr X.LeaveSubDir .8 clc rts *-------------------------------------- + .INB usr/src/shared/x.ispipein.s + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * diff --git a/BIN/MAC2UNIX.S.txt b/BIN/MAC2UNIX.S.txt index 7849378b..ce036d8f 100644 --- a/BIN/MAC2UNIX.S.txt +++ b/BIN/MAC2UNIX.S.txt @@ -7,7 +7,6 @@ NEW *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i - .INB inc/kernel.i .INB inc/mli.i .INB inc/mli.e.i *-------------------------------------- @@ -99,9 +98,12 @@ CS.RUN inc ArgIndex .5 >LDA.G hSrcBasePath bne .6 - ldy #S.PS.hCWD - lda (pPS),y - >SYSCALL GetMemPtr + ldy #S.PS.pCWD + jsr A2osX.GetPSy + pha + iny + jsr A2osX.GetPSy + ply >STYA ZPPtr1 .6 >LDYAI 256 @@ -134,8 +136,12 @@ CS.RUN inc ArgIndex >STYA ZPFileBuf *-------------------------------------- -CS.RUN.LOOP jsr CS.RUN.CheckSTDIN +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 + + bvs CS.RUN.LOOP jsr X.GetEntry bcs .9 @@ -176,39 +182,6 @@ CS.RUN.LOOP jsr CS.RUN.CheckSTDIN sec .99 rts *-------------------------------------- -CS.RUN.CheckSTDIN - ldy #S.PS.hStdIn - lda (pPS),y - >SYSCALL FEOF - bcs .9 - - tay - bne .1 - - >SYSCALL GetChar - bcs .9 - - cmp #$03 Ctrl-C - beq .9 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.CheckSTDIN - - clc - rts - -.1 lda bPause - bne CS.RUN.CheckSTDIN Pause... - -* clc - -.9 rts -*-------------------------------------- CS.RUN.DIR lda bRecurse bpl .8 @@ -407,9 +380,10 @@ CS.RUN.CheckOpt ldy #1 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- -CS.END +CS.END .EQ * *-------------------------------------- OptionList .AS "CRcr" OptionVars .DA #bContinue,#bRecurse diff --git a/BIN/MEMDUMP.S.txt b/BIN/MEMDUMP.S.txt index 655e279d..144589ca 100644 --- a/BIN/MEMDUMP.S.txt +++ b/BIN/MEMDUMP.S.txt @@ -277,11 +277,9 @@ CS.RUN.CHECKPS lda (ZPPTR1) Get flags *-------------------------------------- CS.RUN.CheckStop lda bSTOP - beq .2 + beq .8 -.1 >SLEEP - - >LIBC GetChar +.1 >LIBC GetChar bcs .9 cmp #3 Ctrl-C @@ -289,32 +287,6 @@ CS.RUN.CheckStop stz bSTOP - clc - rts - -.2 ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF - bcs .9 - - tay - bne .8 no char - - >LIBC GetChar - bcs .9 - - cmp #3 Ctrl-C - beq .9 CS - - cmp #$13 Ctrl-S - bne .8 - - dec bSTOP - .8 clc .9 rts *-------------------------------------- diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 7b425527..1413661e 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -14,6 +14,7 @@ X.ENTER.SUBDIR .EQ 0 X.COPY.TO.DEST .EQ 1 X.DELETE.SOURCE .EQ 1 *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.cpmvrm.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- diff --git a/BIN/NL.S.txt b/BIN/NL.S.txt index 09e019f3..1ab9b07d 100644 --- a/BIN/NL.S.txt +++ b/BIN/NL.S.txt @@ -7,7 +7,6 @@ NEW *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i - .INB inc/kernel.i .INB inc/mli.i .INB inc/mli.e.i *-------------------------------------- @@ -18,15 +17,15 @@ ArgIndex .BS 1 ArgPattern .BS 1 ZPPtr1 .BS 2 ZPBufPtr .BS 2 -hFile .BS 1 -hBuf .BS 1 +pFile .BS 2 + char .BS 1 LineCount .BS 2 + bPause .BS 1 -bPipe .BS 1 + bIsTTY .BS 1 bNewLine .BS 1 -bDummy .BS 1 ZS.END .ED *-------------------------------------- @@ -34,21 +33,21 @@ ZS.END .ED *-------------------------------------- CS.START cld jmp (.1,x) - .DA #$61 6502,Level 1 (65c02) - .DA #1 BIN Layout Version 1 - .DA #0 S.PS.F.EVENT - .DA #0 - .DA CS.END-CS.START Code Size (without Constants) - .DA DS.END-DS.START Data Segment Size - .DA #16 Stack Size - .DA #ZS.END-ZS.START Zero Page Size - .DA 0 + .DA #$61 6502,Level 1 (65c02) + .DA #2 BIN Layout Version 2 + .DA #0 + .DA #0 + .DA CS.END + .DA ID.END + .DA DS.END + .DA #64 Stack Size + .DA #ZS.END-ZS.START Zero Page Size *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN - .DA CS.DOEVENT + .DA CS.SIG .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.CRLF .DA MSG.CRLF @@ -58,11 +57,9 @@ L.MSG.LINENUM .DA MSG.LINENUM CS.INIT clc rts *-------------------------------------- -CS.RUN stz bPipe - stz bIsTTY - stz bNewLine - inc bNewLine - jsr CS.RUN.ISATTY +CS.RUN inc bNewLine + + jsr CS.RUN.ISATTY jsr CS.RUN.CheckArgs bcs CS.RUN.LOOP.RTS @@ -70,37 +67,14 @@ CS.RUN stz bPipe stz LineCount+1 inc LineCount -CS.RUN.LOOP lda bPipe If reading from pipe - bne .2 No ^C/^S handling +CS.RUN.LOOP >SLEEP - ldy #S.PS.hStdIn - lda (pPS),y - >LIBC FEOF - bcs .9 I/O Error + jsr X.CheckCtrl + bcs .9 + + bvs CS.RUN.LOOP - tay - bne .1 No char - - >LIBC GetChar - bcs .9 I/O error - - cmp #$03 Ctrl-C - beq .9 - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 lda bPause - bne CS.RUN.LOOP - -.2 >SLEEP - - lda hFile + >LDYA pFile >LIBC GetC bcs .7 @@ -154,32 +128,22 @@ CS.RUN.CheckArgs lda #$80 sta bDummy-1,x bra CS.RUN.CheckArgs - -.4 lda hFile +*-------------------------------------- +.4 lda pFile+1 bne .80 - ldy #S.PS.hStdIn - lda (pPS),y - tay - ldx FILEs.hFD-1,y - lda FDs.pLO-1,x - sta ZPPtr1 - lda FDs.pHI-1,x - sta ZPPtr1+1 + jsr X.IsPipeIn + bcs .99 - lda (ZPPtr1) - cmp #S.FD.T.PIPE - bne .97 - - sty hFile - inc bPipe + bvc .97 + + >STYA pFile .80 >LDYAI 256 - >LIBC GetMem + >LIBC Malloc bcs .9 >STYA ZPBufPtr - stx hBuf * clc @@ -193,7 +157,7 @@ CS.RUN.CheckArgs >LIBC PrintF pla sec - rts +.99 rts *-------------------------------------- CS.RUN.NextArg inc ArgIndex lda ArgIndex @@ -204,14 +168,16 @@ CS.RUN.NextArg inc ArgIndex .9 rts *-------------------------------------- -CS.RUN.OPEN >PUSHYA +CS.RUN.OPEN >SS + >PUSHYA >PUSHBI O.RDONLY+O.TEXT >PUSHBI S.FI.T.TXT >PUSHWZ Aux type >LIBC FOpen - bcs .9 + >SR + bcs .9 - sta hFile + >STYA pFile .9 rts *-------------------------------------- @@ -274,21 +240,26 @@ CS.RUN.PRINTBYTE inc LineCount+1 .9 rts *-------------------------------------- -CS.DOEVENT sec +CS.SIG sec rts *-------------------------------------- -CS.END + .INB usr/src/shared/x.ispipein.s + .INB usr/src/shared/x.checkctrl.s *-------------------------------------- -OptionList .AS "x" +CS.END .EQ * +*-------------------------------------- +OptionList .AS "Xx" OptionList.Cnt .EQ *-OptionList *-------------------------------------- MSG.USAGE .CS "Usage : NL or CMD|NL" MSG.CRLF .CZ "\r\n" MSG.LINENUM .CZ "%5D " +*-------------------------------------- +ID.END .EQ * *-------------------------------------- .DUMMY .OR 0 -DS.START +STATBUF .BS S.STAT DS.END .ED *-------------------------------------- MAN diff --git a/BIN/NSCUTIL.S.txt b/BIN/NSCUTIL.S.txt index b5bb4a69..56678ebb 100644 --- a/BIN/NSCUTIL.S.txt +++ b/BIN/NSCUTIL.S.txt @@ -28,20 +28,20 @@ ZS.END .ED CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) - .DA #1 BIN Layout Version 1 + .DA #2 BIN Layout Version 2 .DA #0 S.PS.F.EVENT .DA #0 - .DA CS.END-CS.START Code Size (without Constants) - .DA DS.END-DS.START Data Segment Size - .DA #16 Stack Size + .DA CS.END + .DA ID.END + .DA DS.END + .DA #64 Stack Size .DA #ZS.END-ZS.START Zero Page Size - .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN - .DA CS.DOEVENT + .DA CS.SIG .DA CS.QUIT L.MSG.READ.KO .DA MSG.READ.KO L.MSG.READ.OK1 .DA MSG.READ.OK1 @@ -55,10 +55,9 @@ L.MSG.CRLF .DA MSG.CRLF CS.INIT clc rts *-------------------------------------- -CS.RUN ldy #S.PS.ARGC - lda (pPS),y - cmp #1 - bcs CS.RUN.SET +CS.RUN lda #1 + >LIBC ArgV + bcc CS.RUN.SET CS.RUN.READ jsr NSC.Init jsr NSC.Read @@ -71,25 +70,22 @@ CS.RUN.READ jsr NSC.Init dex bpl .1 - >PUSHW L.MSG.READ.KO - >PUSHBI 0 - >LIBC PrintF + >LDYA L.MSG.READ.KO + >LIBC PutS lda #MLI.E.NODEV sec rts .8 jsr NSC.Dump - >PUSHW L.MSG.USAGE - >PUSHBI 0 - >LIBC PrintF + >LDYA L.MSG.USAGE + >LIBC PutS lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts - -CS.RUN.SET lda #1 - >LIBC ArgV - >STYA ZPPtr1 +*-------------------------------------- +CS.RUN.SET >STYA ZPPtr1 + >LIBC StrLen cpy #17 bne .9 @@ -164,7 +160,7 @@ CS.RUN.SET lda #1 sec rts *-------------------------------------- -CS.DOEVENT sec +CS.SIG sec rts *-------------------------------------- CS.QUIT clc @@ -300,7 +296,8 @@ NSC.Select sta NSC.IOBASE rts *-------------------------------------- -NSC.Dump >PUSHW L.MSG.READ.OK1 +NSC.Dump >SS + >PUSHW L.MSG.READ.OK1 ldx #1 ldy #1 lda DS121x.DATA1+3 @@ -320,6 +317,7 @@ NSC.Dump >PUSHW L.MSG.READ.OK1 >PUSHBI 2 >LIBC PrintF + >SR >LDYA L.MSG.READ.OK2.24 bit DS121x.DATA1+4 @@ -329,9 +327,11 @@ NSC.Dump >PUSHW L.MSG.READ.OK1 .3 >LIBC PutS + >SS >PUSHW L.MSG.READ.OK3 >PUSHBI 0 >LIBC PrintF + >SR lda DS121x.DATA1 jsr PrintBCD @@ -375,9 +375,11 @@ NSC.Dump >PUSHW L.MSG.READ.OK1 lda DS121x.DATA1+7 jsr PrintBCD + >SS >PUSHW L.MSG.CRLF >PUSHBI 0 >LIBC PrintF + >SR rts *-------------------------------------- PrintBCD pha @@ -424,18 +426,23 @@ IsDigit cmp #'0' .9 sec rts *-------------------------------------- -CS.END +CS.END .EQ * +*-------------------------------------- MSG.READ.KO .CZ "DS1216E Not Detected.\r\n" MSG.READ.OK1 .CZ "DS1216E Detected : /OSC=%d, /RST=%d, mode=" MSG.READ.OK2.12 .CZ "am/pm" MSG.READ.OK2.24 .CZ "24h" MSG.READ.OK3 .CZ "\r\nCurrent Date/Time : " -MSG.USAGE .CS "\r\nTo Reset the chip and set clock, type:\r\nNSCUTIL YY/MM/DD,hh:mm:ss" +MSG.USAGE .CS "\r\nTo Reset the chip and set clock, type:\r\n" + .CS " nscutil YY/MM/DD,hh:mm:ss" MSG.CRLF .CZ "\r\n" DS121x.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0 *-------------------------------------- -DS.START -DS.END +ID.END .EQ * +*-------------------------------------- + .DUMMY + .OR 0 +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/nscutil.s diff --git a/BIN/OD.S.txt b/BIN/OD.S.txt index bd20bd5b..7e572acc 100644 --- a/BIN/OD.S.txt +++ b/BIN/OD.S.txt @@ -62,42 +62,18 @@ CS.RUN jsr CS.RUN.ISATTY jsr CS.RUN.CheckArgs bcs CS.RUN.LOOP.RTS - +*-------------------------------------- CS.RUN.LOOP bit bIsPipe If reading from pipe bpl .2 No ^C/^S handling - ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF - bcs .9 I/O Error +.1 >SLEEP - tay - bne .1 No char + jsr X.CheckCtrl + bcs .99 + + bvs .1 - >LIBC GetChar - bcs .9 I/O error - - cmp #$03 Ctrl-C - beq .9 - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 lda bPause - bne CS.RUN.LOOP - -.2 >SLEEP - - >LDYA pFile +.2 >LDYA pFile >LIBC GetC bcs .7 @@ -112,6 +88,8 @@ CS.RUN.LOOP bit bIsPipe If reading from pipe .8 lda #0 Exit with no Error .9 sec + +.99 CS.RUN.LOOP.RTS rts *-------------------------------------- CS.RUN.CheckArgs @@ -131,7 +109,7 @@ CS.RUN.CheckArgs >STYA pFile bra CS.RUN.CheckArgs - +*-------------------------------------- .1 ldy #1 lda (ZPPtr1),y @@ -153,7 +131,7 @@ CS.RUN.CheckArgs lda #$80 sta bDummy-1,x bra CS.RUN.CheckArgs - +*-------------------------------------- .4 lda pFile+1 beq .98 @@ -198,43 +176,6 @@ CS.RUN.OPEN >SS .9 rts *-------------------------------------- -CS.RUN.IsPipe ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - - >LIBC FileNo - bcs .9 - - >SS - >PUSHYA - >PUSHEA.G STATBUF - >LIBC FStat - >SR - bcs .9 - - >LDA.G STATBUF+S.STAT.MODE+1 - and #$F0 - - cmp /S.STAT.MODE.FIFO - bne .8 - - ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - - >STYA pFile - dec bIsPipe - -.8 clc - -.9 rts -*-------------------------------------- CS.RUN.ISATTY ldy #S.PS.pStdOut jsr A2osX.GetPSy pha @@ -374,6 +315,9 @@ CS.RUN.FINISHUP *-------------------------------------- CS.DOEVENT sec rts +*-------------------------------------- + .INB usr/src/shared/x.ispipein.s + .INB usr/src/shared/x.checkctrl.s *-------------------------------------- CS.END .EQ * *-------------------------------------- diff --git a/BIN/RM.S.txt b/BIN/RM.S.txt index d0cec1cb..5a0d2478 100644 --- a/BIN/RM.S.txt +++ b/BIN/RM.S.txt @@ -14,6 +14,7 @@ X.ENTER.SUBDIR .EQ 0 X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 1 *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.cpmvrm.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- diff --git a/BIN/UC.S.txt b/BIN/UC.S.txt index 7c148366..d7315410 100644 --- a/BIN/UC.S.txt +++ b/BIN/UC.S.txt @@ -105,35 +105,13 @@ CS.RUN inc ArgIndex >STYA ZPNewPath *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 + + bvs CS.RUN.LOOP Pause... - tay - bne .1 - - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.1 lda bPause - bne CS.RUN.LOOP Pause... -*-------------------------------------- jsr X.GetEntry bcs CS.RUN.LEAVE @@ -355,6 +333,7 @@ CS.RUN.CheckOpt ldy #1 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * diff --git a/BIN/UNIX2MAC.S.txt b/BIN/UNIX2MAC.S.txt index 6dc40483..82f3cbfa 100644 --- a/BIN/UNIX2MAC.S.txt +++ b/BIN/UNIX2MAC.S.txt @@ -7,7 +7,6 @@ NEW *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i - .INB inc/kernel.i .INB inc/mli.i .INB inc/mli.e.i *-------------------------------------- @@ -29,7 +28,7 @@ ZPRelPath .BS 2 ZPFileBuf .BS 2 ArgIndex .BS 1 -hFile .BS 1 +pFile .BS 2 FilePos .BS 4 @@ -46,19 +45,20 @@ ZS.END .ED CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) - .DA #1 BIN Layout Version 1 - .DA 0 - .DA CS.END-CS.START Code Size (without Constants) - .DA DS.END-DS.START Data SegmentSize + .DA #2 BIN Layout Version 2 + .DA #0 + .DA #0 + .DA CS.END + .DA ID.END + .DA DS.END .DA #64 Stack Size .DA #ZS.END-ZS.START Zero Page Size - .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN - .DA CS.DOEVENT + .DA CS.SIG .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.CRLF .DA MSG.CRLF @@ -70,7 +70,7 @@ CS.INIT clc *-------------------------------------- CS.RUN inc ArgIndex lda ArgIndex - >SYSCALL ArgV + >LIBC ArgV bcs .5 >STYA ZPPtr1 @@ -82,12 +82,13 @@ CS.RUN inc ArgIndex bcc CS.RUN .9 >LDYA L.MSG.USAGE - >SYSCALL PutS + >LIBC PutS lda #E.SYN sec rts -.4 >LDA.G hSrcBasePath +.4 >LDYA.G pSrcBasePath + cmp #0 bne .9 >LDYA ZPPtr1 @@ -96,22 +97,24 @@ CS.RUN inc ArgIndex .99 rts *-------------------------------------- -.5 >LDA.G hSrcBasePath +.5 >LDA.G pSrcBasePath+1 bne .6 - ldy #S.PS.hCWD - lda (pPS),y - >SYSCALL GetMemPtr + ldy #S.PS.pCWD + jsr A2osX.GetPSy + pha + iny + jsr A2osX.GetPSy + ply >STYA ZPPtr1 .6 >LDYAI 256 - >SYSCALL Malloc + >LIBC Malloc bcs .99 >STYA ZPFullPath - >LDA.G hSrcBasePath - >SYSCALL GetMemPtr + >LDYA.G pSrcBasePath >STYA ZPPtr1 ldy #$ff @@ -129,13 +132,17 @@ CS.RUN inc ArgIndex sta ZPRelPath+1 >LDYAI 256 - >SYSCALL Malloc + >LIBC Malloc bcs .99 >STYA ZPFileBuf *-------------------------------------- -CS.RUN.LOOP jsr CS.RUN.CheckSTDIN +CS.RUN.LOOP >SLEEP + + jsr X.CheckCtrl bcs .99 + + bvs CS.RUN.LOOP jsr X.GetEntry bcs .9 @@ -176,39 +183,6 @@ CS.RUN.LOOP jsr CS.RUN.CheckSTDIN sec .99 rts *-------------------------------------- -CS.RUN.CheckSTDIN - ldy #S.PS.hStdIn - lda (pPS),y - >SYSCALL FEOF - bcs .9 - - tay - bne .1 - - >SYSCALL GetChar - bcs .9 - - cmp #$03 Ctrl-C - beq .9 Abort.... - - cmp #$13 Ctrl-S - bne .1 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.CheckSTDIN - - clc - rts - -.1 lda bPause - bne CS.RUN.CheckSTDIN Pause... - -* clc - -.9 rts -*-------------------------------------- CS.RUN.DIR lda bRecurse bpl .8 @@ -255,10 +229,10 @@ CS.RUN.FILE jsr X.IncludeMatch .99 rts *-------------------------------------- CS.RUN.FILE.LOOP -.1 >PUSHB hFile +.1 >PUSHW pFile >PUSHW ZPFileBuf >PUSHWI 256 - >SYSCALL FRead + >LIBC FRead bcs .8 >STYA ByteCnt @@ -268,10 +242,10 @@ CS.RUN.FILE.LOOP jsr CS.RUN.FSeek bcs .99 - >PUSHB hFile + >PUSHW pFile >PUSHW ZPFileBuf >PUSHW ByteCnt - >SYSCALL FWrite + >LIBC FWrite bcs .99 lda ByteCnt @@ -317,7 +291,7 @@ CS.RUN.CheckErr bcc .9 >PUSHW L.MSG.ERR >PUSHA >PUSHBI 1 - >SYSCALL PrintF + >LIBC PrintF lda bContinue eor #$80 asl @@ -327,62 +301,51 @@ CS.RUN.CheckErr bcc .9 *-------------------------------------- CS.RUN.GetFilePath >PUSHW ZPFullPath - >LDA.G hSrcBasePath - >SYSCALL GetMemPtr - >PUSHYA - >SYSCALL StrCpy + >PUSHW.G pSrcBasePath + >LIBC StrCpy >PUSHW ZPFullPath >PUSHW ZPFileName - >SYSCALL StrCat + >LIBC StrCat rts *-------------------------------------- CS.RUN.OpenFile >PUSHW ZPFullPath >PUSHBI O.RDWR+O.APPEND >PUSHBI 0 Type >PUSHWZ Aux type - >SYSCALL FOpen + >LIBC FOpen bcs CS.RUN.FSeek.9 - sta hFile + >STYA pFile stz FilePos stz FilePos+1 stz FilePos+2 stz FilePos+3 -CS.RUN.FSeek >PUSHB hFile +CS.RUN.FSeek >PUSHW pFile >PUSHL FilePos >PUSHBI SEEK.SET - >SYSCALL fseek + >LIBC fseek CS.RUN.FSeek.9 rts *-------------------------------------- CS.RUN.CloseFile - lda hFile - >SYSCALL FClose + >LDYA pFile + >LIBC FClose bcs .9 - stz hFile + stz pFile+1 .9 rts *-------------------------------------- -CS.DOEVENT sec +CS.SIG sec rts *-------------------------------------- -CS.QUIT jsr X.LeaveSubDir - bcc CS.QUIT - - >LDA.G hInclude - beq .1 - - >SYSCALL FreeMem - -.1 >LDYA ZPFileBuf - >SYSCALL Free +CS.QUIT jsr X.Quit .2 >LDYA ZPFullPath - >SYSCALL Free + >LIBC Free .8 clc rts @@ -407,9 +370,10 @@ CS.RUN.CheckOpt ldy #1 clc rts *-------------------------------------- + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- -CS.END +CS.END .EQ * *-------------------------------------- OptionList .AS "CRcr" OptionVars .DA #bContinue,#bRecurse @@ -420,12 +384,12 @@ MSG.USAGE .CS "Usage : UNIX2MAC File(s) (*,? wildcards allowed)\r\n" .CS " -R : Recurse subdirectories\r\n" MSG.CRLF .CZ "\r\n" MSG.ERR .CZ "[%h]\r\n" +*-------------------------------------- +ID.END .EQ * *-------------------------------------- .DUMMY .OR 0 -DS.START .INB usr/src/shared/x.fileenum.g - DS.END .ED *-------------------------------------- MAN diff --git a/BIN/WC.S.txt b/BIN/WC.S.txt index 7b907d85..f63df0e9 100644 --- a/BIN/WC.S.txt +++ b/BIN/WC.S.txt @@ -122,32 +122,11 @@ CS.RUN inc ArgIndex >LDA.G pSrcBasePath+1 bne .6 - ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - - >STYA ZPPtr1 - - >LIBC FileNo - bcs .99 - - >SS - >PUSHYA - >PUSHEA.G STATBUF - >LIBC FStat - >SR + jsr X.IsPipeIn bcs .99 - >LDA.G STATBUF+S.STAT.MODE+1 - and #$F0 - - cmp /S.STAT.MODE.FIFO - bne .98 + bvc .98 - >LDYA ZPPtr1 >STYA pFile jmp CS.RUN.PIPE @@ -175,35 +154,11 @@ CS.RUN inc ArgIndex adc #0 sta ZPRelPath+1 *-------------------------------------- -CS.RUN.LOOP ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF +CS.RUN.LOOP jsr X.CheckCtrl bcs .99 - tay - bne .10 + bvs CS.RUN.LOOP Pause... - >LIBC GetChar - bcs .99 - - cmp #$03 Ctrl-C - beq .99 Abort.... - - cmp #$13 Ctrl-S - bne .10 - - lda bPause - eor #$ff - sta bPause - bne CS.RUN.LOOP - -.10 lda bPause - bne CS.RUN.LOOP Pause... -*-------------------------------------- jsr X.GetEntry bcs .9 @@ -648,6 +603,8 @@ CS.RUN.CheckOpt ldy #1 clc rts *-------------------------------------- + .INB usr/src/shared/x.ispipein.s + .INB usr/src/shared/x.checkctrl.s .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END .EQ * diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index e9b1a400..c6f78e26 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -40,11 +40,6 @@ NEW .MA SLEEP jsr A2osX.SLEEP .EM -*-------------------------------------- - .MA LIBC2 - ldx #_]1 - jsr A2osX.LIBC2 - .EM *-------------------------------------- .MA KAPI2 ldx #]1_ diff --git a/LIB/LIBBLKDEV.S.D2.txt b/LIB/LIBBLKDEV.S.D2.txt index 81259451..428f5eeb 100644 --- a/LIB/LIBBLKDEV.S.D2.txt +++ b/LIB/LIBBLKDEV.S.D2.txt @@ -262,7 +262,7 @@ D2.TrkFmt16s >GETSTKB 3 lda D2.TrkNum sta X.TRKFMT.TrkNum - ldy #D2.TrkFormat.Size + ldy #X.TrkFmt.Size .1 lda D2.TrkFormat-1,y sta $1ff,y @@ -289,22 +289,38 @@ D2.TrkFmt16s >GETSTKB 3 * # D2TrkRead16s * Write a track (16 sectors) * PUSHB DSSS0000 +* PUSHB HeadNum (0,1) * PUSHB TrackNum -* PUSHW Ptr to 16*256 buffer +* PUSHW Ptr to 16b buffer +* PUSHW Ptr to 16*256b buffer * ## RETURN VALUE * CC : success, A = VolNum * CS : A = Error *\-------------------------------------- -D2.TrkRead16s >GETSTKB 3 +D2.TrkRead16s >GETSTKB 6 sta D2.DrvSlt - >GETSTKB 2 + >GETSTKB 5 + sta D2.HeadNum + >GETSTKB 4 sta D2.TrkNum + + >GETSTKW 2 + >STAX ZPPtr2 + >GETSTKW >STAX ZPPtr1 jsr D2.CheckDiskII bcs .9 + + + + + + + + lda D2.VolNum clc .9 @@ -478,8 +494,7 @@ D2.CheckDiskII lda D2.DrvSlt clc rts -.9 pla - lda #MLI.E.NODEV +.9 lda #MLI.E.NODEV sec rts *-------------------------------------- @@ -685,7 +700,7 @@ D2.WriteTrackPtr2 php sei - ldy #D2.TrkWriter.Size + ldy #X.TrkW.Size .1 lda D2.TrkWriter-1,y sta $1ff,y diff --git a/LIB/LIBBLKDEV.S.txt b/LIB/LIBBLKDEV.S.txt index 768702a6..1a48186a 100644 --- a/LIB/LIBBLKDEV.S.txt +++ b/LIB/LIBBLKDEV.S.txt @@ -41,6 +41,7 @@ ZPPtr2 .EQ ZPLIB+2 ZPPtr3 .EQ ZPLIB+4 ZPPtr4 .EQ ZPLIB+6 X.TRkFMT.Z .EQ ZPLIB+8 +X.TRkREAD.Z .EQ ZPLIB+8 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -375,92 +376,15 @@ CS.END .EQ * * X = Slot Cn *-------------------------------------- D2.TrkFormat .PH $200 -D2.TrkFormat.Start .INB usr/src/shared/x.trkfmt.s -D2.TrkFormat.Size .EQ *-D2.TrkFormat.Start .EP *-------------------------------------- -* TrkWriter -* X = Slot Cn -* ZPPtr1 = Ptr To NibbleBuf +D2.TrkReader .PH $200 + .INB usr/src/shared/x.trkr.s + .EP *-------------------------------------- D2.TrkWriter .PH $200 - -D2.TrkWriter.Start - lda IO.D2.ReadProt,x - lda IO.D2.ReadMode,x - bmi .9 Write protected - - ldy ZPPtr1 - stz ZPPtr1 - - lda (ZPPtr1),y - - iny - -* bne .10 no chance this happens because mem blocks are $FFF0 aligned.... -* inc ZPPtr1+1 -*.10 - - cmp #$80 if CC, it is a sync byte - ora #$80 make sure Bit7 high - - sta IO.D2.WriteMode,x (5) goto write mode - ora IO.D2.WShift,x (4) - - nop (2) - - bra .2 (3) - -.1 lda (ZPPtr1),y (5) as NibbleBuf is page aligned, no page crossing - beq .8 (2)(3 if Z) END OF TRACK -* nobody will never try to write 00000000, right? - - cmp #$80 (2) if CC, it is a sync byte - ora #$80 (2) make sure Bit7 high - sta IO.D2.WLoad,x (5) - ora IO.D2.WShift,x (4) keep C unmodified - iny (2) - bne .2 (2)(3 if nz) - -* 32us Byte,next page : 2 (beq failed)+5 +2+2+5+4+2+2 (bne failed) + 5 + 3 (bcs succeeded) = 32 - inc ZPPtr1+1 (5) - - bcs .1 (2)(3 if cs) regular 32us byte - -* 40us Byte,next page : 2 (beq failed) +2+2+5+4+2+2 (bne failed) + 5 + 2 (bcs failed) +2+2+2+3 = 40 - nop (2) Sync 40us byte : add 8 cycles - nop (2) - nop (2) - - bra .1 (3) - -* 32us Byte,same page : 5+2 (beq failed) +2+2+5+4+2+3 (bne succeeded) + 2 +2 + 3 (bcs succeeded) = 32 -.2 nop (2) - nop (2) - - bcs .1 (2)(3 if cs) regular 32us byte - -* 40us Byte,same page : 5+2 (beq failed) +2+2+5+4+2+2 (bne failed) + 5 + 2 (bcs failed) +2+2+2+3 = 40 - nop (2) Sync 40us byte : add 8 cycles - nop (2) - nop (2) - - bra .1 (3) - -.8 pha (3) make sure 32us elapsed before switching to read mode (beq(3)+pha(3)=beq(2)+cmp(2)+ora(2)) - lda IO.D2.ReadMode,x close write mode - lda IO.D2.RData,x - pla from pha (3) - - clc - rts - -.9 lda #MLI.E.WRTPROT - sec - rts - -D2.TrkWriter.Size .EQ *-D2.TrkWriter.Start + .INB usr/src/shared/x.trkw.s .EP *-------------------------------------- ADDR.Head .HS 96AAD5 diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index 0e9707e9..aead52d1 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -38,7 +38,7 @@ CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #2 BIN Layout Version 2 - .DA #S.PS.SIG.T1SEC + .DA #S.PS.SIG.T10TH .DA #0 .DA CS.END .DA ID.END diff --git a/SHARED/X.CPMVRM.S.txt b/SHARED/X.CPMVRM.S.txt index d27f1e7f..04eba222 100644 --- a/SHARED/X.CPMVRM.S.txt +++ b/SHARED/X.CPMVRM.S.txt @@ -90,11 +90,12 @@ CS.RUN jsr CS.RUN.CheckOpt >STYA pDstFullPath .FIN *-------------------------------------- -CS.RUN.Loop jsr CS.RUN.CheckKey +CS.RUN.Loop >SLEEP + + jsr X.CheckCtrl bcs .99 - bit bPause - bmi CS.RUN.Loop + bvs CS.RUN.Loop jsr X.GetEntry bcs .80 @@ -375,8 +376,10 @@ CS.RUN.Copy >SS lda #'.' >LIBC PutChar -.2 jsr CS.RUN.CheckKey +.2 jsr X.CheckCtrl bcs CS.RUN.CopyEnd + + bvs .2 lda ZPPtr2+1 cmp PageCount @@ -561,35 +564,6 @@ CS.RUN.CheckOverwrite .99 rts .FIN *-------------------------------------- -CS.RUN.CheckKey ldy #S.PS.pStdIn - jsr A2osX.GetPSy - pha - iny - jsr A2osX.GetPSy - ply - >LIBC FEOF - bcs .9 I/O error - - tay - bne .8 - - >LIBC GetChar - bcs .9 I/O error - - cmp #$03 Ctrl-C - beq .9 - - cmp #$13 Ctrl-S - bne .8 - - lda bPause - eor #$ff - sta bPause - -.8 clc - -.9 rts -*-------------------------------------- CS.RUN.CheckOpt jsr CS.RUN.NextOpt bcs .7 diff --git a/SHARED/X.ISPIPEIN.S.txt b/SHARED/X.ISPIPEIN.S.txt index 3c3b5006..23433aba 100644 --- a/SHARED/X.ISPIPEIN.S.txt +++ b/SHARED/X.ISPIPEIN.S.txt @@ -43,7 +43,7 @@ X.IsPipeY jsr A2osX.GetPSy .8 clc rts -.98 sec + sec .99 rts *-------------------------------------- MAN diff --git a/SHARED/X.TRKFMT.S.txt b/SHARED/X.TRKFMT.S.txt index d3742cdf..31178c0d 100644 --- a/SHARED/X.TRKFMT.S.txt +++ b/SHARED/X.TRKFMT.S.txt @@ -1,50 +1,50 @@ NEW AUTO 3,1 *-------------------------------------- -X.TRKFMT.VolNum .EQ X.TRKFMT.Z -X.TRKFMT.TrkNum .EQ X.TRKFMT.Z+1 -X.TRKFMT.SectNum .EQ X.TRKFMT.Z+2 -X.TRKFMT.CheckSum .EQ X.TRKFMT.Z+3 +X.TrkFmt.VolNum .EQ X.TrkFmt.Z +X.TrkFmt.TrkNum .EQ X.TrkFmt.Z+1 +X.TrkFmt.SectNum .EQ X.TrkFmt.Z+2 +X.TrkFmt.CheckSum .EQ X.TrkFmt.Z+3 *-------------------------------------- -X.TRKFMT lda #$ff +X.TrkFmt lda #$ff sta IO.D2.WriteMode,x goto write mode ora IO.D2.WShift,x (4) - jsr X.TRKFMT.W14 (14) + jsr X.TrkFmt.W14 (14) lda #0 (2) - sta X.TRKFMT.SectNum (3) + sta X.TrkFmt.SectNum (3) ldy #0 (2) 256 SyncBytes - jsr X.TRKFMT.SyncBytes (15..15) + jsr X.TrkFmt.SyncBytes (15..15) nop (2) nop (2) nop (2) nop (2) -.1 jsr X.TRKFMT.AddrField (17..15) +.1 jsr X.TrkFmt.AddrField (17..15) ldy #6 (2) - jsr X.TRKFMT.SyncBytes (15..15) + jsr X.TrkFmt.SyncBytes (15..15) - jsr X.TRKFMT.W14 (14) + jsr X.TrkFmt.W14 (14) ldy #2 (2) -.2 lda X.TRKFMT.DATA,y (4) +.2 lda X.TrkFmt.DATA,y (4) sta IO.D2.WLoad,x (5) ora IO.D2.WShift,x (4) dey (2) bmi .22 (3-) - jsr X.TRKFMT.W12 (12) + jsr X.TrkFmt.W12 (12) bra .2 (3) -.22 jsr X.TRKFMT.W14 (14) +.22 jsr X.TrkFmt.W14 (14) ldy #86 (2) 256+86... lda #$96 (2) @@ -55,7 +55,7 @@ X.TRKFMT lda #$ff nop (2) bra .3 (3) -.3 jsr X.TRKFMT.W14 (14) +.3 jsr X.TrkFmt.W14 (14) nop (2) @@ -70,7 +70,7 @@ X.TRKFMT lda #$ff .4 nop (2) -.5 jsr X.TRKFMT.W14 (14) +.5 jsr X.TrkFmt.W14 (14) lda #$96 (2) sta IO.D2.WLoad,x (5) @@ -79,15 +79,15 @@ X.TRKFMT lda #$ff dey (2) bne .4 (3)- - inc X.TRKFMT.SectNum (5) + inc X.TrkFmt.SectNum (5) - jsr X.TRKFMT.EndMark (19..15) + jsr X.TrkFmt.EndMark (19..15) ldy #16 (2) - jsr X.TRKFMT.SyncBytes (15..15) + jsr X.TrkFmt.SyncBytes (15..15) - lda X.TRKFMT.SectNum (3) + lda X.TrkFmt.SectNum (3) cmp #16 (2) bne .1 (3-) @@ -96,7 +96,7 @@ X.TRKFMT lda #$ff rts *-------------------------------------- -X.TRKFMT.SyncBytes +X.TrkFmt.SyncBytes nop (2) lda #$ff (2) @@ -106,67 +106,67 @@ X.TRKFMT.SyncBytes dey (2) beq .8 (3-) - jsr X.TRKFMT.W12 (12) - jsr X.TRKFMT.W12 (12) + jsr X.TrkFmt.W12 (12) + jsr X.TrkFmt.W12 (12) bra .1 (3) .8 rts (6) *-------------------------------------- -X.TRKFMT.AddrField +X.TrkFmt.AddrField ldy #2 (2) -.1 lda X.TRKFMT.ADDR,y (4) +.1 lda X.TrkFmt.ADDR,y (4) sta IO.D2.WLoad,x (5) ora IO.D2.WShift,x (4) dey (2) bmi .2 (3-) - lda X.TRKFMT.VolNum (3) - eor X.TRKFMT.TrkNum (3) - eor X.TRKFMT.SectNum (3) - sta X.TRKFMT.Checksum (3) + lda X.TrkFmt.VolNum (3) + eor X.TrkFmt.TrkNum (3) + eor X.TrkFmt.SectNum (3) + sta X.TrkFmt.Checksum (3) bra .1 (3) -.2 lda X.TRKFMT.VolNum (3) - lda X.TRKFMT.VolNum (3) - jsr X.TRKFMT.W4x4 (17..12) +.2 lda X.TrkFmt.VolNum (3) + lda X.TrkFmt.VolNum (3) + jsr X.TrkFmt.W4x4 (17..12) - lda X.TRKFMT.TrkNum (3) - jsr X.TRKFMT.W4x4 (17..12) + lda X.TrkFmt.TrkNum (3) + jsr X.TrkFmt.W4x4 (17..12) - lda X.TRKFMT.SectNum (3) - jsr X.TRKFMT.W4x4 (17..12) + lda X.TrkFmt.SectNum (3) + jsr X.TrkFmt.W4x4 (17..12) - lda X.TRKFMT.Checksum (3) - jsr X.TRKFMT.W4x4 (17..12) + lda X.TrkFmt.Checksum (3) + jsr X.TrkFmt.W4x4 (17..12) pha (3) pla (4) *-------------------------------------- -X.TRKFMT.EndMark +X.TrkFmt.EndMark ldy #2 (2) nop (2) -.1 lda X.TRKFMT.END,y (4) +.1 lda X.TrkFmt.END,y (4) sta IO.D2.WLoad,x (5) ora IO.D2.WShift,x (4) dey (2) bmi .8 (3-) - jsr X.TRKFMT.W12 (12) + jsr X.TrkFmt.W12 (12) bra .1 (3) .8 rts (6) *-------------------------------------- -X.TRKFMT.W4x4 tay (2) +X.TrkFmt.W4x4 tay (2) lsr (2) ora #$AA (2) sta IO.D2.WLoad,x (5) ora IO.D2.WShift,x (4) - jsr X.TRKFMT.W12 (12) + jsr X.TrkFmt.W12 (12) pha (3) pla (4) @@ -177,17 +177,18 @@ X.TRKFMT.W4x4 tay (2) sta IO.D2.WLoad,x (5) ora IO.D2.WShift,x (4) -X.TRKFMT.W14 nop (2) +X.TrkFmt.W14 nop (2) -X.TRKFMT.W12 rts (6) +X.TrkFmt.W12 rts (6) *-------------------------------------- .LIST ON -X.TRKFMT.ADDR .HS 96AAD5 -X.TRKFMT.DATA .HS ADAAD5 -X.TRKFMT.END .HS EBAADE +X.TrkFmt.ADDR .HS 96AAD5 +X.TrkFmt.DATA .HS ADAAD5 +X.TrkFmt.END .HS EBAADE +X.TrkFmt.Size .EQ *-X.TrkFmt .LIST OFF *-------------------------------------- MAN SAVE usr/src/shared/x.trkfmt.s -LOAD usr/src/basic.fx/basic.s +LOAD usr/src/lib/libblkdev.s ASM diff --git a/SHARED/X.TRKREAD.S.txt b/SHARED/X.TRKREAD.S.txt new file mode 100644 index 00000000..88f98f2b --- /dev/null +++ b/SHARED/X.TRKREAD.S.txt @@ -0,0 +1,349 @@ +NEW + AUTO 3,1 +*-------------------------------------- +X.TRKREAD.VolNum .EQ X.TRKREAD.Z +X.TRKREAD.SectNum .EQ X.TRKREAD.Z+1 +X.TRKREAD.TrkNum .EQ X.TRKREAD.Z+3 +X.TRKREAD.CheckSum .EQ X.TRKREAD.Z+3 +X.TRKREAD.Cnt .EQ X.TRKREAD.Z+4 +X.TRKREAD.SectCnt .EQ X.TRKREAD.Z+6 +X.TRKREAD.TmpByte .EQ X.TRKREAD.Z+7 +*-------------------------------------- +* ZPPtr1 = DstSectBuf (4096) +* ZPPtr2 = DstOrderBuf (16) +* X = SlotN0 +*-------------------------------------- +X.TRKREAD stz X.TRKREAD.SectCnt + +.1 jsr X.TRKREAD.A + bne .9 + + lda X.TRKREAD.SectNum + ldy X.TRKREAD.SectCnt + sta (ZPPtr2),y + + jsr X.TRKREAD.D + bcs .9 + + inc ZPPtr1+1 + + inc X.TRKREAD.SectCnt + lda X.TRKREAD.SectCnt + cmp #16 + bcc .1 + + lda X.TRKREAD.VolNum + clc + rts + +.9 lda #MLI.E.IO + sec + rts +*-------------------------------------- +X.TRKREAD.A stz X.TRKREAD.Cnt + + lda #$F8 read up to 8192 nibbles + sta X.TRKREAD.Cnt+1 + +.1 inc X.TRKREAD.Cnt + bne .2 + + inc X.TRKREAD.Cnt+1 + beq .9 + +.2 lda IO.D2.RData,x + bpl .1 + +.3 cmp #$D5 + bne .1 + + nop + +.4 lda IO.D2.RData,x + bpl .4 + + cmp #$AA + bne .3 + + ldy #3 + +.5 lda IO.D2.RData,x + bpl .5 + + cmp #$96 + bne .3 + + lda #0 + +.6 sta X.TRKREAD.CheckSum + +.7 lda IO.D2.RData,x + bpl .7 + + rol + sta X.TRKREAD.TmpByte + +.8 lda IO.D2.RData,x + bpl .8 + + and X.TRKREAD.TmpByte + sta X.TRKREAD.VolNum,y + eor X.TRKREAD.CheckSum + dey + bpl .6 + + tay + bne .9 + + clc + rts + +.9 sec + rts +*-------------------------------------- +X.TRKREAD.D txa + ora #$8C + sta rd4+1 + sta rd5+1 + sta rd6+1 + sta rd7+1 + sta rd8+1 + + lda ZPPtr1 + ldy ZPPtr1+1 + + sta ref3+1 + sty ref3+2 + sec + sbc #$54 + bcs L571F + + dey + +L571F sta ref2+1 + sty ref2+2 + sec + sbc #$57 + bcs L572B + + dey + +L572B sta ref1+1 + sty ref1+2 + + ldy #$20 + +L5733 dey + beq L576D + +L5736 lda IO.D2.RData,x + bpl L5736 + +L573B eor #$D5 + bne L5733 + + nop + +L5740 lda IO.D2.RData,x + bpl L5740 + + cmp #$AA + bne L573B + + nop + +L574A lda IO.D2.RData,x + bpl L574A + + cmp #$AD + bne L573B +*-------------------------------------- + ldy #$AA + lda #$00 + +L5757 sta X.TRKREAD.TmpByte + +rd4 ldx IO.D2.RData+$60 SELF MODIFIED + bpl rd4 + + lda X.Nib2FC-$96,x + sta X.Buf86-$AA,y + eor X.TRKREAD.TmpByte + iny + bne L5757 + + ldy #$AA + bne rd5 + +L576D sec + rts +*-------------------------------------- +ref1 sta $1000,y SELF MODIFIED + +rd5 ldx IO.D2.RData+$60 SELF MODIFIED + bpl rd5 + + eor X.Nib2FC-$96,x + ldx X.Buf86-$AA,y + eor X.dnibl2,x + iny + bne ref1 + + pha + and #$FC + ldy #$AA + +rd6 ldx IO.D2.RData+$60 SELF MODIFIED + bpl rd6 + + eor X.Nib2FC-$96,x + ldx X.Buf86-$AA,y + eor X.dnibl3,x +ref2 sta $1000,y SELF MODIFIED + iny + bne rd6 + +rd7 ldx IO.D2.RData+$60 SELF MODIFIED + bpl rd7 + + and #$FC + ldy #$AC + +L57A5 eor X.Nib2FC-$96,x + ldx X.Buf86-$AC,y + eor X.dnibl4,x +ref3 sta $1000,y SELF MODIFIED + +rd8 ldx IO.D2.RData+$60 SELF MODIFIED + bpl rd8 + + iny + bne L57A5 + + and #$FC + eor X.Nib2FC-$96,x + + clc + beq L57CD + + sec + +L57CD pla + ldy #$55 + sta (ZPPtr1),y + + rts +*-------------------------------------- +X.Nib2FC .HS 0004 + .HS FFFF + .HS 080C + .HS FF + .HS 101418 +X.XX000000 .HS 008040C0 + .HS FFFF + .HS 1C20 + .HS FFFFFF + .HS 24282C3034 + .HS FFFF + .HS 383C4044484C + .HS FF + .HS 5054585C606468 +X.00XX0000 .HS 00201030 + .HS FFFFFFFF + .HS 6C + .HS 00 + .HS 707478 + .HS FFFFFF + .HS 7C + .HS FFFF + .HS 8084 + .HS FF + .HS 888C9094989CA0 +X.0000XX00 .HS 0008040C + .HS FF + .HS A4A8AC + .HS FF + .HS B0B4B8BCC0C4C8 + .HS FFFF + .HS CCD0D4D8DCE0 + .HS 00 + .HS E4E8ECF0F4F8FC +*-------------------------------------- +X.dnibl2 .HS 00 +X.dnibl3 .HS 00 +X.dnibl4 .HS 00 +X.FC2Nib .HS 96 + .HS 02000097 + .HS 0100009A + .HS 0300009B + .HS 0002009D + .HS 0202009E + .HS 0102009F + .HS 030200A6 + .HS 000100A7 + .HS 020100AB + .HS 010100AC + .HS 030100AD + .HS 000300AE + .HS 020300AF + .HS 010300B2 + .HS 030300B3 + .HS 000002B4 + .HS 020002B5 + .HS 010002B6 + .HS 030002B7 + .HS 000202B9 + .HS 020202BA + .HS 010202BB + .HS 030202BC + .HS 000102BD + .HS 020102BE + .HS 010102BF + .HS 030102CB + .HS 000302CD + .HS 020302CE + .HS 010302CF + .HS 030302D3 + .HS 000001D6 + .HS 020001D7 + .HS 010001D9 + .HS 030001DA + .HS 000201DB + .HS 020201DC + .HS 010201DD + .HS 030201DE + .HS 000101DF + .HS 020101E5 + .HS 010101E6 + .HS 030101E7 + .HS 000301E9 + .HS 020301EA + .HS 010301EB + .HS 030301EC + .HS 000003ED + .HS 020003EE + .HS 010003EF + .HS 030003F2 + .HS 000203F3 + .HS 020203F4 + .HS 010203F5 + .HS 030203F6 + .HS 000103F7 + .HS 020103F9 + .HS 010103FA + .HS 030103FB + .HS 000303FC + .HS 020303FD + .HS 010303FE + .HS 030303FF +*-------------------------------------- +X.Buf86 .BS 86 +*-------------------------------------- + .LIST ON +X.TRKREAD.L .EQ *-X.TRKREAD + .LIST OFF +*-------------------------------------- +MAN +SAVE usr/src/shared/x.trkread.s +LOAD usr/src/lib/libblkdev.s +ASM diff --git a/SHARED/X.TRKRR.S.txt b/SHARED/X.TRKRR.S.txt new file mode 100644 index 00000000..ccec05a7 --- /dev/null +++ b/SHARED/X.TRKRR.S.txt @@ -0,0 +1,86 @@ +NEW + AUTO 3,1 +*-------------------------------------- +* In: +* X = Slotn0 +* ZPPtr1 = pDstBuf +* Uses: +* ZPPtr2 = Cnt +*-------------------------------------- +X.TrkR.CheckSum .EQ X.TrkFmt.Z +X.TrkR.SectNum .EQ X.TrkFmt.Z+1 +X.TrkR.TrkNum .EQ X.TrkFmt.Z+2 +X.TrkR.VolNum .EQ X.TrkFmt.Z+3 +X.TrkR.TmpByte .EQ X.TrkFmt.Z+4 +*-------------------------------------- +X.TrkR +*-------------------------------------- +X.TrkR.A stz ZPPtr2 + + lda #$F8 read up to 8192 nibbles + sta ZPPtr2+1 + +.1 inc ZPPtr2 + bne .2 + + inc ZPPtr2+1 + beq .9 + +.2 lda IO.D2.RData,x + bpl .1 + +.3 cmp #$D5 + bne .1 + + nop + +.4 lda IO.D2.RData,x + bpl .4 + + cmp #$AA + bne .3 + + ldy #3 + +.5 lda IO.D2.RData,x + bpl .5 + + cmp #$96 + bne .3 + + lda #0 + +.6 sta X.TrkR.CheckSum + +.7 lda IO.D2.RData,x + bpl .7 + + rol + sta X.TrkR.TmpByte + +.8 lda IO.D2.RData,x + bpl .8 + + and X.TrkR.TmpByte + sta X.TrkR.VolNum,y + eor X.TrkR.CheckSum + dey + bpl .6 + + tay + bne .9 + + clc + rts + +.9 sec + rts +*-------------------------------------- + .LIST ON +X.TrkR.Size .EQ *-X.TrkR + .LIST OFF +*-------------------------------------- +MAN +SAVE usr/src/shared/x.trkr.s +LOAD usr/src/lib/libblkdev.s +ASM diff --git a/SHARED/X.TRKW.S.txt b/SHARED/X.TRKW.S.txt new file mode 100644 index 00000000..35751877 --- /dev/null +++ b/SHARED/X.TRKW.S.txt @@ -0,0 +1,88 @@ +NEW + AUTO 3,1 +*-------------------------------------- +* In: +* X = Slotn0 +* ZPPtr1 = pSrcBuf +*-------------------------------------- +X.TrkW lda IO.D2.ReadProt,x + lda IO.D2.ReadMode,x + bmi .9 Write protected + + ldy ZPPtr1 + stz ZPPtr1 + + lda (ZPPtr1),y + + iny + +* bne .10 no chance this happens because mem blocks are $FFF0 aligned.... +* inc ZPPtr1+1 +*.10 + + cmp #$80 if CC, it is a sync byte + ora #$80 make sure Bit7 high + + sta IO.D2.WriteMode,x (5) goto write mode + ora IO.D2.WShift,x (4) + + nop (2) + + bra .2 (3) + +.1 lda (ZPPtr1),y (5) as NibbleBuf is page aligned, no page crossing + beq .8 (2)(3 if Z) END OF TRACK +* nobody will never try to write 00000000, right? + + cmp #$80 (2) if CC, it is a sync byte + ora #$80 (2) make sure Bit7 high + sta IO.D2.WLoad,x (5) + ora IO.D2.WShift,x (4) keep C unmodified + iny (2) + bne .2 (2)(3 if nz) + +* 32us Byte,next page : 2 (beq failed)+5 +2+2+5+4+2+2 (bne failed) + 5 + 3 (bcs succeeded) = 32 + inc ZPPtr1+1 (5) + + bcs .1 (2)(3 if cs) regular 32us byte + +* 40us Byte,next page : 2 (beq failed) +2+2+5+4+2+2 (bne failed) + 5 + 2 (bcs failed) +2+2+2+3 = 40 + nop (2) Sync 40us byte : add 8 cycles + nop (2) + nop (2) + + bra .1 (3) + +* 32us Byte,same page : 5+2 (beq failed) +2+2+5+4+2+3 (bne succeeded) + 2 +2 + 3 (bcs succeeded) = 32 +.2 nop (2) + nop (2) + + bcs .1 (2)(3 if cs) regular 32us byte + +* 40us Byte,same page : 5+2 (beq failed) +2+2+5+4+2+2 (bne failed) + 5 + 2 (bcs failed) +2+2+2+3 = 40 + nop (2) Sync 40us byte : add 8 cycles + nop (2) + nop (2) + + bra .1 (3) + +.8 pha (3) make sure 32us elapsed before switching to read mode (beq(3)+pha(3)=beq(2)+cmp(2)+ora(2)) + lda IO.D2.ReadMode,x close write mode + lda IO.D2.RData,x + pla from pha (3) + + clc + rts + +.9 lda #MLI.E.WRTPROT + sec + rts +*-------------------------------------- + .LIST ON +X.TrkW.Size .EQ *-X.TrkW + .LIST OFF +*-------------------------------------- +MAN +SAVE usr/src/shared/x.trkw.s +LOAD usr/src/lib/libblkdev.s +ASM diff --git a/SYS/KERNEL.S.RAMSW.txt b/SYS/KERNEL.S.RAMSW.txt index 8264d5c6..db697a45 100644 --- a/SYS/KERNEL.S.RAMSW.txt +++ b/SYS/KERNEL.S.RAMSW.txt @@ -82,14 +82,6 @@ RAMSW.LibCall dec IRQ.InLib bra RAMSW.Sleep2 *-------------------------------------- -*RAMSW.JMPx sta IO.CLRREADAUX -* sta IO.CLRWRITEAUX -* -* sec data in AUX RAM -* ror A2osX.IOOpt -* -* jsr A2osX.LIBC2 - RAMSW.2AUXRTS sta IO.SETREADAUX sta IO.SETWRITEAUX