A2osX/BIN/ACOS.S.RT.txt

307 lines
4.7 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
.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