mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-09 00:54:29 +00:00
246 lines
4.9 KiB
Plaintext
246 lines
4.9 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
SHARED.GetKeyCharY
|
||
sta CLRREADAUX
|
||
lda (ZPSListDataPtr),y
|
||
sta SETREADAUX
|
||
beq SHARED.IsDigit.9
|
||
SHARED.IsIDValid
|
||
cmp #'.'
|
||
beq SHARED.IsDigit.8
|
||
|
||
cmp #'_'
|
||
beq SHARED.IsDigit.8
|
||
SHARED.IsDigitOrL
|
||
cmp #'z'+1
|
||
bcs SHARED.IsDigit.RTS
|
||
cmp #'a'
|
||
bcs SHARED.IsDigit.8
|
||
SHARED.IsDigitOrUC
|
||
cmp #'Z'+1
|
||
bcs SHARED.IsDigit.RTS
|
||
cmp #'A'
|
||
bcs SHARED.IsDigit.8
|
||
|
||
jmp ZP.IsDigit
|
||
SHARED.IsDigit.9
|
||
sec
|
||
rts
|
||
SHARED.IsDigit.8
|
||
clc
|
||
SHARED.IsDigit.RTS
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.IsHexDigit
|
||
jsr ZP.IsDigit
|
||
bcc .8
|
||
cmp #'A'
|
||
bcc SHARED.IsDigit.9
|
||
cmp #'F'+1
|
||
bcc .1
|
||
cmp #'a'
|
||
bcc SHARED.IsDigit.9
|
||
cmp #'f'+1
|
||
bcs SHARED.IsDigit.RTS
|
||
|
||
eor #$20
|
||
.1
|
||
* clc
|
||
sbc #'A'-11 cc so A->10 (11-CC)
|
||
clc
|
||
.8 and #$0F
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.SetKeyCharY
|
||
sta CLRWRITEAUX
|
||
sta (ZPSListDataPtr),y
|
||
sta SETWRITEAUX
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.GetDataByte
|
||
sta CLRREADAUX
|
||
lda (ZPSListDataPtr)
|
||
sta SETREADAUX
|
||
bra SHARED.SetDataByte.1
|
||
*--------------------------------------
|
||
SHARED.SetDataByte
|
||
sta CLRWRITEAUX
|
||
sta (ZPSListDataPtr)
|
||
sta SETWRITEAUX
|
||
SHARED.SetDataByte.1
|
||
inc ZPSListDataPtr
|
||
bne .8
|
||
inc ZPSListDataPtr+1
|
||
.8 rts
|
||
*--------------------------------------
|
||
SHARED.TXTPTR.GetY
|
||
sta CLRREADAUX
|
||
lda (TXTPTR),y
|
||
sta SETREADAUX
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.TXTPTR.GetNext
|
||
sta CLRREADAUX
|
||
lda (TXTPTR)
|
||
sta SETREADAUX
|
||
beq .9
|
||
inc TXTPTR
|
||
bne .9
|
||
inc TXTPTR+1
|
||
.9 rts
|
||
*--------------------------------------
|
||
SHARED.SPtr1PPtr2
|
||
>STYA ZPPtr1
|
||
>PULLW ZPPtr2
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.SPtr2PPtr1
|
||
>STYA ZPPtr2
|
||
>PULLW ZPPtr1
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.GetCharPtr1
|
||
lda (ZPPtr1)
|
||
bne SHARED.NextCharPtr1
|
||
rts
|
||
SHARED.PutCharPtr1
|
||
sta (ZPPtr1)
|
||
SHARED.NextCharPtr1
|
||
inc ZPPtr1
|
||
bne .8
|
||
inc ZPPtr1+1 never Z
|
||
.8 rts
|
||
*--------------------------------------
|
||
SHARED.AddYp1ToPtr1
|
||
sec
|
||
.HS 90 BCC
|
||
SHARED.AddYToPtr1
|
||
clc
|
||
tya
|
||
adc ZPPtr1
|
||
sta ZPPtr1
|
||
bcc .8
|
||
inc ZPPtr1+1
|
||
.8 rts
|
||
*--------------------------------------
|
||
SHARED.AddYp1ToPtr2
|
||
sec
|
||
.HS 90 BCC
|
||
SHARED.AddYToPtr2
|
||
clc
|
||
tya
|
||
adc ZPPtr2
|
||
sta ZPPtr2
|
||
bcc .8
|
||
clc keep CC as some JMP exit here
|
||
inc ZPPtr2+1
|
||
.8 rts
|
||
*--------------------------------------
|
||
SHARED.GetCharPtr2
|
||
lda (ZPPtr2)
|
||
bne SHARED.NextCharPtr2
|
||
rts
|
||
SHARED.PutCharPtr2
|
||
sta (ZPPtr2)
|
||
SHARED.NextCharPtr2
|
||
inc ZPPtr2
|
||
bne .8
|
||
inc ZPPtr2+1
|
||
.8 rts
|
||
*--------------------------------------
|
||
SHARED.PullYA sta CLRREADAUX
|
||
>PULLYA
|
||
sta SETREADAUX
|
||
SHARED.PullYA.RTS
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.Stat jsr PFT.CheckPathYA
|
||
bcs SHARED.PullYA.RTS
|
||
|
||
SHARED.Stat.I jsr SHARED.ClrStat
|
||
|
||
>MLICALL MLIGETFILEINFO
|
||
bcs SHARED.PullYA.RTS
|
||
|
||
lda K.MLI.PARAMS+S.FI.A
|
||
jsr SHARED.Stat.Access2Mode
|
||
|
||
ldx #SHARED.Stat.DST-SHARED.Stat.SRC
|
||
|
||
.3 ldy SHARED.Stat.SRC-1,x
|
||
lda K.MLI.PARAMS,y
|
||
ldy SHARED.Stat.DST-1,x
|
||
sta K.S.STAT,y
|
||
dex
|
||
bne .3
|
||
|
||
* >PUSHWI K.S.STAT+S.STAT.CTIME
|
||
* >LDYAI K.MLI.PARAMS+S.FI.CDATE
|
||
* >SYSCALL2 PTime2Time BANK2
|
||
|
||
* >PUSHWI K.S.STAT+S.STAT.MTIME
|
||
* >LDYAI K.MLI.PARAMS+S.FI.MDATE
|
||
* >SYSCALL2 PTime2Time BANK2
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.DirEnt2Stat
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.ClrStat ldx #S.STAT-1
|
||
|
||
.1 stz K.S.STAT,x
|
||
dex
|
||
bpl .1
|
||
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.Stat.Access2Mode
|
||
and #S.FI.A.FULL
|
||
cmp #S.FI.A.FULL
|
||
beq .7
|
||
tay
|
||
ldx #S.STAT.MODE.RO+S.STAT.MODE.RG+S.STAT.MODE.RU+S.STAT.MODE.XO+S.STAT.MODE.XG+S.STAT.MODE.XU
|
||
|
||
bit #S.FI.A.W
|
||
beq .1
|
||
txa
|
||
ora #S.STAT.MODE.WO
|
||
tax
|
||
tya
|
||
|
||
.1 asl D in C
|
||
|
||
bpl .2 RN in N
|
||
txa
|
||
ora #S.STAT.MODE.WG
|
||
tax
|
||
.2 txa
|
||
bcc .8
|
||
ora #S.STAT.MODE.WU
|
||
.HS 2C BIT ABS
|
||
.7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx
|
||
.8 sta K.S.STAT+S.STAT.MODE
|
||
|
||
lda /S.STAT.MODE.RU ??????R??
|
||
ora K.S.STAT+S.STAT.MODE+1 preserve DIR
|
||
sta K.S.STAT+S.STAT.MODE+1
|
||
|
||
rts
|
||
*--------------------------------------
|
||
SHARED.Stat.SRC .DA #S.FI.T
|
||
.DA #S.FI.AUXTYPE,#S.FI.AUXTYPE+1
|
||
.DA #S.FI.UBLKS,#S.FI.UBLKS+1
|
||
SHARED.Stat.DST .DA #S.STAT.P.TYPE
|
||
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
||
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE USR/SRC/SYS/KERNEL.S.SHARED
|
||
LOAD USR/SRC/SYS/KERNEL.S
|
||
ASM
|