1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-27 04:49:27 +00:00

Brought fire sample closer to the original.

This commit is contained in:
jespergravgaard 2019-04-16 00:45:21 +02:00
parent f41744cd96
commit 0116dcfe55
5 changed files with 880 additions and 914 deletions

View File

@ -31,7 +31,7 @@ void main() {
}
}
// Animate the fire on the passe screen. Uses BUFFER to store the current values.
// Animate the fire on the passed screen. Uses BUFFER to store the current values.
void fire(unsigned char* screenbase) {
// Average characters from below the current character (24 lines)
@ -49,8 +49,8 @@ void fire(unsigned char* screenbase) {
// Add one new random line at the bottom
screen = (screenbase + (24 * 40));
buffer = (BUFFER + (24 * 40));
while(buffer != (BUFFER+(25*40))) {
*screen++ = *buffer++ = 0x30 + (sid_rnd())/$10;
for(; buffer != (BUFFER+(25*40)); ++screen, ++buffer) {
*screen = *buffer = 0x30 + (sid_rnd())/$10;
}
}
@ -62,8 +62,7 @@ void makecharset(byte* charset) {
for (unsigned char *font = (charset+(64*8)); font != (charset+(256*8)); ++font)
*font = 0xff;
for (unsigned char c = 0; c < 0x40; ++c) {
unsigned char bc = 0;
for (unsigned char i = 0; i < 8; i++){
for (unsigned char bc = 0, i = 0; i < 8; i++){
unsigned char b = 0;
for (unsigned char ii = 0; ii < 8; ii++) {
bc += c;

View File

@ -73,17 +73,17 @@ main: {
sta D018
jmp b1
}
// Animate the fire on the passe screen. Uses BUFFER to store the current values.
// Animate the fire on the passed screen. Uses BUFFER to store the current values.
fire: {
.label screen = 2
.label screen_2 = 6
.label buffer = 4
.label screen_4 = 6
.label screen_11 = 6
.label screen_10 = 6
lda screen
sta screen_11
sta screen_10
lda screen+1
sta screen_11+1
sta screen_10+1
lda #<BUFFER
sta buffer
lda #>BUFFER
@ -107,14 +107,6 @@ fire: {
lda #>BUFFER+$18*$28
sta buffer+1
b6:
lda buffer+1
cmp #>BUFFER+$19*$28
bne b7
lda buffer
cmp #<BUFFER+$19*$28
bne b7
rts
b7:
jsr sid_rnd
lsr
lsr
@ -134,7 +126,13 @@ fire: {
bne !+
inc buffer+1
!:
jmp b6
lda buffer+1
cmp #>BUFFER+$19*$28
bne b6
lda buffer
cmp #<BUFFER+$19*$28
bne b6
rts
b2:
ldy #$28-1
clc

View File

@ -52,137 +52,134 @@ main::@3: scope:[main] from main::toD0182
to:main::@1
fire: scope:[fire] from main::@1 main::@2
[25] (byte*) fire::screen#0 ← phi( main::@1/(const byte*) SCREEN1#0 main::@2/(const byte*) SCREEN2#0 )
[26] (byte*~) fire::screen#11 ← (byte*) fire::screen#0
[26] (byte*~) fire::screen#10 ← (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#10 fire::@4/(byte*) fire::screen#2 )
[27] (byte*) fire::buffer#4 ← phi( fire/(const byte*) BUFFER#0 fire::@4/(byte*) fire::buffer#2 )
[28] if((byte*) fire::buffer#4!=(const byte*) BUFFER#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28) goto fire::@2
to:fire::@3
fire::@3: scope:[fire] from fire::@1
[29] (byte*) fire::screen#1 ← (byte*) fire::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28
to:fire::@6
fire::@6: scope:[fire] from fire::@3 fire::@8
[30] (byte*) fire::screen#10 ← phi( fire::@8/(byte*) fire::screen#3 fire::@3/(byte*) fire::screen#1 )
[30] (byte*) fire::buffer#10 ← phi( fire::@8/(byte*) fire::buffer#3 fire::@3/(const byte*) BUFFER#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 )
[31] if((byte*) fire::buffer#10!=(const byte*) BUFFER#0+(byte/signed byte/word/signed word/dword/signed dword) $19*(byte/signed byte/word/signed word/dword/signed dword) $28) goto fire::@7
to:fire::@return
fire::@return: scope:[fire] from fire::@6
[32] return
to:@return
fire::@6: scope:[fire] from fire::@3 fire::@7
[30] (byte*) fire::screen#5 ← phi( fire::@7/(byte*) fire::screen#3 fire::@3/(byte*) fire::screen#1 )
[30] (byte*) fire::buffer#7 ← phi( fire::@7/(byte*) fire::buffer#3 fire::@3/(const byte*) BUFFER#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 )
[31] call sid_rnd
[32] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
to:fire::@7
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::$18 ← (byte) sid_rnd::return#2
[37] (byte~) fire::$19 ← (byte~) fire::$18 >> (byte/signed byte/word/signed word/dword/signed dword) 4
[38] (byte/signed word/word/dword/signed dword~) fire::$20 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte~) fire::$19
[39] *((byte*) fire::buffer#10) ← (byte/signed word/word/dword/signed dword~) fire::$20
[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
to:fire::@6
[33] (byte~) fire::$15 ← (byte) sid_rnd::return#2
[34] (byte~) fire::$16 ← (byte~) fire::$15 >> (byte/signed byte/word/signed word/dword/signed dword) 4
[35] (byte/signed word/word/dword/signed dword~) fire::$17 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte~) fire::$16
[36] *((byte*) fire::buffer#7) ← (byte/signed word/word/dword/signed dword~) fire::$17
[37] *((byte*) fire::screen#5) ← *((byte*) fire::buffer#7)
[38] (byte*) fire::screen#3 ← ++ (byte*) fire::screen#5
[39] (byte*) fire::buffer#3 ← ++ (byte*) fire::buffer#7
[40] if((byte*) fire::buffer#3!=(const byte*) BUFFER#0+(byte/signed byte/word/signed word/dword/signed dword) $19*(byte/signed byte/word/signed word/dword/signed dword) $28) goto fire::@6
to:fire::@return
fire::@return: scope:[fire] from fire::@7
[41] return
to:@return
fire::@2: scope:[fire] from fire::@1
[43] (byte~) fire::$9 ← *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $28-(byte/signed byte/word/signed word/dword/signed dword) 1) + *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $28-(byte/signed byte/word/signed word/dword/signed dword) 1)
[44] (byte~) fire::$10 ← (byte~) fire::$9 + *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $28)
[45] (byte~) fire::$11 ← (byte~) fire::$10 + *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $29)
[46] (byte) fire::c#0 ← (byte~) fire::$11 >> (byte/signed byte/word/signed word/dword/signed dword) 2
[47] if((byte) fire::c#0<(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto fire::@4
[42] (byte~) fire::$9 ← *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $28-(byte/signed byte/word/signed word/dword/signed dword) 1) + *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $28-(byte/signed byte/word/signed word/dword/signed dword) 1)
[43] (byte~) fire::$10 ← (byte~) fire::$9 + *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $28)
[44] (byte~) fire::$11 ← (byte~) fire::$10 + *((byte*) fire::buffer#4 + (byte/signed byte/word/signed word/dword/signed dword) $29)
[45] (byte) fire::c#0 ← (byte~) fire::$11 >> (byte/signed byte/word/signed word/dword/signed dword) 2
[46] if((byte) fire::c#0<(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto fire::@4
to:fire::@5
fire::@5: scope:[fire] from fire::@2
[48] (byte) fire::c#1 ← (byte) fire::c#0 - (byte/signed byte/word/signed word/dword/signed dword) 3
[47] (byte) fire::c#1 ← (byte) fire::c#0 - (byte/signed byte/word/signed word/dword/signed dword) 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
[48] (byte) fire::c#2 ← phi( fire::@2/(byte) fire::c#0 fire::@5/(byte) fire::c#1 )
[49] *((byte*) fire::buffer#4) ← (byte) fire::c#2
[50] *((byte*) fire::screen#4) ← *((byte*) fire::buffer#4)
[51] (byte*) fire::screen#2 ← ++ (byte*) fire::screen#4
[52] (byte*) fire::buffer#2 ← ++ (byte*) fire::buffer#4
to:fire::@1
sid_rnd: scope:[sid_rnd] from fire::@7
[54] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0)
sid_rnd: scope:[sid_rnd] from fire::@6
[53] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0)
to:sid_rnd::@return
sid_rnd::@return: scope:[sid_rnd] from sid_rnd
[55] return
[54] return
to:@return
makecharset: scope:[makecharset] from main::@8
[56] phi()
[55] phi()
to:makecharset::@1
makecharset::@1: scope:[makecharset] from makecharset makecharset::@1
[57] (byte*) makecharset::font#2 ← phi( makecharset/(const byte*) CHARSET#0 makecharset::@1/(byte*) makecharset::font#1 )
[58] *((byte*) makecharset::font#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0
[59] (byte*) makecharset::font#1 ← ++ (byte*) makecharset::font#2
[60] if((byte*) makecharset::font#1!=(const byte*) CHARSET#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@1
[56] (byte*) makecharset::font#2 ← phi( makecharset/(const byte*) CHARSET#0 makecharset::@1/(byte*) makecharset::font#1 )
[57] *((byte*) makecharset::font#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0
[58] (byte*) makecharset::font#1 ← ++ (byte*) makecharset::font#2
[59] if((byte*) makecharset::font#1!=(const byte*) CHARSET#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@1
to:makecharset::@2
makecharset::@2: scope:[makecharset] from makecharset::@1 makecharset::@2
[61] (byte*) makecharset::font1#2 ← phi( makecharset::@1/(const byte*) CHARSET#0+(byte/signed byte/word/signed word/dword/signed dword) $40*(byte/signed byte/word/signed word/dword/signed dword) 8 makecharset::@2/(byte*) makecharset::font1#1 )
[62] *((byte*) makecharset::font1#2) ← (byte/word/signed word/dword/signed dword) $ff
[63] (byte*) makecharset::font1#1 ← ++ (byte*) makecharset::font1#2
[64] if((byte*) makecharset::font1#1!=(const byte*) CHARSET#0+(word/signed word/dword/signed dword) $100*(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@2
[60] (byte*) makecharset::font1#2 ← phi( makecharset::@1/(const byte*) CHARSET#0+(byte/signed byte/word/signed word/dword/signed dword) $40*(byte/signed byte/word/signed word/dword/signed dword) 8 makecharset::@2/(byte*) makecharset::font1#1 )
[61] *((byte*) makecharset::font1#2) ← (byte/word/signed word/dword/signed dword) $ff
[62] (byte*) makecharset::font1#1 ← ++ (byte*) makecharset::font1#2
[63] if((byte*) makecharset::font1#1!=(const byte*) CHARSET#0+(word/signed word/dword/signed dword) $100*(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@2
to:makecharset::@3
makecharset::@3: scope:[makecharset] from makecharset::@2 makecharset::@9
[65] (byte) makecharset::c#7 ← phi( makecharset::@9/(byte) makecharset::c#1 makecharset::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[64] (byte) makecharset::c#7 ← phi( makecharset::@9/(byte) makecharset::c#1 makecharset::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 )
to:makecharset::@4
makecharset::@4: scope:[makecharset] from makecharset::@3 makecharset::@8
[66] (byte) makecharset::i#6 ← phi( makecharset::@8/(byte) makecharset::i#1 makecharset::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[66] (byte) makecharset::bc#5 ← phi( makecharset::@8/(byte) makecharset::bc#6 makecharset::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[65] (byte) makecharset::i#6 ← phi( makecharset::@8/(byte) makecharset::i#1 makecharset::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[65] (byte) makecharset::bc#5 ← phi( makecharset::@8/(byte) makecharset::bc#6 makecharset::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 )
to:makecharset::@5
makecharset::@5: scope:[makecharset] from makecharset::@4 makecharset::@6
[67] (byte) makecharset::b#2 ← phi( makecharset::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 makecharset::@6/(byte) makecharset::b#3 )
[67] (byte) makecharset::ii#2 ← phi( makecharset::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 makecharset::@6/(byte) makecharset::ii#1 )
[67] (byte) makecharset::bc#3 ← phi( makecharset::@4/(byte) makecharset::bc#5 makecharset::@6/(byte) makecharset::bc#6 )
[68] (byte) makecharset::bc#1 ← (byte) makecharset::bc#3 + (byte) makecharset::c#7
[69] if((byte) makecharset::bc#1<(byte/signed byte/word/signed word/dword/signed dword) $3f+(byte/signed byte/word/signed word/dword/signed dword) 1) goto makecharset::@6
[66] (byte) makecharset::b#2 ← phi( makecharset::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 makecharset::@6/(byte) makecharset::b#3 )
[66] (byte) makecharset::ii#2 ← phi( makecharset::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 makecharset::@6/(byte) makecharset::ii#1 )
[66] (byte) makecharset::bc#3 ← phi( makecharset::@4/(byte) makecharset::bc#5 makecharset::@6/(byte) makecharset::bc#6 )
[67] (byte) makecharset::bc#1 ← (byte) makecharset::bc#3 + (byte) makecharset::c#7
[68] if((byte) makecharset::bc#1<(byte/signed byte/word/signed word/dword/signed dword) $3f+(byte/signed byte/word/signed word/dword/signed dword) 1) goto makecharset::@6
to:makecharset::@7
makecharset::@7: scope:[makecharset] from makecharset::@5
[70] (byte) makecharset::bc#2 ← (byte) makecharset::bc#1 - (byte/signed byte/word/signed word/dword/signed dword) $40
[71] (byte~) makecharset::$11 ← (byte) makecharset::i#6 & (byte/signed byte/word/signed word/dword/signed dword) 1
[72] (byte~) makecharset::$12 ← (byte) makecharset::ii#2 + (byte~) makecharset::$11
[73] (byte~) makecharset::$13 ← (byte~) makecharset::$12 & (byte/signed byte/word/signed word/dword/signed dword) 7
[74] (byte) makecharset::b#1 ← (byte) makecharset::b#2 + *((const byte[8]) makecharset::bittab#0 + (byte~) makecharset::$13)
[69] (byte) makecharset::bc#2 ← (byte) makecharset::bc#1 - (byte/signed byte/word/signed word/dword/signed dword) $40
[70] (byte~) makecharset::$11 ← (byte) makecharset::i#6 & (byte/signed byte/word/signed word/dword/signed dword) 1
[71] (byte~) makecharset::$12 ← (byte) makecharset::ii#2 + (byte~) makecharset::$11
[72] (byte~) makecharset::$13 ← (byte~) makecharset::$12 & (byte/signed byte/word/signed word/dword/signed dword) 7
[73] (byte) makecharset::b#1 ← (byte) makecharset::b#2 + *((const byte[8]) makecharset::bittab#0 + (byte~) makecharset::$13)
to:makecharset::@6
makecharset::@6: scope:[makecharset] from makecharset::@5 makecharset::@7
[75] (byte) makecharset::b#3 ← phi( makecharset::@5/(byte) makecharset::b#2 makecharset::@7/(byte) makecharset::b#1 )
[75] (byte) makecharset::bc#6 ← phi( makecharset::@5/(byte) makecharset::bc#1 makecharset::@7/(byte) makecharset::bc#2 )
[76] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
[77] if((byte) makecharset::ii#1<(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@5
[74] (byte) makecharset::b#3 ← phi( makecharset::@5/(byte) makecharset::b#2 makecharset::@7/(byte) makecharset::b#1 )
[74] (byte) makecharset::bc#6 ← phi( makecharset::@5/(byte) makecharset::bc#1 makecharset::@7/(byte) makecharset::bc#2 )
[75] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#2
[76] if((byte) makecharset::ii#1<(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@5
to:makecharset::@8
makecharset::@8: scope:[makecharset] from makecharset::@6
[78] (word~) makecharset::$17 ← ((word)) (byte) makecharset::c#7
[79] (word~) makecharset::$18 ← (word~) makecharset::$17 << (byte/signed byte/word/signed word/dword/signed dword) 3
[80] (word~) makecharset::$19 ← (word~) makecharset::$18 + (byte) makecharset::i#6
[81] *((const byte*) CHARSET#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 8 + (word~) makecharset::$19) ← (byte) makecharset::b#3
[82] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#6
[83] if((byte) makecharset::i#1<(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@4
[77] (word~) makecharset::$17 ← ((word)) (byte) makecharset::c#7
[78] (word~) makecharset::$18 ← (word~) makecharset::$17 << (byte/signed byte/word/signed word/dword/signed dword) 3
[79] (word~) makecharset::$19 ← (word~) makecharset::$18 + (byte) makecharset::i#6
[80] *((const byte*) CHARSET#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 8 + (word~) makecharset::$19) ← (byte) makecharset::b#3
[81] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#6
[82] if((byte) makecharset::i#1<(byte/signed byte/word/signed word/dword/signed dword) 8) goto makecharset::@4
to:makecharset::@9
makecharset::@9: scope:[makecharset] from makecharset::@8
[84] (byte) makecharset::c#1 ← ++ (byte) makecharset::c#7
[85] if((byte) makecharset::c#1<(byte/signed byte/word/signed word/dword/signed dword) $40) goto makecharset::@3
[83] (byte) makecharset::c#1 ← ++ (byte) makecharset::c#7
[84] if((byte) makecharset::c#1<(byte/signed byte/word/signed word/dword/signed dword) $40) goto makecharset::@3
to:makecharset::@return
makecharset::@return: scope:[makecharset] from makecharset::@9
[86] return
[85] return
to:@return
sid_rnd_init: scope:[sid_rnd_init] from main::@7
[87] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff
[88] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
[86] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff
[87] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
to:sid_rnd_init::@return
sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
[89] return
[88] return
to:@return
fillscreen: scope:[fillscreen] from main main::@4 main::@5 main::@6
[90] (byte*) fillscreen::screen#6 ← phi( main/(const byte*) BUFFER#0 main::@5/(const byte*) SCREEN2#0 main::@6/(const byte*) COLS#0 main::@4/(const byte*) SCREEN1#0 )
[90] (byte) fillscreen::fill#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(const byte) YELLOW#0 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[89] (byte*) fillscreen::screen#6 ← phi( main/(const byte*) BUFFER#0 main::@5/(const byte*) SCREEN2#0 main::@6/(const byte*) COLS#0 main::@4/(const byte*) SCREEN1#0 )
[89] (byte) fillscreen::fill#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(const byte) YELLOW#0 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 )
to:fillscreen::@1
fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1
[91] (word) fillscreen::i#2 ← phi( fillscreen/(byte/signed byte/word/signed word/dword/signed dword) 0 fillscreen::@1/(word) fillscreen::i#1 )
[91] (byte*) fillscreen::screen#5 ← phi( fillscreen/(byte*) fillscreen::screen#6 fillscreen::@1/(byte*) fillscreen::screen#4 )
[92] *((byte*) fillscreen::screen#5) ← (byte) fillscreen::fill#5
[93] (byte*) fillscreen::screen#4 ← ++ (byte*) fillscreen::screen#5
[94] (word) fillscreen::i#1 ← ++ (word) fillscreen::i#2
[95] if((word) fillscreen::i#1!=(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1
[90] (word) fillscreen::i#2 ← phi( fillscreen/(byte/signed byte/word/signed word/dword/signed dword) 0 fillscreen::@1/(word) fillscreen::i#1 )
[90] (byte*) fillscreen::screen#5 ← phi( fillscreen/(byte*) fillscreen::screen#6 fillscreen::@1/(byte*) fillscreen::screen#4 )
[91] *((byte*) fillscreen::screen#5) ← (byte) fillscreen::fill#5
[92] (byte*) fillscreen::screen#4 ← ++ (byte*) fillscreen::screen#5
[93] (word) fillscreen::i#1 ← ++ (word) fillscreen::i#2
[94] if((word) fillscreen::i#1!=(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1
to:fillscreen::@return
fillscreen::@return: scope:[fillscreen] from fillscreen::@1
[96] return
[95] return
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -44,9 +44,9 @@
(void()) fire((byte*) fire::screenbase)
(byte~) fire::$10 reg byte a 202.0
(byte~) fire::$11 reg byte a 202.0
(byte~) fire::$18 reg byte a 202.0
(byte~) fire::$19 reg byte a 202.0
(byte/signed word/word/dword/signed dword~) fire::$20 reg byte a 202.0
(byte~) fire::$15 reg byte a 202.0
(byte~) fire::$16 reg byte a 202.0
(byte/signed word/word/dword/signed dword~) fire::$17 reg byte a 202.0
(byte~) fire::$9 reg byte a 202.0
(label) fire::@1
(label) fire::@2
@ -55,13 +55,12 @@
(label) fire::@5
(label) fire::@6
(label) fire::@7
(label) fire::@8
(label) fire::@return
(byte*) fire::buffer
(byte*) fire::buffer#10 buffer zp ZP_WORD:4 45.90909090909091
(byte*) fire::buffer#2 buffer zp ZP_WORD:4 202.0
(byte*) fire::buffer#3 buffer zp ZP_WORD:4 202.0
(byte*) fire::buffer#3 buffer zp ZP_WORD:4 151.5
(byte*) fire::buffer#4 buffer zp ZP_WORD:4 75.75
(byte*) fire::buffer#7 buffer zp ZP_WORD:4 44.888888888888886
(byte) fire::c
(byte) fire::c#0 reg byte a 202.0
(byte) fire::c#1 reg byte a 202.0
@ -69,11 +68,11 @@
(byte*) fire::screen
(byte*) fire::screen#0 screen zp ZP_WORD:2 0.26666666666666666
(byte*) fire::screen#1 screen zp ZP_WORD:2 4.0
(byte*) fire::screen#10 screen zp ZP_WORD:2 30.5
(byte*~) fire::screen#11 screen#11 zp ZP_WORD:6 4.0
(byte*~) fire::screen#10 screen#10 zp ZP_WORD:6 4.0
(byte*) fire::screen#2 screen#2 zp ZP_WORD:6 101.0
(byte*) fire::screen#3 screen zp ZP_WORD:2 101.0
(byte*) fire::screen#3 screen zp ZP_WORD:2 67.33333333333333
(byte*) fire::screen#4 screen#4 zp ZP_WORD:6 27.727272727272727
(byte*) fire::screen#5 screen zp ZP_WORD:2 38.125
(byte*) fire::screenbase
(void()) main()
(label) main::@1
@ -165,9 +164,9 @@
(void()) sid_rnd_init()
(label) sid_rnd_init::@return
zp ZP_WORD:2 [ fire::screen#0 fire::screen#10 fire::screen#3 fire::screen#1 makecharset::font#2 makecharset::font#1 makecharset::font1#2 makecharset::font1#1 fillscreen::screen#5 fillscreen::screen#6 fillscreen::screen#4 makecharset::$17 makecharset::$18 makecharset::$19 ]
zp ZP_WORD:4 [ fire::buffer#4 fire::buffer#2 fire::buffer#10 fire::buffer#3 fillscreen::i#2 fillscreen::i#1 ]
zp ZP_WORD:6 [ fire::screen#4 fire::screen#11 fire::screen#2 ]
zp ZP_WORD:2 [ fire::screen#0 fire::screen#5 fire::screen#3 fire::screen#1 makecharset::font#2 makecharset::font#1 makecharset::font1#2 makecharset::font1#1 fillscreen::screen#5 fillscreen::screen#6 fillscreen::screen#4 makecharset::$17 makecharset::$18 makecharset::$19 ]
zp ZP_WORD:4 [ fire::buffer#4 fire::buffer#2 fire::buffer#7 fire::buffer#3 fillscreen::i#2 fillscreen::i#1 ]
zp ZP_WORD:6 [ fire::screen#4 fire::screen#10 fire::screen#2 ]
reg byte a [ fire::c#2 fire::c#0 fire::c#1 ]
zp ZP_BYTE:8 [ makecharset::c#7 makecharset::c#1 ]
zp ZP_BYTE:9 [ makecharset::i#6 makecharset::i#1 ]
@ -176,9 +175,9 @@ zp ZP_BYTE:10 [ makecharset::ii#2 makecharset::ii#1 ]
reg byte y [ makecharset::b#2 makecharset::b#3 makecharset::b#1 ]
reg byte x [ fillscreen::fill#5 ]
reg byte a [ sid_rnd::return#2 ]
reg byte a [ fire::$18 ]
reg byte a [ fire::$19 ]
reg byte a [ fire::$20 ]
reg byte a [ fire::$15 ]
reg byte a [ fire::$16 ]
reg byte a [ fire::$17 ]
reg byte a [ fire::$9 ]
reg byte a [ fire::$10 ]
reg byte a [ fire::$11 ]