85 lines
2.2 KiB
Plaintext
85 lines
2.2 KiB
Plaintext
|
|
{-----------------------------------------------------------------------+
|
|
| |
|
|
| GCL applications |
|
|
| |
|
|
+-----------------------------------------------------------------------}
|
|
|
|
gcl0x
|
|
|
|
{
|
|
XXX Speed up scrolling by splitting work over frames
|
|
XXX More interesting transitions
|
|
}
|
|
|
|
{
|
|
Draw full-screen image on screen (~1.5 seconds)
|
|
}
|
|
[def {DrawImage}
|
|
{vAC} p= {Addres in ROM for image data}
|
|
$0101 v= {Video table entry to control X}
|
|
$0800 q= {Points in video memory}
|
|
2 FrameRate= {Target frame rate (frames/pixel)}
|
|
[do \videoY, 1& if=0loop] {Synchronize with video loop}
|
|
\frameCount, t=
|
|
160 [do i=
|
|
|
|
{Draw slice one pixel outside view}
|
|
v, 160+ 255& q<.
|
|
[do
|
|
p \sysArgs6: \SYS_Read3_40 \sysFn: 40!! {Read 3 bytes from ROM}
|
|
\SYS_Unpack_56 \sysFn: 56!! {Unpack to 4 bytes}
|
|
q \sysArgs4: \SYS_Draw4_30 \sysFn: 30!! {Write 4 bytes to screen}
|
|
$80 p+ p=
|
|
q>++ q
|
|
if>0loop]
|
|
|
|
{Shift in 4 controlled steps}
|
|
[do
|
|
t FrameRate+ 255& t=
|
|
[do \frameCount, t- if<>0loop]
|
|
|
|
{Scroll 4 pixels left}
|
|
v, 1+ v.
|
|
3& if<>0loop]
|
|
|
|
{Advance to next slice}
|
|
$c403 p+ p=
|
|
$8800 q+ q=
|
|
|
|
i 4- if>0loop]
|
|
ret
|
|
] DrawImage=
|
|
|
|
{
|
|
Wait number of seconds
|
|
}
|
|
[def {Wait}
|
|
[do
|
|
Delay=
|
|
\frameCount, 60+ 255& tmp=
|
|
[do \frameCount, tmp- if<>0loop]
|
|
Delay 1- if>0loop]
|
|
ret
|
|
] WaitSeconds=
|
|
|
|
{
|
|
Wait until all buttons are released
|
|
}
|
|
[def
|
|
[do \serialRaw, 255^ if<>0loop]
|
|
ret
|
|
] WaitController=
|
|
|
|
{Draw images in a continuous loop}
|
|
[do
|
|
\packedBaboon DrawImage! 15 WaitSeconds! WaitController!
|
|
\packedParrot DrawImage! 15 WaitSeconds! WaitController!
|
|
\packedJupiter DrawImage! 15 WaitSeconds! WaitController!
|
|
loop]
|
|
|
|
{-----------------------------------------------------------------------+
|
|
| End |
|
|
+-----------------------------------------------------------------------}
|
|
|