From 555114bdb0daf20a9d5825b2d62319b8e8183875 Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Fri, 12 Jul 2024 16:34:25 +0200 Subject: [PATCH] handle loop --- 99_bottles.tal | 43 +++++++++++++++++++++++++++++++------------ README.md | 15 +++++++++++++++ 2 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 README.md diff --git a/99_bottles.tal b/99_bottles.tal index 7a13233..c06cb18 100644 --- a/99_bottles.tal +++ b/99_bottles.tal @@ -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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..3f17a09 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +These are my UXN experiments + +# Dev + +## Edit file + +```shell +$ ../uxn/bin/uxnemu ../left.rom 99_bottles.tal +``` + +## Step through debugger + +```shell +$ echo 99_bottles.rom | entr -r ../uxn/bin/uxnemu ../beetbug.rom ./99_bottles.rom +```