diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 37653693..db70e6d7 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/ETCONFIG.S.txt b/BIN/ETCONFIG.S.txt index d06298ab..0d0708dd 100644 --- a/BIN/ETCONFIG.S.txt +++ b/BIN/ETCONFIG.S.txt @@ -75,7 +75,6 @@ L.HOSTNAME .DA HOSTNAME L.CFG.DefaultHost .DA CFG.DefaultHost L.ETKCFG .DA ETKCFG L.ETKCFG.OBJECT .DA ETKCFG+S.ETKCFG.OBJECT -L.IOCTL .DA IOCTL *-------------------------------------- L.MSG.PROBE .DA MSG.PROBE L.MSG.PROBE.KO .DA MSG.PROBE.KO @@ -129,20 +128,16 @@ CS.RUN.SETUP lda ETKCFG+S.NETCFG.STATUS CS.RUN.SETUP.RTS rts *-------------------------------------- -CS.RUN.DUMP >PUSHB ETKCFG+S.NETCFG.DevID - >PUSHEA.G DIB - >SYSCALL GetDevStatus - bcs CS.RUN.SETUP.RTS +CS.RUN.DUMP >LEA.G DCB.NIC - >LEA.G DCB.NIC - >STYA IOCTL+S.IOCTL.BUFPTR - lda #S.IOCTL.S.GETDCB - sta IOCTL+S.IOCTL.S + ldx #S.IOCTL.S.GETDCB + jsr CS.RUN.IOCTL + bcs CS.RUN.SETUP.RTS - >PUSHB ETKCFG+S.NETCFG.DevID - >PUSHBI IOCTL.STATUS - >PUSHW L.IOCTL - >SYSCALL IOCTL + >LEA.G DIB + + ldx #S.IOCTL.S.GETDIB + jsr CS.RUN.IOCTL bcs CS.RUN.SETUP.RTS CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV @@ -150,14 +145,15 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV lda ETKCFG+S.NETCFG.DevID >PUSHA - ldx ETKCFG+S.NETCFG.DevID - lda Dev.Table-1,x + >SYSCALL GetMemPtr + + pha + tya clc adc #S.FD.DEV tay - lda Dev.Table,x + pla adc /S.FD.DEV - >PUSHYA >PUSHEA.G DIB+S.DIB.IDS @@ -299,14 +295,13 @@ CS.RUN.PROBE >LDYA L.MSG.PROBE sta ProbeCnt .3 >LDYA L.AARP.PRB - >STYA IOCTL+S.IOCTL.BUFPTR + >STYA.G DEV.IOCTL+S.IOCTL.BUFPTR >LDYAI AARP.PRB.LEN - >STYA IOCTL+S.IOCTL.BYTECNT + >STYA.G DEV.IOCTL+S.IOCTL.BYTECNT >PUSHB ETKCFG+S.NETCFG.DevID - >PUSHBI IOCTL.WRITE - >PUSHW L.IOCTL - >SYSCALL IOCTL + lda #IOCTL.WRITE + jsr CS.RUN.IOCTL.A >SLEEP dec ProbeCnt @@ -330,14 +325,13 @@ CS.RUN.PROBE >LDYA L.MSG.PROBE *-------------------------------------- CS.RUN.GETNETINFO >LDYA L.DDP.GetNetInfo - >STYA IOCTL+S.IOCTL.BUFPTR + >STYA.G DEV.IOCTL+S.IOCTL.BUFPTR >LDYAI DDP.GetNetInfo.LEN - >STYA IOCTL+S.IOCTL.BYTECNT + >STYA.G DEV.IOCTL+S.IOCTL.BYTECNT >PUSHW ETKCFG+S.NETCFG.DevID - >PUSHBI IOCTL.WRITE - >PUSHW L.IOCTL - >SYSCALL IOCTL + lda #IOCTL.WRITE + jsr CS.RUN.IOCTL.A lda #TIMEOUT.MAX sta TimeOut @@ -348,9 +342,8 @@ CS.RUN.GETNETINFO beq .9 >PUSHW ETKCFG+S.NETCFG.DevID - >PUSHBI IOCTL.READ - >PUSHW L.IOCTL - >SYSCALL IOCTL + lda #IOCTL.READ + jsr CS.RUN.IOCTL.A bcs .1 sta hFrame @@ -367,12 +360,25 @@ CS.RUN.GETNETINFO rts .9 sec -CS.RUN.GETNETINFO.RTS + rts +*-------------------------------------- +CS.RUN.IOCTL >STYA.G DEV.IOCTL+S.IOCTL.BUFPTR + + txa + >STA.G DEV.IOCTL+S.IOCTL.S + + >PUSHB ETKCFG+S.NETCFG.DevID + lda #IOCTL.STATUS + +CS.RUN.IOCTL.A >PUSHA + + >PUSHEA.G DEV.IOCTL + >SYSCALL IOCTL rts *-------------------------------------- CFG.EtcFiles >LDYAI 256 >SYSCALL GetMem - bcs CS.RUN.GETNETINFO.RTS + bcs .9 >STYA BufPtr stx CFG.hBuf1 @@ -381,7 +387,7 @@ CFG.EtcFiles >LDYAI 256 jsr CFG.Read.HOSTNAME lda ETKCFG+S.ETKCFG.OBJECT - bne .4 + bne .2 >LDYA L.ETKCFG.OBJECT iny @@ -397,9 +403,10 @@ CFG.EtcFiles >LDYAI 256 lda #10 sta ETKCFG+S.ETKCFG.OBJECT -.4 lda CFG.hBuf1 +.2 lda CFG.hBuf1 >SYSCALL FreeMem - rts + +.9 rts *-------------------------------------- CFG.Read.PrintF pha >PUSHW L.MSG.CFG @@ -592,13 +599,12 @@ DDP.GetNetInfo.DDP DDP.GetNetInfo.DEND .EQ * .BS DDP.GetNetInfo+60-* DDP.GetNetInfo.LEN .EQ 60 -*-------------------------------------- -IOCTL .BS S.IOCTL *-------------------------------------- .DUMMY .OR 0 DS.START DIB .BS S.DIB +DEV.IOCTL .BS S.IOCTL DCB.NIC .BS S.DCB.NIC DS.END .ED *-------------------------------------- diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 56618780..98beaf59 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -171,7 +171,7 @@ CS.RUN ldy #S.PS.ARGC .8 lda hDevID beq .99 *-------------------------------------- -CS.RUN.Format jsr CS.RUN.GetDevStatus +CS.RUN.Format jsr CS.RUN.GetDevDIB bcs .99 >PUSHW L.MSG.INIT @@ -223,14 +223,20 @@ CS.RUN.Format jsr CS.RUN.GetDevStatus sec rts *-------------------------------------- -CS.RUN.GetDevStatus +CS.RUN.GetDevDIB lda bCustomBlkSize bmi .8 - >PUSHB hDevID - >PUSHEA.G DIB + >LEA.G DIB + >STYA.G IOCTL+S.IOCTL.BUFPTR - >SYSCALL GetDevStatus + lda #S.IOCTL.S.GETDIB + >STA.G IOCTL+S.IOCTL.S + + >PUSHB hDevID + >PUSHBI IOCTL.STATUS + >PUSHEA.G IOCTL + >SYSCALL IOCTL bcs .9 >LDA.G DIB+S.DIB.SIZE diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index 8a0a5ffc..38b8df7f 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -208,21 +208,21 @@ CS.RUN.SETUP .8 lda #0 sec + +CS.RUN.SETUP.RTS rts *-------------------------------------- -CS.RUN.DUMP >PUSHB IPCFG+S.NETCFG.DevID - >PUSHEA.G DIB - >SYSCALL GetDevStatus +CS.RUN.DUMP >LEA.G DCB.NIC + + ldx #S.IOCTL.S.GETDCB + jsr CS.RUN.IOCTL + bcs CS.RUN.SETUP.RTS - >LEA.G DCB.NIC - >STYA.G IOCTL+S.IOCTL.BUFPTR - lda #S.IOCTL.S.GETDCB - >STA.G IOCTL+S.IOCTL.S - - >PUSHB IPCFG+S.NETCFG.DevID - >PUSHBI IOCTL.STATUS - >PUSHEA.G IOCTL - >SYSCALL IOCTL + >LEA.G DIB + + ldx #S.IOCTL.S.GETDIB + jsr CS.RUN.IOCTL + bcs CS.RUN.SETUP.RTS CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV @@ -396,6 +396,17 @@ CS.RUN.DUMPIP >PUSHW L.MSG2 sec we do not want to stay in memory rts *-------------------------------------- +CS.RUN.IOCTL >STYA.G DEV.IOCTL+S.IOCTL.BUFPTR + + txa + >STA.G DEV.IOCTL+S.IOCTL.S + + >PUSHB IPCFG+S.NETCFG.DevID + >PUSHBI IOCTL.STATUS + >PUSHEA.G DEV.IOCTL + >SYSCALL IOCTL + rts +*-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? @@ -540,7 +551,7 @@ DHCP.REQ.LEN .EQ *-DHCP.REQ .OR 0 DS.START DIB .BS S.DIB -IOCTL .BS S.IOCTL +DEV.IOCTL .BS S.IOCTL DCB.NIC .BS S.DCB.NIC DS.END .ED *-------------------------------------- diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 277f254d..841b4da7 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -15,7 +15,12 @@ X.ENTER.SUBDIR .EQ 1 X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 0 *-------------------------------------- -MAX.COL .EQ 4 +MAX.COLW .EQ 20 +MAX.COLC .EQ 4 +COLOR.ENTER .EQ 32 +COLOR.REG .EQ 93 +COLOR.DIR .EQ 92 +COLOR.BDEV .EQ 96 *-------------------------------------- .DUMMY .OR ZPBIN @@ -25,21 +30,23 @@ ZPPtr2 .BS 2 ZPFileName .BS 2 ZPFileStat .BS 2 -ZPLineBuf .BS 2 ZPPWBuf .BS 2 +ArgCount .BS 1 ColCount .BS 1 -bPass2 .BS 1 hLineBuf .BS 1 hPWBuf .BS 1 -ArgCount .BS 1 +bPass2 .BS 1 bPause .BS 1 bAllmostAll .BS 1 bColumn .BS 1 bFullPath .BS 1 bLong .BS 1 bRecurse .BS 1 -bIsTTY .BS 1 +bToFile .BS 1 + +ZPLineBuf .BS 2 +ZPLineBufPtr .BS 2 ZS.END .ED *-------------------------------------- @@ -65,31 +72,38 @@ CS.START cld .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.ENTER .DA MSG.ENTER -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.SETCOLOR .DA MSG.SETCOLOR L.PRODOS.FT.TXT .DA PRODOS.FT.TXT +L.MSG.NODATE .DA MSG.NODATE 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 CS.RUN.PRINT.LNK + .DA CS.RUN.PRINT.DSOCK + .DA CS.RUN.PRINT.SSOCK + .DA CS.RUN.PRINT.PIPE .DA 0 *-------------------------------------- CS.INIT clc rts *-------------------------------------- -CS.RUN jsr CS.RUN.ISATTY +CS.RUN ldy #S.PS.hStdOut + lda (pPS),y + tax + lda hFDs-1,x + >SYSCALL GetMemPtr + >STYA ZPPtr1 + lda (ZPPtr1) + bne .1 + + dec bToFile .1 inc ArgCount lda ArgCount @@ -155,11 +169,14 @@ CS.RUN jsr CS.RUN.ISATTY bcs .9 >STYA ZPLineBuf + >STYA ZPLineBufPtr stx hLineBuf *-------------------------------------- CS.RUN.LOOP stz bPass2 -.1 ldy #S.PS.hStdIn +.1 >SLEEP + + ldy #S.PS.hStdIn lda (pPS),y >SYSCALL FEOF bcs .99 I/O error @@ -212,6 +229,9 @@ CS.RUN.LOOP stz bPass2 bit bPass2 bmi .6 + jsr CS.RUN.CheckRoot + beq .6 + jsr ResetSrcDir bcs .99 @@ -221,7 +241,7 @@ CS.RUN.LOOP stz bPass2 .6 bit bLong bmi .7 - jsr CS.RUN.NewLine + jsr CS.RUN.LineBufFlush bcs .99 .7 jsr LeaveSubDir @@ -239,6 +259,14 @@ CS.RUN.LOOP stz bPass2 sec .99 rts *-------------------------------------- +CS.RUN.CheckRoot + >LDA.G hSrcBasePath + >SYSCALL GetMemPtr + >STYA ZPPtr1 + ldy #1 + lda (ZPPtr1),y + rts +*-------------------------------------- CS.RUN.PRINT.JMP jmp (J.CS.RUN.PRINT,x) *-------------------------------------- @@ -247,36 +275,35 @@ CS.RUN.PRINT.REG bpl .8 bit bLong - bmi .1 + bmi CS.RUN.PRINT.REGEXT + + ldy #COLOR.REG + jsr CS.RUN.SetColorY bit bColumn - bmi .23 + bmi CS.RUN.PRINT.REG1 bit bFullPath - bpl .22 + bpl .2 - jsr CS.RUN.PRINT.SRCPATH + jsr CS.RUN.SrcPathOut -.23 >LDYA ZPFileName - >SYSCALL PutS - rts + bra CS.RUN.PRINT.REG1 -.22 >PUSHW L.MSG.REG - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 - - jmp CS.RUN.UpdateColCnt +.2 ldx #MAX.COLW + clc + jsr CS.RUN.FN2LineBuf + jmp CS.RUN.IncColCnt .8 clc .9 rts *-------------------------------------- -.1 >PUSHW L.MSG.REGEXT +CS.RUN.PRINT.REGEXT + jsr CS.RUN.PrintMod + jsr CS.RUN.PrintUidGid - jsr Mod2CSTR (2) - - jsr CS.RUN.PushUidGid (4) + >PUSHW ZPLineBufPtr + >PUSHW L.MSG.REGEXT ldy #S.STAT.SIZE+3 ldx #4 @@ -285,193 +312,117 @@ CS.RUN.PRINT.REG >PUSHA dey dex - bne .2 (4) + bne .2 - jsr CS.RUN.PUSHDATES (4) + >PUSHBI 4 + jsr CS.RUN.ToLineBuf - ldy #S.STAT.P.TYPE - lda (ZPFileStat),y - jsr FileType2PSTR - >PUSHYA (2) + jsr CS.RUN.PrintTypeAux + jsr CS.RUN.PrintDates - ldy #S.STAT.P.AUXTYPE+1 - lda (ZPFileStat),y - >PUSHA - dey - lda (ZPFileStat),y - >PUSHA (2) + ldy #COLOR.REG + jsr CS.RUN.SetColorY - >PUSHW ZPFileName (2) - - >PUSHBI 20 - >SYSCALL PrintF - bcs .9 - - jmp CS.RUN.NewLine.1 +CS.RUN.PRINT.REG1 + ldx #0 + clc + jsr CS.RUN.FN2LineBuf + jmp CS.RUN.LineBufOut *-------------------------------------- CS.RUN.PRINT.DIR bit bPass2 bmi .8 bit bLong - bmi .4 + bmi CS.RUN.PRINT.DIREXT + + ldy #COLOR.DIR + jsr CS.RUN.SetColorY bit bColumn - bmi .23 + bmi CS.RUN.PRINT.DIR1 bit bFullPath - bpl .22 + bpl .2 - jsr CS.RUN.PRINT.SRCPATH + jsr CS.RUN.SrcPathOut + bra CS.RUN.PRINT.DIR1 -.23 >LDYA ZPFileName - >SYSCALL PutS +.2 ldx #MAX.COLW-1 + sec + jsr CS.RUN.FN2LineBuf + jsr CS.RUN.IncColCnt bcs .9 - bit bRecurse - bpl .8 - - lda (ZPFileName) - cmp #'.' - beq .8 - - >LDYA ZPFileName - jmp EnterSubDirYA + jmp CS.RUN.PRINT.DIREND .8 clc .9 rts +*-------------------------------------- +CS.RUN.PRINT.DIREXT + jsr CS.RUN.PrintMod + jsr CS.RUN.PrintUidGid -.22 >PUSHW L.MSG.DIR - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF + >LDYA L.MSG.DIREXT + jsr CS.RUN.LineBufYAOut + + jsr CS.RUN.PrintDates + + ldy #COLOR.DIR + jsr CS.RUN.SetColorY + +CS.RUN.PRINT.DIR1 + ldx #0 + sec + jsr CS.RUN.FN2LineBuf + jsr CS.RUN.LineBufOut bcs .9 - ldy #0 + jmp CS.RUN.PRINT.DIREND -.1 iny - lda (ZPFileName),y - bne .1 - -.11 iny - cpy #19 - bcs .2 - - lda #C.SPACE - phy - >SYSCALL PutChar - ply - bcc .11 - rts - -.2 jsr CS.RUN.UpdateColCnt - bcc .5 - rts -*-------------------------------------- -.4 >PUSHW L.MSG.DIREXT - - jsr Mod2CSTR - - jsr CS.RUN.PushUidGid - jsr CS.RUN.PUSHDATES - >PUSHW ZPFileName - >PUSHBI 12 - >SYSCALL PrintF - bcs .90 - - jsr CS.RUN.NewLine.1 - bcs .90 - -.5 bit bRecurse - bpl .80 - - lda (ZPFileName) - cmp #'.' - beq .80 - - jsr CS.RUN.NewLine - bcs .90 - - >LDYA ZPFileName - jsr EnterSubDirYA - bcs .90 - - jmp CS.RUN.ENTER.MSG - -.80 clc -.90 rts +.9 rts *-------------------------------------- CS.RUN.PRINT.CDEV clc rts *-------------------------------------- CS.RUN.PRINT.BDEV + clc bit bPass2 - bmi .8 + bmi .9 bit bLong - bmi .20 + bmi CS.RUN.PRINT.BDEVEXT + + ldy #COLOR.BDEV + jsr CS.RUN.SetColorY bit bColumn - bmi .23 + bmi CS.RUN.PRINT.BDEV1 bit bFullPath - bpl .22 + bpl .2 - jsr CS.RUN.PRINT.SRCPATH + jsr CS.RUN.SrcPathOut + bra CS.RUN.PRINT.BDEV2 -.23 >LDYA ZPFileName - >SYSCALL PutS - bcs .9 +.2 lda #'/' + jsr CS.RUN.LineBufCOut - bit bRecurse - bpl .8 + ldx #MAX.COLW-1 + sec + jsr CS.RUN.FN2LineBuf + jsr CS.RUN.IncColCnt + bcc CS.RUN.PRINT.BDEVEND - lda (ZPFileName) - cmp #'.' - beq .8 - - >LDYA ZPFileName - jmp EnterSubDirYA - -.8 clc .9 rts - -.22 >PUSHW L.MSG.BDEV - >PUSHW ZPFileName - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 - - ldy #0 - -.1 iny - lda (ZPFileName),y - bne .1 - -.11 iny - cpy #19 - bcs .2 - - lda #C.SPACE - phy - >SYSCALL PutChar - ply - bcc .11 - - rts - -.2 jsr CS.RUN.UpdateColCnt -* bcc .5 - rts *-------------------------------------- -.20 >PUSHW L.MSG.BDEVEXT - >PUSHW ZPFileName +CS.RUN.PRINT.BDEVEXT + jsr CS.RUN.PrintMod + jsr CS.RUN.PrintUidGid - ldy #S.STAT.P.SLOT - >PUSHB (ZPFileStat),y - iny DRIVE - >PUSHB (ZPFileStat),y + >PUSHW ZPLineBufPtr + >PUSHW L.MSG.BDEVEXT ldy #S.STAT.BLOCKS+1 >PUSHB (ZPFileStat),y @@ -483,36 +434,127 @@ CS.RUN.PRINT.BDEV dey >PUSHB (ZPFileStat),y - >PUSHBI 8 + ldy #S.STAT.P.SLOT + >PUSHB (ZPFileStat),y + iny DRIVE + >PUSHB (ZPFileStat),y - >SYSCALL PrintF - bcs .90 + >PUSHBI 6 + jsr CS.RUN.ToLineBuf - jsr CS.RUN.NewLine.1 - bcs .90 + jsr CS.RUN.PrintDates + ldy #COLOR.BDEV + jsr CS.RUN.SetColorY + +CS.RUN.PRINT.BDEV1 + lda #'/' + jsr CS.RUN.LineBufCOut + +CS.RUN.PRINT.BDEV2 + ldx #0 + sec + jsr CS.RUN.FN2LineBuf + jsr CS.RUN.LineBufOut + bcc CS.RUN.PRINT.BDEVEND + + rts +*-------------------------------------- +CS.RUN.PRINT.LNK +CS.RUN.PRINT.DSOCK +CS.RUN.PRINT.SSOCK +CS.RUN.PRINT.PIPE + clc + rts +*-------------------------------------- +CS.RUN.PRINT.DIREND +CS.RUN.PRINT.BDEVEND bit bRecurse - bpl .80 + bpl .8 - >LDYA ZPFileName + lda (ZPFileName) + cmp #'.' + bne .7 + + ldy #1 + lda (ZPFileName),y + beq .8 + + cmp #'.' + bne .7 + + iny + lda (ZPFileName),y + beq .8 + + bit bLong + bmi .7 + + jsr CS.RUN.LineBufFlush + bcs .9 + +.7 >LDYA ZPFileName jsr EnterSubDirYA - bcs .90 + bcs .9 jmp CS.RUN.ENTER.MSG -.80 clc -.90 rts +.8 clc +.9 rts *-------------------------------------- -CS.RUN.PRINT.SRCPATH +CS.RUN.ENTER.MSG + ldy #COLOR.ENTER + jsr CS.RUN.SetColorY + + >LDYA L.MSG.ENTER + jsr CS.RUN.LineBufYAOut + ldy #hSrcBasePath lda (pData),y >SYSCALL GetMemPtr - >PUSHYA - >PUSHBI 0 - >SYSCALL PrintF + jsr CS.RUN.LineBufYAOut + + ldy #0 + jsr CS.RUN.SetColorY + + jmp CS.RUN.LineBufOut +*-------------------------------------- +CS.RUN.PrintMod ldy #S.STAT.MODE+1 + lda (ZPFileStat),y + lsr + php C = RU + + lsr + lsr + lsr + tax + lda TYPES,x + jsr CS.RUN.LineBufCOut + + ldy #S.STAT.MODE + lda (ZPFileStat),y + + ldx #8 + + plp C = RU + +.1 pha + lda #'-' + bcc .2 + + lda ACCESS,x + +.2 jsr CS.RUN.LineBufCOut + + pla + asl + + dex + bpl .1 + rts *-------------------------------------- -CS.RUN.PushUidGid +CS.RUN.PrintUidGid ldy #S.STAT.UID lda (ZPFileStat),y >PUSHA @@ -520,195 +562,290 @@ CS.RUN.PushUidGid >SYSCALL GetPWUID bcs .2 - >PUSHEA.G USER - jsr CS.RUN.PushUidGidStr + jsr .8 bra .3 -.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 - +.2 ldy #S.STAT.UID+1 + jsr .7 +*-------------------------------------- .3 ldy #S.STAT.GID lda (ZPFileStat),y >PUSHA >PUSHW ZPPWBuf >SYSCALL GetGRGID - bcs .5 - - >PUSHEA.G GROUP - jsr CS.RUN.PushUidGidStr - - bra .8 - -.5 >PUSHEA.G GROUP - >PUSHW L.FMT.int16 + bcc .8 ldy #S.STAT.GID+1 + +.7 >PUSHW ZPLineBufPtr + >PUSHW L.FMT.int16 + lda (ZPFileStat),y >PUSHA dey lda (ZPFileStat),y >PUSHA - >PUSHBI 2 - >SYSCALL SPrintF -.8 >PUSHEA.G USER - >PUSHEA.G GROUP - clc - rts - -CS.RUN.PushUidGidStr - >PUSHW L.FMT.string6 - >PUSHW ZPPWBuf >PUSHBI 2 - >SYSCALL SPrintF - rts + jmp CS.RUN.ToLineBuf + +.8 >LDYA ZPPWBuf + ldx #5 + jmp CS.RUN.LineBufYAOutX *-------------------------------------- -CS.RUN.PUSHDATES - 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 - +CS.RUN.PrintDates ldy #S.STAT.MTIME+S.TIME.MONTH lda (ZPFileStat),y - beq .1 Month=0, invalid date/time - - >PUSHEA.G TIME.Mod - - 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, nvalid date/time - - >PUSHEA.G TIME.Create - - 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 -*-------------------------------------- -CS.RUN.NODATES.INIT - ldx #$ff - -.1 inx - iny - lda MSG.NODATE,x - sta (pData),y bne .1 - rts -*-------------------------------------- -CS.RUN.DATEFMT.SELECT - >STYA ZPPtr1 + jsr .8 + bra .2 - ldy #S.TIME.CENTURY - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.CENTURY - cmp (pData),y - bne .9 +.1 lda #S.STAT.MTIME + jsr .5 - ldy #S.TIME.YEAR - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.YEAR - cmp (pData),y - bne .9 +.2 ldy #S.STAT.CTIME+S.TIME.MONTH + lda (ZPFileStat),y + beq .8 - ldy #S.TIME.MONTH - lda (ZPPtr1),y - ldy #TIME.SysTime+S.TIME.MONTH - cmp (pData),y - bne .9 + lda #S.STAT.CTIME + +.5 clc + adc ZPFileStat + sta ZPPtr1 + + lda #0 + adc ZPFileStat+1 + sta ZPPtr1+1 + + >PUSHW ZPLineBufPtr + + ldx #0 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 +.6 lda (ZPPtr1),y + cmp (pData),y TIME.SysTime + bne .7 + + dey S.TIME.MONTH,S.TIME.YEAR,S.TIME.CENTURY + bpl .6 + + inx + inx Select L.FMT.Time + +.7 >PUSHW L.FMT.Date,x -.9 >PUSHW L.FMT.Date >PUSHW ZPPtr1 + >SYSCALL StrFTime + + lda #10 + jmp CS.RUN.LineBufPtrAddA + +.8 >LDYA L.MSG.NODATE + jmp CS.RUN.LineBufYAOut +*-------------------------------------- +CS.RUN.PrintTypeAux + ldy #S.STAT.P.TYPE + lda (ZPFileStat),y + + ldy #PRODOS.FT.TXT-PRODOS.FT.HEX-1 + +.1 cmp PRODOS.FT.HEX,y + beq .2 + + dey + bpl .1 + + pha + lda #'$' + jsr CS.RUN.LineBufCOut + pla + jsr CS.RUN.LineBufHOut + bra .3 + +.2 tya + asl + asl CC + adc L.PRODOS.FT.TXT + tay + + lda L.PRODOS.FT.TXT+1 + adc #0 + jsr CS.RUN.LineBufYAOut + +.3 lda #C.SPACE + jsr CS.RUN.LineBufCOut + + ldy #S.STAT.P.AUXTYPE+1 + lda (ZPFileStat),y + tax + dey + ora (ZPFileStat),y + beq .4 + + txa + jsr CS.RUN.LineBufHOut + + lda (ZPFileStat),y + jsr CS.RUN.LineBufHOut + + ldx #0 + bra .5 + +.4 ldx #4 + +.5 lda #C.SPACE + +.6 jsr CS.RUN.LineBufCOut + dex + bpl .6 + rts *-------------------------------------- -CS.RUN.UpdateColCnt +CS.RUN.FN2LineBuf + phx X = MaxLen + + php + + >LDYA ZPFileName + jsr CS.RUN.LineBufYAOutX Y = output count + + plp + bcc .1 + + lda #'/' + jsr CS.RUN.LineBufCOut + +.1 pla MaxLen was 0, no extra SPACE needed + beq .3 + + txa + beq .3 all chars printed, no more SPACE + + lda #C.SPACE + +.2 jsr CS.RUN.LineBufCOut + dex + bne .2 + +.3 ldy #0 Reset Color +*-------------------------------------- +CS.RUN.SetColorY + bit bToFile + bmi CS.RUN.IncColCnt.8 + + >PUSHW ZPLineBufPtr + >PUSHW L.MSG.SETCOLOR + tya + >PUSHA + >PUSHBI 1 +*-------------------------------------- +CS.RUN.ToLineBuf + >SYSCALL SPrintF +*-------------------------------------- +CS.RUN.LineBufPtrAddY + tya +CS.RUN.LineBufPtrAddA + clc + adc ZPLineBufPtr + sta ZPLineBufPtr + bcc .8 + + inc ZPLineBufPtr+1 + +.8 rts +*-------------------------------------- +CS.RUN.IncColCnt inc ColCount lda ColCount - cmp #MAX.COL - bne CS.RUN.NewLine.8 + cmp #MAX.COLC + beq CS.RUN.LineBufFlush1 - stz ColCount - - bra CS.RUN.NewLine.1 +CS.RUN.IncColCnt.8 + clc + rts *-------------------------------------- -CS.RUN.ENTER.MSG - >PUSHW L.MSG.ENTER +CS.RUN.LineBufFlush + lda ColCount + beq CS.RUN.IncColCnt.8 + +CS.RUN.LineBufFlush1 + stz ColCount +*-------------------------------------- +CS.RUN.LineBufOut + lda #C.CR + jsr CS.RUN.LineBufCOUT + bit bToFile + bmi .1 + + lda #C.LF + jsr CS.RUN.LineBufCOUT + +.1 lda #0 + sta (ZPLineBufPtr) + + ldy #S.PS.hStdOut + lda (pPS),y + >PUSHA + + >LDYA ZPLineBuf + >STYA ZPLineBufPtr + + >PUSHYA + + >SYSCALL fputs + rts +*-------------------------------------- +CS.RUN.SrcPathOut ldy #hSrcBasePath lda (pData),y >SYSCALL GetMemPtr - >PUSHYA - >PUSHBI 2 +*-------------------------------------- +CS.RUN.LineBufYAOut + ldx #0 +*-------------------------------------- +CS.RUN.LineBufYAOutX + >STYA ZPPtr1 X = MaxLen - >SYSCALL PrintF - bcc CS.RUN.NewLine.1 + ldy #$ff + +.1 iny + lda (ZPPtr1),y + beq .8 + + jsr CS.RUN.LineBufCOut + dex + bne .1 + +.8 clc rts *-------------------------------------- -CS.RUN.NewLine lda ColCount - beq CS.RUN.NewLine.8 -CS.RUN.NewLine.1 - lda #C.CR - >SYSCALL PutChar +CS.RUN.LineBufHOut + pha + lsr + lsr + lsr + lsr + jsr .1 - lda bIsTTY - beq CS.RUN.NewLine.8 + pla + and #$0F - lda #C.LF - >SYSCALL PutChar +.1 ora #$30 + cmp #'9'+1 + bcc CS.RUN.LineBufCOut -CS.RUN.NewLine.8 - clc - rts + adc #6 *-------------------------------------- -CS.RUN.ISATTY ldy #S.PS.hStdOut - lda (pPS),y - tax - lda hFDs-1,x - >SYSCALL GetMemPtr - >STYA ZPPtr1 - lda (ZPPtr1) - beq .9 +CS.RUN.LineBufCOut + sta (ZPLineBufPtr) + inc ZPLineBufPtr + bne .8 - inc bIsTTY + inc ZPLineBufPtr+1 -.9 rts +.8 rts *-------------------------------------- CS.DOEVENT sec rts @@ -731,86 +868,6 @@ CS.QUIT jsr LeaveSubDir .8 clc rts -*-------------------------------------- -FileType2PSTR ldy #0 - -.1 cmp PRODOS.FT.HEX,y - beq .8 - - iny - cpy #PRODOS.FT.TXT-PRODOS.FT.HEX - bne .1 - - pha - lsr - lsr - lsr - lsr - ora #$30 - cmp #'9'+1 - bcc .2 - - adc #6 - -.2 sta PRODOS.FT.DFLT+1 - pla - and #$0F - ora #$30 - cmp #'9'+1 - bcc .3 - - 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 -*-------------------------------------- -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 *-------------------------------------- @@ -826,14 +883,13 @@ MSG.USAGE .AS "Usage : LS [-A] [-C] [-F] [-L] [-R] [filespec]\r\n" .AS " -L : Use long listing format\r\n" .AZ " -R : Recursively list subdirectories\r\n" *-------------------------------------- -MSG.ENTER .AZ "Directory:%s" -MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %s %H %s" -MSG.REG .AZ "%19s" -MSG.DIREXT .AS "%s %6s %6s %s %s