mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-03 07:29:37 +00:00
9778 lines
614 KiB
Plaintext
9778 lines
614 KiB
Plaintext
Resolved forward reference RASTER_IRQ_TOP to RASTER_IRQ_TOP
|
|
Resolved forward reference irqTop to __interrupt(hardware_clobber) void irqTop()
|
|
Resolved forward reference RASTER_IRQ_MIDDLE to RASTER_IRQ_MIDDLE
|
|
Resolved forward reference irqBottom to __interrupt(hardware_clobber) void irqBottom()
|
|
Constantified RValue PROCESSING[main::$10] = { x: 0, y: 0, vx: 0, vy: 0, id: 0, ptr: 0, col: 0, status: STATUS_FREE, screenPtr: (byte*)0 }
|
|
Constantified RValue getCharToProcess::closest = (struct ProcessingChar){ getCharToProcess::x, getCharToProcess::y, getCharToProcess::dist }
|
|
Constantified RValue PROCESSING[startProcessing::$22] = (struct ProcessingSprite){ startProcessing::spriteX, startProcessing::spriteY, (word)startProcessing::$15, $3c, startProcessing::spriteIdx, startProcessing::spritePtr, startProcessing::spriteCol, STATUS_NEW, startProcessing::screenPtr }
|
|
Inlined call vicSelectGfxBank::$0 = call toDd00 vicSelectGfxBank::gfx
|
|
Inlined call call __init
|
|
Eliminating unused variable with no statement main::$5
|
|
Unwinding list assignment { main::$5_x, main::$5_y, main::$5_dist } = { getCharToProcess::return_x, getCharToProcess::return_y, getCharToProcess::return_dist }
|
|
Unwinding list assignment { getCharToProcess::return_x#0, getCharToProcess::return_y#0, getCharToProcess::return_dist#0 } = { getCharToProcess::return_x#2, getCharToProcess::return_y#2, getCharToProcess::return_dist#2 }
|
|
|
|
CONTROL FLOW GRAPH SSA
|
|
|
|
void* malloc(word malloc::size)
|
|
malloc: scope:[malloc] from __start::@2 __start::__init1
|
|
malloc::size#2 = phi( __start::@2/malloc::size#1, __start::__init1/malloc::size#0 )
|
|
heap_head#6 = phi( __start::@2/heap_head#3, __start::__init1/heap_head#2 )
|
|
malloc::$0 = heap_head#6 - malloc::size#2
|
|
malloc::mem#0 = malloc::$0
|
|
heap_head#0 = malloc::mem#0
|
|
malloc::return#0 = ((void*)) malloc::mem#0
|
|
to:malloc::@return
|
|
malloc::@return: scope:[malloc] from malloc
|
|
heap_head#7 = phi( malloc/heap_head#0 )
|
|
malloc::return#4 = phi( malloc/malloc::return#0 )
|
|
malloc::return#1 = malloc::return#4
|
|
heap_head#1 = heap_head#7
|
|
return
|
|
to:@return
|
|
|
|
word atan2_16(signed word atan2_16::x , signed word atan2_16::y)
|
|
atan2_16: scope:[atan2_16] from init_angle_screen::@3
|
|
atan2_16::x#9 = phi( init_angle_screen::@3/atan2_16::x#0 )
|
|
atan2_16::y#1 = phi( init_angle_screen::@3/atan2_16::y#0 )
|
|
atan2_16::$0 = atan2_16::y#1 >= 0
|
|
if(atan2_16::$0) goto atan2_16::@1
|
|
to:atan2_16::@2
|
|
atan2_16::@1: scope:[atan2_16] from atan2_16
|
|
atan2_16::x#5 = phi( atan2_16/atan2_16::x#9 )
|
|
atan2_16::y#2 = phi( atan2_16/atan2_16::y#1 )
|
|
atan2_16::$3 = atan2_16::y#2
|
|
to:atan2_16::@3
|
|
atan2_16::@2: scope:[atan2_16] from atan2_16
|
|
atan2_16::x#6 = phi( atan2_16/atan2_16::x#9 )
|
|
atan2_16::y#3 = phi( atan2_16/atan2_16::y#1 )
|
|
atan2_16::$1 = - atan2_16::y#3
|
|
atan2_16::$2 = atan2_16::$1
|
|
to:atan2_16::@3
|
|
atan2_16::@3: scope:[atan2_16] from atan2_16::@1 atan2_16::@2
|
|
atan2_16::y#15 = phi( atan2_16::@1/atan2_16::y#2, atan2_16::@2/atan2_16::y#3 )
|
|
atan2_16::x#1 = phi( atan2_16::@1/atan2_16::x#5, atan2_16::@2/atan2_16::x#6 )
|
|
atan2_16::$4 = phi( atan2_16::@1/atan2_16::$3, atan2_16::@2/atan2_16::$2 )
|
|
atan2_16::yi#0 = atan2_16::$4
|
|
atan2_16::$5 = atan2_16::x#1 >= 0
|
|
if(atan2_16::$5) goto atan2_16::@4
|
|
to:atan2_16::@5
|
|
atan2_16::@4: scope:[atan2_16] from atan2_16::@3
|
|
atan2_16::y#12 = phi( atan2_16::@3/atan2_16::y#15 )
|
|
atan2_16::yi#12 = phi( atan2_16::@3/atan2_16::yi#0 )
|
|
atan2_16::x#2 = phi( atan2_16::@3/atan2_16::x#1 )
|
|
atan2_16::$8 = atan2_16::x#2
|
|
to:atan2_16::@6
|
|
atan2_16::@5: scope:[atan2_16] from atan2_16::@3
|
|
atan2_16::y#13 = phi( atan2_16::@3/atan2_16::y#15 )
|
|
atan2_16::yi#13 = phi( atan2_16::@3/atan2_16::yi#0 )
|
|
atan2_16::x#3 = phi( atan2_16::@3/atan2_16::x#1 )
|
|
atan2_16::$6 = - atan2_16::x#3
|
|
atan2_16::$7 = atan2_16::$6
|
|
to:atan2_16::@6
|
|
atan2_16::@6: scope:[atan2_16] from atan2_16::@4 atan2_16::@5
|
|
atan2_16::y#9 = phi( atan2_16::@4/atan2_16::y#12, atan2_16::@5/atan2_16::y#13 )
|
|
atan2_16::x#10 = phi( atan2_16::@4/atan2_16::x#2, atan2_16::@5/atan2_16::x#3 )
|
|
atan2_16::yi#9 = phi( atan2_16::@4/atan2_16::yi#12, atan2_16::@5/atan2_16::yi#13 )
|
|
atan2_16::$9 = phi( atan2_16::@4/atan2_16::$8, atan2_16::@5/atan2_16::$7 )
|
|
atan2_16::xi#0 = atan2_16::$9
|
|
atan2_16::angle#0 = 0
|
|
atan2_16::i#0 = 0
|
|
to:atan2_16::@10
|
|
atan2_16::@10: scope:[atan2_16] from atan2_16::@19 atan2_16::@6
|
|
atan2_16::y#7 = phi( atan2_16::@19/atan2_16::y#8, atan2_16::@6/atan2_16::y#9 )
|
|
atan2_16::x#7 = phi( atan2_16::@19/atan2_16::x#8, atan2_16::@6/atan2_16::x#10 )
|
|
atan2_16::angle#12 = phi( atan2_16::@19/atan2_16::angle#13, atan2_16::@6/atan2_16::angle#0 )
|
|
atan2_16::i#6 = phi( atan2_16::@19/atan2_16::i#1, atan2_16::@6/atan2_16::i#0 )
|
|
atan2_16::xi#6 = phi( atan2_16::@19/atan2_16::xi#8, atan2_16::@6/atan2_16::xi#0 )
|
|
atan2_16::yi#3 = phi( atan2_16::@19/atan2_16::yi#8, atan2_16::@6/atan2_16::yi#9 )
|
|
atan2_16::$16 = atan2_16::yi#3 == 0
|
|
atan2_16::$17 = ! atan2_16::$16
|
|
if(atan2_16::$17) goto atan2_16::@11
|
|
to:atan2_16::@12
|
|
atan2_16::@11: scope:[atan2_16] from atan2_16::@10
|
|
atan2_16::y#19 = phi( atan2_16::@10/atan2_16::y#7 )
|
|
atan2_16::x#17 = phi( atan2_16::@10/atan2_16::x#7 )
|
|
atan2_16::angle#19 = phi( atan2_16::@10/atan2_16::angle#12 )
|
|
atan2_16::i#2 = phi( atan2_16::@10/atan2_16::i#6 )
|
|
atan2_16::yi#4 = phi( atan2_16::@10/atan2_16::yi#3 )
|
|
atan2_16::xi#3 = phi( atan2_16::@10/atan2_16::xi#6 )
|
|
atan2_16::xd#0 = atan2_16::xi#3
|
|
atan2_16::yd#0 = atan2_16::yi#4
|
|
atan2_16::shift#0 = atan2_16::i#2
|
|
to:atan2_16::@13
|
|
atan2_16::@12: scope:[atan2_16] from atan2_16::@10 atan2_16::@19
|
|
atan2_16::y#5 = phi( atan2_16::@10/atan2_16::y#7, atan2_16::@19/atan2_16::y#8 )
|
|
atan2_16::x#4 = phi( atan2_16::@10/atan2_16::x#7, atan2_16::@19/atan2_16::x#8 )
|
|
atan2_16::angle#6 = phi( atan2_16::@10/atan2_16::angle#12, atan2_16::@19/atan2_16::angle#13 )
|
|
atan2_16::angle#1 = atan2_16::angle#6 / 2
|
|
atan2_16::$10 = atan2_16::x#4 < 0
|
|
atan2_16::$11 = ! atan2_16::$10
|
|
if(atan2_16::$11) goto atan2_16::@7
|
|
to:atan2_16::@21
|
|
atan2_16::@13: scope:[atan2_16] from atan2_16::@11 atan2_16::@14
|
|
atan2_16::y#18 = phi( atan2_16::@11/atan2_16::y#19, atan2_16::@14/atan2_16::y#20 )
|
|
atan2_16::x#16 = phi( atan2_16::@11/atan2_16::x#17, atan2_16::@14/atan2_16::x#18 )
|
|
atan2_16::angle#18 = phi( atan2_16::@11/atan2_16::angle#19, atan2_16::@14/atan2_16::angle#20 )
|
|
atan2_16::i#10 = phi( atan2_16::@11/atan2_16::i#2, atan2_16::@14/atan2_16::i#11 )
|
|
atan2_16::xi#11 = phi( atan2_16::@11/atan2_16::xi#3, atan2_16::@14/atan2_16::xi#12 )
|
|
atan2_16::yi#14 = phi( atan2_16::@11/atan2_16::yi#4, atan2_16::@14/atan2_16::yi#15 )
|
|
atan2_16::yd#7 = phi( atan2_16::@11/atan2_16::yd#0, atan2_16::@14/atan2_16::yd#1 )
|
|
atan2_16::xd#7 = phi( atan2_16::@11/atan2_16::xd#0, atan2_16::@14/atan2_16::xd#1 )
|
|
atan2_16::shift#2 = phi( atan2_16::@11/atan2_16::shift#0, atan2_16::@14/atan2_16::shift#1 )
|
|
atan2_16::$18 = atan2_16::shift#2 >= 2
|
|
if(atan2_16::$18) goto atan2_16::@14
|
|
to:atan2_16::@15
|
|
atan2_16::@14: scope:[atan2_16] from atan2_16::@13
|
|
atan2_16::y#20 = phi( atan2_16::@13/atan2_16::y#18 )
|
|
atan2_16::x#18 = phi( atan2_16::@13/atan2_16::x#16 )
|
|
atan2_16::angle#20 = phi( atan2_16::@13/atan2_16::angle#18 )
|
|
atan2_16::i#11 = phi( atan2_16::@13/atan2_16::i#10 )
|
|
atan2_16::xi#12 = phi( atan2_16::@13/atan2_16::xi#11 )
|
|
atan2_16::yi#15 = phi( atan2_16::@13/atan2_16::yi#14 )
|
|
atan2_16::shift#3 = phi( atan2_16::@13/atan2_16::shift#2 )
|
|
atan2_16::yd#3 = phi( atan2_16::@13/atan2_16::yd#7 )
|
|
atan2_16::xd#3 = phi( atan2_16::@13/atan2_16::xd#7 )
|
|
atan2_16::xd#1 = atan2_16::xd#3 >> 2
|
|
atan2_16::yd#1 = atan2_16::yd#3 >> 2
|
|
atan2_16::shift#1 = atan2_16::shift#3 - 2
|
|
to:atan2_16::@13
|
|
atan2_16::@15: scope:[atan2_16] from atan2_16::@13
|
|
atan2_16::y#16 = phi( atan2_16::@13/atan2_16::y#18 )
|
|
atan2_16::x#14 = phi( atan2_16::@13/atan2_16::x#16 )
|
|
atan2_16::angle#16 = phi( atan2_16::@13/atan2_16::angle#18 )
|
|
atan2_16::i#8 = phi( atan2_16::@13/atan2_16::i#10 )
|
|
atan2_16::xi#9 = phi( atan2_16::@13/atan2_16::xi#11 )
|
|
atan2_16::yd#8 = phi( atan2_16::@13/atan2_16::yd#7 )
|
|
atan2_16::xd#8 = phi( atan2_16::@13/atan2_16::xd#7 )
|
|
atan2_16::yi#10 = phi( atan2_16::@13/atan2_16::yi#14 )
|
|
atan2_16::shift#4 = phi( atan2_16::@13/atan2_16::shift#2 )
|
|
atan2_16::$24 = 0 != atan2_16::shift#4
|
|
atan2_16::$19 = ! atan2_16::$24
|
|
if(atan2_16::$19) goto atan2_16::@17
|
|
to:atan2_16::@16
|
|
atan2_16::@17: scope:[atan2_16] from atan2_16::@15 atan2_16::@16
|
|
atan2_16::y#14 = phi( atan2_16::@15/atan2_16::y#16, atan2_16::@16/atan2_16::y#17 )
|
|
atan2_16::x#13 = phi( atan2_16::@15/atan2_16::x#14, atan2_16::@16/atan2_16::x#15 )
|
|
atan2_16::angle#14 = phi( atan2_16::@15/atan2_16::angle#16, atan2_16::@16/atan2_16::angle#17 )
|
|
atan2_16::i#7 = phi( atan2_16::@15/atan2_16::i#8, atan2_16::@16/atan2_16::i#9 )
|
|
atan2_16::xd#9 = phi( atan2_16::@15/atan2_16::xd#8, atan2_16::@16/atan2_16::xd#2 )
|
|
atan2_16::yd#9 = phi( atan2_16::@15/atan2_16::yd#8, atan2_16::@16/atan2_16::yd#2 )
|
|
atan2_16::xi#7 = phi( atan2_16::@15/atan2_16::xi#9, atan2_16::@16/atan2_16::xi#10 )
|
|
atan2_16::yi#5 = phi( atan2_16::@15/atan2_16::yi#10, atan2_16::@16/atan2_16::yi#11 )
|
|
atan2_16::$20 = atan2_16::yi#5 >= 0
|
|
if(atan2_16::$20) goto atan2_16::@18
|
|
to:atan2_16::@20
|
|
atan2_16::@16: scope:[atan2_16] from atan2_16::@15
|
|
atan2_16::y#17 = phi( atan2_16::@15/atan2_16::y#16 )
|
|
atan2_16::x#15 = phi( atan2_16::@15/atan2_16::x#14 )
|
|
atan2_16::angle#17 = phi( atan2_16::@15/atan2_16::angle#16 )
|
|
atan2_16::i#9 = phi( atan2_16::@15/atan2_16::i#8 )
|
|
atan2_16::xi#10 = phi( atan2_16::@15/atan2_16::xi#9 )
|
|
atan2_16::yi#11 = phi( atan2_16::@15/atan2_16::yi#10 )
|
|
atan2_16::yd#4 = phi( atan2_16::@15/atan2_16::yd#8 )
|
|
atan2_16::xd#4 = phi( atan2_16::@15/atan2_16::xd#8 )
|
|
atan2_16::xd#2 = atan2_16::xd#4 >> 1
|
|
atan2_16::yd#2 = atan2_16::yd#4 >> 1
|
|
to:atan2_16::@17
|
|
atan2_16::@18: scope:[atan2_16] from atan2_16::@17
|
|
atan2_16::y#10 = phi( atan2_16::@17/atan2_16::y#14 )
|
|
atan2_16::x#11 = phi( atan2_16::@17/atan2_16::x#13 )
|
|
atan2_16::angle#7 = phi( atan2_16::@17/atan2_16::angle#14 )
|
|
atan2_16::i#3 = phi( atan2_16::@17/atan2_16::i#7 )
|
|
atan2_16::xd#5 = phi( atan2_16::@17/atan2_16::xd#9 )
|
|
atan2_16::yi#6 = phi( atan2_16::@17/atan2_16::yi#5 )
|
|
atan2_16::yd#5 = phi( atan2_16::@17/atan2_16::yd#9 )
|
|
atan2_16::xi#4 = phi( atan2_16::@17/atan2_16::xi#7 )
|
|
atan2_16::xi#1 = atan2_16::xi#4 + atan2_16::yd#5
|
|
atan2_16::yi#1 = atan2_16::yi#6 - atan2_16::xd#5
|
|
atan2_16::$22 = atan2_16::i#3 * SIZEOF_WORD
|
|
atan2_16::angle#2 = atan2_16::angle#7 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22]
|
|
to:atan2_16::@19
|
|
atan2_16::@20: scope:[atan2_16] from atan2_16::@17
|
|
atan2_16::y#11 = phi( atan2_16::@17/atan2_16::y#14 )
|
|
atan2_16::x#12 = phi( atan2_16::@17/atan2_16::x#13 )
|
|
atan2_16::angle#8 = phi( atan2_16::@17/atan2_16::angle#14 )
|
|
atan2_16::i#4 = phi( atan2_16::@17/atan2_16::i#7 )
|
|
atan2_16::xd#6 = phi( atan2_16::@17/atan2_16::xd#9 )
|
|
atan2_16::yi#7 = phi( atan2_16::@17/atan2_16::yi#5 )
|
|
atan2_16::yd#6 = phi( atan2_16::@17/atan2_16::yd#9 )
|
|
atan2_16::xi#5 = phi( atan2_16::@17/atan2_16::xi#7 )
|
|
atan2_16::xi#2 = atan2_16::xi#5 - atan2_16::yd#6
|
|
atan2_16::yi#2 = atan2_16::yi#7 + atan2_16::xd#6
|
|
atan2_16::$23 = atan2_16::i#4 * SIZEOF_WORD
|
|
atan2_16::angle#3 = atan2_16::angle#8 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23]
|
|
to:atan2_16::@19
|
|
atan2_16::@19: scope:[atan2_16] from atan2_16::@18 atan2_16::@20
|
|
atan2_16::y#8 = phi( atan2_16::@18/atan2_16::y#10, atan2_16::@20/atan2_16::y#11 )
|
|
atan2_16::xi#8 = phi( atan2_16::@18/atan2_16::xi#1, atan2_16::@20/atan2_16::xi#2 )
|
|
atan2_16::x#8 = phi( atan2_16::@18/atan2_16::x#11, atan2_16::@20/atan2_16::x#12 )
|
|
atan2_16::angle#13 = phi( atan2_16::@18/atan2_16::angle#2, atan2_16::@20/atan2_16::angle#3 )
|
|
atan2_16::yi#8 = phi( atan2_16::@18/atan2_16::yi#1, atan2_16::@20/atan2_16::yi#2 )
|
|
atan2_16::i#5 = phi( atan2_16::@18/atan2_16::i#3, atan2_16::@20/atan2_16::i#4 )
|
|
atan2_16::i#1 = atan2_16::i#5 + rangenext(0,CORDIC_ITERATIONS_16-1)
|
|
atan2_16::$21 = atan2_16::i#1 != rangelast(0,CORDIC_ITERATIONS_16-1)
|
|
if(atan2_16::$21) goto atan2_16::@10
|
|
to:atan2_16::@12
|
|
atan2_16::@7: scope:[atan2_16] from atan2_16::@12 atan2_16::@21
|
|
atan2_16::angle#15 = phi( atan2_16::@12/atan2_16::angle#1, atan2_16::@21/atan2_16::angle#4 )
|
|
atan2_16::y#4 = phi( atan2_16::@12/atan2_16::y#5, atan2_16::@21/atan2_16::y#6 )
|
|
atan2_16::$13 = atan2_16::y#4 < 0
|
|
atan2_16::$14 = ! atan2_16::$13
|
|
if(atan2_16::$14) goto atan2_16::@8
|
|
to:atan2_16::@9
|
|
atan2_16::@21: scope:[atan2_16] from atan2_16::@12
|
|
atan2_16::y#6 = phi( atan2_16::@12/atan2_16::y#5 )
|
|
atan2_16::angle#9 = phi( atan2_16::@12/atan2_16::angle#1 )
|
|
atan2_16::$12 = $8000 - atan2_16::angle#9
|
|
atan2_16::angle#4 = atan2_16::$12
|
|
to:atan2_16::@7
|
|
atan2_16::@8: scope:[atan2_16] from atan2_16::@7 atan2_16::@9
|
|
atan2_16::angle#10 = phi( atan2_16::@7/atan2_16::angle#15, atan2_16::@9/atan2_16::angle#5 )
|
|
atan2_16::return#0 = atan2_16::angle#10
|
|
to:atan2_16::@return
|
|
atan2_16::@9: scope:[atan2_16] from atan2_16::@7
|
|
atan2_16::angle#11 = phi( atan2_16::@7/atan2_16::angle#15 )
|
|
atan2_16::$15 = - atan2_16::angle#11
|
|
atan2_16::angle#5 = atan2_16::$15
|
|
to:atan2_16::@8
|
|
atan2_16::@return: scope:[atan2_16] from atan2_16::@8
|
|
atan2_16::return#3 = phi( atan2_16::@8/atan2_16::return#0 )
|
|
atan2_16::return#1 = atan2_16::return#3
|
|
return
|
|
to:@return
|
|
|
|
void main()
|
|
main: scope:[main] from __start::@1
|
|
SCREEN_COPY#6 = phi( __start::@1/SCREEN_COPY#10 )
|
|
SCREEN_DIST#2 = phi( __start::@1/SCREEN_DIST#5 )
|
|
init_angle_screen::screen#0 = SCREEN_DIST#2
|
|
call init_angle_screen
|
|
to:main::@10
|
|
main::@10: scope:[main] from main
|
|
SCREEN_DIST#17 = phi( main/SCREEN_DIST#2 )
|
|
SCREEN_COPY#2 = phi( main/SCREEN_COPY#6 )
|
|
main::src#0 = SCREEN
|
|
main::dst#0 = SCREEN_COPY#2
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@10 main::@2
|
|
SCREEN_DIST#16 = phi( main::@10/SCREEN_DIST#17, main::@2/SCREEN_DIST#18 )
|
|
SCREEN_COPY#26 = phi( main::@10/SCREEN_COPY#2, main::@2/SCREEN_COPY#27 )
|
|
main::dst#3 = phi( main::@10/main::dst#0, main::@2/main::dst#1 )
|
|
main::src#2 = phi( main::@10/main::src#0, main::@2/main::src#1 )
|
|
main::$3 = main::src#2 != SCREEN+$3e8
|
|
if(main::$3) goto main::@2
|
|
to:main::@3
|
|
main::@2: scope:[main] from main::@1
|
|
SCREEN_DIST#18 = phi( main::@1/SCREEN_DIST#16 )
|
|
SCREEN_COPY#27 = phi( main::@1/SCREEN_COPY#26 )
|
|
main::dst#2 = phi( main::@1/main::dst#3 )
|
|
main::src#3 = phi( main::@1/main::src#2 )
|
|
*main::dst#2 = *main::src#3
|
|
main::src#1 = ++ main::src#3
|
|
main::dst#1 = ++ main::dst#2
|
|
to:main::@1
|
|
main::@3: scope:[main] from main::@1
|
|
SCREEN_DIST#15 = phi( main::@1/SCREEN_DIST#16 )
|
|
SCREEN_COPY#25 = phi( main::@1/SCREEN_COPY#26 )
|
|
main::i#0 = 0
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@3 main::@4
|
|
SCREEN_DIST#14 = phi( main::@3/SCREEN_DIST#15, main::@4/SCREEN_DIST#14 )
|
|
SCREEN_COPY#23 = phi( main::@3/SCREEN_COPY#25, main::@4/SCREEN_COPY#23 )
|
|
main::i#2 = phi( main::@3/main::i#0, main::@4/main::i#1 )
|
|
main::$10 = main::i#2 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
PROCESSING[main::$10] = memcpy(*(&$0), struct ProcessingSprite, SIZEOF_STRUCT_PROCESSINGSPRITE)
|
|
main::i#1 = main::i#2 + rangenext(0,NUM_PROCESSING-1)
|
|
main::$4 = main::i#1 != rangelast(0,NUM_PROCESSING-1)
|
|
if(main::$4) goto main::@4
|
|
to:main::@5
|
|
main::@5: scope:[main] from main::@4
|
|
SCREEN_DIST#12 = phi( main::@4/SCREEN_DIST#14 )
|
|
SCREEN_COPY#18 = phi( main::@4/SCREEN_COPY#23 )
|
|
call initSprites
|
|
to:main::@11
|
|
main::@11: scope:[main] from main::@5
|
|
SCREEN_DIST#10 = phi( main::@5/SCREEN_DIST#12 )
|
|
SCREEN_COPY#14 = phi( main::@5/SCREEN_COPY#18 )
|
|
setupRasterIrq::raster#0 = RASTER_IRQ_TOP
|
|
setupRasterIrq::irqRoutine#0 = &irqTop
|
|
call setupRasterIrq
|
|
to:main::@12
|
|
main::@12: scope:[main] from main::@11
|
|
SCREEN_DIST#8 = phi( main::@11/SCREEN_DIST#10 )
|
|
SCREEN_COPY#11 = phi( main::@11/SCREEN_COPY#14 )
|
|
to:main::@6
|
|
main::@6: scope:[main] from main::@12 main::@14
|
|
SCREEN_DIST#6 = phi( main::@12/SCREEN_DIST#8, main::@14/SCREEN_DIST#9 )
|
|
SCREEN_COPY#7 = phi( main::@12/SCREEN_COPY#11, main::@14/SCREEN_COPY#12 )
|
|
call getCharToProcess
|
|
getCharToProcess::return_x#0 = getCharToProcess::return_x#2
|
|
getCharToProcess::return_y#0 = getCharToProcess::return_y#2
|
|
getCharToProcess::return_dist#0 = getCharToProcess::return_dist#2
|
|
to:main::@13
|
|
main::@13: scope:[main] from main::@6
|
|
SCREEN_DIST#13 = phi( main::@6/SCREEN_DIST#6 )
|
|
SCREEN_COPY#19 = phi( main::@6/SCREEN_COPY#7 )
|
|
getCharToProcess::return_dist#3 = phi( main::@6/getCharToProcess::return_dist#0 )
|
|
getCharToProcess::return_y#3 = phi( main::@6/getCharToProcess::return_y#0 )
|
|
getCharToProcess::return_x#3 = phi( main::@6/getCharToProcess::return_x#0 )
|
|
main::$5_x = getCharToProcess::return_x#3
|
|
main::$5_y = getCharToProcess::return_y#3
|
|
main::$5_dist = getCharToProcess::return_dist#3
|
|
main::center_x#0 = main::$5_x
|
|
main::center_y#0 = main::$5_y
|
|
main::center_dist#0 = main::$5_dist
|
|
main::$6 = main::center_dist#0 == NOT_FOUND
|
|
main::$7 = ! main::$6
|
|
if(main::$7) goto main::@7
|
|
to:main::@8
|
|
main::@7: scope:[main] from main::@13
|
|
SCREEN_DIST#11 = phi( main::@13/SCREEN_DIST#13 )
|
|
SCREEN_COPY#15 = phi( main::@13/SCREEN_COPY#19 )
|
|
main::center_dist#1 = phi( main::@13/main::center_dist#0 )
|
|
main::center_y#1 = phi( main::@13/main::center_y#0 )
|
|
main::center_x#1 = phi( main::@13/main::center_x#0 )
|
|
startProcessing::center_x#0 = main::center_x#1
|
|
startProcessing::center_y#0 = main::center_y#1
|
|
startProcessing::center_dist#0 = main::center_dist#1
|
|
call startProcessing
|
|
to:main::@14
|
|
main::@14: scope:[main] from main::@7
|
|
SCREEN_DIST#9 = phi( main::@7/SCREEN_DIST#11 )
|
|
SCREEN_COPY#12 = phi( main::@7/SCREEN_COPY#15 )
|
|
if(true) goto main::@6
|
|
to:main::@8
|
|
main::@8: scope:[main] from main::@13 main::@14
|
|
*(SCREEN+$3e7) = '.'
|
|
to:main::@9
|
|
main::@9: scope:[main] from main::@8 main::@9
|
|
*(COLS+$3e7) = ++ *(COLS+$3e7)
|
|
if(true) goto main::@9
|
|
to:main::@return
|
|
main::@return: scope:[main] from main::@9
|
|
return
|
|
to:@return
|
|
|
|
struct ProcessingChar getCharToProcess()
|
|
getCharToProcess: scope:[getCharToProcess] from main::@6
|
|
SCREEN_DIST#3 = phi( main::@6/SCREEN_DIST#6 )
|
|
SCREEN_COPY#3 = phi( main::@6/SCREEN_COPY#7 )
|
|
getCharToProcess::closest_x#0 = 0
|
|
getCharToProcess::closest_y#0 = 0
|
|
getCharToProcess::closest_dist#0 = NOT_FOUND
|
|
getCharToProcess::screen_line#0 = SCREEN_COPY#3
|
|
getCharToProcess::dist_line#0 = SCREEN_DIST#3
|
|
getCharToProcess::y#0 = 0
|
|
to:getCharToProcess::@2
|
|
getCharToProcess::@2: scope:[getCharToProcess] from getCharToProcess getCharToProcess::@7
|
|
SCREEN_COPY#24 = phi( getCharToProcess/SCREEN_COPY#3, getCharToProcess::@7/SCREEN_COPY#13 )
|
|
getCharToProcess::closest_y#9 = phi( getCharToProcess/getCharToProcess::closest_y#0, getCharToProcess::@7/getCharToProcess::closest_y#5 )
|
|
getCharToProcess::closest_x#9 = phi( getCharToProcess/getCharToProcess::closest_x#0, getCharToProcess::@7/getCharToProcess::closest_x#5 )
|
|
getCharToProcess::y#7 = phi( getCharToProcess/getCharToProcess::y#0, getCharToProcess::@7/getCharToProcess::y#1 )
|
|
getCharToProcess::closest_dist#8 = phi( getCharToProcess/getCharToProcess::closest_dist#0, getCharToProcess::@7/getCharToProcess::closest_dist#6 )
|
|
getCharToProcess::dist_line#6 = phi( getCharToProcess/getCharToProcess::dist_line#0, getCharToProcess::@7/getCharToProcess::dist_line#1 )
|
|
getCharToProcess::screen_line#4 = phi( getCharToProcess/getCharToProcess::screen_line#0, getCharToProcess::@7/getCharToProcess::screen_line#1 )
|
|
getCharToProcess::x#0 = 0
|
|
to:getCharToProcess::@3
|
|
getCharToProcess::@3: scope:[getCharToProcess] from getCharToProcess::@2 getCharToProcess::@4
|
|
SCREEN_COPY#20 = phi( getCharToProcess::@2/SCREEN_COPY#24, getCharToProcess::@4/SCREEN_COPY#16 )
|
|
getCharToProcess::closest_y#7 = phi( getCharToProcess::@2/getCharToProcess::closest_y#9, getCharToProcess::@4/getCharToProcess::closest_y#6 )
|
|
getCharToProcess::closest_x#7 = phi( getCharToProcess::@2/getCharToProcess::closest_x#9, getCharToProcess::@4/getCharToProcess::closest_x#6 )
|
|
getCharToProcess::y#6 = phi( getCharToProcess::@2/getCharToProcess::y#7, getCharToProcess::@4/getCharToProcess::y#5 )
|
|
getCharToProcess::closest_dist#5 = phi( getCharToProcess::@2/getCharToProcess::closest_dist#8, getCharToProcess::@4/getCharToProcess::closest_dist#9 )
|
|
getCharToProcess::dist_line#4 = phi( getCharToProcess::@2/getCharToProcess::dist_line#6, getCharToProcess::@4/getCharToProcess::dist_line#5 )
|
|
getCharToProcess::x#2 = phi( getCharToProcess::@2/getCharToProcess::x#0, getCharToProcess::@4/getCharToProcess::x#1 )
|
|
getCharToProcess::screen_line#2 = phi( getCharToProcess::@2/getCharToProcess::screen_line#4, getCharToProcess::@4/getCharToProcess::screen_line#5 )
|
|
getCharToProcess::$2 = getCharToProcess::screen_line#2[getCharToProcess::x#2] != ' '
|
|
getCharToProcess::$3 = ! getCharToProcess::$2
|
|
if(getCharToProcess::$3) goto getCharToProcess::@4
|
|
to:getCharToProcess::@5
|
|
getCharToProcess::@4: scope:[getCharToProcess] from getCharToProcess::@3 getCharToProcess::@5 getCharToProcess::@6
|
|
SCREEN_COPY#16 = phi( getCharToProcess::@3/SCREEN_COPY#20, getCharToProcess::@5/SCREEN_COPY#21, getCharToProcess::@6/SCREEN_COPY#22 )
|
|
getCharToProcess::closest_y#6 = phi( getCharToProcess::@3/getCharToProcess::closest_y#7, getCharToProcess::@5/getCharToProcess::closest_y#8, getCharToProcess::@6/getCharToProcess::closest_y#1 )
|
|
getCharToProcess::closest_x#6 = phi( getCharToProcess::@3/getCharToProcess::closest_x#7, getCharToProcess::@5/getCharToProcess::closest_x#8, getCharToProcess::@6/getCharToProcess::closest_x#1 )
|
|
getCharToProcess::closest_dist#9 = phi( getCharToProcess::@3/getCharToProcess::closest_dist#5, getCharToProcess::@5/getCharToProcess::closest_dist#2, getCharToProcess::@6/getCharToProcess::closest_dist#1 )
|
|
getCharToProcess::y#5 = phi( getCharToProcess::@3/getCharToProcess::y#6, getCharToProcess::@5/getCharToProcess::y#4, getCharToProcess::@6/getCharToProcess::y#2 )
|
|
getCharToProcess::dist_line#5 = phi( getCharToProcess::@3/getCharToProcess::dist_line#4, getCharToProcess::@5/getCharToProcess::dist_line#2, getCharToProcess::@6/getCharToProcess::dist_line#7 )
|
|
getCharToProcess::screen_line#5 = phi( getCharToProcess::@3/getCharToProcess::screen_line#2, getCharToProcess::@5/getCharToProcess::screen_line#6, getCharToProcess::@6/getCharToProcess::screen_line#7 )
|
|
getCharToProcess::x#3 = phi( getCharToProcess::@3/getCharToProcess::x#2, getCharToProcess::@5/getCharToProcess::x#4, getCharToProcess::@6/getCharToProcess::x#5 )
|
|
getCharToProcess::x#1 = getCharToProcess::x#3 + rangenext(0,$27)
|
|
getCharToProcess::$6 = getCharToProcess::x#1 != rangelast(0,$27)
|
|
if(getCharToProcess::$6) goto getCharToProcess::@3
|
|
to:getCharToProcess::@7
|
|
getCharToProcess::@5: scope:[getCharToProcess] from getCharToProcess::@3
|
|
SCREEN_COPY#21 = phi( getCharToProcess::@3/SCREEN_COPY#20 )
|
|
getCharToProcess::closest_y#8 = phi( getCharToProcess::@3/getCharToProcess::closest_y#7 )
|
|
getCharToProcess::closest_x#8 = phi( getCharToProcess::@3/getCharToProcess::closest_x#7 )
|
|
getCharToProcess::screen_line#6 = phi( getCharToProcess::@3/getCharToProcess::screen_line#2 )
|
|
getCharToProcess::y#4 = phi( getCharToProcess::@3/getCharToProcess::y#6 )
|
|
getCharToProcess::closest_dist#2 = phi( getCharToProcess::@3/getCharToProcess::closest_dist#5 )
|
|
getCharToProcess::x#4 = phi( getCharToProcess::@3/getCharToProcess::x#2 )
|
|
getCharToProcess::dist_line#2 = phi( getCharToProcess::@3/getCharToProcess::dist_line#4 )
|
|
getCharToProcess::dist#0 = getCharToProcess::dist_line#2[getCharToProcess::x#4]
|
|
getCharToProcess::$4 = getCharToProcess::dist#0 < getCharToProcess::closest_dist#2
|
|
getCharToProcess::$5 = ! getCharToProcess::$4
|
|
if(getCharToProcess::$5) goto getCharToProcess::@4
|
|
to:getCharToProcess::@6
|
|
getCharToProcess::@6: scope:[getCharToProcess] from getCharToProcess::@5
|
|
SCREEN_COPY#22 = phi( getCharToProcess::@5/SCREEN_COPY#21 )
|
|
getCharToProcess::dist_line#7 = phi( getCharToProcess::@5/getCharToProcess::dist_line#2 )
|
|
getCharToProcess::screen_line#7 = phi( getCharToProcess::@5/getCharToProcess::screen_line#6 )
|
|
getCharToProcess::dist#1 = phi( getCharToProcess::@5/getCharToProcess::dist#0 )
|
|
getCharToProcess::y#2 = phi( getCharToProcess::@5/getCharToProcess::y#4 )
|
|
getCharToProcess::x#5 = phi( getCharToProcess::@5/getCharToProcess::x#4 )
|
|
getCharToProcess::closest_x#1 = getCharToProcess::x#5
|
|
getCharToProcess::closest_y#1 = getCharToProcess::y#2
|
|
getCharToProcess::closest_dist#1 = getCharToProcess::dist#1
|
|
to:getCharToProcess::@4
|
|
getCharToProcess::@7: scope:[getCharToProcess] from getCharToProcess::@4
|
|
SCREEN_COPY#13 = phi( getCharToProcess::@4/SCREEN_COPY#16 )
|
|
getCharToProcess::closest_y#5 = phi( getCharToProcess::@4/getCharToProcess::closest_y#6 )
|
|
getCharToProcess::closest_x#5 = phi( getCharToProcess::@4/getCharToProcess::closest_x#6 )
|
|
getCharToProcess::closest_dist#6 = phi( getCharToProcess::@4/getCharToProcess::closest_dist#9 )
|
|
getCharToProcess::y#3 = phi( getCharToProcess::@4/getCharToProcess::y#5 )
|
|
getCharToProcess::dist_line#3 = phi( getCharToProcess::@4/getCharToProcess::dist_line#5 )
|
|
getCharToProcess::screen_line#3 = phi( getCharToProcess::@4/getCharToProcess::screen_line#5 )
|
|
getCharToProcess::screen_line#1 = getCharToProcess::screen_line#3 + $28
|
|
getCharToProcess::dist_line#1 = getCharToProcess::dist_line#3 + $28
|
|
getCharToProcess::y#1 = getCharToProcess::y#3 + rangenext(0,$18)
|
|
getCharToProcess::$7 = getCharToProcess::y#1 != rangelast(0,$18)
|
|
if(getCharToProcess::$7) goto getCharToProcess::@2
|
|
to:getCharToProcess::@8
|
|
getCharToProcess::@8: scope:[getCharToProcess] from getCharToProcess::@7
|
|
SCREEN_COPY#8 = phi( getCharToProcess::@7/SCREEN_COPY#13 )
|
|
getCharToProcess::closest_y#4 = phi( getCharToProcess::@7/getCharToProcess::closest_y#5 )
|
|
getCharToProcess::closest_x#4 = phi( getCharToProcess::@7/getCharToProcess::closest_x#5 )
|
|
getCharToProcess::closest_dist#3 = phi( getCharToProcess::@7/getCharToProcess::closest_dist#6 )
|
|
getCharToProcess::$0 = getCharToProcess::closest_dist#3 != NOT_FOUND
|
|
getCharToProcess::$1 = ! getCharToProcess::$0
|
|
if(getCharToProcess::$1) goto getCharToProcess::@1
|
|
to:getCharToProcess::@9
|
|
getCharToProcess::@1: scope:[getCharToProcess] from getCharToProcess::@8 getCharToProcess::@9
|
|
getCharToProcess::closest_dist#4 = phi( getCharToProcess::@8/getCharToProcess::closest_dist#3, getCharToProcess::@9/getCharToProcess::closest_dist#7 )
|
|
getCharToProcess::closest_y#2 = phi( getCharToProcess::@8/getCharToProcess::closest_y#4, getCharToProcess::@9/getCharToProcess::closest_y#3 )
|
|
getCharToProcess::closest_x#2 = phi( getCharToProcess::@8/getCharToProcess::closest_x#4, getCharToProcess::@9/getCharToProcess::closest_x#3 )
|
|
getCharToProcess::return_x#1 = getCharToProcess::closest_x#2
|
|
getCharToProcess::return_y#1 = getCharToProcess::closest_y#2
|
|
getCharToProcess::return_dist#1 = getCharToProcess::closest_dist#4
|
|
getCharToProcess::return#0 = struct-unwound {getCharToProcess::return_x#1, getCharToProcess::return_y#1, getCharToProcess::return_dist#1}
|
|
to:getCharToProcess::@return
|
|
getCharToProcess::@9: scope:[getCharToProcess] from getCharToProcess::@8
|
|
getCharToProcess::closest_dist#7 = phi( getCharToProcess::@8/getCharToProcess::closest_dist#3 )
|
|
getCharToProcess::closest_x#3 = phi( getCharToProcess::@8/getCharToProcess::closest_x#4 )
|
|
SCREEN_COPY#4 = phi( getCharToProcess::@8/SCREEN_COPY#8 )
|
|
getCharToProcess::closest_y#3 = phi( getCharToProcess::@8/getCharToProcess::closest_y#4 )
|
|
getCharToProcess::$11 = (word)getCharToProcess::closest_y#3
|
|
getCharToProcess::$8 = getCharToProcess::$11 * $28
|
|
getCharToProcess::$9 = SCREEN_COPY#4 + getCharToProcess::$8
|
|
getCharToProcess::$10 = getCharToProcess::$9 + getCharToProcess::closest_x#3
|
|
*getCharToProcess::$10 = ' '
|
|
to:getCharToProcess::@1
|
|
getCharToProcess::@return: scope:[getCharToProcess] from getCharToProcess::@1
|
|
getCharToProcess::return_dist#4 = phi( getCharToProcess::@1/getCharToProcess::return_dist#1 )
|
|
getCharToProcess::return_y#4 = phi( getCharToProcess::@1/getCharToProcess::return_y#1 )
|
|
getCharToProcess::return_x#4 = phi( getCharToProcess::@1/getCharToProcess::return_x#1 )
|
|
getCharToProcess::return_x#2 = getCharToProcess::return_x#4
|
|
getCharToProcess::return_y#2 = getCharToProcess::return_y#4
|
|
getCharToProcess::return_dist#2 = getCharToProcess::return_dist#4
|
|
getCharToProcess::return#1 = struct-unwound {getCharToProcess::return_x#2, getCharToProcess::return_y#2, getCharToProcess::return_dist#2}
|
|
return
|
|
to:@return
|
|
|
|
void startProcessing(byte startProcessing::center_x , byte startProcessing::center_y , byte startProcessing::center_dist)
|
|
startProcessing: scope:[startProcessing] from main::@7
|
|
startProcessing::center_x#9 = phi( main::@7/startProcessing::center_x#0 )
|
|
startProcessing::center_y#9 = phi( main::@7/startProcessing::center_y#0 )
|
|
startProcessing::freeIdx#0 = $ff
|
|
to:startProcessing::@1
|
|
startProcessing::@1: scope:[startProcessing] from startProcessing startProcessing::@4
|
|
startProcessing::center_x#8 = phi( startProcessing/startProcessing::center_x#9, startProcessing::@4/startProcessing::center_x#3 )
|
|
startProcessing::center_y#8 = phi( startProcessing/startProcessing::center_y#9, startProcessing::@4/startProcessing::center_y#3 )
|
|
startProcessing::freeIdx#6 = phi( startProcessing/startProcessing::freeIdx#0, startProcessing::@4/startProcessing::freeIdx#2 )
|
|
startProcessing::i#0 = 0
|
|
to:startProcessing::@2
|
|
startProcessing::@2: scope:[startProcessing] from startProcessing::@1 startProcessing::@3
|
|
startProcessing::center_x#7 = phi( startProcessing::@1/startProcessing::center_x#8, startProcessing::@3/startProcessing::center_x#5 )
|
|
startProcessing::center_y#7 = phi( startProcessing::@1/startProcessing::center_y#8, startProcessing::@3/startProcessing::center_y#5 )
|
|
startProcessing::freeIdx#5 = phi( startProcessing::@1/startProcessing::freeIdx#6, startProcessing::@3/startProcessing::freeIdx#4 )
|
|
startProcessing::i#2 = phi( startProcessing::@1/startProcessing::i#0, startProcessing::@3/startProcessing::i#1 )
|
|
startProcessing::$21 = startProcessing::i#2 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
startProcessing::$16 = ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21] == STATUS_FREE
|
|
startProcessing::$17 = ! startProcessing::$16
|
|
if(startProcessing::$17) goto startProcessing::@3
|
|
to:startProcessing::@5
|
|
startProcessing::@3: scope:[startProcessing] from startProcessing::@2
|
|
startProcessing::center_x#5 = phi( startProcessing::@2/startProcessing::center_x#7 )
|
|
startProcessing::center_y#5 = phi( startProcessing::@2/startProcessing::center_y#7 )
|
|
startProcessing::freeIdx#4 = phi( startProcessing::@2/startProcessing::freeIdx#5 )
|
|
startProcessing::i#3 = phi( startProcessing::@2/startProcessing::i#2 )
|
|
startProcessing::i#1 = startProcessing::i#3 + rangenext(0,NUM_PROCESSING-1)
|
|
startProcessing::$18 = startProcessing::i#1 != rangelast(0,NUM_PROCESSING-1)
|
|
if(startProcessing::$18) goto startProcessing::@2
|
|
to:startProcessing::@4
|
|
startProcessing::@5: scope:[startProcessing] from startProcessing::@2
|
|
startProcessing::center_x#6 = phi( startProcessing::@2/startProcessing::center_x#7 )
|
|
startProcessing::center_y#6 = phi( startProcessing::@2/startProcessing::center_y#7 )
|
|
startProcessing::i#4 = phi( startProcessing::@2/startProcessing::i#2 )
|
|
startProcessing::freeIdx#1 = startProcessing::i#4
|
|
to:startProcessing::@4
|
|
startProcessing::@4: scope:[startProcessing] from startProcessing::@3 startProcessing::@5
|
|
startProcessing::center_x#3 = phi( startProcessing::@3/startProcessing::center_x#5, startProcessing::@5/startProcessing::center_x#6 )
|
|
startProcessing::center_y#3 = phi( startProcessing::@3/startProcessing::center_y#5, startProcessing::@5/startProcessing::center_y#6 )
|
|
startProcessing::freeIdx#2 = phi( startProcessing::@3/startProcessing::freeIdx#4, startProcessing::@5/startProcessing::freeIdx#1 )
|
|
startProcessing::$19 = startProcessing::freeIdx#2 == $ff
|
|
if(startProcessing::$19) goto startProcessing::@1
|
|
to:startProcessing::@6
|
|
startProcessing::@6: scope:[startProcessing] from startProcessing::@4
|
|
startProcessing::center_x#1 = phi( startProcessing::@4/startProcessing::center_x#3 )
|
|
startProcessing::center_y#1 = phi( startProcessing::@4/startProcessing::center_y#3 )
|
|
startProcessing::freeIdx#3 = phi( startProcessing::@4/startProcessing::freeIdx#2 )
|
|
startProcessing::spriteIdx#0 = startProcessing::freeIdx#3
|
|
startProcessing::$23 = (word)startProcessing::center_y#1
|
|
startProcessing::$0 = startProcessing::$23 * $28
|
|
startProcessing::$1 = startProcessing::$0 + startProcessing::center_x#1
|
|
startProcessing::offset#0 = startProcessing::$1
|
|
startProcessing::$2 = COLS + startProcessing::offset#0
|
|
startProcessing::colPtr#0 = startProcessing::$2
|
|
startProcessing::spriteCol#0 = *startProcessing::colPtr#0
|
|
startProcessing::$3 = SCREEN + startProcessing::offset#0
|
|
startProcessing::screenPtr#0 = startProcessing::$3
|
|
startProcessing::$24 = (word)startProcessing::spriteIdx#0
|
|
startProcessing::$4 = startProcessing::$24 * $40
|
|
startProcessing::$5 = SPRITE_DATA + startProcessing::$4
|
|
startProcessing::spriteData#0 = startProcessing::$5
|
|
startProcessing::ch#0 = *startProcessing::screenPtr#0
|
|
startProcessing::$25 = (word)startProcessing::ch#0
|
|
startProcessing::$6 = startProcessing::$25 * 8
|
|
startProcessing::$7 = CHARGEN + startProcessing::$6
|
|
startProcessing::chargenData#0 = startProcessing::$7
|
|
asm { sei }
|
|
*PROCPORT = PROCPORT_RAM_CHARROM
|
|
startProcessing::i1#0 = 0
|
|
to:startProcessing::@7
|
|
startProcessing::@7: scope:[startProcessing] from startProcessing::@6 startProcessing::@7
|
|
startProcessing::screenPtr#2 = phi( startProcessing::@6/startProcessing::screenPtr#0, startProcessing::@7/startProcessing::screenPtr#2 )
|
|
startProcessing::spriteCol#2 = phi( startProcessing::@6/startProcessing::spriteCol#0, startProcessing::@7/startProcessing::spriteCol#2 )
|
|
startProcessing::spriteIdx#2 = phi( startProcessing::@6/startProcessing::spriteIdx#0, startProcessing::@7/startProcessing::spriteIdx#2 )
|
|
startProcessing::center_y#4 = phi( startProcessing::@6/startProcessing::center_y#1, startProcessing::@7/startProcessing::center_y#4 )
|
|
startProcessing::center_x#4 = phi( startProcessing::@6/startProcessing::center_x#1, startProcessing::@7/startProcessing::center_x#4 )
|
|
startProcessing::i1#2 = phi( startProcessing::@6/startProcessing::i1#0, startProcessing::@7/startProcessing::i1#1 )
|
|
startProcessing::spriteData#2 = phi( startProcessing::@6/startProcessing::spriteData#0, startProcessing::@7/startProcessing::spriteData#1 )
|
|
startProcessing::chargenData#2 = phi( startProcessing::@6/startProcessing::chargenData#0, startProcessing::@7/startProcessing::chargenData#1 )
|
|
*startProcessing::spriteData#2 = *startProcessing::chargenData#2
|
|
startProcessing::spriteData#1 = startProcessing::spriteData#2 + 3
|
|
startProcessing::chargenData#1 = ++ startProcessing::chargenData#2
|
|
startProcessing::i1#1 = startProcessing::i1#2 + rangenext(0,7)
|
|
startProcessing::$20 = startProcessing::i1#1 != rangelast(0,7)
|
|
if(startProcessing::$20) goto startProcessing::@7
|
|
to:startProcessing::@8
|
|
startProcessing::@8: scope:[startProcessing] from startProcessing::@7
|
|
startProcessing::screenPtr#1 = phi( startProcessing::@7/startProcessing::screenPtr#2 )
|
|
startProcessing::spriteCol#1 = phi( startProcessing::@7/startProcessing::spriteCol#2 )
|
|
startProcessing::spriteIdx#1 = phi( startProcessing::@7/startProcessing::spriteIdx#2 )
|
|
startProcessing::center_y#2 = phi( startProcessing::@7/startProcessing::center_y#4 )
|
|
startProcessing::center_x#2 = phi( startProcessing::@7/startProcessing::center_x#4 )
|
|
*PROCPORT = PROCPORT_RAM_IO
|
|
asm { cli }
|
|
startProcessing::$26 = (word)startProcessing::center_x#2
|
|
startProcessing::$8 = startProcessing::$26 * 8
|
|
startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8
|
|
startProcessing::$10 = startProcessing::$9 << 4
|
|
startProcessing::spriteX#0 = startProcessing::$10
|
|
startProcessing::$27 = (word)startProcessing::center_y#2
|
|
startProcessing::$11 = startProcessing::$27 * 8
|
|
startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11
|
|
startProcessing::$13 = startProcessing::$12 << 4
|
|
startProcessing::spriteY#0 = startProcessing::$13
|
|
startProcessing::$14 = (byte)SPRITE_DATA/$40 + startProcessing::spriteIdx#1
|
|
startProcessing::spritePtr#0 = startProcessing::$14
|
|
startProcessing::$15 = startProcessing::spriteIdx#1 * 8
|
|
startProcessing::$22 = startProcessing::spriteIdx#1 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_X)[startProcessing::$22] = startProcessing::spriteX#0
|
|
((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y)[startProcessing::$22] = startProcessing::spriteY#0
|
|
((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX)[startProcessing::$22] = (word)startProcessing::$15
|
|
((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY)[startProcessing::$22] = $3c
|
|
((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID)[startProcessing::$22] = startProcessing::spriteIdx#1
|
|
((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR)[startProcessing::$22] = startProcessing::spritePtr#0
|
|
((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL)[startProcessing::$22] = startProcessing::spriteCol#1
|
|
((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$22] = STATUS_NEW
|
|
((byte**)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)[startProcessing::$22] = startProcessing::screenPtr#1
|
|
to:startProcessing::@return
|
|
startProcessing::@return: scope:[startProcessing] from startProcessing::@8
|
|
return
|
|
to:@return
|
|
|
|
void processChars()
|
|
processChars: scope:[processChars] from irqBottom::@1
|
|
processChars::numActive#0 = 0
|
|
processChars::i#0 = 0
|
|
to:processChars::@1
|
|
processChars::@1: scope:[processChars] from processChars processChars::@2
|
|
processChars::numActive#9 = phi( processChars/processChars::numActive#0, processChars::@2/processChars::numActive#8 )
|
|
processChars::i#2 = phi( processChars/processChars::i#0, processChars::@2/processChars::i#1 )
|
|
processChars::$28 = processChars::i#2 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
processChars::$1 = PROCESSING + processChars::$28
|
|
processChars::processing#0 = processChars::$1
|
|
processChars::$57 = (byte*)processChars::processing#0
|
|
processChars::$31 = processChars::$57 + OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
processChars::$2 = 1 << *processChars::$31
|
|
processChars::bitmask#0 = processChars::$2
|
|
processChars::$58 = (byte*)processChars::processing#0
|
|
processChars::$32 = processChars::$58 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
processChars::$3 = *processChars::$32 != STATUS_FREE
|
|
processChars::$4 = ! processChars::$3
|
|
if(processChars::$4) goto processChars::@2
|
|
to:processChars::@10
|
|
processChars::@2: scope:[processChars] from processChars::@1 processChars::@7
|
|
processChars::numActive#8 = phi( processChars::@1/processChars::numActive#9, processChars::@7/processChars::numActive#1 )
|
|
processChars::i#3 = phi( processChars::@1/processChars::i#2, processChars::@7/processChars::i#5 )
|
|
processChars::i#1 = processChars::i#3 + rangenext(0,NUM_PROCESSING-1)
|
|
processChars::$26 = processChars::i#1 != rangelast(0,NUM_PROCESSING-1)
|
|
if(processChars::$26) goto processChars::@1
|
|
to:processChars::@12
|
|
processChars::@10: scope:[processChars] from processChars::@1
|
|
processChars::numActive#13 = phi( processChars::@1/processChars::numActive#9 )
|
|
processChars::i#11 = phi( processChars::@1/processChars::i#2 )
|
|
processChars::bitmask#5 = phi( processChars::@1/processChars::bitmask#0 )
|
|
processChars::processing#1 = phi( processChars::@1/processChars::processing#0 )
|
|
processChars::$59 = (byte*)processChars::processing#1
|
|
processChars::$33 = processChars::$59 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
processChars::$5 = *processChars::$33 == STATUS_NEW
|
|
processChars::$6 = ! processChars::$5
|
|
if(processChars::$6) goto processChars::@3
|
|
to:processChars::@11
|
|
processChars::@3: scope:[processChars] from processChars::@10 processChars::@11
|
|
processChars::numActive#12 = phi( processChars::@10/processChars::numActive#13, processChars::@11/processChars::numActive#14 )
|
|
processChars::i#8 = phi( processChars::@10/processChars::i#11, processChars::@11/processChars::i#12 )
|
|
processChars::bitmask#6 = phi( processChars::@10/processChars::bitmask#5, processChars::@11/processChars::bitmask#1 )
|
|
processChars::processing#2 = phi( processChars::@10/processChars::processing#1, processChars::@11/processChars::processing#3 )
|
|
processChars::$60 = (word*)processChars::processing#2
|
|
processChars::$34 = processChars::$60 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
processChars::$8 = *processChars::$34 >> 4
|
|
processChars::xpos#0 = processChars::$8
|
|
processChars::$9 = > processChars::xpos#0
|
|
processChars::$85 = 0 != processChars::$9
|
|
if(processChars::$85) goto processChars::@4
|
|
to:processChars::@8
|
|
processChars::@11: scope:[processChars] from processChars::@10
|
|
processChars::numActive#14 = phi( processChars::@10/processChars::numActive#13 )
|
|
processChars::i#12 = phi( processChars::@10/processChars::i#11 )
|
|
processChars::bitmask#1 = phi( processChars::@10/processChars::bitmask#5 )
|
|
processChars::processing#3 = phi( processChars::@10/processChars::processing#1 )
|
|
processChars::$61 = (byte**)processChars::processing#3
|
|
processChars::$35 = processChars::$61 + OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR
|
|
*(*processChars::$35) = ' '
|
|
*SPRITES_ENABLE = *SPRITES_ENABLE | processChars::bitmask#1
|
|
processChars::$62 = (byte*)processChars::processing#3
|
|
processChars::$36 = processChars::$62 + OFFSET_STRUCT_PROCESSINGSPRITE_COL
|
|
processChars::$63 = (byte*)processChars::processing#3
|
|
processChars::$37 = processChars::$63 + OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
SPRITES_COLOR[*processChars::$37] = *processChars::$36
|
|
processChars::$64 = (byte*)processChars::processing#3
|
|
processChars::$38 = processChars::$64 + OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
processChars::$7 = SCREEN+OFFSET_SPRITE_PTRS + *processChars::$38
|
|
processChars::$65 = (byte*)processChars::processing#3
|
|
processChars::$39 = processChars::$65 + OFFSET_STRUCT_PROCESSINGSPRITE_PTR
|
|
*processChars::$7 = *processChars::$39
|
|
processChars::$66 = (byte*)processChars::processing#3
|
|
processChars::$40 = processChars::$66 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
*processChars::$40 = STATUS_PROCESSING
|
|
to:processChars::@3
|
|
processChars::@4: scope:[processChars] from processChars::@3
|
|
processChars::numActive#10 = phi( processChars::@3/processChars::numActive#12 )
|
|
processChars::processing#7 = phi( processChars::@3/processChars::processing#2 )
|
|
processChars::xpos#3 = phi( processChars::@3/processChars::xpos#0 )
|
|
processChars::i#6 = phi( processChars::@3/processChars::i#8 )
|
|
processChars::bitmask#2 = phi( processChars::@3/processChars::bitmask#6 )
|
|
*SPRITES_XMSB = *SPRITES_XMSB | processChars::bitmask#2
|
|
to:processChars::@5
|
|
processChars::@8: scope:[processChars] from processChars::@3
|
|
processChars::numActive#11 = phi( processChars::@3/processChars::numActive#12 )
|
|
processChars::processing#8 = phi( processChars::@3/processChars::processing#2 )
|
|
processChars::xpos#4 = phi( processChars::@3/processChars::xpos#0 )
|
|
processChars::i#7 = phi( processChars::@3/processChars::i#8 )
|
|
processChars::bitmask#3 = phi( processChars::@3/processChars::bitmask#6 )
|
|
processChars::$10 = $ff ^ processChars::bitmask#3
|
|
*SPRITES_XMSB = *SPRITES_XMSB & processChars::$10
|
|
to:processChars::@5
|
|
processChars::@5: scope:[processChars] from processChars::@4 processChars::@8
|
|
processChars::numActive#7 = phi( processChars::@4/processChars::numActive#10, processChars::@8/processChars::numActive#11 )
|
|
processChars::bitmask#7 = phi( processChars::@4/processChars::bitmask#2, processChars::@8/processChars::bitmask#3 )
|
|
processChars::processing#4 = phi( processChars::@4/processChars::processing#7, processChars::@8/processChars::processing#8 )
|
|
processChars::xpos#1 = phi( processChars::@4/processChars::xpos#3, processChars::@8/processChars::xpos#4 )
|
|
processChars::i#4 = phi( processChars::@4/processChars::i#6, processChars::@8/processChars::i#7 )
|
|
processChars::$11 = processChars::i#4 * 2
|
|
SPRITES_XPOS[processChars::$11] = (byte)processChars::xpos#1
|
|
processChars::$67 = (word*)processChars::processing#4
|
|
processChars::$41 = processChars::$67 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
processChars::$12 = *processChars::$41 >> 4
|
|
processChars::ypos#0 = (byte)processChars::$12
|
|
processChars::$13 = processChars::i#4 * 2
|
|
SPRITES_YPOS[processChars::$13] = processChars::ypos#0
|
|
processChars::$68 = (word*)processChars::processing#4
|
|
processChars::$42 = processChars::$68 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
processChars::$14 = *processChars::$42 < XPOS_LEFTMOST
|
|
processChars::$69 = (word*)processChars::processing#4
|
|
processChars::$43 = processChars::$69 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
processChars::$15 = *processChars::$43 > XPOS_RIGHTMOST
|
|
processChars::$16 = processChars::$14 || processChars::$15
|
|
processChars::$70 = (word*)processChars::processing#4
|
|
processChars::$44 = processChars::$70 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
processChars::$17 = *processChars::$44 < YPOS_TOPMOST
|
|
processChars::$18 = processChars::$16 || processChars::$17
|
|
processChars::$71 = (word*)processChars::processing#4
|
|
processChars::$45 = processChars::$71 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
processChars::$19 = *processChars::$45 > YPOS_BOTTOMMOST
|
|
processChars::$20 = processChars::$18 || processChars::$19
|
|
if(processChars::$20) goto processChars::@6
|
|
to:processChars::@9
|
|
processChars::@6: scope:[processChars] from processChars::@5
|
|
processChars::i#9 = phi( processChars::@5/processChars::i#4 )
|
|
processChars::numActive#4 = phi( processChars::@5/processChars::numActive#7 )
|
|
processChars::bitmask#4 = phi( processChars::@5/processChars::bitmask#7 )
|
|
processChars::processing#5 = phi( processChars::@5/processChars::processing#4 )
|
|
processChars::$72 = (byte*)processChars::processing#5
|
|
processChars::$46 = processChars::$72 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
*processChars::$46 = STATUS_FREE
|
|
processChars::$25 = $ff ^ processChars::bitmask#4
|
|
*SPRITES_ENABLE = *SPRITES_ENABLE & processChars::$25
|
|
to:processChars::@7
|
|
processChars::@9: scope:[processChars] from processChars::@5
|
|
processChars::i#10 = phi( processChars::@5/processChars::i#4 )
|
|
processChars::numActive#5 = phi( processChars::@5/processChars::numActive#7 )
|
|
processChars::ypos#1 = phi( processChars::@5/processChars::ypos#0 )
|
|
processChars::processing#6 = phi( processChars::@5/processChars::processing#4 )
|
|
processChars::xpos#2 = phi( processChars::@5/processChars::xpos#1 )
|
|
processChars::$21 = processChars::xpos#2 / 8
|
|
processChars::$73 = (byte)processChars::$21
|
|
processChars::$22 = processChars::$73 - BORDER_XPOS_LEFT/8
|
|
processChars::xchar#0 = processChars::$22
|
|
processChars::$29 = processChars::xchar#0 * SIZEOF_WORD
|
|
processChars::$74 = (word*)processChars::processing#6
|
|
processChars::$47 = processChars::$74 + OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
processChars::$75 = (word*)processChars::processing#6
|
|
processChars::$48 = processChars::$75 + OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
*processChars::$48 = *processChars::$47 + VXSIN[processChars::$29]
|
|
processChars::$76 = (word*)processChars::processing#6
|
|
processChars::$49 = processChars::$76 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
processChars::$77 = (word*)processChars::processing#6
|
|
processChars::$50 = processChars::$77 + OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
processChars::$78 = (word*)processChars::processing#6
|
|
processChars::$51 = processChars::$78 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
*processChars::$51 = *processChars::$49 + *processChars::$50
|
|
processChars::$23 = processChars::ypos#1 / 8
|
|
processChars::$79 = (byte)processChars::$23
|
|
processChars::$24 = processChars::$79 - BORDER_YPOS_TOP/8
|
|
processChars::ychar#0 = processChars::$24
|
|
processChars::$30 = processChars::ychar#0 * SIZEOF_WORD
|
|
processChars::$80 = (word*)processChars::processing#6
|
|
processChars::$52 = processChars::$80 + OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
processChars::$81 = (word*)processChars::processing#6
|
|
processChars::$53 = processChars::$81 + OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
*processChars::$53 = *processChars::$52 + VYSIN[processChars::$30]
|
|
processChars::$82 = (word*)processChars::processing#6
|
|
processChars::$54 = processChars::$82 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
processChars::$83 = (word*)processChars::processing#6
|
|
processChars::$55 = processChars::$83 + OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
processChars::$84 = (word*)processChars::processing#6
|
|
processChars::$56 = processChars::$84 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
*processChars::$56 = *processChars::$54 + *processChars::$55
|
|
to:processChars::@7
|
|
processChars::@7: scope:[processChars] from processChars::@6 processChars::@9
|
|
processChars::i#5 = phi( processChars::@6/processChars::i#9, processChars::@9/processChars::i#10 )
|
|
processChars::numActive#2 = phi( processChars::@6/processChars::numActive#4, processChars::@9/processChars::numActive#5 )
|
|
processChars::numActive#1 = ++ processChars::numActive#2
|
|
to:processChars::@2
|
|
processChars::@12: scope:[processChars] from processChars::@2
|
|
processChars::numActive#6 = phi( processChars::@2/processChars::numActive#8 )
|
|
processChars::$0 = ! DEBUG
|
|
if(processChars::$0) goto processChars::@return
|
|
to:processChars::@13
|
|
processChars::@13: scope:[processChars] from processChars::@12
|
|
processChars::numActive#3 = phi( processChars::@12/processChars::numActive#6 )
|
|
processChars::$27 = '0' + processChars::numActive#3
|
|
*(SCREEN+$3e7) = processChars::$27
|
|
to:processChars::@return
|
|
processChars::@return: scope:[processChars] from processChars::@12 processChars::@13
|
|
return
|
|
to:@return
|
|
|
|
void init_angle_screen(byte* init_angle_screen::screen)
|
|
init_angle_screen: scope:[init_angle_screen] from main
|
|
init_angle_screen::screen#1 = phi( main/init_angle_screen::screen#0 )
|
|
init_angle_screen::$0 = init_angle_screen::screen#1 + $28*$c
|
|
init_angle_screen::screen_topline#0 = init_angle_screen::$0
|
|
init_angle_screen::$1 = init_angle_screen::screen#1 + $28*$c
|
|
init_angle_screen::screen_bottomline#0 = init_angle_screen::$1
|
|
init_angle_screen::y#0 = 0
|
|
to:init_angle_screen::@1
|
|
init_angle_screen::@1: scope:[init_angle_screen] from init_angle_screen init_angle_screen::@4
|
|
init_angle_screen::screen_bottomline#6 = phi( init_angle_screen/init_angle_screen::screen_bottomline#0, init_angle_screen::@4/init_angle_screen::screen_bottomline#1 )
|
|
init_angle_screen::screen_topline#6 = phi( init_angle_screen/init_angle_screen::screen_topline#0, init_angle_screen::@4/init_angle_screen::screen_topline#1 )
|
|
init_angle_screen::y#5 = phi( init_angle_screen/init_angle_screen::y#0, init_angle_screen::@4/init_angle_screen::y#1 )
|
|
init_angle_screen::x#0 = 0
|
|
init_angle_screen::xb#0 = $27
|
|
to:init_angle_screen::@2
|
|
init_angle_screen::@2: scope:[init_angle_screen] from init_angle_screen::@1 init_angle_screen::@5
|
|
init_angle_screen::xb#4 = phi( init_angle_screen::@1/init_angle_screen::xb#0, init_angle_screen::@5/init_angle_screen::xb#1 )
|
|
init_angle_screen::screen_bottomline#5 = phi( init_angle_screen::@1/init_angle_screen::screen_bottomline#6, init_angle_screen::@5/init_angle_screen::screen_bottomline#2 )
|
|
init_angle_screen::screen_topline#5 = phi( init_angle_screen::@1/init_angle_screen::screen_topline#6, init_angle_screen::@5/init_angle_screen::screen_topline#2 )
|
|
init_angle_screen::y#4 = phi( init_angle_screen::@1/init_angle_screen::y#5, init_angle_screen::@5/init_angle_screen::y#6 )
|
|
init_angle_screen::x#2 = phi( init_angle_screen::@1/init_angle_screen::x#0, init_angle_screen::@5/init_angle_screen::x#1 )
|
|
init_angle_screen::$2 = init_angle_screen::x#2 <= $13
|
|
if(init_angle_screen::$2) goto init_angle_screen::@3
|
|
to:init_angle_screen::@4
|
|
init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
|
init_angle_screen::screen_topline#4 = phi( init_angle_screen::@2/init_angle_screen::screen_topline#5 )
|
|
init_angle_screen::xb#3 = phi( init_angle_screen::@2/init_angle_screen::xb#4 )
|
|
init_angle_screen::screen_bottomline#4 = phi( init_angle_screen::@2/init_angle_screen::screen_bottomline#5 )
|
|
init_angle_screen::y#2 = phi( init_angle_screen::@2/init_angle_screen::y#4 )
|
|
init_angle_screen::x#3 = phi( init_angle_screen::@2/init_angle_screen::x#2 )
|
|
init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
|
init_angle_screen::$4 = $27 - init_angle_screen::$3
|
|
init_angle_screen::xw#0 = (signed word)(word){ init_angle_screen::$4, 0 }
|
|
init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
|
init_angle_screen::yw#0 = (signed word)(word){ init_angle_screen::$5, 0 }
|
|
atan2_16::x#0 = init_angle_screen::xw#0
|
|
atan2_16::y#0 = init_angle_screen::yw#0
|
|
call atan2_16
|
|
atan2_16::return#2 = atan2_16::return#1
|
|
to:init_angle_screen::@5
|
|
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
|
init_angle_screen::y#6 = phi( init_angle_screen::@3/init_angle_screen::y#2 )
|
|
init_angle_screen::x#4 = phi( init_angle_screen::@3/init_angle_screen::x#3 )
|
|
init_angle_screen::screen_topline#2 = phi( init_angle_screen::@3/init_angle_screen::screen_topline#4 )
|
|
init_angle_screen::xb#2 = phi( init_angle_screen::@3/init_angle_screen::xb#3 )
|
|
init_angle_screen::screen_bottomline#2 = phi( init_angle_screen::@3/init_angle_screen::screen_bottomline#4 )
|
|
atan2_16::return#4 = phi( init_angle_screen::@3/atan2_16::return#2 )
|
|
init_angle_screen::$6 = atan2_16::return#4
|
|
init_angle_screen::angle_w#0 = init_angle_screen::$6
|
|
init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
|
init_angle_screen::$8 = > init_angle_screen::$7
|
|
init_angle_screen::ang_w#0 = init_angle_screen::$8
|
|
init_angle_screen::screen_bottomline#2[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
|
init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
|
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$9
|
|
init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
|
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$10
|
|
init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
|
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$11
|
|
init_angle_screen::x#1 = ++ init_angle_screen::x#4
|
|
init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
|
to:init_angle_screen::@2
|
|
init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
|
init_angle_screen::y#3 = phi( init_angle_screen::@2/init_angle_screen::y#4 )
|
|
init_angle_screen::screen_bottomline#3 = phi( init_angle_screen::@2/init_angle_screen::screen_bottomline#5 )
|
|
init_angle_screen::screen_topline#3 = phi( init_angle_screen::@2/init_angle_screen::screen_topline#5 )
|
|
init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
|
init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
|
init_angle_screen::y#1 = init_angle_screen::y#3 + rangenext(0,$c)
|
|
init_angle_screen::$12 = init_angle_screen::y#1 != rangelast(0,$c)
|
|
if(init_angle_screen::$12) goto init_angle_screen::@1
|
|
to:init_angle_screen::@return
|
|
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
|
return
|
|
to:@return
|
|
|
|
void initSprites()
|
|
initSprites: scope:[initSprites] from main::@5
|
|
initSprites::sp#0 = SPRITE_DATA
|
|
to:initSprites::@1
|
|
initSprites::@1: scope:[initSprites] from initSprites initSprites::@2
|
|
initSprites::sp#2 = phi( initSprites/initSprites::sp#0, initSprites::@2/initSprites::sp#1 )
|
|
initSprites::$0 = initSprites::sp#2 < SPRITE_DATA+NUM_PROCESSING*$40
|
|
if(initSprites::$0) goto initSprites::@2
|
|
to:initSprites::@3
|
|
initSprites::@2: scope:[initSprites] from initSprites::@1
|
|
initSprites::sp#3 = phi( initSprites::@1/initSprites::sp#2 )
|
|
*initSprites::sp#3 = 0
|
|
initSprites::sp#1 = ++ initSprites::sp#3
|
|
to:initSprites::@1
|
|
initSprites::@3: scope:[initSprites] from initSprites::@1
|
|
initSprites::i#0 = 0
|
|
to:initSprites::@4
|
|
initSprites::@4: scope:[initSprites] from initSprites::@3 initSprites::@4
|
|
initSprites::i#2 = phi( initSprites::@3/initSprites::i#0, initSprites::@4/initSprites::i#1 )
|
|
SPRITES_COLOR[initSprites::i#2] = LIGHT_BLUE
|
|
initSprites::i#1 = initSprites::i#2 + rangenext(0,7)
|
|
initSprites::$1 = initSprites::i#1 != rangelast(0,7)
|
|
if(initSprites::$1) goto initSprites::@4
|
|
to:initSprites::@5
|
|
initSprites::@5: scope:[initSprites] from initSprites::@4
|
|
*SPRITES_MC = 0
|
|
*SPRITES_EXPAND_X = 0
|
|
*SPRITES_EXPAND_Y = 0
|
|
to:initSprites::@return
|
|
initSprites::@return: scope:[initSprites] from initSprites::@5
|
|
return
|
|
to:@return
|
|
|
|
void setupRasterIrq(word setupRasterIrq::raster , void()* setupRasterIrq::irqRoutine)
|
|
setupRasterIrq: scope:[setupRasterIrq] from main::@11
|
|
setupRasterIrq::irqRoutine#4 = phi( main::@11/setupRasterIrq::irqRoutine#0 )
|
|
setupRasterIrq::raster#1 = phi( main::@11/setupRasterIrq::raster#0 )
|
|
asm { sei }
|
|
*PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
*PROCPORT = PROCPORT_RAM_IO
|
|
*((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR
|
|
setupRasterIrq::$0 = setupRasterIrq::raster#1 < $100
|
|
if(setupRasterIrq::$0) goto setupRasterIrq::@1
|
|
to:setupRasterIrq::@3
|
|
setupRasterIrq::@1: scope:[setupRasterIrq] from setupRasterIrq
|
|
setupRasterIrq::irqRoutine#2 = phi( setupRasterIrq/setupRasterIrq::irqRoutine#4 )
|
|
setupRasterIrq::raster#3 = phi( setupRasterIrq/setupRasterIrq::raster#1 )
|
|
*VICII_CONTROL = *VICII_CONTROL & $7f
|
|
to:setupRasterIrq::@2
|
|
setupRasterIrq::@3: scope:[setupRasterIrq] from setupRasterIrq
|
|
setupRasterIrq::irqRoutine#3 = phi( setupRasterIrq/setupRasterIrq::irqRoutine#4 )
|
|
setupRasterIrq::raster#4 = phi( setupRasterIrq/setupRasterIrq::raster#1 )
|
|
*VICII_CONTROL = *VICII_CONTROL | $80
|
|
to:setupRasterIrq::@2
|
|
setupRasterIrq::@2: scope:[setupRasterIrq] from setupRasterIrq::@1 setupRasterIrq::@3
|
|
setupRasterIrq::irqRoutine#1 = phi( setupRasterIrq::@1/setupRasterIrq::irqRoutine#2, setupRasterIrq::@3/setupRasterIrq::irqRoutine#3 )
|
|
setupRasterIrq::raster#2 = phi( setupRasterIrq::@1/setupRasterIrq::raster#3, setupRasterIrq::@3/setupRasterIrq::raster#4 )
|
|
setupRasterIrq::$1 = < setupRasterIrq::raster#2
|
|
*RASTER = setupRasterIrq::$1
|
|
*IRQ_ENABLE = IRQ_RASTER
|
|
*HARDWARE_IRQ = setupRasterIrq::irqRoutine#1
|
|
asm { cli }
|
|
to:setupRasterIrq::@return
|
|
setupRasterIrq::@return: scope:[setupRasterIrq] from setupRasterIrq::@2
|
|
return
|
|
to:@return
|
|
|
|
__interrupt(hardware_clobber) void irqTop()
|
|
irqTop: scope:[irqTop] from
|
|
irqTop::$0 = ! DEBUG
|
|
if(irqTop::$0) goto irqTop::@1
|
|
to:irqTop::@2
|
|
irqTop::@1: scope:[irqTop] from irqTop irqTop::@6
|
|
*RASTER = RASTER_IRQ_MIDDLE
|
|
*HARDWARE_IRQ = &irqBottom
|
|
*IRQ_STATUS = IRQ_RASTER
|
|
to:irqTop::@return
|
|
irqTop::@2: scope:[irqTop] from irqTop
|
|
irqTop::i#0 = 0
|
|
to:irqTop::@3
|
|
irqTop::@3: scope:[irqTop] from irqTop::@2 irqTop::@3
|
|
irqTop::i#2 = phi( irqTop::@2/irqTop::i#0, irqTop::@3/irqTop::i#1 )
|
|
irqTop::i#1 = irqTop::i#2 + rangenext(0,4)
|
|
irqTop::$1 = irqTop::i#1 != rangelast(0,4)
|
|
if(irqTop::$1) goto irqTop::@3
|
|
to:irqTop::@4
|
|
irqTop::@4: scope:[irqTop] from irqTop::@3
|
|
*BORDER_COLOR = WHITE
|
|
*BG_COLOR = WHITE
|
|
irqTop::i1#0 = 0
|
|
to:irqTop::@5
|
|
irqTop::@5: scope:[irqTop] from irqTop::@4 irqTop::@5
|
|
irqTop::i1#2 = phi( irqTop::@4/irqTop::i1#0, irqTop::@5/irqTop::i1#1 )
|
|
irqTop::i1#1 = irqTop::i1#2 + rangenext(0,7)
|
|
irqTop::$2 = irqTop::i1#1 != rangelast(0,7)
|
|
if(irqTop::$2) goto irqTop::@5
|
|
to:irqTop::@6
|
|
irqTop::@6: scope:[irqTop] from irqTop::@5
|
|
*BORDER_COLOR = LIGHT_BLUE
|
|
*BG_COLOR = BLUE
|
|
to:irqTop::@1
|
|
irqTop::@return: scope:[irqTop] from irqTop::@1
|
|
return
|
|
to:@return
|
|
|
|
__interrupt(hardware_clobber) void irqBottom()
|
|
irqBottom: scope:[irqBottom] from
|
|
irqBottom::$0 = ! DEBUG
|
|
if(irqBottom::$0) goto irqBottom::@1
|
|
to:irqBottom::@3
|
|
irqBottom::@1: scope:[irqBottom] from irqBottom irqBottom::@6
|
|
call processChars
|
|
to:irqBottom::@7
|
|
irqBottom::@7: scope:[irqBottom] from irqBottom::@1
|
|
irqBottom::$2 = ! DEBUG
|
|
if(irqBottom::$2) goto irqBottom::@2
|
|
to:irqBottom::@4
|
|
irqBottom::@3: scope:[irqBottom] from irqBottom
|
|
irqBottom::i#0 = 0
|
|
to:irqBottom::@5
|
|
irqBottom::@5: scope:[irqBottom] from irqBottom::@3 irqBottom::@5
|
|
irqBottom::i#2 = phi( irqBottom::@3/irqBottom::i#0, irqBottom::@5/irqBottom::i#1 )
|
|
irqBottom::i#1 = irqBottom::i#2 + rangenext(0,4)
|
|
irqBottom::$3 = irqBottom::i#1 != rangelast(0,4)
|
|
if(irqBottom::$3) goto irqBottom::@5
|
|
to:irqBottom::@6
|
|
irqBottom::@6: scope:[irqBottom] from irqBottom::@5
|
|
*BORDER_COLOR = WHITE
|
|
*BG_COLOR = WHITE
|
|
to:irqBottom::@1
|
|
irqBottom::@2: scope:[irqBottom] from irqBottom::@4 irqBottom::@7
|
|
*RASTER = RASTER_IRQ_TOP
|
|
*HARDWARE_IRQ = &irqTop
|
|
*IRQ_STATUS = IRQ_RASTER
|
|
to:irqBottom::@return
|
|
irqBottom::@4: scope:[irqBottom] from irqBottom::@7
|
|
*BORDER_COLOR = LIGHT_BLUE
|
|
*BG_COLOR = BLUE
|
|
to:irqBottom::@2
|
|
irqBottom::@return: scope:[irqBottom] from irqBottom::@2
|
|
return
|
|
to:@return
|
|
|
|
void __start()
|
|
__start: scope:[__start] from
|
|
to:__start::__init1
|
|
__start::__init1: scope:[__start] from __start
|
|
heap_head#2 = HEAP_TOP
|
|
malloc::size#0 = $3e8
|
|
call malloc
|
|
malloc::return#2 = malloc::return#1
|
|
to:__start::@2
|
|
__start::@2: scope:[__start] from __start::__init1
|
|
heap_head#8 = phi( __start::__init1/heap_head#1 )
|
|
malloc::return#5 = phi( __start::__init1/malloc::return#2 )
|
|
__start::__init1_$0 = malloc::return#5
|
|
heap_head#3 = heap_head#8
|
|
SCREEN_COPY#0 = ((byte*)) __start::__init1_$0
|
|
malloc::size#1 = $3e8
|
|
call malloc
|
|
malloc::return#3 = malloc::return#1
|
|
to:__start::@3
|
|
__start::@3: scope:[__start] from __start::@2
|
|
SCREEN_COPY#17 = phi( __start::@2/SCREEN_COPY#0 )
|
|
heap_head#9 = phi( __start::@2/heap_head#1 )
|
|
malloc::return#6 = phi( __start::@2/malloc::return#3 )
|
|
__start::__init1_$1 = malloc::return#6
|
|
heap_head#4 = heap_head#9
|
|
SCREEN_DIST#0 = ((byte*)) __start::__init1_$1
|
|
to:__start::@1
|
|
__start::@1: scope:[__start] from __start::@3
|
|
heap_head#12 = phi( __start::@3/heap_head#4 )
|
|
SCREEN_COPY#10 = phi( __start::@3/SCREEN_COPY#17 )
|
|
SCREEN_DIST#5 = phi( __start::@3/SCREEN_DIST#0 )
|
|
call main
|
|
to:__start::@4
|
|
__start::@4: scope:[__start] from __start::@1
|
|
SCREEN_DIST#7 = phi( __start::@1/SCREEN_DIST#5 )
|
|
SCREEN_COPY#9 = phi( __start::@1/SCREEN_COPY#10 )
|
|
heap_head#11 = phi( __start::@1/heap_head#12 )
|
|
to:__start::@return
|
|
__start::@return: scope:[__start] from __start::@4
|
|
SCREEN_DIST#4 = phi( __start::@4/SCREEN_DIST#7 )
|
|
SCREEN_COPY#5 = phi( __start::@4/SCREEN_COPY#9 )
|
|
heap_head#10 = phi( __start::@4/heap_head#11 )
|
|
heap_head#5 = heap_head#10
|
|
SCREEN_COPY#1 = SCREEN_COPY#5
|
|
SCREEN_DIST#1 = SCREEN_DIST#4
|
|
return
|
|
to:@return
|
|
|
|
SYMBOL TABLE SSA
|
|
const struct ProcessingSprite $0 = { x: 0, y: 0, vx: 0, vy: 0, id: 0, ptr: 0, col: 0, status: STATUS_FREE, screenPtr: (byte*)0 }
|
|
const nomodify byte* BG_COLOR = (byte*)$d021
|
|
const nomodify byte BLUE = 6
|
|
const nomodify byte* BORDER_COLOR = (byte*)$d020
|
|
const nomodify byte BORDER_XPOS_LEFT = $18
|
|
const nomodify word BORDER_XPOS_RIGHT = $158
|
|
const nomodify byte BORDER_YPOS_BOTTOM = $fa
|
|
const nomodify byte BORDER_YPOS_TOP = $32
|
|
const nomodify byte* CHARGEN = (byte*)$d000
|
|
const nomodify struct MOS6526_CIA* CIA1 = (struct MOS6526_CIA*)$dc00
|
|
const nomodify byte CIA_INTERRUPT_CLEAR = $7f
|
|
const nomodify byte* COLS = (byte*)$d800
|
|
const word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; i<CORDIC_ITERATIONS_16; i++)
|
|
.word 256*2*256*atan(1/pow(2,i))/PI/2
|
|
}}
|
|
const nomodify byte CORDIC_ITERATIONS_16 = $f
|
|
const nomodify bool DEBUG = false
|
|
const nomodify void()** HARDWARE_IRQ = (void()**)$fffe
|
|
const byte* HEAP_TOP = (byte*)$a000
|
|
const nomodify byte* IRQ_ENABLE = (byte*)$d01a
|
|
const nomodify byte IRQ_RASTER = 1
|
|
const nomodify byte* IRQ_STATUS = (byte*)$d019
|
|
const nomodify byte LIGHT_BLUE = $e
|
|
const nomodify byte NOT_FOUND = $ff
|
|
const nomodify byte NUM_PROCESSING = 8
|
|
const nomodify word OFFSET_SPRITE_PTRS = $3f8
|
|
const byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_COL = $a
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_ID = 8
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_PTR = 9
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = $c
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = $b
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_VX = 4
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_VY = 6
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_X = 0
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_Y = 2
|
|
const struct ProcessingSprite* PROCESSING[NUM_PROCESSING] = { fill( NUM_PROCESSING, 0) }
|
|
const nomodify byte* PROCPORT = (byte*)1
|
|
const nomodify byte* PROCPORT_DDR = (byte*)0
|
|
const nomodify byte PROCPORT_DDR_MEMORY_MASK = 7
|
|
const nomodify byte PROCPORT_RAM_CHARROM = 1
|
|
const nomodify byte PROCPORT_RAM_IO = 5
|
|
const byte RADIX::BINARY = 2
|
|
const byte RADIX::DECIMAL = $a
|
|
const byte RADIX::HEXADECIMAL = $10
|
|
const byte RADIX::OCTAL = 8
|
|
const nomodify byte* RASTER = (byte*)$d012
|
|
const nomodify byte RASTER_IRQ_MIDDLE = $ff
|
|
const nomodify byte RASTER_IRQ_TOP = $30
|
|
const nomodify byte* SCREEN = (byte*)$400
|
|
byte* SCREEN_COPY
|
|
byte* SCREEN_COPY#0
|
|
byte* SCREEN_COPY#1
|
|
byte* SCREEN_COPY#10
|
|
byte* SCREEN_COPY#11
|
|
byte* SCREEN_COPY#12
|
|
byte* SCREEN_COPY#13
|
|
byte* SCREEN_COPY#14
|
|
byte* SCREEN_COPY#15
|
|
byte* SCREEN_COPY#16
|
|
byte* SCREEN_COPY#17
|
|
byte* SCREEN_COPY#18
|
|
byte* SCREEN_COPY#19
|
|
byte* SCREEN_COPY#2
|
|
byte* SCREEN_COPY#20
|
|
byte* SCREEN_COPY#21
|
|
byte* SCREEN_COPY#22
|
|
byte* SCREEN_COPY#23
|
|
byte* SCREEN_COPY#24
|
|
byte* SCREEN_COPY#25
|
|
byte* SCREEN_COPY#26
|
|
byte* SCREEN_COPY#27
|
|
byte* SCREEN_COPY#3
|
|
byte* SCREEN_COPY#4
|
|
byte* SCREEN_COPY#5
|
|
byte* SCREEN_COPY#6
|
|
byte* SCREEN_COPY#7
|
|
byte* SCREEN_COPY#8
|
|
byte* SCREEN_COPY#9
|
|
byte* SCREEN_DIST
|
|
byte* SCREEN_DIST#0
|
|
byte* SCREEN_DIST#1
|
|
byte* SCREEN_DIST#10
|
|
byte* SCREEN_DIST#11
|
|
byte* SCREEN_DIST#12
|
|
byte* SCREEN_DIST#13
|
|
byte* SCREEN_DIST#14
|
|
byte* SCREEN_DIST#15
|
|
byte* SCREEN_DIST#16
|
|
byte* SCREEN_DIST#17
|
|
byte* SCREEN_DIST#18
|
|
byte* SCREEN_DIST#2
|
|
byte* SCREEN_DIST#3
|
|
byte* SCREEN_DIST#4
|
|
byte* SCREEN_DIST#5
|
|
byte* SCREEN_DIST#6
|
|
byte* SCREEN_DIST#7
|
|
byte* SCREEN_DIST#8
|
|
byte* SCREEN_DIST#9
|
|
const byte SIZEOF_STRUCT_PROCESSINGSPRITE = $e
|
|
const byte SIZEOF_WORD = 2
|
|
const nomodify byte* SPRITES_COLOR = (byte*)$d027
|
|
const nomodify byte* SPRITES_ENABLE = (byte*)$d015
|
|
const nomodify byte* SPRITES_EXPAND_X = (byte*)$d01d
|
|
const nomodify byte* SPRITES_EXPAND_Y = (byte*)$d017
|
|
const nomodify byte* SPRITES_MC = (byte*)$d01c
|
|
const nomodify byte* SPRITES_XMSB = (byte*)$d010
|
|
const nomodify byte* SPRITES_XPOS = (byte*)$d000
|
|
const nomodify byte* SPRITES_YPOS = (byte*)$d001
|
|
const nomodify byte* SPRITE_DATA = (byte*)$2000
|
|
const byte STATUS_FREE = 0
|
|
const byte STATUS_NEW = 1
|
|
const byte STATUS_PROCESSING = 2
|
|
const nomodify byte* VICII_CONTROL = (byte*)$d011
|
|
const to_nomodify word* VXSIN[$28] = kickasm {{ .for(var i=0; i<40; i++) {
|
|
.word -sin(toRadians([i*360]/40))*4
|
|
}
|
|
}}
|
|
const to_nomodify word* VYSIN[$19] = kickasm {{ .for(var i=0; i<25; i++) {
|
|
.word -sin(toRadians([i*360]/25))*4
|
|
}
|
|
}}
|
|
const nomodify byte WHITE = 1
|
|
const nomodify word XPOS_LEFTMOST = (word)BORDER_XPOS_LEFT-8<<4
|
|
const nomodify word XPOS_RIGHTMOST = (word)BORDER_XPOS_RIGHT<<4
|
|
const nomodify word YPOS_BOTTOMMOST = (word)BORDER_YPOS_BOTTOM<<4
|
|
const nomodify word YPOS_TOPMOST = (word)BORDER_YPOS_TOP-8<<4
|
|
void __start()
|
|
void*~ __start::__init1_$0
|
|
void*~ __start::__init1_$1
|
|
word atan2_16(signed word atan2_16::x , signed word atan2_16::y)
|
|
bool~ atan2_16::$0
|
|
signed word~ atan2_16::$1
|
|
bool~ atan2_16::$10
|
|
bool~ atan2_16::$11
|
|
number~ atan2_16::$12
|
|
bool~ atan2_16::$13
|
|
bool~ atan2_16::$14
|
|
word~ atan2_16::$15
|
|
bool~ atan2_16::$16
|
|
bool~ atan2_16::$17
|
|
bool~ atan2_16::$18
|
|
bool~ atan2_16::$19
|
|
signed word~ atan2_16::$2
|
|
bool~ atan2_16::$20
|
|
bool~ atan2_16::$21
|
|
byte~ atan2_16::$22
|
|
byte~ atan2_16::$23
|
|
bool~ atan2_16::$24
|
|
signed word~ atan2_16::$3
|
|
signed word~ atan2_16::$4
|
|
bool~ atan2_16::$5
|
|
signed word~ atan2_16::$6
|
|
signed word~ atan2_16::$7
|
|
signed word~ atan2_16::$8
|
|
signed word~ atan2_16::$9
|
|
word atan2_16::angle
|
|
word atan2_16::angle#0
|
|
word atan2_16::angle#1
|
|
word atan2_16::angle#10
|
|
word atan2_16::angle#11
|
|
word atan2_16::angle#12
|
|
word atan2_16::angle#13
|
|
word atan2_16::angle#14
|
|
word atan2_16::angle#15
|
|
word atan2_16::angle#16
|
|
word atan2_16::angle#17
|
|
word atan2_16::angle#18
|
|
word atan2_16::angle#19
|
|
word atan2_16::angle#2
|
|
word atan2_16::angle#20
|
|
word atan2_16::angle#3
|
|
word atan2_16::angle#4
|
|
word atan2_16::angle#5
|
|
word atan2_16::angle#6
|
|
word atan2_16::angle#7
|
|
word atan2_16::angle#8
|
|
word atan2_16::angle#9
|
|
byte atan2_16::i
|
|
byte atan2_16::i#0
|
|
byte atan2_16::i#1
|
|
byte atan2_16::i#10
|
|
byte atan2_16::i#11
|
|
byte atan2_16::i#2
|
|
byte atan2_16::i#3
|
|
byte atan2_16::i#4
|
|
byte atan2_16::i#5
|
|
byte atan2_16::i#6
|
|
byte atan2_16::i#7
|
|
byte atan2_16::i#8
|
|
byte atan2_16::i#9
|
|
word atan2_16::return
|
|
word atan2_16::return#0
|
|
word atan2_16::return#1
|
|
word atan2_16::return#2
|
|
word atan2_16::return#3
|
|
word atan2_16::return#4
|
|
byte atan2_16::shift
|
|
byte atan2_16::shift#0
|
|
byte atan2_16::shift#1
|
|
byte atan2_16::shift#2
|
|
byte atan2_16::shift#3
|
|
byte atan2_16::shift#4
|
|
signed word atan2_16::x
|
|
signed word atan2_16::x#0
|
|
signed word atan2_16::x#1
|
|
signed word atan2_16::x#10
|
|
signed word atan2_16::x#11
|
|
signed word atan2_16::x#12
|
|
signed word atan2_16::x#13
|
|
signed word atan2_16::x#14
|
|
signed word atan2_16::x#15
|
|
signed word atan2_16::x#16
|
|
signed word atan2_16::x#17
|
|
signed word atan2_16::x#18
|
|
signed word atan2_16::x#2
|
|
signed word atan2_16::x#3
|
|
signed word atan2_16::x#4
|
|
signed word atan2_16::x#5
|
|
signed word atan2_16::x#6
|
|
signed word atan2_16::x#7
|
|
signed word atan2_16::x#8
|
|
signed word atan2_16::x#9
|
|
signed word atan2_16::xd
|
|
signed word atan2_16::xd#0
|
|
signed word atan2_16::xd#1
|
|
signed word atan2_16::xd#2
|
|
signed word atan2_16::xd#3
|
|
signed word atan2_16::xd#4
|
|
signed word atan2_16::xd#5
|
|
signed word atan2_16::xd#6
|
|
signed word atan2_16::xd#7
|
|
signed word atan2_16::xd#8
|
|
signed word atan2_16::xd#9
|
|
signed word atan2_16::xi
|
|
signed word atan2_16::xi#0
|
|
signed word atan2_16::xi#1
|
|
signed word atan2_16::xi#10
|
|
signed word atan2_16::xi#11
|
|
signed word atan2_16::xi#12
|
|
signed word atan2_16::xi#2
|
|
signed word atan2_16::xi#3
|
|
signed word atan2_16::xi#4
|
|
signed word atan2_16::xi#5
|
|
signed word atan2_16::xi#6
|
|
signed word atan2_16::xi#7
|
|
signed word atan2_16::xi#8
|
|
signed word atan2_16::xi#9
|
|
signed word atan2_16::y
|
|
signed word atan2_16::y#0
|
|
signed word atan2_16::y#1
|
|
signed word atan2_16::y#10
|
|
signed word atan2_16::y#11
|
|
signed word atan2_16::y#12
|
|
signed word atan2_16::y#13
|
|
signed word atan2_16::y#14
|
|
signed word atan2_16::y#15
|
|
signed word atan2_16::y#16
|
|
signed word atan2_16::y#17
|
|
signed word atan2_16::y#18
|
|
signed word atan2_16::y#19
|
|
signed word atan2_16::y#2
|
|
signed word atan2_16::y#20
|
|
signed word atan2_16::y#3
|
|
signed word atan2_16::y#4
|
|
signed word atan2_16::y#5
|
|
signed word atan2_16::y#6
|
|
signed word atan2_16::y#7
|
|
signed word atan2_16::y#8
|
|
signed word atan2_16::y#9
|
|
signed word atan2_16::yd
|
|
signed word atan2_16::yd#0
|
|
signed word atan2_16::yd#1
|
|
signed word atan2_16::yd#2
|
|
signed word atan2_16::yd#3
|
|
signed word atan2_16::yd#4
|
|
signed word atan2_16::yd#5
|
|
signed word atan2_16::yd#6
|
|
signed word atan2_16::yd#7
|
|
signed word atan2_16::yd#8
|
|
signed word atan2_16::yd#9
|
|
signed word atan2_16::yi
|
|
signed word atan2_16::yi#0
|
|
signed word atan2_16::yi#1
|
|
signed word atan2_16::yi#10
|
|
signed word atan2_16::yi#11
|
|
signed word atan2_16::yi#12
|
|
signed word atan2_16::yi#13
|
|
signed word atan2_16::yi#14
|
|
signed word atan2_16::yi#15
|
|
signed word atan2_16::yi#2
|
|
signed word atan2_16::yi#3
|
|
signed word atan2_16::yi#4
|
|
signed word atan2_16::yi#5
|
|
signed word atan2_16::yi#6
|
|
signed word atan2_16::yi#7
|
|
signed word atan2_16::yi#8
|
|
signed word atan2_16::yi#9
|
|
struct ProcessingChar getCharToProcess()
|
|
bool~ getCharToProcess::$0
|
|
bool~ getCharToProcess::$1
|
|
byte*~ getCharToProcess::$10
|
|
word~ getCharToProcess::$11
|
|
bool~ getCharToProcess::$2
|
|
bool~ getCharToProcess::$3
|
|
bool~ getCharToProcess::$4
|
|
bool~ getCharToProcess::$5
|
|
bool~ getCharToProcess::$6
|
|
bool~ getCharToProcess::$7
|
|
number~ getCharToProcess::$8
|
|
byte*~ getCharToProcess::$9
|
|
byte getCharToProcess::closest_dist
|
|
byte getCharToProcess::closest_dist#0
|
|
byte getCharToProcess::closest_dist#1
|
|
byte getCharToProcess::closest_dist#2
|
|
byte getCharToProcess::closest_dist#3
|
|
byte getCharToProcess::closest_dist#4
|
|
byte getCharToProcess::closest_dist#5
|
|
byte getCharToProcess::closest_dist#6
|
|
byte getCharToProcess::closest_dist#7
|
|
byte getCharToProcess::closest_dist#8
|
|
byte getCharToProcess::closest_dist#9
|
|
byte getCharToProcess::closest_x
|
|
byte getCharToProcess::closest_x#0
|
|
byte getCharToProcess::closest_x#1
|
|
byte getCharToProcess::closest_x#2
|
|
byte getCharToProcess::closest_x#3
|
|
byte getCharToProcess::closest_x#4
|
|
byte getCharToProcess::closest_x#5
|
|
byte getCharToProcess::closest_x#6
|
|
byte getCharToProcess::closest_x#7
|
|
byte getCharToProcess::closest_x#8
|
|
byte getCharToProcess::closest_x#9
|
|
byte getCharToProcess::closest_y
|
|
byte getCharToProcess::closest_y#0
|
|
byte getCharToProcess::closest_y#1
|
|
byte getCharToProcess::closest_y#2
|
|
byte getCharToProcess::closest_y#3
|
|
byte getCharToProcess::closest_y#4
|
|
byte getCharToProcess::closest_y#5
|
|
byte getCharToProcess::closest_y#6
|
|
byte getCharToProcess::closest_y#7
|
|
byte getCharToProcess::closest_y#8
|
|
byte getCharToProcess::closest_y#9
|
|
byte getCharToProcess::dist
|
|
byte getCharToProcess::dist#0
|
|
byte getCharToProcess::dist#1
|
|
byte* getCharToProcess::dist_line
|
|
byte* getCharToProcess::dist_line#0
|
|
byte* getCharToProcess::dist_line#1
|
|
byte* getCharToProcess::dist_line#2
|
|
byte* getCharToProcess::dist_line#3
|
|
byte* getCharToProcess::dist_line#4
|
|
byte* getCharToProcess::dist_line#5
|
|
byte* getCharToProcess::dist_line#6
|
|
byte* getCharToProcess::dist_line#7
|
|
struct ProcessingChar getCharToProcess::return
|
|
struct ProcessingChar getCharToProcess::return#0
|
|
struct ProcessingChar getCharToProcess::return#1
|
|
byte getCharToProcess::return_dist
|
|
byte getCharToProcess::return_dist#0
|
|
byte getCharToProcess::return_dist#1
|
|
byte getCharToProcess::return_dist#2
|
|
byte getCharToProcess::return_dist#3
|
|
byte getCharToProcess::return_dist#4
|
|
byte getCharToProcess::return_x
|
|
byte getCharToProcess::return_x#0
|
|
byte getCharToProcess::return_x#1
|
|
byte getCharToProcess::return_x#2
|
|
byte getCharToProcess::return_x#3
|
|
byte getCharToProcess::return_x#4
|
|
byte getCharToProcess::return_y
|
|
byte getCharToProcess::return_y#0
|
|
byte getCharToProcess::return_y#1
|
|
byte getCharToProcess::return_y#2
|
|
byte getCharToProcess::return_y#3
|
|
byte getCharToProcess::return_y#4
|
|
byte* getCharToProcess::screen_line
|
|
byte* getCharToProcess::screen_line#0
|
|
byte* getCharToProcess::screen_line#1
|
|
byte* getCharToProcess::screen_line#2
|
|
byte* getCharToProcess::screen_line#3
|
|
byte* getCharToProcess::screen_line#4
|
|
byte* getCharToProcess::screen_line#5
|
|
byte* getCharToProcess::screen_line#6
|
|
byte* getCharToProcess::screen_line#7
|
|
byte getCharToProcess::x
|
|
byte getCharToProcess::x#0
|
|
byte getCharToProcess::x#1
|
|
byte getCharToProcess::x#2
|
|
byte getCharToProcess::x#3
|
|
byte getCharToProcess::x#4
|
|
byte getCharToProcess::x#5
|
|
byte getCharToProcess::y
|
|
byte getCharToProcess::y#0
|
|
byte getCharToProcess::y#1
|
|
byte getCharToProcess::y#2
|
|
byte getCharToProcess::y#3
|
|
byte getCharToProcess::y#4
|
|
byte getCharToProcess::y#5
|
|
byte getCharToProcess::y#6
|
|
byte getCharToProcess::y#7
|
|
byte* heap_head
|
|
byte* heap_head#0
|
|
byte* heap_head#1
|
|
byte* heap_head#10
|
|
byte* heap_head#11
|
|
byte* heap_head#12
|
|
byte* heap_head#2
|
|
byte* heap_head#3
|
|
byte* heap_head#4
|
|
byte* heap_head#5
|
|
byte* heap_head#6
|
|
byte* heap_head#7
|
|
byte* heap_head#8
|
|
byte* heap_head#9
|
|
void initSprites()
|
|
bool~ initSprites::$0
|
|
bool~ initSprites::$1
|
|
byte initSprites::i
|
|
byte initSprites::i#0
|
|
byte initSprites::i#1
|
|
byte initSprites::i#2
|
|
byte* initSprites::sp
|
|
byte* initSprites::sp#0
|
|
byte* initSprites::sp#1
|
|
byte* initSprites::sp#2
|
|
byte* initSprites::sp#3
|
|
void init_angle_screen(byte* init_angle_screen::screen)
|
|
byte*~ init_angle_screen::$0
|
|
byte*~ init_angle_screen::$1
|
|
number~ init_angle_screen::$10
|
|
number~ init_angle_screen::$11
|
|
bool~ init_angle_screen::$12
|
|
bool~ init_angle_screen::$2
|
|
number~ init_angle_screen::$3
|
|
number~ init_angle_screen::$4
|
|
number~ init_angle_screen::$5
|
|
word~ init_angle_screen::$6
|
|
number~ init_angle_screen::$7
|
|
number~ init_angle_screen::$8
|
|
byte~ init_angle_screen::$9
|
|
byte init_angle_screen::ang_w
|
|
byte init_angle_screen::ang_w#0
|
|
word init_angle_screen::angle_w
|
|
word init_angle_screen::angle_w#0
|
|
byte* init_angle_screen::screen
|
|
byte* init_angle_screen::screen#0
|
|
byte* init_angle_screen::screen#1
|
|
byte* init_angle_screen::screen_bottomline
|
|
byte* init_angle_screen::screen_bottomline#0
|
|
byte* init_angle_screen::screen_bottomline#1
|
|
byte* init_angle_screen::screen_bottomline#2
|
|
byte* init_angle_screen::screen_bottomline#3
|
|
byte* init_angle_screen::screen_bottomline#4
|
|
byte* init_angle_screen::screen_bottomline#5
|
|
byte* init_angle_screen::screen_bottomline#6
|
|
byte* init_angle_screen::screen_topline
|
|
byte* init_angle_screen::screen_topline#0
|
|
byte* init_angle_screen::screen_topline#1
|
|
byte* init_angle_screen::screen_topline#2
|
|
byte* init_angle_screen::screen_topline#3
|
|
byte* init_angle_screen::screen_topline#4
|
|
byte* init_angle_screen::screen_topline#5
|
|
byte* init_angle_screen::screen_topline#6
|
|
byte init_angle_screen::x
|
|
byte init_angle_screen::x#0
|
|
byte init_angle_screen::x#1
|
|
byte init_angle_screen::x#2
|
|
byte init_angle_screen::x#3
|
|
byte init_angle_screen::x#4
|
|
byte init_angle_screen::xb
|
|
byte init_angle_screen::xb#0
|
|
byte init_angle_screen::xb#1
|
|
byte init_angle_screen::xb#2
|
|
byte init_angle_screen::xb#3
|
|
byte init_angle_screen::xb#4
|
|
signed word init_angle_screen::xw
|
|
signed word init_angle_screen::xw#0
|
|
byte init_angle_screen::y
|
|
byte init_angle_screen::y#0
|
|
byte init_angle_screen::y#1
|
|
byte init_angle_screen::y#2
|
|
byte init_angle_screen::y#3
|
|
byte init_angle_screen::y#4
|
|
byte init_angle_screen::y#5
|
|
byte init_angle_screen::y#6
|
|
signed word init_angle_screen::yw
|
|
signed word init_angle_screen::yw#0
|
|
__interrupt(hardware_clobber) void irqBottom()
|
|
bool~ irqBottom::$0
|
|
bool~ irqBottom::$2
|
|
bool~ irqBottom::$3
|
|
byte irqBottom::i
|
|
byte irqBottom::i#0
|
|
byte irqBottom::i#1
|
|
byte irqBottom::i#2
|
|
__interrupt(hardware_clobber) void irqTop()
|
|
bool~ irqTop::$0
|
|
bool~ irqTop::$1
|
|
bool~ irqTop::$2
|
|
byte irqTop::i
|
|
byte irqTop::i#0
|
|
byte irqTop::i#1
|
|
byte irqTop::i#2
|
|
byte irqTop::i1
|
|
byte irqTop::i1#0
|
|
byte irqTop::i1#1
|
|
byte irqTop::i1#2
|
|
void main()
|
|
byte~ main::$10
|
|
bool~ main::$3
|
|
bool~ main::$4
|
|
byte~ main::$5_dist
|
|
byte~ main::$5_x
|
|
byte~ main::$5_y
|
|
bool~ main::$6
|
|
bool~ main::$7
|
|
byte main::center_dist
|
|
byte main::center_dist#0
|
|
byte main::center_dist#1
|
|
byte main::center_x
|
|
byte main::center_x#0
|
|
byte main::center_x#1
|
|
byte main::center_y
|
|
byte main::center_y#0
|
|
byte main::center_y#1
|
|
byte* main::dst
|
|
byte* main::dst#0
|
|
byte* main::dst#1
|
|
byte* main::dst#2
|
|
byte* main::dst#3
|
|
byte main::i
|
|
byte main::i#0
|
|
byte main::i#1
|
|
byte main::i#2
|
|
byte* main::src
|
|
byte* main::src#0
|
|
byte* main::src#1
|
|
byte* main::src#2
|
|
byte* main::src#3
|
|
void* malloc(word malloc::size)
|
|
byte*~ malloc::$0
|
|
byte* malloc::mem
|
|
byte* malloc::mem#0
|
|
void* malloc::return
|
|
void* malloc::return#0
|
|
void* malloc::return#1
|
|
void* malloc::return#2
|
|
void* malloc::return#3
|
|
void* malloc::return#4
|
|
void* malloc::return#5
|
|
void* malloc::return#6
|
|
word malloc::size
|
|
word malloc::size#0
|
|
word malloc::size#1
|
|
word malloc::size#2
|
|
void processChars()
|
|
bool~ processChars::$0
|
|
struct ProcessingSprite*~ processChars::$1
|
|
number~ processChars::$10
|
|
number~ processChars::$11
|
|
word~ processChars::$12
|
|
number~ processChars::$13
|
|
bool~ processChars::$14
|
|
bool~ processChars::$15
|
|
bool~ processChars::$16
|
|
bool~ processChars::$17
|
|
bool~ processChars::$18
|
|
bool~ processChars::$19
|
|
number~ processChars::$2
|
|
bool~ processChars::$20
|
|
number~ processChars::$21
|
|
number~ processChars::$22
|
|
number~ processChars::$23
|
|
number~ processChars::$24
|
|
number~ processChars::$25
|
|
bool~ processChars::$26
|
|
byte~ processChars::$27
|
|
byte~ processChars::$28
|
|
byte~ processChars::$29
|
|
bool~ processChars::$3
|
|
byte~ processChars::$30
|
|
byte*~ processChars::$31
|
|
byte*~ processChars::$32
|
|
byte*~ processChars::$33
|
|
word*~ processChars::$34
|
|
byte**~ processChars::$35
|
|
byte*~ processChars::$36
|
|
byte*~ processChars::$37
|
|
byte*~ processChars::$38
|
|
byte*~ processChars::$39
|
|
bool~ processChars::$4
|
|
byte*~ processChars::$40
|
|
word*~ processChars::$41
|
|
word*~ processChars::$42
|
|
word*~ processChars::$43
|
|
word*~ processChars::$44
|
|
word*~ processChars::$45
|
|
byte*~ processChars::$46
|
|
word*~ processChars::$47
|
|
word*~ processChars::$48
|
|
word*~ processChars::$49
|
|
bool~ processChars::$5
|
|
word*~ processChars::$50
|
|
word*~ processChars::$51
|
|
word*~ processChars::$52
|
|
word*~ processChars::$53
|
|
word*~ processChars::$54
|
|
word*~ processChars::$55
|
|
word*~ processChars::$56
|
|
byte*~ processChars::$57
|
|
byte*~ processChars::$58
|
|
byte*~ processChars::$59
|
|
bool~ processChars::$6
|
|
word*~ processChars::$60
|
|
byte**~ processChars::$61
|
|
byte*~ processChars::$62
|
|
byte*~ processChars::$63
|
|
byte*~ processChars::$64
|
|
byte*~ processChars::$65
|
|
byte*~ processChars::$66
|
|
word*~ processChars::$67
|
|
word*~ processChars::$68
|
|
word*~ processChars::$69
|
|
byte*~ processChars::$7
|
|
word*~ processChars::$70
|
|
word*~ processChars::$71
|
|
byte*~ processChars::$72
|
|
byte~ processChars::$73
|
|
word*~ processChars::$74
|
|
word*~ processChars::$75
|
|
word*~ processChars::$76
|
|
word*~ processChars::$77
|
|
word*~ processChars::$78
|
|
byte~ processChars::$79
|
|
word~ processChars::$8
|
|
word*~ processChars::$80
|
|
word*~ processChars::$81
|
|
word*~ processChars::$82
|
|
word*~ processChars::$83
|
|
word*~ processChars::$84
|
|
bool~ processChars::$85
|
|
byte~ processChars::$9
|
|
byte processChars::bitmask
|
|
byte processChars::bitmask#0
|
|
byte processChars::bitmask#1
|
|
byte processChars::bitmask#2
|
|
byte processChars::bitmask#3
|
|
byte processChars::bitmask#4
|
|
byte processChars::bitmask#5
|
|
byte processChars::bitmask#6
|
|
byte processChars::bitmask#7
|
|
byte processChars::i
|
|
byte processChars::i#0
|
|
byte processChars::i#1
|
|
byte processChars::i#10
|
|
byte processChars::i#11
|
|
byte processChars::i#12
|
|
byte processChars::i#2
|
|
byte processChars::i#3
|
|
byte processChars::i#4
|
|
byte processChars::i#5
|
|
byte processChars::i#6
|
|
byte processChars::i#7
|
|
byte processChars::i#8
|
|
byte processChars::i#9
|
|
byte processChars::numActive
|
|
byte processChars::numActive#0
|
|
byte processChars::numActive#1
|
|
byte processChars::numActive#10
|
|
byte processChars::numActive#11
|
|
byte processChars::numActive#12
|
|
byte processChars::numActive#13
|
|
byte processChars::numActive#14
|
|
byte processChars::numActive#2
|
|
byte processChars::numActive#3
|
|
byte processChars::numActive#4
|
|
byte processChars::numActive#5
|
|
byte processChars::numActive#6
|
|
byte processChars::numActive#7
|
|
byte processChars::numActive#8
|
|
byte processChars::numActive#9
|
|
struct ProcessingSprite* processChars::processing
|
|
struct ProcessingSprite* processChars::processing#0
|
|
struct ProcessingSprite* processChars::processing#1
|
|
struct ProcessingSprite* processChars::processing#2
|
|
struct ProcessingSprite* processChars::processing#3
|
|
struct ProcessingSprite* processChars::processing#4
|
|
struct ProcessingSprite* processChars::processing#5
|
|
struct ProcessingSprite* processChars::processing#6
|
|
struct ProcessingSprite* processChars::processing#7
|
|
struct ProcessingSprite* processChars::processing#8
|
|
byte processChars::xchar
|
|
byte processChars::xchar#0
|
|
word processChars::xpos
|
|
word processChars::xpos#0
|
|
word processChars::xpos#1
|
|
word processChars::xpos#2
|
|
word processChars::xpos#3
|
|
word processChars::xpos#4
|
|
byte processChars::ychar
|
|
byte processChars::ychar#0
|
|
byte processChars::ypos
|
|
byte processChars::ypos#0
|
|
byte processChars::ypos#1
|
|
void setupRasterIrq(word setupRasterIrq::raster , void()* setupRasterIrq::irqRoutine)
|
|
bool~ setupRasterIrq::$0
|
|
byte~ setupRasterIrq::$1
|
|
void()* setupRasterIrq::irqRoutine
|
|
void()* setupRasterIrq::irqRoutine#0
|
|
void()* setupRasterIrq::irqRoutine#1
|
|
void()* setupRasterIrq::irqRoutine#2
|
|
void()* setupRasterIrq::irqRoutine#3
|
|
void()* setupRasterIrq::irqRoutine#4
|
|
word setupRasterIrq::raster
|
|
word setupRasterIrq::raster#0
|
|
word setupRasterIrq::raster#1
|
|
word setupRasterIrq::raster#2
|
|
word setupRasterIrq::raster#3
|
|
word setupRasterIrq::raster#4
|
|
void startProcessing(byte startProcessing::center_x , byte startProcessing::center_y , byte startProcessing::center_dist)
|
|
number~ startProcessing::$0
|
|
number~ startProcessing::$1
|
|
number~ startProcessing::$10
|
|
number~ startProcessing::$11
|
|
number~ startProcessing::$12
|
|
number~ startProcessing::$13
|
|
byte~ startProcessing::$14
|
|
number~ startProcessing::$15
|
|
bool~ startProcessing::$16
|
|
bool~ startProcessing::$17
|
|
bool~ startProcessing::$18
|
|
bool~ startProcessing::$19
|
|
byte*~ startProcessing::$2
|
|
bool~ startProcessing::$20
|
|
byte~ startProcessing::$21
|
|
byte~ startProcessing::$22
|
|
word~ startProcessing::$23
|
|
word~ startProcessing::$24
|
|
word~ startProcessing::$25
|
|
word~ startProcessing::$26
|
|
word~ startProcessing::$27
|
|
byte*~ startProcessing::$3
|
|
number~ startProcessing::$4
|
|
byte*~ startProcessing::$5
|
|
number~ startProcessing::$6
|
|
byte*~ startProcessing::$7
|
|
number~ startProcessing::$8
|
|
number~ startProcessing::$9
|
|
struct ProcessingChar startProcessing::center
|
|
byte startProcessing::center_dist
|
|
byte startProcessing::center_dist#0
|
|
byte startProcessing::center_x
|
|
byte startProcessing::center_x#0
|
|
byte startProcessing::center_x#1
|
|
byte startProcessing::center_x#2
|
|
byte startProcessing::center_x#3
|
|
byte startProcessing::center_x#4
|
|
byte startProcessing::center_x#5
|
|
byte startProcessing::center_x#6
|
|
byte startProcessing::center_x#7
|
|
byte startProcessing::center_x#8
|
|
byte startProcessing::center_x#9
|
|
byte startProcessing::center_y
|
|
byte startProcessing::center_y#0
|
|
byte startProcessing::center_y#1
|
|
byte startProcessing::center_y#2
|
|
byte startProcessing::center_y#3
|
|
byte startProcessing::center_y#4
|
|
byte startProcessing::center_y#5
|
|
byte startProcessing::center_y#6
|
|
byte startProcessing::center_y#7
|
|
byte startProcessing::center_y#8
|
|
byte startProcessing::center_y#9
|
|
byte startProcessing::ch
|
|
byte startProcessing::ch#0
|
|
byte* startProcessing::chargenData
|
|
byte* startProcessing::chargenData#0
|
|
byte* startProcessing::chargenData#1
|
|
byte* startProcessing::chargenData#2
|
|
byte* startProcessing::colPtr
|
|
byte* startProcessing::colPtr#0
|
|
byte startProcessing::freeIdx
|
|
byte startProcessing::freeIdx#0
|
|
byte startProcessing::freeIdx#1
|
|
byte startProcessing::freeIdx#2
|
|
byte startProcessing::freeIdx#3
|
|
byte startProcessing::freeIdx#4
|
|
byte startProcessing::freeIdx#5
|
|
byte startProcessing::freeIdx#6
|
|
byte startProcessing::i
|
|
byte startProcessing::i#0
|
|
byte startProcessing::i#1
|
|
byte startProcessing::i#2
|
|
byte startProcessing::i#3
|
|
byte startProcessing::i#4
|
|
byte startProcessing::i1
|
|
byte startProcessing::i1#0
|
|
byte startProcessing::i1#1
|
|
byte startProcessing::i1#2
|
|
word startProcessing::offset
|
|
word startProcessing::offset#0
|
|
byte* startProcessing::screenPtr
|
|
byte* startProcessing::screenPtr#0
|
|
byte* startProcessing::screenPtr#1
|
|
byte* startProcessing::screenPtr#2
|
|
byte startProcessing::spriteCol
|
|
byte startProcessing::spriteCol#0
|
|
byte startProcessing::spriteCol#1
|
|
byte startProcessing::spriteCol#2
|
|
byte* startProcessing::spriteData
|
|
byte* startProcessing::spriteData#0
|
|
byte* startProcessing::spriteData#1
|
|
byte* startProcessing::spriteData#2
|
|
byte startProcessing::spriteIdx
|
|
byte startProcessing::spriteIdx#0
|
|
byte startProcessing::spriteIdx#1
|
|
byte startProcessing::spriteIdx#2
|
|
byte startProcessing::spritePtr
|
|
byte startProcessing::spritePtr#0
|
|
word startProcessing::spriteX
|
|
word startProcessing::spriteX#0
|
|
word startProcessing::spriteY
|
|
word startProcessing::spriteY#0
|
|
|
|
Fixing inline constructor with init_angle_screen::$13 = (byte)init_angle_screen::$4 w= (byte)0
|
|
Fixing inline constructor with init_angle_screen::$14 = (byte)init_angle_screen::$5 w= (byte)0
|
|
Successful SSA optimization Pass2FixInlineConstructors
|
|
Adding number conversion cast (unumber) 4 in
|
|
Adding number conversion cast (unumber) 8 in
|
|
Adding number conversion cast (unumber) 4 in
|
|
Adding number conversion cast (unumber) 4 in
|
|
Adding number conversion cast (unumber) 8 in
|
|
Adding number conversion cast (unumber) 4 in
|
|
Adding number conversion cast (snumber) 0 in atan2_16::$0 = atan2_16::y#1 >= 0
|
|
Adding number conversion cast (snumber) 0 in atan2_16::$5 = atan2_16::x#1 >= 0
|
|
Adding number conversion cast (snumber) 0 in atan2_16::$16 = atan2_16::yi#3 == 0
|
|
Adding number conversion cast (unumber) 2 in atan2_16::angle#1 = atan2_16::angle#6 / 2
|
|
Adding number conversion cast (snumber) 0 in atan2_16::$10 = atan2_16::x#4 < 0
|
|
Adding number conversion cast (unumber) 2 in atan2_16::$18 = atan2_16::shift#2 >= 2
|
|
Adding number conversion cast (snumber) 2 in atan2_16::xd#1 = atan2_16::xd#3 >> 2
|
|
Adding number conversion cast (snumber) 2 in atan2_16::yd#1 = atan2_16::yd#3 >> 2
|
|
Adding number conversion cast (unumber) 2 in atan2_16::shift#1 = atan2_16::shift#3 - 2
|
|
Adding number conversion cast (unumber) 0 in atan2_16::$24 = 0 != atan2_16::shift#4
|
|
Adding number conversion cast (snumber) 0 in atan2_16::$20 = atan2_16::yi#5 >= 0
|
|
Adding number conversion cast (snumber) 1 in atan2_16::xd#2 = atan2_16::xd#4 >> 1
|
|
Adding number conversion cast (snumber) 1 in atan2_16::yd#2 = atan2_16::yd#4 >> 1
|
|
Adding number conversion cast (unumber) 1 in atan2_16::i#1 = atan2_16::i#5 + rangenext(0,CORDIC_ITERATIONS_16-1)
|
|
Adding number conversion cast (snumber) 0 in atan2_16::$13 = atan2_16::y#4 < 0
|
|
Adding number conversion cast (unumber) $8000 in atan2_16::$12 = $8000 - atan2_16::angle#9
|
|
Adding number conversion cast (unumber) atan2_16::$12 in atan2_16::$12 = (unumber)$8000 - atan2_16::angle#9
|
|
Adding number conversion cast (unumber) $3e8 in main::$3 = main::src#2 != SCREEN+$3e8
|
|
Adding number conversion cast (unumber) 1 in main::i#1 = main::i#2 + rangenext(0,NUM_PROCESSING-1)
|
|
Adding number conversion cast (unumber) $3e7 in *(SCREEN+$3e7) = '.'
|
|
Adding number conversion cast (unumber) $3e7 in *(COLS+$3e7) = ++ *(COLS+$3e7)
|
|
Adding number conversion cast (unumber) $28 in getCharToProcess::screen_line#1 = getCharToProcess::screen_line#3 + $28
|
|
Adding number conversion cast (unumber) $28 in getCharToProcess::dist_line#1 = getCharToProcess::dist_line#3 + $28
|
|
Adding number conversion cast (unumber) $28 in getCharToProcess::$8 = getCharToProcess::$11 * $28
|
|
Adding number conversion cast (unumber) getCharToProcess::$8 in getCharToProcess::$8 = getCharToProcess::$11 * (unumber)$28
|
|
Adding number conversion cast (unumber) 1 in startProcessing::i#1 = startProcessing::i#3 + rangenext(0,NUM_PROCESSING-1)
|
|
Adding number conversion cast (unumber) $ff in startProcessing::$19 = startProcessing::freeIdx#2 == $ff
|
|
Adding number conversion cast (unumber) $28 in startProcessing::$0 = startProcessing::$23 * $28
|
|
Adding number conversion cast (unumber) startProcessing::$0 in startProcessing::$0 = startProcessing::$23 * (unumber)$28
|
|
Adding number conversion cast (unumber) startProcessing::$1 in startProcessing::$1 = startProcessing::$0 + startProcessing::center_x#1
|
|
Adding number conversion cast (unumber) $40 in startProcessing::$4 = startProcessing::$24 * $40
|
|
Adding number conversion cast (unumber) startProcessing::$4 in startProcessing::$4 = startProcessing::$24 * (unumber)$40
|
|
Adding number conversion cast (unumber) 8 in startProcessing::$6 = startProcessing::$25 * 8
|
|
Adding number conversion cast (unumber) startProcessing::$6 in startProcessing::$6 = startProcessing::$25 * (unumber)8
|
|
Adding number conversion cast (unumber) 3 in startProcessing::spriteData#1 = startProcessing::spriteData#2 + 3
|
|
Adding number conversion cast (unumber) 8 in startProcessing::$8 = startProcessing::$26 * 8
|
|
Adding number conversion cast (unumber) startProcessing::$8 in startProcessing::$8 = startProcessing::$26 * (unumber)8
|
|
Adding number conversion cast (unumber) startProcessing::$9 in startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8
|
|
Adding number conversion cast (unumber) 4 in startProcessing::$10 = startProcessing::$9 << 4
|
|
Adding number conversion cast (unumber) startProcessing::$10 in startProcessing::$10 = startProcessing::$9 << (unumber)4
|
|
Adding number conversion cast (unumber) 8 in startProcessing::$11 = startProcessing::$27 * 8
|
|
Adding number conversion cast (unumber) startProcessing::$11 in startProcessing::$11 = startProcessing::$27 * (unumber)8
|
|
Adding number conversion cast (unumber) startProcessing::$12 in startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11
|
|
Adding number conversion cast (unumber) 4 in startProcessing::$13 = startProcessing::$12 << 4
|
|
Adding number conversion cast (unumber) startProcessing::$13 in startProcessing::$13 = startProcessing::$12 << (unumber)4
|
|
Adding number conversion cast (unumber) $40 in startProcessing::$14 = (byte)SPRITE_DATA/$40 + startProcessing::spriteIdx#1
|
|
Adding number conversion cast (unumber) 8 in startProcessing::$15 = startProcessing::spriteIdx#1 * 8
|
|
Adding number conversion cast (unumber) startProcessing::$15 in startProcessing::$15 = startProcessing::spriteIdx#1 * (unumber)8
|
|
Adding number conversion cast (unumber) 1 in processChars::$2 = 1 << *processChars::$31
|
|
Adding number conversion cast (unumber) processChars::$2 in processChars::$2 = (unumber)1 << *processChars::$31
|
|
Adding number conversion cast (unumber) 1 in processChars::i#1 = processChars::i#3 + rangenext(0,NUM_PROCESSING-1)
|
|
Adding number conversion cast (unumber) 4 in processChars::$8 = *processChars::$34 >> 4
|
|
Adding number conversion cast (unumber) 0 in processChars::$85 = 0 != processChars::$9
|
|
Adding number conversion cast (unumber) $ff in processChars::$10 = $ff ^ processChars::bitmask#3
|
|
Adding number conversion cast (unumber) processChars::$10 in processChars::$10 = (unumber)$ff ^ processChars::bitmask#3
|
|
Adding number conversion cast (unumber) 2 in processChars::$11 = processChars::i#4 * 2
|
|
Adding number conversion cast (unumber) processChars::$11 in processChars::$11 = processChars::i#4 * (unumber)2
|
|
Adding number conversion cast (unumber) 4 in processChars::$12 = *processChars::$41 >> 4
|
|
Adding number conversion cast (unumber) 2 in processChars::$13 = processChars::i#4 * 2
|
|
Adding number conversion cast (unumber) processChars::$13 in processChars::$13 = processChars::i#4 * (unumber)2
|
|
Adding number conversion cast (unumber) $ff in processChars::$25 = $ff ^ processChars::bitmask#4
|
|
Adding number conversion cast (unumber) processChars::$25 in processChars::$25 = (unumber)$ff ^ processChars::bitmask#4
|
|
Adding number conversion cast (unumber) 8 in processChars::$21 = processChars::xpos#2 / 8
|
|
Adding number conversion cast (unumber) processChars::$21 in processChars::$21 = processChars::xpos#2 / (unumber)8
|
|
Adding number conversion cast (unumber) BORDER_XPOS_LEFT/8 in processChars::$22 = processChars::$73 - BORDER_XPOS_LEFT/8
|
|
Adding number conversion cast (unumber) processChars::$22 in processChars::$22 = processChars::$73 - (unumber)BORDER_XPOS_LEFT/8
|
|
Adding number conversion cast (unumber) 8 in processChars::$22 = processChars::$73 - (unumber)BORDER_XPOS_LEFT/8
|
|
Adding number conversion cast (unumber) 8 in processChars::$23 = processChars::ypos#1 / 8
|
|
Adding number conversion cast (unumber) processChars::$23 in processChars::$23 = processChars::ypos#1 / (unumber)8
|
|
Adding number conversion cast (unumber) BORDER_YPOS_TOP/8 in processChars::$24 = processChars::$79 - BORDER_YPOS_TOP/8
|
|
Adding number conversion cast (unumber) processChars::$24 in processChars::$24 = processChars::$79 - (unumber)BORDER_YPOS_TOP/8
|
|
Adding number conversion cast (unumber) 8 in processChars::$24 = processChars::$79 - (unumber)BORDER_YPOS_TOP/8
|
|
Adding number conversion cast (unumber) $3e7 in *(SCREEN+$3e7) = processChars::$27
|
|
Adding number conversion cast (unumber) $28*$c in init_angle_screen::$0 = init_angle_screen::screen#1 + $28*$c
|
|
Adding number conversion cast (unumber) $28*$c in init_angle_screen::$1 = init_angle_screen::screen#1 + $28*$c
|
|
Adding number conversion cast (unumber) $13 in init_angle_screen::$2 = init_angle_screen::x#2 <= $13
|
|
Adding number conversion cast (unumber) 2 in init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
|
Adding number conversion cast (unumber) init_angle_screen::$3 in init_angle_screen::$3 = init_angle_screen::x#3 * (unumber)2
|
|
Adding number conversion cast (unumber) $27 in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
|
Adding number conversion cast (unumber) init_angle_screen::$4 in init_angle_screen::$4 = (unumber)$27 - init_angle_screen::$3
|
|
Adding number conversion cast (unumber) 2 in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
|
Adding number conversion cast (unumber) init_angle_screen::$5 in init_angle_screen::$5 = init_angle_screen::y#2 * (unumber)2
|
|
Adding number conversion cast (unumber) $80 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
|
Adding number conversion cast (unumber) init_angle_screen::$7 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + (unumber)$80
|
|
Adding number conversion cast (unumber) init_angle_screen::$8 in init_angle_screen::$8 = > init_angle_screen::$7
|
|
Adding number conversion cast (unumber) $80 in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
|
Adding number conversion cast (unumber) init_angle_screen::$10 in init_angle_screen::$10 = (unumber)$80 + init_angle_screen::ang_w#0
|
|
Adding number conversion cast (unumber) $80 in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
|
Adding number conversion cast (unumber) init_angle_screen::$11 in init_angle_screen::$11 = (unumber)$80 - init_angle_screen::ang_w#0
|
|
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
|
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
|
Adding number conversion cast (unumber) NUM_PROCESSING*$40 in initSprites::$0 = initSprites::sp#2 < SPRITE_DATA+NUM_PROCESSING*$40
|
|
Adding number conversion cast (unumber) $40 in initSprites::$0 = initSprites::sp#2 < SPRITE_DATA+(unumber)NUM_PROCESSING*$40
|
|
Adding number conversion cast (unumber) 0 in *initSprites::sp#3 = 0
|
|
Adding number conversion cast (unumber) 0 in *SPRITES_MC = 0
|
|
Adding number conversion cast (unumber) 0 in *SPRITES_EXPAND_X = 0
|
|
Adding number conversion cast (unumber) 0 in *SPRITES_EXPAND_Y = 0
|
|
Adding number conversion cast (unumber) $100 in setupRasterIrq::$0 = setupRasterIrq::raster#1 < $100
|
|
Adding number conversion cast (unumber) $7f in *VICII_CONTROL = *VICII_CONTROL & $7f
|
|
Adding number conversion cast (unumber) $80 in *VICII_CONTROL = *VICII_CONTROL | $80
|
|
Adding number conversion cast (unumber) $3e8 in malloc::size#0 = $3e8
|
|
Adding number conversion cast (unumber) $3e8 in malloc::size#1 = $3e8
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Inlining cast malloc::return#0 = (void*)malloc::mem#0
|
|
Inlining cast *initSprites::sp#3 = (unumber)0
|
|
Inlining cast *SPRITES_MC = (unumber)0
|
|
Inlining cast *SPRITES_EXPAND_X = (unumber)0
|
|
Inlining cast *SPRITES_EXPAND_Y = (unumber)0
|
|
Inlining cast malloc::size#0 = (unumber)$3e8
|
|
Inlining cast SCREEN_COPY#0 = (byte*)__start::__init1_$0
|
|
Inlining cast malloc::size#1 = (unumber)$3e8
|
|
Inlining cast SCREEN_DIST#0 = (byte*)__start::__init1_$1
|
|
Successful SSA optimization Pass2InlineCast
|
|
Simplifying constant pointer cast (byte*) 53248
|
|
Simplifying constant pointer cast (byte*) 53249
|
|
Simplifying constant pointer cast (byte*) 53264
|
|
Simplifying constant pointer cast (byte*) 53287
|
|
Simplifying constant pointer cast (byte*) 53269
|
|
Simplifying constant pointer cast (byte*) 53271
|
|
Simplifying constant pointer cast (byte*) 53276
|
|
Simplifying constant pointer cast (byte*) 53277
|
|
Simplifying constant pointer cast (byte*) 53266
|
|
Simplifying constant pointer cast (byte*) 53280
|
|
Simplifying constant pointer cast (byte*) 53281
|
|
Simplifying constant pointer cast (byte*) 53265
|
|
Simplifying constant pointer cast (byte*) 53273
|
|
Simplifying constant pointer cast (byte*) 53274
|
|
Simplifying constant pointer cast (byte*) 0
|
|
Simplifying constant pointer cast (byte*) 1
|
|
Simplifying constant pointer cast (byte*) 53248
|
|
Simplifying constant pointer cast (byte*) 55296
|
|
Simplifying constant pointer cast (struct MOS6526_CIA*) 56320
|
|
Simplifying constant pointer cast (void()**) 65534
|
|
Simplifying constant pointer cast (byte*) 1024
|
|
Simplifying constant pointer cast (byte*) 8192
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast BORDER_XPOS_RIGHT
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant pointer cast (byte*) 0
|
|
Simplifying constant pointer cast (byte*) 40960
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $8000
|
|
Simplifying constant integer cast $3e8
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $3e7
|
|
Simplifying constant integer cast $3e7
|
|
Simplifying constant integer cast $28
|
|
Simplifying constant integer cast $28
|
|
Simplifying constant integer cast $28
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast $28
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast BORDER_XPOS_LEFT/(unumber)8
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast BORDER_YPOS_TOP/(unumber)8
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast $3e7
|
|
Simplifying constant integer cast $13
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $27
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $80
|
|
Simplifying constant integer cast $80
|
|
Simplifying constant integer cast $80
|
|
Simplifying constant integer cast $28
|
|
Simplifying constant integer cast $28
|
|
Simplifying constant integer cast NUM_PROCESSING*(unumber)$40
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $100
|
|
Simplifying constant integer cast $7f
|
|
Simplifying constant integer cast $80
|
|
Simplifying constant integer cast $3e8
|
|
Simplifying constant integer cast $3e8
|
|
Successful SSA optimization PassNCastSimplification
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized signed number type (signed byte) 0
|
|
Finalized signed number type (signed byte) 0
|
|
Finalized signed number type (signed byte) 0
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized signed number type (signed byte) 0
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized signed number type (signed byte) 2
|
|
Finalized signed number type (signed byte) 2
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized signed number type (signed byte) 0
|
|
Finalized signed number type (signed byte) 1
|
|
Finalized signed number type (signed byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized signed number type (signed byte) 0
|
|
Finalized unsigned number type (word) $8000
|
|
Finalized unsigned number type (word) $3e8
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (word) $3e7
|
|
Finalized unsigned number type (word) $3e7
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) $ff
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $40
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 3
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized unsigned number type (byte) $40
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) $ff
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized unsigned number type (byte) 4
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized unsigned number type (byte) $ff
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (word) $3e7
|
|
Finalized unsigned number type (byte) $13
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized unsigned number type (byte) $27
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized unsigned number type (byte) $80
|
|
Finalized unsigned number type (byte) $80
|
|
Finalized unsigned number type (byte) $80
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $40
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (word) $100
|
|
Finalized unsigned number type (byte) $7f
|
|
Finalized unsigned number type (byte) $80
|
|
Finalized unsigned number type (word) $3e8
|
|
Finalized unsigned number type (word) $3e8
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Inferred type updated to word in atan2_16::$12 = $8000 - atan2_16::angle#9
|
|
Inferred type updated to word in getCharToProcess::$8 = getCharToProcess::$11 * $28
|
|
Inferred type updated to word in startProcessing::$0 = startProcessing::$23 * $28
|
|
Inferred type updated to word in startProcessing::$1 = startProcessing::$0 + startProcessing::center_x#1
|
|
Inferred type updated to word in startProcessing::$4 = startProcessing::$24 * $40
|
|
Inferred type updated to word in startProcessing::$6 = startProcessing::$25 * 8
|
|
Inferred type updated to word in startProcessing::$8 = startProcessing::$26 * 8
|
|
Inferred type updated to word in startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8
|
|
Inferred type updated to word in startProcessing::$10 = startProcessing::$9 << 4
|
|
Inferred type updated to word in startProcessing::$11 = startProcessing::$27 * 8
|
|
Inferred type updated to word in startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11
|
|
Inferred type updated to word in startProcessing::$13 = startProcessing::$12 << 4
|
|
Inferred type updated to byte in startProcessing::$15 = startProcessing::spriteIdx#1 * 8
|
|
Inferred type updated to byte in processChars::$2 = 1 << *processChars::$31
|
|
Inferred type updated to byte in processChars::$10 = $ff ^ processChars::bitmask#3
|
|
Inferred type updated to byte in processChars::$11 = processChars::i#4 * 2
|
|
Inferred type updated to byte in processChars::$13 = processChars::i#4 * 2
|
|
Inferred type updated to byte in processChars::$25 = $ff ^ processChars::bitmask#4
|
|
Inferred type updated to word in processChars::$21 = processChars::xpos#2 / 8
|
|
Inferred type updated to byte in processChars::$22 = processChars::$73 - BORDER_XPOS_LEFT/8
|
|
Inferred type updated to byte in processChars::$23 = processChars::ypos#1 / 8
|
|
Inferred type updated to byte in processChars::$24 = processChars::$79 - BORDER_YPOS_TOP/8
|
|
Inferred type updated to byte in init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
|
Inferred type updated to byte in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
|
Inferred type updated to byte in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
|
Inferred type updated to word in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
|
Inferred type updated to byte in init_angle_screen::$8 = > init_angle_screen::$7
|
|
Inferred type updated to byte in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
|
Inferred type updated to byte in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
|
Inversing boolean not [32] atan2_16::$17 = atan2_16::yi#3 != 0 from [31] atan2_16::$16 = atan2_16::yi#3 == 0
|
|
Inversing boolean not [41] atan2_16::$11 = atan2_16::x#4 >= 0 from [40] atan2_16::$10 = atan2_16::x#4 < 0
|
|
Inversing boolean not [52] atan2_16::$19 = 0 == atan2_16::shift#4 from [51] atan2_16::$24 = 0 != atan2_16::shift#4
|
|
Inversing boolean not [76] atan2_16::$14 = atan2_16::y#4 >= 0 from [75] atan2_16::$13 = atan2_16::y#4 < 0
|
|
Inversing boolean not [130] main::$7 = main::center_dist#0 != NOT_FOUND from [129] main::$6 = main::center_dist#0 == NOT_FOUND
|
|
Inversing boolean not [154] getCharToProcess::$3 = getCharToProcess::screen_line#2[getCharToProcess::x#2] == ' ' from [153] getCharToProcess::$2 = getCharToProcess::screen_line#2[getCharToProcess::x#2] != ' '
|
|
Inversing boolean not [163] getCharToProcess::$5 = getCharToProcess::dist#0 >= getCharToProcess::closest_dist#2 from [162] getCharToProcess::$4 = getCharToProcess::dist#0 < getCharToProcess::closest_dist#2
|
|
Inversing boolean not [177] getCharToProcess::$1 = getCharToProcess::closest_dist#3 == NOT_FOUND from [176] getCharToProcess::$0 = getCharToProcess::closest_dist#3 != NOT_FOUND
|
|
Inversing boolean not [203] startProcessing::$17 = ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21] != STATUS_FREE from [202] startProcessing::$16 = ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21] == STATUS_FREE
|
|
Inversing boolean not [284] processChars::$4 = *processChars::$32 == STATUS_FREE from [283] processChars::$3 = *processChars::$32 != STATUS_FREE
|
|
Inversing boolean not [294] processChars::$6 = *processChars::$33 != STATUS_NEW from [293] processChars::$5 = *processChars::$33 == STATUS_NEW
|
|
Successful SSA optimization Pass2UnaryNotSimplification
|
|
Alias malloc::mem#0 = malloc::$0
|
|
Alias malloc::return#0 = malloc::return#4 malloc::return#1
|
|
Alias heap_head#0 = heap_head#7 heap_head#1
|
|
Alias atan2_16::y#1 = atan2_16::y#2 atan2_16::$3 atan2_16::y#3
|
|
Alias atan2_16::x#5 = atan2_16::x#9 atan2_16::x#6
|
|
Alias atan2_16::$2 = atan2_16::$1
|
|
Alias atan2_16::yi#0 = atan2_16::$4 atan2_16::yi#12 atan2_16::yi#13
|
|
Alias atan2_16::x#1 = atan2_16::x#2 atan2_16::$8 atan2_16::x#3
|
|
Alias atan2_16::y#12 = atan2_16::y#15 atan2_16::y#13
|
|
Alias atan2_16::$7 = atan2_16::$6
|
|
Alias atan2_16::xi#0 = atan2_16::$9
|
|
Alias atan2_16::xi#3 = atan2_16::xi#6 atan2_16::xd#0
|
|
Alias atan2_16::yi#3 = atan2_16::yi#4 atan2_16::yd#0
|
|
Alias atan2_16::i#2 = atan2_16::i#6 atan2_16::shift#0
|
|
Alias atan2_16::angle#12 = atan2_16::angle#19
|
|
Alias atan2_16::x#17 = atan2_16::x#7
|
|
Alias atan2_16::y#19 = atan2_16::y#7
|
|
Alias atan2_16::xd#3 = atan2_16::xd#7 atan2_16::xd#8 atan2_16::xd#4
|
|
Alias atan2_16::yd#3 = atan2_16::yd#7 atan2_16::yd#8 atan2_16::yd#4
|
|
Alias atan2_16::shift#2 = atan2_16::shift#3 atan2_16::shift#4
|
|
Alias atan2_16::yi#10 = atan2_16::yi#15 atan2_16::yi#14 atan2_16::yi#11
|
|
Alias atan2_16::xi#10 = atan2_16::xi#12 atan2_16::xi#11 atan2_16::xi#9
|
|
Alias atan2_16::i#10 = atan2_16::i#11 atan2_16::i#8 atan2_16::i#9
|
|
Alias atan2_16::angle#16 = atan2_16::angle#20 atan2_16::angle#18 atan2_16::angle#17
|
|
Alias atan2_16::x#14 = atan2_16::x#18 atan2_16::x#16 atan2_16::x#15
|
|
Alias atan2_16::y#16 = atan2_16::y#20 atan2_16::y#18 atan2_16::y#17
|
|
Alias atan2_16::xi#4 = atan2_16::xi#7 atan2_16::xi#5
|
|
Alias atan2_16::yd#5 = atan2_16::yd#9 atan2_16::yd#6
|
|
Alias atan2_16::yi#5 = atan2_16::yi#6 atan2_16::yi#7
|
|
Alias atan2_16::xd#5 = atan2_16::xd#9 atan2_16::xd#6
|
|
Alias atan2_16::i#3 = atan2_16::i#7 atan2_16::i#4
|
|
Alias atan2_16::angle#14 = atan2_16::angle#7 atan2_16::angle#8
|
|
Alias atan2_16::x#11 = atan2_16::x#13 atan2_16::x#12
|
|
Alias atan2_16::y#10 = atan2_16::y#14 atan2_16::y#11
|
|
Alias atan2_16::angle#1 = atan2_16::angle#9
|
|
Alias atan2_16::y#5 = atan2_16::y#6
|
|
Alias atan2_16::angle#4 = atan2_16::$12
|
|
Alias atan2_16::return#0 = atan2_16::angle#10 atan2_16::return#3 atan2_16::return#1
|
|
Alias atan2_16::angle#11 = atan2_16::angle#15
|
|
Alias atan2_16::angle#5 = atan2_16::$15
|
|
Alias SCREEN_COPY#2 = SCREEN_COPY#6
|
|
Alias SCREEN_DIST#17 = SCREEN_DIST#2
|
|
Alias main::src#2 = main::src#3
|
|
Alias main::dst#2 = main::dst#3
|
|
Alias SCREEN_COPY#25 = SCREEN_COPY#27 SCREEN_COPY#26
|
|
Alias SCREEN_DIST#15 = SCREEN_DIST#18 SCREEN_DIST#16
|
|
Alias SCREEN_COPY#11 = SCREEN_COPY#18 SCREEN_COPY#23 SCREEN_COPY#14
|
|
Alias SCREEN_DIST#10 = SCREEN_DIST#12 SCREEN_DIST#14 SCREEN_DIST#8
|
|
Alias getCharToProcess::return_x#0 = getCharToProcess::return_x#3
|
|
Alias getCharToProcess::return_y#0 = getCharToProcess::return_y#3
|
|
Alias getCharToProcess::return_dist#0 = getCharToProcess::return_dist#3
|
|
Alias SCREEN_COPY#12 = SCREEN_COPY#19 SCREEN_COPY#7 SCREEN_COPY#15
|
|
Alias SCREEN_DIST#11 = SCREEN_DIST#13 SCREEN_DIST#6 SCREEN_DIST#9
|
|
Alias main::center_x#0 = main::$5_x main::center_x#1
|
|
Alias main::center_y#0 = main::$5_y main::center_y#1
|
|
Alias main::center_dist#0 = main::$5_dist main::center_dist#1
|
|
Alias getCharToProcess::dist_line#2 = getCharToProcess::dist_line#4 getCharToProcess::dist_line#7
|
|
Alias getCharToProcess::x#2 = getCharToProcess::x#4 getCharToProcess::x#5 getCharToProcess::closest_x#1
|
|
Alias getCharToProcess::closest_dist#2 = getCharToProcess::closest_dist#5
|
|
Alias getCharToProcess::y#2 = getCharToProcess::y#4 getCharToProcess::y#6 getCharToProcess::closest_y#1
|
|
Alias getCharToProcess::screen_line#2 = getCharToProcess::screen_line#6 getCharToProcess::screen_line#7
|
|
Alias getCharToProcess::closest_x#7 = getCharToProcess::closest_x#8
|
|
Alias getCharToProcess::closest_y#7 = getCharToProcess::closest_y#8
|
|
Alias SCREEN_COPY#20 = SCREEN_COPY#21 SCREEN_COPY#22
|
|
Alias getCharToProcess::dist#0 = getCharToProcess::dist#1 getCharToProcess::closest_dist#1
|
|
Alias getCharToProcess::screen_line#3 = getCharToProcess::screen_line#5
|
|
Alias getCharToProcess::dist_line#3 = getCharToProcess::dist_line#5
|
|
Alias getCharToProcess::y#3 = getCharToProcess::y#5
|
|
Alias getCharToProcess::closest_dist#3 = getCharToProcess::closest_dist#6 getCharToProcess::closest_dist#9 getCharToProcess::closest_dist#7
|
|
Alias getCharToProcess::closest_x#3 = getCharToProcess::closest_x#5 getCharToProcess::closest_x#6 getCharToProcess::closest_x#4
|
|
Alias getCharToProcess::closest_y#3 = getCharToProcess::closest_y#5 getCharToProcess::closest_y#6 getCharToProcess::closest_y#4
|
|
Alias SCREEN_COPY#13 = SCREEN_COPY#16 SCREEN_COPY#8 SCREEN_COPY#4
|
|
Alias getCharToProcess::return_x#1 = getCharToProcess::closest_x#2 getCharToProcess::return_x#4 getCharToProcess::return_x#2
|
|
Alias getCharToProcess::return_y#1 = getCharToProcess::closest_y#2 getCharToProcess::return_y#4 getCharToProcess::return_y#2
|
|
Alias getCharToProcess::return_dist#1 = getCharToProcess::closest_dist#4 getCharToProcess::return_dist#4 getCharToProcess::return_dist#2
|
|
Alias startProcessing::i#2 = startProcessing::i#3 startProcessing::i#4 startProcessing::freeIdx#1
|
|
Alias startProcessing::freeIdx#4 = startProcessing::freeIdx#5
|
|
Alias startProcessing::center_y#5 = startProcessing::center_y#7 startProcessing::center_y#6
|
|
Alias startProcessing::center_x#5 = startProcessing::center_x#7 startProcessing::center_x#6
|
|
Alias startProcessing::freeIdx#2 = startProcessing::freeIdx#3 startProcessing::spriteIdx#0
|
|
Alias startProcessing::center_y#1 = startProcessing::center_y#3
|
|
Alias startProcessing::center_x#1 = startProcessing::center_x#3
|
|
Alias startProcessing::offset#0 = startProcessing::$1
|
|
Alias startProcessing::colPtr#0 = startProcessing::$2
|
|
Alias startProcessing::screenPtr#0 = startProcessing::$3
|
|
Alias startProcessing::spriteData#0 = startProcessing::$5
|
|
Alias startProcessing::chargenData#0 = startProcessing::$7
|
|
Alias startProcessing::center_x#2 = startProcessing::center_x#4
|
|
Alias startProcessing::center_y#2 = startProcessing::center_y#4
|
|
Alias startProcessing::spriteIdx#1 = startProcessing::spriteIdx#2
|
|
Alias startProcessing::spriteCol#1 = startProcessing::spriteCol#2
|
|
Alias startProcessing::screenPtr#1 = startProcessing::screenPtr#2
|
|
Alias startProcessing::spriteX#0 = startProcessing::$10
|
|
Alias startProcessing::spriteY#0 = startProcessing::$13
|
|
Alias startProcessing::spritePtr#0 = startProcessing::$14
|
|
Alias processChars::processing#0 = processChars::$1 processChars::processing#1 processChars::processing#3
|
|
Alias processChars::bitmask#0 = processChars::$2 processChars::bitmask#5 processChars::bitmask#1
|
|
Alias processChars::i#11 = processChars::i#2 processChars::i#12
|
|
Alias processChars::numActive#13 = processChars::numActive#9 processChars::numActive#14
|
|
Alias processChars::xpos#0 = processChars::$8 processChars::xpos#3 processChars::xpos#4
|
|
Alias processChars::bitmask#2 = processChars::bitmask#6 processChars::bitmask#3
|
|
Alias processChars::i#6 = processChars::i#8 processChars::i#7
|
|
Alias processChars::processing#2 = processChars::processing#7 processChars::processing#8
|
|
Alias processChars::numActive#10 = processChars::numActive#12 processChars::numActive#11
|
|
Alias processChars::processing#4 = processChars::processing#5 processChars::processing#6
|
|
Alias processChars::bitmask#4 = processChars::bitmask#7
|
|
Alias processChars::numActive#4 = processChars::numActive#7 processChars::numActive#5
|
|
Alias processChars::i#10 = processChars::i#9 processChars::i#4
|
|
Alias processChars::xpos#1 = processChars::xpos#2
|
|
Alias processChars::ypos#0 = processChars::ypos#1
|
|
Alias processChars::xchar#0 = processChars::$22
|
|
Alias processChars::ychar#0 = processChars::$24
|
|
Alias processChars::numActive#3 = processChars::numActive#6 processChars::numActive#8
|
|
Alias init_angle_screen::screen_topline#0 = init_angle_screen::$0
|
|
Alias init_angle_screen::screen_bottomline#0 = init_angle_screen::$1
|
|
Alias init_angle_screen::x#2 = init_angle_screen::x#3 init_angle_screen::x#4
|
|
Alias init_angle_screen::y#2 = init_angle_screen::y#4 init_angle_screen::y#6 init_angle_screen::y#3
|
|
Alias init_angle_screen::screen_bottomline#2 = init_angle_screen::screen_bottomline#4 init_angle_screen::screen_bottomline#5 init_angle_screen::screen_bottomline#3
|
|
Alias init_angle_screen::xb#2 = init_angle_screen::xb#3 init_angle_screen::xb#4
|
|
Alias init_angle_screen::screen_topline#2 = init_angle_screen::screen_topline#4 init_angle_screen::screen_topline#5 init_angle_screen::screen_topline#3
|
|
Alias atan2_16::return#2 = atan2_16::return#4
|
|
Alias init_angle_screen::angle_w#0 = init_angle_screen::$6
|
|
Alias init_angle_screen::ang_w#0 = init_angle_screen::$8
|
|
Alias initSprites::sp#2 = initSprites::sp#3
|
|
Alias setupRasterIrq::raster#1 = setupRasterIrq::raster#3 setupRasterIrq::raster#4
|
|
Alias setupRasterIrq::irqRoutine#2 = setupRasterIrq::irqRoutine#4 setupRasterIrq::irqRoutine#3
|
|
Alias malloc::return#2 = malloc::return#5
|
|
Alias heap_head#3 = heap_head#8
|
|
Alias malloc::return#3 = malloc::return#6
|
|
Alias SCREEN_COPY#0 = SCREEN_COPY#17 SCREEN_COPY#10 SCREEN_COPY#9 SCREEN_COPY#5 SCREEN_COPY#1
|
|
Alias heap_head#10 = heap_head#4 heap_head#9 heap_head#12 heap_head#11 heap_head#5
|
|
Alias SCREEN_DIST#0 = SCREEN_DIST#5 SCREEN_DIST#7 SCREEN_DIST#4 SCREEN_DIST#1
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (phi-usage) getCharToProcess::x#2 = getCharToProcess::x#3
|
|
Alias candidate removed (phi-usage) getCharToProcess::y#2 = getCharToProcess::y#3
|
|
Alias atan2_16::x#1 = atan2_16::x#5 atan2_16::x#10
|
|
Alias atan2_16::y#1 = atan2_16::y#12 atan2_16::y#9
|
|
Alias atan2_16::yi#0 = atan2_16::yi#9
|
|
Alias atan2_16::yi#10 = atan2_16::yi#5
|
|
Alias atan2_16::xi#10 = atan2_16::xi#4
|
|
Alias atan2_16::i#10 = atan2_16::i#3 atan2_16::i#5
|
|
Alias atan2_16::angle#14 = atan2_16::angle#16
|
|
Alias atan2_16::x#11 = atan2_16::x#14 atan2_16::x#8
|
|
Alias atan2_16::y#10 = atan2_16::y#16 atan2_16::y#8
|
|
Alias atan2_16::y#4 = atan2_16::y#5
|
|
Alias getCharToProcess::screen_line#2 = getCharToProcess::screen_line#3
|
|
Alias getCharToProcess::dist_line#2 = getCharToProcess::dist_line#3
|
|
Alias SCREEN_COPY#13 = SCREEN_COPY#20
|
|
Alias getCharToProcess::return_x#1 = getCharToProcess::closest_x#3
|
|
Alias getCharToProcess::return_y#1 = getCharToProcess::closest_y#3
|
|
Alias getCharToProcess::return_dist#1 = getCharToProcess::closest_dist#3
|
|
Alias startProcessing::center_y#1 = startProcessing::center_y#5
|
|
Alias startProcessing::center_x#1 = startProcessing::center_x#5
|
|
Alias processChars::processing#0 = processChars::processing#2 processChars::processing#4
|
|
Alias processChars::bitmask#0 = processChars::bitmask#2 processChars::bitmask#4
|
|
Alias processChars::i#10 = processChars::i#6 processChars::i#11 processChars::i#5
|
|
Alias processChars::numActive#10 = processChars::numActive#13 processChars::numActive#4 processChars::numActive#2
|
|
Alias processChars::xpos#0 = processChars::xpos#1
|
|
Alias setupRasterIrq::raster#1 = setupRasterIrq::raster#2
|
|
Alias setupRasterIrq::irqRoutine#1 = setupRasterIrq::irqRoutine#2
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (phi-usage) getCharToProcess::x#2 = getCharToProcess::x#3
|
|
Alias candidate removed (phi-usage) getCharToProcess::y#2 = getCharToProcess::y#3
|
|
Alias processChars::i#10 = processChars::i#3
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (phi-usage) getCharToProcess::x#2 = getCharToProcess::x#3
|
|
Alias candidate removed (phi-usage) getCharToProcess::y#2 = getCharToProcess::y#3
|
|
Identical Phi Values atan2_16::y#1 atan2_16::y#0
|
|
Identical Phi Values atan2_16::x#1 atan2_16::x#0
|
|
Identical Phi Values atan2_16::yi#10 atan2_16::yi#3
|
|
Identical Phi Values atan2_16::xi#10 atan2_16::xi#3
|
|
Identical Phi Values atan2_16::i#10 atan2_16::i#2
|
|
Identical Phi Values atan2_16::angle#14 atan2_16::angle#12
|
|
Identical Phi Values atan2_16::x#11 atan2_16::x#17
|
|
Identical Phi Values atan2_16::y#10 atan2_16::y#19
|
|
Identical Phi Values SCREEN_DIST#17 SCREEN_DIST#0
|
|
Identical Phi Values SCREEN_COPY#2 SCREEN_COPY#0
|
|
Identical Phi Values SCREEN_COPY#25 SCREEN_COPY#2
|
|
Identical Phi Values SCREEN_DIST#15 SCREEN_DIST#17
|
|
Identical Phi Values SCREEN_COPY#11 SCREEN_COPY#25
|
|
Identical Phi Values SCREEN_DIST#10 SCREEN_DIST#15
|
|
Identical Phi Values SCREEN_COPY#12 SCREEN_COPY#11
|
|
Identical Phi Values SCREEN_DIST#11 SCREEN_DIST#10
|
|
Identical Phi Values SCREEN_COPY#3 SCREEN_COPY#12
|
|
Identical Phi Values SCREEN_DIST#3 SCREEN_DIST#11
|
|
Identical Phi Values getCharToProcess::screen_line#2 getCharToProcess::screen_line#4
|
|
Identical Phi Values getCharToProcess::dist_line#2 getCharToProcess::dist_line#6
|
|
Identical Phi Values SCREEN_COPY#13 SCREEN_COPY#24
|
|
Identical Phi Values getCharToProcess::x#3 getCharToProcess::x#2
|
|
Identical Phi Values getCharToProcess::y#3 getCharToProcess::y#2
|
|
Identical Phi Values startProcessing::center_y#9 startProcessing::center_y#0
|
|
Identical Phi Values startProcessing::center_x#9 startProcessing::center_x#0
|
|
Identical Phi Values startProcessing::freeIdx#4 startProcessing::freeIdx#6
|
|
Identical Phi Values startProcessing::center_y#1 startProcessing::center_y#8
|
|
Identical Phi Values startProcessing::center_x#1 startProcessing::center_x#8
|
|
Identical Phi Values startProcessing::center_x#2 startProcessing::center_x#1
|
|
Identical Phi Values startProcessing::center_y#2 startProcessing::center_y#1
|
|
Identical Phi Values startProcessing::spriteIdx#1 startProcessing::freeIdx#2
|
|
Identical Phi Values startProcessing::spriteCol#1 startProcessing::spriteCol#0
|
|
Identical Phi Values startProcessing::screenPtr#1 startProcessing::screenPtr#0
|
|
Identical Phi Values init_angle_screen::screen#1 init_angle_screen::screen#0
|
|
Identical Phi Values init_angle_screen::y#2 init_angle_screen::y#5
|
|
Identical Phi Values init_angle_screen::screen_topline#2 init_angle_screen::screen_topline#6
|
|
Identical Phi Values init_angle_screen::screen_bottomline#2 init_angle_screen::screen_bottomline#6
|
|
Identical Phi Values setupRasterIrq::raster#1 setupRasterIrq::raster#0
|
|
Identical Phi Values setupRasterIrq::irqRoutine#1 setupRasterIrq::irqRoutine#0
|
|
Identical Phi Values heap_head#3 heap_head#0
|
|
Identical Phi Values heap_head#10 heap_head#0
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Identical Phi Values atan2_16::x#17 atan2_16::x#0
|
|
Identical Phi Values atan2_16::y#19 atan2_16::y#0
|
|
Identical Phi Values atan2_16::x#4 atan2_16::x#17
|
|
Identical Phi Values atan2_16::y#4 atan2_16::y#19
|
|
Identical Phi Values SCREEN_COPY#24 SCREEN_COPY#0
|
|
Identical Phi Values getCharToProcess::y#2 getCharToProcess::y#7
|
|
Identical Phi Values startProcessing::center_y#8 startProcessing::center_y#0
|
|
Identical Phi Values startProcessing::center_x#8 startProcessing::center_x#0
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Identified duplicate assignment right side [335] processChars::$13 = processChars::i#10 * 2
|
|
Identified duplicate assignment right side [406] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c
|
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
|
Simple Condition atan2_16::$0 [7] if(atan2_16::y#0>=0) goto atan2_16::@1
|
|
Simple Condition atan2_16::$5 [11] if(atan2_16::x#0>=0) goto atan2_16::@4
|
|
Simple Condition atan2_16::$17 [18] if(atan2_16::yi#3!=0) goto atan2_16::@11
|
|
Simple Condition atan2_16::$11 [22] if(atan2_16::x#0>=0) goto atan2_16::@7
|
|
Simple Condition atan2_16::$18 [25] if(atan2_16::shift#2>=2) goto atan2_16::@14
|
|
Simple Condition atan2_16::$19 [30] if(0==atan2_16::shift#2) goto atan2_16::@17
|
|
Simple Condition atan2_16::$20 [33] if(atan2_16::yi#3>=0) goto atan2_16::@18
|
|
Simple Condition atan2_16::$21 [47] if(atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@10
|
|
Simple Condition atan2_16::$14 [50] if(atan2_16::y#0>=0) goto atan2_16::@8
|
|
Simple Condition main::$3 [62] if(main::src#2!=SCREEN+$3e8) goto main::@2
|
|
Simple Condition main::$4 [72] if(main::i#1!=rangelast(0,NUM_PROCESSING-1)) goto main::@4
|
|
Simple Condition main::$7 [86] if(main::center_dist#0!=NOT_FOUND) goto main::@7
|
|
Simple Condition getCharToProcess::$3 [107] if(getCharToProcess::screen_line#4[getCharToProcess::x#2]==' ') goto getCharToProcess::@4
|
|
Simple Condition getCharToProcess::$6 [111] if(getCharToProcess::x#1!=rangelast(0,$27)) goto getCharToProcess::@3
|
|
Simple Condition getCharToProcess::$5 [114] if(getCharToProcess::dist#0>=getCharToProcess::closest_dist#2) goto getCharToProcess::@4
|
|
Simple Condition getCharToProcess::$7 [119] if(getCharToProcess::y#1!=rangelast(0,$18)) goto getCharToProcess::@2
|
|
Simple Condition getCharToProcess::$1 [121] if(getCharToProcess::return_dist#1==NOT_FOUND) goto getCharToProcess::@1
|
|
Simple Condition startProcessing::$17 [137] if(((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21]!=STATUS_FREE) goto startProcessing::@3
|
|
Simple Condition startProcessing::$18 [140] if(startProcessing::i#1!=rangelast(0,NUM_PROCESSING-1)) goto startProcessing::@2
|
|
Simple Condition startProcessing::$19 [143] if(startProcessing::freeIdx#2==$ff) goto startProcessing::@1
|
|
Simple Condition startProcessing::$20 [166] if(startProcessing::i1#1!=rangelast(0,7)) goto startProcessing::@7
|
|
Simple Condition processChars::$4 [201] if(*processChars::$32==STATUS_FREE) goto processChars::@2
|
|
Simple Condition processChars::$26 [205] if(processChars::i#1!=rangelast(0,NUM_PROCESSING-1)) goto processChars::@1
|
|
Simple Condition processChars::$6 [209] if(*processChars::$33!=STATUS_NEW) goto processChars::@3
|
|
Simple Condition processChars::$85 [215] if(0!=processChars::$9) goto processChars::@4
|
|
Simple Condition init_angle_screen::$2 [313] if(init_angle_screen::x#2<=$13) goto init_angle_screen::@3
|
|
Simple Condition init_angle_screen::$12 [341] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
|
Simple Condition initSprites::$0 [346] if(initSprites::sp#2<SPRITE_DATA+NUM_PROCESSING*$40) goto initSprites::@2
|
|
Simple Condition initSprites::$1 [354] if(initSprites::i#1!=rangelast(0,7)) goto initSprites::@4
|
|
Simple Condition setupRasterIrq::$0 [365] if(setupRasterIrq::raster#0<$100) goto setupRasterIrq::@1
|
|
Simple Condition irqTop::$1 [383] if(irqTop::i#1!=rangelast(0,4)) goto irqTop::@3
|
|
Simple Condition irqTop::$2 [390] if(irqTop::i1#1!=rangelast(0,7)) goto irqTop::@5
|
|
Simple Condition irqBottom::$3 [403] if(irqBottom::i#1!=rangelast(0,4)) goto irqBottom::@5
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
Rewriting || if()-condition to two if()s [259] processChars::$20 = processChars::$18 || processChars::$19
|
|
Rewriting || if()-condition to two if()s [255] processChars::$18 = processChars::$16 || processChars::$17
|
|
Rewriting || if()-condition to two if()s [251] processChars::$16 = processChars::$14 || processChars::$15
|
|
Rewriting ! if()-condition to reversed if() [299] processChars::$0 = ! DEBUG
|
|
Rewriting ! if()-condition to reversed if() [374] irqTop::$0 = ! DEBUG
|
|
Rewriting ! if()-condition to reversed if() [394] irqBottom::$0 = ! DEBUG
|
|
Rewriting ! if()-condition to reversed if() [397] irqBottom::$2 = ! DEBUG
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Negating conditional jump and destination [47] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@12
|
|
Constant atan2_16::angle#0 = 0
|
|
Constant atan2_16::i#0 = 0
|
|
Constant main::src#0 = SCREEN
|
|
Constant main::i#0 = 0
|
|
Constant setupRasterIrq::raster#0 = RASTER_IRQ_TOP
|
|
Constant setupRasterIrq::irqRoutine#0 = &irqTop
|
|
Constant getCharToProcess::closest_x#0 = 0
|
|
Constant getCharToProcess::closest_y#0 = 0
|
|
Constant getCharToProcess::closest_dist#0 = NOT_FOUND
|
|
Constant getCharToProcess::y#0 = 0
|
|
Constant getCharToProcess::x#0 = 0
|
|
Constant startProcessing::freeIdx#0 = $ff
|
|
Constant startProcessing::i#0 = 0
|
|
Constant startProcessing::i1#0 = 0
|
|
Constant processChars::numActive#0 = 0
|
|
Constant processChars::i#0 = 0
|
|
Constant init_angle_screen::y#0 = 0
|
|
Constant init_angle_screen::x#0 = 0
|
|
Constant init_angle_screen::xb#0 = $27
|
|
Constant initSprites::sp#0 = SPRITE_DATA
|
|
Constant initSprites::i#0 = 0
|
|
Constant irqTop::i#0 = 0
|
|
Constant irqTop::i1#0 = 0
|
|
Constant irqBottom::i#0 = 0
|
|
Constant heap_head#2 = HEAP_TOP
|
|
Constant malloc::size#0 = $3e8
|
|
Constant malloc::size#1 = $3e8
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
if() condition always true - replacing block destination [91] if(true) goto main::@6
|
|
if() condition always true - replacing block destination [94] if(true) goto main::@9
|
|
if() condition always false - eliminating [300] if(DEBUG) goto processChars::@13
|
|
if() condition always true - replacing block destination [365] if(setupRasterIrq::raster#0<$100) goto setupRasterIrq::@1
|
|
if() condition always false - eliminating [375] if(DEBUG) goto irqTop::@2
|
|
if() condition always false - eliminating [395] if(DEBUG) goto irqBottom::@3
|
|
if() condition always false - eliminating [398] if(DEBUG) goto irqBottom::@4
|
|
Successful SSA optimization Pass2ConstantIfs
|
|
Resolved ranged next value [45] atan2_16::i#1 = ++ atan2_16::i#2 to ++
|
|
Resolved ranged comparison value [47] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@12 to CORDIC_ITERATIONS_16-1+1
|
|
Resolved ranged next value [70] main::i#1 = ++ main::i#2 to ++
|
|
Resolved ranged comparison value [72] if(main::i#1!=rangelast(0,NUM_PROCESSING-1)) goto main::@4 to NUM_PROCESSING-1+1
|
|
Resolved ranged next value [109] getCharToProcess::x#1 = ++ getCharToProcess::x#2 to ++
|
|
Resolved ranged comparison value [111] if(getCharToProcess::x#1!=rangelast(0,$27)) goto getCharToProcess::@3 to $28
|
|
Resolved ranged next value [117] getCharToProcess::y#1 = ++ getCharToProcess::y#7 to ++
|
|
Resolved ranged comparison value [119] if(getCharToProcess::y#1!=rangelast(0,$18)) goto getCharToProcess::@2 to $19
|
|
Resolved ranged next value [138] startProcessing::i#1 = ++ startProcessing::i#2 to ++
|
|
Resolved ranged comparison value [140] if(startProcessing::i#1!=rangelast(0,NUM_PROCESSING-1)) goto startProcessing::@2 to NUM_PROCESSING-1+1
|
|
Resolved ranged next value [164] startProcessing::i1#1 = ++ startProcessing::i1#2 to ++
|
|
Resolved ranged comparison value [166] if(startProcessing::i1#1!=rangelast(0,7)) goto startProcessing::@7 to 8
|
|
Resolved ranged next value [203] processChars::i#1 = ++ processChars::i#10 to ++
|
|
Resolved ranged comparison value [205] if(processChars::i#1!=rangelast(0,NUM_PROCESSING-1)) goto processChars::@1 to NUM_PROCESSING-1+1
|
|
Resolved ranged next value [339] init_angle_screen::y#1 = ++ init_angle_screen::y#5 to ++
|
|
Resolved ranged comparison value [341] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1 to $d
|
|
Resolved ranged next value [352] initSprites::i#1 = ++ initSprites::i#2 to ++
|
|
Resolved ranged comparison value [354] if(initSprites::i#1!=rangelast(0,7)) goto initSprites::@4 to 8
|
|
Resolved ranged next value [381] irqTop::i#1 = ++ irqTop::i#2 to ++
|
|
Resolved ranged comparison value [383] if(irqTop::i#1!=rangelast(0,4)) goto irqTop::@3 to 5
|
|
Resolved ranged next value [388] irqTop::i1#1 = ++ irqTop::i1#2 to ++
|
|
Resolved ranged comparison value [390] if(irqTop::i1#1!=rangelast(0,7)) goto irqTop::@5 to 8
|
|
Resolved ranged next value [401] irqBottom::i#1 = ++ irqBottom::i#2 to ++
|
|
Resolved ranged comparison value [403] if(irqBottom::i#1!=rangelast(0,4)) goto irqBottom::@5 to 5
|
|
Rewriting conditional comparison [313] if(init_angle_screen::x#2<=$13) goto init_angle_screen::@3
|
|
Converting *(pointer+n) to pointer[n] [127] *getCharToProcess::$10 = ' ' -- getCharToProcess::$9[getCharToProcess::return_x#1]
|
|
Converting *(pointer+n) to pointer[n] [197] processChars::bitmask#0 = 1 << *processChars::$31 -- processChars::$57[OFFSET_STRUCT_PROCESSINGSPRITE_ID]
|
|
Converting *(pointer+n) to pointer[n] [201] if(*processChars::$32==STATUS_FREE) goto processChars::@2 -- processChars::$58[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]
|
|
Converting *(pointer+n) to pointer[n] [209] if(*processChars::$33!=STATUS_NEW) goto processChars::@3 -- processChars::$59[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]
|
|
Converting *(pointer+n) to pointer[n] [212] processChars::xpos#0 = *processChars::$34 >> 4 -- processChars::$60[OFFSET_STRUCT_PROCESSINGSPRITE_X]
|
|
Converting *(pointer+n) to pointer[n] [218] *(*processChars::$35) = ' ' -- processChars::$61[OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR]
|
|
Converting *(pointer+n) to pointer[n] [224] SPRITES_COLOR[*processChars::$37] = *processChars::$36 -- processChars::$62[OFFSET_STRUCT_PROCESSINGSPRITE_COL]
|
|
Converting *(pointer+n) to pointer[n] [224] SPRITES_COLOR[*processChars::$37] = processChars::$62[OFFSET_STRUCT_PROCESSINGSPRITE_COL] -- processChars::$63[OFFSET_STRUCT_PROCESSINGSPRITE_ID]
|
|
Converting *(pointer+n) to pointer[n] [227] processChars::$7 = SCREEN+OFFSET_SPRITE_PTRS + *processChars::$38 -- processChars::$64[OFFSET_STRUCT_PROCESSINGSPRITE_ID]
|
|
Converting *(pointer+n) to pointer[n] [230] *processChars::$7 = *processChars::$39 -- processChars::$65[OFFSET_STRUCT_PROCESSINGSPRITE_PTR]
|
|
Converting *(pointer+n) to pointer[n] [230] *processChars::$7 = processChars::$65[OFFSET_STRUCT_PROCESSINGSPRITE_PTR] -- (SCREEN+OFFSET_SPRITE_PTRS)[processChars::$64[OFFSET_STRUCT_PROCESSINGSPRITE_ID]]
|
|
Converting *(pointer+n) to pointer[n] [233] *processChars::$40 = STATUS_PROCESSING -- processChars::$66[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]
|
|
Converting *(pointer+n) to pointer[n] [241] processChars::$12 = *processChars::$41 >> 4 -- processChars::$67[OFFSET_STRUCT_PROCESSINGSPRITE_Y]
|
|
Converting *(pointer+n) to pointer[n] [247] processChars::$14 = *processChars::$42 < XPOS_LEFTMOST -- processChars::$68[OFFSET_STRUCT_PROCESSINGSPRITE_X]
|
|
Converting *(pointer+n) to pointer[n] [250] processChars::$15 = *processChars::$43 > XPOS_RIGHTMOST -- processChars::$69[OFFSET_STRUCT_PROCESSINGSPRITE_X]
|
|
Converting *(pointer+n) to pointer[n] [254] processChars::$17 = *processChars::$44 < YPOS_TOPMOST -- processChars::$70[OFFSET_STRUCT_PROCESSINGSPRITE_Y]
|
|
Converting *(pointer+n) to pointer[n] [258] processChars::$19 = *processChars::$45 > YPOS_BOTTOMMOST -- processChars::$71[OFFSET_STRUCT_PROCESSINGSPRITE_Y]
|
|
Converting *(pointer+n) to pointer[n] [263] *processChars::$46 = STATUS_FREE -- processChars::$72[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]
|
|
Converting *(pointer+n) to pointer[n] [274] *processChars::$48 = *processChars::$47 + VXSIN[processChars::$29] -- processChars::$74[OFFSET_STRUCT_PROCESSINGSPRITE_VX]
|
|
Converting *(pointer+n) to pointer[n] [274] *processChars::$48 = processChars::$74[OFFSET_STRUCT_PROCESSINGSPRITE_VX] + VXSIN[processChars::$29] -- processChars::$75[OFFSET_STRUCT_PROCESSINGSPRITE_VX]
|
|
Converting *(pointer+n) to pointer[n] [281] *processChars::$51 = *processChars::$49 + *processChars::$50 -- processChars::$76[OFFSET_STRUCT_PROCESSINGSPRITE_X]
|
|
Converting *(pointer+n) to pointer[n] [281] *processChars::$51 = processChars::$76[OFFSET_STRUCT_PROCESSINGSPRITE_X] + *processChars::$50 -- processChars::$77[OFFSET_STRUCT_PROCESSINGSPRITE_VX]
|
|
Converting *(pointer+n) to pointer[n] [281] *processChars::$51 = processChars::$76[OFFSET_STRUCT_PROCESSINGSPRITE_X] + processChars::$77[OFFSET_STRUCT_PROCESSINGSPRITE_VX] -- processChars::$78[OFFSET_STRUCT_PROCESSINGSPRITE_X]
|
|
Converting *(pointer+n) to pointer[n] [290] *processChars::$53 = *processChars::$52 + VYSIN[processChars::$30] -- processChars::$80[OFFSET_STRUCT_PROCESSINGSPRITE_VY]
|
|
Converting *(pointer+n) to pointer[n] [290] *processChars::$53 = processChars::$80[OFFSET_STRUCT_PROCESSINGSPRITE_VY] + VYSIN[processChars::$30] -- processChars::$81[OFFSET_STRUCT_PROCESSINGSPRITE_VY]
|
|
Converting *(pointer+n) to pointer[n] [297] *processChars::$56 = *processChars::$54 + *processChars::$55 -- processChars::$82[OFFSET_STRUCT_PROCESSINGSPRITE_Y]
|
|
Converting *(pointer+n) to pointer[n] [297] *processChars::$56 = processChars::$82[OFFSET_STRUCT_PROCESSINGSPRITE_Y] + *processChars::$55 -- processChars::$83[OFFSET_STRUCT_PROCESSINGSPRITE_VY]
|
|
Converting *(pointer+n) to pointer[n] [297] *processChars::$56 = processChars::$82[OFFSET_STRUCT_PROCESSINGSPRITE_Y] + processChars::$83[OFFSET_STRUCT_PROCESSINGSPRITE_VY] -- processChars::$84[OFFSET_STRUCT_PROCESSINGSPRITE_Y]
|
|
Successful SSA optimization Pass2InlineDerefIdx
|
|
Simplifying expression containing zero (word*)PROCESSING in [180] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_X)[startProcessing::$22] = startProcessing::spriteX#0
|
|
Simplifying expression containing zero processChars::$60 in [211] processChars::$34 = processChars::$60 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
Simplifying expression containing zero processChars::$60 in [212] processChars::xpos#0 = processChars::$60[OFFSET_STRUCT_PROCESSINGSPRITE_X] >> 4
|
|
Simplifying expression containing zero processChars::$68 in [246] processChars::$42 = processChars::$68 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
Simplifying expression containing zero processChars::$68 in [247] processChars::$14 = processChars::$68[OFFSET_STRUCT_PROCESSINGSPRITE_X] < XPOS_LEFTMOST
|
|
Simplifying expression containing zero processChars::$69 in [249] processChars::$43 = processChars::$69 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
Simplifying expression containing zero processChars::$69 in [250] processChars::$15 = processChars::$69[OFFSET_STRUCT_PROCESSINGSPRITE_X] > XPOS_RIGHTMOST
|
|
Simplifying expression containing zero processChars::$76 in [276] processChars::$49 = processChars::$76 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
Simplifying expression containing zero processChars::$78 in [280] processChars::$51 = processChars::$78 + OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
Simplifying expression containing zero processChars::$76 in [281] processChars::$78[OFFSET_STRUCT_PROCESSINGSPRITE_X] = processChars::$76[OFFSET_STRUCT_PROCESSINGSPRITE_X] + processChars::$77[OFFSET_STRUCT_PROCESSINGSPRITE_VX]
|
|
Simplifying expression containing zero processChars::$78 in [281] processChars::$78[OFFSET_STRUCT_PROCESSINGSPRITE_X] = *processChars::$76 + processChars::$77[OFFSET_STRUCT_PROCESSINGSPRITE_VX]
|
|
Successful SSA optimization PassNSimplifyExpressionWithZero
|
|
Eliminating unused variable startProcessing::center_dist#0 and assignment [68] startProcessing::center_dist#0 = main::center_dist#0
|
|
Eliminating unused variable getCharToProcess::return#0 and assignment [88] getCharToProcess::return#0 = struct-unwound {getCharToProcess::return_x#1, getCharToProcess::return_y#1, getCharToProcess::return_dist#1}
|
|
Eliminating unused variable getCharToProcess::$10 and assignment [92] getCharToProcess::$10 = getCharToProcess::$9 + getCharToProcess::return_x#1
|
|
Eliminating unused variable getCharToProcess::return#1 and assignment [94] getCharToProcess::return#1 = struct-unwound {getCharToProcess::return_x#1, getCharToProcess::return_y#1, getCharToProcess::return_dist#1}
|
|
Eliminating unused variable processChars::$31 and assignment [152] processChars::$31 = processChars::$57 + OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
Eliminating unused variable processChars::$32 and assignment [155] processChars::$32 = processChars::$58 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
Eliminating unused variable processChars::$33 and assignment [161] processChars::$33 = processChars::$59 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
Eliminating unused variable processChars::$34 and assignment [164] processChars::$34 = processChars::$60
|
|
Eliminating unused variable processChars::$35 and assignment [169] processChars::$35 = processChars::$61 + OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR
|
|
Eliminating unused variable processChars::$36 and assignment [173] processChars::$36 = processChars::$62 + OFFSET_STRUCT_PROCESSINGSPRITE_COL
|
|
Eliminating unused variable processChars::$37 and assignment [175] processChars::$37 = processChars::$63 + OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
Eliminating unused variable processChars::$38 and assignment [178] processChars::$38 = processChars::$64 + OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
Eliminating unused variable processChars::$7 and assignment [179] processChars::$7 = SCREEN+OFFSET_SPRITE_PTRS + processChars::$64[OFFSET_STRUCT_PROCESSINGSPRITE_ID]
|
|
Eliminating unused variable processChars::$39 and assignment [181] processChars::$39 = processChars::$65 + OFFSET_STRUCT_PROCESSINGSPRITE_PTR
|
|
Eliminating unused variable processChars::$40 and assignment [184] processChars::$40 = processChars::$66 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
Eliminating unused variable processChars::$41 and assignment [192] processChars::$41 = processChars::$67 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
Eliminating unused variable processChars::$42 and assignment [198] processChars::$42 = processChars::$68
|
|
Eliminating unused variable processChars::$43 and assignment [201] processChars::$43 = processChars::$69
|
|
Eliminating unused variable processChars::$44 and assignment [204] processChars::$44 = processChars::$70 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
Eliminating unused variable processChars::$45 and assignment [207] processChars::$45 = processChars::$71 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
Eliminating unused variable processChars::$46 and assignment [211] processChars::$46 = processChars::$72 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
Eliminating unused variable processChars::$47 and assignment [220] processChars::$47 = processChars::$74 + OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
Eliminating unused variable processChars::$48 and assignment [222] processChars::$48 = processChars::$75 + OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
Eliminating unused variable processChars::$49 and assignment [225] processChars::$49 = processChars::$76
|
|
Eliminating unused variable processChars::$50 and assignment [227] processChars::$50 = processChars::$77 + OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
Eliminating unused variable processChars::$51 and assignment [229] processChars::$51 = processChars::$78
|
|
Eliminating unused variable processChars::$52 and assignment [236] processChars::$52 = processChars::$80 + OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
Eliminating unused variable processChars::$53 and assignment [238] processChars::$53 = processChars::$81 + OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
Eliminating unused variable processChars::$54 and assignment [241] processChars::$54 = processChars::$82 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
Eliminating unused variable processChars::$55 and assignment [243] processChars::$55 = processChars::$83 + OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
Eliminating unused variable processChars::$56 and assignment [245] processChars::$56 = processChars::$84 + OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
Eliminating unused constant DEBUG
|
|
Eliminating unused constant OFFSET_STRUCT_PROCESSINGSPRITE_X
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Eliminating variable processChars::$27 from unused block processChars::@13
|
|
Eliminating variable irqTop::i#2 from unused block irqTop::@3
|
|
Eliminating variable irqTop::i#1 from unused block irqTop::@3
|
|
Eliminating variable irqTop::i1#2 from unused block irqTop::@5
|
|
Eliminating variable irqTop::i1#1 from unused block irqTop::@5
|
|
Eliminating variable irqBottom::i#2 from unused block irqBottom::@5
|
|
Eliminating variable irqBottom::i#1 from unused block irqBottom::@5
|
|
Removing unused block main::@return
|
|
Removing unused block processChars::@13
|
|
Removing unused block setupRasterIrq::@3
|
|
Removing PHI-reference to removed block (irqTop::@2) in block irqTop::@3
|
|
Removing unused block irqTop::@2
|
|
Removing unused block irqTop::@3
|
|
Removing PHI-reference to removed block (irqTop::@4) in block irqTop::@5
|
|
Removing unused block irqTop::@4
|
|
Removing unused block irqTop::@5
|
|
Removing unused block irqTop::@6
|
|
Removing PHI-reference to removed block (irqBottom::@3) in block irqBottom::@5
|
|
Removing unused block irqBottom::@3
|
|
Removing unused block irqBottom::@5
|
|
Removing unused block irqBottom::@6
|
|
Removing unused block irqBottom::@4
|
|
Successful SSA optimization Pass2EliminateUnusedBlocks
|
|
Adding number conversion cast (unumber) CORDIC_ITERATIONS_16-1+1 in if(atan2_16::i#1==CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12
|
|
Adding number conversion cast (unumber) 1 in if(atan2_16::i#1==(unumber)CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12
|
|
Adding number conversion cast (unumber) NUM_PROCESSING-1+1 in if(main::i#1!=NUM_PROCESSING-1+1) goto main::@4
|
|
Adding number conversion cast (unumber) 1 in if(main::i#1!=(unumber)NUM_PROCESSING-1+1) goto main::@4
|
|
Adding number conversion cast (unumber) $28 in if(getCharToProcess::x#1!=$28) goto getCharToProcess::@3
|
|
Adding number conversion cast (unumber) $19 in if(getCharToProcess::y#1!=$19) goto getCharToProcess::@2
|
|
Adding number conversion cast (unumber) NUM_PROCESSING-1+1 in if(startProcessing::i#1!=NUM_PROCESSING-1+1) goto startProcessing::@2
|
|
Adding number conversion cast (unumber) 1 in if(startProcessing::i#1!=(unumber)NUM_PROCESSING-1+1) goto startProcessing::@2
|
|
Adding number conversion cast (unumber) 8 in if(startProcessing::i1#1!=8) goto startProcessing::@7
|
|
Adding number conversion cast (unumber) NUM_PROCESSING-1+1 in if(processChars::i#1!=NUM_PROCESSING-1+1) goto processChars::@1
|
|
Adding number conversion cast (unumber) 1 in if(processChars::i#1!=(unumber)NUM_PROCESSING-1+1) goto processChars::@1
|
|
Adding number conversion cast (unumber) $13+1 in if(init_angle_screen::x#2<$13+1) goto init_angle_screen::@3
|
|
Adding number conversion cast (unumber) 1 in if(init_angle_screen::x#2<(unumber)$13+1) goto init_angle_screen::@3
|
|
Adding number conversion cast (unumber) $d in if(init_angle_screen::y#1!=$d) goto init_angle_screen::@1
|
|
Adding number conversion cast (unumber) 8 in if(initSprites::i#1!=8) goto initSprites::@4
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Simplifying constant integer cast CORDIC_ITERATIONS_16-1+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast NUM_PROCESSING-1+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $28
|
|
Simplifying constant integer cast $19
|
|
Simplifying constant integer cast NUM_PROCESSING-1+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast NUM_PROCESSING-1+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast processChars::$23
|
|
Simplifying constant integer cast $13+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast init_angle_screen::$4
|
|
Simplifying constant integer cast init_angle_screen::$5
|
|
Simplifying constant integer cast $d
|
|
Simplifying constant integer cast 8
|
|
Successful SSA optimization PassNCastSimplification
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $19
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) $d
|
|
Finalized unsigned number type (byte) 8
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Alias processChars::$13 = processChars::$11
|
|
Alias processChars::$79 = processChars::$23
|
|
Alias init_angle_screen::screen_bottomline#0 = init_angle_screen::screen_topline#0
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Simple Condition processChars::$14 [187] if(*processChars::$68<XPOS_LEFTMOST) goto processChars::@6
|
|
Simple Condition processChars::$19 [289] if(processChars::$71[OFFSET_STRUCT_PROCESSINGSPRITE_Y]>YPOS_BOTTOMMOST) goto processChars::@6
|
|
Simple Condition processChars::$17 [290] if(processChars::$70[OFFSET_STRUCT_PROCESSINGSPRITE_Y]<YPOS_TOPMOST) goto processChars::@6
|
|
Simple Condition processChars::$15 [291] if(*processChars::$69>XPOS_RIGHTMOST) goto processChars::@6
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
Constant right-side identified [264] setupRasterIrq::$1 = < setupRasterIrq::raster#0
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
Constant setupRasterIrq::$1 = <setupRasterIrq::raster#0
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Eliminating unused constant BORDER_COLOR
|
|
Eliminating unused constant BG_COLOR
|
|
Eliminating unused constant WHITE
|
|
Eliminating unused constant BLUE
|
|
Eliminating unused constant irqTop::i#0
|
|
Eliminating unused constant irqTop::i1#0
|
|
Eliminating unused constant irqBottom::i#0
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Inlining Noop Cast [3] malloc::return#0 = (void*)malloc::mem#0 keeping malloc::mem#0
|
|
Inlining Noop Cast [146] processChars::$57 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [148] processChars::$58 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [153] processChars::$59 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [155] processChars::$60 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [159] processChars::$61 = (byte**)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [162] processChars::$62 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [163] processChars::$63 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [165] processChars::$64 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [166] processChars::$65 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [168] processChars::$66 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [175] processChars::$67 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [179] processChars::$68 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [180] processChars::$69 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [181] processChars::$70 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [182] processChars::$71 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [184] processChars::$72 = (byte*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [192] processChars::$74 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [193] processChars::$75 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [195] processChars::$76 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [196] processChars::$77 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [197] processChars::$78 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [202] processChars::$80 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [203] processChars::$81 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [205] processChars::$82 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [206] processChars::$83 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Inlining Noop Cast [207] processChars::$84 = (word*)processChars::processing#0 keeping processChars::processing#0
|
|
Successful SSA optimization Pass2NopCastInlining
|
|
Inlining Noop Cast [218] init_angle_screen::xw#0 = (signed word)init_angle_screen::$13 keeping init_angle_screen::xw#0
|
|
Inlining Noop Cast [221] init_angle_screen::yw#0 = (signed word)init_angle_screen::$14 keeping init_angle_screen::yw#0
|
|
Inlining Noop Cast [277] SCREEN_COPY#0 = (byte*)__start::__init1_$0 keeping SCREEN_COPY#0
|
|
Inlining Noop Cast [281] SCREEN_DIST#0 = (byte*)__start::__init1_$1 keeping SCREEN_DIST#0
|
|
Successful SSA optimization Pass2NopCastInlining
|
|
Inlining Noop Cast [275] malloc::return#2 = (void*)malloc::mem#0 keeping malloc::mem#0
|
|
Inlining Noop Cast [279] malloc::return#3 = (void*)malloc::mem#0 keeping malloc::mem#0
|
|
Successful SSA optimization Pass2NopCastInlining
|
|
Rewriting division to use shift [14] atan2_16::angle#1 = atan2_16::angle#6 / 2
|
|
Rewriting multiplication to use shift [28] atan2_16::$22 = atan2_16::i#2 * SIZEOF_WORD
|
|
Rewriting multiplication to use shift [32] atan2_16::$23 = atan2_16::i#2 * SIZEOF_WORD
|
|
Rewriting multiplication to use shift and addition[52] main::$10 = main::i#2 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
Rewriting multiplication to use shift and addition[87] getCharToProcess::$8 = getCharToProcess::$11 * $28
|
|
Rewriting multiplication to use shift and addition[93] startProcessing::$21 = startProcessing::i#2 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
Rewriting multiplication to use shift and addition[100] startProcessing::$0 = startProcessing::$23 * $28
|
|
Rewriting multiplication to use shift [106] startProcessing::$4 = startProcessing::$24 * $40
|
|
Rewriting multiplication to use shift [110] startProcessing::$6 = startProcessing::$25 * 8
|
|
Rewriting multiplication to use shift [123] startProcessing::$8 = startProcessing::$26 * 8
|
|
Rewriting multiplication to use shift [127] startProcessing::$11 = startProcessing::$27 * 8
|
|
Rewriting multiplication to use shift [131] startProcessing::$15 = startProcessing::freeIdx#2 * 8
|
|
Rewriting multiplication to use shift and addition[132] startProcessing::$22 = startProcessing::freeIdx#2 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
Rewriting multiplication to use shift and addition[144] processChars::$28 = processChars::i#10 * SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
Rewriting multiplication to use shift [173] processChars::$13 = processChars::i#10 * 2
|
|
Rewriting division to use shift [188] processChars::$21 = processChars::xpos#0 / 8
|
|
Rewriting multiplication to use shift [191] processChars::$29 = processChars::xchar#0 * SIZEOF_WORD
|
|
Rewriting division to use shift [199] processChars::$79 = processChars::ypos#0 / 8
|
|
Rewriting multiplication to use shift [201] processChars::$30 = processChars::ychar#0 * SIZEOF_WORD
|
|
Rewriting multiplication to use shift [215] init_angle_screen::$3 = init_angle_screen::x#2 * 2
|
|
Rewriting multiplication to use shift [219] init_angle_screen::$5 = init_angle_screen::y#5 * 2
|
|
Successful SSA optimization Pass2MultiplyToShiftRewriting
|
|
Inlining constant with var siblings malloc::size#0
|
|
Inlining constant with var siblings malloc::size#1
|
|
Inlining constant with var siblings atan2_16::angle#0
|
|
Inlining constant with var siblings atan2_16::i#0
|
|
Inlining constant with var siblings main::src#0
|
|
Inlining constant with var siblings main::i#0
|
|
Inlining constant with var siblings getCharToProcess::closest_x#0
|
|
Inlining constant with var siblings getCharToProcess::closest_y#0
|
|
Inlining constant with var siblings getCharToProcess::closest_dist#0
|
|
Inlining constant with var siblings getCharToProcess::y#0
|
|
Inlining constant with var siblings getCharToProcess::x#0
|
|
Inlining constant with var siblings startProcessing::freeIdx#0
|
|
Inlining constant with var siblings startProcessing::i#0
|
|
Inlining constant with var siblings startProcessing::i1#0
|
|
Inlining constant with var siblings processChars::numActive#0
|
|
Inlining constant with var siblings processChars::i#0
|
|
Inlining constant with var siblings init_angle_screen::y#0
|
|
Inlining constant with var siblings init_angle_screen::x#0
|
|
Inlining constant with var siblings init_angle_screen::xb#0
|
|
Inlining constant with var siblings initSprites::sp#0
|
|
Inlining constant with var siblings initSprites::i#0
|
|
Inlining constant with var siblings heap_head#2
|
|
Constant inlined startProcessing::freeIdx#0 = $ff
|
|
Constant inlined init_angle_screen::y#0 = 0
|
|
Constant inlined init_angle_screen::x#0 = 0
|
|
Constant inlined main::src#0 = SCREEN
|
|
Constant inlined atan2_16::angle#0 = 0
|
|
Constant inlined getCharToProcess::x#0 = 0
|
|
Constant inlined initSprites::sp#0 = SPRITE_DATA
|
|
Constant inlined getCharToProcess::y#0 = 0
|
|
Constant inlined setupRasterIrq::raster#0 = RASTER_IRQ_TOP
|
|
Constant inlined getCharToProcess::closest_y#0 = 0
|
|
Constant inlined processChars::numActive#0 = 0
|
|
Constant inlined main::i#0 = 0
|
|
Constant inlined getCharToProcess::closest_x#0 = 0
|
|
Constant inlined ProcessingSprite::$0::STATUS_FREE = 0
|
|
Constant inlined startProcessing::i1#0 = 0
|
|
Constant inlined init_angle_screen::xb#0 = $27
|
|
Constant inlined atan2_16::i#0 = 0
|
|
Constant inlined malloc::size#1 = $3e8
|
|
Constant inlined malloc::size#0 = $3e8
|
|
Constant inlined ProcessingSprite::$0::STATUS_NEW = 1
|
|
Constant inlined setupRasterIrq::$1 = <RASTER_IRQ_TOP
|
|
Constant inlined startProcessing::i#0 = 0
|
|
Constant inlined ProcessingSprite::$0::STATUS_PROCESSING = 2
|
|
Constant inlined processChars::i#0 = 0
|
|
Constant inlined heap_head#2 = HEAP_TOP
|
|
Constant inlined getCharToProcess::closest_dist#0 = NOT_FOUND
|
|
Constant inlined initSprites::i#0 = 0
|
|
Successful SSA optimization Pass2ConstantInlining
|
|
Alias main::$10 = main::$15
|
|
Alias getCharToProcess::$8 = getCharToProcess::$14
|
|
Alias startProcessing::$21 = startProcessing::$32
|
|
Alias startProcessing::$0 = startProcessing::$35
|
|
Alias startProcessing::$22 = startProcessing::$40
|
|
Alias processChars::$28 = processChars::$90
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Identical Phi Values malloc::size#2 $3e8
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Identified duplicate assignment right side [188] processChars::$13 = processChars::i#10 << 1
|
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
|
Eliminating unused constant SIZEOF_WORD
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Alias processChars::$13 = processChars::$86
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Finalized unsigned number type (byte) 2
|
|
Finalized unsigned number type (byte) 8
|
|
Finalized unsigned number type (byte) $a
|
|
Finalized unsigned number type (byte) $10
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $19
|
|
Finalized unsigned number type (byte) $28
|
|
Finalized unsigned number type (byte) $c
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Added new block during phi lifting atan2_16::@22(between atan2_16::@19 and atan2_16::@10)
|
|
Added new block during phi lifting atan2_16::@23(between atan2_16::@10 and atan2_16::@12)
|
|
Added new block during phi lifting atan2_16::@24(between atan2_16::@19 and atan2_16::@12)
|
|
Added new block during phi lifting atan2_16::@25(between atan2_16::@15 and atan2_16::@17)
|
|
Added new block during phi lifting atan2_16::@26(between atan2_16::@12 and atan2_16::@7)
|
|
Added new block during phi lifting atan2_16::@27(between atan2_16::@7 and atan2_16::@8)
|
|
Added new block during phi lifting main::@15(between main::@4 and main::@4)
|
|
Added new block during phi lifting getCharToProcess::@10(between getCharToProcess::@7 and getCharToProcess::@2)
|
|
Added new block during phi lifting getCharToProcess::@11(between getCharToProcess::@4 and getCharToProcess::@3)
|
|
Added new block during phi lifting getCharToProcess::@12(between getCharToProcess::@3 and getCharToProcess::@4)
|
|
Added new block during phi lifting getCharToProcess::@13(between getCharToProcess::@5 and getCharToProcess::@4)
|
|
Added new block during phi lifting startProcessing::@9(between startProcessing::@4 and startProcessing::@1)
|
|
Added new block during phi lifting startProcessing::@10(between startProcessing::@3 and startProcessing::@2)
|
|
Added new block during phi lifting startProcessing::@11(between startProcessing::@3 and startProcessing::@4)
|
|
Added new block during phi lifting startProcessing::@12(between startProcessing::@7 and startProcessing::@7)
|
|
Added new block during phi lifting processChars::@17(between processChars::@2 and processChars::@1)
|
|
Added new block during phi lifting processChars::@18(between processChars::@1 and processChars::@2)
|
|
Added new block during phi lifting init_angle_screen::@6(between init_angle_screen::@4 and init_angle_screen::@1)
|
|
Added new block during phi lifting initSprites::@6(between initSprites::@4 and initSprites::@4)
|
|
Adding NOP phi() at start of __start
|
|
Adding NOP phi() at start of __start::__init1
|
|
Adding NOP phi() at start of __start::@1
|
|
Adding NOP phi() at start of __start::@4
|
|
Adding NOP phi() at start of irqBottom
|
|
Adding NOP phi() at start of irqBottom::@1
|
|
Adding NOP phi() at start of irqBottom::@7
|
|
Adding NOP phi() at start of irqTop
|
|
Adding NOP phi() at start of main::@3
|
|
Adding NOP phi() at start of main::@5
|
|
Adding NOP phi() at start of main::@11
|
|
Adding NOP phi() at start of main::@12
|
|
Adding NOP phi() at start of main::@6
|
|
Adding NOP phi() at start of main::@14
|
|
Adding NOP phi() at start of processChars
|
|
Adding NOP phi() at start of processChars::@12
|
|
Adding NOP phi() at start of initSprites
|
|
Adding NOP phi() at start of initSprites::@3
|
|
Adding NOP phi() at start of getCharToProcess::@1
|
|
Adding NOP phi() at start of startProcessing
|
|
CALL GRAPH
|
|
Calls in [__start] to malloc:2 malloc:5 main:8
|
|
Calls in [irqBottom] to processChars:13
|
|
Calls in [main] to init_angle_screen:29 initSprites:45 setupRasterIrq:47 getCharToProcess:50 startProcessing:62
|
|
Calls in [init_angle_screen] to atan2_16:145
|
|
|
|
Created 50 initial phi equivalence classes
|
|
Coalesced [4] heap_head#13 = heap_head#0
|
|
Not coalescing [26] heap_head#0 = malloc::mem#0
|
|
Coalesced [31] main::dst#4 = main::dst#0
|
|
Coalesced [64] main::i#3 = main::i#1
|
|
Coalesced [68] main::src#4 = main::src#1
|
|
Coalesced [69] main::dst#5 = main::dst#1
|
|
Coalesced [111] processChars::numActive#17 = processChars::numActive#1
|
|
Coalesced [117] processChars::i#13 = processChars::i#1
|
|
Coalesced [118] processChars::numActive#15 = processChars::numActive#3
|
|
Coalesced (already) [123] processChars::numActive#16 = processChars::numActive#10
|
|
Not coalescing [125] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0
|
|
Coalesced [126] init_angle_screen::screen_bottomline#7 = init_angle_screen::screen_bottomline#0
|
|
Coalesced [135] init_angle_screen::y#7 = init_angle_screen::y#1
|
|
Coalesced [136] init_angle_screen::screen_topline#8 = init_angle_screen::screen_topline#1
|
|
Coalesced [137] init_angle_screen::screen_bottomline#8 = init_angle_screen::screen_bottomline#1
|
|
Coalesced [159] init_angle_screen::x#5 = init_angle_screen::x#1
|
|
Coalesced [160] init_angle_screen::xb#5 = init_angle_screen::xb#1
|
|
Coalesced [173] initSprites::i#3 = initSprites::i#1
|
|
Coalesced [176] initSprites::sp#4 = initSprites::sp#1
|
|
Coalesced [189] getCharToProcess::screen_line#8 = getCharToProcess::screen_line#0
|
|
Coalesced [190] getCharToProcess::dist_line#8 = getCharToProcess::dist_line#0
|
|
Coalesced [192] getCharToProcess::closest_dist#11 = getCharToProcess::closest_dist#8
|
|
Coalesced [193] getCharToProcess::closest_x#11 = getCharToProcess::closest_x#9
|
|
Coalesced [194] getCharToProcess::closest_y#11 = getCharToProcess::closest_y#9
|
|
Coalesced [199] getCharToProcess::return_dist#7 = getCharToProcess::dist#0
|
|
Not coalescing [200] getCharToProcess::return_x#7 = getCharToProcess::x#2
|
|
Not coalescing [201] getCharToProcess::return_y#7 = getCharToProcess::y#7
|
|
Coalesced [218] getCharToProcess::screen_line#9 = getCharToProcess::screen_line#1
|
|
Coalesced [219] getCharToProcess::dist_line#9 = getCharToProcess::dist_line#1
|
|
Not coalescing [220] getCharToProcess::closest_dist#10 = getCharToProcess::return_dist#1
|
|
Coalesced [221] getCharToProcess::y#8 = getCharToProcess::y#1
|
|
Coalesced [222] getCharToProcess::closest_x#10 = getCharToProcess::return_x#1
|
|
Coalesced [223] getCharToProcess::closest_y#10 = getCharToProcess::return_y#1
|
|
Coalesced [224] getCharToProcess::x#6 = getCharToProcess::x#1
|
|
Not coalescing [225] getCharToProcess::closest_dist#12 = getCharToProcess::return_dist#1
|
|
Coalesced (already) [226] getCharToProcess::closest_x#12 = getCharToProcess::return_x#1
|
|
Coalesced (already) [227] getCharToProcess::closest_y#12 = getCharToProcess::return_y#1
|
|
Not coalescing [228] getCharToProcess::return_dist#6 = getCharToProcess::closest_dist#2
|
|
Coalesced (already) [229] getCharToProcess::return_x#6 = getCharToProcess::closest_x#7
|
|
Coalesced (already) [230] getCharToProcess::return_y#6 = getCharToProcess::closest_y#7
|
|
Not coalescing [231] getCharToProcess::return_dist#5 = getCharToProcess::closest_dist#2
|
|
Coalesced (already) [232] getCharToProcess::return_x#5 = getCharToProcess::closest_x#7
|
|
Coalesced (already) [233] getCharToProcess::return_y#5 = getCharToProcess::closest_y#7
|
|
Coalesced [243] startProcessing::freeIdx#9 = startProcessing::i#2
|
|
Coalesced [263] startProcessing::chargenData#3 = startProcessing::chargenData#0
|
|
Coalesced [264] startProcessing::spriteData#3 = startProcessing::spriteData#0
|
|
Coalesced [298] startProcessing::chargenData#4 = startProcessing::chargenData#1
|
|
Coalesced [299] startProcessing::spriteData#4 = startProcessing::spriteData#1
|
|
Coalesced [300] startProcessing::i1#3 = startProcessing::i1#1
|
|
Not coalescing [301] startProcessing::freeIdx#7 = startProcessing::freeIdx#2
|
|
Not coalescing [304] startProcessing::freeIdx#8 = startProcessing::freeIdx#6
|
|
Coalesced [305] startProcessing::i#5 = startProcessing::i#1
|
|
Coalesced [308] atan2_16::yi#17 = atan2_16::$2
|
|
Coalesced [312] atan2_16::xi#14 = atan2_16::$7
|
|
Coalesced [314] atan2_16::yi#19 = atan2_16::yi#0
|
|
Coalesced [315] atan2_16::xi#16 = atan2_16::xi#0
|
|
Coalesced [318] atan2_16::angle#22 = atan2_16::angle#12
|
|
Coalesced [323] atan2_16::angle#27 = atan2_16::angle#4
|
|
Coalesced [327] atan2_16::return#6 = atan2_16::angle#5
|
|
Coalesced [330] atan2_16::return#5 = atan2_16::angle#11
|
|
Coalesced [331] atan2_16::angle#26 = atan2_16::angle#1
|
|
Not coalescing [332] atan2_16::shift#5 = atan2_16::i#2
|
|
Not coalescing [333] atan2_16::xd#10 = atan2_16::xi#3
|
|
Not coalescing [334] atan2_16::yd#10 = atan2_16::yi#3
|
|
Coalesced [340] atan2_16::yd#13 = atan2_16::yd#2
|
|
Coalesced [341] atan2_16::xd#13 = atan2_16::xd#2
|
|
Coalesced [348] atan2_16::yi#21 = atan2_16::yi#2
|
|
Coalesced [349] atan2_16::angle#25 = atan2_16::angle#3
|
|
Coalesced [350] atan2_16::xi#18 = atan2_16::xi#2
|
|
Coalesced [354] atan2_16::yi#18 = atan2_16::yi#8
|
|
Coalesced [355] atan2_16::xi#15 = atan2_16::xi#8
|
|
Coalesced [356] atan2_16::i#12 = atan2_16::i#1
|
|
Coalesced [357] atan2_16::angle#21 = atan2_16::angle#13
|
|
Coalesced (already) [358] atan2_16::angle#23 = atan2_16::angle#13
|
|
Coalesced [363] atan2_16::yi#20 = atan2_16::yi#1
|
|
Coalesced [364] atan2_16::angle#24 = atan2_16::angle#2
|
|
Coalesced [365] atan2_16::xi#17 = atan2_16::xi#1
|
|
Coalesced [366] atan2_16::yd#12 = atan2_16::yd#3
|
|
Coalesced [367] atan2_16::xd#12 = atan2_16::xd#3
|
|
Coalesced [371] atan2_16::shift#6 = atan2_16::shift#1
|
|
Coalesced [372] atan2_16::xd#11 = atan2_16::xd#1
|
|
Coalesced [373] atan2_16::yd#11 = atan2_16::yd#1
|
|
Not coalescing [374] atan2_16::xi#13 = atan2_16::x#0
|
|
Not coalescing [375] atan2_16::yi#16 = atan2_16::y#0
|
|
Coalesced down to 37 phi equivalence classes
|
|
Culled Empty Block label __start::@4
|
|
Culled Empty Block label irqBottom::@7
|
|
Culled Empty Block label main::@3
|
|
Culled Empty Block label main::@12
|
|
Culled Empty Block label main::@14
|
|
Culled Empty Block label main::@15
|
|
Culled Empty Block label processChars::@12
|
|
Culled Empty Block label processChars::@17
|
|
Culled Empty Block label processChars::@18
|
|
Culled Empty Block label init_angle_screen::@6
|
|
Culled Empty Block label initSprites::@3
|
|
Culled Empty Block label initSprites::@6
|
|
Culled Empty Block label getCharToProcess::@1
|
|
Culled Empty Block label startProcessing::@5
|
|
Culled Empty Block label startProcessing::@12
|
|
Culled Empty Block label startProcessing::@10
|
|
Culled Empty Block label atan2_16::@23
|
|
Culled Empty Block label atan2_16::@27
|
|
Culled Empty Block label atan2_16::@26
|
|
Culled Empty Block label atan2_16::@22
|
|
Culled Empty Block label atan2_16::@24
|
|
Culled Empty Block label atan2_16::@25
|
|
Renumbering block main::@4 to main::@3
|
|
Renumbering block main::@5 to main::@4
|
|
Renumbering block main::@6 to main::@5
|
|
Renumbering block main::@7 to main::@6
|
|
Renumbering block main::@8 to main::@7
|
|
Renumbering block main::@9 to main::@8
|
|
Renumbering block main::@10 to main::@9
|
|
Renumbering block main::@11 to main::@10
|
|
Renumbering block main::@13 to main::@11
|
|
Renumbering block getCharToProcess::@2 to getCharToProcess::@1
|
|
Renumbering block getCharToProcess::@3 to getCharToProcess::@2
|
|
Renumbering block getCharToProcess::@4 to getCharToProcess::@3
|
|
Renumbering block getCharToProcess::@5 to getCharToProcess::@4
|
|
Renumbering block getCharToProcess::@6 to getCharToProcess::@5
|
|
Renumbering block getCharToProcess::@7 to getCharToProcess::@6
|
|
Renumbering block getCharToProcess::@8 to getCharToProcess::@7
|
|
Renumbering block getCharToProcess::@9 to getCharToProcess::@8
|
|
Renumbering block getCharToProcess::@10 to getCharToProcess::@9
|
|
Renumbering block getCharToProcess::@11 to getCharToProcess::@10
|
|
Renumbering block getCharToProcess::@12 to getCharToProcess::@11
|
|
Renumbering block getCharToProcess::@13 to getCharToProcess::@12
|
|
Renumbering block startProcessing::@6 to startProcessing::@5
|
|
Renumbering block startProcessing::@7 to startProcessing::@6
|
|
Renumbering block startProcessing::@8 to startProcessing::@7
|
|
Renumbering block startProcessing::@9 to startProcessing::@8
|
|
Renumbering block startProcessing::@11 to startProcessing::@9
|
|
Renumbering block processChars::@14 to processChars::@12
|
|
Renumbering block processChars::@15 to processChars::@13
|
|
Renumbering block processChars::@16 to processChars::@14
|
|
Renumbering block initSprites::@4 to initSprites::@3
|
|
Renumbering block initSprites::@5 to initSprites::@4
|
|
Adding NOP phi() at start of __start
|
|
Adding NOP phi() at start of __start::__init1
|
|
Adding NOP phi() at start of __start::@1
|
|
Adding NOP phi() at start of irqBottom
|
|
Adding NOP phi() at start of irqBottom::@1
|
|
Adding NOP phi() at start of irqTop
|
|
Adding NOP phi() at start of main::@4
|
|
Adding NOP phi() at start of main::@10
|
|
Adding NOP phi() at start of main::@5
|
|
Adding NOP phi() at start of processChars
|
|
Adding NOP phi() at start of initSprites
|
|
Adding NOP phi() at start of startProcessing
|
|
|
|
FINAL CONTROL FLOW GRAPH
|
|
|
|
void __start()
|
|
__start: scope:[__start] from
|
|
[0] phi()
|
|
to:__start::__init1
|
|
__start::__init1: scope:[__start] from __start
|
|
[1] phi()
|
|
[2] call malloc
|
|
to:__start::@2
|
|
__start::@2: scope:[__start] from __start::__init1
|
|
[3] SCREEN_COPY#0 = (void*)malloc::mem#0
|
|
[4] call malloc
|
|
to:__start::@3
|
|
__start::@3: scope:[__start] from __start::@2
|
|
[5] SCREEN_DIST#0 = (void*)malloc::mem#0
|
|
to:__start::@1
|
|
__start::@1: scope:[__start] from __start::@3
|
|
[6] phi()
|
|
[7] call main
|
|
to:__start::@return
|
|
__start::@return: scope:[__start] from __start::@1
|
|
[8] return
|
|
to:@return
|
|
|
|
__interrupt(hardware_clobber) void irqBottom()
|
|
irqBottom: scope:[irqBottom] from
|
|
[9] phi()
|
|
to:irqBottom::@1
|
|
irqBottom::@1: scope:[irqBottom] from irqBottom
|
|
[10] phi()
|
|
[11] call processChars
|
|
to:irqBottom::@2
|
|
irqBottom::@2: scope:[irqBottom] from irqBottom::@1
|
|
[12] *RASTER = RASTER_IRQ_TOP
|
|
[13] *HARDWARE_IRQ = &irqTop
|
|
[14] *IRQ_STATUS = IRQ_RASTER
|
|
to:irqBottom::@return
|
|
irqBottom::@return: scope:[irqBottom] from irqBottom::@2
|
|
[15] return
|
|
to:@return
|
|
|
|
__interrupt(hardware_clobber) void irqTop()
|
|
irqTop: scope:[irqTop] from
|
|
[16] phi()
|
|
to:irqTop::@1
|
|
irqTop::@1: scope:[irqTop] from irqTop
|
|
[17] *RASTER = RASTER_IRQ_MIDDLE
|
|
[18] *HARDWARE_IRQ = &irqBottom
|
|
[19] *IRQ_STATUS = IRQ_RASTER
|
|
to:irqTop::@return
|
|
irqTop::@return: scope:[irqTop] from irqTop::@1
|
|
[20] return
|
|
to:@return
|
|
|
|
void* malloc(word malloc::size)
|
|
malloc: scope:[malloc] from __start::@2 __start::__init1
|
|
[21] heap_head#6 = phi( __start::@2/heap_head#0, __start::__init1/HEAP_TOP )
|
|
[22] malloc::mem#0 = heap_head#6 - $3e8
|
|
[23] heap_head#0 = malloc::mem#0
|
|
to:malloc::@return
|
|
malloc::@return: scope:[malloc] from malloc
|
|
[24] return
|
|
to:@return
|
|
|
|
void main()
|
|
main: scope:[main] from __start::@1
|
|
[25] init_angle_screen::screen#0 = (byte*)SCREEN_DIST#0
|
|
[26] call init_angle_screen
|
|
to:main::@9
|
|
main::@9: scope:[main] from main
|
|
[27] main::dst#0 = (byte*)SCREEN_COPY#0
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@2 main::@9
|
|
[28] main::dst#2 = phi( main::@9/main::dst#0, main::@2/main::dst#1 )
|
|
[28] main::src#2 = phi( main::@9/SCREEN, main::@2/main::src#1 )
|
|
[29] if(main::src#2!=SCREEN+$3e8) goto main::@2
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@1 main::@3
|
|
[30] main::i#2 = phi( main::@1/0, main::@3/main::i#1 )
|
|
[31] main::$11 = main::i#2 << 1
|
|
[32] main::$12 = main::$11 + main::i#2
|
|
[33] main::$13 = main::$12 << 1
|
|
[34] main::$14 = main::$13 + main::i#2
|
|
[35] main::$10 = main::$14 << 1
|
|
[36] PROCESSING[main::$10] = memcpy(*(&$0), struct ProcessingSprite, SIZEOF_STRUCT_PROCESSINGSPRITE)
|
|
[37] main::i#1 = ++ main::i#2
|
|
[38] if(main::i#1!=NUM_PROCESSING-1+1) goto main::@3
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@3
|
|
[39] phi()
|
|
[40] call initSprites
|
|
to:main::@10
|
|
main::@10: scope:[main] from main::@4
|
|
[41] phi()
|
|
[42] call setupRasterIrq
|
|
to:main::@5
|
|
main::@5: scope:[main] from main::@10 main::@6
|
|
[43] phi()
|
|
[44] call getCharToProcess
|
|
[45] getCharToProcess::return_x#0 = getCharToProcess::return_x#1
|
|
[46] getCharToProcess::return_y#0 = getCharToProcess::return_y#1
|
|
[47] getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1
|
|
to:main::@11
|
|
main::@11: scope:[main] from main::@5
|
|
[48] main::center_x#0 = getCharToProcess::return_x#0
|
|
[49] main::center_y#0 = getCharToProcess::return_y#0
|
|
[50] main::center_dist#0 = getCharToProcess::return_dist#0
|
|
[51] if(main::center_dist#0!=NOT_FOUND) goto main::@6
|
|
to:main::@7
|
|
main::@7: scope:[main] from main::@11
|
|
[52] *(SCREEN+$3e7) = '.'
|
|
to:main::@8
|
|
main::@8: scope:[main] from main::@7 main::@8
|
|
[53] *(COLS+$3e7) = ++ *(COLS+$3e7)
|
|
to:main::@8
|
|
main::@6: scope:[main] from main::@11
|
|
[54] startProcessing::center_x#0 = main::center_x#0
|
|
[55] startProcessing::center_y#0 = main::center_y#0
|
|
[56] call startProcessing
|
|
to:main::@5
|
|
main::@2: scope:[main] from main::@1
|
|
[57] *main::dst#2 = *main::src#2
|
|
[58] main::src#1 = ++ main::src#2
|
|
[59] main::dst#1 = ++ main::dst#2
|
|
to:main::@1
|
|
|
|
void processChars()
|
|
processChars: scope:[processChars] from irqBottom::@1
|
|
[60] phi()
|
|
to:processChars::@1
|
|
processChars::@1: scope:[processChars] from processChars processChars::@2
|
|
[61] processChars::numActive#10 = phi( processChars/0, processChars::@2/processChars::numActive#3 )
|
|
[61] processChars::i#10 = phi( processChars/0, processChars::@2/processChars::i#1 )
|
|
[62] processChars::$13 = processChars::i#10 << 1
|
|
[63] processChars::$87 = processChars::$13 + processChars::i#10
|
|
[64] processChars::$88 = processChars::$87 << 1
|
|
[65] processChars::$89 = processChars::$88 + processChars::i#10
|
|
[66] processChars::$28 = processChars::$89 << 1
|
|
[67] processChars::processing#0 = PROCESSING + processChars::$28
|
|
[68] processChars::bitmask#0 = 1 << ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]
|
|
[69] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]==STATUS_FREE) goto processChars::@2
|
|
to:processChars::@10
|
|
processChars::@10: scope:[processChars] from processChars::@1
|
|
[70] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]!=STATUS_NEW) goto processChars::@3
|
|
to:processChars::@11
|
|
processChars::@11: scope:[processChars] from processChars::@10
|
|
[71] *(((byte**)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR]) = ' '
|
|
[72] *SPRITES_ENABLE = *SPRITES_ENABLE | processChars::bitmask#0
|
|
[73] SPRITES_COLOR[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_COL]
|
|
[74] (SCREEN+OFFSET_SPRITE_PTRS)[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_PTR]
|
|
[75] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_PROCESSING
|
|
to:processChars::@3
|
|
processChars::@3: scope:[processChars] from processChars::@10 processChars::@11
|
|
[76] processChars::xpos#0 = *((word*)processChars::processing#0) >> 4
|
|
[77] processChars::$9 = > processChars::xpos#0
|
|
[78] if(0!=processChars::$9) goto processChars::@4
|
|
to:processChars::@8
|
|
processChars::@8: scope:[processChars] from processChars::@3
|
|
[79] processChars::$10 = $ff ^ processChars::bitmask#0
|
|
[80] *SPRITES_XMSB = *SPRITES_XMSB & processChars::$10
|
|
to:processChars::@5
|
|
processChars::@5: scope:[processChars] from processChars::@4 processChars::@8
|
|
[81] SPRITES_XPOS[processChars::$13] = (byte)processChars::xpos#0
|
|
[82] processChars::$12 = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] >> 4
|
|
[83] processChars::ypos#0 = (byte)processChars::$12
|
|
[84] SPRITES_YPOS[processChars::$13] = processChars::ypos#0
|
|
[85] if(*((word*)processChars::processing#0)<XPOS_LEFTMOST) goto processChars::@6
|
|
to:processChars::@14
|
|
processChars::@14: scope:[processChars] from processChars::@5
|
|
[86] if(*((word*)processChars::processing#0)>XPOS_RIGHTMOST) goto processChars::@6
|
|
to:processChars::@13
|
|
processChars::@13: scope:[processChars] from processChars::@14
|
|
[87] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]<YPOS_TOPMOST) goto processChars::@6
|
|
to:processChars::@12
|
|
processChars::@12: scope:[processChars] from processChars::@13
|
|
[88] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]>YPOS_BOTTOMMOST) goto processChars::@6
|
|
to:processChars::@9
|
|
processChars::@9: scope:[processChars] from processChars::@12
|
|
[89] processChars::$21 = processChars::xpos#0 >> 3
|
|
[90] processChars::$73 = (byte)processChars::$21
|
|
[91] processChars::xchar#0 = processChars::$73 - BORDER_XPOS_LEFT/8
|
|
[92] processChars::$29 = processChars::xchar#0 << 1
|
|
[93] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] + VXSIN[processChars::$29]
|
|
[94] *((word*)processChars::processing#0) = *((word*)processChars::processing#0) + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX]
|
|
[95] processChars::$79 = processChars::ypos#0 >> 3
|
|
[96] processChars::ychar#0 = processChars::$79 - BORDER_YPOS_TOP/8
|
|
[97] processChars::$30 = processChars::ychar#0 << 1
|
|
[98] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] + VYSIN[processChars::$30]
|
|
[99] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY]
|
|
to:processChars::@7
|
|
processChars::@7: scope:[processChars] from processChars::@6 processChars::@9
|
|
[100] processChars::numActive#1 = ++ processChars::numActive#10
|
|
to:processChars::@2
|
|
processChars::@2: scope:[processChars] from processChars::@1 processChars::@7
|
|
[101] processChars::numActive#3 = phi( processChars::@1/processChars::numActive#10, processChars::@7/processChars::numActive#1 )
|
|
[102] processChars::i#1 = ++ processChars::i#10
|
|
[103] if(processChars::i#1!=NUM_PROCESSING-1+1) goto processChars::@1
|
|
to:processChars::@return
|
|
processChars::@return: scope:[processChars] from processChars::@2
|
|
[104] return
|
|
to:@return
|
|
processChars::@6: scope:[processChars] from processChars::@12 processChars::@13 processChars::@14 processChars::@5
|
|
[105] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_FREE
|
|
[106] processChars::$25 = $ff ^ processChars::bitmask#0
|
|
[107] *SPRITES_ENABLE = *SPRITES_ENABLE & processChars::$25
|
|
to:processChars::@7
|
|
processChars::@4: scope:[processChars] from processChars::@3
|
|
[108] *SPRITES_XMSB = *SPRITES_XMSB | processChars::bitmask#0
|
|
to:processChars::@5
|
|
|
|
void init_angle_screen(byte* init_angle_screen::screen)
|
|
init_angle_screen: scope:[init_angle_screen] from main
|
|
[109] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c
|
|
[110] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0
|
|
to:init_angle_screen::@1
|
|
init_angle_screen::@1: scope:[init_angle_screen] from init_angle_screen init_angle_screen::@4
|
|
[111] init_angle_screen::screen_bottomline#6 = phi( init_angle_screen/init_angle_screen::screen_bottomline#0, init_angle_screen::@4/init_angle_screen::screen_bottomline#1 )
|
|
[111] init_angle_screen::screen_topline#6 = phi( init_angle_screen/init_angle_screen::screen_topline#7, init_angle_screen::@4/init_angle_screen::screen_topline#1 )
|
|
[111] init_angle_screen::y#5 = phi( init_angle_screen/0, init_angle_screen::@4/init_angle_screen::y#1 )
|
|
to:init_angle_screen::@2
|
|
init_angle_screen::@2: scope:[init_angle_screen] from init_angle_screen::@1 init_angle_screen::@5
|
|
[112] init_angle_screen::xb#2 = phi( init_angle_screen::@1/$27, init_angle_screen::@5/init_angle_screen::xb#1 )
|
|
[112] init_angle_screen::x#2 = phi( init_angle_screen::@1/0, init_angle_screen::@5/init_angle_screen::x#1 )
|
|
[113] if(init_angle_screen::x#2<$13+1) goto init_angle_screen::@3
|
|
to:init_angle_screen::@4
|
|
init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
|
[114] init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#6 - $28
|
|
[115] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28
|
|
[116] init_angle_screen::y#1 = ++ init_angle_screen::y#5
|
|
[117] if(init_angle_screen::y#1!=$d) goto init_angle_screen::@1
|
|
to:init_angle_screen::@return
|
|
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
|
[118] return
|
|
to:@return
|
|
init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
|
[119] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
|
[120] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
|
[121] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
|
[122] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
|
[123] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
|
[124] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
|
[125] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
|
[126] call atan2_16
|
|
[127] atan2_16::return#2 = atan2_16::return#0
|
|
to:init_angle_screen::@5
|
|
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
|
[128] init_angle_screen::angle_w#0 = atan2_16::return#2
|
|
[129] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
|
[130] init_angle_screen::ang_w#0 = > init_angle_screen::$7
|
|
[131] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
|
[132] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
|
[133] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
|
[134] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
|
[135] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
|
[136] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
|
[137] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
|
[138] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
|
[139] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
|
to:init_angle_screen::@2
|
|
|
|
void initSprites()
|
|
initSprites: scope:[initSprites] from main::@4
|
|
[140] phi()
|
|
to:initSprites::@1
|
|
initSprites::@1: scope:[initSprites] from initSprites initSprites::@2
|
|
[141] initSprites::sp#2 = phi( initSprites/SPRITE_DATA, initSprites::@2/initSprites::sp#1 )
|
|
[142] if(initSprites::sp#2<SPRITE_DATA+NUM_PROCESSING*$40) goto initSprites::@2
|
|
to:initSprites::@3
|
|
initSprites::@3: scope:[initSprites] from initSprites::@1 initSprites::@3
|
|
[143] initSprites::i#2 = phi( initSprites::@1/0, initSprites::@3/initSprites::i#1 )
|
|
[144] SPRITES_COLOR[initSprites::i#2] = LIGHT_BLUE
|
|
[145] initSprites::i#1 = ++ initSprites::i#2
|
|
[146] if(initSprites::i#1!=8) goto initSprites::@3
|
|
to:initSprites::@4
|
|
initSprites::@4: scope:[initSprites] from initSprites::@3
|
|
[147] *SPRITES_MC = 0
|
|
[148] *SPRITES_EXPAND_X = 0
|
|
[149] *SPRITES_EXPAND_Y = 0
|
|
to:initSprites::@return
|
|
initSprites::@return: scope:[initSprites] from initSprites::@4
|
|
[150] return
|
|
to:@return
|
|
initSprites::@2: scope:[initSprites] from initSprites::@1
|
|
[151] *initSprites::sp#2 = 0
|
|
[152] initSprites::sp#1 = ++ initSprites::sp#2
|
|
to:initSprites::@1
|
|
|
|
void setupRasterIrq(word setupRasterIrq::raster , void()* setupRasterIrq::irqRoutine)
|
|
setupRasterIrq: scope:[setupRasterIrq] from main::@10
|
|
asm { sei }
|
|
[154] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
[155] *PROCPORT = PROCPORT_RAM_IO
|
|
[156] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR
|
|
to:setupRasterIrq::@1
|
|
setupRasterIrq::@1: scope:[setupRasterIrq] from setupRasterIrq
|
|
[157] *VICII_CONTROL = *VICII_CONTROL & $7f
|
|
to:setupRasterIrq::@2
|
|
setupRasterIrq::@2: scope:[setupRasterIrq] from setupRasterIrq::@1
|
|
[158] *RASTER = <RASTER_IRQ_TOP
|
|
[159] *IRQ_ENABLE = IRQ_RASTER
|
|
[160] *HARDWARE_IRQ = setupRasterIrq::irqRoutine#0
|
|
asm { cli }
|
|
to:setupRasterIrq::@return
|
|
setupRasterIrq::@return: scope:[setupRasterIrq] from setupRasterIrq::@2
|
|
[162] return
|
|
to:@return
|
|
|
|
struct ProcessingChar getCharToProcess()
|
|
getCharToProcess: scope:[getCharToProcess] from main::@5
|
|
[163] getCharToProcess::screen_line#0 = (byte*)SCREEN_COPY#0
|
|
[164] getCharToProcess::dist_line#0 = (byte*)SCREEN_DIST#0
|
|
to:getCharToProcess::@1
|
|
getCharToProcess::@1: scope:[getCharToProcess] from getCharToProcess getCharToProcess::@9
|
|
[165] getCharToProcess::closest_y#9 = phi( getCharToProcess/0, getCharToProcess::@9/getCharToProcess::return_y#1 )
|
|
[165] getCharToProcess::closest_x#9 = phi( getCharToProcess/0, getCharToProcess::@9/getCharToProcess::return_x#1 )
|
|
[165] getCharToProcess::y#7 = phi( getCharToProcess/0, getCharToProcess::@9/getCharToProcess::y#1 )
|
|
[165] getCharToProcess::closest_dist#8 = phi( getCharToProcess/NOT_FOUND, getCharToProcess::@9/getCharToProcess::closest_dist#10 )
|
|
[165] getCharToProcess::dist_line#6 = phi( getCharToProcess/getCharToProcess::dist_line#0, getCharToProcess::@9/getCharToProcess::dist_line#1 )
|
|
[165] getCharToProcess::screen_line#4 = phi( getCharToProcess/getCharToProcess::screen_line#0, getCharToProcess::@9/getCharToProcess::screen_line#1 )
|
|
to:getCharToProcess::@2
|
|
getCharToProcess::@2: scope:[getCharToProcess] from getCharToProcess::@1 getCharToProcess::@10
|
|
[166] getCharToProcess::closest_y#7 = phi( getCharToProcess::@1/getCharToProcess::closest_y#9, getCharToProcess::@10/getCharToProcess::return_y#1 )
|
|
[166] getCharToProcess::closest_x#7 = phi( getCharToProcess::@1/getCharToProcess::closest_x#9, getCharToProcess::@10/getCharToProcess::return_x#1 )
|
|
[166] getCharToProcess::closest_dist#2 = phi( getCharToProcess::@1/getCharToProcess::closest_dist#8, getCharToProcess::@10/getCharToProcess::closest_dist#12 )
|
|
[166] getCharToProcess::x#2 = phi( getCharToProcess::@1/0, getCharToProcess::@10/getCharToProcess::x#1 )
|
|
[167] if(getCharToProcess::screen_line#4[getCharToProcess::x#2]==' ') goto getCharToProcess::@11
|
|
to:getCharToProcess::@4
|
|
getCharToProcess::@4: scope:[getCharToProcess] from getCharToProcess::@2
|
|
[168] getCharToProcess::dist#0 = getCharToProcess::dist_line#6[getCharToProcess::x#2]
|
|
[169] if(getCharToProcess::dist#0>=getCharToProcess::closest_dist#2) goto getCharToProcess::@12
|
|
to:getCharToProcess::@5
|
|
getCharToProcess::@5: scope:[getCharToProcess] from getCharToProcess::@4
|
|
[170] getCharToProcess::return_x#7 = getCharToProcess::x#2
|
|
[171] getCharToProcess::return_y#7 = getCharToProcess::y#7
|
|
to:getCharToProcess::@3
|
|
getCharToProcess::@3: scope:[getCharToProcess] from getCharToProcess::@11 getCharToProcess::@12 getCharToProcess::@5
|
|
[172] getCharToProcess::return_y#1 = phi( getCharToProcess::@11/getCharToProcess::closest_y#7, getCharToProcess::@12/getCharToProcess::closest_y#7, getCharToProcess::@5/getCharToProcess::return_y#7 )
|
|
[172] getCharToProcess::return_x#1 = phi( getCharToProcess::@11/getCharToProcess::closest_x#7, getCharToProcess::@12/getCharToProcess::closest_x#7, getCharToProcess::@5/getCharToProcess::return_x#7 )
|
|
[172] getCharToProcess::return_dist#1 = phi( getCharToProcess::@11/getCharToProcess::return_dist#5, getCharToProcess::@12/getCharToProcess::return_dist#6, getCharToProcess::@5/getCharToProcess::dist#0 )
|
|
[173] getCharToProcess::x#1 = ++ getCharToProcess::x#2
|
|
[174] if(getCharToProcess::x#1!=$28) goto getCharToProcess::@10
|
|
to:getCharToProcess::@6
|
|
getCharToProcess::@6: scope:[getCharToProcess] from getCharToProcess::@3
|
|
[175] getCharToProcess::screen_line#1 = getCharToProcess::screen_line#4 + $28
|
|
[176] getCharToProcess::dist_line#1 = getCharToProcess::dist_line#6 + $28
|
|
[177] getCharToProcess::y#1 = ++ getCharToProcess::y#7
|
|
[178] if(getCharToProcess::y#1!=$19) goto getCharToProcess::@9
|
|
to:getCharToProcess::@7
|
|
getCharToProcess::@7: scope:[getCharToProcess] from getCharToProcess::@6
|
|
[179] if(getCharToProcess::return_dist#1==NOT_FOUND) goto getCharToProcess::@return
|
|
to:getCharToProcess::@8
|
|
getCharToProcess::@8: scope:[getCharToProcess] from getCharToProcess::@7
|
|
[180] getCharToProcess::$11 = (word)getCharToProcess::return_y#1
|
|
[181] getCharToProcess::$12 = getCharToProcess::$11 << 2
|
|
[182] getCharToProcess::$13 = getCharToProcess::$12 + getCharToProcess::$11
|
|
[183] getCharToProcess::$8 = getCharToProcess::$13 << 3
|
|
[184] getCharToProcess::$9 = (byte*)SCREEN_COPY#0 + getCharToProcess::$8
|
|
[185] getCharToProcess::$9[getCharToProcess::return_x#1] = ' '
|
|
to:getCharToProcess::@return
|
|
getCharToProcess::@return: scope:[getCharToProcess] from getCharToProcess::@7 getCharToProcess::@8
|
|
[186] return
|
|
to:@return
|
|
getCharToProcess::@9: scope:[getCharToProcess] from getCharToProcess::@6
|
|
[187] getCharToProcess::closest_dist#10 = getCharToProcess::return_dist#1
|
|
to:getCharToProcess::@1
|
|
getCharToProcess::@10: scope:[getCharToProcess] from getCharToProcess::@3
|
|
[188] getCharToProcess::closest_dist#12 = getCharToProcess::return_dist#1
|
|
to:getCharToProcess::@2
|
|
getCharToProcess::@12: scope:[getCharToProcess] from getCharToProcess::@4
|
|
[189] getCharToProcess::return_dist#6 = getCharToProcess::closest_dist#2
|
|
to:getCharToProcess::@3
|
|
getCharToProcess::@11: scope:[getCharToProcess] from getCharToProcess::@2
|
|
[190] getCharToProcess::return_dist#5 = getCharToProcess::closest_dist#2
|
|
to:getCharToProcess::@3
|
|
|
|
void startProcessing(byte startProcessing::center_x , byte startProcessing::center_y , byte startProcessing::center_dist)
|
|
startProcessing: scope:[startProcessing] from main::@6
|
|
[191] phi()
|
|
to:startProcessing::@1
|
|
startProcessing::@1: scope:[startProcessing] from startProcessing startProcessing::@8
|
|
[192] startProcessing::freeIdx#6 = phi( startProcessing/$ff, startProcessing::@8/startProcessing::freeIdx#7 )
|
|
to:startProcessing::@2
|
|
startProcessing::@2: scope:[startProcessing] from startProcessing::@1 startProcessing::@3
|
|
[193] startProcessing::i#2 = phi( startProcessing::@1/0, startProcessing::@3/startProcessing::i#1 )
|
|
[194] startProcessing::$28 = startProcessing::i#2 << 1
|
|
[195] startProcessing::$29 = startProcessing::$28 + startProcessing::i#2
|
|
[196] startProcessing::$30 = startProcessing::$29 << 1
|
|
[197] startProcessing::$31 = startProcessing::$30 + startProcessing::i#2
|
|
[198] startProcessing::$21 = startProcessing::$31 << 1
|
|
[199] if(((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21]!=STATUS_FREE) goto startProcessing::@3
|
|
to:startProcessing::@4
|
|
startProcessing::@4: scope:[startProcessing] from startProcessing::@2 startProcessing::@9
|
|
[200] startProcessing::freeIdx#2 = phi( startProcessing::@9/startProcessing::freeIdx#8, startProcessing::@2/startProcessing::i#2 )
|
|
[201] if(startProcessing::freeIdx#2==$ff) goto startProcessing::@8
|
|
to:startProcessing::@5
|
|
startProcessing::@5: scope:[startProcessing] from startProcessing::@4
|
|
[202] startProcessing::$23 = (word)startProcessing::center_y#0
|
|
[203] startProcessing::$33 = startProcessing::$23 << 2
|
|
[204] startProcessing::$34 = startProcessing::$33 + startProcessing::$23
|
|
[205] startProcessing::$0 = startProcessing::$34 << 3
|
|
[206] startProcessing::offset#0 = startProcessing::$0 + startProcessing::center_x#0
|
|
[207] startProcessing::colPtr#0 = COLS + startProcessing::offset#0
|
|
[208] startProcessing::spriteCol#0 = *startProcessing::colPtr#0
|
|
[209] startProcessing::screenPtr#0 = SCREEN + startProcessing::offset#0
|
|
[210] startProcessing::$24 = (word)startProcessing::freeIdx#2
|
|
[211] startProcessing::$4 = startProcessing::$24 << 6
|
|
[212] startProcessing::spriteData#0 = SPRITE_DATA + startProcessing::$4
|
|
[213] startProcessing::ch#0 = *startProcessing::screenPtr#0
|
|
[214] startProcessing::$25 = (word)startProcessing::ch#0
|
|
[215] startProcessing::$6 = startProcessing::$25 << 3
|
|
[216] startProcessing::chargenData#0 = CHARGEN + startProcessing::$6
|
|
asm { sei }
|
|
[218] *PROCPORT = PROCPORT_RAM_CHARROM
|
|
to:startProcessing::@6
|
|
startProcessing::@6: scope:[startProcessing] from startProcessing::@5 startProcessing::@6
|
|
[219] startProcessing::i1#2 = phi( startProcessing::@5/0, startProcessing::@6/startProcessing::i1#1 )
|
|
[219] startProcessing::spriteData#2 = phi( startProcessing::@5/startProcessing::spriteData#0, startProcessing::@6/startProcessing::spriteData#1 )
|
|
[219] startProcessing::chargenData#2 = phi( startProcessing::@5/startProcessing::chargenData#0, startProcessing::@6/startProcessing::chargenData#1 )
|
|
[220] *startProcessing::spriteData#2 = *startProcessing::chargenData#2
|
|
[221] startProcessing::spriteData#1 = startProcessing::spriteData#2 + 3
|
|
[222] startProcessing::chargenData#1 = ++ startProcessing::chargenData#2
|
|
[223] startProcessing::i1#1 = ++ startProcessing::i1#2
|
|
[224] if(startProcessing::i1#1!=8) goto startProcessing::@6
|
|
to:startProcessing::@7
|
|
startProcessing::@7: scope:[startProcessing] from startProcessing::@6
|
|
[225] *PROCPORT = PROCPORT_RAM_IO
|
|
asm { cli }
|
|
[227] startProcessing::$26 = (word)startProcessing::center_x#0
|
|
[228] startProcessing::$8 = startProcessing::$26 << 3
|
|
[229] startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8
|
|
[230] startProcessing::spriteX#0 = startProcessing::$9 << 4
|
|
[231] startProcessing::$27 = (word)startProcessing::center_y#0
|
|
[232] startProcessing::$11 = startProcessing::$27 << 3
|
|
[233] startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11
|
|
[234] startProcessing::spriteY#0 = startProcessing::$12 << 4
|
|
[235] startProcessing::spritePtr#0 = (byte)SPRITE_DATA/$40 + startProcessing::freeIdx#2
|
|
[236] startProcessing::$15 = startProcessing::freeIdx#2 << 3
|
|
[237] startProcessing::$36 = startProcessing::freeIdx#2 << 1
|
|
[238] startProcessing::$37 = startProcessing::$36 + startProcessing::freeIdx#2
|
|
[239] startProcessing::$38 = startProcessing::$37 << 1
|
|
[240] startProcessing::$39 = startProcessing::$38 + startProcessing::freeIdx#2
|
|
[241] startProcessing::$22 = startProcessing::$39 << 1
|
|
[242] ((word*)PROCESSING)[startProcessing::$22] = startProcessing::spriteX#0
|
|
[243] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y)[startProcessing::$22] = startProcessing::spriteY#0
|
|
[244] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX)[startProcessing::$22] = (word)startProcessing::$15
|
|
[245] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY)[startProcessing::$22] = $3c
|
|
[246] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID)[startProcessing::$22] = startProcessing::freeIdx#2
|
|
[247] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR)[startProcessing::$22] = startProcessing::spritePtr#0
|
|
[248] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL)[startProcessing::$22] = startProcessing::spriteCol#0
|
|
[249] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$22] = STATUS_NEW
|
|
[250] ((byte**)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)[startProcessing::$22] = startProcessing::screenPtr#0
|
|
to:startProcessing::@return
|
|
startProcessing::@return: scope:[startProcessing] from startProcessing::@7
|
|
[251] return
|
|
to:@return
|
|
startProcessing::@8: scope:[startProcessing] from startProcessing::@4
|
|
[252] startProcessing::freeIdx#7 = startProcessing::freeIdx#2
|
|
to:startProcessing::@1
|
|
startProcessing::@3: scope:[startProcessing] from startProcessing::@2
|
|
[253] startProcessing::i#1 = ++ startProcessing::i#2
|
|
[254] if(startProcessing::i#1!=NUM_PROCESSING-1+1) goto startProcessing::@2
|
|
to:startProcessing::@9
|
|
startProcessing::@9: scope:[startProcessing] from startProcessing::@3
|
|
[255] startProcessing::freeIdx#8 = startProcessing::freeIdx#6
|
|
to:startProcessing::@4
|
|
|
|
word atan2_16(signed word atan2_16::x , signed word atan2_16::y)
|
|
atan2_16: scope:[atan2_16] from init_angle_screen::@3
|
|
[256] if(atan2_16::y#0>=0) goto atan2_16::@1
|
|
to:atan2_16::@2
|
|
atan2_16::@2: scope:[atan2_16] from atan2_16
|
|
[257] atan2_16::$2 = - atan2_16::y#0
|
|
to:atan2_16::@3
|
|
atan2_16::@3: scope:[atan2_16] from atan2_16::@1 atan2_16::@2
|
|
[258] atan2_16::yi#0 = phi( atan2_16::@1/atan2_16::yi#16, atan2_16::@2/atan2_16::$2 )
|
|
[259] if(atan2_16::x#0>=0) goto atan2_16::@4
|
|
to:atan2_16::@5
|
|
atan2_16::@5: scope:[atan2_16] from atan2_16::@3
|
|
[260] atan2_16::$7 = - atan2_16::x#0
|
|
to:atan2_16::@6
|
|
atan2_16::@6: scope:[atan2_16] from atan2_16::@4 atan2_16::@5
|
|
[261] atan2_16::xi#0 = phi( atan2_16::@4/atan2_16::xi#13, atan2_16::@5/atan2_16::$7 )
|
|
to:atan2_16::@10
|
|
atan2_16::@10: scope:[atan2_16] from atan2_16::@19 atan2_16::@6
|
|
[262] atan2_16::angle#12 = phi( atan2_16::@19/atan2_16::angle#13, atan2_16::@6/0 )
|
|
[262] atan2_16::i#2 = phi( atan2_16::@19/atan2_16::i#1, atan2_16::@6/0 )
|
|
[262] atan2_16::xi#3 = phi( atan2_16::@19/atan2_16::xi#8, atan2_16::@6/atan2_16::xi#0 )
|
|
[262] atan2_16::yi#3 = phi( atan2_16::@19/atan2_16::yi#8, atan2_16::@6/atan2_16::yi#0 )
|
|
[263] if(atan2_16::yi#3!=0) goto atan2_16::@11
|
|
to:atan2_16::@12
|
|
atan2_16::@12: scope:[atan2_16] from atan2_16::@10 atan2_16::@19
|
|
[264] atan2_16::angle#6 = phi( atan2_16::@10/atan2_16::angle#12, atan2_16::@19/atan2_16::angle#13 )
|
|
[265] atan2_16::angle#1 = atan2_16::angle#6 >> 1
|
|
[266] if(atan2_16::x#0>=0) goto atan2_16::@7
|
|
to:atan2_16::@21
|
|
atan2_16::@21: scope:[atan2_16] from atan2_16::@12
|
|
[267] atan2_16::angle#4 = $8000 - atan2_16::angle#1
|
|
to:atan2_16::@7
|
|
atan2_16::@7: scope:[atan2_16] from atan2_16::@12 atan2_16::@21
|
|
[268] atan2_16::angle#11 = phi( atan2_16::@12/atan2_16::angle#1, atan2_16::@21/atan2_16::angle#4 )
|
|
[269] if(atan2_16::y#0>=0) goto atan2_16::@8
|
|
to:atan2_16::@9
|
|
atan2_16::@9: scope:[atan2_16] from atan2_16::@7
|
|
[270] atan2_16::angle#5 = - atan2_16::angle#11
|
|
to:atan2_16::@8
|
|
atan2_16::@8: scope:[atan2_16] from atan2_16::@7 atan2_16::@9
|
|
[271] atan2_16::return#0 = phi( atan2_16::@7/atan2_16::angle#11, atan2_16::@9/atan2_16::angle#5 )
|
|
to:atan2_16::@return
|
|
atan2_16::@return: scope:[atan2_16] from atan2_16::@8
|
|
[272] return
|
|
to:@return
|
|
atan2_16::@11: scope:[atan2_16] from atan2_16::@10
|
|
[273] atan2_16::shift#5 = atan2_16::i#2
|
|
[274] atan2_16::xd#10 = atan2_16::xi#3
|
|
[275] atan2_16::yd#10 = atan2_16::yi#3
|
|
to:atan2_16::@13
|
|
atan2_16::@13: scope:[atan2_16] from atan2_16::@11 atan2_16::@14
|
|
[276] atan2_16::yd#3 = phi( atan2_16::@11/atan2_16::yd#10, atan2_16::@14/atan2_16::yd#1 )
|
|
[276] atan2_16::xd#3 = phi( atan2_16::@11/atan2_16::xd#10, atan2_16::@14/atan2_16::xd#1 )
|
|
[276] atan2_16::shift#2 = phi( atan2_16::@11/atan2_16::shift#5, atan2_16::@14/atan2_16::shift#1 )
|
|
[277] if(atan2_16::shift#2>=2) goto atan2_16::@14
|
|
to:atan2_16::@15
|
|
atan2_16::@15: scope:[atan2_16] from atan2_16::@13
|
|
[278] if(0==atan2_16::shift#2) goto atan2_16::@17
|
|
to:atan2_16::@16
|
|
atan2_16::@16: scope:[atan2_16] from atan2_16::@15
|
|
[279] atan2_16::xd#2 = atan2_16::xd#3 >> 1
|
|
[280] atan2_16::yd#2 = atan2_16::yd#3 >> 1
|
|
to:atan2_16::@17
|
|
atan2_16::@17: scope:[atan2_16] from atan2_16::@15 atan2_16::@16
|
|
[281] atan2_16::xd#5 = phi( atan2_16::@15/atan2_16::xd#3, atan2_16::@16/atan2_16::xd#2 )
|
|
[281] atan2_16::yd#5 = phi( atan2_16::@15/atan2_16::yd#3, atan2_16::@16/atan2_16::yd#2 )
|
|
[282] if(atan2_16::yi#3>=0) goto atan2_16::@18
|
|
to:atan2_16::@20
|
|
atan2_16::@20: scope:[atan2_16] from atan2_16::@17
|
|
[283] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5
|
|
[284] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5
|
|
[285] atan2_16::$23 = atan2_16::i#2 << 1
|
|
[286] atan2_16::angle#3 = atan2_16::angle#12 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23]
|
|
to:atan2_16::@19
|
|
atan2_16::@19: scope:[atan2_16] from atan2_16::@18 atan2_16::@20
|
|
[287] atan2_16::xi#8 = phi( atan2_16::@18/atan2_16::xi#1, atan2_16::@20/atan2_16::xi#2 )
|
|
[287] atan2_16::angle#13 = phi( atan2_16::@18/atan2_16::angle#2, atan2_16::@20/atan2_16::angle#3 )
|
|
[287] atan2_16::yi#8 = phi( atan2_16::@18/atan2_16::yi#1, atan2_16::@20/atan2_16::yi#2 )
|
|
[288] atan2_16::i#1 = ++ atan2_16::i#2
|
|
[289] if(atan2_16::i#1==CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12
|
|
to:atan2_16::@10
|
|
atan2_16::@18: scope:[atan2_16] from atan2_16::@17
|
|
[290] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5
|
|
[291] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5
|
|
[292] atan2_16::$22 = atan2_16::i#2 << 1
|
|
[293] atan2_16::angle#2 = atan2_16::angle#12 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22]
|
|
to:atan2_16::@19
|
|
atan2_16::@14: scope:[atan2_16] from atan2_16::@13
|
|
[294] atan2_16::xd#1 = atan2_16::xd#3 >> 2
|
|
[295] atan2_16::yd#1 = atan2_16::yd#3 >> 2
|
|
[296] atan2_16::shift#1 = atan2_16::shift#2 - 2
|
|
to:atan2_16::@13
|
|
atan2_16::@4: scope:[atan2_16] from atan2_16::@3
|
|
[297] atan2_16::xi#13 = atan2_16::x#0
|
|
to:atan2_16::@6
|
|
atan2_16::@1: scope:[atan2_16] from atan2_16
|
|
[298] atan2_16::yi#16 = atan2_16::y#0
|
|
to:atan2_16::@3
|
|
|
|
|
|
VARIABLE REGISTER WEIGHTS
|
|
byte* SCREEN_COPY
|
|
void* SCREEN_COPY#0 0.03076923076923077
|
|
byte* SCREEN_DIST
|
|
void* SCREEN_DIST#0 0.031746031746031744
|
|
void __start()
|
|
word atan2_16(signed word atan2_16::x , signed word atan2_16::y)
|
|
signed word~ atan2_16::$2 200002.0
|
|
byte~ atan2_16::$22 2.00000002E8
|
|
byte~ atan2_16::$23 2.00000002E8
|
|
signed word~ atan2_16::$7 200002.0
|
|
word atan2_16::angle
|
|
word atan2_16::angle#1 150001.5
|
|
word atan2_16::angle#11 200002.0
|
|
word atan2_16::angle#12 1.904761923809524E7
|
|
word atan2_16::angle#13 1.3333333466666667E8
|
|
word atan2_16::angle#2 2.00000002E8
|
|
word atan2_16::angle#3 2.00000002E8
|
|
word atan2_16::angle#4 200002.0
|
|
word atan2_16::angle#5 200002.0
|
|
word atan2_16::angle#6 2.00100003E8
|
|
byte atan2_16::i
|
|
byte atan2_16::i#1 1.500000015E8
|
|
byte atan2_16::i#2 2.0833333541666668E7
|
|
word atan2_16::return
|
|
word atan2_16::return#0 70001.0
|
|
word atan2_16::return#2 20002.0
|
|
byte atan2_16::shift
|
|
byte atan2_16::shift#1 2.000000002E9
|
|
byte atan2_16::shift#2 8.0000000125E8
|
|
byte atan2_16::shift#5 6.6666667333333336E7
|
|
signed word atan2_16::x
|
|
signed word atan2_16::x#0 10789.605263157895
|
|
signed word atan2_16::xd
|
|
signed word atan2_16::xd#1 6.666666673333334E8
|
|
signed word atan2_16::xd#10 1.00000001E8
|
|
signed word atan2_16::xd#2 1.00000001E8
|
|
signed word atan2_16::xd#3 7.666666683333335E8
|
|
signed word atan2_16::xd#5 1.00000001E8
|
|
signed word atan2_16::xi
|
|
signed word atan2_16::xi#0 300003.0
|
|
signed word atan2_16::xi#1 5.00000005E7
|
|
signed word atan2_16::xi#13 200002.0
|
|
signed word atan2_16::xi#2 5.00000005E7
|
|
signed word atan2_16::xi#3 2.6673333666666668E7
|
|
signed word atan2_16::xi#8 1.00000001E8
|
|
signed word atan2_16::y
|
|
signed word atan2_16::y#0 10250.125
|
|
signed word atan2_16::yd
|
|
signed word atan2_16::yd#1 1.000000001E9
|
|
signed word atan2_16::yd#10 2.00000002E8
|
|
signed word atan2_16::yd#2 2.00000002E8
|
|
signed word atan2_16::yd#3 4.6000000099999994E8
|
|
signed word atan2_16::yd#5 2.00000002E8
|
|
signed word atan2_16::yi
|
|
signed word atan2_16::yi#0 60000.600000000006
|
|
signed word atan2_16::yi#1 6.6666667333333336E7
|
|
signed word atan2_16::yi#16 200002.0
|
|
signed word atan2_16::yi#2 6.6666667333333336E7
|
|
signed word atan2_16::yi#3 3.53000004117647E7
|
|
signed word atan2_16::yi#8 1.00000001E8
|
|
struct ProcessingChar getCharToProcess()
|
|
word~ getCharToProcess::$11 1501.5
|
|
word~ getCharToProcess::$12 2002.0
|
|
word~ getCharToProcess::$13 2002.0
|
|
word~ getCharToProcess::$8 2002.0
|
|
byte*~ getCharToProcess::$9 2002.0
|
|
byte getCharToProcess::closest_dist
|
|
byte getCharToProcess::closest_dist#10 200002.0
|
|
byte getCharToProcess::closest_dist#12 2000002.0
|
|
byte getCharToProcess::closest_dist#2 1025001.25
|
|
byte getCharToProcess::closest_dist#8 200002.0
|
|
byte getCharToProcess::closest_x
|
|
byte getCharToProcess::closest_x#7 516667.3333333334
|
|
byte getCharToProcess::closest_x#9 200002.0
|
|
byte getCharToProcess::closest_y
|
|
byte getCharToProcess::closest_y#7 516667.3333333334
|
|
byte getCharToProcess::closest_y#9 200002.0
|
|
byte getCharToProcess::dist
|
|
byte getCharToProcess::dist#0 750000.75
|
|
byte* getCharToProcess::dist_line
|
|
byte* getCharToProcess::dist_line#0 2002.0
|
|
byte* getCharToProcess::dist_line#1 50000.5
|
|
byte* getCharToProcess::dist_line#6 85785.99999999999
|
|
struct ProcessingChar getCharToProcess::return
|
|
byte getCharToProcess::return_dist
|
|
byte getCharToProcess::return_dist#0 67.33333333333333
|
|
byte getCharToProcess::return_dist#1 227839.2777777778
|
|
byte getCharToProcess::return_dist#5 2000002.0
|
|
byte getCharToProcess::return_dist#6 2000002.0
|
|
byte getCharToProcess::return_x
|
|
byte getCharToProcess::return_x#0 67.33333333333333
|
|
byte getCharToProcess::return_x#1 227839.2777777778
|
|
byte getCharToProcess::return_x#7 1000001.0
|
|
byte getCharToProcess::return_y
|
|
byte getCharToProcess::return_y#0 67.33333333333333
|
|
byte getCharToProcess::return_y#1 215795.05263157893
|
|
byte getCharToProcess::return_y#7 2000002.0
|
|
byte* getCharToProcess::screen_line
|
|
byte* getCharToProcess::screen_line#0 1001.0
|
|
byte* getCharToProcess::screen_line#1 40000.4
|
|
byte* getCharToProcess::screen_line#4 92384.92307692306
|
|
byte getCharToProcess::x
|
|
byte getCharToProcess::x#1 1000001.0
|
|
byte getCharToProcess::x#2 555556.1111111111
|
|
byte getCharToProcess::y
|
|
byte getCharToProcess::y#1 100001.0
|
|
byte getCharToProcess::y#7 80000.20000000001
|
|
byte* heap_head
|
|
byte* heap_head#0 3.25
|
|
byte* heap_head#6 13.0
|
|
void initSprites()
|
|
byte initSprites::i
|
|
byte initSprites::i#1 1501.5
|
|
byte initSprites::i#2 1501.5
|
|
byte* initSprites::sp
|
|
byte* initSprites::sp#1 2002.0
|
|
byte* initSprites::sp#2 1334.6666666666667
|
|
void init_angle_screen(byte* init_angle_screen::screen)
|
|
byte~ init_angle_screen::$10 20002.0
|
|
byte~ init_angle_screen::$11 20002.0
|
|
byte~ init_angle_screen::$3 20002.0
|
|
byte~ init_angle_screen::$4 20002.0
|
|
byte~ init_angle_screen::$5 20002.0
|
|
word~ init_angle_screen::$7 20002.0
|
|
byte~ init_angle_screen::$9 20002.0
|
|
byte init_angle_screen::ang_w
|
|
byte init_angle_screen::ang_w#0 8334.166666666666
|
|
word init_angle_screen::angle_w
|
|
word init_angle_screen::angle_w#0 20002.0
|
|
byte* init_angle_screen::screen
|
|
byte* init_angle_screen::screen#0 112.0
|
|
byte* init_angle_screen::screen_bottomline
|
|
byte* init_angle_screen::screen_bottomline#0 151.5
|
|
byte* init_angle_screen::screen_bottomline#1 667.3333333333334
|
|
byte* init_angle_screen::screen_bottomline#6 884.2
|
|
byte* init_angle_screen::screen_topline
|
|
byte* init_angle_screen::screen_topline#1 500.5
|
|
byte* init_angle_screen::screen_topline#6 921.0416666666666
|
|
byte* init_angle_screen::screen_topline#7 202.0
|
|
byte init_angle_screen::x
|
|
byte init_angle_screen::x#1 10001.0
|
|
byte init_angle_screen::x#2 2857.4285714285716
|
|
byte init_angle_screen::xb
|
|
byte init_angle_screen::xb#1 20002.0
|
|
byte init_angle_screen::xb#2 1818.3636363636363
|
|
signed word init_angle_screen::xw
|
|
word init_angle_screen::xw#0 3333.6666666666665
|
|
byte init_angle_screen::y
|
|
byte init_angle_screen::y#1 1501.5
|
|
byte init_angle_screen::y#5 461.65384615384613
|
|
signed word init_angle_screen::yw
|
|
word init_angle_screen::yw#0 5000.5
|
|
__interrupt(hardware_clobber) void irqBottom()
|
|
byte irqBottom::i
|
|
__interrupt(hardware_clobber) void irqTop()
|
|
byte irqTop::i
|
|
byte irqTop::i1
|
|
void main()
|
|
byte~ main::$10 202.0
|
|
byte~ main::$11 202.0
|
|
byte~ main::$12 202.0
|
|
byte~ main::$13 202.0
|
|
byte~ main::$14 202.0
|
|
byte main::center_dist
|
|
byte main::center_dist#0 202.0
|
|
byte main::center_x
|
|
byte main::center_x#0 50.5
|
|
byte main::center_y
|
|
byte main::center_y#0 50.5
|
|
byte* main::dst
|
|
byte* main::dst#0 22.0
|
|
byte* main::dst#1 202.0
|
|
byte* main::dst#2 78.5
|
|
byte main::i
|
|
byte main::i#1 151.5
|
|
byte main::i#2 72.14285714285714
|
|
byte* main::src
|
|
byte* main::src#1 101.0
|
|
byte* main::src#2 134.66666666666666
|
|
void* malloc(word malloc::size)
|
|
byte* malloc::mem
|
|
byte* malloc::mem#0 4.4
|
|
void* malloc::return
|
|
word malloc::size
|
|
void processChars()
|
|
byte~ processChars::$10 202.0
|
|
word~ processChars::$12 101.0
|
|
byte~ processChars::$13 17.565217391304348
|
|
word~ processChars::$21 101.0
|
|
byte~ processChars::$25 202.0
|
|
byte~ processChars::$28 202.0
|
|
byte~ processChars::$29 202.0
|
|
byte~ processChars::$30 202.0
|
|
byte~ processChars::$73 202.0
|
|
byte~ processChars::$79 202.0
|
|
byte~ processChars::$87 202.0
|
|
byte~ processChars::$88 202.0
|
|
byte~ processChars::$89 202.0
|
|
byte~ processChars::$9 202.0
|
|
byte processChars::bitmask
|
|
byte processChars::bitmask#0 21.956521739130434
|
|
byte processChars::i
|
|
byte processChars::i#1 151.5
|
|
byte processChars::i#10 11.222222222222221
|
|
byte processChars::numActive
|
|
byte processChars::numActive#1 202.0
|
|
byte processChars::numActive#10 7.046511627906977
|
|
byte processChars::numActive#3 101.0
|
|
struct ProcessingSprite* processChars::processing
|
|
struct ProcessingSprite* processChars::processing#0 3.0606060606060606
|
|
byte processChars::xchar
|
|
byte processChars::xchar#0 202.0
|
|
word processChars::xpos
|
|
word processChars::xpos#0 21.642857142857142
|
|
byte processChars::ychar
|
|
byte processChars::ychar#0 202.0
|
|
byte processChars::ypos
|
|
byte processChars::ypos#0 25.25
|
|
void setupRasterIrq(word setupRasterIrq::raster , void()* setupRasterIrq::irqRoutine)
|
|
void()* setupRasterIrq::irqRoutine
|
|
word setupRasterIrq::raster
|
|
void startProcessing(byte startProcessing::center_x , byte startProcessing::center_y , byte startProcessing::center_dist)
|
|
word~ startProcessing::$0 2002.0
|
|
word~ startProcessing::$11 2002.0
|
|
word~ startProcessing::$12 2002.0
|
|
byte~ startProcessing::$15 125.125
|
|
byte~ startProcessing::$21 2000002.0
|
|
byte~ startProcessing::$22 1112.222222222222
|
|
word~ startProcessing::$23 1501.5
|
|
word~ startProcessing::$24 2002.0
|
|
word~ startProcessing::$25 2002.0
|
|
word~ startProcessing::$26 2002.0
|
|
word~ startProcessing::$27 2002.0
|
|
byte~ startProcessing::$28 2000002.0
|
|
byte~ startProcessing::$29 2000002.0
|
|
byte~ startProcessing::$30 2000002.0
|
|
byte~ startProcessing::$31 2000002.0
|
|
word~ startProcessing::$33 2002.0
|
|
word~ startProcessing::$34 2002.0
|
|
byte~ startProcessing::$36 2002.0
|
|
byte~ startProcessing::$37 2002.0
|
|
byte~ startProcessing::$38 2002.0
|
|
byte~ startProcessing::$39 2002.0
|
|
word~ startProcessing::$4 2002.0
|
|
word~ startProcessing::$6 2002.0
|
|
word~ startProcessing::$8 2002.0
|
|
word~ startProcessing::$9 2002.0
|
|
struct ProcessingChar startProcessing::center
|
|
byte startProcessing::center_dist
|
|
byte startProcessing::center_x
|
|
byte startProcessing::center_x#0 26.238095238095237
|
|
byte startProcessing::center_y
|
|
byte startProcessing::center_y#0 2.2444444444444445
|
|
byte startProcessing::ch
|
|
byte startProcessing::ch#0 1001.0
|
|
byte* startProcessing::chargenData
|
|
byte* startProcessing::chargenData#0 667.3333333333334
|
|
byte* startProcessing::chargenData#1 66667.33333333333
|
|
byte* startProcessing::chargenData#2 100334.66666666666
|
|
byte* startProcessing::colPtr
|
|
byte* startProcessing::colPtr#0 2002.0
|
|
byte startProcessing::freeIdx
|
|
byte startProcessing::freeIdx#2 28391.52173913043
|
|
byte startProcessing::freeIdx#6 20000.2
|
|
byte startProcessing::freeIdx#7 200002.0
|
|
byte startProcessing::freeIdx#8 200002.0
|
|
byte startProcessing::i
|
|
byte startProcessing::i#1 1500001.5
|
|
byte startProcessing::i#2 857143.7142857142
|
|
byte startProcessing::i1
|
|
byte startProcessing::i1#1 150001.5
|
|
byte startProcessing::i1#2 50000.5
|
|
word startProcessing::offset
|
|
word startProcessing::offset#0 1001.0
|
|
byte* startProcessing::screenPtr
|
|
byte* startProcessing::screenPtr#0 73.2439024390244
|
|
byte startProcessing::spriteCol
|
|
byte startProcessing::spriteCol#0 50.05
|
|
byte* startProcessing::spriteData
|
|
byte* startProcessing::spriteData#0 286.0
|
|
byte* startProcessing::spriteData#1 50000.5
|
|
byte* startProcessing::spriteData#2 150502.0
|
|
byte startProcessing::spriteIdx
|
|
byte startProcessing::spritePtr
|
|
byte startProcessing::spritePtr#0 166.83333333333334
|
|
word startProcessing::spriteX
|
|
word startProcessing::spriteX#0 166.83333333333334
|
|
word startProcessing::spriteY
|
|
word startProcessing::spriteY#0 222.44444444444446
|
|
|
|
Initial phi equivalence classes
|
|
[ heap_head#6 heap_head#0 ]
|
|
[ main::src#2 main::src#1 ]
|
|
[ main::dst#2 main::dst#0 main::dst#1 ]
|
|
[ main::i#2 main::i#1 ]
|
|
[ processChars::i#10 processChars::i#1 ]
|
|
[ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
[ init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
[ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ]
|
|
[ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ]
|
|
[ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
[ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
[ initSprites::sp#2 initSprites::sp#1 ]
|
|
[ initSprites::i#2 initSprites::i#1 ]
|
|
[ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 ]
|
|
[ getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ]
|
|
[ getCharToProcess::y#7 getCharToProcess::y#1 ]
|
|
[ getCharToProcess::x#2 getCharToProcess::x#1 ]
|
|
[ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ]
|
|
[ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
|
|
[ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
[ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ]
|
|
[ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
|
|
[ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
|
|
[ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 ]
|
|
[ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ]
|
|
[ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
[ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ]
|
|
[ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
|
[ atan2_16::i#2 atan2_16::i#1 ]
|
|
[ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ]
|
|
[ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ]
|
|
[ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
|
[ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
|
[ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
|
Added variable SCREEN_COPY#0 to live range equivalence class [ SCREEN_COPY#0 ]
|
|
Added variable SCREEN_DIST#0 to live range equivalence class [ SCREEN_DIST#0 ]
|
|
Added variable malloc::mem#0 to live range equivalence class [ malloc::mem#0 ]
|
|
Added variable init_angle_screen::screen#0 to live range equivalence class [ init_angle_screen::screen#0 ]
|
|
Added variable main::$11 to live range equivalence class [ main::$11 ]
|
|
Added variable main::$12 to live range equivalence class [ main::$12 ]
|
|
Added variable main::$13 to live range equivalence class [ main::$13 ]
|
|
Added variable main::$14 to live range equivalence class [ main::$14 ]
|
|
Added variable main::$10 to live range equivalence class [ main::$10 ]
|
|
Added variable getCharToProcess::return_x#0 to live range equivalence class [ getCharToProcess::return_x#0 ]
|
|
Added variable getCharToProcess::return_y#0 to live range equivalence class [ getCharToProcess::return_y#0 ]
|
|
Added variable getCharToProcess::return_dist#0 to live range equivalence class [ getCharToProcess::return_dist#0 ]
|
|
Added variable main::center_x#0 to live range equivalence class [ main::center_x#0 ]
|
|
Added variable main::center_y#0 to live range equivalence class [ main::center_y#0 ]
|
|
Added variable main::center_dist#0 to live range equivalence class [ main::center_dist#0 ]
|
|
Added variable startProcessing::center_x#0 to live range equivalence class [ startProcessing::center_x#0 ]
|
|
Added variable startProcessing::center_y#0 to live range equivalence class [ startProcessing::center_y#0 ]
|
|
Added variable processChars::$13 to live range equivalence class [ processChars::$13 ]
|
|
Added variable processChars::$87 to live range equivalence class [ processChars::$87 ]
|
|
Added variable processChars::$88 to live range equivalence class [ processChars::$88 ]
|
|
Added variable processChars::$89 to live range equivalence class [ processChars::$89 ]
|
|
Added variable processChars::$28 to live range equivalence class [ processChars::$28 ]
|
|
Added variable processChars::processing#0 to live range equivalence class [ processChars::processing#0 ]
|
|
Added variable processChars::bitmask#0 to live range equivalence class [ processChars::bitmask#0 ]
|
|
Added variable processChars::xpos#0 to live range equivalence class [ processChars::xpos#0 ]
|
|
Added variable processChars::$9 to live range equivalence class [ processChars::$9 ]
|
|
Added variable processChars::$10 to live range equivalence class [ processChars::$10 ]
|
|
Added variable processChars::$12 to live range equivalence class [ processChars::$12 ]
|
|
Added variable processChars::ypos#0 to live range equivalence class [ processChars::ypos#0 ]
|
|
Added variable processChars::$21 to live range equivalence class [ processChars::$21 ]
|
|
Added variable processChars::$73 to live range equivalence class [ processChars::$73 ]
|
|
Added variable processChars::xchar#0 to live range equivalence class [ processChars::xchar#0 ]
|
|
Added variable processChars::$29 to live range equivalence class [ processChars::$29 ]
|
|
Added variable processChars::$79 to live range equivalence class [ processChars::$79 ]
|
|
Added variable processChars::ychar#0 to live range equivalence class [ processChars::ychar#0 ]
|
|
Added variable processChars::$30 to live range equivalence class [ processChars::$30 ]
|
|
Added variable processChars::$25 to live range equivalence class [ processChars::$25 ]
|
|
Added variable init_angle_screen::$3 to live range equivalence class [ init_angle_screen::$3 ]
|
|
Added variable init_angle_screen::$4 to live range equivalence class [ init_angle_screen::$4 ]
|
|
Added variable init_angle_screen::xw#0 to live range equivalence class [ init_angle_screen::xw#0 ]
|
|
Added variable init_angle_screen::$5 to live range equivalence class [ init_angle_screen::$5 ]
|
|
Added variable init_angle_screen::yw#0 to live range equivalence class [ init_angle_screen::yw#0 ]
|
|
Added variable atan2_16::x#0 to live range equivalence class [ atan2_16::x#0 ]
|
|
Added variable atan2_16::y#0 to live range equivalence class [ atan2_16::y#0 ]
|
|
Added variable atan2_16::return#2 to live range equivalence class [ atan2_16::return#2 ]
|
|
Added variable init_angle_screen::angle_w#0 to live range equivalence class [ init_angle_screen::angle_w#0 ]
|
|
Added variable init_angle_screen::$7 to live range equivalence class [ init_angle_screen::$7 ]
|
|
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
|
Added variable init_angle_screen::$9 to live range equivalence class [ init_angle_screen::$9 ]
|
|
Added variable init_angle_screen::$10 to live range equivalence class [ init_angle_screen::$10 ]
|
|
Added variable init_angle_screen::$11 to live range equivalence class [ init_angle_screen::$11 ]
|
|
Added variable getCharToProcess::$11 to live range equivalence class [ getCharToProcess::$11 ]
|
|
Added variable getCharToProcess::$12 to live range equivalence class [ getCharToProcess::$12 ]
|
|
Added variable getCharToProcess::$13 to live range equivalence class [ getCharToProcess::$13 ]
|
|
Added variable getCharToProcess::$8 to live range equivalence class [ getCharToProcess::$8 ]
|
|
Added variable getCharToProcess::$9 to live range equivalence class [ getCharToProcess::$9 ]
|
|
Added variable startProcessing::$28 to live range equivalence class [ startProcessing::$28 ]
|
|
Added variable startProcessing::$29 to live range equivalence class [ startProcessing::$29 ]
|
|
Added variable startProcessing::$30 to live range equivalence class [ startProcessing::$30 ]
|
|
Added variable startProcessing::$31 to live range equivalence class [ startProcessing::$31 ]
|
|
Added variable startProcessing::$21 to live range equivalence class [ startProcessing::$21 ]
|
|
Added variable startProcessing::$23 to live range equivalence class [ startProcessing::$23 ]
|
|
Added variable startProcessing::$33 to live range equivalence class [ startProcessing::$33 ]
|
|
Added variable startProcessing::$34 to live range equivalence class [ startProcessing::$34 ]
|
|
Added variable startProcessing::$0 to live range equivalence class [ startProcessing::$0 ]
|
|
Added variable startProcessing::offset#0 to live range equivalence class [ startProcessing::offset#0 ]
|
|
Added variable startProcessing::colPtr#0 to live range equivalence class [ startProcessing::colPtr#0 ]
|
|
Added variable startProcessing::spriteCol#0 to live range equivalence class [ startProcessing::spriteCol#0 ]
|
|
Added variable startProcessing::screenPtr#0 to live range equivalence class [ startProcessing::screenPtr#0 ]
|
|
Added variable startProcessing::$24 to live range equivalence class [ startProcessing::$24 ]
|
|
Added variable startProcessing::$4 to live range equivalence class [ startProcessing::$4 ]
|
|
Added variable startProcessing::ch#0 to live range equivalence class [ startProcessing::ch#0 ]
|
|
Added variable startProcessing::$25 to live range equivalence class [ startProcessing::$25 ]
|
|
Added variable startProcessing::$6 to live range equivalence class [ startProcessing::$6 ]
|
|
Added variable startProcessing::$26 to live range equivalence class [ startProcessing::$26 ]
|
|
Added variable startProcessing::$8 to live range equivalence class [ startProcessing::$8 ]
|
|
Added variable startProcessing::$9 to live range equivalence class [ startProcessing::$9 ]
|
|
Added variable startProcessing::spriteX#0 to live range equivalence class [ startProcessing::spriteX#0 ]
|
|
Added variable startProcessing::$27 to live range equivalence class [ startProcessing::$27 ]
|
|
Added variable startProcessing::$11 to live range equivalence class [ startProcessing::$11 ]
|
|
Added variable startProcessing::$12 to live range equivalence class [ startProcessing::$12 ]
|
|
Added variable startProcessing::spriteY#0 to live range equivalence class [ startProcessing::spriteY#0 ]
|
|
Added variable startProcessing::spritePtr#0 to live range equivalence class [ startProcessing::spritePtr#0 ]
|
|
Added variable startProcessing::$15 to live range equivalence class [ startProcessing::$15 ]
|
|
Added variable startProcessing::$36 to live range equivalence class [ startProcessing::$36 ]
|
|
Added variable startProcessing::$37 to live range equivalence class [ startProcessing::$37 ]
|
|
Added variable startProcessing::$38 to live range equivalence class [ startProcessing::$38 ]
|
|
Added variable startProcessing::$39 to live range equivalence class [ startProcessing::$39 ]
|
|
Added variable startProcessing::$22 to live range equivalence class [ startProcessing::$22 ]
|
|
Added variable atan2_16::$23 to live range equivalence class [ atan2_16::$23 ]
|
|
Added variable atan2_16::$22 to live range equivalence class [ atan2_16::$22 ]
|
|
Complete equivalence classes
|
|
[ heap_head#6 heap_head#0 ]
|
|
[ main::src#2 main::src#1 ]
|
|
[ main::dst#2 main::dst#0 main::dst#1 ]
|
|
[ main::i#2 main::i#1 ]
|
|
[ processChars::i#10 processChars::i#1 ]
|
|
[ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
[ init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
[ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ]
|
|
[ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ]
|
|
[ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
[ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
[ initSprites::sp#2 initSprites::sp#1 ]
|
|
[ initSprites::i#2 initSprites::i#1 ]
|
|
[ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 ]
|
|
[ getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ]
|
|
[ getCharToProcess::y#7 getCharToProcess::y#1 ]
|
|
[ getCharToProcess::x#2 getCharToProcess::x#1 ]
|
|
[ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ]
|
|
[ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
|
|
[ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
[ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ]
|
|
[ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
|
|
[ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
|
|
[ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 ]
|
|
[ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ]
|
|
[ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
[ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ]
|
|
[ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
|
[ atan2_16::i#2 atan2_16::i#1 ]
|
|
[ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ]
|
|
[ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ]
|
|
[ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
|
[ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
|
[ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
|
[ SCREEN_COPY#0 ]
|
|
[ SCREEN_DIST#0 ]
|
|
[ malloc::mem#0 ]
|
|
[ init_angle_screen::screen#0 ]
|
|
[ main::$11 ]
|
|
[ main::$12 ]
|
|
[ main::$13 ]
|
|
[ main::$14 ]
|
|
[ main::$10 ]
|
|
[ getCharToProcess::return_x#0 ]
|
|
[ getCharToProcess::return_y#0 ]
|
|
[ getCharToProcess::return_dist#0 ]
|
|
[ main::center_x#0 ]
|
|
[ main::center_y#0 ]
|
|
[ main::center_dist#0 ]
|
|
[ startProcessing::center_x#0 ]
|
|
[ startProcessing::center_y#0 ]
|
|
[ processChars::$13 ]
|
|
[ processChars::$87 ]
|
|
[ processChars::$88 ]
|
|
[ processChars::$89 ]
|
|
[ processChars::$28 ]
|
|
[ processChars::processing#0 ]
|
|
[ processChars::bitmask#0 ]
|
|
[ processChars::xpos#0 ]
|
|
[ processChars::$9 ]
|
|
[ processChars::$10 ]
|
|
[ processChars::$12 ]
|
|
[ processChars::ypos#0 ]
|
|
[ processChars::$21 ]
|
|
[ processChars::$73 ]
|
|
[ processChars::xchar#0 ]
|
|
[ processChars::$29 ]
|
|
[ processChars::$79 ]
|
|
[ processChars::ychar#0 ]
|
|
[ processChars::$30 ]
|
|
[ processChars::$25 ]
|
|
[ init_angle_screen::$3 ]
|
|
[ init_angle_screen::$4 ]
|
|
[ init_angle_screen::xw#0 ]
|
|
[ init_angle_screen::$5 ]
|
|
[ init_angle_screen::yw#0 ]
|
|
[ atan2_16::x#0 ]
|
|
[ atan2_16::y#0 ]
|
|
[ atan2_16::return#2 ]
|
|
[ init_angle_screen::angle_w#0 ]
|
|
[ init_angle_screen::$7 ]
|
|
[ init_angle_screen::ang_w#0 ]
|
|
[ init_angle_screen::$9 ]
|
|
[ init_angle_screen::$10 ]
|
|
[ init_angle_screen::$11 ]
|
|
[ getCharToProcess::$11 ]
|
|
[ getCharToProcess::$12 ]
|
|
[ getCharToProcess::$13 ]
|
|
[ getCharToProcess::$8 ]
|
|
[ getCharToProcess::$9 ]
|
|
[ startProcessing::$28 ]
|
|
[ startProcessing::$29 ]
|
|
[ startProcessing::$30 ]
|
|
[ startProcessing::$31 ]
|
|
[ startProcessing::$21 ]
|
|
[ startProcessing::$23 ]
|
|
[ startProcessing::$33 ]
|
|
[ startProcessing::$34 ]
|
|
[ startProcessing::$0 ]
|
|
[ startProcessing::offset#0 ]
|
|
[ startProcessing::colPtr#0 ]
|
|
[ startProcessing::spriteCol#0 ]
|
|
[ startProcessing::screenPtr#0 ]
|
|
[ startProcessing::$24 ]
|
|
[ startProcessing::$4 ]
|
|
[ startProcessing::ch#0 ]
|
|
[ startProcessing::$25 ]
|
|
[ startProcessing::$6 ]
|
|
[ startProcessing::$26 ]
|
|
[ startProcessing::$8 ]
|
|
[ startProcessing::$9 ]
|
|
[ startProcessing::spriteX#0 ]
|
|
[ startProcessing::$27 ]
|
|
[ startProcessing::$11 ]
|
|
[ startProcessing::$12 ]
|
|
[ startProcessing::spriteY#0 ]
|
|
[ startProcessing::spritePtr#0 ]
|
|
[ startProcessing::$15 ]
|
|
[ startProcessing::$36 ]
|
|
[ startProcessing::$37 ]
|
|
[ startProcessing::$38 ]
|
|
[ startProcessing::$39 ]
|
|
[ startProcessing::$22 ]
|
|
[ atan2_16::$23 ]
|
|
[ atan2_16::$22 ]
|
|
Allocated zp[2]:2 [ heap_head#6 heap_head#0 ]
|
|
Allocated zp[2]:4 [ main::src#2 main::src#1 ]
|
|
Allocated zp[2]:6 [ main::dst#2 main::dst#0 main::dst#1 ]
|
|
Allocated zp[1]:8 [ main::i#2 main::i#1 ]
|
|
Allocated zp[1]:9 [ processChars::i#10 processChars::i#1 ]
|
|
Allocated zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
Allocated zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
Allocated zp[2]:12 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ]
|
|
Allocated zp[2]:14 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ]
|
|
Allocated zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
Allocated zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
Allocated zp[2]:18 [ initSprites::sp#2 initSprites::sp#1 ]
|
|
Allocated zp[1]:20 [ initSprites::i#2 initSprites::i#1 ]
|
|
Allocated zp[2]:21 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 ]
|
|
Allocated zp[2]:23 [ getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ]
|
|
Allocated zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
|
|
Allocated zp[1]:26 [ getCharToProcess::x#2 getCharToProcess::x#1 ]
|
|
Allocated zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ]
|
|
Allocated zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
|
|
Allocated zp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
Allocated zp[1]:30 [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ]
|
|
Allocated zp[1]:31 [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
|
|
Allocated zp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
|
|
Allocated zp[2]:33 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 ]
|
|
Allocated zp[2]:35 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ]
|
|
Allocated zp[1]:37 [ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
Allocated zp[2]:38 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ]
|
|
Allocated zp[2]:40 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
|
Allocated zp[1]:42 [ atan2_16::i#2 atan2_16::i#1 ]
|
|
Allocated zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ]
|
|
Allocated zp[2]:45 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ]
|
|
Allocated zp[1]:47 [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
|
Allocated zp[2]:48 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
|
Allocated zp[2]:50 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
|
Allocated zp[2]:52 [ SCREEN_COPY#0 ]
|
|
Allocated zp[2]:54 [ SCREEN_DIST#0 ]
|
|
Allocated zp[2]:56 [ malloc::mem#0 ]
|
|
Allocated zp[2]:58 [ init_angle_screen::screen#0 ]
|
|
Allocated zp[1]:60 [ main::$11 ]
|
|
Allocated zp[1]:61 [ main::$12 ]
|
|
Allocated zp[1]:62 [ main::$13 ]
|
|
Allocated zp[1]:63 [ main::$14 ]
|
|
Allocated zp[1]:64 [ main::$10 ]
|
|
Allocated zp[1]:65 [ getCharToProcess::return_x#0 ]
|
|
Allocated zp[1]:66 [ getCharToProcess::return_y#0 ]
|
|
Allocated zp[1]:67 [ getCharToProcess::return_dist#0 ]
|
|
Allocated zp[1]:68 [ main::center_x#0 ]
|
|
Allocated zp[1]:69 [ main::center_y#0 ]
|
|
Allocated zp[1]:70 [ main::center_dist#0 ]
|
|
Allocated zp[1]:71 [ startProcessing::center_x#0 ]
|
|
Allocated zp[1]:72 [ startProcessing::center_y#0 ]
|
|
Allocated zp[1]:73 [ processChars::$13 ]
|
|
Allocated zp[1]:74 [ processChars::$87 ]
|
|
Allocated zp[1]:75 [ processChars::$88 ]
|
|
Allocated zp[1]:76 [ processChars::$89 ]
|
|
Allocated zp[1]:77 [ processChars::$28 ]
|
|
Allocated zp[2]:78 [ processChars::processing#0 ]
|
|
Allocated zp[1]:80 [ processChars::bitmask#0 ]
|
|
Allocated zp[2]:81 [ processChars::xpos#0 ]
|
|
Allocated zp[1]:83 [ processChars::$9 ]
|
|
Allocated zp[1]:84 [ processChars::$10 ]
|
|
Allocated zp[2]:85 [ processChars::$12 ]
|
|
Allocated zp[1]:87 [ processChars::ypos#0 ]
|
|
Allocated zp[2]:88 [ processChars::$21 ]
|
|
Allocated zp[1]:90 [ processChars::$73 ]
|
|
Allocated zp[1]:91 [ processChars::xchar#0 ]
|
|
Allocated zp[1]:92 [ processChars::$29 ]
|
|
Allocated zp[1]:93 [ processChars::$79 ]
|
|
Allocated zp[1]:94 [ processChars::ychar#0 ]
|
|
Allocated zp[1]:95 [ processChars::$30 ]
|
|
Allocated zp[1]:96 [ processChars::$25 ]
|
|
Allocated zp[1]:97 [ init_angle_screen::$3 ]
|
|
Allocated zp[1]:98 [ init_angle_screen::$4 ]
|
|
Allocated zp[2]:99 [ init_angle_screen::xw#0 ]
|
|
Allocated zp[1]:101 [ init_angle_screen::$5 ]
|
|
Allocated zp[2]:102 [ init_angle_screen::yw#0 ]
|
|
Allocated zp[2]:104 [ atan2_16::x#0 ]
|
|
Allocated zp[2]:106 [ atan2_16::y#0 ]
|
|
Allocated zp[2]:108 [ atan2_16::return#2 ]
|
|
Allocated zp[2]:110 [ init_angle_screen::angle_w#0 ]
|
|
Allocated zp[2]:112 [ init_angle_screen::$7 ]
|
|
Allocated zp[1]:114 [ init_angle_screen::ang_w#0 ]
|
|
Allocated zp[1]:115 [ init_angle_screen::$9 ]
|
|
Allocated zp[1]:116 [ init_angle_screen::$10 ]
|
|
Allocated zp[1]:117 [ init_angle_screen::$11 ]
|
|
Allocated zp[2]:118 [ getCharToProcess::$11 ]
|
|
Allocated zp[2]:120 [ getCharToProcess::$12 ]
|
|
Allocated zp[2]:122 [ getCharToProcess::$13 ]
|
|
Allocated zp[2]:124 [ getCharToProcess::$8 ]
|
|
Allocated zp[2]:126 [ getCharToProcess::$9 ]
|
|
Allocated zp[1]:128 [ startProcessing::$28 ]
|
|
Allocated zp[1]:129 [ startProcessing::$29 ]
|
|
Allocated zp[1]:130 [ startProcessing::$30 ]
|
|
Allocated zp[1]:131 [ startProcessing::$31 ]
|
|
Allocated zp[1]:132 [ startProcessing::$21 ]
|
|
Allocated zp[2]:133 [ startProcessing::$23 ]
|
|
Allocated zp[2]:135 [ startProcessing::$33 ]
|
|
Allocated zp[2]:137 [ startProcessing::$34 ]
|
|
Allocated zp[2]:139 [ startProcessing::$0 ]
|
|
Allocated zp[2]:141 [ startProcessing::offset#0 ]
|
|
Allocated zp[2]:143 [ startProcessing::colPtr#0 ]
|
|
Allocated zp[1]:145 [ startProcessing::spriteCol#0 ]
|
|
Allocated zp[2]:146 [ startProcessing::screenPtr#0 ]
|
|
Allocated zp[2]:148 [ startProcessing::$24 ]
|
|
Allocated zp[2]:150 [ startProcessing::$4 ]
|
|
Allocated zp[1]:152 [ startProcessing::ch#0 ]
|
|
Allocated zp[2]:153 [ startProcessing::$25 ]
|
|
Allocated zp[2]:155 [ startProcessing::$6 ]
|
|
Allocated zp[2]:157 [ startProcessing::$26 ]
|
|
Allocated zp[2]:159 [ startProcessing::$8 ]
|
|
Allocated zp[2]:161 [ startProcessing::$9 ]
|
|
Allocated zp[2]:163 [ startProcessing::spriteX#0 ]
|
|
Allocated zp[2]:165 [ startProcessing::$27 ]
|
|
Allocated zp[2]:167 [ startProcessing::$11 ]
|
|
Allocated zp[2]:169 [ startProcessing::$12 ]
|
|
Allocated zp[2]:171 [ startProcessing::spriteY#0 ]
|
|
Allocated zp[1]:173 [ startProcessing::spritePtr#0 ]
|
|
Allocated zp[1]:174 [ startProcessing::$15 ]
|
|
Allocated zp[1]:175 [ startProcessing::$36 ]
|
|
Allocated zp[1]:176 [ startProcessing::$37 ]
|
|
Allocated zp[1]:177 [ startProcessing::$38 ]
|
|
Allocated zp[1]:178 [ startProcessing::$39 ]
|
|
Allocated zp[1]:179 [ startProcessing::$22 ]
|
|
Allocated zp[1]:180 [ atan2_16::$23 ]
|
|
Allocated zp[1]:181 [ atan2_16::$22 ]
|
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
|
Statement [3] SCREEN_COPY#0 = (void*)malloc::mem#0 [ SCREEN_COPY#0 heap_head#0 ] ( [ SCREEN_COPY#0 heap_head#0 ] { { heap_head#0 = heap_head#6 } } ) always clobbers reg byte a
|
|
Statement [5] SCREEN_DIST#0 = (void*)malloc::mem#0 [ SCREEN_COPY#0 SCREEN_DIST#0 ] ( [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [12] *RASTER = RASTER_IRQ_TOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [13] *HARDWARE_IRQ = &irqTop [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [14] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [15] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [17] *RASTER = RASTER_IRQ_MIDDLE [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [18] *HARDWARE_IRQ = &irqBottom [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [19] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [20] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [22] malloc::mem#0 = heap_head#6 - $3e8 [ malloc::mem#0 ] ( malloc:2 [ malloc::mem#0 ] { } malloc:4 [ SCREEN_COPY#0 malloc::mem#0 ] { { heap_head#0 = heap_head#6 } } ) always clobbers reg byte a
|
|
Statement [23] heap_head#0 = malloc::mem#0 [ malloc::mem#0 heap_head#0 ] ( malloc:2 [ malloc::mem#0 heap_head#0 ] { } malloc:4 [ SCREEN_COPY#0 malloc::mem#0 heap_head#0 ] { { heap_head#0 = heap_head#6 } } ) always clobbers reg byte a
|
|
Statement [25] init_angle_screen::screen#0 = (byte*)SCREEN_DIST#0 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen#0 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen#0 ] { } ) always clobbers reg byte a
|
|
Statement [27] main::dst#0 = (byte*)SCREEN_COPY#0 [ SCREEN_COPY#0 SCREEN_DIST#0 main::dst#0 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::dst#0 ] { } ) always clobbers reg byte a
|
|
Statement [29] if(main::src#2!=SCREEN+$3e8) goto main::@2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] { } ) always clobbers reg byte a
|
|
Statement [31] main::$11 = main::i#2 << 1 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$11 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$11 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::i#2 main::i#1 ]
|
|
Statement [32] main::$12 = main::$11 + main::i#2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$12 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$12 ] { } ) always clobbers reg byte a
|
|
Statement [33] main::$13 = main::$12 << 1 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$13 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$13 ] { } ) always clobbers reg byte a
|
|
Statement [34] main::$14 = main::$13 + main::i#2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$14 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$14 ] { } ) always clobbers reg byte a
|
|
Statement [35] main::$10 = main::$14 << 1 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$10 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$10 ] { } ) always clobbers reg byte a
|
|
Statement [36] PROCESSING[main::$10] = memcpy(*(&$0), struct ProcessingSprite, SIZEOF_STRUCT_PROCESSINGSPRITE) [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Removing always clobbered register reg byte x as potential for zp[1]:8 [ main::i#2 main::i#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:8 [ main::i#2 main::i#1 ]
|
|
Statement [38] if(main::i#1!=NUM_PROCESSING-1+1) goto main::@3 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#1 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#1 ] { } ) always clobbers reg byte a
|
|
Statement [52] *(SCREEN+$3e7) = '.' [ ] ( main:7 [ ] { } ) always clobbers reg byte a
|
|
Statement [57] *main::dst#2 = *main::src#2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [62] processChars::$13 = processChars::i#10 << 1 [ processChars::i#10 processChars::numActive#10 processChars::$13 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:9 [ processChars::i#10 processChars::i#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
Statement [63] processChars::$87 = processChars::$13 + processChars::i#10 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$87 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$87 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:73 [ processChars::$13 ]
|
|
Statement [64] processChars::$88 = processChars::$87 << 1 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$88 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$88 ] { } ) always clobbers reg byte a
|
|
Statement [65] processChars::$89 = processChars::$88 + processChars::i#10 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$89 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$89 ] { } ) always clobbers reg byte a
|
|
Statement [66] processChars::$28 = processChars::$89 << 1 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$28 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$28 ] { } ) always clobbers reg byte a
|
|
Statement [67] processChars::processing#0 = PROCESSING + processChars::$28 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 ] { } ) always clobbers reg byte a
|
|
Statement [68] processChars::bitmask#0 = 1 << ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID] [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:9 [ processChars::i#10 processChars::i#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:73 [ processChars::$13 ]
|
|
Statement [69] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]==STATUS_FREE) goto processChars::@2 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp[1]:80 [ processChars::bitmask#0 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:80 [ processChars::bitmask#0 ]
|
|
Statement [70] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]!=STATUS_NEW) goto processChars::@3 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [71] *(((byte**)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR]) = ' ' [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Removing always clobbered register reg byte x as potential for zp[1]:9 [ processChars::i#10 processChars::i#1 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:73 [ processChars::$13 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:80 [ processChars::bitmask#0 ]
|
|
Statement [72] *SPRITES_ENABLE = *SPRITES_ENABLE | processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a
|
|
Statement [73] SPRITES_COLOR[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_COL] [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [74] (SCREEN+OFFSET_SPRITE_PTRS)[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_PTR] [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [75] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_PROCESSING [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [76] processChars::xpos#0 = *((word*)processChars::processing#0) >> 4 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [79] processChars::$10 = $ff ^ processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$10 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$10 ] { } ) always clobbers reg byte a
|
|
Statement [80] *SPRITES_XMSB = *SPRITES_XMSB & processChars::$10 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [81] SPRITES_XPOS[processChars::$13] = (byte)processChars::xpos#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [82] processChars::$12 = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] >> 4 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$12 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$12 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [83] processChars::ypos#0 = (byte)processChars::$12 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a
|
|
Statement [84] SPRITES_YPOS[processChars::$13] = processChars::ypos#0 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:87 [ processChars::ypos#0 ]
|
|
Statement [85] if(*((word*)processChars::processing#0)<XPOS_LEFTMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp[1]:87 [ processChars::ypos#0 ]
|
|
Statement [86] if(*((word*)processChars::processing#0)>XPOS_RIGHTMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [87] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]<YPOS_TOPMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [88] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]>YPOS_BOTTOMMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [89] processChars::$21 = processChars::xpos#0 >> 3 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$21 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$21 ] { } ) always clobbers reg byte a
|
|
Statement [90] processChars::$73 = (byte)processChars::$21 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$73 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$73 ] { } ) always clobbers reg byte a
|
|
Statement [92] processChars::$29 = processChars::xchar#0 << 1 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$29 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$29 ] { } ) always clobbers reg byte a
|
|
Statement [93] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] + VXSIN[processChars::$29] [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [94] *((word*)processChars::processing#0) = *((word*)processChars::processing#0) + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [95] processChars::$79 = processChars::ypos#0 >> 3 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$79 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$79 ] { } ) always clobbers reg byte a
|
|
Statement [97] processChars::$30 = processChars::ychar#0 << 1 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$30 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$30 ] { } ) always clobbers reg byte a
|
|
Statement [98] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] + VYSIN[processChars::$30] [ processChars::i#10 processChars::numActive#10 processChars::processing#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [99] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] [ processChars::i#10 processChars::numActive#10 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [103] if(processChars::i#1!=NUM_PROCESSING-1+1) goto processChars::@1 [ processChars::i#1 processChars::numActive#3 ] ( processChars:11 [ processChars::i#1 processChars::numActive#3 ] { } ) always clobbers reg byte a
|
|
Statement [105] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_FREE [ processChars::i#10 processChars::numActive#10 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [106] processChars::$25 = $ff ^ processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$25 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$25 ] { } ) always clobbers reg byte a
|
|
Statement [107] *SPRITES_ENABLE = *SPRITES_ENABLE & processChars::$25 [ processChars::i#10 processChars::numActive#10 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 ] { } ) always clobbers reg byte a
|
|
Statement [108] *SPRITES_XMSB = *SPRITES_XMSB | processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [109] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c [ init_angle_screen::screen_bottomline#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen_bottomline#0 ] { } ) always clobbers reg byte a
|
|
Statement [110] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0 [ init_angle_screen::screen_bottomline#0 init_angle_screen::screen_topline#7 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_topline#7 ] { } ) always clobbers reg byte a
|
|
Statement [114] init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#6 - $28 [ init_angle_screen::y#5 init_angle_screen::screen_bottomline#6 init_angle_screen::screen_topline#1 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_bottomline#6 init_angle_screen::screen_topline#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
Statement [115] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
|
Statement [119] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
Statement [120] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [121] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
Statement [122] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [123] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::yw#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::yw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte y
|
|
Statement [124] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [125] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [127] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [128] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
|
Statement [129] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
|
Statement [131] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:114 [ init_angle_screen::ang_w#0 ]
|
|
Statement [132] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:114 [ init_angle_screen::ang_w#0 ]
|
|
Statement [133] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte y
|
|
Statement [134] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
|
Statement [135] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte y
|
|
Statement [136] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
|
Statement [137] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 ] { } ) always clobbers reg byte y
|
|
Statement [142] if(initSprites::sp#2<SPRITE_DATA+NUM_PROCESSING*$40) goto initSprites::@2 [ initSprites::sp#2 ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 initSprites::sp#2 ] { } ) always clobbers reg byte a
|
|
Statement [144] SPRITES_COLOR[initSprites::i#2] = LIGHT_BLUE [ initSprites::i#2 ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 initSprites::i#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:20 [ initSprites::i#2 initSprites::i#1 ]
|
|
Statement [147] *SPRITES_MC = 0 [ ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [148] *SPRITES_EXPAND_X = 0 [ ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [149] *SPRITES_EXPAND_Y = 0 [ ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [151] *initSprites::sp#2 = 0 [ initSprites::sp#2 ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 initSprites::sp#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [154] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [155] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [156] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [157] *VICII_CONTROL = *VICII_CONTROL & $7f [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [158] *RASTER = <RASTER_IRQ_TOP [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [159] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [160] *HARDWARE_IRQ = setupRasterIrq::irqRoutine#0 [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [163] getCharToProcess::screen_line#0 = (byte*)SCREEN_COPY#0 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [164] getCharToProcess::dist_line#0 = (byte*)SCREEN_DIST#0 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 getCharToProcess::dist_line#0 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 getCharToProcess::dist_line#0 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [167] if(getCharToProcess::screen_line#4[getCharToProcess::x#2]==' ') goto getCharToProcess::@11 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:26 [ getCharToProcess::x#2 getCharToProcess::x#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
Statement [168] getCharToProcess::dist#0 = getCharToProcess::dist_line#6[getCharToProcess::x#2] [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 getCharToProcess::dist#0 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 getCharToProcess::dist#0 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [175] getCharToProcess::screen_line#1 = getCharToProcess::screen_line#4 + $28 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::screen_line#1 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::screen_line#1 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:30 [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ]
|
|
Statement [176] getCharToProcess::dist_line#1 = getCharToProcess::dist_line#6 + $28 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::y#7 getCharToProcess::screen_line#1 getCharToProcess::dist_line#1 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::y#7 getCharToProcess::screen_line#1 getCharToProcess::dist_line#1 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [180] getCharToProcess::$11 = (word)getCharToProcess::return_y#1 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [181] getCharToProcess::$12 = getCharToProcess::$11 << 2 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 getCharToProcess::$12 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 getCharToProcess::$12 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [182] getCharToProcess::$13 = getCharToProcess::$12 + getCharToProcess::$11 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$13 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$13 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [183] getCharToProcess::$8 = getCharToProcess::$13 << 3 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$8 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$8 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [184] getCharToProcess::$9 = (byte*)SCREEN_COPY#0 + getCharToProcess::$8 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$9 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$9 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [185] getCharToProcess::$9[getCharToProcess::return_x#1] = ' ' [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [194] startProcessing::$28 = startProcessing::i#2 << 1 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$28 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$28 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:71 [ startProcessing::center_x#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:72 [ startProcessing::center_y#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:31 [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
|
|
Statement [195] startProcessing::$29 = startProcessing::$28 + startProcessing::i#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$29 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$29 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [196] startProcessing::$30 = startProcessing::$29 << 1 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$30 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$30 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [197] startProcessing::$31 = startProcessing::$30 + startProcessing::i#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$31 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$31 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [198] startProcessing::$21 = startProcessing::$31 << 1 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$21 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$21 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [199] if(((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21]!=STATUS_FREE) goto startProcessing::@3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [202] startProcessing::$23 = (word)startProcessing::center_y#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [203] startProcessing::$33 = startProcessing::$23 << 2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 startProcessing::$33 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 startProcessing::$33 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [204] startProcessing::$34 = startProcessing::$33 + startProcessing::$23 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$34 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$34 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [205] startProcessing::$0 = startProcessing::$34 << 3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [206] startProcessing::offset#0 = startProcessing::$0 + startProcessing::center_x#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [207] startProcessing::colPtr#0 = COLS + startProcessing::offset#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::colPtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::colPtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [208] startProcessing::spriteCol#0 = *startProcessing::colPtr#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::spriteCol#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::spriteCol#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:71 [ startProcessing::center_x#0 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:72 [ startProcessing::center_y#0 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
|
|
Statement [209] startProcessing::screenPtr#0 = SCREEN + startProcessing::offset#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:145 [ startProcessing::spriteCol#0 ]
|
|
Statement [210] startProcessing::$24 = (word)startProcessing::freeIdx#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$24 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$24 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [211] startProcessing::$4 = startProcessing::$24 << 6 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$4 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$4 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [212] startProcessing::spriteData#0 = SPRITE_DATA + startProcessing::$4 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [213] startProcessing::ch#0 = *startProcessing::screenPtr#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::ch#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::ch#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:145 [ startProcessing::spriteCol#0 ]
|
|
Statement [214] startProcessing::$25 = (word)startProcessing::ch#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$25 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$25 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [215] startProcessing::$6 = startProcessing::$25 << 3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$6 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$6 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [216] startProcessing::chargenData#0 = CHARGEN + startProcessing::$6 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [218] *PROCPORT = PROCPORT_RAM_CHARROM [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [220] *startProcessing::spriteData#2 = *startProcessing::chargenData#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::spriteData#2 startProcessing::i1#2 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::spriteData#2 startProcessing::i1#2 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp[1]:37 [ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:37 [ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
Statement [221] startProcessing::spriteData#1 = startProcessing::spriteData#2 + 3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::i1#2 startProcessing::spriteData#1 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::i1#2 startProcessing::spriteData#1 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [225] *PROCPORT = PROCPORT_RAM_IO [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [227] startProcessing::$26 = (word)startProcessing::center_x#0 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$26 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$26 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [228] startProcessing::$8 = startProcessing::$26 << 3 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$8 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$8 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [229] startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$9 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$9 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [230] startProcessing::spriteX#0 = startProcessing::$9 << 4 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [231] startProcessing::$27 = (word)startProcessing::center_y#0 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$27 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$27 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [232] startProcessing::$11 = startProcessing::$27 << 3 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$11 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$11 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [233] startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$12 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$12 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [234] startProcessing::spriteY#0 = startProcessing::$12 << 4 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [235] startProcessing::spritePtr#0 = (byte)SPRITE_DATA/$40 + startProcessing::freeIdx#2 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [236] startProcessing::$15 = startProcessing::freeIdx#2 << 3 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:173 [ startProcessing::spritePtr#0 ]
|
|
Statement [237] startProcessing::$36 = startProcessing::freeIdx#2 << 1 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$36 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$36 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:174 [ startProcessing::$15 ]
|
|
Statement [238] startProcessing::$37 = startProcessing::$36 + startProcessing::freeIdx#2 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$37 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$37 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [239] startProcessing::$38 = startProcessing::$37 << 1 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$38 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$38 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [240] startProcessing::$39 = startProcessing::$38 + startProcessing::freeIdx#2 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$39 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$39 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [241] startProcessing::$22 = startProcessing::$39 << 1 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [242] ((word*)PROCESSING)[startProcessing::$22] = startProcessing::spriteX#0 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:179 [ startProcessing::$22 ]
|
|
Statement [243] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y)[startProcessing::$22] = startProcessing::spriteY#0 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [244] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX)[startProcessing::$22] = (word)startProcessing::$15 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [245] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY)[startProcessing::$22] = $3c [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [246] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID)[startProcessing::$22] = startProcessing::freeIdx#2 [ startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [247] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR)[startProcessing::$22] = startProcessing::spritePtr#0 [ startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [248] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL)[startProcessing::$22] = startProcessing::spriteCol#0 [ startProcessing::screenPtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::screenPtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [249] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$22] = STATUS_NEW [ startProcessing::screenPtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::screenPtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [250] ((byte**)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)[startProcessing::$22] = startProcessing::screenPtr#0 [ ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [256] if(atan2_16::y#0>=0) goto atan2_16::@1 [ atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [257] atan2_16::$2 = - atan2_16::y#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::$2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::$2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [259] if(atan2_16::x#0>=0) goto atan2_16::@4 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [260] atan2_16::$7 = - atan2_16::x#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::$7 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::$7 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [263] if(atan2_16::yi#3!=0) goto atan2_16::@11 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:42 [ atan2_16::i#2 atan2_16::i#1 ]
|
|
Statement [265] atan2_16::angle#1 = atan2_16::angle#6 >> 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::angle#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::angle#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [266] if(atan2_16::x#0>=0) goto atan2_16::@7 [ atan2_16::y#0 atan2_16::angle#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::y#0 atan2_16::angle#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [267] atan2_16::angle#4 = $8000 - atan2_16::angle#1 [ atan2_16::y#0 atan2_16::angle#4 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::y#0 atan2_16::angle#4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [269] if(atan2_16::y#0>=0) goto atan2_16::@8 [ atan2_16::angle#11 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::angle#11 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [270] atan2_16::angle#5 = - atan2_16::angle#11 [ atan2_16::angle#5 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::angle#5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [274] atan2_16::xd#10 = atan2_16::xi#3 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:47 [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
|
Statement [275] atan2_16::yd#10 = atan2_16::yi#3 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 atan2_16::yd#10 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 atan2_16::yd#10 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [279] atan2_16::xd#2 = atan2_16::xd#3 >> 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#3 atan2_16::xd#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#3 atan2_16::xd#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [280] atan2_16::yd#2 = atan2_16::yd#3 >> 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#2 atan2_16::yd#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#2 atan2_16::yd#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [282] if(atan2_16::yi#3>=0) goto atan2_16::@18 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#5 atan2_16::xd#5 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#5 atan2_16::xd#5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [283] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [284] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [285] atan2_16::$23 = atan2_16::i#2 << 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 atan2_16::$23 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 atan2_16::$23 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [286] atan2_16::angle#3 = atan2_16::angle#12 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23] [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::xi#2 atan2_16::yi#2 atan2_16::angle#3 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::xi#2 atan2_16::yi#2 atan2_16::angle#3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [290] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [291] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [292] atan2_16::$22 = atan2_16::i#2 << 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 atan2_16::$22 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 atan2_16::$22 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [293] atan2_16::angle#2 = atan2_16::angle#12 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22] [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::yi#1 atan2_16::angle#2 atan2_16::xi#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::yi#1 atan2_16::angle#2 atan2_16::xi#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [294] atan2_16::xd#1 = atan2_16::xd#3 >> 2 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::yd#3 atan2_16::xd#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::yd#3 atan2_16::xd#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [295] atan2_16::yd#1 = atan2_16::yd#3 >> 2 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::xd#1 atan2_16::yd#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::xd#1 atan2_16::yd#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [297] atan2_16::xi#13 = atan2_16::x#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::xi#13 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::xi#13 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [298] atan2_16::yi#16 = atan2_16::y#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#16 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#16 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [3] SCREEN_COPY#0 = (void*)malloc::mem#0 [ SCREEN_COPY#0 heap_head#0 ] ( [ SCREEN_COPY#0 heap_head#0 ] { { heap_head#0 = heap_head#6 } } ) always clobbers reg byte a
|
|
Statement [5] SCREEN_DIST#0 = (void*)malloc::mem#0 [ SCREEN_COPY#0 SCREEN_DIST#0 ] ( [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [12] *RASTER = RASTER_IRQ_TOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [13] *HARDWARE_IRQ = &irqTop [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [14] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [15] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [17] *RASTER = RASTER_IRQ_MIDDLE [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [18] *HARDWARE_IRQ = &irqBottom [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [19] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [20] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [22] malloc::mem#0 = heap_head#6 - $3e8 [ malloc::mem#0 ] ( malloc:2 [ malloc::mem#0 ] { } malloc:4 [ SCREEN_COPY#0 malloc::mem#0 ] { { heap_head#0 = heap_head#6 } } ) always clobbers reg byte a
|
|
Statement [23] heap_head#0 = malloc::mem#0 [ malloc::mem#0 heap_head#0 ] ( malloc:2 [ malloc::mem#0 heap_head#0 ] { } malloc:4 [ SCREEN_COPY#0 malloc::mem#0 heap_head#0 ] { { heap_head#0 = heap_head#6 } } ) always clobbers reg byte a
|
|
Statement [25] init_angle_screen::screen#0 = (byte*)SCREEN_DIST#0 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen#0 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen#0 ] { } ) always clobbers reg byte a
|
|
Statement [27] main::dst#0 = (byte*)SCREEN_COPY#0 [ SCREEN_COPY#0 SCREEN_DIST#0 main::dst#0 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::dst#0 ] { } ) always clobbers reg byte a
|
|
Statement [29] if(main::src#2!=SCREEN+$3e8) goto main::@2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] { } ) always clobbers reg byte a
|
|
Statement [31] main::$11 = main::i#2 << 1 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$11 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$11 ] { } ) always clobbers reg byte a
|
|
Statement [32] main::$12 = main::$11 + main::i#2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$12 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$12 ] { } ) always clobbers reg byte a
|
|
Statement [33] main::$13 = main::$12 << 1 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$13 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$13 ] { } ) always clobbers reg byte a
|
|
Statement [34] main::$14 = main::$13 + main::i#2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$14 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$14 ] { } ) always clobbers reg byte a
|
|
Statement [35] main::$10 = main::$14 << 1 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$10 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 main::$10 ] { } ) always clobbers reg byte a
|
|
Statement [36] PROCESSING[main::$10] = memcpy(*(&$0), struct ProcessingSprite, SIZEOF_STRUCT_PROCESSINGSPRITE) [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [38] if(main::i#1!=NUM_PROCESSING-1+1) goto main::@3 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#1 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::i#1 ] { } ) always clobbers reg byte a
|
|
Statement [52] *(SCREEN+$3e7) = '.' [ ] ( main:7 [ ] { } ) always clobbers reg byte a
|
|
Statement [57] *main::dst#2 = *main::src#2 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] ( main:7 [ SCREEN_COPY#0 SCREEN_DIST#0 main::src#2 main::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [62] processChars::$13 = processChars::i#10 << 1 [ processChars::i#10 processChars::numActive#10 processChars::$13 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 ] { } ) always clobbers reg byte a
|
|
Statement [63] processChars::$87 = processChars::$13 + processChars::i#10 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$87 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$87 ] { } ) always clobbers reg byte a
|
|
Statement [64] processChars::$88 = processChars::$87 << 1 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$88 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$88 ] { } ) always clobbers reg byte a
|
|
Statement [65] processChars::$89 = processChars::$88 + processChars::i#10 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$89 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$89 ] { } ) always clobbers reg byte a
|
|
Statement [66] processChars::$28 = processChars::$89 << 1 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$28 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::$28 ] { } ) always clobbers reg byte a
|
|
Statement [67] processChars::processing#0 = PROCESSING + processChars::$28 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 ] { } ) always clobbers reg byte a
|
|
Statement [68] processChars::bitmask#0 = 1 << ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID] [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [69] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]==STATUS_FREE) goto processChars::@2 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [70] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]!=STATUS_NEW) goto processChars::@3 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [71] *(((byte**)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR]) = ' ' [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [72] *SPRITES_ENABLE = *SPRITES_ENABLE | processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a
|
|
Statement [73] SPRITES_COLOR[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_COL] [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [74] (SCREEN+OFFSET_SPRITE_PTRS)[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_PTR] [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [75] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_PROCESSING [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [76] processChars::xpos#0 = *((word*)processChars::processing#0) >> 4 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [79] processChars::$10 = $ff ^ processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$10 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$10 ] { } ) always clobbers reg byte a
|
|
Statement [80] *SPRITES_XMSB = *SPRITES_XMSB & processChars::$10 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [81] SPRITES_XPOS[processChars::$13] = (byte)processChars::xpos#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [82] processChars::$12 = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] >> 4 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$12 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::$12 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [83] processChars::ypos#0 = (byte)processChars::$12 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a
|
|
Statement [84] SPRITES_YPOS[processChars::$13] = processChars::ypos#0 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [85] if(*((word*)processChars::processing#0)<XPOS_LEFTMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [86] if(*((word*)processChars::processing#0)>XPOS_RIGHTMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [87] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]<YPOS_TOPMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [88] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]>YPOS_BOTTOMMOST) goto processChars::@6 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [89] processChars::$21 = processChars::xpos#0 >> 3 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$21 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$21 ] { } ) always clobbers reg byte a
|
|
Statement [90] processChars::$73 = (byte)processChars::$21 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$73 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$73 ] { } ) always clobbers reg byte a
|
|
Statement [92] processChars::$29 = processChars::xchar#0 << 1 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$29 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 processChars::$29 ] { } ) always clobbers reg byte a
|
|
Statement [93] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] + VXSIN[processChars::$29] [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [94] *((word*)processChars::processing#0) = *((word*)processChars::processing#0) + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::ypos#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [95] processChars::$79 = processChars::ypos#0 >> 3 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$79 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$79 ] { } ) always clobbers reg byte a
|
|
Statement [97] processChars::$30 = processChars::ychar#0 << 1 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$30 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 processChars::$30 ] { } ) always clobbers reg byte a
|
|
Statement [98] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] + VYSIN[processChars::$30] [ processChars::i#10 processChars::numActive#10 processChars::processing#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::processing#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [99] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] [ processChars::i#10 processChars::numActive#10 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [103] if(processChars::i#1!=NUM_PROCESSING-1+1) goto processChars::@1 [ processChars::i#1 processChars::numActive#3 ] ( processChars:11 [ processChars::i#1 processChars::numActive#3 ] { } ) always clobbers reg byte a
|
|
Statement [105] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_FREE [ processChars::i#10 processChars::numActive#10 processChars::bitmask#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::bitmask#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [106] processChars::$25 = $ff ^ processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$25 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$25 ] { } ) always clobbers reg byte a
|
|
Statement [107] *SPRITES_ENABLE = *SPRITES_ENABLE & processChars::$25 [ processChars::i#10 processChars::numActive#10 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 ] { } ) always clobbers reg byte a
|
|
Statement [108] *SPRITES_XMSB = *SPRITES_XMSB | processChars::bitmask#0 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] ( processChars:11 [ processChars::i#10 processChars::numActive#10 processChars::$13 processChars::processing#0 processChars::bitmask#0 processChars::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [109] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c [ init_angle_screen::screen_bottomline#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen_bottomline#0 ] { } ) always clobbers reg byte a
|
|
Statement [110] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0 [ init_angle_screen::screen_bottomline#0 init_angle_screen::screen_topline#7 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_topline#7 ] { } ) always clobbers reg byte a
|
|
Statement [114] init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#6 - $28 [ init_angle_screen::y#5 init_angle_screen::screen_bottomline#6 init_angle_screen::screen_topline#1 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_bottomline#6 init_angle_screen::screen_topline#1 ] { } ) always clobbers reg byte a
|
|
Statement [115] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
|
Statement [119] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [120] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [121] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte y
|
|
Statement [122] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [123] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::yw#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::yw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte y
|
|
Statement [124] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [125] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [127] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [128] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
|
Statement [129] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
|
Statement [131] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [132] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
|
Statement [133] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte y
|
|
Statement [134] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
|
Statement [135] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte y
|
|
Statement [136] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
|
Statement [137] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 ] ( main:7::init_angle_screen:26 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 ] { } ) always clobbers reg byte y
|
|
Statement [142] if(initSprites::sp#2<SPRITE_DATA+NUM_PROCESSING*$40) goto initSprites::@2 [ initSprites::sp#2 ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 initSprites::sp#2 ] { } ) always clobbers reg byte a
|
|
Statement [144] SPRITES_COLOR[initSprites::i#2] = LIGHT_BLUE [ initSprites::i#2 ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 initSprites::i#2 ] { } ) always clobbers reg byte a
|
|
Statement [147] *SPRITES_MC = 0 [ ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [148] *SPRITES_EXPAND_X = 0 [ ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [149] *SPRITES_EXPAND_Y = 0 [ ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [151] *initSprites::sp#2 = 0 [ initSprites::sp#2 ] ( main:7::initSprites:40 [ SCREEN_COPY#0 SCREEN_DIST#0 initSprites::sp#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [154] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [155] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [156] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [157] *VICII_CONTROL = *VICII_CONTROL & $7f [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [158] *RASTER = <RASTER_IRQ_TOP [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [159] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [160] *HARDWARE_IRQ = setupRasterIrq::irqRoutine#0 [ ] ( main:7::setupRasterIrq:42 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { } ) always clobbers reg byte a
|
|
Statement [163] getCharToProcess::screen_line#0 = (byte*)SCREEN_COPY#0 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [164] getCharToProcess::dist_line#0 = (byte*)SCREEN_DIST#0 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 getCharToProcess::dist_line#0 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#0 getCharToProcess::dist_line#0 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [167] if(getCharToProcess::screen_line#4[getCharToProcess::x#2]==' ') goto getCharToProcess::@11 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [168] getCharToProcess::dist#0 = getCharToProcess::dist_line#6[getCharToProcess::x#2] [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 getCharToProcess::dist#0 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::screen_line#4 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::x#2 getCharToProcess::closest_dist#2 getCharToProcess::closest_x#7 getCharToProcess::closest_y#7 getCharToProcess::dist#0 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [175] getCharToProcess::screen_line#1 = getCharToProcess::screen_line#4 + $28 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::screen_line#1 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::dist_line#6 getCharToProcess::y#7 getCharToProcess::screen_line#1 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [176] getCharToProcess::dist_line#1 = getCharToProcess::dist_line#6 + $28 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::y#7 getCharToProcess::screen_line#1 getCharToProcess::dist_line#1 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::y#7 getCharToProcess::screen_line#1 getCharToProcess::dist_line#1 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [180] getCharToProcess::$11 = (word)getCharToProcess::return_y#1 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [181] getCharToProcess::$12 = getCharToProcess::$11 << 2 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 getCharToProcess::$12 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$11 getCharToProcess::$12 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [182] getCharToProcess::$13 = getCharToProcess::$12 + getCharToProcess::$11 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$13 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$13 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [183] getCharToProcess::$8 = getCharToProcess::$13 << 3 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$8 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$8 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [184] getCharToProcess::$9 = (byte*)SCREEN_COPY#0 + getCharToProcess::$8 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$9 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 getCharToProcess::$9 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [185] getCharToProcess::$9[getCharToProcess::return_x#1] = ' ' [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 ] ( main:7::getCharToProcess:44 [ SCREEN_COPY#0 SCREEN_DIST#0 getCharToProcess::return_x#1 getCharToProcess::return_y#1 getCharToProcess::return_dist#1 ] { { getCharToProcess::return_x#0 = getCharToProcess::return_x#1 } { getCharToProcess::return_y#0 = getCharToProcess::return_y#1 } { getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1 } } ) always clobbers reg byte a
|
|
Statement [194] startProcessing::$28 = startProcessing::i#2 << 1 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$28 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$28 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [195] startProcessing::$29 = startProcessing::$28 + startProcessing::i#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$29 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$29 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [196] startProcessing::$30 = startProcessing::$29 << 1 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$30 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$30 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [197] startProcessing::$31 = startProcessing::$30 + startProcessing::i#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$31 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$31 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [198] startProcessing::$21 = startProcessing::$31 << 1 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$21 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 startProcessing::$21 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [199] if(((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21]!=STATUS_FREE) goto startProcessing::@3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#6 startProcessing::i#2 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [202] startProcessing::$23 = (word)startProcessing::center_y#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [203] startProcessing::$33 = startProcessing::$23 << 2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 startProcessing::$33 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$23 startProcessing::$33 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [204] startProcessing::$34 = startProcessing::$33 + startProcessing::$23 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$34 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$34 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [205] startProcessing::$0 = startProcessing::$34 << 3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::$0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [206] startProcessing::offset#0 = startProcessing::$0 + startProcessing::center_x#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [207] startProcessing::colPtr#0 = COLS + startProcessing::offset#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::colPtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::colPtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [208] startProcessing::spriteCol#0 = *startProcessing::colPtr#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::spriteCol#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::offset#0 startProcessing::spriteCol#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [209] startProcessing::screenPtr#0 = SCREEN + startProcessing::offset#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [210] startProcessing::$24 = (word)startProcessing::freeIdx#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$24 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$24 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [211] startProcessing::$4 = startProcessing::$24 << 6 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$4 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$4 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [212] startProcessing::spriteData#0 = SPRITE_DATA + startProcessing::$4 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [213] startProcessing::ch#0 = *startProcessing::screenPtr#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::ch#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::ch#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [214] startProcessing::$25 = (word)startProcessing::ch#0 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$25 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$25 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [215] startProcessing::$6 = startProcessing::$25 << 3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$6 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::$6 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [216] startProcessing::chargenData#0 = CHARGEN + startProcessing::$6 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [218] *PROCPORT = PROCPORT_RAM_CHARROM [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteData#0 startProcessing::chargenData#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [220] *startProcessing::spriteData#2 = *startProcessing::chargenData#2 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::spriteData#2 startProcessing::i1#2 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::spriteData#2 startProcessing::i1#2 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [221] startProcessing::spriteData#1 = startProcessing::spriteData#2 + 3 [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::i1#2 startProcessing::spriteData#1 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::chargenData#2 startProcessing::i1#2 startProcessing::spriteData#1 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [225] *PROCPORT = PROCPORT_RAM_IO [ startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_x#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [227] startProcessing::$26 = (word)startProcessing::center_x#0 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$26 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$26 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [228] startProcessing::$8 = startProcessing::$26 << 3 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$8 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$8 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [229] startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$9 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$9 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [230] startProcessing::spriteX#0 = startProcessing::$9 << 4 [ startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::center_y#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [231] startProcessing::$27 = (word)startProcessing::center_y#0 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$27 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$27 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [232] startProcessing::$11 = startProcessing::$27 << 3 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$11 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$11 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [233] startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$12 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::$12 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [234] startProcessing::spriteY#0 = startProcessing::$12 << 4 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [235] startProcessing::spritePtr#0 = (byte)SPRITE_DATA/$40 + startProcessing::freeIdx#2 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [236] startProcessing::$15 = startProcessing::freeIdx#2 << 3 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [237] startProcessing::$36 = startProcessing::freeIdx#2 << 1 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$36 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$36 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [238] startProcessing::$37 = startProcessing::$36 + startProcessing::freeIdx#2 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$37 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$37 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [239] startProcessing::$38 = startProcessing::$37 << 1 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$38 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$38 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [240] startProcessing::$39 = startProcessing::$38 + startProcessing::freeIdx#2 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$39 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$39 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [241] startProcessing::$22 = startProcessing::$39 << 1 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteX#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [242] ((word*)PROCESSING)[startProcessing::$22] = startProcessing::spriteX#0 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spriteY#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [243] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y)[startProcessing::$22] = startProcessing::spriteY#0 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$15 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [244] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX)[startProcessing::$22] = (word)startProcessing::$15 [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [245] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY)[startProcessing::$22] = $3c [ startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::freeIdx#2 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [246] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID)[startProcessing::$22] = startProcessing::freeIdx#2 [ startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::spritePtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [247] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR)[startProcessing::$22] = startProcessing::spritePtr#0 [ startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::spriteCol#0 startProcessing::screenPtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [248] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL)[startProcessing::$22] = startProcessing::spriteCol#0 [ startProcessing::screenPtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::screenPtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [249] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$22] = STATUS_NEW [ startProcessing::screenPtr#0 startProcessing::$22 ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 startProcessing::screenPtr#0 startProcessing::$22 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [250] ((byte**)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)[startProcessing::$22] = startProcessing::screenPtr#0 [ ] ( main:7::startProcessing:56 [ SCREEN_COPY#0 SCREEN_DIST#0 ] { { startProcessing::center_x#0 = main::center_x#0 } { startProcessing::center_y#0 = main::center_y#0 } } ) always clobbers reg byte a
|
|
Statement [256] if(atan2_16::y#0>=0) goto atan2_16::@1 [ atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [257] atan2_16::$2 = - atan2_16::y#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::$2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::$2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [259] if(atan2_16::x#0>=0) goto atan2_16::@4 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [260] atan2_16::$7 = - atan2_16::x#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::$7 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::$7 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [263] if(atan2_16::yi#3!=0) goto atan2_16::@11 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [265] atan2_16::angle#1 = atan2_16::angle#6 >> 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::angle#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::angle#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [266] if(atan2_16::x#0>=0) goto atan2_16::@7 [ atan2_16::y#0 atan2_16::angle#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::y#0 atan2_16::angle#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [267] atan2_16::angle#4 = $8000 - atan2_16::angle#1 [ atan2_16::y#0 atan2_16::angle#4 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::y#0 atan2_16::angle#4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [269] if(atan2_16::y#0>=0) goto atan2_16::@8 [ atan2_16::angle#11 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::angle#11 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [270] atan2_16::angle#5 = - atan2_16::angle#11 [ atan2_16::angle#5 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::angle#5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [274] atan2_16::xd#10 = atan2_16::xi#3 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [275] atan2_16::yd#10 = atan2_16::yi#3 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 atan2_16::yd#10 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#5 atan2_16::xd#10 atan2_16::yd#10 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [279] atan2_16::xd#2 = atan2_16::xd#3 >> 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#3 atan2_16::xd#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#3 atan2_16::xd#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [280] atan2_16::yd#2 = atan2_16::yd#3 >> 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#2 atan2_16::yd#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#2 atan2_16::yd#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [282] if(atan2_16::yi#3>=0) goto atan2_16::@18 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#5 atan2_16::xd#5 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::yd#5 atan2_16::xd#5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [283] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [284] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [285] atan2_16::$23 = atan2_16::i#2 << 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 atan2_16::$23 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::xi#2 atan2_16::yi#2 atan2_16::$23 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [286] atan2_16::angle#3 = atan2_16::angle#12 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23] [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::xi#2 atan2_16::yi#2 atan2_16::angle#3 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::xi#2 atan2_16::yi#2 atan2_16::angle#3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [290] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::xd#5 atan2_16::xi#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [291] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [292] atan2_16::$22 = atan2_16::i#2 << 1 [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 atan2_16::$22 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::angle#12 atan2_16::yi#1 atan2_16::xi#1 atan2_16::$22 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [293] atan2_16::angle#2 = atan2_16::angle#12 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22] [ atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::yi#1 atan2_16::angle#2 atan2_16::xi#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::i#2 atan2_16::yi#1 atan2_16::angle#2 atan2_16::xi#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [294] atan2_16::xd#1 = atan2_16::xd#3 >> 2 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::yd#3 atan2_16::xd#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::yd#3 atan2_16::xd#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [295] atan2_16::yd#1 = atan2_16::yd#3 >> 2 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::xd#1 atan2_16::yd#1 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#3 atan2_16::xi#3 atan2_16::i#2 atan2_16::angle#12 atan2_16::shift#2 atan2_16::xd#1 atan2_16::yd#1 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [297] atan2_16::xi#13 = atan2_16::x#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::xi#13 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::xi#13 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Statement [298] atan2_16::yi#16 = atan2_16::y#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#16 ] ( main:7::init_angle_screen:26::atan2_16:126 [ SCREEN_COPY#0 SCREEN_DIST#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#16 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
|
Potential registers zp[2]:2 [ heap_head#6 heap_head#0 ] : zp[2]:2 ,
|
|
Potential registers zp[2]:4 [ main::src#2 main::src#1 ] : zp[2]:4 ,
|
|
Potential registers zp[2]:6 [ main::dst#2 main::dst#0 main::dst#1 ] : zp[2]:6 ,
|
|
Potential registers zp[1]:8 [ main::i#2 main::i#1 ] : zp[1]:8 ,
|
|
Potential registers zp[1]:9 [ processChars::i#10 processChars::i#1 ] : zp[1]:9 ,
|
|
Potential registers zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ] : zp[1]:10 ,
|
|
Potential registers zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ] : zp[1]:11 , reg byte x ,
|
|
Potential registers zp[2]:12 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] : zp[2]:12 ,
|
|
Potential registers zp[2]:14 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] : zp[2]:14 ,
|
|
Potential registers zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ] : zp[1]:16 , reg byte x ,
|
|
Potential registers zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] : zp[1]:17 , reg byte x ,
|
|
Potential registers zp[2]:18 [ initSprites::sp#2 initSprites::sp#1 ] : zp[2]:18 ,
|
|
Potential registers zp[1]:20 [ initSprites::i#2 initSprites::i#1 ] : zp[1]:20 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:21 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 ] : zp[2]:21 ,
|
|
Potential registers zp[2]:23 [ getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ] : zp[2]:23 ,
|
|
Potential registers zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ] : zp[1]:25 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:26 [ getCharToProcess::x#2 getCharToProcess::x#1 ] : zp[1]:26 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ] : zp[1]:27 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ] : zp[1]:28 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ] : zp[1]:29 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:30 [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ] : zp[1]:30 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:31 [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ] : zp[1]:31 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ] : zp[1]:32 , reg byte x ,
|
|
Potential registers zp[2]:33 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 ] : zp[2]:33 ,
|
|
Potential registers zp[2]:35 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ] : zp[2]:35 ,
|
|
Potential registers zp[1]:37 [ startProcessing::i1#2 startProcessing::i1#1 ] : zp[1]:37 , reg byte x ,
|
|
Potential registers zp[2]:38 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] : zp[2]:38 ,
|
|
Potential registers zp[2]:40 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] : zp[2]:40 ,
|
|
Potential registers zp[1]:42 [ atan2_16::i#2 atan2_16::i#1 ] : zp[1]:42 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ] : zp[2]:43 ,
|
|
Potential registers zp[2]:45 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] : zp[2]:45 ,
|
|
Potential registers zp[1]:47 [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ] : zp[1]:47 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:48 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] : zp[2]:48 ,
|
|
Potential registers zp[2]:50 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] : zp[2]:50 ,
|
|
Potential registers zp[2]:52 [ SCREEN_COPY#0 ] : zp[2]:52 ,
|
|
Potential registers zp[2]:54 [ SCREEN_DIST#0 ] : zp[2]:54 ,
|
|
Potential registers zp[2]:56 [ malloc::mem#0 ] : zp[2]:56 ,
|
|
Potential registers zp[2]:58 [ init_angle_screen::screen#0 ] : zp[2]:58 ,
|
|
Potential registers zp[1]:60 [ main::$11 ] : zp[1]:60 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:61 [ main::$12 ] : zp[1]:61 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:62 [ main::$13 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:63 [ main::$14 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:64 [ main::$10 ] : zp[1]:64 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:65 [ getCharToProcess::return_x#0 ] : zp[1]:65 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:66 [ getCharToProcess::return_y#0 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:67 [ getCharToProcess::return_dist#0 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:68 [ main::center_x#0 ] : zp[1]:68 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:69 [ main::center_y#0 ] : zp[1]:69 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:70 [ main::center_dist#0 ] : zp[1]:70 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:71 [ startProcessing::center_x#0 ] : zp[1]:71 , reg byte x ,
|
|
Potential registers zp[1]:72 [ startProcessing::center_y#0 ] : zp[1]:72 , reg byte x ,
|
|
Potential registers zp[1]:73 [ processChars::$13 ] : zp[1]:73 ,
|
|
Potential registers zp[1]:74 [ processChars::$87 ] : zp[1]:74 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:75 [ processChars::$88 ] : zp[1]:75 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:76 [ processChars::$89 ] : zp[1]:76 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:77 [ processChars::$28 ] : zp[1]:77 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:78 [ processChars::processing#0 ] : zp[2]:78 ,
|
|
Potential registers zp[1]:80 [ processChars::bitmask#0 ] : zp[1]:80 ,
|
|
Potential registers zp[2]:81 [ processChars::xpos#0 ] : zp[2]:81 ,
|
|
Potential registers zp[1]:83 [ processChars::$9 ] : zp[1]:83 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:84 [ processChars::$10 ] : zp[1]:84 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:85 [ processChars::$12 ] : zp[2]:85 ,
|
|
Potential registers zp[1]:87 [ processChars::ypos#0 ] : zp[1]:87 , reg byte x ,
|
|
Potential registers zp[2]:88 [ processChars::$21 ] : zp[2]:88 ,
|
|
Potential registers zp[1]:90 [ processChars::$73 ] : zp[1]:90 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:91 [ processChars::xchar#0 ] : zp[1]:91 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:92 [ processChars::$29 ] : zp[1]:92 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:93 [ processChars::$79 ] : zp[1]:93 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:94 [ processChars::ychar#0 ] : zp[1]:94 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:95 [ processChars::$30 ] : zp[1]:95 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:96 [ processChars::$25 ] : zp[1]:96 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:97 [ init_angle_screen::$3 ] : zp[1]:97 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:98 [ init_angle_screen::$4 ] : zp[1]:98 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:99 [ init_angle_screen::xw#0 ] : zp[2]:99 ,
|
|
Potential registers zp[1]:101 [ init_angle_screen::$5 ] : zp[1]:101 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:102 [ init_angle_screen::yw#0 ] : zp[2]:102 ,
|
|
Potential registers zp[2]:104 [ atan2_16::x#0 ] : zp[2]:104 ,
|
|
Potential registers zp[2]:106 [ atan2_16::y#0 ] : zp[2]:106 ,
|
|
Potential registers zp[2]:108 [ atan2_16::return#2 ] : zp[2]:108 ,
|
|
Potential registers zp[2]:110 [ init_angle_screen::angle_w#0 ] : zp[2]:110 ,
|
|
Potential registers zp[2]:112 [ init_angle_screen::$7 ] : zp[2]:112 ,
|
|
Potential registers zp[1]:114 [ init_angle_screen::ang_w#0 ] : zp[1]:114 , reg byte x ,
|
|
Potential registers zp[1]:115 [ init_angle_screen::$9 ] : zp[1]:115 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:116 [ init_angle_screen::$10 ] : zp[1]:116 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:117 [ init_angle_screen::$11 ] : zp[1]:117 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:118 [ getCharToProcess::$11 ] : zp[2]:118 ,
|
|
Potential registers zp[2]:120 [ getCharToProcess::$12 ] : zp[2]:120 ,
|
|
Potential registers zp[2]:122 [ getCharToProcess::$13 ] : zp[2]:122 ,
|
|
Potential registers zp[2]:124 [ getCharToProcess::$8 ] : zp[2]:124 ,
|
|
Potential registers zp[2]:126 [ getCharToProcess::$9 ] : zp[2]:126 ,
|
|
Potential registers zp[1]:128 [ startProcessing::$28 ] : zp[1]:128 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:129 [ startProcessing::$29 ] : zp[1]:129 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:130 [ startProcessing::$30 ] : zp[1]:130 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:131 [ startProcessing::$31 ] : zp[1]:131 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:132 [ startProcessing::$21 ] : zp[1]:132 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:133 [ startProcessing::$23 ] : zp[2]:133 ,
|
|
Potential registers zp[2]:135 [ startProcessing::$33 ] : zp[2]:135 ,
|
|
Potential registers zp[2]:137 [ startProcessing::$34 ] : zp[2]:137 ,
|
|
Potential registers zp[2]:139 [ startProcessing::$0 ] : zp[2]:139 ,
|
|
Potential registers zp[2]:141 [ startProcessing::offset#0 ] : zp[2]:141 ,
|
|
Potential registers zp[2]:143 [ startProcessing::colPtr#0 ] : zp[2]:143 ,
|
|
Potential registers zp[1]:145 [ startProcessing::spriteCol#0 ] : zp[1]:145 , reg byte x ,
|
|
Potential registers zp[2]:146 [ startProcessing::screenPtr#0 ] : zp[2]:146 ,
|
|
Potential registers zp[2]:148 [ startProcessing::$24 ] : zp[2]:148 ,
|
|
Potential registers zp[2]:150 [ startProcessing::$4 ] : zp[2]:150 ,
|
|
Potential registers zp[1]:152 [ startProcessing::ch#0 ] : zp[1]:152 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:153 [ startProcessing::$25 ] : zp[2]:153 ,
|
|
Potential registers zp[2]:155 [ startProcessing::$6 ] : zp[2]:155 ,
|
|
Potential registers zp[2]:157 [ startProcessing::$26 ] : zp[2]:157 ,
|
|
Potential registers zp[2]:159 [ startProcessing::$8 ] : zp[2]:159 ,
|
|
Potential registers zp[2]:161 [ startProcessing::$9 ] : zp[2]:161 ,
|
|
Potential registers zp[2]:163 [ startProcessing::spriteX#0 ] : zp[2]:163 ,
|
|
Potential registers zp[2]:165 [ startProcessing::$27 ] : zp[2]:165 ,
|
|
Potential registers zp[2]:167 [ startProcessing::$11 ] : zp[2]:167 ,
|
|
Potential registers zp[2]:169 [ startProcessing::$12 ] : zp[2]:169 ,
|
|
Potential registers zp[2]:171 [ startProcessing::spriteY#0 ] : zp[2]:171 ,
|
|
Potential registers zp[1]:173 [ startProcessing::spritePtr#0 ] : zp[1]:173 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:174 [ startProcessing::$15 ] : zp[1]:174 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:175 [ startProcessing::$36 ] : zp[1]:175 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:176 [ startProcessing::$37 ] : zp[1]:176 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:177 [ startProcessing::$38 ] : zp[1]:177 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:178 [ startProcessing::$39 ] : zp[1]:178 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:179 [ startProcessing::$22 ] : zp[1]:179 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:180 [ atan2_16::$23 ] : zp[1]:180 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:181 [ atan2_16::$22 ] : zp[1]:181 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
REGISTER UPLIFT SCOPES
|
|
Uplift Scope [atan2_16] 2,866,666,670.58: zp[1]:47 [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ] 2,060,000,008: zp[2]:48 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] 1,733,333,338.67: zp[2]:50 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] 752,480,960.9: zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ] 269,093,340.68: zp[2]:38 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] 227,373,342.67: zp[2]:40 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] 200,000,002: zp[1]:180 [ atan2_16::$23 ] 200,000,002: zp[1]:181 [ atan2_16::$22 ] 170,833,335.04: zp[1]:42 [ atan2_16::i#2 atan2_16::i#1 ] 820,008.5: zp[2]:45 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] 20,002: zp[2]:108 [ atan2_16::return#2 ] 10,789.61: zp[2]:104 [ atan2_16::x#0 ] 10,250.12: zp[2]:106 [ atan2_16::y#0 ]
|
|
Uplift Scope [getCharToProcess] 4,977,844.03: zp[1]:30 [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ] 3,425,007.25: zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ] 2,932,466.39: zp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ] 1,944,509.61: zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ] 1,555,557.11: zp[1]:26 [ getCharToProcess::x#2 getCharToProcess::x#1 ] 180,001.2: zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ] 137,788.5: zp[2]:23 [ getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ] 133,386.32: zp[2]:21 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 ] 2,002: zp[2]:120 [ getCharToProcess::$12 ] 2,002: zp[2]:122 [ getCharToProcess::$13 ] 2,002: zp[2]:124 [ getCharToProcess::$8 ] 2,002: zp[2]:126 [ getCharToProcess::$9 ] 1,501.5: zp[2]:118 [ getCharToProcess::$11 ] 67.33: zp[1]:65 [ getCharToProcess::return_x#0 ] 67.33: zp[1]:66 [ getCharToProcess::return_y#0 ] 67.33: zp[1]:67 [ getCharToProcess::return_dist#0 ]
|
|
Uplift Scope [startProcessing] 2,585,538.74: zp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ] 2,000,002: zp[1]:128 [ startProcessing::$28 ] 2,000,002: zp[1]:129 [ startProcessing::$29 ] 2,000,002: zp[1]:130 [ startProcessing::$30 ] 2,000,002: zp[1]:131 [ startProcessing::$31 ] 2,000,002: zp[1]:132 [ startProcessing::$21 ] 220,002.2: zp[1]:31 [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ] 200,788.5: zp[2]:35 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ] 200,002: zp[1]:37 [ startProcessing::i1#2 startProcessing::i1#1 ] 167,669.33: zp[2]:33 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 ] 2,002: zp[2]:135 [ startProcessing::$33 ] 2,002: zp[2]:137 [ startProcessing::$34 ] 2,002: zp[2]:139 [ startProcessing::$0 ] 2,002: zp[2]:143 [ startProcessing::colPtr#0 ] 2,002: zp[2]:148 [ startProcessing::$24 ] 2,002: zp[2]:150 [ startProcessing::$4 ] 2,002: zp[2]:153 [ startProcessing::$25 ] 2,002: zp[2]:155 [ startProcessing::$6 ] 2,002: zp[2]:157 [ startProcessing::$26 ] 2,002: zp[2]:159 [ startProcessing::$8 ] 2,002: zp[2]:161 [ startProcessing::$9 ] 2,002: zp[2]:165 [ startProcessing::$27 ] 2,002: zp[2]:167 [ startProcessing::$11 ] 2,002: zp[2]:169 [ startProcessing::$12 ] 2,002: zp[1]:175 [ startProcessing::$36 ] 2,002: zp[1]:176 [ startProcessing::$37 ] 2,002: zp[1]:177 [ startProcessing::$38 ] 2,002: zp[1]:178 [ startProcessing::$39 ] 1,501.5: zp[2]:133 [ startProcessing::$23 ] 1,112.22: zp[1]:179 [ startProcessing::$22 ] 1,001: zp[2]:141 [ startProcessing::offset#0 ] 1,001: zp[1]:152 [ startProcessing::ch#0 ] 222.44: zp[2]:171 [ startProcessing::spriteY#0 ] 166.83: zp[2]:163 [ startProcessing::spriteX#0 ] 166.83: zp[1]:173 [ startProcessing::spritePtr#0 ] 125.12: zp[1]:174 [ startProcessing::$15 ] 73.24: zp[2]:146 [ startProcessing::screenPtr#0 ] 50.05: zp[1]:145 [ startProcessing::spriteCol#0 ] 26.24: zp[1]:71 [ startProcessing::center_x#0 ] 2.24: zp[1]:72 [ startProcessing::center_y#0 ]
|
|
Uplift Scope [init_angle_screen] 21,820.36: zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 20,002: zp[1]:97 [ init_angle_screen::$3 ] 20,002: zp[1]:98 [ init_angle_screen::$4 ] 20,002: zp[1]:101 [ init_angle_screen::$5 ] 20,002: zp[2]:110 [ init_angle_screen::angle_w#0 ] 20,002: zp[2]:112 [ init_angle_screen::$7 ] 20,002: zp[1]:115 [ init_angle_screen::$9 ] 20,002: zp[1]:116 [ init_angle_screen::$10 ] 20,002: zp[1]:117 [ init_angle_screen::$11 ] 12,858.43: zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 8,334.17: zp[1]:114 [ init_angle_screen::ang_w#0 ] 5,000.5: zp[2]:102 [ init_angle_screen::yw#0 ] 3,333.67: zp[2]:99 [ init_angle_screen::xw#0 ] 1,963.15: zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 1,703.03: zp[2]:14 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] 1,623.54: zp[2]:12 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] 112: zp[2]:58 [ init_angle_screen::screen#0 ]
|
|
Uplift Scope [initSprites] 3,336.67: zp[2]:18 [ initSprites::sp#2 initSprites::sp#1 ] 3,003: zp[1]:20 [ initSprites::i#2 initSprites::i#1 ]
|
|
Uplift Scope [processChars] 310.05: zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ] 202: zp[1]:74 [ processChars::$87 ] 202: zp[1]:75 [ processChars::$88 ] 202: zp[1]:76 [ processChars::$89 ] 202: zp[1]:77 [ processChars::$28 ] 202: zp[1]:83 [ processChars::$9 ] 202: zp[1]:84 [ processChars::$10 ] 202: zp[1]:90 [ processChars::$73 ] 202: zp[1]:91 [ processChars::xchar#0 ] 202: zp[1]:92 [ processChars::$29 ] 202: zp[1]:93 [ processChars::$79 ] 202: zp[1]:94 [ processChars::ychar#0 ] 202: zp[1]:95 [ processChars::$30 ] 202: zp[1]:96 [ processChars::$25 ] 162.72: zp[1]:9 [ processChars::i#10 processChars::i#1 ] 101: zp[2]:85 [ processChars::$12 ] 101: zp[2]:88 [ processChars::$21 ] 25.25: zp[1]:87 [ processChars::ypos#0 ] 21.96: zp[1]:80 [ processChars::bitmask#0 ] 21.64: zp[2]:81 [ processChars::xpos#0 ] 17.57: zp[1]:73 [ processChars::$13 ] 3.06: zp[2]:78 [ processChars::processing#0 ]
|
|
Uplift Scope [main] 302.5: zp[2]:6 [ main::dst#2 main::dst#0 main::dst#1 ] 235.67: zp[2]:4 [ main::src#2 main::src#1 ] 223.64: zp[1]:8 [ main::i#2 main::i#1 ] 202: zp[1]:60 [ main::$11 ] 202: zp[1]:61 [ main::$12 ] 202: zp[1]:62 [ main::$13 ] 202: zp[1]:63 [ main::$14 ] 202: zp[1]:64 [ main::$10 ] 202: zp[1]:70 [ main::center_dist#0 ] 50.5: zp[1]:68 [ main::center_x#0 ] 50.5: zp[1]:69 [ main::center_y#0 ]
|
|
Uplift Scope [] 16.25: zp[2]:2 [ heap_head#6 heap_head#0 ] 0.03: zp[2]:54 [ SCREEN_DIST#0 ] 0.03: zp[2]:52 [ SCREEN_COPY#0 ]
|
|
Uplift Scope [malloc] 4.4: zp[2]:56 [ malloc::mem#0 ]
|
|
Uplift Scope [RADIX]
|
|
Uplift Scope [MOS6526_CIA]
|
|
Uplift Scope [MOS6569_VICII]
|
|
Uplift Scope [MOS6581_SID]
|
|
Uplift Scope [ProcessingChar]
|
|
Uplift Scope [ProcessingSprite]
|
|
Uplift Scope [ProcessingSprite::$0]
|
|
Uplift Scope [setupRasterIrq]
|
|
Uplift Scope [irqTop]
|
|
Uplift Scope [irqBottom]
|
|
Uplift Scope [__start]
|
|
|
|
Uplifting [atan2_16] best 1276648 combination reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ] zp[2]:48 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] zp[2]:50 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ] zp[2]:38 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] zp[2]:40 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] reg byte a [ atan2_16::$23 ] reg byte a [ atan2_16::$22 ] reg byte x [ atan2_16::i#2 atan2_16::i#1 ] zp[2]:45 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] zp[2]:108 [ atan2_16::return#2 ] zp[2]:104 [ atan2_16::x#0 ] zp[2]:106 [ atan2_16::y#0 ]
|
|
Limited combination testing to 100 combinations of 144 possible.
|
|
Uplifting [getCharToProcess] best 1263315 combination reg byte x [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ] zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ] zp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ] zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ] zp[1]:26 [ getCharToProcess::x#2 getCharToProcess::x#1 ] zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ] zp[2]:23 [ getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ] zp[2]:21 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 ] zp[2]:120 [ getCharToProcess::$12 ] zp[2]:122 [ getCharToProcess::$13 ] zp[2]:124 [ getCharToProcess::$8 ] zp[2]:126 [ getCharToProcess::$9 ] zp[2]:118 [ getCharToProcess::$11 ] zp[1]:65 [ getCharToProcess::return_x#0 ] zp[1]:66 [ getCharToProcess::return_y#0 ] zp[1]:67 [ getCharToProcess::return_dist#0 ]
|
|
Limited combination testing to 100 combinations of 46656 possible.
|
|
Uplifting [init_angle_screen] best 1261715 combination zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$5 ] zp[2]:110 [ init_angle_screen::angle_w#0 ] zp[2]:112 [ init_angle_screen::$7 ] zp[1]:115 [ init_angle_screen::$9 ] zp[1]:116 [ init_angle_screen::$10 ] zp[1]:117 [ init_angle_screen::$11 ] zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:114 [ init_angle_screen::ang_w#0 ] zp[2]:102 [ init_angle_screen::yw#0 ] zp[2]:99 [ init_angle_screen::xw#0 ] zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:14 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] zp[2]:12 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] zp[2]:58 [ init_angle_screen::screen#0 ]
|
|
Limited combination testing to 100 combinations of 65536 possible.
|
|
Uplifting [initSprites] best 1261595 combination zp[2]:18 [ initSprites::sp#2 initSprites::sp#1 ] reg byte x [ initSprites::i#2 initSprites::i#1 ]
|
|
Uplifting [processChars] best 1261355 combination zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ] reg byte a [ processChars::$87 ] reg byte a [ processChars::$88 ] reg byte a [ processChars::$89 ] reg byte a [ processChars::$28 ] zp[1]:83 [ processChars::$9 ] zp[1]:84 [ processChars::$10 ] zp[1]:90 [ processChars::$73 ] zp[1]:91 [ processChars::xchar#0 ] zp[1]:92 [ processChars::$29 ] zp[1]:93 [ processChars::$79 ] zp[1]:94 [ processChars::ychar#0 ] zp[1]:95 [ processChars::$30 ] zp[1]:96 [ processChars::$25 ] zp[1]:9 [ processChars::i#10 processChars::i#1 ] zp[2]:85 [ processChars::$12 ] zp[2]:88 [ processChars::$21 ] zp[1]:87 [ processChars::ypos#0 ] zp[1]:80 [ processChars::bitmask#0 ] zp[2]:81 [ processChars::xpos#0 ] zp[1]:73 [ processChars::$13 ] zp[2]:78 [ processChars::processing#0 ]
|
|
Limited combination testing to 100 combinations of 134217728 possible.
|
|
Uplifting [main] best 1261115 combination zp[2]:6 [ main::dst#2 main::dst#0 main::dst#1 ] zp[2]:4 [ main::src#2 main::src#1 ] zp[1]:8 [ main::i#2 main::i#1 ] reg byte a [ main::$11 ] reg byte a [ main::$12 ] reg byte a [ main::$13 ] reg byte a [ main::$14 ] zp[1]:64 [ main::$10 ] zp[1]:70 [ main::center_dist#0 ] zp[1]:68 [ main::center_x#0 ] zp[1]:69 [ main::center_y#0 ]
|
|
Limited combination testing to 100 combinations of 65536 possible.
|
|
Uplifting [] best 1261115 combination zp[2]:2 [ heap_head#6 heap_head#0 ] zp[2]:54 [ SCREEN_DIST#0 ] zp[2]:52 [ SCREEN_COPY#0 ]
|
|
Uplifting [malloc] best 1261115 combination zp[2]:56 [ malloc::mem#0 ]
|
|
Uplifting [RADIX] best 1261115 combination
|
|
Uplifting [MOS6526_CIA] best 1261115 combination
|
|
Uplifting [MOS6569_VICII] best 1261115 combination
|
|
Uplifting [MOS6581_SID] best 1261115 combination
|
|
Uplifting [ProcessingChar] best 1261115 combination
|
|
Uplifting [ProcessingSprite] best 1261115 combination
|
|
Uplifting [ProcessingSprite::$0] best 1261115 combination
|
|
Uplifting [setupRasterIrq] best 1261115 combination
|
|
Uplifting [irqTop] best 1261115 combination
|
|
Uplifting [irqBottom] best 1261115 combination
|
|
Uplifting [__start] best 1261115 combination
|
|
Attempting to uplift remaining variables inzp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ]
|
|
Uplifting [getCharToProcess] best 1261115 combination zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ]
|
|
Attempting to uplift remaining variables inzp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
Uplifting [getCharToProcess] best 1261115 combination zp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
Attempting to uplift remaining variables inzp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
|
|
Uplifting [startProcessing] best 1261115 combination zp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:128 [ startProcessing::$28 ]
|
|
Uplifting [startProcessing] best 1255115 combination reg byte a [ startProcessing::$28 ]
|
|
Attempting to uplift remaining variables inzp[1]:129 [ startProcessing::$29 ]
|
|
Uplifting [startProcessing] best 1249115 combination reg byte a [ startProcessing::$29 ]
|
|
Attempting to uplift remaining variables inzp[1]:130 [ startProcessing::$30 ]
|
|
Uplifting [startProcessing] best 1243115 combination reg byte a [ startProcessing::$30 ]
|
|
Attempting to uplift remaining variables inzp[1]:131 [ startProcessing::$31 ]
|
|
Uplifting [startProcessing] best 1237115 combination reg byte a [ startProcessing::$31 ]
|
|
Attempting to uplift remaining variables inzp[1]:132 [ startProcessing::$21 ]
|
|
Uplifting [startProcessing] best 1233115 combination reg byte a [ startProcessing::$21 ]
|
|
Attempting to uplift remaining variables inzp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
|
|
Uplifting [getCharToProcess] best 1233115 combination zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
|
|
Attempting to uplift remaining variables inzp[1]:26 [ getCharToProcess::x#2 getCharToProcess::x#1 ]
|
|
Uplifting [getCharToProcess] best 1215115 combination reg byte y [ getCharToProcess::x#2 getCharToProcess::x#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:31 [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
|
|
Uplifting [startProcessing] best 1214215 combination reg byte x [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
|
|
Attempting to uplift remaining variables inzp[1]:37 [ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
Uplifting [startProcessing] best 1213315 combination reg byte x [ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
|
|
Uplifting [getCharToProcess] best 1213315 combination zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
Uplifting [init_angle_screen] best 1213315 combination zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:115 [ init_angle_screen::$9 ]
|
|
Uplifting [init_angle_screen] best 1212715 combination reg byte a [ init_angle_screen::$9 ]
|
|
Attempting to uplift remaining variables inzp[1]:116 [ init_angle_screen::$10 ]
|
|
Uplifting [init_angle_screen] best 1212315 combination reg byte a [ init_angle_screen::$10 ]
|
|
Attempting to uplift remaining variables inzp[1]:117 [ init_angle_screen::$11 ]
|
|
Uplifting [init_angle_screen] best 1211715 combination reg byte a [ init_angle_screen::$11 ]
|
|
Attempting to uplift remaining variables inzp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
Uplifting [init_angle_screen] best 1211715 combination zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:114 [ init_angle_screen::ang_w#0 ]
|
|
Uplifting [init_angle_screen] best 1211715 combination zp[1]:114 [ init_angle_screen::ang_w#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:175 [ startProcessing::$36 ]
|
|
Uplifting [startProcessing] best 1211709 combination reg byte a [ startProcessing::$36 ]
|
|
Attempting to uplift remaining variables inzp[1]:176 [ startProcessing::$37 ]
|
|
Uplifting [startProcessing] best 1211703 combination reg byte a [ startProcessing::$37 ]
|
|
Attempting to uplift remaining variables inzp[1]:177 [ startProcessing::$38 ]
|
|
Uplifting [startProcessing] best 1211697 combination reg byte a [ startProcessing::$38 ]
|
|
Attempting to uplift remaining variables inzp[1]:178 [ startProcessing::$39 ]
|
|
Uplifting [startProcessing] best 1211691 combination reg byte a [ startProcessing::$39 ]
|
|
Attempting to uplift remaining variables inzp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
Uplifting [init_angle_screen] best 1211691 combination zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:179 [ startProcessing::$22 ]
|
|
Uplifting [startProcessing] best 1211663 combination reg byte x [ startProcessing::$22 ]
|
|
Attempting to uplift remaining variables inzp[1]:152 [ startProcessing::ch#0 ]
|
|
Uplifting [startProcessing] best 1211657 combination reg byte a [ startProcessing::ch#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
Uplifting [processChars] best 1211657 combination zp[1]:10 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:8 [ main::i#2 main::i#1 ]
|
|
Uplifting [main] best 1211657 combination zp[1]:8 [ main::i#2 main::i#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:64 [ main::$10 ]
|
|
Uplifting [main] best 1211617 combination reg byte a [ main::$10 ]
|
|
Attempting to uplift remaining variables inzp[1]:70 [ main::center_dist#0 ]
|
|
Uplifting [main] best 1211557 combination reg byte a [ main::center_dist#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:83 [ processChars::$9 ]
|
|
Uplifting [processChars] best 1211497 combination reg byte a [ processChars::$9 ]
|
|
Attempting to uplift remaining variables inzp[1]:84 [ processChars::$10 ]
|
|
Uplifting [processChars] best 1211437 combination reg byte a [ processChars::$10 ]
|
|
Attempting to uplift remaining variables inzp[1]:90 [ processChars::$73 ]
|
|
Uplifting [processChars] best 1211397 combination reg byte a [ processChars::$73 ]
|
|
Attempting to uplift remaining variables inzp[1]:91 [ processChars::xchar#0 ]
|
|
Uplifting [processChars] best 1211337 combination reg byte a [ processChars::xchar#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:92 [ processChars::$29 ]
|
|
Uplifting [processChars] best 1211297 combination reg byte a [ processChars::$29 ]
|
|
Attempting to uplift remaining variables inzp[1]:93 [ processChars::$79 ]
|
|
Uplifting [processChars] best 1211257 combination reg byte a [ processChars::$79 ]
|
|
Attempting to uplift remaining variables inzp[1]:94 [ processChars::ychar#0 ]
|
|
Uplifting [processChars] best 1211197 combination reg byte a [ processChars::ychar#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:95 [ processChars::$30 ]
|
|
Uplifting [processChars] best 1211157 combination reg byte a [ processChars::$30 ]
|
|
Attempting to uplift remaining variables inzp[1]:96 [ processChars::$25 ]
|
|
Uplifting [processChars] best 1211097 combination reg byte a [ processChars::$25 ]
|
|
Attempting to uplift remaining variables inzp[1]:173 [ startProcessing::spritePtr#0 ]
|
|
Uplifting [startProcessing] best 1211097 combination zp[1]:173 [ startProcessing::spritePtr#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:9 [ processChars::i#10 processChars::i#1 ]
|
|
Uplifting [processChars] best 1211097 combination zp[1]:9 [ processChars::i#10 processChars::i#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:174 [ startProcessing::$15 ]
|
|
Uplifting [startProcessing] best 1211095 combination reg byte y [ startProcessing::$15 ]
|
|
Attempting to uplift remaining variables inzp[1]:65 [ getCharToProcess::return_x#0 ]
|
|
Uplifting [getCharToProcess] best 1211035 combination reg byte y [ getCharToProcess::return_x#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:66 [ getCharToProcess::return_y#0 ]
|
|
Uplifting [getCharToProcess] best 1210975 combination reg byte a [ getCharToProcess::return_y#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:67 [ getCharToProcess::return_dist#0 ]
|
|
Uplifting [getCharToProcess] best 1210935 combination reg byte x [ getCharToProcess::return_dist#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:68 [ main::center_x#0 ]
|
|
Uplifting [main] best 1210875 combination reg byte y [ main::center_x#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:69 [ main::center_y#0 ]
|
|
Uplifting [main] best 1210875 combination zp[1]:69 [ main::center_y#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:145 [ startProcessing::spriteCol#0 ]
|
|
Uplifting [startProcessing] best 1210875 combination zp[1]:145 [ startProcessing::spriteCol#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:71 [ startProcessing::center_x#0 ]
|
|
Uplifting [startProcessing] best 1210875 combination zp[1]:71 [ startProcessing::center_x#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:87 [ processChars::ypos#0 ]
|
|
Uplifting [processChars] best 1210875 combination zp[1]:87 [ processChars::ypos#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:80 [ processChars::bitmask#0 ]
|
|
Uplifting [processChars] best 1210875 combination zp[1]:80 [ processChars::bitmask#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:73 [ processChars::$13 ]
|
|
Uplifting [processChars] best 1210875 combination zp[1]:73 [ processChars::$13 ]
|
|
Attempting to uplift remaining variables inzp[1]:72 [ startProcessing::center_y#0 ]
|
|
Uplifting [startProcessing] best 1210875 combination zp[1]:72 [ startProcessing::center_y#0 ]
|
|
Coalescing zero page register [ zp[2]:14 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] ] with [ zp[2]:58 [ init_angle_screen::screen#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:33 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 ] ] with [ zp[2]:155 [ startProcessing::$6 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:35 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ] ] with [ zp[2]:150 [ startProcessing::$4 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ] ] with [ zp[2]:45 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:69 [ main::center_y#0 ] ] with [ zp[1]:72 [ startProcessing::center_y#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:81 [ processChars::xpos#0 ] ] with [ zp[2]:88 [ processChars::$21 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:99 [ init_angle_screen::xw#0 ] ] with [ zp[2]:104 [ atan2_16::x#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:102 [ init_angle_screen::yw#0 ] ] with [ zp[2]:106 [ atan2_16::y#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:108 [ atan2_16::return#2 ] ] with [ zp[2]:110 [ init_angle_screen::angle_w#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:118 [ getCharToProcess::$11 ] ] with [ zp[2]:122 [ getCharToProcess::$13 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:124 [ getCharToProcess::$8 ] ] with [ zp[2]:126 [ getCharToProcess::$9 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:133 [ startProcessing::$23 ] ] with [ zp[2]:137 [ startProcessing::$34 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:139 [ startProcessing::$0 ] ] with [ zp[2]:141 [ startProcessing::offset#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:157 [ startProcessing::$26 ] ] with [ zp[2]:159 [ startProcessing::$8 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:161 [ startProcessing::$9 ] ] with [ zp[2]:163 [ startProcessing::spriteX#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:165 [ startProcessing::$27 ] ] with [ zp[2]:167 [ startProcessing::$11 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:169 [ startProcessing::$12 ] ] with [ zp[2]:171 [ startProcessing::spriteY#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:33 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 startProcessing::$6 ] ] with [ zp[2]:153 [ startProcessing::$25 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:35 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 startProcessing::$4 ] ] with [ zp[2]:148 [ startProcessing::$24 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] ] with [ zp[2]:108 [ atan2_16::return#2 init_angle_screen::angle_w#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:118 [ getCharToProcess::$11 getCharToProcess::$13 ] ] with [ zp[2]:124 [ getCharToProcess::$8 getCharToProcess::$9 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:133 [ startProcessing::$23 startProcessing::$34 ] ] with [ zp[2]:139 [ startProcessing::$0 startProcessing::offset#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:157 [ startProcessing::$26 startProcessing::$8 ] ] with [ zp[2]:161 [ startProcessing::$9 startProcessing::spriteX#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:165 [ startProcessing::$27 startProcessing::$11 ] ] with [ zp[2]:169 [ startProcessing::$12 startProcessing::spriteY#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:112 [ init_angle_screen::$7 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:133 [ startProcessing::$23 startProcessing::$34 startProcessing::$0 startProcessing::offset#0 ] ] with [ zp[2]:146 [ startProcessing::screenPtr#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:18 [ initSprites::sp#2 initSprites::sp#1 ] ] with [ zp[2]:12 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] ]
|
|
Coalescing zero page register [ zp[2]:21 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 ] ] with [ zp[2]:14 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 init_angle_screen::screen#0 ] ]
|
|
Coalescing zero page register [ zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 ] ] with [ zp[1]:11 [ init_angle_screen::y#5 init_angle_screen::y#1 ] ]
|
|
Coalescing zero page register [ zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ] ] with [ zp[1]:16 [ init_angle_screen::x#2 init_angle_screen::x#1 ] ]
|
|
Coalescing zero page register [ zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ] ] with [ zp[1]:17 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] ]
|
|
Coalescing zero page register [ zp[1]:32 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ] ] with [ zp[1]:29 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ] ]
|
|
Coalescing zero page register [ zp[2]:33 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 startProcessing::$6 startProcessing::$25 ] ] with [ zp[2]:23 [ getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ] ]
|
|
Coalescing zero page register [ zp[2]:38 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] ] with [ zp[2]:35 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 startProcessing::$4 startProcessing::$24 ] ]
|
|
Coalescing zero page register [ zp[2]:56 [ malloc::mem#0 ] ] with [ zp[2]:4 [ main::src#2 main::src#1 ] ]
|
|
Coalescing zero page register [ zp[1]:114 [ init_angle_screen::ang_w#0 ] ] with [ zp[1]:71 [ startProcessing::center_x#0 ] ]
|
|
Coalescing zero page register [ zp[2]:118 [ getCharToProcess::$11 getCharToProcess::$13 getCharToProcess::$8 getCharToProcess::$9 ] ] with [ zp[2]:40 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] ]
|
|
Coalescing zero page register [ zp[2]:120 [ getCharToProcess::$12 ] ] with [ zp[2]:43 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ] ]
|
|
Coalescing zero page register [ zp[2]:133 [ startProcessing::$23 startProcessing::$34 startProcessing::$0 startProcessing::offset#0 startProcessing::screenPtr#0 ] ] with [ zp[2]:48 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] ]
|
|
Coalescing zero page register [ zp[2]:135 [ startProcessing::$33 ] ] with [ zp[2]:50 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] ]
|
|
Coalescing zero page register [ zp[2]:143 [ startProcessing::colPtr#0 ] ] with [ zp[2]:99 [ init_angle_screen::xw#0 atan2_16::x#0 ] ]
|
|
Coalescing zero page register [ zp[2]:157 [ startProcessing::$26 startProcessing::$8 startProcessing::$9 startProcessing::spriteX#0 ] ] with [ zp[2]:102 [ init_angle_screen::yw#0 atan2_16::y#0 ] ]
|
|
Coalescing zero page register [ zp[2]:33 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 startProcessing::$6 startProcessing::$25 getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 ] ] with [ zp[2]:18 [ initSprites::sp#2 initSprites::sp#1 init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] ]
|
|
Coalescing zero page register [ zp[2]:56 [ malloc::mem#0 main::src#2 main::src#1 ] ] with [ zp[2]:21 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 init_angle_screen::screen#0 ] ]
|
|
Coalescing zero page register [ zp[1]:69 [ main::center_y#0 startProcessing::center_y#0 ] ] with [ zp[1]:25 [ getCharToProcess::y#7 getCharToProcess::y#1 init_angle_screen::y#5 init_angle_screen::y#1 ] ]
|
|
Coalescing zero page register [ zp[1]:145 [ startProcessing::spriteCol#0 ] ] with [ zp[1]:27 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 init_angle_screen::x#2 init_angle_screen::x#1 ] ]
|
|
Coalescing zero page register [ zp[2]:165 [ startProcessing::$27 startProcessing::$11 startProcessing::$12 startProcessing::spriteY#0 ] ] with [ zp[2]:118 [ getCharToProcess::$11 getCharToProcess::$13 getCharToProcess::$8 getCharToProcess::$9 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] ]
|
|
Coalescing zero page register [ zp[1]:173 [ startProcessing::spritePtr#0 ] ] with [ zp[1]:28 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 init_angle_screen::xb#2 init_angle_screen::xb#1 ] ]
|
|
Allocated (was zp[2]:6) zp[2]:4 [ main::dst#2 main::dst#0 main::dst#1 ]
|
|
Allocated (was zp[1]:8) zp[1]:6 [ main::i#2 main::i#1 ]
|
|
Allocated (was zp[1]:9) zp[1]:7 [ processChars::i#10 processChars::i#1 ]
|
|
Allocated (was zp[1]:10) zp[1]:8 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
Allocated (was zp[1]:32) zp[1]:9 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
Allocated (was zp[2]:33) zp[2]:10 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 startProcessing::$6 startProcessing::$25 getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 initSprites::sp#2 initSprites::sp#1 init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ]
|
|
Allocated (was zp[2]:38) zp[2]:12 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 startProcessing::$4 startProcessing::$24 ]
|
|
Allocated (was zp[2]:52) zp[2]:14 [ SCREEN_COPY#0 ]
|
|
Allocated (was zp[2]:54) zp[2]:16 [ SCREEN_DIST#0 ]
|
|
Allocated (was zp[2]:56) zp[2]:18 [ malloc::mem#0 main::src#2 main::src#1 getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 init_angle_screen::screen#0 ]
|
|
Allocated (was zp[1]:69) zp[1]:20 [ main::center_y#0 startProcessing::center_y#0 getCharToProcess::y#7 getCharToProcess::y#1 init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
Allocated (was zp[1]:73) zp[1]:21 [ processChars::$13 ]
|
|
Allocated (was zp[2]:78) zp[2]:22 [ processChars::processing#0 ]
|
|
Allocated (was zp[1]:80) zp[1]:24 [ processChars::bitmask#0 ]
|
|
Allocated (was zp[2]:81) zp[2]:25 [ processChars::xpos#0 processChars::$21 ]
|
|
Allocated (was zp[2]:85) zp[2]:27 [ processChars::$12 ]
|
|
Allocated (was zp[1]:87) zp[1]:29 [ processChars::ypos#0 ]
|
|
Allocated (was zp[1]:114) zp[1]:30 [ init_angle_screen::ang_w#0 startProcessing::center_x#0 ]
|
|
Allocated (was zp[2]:120) zp[2]:31 [ getCharToProcess::$12 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
|
Allocated (was zp[2]:133) zp[2]:33 [ startProcessing::$23 startProcessing::$34 startProcessing::$0 startProcessing::offset#0 startProcessing::screenPtr#0 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
|
Allocated (was zp[2]:135) zp[2]:35 [ startProcessing::$33 atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
|
Allocated (was zp[2]:143) zp[2]:37 [ startProcessing::colPtr#0 init_angle_screen::xw#0 atan2_16::x#0 ]
|
|
Allocated (was zp[1]:145) zp[1]:39 [ startProcessing::spriteCol#0 getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
Allocated (was zp[2]:157) zp[2]:40 [ startProcessing::$26 startProcessing::$8 startProcessing::$9 startProcessing::spriteX#0 init_angle_screen::yw#0 atan2_16::y#0 ]
|
|
Allocated (was zp[2]:165) zp[2]:42 [ startProcessing::$27 startProcessing::$11 startProcessing::$12 startProcessing::spriteY#0 getCharToProcess::$11 getCharToProcess::$13 getCharToProcess::$8 getCharToProcess::$9 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
|
Allocated (was zp[1]:173) zp[1]:44 [ startProcessing::spritePtr#0 getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
Interrupt procedure irqTop clobbers AnzP
|
|
Interrupt procedure irqBottom clobbers AXYcnzvPS
|
|
|
|
ASSEMBLER BEFORE OPTIMIZATION
|
|
// File Comments
|
|
// Clears start screen throwing around the letters (by turning them into sprites)
|
|
// C standard library stdlib.h
|
|
// Implementation of functions found int C stdlib.h / stdlib.c
|
|
// C standard library string.h
|
|
// Functions to manipulate C strings and arrays.
|
|
// Upstart
|
|
// Commodore 64 PRG executable file
|
|
.file [name="clearscreen.prg", type="prg", segments="Program"]
|
|
.segmentdef Program [segments="Basic, Code, Data"]
|
|
.segmentdef Basic [start=$0801]
|
|
.segmentdef Code [start=$80d]
|
|
.segmentdef Data [startAfter="Code"]
|
|
.segment Basic
|
|
:BasicUpstart(__start)
|
|
// Global Constants & labels
|
|
// The number of iterations performed during 16-bit CORDIC atan2 calculation
|
|
.const CORDIC_ITERATIONS_16 = $f
|
|
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
|
|
.const CIA_INTERRUPT_CLEAR = $7f
|
|
// Positions of the border (in sprite positions)
|
|
.const BORDER_XPOS_LEFT = $18
|
|
.const BORDER_XPOS_RIGHT = $158
|
|
.const BORDER_YPOS_TOP = $32
|
|
.const BORDER_YPOS_BOTTOM = $fa
|
|
// The offset of the sprite pointers from the screen start address
|
|
.const OFFSET_SPRITE_PTRS = $3f8
|
|
// Bits for the VICII IRQ Status/Enable Registers
|
|
.const IRQ_RASTER = 1
|
|
// Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written
|
|
.const PROCPORT_DDR_MEMORY_MASK = 7
|
|
// RAM in 0xA000, 0xE000 I/O in 0xD000
|
|
.const PROCPORT_RAM_IO = 5
|
|
// RAM in 0xA000, 0xE000 CHAR ROM in 0xD000
|
|
.const PROCPORT_RAM_CHARROM = 1
|
|
.const LIGHT_BLUE = $e
|
|
// Max number of chars processed at once
|
|
.const NUM_PROCESSING = 8
|
|
// Distance value meaning not found
|
|
.const NOT_FOUND = $ff
|
|
.const STATUS_FREE = 0
|
|
.const STATUS_NEW = 1
|
|
.const STATUS_PROCESSING = 2
|
|
.const XPOS_LEFTMOST = BORDER_XPOS_LEFT-8<<4
|
|
.const XPOS_RIGHTMOST = BORDER_XPOS_RIGHT<<4
|
|
.const YPOS_TOPMOST = BORDER_YPOS_TOP-8<<4
|
|
.const YPOS_BOTTOMMOST = BORDER_YPOS_BOTTOM<<4
|
|
.const RASTER_IRQ_TOP = $30
|
|
.const RASTER_IRQ_MIDDLE = $ff
|
|
.const SIZEOF_STRUCT_PROCESSINGSPRITE = $e
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_Y = 2
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_VX = 4
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_VY = 6
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_ID = 8
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_PTR = 9
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_COL = $a
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = $b
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = $c
|
|
.const OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
.label SPRITES_XPOS = $d000
|
|
.label SPRITES_YPOS = $d001
|
|
.label SPRITES_XMSB = $d010
|
|
.label SPRITES_COLOR = $d027
|
|
.label SPRITES_ENABLE = $d015
|
|
.label SPRITES_EXPAND_Y = $d017
|
|
.label SPRITES_MC = $d01c
|
|
.label SPRITES_EXPAND_X = $d01d
|
|
.label RASTER = $d012
|
|
.label VICII_CONTROL = $d011
|
|
// VIC II IRQ Status Register
|
|
.label IRQ_STATUS = $d019
|
|
// VIC II IRQ Enable Register
|
|
.label IRQ_ENABLE = $d01a
|
|
// Processor port data direction register
|
|
.label PROCPORT_DDR = 0
|
|
// Processor Port Register controlling RAM/ROM configuration and the datasette
|
|
.label PROCPORT = 1
|
|
// The address of the CHARGEN character set
|
|
.label CHARGEN = $d000
|
|
// Color Ram
|
|
.label COLS = $d800
|
|
// The CIA#1: keyboard matrix, joystick #1/#2
|
|
.label CIA1 = $dc00
|
|
// The vector used when the HARDWARE serves IRQ interrupts
|
|
.label HARDWARE_IRQ = $fffe
|
|
// Address of the screen
|
|
.label SCREEN = $400
|
|
// Sprite data for the animating sprites
|
|
.label SPRITE_DATA = $2000
|
|
// Top of the heap used by malloc()
|
|
.label HEAP_TOP = $a000
|
|
// Head of the heap. Moved backward each malloc()
|
|
.label heap_head = 2
|
|
// Copy of the screen used for finding chars to process
|
|
.label SCREEN_COPY = $e
|
|
// Screen containing bytes representing the distance to the center
|
|
.label SCREEN_DIST = $10
|
|
.segment Code
|
|
// __start
|
|
__start: {
|
|
// [1] phi from __start to __start::__init1 [phi:__start->__start::__init1]
|
|
__init1_from___start:
|
|
jmp __init1
|
|
// __start::__init1
|
|
__init1:
|
|
// [2] call malloc
|
|
// [21] phi from __start::__init1 to malloc [phi:__start::__init1->malloc]
|
|
malloc_from___init1:
|
|
// [21] phi heap_head#6 = HEAP_TOP [phi:__start::__init1->malloc#0] -- pbuz1=pbuc1
|
|
lda #<HEAP_TOP
|
|
sta.z heap_head
|
|
lda #>HEAP_TOP
|
|
sta.z heap_head+1
|
|
jsr malloc
|
|
jmp __b2
|
|
// __start::@2
|
|
__b2:
|
|
// [3] SCREEN_COPY#0 = (void*)malloc::mem#0 -- pvoz1=pvoz2
|
|
lda.z malloc.mem
|
|
sta.z SCREEN_COPY
|
|
lda.z malloc.mem+1
|
|
sta.z SCREEN_COPY+1
|
|
// [4] call malloc
|
|
// [21] phi from __start::@2 to malloc [phi:__start::@2->malloc]
|
|
malloc_from___b2:
|
|
// [21] phi heap_head#6 = heap_head#0 [phi:__start::@2->malloc#0] -- register_copy
|
|
jsr malloc
|
|
jmp __b3
|
|
// __start::@3
|
|
__b3:
|
|
// [5] SCREEN_DIST#0 = (void*)malloc::mem#0 -- pvoz1=pvoz2
|
|
lda.z malloc.mem
|
|
sta.z SCREEN_DIST
|
|
lda.z malloc.mem+1
|
|
sta.z SCREEN_DIST+1
|
|
// [6] phi from __start::@3 to __start::@1 [phi:__start::@3->__start::@1]
|
|
__b1_from___b3:
|
|
jmp __b1
|
|
// __start::@1
|
|
__b1:
|
|
// [7] call main
|
|
jsr main
|
|
jmp __breturn
|
|
// __start::@return
|
|
__breturn:
|
|
// [8] return
|
|
rts
|
|
}
|
|
// irqBottom
|
|
// Raster Interrupt at the bottom of the screen
|
|
irqBottom: {
|
|
// interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry
|
|
sta rega+1
|
|
stx regx+1
|
|
sty regy+1
|
|
// [10] phi from irqBottom to irqBottom::@1 [phi:irqBottom->irqBottom::@1]
|
|
__b1_from_irqBottom:
|
|
jmp __b1
|
|
// irqBottom::@1
|
|
__b1:
|
|
// [11] call processChars
|
|
// [60] phi from irqBottom::@1 to processChars [phi:irqBottom::@1->processChars]
|
|
processChars_from___b1:
|
|
jsr processChars
|
|
jmp __b2
|
|
// irqBottom::@2
|
|
__b2:
|
|
// [12] *RASTER = RASTER_IRQ_TOP -- _deref_pbuc1=vbuc2
|
|
// Trigger IRQ at the top of the screen
|
|
lda #RASTER_IRQ_TOP
|
|
sta RASTER
|
|
// [13] *HARDWARE_IRQ = &irqTop -- _deref_qprc1=pprc2
|
|
lda #<irqTop
|
|
sta HARDWARE_IRQ
|
|
lda #>irqTop
|
|
sta HARDWARE_IRQ+1
|
|
// [14] *IRQ_STATUS = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
jmp __breturn
|
|
// irqBottom::@return
|
|
__breturn:
|
|
// [15] return
|
|
// interrupt(isr_hardware_clobber_exit) -- isr_hardware_all_exit
|
|
rega:
|
|
lda #0
|
|
regx:
|
|
ldx #0
|
|
regy:
|
|
ldy #0
|
|
rti
|
|
}
|
|
// irqTop
|
|
// Raster Interrupt at the top of the screen
|
|
irqTop: {
|
|
// interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry
|
|
sta rega+1
|
|
jmp __b1
|
|
// irqTop::@1
|
|
__b1:
|
|
// [17] *RASTER = RASTER_IRQ_MIDDLE -- _deref_pbuc1=vbuc2
|
|
// Trigger IRQ at the middle of the screen
|
|
lda #RASTER_IRQ_MIDDLE
|
|
sta RASTER
|
|
// [18] *HARDWARE_IRQ = &irqBottom -- _deref_qprc1=pprc2
|
|
lda #<irqBottom
|
|
sta HARDWARE_IRQ
|
|
lda #>irqBottom
|
|
sta HARDWARE_IRQ+1
|
|
// [19] *IRQ_STATUS = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
jmp __breturn
|
|
// irqTop::@return
|
|
__breturn:
|
|
// [20] return
|
|
// interrupt(isr_hardware_clobber_exit) -- isr_hardware_all_exit
|
|
rega:
|
|
lda #0
|
|
rti
|
|
}
|
|
// malloc
|
|
// Allocates a block of size chars of memory, returning a pointer to the beginning of the block.
|
|
// The content of the newly allocated block of memory is not initialized, remaining with indeterminate values.
|
|
malloc: {
|
|
.label mem = $12
|
|
// [22] malloc::mem#0 = heap_head#6 - $3e8 -- pbuz1=pbuz2_minus_vwuc1
|
|
lda.z heap_head
|
|
sec
|
|
sbc #<$3e8
|
|
sta.z mem
|
|
lda.z heap_head+1
|
|
sbc #>$3e8
|
|
sta.z mem+1
|
|
// [23] heap_head#0 = malloc::mem#0 -- pbuz1=pbuz2
|
|
lda.z mem
|
|
sta.z heap_head
|
|
lda.z mem+1
|
|
sta.z heap_head+1
|
|
jmp __breturn
|
|
// malloc::@return
|
|
__breturn:
|
|
// [24] return
|
|
rts
|
|
}
|
|
// main
|
|
main: {
|
|
.label dst = 4
|
|
.label src = $12
|
|
.label i = 6
|
|
.label center_y = $14
|
|
// [25] init_angle_screen::screen#0 = (byte*)SCREEN_DIST#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_DIST
|
|
sta.z init_angle_screen.screen
|
|
lda.z SCREEN_DIST+1
|
|
sta.z init_angle_screen.screen+1
|
|
// [26] call init_angle_screen
|
|
// Initialize the screen containing distance to the center
|
|
jsr init_angle_screen
|
|
jmp __b9
|
|
// main::@9
|
|
__b9:
|
|
// [27] main::dst#0 = (byte*)SCREEN_COPY#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_COPY
|
|
sta.z dst
|
|
lda.z SCREEN_COPY+1
|
|
sta.z dst+1
|
|
// [28] phi from main::@9 to main::@1 [phi:main::@9->main::@1]
|
|
__b1_from___b9:
|
|
// [28] phi main::dst#2 = main::dst#0 [phi:main::@9->main::@1#0] -- register_copy
|
|
// [28] phi main::src#2 = SCREEN [phi:main::@9->main::@1#1] -- pbuz1=pbuc1
|
|
lda #<SCREEN
|
|
sta.z src
|
|
lda #>SCREEN
|
|
sta.z src+1
|
|
jmp __b1
|
|
// Copy screen to screen copy
|
|
// main::@1
|
|
__b1:
|
|
// [29] if(main::src#2!=SCREEN+$3e8) goto main::@2 -- pbuz1_neq_pbuc1_then_la1
|
|
lda.z src+1
|
|
cmp #>SCREEN+$3e8
|
|
bne __b2
|
|
lda.z src
|
|
cmp #<SCREEN+$3e8
|
|
bne __b2
|
|
// [30] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
|
|
__b3_from___b1:
|
|
// [30] phi main::i#2 = 0 [phi:main::@1->main::@3#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z i
|
|
jmp __b3
|
|
// Init processing array
|
|
// [30] phi from main::@3 to main::@3 [phi:main::@3->main::@3]
|
|
__b3_from___b3:
|
|
// [30] phi main::i#2 = main::i#1 [phi:main::@3->main::@3#0] -- register_copy
|
|
jmp __b3
|
|
// main::@3
|
|
__b3:
|
|
// [31] main::$11 = main::i#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z i
|
|
asl
|
|
// [32] main::$12 = main::$11 + main::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [33] main::$13 = main::$12 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [34] main::$14 = main::$13 + main::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [35] main::$10 = main::$14 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [36] PROCESSING[main::$10] = memcpy(*(&$0), struct ProcessingSprite, SIZEOF_STRUCT_PROCESSINGSPRITE) -- pssc1_derefidx_vbuaa=_deref_pssc2_memcpy_vbuc3
|
|
tax
|
|
ldy #0
|
|
!:
|
|
lda __0,y
|
|
sta PROCESSING,x
|
|
inx
|
|
iny
|
|
cpy #SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
bne !-
|
|
// [37] main::i#1 = ++ main::i#2 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [38] if(main::i#1!=NUM_PROCESSING-1+1) goto main::@3 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #NUM_PROCESSING-1+1
|
|
cmp.z i
|
|
bne __b3_from___b3
|
|
// [39] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
|
|
__b4_from___b3:
|
|
jmp __b4
|
|
// main::@4
|
|
__b4:
|
|
// [40] call initSprites
|
|
// Init sprites
|
|
// [140] phi from main::@4 to initSprites [phi:main::@4->initSprites]
|
|
initSprites_from___b4:
|
|
jsr initSprites
|
|
// [41] phi from main::@4 to main::@10 [phi:main::@4->main::@10]
|
|
__b10_from___b4:
|
|
jmp __b10
|
|
// main::@10
|
|
__b10:
|
|
// [42] call setupRasterIrq
|
|
// Set-up raster interrupts
|
|
jsr setupRasterIrq
|
|
// [43] phi from main::@10 main::@6 to main::@5 [phi:main::@10/main::@6->main::@5]
|
|
__b5_from___b10:
|
|
__b5_from___b6:
|
|
jmp __b5
|
|
// Main loop
|
|
// main::@5
|
|
__b5:
|
|
// [44] call getCharToProcess
|
|
jsr getCharToProcess
|
|
// [45] getCharToProcess::return_x#0 = getCharToProcess::return_x#1 -- vbuyy=vbuz1
|
|
ldy.z getCharToProcess.return_x
|
|
// [46] getCharToProcess::return_y#0 = getCharToProcess::return_y#1 -- vbuaa=vbuz1
|
|
lda.z getCharToProcess.return_y
|
|
// [47] getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1
|
|
jmp __b11
|
|
// main::@11
|
|
__b11:
|
|
// [48] main::center_x#0 = getCharToProcess::return_x#0
|
|
// [49] main::center_y#0 = getCharToProcess::return_y#0 -- vbuz1=vbuaa
|
|
sta.z center_y
|
|
// [50] main::center_dist#0 = getCharToProcess::return_dist#0 -- vbuaa=vbuxx
|
|
txa
|
|
// [51] if(main::center_dist#0!=NOT_FOUND) goto main::@6 -- vbuaa_neq_vbuc1_then_la1
|
|
cmp #NOT_FOUND
|
|
bne __b6
|
|
jmp __b7
|
|
// main::@7
|
|
__b7:
|
|
// [52] *(SCREEN+$3e7) = '.' -- _deref_pbuc1=vbuc2
|
|
lda #'.'
|
|
sta SCREEN+$3e7
|
|
jmp __b8
|
|
// main::@8
|
|
__b8:
|
|
// [53] *(COLS+$3e7) = ++ *(COLS+$3e7) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc COLS+$3e7
|
|
jmp __b8
|
|
// main::@6
|
|
__b6:
|
|
// [54] startProcessing::center_x#0 = main::center_x#0 -- vbuz1=vbuyy
|
|
sty.z startProcessing.center_x
|
|
// [55] startProcessing::center_y#0 = main::center_y#0
|
|
// [56] call startProcessing
|
|
// [191] phi from main::@6 to startProcessing [phi:main::@6->startProcessing]
|
|
startProcessing_from___b6:
|
|
jsr startProcessing
|
|
jmp __b5_from___b6
|
|
// main::@2
|
|
__b2:
|
|
// [57] *main::dst#2 = *main::src#2 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (src),y
|
|
ldy #0
|
|
sta (dst),y
|
|
// [58] main::src#1 = ++ main::src#2 -- pbuz1=_inc_pbuz1
|
|
inc.z src
|
|
bne !+
|
|
inc.z src+1
|
|
!:
|
|
// [59] main::dst#1 = ++ main::dst#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dst
|
|
bne !+
|
|
inc.z dst+1
|
|
!:
|
|
// [28] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
|
__b1_from___b2:
|
|
// [28] phi main::dst#2 = main::dst#1 [phi:main::@2->main::@1#0] -- register_copy
|
|
// [28] phi main::src#2 = main::src#1 [phi:main::@2->main::@1#1] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// processChars
|
|
// Process any chars in the PROCESSING array
|
|
processChars: {
|
|
.label __12 = $1b
|
|
.label __13 = $15
|
|
.label __21 = $19
|
|
.label processing = $16
|
|
.label bitmask = $18
|
|
.label i = 7
|
|
.label xpos = $19
|
|
.label ypos = $1d
|
|
.label numActive = 8
|
|
// [61] phi from processChars to processChars::@1 [phi:processChars->processChars::@1]
|
|
__b1_from_processChars:
|
|
// [61] phi processChars::numActive#10 = 0 [phi:processChars->processChars::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z numActive
|
|
// [61] phi processChars::i#10 = 0 [phi:processChars->processChars::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z i
|
|
jmp __b1
|
|
// [61] phi from processChars::@2 to processChars::@1 [phi:processChars::@2->processChars::@1]
|
|
__b1_from___b2:
|
|
// [61] phi processChars::numActive#10 = processChars::numActive#3 [phi:processChars::@2->processChars::@1#0] -- register_copy
|
|
// [61] phi processChars::i#10 = processChars::i#1 [phi:processChars::@2->processChars::@1#1] -- register_copy
|
|
jmp __b1
|
|
// processChars::@1
|
|
__b1:
|
|
// [62] processChars::$13 = processChars::i#10 << 1 -- vbuz1=vbuz2_rol_1
|
|
lda.z i
|
|
asl
|
|
sta.z __13
|
|
// [63] processChars::$87 = processChars::$13 + processChars::i#10 -- vbuaa=vbuz1_plus_vbuz2
|
|
lda.z __13
|
|
clc
|
|
adc.z i
|
|
// [64] processChars::$88 = processChars::$87 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [65] processChars::$89 = processChars::$88 + processChars::i#10 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [66] processChars::$28 = processChars::$89 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [67] processChars::processing#0 = PROCESSING + processChars::$28 -- pssz1=pssc1_plus_vbuaa
|
|
clc
|
|
adc #<PROCESSING
|
|
sta.z processing
|
|
lda #>PROCESSING
|
|
adc #0
|
|
sta.z processing+1
|
|
// [68] processChars::bitmask#0 = 1 << ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID] -- vbuz1=vbuc1_rol_pbuz2_derefidx_vbuc2
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
lda (processing),y
|
|
tay
|
|
lda #1
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl
|
|
dey
|
|
bne !-
|
|
!e:
|
|
sta.z bitmask
|
|
// [69] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]==STATUS_FREE) goto processChars::@2 -- pbuz1_derefidx_vbuc1_eq_vbuc2_then_la1
|
|
lda #STATUS_FREE
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
cmp (processing),y
|
|
beq __b2_from___b1
|
|
jmp __b10
|
|
// processChars::@10
|
|
__b10:
|
|
// [70] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]!=STATUS_NEW) goto processChars::@3 -- pbuz1_derefidx_vbuc1_neq_vbuc2_then_la1
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
lda (processing),y
|
|
cmp #STATUS_NEW
|
|
bne __b3
|
|
jmp __b11
|
|
// processChars::@11
|
|
__b11:
|
|
// [71] *(((byte**)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR]) = ' ' -- _deref_(qbuz1_derefidx_vbuc1)=vbuc2
|
|
// Clear the char on the screen
|
|
ldx #' '
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR
|
|
lda (processing),y
|
|
sta !+ +1
|
|
iny
|
|
lda (processing),y
|
|
sta !+ +2
|
|
!:
|
|
stx $ffff
|
|
// [72] *SPRITES_ENABLE = *SPRITES_ENABLE | processChars::bitmask#0 -- _deref_pbuc1=_deref_pbuc1_bor_vbuz1
|
|
// Enable the sprite
|
|
lda SPRITES_ENABLE
|
|
ora.z bitmask
|
|
sta SPRITES_ENABLE
|
|
// [73] SPRITES_COLOR[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_COL] -- pbuc1_derefidx_(pbuz1_derefidx_vbuc2)=pbuz1_derefidx_vbuc3
|
|
// Set the sprite color
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_COL
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
pha
|
|
lda (processing),y
|
|
tay
|
|
pla
|
|
sta SPRITES_COLOR,y
|
|
// [74] (SCREEN+OFFSET_SPRITE_PTRS)[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_PTR] -- pbuc1_derefidx_(pbuz1_derefidx_vbuc2)=pbuz1_derefidx_vbuc3
|
|
// Set sprite pointer
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
pha
|
|
lda (processing),y
|
|
tay
|
|
pla
|
|
sta SCREEN+OFFSET_SPRITE_PTRS,y
|
|
// [75] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_PROCESSING -- pbuz1_derefidx_vbuc1=vbuc2
|
|
// Set status
|
|
lda #STATUS_PROCESSING
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
sta (processing),y
|
|
jmp __b3
|
|
// processChars::@3
|
|
__b3:
|
|
// [76] processChars::xpos#0 = *((word*)processChars::processing#0) >> 4 -- vwuz1=_deref_pwuz2_ror_4
|
|
ldy #0
|
|
lda (processing),y
|
|
sta.z xpos
|
|
iny
|
|
lda (processing),y
|
|
sta.z xpos+1
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
// [77] processChars::$9 = > processChars::xpos#0 -- vbuaa=_hi_vwuz1
|
|
lda.z xpos+1
|
|
// [78] if(0!=processChars::$9) goto processChars::@4 -- 0_neq_vbuaa_then_la1
|
|
// Set sprite position
|
|
cmp #0
|
|
bne __b4
|
|
jmp __b8
|
|
// processChars::@8
|
|
__b8:
|
|
// [79] processChars::$10 = $ff ^ processChars::bitmask#0 -- vbuaa=vbuc1_bxor_vbuz1
|
|
lda #$ff
|
|
eor.z bitmask
|
|
// [80] *SPRITES_XMSB = *SPRITES_XMSB & processChars::$10 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa
|
|
and SPRITES_XMSB
|
|
sta SPRITES_XMSB
|
|
jmp __b5
|
|
// processChars::@5
|
|
__b5:
|
|
// [81] SPRITES_XPOS[processChars::$13] = (byte)processChars::xpos#0 -- pbuc1_derefidx_vbuz1=_byte_vwuz2
|
|
ldy.z __13
|
|
lda.z xpos
|
|
sta SPRITES_XPOS,y
|
|
// [82] processChars::$12 = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] >> 4 -- vwuz1=pwuz2_derefidx_vbuc1_ror_4
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
lda (processing),y
|
|
sta.z __12
|
|
iny
|
|
lda (processing),y
|
|
sta.z __12+1
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
// [83] processChars::ypos#0 = (byte)processChars::$12 -- vbuz1=_byte_vwuz2
|
|
lda.z __12
|
|
sta.z ypos
|
|
// [84] SPRITES_YPOS[processChars::$13] = processChars::ypos#0 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda.z ypos
|
|
ldy.z __13
|
|
sta SPRITES_YPOS,y
|
|
// [85] if(*((word*)processChars::processing#0)<XPOS_LEFTMOST) goto processChars::@6 -- _deref_pwuz1_lt_vwuc1_then_la1
|
|
// Move sprite
|
|
ldy #1
|
|
lda (processing),y
|
|
cmp #>XPOS_LEFTMOST
|
|
bcc __b6
|
|
bne !+
|
|
dey
|
|
lda (processing),y
|
|
cmp #<XPOS_LEFTMOST
|
|
bcc __b6
|
|
!:
|
|
jmp __b14
|
|
// processChars::@14
|
|
__b14:
|
|
// [86] if(*((word*)processChars::processing#0)>XPOS_RIGHTMOST) goto processChars::@6 -- _deref_pwuz1_gt_vwuc1_then_la1
|
|
ldy #1
|
|
lda #>XPOS_RIGHTMOST
|
|
cmp (processing),y
|
|
bcc __b6
|
|
bne !+
|
|
dey
|
|
lda #<XPOS_RIGHTMOST
|
|
cmp (processing),y
|
|
bcc __b6
|
|
!:
|
|
jmp __b13
|
|
// processChars::@13
|
|
__b13:
|
|
// [87] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]<YPOS_TOPMOST) goto processChars::@6 -- pwuz1_derefidx_vbuc1_lt_vwuc2_then_la1
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
iny
|
|
lda (processing),y
|
|
cmp #>YPOS_TOPMOST
|
|
bcc __b6
|
|
bne !+
|
|
dey
|
|
lda (processing),y
|
|
cmp #<YPOS_TOPMOST
|
|
bcc __b6
|
|
!:
|
|
jmp __b12
|
|
// processChars::@12
|
|
__b12:
|
|
// [88] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]>YPOS_BOTTOMMOST) goto processChars::@6 -- pwuz1_derefidx_vbuc1_gt_vwuc2_then_la1
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
iny
|
|
lda #>YPOS_BOTTOMMOST
|
|
cmp (processing),y
|
|
bcc __b6
|
|
bne !+
|
|
dey
|
|
lda #<YPOS_BOTTOMMOST
|
|
cmp (processing),y
|
|
bcc __b6
|
|
!:
|
|
jmp __b9
|
|
// processChars::@9
|
|
__b9:
|
|
// [89] processChars::$21 = processChars::xpos#0 >> 3 -- vwuz1=vwuz1_ror_3
|
|
lsr.z __21+1
|
|
ror.z __21
|
|
lsr.z __21+1
|
|
ror.z __21
|
|
lsr.z __21+1
|
|
ror.z __21
|
|
// [90] processChars::$73 = (byte)processChars::$21 -- vbuaa=_byte_vwuz1
|
|
lda.z __21
|
|
// [91] processChars::xchar#0 = processChars::$73 - BORDER_XPOS_LEFT/8 -- vbuaa=vbuaa_minus_vbuc1
|
|
sec
|
|
sbc #BORDER_XPOS_LEFT/8
|
|
// [92] processChars::$29 = processChars::xchar#0 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [93] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] + VXSIN[processChars::$29] -- pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_pwuc2_derefidx_vbuaa
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
tax
|
|
clc
|
|
lda (processing),y
|
|
adc VXSIN,x
|
|
sta (processing),y
|
|
iny
|
|
lda (processing),y
|
|
adc VXSIN+1,x
|
|
sta (processing),y
|
|
// [94] *((word*)processChars::processing#0) = *((word*)processChars::processing#0) + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] -- _deref_pwuz1=_deref_pwuz1_plus_pwuz1_derefidx_vbuc1
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
sty.z $ff
|
|
clc
|
|
lda (processing),y
|
|
ldy #0
|
|
adc (processing),y
|
|
sta (processing),y
|
|
ldy.z $ff
|
|
iny
|
|
lda (processing),y
|
|
ldy #1
|
|
adc (processing),y
|
|
sta (processing),y
|
|
// [95] processChars::$79 = processChars::ypos#0 >> 3 -- vbuaa=vbuz1_ror_3
|
|
lda.z ypos
|
|
lsr
|
|
lsr
|
|
lsr
|
|
// [96] processChars::ychar#0 = processChars::$79 - BORDER_YPOS_TOP/8 -- vbuaa=vbuaa_minus_vbuc1
|
|
sec
|
|
sbc #BORDER_YPOS_TOP/8
|
|
// [97] processChars::$30 = processChars::ychar#0 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [98] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] + VYSIN[processChars::$30] -- pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_pwuc2_derefidx_vbuaa
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
tax
|
|
clc
|
|
lda (processing),y
|
|
adc VYSIN,x
|
|
sta (processing),y
|
|
iny
|
|
lda (processing),y
|
|
adc VYSIN+1,x
|
|
sta (processing),y
|
|
// [99] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] -- pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_pwuz1_derefidx_vbuc2
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
clc
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
adc (processing),y
|
|
sta (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VY+1
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y+1
|
|
adc (processing),y
|
|
sta (processing),y
|
|
jmp __b7
|
|
// processChars::@7
|
|
__b7:
|
|
// [100] processChars::numActive#1 = ++ processChars::numActive#10 -- vbuz1=_inc_vbuz1
|
|
inc.z numActive
|
|
// [101] phi from processChars::@1 processChars::@7 to processChars::@2 [phi:processChars::@1/processChars::@7->processChars::@2]
|
|
__b2_from___b1:
|
|
__b2_from___b7:
|
|
// [101] phi processChars::numActive#3 = processChars::numActive#10 [phi:processChars::@1/processChars::@7->processChars::@2#0] -- register_copy
|
|
jmp __b2
|
|
// processChars::@2
|
|
__b2:
|
|
// [102] processChars::i#1 = ++ processChars::i#10 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [103] if(processChars::i#1!=NUM_PROCESSING-1+1) goto processChars::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #NUM_PROCESSING-1+1
|
|
cmp.z i
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// processChars::@return
|
|
__breturn:
|
|
// [104] return
|
|
rts
|
|
// processChars::@6
|
|
__b6:
|
|
// [105] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_FREE -- pbuz1_derefidx_vbuc1=vbuc2
|
|
// Set status to FREE
|
|
lda #STATUS_FREE
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
sta (processing),y
|
|
// [106] processChars::$25 = $ff ^ processChars::bitmask#0 -- vbuaa=vbuc1_bxor_vbuz1
|
|
lda #$ff
|
|
eor.z bitmask
|
|
// [107] *SPRITES_ENABLE = *SPRITES_ENABLE & processChars::$25 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa
|
|
// Disable the sprite
|
|
and SPRITES_ENABLE
|
|
sta SPRITES_ENABLE
|
|
jmp __b7
|
|
// processChars::@4
|
|
__b4:
|
|
// [108] *SPRITES_XMSB = *SPRITES_XMSB | processChars::bitmask#0 -- _deref_pbuc1=_deref_pbuc1_bor_vbuz1
|
|
lda SPRITES_XMSB
|
|
ora.z bitmask
|
|
sta SPRITES_XMSB
|
|
jmp __b5
|
|
}
|
|
// init_angle_screen
|
|
// Populates 1000 chars (a screen) with values representing the angle to the center.
|
|
// Utilizes symmetry around the center
|
|
// init_angle_screen(byte* zp($12) screen)
|
|
init_angle_screen: {
|
|
.label __7 = $1f
|
|
.label screen = $12
|
|
.label screen_bottomline = $12
|
|
.label xw = $25
|
|
.label yw = $28
|
|
.label angle_w = $1f
|
|
.label ang_w = $1e
|
|
.label x = $27
|
|
.label xb = $2c
|
|
.label screen_topline = $a
|
|
.label y = $14
|
|
// [109] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c -- pbuz1=pbuz1_plus_vwuc1
|
|
clc
|
|
lda.z screen_bottomline
|
|
adc #<$28*$c
|
|
sta.z screen_bottomline
|
|
lda.z screen_bottomline+1
|
|
adc #>$28*$c
|
|
sta.z screen_bottomline+1
|
|
// [110] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0 -- pbuz1=pbuz2
|
|
lda.z screen_bottomline
|
|
sta.z screen_topline
|
|
lda.z screen_bottomline+1
|
|
sta.z screen_topline+1
|
|
// [111] phi from init_angle_screen to init_angle_screen::@1 [phi:init_angle_screen->init_angle_screen::@1]
|
|
__b1_from_init_angle_screen:
|
|
// [111] phi init_angle_screen::screen_bottomline#6 = init_angle_screen::screen_bottomline#0 [phi:init_angle_screen->init_angle_screen::@1#0] -- register_copy
|
|
// [111] phi init_angle_screen::screen_topline#6 = init_angle_screen::screen_topline#7 [phi:init_angle_screen->init_angle_screen::@1#1] -- register_copy
|
|
// [111] phi init_angle_screen::y#5 = 0 [phi:init_angle_screen->init_angle_screen::@1#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
jmp __b1
|
|
// [111] phi from init_angle_screen::@4 to init_angle_screen::@1 [phi:init_angle_screen::@4->init_angle_screen::@1]
|
|
__b1_from___b4:
|
|
// [111] phi init_angle_screen::screen_bottomline#6 = init_angle_screen::screen_bottomline#1 [phi:init_angle_screen::@4->init_angle_screen::@1#0] -- register_copy
|
|
// [111] phi init_angle_screen::screen_topline#6 = init_angle_screen::screen_topline#1 [phi:init_angle_screen::@4->init_angle_screen::@1#1] -- register_copy
|
|
// [111] phi init_angle_screen::y#5 = init_angle_screen::y#1 [phi:init_angle_screen::@4->init_angle_screen::@1#2] -- register_copy
|
|
jmp __b1
|
|
// init_angle_screen::@1
|
|
__b1:
|
|
// [112] phi from init_angle_screen::@1 to init_angle_screen::@2 [phi:init_angle_screen::@1->init_angle_screen::@2]
|
|
__b2_from___b1:
|
|
// [112] phi init_angle_screen::xb#2 = $27 [phi:init_angle_screen::@1->init_angle_screen::@2#0] -- vbuz1=vbuc1
|
|
lda #$27
|
|
sta.z xb
|
|
// [112] phi init_angle_screen::x#2 = 0 [phi:init_angle_screen::@1->init_angle_screen::@2#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z x
|
|
jmp __b2
|
|
// init_angle_screen::@2
|
|
__b2:
|
|
// [113] if(init_angle_screen::x#2<$13+1) goto init_angle_screen::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z x
|
|
cmp #$13+1
|
|
bcc __b3
|
|
jmp __b4
|
|
// init_angle_screen::@4
|
|
__b4:
|
|
// [114] init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#6 - $28 -- pbuz1=pbuz1_minus_vbuc1
|
|
sec
|
|
lda.z screen_topline
|
|
sbc #$28
|
|
sta.z screen_topline
|
|
lda.z screen_topline+1
|
|
sbc #0
|
|
sta.z screen_topline+1
|
|
// [115] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$28
|
|
clc
|
|
adc.z screen_bottomline
|
|
sta.z screen_bottomline
|
|
bcc !+
|
|
inc.z screen_bottomline+1
|
|
!:
|
|
// [116] init_angle_screen::y#1 = ++ init_angle_screen::y#5 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [117] if(init_angle_screen::y#1!=$d) goto init_angle_screen::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$d
|
|
cmp.z y
|
|
bne __b1_from___b4
|
|
jmp __breturn
|
|
// init_angle_screen::@return
|
|
__breturn:
|
|
// [118] return
|
|
rts
|
|
// init_angle_screen::@3
|
|
__b3:
|
|
// [119] init_angle_screen::$3 = init_angle_screen::x#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z x
|
|
asl
|
|
// [120] init_angle_screen::$4 = $27 - init_angle_screen::$3 -- vbuaa=vbuc1_minus_vbuaa
|
|
eor #$ff
|
|
sec
|
|
adc #$27
|
|
// [121] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
|
ldy #0
|
|
sta.z xw+1
|
|
sty.z xw
|
|
// [122] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z y
|
|
asl
|
|
// [123] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
|
ldy #0
|
|
sta.z yw+1
|
|
sty.z yw
|
|
// [124] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
|
// [125] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
|
// [126] call atan2_16
|
|
jsr atan2_16
|
|
// [127] atan2_16::return#2 = atan2_16::return#0
|
|
jmp __b5
|
|
// init_angle_screen::@5
|
|
__b5:
|
|
// [128] init_angle_screen::angle_w#0 = atan2_16::return#2
|
|
// [129] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
|
lda #$80
|
|
clc
|
|
adc.z __7
|
|
sta.z __7
|
|
bcc !+
|
|
inc.z __7+1
|
|
!:
|
|
// [130] init_angle_screen::ang_w#0 = > init_angle_screen::$7 -- vbuz1=_hi_vwuz2
|
|
lda.z __7+1
|
|
sta.z ang_w
|
|
// [131] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
|
lda.z ang_w
|
|
ldy.z xb
|
|
sta (screen_bottomline),y
|
|
// [132] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
|
lda.z ang_w
|
|
eor #$ff
|
|
clc
|
|
adc #1
|
|
// [133] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
|
ldy.z xb
|
|
sta (screen_topline),y
|
|
// [134] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
|
lda #$80
|
|
clc
|
|
adc.z ang_w
|
|
// [135] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
|
ldy.z x
|
|
sta (screen_topline),y
|
|
// [136] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
|
lda #$80
|
|
sec
|
|
sbc.z ang_w
|
|
// [137] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
|
ldy.z x
|
|
sta (screen_bottomline),y
|
|
// [138] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [139] init_angle_screen::xb#1 = -- init_angle_screen::xb#2 -- vbuz1=_dec_vbuz1
|
|
dec.z xb
|
|
// [112] phi from init_angle_screen::@5 to init_angle_screen::@2 [phi:init_angle_screen::@5->init_angle_screen::@2]
|
|
__b2_from___b5:
|
|
// [112] phi init_angle_screen::xb#2 = init_angle_screen::xb#1 [phi:init_angle_screen::@5->init_angle_screen::@2#0] -- register_copy
|
|
// [112] phi init_angle_screen::x#2 = init_angle_screen::x#1 [phi:init_angle_screen::@5->init_angle_screen::@2#1] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// initSprites
|
|
// Initialize sprites
|
|
initSprites: {
|
|
.label sp = $a
|
|
// [141] phi from initSprites to initSprites::@1 [phi:initSprites->initSprites::@1]
|
|
__b1_from_initSprites:
|
|
// [141] phi initSprites::sp#2 = SPRITE_DATA [phi:initSprites->initSprites::@1#0] -- pbuz1=pbuc1
|
|
lda #<SPRITE_DATA
|
|
sta.z sp
|
|
lda #>SPRITE_DATA
|
|
sta.z sp+1
|
|
jmp __b1
|
|
// Clear sprite data
|
|
// initSprites::@1
|
|
__b1:
|
|
// [142] if(initSprites::sp#2<SPRITE_DATA+NUM_PROCESSING*$40) goto initSprites::@2 -- pbuz1_lt_pbuc1_then_la1
|
|
lda.z sp+1
|
|
cmp #>SPRITE_DATA+NUM_PROCESSING*$40
|
|
bcc __b2
|
|
bne !+
|
|
lda.z sp
|
|
cmp #<SPRITE_DATA+NUM_PROCESSING*$40
|
|
bcc __b2
|
|
!:
|
|
// [143] phi from initSprites::@1 to initSprites::@3 [phi:initSprites::@1->initSprites::@3]
|
|
__b3_from___b1:
|
|
// [143] phi initSprites::i#2 = 0 [phi:initSprites::@1->initSprites::@3#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b3
|
|
// Initialize sprite registers
|
|
// [143] phi from initSprites::@3 to initSprites::@3 [phi:initSprites::@3->initSprites::@3]
|
|
__b3_from___b3:
|
|
// [143] phi initSprites::i#2 = initSprites::i#1 [phi:initSprites::@3->initSprites::@3#0] -- register_copy
|
|
jmp __b3
|
|
// initSprites::@3
|
|
__b3:
|
|
// [144] SPRITES_COLOR[initSprites::i#2] = LIGHT_BLUE -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #LIGHT_BLUE
|
|
sta SPRITES_COLOR,x
|
|
// [145] initSprites::i#1 = ++ initSprites::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [146] if(initSprites::i#1!=8) goto initSprites::@3 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #8
|
|
bne __b3_from___b3
|
|
jmp __b4
|
|
// initSprites::@4
|
|
__b4:
|
|
// [147] *SPRITES_MC = 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta SPRITES_MC
|
|
// [148] *SPRITES_EXPAND_X = 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta SPRITES_EXPAND_X
|
|
// [149] *SPRITES_EXPAND_Y = 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta SPRITES_EXPAND_Y
|
|
jmp __breturn
|
|
// initSprites::@return
|
|
__breturn:
|
|
// [150] return
|
|
rts
|
|
// initSprites::@2
|
|
__b2:
|
|
// [151] *initSprites::sp#2 = 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
ldy #0
|
|
sta (sp),y
|
|
// [152] initSprites::sp#1 = ++ initSprites::sp#2 -- pbuz1=_inc_pbuz1
|
|
inc.z sp
|
|
bne !+
|
|
inc.z sp+1
|
|
!:
|
|
// [141] phi from initSprites::@2 to initSprites::@1 [phi:initSprites::@2->initSprites::@1]
|
|
__b1_from___b2:
|
|
// [141] phi initSprites::sp#2 = initSprites::sp#1 [phi:initSprites::@2->initSprites::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// setupRasterIrq
|
|
// Setup Raster IRQ
|
|
setupRasterIrq: {
|
|
.label irqRoutine = irqTop
|
|
// asm { sei }
|
|
sei
|
|
// [154] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2
|
|
// Disable kernal & basic
|
|
lda #PROCPORT_DDR_MEMORY_MASK
|
|
sta PROCPORT_DDR
|
|
// [155] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_IO
|
|
sta PROCPORT
|
|
// [156] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2
|
|
// Disable CIA 1 Timer IRQ
|
|
lda #CIA_INTERRUPT_CLEAR
|
|
sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT
|
|
jmp __b1
|
|
// setupRasterIrq::@1
|
|
__b1:
|
|
// [157] *VICII_CONTROL = *VICII_CONTROL & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2
|
|
lda #$7f
|
|
and VICII_CONTROL
|
|
sta VICII_CONTROL
|
|
jmp __b2
|
|
// setupRasterIrq::@2
|
|
__b2:
|
|
// [158] *RASTER = <RASTER_IRQ_TOP -- _deref_pbuc1=vbuc2
|
|
lda #RASTER_IRQ_TOP
|
|
sta RASTER
|
|
// [159] *IRQ_ENABLE = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Enable Raster Interrupt
|
|
lda #IRQ_RASTER
|
|
sta IRQ_ENABLE
|
|
// [160] *HARDWARE_IRQ = setupRasterIrq::irqRoutine#0 -- _deref_qprc1=pprc2
|
|
// Set the IRQ routine
|
|
lda #<irqRoutine
|
|
sta HARDWARE_IRQ
|
|
lda #>irqRoutine
|
|
sta HARDWARE_IRQ+1
|
|
// asm { cli }
|
|
cli
|
|
jmp __breturn
|
|
// setupRasterIrq::@return
|
|
__breturn:
|
|
// [162] return
|
|
rts
|
|
}
|
|
// getCharToProcess
|
|
// Find the non-space char closest to the center of the screen
|
|
// If no non-space char is found the distance will be 0xffff
|
|
getCharToProcess: {
|
|
.label __8 = $2a
|
|
.label __9 = $2a
|
|
.label __11 = $2a
|
|
.label screen_line = $12
|
|
.label dist_line = $a
|
|
.label y = $14
|
|
.label return_x = $2c
|
|
.label return_y = 9
|
|
.label closest_dist = $27
|
|
.label closest_x = $2c
|
|
.label closest_y = 9
|
|
.label __12 = $1f
|
|
.label __13 = $2a
|
|
// [163] getCharToProcess::screen_line#0 = (byte*)SCREEN_COPY#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_COPY
|
|
sta.z screen_line
|
|
lda.z SCREEN_COPY+1
|
|
sta.z screen_line+1
|
|
// [164] getCharToProcess::dist_line#0 = (byte*)SCREEN_DIST#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_DIST
|
|
sta.z dist_line
|
|
lda.z SCREEN_DIST+1
|
|
sta.z dist_line+1
|
|
// [165] phi from getCharToProcess to getCharToProcess::@1 [phi:getCharToProcess->getCharToProcess::@1]
|
|
__b1_from_getCharToProcess:
|
|
// [165] phi getCharToProcess::closest_y#9 = 0 [phi:getCharToProcess->getCharToProcess::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z closest_y
|
|
// [165] phi getCharToProcess::closest_x#9 = 0 [phi:getCharToProcess->getCharToProcess::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z closest_x
|
|
// [165] phi getCharToProcess::y#7 = 0 [phi:getCharToProcess->getCharToProcess::@1#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
// [165] phi getCharToProcess::closest_dist#8 = NOT_FOUND [phi:getCharToProcess->getCharToProcess::@1#3] -- vbuz1=vbuc1
|
|
lda #NOT_FOUND
|
|
sta.z closest_dist
|
|
// [165] phi getCharToProcess::dist_line#6 = getCharToProcess::dist_line#0 [phi:getCharToProcess->getCharToProcess::@1#4] -- register_copy
|
|
// [165] phi getCharToProcess::screen_line#4 = getCharToProcess::screen_line#0 [phi:getCharToProcess->getCharToProcess::@1#5] -- register_copy
|
|
jmp __b1
|
|
// getCharToProcess::@1
|
|
__b1:
|
|
// [166] phi from getCharToProcess::@1 to getCharToProcess::@2 [phi:getCharToProcess::@1->getCharToProcess::@2]
|
|
__b2_from___b1:
|
|
// [166] phi getCharToProcess::closest_y#7 = getCharToProcess::closest_y#9 [phi:getCharToProcess::@1->getCharToProcess::@2#0] -- register_copy
|
|
// [166] phi getCharToProcess::closest_x#7 = getCharToProcess::closest_x#9 [phi:getCharToProcess::@1->getCharToProcess::@2#1] -- register_copy
|
|
// [166] phi getCharToProcess::closest_dist#2 = getCharToProcess::closest_dist#8 [phi:getCharToProcess::@1->getCharToProcess::@2#2] -- register_copy
|
|
// [166] phi getCharToProcess::x#2 = 0 [phi:getCharToProcess::@1->getCharToProcess::@2#3] -- vbuyy=vbuc1
|
|
ldy #0
|
|
jmp __b2
|
|
// getCharToProcess::@2
|
|
__b2:
|
|
// [167] if(getCharToProcess::screen_line#4[getCharToProcess::x#2]==' ') goto getCharToProcess::@11 -- pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1
|
|
lda #' '
|
|
cmp (screen_line),y
|
|
beq __b11
|
|
jmp __b4
|
|
// getCharToProcess::@4
|
|
__b4:
|
|
// [168] getCharToProcess::dist#0 = getCharToProcess::dist_line#6[getCharToProcess::x#2] -- vbuxx=pbuz1_derefidx_vbuyy
|
|
lda (dist_line),y
|
|
tax
|
|
// [169] if(getCharToProcess::dist#0>=getCharToProcess::closest_dist#2) goto getCharToProcess::@12 -- vbuxx_ge_vbuz1_then_la1
|
|
cpx.z closest_dist
|
|
bcs __b12
|
|
jmp __b5
|
|
// getCharToProcess::@5
|
|
__b5:
|
|
// [170] getCharToProcess::return_x#7 = getCharToProcess::x#2 -- vbuz1=vbuyy
|
|
sty.z return_x
|
|
// [171] getCharToProcess::return_y#7 = getCharToProcess::y#7 -- vbuz1=vbuz2
|
|
lda.z y
|
|
sta.z return_y
|
|
// [172] phi from getCharToProcess::@11 getCharToProcess::@12 getCharToProcess::@5 to getCharToProcess::@3 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3]
|
|
__b3_from___b11:
|
|
__b3_from___b12:
|
|
__b3_from___b5:
|
|
// [172] phi getCharToProcess::return_y#1 = getCharToProcess::closest_y#7 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3#0] -- register_copy
|
|
// [172] phi getCharToProcess::return_x#1 = getCharToProcess::closest_x#7 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3#1] -- register_copy
|
|
// [172] phi getCharToProcess::return_dist#1 = getCharToProcess::return_dist#5 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3#2] -- register_copy
|
|
jmp __b3
|
|
// getCharToProcess::@3
|
|
__b3:
|
|
// [173] getCharToProcess::x#1 = ++ getCharToProcess::x#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [174] if(getCharToProcess::x#1!=$28) goto getCharToProcess::@10 -- vbuyy_neq_vbuc1_then_la1
|
|
cpy #$28
|
|
bne __b10
|
|
jmp __b6
|
|
// getCharToProcess::@6
|
|
__b6:
|
|
// [175] getCharToProcess::screen_line#1 = getCharToProcess::screen_line#4 + $28 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$28
|
|
clc
|
|
adc.z screen_line
|
|
sta.z screen_line
|
|
bcc !+
|
|
inc.z screen_line+1
|
|
!:
|
|
// [176] getCharToProcess::dist_line#1 = getCharToProcess::dist_line#6 + $28 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$28
|
|
clc
|
|
adc.z dist_line
|
|
sta.z dist_line
|
|
bcc !+
|
|
inc.z dist_line+1
|
|
!:
|
|
// [177] getCharToProcess::y#1 = ++ getCharToProcess::y#7 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [178] if(getCharToProcess::y#1!=$19) goto getCharToProcess::@9 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$19
|
|
cmp.z y
|
|
bne __b9
|
|
jmp __b7
|
|
// getCharToProcess::@7
|
|
__b7:
|
|
// [179] if(getCharToProcess::return_dist#1==NOT_FOUND) goto getCharToProcess::@return -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #NOT_FOUND
|
|
beq __breturn
|
|
jmp __b8
|
|
// getCharToProcess::@8
|
|
__b8:
|
|
// [180] getCharToProcess::$11 = (word)getCharToProcess::return_y#1 -- vwuz1=_word_vbuz2
|
|
lda.z return_y
|
|
sta.z __11
|
|
lda #0
|
|
sta.z __11+1
|
|
// [181] getCharToProcess::$12 = getCharToProcess::$11 << 2 -- vwuz1=vwuz2_rol_2
|
|
lda.z __11
|
|
asl
|
|
sta.z __12
|
|
lda.z __11+1
|
|
rol
|
|
sta.z __12+1
|
|
asl.z __12
|
|
rol.z __12+1
|
|
// [182] getCharToProcess::$13 = getCharToProcess::$12 + getCharToProcess::$11 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda.z __13
|
|
clc
|
|
adc.z __12
|
|
sta.z __13
|
|
lda.z __13+1
|
|
adc.z __12+1
|
|
sta.z __13+1
|
|
// [183] getCharToProcess::$8 = getCharToProcess::$13 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
// [184] getCharToProcess::$9 = (byte*)SCREEN_COPY#0 + getCharToProcess::$8 -- pbuz1=pbuz2_plus_vwuz1
|
|
lda.z __9
|
|
clc
|
|
adc.z SCREEN_COPY
|
|
sta.z __9
|
|
lda.z __9+1
|
|
adc.z SCREEN_COPY+1
|
|
sta.z __9+1
|
|
// [185] getCharToProcess::$9[getCharToProcess::return_x#1] = ' ' -- pbuz1_derefidx_vbuz2=vbuc1
|
|
// clear the found char on the screen copy
|
|
lda #' '
|
|
ldy.z return_x
|
|
sta (__9),y
|
|
jmp __breturn
|
|
// getCharToProcess::@return
|
|
__breturn:
|
|
// [186] return
|
|
rts
|
|
// getCharToProcess::@9
|
|
__b9:
|
|
// [187] getCharToProcess::closest_dist#10 = getCharToProcess::return_dist#1 -- vbuz1=vbuxx
|
|
stx.z closest_dist
|
|
// [165] phi from getCharToProcess::@9 to getCharToProcess::@1 [phi:getCharToProcess::@9->getCharToProcess::@1]
|
|
__b1_from___b9:
|
|
// [165] phi getCharToProcess::closest_y#9 = getCharToProcess::return_y#1 [phi:getCharToProcess::@9->getCharToProcess::@1#0] -- register_copy
|
|
// [165] phi getCharToProcess::closest_x#9 = getCharToProcess::return_x#1 [phi:getCharToProcess::@9->getCharToProcess::@1#1] -- register_copy
|
|
// [165] phi getCharToProcess::y#7 = getCharToProcess::y#1 [phi:getCharToProcess::@9->getCharToProcess::@1#2] -- register_copy
|
|
// [165] phi getCharToProcess::closest_dist#8 = getCharToProcess::closest_dist#10 [phi:getCharToProcess::@9->getCharToProcess::@1#3] -- register_copy
|
|
// [165] phi getCharToProcess::dist_line#6 = getCharToProcess::dist_line#1 [phi:getCharToProcess::@9->getCharToProcess::@1#4] -- register_copy
|
|
// [165] phi getCharToProcess::screen_line#4 = getCharToProcess::screen_line#1 [phi:getCharToProcess::@9->getCharToProcess::@1#5] -- register_copy
|
|
jmp __b1
|
|
// getCharToProcess::@10
|
|
__b10:
|
|
// [188] getCharToProcess::closest_dist#12 = getCharToProcess::return_dist#1 -- vbuz1=vbuxx
|
|
stx.z closest_dist
|
|
// [166] phi from getCharToProcess::@10 to getCharToProcess::@2 [phi:getCharToProcess::@10->getCharToProcess::@2]
|
|
__b2_from___b10:
|
|
// [166] phi getCharToProcess::closest_y#7 = getCharToProcess::return_y#1 [phi:getCharToProcess::@10->getCharToProcess::@2#0] -- register_copy
|
|
// [166] phi getCharToProcess::closest_x#7 = getCharToProcess::return_x#1 [phi:getCharToProcess::@10->getCharToProcess::@2#1] -- register_copy
|
|
// [166] phi getCharToProcess::closest_dist#2 = getCharToProcess::closest_dist#12 [phi:getCharToProcess::@10->getCharToProcess::@2#2] -- register_copy
|
|
// [166] phi getCharToProcess::x#2 = getCharToProcess::x#1 [phi:getCharToProcess::@10->getCharToProcess::@2#3] -- register_copy
|
|
jmp __b2
|
|
// getCharToProcess::@12
|
|
__b12:
|
|
// [189] getCharToProcess::return_dist#6 = getCharToProcess::closest_dist#2 -- vbuxx=vbuz1
|
|
ldx.z closest_dist
|
|
jmp __b3_from___b12
|
|
// getCharToProcess::@11
|
|
__b11:
|
|
// [190] getCharToProcess::return_dist#5 = getCharToProcess::closest_dist#2 -- vbuxx=vbuz1
|
|
ldx.z closest_dist
|
|
jmp __b3_from___b11
|
|
}
|
|
// startProcessing
|
|
// Start processing a char - by inserting it into the PROCESSING array
|
|
// startProcessing(byte zp($1e) center_x, byte zp($14) center_y)
|
|
startProcessing: {
|
|
.label __0 = $21
|
|
.label __4 = $c
|
|
.label __6 = $a
|
|
.label __8 = $28
|
|
.label __9 = $28
|
|
.label __11 = $2a
|
|
.label __12 = $2a
|
|
.label __23 = $21
|
|
.label __24 = $c
|
|
.label __25 = $a
|
|
.label __26 = $28
|
|
.label __27 = $2a
|
|
.label center_x = $1e
|
|
.label center_y = $14
|
|
.label i = 9
|
|
.label offset = $21
|
|
.label colPtr = $25
|
|
.label spriteCol = $27
|
|
.label screenPtr = $21
|
|
.label spriteData = $c
|
|
.label chargenData = $a
|
|
.label spriteX = $28
|
|
.label spriteY = $2a
|
|
.label spritePtr = $2c
|
|
// Busy-wait while finding an empty slot in the PROCESSING array
|
|
.label freeIdx = 9
|
|
.label __33 = $23
|
|
.label __34 = $21
|
|
// [192] phi from startProcessing to startProcessing::@1 [phi:startProcessing->startProcessing::@1]
|
|
__b1_from_startProcessing:
|
|
// [192] phi startProcessing::freeIdx#6 = $ff [phi:startProcessing->startProcessing::@1#0] -- vbuxx=vbuc1
|
|
ldx #$ff
|
|
jmp __b1
|
|
// startProcessing::@1
|
|
__b1:
|
|
// [193] phi from startProcessing::@1 to startProcessing::@2 [phi:startProcessing::@1->startProcessing::@2]
|
|
__b2_from___b1:
|
|
// [193] phi startProcessing::i#2 = 0 [phi:startProcessing::@1->startProcessing::@2#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z i
|
|
jmp __b2
|
|
// [193] phi from startProcessing::@3 to startProcessing::@2 [phi:startProcessing::@3->startProcessing::@2]
|
|
__b2_from___b3:
|
|
// [193] phi startProcessing::i#2 = startProcessing::i#1 [phi:startProcessing::@3->startProcessing::@2#0] -- register_copy
|
|
jmp __b2
|
|
// startProcessing::@2
|
|
__b2:
|
|
// [194] startProcessing::$28 = startProcessing::i#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z i
|
|
asl
|
|
// [195] startProcessing::$29 = startProcessing::$28 + startProcessing::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [196] startProcessing::$30 = startProcessing::$29 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [197] startProcessing::$31 = startProcessing::$30 + startProcessing::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [198] startProcessing::$21 = startProcessing::$31 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [199] if(((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21]!=STATUS_FREE) goto startProcessing::@3 -- pbuc1_derefidx_vbuaa_neq_vbuc2_then_la1
|
|
tay
|
|
lda #STATUS_FREE
|
|
cmp PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,y
|
|
bne __b3
|
|
// [200] phi from startProcessing::@2 startProcessing::@9 to startProcessing::@4 [phi:startProcessing::@2/startProcessing::@9->startProcessing::@4]
|
|
__b4_from___b2:
|
|
__b4_from___b9:
|
|
// [200] phi startProcessing::freeIdx#2 = startProcessing::i#2 [phi:startProcessing::@2/startProcessing::@9->startProcessing::@4#0] -- register_copy
|
|
jmp __b4
|
|
// startProcessing::@4
|
|
__b4:
|
|
// [201] if(startProcessing::freeIdx#2==$ff) goto startProcessing::@8 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #$ff
|
|
cmp.z freeIdx
|
|
beq __b8
|
|
jmp __b5
|
|
// startProcessing::@5
|
|
__b5:
|
|
// [202] startProcessing::$23 = (word)startProcessing::center_y#0 -- vwuz1=_word_vbuz2
|
|
lda.z center_y
|
|
sta.z __23
|
|
lda #0
|
|
sta.z __23+1
|
|
// [203] startProcessing::$33 = startProcessing::$23 << 2 -- vwuz1=vwuz2_rol_2
|
|
lda.z __23
|
|
asl
|
|
sta.z __33
|
|
lda.z __23+1
|
|
rol
|
|
sta.z __33+1
|
|
asl.z __33
|
|
rol.z __33+1
|
|
// [204] startProcessing::$34 = startProcessing::$33 + startProcessing::$23 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda.z __34
|
|
clc
|
|
adc.z __33
|
|
sta.z __34
|
|
lda.z __34+1
|
|
adc.z __33+1
|
|
sta.z __34+1
|
|
// [205] startProcessing::$0 = startProcessing::$34 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __0
|
|
rol.z __0+1
|
|
asl.z __0
|
|
rol.z __0+1
|
|
asl.z __0
|
|
rol.z __0+1
|
|
// [206] startProcessing::offset#0 = startProcessing::$0 + startProcessing::center_x#0 -- vwuz1=vwuz1_plus_vbuz2
|
|
lda.z center_x
|
|
clc
|
|
adc.z offset
|
|
sta.z offset
|
|
bcc !+
|
|
inc.z offset+1
|
|
!:
|
|
// [207] startProcessing::colPtr#0 = COLS + startProcessing::offset#0 -- pbuz1=pbuc1_plus_vwuz2
|
|
clc
|
|
lda.z offset
|
|
adc #<COLS
|
|
sta.z colPtr
|
|
lda.z offset+1
|
|
adc #>COLS
|
|
sta.z colPtr+1
|
|
// [208] startProcessing::spriteCol#0 = *startProcessing::colPtr#0 -- vbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (colPtr),y
|
|
sta.z spriteCol
|
|
// [209] startProcessing::screenPtr#0 = SCREEN + startProcessing::offset#0 -- pbuz1=pbuc1_plus_vwuz1
|
|
clc
|
|
lda.z screenPtr
|
|
adc #<SCREEN
|
|
sta.z screenPtr
|
|
lda.z screenPtr+1
|
|
adc #>SCREEN
|
|
sta.z screenPtr+1
|
|
// [210] startProcessing::$24 = (word)startProcessing::freeIdx#2 -- vwuz1=_word_vbuz2
|
|
lda.z freeIdx
|
|
sta.z __24
|
|
lda #0
|
|
sta.z __24+1
|
|
// [211] startProcessing::$4 = startProcessing::$24 << 6 -- vwuz1=vwuz1_rol_6
|
|
lda.z __4+1
|
|
lsr
|
|
sta.z $ff
|
|
lda.z __4
|
|
ror
|
|
sta.z __4+1
|
|
lda #0
|
|
ror
|
|
sta.z __4
|
|
lsr.z $ff
|
|
ror.z __4+1
|
|
ror.z __4
|
|
// [212] startProcessing::spriteData#0 = SPRITE_DATA + startProcessing::$4 -- pbuz1=pbuc1_plus_vwuz1
|
|
clc
|
|
lda.z spriteData
|
|
adc #<SPRITE_DATA
|
|
sta.z spriteData
|
|
lda.z spriteData+1
|
|
adc #>SPRITE_DATA
|
|
sta.z spriteData+1
|
|
// [213] startProcessing::ch#0 = *startProcessing::screenPtr#0 -- vbuaa=_deref_pbuz1
|
|
ldy #0
|
|
lda (screenPtr),y
|
|
// [214] startProcessing::$25 = (word)startProcessing::ch#0 -- vwuz1=_word_vbuaa
|
|
sta.z __25
|
|
lda #0
|
|
sta.z __25+1
|
|
// [215] startProcessing::$6 = startProcessing::$25 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __6
|
|
rol.z __6+1
|
|
asl.z __6
|
|
rol.z __6+1
|
|
asl.z __6
|
|
rol.z __6+1
|
|
// [216] startProcessing::chargenData#0 = CHARGEN + startProcessing::$6 -- pbuz1=pbuc1_plus_vwuz1
|
|
clc
|
|
lda.z chargenData
|
|
adc #<CHARGEN
|
|
sta.z chargenData
|
|
lda.z chargenData+1
|
|
adc #>CHARGEN
|
|
sta.z chargenData+1
|
|
// asm { sei }
|
|
sei
|
|
// [218] *PROCPORT = PROCPORT_RAM_CHARROM -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_CHARROM
|
|
sta PROCPORT
|
|
// [219] phi from startProcessing::@5 to startProcessing::@6 [phi:startProcessing::@5->startProcessing::@6]
|
|
__b6_from___b5:
|
|
// [219] phi startProcessing::i1#2 = 0 [phi:startProcessing::@5->startProcessing::@6#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [219] phi startProcessing::spriteData#2 = startProcessing::spriteData#0 [phi:startProcessing::@5->startProcessing::@6#1] -- register_copy
|
|
// [219] phi startProcessing::chargenData#2 = startProcessing::chargenData#0 [phi:startProcessing::@5->startProcessing::@6#2] -- register_copy
|
|
jmp __b6
|
|
// [219] phi from startProcessing::@6 to startProcessing::@6 [phi:startProcessing::@6->startProcessing::@6]
|
|
__b6_from___b6:
|
|
// [219] phi startProcessing::i1#2 = startProcessing::i1#1 [phi:startProcessing::@6->startProcessing::@6#0] -- register_copy
|
|
// [219] phi startProcessing::spriteData#2 = startProcessing::spriteData#1 [phi:startProcessing::@6->startProcessing::@6#1] -- register_copy
|
|
// [219] phi startProcessing::chargenData#2 = startProcessing::chargenData#1 [phi:startProcessing::@6->startProcessing::@6#2] -- register_copy
|
|
jmp __b6
|
|
// startProcessing::@6
|
|
__b6:
|
|
// [220] *startProcessing::spriteData#2 = *startProcessing::chargenData#2 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (chargenData),y
|
|
ldy #0
|
|
sta (spriteData),y
|
|
// [221] startProcessing::spriteData#1 = startProcessing::spriteData#2 + 3 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #3
|
|
clc
|
|
adc.z spriteData
|
|
sta.z spriteData
|
|
bcc !+
|
|
inc.z spriteData+1
|
|
!:
|
|
// [222] startProcessing::chargenData#1 = ++ startProcessing::chargenData#2 -- pbuz1=_inc_pbuz1
|
|
inc.z chargenData
|
|
bne !+
|
|
inc.z chargenData+1
|
|
!:
|
|
// [223] startProcessing::i1#1 = ++ startProcessing::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [224] if(startProcessing::i1#1!=8) goto startProcessing::@6 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #8
|
|
bne __b6_from___b6
|
|
jmp __b7
|
|
// startProcessing::@7
|
|
__b7:
|
|
// [225] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_IO
|
|
sta PROCPORT
|
|
// asm { cli }
|
|
cli
|
|
// [227] startProcessing::$26 = (word)startProcessing::center_x#0 -- vwuz1=_word_vbuz2
|
|
lda.z center_x
|
|
sta.z __26
|
|
lda #0
|
|
sta.z __26+1
|
|
// [228] startProcessing::$8 = startProcessing::$26 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
// [229] startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8 -- vwuz1=vbuc1_plus_vwuz1
|
|
lda #BORDER_XPOS_LEFT
|
|
clc
|
|
adc.z __9
|
|
sta.z __9
|
|
bcc !+
|
|
inc.z __9+1
|
|
!:
|
|
// [230] startProcessing::spriteX#0 = startProcessing::$9 << 4 -- vwuz1=vwuz1_rol_4
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
// [231] startProcessing::$27 = (word)startProcessing::center_y#0 -- vwuz1=_word_vbuz2
|
|
lda.z center_y
|
|
sta.z __27
|
|
lda #0
|
|
sta.z __27+1
|
|
// [232] startProcessing::$11 = startProcessing::$27 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __11
|
|
rol.z __11+1
|
|
asl.z __11
|
|
rol.z __11+1
|
|
asl.z __11
|
|
rol.z __11+1
|
|
// [233] startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11 -- vwuz1=vbuc1_plus_vwuz1
|
|
lda #BORDER_YPOS_TOP
|
|
clc
|
|
adc.z __12
|
|
sta.z __12
|
|
bcc !+
|
|
inc.z __12+1
|
|
!:
|
|
// [234] startProcessing::spriteY#0 = startProcessing::$12 << 4 -- vwuz1=vwuz1_rol_4
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
// [235] startProcessing::spritePtr#0 = (byte)SPRITE_DATA/$40 + startProcessing::freeIdx#2 -- vbuz1=vbuc1_plus_vbuz2
|
|
lax.z freeIdx
|
|
axs #-[SPRITE_DATA/$40]
|
|
stx.z spritePtr
|
|
// [236] startProcessing::$15 = startProcessing::freeIdx#2 << 3 -- vbuyy=vbuz1_rol_3
|
|
lda.z freeIdx
|
|
asl
|
|
asl
|
|
asl
|
|
tay
|
|
// [237] startProcessing::$36 = startProcessing::freeIdx#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z freeIdx
|
|
asl
|
|
// [238] startProcessing::$37 = startProcessing::$36 + startProcessing::freeIdx#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z freeIdx
|
|
// [239] startProcessing::$38 = startProcessing::$37 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [240] startProcessing::$39 = startProcessing::$38 + startProcessing::freeIdx#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z freeIdx
|
|
// [241] startProcessing::$22 = startProcessing::$39 << 1 -- vbuxx=vbuaa_rol_1
|
|
asl
|
|
tax
|
|
// [242] ((word*)PROCESSING)[startProcessing::$22] = startProcessing::spriteX#0 -- pwuc1_derefidx_vbuxx=vwuz1
|
|
lda.z spriteX
|
|
sta PROCESSING,x
|
|
lda.z spriteX+1
|
|
sta PROCESSING+1,x
|
|
// [243] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y)[startProcessing::$22] = startProcessing::spriteY#0 -- pwuc1_derefidx_vbuxx=vwuz1
|
|
lda.z spriteY
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y,x
|
|
lda.z spriteY+1
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y+1,x
|
|
// [244] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX)[startProcessing::$22] = (word)startProcessing::$15 -- pwuc1_derefidx_vbuxx=_word_vbuyy
|
|
tya
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX,x
|
|
lda #0
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX+1,x
|
|
// [245] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY)[startProcessing::$22] = $3c -- pwuc1_derefidx_vbuxx=vwuc2
|
|
lda #<$3c
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY,x
|
|
lda #>$3c
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY+1,x
|
|
// [246] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID)[startProcessing::$22] = startProcessing::freeIdx#2 -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z freeIdx
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID,x
|
|
// [247] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR)[startProcessing::$22] = startProcessing::spritePtr#0 -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z spritePtr
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR,x
|
|
// [248] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL)[startProcessing::$22] = startProcessing::spriteCol#0 -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z spriteCol
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL,x
|
|
// [249] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$22] = STATUS_NEW -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #STATUS_NEW
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,x
|
|
// [250] ((byte**)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)[startProcessing::$22] = startProcessing::screenPtr#0 -- qbuc1_derefidx_vbuxx=pbuz1
|
|
lda.z screenPtr
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR,x
|
|
lda.z screenPtr+1
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR+1,x
|
|
jmp __breturn
|
|
// startProcessing::@return
|
|
__breturn:
|
|
// [251] return
|
|
rts
|
|
// startProcessing::@8
|
|
__b8:
|
|
// [252] startProcessing::freeIdx#7 = startProcessing::freeIdx#2 -- vbuxx=vbuz1
|
|
ldx.z freeIdx
|
|
// [192] phi from startProcessing::@8 to startProcessing::@1 [phi:startProcessing::@8->startProcessing::@1]
|
|
__b1_from___b8:
|
|
// [192] phi startProcessing::freeIdx#6 = startProcessing::freeIdx#7 [phi:startProcessing::@8->startProcessing::@1#0] -- register_copy
|
|
jmp __b1
|
|
// startProcessing::@3
|
|
__b3:
|
|
// [253] startProcessing::i#1 = ++ startProcessing::i#2 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [254] if(startProcessing::i#1!=NUM_PROCESSING-1+1) goto startProcessing::@2 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #NUM_PROCESSING-1+1
|
|
cmp.z i
|
|
bne __b2_from___b3
|
|
jmp __b9
|
|
// startProcessing::@9
|
|
__b9:
|
|
// [255] startProcessing::freeIdx#8 = startProcessing::freeIdx#6 -- vbuz1=vbuxx
|
|
stx.z freeIdx
|
|
jmp __b4_from___b9
|
|
}
|
|
// atan2_16
|
|
// Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y)
|
|
// Finding the angle requires a binary search using CORDIC_ITERATIONS_16
|
|
// Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI)
|
|
// atan2_16(signed word zp($25) x, signed word zp($28) y)
|
|
atan2_16: {
|
|
.label __2 = $c
|
|
.label __7 = $2a
|
|
.label yi = $c
|
|
.label xi = $2a
|
|
.label angle = $1f
|
|
.label xd = $23
|
|
.label yd = $21
|
|
.label return = $1f
|
|
.label x = $25
|
|
.label y = $28
|
|
// [256] if(atan2_16::y#0>=0) goto atan2_16::@1 -- vwsz1_ge_0_then_la1
|
|
lda.z y+1
|
|
bpl __b1
|
|
jmp __b2
|
|
// atan2_16::@2
|
|
__b2:
|
|
// [257] atan2_16::$2 = - atan2_16::y#0 -- vwsz1=_neg_vwsz2
|
|
sec
|
|
lda #0
|
|
sbc.z y
|
|
sta.z __2
|
|
lda #0
|
|
sbc.z y+1
|
|
sta.z __2+1
|
|
// [258] phi from atan2_16::@1 atan2_16::@2 to atan2_16::@3 [phi:atan2_16::@1/atan2_16::@2->atan2_16::@3]
|
|
__b3_from___b1:
|
|
__b3_from___b2:
|
|
// [258] phi atan2_16::yi#0 = atan2_16::yi#16 [phi:atan2_16::@1/atan2_16::@2->atan2_16::@3#0] -- register_copy
|
|
jmp __b3
|
|
// atan2_16::@3
|
|
__b3:
|
|
// [259] if(atan2_16::x#0>=0) goto atan2_16::@4 -- vwsz1_ge_0_then_la1
|
|
lda.z x+1
|
|
bpl __b4
|
|
jmp __b5
|
|
// atan2_16::@5
|
|
__b5:
|
|
// [260] atan2_16::$7 = - atan2_16::x#0 -- vwsz1=_neg_vwsz2
|
|
sec
|
|
lda #0
|
|
sbc.z x
|
|
sta.z __7
|
|
lda #0
|
|
sbc.z x+1
|
|
sta.z __7+1
|
|
// [261] phi from atan2_16::@4 atan2_16::@5 to atan2_16::@6 [phi:atan2_16::@4/atan2_16::@5->atan2_16::@6]
|
|
__b6_from___b4:
|
|
__b6_from___b5:
|
|
// [261] phi atan2_16::xi#0 = atan2_16::xi#13 [phi:atan2_16::@4/atan2_16::@5->atan2_16::@6#0] -- register_copy
|
|
jmp __b6
|
|
// atan2_16::@6
|
|
__b6:
|
|
// [262] phi from atan2_16::@6 to atan2_16::@10 [phi:atan2_16::@6->atan2_16::@10]
|
|
__b10_from___b6:
|
|
// [262] phi atan2_16::angle#12 = 0 [phi:atan2_16::@6->atan2_16::@10#0] -- vwuz1=vwuc1
|
|
lda #<0
|
|
sta.z angle
|
|
lda #>0
|
|
sta.z angle+1
|
|
// [262] phi atan2_16::i#2 = 0 [phi:atan2_16::@6->atan2_16::@10#1] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [262] phi atan2_16::xi#3 = atan2_16::xi#0 [phi:atan2_16::@6->atan2_16::@10#2] -- register_copy
|
|
// [262] phi atan2_16::yi#3 = atan2_16::yi#0 [phi:atan2_16::@6->atan2_16::@10#3] -- register_copy
|
|
jmp __b10
|
|
// atan2_16::@10
|
|
__b10:
|
|
// [263] if(atan2_16::yi#3!=0) goto atan2_16::@11 -- vwsz1_neq_0_then_la1
|
|
lda.z yi+1
|
|
ora.z yi
|
|
bne __b11
|
|
// [264] phi from atan2_16::@10 atan2_16::@19 to atan2_16::@12 [phi:atan2_16::@10/atan2_16::@19->atan2_16::@12]
|
|
__b12_from___b10:
|
|
__b12_from___b19:
|
|
// [264] phi atan2_16::angle#6 = atan2_16::angle#12 [phi:atan2_16::@10/atan2_16::@19->atan2_16::@12#0] -- register_copy
|
|
jmp __b12
|
|
// atan2_16::@12
|
|
__b12:
|
|
// [265] atan2_16::angle#1 = atan2_16::angle#6 >> 1 -- vwuz1=vwuz1_ror_1
|
|
lsr.z angle+1
|
|
ror.z angle
|
|
// [266] if(atan2_16::x#0>=0) goto atan2_16::@7 -- vwsz1_ge_0_then_la1
|
|
lda.z x+1
|
|
bpl __b7_from___b12
|
|
jmp __b21
|
|
// atan2_16::@21
|
|
__b21:
|
|
// [267] atan2_16::angle#4 = $8000 - atan2_16::angle#1 -- vwuz1=vwuc1_minus_vwuz1
|
|
sec
|
|
lda #<$8000
|
|
sbc.z angle
|
|
sta.z angle
|
|
lda #>$8000
|
|
sbc.z angle+1
|
|
sta.z angle+1
|
|
// [268] phi from atan2_16::@12 atan2_16::@21 to atan2_16::@7 [phi:atan2_16::@12/atan2_16::@21->atan2_16::@7]
|
|
__b7_from___b12:
|
|
__b7_from___b21:
|
|
// [268] phi atan2_16::angle#11 = atan2_16::angle#1 [phi:atan2_16::@12/atan2_16::@21->atan2_16::@7#0] -- register_copy
|
|
jmp __b7
|
|
// atan2_16::@7
|
|
__b7:
|
|
// [269] if(atan2_16::y#0>=0) goto atan2_16::@8 -- vwsz1_ge_0_then_la1
|
|
lda.z y+1
|
|
bpl __b8_from___b7
|
|
jmp __b9
|
|
// atan2_16::@9
|
|
__b9:
|
|
// [270] atan2_16::angle#5 = - atan2_16::angle#11 -- vwuz1=_neg_vwuz1
|
|
sec
|
|
lda #0
|
|
sbc.z angle
|
|
sta.z angle
|
|
lda #0
|
|
sbc.z angle+1
|
|
sta.z angle+1
|
|
// [271] phi from atan2_16::@7 atan2_16::@9 to atan2_16::@8 [phi:atan2_16::@7/atan2_16::@9->atan2_16::@8]
|
|
__b8_from___b7:
|
|
__b8_from___b9:
|
|
// [271] phi atan2_16::return#0 = atan2_16::angle#11 [phi:atan2_16::@7/atan2_16::@9->atan2_16::@8#0] -- register_copy
|
|
jmp __b8
|
|
// atan2_16::@8
|
|
__b8:
|
|
jmp __breturn
|
|
// atan2_16::@return
|
|
__breturn:
|
|
// [272] return
|
|
rts
|
|
// atan2_16::@11
|
|
__b11:
|
|
// [273] atan2_16::shift#5 = atan2_16::i#2 -- vbuyy=vbuxx
|
|
txa
|
|
tay
|
|
// [274] atan2_16::xd#10 = atan2_16::xi#3 -- vwsz1=vwsz2
|
|
lda.z xi
|
|
sta.z xd
|
|
lda.z xi+1
|
|
sta.z xd+1
|
|
// [275] atan2_16::yd#10 = atan2_16::yi#3 -- vwsz1=vwsz2
|
|
lda.z yi
|
|
sta.z yd
|
|
lda.z yi+1
|
|
sta.z yd+1
|
|
// [276] phi from atan2_16::@11 atan2_16::@14 to atan2_16::@13 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13]
|
|
__b13_from___b11:
|
|
__b13_from___b14:
|
|
// [276] phi atan2_16::yd#3 = atan2_16::yd#10 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13#0] -- register_copy
|
|
// [276] phi atan2_16::xd#3 = atan2_16::xd#10 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13#1] -- register_copy
|
|
// [276] phi atan2_16::shift#2 = atan2_16::shift#5 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13#2] -- register_copy
|
|
jmp __b13
|
|
// atan2_16::@13
|
|
__b13:
|
|
// [277] if(atan2_16::shift#2>=2) goto atan2_16::@14 -- vbuyy_ge_vbuc1_then_la1
|
|
cpy #2
|
|
bcs __b14
|
|
jmp __b15
|
|
// atan2_16::@15
|
|
__b15:
|
|
// [278] if(0==atan2_16::shift#2) goto atan2_16::@17 -- 0_eq_vbuyy_then_la1
|
|
cpy #0
|
|
beq __b17_from___b15
|
|
jmp __b16
|
|
// atan2_16::@16
|
|
__b16:
|
|
// [279] atan2_16::xd#2 = atan2_16::xd#3 >> 1 -- vwsz1=vwsz1_ror_1
|
|
lda.z xd+1
|
|
cmp #$80
|
|
ror.z xd+1
|
|
ror.z xd
|
|
// [280] atan2_16::yd#2 = atan2_16::yd#3 >> 1 -- vwsz1=vwsz1_ror_1
|
|
lda.z yd+1
|
|
cmp #$80
|
|
ror.z yd+1
|
|
ror.z yd
|
|
// [281] phi from atan2_16::@15 atan2_16::@16 to atan2_16::@17 [phi:atan2_16::@15/atan2_16::@16->atan2_16::@17]
|
|
__b17_from___b15:
|
|
__b17_from___b16:
|
|
// [281] phi atan2_16::xd#5 = atan2_16::xd#3 [phi:atan2_16::@15/atan2_16::@16->atan2_16::@17#0] -- register_copy
|
|
// [281] phi atan2_16::yd#5 = atan2_16::yd#3 [phi:atan2_16::@15/atan2_16::@16->atan2_16::@17#1] -- register_copy
|
|
jmp __b17
|
|
// atan2_16::@17
|
|
__b17:
|
|
// [282] if(atan2_16::yi#3>=0) goto atan2_16::@18 -- vwsz1_ge_0_then_la1
|
|
lda.z yi+1
|
|
bpl __b18
|
|
jmp __b20
|
|
// atan2_16::@20
|
|
__b20:
|
|
// [283] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5 -- vwsz1=vwsz1_minus_vwsz2
|
|
lda.z xi
|
|
sec
|
|
sbc.z yd
|
|
sta.z xi
|
|
lda.z xi+1
|
|
sbc.z yd+1
|
|
sta.z xi+1
|
|
// [284] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5 -- vwsz1=vwsz1_plus_vwsz2
|
|
lda.z yi
|
|
clc
|
|
adc.z xd
|
|
sta.z yi
|
|
lda.z yi+1
|
|
adc.z xd+1
|
|
sta.z yi+1
|
|
// [285] atan2_16::$23 = atan2_16::i#2 << 1 -- vbuaa=vbuxx_rol_1
|
|
txa
|
|
asl
|
|
// [286] atan2_16::angle#3 = atan2_16::angle#12 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23] -- vwuz1=vwuz1_minus_pwuc1_derefidx_vbuaa
|
|
tay
|
|
sec
|
|
lda.z angle
|
|
sbc CORDIC_ATAN2_ANGLES_16,y
|
|
sta.z angle
|
|
lda.z angle+1
|
|
sbc CORDIC_ATAN2_ANGLES_16+1,y
|
|
sta.z angle+1
|
|
// [287] phi from atan2_16::@18 atan2_16::@20 to atan2_16::@19 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19]
|
|
__b19_from___b18:
|
|
__b19_from___b20:
|
|
// [287] phi atan2_16::xi#8 = atan2_16::xi#1 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19#0] -- register_copy
|
|
// [287] phi atan2_16::angle#13 = atan2_16::angle#2 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19#1] -- register_copy
|
|
// [287] phi atan2_16::yi#8 = atan2_16::yi#1 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19#2] -- register_copy
|
|
jmp __b19
|
|
// atan2_16::@19
|
|
__b19:
|
|
// [288] atan2_16::i#1 = ++ atan2_16::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [289] if(atan2_16::i#1==CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #CORDIC_ITERATIONS_16-1+1
|
|
beq __b12_from___b19
|
|
// [262] phi from atan2_16::@19 to atan2_16::@10 [phi:atan2_16::@19->atan2_16::@10]
|
|
__b10_from___b19:
|
|
// [262] phi atan2_16::angle#12 = atan2_16::angle#13 [phi:atan2_16::@19->atan2_16::@10#0] -- register_copy
|
|
// [262] phi atan2_16::i#2 = atan2_16::i#1 [phi:atan2_16::@19->atan2_16::@10#1] -- register_copy
|
|
// [262] phi atan2_16::xi#3 = atan2_16::xi#8 [phi:atan2_16::@19->atan2_16::@10#2] -- register_copy
|
|
// [262] phi atan2_16::yi#3 = atan2_16::yi#8 [phi:atan2_16::@19->atan2_16::@10#3] -- register_copy
|
|
jmp __b10
|
|
// atan2_16::@18
|
|
__b18:
|
|
// [290] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5 -- vwsz1=vwsz1_plus_vwsz2
|
|
lda.z xi
|
|
clc
|
|
adc.z yd
|
|
sta.z xi
|
|
lda.z xi+1
|
|
adc.z yd+1
|
|
sta.z xi+1
|
|
// [291] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5 -- vwsz1=vwsz1_minus_vwsz2
|
|
lda.z yi
|
|
sec
|
|
sbc.z xd
|
|
sta.z yi
|
|
lda.z yi+1
|
|
sbc.z xd+1
|
|
sta.z yi+1
|
|
// [292] atan2_16::$22 = atan2_16::i#2 << 1 -- vbuaa=vbuxx_rol_1
|
|
txa
|
|
asl
|
|
// [293] atan2_16::angle#2 = atan2_16::angle#12 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22] -- vwuz1=vwuz1_plus_pwuc1_derefidx_vbuaa
|
|
tay
|
|
clc
|
|
lda.z angle
|
|
adc CORDIC_ATAN2_ANGLES_16,y
|
|
sta.z angle
|
|
lda.z angle+1
|
|
adc CORDIC_ATAN2_ANGLES_16+1,y
|
|
sta.z angle+1
|
|
jmp __b19_from___b18
|
|
// atan2_16::@14
|
|
__b14:
|
|
// [294] atan2_16::xd#1 = atan2_16::xd#3 >> 2 -- vwsz1=vwsz1_ror_2
|
|
lda.z xd+1
|
|
cmp #$80
|
|
ror.z xd+1
|
|
ror.z xd
|
|
lda.z xd+1
|
|
cmp #$80
|
|
ror.z xd+1
|
|
ror.z xd
|
|
// [295] atan2_16::yd#1 = atan2_16::yd#3 >> 2 -- vwsz1=vwsz1_ror_2
|
|
lda.z yd+1
|
|
cmp #$80
|
|
ror.z yd+1
|
|
ror.z yd
|
|
lda.z yd+1
|
|
cmp #$80
|
|
ror.z yd+1
|
|
ror.z yd
|
|
// [296] atan2_16::shift#1 = atan2_16::shift#2 - 2 -- vbuyy=vbuyy_minus_2
|
|
dey
|
|
dey
|
|
jmp __b13_from___b14
|
|
// atan2_16::@4
|
|
__b4:
|
|
// [297] atan2_16::xi#13 = atan2_16::x#0 -- vwsz1=vwsz2
|
|
lda.z x
|
|
sta.z xi
|
|
lda.z x+1
|
|
sta.z xi+1
|
|
jmp __b6_from___b4
|
|
// atan2_16::@1
|
|
__b1:
|
|
// [298] atan2_16::yi#16 = atan2_16::y#0 -- vwsz1=vwsz2
|
|
lda.z y
|
|
sta.z yi
|
|
lda.z y+1
|
|
sta.z yi+1
|
|
jmp __b3_from___b1
|
|
}
|
|
// File Data
|
|
.segment Data
|
|
// Angles representing ATAN(0.5), ATAN(0.25), ATAN(0.125), ...
|
|
CORDIC_ATAN2_ANGLES_16:
|
|
.for (var i=0; i<CORDIC_ITERATIONS_16; i++)
|
|
.word 256*2*256*atan(1/pow(2,i))/PI/2
|
|
|
|
// Values added to VX
|
|
VXSIN:
|
|
.for(var i=0; i<40; i++) {
|
|
.word -sin(toRadians([i*360]/40))*4
|
|
}
|
|
|
|
// Values added to VY
|
|
VYSIN:
|
|
.for(var i=0; i<25; i++) {
|
|
.word -sin(toRadians([i*360]/25))*4
|
|
}
|
|
|
|
// Sprites currently being processed in the interrupt
|
|
PROCESSING: .fill $e*NUM_PROCESSING, 0
|
|
__0: .word 0, 0, 0, 0
|
|
.byte 0, 0, 0, STATUS_FREE
|
|
.word 0
|
|
|
|
ASSEMBLER OPTIMIZATIONS
|
|
Removing instruction jmp __init1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b11
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b11
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b14
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp __b12
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b12
|
|
Removing instruction jmp __b21
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp __b15
|
|
Removing instruction jmp __b16
|
|
Removing instruction jmp __b17
|
|
Removing instruction jmp __b20
|
|
Removing instruction jmp __b19
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
Removing instruction ldy #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda.z __13
|
|
Removing instruction lda.z ypos
|
|
Removing instruction ldy #0
|
|
Removing instruction lda.z ang_w
|
|
Removing instruction lda.z ang_w
|
|
Removing instruction ldy.z xb
|
|
Removing instruction ldy.z x
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Replacing instruction ldy #0 with TAY
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Replacing instruction lda #0 with TYA
|
|
Replacing instruction lda #0 with TYA
|
|
Removing instruction ldy #0
|
|
Replacing instruction lda #0 with TYA
|
|
Removing instruction ldy #0
|
|
Removing instruction lda #>0
|
|
Replacing instruction ldx #0 with TAX
|
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
|
Replacing label __b3_from___b3 with __b3
|
|
Replacing label __b2_from___b1 with __b2
|
|
Replacing label __b1_from___b2 with __b1
|
|
Replacing label __b1_from___b4 with __b1
|
|
Replacing label __b3_from___b3 with __b3
|
|
Replacing label __b3_from___b12 with __b3
|
|
Replacing label __b3_from___b11 with __b3
|
|
Replacing label __b6_from___b6 with __b6
|
|
Replacing label __b2_from___b3 with __b2
|
|
Replacing label __b4_from___b9 with __b4
|
|
Replacing label __b7_from___b12 with __b7
|
|
Replacing label __b8_from___b7 with __b8
|
|
Replacing label __b17_from___b15 with __b17
|
|
Replacing label __b12_from___b19 with __b12
|
|
Replacing label __b19_from___b18 with __b19
|
|
Replacing label __b13_from___b14 with __b13
|
|
Replacing label __b6_from___b4 with __b6
|
|
Replacing label __b3_from___b1 with __b3
|
|
Removing instruction __init1_from___start:
|
|
Removing instruction malloc_from___init1:
|
|
Removing instruction __b1_from___b3:
|
|
Removing instruction __b1_from_irqBottom:
|
|
Removing instruction processChars_from___b1:
|
|
Removing instruction __breturn:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b3_from___b3:
|
|
Removing instruction __b4_from___b3:
|
|
Removing instruction __b10_from___b4:
|
|
Removing instruction __b5_from___b10:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b2_from___b7:
|
|
Removing instruction __b1_from___b4:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b3_from___b3:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b3_from___b11:
|
|
Removing instruction __b3_from___b12:
|
|
Removing instruction __b3_from___b5:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b2_from___b3:
|
|
Removing instruction __b4_from___b2:
|
|
Removing instruction __b4_from___b9:
|
|
Removing instruction __b6_from___b6:
|
|
Removing instruction __b3_from___b1:
|
|
Removing instruction __b3_from___b2:
|
|
Removing instruction __b6_from___b4:
|
|
Removing instruction __b6_from___b5:
|
|
Removing instruction __b10_from___b6:
|
|
Removing instruction __b12_from___b10:
|
|
Removing instruction __b12_from___b19:
|
|
Removing instruction __b7_from___b12:
|
|
Removing instruction __b7_from___b21:
|
|
Removing instruction __b8_from___b7:
|
|
Removing instruction __b8_from___b9:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b13_from___b11:
|
|
Removing instruction __b13_from___b14:
|
|
Removing instruction __b17_from___b15:
|
|
Removing instruction __b17_from___b16:
|
|
Removing instruction __b19_from___b18:
|
|
Removing instruction __b19_from___b20:
|
|
Succesful ASM optimization Pass5RedundantLabelElimination
|
|
Removing instruction __init1:
|
|
Removing instruction __b2:
|
|
Removing instruction malloc_from___b2:
|
|
Removing instruction __b3:
|
|
Removing instruction __b1:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1:
|
|
Removing instruction __b2:
|
|
Removing instruction __b1:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b9:
|
|
Removing instruction __b1_from___b9:
|
|
Removing instruction __b3_from___b1:
|
|
Removing instruction __b4:
|
|
Removing instruction initSprites_from___b4:
|
|
Removing instruction __b10:
|
|
Removing instruction __b5:
|
|
Removing instruction __b11:
|
|
Removing instruction __b7:
|
|
Removing instruction startProcessing_from___b6:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b1_from_processChars:
|
|
Removing instruction __b10:
|
|
Removing instruction __b11:
|
|
Removing instruction __b8:
|
|
Removing instruction __b14:
|
|
Removing instruction __b13:
|
|
Removing instruction __b12:
|
|
Removing instruction __b9:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_init_angle_screen:
|
|
Removing instruction __b4:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b5:
|
|
Removing instruction __b2_from___b5:
|
|
Removing instruction __b1_from_initSprites:
|
|
Removing instruction __b3_from___b1:
|
|
Removing instruction __b4:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b1:
|
|
Removing instruction __b2:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_getCharToProcess:
|
|
Removing instruction __b4:
|
|
Removing instruction __b5:
|
|
Removing instruction __b6:
|
|
Removing instruction __b7:
|
|
Removing instruction __b8:
|
|
Removing instruction __b1_from___b9:
|
|
Removing instruction __b2_from___b10:
|
|
Removing instruction __b1_from_startProcessing:
|
|
Removing instruction __b5:
|
|
Removing instruction __b6_from___b5:
|
|
Removing instruction __b7:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from___b8:
|
|
Removing instruction __b9:
|
|
Removing instruction __b2:
|
|
Removing instruction __b5:
|
|
Removing instruction __b21:
|
|
Removing instruction __b9:
|
|
Removing instruction __b15:
|
|
Removing instruction __b16:
|
|
Removing instruction __b20:
|
|
Removing instruction __b10_from___b19:
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
Relabelling long label __b5_from___b6 to __b4
|
|
Succesful ASM optimization Pass5RelabelLongLabels
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b6
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
Removing instruction ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
|
Fixing long branch [499] bne __b1 to beq
|
|
Fixing long branch [1073] bne __b2 to beq
|
|
Fixing long branch [1200] beq __b12 to bne
|
|
Fixing long branch [304] beq __b2 to bne
|
|
Fixing long branch [364] bne __b4 to beq
|
|
Fixing long branch [397] bcc __b6 to bcs
|
|
Fixing long branch [404] bcc __b6 to bcs
|
|
Fixing long branch [411] bcc __b6 to bcs
|
|
Fixing long branch [418] bcc __b6 to bcs
|
|
Fixing long branch [426] bcc __b6 to bcs
|
|
Fixing long branch [433] bcc __b6 to bcs
|
|
Fixing long branch [441] bcc __b6 to bcs
|
|
Fixing long branch [739] beq __b11 to bne
|
|
Fixing long branch [871] bne __b3 to beq
|
|
Fixing long branch [877] beq __b8 to bne
|
|
Fixing long branch [1119] bpl __b1 to bmi
|
|
Fixing long branch [1131] bpl __b4 to bmi
|
|
|
|
FINAL SYMBOL TABLE
|
|
const struct ProcessingSprite $0 = { x: 0, y: 0, vx: 0, vy: 0, id: 0, ptr: 0, col: 0, status: STATUS_FREE, screenPtr: (byte*) 0 }
|
|
const nomodify byte BORDER_XPOS_LEFT = $18
|
|
const nomodify word BORDER_XPOS_RIGHT = $158
|
|
const nomodify byte BORDER_YPOS_BOTTOM = $fa
|
|
const nomodify byte BORDER_YPOS_TOP = $32
|
|
const nomodify byte* CHARGEN = (byte*) 53248
|
|
const nomodify struct MOS6526_CIA* CIA1 = (struct MOS6526_CIA*) 56320
|
|
const nomodify byte CIA_INTERRUPT_CLEAR = $7f
|
|
const nomodify byte* COLS = (byte*) 55296
|
|
const word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; i<CORDIC_ITERATIONS_16; i++)
|
|
.word 256*2*256*atan(1/pow(2,i))/PI/2
|
|
}}
|
|
const nomodify byte CORDIC_ITERATIONS_16 = $f
|
|
const nomodify void()** HARDWARE_IRQ = (void()**) 65534
|
|
const byte* HEAP_TOP = (byte*) 40960
|
|
const nomodify byte* IRQ_ENABLE = (byte*) 53274
|
|
const nomodify byte IRQ_RASTER = 1
|
|
const nomodify byte* IRQ_STATUS = (byte*) 53273
|
|
const nomodify byte LIGHT_BLUE = $e
|
|
const nomodify byte NOT_FOUND = $ff
|
|
const nomodify byte NUM_PROCESSING = 8
|
|
const nomodify word OFFSET_SPRITE_PTRS = $3f8
|
|
const byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_COL = $a
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_ID = 8
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_PTR = 9
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = $c
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = $b
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_VX = 4
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_VY = 6
|
|
const byte OFFSET_STRUCT_PROCESSINGSPRITE_Y = 2
|
|
const struct ProcessingSprite* PROCESSING[NUM_PROCESSING] = { fill( NUM_PROCESSING, 0) }
|
|
const nomodify byte* PROCPORT = (byte*) 1
|
|
const nomodify byte* PROCPORT_DDR = (byte*) 0
|
|
const nomodify byte PROCPORT_DDR_MEMORY_MASK = 7
|
|
const nomodify byte PROCPORT_RAM_CHARROM = 1
|
|
const nomodify byte PROCPORT_RAM_IO = 5
|
|
const byte RADIX::BINARY = 2
|
|
const byte RADIX::DECIMAL = $a
|
|
const byte RADIX::HEXADECIMAL = $10
|
|
const byte RADIX::OCTAL = 8
|
|
const nomodify byte* RASTER = (byte*) 53266
|
|
const nomodify byte RASTER_IRQ_MIDDLE = $ff
|
|
const nomodify byte RASTER_IRQ_TOP = $30
|
|
const nomodify byte* SCREEN = (byte*) 1024
|
|
byte* SCREEN_COPY
|
|
void* SCREEN_COPY#0 SCREEN_COPY zp[2]:14 0.03076923076923077
|
|
byte* SCREEN_DIST
|
|
void* SCREEN_DIST#0 SCREEN_DIST zp[2]:16 0.031746031746031744
|
|
const byte SIZEOF_STRUCT_PROCESSINGSPRITE = $e
|
|
const nomodify byte* SPRITES_COLOR = (byte*) 53287
|
|
const nomodify byte* SPRITES_ENABLE = (byte*) 53269
|
|
const nomodify byte* SPRITES_EXPAND_X = (byte*) 53277
|
|
const nomodify byte* SPRITES_EXPAND_Y = (byte*) 53271
|
|
const nomodify byte* SPRITES_MC = (byte*) 53276
|
|
const nomodify byte* SPRITES_XMSB = (byte*) 53264
|
|
const nomodify byte* SPRITES_XPOS = (byte*) 53248
|
|
const nomodify byte* SPRITES_YPOS = (byte*) 53249
|
|
const nomodify byte* SPRITE_DATA = (byte*) 8192
|
|
const byte STATUS_FREE = 0
|
|
const byte STATUS_NEW = 1
|
|
const byte STATUS_PROCESSING = 2
|
|
const nomodify byte* VICII_CONTROL = (byte*) 53265
|
|
const to_nomodify word* VXSIN[$28] = kickasm {{ .for(var i=0; i<40; i++) {
|
|
.word -sin(toRadians([i*360]/40))*4
|
|
}
|
|
}}
|
|
const to_nomodify word* VYSIN[$19] = kickasm {{ .for(var i=0; i<25; i++) {
|
|
.word -sin(toRadians([i*360]/25))*4
|
|
}
|
|
}}
|
|
const nomodify word XPOS_LEFTMOST = (word)BORDER_XPOS_LEFT-8<<4
|
|
const nomodify word XPOS_RIGHTMOST = BORDER_XPOS_RIGHT<<4
|
|
const nomodify word YPOS_BOTTOMMOST = (word)BORDER_YPOS_BOTTOM<<4
|
|
const nomodify word YPOS_TOPMOST = (word)BORDER_YPOS_TOP-8<<4
|
|
void __start()
|
|
word atan2_16(signed word atan2_16::x , signed word atan2_16::y)
|
|
signed word~ atan2_16::$2 zp[2]:12 200002.0
|
|
byte~ atan2_16::$22 reg byte a 2.00000002E8
|
|
byte~ atan2_16::$23 reg byte a 2.00000002E8
|
|
signed word~ atan2_16::$7 zp[2]:42 200002.0
|
|
word atan2_16::angle
|
|
word atan2_16::angle#1 angle zp[2]:31 150001.5
|
|
word atan2_16::angle#11 angle zp[2]:31 200002.0
|
|
word atan2_16::angle#12 angle zp[2]:31 1.904761923809524E7
|
|
word atan2_16::angle#13 angle zp[2]:31 1.3333333466666667E8
|
|
word atan2_16::angle#2 angle zp[2]:31 2.00000002E8
|
|
word atan2_16::angle#3 angle zp[2]:31 2.00000002E8
|
|
word atan2_16::angle#4 angle zp[2]:31 200002.0
|
|
word atan2_16::angle#5 angle zp[2]:31 200002.0
|
|
word atan2_16::angle#6 angle zp[2]:31 2.00100003E8
|
|
byte atan2_16::i
|
|
byte atan2_16::i#1 reg byte x 1.500000015E8
|
|
byte atan2_16::i#2 reg byte x 2.0833333541666668E7
|
|
word atan2_16::return
|
|
word atan2_16::return#0 return zp[2]:31 70001.0
|
|
word atan2_16::return#2 return zp[2]:31 20002.0
|
|
byte atan2_16::shift
|
|
byte atan2_16::shift#1 reg byte y 2.000000002E9
|
|
byte atan2_16::shift#2 reg byte y 8.0000000125E8
|
|
byte atan2_16::shift#5 reg byte y 6.6666667333333336E7
|
|
signed word atan2_16::x
|
|
signed word atan2_16::x#0 x zp[2]:37 10789.605263157895
|
|
signed word atan2_16::xd
|
|
signed word atan2_16::xd#1 xd zp[2]:35 6.666666673333334E8
|
|
signed word atan2_16::xd#10 xd zp[2]:35 1.00000001E8
|
|
signed word atan2_16::xd#2 xd zp[2]:35 1.00000001E8
|
|
signed word atan2_16::xd#3 xd zp[2]:35 7.666666683333335E8
|
|
signed word atan2_16::xd#5 xd zp[2]:35 1.00000001E8
|
|
signed word atan2_16::xi
|
|
signed word atan2_16::xi#0 xi zp[2]:42 300003.0
|
|
signed word atan2_16::xi#1 xi zp[2]:42 5.00000005E7
|
|
signed word atan2_16::xi#13 xi zp[2]:42 200002.0
|
|
signed word atan2_16::xi#2 xi zp[2]:42 5.00000005E7
|
|
signed word atan2_16::xi#3 xi zp[2]:42 2.6673333666666668E7
|
|
signed word atan2_16::xi#8 xi zp[2]:42 1.00000001E8
|
|
signed word atan2_16::y
|
|
signed word atan2_16::y#0 y zp[2]:40 10250.125
|
|
signed word atan2_16::yd
|
|
signed word atan2_16::yd#1 yd zp[2]:33 1.000000001E9
|
|
signed word atan2_16::yd#10 yd zp[2]:33 2.00000002E8
|
|
signed word atan2_16::yd#2 yd zp[2]:33 2.00000002E8
|
|
signed word atan2_16::yd#3 yd zp[2]:33 4.6000000099999994E8
|
|
signed word atan2_16::yd#5 yd zp[2]:33 2.00000002E8
|
|
signed word atan2_16::yi
|
|
signed word atan2_16::yi#0 yi zp[2]:12 60000.600000000006
|
|
signed word atan2_16::yi#1 yi zp[2]:12 6.6666667333333336E7
|
|
signed word atan2_16::yi#16 yi zp[2]:12 200002.0
|
|
signed word atan2_16::yi#2 yi zp[2]:12 6.6666667333333336E7
|
|
signed word atan2_16::yi#3 yi zp[2]:12 3.53000004117647E7
|
|
signed word atan2_16::yi#8 yi zp[2]:12 1.00000001E8
|
|
struct ProcessingChar getCharToProcess()
|
|
word~ getCharToProcess::$11 zp[2]:42 1501.5
|
|
word~ getCharToProcess::$12 zp[2]:31 2002.0
|
|
word~ getCharToProcess::$13 zp[2]:42 2002.0
|
|
word~ getCharToProcess::$8 zp[2]:42 2002.0
|
|
byte*~ getCharToProcess::$9 zp[2]:42 2002.0
|
|
byte getCharToProcess::closest_dist
|
|
byte getCharToProcess::closest_dist#10 closest_dist zp[1]:39 200002.0
|
|
byte getCharToProcess::closest_dist#12 closest_dist zp[1]:39 2000002.0
|
|
byte getCharToProcess::closest_dist#2 closest_dist zp[1]:39 1025001.25
|
|
byte getCharToProcess::closest_dist#8 closest_dist zp[1]:39 200002.0
|
|
byte getCharToProcess::closest_x
|
|
byte getCharToProcess::closest_x#7 closest_x zp[1]:44 516667.3333333334
|
|
byte getCharToProcess::closest_x#9 closest_x zp[1]:44 200002.0
|
|
byte getCharToProcess::closest_y
|
|
byte getCharToProcess::closest_y#7 closest_y zp[1]:9 516667.3333333334
|
|
byte getCharToProcess::closest_y#9 closest_y zp[1]:9 200002.0
|
|
byte getCharToProcess::dist
|
|
byte getCharToProcess::dist#0 reg byte x 750000.75
|
|
byte* getCharToProcess::dist_line
|
|
byte* getCharToProcess::dist_line#0 dist_line zp[2]:10 2002.0
|
|
byte* getCharToProcess::dist_line#1 dist_line zp[2]:10 50000.5
|
|
byte* getCharToProcess::dist_line#6 dist_line zp[2]:10 85785.99999999999
|
|
struct ProcessingChar getCharToProcess::return
|
|
byte getCharToProcess::return_dist
|
|
byte getCharToProcess::return_dist#0 reg byte x 67.33333333333333
|
|
byte getCharToProcess::return_dist#1 reg byte x 227839.2777777778
|
|
byte getCharToProcess::return_dist#5 reg byte x 2000002.0
|
|
byte getCharToProcess::return_dist#6 reg byte x 2000002.0
|
|
byte getCharToProcess::return_x
|
|
byte getCharToProcess::return_x#0 reg byte y 67.33333333333333
|
|
byte getCharToProcess::return_x#1 return_x zp[1]:44 227839.2777777778
|
|
byte getCharToProcess::return_x#7 return_x zp[1]:44 1000001.0
|
|
byte getCharToProcess::return_y
|
|
byte getCharToProcess::return_y#0 reg byte a 67.33333333333333
|
|
byte getCharToProcess::return_y#1 return_y zp[1]:9 215795.05263157893
|
|
byte getCharToProcess::return_y#7 return_y zp[1]:9 2000002.0
|
|
byte* getCharToProcess::screen_line
|
|
byte* getCharToProcess::screen_line#0 screen_line zp[2]:18 1001.0
|
|
byte* getCharToProcess::screen_line#1 screen_line zp[2]:18 40000.4
|
|
byte* getCharToProcess::screen_line#4 screen_line zp[2]:18 92384.92307692306
|
|
byte getCharToProcess::x
|
|
byte getCharToProcess::x#1 reg byte y 1000001.0
|
|
byte getCharToProcess::x#2 reg byte y 555556.1111111111
|
|
byte getCharToProcess::y
|
|
byte getCharToProcess::y#1 y zp[1]:20 100001.0
|
|
byte getCharToProcess::y#7 y zp[1]:20 80000.20000000001
|
|
byte* heap_head
|
|
byte* heap_head#0 heap_head zp[2]:2 3.25
|
|
byte* heap_head#6 heap_head zp[2]:2 13.0
|
|
void initSprites()
|
|
byte initSprites::i
|
|
byte initSprites::i#1 reg byte x 1501.5
|
|
byte initSprites::i#2 reg byte x 1501.5
|
|
byte* initSprites::sp
|
|
byte* initSprites::sp#1 sp zp[2]:10 2002.0
|
|
byte* initSprites::sp#2 sp zp[2]:10 1334.6666666666667
|
|
void init_angle_screen(byte* init_angle_screen::screen)
|
|
byte~ init_angle_screen::$10 reg byte a 20002.0
|
|
byte~ init_angle_screen::$11 reg byte a 20002.0
|
|
byte~ init_angle_screen::$3 reg byte a 20002.0
|
|
byte~ init_angle_screen::$4 reg byte a 20002.0
|
|
byte~ init_angle_screen::$5 reg byte a 20002.0
|
|
word~ init_angle_screen::$7 zp[2]:31 20002.0
|
|
byte~ init_angle_screen::$9 reg byte a 20002.0
|
|
byte init_angle_screen::ang_w
|
|
byte init_angle_screen::ang_w#0 ang_w zp[1]:30 8334.166666666666
|
|
word init_angle_screen::angle_w
|
|
word init_angle_screen::angle_w#0 angle_w zp[2]:31 20002.0
|
|
byte* init_angle_screen::screen
|
|
byte* init_angle_screen::screen#0 screen zp[2]:18 112.0
|
|
byte* init_angle_screen::screen_bottomline
|
|
byte* init_angle_screen::screen_bottomline#0 screen_bottomline zp[2]:18 151.5
|
|
byte* init_angle_screen::screen_bottomline#1 screen_bottomline zp[2]:18 667.3333333333334
|
|
byte* init_angle_screen::screen_bottomline#6 screen_bottomline zp[2]:18 884.2
|
|
byte* init_angle_screen::screen_topline
|
|
byte* init_angle_screen::screen_topline#1 screen_topline zp[2]:10 500.5
|
|
byte* init_angle_screen::screen_topline#6 screen_topline zp[2]:10 921.0416666666666
|
|
byte* init_angle_screen::screen_topline#7 screen_topline zp[2]:10 202.0
|
|
byte init_angle_screen::x
|
|
byte init_angle_screen::x#1 x zp[1]:39 10001.0
|
|
byte init_angle_screen::x#2 x zp[1]:39 2857.4285714285716
|
|
byte init_angle_screen::xb
|
|
byte init_angle_screen::xb#1 xb zp[1]:44 20002.0
|
|
byte init_angle_screen::xb#2 xb zp[1]:44 1818.3636363636363
|
|
signed word init_angle_screen::xw
|
|
word init_angle_screen::xw#0 xw zp[2]:37 3333.6666666666665
|
|
byte init_angle_screen::y
|
|
byte init_angle_screen::y#1 y zp[1]:20 1501.5
|
|
byte init_angle_screen::y#5 y zp[1]:20 461.65384615384613
|
|
signed word init_angle_screen::yw
|
|
word init_angle_screen::yw#0 yw zp[2]:40 5000.5
|
|
__interrupt(hardware_clobber) void irqBottom()
|
|
byte irqBottom::i
|
|
__interrupt(hardware_clobber) void irqTop()
|
|
byte irqTop::i
|
|
byte irqTop::i1
|
|
void main()
|
|
byte~ main::$10 reg byte a 202.0
|
|
byte~ main::$11 reg byte a 202.0
|
|
byte~ main::$12 reg byte a 202.0
|
|
byte~ main::$13 reg byte a 202.0
|
|
byte~ main::$14 reg byte a 202.0
|
|
byte main::center_dist
|
|
byte main::center_dist#0 reg byte a 202.0
|
|
byte main::center_x
|
|
byte main::center_x#0 reg byte y 50.5
|
|
byte main::center_y
|
|
byte main::center_y#0 center_y zp[1]:20 50.5
|
|
byte* main::dst
|
|
byte* main::dst#0 dst zp[2]:4 22.0
|
|
byte* main::dst#1 dst zp[2]:4 202.0
|
|
byte* main::dst#2 dst zp[2]:4 78.5
|
|
byte main::i
|
|
byte main::i#1 i zp[1]:6 151.5
|
|
byte main::i#2 i zp[1]:6 72.14285714285714
|
|
byte* main::src
|
|
byte* main::src#1 src zp[2]:18 101.0
|
|
byte* main::src#2 src zp[2]:18 134.66666666666666
|
|
void* malloc(word malloc::size)
|
|
byte* malloc::mem
|
|
byte* malloc::mem#0 mem zp[2]:18 4.4
|
|
void* malloc::return
|
|
word malloc::size
|
|
void processChars()
|
|
byte~ processChars::$10 reg byte a 202.0
|
|
word~ processChars::$12 zp[2]:27 101.0
|
|
byte~ processChars::$13 zp[1]:21 17.565217391304348
|
|
word~ processChars::$21 zp[2]:25 101.0
|
|
byte~ processChars::$25 reg byte a 202.0
|
|
byte~ processChars::$28 reg byte a 202.0
|
|
byte~ processChars::$29 reg byte a 202.0
|
|
byte~ processChars::$30 reg byte a 202.0
|
|
byte~ processChars::$73 reg byte a 202.0
|
|
byte~ processChars::$79 reg byte a 202.0
|
|
byte~ processChars::$87 reg byte a 202.0
|
|
byte~ processChars::$88 reg byte a 202.0
|
|
byte~ processChars::$89 reg byte a 202.0
|
|
byte~ processChars::$9 reg byte a 202.0
|
|
byte processChars::bitmask
|
|
byte processChars::bitmask#0 bitmask zp[1]:24 21.956521739130434
|
|
byte processChars::i
|
|
byte processChars::i#1 i zp[1]:7 151.5
|
|
byte processChars::i#10 i zp[1]:7 11.222222222222221
|
|
byte processChars::numActive
|
|
byte processChars::numActive#1 numActive zp[1]:8 202.0
|
|
byte processChars::numActive#10 numActive zp[1]:8 7.046511627906977
|
|
byte processChars::numActive#3 numActive zp[1]:8 101.0
|
|
struct ProcessingSprite* processChars::processing
|
|
struct ProcessingSprite* processChars::processing#0 processing zp[2]:22 3.0606060606060606
|
|
byte processChars::xchar
|
|
byte processChars::xchar#0 reg byte a 202.0
|
|
word processChars::xpos
|
|
word processChars::xpos#0 xpos zp[2]:25 21.642857142857142
|
|
byte processChars::ychar
|
|
byte processChars::ychar#0 reg byte a 202.0
|
|
byte processChars::ypos
|
|
byte processChars::ypos#0 ypos zp[1]:29 25.25
|
|
void setupRasterIrq(word setupRasterIrq::raster , void()* setupRasterIrq::irqRoutine)
|
|
void()* setupRasterIrq::irqRoutine
|
|
const void()* setupRasterIrq::irqRoutine#0 irqRoutine = &irqTop
|
|
word setupRasterIrq::raster
|
|
void startProcessing(byte startProcessing::center_x , byte startProcessing::center_y , byte startProcessing::center_dist)
|
|
word~ startProcessing::$0 zp[2]:33 2002.0
|
|
word~ startProcessing::$11 zp[2]:42 2002.0
|
|
word~ startProcessing::$12 zp[2]:42 2002.0
|
|
byte~ startProcessing::$15 reg byte y 125.125
|
|
byte~ startProcessing::$21 reg byte a 2000002.0
|
|
byte~ startProcessing::$22 reg byte x 1112.222222222222
|
|
word~ startProcessing::$23 zp[2]:33 1501.5
|
|
word~ startProcessing::$24 zp[2]:12 2002.0
|
|
word~ startProcessing::$25 zp[2]:10 2002.0
|
|
word~ startProcessing::$26 zp[2]:40 2002.0
|
|
word~ startProcessing::$27 zp[2]:42 2002.0
|
|
byte~ startProcessing::$28 reg byte a 2000002.0
|
|
byte~ startProcessing::$29 reg byte a 2000002.0
|
|
byte~ startProcessing::$30 reg byte a 2000002.0
|
|
byte~ startProcessing::$31 reg byte a 2000002.0
|
|
word~ startProcessing::$33 zp[2]:35 2002.0
|
|
word~ startProcessing::$34 zp[2]:33 2002.0
|
|
byte~ startProcessing::$36 reg byte a 2002.0
|
|
byte~ startProcessing::$37 reg byte a 2002.0
|
|
byte~ startProcessing::$38 reg byte a 2002.0
|
|
byte~ startProcessing::$39 reg byte a 2002.0
|
|
word~ startProcessing::$4 zp[2]:12 2002.0
|
|
word~ startProcessing::$6 zp[2]:10 2002.0
|
|
word~ startProcessing::$8 zp[2]:40 2002.0
|
|
word~ startProcessing::$9 zp[2]:40 2002.0
|
|
struct ProcessingChar startProcessing::center
|
|
byte startProcessing::center_dist
|
|
byte startProcessing::center_x
|
|
byte startProcessing::center_x#0 center_x zp[1]:30 26.238095238095237
|
|
byte startProcessing::center_y
|
|
byte startProcessing::center_y#0 center_y zp[1]:20 2.2444444444444445
|
|
byte startProcessing::ch
|
|
byte startProcessing::ch#0 reg byte a 1001.0
|
|
byte* startProcessing::chargenData
|
|
byte* startProcessing::chargenData#0 chargenData zp[2]:10 667.3333333333334
|
|
byte* startProcessing::chargenData#1 chargenData zp[2]:10 66667.33333333333
|
|
byte* startProcessing::chargenData#2 chargenData zp[2]:10 100334.66666666666
|
|
byte* startProcessing::colPtr
|
|
byte* startProcessing::colPtr#0 colPtr zp[2]:37 2002.0
|
|
byte startProcessing::freeIdx
|
|
byte startProcessing::freeIdx#2 freeIdx zp[1]:9 28391.52173913043
|
|
byte startProcessing::freeIdx#6 reg byte x 20000.2
|
|
byte startProcessing::freeIdx#7 reg byte x 200002.0
|
|
byte startProcessing::freeIdx#8 freeIdx zp[1]:9 200002.0
|
|
byte startProcessing::i
|
|
byte startProcessing::i#1 i zp[1]:9 1500001.5
|
|
byte startProcessing::i#2 i zp[1]:9 857143.7142857142
|
|
byte startProcessing::i1
|
|
byte startProcessing::i1#1 reg byte x 150001.5
|
|
byte startProcessing::i1#2 reg byte x 50000.5
|
|
word startProcessing::offset
|
|
word startProcessing::offset#0 offset zp[2]:33 1001.0
|
|
byte* startProcessing::screenPtr
|
|
byte* startProcessing::screenPtr#0 screenPtr zp[2]:33 73.2439024390244
|
|
byte startProcessing::spriteCol
|
|
byte startProcessing::spriteCol#0 spriteCol zp[1]:39 50.05
|
|
byte* startProcessing::spriteData
|
|
byte* startProcessing::spriteData#0 spriteData zp[2]:12 286.0
|
|
byte* startProcessing::spriteData#1 spriteData zp[2]:12 50000.5
|
|
byte* startProcessing::spriteData#2 spriteData zp[2]:12 150502.0
|
|
byte startProcessing::spriteIdx
|
|
byte startProcessing::spritePtr
|
|
byte startProcessing::spritePtr#0 spritePtr zp[1]:44 166.83333333333334
|
|
word startProcessing::spriteX
|
|
word startProcessing::spriteX#0 spriteX zp[2]:40 166.83333333333334
|
|
word startProcessing::spriteY
|
|
word startProcessing::spriteY#0 spriteY zp[2]:42 222.44444444444446
|
|
|
|
zp[2]:2 [ heap_head#6 heap_head#0 ]
|
|
zp[2]:4 [ main::dst#2 main::dst#0 main::dst#1 ]
|
|
zp[1]:6 [ main::i#2 main::i#1 ]
|
|
zp[1]:7 [ processChars::i#10 processChars::i#1 ]
|
|
zp[1]:8 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
|
|
reg byte x [ initSprites::i#2 initSprites::i#1 ]
|
|
reg byte y [ getCharToProcess::x#2 getCharToProcess::x#1 ]
|
|
reg byte x [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ]
|
|
reg byte x [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
|
|
zp[1]:9 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
|
|
zp[2]:10 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 startProcessing::$6 startProcessing::$25 getCharToProcess::dist_line#6 getCharToProcess::dist_line#0 getCharToProcess::dist_line#1 initSprites::sp#2 initSprites::sp#1 init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ]
|
|
reg byte x [ startProcessing::i1#2 startProcessing::i1#1 ]
|
|
zp[2]:12 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 startProcessing::$4 startProcessing::$24 ]
|
|
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
|
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
|
zp[2]:14 [ SCREEN_COPY#0 ]
|
|
zp[2]:16 [ SCREEN_DIST#0 ]
|
|
zp[2]:18 [ malloc::mem#0 main::src#2 main::src#1 getCharToProcess::screen_line#4 getCharToProcess::screen_line#0 getCharToProcess::screen_line#1 init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 init_angle_screen::screen#0 ]
|
|
reg byte a [ main::$11 ]
|
|
reg byte a [ main::$12 ]
|
|
reg byte a [ main::$13 ]
|
|
reg byte a [ main::$14 ]
|
|
reg byte a [ main::$10 ]
|
|
reg byte y [ getCharToProcess::return_x#0 ]
|
|
reg byte a [ getCharToProcess::return_y#0 ]
|
|
reg byte x [ getCharToProcess::return_dist#0 ]
|
|
reg byte y [ main::center_x#0 ]
|
|
zp[1]:20 [ main::center_y#0 startProcessing::center_y#0 getCharToProcess::y#7 getCharToProcess::y#1 init_angle_screen::y#5 init_angle_screen::y#1 ]
|
|
reg byte a [ main::center_dist#0 ]
|
|
zp[1]:21 [ processChars::$13 ]
|
|
reg byte a [ processChars::$87 ]
|
|
reg byte a [ processChars::$88 ]
|
|
reg byte a [ processChars::$89 ]
|
|
reg byte a [ processChars::$28 ]
|
|
zp[2]:22 [ processChars::processing#0 ]
|
|
zp[1]:24 [ processChars::bitmask#0 ]
|
|
zp[2]:25 [ processChars::xpos#0 processChars::$21 ]
|
|
reg byte a [ processChars::$9 ]
|
|
reg byte a [ processChars::$10 ]
|
|
zp[2]:27 [ processChars::$12 ]
|
|
zp[1]:29 [ processChars::ypos#0 ]
|
|
reg byte a [ processChars::$73 ]
|
|
reg byte a [ processChars::xchar#0 ]
|
|
reg byte a [ processChars::$29 ]
|
|
reg byte a [ processChars::$79 ]
|
|
reg byte a [ processChars::ychar#0 ]
|
|
reg byte a [ processChars::$30 ]
|
|
reg byte a [ processChars::$25 ]
|
|
reg byte a [ init_angle_screen::$3 ]
|
|
reg byte a [ init_angle_screen::$4 ]
|
|
reg byte a [ init_angle_screen::$5 ]
|
|
zp[1]:30 [ init_angle_screen::ang_w#0 startProcessing::center_x#0 ]
|
|
reg byte a [ init_angle_screen::$9 ]
|
|
reg byte a [ init_angle_screen::$10 ]
|
|
reg byte a [ init_angle_screen::$11 ]
|
|
zp[2]:31 [ getCharToProcess::$12 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
|
reg byte a [ startProcessing::$28 ]
|
|
reg byte a [ startProcessing::$29 ]
|
|
reg byte a [ startProcessing::$30 ]
|
|
reg byte a [ startProcessing::$31 ]
|
|
reg byte a [ startProcessing::$21 ]
|
|
zp[2]:33 [ startProcessing::$23 startProcessing::$34 startProcessing::$0 startProcessing::offset#0 startProcessing::screenPtr#0 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
|
zp[2]:35 [ startProcessing::$33 atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
|
zp[2]:37 [ startProcessing::colPtr#0 init_angle_screen::xw#0 atan2_16::x#0 ]
|
|
zp[1]:39 [ startProcessing::spriteCol#0 getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 init_angle_screen::x#2 init_angle_screen::x#1 ]
|
|
reg byte a [ startProcessing::ch#0 ]
|
|
zp[2]:40 [ startProcessing::$26 startProcessing::$8 startProcessing::$9 startProcessing::spriteX#0 init_angle_screen::yw#0 atan2_16::y#0 ]
|
|
zp[2]:42 [ startProcessing::$27 startProcessing::$11 startProcessing::$12 startProcessing::spriteY#0 getCharToProcess::$11 getCharToProcess::$13 getCharToProcess::$8 getCharToProcess::$9 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
|
zp[1]:44 [ startProcessing::spritePtr#0 getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
|
reg byte y [ startProcessing::$15 ]
|
|
reg byte a [ startProcessing::$36 ]
|
|
reg byte a [ startProcessing::$37 ]
|
|
reg byte a [ startProcessing::$38 ]
|
|
reg byte a [ startProcessing::$39 ]
|
|
reg byte x [ startProcessing::$22 ]
|
|
reg byte a [ atan2_16::$23 ]
|
|
reg byte a [ atan2_16::$22 ]
|
|
|
|
|
|
FINAL ASSEMBLER
|
|
Score: 1110954
|
|
|
|
// File Comments
|
|
// Clears start screen throwing around the letters (by turning them into sprites)
|
|
// C standard library stdlib.h
|
|
// Implementation of functions found int C stdlib.h / stdlib.c
|
|
// C standard library string.h
|
|
// Functions to manipulate C strings and arrays.
|
|
// Upstart
|
|
// Commodore 64 PRG executable file
|
|
.file [name="clearscreen.prg", type="prg", segments="Program"]
|
|
.segmentdef Program [segments="Basic, Code, Data"]
|
|
.segmentdef Basic [start=$0801]
|
|
.segmentdef Code [start=$80d]
|
|
.segmentdef Data [startAfter="Code"]
|
|
.segment Basic
|
|
:BasicUpstart(__start)
|
|
// Global Constants & labels
|
|
// The number of iterations performed during 16-bit CORDIC atan2 calculation
|
|
.const CORDIC_ITERATIONS_16 = $f
|
|
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
|
|
.const CIA_INTERRUPT_CLEAR = $7f
|
|
// Positions of the border (in sprite positions)
|
|
.const BORDER_XPOS_LEFT = $18
|
|
.const BORDER_XPOS_RIGHT = $158
|
|
.const BORDER_YPOS_TOP = $32
|
|
.const BORDER_YPOS_BOTTOM = $fa
|
|
// The offset of the sprite pointers from the screen start address
|
|
.const OFFSET_SPRITE_PTRS = $3f8
|
|
// Bits for the VICII IRQ Status/Enable Registers
|
|
.const IRQ_RASTER = 1
|
|
// Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written
|
|
.const PROCPORT_DDR_MEMORY_MASK = 7
|
|
// RAM in 0xA000, 0xE000 I/O in 0xD000
|
|
.const PROCPORT_RAM_IO = 5
|
|
// RAM in 0xA000, 0xE000 CHAR ROM in 0xD000
|
|
.const PROCPORT_RAM_CHARROM = 1
|
|
.const LIGHT_BLUE = $e
|
|
// Max number of chars processed at once
|
|
.const NUM_PROCESSING = 8
|
|
// Distance value meaning not found
|
|
.const NOT_FOUND = $ff
|
|
.const STATUS_FREE = 0
|
|
.const STATUS_NEW = 1
|
|
.const STATUS_PROCESSING = 2
|
|
.const XPOS_LEFTMOST = BORDER_XPOS_LEFT-8<<4
|
|
.const XPOS_RIGHTMOST = BORDER_XPOS_RIGHT<<4
|
|
.const YPOS_TOPMOST = BORDER_YPOS_TOP-8<<4
|
|
.const YPOS_BOTTOMMOST = BORDER_YPOS_BOTTOM<<4
|
|
.const RASTER_IRQ_TOP = $30
|
|
.const RASTER_IRQ_MIDDLE = $ff
|
|
.const SIZEOF_STRUCT_PROCESSINGSPRITE = $e
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_Y = 2
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_VX = 4
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_VY = 6
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_ID = 8
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_PTR = 9
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_COL = $a
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = $b
|
|
.const OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = $c
|
|
.const OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
.label SPRITES_XPOS = $d000
|
|
.label SPRITES_YPOS = $d001
|
|
.label SPRITES_XMSB = $d010
|
|
.label SPRITES_COLOR = $d027
|
|
.label SPRITES_ENABLE = $d015
|
|
.label SPRITES_EXPAND_Y = $d017
|
|
.label SPRITES_MC = $d01c
|
|
.label SPRITES_EXPAND_X = $d01d
|
|
.label RASTER = $d012
|
|
.label VICII_CONTROL = $d011
|
|
// VIC II IRQ Status Register
|
|
.label IRQ_STATUS = $d019
|
|
// VIC II IRQ Enable Register
|
|
.label IRQ_ENABLE = $d01a
|
|
// Processor port data direction register
|
|
.label PROCPORT_DDR = 0
|
|
// Processor Port Register controlling RAM/ROM configuration and the datasette
|
|
.label PROCPORT = 1
|
|
// The address of the CHARGEN character set
|
|
.label CHARGEN = $d000
|
|
// Color Ram
|
|
.label COLS = $d800
|
|
// The CIA#1: keyboard matrix, joystick #1/#2
|
|
.label CIA1 = $dc00
|
|
// The vector used when the HARDWARE serves IRQ interrupts
|
|
.label HARDWARE_IRQ = $fffe
|
|
// Address of the screen
|
|
.label SCREEN = $400
|
|
// Sprite data for the animating sprites
|
|
.label SPRITE_DATA = $2000
|
|
// Top of the heap used by malloc()
|
|
.label HEAP_TOP = $a000
|
|
// Head of the heap. Moved backward each malloc()
|
|
.label heap_head = 2
|
|
// Copy of the screen used for finding chars to process
|
|
.label SCREEN_COPY = $e
|
|
// Screen containing bytes representing the distance to the center
|
|
.label SCREEN_DIST = $10
|
|
.segment Code
|
|
// __start
|
|
__start: {
|
|
// [1] phi from __start to __start::__init1 [phi:__start->__start::__init1]
|
|
// __start::__init1
|
|
// malloc(1000)
|
|
// [2] call malloc
|
|
// [21] phi from __start::__init1 to malloc [phi:__start::__init1->malloc]
|
|
// [21] phi heap_head#6 = HEAP_TOP [phi:__start::__init1->malloc#0] -- pbuz1=pbuc1
|
|
lda #<HEAP_TOP
|
|
sta.z heap_head
|
|
lda #>HEAP_TOP
|
|
sta.z heap_head+1
|
|
jsr malloc
|
|
// __start::@2
|
|
// malloc(1000)
|
|
// [3] SCREEN_COPY#0 = (void*)malloc::mem#0 -- pvoz1=pvoz2
|
|
lda.z malloc.mem
|
|
sta.z SCREEN_COPY
|
|
lda.z malloc.mem+1
|
|
sta.z SCREEN_COPY+1
|
|
// [4] call malloc
|
|
// [21] phi from __start::@2 to malloc [phi:__start::@2->malloc]
|
|
// [21] phi heap_head#6 = heap_head#0 [phi:__start::@2->malloc#0] -- register_copy
|
|
jsr malloc
|
|
// __start::@3
|
|
// malloc(1000)
|
|
// [5] SCREEN_DIST#0 = (void*)malloc::mem#0 -- pvoz1=pvoz2
|
|
lda.z malloc.mem
|
|
sta.z SCREEN_DIST
|
|
lda.z malloc.mem+1
|
|
sta.z SCREEN_DIST+1
|
|
// [6] phi from __start::@3 to __start::@1 [phi:__start::@3->__start::@1]
|
|
// __start::@1
|
|
// [7] call main
|
|
jsr main
|
|
// __start::@return
|
|
// [8] return
|
|
rts
|
|
}
|
|
// irqBottom
|
|
// Raster Interrupt at the bottom of the screen
|
|
irqBottom: {
|
|
// interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry
|
|
sta rega+1
|
|
stx regx+1
|
|
sty regy+1
|
|
// [10] phi from irqBottom to irqBottom::@1 [phi:irqBottom->irqBottom::@1]
|
|
// irqBottom::@1
|
|
// processChars()
|
|
// [11] call processChars
|
|
// [60] phi from irqBottom::@1 to processChars [phi:irqBottom::@1->processChars]
|
|
jsr processChars
|
|
// irqBottom::@2
|
|
// *RASTER = RASTER_IRQ_TOP
|
|
// [12] *RASTER = RASTER_IRQ_TOP -- _deref_pbuc1=vbuc2
|
|
// Trigger IRQ at the top of the screen
|
|
lda #RASTER_IRQ_TOP
|
|
sta RASTER
|
|
// *HARDWARE_IRQ = &irqTop
|
|
// [13] *HARDWARE_IRQ = &irqTop -- _deref_qprc1=pprc2
|
|
lda #<irqTop
|
|
sta HARDWARE_IRQ
|
|
lda #>irqTop
|
|
sta HARDWARE_IRQ+1
|
|
// *IRQ_STATUS = IRQ_RASTER
|
|
// [14] *IRQ_STATUS = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// irqBottom::@return
|
|
// }
|
|
// [15] return
|
|
// interrupt(isr_hardware_clobber_exit) -- isr_hardware_all_exit
|
|
rega:
|
|
lda #0
|
|
regx:
|
|
ldx #0
|
|
regy:
|
|
ldy #0
|
|
rti
|
|
}
|
|
// irqTop
|
|
// Raster Interrupt at the top of the screen
|
|
irqTop: {
|
|
// interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry
|
|
sta rega+1
|
|
// irqTop::@1
|
|
// *RASTER = RASTER_IRQ_MIDDLE
|
|
// [17] *RASTER = RASTER_IRQ_MIDDLE -- _deref_pbuc1=vbuc2
|
|
// Trigger IRQ at the middle of the screen
|
|
lda #RASTER_IRQ_MIDDLE
|
|
sta RASTER
|
|
// *HARDWARE_IRQ = &irqBottom
|
|
// [18] *HARDWARE_IRQ = &irqBottom -- _deref_qprc1=pprc2
|
|
lda #<irqBottom
|
|
sta HARDWARE_IRQ
|
|
lda #>irqBottom
|
|
sta HARDWARE_IRQ+1
|
|
// *IRQ_STATUS = IRQ_RASTER
|
|
// [19] *IRQ_STATUS = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// irqTop::@return
|
|
// }
|
|
// [20] return
|
|
// interrupt(isr_hardware_clobber_exit) -- isr_hardware_all_exit
|
|
rega:
|
|
lda #0
|
|
rti
|
|
}
|
|
// malloc
|
|
// Allocates a block of size chars of memory, returning a pointer to the beginning of the block.
|
|
// The content of the newly allocated block of memory is not initialized, remaining with indeterminate values.
|
|
malloc: {
|
|
.label mem = $12
|
|
// mem = heap_head-size
|
|
// [22] malloc::mem#0 = heap_head#6 - $3e8 -- pbuz1=pbuz2_minus_vwuc1
|
|
lda.z heap_head
|
|
sec
|
|
sbc #<$3e8
|
|
sta.z mem
|
|
lda.z heap_head+1
|
|
sbc #>$3e8
|
|
sta.z mem+1
|
|
// heap_head = mem
|
|
// [23] heap_head#0 = malloc::mem#0 -- pbuz1=pbuz2
|
|
lda.z mem
|
|
sta.z heap_head
|
|
lda.z mem+1
|
|
sta.z heap_head+1
|
|
// malloc::@return
|
|
// }
|
|
// [24] return
|
|
rts
|
|
}
|
|
// main
|
|
main: {
|
|
.label dst = 4
|
|
.label src = $12
|
|
.label i = 6
|
|
.label center_y = $14
|
|
// init_angle_screen(SCREEN_DIST)
|
|
// [25] init_angle_screen::screen#0 = (byte*)SCREEN_DIST#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_DIST
|
|
sta.z init_angle_screen.screen
|
|
lda.z SCREEN_DIST+1
|
|
sta.z init_angle_screen.screen+1
|
|
// [26] call init_angle_screen
|
|
// Initialize the screen containing distance to the center
|
|
jsr init_angle_screen
|
|
// main::@9
|
|
// dst=SCREEN_COPY
|
|
// [27] main::dst#0 = (byte*)SCREEN_COPY#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_COPY
|
|
sta.z dst
|
|
lda.z SCREEN_COPY+1
|
|
sta.z dst+1
|
|
// [28] phi from main::@9 to main::@1 [phi:main::@9->main::@1]
|
|
// [28] phi main::dst#2 = main::dst#0 [phi:main::@9->main::@1#0] -- register_copy
|
|
// [28] phi main::src#2 = SCREEN [phi:main::@9->main::@1#1] -- pbuz1=pbuc1
|
|
lda #<SCREEN
|
|
sta.z src
|
|
lda #>SCREEN
|
|
sta.z src+1
|
|
// Copy screen to screen copy
|
|
// main::@1
|
|
__b1:
|
|
// for( char *src=SCREEN, *dst=SCREEN_COPY; src!=SCREEN+1000; src++, dst++)
|
|
// [29] if(main::src#2!=SCREEN+$3e8) goto main::@2 -- pbuz1_neq_pbuc1_then_la1
|
|
lda.z src+1
|
|
cmp #>SCREEN+$3e8
|
|
bne __b2
|
|
lda.z src
|
|
cmp #<SCREEN+$3e8
|
|
bne __b2
|
|
// [30] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
|
|
// [30] phi main::i#2 = 0 [phi:main::@1->main::@3#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z i
|
|
// Init processing array
|
|
// [30] phi from main::@3 to main::@3 [phi:main::@3->main::@3]
|
|
// [30] phi main::i#2 = main::i#1 [phi:main::@3->main::@3#0] -- register_copy
|
|
// main::@3
|
|
__b3:
|
|
// PROCESSING[i] = { 0, 0, 0, 0, 0, 0, 0, STATUS_FREE, 0}
|
|
// [31] main::$11 = main::i#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z i
|
|
asl
|
|
// [32] main::$12 = main::$11 + main::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [33] main::$13 = main::$12 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [34] main::$14 = main::$13 + main::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [35] main::$10 = main::$14 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [36] PROCESSING[main::$10] = memcpy(*(&$0), struct ProcessingSprite, SIZEOF_STRUCT_PROCESSINGSPRITE) -- pssc1_derefidx_vbuaa=_deref_pssc2_memcpy_vbuc3
|
|
tax
|
|
ldy #0
|
|
!:
|
|
lda __0,y
|
|
sta PROCESSING,x
|
|
inx
|
|
iny
|
|
cpy #SIZEOF_STRUCT_PROCESSINGSPRITE
|
|
bne !-
|
|
// for( char i: 0..NUM_PROCESSING-1 )
|
|
// [37] main::i#1 = ++ main::i#2 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [38] if(main::i#1!=NUM_PROCESSING-1+1) goto main::@3 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #NUM_PROCESSING-1+1
|
|
cmp.z i
|
|
bne __b3
|
|
// [39] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
|
|
// main::@4
|
|
// initSprites()
|
|
// [40] call initSprites
|
|
// Init sprites
|
|
// [140] phi from main::@4 to initSprites [phi:main::@4->initSprites]
|
|
jsr initSprites
|
|
// [41] phi from main::@4 to main::@10 [phi:main::@4->main::@10]
|
|
// main::@10
|
|
// setupRasterIrq(RASTER_IRQ_TOP, &irqTop)
|
|
// [42] call setupRasterIrq
|
|
// Set-up raster interrupts
|
|
jsr setupRasterIrq
|
|
// [43] phi from main::@10 main::@6 to main::@5 [phi:main::@10/main::@6->main::@5]
|
|
__b4:
|
|
// Main loop
|
|
// main::@5
|
|
// getCharToProcess()
|
|
// [44] call getCharToProcess
|
|
jsr getCharToProcess
|
|
// [45] getCharToProcess::return_x#0 = getCharToProcess::return_x#1 -- vbuyy=vbuz1
|
|
ldy.z getCharToProcess.return_x
|
|
// [46] getCharToProcess::return_y#0 = getCharToProcess::return_y#1 -- vbuaa=vbuz1
|
|
lda.z getCharToProcess.return_y
|
|
// [47] getCharToProcess::return_dist#0 = getCharToProcess::return_dist#1
|
|
// main::@11
|
|
// center = getCharToProcess()
|
|
// [48] main::center_x#0 = getCharToProcess::return_x#0
|
|
// [49] main::center_y#0 = getCharToProcess::return_y#0 -- vbuz1=vbuaa
|
|
sta.z center_y
|
|
// [50] main::center_dist#0 = getCharToProcess::return_dist#0 -- vbuaa=vbuxx
|
|
txa
|
|
// if(center.dist==NOT_FOUND)
|
|
// [51] if(main::center_dist#0!=NOT_FOUND) goto main::@6 -- vbuaa_neq_vbuc1_then_la1
|
|
cmp #NOT_FOUND
|
|
bne __b6
|
|
// main::@7
|
|
// (*(SCREEN+999)) = '.'
|
|
// [52] *(SCREEN+$3e7) = '.' -- _deref_pbuc1=vbuc2
|
|
lda #'.'
|
|
sta SCREEN+$3e7
|
|
// main::@8
|
|
__b8:
|
|
// (*(COLS+999))++;
|
|
// [53] *(COLS+$3e7) = ++ *(COLS+$3e7) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc COLS+$3e7
|
|
jmp __b8
|
|
// main::@6
|
|
__b6:
|
|
// startProcessing(center)
|
|
// [54] startProcessing::center_x#0 = main::center_x#0 -- vbuz1=vbuyy
|
|
sty.z startProcessing.center_x
|
|
// [55] startProcessing::center_y#0 = main::center_y#0
|
|
// [56] call startProcessing
|
|
// [191] phi from main::@6 to startProcessing [phi:main::@6->startProcessing]
|
|
jsr startProcessing
|
|
jmp __b4
|
|
// main::@2
|
|
__b2:
|
|
// *dst = *src
|
|
// [57] *main::dst#2 = *main::src#2 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (src),y
|
|
sta (dst),y
|
|
// for( char *src=SCREEN, *dst=SCREEN_COPY; src!=SCREEN+1000; src++, dst++)
|
|
// [58] main::src#1 = ++ main::src#2 -- pbuz1=_inc_pbuz1
|
|
inc.z src
|
|
bne !+
|
|
inc.z src+1
|
|
!:
|
|
// [59] main::dst#1 = ++ main::dst#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dst
|
|
bne !+
|
|
inc.z dst+1
|
|
!:
|
|
// [28] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
|
// [28] phi main::dst#2 = main::dst#1 [phi:main::@2->main::@1#0] -- register_copy
|
|
// [28] phi main::src#2 = main::src#1 [phi:main::@2->main::@1#1] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// processChars
|
|
// Process any chars in the PROCESSING array
|
|
processChars: {
|
|
.label __12 = $1b
|
|
.label __13 = $15
|
|
.label __21 = $19
|
|
.label processing = $16
|
|
.label bitmask = $18
|
|
.label i = 7
|
|
.label xpos = $19
|
|
.label ypos = $1d
|
|
.label numActive = 8
|
|
// [61] phi from processChars to processChars::@1 [phi:processChars->processChars::@1]
|
|
// [61] phi processChars::numActive#10 = 0 [phi:processChars->processChars::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z numActive
|
|
// [61] phi processChars::i#10 = 0 [phi:processChars->processChars::@1#1] -- vbuz1=vbuc1
|
|
sta.z i
|
|
// [61] phi from processChars::@2 to processChars::@1 [phi:processChars::@2->processChars::@1]
|
|
// [61] phi processChars::numActive#10 = processChars::numActive#3 [phi:processChars::@2->processChars::@1#0] -- register_copy
|
|
// [61] phi processChars::i#10 = processChars::i#1 [phi:processChars::@2->processChars::@1#1] -- register_copy
|
|
// processChars::@1
|
|
__b1:
|
|
// PROCESSING+i
|
|
// [62] processChars::$13 = processChars::i#10 << 1 -- vbuz1=vbuz2_rol_1
|
|
lda.z i
|
|
asl
|
|
sta.z __13
|
|
// [63] processChars::$87 = processChars::$13 + processChars::i#10 -- vbuaa=vbuz1_plus_vbuz2
|
|
clc
|
|
adc.z i
|
|
// [64] processChars::$88 = processChars::$87 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [65] processChars::$89 = processChars::$88 + processChars::i#10 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [66] processChars::$28 = processChars::$89 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// processing = PROCESSING+i
|
|
// [67] processChars::processing#0 = PROCESSING + processChars::$28 -- pssz1=pssc1_plus_vbuaa
|
|
clc
|
|
adc #<PROCESSING
|
|
sta.z processing
|
|
lda #>PROCESSING
|
|
adc #0
|
|
sta.z processing+1
|
|
// bitmask = 1<<processing->id
|
|
// [68] processChars::bitmask#0 = 1 << ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID] -- vbuz1=vbuc1_rol_pbuz2_derefidx_vbuc2
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
lda (processing),y
|
|
tay
|
|
lda #1
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl
|
|
dey
|
|
bne !-
|
|
!e:
|
|
sta.z bitmask
|
|
// if(processing->status!=STATUS_FREE)
|
|
// [69] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]==STATUS_FREE) goto processChars::@2 -- pbuz1_derefidx_vbuc1_eq_vbuc2_then_la1
|
|
lda #STATUS_FREE
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
cmp (processing),y
|
|
bne !__b2+
|
|
jmp __b2
|
|
!__b2:
|
|
// processChars::@10
|
|
// if(processing->status==STATUS_NEW)
|
|
// [70] if(((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS]!=STATUS_NEW) goto processChars::@3 -- pbuz1_derefidx_vbuc1_neq_vbuc2_then_la1
|
|
lda (processing),y
|
|
cmp #STATUS_NEW
|
|
bne __b3
|
|
// processChars::@11
|
|
// *(processing->screenPtr) = ' '
|
|
// [71] *(((byte**)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR]) = ' ' -- _deref_(qbuz1_derefidx_vbuc1)=vbuc2
|
|
// Clear the char on the screen
|
|
ldx #' '
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR
|
|
lda (processing),y
|
|
sta !+ +1
|
|
iny
|
|
lda (processing),y
|
|
sta !+ +2
|
|
!:
|
|
stx $ffff
|
|
// *SPRITES_ENABLE |= bitmask
|
|
// [72] *SPRITES_ENABLE = *SPRITES_ENABLE | processChars::bitmask#0 -- _deref_pbuc1=_deref_pbuc1_bor_vbuz1
|
|
// Enable the sprite
|
|
lda SPRITES_ENABLE
|
|
ora.z bitmask
|
|
sta SPRITES_ENABLE
|
|
// SPRITES_COLOR[processing->id] = processing->col
|
|
// [73] SPRITES_COLOR[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_COL] -- pbuc1_derefidx_(pbuz1_derefidx_vbuc2)=pbuz1_derefidx_vbuc3
|
|
// Set the sprite color
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_COL
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
pha
|
|
lda (processing),y
|
|
tay
|
|
pla
|
|
sta SPRITES_COLOR,y
|
|
// *(SCREEN+OFFSET_SPRITE_PTRS+processing->id) = processing->ptr
|
|
// [74] (SCREEN+OFFSET_SPRITE_PTRS)[((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_ID]] = ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_PTR] -- pbuc1_derefidx_(pbuz1_derefidx_vbuc2)=pbuz1_derefidx_vbuc3
|
|
// Set sprite pointer
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
|
|
pha
|
|
lda (processing),y
|
|
tay
|
|
pla
|
|
sta SCREEN+OFFSET_SPRITE_PTRS,y
|
|
// processing->status = STATUS_PROCESSING
|
|
// [75] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_PROCESSING -- pbuz1_derefidx_vbuc1=vbuc2
|
|
// Set status
|
|
lda #STATUS_PROCESSING
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
sta (processing),y
|
|
// processChars::@3
|
|
__b3:
|
|
// xpos = processing->x >> 4
|
|
// [76] processChars::xpos#0 = *((word*)processChars::processing#0) >> 4 -- vwuz1=_deref_pwuz2_ror_4
|
|
ldy #0
|
|
lda (processing),y
|
|
sta.z xpos
|
|
iny
|
|
lda (processing),y
|
|
sta.z xpos+1
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
lsr.z xpos+1
|
|
ror.z xpos
|
|
// >xpos
|
|
// [77] processChars::$9 = > processChars::xpos#0 -- vbuaa=_hi_vwuz1
|
|
lda.z xpos+1
|
|
// if(>xpos)
|
|
// [78] if(0!=processChars::$9) goto processChars::@4 -- 0_neq_vbuaa_then_la1
|
|
// Set sprite position
|
|
cmp #0
|
|
beq !__b4+
|
|
jmp __b4
|
|
!__b4:
|
|
// processChars::@8
|
|
// 0xff ^ bitmask
|
|
// [79] processChars::$10 = $ff ^ processChars::bitmask#0 -- vbuaa=vbuc1_bxor_vbuz1
|
|
lda #$ff
|
|
eor.z bitmask
|
|
// *SPRITES_XMSB &= 0xff ^ bitmask
|
|
// [80] *SPRITES_XMSB = *SPRITES_XMSB & processChars::$10 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa
|
|
and SPRITES_XMSB
|
|
sta SPRITES_XMSB
|
|
// processChars::@5
|
|
__b5:
|
|
// SPRITES_XPOS[i*2] = (char)xpos
|
|
// [81] SPRITES_XPOS[processChars::$13] = (byte)processChars::xpos#0 -- pbuc1_derefidx_vbuz1=_byte_vwuz2
|
|
ldy.z __13
|
|
lda.z xpos
|
|
sta SPRITES_XPOS,y
|
|
// processing->y>>4
|
|
// [82] processChars::$12 = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] >> 4 -- vwuz1=pwuz2_derefidx_vbuc1_ror_4
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
lda (processing),y
|
|
sta.z __12
|
|
iny
|
|
lda (processing),y
|
|
sta.z __12+1
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
lsr.z __12+1
|
|
ror.z __12
|
|
// ypos = (char)(processing->y>>4)
|
|
// [83] processChars::ypos#0 = (byte)processChars::$12 -- vbuz1=_byte_vwuz2
|
|
lda.z __12
|
|
sta.z ypos
|
|
// SPRITES_YPOS[i*2] = ypos
|
|
// [84] SPRITES_YPOS[processChars::$13] = processChars::ypos#0 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
ldy.z __13
|
|
sta SPRITES_YPOS,y
|
|
// if(processing->x < XPOS_LEFTMOST || processing->x > XPOS_RIGHTMOST || processing->y < YPOS_TOPMOST|| processing->y > YPOS_BOTTOMMOST )
|
|
// [85] if(*((word*)processChars::processing#0)<XPOS_LEFTMOST) goto processChars::@6 -- _deref_pwuz1_lt_vwuc1_then_la1
|
|
// Move sprite
|
|
ldy #1
|
|
lda (processing),y
|
|
cmp #>XPOS_LEFTMOST
|
|
bcs !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
bne !+
|
|
dey
|
|
lda (processing),y
|
|
cmp #<XPOS_LEFTMOST
|
|
bcs !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
!:
|
|
// processChars::@14
|
|
// [86] if(*((word*)processChars::processing#0)>XPOS_RIGHTMOST) goto processChars::@6 -- _deref_pwuz1_gt_vwuc1_then_la1
|
|
ldy #1
|
|
lda #>XPOS_RIGHTMOST
|
|
cmp (processing),y
|
|
bcs !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
bne !+
|
|
dey
|
|
lda #<XPOS_RIGHTMOST
|
|
cmp (processing),y
|
|
bcs !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
!:
|
|
// processChars::@13
|
|
// [87] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]<YPOS_TOPMOST) goto processChars::@6 -- pwuz1_derefidx_vbuc1_lt_vwuc2_then_la1
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
iny
|
|
lda (processing),y
|
|
cmp #>YPOS_TOPMOST
|
|
bcs !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
bne !+
|
|
dey
|
|
lda (processing),y
|
|
cmp #<YPOS_TOPMOST
|
|
bcs !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
!:
|
|
// processChars::@12
|
|
// [88] if(((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y]>YPOS_BOTTOMMOST) goto processChars::@6 -- pwuz1_derefidx_vbuc1_gt_vwuc2_then_la1
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
iny
|
|
lda #>YPOS_BOTTOMMOST
|
|
cmp (processing),y
|
|
bcs !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
bne !+
|
|
dey
|
|
lda #<YPOS_BOTTOMMOST
|
|
cmp (processing),y
|
|
bcc __b6
|
|
!:
|
|
// processChars::@9
|
|
// xpos/8
|
|
// [89] processChars::$21 = processChars::xpos#0 >> 3 -- vwuz1=vwuz1_ror_3
|
|
lsr.z __21+1
|
|
ror.z __21
|
|
lsr.z __21+1
|
|
ror.z __21
|
|
lsr.z __21+1
|
|
ror.z __21
|
|
// (char)(xpos/8) - BORDER_XPOS_LEFT/8
|
|
// [90] processChars::$73 = (byte)processChars::$21 -- vbuaa=_byte_vwuz1
|
|
lda.z __21
|
|
// xchar = (char)(xpos/8) - BORDER_XPOS_LEFT/8
|
|
// [91] processChars::xchar#0 = processChars::$73 - BORDER_XPOS_LEFT/8 -- vbuaa=vbuaa_minus_vbuc1
|
|
sec
|
|
sbc #BORDER_XPOS_LEFT/8
|
|
// processing->vx += VXSIN[xchar]
|
|
// [92] processChars::$29 = processChars::xchar#0 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [93] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] + VXSIN[processChars::$29] -- pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_pwuc2_derefidx_vbuaa
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
tax
|
|
clc
|
|
lda (processing),y
|
|
adc VXSIN,x
|
|
sta (processing),y
|
|
iny
|
|
lda (processing),y
|
|
adc VXSIN+1,x
|
|
sta (processing),y
|
|
// processing->x += processing->vx
|
|
// [94] *((word*)processChars::processing#0) = *((word*)processChars::processing#0) + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VX] -- _deref_pwuz1=_deref_pwuz1_plus_pwuz1_derefidx_vbuc1
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VX
|
|
sty.z $ff
|
|
clc
|
|
lda (processing),y
|
|
ldy #0
|
|
adc (processing),y
|
|
sta (processing),y
|
|
ldy.z $ff
|
|
iny
|
|
lda (processing),y
|
|
ldy #1
|
|
adc (processing),y
|
|
sta (processing),y
|
|
// (char)(ypos/8) - BORDER_YPOS_TOP/8
|
|
// [95] processChars::$79 = processChars::ypos#0 >> 3 -- vbuaa=vbuz1_ror_3
|
|
lda.z ypos
|
|
lsr
|
|
lsr
|
|
lsr
|
|
// ychar = (char)(ypos/8) - BORDER_YPOS_TOP/8
|
|
// [96] processChars::ychar#0 = processChars::$79 - BORDER_YPOS_TOP/8 -- vbuaa=vbuaa_minus_vbuc1
|
|
sec
|
|
sbc #BORDER_YPOS_TOP/8
|
|
// processing->vy += VYSIN[ychar]
|
|
// [97] processChars::$30 = processChars::ychar#0 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [98] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] + VYSIN[processChars::$30] -- pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_pwuc2_derefidx_vbuaa
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
tax
|
|
clc
|
|
lda (processing),y
|
|
adc VYSIN,x
|
|
sta (processing),y
|
|
iny
|
|
lda (processing),y
|
|
adc VYSIN+1,x
|
|
sta (processing),y
|
|
// processing->y += processing->vy
|
|
// [99] ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] = ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_Y] + ((word*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_VY] -- pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_pwuz1_derefidx_vbuc2
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VY
|
|
clc
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y
|
|
adc (processing),y
|
|
sta (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_VY+1
|
|
lda (processing),y
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_Y+1
|
|
adc (processing),y
|
|
sta (processing),y
|
|
// processChars::@7
|
|
__b7:
|
|
// numActive++;
|
|
// [100] processChars::numActive#1 = ++ processChars::numActive#10 -- vbuz1=_inc_vbuz1
|
|
inc.z numActive
|
|
// [101] phi from processChars::@1 processChars::@7 to processChars::@2 [phi:processChars::@1/processChars::@7->processChars::@2]
|
|
// [101] phi processChars::numActive#3 = processChars::numActive#10 [phi:processChars::@1/processChars::@7->processChars::@2#0] -- register_copy
|
|
// processChars::@2
|
|
__b2:
|
|
// for( char i: 0..NUM_PROCESSING-1 )
|
|
// [102] processChars::i#1 = ++ processChars::i#10 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [103] if(processChars::i#1!=NUM_PROCESSING-1+1) goto processChars::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #NUM_PROCESSING-1+1
|
|
cmp.z i
|
|
beq !__b1+
|
|
jmp __b1
|
|
!__b1:
|
|
// processChars::@return
|
|
// }
|
|
// [104] return
|
|
rts
|
|
// processChars::@6
|
|
__b6:
|
|
// processing->status = STATUS_FREE
|
|
// [105] ((byte*)processChars::processing#0)[OFFSET_STRUCT_PROCESSINGSPRITE_STATUS] = STATUS_FREE -- pbuz1_derefidx_vbuc1=vbuc2
|
|
// Set status to FREE
|
|
lda #STATUS_FREE
|
|
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS
|
|
sta (processing),y
|
|
// 0xff ^ bitmask
|
|
// [106] processChars::$25 = $ff ^ processChars::bitmask#0 -- vbuaa=vbuc1_bxor_vbuz1
|
|
lda #$ff
|
|
eor.z bitmask
|
|
// *SPRITES_ENABLE &= 0xff ^ bitmask
|
|
// [107] *SPRITES_ENABLE = *SPRITES_ENABLE & processChars::$25 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa
|
|
// Disable the sprite
|
|
and SPRITES_ENABLE
|
|
sta SPRITES_ENABLE
|
|
jmp __b7
|
|
// processChars::@4
|
|
__b4:
|
|
// *SPRITES_XMSB |= bitmask
|
|
// [108] *SPRITES_XMSB = *SPRITES_XMSB | processChars::bitmask#0 -- _deref_pbuc1=_deref_pbuc1_bor_vbuz1
|
|
lda SPRITES_XMSB
|
|
ora.z bitmask
|
|
sta SPRITES_XMSB
|
|
jmp __b5
|
|
}
|
|
// init_angle_screen
|
|
// Populates 1000 chars (a screen) with values representing the angle to the center.
|
|
// Utilizes symmetry around the center
|
|
// init_angle_screen(byte* zp($12) screen)
|
|
init_angle_screen: {
|
|
.label __7 = $1f
|
|
.label screen = $12
|
|
.label screen_bottomline = $12
|
|
.label xw = $25
|
|
.label yw = $28
|
|
.label angle_w = $1f
|
|
.label ang_w = $1e
|
|
.label x = $27
|
|
.label xb = $2c
|
|
.label screen_topline = $a
|
|
.label y = $14
|
|
// screen_topline = screen+40*12
|
|
// [109] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c -- pbuz1=pbuz1_plus_vwuc1
|
|
clc
|
|
lda.z screen_bottomline
|
|
adc #<$28*$c
|
|
sta.z screen_bottomline
|
|
lda.z screen_bottomline+1
|
|
adc #>$28*$c
|
|
sta.z screen_bottomline+1
|
|
// [110] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0 -- pbuz1=pbuz2
|
|
lda.z screen_bottomline
|
|
sta.z screen_topline
|
|
lda.z screen_bottomline+1
|
|
sta.z screen_topline+1
|
|
// [111] phi from init_angle_screen to init_angle_screen::@1 [phi:init_angle_screen->init_angle_screen::@1]
|
|
// [111] phi init_angle_screen::screen_bottomline#6 = init_angle_screen::screen_bottomline#0 [phi:init_angle_screen->init_angle_screen::@1#0] -- register_copy
|
|
// [111] phi init_angle_screen::screen_topline#6 = init_angle_screen::screen_topline#7 [phi:init_angle_screen->init_angle_screen::@1#1] -- register_copy
|
|
// [111] phi init_angle_screen::y#5 = 0 [phi:init_angle_screen->init_angle_screen::@1#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
// [111] phi from init_angle_screen::@4 to init_angle_screen::@1 [phi:init_angle_screen::@4->init_angle_screen::@1]
|
|
// [111] phi init_angle_screen::screen_bottomline#6 = init_angle_screen::screen_bottomline#1 [phi:init_angle_screen::@4->init_angle_screen::@1#0] -- register_copy
|
|
// [111] phi init_angle_screen::screen_topline#6 = init_angle_screen::screen_topline#1 [phi:init_angle_screen::@4->init_angle_screen::@1#1] -- register_copy
|
|
// [111] phi init_angle_screen::y#5 = init_angle_screen::y#1 [phi:init_angle_screen::@4->init_angle_screen::@1#2] -- register_copy
|
|
// init_angle_screen::@1
|
|
__b1:
|
|
// [112] phi from init_angle_screen::@1 to init_angle_screen::@2 [phi:init_angle_screen::@1->init_angle_screen::@2]
|
|
// [112] phi init_angle_screen::xb#2 = $27 [phi:init_angle_screen::@1->init_angle_screen::@2#0] -- vbuz1=vbuc1
|
|
lda #$27
|
|
sta.z xb
|
|
// [112] phi init_angle_screen::x#2 = 0 [phi:init_angle_screen::@1->init_angle_screen::@2#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z x
|
|
// init_angle_screen::@2
|
|
__b2:
|
|
// for( char x=0,xb=39; x<=19; x++, xb--)
|
|
// [113] if(init_angle_screen::x#2<$13+1) goto init_angle_screen::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z x
|
|
cmp #$13+1
|
|
bcc __b3
|
|
// init_angle_screen::@4
|
|
// screen_topline -= 40
|
|
// [114] init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#6 - $28 -- pbuz1=pbuz1_minus_vbuc1
|
|
sec
|
|
lda.z screen_topline
|
|
sbc #$28
|
|
sta.z screen_topline
|
|
lda.z screen_topline+1
|
|
sbc #0
|
|
sta.z screen_topline+1
|
|
// screen_bottomline += 40
|
|
// [115] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$28
|
|
clc
|
|
adc.z screen_bottomline
|
|
sta.z screen_bottomline
|
|
bcc !+
|
|
inc.z screen_bottomline+1
|
|
!:
|
|
// for(char y: 0..12)
|
|
// [116] init_angle_screen::y#1 = ++ init_angle_screen::y#5 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [117] if(init_angle_screen::y#1!=$d) goto init_angle_screen::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$d
|
|
cmp.z y
|
|
bne __b1
|
|
// init_angle_screen::@return
|
|
// }
|
|
// [118] return
|
|
rts
|
|
// init_angle_screen::@3
|
|
__b3:
|
|
// x*2
|
|
// [119] init_angle_screen::$3 = init_angle_screen::x#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z x
|
|
asl
|
|
// 39-x*2
|
|
// [120] init_angle_screen::$4 = $27 - init_angle_screen::$3 -- vbuaa=vbuc1_minus_vbuaa
|
|
eor #$ff
|
|
sec
|
|
adc #$27
|
|
// xw = (signed int)(unsigned int){ 39-x*2, 0 }
|
|
// [121] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
|
ldy #0
|
|
sta.z xw+1
|
|
sty.z xw
|
|
// y*2
|
|
// [122] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z y
|
|
asl
|
|
// yw = (signed int)(unsigned int){ y*2, 0 }
|
|
// [123] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
|
sta.z yw+1
|
|
sty.z yw
|
|
// atan2_16(xw, yw)
|
|
// [124] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
|
// [125] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
|
// [126] call atan2_16
|
|
jsr atan2_16
|
|
// [127] atan2_16::return#2 = atan2_16::return#0
|
|
// init_angle_screen::@5
|
|
// angle_w = atan2_16(xw, yw)
|
|
// [128] init_angle_screen::angle_w#0 = atan2_16::return#2
|
|
// angle_w+0x0080
|
|
// [129] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
|
lda #$80
|
|
clc
|
|
adc.z __7
|
|
sta.z __7
|
|
bcc !+
|
|
inc.z __7+1
|
|
!:
|
|
// ang_w = >(angle_w+0x0080)
|
|
// [130] init_angle_screen::ang_w#0 = > init_angle_screen::$7 -- vbuz1=_hi_vwuz2
|
|
lda.z __7+1
|
|
sta.z ang_w
|
|
// screen_bottomline[xb] = ang_w
|
|
// [131] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
|
ldy.z xb
|
|
sta (screen_bottomline),y
|
|
// -ang_w
|
|
// [132] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
|
eor #$ff
|
|
clc
|
|
adc #1
|
|
// screen_topline[xb] = -ang_w
|
|
// [133] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
|
sta (screen_topline),y
|
|
// 0x80+ang_w
|
|
// [134] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
|
lda #$80
|
|
clc
|
|
adc.z ang_w
|
|
// screen_topline[x] = 0x80+ang_w
|
|
// [135] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
|
ldy.z x
|
|
sta (screen_topline),y
|
|
// 0x80-ang_w
|
|
// [136] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
|
lda #$80
|
|
sec
|
|
sbc.z ang_w
|
|
// screen_bottomline[x] = 0x80-ang_w
|
|
// [137] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
|
sta (screen_bottomline),y
|
|
// for( char x=0,xb=39; x<=19; x++, xb--)
|
|
// [138] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [139] init_angle_screen::xb#1 = -- init_angle_screen::xb#2 -- vbuz1=_dec_vbuz1
|
|
dec.z xb
|
|
// [112] phi from init_angle_screen::@5 to init_angle_screen::@2 [phi:init_angle_screen::@5->init_angle_screen::@2]
|
|
// [112] phi init_angle_screen::xb#2 = init_angle_screen::xb#1 [phi:init_angle_screen::@5->init_angle_screen::@2#0] -- register_copy
|
|
// [112] phi init_angle_screen::x#2 = init_angle_screen::x#1 [phi:init_angle_screen::@5->init_angle_screen::@2#1] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// initSprites
|
|
// Initialize sprites
|
|
initSprites: {
|
|
.label sp = $a
|
|
// [141] phi from initSprites to initSprites::@1 [phi:initSprites->initSprites::@1]
|
|
// [141] phi initSprites::sp#2 = SPRITE_DATA [phi:initSprites->initSprites::@1#0] -- pbuz1=pbuc1
|
|
lda #<SPRITE_DATA
|
|
sta.z sp
|
|
lda #>SPRITE_DATA
|
|
sta.z sp+1
|
|
// Clear sprite data
|
|
// initSprites::@1
|
|
__b1:
|
|
// for( char* sp = SPRITE_DATA; sp<SPRITE_DATA+NUM_PROCESSING*64; sp++)
|
|
// [142] if(initSprites::sp#2<SPRITE_DATA+NUM_PROCESSING*$40) goto initSprites::@2 -- pbuz1_lt_pbuc1_then_la1
|
|
lda.z sp+1
|
|
cmp #>SPRITE_DATA+NUM_PROCESSING*$40
|
|
bcc __b2
|
|
bne !+
|
|
lda.z sp
|
|
cmp #<SPRITE_DATA+NUM_PROCESSING*$40
|
|
bcc __b2
|
|
!:
|
|
// [143] phi from initSprites::@1 to initSprites::@3 [phi:initSprites::@1->initSprites::@3]
|
|
// [143] phi initSprites::i#2 = 0 [phi:initSprites::@1->initSprites::@3#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// Initialize sprite registers
|
|
// [143] phi from initSprites::@3 to initSprites::@3 [phi:initSprites::@3->initSprites::@3]
|
|
// [143] phi initSprites::i#2 = initSprites::i#1 [phi:initSprites::@3->initSprites::@3#0] -- register_copy
|
|
// initSprites::@3
|
|
__b3:
|
|
// SPRITES_COLOR[i] = LIGHT_BLUE
|
|
// [144] SPRITES_COLOR[initSprites::i#2] = LIGHT_BLUE -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #LIGHT_BLUE
|
|
sta SPRITES_COLOR,x
|
|
// for( char i: 0..7)
|
|
// [145] initSprites::i#1 = ++ initSprites::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [146] if(initSprites::i#1!=8) goto initSprites::@3 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #8
|
|
bne __b3
|
|
// initSprites::@4
|
|
// *SPRITES_MC = 0
|
|
// [147] *SPRITES_MC = 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta SPRITES_MC
|
|
// *SPRITES_EXPAND_X = 0
|
|
// [148] *SPRITES_EXPAND_X = 0 -- _deref_pbuc1=vbuc2
|
|
sta SPRITES_EXPAND_X
|
|
// *SPRITES_EXPAND_Y = 0
|
|
// [149] *SPRITES_EXPAND_Y = 0 -- _deref_pbuc1=vbuc2
|
|
sta SPRITES_EXPAND_Y
|
|
// initSprites::@return
|
|
// }
|
|
// [150] return
|
|
rts
|
|
// initSprites::@2
|
|
__b2:
|
|
// *sp = 0
|
|
// [151] *initSprites::sp#2 = 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
tay
|
|
sta (sp),y
|
|
// for( char* sp = SPRITE_DATA; sp<SPRITE_DATA+NUM_PROCESSING*64; sp++)
|
|
// [152] initSprites::sp#1 = ++ initSprites::sp#2 -- pbuz1=_inc_pbuz1
|
|
inc.z sp
|
|
bne !+
|
|
inc.z sp+1
|
|
!:
|
|
// [141] phi from initSprites::@2 to initSprites::@1 [phi:initSprites::@2->initSprites::@1]
|
|
// [141] phi initSprites::sp#2 = initSprites::sp#1 [phi:initSprites::@2->initSprites::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// setupRasterIrq
|
|
// Setup Raster IRQ
|
|
setupRasterIrq: {
|
|
.label irqRoutine = irqTop
|
|
// asm
|
|
// asm { sei }
|
|
sei
|
|
// *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
// [154] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2
|
|
// Disable kernal & basic
|
|
lda #PROCPORT_DDR_MEMORY_MASK
|
|
sta PROCPORT_DDR
|
|
// *PROCPORT = PROCPORT_RAM_IO
|
|
// [155] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_IO
|
|
sta PROCPORT
|
|
// CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR
|
|
// [156] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2
|
|
// Disable CIA 1 Timer IRQ
|
|
lda #CIA_INTERRUPT_CLEAR
|
|
sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT
|
|
// setupRasterIrq::@1
|
|
// *VICII_CONTROL &=0x7f
|
|
// [157] *VICII_CONTROL = *VICII_CONTROL & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2
|
|
lda #$7f
|
|
and VICII_CONTROL
|
|
sta VICII_CONTROL
|
|
// setupRasterIrq::@2
|
|
// *RASTER = <raster
|
|
// [158] *RASTER = <RASTER_IRQ_TOP -- _deref_pbuc1=vbuc2
|
|
lda #RASTER_IRQ_TOP
|
|
sta RASTER
|
|
// *IRQ_ENABLE = IRQ_RASTER
|
|
// [159] *IRQ_ENABLE = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Enable Raster Interrupt
|
|
lda #IRQ_RASTER
|
|
sta IRQ_ENABLE
|
|
// *HARDWARE_IRQ = irqRoutine
|
|
// [160] *HARDWARE_IRQ = setupRasterIrq::irqRoutine#0 -- _deref_qprc1=pprc2
|
|
// Set the IRQ routine
|
|
lda #<irqRoutine
|
|
sta HARDWARE_IRQ
|
|
lda #>irqRoutine
|
|
sta HARDWARE_IRQ+1
|
|
// asm
|
|
// asm { cli }
|
|
cli
|
|
// setupRasterIrq::@return
|
|
// }
|
|
// [162] return
|
|
rts
|
|
}
|
|
// getCharToProcess
|
|
// Find the non-space char closest to the center of the screen
|
|
// If no non-space char is found the distance will be 0xffff
|
|
getCharToProcess: {
|
|
.label __8 = $2a
|
|
.label __9 = $2a
|
|
.label __11 = $2a
|
|
.label screen_line = $12
|
|
.label dist_line = $a
|
|
.label y = $14
|
|
.label return_x = $2c
|
|
.label return_y = 9
|
|
.label closest_dist = $27
|
|
.label closest_x = $2c
|
|
.label closest_y = 9
|
|
.label __12 = $1f
|
|
.label __13 = $2a
|
|
// screen_line = SCREEN_COPY
|
|
// [163] getCharToProcess::screen_line#0 = (byte*)SCREEN_COPY#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_COPY
|
|
sta.z screen_line
|
|
lda.z SCREEN_COPY+1
|
|
sta.z screen_line+1
|
|
// dist_line = SCREEN_DIST
|
|
// [164] getCharToProcess::dist_line#0 = (byte*)SCREEN_DIST#0 -- pbuz1=pbuz2
|
|
lda.z SCREEN_DIST
|
|
sta.z dist_line
|
|
lda.z SCREEN_DIST+1
|
|
sta.z dist_line+1
|
|
// [165] phi from getCharToProcess to getCharToProcess::@1 [phi:getCharToProcess->getCharToProcess::@1]
|
|
// [165] phi getCharToProcess::closest_y#9 = 0 [phi:getCharToProcess->getCharToProcess::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z closest_y
|
|
// [165] phi getCharToProcess::closest_x#9 = 0 [phi:getCharToProcess->getCharToProcess::@1#1] -- vbuz1=vbuc1
|
|
sta.z closest_x
|
|
// [165] phi getCharToProcess::y#7 = 0 [phi:getCharToProcess->getCharToProcess::@1#2] -- vbuz1=vbuc1
|
|
sta.z y
|
|
// [165] phi getCharToProcess::closest_dist#8 = NOT_FOUND [phi:getCharToProcess->getCharToProcess::@1#3] -- vbuz1=vbuc1
|
|
lda #NOT_FOUND
|
|
sta.z closest_dist
|
|
// [165] phi getCharToProcess::dist_line#6 = getCharToProcess::dist_line#0 [phi:getCharToProcess->getCharToProcess::@1#4] -- register_copy
|
|
// [165] phi getCharToProcess::screen_line#4 = getCharToProcess::screen_line#0 [phi:getCharToProcess->getCharToProcess::@1#5] -- register_copy
|
|
// getCharToProcess::@1
|
|
__b1:
|
|
// [166] phi from getCharToProcess::@1 to getCharToProcess::@2 [phi:getCharToProcess::@1->getCharToProcess::@2]
|
|
// [166] phi getCharToProcess::closest_y#7 = getCharToProcess::closest_y#9 [phi:getCharToProcess::@1->getCharToProcess::@2#0] -- register_copy
|
|
// [166] phi getCharToProcess::closest_x#7 = getCharToProcess::closest_x#9 [phi:getCharToProcess::@1->getCharToProcess::@2#1] -- register_copy
|
|
// [166] phi getCharToProcess::closest_dist#2 = getCharToProcess::closest_dist#8 [phi:getCharToProcess::@1->getCharToProcess::@2#2] -- register_copy
|
|
// [166] phi getCharToProcess::x#2 = 0 [phi:getCharToProcess::@1->getCharToProcess::@2#3] -- vbuyy=vbuc1
|
|
ldy #0
|
|
// getCharToProcess::@2
|
|
__b2:
|
|
// if(screen_line[x]!=' ')
|
|
// [167] if(getCharToProcess::screen_line#4[getCharToProcess::x#2]==' ') goto getCharToProcess::@11 -- pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1
|
|
lda #' '
|
|
cmp (screen_line),y
|
|
bne !__b11+
|
|
jmp __b11
|
|
!__b11:
|
|
// getCharToProcess::@4
|
|
// dist = dist_line[x]
|
|
// [168] getCharToProcess::dist#0 = getCharToProcess::dist_line#6[getCharToProcess::x#2] -- vbuxx=pbuz1_derefidx_vbuyy
|
|
lda (dist_line),y
|
|
tax
|
|
// if(dist<closest.dist)
|
|
// [169] if(getCharToProcess::dist#0>=getCharToProcess::closest_dist#2) goto getCharToProcess::@12 -- vbuxx_ge_vbuz1_then_la1
|
|
cpx.z closest_dist
|
|
bcs __b12
|
|
// getCharToProcess::@5
|
|
// [170] getCharToProcess::return_x#7 = getCharToProcess::x#2 -- vbuz1=vbuyy
|
|
sty.z return_x
|
|
// [171] getCharToProcess::return_y#7 = getCharToProcess::y#7 -- vbuz1=vbuz2
|
|
lda.z y
|
|
sta.z return_y
|
|
// [172] phi from getCharToProcess::@11 getCharToProcess::@12 getCharToProcess::@5 to getCharToProcess::@3 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3]
|
|
// [172] phi getCharToProcess::return_y#1 = getCharToProcess::closest_y#7 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3#0] -- register_copy
|
|
// [172] phi getCharToProcess::return_x#1 = getCharToProcess::closest_x#7 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3#1] -- register_copy
|
|
// [172] phi getCharToProcess::return_dist#1 = getCharToProcess::return_dist#5 [phi:getCharToProcess::@11/getCharToProcess::@12/getCharToProcess::@5->getCharToProcess::@3#2] -- register_copy
|
|
// getCharToProcess::@3
|
|
__b3:
|
|
// for( char x: 0..39)
|
|
// [173] getCharToProcess::x#1 = ++ getCharToProcess::x#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [174] if(getCharToProcess::x#1!=$28) goto getCharToProcess::@10 -- vbuyy_neq_vbuc1_then_la1
|
|
cpy #$28
|
|
bne __b10
|
|
// getCharToProcess::@6
|
|
// screen_line += 40
|
|
// [175] getCharToProcess::screen_line#1 = getCharToProcess::screen_line#4 + $28 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$28
|
|
clc
|
|
adc.z screen_line
|
|
sta.z screen_line
|
|
bcc !+
|
|
inc.z screen_line+1
|
|
!:
|
|
// dist_line += 40
|
|
// [176] getCharToProcess::dist_line#1 = getCharToProcess::dist_line#6 + $28 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$28
|
|
clc
|
|
adc.z dist_line
|
|
sta.z dist_line
|
|
bcc !+
|
|
inc.z dist_line+1
|
|
!:
|
|
// for( char y: 0..24)
|
|
// [177] getCharToProcess::y#1 = ++ getCharToProcess::y#7 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [178] if(getCharToProcess::y#1!=$19) goto getCharToProcess::@9 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$19
|
|
cmp.z y
|
|
bne __b9
|
|
// getCharToProcess::@7
|
|
// if(closest.dist != NOT_FOUND)
|
|
// [179] if(getCharToProcess::return_dist#1==NOT_FOUND) goto getCharToProcess::@return -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #NOT_FOUND
|
|
beq __breturn
|
|
// getCharToProcess::@8
|
|
// (unsigned int)closest.y*40
|
|
// [180] getCharToProcess::$11 = (word)getCharToProcess::return_y#1 -- vwuz1=_word_vbuz2
|
|
lda.z return_y
|
|
sta.z __11
|
|
lda #0
|
|
sta.z __11+1
|
|
// [181] getCharToProcess::$12 = getCharToProcess::$11 << 2 -- vwuz1=vwuz2_rol_2
|
|
lda.z __11
|
|
asl
|
|
sta.z __12
|
|
lda.z __11+1
|
|
rol
|
|
sta.z __12+1
|
|
asl.z __12
|
|
rol.z __12+1
|
|
// [182] getCharToProcess::$13 = getCharToProcess::$12 + getCharToProcess::$11 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda.z __13
|
|
clc
|
|
adc.z __12
|
|
sta.z __13
|
|
lda.z __13+1
|
|
adc.z __12+1
|
|
sta.z __13+1
|
|
// [183] getCharToProcess::$8 = getCharToProcess::$13 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
// SCREEN_COPY+(unsigned int)closest.y*40
|
|
// [184] getCharToProcess::$9 = (byte*)SCREEN_COPY#0 + getCharToProcess::$8 -- pbuz1=pbuz2_plus_vwuz1
|
|
lda.z __9
|
|
clc
|
|
adc.z SCREEN_COPY
|
|
sta.z __9
|
|
lda.z __9+1
|
|
adc.z SCREEN_COPY+1
|
|
sta.z __9+1
|
|
// *(SCREEN_COPY+(unsigned int)closest.y*40+closest.x) = ' '
|
|
// [185] getCharToProcess::$9[getCharToProcess::return_x#1] = ' ' -- pbuz1_derefidx_vbuz2=vbuc1
|
|
// clear the found char on the screen copy
|
|
lda #' '
|
|
ldy.z return_x
|
|
sta (__9),y
|
|
// getCharToProcess::@return
|
|
__breturn:
|
|
// }
|
|
// [186] return
|
|
rts
|
|
// getCharToProcess::@9
|
|
__b9:
|
|
// [187] getCharToProcess::closest_dist#10 = getCharToProcess::return_dist#1 -- vbuz1=vbuxx
|
|
stx.z closest_dist
|
|
// [165] phi from getCharToProcess::@9 to getCharToProcess::@1 [phi:getCharToProcess::@9->getCharToProcess::@1]
|
|
// [165] phi getCharToProcess::closest_y#9 = getCharToProcess::return_y#1 [phi:getCharToProcess::@9->getCharToProcess::@1#0] -- register_copy
|
|
// [165] phi getCharToProcess::closest_x#9 = getCharToProcess::return_x#1 [phi:getCharToProcess::@9->getCharToProcess::@1#1] -- register_copy
|
|
// [165] phi getCharToProcess::y#7 = getCharToProcess::y#1 [phi:getCharToProcess::@9->getCharToProcess::@1#2] -- register_copy
|
|
// [165] phi getCharToProcess::closest_dist#8 = getCharToProcess::closest_dist#10 [phi:getCharToProcess::@9->getCharToProcess::@1#3] -- register_copy
|
|
// [165] phi getCharToProcess::dist_line#6 = getCharToProcess::dist_line#1 [phi:getCharToProcess::@9->getCharToProcess::@1#4] -- register_copy
|
|
// [165] phi getCharToProcess::screen_line#4 = getCharToProcess::screen_line#1 [phi:getCharToProcess::@9->getCharToProcess::@1#5] -- register_copy
|
|
jmp __b1
|
|
// getCharToProcess::@10
|
|
__b10:
|
|
// [188] getCharToProcess::closest_dist#12 = getCharToProcess::return_dist#1 -- vbuz1=vbuxx
|
|
stx.z closest_dist
|
|
// [166] phi from getCharToProcess::@10 to getCharToProcess::@2 [phi:getCharToProcess::@10->getCharToProcess::@2]
|
|
// [166] phi getCharToProcess::closest_y#7 = getCharToProcess::return_y#1 [phi:getCharToProcess::@10->getCharToProcess::@2#0] -- register_copy
|
|
// [166] phi getCharToProcess::closest_x#7 = getCharToProcess::return_x#1 [phi:getCharToProcess::@10->getCharToProcess::@2#1] -- register_copy
|
|
// [166] phi getCharToProcess::closest_dist#2 = getCharToProcess::closest_dist#12 [phi:getCharToProcess::@10->getCharToProcess::@2#2] -- register_copy
|
|
// [166] phi getCharToProcess::x#2 = getCharToProcess::x#1 [phi:getCharToProcess::@10->getCharToProcess::@2#3] -- register_copy
|
|
jmp __b2
|
|
// getCharToProcess::@12
|
|
__b12:
|
|
// [189] getCharToProcess::return_dist#6 = getCharToProcess::closest_dist#2 -- vbuxx=vbuz1
|
|
ldx.z closest_dist
|
|
jmp __b3
|
|
// getCharToProcess::@11
|
|
__b11:
|
|
// [190] getCharToProcess::return_dist#5 = getCharToProcess::closest_dist#2 -- vbuxx=vbuz1
|
|
ldx.z closest_dist
|
|
jmp __b3
|
|
}
|
|
// startProcessing
|
|
// Start processing a char - by inserting it into the PROCESSING array
|
|
// startProcessing(byte zp($1e) center_x, byte zp($14) center_y)
|
|
startProcessing: {
|
|
.label __0 = $21
|
|
.label __4 = $c
|
|
.label __6 = $a
|
|
.label __8 = $28
|
|
.label __9 = $28
|
|
.label __11 = $2a
|
|
.label __12 = $2a
|
|
.label __23 = $21
|
|
.label __24 = $c
|
|
.label __25 = $a
|
|
.label __26 = $28
|
|
.label __27 = $2a
|
|
.label center_x = $1e
|
|
.label center_y = $14
|
|
.label i = 9
|
|
.label offset = $21
|
|
.label colPtr = $25
|
|
.label spriteCol = $27
|
|
.label screenPtr = $21
|
|
.label spriteData = $c
|
|
.label chargenData = $a
|
|
.label spriteX = $28
|
|
.label spriteY = $2a
|
|
.label spritePtr = $2c
|
|
// Busy-wait while finding an empty slot in the PROCESSING array
|
|
.label freeIdx = 9
|
|
.label __33 = $23
|
|
.label __34 = $21
|
|
// [192] phi from startProcessing to startProcessing::@1 [phi:startProcessing->startProcessing::@1]
|
|
// [192] phi startProcessing::freeIdx#6 = $ff [phi:startProcessing->startProcessing::@1#0] -- vbuxx=vbuc1
|
|
ldx #$ff
|
|
// startProcessing::@1
|
|
__b1:
|
|
// [193] phi from startProcessing::@1 to startProcessing::@2 [phi:startProcessing::@1->startProcessing::@2]
|
|
// [193] phi startProcessing::i#2 = 0 [phi:startProcessing::@1->startProcessing::@2#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z i
|
|
// [193] phi from startProcessing::@3 to startProcessing::@2 [phi:startProcessing::@3->startProcessing::@2]
|
|
// [193] phi startProcessing::i#2 = startProcessing::i#1 [phi:startProcessing::@3->startProcessing::@2#0] -- register_copy
|
|
// startProcessing::@2
|
|
__b2:
|
|
// PROCESSING[i].status==STATUS_FREE
|
|
// [194] startProcessing::$28 = startProcessing::i#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z i
|
|
asl
|
|
// [195] startProcessing::$29 = startProcessing::$28 + startProcessing::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [196] startProcessing::$30 = startProcessing::$29 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [197] startProcessing::$31 = startProcessing::$30 + startProcessing::i#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z i
|
|
// [198] startProcessing::$21 = startProcessing::$31 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// if(PROCESSING[i].status==STATUS_FREE)
|
|
// [199] if(((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$21]!=STATUS_FREE) goto startProcessing::@3 -- pbuc1_derefidx_vbuaa_neq_vbuc2_then_la1
|
|
tay
|
|
lda #STATUS_FREE
|
|
cmp PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,y
|
|
beq !__b3+
|
|
jmp __b3
|
|
!__b3:
|
|
// [200] phi from startProcessing::@2 startProcessing::@9 to startProcessing::@4 [phi:startProcessing::@2/startProcessing::@9->startProcessing::@4]
|
|
// [200] phi startProcessing::freeIdx#2 = startProcessing::i#2 [phi:startProcessing::@2/startProcessing::@9->startProcessing::@4#0] -- register_copy
|
|
// startProcessing::@4
|
|
__b4:
|
|
// while (freeIdx==0xff)
|
|
// [201] if(startProcessing::freeIdx#2==$ff) goto startProcessing::@8 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #$ff
|
|
cmp.z freeIdx
|
|
bne !__b8+
|
|
jmp __b8
|
|
!__b8:
|
|
// startProcessing::@5
|
|
// (unsigned int)center.y*40
|
|
// [202] startProcessing::$23 = (word)startProcessing::center_y#0 -- vwuz1=_word_vbuz2
|
|
lda.z center_y
|
|
sta.z __23
|
|
lda #0
|
|
sta.z __23+1
|
|
// [203] startProcessing::$33 = startProcessing::$23 << 2 -- vwuz1=vwuz2_rol_2
|
|
lda.z __23
|
|
asl
|
|
sta.z __33
|
|
lda.z __23+1
|
|
rol
|
|
sta.z __33+1
|
|
asl.z __33
|
|
rol.z __33+1
|
|
// [204] startProcessing::$34 = startProcessing::$33 + startProcessing::$23 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda.z __34
|
|
clc
|
|
adc.z __33
|
|
sta.z __34
|
|
lda.z __34+1
|
|
adc.z __33+1
|
|
sta.z __34+1
|
|
// [205] startProcessing::$0 = startProcessing::$34 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __0
|
|
rol.z __0+1
|
|
asl.z __0
|
|
rol.z __0+1
|
|
asl.z __0
|
|
rol.z __0+1
|
|
// offset = (unsigned int)center.y*40+center.x
|
|
// [206] startProcessing::offset#0 = startProcessing::$0 + startProcessing::center_x#0 -- vwuz1=vwuz1_plus_vbuz2
|
|
lda.z center_x
|
|
clc
|
|
adc.z offset
|
|
sta.z offset
|
|
bcc !+
|
|
inc.z offset+1
|
|
!:
|
|
// colPtr = COLS+offset
|
|
// [207] startProcessing::colPtr#0 = COLS + startProcessing::offset#0 -- pbuz1=pbuc1_plus_vwuz2
|
|
clc
|
|
lda.z offset
|
|
adc #<COLS
|
|
sta.z colPtr
|
|
lda.z offset+1
|
|
adc #>COLS
|
|
sta.z colPtr+1
|
|
// spriteCol = *colPtr
|
|
// [208] startProcessing::spriteCol#0 = *startProcessing::colPtr#0 -- vbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (colPtr),y
|
|
sta.z spriteCol
|
|
// screenPtr = SCREEN+offset
|
|
// [209] startProcessing::screenPtr#0 = SCREEN + startProcessing::offset#0 -- pbuz1=pbuc1_plus_vwuz1
|
|
clc
|
|
lda.z screenPtr
|
|
adc #<SCREEN
|
|
sta.z screenPtr
|
|
lda.z screenPtr+1
|
|
adc #>SCREEN
|
|
sta.z screenPtr+1
|
|
// (unsigned int)spriteIdx*64
|
|
// [210] startProcessing::$24 = (word)startProcessing::freeIdx#2 -- vwuz1=_word_vbuz2
|
|
lda.z freeIdx
|
|
sta.z __24
|
|
tya
|
|
sta.z __24+1
|
|
// [211] startProcessing::$4 = startProcessing::$24 << 6 -- vwuz1=vwuz1_rol_6
|
|
lda.z __4+1
|
|
lsr
|
|
sta.z $ff
|
|
lda.z __4
|
|
ror
|
|
sta.z __4+1
|
|
tya
|
|
ror
|
|
sta.z __4
|
|
lsr.z $ff
|
|
ror.z __4+1
|
|
ror.z __4
|
|
// spriteData = SPRITE_DATA+(unsigned int)spriteIdx*64
|
|
// [212] startProcessing::spriteData#0 = SPRITE_DATA + startProcessing::$4 -- pbuz1=pbuc1_plus_vwuz1
|
|
clc
|
|
lda.z spriteData
|
|
adc #<SPRITE_DATA
|
|
sta.z spriteData
|
|
lda.z spriteData+1
|
|
adc #>SPRITE_DATA
|
|
sta.z spriteData+1
|
|
// ch = (*screenPtr)
|
|
// [213] startProcessing::ch#0 = *startProcessing::screenPtr#0 -- vbuaa=_deref_pbuz1
|
|
lda (screenPtr),y
|
|
// (unsigned int)ch*8
|
|
// [214] startProcessing::$25 = (word)startProcessing::ch#0 -- vwuz1=_word_vbuaa
|
|
sta.z __25
|
|
tya
|
|
sta.z __25+1
|
|
// [215] startProcessing::$6 = startProcessing::$25 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __6
|
|
rol.z __6+1
|
|
asl.z __6
|
|
rol.z __6+1
|
|
asl.z __6
|
|
rol.z __6+1
|
|
// chargenData = CHARGEN+(unsigned int)ch*8
|
|
// [216] startProcessing::chargenData#0 = CHARGEN + startProcessing::$6 -- pbuz1=pbuc1_plus_vwuz1
|
|
clc
|
|
lda.z chargenData
|
|
adc #<CHARGEN
|
|
sta.z chargenData
|
|
lda.z chargenData+1
|
|
adc #>CHARGEN
|
|
sta.z chargenData+1
|
|
// asm
|
|
// asm { sei }
|
|
sei
|
|
// *PROCPORT = PROCPORT_RAM_CHARROM
|
|
// [218] *PROCPORT = PROCPORT_RAM_CHARROM -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_CHARROM
|
|
sta PROCPORT
|
|
// [219] phi from startProcessing::@5 to startProcessing::@6 [phi:startProcessing::@5->startProcessing::@6]
|
|
// [219] phi startProcessing::i1#2 = 0 [phi:startProcessing::@5->startProcessing::@6#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [219] phi startProcessing::spriteData#2 = startProcessing::spriteData#0 [phi:startProcessing::@5->startProcessing::@6#1] -- register_copy
|
|
// [219] phi startProcessing::chargenData#2 = startProcessing::chargenData#0 [phi:startProcessing::@5->startProcessing::@6#2] -- register_copy
|
|
// [219] phi from startProcessing::@6 to startProcessing::@6 [phi:startProcessing::@6->startProcessing::@6]
|
|
// [219] phi startProcessing::i1#2 = startProcessing::i1#1 [phi:startProcessing::@6->startProcessing::@6#0] -- register_copy
|
|
// [219] phi startProcessing::spriteData#2 = startProcessing::spriteData#1 [phi:startProcessing::@6->startProcessing::@6#1] -- register_copy
|
|
// [219] phi startProcessing::chargenData#2 = startProcessing::chargenData#1 [phi:startProcessing::@6->startProcessing::@6#2] -- register_copy
|
|
// startProcessing::@6
|
|
__b6:
|
|
// *spriteData = *chargenData
|
|
// [220] *startProcessing::spriteData#2 = *startProcessing::chargenData#2 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (chargenData),y
|
|
sta (spriteData),y
|
|
// spriteData += 3
|
|
// [221] startProcessing::spriteData#1 = startProcessing::spriteData#2 + 3 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #3
|
|
clc
|
|
adc.z spriteData
|
|
sta.z spriteData
|
|
bcc !+
|
|
inc.z spriteData+1
|
|
!:
|
|
// chargenData++;
|
|
// [222] startProcessing::chargenData#1 = ++ startProcessing::chargenData#2 -- pbuz1=_inc_pbuz1
|
|
inc.z chargenData
|
|
bne !+
|
|
inc.z chargenData+1
|
|
!:
|
|
// for( char i: 0..7)
|
|
// [223] startProcessing::i1#1 = ++ startProcessing::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [224] if(startProcessing::i1#1!=8) goto startProcessing::@6 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #8
|
|
bne __b6
|
|
// startProcessing::@7
|
|
// *PROCPORT = PROCPORT_RAM_IO
|
|
// [225] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_IO
|
|
sta PROCPORT
|
|
// asm
|
|
// asm { cli }
|
|
cli
|
|
// (unsigned int)center.x*8
|
|
// [227] startProcessing::$26 = (word)startProcessing::center_x#0 -- vwuz1=_word_vbuz2
|
|
lda.z center_x
|
|
sta.z __26
|
|
lda #0
|
|
sta.z __26+1
|
|
// [228] startProcessing::$8 = startProcessing::$26 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
asl.z __8
|
|
rol.z __8+1
|
|
// BORDER_XPOS_LEFT + (unsigned int)center.x*8
|
|
// [229] startProcessing::$9 = BORDER_XPOS_LEFT + startProcessing::$8 -- vwuz1=vbuc1_plus_vwuz1
|
|
lda #BORDER_XPOS_LEFT
|
|
clc
|
|
adc.z __9
|
|
sta.z __9
|
|
bcc !+
|
|
inc.z __9+1
|
|
!:
|
|
// spriteX = (BORDER_XPOS_LEFT + (unsigned int)center.x*8) << 4
|
|
// [230] startProcessing::spriteX#0 = startProcessing::$9 << 4 -- vwuz1=vwuz1_rol_4
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
asl.z spriteX
|
|
rol.z spriteX+1
|
|
// (unsigned int)center.y*8
|
|
// [231] startProcessing::$27 = (word)startProcessing::center_y#0 -- vwuz1=_word_vbuz2
|
|
lda.z center_y
|
|
sta.z __27
|
|
lda #0
|
|
sta.z __27+1
|
|
// [232] startProcessing::$11 = startProcessing::$27 << 3 -- vwuz1=vwuz1_rol_3
|
|
asl.z __11
|
|
rol.z __11+1
|
|
asl.z __11
|
|
rol.z __11+1
|
|
asl.z __11
|
|
rol.z __11+1
|
|
// BORDER_YPOS_TOP + (unsigned int)center.y*8
|
|
// [233] startProcessing::$12 = BORDER_YPOS_TOP + startProcessing::$11 -- vwuz1=vbuc1_plus_vwuz1
|
|
lda #BORDER_YPOS_TOP
|
|
clc
|
|
adc.z __12
|
|
sta.z __12
|
|
bcc !+
|
|
inc.z __12+1
|
|
!:
|
|
// spriteY = (BORDER_YPOS_TOP + (unsigned int)center.y*8) << 4
|
|
// [234] startProcessing::spriteY#0 = startProcessing::$12 << 4 -- vwuz1=vwuz1_rol_4
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
asl.z spriteY
|
|
rol.z spriteY+1
|
|
// spritePtr = (char)(SPRITE_DATA/64)+spriteIdx
|
|
// [235] startProcessing::spritePtr#0 = (byte)SPRITE_DATA/$40 + startProcessing::freeIdx#2 -- vbuz1=vbuc1_plus_vbuz2
|
|
lax.z freeIdx
|
|
axs #-[SPRITE_DATA/$40]
|
|
stx.z spritePtr
|
|
// spriteIdx*8
|
|
// [236] startProcessing::$15 = startProcessing::freeIdx#2 << 3 -- vbuyy=vbuz1_rol_3
|
|
lda.z freeIdx
|
|
asl
|
|
asl
|
|
asl
|
|
tay
|
|
// PROCESSING[spriteIdx] = { spriteX, spriteY, (unsigned int)(spriteIdx*8), 60, spriteIdx, spritePtr, spriteCol, STATUS_NEW, screenPtr }
|
|
// [237] startProcessing::$36 = startProcessing::freeIdx#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z freeIdx
|
|
asl
|
|
// [238] startProcessing::$37 = startProcessing::$36 + startProcessing::freeIdx#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z freeIdx
|
|
// [239] startProcessing::$38 = startProcessing::$37 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [240] startProcessing::$39 = startProcessing::$38 + startProcessing::freeIdx#2 -- vbuaa=vbuaa_plus_vbuz1
|
|
clc
|
|
adc.z freeIdx
|
|
// [241] startProcessing::$22 = startProcessing::$39 << 1 -- vbuxx=vbuaa_rol_1
|
|
asl
|
|
tax
|
|
// [242] ((word*)PROCESSING)[startProcessing::$22] = startProcessing::spriteX#0 -- pwuc1_derefidx_vbuxx=vwuz1
|
|
lda.z spriteX
|
|
sta PROCESSING,x
|
|
lda.z spriteX+1
|
|
sta PROCESSING+1,x
|
|
// [243] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y)[startProcessing::$22] = startProcessing::spriteY#0 -- pwuc1_derefidx_vbuxx=vwuz1
|
|
lda.z spriteY
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y,x
|
|
lda.z spriteY+1
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y+1,x
|
|
// [244] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX)[startProcessing::$22] = (word)startProcessing::$15 -- pwuc1_derefidx_vbuxx=_word_vbuyy
|
|
tya
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX,x
|
|
lda #0
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX+1,x
|
|
// [245] ((word*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY)[startProcessing::$22] = $3c -- pwuc1_derefidx_vbuxx=vwuc2
|
|
lda #<$3c
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY,x
|
|
lda #>$3c
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY+1,x
|
|
// [246] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID)[startProcessing::$22] = startProcessing::freeIdx#2 -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z freeIdx
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID,x
|
|
// [247] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR)[startProcessing::$22] = startProcessing::spritePtr#0 -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z spritePtr
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR,x
|
|
// [248] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL)[startProcessing::$22] = startProcessing::spriteCol#0 -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z spriteCol
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL,x
|
|
// [249] ((byte*)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)[startProcessing::$22] = STATUS_NEW -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #STATUS_NEW
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,x
|
|
// [250] ((byte**)PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)[startProcessing::$22] = startProcessing::screenPtr#0 -- qbuc1_derefidx_vbuxx=pbuz1
|
|
lda.z screenPtr
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR,x
|
|
lda.z screenPtr+1
|
|
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR+1,x
|
|
// startProcessing::@return
|
|
// }
|
|
// [251] return
|
|
rts
|
|
// startProcessing::@8
|
|
__b8:
|
|
// [252] startProcessing::freeIdx#7 = startProcessing::freeIdx#2 -- vbuxx=vbuz1
|
|
ldx.z freeIdx
|
|
// [192] phi from startProcessing::@8 to startProcessing::@1 [phi:startProcessing::@8->startProcessing::@1]
|
|
// [192] phi startProcessing::freeIdx#6 = startProcessing::freeIdx#7 [phi:startProcessing::@8->startProcessing::@1#0] -- register_copy
|
|
jmp __b1
|
|
// startProcessing::@3
|
|
__b3:
|
|
// for( char i: 0..NUM_PROCESSING-1 )
|
|
// [253] startProcessing::i#1 = ++ startProcessing::i#2 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [254] if(startProcessing::i#1!=NUM_PROCESSING-1+1) goto startProcessing::@2 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #NUM_PROCESSING-1+1
|
|
cmp.z i
|
|
beq !__b2+
|
|
jmp __b2
|
|
!__b2:
|
|
// startProcessing::@9
|
|
// [255] startProcessing::freeIdx#8 = startProcessing::freeIdx#6 -- vbuz1=vbuxx
|
|
stx.z freeIdx
|
|
jmp __b4
|
|
}
|
|
// atan2_16
|
|
// Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y)
|
|
// Finding the angle requires a binary search using CORDIC_ITERATIONS_16
|
|
// Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI)
|
|
// atan2_16(signed word zp($25) x, signed word zp($28) y)
|
|
atan2_16: {
|
|
.label __2 = $c
|
|
.label __7 = $2a
|
|
.label yi = $c
|
|
.label xi = $2a
|
|
.label angle = $1f
|
|
.label xd = $23
|
|
.label yd = $21
|
|
.label return = $1f
|
|
.label x = $25
|
|
.label y = $28
|
|
// (y>=0)?y:-y
|
|
// [256] if(atan2_16::y#0>=0) goto atan2_16::@1 -- vwsz1_ge_0_then_la1
|
|
lda.z y+1
|
|
bmi !__b1+
|
|
jmp __b1
|
|
!__b1:
|
|
// atan2_16::@2
|
|
// [257] atan2_16::$2 = - atan2_16::y#0 -- vwsz1=_neg_vwsz2
|
|
sec
|
|
lda #0
|
|
sbc.z y
|
|
sta.z __2
|
|
lda #0
|
|
sbc.z y+1
|
|
sta.z __2+1
|
|
// [258] phi from atan2_16::@1 atan2_16::@2 to atan2_16::@3 [phi:atan2_16::@1/atan2_16::@2->atan2_16::@3]
|
|
// [258] phi atan2_16::yi#0 = atan2_16::yi#16 [phi:atan2_16::@1/atan2_16::@2->atan2_16::@3#0] -- register_copy
|
|
// atan2_16::@3
|
|
__b3:
|
|
// (x>=0)?x:-x
|
|
// [259] if(atan2_16::x#0>=0) goto atan2_16::@4 -- vwsz1_ge_0_then_la1
|
|
lda.z x+1
|
|
bmi !__b4+
|
|
jmp __b4
|
|
!__b4:
|
|
// atan2_16::@5
|
|
// [260] atan2_16::$7 = - atan2_16::x#0 -- vwsz1=_neg_vwsz2
|
|
sec
|
|
lda #0
|
|
sbc.z x
|
|
sta.z __7
|
|
lda #0
|
|
sbc.z x+1
|
|
sta.z __7+1
|
|
// [261] phi from atan2_16::@4 atan2_16::@5 to atan2_16::@6 [phi:atan2_16::@4/atan2_16::@5->atan2_16::@6]
|
|
// [261] phi atan2_16::xi#0 = atan2_16::xi#13 [phi:atan2_16::@4/atan2_16::@5->atan2_16::@6#0] -- register_copy
|
|
// atan2_16::@6
|
|
__b6:
|
|
// [262] phi from atan2_16::@6 to atan2_16::@10 [phi:atan2_16::@6->atan2_16::@10]
|
|
// [262] phi atan2_16::angle#12 = 0 [phi:atan2_16::@6->atan2_16::@10#0] -- vwuz1=vwuc1
|
|
lda #<0
|
|
sta.z angle
|
|
sta.z angle+1
|
|
// [262] phi atan2_16::i#2 = 0 [phi:atan2_16::@6->atan2_16::@10#1] -- vbuxx=vbuc1
|
|
tax
|
|
// [262] phi atan2_16::xi#3 = atan2_16::xi#0 [phi:atan2_16::@6->atan2_16::@10#2] -- register_copy
|
|
// [262] phi atan2_16::yi#3 = atan2_16::yi#0 [phi:atan2_16::@6->atan2_16::@10#3] -- register_copy
|
|
// atan2_16::@10
|
|
__b10:
|
|
// if(yi==0)
|
|
// [263] if(atan2_16::yi#3!=0) goto atan2_16::@11 -- vwsz1_neq_0_then_la1
|
|
lda.z yi+1
|
|
ora.z yi
|
|
bne __b11
|
|
// [264] phi from atan2_16::@10 atan2_16::@19 to atan2_16::@12 [phi:atan2_16::@10/atan2_16::@19->atan2_16::@12]
|
|
// [264] phi atan2_16::angle#6 = atan2_16::angle#12 [phi:atan2_16::@10/atan2_16::@19->atan2_16::@12#0] -- register_copy
|
|
// atan2_16::@12
|
|
__b12:
|
|
// angle /=2
|
|
// [265] atan2_16::angle#1 = atan2_16::angle#6 >> 1 -- vwuz1=vwuz1_ror_1
|
|
lsr.z angle+1
|
|
ror.z angle
|
|
// if(x<0)
|
|
// [266] if(atan2_16::x#0>=0) goto atan2_16::@7 -- vwsz1_ge_0_then_la1
|
|
lda.z x+1
|
|
bpl __b7
|
|
// atan2_16::@21
|
|
// angle = 0x8000-angle
|
|
// [267] atan2_16::angle#4 = $8000 - atan2_16::angle#1 -- vwuz1=vwuc1_minus_vwuz1
|
|
sec
|
|
lda #<$8000
|
|
sbc.z angle
|
|
sta.z angle
|
|
lda #>$8000
|
|
sbc.z angle+1
|
|
sta.z angle+1
|
|
// [268] phi from atan2_16::@12 atan2_16::@21 to atan2_16::@7 [phi:atan2_16::@12/atan2_16::@21->atan2_16::@7]
|
|
// [268] phi atan2_16::angle#11 = atan2_16::angle#1 [phi:atan2_16::@12/atan2_16::@21->atan2_16::@7#0] -- register_copy
|
|
// atan2_16::@7
|
|
__b7:
|
|
// if(y<0)
|
|
// [269] if(atan2_16::y#0>=0) goto atan2_16::@8 -- vwsz1_ge_0_then_la1
|
|
lda.z y+1
|
|
bpl __b8
|
|
// atan2_16::@9
|
|
// angle = -angle
|
|
// [270] atan2_16::angle#5 = - atan2_16::angle#11 -- vwuz1=_neg_vwuz1
|
|
sec
|
|
lda #0
|
|
sbc.z angle
|
|
sta.z angle
|
|
lda #0
|
|
sbc.z angle+1
|
|
sta.z angle+1
|
|
// [271] phi from atan2_16::@7 atan2_16::@9 to atan2_16::@8 [phi:atan2_16::@7/atan2_16::@9->atan2_16::@8]
|
|
// [271] phi atan2_16::return#0 = atan2_16::angle#11 [phi:atan2_16::@7/atan2_16::@9->atan2_16::@8#0] -- register_copy
|
|
// atan2_16::@8
|
|
__b8:
|
|
// atan2_16::@return
|
|
// }
|
|
// [272] return
|
|
rts
|
|
// atan2_16::@11
|
|
__b11:
|
|
// [273] atan2_16::shift#5 = atan2_16::i#2 -- vbuyy=vbuxx
|
|
txa
|
|
tay
|
|
// [274] atan2_16::xd#10 = atan2_16::xi#3 -- vwsz1=vwsz2
|
|
lda.z xi
|
|
sta.z xd
|
|
lda.z xi+1
|
|
sta.z xd+1
|
|
// [275] atan2_16::yd#10 = atan2_16::yi#3 -- vwsz1=vwsz2
|
|
lda.z yi
|
|
sta.z yd
|
|
lda.z yi+1
|
|
sta.z yd+1
|
|
// [276] phi from atan2_16::@11 atan2_16::@14 to atan2_16::@13 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13]
|
|
// [276] phi atan2_16::yd#3 = atan2_16::yd#10 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13#0] -- register_copy
|
|
// [276] phi atan2_16::xd#3 = atan2_16::xd#10 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13#1] -- register_copy
|
|
// [276] phi atan2_16::shift#2 = atan2_16::shift#5 [phi:atan2_16::@11/atan2_16::@14->atan2_16::@13#2] -- register_copy
|
|
// atan2_16::@13
|
|
__b13:
|
|
// while(shift>=2)
|
|
// [277] if(atan2_16::shift#2>=2) goto atan2_16::@14 -- vbuyy_ge_vbuc1_then_la1
|
|
cpy #2
|
|
bcs __b14
|
|
// atan2_16::@15
|
|
// if(shift)
|
|
// [278] if(0==atan2_16::shift#2) goto atan2_16::@17 -- 0_eq_vbuyy_then_la1
|
|
cpy #0
|
|
beq __b17
|
|
// atan2_16::@16
|
|
// xd >>= 1
|
|
// [279] atan2_16::xd#2 = atan2_16::xd#3 >> 1 -- vwsz1=vwsz1_ror_1
|
|
lda.z xd+1
|
|
cmp #$80
|
|
ror.z xd+1
|
|
ror.z xd
|
|
// yd >>= 1
|
|
// [280] atan2_16::yd#2 = atan2_16::yd#3 >> 1 -- vwsz1=vwsz1_ror_1
|
|
lda.z yd+1
|
|
cmp #$80
|
|
ror.z yd+1
|
|
ror.z yd
|
|
// [281] phi from atan2_16::@15 atan2_16::@16 to atan2_16::@17 [phi:atan2_16::@15/atan2_16::@16->atan2_16::@17]
|
|
// [281] phi atan2_16::xd#5 = atan2_16::xd#3 [phi:atan2_16::@15/atan2_16::@16->atan2_16::@17#0] -- register_copy
|
|
// [281] phi atan2_16::yd#5 = atan2_16::yd#3 [phi:atan2_16::@15/atan2_16::@16->atan2_16::@17#1] -- register_copy
|
|
// atan2_16::@17
|
|
__b17:
|
|
// if(yi>=0)
|
|
// [282] if(atan2_16::yi#3>=0) goto atan2_16::@18 -- vwsz1_ge_0_then_la1
|
|
lda.z yi+1
|
|
bpl __b18
|
|
// atan2_16::@20
|
|
// xi -= yd
|
|
// [283] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5 -- vwsz1=vwsz1_minus_vwsz2
|
|
lda.z xi
|
|
sec
|
|
sbc.z yd
|
|
sta.z xi
|
|
lda.z xi+1
|
|
sbc.z yd+1
|
|
sta.z xi+1
|
|
// yi += xd
|
|
// [284] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5 -- vwsz1=vwsz1_plus_vwsz2
|
|
lda.z yi
|
|
clc
|
|
adc.z xd
|
|
sta.z yi
|
|
lda.z yi+1
|
|
adc.z xd+1
|
|
sta.z yi+1
|
|
// angle -= CORDIC_ATAN2_ANGLES_16[i]
|
|
// [285] atan2_16::$23 = atan2_16::i#2 << 1 -- vbuaa=vbuxx_rol_1
|
|
txa
|
|
asl
|
|
// [286] atan2_16::angle#3 = atan2_16::angle#12 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23] -- vwuz1=vwuz1_minus_pwuc1_derefidx_vbuaa
|
|
tay
|
|
sec
|
|
lda.z angle
|
|
sbc CORDIC_ATAN2_ANGLES_16,y
|
|
sta.z angle
|
|
lda.z angle+1
|
|
sbc CORDIC_ATAN2_ANGLES_16+1,y
|
|
sta.z angle+1
|
|
// [287] phi from atan2_16::@18 atan2_16::@20 to atan2_16::@19 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19]
|
|
// [287] phi atan2_16::xi#8 = atan2_16::xi#1 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19#0] -- register_copy
|
|
// [287] phi atan2_16::angle#13 = atan2_16::angle#2 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19#1] -- register_copy
|
|
// [287] phi atan2_16::yi#8 = atan2_16::yi#1 [phi:atan2_16::@18/atan2_16::@20->atan2_16::@19#2] -- register_copy
|
|
// atan2_16::@19
|
|
__b19:
|
|
// for( char i: 0..CORDIC_ITERATIONS_16-1)
|
|
// [288] atan2_16::i#1 = ++ atan2_16::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [289] if(atan2_16::i#1==CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #CORDIC_ITERATIONS_16-1+1
|
|
bne !__b12+
|
|
jmp __b12
|
|
!__b12:
|
|
// [262] phi from atan2_16::@19 to atan2_16::@10 [phi:atan2_16::@19->atan2_16::@10]
|
|
// [262] phi atan2_16::angle#12 = atan2_16::angle#13 [phi:atan2_16::@19->atan2_16::@10#0] -- register_copy
|
|
// [262] phi atan2_16::i#2 = atan2_16::i#1 [phi:atan2_16::@19->atan2_16::@10#1] -- register_copy
|
|
// [262] phi atan2_16::xi#3 = atan2_16::xi#8 [phi:atan2_16::@19->atan2_16::@10#2] -- register_copy
|
|
// [262] phi atan2_16::yi#3 = atan2_16::yi#8 [phi:atan2_16::@19->atan2_16::@10#3] -- register_copy
|
|
jmp __b10
|
|
// atan2_16::@18
|
|
__b18:
|
|
// xi += yd
|
|
// [290] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5 -- vwsz1=vwsz1_plus_vwsz2
|
|
lda.z xi
|
|
clc
|
|
adc.z yd
|
|
sta.z xi
|
|
lda.z xi+1
|
|
adc.z yd+1
|
|
sta.z xi+1
|
|
// yi -= xd
|
|
// [291] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5 -- vwsz1=vwsz1_minus_vwsz2
|
|
lda.z yi
|
|
sec
|
|
sbc.z xd
|
|
sta.z yi
|
|
lda.z yi+1
|
|
sbc.z xd+1
|
|
sta.z yi+1
|
|
// angle += CORDIC_ATAN2_ANGLES_16[i]
|
|
// [292] atan2_16::$22 = atan2_16::i#2 << 1 -- vbuaa=vbuxx_rol_1
|
|
txa
|
|
asl
|
|
// [293] atan2_16::angle#2 = atan2_16::angle#12 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22] -- vwuz1=vwuz1_plus_pwuc1_derefidx_vbuaa
|
|
tay
|
|
clc
|
|
lda.z angle
|
|
adc CORDIC_ATAN2_ANGLES_16,y
|
|
sta.z angle
|
|
lda.z angle+1
|
|
adc CORDIC_ATAN2_ANGLES_16+1,y
|
|
sta.z angle+1
|
|
jmp __b19
|
|
// atan2_16::@14
|
|
__b14:
|
|
// xd >>= 2
|
|
// [294] atan2_16::xd#1 = atan2_16::xd#3 >> 2 -- vwsz1=vwsz1_ror_2
|
|
lda.z xd+1
|
|
cmp #$80
|
|
ror.z xd+1
|
|
ror.z xd
|
|
lda.z xd+1
|
|
cmp #$80
|
|
ror.z xd+1
|
|
ror.z xd
|
|
// yd >>= 2
|
|
// [295] atan2_16::yd#1 = atan2_16::yd#3 >> 2 -- vwsz1=vwsz1_ror_2
|
|
lda.z yd+1
|
|
cmp #$80
|
|
ror.z yd+1
|
|
ror.z yd
|
|
lda.z yd+1
|
|
cmp #$80
|
|
ror.z yd+1
|
|
ror.z yd
|
|
// shift -=2
|
|
// [296] atan2_16::shift#1 = atan2_16::shift#2 - 2 -- vbuyy=vbuyy_minus_2
|
|
dey
|
|
dey
|
|
jmp __b13
|
|
// atan2_16::@4
|
|
__b4:
|
|
// (x>=0)?x:-x
|
|
// [297] atan2_16::xi#13 = atan2_16::x#0 -- vwsz1=vwsz2
|
|
lda.z x
|
|
sta.z xi
|
|
lda.z x+1
|
|
sta.z xi+1
|
|
jmp __b6
|
|
// atan2_16::@1
|
|
__b1:
|
|
// (y>=0)?y:-y
|
|
// [298] atan2_16::yi#16 = atan2_16::y#0 -- vwsz1=vwsz2
|
|
lda.z y
|
|
sta.z yi
|
|
lda.z y+1
|
|
sta.z yi+1
|
|
jmp __b3
|
|
}
|
|
// File Data
|
|
.segment Data
|
|
// Angles representing ATAN(0.5), ATAN(0.25), ATAN(0.125), ...
|
|
CORDIC_ATAN2_ANGLES_16:
|
|
.for (var i=0; i<CORDIC_ITERATIONS_16; i++)
|
|
.word 256*2*256*atan(1/pow(2,i))/PI/2
|
|
|
|
// Values added to VX
|
|
VXSIN:
|
|
.for(var i=0; i<40; i++) {
|
|
.word -sin(toRadians([i*360]/40))*4
|
|
}
|
|
|
|
// Values added to VY
|
|
VYSIN:
|
|
.for(var i=0; i<25; i++) {
|
|
.word -sin(toRadians([i*360]/25))*4
|
|
}
|
|
|
|
// Sprites currently being processed in the interrupt
|
|
PROCESSING: .fill $e*NUM_PROCESSING, 0
|
|
__0: .word 0, 0, 0, 0
|
|
.byte 0, 0, 0, STATUS_FREE
|
|
.word 0
|
|
|