Files
2026-05-07 10:02:50 +12:00

161 lines
1.8 KiB
ArmAsm

getbyt jsr frmnum
conint jsr posint
ldx facmo
bne gofuc
ldx faclo
jmp chrgot
val jsr len1
bne *+5
jmp zerofc
ldx txtptr
ldy txtptr+1
stx strng2
sty strng2+1
ldx index1
stx txtptr
clc
adc index1
sta index2
ldx index1+1
stx txtptr+1
bcc val2
inx
val2 stx index2+1
ldy #0
lda (index2),y
pha
tya ;a=0
sta (index2),y
jsr chrgot
jsr fin
pla
ldy #0
sta (index2),y
st2txt ldx strng2
ldy strng2+1
stx txtptr
sty txtptr+1
valrts rts
getnum jsr frmnum
jsr getadr
combyt jsr chkcom
jmp getbyt
getadr lda facsgn
bmi gofuc
lda facexp
cmp #145
bcs gofuc
jsr qint
lda facmo
ldy facmo+1
sty poker
sta poker+1
rts
peek lda poker+1
pha
lda poker
pha
jsr getadr
ldy #0
getcon lda (poker),y
tay
dosgfl pla
sta poker
pla
sta poker+1
jmp sngflt
poke jsr getnum
txa
ldy #0
sta (poker),y
rts
fnwait jsr getnum
stx andmsk
ldx #0
jsr chrgot
beq stordo
jsr combyt
stordo stx eormsk
ldy #0
waiter lda (poker),y
eor eormsk
and andmsk
beq waiter
zerrts rts
faddh lda #<fhalf
ldy #>fhalf
jmp fadd
fsub jsr conupk
fsubt lda facsgn
eor #$ff
sta facsgn
eor argsgn
sta arisgn
lda facexp
jmp faddt
fadd5 jsr shiftr
bcc fadd4
fadd jsr conupk
faddt bne *+5
jmp movfa
ldx facov
stx oldov
ldx #argexp
lda argexp
faddc tay
beq zerrts
sec
sbc facexp
beq fadd4
bcc fadda
sty facexp
ldy argsgn
sty facsgn
eor #$ff
adc #0
ldy #0
sty oldov
ldx #fac
bne fadd1
fadda ldy #0
sty facov
fadd1 cmp #$f9
bmi fadd5
tay
lda facov
lsr 1,x
jsr rolshf
fadd4 bit arisgn
bpl fadd2
ldy #facexp
cpx #argexp
beq subit
ldy #argexp
subit sec
eor #$ff
adc oldov
sta facov
lda 3+addprc,y
sbc 3+addprc,x
sta faclo
lda addprc+2,y
sbc 2+addprc,x
sta facmo
lda 2,y
sbc 2,x
sta facmoh
lda 1,y
sbc 1,x
sta facho
fadflt bcs normal
jsr negfac
normal ldy #0
tya
clc
norm3 ldx facho
bne norm1
ldx facho+1
stx facho
ldx facmoh+1