GBDK 2020 Docs 4.4.0 API Documentation for GBDK 2020

Macros | Variables
hardware.h File Reference
`#include <types.h>`

Go to the source code of this file.

## Macros
#define | __BYTES extern UBYTE
#define | __BYTE_REG extern volatile UBYTE
#define | PSG_LATCH 0x80
#define | PSG_CH0 0b00000000
#define | PSG_CH1 0b00100000
#define | PSG_CH2 0b01000000
#define | PSG_CH3 0b01100000
#define | PSG_VOLUME 0b00010000
#define | STATF_INT_VBL 0b10000000
#define | STATF_9_SPR 0b01000000
#define | STATF_SPR_COLL 0b00100000
#define | VDP_REG_MASK 0b10000000
#define | VDP_R0 0b10000000
#define | R0_DEFAULT 0b00000000
#define | R0_CB_OUTPUT 0b00000000
#define | R0_CB_INPUT 0b01000000
#define | R0_IE2_OFF 0b00000000
#define | R0_IE2 0b00100000
#define | R0_IE1_OFF 0b00000000
#define | R0_IE1 0b00010000
#define | R0_SCR_MODE1 0b00000000
#define | R0_SCR_MODE2 0b00000010
#define | R0_SCR_MODE3 0b00000100
#define | R0_ES_OFF 0b00000000
#define | R0_ES 0b00000001
#define | VDP_R1 0b10000001
#define | R1_DEFAULT 0b10000000
#define | R1_DISP_OFF 0b00000000
#define | R1_DISP_ON 0b01000000
#define | R1_IE_OFF 0b00000000
#define | R1_IE 0b00100000
#define | R1_SCR_MODE1 0b00010000
#define | R1_SCR_MODE2 0b00000000
#define | R1_SCR_MODE3 0b00000000
#define | R1_SPR_8X8 0b00000000
#define | R1_SPR_16X16 0b00000010
#define | R1_SPR_MAG 0b00000001
#define | R1_SPR_MAG_OFF 0b00000000
#define | VDP_R2 0b10000010
#define | R2_MAP_0x3800 0xFF
#define | R2_MAP_0x3000 0xFD
#define | R2_MAP_0x2800 0xFB
#define | R2_MAP_0x2000 0xF9
#define | R2_MAP_0x1800 0xF7
#define | R2_MAP_0x1000 0xF5
#define | R2_MAP_0x0800 0xF3
#define | R2_MAP_0x0000 0xF1
#define | VDP_R3 0b10000011
#define | VDP_R4 0b10000100
#define | VDP_R5 0b10000101
#define | R5_SAT_0x3F00 0xFF
#define | R5_SAT_MASK 0b10000001
#define | VDP_R6 0b10000110
#define | R6_BANK0 0xFB
#define | R6_DATA_0x0000 0xFB
#define | R6_BANK1 0xFF
#define | R6_DATA_0x2000 0xFF
#define | VDP_R7 0b10000111
#define | VDP_RBORDER 0b10000111
#define | R7_COLOR_MASK 0b11110000
#define | VDP_R8 0b10001000
#define | VDP_RSCX 0b10001000
#define | VDP_R9 0b10001001
#define | VDP_RSCY 0b10001001
#define | VDP_R10 0b10001010
#define | R10_INT_OFF 0xFF
#define | R10_INT_EVERY 0x00
#define | SYSTEM_PAL 0x00
#define | SYSTEM_NTSC 0x01
#define | VBK_TILES 0
#define | VBK_ATTRIBUTES 1
#define | VDP_SAT_TERM 0xD0
#define | DEVICE_SCREEN_PX_WIDTH (DEVICE_SCREEN_WIDTH * 8)
#define | DEVICE_SCREEN_PX_HEIGHT (DEVICE_SCREEN_HEIGHT * 8)

