mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-08 14:37:40 +00:00
working on prebob.
This commit is contained in:
parent
87ab93f0ee
commit
d5f7a914f8
@ -1,6 +1,9 @@
|
||||
// Pre-calculated bobs inside a charset (pre-mpved to all x/y-combinations)
|
||||
import "c64"
|
||||
import "string"
|
||||
import "keyboard"
|
||||
import "time"
|
||||
import "print"
|
||||
|
||||
// The prototype BOB (a 3x3 char image with a bob image in the upper 2x2 chars)
|
||||
// The chars are layout as follows with data in chars 0, 1, 3, 4 initially
|
||||
@ -19,10 +22,14 @@ const char[0x200] SIN_X_TAB = kickasm {{ .fill $200, 75.5+75.5*sin(i*2*PI/256) }
|
||||
// Sine used for the Y-coordinate
|
||||
const char[0x200] SIN_Y_TAB = kickasm {{ .fill $200, 91.5+91.5*sin(i*2*PI/256) }};
|
||||
|
||||
// The BASIC screen
|
||||
const char* SCREEN_BASIC = 0x0400;
|
||||
// The BASIC charset
|
||||
const char* CHARSET_BASIC = 0x1000;
|
||||
// The screen
|
||||
const char* SCREEN = 0x4000;
|
||||
const char* BOB_SCREEN = 0x4800;
|
||||
// The charset that will receive the shifted bobs
|
||||
const char* BOB_CHARSET = 0x6000;
|
||||
const char* BOB_CHARSET = 0x4000;
|
||||
|
||||
// Tables containing the char to use for a specific cell of a shifted BOB.
|
||||
// char_id = BOB_TABLES[cell*BOB_SUBTABLE_SIZE + shift_y*BOB_SHIFTS_X + shift_x];
|
||||
@ -36,55 +43,50 @@ const char BOB_SUBTABLE_SIZE = BOB_SHIFTS_X*BOB_SHIFTS_Y;
|
||||
|
||||
void main() {
|
||||
prepareBobs();
|
||||
vicSelectGfxBank(SCREEN);
|
||||
*D018 = toD018(SCREEN, BOB_CHARSET);
|
||||
vicSelectGfxBank(BOB_SCREEN);
|
||||
*D018 = toD018(BOB_SCREEN, BOB_CHARSET);
|
||||
// Clear screen
|
||||
memset(SCREEN, 0x00, 1000);
|
||||
/*
|
||||
// Display some BOBs
|
||||
char* screen = SCREEN;
|
||||
char bob_table_idx = 0;
|
||||
for(char i:0..7) {
|
||||
for(char j:0..3) {
|
||||
screen[0] = (BOB_TABLES+0*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[40] = (BOB_TABLES+1*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[80] = (BOB_TABLES+2*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[1] = (BOB_TABLES+3*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[41] = (BOB_TABLES+4*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[81] = (BOB_TABLES+5*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[2] = (BOB_TABLES+6*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[42] = (BOB_TABLES+7*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[82] = (BOB_TABLES+8*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen += 120;
|
||||
bob_table_idx++;
|
||||
}
|
||||
screen -= (120*4)-3;
|
||||
}
|
||||
*/
|
||||
memset(BOB_SCREEN, 0x00, 1000);
|
||||
// Display a BOB grid
|
||||
for( char x: 0..7)
|
||||
for(char y: 0..3)
|
||||
renderBob(x*12+y, y*24+x);
|
||||
// Wait for space
|
||||
while(!keyboard_key_pressed(KEY_SPACE)) {}
|
||||
while(keyboard_key_pressed(KEY_SPACE)) {}
|
||||
// Clear screen
|
||||
memset(BOB_SCREEN, 0x00, 1000);
|
||||
// Render sine BOBs
|
||||
char sin_x_idx = 0;
|
||||
char sin_y_idx = 73;
|
||||
while(true) {
|
||||
do { } while (*RASTER!=$ff);
|
||||
//kickasm {{ .break }}
|
||||
do { } while (*RASTER<$f8);
|
||||
(*BORDERCOL)++;
|
||||
renderBob((SIN_X_TAB)[sin_x_idx], (SIN_Y_TAB)[sin_y_idx]);
|
||||
renderBob((SIN_X_TAB+15)[sin_x_idx], (SIN_Y_TAB+11)[sin_y_idx]);
|
||||
renderBob((SIN_X_TAB+22)[sin_x_idx], (SIN_Y_TAB+30)[sin_y_idx]);
|
||||
renderBob((SIN_X_TAB+21*4)[sin_x_idx], (SIN_Y_TAB+13*0)[sin_y_idx]);
|
||||
renderBob((SIN_X_TAB+19*3)[sin_x_idx], (SIN_Y_TAB+15*1)[sin_y_idx]);
|
||||
renderBob((SIN_X_TAB+17*2)[sin_x_idx], (SIN_Y_TAB+17*2)[sin_y_idx]);
|
||||
renderBob((SIN_X_TAB+15*1)[sin_x_idx], (SIN_Y_TAB+19*3)[sin_y_idx]);
|
||||
renderBob((SIN_X_TAB+13*0)[sin_x_idx], (SIN_Y_TAB+21*4)[sin_y_idx]);
|
||||
sin_x_idx++;
|
||||
sin_y_idx++;
|
||||
(*BORDERCOL)--;
|
||||
if(keyboard_key_pressed(KEY_SPACE)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Return to BASIC
|
||||
vicSelectGfxBank(SCREEN_BASIC);
|
||||
*D018 = toD018(SCREEN_BASIC, CHARSET_BASIC);
|
||||
}
|
||||
|
||||
// Render a single BOB at a given x/y-position
|
||||
// X-position is 0-151. Each x-position is 2 pixels wide.
|
||||
// Y-position is 0-183. Each y-position is 1 pixel high.
|
||||
void renderBob(char xpos, char ypos) {
|
||||
//kickasm {{ .break }}
|
||||
char x_char_offset = xpos/BOB_SHIFTS_X;
|
||||
char y_char_offset = ypos/BOB_SHIFTS_Y;
|
||||
unsigned int y_offset = (unsigned int)y_char_offset*40;
|
||||
char* screen = SCREEN+y_offset+x_char_offset;
|
||||
char* screen = BOB_SCREEN+y_offset+x_char_offset;
|
||||
char bob_table_idx = (ypos&7)*BOB_SHIFTS_X+(xpos&3);
|
||||
screen[0] = (BOB_TABLES+0*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[40] = (BOB_TABLES+1*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
|
@ -5,14 +5,23 @@
|
||||
.label RASTER = $d012
|
||||
.label BORDERCOL = $d020
|
||||
.label D018 = $d018
|
||||
// CIA#1 Port A: keyboard matrix columns and joystick #2
|
||||
.label CIA1_PORT_A = $dc00
|
||||
// CIA#1 Port B: keyboard matrix rows and joystick #1.
|
||||
.label CIA1_PORT_B = $dc01
|
||||
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
|
||||
.label CIA2_PORT_A = $dd00
|
||||
// CIA #2 Port A data direction register.
|
||||
.label CIA2_PORT_A_DDR = $dd02
|
||||
.const KEY_SPACE = $3c
|
||||
// The BASIC screen
|
||||
.label SCREEN_BASIC = $400
|
||||
// The BASIC charset
|
||||
.label CHARSET_BASIC = $1000
|
||||
// The screen
|
||||
.label SCREEN = $4000
|
||||
.label BOB_SCREEN = $4800
|
||||
// The charset that will receive the shifted bobs
|
||||
.label BOB_CHARSET = $6000
|
||||
.label BOB_CHARSET = $4000
|
||||
// The number of different X-shifts
|
||||
.const BOB_SHIFTS_X = 4
|
||||
// The number of different Y-shifts
|
||||
@ -20,33 +29,15 @@
|
||||
// The size of a sub-table of BOB_TABLES
|
||||
.const BOB_SUBTABLE_SIZE = BOB_SHIFTS_X*BOB_SHIFTS_Y
|
||||
// BOB charset ID of the next glyph to be added
|
||||
.label bob_charset_next_id = $e
|
||||
.label bob_charset_next_id = 9
|
||||
main: {
|
||||
.const vicSelectGfxBank1_toDd001_return = 3^(>SCREEN)/$40
|
||||
.const toD0181_return = (>BOB_CHARSET)/4&$f
|
||||
/*
|
||||
// Display some BOBs
|
||||
char* screen = SCREEN;
|
||||
char bob_table_idx = 0;
|
||||
for(char i:0..7) {
|
||||
for(char j:0..3) {
|
||||
screen[0] = (BOB_TABLES+0*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[40] = (BOB_TABLES+1*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[80] = (BOB_TABLES+2*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[1] = (BOB_TABLES+3*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[41] = (BOB_TABLES+4*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[81] = (BOB_TABLES+5*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[2] = (BOB_TABLES+6*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[42] = (BOB_TABLES+7*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen[82] = (BOB_TABLES+8*BOB_SUBTABLE_SIZE)[bob_table_idx];
|
||||
screen += 120;
|
||||
bob_table_idx++;
|
||||
}
|
||||
screen -= (120*4)-3;
|
||||
}
|
||||
*/
|
||||
.label sin_x_idx = 2
|
||||
.label sin_y_idx = 3
|
||||
.const vicSelectGfxBank1_toDd001_return = 3^(>BOB_SCREEN)/$40
|
||||
.const vicSelectGfxBank2_toDd001_return = 3
|
||||
.const toD0181_return = >(BOB_SCREEN&$3fff)*4
|
||||
.const toD0182_return = (>(SCREEN_BASIC&$3fff)*4)|(>CHARSET_BASIC)/4&$f
|
||||
.label x = 2
|
||||
// Render sine BOBs
|
||||
.label sin_x_idx = 3
|
||||
jsr prepareBobs
|
||||
lda #3
|
||||
sta CIA2_PORT_A_DDR
|
||||
@ -54,57 +45,152 @@ main: {
|
||||
sta CIA2_PORT_A
|
||||
lda #toD0181_return
|
||||
sta D018
|
||||
lda #<BOB_SCREEN
|
||||
sta.z memset.str
|
||||
lda #>BOB_SCREEN
|
||||
sta.z memset.str+1
|
||||
jsr memset
|
||||
lda #$49
|
||||
sta.z sin_y_idx
|
||||
lda #0
|
||||
sta.z x
|
||||
// Display a BOB grid
|
||||
__b1:
|
||||
ldx #0
|
||||
__b2:
|
||||
lda.z x
|
||||
asl
|
||||
clc
|
||||
adc.z x
|
||||
asl
|
||||
asl
|
||||
stx.z $ff
|
||||
clc
|
||||
adc.z $ff
|
||||
sta.z renderBob.xpos
|
||||
txa
|
||||
asl
|
||||
stx.z $ff
|
||||
clc
|
||||
adc.z $ff
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
clc
|
||||
adc.z x
|
||||
tay
|
||||
jsr renderBob
|
||||
inx
|
||||
cpx #4
|
||||
bne __b2
|
||||
inc.z x
|
||||
lda #8
|
||||
cmp.z x
|
||||
bne __b1
|
||||
b1:
|
||||
// Wait for space
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
beq b1
|
||||
__b5:
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
bne __b5
|
||||
lda #<BOB_SCREEN
|
||||
sta.z memset.str
|
||||
lda #>BOB_SCREEN
|
||||
sta.z memset.str+1
|
||||
jsr memset
|
||||
ldx #$49
|
||||
lda #0
|
||||
sta.z sin_x_idx
|
||||
__b2:
|
||||
lda #$ff
|
||||
cmp RASTER
|
||||
bne __b2
|
||||
__b8:
|
||||
lda RASTER
|
||||
cmp #$f8
|
||||
bcc __b8
|
||||
inc BORDERCOL
|
||||
ldy.z sin_x_idx
|
||||
lda SIN_X_TAB+$15*4,y
|
||||
sta.z renderBob.xpos
|
||||
ldy SIN_Y_TAB,x
|
||||
jsr renderBob
|
||||
ldy.z sin_x_idx
|
||||
lda SIN_X_TAB+$13*3,y
|
||||
sta.z renderBob.xpos
|
||||
ldy SIN_Y_TAB+$f*1,x
|
||||
jsr renderBob
|
||||
ldy.z sin_x_idx
|
||||
lda SIN_X_TAB+$11*2,y
|
||||
sta.z renderBob.xpos
|
||||
ldy SIN_Y_TAB+$11*2,x
|
||||
jsr renderBob
|
||||
ldy.z sin_x_idx
|
||||
lda SIN_X_TAB+$f*1,y
|
||||
sta.z renderBob.xpos
|
||||
ldy SIN_Y_TAB+$13*3,x
|
||||
jsr renderBob
|
||||
ldy.z sin_x_idx
|
||||
lda SIN_X_TAB,y
|
||||
sta.z renderBob.xpos
|
||||
ldy.z sin_y_idx
|
||||
ldx SIN_Y_TAB,y
|
||||
jsr renderBob
|
||||
ldy.z sin_x_idx
|
||||
lda SIN_X_TAB+$f,y
|
||||
sta.z renderBob.xpos
|
||||
ldy.z sin_y_idx
|
||||
ldx SIN_Y_TAB+$b,y
|
||||
jsr renderBob
|
||||
ldy.z sin_x_idx
|
||||
lda SIN_X_TAB+$16,y
|
||||
sta.z renderBob.xpos
|
||||
ldy.z sin_y_idx
|
||||
ldx SIN_Y_TAB+$1e,y
|
||||
ldy SIN_Y_TAB+$15*4,x
|
||||
jsr renderBob
|
||||
inc.z sin_x_idx
|
||||
inc.z sin_y_idx
|
||||
inx
|
||||
dec BORDERCOL
|
||||
jmp __b2
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
bne vicSelectGfxBank2
|
||||
jmp __b8
|
||||
vicSelectGfxBank2:
|
||||
lda #3
|
||||
sta CIA2_PORT_A_DDR
|
||||
lda #vicSelectGfxBank2_toDd001_return
|
||||
sta CIA2_PORT_A
|
||||
lda #toD0182_return
|
||||
sta D018
|
||||
rts
|
||||
}
|
||||
// Determines whether a specific key is currently pressed by accessing the matrix directly
|
||||
// The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7)
|
||||
// All keys exist as as KEY_XXX constants.
|
||||
// Returns zero if the key is not pressed and a non-zero value if the key is currently pressed
|
||||
keyboard_key_pressed: {
|
||||
.const colidx = KEY_SPACE&7
|
||||
.label rowidx = KEY_SPACE>>3
|
||||
jsr keyboard_matrix_read
|
||||
and keyboard_matrix_col_bitmask+colidx
|
||||
rts
|
||||
}
|
||||
// Read a single row of the keyboard matrix
|
||||
// The row ID (0-7) of the keyboard matrix row to read. See the C64 key matrix for row IDs.
|
||||
// Returns the keys pressed on the row as bits according to the C64 key matrix.
|
||||
// Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write
|
||||
// leading to erroneous readings. You must disable kill the normal interrupt or sei/cli around calls to the keyboard matrix reader.
|
||||
keyboard_matrix_read: {
|
||||
lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx
|
||||
sta CIA1_PORT_A
|
||||
lda CIA1_PORT_B
|
||||
eor #$ff
|
||||
rts
|
||||
}
|
||||
// Render a single BOB at a given x/y-position
|
||||
// X-position is 0-151. Each x-position is 2 pixels wide.
|
||||
// Y-position is 0-183. Each y-position is 1 pixel high.
|
||||
// renderBob(byte zeropage(4) xpos, byte register(X) ypos)
|
||||
// renderBob(byte zeropage(4) xpos, byte register(Y) ypos)
|
||||
renderBob: {
|
||||
.label __2 = $a
|
||||
.label __4 = $a
|
||||
.label __7 = $e
|
||||
.label __2 = $d
|
||||
.label __4 = $d
|
||||
.label __7 = $c
|
||||
.label xpos = 4
|
||||
.label y_offset = $a
|
||||
.label screen = $a
|
||||
.label __10 = $c
|
||||
.label __11 = $a
|
||||
.label x_char_offset = 9
|
||||
.label y_offset = $d
|
||||
.label screen = $d
|
||||
.label bob_table_idx = $c
|
||||
.label __10 = $a
|
||||
.label __11 = $d
|
||||
lda.z xpos
|
||||
lsr
|
||||
lsr
|
||||
tay
|
||||
txa
|
||||
sta.z x_char_offset
|
||||
tya
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
@ -134,19 +220,19 @@ renderBob: {
|
||||
rol.z y_offset+1
|
||||
clc
|
||||
lda.z __4
|
||||
adc #<SCREEN
|
||||
adc #<BOB_SCREEN
|
||||
sta.z __4
|
||||
lda.z __4+1
|
||||
adc #>SCREEN
|
||||
adc #>BOB_SCREEN
|
||||
sta.z __4+1
|
||||
tya
|
||||
lda.z x_char_offset
|
||||
clc
|
||||
adc.z screen
|
||||
sta.z screen
|
||||
bcc !+
|
||||
inc.z screen+1
|
||||
!:
|
||||
txa
|
||||
tya
|
||||
and #7
|
||||
asl
|
||||
asl
|
||||
@ -154,74 +240,85 @@ renderBob: {
|
||||
lda #3
|
||||
and.z xpos
|
||||
clc
|
||||
adc.z __7
|
||||
tax
|
||||
lda BOB_TABLES,x
|
||||
adc.z bob_table_idx
|
||||
sta.z bob_table_idx
|
||||
tay
|
||||
lda BOB_TABLES,y
|
||||
ldy #0
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+1*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+1*BOB_SUBTABLE_SIZE,y
|
||||
ldy #$28
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+2*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+2*BOB_SUBTABLE_SIZE,y
|
||||
ldy #$50
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+3*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+3*BOB_SUBTABLE_SIZE,y
|
||||
ldy #1
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+4*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+4*BOB_SUBTABLE_SIZE,y
|
||||
ldy #$29
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+5*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+5*BOB_SUBTABLE_SIZE,y
|
||||
ldy #$51
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+6*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+6*BOB_SUBTABLE_SIZE,y
|
||||
ldy #2
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+7*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+7*BOB_SUBTABLE_SIZE,y
|
||||
ldy #$2a
|
||||
sta (screen),y
|
||||
lda BOB_TABLES+8*BOB_SUBTABLE_SIZE,x
|
||||
ldy.z bob_table_idx
|
||||
lda BOB_TABLES+8*BOB_SUBTABLE_SIZE,y
|
||||
ldy #$52
|
||||
sta (screen),y
|
||||
rts
|
||||
}
|
||||
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
|
||||
// memset(void* zeropage(5) str)
|
||||
memset: {
|
||||
.label str = SCREEN
|
||||
.const c = 0
|
||||
.const num = $3e8
|
||||
.label end = str+num
|
||||
.label end = $d
|
||||
.label dst = 5
|
||||
lda #<str
|
||||
sta.z dst
|
||||
lda #>str
|
||||
sta.z dst+1
|
||||
__b1:
|
||||
lda.z dst+1
|
||||
cmp #>end
|
||||
bne __b2
|
||||
lda.z dst
|
||||
cmp #<end
|
||||
bne __b2
|
||||
rts
|
||||
.label str = 5
|
||||
lda.z str
|
||||
clc
|
||||
adc #<$3e8
|
||||
sta.z end
|
||||
lda.z str+1
|
||||
adc #>$3e8
|
||||
sta.z end+1
|
||||
__b2:
|
||||
lda #c
|
||||
ldy #0
|
||||
lda.z dst+1
|
||||
cmp.z end+1
|
||||
bne __b3
|
||||
lda.z dst
|
||||
cmp.z end
|
||||
bne __b3
|
||||
rts
|
||||
__b3:
|
||||
lda #0
|
||||
tay
|
||||
sta (dst),y
|
||||
inc.z dst
|
||||
bne !+
|
||||
inc.z dst+1
|
||||
!:
|
||||
jmp __b1
|
||||
jmp __b2
|
||||
}
|
||||
// Creates the pre-shifted bobs into BOB_CHARSET and populates the BOB_TABLES
|
||||
// Modifies PROTO_BOB by shifting it around
|
||||
prepareBobs: {
|
||||
.label bob_table = $a
|
||||
.label bob_table = $d
|
||||
.label shift_y = 2
|
||||
// Populate charset and tables
|
||||
.label bob_glyph = 5
|
||||
.label cell = 8
|
||||
.label cell = 7
|
||||
.label bob_table_idx = 3
|
||||
.label shift_x = 4
|
||||
lda #<PROTO_BOB+$30
|
||||
@ -303,9 +400,9 @@ prepareBobs: {
|
||||
// bobCharsetFindOrAddGlyph(byte* zeropage(5) bob_glyph)
|
||||
bobCharsetFindOrAddGlyph: {
|
||||
.label bob_glyph = 5
|
||||
.label i = 7
|
||||
.label glyph_id = 9
|
||||
.label glyph_cursor = $c
|
||||
.label i = $c
|
||||
.label glyph_id = 8
|
||||
.label glyph_cursor = $a
|
||||
lda #<BOB_CHARSET
|
||||
sta.z glyph_cursor
|
||||
lda #>BOB_CHARSET
|
||||
@ -367,8 +464,8 @@ bobCharsetFindOrAddGlyph: {
|
||||
}
|
||||
// Shift PROTO_BOB right one X pixel
|
||||
shiftProtoBobRight: {
|
||||
.label carry = 9
|
||||
.label i = 8
|
||||
.label carry = 8
|
||||
.label i = 7
|
||||
ldy #0
|
||||
ldx #0
|
||||
txa
|
||||
@ -432,6 +529,10 @@ shiftProtoBobDown: {
|
||||
dex
|
||||
jmp __b1
|
||||
}
|
||||
// Keyboard row bitmask as expected by CIA#1 Port A when reading a specific keyboard matrix row (rows are numbered 0-7)
|
||||
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
||||
// Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7)
|
||||
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
||||
// The prototype BOB (a 3x3 char image with a bob image in the upper 2x2 chars)
|
||||
// The chars are layout as follows with data in chars 0, 1, 3, 4 initially
|
||||
// 0 3 6
|
||||
|
@ -24,249 +24,355 @@ main::vicSelectGfxBank1_@1: scope:[main] from main::vicSelectGfxBank1_toDd001
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main::vicSelectGfxBank1_@1
|
||||
[9] phi()
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::toD0181
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::toD0181
|
||||
[10] *((const byte*) D018) ← (const byte) main::toD0181_return#0
|
||||
[11] call memset
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@4 main::@7
|
||||
[12] (byte) main::sin_y_idx#7 ← phi( main::@4/(byte) $49 main::@7/(byte) main::sin_y_idx#1 )
|
||||
[12] (byte) main::sin_x_idx#7 ← phi( main::@4/(byte) 0 main::@7/(byte) main::sin_x_idx#1 )
|
||||
main::@1: scope:[main] from main::@10 main::@3
|
||||
[12] (byte) main::x#4 ← phi( main::@3/(byte) main::x#1 main::@10/(byte) 0 )
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1 main::@2
|
||||
[13] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2
|
||||
main::@2: scope:[main] from main::@1 main::@12
|
||||
[13] (byte) main::y#2 ← phi( main::@1/(byte) 0 main::@12/(byte) main::y#1 )
|
||||
[14] (byte~) main::$30 ← (byte) main::x#4 << (byte) 1
|
||||
[15] (byte~) main::$31 ← (byte~) main::$30 + (byte) main::x#4
|
||||
[16] (byte~) main::$7 ← (byte~) main::$31 << (byte) 2
|
||||
[17] (byte) renderBob::xpos#0 ← (byte~) main::$7 + (byte) main::y#2
|
||||
[18] (byte~) main::$33 ← (byte) main::y#2 << (byte) 1
|
||||
[19] (byte~) main::$34 ← (byte~) main::$33 + (byte) main::y#2
|
||||
[20] (byte~) main::$9 ← (byte~) main::$34 << (byte) 3
|
||||
[21] (byte) renderBob::ypos#0 ← (byte~) main::$9 + (byte) main::x#4
|
||||
[22] call renderBob
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@2
|
||||
[23] (byte) main::y#1 ← ++ (byte) main::y#2
|
||||
[24] if((byte) main::y#1!=(byte) 4) goto main::@2
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
[14] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL)
|
||||
[15] (byte) renderBob::xpos#0 ← *((const byte*) SIN_X_TAB + (byte) main::sin_x_idx#7)
|
||||
[16] (byte) renderBob::ypos#0 ← *((const byte*) SIN_Y_TAB + (byte) main::sin_y_idx#7)
|
||||
[17] call renderBob
|
||||
main::@3: scope:[main] from main::@12
|
||||
[25] (byte) main::x#1 ← ++ (byte) main::x#4
|
||||
[26] if((byte) main::x#1!=(byte) 8) goto main::@1
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@13 main::@3
|
||||
[27] phi()
|
||||
[28] call keyboard_key_pressed
|
||||
[29] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@4
|
||||
[30] (byte~) main::$14 ← (byte) keyboard_key_pressed::return#2
|
||||
[31] if((byte) 0==(byte~) main::$14) goto main::@4
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@3
|
||||
[18] (byte) renderBob::xpos#1 ← *((const byte*) SIN_X_TAB+(byte) $f + (byte) main::sin_x_idx#7)
|
||||
[19] (byte) renderBob::ypos#1 ← *((const byte*) SIN_Y_TAB+(byte) $b + (byte) main::sin_y_idx#7)
|
||||
[20] call renderBob
|
||||
main::@5: scope:[main] from main::@13 main::@14
|
||||
[32] phi()
|
||||
[33] call keyboard_key_pressed
|
||||
[34] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0
|
||||
to:main::@14
|
||||
main::@14: scope:[main] from main::@5
|
||||
[35] (byte~) main::$16 ← (byte) keyboard_key_pressed::return#3
|
||||
[36] if((byte) 0!=(byte~) main::$16) goto main::@5
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
[21] (byte) renderBob::xpos#2 ← *((const byte*) SIN_X_TAB+(byte) $16 + (byte) main::sin_x_idx#7)
|
||||
[22] (byte) renderBob::ypos#2 ← *((const byte*) SIN_Y_TAB+(byte) $1e + (byte) main::sin_y_idx#7)
|
||||
[23] call renderBob
|
||||
main::@6: scope:[main] from main::@14
|
||||
[37] phi()
|
||||
[38] call memset
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[24] (byte) main::sin_x_idx#1 ← ++ (byte) main::sin_x_idx#7
|
||||
[25] (byte) main::sin_y_idx#1 ← ++ (byte) main::sin_y_idx#7
|
||||
[26] *((const byte*) BORDERCOL) ← -- *((const byte*) BORDERCOL)
|
||||
to:main::@1
|
||||
main::@7: scope:[main] from main::@20 main::@6
|
||||
[39] (byte) main::sin_y_idx#9 ← phi( main::@6/(byte) $49 main::@20/(byte) main::sin_y_idx#1 )
|
||||
[39] (byte) main::sin_x_idx#9 ← phi( main::@6/(byte) 0 main::@20/(byte) main::sin_x_idx#1 )
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@7 main::@8
|
||||
[40] if(*((const byte*) RASTER)<(byte) $f8) goto main::@8
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@8
|
||||
[41] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL)
|
||||
[42] (byte) renderBob::xpos#1 ← *((const byte*) SIN_X_TAB+(byte)(number) $15*(number) 4 + (byte) main::sin_x_idx#9)
|
||||
[43] (byte) renderBob::ypos#1 ← *((const byte*) SIN_Y_TAB + (byte) main::sin_y_idx#9)
|
||||
[44] call renderBob
|
||||
to:main::@15
|
||||
main::@15: scope:[main] from main::@9
|
||||
[45] (byte) renderBob::xpos#2 ← *((const byte*) SIN_X_TAB+(byte)(number) $13*(number) 3 + (byte) main::sin_x_idx#9)
|
||||
[46] (byte) renderBob::ypos#2 ← *((const byte*) SIN_Y_TAB+(byte)(number) $f*(number) 1 + (byte) main::sin_y_idx#9)
|
||||
[47] call renderBob
|
||||
to:main::@16
|
||||
main::@16: scope:[main] from main::@15
|
||||
[48] (byte) renderBob::xpos#3 ← *((const byte*) SIN_X_TAB+(byte)(number) $11*(number) 2 + (byte) main::sin_x_idx#9)
|
||||
[49] (byte) renderBob::ypos#3 ← *((const byte*) SIN_Y_TAB+(byte)(number) $11*(number) 2 + (byte) main::sin_y_idx#9)
|
||||
[50] call renderBob
|
||||
to:main::@17
|
||||
main::@17: scope:[main] from main::@16
|
||||
[51] (byte) renderBob::xpos#4 ← *((const byte*) SIN_X_TAB+(byte)(number) $f*(number) 1 + (byte) main::sin_x_idx#9)
|
||||
[52] (byte) renderBob::ypos#4 ← *((const byte*) SIN_Y_TAB+(byte)(number) $13*(number) 3 + (byte) main::sin_y_idx#9)
|
||||
[53] call renderBob
|
||||
to:main::@18
|
||||
main::@18: scope:[main] from main::@17
|
||||
[54] (byte) renderBob::xpos#5 ← *((const byte*) SIN_X_TAB + (byte) main::sin_x_idx#9)
|
||||
[55] (byte) renderBob::ypos#5 ← *((const byte*) SIN_Y_TAB+(byte)(number) $15*(number) 4 + (byte) main::sin_y_idx#9)
|
||||
[56] call renderBob
|
||||
to:main::@19
|
||||
main::@19: scope:[main] from main::@18
|
||||
[57] (byte) main::sin_x_idx#1 ← ++ (byte) main::sin_x_idx#9
|
||||
[58] (byte) main::sin_y_idx#1 ← ++ (byte) main::sin_y_idx#9
|
||||
[59] *((const byte*) BORDERCOL) ← -- *((const byte*) BORDERCOL)
|
||||
[60] call keyboard_key_pressed
|
||||
[61] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0
|
||||
to:main::@20
|
||||
main::@20: scope:[main] from main::@19
|
||||
[62] (byte~) main::$25 ← (byte) keyboard_key_pressed::return#4
|
||||
[63] if((byte) 0!=(byte~) main::$25) goto main::vicSelectGfxBank2
|
||||
to:main::@7
|
||||
main::vicSelectGfxBank2: scope:[main] from main::@20
|
||||
[64] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3
|
||||
to:main::vicSelectGfxBank2_toDd001
|
||||
main::vicSelectGfxBank2_toDd001: scope:[main] from main::vicSelectGfxBank2
|
||||
[65] phi()
|
||||
to:main::vicSelectGfxBank2_@1
|
||||
main::vicSelectGfxBank2_@1: scope:[main] from main::vicSelectGfxBank2_toDd001
|
||||
[66] *((const byte*) CIA2_PORT_A) ← (const byte) main::vicSelectGfxBank2_toDd001_return#0
|
||||
to:main::toD0182
|
||||
main::toD0182: scope:[main] from main::vicSelectGfxBank2_@1
|
||||
[67] phi()
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::toD0182
|
||||
[68] *((const byte*) D018) ← (const byte) main::toD0182_return#0
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@11
|
||||
[69] return
|
||||
to:@return
|
||||
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@19 main::@4 main::@5
|
||||
[70] phi()
|
||||
[71] call keyboard_matrix_read
|
||||
[72] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0
|
||||
to:keyboard_key_pressed::@1
|
||||
keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed
|
||||
[73] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2
|
||||
[74] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte*) keyboard_matrix_col_bitmask+(const byte) keyboard_key_pressed::colidx#0)
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@1
|
||||
[75] return
|
||||
to:@return
|
||||
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
|
||||
[76] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask+(const byte) keyboard_key_pressed::rowidx#0)
|
||||
[77] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B)
|
||||
to:keyboard_matrix_read::@return
|
||||
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
|
||||
[78] return
|
||||
to:@return
|
||||
|
||||
(void()) renderBob((byte) renderBob::xpos , (byte) renderBob::ypos)
|
||||
renderBob: scope:[renderBob] from main::@3 main::@5 main::@6
|
||||
[27] (byte) renderBob::ypos#3 ← phi( main::@5/(byte) renderBob::ypos#1 main::@6/(byte) renderBob::ypos#2 main::@3/(byte) renderBob::ypos#0 )
|
||||
[27] (byte) renderBob::xpos#3 ← phi( main::@5/(byte) renderBob::xpos#1 main::@6/(byte) renderBob::xpos#2 main::@3/(byte) renderBob::xpos#0 )
|
||||
[28] (byte) renderBob::x_char_offset#0 ← (byte) renderBob::xpos#3 >> (byte) 2
|
||||
[29] (byte) renderBob::y_char_offset#0 ← (byte) renderBob::ypos#3 >> (byte) 3
|
||||
[30] (word~) renderBob::$2 ← (word)(byte) renderBob::y_char_offset#0
|
||||
[31] (word~) renderBob::$10 ← (word~) renderBob::$2 << (byte) 2
|
||||
[32] (word~) renderBob::$11 ← (word~) renderBob::$10 + (word~) renderBob::$2
|
||||
[33] (word) renderBob::y_offset#0 ← (word~) renderBob::$11 << (byte) 3
|
||||
[34] (byte*~) renderBob::$4 ← (const byte*) SCREEN + (word) renderBob::y_offset#0
|
||||
[35] (byte*) renderBob::screen#0 ← (byte*~) renderBob::$4 + (byte) renderBob::x_char_offset#0
|
||||
[36] (byte~) renderBob::$6 ← (byte) renderBob::ypos#3 & (byte) 7
|
||||
[37] (byte~) renderBob::$7 ← (byte~) renderBob::$6 << (byte) 2
|
||||
[38] (byte~) renderBob::$8 ← (byte) renderBob::xpos#3 & (byte) 3
|
||||
[39] (byte) renderBob::bob_table_idx#0 ← (byte~) renderBob::$7 + (byte~) renderBob::$8
|
||||
[40] *((byte*) renderBob::screen#0) ← *((const byte*) BOB_TABLES + (byte) renderBob::bob_table_idx#0)
|
||||
[41] *((byte*) renderBob::screen#0 + (byte) $28) ← *((const byte*) BOB_TABLES+(byte) 1*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[42] *((byte*) renderBob::screen#0 + (byte) $50) ← *((const byte*) BOB_TABLES+(byte) 2*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[43] *((byte*) renderBob::screen#0 + (byte) 1) ← *((const byte*) BOB_TABLES+(byte) 3*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[44] *((byte*) renderBob::screen#0 + (byte) $29) ← *((const byte*) BOB_TABLES+(byte) 4*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[45] *((byte*) renderBob::screen#0 + (byte) $51) ← *((const byte*) BOB_TABLES+(byte) 5*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[46] *((byte*) renderBob::screen#0 + (byte) 2) ← *((const byte*) BOB_TABLES+(byte) 6*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[47] *((byte*) renderBob::screen#0 + (byte) $2a) ← *((const byte*) BOB_TABLES+(byte) 7*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[48] *((byte*) renderBob::screen#0 + (byte) $52) ← *((const byte*) BOB_TABLES+(byte) 8*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
renderBob: scope:[renderBob] from main::@15 main::@16 main::@17 main::@18 main::@2 main::@9
|
||||
[79] (byte) renderBob::ypos#6 ← phi( main::@2/(byte) renderBob::ypos#0 main::@9/(byte) renderBob::ypos#1 main::@15/(byte) renderBob::ypos#2 main::@16/(byte) renderBob::ypos#3 main::@17/(byte) renderBob::ypos#4 main::@18/(byte) renderBob::ypos#5 )
|
||||
[79] (byte) renderBob::xpos#6 ← phi( main::@2/(byte) renderBob::xpos#0 main::@9/(byte) renderBob::xpos#1 main::@15/(byte) renderBob::xpos#2 main::@16/(byte) renderBob::xpos#3 main::@17/(byte) renderBob::xpos#4 main::@18/(byte) renderBob::xpos#5 )
|
||||
[80] (byte) renderBob::x_char_offset#0 ← (byte) renderBob::xpos#6 >> (byte) 2
|
||||
[81] (byte) renderBob::y_char_offset#0 ← (byte) renderBob::ypos#6 >> (byte) 3
|
||||
[82] (word~) renderBob::$2 ← (word)(byte) renderBob::y_char_offset#0
|
||||
[83] (word~) renderBob::$10 ← (word~) renderBob::$2 << (byte) 2
|
||||
[84] (word~) renderBob::$11 ← (word~) renderBob::$10 + (word~) renderBob::$2
|
||||
[85] (word) renderBob::y_offset#0 ← (word~) renderBob::$11 << (byte) 3
|
||||
[86] (byte*~) renderBob::$4 ← (const byte*) BOB_SCREEN + (word) renderBob::y_offset#0
|
||||
[87] (byte*) renderBob::screen#0 ← (byte*~) renderBob::$4 + (byte) renderBob::x_char_offset#0
|
||||
[88] (byte~) renderBob::$6 ← (byte) renderBob::ypos#6 & (byte) 7
|
||||
[89] (byte~) renderBob::$7 ← (byte~) renderBob::$6 << (byte) 2
|
||||
[90] (byte~) renderBob::$8 ← (byte) renderBob::xpos#6 & (byte) 3
|
||||
[91] (byte) renderBob::bob_table_idx#0 ← (byte~) renderBob::$7 + (byte~) renderBob::$8
|
||||
[92] *((byte*) renderBob::screen#0) ← *((const byte*) BOB_TABLES + (byte) renderBob::bob_table_idx#0)
|
||||
[93] *((byte*) renderBob::screen#0 + (byte) $28) ← *((const byte*) BOB_TABLES+(byte) 1*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[94] *((byte*) renderBob::screen#0 + (byte) $50) ← *((const byte*) BOB_TABLES+(byte) 2*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[95] *((byte*) renderBob::screen#0 + (byte) 1) ← *((const byte*) BOB_TABLES+(byte) 3*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[96] *((byte*) renderBob::screen#0 + (byte) $29) ← *((const byte*) BOB_TABLES+(byte) 4*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[97] *((byte*) renderBob::screen#0 + (byte) $51) ← *((const byte*) BOB_TABLES+(byte) 5*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[98] *((byte*) renderBob::screen#0 + (byte) 2) ← *((const byte*) BOB_TABLES+(byte) 6*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[99] *((byte*) renderBob::screen#0 + (byte) $2a) ← *((const byte*) BOB_TABLES+(byte) 7*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
[100] *((byte*) renderBob::screen#0 + (byte) $52) ← *((const byte*) BOB_TABLES+(byte) 8*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
|
||||
to:renderBob::@return
|
||||
renderBob::@return: scope:[renderBob] from renderBob
|
||||
[49] return
|
||||
[101] return
|
||||
to:@return
|
||||
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
memset: scope:[memset] from main::@4
|
||||
[50] phi()
|
||||
memset: scope:[memset] from main::@10 main::@6
|
||||
[102] (void*) memset::str#3 ← phi( main::@6/(void*)(const byte*) BOB_SCREEN main::@10/(void*)(const byte*) BOB_SCREEN )
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset memset::@2
|
||||
[51] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
||||
[52] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
||||
memset::@1: scope:[memset] from memset
|
||||
[103] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) $3e8
|
||||
[104] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3
|
||||
to:memset::@2
|
||||
memset::@2: scope:[memset] from memset::@1 memset::@3
|
||||
[105] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 )
|
||||
[106] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@1
|
||||
[53] return
|
||||
memset::@return: scope:[memset] from memset::@2
|
||||
[107] return
|
||||
to:@return
|
||||
memset::@2: scope:[memset] from memset::@1
|
||||
[54] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
||||
[55] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
to:memset::@1
|
||||
memset::@3: scope:[memset] from memset::@2
|
||||
[108] *((byte*) memset::dst#2) ← (byte) 0
|
||||
[109] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
to:memset::@2
|
||||
|
||||
(void()) prepareBobs()
|
||||
prepareBobs: scope:[prepareBobs] from main
|
||||
[56] phi()
|
||||
[57] call bobCharsetFindOrAddGlyph
|
||||
[110] phi()
|
||||
[111] call bobCharsetFindOrAddGlyph
|
||||
to:prepareBobs::@1
|
||||
prepareBobs::@1: scope:[prepareBobs] from prepareBobs prepareBobs::@8
|
||||
[58] (byte) prepareBobs::bob_table_idx#6 ← phi( prepareBobs/(byte) 0 prepareBobs::@8/(byte) prepareBobs::bob_table_idx#12 )
|
||||
[58] (byte) bob_charset_next_id#14 ← phi( prepareBobs/(byte) bob_charset_next_id#16 prepareBobs::@8/(byte) bob_charset_next_id#30 )
|
||||
[58] (byte) prepareBobs::shift_y#2 ← phi( prepareBobs/(byte) 0 prepareBobs::@8/(byte) prepareBobs::shift_y#1 )
|
||||
[59] if((byte) prepareBobs::shift_y#2<(const byte) BOB_SHIFTS_Y) goto prepareBobs::@2
|
||||
[112] (byte) prepareBobs::bob_table_idx#6 ← phi( prepareBobs/(byte) 0 prepareBobs::@8/(byte) prepareBobs::bob_table_idx#12 )
|
||||
[112] (byte) bob_charset_next_id#14 ← phi( prepareBobs/(byte) bob_charset_next_id#16 prepareBobs::@8/(byte) bob_charset_next_id#29 )
|
||||
[112] (byte) prepareBobs::shift_y#2 ← phi( prepareBobs/(byte) 0 prepareBobs::@8/(byte) prepareBobs::shift_y#1 )
|
||||
[113] if((byte) prepareBobs::shift_y#2<(const byte) BOB_SHIFTS_Y) goto prepareBobs::@2
|
||||
to:prepareBobs::@return
|
||||
prepareBobs::@return: scope:[prepareBobs] from prepareBobs::@1
|
||||
[60] return
|
||||
[114] return
|
||||
to:@return
|
||||
prepareBobs::@2: scope:[prepareBobs] from prepareBobs::@1 prepareBobs::@11
|
||||
[61] (byte) bob_charset_next_id#30 ← phi( prepareBobs::@1/(byte) bob_charset_next_id#14 prepareBobs::@11/(byte) bob_charset_next_id#21 )
|
||||
[61] (byte) prepareBobs::bob_table_idx#12 ← phi( prepareBobs::@1/(byte) prepareBobs::bob_table_idx#6 prepareBobs::@11/(byte) prepareBobs::bob_table_idx#1 )
|
||||
[61] (byte) prepareBobs::shift_x#2 ← phi( prepareBobs::@1/(byte) 0 prepareBobs::@11/(byte) prepareBobs::shift_x#1 )
|
||||
[62] if((byte) prepareBobs::shift_x#2<(const byte) BOB_SHIFTS_X) goto prepareBobs::@3
|
||||
[115] (byte) bob_charset_next_id#29 ← phi( prepareBobs::@1/(byte) bob_charset_next_id#14 prepareBobs::@11/(byte) bob_charset_next_id#21 )
|
||||
[115] (byte) prepareBobs::bob_table_idx#12 ← phi( prepareBobs::@1/(byte) prepareBobs::bob_table_idx#6 prepareBobs::@11/(byte) prepareBobs::bob_table_idx#1 )
|
||||
[115] (byte) prepareBobs::shift_x#2 ← phi( prepareBobs::@1/(byte) 0 prepareBobs::@11/(byte) prepareBobs::shift_x#1 )
|
||||
[116] if((byte) prepareBobs::shift_x#2<(const byte) BOB_SHIFTS_X) goto prepareBobs::@3
|
||||
to:prepareBobs::@4
|
||||
prepareBobs::@4: scope:[prepareBobs] from prepareBobs::@2
|
||||
[63] phi()
|
||||
[64] call shiftProtoBobDown
|
||||
[117] phi()
|
||||
[118] call shiftProtoBobDown
|
||||
to:prepareBobs::@8
|
||||
prepareBobs::@8: scope:[prepareBobs] from prepareBobs::@4
|
||||
[65] (byte) prepareBobs::shift_y#1 ← ++ (byte) prepareBobs::shift_y#2
|
||||
[119] (byte) prepareBobs::shift_y#1 ← ++ (byte) prepareBobs::shift_y#2
|
||||
to:prepareBobs::@1
|
||||
prepareBobs::@3: scope:[prepareBobs] from prepareBobs::@2
|
||||
[66] (byte*) prepareBobs::bob_table#0 ← (const byte*) BOB_TABLES + (byte) prepareBobs::bob_table_idx#12
|
||||
[120] (byte*) prepareBobs::bob_table#0 ← (const byte*) BOB_TABLES + (byte) prepareBobs::bob_table_idx#12
|
||||
to:prepareBobs::@5
|
||||
prepareBobs::@5: scope:[prepareBobs] from prepareBobs::@3 prepareBobs::@9
|
||||
[67] (byte*) prepareBobs::bob_table#2 ← phi( prepareBobs::@9/(byte*) prepareBobs::bob_table#1 prepareBobs::@3/(byte*) prepareBobs::bob_table#0 )
|
||||
[67] (byte) bob_charset_next_id#21 ← phi( prepareBobs::@9/(byte) bob_charset_next_id#16 prepareBobs::@3/(byte) bob_charset_next_id#30 )
|
||||
[67] (byte*) prepareBobs::bob_glyph#2 ← phi( prepareBobs::@9/(byte*) prepareBobs::bob_glyph#1 prepareBobs::@3/(const byte*) PROTO_BOB )
|
||||
[67] (byte) prepareBobs::cell#2 ← phi( prepareBobs::@9/(byte) prepareBobs::cell#1 prepareBobs::@3/(byte) 0 )
|
||||
[68] if((byte) prepareBobs::cell#2<(byte) 9) goto prepareBobs::@6
|
||||
[121] (byte*) prepareBobs::bob_table#2 ← phi( prepareBobs::@9/(byte*) prepareBobs::bob_table#1 prepareBobs::@3/(byte*) prepareBobs::bob_table#0 )
|
||||
[121] (byte) bob_charset_next_id#21 ← phi( prepareBobs::@9/(byte) bob_charset_next_id#16 prepareBobs::@3/(byte) bob_charset_next_id#29 )
|
||||
[121] (byte*) prepareBobs::bob_glyph#2 ← phi( prepareBobs::@9/(byte*) prepareBobs::bob_glyph#1 prepareBobs::@3/(const byte*) PROTO_BOB )
|
||||
[121] (byte) prepareBobs::cell#2 ← phi( prepareBobs::@9/(byte) prepareBobs::cell#1 prepareBobs::@3/(byte) 0 )
|
||||
[122] if((byte) prepareBobs::cell#2<(byte) 9) goto prepareBobs::@6
|
||||
to:prepareBobs::@7
|
||||
prepareBobs::@7: scope:[prepareBobs] from prepareBobs::@5
|
||||
[69] (byte) prepareBobs::bob_table_idx#1 ← ++ (byte) prepareBobs::bob_table_idx#12
|
||||
[70] call shiftProtoBobRight
|
||||
[123] (byte) prepareBobs::bob_table_idx#1 ← ++ (byte) prepareBobs::bob_table_idx#12
|
||||
[124] call shiftProtoBobRight
|
||||
to:prepareBobs::@10
|
||||
prepareBobs::@10: scope:[prepareBobs] from prepareBobs::@7
|
||||
[71] phi()
|
||||
[72] call shiftProtoBobRight
|
||||
[125] phi()
|
||||
[126] call shiftProtoBobRight
|
||||
to:prepareBobs::@11
|
||||
prepareBobs::@11: scope:[prepareBobs] from prepareBobs::@10
|
||||
[73] (byte) prepareBobs::shift_x#1 ← ++ (byte) prepareBobs::shift_x#2
|
||||
[127] (byte) prepareBobs::shift_x#1 ← ++ (byte) prepareBobs::shift_x#2
|
||||
to:prepareBobs::@2
|
||||
prepareBobs::@6: scope:[prepareBobs] from prepareBobs::@5
|
||||
[74] (byte*) bobCharsetFindOrAddGlyph::bob_glyph#1 ← (byte*) prepareBobs::bob_glyph#2
|
||||
[75] call bobCharsetFindOrAddGlyph
|
||||
[76] (byte) bobCharsetFindOrAddGlyph::return#1 ← (byte) bobCharsetFindOrAddGlyph::glyph_id#11
|
||||
[128] (byte*) bobCharsetFindOrAddGlyph::bob_glyph#1 ← (byte*) prepareBobs::bob_glyph#2
|
||||
[129] call bobCharsetFindOrAddGlyph
|
||||
[130] (byte) bobCharsetFindOrAddGlyph::return#1 ← (byte) bobCharsetFindOrAddGlyph::glyph_id#11
|
||||
to:prepareBobs::@9
|
||||
prepareBobs::@9: scope:[prepareBobs] from prepareBobs::@6
|
||||
[77] (byte~) prepareBobs::$5 ← (byte) bobCharsetFindOrAddGlyph::return#1
|
||||
[78] *((byte*) prepareBobs::bob_table#2) ← (byte~) prepareBobs::$5
|
||||
[79] (byte*) prepareBobs::bob_glyph#1 ← (byte*) prepareBobs::bob_glyph#2 + (byte) 8
|
||||
[80] (byte*) prepareBobs::bob_table#1 ← (byte*) prepareBobs::bob_table#2 + (const byte) BOB_SHIFTS_X*(const byte) BOB_SHIFTS_Y
|
||||
[81] (byte) prepareBobs::cell#1 ← ++ (byte) prepareBobs::cell#2
|
||||
[131] (byte~) prepareBobs::$5 ← (byte) bobCharsetFindOrAddGlyph::return#1
|
||||
[132] *((byte*) prepareBobs::bob_table#2) ← (byte~) prepareBobs::$5
|
||||
[133] (byte*) prepareBobs::bob_glyph#1 ← (byte*) prepareBobs::bob_glyph#2 + (byte) 8
|
||||
[134] (byte*) prepareBobs::bob_table#1 ← (byte*) prepareBobs::bob_table#2 + (const byte) BOB_SHIFTS_X*(const byte) BOB_SHIFTS_Y
|
||||
[135] (byte) prepareBobs::cell#1 ← ++ (byte) prepareBobs::cell#2
|
||||
to:prepareBobs::@5
|
||||
|
||||
(byte()) bobCharsetFindOrAddGlyph((byte*) bobCharsetFindOrAddGlyph::bob_glyph)
|
||||
bobCharsetFindOrAddGlyph: scope:[bobCharsetFindOrAddGlyph] from prepareBobs prepareBobs::@6
|
||||
[82] (byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 ← phi( prepareBobs/(const byte*) PROTO_BOB+(byte) $30 prepareBobs::@6/(byte*) bobCharsetFindOrAddGlyph::bob_glyph#1 )
|
||||
[82] (byte) bob_charset_next_id#23 ← phi( prepareBobs/(byte) 0 prepareBobs::@6/(byte) bob_charset_next_id#21 )
|
||||
[136] (byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 ← phi( prepareBobs/(const byte*) PROTO_BOB+(byte) $30 prepareBobs::@6/(byte*) bobCharsetFindOrAddGlyph::bob_glyph#1 )
|
||||
[136] (byte) bob_charset_next_id#23 ← phi( prepareBobs/(byte) 0 prepareBobs::@6/(byte) bob_charset_next_id#21 )
|
||||
to:bobCharsetFindOrAddGlyph::@1
|
||||
bobCharsetFindOrAddGlyph::@1: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph bobCharsetFindOrAddGlyph::@6
|
||||
[83] (byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 ← phi( bobCharsetFindOrAddGlyph/(const byte*) BOB_CHARSET bobCharsetFindOrAddGlyph::@6/(byte*) bobCharsetFindOrAddGlyph::glyph_cursor#1 )
|
||||
[83] (byte) bobCharsetFindOrAddGlyph::glyph_id#11 ← phi( bobCharsetFindOrAddGlyph/(byte) 0 bobCharsetFindOrAddGlyph::@6/(byte) bobCharsetFindOrAddGlyph::glyph_id#1 )
|
||||
[84] if((byte) bobCharsetFindOrAddGlyph::glyph_id#11!=(byte) bob_charset_next_id#23) goto bobCharsetFindOrAddGlyph::@2
|
||||
[137] (byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 ← phi( bobCharsetFindOrAddGlyph/(const byte*) BOB_CHARSET bobCharsetFindOrAddGlyph::@6/(byte*) bobCharsetFindOrAddGlyph::glyph_cursor#1 )
|
||||
[137] (byte) bobCharsetFindOrAddGlyph::glyph_id#11 ← phi( bobCharsetFindOrAddGlyph/(byte) 0 bobCharsetFindOrAddGlyph::@6/(byte) bobCharsetFindOrAddGlyph::glyph_id#1 )
|
||||
[138] if((byte) bobCharsetFindOrAddGlyph::glyph_id#11!=(byte) bob_charset_next_id#23) goto bobCharsetFindOrAddGlyph::@2
|
||||
to:bobCharsetFindOrAddGlyph::@7
|
||||
bobCharsetFindOrAddGlyph::@7: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@1 bobCharsetFindOrAddGlyph::@8
|
||||
[85] (byte) bobCharsetFindOrAddGlyph::i1#2 ← phi( bobCharsetFindOrAddGlyph::@8/(byte) bobCharsetFindOrAddGlyph::i1#1 bobCharsetFindOrAddGlyph::@1/(byte) 0 )
|
||||
[86] if((byte) bobCharsetFindOrAddGlyph::i1#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@8
|
||||
[139] (byte) bobCharsetFindOrAddGlyph::i1#2 ← phi( bobCharsetFindOrAddGlyph::@8/(byte) bobCharsetFindOrAddGlyph::i1#1 bobCharsetFindOrAddGlyph::@1/(byte) 0 )
|
||||
[140] if((byte) bobCharsetFindOrAddGlyph::i1#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@8
|
||||
to:bobCharsetFindOrAddGlyph::@9
|
||||
bobCharsetFindOrAddGlyph::@9: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@7
|
||||
[87] (byte) bob_charset_next_id#8 ← ++ (byte) bob_charset_next_id#23
|
||||
[141] (byte) bob_charset_next_id#8 ← ++ (byte) bob_charset_next_id#23
|
||||
to:bobCharsetFindOrAddGlyph::@return
|
||||
bobCharsetFindOrAddGlyph::@return: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@5 bobCharsetFindOrAddGlyph::@9
|
||||
[88] (byte) bob_charset_next_id#16 ← phi( bobCharsetFindOrAddGlyph::@5/(byte) bob_charset_next_id#23 bobCharsetFindOrAddGlyph::@9/(byte) bob_charset_next_id#8 )
|
||||
[89] return
|
||||
[142] (byte) bob_charset_next_id#16 ← phi( bobCharsetFindOrAddGlyph::@5/(byte) bob_charset_next_id#23 bobCharsetFindOrAddGlyph::@9/(byte) bob_charset_next_id#8 )
|
||||
[143] return
|
||||
to:@return
|
||||
bobCharsetFindOrAddGlyph::@8: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@7
|
||||
[90] *((byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) bobCharsetFindOrAddGlyph::i1#2) ← *((byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 + (byte) bobCharsetFindOrAddGlyph::i1#2)
|
||||
[91] (byte) bobCharsetFindOrAddGlyph::i1#1 ← ++ (byte) bobCharsetFindOrAddGlyph::i1#2
|
||||
[144] *((byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) bobCharsetFindOrAddGlyph::i1#2) ← *((byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 + (byte) bobCharsetFindOrAddGlyph::i1#2)
|
||||
[145] (byte) bobCharsetFindOrAddGlyph::i1#1 ← ++ (byte) bobCharsetFindOrAddGlyph::i1#2
|
||||
to:bobCharsetFindOrAddGlyph::@7
|
||||
bobCharsetFindOrAddGlyph::@2: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@1 bobCharsetFindOrAddGlyph::@4
|
||||
[92] (byte) bobCharsetFindOrAddGlyph::i#2 ← phi( bobCharsetFindOrAddGlyph::@1/(byte) 0 bobCharsetFindOrAddGlyph::@4/(byte) bobCharsetFindOrAddGlyph::i#1 )
|
||||
[93] if((byte) bobCharsetFindOrAddGlyph::i#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@3
|
||||
[146] (byte) bobCharsetFindOrAddGlyph::i#2 ← phi( bobCharsetFindOrAddGlyph::@1/(byte) 0 bobCharsetFindOrAddGlyph::@4/(byte) bobCharsetFindOrAddGlyph::i#1 )
|
||||
[147] if((byte) bobCharsetFindOrAddGlyph::i#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@3
|
||||
to:bobCharsetFindOrAddGlyph::@5
|
||||
bobCharsetFindOrAddGlyph::@3: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@2
|
||||
[94] if(*((byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) bobCharsetFindOrAddGlyph::i#2)==*((byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 + (byte) bobCharsetFindOrAddGlyph::i#2)) goto bobCharsetFindOrAddGlyph::@4
|
||||
[148] if(*((byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) bobCharsetFindOrAddGlyph::i#2)==*((byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 + (byte) bobCharsetFindOrAddGlyph::i#2)) goto bobCharsetFindOrAddGlyph::@4
|
||||
to:bobCharsetFindOrAddGlyph::@5
|
||||
bobCharsetFindOrAddGlyph::@5: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@2 bobCharsetFindOrAddGlyph::@3
|
||||
[95] (byte) bobCharsetFindOrAddGlyph::found#2 ← phi( bobCharsetFindOrAddGlyph::@3/(byte) 0 bobCharsetFindOrAddGlyph::@2/(byte) 1 )
|
||||
[96] if((byte) 0==(byte) bobCharsetFindOrAddGlyph::found#2) goto bobCharsetFindOrAddGlyph::@6
|
||||
[149] (byte) bobCharsetFindOrAddGlyph::found#2 ← phi( bobCharsetFindOrAddGlyph::@3/(byte) 0 bobCharsetFindOrAddGlyph::@2/(byte) 1 )
|
||||
[150] if((byte) 0==(byte) bobCharsetFindOrAddGlyph::found#2) goto bobCharsetFindOrAddGlyph::@6
|
||||
to:bobCharsetFindOrAddGlyph::@return
|
||||
bobCharsetFindOrAddGlyph::@6: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@5
|
||||
[97] (byte) bobCharsetFindOrAddGlyph::glyph_id#1 ← ++ (byte) bobCharsetFindOrAddGlyph::glyph_id#11
|
||||
[98] (byte*) bobCharsetFindOrAddGlyph::glyph_cursor#1 ← (byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) 8
|
||||
[151] (byte) bobCharsetFindOrAddGlyph::glyph_id#1 ← ++ (byte) bobCharsetFindOrAddGlyph::glyph_id#11
|
||||
[152] (byte*) bobCharsetFindOrAddGlyph::glyph_cursor#1 ← (byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) 8
|
||||
to:bobCharsetFindOrAddGlyph::@1
|
||||
bobCharsetFindOrAddGlyph::@4: scope:[bobCharsetFindOrAddGlyph] from bobCharsetFindOrAddGlyph::@3
|
||||
[99] (byte) bobCharsetFindOrAddGlyph::i#1 ← ++ (byte) bobCharsetFindOrAddGlyph::i#2
|
||||
[153] (byte) bobCharsetFindOrAddGlyph::i#1 ← ++ (byte) bobCharsetFindOrAddGlyph::i#2
|
||||
to:bobCharsetFindOrAddGlyph::@2
|
||||
|
||||
(void()) shiftProtoBobRight()
|
||||
shiftProtoBobRight: scope:[shiftProtoBobRight] from prepareBobs::@10 prepareBobs::@7
|
||||
[100] phi()
|
||||
[154] phi()
|
||||
to:shiftProtoBobRight::@1
|
||||
shiftProtoBobRight::@1: scope:[shiftProtoBobRight] from shiftProtoBobRight shiftProtoBobRight::@6
|
||||
[101] (byte) shiftProtoBobRight::carry#2 ← phi( shiftProtoBobRight/(byte) 0 shiftProtoBobRight::@6/(byte) shiftProtoBobRight::carry#10 )
|
||||
[101] (byte) shiftProtoBobRight::j#3 ← phi( shiftProtoBobRight/(byte) 0 shiftProtoBobRight::@6/(byte) shiftProtoBobRight::j#10 )
|
||||
[101] (byte) shiftProtoBobRight::i#2 ← phi( shiftProtoBobRight/(byte) 0 shiftProtoBobRight::@6/(byte) shiftProtoBobRight::i#1 )
|
||||
[102] if((byte) shiftProtoBobRight::i#2<(byte)(number) 3*(number) 3*(number) 8) goto shiftProtoBobRight::@2
|
||||
[155] (byte) shiftProtoBobRight::carry#2 ← phi( shiftProtoBobRight/(byte) 0 shiftProtoBobRight::@6/(byte) shiftProtoBobRight::carry#10 )
|
||||
[155] (byte) shiftProtoBobRight::j#3 ← phi( shiftProtoBobRight/(byte) 0 shiftProtoBobRight::@6/(byte) shiftProtoBobRight::j#10 )
|
||||
[155] (byte) shiftProtoBobRight::i#2 ← phi( shiftProtoBobRight/(byte) 0 shiftProtoBobRight::@6/(byte) shiftProtoBobRight::i#1 )
|
||||
[156] if((byte) shiftProtoBobRight::i#2<(byte)(number) 3*(number) 3*(number) 8) goto shiftProtoBobRight::@2
|
||||
to:shiftProtoBobRight::@return
|
||||
shiftProtoBobRight::@return: scope:[shiftProtoBobRight] from shiftProtoBobRight::@1
|
||||
[103] return
|
||||
[157] return
|
||||
to:@return
|
||||
shiftProtoBobRight::@2: scope:[shiftProtoBobRight] from shiftProtoBobRight::@1
|
||||
[104] (byte~) shiftProtoBobRight::$1 ← *((const byte*) PROTO_BOB + (byte) shiftProtoBobRight::j#3) & (byte) 1
|
||||
[105] if((byte) 0!=(byte~) shiftProtoBobRight::$1) goto shiftProtoBobRight::@3
|
||||
[158] (byte~) shiftProtoBobRight::$1 ← *((const byte*) PROTO_BOB + (byte) shiftProtoBobRight::j#3) & (byte) 1
|
||||
[159] if((byte) 0!=(byte~) shiftProtoBobRight::$1) goto shiftProtoBobRight::@3
|
||||
to:shiftProtoBobRight::@4
|
||||
shiftProtoBobRight::@3: scope:[shiftProtoBobRight] from shiftProtoBobRight::@2
|
||||
[106] phi()
|
||||
[160] phi()
|
||||
to:shiftProtoBobRight::@4
|
||||
shiftProtoBobRight::@4: scope:[shiftProtoBobRight] from shiftProtoBobRight::@2 shiftProtoBobRight::@3
|
||||
[107] (byte) shiftProtoBobRight::carry#1 ← phi( shiftProtoBobRight::@3/(byte) $80 shiftProtoBobRight::@2/(byte) 0 )
|
||||
[108] (byte~) shiftProtoBobRight::$5 ← *((const byte*) PROTO_BOB + (byte) shiftProtoBobRight::j#3) >> (byte) 1
|
||||
[109] (byte~) shiftProtoBobRight::$6 ← (byte~) shiftProtoBobRight::$5 | (byte) shiftProtoBobRight::carry#2
|
||||
[110] *((const byte*) PROTO_BOB + (byte) shiftProtoBobRight::j#3) ← (byte~) shiftProtoBobRight::$6
|
||||
[111] if((byte) shiftProtoBobRight::j#3>=(byte) $30) goto shiftProtoBobRight::@5
|
||||
[161] (byte) shiftProtoBobRight::carry#1 ← phi( shiftProtoBobRight::@3/(byte) $80 shiftProtoBobRight::@2/(byte) 0 )
|
||||
[162] (byte~) shiftProtoBobRight::$5 ← *((const byte*) PROTO_BOB + (byte) shiftProtoBobRight::j#3) >> (byte) 1
|
||||
[163] (byte~) shiftProtoBobRight::$6 ← (byte~) shiftProtoBobRight::$5 | (byte) shiftProtoBobRight::carry#2
|
||||
[164] *((const byte*) PROTO_BOB + (byte) shiftProtoBobRight::j#3) ← (byte~) shiftProtoBobRight::$6
|
||||
[165] if((byte) shiftProtoBobRight::j#3>=(byte) $30) goto shiftProtoBobRight::@5
|
||||
to:shiftProtoBobRight::@7
|
||||
shiftProtoBobRight::@7: scope:[shiftProtoBobRight] from shiftProtoBobRight::@4
|
||||
[112] (byte) shiftProtoBobRight::j#2 ← (byte) shiftProtoBobRight::j#3 + (byte) $18
|
||||
[166] (byte) shiftProtoBobRight::j#2 ← (byte) shiftProtoBobRight::j#3 + (byte) $18
|
||||
to:shiftProtoBobRight::@6
|
||||
shiftProtoBobRight::@6: scope:[shiftProtoBobRight] from shiftProtoBobRight::@5 shiftProtoBobRight::@7
|
||||
[113] (byte) shiftProtoBobRight::j#10 ← phi( shiftProtoBobRight::@7/(byte) shiftProtoBobRight::j#2 shiftProtoBobRight::@5/(byte) shiftProtoBobRight::j#1 )
|
||||
[114] (byte) shiftProtoBobRight::i#1 ← ++ (byte) shiftProtoBobRight::i#2
|
||||
[115] (byte) shiftProtoBobRight::carry#10 ← (byte) shiftProtoBobRight::carry#1
|
||||
[167] (byte) shiftProtoBobRight::j#10 ← phi( shiftProtoBobRight::@7/(byte) shiftProtoBobRight::j#2 shiftProtoBobRight::@5/(byte) shiftProtoBobRight::j#1 )
|
||||
[168] (byte) shiftProtoBobRight::i#1 ← ++ (byte) shiftProtoBobRight::i#2
|
||||
[169] (byte) shiftProtoBobRight::carry#10 ← (byte) shiftProtoBobRight::carry#1
|
||||
to:shiftProtoBobRight::@1
|
||||
shiftProtoBobRight::@5: scope:[shiftProtoBobRight] from shiftProtoBobRight::@4
|
||||
[116] (byte) shiftProtoBobRight::j#1 ← (byte) shiftProtoBobRight::j#3 - (byte) $2f
|
||||
[170] (byte) shiftProtoBobRight::j#1 ← (byte) shiftProtoBobRight::j#3 - (byte) $2f
|
||||
to:shiftProtoBobRight::@6
|
||||
|
||||
(void()) shiftProtoBobDown()
|
||||
shiftProtoBobDown: scope:[shiftProtoBobDown] from prepareBobs::@4
|
||||
[117] phi()
|
||||
[171] phi()
|
||||
to:shiftProtoBobDown::@1
|
||||
shiftProtoBobDown::@1: scope:[shiftProtoBobDown] from shiftProtoBobDown shiftProtoBobDown::@2
|
||||
[118] (byte) shiftProtoBobDown::i#2 ← phi( shiftProtoBobDown/(byte) $17 shiftProtoBobDown::@2/(byte) shiftProtoBobDown::i#1 )
|
||||
[119] if((byte) shiftProtoBobDown::i#2>(byte) 0) goto shiftProtoBobDown::@2
|
||||
[172] (byte) shiftProtoBobDown::i#2 ← phi( shiftProtoBobDown/(byte) $17 shiftProtoBobDown::@2/(byte) shiftProtoBobDown::i#1 )
|
||||
[173] if((byte) shiftProtoBobDown::i#2>(byte) 0) goto shiftProtoBobDown::@2
|
||||
to:shiftProtoBobDown::@3
|
||||
shiftProtoBobDown::@3: scope:[shiftProtoBobDown] from shiftProtoBobDown::@1
|
||||
[120] *((const byte*) PROTO_BOB) ← (byte) 0
|
||||
[121] *((const byte*) PROTO_BOB+(byte) $18) ← (byte) 0
|
||||
[122] *((const byte*) PROTO_BOB+(byte) $30) ← (byte) 0
|
||||
[174] *((const byte*) PROTO_BOB) ← (byte) 0
|
||||
[175] *((const byte*) PROTO_BOB+(byte) $18) ← (byte) 0
|
||||
[176] *((const byte*) PROTO_BOB+(byte) $30) ← (byte) 0
|
||||
to:shiftProtoBobDown::@return
|
||||
shiftProtoBobDown::@return: scope:[shiftProtoBobDown] from shiftProtoBobDown::@3
|
||||
[123] return
|
||||
[177] return
|
||||
to:@return
|
||||
shiftProtoBobDown::@2: scope:[shiftProtoBobDown] from shiftProtoBobDown::@1
|
||||
[124] *((const byte*) PROTO_BOB + (byte) shiftProtoBobDown::i#2) ← *((const byte*) PROTO_BOB+(byte) $17 + (byte) shiftProtoBobDown::i#2)
|
||||
[125] *((const byte*) PROTO_BOB+(byte) $18 + (byte) shiftProtoBobDown::i#2) ← *((const byte*) PROTO_BOB+(byte) $2f + (byte) shiftProtoBobDown::i#2)
|
||||
[126] *((const byte*) PROTO_BOB+(byte) $30 + (byte) shiftProtoBobDown::i#2) ← (byte) 0
|
||||
[127] (byte) shiftProtoBobDown::i#1 ← -- (byte) shiftProtoBobDown::i#2
|
||||
[178] *((const byte*) PROTO_BOB + (byte) shiftProtoBobDown::i#2) ← *((const byte*) PROTO_BOB+(byte) $17 + (byte) shiftProtoBobDown::i#2)
|
||||
[179] *((const byte*) PROTO_BOB+(byte) $18 + (byte) shiftProtoBobDown::i#2) ← *((const byte*) PROTO_BOB+(byte) $2f + (byte) shiftProtoBobDown::i#2)
|
||||
[180] *((const byte*) PROTO_BOB+(byte) $30 + (byte) shiftProtoBobDown::i#2) ← (byte) 0
|
||||
[181] (byte) shiftProtoBobDown::i#1 ← -- (byte) shiftProtoBobDown::i#2
|
||||
to:shiftProtoBobDown::@1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,22 +1,31 @@
|
||||
(label) @1
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(const byte*) BOB_CHARSET = (byte*) 24576
|
||||
(const byte*) BOB_CHARSET = (byte*) 16384
|
||||
(const byte*) BOB_SCREEN = (byte*) 18432
|
||||
(const byte) BOB_SHIFTS_X = (number) 4
|
||||
(const byte) BOB_SHIFTS_Y = (number) 8
|
||||
(const byte) BOB_SUBTABLE_SIZE = (const byte) BOB_SHIFTS_X*(const byte) BOB_SHIFTS_Y
|
||||
(const byte*) BOB_TABLES = { fill( 9*8*4, 0) }
|
||||
(const byte*) BORDERCOL = (byte*) 53280
|
||||
(const byte*) CHARSET_BASIC = (byte*) 4096
|
||||
(const byte*) CIA1_PORT_A = (byte*) 56320
|
||||
(const byte*) CIA1_PORT_B = (byte*) 56321
|
||||
(const byte*) CIA2_PORT_A = (byte*) 56576
|
||||
(const byte*) CIA2_PORT_A_DDR = (byte*) 56578
|
||||
(const byte*) D018 = (byte*) 53272
|
||||
(const byte) KEY_SPACE = (number) $3c
|
||||
(const byte*) PROTO_BOB = kickasm {{ .var pic = LoadPicture("smiley.png", List().add($000000, $ffffff))
|
||||
.for (var x=0;x<3; x++)
|
||||
.for (var y=0; y<24; y++)
|
||||
.byte pic.getSinglecolorByte(x,y)
|
||||
}}
|
||||
(const byte) RADIX::BINARY = (number) 2
|
||||
(const byte) RADIX::DECIMAL = (number) $a
|
||||
(const byte) RADIX::HEXADECIMAL = (number) $10
|
||||
(const byte) RADIX::OCTAL = (number) 8
|
||||
(const byte*) RASTER = (byte*) 53266
|
||||
(const byte*) SCREEN = (byte*) 16384
|
||||
(const byte*) SCREEN_BASIC = (byte*) 1024
|
||||
(const byte*) SIN_X_TAB = kickasm {{ .fill $200, 75.5+75.5*sin(i*2*PI/256) }}
|
||||
(const byte*) SIN_Y_TAB = kickasm {{ .fill $200, 91.5+91.5*sin(i*2*PI/256) }}
|
||||
(byte()) bobCharsetFindOrAddGlyph((byte*) bobCharsetFindOrAddGlyph::bob_glyph)
|
||||
@ -36,68 +45,132 @@
|
||||
(byte) bobCharsetFindOrAddGlyph::found
|
||||
(byte) bobCharsetFindOrAddGlyph::found#2 reg byte a 10001.0
|
||||
(byte*) bobCharsetFindOrAddGlyph::glyph_cursor
|
||||
(byte*) bobCharsetFindOrAddGlyph::glyph_cursor#1 glyph_cursor zp[2]:12 20002.0
|
||||
(byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 glyph_cursor zp[2]:12 10000.307692307691
|
||||
(byte*) bobCharsetFindOrAddGlyph::glyph_cursor#1 glyph_cursor zp[2]:10 20002.0
|
||||
(byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 glyph_cursor zp[2]:10 10000.307692307691
|
||||
(byte) bobCharsetFindOrAddGlyph::glyph_id
|
||||
(byte) bobCharsetFindOrAddGlyph::glyph_id#1 glyph_id zp[1]:9 10001.0
|
||||
(byte) bobCharsetFindOrAddGlyph::glyph_id#11 glyph_id zp[1]:9 1937.75
|
||||
(byte) bobCharsetFindOrAddGlyph::glyph_id#1 glyph_id zp[1]:8 10001.0
|
||||
(byte) bobCharsetFindOrAddGlyph::glyph_id#11 glyph_id zp[1]:8 1937.75
|
||||
(byte) bobCharsetFindOrAddGlyph::i
|
||||
(byte) bobCharsetFindOrAddGlyph::i#1 i zp[1]:7 200002.0
|
||||
(byte) bobCharsetFindOrAddGlyph::i#2 i zp[1]:7 166668.3333333333
|
||||
(byte) bobCharsetFindOrAddGlyph::i#1 i zp[1]:12 200002.0
|
||||
(byte) bobCharsetFindOrAddGlyph::i#2 i zp[1]:12 166668.3333333333
|
||||
(byte) bobCharsetFindOrAddGlyph::i1
|
||||
(byte) bobCharsetFindOrAddGlyph::i1#1 reg byte y 20002.0
|
||||
(byte) bobCharsetFindOrAddGlyph::i1#2 reg byte y 16668.333333333332
|
||||
(byte) bobCharsetFindOrAddGlyph::return
|
||||
(byte) bobCharsetFindOrAddGlyph::return#1 reg byte a 2002.0
|
||||
(byte) bob_charset_next_id
|
||||
(byte) bob_charset_next_id#14 bob_charset_next_id zp[1]:14 12.0
|
||||
(byte) bob_charset_next_id#16 bob_charset_next_id zp[1]:14 1100.6000000000001
|
||||
(byte) bob_charset_next_id#21 bob_charset_next_id zp[1]:14 275.5
|
||||
(byte) bob_charset_next_id#23 bob_charset_next_id zp[1]:14 1400.3333333333335
|
||||
(byte) bob_charset_next_id#30 bob_charset_next_id zp[1]:14 37.33333333333333
|
||||
(byte) bob_charset_next_id#8 bob_charset_next_id zp[1]:14 4.0
|
||||
(byte) bob_charset_next_id#14 bob_charset_next_id zp[1]:9 12.0
|
||||
(byte) bob_charset_next_id#16 bob_charset_next_id zp[1]:9 1100.6000000000001
|
||||
(byte) bob_charset_next_id#21 bob_charset_next_id zp[1]:9 275.5
|
||||
(byte) bob_charset_next_id#23 bob_charset_next_id zp[1]:9 1400.3333333333335
|
||||
(byte) bob_charset_next_id#29 bob_charset_next_id zp[1]:9 37.33333333333333
|
||||
(byte) bob_charset_next_id#8 bob_charset_next_id zp[1]:9 4.0
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$2 reg byte a 4.0
|
||||
(label) keyboard_key_pressed::@1
|
||||
(label) keyboard_key_pressed::@return
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(const byte) keyboard_key_pressed::colidx#0 colidx = (const byte) KEY_SPACE&(byte) 7
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 reg byte a 7.000000000000001
|
||||
(byte) keyboard_key_pressed::return#2 reg byte a 22.0
|
||||
(byte) keyboard_key_pressed::return#3 reg byte a 22.0
|
||||
(byte) keyboard_key_pressed::return#4 reg byte a 22.0
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE>>(byte) 3
|
||||
(const byte*) keyboard_matrix_col_bitmask = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 }
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
(label) keyboard_matrix_read::@return
|
||||
(byte) keyboard_matrix_read::return
|
||||
(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333
|
||||
(byte) keyboard_matrix_read::return#2 reg byte a 4.0
|
||||
(byte) keyboard_matrix_read::row_pressed_bits
|
||||
(byte) keyboard_matrix_read::rowid
|
||||
(const byte*) keyboard_matrix_row_bitmask = { (byte) $fe, (byte) $fd, (byte) $fb, (byte) $f7, (byte) $ef, (byte) $df, (byte) $bf, (byte) $7f }
|
||||
(void()) main()
|
||||
(byte~) main::$14 reg byte a 22.0
|
||||
(byte~) main::$16 reg byte a 22.0
|
||||
(byte~) main::$25 reg byte a 22.0
|
||||
(byte~) main::$30 reg byte a 202.0
|
||||
(byte~) main::$31 reg byte a 202.0
|
||||
(byte~) main::$33 reg byte a 202.0
|
||||
(byte~) main::$34 reg byte a 202.0
|
||||
(byte~) main::$7 reg byte a 202.0
|
||||
(byte~) main::$9 reg byte a 202.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@11
|
||||
(label) main::@12
|
||||
(label) main::@13
|
||||
(label) main::@14
|
||||
(label) main::@15
|
||||
(label) main::@16
|
||||
(label) main::@17
|
||||
(label) main::@18
|
||||
(label) main::@19
|
||||
(label) main::@2
|
||||
(label) main::@20
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@8
|
||||
(label) main::@9
|
||||
(label) main::@return
|
||||
(byte) main::sin_x_idx
|
||||
(byte) main::sin_x_idx#1 sin_x_idx zp[1]:2 7.333333333333333
|
||||
(byte) main::sin_x_idx#7 sin_x_idx zp[1]:2 4.583333333333333
|
||||
(byte) main::sin_x_idx#1 sin_x_idx zp[1]:3 3.142857142857143
|
||||
(byte) main::sin_x_idx#9 sin_x_idx zp[1]:3 4.277777777777779
|
||||
(byte) main::sin_y_idx
|
||||
(byte) main::sin_y_idx#1 sin_y_idx zp[1]:3 11.0
|
||||
(byte) main::sin_y_idx#7 sin_y_idx zp[1]:3 4.230769230769231
|
||||
(byte) main::sin_y_idx#1 reg byte x 3.6666666666666665
|
||||
(byte) main::sin_y_idx#9 reg byte x 4.052631578947368
|
||||
(label) main::toD0181
|
||||
(byte*) main::toD0181_gfx
|
||||
(byte) main::toD0181_return
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) BOB_CHARSET/(byte) 4&(byte) $f
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) BOB_SCREEN&(word) $3fff*(byte) 4
|
||||
(byte*) main::toD0181_screen
|
||||
(label) main::toD0182
|
||||
(byte*) main::toD0182_gfx
|
||||
(byte) main::toD0182_return
|
||||
(const byte) main::toD0182_return#0 toD0182_return = >(word)(const byte*) SCREEN_BASIC&(word) $3fff*(byte) 4|>(word)(const byte*) CHARSET_BASIC/(byte) 4&(byte) $f
|
||||
(byte*) main::toD0182_screen
|
||||
(label) main::vicSelectGfxBank1
|
||||
(label) main::vicSelectGfxBank1_@1
|
||||
(byte*) main::vicSelectGfxBank1_gfx
|
||||
(label) main::vicSelectGfxBank1_toDd001
|
||||
(byte*) main::vicSelectGfxBank1_toDd001_gfx
|
||||
(byte) main::vicSelectGfxBank1_toDd001_return
|
||||
(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3^>(word)(const byte*) SCREEN/(byte) $40
|
||||
(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3^>(word)(const byte*) BOB_SCREEN/(byte) $40
|
||||
(label) main::vicSelectGfxBank2
|
||||
(label) main::vicSelectGfxBank2_@1
|
||||
(byte*) main::vicSelectGfxBank2_gfx
|
||||
(label) main::vicSelectGfxBank2_toDd001
|
||||
(byte*) main::vicSelectGfxBank2_toDd001_gfx
|
||||
(byte) main::vicSelectGfxBank2_toDd001_return
|
||||
(const byte) main::vicSelectGfxBank2_toDd001_return#0 vicSelectGfxBank2_toDd001_return = (byte) 3
|
||||
(byte) main::x
|
||||
(byte) main::x#1 x zp[1]:2 16.5
|
||||
(byte) main::x#4 x zp[1]:2 25.0
|
||||
(byte) main::y
|
||||
(byte) main::y#1 reg byte x 151.5
|
||||
(byte) main::y#2 reg byte x 50.5
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
(label) memset::@2
|
||||
(label) memset::@3
|
||||
(label) memset::@return
|
||||
(byte) memset::c
|
||||
(const byte) memset::c#0 c = (byte) 0
|
||||
(byte*) memset::dst
|
||||
(byte*) memset::dst#1 dst zp[2]:5 22.0
|
||||
(byte*) memset::dst#2 dst zp[2]:5 14.666666666666666
|
||||
(byte*) memset::dst#2 dst zp[2]:5 15.333333333333332
|
||||
(byte*) memset::dst#4 dst zp[2]:5 4.0
|
||||
(byte*) memset::end
|
||||
(const byte*) memset::end#0 end = (byte*)(const void*) memset::str#0+(const word) memset::num#0
|
||||
(byte*) memset::end#0 end zp[2]:13 2.1666666666666665
|
||||
(word) memset::num
|
||||
(const word) memset::num#0 num = (word) $3e8
|
||||
(void*) memset::return
|
||||
(void*) memset::str
|
||||
(const void*) memset::str#0 str = (void*)(const byte*) SCREEN
|
||||
(void*) memset::str#3 str zp[2]:5
|
||||
(void()) prepareBobs()
|
||||
(byte~) prepareBobs::$5 reg byte a 2002.0
|
||||
(label) prepareBobs::@1
|
||||
@ -116,16 +189,16 @@
|
||||
(byte*) prepareBobs::bob_glyph#1 bob_glyph zp[2]:5 667.3333333333334
|
||||
(byte*) prepareBobs::bob_glyph#2 bob_glyph zp[2]:5 429.0
|
||||
(byte*) prepareBobs::bob_table
|
||||
(byte*) prepareBobs::bob_table#0 bob_table zp[2]:10 202.0
|
||||
(byte*) prepareBobs::bob_table#1 bob_table zp[2]:10 1001.0
|
||||
(byte*) prepareBobs::bob_table#2 bob_table zp[2]:10 388.0
|
||||
(byte*) prepareBobs::bob_table#0 bob_table zp[2]:13 202.0
|
||||
(byte*) prepareBobs::bob_table#1 bob_table zp[2]:13 1001.0
|
||||
(byte*) prepareBobs::bob_table#2 bob_table zp[2]:13 388.0
|
||||
(byte) prepareBobs::bob_table_idx
|
||||
(byte) prepareBobs::bob_table_idx#1 bob_table_idx zp[1]:3 40.4
|
||||
(byte) prepareBobs::bob_table_idx#12 bob_table_idx zp[1]:3 20.3125
|
||||
(byte) prepareBobs::bob_table_idx#6 bob_table_idx zp[1]:3 11.0
|
||||
(byte) prepareBobs::cell
|
||||
(byte) prepareBobs::cell#1 cell zp[1]:8 2002.0
|
||||
(byte) prepareBobs::cell#2 cell zp[1]:8 333.6666666666667
|
||||
(byte) prepareBobs::cell#1 cell zp[1]:7 2002.0
|
||||
(byte) prepareBobs::cell#2 cell zp[1]:7 333.6666666666667
|
||||
(byte) prepareBobs::shift_x
|
||||
(byte) prepareBobs::shift_x#1 shift_x zp[1]:4 202.0
|
||||
(byte) prepareBobs::shift_x#2 shift_x zp[1]:4 17.823529411764707
|
||||
@ -133,34 +206,40 @@
|
||||
(byte) prepareBobs::shift_y#1 shift_y zp[1]:2 22.0
|
||||
(byte) prepareBobs::shift_y#2 shift_y zp[1]:2 1.5
|
||||
(void()) renderBob((byte) renderBob::xpos , (byte) renderBob::ypos)
|
||||
(word~) renderBob::$10 zp[2]:12 4.0
|
||||
(word~) renderBob::$11 zp[2]:10 4.0
|
||||
(word~) renderBob::$2 zp[2]:10 3.0
|
||||
(byte*~) renderBob::$4 zp[2]:10 4.0
|
||||
(word~) renderBob::$10 zp[2]:10 4.0
|
||||
(word~) renderBob::$11 zp[2]:13 4.0
|
||||
(word~) renderBob::$2 zp[2]:13 3.0
|
||||
(byte*~) renderBob::$4 zp[2]:13 4.0
|
||||
(byte~) renderBob::$6 reg byte a 4.0
|
||||
(byte~) renderBob::$7 zp[1]:14 2.0
|
||||
(byte~) renderBob::$7 zp[1]:12 2.0
|
||||
(byte~) renderBob::$8 reg byte a 4.0
|
||||
(label) renderBob::@return
|
||||
(byte) renderBob::bob_table_idx
|
||||
(byte) renderBob::bob_table_idx#0 reg byte x 2.2222222222222228
|
||||
(byte) renderBob::bob_table_idx#0 bob_table_idx zp[1]:12 2.2222222222222228
|
||||
(byte*) renderBob::screen
|
||||
(byte*) renderBob::screen#0 screen zp[2]:10 1.5384615384615383
|
||||
(byte*) renderBob::screen#0 screen zp[2]:13 1.5384615384615383
|
||||
(byte) renderBob::x_char_offset
|
||||
(byte) renderBob::x_char_offset#0 reg byte y 0.5714285714285714
|
||||
(byte) renderBob::x_char_offset#0 x_char_offset zp[1]:9 0.5714285714285714
|
||||
(byte) renderBob::xpos
|
||||
(byte) renderBob::xpos#0 xpos zp[1]:4 11.0
|
||||
(byte) renderBob::xpos#0 xpos zp[1]:4 40.4
|
||||
(byte) renderBob::xpos#1 xpos zp[1]:4 11.0
|
||||
(byte) renderBob::xpos#2 xpos zp[1]:4 11.0
|
||||
(byte) renderBob::xpos#3 xpos zp[1]:4 3.3636363636363633
|
||||
(byte) renderBob::xpos#3 xpos zp[1]:4 11.0
|
||||
(byte) renderBob::xpos#4 xpos zp[1]:4 11.0
|
||||
(byte) renderBob::xpos#5 xpos zp[1]:4 11.0
|
||||
(byte) renderBob::xpos#6 xpos zp[1]:4 14.545454545454545
|
||||
(byte) renderBob::y_char_offset
|
||||
(byte) renderBob::y_char_offset#0 reg byte a 2.0
|
||||
(word) renderBob::y_offset
|
||||
(word) renderBob::y_offset#0 y_offset zp[2]:10 4.0
|
||||
(word) renderBob::y_offset#0 y_offset zp[2]:13 4.0
|
||||
(byte) renderBob::ypos
|
||||
(byte) renderBob::ypos#0 reg byte x 22.0
|
||||
(byte) renderBob::ypos#1 reg byte x 22.0
|
||||
(byte) renderBob::ypos#2 reg byte x 22.0
|
||||
(byte) renderBob::ypos#3 reg byte x 4.111111111111112
|
||||
(byte) renderBob::ypos#0 reg byte y 202.0
|
||||
(byte) renderBob::ypos#1 reg byte y 22.0
|
||||
(byte) renderBob::ypos#2 reg byte y 22.0
|
||||
(byte) renderBob::ypos#3 reg byte y 22.0
|
||||
(byte) renderBob::ypos#4 reg byte y 22.0
|
||||
(byte) renderBob::ypos#5 reg byte y 22.0
|
||||
(byte) renderBob::ypos#6 reg byte y 17.77777777777777
|
||||
(void()) shiftProtoBobDown()
|
||||
(label) shiftProtoBobDown::@1
|
||||
(label) shiftProtoBobDown::@2
|
||||
@ -182,12 +261,12 @@
|
||||
(label) shiftProtoBobRight::@7
|
||||
(label) shiftProtoBobRight::@return
|
||||
(byte) shiftProtoBobRight::carry
|
||||
(byte) shiftProtoBobRight::carry#1 carry zp[1]:9 111.22222222222223
|
||||
(byte) shiftProtoBobRight::carry#1 carry zp[1]:8 111.22222222222223
|
||||
(byte) shiftProtoBobRight::carry#10 reg byte y 2002.0
|
||||
(byte) shiftProtoBobRight::carry#2 reg byte y 286.0
|
||||
(byte) shiftProtoBobRight::i
|
||||
(byte) shiftProtoBobRight::i#1 i zp[1]:8 1001.0
|
||||
(byte) shiftProtoBobRight::i#2 i zp[1]:8 231.0
|
||||
(byte) shiftProtoBobRight::i#1 i zp[1]:7 1001.0
|
||||
(byte) shiftProtoBobRight::i#2 i zp[1]:7 231.0
|
||||
(byte) shiftProtoBobRight::j
|
||||
(byte) shiftProtoBobRight::j#1 reg byte x 2002.0
|
||||
(byte) shiftProtoBobRight::j#10 reg byte x 1001.0
|
||||
@ -195,27 +274,43 @@
|
||||
(byte) shiftProtoBobRight::j#3 reg byte x 700.7
|
||||
(byte) shiftProtoBobRight::new_carry
|
||||
|
||||
reg byte x [ renderBob::ypos#3 renderBob::ypos#1 renderBob::ypos#2 renderBob::ypos#0 ]
|
||||
zp[1]:2 [ prepareBobs::shift_y#2 prepareBobs::shift_y#1 main::sin_x_idx#7 main::sin_x_idx#1 ]
|
||||
zp[1]:3 [ prepareBobs::bob_table_idx#6 prepareBobs::bob_table_idx#12 prepareBobs::bob_table_idx#1 main::sin_y_idx#7 main::sin_y_idx#1 ]
|
||||
zp[1]:4 [ prepareBobs::shift_x#2 prepareBobs::shift_x#1 renderBob::xpos#3 renderBob::xpos#1 renderBob::xpos#2 renderBob::xpos#0 ]
|
||||
zp[2]:5 [ prepareBobs::bob_glyph#2 prepareBobs::bob_glyph#1 bobCharsetFindOrAddGlyph::bob_glyph#10 bobCharsetFindOrAddGlyph::bob_glyph#1 memset::dst#2 memset::dst#1 ]
|
||||
reg byte x [ main::y#2 main::y#1 ]
|
||||
reg byte x [ main::sin_y_idx#9 main::sin_y_idx#1 ]
|
||||
reg byte y [ renderBob::ypos#6 renderBob::ypos#0 renderBob::ypos#1 renderBob::ypos#2 renderBob::ypos#3 renderBob::ypos#4 renderBob::ypos#5 ]
|
||||
zp[1]:2 [ prepareBobs::shift_y#2 prepareBobs::shift_y#1 main::x#4 main::x#1 ]
|
||||
zp[1]:3 [ prepareBobs::bob_table_idx#6 prepareBobs::bob_table_idx#12 prepareBobs::bob_table_idx#1 main::sin_x_idx#9 main::sin_x_idx#1 ]
|
||||
zp[1]:4 [ prepareBobs::shift_x#2 prepareBobs::shift_x#1 renderBob::xpos#6 renderBob::xpos#0 renderBob::xpos#1 renderBob::xpos#2 renderBob::xpos#3 renderBob::xpos#4 renderBob::xpos#5 ]
|
||||
zp[2]:5 [ prepareBobs::bob_glyph#2 prepareBobs::bob_glyph#1 bobCharsetFindOrAddGlyph::bob_glyph#10 bobCharsetFindOrAddGlyph::bob_glyph#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ]
|
||||
reg byte y [ bobCharsetFindOrAddGlyph::i1#2 bobCharsetFindOrAddGlyph::i1#1 ]
|
||||
zp[1]:7 [ bobCharsetFindOrAddGlyph::i#2 bobCharsetFindOrAddGlyph::i#1 ]
|
||||
reg byte a [ bobCharsetFindOrAddGlyph::found#2 ]
|
||||
zp[1]:8 [ shiftProtoBobRight::i#2 shiftProtoBobRight::i#1 prepareBobs::cell#2 prepareBobs::cell#1 ]
|
||||
zp[1]:7 [ shiftProtoBobRight::i#2 shiftProtoBobRight::i#1 prepareBobs::cell#2 prepareBobs::cell#1 ]
|
||||
reg byte x [ shiftProtoBobRight::j#3 shiftProtoBobRight::j#10 shiftProtoBobRight::j#2 shiftProtoBobRight::j#1 ]
|
||||
reg byte y [ shiftProtoBobRight::carry#2 shiftProtoBobRight::carry#10 ]
|
||||
zp[1]:9 [ shiftProtoBobRight::carry#1 bobCharsetFindOrAddGlyph::glyph_id#11 bobCharsetFindOrAddGlyph::glyph_id#1 ]
|
||||
zp[1]:8 [ shiftProtoBobRight::carry#1 bobCharsetFindOrAddGlyph::glyph_id#11 bobCharsetFindOrAddGlyph::glyph_id#1 ]
|
||||
reg byte x [ shiftProtoBobDown::i#2 shiftProtoBobDown::i#1 ]
|
||||
reg byte y [ renderBob::x_char_offset#0 ]
|
||||
reg byte a [ main::$30 ]
|
||||
reg byte a [ main::$31 ]
|
||||
reg byte a [ main::$7 ]
|
||||
reg byte a [ main::$33 ]
|
||||
reg byte a [ main::$34 ]
|
||||
reg byte a [ main::$9 ]
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ main::$14 ]
|
||||
reg byte a [ keyboard_key_pressed::return#3 ]
|
||||
reg byte a [ main::$16 ]
|
||||
reg byte a [ keyboard_key_pressed::return#4 ]
|
||||
reg byte a [ main::$25 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
reg byte a [ keyboard_key_pressed::$2 ]
|
||||
reg byte a [ keyboard_key_pressed::return#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
zp[1]:9 [ renderBob::x_char_offset#0 bob_charset_next_id#23 bob_charset_next_id#14 bob_charset_next_id#16 bob_charset_next_id#29 bob_charset_next_id#21 bob_charset_next_id#8 ]
|
||||
reg byte a [ renderBob::y_char_offset#0 ]
|
||||
zp[2]:10 [ renderBob::$2 renderBob::$11 renderBob::y_offset#0 renderBob::$4 renderBob::screen#0 prepareBobs::bob_table#2 prepareBobs::bob_table#1 prepareBobs::bob_table#0 ]
|
||||
zp[2]:12 [ renderBob::$10 bobCharsetFindOrAddGlyph::glyph_cursor#11 bobCharsetFindOrAddGlyph::glyph_cursor#1 ]
|
||||
zp[2]:10 [ renderBob::$10 bobCharsetFindOrAddGlyph::glyph_cursor#11 bobCharsetFindOrAddGlyph::glyph_cursor#1 ]
|
||||
reg byte a [ renderBob::$6 ]
|
||||
zp[1]:14 [ renderBob::$7 bob_charset_next_id#23 bob_charset_next_id#14 bob_charset_next_id#16 bob_charset_next_id#30 bob_charset_next_id#21 bob_charset_next_id#8 ]
|
||||
zp[1]:12 [ renderBob::$7 renderBob::bob_table_idx#0 bobCharsetFindOrAddGlyph::i#2 bobCharsetFindOrAddGlyph::i#1 ]
|
||||
reg byte a [ renderBob::$8 ]
|
||||
reg byte x [ renderBob::bob_table_idx#0 ]
|
||||
zp[2]:13 [ memset::end#0 renderBob::$2 renderBob::$11 renderBob::y_offset#0 renderBob::$4 renderBob::screen#0 prepareBobs::bob_table#2 prepareBobs::bob_table#1 prepareBobs::bob_table#0 ]
|
||||
reg byte a [ bobCharsetFindOrAddGlyph::return#1 ]
|
||||
reg byte a [ prepareBobs::$5 ]
|
||||
reg byte a [ shiftProtoBobRight::$1 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user