Initial port to 68040 (WIP)

Not fully working, but it's starting to boot. Interrupts and the Mo keyboard seem not to be working yet.
This commit is contained in:
Peter Weingartner 2021-11-27 18:49:47 -05:00
parent 6b8e2204f6
commit 60c40b750f
29 changed files with 13026 additions and 17362 deletions

1
.gitignore vendored
View file

@ -65,3 +65,4 @@ src/foenixmcp_ram.bin
src/foenixmcp_flash.bin src/foenixmcp_flash.bin
src/bin/archive/foenixmcp_u_flash_20211111_03.bin src/bin/archive/foenixmcp_u_flash_20211111_03.bin
src/bin/archive/foenixmcp_u_flash_20211112_06.bin src/bin/archive/foenixmcp_u_flash_20211112_06.bin
src/Shit2Flash.bin

View file

@ -1,4 +1,4 @@
[DEFAULT] [DEFAULT]
port=COM6 port=COM9
labels=sample.lbl labels=sample.lbl
flash_address=380000 flash_address=380000

View file

@ -0,0 +1,21 @@
assign CS0 = ( Internal_Address[31:21] == 11'b0000_0000_000 ) & ( UserData | UserProgram | SuperData | SuperProgram ); //$00 (2M)
// System RAM
assign CS_MERA = ( Internal_Address[31:24] == 7'b0000_001 ) & ( UserData | UserProgram | SuperData | SuperProgram ); //$02000000 - $05FFFFFF 64Meg
// Video RAM
assign CS_VRAM_A = ( Internal_Address[31:21] == 11'b0000_0000_100 ) & ( UserData | SuperData ); //$080000 - 09FFFF (2M) (out of 8M)
assign CS_VRAM_B = ( Internal_Address[31:21] == 11'b0000_0000_101 ) & ( UserData | SuperData ); //$0A0000 - 0BFFFF (2M) (out of 8M)
assign CS_GABE = ( Internal_Address[31:17] == 15'b1111_1110_1100_000 ) & ( UserData | SuperData ); //$FEC0
assign CS_BEATRIX = ( Internal_Address[31:17] == 15'b1111_1110_1100_001 ) & ( UserData | SuperData ); //$FEC2
// Vicky Channel A
assign CS_VICKY_A = ( Internal_Address[31:17] == 15'b1111_1110_1100_010 ) & ( UserData | SuperData ); //$FEC4
assign CS_VICKY_MEM_A = ( Internal_Address[31:17] == 15'b1111_1110_1100_011 ) & ( UserData | SuperData ); //$FEC6
//$00C6_8000 - $00C9_FFFF - Reserved
// Vicky Channel B
assign CS_VICKY_B = ( Internal_Address[31:17] == 15'b1111_1110_1100_100 ) & ( UserData | SuperData ); //$FEC8
assign CS_VICKY_MEM_B = ( Internal_Address[31:17] == 15'b1111_1110_1100_101 ) & ( UserData | SuperData ); //$FECA
assign FLASH0 = ( Internal_Address[31:21] == 11'b1111_1111_111 ) & ( SuperData | SuperProgram ); //$FFE0_0000
VICKY_MASTER_REG[8] <= 32'h1008_1008; // FONT Manager - Font Container Size and FONT Size
VICKY_MASTER_REG[9] <= 32'h0000_1E50; // FONT - Horizontal # of Character, Vertical # FONT Line

View file

@ -6,7 +6,7 @@
# CPU_M68030 0x23 /* CPU code for the Motorola 68030 */ # CPU_M68030 0x23 /* CPU code for the Motorola 68030 */
# CPU_M68040 0x24 /* CPU code for the Motorola 68040 */ # CPU_M68040 0x24 /* CPU code for the Motorola 68040 */
# CPU_I486DX 0x34 /* CPU code for the Intel 486DX */ # CPU_I486DX 0x34 /* CPU code for the Intel 486DX */
export CPU=32 export CPU=36
# MODEL_FOENIX_FMX 0 # MODEL_FOENIX_FMX 0
# MODEL_FOENIX_C256U 1 # MODEL_FOENIX_C256U 1
@ -22,12 +22,12 @@ export VER_MINOR = 1
export VER_BUILD = 11 export VER_BUILD = 11
export AS = vasmm68k_mot export AS = vasmm68k_mot
export ASFLAGS = -quiet -Fvobj -nowarn=62 export ASFLAGS = -m68040 -quiet -Fvobj -nowarn=62
export CC = vc export CC = vc
export DEFINES = -DCPU=$(CPU) -DMODEL=$(MODEL) -DVER_MAJOR=$(VER_MAJOR) -DVER_MINOR=$(VER_MINOR) -DVER_BUILD=$(VER_BUILD) # -DKBD_POLLED export DEFINES = -DCPU=$(CPU) -DMODEL=$(MODEL) -DVER_MAJOR=$(VER_MAJOR) -DVER_MINOR=$(VER_MINOR) -DVER_BUILD=$(VER_BUILD) # -DKBD_POLLED
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
export CFLAGS = +$(VBCC)/config/m68k-foenix -I. -I$(CURDIR)/include -I$(CURDIR) export CFLAGS = -cpu=68040 +$(VBCC)/config/a2560k_ram -I. -I$(CURDIR)/include -I$(CURDIR)
# export CFLAGS = +$(VBCC)/config/a2560u_flash -I. -I$(CURDIR)/include -I$(CURDIR) # export CFLAGS = +$(VBCC)/config/a2560u_flash -I. -I$(CURDIR)/include -I$(CURDIR)
export RM = cmd /C del /Q /F export RM = cmd /C del /Q /F
else else
@ -36,7 +36,7 @@ else
export RM = rm -f export RM = rm -f
endif endif
cpu = m68k cpu = m68040
cpu_assembly_src := $(wildcard $(cpu)/*.s) cpu_assembly_src := $(wildcard $(cpu)/*.s)
cpu_c_src := $(wildcard $(cpu)/*.c) cpu_c_src := $(wildcard $(cpu)/*.c)
cpu_assembly_obj := $(subst .s,.o,$(cpu_assembly_src)) cpu_assembly_obj := $(subst .s,.o,$(cpu_assembly_src))

View file

@ -504,7 +504,7 @@ short con_read_b(p_channel chan) {
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
#ifdef KBD_POLLED #ifdef KBD_POLLED
ps2_mouse_get_packet(); //ps2_mouse_get_packet();
c = kbdmo_getc_poll(); c = kbdmo_getc_poll();
#else #else
c = kbdmo_getc(); c = kbdmo_getc();

View file

@ -12,8 +12,8 @@
#include "ring_buffer.h" #include "ring_buffer.h"
#include "gabe_reg.h" #include "gabe_reg.h"
#define KBD_MO_DATA ((volatile unsigned short *)0x00C00040) /* Data register for the keyboard (scan codes will be here) */ #define KBD_MO_DATA ((volatile unsigned short *)0xFEC00040) /* Data register for the keyboard (scan codes will be here) */
#define KBD_MO_STAT ((volatile unsigned short *)0x00C00042) /* Status register for the keyboard */ #define KBD_MO_STAT ((volatile unsigned short *)0xFEC00042) /* Status register for the keyboard */
#define KBD_MO_EMPTY 0x8000 /* Status flag that will be set if the keyboard buffer is empty */ #define KBD_MO_EMPTY 0x8000 /* Status flag that will be set if the keyboard buffer is empty */
#define KBD_MO_FULL 0x4000 /* Status flag that will be set if the keyboard buffer is full */ #define KBD_MO_FULL 0x4000 /* Status flag that will be set if the keyboard buffer is full */

View file

@ -17,8 +17,15 @@ static long rtc_ticks;
void rtc_handle_int() { void rtc_handle_int() {
unsigned char flags; unsigned char flags;
short x = 0;
short y = 10;
short z = y / x;
volatile char * screen = 0xFEC60000;
/* Periodic interrupt: increment the ticks counter */ /* Periodic interrupt: increment the ticks counter */
rtc_ticks++; rtc_ticks++;
screen[0]++;
} }
/* /*
@ -42,16 +49,17 @@ void rtc_init() {
* the SOF A interrupt as a surrogate for the RTC jiffie timer * the SOF A interrupt as a surrogate for the RTC jiffie timer
*/ */
// /* Set the periodic interrupt to 15 millisecs */ /* Set the periodic interrupt to 15 millisecs */
// *RTC_RATES = RTC_RATE_15ms; *RTC_RATES = RTC_RATE_15ms;
// int_register(INT_RTC, rtc_handle_int); int_register(INT_RTC, rtc_handle_int);
/* Enable the periodic interrupt */ /* Enable the periodic interrupt */
// flags = *RTC_FLAGS; flags = *RTC_FLAGS;
// *RTC_ENABLES = RTC_PIE; *RTC_ENABLES = RTC_PIE;
rtc_ticks = 0;
// int_enable(INT_RTC); int_enable(INT_RTC);
} }
/* /*
@ -232,5 +240,5 @@ void rtc_get_time(p_time time) {
* the number of jiffies since the last reset * the number of jiffies since the last reset
*/ */
long rtc_get_jiffies() { long rtc_get_jiffies() {
return timers_jiffies(); return rtc_ticks;
} }

View file

@ -8,6 +8,7 @@
#include "simpleio.h" #include "simpleio.h"
#include "sys_general.h" #include "sys_general.h"
#include "rsrc/font/MSX_CP437_8x8.h" #include "rsrc/font/MSX_CP437_8x8.h"
#include "rsrc/font/BM437_IBM_Model3_Alt4.h"
#define MAX_TEXT_CHANNELS 2 #define MAX_TEXT_CHANNELS 2
@ -16,6 +17,7 @@
*/ */
typedef struct s_text_channel { typedef struct s_text_channel {
unsigned char current_color; unsigned char current_color;
unsigned char * font_ptr;
volatile unsigned long * master_control; volatile unsigned long * master_control;
volatile char * text_cells; volatile char * text_cells;
@ -23,11 +25,14 @@ typedef struct s_text_channel {
volatile unsigned long * cursor_settings; volatile unsigned long * cursor_settings;
volatile unsigned long * cursor_position; volatile unsigned long * cursor_position;
volatile unsigned long * border_control; volatile unsigned long * border_control;
volatile unsigned long * font_size_ctrl;
volatile unsigned long * font_count_ctrl;
short columns_max; short columns_max;
short rows_max; short rows_max;
short columns_visible; short columns_visible;
short rows_visible; short rows_visible;
short font_size; /* 0 = 8x8, 1 = 8x16 */
short x; short x;
short y; short y;
@ -114,15 +119,23 @@ int text_init() {
text_channel[i].y = 0; text_channel[i].y = 0;
} }
#if MODEL == MODEL_FOENIX_A2560K
// Init CLUT for the Color Memory
for (i = 0; i < 16; i++) {
unsigned long fg_color = fg_color_lut[2*i + 1] << 16 | fg_color_lut[2*i];
unsigned long bg_color = bg_color_lut[2*i + 1] << 16 | bg_color_lut[2*i];
FG_CLUT_A[i] = fg_color;
BG_CLUT_A[i] = bg_color;
FG_CLUT_B[i] = fg_color;
BG_CLUT_B[i] = bg_color;
}
#else
// Init CLUT for the Color Memory // Init CLUT for the Color Memory
for (i = 0; i<32; i++) { for (i = 0; i<32; i++) {
FG_CLUT_A[i] = fg_color_lut[i]; FG_CLUT_A[i] = fg_color_lut[i];
BG_CLUT_A[i] = bg_color_lut[i]; BG_CLUT_A[i] = bg_color_lut[i];
#if MODEL == MODEL_FOENIX_A2560K
FG_CLUT_B[i] = fg_color_lut[i];
BG_CLUT_B[i] = bg_color_lut[i];
#endif
} }
#endif
/* Initialize everything... only do a screen if it's present */ /* Initialize everything... only do a screen if it's present */
@ -135,26 +148,63 @@ int text_init() {
chan_a->cursor_position = CursorControlReg_H_A; chan_a->cursor_position = CursorControlReg_H_A;
chan_a->border_control = BorderControlReg_L_A; chan_a->border_control = BorderControlReg_L_A;
#if MODEL == MODEL_FOENIX_A2560K
/* A2560K has support for 8x16 characters and therefore font sizes */
chan_a->font_size_ctrl = FONT_Size_Ctrl_A;
chan_a->font_count_ctrl = FONT_Count_Ctrl_A;
need_hires = 1;
#else
/* All other models do not have this feature */
chan_a->font_size_ctrl = 0;
chan_a->font_count_ctrl = 0;
#endif
if (need_hires) { if (need_hires) {
*chan_a->master_control = VKY3_MCR_800x600 | VKY3_MCR_TEXT_EN; /* Set to text only mode: 800x600 */ *chan_a->master_control = VKY3_MCR_800x600 | VKY3_MCR_TEXT_EN; /* Set to text only mode: 800x600 */
} else { } else {
*chan_a->master_control = VKY3_MCR_640x480 | VKY3_MCR_TEXT_EN; /* Set to text only mode: 640x480 */ *chan_a->master_control = VKY3_MCR_640x480 | VKY3_MCR_TEXT_EN; /* Set to text only mode: 640x480 */
} }
/* Set the font for channel A */
for (i = 0; i < 0x800; i++) {
unsigned char b = MSX_CP437_8x8_bin[i];
VICKY_TXT_FONT_A[i] = b;
}
text_set_border(0, 1, 0x20, 0x10, border_color);
text_setsizes(0); text_setsizes(0);
text_set_color(0, 0xf, 4); text_set_color(0, 0xf, 4);
text_set_cursor(0, 0xF3, 0x7F, 1, 1); text_set_cursor(0, 0xF3, 0x7F, 1, 1);
text_set_xy(0, 0, 0); text_set_xy(0, 0, 0);
text_clear(0, 2); text_clear(0, 2);
if (chan_a->font_size_ctrl) {
*chan_a->font_size_ctrl = 0x10081008; /* 8x16... and ... something? */
*chan_a->font_count_ctrl = 0x00002564; /* Ehhh? */
chan_a->font_size = 1; /* Set 8x16 */
} else {
/* Set 8x8 */
chan_a->font_size = 0;
}
/* Set the font for channel A */
if (chan_a->font_size == 1) {
/* Load the 8x16 font */
for (i = 0; i < 0x1000; i++) {
unsigned char b = BM437_IBM_Model3_Alt4[i];
VICKY_TXT_FONT_A[i] = b;
}
/* Cursor for this font */
text_set_cursor(0, 0xF3, 0xB0, 1, 1);
} else {
/* Load the 8x8 font */
for (i = 0; i < 0x800; i++) {
unsigned char b = MSX_CP437_8x8_bin[i];
VICKY_TXT_FONT_A[i] = b;
}
/* Cursor for this font */
text_set_border(0, 1, 0x20, 0x10, border_color);
}
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
chan_b->master_control = MasterControlReg_B; chan_b->master_control = MasterControlReg_B;
@ -163,6 +213,8 @@ int text_init() {
chan_b->cursor_settings = CursorControlReg_L_B; chan_b->cursor_settings = CursorControlReg_L_B;
chan_b->cursor_position = CursorControlReg_H_B; chan_b->cursor_position = CursorControlReg_H_B;
chan_b->border_control = BorderControlReg_L_B; chan_b->border_control = BorderControlReg_L_B;
chan_b->font_size_ctrl = 0;
chan_b->font_count_ctrl = 0;
if (need_hires) { if (need_hires) {
*chan_b->master_control = VKY3_MCR_800x600 | VKY3_MCR_TEXT_EN; /* Set to text only mode: 800x600 */ *chan_b->master_control = VKY3_MCR_800x600 | VKY3_MCR_TEXT_EN; /* Set to text only mode: 800x600 */
@ -334,6 +386,10 @@ void text_setsizes(short screen) {
chan->rows_max /= 2; chan->rows_max /= 2;
} }
if (chan->font_size == 1) {
chan->rows_max /= 2;
}
/* Calculate visible rows and columns assuming no border */ /* Calculate visible rows and columns assuming no border */
chan->rows_visible = chan->rows_max; chan->rows_visible = chan->rows_max;
chan->columns_visible = chan->columns_max; chan->columns_visible = chan->columns_max;
@ -351,6 +407,10 @@ void text_setsizes(short screen) {
rows_reduction /= 2; rows_reduction /= 2;
} }
if (chan->font_size == 1) {
rows_reduction /= 2;
}
chan->columns_visible -= columns_reduction; chan->columns_visible -= columns_reduction;
chan->rows_visible -= rows_reduction; chan->rows_visible -= rows_reduction;
} }

View file

@ -156,7 +156,7 @@ void initialize() {
short res; short res;
/* Set the logging level */ /* Set the logging level */
log_setlevel(LOG_ERROR); log_setlevel(LOG_DEBUG);
// /* Hide the mouse */ // /* Hide the mouse */
mouse_set_visible(0); mouse_set_visible(0);
@ -164,9 +164,9 @@ void initialize() {
/* Initialize the text channels */ /* Initialize the text channels */
text_init(); text_init();
/* Initialize the indicators, and turn on the power indicator */ /* Initialize the indicators */
ind_init(); ind_init();
ind_set(IND_POWER, IND_ON); log(LOG_INFO, "Indicators initialized");
/* Initialize the interrupt system */ /* Initialize the interrupt system */
int_init(); int_init();
@ -204,19 +204,17 @@ void initialize() {
rtc_init(); rtc_init();
target_jiffies = sys_time_jiffies() + 300; /* 5 seconds minimum */ target_jiffies = sys_time_jiffies() + 300; /* 5 seconds minimum */
log_num(LOG_DEBUG, "target_jiffies assigned: ", target_jiffies);
log(LOG_TRACE, "target_jiffies assigned");
/* Enable all interrupts */ /* Enable all interrupts */
int_enable_all(); int_enable_all();
log(LOG_TRACE, "Interrupts enabled"); log(LOG_TRACE, "Interrupts enabled");
/* Display the splash screen */ // /* Display the splash screen */
load_splashscreen(); // load_splashscreen();
/* Play the SID test bong on the Gideon SID implementation */ /* Play the SID test bong on the Gideon SID implementation */
sid_test_internal(); // sid_test_internal();
if (res = pata_install()) { if (res = pata_install()) {
log_num(LOG_ERROR, "FAILED: PATA driver installation", res); log_num(LOG_ERROR, "FAILED: PATA driver installation", res);
@ -230,21 +228,21 @@ void initialize() {
log(LOG_INFO, "SDC driver installed."); log(LOG_INFO, "SDC driver installed.");
} }
#if MODEL == MODEL_FOENIX_A2560K // #if MODEL == MODEL_FOENIX_A2560K
if (res = fdc_install()) { // if (res = fdc_install()) {
log_num(LOG_ERROR, "FAILED: Floppy drive initialization", res); // log_num(LOG_ERROR, "FAILED: Floppy drive initialization", res);
} else { // } else {
log(LOG_INFO, "Floppy drive initialized."); // log(LOG_INFO, "Floppy drive initialized.");
} // }
#endif // #endif
// At this point, we should be able to call into to console to print to the screens // At this point, we should be able to call into to console to print to the screens
//
if (res = ps2_init()) { // if (res = ps2_init()) {
print_error(0, "FAILED: PS/2 keyboard initialization", res); // print_error(0, "FAILED: PS/2 keyboard initialization", res);
} else { // } else {
DEBUG("PS/2 keyboard initialized."); // DEBUG("PS/2 keyboard initialized.");
} // }
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
if (res = kbdmo_init()) { if (res = kbdmo_init()) {
@ -265,17 +263,17 @@ void initialize() {
} else { } else {
log(LOG_INFO, "File system initialized."); log(LOG_INFO, "File system initialized.");
} }
//
/* Wait until the target duration has been reached _or_ the user presses a key */ // /* Wait until the target duration has been reached _or_ the user presses a key */
while (target_jiffies > sys_time_jiffies()) { // while (target_jiffies > sys_time_jiffies()) {
short scan_code = sys_kbd_scancode(); // short scan_code = sys_kbd_scancode();
if (scan_code != 0) { // if (scan_code != 0) {
break; // break;
} // }
} // }
//
/* Go back to text mode */ // /* Go back to text mode */
text_init(); // text_init();
} }
int main(int argc, char * argv[]) { int main(int argc, char * argv[]) {
@ -319,13 +317,6 @@ int main(int argc, char * argv[]) {
sprintf(welcome, "Foenix/MCP v%02d.%02d-alpha+%04d\n\nType \"HELP\" or \"?\" for command summary.", VER_MAJOR, VER_MINOR, VER_BUILD); sprintf(welcome, "Foenix/MCP v%02d.%02d-alpha+%04d\n\nType \"HELP\" or \"?\" for command summary.", VER_MAJOR, VER_MINOR, VER_BUILD);
sys_chan_write(0, welcome, strlen(welcome)); sys_chan_write(0, welcome, strlen(welcome));
// #if MODEL == MODEL_FOENIX_A2560K
// fdc_init();
// if (fdc_ioctrl(FDC_CTRL_MOTOR_ON, 0, 0)) {
// log(LOG_ERROR, "Could not turn on the floppy drive motor.");
// }
// #endif
cli_repl(0); cli_repl(0);
log(LOG_INFO, "Stopping."); log(LOG_INFO, "Stopping.");

File diff suppressed because it is too large Load diff

View file

@ -9,7 +9,7 @@
* Screen Channel A * Screen Channel A
*/ */
#define MasterControlReg_A ((volatile uint32_t *)0x00C40000) #define MasterControlReg_A ((volatile int *)0xFEC40000)
#define VKY3_MCR_TEXT_EN 0x00000001 /* Text Mode Enable */ #define VKY3_MCR_TEXT_EN 0x00000001 /* Text Mode Enable */
#define VKY3_MCR_TEXT_OVRLY 0x00000002 /* Text Mode overlay */ #define VKY3_MCR_TEXT_OVRLY 0x00000002 /* Text Mode overlay */
#define VKY3_MCR_GRAPH_EN 0x00000004 /* Graphic Mode Enable */ #define VKY3_MCR_GRAPH_EN 0x00000004 /* Graphic Mode Enable */
@ -26,100 +26,103 @@
/* Access to DIP switch information (read only) */ /* Access to DIP switch information (read only) */
#define VKY3_DIP_REG ((volatile unsigned short *)0x00C40002) #define VKY3_DIP_REG ((volatile unsigned short *)0xFEC40002)
/* Bits 0 - 12: Master Control Register data */ /* Bits 0 - 12: Master Control Register data */
#define VKY3_DIP_GAMMA 0x2000 /* DIP switch indication for Gamma correction */ #define VKY3_DIP_GAMMA 0x2000 /* DIP switch indication for Gamma correction */
#define VKY3_DIP_HIRES 0x4000 /* DIP switch for high resolution mode */ #define VKY3_DIP_HIRES 0x4000 /* DIP switch for high resolution mode */
#define VKY3_PLL_ACTIVE_CLK 0x8000 /* Active Clock --- 0: 25.175Mhz, 1: 40Mhz */ #define VKY3_PLL_ACTIVE_CLK 0x8000 /* Active Clock --- 0: 25.175Mhz, 1: 40Mhz */
#define BorderControlReg_L_A ((volatile uint32_t *)0x00C40004) #define BorderControlReg_L_A ((volatile int *)0xFEC40004)
#define VKY3_BRDR_EN 0x00000001 /* Border Enable */ #define VKY3_BRDR_EN 0x00000001 /* Border Enable */
#define VKY3_X_SCROLL_MASK 0x00000070 /* X Scroll */ #define VKY3_X_SCROLL_MASK 0x00000070 /* X Scroll */
#define VKY3_X_SIZE_MASK 0x00003f00 /* X Size */ #define VKY3_X_SIZE_MASK 0x00003f00 /* X Size */
#define VKY3_Y_SIZE_MASK 0x003f0000 /* Y Size */ #define VKY3_Y_SIZE_MASK 0x003f0000 /* Y Size */
#define BorderControlReg_H_A ((volatile uint32_t *)0x00C40008) #define BorderControlReg_H_A ((volatile int *)0xFEC40008)
#define BackGroundControlReg_A ((volatile uint32_t *)0x00C4000C) #define BackGroundControlReg_A ((volatile int *)0xFEC4000C)
#define CursorControlReg_L_A ((volatile uint32_t *)0x00C40010) #define CursorControlReg_L_A ((volatile int *)0xFEC40010)
#define CursorControlReg_H_A ((volatile uint32_t *)0x00C40014) #define CursorControlReg_H_A ((volatile int *)0xFEC40014)
#define LineInterrupt0_A ((volatile uint16_t *)0x00C40018) #define LineInterrupt0_A ((volatile uint16_t *)0xFEC40018)
#define LineInterrupt1_A ((volatile uint16_t *)0x00C4001A) #define LineInterrupt1_A ((volatile uint16_t *)0xFEC4001A)
#define LineInterrupt2_A ((volatile uint16_t *)0x00C4001C) #define LineInterrupt2_A ((volatile uint16_t *)0xFEC4001C)
#define LineInterrupt3_A ((volatile uint16_t *)0x00C4001E) #define LineInterrupt3_A ((volatile uint16_t *)0xFEC4001E)
#define MousePointer_Mem_A ((volatile uint16_t *)0x00C40400) #define FONT_Size_Ctrl_A ((volatile int *)0xFEC40020)
#define MousePtr_A_CTRL_Reg ((volatile uint16_t *)0x00C40C00) #define FONT_Count_Ctrl_A ((volatile int *)0xFEC40024)
#define MousePointer_Mem_A ((volatile uint16_t *)0xFEC40400)
#define MousePtr_A_CTRL_Reg ((volatile uint16_t *)0xFEC40C00)
#define MousePtr_En 0x0001 #define MousePtr_En 0x0001
#define MousePtr_A_X_Pos ((volatile uint16_t *)0x00C40C02) #define MousePtr_A_X_Pos ((volatile uint16_t *)0xFEC40C02)
#define MousePtr_A_Y_Pos ((volatile uint16_t *)0x00C40C04) #define MousePtr_A_Y_Pos ((volatile uint16_t *)0xFEC40C04)
#define MousePtr_A_Mouse0 ((volatile uint16_t *)0x00C40C0A) #define MousePtr_A_Mouse0 ((volatile uint16_t *)0xFEC40C0A)
#define MousePtr_A_Mouse1 ((volatile uint16_t *)0x00C40C0C) #define MousePtr_A_Mouse1 ((volatile uint16_t *)0xFEC40C0C)
#define MousePtr_A_Mouse2 ((volatile uint16_t *)0x00C40C0E) #define MousePtr_A_Mouse2 ((volatile uint16_t *)0xFEC40C0E)
#define ScreenText_A ((volatile char *)0x00C60000) /* Text matrix */ #define ScreenText_A ((volatile char *)0xFEC60000) /* Text matrix */
#define ColorText_A ((volatile uint8_t *)0x00C68000) /* Color matrix */ #define ColorText_A ((volatile uint8_t *)0xFEC68000) /* Color matrix */
#define FG_CLUT_A ((volatile uint16_t *)0x00C6C400) /* Foreground LUT */ #define FG_CLUT_A ((volatile unsigned long *)0xFEC6C400) /* Foreground LUT */
#define BG_CLUT_A ((volatile uint16_t *)0x00C6C440) /* Background LUT */ #define BG_CLUT_A ((volatile unsigned long *)0xFEC6C440) /* Background LUT */
/* /*
* Screen Channel B * Screen Channel B
*/ */
#define MasterControlReg_B ((volatile uint32_t *)0x00C80000) #define MasterControlReg_B ((volatile int *)0xFEC80000)
#define BorderControlReg_L_B ((volatile uint32_t *)0x00C80004) #define BorderControlReg_L_B ((volatile int *)0xFEC80004)
#define BorderControlReg_H_B ((volatile uint32_t *)0x00C80008) #define BorderControlReg_H_B ((volatile int *)0xFEC80008)
#define BackGroundControlReg_B ((volatile uint32_t *)0x00C8000C) #define BackGroundControlReg_B ((volatile int *)0xFEC8000C)
#define CursorControlReg_L_B ((volatile uint32_t *)0x00C80010) #define CursorControlReg_L_B ((volatile int *)0xFEC80010)
#define CursorControlReg_H_B ((volatile uint32_t *)0x00C80014) #define CursorControlReg_H_B ((volatile int *)0xFEC80014)
#define LineInterrupt0_B ((volatile uint16_t *)0x00C80018) #define LineInterrupt0_B ((volatile uint16_t *)0xFEC80018)
#define LineInterrupt1_B ((volatile uint16_t *)0x00C8001A) #define LineInterrupt1_B ((volatile uint16_t *)0xFEC8001A)
#define LineInterrupt2_B ((volatile uint16_t *)0x00C8001C) #define LineInterrupt2_B ((volatile uint16_t *)0xFEC8001C)
#define LineInterrupt3_B ((volatile uint16_t *)0x00C8001E) #define LineInterrupt3_B ((volatile uint16_t *)0xFEC8001E)
#define MousePointer_Mem_B ((volatile uint16_t *)0x00C80400) #define MousePointer_Mem_B ((volatile uint16_t *)0xFEC80400)
#define MousePtr_B_CTRL_Reg ((volatile uint16_t *)0x00C80C00) #define MousePtr_B_CTRL_Reg ((volatile uint16_t *)0xFEC80C00)
#define MousePtr_B_X_Pos ((volatile uint16_t *)0x00C80C02) #define MousePtr_B_X_Pos ((volatile uint16_t *)0xFEC80C02)
#define MousePtr_B_Y_Pos ((volatile uint16_t *)0x00C80C04) #define MousePtr_B_Y_Pos ((volatile uint16_t *)0xFEC80C04)
#define MousePtr_B_Mouse0 ((volatile uint16_t *)0x00C80C0A) #define MousePtr_B_Mouse0 ((volatile uint16_t *)0xFEC80C0A)
#define MousePtr_B_Mouse1 ((volatile uint16_t *)0x00C80C0C) #define MousePtr_B_Mouse1 ((volatile uint16_t *)0xFEC80C0C)
#define MousePtr_B_Mouse2 ((volatile uint16_t *)0x00C80C0E) #define MousePtr_B_Mouse2 ((volatile uint16_t *)0xFEC80C0E)
#define ScreenText_B ((volatile char *)0x00CA0000) /* Text matrix */ #define ScreenText_B ((volatile char *)0xFECA0000) /* Text matrix */
#define ColorText_B ((volatile uint8_t *)0x00CA8000) /* Color matrix */ #define ColorText_B ((volatile uint8_t *)0xFECA8000) /* Color matrix */
#define FG_CLUT_B ((volatile uint16_t *)0x00CAC400) /* Foreground LUT */ #define FG_CLUT_B ((volatile unsigned long *)0xFECAC400) /* Foreground LUT */
#define BG_CLUT_B ((volatile uint16_t *)0x00CAC440) /* Background LUT */ #define BG_CLUT_B ((volatile unsigned long *)0xFECAC440) /* Background LUT */
#define BM0_Control_Reg ((volatile uint16_t *)0x00C80100) #define BM0_Control_Reg ((volatile uint16_t *)0xFEC80100)
#define BM0_Addy_Pointer_Reg ((volatile uint16_t *)0x00C80104) #define BM0_Addy_Pointer_Reg ((volatile uint16_t *)0xFEC80104)
#define Sprite_0_CTRL ((volatile uint16_t *)0x00C81000) #define Sprite_0_CTRL ((volatile uint16_t *)0xFEC81000)
#define Sprite_0_ADDY_HI ((volatile uint16_t *)0x00C81002) #define Sprite_0_ADDY_HI ((volatile uint16_t *)0xFEC81002)
#define Sprite_0_POS_X ((volatile uint16_t *)0x00C81004) #define Sprite_0_POS_X ((volatile uint16_t *)0xFEC81004)
#define Sprite_0_POS_Y ((volatile uint16_t *)0x00C81006) #define Sprite_0_POS_Y ((volatile uint16_t *)0xFEC81006)
/* /*
* Color lookup tables * Color lookup tables
*/ */
#define LUT_0 ((volatile uint8_t *)0x00C82000) #define LUT_0 ((volatile uint8_t *)0xFEC82000)
#define LUT_1 ((volatile uint8_t *)0x00C82400) #define LUT_1 ((volatile uint8_t *)0xFEC82400)
#define LUT_2 ((volatile uint8_t *)0x00C82800) #define LUT_2 ((volatile uint8_t *)0xFEC82800)
#define LUT_3 ((volatile uint8_t *)0x00C82C00) #define LUT_3 ((volatile uint8_t *)0xFEC82C00)
#define LUT_4 ((volatile uint8_t *)0x00C83000) #define LUT_4 ((volatile uint8_t *)0xFEC83000)
#define LUT_5 ((volatile uint8_t *)0x00C83400) #define LUT_5 ((volatile uint8_t *)0xFEC83400)
#define LUT_6 ((volatile uint8_t *)0x00C83800) #define LUT_6 ((volatile uint8_t *)0xFEC83800)
#define LUT_7 ((volatile uint8_t *)0x00C83C00) #define LUT_7 ((volatile uint8_t *)0xFEC83C00)
/* /*
* Text mode font memory * Text mode font memory
*/ */
#define VICKY_TXT_FONT_A ((volatile unsigned char *)0x00C48000) /* $00C48000..$00C48FFF - FONT MEMORY Channel A */ #define VICKY_TXT_FONT_A ((volatile unsigned char *)0xFEC48000) /* $00C48000..$00C48FFF - FONT MEMORY Channel A */
#define VICKY_TXT_FONT_B ((volatile unsigned char *)0x00C88000) /* $00C88000..$00C88FFF - FONT MEMORY Channel B */ #define VICKY_TXT_FONT_B ((volatile unsigned char *)0xFEC88000) /* $00C88000..$00C88FFF - FONT MEMORY Channel B */
/* /*
* Location of VRAM * Location of VRAM

View file

@ -5,8 +5,8 @@
#ifndef __FDC_A2560K_H #ifndef __FDC_A2560K_H
#define __FDC_A2560K_H #define __FDC_A2560K_H
#define FDC_BASE ((volatile unsigned char *)0x00C023F0) #define FDC_BASE ((volatile unsigned char *)0xFEC023F0)
#define FDC_DOR ((volatile unsigned char *)0x00C023F2) /* Read/Write - Digital Output Register */ #define FDC_DOR ((volatile unsigned char *)0xFEC023F2) /* Read/Write - Digital Output Register */
// FDC_DOR_DSEL0 = $01 ; Drive 0 Select // FDC_DOR_DSEL0 = $01 ; Drive 0 Select
// FDC_DOR_DSEL1 = $02 ; Drive 1 Select // FDC_DOR_DSEL1 = $02 ; Drive 1 Select
// FDC_DOR_NRESET = $04 ; Reset the FDC // FDC_DOR_NRESET = $04 ; Reset the FDC
@ -16,7 +16,7 @@
// FDC_DOR_MOT2 = $40 ; Turn on motor 2 // FDC_DOR_MOT2 = $40 ; Turn on motor 2
// FDC_DOR_MOT3 = $80 ; Turn on motor 3 // FDC_DOR_MOT3 = $80 ; Turn on motor 3
#define FDC_MSR ((volatile unsigned char *)0x00C023F4) /* Read - Main Status Register */ #define FDC_MSR ((volatile unsigned char *)0xFEC023F4) /* Read - Main Status Register */
// FDC_MSR_DRV0BSY = $01 ; Indicates if drive 0 is busy // FDC_MSR_DRV0BSY = $01 ; Indicates if drive 0 is busy
// FDC_MSR_DRV1BSY = $02 ; Indicates if drive 1 is busy // FDC_MSR_DRV1BSY = $02 ; Indicates if drive 1 is busy
// FDC_MSR_CMDBSY = $10 ; Indicates if a command is in progress // FDC_MSR_CMDBSY = $10 ; Indicates if a command is in progress
@ -24,20 +24,20 @@
// FDC_MSR_DIO = $40 ; Data direction: 1 = read, 0 = write // FDC_MSR_DIO = $40 ; Data direction: 1 = read, 0 = write
// FDC_MSR_RQM = $80 ; 1 = host can transfer data, 0 = host must wait // FDC_MSR_RQM = $80 ; 1 = host can transfer data, 0 = host must wait
#define FDC_DSR ((volatile unsigned char *)0x00C023F4) /* Write - Data Select Register */ #define FDC_DSR ((volatile unsigned char *)0xFEC023F4) /* Write - Data Select Register */
// ; Bit[0..1] = data rate // ; Bit[0..1] = data rate
// ; Bit[2..4] = precompensation select // ; Bit[2..4] = precompensation select
// FDC_DSR_LOPWR = $40 ; Turn on low power mode // FDC_DSR_LOPWR = $40 ; Turn on low power mode
// FDC_DSR_RESET = $80 ; Software reset of the FDC // FDC_DSR_RESET = $80 ; Software reset of the FDC
#define FDC_DATA ((volatile unsigned char *)0x00C023F5) /* Read/Write - Data - FIFO */ #define FDC_DATA ((volatile unsigned char *)0xFEC023F5) /* Read/Write - Data - FIFO */
#define FDC_RSV ((volatile unsigned char *)0x00C023F6) /* Reserved */ #define FDC_RSV ((volatile unsigned char *)0xFEC023F6) /* Reserved */
#define FDC_DIR ((volatile unsigned char *)0x00C023F7) /* Read - Digital Input Register */ #define FDC_DIR ((volatile unsigned char *)0xFEC023F7) /* Read - Digital Input Register */
// FDC_DIR_DSKCHG = $80 ; Indicates if the disk has changed // FDC_DIR_DSKCHG = $80 ; Indicates if the disk has changed
#define FDC_CCR ((volatile unsigned char *)0x00C023F7) /* Write - Configuration Control Register */ #define FDC_CCR ((volatile unsigned char *)0xFEC023F7) /* Write - Configuration Control Register */
// ; Bit[0..1] = Data rate // ; Bit[0..1] = Data rate
#endif #endif

View file

@ -5,14 +5,14 @@
#ifndef __PATA_A2560K_H #ifndef __PATA_A2560K_H
#define __PATA_A2560K_H #define __PATA_A2560K_H
#define PATA_DATA_16 ((volatile unsigned short *)0x00C00400) #define PATA_DATA_16 ((volatile unsigned short *)0xFEC00400)
#define PATA_DATA_8 ((volatile unsigned char *)0x00C00400) #define PATA_DATA_8 ((volatile unsigned char *)0xFEC00400)
#define PATA_ERROR ((volatile unsigned char *)0x00C00402) #define PATA_ERROR ((volatile unsigned char *)0xFEC00402)
#define PATA_SECT_CNT ((volatile unsigned char *)0x00C00404) #define PATA_SECT_CNT ((volatile unsigned char *)0xFEC00404)
#define PATA_SECT_SRT ((volatile unsigned char *)0x00C00406) #define PATA_SECT_SRT ((volatile unsigned char *)0xFEC00406)
#define PATA_CLDR_LO ((volatile unsigned char *)0x00C00408) #define PATA_CLDR_LO ((volatile unsigned char *)0xFEC00408)
#define PATA_CLDR_HI ((volatile unsigned char *)0x00C0040A) #define PATA_CLDR_HI ((volatile unsigned char *)0xFEC0040A)
#define PATA_HEAD ((volatile unsigned char *)0x00C0040C) #define PATA_HEAD ((volatile unsigned char *)0xFEC0040C)
#define PATA_CMD_STAT ((volatile unsigned char *)0x00C0040E) #define PATA_CMD_STAT ((volatile unsigned char *)0xFEC0040E)
#endif #endif

View file

@ -5,10 +5,10 @@
* Ports for the PS/2 keyboard and mouse on the A2560K * Ports for the PS/2 keyboard and mouse on the A2560K
*/ */
#define PS2_STATUS ((unsigned char *)0x00C02064) #define PS2_STATUS ((unsigned char *)0xFEC02064)
#define PS2_CMD_BUF ((unsigned char *)0x00C02064) #define PS2_CMD_BUF ((unsigned char *)0xFEC02064)
#define PS2_OUT_BUF ((unsigned char *)0x00C02060) #define PS2_OUT_BUF ((unsigned char *)0xFEC02060)
#define PS2_INPT_BUF ((unsigned char *)0x00C02060) #define PS2_INPT_BUF ((unsigned char *)0xFEC02060)
#define PS2_DATA_BUF ((unsigned char *)0x00C02060) #define PS2_DATA_BUF ((unsigned char *)0xFEC02060)
#endif #endif

View file

@ -5,31 +5,31 @@
#ifndef __SDC_A2560K_H #ifndef __SDC_A2560K_H
#define __SDC_A2560K_H #define __SDC_A2560K_H
#define GABE_SDC_REG ((volatile unsigned short *)0x00C0051A) #define GABE_SDC_REG ((volatile unsigned short *)0xFEC0051A)
#define GABE_SDC_PRESENT 0x0010 /* Is an SD card present? --- 0:Yes, 1:No */ #define GABE_SDC_PRESENT 0x0010 /* Is an SD card present? --- 0:Yes, 1:No */
#define GABE_SDC_WPROT 0x0020 /* Is the SD card write protected? --- 0:Yes, 1:No */ #define GABE_SDC_WPROT 0x0020 /* Is the SD card write protected? --- 0:Yes, 1:No */
#define SDC_VERSION_REG ((unsigned char *)0x00C00300) #define SDC_VERSION_REG ((unsigned char *)0xFEC00300)
#define SDC_CONTROL_REG ((unsigned char *)0x00C00301) #define SDC_CONTROL_REG ((unsigned char *)0xFEC00301)
#define SDC_TRANS_TYPE_REG ((unsigned char *)0x00C00302) #define SDC_TRANS_TYPE_REG ((unsigned char *)0xFEC00302)
#define SDC_TRANS_CONTROL_REG ((unsigned char *)0x00C00303) #define SDC_TRANS_CONTROL_REG ((unsigned char *)0xFEC00303)
#define SDC_TRANS_STATUS_REG ((unsigned char *)0x00C00304) #define SDC_TRANS_STATUS_REG ((unsigned char *)0xFEC00304)
#define SDC_TRANS_ERROR_REG ((unsigned char *)0x00C00305) #define SDC_TRANS_ERROR_REG ((unsigned char *)0xFEC00305)
#define SDC_DIRECT_ACCESS_REG ((unsigned char *)0x00C00306) #define SDC_DIRECT_ACCESS_REG ((unsigned char *)0xFEC00306)
#define SDC_SD_ADDR_7_0_REG ((unsigned char *)0x00C00307) #define SDC_SD_ADDR_7_0_REG ((unsigned char *)0xFEC00307)
#define SDC_SD_ADDR_15_8_REG ((unsigned char *)0x00C00308) #define SDC_SD_ADDR_15_8_REG ((unsigned char *)0xFEC00308)
#define SDC_SD_ADDR_23_16_REG ((unsigned char *)0x00C00309) #define SDC_SD_ADDR_23_16_REG ((unsigned char *)0xFEC00309)
#define SDC_SD_ADDR_31_24_REG ((unsigned char *)0x00C0030A) #define SDC_SD_ADDR_31_24_REG ((unsigned char *)0xFEC0030A)
#define SDC_SPI_CLK_DEL_REG ((unsigned char *)0x00C0030B) #define SDC_SPI_CLK_DEL_REG ((unsigned char *)0xFEC0030B)
#define SDC_RX_FIFO_DATA_REG ((unsigned char *)0x00C00310) #define SDC_RX_FIFO_DATA_REG ((unsigned char *)0xFEC00310)
#define SDC_RX_FIFO_DATA_CNT_HI ((unsigned char *)0x00C00312) #define SDC_RX_FIFO_DATA_CNT_HI ((unsigned char *)0xFEC00312)
#define SDC_RX_FIFO_DATA_CNT_LO ((unsigned char *)0x00C00313) #define SDC_RX_FIFO_DATA_CNT_LO ((unsigned char *)0xFEC00313)
#define SDC_RX_FIFO_CTRL_REG ((unsigned char *)0x00C00314) #define SDC_RX_FIFO_CTRL_REG ((unsigned char *)0xFEC00314)
#define SDC_TX_FIFO_DATA_REG ((unsigned char *)0x00C00320) #define SDC_TX_FIFO_DATA_REG ((unsigned char *)0xFEC00320)
#define SDC_TX_FIFO_CTRL_REG ((unsigned char *)0x00C00324) #define SDC_TX_FIFO_CTRL_REG ((unsigned char *)0xFEC00324)
#endif #endif

View file

@ -5,13 +5,13 @@
#ifndef __SOUND_A2560K_H #ifndef __SOUND_A2560K_H
#define __SOUND_A2560K_H #define __SOUND_A2560K_H
#define PSG_PORT ((volatile unsigned char *)0x00C20100) /* Control register for the SN76489 */ #define PSG_PORT ((volatile unsigned char *)0xFEC20100) /* Control register for the SN76489 */
#define OPL3_PORT ((volatile unsigned char *)0x00C20200) /* Access port for the OPL3 */ #define OPL3_PORT ((volatile unsigned char *)0xFEC20200) /* Access port for the OPL3 */
#define OPM_EXT_BASE ((volatile unsigned char *)0x00C20600) /* External OPM base address */ #define OPM_EXT_BASE ((volatile unsigned char *)0xFEC20600) /* External OPM base address */
#define OPN2_EXT_BASE ((volatile unsigned char *)0x00C20400) /* External OPN2 base address */ #define OPN2_EXT_BASE ((volatile unsigned char *)0xFEC20400) /* External OPN2 base address */
#define OPM_INT_BASE ((volatile unsigned char *)0x00C20C00) /* Internal OPM base address */ #define OPM_INT_BASE ((volatile unsigned char *)0xFEC20C00) /* Internal OPM base address */
#define OPN2_INT_BASE ((volatile unsigned char *)0x00C20A00) /* Internal OPN2 base address */ #define OPN2_INT_BASE ((volatile unsigned char *)0xFEC20A00) /* Internal OPN2 base address */
#define CODEC ((volatile unsigned short *)0x00C20E00) /* Control register for the CODEC */ #define CODEC ((volatile unsigned short *)0xFEC20E00) /* Control register for the CODEC */
/* /*
* A2560K supports two external, physical SID chips. * A2560K supports two external, physical SID chips.
@ -28,185 +28,185 @@
* External SID Left Channel * External SID Left Channel
*/ */
#define SID_EXT_L_V1_FREQ_LO ((unsigned char *)0x00C20800) #define SID_EXT_L_V1_FREQ_LO ((unsigned char *)0xFEC20800)
#define SID_EXT_L_V1_FREQ_HI ((unsigned char *)0x00C20801) #define SID_EXT_L_V1_FREQ_HI ((unsigned char *)0xFEC20801)
#define SID_EXT_L_V1_PW_LO ((unsigned char *)0x00C20802) #define SID_EXT_L_V1_PW_LO ((unsigned char *)0xFEC20802)
#define SID_EXT_L_V1_PW_HI ((unsigned char *)0x00C20803) #define SID_EXT_L_V1_PW_HI ((unsigned char *)0xFEC20803)
#define SID_EXT_L_V1_CTRL ((unsigned char *)0x00C20804) #define SID_EXT_L_V1_CTRL ((unsigned char *)0xFEC20804)
#define SID_EXT_L_V1_ATCK_DECY ((unsigned char *)0x00C20805) #define SID_EXT_L_V1_ATCK_DECY ((unsigned char *)0xFEC20805)
#define SID_EXT_L_V1_SSTN_RLSE ((unsigned char *)0x00C20806) #define SID_EXT_L_V1_SSTN_RLSE ((unsigned char *)0xFEC20806)
#define SID_EXT_L_V2_FREQ_LO ((unsigned char *)0x00C20807) #define SID_EXT_L_V2_FREQ_LO ((unsigned char *)0xFEC20807)
#define SID_EXT_L_V2_FREQ_HI ((unsigned char *)0x00C20808) #define SID_EXT_L_V2_FREQ_HI ((unsigned char *)0xFEC20808)
#define SID_EXT_L_V2_PW_LO ((unsigned char *)0x00C20809) #define SID_EXT_L_V2_PW_LO ((unsigned char *)0xFEC20809)
#define SID_EXT_L_V2_PW_HI ((unsigned char *)0x00C2080A) #define SID_EXT_L_V2_PW_HI ((unsigned char *)0xFEC2080A)
#define SID_EXT_L_V2_CTRL ((unsigned char *)0x00C2080B) #define SID_EXT_L_V2_CTRL ((unsigned char *)0xFEC2080B)
#define SID_EXT_L_V2_ATCK_DECY ((unsigned char *)0x00C2080C) #define SID_EXT_L_V2_ATCK_DECY ((unsigned char *)0xFEC2080C)
#define SID_EXT_L_V2_SSTN_RLSE ((unsigned char *)0x00C2080D) #define SID_EXT_L_V2_SSTN_RLSE ((unsigned char *)0xFEC2080D)
#define SID_EXT_L_V3_FREQ_LO ((unsigned char *)0x00C2080E) #define SID_EXT_L_V3_FREQ_LO ((unsigned char *)0xFEC2080E)
#define SID_EXT_L_V3_FREQ_HI ((unsigned char *)0x00C2080F) #define SID_EXT_L_V3_FREQ_HI ((unsigned char *)0xFEC2080F)
#define SID_EXT_L_V3_PW_LO ((unsigned char *)0x00C20810) #define SID_EXT_L_V3_PW_LO ((unsigned char *)0xFEC20810)
#define SID_EXT_L_V3_PW_HI ((unsigned char *)0x00C20811) #define SID_EXT_L_V3_PW_HI ((unsigned char *)0xFEC20811)
#define SID_EXT_L_V3_CTRL ((unsigned char *)0x00C20812) #define SID_EXT_L_V3_CTRL ((unsigned char *)0xFEC20812)
#define SID_EXT_L_V3_ATCK_DECY ((unsigned char *)0x00C20813) #define SID_EXT_L_V3_ATCK_DECY ((unsigned char *)0xFEC20813)
#define SID_EXT_L_V3_SSTN_RLSE ((unsigned char *)0x00C20814) #define SID_EXT_L_V3_SSTN_RLSE ((unsigned char *)0xFEC20814)
#define SID_EXT_L_FC_LO ((unsigned char *)0x00C20815) #define SID_EXT_L_FC_LO ((unsigned char *)0xFEC20815)
#define SID_EXT_L_FC_HI ((unsigned char *)0x00C20816) #define SID_EXT_L_FC_HI ((unsigned char *)0xFEC20816)
#define SID_EXT_L_RES_FILT ((unsigned char *)0x00C20817) #define SID_EXT_L_RES_FILT ((unsigned char *)0xFEC20817)
#define SID_EXT_L_MODE_VOL ((unsigned char *)0x00C20818) #define SID_EXT_L_MODE_VOL ((unsigned char *)0xFEC20818)
#define SID_EXT_L_POT_X ((unsigned char *)0x00C20819) #define SID_EXT_L_POT_X ((unsigned char *)0xFEC20819)
#define SID_EXT_L_POT_Y ((unsigned char *)0x00C2081A) #define SID_EXT_L_POT_Y ((unsigned char *)0xFEC2081A)
#define SID_EXT_L_OSC3_RND ((unsigned char *)0x00C2081B) #define SID_EXT_L_OSC3_RND ((unsigned char *)0xFEC2081B)
#define SID_EXT_L_ENV3 ((unsigned char *)0x00C2081C) #define SID_EXT_L_ENV3 ((unsigned char *)0xFEC2081C)
#define SID_EXT_L_NOT_USED0 ((unsigned char *)0x00C2081D) #define SID_EXT_L_NOT_USED0 ((unsigned char *)0xFEC2081D)
#define SID_EXT_L_NOT_USED1 ((unsigned char *)0x00C2081E) #define SID_EXT_L_NOT_USED1 ((unsigned char *)0xFEC2081E)
#define SID_EXT_L_NOT_USED2 ((unsigned char *)0x00C2081F) #define SID_EXT_L_NOT_USED2 ((unsigned char *)0xFEC2081F)
/* /*
* External SID Right Channel * External SID Right Channel
*/ */
#define SID_EXT_R_V1_FREQ_LO ((unsigned char *)0x00C20900) #define SID_EXT_R_V1_FREQ_LO ((unsigned char *)0xFEC20900)
#define SID_EXT_R_V1_FREQ_HI ((unsigned char *)0x00C20901) #define SID_EXT_R_V1_FREQ_HI ((unsigned char *)0xFEC20901)
#define SID_EXT_R_V1_PW_LO ((unsigned char *)0x00C20902) #define SID_EXT_R_V1_PW_LO ((unsigned char *)0xFEC20902)
#define SID_EXT_R_V1_PW_HI ((unsigned char *)0x00C20903) #define SID_EXT_R_V1_PW_HI ((unsigned char *)0xFEC20903)
#define SID_EXT_R_V1_CTRL ((unsigned char *)0x00C20904) #define SID_EXT_R_V1_CTRL ((unsigned char *)0xFEC20904)
#define SID_EXT_R_V1_ATCK_DECY ((unsigned char *)0x00C20905) #define SID_EXT_R_V1_ATCK_DECY ((unsigned char *)0xFEC20905)
#define SID_EXT_R_V1_SSTN_RLSE ((unsigned char *)0x00C20906) #define SID_EXT_R_V1_SSTN_RLSE ((unsigned char *)0xFEC20906)
#define SID_EXT_R_V2_FREQ_LO ((unsigned char *)0x00C20907) #define SID_EXT_R_V2_FREQ_LO ((unsigned char *)0xFEC20907)
#define SID_EXT_R_V2_FREQ_HI ((unsigned char *)0x00C20908) #define SID_EXT_R_V2_FREQ_HI ((unsigned char *)0xFEC20908)
#define SID_EXT_R_V2_PW_LO ((unsigned char *)0x00C20909) #define SID_EXT_R_V2_PW_LO ((unsigned char *)0xFEC20909)
#define SID_EXT_R_V2_PW_HI ((unsigned char *)0x00C2090A) #define SID_EXT_R_V2_PW_HI ((unsigned char *)0xFEC2090A)
#define SID_EXT_R_V2_CTRL ((unsigned char *)0x00C2090B) #define SID_EXT_R_V2_CTRL ((unsigned char *)0xFEC2090B)
#define SID_EXT_R_V2_ATCK_DECY ((unsigned char *)0x00C2090C) #define SID_EXT_R_V2_ATCK_DECY ((unsigned char *)0xFEC2090C)
#define SID_EXT_R_V2_SSTN_RLSE ((unsigned char *)0x00C2090D) #define SID_EXT_R_V2_SSTN_RLSE ((unsigned char *)0xFEC2090D)
#define SID_EXT_R_V3_FREQ_LO ((unsigned char *)0x00C2090E) #define SID_EXT_R_V3_FREQ_LO ((unsigned char *)0xFEC2090E)
#define SID_EXT_R_V3_FREQ_HI ((unsigned char *)0x00C2090F) #define SID_EXT_R_V3_FREQ_HI ((unsigned char *)0xFEC2090F)
#define SID_EXT_R_V3_PW_LO ((unsigned char *)0x00C20910) #define SID_EXT_R_V3_PW_LO ((unsigned char *)0xFEC20910)
#define SID_EXT_R_V3_PW_HI ((unsigned char *)0x00C20911) #define SID_EXT_R_V3_PW_HI ((unsigned char *)0xFEC20911)
#define SID_EXT_R_V3_CTRL ((unsigned char *)0x00C20912) #define SID_EXT_R_V3_CTRL ((unsigned char *)0xFEC20912)
#define SID_EXT_R_V3_ATCK_DECY ((unsigned char *)0x00C20913) #define SID_EXT_R_V3_ATCK_DECY ((unsigned char *)0xFEC20913)
#define SID_EXT_R_V3_SSTN_RLSE ((unsigned char *)0x00C20914) #define SID_EXT_R_V3_SSTN_RLSE ((unsigned char *)0xFEC20914)
#define SID_EXT_R_FC_LO ((unsigned char *)0x00C20915) #define SID_EXT_R_FC_LO ((unsigned char *)0xFEC20915)
#define SID_EXT_R_FC_HI ((unsigned char *)0x00C20916) #define SID_EXT_R_FC_HI ((unsigned char *)0xFEC20916)
#define SID_EXT_R_RES_FILT ((unsigned char *)0x00C20917) #define SID_EXT_R_RES_FILT ((unsigned char *)0xFEC20917)
#define SID_EXT_R_MODE_VOL ((unsigned char *)0x00C20918) #define SID_EXT_R_MODE_VOL ((unsigned char *)0xFEC20918)
#define SID_EXT_R_POT_X ((unsigned char *)0x00C20919) #define SID_EXT_R_POT_X ((unsigned char *)0xFEC20919)
#define SID_EXT_R_POT_Y ((unsigned char *)0x00C2091A) #define SID_EXT_R_POT_Y ((unsigned char *)0xFEC2091A)
#define SID_EXT_R_OSC3_RND ((unsigned char *)0x00C2091B) #define SID_EXT_R_OSC3_RND ((unsigned char *)0xFEC2091B)
#define SID_EXT_R_ENV3 ((unsigned char *)0x00C2091C) #define SID_EXT_R_ENV3 ((unsigned char *)0xFEC2091C)
#define SID_EXT_R_NOT_USED0 ((unsigned char *)0x00C2091D) #define SID_EXT_R_NOT_USED0 ((unsigned char *)0xFEC2091D)
#define SID_EXT_R_NOT_USED1 ((unsigned char *)0x00C2091E) #define SID_EXT_R_NOT_USED1 ((unsigned char *)0xFEC2091E)
#define SID_EXT_R_NOT_USED2 ((unsigned char *)0x00C2091F) #define SID_EXT_R_NOT_USED2 ((unsigned char *)0xFEC2091F)
/* /*
* Internal SID Left Channel * Internal SID Left Channel
*/ */
#define SID_INT_L_V1_FREQ_LO ((unsigned char *)0x00C21000) #define SID_INT_L_V1_FREQ_LO ((unsigned char *)0xFEC21000)
#define SID_INT_L_V1_FREQ_HI ((unsigned char *)0x00C21001) #define SID_INT_L_V1_FREQ_HI ((unsigned char *)0xFEC21001)
#define SID_INT_L_V1_PW_LO ((unsigned char *)0x00C21002) #define SID_INT_L_V1_PW_LO ((unsigned char *)0xFEC21002)
#define SID_INT_L_V1_PW_HI ((unsigned char *)0x00C21003) #define SID_INT_L_V1_PW_HI ((unsigned char *)0xFEC21003)
#define SID_INT_L_V1_CTRL ((unsigned char *)0x00C21004) #define SID_INT_L_V1_CTRL ((unsigned char *)0xFEC21004)
#define SID_INT_L_V1_ATCK_DECY ((unsigned char *)0x00C21005) #define SID_INT_L_V1_ATCK_DECY ((unsigned char *)0xFEC21005)
#define SID_INT_L_V1_SSTN_RLSE ((unsigned char *)0x00C21006) #define SID_INT_L_V1_SSTN_RLSE ((unsigned char *)0xFEC21006)
#define SID_INT_L_V2_FREQ_LO ((unsigned char *)0x00C21007) #define SID_INT_L_V2_FREQ_LO ((unsigned char *)0xFEC21007)
#define SID_INT_L_V2_FREQ_HI ((unsigned char *)0x00C21008) #define SID_INT_L_V2_FREQ_HI ((unsigned char *)0xFEC21008)
#define SID_INT_L_V2_PW_LO ((unsigned char *)0x00C21009) #define SID_INT_L_V2_PW_LO ((unsigned char *)0xFEC21009)
#define SID_INT_L_V2_PW_HI ((unsigned char *)0x00C2100A) #define SID_INT_L_V2_PW_HI ((unsigned char *)0xFEC2100A)
#define SID_INT_L_V2_CTRL ((unsigned char *)0x00C2100B) #define SID_INT_L_V2_CTRL ((unsigned char *)0xFEC2100B)
#define SID_INT_L_V2_ATCK_DECY ((unsigned char *)0x00C2100C) #define SID_INT_L_V2_ATCK_DECY ((unsigned char *)0xFEC2100C)
#define SID_INT_L_V2_SSTN_RLSE ((unsigned char *)0x00C2100D) #define SID_INT_L_V2_SSTN_RLSE ((unsigned char *)0xFEC2100D)
#define SID_INT_L_V3_FREQ_LO ((unsigned char *)0x00C2100E) #define SID_INT_L_V3_FREQ_LO ((unsigned char *)0xFEC2100E)
#define SID_INT_L_V3_FREQ_HI ((unsigned char *)0x00C2100F) #define SID_INT_L_V3_FREQ_HI ((unsigned char *)0xFEC2100F)
#define SID_INT_L_V3_PW_LO ((unsigned char *)0x00C21010) #define SID_INT_L_V3_PW_LO ((unsigned char *)0xFEC21010)
#define SID_INT_L_V3_PW_HI ((unsigned char *)0x00C21011) #define SID_INT_L_V3_PW_HI ((unsigned char *)0xFEC21011)
#define SID_INT_L_V3_CTRL ((unsigned char *)0x00C21012) #define SID_INT_L_V3_CTRL ((unsigned char *)0xFEC21012)
#define SID_INT_L_V3_ATCK_DECY ((unsigned char *)0x00C21013) #define SID_INT_L_V3_ATCK_DECY ((unsigned char *)0xFEC21013)
#define SID_INT_L_V3_SSTN_RLSE ((unsigned char *)0x00C21014) #define SID_INT_L_V3_SSTN_RLSE ((unsigned char *)0xFEC21014)
#define SID_INT_L_FC_LO ((unsigned char *)0x00C21015) #define SID_INT_L_FC_LO ((unsigned char *)0xFEC21015)
#define SID_INT_L_FC_HI ((unsigned char *)0x00C21016) #define SID_INT_L_FC_HI ((unsigned char *)0xFEC21016)
#define SID_INT_L_RES_FILT ((unsigned char *)0x00C21017) #define SID_INT_L_RES_FILT ((unsigned char *)0xFEC21017)
#define SID_INT_L_MODE_VOL ((unsigned char *)0x00C21018) #define SID_INT_L_MODE_VOL ((unsigned char *)0xFEC21018)
#define SID_INT_L_POT_X ((unsigned char *)0x00C21019) #define SID_INT_L_POT_X ((unsigned char *)0xFEC21019)
#define SID_INT_L_POT_Y ((unsigned char *)0x00C2101A) #define SID_INT_L_POT_Y ((unsigned char *)0xFEC2101A)
#define SID_INT_L_OSC3_RND ((unsigned char *)0x00C2101B) #define SID_INT_L_OSC3_RND ((unsigned char *)0xFEC2101B)
#define SID_INT_L_ENV3 ((unsigned char *)0x00C2101C) #define SID_INT_L_ENV3 ((unsigned char *)0xFEC2101C)
#define SID_INT_L_NOT_USED0 ((unsigned char *)0x00C2101D) #define SID_INT_L_NOT_USED0 ((unsigned char *)0xFEC2101D)
#define SID_INT_L_NOT_USED1 ((unsigned char *)0x00C2101E) #define SID_INT_L_NOT_USED1 ((unsigned char *)0xFEC2101E)
#define SID_INT_L_NOT_USED2 ((unsigned char *)0x00C2101F) #define SID_INT_L_NOT_USED2 ((unsigned char *)0xFEC2101F)
/* /*
* Internal SID Right Channel * Internal SID Right Channel
*/ */
#define SID_INT_R_V1_FREQ_LO ((unsigned char *)0x00C21200) #define SID_INT_R_V1_FREQ_LO ((unsigned char *)0xFEC21200)
#define SID_INT_R_V1_FREQ_HI ((unsigned char *)0x00C21201) #define SID_INT_R_V1_FREQ_HI ((unsigned char *)0xFEC21201)
#define SID_INT_R_V1_PW_LO ((unsigned char *)0x00C21202) #define SID_INT_R_V1_PW_LO ((unsigned char *)0xFEC21202)
#define SID_INT_R_V1_PW_HI ((unsigned char *)0x00C21203) #define SID_INT_R_V1_PW_HI ((unsigned char *)0xFEC21203)
#define SID_INT_R_V1_CTRL ((unsigned char *)0x00C21204) #define SID_INT_R_V1_CTRL ((unsigned char *)0xFEC21204)
#define SID_INT_R_V1_ATCK_DECY ((unsigned char *)0x00C21205) #define SID_INT_R_V1_ATCK_DECY ((unsigned char *)0xFEC21205)
#define SID_INT_R_V1_SSTN_RLSE ((unsigned char *)0x00C21206) #define SID_INT_R_V1_SSTN_RLSE ((unsigned char *)0xFEC21206)
#define SID_INT_R_V2_FREQ_LO ((unsigned char *)0x00C21207) #define SID_INT_R_V2_FREQ_LO ((unsigned char *)0xFEC21207)
#define SID_INT_R_V2_FREQ_HI ((unsigned char *)0x00C21208) #define SID_INT_R_V2_FREQ_HI ((unsigned char *)0xFEC21208)
#define SID_INT_R_V2_PW_LO ((unsigned char *)0x00C21209) #define SID_INT_R_V2_PW_LO ((unsigned char *)0xFEC21209)
#define SID_INT_R_V2_PW_HI ((unsigned char *)0x00C2120A) #define SID_INT_R_V2_PW_HI ((unsigned char *)0xFEC2120A)
#define SID_INT_R_V2_CTRL ((unsigned char *)0x00C2120B) #define SID_INT_R_V2_CTRL ((unsigned char *)0xFEC2120B)
#define SID_INT_R_V2_ATCK_DECY ((unsigned char *)0x00C2120C) #define SID_INT_R_V2_ATCK_DECY ((unsigned char *)0xFEC2120C)
#define SID_INT_R_V2_SSTN_RLSE ((unsigned char *)0x00C2120D) #define SID_INT_R_V2_SSTN_RLSE ((unsigned char *)0xFEC2120D)
#define SID_INT_R_V3_FREQ_LO ((unsigned char *)0x00C2120E) #define SID_INT_R_V3_FREQ_LO ((unsigned char *)0xFEC2120E)
#define SID_INT_R_V3_FREQ_HI ((unsigned char *)0x00C2120F) #define SID_INT_R_V3_FREQ_HI ((unsigned char *)0xFEC2120F)
#define SID_INT_R_V3_PW_LO ((unsigned char *)0x00C21210) #define SID_INT_R_V3_PW_LO ((unsigned char *)0xFEC21210)
#define SID_INT_R_V3_PW_HI ((unsigned char *)0x00C21211) #define SID_INT_R_V3_PW_HI ((unsigned char *)0xFEC21211)
#define SID_INT_R_V3_CTRL ((unsigned char *)0x00C21212) #define SID_INT_R_V3_CTRL ((unsigned char *)0xFEC21212)
#define SID_INT_R_V3_ATCK_DECY ((unsigned char *)0x00C21213) #define SID_INT_R_V3_ATCK_DECY ((unsigned char *)0xFEC21213)
#define SID_INT_R_V3_SSTN_RLSE ((unsigned char *)0x00C21214) #define SID_INT_R_V3_SSTN_RLSE ((unsigned char *)0xFEC21214)
#define SID_INT_R_FC_LO ((unsigned char *)0x00C21215) #define SID_INT_R_FC_LO ((unsigned char *)0xFEC21215)
#define SID_INT_R_FC_HI ((unsigned char *)0x00C21216) #define SID_INT_R_FC_HI ((unsigned char *)0xFEC21216)
#define SID_INT_R_RES_FILT ((unsigned char *)0x00C21217) #define SID_INT_R_RES_FILT ((unsigned char *)0xFEC21217)
#define SID_INT_R_MODE_VOL ((unsigned char *)0x00C21218) #define SID_INT_R_MODE_VOL ((unsigned char *)0xFEC21218)
#define SID_INT_R_POT_X ((unsigned char *)0x00C21219) #define SID_INT_R_POT_X ((unsigned char *)0xFEC21219)
#define SID_INT_R_POT_Y ((unsigned char *)0x00C2121A) #define SID_INT_R_POT_Y ((unsigned char *)0xFEC2121A)
#define SID_INT_R_OSC3_RND ((unsigned char *)0x00C2121B) #define SID_INT_R_OSC3_RND ((unsigned char *)0xFEC2121B)
#define SID_INT_R_ENV3 ((unsigned char *)0x00C2121C) #define SID_INT_R_ENV3 ((unsigned char *)0xFEC2121C)
#define SID_INT_R_NOT_USED0 ((unsigned char *)0x00C2121D) #define SID_INT_R_NOT_USED0 ((unsigned char *)0xFEC2121D)
#define SID_INT_R_NOT_USED1 ((unsigned char *)0x00C2121E) #define SID_INT_R_NOT_USED1 ((unsigned char *)0xFEC2121E)
#define SID_INT_R_NOT_USED2 ((unsigned char *)0x00C2121F) #define SID_INT_R_NOT_USED2 ((unsigned char *)0xFEC2121F)
/* /*
* Internal SID Neutral Channel - When writting here, the value is written in R and L Channel at the same time * Internal SID Neutral Channel - When writting here, the value is written in R and L Channel at the same time
*/ */
#define SID_INT_N_V1_FREQ_LO ((unsigned char *)0x00C41200) #define SID_INT_N_V1_FREQ_LO ((unsigned char *)0xFEC41200)
#define SID_INT_N_V1_FREQ_HI ((unsigned char *)0x00C41201) #define SID_INT_N_V1_FREQ_HI ((unsigned char *)0xFEC41201)
#define SID_INT_N_V1_PW_LO ((unsigned char *)0x00C41202) #define SID_INT_N_V1_PW_LO ((unsigned char *)0xFEC41202)
#define SID_INT_N_V1_PW_HI ((unsigned char *)0x00C41203) #define SID_INT_N_V1_PW_HI ((unsigned char *)0xFEC41203)
#define SID_INT_N_V1_CTRL ((unsigned char *)0x00C41204) #define SID_INT_N_V1_CTRL ((unsigned char *)0xFEC41204)
#define SID_INT_N_V1_ATCK_DECY ((unsigned char *)0x00C41205) #define SID_INT_N_V1_ATCK_DECY ((unsigned char *)0xFEC41205)
#define SID_INT_N_V1_SSTN_RLSE ((unsigned char *)0x00C41206) #define SID_INT_N_V1_SSTN_RLSE ((unsigned char *)0xFEC41206)
#define SID_INT_N_V2_FREQ_LO ((unsigned char *)0x00C41207) #define SID_INT_N_V2_FREQ_LO ((unsigned char *)0xFEC41207)
#define SID_INT_N_V2_FREQ_HI ((unsigned char *)0x00C41208) #define SID_INT_N_V2_FREQ_HI ((unsigned char *)0xFEC41208)
#define SID_INT_N_V2_PW_LO ((unsigned char *)0x00C41209) #define SID_INT_N_V2_PW_LO ((unsigned char *)0xFEC41209)
#define SID_INT_N_V2_PW_HI ((unsigned char *)0x00C4120A) #define SID_INT_N_V2_PW_HI ((unsigned char *)0xFEC4120A)
#define SID_INT_N_V2_CTRL ((unsigned char *)0x00C4120B) #define SID_INT_N_V2_CTRL ((unsigned char *)0xFEC4120B)
#define SID_INT_N_V2_ATCK_DECY ((unsigned char *)0x00C4120C) #define SID_INT_N_V2_ATCK_DECY ((unsigned char *)0xFEC4120C)
#define SID_INT_N_V2_SSTN_RLSE ((unsigned char *)0x00C4120D) #define SID_INT_N_V2_SSTN_RLSE ((unsigned char *)0xFEC4120D)
#define SID_INT_N_V3_FREQ_LO ((unsigned char *)0x00C4120E) #define SID_INT_N_V3_FREQ_LO ((unsigned char *)0xFEC4120E)
#define SID_INT_N_V3_FREQ_HI ((unsigned char *)0x00C4120F) #define SID_INT_N_V3_FREQ_HI ((unsigned char *)0xFEC4120F)
#define SID_INT_N_V3_PW_LO ((unsigned char *)0x00C41210) #define SID_INT_N_V3_PW_LO ((unsigned char *)0xFEC41210)
#define SID_INT_N_V3_PW_HI ((unsigned char *)0x00C41211) #define SID_INT_N_V3_PW_HI ((unsigned char *)0xFEC41211)
#define SID_INT_N_V3_CTRL ((unsigned char *)0x00C41212) #define SID_INT_N_V3_CTRL ((unsigned char *)0xFEC41212)
#define SID_INT_N_V3_ATCK_DECY ((unsigned char *)0x00C41213) #define SID_INT_N_V3_ATCK_DECY ((unsigned char *)0xFEC41213)
#define SID_INT_N_V3_SSTN_RLSE ((unsigned char *)0x00C41214) #define SID_INT_N_V3_SSTN_RLSE ((unsigned char *)0xFEC41214)
#define SID_INT_N_FC_LO ((unsigned char *)0x00C41215) #define SID_INT_N_FC_LO ((unsigned char *)0xFEC41215)
#define SID_INT_N_FC_HI ((unsigned char *)0x00C41216) #define SID_INT_N_FC_HI ((unsigned char *)0xFEC41216)
#define SID_INT_N_RES_FILT ((unsigned char *)0x00C41217) #define SID_INT_N_RES_FILT ((unsigned char *)0xFEC41217)
#define SID_INT_N_MODE_VOL ((unsigned char *)0x00C41218) #define SID_INT_N_MODE_VOL ((unsigned char *)0xFEC41218)
#define SID_INT_N_POT_X ((unsigned char *)0x00C41219) #define SID_INT_N_POT_X ((unsigned char *)0xFEC41219)
#define SID_INT_N_POT_Y ((unsigned char *)0x00C4121A) #define SID_INT_N_POT_Y ((unsigned char *)0xFEC4121A)
#define SID_INT_N_OSC3_RND ((unsigned char *)0x00C4121B) #define SID_INT_N_OSC3_RND ((unsigned char *)0xFEC4121B)
#define SID_INT_N_ENV3 ((unsigned char *)0x00C4121C) #define SID_INT_N_ENV3 ((unsigned char *)0xFEC4121C)
#define SID_INT_N_NOT_USED0 ((unsigned char *)0x00C4121D) #define SID_INT_N_NOT_USED0 ((unsigned char *)0xFEC4121D)
#define SID_INT_N_NOT_USED1 ((unsigned char *)0x00C4121E) #define SID_INT_N_NOT_USED1 ((unsigned char *)0xFEC4121E)
#define SID_INT_N_NOT_USED2 ((unsigned char *)0x00C4121F) #define SID_INT_N_NOT_USED2 ((unsigned char *)0xFEC4121F)
#endif #endif

View file

@ -13,23 +13,22 @@
#define MANUAL_RESET 0x8000 // Make sure the word "DEAD" is written in GABE_RESET_ID #define MANUAL_RESET 0x8000 // Make sure the word "DEAD" is written in GABE_RESET_ID
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
#define GABE_CTRL_REG ((volatile unsigned short *)0x00C00000) #define GABE_CTRL_REG ((volatile unsigned short *)0xFEC00000)
#define GABE_RESET_ID ((volatile unsigned short *)0x00C00002) #define GABE_RESET_ID ((volatile unsigned short *)0xFEC00002)
#define GABE_LFSR_REG0 ((volatile unsigned short *)0x00C00004) #define GABE_LFSR_REG0 ((volatile unsigned short *)0xFEC00004)
#define GABE_LFSR_REG1 ((volatile unsigned short *)0x00C00006) #define GABE_LFSR_REG1 ((volatile unsigned short *)0xFEC00006)
#define RGB_LED_L ((volatile unsigned short *)0x00C00008) // Writing Only - A2560K Only - 0x__RR #define RGB_LED ((volatile unsigned int *)0xFEC00008) // Writing Only - A2560K Only - 0x__RRGGBB
#define RGB_LED_H ((volatile unsigned short *)0x00C0000A) // Writing Only - A2560K Only - 0xGGBB
#define GABE_LFSR_DATA ((volatile unsigned short *)0x00C00008) // Read Only #define GABE_LFSR_DATA ((volatile unsigned short *)0xFEC00008) // Read Only
#define GABE_LFSR_STAT ((volatile unsigned short *)0x00C0000A) // Read Only #define GABE_LFSR_STAT ((volatile unsigned short *)0xFEC0000A) // Read Only
#define GABE_MACHINE_ID ((volatile unsigned short *)0x00C0000C) // Machine ID - Read Only #define GABE_MACHINE_ID ((volatile unsigned short *)0xFEC0000C) // Machine ID - Read Only
#define GABE_CHIP_SUBREV ((volatile unsigned short *)0x00C0000E) #define GABE_CHIP_SUBREV ((volatile unsigned short *)0xFEC0000E)
#define GABE_CHIP_VERSION ((volatile unsigned short *)0x00C00010) #define GABE_CHIP_VERSION ((volatile unsigned short *)0xFEC00010)
#define GABE_CHIP_NUMBER ((volatile unsigned short *)0x00C00012) #define GABE_CHIP_NUMBER ((volatile unsigned short *)0xFEC00012)
#define GABE_DIP_REG ((volatile unsigned short *)0x00C00518) #define GABE_DIP_REG ((volatile unsigned short *)0xFEC00518)
#define GABE_DIP_BOOT_MASK 0x0003 /* Mask for the boot mode: */ #define GABE_DIP_BOOT_MASK 0x0003 /* Mask for the boot mode: */
#define GABE_DIP_USER_MASK 0x0300 /* Mask for the user switches: */ #define GABE_DIP_USER_MASK 0x0300 /* Mask for the user switches: */
@ -37,7 +36,7 @@
* 16-bit register controlling the key of the A2560K built-in keyboard * 16-bit register controlling the key of the A2560K built-in keyboard
*/ */
#define GABE_MO_LEDS ((volatile unsigned short *)0x00C0000C) #define GABE_MO_LEDS ((volatile unsigned short *)0xFEC0000C)
#define GABE_MO_LED_0_B 0x0001 /* LED 0 (Close to DEL key) -- Blue ON */ #define GABE_MO_LED_0_B 0x0001 /* LED 0 (Close to DEL key) -- Blue ON */
#define GABE_MO_LED_0_G 0x0002 /* LED 0 (Close to DEL key) -- Green ON */ #define GABE_MO_LED_0_G 0x0002 /* LED 0 (Close to DEL key) -- Green ON */
#define GABE_MO_LED_0_R 0x0004 /* LED 0 (Close to DEL key) -- Red ON */ #define GABE_MO_LED_0_R 0x0004 /* LED 0 (Close to DEL key) -- Red ON */

View file

@ -8,9 +8,9 @@
#include "sys_general.h" #include "sys_general.h"
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
#define MIDI_DATA ((volatile unsigned char *)0x00C02330) #define MIDI_DATA ((volatile unsigned char *)0xFEC02330)
#define MIDI_STAT ((volatile unsigned char *)0x00C02331) #define MIDI_STAT ((volatile unsigned char *)0xFEC02331)
#define MIDI_CMD ((volatile unsigned char *)0x00C02331) #define MIDI_CMD ((volatile unsigned char *)0xFEC02331)
#define MIDI_STAT_TX_BUSY 0x80 #define MIDI_STAT_TX_BUSY 0x80
#define MIDI_STAT_RX_EMPTY 0x40 #define MIDI_STAT_RX_EMPTY 0x40

View file

@ -9,23 +9,23 @@
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
#define RTC_BASE ((volatile unsigned char *)0x00C00080) #define RTC_BASE ((volatile unsigned char *)0xFEC00080)
#define RTC_SEC ((volatile unsigned char *)0x00C00080) #define RTC_SEC ((volatile unsigned char *)0xFEC00080)
#define RTC_ALRM_SEC ((volatile unsigned char *)0x00C00081) #define RTC_ALRM_SEC ((volatile unsigned char *)0xFEC00081)
#define RTC_MIN ((volatile unsigned char *)0x00C00082) #define RTC_MIN ((volatile unsigned char *)0xFEC00082)
#define RTC_ALRM_MIN ((volatile unsigned char *)0x00C00083) #define RTC_ALRM_MIN ((volatile unsigned char *)0xFEC00083)
#define RTC_HOUR ((volatile unsigned char *)0x00C00084) #define RTC_HOUR ((volatile unsigned char *)0xFEC00084)
#define RTC_ALRM_HOUR ((volatile unsigned char *)0x00C00085) #define RTC_ALRM_HOUR ((volatile unsigned char *)0xFEC00085)
#define RTC_DAY ((volatile unsigned char *)0x00C00086) #define RTC_DAY ((volatile unsigned char *)0xFEC00086)
#define RTC_ALRM_DAY ((volatile unsigned char *)0x00C00087) #define RTC_ALRM_DAY ((volatile unsigned char *)0xFEC00087)
#define RTC_DAY_OF_WEEK ((volatile unsigned char *)0x00C00088) #define RTC_DAY_OF_WEEK ((volatile unsigned char *)0xFEC00088)
#define RTC_MONTH ((volatile unsigned char *)0x00C00089) #define RTC_MONTH ((volatile unsigned char *)0xFEC00089)
#define RTC_YEAR ((volatile unsigned char *)0x00C0008A) #define RTC_YEAR ((volatile unsigned char *)0xFEC0008A)
#define RTC_RATES ((volatile unsigned char *)0x00C0008B) #define RTC_RATES ((volatile unsigned char *)0xFEC0008B)
#define RTC_ENABLES ((volatile unsigned char *)0x00C0008C) #define RTC_ENABLES ((volatile unsigned char *)0xFEC0008C)
#define RTC_FLAGS ((volatile unsigned char *)0x00C0008D) #define RTC_FLAGS ((volatile unsigned char *)0xFEC0008D)
#define RTC_CTRL ((volatile unsigned char *)0x00C0008E) #define RTC_CTRL ((volatile unsigned char *)0xFEC0008E)
#define RTC_CENTURY ((volatile unsigned char *)0x00C0008F) #define RTC_CENTURY ((volatile unsigned char *)0xFEC0008F)
#elif MODEL_FOENIX_A2560U || MODEL == MODEL_FOENIX_A2560U_PLUS #elif MODEL_FOENIX_A2560U || MODEL == MODEL_FOENIX_A2560U_PLUS

View file

@ -9,102 +9,102 @@
#ifndef __SUPERIO_H #ifndef __SUPERIO_H
#define __SUPERIO_H #define __SUPERIO_H
#define PME_STS_REG ((volatile unsigned char *)0x00C02100) #define PME_STS_REG ((volatile unsigned char *)0xFEC02100)
#define PME_EN_REG ((volatile unsigned char *)0x00C02102) #define PME_EN_REG ((volatile unsigned char *)0xFEC02102)
#define PME_STS1_REG ((volatile unsigned char *)0x00C02104) #define PME_STS1_REG ((volatile unsigned char *)0xFEC02104)
#define PME_STS2_REG ((volatile unsigned char *)0x00C02105) #define PME_STS2_REG ((volatile unsigned char *)0xFEC02105)
#define PME_STS3_REG ((volatile unsigned char *)0x00C02106) #define PME_STS3_REG ((volatile unsigned char *)0xFEC02106)
#define PME_STS4_REG ((volatile unsigned char *)0x00C02107) #define PME_STS4_REG ((volatile unsigned char *)0xFEC02107)
#define PME_STS5_REG ((volatile unsigned char *)0x00C02108) #define PME_STS5_REG ((volatile unsigned char *)0xFEC02108)
#define PME_EN1_REG ((volatile unsigned char *)0x00C0210A) #define PME_EN1_REG ((volatile unsigned char *)0xFEC0210A)
#define PME_EN2_REG ((volatile unsigned char *)0x00C0210B) #define PME_EN2_REG ((volatile unsigned char *)0xFEC0210B)
#define PME_EN3_REG ((volatile unsigned char *)0x00C0210C) #define PME_EN3_REG ((volatile unsigned char *)0xFEC0210C)
#define PME_EN4_REG ((volatile unsigned char *)0x00C0210D) #define PME_EN4_REG ((volatile unsigned char *)0xFEC0210D)
#define PME_EN5_REG ((volatile unsigned char *)0x00C0210E) #define PME_EN5_REG ((volatile unsigned char *)0xFEC0210E)
#define SMI_STS1_REG ((volatile unsigned char *)0x00C02110) #define SMI_STS1_REG ((volatile unsigned char *)0xFEC02110)
#define SMI_STS2_REG ((volatile unsigned char *)0x00C02111) #define SMI_STS2_REG ((volatile unsigned char *)0xFEC02111)
#define SMI_STS3_REG ((volatile unsigned char *)0x00C02112) #define SMI_STS3_REG ((volatile unsigned char *)0xFEC02112)
#define SMI_STS4_REG ((volatile unsigned char *)0x00C02113) #define SMI_STS4_REG ((volatile unsigned char *)0xFEC02113)
#define SMI_STS5_REG ((volatile unsigned char *)0x00C02114) #define SMI_STS5_REG ((volatile unsigned char *)0xFEC02114)
#define SMI_EN1_REG ((volatile unsigned char *)0x00C02116) #define SMI_EN1_REG ((volatile unsigned char *)0xFEC02116)
#define SMI_EN2_REG ((volatile unsigned char *)0x00C02117) #define SMI_EN2_REG ((volatile unsigned char *)0xFEC02117)
#define SMI_EN3_REG ((volatile unsigned char *)0x00C02118) #define SMI_EN3_REG ((volatile unsigned char *)0xFEC02118)
#define SMI_EN4_REG ((volatile unsigned char *)0x00C02119) #define SMI_EN4_REG ((volatile unsigned char *)0xFEC02119)
#define SMI_EN5_REG ((volatile unsigned char *)0x00C0211A) #define SMI_EN5_REG ((volatile unsigned char *)0xFEC0211A)
#define MSC_ST_REG ((volatile unsigned char *)0x00C0211C) #define MSC_ST_REG ((volatile unsigned char *)0xFEC0211C)
#define FORCE_DISK_CHANGE ((volatile unsigned char *)0x00C0211E) #define FORCE_DISK_CHANGE ((volatile unsigned char *)0xFEC0211E)
#define FLOPPY_DATA_RATE ((volatile unsigned char *)0x00C0211F) #define FLOPPY_DATA_RATE ((volatile unsigned char *)0xFEC0211F)
#define UART1_FIFO_CTRL_SHDW ((volatile unsigned char *)0x00C02120) #define UART1_FIFO_CTRL_SHDW ((volatile unsigned char *)0xFEC02120)
#define UART2_FIFO_CTRL_SHDW ((volatile unsigned char *)0x00C02121) #define UART2_FIFO_CTRL_SHDW ((volatile unsigned char *)0xFEC02121)
#define DEV_DISABLE_REG ((volatile unsigned char *)0x00C02122) #define DEV_DISABLE_REG ((volatile unsigned char *)0xFEC02122)
#define GP10_REG ((volatile unsigned char *)0x00C02123) #define GP10_REG ((volatile unsigned char *)0xFEC02123)
#define GP11_REG ((volatile unsigned char *)0x00C02124) #define GP11_REG ((volatile unsigned char *)0xFEC02124)
#define GP12_REG ((volatile unsigned char *)0x00C02125) #define GP12_REG ((volatile unsigned char *)0xFEC02125)
#define GP13_REG ((volatile unsigned char *)0x00C02126) #define GP13_REG ((volatile unsigned char *)0xFEC02126)
#define GP14_REG ((volatile unsigned char *)0x00C02127) #define GP14_REG ((volatile unsigned char *)0xFEC02127)
#define GP15_REG ((volatile unsigned char *)0x00C02128) #define GP15_REG ((volatile unsigned char *)0xFEC02128)
#define GP16_REG ((volatile unsigned char *)0x00C02129) #define GP16_REG ((volatile unsigned char *)0xFEC02129)
#define GP17_REG ((volatile unsigned char *)0x00C0212A) #define GP17_REG ((volatile unsigned char *)0xFEC0212A)
#define GP20_REG ((volatile unsigned char *)0x00C0212B) #define GP20_REG ((volatile unsigned char *)0xFEC0212B)
#define GP21_REG ((volatile unsigned char *)0x00C0212C) #define GP21_REG ((volatile unsigned char *)0xFEC0212C)
#define GP22_REG ((volatile unsigned char *)0x00C0212D) #define GP22_REG ((volatile unsigned char *)0xFEC0212D)
#define GP23_REG ((volatile unsigned char *)0x00C0212E) #define GP23_REG ((volatile unsigned char *)0xFEC0212E)
#define GP24_REG ((volatile unsigned char *)0x00C0212F) #define GP24_REG ((volatile unsigned char *)0xFEC0212F)
#define GP25_REG ((volatile unsigned char *)0x00C02130) #define GP25_REG ((volatile unsigned char *)0xFEC02130)
#define GP26_REG ((volatile unsigned char *)0x00C02131) #define GP26_REG ((volatile unsigned char *)0xFEC02131)
#define GP27_REG ((volatile unsigned char *)0x00C02132) #define GP27_REG ((volatile unsigned char *)0xFEC02132)
#define GP30_REG ((volatile unsigned char *)0x00C02133) #define GP30_REG ((volatile unsigned char *)0xFEC02133)
#define GP31_REG ((volatile unsigned char *)0x00C02134) #define GP31_REG ((volatile unsigned char *)0xFEC02134)
#define GP32_REG ((volatile unsigned char *)0x00C02135) #define GP32_REG ((volatile unsigned char *)0xFEC02135)
#define GP33_REG ((volatile unsigned char *)0x00C02136) #define GP33_REG ((volatile unsigned char *)0xFEC02136)
#define GP34_REG ((volatile unsigned char *)0x00C02137) #define GP34_REG ((volatile unsigned char *)0xFEC02137)
#define GP35_REG ((volatile unsigned char *)0x00C02138) #define GP35_REG ((volatile unsigned char *)0xFEC02138)
#define GP36_REG ((volatile unsigned char *)0x00C02139) #define GP36_REG ((volatile unsigned char *)0xFEC02139)
#define GP37_REG ((volatile unsigned char *)0x00C0213A) #define GP37_REG ((volatile unsigned char *)0xFEC0213A)
#define GP40_REG ((volatile unsigned char *)0x00C0213B) #define GP40_REG ((volatile unsigned char *)0xFEC0213B)
#define GP41_REG ((volatile unsigned char *)0x00C0213C) #define GP41_REG ((volatile unsigned char *)0xFEC0213C)
#define GP42_REG ((volatile unsigned char *)0x00C0213D) #define GP42_REG ((volatile unsigned char *)0xFEC0213D)
#define GP43_REG ((volatile unsigned char *)0x00C0213E) #define GP43_REG ((volatile unsigned char *)0xFEC0213E)
#define GP50_REG ((volatile unsigned char *)0x00C0213F) #define GP50_REG ((volatile unsigned char *)0xFEC0213F)
#define GP51_REG ((volatile unsigned char *)0x00C02140) #define GP51_REG ((volatile unsigned char *)0xFEC02140)
#define GP52_REG ((volatile unsigned char *)0x00C02141) #define GP52_REG ((volatile unsigned char *)0xFEC02141)
#define GP53_REG ((volatile unsigned char *)0x00C02142) #define GP53_REG ((volatile unsigned char *)0xFEC02142)
#define GP54_REG ((volatile unsigned char *)0x00C02143) #define GP54_REG ((volatile unsigned char *)0xFEC02143)
#define GP55_REG ((volatile unsigned char *)0x00C02144) #define GP55_REG ((volatile unsigned char *)0xFEC02144)
#define GP56_REG ((volatile unsigned char *)0x00C02145) #define GP56_REG ((volatile unsigned char *)0xFEC02145)
#define GP57_REG ((volatile unsigned char *)0x00C02146) #define GP57_REG ((volatile unsigned char *)0xFEC02146)
#define GP60_REG ((volatile unsigned char *)0x00C02147) #define GP60_REG ((volatile unsigned char *)0xFEC02147)
#define GP61_REG ((volatile unsigned char *)0x00C02148) #define GP61_REG ((volatile unsigned char *)0xFEC02148)
#define GP1_REG ((volatile unsigned char *)0x00C0214B) #define GP1_REG ((volatile unsigned char *)0xFEC0214B)
#define GP2_REG ((volatile unsigned char *)0x00C0214C) #define GP2_REG ((volatile unsigned char *)0xFEC0214C)
#define GP3_REG ((volatile unsigned char *)0x00C0214D) #define GP3_REG ((volatile unsigned char *)0xFEC0214D)
#define GP4_REG ((volatile unsigned char *)0x00C0214E) #define GP4_REG ((volatile unsigned char *)0xFEC0214E)
#define GP5_REG ((volatile unsigned char *)0x00C0214F) #define GP5_REG ((volatile unsigned char *)0xFEC0214F)
#define GP6_REG ((volatile unsigned char *)0x00C02150) #define GP6_REG ((volatile unsigned char *)0xFEC02150)
#define FAN1_REG ((volatile unsigned char *)0x00C02156) #define FAN1_REG ((volatile unsigned char *)0xFEC02156)
#define FAN2_REG ((volatile unsigned char *)0x00C02157) #define FAN2_REG ((volatile unsigned char *)0xFEC02157)
#define FAN_CTRL_REG ((volatile unsigned char *)0x00C02158) #define FAN_CTRL_REG ((volatile unsigned char *)0xFEC02158)
#define FAN1_TACH_REG ((volatile unsigned char *)0x00C02159) #define FAN1_TACH_REG ((volatile unsigned char *)0xFEC02159)
#define FAN2_TACH_REG ((volatile unsigned char *)0x00C0215A) #define FAN2_TACH_REG ((volatile unsigned char *)0xFEC0215A)
#define FAN1_PRELOAD_REG ((volatile unsigned char *)0x00C0215B) #define FAN1_PRELOAD_REG ((volatile unsigned char *)0xFEC0215B)
#define FAN2_PRELOAD_REG ((volatile unsigned char *)0x00C0215C) #define FAN2_PRELOAD_REG ((volatile unsigned char *)0xFEC0215C)
#define LED1_REG ((volatile unsigned char *)0x00C0215D) #define LED1_REG ((volatile unsigned char *)0xFEC0215D)
#define LED2_REG ((volatile unsigned char *)0x00C0215E) #define LED2_REG ((volatile unsigned char *)0xFEC0215E)
#define KEYBOARD_SCAN_CODE ((volatile unsigned char *)0x00C0215F) #define KEYBOARD_SCAN_CODE ((volatile unsigned char *)0xFEC0215F)
#endif #endif

View file

@ -8,8 +8,8 @@
#include "sys_general.h" #include "sys_general.h"
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
#define UART1_BASE 0x00C023F8 /* Base address for UART 1 (COM1) */ #define UART1_BASE 0xFEC023F8 /* Base address for UART 1 (COM1) */
#define UART2_BASE 0x00C022F8 /* Base address for UART 2 (COM2) */ #define UART2_BASE 0xFEC022F8 /* Base address for UART 2 (COM2) */
#elif MODEL == MODEL_FOENIX_A2560U || MODEL == MODEL_FOENIX_A2560U_PLUS #elif MODEL == MODEL_FOENIX_A2560U || MODEL == MODEL_FOENIX_A2560U_PLUS
#define UART1_BASE 0x00B028F8 /* Base address for UART 1 (COM1) */ #define UART1_BASE 0x00B028F8 /* Base address for UART 1 (COM1) */

View file

@ -15,21 +15,6 @@
#include "dev/kbd_mo.h" #include "dev/kbd_mo.h"
#endif #endif
/*
* Initialize the indicators
*
* Generally, this means the indicators will all be turned off
*/
void ind_init() {
#if MODEL == MODEL_FOENIX_A2560K
/* The keyboard LEDs will be initialized by the keyboard code */
/* Turn off the power LED */
*RGB_LED_L = 0x0000;
*RGB_LED_H = 0x0000;
#endif
}
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
short ind_state_color(short state) { short ind_state_color(short state) {
switch (state) { switch (state) {
@ -50,21 +35,18 @@ short ind_state_color(short state) {
void ind_set_power(short state) { void ind_set_power(short state) {
switch (state) { switch (state) {
case IND_ON: case IND_ON:
/* Purple for on */ /* Dark green for on */
*RGB_LED_L = 0x00FF; *RGB_LED = 0x00004000;
*RGB_LED_H = 0x00FF;
break; break;
case IND_ERROR: case IND_ERROR:
/* Red for error */ /* Red for error */
*RGB_LED_L = 0x0000; *RGB_LED = 0x00FF0000;
*RGB_LED_H = 0x0000;
break; break;
default: default:
/* Anything else is off */ /* Anything else is off */
*RGB_LED_L = 0x0000; *RGB_LED = 0;
*RGB_LED_H = 0x0000;
break; break;
} }
} }
@ -128,3 +110,15 @@ void ind_set(short ind_number, short state) {
break; break;
} }
} }
/*
* Initialize the indicators
*
* Generally, this means the indicators will all be turned off
*/
void ind_init() {
ind_set(IND_POWER, IND_ON);
ind_set(IND_FDC, IND_OFF);
ind_set(IND_SDC, IND_OFF);
ind_set(IND_HDC, IND_OFF);
}

View file

@ -16,21 +16,21 @@ typedef void (*p_int_handler)();
#if MODEL == MODEL_FOENIX_A2560K #if MODEL == MODEL_FOENIX_A2560K
#define PENDING_GRP0 ((volatile unsigned short *)0x00C00100) #define PENDING_GRP0 ((volatile unsigned short *)0xFEC00100)
#define PENDING_GRP1 ((volatile unsigned short *)0x00C00102) #define PENDING_GRP1 ((volatile unsigned short *)0xFEC00102)
#define PENDING_GRP2 ((volatile unsigned short *)0x00C00104) #define PENDING_GRP2 ((volatile unsigned short *)0xFEC00104)
#define POL_GRP0 ((volatile unsigned short *)0x00C00108) #define POL_GRP0 ((volatile unsigned short *)0xFEC00108)
#define POL_GRP1 ((volatile unsigned short *)0x00C0010A) #define POL_GRP1 ((volatile unsigned short *)0xFEC0010A)
#define POL_GRP2 ((volatile unsigned short *)0x00C0010C) #define POL_GRP2 ((volatile unsigned short *)0xFEC0010C)
#define EDGE_GRP0 ((volatile unsigned short *)0x00C00110) #define EDGE_GRP0 ((volatile unsigned short *)0xFEC00110)
#define EDGE_GRP1 ((volatile unsigned short *)0x00C00112) #define EDGE_GRP1 ((volatile unsigned short *)0xFEC00112)
#define EDGE_GRP2 ((volatile unsigned short *)0x00C00114) #define EDGE_GRP2 ((volatile unsigned short *)0xFEC00114)
#define MASK_GRP0 ((volatile unsigned short *)0x00C00118) #define MASK_GRP0 ((volatile unsigned short *)0xFEC00118)
#define MASK_GRP1 ((volatile unsigned short *)0x00C0011A) #define MASK_GRP1 ((volatile unsigned short *)0xFEC0011A)
#define MASK_GRP2 ((volatile unsigned short *)0x00C0011C) #define MASK_GRP2 ((volatile unsigned short *)0xFEC0011C)
#elif MODEL == MODEL_FOENIX_A2560U || MODEL == MODEL_FOENIX_A2560U_PLUS #elif MODEL == MODEL_FOENIX_A2560U || MODEL == MODEL_FOENIX_A2560U_PLUS

View file

@ -17,9 +17,9 @@
; PENDING_GRP1 = $00B00102 ; PENDING_GRP1 = $00B00102
; PENDING_GRP2 = $00B00104 ; PENDING_GRP2 = $00B00104
PENDING_GRP0 = $00C00100 PENDING_GRP0 = $FEC00100
PENDING_GRP1 = $00C00102 PENDING_GRP1 = $FEC00102
PENDING_GRP2 = $00C00104 PENDING_GRP2 = $FEC00104
section "vectors",code section "vectors",code
@ -123,16 +123,17 @@ PENDING_GRP2 = $00C00104
code code
coldboot: lea ___STACK,sp coldboot: move.w $2700,SR ; Supervisor mode, Interrupt mode (68040), disable all interrupts
lea ___STACK,sp
bsr _int_disable_all bsr _int_disable_all
lea ___BSSSTART,a0 lea ___BSSSTART,a0
move.l #___BSSSIZE,d0 move.l #___BSSSIZE,d0
beq callmain beq callmain
; clrloop: clr.l (a0)+ clrloop: move.l #0,(a0)+
; subq.l #4,d0 subq.l #4,d0
; bne clrloop bne clrloop
; Set TRAP #15 vector handler ; Set TRAP #15 vector handler
lea h_trap_15,a0 ; Address of the handler lea h_trap_15,a0 ; Address of the handler
@ -209,10 +210,14 @@ interrupt_x12:
; ;
interrupt_x1F: interrupt_x1F:
move.w #$8000,(PENDING_GRP1) ; Clear the flag for INT 1F move.w #$8000,(PENDING_GRP1) ; Clear the flag for INT 1F
movem.l d0-d7/a0-a6,-(a7) ; Save affected registers clr.w d0
move.w #($1f<<2),d0 ; Get the offset to interrupt 0x1f divu.w d0,d1
bra int_dispatch ; And process the interrupt ; movem.l d0-d7/a0-a6,-(a7) ; Save affected registers
; move.w #($1f<<2),d0 ; Get the offset to interrupt 0x1f
; bra int_dispatch ; And process the interrupt
jsr _rtc_handle_int
; movem.l (a7)+,d0-d7/a0-a6 ; Save affected registers
rte
; ;
; Interrupt Vector 0x21 -- SDCard Insert ; Interrupt Vector 0x21 -- SDCard Insert
; ;

14339
src/mapfile

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,268 @@
// Filename : BM437_IBM_Alt4_RevB.c
// Font Size : 8x16
// Memory usage : 4085 bytes
// # characters : 255
// Byte packing : Row
// Byte order : First pixel in first byte
// Bit order : First pixel MSB
// Built with TFT Font Factory, (c) TSX Software
// Please note: array data format is similar, but incompatible with UTFT library!
const unsigned char BM437_IBM_Model3_Alt4[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #0
0x00, 0x00, 0x00, 0x00, 0x7C, 0x82, 0xAA, 0x82, 0x82, 0xBA, 0x82, 0x7C, 0x00, 0x00, 0x00, 0x00, // #1
0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x5A, 0x7E, 0x7E, 0x42, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, // #2
0x00, 0x00, 0x00, 0x00, 0x44, 0xEE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // #3
0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // #4
0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x10, 0x54, 0xFE, 0x54, 0x10, 0x38, 0x00, 0x00, 0x00, 0x00, // #5
0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0xFE, 0x54, 0x10, 0x38, 0x00, 0x00, 0x00, 0x00, // #6
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #7
0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xEE, 0xC6, 0xC6, 0xEE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, // #8
0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, // #9
0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xC6, 0x92, 0xBA, 0xBA, 0x92, 0xC6, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, // #10
0x00, 0x00, 0x00, 0x1E, 0x06, 0x0A, 0x10, 0x78, 0x84, 0x84, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, // #11
0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, // #12
0x00, 0x00, 0x00, 0x1E, 0x10, 0x1E, 0x10, 0x10, 0x10, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, // #13
0x00, 0x00, 0x00, 0x3E, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x2E, 0xEE, 0xEC, 0xC0, 0x00, 0x00, 0x00, // #14
0x00, 0x00, 0x00, 0x10, 0x92, 0x54, 0x38, 0xEE, 0x38, 0x54, 0x92, 0x10, 0x00, 0x00, 0x00, 0x00, // #15
0x00, 0x00, 0x00, 0x40, 0x60, 0x70, 0x78, 0x7C, 0x78, 0x70, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, // #16
0x00, 0x00, 0x00, 0x04, 0x0C, 0x1C, 0x3C, 0x7C, 0x3C, 0x1C, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, // #17
0x00, 0x00, 0x00, 0x10, 0x38, 0x54, 0x10, 0x10, 0x10, 0x54, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, // #18
0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x00, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, // #19
0x00, 0x00, 0x00, 0x7E, 0x92, 0x92, 0x92, 0x72, 0x12, 0x12, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, // #20
0x00, 0x00, 0x3C, 0x42, 0x20, 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x04, 0x42, 0x3C, 0x00, 0x00, 0x00, // #21
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, // #22
0x00, 0x00, 0x10, 0x38, 0x54, 0x10, 0x10, 0x10, 0x54, 0x38, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x00, // #23
0x00, 0x00, 0x00, 0x10, 0x38, 0x54, 0x92, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #24
0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x92, 0x54, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, // #25
0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x04, 0xFE, 0x04, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // #26
0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x40, 0xFE, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // #27
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #28
0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x42, 0xFF, 0x42, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #29
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #30
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #31
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #32
0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #33
0x00, 0x00, 0x24, 0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #34
0x00, 0x00, 0x00, 0x44, 0x44, 0xFE, 0x44, 0x44, 0x44, 0xFE, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, // #35
0x00, 0x00, 0x10, 0x7C, 0x92, 0x90, 0x90, 0x7C, 0x12, 0x12, 0x92, 0x7C, 0x10, 0x00, 0x00, 0x00, // #36
0x00, 0x00, 0x00, 0x62, 0x92, 0x64, 0x08, 0x10, 0x20, 0x4C, 0x92, 0x8C, 0x00, 0x00, 0x00, 0x00, // #37
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #38
0x00, 0x00, 0x30, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #39
0x00, 0x00, 0x08, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, // #40
0x00, 0x00, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, // #41
0x00, 0x00, 0x00, 0x10, 0x54, 0x38, 0xFE, 0x38, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #42
0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #43
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, 0x00, 0x00, // #44
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #45
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, // #46
0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // #47
0x00, 0x00, 0x3C, 0x42, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #48
0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, // #49
0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x7E, 0x00, 0x00, 0x00, 0x00, // #50
0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x1C, 0x02, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #51
0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x44, 0x84, 0xFE, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, // #52
0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x7C, 0x02, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #53
0x00, 0x00, 0x3C, 0x40, 0x40, 0x40, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #54
0x00, 0x00, 0x7E, 0x02, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #55
0x00, 0x00, 0x38, 0x44, 0x82, 0x44, 0x38, 0x44, 0x82, 0x82, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, // #56
0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x02, 0x3C, 0x00, 0x00, 0x00, 0x00, // #57
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #58
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, // #59
0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, // #60
0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #61
0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, // #62
0x00, 0x00, 0x3C, 0x42, 0x02, 0x02, 0x04, 0x08, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #63
0x00, 0x00, 0x00, 0x7C, 0x82, 0xBA, 0xAA, 0xAA, 0xAA, 0x9C, 0x80, 0x7C, 0x00, 0x00, 0x00, 0x00, // #64
0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #65
0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x00, 0x00, 0x00, 0x00, // #66
0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #67
0x00, 0x00, 0x78, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00, 0x00, 0x00, 0x00, // #68
0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00, 0x00, 0x00, 0x00, // #69
0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // #70
0x00, 0x00, 0x3E, 0x40, 0x40, 0x40, 0x4E, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #71
0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #72
0x00, 0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00, 0x00, 0x00, // #73
0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #74
0x00, 0x00, 0x42, 0x44, 0x48, 0x50, 0x60, 0x60, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, 0x00, 0x00, // #75
0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00, 0x00, 0x00, 0x00, // #76
0x00, 0x00, 0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, // #77
0x00, 0x00, 0x82, 0xC2, 0xA2, 0xA2, 0x92, 0x92, 0x8A, 0x8A, 0x86, 0x82, 0x00, 0x00, 0x00, 0x00, // #78
0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #79
0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // #80
0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x52, 0x4A, 0x3C, 0x04, 0x02, 0x00, 0x00, // #81
0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x48, 0x44, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #82
0x00, 0x00, 0x3E, 0x40, 0x40, 0x40, 0x3C, 0x02, 0x02, 0x02, 0x02, 0x7C, 0x00, 0x00, 0x00, 0x00, // #83
0x00, 0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #84
0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #85
0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, // #86
0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x92, 0xAA, 0xC6, 0x82, 0x00, 0x00, 0x00, 0x00, // #87
0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, // #88
0x00, 0x00, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #89
0x00, 0x00, 0xFE, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0xFE, 0x00, 0x00, 0x00, 0x00, // #90
0x00, 0x00, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, 0x00, 0x00, 0x00, // #91
0x00, 0x00, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, // #92
0x00, 0x00, 0x3C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3C, 0x00, 0x00, 0x00, 0x00, // #93
0x00, 0x00, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #94
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, // #95
0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #96
0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x02, 0x02, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #97
0x00, 0x00, 0x40, 0x40, 0x40, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x00, 0x00, 0x00, 0x00, // #98
0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x40, 0x40, 0x40, 0x40, 0x40, 0x3E, 0x00, 0x00, 0x00, 0x00, // #99
0x00, 0x00, 0x02, 0x02, 0x02, 0x3E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #100
0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x7E, 0x40, 0x40, 0x3E, 0x00, 0x00, 0x00, 0x00, // #101
0x00, 0x00, 0x0E, 0x10, 0x10, 0x7E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #102
0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x3C, 0x00, // #103
0x00, 0x00, 0x40, 0x40, 0x40, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #104
0x00, 0x00, 0x08, 0x08, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, // #105
0x00, 0x00, 0x04, 0x04, 0x00, 0x1C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x78, 0x00, // #106
0x00, 0x00, 0x40, 0x40, 0x40, 0x42, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00, 0x00, 0x00, 0x00, // #107
0x00, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, // #108
0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x00, 0x00, 0x00, 0x00, // #109
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #110
0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #111
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x00, // #112
0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x02, 0x00, // #113
0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, // #114
0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x40, 0x40, 0x3C, 0x02, 0x02, 0x7C, 0x00, 0x00, 0x00, 0x00, // #115
0x00, 0x00, 0x00, 0x10, 0x10, 0x7E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0E, 0x00, 0x00, 0x00, 0x00, // #116
0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #117
0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, // #118
0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x6C, 0x00, 0x00, 0x00, 0x00, // #119
0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #120
0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x3C, 0x00, // #121
0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x40, 0x7E, 0x00, 0x00, 0x00, 0x00, // #122
0x00, 0x00, 0x0C, 0x10, 0x10, 0x10, 0x20, 0x20, 0x10, 0x10, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x00, // #123
0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, // #124
0x00, 0x00, 0x30, 0x08, 0x08, 0x08, 0x04, 0x04, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00, 0x00, 0x00, // #125
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x92, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #126
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0x44, 0x82, 0x82, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, // #127
0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x04, 0x02, 0x3C, 0x00, // #128
0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #129
0x00, 0x00, 0x04, 0x08, 0x10, 0x00, 0x3C, 0x42, 0x42, 0x7E, 0x40, 0x3E, 0x00, 0x00, 0x00, 0x00, // #130
0x00, 0x00, 0x10, 0x28, 0x44, 0x00, 0x3C, 0x02, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #131
0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x3C, 0x02, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #132
0x00, 0x00, 0x10, 0x08, 0x04, 0x00, 0x3C, 0x02, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #133
0x00, 0x00, 0x1C, 0x22, 0x1C, 0x00, 0x3C, 0x02, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #134
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x42, 0x3C, 0x08, 0x04, 0x78, 0x00, // #135
0x00, 0x00, 0x18, 0x24, 0x42, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #136
0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #137
0x00, 0x00, 0x20, 0x10, 0x08, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #138
0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, // #139
0x00, 0x00, 0x08, 0x14, 0x22, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, // #140
0x00, 0x00, 0x10, 0x08, 0x04, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, // #141
0x00, 0x66, 0x00, 0x18, 0x24, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #142
0x00, 0x18, 0x24, 0x18, 0x24, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #143
0x00, 0x0C, 0x30, 0x00, 0x7C, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x7C, 0x00, 0x00, 0x00, 0x00, // #144
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x12, 0x7C, 0x90, 0x92, 0x7C, 0x00, 0x00, 0x00, 0x00, // #145
0x00, 0x00, 0x00, 0x3E, 0x48, 0x88, 0x88, 0xFE, 0x88, 0x88, 0x88, 0x8E, 0x00, 0x00, 0x00, 0x00, // #146
0x00, 0x00, 0x00, 0x18, 0x24, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #147
0x00, 0x00, 0x00, 0x24, 0x42, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #148
0x00, 0x00, 0x20, 0x10, 0x08, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #149
0x00, 0x00, 0x18, 0x24, 0x42, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #150
0x00, 0x00, 0x20, 0x10, 0x08, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #151
0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x3C, 0x00, 0x00, // #152
0x00, 0xC6, 0x00, 0x7C, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7C, 0x00, 0x00, 0x00, 0x00, // #153
0x00, 0xC6, 0x00, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7C, 0x00, 0x00, 0x00, 0x00, // #154
0x00, 0x00, 0x10, 0x10, 0x7C, 0x82, 0x80, 0x80, 0x82, 0x7C, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #155
0x00, 0x00, 0x38, 0x44, 0x44, 0x40, 0xF0, 0x40, 0x40, 0x60, 0xD6, 0xCC, 0x00, 0x00, 0x00, 0x00, // #156
0x00, 0x00, 0x82, 0x44, 0x28, 0x10, 0x10, 0x7C, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #157
0x00, 0x00, 0xF8, 0x84, 0x84, 0x84, 0xF8, 0x80, 0x88, 0x9E, 0x88, 0x88, 0x06, 0x00, 0x00, 0x00, // #158
0x00, 0x00, 0x0C, 0x12, 0x10, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x10, 0x90, 0x60, 0x00, 0x00, 0x00, // #159
0x00, 0x00, 0x08, 0x10, 0x20, 0x00, 0x3C, 0x02, 0x3E, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #160
0x00, 0x00, 0x04, 0x08, 0x10, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, // #161
0x00, 0x00, 0x08, 0x10, 0x20, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #162
0x00, 0x00, 0x08, 0x10, 0x20, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, // #163
0x00, 0x00, 0x00, 0x32, 0x4C, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, // #164
0x00, 0x32, 0x4C, 0x00, 0x82, 0xC2, 0xA2, 0x92, 0x8A, 0x86, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, // #165
0x00, 0x00, 0x00, 0x3C, 0x44, 0x44, 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #166
0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x3C, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #167
0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x20, 0x40, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #168
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #169
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #170
0x00, 0x20, 0x60, 0x20, 0x22, 0x24, 0x08, 0x10, 0x20, 0x4C, 0x92, 0x04, 0x08, 0x1E, 0x00, 0x00, // #171
0x00, 0x20, 0x60, 0x20, 0x22, 0x24, 0x08, 0x10, 0x22, 0x46, 0x8A, 0x1E, 0x02, 0x02, 0x00, 0x00, // #172
0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #173
0x00, 0x00, 0x00, 0x09, 0x12, 0x24, 0x48, 0x90, 0x48, 0x24, 0x12, 0x09, 0x00, 0x00, 0x00, 0x00, // #174
0x00, 0x00, 0x00, 0x90, 0x48, 0x24, 0x12, 0x09, 0x12, 0x24, 0x48, 0x90, 0x00, 0x00, 0x00, 0x00, // #175
0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, // #176
0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, // #177
0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, // #178
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #179
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #180
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #181
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #182
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #183
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #184
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #185
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #186
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #187
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #188
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #189
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #190
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #191
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #192
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #193
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #194
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #195
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #196
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #197
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #198
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #199
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #200
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #201
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #202
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #203
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #204
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #205
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #206
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #207
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #208
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #209
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #210
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #211
0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #212
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #213
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #214
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // #215
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #216
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #217
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // #218
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // #219
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // #220
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, // #221
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, // #222
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #223
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x88, 0x88, 0x88, 0x76, 0x00, 0x00, 0x00, 0x00, // #224
0x00, 0x00, 0x00, 0x1C, 0x22, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x00, 0x00, // #225
0x00, 0x00, 0x00, 0xFE, 0x42, 0x42, 0x40, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x00, // #226
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x24, 0x24, 0x24, 0x64, 0x00, 0x00, 0x00, 0x00, // #227
0x00, 0x00, 0x00, 0xFE, 0x82, 0x40, 0x20, 0x10, 0x20, 0x40, 0x82, 0xFE, 0x00, 0x00, 0x00, 0x00, // #228
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x44, 0x44, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, // #229
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x80, 0x00, // #230
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x10, 0x10, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, // #231
0x00, 0x00, 0x00, 0x10, 0x10, 0x38, 0x54, 0x92, 0x92, 0x92, 0x54, 0x38, 0x10, 0x10, 0x00, 0x00, // #232
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0xFE, 0x82, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, // #233
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x44, 0xC6, 0x00, 0x00, 0x00, 0x00, // #234
0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x10, 0x18, 0x24, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, // #235
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xAA, 0x92, 0xAA, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, // #236
0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x44, 0x8A, 0x92, 0xA2, 0x44, 0xB8, 0x00, 0x00, 0x00, 0x00, // #237
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x40, 0x7C, 0x40, 0x3E, 0x00, 0x00, 0x00, 0x00, // #238
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, // #239
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #240
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, // #241
0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // #242
0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // #243
0x00, 0x00, 0x00, 0x0E, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // #244
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x60, 0x00, 0x00, 0x00, // #245
0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // #246
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x92, 0x0C, 0x60, 0x92, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, // #247
0x00, 0x00, 0x30, 0x48, 0x48, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #248
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #249
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #250
0x00, 0x00, 0x00, 0x00, 0x3E, 0x20, 0x20, 0x20, 0x20, 0xA0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, // #251
0x00, 0x00, 0x70, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #252
0x00, 0x00, 0x30, 0x48, 0x10, 0x20, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #253
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #254
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // #255
};

View file

@ -600,7 +600,7 @@ short sys_fsys_register_loader(const char * extension, p_file_loader loader) {
* Returns: * Returns:
* the number of jiffies since the last reset * the number of jiffies since the last reset
*/ */
extern long sys_time_jiffies() { long sys_time_jiffies() {
return syscall(KFN_TIME_JIFFIES); return syscall(KFN_TIME_JIFFIES);
} }

13
vbcc/config/a2560k_ram Normal file
View file

@ -0,0 +1,13 @@
-cc=vbccm68k -quiet %s -o= %s %s -O=%ld -I%%VBCC%%\targets\m68k-foenix\include
-ccv=vbccm68k %s -o= %s %s -O=%ld -I%%VBCC%%\targets\m68k-foenix\include
-as=vasmm68k_mot -quiet -Fvobj -nowarn=62 %s -o %s
-asv=vasmm68k_mot -Fvobj -nowarn=62 %s -o %s
-rm=del %s
-rmv=del %s
-ld=vlink -bsrec28 -x -Cvbcc m68040\startup_m68040.o %s %s -L%%VBCC%%\targets\m68k-foenix\lib -T%%VBCC%%\targets\m68k-foenix\vlink.cmd -lvc -o %s -Mmapfile
-l2=vlink -bsrec28 -x -Cvbcc %s %s -L%%VBCC%%\targets\m68k-foenix\lib -T%%VBCC%%\targets\m68k-foenix\vlink.cmd -o %s -Mmapfile
-ldv=vlink -bsrec28 -t -x -Cvbcc m68040\startup.o %s %s -L%%VBCC%%\targets\m68k-foenix\lib -T%%VBCC%%\targets\m68k-foenix\vlink.cmd -lvc -o %s -Mmapfile
-l2v=vlink -bsrec28 -t -x -Cvbcc %s %s -L%%VBCC%%\targets\m68k-foenix\lib -T%%VBCC%%\targets\m68k-foenix\vlink.cmd -o %s -Mmapfile
-ul=-l%s
-cf=-F%s
-ml=1000