libElysianVMU 1.6.0
Full-featured, accurate, cross-platform library emulating the Dreamcast's Visual Memory Unit
Loading...
Searching...
No Matches
evmu_rom.h File Reference

Go to the source code of this file.

Data Structures

struct  EvmuRomClass
 
struct  EvmuRom
 

Macros

#define EVMU_ROM_NAME   "rom"
 
#define EVMU_BIOS_SKIP_DATE_TIME_PC   0x2e1
 
Type System

Type UUID and cast operators

#define EVMU_ROM_TYPE   (GBL_TYPEID(EvmuRom))
 
#define EVMU_ROM(self)   (GBL_CAST(EvmuRom, self))
 
#define EVMU_ROM_CLASS(klass)   (GBL_CLASS_CAST(EvmuRom, klass))
 
#define EVMU_ROM_GET_CLASS(self)   (GBL_CLASSOF(EvmuRom, self))
 
Address Space

Definitions for region locations and sizes

#define EVMU_ROM_SIZE   65536
 
#define EVMU_BIOS_SYS_PROG_ADDRESS_BASE   0x0000
 
#define EVMU_BIOS_SYS_PROG_SIZE   16384
 
#define EVMU_BIOS_OS_PROG_ADDRESS_BASE   0xed00
 
#define EVMU_BIOS_OS_PROG_SIZE   4096
 

Typedefs

typedef GblEnum EVMU_BIOS_SUBROUTINE
 
typedef GblEnum EVMU_BIOS_TYPE
 
typedef GblEnum EVMU_BIOS_MODE
 

Enumerations

enum  EVMU_BIOS_SUBROUTINE
 
enum  EVMU_BIOS_TYPE
 
enum  EVMU_BIOS_MODE
 

Functions

GblType EvmuRom_type (void)
 

Detailed Description

EvmuRom: External ROM chip, BIOS, Firmware routines.

