mirror of
https://github.com/StewBC/cc65-Chess.git
synced 2024-12-27 22:32:55 +00:00
Oric-1/Atmos/Telestrat port
This commit is contained in:
parent
c11fed446b
commit
4ebb8172d7
4
Makefile
4
Makefile
@ -9,7 +9,7 @@
|
||||
|
||||
# Space or comma separated list of cc65 supported target platforms to build for.
|
||||
# Default: c64 (lowercase!)
|
||||
TARGETS := c64 apple2
|
||||
TARGETS := c64 apple2 oric
|
||||
|
||||
# Name of the final, single-file executable.
|
||||
# Default: name of the current dir with target name appended
|
||||
@ -61,7 +61,7 @@ POSTEMUCMD :=
|
||||
|
||||
# On Windows machines VICE emulators may not be available in the PATH by default.
|
||||
# In such case, please set the variable below to point to directory containing
|
||||
# VICE emulators.
|
||||
# VICE emulators.
|
||||
#VICE_HOME := "C:\Program Files\WinVICE-2.2-x86\"
|
||||
VICE_HOME :=
|
||||
|
||||
|
16
Makefile-tap.mk
Normal file
16
Makefile-tap.mk
Normal file
@ -0,0 +1,16 @@
|
||||
TAP = cc65-Chess.tap
|
||||
|
||||
# Unix or Windows
|
||||
ifeq ($(shell echo),)
|
||||
CP = cp $1
|
||||
else
|
||||
CP = copy $(subst /,\,$1)
|
||||
endif
|
||||
|
||||
REMOVES += $(TAP)
|
||||
|
||||
.PHONY: tap
|
||||
tap: $(TAP)
|
||||
|
||||
$(TAP): cc65-chess.oric
|
||||
$(call CP, $< $@)
|
20
readme.txt
20
readme.txt
@ -1,5 +1,7 @@
|
||||
0. Updates
|
||||
|
||||
May 2020 - [raxiss] created a nice Oric-1/Atmos/Telestrat port. See X below.
|
||||
|
||||
Jan 2020 - Oliver Schmidt created a beautiful Apple II port. See IX below.
|
||||
|
||||
There is a Commodore 64 .PRG and an Apple II .DSK file in the release tab.
|
||||
@ -28,7 +30,7 @@ The colors here refer to the C64 version. The terminal version has a minimal
|
||||
working display but does try to somewhat match the colors of the C64.
|
||||
|
||||
The user controls an on-screen cursor. The cursor changes color to indicate
|
||||
a state. The colors for selection are:
|
||||
a state. The colors for selection are:
|
||||
Green - the piece can be selected
|
||||
Red - The piece cannot be selected as it doesn't have valid moves
|
||||
Purple - Empty tile or piece on the other side
|
||||
@ -47,9 +49,9 @@ and down cursor keys to change the selection.
|
||||
While a side is under human control, there are a few more options. Press B to
|
||||
toggle on/off a state showing on every tile how many of both black and white's
|
||||
pieces can attack that tile. Pressing A will toggle a highlight of all of the
|
||||
pieces on the opposing side that attack the selected tile. Pressing D will
|
||||
pieces on the opposing side that attack the selected tile. Pressing D will
|
||||
toggle a highlight of all the pieces on the side currently playing's side that
|
||||
can defend the selected tile. All three of these options basically give a
|
||||
can defend the selected tile. All three of these options basically give a
|
||||
visual representation of the Attack DB. The colors are: For attackers Cyan
|
||||
and for defenders Red.
|
||||
|
||||
@ -274,13 +276,21 @@ all make commands.
|
||||
|
||||
NOTES:
|
||||
1) Find AppleCommander here (I used Version 1.5.0):
|
||||
https://github.com/AppleCommander/AppleCommander/releases
|
||||
https://github.com/AppleCommander/AppleCommander/releases
|
||||
2) Set the environment variable (or change the Makefile-dsk.md) to point at the
|
||||
apple commander jar file. Here's how it's done for different shell's:
|
||||
Powershell:
|
||||
$env:AC = "path to apple commander.jar"
|
||||
cmd.exe
|
||||
cmd.exe
|
||||
set AC="path to apple commander.jar"
|
||||
bash (Unix or macOS terminal):
|
||||
export AC="path to apple commander.jar"
|
||||
|
||||
XI. Oric Build Instructions
|
||||
To build the Oric-1/Atmos/Telestrat version set the environment variable CC65_HOME
|
||||
with the path to the base cc65 directory i.e: export CC65_HOME=${HOME}/cc65
|
||||
|
||||
and use the make command line:
|
||||
make TARGETS=oric CC65TARGET=atmos OPTIONS=optspeed tap
|
||||
|
||||
This will create a ready to run TAP file: cc65-Chess.tap
|
||||
|
45
src/oric/oric.cfg
Normal file
45
src/oric/oric.cfg
Normal file
@ -0,0 +1,45 @@
|
||||
SYMBOLS {
|
||||
__TAPE__: type = import;
|
||||
__BASHDR__: type = import;
|
||||
__PROGFLAG__: type = weak, value = $00; # $00=BASIC, $80=machine code
|
||||
__AUTORUN__: type = weak, value = $C7; # $00=only load, $C7=run
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2K stack
|
||||
__GRAB__: type = weak, value = 0; # 0=don't grab graphics RAM, 1=grab graphics RAM
|
||||
__RAMEND__: type = weak, value = $9900 + $1C00 * __GRAB__;
|
||||
}
|
||||
MEMORY {
|
||||
ZP: file = "", define = yes, start = $00E2, size = $001A;
|
||||
TAPE: file = %O, type = ro, start = $0000, size = $001F;
|
||||
BASHEAD: file = %O, define = yes, start = $0501, size = $000D;
|
||||
MAIN: file = %O, define = yes, start = __BASHEAD_LAST__, size = __RAMEND__ - __MAIN_START__;
|
||||
BSS: file = "", start = __ONCE_RUN__, size = __RAMEND__ - __STACKSIZE__ - __ONCE_RUN__;
|
||||
}
|
||||
SEGMENTS {
|
||||
ZEROPAGE: load = ZP, type = zp;
|
||||
TAPE: load = TAPE, type = ro;
|
||||
BASHDR: load = BASHEAD, type = ro, optional = yes;
|
||||
STARTUP: load = MAIN, type = ro;
|
||||
LOWCODE: load = MAIN, type = ro, optional = yes;
|
||||
CODE: load = MAIN, type = ro;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = rw;
|
||||
ONCE: load = MAIN, type = ro, define = yes;
|
||||
BASTAIL: load = MAIN, type = ro, optional = yes;
|
||||
BSS: load = BSS, type = bss, define = yes;
|
||||
}
|
||||
FEATURES {
|
||||
CONDES: type = constructor,
|
||||
label = __CONSTRUCTOR_TABLE__,
|
||||
count = __CONSTRUCTOR_COUNT__,
|
||||
segment = ONCE;
|
||||
CONDES: type = destructor,
|
||||
label = __DESTRUCTOR_TABLE__,
|
||||
count = __DESTRUCTOR_COUNT__,
|
||||
segment = RODATA;
|
||||
CONDES: type = interruptor,
|
||||
label = __INTERRUPTOR_TABLE__,
|
||||
count = __INTERRUPTOR_COUNT__,
|
||||
segment = RODATA,
|
||||
import = __CALLIRQ__;
|
||||
}
|
534
src/oric/platOric.c
Normal file
534
src/oric/platOric.c
Normal file
@ -0,0 +1,534 @@
|
||||
/*
|
||||
* platOric.c
|
||||
* cc65 Chess
|
||||
*
|
||||
* Implementation for Oric by [raxiss], May 2020
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../types.h"
|
||||
#include "../globals.h"
|
||||
#include "../undo.h"
|
||||
#include "../frontend.h"
|
||||
#include "../plat.h"
|
||||
|
||||
#include "platOric.h"
|
||||
|
||||
#define BOARD_X 1
|
||||
#define BOARD_Y 18
|
||||
|
||||
#define BOARD_PIECE_WIDTH 3
|
||||
#define BOARD_PIECE_HEIGHT 22
|
||||
|
||||
#define CHAR_HEIGHT 8
|
||||
#define LOG_WINDOW_HEIGHT 23
|
||||
|
||||
#define SCREEN_WIDTH 40
|
||||
#define SCREEN_HEIGHT 200
|
||||
|
||||
#define ROP_CPY 0x40
|
||||
#define ROP_INV 0xc0
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
static char moveBuf[7];
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
extern char hires_CharSet[96][CHAR_HEIGHT];
|
||||
extern char hires_Pieces[4*7*BOARD_PIECE_WIDTH*BOARD_PIECE_HEIGHT];
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
static void clrmenu(void);
|
||||
static void cputs(char* s);
|
||||
static void gotoxy(int x, int y);
|
||||
static void revers(char flag);
|
||||
static void cprintf(char* fmt, char* s);
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
#define peek(addr) ((unsigned char*)addr)[0]
|
||||
#define poke(addr, val) {((unsigned char*)addr)[0] = val;}
|
||||
#define deek(addr) ((unsigned int*)addr)[0]
|
||||
#define doke(addr, val) {((unsigned int*)addr)[0] = val;}
|
||||
#define unused(x) (void)(x)
|
||||
/*-----------------------------------------------------------------------*/
|
||||
// Names of the pieces NONE, Rook, knight, Bishop, Queen, King, pawn
|
||||
// static const char sc_pieces[] = {'\0','R','k','B','Q','K','p'};
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_Init(void)
|
||||
{
|
||||
char i;
|
||||
unsigned int n;
|
||||
|
||||
setup();
|
||||
clrmenu();
|
||||
|
||||
// Show credits and wait for key press
|
||||
plat_DrawString(2,SCREEN_HEIGHT/2-10-CHAR_HEIGHT/2,
|
||||
ROP_CPY,gszAbout);
|
||||
plat_DrawString(1,SCREEN_HEIGHT/2+10-CHAR_HEIGHT/2,
|
||||
ROP_CPY,"Oric-1/Atmos version by [raxiss], 2020.");
|
||||
|
||||
n = 0*2*7*BOARD_PIECE_HEIGHT + 0*7*BOARD_PIECE_HEIGHT + (KING-1);
|
||||
hires_Draw(SCREEN_WIDTH/2-2,SCREEN_HEIGHT/2-50-BOARD_PIECE_HEIGHT/2,
|
||||
BOARD_PIECE_WIDTH,BOARD_PIECE_HEIGHT,ROP_CPY,
|
||||
&hires_Pieces[n*BOARD_PIECE_WIDTH]);
|
||||
|
||||
n = 1*2*7*BOARD_PIECE_HEIGHT + 0*7*BOARD_PIECE_HEIGHT + (KING-1);
|
||||
hires_Draw(SCREEN_WIDTH/2-2,SCREEN_HEIGHT/2+50-BOARD_PIECE_HEIGHT/2,
|
||||
BOARD_PIECE_WIDTH,BOARD_PIECE_HEIGHT,ROP_CPY,
|
||||
&hires_Pieces[n*BOARD_PIECE_WIDTH]);
|
||||
|
||||
plat_ReadKeys(1);
|
||||
|
||||
hires();
|
||||
// Draw the board border and
|
||||
// add the A..H and 1..8 tile-keys
|
||||
for(i=0; i<8; ++i)
|
||||
{
|
||||
for(n=0; n<BOARD_PIECE_HEIGHT; ++n)
|
||||
{
|
||||
poke(0xa000+(18+i*BOARD_PIECE_HEIGHT+n)*40,0x41);
|
||||
poke(0xa000+(18+i*BOARD_PIECE_HEIGHT+n)*40+25,0x60);
|
||||
}
|
||||
for(n=0; n<BOARD_PIECE_WIDTH; ++n)
|
||||
{
|
||||
poke(0xa000+(17+0*BOARD_PIECE_HEIGHT)*40+i*BOARD_PIECE_WIDTH+n+1,0x7f);
|
||||
poke(0xa000+(18+8*BOARD_PIECE_HEIGHT)*40+i*BOARD_PIECE_WIDTH+n+1,0x7f);
|
||||
}
|
||||
plat_DrawChar(2+i*BOARD_PIECE_WIDTH,4,ROP_CPY,i+'A');
|
||||
plat_DrawChar(26,SCREEN_HEIGHT-22-i*BOARD_PIECE_HEIGHT,ROP_CPY,i+'1');
|
||||
}
|
||||
|
||||
clrmenu();
|
||||
|
||||
// Setting this to 0 will not show the "Quit" option in the main menu
|
||||
gReturnToOS = 1;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
char plat_Menu(char **menuItems, char height, char *scroller)
|
||||
{
|
||||
int keyMask;
|
||||
char i, j;
|
||||
|
||||
clrmenu();
|
||||
|
||||
// Show the title or the scroller if that is more relevant.
|
||||
cputs(scroller == gszAbout ? menuItems[0] : scroller);
|
||||
|
||||
// Select the first item
|
||||
i = 1;
|
||||
do
|
||||
{
|
||||
// Show all the menu items
|
||||
for(j=1; j<height; ++j)
|
||||
{
|
||||
if(!menuItems[j])
|
||||
break;
|
||||
|
||||
gotoxy(((j-1)%2)*SCREEN_WIDTH/2,((j-1)/2)+1);
|
||||
|
||||
// Highlight the selected item
|
||||
if(j==i)
|
||||
revers(1);
|
||||
|
||||
cprintf(" %s ",menuItems[j]);
|
||||
|
||||
if(j==i)
|
||||
revers(0);
|
||||
}
|
||||
|
||||
// Look for user input
|
||||
keyMask = plat_ReadKeys(1);
|
||||
|
||||
if(keyMask & INPUT_MOTION)
|
||||
{
|
||||
switch(keyMask & INPUT_MOTION)
|
||||
{
|
||||
case INPUT_LEFT:
|
||||
if(!--i)
|
||||
i = j-1;
|
||||
break;
|
||||
|
||||
case INPUT_RIGHT:
|
||||
if(j == ++i)
|
||||
i = 1;
|
||||
break;
|
||||
|
||||
case INPUT_UP:
|
||||
if(i > 2)
|
||||
i -= 2;
|
||||
else
|
||||
i = j-1-(i-1)%2;
|
||||
break;
|
||||
|
||||
case INPUT_DOWN:
|
||||
if(i < j-2)
|
||||
i += 2;
|
||||
else
|
||||
i = 1+(i-1)%2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
keyMask &= (INPUT_SELECT | INPUT_BACKUP);
|
||||
|
||||
} while(keyMask != INPUT_SELECT && keyMask != INPUT_BACKUP);
|
||||
|
||||
clrmenu();
|
||||
|
||||
// If backing out of the menu, return 0
|
||||
if(keyMask & INPUT_BACKUP)
|
||||
return 0;
|
||||
|
||||
// Return the selection
|
||||
return i;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
extern char hires_xpos;
|
||||
extern char hires_ypos;
|
||||
extern char hires_xsize;
|
||||
extern char hires_ysize;
|
||||
extern char hires_rop;
|
||||
extern char hires_clr;
|
||||
extern char* hires_src;
|
||||
void hires_MaskA(void);
|
||||
void hires_DrawA(void);
|
||||
void hires_DrawCharA(void);
|
||||
void hires_DrawClrA(void);
|
||||
void hires_SelectA(void);
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void hires_Mask(char xpos, char ypos, char xsize, char ysize, char rop)
|
||||
{
|
||||
hires_xpos = xpos;
|
||||
hires_ypos = ypos;
|
||||
hires_xsize = xsize;
|
||||
hires_ysize = ysize;
|
||||
hires_rop = rop;
|
||||
hires_MaskA();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void hires_Draw(char xpos, char ypos, char xsize, char ysize, char rop, char *src)
|
||||
{
|
||||
hires_xpos = xpos;
|
||||
hires_ypos = ypos;
|
||||
hires_xsize = xsize;
|
||||
hires_ysize = ysize;
|
||||
hires_rop = rop;
|
||||
hires_src = src;
|
||||
hires_DrawA();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void hires_DrawClr(char xpos, char ypos, char clr)
|
||||
{
|
||||
hires_xpos = xpos;
|
||||
hires_ypos = ypos;
|
||||
hires_clr = clr;
|
||||
hires_DrawClrA();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void hires_Select(char xpos, char ypos, char xsize, char ysize, char rop, char *src)
|
||||
{
|
||||
hires_xpos = xpos;
|
||||
hires_ypos = ypos;
|
||||
hires_xsize = xsize;
|
||||
hires_ysize = ysize;
|
||||
hires_rop = rop;
|
||||
hires_src = src;
|
||||
hires_SelectA();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_DrawChar(char xpos, char ypos, char rop, char c)
|
||||
{
|
||||
hires_xpos = xpos;
|
||||
hires_ypos = ypos;
|
||||
hires_rop = rop;
|
||||
hires_src = hires_CharSet[c-' '];
|
||||
hires_DrawCharA();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_DrawString(char x, char y, char rop, char *s)
|
||||
{
|
||||
while(*s)
|
||||
plat_DrawChar(x++,y, rop, *s++);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_UpdateScreen(void)
|
||||
{
|
||||
memset(moveBuf,0x20,6); moveBuf[6] = 0;
|
||||
plat_DrawString(SCREEN_WIDTH-6,(LOG_WINDOW_HEIGHT+1)*CHAR_HEIGHT,
|
||||
ROP_CPY,moveBuf);
|
||||
|
||||
/*
|
||||
switch(gOutcome)
|
||||
{
|
||||
case OUTCOME_INVALID:
|
||||
case OUTCOME_OK:
|
||||
case OUTCOME_CHECK:
|
||||
case OUTCOME_CHECKMATE:
|
||||
case OUTCOME_DRAW:
|
||||
case OUTCOME_STALEMATE:
|
||||
case OUTCOME_MENU:
|
||||
case OUTCOME_ABANDON:
|
||||
case OUTCOME_QUIT:
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_DrawBoard(char clearLog)
|
||||
{
|
||||
int i;
|
||||
|
||||
if(clearLog)
|
||||
hires_Mask(27,0,SCREEN_WIDTH-27,SCREEN_HEIGHT,ROP_CPY);
|
||||
|
||||
// Redraw all tiles
|
||||
for(i=0; i<64; ++i)
|
||||
plat_DrawSquare(i);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_DrawSquare(char position)
|
||||
{
|
||||
char y = position / 8, x = position & 7;
|
||||
char piece = gChessBoard[y][x];
|
||||
char blackWhite = !((x & 1) ^ (y & 1));
|
||||
char pieceBlackWhite = !(piece & PIECE_WHITE);
|
||||
|
||||
unsigned int idx = blackWhite*7*BOARD_PIECE_HEIGHT + (piece&PIECE_DATA);
|
||||
|
||||
if(piece) idx += pieceBlackWhite*2*7*BOARD_PIECE_HEIGHT;
|
||||
|
||||
hires_Draw(BOARD_X+x*BOARD_PIECE_WIDTH,BOARD_Y+y*BOARD_PIECE_HEIGHT,
|
||||
BOARD_PIECE_WIDTH,BOARD_PIECE_HEIGHT,ROP_CPY,
|
||||
&hires_Pieces[idx*BOARD_PIECE_WIDTH]);
|
||||
|
||||
// Show the attack numbers
|
||||
if(gShowAttackBoard)
|
||||
{
|
||||
char val[4];
|
||||
char rop = blackWhite ? ROP_INV : ROP_CPY;
|
||||
|
||||
sprintf(val,"%02X%d",gChessBoard[y][x],(gChessBoard[y][x]&PIECE_WHITE)>>7);
|
||||
|
||||
plat_DrawChar(BOARD_X+x*BOARD_PIECE_WIDTH,BOARD_Y+(y+1)*BOARD_PIECE_HEIGHT-CHAR_HEIGHT,
|
||||
rop,(gpAttackBoard[giAttackBoardOffset[position][0]])+'0');
|
||||
plat_DrawChar(BOARD_X+(x+1)*BOARD_PIECE_WIDTH-1,BOARD_Y+(y+1)*BOARD_PIECE_HEIGHT-CHAR_HEIGHT,
|
||||
rop,(gpAttackBoard[giAttackBoardOffset[position][1]])+'0');
|
||||
plat_DrawString(BOARD_X+x*BOARD_PIECE_WIDTH,BOARD_Y+y*BOARD_PIECE_HEIGHT,rop,val);
|
||||
}
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_ShowSideToGoLabel(char side)
|
||||
{
|
||||
plat_DrawString(28,SCREEN_HEIGHT-CHAR_HEIGHT,
|
||||
side?ROP_CPY:ROP_INV,gszSideLabel[side]);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_Highlight(char position, char color, char cursor)
|
||||
{
|
||||
char y = position / 8, x = position & 7;
|
||||
char sel = color == HCOLOR_ATTACK? 3:2;
|
||||
|
||||
memset(moveBuf,0x20,6); moveBuf[6] = 0;
|
||||
moveBuf[0] = 'A' + (gTile[0] & 7);
|
||||
moveBuf[1] = '8' - (gTile[0] / 8);
|
||||
|
||||
switch(color)
|
||||
{
|
||||
case HCOLOR_INVALID: // 2
|
||||
case HCOLOR_EMPTY: // 4
|
||||
hires_DrawClr(SCREEN_WIDTH-6-1,(LOG_WINDOW_HEIGHT+1)*CHAR_HEIGHT,1);
|
||||
moveBuf[2] = 0;
|
||||
break;
|
||||
case HCOLOR_ATTACK: // 3
|
||||
hires_DrawClr(SCREEN_WIDTH-6-1,(LOG_WINDOW_HEIGHT+1)*CHAR_HEIGHT,2);
|
||||
moveBuf[2] = (gPiece[1] & PIECE_DATA) != NONE ? 'x' : '-';
|
||||
moveBuf[3] = 'A' + (gTile[1] & 7);
|
||||
moveBuf[4] = '8' - (gTile[1] / 8);
|
||||
break;
|
||||
case HCOLOR_VALID: // 5
|
||||
hires_DrawClr(SCREEN_WIDTH-6-1,(LOG_WINDOW_HEIGHT+1)*CHAR_HEIGHT,2);
|
||||
moveBuf[2] = 0;
|
||||
break;
|
||||
case HCOLOR_SELECTED: // 6
|
||||
moveBuf[2] = (gPiece[1] & PIECE_DATA) != NONE ? 'x' : '-';
|
||||
moveBuf[3] = 'A' + (gTile[1] & 7);
|
||||
moveBuf[4] = '8' - (gTile[1] / 8);
|
||||
break;
|
||||
}
|
||||
|
||||
plat_DrawString(SCREEN_WIDTH-6,(LOG_WINDOW_HEIGHT+1)*CHAR_HEIGHT,
|
||||
color?ROP_CPY:ROP_INV,moveBuf);
|
||||
|
||||
plat_DrawSquare(position);
|
||||
hires_Select(BOARD_X+x*BOARD_PIECE_WIDTH,BOARD_Y+y*BOARD_PIECE_HEIGHT,
|
||||
BOARD_PIECE_WIDTH,BOARD_PIECE_HEIGHT,ROP_CPY,
|
||||
&hires_Pieces[sel*7*BOARD_PIECE_HEIGHT*BOARD_PIECE_WIDTH]);
|
||||
|
||||
unused(cursor); // silence compiler
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_ShowMessage(char *str, char color)
|
||||
{
|
||||
plat_DrawString(26,0,ROP_CPY,str);
|
||||
unused(color); // silence compiler
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_ClearMessage(void)
|
||||
{
|
||||
hires_Mask(26,0,7,CHAR_HEIGHT,ROP_CPY);
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_AddToLogWin(void)
|
||||
{
|
||||
char y;
|
||||
|
||||
for(y=0; y<=LOG_WINDOW_HEIGHT; ++y)
|
||||
{
|
||||
hires_Mask(SCREEN_WIDTH-6,y*CHAR_HEIGHT,
|
||||
6,CHAR_HEIGHT,ROP_CPY);
|
||||
|
||||
if(undo_FindUndoLine(LOG_WINDOW_HEIGHT-y))
|
||||
{
|
||||
frontend_FormatLogString();
|
||||
// force 2 empty lines
|
||||
if(1<y)
|
||||
{
|
||||
plat_DrawString(SCREEN_WIDTH-6,y*CHAR_HEIGHT,
|
||||
gColor[0]?ROP_CPY:ROP_INV,gLogStrBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void plat_AddToLogWinTop(void)
|
||||
{
|
||||
plat_AddToLogWin();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
int plat_ReadKeys(char blocking)
|
||||
{
|
||||
char key = 0;
|
||||
int keyMask = 0;
|
||||
|
||||
if(blocking)
|
||||
{
|
||||
do key = getkey(); while(!key);
|
||||
}
|
||||
else
|
||||
key = getkey();
|
||||
|
||||
switch(key)
|
||||
{
|
||||
case KEY_LEFT:
|
||||
keyMask |= INPUT_LEFT;
|
||||
break;
|
||||
|
||||
case KEY_RIGHT:
|
||||
keyMask |= INPUT_RIGHT;
|
||||
break;
|
||||
|
||||
case KEY_UP:
|
||||
keyMask |= INPUT_UP;
|
||||
break;
|
||||
|
||||
case KEY_DOWN:
|
||||
keyMask |= INPUT_DOWN;
|
||||
break;
|
||||
|
||||
case KEY_ESC:
|
||||
keyMask |= INPUT_BACKUP;
|
||||
break;
|
||||
|
||||
case KEY_RETURN:
|
||||
keyMask |= INPUT_SELECT;
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
case 'a': // Show Attackers
|
||||
keyMask |= INPUT_TOGGLE_A;
|
||||
break;
|
||||
|
||||
case 'B':
|
||||
case 'b': // Board attacks - Show all attacks
|
||||
keyMask |= INPUT_TOGGLE_B;
|
||||
break;
|
||||
|
||||
case 'D':
|
||||
case 'd': // Show Defenders
|
||||
keyMask |= INPUT_TOGGLE_D;
|
||||
break;
|
||||
|
||||
case 'M':
|
||||
case 'm':
|
||||
keyMask |= INPUT_MENU;
|
||||
break;
|
||||
|
||||
case 'R':
|
||||
case 'r':
|
||||
keyMask |= INPUT_REDO;
|
||||
break;
|
||||
|
||||
case 'U':
|
||||
case 'u':
|
||||
keyMask |= INPUT_UNDO;
|
||||
break;
|
||||
}
|
||||
|
||||
return keyMask;
|
||||
}
|
||||
|
||||
void plat_Shutdown(void)
|
||||
{
|
||||
quit();
|
||||
}
|
||||
|
||||
|
||||
static char* scrptr = (char*)(0xbb80+25*40);
|
||||
static char inverse = 0x00;
|
||||
|
||||
void clrmenu(void)
|
||||
{
|
||||
memset((void*)(0xbb80+25*40), 0x20, 3*40);
|
||||
scrptr = (char*)(0xbb80+25*40);
|
||||
}
|
||||
|
||||
void cputs(char* s)
|
||||
{
|
||||
while(s && *s)
|
||||
*scrptr++ = inverse | *s++;
|
||||
}
|
||||
|
||||
void gotoxy(int x, int y)
|
||||
{
|
||||
scrptr = (char*)(0xbb80+(25+y)*40+x);
|
||||
}
|
||||
|
||||
void revers(char flag)
|
||||
{
|
||||
inverse = flag? 0x80:0x00;
|
||||
}
|
||||
|
||||
void cprintf(char* fmt, char* s)
|
||||
{
|
||||
static char temp[64];
|
||||
sprintf(temp, fmt, s);
|
||||
cputs(temp);
|
||||
}
|
34
src/oric/platOric.h
Normal file
34
src/oric/platOric.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* platOric.h
|
||||
* cc65 Chess
|
||||
*
|
||||
* Implementation for Oric by [raxiss], May 2020
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __PLATORIC_H__
|
||||
#define __PLATORIC_H__
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
#define KEY_LEFT 8
|
||||
#define KEY_RIGHT 9
|
||||
#define KEY_DOWN 10
|
||||
#define KEY_UP 11
|
||||
|
||||
#define KEY_RETURN 13
|
||||
#define KEY_ESC 27
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void setup(void);
|
||||
void hires(void);
|
||||
int getkey(void);
|
||||
void quit(void);
|
||||
|
||||
void hires_Draw(char xpos, char ypos, char xsize, char ysize, char rop, char *src);
|
||||
void hires_Mask(char xpos, char ypos, char xsize, char ysize, char rop);
|
||||
void plat_DrawChar(char xpos, char ypos, char rop, char c);
|
||||
void plat_DrawString(char x, char y, char rop, char *s);
|
||||
|
||||
|
||||
#endif /* __PLATORIC_H__ */
|
838
src/oric/platOrica.s
Normal file
838
src/oric/platOrica.s
Normal file
@ -0,0 +1,838 @@
|
||||
;) _
|
||||
;) ___ ___ _ _|_|___ ___
|
||||
;) | _| .'|_'_| |_ -|_ -|
|
||||
;) |_| |__,|_,_|_|___|___|
|
||||
;) raxiss (c) 2020
|
||||
|
||||
; ======================================================================
|
||||
; cc65 chess for Oric
|
||||
; ======================================================================
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
.export __TAPE__:abs = 1
|
||||
.import __AUTORUN__, __PROGFLAG__
|
||||
.import __BASHEAD_START__, __MAIN_LAST__
|
||||
|
||||
.segment "TAPE"
|
||||
|
||||
.byte $16, $16, $16, $16, $24, $00, $00
|
||||
.byte <__PROGFLAG__
|
||||
.byte <__AUTORUN__
|
||||
.dbyt __MAIN_LAST__ - 1
|
||||
.dbyt __BASHEAD_START__
|
||||
.byte $00
|
||||
.byte "CC65-CHESS",0
|
||||
|
||||
; ======================================================================
|
||||
.segment "CODE"
|
||||
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
scrnoff = $a000
|
||||
rst = $fffc
|
||||
irq = $fffe
|
||||
|
||||
hires_atmos = $ec33
|
||||
hires_oric1 = $e9bb
|
||||
|
||||
getkey_atmos = $eb78
|
||||
getkey_oric1 = $e905
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
BOARD_PIECE_WIDTH = 3
|
||||
BOARD_PIECE_HEIGHT = 20
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
|
||||
; ======================================================================
|
||||
_setup:
|
||||
lda irq
|
||||
cmp #$28
|
||||
beq isOric1
|
||||
|
||||
isAtmos: lda #<hires_atmos
|
||||
sta _hires+1
|
||||
lda #>hires_atmos
|
||||
sta _hires+2
|
||||
lda #<getkey_atmos
|
||||
sta _getkey+1
|
||||
lda #>getkey_atmos
|
||||
sta _getkey+2
|
||||
jmp _hires
|
||||
|
||||
isOric1: lda #<hires_oric1
|
||||
sta _hires+1
|
||||
lda #>hires_oric1
|
||||
sta _hires+2
|
||||
lda #<getkey_oric1
|
||||
sta _getkey+1
|
||||
lda #>getkey_oric1
|
||||
sta _getkey+2
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires: jsr $f00d
|
||||
lda #$08
|
||||
sta $26a
|
||||
rts
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_quit: lda rst
|
||||
sta l00_aptr+1
|
||||
lda rst+1
|
||||
sta l00_aptr+2
|
||||
sei
|
||||
l00_aptr: jmp $dead
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_getkey: jsr $f00d
|
||||
and #$7f
|
||||
beq test
|
||||
cmp #$0d
|
||||
test:
|
||||
ldx #$00
|
||||
rts
|
||||
|
||||
; ======================================================================
|
||||
_hires_xpos: .byte 0
|
||||
_hires_ypos: .byte 0
|
||||
_hires_xsize: .byte 0
|
||||
_hires_ysize: .byte 0
|
||||
_hires_rop: .byte 0
|
||||
_hires_clr: .byte 0
|
||||
_hires_src: .word 0
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires_MaskA:
|
||||
clc
|
||||
ldx _hires_ypos
|
||||
lda _scrnlo,x
|
||||
adc _hires_xpos
|
||||
sta l01_adst+1
|
||||
lda _scrnhi,x
|
||||
adc #0
|
||||
sta l01_adst+2
|
||||
l01_loop: ldx #0
|
||||
lda _hires_rop
|
||||
l01_adst: sta $f00d,x
|
||||
inx
|
||||
cpx _hires_xsize
|
||||
bne l01_adst
|
||||
clc
|
||||
lda l01_adst+1
|
||||
adc #40
|
||||
sta l01_adst+1
|
||||
lda l01_adst+2
|
||||
adc #0
|
||||
sta l01_adst+2
|
||||
dec _hires_ysize
|
||||
bne l01_loop
|
||||
rts
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires_DrawA:
|
||||
lda _hires_src
|
||||
sta l02_asrc+1
|
||||
lda _hires_src+1
|
||||
sta l02_asrc+2
|
||||
|
||||
clc
|
||||
ldx _hires_ypos
|
||||
lda _scrnlo,x
|
||||
adc _hires_xpos
|
||||
sta l02_adst+1
|
||||
lda _scrnhi,x
|
||||
adc #0
|
||||
sta l02_adst+2
|
||||
|
||||
ldy _hires_ysize
|
||||
l02_loop: ldx #0
|
||||
l02_asrc: lda $f00d,x
|
||||
ora _hires_rop
|
||||
l02_adst: sta $f00d,x
|
||||
inx
|
||||
cpx _hires_xsize
|
||||
bne l02_asrc
|
||||
|
||||
clc
|
||||
lda #<3*7
|
||||
adc l02_asrc+1
|
||||
sta l02_asrc+1
|
||||
lda #>3*7
|
||||
adc l02_asrc+2
|
||||
sta l02_asrc+2
|
||||
|
||||
clc
|
||||
lda #<40
|
||||
adc l02_adst+1
|
||||
sta l02_adst+1
|
||||
lda #>40
|
||||
adc l02_adst+2
|
||||
sta l02_adst+2
|
||||
|
||||
dey
|
||||
bne l02_loop
|
||||
|
||||
rts
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires_SelectA:
|
||||
lda _hires_src
|
||||
sta l03_asrc+1
|
||||
lda _hires_src+1
|
||||
sta l03_asrc+2
|
||||
|
||||
clc
|
||||
ldx _hires_ypos
|
||||
lda _scrnlo,x
|
||||
adc _hires_xpos
|
||||
sta l03_adst+1
|
||||
sta l03_arop+1
|
||||
lda _scrnhi,x
|
||||
adc #0
|
||||
sta l03_adst+2
|
||||
sta l03_arop+2
|
||||
|
||||
ldy _hires_ysize
|
||||
l03_loop: ldx #0
|
||||
l03_asrc: lda $f00d,x
|
||||
l03_arop: eor $f00d,x
|
||||
ora #$40
|
||||
l03_adst: sta $f00d,x
|
||||
inx
|
||||
cpx _hires_xsize
|
||||
bne l03_asrc
|
||||
|
||||
clc
|
||||
lda #<3*7
|
||||
adc l03_asrc+1
|
||||
sta l03_asrc+1
|
||||
lda #>3*7
|
||||
adc l03_asrc+2
|
||||
sta l03_asrc+2
|
||||
|
||||
clc
|
||||
lda #<40
|
||||
adc l03_adst+1
|
||||
sta l03_adst+1
|
||||
sta l03_arop+1
|
||||
lda #>40
|
||||
adc l03_adst+2
|
||||
sta l03_adst+2
|
||||
sta l03_arop+2
|
||||
|
||||
dey
|
||||
bne l03_loop
|
||||
|
||||
rts
|
||||
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires_DrawCharA:
|
||||
lda _hires_src
|
||||
sta l04_asrc+1
|
||||
lda _hires_src+1
|
||||
sta l04_asrc+2
|
||||
|
||||
clc
|
||||
ldx _hires_ypos
|
||||
lda _scrnlo,x
|
||||
adc _hires_xpos
|
||||
sta l04_adst+1
|
||||
lda _scrnhi,x
|
||||
adc #0
|
||||
sta l04_adst+2
|
||||
|
||||
ldx #0
|
||||
l04_loop:
|
||||
l04_asrc: lda $f00d,x
|
||||
ora _hires_rop
|
||||
l04_adst: sta $f00d
|
||||
|
||||
clc
|
||||
lda #<40
|
||||
adc l04_adst+1
|
||||
sta l04_adst+1
|
||||
lda #>40
|
||||
adc l04_adst+2
|
||||
sta l04_adst+2
|
||||
|
||||
inx
|
||||
cpx #8
|
||||
bne l04_loop
|
||||
|
||||
rts
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires_DrawClrA:
|
||||
clc
|
||||
ldx _hires_ypos
|
||||
lda _scrnlo,x
|
||||
adc _hires_xpos
|
||||
sta l05_adst+1
|
||||
lda _scrnhi,x
|
||||
adc #0
|
||||
sta l05_adst+2
|
||||
|
||||
ldx #8
|
||||
l05_loop: lda _hires_clr
|
||||
l05_adst: sta $f00d
|
||||
|
||||
clc
|
||||
lda #<40
|
||||
adc l05_adst+1
|
||||
sta l05_adst+1
|
||||
lda #>40
|
||||
adc l05_adst+2
|
||||
sta l05_adst+2
|
||||
|
||||
dex
|
||||
bne l05_loop
|
||||
|
||||
rts
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires_CharSet = $9900
|
||||
|
||||
; ----------------------------------------------------------------------
|
||||
_hires_Pieces:
|
||||
_pieces:
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4e,$5c,$58
|
||||
.byte $40,$58,$40,$40,$4c,$40,$40,$4c,$40,$40,$4c,$40,$40,$40,$40,$40
|
||||
.byte $40,$40,$4e,$5c,$68,$40,$5c,$40,$40,$4c,$40,$40,$61,$40,$40,$56
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$4f,$77,$50,$41,$7e,$40,$40,$5a,$40
|
||||
.byte $41,$7e,$60,$40,$4c,$40,$40,$4c,$40,$40,$40,$40,$47,$6a,$68,$43
|
||||
.byte $77,$40,$40,$7d,$40,$41,$7d,$40,$41,$6d,$60,$40,$5e,$40,$40,$40
|
||||
.byte $40,$47,$7f,$50,$47,$7f,$40,$40,$7a,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$5e,$40,$40,$40,$40,$43,$7e,$60,$47,$7f,$60,$40,$7f,$40,$41
|
||||
.byte $7e,$60,$41,$7e,$60,$40,$40,$40,$40,$40,$40,$41,$7f,$40,$47,$7f
|
||||
.byte $60,$40,$40,$40,$41,$7d,$40,$41,$7d,$40,$41,$7f,$60,$40,$40,$40
|
||||
.byte $41,$7f,$40,$40,$4f,$60,$41,$7f,$60,$40,$7e,$60,$40,$7e,$60,$40
|
||||
.byte $40,$40,$40,$40,$40,$41,$7b,$40,$40,$4f,$40,$40,$7f,$40,$40,$40
|
||||
.byte $40,$40,$40,$40,$40,$5e,$40,$40,$40,$40,$41,$7d,$40,$40,$4e,$60
|
||||
.byte $40,$40,$40,$40,$5e,$40,$40,$5e,$40,$40,$5e,$40,$40,$40,$40,$41
|
||||
.byte $7a,$40,$40,$5f,$50,$40,$5e,$40,$40,$5e,$40,$40,$7f,$40,$40,$5a
|
||||
.byte $40,$40,$40,$40,$41,$75,$40,$40,$7e,$60,$40,$5e,$40,$40,$7f,$40
|
||||
.byte $40,$7f,$40,$40,$7d,$40,$40,$40,$40,$41,$7a,$40,$40,$7d,$50,$40
|
||||
.byte $7f,$40,$40,$7f,$40,$41,$7d,$60,$41,$7a,$60,$40,$40,$40,$41,$75
|
||||
.byte $40,$40,$7a,$60,$41,$7e,$60,$41,$7e,$60,$41,$7e,$60,$41,$75,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$43,$7d,$50,$43,$7f,$50,$43,$7d,$50,$43
|
||||
.byte $7d,$50,$40,$40,$40,$40,$40,$40,$47,$7f,$50,$40,$40,$40,$47,$7e
|
||||
.byte $68,$47,$7e,$68,$47,$7e,$68,$47,$7f,$68,$40,$40,$40,$4f,$7e,$68
|
||||
.byte $47,$7f,$68,$4f,$7d,$54,$4f,$7d,$54,$4f,$7d,$54,$4f,$7f,$54,$40
|
||||
.byte $40,$40,$4f,$7d,$58,$4f,$7f,$54,$4f,$7e,$68,$4f,$7a,$68,$4f,$7a
|
||||
.byte $68,$4f,$7e,$68,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$7f,$7f
|
||||
.byte $7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f
|
||||
.byte $7f,$7f,$7f,$7f,$7f,$7f,$60,$40,$43,$7f,$43,$7f,$7f,$61,$7f,$7f
|
||||
.byte $61,$7f,$7f,$61,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$6e,$5c,$5b,$7f,$59
|
||||
.byte $7f,$7f,$6d,$7f,$7e,$4c,$5f,$7f,$4c,$7f,$7f,$7f,$7f,$7f,$7f,$7f
|
||||
.byte $6e,$5c,$6b,$7c,$5c,$7f,$7f,$4c,$7f,$7c,$61,$4f,$7f,$56,$7f,$7f
|
||||
.byte $61,$7f,$7f,$7f,$7f,$6f,$77,$53,$79,$7e,$5f,$7e,$5a,$5f,$7d,$7e
|
||||
.byte $6f,$7c,$4c,$4f,$7f,$4c,$7f,$7f,$7f,$7f,$67,$6a,$6b,$73,$77,$5f
|
||||
.byte $7e,$7d,$5f,$7d,$7d,$4f,$7d,$6d,$6f,$7f,$5e,$7f,$7f,$7f,$7f,$77
|
||||
.byte $7f,$53,$77,$7f,$4f,$7e,$7a,$5f,$7c,$40,$4f,$7c,$40,$4f,$7f,$5e
|
||||
.byte $7f,$7f,$7f,$7f,$73,$7e,$67,$77,$7f,$6f,$7e,$7f,$5f,$7d,$7e,$6f
|
||||
.byte $7d,$7f,$6f,$7c,$40,$4f,$7f,$7f,$7f,$79,$7f,$4f,$77,$7f,$6f,$7c
|
||||
.byte $40,$4f,$7d,$7d,$4f,$7d,$7f,$4f,$7d,$7f,$6f,$7f,$7f,$7f,$7d,$7f
|
||||
.byte $5f,$70,$4f,$6f,$7d,$7f,$6f,$7c,$7e,$6f,$7e,$7e,$5f,$7c,$40,$4f
|
||||
.byte $7f,$7f,$7f,$7d,$7b,$5f,$7f,$6f,$4f,$7c,$7f,$4f,$7e,$40,$4f,$7f
|
||||
.byte $40,$7f,$7f,$5e,$7f,$7f,$7f,$7f,$7d,$7d,$5f,$7f,$4e,$67,$7e,$40
|
||||
.byte $5f,$7f,$5e,$7f,$7e,$5e,$5f,$7f,$5e,$7f,$7f,$7f,$7f,$7d,$7a,$5f
|
||||
.byte $7e,$5f,$57,$7f,$5e,$7f,$7e,$5e,$5f,$7e,$7f,$5f,$7e,$5a,$5f,$7f
|
||||
.byte $7f,$7f,$7d,$75,$5f,$7e,$7e,$67,$7e,$5e,$5f,$7e,$7f,$5f,$7c,$7f
|
||||
.byte $4f,$7c,$7d,$4f,$7f,$7f,$7f,$7d,$7a,$5f,$7e,$7d,$57,$7c,$7f,$4f
|
||||
.byte $7c,$7f,$4f,$7d,$7f,$6f,$7d,$7a,$6f,$7f,$7f,$7f,$7d,$75,$5f,$78
|
||||
.byte $7a,$67,$79,$7e,$67,$79,$7e,$67,$79,$7e,$67,$7d,$75,$4f,$7f,$7f
|
||||
.byte $7f,$70,$40,$47,$7b,$7d,$5f,$73,$7f,$53,$73,$7d,$53,$73,$7d,$53
|
||||
.byte $70,$40,$43,$7f,$7f,$7f,$67,$7f,$53,$70,$40,$43,$67,$7e,$69,$67
|
||||
.byte $7e,$69,$67,$7e,$69,$67,$7f,$69,$7f,$7f,$7f,$6f,$7e,$6b,$67,$7f
|
||||
.byte $69,$6f,$7d,$55,$6f,$7d,$55,$6f,$7d,$55,$6f,$7f,$55,$7f,$7f,$7f
|
||||
.byte $6f,$7d,$53,$6f,$7f,$55,$6f,$7e,$69,$6f,$7a,$69,$6f,$7a,$69,$6f
|
||||
.byte $7e,$69,$7f,$7f,$7f,$60,$40,$43,$60,$40,$41,$60,$40,$41,$60,$40
|
||||
.byte $41,$60,$40,$41,$60,$40,$41,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f
|
||||
.byte $7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$6a,$6a,$6a,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$50,$40,$41,$5f,$7f,$7c,$40,$7c,$40,$40,$5e,$40,$40,$5e,$40
|
||||
.byte $40,$5e,$40,$40,$40,$40,$60,$40,$42,$51,$63,$44,$40,$66,$40,$40
|
||||
.byte $52,$40,$41,$73,$60,$40,$73,$40,$40,$40,$40,$50,$40,$41,$51,$63
|
||||
.byte $44,$43,$63,$40,$40,$73,$40,$43,$5e,$70,$40,$69,$40,$40,$5e,$40
|
||||
.byte $60,$40,$42,$50,$48,$4c,$46,$41,$60,$41,$60,$60,$42,$61,$50,$43
|
||||
.byte $73,$70,$40,$73,$40,$50,$40,$41,$58,$54,$54,$4c,$48,$60,$41,$42
|
||||
.byte $60,$42,$40,$70,$42,$52,$50,$40,$69,$40,$60,$40,$42,$48,$40,$6c
|
||||
.byte $48,$40,$70,$41,$44,$60,$41,$7f,$60,$41,$7f,$60,$40,$61,$40,$50
|
||||
.byte $40,$41,$4c,$41,$58,$48,$40,$50,$41,$40,$60,$42,$40,$50,$42,$40
|
||||
.byte $50,$43,$7f,$70,$60,$40,$42,$46,$40,$70,$48,$40,$50,$43,$7f,$70
|
||||
.byte $42,$40,$70,$42,$40,$70,$42,$40,$50,$50,$40,$41,$42,$40,$60,$4f
|
||||
.byte $70,$50,$42,$40,$50,$43,$41,$50,$41,$41,$60,$43,$7f,$70,$60,$40
|
||||
.byte $42,$42,$40,$60,$40,$50,$70,$43,$40,$70,$41,$7f,$60,$40,$7f,$40
|
||||
.byte $40,$61,$40,$50,$40,$41,$42,$42,$60,$40,$71,$58,$41,$7f,$60,$40
|
||||
.byte $61,$40,$41,$61,$60,$40,$61,$40,$60,$40,$42,$42,$44,$60,$41,$60
|
||||
.byte $68,$40,$61,$40,$41,$61,$60,$41,$40,$60,$41,$61,$60,$50,$40,$41
|
||||
.byte $42,$4a,$60,$41,$41,$58,$41,$61,$60,$41,$40,$60,$43,$40,$70,$43
|
||||
.byte $40,$70,$60,$40,$42,$42,$45,$60,$41,$42,$68,$43,$40,$70,$43,$40
|
||||
.byte $70,$42,$40,$50,$42,$41,$50,$50,$40,$41,$42,$4a,$60,$47,$45,$58
|
||||
.byte $46,$41,$58,$46,$41,$58,$46,$41,$58,$42,$42,$70,$60,$40,$42,$4f
|
||||
.byte $7f,$78,$44,$42,$60,$4c,$40,$6c,$4c,$42,$6c,$4c,$42,$6c,$4f,$7f
|
||||
.byte $7c,$50,$40,$41,$58,$40,$6c,$4f,$7f,$7c,$58,$41,$56,$58,$41,$56
|
||||
.byte $58,$41,$56,$58,$40,$56,$60,$40,$42,$50,$41,$54,$58,$40,$56,$50
|
||||
.byte $42,$6a,$50,$42,$6a,$50,$42,$6a,$50,$40,$6a,$50,$40,$41,$50,$42
|
||||
.byte $6c,$50,$40,$6a,$50,$41,$56,$50,$45,$56,$50,$45,$56,$50,$41,$56
|
||||
.byte $60,$40,$42,$5f,$7f,$7c,$5f,$7f,$7e,$5f,$7f,$7e,$5f,$7f,$7e,$5f
|
||||
.byte $7f,$7e,$5f,$7f,$7e,$55,$55,$55,$40,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$6a,$6a,$6a,$40,$40,$41
|
||||
.byte $7f,$43,$7f,$7f,$61,$7f,$7f,$61,$7f,$7f,$61,$7f,$7f,$7f,$7f,$40
|
||||
.byte $40,$41,$5f,$7f,$7d,$7e,$7c,$7f,$7f,$5e,$7f,$7c,$5e,$4f,$7e,$5e
|
||||
.byte $5f,$7f,$7f,$7f,$60,$40,$40,$51,$63,$45,$78,$66,$5f,$7e,$52,$5f
|
||||
.byte $79,$73,$67,$7e,$73,$5f,$7f,$40,$7f,$40,$40,$41,$51,$63,$45,$73
|
||||
.byte $63,$4f,$7c,$73,$4f,$7b,$5e,$77,$78,$69,$47,$7e,$5e,$5f,$60,$40
|
||||
.byte $40,$50,$48,$4d,$66,$41,$6f,$7d,$60,$6f,$7a,$61,$57,$7b,$73,$77
|
||||
.byte $7e,$73,$5f,$40,$40,$41,$58,$54,$55,$6c,$48,$67,$7d,$42,$6f,$7a
|
||||
.byte $40,$77,$7a,$52,$57,$7e,$69,$5f,$60,$40,$40,$48,$40,$6d,$68,$40
|
||||
.byte $77,$7d,$44,$6f,$79,$7f,$67,$79,$7f,$67,$78,$61,$47,$40,$40,$41
|
||||
.byte $6c,$41,$59,$68,$40,$57,$79,$40,$67,$7a,$40,$57,$7a,$40,$57,$7b
|
||||
.byte $7f,$77,$60,$40,$40,$66,$40,$73,$68,$40,$57,$7b,$7f,$77,$7a,$40
|
||||
.byte $77,$7a,$40,$77,$7a,$40,$57,$40,$40,$41,$72,$40,$67,$6f,$70,$57
|
||||
.byte $7a,$40,$57,$7b,$41,$57,$7d,$41,$67,$7b,$7f,$77,$60,$40,$40,$7a
|
||||
.byte $40,$6f,$60,$50,$73,$7b,$40,$77,$79,$7f,$67,$7c,$7f,$4f,$78,$61
|
||||
.byte $47,$40,$40,$41,$7a,$42,$6f,$7c,$71,$5b,$79,$7f,$67,$7c,$61,$4f
|
||||
.byte $7d,$61,$6f,$7c,$61,$4f,$60,$40,$40,$7a,$44,$6f,$7d,$60,$6b,$7c
|
||||
.byte $61,$4f,$7d,$61,$6f,$79,$40,$67,$79,$61,$67,$40,$40,$41,$7a,$4a
|
||||
.byte $6f,$7d,$41,$5b,$79,$61,$67,$79,$40,$67,$7b,$40,$77,$7b,$40,$77
|
||||
.byte $60,$40,$40,$7a,$45,$6f,$71,$42,$6b,$73,$40,$73,$73,$40,$73,$72
|
||||
.byte $40,$53,$7a,$41,$57,$40,$40,$41,$62,$4a,$63,$77,$45,$5b,$66,$41
|
||||
.byte $59,$66,$41,$59,$66,$41,$59,$62,$42,$71,$60,$40,$40,$4f,$7f,$79
|
||||
.byte $64,$42,$61,$4c,$40,$6c,$4c,$42,$6c,$4c,$42,$6c,$4f,$7f,$7c,$40
|
||||
.byte $40,$41,$58,$40,$6d,$4f,$7f,$7c,$58,$41,$56,$58,$41,$56,$58,$41
|
||||
.byte $56,$58,$40,$56,$60,$40,$40,$50,$41,$55,$58,$40,$56,$50,$42,$6a
|
||||
.byte $50,$42,$6a,$50,$42,$6a,$50,$40,$6a,$40,$40,$41,$50,$42,$6d,$50
|
||||
.byte $40,$6a,$50,$41,$56,$50,$45,$56,$50,$45,$56,$50,$41,$56,$60,$40
|
||||
.byte $40,$5f,$7f,$7d,$5f,$7f,$7e,$5f,$7f,$7e,$5f,$7f,$7e,$5f,$7f,$7e
|
||||
.byte $5f,$7f,$7e,$55,$55,$55,$40,$40,$41,$40,$40,$40,$40,$40,$40,$40
|
||||
.byte $40,$40,$40,$40,$40,$40,$40,$40
|
||||
|
||||
_scrnlo:
|
||||
.byte <($a000+( 0*40))
|
||||
.byte <($a000+( 1*40))
|
||||
.byte <($a000+( 2*40))
|
||||
.byte <($a000+( 3*40))
|
||||
.byte <($a000+( 4*40))
|
||||
.byte <($a000+( 5*40))
|
||||
.byte <($a000+( 6*40))
|
||||
.byte <($a000+( 7*40))
|
||||
.byte <($a000+( 8*40))
|
||||
.byte <($a000+( 9*40))
|
||||
.byte <($a000+( 10*40))
|
||||
.byte <($a000+( 11*40))
|
||||
.byte <($a000+( 12*40))
|
||||
.byte <($a000+( 13*40))
|
||||
.byte <($a000+( 14*40))
|
||||
.byte <($a000+( 15*40))
|
||||
.byte <($a000+( 16*40))
|
||||
.byte <($a000+( 17*40))
|
||||
.byte <($a000+( 18*40))
|
||||
.byte <($a000+( 19*40))
|
||||
.byte <($a000+( 20*40))
|
||||
.byte <($a000+( 21*40))
|
||||
.byte <($a000+( 22*40))
|
||||
.byte <($a000+( 23*40))
|
||||
.byte <($a000+( 24*40))
|
||||
.byte <($a000+( 25*40))
|
||||
.byte <($a000+( 26*40))
|
||||
.byte <($a000+( 27*40))
|
||||
.byte <($a000+( 28*40))
|
||||
.byte <($a000+( 29*40))
|
||||
.byte <($a000+( 30*40))
|
||||
.byte <($a000+( 31*40))
|
||||
.byte <($a000+( 32*40))
|
||||
.byte <($a000+( 33*40))
|
||||
.byte <($a000+( 34*40))
|
||||
.byte <($a000+( 35*40))
|
||||
.byte <($a000+( 36*40))
|
||||
.byte <($a000+( 37*40))
|
||||
.byte <($a000+( 38*40))
|
||||
.byte <($a000+( 39*40))
|
||||
.byte <($a000+( 40*40))
|
||||
.byte <($a000+( 41*40))
|
||||
.byte <($a000+( 42*40))
|
||||
.byte <($a000+( 43*40))
|
||||
.byte <($a000+( 44*40))
|
||||
.byte <($a000+( 45*40))
|
||||
.byte <($a000+( 46*40))
|
||||
.byte <($a000+( 47*40))
|
||||
.byte <($a000+( 48*40))
|
||||
.byte <($a000+( 49*40))
|
||||
.byte <($a000+( 50*40))
|
||||
.byte <($a000+( 51*40))
|
||||
.byte <($a000+( 52*40))
|
||||
.byte <($a000+( 53*40))
|
||||
.byte <($a000+( 54*40))
|
||||
.byte <($a000+( 55*40))
|
||||
.byte <($a000+( 56*40))
|
||||
.byte <($a000+( 57*40))
|
||||
.byte <($a000+( 58*40))
|
||||
.byte <($a000+( 59*40))
|
||||
.byte <($a000+( 60*40))
|
||||
.byte <($a000+( 61*40))
|
||||
.byte <($a000+( 62*40))
|
||||
.byte <($a000+( 63*40))
|
||||
.byte <($a000+( 64*40))
|
||||
.byte <($a000+( 65*40))
|
||||
.byte <($a000+( 66*40))
|
||||
.byte <($a000+( 67*40))
|
||||
.byte <($a000+( 68*40))
|
||||
.byte <($a000+( 69*40))
|
||||
.byte <($a000+( 70*40))
|
||||
.byte <($a000+( 71*40))
|
||||
.byte <($a000+( 72*40))
|
||||
.byte <($a000+( 73*40))
|
||||
.byte <($a000+( 74*40))
|
||||
.byte <($a000+( 75*40))
|
||||
.byte <($a000+( 76*40))
|
||||
.byte <($a000+( 77*40))
|
||||
.byte <($a000+( 78*40))
|
||||
.byte <($a000+( 79*40))
|
||||
.byte <($a000+( 80*40))
|
||||
.byte <($a000+( 81*40))
|
||||
.byte <($a000+( 82*40))
|
||||
.byte <($a000+( 83*40))
|
||||
.byte <($a000+( 84*40))
|
||||
.byte <($a000+( 85*40))
|
||||
.byte <($a000+( 86*40))
|
||||
.byte <($a000+( 87*40))
|
||||
.byte <($a000+( 88*40))
|
||||
.byte <($a000+( 89*40))
|
||||
.byte <($a000+( 90*40))
|
||||
.byte <($a000+( 91*40))
|
||||
.byte <($a000+( 92*40))
|
||||
.byte <($a000+( 93*40))
|
||||
.byte <($a000+( 94*40))
|
||||
.byte <($a000+( 95*40))
|
||||
.byte <($a000+( 96*40))
|
||||
.byte <($a000+( 97*40))
|
||||
.byte <($a000+( 98*40))
|
||||
.byte <($a000+( 99*40))
|
||||
.byte <($a000+(100*40))
|
||||
.byte <($a000+(101*40))
|
||||
.byte <($a000+(102*40))
|
||||
.byte <($a000+(103*40))
|
||||
.byte <($a000+(104*40))
|
||||
.byte <($a000+(105*40))
|
||||
.byte <($a000+(106*40))
|
||||
.byte <($a000+(107*40))
|
||||
.byte <($a000+(108*40))
|
||||
.byte <($a000+(109*40))
|
||||
.byte <($a000+(110*40))
|
||||
.byte <($a000+(111*40))
|
||||
.byte <($a000+(112*40))
|
||||
.byte <($a000+(113*40))
|
||||
.byte <($a000+(114*40))
|
||||
.byte <($a000+(115*40))
|
||||
.byte <($a000+(116*40))
|
||||
.byte <($a000+(117*40))
|
||||
.byte <($a000+(118*40))
|
||||
.byte <($a000+(119*40))
|
||||
.byte <($a000+(120*40))
|
||||
.byte <($a000+(121*40))
|
||||
.byte <($a000+(122*40))
|
||||
.byte <($a000+(123*40))
|
||||
.byte <($a000+(124*40))
|
||||
.byte <($a000+(125*40))
|
||||
.byte <($a000+(126*40))
|
||||
.byte <($a000+(127*40))
|
||||
.byte <($a000+(128*40))
|
||||
.byte <($a000+(129*40))
|
||||
.byte <($a000+(130*40))
|
||||
.byte <($a000+(131*40))
|
||||
.byte <($a000+(132*40))
|
||||
.byte <($a000+(133*40))
|
||||
.byte <($a000+(134*40))
|
||||
.byte <($a000+(135*40))
|
||||
.byte <($a000+(136*40))
|
||||
.byte <($a000+(137*40))
|
||||
.byte <($a000+(138*40))
|
||||
.byte <($a000+(139*40))
|
||||
.byte <($a000+(140*40))
|
||||
.byte <($a000+(141*40))
|
||||
.byte <($a000+(142*40))
|
||||
.byte <($a000+(143*40))
|
||||
.byte <($a000+(144*40))
|
||||
.byte <($a000+(145*40))
|
||||
.byte <($a000+(146*40))
|
||||
.byte <($a000+(147*40))
|
||||
.byte <($a000+(148*40))
|
||||
.byte <($a000+(149*40))
|
||||
.byte <($a000+(150*40))
|
||||
.byte <($a000+(151*40))
|
||||
.byte <($a000+(152*40))
|
||||
.byte <($a000+(153*40))
|
||||
.byte <($a000+(154*40))
|
||||
.byte <($a000+(155*40))
|
||||
.byte <($a000+(156*40))
|
||||
.byte <($a000+(157*40))
|
||||
.byte <($a000+(158*40))
|
||||
.byte <($a000+(159*40))
|
||||
.byte <($a000+(160*40))
|
||||
.byte <($a000+(161*40))
|
||||
.byte <($a000+(162*40))
|
||||
.byte <($a000+(163*40))
|
||||
.byte <($a000+(164*40))
|
||||
.byte <($a000+(165*40))
|
||||
.byte <($a000+(166*40))
|
||||
.byte <($a000+(167*40))
|
||||
.byte <($a000+(168*40))
|
||||
.byte <($a000+(169*40))
|
||||
.byte <($a000+(170*40))
|
||||
.byte <($a000+(171*40))
|
||||
.byte <($a000+(172*40))
|
||||
.byte <($a000+(173*40))
|
||||
.byte <($a000+(174*40))
|
||||
.byte <($a000+(175*40))
|
||||
.byte <($a000+(176*40))
|
||||
.byte <($a000+(177*40))
|
||||
.byte <($a000+(178*40))
|
||||
.byte <($a000+(179*40))
|
||||
.byte <($a000+(180*40))
|
||||
.byte <($a000+(181*40))
|
||||
.byte <($a000+(182*40))
|
||||
.byte <($a000+(183*40))
|
||||
.byte <($a000+(184*40))
|
||||
.byte <($a000+(185*40))
|
||||
.byte <($a000+(186*40))
|
||||
.byte <($a000+(187*40))
|
||||
.byte <($a000+(188*40))
|
||||
.byte <($a000+(189*40))
|
||||
.byte <($a000+(190*40))
|
||||
.byte <($a000+(191*40))
|
||||
.byte <($a000+(192*40))
|
||||
.byte <($a000+(193*40))
|
||||
.byte <($a000+(194*40))
|
||||
.byte <($a000+(195*40))
|
||||
.byte <($a000+(196*40))
|
||||
.byte <($a000+(197*40))
|
||||
.byte <($a000+(198*40))
|
||||
.byte <($a000+(199*40))
|
||||
|
||||
_scrnhi:
|
||||
.byte >($a000+( 0*40))
|
||||
.byte >($a000+( 1*40))
|
||||
.byte >($a000+( 2*40))
|
||||
.byte >($a000+( 3*40))
|
||||
.byte >($a000+( 4*40))
|
||||
.byte >($a000+( 5*40))
|
||||
.byte >($a000+( 6*40))
|
||||
.byte >($a000+( 7*40))
|
||||
.byte >($a000+( 8*40))
|
||||
.byte >($a000+( 9*40))
|
||||
.byte >($a000+( 10*40))
|
||||
.byte >($a000+( 11*40))
|
||||
.byte >($a000+( 12*40))
|
||||
.byte >($a000+( 13*40))
|
||||
.byte >($a000+( 14*40))
|
||||
.byte >($a000+( 15*40))
|
||||
.byte >($a000+( 16*40))
|
||||
.byte >($a000+( 17*40))
|
||||
.byte >($a000+( 18*40))
|
||||
.byte >($a000+( 19*40))
|
||||
.byte >($a000+( 20*40))
|
||||
.byte >($a000+( 21*40))
|
||||
.byte >($a000+( 22*40))
|
||||
.byte >($a000+( 23*40))
|
||||
.byte >($a000+( 24*40))
|
||||
.byte >($a000+( 25*40))
|
||||
.byte >($a000+( 26*40))
|
||||
.byte >($a000+( 27*40))
|
||||
.byte >($a000+( 28*40))
|
||||
.byte >($a000+( 29*40))
|
||||
.byte >($a000+( 30*40))
|
||||
.byte >($a000+( 31*40))
|
||||
.byte >($a000+( 32*40))
|
||||
.byte >($a000+( 33*40))
|
||||
.byte >($a000+( 34*40))
|
||||
.byte >($a000+( 35*40))
|
||||
.byte >($a000+( 36*40))
|
||||
.byte >($a000+( 37*40))
|
||||
.byte >($a000+( 38*40))
|
||||
.byte >($a000+( 39*40))
|
||||
.byte >($a000+( 40*40))
|
||||
.byte >($a000+( 41*40))
|
||||
.byte >($a000+( 42*40))
|
||||
.byte >($a000+( 43*40))
|
||||
.byte >($a000+( 44*40))
|
||||
.byte >($a000+( 45*40))
|
||||
.byte >($a000+( 46*40))
|
||||
.byte >($a000+( 47*40))
|
||||
.byte >($a000+( 48*40))
|
||||
.byte >($a000+( 49*40))
|
||||
.byte >($a000+( 50*40))
|
||||
.byte >($a000+( 51*40))
|
||||
.byte >($a000+( 52*40))
|
||||
.byte >($a000+( 53*40))
|
||||
.byte >($a000+( 54*40))
|
||||
.byte >($a000+( 55*40))
|
||||
.byte >($a000+( 56*40))
|
||||
.byte >($a000+( 57*40))
|
||||
.byte >($a000+( 58*40))
|
||||
.byte >($a000+( 59*40))
|
||||
.byte >($a000+( 60*40))
|
||||
.byte >($a000+( 61*40))
|
||||
.byte >($a000+( 62*40))
|
||||
.byte >($a000+( 63*40))
|
||||
.byte >($a000+( 64*40))
|
||||
.byte >($a000+( 65*40))
|
||||
.byte >($a000+( 66*40))
|
||||
.byte >($a000+( 67*40))
|
||||
.byte >($a000+( 68*40))
|
||||
.byte >($a000+( 69*40))
|
||||
.byte >($a000+( 70*40))
|
||||
.byte >($a000+( 71*40))
|
||||
.byte >($a000+( 72*40))
|
||||
.byte >($a000+( 73*40))
|
||||
.byte >($a000+( 74*40))
|
||||
.byte >($a000+( 75*40))
|
||||
.byte >($a000+( 76*40))
|
||||
.byte >($a000+( 77*40))
|
||||
.byte >($a000+( 78*40))
|
||||
.byte >($a000+( 79*40))
|
||||
.byte >($a000+( 80*40))
|
||||
.byte >($a000+( 81*40))
|
||||
.byte >($a000+( 82*40))
|
||||
.byte >($a000+( 83*40))
|
||||
.byte >($a000+( 84*40))
|
||||
.byte >($a000+( 85*40))
|
||||
.byte >($a000+( 86*40))
|
||||
.byte >($a000+( 87*40))
|
||||
.byte >($a000+( 88*40))
|
||||
.byte >($a000+( 89*40))
|
||||
.byte >($a000+( 90*40))
|
||||
.byte >($a000+( 91*40))
|
||||
.byte >($a000+( 92*40))
|
||||
.byte >($a000+( 93*40))
|
||||
.byte >($a000+( 94*40))
|
||||
.byte >($a000+( 95*40))
|
||||
.byte >($a000+( 96*40))
|
||||
.byte >($a000+( 97*40))
|
||||
.byte >($a000+( 98*40))
|
||||
.byte >($a000+( 99*40))
|
||||
.byte >($a000+(100*40))
|
||||
.byte >($a000+(101*40))
|
||||
.byte >($a000+(102*40))
|
||||
.byte >($a000+(103*40))
|
||||
.byte >($a000+(104*40))
|
||||
.byte >($a000+(105*40))
|
||||
.byte >($a000+(106*40))
|
||||
.byte >($a000+(107*40))
|
||||
.byte >($a000+(108*40))
|
||||
.byte >($a000+(109*40))
|
||||
.byte >($a000+(110*40))
|
||||
.byte >($a000+(111*40))
|
||||
.byte >($a000+(112*40))
|
||||
.byte >($a000+(113*40))
|
||||
.byte >($a000+(114*40))
|
||||
.byte >($a000+(115*40))
|
||||
.byte >($a000+(116*40))
|
||||
.byte >($a000+(117*40))
|
||||
.byte >($a000+(118*40))
|
||||
.byte >($a000+(119*40))
|
||||
.byte >($a000+(120*40))
|
||||
.byte >($a000+(121*40))
|
||||
.byte >($a000+(122*40))
|
||||
.byte >($a000+(123*40))
|
||||
.byte >($a000+(124*40))
|
||||
.byte >($a000+(125*40))
|
||||
.byte >($a000+(126*40))
|
||||
.byte >($a000+(127*40))
|
||||
.byte >($a000+(128*40))
|
||||
.byte >($a000+(129*40))
|
||||
.byte >($a000+(130*40))
|
||||
.byte >($a000+(131*40))
|
||||
.byte >($a000+(132*40))
|
||||
.byte >($a000+(133*40))
|
||||
.byte >($a000+(134*40))
|
||||
.byte >($a000+(135*40))
|
||||
.byte >($a000+(136*40))
|
||||
.byte >($a000+(137*40))
|
||||
.byte >($a000+(138*40))
|
||||
.byte >($a000+(139*40))
|
||||
.byte >($a000+(140*40))
|
||||
.byte >($a000+(141*40))
|
||||
.byte >($a000+(142*40))
|
||||
.byte >($a000+(143*40))
|
||||
.byte >($a000+(144*40))
|
||||
.byte >($a000+(145*40))
|
||||
.byte >($a000+(146*40))
|
||||
.byte >($a000+(147*40))
|
||||
.byte >($a000+(148*40))
|
||||
.byte >($a000+(149*40))
|
||||
.byte >($a000+(150*40))
|
||||
.byte >($a000+(151*40))
|
||||
.byte >($a000+(152*40))
|
||||
.byte >($a000+(153*40))
|
||||
.byte >($a000+(154*40))
|
||||
.byte >($a000+(155*40))
|
||||
.byte >($a000+(156*40))
|
||||
.byte >($a000+(157*40))
|
||||
.byte >($a000+(158*40))
|
||||
.byte >($a000+(159*40))
|
||||
.byte >($a000+(160*40))
|
||||
.byte >($a000+(161*40))
|
||||
.byte >($a000+(162*40))
|
||||
.byte >($a000+(163*40))
|
||||
.byte >($a000+(164*40))
|
||||
.byte >($a000+(165*40))
|
||||
.byte >($a000+(166*40))
|
||||
.byte >($a000+(167*40))
|
||||
.byte >($a000+(168*40))
|
||||
.byte >($a000+(169*40))
|
||||
.byte >($a000+(170*40))
|
||||
.byte >($a000+(171*40))
|
||||
.byte >($a000+(172*40))
|
||||
.byte >($a000+(173*40))
|
||||
.byte >($a000+(174*40))
|
||||
.byte >($a000+(175*40))
|
||||
.byte >($a000+(176*40))
|
||||
.byte >($a000+(177*40))
|
||||
.byte >($a000+(178*40))
|
||||
.byte >($a000+(179*40))
|
||||
.byte >($a000+(180*40))
|
||||
.byte >($a000+(181*40))
|
||||
.byte >($a000+(182*40))
|
||||
.byte >($a000+(183*40))
|
||||
.byte >($a000+(184*40))
|
||||
.byte >($a000+(185*40))
|
||||
.byte >($a000+(186*40))
|
||||
.byte >($a000+(187*40))
|
||||
.byte >($a000+(188*40))
|
||||
.byte >($a000+(189*40))
|
||||
.byte >($a000+(190*40))
|
||||
.byte >($a000+(191*40))
|
||||
.byte >($a000+(192*40))
|
||||
.byte >($a000+(193*40))
|
||||
.byte >($a000+(194*40))
|
||||
.byte >($a000+(195*40))
|
||||
.byte >($a000+(196*40))
|
||||
.byte >($a000+(197*40))
|
||||
.byte >($a000+(198*40))
|
||||
.byte >($a000+(199*40))
|
||||
|
||||
|
||||
.export _getkey
|
||||
.export _hires_CharSet
|
||||
.export _hires_DrawA
|
||||
.export _hires_DrawCharA
|
||||
.export _hires_DrawClrA
|
||||
.export _hires_MaskA
|
||||
.export _hires_Pieces
|
||||
.export _hires_SelectA
|
||||
.export _hires_clr
|
||||
.export _hires_rop
|
||||
.export _hires_src
|
||||
.export _hires_xpos
|
||||
.export _hires_xsize
|
||||
.export _hires_ypos
|
||||
.export _hires_ysize
|
||||
.export _quit
|
||||
.export _setup
|
||||
.export _hires
|
Loading…
Reference in New Issue
Block a user