## Variables
UBYTE | shadow_VDP_R0
UBYTE | shadow_VDP_R1
UBYTE | shadow_VDP_R2
UBYTE | shadow_VDP_R3
UBYTE | shadow_VDP_R4
UBYTE | shadow_VDP_R5
UBYTE | shadow_VDP_R6
UBYTE | shadow_VDP_R7
UBYTE | shadow_VDP_RBORDER
UBYTE | shadow_VDP_R8
UBYTE | shadow_VDP_RSCX
UBYTE | shadow_VDP_R9
UBYTE | shadow_VDP_RSCY
UBYTE | shadow_VDP_R10
const UBYTE | _SYSTEM
volatile UBYTE | VDP_ATTR_SHIFT

## Detailed Description

Defines that let the MSX hardware registers be accessed from C.

## Macro Definition Documentation

## ◆ __BYTES

#define __BYTES extern UBYTE

## ◆ __BYTE_REG

#define __BYTE_REG extern volatile UBYTE

## ◆ PSG_LATCH

#define PSG_LATCH 0x80

## ◆ PSG_CH0

#define PSG_CH0 0b00000000

## ◆ PSG_CH1

#define PSG_CH1 0b00100000

## ◆ PSG_CH2

#define PSG_CH2 0b01000000

## ◆ PSG_CH3

#define PSG_CH3 0b01100000

## ◆ PSG_VOLUME

#define PSG_VOLUME 0b00010000

## ◆ STATF_INT_VBL

#define STATF_INT_VBL 0b10000000

## ◆ STATF_9_SPR

#define STATF_9_SPR 0b01000000

## ◆ STATF_SPR_COLL

#define STATF_SPR_COLL 0b00100000

## ◆ VDP_REG_MASK

#define VDP_REG_MASK 0b10000000

## ◆ VDP_R0

#define VDP_R0 0b10000000

## ◆ R0_DEFAULT

#define R0_DEFAULT 0b00000000

## ◆ R0_CB_OUTPUT

#define R0_CB_OUTPUT 0b00000000

## ◆ R0_CB_INPUT

#define R0_CB_INPUT 0b01000000

## ◆ R0_IE2_OFF

#define R0_IE2_OFF 0b00000000

## ◆ R0_IE2

#define R0_IE2 0b00100000

## ◆ R0_IE1_OFF

#define R0_IE1_OFF 0b00000000

## ◆ R0_IE1

#define R0_IE1 0b00010000

## ◆ R0_SCR_MODE1

#define R0_SCR_MODE1 0b00000000

## ◆ R0_SCR_MODE2

#define R0_SCR_MODE2 0b00000010

## ◆ R0_SCR_MODE3

#define R0_SCR_MODE3 0b00000100

## ◆ R0_ES_OFF

#define R0_ES_OFF 0b00000000

## ◆ R0_ES

#define R0_ES 0b00000001

## ◆ VDP_R1

#define VDP_R1 0b10000001

## ◆ R1_DEFAULT

#define R1_DEFAULT 0b10000000

## ◆ R1_DISP_OFF

#define R1_DISP_OFF 0b00000000

## ◆ R1_DISP_ON

#define R1_DISP_ON 0b01000000

## ◆ R1_IE_OFF

#define R1_IE_OFF 0b00000000

## ◆ R1_IE

#define R1_IE 0b00100000

## ◆ R1_SCR_MODE1

#define R1_SCR_MODE1 0b00010000

## ◆ R1_SCR_MODE2

#define R1_SCR_MODE2 0b00000000

## ◆ R1_SCR_MODE3

#define R1_SCR_MODE3 0b00000000

## ◆ R1_SPR_8X8

#define R1_SPR_8X8 0b00000000

## ◆ R1_SPR_16X16

#define R1_SPR_16X16 0b00000010

## ◆ R1_SPR_MAG

#define R1_SPR_MAG 0b00000001

## ◆ R1_SPR_MAG_OFF

#define R1_SPR_MAG_OFF 0b00000000

## ◆ VDP_R2

#define VDP_R2 0b10000010

## ◆ R2_MAP_0x3800

#define R2_MAP_0x3800 0xFF

## ◆ R2_MAP_0x3000

#define R2_MAP_0x3000 0xFD

## ◆ R2_MAP_0x2800

#define R2_MAP_0x2800 0xFB

## ◆ R2_MAP_0x2000

#define R2_MAP_0x2000 0xF9

## ◆ R2_MAP_0x1800

#define R2_MAP_0x1800 0xF7

