... | ... |
@@ -3,41 +3,30 @@ |
3 | 3 |
for multiples of five, print "Buzz" |
4 | 4 |
for multiples of both three and five, print "FizzBuzz" ) |
5 | 5 |
|
6 |
-%MOD { DIVk MUL SUB } |
|
7 |
-%HALT { #01 #0f DEO } |
|
8 |
-%EMIT { #18 DEO } |
|
9 |
-%RTN { JMP2r } |
|
10 |
- |
|
11 |
-@program |
|
12 |
- |
|
13 |
-|0100 ( -> ) |
|
6 |
+|0100 ( -> ) @program |
|
14 | 7 |
|
15 | 8 |
#6400 |
16 | 9 |
&loop |
17 |
- LITr 00 |
|
18 |
- DUP #03 MOD ,&no3 JCN ;fizz-txt ;print-str JSR2 INCr &no3 |
|
19 |
- DUP #05 MOD ,&no5 JCN ;buzz-txt ;print-str JSR2 INCr &no5 |
|
20 |
- STHr ,&resume JCN |
|
21 |
- ( print decimal ) |
|
22 |
- DUPk #0a DIV #30 ADD EMIT |
|
23 |
- #0a MOD #30 ADD EMIT |
|
24 |
- &resume |
|
25 |
- ( add linebreak ) #0a EMIT |
|
10 |
+ ( dec ) |
|
11 |
+ DUPk #0a DIV ,print-num JSR |
|
12 |
+ #0a ,mod JSR ,print-num JSR |
|
13 |
+ ( space ) |
|
14 |
+ #2018 DEO |
|
15 |
+ ( text ) |
|
16 |
+ DUP #03 ,mod JSR ,&no3 JCN ;s/fizz ,print-str JSR &no3 |
|
17 |
+ DUP #05 ,mod JSR ,&no5 JCN ;s/buzz ,print-str JSR &no5 |
|
18 |
+ ( linebreak ) #0a18 DEO |
|
26 | 19 |
INC GTHk ,&loop JCN |
27 | 20 |
POP2 |
28 |
- |
|
29 |
- HALT |
|
21 |
+ ( halt ) |
|
22 |
+ #010f DEO |
|
30 | 23 |
|
31 | 24 |
BRK |
32 | 25 |
|
33 |
-@print-str ( addr* -- ) |
|
34 |
- |
|
35 |
- &loop |
|
36 |
- LDAk EMIT |
|
37 |
- INC2 LDAk ,&loop JCN |
|
38 |
- POP2 |
|
39 |
- |
|
40 |
-RTN |
|
26 |
+@mod ( a b -- c ) DIVk MUL SUB JMP2r |
|
27 |
+@print-num ( num -- ) #30 ADD #18 DEO JMP2r |
|
28 |
+@print-str ( addr* -- ) &loop LDAk #18 DEO INC2 LDAk ,&loop JCN POP2 JMP2r |
|
41 | 29 |
|
42 |
-@fizz-txt "Fizz $1 |
|
43 |
-@buzz-txt "Buzz $1 |
|
30 |
+@s |
|
31 |
+ &fizz "Fizz $1 |
|
32 |
+ &buzz "Buzz $1 |