commit 998c182a44a6d7aca3ae6fc2575748b63717c927
parent 4ab97a6c1f1c83de39ec0eca6787132863182be6
Author: Devine Lu Linvega <aliceffekt@gmail.com>
Date: Tue, 24 Jan 2023 09:09:36 -0800
(amiga.tal) Use call opcodes
Diffstat:
2 files changed, 30 insertions(+), 21 deletions(-)
diff --git a/projects/examples/demos/amiga.rom.sym b/projects/examples/demos/amiga.rom.sym
Binary files differ.
diff --git a/projects/examples/demos/amiga.tal b/projects/examples/demos/amiga.tal
@@ -9,14 +9,17 @@
@timer $1
@frame $1
+(
+@|vectors )
+
|0100
( vectors )
;on-frame .Screen/vector DEO2
( theme )
- #aff0 .System/r DEO2
+ #aff5 .System/r DEO2
#af00 .System/g DEO2
- #af00 .System/b DEO2
+ #af05 .System/b DEO2
( screen size )
#0140 .Screen/width DEO2
#0100 .Screen/height DEO2
@@ -27,8 +30,8 @@
#0008 .ball/vx STZ2
#0000 .ball/vy STZ2
( once )
- ;make-shadow JSR2
- ;draw-background JSR2
+ make-shadow
+ draw-background
BRK
@@ -40,14 +43,17 @@ BRK
#00 .timer STZ
( 12 frames animation )
.frame LDZ INC DUP #0c NEQ MUL .frame STZ
- ,move-ball JSR
+ move-ball
BRK
+(
+@|core )
+
@check-flip-vx ( x -- x )
- ( left ) DUP2 #0010 LTH2 ,&flip JCN
- ( right ) DUP2 .Screen/width DEI2 #0050 SUB2 GTH2 ,&flip JCN ,&else JMP
+ ( left ) DUP2 #0010 LTH2 ?&flip
+ ( right ) DUP2 .Screen/width DEI2 #0050 SUB2 GTH2 ?&flip ,&else JMP
&flip .ball/vx LDZ2k #ffff EOR2 ( INC2 ) ROT STZ2
&else
@@ -55,7 +61,7 @@ JMP2r
@check-flip-vy ( y -- y )
- ( bottom ) DUP2 .Screen/height DEI2 #0050 SUB2 GTH2 ,&flip JCN ,&else JMP
+ ( bottom ) DUP2 .Screen/height DEI2 #0050 SUB2 GTH2 ?&flip ,&else JMP
&flip .ball/vy LDZ2k #ffff EOR2 ( INC2 ) ROT STZ2
&else
@@ -70,13 +76,13 @@ JMP2r
#0800
&loop-bg
#40 .Screen/sprite DEO
- INC GTHk ,&loop-bg JCN
+ INC GTHk ?&loop-bg
POP2
.ball/vx LDZ2k STH2k ROT STZ2
- .ball/x LDZ2k STH2r ADD2 ,check-flip-vx JSR ROT STZ2
+ .ball/x LDZ2k STH2r ADD2 check-flip-vx ROT STZ2
.ball/vy LDZ2k INC2 STH2k ROT STZ2
- .ball/y LDZ2k STH2r ADD2 ,check-flip-vy JSR ROT STZ2
+ .ball/y LDZ2k STH2r ADD2 check-flip-vy ROT STZ2
@draw-ball ( -- )
@@ -88,7 +94,7 @@ JMP2r
#0700
&loop-shadow
#4f .Screen/sprite DEO
- INC GTHk ,&loop-shadow JCN
+ INC GTHk ?&loop-shadow
POP2
.frame LDZ
( bg )
@@ -100,7 +106,7 @@ JMP2r
#0700
&loop-bg
STHkr .Screen/sprite DEO
- INC GTHk ,&loop-bg JCN
+ INC GTHk ?&loop-bg
POP2
POPr
( fg )
@@ -112,7 +118,7 @@ JMP2r
#0700
&loop-fg
STHkr .Screen/sprite DEO
- INC GTHk ,&loop-fg JCN
+ INC GTHk ?&loop-fg
POP2
POPr
@@ -130,9 +136,9 @@ JMP2r
.Screen/width DEI2 #03 SFT2 NIP #08 SUB #00
&horhor
#0f .Screen/sprite DEO
- INC GTHk ,&horhor JCN
+ INC GTHk ?&horhor
POP2
- INC GTHk ,&horver JCN
+ INC GTHk ?&horver
POP2
( ver lines )
#02 .Screen/auto DEO
@@ -144,20 +150,20 @@ JMP2r
.Screen/height DEI2 #03 SFT2 NIP #0a SUB #00
&verhor
#0f .Screen/sprite DEO
- INC GTHk ,&verhor JCN
+ INC GTHk ?&verhor
POP2
- INC GTHk ,&verver JCN
+ INC GTHk ?&verver
POP2
JMP2r
@make-shadow ( -- )
- ;bg ;shadow #0188 ;mcpy JSR2
+ ;bg ;shadow #0188 mcpy
#0188 #0000
&loop
DUP2 ;shadow ADD2 LDA2k #aa55 AND2 SWP2 STA2
- INC2 INC2 GTH2k ,&loop JCN
+ INC2 INC2 GTH2k ?&loop
POP2 POP2
JMP2r
@@ -168,12 +174,15 @@ JMP2r
OVR2 ADD2 SWP2
&loop
LDAk STH2kr STA INC2r
- INC2 GTH2k ,&loop JCN
+ INC2 GTH2k ?&loop
POP2 POP2
POP2r
JMP2r
+(
+@|assets )
+
@hor-icn
0000 0000 0000 00ff
@ver-icn