A2osX/BIN/ACOS.S.RT.txt

328 lines
5.0 KiB
Plaintext
Raw Normal View History

2021-04-16 19:17:18 +00:00
NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
2021-07-09 20:40:57 +00:00
RT.NOT lda (pStack)
inc
ora (pStack)
beq .1
lda #1
.1 dec
sta (pStack)
>PUSHA
rts
*--------------------------------------
RT.StrAdd >DEBUG
inc pStack
inc pStack
clc
rts
*--------------------------------------
RT.StrSet >PUSHB hStrings
2021-07-09 13:54:42 +00:00
txa
>PUSHA
tya
>PUSHA
2021-07-09 13:54:42 +00:00
ldy #4
lda (pStack),y
>PUSHA
lda (pStack),y
>PUSHA
>SYSCALL StrVSet
2021-07-09 13:54:42 +00:00
inc pStack
inc pStack
rts
2021-04-16 19:17:18 +00:00
*--------------------------------------
2021-07-09 13:54:42 +00:00
RT.StrGet lda #0
sta (ZPStrBuf)
>PUSHB hStrings
txa
>PUSHA
tya
>PUSHA
>PUSHW ZPStrBuf
>SYSCALL StrVGet
>PUSHW ZPStrBuf
rts
2021-04-16 19:17:18 +00:00
*--------------------------------------
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
2021-04-16 19:17:18 +00:00
rts
*--------------------------------------
2021-07-09 13:54:42 +00:00
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
2021-06-03 17:43:28 +00:00
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
2021-06-03 17:43:28 +00:00
*--------------------------------------
RT.GET jsr RT.GetChar
2021-07-09 13:54:42 +00:00
sta (ZPStrBuf)
ldy #1
2021-07-24 20:42:23 +00:00
lda #0
sta (ZPStrBuf),y
2021-07-09 13:54:42 +00:00
bra RT.INPUT.8
*--------------------------------------
RT.INPUT lda #0
sta (ZPStrBuf)
stz ZPPtr1
ldx #0 OUT.ELW
jsr RT.OUTX
.1 jsr RT.GetChar
2021-07-09 13:54:42 +00:00
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
2021-07-09 13:54:42 +00:00
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
*--------------------------------------
* TODO: handle lost conn CS and remap VT100 ESC codes
*--------------------------------------
RT.GetChar >SYSCALL GetChar
cmp #C.CR
bne .8
>SYSCALL GetChar LF
lda #C.CR
.8 clc
rts
*--------------------------------------
2021-04-16 19:17:18 +00:00
MAN
2021-05-22 21:05:12 +00:00
SAVE usr/src/bin/acos.s.rt
2021-04-16 19:17:18 +00:00
LOAD usr/src/bin/acos.s
ASM