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() {
const byte* MENU_SCREEN = $8000;
const byte* MENU_CHARSET = $9800; // Charset ROM
const byte* SCREEN = $8000;
const byte* CHARSET = $9800; // Charset ROM
// 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_LO = <((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;
// VIC Graphics Bank
*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_CONTROL = VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL;
// 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
for(byte i : 0..$f) {
DTV_PALETTE[i] = DTV_PALETTE_DEFAULT[i];
@ -62,7 +62,7 @@ void menu() {
*BGCOL = 0;
*BORDERCOL = 0;
// Display menu Text
print_set_screen(MENU_SCREEN);
print_set_screen(SCREEN);
print_cls();
print_str_lines(MENU_TEXT);
// Wait for key press
@ -76,7 +76,7 @@ void menu() {
return;
}
if(keyboard_key_pressed(KEY_3)!=0) {
mode_mcstdchar();
mode_mcchar();
return;
}
if(keyboard_key_pressed(KEY_6)!=0) {
@ -87,6 +87,10 @@ void menu() {
mode_hicolecmchar();
return;
}
if(keyboard_key_pressed(KEY_8)!=0) {
mode_hicolmcchar();
return;
}
if(keyboard_key_pressed(KEY_A)!=0) {
mode_sixsfred2();
return;
@ -119,24 +123,24 @@ void menu() {
// - 0: 4bpp BgColor0[3:0]
// - 1: 4bpp ColorData[3:0]
void mode_stdchar() {
const byte* STDCHAR_SCREEN = $8000;
const byte* STDCHAR_CHARSET = $9000; // Charset ROM
const byte* STDCHAR_COLORS = $8400;
const byte* SCREEN = $8000;
const byte* CHARSET = $9000; // Charset ROM
const byte* COLORS = $8400;
// 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_LO = <((word)(STDCHAR_COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(STDCHAR_COLORS/$400));
*DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
// DTV Graphics Mode
*DTV_CONTROL = 0;
// VIC Graphics Bank
*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_CONTROL = VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL;
// 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
for(byte i : 0..$f) {
DTV_PALETTE[i] = DTV_PALETTE_DEFAULT[i];
@ -145,8 +149,8 @@ void mode_stdchar() {
*BGCOL = 0;
*BORDERCOL = 0;
// Char Colors and screen chars
byte* col=STDCHAR_COLORS;
byte* ch=STDCHAR_SCREEN;
byte* col=COLORS;
byte* ch=SCREEN;
for(byte cy: 0..24 ) {
for(byte cx: 0..39) {
*col++ = (cx+cy)&$f;
@ -230,7 +234,7 @@ void mode_ecmchar() {
// - 01: 4bpp BgColor1[3:0]
// - 10: 4bpp BgColor2[3: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* CHARSET = $9000; // Charset ROM
const byte* COLORS = $8400;
@ -283,24 +287,24 @@ void mode_mcstdchar() {
// - 0: 8bpp BgColor0[7:0]
// - 1: 8bpp ColorData[7:0]
void mode_hicolstdchar() {
const byte* HICOLSTDCHAR_SCREEN = $8000;
const byte* HICOLSTDCHAR_CHARSET = $9000; // Charset ROM
const byte* HICOLSTDCHAR_COLORS = $8400;
const byte* SCREEN = $8000;
const byte* CHARSET = $9000; // Charset ROM
const byte* COLORS = $8400;
// 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_LO = <((word)(HICOLSTDCHAR_COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(HICOLSTDCHAR_COLORS/$400));
*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)HICOLSTDCHAR_CHARSET/$4000); // Set VIC Bank
*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 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
for(byte i : 0..$f) {
DTV_PALETTE[i] = i;
@ -309,8 +313,8 @@ void mode_hicolstdchar() {
*BGCOL = 0;
*BORDERCOL = 0;
// Char Colors and screen chars
byte* col=HICOLSTDCHAR_COLORS;
byte* ch=HICOLSTDCHAR_SCREEN;
byte* col=COLORS;
byte* ch=SCREEN;
for(byte cy: 0..24 ) {
for(byte cx: 0..39) {
byte v = (cy&$f)<<4|(cx&$f);
@ -338,24 +342,24 @@ void mode_hicolstdchar() {
// - CharData[7:6] 11: 8bpp BgColor3[7:0]
// - 1: 8bpp ColorData[7:0]
void mode_hicolecmchar() {
const byte* ECMCHAR_SCREEN = $8000;
const byte* ECMCHAR_CHARSET = $9000; // Charset ROM
const byte* ECMCHAR_COLORS = $8400;
const byte* SCREEN = $8000;
const byte* CHARSET = $9000; // Charset ROM
const byte* COLORS = $8400;
// 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_LO = <((word)(ECMCHAR_COLORS/$400));
*DTV_COLOR_BANK_HI = >((word)(ECMCHAR_COLORS/$400));
*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)ECMCHAR_CHARSET/$4000); // Set VIC Bank
*CIA2_PORT_A = %00000011 ^ (byte)((word)CHARSET/$4000); // Set VIC Bank
// VIC Graphics Mode
*VIC_CONTROL = VIC_DEN|VIC_RSEL|VIC_ECM|3;
*VIC_CONTROL2 = VIC_CSEL;
// 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
for(byte i : 0..$f) {
DTV_PALETTE[i] = i;
@ -367,12 +371,71 @@ void mode_hicolecmchar() {
*BGCOL3 = $58;
*BGCOL4 = $5c;
// Char Colors and screen chars
byte* col=ECMCHAR_COLORS;
byte* ch=ECMCHAR_SCREEN;
byte* col=COLORS;
byte* ch=SCREEN;
for(byte cy: 0..24 ) {
for(byte cx: 0..39) {
*col++ = (cy&$f)<<4|(cx&$f);
*ch++ = (cy&$f)<<4|(cx&$f);
byte v = (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
@ -393,31 +456,31 @@ void mode_hicolecmchar() {
// - Plane A = 1 Plane B = 0: 8bpp "0000" & ColorData[3:0]
// - Plane A = 1 Plane B = 1: 8bpp BgColor1[7:0]
void mode_twoplanebitmap() {
const byte* TWOPLANE_PLANEA = $4000;
const byte* TWOPLANE_PLANEB = $6000;
const byte* TWOPLANE_COLORS = $8000;
const byte* PLANEA = $4000;
const byte* PLANEB = $6000;
const byte* COLORS = $8000;
// DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON;
// VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_CSEL;
// Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <TWOPLANE_PLANEA;
*DTV_PLANEA_START_MI = >TWOPLANE_PLANEA;
*DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <TWOPLANE_PLANEB;
*DTV_PLANEB_START_MI = >TWOPLANE_PLANEB;
*DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 1;
*DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0;
// DTV Color Bank
*DTV_COLOR_BANK_LO = <(TWOPLANE_COLORS/$400);
*DTV_COLOR_BANK_HI = >(TWOPLANE_COLORS/$400);
*DTV_COLOR_BANK_LO = <(COLORS/$400);
*DTV_COLOR_BANK_HI = >(COLORS/$400);
// DTV Palette - Grey Tones
for(byte i : 0..$f) {
DTV_PALETTE[i] = i;
@ -427,14 +490,14 @@ void mode_twoplanebitmap() {
*BGCOL1 = $70; // Color for bits 00
*BGCOL2 = $d4; // Color for bits 11
// Colors for bits 01 / 10
byte* col=TWOPLANE_COLORS;
byte* col=COLORS;
for(byte cy: 0..24 ) {
for(byte cx: 0..39) {
*col++ = (cy & $f)<<4 | (cx &$f);
}
}
// Graphics for Plane A - horizontal stripes
byte* gfxa = TWOPLANE_PLANEA;
byte* gfxa = PLANEA;
for(byte ay : 0..199) {
for (byte ax : 0..39) {
if((ay&4)==0) {
@ -445,7 +508,7 @@ void mode_twoplanebitmap() {
}
}
// Graphics for Plane B - vertical stripes
byte* gfxb = TWOPLANE_PLANEB;
byte* gfxb = PLANEB;
for(byte by : 0..199) {
for ( byte bx : 0..39) {
*gfxb++ = %00001111;
@ -467,31 +530,31 @@ void mode_twoplanebitmap() {
// GfxData/PlaneA Pixel Shifter (2), CharData/PlaneB Pixel Shifter (2):
// - 8bpp color (ColorData[3:0],CharData/PlaneB[1:0], GfxData/PlaneA[1:0])
void mode_sixsfred() {
const byte* SIXSFRED_PLANEA = $4000;
const byte* SIXSFRED_PLANEB = $6000;
const byte* SIXSFRED_COLORS = $8000;
const byte* PLANEA = $4000;
const byte* PLANEB = $6000;
const byte* COLORS = $8000;
// DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON;
// VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_MCM|VIC_CSEL;
// Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <SIXSFRED_PLANEA;
*DTV_PLANEA_START_MI = >SIXSFRED_PLANEA;
*DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <SIXSFRED_PLANEB;
*DTV_PLANEB_START_MI = >SIXSFRED_PLANEB;
*DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 1;
*DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0;
// DTV Color Bank
*DTV_COLOR_BANK_LO = <(SIXSFRED_COLORS/$400);
*DTV_COLOR_BANK_HI = >(SIXSFRED_COLORS/$400);
*DTV_COLOR_BANK_LO = <(COLORS/$400);
*DTV_COLOR_BANK_HI = >(COLORS/$400);
// DTV Palette - Grey Tones
for(byte i : 0..$f) {
DTV_PALETTE[i] = i;
@ -499,14 +562,14 @@ void mode_sixsfred() {
// Screen colors
*BORDERCOL = $00;
// Colors for high 4 bits of 8bpp
byte* col=SIXSFRED_COLORS;
byte* col=COLORS;
for(byte cy: 0..24 ) {
for(byte cx: 0..39) {
*col++ = (cx+cy) & $f;
}
}
// Graphics for Plane A () - horizontal stripes every 2 pixels
byte* gfxa = SIXSFRED_PLANEA;
byte* gfxa = PLANEA;
byte[] row_bitmask = { %00000000, %01010101, %10101010, %11111111 };
for(byte ay : 0..199) {
for (byte ax : 0..39) {
@ -515,7 +578,7 @@ void mode_sixsfred() {
}
}
// Graphics for Plane B - vertical stripes every 2 pixels
byte* gfxb = SIXSFRED_PLANEB;
byte* gfxb = PLANEB;
for(byte by : 0..199) {
for ( byte bx : 0..39) {
*gfxb++ = %00011011;
@ -537,31 +600,31 @@ void mode_sixsfred() {
// PlaneA Pixel Shifter (2), PlaneB Pixel Shifter (2):
// - 8bpp color (PlaneB[1:0],ColorData[5:4],PlaneA[1:0],ColorData[1:0])
void mode_sixsfred2() {
const byte* SIXSFRED2_PLANEA = $4000;
const byte* SIXSFRED2_PLANEB = $6000;
const byte* SIXSFRED2_COLORS = $8000;
const byte* PLANEA = $4000;
const byte* PLANEB = $6000;
const byte* COLORS = $8000;
// DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_LINEAR_ADDRESSING_ON;
// VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_MCM|VIC_CSEL;
// Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <SIXSFRED2_PLANEA;
*DTV_PLANEA_START_MI = >SIXSFRED2_PLANEA;
*DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <SIXSFRED2_PLANEB;
*DTV_PLANEB_START_MI = >SIXSFRED2_PLANEB;
*DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 1;
*DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0;
// DTV Color Bank
*DTV_COLOR_BANK_LO = <(SIXSFRED2_COLORS/$400);
*DTV_COLOR_BANK_HI = >(SIXSFRED2_COLORS/$400);
*DTV_COLOR_BANK_LO = <(COLORS/$400);
*DTV_COLOR_BANK_HI = >(COLORS/$400);
// DTV Palette - Grey Tones
for(byte i : 0..$f) {
DTV_PALETTE[i] = i;
@ -569,14 +632,14 @@ void mode_sixsfred2() {
// Screen colors
*BORDERCOL = $00;
// Colors for high 4 bits of 8bpp
byte* col=SIXSFRED2_COLORS;
byte* col=COLORS;
for(byte cy: 0..24 ) {
for(byte cx: 0..39) {
*col++ = (cx&3)<<4|(cy&3);
}
}
// Graphics for Plane A () - horizontal stripes every 2 pixels
byte* gfxa = SIXSFRED2_PLANEA;
byte* gfxa = PLANEA;
byte[] row_bitmask = { %00000000, %01010101, %10101010, %11111111 };
for(byte ay : 0..199) {
for (byte ax : 0..39) {
@ -585,7 +648,7 @@ void mode_sixsfred2() {
}
}
// Graphics for Plane B - vertical stripes every 2 pixels
byte* gfxb = SIXSFRED2_PLANEB;
byte* gfxb = PLANEB;
for(byte by : 0..199) {
for ( byte bx : 0..39) {
*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.
void mode_8bpppixelcell() {
// 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)
const byte* PIXELCELL8BPP_PLANEB = $4000;
const byte* PLANEB = $4000;
// DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON|DTV_CONTROL_CHUNKY_ON;
// VIC Graphics Mode
*VIC_CONTROL = VIC_ECM|VIC_DEN|VIC_RSEL|3;
*VIC_CONTROL2 = VIC_MCM|VIC_CSEL;
// Linear Graphics Plane A Counter
*DTV_PLANEA_START_LO = <PIXELCELL8BPP_PLANEA;
*DTV_PLANEA_START_MI = >PIXELCELL8BPP_PLANEA;
*DTV_PLANEA_START_LO = <PLANEA;
*DTV_PLANEA_START_MI = >PLANEA;
*DTV_PLANEA_START_HI = 0;
*DTV_PLANEA_STEP = 1;
*DTV_PLANEA_MODULO_LO = 0;
*DTV_PLANEA_MODULO_HI = 0;
// Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = <PIXELCELL8BPP_PLANEB;
*DTV_PLANEB_START_MI = >PIXELCELL8BPP_PLANEB;
*DTV_PLANEB_START_LO = <PLANEB;
*DTV_PLANEB_START_MI = >PLANEB;
*DTV_PLANEB_START_HI = 0;
*DTV_PLANEB_STEP = 0;
*DTV_PLANEB_MODULO_LO = 0;
@ -641,7 +704,7 @@ void mode_8bpppixelcell() {
DTV_PALETTE[i] = i;
}
// Screen Chars for Plane A (screen) - 16x16 repeating
byte* gfxa = PIXELCELL8BPP_PLANEA;
byte* gfxa = PLANEA;
for(byte ay : 0..24) {
for (byte ax : 0..39) {
*gfxa++ = (ay & $f)<<4 | (ax & $f);
@ -650,7 +713,7 @@ void mode_8bpppixelcell() {
// 8bpp cells for Plane B (charset) - ROM charset with 256 colors
*PROCPORT = $32;
byte* CHARGEN = $d000;
byte* gfxb = PIXELCELL8BPP_PLANEB;
byte* gfxb = PLANEB;
byte* chargen = CHARGEN;
byte col = 0;
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.
void mode_8bppchunkybmm() {
// 8BPP Chunky Bitmap (contains 8bpp pixels)
const dword CHUNKYBMM8BPP_PLANEB = $20000;
const dword PLANEB = $20000;
// DTV Graphics Mode
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON | DTV_CONTROL_CHUNKY_ON | DTV_CONTROL_COLORRAM_OFF;
// VIC Graphics Mode
*VIC_CONTROL = VIC_ECM | VIC_DEN | VIC_RSEL | 3;
*VIC_CONTROL2 = VIC_MCM | VIC_CSEL;
// Linear Graphics Plane B Counter
*DTV_PLANEB_START_LO = < < CHUNKYBMM8BPP_PLANEB;
*DTV_PLANEB_START_MI = > < CHUNKYBMM8BPP_PLANEB;
*DTV_PLANEB_START_HI = < > CHUNKYBMM8BPP_PLANEB;
*DTV_PLANEB_START_LO = < < PLANEB;
*DTV_PLANEB_START_MI = > < PLANEB;
*DTV_PLANEB_START_HI = < > PLANEB;
*DTV_PLANEB_STEP = 8;
*DTV_PLANEB_MODULO_LO = 0;
*DTV_PLANEB_MODULO_HI = 0;
@ -706,7 +769,7 @@ void mode_8bppchunkybmm() {
}
// 320x200 8bpp pixels for Plane B
byte gfxbCpuBank = (byte)(CHUNKYBMM8BPP_PLANEB/$4000);
byte gfxbCpuBank = (byte)(PLANEB/$4000);
dtvSetCpuBankSegment1(gfxbCpuBank++);
byte* gfxb = $4000;
for(byte y : 0..199) {

View File

@ -57,6 +57,7 @@
.const KEY_6 = $13
.const KEY_C = $14
.const KEY_7 = $18
.const KEY_8 = $1b
.const KEY_B = $1c
.const KEY_1 = $38
.const KEY_2 = $3b
@ -73,10 +74,10 @@ main: {
jmp b2
}
menu: {
.label MENU_SCREEN = $8000
.label MENU_CHARSET = $9800
.label SCREEN = $8000
.label CHARSET = $9800
.label c = 2
lda #($ffffffff&MENU_CHARSET)/$10000
lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK
lda #DTV_COLOR_BANK_DEFAULT/$400
sta DTV_COLOR_BANK_LO
@ -85,13 +86,13 @@ menu: {
sta DTV_CONTROL
lda #3
sta CIA2_PORT_A_DDR
lda #3^MENU_CHARSET/$4000
lda #3^CHARSET/$4000
sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL
lda #VIC_CSEL
sta VIC_CONTROL2
lda #(MENU_SCREEN&$3fff)/$40|(MENU_CHARSET&$3fff)/$400
lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY
ldx #0
b1:
@ -146,7 +147,7 @@ menu: {
jsr keyboard_key_pressed
cmp #0
beq b8
jsr mode_mcstdchar
jsr mode_mcchar
jmp breturn
b8:
ldx #KEY_6
@ -163,34 +164,41 @@ menu: {
jsr mode_hicolecmchar
jmp breturn
b10:
ldx #KEY_A
ldx #KEY_8
jsr keyboard_key_pressed
cmp #0
beq b11
jsr mode_sixsfred2
jsr mode_hicolmcchar
jmp breturn
b11:
ldx #KEY_B
ldx #KEY_A
jsr keyboard_key_pressed
cmp #0
beq b12
jsr mode_twoplanebitmap
jsr mode_sixsfred2
jmp breturn
b12:
ldx #KEY_C
ldx #KEY_B
jsr keyboard_key_pressed
cmp #0
beq b13
jsr mode_sixsfred
jsr mode_twoplanebitmap
jmp breturn
b13:
ldx #KEY_D
ldx #KEY_C
jsr keyboard_key_pressed
cmp #0
beq b14
jsr mode_8bpppixelcell
jsr mode_sixsfred
jmp breturn
b14:
ldx #KEY_D
jsr keyboard_key_pressed
cmp #0
beq b15
jsr mode_8bpppixelcell
jmp breturn
b15:
ldx #KEY_E
jsr keyboard_key_pressed
cmp #0
@ -201,7 +209,7 @@ menu: {
jmp breturn
}
mode_8bppchunkybmm: {
.const CHUNKYBMM8BPP_PLANEB = $20000
.const PLANEB = $20000
.label _20 = $a
.label gfxb = 5
.label x = 2
@ -212,11 +220,11 @@ mode_8bppchunkybmm: {
sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2
lda #CHUNKYBMM8BPP_PLANEB&$ffff
lda #PLANEB&$ffff
sta DTV_PLANEB_START_LO
lda #0
sta DTV_PLANEB_START_MI
lda #CHUNKYBMM8BPP_PLANEB>>$10
lda #PLANEB>>$10
sta DTV_PLANEB_START_HI
lda #8
sta DTV_PLANEB_STEP
@ -231,9 +239,9 @@ mode_8bppchunkybmm: {
inx
cpx #$10
bne b1
lda #CHUNKYBMM8BPP_PLANEB/$4000
lda #PLANEB/$4000
jsr dtvSetCpuBankSegment1
ldx #CHUNKYBMM8BPP_PLANEB/$4000+1
ldx #PLANEB/$4000+1
lda #0
sta y
lda #<$4000
@ -328,8 +336,8 @@ dtvSetCpuBankSegment1: {
rts
}
mode_8bpppixelcell: {
.label PIXELCELL8BPP_PLANEA = $3c00
.label PIXELCELL8BPP_PLANEB = $4000
.label PLANEA = $3c00
.label PLANEB = $4000
.label _12 = 7
.label gfxa = 2
.label ay = 4
@ -345,9 +353,9 @@ mode_8bpppixelcell: {
sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2
lda #<PIXELCELL8BPP_PLANEA
lda #<PLANEA
sta DTV_PLANEA_START_LO
lda #>PIXELCELL8BPP_PLANEA
lda #>PLANEA
sta DTV_PLANEA_START_MI
lda #0
sta DTV_PLANEA_START_HI
@ -356,9 +364,9 @@ mode_8bpppixelcell: {
lda #0
sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI
lda #<PIXELCELL8BPP_PLANEB
lda #<PLANEB
sta DTV_PLANEB_START_LO
lda #>PIXELCELL8BPP_PLANEB
lda #>PLANEB
sta DTV_PLANEB_START_MI
lda #0
sta DTV_PLANEB_START_HI
@ -373,9 +381,9 @@ mode_8bpppixelcell: {
inx
cpx #$10
bne b1
lda #<PIXELCELL8BPP_PLANEA
lda #<PLANEA
sta gfxa
lda #>PIXELCELL8BPP_PLANEA
lda #>PLANEA
sta gfxa+1
lda #0
sta ay
@ -410,9 +418,9 @@ mode_8bpppixelcell: {
lda #0
sta ch
sta col
lda #<PIXELCELL8BPP_PLANEB
lda #<PLANEB
sta gfxb
lda #>PIXELCELL8BPP_PLANEB
lda #>PLANEB
sta gfxb+1
lda #<$d000
sta chargen
@ -471,9 +479,9 @@ mode_8bpppixelcell: {
jmp breturn
}
mode_sixsfred: {
.label SIXSFRED_PLANEA = $4000
.label SIXSFRED_PLANEB = $6000
.label SIXSFRED_COLORS = $8000
.label PLANEA = $4000
.label PLANEB = $6000
.label COLORS = $8000
.label col = 2
.label cy = 4
.label gfxa = 2
@ -486,9 +494,9 @@ mode_sixsfred: {
sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2
lda #<SIXSFRED_PLANEA
lda #<PLANEA
sta DTV_PLANEA_START_LO
lda #>SIXSFRED_PLANEA
lda #>PLANEA
sta DTV_PLANEA_START_MI
lda #0
sta DTV_PLANEA_START_HI
@ -497,9 +505,9 @@ mode_sixsfred: {
lda #0
sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI
lda #<SIXSFRED_PLANEB
lda #<PLANEB
sta DTV_PLANEB_START_LO
lda #>SIXSFRED_PLANEB
lda #>PLANEB
sta DTV_PLANEB_START_MI
lda #0
sta DTV_PLANEB_START_HI
@ -508,9 +516,9 @@ mode_sixsfred: {
lda #0
sta DTV_PLANEB_MODULO_LO
sta DTV_PLANEB_MODULO_HI
lda #<SIXSFRED_COLORS/$400
lda #<COLORS/$400
sta DTV_COLOR_BANK_LO
lda #>SIXSFRED_COLORS/$400
lda #>COLORS/$400
sta DTV_COLOR_BANK_HI
ldx #0
b1:
@ -521,9 +529,9 @@ mode_sixsfred: {
bne b1
lda #0
sta BORDERCOL
lda #<SIXSFRED_COLORS
lda #<COLORS
sta col
lda #>SIXSFRED_COLORS
lda #>COLORS
sta col+1
lda #0
sta cy
@ -547,9 +555,9 @@ mode_sixsfred: {
lda cy
cmp #$19
bne b2
lda #<SIXSFRED_PLANEA
lda #<PLANEA
sta gfxa
lda #>SIXSFRED_PLANEA
lda #>PLANEA
sta gfxa+1
lda #0
sta ay
@ -576,9 +584,9 @@ mode_sixsfred: {
bne b4
lda #0
sta by
lda #<SIXSFRED_PLANEB
lda #<PLANEB
sta gfxb
lda #>SIXSFRED_PLANEB
lda #>PLANEB
sta gfxb+1
b6:
ldx #0
@ -609,9 +617,9 @@ mode_sixsfred: {
row_bitmask: .byte 0, $55, $aa, $ff
}
mode_twoplanebitmap: {
.label TWOPLANE_PLANEA = $4000
.label TWOPLANE_PLANEB = $6000
.label TWOPLANE_COLORS = $8000
.label PLANEA = $4000
.label PLANEB = $6000
.label COLORS = $8000
.label _15 = 7
.label col = 2
.label cy = 4
@ -625,9 +633,9 @@ mode_twoplanebitmap: {
sta VIC_CONTROL
lda #VIC_CSEL
sta VIC_CONTROL2
lda #<TWOPLANE_PLANEA
lda #<PLANEA
sta DTV_PLANEA_START_LO
lda #>TWOPLANE_PLANEA
lda #>PLANEA
sta DTV_PLANEA_START_MI
lda #0
sta DTV_PLANEA_START_HI
@ -636,9 +644,9 @@ mode_twoplanebitmap: {
lda #0
sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI
lda #<TWOPLANE_PLANEB
lda #<PLANEB
sta DTV_PLANEB_START_LO
lda #>TWOPLANE_PLANEB
lda #>PLANEB
sta DTV_PLANEB_START_MI
lda #0
sta DTV_PLANEB_START_HI
@ -647,9 +655,9 @@ mode_twoplanebitmap: {
lda #0
sta DTV_PLANEB_MODULO_LO
sta DTV_PLANEB_MODULO_HI
lda #<TWOPLANE_COLORS/$400
lda #<COLORS/$400
sta DTV_COLOR_BANK_LO
lda #>TWOPLANE_COLORS/$400
lda #>COLORS/$400
sta DTV_COLOR_BANK_HI
ldx #0
b1:
@ -664,9 +672,9 @@ mode_twoplanebitmap: {
sta BGCOL1
lda #$d4
sta BGCOL2
lda #<TWOPLANE_COLORS
lda #<COLORS
sta col
lda #>TWOPLANE_COLORS
lda #>COLORS
sta col+1
lda #0
sta cy
@ -696,9 +704,9 @@ mode_twoplanebitmap: {
lda cy
cmp #$19
bne b2
lda #<TWOPLANE_PLANEA
lda #<PLANEA
sta gfxa
lda #>TWOPLANE_PLANEA
lda #>PLANEA
sta gfxa+1
lda #0
sta ay
@ -726,9 +734,9 @@ mode_twoplanebitmap: {
bne b4
lda #0
sta by
lda #<TWOPLANE_PLANEB
lda #<PLANEB
sta gfxb
lda #>TWOPLANE_PLANEB
lda #>PLANEB
sta gfxb+1
b8:
ldx #0
@ -767,9 +775,9 @@ mode_twoplanebitmap: {
jmp b7
}
mode_sixsfred2: {
.label SIXSFRED2_PLANEA = $4000
.label SIXSFRED2_PLANEB = $6000
.label SIXSFRED2_COLORS = $8000
.label PLANEA = $4000
.label PLANEB = $6000
.label COLORS = $8000
.label _15 = 7
.label col = 2
.label cy = 4
@ -783,9 +791,9 @@ mode_sixsfred2: {
sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2
lda #<SIXSFRED2_PLANEA
lda #<PLANEA
sta DTV_PLANEA_START_LO
lda #>SIXSFRED2_PLANEA
lda #>PLANEA
sta DTV_PLANEA_START_MI
lda #0
sta DTV_PLANEA_START_HI
@ -794,9 +802,9 @@ mode_sixsfred2: {
lda #0
sta DTV_PLANEA_MODULO_LO
sta DTV_PLANEA_MODULO_HI
lda #<SIXSFRED2_PLANEB
lda #<PLANEB
sta DTV_PLANEB_START_LO
lda #>SIXSFRED2_PLANEB
lda #>PLANEB
sta DTV_PLANEB_START_MI
lda #0
sta DTV_PLANEB_START_HI
@ -805,9 +813,9 @@ mode_sixsfred2: {
lda #0
sta DTV_PLANEB_MODULO_LO
sta DTV_PLANEB_MODULO_HI
lda #<SIXSFRED2_COLORS/$400
lda #<COLORS/$400
sta DTV_COLOR_BANK_LO
lda #>SIXSFRED2_COLORS/$400
lda #>COLORS/$400
sta DTV_COLOR_BANK_HI
ldx #0
b1:
@ -818,9 +826,9 @@ mode_sixsfred2: {
bne b1
lda #0
sta BORDERCOL
lda #<SIXSFRED2_COLORS
lda #<COLORS
sta col
lda #>SIXSFRED2_COLORS
lda #>COLORS
sta col+1
lda #0
sta cy
@ -850,9 +858,9 @@ mode_sixsfred2: {
lda cy
cmp #$19
bne b2
lda #<SIXSFRED2_PLANEA
lda #<PLANEA
sta gfxa
lda #>SIXSFRED2_PLANEA
lda #>PLANEA
sta gfxa+1
lda #0
sta ay
@ -879,9 +887,9 @@ mode_sixsfred2: {
bne b4
lda #0
sta by
lda #<SIXSFRED2_PLANEB
lda #<PLANEB
sta gfxb
lda #>SIXSFRED2_PLANEB
lda #>PLANEB
sta gfxb+1
b6:
ldx #0
@ -911,18 +919,17 @@ mode_sixsfred2: {
jmp breturn
row_bitmask: .byte 0, $55, $aa, $ff
}
mode_hicolecmchar: {
.label ECMCHAR_SCREEN = $8000
.label ECMCHAR_CHARSET = $9000
.label ECMCHAR_COLORS = $8400
mode_hicolmcchar: {
.label SCREEN = $8000
.label CHARSET = $9000
.label COLORS = $8400
.label _26 = 7
.label _30 = 7
.label col = 2
.label ch = 5
.label cy = 4
lda #($ffffffff&ECMCHAR_CHARSET)/$10000
lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK
lda #ECMCHAR_COLORS/$400
lda #COLORS/$400
sta DTV_COLOR_BANK_LO
lda #0
sta DTV_COLOR_BANK_HI
@ -930,13 +937,13 @@ mode_hicolecmchar: {
sta DTV_CONTROL
lda #3
sta CIA2_PORT_A_DDR
lda #3^ECMCHAR_CHARSET/$4000
lda #3^CHARSET/$4000
sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|VIC_ECM|3
lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL
lda #VIC_CSEL
lda #VIC_CSEL|VIC_MCM
sta VIC_CONTROL2
lda #(ECMCHAR_SCREEN&$3fff)/$40|(ECMCHAR_CHARSET&$3fff)/$400
lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY
ldx #0
b1:
@ -953,15 +960,13 @@ mode_hicolecmchar: {
sta BGCOL2
lda #$58
sta BGCOL3
lda #$5c
sta BGCOL4
lda #<ECMCHAR_SCREEN
lda #<SCREEN
sta ch
lda #>ECMCHAR_SCREEN
lda #>SCREEN
sta ch+1
lda #<ECMCHAR_COLORS
lda #<COLORS
sta col
lda #>ECMCHAR_COLORS
lda #>COLORS
sta col+1
lda #0
sta cy
@ -984,16 +989,101 @@ mode_hicolecmchar: {
bne !+
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
and cy
asl
asl
asl
asl
sta _30
sta _26
txa
and #$f
ora _30
ora _26
ldy #0
sta (col),y
inc col
bne !+
inc col+1
!:
ldy #0
sta (ch),y
inc ch
@ -1018,16 +1108,16 @@ mode_hicolecmchar: {
jmp breturn
}
mode_hicolstdchar: {
.label HICOLSTDCHAR_SCREEN = $8000
.label HICOLSTDCHAR_CHARSET = $9000
.label HICOLSTDCHAR_COLORS = $8400
.label SCREEN = $8000
.label CHARSET = $9000
.label COLORS = $8400
.label _25 = 7
.label col = 2
.label ch = 5
.label cy = 4
lda #($ffffffff&HICOLSTDCHAR_CHARSET)/$10000
lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK
lda #HICOLSTDCHAR_COLORS/$400
lda #COLORS/$400
sta DTV_COLOR_BANK_LO
lda #0
sta DTV_COLOR_BANK_HI
@ -1035,13 +1125,13 @@ mode_hicolstdchar: {
sta DTV_CONTROL
lda #3
sta CIA2_PORT_A_DDR
lda #3^HICOLSTDCHAR_CHARSET/$4000
lda #3^CHARSET/$4000
sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL
lda #VIC_CSEL
sta VIC_CONTROL2
lda #(HICOLSTDCHAR_SCREEN&$3fff)/$40|(HICOLSTDCHAR_CHARSET&$3fff)/$400
lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY
ldx #0
b1:
@ -1053,13 +1143,13 @@ mode_hicolstdchar: {
lda #0
sta BGCOL
sta BORDERCOL
lda #<HICOLSTDCHAR_SCREEN
lda #<SCREEN
sta ch
lda #>HICOLSTDCHAR_SCREEN
lda #>SCREEN
sta ch+1
lda #<HICOLSTDCHAR_COLORS
lda #<COLORS
sta col
lda #>HICOLSTDCHAR_COLORS
lda #>COLORS
sta col+1
lda #0
sta cy
@ -1105,7 +1195,7 @@ mode_hicolstdchar: {
beq b5
jmp breturn
}
mode_mcstdchar: {
mode_mcchar: {
.label SCREEN = $8000
.label CHARSET = $9000
.label COLORS = $8400
@ -1299,29 +1389,29 @@ mode_ecmchar: {
jmp breturn
}
mode_stdchar: {
.label STDCHAR_SCREEN = $8000
.label STDCHAR_CHARSET = $9000
.label STDCHAR_COLORS = $8400
.label SCREEN = $8000
.label CHARSET = $9000
.label COLORS = $8400
.label _27 = 7
.label col = 2
.label ch = 5
.label cy = 4
lda #($ffffffff&STDCHAR_CHARSET)/$10000
lda #($ffffffff&CHARSET)/$10000
sta DTV_GRAPHICS_VIC_BANK
lda #STDCHAR_COLORS/$400
lda #COLORS/$400
sta DTV_COLOR_BANK_LO
lda #0
sta DTV_COLOR_BANK_HI
sta DTV_CONTROL
lda #3
sta CIA2_PORT_A_DDR
lda #3^STDCHAR_CHARSET/$4000
lda #3^CHARSET/$4000
sta CIA2_PORT_A
lda #VIC_DEN|VIC_RSEL|3
sta VIC_CONTROL
lda #VIC_CSEL
sta VIC_CONTROL2
lda #(STDCHAR_SCREEN&$3fff)/$40|(STDCHAR_CHARSET&$3fff)/$400
lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400
sta VIC_MEMORY
ldx #0
b1:
@ -1333,13 +1423,13 @@ mode_stdchar: {
lda #0
sta BGCOL
sta BORDERCOL
lda #<STDCHAR_SCREEN
lda #<SCREEN
sta ch
lda #>STDCHAR_SCREEN
lda #>SCREEN
sta ch+1
lda #<STDCHAR_COLORS
lda #<COLORS
sta col
lda #>STDCHAR_COLORS
lda #>COLORS
sta col+1
lda #0
sta cy
@ -1391,13 +1481,13 @@ mode_stdchar: {
}
print_str_lines: {
.label str = 2
lda #<menu.MENU_SCREEN
lda #<menu.SCREEN
sta print_line_cursor
lda #>menu.MENU_SCREEN
lda #>menu.SCREEN
sta print_line_cursor+1
lda #<menu.MENU_SCREEN
lda #<menu.SCREEN
sta print_char_cursor
lda #>menu.MENU_SCREEN
lda #>menu.SCREEN
sta print_char_cursor+1
lda #<MENU_TEXT
sta str
@ -1455,9 +1545,9 @@ print_ln: {
}
print_cls: {
.label sc = 2
lda #<menu.MENU_SCREEN
lda #<menu.SCREEN
sta sc
lda #>menu.MENU_SCREEN
lda #>menu.SCREEN
sta sc+1
b1:
lda #' '
@ -1468,10 +1558,10 @@ print_cls: {
inc sc+1
!:
lda sc+1
cmp #>menu.MENU_SCREEN+$3e8
cmp #>menu.SCREEN+$3e8
bne b1
lda sc
cmp #<menu.MENU_SCREEN+$3e8
cmp #<menu.SCREEN+$3e8
bne b1
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) @end
(byte*) BGCOL
@ -89,6 +89,8 @@
(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19
(byte) KEY_7
(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
(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10
(byte) KEY_B
@ -139,9 +141,9 @@
(byte) keyboard_key_pressed::colidx
(byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666
(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#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#11 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#20 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#25 reg byte a 202.0
(byte) keyboard_key_pressed::return#22 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#27 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#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#0 reg byte a 4.0
(byte[]) keyboard_matrix_col_bitmask
@ -191,47 +195,51 @@
(byte~) menu::$57 reg byte a 202.0
(byte~) menu::$61 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::@10
(label) menu::@11
(label) menu::@12
(label) menu::@13
(label) menu::@14
(label) menu::@17
(label) menu::@15
(label) menu::@18
(label) menu::@2
(label) menu::@20
(label) menu::@22
(label) menu::@24
(label) menu::@26
(label) menu::@28
(label) menu::@21
(label) menu::@23
(label) menu::@25
(label) menu::@27
(label) menu::@29
(label) menu::@3
(label) menu::@30
(label) menu::@32
(label) menu::@34
(label) menu::@36
(label) menu::@38
(label) menu::@31
(label) menu::@33
(label) menu::@35
(label) menu::@37
(label) menu::@39
(label) menu::@4
(label) menu::@41
(label) menu::@42
(label) menu::@44
(label) menu::@45
(label) menu::@47
(label) menu::@49
(label) menu::@51
(label) menu::@53
(label) menu::@55
(label) menu::@57
(label) menu::@59
(label) menu::@48
(label) menu::@50
(label) menu::@52
(label) menu::@54
(label) menu::@56
(label) menu::@58
(label) menu::@6
(label) menu::@61
(label) menu::@60
(label) menu::@62
(label) menu::@64
(label) menu::@66
(label) menu::@7
(label) menu::@8
(label) menu::@9
(label) menu::@return
(byte*) menu::MENU_CHARSET
(const byte*) menu::MENU_CHARSET#0 MENU_CHARSET = ((byte*))(word/dword/signed dword) 38912
(byte*) menu::MENU_SCREEN
(const byte*) menu::MENU_SCREEN#0 MENU_SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) menu::CHARSET
(const byte*) menu::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 38912
(byte*) menu::SCREEN
(const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) menu::c
(byte*) menu::c#1 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::@9
(label) mode_8bppchunkybmm::@return
(dword) mode_8bppchunkybmm::CHUNKYBMM8BPP_PLANEB
(const dword) mode_8bppchunkybmm::CHUNKYBMM8BPP_PLANEB#0 CHUNKYBMM8BPP_PLANEB = (dword/signed dword) 131072
(dword) mode_8bppchunkybmm::PLANEB
(const dword) mode_8bppchunkybmm::PLANEB#0 PLANEB = (dword/signed dword) 131072
(byte) mode_8bppchunkybmm::c
(byte) mode_8bppchunkybmm::c#0 reg byte a 2002.0
(byte*) mode_8bppchunkybmm::gfxb
@ -302,10 +310,10 @@
(label) mode_8bpppixelcell::@9
(label) mode_8bpppixelcell::@return
(byte*) mode_8bpppixelcell::CHARGEN
(byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEA
(const byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEA#0 PIXELCELL8BPP_PLANEA = ((byte*))(word/signed word/dword/signed dword) 15360
(byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEB
(const byte*) mode_8bpppixelcell::PIXELCELL8BPP_PLANEB#0 PIXELCELL8BPP_PLANEB = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_8bpppixelcell::PLANEA
(const byte*) mode_8bpppixelcell::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 15360
(byte*) mode_8bpppixelcell::PLANEB
(const byte*) mode_8bpppixelcell::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 16384
(byte) mode_8bpppixelcell::ax
(byte) mode_8bpppixelcell::ax#1 reg byte x 1501.5
(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::$26 $26 zp ZP_BYTE:7 1001.0
(byte~) mode_hicolecmchar::$27 reg byte a 2002.0
(byte~) mode_hicolecmchar::$28 reg byte a 2002.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
(byte~) mode_hicolecmchar::$31 reg byte a 202.0
(label) mode_hicolecmchar::@1
(label) mode_hicolecmchar::@16
(label) mode_hicolecmchar::@2
@ -408,29 +411,70 @@
(label) mode_hicolecmchar::@8
(label) mode_hicolecmchar::@9
(label) mode_hicolecmchar::@return
(byte*) mode_hicolecmchar::ECMCHAR_CHARSET
(const byte*) mode_hicolecmchar::ECMCHAR_CHARSET#0 ECMCHAR_CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_hicolecmchar::ECMCHAR_COLORS
(const byte*) mode_hicolecmchar::ECMCHAR_COLORS#0 ECMCHAR_COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_hicolecmchar::ECMCHAR_SCREEN
(const byte*) mode_hicolecmchar::ECMCHAR_SCREEN#0 ECMCHAR_SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_hicolecmchar::CHARSET
(const byte*) mode_hicolecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_hicolecmchar::COLORS
(const byte*) mode_hicolecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_hicolecmchar::SCREEN
(const byte*) mode_hicolecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_hicolecmchar::ch
(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::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#3 col zp ZP_WORD:2 202.0
(byte) mode_hicolecmchar::cx
(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#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#1 reg byte x 151.5
(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()
(byte~) mode_hicolstdchar::$24 reg byte a 2002.0
(byte~) mode_hicolstdchar::$25 $25 zp ZP_BYTE:7 1001.0
@ -445,12 +489,12 @@
(label) mode_hicolstdchar::@8
(label) mode_hicolstdchar::@9
(label) mode_hicolstdchar::@return
(byte*) mode_hicolstdchar::HICOLSTDCHAR_CHARSET
(const byte*) mode_hicolstdchar::HICOLSTDCHAR_CHARSET#0 HICOLSTDCHAR_CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_hicolstdchar::HICOLSTDCHAR_COLORS
(const byte*) mode_hicolstdchar::HICOLSTDCHAR_COLORS#0 HICOLSTDCHAR_COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_hicolstdchar::HICOLSTDCHAR_SCREEN
(const byte*) mode_hicolstdchar::HICOLSTDCHAR_SCREEN#0 HICOLSTDCHAR_SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_hicolstdchar::CHARSET
(const byte*) mode_hicolstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_hicolstdchar::COLORS
(const byte*) mode_hicolstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_hicolstdchar::SCREEN
(const byte*) mode_hicolstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_hicolstdchar::ch
(byte*) mode_hicolstdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(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::v
(byte) mode_hicolstdchar::v#0 reg byte a 1001.0
(void()) mode_mcstdchar()
(byte~) mode_mcstdchar::$25 reg byte a 2002.0
(byte~) mode_mcstdchar::$26 reg byte a 2002.0
(byte~) mode_mcstdchar::$27 reg byte a 2002.0
(byte~) mode_mcstdchar::$28 $28 zp ZP_BYTE:7 1001.0
(byte~) mode_mcstdchar::$29 reg byte a 2002.0
(byte~) mode_mcstdchar::$30 reg byte a 2002.0
(byte~) mode_mcstdchar::$33 reg byte a 202.0
(label) mode_mcstdchar::@1
(label) mode_mcstdchar::@16
(label) mode_mcstdchar::@2
(label) mode_mcstdchar::@3
(label) mode_mcstdchar::@4
(label) mode_mcstdchar::@5
(label) mode_mcstdchar::@8
(label) mode_mcstdchar::@9
(label) mode_mcstdchar::@return
(byte*) mode_mcstdchar::CHARSET
(const byte*) mode_mcstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_mcstdchar::COLORS
(const byte*) mode_mcstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_mcstdchar::SCREEN
(const byte*) mode_mcstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_mcstdchar::ch
(byte*) mode_mcstdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_mcstdchar::ch#2 ch zp ZP_WORD:5 310.4
(byte*) mode_mcstdchar::ch#3 ch zp ZP_WORD:5 202.0
(byte*) mode_mcstdchar::col
(byte*) mode_mcstdchar::col#1 col zp ZP_WORD:2 191.1818181818182
(byte*) mode_mcstdchar::col#2 col zp ZP_WORD:2 776.0
(byte*) mode_mcstdchar::col#3 col zp ZP_WORD:2 202.0
(byte) mode_mcstdchar::cx
(byte) mode_mcstdchar::cx#1 reg byte x 1501.5
(byte) mode_mcstdchar::cx#2 reg byte x 364.0
(byte) mode_mcstdchar::cy
(byte) mode_mcstdchar::cy#1 cy zp ZP_BYTE:4 151.5
(byte) mode_mcstdchar::cy#4 cy zp ZP_BYTE:4 157.42857142857144
(byte) mode_mcstdchar::i
(byte) mode_mcstdchar::i#1 reg byte x 151.5
(byte) mode_mcstdchar::i#2 reg byte x 202.0
(void()) mode_mcchar()
(byte~) mode_mcchar::$25 reg byte a 2002.0
(byte~) mode_mcchar::$26 reg byte a 2002.0
(byte~) mode_mcchar::$27 reg byte a 2002.0
(byte~) mode_mcchar::$28 $28 zp ZP_BYTE:7 1001.0
(byte~) mode_mcchar::$29 reg byte a 2002.0
(byte~) mode_mcchar::$30 reg byte a 2002.0
(byte~) mode_mcchar::$33 reg byte a 202.0
(label) mode_mcchar::@1
(label) mode_mcchar::@16
(label) mode_mcchar::@2
(label) mode_mcchar::@3
(label) mode_mcchar::@4
(label) mode_mcchar::@5
(label) mode_mcchar::@8
(label) mode_mcchar::@9
(label) mode_mcchar::@return
(byte*) mode_mcchar::CHARSET
(const byte*) mode_mcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_mcchar::COLORS
(const byte*) mode_mcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_mcchar::SCREEN
(const byte*) mode_mcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_mcchar::ch
(byte*) mode_mcchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_mcchar::ch#2 ch zp ZP_WORD:5 310.4
(byte*) mode_mcchar::ch#3 ch zp ZP_WORD:5 202.0
(byte*) mode_mcchar::col
(byte*) mode_mcchar::col#1 col zp ZP_WORD:2 191.1818181818182
(byte*) mode_mcchar::col#2 col zp ZP_WORD:2 776.0
(byte*) mode_mcchar::col#3 col zp ZP_WORD:2 202.0
(byte) mode_mcchar::cx
(byte) mode_mcchar::cx#1 reg byte x 1501.5
(byte) mode_mcchar::cx#2 reg byte x 364.0
(byte) mode_mcchar::cy
(byte) mode_mcchar::cy#1 cy zp ZP_BYTE:4 151.5
(byte) mode_mcchar::cy#4 cy zp ZP_BYTE:4 157.42857142857144
(byte) mode_mcchar::i
(byte) mode_mcchar::i#1 reg byte x 151.5
(byte) mode_mcchar::i#2 reg byte x 202.0
(void()) mode_sixsfred()
(byte~) mode_sixsfred::$15 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::@9
(label) mode_sixsfred::@return
(byte*) mode_sixsfred::SIXSFRED_COLORS
(const byte*) mode_sixsfred::SIXSFRED_COLORS#0 SIXSFRED_COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_sixsfred::SIXSFRED_PLANEA
(const byte*) mode_sixsfred::SIXSFRED_PLANEA#0 SIXSFRED_PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_sixsfred::SIXSFRED_PLANEB
(const byte*) mode_sixsfred::SIXSFRED_PLANEB#0 SIXSFRED_PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte*) mode_sixsfred::COLORS
(const byte*) mode_sixsfred::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_sixsfred::PLANEA
(const byte*) mode_sixsfred::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_sixsfred::PLANEB
(const byte*) mode_sixsfred::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte) mode_sixsfred::ax
(byte) mode_sixsfred::ax#1 reg byte x 1501.5
(byte) mode_sixsfred::ax#2 reg byte x 400.4
@ -595,12 +639,12 @@
(label) mode_sixsfred2::@8
(label) mode_sixsfred2::@9
(label) mode_sixsfred2::@return
(byte*) mode_sixsfred2::SIXSFRED2_COLORS
(const byte*) mode_sixsfred2::SIXSFRED2_COLORS#0 SIXSFRED2_COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_sixsfred2::SIXSFRED2_PLANEA
(const byte*) mode_sixsfred2::SIXSFRED2_PLANEA#0 SIXSFRED2_PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_sixsfred2::SIXSFRED2_PLANEB
(const byte*) mode_sixsfred2::SIXSFRED2_PLANEB#0 SIXSFRED2_PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte*) mode_sixsfred2::COLORS
(const byte*) mode_sixsfred2::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_sixsfred2::PLANEA
(const byte*) mode_sixsfred2::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_sixsfred2::PLANEB
(const byte*) mode_sixsfred2::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte) mode_sixsfred2::ax
(byte) mode_sixsfred2::ax#1 reg byte x 1501.5
(byte) mode_sixsfred2::ax#2 reg byte x 400.4
@ -655,12 +699,12 @@
(label) mode_stdchar::@8
(label) mode_stdchar::@9
(label) mode_stdchar::@return
(byte*) mode_stdchar::STDCHAR_CHARSET
(const byte*) mode_stdchar::STDCHAR_CHARSET#0 STDCHAR_CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_stdchar::STDCHAR_COLORS
(const byte*) mode_stdchar::STDCHAR_COLORS#0 STDCHAR_COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_stdchar::STDCHAR_SCREEN
(const byte*) mode_stdchar::STDCHAR_SCREEN#0 STDCHAR_SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_stdchar::CHARSET
(const byte*) mode_stdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864
(byte*) mode_stdchar::COLORS
(const byte*) mode_stdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792
(byte*) mode_stdchar::SCREEN
(const byte*) mode_stdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_stdchar::ch
(byte*) mode_stdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997
(byte*) mode_stdchar::ch#2 ch zp ZP_WORD:5 310.4
@ -703,12 +747,12 @@
(label) mode_twoplanebitmap::@8
(label) mode_twoplanebitmap::@9
(label) mode_twoplanebitmap::@return
(byte*) mode_twoplanebitmap::TWOPLANE_COLORS
(const byte*) mode_twoplanebitmap::TWOPLANE_COLORS#0 TWOPLANE_COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_twoplanebitmap::TWOPLANE_PLANEA
(const byte*) mode_twoplanebitmap::TWOPLANE_PLANEA#0 TWOPLANE_PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_twoplanebitmap::TWOPLANE_PLANEB
(const byte*) mode_twoplanebitmap::TWOPLANE_PLANEB#0 TWOPLANE_PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte*) mode_twoplanebitmap::COLORS
(const byte*) mode_twoplanebitmap::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768
(byte*) mode_twoplanebitmap::PLANEA
(const byte*) mode_twoplanebitmap::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
(byte*) mode_twoplanebitmap::PLANEB
(const byte*) mode_twoplanebitmap::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
(byte) mode_twoplanebitmap::ax
(byte) mode_twoplanebitmap::ax#1 reg byte x 1501.5
(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#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#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()
(label) print_cls::@1
(label) print_cls::@return
@ -782,16 +826,16 @@
(byte*) print_str_lines::str#3 str zp ZP_WORD:2 1552.0
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 ]
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 ]
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 ]
reg byte x [ keyboard_key_pressed::key#20 ]
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#22 ]
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::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: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 ]
@ -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::ax#2 mode_sixsfred2::ax#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::cx#2 mode_hicolecmchar::cx#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_mcstdchar::i#2 mode_mcstdchar::i#1 ]
reg byte x [ mode_mcstdchar::cx#2 mode_mcstdchar::cx#1 ]
reg byte x [ mode_mcchar::i#2 mode_mcchar::i#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::cx#2 mode_ecmchar::cx#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 ]
reg byte a [ keyboard_key_pressed::return#2 ]
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 [ menu::$41 ]
reg byte a [ menu::$33 ]
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 [ menu::$49 ]
reg byte a [ menu::$41 ]
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 [ 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 [ keyboard_key_pressed::return#10 ]
reg byte a [ menu::$61 ]
reg byte a [ keyboard_key_pressed::return#11 ]
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 [ keyboard_key_pressed::return#21 ]
reg byte a [ keyboard_key_pressed::return#23 ]
reg byte a [ mode_8bppchunkybmm::$27 ]
reg byte y [ keyboard_key_pressed::colidx#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::$14 ]
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_sixsfred::$15 ]
reg byte a [ mode_sixsfred::$16 ]
reg byte a [ mode_sixsfred::$19 ]
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_twoplanebitmap::$14 ]
reg byte a [ mode_twoplanebitmap::$16 ]
reg byte a [ mode_twoplanebitmap::$17 ]
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_sixsfred2::$14 ]
reg byte a [ mode_sixsfred2::$16 ]
reg byte a [ mode_sixsfred2::$17 ]
reg byte a [ mode_sixsfred2::$20 ]
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_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::$27 ]
reg byte a [ mode_hicolecmchar::$28 ]
reg byte a [ mode_hicolecmchar::$29 ]
reg byte a [ mode_hicolecmchar::v#0 ]
reg byte a [ keyboard_key_pressed::return#17 ]
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::$26 ]
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_mcstdchar::$25 ]
reg byte a [ mode_mcstdchar::$26 ]
reg byte a [ mode_mcstdchar::$27 ]
reg byte a [ mode_mcstdchar::$29 ]
reg byte a [ mode_mcstdchar::$30 ]
reg byte a [ keyboard_key_pressed::return#14 ]
reg byte a [ mode_mcstdchar::$33 ]
reg byte a [ mode_mcchar::$25 ]
reg byte a [ mode_mcchar::$26 ]
reg byte a [ mode_mcchar::$27 ]
reg byte a [ mode_mcchar::$29 ]
reg byte a [ mode_mcchar::$30 ]
reg byte a [ keyboard_key_pressed::return#15 ]
reg byte a [ mode_mcchar::$33 ]
reg byte a [ mode_ecmchar::$25 ]
reg byte a [ mode_ecmchar::$26 ]
reg byte a [ mode_ecmchar::$27 ]
reg byte a [ mode_ecmchar::$29 ]
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_stdchar::$24 ]
reg byte a [ mode_stdchar::$25 ]
reg byte a [ mode_stdchar::$26 ]
reg byte a [ mode_stdchar::$28 ]
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 [ print_str_lines::ch#0 ]