From 998c182a44a6d7aca3ae6fc2575748b63717c927 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Tue, 24 Jan 2023 09:09:36 -0800 Subject: [PATCH] (amiga.tal) Use call opcodes --- projects/examples/demos/amiga.rom.sym | Bin 0 -> 817 bytes projects/examples/demos/amiga.tal | 51 +++++++++++++++----------- 2 files changed, 30 insertions(+), 21 deletions(-) create mode 100644 projects/examples/demos/amiga.rom.sym diff --git a/projects/examples/demos/amiga.rom.sym b/projects/examples/demos/amiga.rom.sym new file mode 100644 index 0000000000000000000000000000000000000000..bc439ca1098c716264ac4e38fb6655545995e584 GIT binary patch literal 817 zcmZvYu};H45Jbmz6atEZ;0q8SKnQac5)Bm{CF$rczDsPy_F1;$BoY-86!a7{@DVip z4g3kL?M;+escznkXMKA>f1c$!0$7Mbd$~ygyAH%O%K?WWEuqDrrBd`^dx4%&8rWh? zqyjpN9it6eMd zI(ZOjdZg`PDkBZ+*2FGL?fKdpyTdR@Tq;?QYb;71*7Lfl!;FT!teSIJZ)?oWk9D(d zenzIyZnc2*wbUXsCUFNNSU)P2(>k}UrLObLm�GUp0K{*+s(}lJ~@(Hy)*C5-Zs6 z4M+GUE$DUZ?+pQEuz#BYeO@*GHUwqE*^A^@yL?yYXoadR;9N&uGKX_h9&FuF(+#{B V&OHsU)kFD6mF&LKhP{0r`474j3Ml{p literal 0 HcmV?d00001 diff --git a/projects/examples/demos/amiga.tal b/projects/examples/demos/amiga.tal index ef0c8c5..c96cc5d 100644 --- 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