| ... | ... |
@@ -6,34 +6,31 @@ |
| 6 | 6 |
|
| 7 | 7 |
#0000 INC2k |
| 8 | 8 |
&loop |
| 9 |
- DUP2 ,is-prime JSR #00 EQU ,&skip JCN |
|
| 10 |
- ( print ) DUP2 ,print/short JSR |
|
| 11 |
- ( space ) #2018 DEO |
|
| 9 |
+ DUP2 not-prime ?&skip |
|
| 10 |
+ DUP2 print/short #2018 DEO |
|
| 12 | 11 |
&skip |
| 13 |
- INC2 NEQ2k ,&loop JCN |
|
| 12 |
+ INC2 NEQ2k ?&loop |
|
| 14 | 13 |
POP2 POP2 |
| 15 | 14 |
( halt ) #010f DEO |
| 16 |
- |
|
| 15 |
+ |
|
| 17 | 16 |
BRK |
| 18 | 17 |
|
| 19 |
-@is-prime ( number* -- flag ) |
|
| 18 |
+@not-prime ( number* -- flag ) |
|
| 20 | 19 |
|
| 21 | 20 |
DUP2 ,&t STR2 |
| 22 |
- ( range ) #01 SFT2 #0002 LTH2k ,&fail JCN |
|
| 21 |
+ ( range ) #01 SFT2 #0002 LTH2k ?&fail |
|
| 23 | 22 |
&loop |
| 24 |
- [ LIT2 &t $2 ] OVR2 |
|
| 25 |
- ( mod2 ) DIV2k MUL2 SUB2 |
|
| 26 |
- ORA #00 EQU ,&fail JCN |
|
| 27 |
- INC2 GTH2k ,&loop JCN |
|
| 28 |
- POP2 POP2 #01 |
|
| 23 |
+ [ LIT2 &t $2 ] OVR2 ( mod2 ) DIV2k MUL2 SUB2 ORA ?&continue |
|
| 24 |
+ &fail POP2 POP2 #01 JMP2r &continue |
|
| 25 |
+ INC2 GTH2k ?&loop |
|
| 26 |
+ POP2 POP2 #00 |
|
| 29 | 27 |
|
| 30 | 28 |
JMP2r |
| 31 |
- &fail POP2 POP2 #00 JMP2r |
|
| 32 | 29 |
|
| 33 | 30 |
@print ( short* -- ) |
| 34 | 31 |
|
| 35 |
- &short ( short* -- ) SWP ,&byte JSR |
|
| 36 |
- &byte ( byte -- ) DUP #04 SFT ,&char JSR |
|
| 32 |
+ &short ( short* -- ) SWP print/byte |
|
| 33 |
+ &byte ( byte -- ) DUP #04 SFT print/char |
|
| 37 | 34 |
&char ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO |
| 38 | 35 |
|
| 39 | 36 |
JMP2r |