Upload files to "basic"
This commit is contained in:
@@ -0,0 +1,34 @@
|
|||||||
|
.feature labels_without_colons, pc_assignment
|
||||||
|
|
||||||
|
.include "declare.s"
|
||||||
|
.include "tokens.s"
|
||||||
|
.include "token2.s"
|
||||||
|
.include "code1.s"
|
||||||
|
.include "code2.s"
|
||||||
|
.include "code3.s"
|
||||||
|
.include "code4.s"
|
||||||
|
.include "code5.s"
|
||||||
|
.include "code6.s"
|
||||||
|
.include "code7.s"
|
||||||
|
.include "code8.s"
|
||||||
|
.include "code9.s"
|
||||||
|
.include "code10.s"
|
||||||
|
.include "code11.s"
|
||||||
|
.include "code12.s"
|
||||||
|
.include "code13.s"
|
||||||
|
.include "code14.s"
|
||||||
|
.include "code15.s"
|
||||||
|
.include "code16.s"
|
||||||
|
.include "code17.s"
|
||||||
|
.include "code18.s"
|
||||||
|
.include "code19.s"
|
||||||
|
.include "code20.s"
|
||||||
|
.include "code21.s"
|
||||||
|
.include "code22.s"
|
||||||
|
.include "code23.s"
|
||||||
|
.include "code24.s"
|
||||||
|
.include "code25.s"
|
||||||
|
.include "code26.s"
|
||||||
|
.include "trig.s"
|
||||||
|
.include "init.s"
|
||||||
|
|
||||||
+172
@@ -0,0 +1,172 @@
|
|||||||
|
omerr ldx #errom
|
||||||
|
error jmp (ierror)
|
||||||
|
nerrox txa
|
||||||
|
asl a
|
||||||
|
tax
|
||||||
|
lda errtab-2,x
|
||||||
|
sta index1
|
||||||
|
lda errtab-1,x
|
||||||
|
sta index1+1
|
||||||
|
jsr clschn
|
||||||
|
lda #0
|
||||||
|
sta channl
|
||||||
|
errcrd jsr crdo
|
||||||
|
jsr outqst
|
||||||
|
ldy #0
|
||||||
|
geterr lda (index1),y
|
||||||
|
pha
|
||||||
|
and #127
|
||||||
|
jsr outdo
|
||||||
|
iny
|
||||||
|
pla
|
||||||
|
bpl geterr
|
||||||
|
jsr stkini
|
||||||
|
lda #<err
|
||||||
|
ldy #>err
|
||||||
|
errfin jsr strout
|
||||||
|
ldy curlin+1
|
||||||
|
iny
|
||||||
|
beq readyx
|
||||||
|
jsr inprt
|
||||||
|
|
||||||
|
readyx lda #<reddy
|
||||||
|
ldy #>reddy
|
||||||
|
jsr strout
|
||||||
|
lda #$80 ;direct messages on
|
||||||
|
jsr setmsg ;from kernal
|
||||||
|
|
||||||
|
main jmp (imain)
|
||||||
|
nmain jsr inlin
|
||||||
|
stx txtptr
|
||||||
|
sty txtptr+1
|
||||||
|
jsr chrget
|
||||||
|
tax
|
||||||
|
beq main
|
||||||
|
ldx #255
|
||||||
|
stx curlin+1
|
||||||
|
bcc main1
|
||||||
|
jsr crunch
|
||||||
|
jmp gone
|
||||||
|
main1 jsr linget
|
||||||
|
jsr crunch
|
||||||
|
sty count
|
||||||
|
jsr fndlin
|
||||||
|
bcc nodel
|
||||||
|
ldy #1
|
||||||
|
lda (lowtr),y
|
||||||
|
sta index1+1
|
||||||
|
lda vartab
|
||||||
|
sta index1
|
||||||
|
lda lowtr+1
|
||||||
|
sta index2+1
|
||||||
|
lda lowtr
|
||||||
|
dey
|
||||||
|
sbc (lowtr),y
|
||||||
|
clc
|
||||||
|
adc vartab
|
||||||
|
sta vartab
|
||||||
|
sta index2
|
||||||
|
lda vartab+1
|
||||||
|
adc #255
|
||||||
|
sta vartab+1
|
||||||
|
sbc lowtr+1
|
||||||
|
tax
|
||||||
|
sec
|
||||||
|
lda lowtr
|
||||||
|
sbc vartab
|
||||||
|
tay
|
||||||
|
bcs qdect1
|
||||||
|
inx
|
||||||
|
dec index2+1
|
||||||
|
qdect1 clc
|
||||||
|
adc index1
|
||||||
|
bcc mloop
|
||||||
|
dec index1+1
|
||||||
|
clc
|
||||||
|
mloop lda (index1),y
|
||||||
|
sta (index2),y
|
||||||
|
iny
|
||||||
|
bne mloop
|
||||||
|
inc index1+1
|
||||||
|
inc index2+1
|
||||||
|
dex
|
||||||
|
bne mloop
|
||||||
|
nodel jsr runc
|
||||||
|
jsr lnkprg
|
||||||
|
lda buf
|
||||||
|
beq main
|
||||||
|
clc
|
||||||
|
lda vartab
|
||||||
|
sta hightr
|
||||||
|
adc count
|
||||||
|
sta highds
|
||||||
|
ldy vartab+1
|
||||||
|
sty hightr+1
|
||||||
|
bcc nodelc
|
||||||
|
iny
|
||||||
|
nodelc sty highds+1
|
||||||
|
jsr bltu
|
||||||
|
lda linnum
|
||||||
|
ldy linnum+1
|
||||||
|
sta buf-2
|
||||||
|
sty buf-1
|
||||||
|
lda strend
|
||||||
|
ldy strend+1
|
||||||
|
sta vartab
|
||||||
|
sty vartab+1
|
||||||
|
ldy count
|
||||||
|
dey
|
||||||
|
stolop lda buf-4,y
|
||||||
|
sta (lowtr),y
|
||||||
|
dey
|
||||||
|
bpl stolop
|
||||||
|
fini jsr runc
|
||||||
|
jsr lnkprg
|
||||||
|
jmp main
|
||||||
|
lnkprg lda txttab
|
||||||
|
ldy txttab+1
|
||||||
|
sta index
|
||||||
|
sty index+1
|
||||||
|
clc
|
||||||
|
chead ldy #1
|
||||||
|
lda (index),y
|
||||||
|
beq lnkrts
|
||||||
|
ldy #4
|
||||||
|
czloop iny
|
||||||
|
lda (index),y
|
||||||
|
bne czloop
|
||||||
|
iny
|
||||||
|
tya
|
||||||
|
adc index
|
||||||
|
tax
|
||||||
|
ldy #0
|
||||||
|
sta (index),y
|
||||||
|
lda index+1
|
||||||
|
adc #0
|
||||||
|
iny
|
||||||
|
sta (index),y
|
||||||
|
stx index
|
||||||
|
sta index+1
|
||||||
|
bcc chead
|
||||||
|
lnkrts rts
|
||||||
|
|
||||||
|
;function to get a line one character at
|
||||||
|
;a time from the input channel and
|
||||||
|
;build it in the input buffer.
|
||||||
|
;
|
||||||
|
inlin ldx #0
|
||||||
|
;
|
||||||
|
inlinc jsr inchr
|
||||||
|
cmp #13 ;a carriage return?
|
||||||
|
beq finin1 ;yes...done build
|
||||||
|
;
|
||||||
|
sta buf,x ;put it away
|
||||||
|
inx
|
||||||
|
cpx #buflen ;max character line?
|
||||||
|
bcc inlinc ;no...o.k.
|
||||||
|
;
|
||||||
|
ldx #errls ;string too long error
|
||||||
|
jmp error
|
||||||
|
;
|
||||||
|
finin1 jmp fininl
|
||||||
|
|
||||||
+180
@@ -0,0 +1,180 @@
|
|||||||
|
;test pointer to variable to see
|
||||||
|
;if constant is contained in basic.
|
||||||
|
;array variables have zeroes placed
|
||||||
|
;in ram. undefined simple variables
|
||||||
|
;have pointer t zero in basic.
|
||||||
|
;
|
||||||
|
tstrom sec
|
||||||
|
lda facmo
|
||||||
|
sbc #<romloc
|
||||||
|
lda faclo
|
||||||
|
sbc #>romloc
|
||||||
|
bcc tstr10
|
||||||
|
;
|
||||||
|
lda #<initat
|
||||||
|
sbc facmo
|
||||||
|
lda #>initat
|
||||||
|
sbc faclo
|
||||||
|
;
|
||||||
|
tstr10 rts
|
||||||
|
|
||||||
|
isvar jsr ptrget
|
||||||
|
isvret sta facmo
|
||||||
|
sty facmo+1
|
||||||
|
ldx varnam
|
||||||
|
ldy varnam+1
|
||||||
|
lda valtyp
|
||||||
|
beq gooo
|
||||||
|
lda #0
|
||||||
|
sta facov
|
||||||
|
jsr tstrom ;see if an array
|
||||||
|
bcc strrts ;don't test st(i),ti(i)
|
||||||
|
cpx #'T'
|
||||||
|
bne strrts
|
||||||
|
cpy #$c9
|
||||||
|
bne strrts
|
||||||
|
jsr gettim
|
||||||
|
sty tenexp
|
||||||
|
dey
|
||||||
|
sty fbufpt
|
||||||
|
ldy #6
|
||||||
|
sty deccnt
|
||||||
|
ldy #fdcend-foutbl
|
||||||
|
jsr foutim
|
||||||
|
jmp timstr
|
||||||
|
strrts rts
|
||||||
|
gooo bit intflg
|
||||||
|
bpl gooooo
|
||||||
|
ldy #0
|
||||||
|
lda (facmo),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (facmo),y
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
jmp givayf
|
||||||
|
gooooo jsr tstrom ;see if array
|
||||||
|
bcc gomovf ;don't test st(i),ti(i)
|
||||||
|
cpx #'T'
|
||||||
|
bne qstatv
|
||||||
|
cpy #'I'
|
||||||
|
bne gomovf
|
||||||
|
jsr gettim
|
||||||
|
tya
|
||||||
|
ldx #160
|
||||||
|
jmp floatb
|
||||||
|
gettim jsr rdtim
|
||||||
|
stx facmo
|
||||||
|
sty facmoh
|
||||||
|
sta faclo
|
||||||
|
ldy #0
|
||||||
|
sty facho
|
||||||
|
rts
|
||||||
|
qstatv cpx #'S'
|
||||||
|
bne gomovf
|
||||||
|
cpy #'T'
|
||||||
|
bne gomovf
|
||||||
|
jsr readst
|
||||||
|
jmp float
|
||||||
|
gomovf lda facmo
|
||||||
|
ldy facmo+1
|
||||||
|
jmp movfm
|
||||||
|
isfun asl a
|
||||||
|
pha
|
||||||
|
tax
|
||||||
|
jsr chrget
|
||||||
|
cpx #lasnum+lasnum-255
|
||||||
|
bcc oknorm
|
||||||
|
jsr chkopn
|
||||||
|
jsr frmevl
|
||||||
|
jsr chkcom
|
||||||
|
jsr chkstr
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
lda facmo+1
|
||||||
|
pha
|
||||||
|
lda facmo
|
||||||
|
pha
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
jsr getbyt
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
jmp fingo
|
||||||
|
oknorm jsr parchk
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
fingo lda fundsp-onefun-onefun+256,y
|
||||||
|
sta jmper+1
|
||||||
|
lda fundsp-onefun-onefun+257,y
|
||||||
|
sta jmper+2
|
||||||
|
jsr jmper
|
||||||
|
jmp chknum
|
||||||
|
orop ldy #255
|
||||||
|
.byt $2c
|
||||||
|
andop ldy #0
|
||||||
|
sty count
|
||||||
|
jsr ayint
|
||||||
|
lda facmo
|
||||||
|
eor count
|
||||||
|
sta integr
|
||||||
|
lda faclo
|
||||||
|
eor count
|
||||||
|
sta integr+1
|
||||||
|
jsr movfa
|
||||||
|
jsr ayint
|
||||||
|
lda faclo
|
||||||
|
eor count
|
||||||
|
and integr+1
|
||||||
|
eor count
|
||||||
|
tay
|
||||||
|
lda facmo
|
||||||
|
eor count
|
||||||
|
and integr
|
||||||
|
eor count
|
||||||
|
jmp givayf
|
||||||
|
dorel jsr chkval
|
||||||
|
bcs strcmp
|
||||||
|
lda argsgn
|
||||||
|
ora #127
|
||||||
|
and argho
|
||||||
|
sta argho
|
||||||
|
lda #<argexp
|
||||||
|
ldy #>argexp
|
||||||
|
jsr fcomp
|
||||||
|
tax
|
||||||
|
jmp qcomp
|
||||||
|
strcmp lda #0
|
||||||
|
sta valtyp
|
||||||
|
dec opmask
|
||||||
|
jsr frefac
|
||||||
|
sta dsctmp
|
||||||
|
stx dsctmp+1
|
||||||
|
sty dsctmp+2
|
||||||
|
lda argmo
|
||||||
|
ldy argmo+1
|
||||||
|
jsr fretmp
|
||||||
|
stx argmo
|
||||||
|
sty argmo+1
|
||||||
|
tax
|
||||||
|
sec
|
||||||
|
sbc dsctmp
|
||||||
|
beq stasgn
|
||||||
|
lda #1
|
||||||
|
bcc stasgn
|
||||||
|
ldx dsctmp
|
||||||
|
lda #$ff
|
||||||
|
stasgn sta facsgn
|
||||||
|
ldy #255
|
||||||
|
inx
|
||||||
|
nxtcmp iny
|
||||||
|
dex
|
||||||
|
bne getcmp
|
||||||
|
ldx facsgn
|
||||||
|
qcomp bmi docmp
|
||||||
|
clc
|
||||||
|
bcc docmp
|
||||||
|
getcmp lda (argmo),y
|
||||||
|
|
||||||
+170
@@ -0,0 +1,170 @@
|
|||||||
|
cmp (dsctmp+1),y
|
||||||
|
beq nxtcmp
|
||||||
|
ldx #$ff
|
||||||
|
bcs docmp
|
||||||
|
ldx #1
|
||||||
|
docmp inx
|
||||||
|
txa
|
||||||
|
rol a
|
||||||
|
and domask
|
||||||
|
beq goflot
|
||||||
|
lda #$ff
|
||||||
|
goflot jmp float
|
||||||
|
dim3 jsr chkcom
|
||||||
|
dim tax
|
||||||
|
jsr ptrgt1
|
||||||
|
jsr chrgot
|
||||||
|
bne dim3
|
||||||
|
rts
|
||||||
|
ptrget ldx #0
|
||||||
|
jsr chrgot
|
||||||
|
ptrgt1 stx dimflg
|
||||||
|
ptrgt2 sta varnam
|
||||||
|
jsr chrgot
|
||||||
|
jsr isletc
|
||||||
|
bcs ptrgt3
|
||||||
|
interr jmp snerr
|
||||||
|
ptrgt3 ldx #0
|
||||||
|
stx valtyp
|
||||||
|
stx intflg
|
||||||
|
jsr chrget
|
||||||
|
bcc issec
|
||||||
|
jsr isletc
|
||||||
|
bcc nosec
|
||||||
|
issec tax
|
||||||
|
eatem jsr chrget
|
||||||
|
bcc eatem
|
||||||
|
jsr isletc
|
||||||
|
bcs eatem
|
||||||
|
nosec cmp #'$'
|
||||||
|
bne notstr
|
||||||
|
lda #$ff
|
||||||
|
sta valtyp
|
||||||
|
bne turnon
|
||||||
|
notstr cmp #'%'
|
||||||
|
bne strnam
|
||||||
|
lda subflg
|
||||||
|
bne interr
|
||||||
|
lda #128
|
||||||
|
sta intflg
|
||||||
|
ora varnam
|
||||||
|
sta varnam
|
||||||
|
turnon txa
|
||||||
|
ora #128
|
||||||
|
tax
|
||||||
|
jsr chrget
|
||||||
|
strnam stx varnam+1
|
||||||
|
sec
|
||||||
|
ora subflg
|
||||||
|
sbc #40
|
||||||
|
bne *+5
|
||||||
|
jmp isary
|
||||||
|
ldy #0
|
||||||
|
sty subflg
|
||||||
|
lda vartab
|
||||||
|
ldx vartab+1
|
||||||
|
stxfnd stx lowtr+1
|
||||||
|
lopfnd sta lowtr
|
||||||
|
cpx arytab+1
|
||||||
|
bne lopfn
|
||||||
|
cmp arytab
|
||||||
|
beq notfns
|
||||||
|
lopfn lda varnam
|
||||||
|
cmp (lowtr),y
|
||||||
|
bne notit
|
||||||
|
lda varnam+1
|
||||||
|
iny
|
||||||
|
cmp (lowtr),y
|
||||||
|
beq finptr
|
||||||
|
dey
|
||||||
|
notit clc
|
||||||
|
lda lowtr
|
||||||
|
adc #6+addprc
|
||||||
|
bcc lopfnd
|
||||||
|
inx
|
||||||
|
bne stxfnd
|
||||||
|
isletc cmp #'A'
|
||||||
|
bcc islrts
|
||||||
|
sbc #$5b
|
||||||
|
sec
|
||||||
|
sbc #$a5
|
||||||
|
islrts rts
|
||||||
|
notfns pla
|
||||||
|
pha
|
||||||
|
zz6=isvret-1
|
||||||
|
cmp #<zz6
|
||||||
|
bne notevl
|
||||||
|
ldzr lda #<zero
|
||||||
|
ldy #>zero
|
||||||
|
rts
|
||||||
|
notevl lda varnam
|
||||||
|
ldy varnam+1
|
||||||
|
cmp #'T'
|
||||||
|
bne qstavr
|
||||||
|
cpy #$c9
|
||||||
|
beq ldzr
|
||||||
|
cpy #$49
|
||||||
|
bne qstavr
|
||||||
|
gobadv jmp snerr
|
||||||
|
qstavr
|
||||||
|
cmp #'S'
|
||||||
|
bne varok
|
||||||
|
cpy #'T'
|
||||||
|
beq gobadv
|
||||||
|
varok lda arytab
|
||||||
|
ldy arytab+1
|
||||||
|
sta lowtr
|
||||||
|
sty lowtr+1
|
||||||
|
lda strend
|
||||||
|
ldy strend+1
|
||||||
|
sta hightr
|
||||||
|
sty hightr+1
|
||||||
|
clc
|
||||||
|
adc #6+addprc
|
||||||
|
bcc noteve
|
||||||
|
iny
|
||||||
|
noteve sta highds
|
||||||
|
sty highds+1
|
||||||
|
jsr bltu
|
||||||
|
lda highds
|
||||||
|
ldy highds+1
|
||||||
|
iny
|
||||||
|
sta arytab
|
||||||
|
sty arytab+1
|
||||||
|
ldy #0
|
||||||
|
lda varnam
|
||||||
|
sta (lowtr),y
|
||||||
|
iny
|
||||||
|
lda varnam+1
|
||||||
|
sta (lowtr),y
|
||||||
|
lda #0
|
||||||
|
iny
|
||||||
|
sta (lowtr),y
|
||||||
|
iny
|
||||||
|
sta (lowtr),y
|
||||||
|
iny
|
||||||
|
sta (lowtr),y
|
||||||
|
iny
|
||||||
|
sta (lowtr),y
|
||||||
|
iny
|
||||||
|
sta (lowtr),y
|
||||||
|
finptr lda lowtr
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
ldy lowtr+1
|
||||||
|
bcc finnow
|
||||||
|
iny
|
||||||
|
finnow sta varpnt
|
||||||
|
sty varpnt+1
|
||||||
|
rts
|
||||||
|
fmaptr lda count
|
||||||
|
asl a
|
||||||
|
adc #5
|
||||||
|
adc lowtr
|
||||||
|
ldy lowtr+1
|
||||||
|
bcc jsrgm
|
||||||
|
iny
|
||||||
|
jsrgm sta arypnt
|
||||||
|
sty arypnt+1
|
||||||
|
rts
|
||||||
|
|
||||||
+153
@@ -0,0 +1,153 @@
|
|||||||
|
n32768 .byt 144,128,0,0,0
|
||||||
|
flpint jsr ayint
|
||||||
|
lda facmo
|
||||||
|
ldy faclo
|
||||||
|
rts
|
||||||
|
intidx jsr chrget
|
||||||
|
jsr frmevl
|
||||||
|
posint jsr chknum
|
||||||
|
lda facsgn
|
||||||
|
bmi nonono
|
||||||
|
ayint lda facexp
|
||||||
|
cmp #144
|
||||||
|
bcc qintgo
|
||||||
|
lda #<n32768
|
||||||
|
ldy #>n32768
|
||||||
|
jsr fcomp
|
||||||
|
nonono bne fcerr
|
||||||
|
qintgo jmp qint
|
||||||
|
isary lda dimflg
|
||||||
|
ora intflg
|
||||||
|
pha
|
||||||
|
lda valtyp
|
||||||
|
pha
|
||||||
|
ldy #0
|
||||||
|
indlop tya
|
||||||
|
pha
|
||||||
|
lda varnam+1
|
||||||
|
pha
|
||||||
|
lda varnam
|
||||||
|
pha
|
||||||
|
jsr intidx
|
||||||
|
pla
|
||||||
|
sta varnam
|
||||||
|
pla
|
||||||
|
sta varnam+1
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
tsx
|
||||||
|
lda 258,x
|
||||||
|
pha
|
||||||
|
lda 257,x
|
||||||
|
pha
|
||||||
|
lda indice
|
||||||
|
sta 258,x
|
||||||
|
lda indice+1
|
||||||
|
sta 257,x
|
||||||
|
iny
|
||||||
|
jsr chrgot
|
||||||
|
cmp #44
|
||||||
|
beq indlop
|
||||||
|
sty count
|
||||||
|
jsr chkcls
|
||||||
|
pla
|
||||||
|
sta valtyp
|
||||||
|
pla
|
||||||
|
sta intflg
|
||||||
|
and #127
|
||||||
|
sta dimflg
|
||||||
|
ldx arytab
|
||||||
|
lda arytab+1
|
||||||
|
lopfda stx lowtr
|
||||||
|
sta lowtr+1
|
||||||
|
cmp strend+1
|
||||||
|
bne lopfdv
|
||||||
|
cpx strend
|
||||||
|
beq notfdd
|
||||||
|
lopfdv ldy #0
|
||||||
|
lda (lowtr),y
|
||||||
|
iny
|
||||||
|
cmp varnam
|
||||||
|
bne nmary1
|
||||||
|
lda varnam+1
|
||||||
|
cmp (lowtr),y
|
||||||
|
beq gotary
|
||||||
|
nmary1 iny
|
||||||
|
lda (lowtr),y
|
||||||
|
clc
|
||||||
|
adc lowtr
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (lowtr),y
|
||||||
|
adc lowtr+1
|
||||||
|
bcc lopfda
|
||||||
|
bserr ldx #errbs
|
||||||
|
.byt $2c
|
||||||
|
fcerr ldx #errfc
|
||||||
|
errgo3 jmp error
|
||||||
|
gotary ldx #errdd
|
||||||
|
lda dimflg
|
||||||
|
bne errgo3
|
||||||
|
jsr fmaptr
|
||||||
|
lda count
|
||||||
|
ldy #4
|
||||||
|
cmp (lowtr),y
|
||||||
|
bne bserr
|
||||||
|
jmp getdef
|
||||||
|
notfdd jsr fmaptr
|
||||||
|
jsr reason
|
||||||
|
ldy #0
|
||||||
|
sty curtol+1
|
||||||
|
ldx #5
|
||||||
|
lda varnam
|
||||||
|
sta (lowtr),y
|
||||||
|
bpl notflt
|
||||||
|
dex
|
||||||
|
notflt iny
|
||||||
|
lda varnam+1
|
||||||
|
sta (lowtr),y
|
||||||
|
bpl stomlt
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
stomlt stx curtol
|
||||||
|
lda count
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
sta (lowtr),y
|
||||||
|
loppta ldx #11
|
||||||
|
lda #0
|
||||||
|
bit dimflg
|
||||||
|
bvc notdim
|
||||||
|
pla
|
||||||
|
clc
|
||||||
|
adc #1
|
||||||
|
tax
|
||||||
|
pla
|
||||||
|
adc #0
|
||||||
|
notdim iny
|
||||||
|
sta (lowtr),y
|
||||||
|
iny
|
||||||
|
txa
|
||||||
|
sta (lowtr),y
|
||||||
|
jsr umult
|
||||||
|
stx curtol
|
||||||
|
sta curtol+1
|
||||||
|
ldy index
|
||||||
|
dec count
|
||||||
|
bne loppta
|
||||||
|
adc arypnt+1
|
||||||
|
bcs omerr1
|
||||||
|
sta arypnt+1
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
adc arypnt
|
||||||
|
bcc grease
|
||||||
|
iny
|
||||||
|
beq omerr1
|
||||||
|
grease jsr reason
|
||||||
|
sta strend
|
||||||
|
sty strend+1
|
||||||
|
lda #0
|
||||||
|
inc curtol+1
|
||||||
|
|
||||||
+152
@@ -0,0 +1,152 @@
|
|||||||
|
ldy curtol
|
||||||
|
beq deccur
|
||||||
|
zerita dey
|
||||||
|
sta (arypnt),y
|
||||||
|
bne zerita
|
||||||
|
deccur dec arypnt+1
|
||||||
|
dec curtol+1
|
||||||
|
bne zerita
|
||||||
|
inc arypnt+1
|
||||||
|
sec
|
||||||
|
lda strend
|
||||||
|
sbc lowtr
|
||||||
|
ldy #2
|
||||||
|
sta (lowtr),y
|
||||||
|
lda strend+1
|
||||||
|
iny
|
||||||
|
sbc lowtr+1
|
||||||
|
sta (lowtr),y
|
||||||
|
lda dimflg
|
||||||
|
bne dimrts
|
||||||
|
iny
|
||||||
|
getdef lda (lowtr),y
|
||||||
|
sta count
|
||||||
|
lda #0
|
||||||
|
sta curtol
|
||||||
|
inlpnm sta curtol+1
|
||||||
|
iny
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
sta indice
|
||||||
|
pla
|
||||||
|
sta indice+1
|
||||||
|
cmp (lowtr),y
|
||||||
|
bcc inlpn2
|
||||||
|
bne bserr7
|
||||||
|
iny
|
||||||
|
txa
|
||||||
|
cmp (lowtr),y
|
||||||
|
bcc inlpn1
|
||||||
|
bserr7 jmp bserr
|
||||||
|
omerr1 jmp omerr
|
||||||
|
inlpn2 iny
|
||||||
|
inlpn1 lda curtol+1
|
||||||
|
ora curtol
|
||||||
|
clc
|
||||||
|
beq addind
|
||||||
|
jsr umult
|
||||||
|
txa
|
||||||
|
adc indice
|
||||||
|
tax
|
||||||
|
tya
|
||||||
|
ldy index1
|
||||||
|
addind adc indice+1
|
||||||
|
stx curtol
|
||||||
|
dec count
|
||||||
|
bne inlpnm
|
||||||
|
sta curtol+1
|
||||||
|
ldx #5
|
||||||
|
lda varnam
|
||||||
|
bpl notfl1
|
||||||
|
dex
|
||||||
|
notfl1 lda varnam+1
|
||||||
|
bpl stoml1
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
stoml1 stx addend
|
||||||
|
lda #0
|
||||||
|
jsr umultd
|
||||||
|
txa
|
||||||
|
adc arypnt
|
||||||
|
sta varpnt
|
||||||
|
tya
|
||||||
|
adc arypnt+1
|
||||||
|
sta varpnt+1
|
||||||
|
tay
|
||||||
|
lda varpnt
|
||||||
|
dimrts rts
|
||||||
|
umult sty index
|
||||||
|
lda (lowtr),y
|
||||||
|
sta addend
|
||||||
|
dey
|
||||||
|
lda (lowtr),y
|
||||||
|
umultd sta addend+1
|
||||||
|
lda #16
|
||||||
|
sta deccnt
|
||||||
|
ldx #0
|
||||||
|
ldy #0
|
||||||
|
umultc txa
|
||||||
|
asl a
|
||||||
|
tax
|
||||||
|
tya
|
||||||
|
rol a
|
||||||
|
tay
|
||||||
|
bcs omerr1
|
||||||
|
asl curtol
|
||||||
|
rol curtol+1
|
||||||
|
bcc umlcnt
|
||||||
|
clc
|
||||||
|
txa
|
||||||
|
adc addend
|
||||||
|
tax
|
||||||
|
tya
|
||||||
|
adc addend+1
|
||||||
|
tay
|
||||||
|
bcs omerr1
|
||||||
|
umlcnt dec deccnt
|
||||||
|
bne umultc
|
||||||
|
umlrts rts
|
||||||
|
fre lda valtyp
|
||||||
|
beq nofref
|
||||||
|
jsr frefac
|
||||||
|
nofref jsr garba2
|
||||||
|
sec
|
||||||
|
lda fretop
|
||||||
|
sbc strend
|
||||||
|
tay
|
||||||
|
lda fretop+1
|
||||||
|
sbc strend+1
|
||||||
|
givayf ldx #0
|
||||||
|
stx valtyp
|
||||||
|
sta facho
|
||||||
|
sty facho+1
|
||||||
|
ldx #144
|
||||||
|
jmp floats
|
||||||
|
pos sec
|
||||||
|
jsr plot ;get tab pos in .y
|
||||||
|
sngflt lda #0
|
||||||
|
beq givayf
|
||||||
|
errdir ldx curlin+1
|
||||||
|
inx
|
||||||
|
bne dimrts
|
||||||
|
ldx #errid
|
||||||
|
.byt $2c
|
||||||
|
errguf ldx #erruf
|
||||||
|
jmp error
|
||||||
|
def jsr getfnm
|
||||||
|
jsr errdir
|
||||||
|
jsr chkopn
|
||||||
|
lda #128
|
||||||
|
sta subflg
|
||||||
|
jsr ptrget
|
||||||
|
jsr chknum
|
||||||
|
jsr chkcls
|
||||||
|
lda #$b2
|
||||||
|
jsr synchr
|
||||||
|
pha
|
||||||
|
lda varpnt+1
|
||||||
|
pha
|
||||||
|
lda varpnt
|
||||||
|
pha
|
||||||
|
lda txtptr+1
|
||||||
|
|
||||||
+207
@@ -0,0 +1,207 @@
|
|||||||
|
pha
|
||||||
|
lda txtptr
|
||||||
|
pha
|
||||||
|
jsr data
|
||||||
|
jmp deffin
|
||||||
|
getfnm lda #fntk
|
||||||
|
jsr synchr
|
||||||
|
ora #128
|
||||||
|
sta subflg
|
||||||
|
jsr ptrgt2
|
||||||
|
sta defpnt
|
||||||
|
sty defpnt+1
|
||||||
|
jmp chknum
|
||||||
|
fndoer jsr getfnm
|
||||||
|
lda defpnt+1
|
||||||
|
pha
|
||||||
|
lda defpnt
|
||||||
|
pha
|
||||||
|
jsr parchk
|
||||||
|
jsr chknum
|
||||||
|
pla
|
||||||
|
sta defpnt
|
||||||
|
pla
|
||||||
|
sta defpnt+1
|
||||||
|
ldy #2
|
||||||
|
lda (defpnt),y
|
||||||
|
sta varpnt
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (defpnt),y
|
||||||
|
beq errguf
|
||||||
|
sta varpnt+1
|
||||||
|
iny
|
||||||
|
defstf lda (varpnt),y
|
||||||
|
pha
|
||||||
|
dey
|
||||||
|
bpl defstf
|
||||||
|
ldy varpnt+1
|
||||||
|
jsr movmf
|
||||||
|
lda txtptr+1
|
||||||
|
pha
|
||||||
|
lda txtptr
|
||||||
|
pha
|
||||||
|
lda (defpnt),y
|
||||||
|
sta txtptr
|
||||||
|
iny
|
||||||
|
lda (defpnt),y
|
||||||
|
sta txtptr+1
|
||||||
|
lda varpnt+1
|
||||||
|
pha
|
||||||
|
lda varpnt
|
||||||
|
pha
|
||||||
|
jsr frmnum
|
||||||
|
pla
|
||||||
|
sta defpnt
|
||||||
|
pla
|
||||||
|
sta defpnt+1
|
||||||
|
jsr chrgot
|
||||||
|
beq *+5
|
||||||
|
jmp snerr
|
||||||
|
pla
|
||||||
|
sta txtptr
|
||||||
|
pla
|
||||||
|
sta txtptr+1
|
||||||
|
deffin ldy #0
|
||||||
|
pla
|
||||||
|
sta (defpnt),y
|
||||||
|
pla
|
||||||
|
iny
|
||||||
|
sta (defpnt),y
|
||||||
|
pla
|
||||||
|
iny
|
||||||
|
sta (defpnt),y
|
||||||
|
pla
|
||||||
|
iny
|
||||||
|
sta (defpnt),y
|
||||||
|
pla
|
||||||
|
iny
|
||||||
|
sta (defpnt),y
|
||||||
|
rts
|
||||||
|
strd jsr chknum
|
||||||
|
ldy #0
|
||||||
|
jsr foutc
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
timstr lda #<lofbuf
|
||||||
|
ldy #>lofbuf
|
||||||
|
beq strlit
|
||||||
|
strini ldx facmo
|
||||||
|
ldy facmo+1
|
||||||
|
stx dscpnt
|
||||||
|
sty dscpnt+1
|
||||||
|
strspa jsr getspa
|
||||||
|
stx dsctmp+1
|
||||||
|
sty dsctmp+2
|
||||||
|
sta dsctmp
|
||||||
|
rts
|
||||||
|
strlit ldx #34
|
||||||
|
stx charac
|
||||||
|
stx endchr
|
||||||
|
strlt2 sta strng1
|
||||||
|
sty strng1+1
|
||||||
|
sta dsctmp+1
|
||||||
|
sty dsctmp+2
|
||||||
|
ldy #255
|
||||||
|
strget iny
|
||||||
|
lda (strng1),y
|
||||||
|
beq strfi1
|
||||||
|
cmp charac
|
||||||
|
beq strfin
|
||||||
|
cmp endchr
|
||||||
|
bne strget
|
||||||
|
strfin cmp #34
|
||||||
|
beq strfi2
|
||||||
|
strfi1 clc
|
||||||
|
strfi2 sty dsctmp
|
||||||
|
tya
|
||||||
|
adc strng1
|
||||||
|
sta strng2
|
||||||
|
ldx strng1+1
|
||||||
|
bcc strst2
|
||||||
|
inx
|
||||||
|
strst2 stx strng2+1
|
||||||
|
lda strng1+1
|
||||||
|
beq strcp
|
||||||
|
cmp #bufpag
|
||||||
|
bne putnew
|
||||||
|
strcp tya
|
||||||
|
jsr strini
|
||||||
|
ldx strng1
|
||||||
|
ldy strng1+1
|
||||||
|
jsr movstr
|
||||||
|
putnew ldx temppt
|
||||||
|
cpx #tempst+strsiz+strsiz+strsiz
|
||||||
|
bne putnw1
|
||||||
|
ldx #errst
|
||||||
|
errgo2 jmp error
|
||||||
|
putnw1 lda dsctmp
|
||||||
|
sta 0,x
|
||||||
|
lda dsctmp+1
|
||||||
|
sta 1,x
|
||||||
|
lda dsctmp+2
|
||||||
|
sta 2,x
|
||||||
|
ldy #0
|
||||||
|
stx facmo
|
||||||
|
sty facmo+1
|
||||||
|
sty facov
|
||||||
|
dey
|
||||||
|
sty valtyp
|
||||||
|
stx lastpt
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
stx temppt
|
||||||
|
rts
|
||||||
|
getspa lsr garbfl
|
||||||
|
tryag2 pha
|
||||||
|
eor #255
|
||||||
|
sec
|
||||||
|
adc fretop
|
||||||
|
ldy fretop+1
|
||||||
|
bcs tryag3
|
||||||
|
dey
|
||||||
|
tryag3 cpy strend+1
|
||||||
|
bcc garbag
|
||||||
|
bne strfre
|
||||||
|
cmp strend
|
||||||
|
bcc garbag
|
||||||
|
strfre sta fretop
|
||||||
|
sty fretop+1
|
||||||
|
sta frespc
|
||||||
|
sty frespc+1
|
||||||
|
tax
|
||||||
|
pla
|
||||||
|
rts
|
||||||
|
garbag ldx #errom
|
||||||
|
lda garbfl
|
||||||
|
bmi errgo2
|
||||||
|
jsr garba2
|
||||||
|
lda #128
|
||||||
|
sta garbfl
|
||||||
|
pla
|
||||||
|
bne tryag2
|
||||||
|
garba2 ldx memsiz
|
||||||
|
lda memsiz+1
|
||||||
|
fndvar stx fretop
|
||||||
|
sta fretop+1
|
||||||
|
ldy #0
|
||||||
|
sty grbpnt+1
|
||||||
|
sty grbpnt
|
||||||
|
lda strend
|
||||||
|
ldx strend+1
|
||||||
|
sta grbtop
|
||||||
|
stx grbtop+1
|
||||||
|
lda #<tempst
|
||||||
|
ldx #>tempst
|
||||||
|
sta index1
|
||||||
|
stx index1+1
|
||||||
|
tvar cmp temppt
|
||||||
|
beq svars
|
||||||
|
jsr dvar
|
||||||
|
beq tvar
|
||||||
|
svars lda #6+addprc
|
||||||
|
sta four6
|
||||||
|
lda vartab
|
||||||
|
ldx vartab+1
|
||||||
|
|
||||||
+157
@@ -0,0 +1,157 @@
|
|||||||
|
sta index1
|
||||||
|
stx index1+1
|
||||||
|
svar cpx arytab+1
|
||||||
|
bne svargo
|
||||||
|
cmp arytab
|
||||||
|
beq aryvar
|
||||||
|
svargo jsr dvars
|
||||||
|
beq svar
|
||||||
|
aryvar sta arypnt
|
||||||
|
stx arypnt+1
|
||||||
|
lda #strsiz
|
||||||
|
sta four6
|
||||||
|
aryva2 lda arypnt
|
||||||
|
ldx arypnt+1
|
||||||
|
aryva3 cpx strend+1
|
||||||
|
bne aryvgo
|
||||||
|
cmp strend
|
||||||
|
bne *+5
|
||||||
|
jmp grbpas
|
||||||
|
aryvgo sta index1
|
||||||
|
stx index1+1
|
||||||
|
ldy #1-addprc
|
||||||
|
lda (index1),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
php
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
adc arypnt
|
||||||
|
sta arypnt
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
adc arypnt+1
|
||||||
|
sta arypnt+1
|
||||||
|
plp
|
||||||
|
bpl aryva2
|
||||||
|
txa
|
||||||
|
bmi aryva2
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
ldy #0
|
||||||
|
asl a
|
||||||
|
adc #5
|
||||||
|
adc index1
|
||||||
|
sta index1
|
||||||
|
bcc aryget
|
||||||
|
inc index1+1
|
||||||
|
aryget ldx index1+1
|
||||||
|
arystr cpx arypnt+1
|
||||||
|
bne gogo
|
||||||
|
cmp arypnt
|
||||||
|
beq aryva3
|
||||||
|
gogo jsr dvar
|
||||||
|
beq arystr
|
||||||
|
dvars lda (index1),y
|
||||||
|
bmi dvarts
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
bpl dvarts
|
||||||
|
iny
|
||||||
|
dvar lda (index1),y
|
||||||
|
beq dvarts
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
cmp fretop+1
|
||||||
|
bcc dvar2
|
||||||
|
bne dvarts
|
||||||
|
cpx fretop
|
||||||
|
bcs dvarts
|
||||||
|
dvar2 cmp grbtop+1
|
||||||
|
bcc dvarts
|
||||||
|
bne dvar3
|
||||||
|
cpx grbtop
|
||||||
|
bcc dvarts
|
||||||
|
dvar3 stx grbtop
|
||||||
|
sta grbtop+1
|
||||||
|
lda index1
|
||||||
|
ldx index1+1
|
||||||
|
sta grbpnt
|
||||||
|
stx grbpnt+1
|
||||||
|
lda four6
|
||||||
|
sta size
|
||||||
|
dvarts lda four6
|
||||||
|
clc
|
||||||
|
adc index1
|
||||||
|
sta index1
|
||||||
|
bcc grbrts
|
||||||
|
inc index1+1
|
||||||
|
grbrts ldx index1+1
|
||||||
|
ldy #0
|
||||||
|
rts
|
||||||
|
grbpas lda grbpnt+1
|
||||||
|
ora grbpnt
|
||||||
|
beq grbrts
|
||||||
|
lda size
|
||||||
|
and #4
|
||||||
|
lsr a
|
||||||
|
tay
|
||||||
|
sta size
|
||||||
|
lda (grbpnt),y
|
||||||
|
adc lowtr
|
||||||
|
sta hightr
|
||||||
|
lda lowtr+1
|
||||||
|
adc #0
|
||||||
|
sta hightr+1
|
||||||
|
lda fretop
|
||||||
|
ldx fretop+1
|
||||||
|
sta highds
|
||||||
|
stx highds+1
|
||||||
|
jsr bltuc
|
||||||
|
ldy size
|
||||||
|
iny
|
||||||
|
lda highds
|
||||||
|
sta (grbpnt),y
|
||||||
|
tax
|
||||||
|
inc highds+1
|
||||||
|
lda highds+1
|
||||||
|
iny
|
||||||
|
sta (grbpnt),y
|
||||||
|
jmp fndvar
|
||||||
|
cat lda faclo
|
||||||
|
pha
|
||||||
|
lda facmo
|
||||||
|
pha
|
||||||
|
jsr eval
|
||||||
|
jsr chkstr
|
||||||
|
pla
|
||||||
|
sta strng1
|
||||||
|
pla
|
||||||
|
sta strng1+1
|
||||||
|
ldy #0
|
||||||
|
lda (strng1),y
|
||||||
|
clc
|
||||||
|
adc (facmo),y
|
||||||
|
bcc sizeok
|
||||||
|
ldx #errls
|
||||||
|
jmp error
|
||||||
|
sizeok jsr strini
|
||||||
|
jsr movins
|
||||||
|
lda dscpnt
|
||||||
|
ldy dscpnt+1
|
||||||
|
jsr fretmp
|
||||||
|
jsr movdo
|
||||||
|
lda strng1
|
||||||
|
ldy strng1+1
|
||||||
|
jsr fretmp
|
||||||
|
jsr putnew
|
||||||
|
jmp tstop
|
||||||
|
movins ldy #0
|
||||||
|
lda (strng1),y
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
|
||||||
+163
@@ -0,0 +1,163 @@
|
|||||||
|
lda (strng1),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (strng1),y
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
movstr stx index
|
||||||
|
sty index+1
|
||||||
|
movdo tay
|
||||||
|
beq mvdone
|
||||||
|
pha
|
||||||
|
movlp dey
|
||||||
|
lda (index),y
|
||||||
|
sta (frespc),y
|
||||||
|
tya
|
||||||
|
bne movlp
|
||||||
|
pla
|
||||||
|
mvdone clc
|
||||||
|
adc frespc
|
||||||
|
sta frespc
|
||||||
|
bcc mvstrt
|
||||||
|
inc frespc+1
|
||||||
|
mvstrt rts
|
||||||
|
frestr jsr chkstr
|
||||||
|
frefac lda facmo
|
||||||
|
ldy facmo+1
|
||||||
|
fretmp sta index
|
||||||
|
sty index+1
|
||||||
|
jsr fretms
|
||||||
|
php
|
||||||
|
ldy #0
|
||||||
|
lda (index),y
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
lda (index),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (index),y
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
plp
|
||||||
|
bne fretrt
|
||||||
|
cpy fretop+1
|
||||||
|
bne fretrt
|
||||||
|
cpx fretop
|
||||||
|
bne fretrt
|
||||||
|
pha
|
||||||
|
clc
|
||||||
|
adc fretop
|
||||||
|
sta fretop
|
||||||
|
bcc frepla
|
||||||
|
inc fretop+1
|
||||||
|
frepla pla
|
||||||
|
fretrt stx index
|
||||||
|
sty index+1
|
||||||
|
rts
|
||||||
|
fretms cpy lastpt+1
|
||||||
|
bne frerts
|
||||||
|
cmp lastpt
|
||||||
|
bne frerts
|
||||||
|
sta temppt
|
||||||
|
sbc #strsiz
|
||||||
|
sta lastpt
|
||||||
|
ldy #0
|
||||||
|
frerts rts
|
||||||
|
chrd jsr conint
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
lda #1
|
||||||
|
jsr strspa
|
||||||
|
pla
|
||||||
|
ldy #0
|
||||||
|
sta (dsctmp+1),y
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
jmp putnew
|
||||||
|
leftd jsr pream
|
||||||
|
cmp (dscpnt),y
|
||||||
|
tya
|
||||||
|
rleft bcc rleft1
|
||||||
|
lda (dscpnt),y
|
||||||
|
tax
|
||||||
|
tya
|
||||||
|
rleft1 pha
|
||||||
|
rleft2 txa
|
||||||
|
rleft3 pha
|
||||||
|
jsr strspa
|
||||||
|
lda dscpnt
|
||||||
|
ldy dscpnt+1
|
||||||
|
jsr fretmp
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
clc
|
||||||
|
adc index
|
||||||
|
sta index
|
||||||
|
bcc pulmor
|
||||||
|
inc index+1
|
||||||
|
pulmor tya
|
||||||
|
jsr movdo
|
||||||
|
jmp putnew
|
||||||
|
rightd jsr pream
|
||||||
|
clc
|
||||||
|
sbc (dscpnt),y
|
||||||
|
eor #255
|
||||||
|
jmp rleft
|
||||||
|
midd lda #255
|
||||||
|
sta faclo
|
||||||
|
jsr chrgot
|
||||||
|
cmp #41
|
||||||
|
beq mid2
|
||||||
|
jsr chkcom
|
||||||
|
jsr getbyt
|
||||||
|
mid2 jsr pream
|
||||||
|
beq gofuc
|
||||||
|
dex
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
clc
|
||||||
|
ldx #0
|
||||||
|
sbc (dscpnt),y
|
||||||
|
bcs rleft2
|
||||||
|
eor #255
|
||||||
|
cmp faclo
|
||||||
|
bcc rleft3
|
||||||
|
lda faclo
|
||||||
|
bcs rleft3
|
||||||
|
pream jsr chkcls
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
sta jmper+1
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
pla
|
||||||
|
sta dscpnt
|
||||||
|
pla
|
||||||
|
sta dscpnt+1
|
||||||
|
lda jmper+1
|
||||||
|
pha
|
||||||
|
tya
|
||||||
|
pha
|
||||||
|
ldy #0
|
||||||
|
txa
|
||||||
|
rts
|
||||||
|
len jsr len1
|
||||||
|
jmp sngflt
|
||||||
|
len1 jsr frestr
|
||||||
|
ldx #0
|
||||||
|
stx valtyp
|
||||||
|
tay
|
||||||
|
rts
|
||||||
|
asc jsr len1
|
||||||
|
beq gofuc
|
||||||
|
ldy #0
|
||||||
|
lda (index1),y
|
||||||
|
tay
|
||||||
|
jmp sngflt
|
||||||
|
gofuc jmp fcerr
|
||||||
|
gtbytc jsr chrget
|
||||||
|
|
||||||
+160
@@ -0,0 +1,160 @@
|
|||||||
|
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
|
||||||
|
|
||||||
+124
@@ -0,0 +1,124 @@
|
|||||||
|
stx facmoh
|
||||||
|
ldx facmo+1
|
||||||
|
stx facmo
|
||||||
|
ldx facov
|
||||||
|
stx faclo
|
||||||
|
sty facov
|
||||||
|
adc #$08
|
||||||
|
addpr2 =addprc+addprc
|
||||||
|
addpr4 =addpr2+addpr2
|
||||||
|
addpr8 =addpr4+addpr4
|
||||||
|
cmp #$18+addpr8
|
||||||
|
bne norm3
|
||||||
|
zerofc lda #0
|
||||||
|
zerof1 sta facexp
|
||||||
|
zeroml sta facsgn
|
||||||
|
rts
|
||||||
|
fadd2 adc oldov
|
||||||
|
sta facov
|
||||||
|
lda faclo
|
||||||
|
adc arglo
|
||||||
|
sta faclo
|
||||||
|
lda facmo
|
||||||
|
adc argmo
|
||||||
|
sta facmo
|
||||||
|
lda facmoh
|
||||||
|
adc argmoh
|
||||||
|
sta facmoh
|
||||||
|
lda facho
|
||||||
|
adc argho
|
||||||
|
sta facho
|
||||||
|
jmp squeez
|
||||||
|
norm2 adc #1
|
||||||
|
asl facov
|
||||||
|
rol faclo
|
||||||
|
rol facmo
|
||||||
|
rol facmoh
|
||||||
|
rol facho
|
||||||
|
norm1 bpl norm2
|
||||||
|
sec
|
||||||
|
sbc facexp
|
||||||
|
bcs zerofc
|
||||||
|
eor #$ff
|
||||||
|
adc #1
|
||||||
|
sta facexp
|
||||||
|
squeez bcc rndrts
|
||||||
|
rndshf inc facexp
|
||||||
|
beq overr
|
||||||
|
ror facho
|
||||||
|
ror facmoh
|
||||||
|
ror facmo
|
||||||
|
ror faclo
|
||||||
|
ror facov
|
||||||
|
rndrts rts
|
||||||
|
negfac lda facsgn
|
||||||
|
eor #$ff
|
||||||
|
sta facsgn
|
||||||
|
negfch lda facho
|
||||||
|
eor #$ff
|
||||||
|
sta facho
|
||||||
|
lda facmoh
|
||||||
|
eor #$ff
|
||||||
|
sta facmoh
|
||||||
|
lda facmo
|
||||||
|
eor #$ff
|
||||||
|
sta facmo
|
||||||
|
lda faclo
|
||||||
|
eor #$ff
|
||||||
|
sta faclo
|
||||||
|
lda facov
|
||||||
|
eor #$ff
|
||||||
|
sta facov
|
||||||
|
inc facov
|
||||||
|
bne incfrt
|
||||||
|
incfac inc faclo
|
||||||
|
bne incfrt
|
||||||
|
inc facmo
|
||||||
|
bne incfrt
|
||||||
|
inc facmoh
|
||||||
|
bne incfrt
|
||||||
|
inc facho
|
||||||
|
incfrt rts
|
||||||
|
overr ldx #errov
|
||||||
|
jmp error
|
||||||
|
mulshf ldx #resho-1
|
||||||
|
shftr2 ldy 3+addprc,x
|
||||||
|
sty facov
|
||||||
|
ldy 3,x
|
||||||
|
sty 4,x
|
||||||
|
ldy 2,x
|
||||||
|
sty 3,x
|
||||||
|
ldy 1,x
|
||||||
|
sty 2,x
|
||||||
|
ldy bits
|
||||||
|
sty 1,x
|
||||||
|
shiftr adc #$08
|
||||||
|
bmi shftr2
|
||||||
|
beq shftr2
|
||||||
|
sbc #$08
|
||||||
|
tay
|
||||||
|
lda facov
|
||||||
|
bcs shftrt
|
||||||
|
shftr3 asl 1,x
|
||||||
|
bcc shftr4
|
||||||
|
inc 1,x
|
||||||
|
shftr4 ror 1,x
|
||||||
|
ror 1,x
|
||||||
|
rolshf ror 2,x
|
||||||
|
ror 3,x
|
||||||
|
ror 4,x
|
||||||
|
ror a
|
||||||
|
iny
|
||||||
|
bne shftr3
|
||||||
|
shftrt clc
|
||||||
|
rts
|
||||||
|
fone .byt $81,$00,$00,$00,$00
|
||||||
|
logcn2 .byt $03,$7f,$5e,$56
|
||||||
|
.byt $cb,$79,$80,$13
|
||||||
|
.byt $9b,$0b,$64,$80
|
||||||
|
.byt $76,$38,$93,$16
|
||||||
|
.byt $82,$38,$aa,$3b,$20
|
||||||
|
sqr05 .byt $80,$35,$04,$f3,$34
|
||||||
|
sqr20 .byt $81,$35,$04,$f3,$34
|
||||||
|
neghlf .byt $80,$80,$00,$00,$00
|
||||||
|
log2 .byt $80,$31,$72,$17,$f8
|
||||||
+212
@@ -0,0 +1,212 @@
|
|||||||
|
log jsr sign
|
||||||
|
beq logerr
|
||||||
|
bpl log1
|
||||||
|
logerr jmp fcerr
|
||||||
|
log1 lda facexp
|
||||||
|
sbc #$7f
|
||||||
|
pha
|
||||||
|
lda #$80
|
||||||
|
sta facexp
|
||||||
|
lda #<sqr05
|
||||||
|
ldy #>sqr05
|
||||||
|
jsr fadd
|
||||||
|
lda #<sqr20
|
||||||
|
ldy #>sqr20
|
||||||
|
jsr fdiv
|
||||||
|
lda #<fone
|
||||||
|
ldy #>fone
|
||||||
|
jsr fsub
|
||||||
|
lda #<logcn2
|
||||||
|
ldy #>logcn2
|
||||||
|
jsr polyx
|
||||||
|
lda #<neghlf
|
||||||
|
ldy #>neghlf
|
||||||
|
jsr fadd
|
||||||
|
pla
|
||||||
|
jsr finlog
|
||||||
|
lda #<log2
|
||||||
|
ldy #>log2
|
||||||
|
fmult jsr conupk
|
||||||
|
fmultt bne *+5
|
||||||
|
jmp multrt
|
||||||
|
jsr muldiv
|
||||||
|
lda #0
|
||||||
|
sta resho
|
||||||
|
sta resmoh
|
||||||
|
sta resmo
|
||||||
|
sta reslo
|
||||||
|
lda facov
|
||||||
|
jsr mltply
|
||||||
|
lda faclo
|
||||||
|
jsr mltply
|
||||||
|
lda facmo
|
||||||
|
jsr mltply
|
||||||
|
lda facmoh
|
||||||
|
jsr mltply
|
||||||
|
lda facho
|
||||||
|
jsr mltpl1
|
||||||
|
jmp movfr
|
||||||
|
mltply bne *+5
|
||||||
|
jmp mulshf
|
||||||
|
mltpl1 lsr a
|
||||||
|
ora #$80
|
||||||
|
mltpl2 tay
|
||||||
|
bcc mltpl3
|
||||||
|
clc
|
||||||
|
lda reslo
|
||||||
|
adc arglo
|
||||||
|
sta reslo
|
||||||
|
lda resmo
|
||||||
|
adc argmo
|
||||||
|
sta resmo
|
||||||
|
lda resmoh
|
||||||
|
adc argmoh
|
||||||
|
sta resmoh
|
||||||
|
lda resho
|
||||||
|
adc argho
|
||||||
|
sta resho
|
||||||
|
mltpl3 ror resho
|
||||||
|
ror resmoh
|
||||||
|
ror resmo
|
||||||
|
ror reslo
|
||||||
|
ror facov
|
||||||
|
tya
|
||||||
|
lsr a
|
||||||
|
bne mltpl2
|
||||||
|
multrt rts
|
||||||
|
conupk sta index1
|
||||||
|
sty index1+1
|
||||||
|
ldy #3+addprc
|
||||||
|
lda (index1),y
|
||||||
|
sta arglo
|
||||||
|
dey
|
||||||
|
lda (index),y
|
||||||
|
sta argmo
|
||||||
|
dey
|
||||||
|
lda (index1),y
|
||||||
|
sta argmoh
|
||||||
|
dey
|
||||||
|
lda (index1),y
|
||||||
|
sta argsgn
|
||||||
|
eor facsgn
|
||||||
|
sta arisgn
|
||||||
|
lda argsgn
|
||||||
|
ora #$80
|
||||||
|
sta argho
|
||||||
|
dey
|
||||||
|
lda (index1),y
|
||||||
|
sta argexp
|
||||||
|
lda facexp
|
||||||
|
rts
|
||||||
|
muldiv lda argexp
|
||||||
|
mldexp beq zeremv
|
||||||
|
clc
|
||||||
|
adc facexp
|
||||||
|
bcc tryoff
|
||||||
|
bmi goover
|
||||||
|
clc
|
||||||
|
.byt $2c
|
||||||
|
tryoff bpl zeremv
|
||||||
|
adc #$80
|
||||||
|
sta facexp
|
||||||
|
bne *+5
|
||||||
|
jmp zeroml
|
||||||
|
lda arisgn
|
||||||
|
sta facsgn
|
||||||
|
rts
|
||||||
|
mldvex lda facsgn
|
||||||
|
eor #$ff
|
||||||
|
bmi goover
|
||||||
|
zeremv pla
|
||||||
|
pla
|
||||||
|
jmp zerofc
|
||||||
|
goover jmp overr
|
||||||
|
mul10 jsr movaf
|
||||||
|
tax
|
||||||
|
beq mul10r
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
bcs goover
|
||||||
|
finml6 ldx #0
|
||||||
|
stx arisgn
|
||||||
|
jsr faddc
|
||||||
|
inc facexp
|
||||||
|
beq goover
|
||||||
|
mul10r rts
|
||||||
|
tenc .byt $84,$20,0,0,0
|
||||||
|
div10 jsr movaf
|
||||||
|
lda #<tenc
|
||||||
|
ldy #>tenc
|
||||||
|
ldx #0
|
||||||
|
fdivf stx arisgn
|
||||||
|
jsr movfm
|
||||||
|
jmp fdivt
|
||||||
|
fdiv jsr conupk
|
||||||
|
fdivt beq dv0err
|
||||||
|
jsr round
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
sbc facexp
|
||||||
|
sta facexp
|
||||||
|
jsr muldiv
|
||||||
|
inc facexp
|
||||||
|
beq goover
|
||||||
|
ldx #253-addprc
|
||||||
|
lda #1
|
||||||
|
divide ldy argho
|
||||||
|
cpy facho
|
||||||
|
bne savquo
|
||||||
|
ldy argmoh
|
||||||
|
cpy facmoh
|
||||||
|
bne savquo
|
||||||
|
ldy argmo
|
||||||
|
cpy facmo
|
||||||
|
bne savquo
|
||||||
|
ldy arglo
|
||||||
|
cpy faclo
|
||||||
|
savquo php
|
||||||
|
rol a
|
||||||
|
bcc qshft
|
||||||
|
inx
|
||||||
|
sta reslo,x
|
||||||
|
beq ld100
|
||||||
|
bpl divnrm
|
||||||
|
lda #1
|
||||||
|
qshft plp
|
||||||
|
bcs divsub
|
||||||
|
shfarg asl arglo
|
||||||
|
rol argmo
|
||||||
|
rol argmoh
|
||||||
|
rol argho
|
||||||
|
bcs savquo
|
||||||
|
bmi divide
|
||||||
|
bpl savquo
|
||||||
|
divsub tay
|
||||||
|
lda arglo
|
||||||
|
sbc faclo
|
||||||
|
sta arglo
|
||||||
|
lda argmo
|
||||||
|
sbc facmo
|
||||||
|
sta argmo
|
||||||
|
lda argmoh
|
||||||
|
sbc facmoh
|
||||||
|
sta argmoh
|
||||||
|
lda argho
|
||||||
|
sbc facho
|
||||||
|
sta argho
|
||||||
|
tya
|
||||||
|
jmp shfarg
|
||||||
|
ld100 lda #$40
|
||||||
|
bne qshft
|
||||||
|
divnrm asl a
|
||||||
|
asl a
|
||||||
|
asl a
|
||||||
|
asl a
|
||||||
|
asl a
|
||||||
|
asl a
|
||||||
|
sta facov
|
||||||
|
plp
|
||||||
|
jmp movfr
|
||||||
|
dv0err ldx #errdvo
|
||||||
|
jmp error
|
||||||
|
|
||||||
+159
@@ -0,0 +1,159 @@
|
|||||||
|
bufofs =$200
|
||||||
|
crunch jmp (icrnch)
|
||||||
|
ncrnch ldx txtptr
|
||||||
|
ldy #4
|
||||||
|
sty dores
|
||||||
|
kloop lda bufofs,x
|
||||||
|
bpl cmpspc
|
||||||
|
cmp #pi
|
||||||
|
beq stuffh
|
||||||
|
inx
|
||||||
|
bne kloop
|
||||||
|
cmpspc cmp #' '
|
||||||
|
beq stuffh
|
||||||
|
sta endchr
|
||||||
|
cmp #34
|
||||||
|
beq strng
|
||||||
|
bit dores
|
||||||
|
bvs stuffh
|
||||||
|
cmp #'?'
|
||||||
|
bne kloop1
|
||||||
|
lda #printk
|
||||||
|
bne stuffh
|
||||||
|
kloop1 cmp #'0'
|
||||||
|
bcc mustcr
|
||||||
|
cmp #60
|
||||||
|
bcc stuffh
|
||||||
|
mustcr sty bufptr
|
||||||
|
ldy #0
|
||||||
|
sty count
|
||||||
|
dey
|
||||||
|
stx txtptr
|
||||||
|
dex
|
||||||
|
reser iny
|
||||||
|
inx
|
||||||
|
rescon lda bufofs,x
|
||||||
|
sec
|
||||||
|
sbc reslst,y
|
||||||
|
beq reser
|
||||||
|
cmp #128
|
||||||
|
bne nthis
|
||||||
|
ora count
|
||||||
|
getbpt ldy bufptr
|
||||||
|
stuffh inx
|
||||||
|
iny
|
||||||
|
sta buf-5,y
|
||||||
|
lda buf-5,y
|
||||||
|
beq crdone
|
||||||
|
sec
|
||||||
|
sbc #':'
|
||||||
|
beq colis
|
||||||
|
cmp #datatk-$3a
|
||||||
|
bne nodatt
|
||||||
|
colis sta dores
|
||||||
|
nodatt sec
|
||||||
|
sbc #remtk-$3a
|
||||||
|
bne kloop
|
||||||
|
sta endchr
|
||||||
|
str1 lda bufofs,x
|
||||||
|
beq stuffh
|
||||||
|
cmp endchr
|
||||||
|
beq stuffh
|
||||||
|
strng iny
|
||||||
|
sta buf-5,y
|
||||||
|
inx
|
||||||
|
bne str1
|
||||||
|
nthis ldx txtptr
|
||||||
|
inc count
|
||||||
|
nthis1 iny
|
||||||
|
lda reslst-1,y
|
||||||
|
bpl nthis1
|
||||||
|
lda reslst,y
|
||||||
|
bne rescon
|
||||||
|
lda bufofs,x
|
||||||
|
bpl getbpt
|
||||||
|
crdone sta buf-3,y
|
||||||
|
dec txtptr+1
|
||||||
|
zz1 =buf-1
|
||||||
|
lda #<zz1
|
||||||
|
sta txtptr
|
||||||
|
rts
|
||||||
|
fndlin lda txttab
|
||||||
|
ldx txttab+1
|
||||||
|
fndlnc ldy #1
|
||||||
|
sta lowtr
|
||||||
|
stx lowtr+1
|
||||||
|
lda (lowtr),y
|
||||||
|
beq flinrt
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
lda linnum+1
|
||||||
|
cmp (lowtr),y
|
||||||
|
bcc flnrts
|
||||||
|
beq fndlo1
|
||||||
|
dey
|
||||||
|
bne affrts
|
||||||
|
fndlo1 lda linnum
|
||||||
|
dey
|
||||||
|
cmp (lowtr),y
|
||||||
|
bcc flnrts
|
||||||
|
beq flnrts
|
||||||
|
affrts dey
|
||||||
|
lda (lowtr),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
lda (lowtr),y
|
||||||
|
bcs fndlnc
|
||||||
|
flinrt clc
|
||||||
|
flnrts rts
|
||||||
|
scrath bne flnrts
|
||||||
|
scrtch lda #0
|
||||||
|
tay
|
||||||
|
sta (txttab),y
|
||||||
|
iny
|
||||||
|
sta (txttab),y
|
||||||
|
lda txttab
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
sta vartab
|
||||||
|
lda txttab+1
|
||||||
|
adc #0
|
||||||
|
sta vartab+1
|
||||||
|
runc jsr stxtpt
|
||||||
|
lda #0
|
||||||
|
clear bne stkrts
|
||||||
|
clearc jsr ccall ;moved for v2 orig for rs-232
|
||||||
|
cleart lda memsiz ;entry for open & close memsiz changes
|
||||||
|
ldy memsiz+1
|
||||||
|
sta fretop
|
||||||
|
sty fretop+1
|
||||||
|
lda vartab
|
||||||
|
ldy vartab+1
|
||||||
|
sta arytab
|
||||||
|
sty arytab+1
|
||||||
|
sta strend
|
||||||
|
sty strend+1
|
||||||
|
fload jsr restor
|
||||||
|
stkini ldx #tempst
|
||||||
|
stx temppt
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
ldx #stkend-257
|
||||||
|
txs
|
||||||
|
pha
|
||||||
|
tya
|
||||||
|
pha
|
||||||
|
lda #0
|
||||||
|
sta oldtxt+1
|
||||||
|
sta subflg
|
||||||
|
stkrts rts
|
||||||
|
stxtpt clc
|
||||||
|
lda txttab
|
||||||
|
adc #255
|
||||||
|
sta txtptr
|
||||||
|
lda txttab+1
|
||||||
|
adc #255
|
||||||
|
sta txtptr+1
|
||||||
|
rts
|
||||||
|
|
||||||
+143
@@ -0,0 +1,143 @@
|
|||||||
|
movfr lda resho
|
||||||
|
sta facho
|
||||||
|
lda resmoh
|
||||||
|
sta facmoh
|
||||||
|
lda resmo
|
||||||
|
sta facmo
|
||||||
|
lda reslo
|
||||||
|
sta faclo
|
||||||
|
jmp normal
|
||||||
|
movfm sta index1
|
||||||
|
sty index1+1
|
||||||
|
ldy #3+addprc
|
||||||
|
lda (index1),y
|
||||||
|
sta faclo
|
||||||
|
dey
|
||||||
|
lda (index1),y
|
||||||
|
sta facmo
|
||||||
|
dey
|
||||||
|
lda (index1),y
|
||||||
|
sta facmoh
|
||||||
|
dey
|
||||||
|
lda (index1),y
|
||||||
|
sta facsgn
|
||||||
|
ora #$80
|
||||||
|
sta facho
|
||||||
|
dey
|
||||||
|
lda (index1),y
|
||||||
|
sta facexp
|
||||||
|
sty facov
|
||||||
|
rts
|
||||||
|
mov2f ldx #tempf2
|
||||||
|
.byt $2c
|
||||||
|
mov1f ldx #tempf1
|
||||||
|
ldy #0
|
||||||
|
beq movmf
|
||||||
|
movvf ldx forpnt
|
||||||
|
ldy forpnt+1
|
||||||
|
movmf jsr round
|
||||||
|
stx index1
|
||||||
|
sty index1+1
|
||||||
|
ldy #3+addprc
|
||||||
|
lda faclo
|
||||||
|
sta (index),y
|
||||||
|
dey
|
||||||
|
lda facmo
|
||||||
|
sta (index),y
|
||||||
|
dey
|
||||||
|
lda facmoh
|
||||||
|
sta (index),y
|
||||||
|
dey
|
||||||
|
lda facsgn
|
||||||
|
ora #$7f
|
||||||
|
and facho
|
||||||
|
sta (index),y
|
||||||
|
dey
|
||||||
|
lda facexp
|
||||||
|
sta (index),y
|
||||||
|
sty facov
|
||||||
|
rts
|
||||||
|
movfa lda argsgn
|
||||||
|
movfa1 sta facsgn
|
||||||
|
ldx #4+addprc
|
||||||
|
movfal lda argexp-1,x
|
||||||
|
sta facexp-1,x
|
||||||
|
dex
|
||||||
|
bne movfal
|
||||||
|
stx facov
|
||||||
|
rts
|
||||||
|
movaf jsr round
|
||||||
|
movef ldx #5+addprc
|
||||||
|
movafl lda facexp-1,x
|
||||||
|
sta argexp-1,x
|
||||||
|
dex
|
||||||
|
bne movafl
|
||||||
|
stx facov
|
||||||
|
movrts rts
|
||||||
|
round lda facexp
|
||||||
|
beq movrts
|
||||||
|
asl facov
|
||||||
|
bcc movrts
|
||||||
|
incrnd jsr incfac
|
||||||
|
bne movrts
|
||||||
|
jmp rndshf
|
||||||
|
sign lda facexp
|
||||||
|
beq signrt
|
||||||
|
fcsign lda facsgn
|
||||||
|
fcomps rol a
|
||||||
|
lda #$ff
|
||||||
|
bcs signrt
|
||||||
|
lda #1
|
||||||
|
signrt rts
|
||||||
|
sgn jsr sign
|
||||||
|
float sta facho
|
||||||
|
lda #0
|
||||||
|
sta facho+1
|
||||||
|
ldx #$88
|
||||||
|
floats lda facho
|
||||||
|
eor #$ff
|
||||||
|
rol a
|
||||||
|
floatc lda #0
|
||||||
|
sta faclo
|
||||||
|
sta facmo
|
||||||
|
floatb stx facexp
|
||||||
|
sta facov
|
||||||
|
sta facsgn
|
||||||
|
jmp fadflt
|
||||||
|
abs lsr facsgn
|
||||||
|
rts
|
||||||
|
fcomp sta index2
|
||||||
|
fcompn sty index2+1
|
||||||
|
ldy #0
|
||||||
|
lda (index2),y
|
||||||
|
iny
|
||||||
|
tax
|
||||||
|
beq sign
|
||||||
|
lda (index2),y
|
||||||
|
eor facsgn
|
||||||
|
bmi fcsign
|
||||||
|
cpx facexp
|
||||||
|
bne fcompc
|
||||||
|
lda (index2),y
|
||||||
|
ora #$80
|
||||||
|
cmp facho
|
||||||
|
bne fcompc
|
||||||
|
iny
|
||||||
|
lda (index2),y
|
||||||
|
cmp facmoh
|
||||||
|
bne fcompc
|
||||||
|
iny
|
||||||
|
lda (index2),y
|
||||||
|
cmp facmo
|
||||||
|
bne fcompc
|
||||||
|
iny
|
||||||
|
lda #$7f
|
||||||
|
cmp facov
|
||||||
|
lda (index2),y
|
||||||
|
sbc faclo
|
||||||
|
beq qintrt
|
||||||
|
fcompc lda facsgn
|
||||||
|
bcc fcompd
|
||||||
|
eor #$ff
|
||||||
|
fcompd jmp fcomps
|
||||||
|
|
||||||
+143
@@ -0,0 +1,143 @@
|
|||||||
|
qint lda facexp
|
||||||
|
beq clrfac
|
||||||
|
sec
|
||||||
|
sbc #addpr8+$98
|
||||||
|
bit facsgn
|
||||||
|
bpl qishft
|
||||||
|
tax
|
||||||
|
lda #$ff
|
||||||
|
sta bits
|
||||||
|
jsr negfch
|
||||||
|
txa
|
||||||
|
qishft ldx #fac
|
||||||
|
cmp #$f9
|
||||||
|
bpl qint1
|
||||||
|
jsr shiftr
|
||||||
|
sty bits
|
||||||
|
qintrt rts
|
||||||
|
qint1 tay
|
||||||
|
lda facsgn
|
||||||
|
and #$80
|
||||||
|
lsr facho
|
||||||
|
ora facho
|
||||||
|
sta facho
|
||||||
|
jsr rolshf
|
||||||
|
sty bits
|
||||||
|
rts
|
||||||
|
int lda facexp
|
||||||
|
cmp #addpr8+$98
|
||||||
|
bcs intrts
|
||||||
|
jsr qint
|
||||||
|
sty facov
|
||||||
|
lda facsgn
|
||||||
|
sty facsgn
|
||||||
|
eor #$80
|
||||||
|
rol a
|
||||||
|
lda #$98+8
|
||||||
|
sta facexp
|
||||||
|
lda faclo
|
||||||
|
sta integr
|
||||||
|
jmp fadflt
|
||||||
|
clrfac sta facho
|
||||||
|
sta facmoh
|
||||||
|
sta facmo
|
||||||
|
sta faclo
|
||||||
|
tay
|
||||||
|
intrts rts
|
||||||
|
fin ldy #$00
|
||||||
|
ldx #$09+addprc
|
||||||
|
finzlp sty deccnt,x
|
||||||
|
dex
|
||||||
|
bpl finzlp
|
||||||
|
bcc findgq
|
||||||
|
cmp #'-'
|
||||||
|
bne qplus
|
||||||
|
stx sgnflg
|
||||||
|
beq finc
|
||||||
|
qplus cmp #'+'
|
||||||
|
bne fin1
|
||||||
|
finc jsr chrget
|
||||||
|
findgq bcc findig
|
||||||
|
fin1 cmp #'.'
|
||||||
|
beq findp
|
||||||
|
cmp #'E'
|
||||||
|
bne fine
|
||||||
|
jsr chrget
|
||||||
|
bcc fnedg1
|
||||||
|
cmp #minutk
|
||||||
|
beq finec1
|
||||||
|
cmp #'-'
|
||||||
|
beq finec1
|
||||||
|
cmp #plustk
|
||||||
|
beq finec
|
||||||
|
cmp #'+'
|
||||||
|
beq finec
|
||||||
|
bne finec2
|
||||||
|
finec1 ror expsgn
|
||||||
|
finec jsr chrget
|
||||||
|
fnedg1 bcc finedg
|
||||||
|
finec2 bit expsgn
|
||||||
|
bpl fine
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
sbc tenexp
|
||||||
|
jmp fine1
|
||||||
|
findp ror dptflg
|
||||||
|
bit dptflg
|
||||||
|
bvc finc
|
||||||
|
fine lda tenexp
|
||||||
|
fine1 sec
|
||||||
|
sbc deccnt
|
||||||
|
sta tenexp
|
||||||
|
beq finqng
|
||||||
|
bpl finmul
|
||||||
|
findiv jsr div10
|
||||||
|
inc tenexp
|
||||||
|
bne findiv
|
||||||
|
beq finqng
|
||||||
|
finmul jsr mul10
|
||||||
|
dec tenexp
|
||||||
|
bne finmul
|
||||||
|
finqng lda sgnflg
|
||||||
|
bmi negxqs
|
||||||
|
rts
|
||||||
|
negxqs jmp negop
|
||||||
|
findig pha
|
||||||
|
bit dptflg
|
||||||
|
bpl findg1
|
||||||
|
inc deccnt
|
||||||
|
findg1 jsr mul10
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
sbc #'0'
|
||||||
|
jsr finlog
|
||||||
|
jmp finc
|
||||||
|
finlog pha
|
||||||
|
jsr movaf
|
||||||
|
pla
|
||||||
|
jsr float
|
||||||
|
lda argsgn
|
||||||
|
eor facsgn
|
||||||
|
sta arisgn
|
||||||
|
ldx facexp
|
||||||
|
jmp faddt
|
||||||
|
finedg lda tenexp
|
||||||
|
cmp #$0a
|
||||||
|
bcc mlex10
|
||||||
|
lda #$64
|
||||||
|
bit expsgn
|
||||||
|
bmi mlexmi
|
||||||
|
jmp overr
|
||||||
|
mlex10 asl a
|
||||||
|
asl a
|
||||||
|
clc
|
||||||
|
adc tenexp
|
||||||
|
asl a
|
||||||
|
clc
|
||||||
|
ldy #0
|
||||||
|
adc (txtptr),y
|
||||||
|
sec
|
||||||
|
sbc #'0'
|
||||||
|
mlexmi sta tenexp
|
||||||
|
jmp finec
|
||||||
|
|
||||||
+149
@@ -0,0 +1,149 @@
|
|||||||
|
n0999 .byt $9b,$3e,$bc,$1f,$fd
|
||||||
|
n9999 .byt $9e,$6e,$6b,$27,$fd
|
||||||
|
nmil .byt $9e,$6e,$6b,$28,$00
|
||||||
|
inprt lda #<intxt
|
||||||
|
ldy #>intxt
|
||||||
|
jsr strou2
|
||||||
|
lda curlin+1
|
||||||
|
ldx curlin
|
||||||
|
linprt sta facho
|
||||||
|
stx facho+1
|
||||||
|
ldx #$90
|
||||||
|
sec
|
||||||
|
jsr floatc
|
||||||
|
jsr foutc
|
||||||
|
strou2 jmp strout
|
||||||
|
fout ldy #1
|
||||||
|
foutc lda #' '
|
||||||
|
bit facsgn
|
||||||
|
bpl fout1
|
||||||
|
lda #'-'
|
||||||
|
fout1 sta fbuffr-1,y
|
||||||
|
sta facsgn
|
||||||
|
sty fbufpt
|
||||||
|
iny
|
||||||
|
lda #'0'
|
||||||
|
ldx facexp
|
||||||
|
bne *+5
|
||||||
|
jmp fout19
|
||||||
|
lda #0
|
||||||
|
cpx #$80
|
||||||
|
beq fout37
|
||||||
|
bcs fout7
|
||||||
|
fout37 lda #<nmil
|
||||||
|
ldy #>nmil
|
||||||
|
jsr fmult
|
||||||
|
lda #250-addpr2-addprc
|
||||||
|
fout7 sta deccnt
|
||||||
|
fout4 lda #<n9999
|
||||||
|
ldy #>n9999
|
||||||
|
jsr fcomp
|
||||||
|
beq bigges
|
||||||
|
bpl fout9
|
||||||
|
fout3 lda #<n0999
|
||||||
|
ldy #>n0999
|
||||||
|
jsr fcomp
|
||||||
|
beq fout38
|
||||||
|
bpl fout5
|
||||||
|
fout38 jsr mul10
|
||||||
|
dec deccnt
|
||||||
|
bne fout3
|
||||||
|
fout9 jsr div10
|
||||||
|
inc deccnt
|
||||||
|
bne fout4
|
||||||
|
fout5 jsr faddh
|
||||||
|
bigges jsr qint
|
||||||
|
ldx #1
|
||||||
|
lda deccnt
|
||||||
|
clc
|
||||||
|
adc #addpr2+addprc+7
|
||||||
|
bmi foutpi
|
||||||
|
cmp #addpr2+addprc+$08
|
||||||
|
bcs fout6
|
||||||
|
adc #$ff
|
||||||
|
tax
|
||||||
|
lda #2
|
||||||
|
foutpi sec
|
||||||
|
fout6 sbc #2
|
||||||
|
sta tenexp
|
||||||
|
stx deccnt
|
||||||
|
txa
|
||||||
|
beq fout39
|
||||||
|
bpl fout8
|
||||||
|
fout39 ldy fbufpt
|
||||||
|
lda #'.'
|
||||||
|
iny
|
||||||
|
sta fbuffr-1,y
|
||||||
|
txa
|
||||||
|
beq fout16
|
||||||
|
lda #'0'
|
||||||
|
iny
|
||||||
|
sta fbuffr-1,y
|
||||||
|
fout16 sty fbufpt
|
||||||
|
fout8 ldy #0
|
||||||
|
foutim ldx #$80
|
||||||
|
fout2 lda faclo
|
||||||
|
clc
|
||||||
|
adc foutbl+2+addprc,y
|
||||||
|
sta faclo
|
||||||
|
lda facmo
|
||||||
|
adc foutbl+1+addprc,y
|
||||||
|
sta facmo
|
||||||
|
lda facmoh
|
||||||
|
adc foutbl+1,y
|
||||||
|
sta facmoh
|
||||||
|
lda facho
|
||||||
|
adc foutbl,y
|
||||||
|
sta facho
|
||||||
|
inx
|
||||||
|
bcs fout41
|
||||||
|
bpl fout2
|
||||||
|
bmi fout40
|
||||||
|
fout41 bmi fout2
|
||||||
|
fout40 txa
|
||||||
|
bcc foutyp
|
||||||
|
eor #$ff
|
||||||
|
adc #$0a
|
||||||
|
foutyp adc #$2f
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
sty fdecpt
|
||||||
|
ldy fbufpt
|
||||||
|
iny
|
||||||
|
tax
|
||||||
|
and #$7f
|
||||||
|
sta fbuffr-1,y
|
||||||
|
dec deccnt
|
||||||
|
bne stxbuf
|
||||||
|
lda #'.'
|
||||||
|
iny
|
||||||
|
sta fbuffr-1,y
|
||||||
|
stxbuf sty fbufpt
|
||||||
|
ldy fdecpt
|
||||||
|
txa
|
||||||
|
eor #$ff
|
||||||
|
and #$80
|
||||||
|
tax
|
||||||
|
cpy #fdcend-foutbl
|
||||||
|
beq fouldy
|
||||||
|
cpy #timend-foutbl
|
||||||
|
bne fout2
|
||||||
|
fouldy ldy fbufpt
|
||||||
|
fout11 lda fbuffr-1,y
|
||||||
|
dey
|
||||||
|
cmp #'0'
|
||||||
|
beq fout11
|
||||||
|
cmp #'.'
|
||||||
|
beq fout12
|
||||||
|
iny
|
||||||
|
fout12 lda #'+'
|
||||||
|
ldx tenexp
|
||||||
|
beq fout17
|
||||||
|
bpl fout14
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
sbc tenexp
|
||||||
|
tax
|
||||||
|
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
lda #'-'
|
||||||
|
fout14 sta fbuffr+1,y
|
||||||
|
lda #'E'
|
||||||
|
sta fbuffr,y
|
||||||
|
txa
|
||||||
|
ldx #$2f
|
||||||
|
sec
|
||||||
|
fout15 inx
|
||||||
|
sbc #$0a
|
||||||
|
bcs fout15
|
||||||
|
adc #$3a
|
||||||
|
sta fbuffr+3,y
|
||||||
|
txa
|
||||||
|
sta fbuffr+2,y
|
||||||
|
lda #0
|
||||||
|
sta fbuffr+4,y
|
||||||
|
beq fout20
|
||||||
|
fout19 sta fbuffr-1,y
|
||||||
|
fout17 lda #0
|
||||||
|
sta fbuffr,y
|
||||||
|
fout20 lda #<fbuffr
|
||||||
|
ldy #>fbuffr
|
||||||
|
rts
|
||||||
|
fhalf .byt $80,$00
|
||||||
|
zero .byt $00,$00,$00
|
||||||
|
foutbl .byt $fa,$0a,$1f,$00,$00
|
||||||
|
.byt $98,$96,$80,$ff
|
||||||
|
.byt $f0,$bd,$c0,$00
|
||||||
|
.byt $01,$86,$a0,$ff
|
||||||
|
.byt $ff,$d8,$f0,$00,$00
|
||||||
|
.byt $03,$e8,$ff,$ff
|
||||||
|
.byt $ff,$9c,$00,$00,$00,$0a
|
||||||
|
.byt $ff,$ff,$ff,$ff
|
||||||
|
fdcend .byt $ff,$df,$0a,$80
|
||||||
|
.byt $00,$03,$4b,$c0,$ff
|
||||||
|
.byt $ff,$73,$60,$00,$00
|
||||||
|
.byt $0e,$10,$ff,$ff
|
||||||
|
.byt $fd,$a8,$00,$00,$00,$3c
|
||||||
|
timend
|
||||||
|
;
|
||||||
|
cksma0 .byt $00 ;$a000 8k room check sum adj
|
||||||
|
patchs .res 30 ; patch area
|
||||||
|
;
|
||||||
|
sqr jsr movaf
|
||||||
|
lda #<fhalf
|
||||||
|
ldy #>fhalf
|
||||||
|
jsr movfm
|
||||||
|
fpwrt beq exp
|
||||||
|
lda argexp
|
||||||
|
bne fpwrt1
|
||||||
|
jmp zerof1
|
||||||
|
fpwrt1 ldx #<tempf3
|
||||||
|
ldy #>tempf3
|
||||||
|
jsr movmf
|
||||||
|
lda argsgn
|
||||||
|
bpl fpwr1
|
||||||
|
jsr int
|
||||||
|
lda #<tempf3
|
||||||
|
ldy #>tempf3
|
||||||
|
jsr fcomp
|
||||||
|
bne fpwr1
|
||||||
|
tya
|
||||||
|
ldy integr
|
||||||
|
fpwr1 jsr movfa1
|
||||||
|
tya
|
||||||
|
pha
|
||||||
|
jsr log
|
||||||
|
lda #<tempf3
|
||||||
|
ldy #>tempf3
|
||||||
|
jsr fmult
|
||||||
|
jsr exp
|
||||||
|
pla
|
||||||
|
lsr a
|
||||||
|
bcc negrts
|
||||||
|
negop lda facexp
|
||||||
|
beq negrts
|
||||||
|
lda facsgn
|
||||||
|
eor #$ff
|
||||||
|
sta facsgn
|
||||||
|
negrts rts
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
logeb2 .byt $81,$38,$aa,$3b,$29
|
||||||
|
expcon .byt $07,$71,$34,$58,$3e
|
||||||
|
.byt $56,$74,$16,$7e
|
||||||
|
.byt $b3,$1b,$77,$2f
|
||||||
|
.byt $ee,$e3,$85,$7a
|
||||||
|
.byt $1d,$84,$1c,$2a
|
||||||
|
.byt $7c,$63,$59,$58
|
||||||
|
.byt $0a,$7e,$75,$fd
|
||||||
|
.byt $e7,$c6,$80,$31
|
||||||
|
.byt $72,$18,$10,$81
|
||||||
|
.byt 0,0,0,0
|
||||||
|
;
|
||||||
|
; start of kernal rom
|
||||||
|
;
|
||||||
|
exp lda #<logeb2
|
||||||
|
ldy #>logeb2
|
||||||
|
jsr fmult
|
||||||
|
lda facov
|
||||||
|
adc #$50
|
||||||
|
bcc stoldx
|
||||||
|
jsr incrnd
|
||||||
|
stoldx jmp stold ;cross boundries
|
||||||
|
|
||||||
+122
@@ -0,0 +1,122 @@
|
|||||||
|
.segment "HIBASIC" ;start of vic-40 kernal rom
|
||||||
|
|
||||||
|
; continuation of exponent routine
|
||||||
|
;
|
||||||
|
stold sta oldov
|
||||||
|
jsr movef
|
||||||
|
lda facexp
|
||||||
|
cmp #$88
|
||||||
|
bcc exp1
|
||||||
|
gomldv jsr mldvex
|
||||||
|
exp1 jsr int
|
||||||
|
lda integr
|
||||||
|
clc
|
||||||
|
adc #$81
|
||||||
|
beq gomldv
|
||||||
|
sec
|
||||||
|
sbc #1
|
||||||
|
pha
|
||||||
|
ldx #4+addprc
|
||||||
|
swaplp lda argexp,x
|
||||||
|
ldy facexp,x
|
||||||
|
sta facexp,x
|
||||||
|
sty argexp,x
|
||||||
|
dex
|
||||||
|
bpl swaplp
|
||||||
|
lda oldov
|
||||||
|
sta facov
|
||||||
|
jsr fsubt
|
||||||
|
jsr negop
|
||||||
|
lda #<expcon
|
||||||
|
ldy #>expcon
|
||||||
|
jsr poly
|
||||||
|
lda #0
|
||||||
|
sta arisgn
|
||||||
|
pla
|
||||||
|
jsr mldexp
|
||||||
|
rts
|
||||||
|
polyx sta polypt
|
||||||
|
sty polypt+1
|
||||||
|
jsr mov1f
|
||||||
|
lda #tempf1
|
||||||
|
jsr fmult
|
||||||
|
jsr poly1
|
||||||
|
lda #<tempf1
|
||||||
|
ldy #>tempf1
|
||||||
|
jmp fmult
|
||||||
|
poly sta polypt
|
||||||
|
sty polypt+1
|
||||||
|
poly1 jsr mov2f
|
||||||
|
lda (polypt),y
|
||||||
|
sta degree
|
||||||
|
ldy polypt
|
||||||
|
iny
|
||||||
|
tya
|
||||||
|
bne poly3
|
||||||
|
inc polypt+1
|
||||||
|
poly3 sta polypt
|
||||||
|
ldy polypt+1
|
||||||
|
poly2 jsr fmult
|
||||||
|
lda polypt
|
||||||
|
ldy polypt+1
|
||||||
|
clc
|
||||||
|
adc #4+addprc
|
||||||
|
bcc poly4
|
||||||
|
iny
|
||||||
|
poly4 sta polypt
|
||||||
|
sty polypt+1
|
||||||
|
jsr fadd
|
||||||
|
lda #<tempf2
|
||||||
|
ldy #>tempf2
|
||||||
|
dec degree
|
||||||
|
bne poly2
|
||||||
|
rts
|
||||||
|
rmulc .byt $98,$35,$44,$7a,$00
|
||||||
|
raddc .byt $68,$28,$b1,$46,$00
|
||||||
|
rnd jsr sign
|
||||||
|
bmi rnd1
|
||||||
|
bne qsetnr
|
||||||
|
jsr rdbas
|
||||||
|
stx index1
|
||||||
|
sty index1+1
|
||||||
|
ldy #4
|
||||||
|
lda (index1),y
|
||||||
|
sta facho
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
sta facmo
|
||||||
|
ldy #8
|
||||||
|
lda (index1),y
|
||||||
|
sta facmoh
|
||||||
|
iny
|
||||||
|
lda (index1),y
|
||||||
|
sta faclo
|
||||||
|
jmp strnex
|
||||||
|
qsetnr lda #<rndx
|
||||||
|
ldy #>rndx
|
||||||
|
jsr movfm
|
||||||
|
lda #<rmulc
|
||||||
|
ldy #>rmulc
|
||||||
|
jsr fmult
|
||||||
|
lda #<raddc
|
||||||
|
ldy #>raddc
|
||||||
|
jsr fadd
|
||||||
|
rnd1 ldx faclo
|
||||||
|
lda facho
|
||||||
|
sta faclo
|
||||||
|
stx facho
|
||||||
|
ldx facmoh
|
||||||
|
lda facmo
|
||||||
|
sta facmoh
|
||||||
|
stx facmo
|
||||||
|
strnex lda #0
|
||||||
|
sta facsgn
|
||||||
|
lda facexp
|
||||||
|
sta facov
|
||||||
|
lda #$80
|
||||||
|
sta facexp
|
||||||
|
jsr normal
|
||||||
|
ldx #<rndx
|
||||||
|
ldy #>rndx
|
||||||
|
gmovmf jmp movmf
|
||||||
|
|
||||||
+242
@@ -0,0 +1,242 @@
|
|||||||
|
;most references to kernal are defined here
|
||||||
|
;
|
||||||
|
erexit cmp #$f0 ;check for special case
|
||||||
|
bne erexix
|
||||||
|
; top of memory has changed
|
||||||
|
sty memsiz+1
|
||||||
|
stx memsiz
|
||||||
|
jmp cleart ;act as if he typed clear
|
||||||
|
erexix tax ;set termination flags
|
||||||
|
bne erexiy
|
||||||
|
ldx #erbrk ;break error
|
||||||
|
erexiy jmp error ;normal error
|
||||||
|
|
||||||
|
clschn =$ffcc
|
||||||
|
|
||||||
|
outch jsr $ffd2
|
||||||
|
bcs erexit
|
||||||
|
rts
|
||||||
|
|
||||||
|
inchr jsr $ffcf
|
||||||
|
bcs erexit
|
||||||
|
rts
|
||||||
|
|
||||||
|
ccall =$ffe7
|
||||||
|
|
||||||
|
settim =$ffdb
|
||||||
|
rdtim =$ffde
|
||||||
|
|
||||||
|
coout jsr ppach ; go out to save .a for print# patch
|
||||||
|
bcs erexit
|
||||||
|
rts
|
||||||
|
|
||||||
|
coin jsr $ffc6
|
||||||
|
bcs erexit
|
||||||
|
rts
|
||||||
|
|
||||||
|
readst =$ffb7
|
||||||
|
|
||||||
|
cgetl jsr $ffe4
|
||||||
|
bcs erexit
|
||||||
|
rts
|
||||||
|
|
||||||
|
rdbas =$fff3
|
||||||
|
|
||||||
|
setmsg =$ff90
|
||||||
|
|
||||||
|
plot =$fff0
|
||||||
|
|
||||||
|
csys jsr frmnum ;eval formula
|
||||||
|
jsr getadr ;convert to int. addr
|
||||||
|
lda #>csysrz ;push return address
|
||||||
|
pha
|
||||||
|
lda #<csysrz
|
||||||
|
pha
|
||||||
|
lda spreg ;status reg
|
||||||
|
pha
|
||||||
|
lda sareg ;load 6502 regs
|
||||||
|
ldx sxreg
|
||||||
|
ldy syreg
|
||||||
|
plp ;load 6502 status reg
|
||||||
|
jmp (linnum) ;go do it
|
||||||
|
csysrz =*-1 ;return to here
|
||||||
|
php ;save status reg
|
||||||
|
sta sareg ;save 6502 regs
|
||||||
|
stx sxreg
|
||||||
|
sty syreg
|
||||||
|
pla ;get status reg
|
||||||
|
sta spreg
|
||||||
|
rts ;return to system
|
||||||
|
|
||||||
|
csave jsr plsv ;parse parms
|
||||||
|
ldx vartab ;end save addr
|
||||||
|
ldy vartab+1
|
||||||
|
lda #<txttab ;indirect with start address
|
||||||
|
jsr $ffd8 ;save it
|
||||||
|
bcs erexit
|
||||||
|
rts
|
||||||
|
|
||||||
|
cverf lda #1 ;verify flag
|
||||||
|
.byt $2c ;skip two bytes
|
||||||
|
|
||||||
|
cload lda #0 ;load flag
|
||||||
|
sta verck
|
||||||
|
jsr plsv ;parse parameters
|
||||||
|
;
|
||||||
|
cld10 ; jsr $ffe1 ;check run/stop
|
||||||
|
; cmp #$ff ;done yet?
|
||||||
|
; bne cld10 ;still bouncing
|
||||||
|
lda verck
|
||||||
|
ldx txttab ;.x and .y have alt...
|
||||||
|
ldy txttab+1 ;...load address
|
||||||
|
jsr $ffd5 ;load it
|
||||||
|
bcs jerxit ;problems
|
||||||
|
;
|
||||||
|
lda verck
|
||||||
|
beq cld50 ;was load
|
||||||
|
;
|
||||||
|
;finish verify
|
||||||
|
;
|
||||||
|
ldx #ervfy ;assume error
|
||||||
|
jsr $ffb7 ;read status
|
||||||
|
and #$10 ;check error
|
||||||
|
bne cld55 ;replaces beq *+5/jmp error
|
||||||
|
;
|
||||||
|
;print verify 'ok' if direct
|
||||||
|
;
|
||||||
|
lda txtptr
|
||||||
|
cmp #bufpag
|
||||||
|
beq cld20
|
||||||
|
lda #<okmsg
|
||||||
|
ldy #>okmsg
|
||||||
|
jmp strout
|
||||||
|
;
|
||||||
|
cld20 rts
|
||||||
|
|
||||||
|
;
|
||||||
|
;finish load
|
||||||
|
;
|
||||||
|
cld50 jsr $ffb7 ;read status
|
||||||
|
and #$ff-$40 ;clear e.o.i.
|
||||||
|
beq cld60 ;was o.k.
|
||||||
|
ldx #erload
|
||||||
|
cld55 jmp error
|
||||||
|
;
|
||||||
|
cld60 lda txtptr+1
|
||||||
|
cmp #bufpag ;direct?
|
||||||
|
bne cld70 ;no...
|
||||||
|
;
|
||||||
|
stx vartab
|
||||||
|
sty vartab+1 ;end load address
|
||||||
|
lda #<reddy
|
||||||
|
ldy #>reddy
|
||||||
|
jsr strout
|
||||||
|
jmp fini
|
||||||
|
;
|
||||||
|
;program load
|
||||||
|
;
|
||||||
|
cld70 jsr stxtpt
|
||||||
|
jsr lnkprg
|
||||||
|
jmp fload
|
||||||
|
|
||||||
|
copen jsr paoc ;parse statement
|
||||||
|
jsr $ffc0 ;open it
|
||||||
|
bcs jerxit ;bad stuff or memsiz change
|
||||||
|
rts ;a.o.k.
|
||||||
|
|
||||||
|
cclos jsr paoc ;parse statement
|
||||||
|
lda andmsk ;get la
|
||||||
|
jsr $ffc3 ;close it
|
||||||
|
bcc cld20 ;it's okay...no memsize change
|
||||||
|
;
|
||||||
|
jerxit jmp erexit
|
||||||
|
|
||||||
|
;
|
||||||
|
;parse load and save commands
|
||||||
|
;
|
||||||
|
plsv
|
||||||
|
;default file name
|
||||||
|
;
|
||||||
|
lda #0 ;length=0
|
||||||
|
jsr $ffbd
|
||||||
|
;
|
||||||
|
;default device #
|
||||||
|
;
|
||||||
|
ldx #1 ;device #1
|
||||||
|
ldy #0 ;command 0
|
||||||
|
jsr $ffba
|
||||||
|
;
|
||||||
|
jsr paoc20 ;by-pass junk
|
||||||
|
jsr paoc15 ;get/set file name
|
||||||
|
jsr paoc20 ;by-pass junk
|
||||||
|
jsr plsv7 ;get ',fa'
|
||||||
|
ldy #0 ;command 0
|
||||||
|
stx andmsk
|
||||||
|
jsr $ffba
|
||||||
|
jsr paoc20 ;by-pass junk
|
||||||
|
jsr plsv7 ;get ',sa'
|
||||||
|
txa ;new command
|
||||||
|
tay
|
||||||
|
ldx andmsk ;device #
|
||||||
|
jmp $ffba
|
||||||
|
|
||||||
|
;look for comma followed by byte
|
||||||
|
plsv7 jsr paoc30
|
||||||
|
jmp getbyt
|
||||||
|
|
||||||
|
;skip return if next char is end
|
||||||
|
;
|
||||||
|
paoc20 jsr chrgot
|
||||||
|
bne paocx
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
paocx rts
|
||||||
|
|
||||||
|
;check for comma and good stuff
|
||||||
|
;
|
||||||
|
paoc30 jsr chkcom ;check comma
|
||||||
|
paoc32 jsr chrgot ;get current
|
||||||
|
bne paocx ;is o.k.
|
||||||
|
paoc40 jmp snerr ;bad...end of line
|
||||||
|
|
||||||
|
;parse open/close
|
||||||
|
;
|
||||||
|
paoc lda #0
|
||||||
|
jsr $ffbd ;default file name
|
||||||
|
;
|
||||||
|
jsr paoc32 ;must got something
|
||||||
|
jsr getbyt ;get la
|
||||||
|
stx andmsk
|
||||||
|
txa
|
||||||
|
ldx #1 ;default device
|
||||||
|
ldy #0 ;default command
|
||||||
|
jsr $ffba ;store it
|
||||||
|
jsr paoc20 ;skip junk
|
||||||
|
jsr plsv7
|
||||||
|
stx eormsk
|
||||||
|
ldy #0 ;default command
|
||||||
|
lda andmsk ;get la
|
||||||
|
cpx #3
|
||||||
|
bcc paoc5
|
||||||
|
dey ;default ieee to $ff
|
||||||
|
paoc5 jsr $ffba ;store them
|
||||||
|
jsr paoc20 ;skip junk
|
||||||
|
jsr plsv7 ;get sa
|
||||||
|
txa
|
||||||
|
tay
|
||||||
|
ldx eormsk
|
||||||
|
lda andmsk
|
||||||
|
jsr $ffba ;set up real eveything
|
||||||
|
paoc7 jsr paoc20
|
||||||
|
jsr paoc30
|
||||||
|
paoc15 jsr frmevl
|
||||||
|
jsr frestr ;length in .a
|
||||||
|
ldx index1
|
||||||
|
ldy index1+1
|
||||||
|
jmp $ffbd
|
||||||
|
|
||||||
|
; rsr 8/10/80 - change sys command
|
||||||
|
; rsr 8/26/80 - add open&close memsiz detect
|
||||||
|
; rsr 10/7/80 - change load (remove run wait)
|
||||||
|
; rsr 4/10/82 - inline fix program load
|
||||||
|
; rsr 7/02/82 - fix print# problem
|
||||||
+138
@@ -0,0 +1,138 @@
|
|||||||
|
list bcc golst
|
||||||
|
beq golst
|
||||||
|
cmp #minutk
|
||||||
|
bne stkrts
|
||||||
|
golst jsr linget
|
||||||
|
jsr fndlin
|
||||||
|
jsr chrgot
|
||||||
|
beq lstend
|
||||||
|
cmp #minutk
|
||||||
|
bne flnrts
|
||||||
|
jsr chrget
|
||||||
|
jsr linget
|
||||||
|
bne flnrts
|
||||||
|
lstend pla
|
||||||
|
pla
|
||||||
|
lda linnum
|
||||||
|
ora linnum+1
|
||||||
|
bne list4
|
||||||
|
lda #255
|
||||||
|
sta linnum
|
||||||
|
sta linnum+1
|
||||||
|
list4 ldy #1
|
||||||
|
sty dores
|
||||||
|
lda (lowtr),y
|
||||||
|
beq grody
|
||||||
|
jsr iscntc
|
||||||
|
jsr crdo
|
||||||
|
iny
|
||||||
|
lda (lowtr),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (lowtr),y
|
||||||
|
cmp linnum+1
|
||||||
|
bne tstdun
|
||||||
|
cpx linnum
|
||||||
|
beq typlin
|
||||||
|
tstdun bcs grody
|
||||||
|
typlin sty lstpnt
|
||||||
|
jsr linprt
|
||||||
|
lda #' '
|
||||||
|
prit4 ldy lstpnt
|
||||||
|
and #127
|
||||||
|
ploop jsr outdo
|
||||||
|
cmp #34
|
||||||
|
bne ploop1
|
||||||
|
lda dores
|
||||||
|
eor #$ff
|
||||||
|
sta dores
|
||||||
|
ploop1 iny
|
||||||
|
beq grody
|
||||||
|
lda (lowtr),y
|
||||||
|
bne qplop
|
||||||
|
tay
|
||||||
|
lda (lowtr),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (lowtr),y
|
||||||
|
stx lowtr
|
||||||
|
sta lowtr+1
|
||||||
|
bne list4
|
||||||
|
grody jmp ready
|
||||||
|
qplop jmp (iqplop)
|
||||||
|
nqplop bpl ploop
|
||||||
|
cmp #pi
|
||||||
|
beq ploop
|
||||||
|
bit dores
|
||||||
|
bmi ploop
|
||||||
|
sec
|
||||||
|
sbc #127
|
||||||
|
tax
|
||||||
|
sty lstpnt
|
||||||
|
ldy #255
|
||||||
|
resrch dex
|
||||||
|
beq prit3
|
||||||
|
rescr1 iny
|
||||||
|
lda reslst,y
|
||||||
|
bpl rescr1
|
||||||
|
bmi resrch
|
||||||
|
prit3 iny
|
||||||
|
lda reslst,y
|
||||||
|
bmi prit4
|
||||||
|
jsr outdo
|
||||||
|
bne prit3
|
||||||
|
for lda #128
|
||||||
|
sta subflg
|
||||||
|
jsr let
|
||||||
|
jsr fndfor
|
||||||
|
bne notol
|
||||||
|
txa
|
||||||
|
adc #forsiz-3
|
||||||
|
tax
|
||||||
|
txs
|
||||||
|
notol pla
|
||||||
|
pla
|
||||||
|
lda #8+addprc
|
||||||
|
jsr getstk
|
||||||
|
jsr datan
|
||||||
|
clc
|
||||||
|
tya
|
||||||
|
adc txtptr
|
||||||
|
pha
|
||||||
|
lda txtptr+1
|
||||||
|
adc #0
|
||||||
|
pha
|
||||||
|
lda curlin+1
|
||||||
|
pha
|
||||||
|
lda curlin
|
||||||
|
pha
|
||||||
|
lda #totk
|
||||||
|
jsr synchr
|
||||||
|
jsr chknum
|
||||||
|
jsr frmnum
|
||||||
|
lda facsgn
|
||||||
|
ora #127
|
||||||
|
and facho
|
||||||
|
sta facho
|
||||||
|
lda #<ldfone
|
||||||
|
ldy #>ldfone
|
||||||
|
sta index1
|
||||||
|
sty index1+1
|
||||||
|
jmp forpsh
|
||||||
|
ldfone lda #<fone
|
||||||
|
ldy #>fone
|
||||||
|
jsr movfm
|
||||||
|
jsr chrgot
|
||||||
|
cmp #steptk
|
||||||
|
bne oneon
|
||||||
|
jsr chrget
|
||||||
|
jsr frmnum
|
||||||
|
oneon jsr sign
|
||||||
|
jsr pushf
|
||||||
|
lda forpnt+1
|
||||||
|
pha
|
||||||
|
lda forpnt
|
||||||
|
pha
|
||||||
|
lda #fortk
|
||||||
|
pha
|
||||||
|
|
||||||
+142
@@ -0,0 +1,142 @@
|
|||||||
|
newstt jsr iscntc
|
||||||
|
lda txtptr
|
||||||
|
ldy txtptr+1
|
||||||
|
cpy #bufpag
|
||||||
|
nop
|
||||||
|
beq dircon
|
||||||
|
sta oldtxt
|
||||||
|
sty oldtxt+1
|
||||||
|
dircon ldy #0
|
||||||
|
lda (txtptr),y
|
||||||
|
bne morsts
|
||||||
|
ldy #2
|
||||||
|
lda (txtptr),y
|
||||||
|
clc
|
||||||
|
bne dircn1
|
||||||
|
jmp endcon
|
||||||
|
dircn1 iny
|
||||||
|
lda (txtptr),y
|
||||||
|
sta curlin
|
||||||
|
iny
|
||||||
|
lda (txtptr),y
|
||||||
|
sta curlin+1
|
||||||
|
tya
|
||||||
|
adc txtptr
|
||||||
|
sta txtptr
|
||||||
|
bcc gone
|
||||||
|
inc txtptr+1
|
||||||
|
gone jmp (igone)
|
||||||
|
ngone jsr chrget
|
||||||
|
ngone1 jsr gone3
|
||||||
|
jmp newstt
|
||||||
|
gone3 beq iscrts
|
||||||
|
gone2 sbc #endtk
|
||||||
|
bcc glet
|
||||||
|
cmp #scratk-endtk+1
|
||||||
|
bcs snerrx
|
||||||
|
asl a
|
||||||
|
tay
|
||||||
|
lda stmdsp+1,y
|
||||||
|
pha
|
||||||
|
lda stmdsp,y
|
||||||
|
pha
|
||||||
|
jmp chrget
|
||||||
|
glet jmp let
|
||||||
|
morsts cmp #':'
|
||||||
|
beq gone
|
||||||
|
snerr1 jmp snerr
|
||||||
|
snerrx cmp #gotk-endtk
|
||||||
|
bne snerr1
|
||||||
|
jsr chrget
|
||||||
|
lda #totk
|
||||||
|
jsr synchr
|
||||||
|
jmp goto
|
||||||
|
restor sec
|
||||||
|
lda txttab
|
||||||
|
sbc #1
|
||||||
|
ldy txttab+1
|
||||||
|
bcs resfin
|
||||||
|
dey
|
||||||
|
resfin sta datptr
|
||||||
|
sty datptr+1
|
||||||
|
iscrts rts
|
||||||
|
iscntc jsr $ffe1
|
||||||
|
stop bcs stopc
|
||||||
|
end clc
|
||||||
|
stopc bne contrt
|
||||||
|
lda txtptr
|
||||||
|
ldy txtptr+1
|
||||||
|
ldx curlin+1
|
||||||
|
inx
|
||||||
|
beq diris
|
||||||
|
sta oldtxt
|
||||||
|
sty oldtxt+1
|
||||||
|
stpend lda curlin
|
||||||
|
ldy curlin+1
|
||||||
|
sta oldlin
|
||||||
|
sty oldlin+1
|
||||||
|
diris pla
|
||||||
|
pla
|
||||||
|
endcon lda #<brktxt
|
||||||
|
ldy #>brktxt
|
||||||
|
bcc gordy
|
||||||
|
jmp errfin
|
||||||
|
gordy jmp ready
|
||||||
|
cont bne contrt
|
||||||
|
ldx #errcn
|
||||||
|
ldy oldtxt+1
|
||||||
|
bne *+5
|
||||||
|
jmp error
|
||||||
|
lda oldtxt
|
||||||
|
sta txtptr
|
||||||
|
sty txtptr+1
|
||||||
|
lda oldlin
|
||||||
|
ldy oldlin+1
|
||||||
|
sta curlin
|
||||||
|
sty curlin+1
|
||||||
|
contrt rts
|
||||||
|
run php
|
||||||
|
lda #0 ;no kernal messages
|
||||||
|
jsr setmsg
|
||||||
|
plp
|
||||||
|
bne *+5
|
||||||
|
jmp runc
|
||||||
|
jsr clearc
|
||||||
|
jmp runc2
|
||||||
|
gosub lda #3
|
||||||
|
jsr getstk
|
||||||
|
lda txtptr+1
|
||||||
|
pha
|
||||||
|
lda txtptr
|
||||||
|
pha
|
||||||
|
lda curlin+1
|
||||||
|
pha
|
||||||
|
lda curlin
|
||||||
|
pha
|
||||||
|
lda #gosutk
|
||||||
|
pha
|
||||||
|
runc2 jsr chrgot
|
||||||
|
jsr goto
|
||||||
|
jmp newstt
|
||||||
|
goto jsr linget
|
||||||
|
jsr remn
|
||||||
|
sec
|
||||||
|
lda curlin
|
||||||
|
sbc linnum
|
||||||
|
lda curlin+1
|
||||||
|
sbc linnum+1
|
||||||
|
bcs luk4it
|
||||||
|
tya
|
||||||
|
sec
|
||||||
|
adc txtptr
|
||||||
|
ldx txtptr+1
|
||||||
|
bcc lukall
|
||||||
|
inx
|
||||||
|
bcs lukall
|
||||||
|
luk4it lda txttab
|
||||||
|
ldx txttab+1
|
||||||
|
lukall jsr fndlnc
|
||||||
|
bcc userr
|
||||||
|
lda lowtr
|
||||||
|
sbc #1
|
||||||
|
|
||||||
+148
@@ -0,0 +1,148 @@
|
|||||||
|
sta txtptr
|
||||||
|
lda lowtr+1
|
||||||
|
sbc #0
|
||||||
|
sta txtptr+1
|
||||||
|
gorts rts
|
||||||
|
return bne gorts
|
||||||
|
lda #255
|
||||||
|
sta forpnt+1
|
||||||
|
jsr fndfor
|
||||||
|
txs
|
||||||
|
cmp #gosutk
|
||||||
|
beq retu1
|
||||||
|
ldx #errrg
|
||||||
|
.byt $2c
|
||||||
|
userr ldx #errus
|
||||||
|
jmp error
|
||||||
|
snerr2 jmp snerr
|
||||||
|
retu1 pla
|
||||||
|
pla
|
||||||
|
sta curlin
|
||||||
|
pla
|
||||||
|
sta curlin+1
|
||||||
|
pla
|
||||||
|
sta txtptr
|
||||||
|
pla
|
||||||
|
sta txtptr+1
|
||||||
|
data jsr datan
|
||||||
|
addon tya
|
||||||
|
clc
|
||||||
|
adc txtptr
|
||||||
|
sta txtptr
|
||||||
|
bcc remrts
|
||||||
|
inc txtptr+1
|
||||||
|
remrts rts
|
||||||
|
datan ldx #':'
|
||||||
|
.byt $2c
|
||||||
|
remn ldx #0
|
||||||
|
stx charac
|
||||||
|
ldy #0
|
||||||
|
sty endchr
|
||||||
|
exchqt lda endchr
|
||||||
|
ldx charac
|
||||||
|
sta charac
|
||||||
|
stx endchr
|
||||||
|
remer lda (txtptr),y
|
||||||
|
beq remrts
|
||||||
|
cmp endchr
|
||||||
|
beq remrts
|
||||||
|
iny
|
||||||
|
cmp #34
|
||||||
|
bne remer
|
||||||
|
beq exchqt
|
||||||
|
if jsr frmevl
|
||||||
|
jsr chrgot
|
||||||
|
cmp #gototk
|
||||||
|
beq okgoto
|
||||||
|
lda #thentk
|
||||||
|
jsr synchr
|
||||||
|
okgoto lda facexp
|
||||||
|
bne docond
|
||||||
|
rem jsr remn
|
||||||
|
beq addon
|
||||||
|
docond jsr chrgot
|
||||||
|
bcs doco
|
||||||
|
jmp goto
|
||||||
|
doco jmp gone3
|
||||||
|
ongoto jsr getbyt
|
||||||
|
pha
|
||||||
|
cmp #gosutk
|
||||||
|
beq onglop
|
||||||
|
snerr3 cmp #gototk
|
||||||
|
bne snerr2
|
||||||
|
onglop dec faclo
|
||||||
|
bne onglp1
|
||||||
|
pla
|
||||||
|
jmp gone2
|
||||||
|
onglp1 jsr chrget
|
||||||
|
jsr linget
|
||||||
|
cmp #44
|
||||||
|
beq onglop
|
||||||
|
pla
|
||||||
|
ongrts rts
|
||||||
|
linget ldx #0
|
||||||
|
stx linnum
|
||||||
|
stx linnum+1
|
||||||
|
morlin bcs ongrts
|
||||||
|
sbc #$2f
|
||||||
|
sta charac
|
||||||
|
lda linnum+1
|
||||||
|
sta index
|
||||||
|
cmp #25
|
||||||
|
bcs snerr3
|
||||||
|
lda linnum
|
||||||
|
asl a
|
||||||
|
rol index
|
||||||
|
asl a
|
||||||
|
rol index
|
||||||
|
adc linnum
|
||||||
|
sta linnum
|
||||||
|
lda index
|
||||||
|
adc linnum+1
|
||||||
|
sta linnum+1
|
||||||
|
asl linnum
|
||||||
|
rol linnum+1
|
||||||
|
lda linnum
|
||||||
|
adc charac
|
||||||
|
sta linnum
|
||||||
|
bcc nxtlgc
|
||||||
|
inc linnum+1
|
||||||
|
nxtlgc jsr chrget
|
||||||
|
jmp morlin
|
||||||
|
let jsr ptrget
|
||||||
|
sta forpnt
|
||||||
|
sty forpnt+1
|
||||||
|
lda #$b2
|
||||||
|
jsr synchr
|
||||||
|
lda intflg
|
||||||
|
pha
|
||||||
|
lda valtyp
|
||||||
|
pha
|
||||||
|
jsr frmevl
|
||||||
|
pla
|
||||||
|
rol a
|
||||||
|
jsr chkval
|
||||||
|
bne copstr
|
||||||
|
pla
|
||||||
|
qintgr bpl copflt
|
||||||
|
jsr round
|
||||||
|
jsr ayint
|
||||||
|
ldy #0
|
||||||
|
lda facmo
|
||||||
|
sta (forpnt),y
|
||||||
|
iny
|
||||||
|
lda faclo
|
||||||
|
sta (forpnt),y
|
||||||
|
rts
|
||||||
|
copflt jmp movvf
|
||||||
|
copstr pla
|
||||||
|
inpcom ldy forpnt+1
|
||||||
|
cpy #>zero
|
||||||
|
bne getspt
|
||||||
|
jsr frefac
|
||||||
|
cmp #6
|
||||||
|
bne fcerr2
|
||||||
|
ldy #0
|
||||||
|
sty facexp
|
||||||
|
sty facsgn
|
||||||
|
|
||||||
+147
@@ -0,0 +1,147 @@
|
|||||||
|
timelp sty fbufpt
|
||||||
|
jsr timnum
|
||||||
|
jsr mul10
|
||||||
|
inc fbufpt
|
||||||
|
ldy fbufpt
|
||||||
|
jsr timnum
|
||||||
|
jsr movaf
|
||||||
|
tax
|
||||||
|
beq noml6
|
||||||
|
inx
|
||||||
|
txa
|
||||||
|
jsr finml6
|
||||||
|
noml6 ldy fbufpt
|
||||||
|
iny
|
||||||
|
cpy #6
|
||||||
|
bne timelp
|
||||||
|
jsr mul10
|
||||||
|
jsr qint
|
||||||
|
ldx facmo
|
||||||
|
ldy facmoh
|
||||||
|
lda faclo
|
||||||
|
jmp settim
|
||||||
|
timnum lda (index),y
|
||||||
|
jsr qnum
|
||||||
|
bcc gotnum
|
||||||
|
fcerr2 jmp fcerr
|
||||||
|
gotnum sbc #$2f
|
||||||
|
jmp finlog
|
||||||
|
getspt ldy #2
|
||||||
|
lda (facmo),y
|
||||||
|
cmp fretop+1
|
||||||
|
bcc dntcpy
|
||||||
|
bne qvaria
|
||||||
|
dey
|
||||||
|
lda (facmo),y
|
||||||
|
cmp fretop
|
||||||
|
bcc dntcpy
|
||||||
|
qvaria ldy faclo
|
||||||
|
cpy vartab+1
|
||||||
|
bcc dntcpy
|
||||||
|
bne copy
|
||||||
|
lda facmo
|
||||||
|
cmp vartab
|
||||||
|
bcs copy
|
||||||
|
dntcpy lda facmo
|
||||||
|
ldy facmo+1
|
||||||
|
jmp copyc
|
||||||
|
copy ldy #0
|
||||||
|
lda (facmo),y
|
||||||
|
jsr strini
|
||||||
|
lda dscpnt
|
||||||
|
ldy dscpnt+1
|
||||||
|
sta strng1
|
||||||
|
sty strng1+1
|
||||||
|
jsr movins
|
||||||
|
lda #<dsctmp
|
||||||
|
ldy #>dsctmp
|
||||||
|
copyc sta dscpnt
|
||||||
|
sty dscpnt+1
|
||||||
|
jsr fretms
|
||||||
|
ldy #0
|
||||||
|
lda (dscpnt),y
|
||||||
|
sta (forpnt),y
|
||||||
|
iny
|
||||||
|
lda (dscpnt),y
|
||||||
|
sta (forpnt),y
|
||||||
|
iny
|
||||||
|
lda (dscpnt),y
|
||||||
|
sta (forpnt),y
|
||||||
|
rts
|
||||||
|
printn jsr cmd
|
||||||
|
jmp iodone
|
||||||
|
cmd jsr getbyt
|
||||||
|
beq saveit
|
||||||
|
lda #44
|
||||||
|
jsr synchr
|
||||||
|
saveit php
|
||||||
|
stx channl
|
||||||
|
jsr coout
|
||||||
|
plp
|
||||||
|
jmp print
|
||||||
|
strdon jsr strprt
|
||||||
|
newchr jsr chrgot
|
||||||
|
print beq crdo
|
||||||
|
printc beq prtrts
|
||||||
|
cmp #tabtk
|
||||||
|
beq taber
|
||||||
|
cmp #spctk
|
||||||
|
clc
|
||||||
|
beq taber
|
||||||
|
cmp #44
|
||||||
|
beq comprt
|
||||||
|
cmp #59
|
||||||
|
beq notabr
|
||||||
|
jsr frmevl
|
||||||
|
bit valtyp
|
||||||
|
bmi strdon
|
||||||
|
jsr fout
|
||||||
|
jsr strlit
|
||||||
|
jsr strprt
|
||||||
|
jsr outspc
|
||||||
|
bne newchr
|
||||||
|
fininl lda #0
|
||||||
|
sta buf,x
|
||||||
|
zz5=buf-1
|
||||||
|
ldx #<zz5
|
||||||
|
ldy #>zz5
|
||||||
|
lda channl
|
||||||
|
bne prtrts
|
||||||
|
crdo lda #13
|
||||||
|
jsr outdo
|
||||||
|
bit channl
|
||||||
|
bpl crfin
|
||||||
|
;
|
||||||
|
lda #10
|
||||||
|
jsr outdo
|
||||||
|
crfin eor #255
|
||||||
|
prtrts rts
|
||||||
|
comprt sec
|
||||||
|
jsr plot ;get tab position in x
|
||||||
|
tya
|
||||||
|
ncmpos =$1e
|
||||||
|
sec
|
||||||
|
morco1 sbc #clmwid
|
||||||
|
bcs morco1
|
||||||
|
eor #255
|
||||||
|
adc #1
|
||||||
|
bne aspac
|
||||||
|
taber php
|
||||||
|
sec
|
||||||
|
jsr plot ;read tab position
|
||||||
|
sty trmpos
|
||||||
|
jsr gtbytc
|
||||||
|
cmp #41
|
||||||
|
bne snerr4
|
||||||
|
plp
|
||||||
|
bcc xspac
|
||||||
|
txa
|
||||||
|
sbc trmpos
|
||||||
|
bcc notabr
|
||||||
|
aspac tax
|
||||||
|
xspac inx
|
||||||
|
xspac2 dex
|
||||||
|
bne xspac1
|
||||||
|
notabr jsr chrget
|
||||||
|
jmp printc
|
||||||
|
|
||||||
+146
@@ -0,0 +1,146 @@
|
|||||||
|
xspac1 jsr outspc
|
||||||
|
bne xspac2
|
||||||
|
strout jsr strlit
|
||||||
|
strprt jsr frefac
|
||||||
|
tax
|
||||||
|
ldy #0
|
||||||
|
inx
|
||||||
|
strpr2 dex
|
||||||
|
beq prtrts
|
||||||
|
lda (index),y
|
||||||
|
jsr outdo
|
||||||
|
iny
|
||||||
|
cmp #13
|
||||||
|
bne strpr2
|
||||||
|
jsr crfin
|
||||||
|
jmp strpr2
|
||||||
|
outspc
|
||||||
|
lda channl
|
||||||
|
beq crtskp
|
||||||
|
lda #' '
|
||||||
|
.byt $2c
|
||||||
|
crtskp lda #29
|
||||||
|
.byt $2c
|
||||||
|
outqst lda #'?'
|
||||||
|
outdo jsr outch
|
||||||
|
outrts and #255
|
||||||
|
rts
|
||||||
|
trmnok lda inpflg
|
||||||
|
beq trmno1
|
||||||
|
bmi getdtl
|
||||||
|
ldy #255
|
||||||
|
bne stcurl
|
||||||
|
getdtl lda datlin
|
||||||
|
ldy datlin+1
|
||||||
|
stcurl sta curlin
|
||||||
|
sty curlin+1
|
||||||
|
snerr4 jmp snerr
|
||||||
|
trmno1 lda channl
|
||||||
|
beq doagin
|
||||||
|
ldx #errbd
|
||||||
|
jmp error
|
||||||
|
doagin lda #<tryagn
|
||||||
|
ldy #>tryagn
|
||||||
|
jsr strout
|
||||||
|
lda oldtxt
|
||||||
|
ldy oldtxt+1
|
||||||
|
sta txtptr
|
||||||
|
sty txtptr+1
|
||||||
|
rts
|
||||||
|
get jsr errdir
|
||||||
|
cmp #'#'
|
||||||
|
bne gettty
|
||||||
|
jsr chrget
|
||||||
|
jsr getbyt
|
||||||
|
lda #44
|
||||||
|
jsr synchr
|
||||||
|
stx channl
|
||||||
|
jsr coin
|
||||||
|
zz2=buf+1
|
||||||
|
gettty ldx #<zz2
|
||||||
|
zz3=buf+2
|
||||||
|
ldy #>zz3
|
||||||
|
lda #0
|
||||||
|
sta buf+1
|
||||||
|
lda #64
|
||||||
|
jsr inpco1
|
||||||
|
ldx channl
|
||||||
|
bne iorele
|
||||||
|
rts
|
||||||
|
inputn jsr getbyt
|
||||||
|
lda #44
|
||||||
|
jsr synchr
|
||||||
|
stx channl
|
||||||
|
jsr coin
|
||||||
|
jsr notqti
|
||||||
|
iodone lda channl
|
||||||
|
iorele jsr clschn
|
||||||
|
ldx #0
|
||||||
|
stx channl
|
||||||
|
rts
|
||||||
|
input cmp #34
|
||||||
|
bne notqti
|
||||||
|
jsr strtxt
|
||||||
|
lda #59
|
||||||
|
jsr synchr
|
||||||
|
jsr strprt
|
||||||
|
notqti jsr errdir
|
||||||
|
lda #44
|
||||||
|
sta buf-1
|
||||||
|
getagn jsr qinlin
|
||||||
|
lda channl
|
||||||
|
beq bufful
|
||||||
|
jsr readst
|
||||||
|
and #2
|
||||||
|
beq bufful
|
||||||
|
jsr iodone
|
||||||
|
jmp data
|
||||||
|
bufful lda buf
|
||||||
|
bne inpcon
|
||||||
|
lda channl
|
||||||
|
bne getagn
|
||||||
|
jsr datan
|
||||||
|
jmp addon
|
||||||
|
qinlin lda channl
|
||||||
|
bne ginlin
|
||||||
|
jsr outqst
|
||||||
|
jsr outspc
|
||||||
|
ginlin jmp inlin
|
||||||
|
read ldx datptr
|
||||||
|
ldy datptr+1
|
||||||
|
.byt $a9
|
||||||
|
tya
|
||||||
|
.byt $2c
|
||||||
|
inpcon lda #0
|
||||||
|
inpco1 sta inpflg
|
||||||
|
stx inpptr
|
||||||
|
sty inpptr+1
|
||||||
|
inloop jsr ptrget
|
||||||
|
sta forpnt
|
||||||
|
sty forpnt+1
|
||||||
|
lda txtptr
|
||||||
|
ldy txtptr+1
|
||||||
|
sta vartxt
|
||||||
|
sty vartxt+1
|
||||||
|
ldx inpptr
|
||||||
|
ldy inpptr+1
|
||||||
|
stx txtptr
|
||||||
|
sty txtptr+1
|
||||||
|
jsr chrgot
|
||||||
|
bne datbk1
|
||||||
|
bit inpflg
|
||||||
|
bvc qdata
|
||||||
|
jsr cgetl
|
||||||
|
sta buf
|
||||||
|
zz4=buf-1
|
||||||
|
ldx #<zz4
|
||||||
|
ldy #>zz4
|
||||||
|
bne datbk
|
||||||
|
qdata bmi datlop
|
||||||
|
lda channl
|
||||||
|
bne getnth
|
||||||
|
jsr outqst
|
||||||
|
getnth jsr qinlin
|
||||||
|
datbk stx txtptr
|
||||||
|
sty txtptr+1
|
||||||
|
|
||||||
+145
@@ -0,0 +1,145 @@
|
|||||||
|
datbk1 jsr chrget
|
||||||
|
bit valtyp
|
||||||
|
bpl numins
|
||||||
|
bit inpflg
|
||||||
|
bvc setqut
|
||||||
|
inx
|
||||||
|
stx txtptr
|
||||||
|
lda #0
|
||||||
|
sta charac
|
||||||
|
beq resetc
|
||||||
|
setqut sta charac
|
||||||
|
cmp #34
|
||||||
|
beq nowget
|
||||||
|
lda #':'
|
||||||
|
sta charac
|
||||||
|
lda #44
|
||||||
|
resetc clc
|
||||||
|
nowget sta endchr
|
||||||
|
lda txtptr
|
||||||
|
ldy txtptr+1
|
||||||
|
adc #0
|
||||||
|
bcc nowge1
|
||||||
|
iny
|
||||||
|
nowge1 jsr strlt2
|
||||||
|
jsr st2txt
|
||||||
|
jsr inpcom
|
||||||
|
jmp strdn2
|
||||||
|
numins jsr fin
|
||||||
|
lda intflg
|
||||||
|
jsr qintgr
|
||||||
|
strdn2 jsr chrgot
|
||||||
|
beq trmok
|
||||||
|
cmp #44
|
||||||
|
beq *+5
|
||||||
|
jmp trmnok
|
||||||
|
trmok lda txtptr
|
||||||
|
ldy txtptr+1
|
||||||
|
sta inpptr
|
||||||
|
sty inpptr+1
|
||||||
|
lda vartxt
|
||||||
|
ldy vartxt+1
|
||||||
|
sta txtptr
|
||||||
|
sty txtptr+1
|
||||||
|
jsr chrgot
|
||||||
|
beq varend
|
||||||
|
jsr chkcom
|
||||||
|
jmp inloop
|
||||||
|
datlop jsr datan
|
||||||
|
iny
|
||||||
|
tax
|
||||||
|
bne nowlin
|
||||||
|
ldx #errod
|
||||||
|
iny
|
||||||
|
lda (txtptr),y
|
||||||
|
beq errgo5
|
||||||
|
iny
|
||||||
|
lda (txtptr),y
|
||||||
|
sta datlin
|
||||||
|
iny
|
||||||
|
lda (txtptr),y
|
||||||
|
iny
|
||||||
|
sta datlin+1
|
||||||
|
nowlin jsr addon ;txtptr+.y
|
||||||
|
jsr chrgot ;span blanks
|
||||||
|
tax ;used later
|
||||||
|
cpx #datatk
|
||||||
|
bne datlop
|
||||||
|
jmp datbk1
|
||||||
|
varend lda inpptr
|
||||||
|
ldy inpptr+1
|
||||||
|
ldx inpflg
|
||||||
|
bpl vary0
|
||||||
|
jmp resfin
|
||||||
|
vary0 ldy #0
|
||||||
|
lda (inpptr),y
|
||||||
|
beq inprts
|
||||||
|
lda channl
|
||||||
|
bne inprts
|
||||||
|
lda #<exignt
|
||||||
|
ldy #>exignt
|
||||||
|
jmp strout
|
||||||
|
inprts rts
|
||||||
|
exignt .byt "?EXTRA IGNORED"
|
||||||
|
.byt $d
|
||||||
|
.byt 0
|
||||||
|
tryagn .byt "?REDO FROM START"
|
||||||
|
.byt $d
|
||||||
|
.byt 0
|
||||||
|
next bne getfor
|
||||||
|
ldy #0
|
||||||
|
beq stxfor
|
||||||
|
getfor jsr ptrget
|
||||||
|
stxfor sta forpnt
|
||||||
|
sty forpnt+1
|
||||||
|
jsr fndfor
|
||||||
|
beq havfor
|
||||||
|
ldx #errnf
|
||||||
|
errgo5 jmp error ;change
|
||||||
|
havfor txs
|
||||||
|
txa
|
||||||
|
clc
|
||||||
|
adc #4
|
||||||
|
pha
|
||||||
|
adc #5+addprc
|
||||||
|
sta index2
|
||||||
|
pla
|
||||||
|
ldy #1
|
||||||
|
jsr movfm
|
||||||
|
tsx
|
||||||
|
lda addprc+264,x
|
||||||
|
sta facsgn
|
||||||
|
lda forpnt
|
||||||
|
ldy forpnt+1
|
||||||
|
jsr fadd
|
||||||
|
jsr movvf
|
||||||
|
ldy #1
|
||||||
|
jsr fcompn
|
||||||
|
tsx
|
||||||
|
sec
|
||||||
|
sbc addprc+264,x
|
||||||
|
beq loopdn
|
||||||
|
lda 269+addprc+addprc,x
|
||||||
|
sta curlin
|
||||||
|
lda 270+addprc+addprc,x
|
||||||
|
sta curlin+1
|
||||||
|
lda 272+addprc+addprc,x
|
||||||
|
sta txtptr
|
||||||
|
lda 271+addprc+addprc,x
|
||||||
|
sta txtptr+1
|
||||||
|
newsgo jmp newstt
|
||||||
|
loopdn txa
|
||||||
|
adc #15+addprc+addprc
|
||||||
|
tax
|
||||||
|
txs
|
||||||
|
jsr chrgot
|
||||||
|
cmp #44
|
||||||
|
bne newsgo
|
||||||
|
jsr chrget
|
||||||
|
jsr getfor
|
||||||
|
frmnum jsr frmevl
|
||||||
|
chknum clc
|
||||||
|
.byt $24
|
||||||
|
chkstr sec
|
||||||
|
chkval bit valtyp
|
||||||
|
|
||||||
+200
@@ -0,0 +1,200 @@
|
|||||||
|
bmi docstr
|
||||||
|
bcs chkerr
|
||||||
|
chkok rts
|
||||||
|
docstr bcs chkok
|
||||||
|
chkerr ldx #errtm
|
||||||
|
errgo4 jmp error
|
||||||
|
frmevl ldx txtptr
|
||||||
|
bne frmev1
|
||||||
|
dec txtptr+1
|
||||||
|
frmev1 dec txtptr
|
||||||
|
ldx #0
|
||||||
|
.byt $24
|
||||||
|
lpoper pha
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
lda #1
|
||||||
|
jsr getstk
|
||||||
|
jsr eval
|
||||||
|
lda #0
|
||||||
|
sta opmask
|
||||||
|
tstop jsr chrgot
|
||||||
|
loprel sec
|
||||||
|
sbc #greatk
|
||||||
|
bcc endrel
|
||||||
|
cmp #lesstk-greatk+1
|
||||||
|
bcs endrel
|
||||||
|
cmp #1
|
||||||
|
rol a
|
||||||
|
eor #1
|
||||||
|
eor opmask
|
||||||
|
cmp opmask
|
||||||
|
bcc snerr5
|
||||||
|
sta opmask
|
||||||
|
jsr chrget
|
||||||
|
jmp loprel
|
||||||
|
endrel ldx opmask
|
||||||
|
bne finrel
|
||||||
|
bcs qop
|
||||||
|
adc #greatk-plustk
|
||||||
|
bcc qop
|
||||||
|
adc valtyp
|
||||||
|
bne *+5
|
||||||
|
jmp cat
|
||||||
|
adc #$ff
|
||||||
|
sta index1
|
||||||
|
asl a
|
||||||
|
adc index1
|
||||||
|
tay
|
||||||
|
qprec pla
|
||||||
|
cmp optab,y
|
||||||
|
bcs qchnum
|
||||||
|
jsr chknum
|
||||||
|
doprec pha
|
||||||
|
negprc jsr dopre1
|
||||||
|
pla
|
||||||
|
ldy opptr
|
||||||
|
bpl qprec1
|
||||||
|
tax
|
||||||
|
beq qopgo
|
||||||
|
bne pulstk
|
||||||
|
finrel lsr valtyp
|
||||||
|
txa
|
||||||
|
rol a
|
||||||
|
ldx txtptr
|
||||||
|
bne finre2
|
||||||
|
dec txtptr+1
|
||||||
|
finre2 dec txtptr
|
||||||
|
ldy #ptdorl-optab
|
||||||
|
sta opmask
|
||||||
|
bne qprec
|
||||||
|
qprec1 cmp optab,y
|
||||||
|
bcs pulstk
|
||||||
|
bcc doprec
|
||||||
|
dopre1 lda optab+2,y
|
||||||
|
pha
|
||||||
|
lda optab+1,y
|
||||||
|
pha
|
||||||
|
jsr pushf1
|
||||||
|
lda opmask
|
||||||
|
jmp lpoper
|
||||||
|
snerr5 jmp snerr
|
||||||
|
pushf1 lda facsgn
|
||||||
|
ldx optab,y
|
||||||
|
pushf tay
|
||||||
|
pla
|
||||||
|
sta index1
|
||||||
|
inc index1
|
||||||
|
pla
|
||||||
|
sta index1+1
|
||||||
|
tya
|
||||||
|
pha
|
||||||
|
forpsh jsr round
|
||||||
|
lda faclo
|
||||||
|
pha
|
||||||
|
lda facmo
|
||||||
|
pha
|
||||||
|
lda facmoh
|
||||||
|
pha
|
||||||
|
lda facho
|
||||||
|
pha
|
||||||
|
lda facexp
|
||||||
|
pha
|
||||||
|
jmp (index1)
|
||||||
|
qop ldy #255
|
||||||
|
pla
|
||||||
|
qopgo beq qoprts
|
||||||
|
qchnum cmp #100
|
||||||
|
beq unpstk
|
||||||
|
jsr chknum
|
||||||
|
unpstk sty opptr
|
||||||
|
pulstk pla
|
||||||
|
lsr a
|
||||||
|
sta domask
|
||||||
|
pla
|
||||||
|
sta argexp
|
||||||
|
pla
|
||||||
|
sta argho
|
||||||
|
pla
|
||||||
|
sta argmoh
|
||||||
|
pla
|
||||||
|
sta argmo
|
||||||
|
pla
|
||||||
|
sta arglo
|
||||||
|
pla
|
||||||
|
sta argsgn
|
||||||
|
eor facsgn
|
||||||
|
sta arisgn
|
||||||
|
qoprts lda facexp
|
||||||
|
unprts rts
|
||||||
|
|
||||||
|
eval jmp (ieval)
|
||||||
|
neval lda #0
|
||||||
|
sta valtyp
|
||||||
|
eval0 jsr chrget
|
||||||
|
bcs eval2
|
||||||
|
eval1 jmp fin
|
||||||
|
eval2 jsr isletc
|
||||||
|
bcc *+5
|
||||||
|
jmp isvar
|
||||||
|
cmp #pi
|
||||||
|
bne qdot
|
||||||
|
lda #<pival
|
||||||
|
ldy #>pival
|
||||||
|
jsr movfm
|
||||||
|
jmp chrget
|
||||||
|
pival .byt $82
|
||||||
|
.byt $49
|
||||||
|
.byt $0f
|
||||||
|
.byt $da
|
||||||
|
.byt $a1
|
||||||
|
qdot cmp #'.'
|
||||||
|
beq eval1
|
||||||
|
cmp #minutk
|
||||||
|
beq domin
|
||||||
|
cmp #plustk
|
||||||
|
beq eval0
|
||||||
|
cmp #34
|
||||||
|
bne eval3
|
||||||
|
strtxt lda txtptr
|
||||||
|
ldy txtptr+1
|
||||||
|
adc #0
|
||||||
|
bcc strtx2
|
||||||
|
iny
|
||||||
|
strtx2 jsr strlit
|
||||||
|
jmp st2txt
|
||||||
|
eval3 cmp #nottk
|
||||||
|
bne eval4
|
||||||
|
ldy #24
|
||||||
|
bne gonprc
|
||||||
|
notop jsr ayint
|
||||||
|
lda faclo
|
||||||
|
eor #255
|
||||||
|
tay
|
||||||
|
lda facmo
|
||||||
|
eor #255
|
||||||
|
jmp givayf
|
||||||
|
eval4 cmp #fntk
|
||||||
|
bne *+5
|
||||||
|
jmp fndoer
|
||||||
|
cmp #onefun
|
||||||
|
bcc parchk
|
||||||
|
jmp isfun
|
||||||
|
parchk jsr chkopn
|
||||||
|
jsr frmevl
|
||||||
|
chkcls lda #41
|
||||||
|
.byt $2c
|
||||||
|
chkopn lda #40
|
||||||
|
.byt $2c
|
||||||
|
chkcom lda #44
|
||||||
|
synchr ldy #0
|
||||||
|
cmp (txtptr),y
|
||||||
|
bne snerr
|
||||||
|
jmp chrget
|
||||||
|
snerr ldx #errsn
|
||||||
|
jmp error
|
||||||
|
domin ldy #21
|
||||||
|
gonprc pla
|
||||||
|
pla
|
||||||
|
jmp negprc
|
||||||
|
|
||||||
+144
@@ -0,0 +1,144 @@
|
|||||||
|
addprc =1
|
||||||
|
romloc =$a000 ;vic-40 basic rom
|
||||||
|
linlen =40 ;vic screen size ?why?
|
||||||
|
buflen =89 ;vic buffer
|
||||||
|
bufpag =2
|
||||||
|
buf =512
|
||||||
|
stkend =507
|
||||||
|
clmwid =10 ;print window 10 chars
|
||||||
|
pi =255
|
||||||
|
numlev =23
|
||||||
|
strsiz =3
|
||||||
|
.segment "ZPBASIC" : zeropage
|
||||||
|
blank0 .res 3 ;6510 register area
|
||||||
|
adray1 .res 2 ;convert float->integer
|
||||||
|
adray2 .res 2 ;convert integer->float
|
||||||
|
integr
|
||||||
|
charac .res 1
|
||||||
|
endchr .res 1
|
||||||
|
trmpos .res 1
|
||||||
|
verck .res 1
|
||||||
|
count .res 1
|
||||||
|
dimflg .res 1
|
||||||
|
valtyp .res 1
|
||||||
|
intflg .res 1
|
||||||
|
garbfl
|
||||||
|
dores .res 1
|
||||||
|
subflg .res 1
|
||||||
|
inpflg .res 1
|
||||||
|
domask
|
||||||
|
tansgn .res 1
|
||||||
|
channl .res 1
|
||||||
|
poker
|
||||||
|
linnum .res 2
|
||||||
|
temppt .res 1
|
||||||
|
lastpt .res 2
|
||||||
|
tempst .res 9
|
||||||
|
index
|
||||||
|
index1 .res 2
|
||||||
|
index2 .res 2
|
||||||
|
resho .res 1
|
||||||
|
resmoh .res 1
|
||||||
|
addend
|
||||||
|
resmo .res 1
|
||||||
|
reslo .res 1
|
||||||
|
.res 1
|
||||||
|
txttab .res 2
|
||||||
|
vartab .res 2
|
||||||
|
arytab .res 2
|
||||||
|
strend .res 2
|
||||||
|
fretop .res 2
|
||||||
|
frespc .res 2
|
||||||
|
memsiz .res 2
|
||||||
|
curlin .res 2
|
||||||
|
oldlin .res 2
|
||||||
|
oldtxt .res 2
|
||||||
|
datlin .res 2
|
||||||
|
datptr .res 2
|
||||||
|
inpptr .res 2
|
||||||
|
varnam .res 2
|
||||||
|
fdecpt
|
||||||
|
varpnt .res 2
|
||||||
|
lstpnt
|
||||||
|
andmsk
|
||||||
|
forpnt .res 2
|
||||||
|
eormsk =forpnt+1
|
||||||
|
vartxt
|
||||||
|
opptr .res 2
|
||||||
|
opmask .res 1
|
||||||
|
grbpnt
|
||||||
|
tempf3
|
||||||
|
defpnt .res 2
|
||||||
|
dscpnt .res 2
|
||||||
|
.res 1
|
||||||
|
four6 .res 1
|
||||||
|
jmper .res 1
|
||||||
|
size .res 1
|
||||||
|
oldov .res 1
|
||||||
|
tempf1 .res 1
|
||||||
|
arypnt
|
||||||
|
highds .res 2
|
||||||
|
hightr .res 2
|
||||||
|
tempf2
|
||||||
|
.res 1
|
||||||
|
deccnt
|
||||||
|
lowds .res 2
|
||||||
|
grbtop
|
||||||
|
dptflg
|
||||||
|
lowtr .res 1
|
||||||
|
expsgn .res 1
|
||||||
|
tenexp =lowds+1
|
||||||
|
epsgn =lowtr+1
|
||||||
|
dsctmp
|
||||||
|
fac
|
||||||
|
facexp .res 1
|
||||||
|
facho .res 1
|
||||||
|
facmoh .res 1
|
||||||
|
indice
|
||||||
|
facmo .res 1
|
||||||
|
faclo .res 1
|
||||||
|
facsgn .res 1
|
||||||
|
degree
|
||||||
|
sgnflg .res 1
|
||||||
|
bits .res 1
|
||||||
|
argexp .res 1
|
||||||
|
argho .res 1
|
||||||
|
argmoh .res 1
|
||||||
|
argmo .res 1
|
||||||
|
arglo .res 1
|
||||||
|
argsgn .res 1
|
||||||
|
strngi
|
||||||
|
arisgn .res 1
|
||||||
|
facov .res 1
|
||||||
|
bufptr
|
||||||
|
strng2
|
||||||
|
polypt
|
||||||
|
curtol
|
||||||
|
fbufpt .res 2
|
||||||
|
chrget .res 6
|
||||||
|
chrgot .res 1
|
||||||
|
txtptr .res 6
|
||||||
|
qnum .res 10
|
||||||
|
chrrts .res 1
|
||||||
|
rndx .res 5
|
||||||
|
|
||||||
|
.segment "STRTMP" : zeropage
|
||||||
|
lofbuf .res 1
|
||||||
|
fbuffr .res 1
|
||||||
|
strng1 =arisgn
|
||||||
|
;
|
||||||
|
.segment "BVECTORS" ;basic indirects
|
||||||
|
ierror .res 2 ;indirect error (output error in .x)
|
||||||
|
imain .res 2 ;indirect main (system direct loop)
|
||||||
|
icrnch .res 2 ;indirect crunch (tokenization routine)
|
||||||
|
iqplop .res 2 ;indirect list (char list)
|
||||||
|
igone .res 2 ;indirect gone (char dispatch)
|
||||||
|
ieval .res 2 ;indirect eval (symbol evaluation)
|
||||||
|
;temp storage untill system intergration
|
||||||
|
; sys 6502 regs
|
||||||
|
sareg .res 1 ;.a reg
|
||||||
|
sxreg .res 1 ;.x reg
|
||||||
|
syreg .res 1 ;.y reg
|
||||||
|
spreg .res 1 ;.p reg
|
||||||
|
usrpok .res 3 ;user function dispatch
|
||||||
|
|
||||||
+129
@@ -0,0 +1,129 @@
|
|||||||
|
panic jsr clschn ;warm start basic...
|
||||||
|
lda #0 ;clear channels
|
||||||
|
sta channl
|
||||||
|
jsr stkini ;restore stack
|
||||||
|
cli ;enable irq's
|
||||||
|
|
||||||
|
ready ldx #$80
|
||||||
|
jmp (ierror)
|
||||||
|
nerror txa ;get high bit
|
||||||
|
bmi nready
|
||||||
|
jmp nerrox
|
||||||
|
nready jmp readyx
|
||||||
|
|
||||||
|
init jsr initv ;go init vectors
|
||||||
|
jsr initcz ;go init charget & z-page
|
||||||
|
jsr initms ;go print initilization messages
|
||||||
|
ldx #stkend-256 ;set up end of stack
|
||||||
|
txs
|
||||||
|
bne ready ;jmp...ready
|
||||||
|
|
||||||
|
initat inc chrget+7
|
||||||
|
bne chdgot
|
||||||
|
inc chrget+8
|
||||||
|
chdgot lda 60000
|
||||||
|
cmp #':'
|
||||||
|
bcs chdrts
|
||||||
|
cmp #' '
|
||||||
|
beq initat
|
||||||
|
sec
|
||||||
|
sbc #'0'
|
||||||
|
sec
|
||||||
|
sbc #$d0
|
||||||
|
chdrts rts
|
||||||
|
.byt 128,79,199,82,88
|
||||||
|
|
||||||
|
initcz lda #76
|
||||||
|
sta jmper
|
||||||
|
sta usrpok
|
||||||
|
lda #<fcerr
|
||||||
|
ldy #>fcerr
|
||||||
|
sta usrpok+1
|
||||||
|
sty usrpok+2
|
||||||
|
lda #<givayf
|
||||||
|
ldy #>givayf
|
||||||
|
sta adray2
|
||||||
|
sty adray2+1
|
||||||
|
lda #<flpint
|
||||||
|
ldy #>flpint
|
||||||
|
sta adray1
|
||||||
|
sty adray1+1
|
||||||
|
ldx #initcz-initat-1
|
||||||
|
movchg lda initat,x
|
||||||
|
sta chrget,x
|
||||||
|
dex
|
||||||
|
bpl movchg
|
||||||
|
lda #strsiz
|
||||||
|
sta four6
|
||||||
|
lda #0
|
||||||
|
sta bits
|
||||||
|
sta channl
|
||||||
|
sta lastpt+1
|
||||||
|
ldx #1
|
||||||
|
stx buf-3
|
||||||
|
stx buf-4
|
||||||
|
ldx #tempst
|
||||||
|
stx temppt
|
||||||
|
sec ;read bottom of memory
|
||||||
|
jsr $ff9c
|
||||||
|
stx txttab ;now txtab has it
|
||||||
|
sty txttab+1
|
||||||
|
sec
|
||||||
|
jsr $ff99 ;read top of memory
|
||||||
|
usedef stx memsiz
|
||||||
|
sty memsiz+1
|
||||||
|
stx fretop
|
||||||
|
sty fretop+1
|
||||||
|
ldy #0
|
||||||
|
tya
|
||||||
|
sta (txttab),y
|
||||||
|
inc txttab
|
||||||
|
bne init20
|
||||||
|
inc txttab+1
|
||||||
|
init20 rts
|
||||||
|
|
||||||
|
initms lda txttab
|
||||||
|
ldy txttab+1
|
||||||
|
jsr reason
|
||||||
|
lda #<fremes
|
||||||
|
ldy #>fremes
|
||||||
|
jsr strout
|
||||||
|
lda memsiz
|
||||||
|
sec
|
||||||
|
sbc txttab
|
||||||
|
tax
|
||||||
|
lda memsiz+1
|
||||||
|
sbc txttab+1
|
||||||
|
jsr linprt
|
||||||
|
lda #<words
|
||||||
|
ldy #>words
|
||||||
|
jsr strout
|
||||||
|
jmp scrtch
|
||||||
|
|
||||||
|
bvtrs .word nerror,nmain,ncrnch,nqplop,ngone,neval
|
||||||
|
;
|
||||||
|
initv ldx #initv-bvtrs-1 ;init vectors
|
||||||
|
initv1 lda bvtrs,x
|
||||||
|
sta ierror,x
|
||||||
|
dex
|
||||||
|
bpl initv1
|
||||||
|
rts
|
||||||
|
chke0 .byt $00
|
||||||
|
|
||||||
|
words .byt " BYTES FREE",13,0
|
||||||
|
fremes .byt 147,13,"INSANITY'S WOZROM 0.5"
|
||||||
|
.byt 13,13,"SHIFT/RUN FOR WOZMON ",0
|
||||||
|
.byt 0
|
||||||
|
; ppach - print# patch to coout (save .a)
|
||||||
|
;
|
||||||
|
ppach pha
|
||||||
|
jsr $ffc9
|
||||||
|
tax ;save error code
|
||||||
|
pla
|
||||||
|
bcc ppach0 ;no error....
|
||||||
|
txa ;error code
|
||||||
|
ppach0 rts
|
||||||
|
|
||||||
|
;rsr 8/10/80 update panic :rem could use in error routine
|
||||||
|
;rsr 2/08/82 modify for vic-40 release
|
||||||
|
;rsr 4/15/82 add advertising sign-on
|
||||||
+251
@@ -0,0 +1,251 @@
|
|||||||
|
.byt "TAB",$a8
|
||||||
|
tabtk =$a3
|
||||||
|
.byt "T",$cf
|
||||||
|
totk =$a4
|
||||||
|
.byt "F",$ce
|
||||||
|
fntk =$a5
|
||||||
|
.byt "SPC",$a8
|
||||||
|
spctk =$a6
|
||||||
|
.byt "THE",$ce
|
||||||
|
thentk =$a7
|
||||||
|
.byt "NO",$d4
|
||||||
|
nottk =$a8
|
||||||
|
.byt "STE",$d0
|
||||||
|
steptk =$a9
|
||||||
|
.byt $ab
|
||||||
|
plustk =$aa
|
||||||
|
.byt $ad
|
||||||
|
minutk =$ab
|
||||||
|
.byt $aa
|
||||||
|
.byt $af
|
||||||
|
.byt $de
|
||||||
|
.byt "AN",$c4
|
||||||
|
.byt "O",$d2
|
||||||
|
.byt 190
|
||||||
|
greatk =$b1
|
||||||
|
.byt $bd
|
||||||
|
equltk =$b2
|
||||||
|
.byt 188
|
||||||
|
lesstk =$b3
|
||||||
|
.byt "SG",$ce
|
||||||
|
onefun =$b4
|
||||||
|
.byt "IN",$d4
|
||||||
|
.byt "AB",$d3
|
||||||
|
.byt "US",$d2
|
||||||
|
.byt "FR",$c5
|
||||||
|
.byt "PO",$d3
|
||||||
|
.byt "SQ",$d2
|
||||||
|
.byt "RN",$c4
|
||||||
|
.byt "LO",$c7
|
||||||
|
.byt "EX",$d0
|
||||||
|
.byt "CO",$d3
|
||||||
|
.byt "SI",$ce
|
||||||
|
.byt "TA",$ce
|
||||||
|
.byt "AT",$ce
|
||||||
|
.byt "PEE",$cb
|
||||||
|
.byt "LE",$ce
|
||||||
|
.byt "STR",$a4
|
||||||
|
.byt "VA",$cc
|
||||||
|
.byt "AS",$c3
|
||||||
|
.byt "CHR",$a4
|
||||||
|
lasnum =$c7
|
||||||
|
.byt "LEFT",$a4
|
||||||
|
.byt "RIGHT",$a4
|
||||||
|
.byt "MID",$a4
|
||||||
|
.byt "G",$cf
|
||||||
|
gotk =$cb
|
||||||
|
.byt 0
|
||||||
|
|
||||||
|
err01 .byt "TOO MANY FILE",$d3
|
||||||
|
err02 .byt "FILE OPE",$ce
|
||||||
|
err03 .byt "FILE NOT OPE",$ce
|
||||||
|
err04 .byt "FILE NOT FOUN",$c4
|
||||||
|
err05 .byt "DEVICE NOT PRESEN",$d4
|
||||||
|
err06 .byt "NOT INPUT FIL",$c5
|
||||||
|
err07 .byt "NOT OUTPUT FIL",$c5
|
||||||
|
err08 .byt "MISSING FILE NAM",$c5
|
||||||
|
err09 .byt "ILLEGAL DEVICE NUMBE",$d2
|
||||||
|
err10 .byt "NEXT WITHOUT FO",$d2
|
||||||
|
errnf =10
|
||||||
|
err11 .byt "SYNTA",$d8
|
||||||
|
errsn =11
|
||||||
|
err12 .byt "RETURN WITHOUT GOSU",$c2
|
||||||
|
errrg =12
|
||||||
|
err13 .byt "OUT OF DAT",$c1
|
||||||
|
errod =13
|
||||||
|
err14 .byt "ILLEGAL QUANTIT",$d9
|
||||||
|
errfc =14
|
||||||
|
err15 .byt "OVERFLO",$d7
|
||||||
|
errov =15
|
||||||
|
err16 .byt "OUT OF MEMOR",$d9
|
||||||
|
errom =16
|
||||||
|
err17 .byt "UNDEF",$27
|
||||||
|
.byt "D STATEMEN",$d4
|
||||||
|
errus =17
|
||||||
|
err18 .byt "BAD SUBSCRIP",$d4
|
||||||
|
errbs =18
|
||||||
|
err19 .byt "REDIM",$27,"D ARRA",$d9
|
||||||
|
errdd =19
|
||||||
|
err20 .byt "DIVISION BY ZER",$cf
|
||||||
|
errdvo =20
|
||||||
|
err21 .byt "ILLEGAL DIREC",$d4
|
||||||
|
errid =21
|
||||||
|
err22 .byt "TYPE MISMATC",$c8
|
||||||
|
errtm =22
|
||||||
|
err23 .byt "STRING TOO LON",$c7
|
||||||
|
errls =23
|
||||||
|
err24 .byt "FILE DAT",$c1
|
||||||
|
errbd =24
|
||||||
|
err25 .byt "FORMULA TOO COMPLE",$d8
|
||||||
|
errst =25
|
||||||
|
err26 .byt "CAN",$27,"T CONTINU",$c5
|
||||||
|
errcn =26
|
||||||
|
err27 .byt "UNDEF",$27,"D FUNCTIO",$ce
|
||||||
|
erruf =27
|
||||||
|
err28 .byt "VERIF",$d9
|
||||||
|
ervfy =28
|
||||||
|
err29 .byt "LOA",$c4
|
||||||
|
erload =29
|
||||||
|
|
||||||
|
; table to translate error message #
|
||||||
|
; to address of string containing message
|
||||||
|
;
|
||||||
|
errtab .word err01
|
||||||
|
.word err02
|
||||||
|
.word err03
|
||||||
|
.word err04
|
||||||
|
.word err05
|
||||||
|
.word err06
|
||||||
|
.word err07
|
||||||
|
.word err08
|
||||||
|
.word err09
|
||||||
|
.word err10
|
||||||
|
.word err11
|
||||||
|
.word err12
|
||||||
|
.word err13
|
||||||
|
.word err14
|
||||||
|
.word err15
|
||||||
|
.word err16
|
||||||
|
.word err17
|
||||||
|
.word err18
|
||||||
|
.word err19
|
||||||
|
.word err20
|
||||||
|
.word err21
|
||||||
|
.word err22
|
||||||
|
.word err23
|
||||||
|
.word err24
|
||||||
|
.word err25
|
||||||
|
.word err26
|
||||||
|
.word err27
|
||||||
|
.word err28
|
||||||
|
.word err29
|
||||||
|
.word err30
|
||||||
|
|
||||||
|
okmsg .byt $d,"OK",$d,$0
|
||||||
|
err .byt $20," ERROR",0 ;add a space for vic-40 screen
|
||||||
|
intxt .byt " IN ",0
|
||||||
|
reddy .byt $d,$a,"READY.",$d,$a,0
|
||||||
|
erbrk =30
|
||||||
|
brktxt .byt $d,$a
|
||||||
|
err30 .byt "BREAK",0,$a0 ;shifted space
|
||||||
|
|
||||||
|
forsiz =$12
|
||||||
|
fndfor tsx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
ffloop lda 257,x
|
||||||
|
cmp #fortk
|
||||||
|
bne ffrts
|
||||||
|
lda forpnt+1
|
||||||
|
bne cmpfor
|
||||||
|
lda 258,x
|
||||||
|
sta forpnt
|
||||||
|
lda 259,x
|
||||||
|
sta forpnt+1
|
||||||
|
cmpfor cmp 259,x
|
||||||
|
bne addfrs
|
||||||
|
lda forpnt
|
||||||
|
cmp 258,x
|
||||||
|
beq ffrts
|
||||||
|
addfrs txa
|
||||||
|
clc
|
||||||
|
adc #forsiz
|
||||||
|
tax
|
||||||
|
bne ffloop
|
||||||
|
ffrts rts
|
||||||
|
bltu jsr reason
|
||||||
|
sta strend
|
||||||
|
sty strend+1
|
||||||
|
bltuc sec
|
||||||
|
lda hightr
|
||||||
|
sbc lowtr
|
||||||
|
sta index
|
||||||
|
tay
|
||||||
|
lda hightr+1
|
||||||
|
sbc lowtr+1
|
||||||
|
tax
|
||||||
|
inx
|
||||||
|
tya
|
||||||
|
beq decblt
|
||||||
|
lda hightr
|
||||||
|
sec
|
||||||
|
sbc index
|
||||||
|
sta hightr
|
||||||
|
bcs blt1
|
||||||
|
dec hightr+1
|
||||||
|
sec
|
||||||
|
blt1 lda highds
|
||||||
|
sbc index
|
||||||
|
sta highds
|
||||||
|
bcs moren1
|
||||||
|
dec highds+1
|
||||||
|
bcc moren1
|
||||||
|
bltlp lda (hightr),y
|
||||||
|
sta (highds),y
|
||||||
|
moren1 dey
|
||||||
|
bne bltlp
|
||||||
|
lda (hightr),y
|
||||||
|
sta (highds),y
|
||||||
|
decblt dec hightr+1
|
||||||
|
dec highds+1
|
||||||
|
dex
|
||||||
|
bne moren1
|
||||||
|
rts
|
||||||
|
getstk asl a
|
||||||
|
adc #numlev+numlev+16
|
||||||
|
bcs omerr
|
||||||
|
sta index
|
||||||
|
tsx
|
||||||
|
cpx index
|
||||||
|
bcc omerr
|
||||||
|
rts
|
||||||
|
reason cpy fretop+1
|
||||||
|
bcc rearts
|
||||||
|
bne trymor
|
||||||
|
cmp fretop
|
||||||
|
bcc rearts
|
||||||
|
trymor pha
|
||||||
|
ldx #8+addprc
|
||||||
|
tya
|
||||||
|
reasav pha
|
||||||
|
lda highds-1,x
|
||||||
|
dex
|
||||||
|
bpl reasav
|
||||||
|
jsr garba2
|
||||||
|
ldx #248-addprc
|
||||||
|
reasto pla
|
||||||
|
sta highds+8+addprc,x
|
||||||
|
inx
|
||||||
|
bmi reasto
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
cpy fretop+1
|
||||||
|
bcc rearts
|
||||||
|
bne omerr
|
||||||
|
cmp fretop
|
||||||
|
bcs omerr
|
||||||
|
rearts rts
|
||||||
|
|
||||||
+127
@@ -0,0 +1,127 @@
|
|||||||
|
.segment "LOBASIC"
|
||||||
|
.word init ;c000 hard reset
|
||||||
|
.word panic ;c000 soft reset
|
||||||
|
.byt "CBMBASIC"
|
||||||
|
stmdsp .word end-1
|
||||||
|
.word for-1
|
||||||
|
.word next-1
|
||||||
|
.word data-1
|
||||||
|
.word inputn-1
|
||||||
|
.word input-1
|
||||||
|
.word dim-1
|
||||||
|
.word read-1
|
||||||
|
.word let-1
|
||||||
|
.word goto-1
|
||||||
|
.word run-1
|
||||||
|
.word if-1
|
||||||
|
.word restor-1
|
||||||
|
.word gosub-1
|
||||||
|
.word return-1
|
||||||
|
.word rem-1
|
||||||
|
.word stop-1
|
||||||
|
.word ongoto-1
|
||||||
|
.word fnwait-1
|
||||||
|
.word cload-1
|
||||||
|
.word csave-1
|
||||||
|
.word cverf-1
|
||||||
|
.word def-1
|
||||||
|
.word poke-1
|
||||||
|
.word printn-1
|
||||||
|
.word print-1
|
||||||
|
.word cont-1
|
||||||
|
.word list-1
|
||||||
|
.word clear-1
|
||||||
|
.word cmd-1
|
||||||
|
.word csys-1
|
||||||
|
.word copen-1
|
||||||
|
.word cclos-1
|
||||||
|
.word get-1
|
||||||
|
.word scrath-1
|
||||||
|
fundsp .word sgn
|
||||||
|
.word int
|
||||||
|
.word abs
|
||||||
|
usrloc .word usrpok
|
||||||
|
.word fre
|
||||||
|
.word pos
|
||||||
|
.word sqr
|
||||||
|
.word rnd
|
||||||
|
.word log
|
||||||
|
.word exp
|
||||||
|
.word cos
|
||||||
|
.word sin
|
||||||
|
.word tan
|
||||||
|
.word atn
|
||||||
|
.word peek
|
||||||
|
.word len
|
||||||
|
.word strd
|
||||||
|
.word val
|
||||||
|
.word asc
|
||||||
|
.word chrd
|
||||||
|
.word leftd
|
||||||
|
.word rightd
|
||||||
|
.word midd
|
||||||
|
optab .byt 121
|
||||||
|
.word faddt-1
|
||||||
|
.byt 121
|
||||||
|
.word fsubt-1
|
||||||
|
.byt 123
|
||||||
|
.word fmultt-1
|
||||||
|
.byt 123
|
||||||
|
.word fdivt-1
|
||||||
|
.byt 127
|
||||||
|
.word fpwrt-1
|
||||||
|
.byt 80
|
||||||
|
.word andop-1
|
||||||
|
.byt 70
|
||||||
|
.word orop-1
|
||||||
|
negtab .byt 125
|
||||||
|
.word negop-1
|
||||||
|
nottab .byt 90
|
||||||
|
.word notop-1
|
||||||
|
ptdorl .byt 100
|
||||||
|
.word dorel-1
|
||||||
|
q=128-1
|
||||||
|
reslst .byt "EN",$c4
|
||||||
|
endtk =$80
|
||||||
|
.byt "FO",$d2
|
||||||
|
fortk =$81
|
||||||
|
.byt "NEX",$d4
|
||||||
|
.byt "DAT",$c1
|
||||||
|
datatk =$83
|
||||||
|
.byt "INPUT",$a3
|
||||||
|
.byt "INPU",$d4
|
||||||
|
.byt "DI",$cd
|
||||||
|
.byt "REA",$c4
|
||||||
|
.byt "LE",$d4
|
||||||
|
.byt "GOT",$cf
|
||||||
|
gototk =$89
|
||||||
|
.byt "RU",$ce
|
||||||
|
.byt "I",$c6
|
||||||
|
.byt "RESTOR",$c5
|
||||||
|
.byt "GOSU",$c2
|
||||||
|
gosutk =$8d
|
||||||
|
.byt "RETUR",$ce
|
||||||
|
.byt "RE",$cd
|
||||||
|
remtk =$8f
|
||||||
|
.byt "STO",$d0
|
||||||
|
.byt "O",$ce
|
||||||
|
.byt "WAI",$d4
|
||||||
|
.byt "LOA",$c4
|
||||||
|
.byt "SAV",$c5
|
||||||
|
.byt "VERIF",$d9
|
||||||
|
.byt "DE",$c6
|
||||||
|
.byt "POK",$c5
|
||||||
|
.byt "PRINT",$a3
|
||||||
|
.byt "PRIN",$d4
|
||||||
|
printk =$99
|
||||||
|
.byt "CON",$d4
|
||||||
|
.byt "LIS",$d4
|
||||||
|
.byt "CL",$d2
|
||||||
|
.byt "CM",$c4
|
||||||
|
.byt "SY",$d3
|
||||||
|
.byt "OPE",$ce
|
||||||
|
.byt "CLOS",$c5
|
||||||
|
.byt "GE",$d4
|
||||||
|
.byt "NE",$d7
|
||||||
|
scratk =$a2
|
||||||
|
|
||||||
+101
@@ -0,0 +1,101 @@
|
|||||||
|
cos lda #<pi2
|
||||||
|
ldy #>pi2
|
||||||
|
jsr fadd
|
||||||
|
sin jsr movaf
|
||||||
|
lda #<twopi
|
||||||
|
ldy #>twopi
|
||||||
|
ldx argsgn
|
||||||
|
jsr fdivf
|
||||||
|
jsr movaf
|
||||||
|
jsr int
|
||||||
|
lda #0
|
||||||
|
sta arisgn
|
||||||
|
jsr fsubt
|
||||||
|
lda #<fr4
|
||||||
|
ldy #>fr4
|
||||||
|
jsr fsub
|
||||||
|
lda facsgn
|
||||||
|
pha
|
||||||
|
bpl sin1
|
||||||
|
jsr faddh
|
||||||
|
lda facsgn
|
||||||
|
bmi sin2
|
||||||
|
lda tansgn
|
||||||
|
eor #$ff
|
||||||
|
sta tansgn
|
||||||
|
sin1 jsr negop
|
||||||
|
sin2 lda #<fr4
|
||||||
|
ldy #>fr4
|
||||||
|
jsr fadd
|
||||||
|
pla
|
||||||
|
bpl sin3
|
||||||
|
jsr negop
|
||||||
|
sin3 lda #<sincon
|
||||||
|
ldy #>sincon
|
||||||
|
jmp polyx
|
||||||
|
tan jsr mov1f
|
||||||
|
lda #0
|
||||||
|
sta tansgn
|
||||||
|
jsr sin
|
||||||
|
ldx #<tempf3
|
||||||
|
ldy #>tempf3
|
||||||
|
jsr gmovmf
|
||||||
|
lda #<tempf1
|
||||||
|
ldy #>tempf1
|
||||||
|
jsr movfm
|
||||||
|
lda #0
|
||||||
|
sta facsgn
|
||||||
|
lda tansgn
|
||||||
|
jsr cosc
|
||||||
|
lda #<tempf3
|
||||||
|
ldy #>tempf3
|
||||||
|
jmp fdiv
|
||||||
|
cosc pha
|
||||||
|
jmp sin1
|
||||||
|
pi2 .byt $81,$49,$0f,$da,$a2
|
||||||
|
twopi .byt $83,$49,$0f,$da,$a2
|
||||||
|
fr4 .byt $7f,$00,$00,$00,$00
|
||||||
|
sincon .byt $05,$84,$e6,$1a,$2d
|
||||||
|
.byt $1b,$86,$28,$07,$fb
|
||||||
|
.byt $f8,$87,$99,$68,$89
|
||||||
|
.byt $01,$87,$23,$35,$df,$e1
|
||||||
|
.byt $86,$a5,$5d,$e7,$28,$83
|
||||||
|
.byt $49,$f,$da,$a2
|
||||||
|
atn lda facsgn
|
||||||
|
pha
|
||||||
|
bpl atn1
|
||||||
|
jsr negop
|
||||||
|
atn1 lda facexp
|
||||||
|
pha
|
||||||
|
cmp #$81
|
||||||
|
bcc atn2
|
||||||
|
lda #<fone
|
||||||
|
ldy #>fone
|
||||||
|
jsr fdiv
|
||||||
|
atn2 lda #<atncon
|
||||||
|
ldy #>atncon
|
||||||
|
jsr polyx
|
||||||
|
pla
|
||||||
|
cmp #$81
|
||||||
|
bcc atn3
|
||||||
|
lda #<pi2
|
||||||
|
ldy #>pi2
|
||||||
|
jsr fsub
|
||||||
|
atn3 pla
|
||||||
|
bpl atn4
|
||||||
|
jmp negop
|
||||||
|
atn4 rts
|
||||||
|
atncon .byt $0b,$76,$b3,$83
|
||||||
|
.byt $bd,$d3,$79,$1e,$f4
|
||||||
|
.byt $a6,$f5,$7b,$83,$fc
|
||||||
|
.byt $b0,$10
|
||||||
|
.byt $7c,$0c,$1f,$67,$ca
|
||||||
|
.byt $7c,$de,$53,$cb,$c1
|
||||||
|
.byt $7d,$14,$64,$70,$4c
|
||||||
|
.byt $7d,$b7,$ea,$51,$7a
|
||||||
|
.byt $7d,$63,$30,$88,$7e
|
||||||
|
.byt $7e,$92,$44,$99,$3a
|
||||||
|
.byt $7e,$4c,$cc,$91,$c7
|
||||||
|
.byt $7f,$aa,$aa,$aa,$13
|
||||||
|
.byt $81,0,0,0,0
|
||||||
|
|
||||||
Reference in New Issue
Block a user