116 lines
4.0 KiB
Tal
116 lines
4.0 KiB
Tal
|100
|
|
LIT2r 0000
|
|
|
|
!{ @mp $2 } #0000 ;mp STA2
|
|
!{ @ip $2 } #0000 ;ip STA2
|
|
&while.0 ;ip LDA2 ;code LDA2 LTH2 #03 JCN !{
|
|
;code #0002 ADD2 ;ip LDA2 ADD2 LDA #3e EQU #03 JCN !{
|
|
;mp LDA2 #0001 ADD2 ;mp STA2
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #3c EQU #03 JCN !{
|
|
;mp LDA2 #0001 SUB2 ;mp STA2
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #2b EQU #03 JCN !{
|
|
;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 ;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 LDA #01 ADD ROT ROT STA
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #2d EQU #03 JCN !{
|
|
;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 ;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 LDA #01 SUB ROT ROT STA
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #2e EQU #03 JCN !{
|
|
;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 LDA #18 DEO
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #2c EQU #03 JCN !{
|
|
;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 #12 DEI ROT ROT STA
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #5b EQU #03 JCN !{
|
|
;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 LDA #0000 EQU2 #03 JCN !{
|
|
STH2kr LDA2
|
|
#0001 STH2kr STA2
|
|
|
|
&while.1 STH2kr LDA2 #0000 GTH2 #03 JCN !{
|
|
;ip LDA2 #0001 ADD2 ;ip STA2
|
|
;code #0002 ADD2 ;ip LDA2 ADD2 LDA #5b EQU #03 JCN !{
|
|
STH2kr LDA2 #0001 ADD2 STH2kr STA2
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #5d EQU #03 JCN !{
|
|
STH2kr LDA2 #0001 SUB2 STH2kr STA2
|
|
!&if_end.0 } !&while.1 }
|
|
!&if_end.0 } !&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #5d EQU #03 JCN !{
|
|
;memory ;mp LDA2 #0002 MUL2 ADD2 #0002 ADD2 LDA #03 JCN !{
|
|
STH2kr LDA2
|
|
#0001 STH2kr STA2
|
|
|
|
&while.2 STH2kr LDA2 #0000 GTH2 #03 JCN !{
|
|
;ip LDA2 #0001 SUB2 ;ip STA2
|
|
;code #0002 ADD2 ;ip LDA2 ADD2 LDA #5d EQU #03 JCN !{
|
|
STH2kr LDA2 #0001 ADD2 STH2kr STA2
|
|
!&if_end.0 } ;code #0002 ADD2 ;ip LDA2 ADD2 LDA #5b EQU #03 JCN !{
|
|
STH2kr LDA2 #0001 SUB2 STH2kr STA2
|
|
!&if_end.0 } !&while.2 }
|
|
!&if_end.0 } !&if_end.0 } &if_end.0
|
|
;ip LDA2 #0001 ADD2 ;ip STA2
|
|
!&while.0 }
|
|
POP2r BRK
|
|
@sext
|
|
#80 ANDk EQU #ff MUL SWP JMP2r
|
|
|
|
@aalloc_ ( size* -- result* )
|
|
OVR2r LIT2r 0004 SUB2r STH2kr INC2 INC2 STA2
|
|
;mem_length_ LDA2 STH2kr STA2
|
|
;mem_length_ LDA2k STH2kr INC2 INC2 LDA2 ADD2 SWP2 STA2
|
|
;mem_ STH2kr LDA2 ADD2 !&return
|
|
#0000
|
|
|
|
&return
|
|
POP2r JMP2r
|
|
|
|
@afree_ ( -- result* )
|
|
OVR2r #0000 ;mem_length_ STA2
|
|
#0000
|
|
|
|
&return
|
|
POP2r JMP2r
|
|
|
|
@amcpy_ ( length* from* -- result* )
|
|
OVR2r LIT2r 000a SUB2r STH2kr #0008 ADD2 STA2
|
|
STH2kr #0006 ADD2 STA2
|
|
STH2kr #0006 ADD2 LDA2 INC2 INC2 STH2kr #0004 ADD2 STA2
|
|
STH2kr #0004 ADD2 LDA2 aalloc_
|
|
STH2kr INC2 INC2 STA2
|
|
STH2kr #0006 ADD2 LDA2 #00ff AND2 NIP sext
|
|
STH2kr INC2 INC2 LDA2 STA
|
|
POP STH2kr #0006 ADD2 LDA2 #08 SFT2 #00ff AND2 NIP sext
|
|
STH2kr INC2 INC2 LDA2 INC2 STA
|
|
POP #0000 STH2kr STA2
|
|
|
|
&begin.1
|
|
STH2kr LDA2 STH2kr #0006 ADD2 LDA2 LTH2 #00 EQU ?&break.1
|
|
STH2kr #0008 ADD2 LDA2 STH2kr LDA2 ADD2 LDA sext
|
|
STH2kr INC2 INC2 LDA2 STH2kr LDA2 INC2 INC2 ADD2 STA
|
|
POP
|
|
|
|
&continue.1
|
|
STH2kr LDA2k INC2k ROT2 STA2
|
|
POP2 !&begin.1
|
|
|
|
&break.1
|
|
STH2kr INC2 INC2 LDA2 !&return
|
|
#0000
|
|
|
|
&return
|
|
POP2r JMP2r
|
|
|
|
@nat_to_str_ ( n* -- result* )
|
|
OVR2r LIT2r 000a SUB2r STH2kr #0008 ADD2 STA2
|
|
#0005 STH2kr STA2
|
|
|
|
&begin.1
|
|
STH2kr #0008 ADD2 LDA2 #000a OVR2 OVR2 DIV2 MUL2 SUB2 #0030 ADD2 STH2kr INC2 INC2 STH2kr LDA2k #0001 SUB2 SWP2 STA2k
|
|
POP2 ADD2 STA
|
|
POP STH2kr #0008 ADD2 LDA2k #000a DIV2 SWP2 STA2
|
|
|
|
&continue.1
|
|
#0000 STH2kr #0008 ADD2 LDA2 LTH2 ?&begin.1
|
|
|
|
&break.1
|
|
#0005 STH2kr LDA2 SUB2 STH2kr INC2 INC2 STH2kr LDA2 ADD2 amcpy_
|
|
!&return
|
|
#0000
|
|
|
|
&return
|
|
POP2r JMP2r
|
|
@mem_length_ #0080
|
|
@mem_ @code 007b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 5b 3e 2b 2b 2b 2b 2b 2b 3e 2b 2b 2b 2b 2b 2b 2b 2b 2b 3e 2b 2b 2b 2b 2b 2b 2b 2b 3e 2b 2b 2b 2b 3e 2b 2b 2b 3e 2b 3c 3c 3c 3c 3c 3c 2d 5d 3e 2b 2b 2b 0a 2b 2b 2b 2e 3e 2b 2b 2e 2b 2b 2b 2b 2b 2b 2b 2e 2e 2b 2b 2b 2e 3e 3e 2e 3e 2d 2e 3c 3c 2d 2e 3c 2e 2b 2b 2b 2e 2d 2d 2d 2d 2d 2d 2e 2d 2d 2d 2d 2d 2d 2d 2d 2e 3e 3e 3e 2b 2e 3e 2d 2e 00 @memory 2710 $10000 |