mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-08 01:37:13 +00:00
Kernel 0.93+
This commit is contained in:
parent
98794f6995
commit
7cbfdb69f7
Binary file not shown.
284
BIN/STAT.S.txt
Normal file
284
BIN/STAT.S.txt
Normal file
@ -0,0 +1,284 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF BIN/STAT
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/MLI.I
|
||||
.INB INC/MLI.E.I
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ArgIndex .BS 1
|
||||
ArgFile .BS 1
|
||||
ZPPTR1 .BS 2
|
||||
|
||||
bFormatStr .BS 1
|
||||
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
CS.START cld
|
||||
jmp (.1,x)
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA #S.PS.F.EVENT S.PS.F
|
||||
.DA #0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
.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
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.Filename .DA MSG.Filename
|
||||
L.MSG.Mode .DA MSG.Mode
|
||||
L.MSG.UIDGIDSIZE .DA MSG.UIDGIDSIZE
|
||||
L.FMT.DateTime .DA FMT.DateTime
|
||||
L.MSG.AMCTimes .DA MSG.AMCTimes
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN
|
||||
.1 inc ArgIndex
|
||||
lda ArgIndex
|
||||
>SYSCALL ArgV
|
||||
bcs .3
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
cmp #'-'
|
||||
bne .2
|
||||
|
||||
jsr CS.RUN.CheckOpt
|
||||
bcc .1
|
||||
|
||||
.99 >PUSHBI 0
|
||||
>LDYA L.MSG.USAGE
|
||||
>SYSCALL printf
|
||||
lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
|
||||
.2 lda ArgFile
|
||||
bne .99
|
||||
|
||||
lda ArgIndex
|
||||
sta ArgFile
|
||||
bra .1
|
||||
|
||||
.3 ldx ArgFile
|
||||
beq .99
|
||||
|
||||
>PUSHW pData
|
||||
txa
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL Stat
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.DUMP
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
sec
|
||||
.9
|
||||
CS.RUN.RTS rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DUMP lda ArgFile
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL Realpath
|
||||
bcs CS.RUN.RTS
|
||||
|
||||
phx
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.Filename
|
||||
>SYSCALL printf
|
||||
pla
|
||||
>SYSCALL freemem
|
||||
|
||||
jsr Mod2CSTR
|
||||
>PUSHEA.G MOD
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.Mode
|
||||
>SYSCALL printf
|
||||
|
||||
>PUSHL.G StatBuf+S.STAT.SIZE
|
||||
>PUSHW.G StatBuf+S.STAT.GID
|
||||
>PUSHW.G StatBuf+S.STAT.UID
|
||||
>PUSHBI 8
|
||||
>LDYA L.MSG.UIDGIDSIZE
|
||||
>SYSCALL printf
|
||||
|
||||
jsr CS.RUN.PrintAMCTime
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
*--------------------------------------
|
||||
Mod2CSTR ldy #S.STAT.MODE+1
|
||||
lda (pData),y
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tax
|
||||
lda TYPES,x
|
||||
>STA.G MOD
|
||||
|
||||
ldx #0
|
||||
ldy #S.STAT.MODE
|
||||
lda (pData),y
|
||||
|
||||
ldy #MOD+1
|
||||
|
||||
.1 lsr
|
||||
pha
|
||||
lda #'-'
|
||||
bcc .2
|
||||
|
||||
lda ACCESS,x
|
||||
|
||||
.2 sta (pData),y
|
||||
iny
|
||||
pla
|
||||
inx
|
||||
cpx #8
|
||||
bne .1
|
||||
|
||||
.3 ldy #S.STAT.MODE+1
|
||||
lda (pData),y
|
||||
lsr
|
||||
lda #'-'
|
||||
bcc .4
|
||||
|
||||
lda ACCESS,x
|
||||
|
||||
.4 >STA.G MOD+9
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.PrintAMCTime
|
||||
ldy #TIME.Access-1 Set NODATE as default
|
||||
jsr CS.RUN.PrintAMCTime.NODATE
|
||||
ldy #TIME.Mod-1 Set NODATE as default
|
||||
jsr CS.RUN.PrintAMCTime.NODATE
|
||||
ldy #TIME.Create-1 Set NODATE as default
|
||||
jsr CS.RUN.PrintAMCTime.NODATE
|
||||
|
||||
>LDA.G StatBuf+S.STAT.ATIME+S.TIME.MONTH
|
||||
beq .1 Month=0.....invalid date/time
|
||||
|
||||
>PUSHW.G StatBuf+S.STAT.ATIME
|
||||
>PUSHW L.FMT.DateTime
|
||||
>LEA.G TIME.Access
|
||||
>SYSCALL StrFTime
|
||||
|
||||
.1 >LDA.G StatBuf+S.STAT.MTIME+S.TIME.MONTH
|
||||
beq .2 Month=0.....invalid date/time
|
||||
|
||||
>PUSHW.G StatBuf+S.STAT.MTIME
|
||||
>PUSHW L.FMT.DateTime
|
||||
>LEA.G TIME.Mod
|
||||
>SYSCALL StrFTime
|
||||
|
||||
.2 >LDA.G StatBuf+S.STAT.CTIME+S.TIME.MONTH
|
||||
beq .8 Month=0.....invalid date/time
|
||||
|
||||
>PUSHW.G StatBuf+S.STAT.CTIME
|
||||
>PUSHW L.FMT.DateTime
|
||||
>LEA.G TIME.Create
|
||||
>SYSCALL StrFTime
|
||||
|
||||
.8 >PUSHEA.G TIME.Create
|
||||
>PUSHEA.G TIME.Mod
|
||||
>PUSHEA.G TIME.Access
|
||||
>PUSHBI 6
|
||||
>LDYA L.MSG.AMCTimes
|
||||
>SYSCALL printf
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.PrintAMCTime.NODATE
|
||||
ldx #$ff
|
||||
|
||||
.1 inx
|
||||
iny
|
||||
lda MSG.NODATE,x
|
||||
sta (pData),y
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CheckOpt ldy #1
|
||||
lda (ZPPtr1),y
|
||||
|
||||
ldx #OptionVars-OptionList-1
|
||||
|
||||
.2 cmp OptionList,x
|
||||
beq .3
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
sec
|
||||
rts
|
||||
|
||||
.3 ldy OptionVars,x
|
||||
lda #$ff
|
||||
sta 0,y
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
OptionList .AS "Cc"
|
||||
OptionVars .DA #bFormatStr,#bFormatStr
|
||||
TYPES .AS "-dbclssp"
|
||||
ACCESS .AS "rwxrwxrwx"
|
||||
MSG.NODATE .AZ " <No-Date> "
|
||||
FMT.DateTime .AZ "%d-%b-%y %H:%M"
|
||||
*--------------------------------------
|
||||
MSG.USAGE .AS "Usage : STAT File\r\n"
|
||||
.AZ " -C : "Format Sting"\r\n"
|
||||
MSG.Filename .AZ "Filename : %s\r\n"
|
||||
MSG.Mode .AZ "Access : %s\r\n"
|
||||
MSG.UIDGIDSIZE .AS "UID : %D\r\n"
|
||||
.AS "GID : %D\r\n"
|
||||
.AZ "Filesize : %u\r\n"
|
||||
MSG.AMCTimes .AS "Access time : %s\r\n"
|
||||
.AS "Mod time : %s\r\n"
|
||||
.AZ "Creation time : %s\r\n"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
StatBuf .BS S.STAT
|
||||
MOD .BS 11 drwxrwxrwx0
|
||||
TIME.Access .BS 20
|
||||
TIME.Mod .BS 20
|
||||
TIME.Create .BS 20
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/STAT.S
|
||||
ASM
|
@ -616,7 +616,7 @@ S.STAT.GID .EQ 6 WORD
|
||||
S.STAT.INO .EQ 8 QWORD
|
||||
S.STAT.NLINK .EQ 16 WORD
|
||||
S.STAT.SIZE .EQ 18 DWORD
|
||||
S.STAT.ATIME .EQ 22 S.TIME
|
||||
S.STAT.ATIME .EQ 22 S.TIME
|
||||
S.STAT.MTIME .EQ 30 S.TIME
|
||||
S.STAT.CTIME .EQ 38 S.TIME
|
||||
S.STAT.BLOCKS .EQ 46 DWORD
|
||||
|
Loading…
x
Reference in New Issue
Block a user