A2osX/BIN/LS.S.txt

816 lines
14 KiB
Plaintext
Raw Normal View History

NEW
2019-09-19 15:22:14 +00:00
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
2020-03-16 06:50:15 +00:00
.TF bin/ls
*--------------------------------------
2020-07-13 19:29:31 +00:00
.INB inc/macros.i
.INB inc/a2osx.i
2020-07-20 15:19:32 +00:00
.INB inc/kernel.i
2020-07-13 19:29:31 +00:00
.INB inc/mli.i
.INB inc/mli.e.i
*--------------------------------------
2019-04-29 15:47:17 +00:00
X.ENTER.SUBDIR .EQ 1
X.COPY.TO.DEST .EQ 0
X.DELETE.SOURCE .EQ 0
*--------------------------------------
MAX.COL .EQ 4
*--------------------------------------
2018-12-19 16:45:09 +00:00
.DUMMY
.OR ZPBIN
ZS.START
ZPPtr1 .BS 2
ZPPtr2 .BS 2
ZPFileName .BS 2
ZPFileStat .BS 2
2020-02-29 14:06:28 +00:00
2019-12-06 13:50:32 +00:00
ZPPW .BS 2
2020-07-20 15:19:32 +00:00
2020-07-21 05:26:07 +00:00
bCRLF .BS 1
2020-07-20 15:19:32 +00:00
hLineBuf .BS 1
ZPLineBuf .BS 2
2018-12-19 16:45:09 +00:00
ZS.END
.ED
*--------------------------------------
2015-06-03 18:30:57 +00:00
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
2015-06-03 18:30:57 +00:00
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
2018-12-19 16:45:09 +00:00
.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
2015-06-03 18:30:57 +00:00
.DA 0
*--------------------------------------
* Relocation Table
2019-10-03 06:25:27 +00:00
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
2020-02-29 14:06:28 +00:00
L.MSG.REG .DA MSG.REG
L.MSG.REGEXT .DA MSG.REGEXT
L.MSG.DIR .DA MSG.DIR
L.MSG.DIREXT .DA MSG.DIREXT
2020-02-29 14:06:28 +00:00
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
2019-11-29 15:36:54 +00:00
L.FMT.Date .DA FMT.Date
L.FMT.Time .DA FMT.Time
2020-07-13 19:29:31 +00:00
L.FMT.string6 .DA FMT.string6
2019-12-06 13:50:32 +00:00
L.FMT.int16 .DA FMT.int16
2020-02-29 14:06:28 +00:00
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
*--------------------------------------
2018-12-19 16:45:09 +00:00
CS.INIT clc
rts
*--------------------------------------
CS.RUN
.1 >INC.G ArgCount
2018-10-16 15:48:03 +00:00
>SYSCALL ArgV
bcs .6
2020-07-20 15:19:32 +00:00
>STYA ZPPtr1
lda (ZPPtr1)
cmp #'-'
bne .4
2020-07-20 15:19:32 +00:00
ldy #1
lda (ZPPtr1),y
ldx #OptionVars-OptionList-1
.2 cmp OptionList,x
beq .3
dex
bpl .2
2018-10-21 20:54:07 +00:00
lda #E.SYN
sec
rts
.3 ldy OptionVars,x
lda #$80
sta (pData),y
bra .1
.4 >LDYA ZPPtr1
jsr InitSrcDirYA
2018-12-19 16:45:09 +00:00
bcc .1 scan for any other args
2019-10-03 06:25:27 +00:00
.9 rts
.6 >LDA.G index do we have a Source dir ?
2019-11-29 15:36:54 +00:00
bne .8
2019-07-22 16:28:44 +00:00
ldy #S.PS.hCWD
2020-02-28 07:21:46 +00:00
lda (pPS),y
2018-07-18 15:30:42 +00:00
>SYSCALL GetMemPtr
jsr InitSrcDirYA
2019-11-29 15:36:54 +00:00
bcs .9
2020-01-18 19:37:32 +00:00
.8 >PUSHEA.G TIME.SysTime
2019-11-29 15:36:54 +00:00
>SYSCALL time
2019-12-06 13:50:32 +00:00
>LDYAI S.PW
2020-02-28 07:21:46 +00:00
>SYSCALL GetMem
2019-12-06 13:50:32 +00:00
bcs .9
>STYA ZPPW
txa
>STA.G hPW
2020-07-20 15:19:32 +00:00
>LDYAI 256
>SYSCALL GetMem
bcs .9
>STYA ZPLineBuf
stx hLineBuf
ldy #S.PS.hStdOut
lda (pPS),y
tax
lda OF.Table.hFD-1,x
>SYSCALL GetMemPtr
>STYA ZPPtr1
2020-07-21 05:26:07 +00:00
2020-07-20 15:19:32 +00:00
lda (ZPPtr1) S.FD.T
beq CS.RUN.LOOP S.FD.T.REG
2020-07-21 05:26:07 +00:00
2020-07-20 15:19:32 +00:00
cmp #S.FD.T.PIPE
beq CS.RUN.LOOP
2020-07-21 05:26:07 +00:00
dec bCRLF
2016-08-17 06:25:58 +00:00
*--------------------------------------
2019-04-30 16:08:47 +00:00
CS.RUN.LOOP ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL feof
bcs .99 I/O error
2020-03-17 16:03:32 +00:00
2019-04-30 16:08:47 +00:00
tay
2019-05-02 09:52:32 +00:00
bne .2 no char
2020-03-17 16:03:32 +00:00
2018-12-19 16:45:09 +00:00
>SYSCALL GetChar
cmp #$03 Ctrl-C
2018-12-19 16:45:09 +00:00
bne .1 Abort....
2020-03-17 16:03:32 +00:00
2018-12-19 16:45:09 +00:00
rts CS
2020-03-17 16:03:32 +00:00
2018-12-19 16:45:09 +00:00
.1 cmp #$13 Ctrl-S
bne .2
>LDA.G bPause
eor #$ff
sta (pData),y
2018-12-19 16:45:09 +00:00
bne CS.RUN.LOOP
2020-03-17 16:03:32 +00:00
2018-12-19 16:45:09 +00:00
.2 >LDA.G bPause
bne CS.RUN.LOOP
2020-03-17 16:03:32 +00:00
jsr GetEntry
bcs .9
2020-03-17 16:03:32 +00:00
2019-04-30 16:08:47 +00:00
jsr FilterMatch
bcs .8 no match, skip....
2020-02-29 14:06:28 +00:00
>LDA.G bAllmostAll
bmi .4
2020-03-17 16:03:32 +00:00
2020-02-29 14:06:28 +00:00
lda (ZPFileName)
cmp #'.'
beq .8
2018-12-19 16:45:09 +00:00
2020-02-29 14:06:28 +00:00
.4 ldy #S.STAT.MODE+1
lda (ZPFileStat),y
2020-07-13 19:29:31 +00:00
2020-02-29 14:06:28 +00:00
and #$70
lsr
lsr
lsr
tax
jsr CS.RUN.PRINT.JMP
2018-12-19 16:45:09 +00:00
bcs .99
.8 jsr GetNextEntry
bcc .92
.9 ldy #bLong
lda (pData),y
bmi .91
jsr CS.RUN.NewLine
bcs .99
.91 jsr LeaveSubDir
2018-12-19 16:45:09 +00:00
bcs .98
2016-10-30 18:19:43 +00:00
jsr BasePath..
2018-12-19 16:45:09 +00:00
jsr GetNextEntry
.92 jmp CS.RUN.LOOP
.98 lda #0
sec
.99 rts
*--------------------------------------
2020-02-29 14:06:28 +00:00
CS.RUN.PRINT.JMP
jmp (J.CS.RUN.PRINT,x)
*--------------------------------------
CS.RUN.PRINT.REG
ldy #bLong
lda (pData),y
bmi .1
>LDA.G bColumn
bmi .23
>LDA.G bFullPath
bpl .22
jsr CS.RUN.PRINT.SRCPATH
.23 >LDYA ZPFileName
>SYSCALL PutS
rts
2020-02-14 07:21:56 +00:00
2020-02-29 14:06:28 +00:00
.22 >PUSHW L.MSG.REG
2020-02-14 07:21:56 +00:00
>PUSHW ZPFileName
2020-02-29 14:06:28 +00:00
>PUSHBI 2
>SYSCALL PrintF
bcs .9
jmp CS.RUN.UpdateColCnt
*--------------------------------------
2020-07-20 15:19:32 +00:00
.1
* >PUSHW ZPLineBuf
>PUSHW L.MSG.REGEXT
2020-04-02 06:32:25 +00:00
jsr Mod2CSTR (2)
2020-07-13 19:29:31 +00:00
jsr CS.RUN.PushUidGid (4)
2020-02-29 14:06:28 +00:00
ldy #S.STAT.SIZE+3
ldx #4
.2 lda (ZPFileStat),y
>PUSHA
dey
2020-02-29 14:06:28 +00:00
dex
2020-04-02 06:32:25 +00:00
bne .2 (4)
2020-04-02 06:32:25 +00:00
jsr CS.RUN.PUSHDATES (4)
2020-02-29 14:06:28 +00:00
ldy #S.STAT.P.TYPE
lda (ZPFileStat),y
jsr FileType2PSTR
2020-04-02 06:32:25 +00:00
>PUSHYA (2)
2020-02-29 14:06:28 +00:00
ldy #S.STAT.P.AUXTYPE+1
lda (ZPFileStat),y
>PUSHA
2020-02-14 07:21:56 +00:00
dey
2020-02-29 14:06:28 +00:00
lda (ZPFileStat),y
2020-04-02 06:32:25 +00:00
>PUSHA (2)
2020-02-14 07:21:56 +00:00
2020-04-02 06:32:25 +00:00
>PUSHW ZPFileName (2)
2020-02-29 14:06:28 +00:00
>PUSHBI 20
>SYSCALL PrintF
2020-07-20 15:19:32 +00:00
bcs .9
jmp CS.RUN.NewLine.1
2019-10-29 14:47:25 +00:00
.9 rts
*--------------------------------------
2018-12-19 16:45:09 +00:00
CS.RUN.PRINT.DIR
2020-02-29 14:06:28 +00:00
>LDA.G bLong
bmi .4
2019-03-11 15:43:33 +00:00
>LDA.G bColumn
2019-03-12 14:41:55 +00:00
bmi .23
2019-03-11 16:46:00 +00:00
>LDA.G bFullPath
2019-03-12 14:41:55 +00:00
bpl .22
2020-02-14 07:21:56 +00:00
jsr CS.RUN.PRINT.SRCPATH
2019-03-11 16:46:00 +00:00
.23 >LDYA ZPFileName
2020-02-28 07:21:46 +00:00
>SYSCALL PutS
2019-03-12 14:41:55 +00:00
bcs .9
>LDA.G bRecurse
bpl .8
lda (ZPFileName)
cmp #'.'
beq .8
>LDYA ZPFileName
jmp EnterSubDirYA
.8 clc
.9 rts
2018-08-22 15:23:27 +00:00
2020-02-14 07:21:56 +00:00
.22 >PUSHW L.MSG.DIR
>PUSHW ZPFileName
>PUSHBI 2
2020-02-28 07:21:46 +00:00
>SYSCALL PrintF
2019-03-12 14:41:55 +00:00
bcs .9
2020-02-14 07:21:56 +00:00
ldy #0
2020-02-14 07:21:56 +00:00
.1 iny
lda (ZPFileName),y
bne .1
2020-02-14 07:21:56 +00:00
.11 iny
cpy #19
bcs .2
2020-02-14 07:21:56 +00:00
2020-03-03 16:44:52 +00:00
lda #C.SPACE
phy
2018-07-18 15:30:42 +00:00
>SYSCALL PutChar
ply
bcc .11
rts
2020-02-14 07:21:56 +00:00
.2 jsr CS.RUN.UpdateColCnt
bcc .5
rts
2019-12-06 13:50:32 +00:00
*--------------------------------------
2020-02-14 07:21:56 +00:00
.4 >PUSHW L.MSG.DIREXT
2020-04-02 06:32:25 +00:00
jsr Mod2CSTR
2020-04-02 06:32:25 +00:00
2020-07-13 19:29:31 +00:00
jsr CS.RUN.PushUidGid
2020-02-14 07:21:56 +00:00
jsr CS.RUN.PUSHDATES
>PUSHW ZPFileName
2019-12-06 13:50:32 +00:00
>PUSHBI 12
2020-02-28 07:21:46 +00:00
>SYSCALL PrintF
2020-07-20 15:19:32 +00:00
bcs .90
jsr CS.RUN.NewLine.1
2019-03-12 14:41:55 +00:00
bcs .90
2020-02-14 07:21:56 +00:00
2019-03-12 14:41:55 +00:00
.5 >LDA.G bRecurse
bpl .80
lda (ZPFileName)
cmp #'.'
2019-03-12 14:41:55 +00:00
beq .80
jsr CS.RUN.NewLine
2019-03-12 14:41:55 +00:00
bcs .90
>LDYA ZPFileName
2016-10-30 22:23:18 +00:00
jsr EnterSubDirYA
2019-03-12 14:41:55 +00:00
bcs .90
2018-12-19 16:45:09 +00:00
jmp CS.RUN.ENTER.MSG
2020-02-29 14:06:28 +00:00
2019-03-12 14:41:55 +00:00
.80 clc
.90 rts
*--------------------------------------
2020-02-29 14:06:28 +00:00
CS.RUN.PRINT.CDEV
clc
rts
*--------------------------------------
CS.RUN.PRINT.BDEV
>LDA.G bLong
bmi .20
2019-03-11 15:43:33 +00:00
>LDA.G bColumn
2019-03-12 14:41:55 +00:00
bmi .23
2019-03-11 16:46:00 +00:00
>LDA.G bFullPath
2019-03-12 14:41:55 +00:00
bpl .22
2020-02-29 14:06:28 +00:00
2020-02-14 07:21:56 +00:00
jsr CS.RUN.PRINT.SRCPATH
2020-02-29 14:06:28 +00:00
2019-03-11 16:46:00 +00:00
.23 >LDYA ZPFileName
2020-02-28 07:21:46 +00:00
>SYSCALL PutS
2020-02-29 14:06:28 +00:00
bcs .9
>LDA.G bRecurse
bpl .8
lda (ZPFileName)
cmp #'.'
beq .8
>LDYA ZPFileName
jmp EnterSubDirYA
.8 clc
.9 rts
2019-03-11 15:43:33 +00:00
2020-02-29 14:06:28 +00:00
.22 >PUSHW L.MSG.BDEV
2020-02-14 07:21:56 +00:00
>PUSHW ZPFileName
2018-08-22 15:23:27 +00:00
>PUSHBI 2
2020-02-28 07:21:46 +00:00
>SYSCALL PrintF
bcs .9
2019-12-06 13:50:32 +00:00
2020-02-29 14:06:28 +00:00
ldy #0
2019-12-06 13:50:32 +00:00
2020-02-29 14:06:28 +00:00
.1 iny
lda (ZPFileName),y
bne .1
2019-12-06 13:50:32 +00:00
2020-02-29 14:06:28 +00:00
.11 iny
cpy #19
bcs .2
2019-12-06 13:50:32 +00:00
2020-02-29 14:06:28 +00:00
lda #C.SPACE
phy
>SYSCALL PutChar
ply
bcc .11
rts
2019-12-06 13:50:32 +00:00
2020-02-29 14:06:28 +00:00
.2 jsr CS.RUN.UpdateColCnt
* bcc .5
rts
*--------------------------------------
.20 >PUSHW L.MSG.BDEVEXT
>PUSHW ZPFileName
ldy #S.STAT.P.SLOT
>PUSHB (ZPFileStat),y
iny DRIVE
>PUSHB (ZPFileStat),y
2020-02-14 07:21:56 +00:00
2020-02-29 14:06:28 +00:00
ldy #S.STAT.BLOCKS+1
>PUSHB (ZPFileStat),y
2020-02-14 07:21:56 +00:00
dey
2020-02-29 14:06:28 +00:00
>PUSHB (ZPFileStat),y
2020-02-14 07:21:56 +00:00
2020-02-29 14:06:28 +00:00
ldy #S.STAT.P.DEVBLOCKS+1
>PUSHB (ZPFileStat),y
dey
>PUSHB (ZPFileStat),y
>PUSHBI 8
2019-12-06 13:50:32 +00:00
2020-02-28 07:21:46 +00:00
>SYSCALL PrintF
2020-02-29 14:06:28 +00:00
bcs .90
2020-07-20 15:19:32 +00:00
jsr CS.RUN.NewLine.1
bcs .90
2018-12-19 16:45:09 +00:00
2020-02-29 14:06:28 +00:00
ldy #bRecurse
lda (pData),y
bpl .80
>LDYA ZPFileName
jsr EnterSubDirYA
bcs .90
jmp CS.RUN.ENTER.MSG
.80 clc
.90 rts
*--------------------------------------
2020-02-14 07:21:56 +00:00
CS.RUN.PRINT.SRCPATH
ldy #hSrcBasePath
lda (pData),y
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 0
2020-02-28 07:21:46 +00:00
>SYSCALL PrintF
2020-02-14 07:21:56 +00:00
rts
*--------------------------------------
2020-07-13 19:29:31 +00:00
CS.RUN.PushUidGid
ldy #S.STAT.UID
2019-12-06 13:50:32 +00:00
lda (ZPFileStat),y
2020-07-13 19:29:31 +00:00
>PUSHA
>PUSHW ZPPW
>SYSCALL GetPWUID
bcs .2
>PUSHEA.G USER
jsr CS.RUN.PushUidGidStr
bra .3
2019-12-06 13:50:32 +00:00
2020-07-13 19:29:31 +00:00
.2 >PUSHEA.G USER
>PUSHW L.FMT.int16
2019-12-06 13:50:32 +00:00
2020-07-13 19:29:31 +00:00
ldy #S.STAT.UID+1
lda (ZPFileStat),y
>PUSHA
dey
lda (ZPFileStat),y
>PUSHA
>PUSHBI 2
>SYSCALL sprintf
2019-12-06 13:50:32 +00:00
2020-07-13 19:29:31 +00:00
.3 ldy #S.STAT.GID
2019-12-06 13:50:32 +00:00
lda (ZPFileStat),y
2020-02-17 16:55:02 +00:00
>PUSHA
>PUSHW ZPPW
2020-07-13 19:29:31 +00:00
>SYSCALL GetGRGID
bcs .5
2019-12-06 13:50:32 +00:00
2020-07-13 19:29:31 +00:00
>PUSHEA.G GROUP
jsr CS.RUN.PushUidGidStr
bra .8
2019-12-06 13:50:32 +00:00
2020-07-13 19:29:31 +00:00
.5 >PUSHEA.G GROUP
2020-02-14 07:21:56 +00:00
>PUSHW L.FMT.int16
2020-07-13 19:29:31 +00:00
ldy #S.STAT.GID+1
2019-12-06 13:50:32 +00:00
lda (ZPFileStat),y
>PUSHA
dey
lda (ZPFileStat),y
>PUSHA
2019-12-10 14:12:07 +00:00
>PUSHBI 2
2019-12-06 13:50:32 +00:00
>SYSCALL sprintf
2020-07-13 19:29:31 +00:00
.8 >PUSHEA.G USER
>PUSHEA.G GROUP
2019-12-06 13:50:32 +00:00
clc
rts
2020-07-13 19:29:31 +00:00
CS.RUN.PushUidGidStr
>PUSHW L.FMT.string6
>PUSHW ZPPW
>PUSHBI 2
>SYSCALL sprintf
rts
2019-12-06 13:50:32 +00:00
*--------------------------------------
CS.RUN.PUSHDATES
ldy #TIME.Mod-1 Set NODATE as default
2019-11-29 15:36:54 +00:00
jsr CS.RUN.NODATES.INIT
ldy #TIME.Create-1 Set NODATE as default
2019-11-29 15:36:54 +00:00
jsr CS.RUN.NODATES.INIT
ldy #S.STAT.MTIME+S.TIME.MONTH
lda (ZPFileStat),y
beq .1 Month=0.....invalid date/time
2020-01-18 19:37:32 +00:00
>PUSHEA.G TIME.Mod
lda ZPFileStat
clc
adc #S.STAT.MTIME
tay
lda ZPFileStat+1
adc #0
2019-11-29 15:36:54 +00:00
jsr CS.RUN.DATEFMT.SELECT
>SYSCALL StrFTime
2019-11-29 15:36:54 +00:00
.1 ldy #S.STAT.CTIME+S.TIME.MONTH
lda (ZPFileStat),y
beq .2 Month=0.....invalid date/time
2020-01-18 19:37:32 +00:00
>PUSHEA.G TIME.Create
lda ZPFileStat
clc
adc #S.STAT.CTIME
tay
lda ZPFileStat+1
adc #0
2019-11-29 15:36:54 +00:00
jsr CS.RUN.DATEFMT.SELECT
>SYSCALL StrFTime
2019-11-29 15:36:54 +00:00
.2 >PUSHEA.G TIME.Mod
>PUSHEA.G TIME.Create
rts
*--------------------------------------
2019-11-29 15:36:54 +00:00
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
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.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
.8 >PUSHW L.FMT.Time
2020-01-18 19:37:32 +00:00
>PUSHW ZPPtr1
2019-11-29 15:36:54 +00:00
rts
.9 >PUSHW L.FMT.Date
2020-01-18 19:37:32 +00:00
>PUSHW ZPPtr1
2019-11-29 15:36:54 +00:00
rts
*--------------------------------------
CS.RUN.UpdateColCnt
2018-12-19 16:45:09 +00:00
>INC.G ColCount
cmp #MAX.COL
bne CS.RUN.NewLine.8
lda #0
sta (pData),y
bra CS.RUN.NewLine.1
*--------------------------------------
2016-10-30 22:23:18 +00:00
CS.RUN.ENTER.MSG
2020-02-14 07:21:56 +00:00
>PUSHW L.MSG.ENTER
ldy #hSrcBasePath
2016-10-30 22:23:18 +00:00
lda (pData),y
2018-07-18 15:30:42 +00:00
>SYSCALL GetMemPtr
2016-10-30 22:23:18 +00:00
>PUSHYA
2018-08-22 15:23:27 +00:00
>PUSHBI 2
2020-02-14 07:21:56 +00:00
2020-02-28 07:21:46 +00:00
>SYSCALL PrintF
2020-07-21 05:26:07 +00:00
bcc CS.RUN.NewLine.1
rts
*--------------------------------------
CS.RUN.NewLine >LDA.G ColCount
beq CS.RUN.NewLine.8
CS.RUN.NewLine.1
lda #C.CR
>SYSCALL putchar
bit bCRLF
bpl CS.RUN.NewLine.8
lda #C.LF
>SYSCALL putchar
CS.RUN.NewLine.8
clc
2016-10-30 22:23:18 +00:00
rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT jsr LeaveSubDir
bcc CS.QUIT
2018-08-11 10:57:57 +00:00
>LDA.G hFilter
beq .3
2019-12-06 13:50:32 +00:00
2018-07-18 15:30:42 +00:00
>SYSCALL FreeMem
2018-08-11 10:57:57 +00:00
2019-12-06 13:50:32 +00:00
.3 >LDA.G hPW
2020-07-20 15:19:32 +00:00
beq .4
>SYSCALL FreeMem
.4 lda hLineBuf
2019-12-06 13:50:32 +00:00
beq .8
>SYSCALL FreeMem
.8 clc
rts
*--------------------------------------
FileType2PSTR ldy #0
.1 cmp PRODOS.FT.HEX,y
2018-08-24 10:20:23 +00:00
beq .8
iny
cpy #PRODOS.FT.TXT-PRODOS.FT.HEX
bne .1
pha
lsr
lsr
lsr
lsr
2018-08-24 10:20:23 +00:00
ora #$30
cmp #$3A
bcc .2
adc #6
.2 sta PRODOS.FT.DFLT+2
pla
and #$0F
2018-08-24 10:20:23 +00:00
ora #$30
cmp #$3A
bcc .3
adc #6
.3 sta PRODOS.FT.DFLT+3
2019-10-03 06:25:27 +00:00
.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
2020-07-13 19:29:31 +00:00
php C = RU
lsr
lsr
lsr
tax
lda TYPES,x
>STA.G MOD
2020-07-13 19:29:31 +00:00
plp
ldx #8
ldy #S.STAT.MODE
lda (ZPFileStat),y
2019-04-15 05:40:13 +00:00
ldy #MOD+1
2020-07-13 19:29:31 +00:00
.1 pha
lda #'-'
bcc .2
2020-07-13 19:29:31 +00:00
lda ACCESS,x
2020-07-13 19:29:31 +00:00
.2 sta (pData),y
2020-07-13 19:29:31 +00:00
iny
pla
2020-07-13 19:29:31 +00:00
asl
dex
bpl .1
2020-04-02 06:32:25 +00:00
>PUSHEA.G MOD
rts
*--------------------------------------
2020-07-20 15:19:32 +00:00
.INB usr/src/bin/x.fileenum.s
*--------------------------------------
CS.END
*--------------------------------------
OptionList .AS "ACFLRacflr"
2019-03-11 16:46:00 +00:00
OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse
*--------------------------------------
2020-07-20 15:19:32 +00:00
MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %S %H %s"
2020-07-22 08:32:58 +00:00
MSG.REG .AZ "%19s"
MSG.DIREXT .AZ "%s %6s %6s %s %s <dir> %s"
MSG.DIR .AZ "\e[32m%s/\e[0m"
2020-07-20 15:19:32 +00:00
MSG.BDEVEXT .AZ "/%15s S%dD%d Blocks Used:%5D Total:%5D"
2020-07-22 08:32:58 +00:00
MSG.BDEV .AZ "\e[32m%s/\e[0m"
2020-07-21 05:26:07 +00:00
MSG.ENTER .AZ "Directory:%s"
*--------------------------------------
2019-09-19 15:22:14 +00:00
PRODOS.FT.HEX .HS 0406FAFCFDE2CBCCCFFF
2019-11-29 15:36:54 +00:00
PRODOS.FT.TXT >PSTR "txt"
>PSTR "bin"
>PSTR "asm"
>PSTR "bas"
>PSTR "var"
>PSTR "atk"
>PSTR "pix"
>PSTR "fon"
>PSTR "pak"
>PSTR "sys"
PRODOS.FT.DFLT >PSTR "$ "
2019-12-06 15:06:08 +00:00
MSG.NODATE .AZ "<no-date>"
2019-11-29 15:36:54 +00:00
FMT.Date .AZ "%d-%b-%y"
FMT.Time .AZ "%H:%M:%S "
2020-07-13 19:29:31 +00:00
FMT.string6 .AZ "%6s"
FMT.int16 .AZ "%6D"
TYPES .AS "-dbclssp"
2020-07-13 19:29:31 +00:00
ACCESS .AS "xwrxwrxwr"
*--------------------------------------
2015-06-03 18:30:57 +00:00
.DUMMY
.OR 0
DS.START
ArgCount .BS 1
2017-10-04 15:12:03 +00:00
MOD .BS 11 drwxrwxrwx0
2020-07-13 19:29:31 +00:00
USER .BS 7
GROUP .BS 7
TIME.Create .BS 20
TIME.Mod .BS 20
2019-11-29 15:36:54 +00:00
TIME.SysTime .BS S.TIME
bPause .BS 1
bAllmostAll .BS 1
2019-03-11 15:43:33 +00:00
bColumn .BS 1
2019-03-11 16:46:00 +00:00
bFullPath .BS 1
bLong .BS 1
bRecurse .BS 1
2017-10-04 15:12:03 +00:00
ColCount .BS 1
2019-12-06 13:50:32 +00:00
hPW .BS 1
2017-10-04 15:12:03 +00:00
2020-07-13 19:29:31 +00:00
.INB usr/src/bin/x.fileenum.g
DS.END
2015-06-03 18:30:57 +00:00
.ED
*--------------------------------------
MAN
2020-07-13 19:29:31 +00:00
SAVE usr/src/bin/ls.s
ASM