A2osX/SYS/KERNEL.S.SHARED.txt

183 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
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.TXTPTR.GetY
sta CLRREADAUX
lda (TXTPTR),y
sta SETREADAUX
rts
*--------------------------------------
SHARED.TXTPTR.GetNext
sta CLRREADAUX
lda (TXTPTR)
sta SETREADAUX
beq SHARED.RTS
SHARED.TXTPTR.Next
inc TXTPTR
bne SHARED.RTS
inc TXTPTR+1
rts
*--------------------------------------
SHARED.FORPNT.getY
sta CLRREADAUX
lda (FORPNT),y
sta SETREADAUX
rts
*--------------------------------------
SHARED.FORPNT.PutY
sta CLRWRITEAUX
sta (FORPNT),y
sta SETWRITEAUX
rts
*--------------------------------------
SHARED.FORPNT.GetNext
sta CLRREADAUX
lda (FORPNT)
sta SETREADAUX
bra SHARED.FORPNT.Next
*--------------------------------------
SHARED.FORPNT.PutNext
sta CLRWRITEAUX
sta (FORPNT)
sta SETWRITEAUX
SHARED.FORPNT.Next
inc FORPNT
bne SHARED.RTS
inc FORPNT+1
SHARED.RTS rts
*--------------------------------------
SHARED.SPtr1PPtr2
>STYA ZPPtr1
>PULLW ZPPtr2
rts
*--------------------------------------
SHARED.GetCharPtr1
lda (ZPPtr1)
beq SHARED.RTS
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.ZPPtr3.GetY
sta CLRREADAUX
lda (ZPPtr3),y
sta SETREADAUX
rts
*--------------------------------------
SHARED.GetScrnDevX
sta CLRREADAUX
lda A2osX.SCRNDEVS,x
sta SETREADAUX
rts
*--------------------------------------
SHARED.GetPDrv ldy #S.FD.DEV.DRVPTR
lda (pFD),y
sta pDRV
iny
lda (pFD),y
sta pDRV+1
rts
*--------------------------------------
SHARED.ClrStat ldx #S.STAT-1
.1 stz K.S.STAT,x
dex
bpl .1
lda CORE.FSID
sta K.S.STAT+S.STAT.FSID
rts
*--------------------------------------
DEV.FIFO .AS "/dev/fifo" STAT,UNISTD
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.SHARED
LOAD USR/SRC/SYS/KERNEL.S
ASM