handle loop
This commit is contained in:
parent
2ec5691e28
commit
555114bdb0
2 changed files with 46 additions and 12 deletions
|
@ -1,25 +1,44 @@
|
|||
|
||||
%EMIT { #18 DEO }
|
||||
%NL { #0a EMIT }
|
||||
|0100
|
||||
#63 #ff STZ ( set num to 99 )
|
||||
@l
|
||||
beer-count print-num ( print num )
|
||||
;bottles-of-beer print
|
||||
;on-the-wall print
|
||||
( incrment num )
|
||||
NL
|
||||
beer-count print-num
|
||||
;bottles-of-beer print
|
||||
NL
|
||||
;take-one-down print
|
||||
NL
|
||||
beer-count #01 SUB #ff STZ
|
||||
beer-count #00 EQU ?{ l }
|
||||
;end print
|
||||
BRK
|
||||
|
||||
|
||||
%SP { 20 }
|
||||
|
||||
@bottles-of-beer "99_bottles_of_beer 00
|
||||
@beer-count #ff LDZ JMP2r
|
||||
@bottles-of-beer "bottles_of_beer 00
|
||||
@on-the-wall "on_the_wall 00
|
||||
@take-one-down "take_one_down,_pass_it_around 00
|
||||
|
||||
@end "no_more_bottles_of_beer 00
|
||||
|
||||
@print ( str* -: )
|
||||
( LDAk LIT "_ NEQk ?print/space )
|
||||
LDAk DUP #5f NEQ
|
||||
?{ POP #20 }
|
||||
#18 DEO
|
||||
INC2 LDAk ?print
|
||||
( print newline )
|
||||
#0a #18 DEO
|
||||
EMIT
|
||||
INC2 LDAk ?print
|
||||
#20 EMIT
|
||||
POP2 JMP2r
|
||||
|
||||
@print-num ( two digit int -: )
|
||||
DUP
|
||||
#0a DIV ( 25 02 )
|
||||
SWP DUP ( 02 25 25 )
|
||||
#0a DIV ( 02 25 02 )
|
||||
#0a MUL ( 02 25 20 )
|
||||
SUB ( 02 05 )
|
||||
#30 ADD SWP #30 ADD
|
||||
EMIT EMIT
|
||||
#20 EMIT ( print space )
|
||||
JMP2r
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue