mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-25 20:33:13 +00:00
307 lines
4.7 KiB
Plaintext
307 lines
4.7 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
.LIST OFF
|
||
*--------------------------------------
|
||
RT.NOT lda (pStack)
|
||
inc
|
||
ora (pStack)
|
||
beq .1
|
||
|
||
lda #1
|
||
|
||
.1 dec
|
||
sta (pStack)
|
||
>PUSHA
|
||
rts
|
||
*--------------------------------------
|
||
RT.StrSet >PUSHB hStrings
|
||
txa
|
||
>PUSHA
|
||
tya
|
||
>PUSHA
|
||
|
||
ldy #4
|
||
lda (pStack),y
|
||
>PUSHA
|
||
lda (pStack),y
|
||
>PUSHA
|
||
>SYSCALL StrVSet
|
||
inc pStack
|
||
inc pStack
|
||
rts
|
||
*--------------------------------------
|
||
RT.StrGet lda #0
|
||
sta (ZPStrBuf)
|
||
|
||
>PUSHB hStrings
|
||
txa
|
||
>PUSHA
|
||
tya
|
||
>PUSHA
|
||
>PUSHW ZPStrBuf
|
||
>SYSCALL StrVGet
|
||
>PUSHW ZPStrBuf
|
||
rts
|
||
*--------------------------------------
|
||
RT.StrOut ldy #S.PS.hStdOut
|
||
lda (pPS),y
|
||
>PUSHA
|
||
ldy #2
|
||
lda (pStack),y
|
||
>PUSHA
|
||
lda (pStack),y
|
||
>PUSHA
|
||
>PUSHBI 0
|
||
>SYSCALL fprintf
|
||
inc pStack
|
||
inc pStack
|
||
rts
|
||
*--------------------------------------
|
||
RT.IntSet sty ZPADDR
|
||
stx ZPADDR+1
|
||
|
||
>PULLA
|
||
sta (ZPADDR)
|
||
>PULLA
|
||
ldy #1
|
||
sta (ZPADDR),y
|
||
rts
|
||
*--------------------------------------
|
||
RT.IntGet sty ZPADDR
|
||
stx ZPADDR+1
|
||
|
||
ldy #1
|
||
lda (ZPADDR),y
|
||
>PUSHA
|
||
lda (ZPADDR)
|
||
>PUSHA
|
||
rts
|
||
*--------------------------------------
|
||
RT.IntOut >PUSHW L.MSG.INT16
|
||
ldy #3
|
||
lda (pStack),y
|
||
>PUSHA
|
||
lda (pStack),y
|
||
>PUSHA
|
||
>PUSHBI 2
|
||
>SYSCALL PrintF
|
||
inc pStack
|
||
inc pStack
|
||
rts
|
||
*--------------------------------------
|
||
RT.DATEd ldx #0
|
||
bra RT.TIMEd.1
|
||
|
||
RT.TIMEd ldx #2
|
||
|
||
RT.TIMEd.1 >PUSHW ZPStrBuf
|
||
>PUSHW L.FMT.DATE,x
|
||
>PUSHEA.G TimeBuf
|
||
|
||
>PUSHEA.G TimeBuf
|
||
>SYSCALL Time
|
||
|
||
>SYSCALL StrFTime
|
||
>PUSHW ZPStrBuf
|
||
rts
|
||
*--------------------------------------
|
||
RT.GET >SYSCALL GetChar
|
||
sta (ZPStrBuf)
|
||
|
||
ldy #1
|
||
|
||
lda #0
|
||
sta (ZPStrBuf),y
|
||
|
||
bra RT.INPUT.8
|
||
*--------------------------------------
|
||
RT.INPUT lda #0
|
||
sta (ZPStrBuf)
|
||
|
||
stz ZPPtr1
|
||
|
||
ldx #0 OUT.ELW
|
||
jsr RT.OUTX
|
||
|
||
.1 >SYSCALL GetChar
|
||
bcs RT.INPUT.9
|
||
|
||
ldy ZPPtr1
|
||
|
||
cmp #C.SPACE
|
||
bcs .7
|
||
|
||
cmp #C.CR
|
||
bne .2
|
||
|
||
lda #0
|
||
sta (ZPStrBuf),y
|
||
|
||
ldx #4 OUT.CRLF
|
||
jsr RT.OUTX
|
||
|
||
bra RT.INPUT.8
|
||
|
||
.2 cmp #C.BS
|
||
bne .1
|
||
|
||
cpy #0
|
||
beq .1
|
||
|
||
ldx 6 OUT.BSSPBS
|
||
jsr RT.OUTX
|
||
|
||
dec ZPPtr1
|
||
bra .1
|
||
|
||
.7 cpy #255
|
||
bcs .1
|
||
|
||
sta (ZPStrBuf),y
|
||
>SYSCALL PutChar
|
||
inc ZPPtr1
|
||
bra .1
|
||
|
||
RT.INPUT.8 ldx #2 OUT.DLW
|
||
jsr RT.OUTX
|
||
|
||
>PUSHW ZPStrBuf
|
||
clc
|
||
|
||
RT.INPUT.9 rts
|
||
*--------------------------------------
|
||
RT.LEFTd >PULLB ZPPtr2 cnt
|
||
inc pStack
|
||
>PULLW ZPPtr1 src str
|
||
|
||
ldy #0
|
||
|
||
.1 lda (ZPPtr1),y
|
||
sta (ZPStrBuf),y
|
||
beq .8
|
||
|
||
iny
|
||
cpy ZPPtr2
|
||
bne .1
|
||
|
||
lda #0
|
||
sta (ZPStrBuf),y
|
||
|
||
.8 >PUSHW ZPStrBuf
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
RT.LEN >PULLYA str
|
||
>SYSCALL strlen
|
||
>PUSHYA
|
||
rts
|
||
*--------------------------------------
|
||
RT.MIDd >PULLA len
|
||
|
||
tax
|
||
inc pStack
|
||
>PULLB ZPPtr2 start
|
||
inc pStack
|
||
>PULLW ZPPtr1 src str
|
||
|
||
ldy #0
|
||
|
||
.1 lda (ZPPtr1),y
|
||
beq .8
|
||
|
||
iny
|
||
cpy ZPPtr2
|
||
bne .1
|
||
|
||
tya
|
||
clc
|
||
adc ZPPtr1
|
||
sta ZPPtr1
|
||
bcc .2
|
||
|
||
inc ZPPtr1+1
|
||
|
||
.2 ldy #0
|
||
|
||
.3 txa
|
||
beq .8
|
||
|
||
lda (ZPPtr1),y
|
||
sta (ZPStrBuf),y
|
||
beq .80
|
||
|
||
iny
|
||
dex
|
||
bne .3
|
||
|
||
txa
|
||
|
||
.8 sta (ZPStrBuf),y
|
||
|
||
.80 >PUSHW ZPStrBuf
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
RT.RIGHTd >PULLB ZPPtr2 cnt
|
||
inc pStack
|
||
>PULLW ZPPtr1 src str
|
||
|
||
ldy #$ff
|
||
|
||
.1 iny
|
||
lda (ZPPtr1),y
|
||
bne .1
|
||
|
||
tya
|
||
sec
|
||
sbc ZPPtr2
|
||
bcc .8
|
||
beq .8
|
||
|
||
clc
|
||
adc ZPPtr1
|
||
sta ZPPtr1
|
||
bcc .2
|
||
|
||
inc ZPPtr1+1
|
||
|
||
.2 ldy #$ff
|
||
|
||
.3 iny
|
||
lda (ZPPtr1),y
|
||
sta (ZPStrBuf),y
|
||
bne .3
|
||
|
||
.8 >PUSHW ZPStrBuf
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
RT.STRd >PULLYA int
|
||
pha
|
||
>PUSHW ZPStrBuf
|
||
>PUSHW L.MSG.INT16
|
||
pla
|
||
>PUSHYA
|
||
>PUSHBI 2
|
||
>SYSCALL sprintf
|
||
>PUSHW ZPStrBuf
|
||
rts
|
||
*--------------------------------------
|
||
RT.VAL >PULLYA str
|
||
>SYSCALL atoi
|
||
>PUSHYA
|
||
rts
|
||
*--------------------------------------
|
||
RT.OUTCRLF ldx #4 CRLF
|
||
RT.OUTX ldy #S.PS.hStdOut
|
||
lda (pPS),y
|
||
>PUSHA
|
||
>PUSHW L.OUT,x
|
||
>SYSCALL FPutS
|
||
rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/bin/acos.s.rt
|
||
LOAD usr/src/bin/acos.s
|
||
ASM
|