aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-04-15 10:21:57 +0200
committerkdx <kikoodx@paranoici.org>2023-04-15 10:21:57 +0200
commitbc2a88dda0044a6c68dc47baf205193d8a05c9a1 (patch)
treeea196a53f86e15ad5c12f456ecbe9e45125f4b97
parent5b06ad8fc99037c3b3a532155a400853619cd892 (diff)
downloadorga-bc2a88dda0044a6c68dc47baf205193d8a05c9a1.tar.gz
advanced sample
-rwxr-xr-xrun.sh2
-rw-r--r--samples/move.orgaasm46
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