diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index bef8a918..b57ba8f2 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -1,809 +1,828 @@ NEW AUTO 3,1 - .LIST OFF - .OP 65C02 - .OR $2000 - .TF bin/ls + .LIST OFF + .OP 65C02 + .OR $2000 + .TF bin/ls *-------------------------------------- - .INB inc/macros.i - .INB inc/a2osx.i - .INB inc/kernel.i - .INB inc/mli.i - .INB inc/mli.e.i + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/kernel.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 *-------------------------------------- -MAX.COL .EQ 4 +MAX.COL .EQ 4 *-------------------------------------- - .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 -ZPLineBuf .BS 2 -ZPPWBuf .BS 2 +ZPLineBuf .BS 2 +ZPPWBuf .BS 2 -ArgCount .BS 1 +ArgCount .BS 1 -ColCount .BS 1 -bPass2 .BS 1 +ColCount .BS 1 +bPass2 .BS 1 -bPause .BS 1 -bAllmostAll .BS 1 -bColumn .BS 1 -bFullPath .BS 1 -bLong .BS 1 -bRecurse .BS 1 +bPause .BS 1 +bAllmostAll .BS 1 +bColumn .BS 1 +bFullPath .BS 1 +bLong .BS 1 +bRecurse .BS 1 +bIsTTY .BS 1 - -ZS.END .ED +ZS.END .ED *-------------------------------------- -* File Header (16 Bytes) +* File Header (16 Bytes) *-------------------------------------- -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 SegmentSize - .DA #64 Stack Size - .DA #ZS.END-ZS.START Zero Page Size - .DA 0 +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 SegmentSize + .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.QUIT +.1 .DA CS.INIT + .DA CS.RUN + .DA CS.DOEVENT + .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE -L.MSG.REG .DA MSG.REG -L.MSG.REGEXT .DA MSG.REGEXT -L.MSG.DIR .DA MSG.DIR -L.MSG.DIREXT .DA MSG.DIREXT -L.MSG.BDEV .DA MSG.BDEV -L.MSG.BDEVEXT .DA MSG.BDEVEXT -L.MSG.ENTER .DA MSG.ENTER -L.PRODOS.FT.TXT .DA PRODOS.FT.TXT -L.FMT.Date .DA FMT.Date -L.FMT.Time .DA FMT.Time -L.FMT.string6 .DA FMT.string6 -L.FMT.int16 .DA FMT.int16 -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 +L.MSG.REG .DA MSG.REG +L.MSG.REGEXT .DA MSG.REGEXT +L.MSG.DIR .DA MSG.DIR +L.MSG.DIREXT .DA MSG.DIREXT +L.MSG.BDEV .DA MSG.BDEV +L.MSG.BDEVEXT .DA MSG.BDEVEXT +L.MSG.ENTER .DA MSG.ENTER +L.PRODOS.FT.TXT .DA PRODOS.FT.TXT +L.FMT.Date .DA FMT.Date +L.FMT.Time .DA FMT.Time +L.FMT.string6 .DA FMT.string6 +L.FMT.int16 .DA FMT.int16 +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 -.1 inc ArgCount - lda ArgCount - >SYSCALL ArgV - bcs .6 + stz bIsTTY + jsr CS.RUN.ISATTY - >STYA ZPPtr1 - lda (ZPPtr1) - cmp #'-' - bne .4 +.1 inc ArgCount + lda ArgCount + >SYSCALL ArgV + bcs .6 - ldy #1 - lda (ZPPtr1),y + >STYA ZPPtr1 + lda (ZPPtr1) + cmp #'-' + bne .4 - ldx #OptionVars-OptionList-1 + ldy #1 + lda (ZPPtr1),y -.2 cmp OptionList,x - beq .3 + ldx #OptionVars-OptionList-1 - dex - bpl .2 +.2 cmp OptionList,x + beq .3 + + dex + bpl .2 >PUSHW L.MSG.USAGE >PUSHBI 0 >SYSCALL PrintF - lda #E.SYN - sec - rts + lda #E.SYN + sec + rts -.3 ldy OptionVars,x - lda #$80 - sta $0,y - bra .1 +.3 ldy OptionVars,x + lda #$80 + sta $0,y + bra .1 -.4 >LDYA ZPPtr1 - jsr InitSrcDirYA - bcc .1 scan for any other args +.4 >LDYA ZPPtr1 + jsr InitSrcDirYA + bcc .1 scan for any other args -.9 rts +.9 rts -.6 >LDA.G index do we have a Source dir ? - bne .8 +.6 >LDA.G index do we have a Source dir ? + bne .8 - ldy #S.PS.hCWD - lda (pPS),y - >SYSCALL GetMemPtr - jsr InitSrcDirYA - bcs .9 + ldy #S.PS.hCWD + lda (pPS),y + >SYSCALL GetMemPtr + jsr InitSrcDirYA + bcs .9 -.8 >PUSHEA.G TIME.SysTime - >SYSCALL Time +.8 >PUSHEA.G TIME.SysTime + >SYSCALL Time - >LDYAI S.PW - >SYSCALL GetMem - bcs .9 + >LDYAI S.PW + >SYSCALL GetMem + bcs .9 - >STYA ZPPWBuf - txa - >STA.G hPWBuf + >STYA ZPPWBuf + txa + >STA.G hPWBuf - >LDYAI 256 - >SYSCALL GetMem - bcs .9 + >LDYAI 256 + >SYSCALL GetMem + bcs .9 - >STYA ZPLineBuf - txa + >STYA ZPLineBuf + txa - >STA.G hLineBuf + >STA.G hLineBuf *-------------------------------------- -CS.RUN.LOOP stz bPass2 +CS.RUN.LOOP stz bPass2 -.1 ldy #S.PS.hStdIn - lda (pPS),y - >SYSCALL FEOF - bcs .99 I/O error +.1 ldy #S.PS.hStdIn + lda (pPS),y + >SYSCALL FEOF + bcs .99 I/O error - tay - bne .2 no char + tay + bne .2 no char - >SYSCALL GetChar - cmp #$03 Ctrl-C - beq .99 Abort.... + >SYSCALL GetChar + cmp #$03 Ctrl-C + beq .99 Abort.... - cmp #$13 Ctrl-S - bne .2 + cmp #$13 Ctrl-S + bne .2 - lda bPause - eor #$ff - sta bPause - bne .1 + lda bPause + eor #$ff + sta bPause + bne .1 -.2 bit bPause - bmi .1 +.2 bit bPause + bmi .1 - jsr GetEntry - bcs .9 + jsr GetEntry + bcs .9 - jsr FilterMatch - bcs .8 no match, skip.... + jsr FilterMatch + bcs .8 no match, skip.... - bit bAllmostAll - bmi .4 + bit bAllmostAll + bmi .4 - lda (ZPFileName) - cmp #'.' - beq .8 + lda (ZPFileName) + cmp #'.' + beq .8 -.4 ldy #S.STAT.MODE+1 - lda (ZPFileStat),y +.4 ldy #S.STAT.MODE+1 + lda (ZPFileStat),y - and #$70 - lsr - lsr - lsr - tax - jsr CS.RUN.PRINT.JMP - bcs .99 + and #$70 + lsr + lsr + lsr + tax + jsr CS.RUN.PRINT.JMP + bcs .99 -.8 jsr GetNextEntry - bcc .1 +.8 jsr GetNextEntry + bcc .1 - bit bPass2 - bmi .9 + bit bPass2 + bmi .9 - jsr ResetSrcDir - bcs .99 + jsr ResetSrcDir + bcs .99 - dec bPass2 - bra .1 + dec bPass2 + bra .1 -.9 bit bLong - bmi .91 +.9 bit bLong + bmi .91 - jsr CS.RUN.NewLine - bcs .99 + jsr CS.RUN.NewLine + bcs .99 -.91 jsr LeaveSubDir - bcs .98 +.91 jsr LeaveSubDir + bcs .98 - jsr BasePath.. + jsr BasePath.. - jsr CS.RUN.ENTER.MSG - bcs .99 + jsr CS.RUN.ENTER.MSG + bcs .99 - jsr GetNextEntry - jmp CS.RUN.LOOP + jsr GetNextEntry + jmp CS.RUN.LOOP -.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 - bpl .8 - - bit bLong - bmi .1 + bit bPass2 + bpl .8 + + bit bLong + bmi .1 - bit bColumn - bmi .23 + bit bColumn + bmi .23 - bit bFullPath - bpl .22 + bit bFullPath + bpl .22 - jsr CS.RUN.PRINT.SRCPATH + jsr CS.RUN.PRINT.SRCPATH -.23 >LDYA ZPFileName - >SYSCALL PutS - rts +.23 >LDYA ZPFileName + >SYSCALL PutS + rts -.22 >PUSHW L.MSG.REG - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 +.22 >PUSHW L.MSG.REG + >PUSHW ZPFileName + >PUSHBI 2 + >SYSCALL PrintF + bcs .9 - jmp CS.RUN.UpdateColCnt + jmp CS.RUN.UpdateColCnt -.8 clc -.9 rts +.8 clc +.9 rts *-------------------------------------- -.1 >PUSHW L.MSG.REGEXT +.1 >PUSHW L.MSG.REGEXT - jsr Mod2CSTR (2) + jsr Mod2CSTR (2) - jsr CS.RUN.PushUidGid (4) + jsr CS.RUN.PushUidGid (4) - ldy #S.STAT.SIZE+3 - ldx #4 + ldy #S.STAT.SIZE+3 + ldx #4 -.2 lda (ZPFileStat),y - >PUSHA - dey - dex - bne .2 (4) +.2 lda (ZPFileStat),y + >PUSHA + dey + dex + bne .2 (4) - jsr CS.RUN.PUSHDATES (4) + jsr CS.RUN.PUSHDATES (4) - ldy #S.STAT.P.TYPE - lda (ZPFileStat),y - jsr FileType2PSTR - >PUSHYA (2) + ldy #S.STAT.P.TYPE + lda (ZPFileStat),y + jsr FileType2PSTR + >PUSHYA (2) - ldy #S.STAT.P.AUXTYPE+1 - lda (ZPFileStat),y - >PUSHA - dey - lda (ZPFileStat),y - >PUSHA (2) + ldy #S.STAT.P.AUXTYPE+1 + lda (ZPFileStat),y + >PUSHA + dey + lda (ZPFileStat),y + >PUSHA (2) - >PUSHW ZPFileName (2) + >PUSHW ZPFileName (2) - >PUSHBI 20 - >SYSCALL PrintF - bcs .9 + >PUSHBI 20 + >SYSCALL PrintF + bcs .9 - jmp CS.RUN.NewLine.1 + jmp CS.RUN.NewLine.1 *-------------------------------------- CS.RUN.PRINT.DIR - bit bPass2 - bmi .8 + bit bPass2 + bmi .8 - bit bLong - bmi .4 + bit bLong + bmi .4 - bit bColumn - bmi .23 + bit bColumn + bmi .23 - bit bFullPath - bpl .22 + bit bFullPath + bpl .22 - jsr CS.RUN.PRINT.SRCPATH + jsr CS.RUN.PRINT.SRCPATH -.23 >LDYA ZPFileName - >SYSCALL PutS - bcs .9 +.23 >LDYA ZPFileName + >SYSCALL PutS + bcs .9 - bit bRecurse - bpl .8 + bit bRecurse + bpl .8 - lda (ZPFileName) - cmp #'.' - beq .8 + lda (ZPFileName) + cmp #'.' + beq .8 - >LDYA ZPFileName - jmp EnterSubDirYA + >LDYA ZPFileName + jmp EnterSubDirYA -.8 clc -.9 rts +.8 clc +.9 rts -.22 >PUSHW L.MSG.DIR - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 +.22 >PUSHW L.MSG.DIR + >PUSHW ZPFileName + >PUSHBI 2 + >SYSCALL PrintF + bcs .9 - ldy #0 + ldy #0 -.1 iny - lda (ZPFileName),y - bne .1 +.1 iny + lda (ZPFileName),y + bne .1 -.11 iny - cpy #19 - bcs .2 +.11 iny + cpy #19 + bcs .2 - lda #C.SPACE - phy - >SYSCALL PutChar - ply - bcc .11 - rts + lda #C.SPACE + phy + >SYSCALL PutChar + ply + bcc .11 + rts -.2 jsr CS.RUN.UpdateColCnt - bcc .5 - rts +.2 jsr CS.RUN.UpdateColCnt + bcc .5 + rts *-------------------------------------- -.4 >PUSHW L.MSG.DIREXT +.4 >PUSHW L.MSG.DIREXT - jsr Mod2CSTR + jsr Mod2CSTR - jsr CS.RUN.PushUidGid - jsr CS.RUN.PUSHDATES - >PUSHW ZPFileName - >PUSHBI 12 - >SYSCALL PrintF - bcs .90 + jsr CS.RUN.PushUidGid + jsr CS.RUN.PUSHDATES + >PUSHW ZPFileName + >PUSHBI 12 + >SYSCALL PrintF + bcs .90 - jsr CS.RUN.NewLine.1 - bcs .90 + jsr CS.RUN.NewLine.1 + bcs .90 -.5 bit bRecurse - bpl .80 +.5 bit bRecurse + bpl .80 - lda (ZPFileName) - cmp #'.' - beq .80 + lda (ZPFileName) + cmp #'.' + beq .80 - jsr CS.RUN.NewLine - bcs .90 + jsr CS.RUN.NewLine + bcs .90 - >LDYA ZPFileName - jsr EnterSubDirYA - bcs .90 + >LDYA ZPFileName + jsr EnterSubDirYA + bcs .90 - jmp CS.RUN.ENTER.MSG + jmp CS.RUN.ENTER.MSG -.80 clc -.90 rts +.80 clc +.90 rts *-------------------------------------- CS.RUN.PRINT.CDEV - clc - rts + clc + rts *-------------------------------------- CS.RUN.PRINT.BDEV - bit bPass2 - bmi .8 - - bit bLong - bmi .20 + bit bPass2 + bmi .8 + + bit bLong + bmi .20 - bit bColumn - bmi .23 + bit bColumn + bmi .23 - bit bFullPath - bpl .22 + bit bFullPath + bpl .22 - jsr CS.RUN.PRINT.SRCPATH + jsr CS.RUN.PRINT.SRCPATH -.23 >LDYA ZPFileName - >SYSCALL PutS - bcs .9 +.23 >LDYA ZPFileName + >SYSCALL PutS + bcs .9 - bit bRecurse - bpl .8 + bit bRecurse + bpl .8 - lda (ZPFileName) - cmp #'.' - beq .8 + lda (ZPFileName) + cmp #'.' + beq .8 - >LDYA ZPFileName - jmp EnterSubDirYA + >LDYA ZPFileName + jmp EnterSubDirYA -.8 clc -.9 rts +.8 clc +.9 rts -.22 >PUSHW L.MSG.BDEV - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 +.22 >PUSHW L.MSG.BDEV + >PUSHW ZPFileName + >PUSHBI 2 + >SYSCALL PrintF + bcs .9 - ldy #0 + ldy #0 -.1 iny - lda (ZPFileName),y - bne .1 +.1 iny + lda (ZPFileName),y + bne .1 -.11 iny - cpy #19 - bcs .2 +.11 iny + cpy #19 + bcs .2 - lda #C.SPACE - phy - >SYSCALL PutChar - ply - bcc .11 + lda #C.SPACE + phy + >SYSCALL PutChar + ply + bcc .11 - rts + rts -.2 jsr CS.RUN.UpdateColCnt -* bcc .5 - rts +.2 jsr CS.RUN.UpdateColCnt +* bcc .5 + rts *-------------------------------------- -.20 >PUSHW L.MSG.BDEVEXT - >PUSHW ZPFileName +.20 >PUSHW L.MSG.BDEVEXT + >PUSHW ZPFileName - ldy #S.STAT.P.SLOT - >PUSHB (ZPFileStat),y - iny DRIVE - >PUSHB (ZPFileStat),y + ldy #S.STAT.P.SLOT + >PUSHB (ZPFileStat),y + iny DRIVE + >PUSHB (ZPFileStat),y - ldy #S.STAT.BLOCKS+1 - >PUSHB (ZPFileStat),y - dey - >PUSHB (ZPFileStat),y + ldy #S.STAT.BLOCKS+1 + >PUSHB (ZPFileStat),y + dey + >PUSHB (ZPFileStat),y - ldy #S.STAT.P.DEVBLOCKS+1 - >PUSHB (ZPFileStat),y - dey - >PUSHB (ZPFileStat),y + ldy #S.STAT.P.DEVBLOCKS+1 + >PUSHB (ZPFileStat),y + dey + >PUSHB (ZPFileStat),y - >PUSHBI 8 + >PUSHBI 8 - >SYSCALL PrintF - bcs .90 + >SYSCALL PrintF + bcs .90 - jsr CS.RUN.NewLine.1 - bcs .90 + jsr CS.RUN.NewLine.1 + bcs .90 - bit bRecurse - bpl .80 + bit bRecurse + bpl .80 - >LDYA ZPFileName - jsr EnterSubDirYA - bcs .90 + >LDYA ZPFileName + jsr EnterSubDirYA + bcs .90 - jmp CS.RUN.ENTER.MSG + jmp CS.RUN.ENTER.MSG -.80 clc -.90 rts +.80 clc +.90 rts *-------------------------------------- CS.RUN.PRINT.SRCPATH - ldy #hSrcBasePath - lda (pData),y - >SYSCALL GetMemPtr - >PUSHYA - >PUSHBI 0 - >SYSCALL PrintF - rts + ldy #hSrcBasePath + lda (pData),y + >SYSCALL GetMemPtr + >PUSHYA + >PUSHBI 0 + >SYSCALL PrintF + rts *-------------------------------------- CS.RUN.PushUidGid - ldy #S.STAT.UID - lda (ZPFileStat),y - >PUSHA - >PUSHW ZPPWBuf - >SYSCALL GetPWUID - bcs .2 + ldy #S.STAT.UID + lda (ZPFileStat),y + >PUSHA + >PUSHW ZPPWBuf + >SYSCALL GetPWUID + bcs .2 - >PUSHEA.G USER - jsr CS.RUN.PushUidGidStr - bra .3 + >PUSHEA.G USER + jsr CS.RUN.PushUidGidStr + bra .3 -.2 >PUSHEA.G USER - >PUSHW L.FMT.int16 +.2 >PUSHEA.G USER + >PUSHW L.FMT.int16 - ldy #S.STAT.UID+1 - lda (ZPFileStat),y - >PUSHA - dey - lda (ZPFileStat),y - >PUSHA - >PUSHBI 2 - >SYSCALL SPrintF + ldy #S.STAT.UID+1 + lda (ZPFileStat),y + >PUSHA + dey + lda (ZPFileStat),y + >PUSHA + >PUSHBI 2 + >SYSCALL SPrintF -.3 ldy #S.STAT.GID - lda (ZPFileStat),y - >PUSHA - >PUSHW ZPPWBuf - >SYSCALL GetGRGID - bcs .5 +.3 ldy #S.STAT.GID + lda (ZPFileStat),y + >PUSHA + >PUSHW ZPPWBuf + >SYSCALL GetGRGID + bcs .5 - >PUSHEA.G GROUP - jsr CS.RUN.PushUidGidStr + >PUSHEA.G GROUP + jsr CS.RUN.PushUidGidStr - bra .8 + bra .8 -.5 >PUSHEA.G GROUP - >PUSHW L.FMT.int16 +.5 >PUSHEA.G GROUP + >PUSHW L.FMT.int16 - ldy #S.STAT.GID+1 - lda (ZPFileStat),y - >PUSHA - dey - lda (ZPFileStat),y - >PUSHA - >PUSHBI 2 - >SYSCALL SPrintF + ldy #S.STAT.GID+1 + lda (ZPFileStat),y + >PUSHA + dey + lda (ZPFileStat),y + >PUSHA + >PUSHBI 2 + >SYSCALL SPrintF -.8 >PUSHEA.G USER - >PUSHEA.G GROUP - clc - rts +.8 >PUSHEA.G USER + >PUSHEA.G GROUP + clc + rts CS.RUN.PushUidGidStr - >PUSHW L.FMT.string6 - >PUSHW ZPPWBuf - >PUSHBI 2 - >SYSCALL SPrintF - rts + >PUSHW L.FMT.string6 + >PUSHW ZPPWBuf + >PUSHBI 2 + >SYSCALL SPrintF + rts *-------------------------------------- CS.RUN.PUSHDATES - ldy #TIME.Mod-1 Set NODATE as default - jsr CS.RUN.NODATES.INIT + ldy #TIME.Mod-1 Set NODATE as default + jsr CS.RUN.NODATES.INIT - ldy #TIME.Create-1 Set NODATE as default - jsr CS.RUN.NODATES.INIT + ldy #TIME.Create-1 Set NODATE as default + jsr CS.RUN.NODATES.INIT - ldy #S.STAT.MTIME+S.TIME.MONTH - lda (ZPFileStat),y - beq .1 Month=0.....invalid date/time + ldy #S.STAT.MTIME+S.TIME.MONTH + lda (ZPFileStat),y + beq .1 Month=0.....invalid date/time - >PUSHEA.G TIME.Mod + >PUSHEA.G TIME.Mod - lda ZPFileStat - clc - adc #S.STAT.MTIME - tay - lda ZPFileStat+1 - adc #0 - jsr CS.RUN.DATEFMT.SELECT - >SYSCALL StrFTime + lda ZPFileStat + clc + adc #S.STAT.MTIME + tay + lda ZPFileStat+1 + adc #0 + jsr CS.RUN.DATEFMT.SELECT + >SYSCALL StrFTime -.1 ldy #S.STAT.CTIME+S.TIME.MONTH - lda (ZPFileStat),y - beq .2 Month=0.....invalid date/time +.1 ldy #S.STAT.CTIME+S.TIME.MONTH + lda (ZPFileStat),y + beq .2 Month=0.....invalid date/time - >PUSHEA.G TIME.Create + >PUSHEA.G TIME.Create - lda ZPFileStat - clc - adc #S.STAT.CTIME - tay - lda ZPFileStat+1 - adc #0 - jsr CS.RUN.DATEFMT.SELECT - >SYSCALL StrFTime + lda ZPFileStat + clc + adc #S.STAT.CTIME + tay + lda ZPFileStat+1 + adc #0 + jsr CS.RUN.DATEFMT.SELECT + >SYSCALL StrFTime -.2 >PUSHEA.G TIME.Mod - >PUSHEA.G TIME.Create - rts +.2 >PUSHEA.G TIME.Mod + >PUSHEA.G TIME.Create + rts *-------------------------------------- CS.RUN.NODATES.INIT - ldx #$ff + ldx #$ff -.1 inx - iny - lda MSG.NODATE,x - sta (pData),y - bne .1 +.1 inx + iny + lda MSG.NODATE,x + sta (pData),y + bne .1 - rts + rts *-------------------------------------- CS.RUN.DATEFMT.SELECT - >STYA ZPPtr1 + >STYA ZPPtr1 - ldy #S.TIME.CENTURY - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.CENTURY - cmp (pData),y - bne .9 + ldy #S.TIME.CENTURY + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.CENTURY + cmp (pData),y + bne .9 - ldy #S.TIME.YEAR - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.YEAR - cmp (pData),y - bne .9 + ldy #S.TIME.YEAR + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.YEAR + cmp (pData),y + bne .9 - ldy #S.TIME.MONTH - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.MONTH - cmp (pData),y - bne .9 + ldy #S.TIME.MONTH + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.MONTH + cmp (pData),y + bne .9 - ldy #S.TIME.DAY - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.DAY - cmp (pData),y - bne .9 + ldy #S.TIME.DAY + lda (ZPPtr1),y + ldy #TIME.SysTime+S.TIME.DAY + cmp (pData),y + bne .9 -.8 >PUSHW L.FMT.Time - >PUSHW ZPPtr1 - rts +.8 >PUSHW L.FMT.Time + >PUSHW ZPPtr1 + rts -.9 >PUSHW L.FMT.Date - >PUSHW ZPPtr1 - rts +.9 >PUSHW L.FMT.Date + >PUSHW ZPPtr1 + rts *-------------------------------------- CS.RUN.UpdateColCnt - inc ColCount - lda ColCount - cmp #MAX.COL - bne CS.RUN.NewLine.8 + inc ColCount + lda ColCount + cmp #MAX.COL + bne CS.RUN.NewLine.8 - stz ColCount - - bra CS.RUN.NewLine.1 + stz ColCount + + bra CS.RUN.NewLine.1 *-------------------------------------- CS.RUN.ENTER.MSG - >PUSHW L.MSG.ENTER - ldy #hSrcBasePath - lda (pData),y - >SYSCALL GetMemPtr - >PUSHYA - >PUSHBI 2 + >PUSHW L.MSG.ENTER + ldy #hSrcBasePath + lda (pData),y + >SYSCALL GetMemPtr + >PUSHYA + >PUSHBI 2 - >SYSCALL PrintF - bcc CS.RUN.NewLine.1 - rts + >SYSCALL PrintF + bcc CS.RUN.NewLine.1 + rts *-------------------------------------- -CS.RUN.NewLine lda ColCount - beq CS.RUN.NewLine.8 +CS.RUN.NewLine lda ColCount + beq CS.RUN.NewLine.8 CS.RUN.NewLine.1 - lda #C.CR - >SYSCALL PutChar + lda #C.CR + >SYSCALL PutChar - lda #C.LF - >SYSCALL PutChar + lda bIsTTY + beq CS.RUN.NewLine.8 + + lda #C.LF + >SYSCALL PutChar CS.RUN.NewLine.8 - clc - rts + clc + rts *-------------------------------------- -CS.DOEVENT sec - rts +CS.RUN.ISATTY ldy #S.PS.hStdOut + lda (pPS),y + tax + lsr + bcc .9 + lda Nod.Table.hFD-2,x + >SYSCALL GetMemPtr + >STYA ZPPtr1 + lda (ZPPtr1) + beq .9 + inc bIsTTY +.9 rts *-------------------------------------- -CS.QUIT jsr LeaveSubDir - bcc CS.QUIT - - ldy #hFilter - jsr .7 - - ldy #hPWBuf - jsr .7 - - ldy #hLineBuf - -.7 lda (pData),y - beq .8 - - >SYSCALL FreeMem - -.8 clc - rts +CS.DOEVENT sec + rts *-------------------------------------- -FileType2PSTR ldy #0 +CS.QUIT jsr LeaveSubDir + bcc CS.QUIT -.1 cmp PRODOS.FT.HEX,y - beq .8 + ldy #hFilter + jsr .7 - iny - cpy #PRODOS.FT.TXT-PRODOS.FT.HEX - bne .1 + ldy #hPWBuf + jsr .7 - pha - lsr - lsr - lsr - lsr - ora #$30 - cmp #'9'+1 - bcc .2 + ldy #hLineBuf - adc #6 +.7 lda (pData),y + beq .8 -.2 sta PRODOS.FT.DFLT+1 - pla - and #$0F - ora #$30 - cmp #'9'+1 - bcc .3 + >SYSCALL FreeMem - adc #6 - -.3 sta PRODOS.FT.DFLT+2 - -.8 tya - asl - asl CC - adc L.PRODOS.FT.TXT - tay - - lda L.PRODOS.FT.TXT+1 - adc #0 - - rts +.8 clc + rts *-------------------------------------- -Mod2CSTR ldy #S.STAT.MODE+1 - lda (ZPFileStat),y - lsr - php C = RU +FileType2PSTR ldy #0 - lsr - lsr - lsr - tax - lda TYPES,x - >STA.G MOD +.1 cmp PRODOS.FT.HEX,y + beq .8 - plp + iny + cpy #PRODOS.FT.TXT-PRODOS.FT.HEX + bne .1 - ldy #S.STAT.MODE - lda (ZPFileStat),y + pha + lsr + lsr + lsr + lsr + ora #$30 + cmp #'9'+1 + bcc .2 - ldy #MOD+1 - ldx #8 + adc #6 -.1 pha - lda #'-' - bcc .2 +.2 sta PRODOS.FT.DFLT+1 + pla + and #$0F + ora #$30 + cmp #'9'+1 + bcc .3 - lda ACCESS,x + adc #6 -.2 sta (pData),y +.3 sta PRODOS.FT.DFLT+2 - iny - pla - asl +.8 tya + asl + asl CC + adc L.PRODOS.FT.TXT + tay - dex - bpl .1 + lda L.PRODOS.FT.TXT+1 + adc #0 - >PUSHEA.G MOD - rts + rts *-------------------------------------- - .INB usr/src/shared/x.fileenum.s +Mod2CSTR ldy #S.STAT.MODE+1 + lda (ZPFileStat),y + lsr + php C = RU + + lsr + lsr + lsr + tax + lda TYPES,x + >STA.G MOD + + plp + + ldy #S.STAT.MODE + lda (ZPFileStat),y + + ldy #MOD+1 + ldx #8 + +.1 pha + lda #'-' + bcc .2 + + lda ACCESS,x + +.2 sta (pData),y + + iny + pla + asl + + dex + bpl .1 + + >PUSHEA.G MOD + rts +*-------------------------------------- + .INB usr/src/shared/x.fileenum.s *-------------------------------------- CS.END *-------------------------------------- -OptionList .AS "ACFLRacflr" -OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse +OptionList .AS "ACFLRacflr" +OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse *-------------------------------------- MSG.USAGE .AS "Usage : LS [-A] [-C] [-F] [-L] [-R] [filespec]\r\n" .AS " -A : Show dot files\r\n" @@ -811,50 +830,50 @@ MSG.USAGE .AS "Usage : LS [-A] [-C] [-F] [-L] [-R] [filespec]\r\n" .AS " -F : Show full paths\r\n" .AS " -L : Use long listing format\r\n" .AZ " -R : Recursively list subdirectories\r\n" -MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %s %H %s" -MSG.REG .AZ "%19s" -MSG.DIREXT .AZ "%s %6s %6s %s %s %s" -MSG.DIR .AZ "\e[32m%s/\e[0m" -MSG.BDEVEXT .AZ "/%15s s%dd%d Blocks Used:%5D Total:%5D" -MSG.BDEV .AZ "\e[32m%s/\e[0m" -MSG.ENTER .AZ "Directory:%s" +MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %s %H %s" +MSG.REG .AZ "%19s" +MSG.DIREXT .AZ "%s %6s %6s %s %s %s" +MSG.DIR .AZ "\e[32m%s/\e[0m" +MSG.BDEVEXT .AZ "/%15s s%dd%d Blocks Used:%5D Total:%5D" +MSG.BDEV .AZ "\e[32m%s/\e[0m" +MSG.ENTER .AZ "Directory:%s" *-------------------------------------- -PRODOS.FT.HEX .HS 0406FAFCFDE2CBCCCFFF -PRODOS.FT.TXT .AZ "txt" - .AZ "bin" - .AZ "asm" - .AZ "bas" - .AZ "var" - .AZ "atk" - .AZ "pix" - .AZ "fon" - .AZ "pak" - .AZ "sys" -PRODOS.FT.DFLT .AZ "$ " -MSG.NODATE .AZ "" -FMT.Date .AZ "%d-%b-%y" -FMT.Time .AZ "%H:%M:%S " -FMT.string6 .AZ "%6s" -FMT.int16 .AZ "%6D" -TYPES .AS "-dbclssp" -ACCESS .AS "xwrxwrxwr" +PRODOS.FT.HEX .HS 0406FAFCFDE2CBCCCFFF +PRODOS.FT.TXT .AZ "txt" + .AZ "bin" + .AZ "asm" + .AZ "bas" + .AZ "var" + .AZ "atk" + .AZ "pix" + .AZ "fon" + .AZ "pak" + .AZ "sys" +PRODOS.FT.DFLT .AZ "$ " +MSG.NODATE .AZ "" +FMT.Date .AZ "%d-%b-%y" +FMT.Time .AZ "%H:%M:%S " +FMT.string6 .AZ "%6s" +FMT.int16 .AZ "%6D" +TYPES .AS "-dbclssp" +ACCESS .AS "xwrxwrxwr" *-------------------------------------- - .DUMMY - .OR 0 + .DUMMY + .OR 0 DS.START -MOD .BS 11 drwxrwxrwx0 -USER .BS 7 -GROUP .BS 7 +MOD .BS 11 drwxrwxrwx0 +USER .BS 7 +GROUP .BS 7 -TIME.Create .BS 20 -TIME.Mod .BS 20 -TIME.SysTime .BS S.TIME +TIME.Create .BS 20 +TIME.Mod .BS 20 +TIME.SysTime .BS S.TIME -hLineBuf .BS 1 -hPWBuf .BS 1 +hLineBuf .BS 1 +hPWBuf .BS 1 - .INB usr/src/shared/x.fileenum.g -DS.END .ED + .INB usr/src/shared/x.fileenum.g +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/ls.s