|100 LIT2r 0000 ;msg #0002 ADD2 #0001 ADD2 LDA #64 EQU #03 JCN !{ ;{ #0002 ADD2 } !{ 79 65 73 00 } str/ !&if_end.0 } &if_end.0 ;msg LDA2 nat_to_str_ pln_ ;msg pln_ ;hello #0002 ADD2 #0000 ADD2 ;hello #0002 ADD2 #0000 ADD2 LDA #20 SUB ROT ROT STA ;hello pln_ POP2r BRK @pln_ ( string -- ) OVR2r LIT2r 0004 SUB2r STH2kr STA2 STH2kr #0002 ADD2 LDA2 #0000 STH2kr #0002 ADD2 STA2 &while.0 STH2kr #0002 ADD2 LDA2 STH2kr LDA2 LDA2 LTH2 #03 JCN !{ STH2kr LDA2 #0002 ADD2 STH2kr #0002 ADD2 LDA2 ADD2 LDA #18 DEO STH2kr #0002 ADD2 LDA2 #0001 ADD2 STH2kr #0002 ADD2 STA2 !&while.0 } #0a #18 DEO &return POP2r JMP2r @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 0008 SUB2r STH2kr #0006 ADD2 STA2 STH2kr #0004 ADD2 STA2 STH2kr #0004 ADD2 LDA2 aalloc_ STH2kr INC2 INC2 STA2 #0000 STH2kr STA2 &begin.1 STH2kr LDA2 STH2kr #0004 ADD2 LDA2 LTH2 #00 EQU ?&break.1 STH2kr #0006 ADD2 LDA2 STH2kr LDA2 ADD2 LDA sext STH2kr INC2 INC2 LDA2 STH2kr LDA2 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 @str/ ( str* -- ) LDAk DUP ?{ POP POP2 JMP2r } #18 DEO INC2 !/ @mem_length_ #0022 @mem_ @hello 000c 68 65 6c 6c 6f 20 57 6f 72 6c 64 21 00 @msg 0012 20 64 61 6d 61 67 65 20 69 6e 66 6c 69 63 74 65 64 21 00