mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-27 04:49:27 +00:00
Implemented test simulating a struct.
This commit is contained in:
parent
5da972b5b2
commit
27444f7c7d
5
src/main/fragment/_deref_pptz1=_ptr_vbuaa.asm
Normal file
5
src/main/fragment/_deref_pptz1=_ptr_vbuaa.asm
Normal file
@ -0,0 +1,5 @@
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
tya
|
||||
iny
|
||||
sta ({z1}),y
|
5
src/main/fragment/_deref_pwuz1=vbuaa.asm
Normal file
5
src/main/fragment/_deref_pwuz1=vbuaa.asm
Normal file
@ -0,0 +1,5 @@
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
tya
|
||||
iny
|
||||
sta ({z1}),y
|
6
src/main/fragment/_deref_pwuz1=vwuc1.asm
Normal file
6
src/main/fragment/_deref_pwuz1=vwuc1.asm
Normal file
@ -0,0 +1,6 @@
|
||||
ldy #0
|
||||
lda #<{c1}
|
||||
sta ({z1}),y
|
||||
iny
|
||||
lda #>{c1}
|
||||
sta ({z1}),y
|
6
src/main/fragment/pbuz1=_deref_pptz2.asm
Normal file
6
src/main/fragment/pbuz1=_deref_pptz2.asm
Normal file
@ -0,0 +1,6 @@
|
||||
ldy #0
|
||||
lda ({z2}),y
|
||||
sta {z1}
|
||||
iny
|
||||
lda ({z2}),y
|
||||
sta {z1}+1
|
7
src/main/fragment/pbuz1=pbuz2_plus_2.asm
Normal file
7
src/main/fragment/pbuz1=pbuz2_plus_2.asm
Normal file
@ -0,0 +1,7 @@
|
||||
lda {z2}
|
||||
clc
|
||||
adc #2
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc #0
|
||||
sta {z1}+1
|
1
src/main/fragment/pptz1=_ptr_pbuz1.asm
Normal file
1
src/main/fragment/pptz1=_ptr_pbuz1.asm
Normal file
@ -0,0 +1 @@
|
||||
// Do nothing
|
4
src/main/fragment/pptz1=_ptr_pbuz2.asm
Normal file
4
src/main/fragment/pptz1=_ptr_pbuz2.asm
Normal file
@ -0,0 +1,4 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
1
src/main/fragment/pwuz1=_ptr_pbuz1.asm
Normal file
1
src/main/fragment/pwuz1=_ptr_pbuz1.asm
Normal file
@ -0,0 +1 @@
|
||||
// Do nothing
|
4
src/main/fragment/pwuz1=_ptr_pbuz2.asm
Normal file
4
src/main/fragment/pwuz1=_ptr_pbuz2.asm
Normal file
@ -0,0 +1,4 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
2
src/main/fragment/vbuaa=_hi__deref_pwuz1.asm
Normal file
2
src/main/fragment/vbuaa=_hi__deref_pwuz1.asm
Normal file
@ -0,0 +1,2 @@
|
||||
ldy #1
|
||||
lda ({z1}),y
|
2
src/main/fragment/vbuaa=_lo__deref_pwuz1.asm
Normal file
2
src/main/fragment/vbuaa=_lo__deref_pwuz1.asm
Normal file
@ -0,0 +1,2 @@
|
||||
ldy #0
|
||||
lda ({z1}),y
|
@ -37,6 +37,11 @@ public class TestPrograms {
|
||||
// compileAndCompare("pointer-cast-3");
|
||||
//}
|
||||
|
||||
@Test
|
||||
public void testSemiStruct2() throws IOException, URISyntaxException {
|
||||
compileAndCompare("semi-struct-2");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReserveZpGlobal() throws IOException, URISyntaxException {
|
||||
compileAndCompare("reserve-zp-global");
|
||||
|
186
src/test/kc/semi-struct-2.kc
Normal file
186
src/test/kc/semi-struct-2.kc
Normal file
@ -0,0 +1,186 @@
|
||||
// Implementing a semi-struct without the struct keyword by using pointer math and inline functions
|
||||
//
|
||||
// struct fileentry {
|
||||
// BYTE *bufDisk; // file position in disk buffer.
|
||||
// BYTE *bufEdit; // file edits
|
||||
// WORD tsLen; // num of sectors
|
||||
// TS *tsOrder;
|
||||
// BYTE tLastLink;
|
||||
// BYTE sLastLink;
|
||||
// BYTE bFlag;
|
||||
// BYTE bError;
|
||||
// WORD uCross; // num of crosslinked sectors
|
||||
// BYTE bAddrLo; // start address
|
||||
// BYTE bAddrHi;
|
||||
// BYTE tHi; // highest track
|
||||
// BYTE tLo; // lowest track
|
||||
// };
|
||||
// typedef struct fileentry ENTRY;
|
||||
// ENTRY files[MAX_FILES];
|
||||
|
||||
import "multiply"
|
||||
import "print"
|
||||
import "keyboard"
|
||||
|
||||
// The size of a file ENTRY
|
||||
const byte ENTRY_SIZE = 18;
|
||||
|
||||
// The maximal number of files
|
||||
const byte MAX_FILES = 144;
|
||||
|
||||
// All files
|
||||
byte[(word)MAX_FILES*ENTRY_SIZE] files;
|
||||
|
||||
// Get pointer to a numbered file entry in the files-table
|
||||
inline byte* fileEntry(byte idx) {
|
||||
return files+mul8u(idx, ENTRY_SIZE);
|
||||
}
|
||||
|
||||
// Get file position in disk buffer.
|
||||
inline byte** entryBufDisk(byte* entry) {
|
||||
return (byte**)(entry+0);
|
||||
}
|
||||
|
||||
// Get file edits
|
||||
inline byte** entryBufEdit(byte* entry) {
|
||||
return (byte**)(entry+2);
|
||||
}
|
||||
|
||||
// Get number of sectors
|
||||
inline word* entryTsLen(byte* entry) {
|
||||
return (word*)(entry+4);
|
||||
}
|
||||
|
||||
inline word** entryTsOrder(byte* entry) {
|
||||
return (word**)(entry+6);
|
||||
}
|
||||
|
||||
inline byte* entryTLastLink(byte* entry) {
|
||||
return (entry+8);
|
||||
}
|
||||
|
||||
inline byte* entrySLastLink(byte* entry) {
|
||||
return (entry+9);
|
||||
}
|
||||
|
||||
inline byte* entryBFlag(byte* entry) {
|
||||
return (entry+10);
|
||||
}
|
||||
|
||||
inline byte* entryBError(byte* entry) {
|
||||
return (entry+11);
|
||||
}
|
||||
|
||||
// Get num of crosslinked sectors
|
||||
inline word* entryUCross(byte* entry) {
|
||||
return (word*)(entry+12);
|
||||
}
|
||||
|
||||
// Get start address low byte
|
||||
inline byte* entryBAddrLo(byte* entry) {
|
||||
return (entry+14);
|
||||
}
|
||||
|
||||
// Get start address high byte
|
||||
inline byte* entryBAddrHi(byte* entry) {
|
||||
return (entry+15);
|
||||
}
|
||||
|
||||
// Get highest track
|
||||
inline byte* entryTHi(byte* entry) {
|
||||
return (entry+16);
|
||||
}
|
||||
|
||||
// Get lowest track
|
||||
inline byte* entryTLo(byte* entry) {
|
||||
return (entry+17);
|
||||
}
|
||||
|
||||
// Initialize 2 file entries and print them
|
||||
void main() {
|
||||
keyboard_init();
|
||||
byte* entry1 = fileEntry(1);
|
||||
byte* entry2 = fileEntry(2);
|
||||
initEntry(entry1,$00);
|
||||
initEntry(entry2,$80);
|
||||
print_cls();
|
||||
print_str("** entry 1 **");
|
||||
print_ln();
|
||||
print_ln();
|
||||
printEntry(entry1);
|
||||
print_ln();
|
||||
print_str("- press space -");
|
||||
while(keyboard_key_pressed(KEY_SPACE)==0) {}
|
||||
print_cls();
|
||||
print_str("** entry 2 **");
|
||||
print_ln();
|
||||
print_ln();
|
||||
printEntry(entry2);
|
||||
print_ln();
|
||||
print_str("- press space -");
|
||||
while(keyboard_key_pressed(KEY_SPACE)==0) {}
|
||||
print_cls();
|
||||
}
|
||||
|
||||
// Set all values in the passed struct
|
||||
// Sets the values to n, n+1, n... to help test that everything works as intended
|
||||
void initEntry(byte* entry, byte n) {
|
||||
*entryBufDisk(entry) = n+1;
|
||||
*entryBufEdit(entry) = n+2;
|
||||
*entryTsLen(entry) = n+3;
|
||||
*entryTsOrder(entry) = n+4;
|
||||
*entryTLastLink(entry) = n+5;
|
||||
*entrySLastLink(entry) = n+6;
|
||||
*entryBFlag(entry) = n+7;
|
||||
*entryBError(entry) = n+8;
|
||||
*entryUCross(entry) = n+9;
|
||||
*entryBAddrLo(entry) = n+10;
|
||||
*entryBAddrHi(entry) = n+11;
|
||||
*entryTHi(entry) = n+12;
|
||||
*entryTLo(entry) = n+13;
|
||||
}
|
||||
|
||||
// Print the contents of a file entry
|
||||
void printEntry(byte* entry) {
|
||||
print_str("bufdisk ");
|
||||
print_word((word)*entryBufDisk(entry));
|
||||
print_ln();
|
||||
print_str("bufedit ");
|
||||
print_word((word)*entryBufEdit(entry));
|
||||
print_ln();
|
||||
print_str("tslen ");
|
||||
print_word(*entryTsLen(entry));
|
||||
print_ln();
|
||||
print_str("tsorder ");
|
||||
print_word((word)*entryTsOrder(entry));
|
||||
print_ln();
|
||||
print_str("tlastlink ");
|
||||
print_byte(*entryTLastLink(entry));
|
||||
print_ln();
|
||||
print_str("slastlink ");
|
||||
print_byte(*entrySLastLink(entry));
|
||||
print_ln();
|
||||
print_str("bflag ");
|
||||
print_byte(*entryBFlag(entry));
|
||||
print_ln();
|
||||
print_str("berror ");
|
||||
print_byte(*entryBError(entry));
|
||||
print_ln();
|
||||
print_str("ucross ");
|
||||
print_word(*entryUCross(entry));
|
||||
print_ln();
|
||||
print_str("baddrlo ");
|
||||
print_byte(*entryBAddrLo(entry));
|
||||
print_ln();
|
||||
print_str("baddrhi ");
|
||||
print_byte(*entryBAddrHi(entry));
|
||||
print_ln();
|
||||
print_str("thi ");
|
||||
print_byte(*entryTHi(entry));
|
||||
print_ln();
|
||||
print_str("tlo ");
|
||||
print_byte(*entryTLo(entry));
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
961
src/test/ref/semi-struct-2.asm
Normal file
961
src/test/ref/semi-struct-2.asm
Normal file
@ -0,0 +1,961 @@
|
||||
// Implementing a semi-struct without the struct keyword by using pointer math and inline functions
|
||||
//
|
||||
// struct fileentry {
|
||||
// BYTE *bufDisk; // file position in disk buffer.
|
||||
// BYTE *bufEdit; // file edits
|
||||
// WORD tsLen; // num of sectors
|
||||
// TS *tsOrder;
|
||||
// BYTE tLastLink;
|
||||
// BYTE sLastLink;
|
||||
// BYTE bFlag;
|
||||
// BYTE bError;
|
||||
// WORD uCross; // num of crosslinked sectors
|
||||
// BYTE bAddrLo; // start address
|
||||
// BYTE bAddrHi;
|
||||
// BYTE tHi; // highest track
|
||||
// BYTE tLo; // lowest track
|
||||
// };
|
||||
// typedef struct fileentry ENTRY;
|
||||
// ENTRY files[MAX_FILES];
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
// CIA#1 Port A: keyboard matrix columns and joystick #2
|
||||
.label CIA1_PORT_A = $dc00
|
||||
// CIA#1 Port B: keyboard matrix rows and joystick #1.
|
||||
.label CIA1_PORT_B = $dc01
|
||||
// CIA #1 Port A data direction register.
|
||||
.label CIA1_PORT_A_DDR = $dc02
|
||||
// CIA #1 Port B data direction register.
|
||||
.label CIA1_PORT_B_DDR = $dc03
|
||||
.const KEY_SPACE = $3c
|
||||
// The size of a file ENTRY
|
||||
.const ENTRY_SIZE = $12
|
||||
// The maximal number of files
|
||||
.const MAX_FILES = $90
|
||||
.label print_char_cursor = 6
|
||||
.label print_line_cursor = $b
|
||||
.label print_line_cursor_32 = 2
|
||||
.label print_line_cursor_63 = 2
|
||||
.label print_line_cursor_159 = 2
|
||||
.label print_line_cursor_160 = 2
|
||||
.label print_line_cursor_161 = 2
|
||||
.label print_line_cursor_162 = 2
|
||||
.label print_line_cursor_163 = 2
|
||||
.label print_line_cursor_164 = 2
|
||||
.label print_line_cursor_165 = 2
|
||||
.label print_line_cursor_166 = 2
|
||||
.label print_line_cursor_167 = 2
|
||||
.label print_line_cursor_168 = 2
|
||||
.label print_line_cursor_169 = 2
|
||||
.label print_line_cursor_170 = 2
|
||||
.label print_line_cursor_171 = 2
|
||||
.label print_line_cursor_172 = 2
|
||||
.label print_line_cursor_173 = 2
|
||||
.label print_line_cursor_174 = 2
|
||||
.label print_line_cursor_175 = 2
|
||||
.label print_line_cursor_177 = 2
|
||||
// Initialize 2 file entries and print them
|
||||
main: {
|
||||
.const fileEntry1_idx = 1
|
||||
.const fileEntry2_idx = 2
|
||||
.label fileEntry1__0 = 4
|
||||
.label entry1 = 4
|
||||
.label fileEntry2__0 = 9
|
||||
.label entry2 = 9
|
||||
jsr keyboard_init
|
||||
ldx #fileEntry1_idx
|
||||
jsr mul8u
|
||||
lda mul8u.return
|
||||
sta fileEntry1__0
|
||||
lda mul8u.return+1
|
||||
sta fileEntry1__0+1
|
||||
clc
|
||||
lda entry1
|
||||
adc #<files
|
||||
sta entry1
|
||||
lda entry1+1
|
||||
adc #>files
|
||||
sta entry1+1
|
||||
ldx #fileEntry2_idx
|
||||
jsr mul8u
|
||||
clc
|
||||
lda entry2
|
||||
adc #<files
|
||||
sta entry2
|
||||
lda entry2+1
|
||||
adc #>files
|
||||
sta entry2+1
|
||||
lda entry1
|
||||
sta initEntry.entry
|
||||
lda entry1+1
|
||||
sta initEntry.entry+1
|
||||
lda #0
|
||||
sta initEntry.n
|
||||
jsr initEntry
|
||||
lda entry2
|
||||
sta initEntry.entry
|
||||
lda entry2+1
|
||||
sta initEntry.entry+1
|
||||
lda #$80
|
||||
sta initEntry.n
|
||||
jsr initEntry
|
||||
jsr print_cls
|
||||
lda #<$400
|
||||
sta print_char_cursor
|
||||
lda #>$400
|
||||
sta print_char_cursor+1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #<$400
|
||||
sta print_line_cursor_63
|
||||
lda #>$400
|
||||
sta print_line_cursor_63+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_159
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_159+1
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
jsr print_ln
|
||||
jsr printEntry
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_160
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_160+1
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
b1:
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
beq b1
|
||||
jsr print_cls
|
||||
lda #<$400
|
||||
sta print_char_cursor
|
||||
lda #>$400
|
||||
sta print_char_cursor+1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #<$400
|
||||
sta print_line_cursor_63
|
||||
lda #>$400
|
||||
sta print_line_cursor_63+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_161
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_161+1
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
jsr print_ln
|
||||
lda entry2
|
||||
sta printEntry.entry
|
||||
lda entry2+1
|
||||
sta printEntry.entry+1
|
||||
jsr printEntry
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_162
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_162+1
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
b3:
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
beq b3
|
||||
jsr print_cls
|
||||
rts
|
||||
str: .text "** entry 1 **@"
|
||||
str1: .text "- press space -@"
|
||||
str2: .text "** entry 2 **@"
|
||||
}
|
||||
// Clear the screen. Also resets current line/char cursor.
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
lda #<$400
|
||||
sta sc
|
||||
lda #>$400
|
||||
sta sc+1
|
||||
b1:
|
||||
lda #' '
|
||||
ldy #0
|
||||
sta (sc),y
|
||||
inc sc
|
||||
bne !+
|
||||
inc sc+1
|
||||
!:
|
||||
lda sc+1
|
||||
cmp #>$400+$3e8
|
||||
bne b1
|
||||
lda sc
|
||||
cmp #<$400+$3e8
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
// Determines whether a specific key is currently pressed by accessing the matrix directly
|
||||
// The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7)
|
||||
// All keys exist as as KEY_XXX constants.
|
||||
// Returns zero if the key is not pressed and a non-zero value if the key is currently pressed
|
||||
keyboard_key_pressed: {
|
||||
.const colidx = KEY_SPACE&7
|
||||
.label rowidx = KEY_SPACE>>3
|
||||
jsr keyboard_matrix_read
|
||||
and keyboard_matrix_col_bitmask+colidx
|
||||
rts
|
||||
}
|
||||
// Read a single row of the keyboard matrix
|
||||
// The row ID (0-7) of the keyboard matrix row to read. See the C64 key matrix for row IDs.
|
||||
// Returns the keys pressed on the row as bits according to the C64 key matrix.
|
||||
// Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write
|
||||
// leading to erroneous readings. You must disable kill the normal interrupt or sei/cli around calls to the keyboard matrix reader.
|
||||
keyboard_matrix_read: {
|
||||
lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx
|
||||
sta CIA1_PORT_A
|
||||
lda CIA1_PORT_B
|
||||
eor #$ff
|
||||
rts
|
||||
}
|
||||
// Print a zero-terminated string
|
||||
// print_str(byte* zeropage(2) str)
|
||||
print_str: {
|
||||
.label str = 2
|
||||
b1:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
cmp #'@'
|
||||
bne b2
|
||||
rts
|
||||
b2:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
sta (print_char_cursor),y
|
||||
inc print_char_cursor
|
||||
bne !+
|
||||
inc print_char_cursor+1
|
||||
!:
|
||||
inc str
|
||||
bne !+
|
||||
inc str+1
|
||||
!:
|
||||
jmp b1
|
||||
}
|
||||
// Print a newline
|
||||
print_ln: {
|
||||
b1:
|
||||
lda #$28
|
||||
clc
|
||||
adc print_line_cursor_32
|
||||
sta print_line_cursor
|
||||
lda #0
|
||||
adc print_line_cursor_32+1
|
||||
sta print_line_cursor+1
|
||||
cmp print_char_cursor+1
|
||||
bcc b2
|
||||
bne !+
|
||||
lda print_line_cursor
|
||||
cmp print_char_cursor
|
||||
bcc b2
|
||||
!:
|
||||
rts
|
||||
b2:
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_177
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_177+1
|
||||
jmp b1
|
||||
}
|
||||
// Print the contents of a file entry
|
||||
// printEntry(byte* zeropage(4) entry)
|
||||
printEntry: {
|
||||
.label entry = 4
|
||||
.label entryBufDisk1__0 = 4
|
||||
.label entryBufDisk1_return = 2
|
||||
.label entryBufEdit1__0 = 2
|
||||
.label entryBufEdit1_return = 2
|
||||
.label entryTsLen1__0 = 2
|
||||
.label entryTsLen1_return = 2
|
||||
.label entryTsOrder1__0 = 2
|
||||
.label entryTsOrder1_return = 2
|
||||
.label entryTLastLink1_return = 2
|
||||
.label entrySLastLink1_return = 2
|
||||
.label entryBFlag1_return = 2
|
||||
.label entryBError1_return = 2
|
||||
.label entryUCross1__0 = 2
|
||||
.label entryUCross1_return = 2
|
||||
.label entryBAddrLo1_return = 2
|
||||
.label entryBAddrHi1_return = 2
|
||||
.label entryTHi1_return = 2
|
||||
.label entryTLo1_return = 4
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda entryBufDisk1__0
|
||||
sta entryBufDisk1_return
|
||||
lda entryBufDisk1__0+1
|
||||
sta entryBufDisk1_return+1
|
||||
ldy #0
|
||||
lda (print_word.w),y
|
||||
tax
|
||||
iny
|
||||
lda (print_word.w),y
|
||||
sta print_word.w+1
|
||||
stx print_word.w
|
||||
jsr print_word
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_163
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_163+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda entryBufDisk1__0
|
||||
clc
|
||||
adc #2
|
||||
sta entryBufEdit1__0
|
||||
lda entryBufDisk1__0+1
|
||||
adc #0
|
||||
sta entryBufEdit1__0+1
|
||||
ldy #0
|
||||
lda (print_word.w),y
|
||||
tax
|
||||
iny
|
||||
lda (print_word.w),y
|
||||
sta print_word.w+1
|
||||
stx print_word.w
|
||||
jsr print_word
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_164
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_164+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #4
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTsLen1__0
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTsLen1__0+1
|
||||
ldy #0
|
||||
lda (print_word.w),y
|
||||
tax
|
||||
iny
|
||||
lda (print_word.w),y
|
||||
sta print_word.w+1
|
||||
stx print_word.w
|
||||
jsr print_word
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_165
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_165+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #6
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTsOrder1__0
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTsOrder1__0+1
|
||||
ldy #0
|
||||
lda (print_word.w),y
|
||||
tax
|
||||
iny
|
||||
lda (print_word.w),y
|
||||
sta print_word.w+1
|
||||
stx print_word.w
|
||||
jsr print_word
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_166
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_166+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #8
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTLastLink1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTLastLink1_return+1
|
||||
ldy #0
|
||||
lda (entryTLastLink1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_167
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_167+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str5
|
||||
sta print_str.str
|
||||
lda #>str5
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #9
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entrySLastLink1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entrySLastLink1_return+1
|
||||
ldy #0
|
||||
lda (entrySLastLink1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_168
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_168+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str6
|
||||
sta print_str.str
|
||||
lda #>str6
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #$a
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBFlag1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBFlag1_return+1
|
||||
ldy #0
|
||||
lda (entryBFlag1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_169
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_169+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str7
|
||||
sta print_str.str
|
||||
lda #>str7
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #$b
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBError1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBError1_return+1
|
||||
ldy #0
|
||||
lda (entryBError1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_170
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_170+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str8
|
||||
sta print_str.str
|
||||
lda #>str8
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #$c
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryUCross1__0
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryUCross1__0+1
|
||||
ldy #0
|
||||
lda (print_word.w),y
|
||||
tax
|
||||
iny
|
||||
lda (print_word.w),y
|
||||
sta print_word.w+1
|
||||
stx print_word.w
|
||||
jsr print_word
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_171
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_171+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str9
|
||||
sta print_str.str
|
||||
lda #>str9
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #$e
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBAddrLo1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBAddrLo1_return+1
|
||||
ldy #0
|
||||
lda (entryBAddrLo1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_172
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_172+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str10
|
||||
sta print_str.str
|
||||
lda #>str10
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #$f
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBAddrHi1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBAddrHi1_return+1
|
||||
ldy #0
|
||||
lda (entryBAddrHi1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_173
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_173+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str11
|
||||
sta print_str.str
|
||||
lda #>str11
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #$10
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTHi1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTHi1_return+1
|
||||
ldy #0
|
||||
lda (entryTHi1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_174
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_174+1
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str12
|
||||
sta print_str.str
|
||||
lda #>str12
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #$11
|
||||
clc
|
||||
adc entryTLo1_return
|
||||
sta entryTLo1_return
|
||||
bcc !+
|
||||
inc entryTLo1_return+1
|
||||
!:
|
||||
ldy #0
|
||||
lda (entryTLo1_return),y
|
||||
tax
|
||||
jsr print_byte
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_175
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_175+1
|
||||
jsr print_ln
|
||||
rts
|
||||
str: .text "bufdisk @"
|
||||
str1: .text "bufedit @"
|
||||
str2: .text "tslen @"
|
||||
str3: .text "tsorder @"
|
||||
str4: .text "tlastlink @"
|
||||
str5: .text "slastlink @"
|
||||
str6: .text "bflag @"
|
||||
str7: .text "berror @"
|
||||
str8: .text "ucross @"
|
||||
str9: .text "baddrlo @"
|
||||
str10: .text "baddrhi @"
|
||||
str11: .text "thi @"
|
||||
str12: .text "tlo @"
|
||||
}
|
||||
// Print a byte as HEX
|
||||
// print_byte(byte register(X) b)
|
||||
print_byte: {
|
||||
txa
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tay
|
||||
lda print_hextab,y
|
||||
jsr print_char
|
||||
lda #$f
|
||||
axs #0
|
||||
lda print_hextab,x
|
||||
jsr print_char
|
||||
rts
|
||||
}
|
||||
// Print a single char
|
||||
// print_char(byte register(A) ch)
|
||||
print_char: {
|
||||
ldy #0
|
||||
sta (print_char_cursor),y
|
||||
inc print_char_cursor
|
||||
bne !+
|
||||
inc print_char_cursor+1
|
||||
!:
|
||||
rts
|
||||
}
|
||||
// Print a word as HEX
|
||||
// print_word(word zeropage(2) w)
|
||||
print_word: {
|
||||
.label w = 2
|
||||
lda w+1
|
||||
tax
|
||||
jsr print_byte
|
||||
lda w
|
||||
tax
|
||||
jsr print_byte
|
||||
rts
|
||||
}
|
||||
// Set all values in the passed struct
|
||||
// Sets the values to n, n+1, n... to help test that everything works as intended
|
||||
// initEntry(byte* zeropage(2) entry, byte zeropage(8) n)
|
||||
initEntry: {
|
||||
.label entry = 2
|
||||
.label entryBufDisk1__0 = 2
|
||||
.label entryBufDisk1_return = 6
|
||||
.label entryBufEdit1__0 = 6
|
||||
.label entryBufEdit1_return = 6
|
||||
.label entryTsLen1__0 = 6
|
||||
.label entryTsLen1_return = 6
|
||||
.label entryTsOrder1__0 = 6
|
||||
.label entryTsOrder1_return = 6
|
||||
.label entryTLastLink1_return = 6
|
||||
.label entrySLastLink1_return = 6
|
||||
.label entryBFlag1_return = 6
|
||||
.label entryBError1_return = 6
|
||||
.label entryUCross1__0 = 6
|
||||
.label entryUCross1_return = 6
|
||||
.label entryBAddrLo1_return = 6
|
||||
.label entryBAddrHi1_return = 6
|
||||
.label entryTHi1_return = 6
|
||||
.label entryTLo1_return = 2
|
||||
.label n = 8
|
||||
lda entryBufDisk1__0
|
||||
sta entryBufDisk1_return
|
||||
lda entryBufDisk1__0+1
|
||||
sta entryBufDisk1_return+1
|
||||
lda n
|
||||
clc
|
||||
adc #1
|
||||
ldy #0
|
||||
sta (entryBufDisk1_return),y
|
||||
tya
|
||||
iny
|
||||
sta (entryBufDisk1_return),y
|
||||
lda entryBufDisk1__0
|
||||
clc
|
||||
adc #2
|
||||
sta entryBufEdit1__0
|
||||
lda entryBufDisk1__0+1
|
||||
adc #0
|
||||
sta entryBufEdit1__0+1
|
||||
lda n
|
||||
clc
|
||||
adc #2
|
||||
ldy #0
|
||||
sta (entryBufEdit1_return),y
|
||||
tya
|
||||
iny
|
||||
sta (entryBufEdit1_return),y
|
||||
lda #4
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTsLen1__0
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTsLen1__0+1
|
||||
lda #3
|
||||
clc
|
||||
adc n
|
||||
ldy #0
|
||||
sta (entryTsLen1_return),y
|
||||
tya
|
||||
iny
|
||||
sta (entryTsLen1_return),y
|
||||
lda #6
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTsOrder1__0
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTsOrder1__0+1
|
||||
lda #4
|
||||
clc
|
||||
adc n
|
||||
ldy #0
|
||||
sta (entryTsOrder1_return),y
|
||||
tya
|
||||
iny
|
||||
sta (entryTsOrder1_return),y
|
||||
lda #8
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTLastLink1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTLastLink1_return+1
|
||||
lda #5
|
||||
clc
|
||||
adc n
|
||||
ldy #0
|
||||
sta (entryTLastLink1_return),y
|
||||
lda #9
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entrySLastLink1_return
|
||||
tya
|
||||
adc entryBufDisk1__0+1
|
||||
sta entrySLastLink1_return+1
|
||||
lda #6
|
||||
clc
|
||||
adc n
|
||||
sta (entrySLastLink1_return),y
|
||||
lda #$a
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBFlag1_return
|
||||
tya
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBFlag1_return+1
|
||||
lda #7
|
||||
clc
|
||||
adc n
|
||||
sta (entryBFlag1_return),y
|
||||
lda #$b
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBError1_return
|
||||
tya
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBError1_return+1
|
||||
lda #8
|
||||
clc
|
||||
adc n
|
||||
sta (entryBError1_return),y
|
||||
lda #$c
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryUCross1__0
|
||||
tya
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryUCross1__0+1
|
||||
lda #9
|
||||
clc
|
||||
adc n
|
||||
sta (entryUCross1_return),y
|
||||
tya
|
||||
iny
|
||||
sta (entryUCross1_return),y
|
||||
lda #$e
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBAddrLo1_return
|
||||
lda #0
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBAddrLo1_return+1
|
||||
lda #$a
|
||||
clc
|
||||
adc n
|
||||
ldy #0
|
||||
sta (entryBAddrLo1_return),y
|
||||
lda #$f
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryBAddrHi1_return
|
||||
tya
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryBAddrHi1_return+1
|
||||
lda #$b
|
||||
clc
|
||||
adc n
|
||||
sta (entryBAddrHi1_return),y
|
||||
lda #$10
|
||||
clc
|
||||
adc entryBufDisk1__0
|
||||
sta entryTHi1_return
|
||||
tya
|
||||
adc entryBufDisk1__0+1
|
||||
sta entryTHi1_return+1
|
||||
lda #$c
|
||||
clc
|
||||
adc n
|
||||
sta (entryTHi1_return),y
|
||||
lda #$11
|
||||
clc
|
||||
adc entryTLo1_return
|
||||
sta entryTLo1_return
|
||||
bcc !+
|
||||
inc entryTLo1_return+1
|
||||
!:
|
||||
lda #$d
|
||||
clc
|
||||
adc n
|
||||
ldy #0
|
||||
sta (entryTLo1_return),y
|
||||
rts
|
||||
}
|
||||
// Perform binary multiplication of two unsigned 8-bit bytes into a 16-bit unsigned word
|
||||
// mul8u(byte register(X) a)
|
||||
mul8u: {
|
||||
.label mb = 2
|
||||
.label res = 9
|
||||
.label return = 9
|
||||
lda #ENTRY_SIZE
|
||||
sta mb
|
||||
lda #0
|
||||
sta mb+1
|
||||
sta res
|
||||
sta res+1
|
||||
b1:
|
||||
cpx #0
|
||||
bne b2
|
||||
rts
|
||||
b2:
|
||||
txa
|
||||
and #1
|
||||
cmp #0
|
||||
beq b3
|
||||
lda res
|
||||
clc
|
||||
adc mb
|
||||
sta res
|
||||
lda res+1
|
||||
adc mb+1
|
||||
sta res+1
|
||||
b3:
|
||||
txa
|
||||
lsr
|
||||
tax
|
||||
asl mb
|
||||
rol mb+1
|
||||
jmp b1
|
||||
}
|
||||
// Initialize keyboard reading by setting CIA#$ Data Direction Registers
|
||||
keyboard_init: {
|
||||
// Keyboard Matrix Columns Write Mode
|
||||
lda #$ff
|
||||
sta CIA1_PORT_A_DDR
|
||||
// Keyboard Matrix Columns Read Mode
|
||||
lda #0
|
||||
sta CIA1_PORT_B_DDR
|
||||
rts
|
||||
}
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
// Keyboard row bitmask as expected by CIA#1 Port A when reading a specific keyboard matrix row (rows are numbered 0-7)
|
||||
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
||||
// Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7)
|
||||
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
||||
// All files
|
||||
files: .fill MAX_FILES*ENTRY_SIZE, 0
|
559
src/test/ref/semi-struct-2.cfg
Normal file
559
src/test/ref/semi-struct-2.cfg
Normal file
@ -0,0 +1,559 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@1
|
||||
@1: scope:[] from @begin
|
||||
[1] phi()
|
||||
[2] call main
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
[3] phi()
|
||||
main: scope:[main] from @1
|
||||
[4] phi()
|
||||
[5] call keyboard_init
|
||||
to:main::fileEntry1
|
||||
main::fileEntry1: scope:[main] from main
|
||||
[6] phi()
|
||||
[7] call mul8u
|
||||
[8] (word) mul8u::return#2 ← (word) mul8u::res#2
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::fileEntry1
|
||||
[9] (word) main::fileEntry1_$0#0 ← (word) mul8u::return#2
|
||||
[10] (byte*) main::entry1#0 ← (const byte[((word))MAX_FILES#0*ENTRY_SIZE#0]) files#0 + (word) main::fileEntry1_$0#0
|
||||
to:main::fileEntry2
|
||||
main::fileEntry2: scope:[main] from main::@6
|
||||
[11] phi()
|
||||
[12] call mul8u
|
||||
[13] (word) mul8u::return#3 ← (word) mul8u::res#2
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::fileEntry2
|
||||
[14] (word) main::fileEntry2_$0#0 ← (word) mul8u::return#3
|
||||
[15] (byte*) main::entry2#0 ← (const byte[((word))MAX_FILES#0*ENTRY_SIZE#0]) files#0 + (word) main::fileEntry2_$0#0
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@7
|
||||
[16] (byte*) initEntry::entry#0 ← (byte*) main::entry1#0
|
||||
[17] call initEntry
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@5
|
||||
[18] (byte*) initEntry::entry#1 ← (byte*) main::entry2#0
|
||||
[19] call initEntry
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@8
|
||||
[20] phi()
|
||||
[21] call print_cls
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@9
|
||||
[22] phi()
|
||||
[23] call print_str
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@10
|
||||
[24] phi()
|
||||
[25] call print_ln
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@11
|
||||
[26] (byte*~) print_line_cursor#159 ← (byte*) print_line_cursor#1
|
||||
[27] (byte*~) print_char_cursor#230 ← (byte*) print_line_cursor#1
|
||||
[28] call print_ln
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12
|
||||
[29] (byte*) printEntry::entry#0 ← (byte*) main::entry1#0
|
||||
[30] call printEntry
|
||||
to:main::@14
|
||||
main::@14: scope:[main] from main::@13
|
||||
[31] (byte*~) print_line_cursor#160 ← (byte*) print_line_cursor#1
|
||||
[32] (byte*~) print_char_cursor#231 ← (byte*) print_line_cursor#1
|
||||
[33] call print_ln
|
||||
to:main::@15
|
||||
main::@15: scope:[main] from main::@14
|
||||
[34] (byte*~) print_char_cursor#212 ← (byte*) print_line_cursor#1
|
||||
[35] call print_str
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@15 main::@16
|
||||
[36] phi()
|
||||
[37] call keyboard_key_pressed
|
||||
[38] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0
|
||||
to:main::@16
|
||||
main::@16: scope:[main] from main::@1
|
||||
[39] (byte~) main::$20 ← (byte) keyboard_key_pressed::return#2
|
||||
[40] if((byte~) main::$20==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@16
|
||||
[41] phi()
|
||||
[42] call print_cls
|
||||
to:main::@17
|
||||
main::@17: scope:[main] from main::@2
|
||||
[43] phi()
|
||||
[44] call print_str
|
||||
to:main::@18
|
||||
main::@18: scope:[main] from main::@17
|
||||
[45] phi()
|
||||
[46] call print_ln
|
||||
to:main::@19
|
||||
main::@19: scope:[main] from main::@18
|
||||
[47] (byte*~) print_line_cursor#161 ← (byte*) print_line_cursor#1
|
||||
[48] (byte*~) print_char_cursor#233 ← (byte*) print_line_cursor#1
|
||||
[49] call print_ln
|
||||
to:main::@20
|
||||
main::@20: scope:[main] from main::@19
|
||||
[50] (byte*) printEntry::entry#1 ← (byte*) main::entry2#0
|
||||
[51] call printEntry
|
||||
to:main::@21
|
||||
main::@21: scope:[main] from main::@20
|
||||
[52] (byte*~) print_line_cursor#162 ← (byte*) print_line_cursor#1
|
||||
[53] (byte*~) print_char_cursor#234 ← (byte*) print_line_cursor#1
|
||||
[54] call print_ln
|
||||
to:main::@22
|
||||
main::@22: scope:[main] from main::@21
|
||||
[55] (byte*~) print_char_cursor#213 ← (byte*) print_line_cursor#1
|
||||
[56] call print_str
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@22 main::@23
|
||||
[57] phi()
|
||||
[58] call keyboard_key_pressed
|
||||
[59] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0
|
||||
to:main::@23
|
||||
main::@23: scope:[main] from main::@3
|
||||
[60] (byte~) main::$22 ← (byte) keyboard_key_pressed::return#3
|
||||
[61] if((byte~) main::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@3
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@23
|
||||
[62] phi()
|
||||
[63] call print_cls
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
[64] return
|
||||
to:@return
|
||||
print_cls: scope:[print_cls] from main::@2 main::@4 main::@9
|
||||
[65] phi()
|
||||
to:print_cls::@1
|
||||
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
|
||||
[66] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 )
|
||||
[67] *((byte*) print_cls::sc#2) ← (byte) ' '
|
||||
[68] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2
|
||||
[69] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
[70] return
|
||||
to:@return
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@1 main::@3
|
||||
[71] phi()
|
||||
[72] call keyboard_matrix_read
|
||||
[73] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0
|
||||
to:keyboard_key_pressed::@1
|
||||
keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed
|
||||
[74] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2
|
||||
[75] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0)
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@1
|
||||
[76] return
|
||||
to:@return
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
|
||||
[77] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0)
|
||||
[78] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
|
||||
to:keyboard_matrix_read::@return
|
||||
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
|
||||
[79] return
|
||||
to:@return
|
||||
print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@22 printEntry printEntry::@15 printEntry::@17 printEntry::@19 printEntry::@21 printEntry::@23 printEntry::@25 printEntry::@27 printEntry::@29 printEntry::@31 printEntry::@33 printEntry::@35 printEntry::@37
|
||||
[80] (byte*) print_char_cursor#164 ← phi( main::@10/((byte*))(word/signed word/dword/signed dword) $400 main::@15/(byte*~) print_char_cursor#212 main::@17/((byte*))(word/signed word/dword/signed dword) $400 main::@22/(byte*~) print_char_cursor#213 printEntry/(byte*~) print_char_cursor#214 printEntry::@15/(byte*~) print_char_cursor#215 printEntry::@17/(byte*~) print_char_cursor#216 printEntry::@19/(byte*~) print_char_cursor#217 printEntry::@21/(byte*~) print_char_cursor#218 printEntry::@23/(byte*~) print_char_cursor#219 printEntry::@25/(byte*~) print_char_cursor#220 printEntry::@27/(byte*~) print_char_cursor#221 printEntry::@29/(byte*~) print_char_cursor#222 printEntry::@31/(byte*~) print_char_cursor#223 printEntry::@33/(byte*~) print_char_cursor#224 printEntry::@35/(byte*~) print_char_cursor#225 printEntry::@37/(byte*~) print_char_cursor#226 )
|
||||
[80] (byte*) print_str::str#20 ← phi( main::@10/(const string) main::str main::@15/(const string) main::str1 main::@17/(const string) main::str2 main::@22/(const string) main::str1 printEntry/(const string) printEntry::str printEntry::@15/(const string) printEntry::str1 printEntry::@17/(const string) printEntry::str2 printEntry::@19/(const string) printEntry::str3 printEntry::@21/(const string) printEntry::str4 printEntry::@23/(const string) printEntry::str5 printEntry::@25/(const string) printEntry::str6 printEntry::@27/(const string) printEntry::str7 printEntry::@29/(const string) printEntry::str8 printEntry::@31/(const string) printEntry::str9 printEntry::@33/(const string) printEntry::str10 printEntry::@35/(const string) printEntry::str11 printEntry::@37/(const string) printEntry::str12 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[81] (byte*) print_char_cursor#142 ← phi( print_str/(byte*) print_char_cursor#164 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
[81] (byte*) print_str::str#18 ← phi( print_str/(byte*) print_str::str#20 print_str::@2/(byte*) print_str::str#0 )
|
||||
[82] if(*((byte*) print_str::str#18)!=(byte) '@') goto print_str::@2
|
||||
to:print_str::@return
|
||||
print_str::@return: scope:[print_str] from print_str::@1
|
||||
[83] return
|
||||
to:@return
|
||||
print_str::@2: scope:[print_str] from print_str::@1
|
||||
[84] *((byte*) print_char_cursor#142) ← *((byte*) print_str::str#18)
|
||||
[85] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#142
|
||||
[86] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#18
|
||||
to:print_str::@1
|
||||
print_ln: scope:[print_ln] from main::@11 main::@12 main::@14 main::@18 main::@19 main::@21 printEntry::@14 printEntry::@16 printEntry::@18 printEntry::@20 printEntry::@22 printEntry::@24 printEntry::@26 printEntry::@28 printEntry::@30 printEntry::@32 printEntry::@34 printEntry::@36 printEntry::@38
|
||||
[87] (byte*) print_char_cursor#143 ← phi( main::@11/(byte*) print_char_cursor#142 main::@12/(byte*~) print_char_cursor#230 main::@14/(byte*~) print_char_cursor#231 main::@18/(byte*) print_char_cursor#142 main::@19/(byte*~) print_char_cursor#233 main::@21/(byte*~) print_char_cursor#234 printEntry::@14/(byte*) print_char_cursor#11 printEntry::@16/(byte*) print_char_cursor#11 printEntry::@18/(byte*) print_char_cursor#11 printEntry::@20/(byte*) print_char_cursor#11 printEntry::@22/(byte*) print_char_cursor#11 printEntry::@24/(byte*) print_char_cursor#11 printEntry::@26/(byte*) print_char_cursor#11 printEntry::@28/(byte*) print_char_cursor#11 printEntry::@30/(byte*) print_char_cursor#11 printEntry::@32/(byte*) print_char_cursor#11 printEntry::@34/(byte*) print_char_cursor#11 printEntry::@36/(byte*) print_char_cursor#11 printEntry::@38/(byte*) print_char_cursor#11 )
|
||||
[87] (byte*) print_line_cursor#63 ← phi( main::@11/((byte*))(word/signed word/dword/signed dword) $400 main::@12/(byte*~) print_line_cursor#159 main::@14/(byte*~) print_line_cursor#160 main::@18/((byte*))(word/signed word/dword/signed dword) $400 main::@19/(byte*~) print_line_cursor#161 main::@21/(byte*~) print_line_cursor#162 printEntry::@14/(byte*~) print_line_cursor#163 printEntry::@16/(byte*~) print_line_cursor#164 printEntry::@18/(byte*~) print_line_cursor#165 printEntry::@20/(byte*~) print_line_cursor#166 printEntry::@22/(byte*~) print_line_cursor#167 printEntry::@24/(byte*~) print_line_cursor#168 printEntry::@26/(byte*~) print_line_cursor#169 printEntry::@28/(byte*~) print_line_cursor#170 printEntry::@30/(byte*~) print_line_cursor#171 printEntry::@32/(byte*~) print_line_cursor#172 printEntry::@34/(byte*~) print_line_cursor#173 printEntry::@36/(byte*~) print_line_cursor#174 printEntry::@38/(byte*~) print_line_cursor#175 )
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@2
|
||||
[88] (byte*) print_line_cursor#32 ← phi( print_ln/(byte*) print_line_cursor#63 print_ln::@2/(byte*~) print_line_cursor#177 )
|
||||
[89] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#32 + (byte/signed byte/word/signed word/dword/signed dword) $28
|
||||
[90] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#143) goto print_ln::@2
|
||||
to:print_ln::@return
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
[91] return
|
||||
to:@return
|
||||
print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
[92] (byte*~) print_line_cursor#177 ← (byte*) print_line_cursor#1
|
||||
to:print_ln::@1
|
||||
printEntry: scope:[printEntry] from main::@13 main::@20
|
||||
[93] (byte*) printEntry::entryBufDisk1_$0#0 ← phi( main::@13/(byte*) printEntry::entry#0 main::@20/(byte*) printEntry::entry#1 )
|
||||
[94] (byte*~) print_char_cursor#214 ← (byte*) print_line_cursor#1
|
||||
[95] call print_str
|
||||
to:printEntry::entryBufDisk1
|
||||
printEntry::entryBufDisk1: scope:[printEntry] from printEntry
|
||||
[96] (byte**) printEntry::entryBufDisk1_return#0 ← ((byte**)) (byte*) printEntry::entryBufDisk1_$0#0
|
||||
to:printEntry::@1
|
||||
printEntry::@1: scope:[printEntry] from printEntry::entryBufDisk1
|
||||
[97] (word~) print_word::w#7 ← (word)*((byte**) printEntry::entryBufDisk1_return#0)
|
||||
[98] call print_word
|
||||
to:printEntry::@14
|
||||
printEntry::@14: scope:[printEntry] from printEntry::@1
|
||||
[99] (byte*~) print_line_cursor#163 ← (byte*) print_line_cursor#1
|
||||
[100] call print_ln
|
||||
to:printEntry::@15
|
||||
printEntry::@15: scope:[printEntry] from printEntry::@14
|
||||
[101] (byte*~) print_char_cursor#215 ← (byte*) print_line_cursor#1
|
||||
[102] call print_str
|
||||
to:printEntry::entryBufEdit1
|
||||
printEntry::entryBufEdit1: scope:[printEntry] from printEntry::@15
|
||||
[103] (byte*) printEntry::entryBufEdit1_$0#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
[104] (byte**) printEntry::entryBufEdit1_return#0 ← ((byte**)) (byte*) printEntry::entryBufEdit1_$0#0
|
||||
to:printEntry::@2
|
||||
printEntry::@2: scope:[printEntry] from printEntry::entryBufEdit1
|
||||
[105] (word~) print_word::w#8 ← (word)*((byte**) printEntry::entryBufEdit1_return#0)
|
||||
[106] call print_word
|
||||
to:printEntry::@16
|
||||
printEntry::@16: scope:[printEntry] from printEntry::@2
|
||||
[107] (byte*~) print_line_cursor#164 ← (byte*) print_line_cursor#1
|
||||
[108] call print_ln
|
||||
to:printEntry::@17
|
||||
printEntry::@17: scope:[printEntry] from printEntry::@16
|
||||
[109] (byte*~) print_char_cursor#216 ← (byte*) print_line_cursor#1
|
||||
[110] call print_str
|
||||
to:printEntry::entryTsLen1
|
||||
printEntry::entryTsLen1: scope:[printEntry] from printEntry::@17
|
||||
[111] (byte*) printEntry::entryTsLen1_$0#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
[112] (word*) printEntry::entryTsLen1_return#0 ← ((word*)) (byte*) printEntry::entryTsLen1_$0#0
|
||||
to:printEntry::@3
|
||||
printEntry::@3: scope:[printEntry] from printEntry::entryTsLen1
|
||||
[113] (word) print_word::w#2 ← *((word*) printEntry::entryTsLen1_return#0)
|
||||
[114] call print_word
|
||||
to:printEntry::@18
|
||||
printEntry::@18: scope:[printEntry] from printEntry::@3
|
||||
[115] (byte*~) print_line_cursor#165 ← (byte*) print_line_cursor#1
|
||||
[116] call print_ln
|
||||
to:printEntry::@19
|
||||
printEntry::@19: scope:[printEntry] from printEntry::@18
|
||||
[117] (byte*~) print_char_cursor#217 ← (byte*) print_line_cursor#1
|
||||
[118] call print_str
|
||||
to:printEntry::entryTsOrder1
|
||||
printEntry::entryTsOrder1: scope:[printEntry] from printEntry::@19
|
||||
[119] (byte*) printEntry::entryTsOrder1_$0#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
[120] (word**) printEntry::entryTsOrder1_return#0 ← ((word**)) (byte*) printEntry::entryTsOrder1_$0#0
|
||||
to:printEntry::@4
|
||||
printEntry::@4: scope:[printEntry] from printEntry::entryTsOrder1
|
||||
[121] (word~) print_word::w#10 ← (word)*((word**) printEntry::entryTsOrder1_return#0)
|
||||
[122] call print_word
|
||||
to:printEntry::@20
|
||||
printEntry::@20: scope:[printEntry] from printEntry::@4
|
||||
[123] (byte*~) print_line_cursor#166 ← (byte*) print_line_cursor#1
|
||||
[124] call print_ln
|
||||
to:printEntry::@21
|
||||
printEntry::@21: scope:[printEntry] from printEntry::@20
|
||||
[125] (byte*~) print_char_cursor#218 ← (byte*) print_line_cursor#1
|
||||
[126] call print_str
|
||||
to:printEntry::entryTLastLink1
|
||||
printEntry::entryTLastLink1: scope:[printEntry] from printEntry::@21
|
||||
[127] (byte*) printEntry::entryTLastLink1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
to:printEntry::@5
|
||||
printEntry::@5: scope:[printEntry] from printEntry::entryTLastLink1
|
||||
[128] (byte) print_byte::b#2 ← *((byte*) printEntry::entryTLastLink1_return#0)
|
||||
[129] call print_byte
|
||||
to:printEntry::@22
|
||||
printEntry::@22: scope:[printEntry] from printEntry::@5
|
||||
[130] (byte*~) print_line_cursor#167 ← (byte*) print_line_cursor#1
|
||||
[131] call print_ln
|
||||
to:printEntry::@23
|
||||
printEntry::@23: scope:[printEntry] from printEntry::@22
|
||||
[132] (byte*~) print_char_cursor#219 ← (byte*) print_line_cursor#1
|
||||
[133] call print_str
|
||||
to:printEntry::entrySLastLink1
|
||||
printEntry::entrySLastLink1: scope:[printEntry] from printEntry::@23
|
||||
[134] (byte*) printEntry::entrySLastLink1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 9
|
||||
to:printEntry::@6
|
||||
printEntry::@6: scope:[printEntry] from printEntry::entrySLastLink1
|
||||
[135] (byte) print_byte::b#3 ← *((byte*) printEntry::entrySLastLink1_return#0)
|
||||
[136] call print_byte
|
||||
to:printEntry::@24
|
||||
printEntry::@24: scope:[printEntry] from printEntry::@6
|
||||
[137] (byte*~) print_line_cursor#168 ← (byte*) print_line_cursor#1
|
||||
[138] call print_ln
|
||||
to:printEntry::@25
|
||||
printEntry::@25: scope:[printEntry] from printEntry::@24
|
||||
[139] (byte*~) print_char_cursor#220 ← (byte*) print_line_cursor#1
|
||||
[140] call print_str
|
||||
to:printEntry::entryBFlag1
|
||||
printEntry::entryBFlag1: scope:[printEntry] from printEntry::@25
|
||||
[141] (byte*) printEntry::entryBFlag1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $a
|
||||
to:printEntry::@7
|
||||
printEntry::@7: scope:[printEntry] from printEntry::entryBFlag1
|
||||
[142] (byte) print_byte::b#4 ← *((byte*) printEntry::entryBFlag1_return#0)
|
||||
[143] call print_byte
|
||||
to:printEntry::@26
|
||||
printEntry::@26: scope:[printEntry] from printEntry::@7
|
||||
[144] (byte*~) print_line_cursor#169 ← (byte*) print_line_cursor#1
|
||||
[145] call print_ln
|
||||
to:printEntry::@27
|
||||
printEntry::@27: scope:[printEntry] from printEntry::@26
|
||||
[146] (byte*~) print_char_cursor#221 ← (byte*) print_line_cursor#1
|
||||
[147] call print_str
|
||||
to:printEntry::entryBError1
|
||||
printEntry::entryBError1: scope:[printEntry] from printEntry::@27
|
||||
[148] (byte*) printEntry::entryBError1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $b
|
||||
to:printEntry::@8
|
||||
printEntry::@8: scope:[printEntry] from printEntry::entryBError1
|
||||
[149] (byte) print_byte::b#5 ← *((byte*) printEntry::entryBError1_return#0)
|
||||
[150] call print_byte
|
||||
to:printEntry::@28
|
||||
printEntry::@28: scope:[printEntry] from printEntry::@8
|
||||
[151] (byte*~) print_line_cursor#170 ← (byte*) print_line_cursor#1
|
||||
[152] call print_ln
|
||||
to:printEntry::@29
|
||||
printEntry::@29: scope:[printEntry] from printEntry::@28
|
||||
[153] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1
|
||||
[154] call print_str
|
||||
to:printEntry::entryUCross1
|
||||
printEntry::entryUCross1: scope:[printEntry] from printEntry::@29
|
||||
[155] (byte*) printEntry::entryUCross1_$0#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $c
|
||||
[156] (word*) printEntry::entryUCross1_return#0 ← ((word*)) (byte*) printEntry::entryUCross1_$0#0
|
||||
to:printEntry::@9
|
||||
printEntry::@9: scope:[printEntry] from printEntry::entryUCross1
|
||||
[157] (word) print_word::w#4 ← *((word*) printEntry::entryUCross1_return#0)
|
||||
[158] call print_word
|
||||
to:printEntry::@30
|
||||
printEntry::@30: scope:[printEntry] from printEntry::@9
|
||||
[159] (byte*~) print_line_cursor#171 ← (byte*) print_line_cursor#1
|
||||
[160] call print_ln
|
||||
to:printEntry::@31
|
||||
printEntry::@31: scope:[printEntry] from printEntry::@30
|
||||
[161] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1
|
||||
[162] call print_str
|
||||
to:printEntry::entryBAddrLo1
|
||||
printEntry::entryBAddrLo1: scope:[printEntry] from printEntry::@31
|
||||
[163] (byte*) printEntry::entryBAddrLo1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $e
|
||||
to:printEntry::@10
|
||||
printEntry::@10: scope:[printEntry] from printEntry::entryBAddrLo1
|
||||
[164] (byte) print_byte::b#6 ← *((byte*) printEntry::entryBAddrLo1_return#0)
|
||||
[165] call print_byte
|
||||
to:printEntry::@32
|
||||
printEntry::@32: scope:[printEntry] from printEntry::@10
|
||||
[166] (byte*~) print_line_cursor#172 ← (byte*) print_line_cursor#1
|
||||
[167] call print_ln
|
||||
to:printEntry::@33
|
||||
printEntry::@33: scope:[printEntry] from printEntry::@32
|
||||
[168] (byte*~) print_char_cursor#224 ← (byte*) print_line_cursor#1
|
||||
[169] call print_str
|
||||
to:printEntry::entryBAddrHi1
|
||||
printEntry::entryBAddrHi1: scope:[printEntry] from printEntry::@33
|
||||
[170] (byte*) printEntry::entryBAddrHi1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $f
|
||||
to:printEntry::@11
|
||||
printEntry::@11: scope:[printEntry] from printEntry::entryBAddrHi1
|
||||
[171] (byte) print_byte::b#7 ← *((byte*) printEntry::entryBAddrHi1_return#0)
|
||||
[172] call print_byte
|
||||
to:printEntry::@34
|
||||
printEntry::@34: scope:[printEntry] from printEntry::@11
|
||||
[173] (byte*~) print_line_cursor#173 ← (byte*) print_line_cursor#1
|
||||
[174] call print_ln
|
||||
to:printEntry::@35
|
||||
printEntry::@35: scope:[printEntry] from printEntry::@34
|
||||
[175] (byte*~) print_char_cursor#225 ← (byte*) print_line_cursor#1
|
||||
[176] call print_str
|
||||
to:printEntry::entryTHi1
|
||||
printEntry::entryTHi1: scope:[printEntry] from printEntry::@35
|
||||
[177] (byte*) printEntry::entryTHi1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $10
|
||||
to:printEntry::@12
|
||||
printEntry::@12: scope:[printEntry] from printEntry::entryTHi1
|
||||
[178] (byte) print_byte::b#8 ← *((byte*) printEntry::entryTHi1_return#0)
|
||||
[179] call print_byte
|
||||
to:printEntry::@36
|
||||
printEntry::@36: scope:[printEntry] from printEntry::@12
|
||||
[180] (byte*~) print_line_cursor#174 ← (byte*) print_line_cursor#1
|
||||
[181] call print_ln
|
||||
to:printEntry::@37
|
||||
printEntry::@37: scope:[printEntry] from printEntry::@36
|
||||
[182] (byte*~) print_char_cursor#226 ← (byte*) print_line_cursor#1
|
||||
[183] call print_str
|
||||
to:printEntry::entryTLo1
|
||||
printEntry::entryTLo1: scope:[printEntry] from printEntry::@37
|
||||
[184] (byte*) printEntry::entryTLo1_return#0 ← (byte*) printEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $11
|
||||
to:printEntry::@13
|
||||
printEntry::@13: scope:[printEntry] from printEntry::entryTLo1
|
||||
[185] (byte) print_byte::b#9 ← *((byte*) printEntry::entryTLo1_return#0)
|
||||
[186] call print_byte
|
||||
to:printEntry::@38
|
||||
printEntry::@38: scope:[printEntry] from printEntry::@13
|
||||
[187] (byte*~) print_line_cursor#175 ← (byte*) print_line_cursor#1
|
||||
[188] call print_ln
|
||||
to:printEntry::@return
|
||||
printEntry::@return: scope:[printEntry] from printEntry::@38
|
||||
[189] return
|
||||
to:@return
|
||||
print_byte: scope:[print_byte] from printEntry::@10 printEntry::@11 printEntry::@12 printEntry::@13 printEntry::@5 printEntry::@6 printEntry::@7 printEntry::@8 print_word print_word::@1
|
||||
[190] (byte*) print_char_cursor#145 ← phi( printEntry::@10/(byte*) print_char_cursor#142 printEntry::@11/(byte*) print_char_cursor#142 printEntry::@12/(byte*) print_char_cursor#142 printEntry::@13/(byte*) print_char_cursor#142 printEntry::@5/(byte*) print_char_cursor#142 printEntry::@6/(byte*) print_char_cursor#142 printEntry::@7/(byte*) print_char_cursor#142 printEntry::@8/(byte*) print_char_cursor#142 print_word/(byte*) print_char_cursor#142 print_word::@1/(byte*) print_char_cursor#11 )
|
||||
[190] (byte) print_byte::b#10 ← phi( printEntry::@10/(byte) print_byte::b#6 printEntry::@11/(byte) print_byte::b#7 printEntry::@12/(byte) print_byte::b#8 printEntry::@13/(byte) print_byte::b#9 printEntry::@5/(byte) print_byte::b#2 printEntry::@6/(byte) print_byte::b#3 printEntry::@7/(byte) print_byte::b#4 printEntry::@8/(byte) print_byte::b#5 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 )
|
||||
[191] (byte~) print_byte::$0 ← (byte) print_byte::b#10 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
[192] (byte) print_char::ch#0 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$0)
|
||||
[193] call print_char
|
||||
to:print_byte::@1
|
||||
print_byte::@1: scope:[print_byte] from print_byte
|
||||
[194] (byte~) print_byte::$2 ← (byte) print_byte::b#10 & (byte/signed byte/word/signed word/dword/signed dword) $f
|
||||
[195] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2)
|
||||
[196] call print_char
|
||||
to:print_byte::@return
|
||||
print_byte::@return: scope:[print_byte] from print_byte::@1
|
||||
[197] return
|
||||
to:@return
|
||||
print_char: scope:[print_char] from print_byte print_byte::@1
|
||||
[198] (byte*) print_char_cursor#82 ← phi( print_byte/(byte*) print_char_cursor#145 print_byte::@1/(byte*) print_char_cursor#11 )
|
||||
[198] (byte) print_char::ch#2 ← phi( print_byte/(byte) print_char::ch#0 print_byte::@1/(byte) print_char::ch#1 )
|
||||
[199] *((byte*) print_char_cursor#82) ← (byte) print_char::ch#2
|
||||
[200] (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#82
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[201] return
|
||||
to:@return
|
||||
print_word: scope:[print_word] from printEntry::@1 printEntry::@2 printEntry::@3 printEntry::@4 printEntry::@9
|
||||
[202] (word) print_word::w#5 ← phi( printEntry::@1/(word~) print_word::w#7 printEntry::@2/(word~) print_word::w#8 printEntry::@3/(word) print_word::w#2 printEntry::@4/(word~) print_word::w#10 printEntry::@9/(word) print_word::w#4 )
|
||||
[203] (byte) print_byte::b#0 ← > (word) print_word::w#5
|
||||
[204] call print_byte
|
||||
to:print_word::@1
|
||||
print_word::@1: scope:[print_word] from print_word
|
||||
[205] (byte) print_byte::b#1 ← < (word) print_word::w#5
|
||||
[206] call print_byte
|
||||
to:print_word::@return
|
||||
print_word::@return: scope:[print_word] from print_word::@1
|
||||
[207] return
|
||||
to:@return
|
||||
initEntry: scope:[initEntry] from main::@5 main::@8
|
||||
[208] (byte) initEntry::n#10 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte/word/signed word/dword/signed dword) $80 )
|
||||
[208] (byte*) initEntry::entryBufDisk1_$0#0 ← phi( main::@5/(byte*) initEntry::entry#0 main::@8/(byte*) initEntry::entry#1 )
|
||||
to:initEntry::entryBufDisk1
|
||||
initEntry::entryBufDisk1: scope:[initEntry] from initEntry
|
||||
[209] (byte**) initEntry::entryBufDisk1_return#0 ← ((byte**)) (byte*) initEntry::entryBufDisk1_$0#0
|
||||
to:initEntry::@1
|
||||
initEntry::@1: scope:[initEntry] from initEntry::entryBufDisk1
|
||||
[210] (byte/signed word/word/dword/signed dword~) initEntry::$1 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[211] *((byte**) initEntry::entryBufDisk1_return#0) ← ((byte*)) (byte/signed word/word/dword/signed dword~) initEntry::$1
|
||||
to:initEntry::entryBufEdit1
|
||||
initEntry::entryBufEdit1: scope:[initEntry] from initEntry::@1
|
||||
[212] (byte*) initEntry::entryBufEdit1_$0#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
[213] (byte**) initEntry::entryBufEdit1_return#0 ← ((byte**)) (byte*) initEntry::entryBufEdit1_$0#0
|
||||
to:initEntry::@2
|
||||
initEntry::@2: scope:[initEntry] from initEntry::entryBufEdit1
|
||||
[214] (byte/signed word/word/dword/signed dword~) initEntry::$3 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
[215] *((byte**) initEntry::entryBufEdit1_return#0) ← ((byte*)) (byte/signed word/word/dword/signed dword~) initEntry::$3
|
||||
to:initEntry::entryTsLen1
|
||||
initEntry::entryTsLen1: scope:[initEntry] from initEntry::@2
|
||||
[216] (byte*) initEntry::entryTsLen1_$0#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
[217] (word*) initEntry::entryTsLen1_return#0 ← ((word*)) (byte*) initEntry::entryTsLen1_$0#0
|
||||
to:initEntry::@3
|
||||
initEntry::@3: scope:[initEntry] from initEntry::entryTsLen1
|
||||
[218] (byte/signed word/word/dword/signed dword~) initEntry::$5 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
[219] *((word*) initEntry::entryTsLen1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$5
|
||||
to:initEntry::entryTsOrder1
|
||||
initEntry::entryTsOrder1: scope:[initEntry] from initEntry::@3
|
||||
[220] (byte*) initEntry::entryTsOrder1_$0#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
[221] (word**) initEntry::entryTsOrder1_return#0 ← ((word**)) (byte*) initEntry::entryTsOrder1_$0#0
|
||||
to:initEntry::@4
|
||||
initEntry::@4: scope:[initEntry] from initEntry::entryTsOrder1
|
||||
[222] (byte/signed word/word/dword/signed dword~) initEntry::$7 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
[223] *((word**) initEntry::entryTsOrder1_return#0) ← ((word*)) (byte/signed word/word/dword/signed dword~) initEntry::$7
|
||||
to:initEntry::entryTLastLink1
|
||||
initEntry::entryTLastLink1: scope:[initEntry] from initEntry::@4
|
||||
[224] (byte*) initEntry::entryTLastLink1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
to:initEntry::@5
|
||||
initEntry::@5: scope:[initEntry] from initEntry::entryTLastLink1
|
||||
[225] (byte/signed word/word/dword/signed dword~) initEntry::$9 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
[226] *((byte*) initEntry::entryTLastLink1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$9
|
||||
to:initEntry::entrySLastLink1
|
||||
initEntry::entrySLastLink1: scope:[initEntry] from initEntry::@5
|
||||
[227] (byte*) initEntry::entrySLastLink1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) 9
|
||||
to:initEntry::@6
|
||||
initEntry::@6: scope:[initEntry] from initEntry::entrySLastLink1
|
||||
[228] (byte/signed word/word/dword/signed dword~) initEntry::$11 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
[229] *((byte*) initEntry::entrySLastLink1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$11
|
||||
to:initEntry::entryBFlag1
|
||||
initEntry::entryBFlag1: scope:[initEntry] from initEntry::@6
|
||||
[230] (byte*) initEntry::entryBFlag1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $a
|
||||
to:initEntry::@7
|
||||
initEntry::@7: scope:[initEntry] from initEntry::entryBFlag1
|
||||
[231] (byte/signed word/word/dword/signed dword~) initEntry::$13 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
[232] *((byte*) initEntry::entryBFlag1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$13
|
||||
to:initEntry::entryBError1
|
||||
initEntry::entryBError1: scope:[initEntry] from initEntry::@7
|
||||
[233] (byte*) initEntry::entryBError1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $b
|
||||
to:initEntry::@8
|
||||
initEntry::@8: scope:[initEntry] from initEntry::entryBError1
|
||||
[234] (byte/signed word/word/dword/signed dword~) initEntry::$15 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
[235] *((byte*) initEntry::entryBError1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$15
|
||||
to:initEntry::entryUCross1
|
||||
initEntry::entryUCross1: scope:[initEntry] from initEntry::@8
|
||||
[236] (byte*) initEntry::entryUCross1_$0#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $c
|
||||
[237] (word*) initEntry::entryUCross1_return#0 ← ((word*)) (byte*) initEntry::entryUCross1_$0#0
|
||||
to:initEntry::@9
|
||||
initEntry::@9: scope:[initEntry] from initEntry::entryUCross1
|
||||
[238] (byte/signed word/word/dword/signed dword~) initEntry::$17 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) 9
|
||||
[239] *((word*) initEntry::entryUCross1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$17
|
||||
to:initEntry::entryBAddrLo1
|
||||
initEntry::entryBAddrLo1: scope:[initEntry] from initEntry::@9
|
||||
[240] (byte*) initEntry::entryBAddrLo1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $e
|
||||
to:initEntry::@10
|
||||
initEntry::@10: scope:[initEntry] from initEntry::entryBAddrLo1
|
||||
[241] (byte/signed word/word/dword/signed dword~) initEntry::$19 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) $a
|
||||
[242] *((byte*) initEntry::entryBAddrLo1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$19
|
||||
to:initEntry::entryBAddrHi1
|
||||
initEntry::entryBAddrHi1: scope:[initEntry] from initEntry::@10
|
||||
[243] (byte*) initEntry::entryBAddrHi1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $f
|
||||
to:initEntry::@11
|
||||
initEntry::@11: scope:[initEntry] from initEntry::entryBAddrHi1
|
||||
[244] (byte/signed word/word/dword/signed dword~) initEntry::$21 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) $b
|
||||
[245] *((byte*) initEntry::entryBAddrHi1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$21
|
||||
to:initEntry::entryTHi1
|
||||
initEntry::entryTHi1: scope:[initEntry] from initEntry::@11
|
||||
[246] (byte*) initEntry::entryTHi1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $10
|
||||
to:initEntry::@12
|
||||
initEntry::@12: scope:[initEntry] from initEntry::entryTHi1
|
||||
[247] (byte/signed word/word/dword/signed dword~) initEntry::$23 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) $c
|
||||
[248] *((byte*) initEntry::entryTHi1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$23
|
||||
to:initEntry::entryTLo1
|
||||
initEntry::entryTLo1: scope:[initEntry] from initEntry::@12
|
||||
[249] (byte*) initEntry::entryTLo1_return#0 ← (byte*) initEntry::entryBufDisk1_$0#0 + (byte/signed byte/word/signed word/dword/signed dword) $11
|
||||
to:initEntry::@13
|
||||
initEntry::@13: scope:[initEntry] from initEntry::entryTLo1
|
||||
[250] (byte/signed word/word/dword/signed dword~) initEntry::$25 ← (byte) initEntry::n#10 + (byte/signed byte/word/signed word/dword/signed dword) $d
|
||||
[251] *((byte*) initEntry::entryTLo1_return#0) ← (byte/signed word/word/dword/signed dword~) initEntry::$25
|
||||
to:initEntry::@return
|
||||
initEntry::@return: scope:[initEntry] from initEntry::@13
|
||||
[252] return
|
||||
to:@return
|
||||
mul8u: scope:[mul8u] from main::fileEntry1 main::fileEntry2
|
||||
[253] (byte) mul8u::a#6 ← phi( main::fileEntry1/(const byte) main::fileEntry1_idx#0 main::fileEntry2/(const byte) main::fileEntry2_idx#0 )
|
||||
to:mul8u::@1
|
||||
mul8u::@1: scope:[mul8u] from mul8u mul8u::@3
|
||||
[254] (word) mul8u::mb#2 ← phi( mul8u/((word))(const byte) ENTRY_SIZE#0 mul8u::@3/(word) mul8u::mb#1 )
|
||||
[254] (word) mul8u::res#2 ← phi( mul8u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul8u::@3/(word) mul8u::res#6 )
|
||||
[254] (byte) mul8u::a#3 ← phi( mul8u/(byte) mul8u::a#6 mul8u::@3/(byte) mul8u::a#0 )
|
||||
[255] if((byte) mul8u::a#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2
|
||||
to:mul8u::@return
|
||||
mul8u::@return: scope:[mul8u] from mul8u::@1
|
||||
[256] return
|
||||
to:@return
|
||||
mul8u::@2: scope:[mul8u] from mul8u::@1
|
||||
[257] (byte~) mul8u::$1 ← (byte) mul8u::a#3 & (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[258] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@3
|
||||
to:mul8u::@4
|
||||
mul8u::@4: scope:[mul8u] from mul8u::@2
|
||||
[259] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2
|
||||
to:mul8u::@3
|
||||
mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4
|
||||
[260] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@4/(word) mul8u::res#1 )
|
||||
[261] (byte) mul8u::a#0 ← (byte) mul8u::a#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[262] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
to:mul8u::@1
|
||||
keyboard_init: scope:[keyboard_init] from main
|
||||
[263] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff
|
||||
[264] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:keyboard_init::@return
|
||||
keyboard_init::@return: scope:[keyboard_init] from keyboard_init
|
||||
[265] return
|
||||
to:@return
|
11427
src/test/ref/semi-struct-2.log
Normal file
11427
src/test/ref/semi-struct-2.log
Normal file
File diff suppressed because one or more lines are too long
491
src/test/ref/semi-struct-2.sym
Normal file
491
src/test/ref/semi-struct-2.sym
Normal file
@ -0,0 +1,491 @@
|
||||
(label) @1
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) CIA1_PORT_A
|
||||
(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00
|
||||
(byte*) CIA1_PORT_A_DDR
|
||||
(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dc02
|
||||
(byte*) CIA1_PORT_B
|
||||
(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01
|
||||
(byte*) CIA1_PORT_B_DDR
|
||||
(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) $dc03
|
||||
(byte) ENTRY_SIZE
|
||||
(const byte) ENTRY_SIZE#0 ENTRY_SIZE = (byte/signed byte/word/signed word/dword/signed dword) $12
|
||||
(byte) KEY_SPACE
|
||||
(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c
|
||||
(byte) MAX_FILES
|
||||
(const byte) MAX_FILES#0 MAX_FILES = (byte/word/signed word/dword/signed dword) $90
|
||||
(byte[((word))MAX_FILES#0*ENTRY_SIZE#0]) files
|
||||
(const byte[((word))MAX_FILES#0*ENTRY_SIZE#0]) files#0 files = { fill( ((word))MAX_FILES#0*ENTRY_SIZE#0, 0) }
|
||||
(void()) initEntry((byte*) initEntry::entry , (byte) initEntry::n)
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$1 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$11 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$13 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$15 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$17 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$19 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$21 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$23 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$25 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$3 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$5 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$7 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) initEntry::$9 reg byte a 4.0
|
||||
(label) initEntry::@1
|
||||
(label) initEntry::@10
|
||||
(label) initEntry::@11
|
||||
(label) initEntry::@12
|
||||
(label) initEntry::@13
|
||||
(label) initEntry::@2
|
||||
(label) initEntry::@3
|
||||
(label) initEntry::@4
|
||||
(label) initEntry::@5
|
||||
(label) initEntry::@6
|
||||
(label) initEntry::@7
|
||||
(label) initEntry::@8
|
||||
(label) initEntry::@9
|
||||
(label) initEntry::@return
|
||||
(byte*) initEntry::entry
|
||||
(byte*) initEntry::entry#0 entry zp ZP_WORD:2 4.0
|
||||
(byte*) initEntry::entry#1 entry zp ZP_WORD:2 4.0
|
||||
(label) initEntry::entryBAddrHi1
|
||||
(byte*~) initEntry::entryBAddrHi1_$0
|
||||
(byte*) initEntry::entryBAddrHi1_entry
|
||||
(byte*) initEntry::entryBAddrHi1_return
|
||||
(byte*) initEntry::entryBAddrHi1_return#0 entryBAddrHi1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryBAddrLo1
|
||||
(byte*~) initEntry::entryBAddrLo1_$0
|
||||
(byte*) initEntry::entryBAddrLo1_entry
|
||||
(byte*) initEntry::entryBAddrLo1_return
|
||||
(byte*) initEntry::entryBAddrLo1_return#0 entryBAddrLo1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryBError1
|
||||
(byte*~) initEntry::entryBError1_$0
|
||||
(byte*) initEntry::entryBError1_entry
|
||||
(byte*) initEntry::entryBError1_return
|
||||
(byte*) initEntry::entryBError1_return#0 entryBError1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryBFlag1
|
||||
(byte*~) initEntry::entryBFlag1_$0
|
||||
(byte*) initEntry::entryBFlag1_entry
|
||||
(byte*) initEntry::entryBFlag1_return
|
||||
(byte*) initEntry::entryBFlag1_return#0 entryBFlag1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryBufDisk1
|
||||
(byte*~) initEntry::entryBufDisk1_$0
|
||||
(byte*) initEntry::entryBufDisk1_$0#0 entryBufDisk1_$0 zp ZP_WORD:2 0.7317073170731708
|
||||
(byte**~) initEntry::entryBufDisk1_$1
|
||||
(byte*) initEntry::entryBufDisk1_entry
|
||||
(byte**) initEntry::entryBufDisk1_return
|
||||
(byte**) initEntry::entryBufDisk1_return#0 entryBufDisk1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryBufEdit1
|
||||
(byte*~) initEntry::entryBufEdit1_$0
|
||||
(byte*) initEntry::entryBufEdit1_$0#0 entryBufEdit1_$0 zp ZP_WORD:6 4.0
|
||||
(byte**~) initEntry::entryBufEdit1_$1
|
||||
(byte*) initEntry::entryBufEdit1_entry
|
||||
(byte**) initEntry::entryBufEdit1_return
|
||||
(byte**) initEntry::entryBufEdit1_return#0 entryBufEdit1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entrySLastLink1
|
||||
(byte*~) initEntry::entrySLastLink1_$0
|
||||
(byte*) initEntry::entrySLastLink1_entry
|
||||
(byte*) initEntry::entrySLastLink1_return
|
||||
(byte*) initEntry::entrySLastLink1_return#0 entrySLastLink1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryTHi1
|
||||
(byte*~) initEntry::entryTHi1_$0
|
||||
(byte*) initEntry::entryTHi1_entry
|
||||
(byte*) initEntry::entryTHi1_return
|
||||
(byte*) initEntry::entryTHi1_return#0 entryTHi1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryTLastLink1
|
||||
(byte*~) initEntry::entryTLastLink1_$0
|
||||
(byte*) initEntry::entryTLastLink1_entry
|
||||
(byte*) initEntry::entryTLastLink1_return
|
||||
(byte*) initEntry::entryTLastLink1_return#0 entryTLastLink1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryTLo1
|
||||
(byte*~) initEntry::entryTLo1_$0
|
||||
(byte*) initEntry::entryTLo1_entry
|
||||
(byte*) initEntry::entryTLo1_return
|
||||
(byte*) initEntry::entryTLo1_return#0 entryTLo1_return zp ZP_WORD:2 2.0
|
||||
(label) initEntry::entryTsLen1
|
||||
(byte*~) initEntry::entryTsLen1_$0
|
||||
(byte*) initEntry::entryTsLen1_$0#0 entryTsLen1_$0 zp ZP_WORD:6 4.0
|
||||
(word*~) initEntry::entryTsLen1_$1
|
||||
(byte*) initEntry::entryTsLen1_entry
|
||||
(word*) initEntry::entryTsLen1_return
|
||||
(word*) initEntry::entryTsLen1_return#0 entryTsLen1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryTsOrder1
|
||||
(byte*~) initEntry::entryTsOrder1_$0
|
||||
(byte*) initEntry::entryTsOrder1_$0#0 entryTsOrder1_$0 zp ZP_WORD:6 4.0
|
||||
(word**~) initEntry::entryTsOrder1_$1
|
||||
(byte*) initEntry::entryTsOrder1_entry
|
||||
(word**) initEntry::entryTsOrder1_return
|
||||
(word**) initEntry::entryTsOrder1_return#0 entryTsOrder1_return zp ZP_WORD:6 2.0
|
||||
(label) initEntry::entryUCross1
|
||||
(byte*~) initEntry::entryUCross1_$0
|
||||
(byte*) initEntry::entryUCross1_$0#0 entryUCross1_$0 zp ZP_WORD:6 4.0
|
||||
(word*~) initEntry::entryUCross1_$1
|
||||
(byte*) initEntry::entryUCross1_entry
|
||||
(word*) initEntry::entryUCross1_return
|
||||
(word*) initEntry::entryUCross1_return#0 entryUCross1_return zp ZP_WORD:6 2.0
|
||||
(byte) initEntry::n
|
||||
(byte) initEntry::n#10 n zp ZP_BYTE:8 0.6190476190476191
|
||||
(void()) keyboard_init()
|
||||
(label) keyboard_init::@return
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$2 reg byte a 4.0
|
||||
(label) keyboard_key_pressed::@1
|
||||
(label) keyboard_key_pressed::@return
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(const byte) keyboard_key_pressed::colidx#0 colidx = (const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 reg byte a 6.0
|
||||
(byte) keyboard_key_pressed::return#2 reg byte a 22.0
|
||||
(byte) keyboard_key_pressed::return#3 reg byte a 22.0
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte[8]) keyboard_matrix_col_bitmask
|
||||
(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 }
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
(label) keyboard_matrix_read::@return
|
||||
(byte) keyboard_matrix_read::return
|
||||
(byte) keyboard_matrix_read::return#0 reg byte a 1.3333333333333333
|
||||
(byte) keyboard_matrix_read::return#2 reg byte a 4.0
|
||||
(byte) keyboard_matrix_read::row_pressed_bits
|
||||
(byte) keyboard_matrix_read::rowid
|
||||
(byte[8]) keyboard_matrix_row_bitmask
|
||||
(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f }
|
||||
(void()) main()
|
||||
(byte~) main::$20 reg byte a 22.0
|
||||
(byte~) main::$22 reg byte a 22.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@11
|
||||
(label) main::@12
|
||||
(label) main::@13
|
||||
(label) main::@14
|
||||
(label) main::@15
|
||||
(label) main::@16
|
||||
(label) main::@17
|
||||
(label) main::@18
|
||||
(label) main::@19
|
||||
(label) main::@2
|
||||
(label) main::@20
|
||||
(label) main::@21
|
||||
(label) main::@22
|
||||
(label) main::@23
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@8
|
||||
(label) main::@9
|
||||
(label) main::@return
|
||||
(byte*) main::entry1
|
||||
(byte*) main::entry1#0 entry1 zp ZP_WORD:4 0.3157894736842105
|
||||
(byte*) main::entry2
|
||||
(byte*) main::entry2#0 entry2 zp ZP_WORD:9 0.17142857142857143
|
||||
(label) main::fileEntry1
|
||||
(word~) main::fileEntry1_$0
|
||||
(word) main::fileEntry1_$0#0 fileEntry1_$0 zp ZP_WORD:4 4.0
|
||||
(byte*~) main::fileEntry1_$1
|
||||
(byte) main::fileEntry1_idx
|
||||
(const byte) main::fileEntry1_idx#0 fileEntry1_idx = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(byte*) main::fileEntry1_return
|
||||
(label) main::fileEntry2
|
||||
(word~) main::fileEntry2_$0
|
||||
(word) main::fileEntry2_$0#0 fileEntry2_$0 zp ZP_WORD:9 4.0
|
||||
(byte*~) main::fileEntry2_$1
|
||||
(byte) main::fileEntry2_idx
|
||||
(const byte) main::fileEntry2_idx#0 fileEntry2_idx = (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
(byte*) main::fileEntry2_return
|
||||
(const string) main::str str = (string) "** entry 1 **@"
|
||||
(const string) main::str1 str1 = (string) "- press space -@"
|
||||
(const string) main::str2 str2 = (string) "** entry 2 **@"
|
||||
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
|
||||
(byte~) mul8u::$1 reg byte a 22.0
|
||||
(label) mul8u::@1
|
||||
(label) mul8u::@2
|
||||
(label) mul8u::@3
|
||||
(label) mul8u::@4
|
||||
(label) mul8u::@return
|
||||
(byte) mul8u::a
|
||||
(byte) mul8u::a#0 reg byte x 11.0
|
||||
(byte) mul8u::a#3 reg byte x 7.666666666666666
|
||||
(byte) mul8u::a#6 reg byte x 2.0
|
||||
(byte) mul8u::b
|
||||
(word) mul8u::mb
|
||||
(word) mul8u::mb#1 mb zp ZP_WORD:2 22.0
|
||||
(word) mul8u::mb#2 mb zp ZP_WORD:2 4.714285714285714
|
||||
(word) mul8u::res
|
||||
(word) mul8u::res#1 res zp ZP_WORD:9 22.0
|
||||
(word) mul8u::res#2 res zp ZP_WORD:9 5.285714285714286
|
||||
(word) mul8u::res#6 res zp ZP_WORD:9 11.0
|
||||
(word) mul8u::return
|
||||
(word) mul8u::return#2 return zp ZP_WORD:9 4.0
|
||||
(word) mul8u::return#3 return zp ZP_WORD:9 4.0
|
||||
(void()) printEntry((byte*) printEntry::entry)
|
||||
(label) printEntry::@1
|
||||
(label) printEntry::@10
|
||||
(label) printEntry::@11
|
||||
(label) printEntry::@12
|
||||
(label) printEntry::@13
|
||||
(label) printEntry::@14
|
||||
(label) printEntry::@15
|
||||
(label) printEntry::@16
|
||||
(label) printEntry::@17
|
||||
(label) printEntry::@18
|
||||
(label) printEntry::@19
|
||||
(label) printEntry::@2
|
||||
(label) printEntry::@20
|
||||
(label) printEntry::@21
|
||||
(label) printEntry::@22
|
||||
(label) printEntry::@23
|
||||
(label) printEntry::@24
|
||||
(label) printEntry::@25
|
||||
(label) printEntry::@26
|
||||
(label) printEntry::@27
|
||||
(label) printEntry::@28
|
||||
(label) printEntry::@29
|
||||
(label) printEntry::@3
|
||||
(label) printEntry::@30
|
||||
(label) printEntry::@31
|
||||
(label) printEntry::@32
|
||||
(label) printEntry::@33
|
||||
(label) printEntry::@34
|
||||
(label) printEntry::@35
|
||||
(label) printEntry::@36
|
||||
(label) printEntry::@37
|
||||
(label) printEntry::@38
|
||||
(label) printEntry::@4
|
||||
(label) printEntry::@5
|
||||
(label) printEntry::@6
|
||||
(label) printEntry::@7
|
||||
(label) printEntry::@8
|
||||
(label) printEntry::@9
|
||||
(label) printEntry::@return
|
||||
(byte*) printEntry::entry
|
||||
(byte*) printEntry::entry#0 entry zp ZP_WORD:4 4.0
|
||||
(byte*) printEntry::entry#1 entry zp ZP_WORD:4 4.0
|
||||
(label) printEntry::entryBAddrHi1
|
||||
(byte*~) printEntry::entryBAddrHi1_$0
|
||||
(byte*) printEntry::entryBAddrHi1_entry
|
||||
(byte*) printEntry::entryBAddrHi1_return
|
||||
(byte*) printEntry::entryBAddrHi1_return#0 entryBAddrHi1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryBAddrLo1
|
||||
(byte*~) printEntry::entryBAddrLo1_$0
|
||||
(byte*) printEntry::entryBAddrLo1_entry
|
||||
(byte*) printEntry::entryBAddrLo1_return
|
||||
(byte*) printEntry::entryBAddrLo1_return#0 entryBAddrLo1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryBError1
|
||||
(byte*~) printEntry::entryBError1_$0
|
||||
(byte*) printEntry::entryBError1_entry
|
||||
(byte*) printEntry::entryBError1_return
|
||||
(byte*) printEntry::entryBError1_return#0 entryBError1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryBFlag1
|
||||
(byte*~) printEntry::entryBFlag1_$0
|
||||
(byte*) printEntry::entryBFlag1_entry
|
||||
(byte*) printEntry::entryBFlag1_return
|
||||
(byte*) printEntry::entryBFlag1_return#0 entryBFlag1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryBufDisk1
|
||||
(byte*~) printEntry::entryBufDisk1_$0
|
||||
(byte*) printEntry::entryBufDisk1_$0#0 entryBufDisk1_$0 zp ZP_WORD:4 0.3296703296703296
|
||||
(byte**~) printEntry::entryBufDisk1_$1
|
||||
(byte*) printEntry::entryBufDisk1_entry
|
||||
(byte**) printEntry::entryBufDisk1_return
|
||||
(byte**) printEntry::entryBufDisk1_return#0 entryBufDisk1_return zp ZP_WORD:2 2.0
|
||||
(label) printEntry::entryBufEdit1
|
||||
(byte*~) printEntry::entryBufEdit1_$0
|
||||
(byte*) printEntry::entryBufEdit1_$0#0 entryBufEdit1_$0 zp ZP_WORD:2 4.0
|
||||
(byte**~) printEntry::entryBufEdit1_$1
|
||||
(byte*) printEntry::entryBufEdit1_entry
|
||||
(byte**) printEntry::entryBufEdit1_return
|
||||
(byte**) printEntry::entryBufEdit1_return#0 entryBufEdit1_return zp ZP_WORD:2 2.0
|
||||
(label) printEntry::entrySLastLink1
|
||||
(byte*~) printEntry::entrySLastLink1_$0
|
||||
(byte*) printEntry::entrySLastLink1_entry
|
||||
(byte*) printEntry::entrySLastLink1_return
|
||||
(byte*) printEntry::entrySLastLink1_return#0 entrySLastLink1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryTHi1
|
||||
(byte*~) printEntry::entryTHi1_$0
|
||||
(byte*) printEntry::entryTHi1_entry
|
||||
(byte*) printEntry::entryTHi1_return
|
||||
(byte*) printEntry::entryTHi1_return#0 entryTHi1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryTLastLink1
|
||||
(byte*~) printEntry::entryTLastLink1_$0
|
||||
(byte*) printEntry::entryTLastLink1_entry
|
||||
(byte*) printEntry::entryTLastLink1_return
|
||||
(byte*) printEntry::entryTLastLink1_return#0 entryTLastLink1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryTLo1
|
||||
(byte*~) printEntry::entryTLo1_$0
|
||||
(byte*) printEntry::entryTLo1_entry
|
||||
(byte*) printEntry::entryTLo1_return
|
||||
(byte*) printEntry::entryTLo1_return#0 entryTLo1_return zp ZP_WORD:4 4.0
|
||||
(label) printEntry::entryTsLen1
|
||||
(byte*~) printEntry::entryTsLen1_$0
|
||||
(byte*) printEntry::entryTsLen1_$0#0 entryTsLen1_$0 zp ZP_WORD:2 4.0
|
||||
(word*~) printEntry::entryTsLen1_$1
|
||||
(byte*) printEntry::entryTsLen1_entry
|
||||
(word*) printEntry::entryTsLen1_return
|
||||
(word*) printEntry::entryTsLen1_return#0 entryTsLen1_return zp ZP_WORD:2 4.0
|
||||
(label) printEntry::entryTsOrder1
|
||||
(byte*~) printEntry::entryTsOrder1_$0
|
||||
(byte*) printEntry::entryTsOrder1_$0#0 entryTsOrder1_$0 zp ZP_WORD:2 4.0
|
||||
(word**~) printEntry::entryTsOrder1_$1
|
||||
(byte*) printEntry::entryTsOrder1_entry
|
||||
(word**) printEntry::entryTsOrder1_return
|
||||
(word**) printEntry::entryTsOrder1_return#0 entryTsOrder1_return zp ZP_WORD:2 2.0
|
||||
(label) printEntry::entryUCross1
|
||||
(byte*~) printEntry::entryUCross1_$0
|
||||
(byte*) printEntry::entryUCross1_$0#0 entryUCross1_$0 zp ZP_WORD:2 4.0
|
||||
(word*~) printEntry::entryUCross1_$1
|
||||
(byte*) printEntry::entryUCross1_entry
|
||||
(word*) printEntry::entryUCross1_return
|
||||
(word*) printEntry::entryUCross1_return#0 entryUCross1_return zp ZP_WORD:2 4.0
|
||||
(const string) printEntry::str str = (string) "bufdisk @"
|
||||
(const string) printEntry::str1 str1 = (string) "bufedit @"
|
||||
(const string) printEntry::str10 str10 = (string) "baddrhi @"
|
||||
(const string) printEntry::str11 str11 = (string) "thi @"
|
||||
(const string) printEntry::str12 str12 = (string) "tlo @"
|
||||
(const string) printEntry::str2 str2 = (string) "tslen @"
|
||||
(const string) printEntry::str3 str3 = (string) "tsorder @"
|
||||
(const string) printEntry::str4 str4 = (string) "tlastlink @"
|
||||
(const string) printEntry::str5 str5 = (string) "slastlink @"
|
||||
(const string) printEntry::str6 str6 = (string) "bflag @"
|
||||
(const string) printEntry::str7 str7 = (string) "berror @"
|
||||
(const string) printEntry::str8 str8 = (string) "ucross @"
|
||||
(const string) printEntry::str9 str9 = (string) "baddrlo @"
|
||||
(void()) print_byte((byte) print_byte::b)
|
||||
(byte~) print_byte::$0 reg byte a 4.0
|
||||
(byte~) print_byte::$2 reg byte x 4.0
|
||||
(label) print_byte::@1
|
||||
(label) print_byte::@return
|
||||
(byte) print_byte::b
|
||||
(byte) print_byte::b#0 reg byte x 4.0
|
||||
(byte) print_byte::b#1 reg byte x 4.0
|
||||
(byte) print_byte::b#10 reg byte x 6.0
|
||||
(byte) print_byte::b#2 reg byte x 4.0
|
||||
(byte) print_byte::b#3 reg byte x 4.0
|
||||
(byte) print_byte::b#4 reg byte x 4.0
|
||||
(byte) print_byte::b#5 reg byte x 4.0
|
||||
(byte) print_byte::b#6 reg byte x 4.0
|
||||
(byte) print_byte::b#7 reg byte x 4.0
|
||||
(byte) print_byte::b#8 reg byte x 4.0
|
||||
(byte) print_byte::b#9 reg byte x 4.0
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
(label) print_char::@return
|
||||
(byte) print_char::ch
|
||||
(byte) print_char::ch#0 reg byte a 4.0
|
||||
(byte) print_char::ch#1 reg byte a 4.0
|
||||
(byte) print_char::ch#2 reg byte a 6.0
|
||||
(byte*) print_char_cursor
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:6 11.0
|
||||
(byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:6 0.8648648648648649
|
||||
(byte*) print_char_cursor#142 print_char_cursor zp ZP_WORD:6 1.0754716981132075
|
||||
(byte*) print_char_cursor#143 print_char_cursor zp ZP_WORD:6 9.800000000000002
|
||||
(byte*) print_char_cursor#145 print_char_cursor zp ZP_WORD:6 7.333333333333334
|
||||
(byte*) print_char_cursor#164 print_char_cursor zp ZP_WORD:6 32.0
|
||||
(byte*~) print_char_cursor#212 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#213 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#214 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#215 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#216 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#217 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#218 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#219 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#220 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#221 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#222 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#223 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#224 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#225 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#226 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#230 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#231 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#233 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) print_char_cursor#234 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*) print_char_cursor#82 print_char_cursor zp ZP_WORD:6 4.0
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
|
||||
(byte[]) print_hextab
|
||||
(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef"
|
||||
(byte*) print_line_cursor
|
||||
(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:11 1.03960396039604
|
||||
(byte*~) print_line_cursor#159 print_line_cursor#159 zp ZP_WORD:2 2.0
|
||||
(byte*~) print_line_cursor#160 print_line_cursor#160 zp ZP_WORD:2 2.0
|
||||
(byte*~) print_line_cursor#161 print_line_cursor#161 zp ZP_WORD:2 2.0
|
||||
(byte*~) print_line_cursor#162 print_line_cursor#162 zp ZP_WORD:2 2.0
|
||||
(byte*~) print_line_cursor#163 print_line_cursor#163 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#164 print_line_cursor#164 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#165 print_line_cursor#165 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#166 print_line_cursor#166 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#167 print_line_cursor#167 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#168 print_line_cursor#168 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#169 print_line_cursor#169 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#170 print_line_cursor#170 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#171 print_line_cursor#171 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#172 print_line_cursor#172 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#173 print_line_cursor#173 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#174 print_line_cursor#174 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#175 print_line_cursor#175 zp ZP_WORD:2 4.0
|
||||
(byte*~) print_line_cursor#177 print_line_cursor#177 zp ZP_WORD:2 22.0
|
||||
(byte*) print_line_cursor#32 print_line_cursor#32 zp ZP_WORD:2 24.0
|
||||
(byte*) print_line_cursor#63 print_line_cursor#63 zp ZP_WORD:2 36.0
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@2
|
||||
(label) print_ln::@return
|
||||
(byte*) print_screen
|
||||
(void()) print_str((byte*) print_str::str)
|
||||
(label) print_str::@1
|
||||
(label) print_str::@2
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:2 22.0
|
||||
(byte*) print_str::str#18 str zp ZP_WORD:2 11.5
|
||||
(byte*) print_str::str#20 str zp ZP_WORD:2 2.0
|
||||
(void()) print_word((word) print_word::w)
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word~) print_word::w#10 w zp ZP_WORD:2 4.0
|
||||
(word) print_word::w#2 w zp ZP_WORD:2 4.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:2 4.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:2 4.666666666666666
|
||||
(word~) print_word::w#7 w zp ZP_WORD:2 4.0
|
||||
(word~) print_word::w#8 w zp ZP_WORD:2 4.0
|
||||
|
||||
zp ZP_WORD:2 [ print_cls::sc#2 print_cls::sc#1 print_str::str#18 print_str::str#20 print_str::str#0 print_line_cursor#32 print_line_cursor#63 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#172 print_line_cursor#173 print_line_cursor#174 print_line_cursor#175 print_line_cursor#177 print_word::w#5 print_word::w#7 print_word::w#8 print_word::w#2 print_word::w#10 print_word::w#4 printEntry::entryBufDisk1_return#0 printEntry::entryBufEdit1_return#0 printEntry::entryTsLen1_return#0 printEntry::entryTsOrder1_return#0 printEntry::entryUCross1_return#0 printEntry::entryBufEdit1_$0#0 printEntry::entryTsLen1_$0#0 printEntry::entryTsOrder1_$0#0 printEntry::entryUCross1_$0#0 initEntry::entryBufDisk1_$0#0 initEntry::entry#0 initEntry::entry#1 initEntry::entryTLo1_return#0 mul8u::mb#2 mul8u::mb#1 printEntry::entryTLastLink1_return#0 printEntry::entrySLastLink1_return#0 printEntry::entryBFlag1_return#0 printEntry::entryBError1_return#0 printEntry::entryBAddrLo1_return#0 printEntry::entryBAddrHi1_return#0 printEntry::entryTHi1_return#0 ]
|
||||
zp ZP_WORD:4 [ printEntry::entryBufDisk1_$0#0 printEntry::entry#0 printEntry::entry#1 main::entry1#0 printEntry::entryTLo1_return#0 main::fileEntry1_$0#0 ]
|
||||
reg byte x [ print_byte::b#10 print_byte::b#6 print_byte::b#7 print_byte::b#8 print_byte::b#9 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#0 print_byte::b#1 ]
|
||||
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||
zp ZP_WORD:6 [ print_char_cursor#82 print_char_cursor#145 print_char_cursor#143 print_char_cursor#142 print_char_cursor#164 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#224 print_char_cursor#225 print_char_cursor#226 print_char_cursor#1 print_char_cursor#230 print_char_cursor#231 print_char_cursor#233 print_char_cursor#234 print_char_cursor#11 initEntry::entryBufDisk1_return#0 initEntry::entryBufEdit1_$0#0 initEntry::entryBufEdit1_return#0 initEntry::entryTsLen1_$0#0 initEntry::entryTsLen1_return#0 initEntry::entryTsOrder1_$0#0 initEntry::entryTsOrder1_return#0 initEntry::entryTLastLink1_return#0 initEntry::entrySLastLink1_return#0 initEntry::entryBFlag1_return#0 initEntry::entryBError1_return#0 initEntry::entryUCross1_$0#0 initEntry::entryUCross1_return#0 initEntry::entryBAddrLo1_return#0 initEntry::entryBAddrHi1_return#0 initEntry::entryTHi1_return#0 ]
|
||||
zp ZP_BYTE:8 [ initEntry::n#10 ]
|
||||
reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ]
|
||||
zp ZP_WORD:9 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u::return#3 main::fileEntry2_$0#0 main::entry2#0 ]
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ main::$20 ]
|
||||
reg byte a [ keyboard_key_pressed::return#3 ]
|
||||
reg byte a [ main::$22 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
reg byte a [ keyboard_key_pressed::$2 ]
|
||||
reg byte a [ keyboard_key_pressed::return#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
zp ZP_WORD:11 [ print_line_cursor#1 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte x [ print_byte::$2 ]
|
||||
reg byte a [ initEntry::$1 ]
|
||||
reg byte a [ initEntry::$3 ]
|
||||
reg byte a [ initEntry::$5 ]
|
||||
reg byte a [ initEntry::$7 ]
|
||||
reg byte a [ initEntry::$9 ]
|
||||
reg byte a [ initEntry::$11 ]
|
||||
reg byte a [ initEntry::$13 ]
|
||||
reg byte a [ initEntry::$15 ]
|
||||
reg byte a [ initEntry::$17 ]
|
||||
reg byte a [ initEntry::$19 ]
|
||||
reg byte a [ initEntry::$21 ]
|
||||
reg byte a [ initEntry::$23 ]
|
||||
reg byte a [ initEntry::$25 ]
|
||||
reg byte a [ mul8u::$1 ]
|
Loading…
Reference in New Issue
Block a user