diff options
Diffstat (limited to 'tetris/blocks.prn')
-rw-r--r-- | tetris/blocks.prn | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tetris/blocks.prn b/tetris/blocks.prn new file mode 100644 index 0000000..bc37cb9 --- /dev/null +++ b/tetris/blocks.prn @@ -0,0 +1,45 @@ +@includeonce "io.prn" + +7 "b_nblocks" store + +15 "b_block1" store 6 "b_block1c" store #I: cyan +23 "b_block2" store 3 "b_block2c" store #L: orange +71 "b_block3" store 4 "b_block3c" store #J: blue +51 "b_block4" store 7 "b_block4c" store #O: yellow (ish) +54 "b_block5" store 2 "b_block5c" store #S: lime +99 "b_block6" store 1 "b_block6c" store #Z: red +114 "b_block7" store 5 "b_block7c" store #T: purple + +@defun "b_getblock" { #arg: block idx [1..7] + "b_block" swap + get +} + +@defun "b_drawblock" { #args: x y blockidx + b_getblock + "blockbits" store + "y" store + "x" store + + blockbits 16 % "row1" store + blockbits 16 / "row2" store + + x "xx" store + row1 while + row1 2 % if + xx y io_gsquare + end + xx 1 + "xx" store + row1 2 / "row1" store + row1 end + + y 1 + "y" store + + x "xx" store + row2 while + row2 2 % if + xx y io_gsquare + end + xx 1 + "xx" store + row2 2 / "row2" store + row2 end +} |