Todo:
  • CLEAN UP IMPLEMENTATION IN GENERAL
  • EvmuRom_setBiosMode() (set mode button then jump to Colton's address?)
  • EvmuRom["biosMode"]: R/W
  • EvmuRom["dateTime"]: R/W (pending on ISO8601 in Gimbal)
  • Maybe signal when entering/exiting BIOS
  • overridable virtuals for whole custom BIOS
  • return elapsed ticks/cycles for subroutine call
  • return BIOS version information and shit
  • EvmuRom_biosMode()
Author
2023 Falco Girgis
2023 Colton Pawielski

Definition in file evmu_rom.h.

Macro Definition Documentation

◆ EVMU_BIOS_OS_PROG_ADDRESS_BASE

#define EVMU_BIOS_OS_PROG_ADDRESS_BASE   0xed00

Start address of OS/BIOS program.

Definition at line 46 of file evmu_rom.h.

◆ EVMU_BIOS_OS_PROG_SIZE

#define EVMU_BIOS_OS_PROG_SIZE   4096

Size of OS/BIOS program in bytes

Definition at line 47 of file evmu_rom.h.

◆ EVMU_BIOS_SKIP_DATE_TIME_PC

#define EVMU_BIOS_SKIP_DATE_TIME_PC   0x2e1

BIOS PC address just after setting date/time.

Definition at line 50 of file evmu_rom.h.

◆ EVMU_BIOS_SYS_PROG_ADDRESS_BASE

#define EVMU_BIOS_SYS_PROG_ADDRESS_BASE   0x0000

Start of Firmware/Subroutines in bytes.

Definition at line 44 of file evmu_rom.h.

◆ EVMU_BIOS_SYS_PROG_SIZE

#define EVMU_BIOS_SYS_PROG_SIZE   16384

Size of Firmware/Subroutines in bytes.

Definition at line 45 of file evmu_rom.h.

◆ EVMU_ROM

#define EVMU_ROM (   self)    (GBL_CAST(EvmuRom, self))

Cast GblInstance to EvmuRom.

Definition at line 32 of file evmu_rom.h.

◆ EVMU_ROM_CLASS

#define EVMU_ROM_CLASS (   klass)    (GBL_CLASS_CAST(EvmuRom, klass))

Cast GblClass to EvmuRomClass.

Definition at line 33 of file evmu_rom.h.

◆ EVMU_ROM_GET_CLASS

#define EVMU_ROM_GET_CLASS (   self)    (GBL_CLASSOF(EvmuRom, self))

Get EvmuRomClass from GblInstance

Definition at line 34 of file evmu_rom.h.

◆ EVMU_ROM_NAME

#define EVMU_ROM_NAME   "rom"

GblObject name of EvmuRom peripoheral.

Definition at line 37 of file evmu_rom.h.

◆ EVMU_ROM_SIZE

#define EVMU_ROM_SIZE   65536

Total size of external ROM chip.

Definition at line 43 of file evmu_rom.h.

◆ EVMU_ROM_TYPE

#define EVMU_ROM_TYPE   (GBL_TYPEID(EvmuRom))

Type UUID for EvmuRom.

Definition at line 31 of file evmu_rom.h.

Typedef Documentation

◆ EVMU_BIOS_MODE

Definition at line 78 of file evmu_rom.h.

◆ EVMU_BIOS_SUBROUTINE

Definition at line 58 of file evmu_rom.h.

◆ EVMU_BIOS_TYPE

Definition at line 71 of file evmu_rom.h.

Enumeration Type Documentation

◆ EVMU_BIOS_MODE

Enumerator
EVMU_BIOS_MODE_FILE 

File Manager mode.

EVMU_BIOS_MODE_GAME 

Game/Application mode.

EVMU_BIOS_MODE_TIME 

Clock/time mode.

EVMU_BIOS_MODE_MAPLE 

Connected to DC, Maple slave mode.

EVMU_BIOS_MODE_UNKNOWN 

Unknown mode (unknown BIOS)

EVMU_BIOS_MODE_COUNT 

Number of BIOS modes.

Definition at line 78 of file evmu_rom.h.

78 {
85};
@ EVMU_BIOS_MODE_FILE
File Manager mode.
Definition evmu_rom.h:79
@ EVMU_BIOS_MODE_MAPLE
Connected to DC, Maple slave mode.
Definition evmu_rom.h:82
@ EVMU_BIOS_MODE_GAME
Game/Application mode.
Definition evmu_rom.h:80
@ EVMU_BIOS_MODE_UNKNOWN
Unknown mode (unknown BIOS)
Definition evmu_rom.h:83
@ EVMU_BIOS_MODE_COUNT
Number of BIOS modes.
Definition evmu_rom.h:84
@ EVMU_BIOS_MODE_TIME
Clock/time mode.
Definition evmu_rom.h:81

◆ EVMU_BIOS_SUBROUTINE

Enumerator
EVMU_BIOS_SUBROUTINE_RESET 

Regular starting point.

EVMU_BIOS_SUBROUTINE_FM_WRT_EX 

Flash memory write, return address variant 1.

EVMU_BIOS_SUBROUTINE_FM_WRTA_EX 

Flash memory write, return address variant 2.

EVMU_BIOS_SUBROUTINE_FM_VRF_EX 

Flash memory page data verify.

EVMU_BIOS_SUBROUTINE_FM_PRD_EX 

Flash memory paged read data.

EVMU_BIOS_SUBROUTINE_TIMER_EX 

System time update, used as Base Timer ISR.

EVMU_BIOS_SUBROUTINE_SLEEP_EX 

Enable sleep mode.

EVMU_BIOS_SUBROUTINE_EXIT_EX 

MODE button logic.

Definition at line 58 of file evmu_rom.h.

58 {
60 // Firmware calls: utility functions that return execution back to app
65 // BIOS routines: control yields to BIOS?
69};
@ EVMU_BIOS_SUBROUTINE_FM_PRD_EX
Flash memory paged read data.
Definition evmu_rom.h:64
@ EVMU_BIOS_SUBROUTINE_FM_WRTA_EX
Flash memory write, return address variant 2.
Definition evmu_rom.h:62
@ EVMU_BIOS_SUBROUTINE_FM_VRF_EX
Flash memory page data verify.
Definition evmu_rom.h:63
@ EVMU_BIOS_SUBROUTINE_EXIT_EX
MODE button logic.
Definition evmu_rom.h:68
@ EVMU_BIOS_SUBROUTINE_RESET
Regular starting point.
Definition evmu_rom.h:59
@ EVMU_BIOS_SUBROUTINE_FM_WRT_EX
Flash memory write, return address variant 1.
Definition evmu_rom.h:61
@ EVMU_BIOS_SUBROUTINE_TIMER_EX
System time update, used as Base Timer ISR.
Definition evmu_rom.h:66
@ EVMU_BIOS_SUBROUTINE_SLEEP_EX
Enable sleep mode.
Definition evmu_rom.h:67

◆ EVMU_BIOS_TYPE

Enumerator
EVMU_BIOS_TYPE_EMULATED 

Default, no BIOS, software emulation.

EVMU_BIOS_TYPE_AMERICAN_IMAGE_V1_05 

CRC for American BIOS.

EVMU_BIOS_TYPE_JAPANESE_IMAGE_V1_04 

CRC for Japanese BIOS.

EVMU_BIOS_TYPE_UNKNOWN_IMAGE 

Any other unknown image.

Definition at line 71 of file evmu_rom.h.

71 {
76};
@ EVMU_BIOS_TYPE_UNKNOWN_IMAGE
Any other unknown image.
Definition evmu_rom.h:75
@ EVMU_BIOS_TYPE_EMULATED
Default, no BIOS, software emulation.
Definition evmu_rom.h:72
@ EVMU_BIOS_TYPE_AMERICAN_IMAGE_V1_05
CRC for American BIOS.
Definition evmu_rom.h:73
@ EVMU_BIOS_TYPE_JAPANESE_IMAGE_V1_04
CRC for Japanese BIOS.
Definition evmu_rom.h:74

Function Documentation

◆ EvmuRom_type()

GblType EvmuRom_type ( void  )

Returns the GblType UUID associated with EvmuRom.