@@ 5,18 5,18 @@
|0100
;nil JSR2
- ;cat ;cons JSR2
- ;dog ;cons JSR2
- ;owl ;cons JSR2
+ ;z ;cons JSR2
+ ;y ;cons JSR2
+ ;x ;cons JSR2
;nil JSR2
- ;ant ;cons JSR2
- ;bat ;cons JSR2
- ;cow ;cons JSR2
+ ;c ;cons JSR2
+ ;b ;cons JSR2
+ ;a ;cons JSR2
;nil JSR2
SWP2 ;cons JSR2
SWP2 ;cons JSR2
;echo JSR2
-
+
#0a18 DEO
#010e DEO
#010f DEO
@@ 43,10 43,15 @@ JMP2r
JMP2r
-@eval ( list* -- )
+@pop ( list* -- list* )
- &w LDA2k JSR2 INC2 INC2 LDA2 LDA2k ;nil NEQ2 ,&w JCN
- POP2
+ INC2 INC2 LDA2
+
+JMP2r
+
+@dup ( list* -- list* )
+
+ LDA2k ,cons JSR
JMP2r
@@ 75,17 80,39 @@ JMP2r
#2818 DEO #2018 DEO
&w
- LDA2k INC2 INC2 LDA2 ;nil EQU2 ,&value JCN
- ( list ) LDA2k ;echo JSR2 ,&resume JMP
- &value LDA2k LDA2 ,print JSR #2018 DEO
+ LDA2k INC2 INC2 LDA2 ;nil EQU2 ,&fn JCN
+ ( list )
+ LDA2k ;echo JSR2 ,&resume JMP
+ &fn
+ LDA2k LDA2 ,print JSR #2018 DEO
&resume
- INC2 INC2 LDA2
- LDA2k ;nil NEQ2 ,&w JCN
+ INC2 INC2 LDA2 LDA2k ;nil NEQ2 ,&w JCN
POP2
#2918 DEO #2018 DEO
JMP2r
+@eval ( list* -- )
+
+ DUP2 ;print JSR2 #0a18 DEO
+ &w
+ LDA2k INC2 INC2 LDA2 ;nil EQU2 ,&fn JCN
+ ( list )
+ LDA2k ;eval JSR2 ,&resume JMP
+ &fn
+ LDA2k LDA2 OVR #07 SFT JMP JSR2k POP2
+ &resume
+ INC2 INC2 LDA2 LDA2k ;nil NEQ2 ,&w JCN
+ POP2
+
+JMP2r
+
+@step ( list* -- )
+
+ INC2k INC2 LDA2 SWP2 LDA2 LDA2 JSR2
+
+JMP2r
+
@print ( short* -- )
SWP ,&byte JSR
@@ 96,11 123,11 @@ JMP2r
( some functions )
-@cat 0000 :nil
-@dog 0001 :nil
-@bat 0002 :nil
-@ant 0003 :nil
-@owl 0004 :nil
-@cow 0005 :nil
+@x 8000 :nil
+@y 8001 :nil
+@z 8002 :nil
+@a 8003 :nil
+@b 8004 :nil
+@c 8005 :nil
@memory=
\ No newline at end of file
@@ 8,13 8,8 @@
;z ;cons JSR2
;y ;cons JSR2
;x ;cons JSR2
- ;nil JSR2
- ;c ;cons JSR2
- ;b ;cons JSR2
- ;a ;cons JSR2
- ;nil JSR2
- SWP2 ;cons JSR2
- SWP2 ;cons JSR2
+ ;k ;cons JSR2
+ ;step JSR2
;echo JSR2
#0a18 DEO
@@ 131,19 126,44 @@ JMP2r
@c 8005 :nil
@m :mockingbird :nil
+@t :thrush :nil
+@w :warbler :nil
+@k :kestrel :nil
-( Bekimet )
+( Bekimet Forest )
-@mockingbird ( list* fn* -- )
+@mockingbird ( list* -- list* )
- OVR2
- DUP2 INC2 INC2 LDA2 LDA2 LDA2 ;print JSR2 #0a18 DEO
+ ;dup JSR2
- DUP2 INC2 INC2 LDA2 INC2 INC2 LDA2 LDA2 LDA2 ;print JSR2 #0a18 DEO
- POP2
- ( OVR2 INC2 INC2 LDA2 INC2 INC2 LDA2 LDA2 ;print JSR2 )
-
+JMP2r
+
+@thrush ( list* -- list* )
+
+ LDA2k STH2 ;pop JSR2
+ LDA2k STH2 ;pop JSR2
+ SWP2r
+ STH2r ;cons JSR2
+ STH2r ;cons JSR2
+
+JMP2r
+
+( Becekew Forest )
+
+@warbler ( list* -- list* )
+
+ LDA2k STH2 ;pop JSR2
+ ;dup JSR2
+ STH2r ;cons JSR2
+
+JMP2r
+
+@kestrel ( list* -- list* )
+
+ LDA2k STH2 ;pop JSR2
+ ;pop JSR2
+ STH2r ;cons JSR2
JMP2r
-@memory>
\ No newline at end of file
+@memory