From bc2a88dda0044a6c68dc47baf205193d8a05c9a1 Mon Sep 17 00:00:00 2001 From: kdx Date: Sat, 15 Apr 2023 10:21:57 +0200 Subject: advanced sample --- run.sh | 2 +- samples/move.orgaasm | 46 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/run.sh b/run.sh index 47dc6d8..3b893a1 100755 --- a/run.sh +++ b/run.sh @@ -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 -- cgit v1.2.3