From 0ad76c4a448e0cfad0f7b8ea18ee0f1e3d476abe Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Fri, 8 Jan 2021 04:39:43 +0100 Subject: [PATCH] Cleanup --- .build/main.asm | 1008 -------------------------------------------- .build/main.lst | 1023 --------------------------------------------- .build/main.rel | 516 ----------------------- .build/main.sym | 65 --- .build/tetris.com | Bin 1462 -> 0 bytes .build/tetris.ihx | 49 --- .gitignore | 1 + src/main.c | 6 +- 8 files changed, 6 insertions(+), 2662 deletions(-) delete mode 100644 .build/main.asm delete mode 100644 .build/main.lst delete mode 100644 .build/main.rel delete mode 100644 .build/main.sym delete mode 100644 .build/tetris.com delete mode 100644 .build/tetris.ihx create mode 100644 .gitignore diff --git a/.build/main.asm b/.build/main.asm deleted file mode 100644 index ede7446..0000000 --- a/.build/main.asm +++ /dev/null @@ -1,1008 +0,0 @@ -;-------------------------------------------------------- -; File Created by SDCC : free open source ANSI-C Compiler -; Version 4.0.0 #11528 (Linux) -;-------------------------------------------------------- - .module main - .optsdcc -mz80 - -;-------------------------------------------------------- -; Public variables in this module -;-------------------------------------------------------- - .globl _main - .globl _loop - .globl _draw - .globl _render - .globl _new_shape - .globl _does_piece_fit - .globl _initialize_field - .globl _rotate - .globl _construct_shapes - .globl _random - .globl _put_string - .globl _counter - .globl _current_y - .globl _current_x - .globl _current_rotation - .globl _current_shape - .globl _seed - .globl _screen - .globl _field - .globl _tetromino -;-------------------------------------------------------- -; special function registers -;-------------------------------------------------------- -_cout = 0x0002 -_status = 0x001f -_key = 0x001e -;-------------------------------------------------------- -; ram data -;-------------------------------------------------------- - .area _DATA -_tetromino:: - .ds 14 -_field:: - .ds 216 -_screen:: - .ds 216 -_seed:: - .ds 1 -;-------------------------------------------------------- -; ram data -;-------------------------------------------------------- - .area _INITIALIZED -_current_shape:: - .ds 1 -_current_rotation:: - .ds 1 -_current_x:: - .ds 1 -_current_y:: - .ds 1 -_counter:: - .ds 1 -;-------------------------------------------------------- -; absolute external ram data -;-------------------------------------------------------- - .area _DABS (ABS) -;-------------------------------------------------------- -; global & static initialisations -;-------------------------------------------------------- - .area _HOME - .area _GSINIT - .area _GSFINAL - .area _GSINIT -;-------------------------------------------------------- -; Home -;-------------------------------------------------------- - .area _HOME - .area _HOME -;-------------------------------------------------------- -; code -;-------------------------------------------------------- - .area _CODE -;src/main.c:12: void construct_shapes() { -; --------------------------------- -; Function construct_shapes -; --------------------------------- -_construct_shapes:: -;src/main.c:13: tetromino[0] = "..X." - ld hl, #___str_0 - ld (_tetromino), hl -;src/main.c:18: tetromino[1] = "..X." - ld hl, #___str_1 - ld ((_tetromino + 0x0002)), hl -;src/main.c:23: tetromino[2] = ".X.." - ld hl, #___str_2 - ld ((_tetromino + 0x0004)), hl -;src/main.c:28: tetromino[3] = "..X." - ld hl, #___str_3 - ld ((_tetromino + 0x0006)), hl -;src/main.c:33: tetromino[4] = ".X.." - ld hl, #___str_4 - ld ((_tetromino + 0x0008)), hl -;src/main.c:38: tetromino[5] = "..X." - ld hl, #___str_5 - ld ((_tetromino + 0x000a)), hl -;src/main.c:43: tetromino[6] = "...." - ld hl, #___str_6 - ld ((_tetromino + 0x000c)), hl -;src/main.c:47: } - ret -___str_0: - .ascii "..X...X...X...X." - .db 0x00 -___str_1: - .ascii "..X..XX..X......" - .db 0x00 -___str_2: - .ascii ".X...XX...X....." - .db 0x00 -___str_3: - .ascii "..X...X..XX....." - .db 0x00 -___str_4: - .ascii ".X...X...XX....." - .db 0x00 -___str_5: - .ascii "..X..XX...X....." - .db 0x00 -___str_6: - .ascii ".....XX..XX....." - .db 0x00 -;src/main.c:49: uint8_t rotate(uint8_t x, uint8_t y, uint8_t r) { -; --------------------------------- -; Function rotate -; --------------------------------- -_rotate:: - push ix - ld ix,#0 - add ix,sp - dec sp -;src/main.c:52: return y*4+x; - ld a, 5 (ix) - ld c, 4 (ix) - add a, a - add a, a - ld l, a -;src/main.c:50: switch (r) { - ld a, 6 (ix) - or a, a - jr Z,00101$ -;src/main.c:54: return 12 + y - x*4; - ld e, 5 (ix) - ld a, 4 (ix) - add a, a - add a, a - ld -1 (ix), a -;src/main.c:50: switch (r) { - ld a, 6 (ix) - dec a - jr Z,00102$ - ld a, 6 (ix) - sub a, #0x02 - jr Z,00103$ - ld a, 6 (ix) - sub a, #0x03 - jr Z,00104$ - jr 00105$ -;src/main.c:51: case 0: -00101$: -;src/main.c:52: return y*4+x; - add hl, bc - jr 00106$ -;src/main.c:53: case 1: -00102$: -;src/main.c:54: return 12 + y - x*4; - ld a, e - add a, #0x0c - sub a, -1 (ix) - ld l, a - jr 00106$ -;src/main.c:55: case 2: -00103$: -;src/main.c:56: return 15 - y*4 - x; - ld a, #0x0f - sub a, l - sub a, c - ld l, a - jr 00106$ -;src/main.c:57: case 3: -00104$: -;src/main.c:58: return 3 - y + x*4; - ld a, #0x03 - sub a, e - add a, -1 (ix) - ld l, a - jr 00106$ -;src/main.c:59: } -00105$: -;src/main.c:60: return 0; - ld l, #0x00 -00106$: -;src/main.c:61: } - inc sp - pop ix - ret -;src/main.c:63: void initialize_field() { -; --------------------------------- -; Function initialize_field -; --------------------------------- -_initialize_field:: - push ix - ld ix,#0 - add ix,sp - push af - dec sp -;src/main.c:64: for (uint8_t y = 0; y < HEIGHT; ++y) { - ld c, #0x00 -00107$: -;src/main.c:65: for (uint8_t x = 0; x < WIDTH; ++x) { - ld a,c - cp a,#0x12 - jr NC,00109$ - sub a, #0x11 - ld a, #0x01 - jr Z,00153$ - xor a, a -00153$: - ld -3 (ix), a - ld e, #0x00 -00104$: - ld a, e - sub a, #0x0c - jr NC,00108$ -;src/main.c:66: field[y*WIDTH + x] = (x == 0 || x == WIDTH - 1 || y == HEIGHT-1) ? 9 : 0; - ld l, c - ld h, #0x00 - push de - ld e, l - ld d, h - add hl, hl - add hl, de - add hl, hl - add hl, hl - pop de - ld a, e - ld d, #0x00 - add a, l - ld l, a - ld a, d - adc a, h - ld h, a - ld a, l - add a, #<(_field) - ld -2 (ix), a - ld a, h - adc a, #>(_field) - ld -1 (ix), a - ld a, e - or a, a - jr Z,00114$ - ld a, e - sub a, #0x0b - jr Z,00114$ - bit 0, -3 (ix) - jr Z,00111$ -00114$: - ld hl, #0x0009 - jr 00112$ -00111$: - ld hl, #0x0000 -00112$: - ld a, l - ld l, -2 (ix) - ld h, -1 (ix) - ld (hl), a -;src/main.c:65: for (uint8_t x = 0; x < WIDTH; ++x) { - inc e - jr 00104$ -00108$: -;src/main.c:64: for (uint8_t y = 0; y < HEIGHT; ++y) { - inc c - jr 00107$ -00109$: -;src/main.c:69: } - ld sp, ix - pop ix - ret -;src/main.c:71: uint8_t does_piece_fit(uint8_t shape, uint8_t rotation, uint8_t px, uint8_t py) { -; --------------------------------- -; Function does_piece_fit -; --------------------------------- -_does_piece_fit:: - push ix - ld ix,#0 - add ix,sp - push af - push af -;src/main.c:72: for (uint8_t y = 0; y < 4; ++y) { - ld c, #0x00 -00116$: - ld a, c - sub a, #0x04 - jp NC, 00111$ -;src/main.c:73: for (uint8_t x = 0; x < 4; ++x) { - ld a, 7 (ix) - add a, c - ld -4 (ix), a - xor a, a - ld -1 (ix), a -00113$: - ld a, -1 (ix) - sub a, #0x04 - jp NC, 00117$ -;src/main.c:75: uint8_t pi = rotate(x, y, rotation); - push bc - ld b, 5 (ix) - push bc - ld a, -1 (ix) - push af - inc sp - call _rotate - pop af - inc sp - pop bc - ld -3 (ix), l -;src/main.c:78: uint8_t fi = (py + y) * WIDTH + px + x; - ld a, -4 (ix) - ld e, a - add a, a - add a, e - add a, a - add a, a - ld b, 6 (ix) - add a, b - ld b, -1 (ix) - add a, b - ld -2 (ix), a -;src/main.c:80: if (px + x >= 0 && px + x < WIDTH) { - ld e, 6 (ix) - ld d, #0x00 - ld l, -1 (ix) - ld h, #0x00 - add hl, de - bit 7, h - jr NZ,00114$ - ld de, #0x800c - add hl, hl - ccf - rr h - rr l - sbc hl, de - jr NC,00114$ -;src/main.c:81: if (py + y >= 0 && py + y < HEIGHT) { - ld e, 7 (ix) - ld d, #0x00 - ld l, c - ld h, #0x00 - add hl, de - bit 7, h - jr NZ,00114$ - ld de, #0x8012 - add hl, hl - ccf - rr h - rr l - sbc hl, de - jr NC,00114$ -;src/main.c:83: if (tetromino[shape][pi] == 'X' && field[fi] != 0) { - ld l, 4 (ix) - ld h, #0x00 - add hl, hl - ld de, #_tetromino - add hl, de - ld e, (hl) - inc hl - ld d, (hl) - ld l, -3 (ix) - ld h, #0x00 - add hl, de - ld a, (hl) - sub a, #0x58 - jr NZ,00114$ - ld a, -2 (ix) - add a, #<(_field) - ld e, a - ld a, #0x00 - adc a, #>(_field) - ld d, a - ld a, (de) - or a, a - jr Z,00114$ -;src/main.c:84: return 0; - ld l, #0x00 - jr 00118$ -00114$: -;src/main.c:73: for (uint8_t x = 0; x < 4; ++x) { - inc -1 (ix) - jp 00113$ -00117$: -;src/main.c:72: for (uint8_t y = 0; y < 4; ++y) { - inc c - jp 00116$ -00111$: -;src/main.c:91: return 1; - ld l, #0x01 -00118$: -;src/main.c:92: } - ld sp, ix - pop ix - ret -;src/main.c:99: void new_shape() { -; --------------------------------- -; Function new_shape -; --------------------------------- -_new_shape:: -;src/main.c:100: do { -00101$: -;src/main.c:101: current_shape = random() & 0x07; - call _random - ld a, l - and a, #0x07 - ld (_current_shape+0), a -;src/main.c:102: } while (current_shape == 7); - ld a,(#_current_shape + 0) - sub a, #0x07 - jr Z,00101$ -;src/main.c:103: } - ret -;src/main.c:105: void render() { -; --------------------------------- -; Function render -; --------------------------------- -_render:: - push ix - ld ix,#0 - add ix,sp - push af - push af -;src/main.c:107: for (uint8_t i = 0; i < WIDTH*HEIGHT; ++i) { - ld bc, #_screen+0 - ld de, #_field+0 - xor a, a - ld -1 (ix), a -00107$: - ld a, -1 (ix) - sub a, #0xd8 - jr NC,00101$ -;src/main.c:108: screen[i] = field[i]; - ld a, c - add a, -1 (ix) - ld -3 (ix), a - ld a, b - adc a, #0x00 - ld -2 (ix), a - ld l, -1 (ix) - ld h, #0x00 - add hl, de - ld a, (hl) - ld l, -3 (ix) - ld h, -2 (ix) - ld (hl), a -;src/main.c:107: for (uint8_t i = 0; i < WIDTH*HEIGHT; ++i) { - inc -1 (ix) - jr 00107$ -00101$: -;src/main.c:112: for (uint8_t y = 0; y < 4; ++y) { - ld e, #0x00 -00113$: - ld a, e - sub a, #0x04 - jp NC, 00115$ -;src/main.c:113: for (uint8_t x = 0; x < 4; ++x) { - ld d, #0x00 -00110$: - ld a, d - sub a, #0x04 - jp NC, 00114$ -;src/main.c:114: if (tetromino[current_shape][rotate(x, y, current_rotation)] == 'X') { - ld iy, #_current_shape - ld l, 0 (iy) - ld h, #0x00 - add hl, hl - ld a, #<(_tetromino) - add a, l - ld l, a - ld a, #>(_tetromino) - adc a, h - ld h, a - ld a, (hl) - ld -2 (ix), a - inc hl - ld a, (hl) - ld -1 (ix), a - push bc - push de - ld a, (_current_rotation) - push af - inc sp - ld a, e - push af - inc sp - push de - inc sp - call _rotate - pop af - inc sp - ld a, l - pop de - pop bc - add a, -2 (ix) - ld l, a - ld a, #0x00 - adc a, -1 (ix) - ld h, a - ld a, (hl) - sub a, #0x58 - jr NZ,00111$ -;src/main.c:115: screen[(current_y+y)*WIDTH + current_x + x] = current_shape + 1; - ld iy, #_current_y - ld l, 0 (iy) - ld h, #0x00 - ld -2 (ix), e - xor a, a - ld -1 (ix), a - ld a, -2 (ix) - add a, l - ld l, a - ld a, -1 (ix) - adc a, h - ld h, a - push de - ld e, l - ld d, h - add hl, hl - add hl, de - add hl, hl - add hl, hl - pop de - ex (sp), hl - ld a,(#_current_x + 0) - ld h, #0x00 - add a, -4 (ix) - ld -2 (ix), a - ld a, h - adc a, -3 (ix) - ld -1 (ix), a - ld l, d - ld h, #0x00 - ld a, l - add a, -2 (ix) - ld l, a - ld a, h - adc a, -1 (ix) - ld h, a - add hl, bc - ld -2 (ix), l - ld -1 (ix), h - ld a,(#_current_shape + 0) - inc a - ld l, -2 (ix) - ld h, -1 (ix) - ld (hl), a -00111$: -;src/main.c:113: for (uint8_t x = 0; x < 4; ++x) { - inc d - jp 00110$ -00114$: -;src/main.c:112: for (uint8_t y = 0; y < 4; ++y) { - inc e - jp 00113$ -00115$: -;src/main.c:119: } - ld sp, ix - pop ix - ret -;src/main.c:122: void draw() { -; --------------------------------- -; Function draw -; --------------------------------- -_draw:: - push ix - ld ix,#0 - add ix,sp - dec sp -;src/main.c:124: put_string("\033[2;2H"); - ld hl, #___str_8 - push hl - call _put_string - pop af -;src/main.c:125: for (uint8_t y = 0; y < HEIGHT*SCALE; ++y) { - ld c, #0x00 -00112$: - ld a, c - sub a, #0x12 - jr NC,00114$ -;src/main.c:126: for (uint8_t x = 0; x < WIDTH*SCALE; ++x) { - xor a, a - ld -1 (ix), a -00109$: - ld a, -1 (ix) - sub a, #0x0c - jr NC,00106$ -;src/main.c:127: uint8_t i = screen[y/SCALE*WIDTH + x/SCALE]; - ld e, c - ld d, #0x00 - ld l, e - ld h, d - add hl, hl - add hl, de - add hl, hl - add hl, hl - ld e, -1 (ix) - ld d, #0x00 - add hl, de - ld de, #_screen - add hl, de - ld e, (hl) -;src/main.c:128: if (i >= 8) { - ld a, e - sub a, #0x08 - jr C,00104$ -;src/main.c:129: cout = '\033'; - ld a, #0x1b - out (_cout), a -;src/main.c:130: cout = '['; - ld a, #0x5b - out (_cout), a -;src/main.c:131: cout = '0'; - ld a, #0x30 - out (_cout), a -;src/main.c:132: cout = 'm'; - ld a, #0x6d - out (_cout), a - jr 00105$ -00104$: -;src/main.c:133: } else if (i > 0) { - ld a, e - or a, a - jr Z,00105$ -;src/main.c:134: cout = '\033'; - ld a, #0x1b - out (_cout), a -;src/main.c:135: cout = '['; - ld a, #0x5b - out (_cout), a -;src/main.c:136: cout = '3'; - ld a, #0x33 - out (_cout), a -;src/main.c:137: cout = 48+i; - ld a, e - add a, #0x30 - out (_cout), a -;src/main.c:138: cout = 'm'; - ld a, #0x6d - out (_cout), a -00105$: -;src/main.c:140: char c = " RGOBMCW=#"[i]; - ld hl, #___str_7 - ld d, #0x00 - add hl, de - ld a, (hl) - out (_cout), a -;src/main.c:126: for (uint8_t x = 0; x < WIDTH*SCALE; ++x) { - inc -1 (ix) - jr 00109$ -00106$: -;src/main.c:143: cout = '\n'; - ld a, #0x0a - out (_cout), a -;src/main.c:144: cout = '\r'; - ld a, #0x0d - out (_cout), a -;src/main.c:145: cout = ' '; - ld a, #0x20 - out (_cout), a -;src/main.c:125: for (uint8_t y = 0; y < HEIGHT*SCALE; ++y) { - inc c - jr 00112$ -00114$: -;src/main.c:147: } - inc sp - pop ix - ret -___str_7: - .ascii " RGOBMCW=#" - .db 0x00 -___str_8: - .db 0x1b - .ascii "[2;2H" - .db 0x00 -;src/main.c:154: uint8_t loop() { -; --------------------------------- -; Function loop -; --------------------------------- -_loop:: - push ix - ld ix,#0 - add ix,sp - push af -;src/main.c:156: if (status & 1) { - in a, (_status) - rrca - jp NC,00116$ -;src/main.c:157: uint8_t nx = current_x; - ld a,(#_current_x + 0) - ld -2 (ix), a -;src/main.c:158: uint8_t ny = current_y; - ld hl,#_current_y + 0 - ld c, (hl) -;src/main.c:159: uint8_t nr = current_rotation; - ld a,(#_current_rotation + 0) - ld -1 (ix), a -;src/main.c:161: switch (key) { - in a, (_key) - cp a, #0x03 - jr Z,00101$ - cp a, #0x61 - jr Z,00102$ - cp a, #0x64 - jr Z,00103$ - cp a, #0x72 - jr Z,00104$ - cp a, #0x73 - jr Z,00107$ - sub a, #0x77 - jr Z,00142$ - jr 00112$ -;src/main.c:162: case 0x03: -00101$: -;src/main.c:163: put_string("Exit!\n\r"); - ld hl, #___str_9 - push hl - call _put_string - pop af -;src/main.c:164: return 0; - ld l, #0x00 - jp 00132$ -;src/main.c:167: case 'a': -00102$: -;src/main.c:168: nx--; - dec -2 (ix) -;src/main.c:169: break; - jr 00112$ -;src/main.c:172: case 'd': -00103$: -;src/main.c:173: nx++; - inc -2 (ix) -;src/main.c:174: break; - jr 00112$ -;src/main.c:177: case 'r': -00104$: -;src/main.c:178: nr++; - inc -1 (ix) -;src/main.c:179: if (nr == 4) { - ld a, -1 (ix) - sub a, #0x04 - jr NZ,00112$ -;src/main.c:180: nr = 0; - xor a, a - ld -1 (ix), a -;src/main.c:182: break; - jr 00112$ -;src/main.c:185: case 's': -00107$: -;src/main.c:186: counter = 0; - ld hl,#_counter + 0 - ld (hl), #0x00 -;src/main.c:187: break; - jr 00112$ -;src/main.c:191: while (does_piece_fit(current_shape, current_rotation, current_x, ++ny + 1)); -00142$: -00109$: - inc c - ld a, c - inc a - push bc - push af - inc sp - ld a, (_current_x) - push af - inc sp - ld a, (_current_rotation) - push af - inc sp - ld a, (_current_shape) - push af - inc sp - call _does_piece_fit - pop af - pop af - ld a, l - pop bc - or a, a - jr NZ,00109$ -;src/main.c:193: } -00112$: -;src/main.c:195: if (does_piece_fit(current_shape, nr, nx, ny)) { - push bc - ld a, c - push af - inc sp - ld h, -2 (ix) - ld l, -1 (ix) - push hl - ld a, (_current_shape) - push af - inc sp - call _does_piece_fit - pop af - pop af - ld a, l - pop bc - or a, a - jr Z,00116$ -;src/main.c:196: current_x = nx; - ld a, -2 (ix) - ld (#_current_x + 0),a -;src/main.c:197: current_y = ny; - ld hl,#_current_y + 0 - ld (hl), c -;src/main.c:198: current_rotation = nr; - ld a, -1 (ix) - ld (#_current_rotation + 0),a -00116$: -;src/main.c:203: if (counter == 0) { - ld a,(#_counter + 0) - or a, a - jp NZ, 00125$ -;src/main.c:204: if (does_piece_fit(current_shape, current_rotation, current_x, current_y+1)) { - ld a,(#_current_y + 0) - inc a - push af - inc sp - ld a, (_current_x) - push af - inc sp - ld a, (_current_rotation) - push af - inc sp - ld a, (_current_shape) - push af - inc sp - call _does_piece_fit - pop af - pop af - ld a, l - or a, a - jr Z,00150$ -;src/main.c:205: current_y++; - ld hl, #_current_y+0 - inc (hl) - jp 00123$ -;src/main.c:208: for (uint8_t y = 0; y < 4; ++y) { -00150$: - ld c, #0x00 -00130$: - ld a, c - sub a, #0x04 - jr NC,00120$ -;src/main.c:209: for (uint8_t x = 0; x < 4; ++x) { - ld b, #0x00 -00127$: - ld a, b - sub a, #0x04 - jr NC,00131$ -;src/main.c:210: if (tetromino[current_shape][rotate(x, y, current_rotation)] == 'X') { - ld iy, #_current_shape - ld l, 0 (iy) - ld h, #0x00 - add hl, hl - ld de, #_tetromino - add hl, de - ld e, (hl) - inc hl - ld d, (hl) - push bc - push de - ld a, (_current_rotation) - push af - inc sp - ld a, c - push af - inc sp - push bc - inc sp - call _rotate - pop af - inc sp - pop de - pop bc - ld h, #0x00 - add hl, de - ld a, (hl) - sub a, #0x58 - jr NZ,00128$ -;src/main.c:211: field[(current_y+y)*WIDTH + current_x + x] = current_shape + 1; - ld hl,#_current_y + 0 - ld e, (hl) - ld d, #0x00 - ld l, c - ld h, #0x00 - add hl, de - ld e, l - ld d, h - add hl, hl - add hl, de - add hl, hl - add hl, hl - ex de, hl - ld iy, #_current_x - ld l, 0 (iy) - ld h, #0x00 - add hl, de - ld e, b - ld d, #0x00 - add hl, de - ex de, hl - ld hl, #_field - add hl, de - ex de, hl - ld a,(#_current_shape + 0) - inc a - ld (de), a -00128$: -;src/main.c:209: for (uint8_t x = 0; x < 4; ++x) { - inc b - jr 00127$ -00131$: -;src/main.c:208: for (uint8_t y = 0; y < 4; ++y) { - inc c - jr 00130$ -00120$: -;src/main.c:216: new_shape(); - call _new_shape -;src/main.c:217: current_y = 0; - ld hl,#_current_y + 0 - ld (hl), #0x00 -;src/main.c:218: current_x = WIDTH/2; - ld hl,#_current_x + 0 - ld (hl), #0x06 -;src/main.c:219: current_rotation = 0; - ld hl,#_current_rotation + 0 - ld (hl), #0x00 -00123$: -;src/main.c:221: counter = SPEED; - ld hl,#_counter + 0 - ld (hl), #0x02 -00125$: -;src/main.c:224: counter--; - ld hl, #_counter+0 - dec (hl) -;src/main.c:226: render(); - call _render -;src/main.c:227: draw(); - call _draw -;src/main.c:229: return 1; - ld l, #0x01 -00132$: -;src/main.c:230: } - ld sp, ix - pop ix - ret -___str_9: - .ascii "Exit!" - .db 0x0a - .db 0x0d - .db 0x00 -;src/main.c:234: void main() { -; --------------------------------- -; Function main -; --------------------------------- -_main:: -;src/main.c:235: construct_shapes(); - call _construct_shapes -;src/main.c:236: initialize_field(); - call _initialize_field -;src/main.c:239: new_shape(); - call _new_shape -;src/main.c:242: put_string("\033[2J"); - ld hl, #___str_10 - push hl - call _put_string - pop af -;src/main.c:246: while (loop()); -00101$: - call _loop - ld a, l - or a, a - jr NZ,00101$ -;src/main.c:247: } - ret -___str_10: - .db 0x1b - .ascii "[2J" - .db 0x00 - .area _CODE - .area _INITIALIZER -__xinit__current_shape: - .db #0x00 ; 0 -__xinit__current_rotation: - .db #0x00 ; 0 -__xinit__current_x: - .db #0x06 ; 6 -__xinit__current_y: - .db #0x00 ; 0 -__xinit__counter: - .db #0x02 ; 2 - .area _CABS (ABS) diff --git a/.build/main.lst b/.build/main.lst deleted file mode 100644 index 26d389e..0000000 --- a/.build/main.lst +++ /dev/null @@ -1,1023 +0,0 @@ - 1 ;-------------------------------------------------------- - 2 ; File Created by SDCC : free open source ANSI-C Compiler - 3 ; Version 4.0.0 #11528 (Linux) - 4 ;-------------------------------------------------------- - 5 .module main - 6 .optsdcc -mz80 - 7 - 8 ;-------------------------------------------------------- - 9 ; Public variables in this module - 10 ;-------------------------------------------------------- - 11 .globl _main - 12 .globl _loop - 13 .globl _draw - 14 .globl _render - 15 .globl _new_shape - 16 .globl _does_piece_fit - 17 .globl _initialize_field - 18 .globl _rotate - 19 .globl _construct_shapes - 20 .globl _random - 21 .globl _put_string - 22 .globl _counter - 23 .globl _current_y - 24 .globl _current_x - 25 .globl _current_rotation - 26 .globl _current_shape - 27 .globl _seed - 28 .globl _screen - 29 .globl _field - 30 .globl _tetromino - 31 ;-------------------------------------------------------- - 32 ; special function registers - 33 ;-------------------------------------------------------- - 0002 34 _cout = 0x0002 - 001F 35 _status = 0x001f - 001E 36 _key = 0x001e - 37 ;-------------------------------------------------------- - 38 ; ram data - 39 ;-------------------------------------------------------- - 40 .area _DATA - 0000 41 _tetromino:: - 0000 42 .ds 14 - 000E 43 _field:: - 000E 44 .ds 216 - 00E6 45 _screen:: - 00E6 46 .ds 216 - 01BE 47 _seed:: - 01BE 48 .ds 1 - 49 ;-------------------------------------------------------- - 50 ; ram data - 51 ;-------------------------------------------------------- - 52 .area _INITIALIZED - 0000 53 _current_shape:: - 0000 54 .ds 1 - 0001 55 _current_rotation:: - 0001 56 .ds 1 - 0002 57 _current_x:: - 0002 58 .ds 1 - 0003 59 _current_y:: - 0003 60 .ds 1 - 0004 61 _counter:: - 0004 62 .ds 1 - 63 ;-------------------------------------------------------- - 64 ; absolute external ram data - 65 ;-------------------------------------------------------- - 66 .area _DABS (ABS) - 67 ;-------------------------------------------------------- - 68 ; global & static initialisations - 69 ;-------------------------------------------------------- - 70 .area _HOME - 71 .area _GSINIT - 72 .area _GSFINAL - 73 .area _GSINIT - 74 ;-------------------------------------------------------- - 75 ; Home - 76 ;-------------------------------------------------------- - 77 .area _HOME - 78 .area _HOME - 79 ;-------------------------------------------------------- - 80 ; code - 81 ;-------------------------------------------------------- - 82 .area _CODE - 83 ;src/main.c:12: void construct_shapes() { - 84 ; --------------------------------- - 85 ; Function construct_shapes - 86 ; --------------------------------- - 0000 87 _construct_shapes:: - 88 ;src/main.c:13: tetromino[0] = "..X." - 0000 21r2Br00 [10] 89 ld hl, #___str_0 - 0003 22r00r00 [16] 90 ld (_tetromino), hl - 91 ;src/main.c:18: tetromino[1] = "..X." - 0006 21r3Cr00 [10] 92 ld hl, #___str_1 - 0009 22r02r00 [16] 93 ld ((_tetromino + 0x0002)), hl - 94 ;src/main.c:23: tetromino[2] = ".X.." - 000C 21r4Dr00 [10] 95 ld hl, #___str_2 - 000F 22r04r00 [16] 96 ld ((_tetromino + 0x0004)), hl - 97 ;src/main.c:28: tetromino[3] = "..X." - 0012 21r5Er00 [10] 98 ld hl, #___str_3 - 0015 22r06r00 [16] 99 ld ((_tetromino + 0x0006)), hl - 100 ;src/main.c:33: tetromino[4] = ".X.." - 0018 21r6Fr00 [10] 101 ld hl, #___str_4 - 001B 22r08r00 [16] 102 ld ((_tetromino + 0x0008)), hl - 103 ;src/main.c:38: tetromino[5] = "..X." - 001E 21r80r00 [10] 104 ld hl, #___str_5 - 0021 22r0Ar00 [16] 105 ld ((_tetromino + 0x000a)), hl - 106 ;src/main.c:43: tetromino[6] = "...." - 0024 21r91r00 [10] 107 ld hl, #___str_6 - 0027 22r0Cr00 [16] 108 ld ((_tetromino + 0x000c)), hl - 109 ;src/main.c:47: } - 002A C9 [10] 110 ret - 002B 111 ___str_0: - 002B 2E 2E 58 2E 2E 2E 112 .ascii "..X...X...X...X." - 58 2E 2E 2E 58 2E - 2E 2E 58 2E - 003B 00 113 .db 0x00 - 003C 114 ___str_1: - 003C 2E 2E 58 2E 2E 58 115 .ascii "..X..XX..X......" - 58 2E 2E 58 2E 2E - 2E 2E 2E 2E - 004C 00 116 .db 0x00 - 004D 117 ___str_2: - 004D 2E 58 2E 2E 2E 58 118 .ascii ".X...XX...X....." - 58 2E 2E 2E 58 2E - 2E 2E 2E 2E - 005D 00 119 .db 0x00 - 005E 120 ___str_3: - 005E 2E 2E 58 2E 2E 2E 121 .ascii "..X...X..XX....." - 58 2E 2E 58 58 2E - 2E 2E 2E 2E - 006E 00 122 .db 0x00 - 006F 123 ___str_4: - 006F 2E 58 2E 2E 2E 58 124 .ascii ".X...X...XX....." - 2E 2E 2E 58 58 2E - 2E 2E 2E 2E - 007F 00 125 .db 0x00 - 0080 126 ___str_5: - 0080 2E 2E 58 2E 2E 58 127 .ascii "..X..XX...X....." - 58 2E 2E 2E 58 2E - 2E 2E 2E 2E - 0090 00 128 .db 0x00 - 0091 129 ___str_6: - 0091 2E 2E 2E 2E 2E 58 130 .ascii ".....XX..XX....." - 58 2E 2E 58 58 2E - 2E 2E 2E 2E - 00A1 00 131 .db 0x00 - 132 ;src/main.c:49: uint8_t rotate(uint8_t x, uint8_t y, uint8_t r) { - 133 ; --------------------------------- - 134 ; Function rotate - 135 ; --------------------------------- - 00A2 136 _rotate:: - 00A2 DD E5 [15] 137 push ix - 00A4 DD 21 00 00 [14] 138 ld ix,#0 - 00A8 DD 39 [15] 139 add ix,sp - 00AA 3B [ 6] 140 dec sp - 141 ;src/main.c:52: return y*4+x; - 00AB DD 7E 05 [19] 142 ld a, 5 (ix) - 00AE DD 4E 04 [19] 143 ld c, 4 (ix) - 00B1 87 [ 4] 144 add a, a - 00B2 87 [ 4] 145 add a, a - 00B3 6F [ 4] 146 ld l, a - 147 ;src/main.c:50: switch (r) { - 00B4 DD 7E 06 [19] 148 ld a, 6 (ix) - 00B7 B7 [ 4] 149 or a, a - 00B8 28 21 [12] 150 jr Z,00101$ - 151 ;src/main.c:54: return 12 + y - x*4; - 00BA DD 5E 05 [19] 152 ld e, 5 (ix) - 00BD DD 7E 04 [19] 153 ld a, 4 (ix) - 00C0 87 [ 4] 154 add a, a - 00C1 87 [ 4] 155 add a, a - 00C2 DD 77 FF [19] 156 ld -1 (ix), a - 157 ;src/main.c:50: switch (r) { - 00C5 DD 7E 06 [19] 158 ld a, 6 (ix) - 00C8 3D [ 4] 159 dec a - 00C9 28 13 [12] 160 jr Z,00102$ - 00CB DD 7E 06 [19] 161 ld a, 6 (ix) - 00CE D6 02 [ 7] 162 sub a, #0x02 - 00D0 28 15 [12] 163 jr Z,00103$ - 00D2 DD 7E 06 [19] 164 ld a, 6 (ix) - 00D5 D6 03 [ 7] 165 sub a, #0x03 - 00D7 28 15 [12] 166 jr Z,00104$ - 00D9 18 1C [12] 167 jr 00105$ - 168 ;src/main.c:51: case 0: - 00DB 169 00101$: - 170 ;src/main.c:52: return y*4+x; - 00DB 09 [11] 171 add hl, bc - 00DC 18 1B [12] 172 jr 00106$ - 173 ;src/main.c:53: case 1: - 00DE 174 00102$: - 175 ;src/main.c:54: return 12 + y - x*4; - 00DE 7B [ 4] 176 ld a, e - 00DF C6 0C [ 7] 177 add a, #0x0c - 00E1 DD 96 FF [19] 178 sub a, -1 (ix) - 00E4 6F [ 4] 179 ld l, a - 00E5 18 12 [12] 180 jr 00106$ - 181 ;src/main.c:55: case 2: - 00E7 182 00103$: - 183 ;src/main.c:56: return 15 - y*4 - x; - 00E7 3E 0F [ 7] 184 ld a, #0x0f - 00E9 95 [ 4] 185 sub a, l - 00EA 91 [ 4] 186 sub a, c - 00EB 6F [ 4] 187 ld l, a - 00EC 18 0B [12] 188 jr 00106$ - 189 ;src/main.c:57: case 3: - 00EE 190 00104$: - 191 ;src/main.c:58: return 3 - y + x*4; - 00EE 3E 03 [ 7] 192 ld a, #0x03 - 00F0 93 [ 4] 193 sub a, e - 00F1 DD 86 FF [19] 194 add a, -1 (ix) - 00F4 6F [ 4] 195 ld l, a - 00F5 18 02 [12] 196 jr 00106$ - 197 ;src/main.c:59: } - 00F7 198 00105$: - 199 ;src/main.c:60: return 0; - 00F7 2E 00 [ 7] 200 ld l, #0x00 - 00F9 201 00106$: - 202 ;src/main.c:61: } - 00F9 33 [ 6] 203 inc sp - 00FA DD E1 [14] 204 pop ix - 00FC C9 [10] 205 ret - 206 ;src/main.c:63: void initialize_field() { - 207 ; --------------------------------- - 208 ; Function initialize_field - 209 ; --------------------------------- - 00FD 210 _initialize_field:: - 00FD DD E5 [15] 211 push ix - 00FF DD 21 00 00 [14] 212 ld ix,#0 - 0103 DD 39 [15] 213 add ix,sp - 0105 F5 [11] 214 push af - 0106 3B [ 6] 215 dec sp - 216 ;src/main.c:64: for (uint8_t y = 0; y < HEIGHT; ++y) { - 0107 0E 00 [ 7] 217 ld c, #0x00 - 0109 218 00107$: - 219 ;src/main.c:65: for (uint8_t x = 0; x < WIDTH; ++x) { - 0109 79 [ 4] 220 ld a,c - 010A FE 12 [ 7] 221 cp a,#0x12 - 010C 30 55 [12] 222 jr NC,00109$ - 010E D6 11 [ 7] 223 sub a, #0x11 - 0110 3E 01 [ 7] 224 ld a, #0x01 - 0112 28 01 [12] 225 jr Z,00153$ - 0114 AF [ 4] 226 xor a, a - 0115 227 00153$: - 0115 DD 77 FD [19] 228 ld -3 (ix), a - 0118 1E 00 [ 7] 229 ld e, #0x00 - 011A 230 00104$: - 011A 7B [ 4] 231 ld a, e - 011B D6 0C [ 7] 232 sub a, #0x0c - 011D 30 41 [12] 233 jr NC,00108$ - 234 ;src/main.c:66: field[y*WIDTH + x] = (x == 0 || x == WIDTH - 1 || y == HEIGHT-1) ? 9 : 0; - 011F 69 [ 4] 235 ld l, c - 0120 26 00 [ 7] 236 ld h, #0x00 - 0122 D5 [11] 237 push de - 0123 5D [ 4] 238 ld e, l - 0124 54 [ 4] 239 ld d, h - 0125 29 [11] 240 add hl, hl - 0126 19 [11] 241 add hl, de - 0127 29 [11] 242 add hl, hl - 0128 29 [11] 243 add hl, hl - 0129 D1 [10] 244 pop de - 012A 7B [ 4] 245 ld a, e - 012B 16 00 [ 7] 246 ld d, #0x00 - 012D 85 [ 4] 247 add a, l - 012E 6F [ 4] 248 ld l, a - 012F 7A [ 4] 249 ld a, d - 0130 8C [ 4] 250 adc a, h - 0131 67 [ 4] 251 ld h, a - 0132 7D [ 4] 252 ld a, l - 0133 C6r0E [ 7] 253 add a, #<(_field) - 0135 DD 77 FE [19] 254 ld -2 (ix), a - 0138 7C [ 4] 255 ld a, h - 0139 CEs00 [ 7] 256 adc a, #>(_field) - 013B DD 77 FF [19] 257 ld -1 (ix), a - 013E 7B [ 4] 258 ld a, e - 013F B7 [ 4] 259 or a, a - 0140 28 0B [12] 260 jr Z,00114$ - 0142 7B [ 4] 261 ld a, e - 0143 D6 0B [ 7] 262 sub a, #0x0b - 0145 28 06 [12] 263 jr Z,00114$ - 0147 DD CB FD 46 [20] 264 bit 0, -3 (ix) - 014B 28 05 [12] 265 jr Z,00111$ - 014D 266 00114$: - 014D 21 09 00 [10] 267 ld hl, #0x0009 - 0150 18 03 [12] 268 jr 00112$ - 0152 269 00111$: - 0152 21 00 00 [10] 270 ld hl, #0x0000 - 0155 271 00112$: - 0155 7D [ 4] 272 ld a, l - 0156 DD 6E FE [19] 273 ld l, -2 (ix) - 0159 DD 66 FF [19] 274 ld h, -1 (ix) - 015C 77 [ 7] 275 ld (hl), a - 276 ;src/main.c:65: for (uint8_t x = 0; x < WIDTH; ++x) { - 015D 1C [ 4] 277 inc e - 015E 18 BA [12] 278 jr 00104$ - 0160 279 00108$: - 280 ;src/main.c:64: for (uint8_t y = 0; y < HEIGHT; ++y) { - 0160 0C [ 4] 281 inc c - 0161 18 A6 [12] 282 jr 00107$ - 0163 283 00109$: - 284 ;src/main.c:69: } - 0163 DD F9 [10] 285 ld sp, ix - 0165 DD E1 [14] 286 pop ix - 0167 C9 [10] 287 ret - 288 ;src/main.c:71: uint8_t does_piece_fit(uint8_t shape, uint8_t rotation, uint8_t px, uint8_t py) { - 289 ; --------------------------------- - 290 ; Function does_piece_fit - 291 ; --------------------------------- - 0168 292 _does_piece_fit:: - 0168 DD E5 [15] 293 push ix - 016A DD 21 00 00 [14] 294 ld ix,#0 - 016E DD 39 [15] 295 add ix,sp - 0170 F5 [11] 296 push af - 0171 F5 [11] 297 push af - 298 ;src/main.c:72: for (uint8_t y = 0; y < 4; ++y) { - 0172 0E 00 [ 7] 299 ld c, #0x00 - 0174 300 00116$: - 0174 79 [ 4] 301 ld a, c - 0175 D6 04 [ 7] 302 sub a, #0x04 - 0177 D2r1Er02 [10] 303 jp NC, 00111$ - 304 ;src/main.c:73: for (uint8_t x = 0; x < 4; ++x) { - 017A DD 7E 07 [19] 305 ld a, 7 (ix) - 017D 81 [ 4] 306 add a, c - 017E DD 77 FC [19] 307 ld -4 (ix), a - 0181 AF [ 4] 308 xor a, a - 0182 DD 77 FF [19] 309 ld -1 (ix), a - 0185 310 00113$: - 0185 DD 7E FF [19] 311 ld a, -1 (ix) - 0188 D6 04 [ 7] 312 sub a, #0x04 - 018A D2r1Ar02 [10] 313 jp NC, 00117$ - 314 ;src/main.c:75: uint8_t pi = rotate(x, y, rotation); - 018D C5 [11] 315 push bc - 018E DD 46 05 [19] 316 ld b, 5 (ix) - 0191 C5 [11] 317 push bc - 0192 DD 7E FF [19] 318 ld a, -1 (ix) - 0195 F5 [11] 319 push af - 0196 33 [ 6] 320 inc sp - 0197 CDrA2r00 [17] 321 call _rotate - 019A F1 [10] 322 pop af - 019B 33 [ 6] 323 inc sp - 019C C1 [10] 324 pop bc - 019D DD 75 FD [19] 325 ld -3 (ix), l - 326 ;src/main.c:78: uint8_t fi = (py + y) * WIDTH + px + x; - 01A0 DD 7E FC [19] 327 ld a, -4 (ix) - 01A3 5F [ 4] 328 ld e, a - 01A4 87 [ 4] 329 add a, a - 01A5 83 [ 4] 330 add a, e - 01A6 87 [ 4] 331 add a, a - 01A7 87 [ 4] 332 add a, a - 01A8 DD 46 06 [19] 333 ld b, 6 (ix) - 01AB 80 [ 4] 334 add a, b - 01AC DD 46 FF [19] 335 ld b, -1 (ix) - 01AF 80 [ 4] 336 add a, b - 01B0 DD 77 FE [19] 337 ld -2 (ix), a - 338 ;src/main.c:80: if (px + x >= 0 && px + x < WIDTH) { - 01B3 DD 5E 06 [19] 339 ld e, 6 (ix) - 01B6 16 00 [ 7] 340 ld d, #0x00 - 01B8 DD 6E FF [19] 341 ld l, -1 (ix) - 01BB 26 00 [ 7] 342 ld h, #0x00 - 01BD 19 [11] 343 add hl, de - 01BE CB 7C [ 8] 344 bit 7, h - 01C0 20 52 [12] 345 jr NZ,00114$ - 01C2 11 0C 80 [10] 346 ld de, #0x800c - 01C5 29 [11] 347 add hl, hl - 01C6 3F [ 4] 348 ccf - 01C7 CB 1C [ 8] 349 rr h - 01C9 CB 1D [ 8] 350 rr l - 01CB ED 52 [15] 351 sbc hl, de - 01CD 30 45 [12] 352 jr NC,00114$ - 353 ;src/main.c:81: if (py + y >= 0 && py + y < HEIGHT) { - 01CF DD 5E 07 [19] 354 ld e, 7 (ix) - 01D2 16 00 [ 7] 355 ld d, #0x00 - 01D4 69 [ 4] 356 ld l, c - 01D5 26 00 [ 7] 357 ld h, #0x00 - 01D7 19 [11] 358 add hl, de - 01D8 CB 7C [ 8] 359 bit 7, h - 01DA 20 38 [12] 360 jr NZ,00114$ - 01DC 11 12 80 [10] 361 ld de, #0x8012 - 01DF 29 [11] 362 add hl, hl - 01E0 3F [ 4] 363 ccf - 01E1 CB 1C [ 8] 364 rr h - 01E3 CB 1D [ 8] 365 rr l - 01E5 ED 52 [15] 366 sbc hl, de - 01E7 30 2B [12] 367 jr NC,00114$ - 368 ;src/main.c:83: if (tetromino[shape][pi] == 'X' && field[fi] != 0) { - 01E9 DD 6E 04 [19] 369 ld l, 4 (ix) - 01EC 26 00 [ 7] 370 ld h, #0x00 - 01EE 29 [11] 371 add hl, hl - 01EF 11r00r00 [10] 372 ld de, #_tetromino - 01F2 19 [11] 373 add hl, de - 01F3 5E [ 7] 374 ld e, (hl) - 01F4 23 [ 6] 375 inc hl - 01F5 56 [ 7] 376 ld d, (hl) - 01F6 DD 6E FD [19] 377 ld l, -3 (ix) - 01F9 26 00 [ 7] 378 ld h, #0x00 - 01FB 19 [11] 379 add hl, de - 01FC 7E [ 7] 380 ld a, (hl) - 01FD D6 58 [ 7] 381 sub a, #0x58 - 01FF 20 13 [12] 382 jr NZ,00114$ - 0201 DD 7E FE [19] 383 ld a, -2 (ix) - 0204 C6r0E [ 7] 384 add a, #<(_field) - 0206 5F [ 4] 385 ld e, a - 0207 3E 00 [ 7] 386 ld a, #0x00 - 0209 CEs00 [ 7] 387 adc a, #>(_field) - 020B 57 [ 4] 388 ld d, a - 020C 1A [ 7] 389 ld a, (de) - 020D B7 [ 4] 390 or a, a - 020E 28 04 [12] 391 jr Z,00114$ - 392 ;src/main.c:84: return 0; - 0210 2E 00 [ 7] 393 ld l, #0x00 - 0212 18 0C [12] 394 jr 00118$ - 0214 395 00114$: - 396 ;src/main.c:73: for (uint8_t x = 0; x < 4; ++x) { - 0214 DD 34 FF [23] 397 inc -1 (ix) - 0217 C3r85r01 [10] 398 jp 00113$ - 021A 399 00117$: - 400 ;src/main.c:72: for (uint8_t y = 0; y < 4; ++y) { - 021A 0C [ 4] 401 inc c - 021B C3r74r01 [10] 402 jp 00116$ - 021E 403 00111$: - 404 ;src/main.c:91: return 1; - 021E 2E 01 [ 7] 405 ld l, #0x01 - 0220 406 00118$: - 407 ;src/main.c:92: } - 0220 DD F9 [10] 408 ld sp, ix - 0222 DD E1 [14] 409 pop ix - 0224 C9 [10] 410 ret - 411 ;src/main.c:99: void new_shape() { - 412 ; --------------------------------- - 413 ; Function new_shape - 414 ; --------------------------------- - 0225 415 _new_shape:: - 416 ;src/main.c:100: do { - 0225 417 00101$: - 418 ;src/main.c:101: current_shape = random() & 0x07; - 0225 CDr00r00 [17] 419 call _random - 0228 7D [ 4] 420 ld a, l - 0229 E6 07 [ 7] 421 and a, #0x07 - 022B 32r00r00 [13] 422 ld (_current_shape+0), a - 423 ;src/main.c:102: } while (current_shape == 7); - 022E 3Ar00r00 [13] 424 ld a,(#_current_shape + 0) - 0231 D6 07 [ 7] 425 sub a, #0x07 - 0233 28 F0 [12] 426 jr Z,00101$ - 427 ;src/main.c:103: } - 0235 C9 [10] 428 ret - 429 ;src/main.c:105: void render() { - 430 ; --------------------------------- - 431 ; Function render - 432 ; --------------------------------- - 0236 433 _render:: - 0236 DD E5 [15] 434 push ix - 0238 DD 21 00 00 [14] 435 ld ix,#0 - 023C DD 39 [15] 436 add ix,sp - 023E F5 [11] 437 push af - 023F F5 [11] 438 push af - 439 ;src/main.c:107: for (uint8_t i = 0; i < WIDTH*HEIGHT; ++i) { - 0240 01rE6r00 [10] 440 ld bc, #_screen+0 - 0243 11r0Er00 [10] 441 ld de, #_field+0 - 0246 AF [ 4] 442 xor a, a - 0247 DD 77 FF [19] 443 ld -1 (ix), a - 024A 444 00107$: - 024A DD 7E FF [19] 445 ld a, -1 (ix) - 024D D6 D8 [ 7] 446 sub a, #0xd8 - 024F 30 20 [12] 447 jr NC,00101$ - 448 ;src/main.c:108: screen[i] = field[i]; - 0251 79 [ 4] 449 ld a, c - 0252 DD 86 FF [19] 450 add a, -1 (ix) - 0255 DD 77 FD [19] 451 ld -3 (ix), a - 0258 78 [ 4] 452 ld a, b - 0259 CE 00 [ 7] 453 adc a, #0x00 - 025B DD 77 FE [19] 454 ld -2 (ix), a - 025E DD 6E FF [19] 455 ld l, -1 (ix) - 0261 26 00 [ 7] 456 ld h, #0x00 - 0263 19 [11] 457 add hl, de - 0264 7E [ 7] 458 ld a, (hl) - 0265 DD 6E FD [19] 459 ld l, -3 (ix) - 0268 DD 66 FE [19] 460 ld h, -2 (ix) - 026B 77 [ 7] 461 ld (hl), a - 462 ;src/main.c:107: for (uint8_t i = 0; i < WIDTH*HEIGHT; ++i) { - 026C DD 34 FF [23] 463 inc -1 (ix) - 026F 18 D9 [12] 464 jr 00107$ - 0271 465 00101$: - 466 ;src/main.c:112: for (uint8_t y = 0; y < 4; ++y) { - 0271 1E 00 [ 7] 467 ld e, #0x00 - 0273 468 00113$: - 0273 7B [ 4] 469 ld a, e - 0274 D6 04 [ 7] 470 sub a, #0x04 - 0276 D2r1Br03 [10] 471 jp NC, 00115$ - 472 ;src/main.c:113: for (uint8_t x = 0; x < 4; ++x) { - 0279 16 00 [ 7] 473 ld d, #0x00 - 027B 474 00110$: - 027B 7A [ 4] 475 ld a, d - 027C D6 04 [ 7] 476 sub a, #0x04 - 027E D2r17r03 [10] 477 jp NC, 00114$ - 478 ;src/main.c:114: if (tetromino[current_shape][rotate(x, y, current_rotation)] == 'X') { - 0281 FD 21r00r00 [14] 479 ld iy, #_current_shape - 0285 FD 6E 00 [19] 480 ld l, 0 (iy) - 0288 26 00 [ 7] 481 ld h, #0x00 - 028A 29 [11] 482 add hl, hl - 028B 3Er00 [ 7] 483 ld a, #<(_tetromino) - 028D 85 [ 4] 484 add a, l - 028E 6F [ 4] 485 ld l, a - 028F 3Es00 [ 7] 486 ld a, #>(_tetromino) - 0291 8C [ 4] 487 adc a, h - 0292 67 [ 4] 488 ld h, a - 0293 7E [ 7] 489 ld a, (hl) - 0294 DD 77 FE [19] 490 ld -2 (ix), a - 0297 23 [ 6] 491 inc hl - 0298 7E [ 7] 492 ld a, (hl) - 0299 DD 77 FF [19] 493 ld -1 (ix), a - 029C C5 [11] 494 push bc - 029D D5 [11] 495 push de - 029E 3Ar01r00 [13] 496 ld a, (_current_rotation) - 02A1 F5 [11] 497 push af - 02A2 33 [ 6] 498 inc sp - 02A3 7B [ 4] 499 ld a, e - 02A4 F5 [11] 500 push af - 02A5 33 [ 6] 501 inc sp - 02A6 D5 [11] 502 push de - 02A7 33 [ 6] 503 inc sp - 02A8 CDrA2r00 [17] 504 call _rotate - 02AB F1 [10] 505 pop af - 02AC 33 [ 6] 506 inc sp - 02AD 7D [ 4] 507 ld a, l - 02AE D1 [10] 508 pop de - 02AF C1 [10] 509 pop bc - 02B0 DD 86 FE [19] 510 add a, -2 (ix) - 02B3 6F [ 4] 511 ld l, a - 02B4 3E 00 [ 7] 512 ld a, #0x00 - 02B6 DD 8E FF [19] 513 adc a, -1 (ix) - 02B9 67 [ 4] 514 ld h, a - 02BA 7E [ 7] 515 ld a, (hl) - 02BB D6 58 [ 7] 516 sub a, #0x58 - 02BD 20 54 [12] 517 jr NZ,00111$ - 518 ;src/main.c:115: screen[(current_y+y)*WIDTH + current_x + x] = current_shape + 1; - 02BF FD 21r03r00 [14] 519 ld iy, #_current_y - 02C3 FD 6E 00 [19] 520 ld l, 0 (iy) - 02C6 26 00 [ 7] 521 ld h, #0x00 - 02C8 DD 73 FE [19] 522 ld -2 (ix), e - 02CB AF [ 4] 523 xor a, a - 02CC DD 77 FF [19] 524 ld -1 (ix), a - 02CF DD 7E FE [19] 525 ld a, -2 (ix) - 02D2 85 [ 4] 526 add a, l - 02D3 6F [ 4] 527 ld l, a - 02D4 DD 7E FF [19] 528 ld a, -1 (ix) - 02D7 8C [ 4] 529 adc a, h - 02D8 67 [ 4] 530 ld h, a - 02D9 D5 [11] 531 push de - 02DA 5D [ 4] 532 ld e, l - 02DB 54 [ 4] 533 ld d, h - 02DC 29 [11] 534 add hl, hl - 02DD 19 [11] 535 add hl, de - 02DE 29 [11] 536 add hl, hl - 02DF 29 [11] 537 add hl, hl - 02E0 D1 [10] 538 pop de - 02E1 E3 [19] 539 ex (sp), hl - 02E2 3Ar02r00 [13] 540 ld a,(#_current_x + 0) - 02E5 26 00 [ 7] 541 ld h, #0x00 - 02E7 DD 86 FC [19] 542 add a, -4 (ix) - 02EA DD 77 FE [19] 543 ld -2 (ix), a - 02ED 7C [ 4] 544 ld a, h - 02EE DD 8E FD [19] 545 adc a, -3 (ix) - 02F1 DD 77 FF [19] 546 ld -1 (ix), a - 02F4 6A [ 4] 547 ld l, d - 02F5 26 00 [ 7] 548 ld h, #0x00 - 02F7 7D [ 4] 549 ld a, l - 02F8 DD 86 FE [19] 550 add a, -2 (ix) - 02FB 6F [ 4] 551 ld l, a - 02FC 7C [ 4] 552 ld a, h - 02FD DD 8E FF [19] 553 adc a, -1 (ix) - 0300 67 [ 4] 554 ld h, a - 0301 09 [11] 555 add hl, bc - 0302 DD 75 FE [19] 556 ld -2 (ix), l - 0305 DD 74 FF [19] 557 ld -1 (ix), h - 0308 3Ar00r00 [13] 558 ld a,(#_current_shape + 0) - 030B 3C [ 4] 559 inc a - 030C DD 6E FE [19] 560 ld l, -2 (ix) - 030F DD 66 FF [19] 561 ld h, -1 (ix) - 0312 77 [ 7] 562 ld (hl), a - 0313 563 00111$: - 564 ;src/main.c:113: for (uint8_t x = 0; x < 4; ++x) { - 0313 14 [ 4] 565 inc d - 0314 C3r7Br02 [10] 566 jp 00110$ - 0317 567 00114$: - 568 ;src/main.c:112: for (uint8_t y = 0; y < 4; ++y) { - 0317 1C [ 4] 569 inc e - 0318 C3r73r02 [10] 570 jp 00113$ - 031B 571 00115$: - 572 ;src/main.c:119: } - 031B DD F9 [10] 573 ld sp, ix - 031D DD E1 [14] 574 pop ix - 031F C9 [10] 575 ret - 576 ;src/main.c:122: void draw() { - 577 ; --------------------------------- - 578 ; Function draw - 579 ; --------------------------------- - 0320 580 _draw:: - 0320 DD E5 [15] 581 push ix - 0322 DD 21 00 00 [14] 582 ld ix,#0 - 0326 DD 39 [15] 583 add ix,sp - 0328 3B [ 6] 584 dec sp - 585 ;src/main.c:124: put_string("\033[2;2H"); - 0329 21rB3r03 [10] 586 ld hl, #___str_8 - 032C E5 [11] 587 push hl - 032D CDr00r00 [17] 588 call _put_string - 0330 F1 [10] 589 pop af - 590 ;src/main.c:125: for (uint8_t y = 0; y < HEIGHT*SCALE; ++y) { - 0331 0E 00 [ 7] 591 ld c, #0x00 - 0333 592 00112$: - 0333 79 [ 4] 593 ld a, c - 0334 D6 12 [ 7] 594 sub a, #0x12 - 0336 30 6C [12] 595 jr NC,00114$ - 596 ;src/main.c:126: for (uint8_t x = 0; x < WIDTH*SCALE; ++x) { - 0338 AF [ 4] 597 xor a, a - 0339 DD 77 FF [19] 598 ld -1 (ix), a - 033C 599 00109$: - 033C DD 7E FF [19] 600 ld a, -1 (ix) - 033F D6 0C [ 7] 601 sub a, #0x0c - 0341 30 52 [12] 602 jr NC,00106$ - 603 ;src/main.c:127: uint8_t i = screen[y/SCALE*WIDTH + x/SCALE]; - 0343 59 [ 4] 604 ld e, c - 0344 16 00 [ 7] 605 ld d, #0x00 - 0346 6B [ 4] 606 ld l, e - 0347 62 [ 4] 607 ld h, d - 0348 29 [11] 608 add hl, hl - 0349 19 [11] 609 add hl, de - 034A 29 [11] 610 add hl, hl - 034B 29 [11] 611 add hl, hl - 034C DD 5E FF [19] 612 ld e, -1 (ix) - 034F 16 00 [ 7] 613 ld d, #0x00 - 0351 19 [11] 614 add hl, de - 0352 11rE6r00 [10] 615 ld de, #_screen - 0355 19 [11] 616 add hl, de - 0356 5E [ 7] 617 ld e, (hl) - 618 ;src/main.c:128: if (i >= 8) { - 0357 7B [ 4] 619 ld a, e - 0358 D6 08 [ 7] 620 sub a, #0x08 - 035A 38 12 [12] 621 jr C,00104$ - 622 ;src/main.c:129: cout = '\033'; - 035C 3E 1B [ 7] 623 ld a, #0x1b - 035E D3 02 [11] 624 out (_cout), a - 625 ;src/main.c:130: cout = '['; - 0360 3E 5B [ 7] 626 ld a, #0x5b - 0362 D3 02 [11] 627 out (_cout), a - 628 ;src/main.c:131: cout = '0'; - 0364 3E 30 [ 7] 629 ld a, #0x30 - 0366 D3 02 [11] 630 out (_cout), a - 631 ;src/main.c:132: cout = 'm'; - 0368 3E 6D [ 7] 632 ld a, #0x6d - 036A D3 02 [11] 633 out (_cout), a - 036C 18 19 [12] 634 jr 00105$ - 036E 635 00104$: - 636 ;src/main.c:133: } else if (i > 0) { - 036E 7B [ 4] 637 ld a, e - 036F B7 [ 4] 638 or a, a - 0370 28 15 [12] 639 jr Z,00105$ - 640 ;src/main.c:134: cout = '\033'; - 0372 3E 1B [ 7] 641 ld a, #0x1b - 0374 D3 02 [11] 642 out (_cout), a - 643 ;src/main.c:135: cout = '['; - 0376 3E 5B [ 7] 644 ld a, #0x5b - 0378 D3 02 [11] 645 out (_cout), a - 646 ;src/main.c:136: cout = '3'; - 037A 3E 33 [ 7] 647 ld a, #0x33 - 037C D3 02 [11] 648 out (_cout), a - 649 ;src/main.c:137: cout = 48+i; - 037E 7B [ 4] 650 ld a, e - 037F C6 30 [ 7] 651 add a, #0x30 - 0381 D3 02 [11] 652 out (_cout), a - 653 ;src/main.c:138: cout = 'm'; - 0383 3E 6D [ 7] 654 ld a, #0x6d - 0385 D3 02 [11] 655 out (_cout), a - 0387 656 00105$: - 657 ;src/main.c:140: char c = " RGOBMCW=#"[i]; - 0387 21rA8r03 [10] 658 ld hl, #___str_7 - 038A 16 00 [ 7] 659 ld d, #0x00 - 038C 19 [11] 660 add hl, de - 038D 7E [ 7] 661 ld a, (hl) - 038E D3 02 [11] 662 out (_cout), a - 663 ;src/main.c:126: for (uint8_t x = 0; x < WIDTH*SCALE; ++x) { - 0390 DD 34 FF [23] 664 inc -1 (ix) - 0393 18 A7 [12] 665 jr 00109$ - 0395 666 00106$: - 667 ;src/main.c:143: cout = '\n'; - 0395 3E 0A [ 7] 668 ld a, #0x0a - 0397 D3 02 [11] 669 out (_cout), a - 670 ;src/main.c:144: cout = '\r'; - 0399 3E 0D [ 7] 671 ld a, #0x0d - 039B D3 02 [11] 672 out (_cout), a - 673 ;src/main.c:145: cout = ' '; - 039D 3E 20 [ 7] 674 ld a, #0x20 - 039F D3 02 [11] 675 out (_cout), a - 676 ;src/main.c:125: for (uint8_t y = 0; y < HEIGHT*SCALE; ++y) { - 03A1 0C [ 4] 677 inc c - 03A2 18 8F [12] 678 jr 00112$ - 03A4 679 00114$: - 680 ;src/main.c:147: } - 03A4 33 [ 6] 681 inc sp - 03A5 DD E1 [14] 682 pop ix - 03A7 C9 [10] 683 ret - 03A8 684 ___str_7: - 03A8 20 52 47 4F 42 4D 685 .ascii " RGOBMCW=#" - 43 57 3D 23 - 03B2 00 686 .db 0x00 - 03B3 687 ___str_8: - 03B3 1B 688 .db 0x1b - 03B4 5B 32 3B 32 48 689 .ascii "[2;2H" - 03B9 00 690 .db 0x00 - 691 ;src/main.c:154: uint8_t loop() { - 692 ; --------------------------------- - 693 ; Function loop - 694 ; --------------------------------- - 03BA 695 _loop:: - 03BA DD E5 [15] 696 push ix - 03BC DD 21 00 00 [14] 697 ld ix,#0 - 03C0 DD 39 [15] 698 add ix,sp - 03C2 F5 [11] 699 push af - 700 ;src/main.c:156: if (status & 1) { - 03C3 DB 1F [11] 701 in a, (_status) - 03C5 0F [ 4] 702 rrca - 03C6 D2r6Cr04 [10] 703 jp NC,00116$ - 704 ;src/main.c:157: uint8_t nx = current_x; - 03C9 3Ar02r00 [13] 705 ld a,(#_current_x + 0) - 03CC DD 77 FE [19] 706 ld -2 (ix), a - 707 ;src/main.c:158: uint8_t ny = current_y; - 03CF 21r03r00 [10] 708 ld hl,#_current_y + 0 - 03D2 4E [ 7] 709 ld c, (hl) - 710 ;src/main.c:159: uint8_t nr = current_rotation; - 03D3 3Ar01r00 [13] 711 ld a,(#_current_rotation + 0) - 03D6 DD 77 FF [19] 712 ld -1 (ix), a - 713 ;src/main.c:161: switch (key) { - 03D9 DB 1E [11] 714 in a, (_key) - 03DB FE 03 [ 7] 715 cp a, #0x03 - 03DD 28 16 [12] 716 jr Z,00101$ - 03DF FE 61 [ 7] 717 cp a, #0x61 - 03E1 28 1F [12] 718 jr Z,00102$ - 03E3 FE 64 [ 7] 719 cp a, #0x64 - 03E5 28 20 [12] 720 jr Z,00103$ - 03E7 FE 72 [ 7] 721 cp a, #0x72 - 03E9 28 21 [12] 722 jr Z,00104$ - 03EB FE 73 [ 7] 723 cp a, #0x73 - 03ED 28 2D [12] 724 jr Z,00107$ - 03EF D6 77 [ 7] 725 sub a, #0x77 - 03F1 28 30 [12] 726 jr Z,00142$ - 03F3 18 4D [12] 727 jr 00112$ - 728 ;src/main.c:162: case 0x03: - 03F5 729 00101$: - 730 ;src/main.c:163: put_string("Exit!\n\r"); - 03F5 21r2Ar05 [10] 731 ld hl, #___str_9 - 03F8 E5 [11] 732 push hl - 03F9 CDr00r00 [17] 733 call _put_string - 03FC F1 [10] 734 pop af - 735 ;src/main.c:164: return 0; - 03FD 2E 00 [ 7] 736 ld l, #0x00 - 03FF C3r25r05 [10] 737 jp 00132$ - 738 ;src/main.c:167: case 'a': - 0402 739 00102$: - 740 ;src/main.c:168: nx--; - 0402 DD 35 FE [23] 741 dec -2 (ix) - 742 ;src/main.c:169: break; - 0405 18 3B [12] 743 jr 00112$ - 744 ;src/main.c:172: case 'd': - 0407 745 00103$: - 746 ;src/main.c:173: nx++; - 0407 DD 34 FE [23] 747 inc -2 (ix) - 748 ;src/main.c:174: break; - 040A 18 36 [12] 749 jr 00112$ - 750 ;src/main.c:177: case 'r': - 040C 751 00104$: - 752 ;src/main.c:178: nr++; - 040C DD 34 FF [23] 753 inc -1 (ix) - 754 ;src/main.c:179: if (nr == 4) { - 040F DD 7E FF [19] 755 ld a, -1 (ix) - 0412 D6 04 [ 7] 756 sub a, #0x04 - 0414 20 2C [12] 757 jr NZ,00112$ - 758 ;src/main.c:180: nr = 0; - 0416 AF [ 4] 759 xor a, a - 0417 DD 77 FF [19] 760 ld -1 (ix), a - 761 ;src/main.c:182: break; - 041A 18 26 [12] 762 jr 00112$ - 763 ;src/main.c:185: case 's': - 041C 764 00107$: - 765 ;src/main.c:186: counter = 0; - 041C 21r04r00 [10] 766 ld hl,#_counter + 0 - 041F 36 00 [10] 767 ld (hl), #0x00 - 768 ;src/main.c:187: break; - 0421 18 1F [12] 769 jr 00112$ - 770 ;src/main.c:191: while (does_piece_fit(current_shape, current_rotation, current_x, ++ny + 1)); - 0423 771 00142$: - 0423 772 00109$: - 0423 0C [ 4] 773 inc c - 0424 79 [ 4] 774 ld a, c - 0425 3C [ 4] 775 inc a - 0426 C5 [11] 776 push bc - 0427 F5 [11] 777 push af - 0428 33 [ 6] 778 inc sp - 0429 3Ar02r00 [13] 779 ld a, (_current_x) - 042C F5 [11] 780 push af - 042D 33 [ 6] 781 inc sp - 042E 3Ar01r00 [13] 782 ld a, (_current_rotation) - 0431 F5 [11] 783 push af - 0432 33 [ 6] 784 inc sp - 0433 3Ar00r00 [13] 785 ld a, (_current_shape) - 0436 F5 [11] 786 push af - 0437 33 [ 6] 787 inc sp - 0438 CDr68r01 [17] 788 call _does_piece_fit - 043B F1 [10] 789 pop af - 043C F1 [10] 790 pop af - 043D 7D [ 4] 791 ld a, l - 043E C1 [10] 792 pop bc - 043F B7 [ 4] 793 or a, a - 0440 20 E1 [12] 794 jr NZ,00109$ - 795 ;src/main.c:193: } - 0442 796 00112$: - 797 ;src/main.c:195: if (does_piece_fit(current_shape, nr, nx, ny)) { - 0442 C5 [11] 798 push bc - 0443 79 [ 4] 799 ld a, c - 0444 F5 [11] 800 push af - 0445 33 [ 6] 801 inc sp - 0446 DD 66 FE [19] 802 ld h, -2 (ix) - 0449 DD 6E FF [19] 803 ld l, -1 (ix) - 044C E5 [11] 804 push hl - 044D 3Ar00r00 [13] 805 ld a, (_current_shape) - 0450 F5 [11] 806 push af - 0451 33 [ 6] 807 inc sp - 0452 CDr68r01 [17] 808 call _does_piece_fit - 0455 F1 [10] 809 pop af - 0456 F1 [10] 810 pop af - 0457 7D [ 4] 811 ld a, l - 0458 C1 [10] 812 pop bc - 0459 B7 [ 4] 813 or a, a - 045A 28 10 [12] 814 jr Z,00116$ - 815 ;src/main.c:196: current_x = nx; - 045C DD 7E FE [19] 816 ld a, -2 (ix) - 045F 32r02r00 [13] 817 ld (#_current_x + 0),a - 818 ;src/main.c:197: current_y = ny; - 0462 21r03r00 [10] 819 ld hl,#_current_y + 0 - 0465 71 [ 7] 820 ld (hl), c - 821 ;src/main.c:198: current_rotation = nr; - 0466 DD 7E FF [19] 822 ld a, -1 (ix) - 0469 32r01r00 [13] 823 ld (#_current_rotation + 0),a - 046C 824 00116$: - 825 ;src/main.c:203: if (counter == 0) { - 046C 3Ar04r00 [13] 826 ld a,(#_counter + 0) - 046F B7 [ 4] 827 or a, a - 0470 C2r19r05 [10] 828 jp NZ, 00125$ - 829 ;src/main.c:204: if (does_piece_fit(current_shape, current_rotation, current_x, current_y+1)) { - 0473 3Ar03r00 [13] 830 ld a,(#_current_y + 0) - 0476 3C [ 4] 831 inc a - 0477 F5 [11] 832 push af - 0478 33 [ 6] 833 inc sp - 0479 3Ar02r00 [13] 834 ld a, (_current_x) - 047C F5 [11] 835 push af - 047D 33 [ 6] 836 inc sp - 047E 3Ar01r00 [13] 837 ld a, (_current_rotation) - 0481 F5 [11] 838 push af - 0482 33 [ 6] 839 inc sp - 0483 3Ar00r00 [13] 840 ld a, (_current_shape) - 0486 F5 [11] 841 push af - 0487 33 [ 6] 842 inc sp - 0488 CDr68r01 [17] 843 call _does_piece_fit - 048B F1 [10] 844 pop af - 048C F1 [10] 845 pop af - 048D 7D [ 4] 846 ld a, l - 048E B7 [ 4] 847 or a, a - 048F 28 07 [12] 848 jr Z,00150$ - 849 ;src/main.c:205: current_y++; - 0491 21r03r00 [10] 850 ld hl, #_current_y+0 - 0494 34 [11] 851 inc (hl) - 0495 C3r14r05 [10] 852 jp 00123$ - 853 ;src/main.c:208: for (uint8_t y = 0; y < 4; ++y) { - 0498 854 00150$: - 0498 0E 00 [ 7] 855 ld c, #0x00 - 049A 856 00130$: - 049A 79 [ 4] 857 ld a, c - 049B D6 04 [ 7] 858 sub a, #0x04 - 049D 30 63 [12] 859 jr NC,00120$ - 860 ;src/main.c:209: for (uint8_t x = 0; x < 4; ++x) { - 049F 06 00 [ 7] 861 ld b, #0x00 - 04A1 862 00127$: - 04A1 78 [ 4] 863 ld a, b - 04A2 D6 04 [ 7] 864 sub a, #0x04 - 04A4 30 59 [12] 865 jr NC,00131$ - 866 ;src/main.c:210: if (tetromino[current_shape][rotate(x, y, current_rotation)] == 'X') { - 04A6 FD 21r00r00 [14] 867 ld iy, #_current_shape - 04AA FD 6E 00 [19] 868 ld l, 0 (iy) - 04AD 26 00 [ 7] 869 ld h, #0x00 - 04AF 29 [11] 870 add hl, hl - 04B0 11r00r00 [10] 871 ld de, #_tetromino - 04B3 19 [11] 872 add hl, de - 04B4 5E [ 7] 873 ld e, (hl) - 04B5 23 [ 6] 874 inc hl - 04B6 56 [ 7] 875 ld d, (hl) - 04B7 C5 [11] 876 push bc - 04B8 D5 [11] 877 push de - 04B9 3Ar01r00 [13] 878 ld a, (_current_rotation) - 04BC F5 [11] 879 push af - 04BD 33 [ 6] 880 inc sp - 04BE 79 [ 4] 881 ld a, c - 04BF F5 [11] 882 push af - 04C0 33 [ 6] 883 inc sp - 04C1 C5 [11] 884 push bc - 04C2 33 [ 6] 885 inc sp - 04C3 CDrA2r00 [17] 886 call _rotate - 04C6 F1 [10] 887 pop af - 04C7 33 [ 6] 888 inc sp - 04C8 D1 [10] 889 pop de - 04C9 C1 [10] 890 pop bc - 04CA 26 00 [ 7] 891 ld h, #0x00 - 04CC 19 [11] 892 add hl, de - 04CD 7E [ 7] 893 ld a, (hl) - 04CE D6 58 [ 7] 894 sub a, #0x58 - 04D0 20 2A [12] 895 jr NZ,00128$ - 896 ;src/main.c:211: field[(current_y+y)*WIDTH + current_x + x] = current_shape + 1; - 04D2 21r03r00 [10] 897 ld hl,#_current_y + 0 - 04D5 5E [ 7] 898 ld e, (hl) - 04D6 16 00 [ 7] 899 ld d, #0x00 - 04D8 69 [ 4] 900 ld l, c - 04D9 26 00 [ 7] 901 ld h, #0x00 - 04DB 19 [11] 902 add hl, de - 04DC 5D [ 4] 903 ld e, l - 04DD 54 [ 4] 904 ld d, h - 04DE 29 [11] 905 add hl, hl - 04DF 19 [11] 906 add hl, de - 04E0 29 [11] 907 add hl, hl - 04E1 29 [11] 908 add hl, hl - 04E2 EB [ 4] 909 ex de, hl - 04E3 FD 21r02r00 [14] 910 ld iy, #_current_x - 04E7 FD 6E 00 [19] 911 ld l, 0 (iy) - 04EA 26 00 [ 7] 912 ld h, #0x00 - 04EC 19 [11] 913 add hl, de - 04ED 58 [ 4] 914 ld e, b - 04EE 16 00 [ 7] 915 ld d, #0x00 - 04F0 19 [11] 916 add hl, de - 04F1 EB [ 4] 917 ex de, hl - 04F2 21r0Er00 [10] 918 ld hl, #_field - 04F5 19 [11] 919 add hl, de - 04F6 EB [ 4] 920 ex de, hl - 04F7 3Ar00r00 [13] 921 ld a,(#_current_shape + 0) - 04FA 3C [ 4] 922 inc a - 04FB 12 [ 7] 923 ld (de), a - 04FC 924 00128$: - 925 ;src/main.c:209: for (uint8_t x = 0; x < 4; ++x) { - 04FC 04 [ 4] 926 inc b - 04FD 18 A2 [12] 927 jr 00127$ - 04FF 928 00131$: - 929 ;src/main.c:208: for (uint8_t y = 0; y < 4; ++y) { - 04FF 0C [ 4] 930 inc c - 0500 18 98 [12] 931 jr 00130$ - 0502 932 00120$: - 933 ;src/main.c:216: new_shape(); - 0502 CDr25r02 [17] 934 call _new_shape - 935 ;src/main.c:217: current_y = 0; - 0505 21r03r00 [10] 936 ld hl,#_current_y + 0 - 0508 36 00 [10] 937 ld (hl), #0x00 - 938 ;src/main.c:218: current_x = WIDTH/2; - 050A 21r02r00 [10] 939 ld hl,#_current_x + 0 - 050D 36 06 [10] 940 ld (hl), #0x06 - 941 ;src/main.c:219: current_rotation = 0; - 050F 21r01r00 [10] 942 ld hl,#_current_rotation + 0 - 0512 36 00 [10] 943 ld (hl), #0x00 - 0514 944 00123$: - 945 ;src/main.c:221: counter = SPEED; - 0514 21r04r00 [10] 946 ld hl,#_counter + 0 - 0517 36 02 [10] 947 ld (hl), #0x02 - 0519 948 00125$: - 949 ;src/main.c:224: counter--; - 0519 21r04r00 [10] 950 ld hl, #_counter+0 - 051C 35 [11] 951 dec (hl) - 952 ;src/main.c:226: render(); - 051D CDr36r02 [17] 953 call _render - 954 ;src/main.c:227: draw(); - 0520 CDr20r03 [17] 955 call _draw - 956 ;src/main.c:229: return 1; - 0523 2E 01 [ 7] 957 ld l, #0x01 - 0525 958 00132$: - 959 ;src/main.c:230: } - 0525 DD F9 [10] 960 ld sp, ix - 0527 DD E1 [14] 961 pop ix - 0529 C9 [10] 962 ret - 052A 963 ___str_9: - 052A 45 78 69 74 21 964 .ascii "Exit!" - 052F 0A 965 .db 0x0a - 0530 0D 966 .db 0x0d - 0531 00 967 .db 0x00 - 968 ;src/main.c:234: void main() { - 969 ; --------------------------------- - 970 ; Function main - 971 ; --------------------------------- - 0532 972 _main:: - 973 ;src/main.c:235: construct_shapes(); - 0532 CDr00r00 [17] 974 call _construct_shapes - 975 ;src/main.c:236: initialize_field(); - 0535 CDrFDr00 [17] 976 call _initialize_field - 977 ;src/main.c:239: new_shape(); - 0538 CDr25r02 [17] 978 call _new_shape - 979 ;src/main.c:242: put_string("\033[2J"); - 053B 21r4Br05 [10] 980 ld hl, #___str_10 - 053E E5 [11] 981 push hl - 053F CDr00r00 [17] 982 call _put_string - 0542 F1 [10] 983 pop af - 984 ;src/main.c:246: while (loop()); - 0543 985 00101$: - 0543 CDrBAr03 [17] 986 call _loop - 0546 7D [ 4] 987 ld a, l - 0547 B7 [ 4] 988 or a, a - 0548 20 F9 [12] 989 jr NZ,00101$ - 990 ;src/main.c:247: } - 054A C9 [10] 991 ret - 054B 992 ___str_10: - 054B 1B 993 .db 0x1b - 054C 5B 32 4A 994 .ascii "[2J" - 054F 00 995 .db 0x00 - 996 .area _CODE - 997 .area _INITIALIZER - 0000 998 __xinit__current_shape: - 0000 00 999 .db #0x00 ; 0 - 0001 1000 __xinit__current_rotation: - 0001 00 1001 .db #0x00 ; 0 - 0002 1002 __xinit__current_x: - 0002 06 1003 .db #0x06 ; 6 - 0003 1004 __xinit__current_y: - 0003 00 1005 .db #0x00 ; 0 - 0004 1006 __xinit__counter: - 0004 02 1007 .db #0x02 ; 2 - 1008 .area _CABS (ABS) diff --git a/.build/main.rel b/.build/main.rel deleted file mode 100644 index 7fd8e6c..0000000 --- a/.build/main.rel +++ /dev/null @@ -1,516 +0,0 @@ -XL2 -H 9 areas 15 global symbols -M main -O -mz80 -S .__.ABS. Def0000 -S _random Ref0000 -S _put_string Ref0000 -A _CODE size 550 flags 0 addr 0 -S _main Def0532 -S _draw Def0320 -S _does_piece_fit Def0168 -S _new_shape Def0225 -S _loop Def03BA -S _render Def0236 -S _construct_shapes Def0000 -S _rotate Def00A2 -S _initialize_field Def00FD -A _DATA size 1BF flags 0 addr 0 -S _tetromino Def0000 -S _seed Def01BE -S _screen Def00E6 -S _field Def000E -A _INITIALIZED size 5 flags 0 addr 0 -S _current_shape Def0000 -S _counter Def0004 -S _current_rotation Def0001 -S _current_x Def0002 -S _current_y Def0003 -A _DABS size 0 flags 8 addr 0 -A _HOME size 0 flags 0 addr 0 -A _GSINIT size 0 flags 0 addr 0 -A _GSFINAL size 0 flags 0 addr 0 -A _INITIALIZER size 5 flags 0 addr 0 -A _CABS size 0 flags 8 addr 0 -T 00 00 -R 00 00 01 00 -T 00 00 -R 00 00 01 00 -T 0E 00 -R 00 00 01 00 -T 0E 00 -R 00 00 01 00 -T E6 00 -R 00 00 01 00 -T E6 00 -R 00 00 01 00 -T BE 01 -R 00 00 01 00 -T BE 01 -R 00 00 01 00 -T 00 00 -R 00 00 02 00 -T 00 00 -R 00 00 02 00 -T 01 00 -R 00 00 02 00 -T 01 00 -R 00 00 02 00 -T 02 00 -R 00 00 02 00 -T 02 00 -R 00 00 02 00 -T 03 00 -R 00 00 02 00 -T 03 00 -R 00 00 02 00 -T 04 00 -R 00 00 02 00 -T 04 00 -R 00 00 02 00 -T 00 00 -R 00 00 00 00 -T 00 00 21 2B 00 22 00 00 21 3C 00 22 -R 00 00 00 00 00 03 00 00 00 06 01 00 00 09 00 00 -T 0A 00 02 00 21 4D 00 22 04 00 21 -R 00 00 00 00 00 02 01 00 00 05 00 00 00 08 01 00 -T 13 00 5E 00 22 06 00 21 6F 00 22 -R 00 00 00 00 00 02 00 00 00 05 01 00 00 08 00 00 -T 1C 00 08 00 21 80 00 22 0A 00 21 -R 00 00 00 00 00 02 01 00 00 05 00 00 00 08 01 00 -T 25 00 91 00 22 0C 00 C9 -R 00 00 00 00 00 02 00 00 00 05 01 00 -T 2B 00 -R 00 00 00 00 -T 2B 00 2E 2E 58 2E 2E 2E 58 2E 2E 2E 58 2E 2E 2E -R 00 00 00 00 -T 39 00 58 2E 00 -R 00 00 00 00 -T 3C 00 -R 00 00 00 00 -T 3C 00 2E 2E 58 2E 2E 58 58 2E 2E 58 2E 2E 2E 2E -R 00 00 00 00 -T 4A 00 2E 2E 00 -R 00 00 00 00 -T 4D 00 -R 00 00 00 00 -T 4D 00 2E 58 2E 2E 2E 58 58 2E 2E 2E 58 2E 2E 2E -R 00 00 00 00 -T 5B 00 2E 2E 00 -R 00 00 00 00 -T 5E 00 -R 00 00 00 00 -T 5E 00 2E 2E 58 2E 2E 2E 58 2E 2E 58 58 2E 2E 2E -R 00 00 00 00 -T 6C 00 2E 2E 00 -R 00 00 00 00 -T 6F 00 -R 00 00 00 00 -T 6F 00 2E 58 2E 2E 2E 58 2E 2E 2E 58 58 2E 2E 2E -R 00 00 00 00 -T 7D 00 2E 2E 00 -R 00 00 00 00 -T 80 00 -R 00 00 00 00 -T 80 00 2E 2E 58 2E 2E 58 58 2E 2E 2E 58 2E 2E 2E -R 00 00 00 00 -T 8E 00 2E 2E 00 -R 00 00 00 00 -T 91 00 -R 00 00 00 00 -T 91 00 2E 2E 2E 2E 2E 58 58 2E 2E 58 58 2E 2E 2E -R 00 00 00 00 -T 9F 00 2E 2E 00 -R 00 00 00 00 -T A2 00 -R 00 00 00 00 -T A2 00 DD E5 DD 21 00 00 DD 39 3B DD 7E 05 DD 4E -R 00 00 00 00 -T B0 00 04 87 87 6F DD 7E 06 B7 28 21 DD 5E 05 DD -R 00 00 00 00 -T BE 00 7E 04 87 87 DD 77 FF DD 7E 06 3D 28 13 DD -R 00 00 00 00 -T CC 00 7E 06 D6 02 28 15 DD 7E 06 D6 03 28 15 18 -R 00 00 00 00 -T DA 00 1C -R 00 00 00 00 -T DB 00 -R 00 00 00 00 -T DB 00 09 18 1B -R 00 00 00 00 -T DE 00 -R 00 00 00 00 -T DE 00 7B C6 0C DD 96 FF 6F 18 12 -R 00 00 00 00 -T E7 00 -R 00 00 00 00 -T E7 00 3E 0F 95 91 6F 18 0B -R 00 00 00 00 -T EE 00 -R 00 00 00 00 -T EE 00 3E 03 93 DD 86 FF 6F 18 02 -R 00 00 00 00 -T F7 00 -R 00 00 00 00 -T F7 00 2E 00 -R 00 00 00 00 -T F9 00 -R 00 00 00 00 -T F9 00 33 DD E1 C9 -R 00 00 00 00 -T FD 00 -R 00 00 00 00 -T FD 00 DD E5 DD 21 00 00 DD 39 F5 3B 0E 00 -R 00 00 00 00 -T 09 01 -R 00 00 00 00 -T 09 01 79 FE 12 30 55 D6 11 3E 01 28 01 AF -R 00 00 00 00 -T 15 01 -R 00 00 00 00 -T 15 01 DD 77 FD 1E 00 -R 00 00 00 00 -T 1A 01 -R 00 00 00 00 -T 1A 01 7B D6 0C 30 41 69 26 00 D5 5D 54 29 19 29 -R 00 00 00 00 -T 28 01 29 D1 7B 16 00 85 6F 7A 8C 67 7D C6 0E 00 -R 00 00 00 00 09 0E 01 00 -T 35 01 DD 77 FE 7C CE 0E 00 DD 77 FF 7B B7 28 0B -R 00 00 00 00 89 07 01 00 -T 42 01 7B D6 0B 28 06 DD CB FD 46 28 05 -R 00 00 00 00 -T 4D 01 -R 00 00 00 00 -T 4D 01 21 09 00 18 03 -R 00 00 00 00 -T 52 01 -R 00 00 00 00 -T 52 01 21 00 00 -R 00 00 00 00 -T 55 01 -R 00 00 00 00 -T 55 01 7D DD 6E FE DD 66 FF 77 1C 18 BA -R 00 00 00 00 -T 60 01 -R 00 00 00 00 -T 60 01 0C 18 A6 -R 00 00 00 00 -T 63 01 -R 00 00 00 00 -T 63 01 DD F9 DD E1 C9 -R 00 00 00 00 -T 68 01 -R 00 00 00 00 -T 68 01 DD E5 DD 21 00 00 DD 39 F5 F5 0E 00 -R 00 00 00 00 -T 74 01 -R 00 00 00 00 -T 74 01 79 D6 04 D2 1E 02 DD 7E 07 81 DD 77 FC AF -R 00 00 00 00 00 06 00 00 -T 82 01 DD 77 FF -R 00 00 00 00 -T 85 01 -R 00 00 00 00 -T 85 01 DD 7E FF D6 04 D2 1A 02 C5 DD 46 05 C5 DD -R 00 00 00 00 00 08 00 00 -T 93 01 7E FF F5 33 CD A2 00 F1 33 C1 DD 75 FD DD -R 00 00 00 00 00 07 00 00 -T A1 01 7E FC 5F 87 83 87 87 DD 46 06 80 DD 46 FF -R 00 00 00 00 -T AF 01 80 DD 77 FE DD 5E 06 16 00 DD 6E FF 26 00 -R 00 00 00 00 -T BD 01 19 CB 7C 20 52 11 0C 80 29 3F CB 1C CB 1D -R 00 00 00 00 -T CB 01 ED 52 30 45 DD 5E 07 16 00 69 26 00 19 CB -R 00 00 00 00 -T D9 01 7C 20 38 11 12 80 29 3F CB 1C CB 1D ED 52 -R 00 00 00 00 -T E7 01 30 2B DD 6E 04 26 00 29 11 00 00 19 5E 23 -R 00 00 00 00 00 0B 01 00 -T F5 01 56 DD 6E FD 26 00 19 7E D6 58 20 13 DD 7E -R 00 00 00 00 -T 03 02 FE C6 0E 00 5F 3E 00 CE 0E 00 57 1A B7 28 -R 00 00 00 00 09 04 01 00 89 0A 01 00 -T 0F 02 04 2E 00 18 0C -R 00 00 00 00 -T 14 02 -R 00 00 00 00 -T 14 02 DD 34 FF C3 85 01 -R 00 00 00 00 00 06 00 00 -T 1A 02 -R 00 00 00 00 -T 1A 02 0C C3 74 01 -R 00 00 00 00 00 04 00 00 -T 1E 02 -R 00 00 00 00 -T 1E 02 2E 01 -R 00 00 00 00 -T 20 02 -R 00 00 00 00 -T 20 02 DD F9 DD E1 C9 -R 00 00 00 00 -T 25 02 -R 00 00 00 00 -T 25 02 -R 00 00 00 00 -T 25 02 CD 00 00 7D E6 07 32 00 00 3A 00 00 D6 07 -R 00 00 00 00 02 03 01 00 00 09 02 00 00 0C 02 00 -T 33 02 28 F0 C9 -R 00 00 00 00 -T 36 02 -R 00 00 00 00 -T 36 02 DD E5 DD 21 00 00 DD 39 F5 F5 01 E6 00 11 -R 00 00 00 00 00 0D 01 00 -T 44 02 0E 00 AF DD 77 FF -R 00 00 00 00 00 02 01 00 -T 4A 02 -R 00 00 00 00 -T 4A 02 DD 7E FF D6 D8 30 20 79 DD 86 FF DD 77 FD -R 00 00 00 00 -T 58 02 78 CE 00 DD 77 FE DD 6E FF 26 00 19 7E DD -R 00 00 00 00 -T 66 02 6E FD DD 66 FE 77 DD 34 FF 18 D9 -R 00 00 00 00 -T 71 02 -R 00 00 00 00 -T 71 02 1E 00 -R 00 00 00 00 -T 73 02 -R 00 00 00 00 -T 73 02 7B D6 04 D2 1B 03 16 00 -R 00 00 00 00 00 06 00 00 -T 7B 02 -R 00 00 00 00 -T 7B 02 7A D6 04 D2 17 03 FD 21 00 00 FD 6E 00 26 -R 00 00 00 00 00 06 00 00 00 0A 02 00 -T 89 02 00 29 3E 00 00 85 6F 3E 00 00 8C 67 7E DD -R 00 00 00 00 09 05 01 00 89 0A 01 00 -T 95 02 77 FE 23 7E DD 77 FF C5 D5 3A 01 00 F5 33 -R 00 00 00 00 00 0C 02 00 -T A3 02 7B F5 33 D5 33 CD A2 00 F1 33 7D D1 C1 DD -R 00 00 00 00 00 08 00 00 -T B1 02 86 FE 6F 3E 00 DD 8E FF 67 7E D6 58 20 54 -R 00 00 00 00 -T BF 02 FD 21 03 00 FD 6E 00 26 00 DD 73 FE AF DD -R 00 00 00 00 00 04 02 00 -T CD 02 77 FF DD 7E FE 85 6F DD 7E FF 8C 67 D5 5D -R 00 00 00 00 -T DB 02 54 29 19 29 29 D1 E3 3A 02 00 26 00 DD 86 -R 00 00 00 00 00 0A 02 00 -T E9 02 FC DD 77 FE 7C DD 8E FD DD 77 FF 6A 26 00 -R 00 00 00 00 -T F7 02 7D DD 86 FE 6F 7C DD 8E FF 67 09 DD 75 FE -R 00 00 00 00 -T 05 03 DD 74 FF 3A 00 00 3C DD 6E FE DD 66 FF 77 -R 00 00 00 00 00 06 02 00 -T 13 03 -R 00 00 00 00 -T 13 03 14 C3 7B 02 -R 00 00 00 00 00 04 00 00 -T 17 03 -R 00 00 00 00 -T 17 03 1C C3 73 02 -R 00 00 00 00 00 04 00 00 -T 1B 03 -R 00 00 00 00 -T 1B 03 DD F9 DD E1 C9 -R 00 00 00 00 -T 20 03 -R 00 00 00 00 -T 20 03 DD E5 DD 21 00 00 DD 39 3B 21 B3 03 E5 CD -R 00 00 00 00 00 0C 00 00 -T 2E 03 00 00 F1 0E 00 -R 00 00 00 00 02 02 02 00 -T 33 03 -R 00 00 00 00 -T 33 03 79 D6 12 30 6C AF DD 77 FF -R 00 00 00 00 -T 3C 03 -R 00 00 00 00 -T 3C 03 DD 7E FF D6 0C 30 52 59 16 00 6B 62 29 19 -R 00 00 00 00 -T 4A 03 29 29 DD 5E FF 16 00 19 11 E6 00 19 5E 7B -R 00 00 00 00 00 0B 01 00 -T 58 03 D6 08 38 12 3E 1B D3 02 3E 5B D3 02 3E 30 -R 00 00 00 00 -T 66 03 D3 02 3E 6D D3 02 18 19 -R 00 00 00 00 -T 6E 03 -R 00 00 00 00 -T 6E 03 7B B7 28 15 3E 1B D3 02 3E 5B D3 02 3E 33 -R 00 00 00 00 -T 7C 03 D3 02 7B C6 30 D3 02 3E 6D D3 02 -R 00 00 00 00 -T 87 03 -R 00 00 00 00 -T 87 03 21 A8 03 16 00 19 7E D3 02 DD 34 FF 18 A7 -R 00 00 00 00 00 03 00 00 -T 95 03 -R 00 00 00 00 -T 95 03 3E 0A D3 02 3E 0D D3 02 3E 20 D3 02 0C 18 -R 00 00 00 00 -T A3 03 8F -R 00 00 00 00 -T A4 03 -R 00 00 00 00 -T A4 03 33 DD E1 C9 -R 00 00 00 00 -T A8 03 -R 00 00 00 00 -T A8 03 20 52 47 4F 42 4D 43 57 3D 23 00 -R 00 00 00 00 -T B3 03 -R 00 00 00 00 -T B3 03 1B 5B 32 3B 32 48 00 -R 00 00 00 00 -T BA 03 -R 00 00 00 00 -T BA 03 DD E5 DD 21 00 00 DD 39 F5 DB 1F 0F D2 -R 00 00 00 00 -T C7 03 6C 04 3A 02 00 DD 77 FE 21 03 00 4E 3A -R 00 00 00 00 00 02 00 00 00 05 02 00 00 0B 02 00 -T D4 03 01 00 DD 77 FF DB 1E FE 03 28 16 FE 61 28 -R 00 00 00 00 00 02 02 00 -T E2 03 1F FE 64 28 20 FE 72 28 21 FE 73 28 2D D6 -R 00 00 00 00 -T F0 03 77 28 30 18 4D -R 00 00 00 00 -T F5 03 -R 00 00 00 00 -T F5 03 21 2A 05 E5 CD 00 00 F1 2E 00 C3 25 05 -R 00 00 00 00 00 03 00 00 02 07 02 00 00 0D 00 00 -T 02 04 -R 00 00 00 00 -T 02 04 DD 35 FE 18 3B -R 00 00 00 00 -T 07 04 -R 00 00 00 00 -T 07 04 DD 34 FE 18 36 -R 00 00 00 00 -T 0C 04 -R 00 00 00 00 -T 0C 04 DD 34 FF DD 7E FF D6 04 20 2C AF DD 77 FF -R 00 00 00 00 -T 1A 04 18 26 -R 00 00 00 00 -T 1C 04 -R 00 00 00 00 -T 1C 04 21 04 00 36 00 18 1F -R 00 00 00 00 00 03 02 00 -T 23 04 -R 00 00 00 00 -T 23 04 -R 00 00 00 00 -T 23 04 0C 79 3C C5 F5 33 3A 02 00 F5 33 3A 01 00 -R 00 00 00 00 00 09 02 00 00 0E 02 00 -T 31 04 F5 33 3A 00 00 F5 33 CD 68 01 F1 F1 7D C1 -R 00 00 00 00 00 05 02 00 00 0A 00 00 -T 3F 04 B7 20 E1 -R 00 00 00 00 -T 42 04 -R 00 00 00 00 -T 42 04 C5 79 F5 33 DD 66 FE DD 6E FF E5 3A 00 00 -R 00 00 00 00 00 0E 02 00 -T 50 04 F5 33 CD 68 01 F1 F1 7D C1 B7 28 10 DD 7E -R 00 00 00 00 00 05 00 00 -T 5E 04 FE 32 02 00 21 03 00 71 DD 7E FF 32 01 00 -R 00 00 00 00 00 04 02 00 00 07 02 00 00 0E 02 00 -T 6C 04 -R 00 00 00 00 -T 6C 04 3A 04 00 B7 C2 19 05 3A 03 00 3C F5 33 3A -R 00 00 00 00 00 03 02 00 00 07 00 00 00 0A 02 00 -T 7A 04 02 00 F5 33 3A 01 00 F5 33 3A 00 00 F5 33 -R 00 00 00 00 00 02 02 00 00 07 02 00 00 0C 02 00 -T 88 04 CD 68 01 F1 F1 7D B7 28 07 21 03 00 34 C3 -R 00 00 00 00 00 03 00 00 00 0C 02 00 -T 96 04 14 05 -R 00 00 00 00 00 02 00 00 -T 98 04 -R 00 00 00 00 -T 98 04 0E 00 -R 00 00 00 00 -T 9A 04 -R 00 00 00 00 -T 9A 04 79 D6 04 30 63 06 00 -R 00 00 00 00 -T A1 04 -R 00 00 00 00 -T A1 04 78 D6 04 30 59 FD 21 00 00 FD 6E 00 26 00 -R 00 00 00 00 00 09 02 00 -T AF 04 29 11 00 00 19 5E 23 56 C5 D5 3A 01 00 F5 -R 00 00 00 00 00 04 01 00 00 0D 02 00 -T BD 04 33 79 F5 33 C5 33 CD A2 00 F1 33 D1 C1 26 -R 00 00 00 00 00 09 00 00 -T CB 04 00 19 7E D6 58 20 2A 21 03 00 5E 16 00 69 -R 00 00 00 00 00 0A 02 00 -T D9 04 26 00 19 5D 54 29 19 29 29 EB FD 21 02 00 -R 00 00 00 00 00 0E 02 00 -T E7 04 FD 6E 00 26 00 19 58 16 00 19 EB 21 0E 00 -R 00 00 00 00 00 0E 01 00 -T F5 04 19 EB 3A 00 00 3C 12 -R 00 00 00 00 00 05 02 00 -T FC 04 -R 00 00 00 00 -T FC 04 04 18 A2 -R 00 00 00 00 -T FF 04 -R 00 00 00 00 -T FF 04 0C 18 98 -R 00 00 00 00 -T 02 05 -R 00 00 00 00 -T 02 05 CD 25 02 21 03 00 36 00 21 02 00 36 06 21 -R 00 00 00 00 00 03 00 00 00 06 02 00 00 0B 02 00 -T 10 05 01 00 36 00 -R 00 00 00 00 00 02 02 00 -T 14 05 -R 00 00 00 00 -T 14 05 21 04 00 36 02 -R 00 00 00 00 00 03 02 00 -T 19 05 -R 00 00 00 00 -T 19 05 21 04 00 35 CD 36 02 CD 20 03 2E 01 -R 00 00 00 00 00 03 02 00 00 07 00 00 00 0A 00 00 -T 25 05 -R 00 00 00 00 -T 25 05 DD F9 DD E1 C9 -R 00 00 00 00 -T 2A 05 -R 00 00 00 00 -T 2A 05 45 78 69 74 21 0A 0D 00 -R 00 00 00 00 -T 32 05 -R 00 00 00 00 -T 32 05 CD 00 00 CD FD 00 CD 25 02 21 -R 00 00 00 00 00 03 00 00 00 06 00 00 00 09 00 00 -T 3C 05 4B 05 E5 CD 00 00 F1 -R 00 00 00 00 00 02 00 00 02 06 02 00 -T 43 05 -R 00 00 00 00 -T 43 05 CD BA 03 7D B7 20 F9 C9 -R 00 00 00 00 00 03 00 00 -T 4B 05 -R 00 00 00 00 -T 4B 05 1B 5B 32 4A 00 -R 00 00 00 00 -T 00 00 -R 00 00 07 00 -T 00 00 00 -R 00 00 07 00 -T 01 00 -R 00 00 07 00 -T 01 00 00 -R 00 00 07 00 -T 02 00 -R 00 00 07 00 -T 02 00 06 -R 00 00 07 00 -T 03 00 -R 00 00 07 00 -T 03 00 00 -R 00 00 07 00 -T 04 00 -R 00 00 07 00 -T 04 00 02 -R 00 00 07 00 diff --git a/.build/main.sym b/.build/main.sym deleted file mode 100644 index 9d96cb5..0000000 --- a/.build/main.sym +++ /dev/null @@ -1,65 +0,0 @@ - ASxxxx Assembler V02.00 + NoICE + SDCC mods (Zilog Z80 / Hitachi HD64180 / ZX-Next / eZ80), page 1. -Hexadecimal [16-Bits] - -Symbol Table - - .__.$$$. = 2710 L - .__.ABS. = 0000 G - .__.CPU. = 0000 L - .__.H$L. = 0000 L - 0 ___str_0 002B R - 0 ___str_1 003C R - 0 ___str_10 054B R - 0 ___str_2 004D R - 0 ___str_3 005E R - 0 ___str_4 006F R - 0 ___str_5 0080 R - 0 ___str_6 0091 R - 0 ___str_7 03A8 R - 0 ___str_8 03B3 R - 0 ___str_9 052A R - 7 __xinit__counter 0004 R - 7 __xinit__current_rotation 0001 R - 7 __xinit__current_shape 0000 R - 7 __xinit__current_x 0002 R - 7 __xinit__current_y 0003 R - 0 _construct_shapes 0000 GR - 2 _counter 0004 GR - _cout = 0002 - 2 _current_rotation 0001 GR - 2 _current_shape 0000 GR - 2 _current_x 0002 GR - 2 _current_y 0003 GR - 0 _does_piece_fit 0168 GR - 0 _draw 0320 GR - 1 _field 000E GR - 0 _initialize_field 00FD GR - _key = 001E - 0 _loop 03BA GR - 0 _main 0532 GR - 0 _new_shape 0225 GR - _put_string **** GX - _random **** GX - 0 _render 0236 GR - 0 _rotate 00A2 GR - 1 _screen 00E6 GR - 1 _seed 01BE GR - _status = 001F - 1 _tetromino 0000 GR - - - ASxxxx Assembler V02.00 + NoICE + SDCC mods (Zilog Z80 / Hitachi HD64180 / ZX-Next / eZ80), page 2. -Hexadecimal [16-Bits] - -Area Table - - 0 _CODE size 550 flags 0 - 1 _DATA size 1BF flags 0 - 2 _INITIALIZED size 5 flags 0 - 3 _DABS size 0 flags 8 - 4 _HOME size 0 flags 0 - 5 _GSINIT size 0 flags 0 - 6 _GSFINAL size 0 flags 0 - 7 _INITIALIZER size 5 flags 0 - 8 _CABS size 0 flags 8 - diff --git a/.build/tetris.com b/.build/tetris.com deleted file mode 100644 index efa60a26a2beb15a6c18d5f2077a08c5f86bde13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1462 zcmZ`(Z)h837=Q0Bd2?;E)kGUFwyt?o3D>D1CSBRm?)=9(5mvEG*D=iS-|GI@FxNCm z(}c=s`=w4qlzk|IewZJpUm6`M%hD7>y+T_Wl<^2tDoB}FB_9gCJD@&`LgR<+K_dCjNa^4>( zTjsnsDf^A{-l9dnf6#yLA{Ai}m8KpaQZ=YsnTooLX|-#CUporZq9W8SOuI_ZngZ5= z5dw#LAY+Ao%k*>xv@H>FBVGKEF0PqwlKA_-V*8isW^W5nB}8+Pd$Y~7oxjHybN zm8bw2+xrmT#$;H(fvWRD0s5>36mVYua+{$X#5BlkpPs&qUG~ul=rblTHAJY3z_8&X z?!|G>fWtn~`SfDj;-hy50!JWXa}g}sJUQra?w&jj!xkUubj(qAq~lc>*3c$X8uTD) z`ojEag)Gq%k7Q+wpGbD-GV&$fo-gozu2Q`E443}H7L1AEm{_vOfA0cU=4Ne?=LuU2IHI}G)!zI01gg%Ml3a0PI^yUI&$PhRZ^bsTLxiIr zLBl3*@6!d@rN1t>>u<>({XLoKm*gi)aXBCzV<}qc#ZU616b|T84|M5LH|DM|(es4a zo#bOlv71Qk_GB;qK`=gU<~$H8B