blob: 6d7d79e813b22bd7c668f85ce6d4d82fd7683b61 [file] [log] [blame]
PulkoMandy17fc7592022-07-28 18:27:54 +02001
2/* automaticaly generated from the file start.asm do not modify */
3
4static void emit_start(FILE *f)
5{
6 emit(f,".org 0x2100\n");
7 emit(f,".db \"MN\"\n");
8 emit_irq_vectors(f);
9 emit(f,".orgfill 0x21A4\n");
10 emit(f,".db \"NINTENDO\"\n");
11 emit(f,".db \"%s\"\n", game_id);
12 emit(f,".db \"%s\"\n", game_name);
13 emit(f,".orgfill 0x21BC\n");
14 emit(f,".db \"2P\"\n");
15 emit(f,".orgfill 0x21D0\n");
16 emit(f,"vbcc___start_rom_vars:\n");
17 emit(f,".org 0x1000\n");
18 emit(f,"vbcc___start_ram_vars:\n");
19 emit(f,".org 0x2000\n");
20 emit(f,"vbcc___end_ram_vars:\n");
21 emit(f,".org 0x31D0\n");
22 emit(f,".equ vbcc___ram_vars_offset %d - 0x1000\n", start_ram_vars);
23 emit(f, "%s0:\n", int_handler_prefix);
24 emit(f,"\tmov\t\tx, vbcc___start_rom_vars + vbcc___ram_vars_offset\n");
25 emit(f,"\tmov\t\ty, vbcc___start_ram_vars + vbcc___ram_vars_offset\n");
26 emit(f,"\tmov\t\thl, vbcc___end_ram_vars\n");
27 emit(f,"vbcc__copy_vars_loop:\n");
28 emit(f,"\tmov\t\ta,[x]\n");
29 emit(f,"\tmov\t\t[y],a\n");
30 emit(f,"\tinc\t\tx\n");
31 emit(f,"\tinc\t\ty\n");
32 emit(f,"\tcmp\t\thl, y\n");
33 emit(f,"\tjnz\t\tvbcc__copy_vars_loop\n");
34 emit(f,"\tmovw\tsp, 0x2000\n");
35 emit(f,"\tmovw\tnn, 0x2000\n");
36 emit(f,"\tmovb\t[nn+0x21], 0x0C\n");
37 emit(f,"\tmovb\t[nn+0x25], (1<<7)\n");
38 emit(f,"\tmovb\tflags, 0\n");
39 emit(f,"\tmovb\t[nn+0x80], 0b00001000\n");
40 emit(f,"\tmovb\t[nn+0x81], 0b00001001\n");
41 emit(f,"\tcall\tmain\n");
42 emit(f,"vbcc___infinite_loop:\n");
43 emit(f,"\tjmp\tvbcc___infinite_loop\n");
44}