gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/examples/cross-platform/banks/src/banks.c
1 /** Note that this example is a bit old. Try BANKED and NONBANKED
2 as in banked/
3 */
4 #include <gbdk/platform.h>
5 #include <stdint.h>
6 #include <stdio.h>
7
8 int var_internal; /* In internal RAM */
9 extern int var_0; /* In external RAM bank 0 */
10 extern int var_1; /* In external RAM bank 1 */
11 extern int var_2; /* In external RAM bank 2 */
12 extern int var_3; /* In external RAM bank 3 */
13
14 void bank_1(void) BANKED;
15 void bank_2(void) BANKED;
16 void bank_3(void) BANKED;
17
18 void bank_fixed(void) NONBANKED
19 {
20 puts("I'm in fixed ROM");
21 }
22
23 void main(void)
24 {
25 puts("Program Start...");
26
27 ENABLE_RAM;
28
29 var_internal = 1;
30 SWITCH_RAM(0);
31 var_0 = 2;
32 SWITCH_RAM(1);
33 var_1 = 3;
34 SWITCH_RAM(0);
35 var_2 = 4;
36 SWITCH_RAM(1);
37 var_3 = 5;
38
39 bank_fixed();
40 bank_1();
41 bank_2();
42 bank_3();
43
44 printf("Var is %u\n", var_internal);
45 SWITCH_RAM(0);
46 printf("Var_0 is %u\n", var_0);
47 SWITCH_RAM(1);
48 printf("Var_1 is %u\n", var_1);
49 SWITCH_RAM(0);
50 printf("Var_2 is %u\n", var_2);
51 SWITCH_RAM(1);
52 printf("Var_3 is %u\n", var_3);
53
54 puts("The End...");
55 }
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.