mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-12-26 03:32:23 +00:00
Inlined sid_rnd() functions.
This commit is contained in:
parent
8f2b1c2134
commit
eed25ff1cd
@ -197,8 +197,14 @@ __bbegin:
|
||||
jsr main
|
||||
rts
|
||||
main: {
|
||||
// sid_rnd_init()
|
||||
jsr sid_rnd_init
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// asm
|
||||
sei
|
||||
// render_init()
|
||||
@ -1068,25 +1074,17 @@ play_spawn_current: {
|
||||
// while(piece_idx==7)
|
||||
lda #7
|
||||
cmp.z piece_idx
|
||||
beq __b3
|
||||
beq sid_rnd1
|
||||
// }
|
||||
rts
|
||||
__b3:
|
||||
// sid_rnd()
|
||||
jsr sid_rnd
|
||||
sid_rnd1:
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// piece_idx = sid_rnd()&7
|
||||
and #7
|
||||
sta.z piece_idx
|
||||
jmp __b2
|
||||
}
|
||||
// Get a random number from the SID voice 3,
|
||||
// Must be initialized with sid_rnd_init()
|
||||
sid_rnd: {
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Update the score based on the number of lines removed
|
||||
// play_update_score(byte register(X) removed)
|
||||
play_update_score: {
|
||||
@ -1899,19 +1897,6 @@ render_screen_original: {
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Initialize SID voice 3 for random number generation
|
||||
sid_rnd_init: {
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Raster Interrupt Routine - sets up the sprites covering the playfield
|
||||
// Repeats 10 timers every 2 lines from line IRQ_RASTER_FIRST
|
||||
// Utilizes duplicated gfx in the sprites to allow for some leeway in updating the sprite pointers
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -168,29 +168,29 @@
|
||||
(byte) current_orientation#7 current_orientation zp[1]:22 150001.5
|
||||
(byte*) current_piece
|
||||
(byte*) current_piece#10 current_piece zp[2]:19 8138.27027027027
|
||||
(byte*) current_piece#100 current_piece_1 zp[2]:10 2000002.0
|
||||
(byte*) current_piece#101 current_piece zp[2]:19 11.0
|
||||
(byte*) current_piece#15 current_piece zp[2]:19 7706.51282051282
|
||||
(byte*) current_piece#17 current_piece_1 zp[2]:10 1.1400006E7
|
||||
(byte*) current_piece#28 current_piece zp[2]:19 300003.0
|
||||
(byte*) current_piece#91 current_piece zp[2]:19 100001.0
|
||||
(byte*) current_piece#94 current_piece_1 zp[2]:10 200002.0
|
||||
(byte*) current_piece#95 current_piece_1 zp[2]:10 200002.0
|
||||
(byte*) current_piece#93 current_piece zp[2]:19 100001.0
|
||||
(byte*) current_piece#96 current_piece_1 zp[2]:10 200002.0
|
||||
(byte*) current_piece#97 current_piece_1 zp[2]:10 200002.0
|
||||
(byte*) current_piece#98 current_piece_1 zp[2]:10 2000002.0
|
||||
(byte*) current_piece#99 current_piece zp[2]:19 11.0
|
||||
(byte*) current_piece#98 current_piece_1 zp[2]:10 200002.0
|
||||
(byte*) current_piece#99 current_piece_1 zp[2]:10 200002.0
|
||||
(byte) current_piece_char
|
||||
(byte) current_piece_char#10 current_piece_char zp[1]:21 1.8182183847272727E8
|
||||
(byte) current_piece_char#100 current_piece_char_1 zp[1]:9 22.0
|
||||
(byte) current_piece_char#101 current_piece_char_1 zp[1]:9 202.0
|
||||
(byte) current_piece_char#16 current_piece_char zp[1]:21 5437.9729729729725
|
||||
(byte) current_piece_char#29 current_piece_char zp[1]:21 300003.0
|
||||
(byte) current_piece_char#5 current_piece_char zp[1]:21 31429.257142857143
|
||||
(byte) current_piece_char#5 current_piece_char zp[1]:21 34375.75
|
||||
(byte) current_piece_char#68 current_piece_char_1 zp[1]:9 47624.42857142857
|
||||
(byte) current_piece_char#98 current_piece_char_1 zp[1]:9 22.0
|
||||
(byte) current_piece_char#99 current_piece_char_1 zp[1]:9 202.0
|
||||
(byte*) current_piece_gfx
|
||||
(byte*) current_piece_gfx#110 current_piece_gfx_1 zp[2]:7 11.0
|
||||
(byte*) current_piece_gfx#111 current_piece_gfx_1 zp[2]:7 101.0
|
||||
(byte*) current_piece_gfx#115 current_piece_gfx zp[2]:23 200002.0
|
||||
(byte*) current_piece_gfx#121 current_piece_gfx zp[2]:23 22.0
|
||||
(byte*) current_piece_gfx#112 current_piece_gfx_1 zp[2]:7 11.0
|
||||
(byte*) current_piece_gfx#113 current_piece_gfx_1 zp[2]:7 101.0
|
||||
(byte*) current_piece_gfx#117 current_piece_gfx zp[2]:23 200002.0
|
||||
(byte*) current_piece_gfx#123 current_piece_gfx zp[2]:23 22.0
|
||||
(byte*) current_piece_gfx#13 current_piece_gfx zp[2]:23 1.8182183847272727E8
|
||||
(byte*) current_piece_gfx#18 current_piece_gfx zp[2]:23 1009.7619047619048
|
||||
(byte*) current_piece_gfx#20 current_piece_gfx zp[2]:23 15185.37037037037
|
||||
@ -199,9 +199,9 @@
|
||||
(byte*) current_piece_gfx#64 current_piece_gfx_1 zp[2]:7 47624.42857142857
|
||||
(byte*) current_piece_gfx#7 current_piece_gfx zp[2]:23 200002.0
|
||||
(byte) current_xpos
|
||||
(byte) current_xpos#100 current_xpos zp[1]:25 61765.44117647059
|
||||
(byte) current_xpos#117 current_xpos_1 zp[1]:6 7.333333333333333
|
||||
(byte) current_xpos#118 current_xpos_1 zp[1]:6 67.33333333333333
|
||||
(byte) current_xpos#100 current_xpos zp[1]:25 67742.74193548388
|
||||
(byte) current_xpos#119 current_xpos_1 zp[1]:6 7.333333333333333
|
||||
(byte) current_xpos#120 current_xpos_1 zp[1]:6 67.33333333333333
|
||||
(byte) current_xpos#14 current_xpos zp[1]:25 1.8187293036363635E7
|
||||
(byte) current_xpos#19 current_xpos zp[1]:25 1009.7619047619048
|
||||
(byte) current_xpos#22 current_xpos zp[1]:25 36400.4
|
||||
@ -216,14 +216,14 @@
|
||||
(byte) current_ypos#19 current_ypos zp[1]:13 6425.74358974359
|
||||
(byte) current_ypos#3 current_ypos zp[1]:13 200002.0
|
||||
(byte) current_ypos#38 current_ypos zp[1]:13 300003.0
|
||||
(byte) current_ypos#6 current_ypos zp[1]:13 63637.121212121216
|
||||
(byte) current_ypos#96 reg byte x 5.5
|
||||
(byte) current_ypos#97 reg byte x 40.4
|
||||
(byte) current_ypos#6 current_ypos zp[1]:13 70000.83333333334
|
||||
(byte) current_ypos#98 reg byte x 5.5
|
||||
(byte) current_ypos#99 reg byte x 40.4
|
||||
(byte) game_over
|
||||
(byte) game_over#10 game_over zp[1]:27 6567.760869565218
|
||||
(byte) game_over#15 game_over zp[1]:27 5705.54054054054
|
||||
(byte) game_over#27 game_over zp[1]:27 300003.0
|
||||
(byte) game_over#52 game_over zp[1]:27 42308.61538461538
|
||||
(byte) game_over#52 game_over zp[1]:27 47827.13043478261
|
||||
(byte) game_over#65 game_over zp[1]:27 78572.35714285714
|
||||
(volatile byte) irq_cnt loadstore zp[1]:46 0.48000000000000004
|
||||
(volatile byte) irq_raster_next loadstore zp[1]:43 0.44444444444444453
|
||||
@ -372,14 +372,15 @@
|
||||
(byte) main::key_event#0 reg byte x 1001.0
|
||||
(byte) main::render
|
||||
(byte) main::render#1 reg byte a 2002.0
|
||||
(label) main::sid_rnd_init1
|
||||
(byte) next_piece_idx
|
||||
(byte) next_piece_idx#10 next_piece_idx zp[1]:26 6546.0
|
||||
(byte) next_piece_idx#12 reg byte y 422.79999999999995
|
||||
(byte) next_piece_idx#16 next_piece_idx zp[1]:26 5437.9729729729725
|
||||
(byte) next_piece_idx#17 next_piece_idx zp[1]:26 1100013.0
|
||||
(byte) next_piece_idx#30 next_piece_idx zp[1]:26 300003.0
|
||||
(byte) next_piece_idx#76 reg byte y 22.0
|
||||
(byte) next_piece_idx#77 reg byte y 202.0
|
||||
(byte) next_piece_idx#77 reg byte y 22.0
|
||||
(byte) next_piece_idx#78 reg byte y 202.0
|
||||
(byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation)
|
||||
(byte~) play_collision::$14 reg byte a 2.0000000002E10
|
||||
(byte~) play_collision::$5 reg byte a 2.00000000002E11
|
||||
@ -637,20 +638,21 @@
|
||||
(byte) play_remove_lines::y#8 y zp[1]:28 1.3333333346666667E8
|
||||
(void()) play_spawn_current()
|
||||
(byte~) play_spawn_current::$1 reg byte a 2000002.0
|
||||
(byte~) play_spawn_current::$5 reg byte a 2.000000002E9
|
||||
(byte~) play_spawn_current::$7 zp[1]:52 29411.79411764706
|
||||
(byte~) play_spawn_current::$7 zp[1]:52 32258.09677419355
|
||||
(label) play_spawn_current::@1
|
||||
(label) play_spawn_current::@2
|
||||
(label) play_spawn_current::@3
|
||||
(label) play_spawn_current::@4
|
||||
(label) play_spawn_current::@5
|
||||
(label) play_spawn_current::@6
|
||||
(label) play_spawn_current::@return
|
||||
(byte) play_spawn_current::current_piece_idx
|
||||
(byte) play_spawn_current::current_piece_idx#0 reg byte x 1250001.25
|
||||
(byte) play_spawn_current::piece_idx
|
||||
(byte) play_spawn_current::piece_idx#1 piece_idx zp[1]:26 2.000000002E9
|
||||
(byte) play_spawn_current::piece_idx#2 piece_idx zp[1]:26 1.000050018E8
|
||||
(label) play_spawn_current::sid_rnd1
|
||||
(byte) play_spawn_current::sid_rnd1_return
|
||||
(byte) play_spawn_current::sid_rnd1_return#0 reg byte a 2.000000002E9
|
||||
(void()) play_update_score((byte) play_update_score::removed)
|
||||
(byte~) play_update_score::$2 reg byte a 2000002.0
|
||||
(byte~) play_update_score::$4 reg byte a 2000002.0
|
||||
@ -877,9 +879,9 @@
|
||||
(byte) render_screen_render#18 render_screen_render zp[1]:3 84.76923076923077
|
||||
(byte) render_screen_render#22 reg byte x 7700.153846153846
|
||||
(byte) render_screen_render#33 render_screen_render_1 zp[1]:5 4766.761904761905
|
||||
(byte) render_screen_render#63 reg byte x 202.0
|
||||
(byte) render_screen_render#64 render_screen_render_1 zp[1]:5 50.5
|
||||
(byte) render_screen_render#65 reg byte x 101.0
|
||||
(byte) render_screen_render#64 reg byte x 202.0
|
||||
(byte) render_screen_render#65 render_screen_render_1 zp[1]:5 50.5
|
||||
(byte) render_screen_render#66 reg byte x 101.0
|
||||
(byte) render_screen_show
|
||||
(byte) render_screen_show#13 render_screen_show zp[1]:2 367.33333333333337
|
||||
(byte) render_screen_show#16 render_screen_show zp[1]:2 577.65
|
||||
@ -902,16 +904,9 @@
|
||||
(const byte) render_show::toD0182_return#0 toD0182_return = >(word)(const nomodify byte*) PLAYFIELD_SCREEN_2&(word) $3fff*(byte) 4|>(word)(const nomodify byte*) PLAYFIELD_CHARSET/(byte) 4&(byte) $f
|
||||
(byte*) render_show::toD0182_screen
|
||||
(const dword*) score_add_bcd[(number) 5] = { fill( 5, 0) }
|
||||
(volatile dword) score_bcd loadstore zp[4]:39 14598.569343065694
|
||||
(volatile dword) score_bcd loadstore zp[4]:39 14492.782608695652
|
||||
(const byte**) screen_lines_1[(const nomodify byte) PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) }
|
||||
(const byte**) screen_lines_2[(const nomodify byte) PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) }
|
||||
(byte()) sid_rnd()
|
||||
(label) sid_rnd::@return
|
||||
(byte) sid_rnd::return
|
||||
(byte) sid_rnd::return#0 reg byte a 3.666666667333333E9
|
||||
(byte) sid_rnd::return#2 reg byte a 2.000000002E9
|
||||
(void()) sid_rnd_init()
|
||||
(label) sid_rnd_init::@return
|
||||
(void()) sprites_init()
|
||||
(label) sprites_init::@1
|
||||
(label) sprites_init::@return
|
||||
@ -962,18 +957,18 @@ zp[1]:3 [ render_screen_render#18 render_screen_render#11 ]
|
||||
zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ]
|
||||
reg byte y [ render_bcd::only_low#6 ]
|
||||
reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ]
|
||||
reg byte x [ render_screen_render#15 render_screen_render#65 ]
|
||||
reg byte y [ next_piece_idx#12 next_piece_idx#76 next_piece_idx#77 ]
|
||||
reg byte x [ render_screen_render#15 render_screen_render#66 ]
|
||||
reg byte y [ next_piece_idx#12 next_piece_idx#77 next_piece_idx#78 ]
|
||||
reg byte x [ render_next::c#2 render_next::c#1 ]
|
||||
reg byte x [ current_ypos#13 current_ypos#96 current_ypos#97 ]
|
||||
zp[1]:5 [ render_screen_render#33 render_screen_render#64 render_next::l#7 render_next::l#1 ]
|
||||
zp[1]:6 [ current_xpos#59 current_xpos#117 current_xpos#118 ]
|
||||
zp[2]:7 [ current_piece_gfx#64 current_piece_gfx#110 current_piece_gfx#111 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#8 render_next::next_piece_gfx#1 render_score::screen#3 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ]
|
||||
zp[1]:9 [ current_piece_char#68 current_piece_char#98 current_piece_char#99 ]
|
||||
reg byte x [ current_ypos#13 current_ypos#98 current_ypos#99 ]
|
||||
zp[1]:5 [ render_screen_render#33 render_screen_render#65 render_next::l#7 render_next::l#1 ]
|
||||
zp[1]:6 [ current_xpos#59 current_xpos#119 current_xpos#120 ]
|
||||
zp[2]:7 [ current_piece_gfx#64 current_piece_gfx#112 current_piece_gfx#113 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#8 render_next::next_piece_gfx#1 render_score::screen#3 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ]
|
||||
zp[1]:9 [ current_piece_char#68 current_piece_char#100 current_piece_char#101 ]
|
||||
reg byte x [ render_moving::c#2 render_moving::c#1 ]
|
||||
reg byte x [ render_screen_render#22 render_screen_render#63 ]
|
||||
reg byte x [ render_screen_render#22 render_screen_render#64 ]
|
||||
reg byte a [ play_move_rotate::return#2 ]
|
||||
zp[2]:10 [ current_piece#17 current_piece#94 current_piece#95 current_piece#96 current_piece#97 current_piece#98 play_collision::piece_gfx#0 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 render_next::screen_next_area#5 render_next::screen_next_area#10 render_next::screen_next_area#11 render_next::screen_next_area#4 render_next::screen_next_area#3 render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ]
|
||||
zp[2]:10 [ current_piece#17 current_piece#96 current_piece#97 current_piece#98 current_piece#99 current_piece#100 play_collision::piece_gfx#0 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 render_next::screen_next_area#5 render_next::screen_next_area#10 render_next::screen_next_area#11 render_next::screen_next_area#4 render_next::screen_next_area#3 render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ]
|
||||
reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ]
|
||||
reg byte x [ play_collision::c#2 play_collision::c#1 ]
|
||||
reg byte a [ play_collision::return#15 ]
|
||||
@ -984,10 +979,10 @@ zp[2]:14 [ lines_bcd#26 lines_bcd#19 lines_bcd#15 lines_bcd#17 lines_bcd#29 ]
|
||||
zp[1]:16 [ level#33 level#10 level#17 level#19 level#21 ]
|
||||
zp[1]:17 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#1 current_movedown_slow#21 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ]
|
||||
zp[1]:18 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ]
|
||||
zp[2]:19 [ current_piece#28 current_piece#10 current_piece#99 current_piece#15 current_piece#91 ]
|
||||
zp[2]:19 [ current_piece#28 current_piece#10 current_piece#101 current_piece#15 current_piece#93 ]
|
||||
zp[1]:21 [ current_piece_char#29 current_piece_char#10 current_piece_char#5 current_piece_char#16 ]
|
||||
zp[1]:22 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ]
|
||||
zp[2]:23 [ current_piece_gfx#35 current_piece_gfx#13 current_piece_gfx#121 current_piece_gfx#18 current_piece_gfx#20 current_piece_gfx#21 current_piece_gfx#7 current_piece_gfx#115 ]
|
||||
zp[2]:23 [ current_piece_gfx#35 current_piece_gfx#13 current_piece_gfx#123 current_piece_gfx#18 current_piece_gfx#20 current_piece_gfx#21 current_piece_gfx#7 current_piece_gfx#117 ]
|
||||
zp[1]:25 [ current_xpos#43 current_xpos#14 current_xpos#100 current_xpos#19 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ]
|
||||
reg byte x [ play_move_down::return#3 ]
|
||||
zp[1]:26 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 play_spawn_current::piece_idx#2 next_piece_idx#16 play_spawn_current::piece_idx#1 ]
|
||||
@ -1065,9 +1060,7 @@ reg byte x [ play_update_score::removed#0 ]
|
||||
reg byte x [ play_spawn_current::current_piece_idx#0 ]
|
||||
reg byte a [ play_collision::return#10 ]
|
||||
reg byte a [ play_spawn_current::$1 ]
|
||||
reg byte a [ sid_rnd::return#2 ]
|
||||
reg byte a [ play_spawn_current::$5 ]
|
||||
reg byte a [ sid_rnd::return#0 ]
|
||||
reg byte a [ play_spawn_current::sid_rnd1_return#0 ]
|
||||
reg byte a [ play_update_score::$2 ]
|
||||
zp[1]:52 [ play_update_score::lines_before#0 play_spawn_current::$7 ]
|
||||
reg byte a [ play_update_score::$9 ]
|
||||
|
@ -63,8 +63,14 @@ main: {
|
||||
sta.z fillscreen.screen+1
|
||||
ldx #YELLOW
|
||||
jsr fillscreen
|
||||
// sid_rnd_init()
|
||||
jsr sid_rnd_init
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// makecharset(CHARSET)
|
||||
jsr makecharset
|
||||
__b1:
|
||||
@ -126,15 +132,15 @@ fire: {
|
||||
// for(; buffer != (BUFFER+(25*40)); ++screen, ++buffer)
|
||||
lda.z buffer_1+1
|
||||
cmp #>BUFFER+$19*$28
|
||||
bne __b7
|
||||
bne sid_rnd1
|
||||
lda.z buffer_1
|
||||
cmp #<BUFFER+$19*$28
|
||||
bne __b7
|
||||
bne sid_rnd1
|
||||
// }
|
||||
rts
|
||||
__b7:
|
||||
// sid_rnd()
|
||||
jsr sid_rnd
|
||||
sid_rnd1:
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// (sid_rnd())/$10
|
||||
lsr
|
||||
lsr
|
||||
@ -201,14 +207,6 @@ fire: {
|
||||
!:
|
||||
jmp __b1
|
||||
}
|
||||
// Get a random number from the SID voice 3,
|
||||
// Must be initialized with sid_rnd_init()
|
||||
sid_rnd: {
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Make a fire-friendly charset in chars $00-$3f of the passed charset
|
||||
makecharset: {
|
||||
.label __13 = $d
|
||||
@ -371,19 +369,6 @@ makecharset: {
|
||||
jmp __b1
|
||||
bittab: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
||||
}
|
||||
// Initialize SID voice 3 for random number generation
|
||||
sid_rnd_init: {
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Fill a screen (1000 chars) with a specific char
|
||||
// fillscreen(byte* zp($b) screen, byte register(X) fill)
|
||||
fillscreen: {
|
||||
|
@ -14,194 +14,174 @@ main: scope:[main] from @1
|
||||
[5] *((const nomodify byte*) BORDERCOL) ← (const nomodify byte) BLACK
|
||||
[6] *((const nomodify byte*) BGCOL) ← (const nomodify byte) BLACK
|
||||
[7] call fillscreen
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main
|
||||
[8] phi()
|
||||
[9] call fillscreen
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[10] phi()
|
||||
[11] call fillscreen
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
[12] phi()
|
||||
[13] call fillscreen
|
||||
[10] phi()
|
||||
[11] call fillscreen
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[14] phi()
|
||||
[15] call sid_rnd_init
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@7
|
||||
[12] phi()
|
||||
[13] call fillscreen
|
||||
to:main::sid_rnd_init1
|
||||
main::sid_rnd_init1: scope:[main] from main::@7
|
||||
[14] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[15] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::sid_rnd_init1
|
||||
[16] phi()
|
||||
[17] call makecharset
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@3 main::@8
|
||||
main::@1: scope:[main] from main::@2 main::@4
|
||||
[18] phi()
|
||||
[19] call fire
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main::@1
|
||||
[20] phi()
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::toD0181
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::toD0181
|
||||
[21] *((const nomodify byte*) D018) ← (const byte) main::toD0181_return#0
|
||||
[22] call fire
|
||||
to:main::toD0182
|
||||
main::toD0182: scope:[main] from main::@2
|
||||
main::toD0182: scope:[main] from main::@3
|
||||
[23] phi()
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::toD0182
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::toD0182
|
||||
[24] *((const nomodify byte*) D018) ← (const byte) main::toD0182_return#0
|
||||
to:main::@1
|
||||
|
||||
(void()) fire((byte*) fire::screenbase)
|
||||
fire: scope:[fire] from main::@1 main::@2
|
||||
[25] (byte*) fire::screen#0 ← phi( main::@1/(const byte*) SCREEN1 main::@2/(const byte*) SCREEN2 )
|
||||
[26] (byte*) fire::screen#11 ← (byte*) fire::screen#0
|
||||
fire: scope:[fire] from main::@1 main::@3
|
||||
[25] (byte*) fire::screen#0 ← phi( main::@1/(const byte*) SCREEN1 main::@3/(const byte*) SCREEN2 )
|
||||
[26] (byte*) fire::screen#12 ← (byte*) fire::screen#0
|
||||
to:fire::@1
|
||||
fire::@1: scope:[fire] from fire fire::@4
|
||||
[27] (byte*) fire::screen#4 ← phi( fire/(byte*) fire::screen#11 fire::@4/(byte*) fire::screen#2 )
|
||||
[27] (byte*) fire::screen#4 ← phi( fire/(byte*) fire::screen#12 fire::@4/(byte*) fire::screen#2 )
|
||||
[27] (byte*) fire::buffer#4 ← phi( fire/(const byte*) BUFFER fire::@4/(byte*) fire::buffer#2 )
|
||||
[28] if((byte*) fire::buffer#4!=(const byte*) BUFFER+(word)(number) $18*(number) $28) goto fire::@2
|
||||
to:fire::@3
|
||||
fire::@3: scope:[fire] from fire::@1
|
||||
[29] (byte*) fire::screen#1 ← (byte*) fire::screen#0 + (word)(number) $18*(number) $28
|
||||
to:fire::@6
|
||||
fire::@6: scope:[fire] from fire::@3 fire::@8
|
||||
[30] (byte*) fire::screen#10 ← phi( fire::@3/(byte*) fire::screen#1 fire::@8/(byte*) fire::screen#3 )
|
||||
[30] (byte*) fire::buffer#10 ← phi( fire::@3/(const byte*) BUFFER+(word)(number) $18*(number) $28 fire::@8/(byte*) fire::buffer#3 )
|
||||
[31] if((byte*) fire::buffer#10!=(const byte*) BUFFER+(word)(number) $19*(number) $28) goto fire::@7
|
||||
fire::@6: scope:[fire] from fire::@3 fire::@7
|
||||
[30] (byte*) fire::screen#10 ← phi( fire::@3/(byte*) fire::screen#1 fire::@7/(byte*) fire::screen#3 )
|
||||
[30] (byte*) fire::buffer#10 ← phi( fire::@3/(const byte*) BUFFER+(word)(number) $18*(number) $28 fire::@7/(byte*) fire::buffer#3 )
|
||||
[31] if((byte*) fire::buffer#10!=(const byte*) BUFFER+(word)(number) $19*(number) $28) goto fire::sid_rnd1
|
||||
to:fire::@return
|
||||
fire::@return: scope:[fire] from fire::@6
|
||||
[32] return
|
||||
to:@return
|
||||
fire::@7: scope:[fire] from fire::@6
|
||||
[33] phi()
|
||||
[34] call sid_rnd
|
||||
[35] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
|
||||
to:fire::@8
|
||||
fire::@8: scope:[fire] from fire::@7
|
||||
[36] (byte~) fire::$12 ← (byte) sid_rnd::return#2
|
||||
[37] (byte~) fire::$13 ← (byte~) fire::$12 >> (byte) 4
|
||||
[38] (byte~) fire::$14 ← (byte) $30 + (byte~) fire::$13
|
||||
[39] *((byte*) fire::buffer#10) ← (byte~) fire::$14
|
||||
[40] *((byte*) fire::screen#10) ← *((byte*) fire::buffer#10)
|
||||
[41] (byte*) fire::screen#3 ← ++ (byte*) fire::screen#10
|
||||
[42] (byte*) fire::buffer#3 ← ++ (byte*) fire::buffer#10
|
||||
fire::sid_rnd1: scope:[fire] from fire::@6
|
||||
[33] (byte) fire::sid_rnd1_return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:fire::@7
|
||||
fire::@7: scope:[fire] from fire::sid_rnd1
|
||||
[34] (byte~) fire::$13 ← (byte) fire::sid_rnd1_return#0 >> (byte) 4
|
||||
[35] (byte~) fire::$14 ← (byte) $30 + (byte~) fire::$13
|
||||
[36] *((byte*) fire::buffer#10) ← (byte~) fire::$14
|
||||
[37] *((byte*) fire::screen#10) ← *((byte*) fire::buffer#10)
|
||||
[38] (byte*) fire::screen#3 ← ++ (byte*) fire::screen#10
|
||||
[39] (byte*) fire::buffer#3 ← ++ (byte*) fire::buffer#10
|
||||
to:fire::@6
|
||||
fire::@2: scope:[fire] from fire::@1
|
||||
[43] (byte~) fire::$4 ← *((byte*) fire::buffer#4 + (byte)(number) $28-(number) 1) + *((byte*) fire::buffer#4 + (byte)(number) $28-(number) 1)
|
||||
[44] (byte~) fire::$5 ← (byte~) fire::$4 + *((byte*) fire::buffer#4 + (byte) $28)
|
||||
[45] (byte~) fire::$6 ← (byte~) fire::$5 + *((byte*) fire::buffer#4 + (byte) $29)
|
||||
[46] (byte) fire::c#0 ← (byte~) fire::$6 >> (byte) 2
|
||||
[47] if((byte) fire::c#0<(byte) 2+(byte) 1) goto fire::@4
|
||||
[40] (byte~) fire::$4 ← *((byte*) fire::buffer#4 + (byte)(number) $28-(number) 1) + *((byte*) fire::buffer#4 + (byte)(number) $28-(number) 1)
|
||||
[41] (byte~) fire::$5 ← (byte~) fire::$4 + *((byte*) fire::buffer#4 + (byte) $28)
|
||||
[42] (byte~) fire::$6 ← (byte~) fire::$5 + *((byte*) fire::buffer#4 + (byte) $29)
|
||||
[43] (byte) fire::c#0 ← (byte~) fire::$6 >> (byte) 2
|
||||
[44] if((byte) fire::c#0<(byte) 2+(byte) 1) goto fire::@4
|
||||
to:fire::@5
|
||||
fire::@5: scope:[fire] from fire::@2
|
||||
[48] (byte) fire::c#1 ← (byte) fire::c#0 - (byte) 3
|
||||
[45] (byte) fire::c#1 ← (byte) fire::c#0 - (byte) 3
|
||||
to:fire::@4
|
||||
fire::@4: scope:[fire] from fire::@2 fire::@5
|
||||
[49] (byte) fire::c#2 ← phi( fire::@2/(byte) fire::c#0 fire::@5/(byte) fire::c#1 )
|
||||
[50] *((byte*) fire::buffer#4) ← (byte) fire::c#2
|
||||
[51] *((byte*) fire::screen#4) ← *((byte*) fire::buffer#4)
|
||||
[52] (byte*) fire::screen#2 ← ++ (byte*) fire::screen#4
|
||||
[53] (byte*) fire::buffer#2 ← ++ (byte*) fire::buffer#4
|
||||
[46] (byte) fire::c#2 ← phi( fire::@2/(byte) fire::c#0 fire::@5/(byte) fire::c#1 )
|
||||
[47] *((byte*) fire::buffer#4) ← (byte) fire::c#2
|
||||
[48] *((byte*) fire::screen#4) ← *((byte*) fire::buffer#4)
|
||||
[49] (byte*) fire::screen#2 ← ++ (byte*) fire::screen#4
|
||||
[50] (byte*) fire::buffer#2 ← ++ (byte*) fire::buffer#4
|
||||
to:fire::@1
|
||||
|
||||
(byte()) sid_rnd()
|
||||
sid_rnd: scope:[sid_rnd] from fire::@7
|
||||
[54] (byte) sid_rnd::return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:sid_rnd::@return
|
||||
sid_rnd::@return: scope:[sid_rnd] from sid_rnd
|
||||
[55] return
|
||||
to:@return
|
||||
|
||||
(void()) makecharset((byte*) makecharset::charset)
|
||||
makecharset: scope:[makecharset] from main::@8
|
||||
[56] phi()
|
||||
makecharset: scope:[makecharset] from main::@2
|
||||
[51] phi()
|
||||
to:makecharset::@1
|
||||
makecharset::@1: scope:[makecharset] from makecharset makecharset::@2
|
||||
[57] (byte*) makecharset::font#2 ← phi( makecharset/(const byte*) CHARSET makecharset::@2/(byte*) makecharset::font#1 )
|
||||
[58] if((byte*) makecharset::font#2!=(const byte*) CHARSET+(byte)(number) 1*(number) 8) goto makecharset::@2
|
||||
[52] (byte*) makecharset::font#2 ← phi( makecharset/(const byte*) CHARSET makecharset::@2/(byte*) makecharset::font#1 )
|
||||
[53] if((byte*) makecharset::font#2!=(const byte*) CHARSET+(byte)(number) 1*(number) 8) goto makecharset::@2
|
||||
to:makecharset::@3
|
||||
makecharset::@3: scope:[makecharset] from makecharset::@1 makecharset::@4
|
||||
[59] (byte*) makecharset::font1#2 ← phi( makecharset::@1/(const byte*) CHARSET+(word)(number) $40*(number) 8 makecharset::@4/(byte*) makecharset::font1#1 )
|
||||
[60] if((byte*) makecharset::font1#2!=(const byte*) CHARSET+(word)(number) $100*(number) 8) goto makecharset::@4
|
||||
[54] (byte*) makecharset::font1#2 ← phi( makecharset::@1/(const byte*) CHARSET+(word)(number) $40*(number) 8 makecharset::@4/(byte*) makecharset::font1#1 )
|
||||
[55] if((byte*) makecharset::font1#2!=(const byte*) CHARSET+(word)(number) $100*(number) 8) goto makecharset::@4
|
||||
to:makecharset::@5
|
||||
makecharset::@5: scope:[makecharset] from makecharset::@3 makecharset::@7
|
||||
[61] (byte) makecharset::c#2 ← phi( makecharset::@7/(byte) makecharset::c#1 makecharset::@3/(byte) 0 )
|
||||
[62] if((byte) makecharset::c#2<(byte) $40) goto makecharset::@6
|
||||
[56] (byte) makecharset::c#2 ← phi( makecharset::@7/(byte) makecharset::c#1 makecharset::@3/(byte) 0 )
|
||||
[57] if((byte) makecharset::c#2<(byte) $40) goto makecharset::@6
|
||||
to:makecharset::@return
|
||||
makecharset::@return: scope:[makecharset] from makecharset::@5
|
||||
[63] return
|
||||
[58] return
|
||||
to:@return
|
||||
makecharset::@6: scope:[makecharset] from makecharset::@10 makecharset::@5
|
||||
[64] (byte) makecharset::bc#6 ← phi( makecharset::@10/(byte) makecharset::bc#3 makecharset::@5/(byte) 0 )
|
||||
[64] (byte) makecharset::i#2 ← phi( makecharset::@10/(byte) makecharset::i#1 makecharset::@5/(byte) 0 )
|
||||
[65] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@8
|
||||
[59] (byte) makecharset::bc#6 ← phi( makecharset::@10/(byte) makecharset::bc#3 makecharset::@5/(byte) 0 )
|
||||
[59] (byte) makecharset::i#2 ← phi( makecharset::@10/(byte) makecharset::i#1 makecharset::@5/(byte) 0 )
|
||||
[60] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@8
|
||||
to:makecharset::@7
|
||||
makecharset::@7: scope:[makecharset] from makecharset::@6
|
||||
[66] (byte) makecharset::c#1 ← ++ (byte) makecharset::c#2
|
||||
[61] (byte) makecharset::c#1 ← ++ (byte) makecharset::c#2
|
||||
to:makecharset::@5
|
||||
makecharset::@8: scope:[makecharset] from makecharset::@11 makecharset::@6
|
||||
[67] (byte) makecharset::b#2 ← phi( makecharset::@6/(byte) 0 makecharset::@11/(byte) makecharset::b#6 )
|
||||
[67] (byte) makecharset::bc#3 ← phi( makecharset::@6/(byte) makecharset::bc#6 makecharset::@11/(byte) makecharset::bc#7 )
|
||||
[67] (byte) makecharset::ii#2 ← phi( makecharset::@6/(byte) 0 makecharset::@11/(byte) makecharset::ii#1 )
|
||||
[68] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::@9
|
||||
[62] (byte) makecharset::b#2 ← phi( makecharset::@6/(byte) 0 makecharset::@11/(byte) makecharset::b#6 )
|
||||
[62] (byte) makecharset::bc#3 ← phi( makecharset::@6/(byte) makecharset::bc#6 makecharset::@11/(byte) makecharset::bc#7 )
|
||||
[62] (byte) makecharset::ii#2 ← phi( makecharset::@6/(byte) 0 makecharset::@11/(byte) makecharset::ii#1 )
|
||||
[63] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::@9
|
||||
to:makecharset::@10
|
||||
makecharset::@10: scope:[makecharset] from makecharset::@8
|
||||
[69] (word~) makecharset::$17 ← (word)(byte) makecharset::c#2
|
||||
[70] (word~) makecharset::$15 ← (word~) makecharset::$17 << (byte) 3
|
||||
[71] (word~) makecharset::$16 ← (word~) makecharset::$15 + (byte) makecharset::i#2
|
||||
[72] (byte*~) makecharset::$18 ← (const byte*) CHARSET+(byte)(number) 1*(number) 8 + (word~) makecharset::$16
|
||||
[73] *((byte*~) makecharset::$18) ← (byte) makecharset::b#2
|
||||
[74] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#2
|
||||
[64] (word~) makecharset::$17 ← (word)(byte) makecharset::c#2
|
||||
[65] (word~) makecharset::$15 ← (word~) makecharset::$17 << (byte) 3
|
||||
[66] (word~) makecharset::$16 ← (word~) makecharset::$15 + (byte) makecharset::i#2
|
||||
[67] (byte*~) makecharset::$18 ← (const byte*) CHARSET+(byte)(number) 1*(number) 8 + (word~) makecharset::$16
|
||||
[68] *((byte*~) makecharset::$18) ← (byte) makecharset::b#2
|
||||
[69] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#2
|
||||
to:makecharset::@6
|
||||
makecharset::@9: scope:[makecharset] from makecharset::@8
|
||||
[75] (byte) makecharset::bc#1 ← (byte) makecharset::bc#3 + (byte) makecharset::c#2
|
||||
[76] if((byte) makecharset::bc#1<(byte) $3f+(byte) 1) goto makecharset::@11
|
||||
[70] (byte) makecharset::bc#1 ← (byte) makecharset::bc#3 + (byte) makecharset::c#2
|
||||
[71] if((byte) makecharset::bc#1<(byte) $3f+(byte) 1) goto makecharset::@11
|
||||
to:makecharset::@12
|
||||
makecharset::@12: scope:[makecharset] from makecharset::@9
|
||||
[77] (byte) makecharset::bc#2 ← (byte) makecharset::bc#1 - (byte) $40
|
||||
[78] (byte~) makecharset::$11 ← (byte) makecharset::i#2 & (byte) 1
|
||||
[79] (byte~) makecharset::$12 ← (byte) makecharset::ii#2 + (byte~) makecharset::$11
|
||||
[80] (byte~) makecharset::$13 ← (byte~) makecharset::$12 & (byte) 7
|
||||
[81] (byte) makecharset::b#1 ← (byte) makecharset::b#2 + *((const to_nomodify byte*) makecharset::bittab + (byte~) makecharset::$13)
|
||||
[72] (byte) makecharset::bc#2 ← (byte) makecharset::bc#1 - (byte) $40
|
||||
[73] (byte~) makecharset::$11 ← (byte) makecharset::i#2 & (byte) 1
|
||||
[74] (byte~) makecharset::$12 ← (byte) makecharset::ii#2 + (byte~) makecharset::$11
|
||||
[75] (byte~) makecharset::$13 ← (byte~) makecharset::$12 & (byte) 7
|
||||
[76] (byte) makecharset::b#1 ← (byte) makecharset::b#2 + *((const to_nomodify byte*) makecharset::bittab + (byte~) makecharset::$13)
|
||||
to:makecharset::@11
|
||||
makecharset::@11: scope:[makecharset] from makecharset::@12 makecharset::@9
|
||||
[82] (byte) makecharset::b#6 ← phi( makecharset::@9/(byte) makecharset::b#2 makecharset::@12/(byte) makecharset::b#1 )
|
||||
[82] (byte) makecharset::bc#7 ← phi( makecharset::@9/(byte) makecharset::bc#1 makecharset::@12/(byte) makecharset::bc#2 )
|
||||
[83] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
|
||||
[77] (byte) makecharset::b#6 ← phi( makecharset::@9/(byte) makecharset::b#2 makecharset::@12/(byte) makecharset::b#1 )
|
||||
[77] (byte) makecharset::bc#7 ← phi( makecharset::@9/(byte) makecharset::bc#1 makecharset::@12/(byte) makecharset::bc#2 )
|
||||
[78] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
|
||||
to:makecharset::@8
|
||||
makecharset::@4: scope:[makecharset] from makecharset::@3
|
||||
[84] *((byte*) makecharset::font1#2) ← (byte) $ff
|
||||
[85] (byte*) makecharset::font1#1 ← ++ (byte*) makecharset::font1#2
|
||||
[79] *((byte*) makecharset::font1#2) ← (byte) $ff
|
||||
[80] (byte*) makecharset::font1#1 ← ++ (byte*) makecharset::font1#2
|
||||
to:makecharset::@3
|
||||
makecharset::@2: scope:[makecharset] from makecharset::@1
|
||||
[86] *((byte*) makecharset::font#2) ← (byte) 0
|
||||
[87] (byte*) makecharset::font#1 ← ++ (byte*) makecharset::font#2
|
||||
[81] *((byte*) makecharset::font#2) ← (byte) 0
|
||||
[82] (byte*) makecharset::font#1 ← ++ (byte*) makecharset::font#2
|
||||
to:makecharset::@1
|
||||
|
||||
(void()) sid_rnd_init()
|
||||
sid_rnd_init: scope:[sid_rnd_init] from main::@7
|
||||
[88] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[89] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:sid_rnd_init::@return
|
||||
sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
|
||||
[90] return
|
||||
to:@return
|
||||
|
||||
(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill)
|
||||
fillscreen: scope:[fillscreen] from main main::@4 main::@5 main::@6
|
||||
[91] (byte*) fillscreen::screen#6 ← phi( main/(const byte*) BUFFER main::@4/(const byte*) SCREEN1 main::@5/(const byte*) SCREEN2 main::@6/(const nomodify byte*) COLS )
|
||||
[91] (byte) fillscreen::fill#5 ← phi( main/(byte) 0 main::@4/(byte) 0 main::@5/(byte) 0 main::@6/(const nomodify byte) YELLOW )
|
||||
fillscreen: scope:[fillscreen] from main main::@5 main::@6 main::@7
|
||||
[83] (byte*) fillscreen::screen#6 ← phi( main/(const byte*) BUFFER main::@5/(const byte*) SCREEN1 main::@6/(const byte*) SCREEN2 main::@7/(const nomodify byte*) COLS )
|
||||
[83] (byte) fillscreen::fill#5 ← phi( main/(byte) 0 main::@5/(byte) 0 main::@6/(byte) 0 main::@7/(const nomodify byte) YELLOW )
|
||||
to:fillscreen::@1
|
||||
fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1
|
||||
[92] (word) fillscreen::i#2 ← phi( fillscreen/(word) 0 fillscreen::@1/(word) fillscreen::i#1 )
|
||||
[92] (byte*) fillscreen::screen#5 ← phi( fillscreen/(byte*) fillscreen::screen#6 fillscreen::@1/(byte*) fillscreen::screen#4 )
|
||||
[93] *((byte*) fillscreen::screen#5) ← (byte) fillscreen::fill#5
|
||||
[94] (byte*) fillscreen::screen#4 ← ++ (byte*) fillscreen::screen#5
|
||||
[95] (word) fillscreen::i#1 ← ++ (word) fillscreen::i#2
|
||||
[96] if((word) fillscreen::i#1!=(word) $3e8) goto fillscreen::@1
|
||||
[84] (word) fillscreen::i#2 ← phi( fillscreen/(word) 0 fillscreen::@1/(word) fillscreen::i#1 )
|
||||
[84] (byte*) fillscreen::screen#5 ← phi( fillscreen/(byte*) fillscreen::screen#6 fillscreen::@1/(byte*) fillscreen::screen#4 )
|
||||
[85] *((byte*) fillscreen::screen#5) ← (byte) fillscreen::fill#5
|
||||
[86] (byte*) fillscreen::screen#4 ← ++ (byte*) fillscreen::screen#5
|
||||
[87] (word) fillscreen::i#1 ← ++ (word) fillscreen::i#2
|
||||
[88] if((word) fillscreen::i#1!=(word) $3e8) goto fillscreen::@1
|
||||
to:fillscreen::@return
|
||||
fillscreen::@return: scope:[fillscreen] from fillscreen::@1
|
||||
[97] return
|
||||
[89] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -66,7 +66,6 @@
|
||||
(byte*) fillscreen::screen#5 screen zp[2]:11 1552.0
|
||||
(byte*) fillscreen::screen#6 screen zp[2]:11 101.0
|
||||
(void()) fire((byte*) fire::screenbase)
|
||||
(byte~) fire::$12 reg byte a 200002.0
|
||||
(byte~) fire::$13 reg byte a 200002.0
|
||||
(byte~) fire::$14 reg byte a 200002.0
|
||||
(byte~) fire::$4 reg byte a 200002.0
|
||||
@ -79,10 +78,9 @@
|
||||
(label) fire::@5
|
||||
(label) fire::@6
|
||||
(label) fire::@7
|
||||
(label) fire::@8
|
||||
(label) fire::@return
|
||||
(byte*) fire::buffer
|
||||
(byte*) fire::buffer#10 buffer_1 zp[2]:9 45455.0
|
||||
(byte*) fire::buffer#10 buffer_1 zp[2]:9 62500.625
|
||||
(byte*) fire::buffer#2 buffer zp[2]:4 200002.0
|
||||
(byte*) fire::buffer#3 buffer_1 zp[2]:9 200002.0
|
||||
(byte*) fire::buffer#4 buffer zp[2]:4 75000.75
|
||||
@ -93,12 +91,15 @@
|
||||
(byte*) fire::screen
|
||||
(byte*) fire::screen#0 screen zp[2]:2 133.46666666666667
|
||||
(byte*) fire::screen#1 screen zp[2]:2 2002.0
|
||||
(byte*) fire::screen#10 screen zp[2]:2 30100.4
|
||||
(byte*) fire::screen#11 screen_1 zp[2]:11 2002.0
|
||||
(byte*) fire::screen#10 screen zp[2]:2 43000.57142857143
|
||||
(byte*) fire::screen#12 screen_1 zp[2]:11 2002.0
|
||||
(byte*) fire::screen#2 screen_1 zp[2]:11 100001.0
|
||||
(byte*) fire::screen#3 screen zp[2]:2 100001.0
|
||||
(byte*) fire::screen#4 screen_1 zp[2]:11 27364.0
|
||||
(byte*) fire::screenbase
|
||||
(label) fire::sid_rnd1
|
||||
(byte) fire::sid_rnd1_return
|
||||
(byte) fire::sid_rnd1_return#0 reg byte a 200002.0
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
@ -107,7 +108,7 @@
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@8
|
||||
(label) main::sid_rnd_init1
|
||||
(label) main::toD0181
|
||||
(byte*) main::toD0181_gfx
|
||||
(byte) main::toD0181_return
|
||||
@ -166,13 +167,6 @@
|
||||
(byte) makecharset::ii
|
||||
(byte) makecharset::ii#1 ii zp[1]:8 200002.0
|
||||
(byte) makecharset::ii#2 ii zp[1]:8 40000.4
|
||||
(byte()) sid_rnd()
|
||||
(label) sid_rnd::@return
|
||||
(byte) sid_rnd::return
|
||||
(byte) sid_rnd::return#0 reg byte a 366667.3333333334
|
||||
(byte) sid_rnd::return#2 reg byte a 200002.0
|
||||
(void()) sid_rnd_init()
|
||||
(label) sid_rnd_init::@return
|
||||
|
||||
reg byte a [ fire::c#2 fire::c#0 fire::c#1 ]
|
||||
zp[2]:2 [ makecharset::font#2 makecharset::font#1 fire::screen#0 fire::screen#10 fire::screen#1 fire::screen#3 ]
|
||||
@ -184,15 +178,13 @@ zp[1]:8 [ makecharset::ii#2 makecharset::ii#1 ]
|
||||
reg byte y [ makecharset::b#2 makecharset::b#6 makecharset::b#1 ]
|
||||
reg byte x [ fillscreen::fill#5 ]
|
||||
zp[2]:9 [ fillscreen::i#2 fillscreen::i#1 fire::buffer#10 fire::buffer#3 ]
|
||||
reg byte a [ sid_rnd::return#2 ]
|
||||
reg byte a [ fire::$12 ]
|
||||
reg byte a [ fire::sid_rnd1_return#0 ]
|
||||
reg byte a [ fire::$13 ]
|
||||
reg byte a [ fire::$14 ]
|
||||
reg byte a [ fire::$4 ]
|
||||
reg byte a [ fire::$5 ]
|
||||
reg byte a [ fire::$6 ]
|
||||
reg byte a [ sid_rnd::return#0 ]
|
||||
zp[2]:11 [ makecharset::$17 makecharset::$15 makecharset::$16 makecharset::$18 fillscreen::screen#5 fillscreen::screen#6 fillscreen::screen#4 fire::screen#4 fire::screen#11 fire::screen#2 ]
|
||||
zp[2]:11 [ makecharset::$17 makecharset::$15 makecharset::$16 makecharset::$18 fillscreen::screen#5 fillscreen::screen#6 fillscreen::screen#4 fire::screen#4 fire::screen#12 fire::screen#2 ]
|
||||
reg byte a [ makecharset::$11 ]
|
||||
reg byte a [ makecharset::$12 ]
|
||||
zp[1]:13 [ makecharset::$13 ]
|
||||
|
@ -336,8 +336,14 @@ makecharset: {
|
||||
.label i = $d
|
||||
.label c = 9
|
||||
.label __16 = $10
|
||||
// sid_rnd_init()
|
||||
jsr sid_rnd_init
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// print_cls()
|
||||
jsr print_cls
|
||||
lda #<print_line_cursor
|
||||
@ -377,10 +383,10 @@ makecharset: {
|
||||
and.z c
|
||||
// if ((c & 0x07) == 0)
|
||||
cmp #0
|
||||
bne __b11
|
||||
bne __b10
|
||||
// print_char('.')
|
||||
jsr print_char
|
||||
__b11:
|
||||
__b10:
|
||||
// for (unsigned int c = 0; c < 0x100; ++c)
|
||||
inc.z c
|
||||
bne !+
|
||||
@ -393,7 +399,7 @@ makecharset: {
|
||||
__b5:
|
||||
// for (unsigned char ii = 0; ii < 8; ++ii)
|
||||
cpx #8
|
||||
bcc __b6
|
||||
bcc sid_rnd1
|
||||
// c*8
|
||||
lda.z c
|
||||
asl
|
||||
@ -427,34 +433,26 @@ makecharset: {
|
||||
// for ( unsigned char i = 0; i < 8; ++i)
|
||||
inc.z i
|
||||
jmp __b3
|
||||
__b6:
|
||||
// sid_rnd()
|
||||
jsr sid_rnd
|
||||
sid_rnd1:
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// sid_rnd() & 0xFF
|
||||
and #$ff
|
||||
sta.z __7
|
||||
// if ((sid_rnd() & 0xFF) > s)
|
||||
lda.z s
|
||||
cmp.z __7
|
||||
bcs __b8
|
||||
bcs __b7
|
||||
// b |= bittab[ii]
|
||||
tya
|
||||
ora bittab,x
|
||||
tay
|
||||
__b8:
|
||||
__b7:
|
||||
// for (unsigned char ii = 0; ii < 8; ++ii)
|
||||
inx
|
||||
jmp __b5
|
||||
bittab: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
||||
}
|
||||
// Get a random number from the SID voice 3,
|
||||
// Must be initialized with sid_rnd_init()
|
||||
sid_rnd: {
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Print a single char
|
||||
print_char: {
|
||||
.const ch = '.'
|
||||
@ -509,19 +507,6 @@ memset: {
|
||||
inc.z dst+1
|
||||
!:
|
||||
jmp __b1
|
||||
}
|
||||
// Initialize SID voice 3 for random number generation
|
||||
sid_rnd_init: {
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// }
|
||||
rts
|
||||
}
|
||||
.align $100
|
||||
SINTABLE:
|
||||
|
@ -202,117 +202,100 @@ doplasma::@2: scope:[doplasma] from doplasma::@1
|
||||
(void()) makecharset((byte*) makecharset::charset)
|
||||
makecharset: scope:[makecharset] from main::@2
|
||||
[97] phi()
|
||||
[98] call sid_rnd_init
|
||||
to:makecharset::@12
|
||||
makecharset::@12: scope:[makecharset] from makecharset
|
||||
[99] phi()
|
||||
[100] call print_cls
|
||||
to:makecharset::sid_rnd_init1
|
||||
makecharset::sid_rnd_init1: scope:[makecharset] from makecharset
|
||||
[98] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[99] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:makecharset::@11
|
||||
makecharset::@11: scope:[makecharset] from makecharset::sid_rnd_init1
|
||||
[100] phi()
|
||||
[101] call print_cls
|
||||
to:makecharset::@1
|
||||
makecharset::@1: scope:[makecharset] from makecharset::@11 makecharset::@12
|
||||
[101] (byte*) print_char_cursor#18 ← phi( makecharset::@11/(byte*) print_char_cursor#30 makecharset::@12/(const byte*) print_line_cursor#0 )
|
||||
[101] (word) makecharset::c#2 ← phi( makecharset::@11/(word) makecharset::c#1 makecharset::@12/(word) 0 )
|
||||
[102] if((word) makecharset::c#2<(word) $100) goto makecharset::@2
|
||||
makecharset::@1: scope:[makecharset] from makecharset::@10 makecharset::@11
|
||||
[102] (byte*) print_char_cursor#18 ← phi( makecharset::@10/(byte*) print_char_cursor#30 makecharset::@11/(const byte*) print_line_cursor#0 )
|
||||
[102] (word) makecharset::c#2 ← phi( makecharset::@10/(word) makecharset::c#1 makecharset::@11/(word) 0 )
|
||||
[103] if((word) makecharset::c#2<(word) $100) goto makecharset::@2
|
||||
to:makecharset::@return
|
||||
makecharset::@return: scope:[makecharset] from makecharset::@1
|
||||
[103] return
|
||||
[104] return
|
||||
to:@return
|
||||
makecharset::@2: scope:[makecharset] from makecharset::@1
|
||||
[104] (byte~) makecharset::$3 ← < (word) makecharset::c#2
|
||||
[105] (byte) makecharset::s#0 ← *((const to_nomodify byte*) SINTABLE + (byte~) makecharset::$3)
|
||||
[105] (byte~) makecharset::$3 ← < (word) makecharset::c#2
|
||||
[106] (byte) makecharset::s#0 ← *((const to_nomodify byte*) SINTABLE + (byte~) makecharset::$3)
|
||||
to:makecharset::@3
|
||||
makecharset::@3: scope:[makecharset] from makecharset::@2 makecharset::@7
|
||||
[106] (byte) makecharset::i#2 ← phi( makecharset::@2/(byte) 0 makecharset::@7/(byte) makecharset::i#1 )
|
||||
[107] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@5
|
||||
makecharset::@3: scope:[makecharset] from makecharset::@2 makecharset::@6
|
||||
[107] (byte) makecharset::i#2 ← phi( makecharset::@2/(byte) 0 makecharset::@6/(byte) makecharset::i#1 )
|
||||
[108] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@5
|
||||
to:makecharset::@4
|
||||
makecharset::@4: scope:[makecharset] from makecharset::@3
|
||||
[108] (byte~) makecharset::$12 ← (word) makecharset::c#2 & (byte) 7
|
||||
[109] if((byte~) makecharset::$12!=(byte) 0) goto makecharset::@11
|
||||
to:makecharset::@10
|
||||
makecharset::@10: scope:[makecharset] from makecharset::@4
|
||||
[110] phi()
|
||||
[111] call print_char
|
||||
to:makecharset::@11
|
||||
makecharset::@11: scope:[makecharset] from makecharset::@10 makecharset::@4
|
||||
[112] (byte*) print_char_cursor#30 ← phi( makecharset::@10/(byte*) print_char_cursor#1 makecharset::@4/(byte*) print_char_cursor#18 )
|
||||
[113] (word) makecharset::c#1 ← ++ (word) makecharset::c#2
|
||||
to:makecharset::@1
|
||||
makecharset::@5: scope:[makecharset] from makecharset::@3 makecharset::@8
|
||||
[114] (byte) makecharset::b#2 ← phi( makecharset::@3/(byte) 0 makecharset::@8/(byte) makecharset::b#6 )
|
||||
[114] (byte) makecharset::ii#2 ← phi( makecharset::@3/(byte) 0 makecharset::@8/(byte) makecharset::ii#1 )
|
||||
[115] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::@6
|
||||
to:makecharset::@7
|
||||
makecharset::@7: scope:[makecharset] from makecharset::@5
|
||||
[116] (word~) makecharset::$10 ← (word) makecharset::c#2 << (byte) 3
|
||||
[117] (word~) makecharset::$11 ← (word~) makecharset::$10 + (byte) makecharset::i#2
|
||||
[118] (byte*~) makecharset::$16 ← (const nomodify byte*) CHARSET + (word~) makecharset::$11
|
||||
[119] *((byte*~) makecharset::$16) ← (byte) makecharset::b#2
|
||||
[120] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#2
|
||||
to:makecharset::@3
|
||||
makecharset::@6: scope:[makecharset] from makecharset::@5
|
||||
[121] phi()
|
||||
[122] call sid_rnd
|
||||
[123] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
|
||||
to:makecharset::@13
|
||||
makecharset::@13: scope:[makecharset] from makecharset::@6
|
||||
[124] (byte~) makecharset::$6 ← (byte) sid_rnd::return#2
|
||||
[125] (byte~) makecharset::$7 ← (byte~) makecharset::$6 & (byte) $ff
|
||||
[126] if((byte~) makecharset::$7<=(byte) makecharset::s#0) goto makecharset::@8
|
||||
[109] (byte~) makecharset::$12 ← (word) makecharset::c#2 & (byte) 7
|
||||
[110] if((byte~) makecharset::$12!=(byte) 0) goto makecharset::@10
|
||||
to:makecharset::@9
|
||||
makecharset::@9: scope:[makecharset] from makecharset::@13
|
||||
[127] (byte) makecharset::b#1 ← (byte) makecharset::b#2 | *((const to_nomodify byte*) makecharset::bittab + (byte) makecharset::ii#2)
|
||||
makecharset::@9: scope:[makecharset] from makecharset::@4
|
||||
[111] phi()
|
||||
[112] call print_char
|
||||
to:makecharset::@10
|
||||
makecharset::@10: scope:[makecharset] from makecharset::@4 makecharset::@9
|
||||
[113] (byte*) print_char_cursor#30 ← phi( makecharset::@9/(byte*) print_char_cursor#1 makecharset::@4/(byte*) print_char_cursor#18 )
|
||||
[114] (word) makecharset::c#1 ← ++ (word) makecharset::c#2
|
||||
to:makecharset::@1
|
||||
makecharset::@5: scope:[makecharset] from makecharset::@3 makecharset::@7
|
||||
[115] (byte) makecharset::b#2 ← phi( makecharset::@3/(byte) 0 makecharset::@7/(byte) makecharset::b#6 )
|
||||
[115] (byte) makecharset::ii#2 ← phi( makecharset::@3/(byte) 0 makecharset::@7/(byte) makecharset::ii#1 )
|
||||
[116] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::sid_rnd1
|
||||
to:makecharset::@6
|
||||
makecharset::@6: scope:[makecharset] from makecharset::@5
|
||||
[117] (word~) makecharset::$10 ← (word) makecharset::c#2 << (byte) 3
|
||||
[118] (word~) makecharset::$11 ← (word~) makecharset::$10 + (byte) makecharset::i#2
|
||||
[119] (byte*~) makecharset::$16 ← (const nomodify byte*) CHARSET + (word~) makecharset::$11
|
||||
[120] *((byte*~) makecharset::$16) ← (byte) makecharset::b#2
|
||||
[121] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#2
|
||||
to:makecharset::@3
|
||||
makecharset::sid_rnd1: scope:[makecharset] from makecharset::@5
|
||||
[122] (byte) makecharset::sid_rnd1_return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:makecharset::@12
|
||||
makecharset::@12: scope:[makecharset] from makecharset::sid_rnd1
|
||||
[123] (byte~) makecharset::$7 ← (byte) makecharset::sid_rnd1_return#0 & (byte) $ff
|
||||
[124] if((byte~) makecharset::$7<=(byte) makecharset::s#0) goto makecharset::@7
|
||||
to:makecharset::@8
|
||||
makecharset::@8: scope:[makecharset] from makecharset::@13 makecharset::@9
|
||||
[128] (byte) makecharset::b#6 ← phi( makecharset::@9/(byte) makecharset::b#1 makecharset::@13/(byte) makecharset::b#2 )
|
||||
[129] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
|
||||
makecharset::@8: scope:[makecharset] from makecharset::@12
|
||||
[125] (byte) makecharset::b#1 ← (byte) makecharset::b#2 | *((const to_nomodify byte*) makecharset::bittab + (byte) makecharset::ii#2)
|
||||
to:makecharset::@7
|
||||
makecharset::@7: scope:[makecharset] from makecharset::@12 makecharset::@8
|
||||
[126] (byte) makecharset::b#6 ← phi( makecharset::@12/(byte) makecharset::b#2 makecharset::@8/(byte) makecharset::b#1 )
|
||||
[127] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
|
||||
to:makecharset::@5
|
||||
|
||||
(byte()) sid_rnd()
|
||||
sid_rnd: scope:[sid_rnd] from makecharset::@6
|
||||
[130] (byte) sid_rnd::return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:sid_rnd::@return
|
||||
sid_rnd::@return: scope:[sid_rnd] from sid_rnd
|
||||
[131] return
|
||||
to:@return
|
||||
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
print_char: scope:[print_char] from makecharset::@10
|
||||
[132] *((byte*) print_char_cursor#18) ← (const byte) print_char::ch#0
|
||||
[133] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#18
|
||||
print_char: scope:[print_char] from makecharset::@9
|
||||
[128] *((byte*) print_char_cursor#18) ← (const byte) print_char::ch#0
|
||||
[129] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#18
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[134] return
|
||||
[130] return
|
||||
to:@return
|
||||
|
||||
(void()) print_cls()
|
||||
print_cls: scope:[print_cls] from makecharset::@12
|
||||
[135] phi()
|
||||
[136] call memset
|
||||
print_cls: scope:[print_cls] from makecharset::@11
|
||||
[131] phi()
|
||||
[132] call memset
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls
|
||||
[137] return
|
||||
[133] return
|
||||
to:@return
|
||||
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
memset: scope:[memset] from print_cls
|
||||
[138] phi()
|
||||
[134] phi()
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset memset::@2
|
||||
[139] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
||||
[140] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
||||
[135] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
||||
[136] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@1
|
||||
[141] return
|
||||
[137] return
|
||||
to:@return
|
||||
memset::@2: scope:[memset] from memset::@1
|
||||
[142] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
||||
[143] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
[138] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
||||
[139] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
to:memset::@1
|
||||
|
||||
(void()) sid_rnd_init()
|
||||
sid_rnd_init: scope:[sid_rnd_init] from makecharset
|
||||
[144] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[145] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:sid_rnd_init::@return
|
||||
sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
|
||||
[146] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -189,13 +189,11 @@
|
||||
(byte~) makecharset::$12 reg byte a 2002.0
|
||||
(byte*~) makecharset::$16 zp[2]:16 20002.0
|
||||
(byte~) makecharset::$3 reg byte x 2002.0
|
||||
(byte~) makecharset::$6 reg byte a 200002.0
|
||||
(byte~) makecharset::$7 zp[1]:18 200002.0
|
||||
(label) makecharset::@1
|
||||
(label) makecharset::@10
|
||||
(label) makecharset::@11
|
||||
(label) makecharset::@12
|
||||
(label) makecharset::@13
|
||||
(label) makecharset::@2
|
||||
(label) makecharset::@3
|
||||
(label) makecharset::@4
|
||||
@ -207,21 +205,25 @@
|
||||
(label) makecharset::@return
|
||||
(byte) makecharset::b
|
||||
(byte) makecharset::b#1 reg byte y 200002.0
|
||||
(byte) makecharset::b#2 reg byte y 28182.181818181816
|
||||
(byte) makecharset::b#2 reg byte y 38750.5
|
||||
(byte) makecharset::b#6 reg byte y 150001.5
|
||||
(const to_nomodify byte*) makecharset::bittab[(number) 8] = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 }
|
||||
(word) makecharset::c
|
||||
(word) makecharset::c#1 c zp[2]:9 2002.0
|
||||
(word) makecharset::c#2 c zp[2]:9 555.7777777777778
|
||||
(word) makecharset::c#2 c zp[2]:9 625.25
|
||||
(byte*) makecharset::charset
|
||||
(byte) makecharset::i
|
||||
(byte) makecharset::i#1 i zp[1]:13 20002.0
|
||||
(byte) makecharset::i#2 i zp[1]:13 2353.176470588235
|
||||
(byte) makecharset::i#2 i zp[1]:13 2857.4285714285716
|
||||
(byte) makecharset::ii
|
||||
(byte) makecharset::ii#1 reg byte x 200002.0
|
||||
(byte) makecharset::ii#2 reg byte x 40000.4
|
||||
(byte) makecharset::ii#2 reg byte x 57143.42857142857
|
||||
(byte) makecharset::s
|
||||
(byte) makecharset::s#0 s zp[1]:15 5315.894736842105
|
||||
(byte) makecharset::s#0 s zp[1]:15 6312.625
|
||||
(label) makecharset::sid_rnd1
|
||||
(byte) makecharset::sid_rnd1_return
|
||||
(byte) makecharset::sid_rnd1_return#0 reg byte a 200002.0
|
||||
(label) makecharset::sid_rnd_init1
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
(label) memset::@2
|
||||
@ -244,20 +246,13 @@
|
||||
(const byte) print_char::ch#0 ch = (byte) '.'
|
||||
(byte*) print_char_cursor
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp[2]:11 3667.333333333333
|
||||
(byte*) print_char_cursor#18 print_char_cursor zp[2]:11 846.3076923076923
|
||||
(byte*) print_char_cursor#18 print_char_cursor zp[2]:11 956.695652173913
|
||||
(byte*) print_char_cursor#30 print_char_cursor zp[2]:11 1501.5
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@return
|
||||
(byte*) print_line_cursor
|
||||
(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024
|
||||
(byte*) print_screen
|
||||
(byte()) sid_rnd()
|
||||
(label) sid_rnd::@return
|
||||
(byte) sid_rnd::return
|
||||
(byte) sid_rnd::return#0 reg byte a 366667.3333333334
|
||||
(byte) sid_rnd::return#2 reg byte a 200002.0
|
||||
(void()) sid_rnd_init()
|
||||
(label) sid_rnd_init::@return
|
||||
|
||||
zp[1]:2 [ c1A#1 c1A#3 ]
|
||||
zp[1]:3 [ c1B#1 c1B#3 ]
|
||||
@ -306,7 +301,5 @@ reg byte x [ makecharset::$3 ]
|
||||
zp[1]:15 [ makecharset::s#0 doplasma::c1a#2 doplasma::c1a#0 doplasma::c1a#1 ]
|
||||
reg byte a [ makecharset::$12 ]
|
||||
zp[2]:16 [ makecharset::$10 makecharset::$11 makecharset::$16 memset::dst#2 memset::dst#1 ]
|
||||
reg byte a [ sid_rnd::return#2 ]
|
||||
reg byte a [ makecharset::$6 ]
|
||||
reg byte a [ makecharset::sid_rnd1_return#0 ]
|
||||
zp[1]:18 [ makecharset::$7 doplasma::c1b#2 doplasma::c1b#0 doplasma::c1b#1 ]
|
||||
reg byte a [ sid_rnd::return#0 ]
|
||||
|
@ -232,8 +232,14 @@ makecharset: {
|
||||
.label i = $d
|
||||
.label c = 9
|
||||
.label __16 = $f
|
||||
// sid_rnd_init()
|
||||
jsr sid_rnd_init
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// print_cls()
|
||||
jsr print_cls
|
||||
lda #<print_line_cursor
|
||||
@ -273,10 +279,10 @@ makecharset: {
|
||||
and.z c
|
||||
// if ((c & 0x07) == 0)
|
||||
cmp #0
|
||||
bne __b11
|
||||
bne __b10
|
||||
// print_char('.')
|
||||
jsr print_char
|
||||
__b11:
|
||||
__b10:
|
||||
// for (unsigned int c = 0; c < 0x100; ++c)
|
||||
inc.z c
|
||||
bne !+
|
||||
@ -289,7 +295,7 @@ makecharset: {
|
||||
__b5:
|
||||
// for (char ii = 0; ii < 8; ++ii)
|
||||
cpx #8
|
||||
bcc __b6
|
||||
bcc sid_rnd1
|
||||
// c*8
|
||||
lda.z c
|
||||
asl
|
||||
@ -323,34 +329,26 @@ makecharset: {
|
||||
// for ( char i = 0; i < 8; ++i)
|
||||
inc.z i
|
||||
jmp __b3
|
||||
__b6:
|
||||
// sid_rnd()
|
||||
jsr sid_rnd
|
||||
sid_rnd1:
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// sid_rnd() & 0xFF
|
||||
and #$ff
|
||||
sta.z __7
|
||||
// if ((sid_rnd() & 0xFF) > s)
|
||||
lda.z s
|
||||
cmp.z __7
|
||||
bcs __b8
|
||||
bcs __b7
|
||||
// b |= bittab[ii]
|
||||
tya
|
||||
ora bittab,x
|
||||
tay
|
||||
__b8:
|
||||
__b7:
|
||||
// for (char ii = 0; ii < 8; ++ii)
|
||||
inx
|
||||
jmp __b5
|
||||
bittab: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
||||
}
|
||||
// Get a random number from the SID voice 3,
|
||||
// Must be initialized with sid_rnd_init()
|
||||
sid_rnd: {
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Print a single char
|
||||
print_char: {
|
||||
.const ch = '.'
|
||||
@ -405,19 +403,6 @@ memset: {
|
||||
inc.z dst+1
|
||||
!:
|
||||
jmp __b1
|
||||
}
|
||||
// Initialize SID voice 3 for random number generation
|
||||
sid_rnd_init: {
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// }
|
||||
rts
|
||||
}
|
||||
.align $100
|
||||
SINTABLE:
|
||||
|
@ -119,117 +119,100 @@ doplasma::@2: scope:[doplasma] from doplasma::@1
|
||||
(void()) makecharset((byte*) makecharset::charset)
|
||||
makecharset: scope:[makecharset] from main::@2
|
||||
[54] phi()
|
||||
[55] call sid_rnd_init
|
||||
to:makecharset::@12
|
||||
makecharset::@12: scope:[makecharset] from makecharset
|
||||
[56] phi()
|
||||
[57] call print_cls
|
||||
to:makecharset::sid_rnd_init1
|
||||
makecharset::sid_rnd_init1: scope:[makecharset] from makecharset
|
||||
[55] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[56] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:makecharset::@11
|
||||
makecharset::@11: scope:[makecharset] from makecharset::sid_rnd_init1
|
||||
[57] phi()
|
||||
[58] call print_cls
|
||||
to:makecharset::@1
|
||||
makecharset::@1: scope:[makecharset] from makecharset::@11 makecharset::@12
|
||||
[58] (byte*) print_char_cursor#18 ← phi( makecharset::@11/(byte*) print_char_cursor#29 makecharset::@12/(const byte*) print_line_cursor#0 )
|
||||
[58] (word) makecharset::c#2 ← phi( makecharset::@11/(word) makecharset::c#1 makecharset::@12/(word) 0 )
|
||||
[59] if((word) makecharset::c#2<(word) $100) goto makecharset::@2
|
||||
makecharset::@1: scope:[makecharset] from makecharset::@10 makecharset::@11
|
||||
[59] (byte*) print_char_cursor#18 ← phi( makecharset::@10/(byte*) print_char_cursor#29 makecharset::@11/(const byte*) print_line_cursor#0 )
|
||||
[59] (word) makecharset::c#2 ← phi( makecharset::@10/(word) makecharset::c#1 makecharset::@11/(word) 0 )
|
||||
[60] if((word) makecharset::c#2<(word) $100) goto makecharset::@2
|
||||
to:makecharset::@return
|
||||
makecharset::@return: scope:[makecharset] from makecharset::@1
|
||||
[60] return
|
||||
[61] return
|
||||
to:@return
|
||||
makecharset::@2: scope:[makecharset] from makecharset::@1
|
||||
[61] (byte~) makecharset::$3 ← < (word) makecharset::c#2
|
||||
[62] (byte) makecharset::s#0 ← *((const to_nomodify byte*) SINTABLE + (byte~) makecharset::$3)
|
||||
[62] (byte~) makecharset::$3 ← < (word) makecharset::c#2
|
||||
[63] (byte) makecharset::s#0 ← *((const to_nomodify byte*) SINTABLE + (byte~) makecharset::$3)
|
||||
to:makecharset::@3
|
||||
makecharset::@3: scope:[makecharset] from makecharset::@2 makecharset::@7
|
||||
[63] (byte) makecharset::i#2 ← phi( makecharset::@2/(byte) 0 makecharset::@7/(byte) makecharset::i#1 )
|
||||
[64] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@5
|
||||
makecharset::@3: scope:[makecharset] from makecharset::@2 makecharset::@6
|
||||
[64] (byte) makecharset::i#2 ← phi( makecharset::@2/(byte) 0 makecharset::@6/(byte) makecharset::i#1 )
|
||||
[65] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@5
|
||||
to:makecharset::@4
|
||||
makecharset::@4: scope:[makecharset] from makecharset::@3
|
||||
[65] (byte~) makecharset::$12 ← (word) makecharset::c#2 & (byte) 7
|
||||
[66] if((byte~) makecharset::$12!=(byte) 0) goto makecharset::@11
|
||||
to:makecharset::@10
|
||||
makecharset::@10: scope:[makecharset] from makecharset::@4
|
||||
[67] phi()
|
||||
[68] call print_char
|
||||
to:makecharset::@11
|
||||
makecharset::@11: scope:[makecharset] from makecharset::@10 makecharset::@4
|
||||
[69] (byte*) print_char_cursor#29 ← phi( makecharset::@10/(byte*) print_char_cursor#1 makecharset::@4/(byte*) print_char_cursor#18 )
|
||||
[70] (word) makecharset::c#1 ← ++ (word) makecharset::c#2
|
||||
to:makecharset::@1
|
||||
makecharset::@5: scope:[makecharset] from makecharset::@3 makecharset::@8
|
||||
[71] (byte) makecharset::b#2 ← phi( makecharset::@3/(byte) 0 makecharset::@8/(byte) makecharset::b#6 )
|
||||
[71] (byte) makecharset::ii#2 ← phi( makecharset::@3/(byte) 0 makecharset::@8/(byte) makecharset::ii#1 )
|
||||
[72] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::@6
|
||||
to:makecharset::@7
|
||||
makecharset::@7: scope:[makecharset] from makecharset::@5
|
||||
[73] (word~) makecharset::$10 ← (word) makecharset::c#2 << (byte) 3
|
||||
[74] (word~) makecharset::$11 ← (word~) makecharset::$10 + (byte) makecharset::i#2
|
||||
[75] (byte*~) makecharset::$16 ← (const nomodify byte*) CHARSET + (word~) makecharset::$11
|
||||
[76] *((byte*~) makecharset::$16) ← (byte) makecharset::b#2
|
||||
[77] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#2
|
||||
to:makecharset::@3
|
||||
makecharset::@6: scope:[makecharset] from makecharset::@5
|
||||
[78] phi()
|
||||
[79] call sid_rnd
|
||||
[80] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
|
||||
to:makecharset::@13
|
||||
makecharset::@13: scope:[makecharset] from makecharset::@6
|
||||
[81] (byte~) makecharset::$6 ← (byte) sid_rnd::return#2
|
||||
[82] (byte~) makecharset::$7 ← (byte~) makecharset::$6 & (byte) $ff
|
||||
[83] if((byte~) makecharset::$7<=(byte) makecharset::s#0) goto makecharset::@8
|
||||
[66] (byte~) makecharset::$12 ← (word) makecharset::c#2 & (byte) 7
|
||||
[67] if((byte~) makecharset::$12!=(byte) 0) goto makecharset::@10
|
||||
to:makecharset::@9
|
||||
makecharset::@9: scope:[makecharset] from makecharset::@13
|
||||
[84] (byte) makecharset::b#1 ← (byte) makecharset::b#2 | *((const to_nomodify byte*) makecharset::bittab + (byte) makecharset::ii#2)
|
||||
makecharset::@9: scope:[makecharset] from makecharset::@4
|
||||
[68] phi()
|
||||
[69] call print_char
|
||||
to:makecharset::@10
|
||||
makecharset::@10: scope:[makecharset] from makecharset::@4 makecharset::@9
|
||||
[70] (byte*) print_char_cursor#29 ← phi( makecharset::@9/(byte*) print_char_cursor#1 makecharset::@4/(byte*) print_char_cursor#18 )
|
||||
[71] (word) makecharset::c#1 ← ++ (word) makecharset::c#2
|
||||
to:makecharset::@1
|
||||
makecharset::@5: scope:[makecharset] from makecharset::@3 makecharset::@7
|
||||
[72] (byte) makecharset::b#2 ← phi( makecharset::@3/(byte) 0 makecharset::@7/(byte) makecharset::b#6 )
|
||||
[72] (byte) makecharset::ii#2 ← phi( makecharset::@3/(byte) 0 makecharset::@7/(byte) makecharset::ii#1 )
|
||||
[73] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::sid_rnd1
|
||||
to:makecharset::@6
|
||||
makecharset::@6: scope:[makecharset] from makecharset::@5
|
||||
[74] (word~) makecharset::$10 ← (word) makecharset::c#2 << (byte) 3
|
||||
[75] (word~) makecharset::$11 ← (word~) makecharset::$10 + (byte) makecharset::i#2
|
||||
[76] (byte*~) makecharset::$16 ← (const nomodify byte*) CHARSET + (word~) makecharset::$11
|
||||
[77] *((byte*~) makecharset::$16) ← (byte) makecharset::b#2
|
||||
[78] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#2
|
||||
to:makecharset::@3
|
||||
makecharset::sid_rnd1: scope:[makecharset] from makecharset::@5
|
||||
[79] (byte) makecharset::sid_rnd1_return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:makecharset::@12
|
||||
makecharset::@12: scope:[makecharset] from makecharset::sid_rnd1
|
||||
[80] (byte~) makecharset::$7 ← (byte) makecharset::sid_rnd1_return#0 & (byte) $ff
|
||||
[81] if((byte~) makecharset::$7<=(byte) makecharset::s#0) goto makecharset::@7
|
||||
to:makecharset::@8
|
||||
makecharset::@8: scope:[makecharset] from makecharset::@13 makecharset::@9
|
||||
[85] (byte) makecharset::b#6 ← phi( makecharset::@9/(byte) makecharset::b#1 makecharset::@13/(byte) makecharset::b#2 )
|
||||
[86] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
|
||||
makecharset::@8: scope:[makecharset] from makecharset::@12
|
||||
[82] (byte) makecharset::b#1 ← (byte) makecharset::b#2 | *((const to_nomodify byte*) makecharset::bittab + (byte) makecharset::ii#2)
|
||||
to:makecharset::@7
|
||||
makecharset::@7: scope:[makecharset] from makecharset::@12 makecharset::@8
|
||||
[83] (byte) makecharset::b#6 ← phi( makecharset::@12/(byte) makecharset::b#2 makecharset::@8/(byte) makecharset::b#1 )
|
||||
[84] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
|
||||
to:makecharset::@5
|
||||
|
||||
(byte()) sid_rnd()
|
||||
sid_rnd: scope:[sid_rnd] from makecharset::@6
|
||||
[87] (byte) sid_rnd::return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:sid_rnd::@return
|
||||
sid_rnd::@return: scope:[sid_rnd] from sid_rnd
|
||||
[88] return
|
||||
to:@return
|
||||
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
print_char: scope:[print_char] from makecharset::@10
|
||||
[89] *((byte*) print_char_cursor#18) ← (const byte) print_char::ch#0
|
||||
[90] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#18
|
||||
print_char: scope:[print_char] from makecharset::@9
|
||||
[85] *((byte*) print_char_cursor#18) ← (const byte) print_char::ch#0
|
||||
[86] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#18
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[91] return
|
||||
[87] return
|
||||
to:@return
|
||||
|
||||
(void()) print_cls()
|
||||
print_cls: scope:[print_cls] from makecharset::@12
|
||||
[92] phi()
|
||||
[93] call memset
|
||||
print_cls: scope:[print_cls] from makecharset::@11
|
||||
[88] phi()
|
||||
[89] call memset
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls
|
||||
[94] return
|
||||
[90] return
|
||||
to:@return
|
||||
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
memset: scope:[memset] from print_cls
|
||||
[95] phi()
|
||||
[91] phi()
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset memset::@2
|
||||
[96] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
||||
[97] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
||||
[92] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
||||
[93] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@1
|
||||
[98] return
|
||||
[94] return
|
||||
to:@return
|
||||
memset::@2: scope:[memset] from memset::@1
|
||||
[99] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
||||
[100] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
[95] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
||||
[96] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
to:memset::@1
|
||||
|
||||
(void()) sid_rnd_init()
|
||||
sid_rnd_init: scope:[sid_rnd_init] from makecharset
|
||||
[101] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[102] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:sid_rnd_init::@return
|
||||
sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
|
||||
[103] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -150,13 +150,11 @@
|
||||
(byte~) makecharset::$12 reg byte a 2002.0
|
||||
(byte*~) makecharset::$16 zp[2]:15 20002.0
|
||||
(byte~) makecharset::$3 reg byte x 2002.0
|
||||
(byte~) makecharset::$6 reg byte a 200002.0
|
||||
(byte~) makecharset::$7 zp[1]:17 200002.0
|
||||
(label) makecharset::@1
|
||||
(label) makecharset::@10
|
||||
(label) makecharset::@11
|
||||
(label) makecharset::@12
|
||||
(label) makecharset::@13
|
||||
(label) makecharset::@2
|
||||
(label) makecharset::@3
|
||||
(label) makecharset::@4
|
||||
@ -168,21 +166,25 @@
|
||||
(label) makecharset::@return
|
||||
(byte) makecharset::b
|
||||
(byte) makecharset::b#1 reg byte y 200002.0
|
||||
(byte) makecharset::b#2 reg byte y 28182.181818181816
|
||||
(byte) makecharset::b#2 reg byte y 38750.5
|
||||
(byte) makecharset::b#6 reg byte y 150001.5
|
||||
(const to_nomodify byte*) makecharset::bittab[(number) 8] = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 }
|
||||
(word) makecharset::c
|
||||
(word) makecharset::c#1 c zp[2]:9 2002.0
|
||||
(word) makecharset::c#2 c zp[2]:9 555.7777777777778
|
||||
(word) makecharset::c#2 c zp[2]:9 625.25
|
||||
(byte*) makecharset::charset
|
||||
(byte) makecharset::i
|
||||
(byte) makecharset::i#1 i zp[1]:13 20002.0
|
||||
(byte) makecharset::i#2 i zp[1]:13 2353.176470588235
|
||||
(byte) makecharset::i#2 i zp[1]:13 2857.4285714285716
|
||||
(byte) makecharset::ii
|
||||
(byte) makecharset::ii#1 reg byte x 200002.0
|
||||
(byte) makecharset::ii#2 reg byte x 40000.4
|
||||
(byte) makecharset::ii#2 reg byte x 57143.42857142857
|
||||
(byte) makecharset::s
|
||||
(byte) makecharset::s#0 s zp[1]:14 5315.894736842105
|
||||
(byte) makecharset::s#0 s zp[1]:14 6312.625
|
||||
(label) makecharset::sid_rnd1
|
||||
(byte) makecharset::sid_rnd1_return
|
||||
(byte) makecharset::sid_rnd1_return#0 reg byte a 200002.0
|
||||
(label) makecharset::sid_rnd_init1
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
(label) memset::@2
|
||||
@ -205,20 +207,13 @@
|
||||
(const byte) print_char::ch#0 ch = (byte) '.'
|
||||
(byte*) print_char_cursor
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp[2]:11 3667.333333333333
|
||||
(byte*) print_char_cursor#18 print_char_cursor zp[2]:11 846.3076923076923
|
||||
(byte*) print_char_cursor#18 print_char_cursor zp[2]:11 956.695652173913
|
||||
(byte*) print_char_cursor#29 print_char_cursor zp[2]:11 1501.5
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@return
|
||||
(byte*) print_line_cursor
|
||||
(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024
|
||||
(byte*) print_screen
|
||||
(byte()) sid_rnd()
|
||||
(label) sid_rnd::@return
|
||||
(byte) sid_rnd::return
|
||||
(byte) sid_rnd::return#0 reg byte a 366667.3333333334
|
||||
(byte) sid_rnd::return#2 reg byte a 200002.0
|
||||
(void()) sid_rnd_init()
|
||||
(label) sid_rnd_init::@return
|
||||
|
||||
zp[1]:2 [ c1A#10 c1A#14 c1A#4 ]
|
||||
zp[1]:3 [ c1B#10 c1B#14 c1B#4 ]
|
||||
@ -241,7 +236,5 @@ reg byte x [ makecharset::$3 ]
|
||||
zp[1]:14 [ makecharset::s#0 doplasma::c1a#2 doplasma::c1a#0 doplasma::c1a#1 ]
|
||||
reg byte a [ makecharset::$12 ]
|
||||
zp[2]:15 [ makecharset::$10 makecharset::$11 makecharset::$16 memset::dst#2 memset::dst#1 ]
|
||||
reg byte a [ sid_rnd::return#2 ]
|
||||
reg byte a [ makecharset::$6 ]
|
||||
reg byte a [ makecharset::sid_rnd1_return#0 ]
|
||||
zp[1]:17 [ makecharset::$7 doplasma::c1b#2 doplasma::c1b#0 doplasma::c1b#1 ]
|
||||
reg byte a [ sid_rnd::return#0 ]
|
||||
|
@ -260,8 +260,14 @@ make_plasma_charset: {
|
||||
.label i = 6
|
||||
.label c = 9
|
||||
.label __16 = $1e
|
||||
// sid_rnd_init()
|
||||
jsr sid_rnd_init
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// print_cls()
|
||||
jsr print_cls
|
||||
lda #<print_line_cursor
|
||||
@ -301,10 +307,10 @@ make_plasma_charset: {
|
||||
and.z c
|
||||
// if ((c & 0x07) == 0)
|
||||
cmp #0
|
||||
bne __b11
|
||||
bne __b10
|
||||
// print_char('.')
|
||||
jsr print_char
|
||||
__b11:
|
||||
__b10:
|
||||
// for (unsigned int c = 0; c < 0x100; ++c)
|
||||
inc.z c
|
||||
bne !+
|
||||
@ -317,7 +323,7 @@ make_plasma_charset: {
|
||||
__b5:
|
||||
// for (char ii = 0; ii < 8; ++ii)
|
||||
cpx #8
|
||||
bcc __b6
|
||||
bcc sid_rnd1
|
||||
// c*8
|
||||
lda.z c
|
||||
asl
|
||||
@ -351,34 +357,26 @@ make_plasma_charset: {
|
||||
// for ( char i = 0; i < 8; ++i)
|
||||
inc.z i
|
||||
jmp __b3
|
||||
__b6:
|
||||
// sid_rnd()
|
||||
jsr sid_rnd
|
||||
sid_rnd1:
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// sid_rnd() & 0xFF
|
||||
and #$ff
|
||||
sta.z __7
|
||||
// if ((sid_rnd() & 0xFF) > s)
|
||||
lda.z s
|
||||
cmp.z __7
|
||||
bcs __b8
|
||||
bcs __b7
|
||||
// b |= bittab[ii]
|
||||
tya
|
||||
ora bittab,x
|
||||
tay
|
||||
__b8:
|
||||
__b7:
|
||||
// for (char ii = 0; ii < 8; ++ii)
|
||||
inx
|
||||
jmp __b5
|
||||
bittab: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
||||
}
|
||||
// Get a random number from the SID voice 3,
|
||||
// Must be initialized with sid_rnd_init()
|
||||
sid_rnd: {
|
||||
// return SID->CH3_OSC;
|
||||
lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Print a single char
|
||||
print_char: {
|
||||
.const ch = '.'
|
||||
@ -406,19 +404,6 @@ print_cls: {
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Initialize SID voice 3 for random number generation
|
||||
sid_rnd_init: {
|
||||
// SID->CH3_FREQ = 0xffff
|
||||
lda #<$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ
|
||||
lda #>$ffff
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1
|
||||
// SID->CH3_CONTROL = SID_CONTROL_NOISE
|
||||
lda #SID_CONTROL_NOISE
|
||||
sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Populates 1000 bytes (a screen) with values representing the angle to the center.
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp(9) screen)
|
||||
|
@ -120,437 +120,420 @@ memset::@3: scope:[memset] from memset::@2
|
||||
(void()) make_plasma_charset((byte*) make_plasma_charset::charset)
|
||||
make_plasma_charset: scope:[make_plasma_charset] from main::@6
|
||||
[52] phi()
|
||||
[53] call sid_rnd_init
|
||||
to:make_plasma_charset::@12
|
||||
make_plasma_charset::@12: scope:[make_plasma_charset] from make_plasma_charset
|
||||
[54] phi()
|
||||
[55] call print_cls
|
||||
to:make_plasma_charset::sid_rnd_init1
|
||||
make_plasma_charset::sid_rnd_init1: scope:[make_plasma_charset] from make_plasma_charset
|
||||
[53] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[54] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:make_plasma_charset::@11
|
||||
make_plasma_charset::@11: scope:[make_plasma_charset] from make_plasma_charset::sid_rnd_init1
|
||||
[55] phi()
|
||||
[56] call print_cls
|
||||
to:make_plasma_charset::@1
|
||||
make_plasma_charset::@1: scope:[make_plasma_charset] from make_plasma_charset::@11 make_plasma_charset::@12
|
||||
[56] (byte*) print_char_cursor#18 ← phi( make_plasma_charset::@11/(byte*) print_char_cursor#30 make_plasma_charset::@12/(const byte*) print_line_cursor#0 )
|
||||
[56] (word) make_plasma_charset::c#2 ← phi( make_plasma_charset::@11/(word) make_plasma_charset::c#1 make_plasma_charset::@12/(word) 0 )
|
||||
[57] if((word) make_plasma_charset::c#2<(word) $100) goto make_plasma_charset::@2
|
||||
make_plasma_charset::@1: scope:[make_plasma_charset] from make_plasma_charset::@10 make_plasma_charset::@11
|
||||
[57] (byte*) print_char_cursor#18 ← phi( make_plasma_charset::@10/(byte*) print_char_cursor#30 make_plasma_charset::@11/(const byte*) print_line_cursor#0 )
|
||||
[57] (word) make_plasma_charset::c#2 ← phi( make_plasma_charset::@10/(word) make_plasma_charset::c#1 make_plasma_charset::@11/(word) 0 )
|
||||
[58] if((word) make_plasma_charset::c#2<(word) $100) goto make_plasma_charset::@2
|
||||
to:make_plasma_charset::@return
|
||||
make_plasma_charset::@return: scope:[make_plasma_charset] from make_plasma_charset::@1
|
||||
[58] return
|
||||
[59] return
|
||||
to:@return
|
||||
make_plasma_charset::@2: scope:[make_plasma_charset] from make_plasma_charset::@1
|
||||
[59] (byte~) make_plasma_charset::$3 ← < (word) make_plasma_charset::c#2
|
||||
[60] (byte) make_plasma_charset::s#0 ← *((const to_nomodify byte*) SINTABLE + (byte~) make_plasma_charset::$3)
|
||||
[60] (byte~) make_plasma_charset::$3 ← < (word) make_plasma_charset::c#2
|
||||
[61] (byte) make_plasma_charset::s#0 ← *((const to_nomodify byte*) SINTABLE + (byte~) make_plasma_charset::$3)
|
||||
to:make_plasma_charset::@3
|
||||
make_plasma_charset::@3: scope:[make_plasma_charset] from make_plasma_charset::@2 make_plasma_charset::@7
|
||||
[61] (byte) make_plasma_charset::i#2 ← phi( make_plasma_charset::@2/(byte) 0 make_plasma_charset::@7/(byte) make_plasma_charset::i#1 )
|
||||
[62] if((byte) make_plasma_charset::i#2<(byte) 8) goto make_plasma_charset::@5
|
||||
make_plasma_charset::@3: scope:[make_plasma_charset] from make_plasma_charset::@2 make_plasma_charset::@6
|
||||
[62] (byte) make_plasma_charset::i#2 ← phi( make_plasma_charset::@2/(byte) 0 make_plasma_charset::@6/(byte) make_plasma_charset::i#1 )
|
||||
[63] if((byte) make_plasma_charset::i#2<(byte) 8) goto make_plasma_charset::@5
|
||||
to:make_plasma_charset::@4
|
||||
make_plasma_charset::@4: scope:[make_plasma_charset] from make_plasma_charset::@3
|
||||
[63] (byte~) make_plasma_charset::$12 ← (word) make_plasma_charset::c#2 & (byte) 7
|
||||
[64] if((byte~) make_plasma_charset::$12!=(byte) 0) goto make_plasma_charset::@11
|
||||
to:make_plasma_charset::@10
|
||||
make_plasma_charset::@10: scope:[make_plasma_charset] from make_plasma_charset::@4
|
||||
[65] phi()
|
||||
[66] call print_char
|
||||
to:make_plasma_charset::@11
|
||||
make_plasma_charset::@11: scope:[make_plasma_charset] from make_plasma_charset::@10 make_plasma_charset::@4
|
||||
[67] (byte*) print_char_cursor#30 ← phi( make_plasma_charset::@10/(byte*) print_char_cursor#1 make_plasma_charset::@4/(byte*) print_char_cursor#18 )
|
||||
[68] (word) make_plasma_charset::c#1 ← ++ (word) make_plasma_charset::c#2
|
||||
to:make_plasma_charset::@1
|
||||
make_plasma_charset::@5: scope:[make_plasma_charset] from make_plasma_charset::@3 make_plasma_charset::@8
|
||||
[69] (byte) make_plasma_charset::b#2 ← phi( make_plasma_charset::@3/(byte) 0 make_plasma_charset::@8/(byte) make_plasma_charset::b#6 )
|
||||
[69] (byte) make_plasma_charset::ii#2 ← phi( make_plasma_charset::@3/(byte) 0 make_plasma_charset::@8/(byte) make_plasma_charset::ii#1 )
|
||||
[70] if((byte) make_plasma_charset::ii#2<(byte) 8) goto make_plasma_charset::@6
|
||||
to:make_plasma_charset::@7
|
||||
make_plasma_charset::@7: scope:[make_plasma_charset] from make_plasma_charset::@5
|
||||
[71] (word~) make_plasma_charset::$10 ← (word) make_plasma_charset::c#2 << (byte) 3
|
||||
[72] (word~) make_plasma_charset::$11 ← (word~) make_plasma_charset::$10 + (byte) make_plasma_charset::i#2
|
||||
[73] (byte*~) make_plasma_charset::$16 ← (const nomodify byte*) CHARSET + (word~) make_plasma_charset::$11
|
||||
[74] *((byte*~) make_plasma_charset::$16) ← (byte) make_plasma_charset::b#2
|
||||
[75] (byte) make_plasma_charset::i#1 ← ++ (byte) make_plasma_charset::i#2
|
||||
to:make_plasma_charset::@3
|
||||
make_plasma_charset::@6: scope:[make_plasma_charset] from make_plasma_charset::@5
|
||||
[76] phi()
|
||||
[77] call sid_rnd
|
||||
[78] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
|
||||
to:make_plasma_charset::@13
|
||||
make_plasma_charset::@13: scope:[make_plasma_charset] from make_plasma_charset::@6
|
||||
[79] (byte~) make_plasma_charset::$6 ← (byte) sid_rnd::return#2
|
||||
[80] (byte~) make_plasma_charset::$7 ← (byte~) make_plasma_charset::$6 & (byte) $ff
|
||||
[81] if((byte~) make_plasma_charset::$7<=(byte) make_plasma_charset::s#0) goto make_plasma_charset::@8
|
||||
[64] (byte~) make_plasma_charset::$12 ← (word) make_plasma_charset::c#2 & (byte) 7
|
||||
[65] if((byte~) make_plasma_charset::$12!=(byte) 0) goto make_plasma_charset::@10
|
||||
to:make_plasma_charset::@9
|
||||
make_plasma_charset::@9: scope:[make_plasma_charset] from make_plasma_charset::@13
|
||||
[82] (byte) make_plasma_charset::b#1 ← (byte) make_plasma_charset::b#2 | *((const to_nomodify byte*) make_plasma_charset::bittab + (byte) make_plasma_charset::ii#2)
|
||||
make_plasma_charset::@9: scope:[make_plasma_charset] from make_plasma_charset::@4
|
||||
[66] phi()
|
||||
[67] call print_char
|
||||
to:make_plasma_charset::@10
|
||||
make_plasma_charset::@10: scope:[make_plasma_charset] from make_plasma_charset::@4 make_plasma_charset::@9
|
||||
[68] (byte*) print_char_cursor#30 ← phi( make_plasma_charset::@9/(byte*) print_char_cursor#1 make_plasma_charset::@4/(byte*) print_char_cursor#18 )
|
||||
[69] (word) make_plasma_charset::c#1 ← ++ (word) make_plasma_charset::c#2
|
||||
to:make_plasma_charset::@1
|
||||
make_plasma_charset::@5: scope:[make_plasma_charset] from make_plasma_charset::@3 make_plasma_charset::@7
|
||||
[70] (byte) make_plasma_charset::b#2 ← phi( make_plasma_charset::@3/(byte) 0 make_plasma_charset::@7/(byte) make_plasma_charset::b#6 )
|
||||
[70] (byte) make_plasma_charset::ii#2 ← phi( make_plasma_charset::@3/(byte) 0 make_plasma_charset::@7/(byte) make_plasma_charset::ii#1 )
|
||||
[71] if((byte) make_plasma_charset::ii#2<(byte) 8) goto make_plasma_charset::sid_rnd1
|
||||
to:make_plasma_charset::@6
|
||||
make_plasma_charset::@6: scope:[make_plasma_charset] from make_plasma_charset::@5
|
||||
[72] (word~) make_plasma_charset::$10 ← (word) make_plasma_charset::c#2 << (byte) 3
|
||||
[73] (word~) make_plasma_charset::$11 ← (word~) make_plasma_charset::$10 + (byte) make_plasma_charset::i#2
|
||||
[74] (byte*~) make_plasma_charset::$16 ← (const nomodify byte*) CHARSET + (word~) make_plasma_charset::$11
|
||||
[75] *((byte*~) make_plasma_charset::$16) ← (byte) make_plasma_charset::b#2
|
||||
[76] (byte) make_plasma_charset::i#1 ← ++ (byte) make_plasma_charset::i#2
|
||||
to:make_plasma_charset::@3
|
||||
make_plasma_charset::sid_rnd1: scope:[make_plasma_charset] from make_plasma_charset::@5
|
||||
[77] (byte) make_plasma_charset::sid_rnd1_return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:make_plasma_charset::@12
|
||||
make_plasma_charset::@12: scope:[make_plasma_charset] from make_plasma_charset::sid_rnd1
|
||||
[78] (byte~) make_plasma_charset::$7 ← (byte) make_plasma_charset::sid_rnd1_return#0 & (byte) $ff
|
||||
[79] if((byte~) make_plasma_charset::$7<=(byte) make_plasma_charset::s#0) goto make_plasma_charset::@7
|
||||
to:make_plasma_charset::@8
|
||||
make_plasma_charset::@8: scope:[make_plasma_charset] from make_plasma_charset::@13 make_plasma_charset::@9
|
||||
[83] (byte) make_plasma_charset::b#6 ← phi( make_plasma_charset::@9/(byte) make_plasma_charset::b#1 make_plasma_charset::@13/(byte) make_plasma_charset::b#2 )
|
||||
[84] (byte) make_plasma_charset::ii#1 ← ++ (byte) make_plasma_charset::ii#2
|
||||
make_plasma_charset::@8: scope:[make_plasma_charset] from make_plasma_charset::@12
|
||||
[80] (byte) make_plasma_charset::b#1 ← (byte) make_plasma_charset::b#2 | *((const to_nomodify byte*) make_plasma_charset::bittab + (byte) make_plasma_charset::ii#2)
|
||||
to:make_plasma_charset::@7
|
||||
make_plasma_charset::@7: scope:[make_plasma_charset] from make_plasma_charset::@12 make_plasma_charset::@8
|
||||
[81] (byte) make_plasma_charset::b#6 ← phi( make_plasma_charset::@12/(byte) make_plasma_charset::b#2 make_plasma_charset::@8/(byte) make_plasma_charset::b#1 )
|
||||
[82] (byte) make_plasma_charset::ii#1 ← ++ (byte) make_plasma_charset::ii#2
|
||||
to:make_plasma_charset::@5
|
||||
|
||||
(byte()) sid_rnd()
|
||||
sid_rnd: scope:[sid_rnd] from make_plasma_charset::@6
|
||||
[85] (byte) sid_rnd::return#0 ← *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
|
||||
to:sid_rnd::@return
|
||||
sid_rnd::@return: scope:[sid_rnd] from sid_rnd
|
||||
[86] return
|
||||
to:@return
|
||||
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
print_char: scope:[print_char] from make_plasma_charset::@10
|
||||
[87] *((byte*) print_char_cursor#18) ← (const byte) print_char::ch#0
|
||||
[88] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#18
|
||||
print_char: scope:[print_char] from make_plasma_charset::@9
|
||||
[83] *((byte*) print_char_cursor#18) ← (const byte) print_char::ch#0
|
||||
[84] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#18
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[89] return
|
||||
[85] return
|
||||
to:@return
|
||||
|
||||
(void()) print_cls()
|
||||
print_cls: scope:[print_cls] from make_plasma_charset::@12
|
||||
[90] phi()
|
||||
[91] call memset
|
||||
print_cls: scope:[print_cls] from make_plasma_charset::@11
|
||||
[86] phi()
|
||||
[87] call memset
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls
|
||||
[92] return
|
||||
to:@return
|
||||
|
||||
(void()) sid_rnd_init()
|
||||
sid_rnd_init: scope:[sid_rnd_init] from make_plasma_charset
|
||||
[93] *((word*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) ← (word) $ffff
|
||||
[94] *((byte*)(const nomodify struct MOS6581_SID*) SID+(const byte) OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) ← (const nomodify byte) SID_CONTROL_NOISE
|
||||
to:sid_rnd_init::@return
|
||||
sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
|
||||
[95] return
|
||||
[88] return
|
||||
to:@return
|
||||
|
||||
(void()) init_angle_screen((byte*) init_angle_screen::screen)
|
||||
init_angle_screen: scope:[init_angle_screen] from main::@5
|
||||
[96] (byte*) init_angle_screen::screen_topline#0 ← (byte*) init_angle_screen::screen#0 + (word)(number) $28*(number) $c
|
||||
[97] (byte*) init_angle_screen::screen_bottomline#0 ← (byte*) init_angle_screen::screen#0 + (word)(number) $28*(number) $c
|
||||
[89] (byte*) init_angle_screen::screen_topline#0 ← (byte*) init_angle_screen::screen#0 + (word)(number) $28*(number) $c
|
||||
[90] (byte*) init_angle_screen::screen_bottomline#0 ← (byte*) init_angle_screen::screen#0 + (word)(number) $28*(number) $c
|
||||
to:init_angle_screen::@1
|
||||
init_angle_screen::@1: scope:[init_angle_screen] from init_angle_screen init_angle_screen::@4
|
||||
[98] (byte*) init_angle_screen::screen_bottomline#6 ← phi( init_angle_screen/(byte*) init_angle_screen::screen_bottomline#0 init_angle_screen::@4/(byte*) init_angle_screen::screen_bottomline#1 )
|
||||
[98] (byte*) init_angle_screen::screen_topline#6 ← phi( init_angle_screen/(byte*) init_angle_screen::screen_topline#0 init_angle_screen::@4/(byte*) init_angle_screen::screen_topline#1 )
|
||||
[98] (byte) init_angle_screen::y#5 ← phi( init_angle_screen/(byte) 0 init_angle_screen::@4/(byte) init_angle_screen::y#1 )
|
||||
[91] (byte*) init_angle_screen::screen_bottomline#6 ← phi( init_angle_screen/(byte*) init_angle_screen::screen_bottomline#0 init_angle_screen::@4/(byte*) init_angle_screen::screen_bottomline#1 )
|
||||
[91] (byte*) init_angle_screen::screen_topline#6 ← phi( init_angle_screen/(byte*) init_angle_screen::screen_topline#0 init_angle_screen::@4/(byte*) init_angle_screen::screen_topline#1 )
|
||||
[91] (byte) init_angle_screen::y#5 ← phi( init_angle_screen/(byte) 0 init_angle_screen::@4/(byte) 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
|
||||
[99] (byte) init_angle_screen::xb#2 ← phi( init_angle_screen::@1/(byte) $27 init_angle_screen::@5/(byte) init_angle_screen::xb#1 )
|
||||
[99] (byte) init_angle_screen::x#2 ← phi( init_angle_screen::@1/(byte) 0 init_angle_screen::@5/(byte) init_angle_screen::x#1 )
|
||||
[100] if((byte) init_angle_screen::x#2<(byte) $13+(byte) 1) goto init_angle_screen::@3
|
||||
[92] (byte) init_angle_screen::xb#2 ← phi( init_angle_screen::@1/(byte) $27 init_angle_screen::@5/(byte) init_angle_screen::xb#1 )
|
||||
[92] (byte) init_angle_screen::x#2 ← phi( init_angle_screen::@1/(byte) 0 init_angle_screen::@5/(byte) init_angle_screen::x#1 )
|
||||
[93] if((byte) init_angle_screen::x#2<(byte) $13+(byte) 1) goto init_angle_screen::@3
|
||||
to:init_angle_screen::@4
|
||||
init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[101] (byte*) init_angle_screen::screen_topline#1 ← (byte*) init_angle_screen::screen_topline#6 - (byte) $28
|
||||
[102] (byte*) init_angle_screen::screen_bottomline#1 ← (byte*) init_angle_screen::screen_bottomline#6 + (byte) $28
|
||||
[103] (byte) init_angle_screen::y#1 ← ++ (byte) init_angle_screen::y#5
|
||||
[104] if((byte) init_angle_screen::y#1!=(byte) $d) goto init_angle_screen::@1
|
||||
[94] (byte*) init_angle_screen::screen_topline#1 ← (byte*) init_angle_screen::screen_topline#6 - (byte) $28
|
||||
[95] (byte*) init_angle_screen::screen_bottomline#1 ← (byte*) init_angle_screen::screen_bottomline#6 + (byte) $28
|
||||
[96] (byte) init_angle_screen::y#1 ← ++ (byte) init_angle_screen::y#5
|
||||
[97] if((byte) init_angle_screen::y#1!=(byte) $d) goto init_angle_screen::@1
|
||||
to:init_angle_screen::@return
|
||||
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
||||
[105] return
|
||||
[98] return
|
||||
to:@return
|
||||
init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[106] (byte~) init_angle_screen::$3 ← (byte) init_angle_screen::x#2 << (byte) 1
|
||||
[107] (byte~) init_angle_screen::$4 ← (byte) $27 - (byte~) init_angle_screen::$3
|
||||
[108] (word) init_angle_screen::xw#0 ← (byte~) init_angle_screen::$4 w= (byte) 0
|
||||
[109] (byte~) init_angle_screen::$5 ← (byte) init_angle_screen::y#5 << (byte) 1
|
||||
[110] (word) init_angle_screen::yw#0 ← (byte~) init_angle_screen::$5 w= (byte) 0
|
||||
[111] (signed word) atan2_16::x#0 ← (signed word)(word) init_angle_screen::xw#0
|
||||
[112] (signed word) atan2_16::y#0 ← (signed word)(word) init_angle_screen::yw#0
|
||||
[113] call atan2_16
|
||||
[114] (word) atan2_16::return#2 ← (word) atan2_16::return#0
|
||||
[99] (byte~) init_angle_screen::$3 ← (byte) init_angle_screen::x#2 << (byte) 1
|
||||
[100] (byte~) init_angle_screen::$4 ← (byte) $27 - (byte~) init_angle_screen::$3
|
||||
[101] (word) init_angle_screen::xw#0 ← (byte~) init_angle_screen::$4 w= (byte) 0
|
||||
[102] (byte~) init_angle_screen::$5 ← (byte) init_angle_screen::y#5 << (byte) 1
|
||||
[103] (word) init_angle_screen::yw#0 ← (byte~) init_angle_screen::$5 w= (byte) 0
|
||||
[104] (signed word) atan2_16::x#0 ← (signed word)(word) init_angle_screen::xw#0
|
||||
[105] (signed word) atan2_16::y#0 ← (signed word)(word) init_angle_screen::yw#0
|
||||
[106] call atan2_16
|
||||
[107] (word) atan2_16::return#2 ← (word) atan2_16::return#0
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[115] (word) init_angle_screen::angle_w#0 ← (word) atan2_16::return#2
|
||||
[116] (word~) init_angle_screen::$7 ← (word) init_angle_screen::angle_w#0 + (byte) $80
|
||||
[117] (byte) init_angle_screen::ang_w#0 ← > (word~) init_angle_screen::$7
|
||||
[118] *((byte*) init_angle_screen::screen_bottomline#6 + (byte) init_angle_screen::xb#2) ← (byte) init_angle_screen::ang_w#0
|
||||
[119] (byte~) init_angle_screen::$9 ← - (byte) init_angle_screen::ang_w#0
|
||||
[120] *((byte*) init_angle_screen::screen_topline#6 + (byte) init_angle_screen::xb#2) ← (byte~) init_angle_screen::$9
|
||||
[121] (byte~) init_angle_screen::$10 ← (byte) $80 + (byte) init_angle_screen::ang_w#0
|
||||
[122] *((byte*) init_angle_screen::screen_topline#6 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$10
|
||||
[123] (byte~) init_angle_screen::$11 ← (byte) $80 - (byte) init_angle_screen::ang_w#0
|
||||
[124] *((byte*) init_angle_screen::screen_bottomline#6 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$11
|
||||
[125] (byte) init_angle_screen::x#1 ← ++ (byte) init_angle_screen::x#2
|
||||
[126] (byte) init_angle_screen::xb#1 ← -- (byte) init_angle_screen::xb#2
|
||||
[108] (word) init_angle_screen::angle_w#0 ← (word) atan2_16::return#2
|
||||
[109] (word~) init_angle_screen::$7 ← (word) init_angle_screen::angle_w#0 + (byte) $80
|
||||
[110] (byte) init_angle_screen::ang_w#0 ← > (word~) init_angle_screen::$7
|
||||
[111] *((byte*) init_angle_screen::screen_bottomline#6 + (byte) init_angle_screen::xb#2) ← (byte) init_angle_screen::ang_w#0
|
||||
[112] (byte~) init_angle_screen::$9 ← - (byte) init_angle_screen::ang_w#0
|
||||
[113] *((byte*) init_angle_screen::screen_topline#6 + (byte) init_angle_screen::xb#2) ← (byte~) init_angle_screen::$9
|
||||
[114] (byte~) init_angle_screen::$10 ← (byte) $80 + (byte) init_angle_screen::ang_w#0
|
||||
[115] *((byte*) init_angle_screen::screen_topline#6 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$10
|
||||
[116] (byte~) init_angle_screen::$11 ← (byte) $80 - (byte) init_angle_screen::ang_w#0
|
||||
[117] *((byte*) init_angle_screen::screen_bottomline#6 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$11
|
||||
[118] (byte) init_angle_screen::x#1 ← ++ (byte) init_angle_screen::x#2
|
||||
[119] (byte) init_angle_screen::xb#1 ← -- (byte) init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
|
||||
(word()) atan2_16((signed word) atan2_16::x , (signed word) atan2_16::y)
|
||||
atan2_16: scope:[atan2_16] from init_angle_screen::@3
|
||||
[127] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
|
||||
[120] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
|
||||
to:atan2_16::@2
|
||||
atan2_16::@2: scope:[atan2_16] from atan2_16
|
||||
[128] (signed word~) atan2_16::$2 ← - (signed word) atan2_16::y#0
|
||||
[121] (signed word~) atan2_16::$2 ← - (signed word) atan2_16::y#0
|
||||
to:atan2_16::@3
|
||||
atan2_16::@3: scope:[atan2_16] from atan2_16::@1 atan2_16::@2
|
||||
[129] (signed word) atan2_16::yi#0 ← phi( atan2_16::@1/(signed word) atan2_16::yi#16 atan2_16::@2/(signed word~) atan2_16::$2 )
|
||||
[130] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
|
||||
[122] (signed word) atan2_16::yi#0 ← phi( atan2_16::@1/(signed word) atan2_16::yi#16 atan2_16::@2/(signed word~) atan2_16::$2 )
|
||||
[123] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
|
||||
to:atan2_16::@5
|
||||
atan2_16::@5: scope:[atan2_16] from atan2_16::@3
|
||||
[131] (signed word~) atan2_16::$7 ← - (signed word) atan2_16::x#0
|
||||
[124] (signed word~) atan2_16::$7 ← - (signed word) atan2_16::x#0
|
||||
to:atan2_16::@6
|
||||
atan2_16::@6: scope:[atan2_16] from atan2_16::@4 atan2_16::@5
|
||||
[132] (signed word) atan2_16::xi#0 ← phi( atan2_16::@4/(signed word) atan2_16::xi#13 atan2_16::@5/(signed word~) atan2_16::$7 )
|
||||
[125] (signed word) atan2_16::xi#0 ← phi( atan2_16::@4/(signed word) atan2_16::xi#13 atan2_16::@5/(signed word~) atan2_16::$7 )
|
||||
to:atan2_16::@10
|
||||
atan2_16::@10: scope:[atan2_16] from atan2_16::@19 atan2_16::@6
|
||||
[133] (word) atan2_16::angle#12 ← phi( atan2_16::@19/(word) atan2_16::angle#13 atan2_16::@6/(word) 0 )
|
||||
[133] (byte) atan2_16::i#2 ← phi( atan2_16::@19/(byte) atan2_16::i#1 atan2_16::@6/(byte) 0 )
|
||||
[133] (signed word) atan2_16::xi#3 ← phi( atan2_16::@19/(signed word) atan2_16::xi#8 atan2_16::@6/(signed word) atan2_16::xi#0 )
|
||||
[133] (signed word) atan2_16::yi#3 ← phi( atan2_16::@19/(signed word) atan2_16::yi#8 atan2_16::@6/(signed word) atan2_16::yi#0 )
|
||||
[134] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@11
|
||||
[126] (word) atan2_16::angle#12 ← phi( atan2_16::@19/(word) atan2_16::angle#13 atan2_16::@6/(word) 0 )
|
||||
[126] (byte) atan2_16::i#2 ← phi( atan2_16::@19/(byte) atan2_16::i#1 atan2_16::@6/(byte) 0 )
|
||||
[126] (signed word) atan2_16::xi#3 ← phi( atan2_16::@19/(signed word) atan2_16::xi#8 atan2_16::@6/(signed word) atan2_16::xi#0 )
|
||||
[126] (signed word) atan2_16::yi#3 ← phi( atan2_16::@19/(signed word) atan2_16::yi#8 atan2_16::@6/(signed word) atan2_16::yi#0 )
|
||||
[127] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@11
|
||||
to:atan2_16::@12
|
||||
atan2_16::@12: scope:[atan2_16] from atan2_16::@10 atan2_16::@19
|
||||
[135] (word) atan2_16::angle#6 ← phi( atan2_16::@10/(word) atan2_16::angle#12 atan2_16::@19/(word) atan2_16::angle#13 )
|
||||
[136] (word) atan2_16::angle#1 ← (word) atan2_16::angle#6 >> (byte) 1
|
||||
[137] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
|
||||
[128] (word) atan2_16::angle#6 ← phi( atan2_16::@10/(word) atan2_16::angle#12 atan2_16::@19/(word) atan2_16::angle#13 )
|
||||
[129] (word) atan2_16::angle#1 ← (word) atan2_16::angle#6 >> (byte) 1
|
||||
[130] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
|
||||
to:atan2_16::@21
|
||||
atan2_16::@21: scope:[atan2_16] from atan2_16::@12
|
||||
[138] (word) atan2_16::angle#4 ← (word) $8000 - (word) atan2_16::angle#1
|
||||
[131] (word) atan2_16::angle#4 ← (word) $8000 - (word) atan2_16::angle#1
|
||||
to:atan2_16::@7
|
||||
atan2_16::@7: scope:[atan2_16] from atan2_16::@12 atan2_16::@21
|
||||
[139] (word) atan2_16::angle#11 ← phi( atan2_16::@12/(word) atan2_16::angle#1 atan2_16::@21/(word) atan2_16::angle#4 )
|
||||
[140] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
|
||||
[132] (word) atan2_16::angle#11 ← phi( atan2_16::@12/(word) atan2_16::angle#1 atan2_16::@21/(word) atan2_16::angle#4 )
|
||||
[133] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
|
||||
to:atan2_16::@9
|
||||
atan2_16::@9: scope:[atan2_16] from atan2_16::@7
|
||||
[141] (word) atan2_16::angle#5 ← - (word) atan2_16::angle#11
|
||||
[134] (word) atan2_16::angle#5 ← - (word) atan2_16::angle#11
|
||||
to:atan2_16::@8
|
||||
atan2_16::@8: scope:[atan2_16] from atan2_16::@7 atan2_16::@9
|
||||
[142] (word) atan2_16::return#0 ← phi( atan2_16::@7/(word) atan2_16::angle#11 atan2_16::@9/(word) atan2_16::angle#5 )
|
||||
[135] (word) atan2_16::return#0 ← phi( atan2_16::@7/(word) atan2_16::angle#11 atan2_16::@9/(word) atan2_16::angle#5 )
|
||||
to:atan2_16::@return
|
||||
atan2_16::@return: scope:[atan2_16] from atan2_16::@8
|
||||
[143] return
|
||||
[136] return
|
||||
to:@return
|
||||
atan2_16::@11: scope:[atan2_16] from atan2_16::@10
|
||||
[144] (byte) atan2_16::shift#5 ← (byte) atan2_16::i#2
|
||||
[145] (signed word) atan2_16::xd#10 ← (signed word) atan2_16::xi#3
|
||||
[146] (signed word) atan2_16::yd#10 ← (signed word) atan2_16::yi#3
|
||||
[137] (byte) atan2_16::shift#5 ← (byte) atan2_16::i#2
|
||||
[138] (signed word) atan2_16::xd#10 ← (signed word) atan2_16::xi#3
|
||||
[139] (signed word) atan2_16::yd#10 ← (signed word) atan2_16::yi#3
|
||||
to:atan2_16::@13
|
||||
atan2_16::@13: scope:[atan2_16] from atan2_16::@11 atan2_16::@14
|
||||
[147] (signed word) atan2_16::yd#3 ← phi( atan2_16::@11/(signed word) atan2_16::yd#10 atan2_16::@14/(signed word) atan2_16::yd#1 )
|
||||
[147] (signed word) atan2_16::xd#3 ← phi( atan2_16::@11/(signed word) atan2_16::xd#10 atan2_16::@14/(signed word) atan2_16::xd#1 )
|
||||
[147] (byte) atan2_16::shift#2 ← phi( atan2_16::@11/(byte) atan2_16::shift#5 atan2_16::@14/(byte) atan2_16::shift#1 )
|
||||
[148] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@14
|
||||
[140] (signed word) atan2_16::yd#3 ← phi( atan2_16::@11/(signed word) atan2_16::yd#10 atan2_16::@14/(signed word) atan2_16::yd#1 )
|
||||
[140] (signed word) atan2_16::xd#3 ← phi( atan2_16::@11/(signed word) atan2_16::xd#10 atan2_16::@14/(signed word) atan2_16::xd#1 )
|
||||
[140] (byte) atan2_16::shift#2 ← phi( atan2_16::@11/(byte) atan2_16::shift#5 atan2_16::@14/(byte) atan2_16::shift#1 )
|
||||
[141] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@14
|
||||
to:atan2_16::@15
|
||||
atan2_16::@15: scope:[atan2_16] from atan2_16::@13
|
||||
[149] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@17
|
||||
[142] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@17
|
||||
to:atan2_16::@16
|
||||
atan2_16::@16: scope:[atan2_16] from atan2_16::@15
|
||||
[150] (signed word) atan2_16::xd#2 ← (signed word) atan2_16::xd#3 >> (signed byte) 1
|
||||
[151] (signed word) atan2_16::yd#2 ← (signed word) atan2_16::yd#3 >> (signed byte) 1
|
||||
[143] (signed word) atan2_16::xd#2 ← (signed word) atan2_16::xd#3 >> (signed byte) 1
|
||||
[144] (signed word) atan2_16::yd#2 ← (signed word) atan2_16::yd#3 >> (signed byte) 1
|
||||
to:atan2_16::@17
|
||||
atan2_16::@17: scope:[atan2_16] from atan2_16::@15 atan2_16::@16
|
||||
[152] (signed word) atan2_16::xd#5 ← phi( atan2_16::@15/(signed word) atan2_16::xd#3 atan2_16::@16/(signed word) atan2_16::xd#2 )
|
||||
[152] (signed word) atan2_16::yd#5 ← phi( atan2_16::@15/(signed word) atan2_16::yd#3 atan2_16::@16/(signed word) atan2_16::yd#2 )
|
||||
[153] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@18
|
||||
[145] (signed word) atan2_16::xd#5 ← phi( atan2_16::@15/(signed word) atan2_16::xd#3 atan2_16::@16/(signed word) atan2_16::xd#2 )
|
||||
[145] (signed word) atan2_16::yd#5 ← phi( atan2_16::@15/(signed word) atan2_16::yd#3 atan2_16::@16/(signed word) atan2_16::yd#2 )
|
||||
[146] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@18
|
||||
to:atan2_16::@20
|
||||
atan2_16::@20: scope:[atan2_16] from atan2_16::@17
|
||||
[154] (signed word) atan2_16::xi#2 ← (signed word) atan2_16::xi#3 - (signed word) atan2_16::yd#5
|
||||
[155] (signed word) atan2_16::yi#2 ← (signed word) atan2_16::yi#3 + (signed word) atan2_16::xd#5
|
||||
[156] (byte~) atan2_16::$23 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[157] (word) atan2_16::angle#3 ← (word) atan2_16::angle#12 - *((const word*) CORDIC_ATAN2_ANGLES_16 + (byte~) atan2_16::$23)
|
||||
[147] (signed word) atan2_16::xi#2 ← (signed word) atan2_16::xi#3 - (signed word) atan2_16::yd#5
|
||||
[148] (signed word) atan2_16::yi#2 ← (signed word) atan2_16::yi#3 + (signed word) atan2_16::xd#5
|
||||
[149] (byte~) atan2_16::$23 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[150] (word) atan2_16::angle#3 ← (word) atan2_16::angle#12 - *((const word*) CORDIC_ATAN2_ANGLES_16 + (byte~) atan2_16::$23)
|
||||
to:atan2_16::@19
|
||||
atan2_16::@19: scope:[atan2_16] from atan2_16::@18 atan2_16::@20
|
||||
[158] (signed word) atan2_16::xi#8 ← phi( atan2_16::@18/(signed word) atan2_16::xi#1 atan2_16::@20/(signed word) atan2_16::xi#2 )
|
||||
[158] (word) atan2_16::angle#13 ← phi( atan2_16::@18/(word) atan2_16::angle#2 atan2_16::@20/(word) atan2_16::angle#3 )
|
||||
[158] (signed word) atan2_16::yi#8 ← phi( atan2_16::@18/(signed word) atan2_16::yi#1 atan2_16::@20/(signed word) atan2_16::yi#2 )
|
||||
[159] (byte) atan2_16::i#1 ← ++ (byte) atan2_16::i#2
|
||||
[160] if((byte) atan2_16::i#1==(const nomodify byte) CORDIC_ITERATIONS_16-(byte) 1+(byte) 1) goto atan2_16::@12
|
||||
[151] (signed word) atan2_16::xi#8 ← phi( atan2_16::@18/(signed word) atan2_16::xi#1 atan2_16::@20/(signed word) atan2_16::xi#2 )
|
||||
[151] (word) atan2_16::angle#13 ← phi( atan2_16::@18/(word) atan2_16::angle#2 atan2_16::@20/(word) atan2_16::angle#3 )
|
||||
[151] (signed word) atan2_16::yi#8 ← phi( atan2_16::@18/(signed word) atan2_16::yi#1 atan2_16::@20/(signed word) atan2_16::yi#2 )
|
||||
[152] (byte) atan2_16::i#1 ← ++ (byte) atan2_16::i#2
|
||||
[153] if((byte) atan2_16::i#1==(const nomodify byte) CORDIC_ITERATIONS_16-(byte) 1+(byte) 1) goto atan2_16::@12
|
||||
to:atan2_16::@10
|
||||
atan2_16::@18: scope:[atan2_16] from atan2_16::@17
|
||||
[161] (signed word) atan2_16::xi#1 ← (signed word) atan2_16::xi#3 + (signed word) atan2_16::yd#5
|
||||
[162] (signed word) atan2_16::yi#1 ← (signed word) atan2_16::yi#3 - (signed word) atan2_16::xd#5
|
||||
[163] (byte~) atan2_16::$22 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[164] (word) atan2_16::angle#2 ← (word) atan2_16::angle#12 + *((const word*) CORDIC_ATAN2_ANGLES_16 + (byte~) atan2_16::$22)
|
||||
[154] (signed word) atan2_16::xi#1 ← (signed word) atan2_16::xi#3 + (signed word) atan2_16::yd#5
|
||||
[155] (signed word) atan2_16::yi#1 ← (signed word) atan2_16::yi#3 - (signed word) atan2_16::xd#5
|
||||
[156] (byte~) atan2_16::$22 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[157] (word) atan2_16::angle#2 ← (word) atan2_16::angle#12 + *((const word*) CORDIC_ATAN2_ANGLES_16 + (byte~) atan2_16::$22)
|
||||
to:atan2_16::@19
|
||||
atan2_16::@14: scope:[atan2_16] from atan2_16::@13
|
||||
[165] (signed word) atan2_16::xd#1 ← (signed word) atan2_16::xd#3 >> (signed byte) 2
|
||||
[166] (signed word) atan2_16::yd#1 ← (signed word) atan2_16::yd#3 >> (signed byte) 2
|
||||
[167] (byte) atan2_16::shift#1 ← (byte) atan2_16::shift#2 - (byte) 2
|
||||
[158] (signed word) atan2_16::xd#1 ← (signed word) atan2_16::xd#3 >> (signed byte) 2
|
||||
[159] (signed word) atan2_16::yd#1 ← (signed word) atan2_16::yd#3 >> (signed byte) 2
|
||||
[160] (byte) atan2_16::shift#1 ← (byte) atan2_16::shift#2 - (byte) 2
|
||||
to:atan2_16::@13
|
||||
atan2_16::@4: scope:[atan2_16] from atan2_16::@3
|
||||
[168] (signed word) atan2_16::xi#13 ← (signed word) atan2_16::x#0
|
||||
[161] (signed word) atan2_16::xi#13 ← (signed word) atan2_16::x#0
|
||||
to:atan2_16::@6
|
||||
atan2_16::@1: scope:[atan2_16] from atan2_16
|
||||
[169] (signed word) atan2_16::yi#16 ← (signed word) atan2_16::y#0
|
||||
[162] (signed word) atan2_16::yi#16 ← (signed word) atan2_16::y#0
|
||||
to:atan2_16::@3
|
||||
|
||||
(void()) init_dist_screen((byte*) init_dist_screen::screen)
|
||||
init_dist_screen: scope:[init_dist_screen] from main
|
||||
[170] phi()
|
||||
[171] call init_squares
|
||||
[163] phi()
|
||||
[164] call init_squares
|
||||
to:init_dist_screen::@11
|
||||
init_dist_screen::@11: scope:[init_dist_screen] from init_dist_screen
|
||||
[172] (byte*) init_dist_screen::screen_bottomline#0 ← (byte*) init_dist_screen::screen#0 + (word)(number) $28*(number) $18
|
||||
[165] (byte*) init_dist_screen::screen_bottomline#0 ← (byte*) init_dist_screen::screen#0 + (word)(number) $28*(number) $18
|
||||
to:init_dist_screen::@1
|
||||
init_dist_screen::@1: scope:[init_dist_screen] from init_dist_screen::@11 init_dist_screen::@7
|
||||
[173] (byte*) init_dist_screen::screen_bottomline#11 ← phi( init_dist_screen::@11/(byte*) init_dist_screen::screen_bottomline#0 init_dist_screen::@7/(byte*) init_dist_screen::screen_bottomline#1 )
|
||||
[173] (byte*) init_dist_screen::screen_topline#11 ← phi( init_dist_screen::@11/(byte*) init_dist_screen::screen#0 init_dist_screen::@7/(byte*) init_dist_screen::screen_topline#1 )
|
||||
[173] (byte) init_dist_screen::y#10 ← phi( init_dist_screen::@11/(byte) 0 init_dist_screen::@7/(byte) init_dist_screen::y#1 )
|
||||
[174] (byte) init_dist_screen::y2#0 ← (byte) init_dist_screen::y#10 << (byte) 1
|
||||
[175] if((byte) init_dist_screen::y2#0>=(byte) $18) goto init_dist_screen::@2
|
||||
[166] (byte*) init_dist_screen::screen_bottomline#11 ← phi( init_dist_screen::@11/(byte*) init_dist_screen::screen_bottomline#0 init_dist_screen::@7/(byte*) init_dist_screen::screen_bottomline#1 )
|
||||
[166] (byte*) init_dist_screen::screen_topline#11 ← phi( init_dist_screen::@11/(byte*) init_dist_screen::screen#0 init_dist_screen::@7/(byte*) init_dist_screen::screen_topline#1 )
|
||||
[166] (byte) init_dist_screen::y#10 ← phi( init_dist_screen::@11/(byte) 0 init_dist_screen::@7/(byte) init_dist_screen::y#1 )
|
||||
[167] (byte) init_dist_screen::y2#0 ← (byte) init_dist_screen::y#10 << (byte) 1
|
||||
[168] if((byte) init_dist_screen::y2#0>=(byte) $18) goto init_dist_screen::@2
|
||||
to:init_dist_screen::@3
|
||||
init_dist_screen::@3: scope:[init_dist_screen] from init_dist_screen::@1
|
||||
[176] (byte~) init_dist_screen::$5 ← (byte) $18 - (byte) init_dist_screen::y2#0
|
||||
[169] (byte~) init_dist_screen::$5 ← (byte) $18 - (byte) init_dist_screen::y2#0
|
||||
to:init_dist_screen::@4
|
||||
init_dist_screen::@4: scope:[init_dist_screen] from init_dist_screen::@2 init_dist_screen::@3
|
||||
[177] (byte) init_dist_screen::yd#0 ← phi( init_dist_screen::@2/(byte~) init_dist_screen::$7 init_dist_screen::@3/(byte~) init_dist_screen::$5 )
|
||||
[178] (byte) sqr::val#0 ← (byte) init_dist_screen::yd#0
|
||||
[179] call sqr
|
||||
[180] (word) sqr::return#2 ← (word) sqr::return#0
|
||||
[170] (byte) init_dist_screen::yd#0 ← phi( init_dist_screen::@2/(byte~) init_dist_screen::$7 init_dist_screen::@3/(byte~) init_dist_screen::$5 )
|
||||
[171] (byte) sqr::val#0 ← (byte) init_dist_screen::yd#0
|
||||
[172] call sqr
|
||||
[173] (word) sqr::return#2 ← (word) sqr::return#0
|
||||
to:init_dist_screen::@12
|
||||
init_dist_screen::@12: scope:[init_dist_screen] from init_dist_screen::@4
|
||||
[181] (word) init_dist_screen::yds#0 ← (word) sqr::return#2
|
||||
[174] (word) init_dist_screen::yds#0 ← (word) sqr::return#2
|
||||
to:init_dist_screen::@5
|
||||
init_dist_screen::@5: scope:[init_dist_screen] from init_dist_screen::@12 init_dist_screen::@14
|
||||
[182] (byte) init_dist_screen::xb#2 ← phi( init_dist_screen::@12/(byte) $27 init_dist_screen::@14/(byte) init_dist_screen::xb#1 )
|
||||
[182] (byte) init_dist_screen::x#2 ← phi( init_dist_screen::@12/(byte) 0 init_dist_screen::@14/(byte) init_dist_screen::x#1 )
|
||||
[183] if((byte) init_dist_screen::x#2<(byte) $13+(byte) 1) goto init_dist_screen::@6
|
||||
[175] (byte) init_dist_screen::xb#2 ← phi( init_dist_screen::@12/(byte) $27 init_dist_screen::@14/(byte) init_dist_screen::xb#1 )
|
||||
[175] (byte) init_dist_screen::x#2 ← phi( init_dist_screen::@12/(byte) 0 init_dist_screen::@14/(byte) init_dist_screen::x#1 )
|
||||
[176] if((byte) init_dist_screen::x#2<(byte) $13+(byte) 1) goto init_dist_screen::@6
|
||||
to:init_dist_screen::@7
|
||||
init_dist_screen::@7: scope:[init_dist_screen] from init_dist_screen::@5
|
||||
[184] (byte*) init_dist_screen::screen_topline#1 ← (byte*) init_dist_screen::screen_topline#11 + (byte) $28
|
||||
[185] (byte*) init_dist_screen::screen_bottomline#1 ← (byte*) init_dist_screen::screen_bottomline#11 - (byte) $28
|
||||
[186] (byte) init_dist_screen::y#1 ← ++ (byte) init_dist_screen::y#10
|
||||
[187] if((byte) init_dist_screen::y#1!=(byte) $d) goto init_dist_screen::@1
|
||||
[177] (byte*) init_dist_screen::screen_topline#1 ← (byte*) init_dist_screen::screen_topline#11 + (byte) $28
|
||||
[178] (byte*) init_dist_screen::screen_bottomline#1 ← (byte*) init_dist_screen::screen_bottomline#11 - (byte) $28
|
||||
[179] (byte) init_dist_screen::y#1 ← ++ (byte) init_dist_screen::y#10
|
||||
[180] if((byte) init_dist_screen::y#1!=(byte) $d) goto init_dist_screen::@1
|
||||
to:init_dist_screen::@return
|
||||
init_dist_screen::@return: scope:[init_dist_screen] from init_dist_screen::@7
|
||||
[188] return
|
||||
[181] return
|
||||
to:@return
|
||||
init_dist_screen::@6: scope:[init_dist_screen] from init_dist_screen::@5
|
||||
[189] (byte) init_dist_screen::x2#0 ← (byte) init_dist_screen::x#2 << (byte) 1
|
||||
[190] if((byte) init_dist_screen::x2#0>=(byte) $27) goto init_dist_screen::@8
|
||||
[182] (byte) init_dist_screen::x2#0 ← (byte) init_dist_screen::x#2 << (byte) 1
|
||||
[183] if((byte) init_dist_screen::x2#0>=(byte) $27) goto init_dist_screen::@8
|
||||
to:init_dist_screen::@9
|
||||
init_dist_screen::@9: scope:[init_dist_screen] from init_dist_screen::@6
|
||||
[191] (byte~) init_dist_screen::$14 ← (byte) $27 - (byte) init_dist_screen::x2#0
|
||||
[184] (byte~) init_dist_screen::$14 ← (byte) $27 - (byte) init_dist_screen::x2#0
|
||||
to:init_dist_screen::@10
|
||||
init_dist_screen::@10: scope:[init_dist_screen] from init_dist_screen::@8 init_dist_screen::@9
|
||||
[192] (byte) init_dist_screen::xd#0 ← phi( init_dist_screen::@8/(byte~) init_dist_screen::$16 init_dist_screen::@9/(byte~) init_dist_screen::$14 )
|
||||
[193] (byte) sqr::val#1 ← (byte) init_dist_screen::xd#0
|
||||
[194] call sqr
|
||||
[195] (word) sqr::return#3 ← (word) sqr::return#0
|
||||
[185] (byte) init_dist_screen::xd#0 ← phi( init_dist_screen::@8/(byte~) init_dist_screen::$16 init_dist_screen::@9/(byte~) init_dist_screen::$14 )
|
||||
[186] (byte) sqr::val#1 ← (byte) init_dist_screen::xd#0
|
||||
[187] call sqr
|
||||
[188] (word) sqr::return#3 ← (word) sqr::return#0
|
||||
to:init_dist_screen::@13
|
||||
init_dist_screen::@13: scope:[init_dist_screen] from init_dist_screen::@10
|
||||
[196] (word) init_dist_screen::xds#0 ← (word) sqr::return#3
|
||||
[197] (word) init_dist_screen::ds#0 ← (word) init_dist_screen::xds#0 + (word) init_dist_screen::yds#0
|
||||
[198] (word) sqrt::val#0 ← (word) init_dist_screen::ds#0
|
||||
[199] call sqrt
|
||||
[200] (byte) sqrt::return#2 ← (byte) sqrt::return#0
|
||||
[189] (word) init_dist_screen::xds#0 ← (word) sqr::return#3
|
||||
[190] (word) init_dist_screen::ds#0 ← (word) init_dist_screen::xds#0 + (word) init_dist_screen::yds#0
|
||||
[191] (word) sqrt::val#0 ← (word) init_dist_screen::ds#0
|
||||
[192] call sqrt
|
||||
[193] (byte) sqrt::return#2 ← (byte) sqrt::return#0
|
||||
to:init_dist_screen::@14
|
||||
init_dist_screen::@14: scope:[init_dist_screen] from init_dist_screen::@13
|
||||
[201] (byte) init_dist_screen::d#0 ← (byte) sqrt::return#2
|
||||
[202] *((byte*) init_dist_screen::screen_topline#11 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[203] *((byte*) init_dist_screen::screen_bottomline#11 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[204] *((byte*) init_dist_screen::screen_topline#11 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[205] *((byte*) init_dist_screen::screen_bottomline#11 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[206] (byte) init_dist_screen::x#1 ← ++ (byte) init_dist_screen::x#2
|
||||
[207] (byte) init_dist_screen::xb#1 ← -- (byte) init_dist_screen::xb#2
|
||||
[194] (byte) init_dist_screen::d#0 ← (byte) sqrt::return#2
|
||||
[195] *((byte*) init_dist_screen::screen_topline#11 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[196] *((byte*) init_dist_screen::screen_bottomline#11 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[197] *((byte*) init_dist_screen::screen_topline#11 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[198] *((byte*) init_dist_screen::screen_bottomline#11 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[199] (byte) init_dist_screen::x#1 ← ++ (byte) init_dist_screen::x#2
|
||||
[200] (byte) init_dist_screen::xb#1 ← -- (byte) init_dist_screen::xb#2
|
||||
to:init_dist_screen::@5
|
||||
init_dist_screen::@8: scope:[init_dist_screen] from init_dist_screen::@6
|
||||
[208] (byte~) init_dist_screen::$16 ← (byte) init_dist_screen::x2#0 - (byte) $27
|
||||
[201] (byte~) init_dist_screen::$16 ← (byte) init_dist_screen::x2#0 - (byte) $27
|
||||
to:init_dist_screen::@10
|
||||
init_dist_screen::@2: scope:[init_dist_screen] from init_dist_screen::@1
|
||||
[209] (byte~) init_dist_screen::$7 ← (byte) init_dist_screen::y2#0 - (byte) $18
|
||||
[202] (byte~) init_dist_screen::$7 ← (byte) init_dist_screen::y2#0 - (byte) $18
|
||||
to:init_dist_screen::@4
|
||||
|
||||
(byte()) sqrt((word) sqrt::val)
|
||||
sqrt: scope:[sqrt] from init_dist_screen::@13
|
||||
[210] (word) bsearch16u::key#0 ← (word) sqrt::val#0
|
||||
[211] (word*) bsearch16u::items#1 ← (word*)(void*) SQUARES#1
|
||||
[212] call bsearch16u
|
||||
[213] (word*) bsearch16u::return#3 ← (word*) bsearch16u::return#1
|
||||
[203] (word) bsearch16u::key#0 ← (word) sqrt::val#0
|
||||
[204] (word*) bsearch16u::items#1 ← (word*)(void*) SQUARES#1
|
||||
[205] call bsearch16u
|
||||
[206] (word*) bsearch16u::return#3 ← (word*) bsearch16u::return#1
|
||||
to:sqrt::@1
|
||||
sqrt::@1: scope:[sqrt] from sqrt
|
||||
[214] (word*) sqrt::found#0 ← (word*) bsearch16u::return#3
|
||||
[215] (word~) sqrt::$2 ← (word*) sqrt::found#0 - (word*)(void*) SQUARES#1
|
||||
[216] (word~) sqrt::$1 ← (word~) sqrt::$2 >> (byte) 1
|
||||
[217] (byte) sqrt::return#0 ← (byte)(word~) sqrt::$1
|
||||
[207] (word*) sqrt::found#0 ← (word*) bsearch16u::return#3
|
||||
[208] (word~) sqrt::$2 ← (word*) sqrt::found#0 - (word*)(void*) SQUARES#1
|
||||
[209] (word~) sqrt::$1 ← (word~) sqrt::$2 >> (byte) 1
|
||||
[210] (byte) sqrt::return#0 ← (byte)(word~) sqrt::$1
|
||||
to:sqrt::@return
|
||||
sqrt::@return: scope:[sqrt] from sqrt::@1
|
||||
[218] return
|
||||
[211] return
|
||||
to:@return
|
||||
|
||||
(word*()) bsearch16u((word) bsearch16u::key , (word*) bsearch16u::items , (byte) bsearch16u::num)
|
||||
bsearch16u: scope:[bsearch16u] from sqrt
|
||||
[219] phi()
|
||||
[212] phi()
|
||||
to:bsearch16u::@3
|
||||
bsearch16u::@3: scope:[bsearch16u] from bsearch16u bsearch16u::@7
|
||||
[220] (word*) bsearch16u::items#2 ← phi( bsearch16u/(word*) bsearch16u::items#1 bsearch16u::@7/(word*) bsearch16u::items#8 )
|
||||
[220] (byte) bsearch16u::num#3 ← phi( bsearch16u/(const byte) NUM_SQUARES#3 bsearch16u::@7/(byte) bsearch16u::num#0 )
|
||||
[221] if((byte) bsearch16u::num#3>(byte) 0) goto bsearch16u::@4
|
||||
[213] (word*) bsearch16u::items#2 ← phi( bsearch16u/(word*) bsearch16u::items#1 bsearch16u::@7/(word*) bsearch16u::items#8 )
|
||||
[213] (byte) bsearch16u::num#3 ← phi( bsearch16u/(const byte) NUM_SQUARES#3 bsearch16u::@7/(byte) bsearch16u::num#0 )
|
||||
[214] if((byte) bsearch16u::num#3>(byte) 0) goto bsearch16u::@4
|
||||
to:bsearch16u::@5
|
||||
bsearch16u::@5: scope:[bsearch16u] from bsearch16u::@3
|
||||
[222] if(*((word*) bsearch16u::items#2)<=(word) bsearch16u::key#0) goto bsearch16u::@2
|
||||
[215] if(*((word*) bsearch16u::items#2)<=(word) bsearch16u::key#0) goto bsearch16u::@2
|
||||
to:bsearch16u::@1
|
||||
bsearch16u::@1: scope:[bsearch16u] from bsearch16u::@5
|
||||
[223] (word*~) bsearch16u::$2 ← (word*) bsearch16u::items#2 - (byte) 1*(const byte) SIZEOF_WORD
|
||||
[216] (word*~) bsearch16u::$2 ← (word*) bsearch16u::items#2 - (byte) 1*(const byte) SIZEOF_WORD
|
||||
to:bsearch16u::@2
|
||||
bsearch16u::@2: scope:[bsearch16u] from bsearch16u::@1 bsearch16u::@5
|
||||
[224] (word*) bsearch16u::return#2 ← phi( bsearch16u::@5/(word*) bsearch16u::items#2 bsearch16u::@1/(word*~) bsearch16u::$2 )
|
||||
[217] (word*) bsearch16u::return#2 ← phi( bsearch16u::@5/(word*) bsearch16u::items#2 bsearch16u::@1/(word*~) bsearch16u::$2 )
|
||||
to:bsearch16u::@return
|
||||
bsearch16u::@return: scope:[bsearch16u] from bsearch16u::@2 bsearch16u::@8
|
||||
[225] (word*) bsearch16u::return#1 ← phi( bsearch16u::@2/(word*) bsearch16u::return#2 bsearch16u::@8/(word*) bsearch16u::return#7 )
|
||||
[226] return
|
||||
[218] (word*) bsearch16u::return#1 ← phi( bsearch16u::@2/(word*) bsearch16u::return#2 bsearch16u::@8/(word*) bsearch16u::return#7 )
|
||||
[219] return
|
||||
to:@return
|
||||
bsearch16u::@4: scope:[bsearch16u] from bsearch16u::@3
|
||||
[227] (byte~) bsearch16u::$6 ← (byte) bsearch16u::num#3 >> (byte) 1
|
||||
[228] (byte~) bsearch16u::$14 ← (byte~) bsearch16u::$6 << (byte) 1
|
||||
[229] (word*) bsearch16u::pivot#0 ← (word*) bsearch16u::items#2 + (byte~) bsearch16u::$14
|
||||
[230] (signed word) bsearch16u::result#0 ← (signed word)(word) bsearch16u::key#0 - (signed word)*((word*) bsearch16u::pivot#0)
|
||||
[231] if((signed word) bsearch16u::result#0!=(signed byte) 0) goto bsearch16u::@6
|
||||
[220] (byte~) bsearch16u::$6 ← (byte) bsearch16u::num#3 >> (byte) 1
|
||||
[221] (byte~) bsearch16u::$14 ← (byte~) bsearch16u::$6 << (byte) 1
|
||||
[222] (word*) bsearch16u::pivot#0 ← (word*) bsearch16u::items#2 + (byte~) bsearch16u::$14
|
||||
[223] (signed word) bsearch16u::result#0 ← (signed word)(word) bsearch16u::key#0 - (signed word)*((word*) bsearch16u::pivot#0)
|
||||
[224] if((signed word) bsearch16u::result#0!=(signed byte) 0) goto bsearch16u::@6
|
||||
to:bsearch16u::@8
|
||||
bsearch16u::@8: scope:[bsearch16u] from bsearch16u::@4
|
||||
[232] (word*) bsearch16u::return#7 ← (word*) bsearch16u::pivot#0
|
||||
[225] (word*) bsearch16u::return#7 ← (word*) bsearch16u::pivot#0
|
||||
to:bsearch16u::@return
|
||||
bsearch16u::@6: scope:[bsearch16u] from bsearch16u::@4
|
||||
[233] if((signed word) bsearch16u::result#0<=(signed byte) 0) goto bsearch16u::@7
|
||||
[226] if((signed word) bsearch16u::result#0<=(signed byte) 0) goto bsearch16u::@7
|
||||
to:bsearch16u::@9
|
||||
bsearch16u::@9: scope:[bsearch16u] from bsearch16u::@6
|
||||
[234] (word*) bsearch16u::items#0 ← (word*) bsearch16u::pivot#0 + (byte) 1*(const byte) SIZEOF_WORD
|
||||
[235] (byte) bsearch16u::num#1 ← -- (byte) bsearch16u::num#3
|
||||
[227] (word*) bsearch16u::items#0 ← (word*) bsearch16u::pivot#0 + (byte) 1*(const byte) SIZEOF_WORD
|
||||
[228] (byte) bsearch16u::num#1 ← -- (byte) bsearch16u::num#3
|
||||
to:bsearch16u::@7
|
||||
bsearch16u::@7: scope:[bsearch16u] from bsearch16u::@6 bsearch16u::@9
|
||||
[236] (word*) bsearch16u::items#8 ← phi( bsearch16u::@9/(word*) bsearch16u::items#0 bsearch16u::@6/(word*) bsearch16u::items#2 )
|
||||
[236] (byte) bsearch16u::num#5 ← phi( bsearch16u::@9/(byte) bsearch16u::num#1 bsearch16u::@6/(byte) bsearch16u::num#3 )
|
||||
[237] (byte) bsearch16u::num#0 ← (byte) bsearch16u::num#5 >> (byte) 1
|
||||
[229] (word*) bsearch16u::items#8 ← phi( bsearch16u::@9/(word*) bsearch16u::items#0 bsearch16u::@6/(word*) bsearch16u::items#2 )
|
||||
[229] (byte) bsearch16u::num#5 ← phi( bsearch16u::@9/(byte) bsearch16u::num#1 bsearch16u::@6/(byte) bsearch16u::num#3 )
|
||||
[230] (byte) bsearch16u::num#0 ← (byte) bsearch16u::num#5 >> (byte) 1
|
||||
to:bsearch16u::@3
|
||||
|
||||
(word()) sqr((byte) sqr::val)
|
||||
sqr: scope:[sqr] from init_dist_screen::@10 init_dist_screen::@4
|
||||
[238] (byte) sqr::val#2 ← phi( init_dist_screen::@10/(byte) sqr::val#1 init_dist_screen::@4/(byte) sqr::val#0 )
|
||||
[239] (byte~) sqr::$0 ← (byte) sqr::val#2 << (byte) 1
|
||||
[240] (word) sqr::return#0 ← *((word*)(void*) SQUARES#1 + (byte~) sqr::$0)
|
||||
[231] (byte) sqr::val#2 ← phi( init_dist_screen::@10/(byte) sqr::val#1 init_dist_screen::@4/(byte) sqr::val#0 )
|
||||
[232] (byte~) sqr::$0 ← (byte) sqr::val#2 << (byte) 1
|
||||
[233] (word) sqr::return#0 ← *((word*)(void*) SQUARES#1 + (byte~) sqr::$0)
|
||||
to:sqr::@return
|
||||
sqr::@return: scope:[sqr] from sqr
|
||||
[241] return
|
||||
[234] return
|
||||
to:@return
|
||||
|
||||
(void()) init_squares()
|
||||
init_squares: scope:[init_squares] from init_dist_screen
|
||||
[242] phi()
|
||||
[243] call malloc
|
||||
[235] phi()
|
||||
[236] call malloc
|
||||
to:init_squares::@3
|
||||
init_squares::@3: scope:[init_squares] from init_squares
|
||||
[244] (void*) SQUARES#1 ← (void*)(byte*) malloc::mem#0
|
||||
[245] (word*) init_squares::squares#0 ← (word*)(void*) SQUARES#1
|
||||
[237] (void*) SQUARES#1 ← (void*)(byte*) malloc::mem#0
|
||||
[238] (word*) init_squares::squares#0 ← (word*)(void*) SQUARES#1
|
||||
to:init_squares::@1
|
||||
init_squares::@1: scope:[init_squares] from init_squares::@2 init_squares::@3
|
||||
[246] (word*) init_squares::squares#2 ← phi( init_squares::@2/(word*) init_squares::squares#1 init_squares::@3/(word*) init_squares::squares#0 )
|
||||
[246] (word) init_squares::sqr#2 ← phi( init_squares::@2/(word) init_squares::sqr#1 init_squares::@3/(word) 0 )
|
||||
[246] (byte) init_squares::i#2 ← phi( init_squares::@2/(byte) init_squares::i#1 init_squares::@3/(byte) 0 )
|
||||
[247] if((byte) init_squares::i#2<(const byte) NUM_SQUARES#3) goto init_squares::@2
|
||||
[239] (word*) init_squares::squares#2 ← phi( init_squares::@2/(word*) init_squares::squares#1 init_squares::@3/(word*) init_squares::squares#0 )
|
||||
[239] (word) init_squares::sqr#2 ← phi( init_squares::@2/(word) init_squares::sqr#1 init_squares::@3/(word) 0 )
|
||||
[239] (byte) init_squares::i#2 ← phi( init_squares::@2/(byte) init_squares::i#1 init_squares::@3/(byte) 0 )
|
||||
[240] if((byte) init_squares::i#2<(const byte) NUM_SQUARES#3) goto init_squares::@2
|
||||
to:init_squares::@return
|
||||
init_squares::@return: scope:[init_squares] from init_squares::@1
|
||||
[248] return
|
||||
[241] return
|
||||
to:@return
|
||||
init_squares::@2: scope:[init_squares] from init_squares::@1
|
||||
[249] *((word*) init_squares::squares#2) ← (word) init_squares::sqr#2
|
||||
[250] (word*) init_squares::squares#1 ← (word*) init_squares::squares#2 + (const byte) SIZEOF_WORD
|
||||
[251] (byte~) init_squares::$3 ← (byte) init_squares::i#2 << (byte) 1
|
||||
[252] (byte~) init_squares::$4 ← (byte~) init_squares::$3 + (byte) 1
|
||||
[253] (word) init_squares::sqr#1 ← (word) init_squares::sqr#2 + (byte~) init_squares::$4
|
||||
[254] (byte) init_squares::i#1 ← ++ (byte) init_squares::i#2
|
||||
[242] *((word*) init_squares::squares#2) ← (word) init_squares::sqr#2
|
||||
[243] (word*) init_squares::squares#1 ← (word*) init_squares::squares#2 + (const byte) SIZEOF_WORD
|
||||
[244] (byte~) init_squares::$3 ← (byte) init_squares::i#2 << (byte) 1
|
||||
[245] (byte~) init_squares::$4 ← (byte~) init_squares::$3 + (byte) 1
|
||||
[246] (word) init_squares::sqr#1 ← (word) init_squares::sqr#2 + (byte~) init_squares::$4
|
||||
[247] (byte) init_squares::i#1 ← ++ (byte) init_squares::i#2
|
||||
to:init_squares::@1
|
||||
|
||||
(void*()) malloc((word) malloc::size)
|
||||
malloc: scope:[malloc] from @1 @3 init_squares
|
||||
[255] (word) malloc::size#3 ← phi( @1/(word) $3e8 @3/(word) $3e8 init_squares/(const byte) NUM_SQUARES#3*(const byte) SIZEOF_WORD )
|
||||
[255] (byte*) heap_head#12 ← phi( @1/(const byte*) HEAP_TOP @3/(byte*) heap_head#1 init_squares/(byte*) heap_head#1 )
|
||||
[256] (byte*) malloc::mem#0 ← (byte*) heap_head#12 - (word) malloc::size#3
|
||||
[257] (byte*) heap_head#1 ← (byte*) malloc::mem#0
|
||||
[248] (word) malloc::size#3 ← phi( @1/(word) $3e8 @3/(word) $3e8 init_squares/(const byte) NUM_SQUARES#3*(const byte) SIZEOF_WORD )
|
||||
[248] (byte*) heap_head#12 ← phi( @1/(const byte*) HEAP_TOP @3/(byte*) heap_head#1 init_squares/(byte*) heap_head#1 )
|
||||
[249] (byte*) malloc::mem#0 ← (byte*) heap_head#12 - (word) malloc::size#3
|
||||
[250] (byte*) heap_head#1 ← (byte*) malloc::mem#0
|
||||
to:malloc::@return
|
||||
malloc::@return: scope:[malloc] from malloc
|
||||
[258] return
|
||||
[251] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -353,13 +353,11 @@
|
||||
(byte~) make_plasma_charset::$12 reg byte a 2002.0
|
||||
(byte*~) make_plasma_charset::$16 zp[2]:30 20002.0
|
||||
(byte~) make_plasma_charset::$3 reg byte x 2002.0
|
||||
(byte~) make_plasma_charset::$6 reg byte a 200002.0
|
||||
(byte~) make_plasma_charset::$7 zp[1]:22 200002.0
|
||||
(label) make_plasma_charset::@1
|
||||
(label) make_plasma_charset::@10
|
||||
(label) make_plasma_charset::@11
|
||||
(label) make_plasma_charset::@12
|
||||
(label) make_plasma_charset::@13
|
||||
(label) make_plasma_charset::@2
|
||||
(label) make_plasma_charset::@3
|
||||
(label) make_plasma_charset::@4
|
||||
@ -371,21 +369,25 @@
|
||||
(label) make_plasma_charset::@return
|
||||
(byte) make_plasma_charset::b
|
||||
(byte) make_plasma_charset::b#1 reg byte y 200002.0
|
||||
(byte) make_plasma_charset::b#2 reg byte y 28182.181818181816
|
||||
(byte) make_plasma_charset::b#2 reg byte y 38750.5
|
||||
(byte) make_plasma_charset::b#6 reg byte y 150001.5
|
||||
(const to_nomodify byte*) make_plasma_charset::bittab[(number) 8] = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 }
|
||||
(word) make_plasma_charset::c
|
||||
(word) make_plasma_charset::c#1 c zp[2]:9 2002.0
|
||||
(word) make_plasma_charset::c#2 c zp[2]:9 555.7777777777778
|
||||
(word) make_plasma_charset::c#2 c zp[2]:9 625.25
|
||||
(byte*) make_plasma_charset::charset
|
||||
(byte) make_plasma_charset::i
|
||||
(byte) make_plasma_charset::i#1 i zp[1]:6 20002.0
|
||||
(byte) make_plasma_charset::i#2 i zp[1]:6 2353.176470588235
|
||||
(byte) make_plasma_charset::i#2 i zp[1]:6 2857.4285714285716
|
||||
(byte) make_plasma_charset::ii
|
||||
(byte) make_plasma_charset::ii#1 reg byte x 200002.0
|
||||
(byte) make_plasma_charset::ii#2 reg byte x 40000.4
|
||||
(byte) make_plasma_charset::ii#2 reg byte x 57143.42857142857
|
||||
(byte) make_plasma_charset::s
|
||||
(byte) make_plasma_charset::s#0 s zp[1]:23 5315.894736842105
|
||||
(byte) make_plasma_charset::s#0 s zp[1]:23 6312.625
|
||||
(label) make_plasma_charset::sid_rnd1
|
||||
(byte) make_plasma_charset::sid_rnd1_return
|
||||
(byte) make_plasma_charset::sid_rnd1_return#0 reg byte a 200002.0
|
||||
(label) make_plasma_charset::sid_rnd_init1
|
||||
(void*()) malloc((word) malloc::size)
|
||||
(label) malloc::@return
|
||||
(byte*) malloc::mem
|
||||
@ -416,20 +418,13 @@
|
||||
(const byte) print_char::ch#0 ch = (byte) '.'
|
||||
(byte*) print_char_cursor
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp[2]:4 3667.333333333333
|
||||
(byte*) print_char_cursor#18 print_char_cursor zp[2]:4 846.3076923076923
|
||||
(byte*) print_char_cursor#18 print_char_cursor zp[2]:4 956.695652173913
|
||||
(byte*) print_char_cursor#30 print_char_cursor zp[2]:4 1501.5
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@return
|
||||
(byte*) print_line_cursor
|
||||
(const byte*) print_line_cursor#0 print_line_cursor = (byte*) 1024
|
||||
(byte*) print_screen
|
||||
(byte()) sid_rnd()
|
||||
(label) sid_rnd::@return
|
||||
(byte) sid_rnd::return
|
||||
(byte) sid_rnd::return#0 reg byte a 366667.3333333334
|
||||
(byte) sid_rnd::return#2 reg byte a 200002.0
|
||||
(void()) sid_rnd_init()
|
||||
(label) sid_rnd_init::@return
|
||||
(byte) sin_offset_x
|
||||
(byte) sin_offset_x#10 sin_offset_x zp[1]:2 137.75
|
||||
(byte) sin_offset_x#12 sin_offset_x zp[1]:2 133.66666666666669
|
||||
@ -489,10 +484,8 @@ reg byte a [ doplasma::$2 ]
|
||||
zp[2]:20 [ memset::end#0 doplasma::sin_x#0 bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$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 ]
|
||||
reg byte x [ make_plasma_charset::$3 ]
|
||||
reg byte a [ make_plasma_charset::$12 ]
|
||||
reg byte a [ sid_rnd::return#2 ]
|
||||
reg byte a [ make_plasma_charset::$6 ]
|
||||
reg byte a [ make_plasma_charset::sid_rnd1_return#0 ]
|
||||
zp[1]:22 [ make_plasma_charset::$7 init_dist_screen::x#2 init_dist_screen::x#1 init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
reg byte a [ sid_rnd::return#0 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
|
Loading…
Reference in New Issue
Block a user