1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-08 17:54:40 +00:00

Added hicol MC mode

This commit is contained in:
jespergravgaard 2018-03-29 09:09:07 +02:00
parent 89e2900fdc
commit 626329ddaa
5 changed files with 11462 additions and 9583 deletions

View File

@ -35,10 +35,10 @@ byte[] MENU_TEXT =
"@" ; "@" ;
void menu() { void menu() {
const byte* MENU_SCREEN = $8000; const byte* SCREEN = $8000;
const byte* MENU_CHARSET = $9800; // Charset ROM const byte* CHARSET = $9800; // Charset ROM
// DTV Graphics Bank // DTV Graphics Bank
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)MENU_CHARSET/$10000); *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
// DTV Color Bank // DTV Color Bank
*DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400)); *DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400));
*DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400)); *DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400));
@ -46,12 +46,12 @@ void menu() {
*DTV_CONTROL = 0; *DTV_CONTROL = 0;
// VIC Graphics Bank // VIC Graphics Bank
*CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input *CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
*CIA2_PORT_A = %00000011 ^ (byte)((word)MENU_CHARSET/$4000); // Set VIC Bank *CIA2_PORT_A = %00000011 ^ (byte)((word)CHARSET/$4000); // Set VIC Bank
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_DEN|VIC_RSEL|3; *VIC_CONTROL = VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL; *VIC_CONTROL2 = VIC_CSEL;
// VIC Memory Pointers // VIC Memory Pointers
*VIC_MEMORY = (byte)((((word)MENU_SCREEN&$3fff)/$40)|(((word)MENU_CHARSET&$3fff)/$400)); *VIC_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)CHARSET&$3fff)/$400));
// DTV Palette - default // DTV Palette - default
for(byte i : 0..$f) { for(byte i : 0..$f) {
DTV_PALETTE[i] = DTV_PALETTE_DEFAULT[i]; DTV_PALETTE[i] = DTV_PALETTE_DEFAULT[i];
@ -62,7 +62,7 @@ void menu() {
*BGCOL = 0; *BGCOL = 0;
*BORDERCOL = 0; *BORDERCOL = 0;
// Display menu Text // Display menu Text
print_set_screen(MENU_SCREEN); print_set_screen(SCREEN);
print_cls(); print_cls();
print_str_lines(MENU_TEXT); print_str_lines(MENU_TEXT);
// Wait for key press // Wait for key press
@ -76,7 +76,7 @@ void menu() {
return; return;
} }
if(keyboard_key_pressed(KEY_3)!=0) { if(keyboard_key_pressed(KEY_3)!=0) {
mode_mcstdchar(); mode_mcchar();
return; return;
} }
if(keyboard_key_pressed(KEY_6)!=0) { if(keyboard_key_pressed(KEY_6)!=0) {
@ -87,6 +87,10 @@ void menu() {
mode_hicolecmchar(); mode_hicolecmchar();
return; return;
} }
if(keyboard_key_pressed(KEY_8)!=0) {
mode_hicolmcchar();
return;
}
if(keyboard_key_pressed(KEY_A)!=0) { if(keyboard_key_pressed(KEY_A)!=0) {
mode_sixsfred2(); mode_sixsfred2();
return; return;
@ -119,24 +123,24 @@ void menu() {
// - 0: 4bpp BgColor0[3:0] // - 0: 4bpp BgColor0[3:0]
// - 1: 4bpp ColorData[3:0] // - 1: 4bpp ColorData[3:0]
void mode_stdchar() { void mode_stdchar() {
const byte* STDCHAR_SCREEN = $8000; const byte* SCREEN = $8000;
const byte* STDCHAR_CHARSET = $9000; // Charset ROM const byte* CHARSET = $9000; // Charset ROM
const byte* STDCHAR_COLORS = $8400; const byte* COLORS = $8400;
// DTV Graphics Bank // DTV Graphics Bank
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)STDCHAR_CHARSET/$10000); *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
// DTV Color Bank // DTV Color Bank
*DTV_COLOR_BANK_LO = <((word)(STDCHAR_COLORS/$400)); *DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(STDCHAR_COLORS/$400)); *DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = 0; *DTV_CONTROL = 0;
// VIC Graphics Bank // VIC Graphics Bank
*CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input *CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
*CIA2_PORT_A = %00000011 ^ (byte)((word)STDCHAR_CHARSET/$4000); // Set VIC Bank *CIA2_PORT_A = %00000011 ^ (byte)((word)CHARSET/$4000); // Set VIC Bank
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_DEN|VIC_RSEL|3; *VIC_CONTROL = VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL; *VIC_CONTROL2 = VIC_CSEL;
// VIC Memory Pointers // VIC Memory Pointers
*VIC_MEMORY = (byte)((((word)STDCHAR_SCREEN&$3fff)/$40)|(((word)STDCHAR_CHARSET&$3fff)/$400)); *VIC_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)CHARSET&$3fff)/$400));
// DTV Palette - default // DTV Palette - default
for(byte i : 0..$f) { for(byte i : 0..$f) {
DTV_PALETTE[i] = DTV_PALETTE_DEFAULT[i]; DTV_PALETTE[i] = DTV_PALETTE_DEFAULT[i];
@ -145,8 +149,8 @@ void mode_stdchar() {
*BGCOL = 0; *BGCOL = 0;
*BORDERCOL = 0; *BORDERCOL = 0;
// Char Colors and screen chars // Char Colors and screen chars
byte* col=STDCHAR_COLORS; byte* col=COLORS;
byte* ch=STDCHAR_SCREEN; byte* ch=SCREEN;
for(byte cy: 0..24 ) { for(byte cy: 0..24 ) {
for(byte cx: 0..39) { for(byte cx: 0..39) {
*col++ = (cx+cy)&$f; *col++ = (cx+cy)&$f;
@ -230,7 +234,7 @@ void mode_ecmchar() {
// - 01: 4bpp BgColor1[3:0] // - 01: 4bpp BgColor1[3:0]
// - 10: 4bpp BgColor2[3:0] // - 10: 4bpp BgColor2[3:0]
// - 11: 4bpp ColorData[2:0]// Standard Character Mode (LINEAR/HICOL/CHUNK/COLDIS/ECM/MCM/BMM = 0) // - 11: 4bpp ColorData[2:0]// Standard Character Mode (LINEAR/HICOL/CHUNK/COLDIS/ECM/MCM/BMM = 0)
void mode_mcstdchar() { void mode_mcchar() {
const byte* SCREEN = $8000; const byte* SCREEN = $8000;
const byte* CHARSET = $9000; // Charset ROM const byte* CHARSET = $9000; // Charset ROM
const byte* COLORS = $8400; const byte* COLORS = $8400;
@ -283,24 +287,24 @@ void mode_mcstdchar() {
// - 0: 8bpp BgColor0[7:0] // - 0: 8bpp BgColor0[7:0]
// - 1: 8bpp ColorData[7:0] // - 1: 8bpp ColorData[7:0]
void mode_hicolstdchar() { void mode_hicolstdchar() {
const byte* HICOLSTDCHAR_SCREEN = $8000; const byte* SCREEN = $8000;
const byte* HICOLSTDCHAR_CHARSET = $9000; // Charset ROM const byte* CHARSET = $9000; // Charset ROM
const byte* HICOLSTDCHAR_COLORS = $8400; const byte* COLORS = $8400;
// DTV Graphics Bank // DTV Graphics Bank
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)HICOLSTDCHAR_CHARSET/$10000); *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
// DTV Color Bank // DTV Color Bank
*DTV_COLOR_BANK_LO = <((word)(HICOLSTDCHAR_COLORS/$400)); *DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(HICOLSTDCHAR_COLORS/$400)); *DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON; *DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON;
// VIC Graphics Bank // VIC Graphics Bank
*CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input *CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
*CIA2_PORT_A = %00000011 ^ (byte)((word)HICOLSTDCHAR_CHARSET/$4000); // Set VIC Bank *CIA2_PORT_A = %00000011 ^ (byte)((word)CHARSET/$4000); // Set VIC Bank
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_DEN|VIC_RSEL|3; *VIC_CONTROL = VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL; *VIC_CONTROL2 = VIC_CSEL;
// VIC Memory Pointers // VIC Memory Pointers
*VIC_MEMORY = (byte)((((word)HICOLSTDCHAR_SCREEN&$3fff)/$40)|(((word)HICOLSTDCHAR_CHARSET&$3fff)/$400)); *VIC_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)CHARSET&$3fff)/$400));
// DTV Palette - Grey Tones // DTV Palette - Grey Tones
for(byte i : 0..$f) { for(byte i : 0..$f) {
DTV_PALETTE[i] = i; DTV_PALETTE[i] = i;
@ -309,8 +313,8 @@ void mode_hicolstdchar() {
*BGCOL = 0; *BGCOL = 0;
*BORDERCOL = 0; *BORDERCOL = 0;
// Char Colors and screen chars // Char Colors and screen chars
byte* col=HICOLSTDCHAR_COLORS; byte* col=COLORS;
byte* ch=HICOLSTDCHAR_SCREEN; byte* ch=SCREEN;
for(byte cy: 0..24 ) { for(byte cy: 0..24 ) {
for(byte cx: 0..39) { for(byte cx: 0..39) {
byte v = (cy&$f)<<4|(cx&$f); byte v = (cy&$f)<<4|(cx&$f);
@ -338,24 +342,24 @@ void mode_hicolstdchar() {
// - CharData[7:6] 11: 8bpp BgColor3[7:0] // - CharData[7:6] 11: 8bpp BgColor3[7:0]
// - 1: 8bpp ColorData[7:0] // - 1: 8bpp ColorData[7:0]
void mode_hicolecmchar() { void mode_hicolecmchar() {
const byte* ECMCHAR_SCREEN = $8000; const byte* SCREEN = $8000;
const byte* ECMCHAR_CHARSET = $9000; // Charset ROM const byte* CHARSET = $9000; // Charset ROM
const byte* ECMCHAR_COLORS = $8400; const byte* COLORS = $8400;
// DTV Graphics Bank // DTV Graphics Bank
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)ECMCHAR_CHARSET/$10000); *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
// DTV Color Bank // DTV Color Bank
*DTV_COLOR_BANK_LO = <((word)(ECMCHAR_COLORS/$400)); *DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(ECMCHAR_COLORS/$400)); *DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON; *DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON;
// VIC Graphics Bank // VIC Graphics Bank
*CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input *CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
*CIA2_PORT_A = %00000011 ^ (byte)((word)ECMCHAR_CHARSET/$4000); // Set VIC Bank *CIA2_PORT_A = %00000011 ^ (byte)((word)CHARSET/$4000); // Set VIC Bank
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_DEN|VIC_RSEL|VIC_ECM|3; *VIC_CONTROL = VIC_DEN|VIC_RSEL|VIC_ECM|3;
*VIC_CONTROL2 = VIC_CSEL; *VIC_CONTROL2 = VIC_CSEL;
// VIC Memory Pointers // VIC Memory Pointers
*VIC_MEMORY = (byte)((((word)ECMCHAR_SCREEN&$3fff)/$40)|(((word)ECMCHAR_CHARSET&$3fff)/$400)); *VIC_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)CHARSET&$3fff)/$400));
// DTV Palette - Grey Tones // DTV Palette - Grey Tones
for(byte i : 0..$f) { for(byte i : 0..$f) {
DTV_PALETTE[i] = i; DTV_PALETTE[i] = i;
@ -367,12 +371,71 @@ void mode_hicolecmchar() {
*BGCOL3 = $58; *BGCOL3 = $58;
*BGCOL4 = $5c; *BGCOL4 = $5c;
// Char Colors and screen chars // Char Colors and screen chars
byte* col=ECMCHAR_COLORS; byte* col=COLORS;
byte* ch=ECMCHAR_SCREEN; byte* ch=SCREEN;
for(byte cy: 0..24 ) { for(byte cy: 0..24 ) {
for(byte cx: 0..39) { for(byte cx: 0..39) {
*col++ = (cy&$f)<<4|(cx&$f); byte v = (cy&$f)<<4|(cx&$f);
*ch++ = (cy&$f)<<4|(cx&$f); *col++ = v;
*ch++ = v;
}
}
// Wait for keypress
while(true) {
if(keyboard_key_pressed(KEY_SPACE)!=0) {
return;
}
}
}
// High Color Multicolor Character Mode (LINEAR/CHUNK/COLDIS/BMM/ECM = 0, MCM/HICOL = 1)
// Resolution: 160x200 (320x200)
// Normal VIC Adressing:
// VicGfxData[16]: ( VicBank[1:0] & CharBase[2:0] & CharData[7:0] & RowCounter[2:0] )
//GfxData Pixel Shifter (1) if ColorData[3:3] = 0:
// - 0: 8bpp BgColor0[7:0]
// - 1: 8bpp ColorData[7:4] "0" & Color[2:0]
//GfxData Pixel Shifter (2) if ColorData[3:3] = 1:
// - 00: 8bpp BgColor0[7:0]
// - 01: 8bpp BgColor1[7:0]
// - 10: 8bpp BgColor2[7:0]
// - 11: 8bpp ColorData[7:4] "0" & Color[2:0]
void mode_hicolmcchar() {
const byte* SCREEN = $8000;
const byte* CHARSET = $9000; // Charset ROM
const byte* COLORS = $8400;
// DTV Graphics Bank
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
// DTV Color Bank
*DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
// DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON;
// VIC Graphics Bank
*CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
*CIA2_PORT_A = %00000011 ^ (byte)((word)CHARSET/$4000); // Set VIC Bank
// VIC Graphics Mode
*VIC_CONTROL = VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL|VIC_MCM;
// VIC Memory Pointers
*VIC_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)CHARSET&$3fff)/$400));
// DTV Palette - Grey Tones
for(byte i : 0..$f) {
DTV_PALETTE[i] = i;
}
// Screen colors
*BORDERCOL = 0;
*BGCOL1 = $50;
*BGCOL2 = $54;
*BGCOL3 = $58;
// Char Colors and screen chars
byte* col=COLORS;
byte* ch=SCREEN;
for(byte cy: 0..24 ) {
for(byte cx: 0..39) {
byte v = (cy&$f)<<4|(cx&$f);
*col++ = v;
*ch++ = v;
} }
} }
// Wait for keypress // Wait for keypress
@ -393,31 +456,31 @@ void mode_hicolecmchar() {
// - Plane A = 1 Plane B = 0: 8bpp "0000" & ColorData[3:0] // - Plane A = 1 Plane B = 0: 8bpp "0000" & ColorData[3:0]
// - Plane A = 1 Plane B = 1: 8bpp BgColor1[7:0] // - Plane A = 1 Plane B = 1: 8bpp BgColor1[7:0]
void mode_twoplanebitmap() { void mode_twoplanebitmap() {
const byte* TWOPLANE_PLANEA = $4000; const byte* PLANEA = $4000;
const byte* TWOPLANE_PLANEB = $6000; const byte* PLANEB = $6000;
const byte* TWOPLANE_COLORS = $8000; const byte* COLORS = $8000;
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON; *DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON;
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3; *VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL; *VIC_CONTROL2 = VIC_CSEL;
// Linear Graphics Plane A Counter // Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <TWOPLANE_PLANEA; *DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >TWOPLANE_PLANEA; *DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0; *DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1; *DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0; *DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0; *DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter // Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <TWOPLANE_PLANEB; *DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >TWOPLANE_PLANEB; *DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0; *DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 1; *DTV_PLANEB_STEP = 1;
*DTV_PLANEB_MODULO_LO = 0; *DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0; *DTV_PLANEB_MODULO_HI = 0;
// DTV Color Bank // DTV Color Bank
*DTV_COLOR_BANK_LO = <(TWOPLANE_COLORS/$400); *DTV_COLOR_BANK_LO = <(COLORS/$400);
*DTV_COLOR_BANK_HI = >(TWOPLANE_COLORS/$400); *DTV_COLOR_BANK_HI = >(COLORS/$400);
// DTV Palette - Grey Tones // DTV Palette - Grey Tones
for(byte i : 0..$f) { for(byte i : 0..$f) {
DTV_PALETTE[i] = i; DTV_PALETTE[i] = i;
@ -427,14 +490,14 @@ void mode_twoplanebitmap() {
*BGCOL1 = $70; // Color for bits 00 *BGCOL1 = $70; // Color for bits 00
*BGCOL2 = $d4; // Color for bits 11 *BGCOL2 = $d4; // Color for bits 11
// Colors for bits 01 / 10 // Colors for bits 01 / 10
byte* col=TWOPLANE_COLORS; byte* col=COLORS;
for(byte cy: 0..24 ) { for(byte cy: 0..24 ) {
for(byte cx: 0..39) { for(byte cx: 0..39) {
*col++ = (cy & $f)<<4 | (cx &$f); *col++ = (cy & $f)<<4 | (cx &$f);
} }
} }
// Graphics for Plane A - horizontal stripes // Graphics for Plane A - horizontal stripes
byte* gfxa = TWOPLANE_PLANEA; byte* gfxa = PLANEA;
for(byte ay : 0..199) { for(byte ay : 0..199) {
for (byte ax : 0..39) { for (byte ax : 0..39) {
if((ay&4)==0) { if((ay&4)==0) {
@ -445,7 +508,7 @@ void mode_twoplanebitmap() {
} }
} }
// Graphics for Plane B - vertical stripes // Graphics for Plane B - vertical stripes
byte* gfxb = TWOPLANE_PLANEB; byte* gfxb = PLANEB;
for(byte by : 0..199) { for(byte by : 0..199) {
for ( byte bx : 0..39) { for ( byte bx : 0..39) {
*gfxb++ = %00001111; *gfxb++ = %00001111;
@ -467,31 +530,31 @@ void mode_twoplanebitmap() {
// GfxData/PlaneA Pixel Shifter (2), CharData/PlaneB Pixel Shifter (2): // GfxData/PlaneA Pixel Shifter (2), CharData/PlaneB Pixel Shifter (2):
// - 8bpp color (ColorData[3:0],CharData/PlaneB[1:0], GfxData/PlaneA[1:0]) // - 8bpp color (ColorData[3:0],CharData/PlaneB[1:0], GfxData/PlaneA[1:0])
void mode_sixsfred() { void mode_sixsfred() {
const byte* SIXSFRED_PLANEA = $4000; const byte* PLANEA = $4000;
const byte* SIXSFRED_PLANEB = $6000; const byte* PLANEB = $6000;
const byte* SIXSFRED_COLORS = $8000; const byte* COLORS = $8000;
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON; *DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON;
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3; *VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_MCM|VIC_CSEL; *VIC_CONTROL2 = VIC_MCM|VIC_CSEL;
// Linear Graphics Plane A Counter // Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <SIXSFRED_PLANEA; *DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >SIXSFRED_PLANEA; *DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0; *DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1; *DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0; *DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0; *DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter // Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <SIXSFRED_PLANEB; *DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >SIXSFRED_PLANEB; *DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0; *DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 1; *DTV_PLANEB_STEP = 1;
*DTV_PLANEB_MODULO_LO = 0; *DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0; *DTV_PLANEB_MODULO_HI = 0;
// DTV Color Bank // DTV Color Bank
*DTV_COLOR_BANK_LO = <(SIXSFRED_COLORS/$400); *DTV_COLOR_BANK_LO = <(COLORS/$400);
*DTV_COLOR_BANK_HI = >(SIXSFRED_COLORS/$400); *DTV_COLOR_BANK_HI = >(COLORS/$400);
// DTV Palette - Grey Tones // DTV Palette - Grey Tones
for(byte i : 0..$f) { for(byte i : 0..$f) {
DTV_PALETTE[i] = i; DTV_PALETTE[i] = i;
@ -499,14 +562,14 @@ void mode_sixsfred() {
// Screen colors // Screen colors
*BORDERCOL = $00; *BORDERCOL = $00;
// Colors for high 4 bits of 8bpp // Colors for high 4 bits of 8bpp
byte* col=SIXSFRED_COLORS; byte* col=COLORS;
for(byte cy: 0..24 ) { for(byte cy: 0..24 ) {
for(byte cx: 0..39) { for(byte cx: 0..39) {
*col++ = (cx+cy) & $f; *col++ = (cx+cy) & $f;
} }
} }
// Graphics for Plane A () - horizontal stripes every 2 pixels // Graphics for Plane A () - horizontal stripes every 2 pixels
byte* gfxa = SIXSFRED_PLANEA; byte* gfxa = PLANEA;
byte[] row_bitmask = { %00000000, %01010101, %10101010, %11111111 }; byte[] row_bitmask = { %00000000, %01010101, %10101010, %11111111 };
for(byte ay : 0..199) { for(byte ay : 0..199) {
for (byte ax : 0..39) { for (byte ax : 0..39) {
@ -515,7 +578,7 @@ void mode_sixsfred() {
} }
} }
// Graphics for Plane B - vertical stripes every 2 pixels // Graphics for Plane B - vertical stripes every 2 pixels
byte* gfxb = SIXSFRED_PLANEB; byte* gfxb = PLANEB;
for(byte by : 0..199) { for(byte by : 0..199) {
for ( byte bx : 0..39) { for ( byte bx : 0..39) {
*gfxb++ = %00011011; *gfxb++ = %00011011;
@ -537,31 +600,31 @@ void mode_sixsfred() {
// PlaneA Pixel Shifter (2), PlaneB Pixel Shifter (2): // PlaneA Pixel Shifter (2), PlaneB Pixel Shifter (2):
// - 8bpp color (PlaneB[1:0],ColorData[5:4],PlaneA[1:0],ColorData[1:0]) // - 8bpp color (PlaneB[1:0],ColorData[5:4],PlaneA[1:0],ColorData[1:0])
void mode_sixsfred2() { void mode_sixsfred2() {
const byte* SIXSFRED2_PLANEA = $4000; const byte* PLANEA = $4000;
const byte* SIXSFRED2_PLANEB = $6000; const byte* PLANEB = $6000;
const byte* SIXSFRED2_COLORS = $8000; const byte* COLORS = $8000;
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_LINEAR_ADDRESSING_ON; *DTV_CONTROL = DTV_CONTROL_LINEAR_ADDRESSING_ON;
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3; *VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_MCM|VIC_CSEL; *VIC_CONTROL2 = VIC_MCM|VIC_CSEL;
// Linear Graphics Plane A Counter // Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <SIXSFRED2_PLANEA; *DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >SIXSFRED2_PLANEA; *DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0; *DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1; *DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0; *DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0; *DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter // Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <SIXSFRED2_PLANEB; *DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >SIXSFRED2_PLANEB; *DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0; *DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 1; *DTV_PLANEB_STEP = 1;
*DTV_PLANEB_MODULO_LO = 0; *DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0; *DTV_PLANEB_MODULO_HI = 0;
// DTV Color Bank // DTV Color Bank
*DTV_COLOR_BANK_LO = <(SIXSFRED2_COLORS/$400); *DTV_COLOR_BANK_LO = <(COLORS/$400);
*DTV_COLOR_BANK_HI = >(SIXSFRED2_COLORS/$400); *DTV_COLOR_BANK_HI = >(COLORS/$400);
// DTV Palette - Grey Tones // DTV Palette - Grey Tones
for(byte i : 0..$f) { for(byte i : 0..$f) {
DTV_PALETTE[i] = i; DTV_PALETTE[i] = i;
@ -569,14 +632,14 @@ void mode_sixsfred2() {
// Screen colors // Screen colors
*BORDERCOL = $00; *BORDERCOL = $00;
// Colors for high 4 bits of 8bpp // Colors for high 4 bits of 8bpp
byte* col=SIXSFRED2_COLORS; byte* col=COLORS;
for(byte cy: 0..24 ) { for(byte cy: 0..24 ) {
for(byte cx: 0..39) { for(byte cx: 0..39) {
*col++ = (cx&3)<<4|(cy&3); *col++ = (cx&3)<<4|(cy&3);
} }
} }
// Graphics for Plane A () - horizontal stripes every 2 pixels // Graphics for Plane A () - horizontal stripes every 2 pixels
byte* gfxa = SIXSFRED2_PLANEA; byte* gfxa = PLANEA;
byte[] row_bitmask = { %00000000, %01010101, %10101010, %11111111 }; byte[] row_bitmask = { %00000000, %01010101, %10101010, %11111111 };
for(byte ay : 0..199) { for(byte ay : 0..199) {
for (byte ax : 0..39) { for (byte ax : 0..39) {
@ -585,7 +648,7 @@ void mode_sixsfred2() {
} }
} }
// Graphics for Plane B - vertical stripes every 2 pixels // Graphics for Plane B - vertical stripes every 2 pixels
byte* gfxb = SIXSFRED2_PLANEB; byte* gfxb = PLANEB;
for(byte by : 0..199) { for(byte by : 0..199) {
for ( byte bx : 0..39) { for ( byte bx : 0..39) {
*gfxb++ = %00011011; *gfxb++ = %00011011;
@ -612,24 +675,24 @@ void mode_sixsfred2() {
//Counter B step and modulo should be set to 0, counter A modulo to 0 and counter A step to 1 for normal operation. //Counter B step and modulo should be set to 0, counter A modulo to 0 and counter A step to 1 for normal operation.
void mode_8bpppixelcell() { void mode_8bpppixelcell() {
// 8BPP Pixel Cell Screen (contains 40x25=1000 chars) // 8BPP Pixel Cell Screen (contains 40x25=1000 chars)
const byte* PIXELCELL8BPP_PLANEA = $3c00; const byte* PLANEA = $3c00;
// 8BPP Pixel Cell Charset (contains 256 64 byte chars) // 8BPP Pixel Cell Charset (contains 256 64 byte chars)
const byte* PIXELCELL8BPP_PLANEB = $4000; const byte* PLANEB = $4000;
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON|DTV_CONTROL_CHUNKY_ON; *DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON|DTV_CONTROL_CHUNKY_ON;
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_DEN|VIC_RSEL|3; *VIC_CONTROL = VIC_ECM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_MCM|VIC_CSEL; *VIC_CONTROL2 = VIC_MCM|VIC_CSEL;
// Linear Graphics Plane A Counter // Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <PIXELCELL8BPP_PLANEA; *DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >PIXELCELL8BPP_PLANEA; *DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0; *DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1; *DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0; *DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0; *DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter // Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <PIXELCELL8BPP_PLANEB; *DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >PIXELCELL8BPP_PLANEB; *DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0; *DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 0; *DTV_PLANEB_STEP = 0;
*DTV_PLANEB_MODULO_LO = 0; *DTV_PLANEB_MODULO_LO = 0;
@ -641,7 +704,7 @@ void mode_8bpppixelcell() {
DTV_PALETTE[i] = i; DTV_PALETTE[i] = i;
} }
// Screen Chars for Plane A (screen) - 16x16 repeating // Screen Chars for Plane A (screen) - 16x16 repeating
byte* gfxa = PIXELCELL8BPP_PLANEA; byte* gfxa = PLANEA;
for(byte ay : 0..24) { for(byte ay : 0..24) {
for (byte ax : 0..39) { for (byte ax : 0..39) {
*gfxa++ = (ay & $f)<<4 | (ax & $f); *gfxa++ = (ay & $f)<<4 | (ax & $f);
@ -650,7 +713,7 @@ void mode_8bpppixelcell() {
// 8bpp cells for Plane B (charset) - ROM charset with 256 colors // 8bpp cells for Plane B (charset) - ROM charset with 256 colors
*PROCPORT = $32; *PROCPORT = $32;
byte* CHARGEN = $d000; byte* CHARGEN = $d000;
byte* gfxb = PIXELCELL8BPP_PLANEB; byte* gfxb = PLANEB;
byte* chargen = CHARGEN; byte* chargen = CHARGEN;
byte col = 0; byte col = 0;
for(byte ch : $00..$ff) { for(byte ch : $00..$ff) {
@ -685,16 +748,16 @@ void mode_8bpppixelcell() {
// To set up a linear video frame buffer the step size must be set to 8. // To set up a linear video frame buffer the step size must be set to 8.
void mode_8bppchunkybmm() { void mode_8bppchunkybmm() {
// 8BPP Chunky Bitmap (contains 8bpp pixels) // 8BPP Chunky Bitmap (contains 8bpp pixels)
const dword CHUNKYBMM8BPP_PLANEB = $20000; const dword PLANEB = $20000;
// DTV Graphics Mode // DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON | DTV_CONTROL_CHUNKY_ON | DTV_CONTROL_COLORRAM_OFF; *DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON | DTV_CONTROL_CHUNKY_ON | DTV_CONTROL_COLORRAM_OFF;
// VIC Graphics Mode // VIC Graphics Mode
*VIC_CONTROL = VIC_ECM | VIC_DEN | VIC_RSEL | 3; *VIC_CONTROL = VIC_ECM | VIC_DEN | VIC_RSEL | 3;
*VIC_CONTROL2 = VIC_MCM | VIC_CSEL; *VIC_CONTROL2 = VIC_MCM | VIC_CSEL;
// Linear Graphics Plane B Counter // Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = < < CHUNKYBMM8BPP_PLANEB; *DTV_PLANEB_START_LO = < < PLANEB;
*DTV_PLANEB_START_MI = > < CHUNKYBMM8BPP_PLANEB; *DTV_PLANEB_START_MI = > < PLANEB;
*DTV_PLANEB_START_HI = < > CHUNKYBMM8BPP_PLANEB; *DTV_PLANEB_START_HI = < > PLANEB;
*DTV_PLANEB_STEP = 8; *DTV_PLANEB_STEP = 8;
*DTV_PLANEB_MODULO_LO = 0; *DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0; *DTV_PLANEB_MODULO_HI = 0;
@ -706,7 +769,7 @@ void mode_8bppchunkybmm() {
} }
// 320x200 8bpp pixels for Plane B // 320x200 8bpp pixels for Plane B
byte gfxbCpuBank = (byte)(CHUNKYBMM8BPP_PLANEB/$4000); byte gfxbCpuBank = (byte)(PLANEB/$4000);
dtvSetCpuBankSegment1(gfxbCpuBank++); dtvSetCpuBankSegment1(gfxbCpuBank++);
byte* gfxb = $4000; byte* gfxb = $4000;
for(byte y : 0..199) { for(byte y : 0..199) {

View File

@ -57,6 +57,7 @@
.const KEY_6 = $13 .const KEY_6 = $13
.const KEY_C = $14 .const KEY_C = $14
.const KEY_7 = $18 .const KEY_7 = $18
.const KEY_8 = $1b
.const KEY_B = $1c .const KEY_B = $1c
.const KEY_1 = $38 .const KEY_1 = $38
.const KEY_2 = $3b .const KEY_2 = $3b
@ -73,10 +74,10 @@ main: {
jmp b2 jmp b2
} }
menu: { menu: {
.label MENU_SCREEN = $8000 .label SCREEN = $8000
.label MENU_CHARSET = $9800 .label CHARSET = $9800
.label c = 2 .label c = 2
lda #($ffffffff&MENU_CHARSET)/$10000 lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK sta DTV_GRAPHICS_VIC_BANK
lda #DTV_COLOR_BANK_DEFAULT/$400 lda #DTV_COLOR_BANK_DEFAULT/$400
sta DTV_COLOR_BANK_LO sta DTV_COLOR_BANK_LO
@ -85,13 +86,13 @@ menu: {
sta DTV_CONTROL sta DTV_CONTROL
lda #3 lda #3
sta CIA2_PORT_A_DDR sta CIA2_PORT_A_DDR
lda #3^MENU_CHARSET/$4000 lda #3^CHARSET/$4000
sta CIA2_PORT_A sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|3 lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_CSEL lda #VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #(MENU_SCREEN&$3fff)/$40|(MENU_CHARSET&$3fff)/$400 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY sta VIC_MEMORY
ldx #0 ldx #0
b1: b1:
@ -146,7 +147,7 @@ menu: {
jsr keyboard_key_pressed jsr keyboard_key_pressed
cmp #0 cmp #0
beq b8 beq b8
jsr mode_mcstdchar jsr mode_mcchar
jmp breturn jmp breturn
b8: b8:
ldx #KEY_6 ldx #KEY_6
@ -163,34 +164,41 @@ menu: {
jsr mode_hicolecmchar jsr mode_hicolecmchar
jmp breturn jmp breturn
b10: b10:
ldx #KEY_A ldx #KEY_8
jsr keyboard_key_pressed jsr keyboard_key_pressed
cmp #0 cmp #0
beq b11 beq b11
jsr mode_sixsfred2 jsr mode_hicolmcchar
jmp breturn jmp breturn
b11: b11:
ldx #KEY_B ldx #KEY_A
jsr keyboard_key_pressed jsr keyboard_key_pressed
cmp #0 cmp #0
beq b12 beq b12
jsr mode_twoplanebitmap jsr mode_sixsfred2
jmp breturn jmp breturn
b12: b12:
ldx #KEY_C ldx #KEY_B
jsr keyboard_key_pressed jsr keyboard_key_pressed
cmp #0 cmp #0
beq b13 beq b13
jsr mode_sixsfred jsr mode_twoplanebitmap
jmp breturn jmp breturn
b13: b13:
ldx #KEY_D ldx #KEY_C
jsr keyboard_key_pressed jsr keyboard_key_pressed
cmp #0 cmp #0
beq b14 beq b14
jsr mode_8bpppixelcell jsr mode_sixsfred
jmp breturn jmp breturn
b14: b14:
ldx #KEY_D
jsr keyboard_key_pressed
cmp #0
beq b15
jsr mode_8bpppixelcell
jmp breturn
b15:
ldx #KEY_E ldx #KEY_E
jsr keyboard_key_pressed jsr keyboard_key_pressed
cmp #0 cmp #0
@ -201,7 +209,7 @@ menu: {
jmp breturn jmp breturn
} }
mode_8bppchunkybmm: { mode_8bppchunkybmm: {
.const CHUNKYBMM8BPP_PLANEB = $20000 .const PLANEB = $20000
.label _20 = $a .label _20 = $a
.label gfxb = 5 .label gfxb = 5
.label x = 2 .label x = 2
@ -212,11 +220,11 @@ mode_8bppchunkybmm: {
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #CHUNKYBMM8BPP_PLANEB&$ffff lda #PLANEB&$ffff
sta DTV_PLANEB_START_LO sta DTV_PLANEB_START_LO
lda #0 lda #0
sta DTV_PLANEB_START_MI sta DTV_PLANEB_START_MI
lda #CHUNKYBMM8BPP_PLANEB>>$10 lda #PLANEB>>$10
sta DTV_PLANEB_START_HI sta DTV_PLANEB_START_HI
lda #8 lda #8
sta DTV_PLANEB_STEP sta DTV_PLANEB_STEP
@ -231,9 +239,9 @@ mode_8bppchunkybmm: {
inx inx
cpx #$10 cpx #$10
bne b1 bne b1
lda #CHUNKYBMM8BPP_PLANEB/$4000 lda #PLANEB/$4000
jsr dtvSetCpuBankSegment1 jsr dtvSetCpuBankSegment1
ldx #CHUNKYBMM8BPP_PLANEB/$4000+1 ldx #PLANEB/$4000+1
lda #0 lda #0
sta y sta y
lda #<$4000 lda #<$4000
@ -328,8 +336,8 @@ dtvSetCpuBankSegment1: {
rts rts
} }
mode_8bpppixelcell: { mode_8bpppixelcell: {
.label PIXELCELL8BPP_PLANEA = $3c00 .label PLANEA = $3c00
.label PIXELCELL8BPP_PLANEB = $4000 .label PLANEB = $4000
.label _12 = 7 .label _12 = 7
.label gfxa = 2 .label gfxa = 2
.label ay = 4 .label ay = 4
@ -345,9 +353,9 @@ mode_8bpppixelcell: {
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #<PIXELCELL8BPP_PLANEA lda #<PLANEA
sta DTV_PLANEA_START_LO sta DTV_PLANEA_START_LO
lda #>PIXELCELL8BPP_PLANEA lda #>PLANEA
sta DTV_PLANEA_START_MI sta DTV_PLANEA_START_MI
lda #0 lda #0
sta DTV_PLANEA_START_HI sta DTV_PLANEA_START_HI
@ -356,9 +364,9 @@ mode_8bpppixelcell: {
lda #0 lda #0
sta DTV_PLANEA_MODULO_LO sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI sta DTV_PLANEA_MODULO_HI
lda #<PIXELCELL8BPP_PLANEB lda #<PLANEB
sta DTV_PLANEB_START_LO sta DTV_PLANEB_START_LO
lda #>PIXELCELL8BPP_PLANEB lda #>PLANEB
sta DTV_PLANEB_START_MI sta DTV_PLANEB_START_MI
lda #0 lda #0
sta DTV_PLANEB_START_HI sta DTV_PLANEB_START_HI
@ -373,9 +381,9 @@ mode_8bpppixelcell: {
inx inx
cpx #$10 cpx #$10
bne b1 bne b1
lda #<PIXELCELL8BPP_PLANEA lda #<PLANEA
sta gfxa sta gfxa
lda #>PIXELCELL8BPP_PLANEA lda #>PLANEA
sta gfxa+1 sta gfxa+1
lda #0 lda #0
sta ay sta ay
@ -410,9 +418,9 @@ mode_8bpppixelcell: {
lda #0 lda #0
sta ch sta ch
sta col sta col
lda #<PIXELCELL8BPP_PLANEB lda #<PLANEB
sta gfxb sta gfxb
lda #>PIXELCELL8BPP_PLANEB lda #>PLANEB
sta gfxb+1 sta gfxb+1
lda #<$d000 lda #<$d000
sta chargen sta chargen
@ -471,9 +479,9 @@ mode_8bpppixelcell: {
jmp breturn jmp breturn
} }
mode_sixsfred: { mode_sixsfred: {
.label SIXSFRED_PLANEA = $4000 .label PLANEA = $4000
.label SIXSFRED_PLANEB = $6000 .label PLANEB = $6000
.label SIXSFRED_COLORS = $8000 .label COLORS = $8000
.label col = 2 .label col = 2
.label cy = 4 .label cy = 4
.label gfxa = 2 .label gfxa = 2
@ -486,9 +494,9 @@ mode_sixsfred: {
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #<SIXSFRED_PLANEA lda #<PLANEA
sta DTV_PLANEA_START_LO sta DTV_PLANEA_START_LO
lda #>SIXSFRED_PLANEA lda #>PLANEA
sta DTV_PLANEA_START_MI sta DTV_PLANEA_START_MI
lda #0 lda #0
sta DTV_PLANEA_START_HI sta DTV_PLANEA_START_HI
@ -497,9 +505,9 @@ mode_sixsfred: {
lda #0 lda #0
sta DTV_PLANEA_MODULO_LO sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI sta DTV_PLANEA_MODULO_HI
lda #<SIXSFRED_PLANEB lda #<PLANEB
sta DTV_PLANEB_START_LO sta DTV_PLANEB_START_LO
lda #>SIXSFRED_PLANEB lda #>PLANEB
sta DTV_PLANEB_START_MI sta DTV_PLANEB_START_MI
lda #0 lda #0
sta DTV_PLANEB_START_HI sta DTV_PLANEB_START_HI
@ -508,9 +516,9 @@ mode_sixsfred: {
lda #0 lda #0
sta DTV_PLANEB_MODULO_LO sta DTV_PLANEB_MODULO_LO
sta DTV_PLANEB_MODULO_HI sta DTV_PLANEB_MODULO_HI
lda #<SIXSFRED_COLORS/$400 lda #<COLORS/$400
sta DTV_COLOR_BANK_LO sta DTV_COLOR_BANK_LO
lda #>SIXSFRED_COLORS/$400 lda #>COLORS/$400
sta DTV_COLOR_BANK_HI sta DTV_COLOR_BANK_HI
ldx #0 ldx #0
b1: b1:
@ -521,9 +529,9 @@ mode_sixsfred: {
bne b1 bne b1
lda #0 lda #0
sta BORDERCOL sta BORDERCOL
lda #<SIXSFRED_COLORS lda #<COLORS
sta col sta col
lda #>SIXSFRED_COLORS lda #>COLORS
sta col+1 sta col+1
lda #0 lda #0
sta cy sta cy
@ -547,9 +555,9 @@ mode_sixsfred: {
lda cy lda cy
cmp #$19 cmp #$19
bne b2 bne b2
lda #<SIXSFRED_PLANEA lda #<PLANEA
sta gfxa sta gfxa
lda #>SIXSFRED_PLANEA lda #>PLANEA
sta gfxa+1 sta gfxa+1
lda #0 lda #0
sta ay sta ay
@ -576,9 +584,9 @@ mode_sixsfred: {
bne b4 bne b4
lda #0 lda #0
sta by sta by
lda #<SIXSFRED_PLANEB lda #<PLANEB
sta gfxb sta gfxb
lda #>SIXSFRED_PLANEB lda #>PLANEB
sta gfxb+1 sta gfxb+1
b6: b6:
ldx #0 ldx #0
@ -609,9 +617,9 @@ mode_sixsfred: {
row_bitmask: .byte 0, $55, $aa, $ff row_bitmask: .byte 0, $55, $aa, $ff
} }
mode_twoplanebitmap: { mode_twoplanebitmap: {
.label TWOPLANE_PLANEA = $4000 .label PLANEA = $4000
.label TWOPLANE_PLANEB = $6000 .label PLANEB = $6000
.label TWOPLANE_COLORS = $8000 .label COLORS = $8000
.label _15 = 7 .label _15 = 7
.label col = 2 .label col = 2
.label cy = 4 .label cy = 4
@ -625,9 +633,9 @@ mode_twoplanebitmap: {
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_CSEL lda #VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #<TWOPLANE_PLANEA lda #<PLANEA
sta DTV_PLANEA_START_LO sta DTV_PLANEA_START_LO
lda #>TWOPLANE_PLANEA lda #>PLANEA
sta DTV_PLANEA_START_MI sta DTV_PLANEA_START_MI
lda #0 lda #0
sta DTV_PLANEA_START_HI sta DTV_PLANEA_START_HI
@ -636,9 +644,9 @@ mode_twoplanebitmap: {
lda #0 lda #0
sta DTV_PLANEA_MODULO_LO sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI sta DTV_PLANEA_MODULO_HI
lda #<TWOPLANE_PLANEB lda #<PLANEB
sta DTV_PLANEB_START_LO sta DTV_PLANEB_START_LO
lda #>TWOPLANE_PLANEB lda #>PLANEB
sta DTV_PLANEB_START_MI sta DTV_PLANEB_START_MI
lda #0 lda #0
sta DTV_PLANEB_START_HI sta DTV_PLANEB_START_HI
@ -647,9 +655,9 @@ mode_twoplanebitmap: {
lda #0 lda #0
sta DTV_PLANEB_MODULO_LO sta DTV_PLANEB_MODULO_LO
sta DTV_PLANEB_MODULO_HI sta DTV_PLANEB_MODULO_HI
lda #<TWOPLANE_COLORS/$400 lda #<COLORS/$400
sta DTV_COLOR_BANK_LO sta DTV_COLOR_BANK_LO
lda #>TWOPLANE_COLORS/$400 lda #>COLORS/$400
sta DTV_COLOR_BANK_HI sta DTV_COLOR_BANK_HI
ldx #0 ldx #0
b1: b1:
@ -664,9 +672,9 @@ mode_twoplanebitmap: {
sta BGCOL1 sta BGCOL1
lda #$d4 lda #$d4
sta BGCOL2 sta BGCOL2
lda #<TWOPLANE_COLORS lda #<COLORS
sta col sta col
lda #>TWOPLANE_COLORS lda #>COLORS
sta col+1 sta col+1
lda #0 lda #0
sta cy sta cy
@ -696,9 +704,9 @@ mode_twoplanebitmap: {
lda cy lda cy
cmp #$19 cmp #$19
bne b2 bne b2
lda #<TWOPLANE_PLANEA lda #<PLANEA
sta gfxa sta gfxa
lda #>TWOPLANE_PLANEA lda #>PLANEA
sta gfxa+1 sta gfxa+1
lda #0 lda #0
sta ay sta ay
@ -726,9 +734,9 @@ mode_twoplanebitmap: {
bne b4 bne b4
lda #0 lda #0
sta by sta by
lda #<TWOPLANE_PLANEB lda #<PLANEB
sta gfxb sta gfxb
lda #>TWOPLANE_PLANEB lda #>PLANEB
sta gfxb+1 sta gfxb+1
b8: b8:
ldx #0 ldx #0
@ -767,9 +775,9 @@ mode_twoplanebitmap: {
jmp b7 jmp b7
} }
mode_sixsfred2: { mode_sixsfred2: {
.label SIXSFRED2_PLANEA = $4000 .label PLANEA = $4000
.label SIXSFRED2_PLANEB = $6000 .label PLANEB = $6000
.label SIXSFRED2_COLORS = $8000 .label COLORS = $8000
.label _15 = 7 .label _15 = 7
.label col = 2 .label col = 2
.label cy = 4 .label cy = 4
@ -783,9 +791,9 @@ mode_sixsfred2: {
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #<SIXSFRED2_PLANEA lda #<PLANEA
sta DTV_PLANEA_START_LO sta DTV_PLANEA_START_LO
lda #>SIXSFRED2_PLANEA lda #>PLANEA
sta DTV_PLANEA_START_MI sta DTV_PLANEA_START_MI
lda #0 lda #0
sta DTV_PLANEA_START_HI sta DTV_PLANEA_START_HI
@ -794,9 +802,9 @@ mode_sixsfred2: {
lda #0 lda #0
sta DTV_PLANEA_MODULO_LO sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI sta DTV_PLANEA_MODULO_HI
lda #<SIXSFRED2_PLANEB lda #<PLANEB
sta DTV_PLANEB_START_LO sta DTV_PLANEB_START_LO
lda #>SIXSFRED2_PLANEB lda #>PLANEB
sta DTV_PLANEB_START_MI sta DTV_PLANEB_START_MI
lda #0 lda #0
sta DTV_PLANEB_START_HI sta DTV_PLANEB_START_HI
@ -805,9 +813,9 @@ mode_sixsfred2: {
lda #0 lda #0
sta DTV_PLANEB_MODULO_LO sta DTV_PLANEB_MODULO_LO
sta DTV_PLANEB_MODULO_HI sta DTV_PLANEB_MODULO_HI
lda #<SIXSFRED2_COLORS/$400 lda #<COLORS/$400
sta DTV_COLOR_BANK_LO sta DTV_COLOR_BANK_LO
lda #>SIXSFRED2_COLORS/$400 lda #>COLORS/$400
sta DTV_COLOR_BANK_HI sta DTV_COLOR_BANK_HI
ldx #0 ldx #0
b1: b1:
@ -818,9 +826,9 @@ mode_sixsfred2: {
bne b1 bne b1
lda #0 lda #0
sta BORDERCOL sta BORDERCOL
lda #<SIXSFRED2_COLORS lda #<COLORS
sta col sta col
lda #>SIXSFRED2_COLORS lda #>COLORS
sta col+1 sta col+1
lda #0 lda #0
sta cy sta cy
@ -850,9 +858,9 @@ mode_sixsfred2: {
lda cy lda cy
cmp #$19 cmp #$19
bne b2 bne b2
lda #<SIXSFRED2_PLANEA lda #<PLANEA
sta gfxa sta gfxa
lda #>SIXSFRED2_PLANEA lda #>PLANEA
sta gfxa+1 sta gfxa+1
lda #0 lda #0
sta ay sta ay
@ -879,9 +887,9 @@ mode_sixsfred2: {
bne b4 bne b4
lda #0 lda #0
sta by sta by
lda #<SIXSFRED2_PLANEB lda #<PLANEB
sta gfxb sta gfxb
lda #>SIXSFRED2_PLANEB lda #>PLANEB
sta gfxb+1 sta gfxb+1
b6: b6:
ldx #0 ldx #0
@ -911,18 +919,17 @@ mode_sixsfred2: {
jmp breturn jmp breturn
row_bitmask: .byte 0, $55, $aa, $ff row_bitmask: .byte 0, $55, $aa, $ff
} }
mode_hicolecmchar: { mode_hicolmcchar: {
.label ECMCHAR_SCREEN = $8000 .label SCREEN = $8000
.label ECMCHAR_CHARSET = $9000 .label CHARSET = $9000
.label ECMCHAR_COLORS = $8400 .label COLORS = $8400
.label _26 = 7 .label _26 = 7
.label _30 = 7
.label col = 2 .label col = 2
.label ch = 5 .label ch = 5
.label cy = 4 .label cy = 4
lda #($ffffffff&ECMCHAR_CHARSET)/$10000 lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK sta DTV_GRAPHICS_VIC_BANK
lda #ECMCHAR_COLORS/$400 lda #COLORS/$400
sta DTV_COLOR_BANK_LO sta DTV_COLOR_BANK_LO
lda #0 lda #0
sta DTV_COLOR_BANK_HI sta DTV_COLOR_BANK_HI
@ -930,13 +937,13 @@ mode_hicolecmchar: {
sta DTV_CONTROL sta DTV_CONTROL
lda #3 lda #3
sta CIA2_PORT_A_DDR sta CIA2_PORT_A_DDR
lda #3^ECMCHAR_CHARSET/$4000 lda #3^CHARSET/$4000
sta CIA2_PORT_A sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|VIC_ECM|3 lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_CSEL lda #VIC_CSEL|VIC_MCM
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #(ECMCHAR_SCREEN&$3fff)/$40|(ECMCHAR_CHARSET&$3fff)/$400 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY sta VIC_MEMORY
ldx #0 ldx #0
b1: b1:
@ -953,15 +960,13 @@ mode_hicolecmchar: {
sta BGCOL2 sta BGCOL2
lda #$58 lda #$58
sta BGCOL3 sta BGCOL3
lda #$5c lda #<SCREEN
sta BGCOL4
lda #<ECMCHAR_SCREEN
sta ch sta ch
lda #>ECMCHAR_SCREEN lda #>SCREEN
sta ch+1 sta ch+1
lda #<ECMCHAR_COLORS lda #<COLORS
sta col sta col
lda #>ECMCHAR_COLORS lda #>COLORS
sta col+1 sta col+1
lda #0 lda #0
sta cy sta cy
@ -984,16 +989,101 @@ mode_hicolecmchar: {
bne !+ bne !+
inc col+1 inc col+1
!: !:
ldy #0
sta (ch),y
inc ch
bne !+
inc ch+1
!:
inx
cpx #$28
bne b3
inc cy
lda cy
cmp #$19
bne b2
jmp b5
breturn:
rts
b5:
ldx #KEY_SPACE
jsr keyboard_key_pressed
cmp #0
beq b5
jmp breturn
}
mode_hicolecmchar: {
.label SCREEN = $8000
.label CHARSET = $9000
.label COLORS = $8400
.label _26 = 7
.label col = 2
.label ch = 5
.label cy = 4
lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK
lda #COLORS/$400
sta DTV_COLOR_BANK_LO
lda #0
sta DTV_COLOR_BANK_HI
lda #DTV_CONTROL_HIGHCOLOR_ON
sta DTV_CONTROL
lda #3
sta CIA2_PORT_A_DDR
lda #3^CHARSET/$4000
sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|VIC_ECM|3
sta VIC_CONTROL
lda #VIC_CSEL
sta VIC_CONTROL2
lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY
ldx #0
b1:
txa
sta DTV_PALETTE,x
inx
cpx #$10
bne b1
lda #0
sta BORDERCOL
lda #$50
sta BGCOL1
lda #$54
sta BGCOL2
lda #$58
sta BGCOL3
lda #$5c
sta BGCOL4
lda #<SCREEN
sta ch
lda #>SCREEN
sta ch+1
lda #<COLORS
sta col
lda #>COLORS
sta col+1
lda #0
sta cy
b2:
ldx #0
b3:
lda #$f lda #$f
and cy and cy
asl asl
asl asl
asl asl
asl asl
sta _30 sta _26
txa txa
and #$f and #$f
ora _30 ora _26
ldy #0
sta (col),y
inc col
bne !+
inc col+1
!:
ldy #0 ldy #0
sta (ch),y sta (ch),y
inc ch inc ch
@ -1018,16 +1108,16 @@ mode_hicolecmchar: {
jmp breturn jmp breturn
} }
mode_hicolstdchar: { mode_hicolstdchar: {
.label HICOLSTDCHAR_SCREEN = $8000 .label SCREEN = $8000
.label HICOLSTDCHAR_CHARSET = $9000 .label CHARSET = $9000
.label HICOLSTDCHAR_COLORS = $8400 .label COLORS = $8400
.label _25 = 7 .label _25 = 7
.label col = 2 .label col = 2
.label ch = 5 .label ch = 5
.label cy = 4 .label cy = 4
lda #($ffffffff&HICOLSTDCHAR_CHARSET)/$10000 lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK sta DTV_GRAPHICS_VIC_BANK
lda #HICOLSTDCHAR_COLORS/$400 lda #COLORS/$400
sta DTV_COLOR_BANK_LO sta DTV_COLOR_BANK_LO
lda #0 lda #0
sta DTV_COLOR_BANK_HI sta DTV_COLOR_BANK_HI
@ -1035,13 +1125,13 @@ mode_hicolstdchar: {
sta DTV_CONTROL sta DTV_CONTROL
lda #3 lda #3
sta CIA2_PORT_A_DDR sta CIA2_PORT_A_DDR
lda #3^HICOLSTDCHAR_CHARSET/$4000 lda #3^CHARSET/$4000
sta CIA2_PORT_A sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|3 lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_CSEL lda #VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #(HICOLSTDCHAR_SCREEN&$3fff)/$40|(HICOLSTDCHAR_CHARSET&$3fff)/$400 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY sta VIC_MEMORY
ldx #0 ldx #0
b1: b1:
@ -1053,13 +1143,13 @@ mode_hicolstdchar: {
lda #0 lda #0
sta BGCOL sta BGCOL
sta BORDERCOL sta BORDERCOL
lda #<HICOLSTDCHAR_SCREEN lda #<SCREEN
sta ch sta ch
lda #>HICOLSTDCHAR_SCREEN lda #>SCREEN
sta ch+1 sta ch+1
lda #<HICOLSTDCHAR_COLORS lda #<COLORS
sta col sta col
lda #>HICOLSTDCHAR_COLORS lda #>COLORS
sta col+1 sta col+1
lda #0 lda #0
sta cy sta cy
@ -1105,7 +1195,7 @@ mode_hicolstdchar: {
beq b5 beq b5
jmp breturn jmp breturn
} }
mode_mcstdchar: { mode_mcchar: {
.label SCREEN = $8000 .label SCREEN = $8000
.label CHARSET = $9000 .label CHARSET = $9000
.label COLORS = $8400 .label COLORS = $8400
@ -1299,29 +1389,29 @@ mode_ecmchar: {
jmp breturn jmp breturn
} }
mode_stdchar: { mode_stdchar: {
.label STDCHAR_SCREEN = $8000 .label SCREEN = $8000
.label STDCHAR_CHARSET = $9000 .label CHARSET = $9000
.label STDCHAR_COLORS = $8400 .label COLORS = $8400
.label _27 = 7 .label _27 = 7
.label col = 2 .label col = 2
.label ch = 5 .label ch = 5
.label cy = 4 .label cy = 4
lda #($ffffffff&STDCHAR_CHARSET)/$10000 lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK sta DTV_GRAPHICS_VIC_BANK
lda #STDCHAR_COLORS/$400 lda #COLORS/$400
sta DTV_COLOR_BANK_LO sta DTV_COLOR_BANK_LO
lda #0 lda #0
sta DTV_COLOR_BANK_HI sta DTV_COLOR_BANK_HI
sta DTV_CONTROL sta DTV_CONTROL
lda #3 lda #3
sta CIA2_PORT_A_DDR sta CIA2_PORT_A_DDR
lda #3^STDCHAR_CHARSET/$4000 lda #3^CHARSET/$4000
sta CIA2_PORT_A sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|3 lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL sta VIC_CONTROL
lda #VIC_CSEL lda #VIC_CSEL
sta VIC_CONTROL2 sta VIC_CONTROL2
lda #(STDCHAR_SCREEN&$3fff)/$40|(STDCHAR_CHARSET&$3fff)/$400 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY sta VIC_MEMORY
ldx #0 ldx #0
b1: b1:
@ -1333,13 +1423,13 @@ mode_stdchar: {
lda #0 lda #0
sta BGCOL sta BGCOL
sta BORDERCOL sta BORDERCOL
lda #<STDCHAR_SCREEN lda #<SCREEN
sta ch sta ch
lda #>STDCHAR_SCREEN lda #>SCREEN
sta ch+1 sta ch+1
lda #<STDCHAR_COLORS lda #<COLORS
sta col sta col
lda #>STDCHAR_COLORS lda #>COLORS
sta col+1 sta col+1
lda #0 lda #0
sta cy sta cy
@ -1391,13 +1481,13 @@ mode_stdchar: {
} }
print_str_lines: { print_str_lines: {
.label str = 2 .label str = 2
lda #<menu.MENU_SCREEN lda #<menu.SCREEN
sta print_line_cursor sta print_line_cursor
lda #>menu.MENU_SCREEN lda #>menu.SCREEN
sta print_line_cursor+1 sta print_line_cursor+1
lda #<menu.MENU_SCREEN lda #<menu.SCREEN
sta print_char_cursor sta print_char_cursor
lda #>menu.MENU_SCREEN lda #>menu.SCREEN
sta print_char_cursor+1 sta print_char_cursor+1
lda #<MENU_TEXT lda #<MENU_TEXT
sta str sta str
@ -1455,9 +1545,9 @@ print_ln: {
} }
print_cls: { print_cls: {
.label sc = 2 .label sc = 2
lda #<menu.MENU_SCREEN lda #<menu.SCREEN
sta sc sta sc
lda #>menu.MENU_SCREEN lda #>menu.SCREEN
sta sc+1 sta sc+1
b1: b1:
lda #' ' lda #' '
@ -1468,10 +1558,10 @@ print_cls: {
inc sc+1 inc sc+1
!: !:
lda sc+1 lda sc+1
cmp #>menu.MENU_SCREEN+$3e8 cmp #>menu.SCREEN+$3e8
bne b1 bne b1
lda sc lda sc
cmp #<menu.MENU_SCREEN+$3e8 cmp #<menu.SCREEN+$3e8
bne b1 bne b1
rts rts
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
(label) @31 (label) @32
(label) @begin (label) @begin
(label) @end (label) @end
(byte*) BGCOL (byte*) BGCOL
@ -89,6 +89,8 @@
(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19 (const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19
(byte) KEY_7 (byte) KEY_7
(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) 24 (const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) 24
(byte) KEY_8
(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) 27
(byte) KEY_A (byte) KEY_A
(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10 (const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10
(byte) KEY_B (byte) KEY_B
@ -139,9 +141,9 @@
(byte) keyboard_key_pressed::colidx (byte) keyboard_key_pressed::colidx
(byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666 (byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666
(byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::key
(byte) keyboard_key_pressed::key#20 reg byte x 2.0 (byte) keyboard_key_pressed::key#22 reg byte x 2.0
(byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::return
(byte) keyboard_key_pressed::return#0 reg byte a 91.90909090909093 (byte) keyboard_key_pressed::return#0 reg byte a 92.66666666666666
(byte) keyboard_key_pressed::return#10 reg byte a 202.0 (byte) keyboard_key_pressed::return#10 reg byte a 202.0
(byte) keyboard_key_pressed::return#11 reg byte a 202.0 (byte) keyboard_key_pressed::return#11 reg byte a 202.0
(byte) keyboard_key_pressed::return#12 reg byte a 202.0 (byte) keyboard_key_pressed::return#12 reg byte a 202.0
@ -155,13 +157,15 @@
(byte) keyboard_key_pressed::return#2 reg byte a 202.0 (byte) keyboard_key_pressed::return#2 reg byte a 202.0
(byte) keyboard_key_pressed::return#20 reg byte a 202.0 (byte) keyboard_key_pressed::return#20 reg byte a 202.0
(byte) keyboard_key_pressed::return#21 reg byte a 202.0 (byte) keyboard_key_pressed::return#21 reg byte a 202.0
(byte) keyboard_key_pressed::return#24 reg byte a 202.0 (byte) keyboard_key_pressed::return#22 reg byte a 202.0
(byte) keyboard_key_pressed::return#25 reg byte a 202.0 (byte) keyboard_key_pressed::return#23 reg byte a 202.0
(byte) keyboard_key_pressed::return#26 reg byte a 202.0 (byte) keyboard_key_pressed::return#26 reg byte a 202.0
(byte) keyboard_key_pressed::return#27 reg byte a 202.0 (byte) keyboard_key_pressed::return#27 reg byte a 202.0
(byte) keyboard_key_pressed::return#28 reg byte a 202.0 (byte) keyboard_key_pressed::return#28 reg byte a 202.0
(byte) keyboard_key_pressed::return#29 reg byte a 202.0 (byte) keyboard_key_pressed::return#29 reg byte a 202.0
(byte) keyboard_key_pressed::return#30 reg byte a 202.0 (byte) keyboard_key_pressed::return#30 reg byte a 202.0
(byte) keyboard_key_pressed::return#31 reg byte a 202.0
(byte) keyboard_key_pressed::return#32 reg byte a 202.0
(byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx
(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0
(byte[]) keyboard_matrix_col_bitmask (byte[]) keyboard_matrix_col_bitmask
@ -191,47 +195,51 @@
(byte~) menu::$57 reg byte a 202.0 (byte~) menu::$57 reg byte a 202.0
(byte~) menu::$61 reg byte a 202.0 (byte~) menu::$61 reg byte a 202.0
(byte~) menu::$65 reg byte a 202.0 (byte~) menu::$65 reg byte a 202.0
(byte~) menu::$69 reg byte a 202.0
(label) menu::@1 (label) menu::@1
(label) menu::@10 (label) menu::@10
(label) menu::@11 (label) menu::@11
(label) menu::@12 (label) menu::@12
(label) menu::@13 (label) menu::@13
(label) menu::@14 (label) menu::@14
(label) menu::@17 (label) menu::@15
(label) menu::@18
(label) menu::@2 (label) menu::@2
(label) menu::@20 (label) menu::@21
(label) menu::@22 (label) menu::@23
(label) menu::@24 (label) menu::@25
(label) menu::@26 (label) menu::@27
(label) menu::@28 (label) menu::@29
(label) menu::@3 (label) menu::@3
(label) menu::@30 (label) menu::@31
(label) menu::@32 (label) menu::@33
(label) menu::@34 (label) menu::@35
(label) menu::@36 (label) menu::@37
(label) menu::@38 (label) menu::@39
(label) menu::@4 (label) menu::@4
(label) menu::@41 (label) menu::@41
(label) menu::@42
(label) menu::@44 (label) menu::@44
(label) menu::@45 (label) menu::@45
(label) menu::@47 (label) menu::@47
(label) menu::@49 (label) menu::@48
(label) menu::@51 (label) menu::@50
(label) menu::@53 (label) menu::@52
(label) menu::@55 (label) menu::@54
(label) menu::@57 (label) menu::@56
(label) menu::@59 (label) menu::@58
(label) menu::@6 (label) menu::@6
(label) menu::@61 (label) menu::@60
(label) menu::@62
(label) menu::@64
(label) menu::@66
(label) menu::@7 (label) menu::@7
(label) menu::@8 (label) menu::@8
(label) menu::@9 (label) menu::@9
(label) menu::@return (label) menu::@return
(byte*) menu::MENU_CHARSET (byte*) menu::CHARSET
(const byte*) menu::MENU_CHARSET#0 MENU_CHARSET = ((byte*))(word/dword/signed dword) 38912 (const byte*) menu::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 38912
(byte*) menu::MENU_SCREEN (byte*) menu::SCREEN
(const byte*) menu::MENU_SCREEN#0 MENU_SCREEN = ((byte*))(word/dword/signed dword) 32768 (const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) menu::c (byte*) menu::c
(byte*) menu::c#1 c zp ZP_WORD:2 151.5 (byte*) menu::c#1 c zp ZP_WORD:2 151.5
(byte*) menu::c#2 c zp ZP_WORD:2 151.5 (byte*) menu::c#2 c zp ZP_WORD:2 151.5
@ -254,8 +262,8 @@
(label) mode_8bppchunkybmm::@6 (label) mode_8bppchunkybmm::@6
(label) mode_8bppchunkybmm::@9 (label) mode_8bppchunkybmm::@9
(label) mode_8bppchunkybmm::@return (label) mode_8bppchunkybmm::@return
(dword) mode_8bppchunkybmm::CHUNKYBMM8BPP_PLANEB (dword) mode_8bppchunkybmm::PLANEB
(const dword) mode_8bppchunkybmm::CHUNKYBMM8BPP_PLANEB#0 CHUNKYBMM8BPP_PLANEB = (dword/signed dword) 131072 (const dword) mode_8bppchunkybmm::PLANEB#0 PLANEB = (dword/signed dword) 131072
(byte) mode_8bppchunkybmm::c (byte) mode_8bppchunkybmm::c
(byte) mode_8bppchunkybmm::c#0 reg byte a 2002.0 (byte) mode_8bppchunkybmm::c#0 reg byte a 2002.0
(byte*) mode_8bppchunkybmm::gfxb (byte*) mode_8bppchunkybmm::gfxb
@ -302,10 +310,10 @@
(label) mode_8bpppixelcell::@9 (label) mode_8bpppixelcell::@9
(label) mode_8bpppixelcell::@return (label) mode_8bpppixelcell::@return
(byte*) mode_8bpppixelcell::CHARGEN (byte*) mode_8bpppixelcell::CHARGEN
(byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEA (byte*) mode_8bpppixelcell::PLANEA
(const byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEA#0 PIXELCELL8BPP_PLANEA = ((byte*))(word/signed word/dword/signed dword) 15360 (const byte*) mode_8bpppixelcell::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 15360
(byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEB (byte*) mode_8bpppixelcell::PLANEB
(const byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEB#0 PIXELCELL8BPP_PLANEB = ((byte*))(word/signed word/dword/signed dword) 16384 (const byte*) mode_8bpppixelcell::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 16384
(byte) mode_8bpppixelcell::ax (byte) mode_8bpppixelcell::ax
(byte) mode_8bpppixelcell::ax#1 reg byte x 1501.5 (byte) mode_8bpppixelcell::ax#1 reg byte x 1501.5
(byte) mode_8bpppixelcell::ax#2 reg byte x 429.0 (byte) mode_8bpppixelcell::ax#2 reg byte x 429.0
@ -393,12 +401,7 @@
(byte~) mode_hicolecmchar::$25 reg byte a 2002.0 (byte~) mode_hicolecmchar::$25 reg byte a 2002.0
(byte~) mode_hicolecmchar::$26 $26 zp ZP_BYTE:7 1001.0 (byte~) mode_hicolecmchar::$26 $26 zp ZP_BYTE:7 1001.0
(byte~) mode_hicolecmchar::$27 reg byte a 2002.0 (byte~) mode_hicolecmchar::$27 reg byte a 2002.0
(byte~) mode_hicolecmchar::$28 reg byte a 2002.0 (byte~) mode_hicolecmchar::$31 reg byte a 202.0
(byte~) mode_hicolecmchar::$29 reg byte a 2002.0
(byte~) mode_hicolecmchar::$30 $30 zp ZP_BYTE:7 1001.0
(byte~) mode_hicolecmchar::$31 reg byte a 2002.0
(byte~) mode_hicolecmchar::$32 reg byte a 2002.0
(byte~) mode_hicolecmchar::$35 reg byte a 202.0
(label) mode_hicolecmchar::@1 (label) mode_hicolecmchar::@1
(label) mode_hicolecmchar::@16 (label) mode_hicolecmchar::@16
(label) mode_hicolecmchar::@2 (label) mode_hicolecmchar::@2
@ -408,29 +411,70 @@
(label) mode_hicolecmchar::@8 (label) mode_hicolecmchar::@8
(label) mode_hicolecmchar::@9 (label) mode_hicolecmchar::@9
(label) mode_hicolecmchar::@return (label) mode_hicolecmchar::@return
(byte*) mode_hicolecmchar::ECMCHAR_CHARSET (byte*) mode_hicolecmchar::CHARSET
(const byte*) mode_hicolecmchar::ECMCHAR_CHARSET#0 ECMCHAR_CHARSET = ((byte*))(word/dword/signed dword) 36864 (const byte*) mode_hicolecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_hicolecmchar::ECMCHAR_COLORS (byte*) mode_hicolecmchar::COLORS
(const byte*) mode_hicolecmchar::ECMCHAR_COLORS#0 ECMCHAR_COLORS = ((byte*))(word/dword/signed dword) 33792 (const byte*) mode_hicolecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_hicolecmchar::ECMCHAR_SCREEN (byte*) mode_hicolecmchar::SCREEN
(const byte*) mode_hicolecmchar::ECMCHAR_SCREEN#0 ECMCHAR_SCREEN = ((byte*))(word/dword/signed dword) 32768 (const byte*) mode_hicolecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_hicolecmchar::ch (byte*) mode_hicolecmchar::ch
(byte*) mode_hicolecmchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolecmchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_hicolecmchar::ch#2 ch zp ZP_WORD:5 258.6666666666667 (byte*) mode_hicolecmchar::ch#2 ch zp ZP_WORD:5 388.0
(byte*) mode_hicolecmchar::ch#3 ch zp ZP_WORD:5 202.0 (byte*) mode_hicolecmchar::ch#3 ch zp ZP_WORD:5 202.0
(byte*) mode_hicolecmchar::col (byte*) mode_hicolecmchar::col
(byte*) mode_hicolecmchar::col#1 col zp ZP_WORD:2 191.1818181818182 (byte*) mode_hicolecmchar::col#1 col zp ZP_WORD:2 300.42857142857144
(byte*) mode_hicolecmchar::col#2 col zp ZP_WORD:2 517.3333333333334 (byte*) mode_hicolecmchar::col#2 col zp ZP_WORD:2 517.3333333333334
(byte*) mode_hicolecmchar::col#3 col zp ZP_WORD:2 202.0 (byte*) mode_hicolecmchar::col#3 col zp ZP_WORD:2 202.0
(byte) mode_hicolecmchar::cx (byte) mode_hicolecmchar::cx
(byte) mode_hicolecmchar::cx#1 reg byte x 1501.5 (byte) mode_hicolecmchar::cx#1 reg byte x 1501.5
(byte) mode_hicolecmchar::cx#2 reg byte x 308.0 (byte) mode_hicolecmchar::cx#2 reg byte x 333.6666666666667
(byte) mode_hicolecmchar::cy (byte) mode_hicolecmchar::cy
(byte) mode_hicolecmchar::cy#1 cy zp ZP_BYTE:4 151.5 (byte) mode_hicolecmchar::cy#1 cy zp ZP_BYTE:4 151.5
(byte) mode_hicolecmchar::cy#4 cy zp ZP_BYTE:4 137.75 (byte) mode_hicolecmchar::cy#4 cy zp ZP_BYTE:4 100.25000000000001
(byte) mode_hicolecmchar::i (byte) mode_hicolecmchar::i
(byte) mode_hicolecmchar::i#1 reg byte x 151.5 (byte) mode_hicolecmchar::i#1 reg byte x 151.5
(byte) mode_hicolecmchar::i#2 reg byte x 202.0 (byte) mode_hicolecmchar::i#2 reg byte x 202.0
(byte) mode_hicolecmchar::v
(byte) mode_hicolecmchar::v#0 reg byte a 1001.0
(void()) mode_hicolmcchar()
(byte~) mode_hicolmcchar::$25 reg byte a 2002.0
(byte~) mode_hicolmcchar::$26 $26 zp ZP_BYTE:7 1001.0
(byte~) mode_hicolmcchar::$27 reg byte a 2002.0
(byte~) mode_hicolmcchar::$31 reg byte a 202.0
(label) mode_hicolmcchar::@1
(label) mode_hicolmcchar::@16
(label) mode_hicolmcchar::@2
(label) mode_hicolmcchar::@3
(label) mode_hicolmcchar::@4
(label) mode_hicolmcchar::@5
(label) mode_hicolmcchar::@8
(label) mode_hicolmcchar::@9
(label) mode_hicolmcchar::@return
(byte*) mode_hicolmcchar::CHARSET
(const byte*) mode_hicolmcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_hicolmcchar::COLORS
(const byte*) mode_hicolmcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_hicolmcchar::SCREEN
(const byte*) mode_hicolmcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_hicolmcchar::ch
(byte*) mode_hicolmcchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_hicolmcchar::ch#2 ch zp ZP_WORD:5 388.0
(byte*) mode_hicolmcchar::ch#3 ch zp ZP_WORD:5 202.0
(byte*) mode_hicolmcchar::col
(byte*) mode_hicolmcchar::col#1 col zp ZP_WORD:2 300.42857142857144
(byte*) mode_hicolmcchar::col#2 col zp ZP_WORD:2 517.3333333333334
(byte*) mode_hicolmcchar::col#3 col zp ZP_WORD:2 202.0
(byte) mode_hicolmcchar::cx
(byte) mode_hicolmcchar::cx#1 reg byte x 1501.5
(byte) mode_hicolmcchar::cx#2 reg byte x 333.6666666666667
(byte) mode_hicolmcchar::cy
(byte) mode_hicolmcchar::cy#1 cy zp ZP_BYTE:4 151.5
(byte) mode_hicolmcchar::cy#4 cy zp ZP_BYTE:4 100.25000000000001
(byte) mode_hicolmcchar::i
(byte) mode_hicolmcchar::i#1 reg byte x 151.5
(byte) mode_hicolmcchar::i#2 reg byte x 202.0
(byte) mode_hicolmcchar::v
(byte) mode_hicolmcchar::v#0 reg byte a 1001.0
(void()) mode_hicolstdchar() (void()) mode_hicolstdchar()
(byte~) mode_hicolstdchar::$24 reg byte a 2002.0 (byte~) mode_hicolstdchar::$24 reg byte a 2002.0
(byte~) mode_hicolstdchar::$25 $25 zp ZP_BYTE:7 1001.0 (byte~) mode_hicolstdchar::$25 $25 zp ZP_BYTE:7 1001.0
@ -445,12 +489,12 @@
(label) mode_hicolstdchar::@8 (label) mode_hicolstdchar::@8
(label) mode_hicolstdchar::@9 (label) mode_hicolstdchar::@9
(label) mode_hicolstdchar::@return (label) mode_hicolstdchar::@return
(byte*) mode_hicolstdchar::HICOLSTDCHAR_CHARSET (byte*) mode_hicolstdchar::CHARSET
(const byte*) mode_hicolstdchar::HICOLSTDCHAR_CHARSET#0 HICOLSTDCHAR_CHARSET = ((byte*))(word/dword/signed dword) 36864 (const byte*) mode_hicolstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_hicolstdchar::HICOLSTDCHAR_COLORS (byte*) mode_hicolstdchar::COLORS
(const byte*) mode_hicolstdchar::HICOLSTDCHAR_COLORS#0 HICOLSTDCHAR_COLORS = ((byte*))(word/dword/signed dword) 33792 (const byte*) mode_hicolstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_hicolstdchar::HICOLSTDCHAR_SCREEN (byte*) mode_hicolstdchar::SCREEN
(const byte*) mode_hicolstdchar::HICOLSTDCHAR_SCREEN#0 HICOLSTDCHAR_SCREEN = ((byte*))(word/dword/signed dword) 32768 (const byte*) mode_hicolstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_hicolstdchar::ch (byte*) mode_hicolstdchar::ch
(byte*) mode_hicolstdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolstdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_hicolstdchar::ch#2 ch zp ZP_WORD:5 388.0 (byte*) mode_hicolstdchar::ch#2 ch zp ZP_WORD:5 388.0
@ -470,46 +514,46 @@
(byte) mode_hicolstdchar::i#2 reg byte x 202.0 (byte) mode_hicolstdchar::i#2 reg byte x 202.0
(byte) mode_hicolstdchar::v (byte) mode_hicolstdchar::v
(byte) mode_hicolstdchar::v#0 reg byte a 1001.0 (byte) mode_hicolstdchar::v#0 reg byte a 1001.0
(void()) mode_mcstdchar() (void()) mode_mcchar()
(byte~) mode_mcstdchar::$25 reg byte a 2002.0 (byte~) mode_mcchar::$25 reg byte a 2002.0
(byte~) mode_mcstdchar::$26 reg byte a 2002.0 (byte~) mode_mcchar::$26 reg byte a 2002.0
(byte~) mode_mcstdchar::$27 reg byte a 2002.0 (byte~) mode_mcchar::$27 reg byte a 2002.0
(byte~) mode_mcstdchar::$28 $28 zp ZP_BYTE:7 1001.0 (byte~) mode_mcchar::$28 $28 zp ZP_BYTE:7 1001.0
(byte~) mode_mcstdchar::$29 reg byte a 2002.0 (byte~) mode_mcchar::$29 reg byte a 2002.0
(byte~) mode_mcstdchar::$30 reg byte a 2002.0 (byte~) mode_mcchar::$30 reg byte a 2002.0
(byte~) mode_mcstdchar::$33 reg byte a 202.0 (byte~) mode_mcchar::$33 reg byte a 202.0
(label) mode_mcstdchar::@1 (label) mode_mcchar::@1
(label) mode_mcstdchar::@16 (label) mode_mcchar::@16
(label) mode_mcstdchar::@2 (label) mode_mcchar::@2
(label) mode_mcstdchar::@3 (label) mode_mcchar::@3
(label) mode_mcstdchar::@4 (label) mode_mcchar::@4
(label) mode_mcstdchar::@5 (label) mode_mcchar::@5
(label) mode_mcstdchar::@8 (label) mode_mcchar::@8
(label) mode_mcstdchar::@9 (label) mode_mcchar::@9
(label) mode_mcstdchar::@return (label) mode_mcchar::@return
(byte*) mode_mcstdchar::CHARSET (byte*) mode_mcchar::CHARSET
(const byte*) mode_mcstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 (const byte*) mode_mcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_mcstdchar::COLORS (byte*) mode_mcchar::COLORS
(const byte*) mode_mcstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792 (const byte*) mode_mcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_mcstdchar::SCREEN (byte*) mode_mcchar::SCREEN
(const byte*) mode_mcstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 (const byte*) mode_mcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_mcstdchar::ch (byte*) mode_mcchar::ch
(byte*) mode_mcstdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_mcchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_mcstdchar::ch#2 ch zp ZP_WORD:5 310.4 (byte*) mode_mcchar::ch#2 ch zp ZP_WORD:5 310.4
(byte*) mode_mcstdchar::ch#3 ch zp ZP_WORD:5 202.0 (byte*) mode_mcchar::ch#3 ch zp ZP_WORD:5 202.0
(byte*) mode_mcstdchar::col (byte*) mode_mcchar::col
(byte*) mode_mcstdchar::col#1 col zp ZP_WORD:2 191.1818181818182 (byte*) mode_mcchar::col#1 col zp ZP_WORD:2 191.1818181818182
(byte*) mode_mcstdchar::col#2 col zp ZP_WORD:2 776.0 (byte*) mode_mcchar::col#2 col zp ZP_WORD:2 776.0
(byte*) mode_mcstdchar::col#3 col zp ZP_WORD:2 202.0 (byte*) mode_mcchar::col#3 col zp ZP_WORD:2 202.0
(byte) mode_mcstdchar::cx (byte) mode_mcchar::cx
(byte) mode_mcstdchar::cx#1 reg byte x 1501.5 (byte) mode_mcchar::cx#1 reg byte x 1501.5
(byte) mode_mcstdchar::cx#2 reg byte x 364.0 (byte) mode_mcchar::cx#2 reg byte x 364.0
(byte) mode_mcstdchar::cy (byte) mode_mcchar::cy
(byte) mode_mcstdchar::cy#1 cy zp ZP_BYTE:4 151.5 (byte) mode_mcchar::cy#1 cy zp ZP_BYTE:4 151.5
(byte) mode_mcstdchar::cy#4 cy zp ZP_BYTE:4 157.42857142857144 (byte) mode_mcchar::cy#4 cy zp ZP_BYTE:4 157.42857142857144
(byte) mode_mcstdchar::i (byte) mode_mcchar::i
(byte) mode_mcstdchar::i#1 reg byte x 151.5 (byte) mode_mcchar::i#1 reg byte x 151.5
(byte) mode_mcstdchar::i#2 reg byte x 202.0 (byte) mode_mcchar::i#2 reg byte x 202.0
(void()) mode_sixsfred() (void()) mode_sixsfred()
(byte~) mode_sixsfred::$15 reg byte a 2002.0 (byte~) mode_sixsfred::$15 reg byte a 2002.0
(byte~) mode_sixsfred::$16 reg byte a 2002.0 (byte~) mode_sixsfred::$16 reg byte a 2002.0
@ -530,12 +574,12 @@
(label) mode_sixsfred::@8 (label) mode_sixsfred::@8
(label) mode_sixsfred::@9 (label) mode_sixsfred::@9
(label) mode_sixsfred::@return (label) mode_sixsfred::@return
(byte*) mode_sixsfred::SIXSFRED_COLORS (byte*) mode_sixsfred::COLORS
(const byte*) mode_sixsfred::SIXSFRED_COLORS#0 SIXSFRED_COLORS = ((byte*))(word/dword/signed dword) 32768 (const byte*) mode_sixsfred::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_sixsfred::SIXSFRED_PLANEA (byte*) mode_sixsfred::PLANEA
(const byte*) mode_sixsfred::SIXSFRED_PLANEA#0 SIXSFRED_PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 (const byte*) mode_sixsfred::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_sixsfred::SIXSFRED_PLANEB (byte*) mode_sixsfred::PLANEB
(const byte*) mode_sixsfred::SIXSFRED_PLANEB#0 SIXSFRED_PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 (const byte*) mode_sixsfred::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte) mode_sixsfred::ax (byte) mode_sixsfred::ax
(byte) mode_sixsfred::ax#1 reg byte x 1501.5 (byte) mode_sixsfred::ax#1 reg byte x 1501.5
(byte) mode_sixsfred::ax#2 reg byte x 400.4 (byte) mode_sixsfred::ax#2 reg byte x 400.4
@ -595,12 +639,12 @@
(label) mode_sixsfred2::@8 (label) mode_sixsfred2::@8
(label) mode_sixsfred2::@9 (label) mode_sixsfred2::@9
(label) mode_sixsfred2::@return (label) mode_sixsfred2::@return
(byte*) mode_sixsfred2::SIXSFRED2_COLORS (byte*) mode_sixsfred2::COLORS
(const byte*) mode_sixsfred2::SIXSFRED2_COLORS#0 SIXSFRED2_COLORS = ((byte*))(word/dword/signed dword) 32768 (const byte*) mode_sixsfred2::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_sixsfred2::SIXSFRED2_PLANEA (byte*) mode_sixsfred2::PLANEA
(const byte*) mode_sixsfred2::SIXSFRED2_PLANEA#0 SIXSFRED2_PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 (const byte*) mode_sixsfred2::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_sixsfred2::SIXSFRED2_PLANEB (byte*) mode_sixsfred2::PLANEB
(const byte*) mode_sixsfred2::SIXSFRED2_PLANEB#0 SIXSFRED2_PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 (const byte*) mode_sixsfred2::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte) mode_sixsfred2::ax (byte) mode_sixsfred2::ax
(byte) mode_sixsfred2::ax#1 reg byte x 1501.5 (byte) mode_sixsfred2::ax#1 reg byte x 1501.5
(byte) mode_sixsfred2::ax#2 reg byte x 400.4 (byte) mode_sixsfred2::ax#2 reg byte x 400.4
@ -655,12 +699,12 @@
(label) mode_stdchar::@8 (label) mode_stdchar::@8
(label) mode_stdchar::@9 (label) mode_stdchar::@9
(label) mode_stdchar::@return (label) mode_stdchar::@return
(byte*) mode_stdchar::STDCHAR_CHARSET (byte*) mode_stdchar::CHARSET
(const byte*) mode_stdchar::STDCHAR_CHARSET#0 STDCHAR_CHARSET = ((byte*))(word/dword/signed dword) 36864 (const byte*) mode_stdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_stdchar::STDCHAR_COLORS (byte*) mode_stdchar::COLORS
(const byte*) mode_stdchar::STDCHAR_COLORS#0 STDCHAR_COLORS = ((byte*))(word/dword/signed dword) 33792 (const byte*) mode_stdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_stdchar::STDCHAR_SCREEN (byte*) mode_stdchar::SCREEN
(const byte*) mode_stdchar::STDCHAR_SCREEN#0 STDCHAR_SCREEN = ((byte*))(word/dword/signed dword) 32768 (const byte*) mode_stdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_stdchar::ch (byte*) mode_stdchar::ch
(byte*) mode_stdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_stdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_stdchar::ch#2 ch zp ZP_WORD:5 310.4 (byte*) mode_stdchar::ch#2 ch zp ZP_WORD:5 310.4
@ -703,12 +747,12 @@
(label) mode_twoplanebitmap::@8 (label) mode_twoplanebitmap::@8
(label) mode_twoplanebitmap::@9 (label) mode_twoplanebitmap::@9
(label) mode_twoplanebitmap::@return (label) mode_twoplanebitmap::@return
(byte*) mode_twoplanebitmap::TWOPLANE_COLORS (byte*) mode_twoplanebitmap::COLORS
(const byte*) mode_twoplanebitmap::TWOPLANE_COLORS#0 TWOPLANE_COLORS = ((byte*))(word/dword/signed dword) 32768 (const byte*) mode_twoplanebitmap::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_twoplanebitmap::TWOPLANE_PLANEA (byte*) mode_twoplanebitmap::PLANEA
(const byte*) mode_twoplanebitmap::TWOPLANE_PLANEA#0 TWOPLANE_PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 (const byte*) mode_twoplanebitmap::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_twoplanebitmap::TWOPLANE_PLANEB (byte*) mode_twoplanebitmap::PLANEB
(const byte*) mode_twoplanebitmap::TWOPLANE_PLANEB#0 TWOPLANE_PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 (const byte*) mode_twoplanebitmap::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte) mode_twoplanebitmap::ax (byte) mode_twoplanebitmap::ax
(byte) mode_twoplanebitmap::ax#1 reg byte x 1501.5 (byte) mode_twoplanebitmap::ax#1 reg byte x 1501.5
(byte) mode_twoplanebitmap::ax#2 reg byte x 250.25 (byte) mode_twoplanebitmap::ax#2 reg byte x 250.25
@ -749,7 +793,7 @@
(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:5 821.0 (byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:5 821.0
(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:5 101.0 (byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:5 101.0
(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:5 572.0 (byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:5 572.0
(byte*~) print_char_cursor#91 print_char_cursor zp ZP_WORD:5 202.0 (byte*~) print_char_cursor#95 print_char_cursor zp ZP_WORD:5 202.0
(void()) print_cls() (void()) print_cls()
(label) print_cls::@1 (label) print_cls::@1
(label) print_cls::@return (label) print_cls::@return
@ -782,16 +826,16 @@
(byte*) print_str_lines::str#3 str zp ZP_WORD:2 1552.0 (byte*) print_str_lines::str#3 str zp ZP_WORD:2 1552.0
reg byte x [ menu::i#2 menu::i#1 ] reg byte x [ menu::i#2 menu::i#1 ]
zp ZP_WORD:2 [ menu::c#2 menu::c#1 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::x#1 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::gfxa#1 mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 mode_sixsfred::col#2 mode_sixsfred::col#3 mode_sixsfred::col#1 mode_sixsfred::gfxa#2 mode_sixsfred::gfxa#3 mode_sixsfred::gfxa#1 mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 mode_sixsfred2::col#2 mode_sixsfred2::col#3 mode_sixsfred2::col#1 mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 mode_sixsfred2::gfxb#2 mode_sixsfred2::gfxb#3 mode_sixsfred2::gfxb#1 mode_hicolecmchar::col#2 mode_hicolecmchar::col#3 mode_hicolecmchar::col#1 mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 mode_mcstdchar::col#2 mode_mcstdchar::col#3 mode_mcstdchar::col#1 mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 mode_stdchar::col#2 mode_stdchar::col#3 mode_stdchar::col#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 ] zp ZP_WORD:2 [ menu::c#2 menu::c#1 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::x#1 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::gfxa#1 mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 mode_sixsfred::col#2 mode_sixsfred::col#3 mode_sixsfred::col#1 mode_sixsfred::gfxa#2 mode_sixsfred::gfxa#3 mode_sixsfred::gfxa#1 mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 mode_sixsfred2::col#2 mode_sixsfred2::col#3 mode_sixsfred2::col#1 mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 mode_sixsfred2::gfxb#2 mode_sixsfred2::gfxb#3 mode_sixsfred2::gfxb#1 mode_hicolmcchar::col#2 mode_hicolmcchar::col#3 mode_hicolmcchar::col#1 mode_hicolecmchar::col#2 mode_hicolecmchar::col#3 mode_hicolecmchar::col#1 mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 mode_mcchar::col#2 mode_mcchar::col#3 mode_mcchar::col#1 mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 mode_stdchar::col#2 mode_stdchar::col#3 mode_stdchar::col#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 ]
reg byte x [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] reg byte x [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ]
zp ZP_BYTE:4 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 mode_sixsfred::cy#4 mode_sixsfred::cy#1 mode_sixsfred::ay#4 mode_sixsfred::ay#1 mode_sixsfred::by#4 mode_sixsfred::by#1 mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 mode_sixsfred2::by#4 mode_sixsfred2::by#1 mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 mode_mcstdchar::cy#4 mode_mcstdchar::cy#1 mode_ecmchar::cy#4 mode_ecmchar::cy#1 mode_stdchar::cy#4 mode_stdchar::cy#1 ] zp ZP_BYTE:4 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 mode_sixsfred::cy#4 mode_sixsfred::cy#1 mode_sixsfred::ay#4 mode_sixsfred::ay#1 mode_sixsfred::by#4 mode_sixsfred::by#1 mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 mode_sixsfred2::by#4 mode_sixsfred2::by#1 mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 mode_mcchar::cy#4 mode_mcchar::cy#1 mode_ecmchar::cy#4 mode_ecmchar::cy#1 mode_stdchar::cy#4 mode_stdchar::cy#1 ]
reg byte x [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] reg byte x [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ]
zp ZP_WORD:5 [ mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::gfxb#7 mode_8bpppixelcell::gfxb#1 mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 mode_hicolstdchar::ch#2 mode_hicolstdchar::ch#3 mode_hicolstdchar::ch#1 mode_mcstdchar::ch#2 mode_mcstdchar::ch#3 mode_mcstdchar::ch#1 mode_ecmchar::ch#2 mode_ecmchar::ch#3 mode_ecmchar::ch#1 mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 print_char_cursor#17 print_char_cursor#19 print_char_cursor#91 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:5 [ mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::gfxb#7 mode_8bpppixelcell::gfxb#1 mode_hicolmcchar::ch#2 mode_hicolmcchar::ch#3 mode_hicolmcchar::ch#1 mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 mode_hicolstdchar::ch#2 mode_hicolstdchar::ch#3 mode_hicolstdchar::ch#1 mode_mcchar::ch#2 mode_mcchar::ch#3 mode_mcchar::ch#1 mode_ecmchar::ch#2 mode_ecmchar::ch#3 mode_ecmchar::ch#1 mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 print_char_cursor#17 print_char_cursor#19 print_char_cursor#95 print_char_cursor#32 print_char_cursor#1 ]
reg byte x [ keyboard_key_pressed::key#20 ] reg byte x [ keyboard_key_pressed::key#22 ]
reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ] reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ]
reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ]
reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ]
zp ZP_BYTE:7 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 mode_8bpppixelcell::$12 mode_twoplanebitmap::$15 mode_sixsfred2::$15 mode_hicolecmchar::$26 mode_hicolecmchar::$30 mode_hicolstdchar::$25 mode_mcstdchar::$28 mode_ecmchar::$28 mode_stdchar::$27 ] zp ZP_BYTE:7 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 mode_8bpppixelcell::$12 mode_twoplanebitmap::$15 mode_sixsfred2::$15 mode_hicolmcchar::$26 mode_hicolecmchar::$26 mode_hicolstdchar::$25 mode_mcchar::$28 mode_ecmchar::$28 mode_stdchar::$27 ]
zp ZP_BYTE:8 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] zp ZP_BYTE:8 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ]
zp ZP_BYTE:9 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] zp ZP_BYTE:9 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ]
reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ]
@ -808,12 +852,14 @@ reg byte x [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ]
reg byte x [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] reg byte x [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ]
reg byte x [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] reg byte x [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ]
reg byte x [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] reg byte x [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ]
reg byte x [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ]
reg byte x [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ]
reg byte x [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] reg byte x [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ]
reg byte x [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] reg byte x [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ]
reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ]
reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ]
reg byte x [ mode_mcstdchar::i#2 mode_mcstdchar::i#1 ] reg byte x [ mode_mcchar::i#2 mode_mcchar::i#1 ]
reg byte x [ mode_mcstdchar::cx#2 mode_mcstdchar::cx#1 ] reg byte x [ mode_mcchar::cx#2 mode_mcchar::cx#1 ]
reg byte x [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] reg byte x [ mode_ecmchar::i#2 mode_ecmchar::i#1 ]
reg byte x [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] reg byte x [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ]
reg byte x [ mode_stdchar::i#2 mode_stdchar::i#1 ] reg byte x [ mode_stdchar::i#2 mode_stdchar::i#1 ]
@ -821,26 +867,28 @@ reg byte x [ mode_stdchar::cx#2 mode_stdchar::cx#1 ]
zp ZP_WORD:10 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 mode_8bppchunkybmm::$20 ] zp ZP_WORD:10 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 mode_8bppchunkybmm::$20 ]
reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#2 ]
reg byte a [ menu::$29 ] reg byte a [ menu::$29 ]
reg byte a [ keyboard_key_pressed::return#24 ]
reg byte a [ menu::$33 ]
reg byte a [ keyboard_key_pressed::return#25 ]
reg byte a [ menu::$37 ]
reg byte a [ keyboard_key_pressed::return#26 ] reg byte a [ keyboard_key_pressed::return#26 ]
reg byte a [ menu::$41 ] reg byte a [ menu::$33 ]
reg byte a [ keyboard_key_pressed::return#27 ] reg byte a [ keyboard_key_pressed::return#27 ]
reg byte a [ menu::$45 ] reg byte a [ menu::$37 ]
reg byte a [ keyboard_key_pressed::return#28 ] reg byte a [ keyboard_key_pressed::return#28 ]
reg byte a [ menu::$49 ] reg byte a [ menu::$41 ]
reg byte a [ keyboard_key_pressed::return#29 ] reg byte a [ keyboard_key_pressed::return#29 ]
reg byte a [ menu::$53 ] reg byte a [ menu::$45 ]
reg byte a [ keyboard_key_pressed::return#30 ] reg byte a [ keyboard_key_pressed::return#30 ]
reg byte a [ menu::$49 ]
reg byte a [ keyboard_key_pressed::return#31 ]
reg byte a [ menu::$53 ]
reg byte a [ keyboard_key_pressed::return#32 ]
reg byte a [ menu::$57 ] reg byte a [ menu::$57 ]
reg byte a [ keyboard_key_pressed::return#10 ] reg byte a [ keyboard_key_pressed::return#10 ]
reg byte a [ menu::$61 ] reg byte a [ menu::$61 ]
reg byte a [ keyboard_key_pressed::return#11 ] reg byte a [ keyboard_key_pressed::return#11 ]
reg byte a [ menu::$65 ] reg byte a [ menu::$65 ]
reg byte a [ keyboard_key_pressed::return#12 ]
reg byte a [ menu::$69 ]
reg byte a [ mode_8bppchunkybmm::c#0 ] reg byte a [ mode_8bppchunkybmm::c#0 ]
reg byte a [ keyboard_key_pressed::return#21 ] reg byte a [ keyboard_key_pressed::return#23 ]
reg byte a [ mode_8bppchunkybmm::$27 ] reg byte a [ mode_8bppchunkybmm::$27 ]
reg byte y [ keyboard_key_pressed::colidx#0 ] reg byte y [ keyboard_key_pressed::colidx#0 ]
reg byte a [ keyboard_key_pressed::rowidx#0 ] reg byte a [ keyboard_key_pressed::rowidx#0 ]
@ -853,59 +901,61 @@ reg byte a [ mode_8bpppixelcell::$11 ]
reg byte a [ mode_8bpppixelcell::$13 ] reg byte a [ mode_8bpppixelcell::$13 ]
reg byte a [ mode_8bpppixelcell::$14 ] reg byte a [ mode_8bpppixelcell::$14 ]
reg byte a [ mode_8bpppixelcell::$17 ] reg byte a [ mode_8bpppixelcell::$17 ]
reg byte a [ keyboard_key_pressed::return#20 ] reg byte a [ keyboard_key_pressed::return#22 ]
reg byte a [ mode_8bpppixelcell::$24 ] reg byte a [ mode_8bpppixelcell::$24 ]
reg byte a [ mode_sixsfred::$15 ] reg byte a [ mode_sixsfred::$15 ]
reg byte a [ mode_sixsfred::$16 ] reg byte a [ mode_sixsfred::$16 ]
reg byte a [ mode_sixsfred::$19 ] reg byte a [ mode_sixsfred::$19 ]
reg byte a [ mode_sixsfred::row#0 ] reg byte a [ mode_sixsfred::row#0 ]
reg byte a [ keyboard_key_pressed::return#18 ] reg byte a [ keyboard_key_pressed::return#20 ]
reg byte a [ mode_sixsfred::$25 ] reg byte a [ mode_sixsfred::$25 ]
reg byte a [ mode_twoplanebitmap::$14 ] reg byte a [ mode_twoplanebitmap::$14 ]
reg byte a [ mode_twoplanebitmap::$16 ] reg byte a [ mode_twoplanebitmap::$16 ]
reg byte a [ mode_twoplanebitmap::$17 ] reg byte a [ mode_twoplanebitmap::$17 ]
reg byte a [ mode_twoplanebitmap::$20 ] reg byte a [ mode_twoplanebitmap::$20 ]
reg byte a [ keyboard_key_pressed::return#17 ] reg byte a [ keyboard_key_pressed::return#19 ]
reg byte a [ mode_twoplanebitmap::$27 ] reg byte a [ mode_twoplanebitmap::$27 ]
reg byte a [ mode_sixsfred2::$14 ] reg byte a [ mode_sixsfred2::$14 ]
reg byte a [ mode_sixsfred2::$16 ] reg byte a [ mode_sixsfred2::$16 ]
reg byte a [ mode_sixsfred2::$17 ] reg byte a [ mode_sixsfred2::$17 ]
reg byte a [ mode_sixsfred2::$20 ] reg byte a [ mode_sixsfred2::$20 ]
reg byte a [ mode_sixsfred2::row#0 ] reg byte a [ mode_sixsfred2::row#0 ]
reg byte a [ keyboard_key_pressed::return#19 ] reg byte a [ keyboard_key_pressed::return#21 ]
reg byte a [ mode_sixsfred2::$26 ] reg byte a [ mode_sixsfred2::$26 ]
reg byte a [ mode_hicolmcchar::$25 ]
reg byte a [ mode_hicolmcchar::$27 ]
reg byte a [ mode_hicolmcchar::v#0 ]
reg byte a [ keyboard_key_pressed::return#18 ]
reg byte a [ mode_hicolmcchar::$31 ]
reg byte a [ mode_hicolecmchar::$25 ] reg byte a [ mode_hicolecmchar::$25 ]
reg byte a [ mode_hicolecmchar::$27 ] reg byte a [ mode_hicolecmchar::$27 ]
reg byte a [ mode_hicolecmchar::$28 ] reg byte a [ mode_hicolecmchar::v#0 ]
reg byte a [ mode_hicolecmchar::$29 ] reg byte a [ keyboard_key_pressed::return#17 ]
reg byte a [ mode_hicolecmchar::$31 ] reg byte a [ mode_hicolecmchar::$31 ]
reg byte a [ mode_hicolecmchar::$32 ]
reg byte a [ keyboard_key_pressed::return#16 ]
reg byte a [ mode_hicolecmchar::$35 ]
reg byte a [ mode_hicolstdchar::$24 ] reg byte a [ mode_hicolstdchar::$24 ]
reg byte a [ mode_hicolstdchar::$26 ] reg byte a [ mode_hicolstdchar::$26 ]
reg byte a [ mode_hicolstdchar::v#0 ] reg byte a [ mode_hicolstdchar::v#0 ]
reg byte a [ keyboard_key_pressed::return#15 ] reg byte a [ keyboard_key_pressed::return#16 ]
reg byte a [ mode_hicolstdchar::$30 ] reg byte a [ mode_hicolstdchar::$30 ]
reg byte a [ mode_mcstdchar::$25 ] reg byte a [ mode_mcchar::$25 ]
reg byte a [ mode_mcstdchar::$26 ] reg byte a [ mode_mcchar::$26 ]
reg byte a [ mode_mcstdchar::$27 ] reg byte a [ mode_mcchar::$27 ]
reg byte a [ mode_mcstdchar::$29 ] reg byte a [ mode_mcchar::$29 ]
reg byte a [ mode_mcstdchar::$30 ] reg byte a [ mode_mcchar::$30 ]
reg byte a [ keyboard_key_pressed::return#14 ] reg byte a [ keyboard_key_pressed::return#15 ]
reg byte a [ mode_mcstdchar::$33 ] reg byte a [ mode_mcchar::$33 ]
reg byte a [ mode_ecmchar::$25 ] reg byte a [ mode_ecmchar::$25 ]
reg byte a [ mode_ecmchar::$26 ] reg byte a [ mode_ecmchar::$26 ]
reg byte a [ mode_ecmchar::$27 ] reg byte a [ mode_ecmchar::$27 ]
reg byte a [ mode_ecmchar::$29 ] reg byte a [ mode_ecmchar::$29 ]
reg byte a [ mode_ecmchar::$30 ] reg byte a [ mode_ecmchar::$30 ]
reg byte a [ keyboard_key_pressed::return#13 ] reg byte a [ keyboard_key_pressed::return#14 ]
reg byte a [ mode_ecmchar::$33 ] reg byte a [ mode_ecmchar::$33 ]
reg byte a [ mode_stdchar::$24 ] reg byte a [ mode_stdchar::$24 ]
reg byte a [ mode_stdchar::$25 ] reg byte a [ mode_stdchar::$25 ]
reg byte a [ mode_stdchar::$26 ] reg byte a [ mode_stdchar::$26 ]
reg byte a [ mode_stdchar::$28 ] reg byte a [ mode_stdchar::$28 ]
reg byte a [ mode_stdchar::$29 ] reg byte a [ mode_stdchar::$29 ]
reg byte a [ keyboard_key_pressed::return#12 ] reg byte a [ keyboard_key_pressed::return#13 ]
reg byte a [ mode_stdchar::$32 ] reg byte a [ mode_stdchar::$32 ]
reg byte a [ print_str_lines::ch#0 ] reg byte a [ print_str_lines::ch#0 ]