git.y1.nz

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.