## ◆ R2_MAP_0x1000

#define R2_MAP_0x1000 0xF5

## ◆ R2_MAP_0x0800

#define R2_MAP_0x0800 0xF3

## ◆ R2_MAP_0x0000

#define R2_MAP_0x0000 0xF1

## ◆ VDP_R3

#define VDP_R3 0b10000011

## ◆ VDP_R4

#define VDP_R4 0b10000100

## ◆ VDP_R5

#define VDP_R5 0b10000101

## ◆ R5_SAT_0x3F00

#define R5_SAT_0x3F00 0xFF

## ◆ R5_SAT_MASK

#define R5_SAT_MASK 0b10000001

## ◆ VDP_R6

#define VDP_R6 0b10000110

## ◆ R6_BANK0

#define R6_BANK0 0xFB

## ◆ R6_DATA_0x0000

#define R6_DATA_0x0000 0xFB

## ◆ R6_BANK1

#define R6_BANK1 0xFF

## ◆ R6_DATA_0x2000

#define R6_DATA_0x2000 0xFF

## ◆ VDP_R7

#define VDP_R7 0b10000111

## ◆ VDP_RBORDER

#define VDP_RBORDER 0b10000111

## ◆ R7_COLOR_MASK

#define R7_COLOR_MASK 0b11110000

## ◆ VDP_R8

#define VDP_R8 0b10001000

## ◆ VDP_RSCX

#define VDP_RSCX 0b10001000

## ◆ VDP_R9

#define VDP_R9 0b10001001

## ◆ VDP_RSCY

#define VDP_RSCY 0b10001001

## ◆ VDP_R10

#define VDP_R10 0b10001010

## ◆ R10_INT_OFF

#define R10_INT_OFF 0xFF

## ◆ R10_INT_EVERY

#define R10_INT_EVERY 0x00

## ◆ SYSTEM_PAL

#define SYSTEM_PAL 0x00

## ◆ SYSTEM_NTSC

#define SYSTEM_NTSC 0x01

## ◆ VBK_TILES

#define VBK_TILES 0

## ◆ VBK_ATTRIBUTES

#define VBK_ATTRIBUTES 1

## ◆ VDP_SAT_TERM

#define VDP_SAT_TERM 0xD0

## ◆ DEVICE_SCREEN_PX_WIDTH

#define DEVICE_SCREEN_PX_WIDTH (DEVICE_SCREEN_WIDTH * 8)

## ◆ DEVICE_SCREEN_PX_HEIGHT

#define DEVICE_SCREEN_PX_HEIGHT (DEVICE_SCREEN_HEIGHT * 8)

## Variable Documentation

## ◆ shadow_VDP_R0

UBYTE shadow_VDP_R0
| extern

## ◆ shadow_VDP_R1

UBYTE shadow_VDP_R1
| extern

## ◆ shadow_VDP_R2

UBYTE shadow_VDP_R2
| extern

## ◆ shadow_VDP_R3

UBYTE shadow_VDP_R3
| extern

## ◆ shadow_VDP_R4

UBYTE shadow_VDP_R4
| extern

## ◆ shadow_VDP_R5

UBYTE shadow_VDP_R5
| extern

## ◆ shadow_VDP_R6

UBYTE shadow_VDP_R6
| extern

## ◆ shadow_VDP_R7

UBYTE shadow_VDP_R7
| extern

## ◆ shadow_VDP_RBORDER

UBYTE shadow_VDP_RBORDER
| extern

## ◆ shadow_VDP_R8

UBYTE shadow_VDP_R8
| extern

## ◆ shadow_VDP_RSCX

UBYTE shadow_VDP_RSCX
| extern

## ◆ shadow_VDP_R9

UBYTE shadow_VDP_R9
| extern

## ◆ shadow_VDP_RSCY

UBYTE shadow_VDP_RSCY
| extern

## ◆ shadow_VDP_R10

UBYTE shadow_VDP_R10
| extern

## ◆ _SYSTEM

const UBYTE _SYSTEM
| extern

## ◆ VDP_ATTR_SHIFT

volatile UBYTE VDP_ATTR_SHIFT
| extern