1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-04-07 06:37:31 +00:00

Working on deprecating lo/hi operators. Closes #667

This commit is contained in:
jespergravgaard 2021-06-13 13:29:49 +02:00
parent fa2378c38d
commit 44db8db459
16 changed files with 26767 additions and 9543 deletions

View File

@ -63,17 +63,17 @@
// Bit 0: Tile Width (0:8 pixels, 1:16 pixels)
.label VERA_L1_TILEBASE = $9f36
// Variable holding the screen width;
.label conio_screen_width = $12
.label conio_screen_width = $14
// Variable holding the screen height;
.label conio_screen_height = $13
.label conio_screen_height = $15
// Variable holding the screen layer on the VERA card with which conio interacts;
.label conio_screen_layer = $14
.label conio_screen_layer = $16
// Variables holding the current map width and map height of the layer.
.label conio_width = $15
.label conio_height = $17
.label conio_rowshift = $19
.label conio_rowskip = $1a
.label CONIO_SCREEN_BANK = $38
.label conio_width = $17
.label conio_height = $19
.label conio_rowshift = $1b
.label conio_rowskip = $1c
.label CONIO_SCREEN_BANK = $26
// The screen width
// The screen height
// The text screen base address, which is a 16:0 bit value in VERA VRAM.
@ -88,7 +88,7 @@
// based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer.
// The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the
// mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE.
.label CONIO_SCREEN_TEXT = $39
.label CONIO_SCREEN_TEXT = $27
.segment Code
__start: {
// __ma unsigned byte conio_screen_width = 0
@ -159,36 +159,19 @@ conio_x16_init: {
}
// Functions for performing input and output.
main: {
//(byte)(((((word)<(>calcend)<<8)|>(<calcend))>>5)+((word)<(>calcend)<<3));
.const borderbeg = $a000
.const inc = $123
.label __1 = $1c
.label __3 = $20
.label __4 = $20
.label __6 = $22
.label __8 = $24
.label __9 = $24
.label __10 = $26
.label __11 = $26
.label __13 = $24
.label __14 = $2b
.label __15 = $2b
.label __17 = $2d
.label __19 = $2f
.label __20 = $2f
.label __21 = $31
.label __22 = $31
.label __24 = $2f
.label __25 = $f
.label __27 = $36
.label __30 = $24
.label __31 = $28
.label __32 = $2f
.label __33 = $33
.label calcend = $1c
.label bankbeg = $2a
.label bankend = $35
.label __1 = $1e
.label __4 = $22
.label __9 = $23
.label __13 = $f
.label __15 = $24
.label calcend = $1e
.label bankbeg = $22
.label bankend = $23
.label beg = $f
.label end = $36
.label end = $24
.label num = 7
.label src1 = 3
lda #<$40*$40*2
@ -253,154 +236,60 @@ main: {
bne !+
inc.z calcend+3
!:
// >calcbeg
// BYTE2(calcbeg)
lda.z src1+2
sta.z __3
lda.z src1+3
sta.z __3+1
// (>calcbeg)<<8
lda.z __4
sta.z __4+1
lda #0
// BYTE2(calcbeg)<<3
asl
asl
asl
sta.z __4
// <(>calcbeg)<<8
tay
// <calcbeg
lda.z src1
sta.z __6
// BYTE1(calcbeg)
lda.z src1+1
sta.z __6+1
// >(<calcbeg)
tax
// ((word)<(>calcbeg)<<8)|>(<calcbeg)
tya
sta.z __30
sta.z __30+1
txa
ora.z __8
sta.z __8
// (((word)<(>calcbeg)<<8)|>(<calcbeg))>>5
lsr.z __9+1
ror.z __9
lsr.z __9+1
ror.z __9
lsr.z __9+1
ror.z __9
lsr.z __9+1
ror.z __9
lsr.z __9+1
ror.z __9
// >calcbeg
lda.z src1+2
sta.z __10
lda.z src1+3
sta.z __10+1
// (>calcbeg)<<3
asl.z __11
rol.z __11+1
asl.z __11
rol.z __11+1
asl.z __11
rol.z __11+1
// <(>calcbeg)<<3
lda.z __11
// ((((word)<(>calcbeg)<<8)|>(<calcbeg))>>5)+((word)<(>calcbeg)<<3)
sta.z __31
tya
sta.z __31+1
lda.z __13
clc
adc.z __31
sta.z __13
lda.z __13+1
adc.z __31+1
sta.z __13+1
// byte bankbeg = (byte)(((((word)<(>calcbeg)<<8)|>(<calcbeg))>>5)+((word)<(>calcbeg)<<3))
lda.z __13
// BYTE1(calcbeg)>>5
lsr
lsr
lsr
lsr
lsr
// byte bankbeg = BYTE2(calcbeg)<<3 | BYTE1(calcbeg)>>5
ora.z bankbeg
sta.z bankbeg
// >calcend
// BYTE2(calcend)
lda.z calcend+2
sta.z __14
lda.z calcend+3
sta.z __14+1
// (>calcend)<<8
lda.z __15
sta.z __15+1
tya
sta.z __15
// <(>calcend)<<8
tay
// <calcend
lda.z calcend
sta.z __17
// BYTE2(calcend)<<3
asl
asl
asl
sta.z __9
// BYTE1(calcend)
lda.z calcend+1
sta.z __17+1
// >(<calcend)
tax
// ((word)<(>calcend)<<8)|>(<calcend)
tya
sta.z __32
sta.z __32+1
txa
ora.z __19
sta.z __19
// (((word)<(>calcend)<<8)|>(<calcend))>>5
lsr.z __20+1
ror.z __20
lsr.z __20+1
ror.z __20
lsr.z __20+1
ror.z __20
lsr.z __20+1
ror.z __20
lsr.z __20+1
ror.z __20
// >calcend
lda.z calcend+2
sta.z __21
lda.z calcend+3
sta.z __21+1
// (>calcend)<<3
asl.z __22
rol.z __22+1
asl.z __22
rol.z __22+1
asl.z __22
rol.z __22+1
// <(>calcend)<<3
lda.z __22
// ((((word)<(>calcend)<<8)|>(<calcend))>>5)+((word)<(>calcend)<<3)
sta.z __33
tya
sta.z __33+1
lda.z __24
clc
adc.z __33
sta.z __24
lda.z __24+1
adc.z __33+1
sta.z __24+1
// byte bankend = (byte)(((((word)<(>calcend)<<8)|>(<calcend))>>5)+((word)<(>calcend)<<3))
lda.z __24
// BYTE1(calcend)>>5
lsr
lsr
lsr
lsr
lsr
// byte bankend = BYTE2(calcend)<<3 | BYTE1(calcend)>>5
ora.z bankend
sta.z bankend
// <calcbeg
// WORD0(calcbeg)
lda.z src1
sta.z __25
sta.z __13
lda.z src1+1
sta.z __25+1
// word beg = ((<calcbeg)&0x1FFF)
sta.z __13+1
// word beg = (WORD0(calcbeg)&0x1FFF)
lda.z beg
and #<$1fff
sta.z beg
lda.z beg+1
and #>$1fff
sta.z beg+1
// <calcend
// WORD0(calcend)
lda.z calcend
sta.z __27
sta.z __15
lda.z calcend+1
sta.z __27+1
// word end = ((<calcend)&0x1FFF)
sta.z __15+1
// word end = (WORD0(calcend)&0x1FFF)
lda.z end
and #<$1fff
sta.z end
@ -637,13 +526,13 @@ screensize: {
// - layer: value of 0 or 1.
screenlayer: {
.const layer = 1
.label __2 = $3b
.label __4 = $3d
.label __5 = $49
.label vera_layer_get_width1_config = $4b
.label vera_layer_get_width1_return = $3b
.label vera_layer_get_height1_config = $3f
.label vera_layer_get_height1_return = $49
.label __2 = $29
.label __4 = $2b
.label __5 = $37
.label vera_layer_get_width1_config = $39
.label vera_layer_get_width1_return = $29
.label vera_layer_get_height1_config = $2d
.label vera_layer_get_height1_return = $37
// conio_screen_layer = layer
lda #layer
sta.z conio_screen_layer
@ -771,7 +660,7 @@ vera_layer_set_backcolor: {
// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes.
// vera_layer_set_mapbase(byte register(A) layer, byte register(X) mapbase)
vera_layer_set_mapbase: {
.label addr = $3b
.label addr = $29
// byte* addr = vera_layer_mapbase[layer]
asl
tay
@ -789,8 +678,8 @@ vera_layer_set_mapbase: {
// Set the cursor to the specified position
// gotoxy(byte register(X) y)
gotoxy: {
.label __6 = $3d
.label line_offset = $3d
.label __6 = $2b
.label line_offset = $2b
// if(y>CONIO_HEIGHT)
lda.z conio_screen_height
stx.z $ff
@ -833,9 +722,9 @@ gotoxy: {
rts
}
// Output a NUL-terminated string at the current cursor position
// cputs(const byte* zp($22) s)
// cputs(const byte* zp($12) s)
cputs: {
.label s = $22
.label s = $12
__b1:
// while(c=*s++)
ldy #0
@ -939,12 +828,12 @@ vera_layer_mode_tile: {
sta vera_layer_rowskip+vera_layer_mode_text.layer*SIZEOF_WORD+1
// vera_layer_set_config(layer, config)
jsr vera_layer_set_config
// vera_mapbase_offset[layer] = <mapbase_address
// vera_mapbase_offset[layer] = WORD0(mapbase_address)
// mapbase
lda #<0
sta vera_mapbase_offset+vera_layer_mode_text.layer*SIZEOF_WORD
sta vera_mapbase_offset+vera_layer_mode_text.layer*SIZEOF_WORD+1
// vera_mapbase_bank[layer] = (byte)(>mapbase_address)
// vera_mapbase_bank[layer] = BYTE2(mapbase_address)
sta vera_mapbase_bank+vera_layer_mode_text.layer
// vera_mapbase_address[layer] = mapbase_address
lda #<vera_layer_mode_text.mapbase_address
@ -959,13 +848,13 @@ vera_layer_mode_tile: {
ldx #mapbase
lda #vera_layer_mode_text.layer
jsr vera_layer_set_mapbase
// vera_tilebase_offset[layer] = <tilebase_address
// vera_tilebase_offset[layer] = WORD0(tilebase_address)
// tilebase
lda #<vera_layer_mode_text.tilebase_address&$ffff
sta vera_tilebase_offset+vera_layer_mode_text.layer*SIZEOF_WORD
lda #>vera_layer_mode_text.tilebase_address&$ffff
sta vera_tilebase_offset+vera_layer_mode_text.layer*SIZEOF_WORD+1
// vera_tilebase_bank[layer] = (byte)>tilebase_address
// vera_tilebase_bank[layer] = BYTE2(tilebase_address)
lda #0
sta vera_tilebase_bank+vera_layer_mode_text.layer
// vera_tilebase_address[layer] = tilebase_address
@ -986,7 +875,7 @@ vera_layer_mode_tile: {
// - layer: Value of 0 or 1.
// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode.
vera_layer_set_text_color_mode: {
.label addr = $3f
.label addr = $2d
// byte* addr = vera_layer_config[layer]
lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER
sta.z addr
@ -1018,7 +907,7 @@ vera_layer_get_mapbase_bank: {
// - return: Offset in vera vram of the specified bank.
// vera_layer_get_mapbase_offset(byte register(A) layer)
vera_layer_get_mapbase_offset: {
.label return = $4b
.label return = $39
// return vera_mapbase_offset[layer];
asl
tay
@ -1044,7 +933,7 @@ vera_layer_get_rowshift: {
// - return: Skip value to calculate fast from a y value to line offset in tile mode.
// vera_layer_get_rowskip(byte register(A) layer)
vera_layer_get_rowskip: {
.label return = $3d
.label return = $2b
// return vera_layer_rowskip[layer];
asl
tay
@ -1059,8 +948,8 @@ vera_layer_get_rowskip: {
// Moves the cursor forward. Scrolls the entire screen if needed
// cputc(byte zp($11) c)
cputc: {
.label __16 = $41
.label conio_addr = $47
.label __16 = $2f
.label conio_addr = $35
.label c = $11
// vera_layer_get_color( conio_screen_layer)
ldx.z conio_screen_layer
@ -1100,14 +989,14 @@ cputc: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <conio_addr
// BYTE0(conio_addr)
lda.z conio_addr
// *VERA_ADDRX_L = <conio_addr
// *VERA_ADDRX_L = BYTE0(conio_addr)
// Set address
sta VERA_ADDRX_L
// >conio_addr
// BYTE1(conio_addr)
lda.z conio_addr+1
// *VERA_ADDRX_M = >conio_addr
// *VERA_ADDRX_M = BYTE1(conio_addr)
sta VERA_ADDRX_M
// CONIO_SCREEN_BANK | VERA_INC_1
lda #VERA_INC_1
@ -1163,10 +1052,10 @@ cputc: {
// - value : The number to be converted to RADIX
// - buffer : receives the string representing the number and zero-termination.
// - radix : The radix to convert the number to (from the enum RADIX)
// ultoa(dword zp($b) value, byte* zp($22) buffer)
// ultoa(dword zp($b) value, byte* zp($12) buffer)
ultoa: {
.label digit_value = $43
.label buffer = $22
.label digit_value = $31
.label buffer = $12
.label digit = $11
.label value = $b
lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
@ -1273,12 +1162,12 @@ printf_number_buffer: {
// - value : The number to be converted to RADIX
// - buffer : receives the string representing the number and zero-termination.
// - radix : The radix to convert the number to (from the enum RADIX)
// uctoa(byte register(X) value, byte* zp($22) buffer)
// uctoa(byte register(X) value, byte* zp($12) buffer)
uctoa: {
.label digit_value = $4f
.label buffer = $22
.label digit_value = $3d
.label buffer = $12
.label digit = $11
.label started = $2a
.label started = $22
lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
sta.z buffer
lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
@ -1339,10 +1228,10 @@ uctoa: {
// - value : The number to be converted to RADIX
// - buffer : receives the string representing the number and zero-termination.
// - radix : The radix to convert the number to (from the enum RADIX)
// utoa(word zp($f) value, byte* zp($22) buffer)
// utoa(word zp($f) value, byte* zp($12) buffer)
utoa: {
.label digit_value = $47
.label buffer = $22
.label digit_value = $35
.label buffer = $12
.label digit = $11
.label value = $f
lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
@ -1358,9 +1247,8 @@ utoa: {
cmp #4-1
bcc __b2
// *buffer++ = DIGITS[(char)value]
lda.z value
tay
lda DIGITS,y
ldx.z value
lda DIGITS,x
ldy #0
sta (buffer),y
// *buffer++ = DIGITS[(char)value];
@ -1414,7 +1302,7 @@ utoa: {
// - layer: Value of 0 or 1.
// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'.
vera_layer_set_config: {
.label addr = $49
.label addr = $37
// byte* addr = vera_layer_config[layer]
lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER
sta.z addr
@ -1433,14 +1321,14 @@ vera_layer_set_config: {
// Note that the register only specifies bits 16:11 of the address,
// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes!
vera_layer_set_tilebase: {
.label addr = $4b
.label addr = $39
// byte* addr = vera_layer_tilebase[layer]
lda vera_layer_tilebase+vera_layer_mode_text.layer*SIZEOF_POINTER
sta.z addr
lda vera_layer_tilebase+vera_layer_mode_text.layer*SIZEOF_POINTER+1
sta.z addr+1
// *addr = tilebase
lda #(>(vera_layer_mode_tile.tilebase_address&$ffff))&VERA_LAYER_TILEBASE_MASK
lda #(>vera_layer_mode_tile.tilebase_address)&VERA_LAYER_TILEBASE_MASK
ldy #0
sta (addr),y
// }
@ -1453,7 +1341,7 @@ vera_layer_set_tilebase: {
// Note that on the VERA, the transparent color has value 0.
// vera_layer_get_color(byte register(X) layer)
vera_layer_get_color: {
.label addr = $4d
.label addr = $3b
// byte* addr = vera_layer_config[layer]
txa
asl
@ -1486,7 +1374,7 @@ vera_layer_get_color: {
}
// Print a newline
cputln: {
.label temp = $4d
.label temp = $3b
// word temp = conio_line_text[conio_screen_layer]
lda.z conio_screen_layer
asl
@ -1532,11 +1420,11 @@ cputln: {
// - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased.
// (For decimal the subs used are 10000, 1000, 100, 10, 1)
// returns : the value reduced by sub * digit so that it is less than sub.
// ultoa_append(byte* zp($22) buffer, dword zp($b) value, dword zp($43) sub)
// ultoa_append(byte* zp($12) buffer, dword zp($b) value, dword zp($31) sub)
ultoa_append: {
.label buffer = $22
.label buffer = $12
.label value = $b
.label sub = $43
.label sub = $31
.label return = $b
ldx #0
__b1:
@ -1590,10 +1478,10 @@ ultoa_append: {
// - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased.
// (For decimal the subs used are 10000, 1000, 100, 10, 1)
// returns : the value reduced by sub * digit so that it is less than sub.
// uctoa_append(byte* zp($22) buffer, byte register(X) value, byte zp($4f) sub)
// uctoa_append(byte* zp($12) buffer, byte register(X) value, byte zp($3d) sub)
uctoa_append: {
.label buffer = $22
.label sub = $4f
.label buffer = $12
.label sub = $3d
ldy #0
__b1:
// while (value >= sub)
@ -1623,11 +1511,11 @@ uctoa_append: {
// - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased.
// (For decimal the subs used are 10000, 1000, 100, 10, 1)
// returns : the value reduced by sub * digit so that it is less than sub.
// utoa_append(byte* zp($22) buffer, word zp($f) value, word zp($47) sub)
// utoa_append(byte* zp($12) buffer, word zp($f) value, word zp($35) sub)
utoa_append: {
.label buffer = $22
.label buffer = $12
.label value = $f
.label sub = $47
.label sub = $35
.label return = $f
ldx #0
__b1:
@ -1689,10 +1577,10 @@ cscroll: {
}
// Insert a new line, and scroll the upper part of the screen up.
insertup: {
.label cy = $4f
.label width = $50
.label line = $51
.label start = $51
.label cy = $3d
.label width = $3e
.label line = $3f
.label start = $3f
// unsigned byte cy = conio_cursor_y[conio_screen_layer]
ldy.z conio_screen_layer
lda conio_cursor_y,y
@ -1757,8 +1645,8 @@ insertup: {
jmp __b1
}
clearline: {
.label addr = $55
.label c = $20
.label addr = $43
.label c = $2f
// *VERA_CTRL &= ~VERA_ADDRSEL
// Select DATA0
lda #VERA_ADDRSEL^$ff
@ -1776,13 +1664,13 @@ clearline: {
lda.z CONIO_SCREEN_TEXT+1
adc conio_line_text+1,y
sta.z addr+1
// <addr
// BYTE0(addr)
lda.z addr
// *VERA_ADDRX_L = <addr
// *VERA_ADDRX_L = BYTE0(addr)
sta VERA_ADDRX_L
// >addr
// BYTE1(addr)
lda.z addr+1
// *VERA_ADDRX_M = >addr
// *VERA_ADDRX_M = BYTE1(addr)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = VERA_INC_1
lda #VERA_INC_1
@ -1834,25 +1722,25 @@ clearline: {
// - dest: pointer to the location to copy to. Note that the address is a 16 bit value!
// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access.
// - num: The number of bytes to copy
// memcpy_in_vram(void* zp($51) dest, byte* zp($55) src, word zp($53) num)
// memcpy_in_vram(void* zp($3f) dest, byte* zp($43) src, word zp($41) num)
memcpy_in_vram: {
.label i = $20
.label dest = $51
.label src = $55
.label num = $53
.label i = $2f
.label dest = $3f
.label src = $43
.label num = $41
// *VERA_CTRL &= ~VERA_ADDRSEL
// Select DATA0
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <src
// BYTE0(src)
lda.z src
// *VERA_ADDRX_L = <src
// *VERA_ADDRX_L = BYTE0(src)
// Set address
sta VERA_ADDRX_L
// >src
// BYTE1(src)
lda.z src+1
// *VERA_ADDRX_M = >src
// *VERA_ADDRX_M = BYTE1(src)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = src_increment | src_bank
lda #VERA_INC_1
@ -1862,14 +1750,14 @@ memcpy_in_vram: {
lda #VERA_ADDRSEL
ora VERA_CTRL
sta VERA_CTRL
// <dest
// BYTE0(dest)
lda.z dest
// *VERA_ADDRX_L = <dest
// *VERA_ADDRX_L = BYTE0(dest)
// Set address
sta VERA_ADDRX_L
// >dest
// BYTE1(dest)
lda.z dest+1
// *VERA_ADDRX_M = >dest
// *VERA_ADDRX_M = BYTE1(dest)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = dest_increment | dest_bank
lda #VERA_INC_1

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,8 @@
constant const byte BLUE = 6
byte CONIO_SCREEN_BANK
byte CONIO_SCREEN_BANK#10 CONIO_SCREEN_BANK zp[1]:56 523560.7434554974
byte CONIO_SCREEN_BANK#10 CONIO_SCREEN_BANK zp[1]:38 578035.2716763006
byte* CONIO_SCREEN_TEXT
word CONIO_SCREEN_TEXT#101 CONIO_SCREEN_TEXT zp[2]:57 0.4225941422594142
word CONIO_SCREEN_TEXT#101 CONIO_SCREEN_TEXT zp[2]:39 0.45701357466063347
constant byte* DIGITS[] = "0123456789abcdef"z
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte RADIX::BINARY = 2
@ -47,23 +47,23 @@ byte~ clearline::$1 reg byte a 2.000000000002E12
byte~ clearline::$2 reg byte a 2.000000000002E12
byte~ clearline::$5 reg byte a 2.000000000002E12
byte* clearline::addr
byte* clearline::addr#0 addr zp[2]:85 1.000000000001E12
byte* clearline::addr#0 addr zp[2]:67 1.000000000001E12
word clearline::c
word clearline::c#1 c zp[2]:32 2.000000000000002E15
word clearline::c#2 c zp[2]:32 7.500000000000008E14
word clearline::c#1 c zp[2]:47 2.000000000000002E15
word clearline::c#2 c zp[2]:47 7.500000000000008E14
byte clearline::color
byte clearline::color#0 reg byte x 1.668333333333337E14
constant byte* conio_cursor_x[2] = { 0, 0 }
constant byte* conio_cursor_y[2] = { 0, 0 }
word conio_height loadstore zp[2]:23 5.714285773714286E7
word conio_height loadstore zp[2]:25 6.369426817834395E7
constant word* conio_line_text[2] = { 0, 0 }
byte conio_rowshift loadstore zp[1]:25 4.5917431192708716E11
word conio_rowskip loadstore zp[2]:26 5.00005000000525E11
volatile byte conio_screen_height loadstore zp[1]:19 6.091370559746193E8
byte conio_screen_layer loadstore zp[1]:20 1.3214230772042307E10
volatile byte conio_screen_width loadstore zp[1]:18 4.311207327586233E12
byte conio_rowshift loadstore zp[1]:27 5.00500000000525E11
word conio_rowskip loadstore zp[2]:28 5.4945604395662085E11
volatile byte conio_screen_height loadstore zp[1]:21 6.703910616033521E8
byte conio_screen_layer loadstore zp[1]:22 1.4197107441037191E10
volatile byte conio_screen_width loadstore zp[1]:20 4.673832242990682E12
constant byte* conio_scroll_enable[2] = { 1, 1 }
word conio_width loadstore zp[2]:21 564972.3389830509
word conio_width loadstore zp[2]:23 628931.4716981133
void conio_x16_init()
constant byte* const conio_x16_init::BASIC_CURSOR_LINE = (byte*) 214
byte conio_x16_init::line
@ -72,7 +72,7 @@ byte conio_x16_init::line#1 line zp[1]:2 22.0
byte conio_x16_init::line#3 line zp[1]:2 33.0
void cputc(byte cputc::c)
byte~ cputc::$15 reg byte a 2.00000002E8
word~ cputc::$16 zp[2]:65 2.00000002E8
word~ cputc::$16 zp[2]:47 2.00000002E8
byte~ cputc::$2 reg byte a 2.00000002E8
byte~ cputc::$4 reg byte a 2.00000002E8
byte~ cputc::$5 reg byte a 2.00000002E8
@ -84,29 +84,29 @@ byte cputc::c#3 c zp[1]:17 1.2353529647058824E7
byte cputc::color
byte cputc::color#0 reg byte x 1.428571442857143E7
byte* cputc::conio_addr
byte* cputc::conio_addr#0 conio_addr zp[2]:71 1.00000001E8
byte* cputc::conio_addr#1 conio_addr zp[2]:71 6.0000000599999994E7
byte* cputc::conio_addr#0 conio_addr zp[2]:53 1.00000001E8
byte* cputc::conio_addr#1 conio_addr zp[2]:53 6.0000000599999994E7
byte cputc::scroll_enable
byte cputc::scroll_enable#0 reg byte a 2.00000002E8
void cputln()
byte~ cputln::$2 reg byte a 2.000000002E9
byte~ cputln::$3 reg byte a 2.000000002E9
word cputln::temp
word cputln::temp#0 temp zp[2]:77 2.000000002E9
word cputln::temp#1 temp zp[2]:77 1.000000001E9
word cputln::temp#0 temp zp[2]:59 2.000000002E9
word cputln::temp#1 temp zp[2]:59 1.000000001E9
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1.0000001E7
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:34 5000000.5
const byte* cputs::s#10 s zp[2]:34 1.5050002E7
const byte* cputs::s#11 s zp[2]:34 100001.0
const byte* cputs::s#0 s zp[2]:18 5000000.5
const byte* cputs::s#10 s zp[2]:18 1.5050002E7
const byte* cputs::s#11 s zp[2]:18 100001.0
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte~ gotoxy::$5 reg byte a 2.00000000002E11
word~ gotoxy::$6 zp[2]:61 2.00000000002E11
word~ gotoxy::$6 zp[2]:43 2.00000000002E11
word gotoxy::line_offset
word gotoxy::line_offset#0 line_offset zp[2]:61 1.00000000001E11
word gotoxy::line_offset#0 line_offset zp[2]:43 1.00000000001E11
byte gotoxy::x
byte gotoxy::y
byte gotoxy::y#1 reg byte x 22.0
@ -116,64 +116,46 @@ byte gotoxy::y#4 reg byte x 4.00000000004E10
void insertup()
byte~ insertup::$3 reg byte a 2.00000000000002E14
byte insertup::cy
byte insertup::cy#0 cy zp[1]:79 8.341666666666834E12
byte insertup::cy#0 cy zp[1]:61 8.341666666666834E12
byte insertup::i
byte insertup::i#1 reg byte x 2.00000000000002E14
byte insertup::i#2 reg byte x 4.444444444444489E13
word insertup::line
word insertup::line#0 line zp[2]:81 2.00000000000002E14
word insertup::line#0 line zp[2]:63 2.00000000000002E14
byte* insertup::start
byte* insertup::start#0 start zp[2]:81 1.00000000000001E14
byte* insertup::start#0 start zp[2]:63 1.00000000000001E14
byte insertup::width
byte insertup::width#0 width zp[1]:80 9.100000000000182E12
byte insertup::width#0 width zp[1]:62 9.100000000000182E12
void main()
dword~ main::$1 zp[4]:28 202.0
word~ main::$10 zp[2]:38 202.0
word~ main::$11 zp[2]:38 202.0
byte~ main::$12 reg byte a 101.0
word~ main::$13 zp[2]:36 101.0
word~ main::$14 zp[2]:43 202.0
word~ main::$15 zp[2]:43 202.0
byte~ main::$16 reg byte y 33.666666666666664
word~ main::$17 zp[2]:45 202.0
byte~ main::$18 reg byte x 101.0
word~ main::$19 zp[2]:47 202.0
word~ main::$20 zp[2]:47 40.4
word~ main::$21 zp[2]:49 202.0
word~ main::$22 zp[2]:49 202.0
byte~ main::$23 reg byte a 101.0
word~ main::$24 zp[2]:47 101.0
word~ main::$25 zp[2]:15 202.0
word~ main::$27 zp[2]:54 202.0
word~ main::$3 zp[2]:32 202.0
word~ main::$30 zp[2]:36 202.0
word~ main::$31 zp[2]:40 202.0
word~ main::$32 zp[2]:47 202.0
word~ main::$33 zp[2]:51 202.0
word~ main::$4 zp[2]:32 202.0
byte~ main::$5 reg byte y 33.666666666666664
word~ main::$6 zp[2]:34 202.0
byte~ main::$7 reg byte x 101.0
word~ main::$8 zp[2]:36 202.0
word~ main::$9 zp[2]:36 40.4
dword~ main::$1 zp[4]:30 202.0
byte~ main::$10 reg byte a 202.0
byte~ main::$11 reg byte a 202.0
word~ main::$13 zp[2]:15 202.0
word~ main::$15 zp[2]:36 202.0
byte~ main::$3 reg byte a 202.0
byte~ main::$4 zp[1]:34 67.33333333333333
byte~ main::$5 reg byte a 202.0
byte~ main::$6 reg byte a 202.0
byte~ main::$8 reg byte a 202.0
byte~ main::$9 zp[1]:35 67.33333333333333
byte main::bankbeg
byte main::bankbeg#0 bankbeg zp[1]:42 5.9411764705882355
byte main::bankbeg#0 bankbeg zp[1]:34 8.08
byte main::bankend
byte main::bankend#0 bankend zp[1]:53 8.416666666666666
byte main::bankend#0 bankend zp[1]:35 8.416666666666666
word main::beg
word main::beg#0 beg zp[2]:15 67.33333333333333
word main::beg#1 beg zp[2]:15 8.782608695652174
constant const word main::borderbeg = $a000
dword main::calcbeg
dword main::calcend
dword main::calcend#0 calcend zp[4]:28 13.772727272727272
dword main::calcend#0 calcend zp[4]:30 19.423076923076923
word main::end
word main::end#0 end zp[2]:54 101.0
word main::end#1 end zp[2]:54 7.769230769230769
word main::end#0 end zp[2]:36 101.0
word main::end#1 end zp[2]:36 7.769230769230769
constant word main::inc = $123
dword main::num
dword main::num#1 num zp[4]:7 151.5
dword main::num#10 num zp[4]:7 6.029850746268656
dword main::num#10 num zp[4]:7 8.244897959183673
constant byte* main::s[6] = "cbeg="
constant byte* main::s1[7] = ", add="
constant byte* main::s2[8] = ", cend="
@ -185,23 +167,23 @@ constant byte* main::s7[2] = "
"
dword main::src1
dword main::src1#1 src1 zp[4]:3 202.0
dword main::src1#10 src1 zp[4]:3 13.367647058823529
dword main::src1#10 src1 zp[4]:3 16.16
void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest , byte memcpy_in_vram::dest_increment , byte memcpy_in_vram::src_bank , void* memcpy_in_vram::src , byte memcpy_in_vram::src_increment , word memcpy_in_vram::num)
byte~ memcpy_in_vram::$0 reg byte a 2.000000000000002E15
byte~ memcpy_in_vram::$1 reg byte a 2.000000000000002E15
byte~ memcpy_in_vram::$3 reg byte a 2.000000000000002E15
byte~ memcpy_in_vram::$4 reg byte a 2.000000000000002E15
void* memcpy_in_vram::dest
void* memcpy_in_vram::dest#0 dest zp[2]:81 1.909090909090912E14
void* memcpy_in_vram::dest#0 dest zp[2]:63 1.909090909090912E14
byte memcpy_in_vram::dest_bank
byte memcpy_in_vram::dest_increment
word memcpy_in_vram::i
word memcpy_in_vram::i#1 i zp[2]:32 2.0E19
word memcpy_in_vram::i#2 i zp[2]:32 1.0E19
word memcpy_in_vram::i#1 i zp[2]:47 2.0E19
word memcpy_in_vram::i#2 i zp[2]:47 1.0E19
word memcpy_in_vram::num
word memcpy_in_vram::num#0 num zp[2]:83 5.8824117647058829E17
word memcpy_in_vram::num#0 num zp[2]:65 5.8824117647058829E17
void* memcpy_in_vram::src
byte* memcpy_in_vram::src#0 src zp[2]:85 1.6666666666666834E13
byte* memcpy_in_vram::src#0 src zp[2]:67 1.6666666666666834E13
byte memcpy_in_vram::src_bank
byte memcpy_in_vram::src_increment
struct printf_buffer_number printf_buffer loadstore mem[12] = {}
@ -260,10 +242,10 @@ dword printf_ulong::uvalue#1 uvalue zp[4]:11 202.0
dword printf_ulong::uvalue#2 uvalue zp[4]:11 202.0
dword printf_ulong::uvalue#3 uvalue zp[4]:11 652.0
void screenlayer(byte screenlayer::layer)
word~ screenlayer::$2 zp[2]:59 202.0
word~ screenlayer::$2 zp[2]:41 202.0
byte~ screenlayer::$3 reg byte a 202.0
word~ screenlayer::$4 zp[2]:61 202.0
word~ screenlayer::$5 zp[2]:73 202.0
word~ screenlayer::$4 zp[2]:43 202.0
word~ screenlayer::$5 zp[2]:55 202.0
byte screenlayer::layer
constant byte screenlayer::layer#0 layer = 1
byte~ screenlayer::vera_layer_get_height1_$0 reg byte a 202.0
@ -271,23 +253,23 @@ byte~ screenlayer::vera_layer_get_height1_$1 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$2 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$3 reg byte a 202.0
byte* screenlayer::vera_layer_get_height1_config
byte* screenlayer::vera_layer_get_height1_config#0 vera_layer_get_height1_config zp[2]:63 202.0
byte* screenlayer::vera_layer_get_height1_config#0 vera_layer_get_height1_config zp[2]:45 202.0
byte screenlayer::vera_layer_get_height1_layer
byte screenlayer::vera_layer_get_height1_layer#0 reg byte a 202.0
word screenlayer::vera_layer_get_height1_return
word screenlayer::vera_layer_get_height1_return#0 vera_layer_get_height1_return zp[2]:73 202.0
word screenlayer::vera_layer_get_height1_return#1 vera_layer_get_height1_return zp[2]:73 202.0
word screenlayer::vera_layer_get_height1_return#0 vera_layer_get_height1_return zp[2]:55 202.0
word screenlayer::vera_layer_get_height1_return#1 vera_layer_get_height1_return zp[2]:55 202.0
byte~ screenlayer::vera_layer_get_width1_$0 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$1 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$2 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$3 reg byte a 202.0
byte* screenlayer::vera_layer_get_width1_config
byte* screenlayer::vera_layer_get_width1_config#0 vera_layer_get_width1_config zp[2]:75 202.0
byte* screenlayer::vera_layer_get_width1_config#0 vera_layer_get_width1_config zp[2]:57 202.0
byte screenlayer::vera_layer_get_width1_layer
byte screenlayer::vera_layer_get_width1_layer#0 reg byte a 202.0
word screenlayer::vera_layer_get_width1_return
word screenlayer::vera_layer_get_width1_return#0 vera_layer_get_width1_return zp[2]:59 202.0
word screenlayer::vera_layer_get_width1_return#1 vera_layer_get_width1_return zp[2]:59 202.0
word screenlayer::vera_layer_get_width1_return#0 vera_layer_get_width1_return zp[2]:41 202.0
word screenlayer::vera_layer_get_width1_return#1 vera_layer_get_width1_return zp[2]:41 202.0
void screensize(byte* screensize::x , byte* screensize::y)
byte~ screensize::$1 reg byte a 202.0
byte~ screensize::$3 reg byte a 202.0
@ -301,21 +283,21 @@ byte* screensize::y
constant byte* screensize::y#0 y = &conio_screen_height
void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix)
byte* uctoa::buffer
byte* uctoa::buffer#11 buffer zp[2]:34 335000.50000000006
byte* uctoa::buffer#14 buffer zp[2]:34 1500001.5
byte* uctoa::buffer#3 buffer zp[2]:34 20002.0
byte* uctoa::buffer#4 buffer zp[2]:34 2000002.0
byte* uctoa::buffer#11 buffer zp[2]:18 335000.50000000006
byte* uctoa::buffer#14 buffer zp[2]:18 1500001.5
byte* uctoa::buffer#3 buffer zp[2]:18 20002.0
byte* uctoa::buffer#4 buffer zp[2]:18 2000002.0
byte uctoa::digit
byte uctoa::digit#1 digit zp[1]:17 2000002.0
byte uctoa::digit#2 digit zp[1]:17 307692.6153846154
byte uctoa::digit_value
byte uctoa::digit_value#0 digit_value zp[1]:79 600000.6000000001
byte uctoa::digit_value#0 digit_value zp[1]:61 600000.6000000001
byte* uctoa::digit_values
byte uctoa::max_digits
byte uctoa::radix
byte uctoa::started
byte uctoa::started#2 started zp[1]:42 600000.6000000001
byte uctoa::started#4 started zp[1]:42 1000001.0
byte uctoa::started#2 started zp[1]:34 600000.6000000001
byte uctoa::started#4 started zp[1]:34 1000001.0
byte uctoa::value
byte uctoa::value#0 reg byte x 1000001.0
byte uctoa::value#1 reg byte x 5501.0
@ -323,14 +305,14 @@ byte uctoa::value#2 reg byte x 670001.0000000001
byte uctoa::value#6 reg byte x 1500001.5
byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub)
byte* uctoa_append::buffer
byte* uctoa_append::buffer#0 buffer zp[2]:34 1375000.25
byte* uctoa_append::buffer#0 buffer zp[2]:18 1375000.25
byte uctoa_append::digit
byte uctoa_append::digit#1 reg byte y 1.0000000001E10
byte uctoa_append::digit#2 reg byte y 1.00050000015E10
byte uctoa_append::return
byte uctoa_append::return#0 reg byte x 2000002.0
byte uctoa_append::sub
byte uctoa_append::sub#0 sub zp[1]:79 3.3335000005E9
byte uctoa_append::sub#0 sub zp[1]:61 3.3335000005E9
byte uctoa_append::value
byte uctoa_append::value#0 reg byte x 3666667.333333333
byte uctoa_append::value#1 reg byte x 2.0000000002E10
@ -339,15 +321,15 @@ void ultoa(dword ultoa::value , byte* ultoa::buffer , byte ultoa::radix)
byte~ ultoa::$10 reg byte a 2000002.0
byte~ ultoa::$11 reg byte a 20002.0
byte* ultoa::buffer
byte* ultoa::buffer#11 buffer zp[2]:34 287143.2857142857
byte* ultoa::buffer#14 buffer zp[2]:34 1500001.5
byte* ultoa::buffer#3 buffer zp[2]:34 20002.0
byte* ultoa::buffer#4 buffer zp[2]:34 2000002.0
byte* ultoa::buffer#11 buffer zp[2]:18 287143.2857142857
byte* ultoa::buffer#14 buffer zp[2]:18 1500001.5
byte* ultoa::buffer#3 buffer zp[2]:18 20002.0
byte* ultoa::buffer#4 buffer zp[2]:18 2000002.0
byte ultoa::digit
byte ultoa::digit#1 digit zp[1]:17 2000002.0
byte ultoa::digit#2 digit zp[1]:17 285714.5714285714
dword ultoa::digit_value
dword ultoa::digit_value#0 digit_value zp[4]:67 600000.6000000001
dword ultoa::digit_value#0 digit_value zp[4]:49 600000.6000000001
dword* ultoa::digit_values
byte ultoa::max_digits
byte ultoa::radix
@ -361,31 +343,31 @@ dword ultoa::value#2 value zp[4]:11 572857.857142857
dword ultoa::value#6 value zp[4]:11 1500001.5
dword ultoa_append(byte* ultoa_append::buffer , dword ultoa_append::value , dword ultoa_append::sub)
byte* ultoa_append::buffer
byte* ultoa_append::buffer#0 buffer zp[2]:34 1375000.25
byte* ultoa_append::buffer#0 buffer zp[2]:18 1375000.25
byte ultoa_append::digit
byte ultoa_append::digit#1 reg byte x 1.0000000001E10
byte ultoa_append::digit#2 reg byte x 1.00050000015E10
dword ultoa_append::return
dword ultoa_append::return#0 return zp[4]:11 2000002.0
dword ultoa_append::sub
dword ultoa_append::sub#0 sub zp[4]:67 3.3335000005E9
dword ultoa_append::sub#0 sub zp[4]:49 3.3335000005E9
dword ultoa_append::value
dword ultoa_append::value#0 value zp[4]:11 3666667.333333333
dword ultoa_append::value#1 value zp[4]:11 2.0000000002E10
dword ultoa_append::value#2 value zp[4]:11 5.001833334166666E9
void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix)
byte~ utoa::$10 reg byte a 2000002.0
byte~ utoa::$11 reg byte a 20002.0
byte~ utoa::$11 reg byte x 20002.0
byte* utoa::buffer
byte* utoa::buffer#11 buffer zp[2]:34 287143.2857142857
byte* utoa::buffer#14 buffer zp[2]:34 1500001.5
byte* utoa::buffer#3 buffer zp[2]:34 20002.0
byte* utoa::buffer#4 buffer zp[2]:34 2000002.0
byte* utoa::buffer#11 buffer zp[2]:18 287143.2857142857
byte* utoa::buffer#14 buffer zp[2]:18 1500001.5
byte* utoa::buffer#3 buffer zp[2]:18 20002.0
byte* utoa::buffer#4 buffer zp[2]:18 2000002.0
byte utoa::digit
byte utoa::digit#1 digit zp[1]:17 2000002.0
byte utoa::digit#2 digit zp[1]:17 285714.5714285714
word utoa::digit_value
word utoa::digit_value#0 digit_value zp[2]:71 600000.6000000001
word utoa::digit_value#0 digit_value zp[2]:53 600000.6000000001
word* utoa::digit_values
byte utoa::max_digits
byte utoa::radix
@ -399,14 +381,14 @@ word utoa::value#2 value zp[2]:15 572857.857142857
word utoa::value#6 value zp[2]:15 1500001.5
word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub)
byte* utoa_append::buffer
byte* utoa_append::buffer#0 buffer zp[2]:34 1375000.25
byte* utoa_append::buffer#0 buffer zp[2]:18 1375000.25
byte utoa_append::digit
byte utoa_append::digit#1 reg byte x 1.0000000001E10
byte utoa_append::digit#2 reg byte x 1.00050000015E10
word utoa_append::return
word utoa_append::return#0 return zp[2]:15 2000002.0
word utoa_append::sub
word utoa_append::sub#0 sub zp[2]:71 3.3335000005E9
word utoa_append::sub#0 sub zp[2]:53 3.3335000005E9
word utoa_append::value
word utoa_append::value#0 value zp[2]:15 3666667.333333333
word utoa_append::value#1 value zp[2]:15 2.0000000002E10
@ -418,7 +400,7 @@ byte~ vera_layer_get_color::$0 reg byte a 2.0000000000002E13
byte~ vera_layer_get_color::$1 reg byte a 2.0000000000002E13
byte~ vera_layer_get_color::$3 reg byte a 2.0000000000002E13
byte* vera_layer_get_color::addr
byte* vera_layer_get_color::addr#0 addr zp[2]:77 2.0000000000002E13
byte* vera_layer_get_color::addr#0 addr zp[2]:59 2.0000000000002E13
byte vera_layer_get_color::layer
byte vera_layer_get_color::layer#0 reg byte x 2.00000002E8
byte vera_layer_get_color::layer#1 reg byte x 2.000000000002E12
@ -440,8 +422,8 @@ byte~ vera_layer_get_mapbase_offset::$0 reg byte a 2002.0
byte vera_layer_get_mapbase_offset::layer
byte vera_layer_get_mapbase_offset::layer#0 reg byte a 1102.0
word vera_layer_get_mapbase_offset::return
word vera_layer_get_mapbase_offset::return#0 return zp[2]:75 367.33333333333337
word vera_layer_get_mapbase_offset::return#2 return zp[2]:75 202.0
word vera_layer_get_mapbase_offset::return#0 return zp[2]:57 367.33333333333337
word vera_layer_get_mapbase_offset::return#2 return zp[2]:57 202.0
byte vera_layer_get_rowshift(byte vera_layer_get_rowshift::layer)
byte vera_layer_get_rowshift::layer
byte vera_layer_get_rowshift::layer#0 reg byte x 1102.0
@ -453,8 +435,8 @@ byte~ vera_layer_get_rowskip::$0 reg byte a 2002.0
byte vera_layer_get_rowskip::layer
byte vera_layer_get_rowskip::layer#0 reg byte a 1102.0
word vera_layer_get_rowskip::return
word vera_layer_get_rowskip::return#0 return zp[2]:61 367.33333333333337
word vera_layer_get_rowskip::return#2 return zp[2]:61 202.0
word vera_layer_get_rowskip::return#0 return zp[2]:43 367.33333333333337
word vera_layer_get_rowskip::return#2 return zp[2]:43 202.0
constant byte** vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE }
void vera_layer_mode_text(byte vera_layer_mode_text::layer , dword vera_layer_mode_text::mapbase_address , dword vera_layer_mode_text::tilebase_address , word vera_layer_mode_text::mapwidth , word vera_layer_mode_text::mapheight , byte vera_layer_mode_text::tilewidth , byte vera_layer_mode_text::tileheight , word vera_layer_mode_text::color_mode)
word vera_layer_mode_text::color_mode
@ -493,20 +475,20 @@ byte vera_layer_set_backcolor::old
byte vera_layer_set_backcolor::return
void vera_layer_set_config(byte vera_layer_set_config::layer , byte vera_layer_set_config::config)
byte* vera_layer_set_config::addr
byte* vera_layer_set_config::addr#0 addr zp[2]:73 20002.0
byte* vera_layer_set_config::addr#0 addr zp[2]:55 20002.0
byte vera_layer_set_config::config
byte vera_layer_set_config::layer
void vera_layer_set_mapbase(byte vera_layer_set_mapbase::layer , byte vera_layer_set_mapbase::mapbase)
byte~ vera_layer_set_mapbase::$0 reg byte a 20002.0
byte* vera_layer_set_mapbase::addr
byte* vera_layer_set_mapbase::addr#0 addr zp[2]:59 20002.0
byte* vera_layer_set_mapbase::addr#0 addr zp[2]:41 20002.0
byte vera_layer_set_mapbase::layer
byte vera_layer_set_mapbase::layer#3 reg byte a 10001.0
byte vera_layer_set_mapbase::mapbase
byte vera_layer_set_mapbase::mapbase#3 reg byte x 3333.6666666666665
void vera_layer_set_text_color_mode(byte vera_layer_set_text_color_mode::layer , byte vera_layer_set_text_color_mode::color_mode)
byte* vera_layer_set_text_color_mode::addr
byte* vera_layer_set_text_color_mode::addr#0 addr zp[2]:63 2502.5
byte* vera_layer_set_text_color_mode::addr#0 addr zp[2]:45 2502.5
byte vera_layer_set_text_color_mode::color_mode
byte vera_layer_set_text_color_mode::layer
byte vera_layer_set_textcolor(byte vera_layer_set_textcolor::layer , byte vera_layer_set_textcolor::color)
@ -517,7 +499,7 @@ byte vera_layer_set_textcolor::old
byte vera_layer_set_textcolor::return
void vera_layer_set_tilebase(byte vera_layer_set_tilebase::layer , byte vera_layer_set_tilebase::tilebase)
byte* vera_layer_set_tilebase::addr
byte* vera_layer_set_tilebase::addr#0 addr zp[2]:75 20002.0
byte* vera_layer_set_tilebase::addr#0 addr zp[2]:57 20002.0
byte vera_layer_set_tilebase::layer
byte vera_layer_set_tilebase::tilebase
constant byte* vera_layer_textcolor[2] = { WHITE, WHITE }
@ -537,12 +519,13 @@ reg byte x [ vera_layer_set_mapbase::mapbase#3 ]
reg byte x [ gotoxy::y#4 gotoxy::y#3 gotoxy::y#1 gotoxy::y#2 ]
zp[4]:11 [ printf_ulong::uvalue#3 printf_ulong::uvalue#0 printf_ulong::uvalue#1 printf_ulong::uvalue#2 ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ]
reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ]
zp[2]:15 [ printf_uint::uvalue#2 printf_uint::uvalue#0 printf_uint::uvalue#1 utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 main::beg#1 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 main::$25 main::beg#0 ]
zp[2]:15 [ printf_uint::uvalue#2 printf_uint::uvalue#0 printf_uint::uvalue#1 utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 main::beg#1 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 main::$13 main::beg#0 ]
reg byte x [ ultoa::started#2 ultoa::started#4 ]
reg byte a [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ]
zp[1]:17 [ utoa::digit#2 utoa::digit#1 uctoa::digit#2 uctoa::digit#1 ultoa::digit#2 ultoa::digit#1 cputc::c#3 cputc::c#0 cputc::c#2 ]
reg byte x [ utoa::started#2 utoa::started#4 ]
zp[2]:18 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 cputs::s#10 cputs::s#11 cputs::s#0 ]
reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ]
reg byte a [ vera_layer_get_color::return#2 vera_layer_get_color::return#0 vera_layer_get_color::return#1 ]
reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ]
@ -550,42 +533,32 @@ reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ]
reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ]
reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ]
reg byte x [ insertup::i#2 insertup::i#1 ]
zp[1]:18 [ conio_screen_width ]
zp[1]:19 [ conio_screen_height ]
zp[1]:20 [ conio_screen_layer ]
zp[2]:21 [ conio_width ]
zp[2]:23 [ conio_height ]
zp[1]:25 [ conio_rowshift ]
zp[2]:26 [ conio_rowskip ]
zp[4]:28 [ main::$1 main::calcend#0 ]
zp[2]:32 [ main::$3 main::$4 memcpy_in_vram::i#2 memcpy_in_vram::i#1 clearline::c#2 clearline::c#1 ]
reg byte y [ main::$5 ]
zp[2]:34 [ main::$6 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 cputs::s#10 cputs::s#11 cputs::s#0 ]
reg byte x [ main::$7 ]
zp[2]:36 [ main::$30 main::$8 main::$9 main::$13 ]
zp[2]:38 [ main::$10 main::$11 ]
reg byte a [ main::$12 ]
zp[2]:40 [ main::$31 ]
zp[1]:42 [ main::bankbeg#0 uctoa::started#2 uctoa::started#4 ]
zp[2]:43 [ main::$14 main::$15 ]
reg byte y [ main::$16 ]
zp[2]:45 [ main::$17 ]
reg byte x [ main::$18 ]
zp[2]:47 [ main::$32 main::$19 main::$20 main::$24 ]
zp[2]:49 [ main::$21 main::$22 ]
reg byte a [ main::$23 ]
zp[2]:51 [ main::$33 ]
zp[1]:53 [ main::bankend#0 ]
zp[2]:54 [ main::$27 main::end#0 main::end#1 ]
zp[1]:20 [ conio_screen_width ]
zp[1]:21 [ conio_screen_height ]
zp[1]:22 [ conio_screen_layer ]
zp[2]:23 [ conio_width ]
zp[2]:25 [ conio_height ]
zp[1]:27 [ conio_rowshift ]
zp[2]:28 [ conio_rowskip ]
zp[4]:30 [ main::$1 main::calcend#0 ]
reg byte a [ main::$3 ]
zp[1]:34 [ main::$4 main::bankbeg#0 uctoa::started#2 uctoa::started#4 ]
reg byte a [ main::$5 ]
reg byte a [ main::$6 ]
reg byte a [ main::$8 ]
zp[1]:35 [ main::$9 main::bankend#0 ]
reg byte a [ main::$10 ]
reg byte a [ main::$11 ]
zp[2]:36 [ main::$15 main::end#0 main::end#1 ]
reg byte a [ screensize::hscale#0 ]
reg byte a [ screensize::$1 ]
reg byte a [ screensize::vscale#0 ]
reg byte a [ screensize::$3 ]
reg byte x [ vera_layer_get_mapbase_bank::layer#0 ]
reg byte a [ vera_layer_get_mapbase_bank::return#2 ]
zp[1]:56 [ CONIO_SCREEN_BANK#10 ]
zp[1]:38 [ CONIO_SCREEN_BANK#10 ]
reg byte a [ vera_layer_get_mapbase_offset::layer#0 ]
zp[2]:57 [ CONIO_SCREEN_TEXT#101 ]
zp[2]:39 [ CONIO_SCREEN_TEXT#101 ]
reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ]
reg byte a [ screenlayer::vera_layer_get_width1_$2 ]
reg byte a [ screenlayer::vera_layer_get_width1_$0 ]
@ -601,11 +574,11 @@ reg byte a [ screenlayer::vera_layer_get_height1_$0 ]
reg byte a [ screenlayer::vera_layer_get_height1_$1 ]
reg byte a [ screenlayer::vera_layer_get_height1_$3 ]
reg byte a [ vera_layer_set_mapbase::$0 ]
zp[2]:59 [ vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 ]
zp[2]:61 [ gotoxy::$6 gotoxy::line_offset#0 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ]
zp[2]:41 [ vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 ]
zp[2]:43 [ gotoxy::$6 gotoxy::line_offset#0 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ]
reg byte a [ gotoxy::$5 ]
reg byte a [ cputs::c#1 ]
zp[2]:63 [ vera_layer_set_text_color_mode::addr#0 screenlayer::vera_layer_get_height1_config#0 ]
zp[2]:45 [ vera_layer_set_text_color_mode::addr#0 screenlayer::vera_layer_get_height1_config#0 ]
reg byte a [ vera_layer_get_mapbase_bank::return#0 ]
reg byte a [ vera_layer_get_mapbase_offset::$0 ]
reg byte a [ vera_layer_get_rowshift::return#0 ]
@ -618,29 +591,29 @@ reg byte a [ cputc::$4 ]
reg byte a [ cputc::$5 ]
reg byte a [ cputc::$6 ]
reg byte a [ cputc::scroll_enable#0 ]
zp[2]:65 [ cputc::$16 ]
zp[2]:47 [ cputc::$16 memcpy_in_vram::i#2 memcpy_in_vram::i#1 clearline::c#2 clearline::c#1 ]
reg byte a [ ultoa::$11 ]
reg byte a [ ultoa::$10 ]
zp[4]:67 [ ultoa::digit_value#0 ultoa_append::sub#0 ]
zp[4]:49 [ ultoa::digit_value#0 ultoa_append::sub#0 ]
reg byte x [ uctoa_append::return#0 ]
reg byte a [ utoa::$11 ]
reg byte x [ utoa::$11 ]
reg byte a [ utoa::$10 ]
zp[2]:71 [ utoa::digit_value#0 utoa_append::sub#0 cputc::conio_addr#0 cputc::conio_addr#1 ]
zp[2]:73 [ vera_layer_set_config::addr#0 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ]
zp[2]:75 [ vera_layer_set_tilebase::addr#0 screenlayer::vera_layer_get_width1_config#0 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 ]
zp[2]:53 [ utoa::digit_value#0 utoa_append::sub#0 cputc::conio_addr#0 cputc::conio_addr#1 ]
zp[2]:55 [ vera_layer_set_config::addr#0 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ]
zp[2]:57 [ vera_layer_set_tilebase::addr#0 screenlayer::vera_layer_get_width1_config#0 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 ]
reg byte a [ vera_layer_get_color::$3 ]
reg byte a [ vera_layer_get_color::$0 ]
reg byte a [ vera_layer_get_color::$1 ]
reg byte a [ cputln::$2 ]
zp[2]:77 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 ]
zp[2]:59 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 ]
reg byte a [ cputln::$3 ]
zp[1]:79 [ insertup::cy#0 uctoa::digit_value#0 uctoa_append::sub#0 ]
zp[1]:80 [ insertup::width#0 ]
zp[1]:61 [ insertup::cy#0 uctoa::digit_value#0 uctoa_append::sub#0 ]
zp[1]:62 [ insertup::width#0 ]
reg byte a [ insertup::$3 ]
zp[2]:81 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 ]
zp[2]:83 [ memcpy_in_vram::num#0 ]
zp[2]:63 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 ]
zp[2]:65 [ memcpy_in_vram::num#0 ]
reg byte a [ clearline::$5 ]
zp[2]:85 [ clearline::addr#0 memcpy_in_vram::src#0 ]
zp[2]:67 [ clearline::addr#0 memcpy_in_vram::src#0 ]
reg byte a [ clearline::$1 ]
reg byte a [ clearline::$2 ]
reg byte a [ vera_layer_get_color::return#4 ]

View File

@ -191,7 +191,7 @@ main: {
.label BANK_SPRITE = $12000
// VRAM address of sprite
.label VRAM_SPRITE = $10000
.label SPRITE_ATTR = $43
.label SPRITE_ATTR = $3f
// vera_layer_set_text_color_mode( 1, VERA_LAYER_CONFIG_16C )
lda #1
jsr vera_layer_set_text_color_mode
@ -201,7 +201,7 @@ main: {
jsr clrscr
// printf("\n\nsprite banked file load and display demo.\n")
jsr cputs
// struct VERA_SPRITE SPRITE_ATTR = { <(VRAM_SPRITE/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf1 }
// struct VERA_SPRITE SPRITE_ATTR = { WORD0(VRAM_SPRITE/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf1 }
ldy #SIZEOF_STRUCT_VERA_SPRITE
!:
lda __0-1,y
@ -260,7 +260,7 @@ main: {
lda #>VRAM_SPRITE>>$10
sta.z memcpy_bank_to_vram.vdest+3
jsr memcpy_bank_to_vram
// SPRITE_ATTR.ADDR = <(VRAM_SPRITE/32)|VERA_SPRITE_4BPP
// SPRITE_ATTR.ADDR = WORD0(VRAM_SPRITE/32)|VERA_SPRITE_4BPP
lda #<VRAM_SPRITE/$20&$ffff
sta.z SPRITE_ATTR
lda #>VRAM_SPRITE/$20&$ffff
@ -275,7 +275,7 @@ main: {
sta SPRITE_ATTR+OFFSET_STRUCT_VERA_SPRITE_Y+1
lda #<$64
sta SPRITE_ATTR+OFFSET_STRUCT_VERA_SPRITE_Y
// memcpy_to_vram((char)>VERA_SPRITE_ATTR, (char*)<VERA_SPRITE_ATTR, &SPRITE_ATTR, sizeof(SPRITE_ATTR))
// memcpy_to_vram(BYTE2(VERA_SPRITE_ATTR), (char*)WORD0(VERA_SPRITE_ATTR), &SPRITE_ATTR, sizeof(SPRITE_ATTR))
jsr memcpy_to_vram
// *VERA_CTRL &= ~VERA_DCSEL
// Enable sprites
@ -640,14 +640,14 @@ clrscr: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <ch
// BYTE0(ch)
lda.z line_text
// *VERA_ADDRX_L = <ch
// *VERA_ADDRX_L = BYTE0(ch)
// Set address
sta VERA_ADDRX_L
// >ch
// BYTE1(ch)
lda.z line_text+1
// *VERA_ADDRX_M = >ch
// *VERA_ADDRX_M = BYTE1(ch)
sta VERA_ADDRX_M
// CONIO_SCREEN_BANK | VERA_INC_1
lda #VERA_INC_1
@ -717,7 +717,7 @@ cputs: {
// Note: This function only works if the entire file fits within the selected bank. The function cannot load to multiple banks.
load_to_bank: {
.const device = 8
.const bank = ((>((main.BANK_SPRITE&$ffff)))>>5)+(<((main.BANK_SPRITE>>$10)<<3))
.const bank = (<main.BANK_SPRITE>>$10)<<3|(>main.BANK_SPRITE)>>5
// setnam(filename)
lda #<main.filename
sta.z setnam.filename
@ -750,20 +750,8 @@ load_to_bank: {
// Note: This function can switch RAM bank during copying to copy data from multiple RAM banks.
// memcpy_bank_to_vram(dword zp(3) vdest, dword zp(7) num)
memcpy_bank_to_vram: {
.label __0 = $2b
.label __2 = $2d
.label __4 = $35
.label __7 = $37
.label __8 = $37
.label __10 = $3b
.label __12 = $3d
.label __13 = $3d
.label __14 = $3f
.label __15 = $3f
.label __17 = $3d
.label __18 = $f
.label __23 = $3d
.label __24 = $41
.label __5 = $37
.label __9 = $f
.label beg = $b
.label end = 7
// select the bank
@ -776,32 +764,18 @@ memcpy_bank_to_vram: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <vdest
// BYTE0(vdest)
lda.z vdest
sta.z __0
lda.z vdest+1
sta.z __0+1
// <(<vdest)
lda.z __0
// *VERA_ADDRX_L = <(<vdest)
// *VERA_ADDRX_L = BYTE0(vdest)
// Set address
sta VERA_ADDRX_L
// <vdest
lda.z vdest
sta.z __2
// BYTE1(vdest)
lda.z vdest+1
sta.z __2+1
// >(<vdest)
// *VERA_ADDRX_M = >(<vdest)
// *VERA_ADDRX_M = BYTE1(vdest)
sta VERA_ADDRX_M
// >vdest
// BYTE2(vdest)
lda.z vdest+2
sta.z __4
lda.z vdest+3
sta.z __4+1
// <(>vdest)
lda.z __4
// *VERA_ADDRX_H = <(>vdest)
// *VERA_ADDRX_H = BYTE2(vdest)
sta VERA_ADDRX_H
// *VERA_ADDRX_H |= VERA_INC_1
lda #VERA_INC_1
@ -821,77 +795,30 @@ memcpy_bank_to_vram: {
lda.z end+3
adc.z beg+3
sta.z end+3
// >beg
// BYTE2(beg)
lda.z beg+2
sta.z __7
lda.z beg+3
sta.z __7+1
// (>beg)<<8
lda.z __8
sta.z __8+1
lda #0
sta.z __8
// <(>beg)<<8
tay
// <beg
lda.z beg
sta.z __10
// BYTE2(beg)<<3
asl
asl
asl
sta.z __5
// BYTE1(beg)
lda.z beg+1
sta.z __10+1
// >(<beg)
// BYTE1(beg)>>5
lsr
lsr
lsr
lsr
lsr
// char bank = BYTE2(beg)<<3 | BYTE1(beg)>>5
ora.z __5
tax
// ((word)<(>beg)<<8)|>(<beg)
tya
sta.z __23
sta.z __23+1
txa
ora.z __12
sta.z __12
// (((word)<(>beg)<<8)|>(<beg))>>5
lsr.z __13+1
ror.z __13
lsr.z __13+1
ror.z __13
lsr.z __13+1
ror.z __13
lsr.z __13+1
ror.z __13
lsr.z __13+1
ror.z __13
// >beg
lda.z beg+2
sta.z __14
lda.z beg+3
sta.z __14+1
// (>beg)<<3
asl.z __15
rol.z __15+1
asl.z __15
rol.z __15+1
asl.z __15
rol.z __15+1
// <(>beg)<<3
lda.z __15
// ((((word)<(>beg)<<8)|>(<beg))>>5)+((word)<(>beg)<<3)
sta.z __24
tya
sta.z __24+1
lda.z __17
clc
adc.z __24
sta.z __17
lda.z __17+1
adc.z __24+1
sta.z __17+1
// char bank = (byte)(((((word)<(>beg)<<8)|>(<beg))>>5)+((word)<(>beg)<<3))
lda.z __17
tax
// <beg
// WORD0(beg)
lda.z beg
sta.z __18
sta.z __9
lda.z beg+1
sta.z __18+1
// (<beg)&0x1FFF
sta.z __9+1
// WORD0(beg)&0x1FFF
lda.z addr
and #<$1fff
sta.z addr
@ -974,7 +901,7 @@ memcpy_bank_to_vram: {
// - src: The source address in RAM
// - num: The number of bytes to copy
memcpy_to_vram: {
.const vbank = VERA_SPRITE_ATTR>>$10
.const vbank = <VERA_SPRITE_ATTR>>$10
.label vdest = VERA_SPRITE_ATTR&$ffff
.label src = main.SPRITE_ATTR
.label end = src+SIZEOF_STRUCT_VERA_SPRITE
@ -984,11 +911,11 @@ memcpy_to_vram: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// *VERA_ADDRX_L = <vdest
// *VERA_ADDRX_L = BYTE0(vdest)
// Set address
lda #0
sta VERA_ADDRX_L
// *VERA_ADDRX_M = >vdest
// *VERA_ADDRX_M = BYTE1(vdest)
lda #>vdest
sta VERA_ADDRX_M
// *VERA_ADDRX_H = VERA_INC_1 | vbank
@ -1052,12 +979,12 @@ vera_layer_mode_tile: {
sta vera_layer_rowskip+vera_layer_mode_text.layer*SIZEOF_WORD+1
// vera_layer_set_config(layer, config)
jsr vera_layer_set_config
// vera_mapbase_offset[layer] = <mapbase_address
// vera_mapbase_offset[layer] = WORD0(mapbase_address)
// mapbase
lda #<0
sta vera_mapbase_offset+vera_layer_mode_text.layer*SIZEOF_WORD
sta vera_mapbase_offset+vera_layer_mode_text.layer*SIZEOF_WORD+1
// vera_mapbase_bank[layer] = (byte)(>mapbase_address)
// vera_mapbase_bank[layer] = BYTE2(mapbase_address)
sta vera_mapbase_bank+vera_layer_mode_text.layer
// vera_mapbase_address[layer] = mapbase_address
lda #<vera_layer_mode_text.mapbase_address
@ -1072,13 +999,13 @@ vera_layer_mode_tile: {
ldx #mapbase
lda #vera_layer_mode_text.layer
jsr vera_layer_set_mapbase
// vera_tilebase_offset[layer] = <tilebase_address
// vera_tilebase_offset[layer] = WORD0(tilebase_address)
// tilebase
lda #<vera_layer_mode_text.tilebase_address&$ffff
sta vera_tilebase_offset+vera_layer_mode_text.layer*SIZEOF_WORD
lda #>vera_layer_mode_text.tilebase_address&$ffff
sta vera_tilebase_offset+vera_layer_mode_text.layer*SIZEOF_WORD+1
// vera_tilebase_bank[layer] = (byte)>tilebase_address
// vera_tilebase_bank[layer] = BYTE2(tilebase_address)
lda #0
sta vera_tilebase_bank+vera_layer_mode_text.layer
// vera_tilebase_address[layer] = tilebase_address
@ -1216,14 +1143,14 @@ cputc: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <conio_addr
// BYTE0(conio_addr)
lda.z conio_addr
// *VERA_ADDRX_L = <conio_addr
// *VERA_ADDRX_L = BYTE0(conio_addr)
// Set address
sta VERA_ADDRX_L
// >conio_addr
// BYTE1(conio_addr)
lda.z conio_addr+1
// *VERA_ADDRX_M = >conio_addr
// *VERA_ADDRX_M = BYTE1(conio_addr)
sta VERA_ADDRX_M
// CONIO_SCREEN_BANK | VERA_INC_1
lda #VERA_INC_1
@ -1364,7 +1291,7 @@ vera_layer_set_tilebase: {
lda vera_layer_tilebase+vera_layer_mode_text.layer*SIZEOF_POINTER+1
sta.z addr+1
// *addr = tilebase
lda #(>(vera_layer_mode_tile.tilebase_address&$ffff))&VERA_LAYER_TILEBASE_MASK
lda #(>vera_layer_mode_tile.tilebase_address)&VERA_LAYER_TILEBASE_MASK
ldy #0
sta (addr),y
// }
@ -1410,7 +1337,7 @@ vera_layer_get_color: {
}
// Print a newline
cputln: {
.label temp = $37
.label temp = $35
// word temp = conio_line_text[conio_screen_layer]
lda.z conio_screen_layer
asl
@ -1508,10 +1435,10 @@ cscroll: {
}
// Insert a new line, and scroll the upper part of the screen up.
insertup: {
.label cy = $39
.label width = $3a
.label line = $3b
.label start = $3b
.label cy = $37
.label width = $38
.label line = $39
.label start = $39
// unsigned byte cy = conio_cursor_y[conio_screen_layer]
ldy.z conio_screen_layer
lda conio_cursor_y,y
@ -1576,7 +1503,7 @@ insertup: {
jmp __b1
}
clearline: {
.label addr = $41
.label addr = $3d
.label c = $2b
// *VERA_CTRL &= ~VERA_ADDRSEL
// Select DATA0
@ -1595,13 +1522,13 @@ clearline: {
lda.z CONIO_SCREEN_TEXT+1
adc conio_line_text+1,y
sta.z addr+1
// <addr
// BYTE0(addr)
lda.z addr
// *VERA_ADDRX_L = <addr
// *VERA_ADDRX_L = BYTE0(addr)
sta VERA_ADDRX_L
// >addr
// BYTE1(addr)
lda.z addr+1
// *VERA_ADDRX_M = >addr
// *VERA_ADDRX_M = BYTE1(addr)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = VERA_INC_1
lda #VERA_INC_1
@ -1653,25 +1580,25 @@ clearline: {
// - dest: pointer to the location to copy to. Note that the address is a 16 bit value!
// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access.
// - num: The number of bytes to copy
// memcpy_in_vram(void* zp($3b) dest, byte* zp($3d) src, word zp($3f) num)
// memcpy_in_vram(void* zp($39) dest, byte* zp($3d) src, word zp($3b) num)
memcpy_in_vram: {
.label i = $2d
.label dest = $3b
.label dest = $39
.label src = $3d
.label num = $3f
.label num = $3b
// *VERA_CTRL &= ~VERA_ADDRSEL
// Select DATA0
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <src
// BYTE0(src)
lda.z src
// *VERA_ADDRX_L = <src
// *VERA_ADDRX_L = BYTE0(src)
// Set address
sta VERA_ADDRX_L
// >src
// BYTE1(src)
lda.z src+1
// *VERA_ADDRX_M = >src
// *VERA_ADDRX_M = BYTE1(src)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = src_increment | src_bank
lda #VERA_INC_1
@ -1681,14 +1608,14 @@ memcpy_in_vram: {
lda #VERA_ADDRSEL
ora VERA_CTRL
sta VERA_CTRL
// <dest
// BYTE0(dest)
lda.z dest
// *VERA_ADDRX_L = <dest
// *VERA_ADDRX_L = BYTE0(dest)
// Set address
sta VERA_ADDRX_L
// >dest
// BYTE1(dest)
lda.z dest+1
// *VERA_ADDRX_M = >dest
// *VERA_ADDRX_M = BYTE1(dest)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = dest_increment | dest_bank
lda #VERA_INC_1

View File

@ -95,7 +95,7 @@ main::@6: scope:[main] from main::@5
[45] call memcpy_bank_to_vram
to:main::@7
main::@7: scope:[main] from main::@6
[46] *((word*)&main::SPRITE_ATTR) = <main::VRAM_SPRITE/$20
[46] *((word*)&main::SPRITE_ATTR) = _word0_main::VRAM_SPRITE/$20
[47] *((word*)&main::SPRITE_ATTR+OFFSET_STRUCT_VERA_SPRITE_X) = $64
[48] *((word*)&main::SPRITE_ATTR+OFFSET_STRUCT_VERA_SPRITE_Y) = $64
[49] call memcpy_to_vram
@ -366,224 +366,212 @@ memcpy_bank_to_vram: scope:[memcpy_bank_to_vram] from main::@5 main::@6
[182] memcpy_bank_to_vram::vdest#2 = phi( main::@5/VERA_PALETTE+$20, main::@6/main::VRAM_SPRITE )
[183] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[184] memcpy_bank_to_vram::$0 = < memcpy_bank_to_vram::vdest#2
[185] memcpy_bank_to_vram::$1 = < memcpy_bank_to_vram::$0
[186] *VERA_ADDRX_L = memcpy_bank_to_vram::$1
[187] memcpy_bank_to_vram::$2 = < memcpy_bank_to_vram::vdest#2
[188] memcpy_bank_to_vram::$3 = > memcpy_bank_to_vram::$2
[189] *VERA_ADDRX_M = memcpy_bank_to_vram::$3
[190] memcpy_bank_to_vram::$4 = > memcpy_bank_to_vram::vdest#2
[191] memcpy_bank_to_vram::$5 = < memcpy_bank_to_vram::$4
[192] *VERA_ADDRX_H = memcpy_bank_to_vram::$5
[193] *VERA_ADDRX_H = *VERA_ADDRX_H | VERA_INC_1
[194] memcpy_bank_to_vram::end#0 = memcpy_bank_to_vram::beg#0 + memcpy_bank_to_vram::num#2
[195] memcpy_bank_to_vram::$7 = > memcpy_bank_to_vram::beg#0
[196] memcpy_bank_to_vram::$8 = memcpy_bank_to_vram::$7 << 8
[197] memcpy_bank_to_vram::$9 = < memcpy_bank_to_vram::$8
[198] memcpy_bank_to_vram::$10 = < memcpy_bank_to_vram::beg#0
[199] memcpy_bank_to_vram::$11 = > memcpy_bank_to_vram::$10
[200] memcpy_bank_to_vram::$23 = (word)memcpy_bank_to_vram::$9
[201] memcpy_bank_to_vram::$12 = memcpy_bank_to_vram::$23 | memcpy_bank_to_vram::$11
[202] memcpy_bank_to_vram::$13 = memcpy_bank_to_vram::$12 >> 5
[203] memcpy_bank_to_vram::$14 = > memcpy_bank_to_vram::beg#0
[204] memcpy_bank_to_vram::$15 = memcpy_bank_to_vram::$14 << 3
[205] memcpy_bank_to_vram::$16 = < memcpy_bank_to_vram::$15
[206] memcpy_bank_to_vram::$24 = (word)memcpy_bank_to_vram::$16
[207] memcpy_bank_to_vram::$17 = memcpy_bank_to_vram::$13 + memcpy_bank_to_vram::$24
[208] memcpy_bank_to_vram::bank#0 = (byte)memcpy_bank_to_vram::$17
[209] memcpy_bank_to_vram::$18 = < memcpy_bank_to_vram::beg#0
[210] memcpy_bank_to_vram::addr#0 = memcpy_bank_to_vram::$18 & $1fff
[211] memcpy_bank_to_vram::addr#1 = (byte*)memcpy_bank_to_vram::addr#0 + $a000
[212] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = memcpy_bank_to_vram::bank#0
[185] *VERA_ADDRX_L = memcpy_bank_to_vram::$0
[186] memcpy_bank_to_vram::$1 = > memcpy_bank_to_vram::vdest#2
[187] *VERA_ADDRX_M = memcpy_bank_to_vram::$1
[188] memcpy_bank_to_vram::$2 = _byte2_ memcpy_bank_to_vram::vdest#2
[189] *VERA_ADDRX_H = memcpy_bank_to_vram::$2
[190] *VERA_ADDRX_H = *VERA_ADDRX_H | VERA_INC_1
[191] memcpy_bank_to_vram::end#0 = memcpy_bank_to_vram::beg#0 + memcpy_bank_to_vram::num#2
[192] memcpy_bank_to_vram::$4 = _byte2_ memcpy_bank_to_vram::beg#0
[193] memcpy_bank_to_vram::$5 = memcpy_bank_to_vram::$4 << 3
[194] memcpy_bank_to_vram::$6 = > memcpy_bank_to_vram::beg#0
[195] memcpy_bank_to_vram::$7 = memcpy_bank_to_vram::$6 >> 5
[196] memcpy_bank_to_vram::bank#0 = memcpy_bank_to_vram::$5 | memcpy_bank_to_vram::$7
[197] memcpy_bank_to_vram::$9 = _word0_ memcpy_bank_to_vram::beg#0
[198] memcpy_bank_to_vram::addr#0 = memcpy_bank_to_vram::$9 & $1fff
[199] memcpy_bank_to_vram::addr#1 = (byte*)memcpy_bank_to_vram::addr#0 + $a000
[200] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = memcpy_bank_to_vram::bank#0
to:memcpy_bank_to_vram::@1
memcpy_bank_to_vram::@1: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram memcpy_bank_to_vram::@3
[213] memcpy_bank_to_vram::bank#2 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::bank#0, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::bank#5 )
[213] memcpy_bank_to_vram::addr#4 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::addr#1, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::addr#2 )
[213] memcpy_bank_to_vram::pos#2 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::beg#0, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::pos#1 )
[214] if(memcpy_bank_to_vram::pos#2<memcpy_bank_to_vram::end#0) goto memcpy_bank_to_vram::@2
[201] memcpy_bank_to_vram::bank#2 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::bank#0, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::bank#5 )
[201] memcpy_bank_to_vram::addr#4 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::addr#1, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::addr#2 )
[201] memcpy_bank_to_vram::pos#2 = phi( memcpy_bank_to_vram/memcpy_bank_to_vram::beg#0, memcpy_bank_to_vram::@3/memcpy_bank_to_vram::pos#1 )
[202] if(memcpy_bank_to_vram::pos#2<memcpy_bank_to_vram::end#0) goto memcpy_bank_to_vram::@2
to:memcpy_bank_to_vram::@return
memcpy_bank_to_vram::@return: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@1
[215] return
[203] return
to:@return
memcpy_bank_to_vram::@2: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@1
[216] if(memcpy_bank_to_vram::addr#4!=$c000) goto memcpy_bank_to_vram::@3
[204] if(memcpy_bank_to_vram::addr#4!=$c000) goto memcpy_bank_to_vram::@3
to:memcpy_bank_to_vram::@4
memcpy_bank_to_vram::@4: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@2
[217] memcpy_bank_to_vram::bank#1 = ++ memcpy_bank_to_vram::bank#2
[218] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = memcpy_bank_to_vram::bank#1
[205] memcpy_bank_to_vram::bank#1 = ++ memcpy_bank_to_vram::bank#2
[206] *((byte*)VIA1+OFFSET_STRUCT_MOS6522_VIA_PORT_A) = memcpy_bank_to_vram::bank#1
to:memcpy_bank_to_vram::@3
memcpy_bank_to_vram::@3: scope:[memcpy_bank_to_vram] from memcpy_bank_to_vram::@2 memcpy_bank_to_vram::@4
[219] memcpy_bank_to_vram::bank#5 = phi( memcpy_bank_to_vram::@2/memcpy_bank_to_vram::bank#2, memcpy_bank_to_vram::@4/memcpy_bank_to_vram::bank#1 )
[219] memcpy_bank_to_vram::addr#5 = phi( memcpy_bank_to_vram::@2/memcpy_bank_to_vram::addr#4, memcpy_bank_to_vram::@4/(byte*) 40960 )
[220] *VERA_DATA0 = *memcpy_bank_to_vram::addr#5
[221] memcpy_bank_to_vram::addr#2 = ++ memcpy_bank_to_vram::addr#5
[222] memcpy_bank_to_vram::pos#1 = ++ memcpy_bank_to_vram::pos#2
[207] memcpy_bank_to_vram::bank#5 = phi( memcpy_bank_to_vram::@2/memcpy_bank_to_vram::bank#2, memcpy_bank_to_vram::@4/memcpy_bank_to_vram::bank#1 )
[207] memcpy_bank_to_vram::addr#5 = phi( memcpy_bank_to_vram::@2/memcpy_bank_to_vram::addr#4, memcpy_bank_to_vram::@4/(byte*) 40960 )
[208] *VERA_DATA0 = *memcpy_bank_to_vram::addr#5
[209] memcpy_bank_to_vram::addr#2 = ++ memcpy_bank_to_vram::addr#5
[210] memcpy_bank_to_vram::pos#1 = ++ memcpy_bank_to_vram::pos#2
to:memcpy_bank_to_vram::@1
void memcpy_to_vram(byte memcpy_to_vram::vbank , void* memcpy_to_vram::vdest , void* memcpy_to_vram::src , word memcpy_to_vram::num)
memcpy_to_vram: scope:[memcpy_to_vram] from main::@7
[223] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[224] *VERA_ADDRX_L = 0
[225] *VERA_ADDRX_M = >memcpy_to_vram::vdest#0
[226] *VERA_ADDRX_H = VERA_INC_1|memcpy_to_vram::vbank#0
[211] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[212] *VERA_ADDRX_L = 0
[213] *VERA_ADDRX_M = >memcpy_to_vram::vdest#0
[214] *VERA_ADDRX_H = VERA_INC_1|memcpy_to_vram::vbank#0
to:memcpy_to_vram::@1
memcpy_to_vram::@1: scope:[memcpy_to_vram] from memcpy_to_vram memcpy_to_vram::@2
[227] memcpy_to_vram::s#2 = phi( memcpy_to_vram/(byte*)memcpy_to_vram::src#0, memcpy_to_vram::@2/memcpy_to_vram::s#1 )
[228] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2
[215] memcpy_to_vram::s#2 = phi( memcpy_to_vram/(byte*)memcpy_to_vram::src#0, memcpy_to_vram::@2/memcpy_to_vram::s#1 )
[216] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2
to:memcpy_to_vram::@return
memcpy_to_vram::@return: scope:[memcpy_to_vram] from memcpy_to_vram::@1
[229] return
[217] return
to:@return
memcpy_to_vram::@2: scope:[memcpy_to_vram] from memcpy_to_vram::@1
[230] *VERA_DATA0 = *memcpy_to_vram::s#2
[231] memcpy_to_vram::s#1 = ++ memcpy_to_vram::s#2
[218] *VERA_DATA0 = *memcpy_to_vram::s#2
[219] memcpy_to_vram::s#1 = ++ memcpy_to_vram::s#2
to:memcpy_to_vram::@1
void vera_layer_mode_tile(byte vera_layer_mode_tile::layer , dword vera_layer_mode_tile::mapbase_address , dword vera_layer_mode_tile::tilebase_address , word vera_layer_mode_tile::mapwidth , word vera_layer_mode_tile::mapheight , byte vera_layer_mode_tile::tilewidth , byte vera_layer_mode_tile::tileheight , byte vera_layer_mode_tile::color_depth)
vera_layer_mode_tile: scope:[vera_layer_mode_tile] from vera_layer_mode_text
[232] phi()
[220] phi()
to:vera_layer_mode_tile::@1
vera_layer_mode_tile::@1: scope:[vera_layer_mode_tile] from vera_layer_mode_tile
[233] *(vera_layer_rowshift+vera_layer_mode_text::layer#0) = 8
[234] *(vera_layer_rowskip+vera_layer_mode_text::layer#0*SIZEOF_WORD) = $100
[221] *(vera_layer_rowshift+vera_layer_mode_text::layer#0) = 8
[222] *(vera_layer_rowskip+vera_layer_mode_text::layer#0*SIZEOF_WORD) = $100
to:vera_layer_mode_tile::@2
vera_layer_mode_tile::@2: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1
[235] phi()
[236] call vera_layer_set_config
[223] phi()
[224] call vera_layer_set_config
to:vera_layer_mode_tile::@4
vera_layer_mode_tile::@4: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2
[237] *(vera_mapbase_offset+vera_layer_mode_text::layer#0*SIZEOF_WORD) = 0
[238] *(vera_mapbase_bank+vera_layer_mode_text::layer#0) = 0
[239] *(vera_mapbase_address+vera_layer_mode_text::layer#0*SIZEOF_DWORD) = vera_layer_mode_text::mapbase_address#0
[240] call vera_layer_set_mapbase
[225] *(vera_mapbase_offset+vera_layer_mode_text::layer#0*SIZEOF_WORD) = 0
[226] *(vera_mapbase_bank+vera_layer_mode_text::layer#0) = 0
[227] *(vera_mapbase_address+vera_layer_mode_text::layer#0*SIZEOF_DWORD) = vera_layer_mode_text::mapbase_address#0
[228] call vera_layer_set_mapbase
to:vera_layer_mode_tile::@5
vera_layer_mode_tile::@5: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@4
[241] *(vera_tilebase_offset+vera_layer_mode_text::layer#0*SIZEOF_WORD) = <vera_layer_mode_text::tilebase_address#0
[242] *(vera_tilebase_bank+vera_layer_mode_text::layer#0) = 0
[243] *(vera_tilebase_address+vera_layer_mode_text::layer#0*SIZEOF_DWORD) = vera_layer_mode_text::tilebase_address#0
[229] *(vera_tilebase_offset+vera_layer_mode_text::layer#0*SIZEOF_WORD) = _word0_vera_layer_mode_text::tilebase_address#0
[230] *(vera_tilebase_bank+vera_layer_mode_text::layer#0) = 0
[231] *(vera_tilebase_address+vera_layer_mode_text::layer#0*SIZEOF_DWORD) = vera_layer_mode_text::tilebase_address#0
to:vera_layer_mode_tile::@3
vera_layer_mode_tile::@3: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5
[244] phi()
[245] call vera_layer_set_tilebase
[232] phi()
[233] call vera_layer_set_tilebase
to:vera_layer_mode_tile::@return
vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3
[246] return
[234] return
to:@return
byte vera_layer_get_mapbase_bank(byte vera_layer_get_mapbase_bank::layer)
vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer
[247] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0]
[235] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0]
to:vera_layer_get_mapbase_bank::@return
vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank
[248] return
[236] return
to:@return
word vera_layer_get_mapbase_offset(byte vera_layer_get_mapbase_offset::layer)
vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3
[249] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1
[250] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0]
[237] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1
[238] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0]
to:vera_layer_get_mapbase_offset::@return
vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset
[251] return
[239] return
to:@return
byte vera_layer_get_rowshift(byte vera_layer_get_rowshift::layer)
vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1
[252] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0]
[240] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0]
to:vera_layer_get_rowshift::@return
vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift
[253] return
[241] return
to:@return
word vera_layer_get_rowskip(byte vera_layer_get_rowskip::layer)
vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5
[254] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1
[255] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0]
[242] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1
[243] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0]
to:vera_layer_get_rowskip::@return
vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip
[256] return
[244] return
to:@return
byte vera_layer_get_backcolor(byte vera_layer_get_backcolor::layer)
vera_layer_get_backcolor: scope:[vera_layer_get_backcolor] from clrscr
[257] vera_layer_get_backcolor::return#0 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0]
[245] vera_layer_get_backcolor::return#0 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0]
to:vera_layer_get_backcolor::@return
vera_layer_get_backcolor::@return: scope:[vera_layer_get_backcolor] from vera_layer_get_backcolor
[258] return
[246] return
to:@return
byte vera_layer_get_textcolor(byte vera_layer_get_textcolor::layer)
vera_layer_get_textcolor: scope:[vera_layer_get_textcolor] from clrscr::@7
[259] vera_layer_get_textcolor::return#0 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0]
[247] vera_layer_get_textcolor::return#0 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0]
to:vera_layer_get_textcolor::@return
vera_layer_get_textcolor::@return: scope:[vera_layer_get_textcolor] from vera_layer_get_textcolor
[260] return
[248] return
to:@return
void cputc(byte cputc::c)
cputc: scope:[cputc] from cputs::@2
[261] vera_layer_get_color::layer#0 = conio_screen_layer
[262] call vera_layer_get_color
[263] vera_layer_get_color::return#3 = vera_layer_get_color::return#2
[249] vera_layer_get_color::layer#0 = conio_screen_layer
[250] call vera_layer_get_color
[251] vera_layer_get_color::return#3 = vera_layer_get_color::return#2
to:cputc::@7
cputc::@7: scope:[cputc] from cputc
[264] cputc::color#0 = vera_layer_get_color::return#3
[265] cputc::$15 = conio_screen_layer << 1
[266] cputc::conio_addr#0 = (byte*)CONIO_SCREEN_TEXT#16 + conio_line_text[cputc::$15]
[267] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1
[268] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2
[269] if(cputc::c#0=='
[252] cputc::color#0 = vera_layer_get_color::return#3
[253] cputc::$15 = conio_screen_layer << 1
[254] cputc::conio_addr#0 = (byte*)CONIO_SCREEN_TEXT#16 + conio_line_text[cputc::$15]
[255] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1
[256] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2
[257] if(cputc::c#0=='
') goto cputc::@1
to:cputc::@2
cputc::@2: scope:[cputc] from cputc::@7
[270] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[271] cputc::$4 = < cputc::conio_addr#1
[272] *VERA_ADDRX_L = cputc::$4
[273] cputc::$5 = > cputc::conio_addr#1
[274] *VERA_ADDRX_M = cputc::$5
[275] cputc::$6 = CONIO_SCREEN_BANK#14 | VERA_INC_1
[276] *VERA_ADDRX_H = cputc::$6
[277] *VERA_DATA0 = cputc::c#0
[278] *VERA_DATA0 = cputc::color#0
[279] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer]
[280] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer]
[281] if(0!=cputc::scroll_enable#0) goto cputc::@5
[258] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[259] cputc::$4 = < cputc::conio_addr#1
[260] *VERA_ADDRX_L = cputc::$4
[261] cputc::$5 = > cputc::conio_addr#1
[262] *VERA_ADDRX_M = cputc::$5
[263] cputc::$6 = CONIO_SCREEN_BANK#14 | VERA_INC_1
[264] *VERA_ADDRX_H = cputc::$6
[265] *VERA_DATA0 = cputc::c#0
[266] *VERA_DATA0 = cputc::color#0
[267] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer]
[268] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer]
[269] if(0!=cputc::scroll_enable#0) goto cputc::@5
to:cputc::@3
cputc::@3: scope:[cputc] from cputc::@2
[282] cputc::$16 = (word)conio_cursor_x[conio_screen_layer]
[283] if(cputc::$16!=conio_width) goto cputc::@return
[270] cputc::$16 = (word)conio_cursor_x[conio_screen_layer]
[271] if(cputc::$16!=conio_width) goto cputc::@return
to:cputc::@4
cputc::@4: scope:[cputc] from cputc::@3
[284] phi()
[285] call cputln
[272] phi()
[273] call cputln
to:cputc::@return
cputc::@return: scope:[cputc] from cputc::@1 cputc::@3 cputc::@4 cputc::@5 cputc::@6
[286] return
[274] return
to:@return
cputc::@5: scope:[cputc] from cputc::@2
[287] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return
[275] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return
to:cputc::@6
cputc::@6: scope:[cputc] from cputc::@5
[288] phi()
[289] call cputln
[276] phi()
[277] call cputln
to:cputc::@return
cputc::@1: scope:[cputc] from cputc::@7
[290] phi()
[291] call cputln
[278] phi()
[279] call cputln
to:cputc::@return
void setnam(byte* volatile setnam::filename)
setnam: scope:[setnam] from load_to_bank
[292] strlen::str#0 = setnam::filename
[293] call strlen
[294] strlen::return#0 = strlen::len#2
[280] strlen::str#0 = setnam::filename
[281] call strlen
[282] strlen::return#0 = strlen::len#2
to:setnam::@1
setnam::@1: scope:[setnam] from setnam
[295] setnam::$0 = strlen::return#0
[296] setnam::filename_len = (byte)setnam::$0
[283] setnam::$0 = strlen::return#0
[284] setnam::filename_len = (byte)setnam::$0
asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd }
to:setnam::@return
setnam::@return: scope:[setnam] from setnam::@1
[298] return
[286] return
to:@return
void setlfs(volatile byte setlfs::device)
@ -591,198 +579,198 @@ setlfs: scope:[setlfs] from load_to_bank::@1
asm { ldxdevice lda#1 ldy#0 jsr$ffba }
to:setlfs::@return
setlfs::@return: scope:[setlfs] from setlfs
[300] return
[288] return
to:@return
byte load(byte* volatile load::address , volatile byte load::verify)
load: scope:[load] from load_to_bank::@2
[301] load::status = 0
[289] load::status = 0
asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus }
to:load::@return
load::@return: scope:[load] from load
[303] return
[291] return
to:@return
void vera_layer_set_config(byte vera_layer_set_config::layer , byte vera_layer_set_config::config)
vera_layer_set_config: scope:[vera_layer_set_config] from vera_layer_mode_tile::@2
[304] vera_layer_set_config::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER)
[305] *vera_layer_set_config::addr#0 = vera_layer_mode_tile::config#10
[292] vera_layer_set_config::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER)
[293] *vera_layer_set_config::addr#0 = vera_layer_mode_tile::config#10
to:vera_layer_set_config::@return
vera_layer_set_config::@return: scope:[vera_layer_set_config] from vera_layer_set_config
[306] return
[294] return
to:@return
void vera_layer_set_tilebase(byte vera_layer_set_tilebase::layer , byte vera_layer_set_tilebase::tilebase)
vera_layer_set_tilebase: scope:[vera_layer_set_tilebase] from vera_layer_mode_tile::@3
[307] vera_layer_set_tilebase::addr#0 = *(vera_layer_tilebase+vera_layer_mode_text::layer#0*SIZEOF_POINTER)
[308] *vera_layer_set_tilebase::addr#0 = ><vera_layer_mode_tile::tilebase_address#0&VERA_LAYER_TILEBASE_MASK
[295] vera_layer_set_tilebase::addr#0 = *(vera_layer_tilebase+vera_layer_mode_text::layer#0*SIZEOF_POINTER)
[296] *vera_layer_set_tilebase::addr#0 = >vera_layer_mode_tile::tilebase_address#0&VERA_LAYER_TILEBASE_MASK
to:vera_layer_set_tilebase::@return
vera_layer_set_tilebase::@return: scope:[vera_layer_set_tilebase] from vera_layer_set_tilebase
[309] return
[297] return
to:@return
byte vera_layer_get_color(byte vera_layer_get_color::layer)
vera_layer_get_color: scope:[vera_layer_get_color] from clearline cputc
[310] vera_layer_get_color::layer#2 = phi( clearline/vera_layer_get_color::layer#1, cputc/vera_layer_get_color::layer#0 )
[311] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1
[312] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3]
[313] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C
[314] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1
[298] vera_layer_get_color::layer#2 = phi( clearline/vera_layer_get_color::layer#1, cputc/vera_layer_get_color::layer#0 )
[299] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1
[300] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3]
[301] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C
[302] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1
to:vera_layer_get_color::@2
vera_layer_get_color::@2: scope:[vera_layer_get_color] from vera_layer_get_color
[315] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4
[316] vera_layer_get_color::return#1 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2]
[303] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4
[304] vera_layer_get_color::return#1 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2]
to:vera_layer_get_color::@return
vera_layer_get_color::@return: scope:[vera_layer_get_color] from vera_layer_get_color::@1 vera_layer_get_color::@2
[317] vera_layer_get_color::return#2 = phi( vera_layer_get_color::@1/vera_layer_get_color::return#0, vera_layer_get_color::@2/vera_layer_get_color::return#1 )
[318] return
[305] vera_layer_get_color::return#2 = phi( vera_layer_get_color::@1/vera_layer_get_color::return#0, vera_layer_get_color::@2/vera_layer_get_color::return#1 )
[306] return
to:@return
vera_layer_get_color::@1: scope:[vera_layer_get_color] from vera_layer_get_color
[319] vera_layer_get_color::return#0 = vera_layer_textcolor[vera_layer_get_color::layer#2]
[307] vera_layer_get_color::return#0 = vera_layer_textcolor[vera_layer_get_color::layer#2]
to:vera_layer_get_color::@return
void cputln()
cputln: scope:[cputln] from cputc::@1 cputc::@4 cputc::@6
[320] cputln::$2 = conio_screen_layer << 1
[321] cputln::temp#0 = conio_line_text[cputln::$2]
[322] cputln::temp#1 = cputln::temp#0 + conio_rowskip
[323] cputln::$3 = conio_screen_layer << 1
[324] conio_line_text[cputln::$3] = cputln::temp#1
[325] conio_cursor_x[conio_screen_layer] = 0
[326] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer]
[327] call cscroll
[308] cputln::$2 = conio_screen_layer << 1
[309] cputln::temp#0 = conio_line_text[cputln::$2]
[310] cputln::temp#1 = cputln::temp#0 + conio_rowskip
[311] cputln::$3 = conio_screen_layer << 1
[312] conio_line_text[cputln::$3] = cputln::temp#1
[313] conio_cursor_x[conio_screen_layer] = 0
[314] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer]
[315] call cscroll
to:cputln::@return
cputln::@return: scope:[cputln] from cputln
[328] return
[316] return
to:@return
word strlen(byte* strlen::str)
strlen: scope:[strlen] from setnam
[329] phi()
[317] phi()
to:strlen::@1
strlen::@1: scope:[strlen] from strlen strlen::@2
[330] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 )
[330] strlen::str#2 = phi( strlen/strlen::str#0, strlen::@2/strlen::str#1 )
[331] if(0!=*strlen::str#2) goto strlen::@2
[318] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 )
[318] strlen::str#2 = phi( strlen/strlen::str#0, strlen::@2/strlen::str#1 )
[319] if(0!=*strlen::str#2) goto strlen::@2
to:strlen::@return
strlen::@return: scope:[strlen] from strlen::@1
[332] return
[320] return
to:@return
strlen::@2: scope:[strlen] from strlen::@1
[333] strlen::len#1 = ++ strlen::len#2
[334] strlen::str#1 = ++ strlen::str#2
[321] strlen::len#1 = ++ strlen::len#2
[322] strlen::str#1 = ++ strlen::str#2
to:strlen::@1
void cscroll()
cscroll: scope:[cscroll] from cputln
[335] if(conio_cursor_y[conio_screen_layer]<conio_screen_height) goto cscroll::@return
[323] if(conio_cursor_y[conio_screen_layer]<conio_screen_height) goto cscroll::@return
to:cscroll::@1
cscroll::@1: scope:[cscroll] from cscroll
[336] if(0!=conio_scroll_enable[conio_screen_layer]) goto cscroll::@4
[324] if(0!=conio_scroll_enable[conio_screen_layer]) goto cscroll::@4
to:cscroll::@2
cscroll::@2: scope:[cscroll] from cscroll::@1
[337] if(conio_cursor_y[conio_screen_layer]<conio_height) goto cscroll::@return
[325] if(conio_cursor_y[conio_screen_layer]<conio_height) goto cscroll::@return
to:cscroll::@3
cscroll::@3: scope:[cscroll] from cscroll::@2
[338] phi()
[326] phi()
to:cscroll::@return
cscroll::@return: scope:[cscroll] from cscroll cscroll::@2 cscroll::@3 cscroll::@5
[339] return
[327] return
to:@return
cscroll::@4: scope:[cscroll] from cscroll::@1
[340] phi()
[341] call insertup
[328] phi()
[329] call insertup
to:cscroll::@5
cscroll::@5: scope:[cscroll] from cscroll::@4
[342] gotoxy::y#2 = conio_screen_height - 1
[343] call gotoxy
[330] gotoxy::y#2 = conio_screen_height - 1
[331] call gotoxy
to:cscroll::@return
void insertup()
insertup: scope:[insertup] from cscroll::@4
[344] insertup::cy#0 = conio_cursor_y[conio_screen_layer]
[345] insertup::width#0 = conio_screen_width << 1
[332] insertup::cy#0 = conio_cursor_y[conio_screen_layer]
[333] insertup::width#0 = conio_screen_width << 1
to:insertup::@1
insertup::@1: scope:[insertup] from insertup insertup::@4
[346] insertup::i#2 = phi( insertup/1, insertup::@4/insertup::i#1 )
[347] if(insertup::i#2<=insertup::cy#0) goto insertup::@2
[334] insertup::i#2 = phi( insertup/1, insertup::@4/insertup::i#1 )
[335] if(insertup::i#2<=insertup::cy#0) goto insertup::@2
to:insertup::@3
insertup::@3: scope:[insertup] from insertup::@1
[348] phi()
[349] call clearline
[336] phi()
[337] call clearline
to:insertup::@return
insertup::@return: scope:[insertup] from insertup::@3
[350] return
[338] return
to:@return
insertup::@2: scope:[insertup] from insertup::@1
[351] insertup::$3 = insertup::i#2 - 1
[352] insertup::line#0 = insertup::$3 << conio_rowshift
[353] insertup::start#0 = (byte*)CONIO_SCREEN_TEXT#16 + insertup::line#0
[354] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip
[355] memcpy_in_vram::dest#0 = (void*)insertup::start#0
[356] memcpy_in_vram::num#0 = insertup::width#0
[357] call memcpy_in_vram
[339] insertup::$3 = insertup::i#2 - 1
[340] insertup::line#0 = insertup::$3 << conio_rowshift
[341] insertup::start#0 = (byte*)CONIO_SCREEN_TEXT#16 + insertup::line#0
[342] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip
[343] memcpy_in_vram::dest#0 = (void*)insertup::start#0
[344] memcpy_in_vram::num#0 = insertup::width#0
[345] call memcpy_in_vram
to:insertup::@4
insertup::@4: scope:[insertup] from insertup::@2
[358] insertup::i#1 = ++ insertup::i#2
[346] insertup::i#1 = ++ insertup::i#2
to:insertup::@1
void clearline()
clearline: scope:[clearline] from insertup::@3
[359] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[360] clearline::$5 = conio_screen_layer << 1
[361] clearline::addr#0 = (byte*)CONIO_SCREEN_TEXT#16 + conio_line_text[clearline::$5]
[362] clearline::$1 = < clearline::addr#0
[363] *VERA_ADDRX_L = clearline::$1
[364] clearline::$2 = > clearline::addr#0
[365] *VERA_ADDRX_M = clearline::$2
[366] *VERA_ADDRX_H = VERA_INC_1
[367] vera_layer_get_color::layer#1 = conio_screen_layer
[368] call vera_layer_get_color
[369] vera_layer_get_color::return#4 = vera_layer_get_color::return#2
[347] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[348] clearline::$5 = conio_screen_layer << 1
[349] clearline::addr#0 = (byte*)CONIO_SCREEN_TEXT#16 + conio_line_text[clearline::$5]
[350] clearline::$1 = < clearline::addr#0
[351] *VERA_ADDRX_L = clearline::$1
[352] clearline::$2 = > clearline::addr#0
[353] *VERA_ADDRX_M = clearline::$2
[354] *VERA_ADDRX_H = VERA_INC_1
[355] vera_layer_get_color::layer#1 = conio_screen_layer
[356] call vera_layer_get_color
[357] vera_layer_get_color::return#4 = vera_layer_get_color::return#2
to:clearline::@4
clearline::@4: scope:[clearline] from clearline
[370] clearline::color#0 = vera_layer_get_color::return#4
[358] clearline::color#0 = vera_layer_get_color::return#4
to:clearline::@1
clearline::@1: scope:[clearline] from clearline::@2 clearline::@4
[371] clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/0 )
[372] if(clearline::c#2<conio_screen_width) goto clearline::@2
[359] clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/0 )
[360] if(clearline::c#2<conio_screen_width) goto clearline::@2
to:clearline::@3
clearline::@3: scope:[clearline] from clearline::@1
[373] conio_cursor_x[conio_screen_layer] = 0
[361] conio_cursor_x[conio_screen_layer] = 0
to:clearline::@return
clearline::@return: scope:[clearline] from clearline::@3
[374] return
[362] return
to:@return
clearline::@2: scope:[clearline] from clearline::@1
[375] *VERA_DATA0 = ' '
[376] *VERA_DATA0 = clearline::color#0
[377] clearline::c#1 = ++ clearline::c#2
[363] *VERA_DATA0 = ' '
[364] *VERA_DATA0 = clearline::color#0
[365] clearline::c#1 = ++ clearline::c#2
to:clearline::@1
void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest , byte memcpy_in_vram::dest_increment , byte memcpy_in_vram::src_bank , void* memcpy_in_vram::src , byte memcpy_in_vram::src_increment , word memcpy_in_vram::num)
memcpy_in_vram: scope:[memcpy_in_vram] from insertup::@2
[378] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[379] memcpy_in_vram::$0 = < (void*)memcpy_in_vram::src#0
[380] *VERA_ADDRX_L = memcpy_in_vram::$0
[381] memcpy_in_vram::$1 = > (void*)memcpy_in_vram::src#0
[382] *VERA_ADDRX_M = memcpy_in_vram::$1
[383] *VERA_ADDRX_H = VERA_INC_1
[384] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL
[385] memcpy_in_vram::$3 = < memcpy_in_vram::dest#0
[386] *VERA_ADDRX_L = memcpy_in_vram::$3
[387] memcpy_in_vram::$4 = > memcpy_in_vram::dest#0
[388] *VERA_ADDRX_M = memcpy_in_vram::$4
[389] *VERA_ADDRX_H = VERA_INC_1
[366] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[367] memcpy_in_vram::$0 = < (void*)memcpy_in_vram::src#0
[368] *VERA_ADDRX_L = memcpy_in_vram::$0
[369] memcpy_in_vram::$1 = > (void*)memcpy_in_vram::src#0
[370] *VERA_ADDRX_M = memcpy_in_vram::$1
[371] *VERA_ADDRX_H = VERA_INC_1
[372] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL
[373] memcpy_in_vram::$3 = < memcpy_in_vram::dest#0
[374] *VERA_ADDRX_L = memcpy_in_vram::$3
[375] memcpy_in_vram::$4 = > memcpy_in_vram::dest#0
[376] *VERA_ADDRX_M = memcpy_in_vram::$4
[377] *VERA_ADDRX_H = VERA_INC_1
to:memcpy_in_vram::@1
memcpy_in_vram::@1: scope:[memcpy_in_vram] from memcpy_in_vram memcpy_in_vram::@2
[390] memcpy_in_vram::i#2 = phi( memcpy_in_vram/0, memcpy_in_vram::@2/memcpy_in_vram::i#1 )
[391] if(memcpy_in_vram::i#2<memcpy_in_vram::num#0) goto memcpy_in_vram::@2
[378] memcpy_in_vram::i#2 = phi( memcpy_in_vram/0, memcpy_in_vram::@2/memcpy_in_vram::i#1 )
[379] if(memcpy_in_vram::i#2<memcpy_in_vram::num#0) goto memcpy_in_vram::@2
to:memcpy_in_vram::@return
memcpy_in_vram::@return: scope:[memcpy_in_vram] from memcpy_in_vram::@1
[392] return
[380] return
to:@return
memcpy_in_vram::@2: scope:[memcpy_in_vram] from memcpy_in_vram::@1
[393] *VERA_DATA1 = *VERA_DATA0
[394] memcpy_in_vram::i#1 = ++ memcpy_in_vram::i#2
[381] *VERA_DATA1 = *VERA_DATA0
[382] memcpy_in_vram::i#1 = ++ memcpy_in_vram::i#2
to:memcpy_in_vram::@1

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
constant struct VERA_SPRITE $0 = { ADDR: <main::VRAM_SPRITE/$20|VERA_SPRITE_8BPP, X: $140-$20, Y: (word)$f0-$20, CTRL1: $c, CTRL2: $f1 }
constant struct VERA_SPRITE $0 = { ADDR: _word0_main::VRAM_SPRITE/$20|VERA_SPRITE_8BPP, X: $140-$20, Y: (word)$f0-$20, CTRL1: $c, CTRL2: $f1 }
constant const byte BLUE = 6
byte CONIO_SCREEN_BANK
byte CONIO_SCREEN_BANK#14 CONIO_SCREEN_BANK zp[1]:27 100.93636363636364
@ -104,7 +104,7 @@ byte~ clearline::$1 reg byte a 2.00000002E8
byte~ clearline::$2 reg byte a 2.00000002E8
byte~ clearline::$5 reg byte a 2.00000002E8
byte* clearline::addr
byte* clearline::addr#0 addr zp[2]:65 1.00000001E8
byte* clearline::addr#0 addr zp[2]:61 1.00000001E8
word clearline::c
word clearline::c#1 c zp[2]:43 2.0000000002E10
word clearline::c#2 c zp[2]:43 7.50000000075E9
@ -168,8 +168,8 @@ void cputln()
byte~ cputln::$2 reg byte a 200002.0
byte~ cputln::$3 reg byte a 200002.0
word cputln::temp
word cputln::temp#0 temp zp[2]:55 200002.0
word cputln::temp#1 temp zp[2]:55 100001.0
word cputln::temp#0 temp zp[2]:53 200002.0
word cputln::temp#1 temp zp[2]:53 100001.0
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1001.0
@ -191,16 +191,16 @@ byte gotoxy::y#4 reg byte x 4000000.4
void insertup()
byte~ insertup::$3 reg byte a 2.000000002E9
byte insertup::cy
byte insertup::cy#0 cy zp[1]:57 8.416666683333334E7
byte insertup::cy#0 cy zp[1]:55 8.416666683333334E7
byte insertup::i
byte insertup::i#1 reg byte x 2.000000002E9
byte insertup::i#2 reg byte x 4.444444448888889E8
word insertup::line
word insertup::line#0 line zp[2]:59 2.000000002E9
word insertup::line#0 line zp[2]:57 2.000000002E9
byte* insertup::start
byte* insertup::start#0 start zp[2]:59 1.000000001E9
byte* insertup::start#0 start zp[2]:57 1.000000001E9
byte insertup::width
byte insertup::width#0 width zp[1]:58 9.1818182E7
byte insertup::width#0 width zp[1]:56 9.1818182E7
byte load(byte* volatile load::address , volatile byte load::verify)
byte* volatile load::address loadstore zp[2]:40 33.666666666666664
byte load::return
@ -210,14 +210,14 @@ byte load_to_bank(byte load_to_bank::device , byte* load_to_bank::filename , dwo
byte* load_to_bank::addr
dword load_to_bank::address
byte load_to_bank::bank
constant byte load_to_bank::bank#0 bank = (byte)><main::BANK_SPRITE>>5+(word)<>main::BANK_SPRITE<<3
constant byte load_to_bank::bank#0 bank = _byte2_main::BANK_SPRITE<<3|>main::BANK_SPRITE>>5
byte load_to_bank::device
constant byte load_to_bank::device#0 device = 8
byte* load_to_bank::filename
byte load_to_bank::return
void main()
constant const dword main::BANK_SPRITE = $12000
volatile struct VERA_SPRITE main::SPRITE_ATTR loadstore zp[8]:67
volatile struct VERA_SPRITE main::SPRITE_ATTR loadstore zp[8]:63
constant const dword main::VRAM_SPRITE = $10000
constant byte* main::filename[7] = "SPRITE"
constant byte* main::s[$2d] = "
@ -225,26 +225,14 @@ constant byte* main::s[$2d] = "
sprite banked file load and display demo.
"
void memcpy_bank_to_vram(dword memcpy_bank_to_vram::vdest , dword memcpy_bank_to_vram::src , dword memcpy_bank_to_vram::num)
word~ memcpy_bank_to_vram::$0 zp[2]:43 202.0
byte~ memcpy_bank_to_vram::$0 reg byte a 202.0
byte~ memcpy_bank_to_vram::$1 reg byte a 202.0
word~ memcpy_bank_to_vram::$10 zp[2]:59 202.0
byte~ memcpy_bank_to_vram::$11 reg byte x 101.0
word~ memcpy_bank_to_vram::$12 zp[2]:61 202.0
word~ memcpy_bank_to_vram::$13 zp[2]:61 40.4
word~ memcpy_bank_to_vram::$14 zp[2]:63 202.0
word~ memcpy_bank_to_vram::$15 zp[2]:63 202.0
byte~ memcpy_bank_to_vram::$16 reg byte a 101.0
word~ memcpy_bank_to_vram::$17 zp[2]:61 101.0
word~ memcpy_bank_to_vram::$18 zp[2]:15 202.0
word~ memcpy_bank_to_vram::$2 zp[2]:45 202.0
word~ memcpy_bank_to_vram::$23 zp[2]:61 202.0
word~ memcpy_bank_to_vram::$24 zp[2]:65 202.0
byte~ memcpy_bank_to_vram::$3 reg byte a 202.0
word~ memcpy_bank_to_vram::$4 zp[2]:53 202.0
byte~ memcpy_bank_to_vram::$5 reg byte a 202.0
word~ memcpy_bank_to_vram::$7 zp[2]:55 202.0
word~ memcpy_bank_to_vram::$8 zp[2]:55 202.0
byte~ memcpy_bank_to_vram::$9 reg byte y 33.666666666666664
byte~ memcpy_bank_to_vram::$2 reg byte a 202.0
byte~ memcpy_bank_to_vram::$4 reg byte a 202.0
byte~ memcpy_bank_to_vram::$5 zp[1]:55 67.33333333333333
byte~ memcpy_bank_to_vram::$6 reg byte a 202.0
byte~ memcpy_bank_to_vram::$7 reg byte a 202.0
word~ memcpy_bank_to_vram::$9 zp[2]:15 202.0
byte* memcpy_bank_to_vram::addr
word memcpy_bank_to_vram::addr#0 addr zp[2]:15 101.0
byte* memcpy_bank_to_vram::addr#1 addr zp[2]:15 101.0
@ -257,31 +245,31 @@ byte memcpy_bank_to_vram::bank#1 reg byte x 1501.5
byte memcpy_bank_to_vram::bank#2 reg byte x 1034.6666666666667
byte memcpy_bank_to_vram::bank#5 reg byte x 750.75
dword memcpy_bank_to_vram::beg
dword memcpy_bank_to_vram::beg#0 beg zp[4]:11 19.548387096774196
dword memcpy_bank_to_vram::beg#0 beg zp[4]:11 26.578947368421055
dword memcpy_bank_to_vram::end
dword memcpy_bank_to_vram::end#0 end zp[4]:7 39.357142857142854
dword memcpy_bank_to_vram::end#0 end zp[4]:7 58.0
dword memcpy_bank_to_vram::num
dword memcpy_bank_to_vram::num#2 num zp[4]:7 8.416666666666666
dword memcpy_bank_to_vram::num#2 num zp[4]:7 11.222222222222221
dword memcpy_bank_to_vram::pos
dword memcpy_bank_to_vram::pos#1 pos zp[4]:11 2002.0
dword memcpy_bank_to_vram::pos#2 pos zp[4]:11 388.0
dword memcpy_bank_to_vram::src
dword memcpy_bank_to_vram::vdest
dword memcpy_bank_to_vram::vdest#2 vdest zp[4]:3 37.875
dword memcpy_bank_to_vram::vdest#2 vdest zp[4]:3 50.5
void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest , byte memcpy_in_vram::dest_increment , byte memcpy_in_vram::src_bank , void* memcpy_in_vram::src , byte memcpy_in_vram::src_increment , word memcpy_in_vram::num)
byte~ memcpy_in_vram::$0 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$1 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$3 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$4 reg byte a 2.0000000002E10
void* memcpy_in_vram::dest
void* memcpy_in_vram::dest#0 dest zp[2]:59 1.9090909093636363E9
void* memcpy_in_vram::dest#0 dest zp[2]:57 1.9090909093636363E9
byte memcpy_in_vram::dest_bank
byte memcpy_in_vram::dest_increment
word memcpy_in_vram::i
word memcpy_in_vram::i#1 i zp[2]:45 2.0000000000002E13
word memcpy_in_vram::i#2 i zp[2]:45 1.0000000000001E13
word memcpy_in_vram::num
word memcpy_in_vram::num#0 num zp[2]:63 5.882941176471765E11
word memcpy_in_vram::num#0 num zp[2]:59 5.882941176471765E11
void* memcpy_in_vram::src
byte* memcpy_in_vram::src#0 src zp[2]:61 1.6666666683333334E8
byte memcpy_in_vram::src_bank
@ -296,9 +284,9 @@ byte* memcpy_to_vram::s#2 s zp[2]:15 1334.6666666666667
void* memcpy_to_vram::src
constant void* memcpy_to_vram::src#0 src = (void*)&main::SPRITE_ATTR
byte memcpy_to_vram::vbank
constant byte memcpy_to_vram::vbank#0 vbank = (byte)>VERA_SPRITE_ATTR
constant byte memcpy_to_vram::vbank#0 vbank = _byte2_VERA_SPRITE_ATTR
void* memcpy_to_vram::vdest
constant void* memcpy_to_vram::vdest#0 vdest = (void*)(byte*)<VERA_SPRITE_ATTR
constant void* memcpy_to_vram::vdest#0 vdest = (void*)(byte*)_word0_VERA_SPRITE_ATTR
void screenlayer(byte screenlayer::layer)
word~ screenlayer::$2 zp[2]:30 202.0
byte~ screenlayer::$3 reg byte a 202.0
@ -497,7 +485,7 @@ zp[4]:3 [ memcpy_bank_to_vram::vdest#2 ]
zp[4]:7 [ memcpy_bank_to_vram::num#2 memcpy_bank_to_vram::end#0 ]
zp[4]:11 [ memcpy_bank_to_vram::pos#2 memcpy_bank_to_vram::beg#0 memcpy_bank_to_vram::pos#1 ]
reg byte x [ memcpy_bank_to_vram::bank#2 memcpy_bank_to_vram::bank#0 memcpy_bank_to_vram::bank#5 memcpy_bank_to_vram::bank#1 ]
zp[2]:15 [ memcpy_to_vram::s#2 memcpy_to_vram::s#1 memcpy_bank_to_vram::addr#5 memcpy_bank_to_vram::addr#4 memcpy_bank_to_vram::addr#1 memcpy_bank_to_vram::addr#2 memcpy_bank_to_vram::addr#0 memcpy_bank_to_vram::$18 cputs::s#2 cputs::s#0 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ]
zp[2]:15 [ memcpy_to_vram::s#2 memcpy_to_vram::s#1 memcpy_bank_to_vram::addr#5 memcpy_bank_to_vram::addr#4 memcpy_bank_to_vram::addr#1 memcpy_bank_to_vram::addr#2 memcpy_bank_to_vram::addr#0 memcpy_bank_to_vram::$9 cputs::s#2 cputs::s#0 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ]
reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ]
reg byte a [ vera_layer_get_color::return#2 vera_layer_get_color::return#0 vera_layer_get_color::return#1 ]
reg byte x [ insertup::i#2 insertup::i#1 ]
@ -553,12 +541,12 @@ zp[2]:37 [ setnam::filename ]
zp[1]:39 [ setlfs::device ]
zp[2]:40 [ load::address ]
zp[1]:42 [ load::verify ]
reg byte a [ memcpy_bank_to_vram::$0 ]
reg byte a [ memcpy_bank_to_vram::$1 ]
reg byte a [ memcpy_bank_to_vram::$3 ]
reg byte a [ memcpy_bank_to_vram::$5 ]
reg byte y [ memcpy_bank_to_vram::$9 ]
reg byte x [ memcpy_bank_to_vram::$11 ]
reg byte a [ memcpy_bank_to_vram::$16 ]
reg byte a [ memcpy_bank_to_vram::$2 ]
reg byte a [ memcpy_bank_to_vram::$4 ]
reg byte a [ memcpy_bank_to_vram::$6 ]
reg byte a [ memcpy_bank_to_vram::$7 ]
reg byte a [ vera_layer_get_mapbase_bank::return#0 ]
reg byte a [ vera_layer_get_mapbase_offset::$0 ]
reg byte a [ vera_layer_get_rowshift::return#0 ]
@ -568,32 +556,30 @@ reg byte a [ vera_layer_get_textcolor::return#0 ]
reg byte a [ vera_layer_get_color::return#3 ]
reg byte x [ cputc::color#0 ]
reg byte a [ cputc::$15 ]
zp[2]:43 [ cputc::conio_addr#0 cputc::conio_addr#1 memcpy_bank_to_vram::$0 clearline::c#2 clearline::c#1 strlen::str#2 strlen::str#0 strlen::str#1 ]
zp[2]:43 [ cputc::conio_addr#0 cputc::conio_addr#1 clearline::c#2 clearline::c#1 strlen::str#2 strlen::str#0 strlen::str#1 ]
reg byte a [ cputc::$2 ]
reg byte a [ cputc::$4 ]
reg byte a [ cputc::$5 ]
reg byte a [ cputc::$6 ]
reg byte a [ cputc::scroll_enable#0 ]
zp[2]:45 [ cputc::$16 memcpy_bank_to_vram::$2 memcpy_in_vram::i#2 memcpy_in_vram::i#1 strlen::len#2 strlen::len#1 strlen::return#0 setnam::$0 ]
zp[2]:45 [ cputc::$16 memcpy_in_vram::i#2 memcpy_in_vram::i#1 strlen::len#2 strlen::len#1 strlen::return#0 setnam::$0 ]
zp[1]:47 [ setnam::filename_len ]
zp[1]:48 [ load::status ]
zp[2]:49 [ vera_layer_set_config::addr#0 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ]
zp[2]:51 [ vera_layer_set_tilebase::addr#0 screenlayer::vera_layer_get_width1_config#0 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 ]
reg byte a [ vera_layer_get_color::$3 ]
zp[2]:53 [ vera_layer_get_color::addr#0 memcpy_bank_to_vram::$4 ]
reg byte a [ vera_layer_get_color::$0 ]
reg byte a [ vera_layer_get_color::$1 ]
reg byte a [ cputln::$2 ]
zp[2]:55 [ cputln::temp#0 cputln::temp#1 memcpy_bank_to_vram::$7 memcpy_bank_to_vram::$8 ]
zp[2]:53 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 ]
reg byte a [ cputln::$3 ]
zp[1]:57 [ insertup::cy#0 ]
zp[1]:58 [ insertup::width#0 ]
zp[1]:55 [ insertup::cy#0 memcpy_bank_to_vram::$5 ]
zp[1]:56 [ insertup::width#0 ]
reg byte a [ insertup::$3 ]
zp[2]:59 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 memcpy_bank_to_vram::$10 ]
zp[2]:61 [ memcpy_in_vram::src#0 memcpy_bank_to_vram::$23 memcpy_bank_to_vram::$12 memcpy_bank_to_vram::$13 memcpy_bank_to_vram::$17 ]
zp[2]:63 [ memcpy_in_vram::num#0 memcpy_bank_to_vram::$14 memcpy_bank_to_vram::$15 ]
zp[2]:57 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 ]
zp[2]:59 [ memcpy_in_vram::num#0 ]
reg byte a [ clearline::$5 ]
zp[2]:65 [ clearline::addr#0 memcpy_bank_to_vram::$24 ]
zp[2]:61 [ clearline::addr#0 memcpy_in_vram::src#0 ]
reg byte a [ clearline::$1 ]
reg byte a [ clearline::$2 ]
reg byte a [ vera_layer_get_color::return#4 ]
@ -602,4 +588,4 @@ reg byte a [ memcpy_in_vram::$0 ]
reg byte a [ memcpy_in_vram::$1 ]
reg byte a [ memcpy_in_vram::$3 ]
reg byte a [ memcpy_in_vram::$4 ]
zp[8]:67 [ main::SPRITE_ATTR ]
zp[8]:63 [ main::SPRITE_ATTR ]

View File

@ -82,17 +82,17 @@
// Bit 0: Tile Width (0:8 pixels, 1:16 pixels)
.label VERA_L1_TILEBASE = $9f36
// Variable holding the screen width;
.label conio_screen_width = $1d
.label conio_screen_width = $1f
// Variable holding the screen height;
.label conio_screen_height = $1e
.label conio_screen_height = $20
// Variable holding the screen layer on the VERA card with which conio interacts;
.label conio_screen_layer = $1f
.label conio_screen_layer = $21
// Variables holding the current map width and map height of the layer.
.label conio_width = $20
.label conio_height = $22
.label conio_rowshift = $24
.label conio_rowskip = $25
.label CONIO_SCREEN_BANK = $27
.label conio_width = $22
.label conio_height = $24
.label conio_rowshift = $26
.label conio_rowskip = $27
.label CONIO_SCREEN_BANK = $29
// The screen width
// The screen height
// The text screen base address, which is a 16:0 bit value in VERA VRAM.
@ -107,7 +107,7 @@
// based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer.
// The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the
// mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE.
.label CONIO_SCREEN_TEXT = $28
.label CONIO_SCREEN_TEXT = $2a
.segment Code
__start: {
// __ma unsigned byte conio_screen_width = 0
@ -748,13 +748,13 @@ screensize: {
// Set the layer with which the conio will interact.
// - layer: value of 0 or 1.
screenlayer: {
.label __2 = $34
.label __4 = $2c
.label __5 = $31
.label vera_layer_get_width1_config = $2a
.label vera_layer_get_width1_return = $34
.label vera_layer_get_height1_config = $2e
.label vera_layer_get_height1_return = $31
.label __2 = $3d
.label __4 = $2e
.label __5 = $34
.label vera_layer_get_width1_config = $2c
.label vera_layer_get_width1_return = $3d
.label vera_layer_get_height1_config = $30
.label vera_layer_get_height1_return = $34
// conio_screen_layer = layer
lda #1
sta.z conio_screen_layer
@ -881,7 +881,7 @@ vera_layer_set_backcolor: {
// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes.
// vera_layer_set_mapbase(byte register(A) layer, byte register(X) mapbase)
vera_layer_set_mapbase: {
.label addr = $34
.label addr = $3d
// byte* addr = vera_layer_mapbase[layer]
asl
tay
@ -899,8 +899,8 @@ vera_layer_set_mapbase: {
// Set the cursor to the specified position
// gotoxy(byte register(X) y)
gotoxy: {
.label __6 = $2c
.label line_offset = $2c
.label __6 = $2e
.label line_offset = $2e
// if(y>CONIO_HEIGHT)
lda.z conio_screen_height
stx.z $ff
@ -952,26 +952,26 @@ gotoxy: {
// - dest: pointer to the location to copy to. Note that the address is a 16 bit value!
// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access.
// - num: The number of bytes to copy
// memcpy_in_vram(byte zp($18) dest_bank, void* zp($47) dest, byte register(Y) src_bank, byte* zp($45) src, word zp($4d) num)
// memcpy_in_vram(byte zp($18) dest_bank, void* zp($41) dest, byte register(Y) src_bank, byte* zp($3f) src, word zp($43) num)
memcpy_in_vram: {
.label i = $49
.label dest = $47
.label src = $45
.label num = $4d
.label i = $1d
.label dest = $41
.label src = $3f
.label num = $43
.label dest_bank = $18
// *VERA_CTRL &= ~VERA_ADDRSEL
// Select DATA0
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <src
// BYTE0(src)
lda.z src
// *VERA_ADDRX_L = <src
// *VERA_ADDRX_L = BYTE0(src)
// Set address
sta VERA_ADDRX_L
// >src
// BYTE1(src)
lda.z src+1
// *VERA_ADDRX_M = >src
// *VERA_ADDRX_M = BYTE1(src)
sta VERA_ADDRX_M
// src_increment | src_bank
tya
@ -983,14 +983,14 @@ memcpy_in_vram: {
lda #VERA_ADDRSEL
ora VERA_CTRL
sta VERA_CTRL
// <dest
// BYTE0(dest)
lda.z dest
// *VERA_ADDRX_L = <dest
// *VERA_ADDRX_L = BYTE0(dest)
// Set address
sta VERA_ADDRX_L
// >dest
// BYTE1(dest)
lda.z dest+1
// *VERA_ADDRX_M = >dest
// *VERA_ADDRX_M = BYTE1(dest)
sta VERA_ADDRX_M
// dest_increment | dest_bank
lda #VERA_INC_1
@ -1041,21 +1041,17 @@ memcpy_in_vram: {
// - tilewidth: The width of a tile, which can be 8 or 16 pixels.
// - tileheight: The height of a tile, which can be 8 or 16 pixels.
// - color_depth: The color depth in bits per pixel (BPP), which can be 1, 2, 4 or 8.
// vera_layer_mode_tile(byte zp($d) layer, dword zp($e) mapbase_address, dword zp($12) tilebase_address, word zp($2c) mapwidth, word zp($2a) mapheight, byte zp($16) tilewidth, byte zp($17) tileheight, byte register(X) color_depth)
// vera_layer_mode_tile(byte zp($d) layer, dword zp($e) mapbase_address, dword zp($12) tilebase_address, word zp($2e) mapwidth, word zp($2c) mapheight, byte zp($16) tilewidth, byte zp($17) tileheight, byte register(X) color_depth)
vera_layer_mode_tile: {
.label __1 = $2e
.label __2 = $31
.label __4 = $41
.label __7 = $34
.label __8 = $36
.label __10 = $38
.label __19 = $30
.label __20 = $33
.label __1 = $30
.label __6 = $34
.label __17 = $32
.label __18 = $33
.label mapbase_address = $e
.label tilebase_address = $12
.label layer = $d
.label mapwidth = $2c
.label mapheight = $2a
.label mapwidth = $2e
.label mapheight = $2c
.label tileheight = $17
.label tilewidth = $16
// case 1:
@ -1203,35 +1199,31 @@ vera_layer_mode_tile: {
// vera_layer_set_config(layer, config)
lda.z layer
jsr vera_layer_set_config
// <mapbase_address
// WORD0(mapbase_address)
lda.z mapbase_address
sta.z __1
lda.z mapbase_address+1
sta.z __1+1
// vera_mapbase_offset[layer] = <mapbase_address
// vera_mapbase_offset[layer] = WORD0(mapbase_address)
lda.z layer
asl
sta.z __19
sta.z __17
// mapbase
tay
lda.z __1
sta vera_mapbase_offset,y
lda.z __1+1
sta vera_mapbase_offset+1,y
// >mapbase_address
// BYTE2(mapbase_address)
lda.z mapbase_address+2
sta.z __2
lda.z mapbase_address+3
sta.z __2+1
// vera_mapbase_bank[layer] = (byte)(>mapbase_address)
// vera_mapbase_bank[layer] = BYTE2(mapbase_address)
ldy.z layer
lda.z __2
sta vera_mapbase_bank,y
// vera_mapbase_address[layer] = mapbase_address
tya
asl
asl
sta.z __20
sta.z __18
tay
lda.z mapbase_address
sta vera_mapbase_address,y
@ -1246,39 +1238,30 @@ vera_layer_mode_tile: {
ror.z mapbase_address+2
ror.z mapbase_address+1
ror.z mapbase_address
// <mapbase_address
lda.z mapbase_address
sta.z __4
lda.z mapbase_address+1
sta.z __4+1
// byte mapbase = >(<mapbase_address)
tax
// byte mapbase = BYTE1(mapbase_address)
ldx.z mapbase_address+1
// vera_layer_set_mapbase(layer,mapbase)
lda.z layer
jsr vera_layer_set_mapbase
// <tilebase_address
// WORD0(tilebase_address)
lda.z tilebase_address
sta.z __7
sta.z __6
lda.z tilebase_address+1
sta.z __7+1
// vera_tilebase_offset[layer] = <tilebase_address
sta.z __6+1
// vera_tilebase_offset[layer] = WORD0(tilebase_address)
// tilebase
ldy.z __19
lda.z __7
ldy.z __17
lda.z __6
sta vera_tilebase_offset,y
lda.z __7+1
lda.z __6+1
sta vera_tilebase_offset+1,y
// >tilebase_address
// BYTE2(tilebase_address)
lda.z tilebase_address+2
sta.z __8
lda.z tilebase_address+3
sta.z __8+1
// vera_tilebase_bank[layer] = (byte)>tilebase_address
// vera_tilebase_bank[layer] = BYTE2(tilebase_address)
ldy.z layer
lda.z __8
sta vera_tilebase_bank,y
// vera_tilebase_address[layer] = tilebase_address
ldy.z __20
ldy.z __18
lda.z tilebase_address
sta vera_tilebase_address,y
lda.z tilebase_address+1
@ -1292,12 +1275,8 @@ vera_layer_mode_tile: {
ror.z tilebase_address+2
ror.z tilebase_address+1
ror.z tilebase_address
// <tilebase_address
lda.z tilebase_address
sta.z __10
// byte tilebase = BYTE1(tilebase_address)
lda.z tilebase_address+1
sta.z __10+1
// byte tilebase = >(<tilebase_address)
// tilebase &= VERA_LAYER_TILEBASE_MASK
and #VERA_LAYER_TILEBASE_MASK
tax
@ -1405,9 +1384,9 @@ vera_layer_mode_tile: {
}
// clears the screen and moves the cursor to the upper left-hand corner of the screen.
clrscr: {
.label __1 = $3a
.label line_text = $45
.label color = $3a
.label __1 = $36
.label line_text = $3f
.label color = $36
// char* line_text = CONIO_SCREEN_TEXT
lda.z CONIO_SCREEN_TEXT
sta.z line_text
@ -1456,14 +1435,14 @@ clrscr: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <ch
// BYTE0(ch)
lda.z line_text
// *VERA_ADDRX_L = <ch
// *VERA_ADDRX_L = BYTE0(ch)
// Set address
sta VERA_ADDRX_L
// >ch
// BYTE1(ch)
lda.z line_text+1
// *VERA_ADDRX_M = >ch
// *VERA_ADDRX_M = BYTE1(ch)
sta VERA_ADDRX_M
// CONIO_SCREEN_BANK | VERA_INC_1
lda #VERA_INC_1
@ -1505,24 +1484,24 @@ clrscr: {
// - vdest: The destination address in VRAM
// - src: The source address in RAM
// - num: The number of bytes to copy
// memcpy_to_vram(void* zp($47) vdest)
// memcpy_to_vram(void* zp($41) vdest)
memcpy_to_vram: {
.label end = main.tiles+$100
.label s = $4d
.label vdest = $47
.label s = $43
.label vdest = $41
// *VERA_CTRL &= ~VERA_ADDRSEL
// Select DATA0
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <vdest
// BYTE0(vdest)
lda.z vdest
// *VERA_ADDRX_L = <vdest
// *VERA_ADDRX_L = BYTE0(vdest)
// Set address
sta VERA_ADDRX_L
// >vdest
// BYTE1(vdest)
lda.z vdest+1
// *VERA_ADDRX_M = >vdest
// *VERA_ADDRX_M = BYTE1(vdest)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = VERA_INC_1 | vbank
lda #VERA_INC_1
@ -1554,26 +1533,23 @@ memcpy_to_vram: {
jmp __b1
}
// --- TILE FUNCTIONS ---
// vera_tile_area(word zp(8) tileindex, byte zp($c) x, byte zp(6) y, byte zp($3a) w, byte zp($18) h, byte zp($4c) hflip, byte zp($3d) vflip)
// vera_tile_area(word zp(8) tileindex, byte zp($c) x, byte zp(6) y, byte zp($36) w, byte zp($18) h, byte zp($46) hflip, byte zp($39) vflip)
vera_tile_area: {
.label __4 = $45
.label __10 = $45
.label vera_vram_address01___0 = $47
.label vera_vram_address01___2 = $4d
.label vera_vram_address01___4 = $49
.label __4 = $3f
.label __10 = $3f
.label mapbase = $19
.label shift = $4b
.label rowskip = $3b
.label hflip = $4c
.label vflip = $3d
.label index_l = $3e
.label index_h = $3d
.label r = $3f
.label shift = $45
.label rowskip = $37
.label hflip = $46
.label vflip = $39
.label index_l = $3a
.label index_h = $39
.label r = $3b
.label tileindex = 8
.label x = $c
.label y = 6
.label h = $18
.label w = $3a
.label w = $36
// dword mapbase = vera_mapbase_address[layer]
lda vera_mapbase_address
sta.z mapbase
@ -1606,10 +1582,10 @@ vera_tile_area: {
// vflip = vera_layer_vflip[vflip]
lda vera_layer_vflip
sta.z vflip
// byte index_l = <tileindex
// byte index_l = BYTE0(tileindex)
lda.z tileindex
sta.z index_l
// byte index_h = >tileindex
// byte index_h = BYTE1(tileindex)
lda.z tileindex+1
// index_h |= hflip
ora.z hflip
@ -1673,33 +1649,19 @@ vera_tile_area: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <bankaddr
// BYTE0(bankaddr)
lda.z mapbase
sta.z vera_vram_address01___0
lda.z mapbase+1
sta.z vera_vram_address01___0+1
// <(<bankaddr)
lda.z vera_vram_address01___0
// *VERA_ADDRX_L = <(<bankaddr)
// *VERA_ADDRX_L = BYTE0(bankaddr)
sta VERA_ADDRX_L
// <bankaddr
lda.z mapbase
sta.z vera_vram_address01___2
// BYTE1(bankaddr)
lda.z mapbase+1
sta.z vera_vram_address01___2+1
// >(<bankaddr)
// *VERA_ADDRX_M = >(<bankaddr)
// *VERA_ADDRX_M = BYTE1(bankaddr)
sta VERA_ADDRX_M
// >bankaddr
// BYTE2(bankaddr)
lda.z mapbase+2
sta.z vera_vram_address01___4
lda.z mapbase+3
sta.z vera_vram_address01___4+1
// <(>bankaddr)
lda.z vera_vram_address01___4
// <(>bankaddr) | incr
// BYTE2(bankaddr) | incr
ora #VERA_INC_1
// *VERA_ADDRX_H = <(>bankaddr) | incr
// *VERA_ADDRX_H = BYTE2(bankaddr) | incr
sta VERA_ADDRX_H
ldy #0
__b2:
@ -1735,9 +1697,9 @@ vera_tile_area: {
jmp __b2
}
// Output a NUL-terminated string at the current cursor position
// cputs(const byte* zp($3b) s)
// cputs(const byte* zp($37) s)
cputs: {
.label s = $3b
.label s = $37
__b1:
// while(c=*s++)
ldy #0
@ -1762,7 +1724,7 @@ kbhit: {
.label IN_DEV = $28a
// Current input device number
.label GETIN = $ffe4
.label ch = $40
.label ch = $3c
// char ch = 0
lda #0
sta.z ch
@ -1805,7 +1767,7 @@ kbhit: {
// - layer: Value of 0 or 1.
// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode.
vera_layer_set_text_color_mode: {
.label addr = $41
.label addr = $3d
// byte* addr = vera_layer_config[layer]
lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER
sta.z addr
@ -1837,7 +1799,7 @@ vera_layer_get_mapbase_bank: {
// - return: Offset in vera vram of the specified bank.
// vera_layer_get_mapbase_offset(byte register(A) layer)
vera_layer_get_mapbase_offset: {
.label return = $2c
.label return = $2e
// return vera_mapbase_offset[layer];
asl
tay
@ -1863,7 +1825,7 @@ vera_layer_get_rowshift: {
// - return: Skip value to calculate fast from a y value to line offset in tile mode.
// vera_layer_get_rowskip(byte register(A) layer)
vera_layer_get_rowskip: {
.label return = $2c
.label return = $2e
// return vera_layer_rowskip[layer];
asl
tay
@ -1879,7 +1841,7 @@ vera_layer_get_rowskip: {
// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'.
// vera_layer_set_config(byte register(A) layer, byte register(X) config)
vera_layer_set_config: {
.label addr = $43
.label addr = $3d
// byte* addr = vera_layer_config[layer]
asl
tay
@ -1901,7 +1863,7 @@ vera_layer_set_config: {
// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes!
// vera_layer_set_tilebase(byte register(A) layer, byte register(X) tilebase)
vera_layer_set_tilebase: {
.label addr = $43
.label addr = $3d
// byte* addr = vera_layer_tilebase[layer]
asl
tay
@ -1942,11 +1904,11 @@ vera_layer_get_textcolor: {
}
// Output one character at the current cursor position
// Moves the cursor forward. Scrolls the entire screen if needed
// cputc(byte zp($3f) c)
// cputc(byte zp($3b) c)
cputc: {
.label __16 = $47
.label conio_addr = $45
.label c = $3f
.label __16 = $41
.label conio_addr = $3f
.label c = $3b
// vera_layer_get_color( conio_screen_layer)
ldx.z conio_screen_layer
jsr vera_layer_get_color
@ -1985,14 +1947,14 @@ cputc: {
lda #VERA_ADDRSEL^$ff
and VERA_CTRL
sta VERA_CTRL
// <conio_addr
// BYTE0(conio_addr)
lda.z conio_addr
// *VERA_ADDRX_L = <conio_addr
// *VERA_ADDRX_L = BYTE0(conio_addr)
// Set address
sta VERA_ADDRX_L
// >conio_addr
// BYTE1(conio_addr)
lda.z conio_addr+1
// *VERA_ADDRX_M = >conio_addr
// *VERA_ADDRX_M = BYTE1(conio_addr)
sta VERA_ADDRX_M
// CONIO_SCREEN_BANK | VERA_INC_1
lda #VERA_INC_1
@ -2050,7 +2012,7 @@ cputc: {
// Note that on the VERA, the transparent color has value 0.
// vera_layer_get_color(byte register(X) layer)
vera_layer_get_color: {
.label addr = $4d
.label addr = $43
// byte* addr = vera_layer_config[layer]
txa
asl
@ -2083,7 +2045,7 @@ vera_layer_get_color: {
}
// Print a newline
cputln: {
.label temp = $49
.label temp = $43
// word temp = conio_line_text[conio_screen_layer]
lda.z conio_screen_layer
asl
@ -2151,10 +2113,10 @@ cscroll: {
}
// Insert a new line, and scroll the upper part of the screen up.
insertup: {
.label cy = $4b
.label width = $4c
.label line = $47
.label start = $47
.label cy = $45
.label width = $46
.label line = $41
.label start = $41
// unsigned byte cy = conio_cursor_y[conio_screen_layer]
ldy.z conio_screen_layer
lda conio_cursor_y,y
@ -2222,8 +2184,8 @@ insertup: {
jmp __b1
}
clearline: {
.label addr = $4d
.label c = $49
.label addr = $47
.label c = $1d
// *VERA_CTRL &= ~VERA_ADDRSEL
// Select DATA0
lda #VERA_ADDRSEL^$ff
@ -2241,13 +2203,13 @@ clearline: {
lda.z CONIO_SCREEN_TEXT+1
adc conio_line_text+1,y
sta.z addr+1
// <addr
// BYTE0(addr)
lda.z addr
// *VERA_ADDRX_L = <addr
// *VERA_ADDRX_L = BYTE0(addr)
sta VERA_ADDRX_L
// >addr
// BYTE1(addr)
lda.z addr+1
// *VERA_ADDRX_M = >addr
// *VERA_ADDRX_M = BYTE1(addr)
sta VERA_ADDRX_M
// *VERA_ADDRX_H = VERA_INC_1
lda #VERA_INC_1

View File

@ -498,8 +498,8 @@ vera_layer_mode_tile::@8: scope:[vera_layer_mode_tile] from vera_layer_mode_til
vera_layer_mode_tile::@12: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@8
[245] vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_256
[246] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9
[247] vera_layer_mode_tile::$16 = vera_layer_mode_tile::layer#10 << 1
[248] vera_layer_rowskip[vera_layer_mode_tile::$16] = $200
[247] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1
[248] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200
to:vera_layer_mode_tile::@13
vera_layer_mode_tile::@13: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@8 vera_layer_mode_tile::@9
[249] vera_layer_mode_tile::config#21 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::config#17, vera_layer_mode_tile::@9/vera_layer_mode_tile::config#17, vera_layer_mode_tile::@10/vera_layer_mode_tile::config#6, vera_layer_mode_tile::@11/vera_layer_mode_tile::config#7, vera_layer_mode_tile::@12/vera_layer_mode_tile::config#8 )
@ -524,236 +524,231 @@ vera_layer_mode_tile::@20: scope:[vera_layer_mode_tile] from vera_layer_mode_ti
[258] call vera_layer_set_config
to:vera_layer_mode_tile::@27
vera_layer_mode_tile::@27: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@20
[259] vera_layer_mode_tile::$1 = < vera_layer_mode_tile::mapbase_address#10
[260] vera_layer_mode_tile::$19 = vera_layer_mode_tile::layer#10 << 1
[261] vera_mapbase_offset[vera_layer_mode_tile::$19] = vera_layer_mode_tile::$1
[262] vera_layer_mode_tile::$2 = > vera_layer_mode_tile::mapbase_address#10
[263] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = (byte)vera_layer_mode_tile::$2
[264] vera_layer_mode_tile::$20 = vera_layer_mode_tile::layer#10 << 2
[265] vera_mapbase_address[vera_layer_mode_tile::$20] = vera_layer_mode_tile::mapbase_address#10
[259] vera_layer_mode_tile::$1 = _word0_ vera_layer_mode_tile::mapbase_address#10
[260] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1
[261] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1
[262] vera_layer_mode_tile::$2 = _byte2_ vera_layer_mode_tile::mapbase_address#10
[263] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2
[264] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2
[265] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10
[266] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1
[267] vera_layer_mode_tile::$4 = < vera_layer_mode_tile::mapbase_address#0
[268] vera_layer_mode_tile::mapbase#0 = > vera_layer_mode_tile::$4
[269] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10
[270] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0
[271] call vera_layer_set_mapbase
[267] vera_layer_mode_tile::mapbase#0 = > vera_layer_mode_tile::mapbase_address#0
[268] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10
[269] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0
[270] call vera_layer_set_mapbase
to:vera_layer_mode_tile::@28
vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@27
[272] vera_layer_mode_tile::$7 = < vera_layer_mode_tile::tilebase_address#10
[273] vera_tilebase_offset[vera_layer_mode_tile::$19] = vera_layer_mode_tile::$7
[274] vera_layer_mode_tile::$8 = > vera_layer_mode_tile::tilebase_address#10
[275] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = (byte)vera_layer_mode_tile::$8
[276] vera_tilebase_address[vera_layer_mode_tile::$20] = vera_layer_mode_tile::tilebase_address#10
[277] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1
[278] vera_layer_mode_tile::$10 = < vera_layer_mode_tile::tilebase_address#0
[279] vera_layer_mode_tile::tilebase#0 = > vera_layer_mode_tile::$10
[280] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK
[281] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23
[271] vera_layer_mode_tile::$6 = _word0_ vera_layer_mode_tile::tilebase_address#10
[272] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6
[273] vera_layer_mode_tile::$7 = _byte2_ vera_layer_mode_tile::tilebase_address#10
[274] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7
[275] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10
[276] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1
[277] vera_layer_mode_tile::tilebase#0 = > vera_layer_mode_tile::tilebase_address#0
[278] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK
[279] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23
to:vera_layer_mode_tile::@21
vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28
[282] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23
[280] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23
to:vera_layer_mode_tile::@22
vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21
[283] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16
[281] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16
to:vera_layer_mode_tile::@23
vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28
[284] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase#3 )
[285] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26
[282] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase#3 )
[283] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26
to:vera_layer_mode_tile::@24
vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23
[286] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26
[284] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26
to:vera_layer_mode_tile::@25
vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24
[287] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16
[285] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16
to:vera_layer_mode_tile::@26
vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25
[288] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#5 )
[289] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10
[290] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10
[291] call vera_layer_set_tilebase
[286] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#5 )
[287] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10
[288] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10
[289] call vera_layer_set_tilebase
to:vera_layer_mode_tile::@return
vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@26
[292] return
[290] return
to:@return
vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@15
[293] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128
[291] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128
to:vera_layer_mode_tile::@20
vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@14
[294] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64
[292] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64
to:vera_layer_mode_tile::@20
vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@7
[295] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128
[296] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8
[297] vera_layer_mode_tile::$15 = vera_layer_mode_tile::layer#10 << 1
[298] vera_layer_rowskip[vera_layer_mode_tile::$15] = $100
[293] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128
[294] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8
[295] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1
[296] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100
to:vera_layer_mode_tile::@13
vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@6
[299] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64
[300] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7
[301] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1
[302] vera_layer_rowskip[vera_layer_mode_tile::$14] = $80
[297] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64
[298] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7
[299] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1
[300] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80
to:vera_layer_mode_tile::@13
vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5
[303] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6
[304] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1
[305] vera_layer_rowskip[vera_layer_mode_tile::$13] = $40
[301] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6
[302] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1
[303] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40
to:vera_layer_mode_tile::@13
void clrscr()
clrscr: scope:[clrscr] from main::@16 main::@18
[306] clrscr::line_text#0 = (byte*)CONIO_SCREEN_TEXT#17
[307] vera_layer_get_backcolor::layer#0 = conio_screen_layer
[308] call vera_layer_get_backcolor
[309] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1
[304] clrscr::line_text#0 = (byte*)CONIO_SCREEN_TEXT#17
[305] vera_layer_get_backcolor::layer#0 = conio_screen_layer
[306] call vera_layer_get_backcolor
[307] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1
to:clrscr::@7
clrscr::@7: scope:[clrscr] from clrscr
[310] clrscr::$0 = vera_layer_get_backcolor::return#0
[311] clrscr::$1 = clrscr::$0 << 4
[312] vera_layer_get_textcolor::layer#0 = conio_screen_layer
[313] call vera_layer_get_textcolor
[314] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1
[308] clrscr::$0 = vera_layer_get_backcolor::return#0
[309] clrscr::$1 = clrscr::$0 << 4
[310] vera_layer_get_textcolor::layer#0 = conio_screen_layer
[311] call vera_layer_get_textcolor
[312] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1
to:clrscr::@8
clrscr::@8: scope:[clrscr] from clrscr::@7
[315] clrscr::$2 = vera_layer_get_textcolor::return#0
[316] clrscr::color#0 = clrscr::$1 | clrscr::$2
[313] clrscr::$2 = vera_layer_get_textcolor::return#0
[314] clrscr::color#0 = clrscr::$1 | clrscr::$2
to:clrscr::@1
clrscr::@1: scope:[clrscr] from clrscr::@6 clrscr::@8
[317] clrscr::line_text#2 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#0 )
[317] clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/0 )
[318] if(clrscr::l#2<conio_height) goto clrscr::@2
[315] clrscr::line_text#2 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#0 )
[315] clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/0 )
[316] if(clrscr::l#2<conio_height) goto clrscr::@2
to:clrscr::@3
clrscr::@3: scope:[clrscr] from clrscr::@1
[319] conio_cursor_x[conio_screen_layer] = 0
[320] conio_cursor_y[conio_screen_layer] = 0
[321] clrscr::$9 = conio_screen_layer << 1
[322] conio_line_text[clrscr::$9] = 0
[317] conio_cursor_x[conio_screen_layer] = 0
[318] conio_cursor_y[conio_screen_layer] = 0
[319] clrscr::$9 = conio_screen_layer << 1
[320] conio_line_text[clrscr::$9] = 0
to:clrscr::@return
clrscr::@return: scope:[clrscr] from clrscr::@3
[323] return
[321] return
to:@return
clrscr::@2: scope:[clrscr] from clrscr::@1
[324] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[325] clrscr::$5 = < clrscr::line_text#2
[326] *VERA_ADDRX_L = clrscr::$5
[327] clrscr::$6 = > clrscr::line_text#2
[328] *VERA_ADDRX_M = clrscr::$6
[329] clrscr::$7 = CONIO_SCREEN_BANK#15 | VERA_INC_1
[330] *VERA_ADDRX_H = clrscr::$7
[322] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[323] clrscr::$5 = < clrscr::line_text#2
[324] *VERA_ADDRX_L = clrscr::$5
[325] clrscr::$6 = > clrscr::line_text#2
[326] *VERA_ADDRX_M = clrscr::$6
[327] clrscr::$7 = CONIO_SCREEN_BANK#15 | VERA_INC_1
[328] *VERA_ADDRX_H = clrscr::$7
to:clrscr::@4
clrscr::@4: scope:[clrscr] from clrscr::@2 clrscr::@5
[331] clrscr::c#2 = phi( clrscr::@2/0, clrscr::@5/clrscr::c#1 )
[332] if(clrscr::c#2<conio_width) goto clrscr::@5
[329] clrscr::c#2 = phi( clrscr::@2/0, clrscr::@5/clrscr::c#1 )
[330] if(clrscr::c#2<conio_width) goto clrscr::@5
to:clrscr::@6
clrscr::@6: scope:[clrscr] from clrscr::@4
[333] clrscr::line_text#1 = clrscr::line_text#2 + conio_rowskip
[334] clrscr::l#1 = ++ clrscr::l#2
[331] clrscr::line_text#1 = clrscr::line_text#2 + conio_rowskip
[332] clrscr::l#1 = ++ clrscr::l#2
to:clrscr::@1
clrscr::@5: scope:[clrscr] from clrscr::@4
[335] *VERA_DATA0 = ' '
[336] *VERA_DATA0 = clrscr::color#0
[337] clrscr::c#1 = ++ clrscr::c#2
[333] *VERA_DATA0 = ' '
[334] *VERA_DATA0 = clrscr::color#0
[335] clrscr::c#1 = ++ clrscr::c#2
to:clrscr::@4
void memcpy_to_vram(byte memcpy_to_vram::vbank , void* memcpy_to_vram::vdest , void* memcpy_to_vram::src , word memcpy_to_vram::num)
memcpy_to_vram: scope:[memcpy_to_vram] from main::@22 main::@3
[338] memcpy_to_vram::vdest#2 = phi( main::@22/(void*)(byte*) 0, main::@3/memcpy_to_vram::vdest#1 )
[339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[340] memcpy_to_vram::$0 = < memcpy_to_vram::vdest#2
[341] *VERA_ADDRX_L = memcpy_to_vram::$0
[342] memcpy_to_vram::$1 = > memcpy_to_vram::vdest#2
[343] *VERA_ADDRX_M = memcpy_to_vram::$1
[344] *VERA_ADDRX_H = VERA_INC_1
[336] memcpy_to_vram::vdest#2 = phi( main::@22/(void*)(byte*) 0, main::@3/memcpy_to_vram::vdest#1 )
[337] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[338] memcpy_to_vram::$0 = < memcpy_to_vram::vdest#2
[339] *VERA_ADDRX_L = memcpy_to_vram::$0
[340] memcpy_to_vram::$1 = > memcpy_to_vram::vdest#2
[341] *VERA_ADDRX_M = memcpy_to_vram::$1
[342] *VERA_ADDRX_H = VERA_INC_1
to:memcpy_to_vram::@1
memcpy_to_vram::@1: scope:[memcpy_to_vram] from memcpy_to_vram memcpy_to_vram::@2
[345] memcpy_to_vram::s#2 = phi( memcpy_to_vram/(byte*)(void*)main::tiles, memcpy_to_vram::@2/memcpy_to_vram::s#1 )
[346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2
[343] memcpy_to_vram::s#2 = phi( memcpy_to_vram/(byte*)(void*)main::tiles, memcpy_to_vram::@2/memcpy_to_vram::s#1 )
[344] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2
to:memcpy_to_vram::@return
memcpy_to_vram::@return: scope:[memcpy_to_vram] from memcpy_to_vram::@1
[347] return
[345] return
to:@return
memcpy_to_vram::@2: scope:[memcpy_to_vram] from memcpy_to_vram::@1
[348] *VERA_DATA0 = *memcpy_to_vram::s#2
[349] memcpy_to_vram::s#1 = ++ memcpy_to_vram::s#2
[346] *VERA_DATA0 = *memcpy_to_vram::s#2
[347] memcpy_to_vram::s#1 = ++ memcpy_to_vram::s#2
to:memcpy_to_vram::@1
void vera_tile_area(byte vera_tile_area::layer , word vera_tile_area::tileindex , byte vera_tile_area::x , byte vera_tile_area::y , byte vera_tile_area::w , byte vera_tile_area::h , byte vera_tile_area::hflip , byte vera_tile_area::vflip , byte vera_tile_area::offset)
vera_tile_area: scope:[vera_tile_area] from main::@10 main::@12 main::@15 main::@4 main::@6
[350] vera_tile_area::w#11 = phi( main::@10/$28, main::@12/2, main::@15/$28, main::@4/$28, main::@6/1 )
[350] vera_tile_area::h#6 = phi( main::@10/$1e, main::@12/2, main::@15/$1e, main::@4/$1e, main::@6/1 )
[350] vera_tile_area::x#5 = phi( main::@10/0, main::@12/vera_tile_area::x#3, main::@15/0, main::@4/0, main::@6/vera_tile_area::x#1 )
[350] vera_tile_area::y#5 = phi( main::@10/0, main::@12/vera_tile_area::y#3, main::@15/0, main::@4/0, main::@6/vera_tile_area::y#1 )
[350] vera_tile_area::tileindex#5 = phi( main::@10/0, main::@12/vera_tile_area::tileindex#3, main::@15/0, main::@4/0, main::@6/vera_tile_area::tileindex#1 )
[351] vera_tile_area::mapbase#0 = *vera_mapbase_address
[352] vera_tile_area::shift#0 = *vera_layer_rowshift
[353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0
[354] vera_tile_area::hflip#0 = *vera_layer_hflip
[355] vera_tile_area::vflip#0 = *vera_layer_vflip
[356] vera_tile_area::index_l#0 = < vera_tile_area::tileindex#5
[357] vera_tile_area::index_h#0 = > vera_tile_area::tileindex#5
[358] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0
[359] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0
[360] vera_tile_area::$10 = (word)vera_tile_area::y#5
[361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0
[362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4
[363] vera_tile_area::$5 = vera_tile_area::x#5 << 1
[364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5
[348] vera_tile_area::w#11 = phi( main::@10/$28, main::@12/2, main::@15/$28, main::@4/$28, main::@6/1 )
[348] vera_tile_area::h#6 = phi( main::@10/$1e, main::@12/2, main::@15/$1e, main::@4/$1e, main::@6/1 )
[348] vera_tile_area::x#5 = phi( main::@10/0, main::@12/vera_tile_area::x#3, main::@15/0, main::@4/0, main::@6/vera_tile_area::x#1 )
[348] vera_tile_area::y#5 = phi( main::@10/0, main::@12/vera_tile_area::y#3, main::@15/0, main::@4/0, main::@6/vera_tile_area::y#1 )
[348] vera_tile_area::tileindex#5 = phi( main::@10/0, main::@12/vera_tile_area::tileindex#3, main::@15/0, main::@4/0, main::@6/vera_tile_area::tileindex#1 )
[349] vera_tile_area::mapbase#0 = *vera_mapbase_address
[350] vera_tile_area::shift#0 = *vera_layer_rowshift
[351] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0
[352] vera_tile_area::hflip#0 = *vera_layer_hflip
[353] vera_tile_area::vflip#0 = *vera_layer_vflip
[354] vera_tile_area::index_l#0 = < vera_tile_area::tileindex#5
[355] vera_tile_area::index_h#0 = > vera_tile_area::tileindex#5
[356] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0
[357] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0
[358] vera_tile_area::$10 = (word)vera_tile_area::y#5
[359] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0
[360] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4
[361] vera_tile_area::$5 = vera_tile_area::x#5 << 1
[362] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5
to:vera_tile_area::@1
vera_tile_area::@1: scope:[vera_tile_area] from vera_tile_area vera_tile_area::@4
[365] vera_tile_area::mapbase#10 = phi( vera_tile_area/vera_tile_area::mapbase#2, vera_tile_area::@4/vera_tile_area::mapbase#3 )
[365] vera_tile_area::r#2 = phi( vera_tile_area/0, vera_tile_area::@4/vera_tile_area::r#1 )
[366] if(vera_tile_area::r#2<vera_tile_area::h#6) goto vera_tile_area::vera_vram_address01
[363] vera_tile_area::mapbase#10 = phi( vera_tile_area/vera_tile_area::mapbase#2, vera_tile_area::@4/vera_tile_area::mapbase#3 )
[363] vera_tile_area::r#2 = phi( vera_tile_area/0, vera_tile_area::@4/vera_tile_area::r#1 )
[364] if(vera_tile_area::r#2<vera_tile_area::h#6) goto vera_tile_area::vera_vram_address01
to:vera_tile_area::@return
vera_tile_area::@return: scope:[vera_tile_area] from vera_tile_area::@1
[367] return
[365] return
to:@return
vera_tile_area::vera_vram_address01: scope:[vera_tile_area] from vera_tile_area::@1
[368] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[369] vera_tile_area::vera_vram_address01_$0 = < vera_tile_area::mapbase#10
[370] vera_tile_area::vera_vram_address01_$1 = < vera_tile_area::vera_vram_address01_$0
[371] *VERA_ADDRX_L = vera_tile_area::vera_vram_address01_$1
[372] vera_tile_area::vera_vram_address01_$2 = < vera_tile_area::mapbase#10
[373] vera_tile_area::vera_vram_address01_$3 = > vera_tile_area::vera_vram_address01_$2
[374] *VERA_ADDRX_M = vera_tile_area::vera_vram_address01_$3
[375] vera_tile_area::vera_vram_address01_$4 = > vera_tile_area::mapbase#10
[376] vera_tile_area::vera_vram_address01_$5 = < vera_tile_area::vera_vram_address01_$4
[377] vera_tile_area::vera_vram_address01_$6 = vera_tile_area::vera_vram_address01_$5 | VERA_INC_1
[378] *VERA_ADDRX_H = vera_tile_area::vera_vram_address01_$6
[366] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[367] vera_tile_area::vera_vram_address01_$0 = < vera_tile_area::mapbase#10
[368] *VERA_ADDRX_L = vera_tile_area::vera_vram_address01_$0
[369] vera_tile_area::vera_vram_address01_$1 = > vera_tile_area::mapbase#10
[370] *VERA_ADDRX_M = vera_tile_area::vera_vram_address01_$1
[371] vera_tile_area::vera_vram_address01_$2 = _byte2_ vera_tile_area::mapbase#10
[372] vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | VERA_INC_1
[373] *VERA_ADDRX_H = vera_tile_area::vera_vram_address01_$3
to:vera_tile_area::@2
vera_tile_area::@2: scope:[vera_tile_area] from vera_tile_area::@3 vera_tile_area::vera_vram_address01
[379] vera_tile_area::c#2 = phi( vera_tile_area::@3/vera_tile_area::c#1, vera_tile_area::vera_vram_address01/0 )
[380] if(vera_tile_area::c#2<vera_tile_area::w#11) goto vera_tile_area::@3
[374] vera_tile_area::c#2 = phi( vera_tile_area::@3/vera_tile_area::c#1, vera_tile_area::vera_vram_address01/0 )
[375] if(vera_tile_area::c#2<vera_tile_area::w#11) goto vera_tile_area::@3
to:vera_tile_area::@4
vera_tile_area::@4: scope:[vera_tile_area] from vera_tile_area::@2
[381] vera_tile_area::mapbase#3 = vera_tile_area::mapbase#10 + vera_tile_area::rowskip#0
[382] vera_tile_area::r#1 = ++ vera_tile_area::r#2
[376] vera_tile_area::mapbase#3 = vera_tile_area::mapbase#10 + vera_tile_area::rowskip#0
[377] vera_tile_area::r#1 = ++ vera_tile_area::r#2
to:vera_tile_area::@1
vera_tile_area::@3: scope:[vera_tile_area] from vera_tile_area::@2
[383] *VERA_DATA0 = vera_tile_area::index_l#0
[384] *VERA_DATA0 = vera_tile_area::index_h#2
[385] vera_tile_area::c#1 = ++ vera_tile_area::c#2
[378] *VERA_DATA0 = vera_tile_area::index_l#0
[379] *VERA_DATA0 = vera_tile_area::index_h#2
[380] vera_tile_area::c#1 = ++ vera_tile_area::c#2
to:vera_tile_area::@2
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@25 main::@26 main::@27 main::@28 main::@29 main::@30 main::@31 main::@32
[386] cputs::s#10 = phi( main::@25/main::s, main::@26/main::s1, main::@27/main::s2, main::@28/main::s3, main::@29/main::s4, main::@30/main::s5, main::@31/main::s6, main::@32/main::s7 )
[381] cputs::s#10 = phi( main::@25/main::s, main::@26/main::s1, main::@27/main::s2, main::@28/main::s3, main::@29/main::s4, main::@30/main::s5, main::@31/main::s6, main::@32/main::s7 )
to:cputs::@1
cputs::@1: scope:[cputs] from cputs cputs::@2
[387] cputs::s#9 = phi( cputs/cputs::s#10, cputs::@2/cputs::s#0 )
[388] cputs::c#1 = *cputs::s#9
[389] cputs::s#0 = ++ cputs::s#9
[390] if(0!=cputs::c#1) goto cputs::@2
[382] cputs::s#9 = phi( cputs/cputs::s#10, cputs::@2/cputs::s#0 )
[383] cputs::c#1 = *cputs::s#9
[384] cputs::s#0 = ++ cputs::s#9
[385] if(0!=cputs::c#1) goto cputs::@2
to:cputs::@return
cputs::@return: scope:[cputs] from cputs::@1
[391] return
[386] return
to:@return
cputs::@2: scope:[cputs] from cputs::@1
[392] cputc::c#0 = cputs::c#1
[393] call cputc
[387] cputc::c#0 = cputs::c#1
[388] call cputc
to:cputs::@1
byte kbhit()
kbhit: scope:[kbhit] from main::@14 main::@9
[394] kbhit::ch = 0
[389] kbhit::ch = 0
kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit
bne L3
@ -783,264 +778,264 @@ kbhit: scope:[kbhit] from main::@14 main::@9
continue1:
nop
}}
[396] kbhit::return#0 = kbhit::ch
[391] kbhit::return#0 = kbhit::ch
to:kbhit::@return
kbhit::@return: scope:[kbhit] from kbhit
[397] kbhit::return#1 = kbhit::return#0
[398] return
[392] kbhit::return#1 = kbhit::return#0
[393] return
to:@return
void vera_layer_set_text_color_mode(byte vera_layer_set_text_color_mode::layer , byte vera_layer_set_text_color_mode::color_mode)
vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1
[399] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER)
[400] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C
[401] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0
[394] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER)
[395] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C
[396] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0
to:vera_layer_set_text_color_mode::@return
vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode
[402] return
[397] return
to:@return
byte vera_layer_get_mapbase_bank(byte vera_layer_get_mapbase_bank::layer)
vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer
[403] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0]
[398] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0]
to:vera_layer_get_mapbase_bank::@return
vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank
[404] return
[399] return
to:@return
word vera_layer_get_mapbase_offset(byte vera_layer_get_mapbase_offset::layer)
vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3
[405] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1
[406] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0]
[400] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1
[401] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0]
to:vera_layer_get_mapbase_offset::@return
vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset
[407] return
[402] return
to:@return
byte vera_layer_get_rowshift(byte vera_layer_get_rowshift::layer)
vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1
[408] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0]
[403] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0]
to:vera_layer_get_rowshift::@return
vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift
[409] return
[404] return
to:@return
word vera_layer_get_rowskip(byte vera_layer_get_rowskip::layer)
vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5
[410] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1
[411] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0]
[405] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1
[406] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0]
to:vera_layer_get_rowskip::@return
vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip
[412] return
[407] return
to:@return
void vera_layer_set_config(byte vera_layer_set_config::layer , byte vera_layer_set_config::config)
vera_layer_set_config: scope:[vera_layer_set_config] from vera_layer_mode_tile::@20
[413] vera_layer_set_config::$0 = vera_layer_set_config::layer#0 << 1
[414] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0]
[415] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#0
[408] vera_layer_set_config::$0 = vera_layer_set_config::layer#0 << 1
[409] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0]
[410] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#0
to:vera_layer_set_config::@return
vera_layer_set_config::@return: scope:[vera_layer_set_config] from vera_layer_set_config
[416] return
[411] return
to:@return
void vera_layer_set_tilebase(byte vera_layer_set_tilebase::layer , byte vera_layer_set_tilebase::tilebase)
vera_layer_set_tilebase: scope:[vera_layer_set_tilebase] from vera_layer_mode_tile::@26
[417] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#0 << 1
[418] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0]
[419] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#0
[412] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#0 << 1
[413] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0]
[414] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#0
to:vera_layer_set_tilebase::@return
vera_layer_set_tilebase::@return: scope:[vera_layer_set_tilebase] from vera_layer_set_tilebase
[420] return
[415] return
to:@return
byte vera_layer_get_backcolor(byte vera_layer_get_backcolor::layer)
vera_layer_get_backcolor: scope:[vera_layer_get_backcolor] from clrscr
[421] vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0]
[416] vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0]
to:vera_layer_get_backcolor::@return
vera_layer_get_backcolor::@return: scope:[vera_layer_get_backcolor] from vera_layer_get_backcolor
[422] return
[417] return
to:@return
byte vera_layer_get_textcolor(byte vera_layer_get_textcolor::layer)
vera_layer_get_textcolor: scope:[vera_layer_get_textcolor] from clrscr::@7
[423] vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0]
[418] vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0]
to:vera_layer_get_textcolor::@return
vera_layer_get_textcolor::@return: scope:[vera_layer_get_textcolor] from vera_layer_get_textcolor
[424] return
[419] return
to:@return
void cputc(byte cputc::c)
cputc: scope:[cputc] from cputs::@2
[425] vera_layer_get_color::layer#0 = conio_screen_layer
[426] call vera_layer_get_color
[427] vera_layer_get_color::return#0 = vera_layer_get_color::return#3
[420] vera_layer_get_color::layer#0 = conio_screen_layer
[421] call vera_layer_get_color
[422] vera_layer_get_color::return#0 = vera_layer_get_color::return#3
to:cputc::@7
cputc::@7: scope:[cputc] from cputc
[428] cputc::color#0 = vera_layer_get_color::return#0
[429] cputc::$15 = conio_screen_layer << 1
[430] cputc::conio_addr#0 = (byte*)CONIO_SCREEN_TEXT#17 + conio_line_text[cputc::$15]
[431] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1
[432] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2
[433] if(cputc::c#0=='
[423] cputc::color#0 = vera_layer_get_color::return#0
[424] cputc::$15 = conio_screen_layer << 1
[425] cputc::conio_addr#0 = (byte*)CONIO_SCREEN_TEXT#17 + conio_line_text[cputc::$15]
[426] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1
[427] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2
[428] if(cputc::c#0=='
') goto cputc::@1
to:cputc::@2
cputc::@2: scope:[cputc] from cputc::@7
[434] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[435] cputc::$4 = < cputc::conio_addr#1
[436] *VERA_ADDRX_L = cputc::$4
[437] cputc::$5 = > cputc::conio_addr#1
[438] *VERA_ADDRX_M = cputc::$5
[439] cputc::$6 = CONIO_SCREEN_BANK#15 | VERA_INC_1
[440] *VERA_ADDRX_H = cputc::$6
[441] *VERA_DATA0 = cputc::c#0
[442] *VERA_DATA0 = cputc::color#0
[443] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer]
[444] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer]
[445] if(0!=cputc::scroll_enable#0) goto cputc::@5
[429] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[430] cputc::$4 = < cputc::conio_addr#1
[431] *VERA_ADDRX_L = cputc::$4
[432] cputc::$5 = > cputc::conio_addr#1
[433] *VERA_ADDRX_M = cputc::$5
[434] cputc::$6 = CONIO_SCREEN_BANK#15 | VERA_INC_1
[435] *VERA_ADDRX_H = cputc::$6
[436] *VERA_DATA0 = cputc::c#0
[437] *VERA_DATA0 = cputc::color#0
[438] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer]
[439] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer]
[440] if(0!=cputc::scroll_enable#0) goto cputc::@5
to:cputc::@3
cputc::@3: scope:[cputc] from cputc::@2
[446] cputc::$16 = (word)conio_cursor_x[conio_screen_layer]
[447] if(cputc::$16!=conio_width) goto cputc::@return
[441] cputc::$16 = (word)conio_cursor_x[conio_screen_layer]
[442] if(cputc::$16!=conio_width) goto cputc::@return
to:cputc::@4
cputc::@4: scope:[cputc] from cputc::@3
[448] phi()
[449] call cputln
[443] phi()
[444] call cputln
to:cputc::@return
cputc::@return: scope:[cputc] from cputc::@1 cputc::@3 cputc::@4 cputc::@5 cputc::@6
[450] return
[445] return
to:@return
cputc::@5: scope:[cputc] from cputc::@2
[451] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return
[446] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return
to:cputc::@6
cputc::@6: scope:[cputc] from cputc::@5
[452] phi()
[453] call cputln
[447] phi()
[448] call cputln
to:cputc::@return
cputc::@1: scope:[cputc] from cputc::@7
[454] phi()
[455] call cputln
[449] phi()
[450] call cputln
to:cputc::@return
byte vera_layer_get_color(byte vera_layer_get_color::layer)
vera_layer_get_color: scope:[vera_layer_get_color] from clearline cputc
[456] vera_layer_get_color::layer#2 = phi( clearline/vera_layer_get_color::layer#1, cputc/vera_layer_get_color::layer#0 )
[457] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1
[458] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3]
[459] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C
[460] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1
[451] vera_layer_get_color::layer#2 = phi( clearline/vera_layer_get_color::layer#1, cputc/vera_layer_get_color::layer#0 )
[452] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1
[453] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3]
[454] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C
[455] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1
to:vera_layer_get_color::@2
vera_layer_get_color::@2: scope:[vera_layer_get_color] from vera_layer_get_color
[461] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4
[462] vera_layer_get_color::return#2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2]
[456] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4
[457] vera_layer_get_color::return#2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2]
to:vera_layer_get_color::@return
vera_layer_get_color::@return: scope:[vera_layer_get_color] from vera_layer_get_color::@1 vera_layer_get_color::@2
[463] vera_layer_get_color::return#3 = phi( vera_layer_get_color::@1/vera_layer_get_color::return#1, vera_layer_get_color::@2/vera_layer_get_color::return#2 )
[464] return
[458] vera_layer_get_color::return#3 = phi( vera_layer_get_color::@1/vera_layer_get_color::return#1, vera_layer_get_color::@2/vera_layer_get_color::return#2 )
[459] return
to:@return
vera_layer_get_color::@1: scope:[vera_layer_get_color] from vera_layer_get_color
[465] vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#2]
[460] vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#2]
to:vera_layer_get_color::@return
void cputln()
cputln: scope:[cputln] from cputc::@1 cputc::@4 cputc::@6
[466] cputln::$2 = conio_screen_layer << 1
[467] cputln::temp#0 = conio_line_text[cputln::$2]
[468] cputln::temp#1 = cputln::temp#0 + conio_rowskip
[469] cputln::$3 = conio_screen_layer << 1
[470] conio_line_text[cputln::$3] = cputln::temp#1
[471] conio_cursor_x[conio_screen_layer] = 0
[472] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer]
[473] call cscroll
[461] cputln::$2 = conio_screen_layer << 1
[462] cputln::temp#0 = conio_line_text[cputln::$2]
[463] cputln::temp#1 = cputln::temp#0 + conio_rowskip
[464] cputln::$3 = conio_screen_layer << 1
[465] conio_line_text[cputln::$3] = cputln::temp#1
[466] conio_cursor_x[conio_screen_layer] = 0
[467] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer]
[468] call cscroll
to:cputln::@return
cputln::@return: scope:[cputln] from cputln
[474] return
[469] return
to:@return
void cscroll()
cscroll: scope:[cscroll] from cputln
[475] if(conio_cursor_y[conio_screen_layer]<conio_screen_height) goto cscroll::@return
[470] if(conio_cursor_y[conio_screen_layer]<conio_screen_height) goto cscroll::@return
to:cscroll::@1
cscroll::@1: scope:[cscroll] from cscroll
[476] if(0!=conio_scroll_enable[conio_screen_layer]) goto cscroll::@4
[471] if(0!=conio_scroll_enable[conio_screen_layer]) goto cscroll::@4
to:cscroll::@2
cscroll::@2: scope:[cscroll] from cscroll::@1
[477] if(conio_cursor_y[conio_screen_layer]<conio_height) goto cscroll::@return
[472] if(conio_cursor_y[conio_screen_layer]<conio_height) goto cscroll::@return
to:cscroll::@3
cscroll::@3: scope:[cscroll] from cscroll::@2
[478] phi()
[473] phi()
to:cscroll::@return
cscroll::@return: scope:[cscroll] from cscroll cscroll::@2 cscroll::@3 cscroll::@5
[479] return
[474] return
to:@return
cscroll::@4: scope:[cscroll] from cscroll::@1
[480] phi()
[481] call insertup
[475] phi()
[476] call insertup
to:cscroll::@5
cscroll::@5: scope:[cscroll] from cscroll::@4
[482] gotoxy::y#2 = conio_screen_height - 1
[483] call gotoxy
[477] gotoxy::y#2 = conio_screen_height - 1
[478] call gotoxy
to:cscroll::@return
void insertup()
insertup: scope:[insertup] from cscroll::@4
[484] insertup::cy#0 = conio_cursor_y[conio_screen_layer]
[485] insertup::width#0 = conio_screen_width << 1
[479] insertup::cy#0 = conio_cursor_y[conio_screen_layer]
[480] insertup::width#0 = conio_screen_width << 1
to:insertup::@1
insertup::@1: scope:[insertup] from insertup insertup::@4
[486] insertup::i#2 = phi( insertup/1, insertup::@4/insertup::i#1 )
[487] if(insertup::i#2<=insertup::cy#0) goto insertup::@2
[481] insertup::i#2 = phi( insertup/1, insertup::@4/insertup::i#1 )
[482] if(insertup::i#2<=insertup::cy#0) goto insertup::@2
to:insertup::@3
insertup::@3: scope:[insertup] from insertup::@1
[488] phi()
[489] call clearline
[483] phi()
[484] call clearline
to:insertup::@return
insertup::@return: scope:[insertup] from insertup::@3
[490] return
[485] return
to:@return
insertup::@2: scope:[insertup] from insertup::@1
[491] insertup::$3 = insertup::i#2 - 1
[492] insertup::line#0 = insertup::$3 << conio_rowshift
[493] insertup::start#0 = (byte*)CONIO_SCREEN_TEXT#17 + insertup::line#0
[494] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip
[495] memcpy_in_vram::dest#0 = (void*)insertup::start#0
[496] memcpy_in_vram::num#0 = insertup::width#0
[497] memcpy_in_vram::src#4 = (void*)memcpy_in_vram::src#0
[498] call memcpy_in_vram
[486] insertup::$3 = insertup::i#2 - 1
[487] insertup::line#0 = insertup::$3 << conio_rowshift
[488] insertup::start#0 = (byte*)CONIO_SCREEN_TEXT#17 + insertup::line#0
[489] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip
[490] memcpy_in_vram::dest#0 = (void*)insertup::start#0
[491] memcpy_in_vram::num#0 = insertup::width#0
[492] memcpy_in_vram::src#4 = (void*)memcpy_in_vram::src#0
[493] call memcpy_in_vram
to:insertup::@4
insertup::@4: scope:[insertup] from insertup::@2
[499] insertup::i#1 = ++ insertup::i#2
[494] insertup::i#1 = ++ insertup::i#2
to:insertup::@1
void clearline()
clearline: scope:[clearline] from insertup::@3
[500] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[501] clearline::$5 = conio_screen_layer << 1
[502] clearline::addr#0 = (byte*)CONIO_SCREEN_TEXT#17 + conio_line_text[clearline::$5]
[503] clearline::$1 = < clearline::addr#0
[504] *VERA_ADDRX_L = clearline::$1
[505] clearline::$2 = > clearline::addr#0
[506] *VERA_ADDRX_M = clearline::$2
[507] *VERA_ADDRX_H = VERA_INC_1
[508] vera_layer_get_color::layer#1 = conio_screen_layer
[509] call vera_layer_get_color
[510] vera_layer_get_color::return#4 = vera_layer_get_color::return#3
[495] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[496] clearline::$5 = conio_screen_layer << 1
[497] clearline::addr#0 = (byte*)CONIO_SCREEN_TEXT#17 + conio_line_text[clearline::$5]
[498] clearline::$1 = < clearline::addr#0
[499] *VERA_ADDRX_L = clearline::$1
[500] clearline::$2 = > clearline::addr#0
[501] *VERA_ADDRX_M = clearline::$2
[502] *VERA_ADDRX_H = VERA_INC_1
[503] vera_layer_get_color::layer#1 = conio_screen_layer
[504] call vera_layer_get_color
[505] vera_layer_get_color::return#4 = vera_layer_get_color::return#3
to:clearline::@4
clearline::@4: scope:[clearline] from clearline
[511] clearline::color#0 = vera_layer_get_color::return#4
[506] clearline::color#0 = vera_layer_get_color::return#4
to:clearline::@1
clearline::@1: scope:[clearline] from clearline::@2 clearline::@4
[512] clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/0 )
[513] if(clearline::c#2<conio_screen_width) goto clearline::@2
[507] clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/0 )
[508] if(clearline::c#2<conio_screen_width) goto clearline::@2
to:clearline::@3
clearline::@3: scope:[clearline] from clearline::@1
[514] conio_cursor_x[conio_screen_layer] = 0
[509] conio_cursor_x[conio_screen_layer] = 0
to:clearline::@return
clearline::@return: scope:[clearline] from clearline::@3
[515] return
[510] return
to:@return
clearline::@2: scope:[clearline] from clearline::@1
[516] *VERA_DATA0 = ' '
[517] *VERA_DATA0 = clearline::color#0
[518] clearline::c#1 = ++ clearline::c#2
[511] *VERA_DATA0 = ' '
[512] *VERA_DATA0 = clearline::color#0
[513] clearline::c#1 = ++ clearline::c#2
to:clearline::@1

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,9 @@
constant const byte BLACK = 0
constant const byte BLUE = 6
byte CONIO_SCREEN_BANK
byte CONIO_SCREEN_BANK#15 CONIO_SCREEN_BANK zp[1]:39 66.48502994011976
byte CONIO_SCREEN_BANK#15 CONIO_SCREEN_BANK zp[1]:41 66.48502994011976
byte* CONIO_SCREEN_TEXT
word CONIO_SCREEN_TEXT#17 CONIO_SCREEN_TEXT zp[2]:40 0.4675925925925926
word CONIO_SCREEN_TEXT#17 CONIO_SCREEN_TEXT zp[2]:42 0.4675925925925926
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
@ -53,15 +53,15 @@ byte~ clearline::$1 reg byte a 2.00000002E8
byte~ clearline::$2 reg byte a 2.00000002E8
byte~ clearline::$5 reg byte a 2.00000002E8
byte* clearline::addr
byte* clearline::addr#0 addr zp[2]:77 1.00000001E8
byte* clearline::addr#0 addr zp[2]:71 1.00000001E8
word clearline::c
word clearline::c#1 c zp[2]:73 2.0000000002E10
word clearline::c#2 c zp[2]:73 7.50000000075E9
word clearline::c#1 c zp[2]:29 2.0000000002E10
word clearline::c#2 c zp[2]:29 7.50000000075E9
byte clearline::color
byte clearline::color#0 reg byte x 1.6833333336666665E9
void clrscr()
byte~ clrscr::$0 reg byte a 202.0
byte~ clrscr::$1 zp[1]:58 40.4
byte~ clrscr::$1 zp[1]:54 40.4
byte~ clrscr::$2 reg byte a 202.0
byte~ clrscr::$5 reg byte a 2002.0
byte~ clrscr::$6 reg byte a 2002.0
@ -72,25 +72,25 @@ byte clrscr::c#1 reg byte y 20002.0
byte clrscr::c#2 reg byte y 7500.75
byte* clrscr::ch
byte clrscr::color
byte clrscr::color#0 color zp[1]:58 594.2352941176471
byte clrscr::color#0 color zp[1]:54 594.2352941176471
byte clrscr::l
byte clrscr::l#1 reg byte x 2002.0
byte clrscr::l#2 reg byte x 200.2
byte* clrscr::line_text
byte* clrscr::line_text#0 line_text zp[2]:69 18.363636363636363
byte* clrscr::line_text#1 line_text zp[2]:69 1001.0
byte* clrscr::line_text#2 line_text zp[2]:69 293.2142857142857
byte* clrscr::line_text#0 line_text zp[2]:63 18.363636363636363
byte* clrscr::line_text#1 line_text zp[2]:63 1001.0
byte* clrscr::line_text#2 line_text zp[2]:63 293.2142857142857
constant byte* conio_cursor_x[2] = { 0, 0 }
constant byte* conio_cursor_y[2] = { 0, 0 }
word conio_height loadstore zp[2]:34 6629.834437086093
word conio_height loadstore zp[2]:36 6629.834437086093
constant word* conio_line_text[2] = { 0, 0 }
byte conio_rowshift loadstore zp[1]:36 5941177.088235294
word conio_rowskip loadstore zp[2]:37 5650288.734463277
volatile byte conio_screen_height loadstore zp[1]:30 76433.29299363057
byte conio_screen_layer loadstore zp[1]:31 1374285.1199999999
volatile byte conio_screen_width loadstore zp[1]:29 5.191715029015544E7
byte conio_rowshift loadstore zp[1]:38 5941177.088235294
word conio_rowskip loadstore zp[2]:39 5650288.734463277
volatile byte conio_screen_height loadstore zp[1]:32 76433.29299363057
byte conio_screen_layer loadstore zp[1]:33 1374285.1199999999
volatile byte conio_screen_width loadstore zp[1]:31 5.191715029015544E7
constant byte* conio_scroll_enable[2] = { 1, 1 }
word conio_width loadstore zp[2]:32 131.40522875816993
word conio_width loadstore zp[2]:34 131.40522875816993
void conio_x16_init()
constant byte* const conio_x16_init::BASIC_CURSOR_LINE = (byte*) 214
byte conio_x16_init::line
@ -99,39 +99,39 @@ byte conio_x16_init::line#1 line zp[1]:2 22.0
byte conio_x16_init::line#3 line zp[1]:2 33.0
void cputc(byte cputc::c)
byte~ cputc::$15 reg byte a 20002.0
word~ cputc::$16 zp[2]:71 20002.0
word~ cputc::$16 zp[2]:65 20002.0
byte~ cputc::$2 reg byte a 20002.0
byte~ cputc::$4 reg byte a 20002.0
byte~ cputc::$5 reg byte a 20002.0
byte~ cputc::$6 reg byte a 20002.0
byte cputc::c
byte cputc::c#0 c zp[1]:63 1235.4705882352941
byte cputc::c#0 c zp[1]:59 1235.4705882352941
byte cputc::color
byte cputc::color#0 reg byte x 1428.7142857142858
byte* cputc::conio_addr
byte* cputc::conio_addr#0 conio_addr zp[2]:69 10001.0
byte* cputc::conio_addr#1 conio_addr zp[2]:69 6000.6
byte* cputc::conio_addr#0 conio_addr zp[2]:63 10001.0
byte* cputc::conio_addr#1 conio_addr zp[2]:63 6000.6
byte cputc::scroll_enable
byte cputc::scroll_enable#0 reg byte a 20002.0
void cputln()
byte~ cputln::$2 reg byte a 200002.0
byte~ cputln::$3 reg byte a 200002.0
word cputln::temp
word cputln::temp#0 temp zp[2]:73 200002.0
word cputln::temp#1 temp zp[2]:73 100001.0
word cputln::temp#0 temp zp[2]:67 200002.0
word cputln::temp#1 temp zp[2]:67 100001.0
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:59 500.5
const byte* cputs::s#10 s zp[2]:59 101.0
const byte* cputs::s#9 s zp[2]:59 1552.0
const byte* cputs::s#0 s zp[2]:55 500.5
const byte* cputs::s#10 s zp[2]:55 101.0
const byte* cputs::s#9 s zp[2]:55 1552.0
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte~ gotoxy::$5 reg byte a 2.0000002E7
word~ gotoxy::$6 zp[2]:44 2.0000002E7
word~ gotoxy::$6 zp[2]:46 2.0000002E7
word gotoxy::line_offset
word gotoxy::line_offset#0 line_offset zp[2]:44 1.0000001E7
word gotoxy::line_offset#0 line_offset zp[2]:46 1.0000001E7
byte gotoxy::x
byte gotoxy::y
byte gotoxy::y#1 reg byte x 22.0
@ -141,20 +141,20 @@ byte gotoxy::y#5 reg byte x 4000000.4
void insertup()
byte~ insertup::$3 reg byte a 2.000000002E9
byte insertup::cy
byte insertup::cy#0 cy zp[1]:75 7.769230784615384E7
byte insertup::cy#0 cy zp[1]:69 7.769230784615384E7
byte insertup::i
byte insertup::i#1 reg byte x 2.000000002E9
byte insertup::i#2 reg byte x 4.000000004E8
word insertup::line
word insertup::line#0 line zp[2]:71 2.000000002E9
word insertup::line#0 line zp[2]:65 2.000000002E9
byte* insertup::start
byte* insertup::start#0 start zp[2]:71 1.000000001E9
byte* insertup::start#0 start zp[2]:65 1.000000001E9
byte insertup::width
byte insertup::width#0 width zp[1]:76 8.416666683333334E7
byte insertup::width#0 width zp[1]:70 8.416666683333334E7
byte kbhit()
constant byte* const kbhit::GETIN = (byte*) 65508
constant byte* const kbhit::IN_DEV = (byte*) 650
volatile byte kbhit::ch loadstore zp[1]:64 1001.0
volatile byte kbhit::ch loadstore zp[1]:60 1001.0
constant byte* const kbhit::chptr = &kbhit::ch
byte kbhit::return
byte kbhit::return#0 reg byte a 2002.0
@ -237,21 +237,21 @@ byte~ memcpy_in_vram::$3 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$4 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$5 reg byte a 2.0000000002E10
void* memcpy_in_vram::dest
void* memcpy_in_vram::dest#0 dest zp[2]:71 6.666666673333334E8
void* memcpy_in_vram::dest#3 dest zp[2]:71 1.9090909093636363E9
void* memcpy_in_vram::dest#0 dest zp[2]:65 6.666666673333334E8
void* memcpy_in_vram::dest#3 dest zp[2]:65 1.9090909093636363E9
byte memcpy_in_vram::dest_bank
byte memcpy_in_vram::dest_bank#3 dest_bank zp[1]:24 7.692307693076923E8
byte memcpy_in_vram::dest_increment
word memcpy_in_vram::i
word memcpy_in_vram::i#1 i zp[2]:73 2.00000000002E11
word memcpy_in_vram::i#2 i zp[2]:73 1.00000000001E11
word memcpy_in_vram::i#1 i zp[2]:29 2.00000000002E11
word memcpy_in_vram::i#2 i zp[2]:29 1.00000000001E11
word memcpy_in_vram::num
word memcpy_in_vram::num#0 num zp[2]:77 1.000000001E9
word memcpy_in_vram::num#4 num zp[2]:77 5.315789473789474E9
word memcpy_in_vram::num#0 num zp[2]:67 1.000000001E9
word memcpy_in_vram::num#4 num zp[2]:67 5.315789473789474E9
void* memcpy_in_vram::src
byte* memcpy_in_vram::src#0 src zp[2]:69 3.333333336666667E8
void* memcpy_in_vram::src#3 src zp[2]:69 5.25000000075E9
void* memcpy_in_vram::src#4 src zp[2]:69 2.000000002E9
byte* memcpy_in_vram::src#0 src zp[2]:63 3.333333336666667E8
void* memcpy_in_vram::src#3 src zp[2]:63 5.25000000075E9
void* memcpy_in_vram::src#4 src zp[2]:63 2.000000002E9
byte memcpy_in_vram::src_bank
byte memcpy_in_vram::src_bank#3 reg byte y 1.6666666668333333E9
byte memcpy_in_vram::src_increment
@ -262,41 +262,41 @@ byte* memcpy_to_vram::end
constant byte* memcpy_to_vram::end#0 end = (byte*)(void*)main::tiles+$100
word memcpy_to_vram::num
byte* memcpy_to_vram::s
byte* memcpy_to_vram::s#1 s zp[2]:77 200002.0
byte* memcpy_to_vram::s#2 s zp[2]:77 133334.66666666666
byte* memcpy_to_vram::s#1 s zp[2]:67 200002.0
byte* memcpy_to_vram::s#2 s zp[2]:67 133334.66666666666
void* memcpy_to_vram::src
byte memcpy_to_vram::vbank
void* memcpy_to_vram::vdest
void* memcpy_to_vram::vdest#1 vdest zp[2]:71 202.0
void* memcpy_to_vram::vdest#2 vdest zp[2]:71 525.75
void* memcpy_to_vram::vdest#1 vdest zp[2]:65 202.0
void* memcpy_to_vram::vdest#2 vdest zp[2]:65 525.75
void screenlayer(byte screenlayer::layer)
word~ screenlayer::$2 zp[2]:52 202.0
word~ screenlayer::$2 zp[2]:61 202.0
byte~ screenlayer::$3 reg byte a 202.0
word~ screenlayer::$4 zp[2]:44 202.0
word~ screenlayer::$5 zp[2]:49 202.0
word~ screenlayer::$4 zp[2]:46 202.0
word~ screenlayer::$5 zp[2]:52 202.0
byte screenlayer::layer
byte~ screenlayer::vera_layer_get_height1_$0 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$1 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$2 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$3 reg byte a 202.0
byte* screenlayer::vera_layer_get_height1_config
byte* screenlayer::vera_layer_get_height1_config#0 vera_layer_get_height1_config zp[2]:46 202.0
byte* screenlayer::vera_layer_get_height1_config#0 vera_layer_get_height1_config zp[2]:48 202.0
byte screenlayer::vera_layer_get_height1_layer
byte screenlayer::vera_layer_get_height1_layer#0 reg byte a 202.0
word screenlayer::vera_layer_get_height1_return
word screenlayer::vera_layer_get_height1_return#0 vera_layer_get_height1_return zp[2]:49 202.0
word screenlayer::vera_layer_get_height1_return#1 vera_layer_get_height1_return zp[2]:49 202.0
word screenlayer::vera_layer_get_height1_return#0 vera_layer_get_height1_return zp[2]:52 202.0
word screenlayer::vera_layer_get_height1_return#1 vera_layer_get_height1_return zp[2]:52 202.0
byte~ screenlayer::vera_layer_get_width1_$0 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$1 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$2 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$3 reg byte a 202.0
byte* screenlayer::vera_layer_get_width1_config
byte* screenlayer::vera_layer_get_width1_config#0 vera_layer_get_width1_config zp[2]:42 202.0
byte* screenlayer::vera_layer_get_width1_config#0 vera_layer_get_width1_config zp[2]:44 202.0
byte screenlayer::vera_layer_get_width1_layer
byte screenlayer::vera_layer_get_width1_layer#0 reg byte a 202.0
word screenlayer::vera_layer_get_width1_return
word screenlayer::vera_layer_get_width1_return#0 vera_layer_get_width1_return zp[2]:52 202.0
word screenlayer::vera_layer_get_width1_return#1 vera_layer_get_width1_return zp[2]:52 202.0
word screenlayer::vera_layer_get_width1_return#0 vera_layer_get_width1_return zp[2]:61 202.0
word screenlayer::vera_layer_get_width1_return#1 vera_layer_get_width1_return zp[2]:61 202.0
void screensize(byte* screensize::x , byte* screensize::y)
byte~ screensize::$1 reg byte a 202.0
byte~ screensize::$3 reg byte a 202.0
@ -322,7 +322,7 @@ byte~ vera_layer_get_color::$0 reg byte a 2.000000002E9
byte~ vera_layer_get_color::$1 reg byte a 2.000000002E9
byte~ vera_layer_get_color::$3 reg byte a 2.000000002E9
byte* vera_layer_get_color::addr
byte* vera_layer_get_color::addr#0 addr zp[2]:77 2.000000002E9
byte* vera_layer_get_color::addr#0 addr zp[2]:67 2.000000002E9
byte vera_layer_get_color::layer
byte vera_layer_get_color::layer#0 reg byte x 20002.0
byte vera_layer_get_color::layer#1 reg byte x 2.00000002E8
@ -344,8 +344,8 @@ byte~ vera_layer_get_mapbase_offset::$0 reg byte a 2002.0
byte vera_layer_get_mapbase_offset::layer
byte vera_layer_get_mapbase_offset::layer#0 reg byte a 1102.0
word vera_layer_get_mapbase_offset::return
word vera_layer_get_mapbase_offset::return#0 return zp[2]:44 367.33333333333337
word vera_layer_get_mapbase_offset::return#2 return zp[2]:44 202.0
word vera_layer_get_mapbase_offset::return#0 return zp[2]:46 367.33333333333337
word vera_layer_get_mapbase_offset::return#2 return zp[2]:46 202.0
byte vera_layer_get_rowshift(byte vera_layer_get_rowshift::layer)
byte vera_layer_get_rowshift::layer
byte vera_layer_get_rowshift::layer#0 reg byte x 1102.0
@ -357,8 +357,8 @@ byte~ vera_layer_get_rowskip::$0 reg byte a 2002.0
byte vera_layer_get_rowskip::layer
byte vera_layer_get_rowskip::layer#0 reg byte a 1102.0
word vera_layer_get_rowskip::return
word vera_layer_get_rowskip::return#0 return zp[2]:44 367.33333333333337
word vera_layer_get_rowskip::return#2 return zp[2]:44 202.0
word vera_layer_get_rowskip::return#0 return zp[2]:46 367.33333333333337
word vera_layer_get_rowskip::return#2 return zp[2]:46 202.0
byte vera_layer_get_textcolor(byte vera_layer_get_textcolor::layer)
byte vera_layer_get_textcolor::layer
byte vera_layer_get_textcolor::layer#0 reg byte x 1102.0
@ -384,18 +384,16 @@ constant byte vera_layer_mode_text::tileheight#0 tileheight = 8
byte vera_layer_mode_text::tilewidth
constant byte vera_layer_mode_text::tilewidth#0 tilewidth = 8
void vera_layer_mode_tile(byte vera_layer_mode_tile::layer , dword vera_layer_mode_tile::mapbase_address , dword vera_layer_mode_tile::tilebase_address , word vera_layer_mode_tile::mapwidth , word vera_layer_mode_tile::mapheight , byte vera_layer_mode_tile::tilewidth , byte vera_layer_mode_tile::tileheight , byte vera_layer_mode_tile::color_depth)
word~ vera_layer_mode_tile::$1 zp[2]:46 1001.0
word~ vera_layer_mode_tile::$10 zp[2]:56 2002.0
word~ vera_layer_mode_tile::$1 zp[2]:48 1001.0
byte~ vera_layer_mode_tile::$11 reg byte a 2002.0
byte~ vera_layer_mode_tile::$12 reg byte a 2002.0
byte~ vera_layer_mode_tile::$13 reg byte a 2002.0
byte~ vera_layer_mode_tile::$14 reg byte a 2002.0
byte~ vera_layer_mode_tile::$15 reg byte a 2002.0
byte~ vera_layer_mode_tile::$16 reg byte a 2002.0
byte~ vera_layer_mode_tile::$19 zp[1]:48 231.0
word~ vera_layer_mode_tile::$2 zp[2]:49 1001.0
byte~ vera_layer_mode_tile::$20 zp[1]:51 250.25
word~ vera_layer_mode_tile::$4 zp[2]:65 2002.0
word~ vera_layer_mode_tile::$7 zp[2]:52 2002.0
word~ vera_layer_mode_tile::$8 zp[2]:54 1001.0
byte~ vera_layer_mode_tile::$17 zp[1]:50 250.25
byte~ vera_layer_mode_tile::$18 zp[1]:51 273.0
byte~ vera_layer_mode_tile::$2 reg byte a 2002.0
word~ vera_layer_mode_tile::$6 zp[2]:52 2002.0
byte~ vera_layer_mode_tile::$7 reg byte a 2002.0
byte vera_layer_mode_tile::color_depth
byte vera_layer_mode_tile::color_depth#5 reg byte x 1001.0
byte vera_layer_mode_tile::config
@ -409,16 +407,16 @@ byte vera_layer_mode_tile::config#6 reg byte x 500.5
byte vera_layer_mode_tile::config#7 reg byte x 500.5
byte vera_layer_mode_tile::config#8 reg byte x 500.5
byte vera_layer_mode_tile::layer
byte vera_layer_mode_tile::layer#10 layer zp[1]:13 220.80882352941177
byte vera_layer_mode_tile::layer#10 layer zp[1]:13 227.49999999999994
byte vera_layer_mode_tile::mapbase
byte vera_layer_mode_tile::mapbase#0 reg byte x 1001.0
dword vera_layer_mode_tile::mapbase_address
dword vera_layer_mode_tile::mapbase_address#0 mapbase_address zp[4]:14 2002.0
dword vera_layer_mode_tile::mapbase_address#10 mapbase_address zp[4]:14 88.97777777777777
word vera_layer_mode_tile::mapheight
word vera_layer_mode_tile::mapheight#10 mapheight zp[2]:42 133.46666666666667
word vera_layer_mode_tile::mapheight#10 mapheight zp[2]:44 133.46666666666667
word vera_layer_mode_tile::mapwidth
word vera_layer_mode_tile::mapwidth#10 mapwidth zp[2]:44 400.4
word vera_layer_mode_tile::mapwidth#10 mapwidth zp[2]:46 400.4
byte vera_layer_mode_tile::tilebase
byte vera_layer_mode_tile::tilebase#0 reg byte a 2002.0
byte vera_layer_mode_tile::tilebase#1 reg byte x 1334.6666666666667
@ -428,11 +426,11 @@ byte vera_layer_mode_tile::tilebase#3 reg byte x 2002.0
byte vera_layer_mode_tile::tilebase#5 reg byte x 2002.0
dword vera_layer_mode_tile::tilebase_address
dword vera_layer_mode_tile::tilebase_address#0 tilebase_address zp[4]:18 2002.0
dword vera_layer_mode_tile::tilebase_address#10 tilebase_address zp[4]:18 71.5
dword vera_layer_mode_tile::tilebase_address#10 tilebase_address zp[4]:18 72.8
byte vera_layer_mode_tile::tileheight
byte vera_layer_mode_tile::tileheight#10 tileheight zp[1]:23 30.8
byte vera_layer_mode_tile::tileheight#10 tileheight zp[1]:23 31.77777777777778
byte vera_layer_mode_tile::tilewidth
byte vera_layer_mode_tile::tilewidth#10 tilewidth zp[1]:22 32.81967213114754
byte vera_layer_mode_tile::tilewidth#10 tilewidth zp[1]:22 33.932203389830505
constant byte* vera_layer_rowshift[2] = { 0, 0 }
constant word* vera_layer_rowskip[2] = { 0, 0 }
byte vera_layer_set_backcolor(byte vera_layer_set_backcolor::layer , byte vera_layer_set_backcolor::color)
@ -447,7 +445,7 @@ byte vera_layer_set_backcolor::return
void vera_layer_set_config(byte vera_layer_set_config::layer , byte vera_layer_set_config::config)
byte~ vera_layer_set_config::$0 reg byte a 20002.0
byte* vera_layer_set_config::addr
byte* vera_layer_set_config::addr#0 addr zp[2]:67 20002.0
byte* vera_layer_set_config::addr#0 addr zp[2]:61 20002.0
byte vera_layer_set_config::config
byte vera_layer_set_config::config#0 reg byte x 3667.333333333333
byte vera_layer_set_config::layer
@ -455,7 +453,7 @@ byte vera_layer_set_config::layer#0 reg byte a 5501.0
void vera_layer_set_mapbase(byte vera_layer_set_mapbase::layer , byte vera_layer_set_mapbase::mapbase)
byte~ vera_layer_set_mapbase::$0 reg byte a 20002.0
byte* vera_layer_set_mapbase::addr
byte* vera_layer_set_mapbase::addr#0 addr zp[2]:52 20002.0
byte* vera_layer_set_mapbase::addr#0 addr zp[2]:61 20002.0
byte vera_layer_set_mapbase::layer
byte vera_layer_set_mapbase::layer#0 reg byte a 1001.0
byte vera_layer_set_mapbase::layer#3 reg byte a 11002.0
@ -464,7 +462,7 @@ byte vera_layer_set_mapbase::mapbase#0 reg byte x 2002.0
byte vera_layer_set_mapbase::mapbase#3 reg byte x 3667.333333333333
void vera_layer_set_text_color_mode(byte vera_layer_set_text_color_mode::layer , byte vera_layer_set_text_color_mode::color_mode)
byte* vera_layer_set_text_color_mode::addr
byte* vera_layer_set_text_color_mode::addr#0 addr zp[2]:65 2502.5
byte* vera_layer_set_text_color_mode::addr#0 addr zp[2]:61 2502.5
byte vera_layer_set_text_color_mode::color_mode
byte vera_layer_set_text_color_mode::layer
byte vera_layer_set_textcolor(byte vera_layer_set_textcolor::layer , byte vera_layer_set_textcolor::color)
@ -478,7 +476,7 @@ byte vera_layer_set_textcolor::return
void vera_layer_set_tilebase(byte vera_layer_set_tilebase::layer , byte vera_layer_set_tilebase::tilebase)
byte~ vera_layer_set_tilebase::$0 reg byte a 20002.0
byte* vera_layer_set_tilebase::addr
byte* vera_layer_set_tilebase::addr#0 addr zp[2]:67 20002.0
byte* vera_layer_set_tilebase::addr#0 addr zp[2]:61 20002.0
byte vera_layer_set_tilebase::layer
byte vera_layer_set_tilebase::layer#0 reg byte a 5501.0
byte vera_layer_set_tilebase::tilebase
@ -490,54 +488,51 @@ constant dword* vera_mapbase_address[2] = { 0, 0 }
constant byte* vera_mapbase_bank[2] = { 0, 0 }
constant word* vera_mapbase_offset[2] = { 0, 0 }
void vera_tile_area(byte vera_tile_area::layer , word vera_tile_area::tileindex , byte vera_tile_area::x , byte vera_tile_area::y , byte vera_tile_area::w , byte vera_tile_area::h , byte vera_tile_area::hflip , byte vera_tile_area::vflip , byte vera_tile_area::offset)
word~ vera_tile_area::$10 zp[2]:69 20002.0
word~ vera_tile_area::$4 zp[2]:69 20002.0
word~ vera_tile_area::$10 zp[2]:63 20002.0
word~ vera_tile_area::$4 zp[2]:63 20002.0
byte~ vera_tile_area::$5 reg byte a 20002.0
byte vera_tile_area::c
byte vera_tile_area::c#1 reg byte y 2.00000002E8
byte vera_tile_area::c#2 reg byte y 7.500000075E7
byte vera_tile_area::h
byte vera_tile_area::h#6 h zp[1]:24 285714.3142857143
byte vera_tile_area::h#6 h zp[1]:24 312500.03125
byte vera_tile_area::hflip
byte vera_tile_area::hflip#0 hflip zp[1]:76 5000.5
byte vera_tile_area::hflip#0 hflip zp[1]:70 5000.5
byte vera_tile_area::index_h
byte vera_tile_area::index_h#0 reg byte a 20002.0
byte vera_tile_area::index_h#1 reg byte a 20002.0
byte vera_tile_area::index_h#2 index_h zp[1]:61 3846538.5384615385
byte vera_tile_area::index_h#2 index_h zp[1]:57 4348260.956521738
byte vera_tile_area::index_l
byte vera_tile_area::index_l#0 index_l zp[1]:62 3448620.7586206896
byte vera_tile_area::index_l#0 index_l zp[1]:58 3846538.5384615385
byte vera_tile_area::layer
dword vera_tile_area::mapbase
dword vera_tile_area::mapbase#0 mapbase zp[4]:25 1818.3636363636363
dword vera_tile_area::mapbase#1 mapbase zp[4]:25 10001.0
dword vera_tile_area::mapbase#10 mapbase zp[4]:25 2778333.6666666665
dword vera_tile_area::mapbase#10 mapbase zp[4]:25 3334000.4
dword vera_tile_area::mapbase#2 mapbase zp[4]:25 20002.0
dword vera_tile_area::mapbase#3 mapbase zp[4]:25 1.0000001E7
byte vera_tile_area::offset
byte vera_tile_area::r
byte vera_tile_area::r#1 r zp[1]:63 2.0000002E7
byte vera_tile_area::r#2 r zp[1]:63 1578947.5263157894
byte vera_tile_area::r#1 r zp[1]:59 2.0000002E7
byte vera_tile_area::r#2 r zp[1]:59 1875000.1875
word vera_tile_area::rowskip
word vera_tile_area::rowskip#0 rowskip zp[2]:59 312812.5625
word vera_tile_area::rowskip#0 rowskip zp[2]:55 345172.4827586207
byte vera_tile_area::shift
byte vera_tile_area::shift#0 shift zp[1]:75 3333.6666666666665
byte vera_tile_area::shift#0 shift zp[1]:69 3333.6666666666665
word vera_tile_area::tileindex
word vera_tile_area::tileindex#1 tileindex zp[2]:8 667.3333333333334
word vera_tile_area::tileindex#3 tileindex zp[2]:8 667.3333333333334
word vera_tile_area::tileindex#5 tileindex zp[2]:8 3143.4285714285716
word~ vera_tile_area::vera_vram_address01_$0 zp[2]:71 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$0 reg byte a 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$1 reg byte a 2.0000002E7
word~ vera_tile_area::vera_vram_address01_$2 zp[2]:77 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$2 reg byte a 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$3 reg byte a 2.0000002E7
word~ vera_tile_area::vera_vram_address01_$4 zp[2]:73 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$5 reg byte a 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$6 reg byte a 2.0000002E7
dword vera_tile_area::vera_vram_address01_bankaddr
byte vera_tile_area::vera_vram_address01_incr
byte vera_tile_area::vflip
byte vera_tile_area::vflip#0 vflip zp[1]:61 5000.5
byte vera_tile_area::vflip#0 vflip zp[1]:57 5000.5
byte vera_tile_area::w
byte vera_tile_area::w#11 w zp[1]:58 2857142.8857142855
byte vera_tile_area::w#11 w zp[1]:54 3125000.03125
byte vera_tile_area::x
byte vera_tile_area::x#1 x zp[1]:12 1001.0
byte vera_tile_area::x#3 x zp[1]:12 1001.0
@ -585,13 +580,14 @@ reg byte y [ vera_tile_area::c#2 vera_tile_area::c#1 ]
reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ]
reg byte a [ vera_layer_get_color::return#3 vera_layer_get_color::return#1 vera_layer_get_color::return#2 ]
reg byte x [ insertup::i#2 insertup::i#1 ]
zp[1]:29 [ conio_screen_width ]
zp[1]:30 [ conio_screen_height ]
zp[1]:31 [ conio_screen_layer ]
zp[2]:32 [ conio_width ]
zp[2]:34 [ conio_height ]
zp[1]:36 [ conio_rowshift ]
zp[2]:37 [ conio_rowskip ]
zp[2]:29 [ clearline::c#2 clearline::c#1 memcpy_in_vram::i#2 memcpy_in_vram::i#1 ]
zp[1]:31 [ conio_screen_width ]
zp[1]:32 [ conio_screen_height ]
zp[1]:33 [ conio_screen_layer ]
zp[2]:34 [ conio_width ]
zp[2]:36 [ conio_height ]
zp[1]:38 [ conio_rowshift ]
zp[2]:39 [ conio_rowskip ]
reg byte a [ kbhit::return#2 ]
reg byte a [ main::$35 ]
reg byte a [ kbhit::return#3 ]
@ -603,12 +599,12 @@ reg byte a [ screensize::vscale#0 ]
reg byte a [ screensize::$3 ]
reg byte x [ vera_layer_get_mapbase_bank::layer#0 ]
reg byte a [ vera_layer_get_mapbase_bank::return#2 ]
zp[1]:39 [ CONIO_SCREEN_BANK#15 ]
zp[1]:41 [ CONIO_SCREEN_BANK#15 ]
reg byte a [ vera_layer_get_mapbase_offset::layer#0 ]
zp[2]:40 [ CONIO_SCREEN_TEXT#17 ]
zp[2]:42 [ CONIO_SCREEN_TEXT#17 ]
reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ]
reg byte a [ screenlayer::vera_layer_get_width1_$2 ]
zp[2]:42 [ screenlayer::vera_layer_get_width1_config#0 vera_layer_mode_tile::mapheight#10 ]
zp[2]:44 [ screenlayer::vera_layer_get_width1_config#0 vera_layer_mode_tile::mapheight#10 ]
reg byte a [ screenlayer::vera_layer_get_width1_$0 ]
reg byte a [ screenlayer::vera_layer_get_width1_$1 ]
reg byte a [ screenlayer::vera_layer_get_width1_$3 ]
@ -622,7 +618,7 @@ reg byte a [ screenlayer::vera_layer_get_height1_$0 ]
reg byte a [ screenlayer::vera_layer_get_height1_$1 ]
reg byte a [ screenlayer::vera_layer_get_height1_$3 ]
reg byte a [ vera_layer_set_mapbase::$0 ]
zp[2]:44 [ gotoxy::$6 gotoxy::line_offset#0 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 vera_layer_mode_tile::mapwidth#10 ]
zp[2]:46 [ gotoxy::$6 gotoxy::line_offset#0 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 vera_layer_mode_tile::mapwidth#10 ]
reg byte a [ gotoxy::$5 ]
reg byte a [ memcpy_in_vram::$0 ]
reg byte a [ memcpy_in_vram::$1 ]
@ -630,27 +626,26 @@ reg byte a [ memcpy_in_vram::$2 ]
reg byte a [ memcpy_in_vram::$3 ]
reg byte a [ memcpy_in_vram::$4 ]
reg byte a [ memcpy_in_vram::$5 ]
reg byte a [ vera_layer_mode_tile::$16 ]
reg byte a [ vera_layer_mode_tile::$14 ]
reg byte a [ vera_layer_set_config::layer#0 ]
reg byte x [ vera_layer_set_config::config#0 ]
zp[2]:46 [ vera_layer_mode_tile::$1 screenlayer::vera_layer_get_height1_config#0 ]
zp[1]:48 [ vera_layer_mode_tile::$19 ]
zp[2]:49 [ vera_layer_mode_tile::$2 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ]
zp[1]:51 [ vera_layer_mode_tile::$20 ]
zp[2]:48 [ vera_layer_mode_tile::$1 screenlayer::vera_layer_get_height1_config#0 ]
zp[1]:50 [ vera_layer_mode_tile::$17 ]
reg byte a [ vera_layer_mode_tile::$2 ]
zp[1]:51 [ vera_layer_mode_tile::$18 ]
reg byte x [ vera_layer_mode_tile::mapbase#0 ]
zp[2]:52 [ vera_layer_mode_tile::$7 vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 ]
zp[2]:54 [ vera_layer_mode_tile::$8 ]
zp[2]:56 [ vera_layer_mode_tile::$10 ]
zp[2]:52 [ vera_layer_mode_tile::$6 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ]
reg byte a [ vera_layer_mode_tile::$7 ]
reg byte a [ vera_layer_mode_tile::tilebase#0 ]
reg byte a [ vera_layer_set_tilebase::layer#0 ]
reg byte x [ vera_layer_set_tilebase::tilebase#0 ]
reg byte a [ vera_layer_mode_tile::$15 ]
reg byte a [ vera_layer_mode_tile::$14 ]
reg byte a [ vera_layer_mode_tile::$13 ]
reg byte a [ vera_layer_mode_tile::$12 ]
reg byte a [ vera_layer_mode_tile::$11 ]
reg byte x [ vera_layer_get_backcolor::layer#0 ]
reg byte a [ vera_layer_get_backcolor::return#0 ]
reg byte a [ clrscr::$0 ]
zp[1]:58 [ clrscr::$1 clrscr::color#0 vera_tile_area::w#11 ]
zp[1]:54 [ clrscr::$1 clrscr::color#0 vera_tile_area::w#11 ]
reg byte x [ vera_layer_get_textcolor::layer#0 ]
reg byte a [ vera_layer_get_textcolor::return#0 ]
reg byte a [ clrscr::$2 ]
@ -660,52 +655,51 @@ reg byte a [ clrscr::$6 ]
reg byte a [ clrscr::$7 ]
reg byte a [ memcpy_to_vram::$0 ]
reg byte a [ memcpy_to_vram::$1 ]
zp[2]:59 [ vera_tile_area::rowskip#0 cputs::s#9 cputs::s#10 cputs::s#0 ]
zp[1]:61 [ vera_tile_area::vflip#0 vera_tile_area::index_h#2 ]
zp[1]:62 [ vera_tile_area::index_l#0 ]
zp[2]:55 [ vera_tile_area::rowskip#0 cputs::s#9 cputs::s#10 cputs::s#0 ]
zp[1]:57 [ vera_tile_area::vflip#0 vera_tile_area::index_h#2 ]
zp[1]:58 [ vera_tile_area::index_l#0 ]
reg byte a [ vera_tile_area::index_h#0 ]
reg byte a [ vera_tile_area::index_h#1 ]
reg byte a [ vera_tile_area::$5 ]
reg byte a [ vera_tile_area::vera_vram_address01_$0 ]
reg byte a [ vera_tile_area::vera_vram_address01_$1 ]
reg byte a [ vera_tile_area::vera_vram_address01_$2 ]
reg byte a [ vera_tile_area::vera_vram_address01_$3 ]
reg byte a [ vera_tile_area::vera_vram_address01_$5 ]
reg byte a [ vera_tile_area::vera_vram_address01_$6 ]
reg byte a [ cputs::c#1 ]
zp[1]:63 [ cputc::c#0 vera_tile_area::r#2 vera_tile_area::r#1 ]
zp[1]:64 [ kbhit::ch ]
zp[1]:59 [ cputc::c#0 vera_tile_area::r#2 vera_tile_area::r#1 ]
zp[1]:60 [ kbhit::ch ]
reg byte a [ kbhit::return#0 ]
reg byte a [ kbhit::return#1 ]
zp[2]:65 [ vera_layer_set_text_color_mode::addr#0 vera_layer_mode_tile::$4 ]
reg byte a [ vera_layer_get_mapbase_bank::return#0 ]
reg byte a [ vera_layer_get_mapbase_offset::$0 ]
reg byte a [ vera_layer_get_rowshift::return#0 ]
reg byte a [ vera_layer_get_rowskip::$0 ]
reg byte a [ vera_layer_set_config::$0 ]
reg byte a [ vera_layer_set_tilebase::$0 ]
zp[2]:67 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 ]
zp[2]:61 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_text_color_mode::addr#0 vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 ]
reg byte a [ vera_layer_get_backcolor::return#1 ]
reg byte a [ vera_layer_get_textcolor::return#1 ]
reg byte a [ vera_layer_get_color::return#0 ]
reg byte x [ cputc::color#0 ]
reg byte a [ cputc::$15 ]
zp[2]:69 [ cputc::conio_addr#0 cputc::conio_addr#1 vera_tile_area::$10 vera_tile_area::$4 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 memcpy_in_vram::src#3 memcpy_in_vram::src#4 memcpy_in_vram::src#0 ]
zp[2]:63 [ cputc::conio_addr#0 cputc::conio_addr#1 vera_tile_area::$10 vera_tile_area::$4 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 memcpy_in_vram::src#3 memcpy_in_vram::src#4 memcpy_in_vram::src#0 ]
reg byte a [ cputc::$2 ]
reg byte a [ cputc::$4 ]
reg byte a [ cputc::$5 ]
reg byte a [ cputc::$6 ]
reg byte a [ cputc::scroll_enable#0 ]
zp[2]:71 [ cputc::$16 vera_tile_area::vera_vram_address01_$0 memcpy_to_vram::vdest#2 memcpy_to_vram::vdest#1 memcpy_in_vram::dest#3 memcpy_in_vram::dest#0 insertup::start#0 insertup::line#0 ]
zp[2]:65 [ cputc::$16 memcpy_to_vram::vdest#2 memcpy_to_vram::vdest#1 memcpy_in_vram::dest#3 memcpy_in_vram::dest#0 insertup::start#0 insertup::line#0 ]
reg byte a [ vera_layer_get_color::$3 ]
reg byte a [ vera_layer_get_color::$0 ]
reg byte a [ vera_layer_get_color::$1 ]
reg byte a [ cputln::$2 ]
zp[2]:73 [ cputln::temp#0 cputln::temp#1 vera_tile_area::vera_vram_address01_$4 clearline::c#2 clearline::c#1 memcpy_in_vram::i#2 memcpy_in_vram::i#1 ]
zp[2]:67 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 memcpy_to_vram::s#2 memcpy_to_vram::s#1 memcpy_in_vram::num#4 memcpy_in_vram::num#0 ]
reg byte a [ cputln::$3 ]
zp[1]:75 [ insertup::cy#0 vera_tile_area::shift#0 ]
zp[1]:76 [ insertup::width#0 vera_tile_area::hflip#0 ]
zp[1]:69 [ insertup::cy#0 vera_tile_area::shift#0 ]
zp[1]:70 [ insertup::width#0 vera_tile_area::hflip#0 ]
reg byte a [ insertup::$3 ]
reg byte a [ clearline::$5 ]
zp[2]:77 [ clearline::addr#0 vera_layer_get_color::addr#0 vera_tile_area::vera_vram_address01_$2 memcpy_to_vram::s#2 memcpy_to_vram::s#1 memcpy_in_vram::num#4 memcpy_in_vram::num#0 ]
zp[2]:71 [ clearline::addr#0 ]
reg byte a [ clearline::$1 ]
reg byte a [ clearline::$2 ]
reg byte a [ vera_layer_get_color::return#4 ]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,975 @@
void __start()
__start: scope:[__start] from
[0] phi()
to:__start::__init1
__start::__init1: scope:[__start] from __start
[1] conio_screen_width = 0
[2] conio_screen_height = 0
[3] conio_screen_layer = 1
[4] conio_width = 0
[5] conio_height = 0
[6] conio_rowshift = 0
[7] conio_rowskip = 0
[8] call conio_x16_init
to:__start::@1
__start::@1: scope:[__start] from __start::__init1
[9] phi()
[10] call main
to:__start::@return
__start::@return: scope:[__start] from __start::@1
[11] return
to:@return
void conio_x16_init()
conio_x16_init: scope:[conio_x16_init] from __start::__init1
[12] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE
[13] call vera_layer_mode_text
to:conio_x16_init::@3
conio_x16_init::@3: scope:[conio_x16_init] from conio_x16_init
[14] phi()
[15] call screensize
to:conio_x16_init::@4
conio_x16_init::@4: scope:[conio_x16_init] from conio_x16_init::@3
[16] phi()
[17] call screenlayer
to:conio_x16_init::@5
conio_x16_init::@5: scope:[conio_x16_init] from conio_x16_init::@4
[18] phi()
[19] call vera_layer_set_textcolor
to:conio_x16_init::@6
conio_x16_init::@6: scope:[conio_x16_init] from conio_x16_init::@5
[20] phi()
[21] call vera_layer_set_backcolor
to:conio_x16_init::@7
conio_x16_init::@7: scope:[conio_x16_init] from conio_x16_init::@6
[22] phi()
[23] call vera_layer_set_mapbase
to:conio_x16_init::@8
conio_x16_init::@8: scope:[conio_x16_init] from conio_x16_init::@7
[24] phi()
[25] call vera_layer_set_mapbase
to:conio_x16_init::@9
conio_x16_init::@9: scope:[conio_x16_init] from conio_x16_init::@8
[26] if(conio_x16_init::line#0<conio_screen_height) goto conio_x16_init::@1
to:conio_x16_init::@2
conio_x16_init::@2: scope:[conio_x16_init] from conio_x16_init::@9
[27] conio_x16_init::line#1 = conio_screen_height - 1
to:conio_x16_init::@1
conio_x16_init::@1: scope:[conio_x16_init] from conio_x16_init::@2 conio_x16_init::@9
[28] conio_x16_init::line#3 = phi( conio_x16_init::@2/conio_x16_init::line#1, conio_x16_init::@9/conio_x16_init::line#0 )
[29] gotoxy::y#1 = conio_x16_init::line#3
[30] call gotoxy
to:conio_x16_init::@return
conio_x16_init::@return: scope:[conio_x16_init] from conio_x16_init::@1
[31] return
to:@return
void main()
main: scope:[main] from __start::@1
[32] phi()
to:main::textcolor1
main::textcolor1: scope:[main] from main
[33] vera_layer_set_textcolor::layer#1 = conio_screen_layer
[34] call vera_layer_set_textcolor
to:main::bgcolor1
main::bgcolor1: scope:[main] from main::textcolor1
[35] vera_layer_set_backcolor::layer#1 = conio_screen_layer
[36] call vera_layer_set_backcolor
to:main::@12
main::@12: scope:[main] from main::bgcolor1
[37] phi()
[38] call clrscr
to:main::@14
main::@14: scope:[main] from main::@12
[39] phi()
[40] call vera_layer_mode_tile
to:main::@15
main::@15: scope:[main] from main::@14
[41] phi()
[42] call memcpy_to_vram
to:main::@1
main::@1: scope:[main] from main::@15 main::@16
[43] main::t#5 = phi( main::@15/1, main::@16/main::t#1 )
[43] main::tilebase#7 = phi( main::@15/(byte*) 16384+$40, main::@16/main::tilebase#2 )
to:main::@2
main::@2: scope:[main] from main::@1 main::@2
[44] main::p#2 = phi( main::@1/0, main::@2/main::p#1 )
[45] main::tiles[main::p#2] = main::tiles[main::p#2] + 1
[46] main::p#1 = ++ main::p#2
[47] if(main::p#1!=$40) goto main::@2
to:main::@3
main::@3: scope:[main] from main::@2
[48] memcpy_to_vram::vdest#1 = (void*)main::tilebase#7
[49] call memcpy_to_vram
to:main::@16
main::@16: scope:[main] from main::@3
[50] main::tilebase#2 = main::tilebase#7 + $40
[51] main::t#1 = ++ main::t#5
[52] if(main::t#1!=0) goto main::@1
to:main::@4
main::@4: scope:[main] from main::@16
[53] phi()
[54] call vera_tile_area
to:main::@5
main::@5: scope:[main] from main::@4 main::@7
[55] main::r#5 = phi( main::@4/0, main::@7/main::r#1 )
[55] main::row#9 = phi( main::@4/1, main::@7/main::row#1 )
[55] main::tile#10 = phi( main::@4/0, main::@7/main::tile#12 )
to:main::@6
main::@6: scope:[main] from main::@17 main::@5
[56] main::c#2 = phi( main::@17/main::c#1, main::@5/0 )
[56] main::column#2 = phi( main::@17/main::column#1, main::@5/1 )
[56] main::tile#6 = phi( main::@17/main::tile#12, main::@5/main::tile#10 )
[57] vera_tile_area::tileindex#1 = main::tile#6
[58] vera_tile_area::x#1 = main::column#2
[59] vera_tile_area::y#1 = main::row#9
[60] call vera_tile_area
to:main::@17
main::@17: scope:[main] from main::@6
[61] main::column#1 = main::column#2 + 2
[62] main::tile#1 = ++ main::tile#6
[63] main::tile#12 = main::tile#1 & $ff
[64] main::c#1 = ++ main::c#2
[65] if(main::c#1!=$20) goto main::@6
to:main::@7
main::@7: scope:[main] from main::@17
[66] main::row#1 = main::row#9 + 2
[67] main::r#1 = ++ main::r#5
[68] if(main::r#1!=8) goto main::@5
to:main::@8
main::@8: scope:[main] from main::@10 main::@7
[69] main::r1#5 = phi( main::@10/main::r1#1, main::@7/0 )
[69] main::row#11 = phi( main::@10/main::row#3, main::@7/$14 )
[69] main::tile#11 = phi( main::@10/main::tile#13, main::@7/0 )
to:main::@9
main::@9: scope:[main] from main::@18 main::@8
[70] main::c1#2 = phi( main::@18/main::c1#1, main::@8/0 )
[70] main::column1#2 = phi( main::@18/main::column1#1, main::@8/1 )
[70] main::tile#8 = phi( main::@18/main::tile#13, main::@8/main::tile#11 )
[71] vera_tile_area::tileindex#2 = main::tile#8
[72] vera_tile_area::x#2 = main::column1#2
[73] vera_tile_area::y#2 = main::row#11
[74] call vera_tile_area
to:main::@18
main::@18: scope:[main] from main::@9
[75] main::column1#1 = main::column1#2 + 2
[76] main::tile#4 = ++ main::tile#8
[77] main::tile#13 = main::tile#4 & $ff
[78] main::c1#1 = ++ main::c1#2
[79] if(main::c1#1!=$20) goto main::@9
to:main::@10
main::@10: scope:[main] from main::@18
[80] main::row#3 = main::row#11 + 2
[81] main::r1#1 = ++ main::r1#5
[82] if(main::r1#1!=8) goto main::@8
to:main::vera_layer_show1
main::vera_layer_show1: scope:[main] from main::@10
[83] *VERA_DC_VIDEO = *VERA_DC_VIDEO | *vera_layer_enable
to:main::@13
main::@13: scope:[main] from main::vera_layer_show1
[84] phi()
[85] call gotoxy
to:main::@19
main::@19: scope:[main] from main::@13
[86] phi()
[87] call cputs
to:main::@20
main::@20: scope:[main] from main::@19
[88] phi()
[89] call cputs
to:main::@21
main::@21: scope:[main] from main::@20
[90] phi()
[91] call cputs
to:main::@22
main::@22: scope:[main] from main::@21
[92] phi()
[93] call cputs
to:main::@23
main::@23: scope:[main] from main::@22
[94] phi()
[95] call cputs
to:main::@24
main::@24: scope:[main] from main::@23
[96] phi()
[97] call cputs
to:main::@25
main::@25: scope:[main] from main::@24
[98] phi()
[99] call cputs
to:main::@26
main::@26: scope:[main] from main::@25
[100] phi()
[101] call cputs
to:main::@11
main::@11: scope:[main] from main::@26 main::@27
[102] phi()
[103] call kbhit
[104] kbhit::return#2 = kbhit::return#1
to:main::@27
main::@27: scope:[main] from main::@11
[105] main::$25 = kbhit::return#2
[106] if(0==main::$25) goto main::@11
to:main::@return
main::@return: scope:[main] from main::@27
[107] return
to:@return
void vera_layer_mode_text(byte vera_layer_mode_text::layer , dword vera_layer_mode_text::mapbase_address , dword vera_layer_mode_text::tilebase_address , word vera_layer_mode_text::mapwidth , word vera_layer_mode_text::mapheight , byte vera_layer_mode_text::tilewidth , byte vera_layer_mode_text::tileheight , word vera_layer_mode_text::color_mode)
vera_layer_mode_text: scope:[vera_layer_mode_text] from conio_x16_init
[108] phi()
[109] call vera_layer_mode_tile
to:vera_layer_mode_text::@1
vera_layer_mode_text::@1: scope:[vera_layer_mode_text] from vera_layer_mode_text
[110] phi()
[111] call vera_layer_set_text_color_mode
to:vera_layer_mode_text::@return
vera_layer_mode_text::@return: scope:[vera_layer_mode_text] from vera_layer_mode_text::@1
[112] return
to:@return
void screensize(byte* screensize::x , byte* screensize::y)
screensize: scope:[screensize] from conio_x16_init::@3
[113] screensize::hscale#0 = *VERA_DC_HSCALE >> 7
[114] screensize::$1 = $28 << screensize::hscale#0
[115] *screensize::x#0 = screensize::$1
[116] screensize::vscale#0 = *VERA_DC_VSCALE >> 7
[117] screensize::$3 = $1e << screensize::vscale#0
[118] *screensize::y#0 = screensize::$3
to:screensize::@return
screensize::@return: scope:[screensize] from screensize
[119] return
to:@return
void screenlayer(byte screenlayer::layer)
screenlayer: scope:[screenlayer] from conio_x16_init::@4
[120] conio_screen_layer = screenlayer::layer#0
[121] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer
[122] call vera_layer_get_mapbase_bank
[123] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0
to:screenlayer::@3
screenlayer::@3: scope:[screenlayer] from screenlayer
[124] CONIO_SCREEN_BANK#11 = vera_layer_get_mapbase_bank::return#2
[125] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer
[126] call vera_layer_get_mapbase_offset
[127] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0
to:screenlayer::@4
screenlayer::@4: scope:[screenlayer] from screenlayer::@3
[128] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2
[129] screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer
to:screenlayer::vera_layer_get_width1
screenlayer::vera_layer_get_width1: scope:[screenlayer] from screenlayer::@4
[130] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1
[131] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2]
[132] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK
[133] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4
[134] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1
[135] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3]
to:screenlayer::vera_layer_get_width1_@return
screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1
[136] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0
to:screenlayer::@1
screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return
[137] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1
[138] conio_width = screenlayer::$2
[139] vera_layer_get_rowshift::layer#0 = conio_screen_layer
[140] call vera_layer_get_rowshift
[141] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0
to:screenlayer::@5
screenlayer::@5: scope:[screenlayer] from screenlayer::@1
[142] screenlayer::$3 = vera_layer_get_rowshift::return#2
[143] conio_rowshift = screenlayer::$3
[144] vera_layer_get_rowskip::layer#0 = conio_screen_layer
[145] call vera_layer_get_rowskip
[146] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0
to:screenlayer::@6
screenlayer::@6: scope:[screenlayer] from screenlayer::@5
[147] screenlayer::$4 = vera_layer_get_rowskip::return#2
[148] conio_rowskip = screenlayer::$4
[149] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer
to:screenlayer::vera_layer_get_height1
screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6
[150] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1
[151] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2]
[152] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK
[153] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6
[154] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1
[155] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3]
to:screenlayer::vera_layer_get_height1_@return
screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1
[156] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0
to:screenlayer::@2
screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return
[157] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1
[158] conio_height = screenlayer::$5
to:screenlayer::@return
screenlayer::@return: scope:[screenlayer] from screenlayer::@2
[159] return
to:@return
byte vera_layer_set_textcolor(byte vera_layer_set_textcolor::layer , byte vera_layer_set_textcolor::color)
vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1
[160] vera_layer_set_textcolor::layer#2 = phi( conio_x16_init::@5/1, main::textcolor1/vera_layer_set_textcolor::layer#1 )
[161] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE
to:vera_layer_set_textcolor::@return
vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor
[162] return
to:@return
byte vera_layer_set_backcolor(byte vera_layer_set_backcolor::layer , byte vera_layer_set_backcolor::color)
vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1
[163] vera_layer_set_backcolor::color#2 = phi( conio_x16_init::@6/BLUE, main::bgcolor1/BLACK )
[163] vera_layer_set_backcolor::layer#2 = phi( conio_x16_init::@6/1, main::bgcolor1/vera_layer_set_backcolor::layer#1 )
[164] vera_layer_backcolor[vera_layer_set_backcolor::layer#2] = vera_layer_set_backcolor::color#2
to:vera_layer_set_backcolor::@return
vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor
[165] return
to:@return
void vera_layer_set_mapbase(byte vera_layer_set_mapbase::layer , byte vera_layer_set_mapbase::mapbase)
vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@27
[166] vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/$20, conio_x16_init::@8/0, vera_layer_mode_tile::@27/vera_layer_set_mapbase::mapbase#0 )
[166] vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/0, conio_x16_init::@8/1, vera_layer_mode_tile::@27/vera_layer_set_mapbase::layer#0 )
[167] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1
[168] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0]
[169] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3
to:vera_layer_set_mapbase::@return
vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase
[170] return
to:@return
void gotoxy(byte gotoxy::x , byte gotoxy::y)
gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@13
[171] gotoxy::y#4 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@13/$32 )
[172] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4
to:gotoxy::@1
gotoxy::@4: scope:[gotoxy] from gotoxy
[173] phi()
to:gotoxy::@1
gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@4
[174] gotoxy::y#5 = phi( gotoxy::@4/gotoxy::y#4, gotoxy/0 )
[175] if(0<conio_screen_width) goto gotoxy::@2
to:gotoxy::@3
gotoxy::@3: scope:[gotoxy] from gotoxy::@1
[176] phi()
to:gotoxy::@2
gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@3
[177] conio_cursor_x[conio_screen_layer] = 0
[178] conio_cursor_y[conio_screen_layer] = gotoxy::y#5
[179] gotoxy::$6 = (word)gotoxy::y#5
[180] gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift
[181] gotoxy::$5 = conio_screen_layer << 1
[182] conio_line_text[gotoxy::$5] = gotoxy::line_offset#0
to:gotoxy::@return
gotoxy::@return: scope:[gotoxy] from gotoxy::@2
[183] return
to:@return
void clrscr()
clrscr: scope:[clrscr] from main::@12
[184] clrscr::line_text#0 = (byte*)CONIO_SCREEN_TEXT#13
[185] vera_layer_get_backcolor::layer#0 = conio_screen_layer
[186] call vera_layer_get_backcolor
[187] vera_layer_get_backcolor::return#2 = vera_layer_get_backcolor::return#0
to:clrscr::@7
clrscr::@7: scope:[clrscr] from clrscr
[188] clrscr::$0 = vera_layer_get_backcolor::return#2
[189] clrscr::$1 = clrscr::$0 << 4
[190] vera_layer_get_textcolor::layer#0 = conio_screen_layer
[191] call vera_layer_get_textcolor
[192] vera_layer_get_textcolor::return#2 = vera_layer_get_textcolor::return#0
to:clrscr::@8
clrscr::@8: scope:[clrscr] from clrscr::@7
[193] clrscr::$2 = vera_layer_get_textcolor::return#2
[194] clrscr::color#0 = clrscr::$1 | clrscr::$2
to:clrscr::@1
clrscr::@1: scope:[clrscr] from clrscr::@6 clrscr::@8
[195] clrscr::line_text#2 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#0 )
[195] clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/0 )
[196] if(clrscr::l#2<conio_height) goto clrscr::@2
to:clrscr::@3
clrscr::@3: scope:[clrscr] from clrscr::@1
[197] conio_cursor_x[conio_screen_layer] = 0
[198] conio_cursor_y[conio_screen_layer] = 0
[199] clrscr::$9 = conio_screen_layer << 1
[200] conio_line_text[clrscr::$9] = 0
to:clrscr::@return
clrscr::@return: scope:[clrscr] from clrscr::@3
[201] return
to:@return
clrscr::@2: scope:[clrscr] from clrscr::@1
[202] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[203] clrscr::$5 = < clrscr::line_text#2
[204] *VERA_ADDRX_L = clrscr::$5
[205] clrscr::$6 = > clrscr::line_text#2
[206] *VERA_ADDRX_M = clrscr::$6
[207] clrscr::$7 = CONIO_SCREEN_BANK#11 | VERA_INC_1
[208] *VERA_ADDRX_H = clrscr::$7
to:clrscr::@4
clrscr::@4: scope:[clrscr] from clrscr::@2 clrscr::@5
[209] clrscr::c#2 = phi( clrscr::@2/0, clrscr::@5/clrscr::c#1 )
[210] if(clrscr::c#2<conio_width) goto clrscr::@5
to:clrscr::@6
clrscr::@6: scope:[clrscr] from clrscr::@4
[211] clrscr::line_text#1 = clrscr::line_text#2 + conio_rowskip
[212] clrscr::l#1 = ++ clrscr::l#2
to:clrscr::@1
clrscr::@5: scope:[clrscr] from clrscr::@4
[213] *VERA_DATA0 = ' '
[214] *VERA_DATA0 = clrscr::color#0
[215] clrscr::c#1 = ++ clrscr::c#2
to:clrscr::@4
void vera_layer_mode_tile(byte vera_layer_mode_tile::layer , dword vera_layer_mode_tile::mapbase_address , dword vera_layer_mode_tile::tilebase_address , word vera_layer_mode_tile::mapwidth , word vera_layer_mode_tile::mapheight , byte vera_layer_mode_tile::tilewidth , byte vera_layer_mode_tile::tileheight , byte vera_layer_mode_tile::color_depth)
vera_layer_mode_tile: scope:[vera_layer_mode_tile] from main::@14 vera_layer_mode_text
[216] vera_layer_mode_tile::tileheight#10 = phi( main::@14/8, vera_layer_mode_text/vera_layer_mode_text::tileheight#0 )
[216] vera_layer_mode_tile::tilewidth#10 = phi( main::@14/8, vera_layer_mode_text/vera_layer_mode_text::tilewidth#0 )
[216] vera_layer_mode_tile::tilebase_address#10 = phi( main::@14/$14000, vera_layer_mode_text/vera_layer_mode_text::tilebase_address#0 )
[216] vera_layer_mode_tile::mapbase_address#10 = phi( main::@14/$4000, vera_layer_mode_text/vera_layer_mode_text::mapbase_address#0 )
[216] vera_layer_mode_tile::mapheight#10 = phi( main::@14/$80, vera_layer_mode_text/vera_layer_mode_text::mapheight#0 )
[216] vera_layer_mode_tile::layer#10 = phi( main::@14/0, vera_layer_mode_text/vera_layer_mode_text::layer#0 )
[216] vera_layer_mode_tile::mapwidth#10 = phi( main::@14/$80, vera_layer_mode_text/vera_layer_mode_text::mapwidth#0 )
[216] vera_layer_mode_tile::color_depth#2 = phi( main::@14/8, vera_layer_mode_text/1 )
[217] if(vera_layer_mode_tile::color_depth#2==1) goto vera_layer_mode_tile::@5
to:vera_layer_mode_tile::@1
vera_layer_mode_tile::@1: scope:[vera_layer_mode_tile] from vera_layer_mode_tile
[218] if(vera_layer_mode_tile::color_depth#2==2) goto vera_layer_mode_tile::@5
to:vera_layer_mode_tile::@2
vera_layer_mode_tile::@2: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1
[219] if(vera_layer_mode_tile::color_depth#2==4) goto vera_layer_mode_tile::@5
to:vera_layer_mode_tile::@3
vera_layer_mode_tile::@3: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2
[220] if(vera_layer_mode_tile::color_depth#2!=8) goto vera_layer_mode_tile::@5
to:vera_layer_mode_tile::@4
vera_layer_mode_tile::@4: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3
[221] phi()
to:vera_layer_mode_tile::@5
vera_layer_mode_tile::@5: scope:[vera_layer_mode_tile] from vera_layer_mode_tile vera_layer_mode_tile::@1 vera_layer_mode_tile::@2 vera_layer_mode_tile::@3 vera_layer_mode_tile::@4
[222] vera_layer_mode_tile::config#17 = phi( vera_layer_mode_tile::@3/0, vera_layer_mode_tile/VERA_LAYER_COLOR_DEPTH_1BPP, vera_layer_mode_tile::@1/VERA_LAYER_COLOR_DEPTH_2BPP, vera_layer_mode_tile::@2/VERA_LAYER_COLOR_DEPTH_4BPP, vera_layer_mode_tile::@4/VERA_LAYER_COLOR_DEPTH_8BPP )
[223] if(vera_layer_mode_tile::mapwidth#10==$20) goto vera_layer_mode_tile::@9
to:vera_layer_mode_tile::@6
vera_layer_mode_tile::@6: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5
[224] if(vera_layer_mode_tile::mapwidth#10==$40) goto vera_layer_mode_tile::@10
to:vera_layer_mode_tile::@7
vera_layer_mode_tile::@7: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@6
[225] if(vera_layer_mode_tile::mapwidth#10==$80) goto vera_layer_mode_tile::@11
to:vera_layer_mode_tile::@8
vera_layer_mode_tile::@8: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@7
[226] if(vera_layer_mode_tile::mapwidth#10!=$100) goto vera_layer_mode_tile::@13
to:vera_layer_mode_tile::@12
vera_layer_mode_tile::@12: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@8
[227] vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_256
[228] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9
[229] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1
[230] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200
to:vera_layer_mode_tile::@13
vera_layer_mode_tile::@13: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@8 vera_layer_mode_tile::@9
[231] vera_layer_mode_tile::config#21 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::config#17, vera_layer_mode_tile::@9/vera_layer_mode_tile::config#17, vera_layer_mode_tile::@10/vera_layer_mode_tile::config#6, vera_layer_mode_tile::@11/vera_layer_mode_tile::config#7, vera_layer_mode_tile::@12/vera_layer_mode_tile::config#8 )
[232] if(vera_layer_mode_tile::mapheight#10==$20) goto vera_layer_mode_tile::@20
to:vera_layer_mode_tile::@14
vera_layer_mode_tile::@14: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@13
[233] if(vera_layer_mode_tile::mapheight#10==$40) goto vera_layer_mode_tile::@17
to:vera_layer_mode_tile::@15
vera_layer_mode_tile::@15: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@14
[234] if(vera_layer_mode_tile::mapheight#10==$80) goto vera_layer_mode_tile::@18
to:vera_layer_mode_tile::@16
vera_layer_mode_tile::@16: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@15
[235] if(vera_layer_mode_tile::mapheight#10!=$100) goto vera_layer_mode_tile::@20
to:vera_layer_mode_tile::@19
vera_layer_mode_tile::@19: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@16
[236] vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_256
to:vera_layer_mode_tile::@20
vera_layer_mode_tile::@20: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@13 vera_layer_mode_tile::@16 vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@19
[237] vera_layer_mode_tile::config#25 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::config#21, vera_layer_mode_tile::@13/vera_layer_mode_tile::config#21, vera_layer_mode_tile::@17/vera_layer_mode_tile::config#10, vera_layer_mode_tile::@18/vera_layer_mode_tile::config#11, vera_layer_mode_tile::@19/vera_layer_mode_tile::config#12 )
[238] vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#10
[239] vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25
[240] call vera_layer_set_config
to:vera_layer_mode_tile::@27
vera_layer_mode_tile::@27: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@20
[241] vera_layer_mode_tile::$1 = _word0_ vera_layer_mode_tile::mapbase_address#10
[242] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1
[243] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1
[244] vera_layer_mode_tile::$2 = _byte2_ vera_layer_mode_tile::mapbase_address#10
[245] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2
[246] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2
[247] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10
[248] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1
[249] vera_layer_mode_tile::mapbase#0 = > vera_layer_mode_tile::mapbase_address#0
[250] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10
[251] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0
[252] call vera_layer_set_mapbase
to:vera_layer_mode_tile::@28
vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@27
[253] vera_layer_mode_tile::$6 = _word0_ vera_layer_mode_tile::tilebase_address#10
[254] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6
[255] vera_layer_mode_tile::$7 = _byte2_ vera_layer_mode_tile::tilebase_address#10
[256] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7
[257] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10
[258] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1
[259] vera_layer_mode_tile::tilebase#0 = > vera_layer_mode_tile::tilebase_address#0
[260] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK
[261] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23
to:vera_layer_mode_tile::@21
vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28
[262] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23
to:vera_layer_mode_tile::@22
vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21
[263] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16
to:vera_layer_mode_tile::@23
vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28
[264] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase#3 )
[265] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26
to:vera_layer_mode_tile::@24
vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23
[266] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26
to:vera_layer_mode_tile::@25
vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24
[267] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16
to:vera_layer_mode_tile::@26
vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25
[268] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#5 )
[269] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10
[270] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10
[271] call vera_layer_set_tilebase
to:vera_layer_mode_tile::@return
vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@26
[272] return
to:@return
vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@15
[273] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128
to:vera_layer_mode_tile::@20
vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@14
[274] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64
to:vera_layer_mode_tile::@20
vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@7
[275] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128
[276] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8
[277] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1
[278] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100
to:vera_layer_mode_tile::@13
vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@6
[279] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64
[280] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7
[281] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1
[282] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80
to:vera_layer_mode_tile::@13
vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5
[283] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6
[284] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1
[285] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40
to:vera_layer_mode_tile::@13
void memcpy_to_vram(byte memcpy_to_vram::vbank , void* memcpy_to_vram::vdest , void* memcpy_to_vram::src , word memcpy_to_vram::num)
memcpy_to_vram: scope:[memcpy_to_vram] from main::@15 main::@3
[286] memcpy_to_vram::vdest#2 = phi( main::@15/(void*)(byte*) 16384, main::@3/memcpy_to_vram::vdest#1 )
[287] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[288] memcpy_to_vram::$0 = < memcpy_to_vram::vdest#2
[289] *VERA_ADDRX_L = memcpy_to_vram::$0
[290] memcpy_to_vram::$1 = > memcpy_to_vram::vdest#2
[291] *VERA_ADDRX_M = memcpy_to_vram::$1
[292] *VERA_ADDRX_H = VERA_INC_1|1
to:memcpy_to_vram::@1
memcpy_to_vram::@1: scope:[memcpy_to_vram] from memcpy_to_vram memcpy_to_vram::@2
[293] memcpy_to_vram::s#2 = phi( memcpy_to_vram/(byte*)(void*)main::tiles, memcpy_to_vram::@2/memcpy_to_vram::s#1 )
[294] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2
to:memcpy_to_vram::@return
memcpy_to_vram::@return: scope:[memcpy_to_vram] from memcpy_to_vram::@1
[295] return
to:@return
memcpy_to_vram::@2: scope:[memcpy_to_vram] from memcpy_to_vram::@1
[296] *VERA_DATA0 = *memcpy_to_vram::s#2
[297] memcpy_to_vram::s#1 = ++ memcpy_to_vram::s#2
to:memcpy_to_vram::@1
void vera_tile_area(byte vera_tile_area::layer , word vera_tile_area::tileindex , byte vera_tile_area::x , byte vera_tile_area::y , byte vera_tile_area::w , byte vera_tile_area::h , byte vera_tile_area::hflip , byte vera_tile_area::vflip , byte vera_tile_area::offset)
vera_tile_area: scope:[vera_tile_area] from main::@4 main::@6 main::@9
[298] vera_tile_area::w#9 = phi( main::@9/2, main::@4/$50, main::@6/1 )
[298] vera_tile_area::h#4 = phi( main::@9/2, main::@4/$3c, main::@6/1 )
[298] vera_tile_area::x#3 = phi( main::@9/vera_tile_area::x#2, main::@4/0, main::@6/vera_tile_area::x#1 )
[298] vera_tile_area::y#3 = phi( main::@9/vera_tile_area::y#2, main::@4/0, main::@6/vera_tile_area::y#1 )
[298] vera_tile_area::tileindex#3 = phi( main::@9/vera_tile_area::tileindex#2, main::@4/0, main::@6/vera_tile_area::tileindex#1 )
[299] vera_tile_area::mapbase#0 = *vera_mapbase_address
[300] vera_tile_area::shift#0 = *vera_layer_rowshift
[301] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0
[302] vera_tile_area::hflip#0 = *vera_layer_hflip
[303] vera_tile_area::vflip#0 = *vera_layer_vflip
[304] vera_tile_area::index_l#0 = < vera_tile_area::tileindex#3
[305] vera_tile_area::index_h#0 = > vera_tile_area::tileindex#3
[306] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0
[307] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0
[308] vera_tile_area::$10 = (word)vera_tile_area::y#3
[309] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0
[310] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4
[311] vera_tile_area::$5 = vera_tile_area::x#3 << 1
[312] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5
to:vera_tile_area::@1
vera_tile_area::@1: scope:[vera_tile_area] from vera_tile_area vera_tile_area::@4
[313] vera_tile_area::mapbase#10 = phi( vera_tile_area/vera_tile_area::mapbase#2, vera_tile_area::@4/vera_tile_area::mapbase#3 )
[313] vera_tile_area::r#2 = phi( vera_tile_area/0, vera_tile_area::@4/vera_tile_area::r#1 )
[314] if(vera_tile_area::r#2<vera_tile_area::h#4) goto vera_tile_area::vera_vram_address01
to:vera_tile_area::@return
vera_tile_area::@return: scope:[vera_tile_area] from vera_tile_area::@1
[315] return
to:@return
vera_tile_area::vera_vram_address01: scope:[vera_tile_area] from vera_tile_area::@1
[316] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[317] vera_tile_area::vera_vram_address01_$0 = < vera_tile_area::mapbase#10
[318] *VERA_ADDRX_L = vera_tile_area::vera_vram_address01_$0
[319] vera_tile_area::vera_vram_address01_$1 = > vera_tile_area::mapbase#10
[320] *VERA_ADDRX_M = vera_tile_area::vera_vram_address01_$1
[321] vera_tile_area::vera_vram_address01_$2 = _byte2_ vera_tile_area::mapbase#10
[322] vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | VERA_INC_1
[323] *VERA_ADDRX_H = vera_tile_area::vera_vram_address01_$3
to:vera_tile_area::@2
vera_tile_area::@2: scope:[vera_tile_area] from vera_tile_area::@3 vera_tile_area::vera_vram_address01
[324] vera_tile_area::c#2 = phi( vera_tile_area::@3/vera_tile_area::c#1, vera_tile_area::vera_vram_address01/0 )
[325] if(vera_tile_area::c#2<vera_tile_area::w#9) goto vera_tile_area::@3
to:vera_tile_area::@4
vera_tile_area::@4: scope:[vera_tile_area] from vera_tile_area::@2
[326] vera_tile_area::mapbase#3 = vera_tile_area::mapbase#10 + vera_tile_area::rowskip#0
[327] vera_tile_area::r#1 = ++ vera_tile_area::r#2
to:vera_tile_area::@1
vera_tile_area::@3: scope:[vera_tile_area] from vera_tile_area::@2
[328] *VERA_DATA0 = vera_tile_area::index_l#0
[329] *VERA_DATA0 = vera_tile_area::index_h#2
[330] vera_tile_area::c#1 = ++ vera_tile_area::c#2
to:vera_tile_area::@2
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@19 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26
[331] cputs::s#10 = phi( main::@19/main::s, main::@20/main::s1, main::@21/main::s2, main::@22/main::s3, main::@23/main::s4, main::@24/main::s5, main::@25/main::s6, main::@26/main::s7 )
to:cputs::@1
cputs::@1: scope:[cputs] from cputs cputs::@2
[332] cputs::s#9 = phi( cputs/cputs::s#10, cputs::@2/cputs::s#0 )
[333] cputs::c#1 = *cputs::s#9
[334] cputs::s#0 = ++ cputs::s#9
[335] if(0!=cputs::c#1) goto cputs::@2
to:cputs::@return
cputs::@return: scope:[cputs] from cputs::@1
[336] return
to:@return
cputs::@2: scope:[cputs] from cputs::@1
[337] cputc::c#0 = cputs::c#1
[338] call cputc
to:cputs::@1
byte kbhit()
kbhit: scope:[kbhit] from main::@11
[339] kbhit::ch = 0
kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit
bne L3
jmp continue1
.var via1 = $9f60 //VIA#1
.var d1pra = via1+1
_kbhit:
ldy d1pra // The count of keys pressed is stored in RAM bank 0.
stz d1pra // Set d1pra to zero to access RAM bank 0.
lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38).
sty d1pra // Set d1pra to previous value.
rts
L3:
ldy IN_DEV // Save current input device
stz IN_DEV // Keyboard
phy
jsr GETIN // Read char, and return in .A
ply
sta chptr // Store the character read in ch
sty IN_DEV // Restore input device
ldx #>$0000
rts
continue1:
nop
}}
[341] kbhit::return#0 = kbhit::ch
to:kbhit::@return
kbhit::@return: scope:[kbhit] from kbhit
[342] kbhit::return#1 = kbhit::return#0
[343] return
to:@return
void vera_layer_set_text_color_mode(byte vera_layer_set_text_color_mode::layer , byte vera_layer_set_text_color_mode::color_mode)
vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1
[344] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER)
[345] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C
[346] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0
to:vera_layer_set_text_color_mode::@return
vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode
[347] return
to:@return
byte vera_layer_get_mapbase_bank(byte vera_layer_get_mapbase_bank::layer)
vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer
[348] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0]
to:vera_layer_get_mapbase_bank::@return
vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank
[349] return
to:@return
word vera_layer_get_mapbase_offset(byte vera_layer_get_mapbase_offset::layer)
vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3
[350] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1
[351] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0]
to:vera_layer_get_mapbase_offset::@return
vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset
[352] return
to:@return
byte vera_layer_get_rowshift(byte vera_layer_get_rowshift::layer)
vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1
[353] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0]
to:vera_layer_get_rowshift::@return
vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift
[354] return
to:@return
word vera_layer_get_rowskip(byte vera_layer_get_rowskip::layer)
vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5
[355] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1
[356] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0]
to:vera_layer_get_rowskip::@return
vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip
[357] return
to:@return
byte vera_layer_get_backcolor(byte vera_layer_get_backcolor::layer)
vera_layer_get_backcolor: scope:[vera_layer_get_backcolor] from clrscr
[358] vera_layer_get_backcolor::return#0 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0]
to:vera_layer_get_backcolor::@return
vera_layer_get_backcolor::@return: scope:[vera_layer_get_backcolor] from vera_layer_get_backcolor
[359] return
to:@return
byte vera_layer_get_textcolor(byte vera_layer_get_textcolor::layer)
vera_layer_get_textcolor: scope:[vera_layer_get_textcolor] from clrscr::@7
[360] vera_layer_get_textcolor::return#0 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0]
to:vera_layer_get_textcolor::@return
vera_layer_get_textcolor::@return: scope:[vera_layer_get_textcolor] from vera_layer_get_textcolor
[361] return
to:@return
void vera_layer_set_config(byte vera_layer_set_config::layer , byte vera_layer_set_config::config)
vera_layer_set_config: scope:[vera_layer_set_config] from vera_layer_mode_tile::@20
[362] vera_layer_set_config::$0 = vera_layer_set_config::layer#0 << 1
[363] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0]
[364] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#0
to:vera_layer_set_config::@return
vera_layer_set_config::@return: scope:[vera_layer_set_config] from vera_layer_set_config
[365] return
to:@return
void vera_layer_set_tilebase(byte vera_layer_set_tilebase::layer , byte vera_layer_set_tilebase::tilebase)
vera_layer_set_tilebase: scope:[vera_layer_set_tilebase] from vera_layer_mode_tile::@26
[366] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#0 << 1
[367] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0]
[368] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#0
to:vera_layer_set_tilebase::@return
vera_layer_set_tilebase::@return: scope:[vera_layer_set_tilebase] from vera_layer_set_tilebase
[369] return
to:@return
void cputc(byte cputc::c)
cputc: scope:[cputc] from cputs::@2
[370] vera_layer_get_color::layer#0 = conio_screen_layer
[371] call vera_layer_get_color
[372] vera_layer_get_color::return#3 = vera_layer_get_color::return#2
to:cputc::@7
cputc::@7: scope:[cputc] from cputc
[373] cputc::color#0 = vera_layer_get_color::return#3
[374] cputc::$15 = conio_screen_layer << 1
[375] cputc::conio_addr#0 = (byte*)CONIO_SCREEN_TEXT#13 + conio_line_text[cputc::$15]
[376] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1
[377] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2
[378] if(cputc::c#0=='
') goto cputc::@1
to:cputc::@2
cputc::@2: scope:[cputc] from cputc::@7
[379] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[380] cputc::$4 = < cputc::conio_addr#1
[381] *VERA_ADDRX_L = cputc::$4
[382] cputc::$5 = > cputc::conio_addr#1
[383] *VERA_ADDRX_M = cputc::$5
[384] cputc::$6 = CONIO_SCREEN_BANK#11 | VERA_INC_1
[385] *VERA_ADDRX_H = cputc::$6
[386] *VERA_DATA0 = cputc::c#0
[387] *VERA_DATA0 = cputc::color#0
[388] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer]
[389] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer]
[390] if(0!=cputc::scroll_enable#0) goto cputc::@5
to:cputc::@3
cputc::@3: scope:[cputc] from cputc::@2
[391] cputc::$16 = (word)conio_cursor_x[conio_screen_layer]
[392] if(cputc::$16!=conio_width) goto cputc::@return
to:cputc::@4
cputc::@4: scope:[cputc] from cputc::@3
[393] phi()
[394] call cputln
to:cputc::@return
cputc::@return: scope:[cputc] from cputc::@1 cputc::@3 cputc::@4 cputc::@5 cputc::@6
[395] return
to:@return
cputc::@5: scope:[cputc] from cputc::@2
[396] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return
to:cputc::@6
cputc::@6: scope:[cputc] from cputc::@5
[397] phi()
[398] call cputln
to:cputc::@return
cputc::@1: scope:[cputc] from cputc::@7
[399] phi()
[400] call cputln
to:cputc::@return
byte vera_layer_get_color(byte vera_layer_get_color::layer)
vera_layer_get_color: scope:[vera_layer_get_color] from clearline cputc
[401] vera_layer_get_color::layer#2 = phi( clearline/vera_layer_get_color::layer#1, cputc/vera_layer_get_color::layer#0 )
[402] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1
[403] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3]
[404] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C
[405] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1
to:vera_layer_get_color::@2
vera_layer_get_color::@2: scope:[vera_layer_get_color] from vera_layer_get_color
[406] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4
[407] vera_layer_get_color::return#1 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2]
to:vera_layer_get_color::@return
vera_layer_get_color::@return: scope:[vera_layer_get_color] from vera_layer_get_color::@1 vera_layer_get_color::@2
[408] vera_layer_get_color::return#2 = phi( vera_layer_get_color::@1/vera_layer_get_color::return#0, vera_layer_get_color::@2/vera_layer_get_color::return#1 )
[409] return
to:@return
vera_layer_get_color::@1: scope:[vera_layer_get_color] from vera_layer_get_color
[410] vera_layer_get_color::return#0 = vera_layer_textcolor[vera_layer_get_color::layer#2]
to:vera_layer_get_color::@return
void cputln()
cputln: scope:[cputln] from cputc::@1 cputc::@4 cputc::@6
[411] cputln::$2 = conio_screen_layer << 1
[412] cputln::temp#0 = conio_line_text[cputln::$2]
[413] cputln::temp#1 = cputln::temp#0 + conio_rowskip
[414] cputln::$3 = conio_screen_layer << 1
[415] conio_line_text[cputln::$3] = cputln::temp#1
[416] conio_cursor_x[conio_screen_layer] = 0
[417] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer]
[418] call cscroll
to:cputln::@return
cputln::@return: scope:[cputln] from cputln
[419] return
to:@return
void cscroll()
cscroll: scope:[cscroll] from cputln
[420] if(conio_cursor_y[conio_screen_layer]<conio_screen_height) goto cscroll::@return
to:cscroll::@1
cscroll::@1: scope:[cscroll] from cscroll
[421] if(0!=conio_scroll_enable[conio_screen_layer]) goto cscroll::@4
to:cscroll::@2
cscroll::@2: scope:[cscroll] from cscroll::@1
[422] if(conio_cursor_y[conio_screen_layer]<conio_height) goto cscroll::@return
to:cscroll::@3
cscroll::@3: scope:[cscroll] from cscroll::@2
[423] phi()
to:cscroll::@return
cscroll::@return: scope:[cscroll] from cscroll cscroll::@2 cscroll::@3 cscroll::@5
[424] return
to:@return
cscroll::@4: scope:[cscroll] from cscroll::@1
[425] phi()
[426] call insertup
to:cscroll::@5
cscroll::@5: scope:[cscroll] from cscroll::@4
[427] gotoxy::y#2 = conio_screen_height - 1
[428] call gotoxy
to:cscroll::@return
void insertup()
insertup: scope:[insertup] from cscroll::@4
[429] insertup::cy#0 = conio_cursor_y[conio_screen_layer]
[430] insertup::width#0 = conio_screen_width << 1
to:insertup::@1
insertup::@1: scope:[insertup] from insertup insertup::@4
[431] insertup::i#2 = phi( insertup/1, insertup::@4/insertup::i#1 )
[432] if(insertup::i#2<=insertup::cy#0) goto insertup::@2
to:insertup::@3
insertup::@3: scope:[insertup] from insertup::@1
[433] phi()
[434] call clearline
to:insertup::@return
insertup::@return: scope:[insertup] from insertup::@3
[435] return
to:@return
insertup::@2: scope:[insertup] from insertup::@1
[436] insertup::$3 = insertup::i#2 - 1
[437] insertup::line#0 = insertup::$3 << conio_rowshift
[438] insertup::start#0 = (byte*)CONIO_SCREEN_TEXT#13 + insertup::line#0
[439] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip
[440] memcpy_in_vram::dest#0 = (void*)insertup::start#0
[441] memcpy_in_vram::num#0 = insertup::width#0
[442] call memcpy_in_vram
to:insertup::@4
insertup::@4: scope:[insertup] from insertup::@2
[443] insertup::i#1 = ++ insertup::i#2
to:insertup::@1
void clearline()
clearline: scope:[clearline] from insertup::@3
[444] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[445] clearline::$5 = conio_screen_layer << 1
[446] clearline::addr#0 = (byte*)CONIO_SCREEN_TEXT#13 + conio_line_text[clearline::$5]
[447] clearline::$1 = < clearline::addr#0
[448] *VERA_ADDRX_L = clearline::$1
[449] clearline::$2 = > clearline::addr#0
[450] *VERA_ADDRX_M = clearline::$2
[451] *VERA_ADDRX_H = VERA_INC_1
[452] vera_layer_get_color::layer#1 = conio_screen_layer
[453] call vera_layer_get_color
[454] vera_layer_get_color::return#4 = vera_layer_get_color::return#2
to:clearline::@4
clearline::@4: scope:[clearline] from clearline
[455] clearline::color#0 = vera_layer_get_color::return#4
to:clearline::@1
clearline::@1: scope:[clearline] from clearline::@2 clearline::@4
[456] clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/0 )
[457] if(clearline::c#2<conio_screen_width) goto clearline::@2
to:clearline::@3
clearline::@3: scope:[clearline] from clearline::@1
[458] conio_cursor_x[conio_screen_layer] = 0
to:clearline::@return
clearline::@return: scope:[clearline] from clearline::@3
[459] return
to:@return
clearline::@2: scope:[clearline] from clearline::@1
[460] *VERA_DATA0 = ' '
[461] *VERA_DATA0 = clearline::color#0
[462] clearline::c#1 = ++ clearline::c#2
to:clearline::@1
void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest , byte memcpy_in_vram::dest_increment , byte memcpy_in_vram::src_bank , void* memcpy_in_vram::src , byte memcpy_in_vram::src_increment , word memcpy_in_vram::num)
memcpy_in_vram: scope:[memcpy_in_vram] from insertup::@2
[463] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL
[464] memcpy_in_vram::$0 = < (void*)memcpy_in_vram::src#0
[465] *VERA_ADDRX_L = memcpy_in_vram::$0
[466] memcpy_in_vram::$1 = > (void*)memcpy_in_vram::src#0
[467] *VERA_ADDRX_M = memcpy_in_vram::$1
[468] *VERA_ADDRX_H = VERA_INC_1
[469] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL
[470] memcpy_in_vram::$3 = < memcpy_in_vram::dest#0
[471] *VERA_ADDRX_L = memcpy_in_vram::$3
[472] memcpy_in_vram::$4 = > memcpy_in_vram::dest#0
[473] *VERA_ADDRX_M = memcpy_in_vram::$4
[474] *VERA_ADDRX_H = VERA_INC_1
to:memcpy_in_vram::@1
memcpy_in_vram::@1: scope:[memcpy_in_vram] from memcpy_in_vram memcpy_in_vram::@2
[475] memcpy_in_vram::i#2 = phi( memcpy_in_vram/0, memcpy_in_vram::@2/memcpy_in_vram::i#1 )
[476] if(memcpy_in_vram::i#2<memcpy_in_vram::num#0) goto memcpy_in_vram::@2
to:memcpy_in_vram::@return
memcpy_in_vram::@return: scope:[memcpy_in_vram] from memcpy_in_vram::@1
[477] return
to:@return
memcpy_in_vram::@2: scope:[memcpy_in_vram] from memcpy_in_vram::@1
[478] *VERA_DATA1 = *VERA_DATA0
[479] memcpy_in_vram::i#1 = ++ memcpy_in_vram::i#2
to:memcpy_in_vram::@1

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,686 @@
constant const byte BLACK = 0
constant const byte BLUE = 6
byte CONIO_SCREEN_BANK
byte CONIO_SCREEN_BANK#11 CONIO_SCREEN_BANK zp[1]:40 57.52849740932643
byte* CONIO_SCREEN_TEXT
word CONIO_SCREEN_TEXT#13 CONIO_SCREEN_TEXT zp[2]:41 0.4190871369294606
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant byte SIZEOF_POINTER = 2
constant const byte VERA_ADDRSEL = 1
constant byte* const VERA_ADDRX_H = (byte*) 40738
constant byte* const VERA_ADDRX_L = (byte*) 40736
constant byte* const VERA_ADDRX_M = (byte*) 40737
constant byte* const VERA_CTRL = (byte*) 40741
constant byte* const VERA_DATA0 = (byte*) 40739
constant byte* const VERA_DATA1 = (byte*) 40740
constant byte* const VERA_DC_HSCALE = (byte*) 40746
constant byte* const VERA_DC_VIDEO = (byte*) 40745
constant byte* const VERA_DC_VSCALE = (byte*) 40747
constant const byte VERA_INC_1 = $10
constant byte* const VERA_L0_CONFIG = (byte*) 40749
constant byte* const VERA_L0_MAPBASE = (byte*) 40750
constant byte* const VERA_L0_TILEBASE = (byte*) 40751
constant byte* const VERA_L1_CONFIG = (byte*) 40756
constant byte* const VERA_L1_MAPBASE = (byte*) 40757
constant byte* const VERA_L1_TILEBASE = (byte*) 40758
constant const byte VERA_LAYER0_ENABLE = $10
constant const byte VERA_LAYER1_ENABLE = $20
constant const byte VERA_LAYER_COLOR_DEPTH_1BPP = 0
constant const byte VERA_LAYER_COLOR_DEPTH_2BPP = 1
constant const byte VERA_LAYER_COLOR_DEPTH_4BPP = 2
constant const byte VERA_LAYER_COLOR_DEPTH_8BPP = 3
constant const byte VERA_LAYER_CONFIG_256C = 8
constant const word* VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 }
constant const byte VERA_LAYER_HEIGHT_128 = $80
constant const byte VERA_LAYER_HEIGHT_256 = $c0
constant const byte VERA_LAYER_HEIGHT_64 = $40
constant const byte VERA_LAYER_HEIGHT_MASK = $c0
constant const byte VERA_LAYER_TILEBASE_MASK = $fc
constant const word* VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 }
constant const byte VERA_LAYER_WIDTH_128 = $20
constant const byte VERA_LAYER_WIDTH_256 = $30
constant const byte VERA_LAYER_WIDTH_64 = $10
constant const byte VERA_LAYER_WIDTH_MASK = $30
constant const byte VERA_TILEBASE_HEIGHT_16 = 2
constant const byte VERA_TILEBASE_WIDTH_16 = 1
constant const byte WHITE = 1
void __start()
void clearline()
byte~ clearline::$1 reg byte a 2.00000002E8
byte~ clearline::$2 reg byte a 2.00000002E8
byte~ clearline::$5 reg byte a 2.00000002E8
byte* clearline::addr
byte* clearline::addr#0 addr zp[2]:73 1.00000001E8
word clearline::c
word clearline::c#1 c zp[2]:61 2.0000000002E10
word clearline::c#2 c zp[2]:61 7.50000000075E9
byte clearline::color
byte clearline::color#0 reg byte x 1.6833333336666665E9
void clrscr()
byte~ clrscr::$0 reg byte a 202.0
byte~ clrscr::$1 zp[1]:47 40.4
byte~ clrscr::$2 reg byte a 202.0
byte~ clrscr::$5 reg byte a 2002.0
byte~ clrscr::$6 reg byte a 2002.0
byte~ clrscr::$7 reg byte a 2002.0
byte~ clrscr::$9 reg byte a 202.0
byte clrscr::c
byte clrscr::c#1 reg byte y 20002.0
byte clrscr::c#2 reg byte y 7500.75
byte* clrscr::ch
byte clrscr::color
byte clrscr::color#0 color zp[1]:47 594.2352941176471
byte clrscr::l
byte clrscr::l#1 reg byte x 2002.0
byte clrscr::l#2 reg byte x 200.2
byte* clrscr::line_text
byte* clrscr::line_text#0 line_text zp[2]:61 18.363636363636363
byte* clrscr::line_text#1 line_text zp[2]:61 1001.0
byte* clrscr::line_text#2 line_text zp[2]:61 293.2142857142857
constant byte* conio_cursor_x[2] = { 0, 0 }
constant byte* conio_cursor_y[2] = { 0, 0 }
word conio_height loadstore zp[2]:35 5655.960451977401
constant word* conio_line_text[2] = { 0, 0 }
byte conio_rowshift loadstore zp[1]:37 5372340.984042553
word conio_rowskip loadstore zp[2]:38 4950995.574257425
volatile byte conio_screen_height loadstore zp[1]:31 71856.4491017964
byte conio_screen_layer loadstore zp[1]:32 1311340.679389313
volatile byte conio_screen_width loadstore zp[1]:30 4.960400993069307E7
constant byte* conio_scroll_enable[2] = { 1, 1 }
word conio_width loadstore zp[2]:33 112.31843575418995
void conio_x16_init()
constant byte* const conio_x16_init::BASIC_CURSOR_LINE = (byte*) 214
byte conio_x16_init::line
byte conio_x16_init::line#0 line zp[1]:2 2.1999999999999997
byte conio_x16_init::line#1 line zp[1]:2 22.0
byte conio_x16_init::line#3 line zp[1]:2 33.0
void cputc(byte cputc::c)
byte~ cputc::$15 reg byte a 20002.0
word~ cputc::$16 zp[2]:63 20002.0
byte~ cputc::$2 reg byte a 20002.0
byte~ cputc::$4 reg byte a 20002.0
byte~ cputc::$5 reg byte a 20002.0
byte~ cputc::$6 reg byte a 20002.0
byte cputc::c
byte cputc::c#0 c zp[1]:57 1235.4705882352941
byte cputc::color
byte cputc::color#0 reg byte x 1428.7142857142858
byte* cputc::conio_addr
byte* cputc::conio_addr#0 conio_addr zp[2]:61 10001.0
byte* cputc::conio_addr#1 conio_addr zp[2]:61 6000.6
byte cputc::scroll_enable
byte cputc::scroll_enable#0 reg byte a 20002.0
void cputln()
byte~ cputln::$2 reg byte a 200002.0
byte~ cputln::$3 reg byte a 200002.0
word cputln::temp
word cputln::temp#0 temp zp[2]:65 200002.0
word cputln::temp#1 temp zp[2]:65 100001.0
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:28 500.5
const byte* cputs::s#10 s zp[2]:28 101.0
const byte* cputs::s#9 s zp[2]:28 1552.0
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte~ gotoxy::$5 reg byte a 2.0000002E7
word~ gotoxy::$6 zp[2]:45 2.0000002E7
word gotoxy::line_offset
word gotoxy::line_offset#0 line_offset zp[2]:45 1.0000001E7
byte gotoxy::x
byte gotoxy::y
byte gotoxy::y#1 reg byte x 22.0
byte gotoxy::y#2 reg byte x 2000002.0
byte gotoxy::y#4 reg byte x 7000004.666666666
byte gotoxy::y#5 reg byte x 4000000.4
void insertup()
byte~ insertup::$3 reg byte a 2.000000002E9
byte insertup::cy
byte insertup::cy#0 cy zp[1]:67 8.416666683333334E7
byte insertup::i
byte insertup::i#1 reg byte x 2.000000002E9
byte insertup::i#2 reg byte x 4.444444448888889E8
word insertup::line
word insertup::line#0 line zp[2]:69 2.000000002E9
byte* insertup::start
byte* insertup::start#0 start zp[2]:69 1.000000001E9
byte insertup::width
byte insertup::width#0 width zp[1]:68 9.1818182E7
byte kbhit()
constant byte* const kbhit::GETIN = (byte*) 65508
constant byte* const kbhit::IN_DEV = (byte*) 650
volatile byte kbhit::ch loadstore zp[1]:58 1001.0
constant byte* const kbhit::chptr = &kbhit::ch
byte kbhit::return
byte kbhit::return#0 reg byte a 2002.0
byte kbhit::return#1 reg byte a 367.33333333333337
byte kbhit::return#2 reg byte a 202.0
void main()
byte~ main::$25 reg byte a 202.0
byte main::bgcolor1_color
byte main::c
byte main::c#1 c zp[1]:10 1501.5
byte main::c#2 c zp[1]:10 250.25
byte main::c1
byte main::c1#1 reg byte x 1501.5
byte main::c1#2 reg byte x 250.25
byte main::column
byte main::column#1 reg byte x 400.4
byte main::column#2 reg byte x 600.5999999999999
byte main::column1
byte main::column1#1 column1 zp[1]:12 400.4
byte main::column1#2 column1 zp[1]:12 600.5999999999999
byte main::p
byte main::p#1 reg byte x 1501.5
byte main::p#2 reg byte x 2002.0
byte main::r
byte main::r#1 r zp[1]:7 151.5
byte main::r#5 r zp[1]:7 16.833333333333332
byte main::r1
byte main::r1#1 r1 zp[1]:11 151.5
byte main::r1#5 r1 zp[1]:11 16.833333333333332
byte main::row
byte main::row#1 row zp[1]:6 67.33333333333333
byte main::row#11 row zp[1]:6 109.36363636363637
byte main::row#3 row zp[1]:6 67.33333333333333
byte main::row#9 row zp[1]:6 109.36363636363637
constant byte* main::s[$38] = "vera in tile mode 8 x 8, color depth 8 bits per pixel.
"
constant byte* main::s1[$3a] = "in this mode, tiles are 8 pixels wide and 8 pixels tall.
"
constant byte* main::s2[$2f] = "each tile can have a variation of 256 colors.
"
constant byte* main::s3[$44] = "the vera palette of 256 colors, can be used by setting the palette
"
constant byte* main::s4[$17] = "offset for each tile.
"
constant byte* main::s5[$4b] = "here each column is displaying the same tile, but with different offsets!
"
constant byte* main::s6[$3f] = "each offset aligns to multiples of 16 colors in the palette!.
"
constant byte* main::s7[$3e] = "however, the first color will always be transparent (black).
"
byte main::t
byte main::t#1 t zp[1]:5 151.5
byte main::t#5 t zp[1]:5 25.25
byte main::textcolor1_color
word main::tile
word main::tile#1 tile zp[2]:8 2002.0
word main::tile#10 tile zp[2]:8 202.0
word main::tile#11 tile zp[2]:8 202.0
word main::tile#12 tile zp[2]:8 350.5
word main::tile#13 tile zp[2]:8 350.5
word main::tile#4 tile zp[2]:8 2002.0
word main::tile#6 tile zp[2]:8 517.3333333333334
word main::tile#8 tile zp[2]:8 517.3333333333334
byte* main::tilebase
byte* main::tilebase#2 tilebase zp[2]:3 67.33333333333333
byte* main::tilebase#7 tilebase zp[2]:3 28.857142857142858
constant byte* main::tiles[$40] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
byte main::vera_layer_show1_layer
void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest , byte memcpy_in_vram::dest_increment , byte memcpy_in_vram::src_bank , void* memcpy_in_vram::src , byte memcpy_in_vram::src_increment , word memcpy_in_vram::num)
byte~ memcpy_in_vram::$0 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$1 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$3 reg byte a 2.0000000002E10
byte~ memcpy_in_vram::$4 reg byte a 2.0000000002E10
void* memcpy_in_vram::dest
void* memcpy_in_vram::dest#0 dest zp[2]:69 1.9090909093636363E9
byte memcpy_in_vram::dest_bank
byte memcpy_in_vram::dest_increment
word memcpy_in_vram::i
word memcpy_in_vram::i#1 i zp[2]:61 2.0000000000002E13
word memcpy_in_vram::i#2 i zp[2]:61 1.0000000000001E13
word memcpy_in_vram::num
word memcpy_in_vram::num#0 num zp[2]:71 5.882941176471765E11
void* memcpy_in_vram::src
byte* memcpy_in_vram::src#0 src zp[2]:73 1.6666666683333334E8
byte memcpy_in_vram::src_bank
byte memcpy_in_vram::src_increment
void memcpy_to_vram(byte memcpy_to_vram::vbank , void* memcpy_to_vram::vdest , void* memcpy_to_vram::src , word memcpy_to_vram::num)
byte~ memcpy_to_vram::$0 reg byte a 2002.0
byte~ memcpy_to_vram::$1 reg byte a 2002.0
byte* memcpy_to_vram::end
constant byte* memcpy_to_vram::end#0 end = (byte*)(void*)main::tiles+$40
word memcpy_to_vram::num
byte* memcpy_to_vram::s
byte* memcpy_to_vram::s#1 s zp[2]:28 200002.0
byte* memcpy_to_vram::s#2 s zp[2]:28 133334.66666666666
void* memcpy_to_vram::src
byte memcpy_to_vram::vbank
void* memcpy_to_vram::vdest
void* memcpy_to_vram::vdest#1 vdest zp[2]:61 202.0
void* memcpy_to_vram::vdest#2 vdest zp[2]:61 525.75
void screenlayer(byte screenlayer::layer)
word~ screenlayer::$2 zp[2]:59 202.0
byte~ screenlayer::$3 reg byte a 202.0
word~ screenlayer::$4 zp[2]:45 202.0
word~ screenlayer::$5 zp[2]:52 202.0
byte screenlayer::layer
constant byte screenlayer::layer#0 layer = 1
byte~ screenlayer::vera_layer_get_height1_$0 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$1 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$2 reg byte a 202.0
byte~ screenlayer::vera_layer_get_height1_$3 reg byte a 202.0
byte* screenlayer::vera_layer_get_height1_config
byte* screenlayer::vera_layer_get_height1_config#0 vera_layer_get_height1_config zp[2]:48 202.0
byte screenlayer::vera_layer_get_height1_layer
byte screenlayer::vera_layer_get_height1_layer#0 reg byte a 202.0
word screenlayer::vera_layer_get_height1_return
word screenlayer::vera_layer_get_height1_return#0 vera_layer_get_height1_return zp[2]:52 202.0
word screenlayer::vera_layer_get_height1_return#1 vera_layer_get_height1_return zp[2]:52 202.0
byte~ screenlayer::vera_layer_get_width1_$0 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$1 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$2 reg byte a 202.0
byte~ screenlayer::vera_layer_get_width1_$3 reg byte a 202.0
byte* screenlayer::vera_layer_get_width1_config
byte* screenlayer::vera_layer_get_width1_config#0 vera_layer_get_width1_config zp[2]:43 202.0
byte screenlayer::vera_layer_get_width1_layer
byte screenlayer::vera_layer_get_width1_layer#0 reg byte a 202.0
word screenlayer::vera_layer_get_width1_return
word screenlayer::vera_layer_get_width1_return#0 vera_layer_get_width1_return zp[2]:59 202.0
word screenlayer::vera_layer_get_width1_return#1 vera_layer_get_width1_return zp[2]:59 202.0
void screensize(byte* screensize::x , byte* screensize::y)
byte~ screensize::$1 reg byte a 202.0
byte~ screensize::$3 reg byte a 202.0
byte screensize::hscale
byte screensize::hscale#0 reg byte a 202.0
byte screensize::vscale
byte screensize::vscale#0 reg byte a 202.0
byte* screensize::x
constant byte* screensize::x#0 x = &conio_screen_width
byte* screensize::y
constant byte* screensize::y#0 y = &conio_screen_height
constant byte* vera_layer_backcolor[2] = { BLUE, BLUE }
constant byte** vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG }
constant byte* vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE }
byte vera_layer_get_backcolor(byte vera_layer_get_backcolor::layer)
byte vera_layer_get_backcolor::layer
byte vera_layer_get_backcolor::layer#0 reg byte x 1102.0
byte vera_layer_get_backcolor::return
byte vera_layer_get_backcolor::return#0 reg byte a 367.33333333333337
byte vera_layer_get_backcolor::return#2 reg byte a 202.0
byte vera_layer_get_color(byte vera_layer_get_color::layer)
byte~ vera_layer_get_color::$0 reg byte a 2.000000002E9
byte~ vera_layer_get_color::$1 reg byte a 2.000000002E9
byte~ vera_layer_get_color::$3 reg byte a 2.000000002E9
byte* vera_layer_get_color::addr
byte* vera_layer_get_color::addr#0 addr zp[2]:65 2.000000002E9
byte vera_layer_get_color::layer
byte vera_layer_get_color::layer#0 reg byte x 20002.0
byte vera_layer_get_color::layer#1 reg byte x 2.00000002E8
byte vera_layer_get_color::layer#2 reg byte x 6.833350010000001E8
byte vera_layer_get_color::return
byte vera_layer_get_color::return#0 reg byte a 2.000000002E9
byte vera_layer_get_color::return#1 reg byte a 2.000000002E9
byte vera_layer_get_color::return#2 reg byte a 5.25002501E8
byte vera_layer_get_color::return#3 reg byte a 20002.0
byte vera_layer_get_color::return#4 reg byte a 2.00000002E8
byte vera_layer_get_mapbase_bank(byte vera_layer_get_mapbase_bank::layer)
byte vera_layer_get_mapbase_bank::layer
byte vera_layer_get_mapbase_bank::layer#0 reg byte x 1102.0
byte vera_layer_get_mapbase_bank::return
byte vera_layer_get_mapbase_bank::return#0 reg byte a 367.33333333333337
byte vera_layer_get_mapbase_bank::return#2 reg byte a 202.0
word vera_layer_get_mapbase_offset(byte vera_layer_get_mapbase_offset::layer)
byte~ vera_layer_get_mapbase_offset::$0 reg byte a 2002.0
byte vera_layer_get_mapbase_offset::layer
byte vera_layer_get_mapbase_offset::layer#0 reg byte a 1102.0
word vera_layer_get_mapbase_offset::return
word vera_layer_get_mapbase_offset::return#0 return zp[2]:45 367.33333333333337
word vera_layer_get_mapbase_offset::return#2 return zp[2]:45 202.0
byte vera_layer_get_rowshift(byte vera_layer_get_rowshift::layer)
byte vera_layer_get_rowshift::layer
byte vera_layer_get_rowshift::layer#0 reg byte x 1102.0
byte vera_layer_get_rowshift::return
byte vera_layer_get_rowshift::return#0 reg byte a 367.33333333333337
byte vera_layer_get_rowshift::return#2 reg byte a 202.0
word vera_layer_get_rowskip(byte vera_layer_get_rowskip::layer)
byte~ vera_layer_get_rowskip::$0 reg byte a 2002.0
byte vera_layer_get_rowskip::layer
byte vera_layer_get_rowskip::layer#0 reg byte a 1102.0
word vera_layer_get_rowskip::return
word vera_layer_get_rowskip::return#0 return zp[2]:45 367.33333333333337
word vera_layer_get_rowskip::return#2 return zp[2]:45 202.0
byte vera_layer_get_textcolor(byte vera_layer_get_textcolor::layer)
byte vera_layer_get_textcolor::layer
byte vera_layer_get_textcolor::layer#0 reg byte x 1102.0
byte vera_layer_get_textcolor::return
byte vera_layer_get_textcolor::return#0 reg byte a 367.33333333333337
byte vera_layer_get_textcolor::return#2 reg byte a 202.0
constant const byte* vera_layer_hflip[2] = { 0, 4 }
constant byte** vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE }
void vera_layer_mode_text(byte vera_layer_mode_text::layer , dword vera_layer_mode_text::mapbase_address , dword vera_layer_mode_text::tilebase_address , word vera_layer_mode_text::mapwidth , word vera_layer_mode_text::mapheight , byte vera_layer_mode_text::tilewidth , byte vera_layer_mode_text::tileheight , word vera_layer_mode_text::color_mode)
word vera_layer_mode_text::color_mode
byte vera_layer_mode_text::layer
constant byte vera_layer_mode_text::layer#0 layer = 1
dword vera_layer_mode_text::mapbase_address
constant dword vera_layer_mode_text::mapbase_address#0 mapbase_address = 0
word vera_layer_mode_text::mapheight
constant word vera_layer_mode_text::mapheight#0 mapheight = $40
word vera_layer_mode_text::mapwidth
constant word vera_layer_mode_text::mapwidth#0 mapwidth = $80
dword vera_layer_mode_text::tilebase_address
constant dword vera_layer_mode_text::tilebase_address#0 tilebase_address = $f800
byte vera_layer_mode_text::tileheight
constant byte vera_layer_mode_text::tileheight#0 tileheight = 8
byte vera_layer_mode_text::tilewidth
constant byte vera_layer_mode_text::tilewidth#0 tilewidth = 8
void vera_layer_mode_tile(byte vera_layer_mode_tile::layer , dword vera_layer_mode_tile::mapbase_address , dword vera_layer_mode_tile::tilebase_address , word vera_layer_mode_tile::mapwidth , word vera_layer_mode_tile::mapheight , byte vera_layer_mode_tile::tilewidth , byte vera_layer_mode_tile::tileheight , byte vera_layer_mode_tile::color_depth)
word~ vera_layer_mode_tile::$1 zp[2]:48 1001.0
byte~ vera_layer_mode_tile::$11 reg byte a 2002.0
byte~ vera_layer_mode_tile::$12 reg byte a 2002.0
byte~ vera_layer_mode_tile::$13 reg byte a 2002.0
byte~ vera_layer_mode_tile::$14 reg byte a 2002.0
byte~ vera_layer_mode_tile::$17 zp[1]:50 250.25
byte~ vera_layer_mode_tile::$18 zp[1]:51 273.0
byte~ vera_layer_mode_tile::$2 reg byte a 2002.0
word~ vera_layer_mode_tile::$6 zp[2]:52 2002.0
byte~ vera_layer_mode_tile::$7 reg byte a 2002.0
byte vera_layer_mode_tile::color_depth
byte vera_layer_mode_tile::color_depth#2 reg byte x 1001.0
byte vera_layer_mode_tile::config
byte vera_layer_mode_tile::config#10 reg byte x 2002.0
byte vera_layer_mode_tile::config#11 reg byte x 2002.0
byte vera_layer_mode_tile::config#12 reg byte x 2002.0
byte vera_layer_mode_tile::config#17 reg byte x 625.625
byte vera_layer_mode_tile::config#21 reg byte x 2002.0000000000002
byte vera_layer_mode_tile::config#25 reg byte x 3003.0
byte vera_layer_mode_tile::config#6 reg byte x 500.5
byte vera_layer_mode_tile::config#7 reg byte x 500.5
byte vera_layer_mode_tile::config#8 reg byte x 500.5
byte vera_layer_mode_tile::layer
byte vera_layer_mode_tile::layer#10 layer zp[1]:13 227.49999999999994
byte vera_layer_mode_tile::mapbase
byte vera_layer_mode_tile::mapbase#0 reg byte x 1001.0
dword vera_layer_mode_tile::mapbase_address
dword vera_layer_mode_tile::mapbase_address#0 mapbase_address zp[4]:14 2002.0
dword vera_layer_mode_tile::mapbase_address#10 mapbase_address zp[4]:14 88.97777777777777
word vera_layer_mode_tile::mapheight
word vera_layer_mode_tile::mapheight#10 mapheight zp[2]:43 133.46666666666667
word vera_layer_mode_tile::mapwidth
word vera_layer_mode_tile::mapwidth#10 mapwidth zp[2]:45 400.4
byte vera_layer_mode_tile::tilebase
byte vera_layer_mode_tile::tilebase#0 reg byte a 2002.0
byte vera_layer_mode_tile::tilebase#1 reg byte x 1334.6666666666667
byte vera_layer_mode_tile::tilebase#10 reg byte x 2002.0
byte vera_layer_mode_tile::tilebase#12 reg byte x 2002.0000000000002
byte vera_layer_mode_tile::tilebase#3 reg byte x 2002.0
byte vera_layer_mode_tile::tilebase#5 reg byte x 2002.0
dword vera_layer_mode_tile::tilebase_address
dword vera_layer_mode_tile::tilebase_address#0 tilebase_address zp[4]:18 2002.0
dword vera_layer_mode_tile::tilebase_address#10 tilebase_address zp[4]:18 72.8
byte vera_layer_mode_tile::tileheight
byte vera_layer_mode_tile::tileheight#10 tileheight zp[1]:23 31.77777777777778
byte vera_layer_mode_tile::tilewidth
byte vera_layer_mode_tile::tilewidth#10 tilewidth zp[1]:22 33.932203389830505
constant byte* vera_layer_rowshift[2] = { 0, 0 }
constant word* vera_layer_rowskip[2] = { 0, 0 }
byte vera_layer_set_backcolor(byte vera_layer_set_backcolor::layer , byte vera_layer_set_backcolor::color)
byte vera_layer_set_backcolor::color
byte vera_layer_set_backcolor::color#2 reg byte a 101.0
byte vera_layer_set_backcolor::layer
byte vera_layer_set_backcolor::layer#1 reg byte x 22.0
byte vera_layer_set_backcolor::layer#2 reg byte x 112.0
byte vera_layer_set_backcolor::old
byte vera_layer_set_backcolor::return
void vera_layer_set_config(byte vera_layer_set_config::layer , byte vera_layer_set_config::config)
byte~ vera_layer_set_config::$0 reg byte a 20002.0
byte* vera_layer_set_config::addr
byte* vera_layer_set_config::addr#0 addr zp[2]:59 20002.0
byte vera_layer_set_config::config
byte vera_layer_set_config::config#0 reg byte x 3667.333333333333
byte vera_layer_set_config::layer
byte vera_layer_set_config::layer#0 reg byte a 5501.0
void vera_layer_set_mapbase(byte vera_layer_set_mapbase::layer , byte vera_layer_set_mapbase::mapbase)
byte~ vera_layer_set_mapbase::$0 reg byte a 20002.0
byte* vera_layer_set_mapbase::addr
byte* vera_layer_set_mapbase::addr#0 addr zp[2]:59 20002.0
byte vera_layer_set_mapbase::layer
byte vera_layer_set_mapbase::layer#0 reg byte a 1001.0
byte vera_layer_set_mapbase::layer#3 reg byte a 11002.0
byte vera_layer_set_mapbase::mapbase
byte vera_layer_set_mapbase::mapbase#0 reg byte x 2002.0
byte vera_layer_set_mapbase::mapbase#3 reg byte x 3667.333333333333
void vera_layer_set_text_color_mode(byte vera_layer_set_text_color_mode::layer , byte vera_layer_set_text_color_mode::color_mode)
byte* vera_layer_set_text_color_mode::addr
byte* vera_layer_set_text_color_mode::addr#0 addr zp[2]:59 2502.5
byte vera_layer_set_text_color_mode::color_mode
byte vera_layer_set_text_color_mode::layer
byte vera_layer_set_textcolor(byte vera_layer_set_textcolor::layer , byte vera_layer_set_textcolor::color)
byte vera_layer_set_textcolor::color
byte vera_layer_set_textcolor::layer
byte vera_layer_set_textcolor::layer#1 reg byte x 22.0
byte vera_layer_set_textcolor::layer#2 reg byte x 112.0
byte vera_layer_set_textcolor::old
byte vera_layer_set_textcolor::return
void vera_layer_set_tilebase(byte vera_layer_set_tilebase::layer , byte vera_layer_set_tilebase::tilebase)
byte~ vera_layer_set_tilebase::$0 reg byte a 20002.0
byte* vera_layer_set_tilebase::addr
byte* vera_layer_set_tilebase::addr#0 addr zp[2]:59 20002.0
byte vera_layer_set_tilebase::layer
byte vera_layer_set_tilebase::layer#0 reg byte a 5501.0
byte vera_layer_set_tilebase::tilebase
byte vera_layer_set_tilebase::tilebase#0 reg byte x 3667.333333333333
constant byte* vera_layer_textcolor[2] = { WHITE, WHITE }
constant byte** vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE }
constant const byte* vera_layer_vflip[2] = { 0, 8 }
constant dword* vera_mapbase_address[2] = { 0, 0 }
constant byte* vera_mapbase_bank[2] = { 0, 0 }
constant word* vera_mapbase_offset[2] = { 0, 0 }
void vera_tile_area(byte vera_tile_area::layer , word vera_tile_area::tileindex , byte vera_tile_area::x , byte vera_tile_area::y , byte vera_tile_area::w , byte vera_tile_area::h , byte vera_tile_area::hflip , byte vera_tile_area::vflip , byte vera_tile_area::offset)
word~ vera_tile_area::$10 zp[2]:63 20002.0
word~ vera_tile_area::$4 zp[2]:63 20002.0
byte~ vera_tile_area::$5 reg byte a 20002.0
byte vera_tile_area::c
byte vera_tile_area::c#1 reg byte y 2.00000002E8
byte vera_tile_area::c#2 reg byte y 7.500000075E7
byte vera_tile_area::h
byte vera_tile_area::h#4 h zp[1]:47 312500.03125
byte vera_tile_area::hflip
byte vera_tile_area::hflip#0 hflip zp[1]:54 5000.5
byte vera_tile_area::index_h
byte vera_tile_area::index_h#0 reg byte a 20002.0
byte vera_tile_area::index_h#1 reg byte a 20002.0
byte vera_tile_area::index_h#2 index_h zp[1]:55 4348260.956521738
byte vera_tile_area::index_l
byte vera_tile_area::index_l#0 index_l zp[1]:56 3846538.5384615385
byte vera_tile_area::layer
dword vera_tile_area::mapbase
dword vera_tile_area::mapbase#0 mapbase zp[4]:24 1818.3636363636363
dword vera_tile_area::mapbase#1 mapbase zp[4]:24 10001.0
dword vera_tile_area::mapbase#10 mapbase zp[4]:24 3334000.4
dword vera_tile_area::mapbase#2 mapbase zp[4]:24 20002.0
dword vera_tile_area::mapbase#3 mapbase zp[4]:24 1.0000001E7
byte vera_tile_area::offset
byte vera_tile_area::r
byte vera_tile_area::r#1 r zp[1]:67 2.0000002E7
byte vera_tile_area::r#2 r zp[1]:67 1875000.1875
word vera_tile_area::rowskip
word vera_tile_area::rowskip#0 rowskip zp[2]:61 345172.4827586207
byte vera_tile_area::shift
byte vera_tile_area::shift#0 shift zp[1]:68 3333.6666666666665
word vera_tile_area::tileindex
word vera_tile_area::tileindex#1 tileindex zp[2]:8 667.3333333333334
word vera_tile_area::tileindex#2 tileindex zp[2]:8 667.3333333333334
word vera_tile_area::tileindex#3 tileindex zp[2]:8 3143.4285714285716
byte~ vera_tile_area::vera_vram_address01_$0 reg byte a 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$1 reg byte a 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$2 reg byte a 2.0000002E7
byte~ vera_tile_area::vera_vram_address01_$3 reg byte a 2.0000002E7
dword vera_tile_area::vera_vram_address01_bankaddr
byte vera_tile_area::vera_vram_address01_incr
byte vera_tile_area::vflip
byte vera_tile_area::vflip#0 vflip zp[1]:55 5000.5
byte vera_tile_area::w
byte vera_tile_area::w#9 w zp[1]:57 3125000.03125
byte vera_tile_area::x
byte vera_tile_area::x#1 x zp[1]:12 1001.0
byte vera_tile_area::x#2 x zp[1]:12 1001.0
byte vera_tile_area::x#3 x zp[1]:12 923.3076923076923
byte vera_tile_area::y
byte vera_tile_area::y#1 y zp[1]:6 2002.0
byte vera_tile_area::y#2 y zp[1]:6 2002.0
byte vera_tile_area::y#3 y zp[1]:6 200.2
constant dword* vera_tilebase_address[2] = { 0, 0 }
constant byte* vera_tilebase_bank[2] = { 0, 0 }
constant word* vera_tilebase_offset[2] = { 0, 0 }
zp[1]:2 [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ]
zp[2]:3 [ main::tilebase#7 main::tilebase#2 ]
zp[1]:5 [ main::t#5 main::t#1 ]
reg byte x [ main::p#2 main::p#1 ]
zp[1]:6 [ main::row#9 main::row#1 vera_tile_area::y#3 vera_tile_area::y#2 vera_tile_area::y#1 main::row#11 main::row#3 ]
zp[1]:7 [ main::r#5 main::r#1 ]
zp[2]:8 [ main::tile#6 main::tile#10 main::tile#12 main::tile#1 vera_tile_area::tileindex#3 vera_tile_area::tileindex#2 vera_tile_area::tileindex#1 main::tile#8 main::tile#11 main::tile#13 main::tile#4 ]
reg byte x [ main::column#2 main::column#1 ]
zp[1]:10 [ main::c#2 main::c#1 ]
zp[1]:11 [ main::r1#5 main::r1#1 ]
zp[1]:12 [ main::column1#2 main::column1#1 vera_tile_area::x#3 vera_tile_area::x#2 vera_tile_area::x#1 ]
reg byte x [ main::c1#2 main::c1#1 ]
reg byte x [ vera_layer_set_textcolor::layer#2 vera_layer_set_textcolor::layer#1 ]
reg byte x [ vera_layer_set_backcolor::layer#2 vera_layer_set_backcolor::layer#1 ]
reg byte a [ vera_layer_set_backcolor::color#2 ]
reg byte a [ vera_layer_set_mapbase::layer#3 vera_layer_set_mapbase::layer#0 ]
reg byte x [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ]
reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 gotoxy::y#2 ]
reg byte x [ clrscr::l#2 clrscr::l#1 ]
reg byte y [ clrscr::c#2 clrscr::c#1 ]
reg byte x [ vera_layer_mode_tile::color_depth#2 ]
zp[1]:13 [ vera_layer_mode_tile::layer#10 ]
zp[4]:14 [ vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::mapbase_address#0 ]
zp[4]:18 [ vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilebase_address#0 ]
zp[1]:22 [ vera_layer_mode_tile::tilewidth#10 ]
zp[1]:23 [ vera_layer_mode_tile::tileheight#10 ]
reg byte x [ vera_layer_mode_tile::config#25 vera_layer_mode_tile::config#21 vera_layer_mode_tile::config#17 vera_layer_mode_tile::config#6 vera_layer_mode_tile::config#7 vera_layer_mode_tile::config#8 vera_layer_mode_tile::config#10 vera_layer_mode_tile::config#11 vera_layer_mode_tile::config#12 ]
reg byte x [ vera_layer_mode_tile::tilebase#10 vera_layer_mode_tile::tilebase#12 vera_layer_mode_tile::tilebase#1 vera_layer_mode_tile::tilebase#3 vera_layer_mode_tile::tilebase#5 ]
zp[4]:24 [ vera_tile_area::mapbase#10 vera_tile_area::mapbase#2 vera_tile_area::mapbase#3 vera_tile_area::mapbase#1 vera_tile_area::mapbase#0 ]
reg byte y [ vera_tile_area::c#2 vera_tile_area::c#1 ]
zp[2]:28 [ cputs::s#9 cputs::s#10 cputs::s#0 memcpy_to_vram::s#2 memcpy_to_vram::s#1 ]
reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ]
reg byte a [ vera_layer_get_color::return#2 vera_layer_get_color::return#0 vera_layer_get_color::return#1 ]
reg byte x [ insertup::i#2 insertup::i#1 ]
zp[1]:30 [ conio_screen_width ]
zp[1]:31 [ conio_screen_height ]
zp[1]:32 [ conio_screen_layer ]
zp[2]:33 [ conio_width ]
zp[2]:35 [ conio_height ]
zp[1]:37 [ conio_rowshift ]
zp[2]:38 [ conio_rowskip ]
reg byte a [ kbhit::return#2 ]
reg byte a [ main::$25 ]
reg byte a [ screensize::hscale#0 ]
reg byte a [ screensize::$1 ]
reg byte a [ screensize::vscale#0 ]
reg byte a [ screensize::$3 ]
reg byte x [ vera_layer_get_mapbase_bank::layer#0 ]
reg byte a [ vera_layer_get_mapbase_bank::return#2 ]
zp[1]:40 [ CONIO_SCREEN_BANK#11 ]
reg byte a [ vera_layer_get_mapbase_offset::layer#0 ]
zp[2]:41 [ CONIO_SCREEN_TEXT#13 ]
reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ]
reg byte a [ screenlayer::vera_layer_get_width1_$2 ]
zp[2]:43 [ screenlayer::vera_layer_get_width1_config#0 vera_layer_mode_tile::mapheight#10 ]
reg byte a [ screenlayer::vera_layer_get_width1_$0 ]
reg byte a [ screenlayer::vera_layer_get_width1_$1 ]
reg byte a [ screenlayer::vera_layer_get_width1_$3 ]
reg byte x [ vera_layer_get_rowshift::layer#0 ]
reg byte a [ vera_layer_get_rowshift::return#2 ]
reg byte a [ screenlayer::$3 ]
reg byte a [ vera_layer_get_rowskip::layer#0 ]
reg byte a [ screenlayer::vera_layer_get_height1_layer#0 ]
reg byte a [ screenlayer::vera_layer_get_height1_$2 ]
reg byte a [ screenlayer::vera_layer_get_height1_$0 ]
reg byte a [ screenlayer::vera_layer_get_height1_$1 ]
reg byte a [ screenlayer::vera_layer_get_height1_$3 ]
reg byte a [ vera_layer_set_mapbase::$0 ]
zp[2]:45 [ gotoxy::$6 gotoxy::line_offset#0 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 vera_layer_mode_tile::mapwidth#10 ]
reg byte a [ gotoxy::$5 ]
reg byte x [ vera_layer_get_backcolor::layer#0 ]
reg byte a [ vera_layer_get_backcolor::return#2 ]
reg byte a [ clrscr::$0 ]
zp[1]:47 [ clrscr::$1 clrscr::color#0 vera_tile_area::h#4 ]
reg byte x [ vera_layer_get_textcolor::layer#0 ]
reg byte a [ vera_layer_get_textcolor::return#2 ]
reg byte a [ clrscr::$2 ]
reg byte a [ clrscr::$9 ]
reg byte a [ clrscr::$5 ]
reg byte a [ clrscr::$6 ]
reg byte a [ clrscr::$7 ]
reg byte a [ vera_layer_mode_tile::$14 ]
reg byte a [ vera_layer_set_config::layer#0 ]
reg byte x [ vera_layer_set_config::config#0 ]
zp[2]:48 [ vera_layer_mode_tile::$1 screenlayer::vera_layer_get_height1_config#0 ]
zp[1]:50 [ vera_layer_mode_tile::$17 ]
reg byte a [ vera_layer_mode_tile::$2 ]
zp[1]:51 [ vera_layer_mode_tile::$18 ]
reg byte x [ vera_layer_mode_tile::mapbase#0 ]
zp[2]:52 [ vera_layer_mode_tile::$6 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ]
reg byte a [ vera_layer_mode_tile::$7 ]
reg byte a [ vera_layer_mode_tile::tilebase#0 ]
reg byte a [ vera_layer_set_tilebase::layer#0 ]
reg byte x [ vera_layer_set_tilebase::tilebase#0 ]
reg byte a [ vera_layer_mode_tile::$13 ]
reg byte a [ vera_layer_mode_tile::$12 ]
reg byte a [ vera_layer_mode_tile::$11 ]
reg byte a [ memcpy_to_vram::$0 ]
reg byte a [ memcpy_to_vram::$1 ]
zp[1]:54 [ vera_tile_area::hflip#0 ]
zp[1]:55 [ vera_tile_area::vflip#0 vera_tile_area::index_h#2 ]
zp[1]:56 [ vera_tile_area::index_l#0 ]
reg byte a [ vera_tile_area::index_h#0 ]
reg byte a [ vera_tile_area::index_h#1 ]
reg byte a [ vera_tile_area::$5 ]
reg byte a [ vera_tile_area::vera_vram_address01_$0 ]
reg byte a [ vera_tile_area::vera_vram_address01_$1 ]
reg byte a [ vera_tile_area::vera_vram_address01_$2 ]
reg byte a [ vera_tile_area::vera_vram_address01_$3 ]
reg byte a [ cputs::c#1 ]
zp[1]:57 [ cputc::c#0 vera_tile_area::w#9 ]
zp[1]:58 [ kbhit::ch ]
reg byte a [ kbhit::return#0 ]
reg byte a [ kbhit::return#1 ]
reg byte a [ vera_layer_get_mapbase_bank::return#0 ]
reg byte a [ vera_layer_get_mapbase_offset::$0 ]
reg byte a [ vera_layer_get_rowshift::return#0 ]
reg byte a [ vera_layer_get_rowskip::$0 ]
reg byte a [ vera_layer_get_backcolor::return#0 ]
reg byte a [ vera_layer_get_textcolor::return#0 ]
reg byte a [ vera_layer_set_config::$0 ]
reg byte a [ vera_layer_set_tilebase::$0 ]
zp[2]:59 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_text_color_mode::addr#0 vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 ]
reg byte a [ vera_layer_get_color::return#3 ]
reg byte x [ cputc::color#0 ]
reg byte a [ cputc::$15 ]
zp[2]:61 [ cputc::conio_addr#0 cputc::conio_addr#1 vera_tile_area::rowskip#0 memcpy_in_vram::i#2 memcpy_in_vram::i#1 clearline::c#2 clearline::c#1 memcpy_to_vram::vdest#2 memcpy_to_vram::vdest#1 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ]
reg byte a [ cputc::$2 ]
reg byte a [ cputc::$4 ]
reg byte a [ cputc::$5 ]
reg byte a [ cputc::$6 ]
reg byte a [ cputc::scroll_enable#0 ]
zp[2]:63 [ cputc::$16 vera_tile_area::$10 vera_tile_area::$4 ]
reg byte a [ vera_layer_get_color::$3 ]
reg byte a [ vera_layer_get_color::$0 ]
reg byte a [ vera_layer_get_color::$1 ]
reg byte a [ cputln::$2 ]
zp[2]:65 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 ]
reg byte a [ cputln::$3 ]
zp[1]:67 [ insertup::cy#0 vera_tile_area::r#2 vera_tile_area::r#1 ]
zp[1]:68 [ insertup::width#0 vera_tile_area::shift#0 ]
reg byte a [ insertup::$3 ]
zp[2]:69 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 ]
zp[2]:71 [ memcpy_in_vram::num#0 ]
reg byte a [ clearline::$5 ]
zp[2]:73 [ clearline::addr#0 memcpy_in_vram::src#0 ]
reg byte a [ clearline::$1 ]
reg byte a [ clearline::$2 ]
reg byte a [ vera_layer_get_color::return#4 ]
reg byte x [ clearline::color#0 ]
reg byte a [ memcpy_in_vram::$0 ]
reg byte a [ memcpy_in_vram::$1 ]
reg byte a [ memcpy_in_vram::$3 ]
reg byte a [ memcpy_in_vram::$4 ]