
 #name ^.Rays

 ;*************************************************************************
 #set xscreen = 320
 #set yscreen = 256
 #set xres = 320
 #set yres = 256
 #set sq_max = 512*512

 ;Structure..
 bl memory_init
 bl video_init
 bl interrupt_init
 bl lookup
 b main_loop

.mode
 dcd 1
 dcd xscreen
 dcd yscreen
 dcd 5
 dcd -1
 dcd -1
 dcd 255
 dcd -1

.main_loop
 ;check escape
 mov r0,#121
 mov r1,#240
 swi OS_Byte
 cmp r1,#&ff
 beq exit


 ;Setup stuff to call effect
 ;video base
 ldr r12,video
 ;set current and previous screens..
 ldr r0,work
 sub r0,r0,#1
 mov r1,#320*256*4
 mul r0,r1,r0
 add r12,r12,r0

 bl wait_vsync

 ldr pc,effect

.effect
 dcd tracer

.work
 dcd 2
.show
 dcd 3

 ;*************************************************************************
 ;include system code
 #include "<rays$dir>.system"
 ;*************************************************************************
 ;include lookup code
 #include "<rays$dir>.lookup"

 ;*************************************************************************
 ;include effects
 #include "<rays$dir>.tracer"
 ;*************************************************************************
.video
 dcd 0
.sqr
 dcd 0
.bss

