diff options
author | kdx <kikoodx@paranoici.org> | 2023-04-15 10:21:57 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-04-15 10:21:57 +0200 |
commit | bc2a88dda0044a6c68dc47baf205193d8a05c9a1 (patch) | |
tree | ea196a53f86e15ad5c12f456ecbe9e45125f4b97 | |
parent | 5b06ad8fc99037c3b3a532155a400853619cd892 (diff) | |
download | orga-bc2a88dda0044a6c68dc47baf205193d8a05c9a1.tar.gz |
advanced sample
-rwxr-xr-x | run.sh | 2 | ||||
-rw-r--r-- | samples/move.orgaasm | 46 |
2 files changed, 43 insertions, 5 deletions
@@ -5,5 +5,5 @@ TMPROM="$(mktemp)" cd "$(dirname "$1")" || exit 1 m4 "$(basename "$1")" >"$TMPASM" || exit 1 "$ORGAPATH"/orgaasm "$TMPASM" "$TMPROM" || exit 1 -"$ORGAPATH"/orgaemu "$TMPROM" || exit 1 +"$ORGAPATH"/orgaemu "$TMPROM" rm -f "$TMPROM" "$TMPASM" diff --git a/samples/move.orgaasm b/samples/move.orgaasm index fed1626..70e85ca 100644 --- a/samples/move.orgaasm +++ b/samples/move.orgaasm @@ -26,13 +26,13 @@ include(std.orgaasm) @player/update ( -- ) @player/update/movex - #0004 #007b + #0001 #0076 -player.x LDA -input.kleft LDA SUB -input.kright LDA ADD /clamp -player.x STA @player/update/movey - #0004 #007b + #0001 #0076 -player.y LDA -input.kup LDA SUB -input.kdown LDA ADD @@ -42,13 +42,15 @@ include(std.orgaasm) @player/erase ( -- ) -player.x LDA -player.y LDA - #0000 /draw/pixel + -blacksquare + /draw/sprite RET @player/draw ( -- ) -player.x LDA -player.y LDA - #ffff /draw/pixel + -player.spr + /draw/sprite RET @draw/pixel ( x y col -- ) @@ -57,3 +59,39 @@ include(std.orgaasm) #0007 LSF ADD -Screen ADD STA RET + +@draw/sprite.oscr 0000 +@draw/sprite ( x y addr -- ) + ROT ROT #0007 LSF ADD -Screen ADD ( spr scr ) + #0008 ( spr scr n ) +@draw/sprite/loop + DEC + OVR OVR #0007 LSF ADD ( spr scr n oscr ) + #0080 ADD ( spr scr n oscr ) + -draw/sprite.oscr STA ( spr scr n ) + ROT SWP OVR OVR #0003 LSF ADD ( scr spr n ospr ) + -draw/sprite.oscr LDA ( scr spr n ospr oscr ) + #0008 /memcpy ( scr spr n ) + SWP ROT ROT ( spr scr n ) + DUP JNZ ,draw/sprite/loop + POP POP POP RET + +@blacksquare + 0000 0000 000f 000f 000f 000f 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 000f 0000 000f 000f 000f 000f 0000 000f + 000f 0000 000f 000f 000f 000f 0000 000f + 000f 0000 000f 000f 000f 000f 0000 000f + 000f 0000 000f 000f 000f 000f 0000 000f + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 000f 000f 000f 000f 0000 0000 + +@player.spr + 0000 ffff ffff ffff ffff ffff ffff 0000 + ffff 0000 ffff ffff ffff ffff 0000 ffff + ffff ffff ffff ffff ffff ffff ffff ffff + ffff ffff ffff ffff ffff ffff ffff ffff + ffff ffff ffff ffff ffff ffff ffff ffff + ffff ffff ffff ffff ffff ffff 0000 ffff + ffff ffff 0000 0000 0000 0000 ffff ffff + 0000 ffff ffff ffff ffff ffff ffff 0000 |