8bitworkshop/src/worker/fs/fs65-sim6502.data

26184 lines
1.4 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*****************************************************************************/
/* */
/* cbm.h */
/* */
/* CBM system-specific definitions */
/* */
/* */
/* */
/* (C) 1998-2015, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CBM_H
#define _CBM_H
/* Check for errors */
#if !defined(__CBM__)
# error This module may be used only when compiling for CBM machines!
#endif
/* We need NULL. */
#if !defined(_STDDEF_H)
# include <stddef.h>
#endif
/* Load the system-specific files here, if needed. */
#if defined(__C64__) && !defined(_C64_H)
# include <c64.h>
#elif defined(__VIC20__) && !defined(_VIC20_H)
# include <vic20.h>
#elif defined(__C128__) && !defined(_C128_H)
# include <c128.h>
#elif defined(__PLUS4__) && !defined(_PLUS4_H)
# include <plus4.h>
#elif defined(__C16__) && !defined(_C16_H)
# include <c16.h>
#elif defined(__CBM510__) && !defined(_CBM510_H)
# include <cbm510.h>
#elif defined(__CBM610__) && !defined(_CBM610_H)
# include <cbm610.h>
#elif defined(__PET__) && !defined(_PET_H)
# include <pet.h>
#endif
/* Include definitions for CBM file types */
#include <cbm_filetype.h>
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The file stream implementation and the POSIX I/O functions will
** use the following variable to determine the file type to use.
*/
extern char _filetype; /* Defaults to 's' */
/*****************************************************************************/
/* Character-codes (CBM charset) */
/*****************************************************************************/
#define CH_HLINE 192
#define CH_VLINE 221
#define CH_ULCORNER 176
#define CH_URCORNER 174
#define CH_LLCORNER 173
#define CH_LRCORNER 189
#define CH_TTEE 178
#define CH_BTEE 177
#define CH_LTEE 171
#define CH_RTEE 179
#define CH_CROSS 219
#define CH_CURS_UP 145
#define CH_CURS_DOWN 17
#define CH_CURS_LEFT 157
#define CH_CURS_RIGHT 29
#define CH_PI 222
#define CH_HOME 19
#define CH_DEL 20
#define CH_INS 148
#define CH_ENTER 13
#define CH_STOP 3
#define CH_LIRA 92
#define CH_ESC 27
/*****************************************************************************/
/* Definitions for directory reading functions */
/*****************************************************************************/
/* CBM FILE ACCESS */
#define CBM_A_RO 1 /* Read only */
#define CBM_A_WO 2 /* Write only */
#define CBM_A_RW 3 /* Read, Write */
struct cbm_dirent {
char name[17]; /* File name in PetSCII, limited to 16 chars */
unsigned int size; /* Size, in 254-/256-byte blocks */
unsigned char type;
unsigned char access;
};
/*****************************************************************************/
/* Machine info */
/*****************************************************************************/
#define TV_NTSC 0
#define TV_PAL 1
#define TV_OTHER 2
unsigned char get_tv (void);
/* Return the video mode the machine is using. */
/*****************************************************************************/
/* CBM kernal functions */
/*****************************************************************************/
/* Constants to use with cbm_open() for openning a file for reading or
** writing without the need to append ",r" or ",w" to the filename.
**
** e.g., cbm_open(2, 8, CBM_READ, "0:data,s");
*/
#define CBM_READ 0 /* default is ",p" */
#define CBM_WRITE 1 /* ditto */
#define CBM_SEQ 2 /* default is ",r" -- or ",s" when writing */
/* Kernal-level functions */
unsigned char cbm_k_acptr (void);
unsigned char cbm_k_basin (void);
void __fastcall__ cbm_k_bsout (unsigned char C);
unsigned char __fastcall__ cbm_k_chkin (unsigned char FN);
void __fastcall__ cbm_k_ciout (unsigned char C);
unsigned char __fastcall__ cbm_k_ckout (unsigned char FN);
void cbm_k_clall (void);
void __fastcall__ cbm_k_close (unsigned char FN);
void cbm_k_clrch (void);
unsigned char cbm_k_getin (void);
unsigned cbm_k_iobase (void);
void __fastcall__ cbm_k_listen (unsigned char dev);
unsigned int __fastcall__ cbm_k_load(unsigned char flag, unsigned addr);
unsigned char cbm_k_open (void);
unsigned char cbm_k_readst (void);
unsigned char __fastcall__ cbm_k_save(unsigned int start, unsigned int end);
void cbm_k_scnkey (void);
void __fastcall__ cbm_k_setlfs (unsigned char LFN, unsigned char DEV,
unsigned char SA);
void __fastcall__ cbm_k_setnam (const char* Name);
void __fastcall__ cbm_k_talk (unsigned char dev);
void cbm_k_udtim (void);
void cbm_k_unlsn (void);
/*****************************************************************************/
/* BASIC-like file I/O functions */
/*****************************************************************************/
/* The cbm_* I/O functions below set _oserror (see errno.h),
** in case of an error.
**
** error-code BASIC error
** ---------- -----------
** 1 = too many files
** 2 = file open
** 3 = file not open
** 4 = file not found
** 5 = device not present
** 6 = not input-file
** 7 = not output-file
** 8 = missing file-name
** 9 = illegal device-number
**
** 10 = STOP-key pushed
** 11 = general I/O-error
*/
unsigned int __fastcall__ cbm_load (const char* name, unsigned char device, void* data);
/* Loads file "name", from given device, to given address -- or, to the load
** address of the file if "data" is the null pointer (like load"name",8,1
** in BASIC).
** Returns number of bytes that were loaded if loading was successful;
** otherwise 0, "_oserror" contains an error-code, then (see table above).
*/
unsigned char __fastcall__ cbm_save (const char* name, unsigned char device,
const void* addr, unsigned int size);
/* Saves "size" bytes, starting at "addr", to a file.
** Returns 0 if saving was successful, otherwise an error-code (see table
** above).
*/
unsigned char __fastcall__ cbm_open (unsigned char lfn, unsigned char device,
unsigned char sec_addr, const char* name);
/* Opens a file. Works just like the BASIC command.
** Returns 0 if openning was successful, otherwise an error-code (see table
** above).
*/
void __fastcall__ cbm_close (unsigned char lfn);
/* Closes a file */
int __fastcall__ cbm_read (unsigned char lfn, void* buffer, unsigned int size);
/* Reads up to "size" bytes from a file into "buffer".
** Returns the number of actually-read bytes, 0 if there are no bytes left.
** -1 in case of an error; then, _oserror contains an error-code (see table
** above). (Remember: 0 means end-of-file; -1 means error.)
*/
int __fastcall__ cbm_write (unsigned char lfn, const void* buffer,
unsigned int size);
/* Writes up to "size" bytes from "buffer" to a file.
** Returns the number of actually-written bytes, or -1 in case of an error;
** _oserror contains an error-code, then (see above table).
*/
unsigned char cbm_opendir (unsigned char lfn, unsigned char device, ...);
/* Opens directory listing. Returns 0 if opening directory was successful;
** otherwise, an error-code corresponding to cbm_open(). As an optional
** argument, the name of the directory may be passed to the function. If
** no explicit name is specified, "$" is used.
*/
unsigned char __fastcall__ cbm_readdir (unsigned char lfn,
struct cbm_dirent* l_dirent);
/* Reads one directory line into cbm_dirent structure.
** Returns 0 if reading directory-line was successful.
** Returns non-zero if reading directory failed, or no more file-names to read.
** Returns 2 on last line. Then, l_dirent->size = the number of "blocks free."
*/
void __fastcall__ cbm_closedir (unsigned char lfn);
/* Closes directory by cbm_close(lfn) */
/* End of cbm.h */
#endif
/*****************************************************************************/
/* */
/* _6525.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 1998-2000 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __6525_H
#define __6525_H
/* Define a structure with the 6525 register offsets. The shadow registers
** (if port C is unused) are currently not implemented, we would need a
** union to do that, however that would introduce an additional name.
*/
struct __6525 {
unsigned char pra; /* Port register A */
unsigned char prb; /* Port register B */
unsigned char prc; /* Port register C */
unsigned char ddra; /* Data direction register A */
unsigned char ddrb; /* Data direction register B */
unsigned char ddrc; /* Data direction register C */
unsigned char cr; /* Control register */
unsigned char air; /* Active interrupt register */
};
/* End of _6525.h */
#endif
/*****************************************************************************/
/* */
/* _pia.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2000 Freddy Offenga <taf_offenga@yahoo.com> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __PIA_H
#define __PIA_H
/* Define a structure with the pia register offsets */
struct __pia {
unsigned char porta; /* port A data r/w */
unsigned char portb; /* port B data r/w */
unsigned char pactl; /* port A control */
unsigned char pbctl; /* port B control */
};
/* End of _pia.h */
#endif
/*****************************************************************************/
/* */
/* limits.h */
/* */
/* Sizes of integer types */
/* */
/* */
/* */
/* (C) 1998-2002 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _LIMITS_H
#define _LIMITS_H
#define CHAR_BIT 8
#define SCHAR_MIN ((signed char) 0x80)
#define SCHAR_MAX 127
#define UCHAR_MAX 255
#define CHAR_MIN 0
#define CHAR_MAX 255
#define SHRT_MIN ((short) 0x8000)
#define SHRT_MAX 32767
#define USHRT_MAX 65535U
#define INT_MIN ((int) 0x8000)
#define INT_MAX 32767
#define UINT_MAX 65535U
#define LONG_MAX 2147483647L
#define LONG_MIN ((long) 0x80000000)
#define ULONG_MAX 4294967295UL
/* End of limits.h */
#endif
/*****************************************************************************/
/* */
/* plus4.h */
/* */
/* Plus/4 system specific definitions */
/* */
/* */
/* */
/* (C) 1998-2006, Ullrich von Bassewitz */
/* R<>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _PLUS4_H
#define _PLUS4_H
/* Check for errors */
#if !defined(__PLUS4__)
# error This module may only be used when compiling for the Plus/4!
#endif
/* Include the base header file for the 264 series. include file.
*/
#ifndef _CBM264_H
#include <cbm264.h>
#endif
/* Define hardware */
#include <_6551.h>
#define ACIA (*(struct __6551*)0xFD00)
/* The addresses of the static drivers */
extern void plus4_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
extern void plus4_stdser_ser[];
/* End of plus4.h */
#endif
/*****************************************************************************/
/* */
/* serial.h */
/* */
/* Serial communication API */
/* */
/* */
/* */
/* (C) 2003-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _SERIAL_H
#define _SERIAL_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Baudrate settings */
#define SER_BAUD_45_5 0x00
#define SER_BAUD_50 0x01
#define SER_BAUD_75 0x02
#define SER_BAUD_110 0x03
#define SER_BAUD_134_5 0x04
#define SER_BAUD_150 0x05
#define SER_BAUD_300 0x06
#define SER_BAUD_600 0x07
#define SER_BAUD_1200 0x08
#define SER_BAUD_1800 0x09
#define SER_BAUD_2400 0x0A
#define SER_BAUD_3600 0x0B
#define SER_BAUD_4800 0x0C
#define SER_BAUD_7200 0x0D
#define SER_BAUD_9600 0x0E
#define SER_BAUD_19200 0x0F
#define SER_BAUD_38400 0x10
#define SER_BAUD_57600 0x11
#define SER_BAUD_115200 0x12
#define SER_BAUD_230400 0x13
#define SER_BAUD_31250 0x14
#define SER_BAUD_62500 0x15
#define SER_BAUD_56_875 0x16
/* Data bit settings */
#define SER_BITS_5 0x00
#define SER_BITS_6 0x01
#define SER_BITS_7 0x02
#define SER_BITS_8 0x03
/* Stop bit settings */
#define SER_STOP_1 0x00 /* One stop bit */
#define SER_STOP_2 0x01 /* Two stop bits */
/* Parity settings */
#define SER_PAR_NONE 0x00
#define SER_PAR_ODD 0x01
#define SER_PAR_EVEN 0x02
#define SER_PAR_MARK 0x03
#define SER_PAR_SPACE 0x04
/* Handshake settings. The latter two may be combined. */
#define SER_HS_NONE 0x00 /* No handshake */
#define SER_HS_HW 0x01 /* Hardware (RTS/CTS) handshake */
#define SER_HS_SW 0x02 /* Software handshake */
/* Bit masks to mask out things from the status returned by ser_status.
** These are 6551 specific and must be mapped by drivers for other chips.
*/
#define SER_STATUS_PE 0x01 /* Parity error */
#define SER_STATUS_FE 0x02 /* Framing error */
#define SER_STATUS_OE 0x04 /* Overrun error */
#define SER_STATUS_DCD 0x20 /* NOT data carrier detect */
#define SER_STATUS_DSR 0x40 /* NOT data set ready */
/* Error codes returned by all functions */
#define SER_ERR_OK 0x00 /* Not an error - relax */
#define SER_ERR_NO_DRIVER 0x01 /* No driver available */
#define SER_ERR_CANNOT_LOAD 0x02 /* Error loading driver */
#define SER_ERR_INV_DRIVER 0x03 /* Invalid driver */
#define SER_ERR_NO_DEVICE 0x04 /* Device (hardware) not found */
#define SER_ERR_BAUD_UNAVAIL 0x05 /* Baud rate not available */
#define SER_ERR_NO_DATA 0x06 /* Nothing to read */
#define SER_ERR_OVERFLOW 0x07 /* No room in send buffer */
#define SER_ERR_INIT_FAILED 0x08 /* Initialization failed */
#define SER_ERR_INV_IOCTL 0x09 /* IOCTL not supported */
#define SER_ERR_INSTALLED 0x0A /* A driver is already installed */
#define SER_ERR_NOT_OPEN 0x0B /* Driver is not open */
/* Struct containing parameters for the serial port */
struct ser_params {
unsigned char baudrate; /* Baudrate */
unsigned char databits; /* Number of data bits */
unsigned char stopbits; /* Number of stop bits */
unsigned char parity; /* Parity setting */
unsigned char handshake; /* Type of handshake to use */
};
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned char __fastcall__ ser_load_driver (const char* driver);
/* Load and install a serial driver. Return an error code. */
unsigned char ser_unload (void);
/* Uninstall, then unload the currently loaded driver. */
unsigned char __fastcall__ ser_install (void* driver);
/* Install an already loaded driver. Return an error code. */
unsigned char ser_uninstall (void);
/* Uninstall the currently loaded driver and return an error code.
** Note: This call does not free allocated memory.
*/
unsigned char __fastcall__ ser_open (const struct ser_params* params);
/* "Open" the port by setting the port parameters and enable interrupts. */
unsigned char ser_close (void);
/* "Close" the port. Clear buffers and and disable interrupts. */
unsigned char __fastcall__ ser_get (char* b);
/* Get a character from the serial port. If no characters are available, the
** function will return SER_ERR_NO_DATA, so this is not a fatal error.
*/
unsigned char __fastcall__ ser_put (char b);
/* Send a character via the serial port. There is a transmit buffer, but
** transmitting is not done via interrupt. The function returns
** SER_ERR_OVERFLOW if there is no space left in the transmit buffer.
*/
unsigned char __fastcall__ ser_status (unsigned char* status);
/* Return the serial port status. */
unsigned char __fastcall__ ser_ioctl (unsigned char code, void* data);
/* Driver specific entry. */
/* End of serial.h */
#endif
/*****************************************************************************/
/* */
/* _pbi.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2000 Freddy Offenga <taf_offenga@yahoo.com> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __PBI_H
#define __PBI_H
/* parallel bus interface area */
#define PBI ((unsigned char*)0xD100)
/* parallel device IRQ status */
#define PDVI ((unsigned char*)0xD1FF)
/* parallel device select */
#define PDVS ((unsigned char*)0xD1FF)
/* parallel bus interface RAM area */
#define PBIRAM ((unsigned char*)0xD600)
/* parallel device ID 1 */
#define PDID1 ((unsigned char*)0xD803)
/* parallel device I/O vector */
#define PDIDV ((unsigned char*)0xD805)
/* parallel device IRQ vector */
#define PDIRQV ((unsigned char*)0xD808)
/* parallel device ID 2 */
#define PDID2 ((unsigned char*)0xD80B)
/* parallel device vector table */
#define PDVV ((unsigned char*)0xD80D)
/* End of _pbi.h */
#endif /* #ifndef __PBI_H */
/*****************************************************************************/
/* */
/* _6526.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 1998-2000 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __6526_H
#define __6526_H
/* Define a structure with the 6526 register offsets.
** NOTE: The timer registers are not declared as 16 bit registers, because
** the order in which the two 8 bit halves are written is important, and
** the compiler doesn't guarantee any order when writing 16 bit values.
*/
struct __6526 {
unsigned char pra; /* Port register A */
unsigned char prb; /* Port register B */
unsigned char ddra; /* Data direction register A */
unsigned char ddrb; /* Data direction register B */
unsigned char ta_lo; /* Timer A, low byte */
unsigned char ta_hi; /* Timer A, high byte */
unsigned char tb_lo; /* Timer B, low byte */
unsigned char tb_hi; /* Timer B, high byte */
unsigned char tod_10; /* TOD, 1/10 sec. */
unsigned char tod_sec; /* TOD, seconds */
unsigned char tod_min; /* TOD, minutes */
unsigned char tod_hour; /* TOD, hours */
unsigned char sdr; /* Serial data register */
unsigned char icr; /* Interrupt control register */
unsigned char cra; /* Control register A */
unsigned char crb; /* Control register B */
};
/* End of _6526.h */
#endif
/*****************************************************************************/
/* */
/* apple2enh.h */
/* */
/* enhanced Apple //e system specific definitions */
/* */
/* */
/* */
/* (C) 2004 Oliver Schmidt, <ol.sc@web.de> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _APPLE2ENH_H
#define _APPLE2ENH_H
/* Check for errors */
#if !defined(__APPLE2ENH__)
# error This module may only be used when compiling for the enhanced Apple //e!
#endif
/* If not already done, include the apple2.h header file */
#if !defined(_APPLE2_H)
# include <apple2.h>
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Characters codes */
#define CH_DEL 0x7F
#define CH_CURS_UP 0x0B
#define CH_CURS_DOWN 0x0A
/* These are defined to be OpenApple + NumberKey */
#define CH_F1 0xB1
#define CH_F2 0xB2
#define CH_F3 0xB3
#define CH_F4 0xB4
#define CH_F5 0xB5
#define CH_F6 0xB6
#define CH_F7 0xB7
#define CH_F8 0xB8
#define CH_F9 0xB9
#define CH_F10 0xB0
/* Styles for textframe */
#define TEXTFRAME_WIDE 0x00
#define TEXTFRAME_TALL 0x04
/* Video modes */
#define VIDEOMODE_40x24 0x0011
#define VIDEOMODE_80x24 0x0012
#define VIDEOMODE_40COL VIDEOMODE_40x24
#define VIDEOMODE_80COL VIDEOMODE_80x24
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The addresses of the static drivers */
extern void a2e_auxmem_emd[];
extern void a2e_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
extern void a2e_stdmou_mou[]; /* Referred to by mouse_static_stddrv[] */
extern void a2e_ssc_ser[];
extern void a2e_hi_tgi[]; /* Referred to by tgi_static_stddrv[] */
extern void a2e_lo_tgi[];
/*****************************************************************************/
/* Code */
/*****************************************************************************/
void __fastcall__ textframe (unsigned char width, unsigned char height,
unsigned char style);
/* Output a frame on the text screen with the given width and height
** starting at the current cursor position and using the given style.
*/
void __fastcall__ textframexy (unsigned char x, unsigned char y,
unsigned char width, unsigned char height,
unsigned char style);
/* Same as "gotoxy (x, y); textframe (width, height, style);" */
unsigned __fastcall__ videomode (unsigned mode);
/* Set the video mode, return the old mode. Call with one of the VIDEOMODE_xx
** constants.
*/
/* End of apple2enh.h */
#endif
/*****************************************************************************/
/* */
/* fcntl.h */
/* */
/* File control operations */
/* */
/* */
/* */
/* (C) 1998-2004 Ullrich von Bassewitz */
/* R<>merstra<72>e 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _FCNTL_H
#define _FCNTL_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Flag values for the open() call */
#define O_RDONLY 0x01
#define O_WRONLY 0x02
#define O_RDWR 0x03
#define O_CREAT 0x10
#define O_TRUNC 0x20
#define O_APPEND 0x40
#define O_EXCL 0x80
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* Functions */
int open (const char* name, int flags, ...); /* May take a mode argument */
int __fastcall__ close (int fd);
int __fastcall__ creat (const char* name, unsigned mode);
/* End of fcntl.h */
#endif
/*
** _heap.h
**
** Ullrich von Bassewitz, 1998-06-03, 2004-12-19
**
*/
#ifndef __HEAP_H
#define __HEAP_H
/* Structure that preceeds a user block in most cases.
** The aligned_malloc function may generate blocks where the start pointer
** and size are splitted to handle a memory hole that is needed for
** alignment.
*/
struct usedblock {
unsigned size;
struct usedblock* start;
};
/* Space needed for administering used blocks */
#define HEAP_ADMIN_SPACE sizeof (struct usedblock)
/* The data type used to implement the free list.
** Beware: Field order is significant!
*/
struct freeblock {
unsigned size;
struct freeblock* next;
struct freeblock* prev;
};
/* Variables that describe the heap */
extern unsigned* _heaporg; /* Bottom of heap */
extern unsigned* _heapptr; /* Current top */
extern unsigned* _heapend; /* Upper limit */
extern struct freeblock* _heapfirst; /* First free block in list */
extern struct freeblock* _heaplast; /* Last free block in list */
/* End of _heap.h */
#endif
/*****************************************************************************/
/* */
/* stdio.h */
/* */
/* Input/output */
/* */
/* */
/* */
/* (C) 1998-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _STDIO_H
#define _STDIO_H
#ifndef _STDDEF_H
# include <stddef.h>
#endif
#ifndef _STDARG_H
# include <stdarg.h>
#endif
/* Types */
typedef struct _FILE FILE;
typedef unsigned long fpos_t;
/* Standard file descriptors */
extern FILE* stdin;
extern FILE* stdout;
extern FILE* stderr;
/* Standard defines */
#define _IOFBF 0
#define _IOLBF 1
#define _IONBF 2
#define BUFSIZ 256
#define EOF -1
#define FOPEN_MAX 8
#define SEEK_CUR 0
#define SEEK_END 1
#define SEEK_SET 2
#define TMP_MAX 256
/* Standard defines that are platform dependent */
#if defined(__APPLE2__)
# define FILENAME_MAX (64+1)
#elif defined(__ATARI__)
# define FILENAME_MAX (12+1)
#elif defined(__LUNIX__)
# define FILENAME_MAX (80+1)
#else
# define FILENAME_MAX (16+1)
#endif
#define L_tmpnam FILENAME_MAX
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* Functions */
void __fastcall__ clearerr (FILE* f);
int __fastcall__ fclose (FILE* f);
int __fastcall__ feof (FILE* f);
int __fastcall__ ferror (FILE* f);
int __fastcall__ fflush (FILE* f);
int __fastcall__ fgetc (FILE* f);
char* __fastcall__ fgets (char* buf, size_t size, FILE* f);
FILE* __fastcall__ fopen (const char* name, const char* mode);
int fprintf (FILE* f, const char* format, ...);
int __fastcall__ fputc (int c, FILE* f);
int __fastcall__ fputs (const char* s, FILE* f);
size_t __fastcall__ fread (void* buf, size_t size, size_t count, FILE* f);
FILE* __fastcall__ freopen (const char* name, const char* mode, FILE* f);
size_t __fastcall__ fwrite (const void* buf, size_t size, size_t count, FILE* f);
int __fastcall__ fgetpos (FILE* f, fpos_t *pos);
int __fastcall__ fsetpos (FILE* f, const fpos_t* pos);
long __fastcall__ ftell (FILE* f);
int __fastcall__ fseek (FILE* f, long offset, int whence);
void __fastcall__ rewind (FILE *f);
int getchar (void);
char* __fastcall__ gets (char* s);
void __fastcall__ perror (const char* s);
int printf (const char* format, ...);
int __fastcall__ putchar (int c);
int __fastcall__ puts (const char* s);
int __fastcall__ remove (const char* name);
int __fastcall__ rename (const char* oldname, const char* newname);
int snprintf (char* buf, size_t size, const char* format, ...);
int sprintf (char* buf, const char* format, ...);
int __fastcall__ ungetc (int c, FILE* f);
int __fastcall__ vfprintf (FILE* f, const char* format, va_list ap);
int __fastcall__ vprintf (const char* format, va_list ap);
int __fastcall__ vsnprintf (char* buf, size_t size, const char* format, va_list ap);
int __fastcall__ vsprintf (char* buf, const char* format, va_list ap);
int scanf (const char* format, ...);
int fscanf (FILE* f, const char* format, ...);
int sscanf (const char* s, const char* format, ...);
int __fastcall__ vscanf (const char* format, va_list ap);
int __fastcall__ vsscanf (const char* s, const char* format, va_list ap);
int __fastcall__ vfscanf (FILE* f, const char* format, va_list ap);
#if __CC65_STD__ == __CC65_STD_CC65__
FILE* __fastcall__ fdopen (int fd, const char* mode); /* Unix */
int __fastcall__ fileno (FILE* f); /* Unix */
#endif
void __fastcall__ _poserror (const char* msg); /* cc65 */
/* Masking macros for some functions */
#define getc(f) fgetc (f) /* ANSI */
#define putc(c, f) fputc (c, f) /* ANSI */
/* End of stdio.h */
#endif
/*****************************************************************************/
/* */
/* iso646.h */
/* */
/* Alternative spellings */
/* */
/* */
/* */
/* (C) 1998-2000 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ISO646_H
#define _ISO646_H
/* Operator tokens */
#define and &&
#define and_eq &=
#define bitand &
#define bitor |
#define compl ~
#define not !
#define not_eq !=
#define or ||
#define or_eq |=
#define xor ^
#define xor_eq ^=
/* End of iso646.h */
#endif
/*****************************************************************************/
/* */
/* _6551.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 1998-2000 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __6551_H
#define __6551_H
/* Define a structure with the 6551 register offsets */
struct __6551 {
unsigned char data; /* Data register */
unsigned char status; /* Status register */
unsigned char cmd; /* Command register */
unsigned char ctrl; /* Control register */
};
/* End of _6551.h */
#endif
/*****************************************************************************/
/* */
/* c128.h */
/* */
/* C128 system specific definitions */
/* */
/* */
/* */
/* (C) 1998-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _C128_H
#define _C128_H
/* Check for errors */
#if !defined(__C128__)
# error This module may only be used when compiling for the C128!
#endif
/* Additional key defines */
#define CH_F1 133
#define CH_F2 137
#define CH_F3 134
#define CH_F4 138
#define CH_F5 135
#define CH_F6 139
#define CH_F7 136
#define CH_F8 140
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
#define COLOR_RED 0x02
#define COLOR_CYAN 0x03
#define COLOR_VIOLET 0x04
#define COLOR_GREEN 0x05
#define COLOR_BLUE 0x06
#define COLOR_YELLOW 0x07
#define COLOR_ORANGE 0x08
#define COLOR_BROWN 0x09
#define COLOR_LIGHTRED 0x0A
#define COLOR_GRAY1 0x0B
#define COLOR_GRAY2 0x0C
#define COLOR_LIGHTGREEN 0x0D
#define COLOR_LIGHTBLUE 0x0E
#define COLOR_GRAY3 0x0F
/* TGI color defines */
#define TGI_COLOR_BLACK COLOR_BLACK
#define TGI_COLOR_WHITE COLOR_WHITE
#define TGI_COLOR_RED COLOR_RED
#define TGI_COLOR_CYAN COLOR_CYAN
#define TGI_COLOR_VIOLET COLOR_VIOLET
#define TGI_COLOR_GREEN COLOR_GREEN
#define TGI_COLOR_BLUE COLOR_BLUE
#define TGI_COLOR_YELLOW COLOR_YELLOW
#define TGI_COLOR_ORANGE COLOR_ORANGE
#define TGI_COLOR_BROWN COLOR_BROWN
#define TGI_COLOR_LIGHTRED COLOR_LIGHTRED
#define TGI_COLOR_GRAY1 COLOR_GRAY1
#define TGI_COLOR_GRAY2 COLOR_GRAY2
#define TGI_COLOR_LIGHTGREEN COLOR_LIGHTGREEN
#define TGI_COLOR_LIGHTBLUE COLOR_LIGHTBLUE
#define TGI_COLOR_GRAY3 COLOR_GRAY3
/* Video mode defines */
#define VIDEOMODE_40x25 0x00
#define VIDEOMODE_80x25 0x80
#define VIDEOMODE_40COL VIDEOMODE_40x25
#define VIDEOMODE_80COL VIDEOMODE_80x25
/* Define hardware */
#include <_vic2.h>
#define VIC (*(struct __vic2*)0xD000)
#include <_sid.h>
#define SID (*(struct __sid*)0xD400)
#include <_vdc.h>
#define VDC (*(struct __vdc*)0xD600)
#include <_6526.h>
#define CIA1 (*(struct __6526*)0xDC00)
#define CIA2 (*(struct __6526*)0xDD00)
/* Define special memory areas */
#define COLOR_RAM ((unsigned char*)0xD800)
/* The addresses of the static drivers */
extern void c128_georam_emd[];
extern void c128_ram_emd[];
extern void c128_ram2_emd[];
extern void c128_ramcart_emd[];
extern void c128_reu_emd[];
extern void c128_vdc_emd[];
extern void c128_ptvjoy_joy[];
extern void c128_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
extern void c128_1351_mou[]; /* Referred to by mouse_static_stddrv[] */
extern void c128_joy_mou[];
extern void c128_inkwell_mou[];
extern void c128_pot_mou[];
extern void c128_swlink_ser[];
extern void c128_vdc_tgi[]; /* Referred to by tgi_static_stddrv[] */
extern void c128_vdc2_tgi[];
unsigned __fastcall__ videomode (unsigned Mode);
/* Set the video mode, return the old mode. Call with one of the VIDEOMODE_xx
** constants.
*/
void toggle_videomode (void);
/* Toggle the video mode between 40 and 80 chars (calls SWAPPER).
** THIS FUNCTION IS DEPRECATED, please use videomode instead!
*/
void c64mode (void);
/* Switch the C128 into C64 mode. Note: This function will not return! */
void fast (void);
/* Switch the CPU into 2MHz mode. Note: This will disable video when in
** 40 column mode.
*/
void slow (void);
/* Switch the CPU into 1MHz mode. */
/* End of c128.h */
#endif
/*****************************************************************************/
/* */
/* conio.h */
/* */
/* Direct console I/O */
/* */
/* */
/* */
/* (C) 1998-2007 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/*
** This is the direct console interface for cc65. I do not like the function
** names very much, but the first version started as a rewrite of Borland's
** conio, and, even if the interface has changed, the names did not.
**
** The interface does direct screen I/O, so it is fast enough for most
** programs. I did not implement text windows, since many applications do
** not need them and should not pay for the additional overhead. It should
** be easy to add text windows on a higher level if needed,
**
** Most routines do not check the parameters. This may be unfortunate but is
** also related to speed. The coordinates are always 0/0 based.
*/
#ifndef _CONIO_H
#define _CONIO_H
#if !defined(_STDARG_H)
# include <stdarg.h>
#endif
/* Include the correct machine-specific file */
#if defined(__APPLE2ENH__)
# include <apple2enh.h>
#elif defined(__APPLE2__)
# include <apple2.h>
#elif defined(__ATARI__)
# include <atari.h>
#elif defined(__ATMOS__)
# include <atmos.h>
#elif defined(__CBM__)
# include <cbm.h>
#elif defined(__GAMATE__)
# include <gamate.h>
#elif defined(__GEOS__)
# include <geos.h>
#elif defined(__LUNIX__)
# include <lunix.h>
#elif defined(__LYNX__)
# include <lynx.h>
#elif defined(__NES__)
# include <nes.h>
#elif defined(__OSIC1P__)
# include <osic1p.h>
#elif defined(__PCE__)
# include <pce.h>
#endif
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
void clrscr (void);
/* Clear the whole screen and put the cursor into the top left corner */
unsigned char kbhit (void);
/* Return true if there's a key waiting, return false if not */
void __fastcall__ gotox (unsigned char x);
/* Set the cursor to the specified X position, leave the Y position untouched */
void __fastcall__ gotoy (unsigned char y);
/* Set the cursor to the specified Y position, leave the X position untouched */
void __fastcall__ gotoxy (unsigned char x, unsigned char y);
/* Set the cursor to the specified position */
unsigned char wherex (void);
/* Return the X position of the cursor */
unsigned char wherey (void);
/* Return the Y position of the cursor */
void __fastcall__ cputc (char c);
/* Output one character at the current cursor position */
void __fastcall__ cputcxy (unsigned char x, unsigned char y, char c);
/* Same as "gotoxy (x, y); cputc (c);" */
void __fastcall__ cputs (const char* s);
/* Output a NUL-terminated string at the current cursor position */
void __fastcall__ cputsxy (unsigned char x, unsigned char y, const char* s);
/* Same as "gotoxy (x, y); puts (s);" */
int cprintf (const char* format, ...);
/* Like printf(), but uses direct screen output */
int __fastcall__ vcprintf (const char* format, va_list ap);
/* Like vprintf(), but uses direct screen output */
char cgetc (void);
/* Return a character from the keyboard. If there is no character available,
** the function waits until the user does press a key. If cursor is set to
** 1 (see below), a blinking cursor is displayed while waiting.
*/
int cscanf (const char* format, ...);
/* Like scanf(), but uses direct keyboard input */
int __fastcall__ vcscanf (const char* format, va_list ap);
/* Like vscanf(), but uses direct keyboard input */
unsigned char __fastcall__ cursor (unsigned char onoff);
/* If onoff is 1, a cursor is displayed when waiting for keyboard input. If
** onoff is 0, the cursor is hidden when waiting for keyboard input. The
** function returns the old cursor setting.
*/
unsigned char __fastcall__ revers (unsigned char onoff);
/* Enable/disable reverse character display. This may not be supported by
** the output device. Return the old setting.
*/
unsigned char __fastcall__ textcolor (unsigned char color);
/* Set the color for text output. The old color setting is returned. */
unsigned char __fastcall__ bgcolor (unsigned char color);
/* Set the color for the background. The old color setting is returned. */
unsigned char __fastcall__ bordercolor (unsigned char color);
/* Set the color for the border. The old color setting is returned. */
void __fastcall__ chline (unsigned char length);
/* Output a horizontal line with the given length starting at the current
** cursor position.
*/
void __fastcall__ chlinexy (unsigned char x, unsigned char y, unsigned char length);
/* Same as "gotoxy (x, y); chline (length);" */
void __fastcall__ cvline (unsigned char length);
/* Output a vertical line with the given length at the current cursor
** position.
*/
void __fastcall__ cvlinexy (unsigned char x, unsigned char y, unsigned char length);
/* Same as "gotoxy (x, y); cvline (length);" */
void __fastcall__ cclear (unsigned char length);
/* Clear part of a line (write length spaces). */
void __fastcall__ cclearxy (unsigned char x, unsigned char y, unsigned char length);
/* Same as "gotoxy (x, y); cclear (length);" */
void __fastcall__ screensize (unsigned char* x, unsigned char* y);
/* Return the current screen size. */
void __fastcall__ cputhex8 (unsigned char val);
void __fastcall__ cputhex16 (unsigned val);
/* These shouldn't be here... */
/*****************************************************************************/
/* Macros */
/*****************************************************************************/
/* On some platforms, functions are not available or are dummys. To suppress
** the call to these functions completely, the platform header files may
** define macros for these functions that start with an underline. If such a
** macro exists, a new macro is defined here, that expands to the one with the
** underline. The reason for this two stepped approach is that it is sometimes
** necessary to take the address of the function, which is not possible when
** using a macro. Since the function prototype is still present, #undefining
** the macro will give access to the actual function.
*/
#if defined(_textcolor)
# define textcolor(x) _textcolor(x)
#endif
#if defined(_bgcolor)
# define bgcolor(x) _bgcolor(x)
#endif
#if defined(_bordercolor)
# define bordercolor(x) _bordercolor(x)
#endif
/* End of conio.h */
#endif
/*****************************************************************************/
/* */
/* 6502.h */
/* */
/* 6502 specific declarations */
/* */
/* */
/* */
/* (C) 1998-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _6502_H
#define _6502_H
/* We need size_t */
#ifndef _HAVE_size_t
#define _HAVE_size_t
typedef unsigned size_t;
#endif
/* Possible returns of getcpu() */
#define CPU_6502 0
#define CPU_65C02 1
#define CPU_65816 2
#define CPU_4510 3
unsigned char getcpu (void);
/* Detect the CPU the program is running on */
/* Macros for CPU instructions */
#define BRK() __asm__ ("brk")
#define CLI() __asm__ ("cli")
#define SEI() __asm__ ("sei")
/* Struct that holds the registers for the sys function */
struct regs {
unsigned char a; /* A register value */
unsigned char x; /* X register value */
unsigned char y; /* Y register value */
unsigned char flags; /* Flags value */
unsigned pc; /* Program counter */
};
/* Defines for the flags in the regs structure */
#define F6502_N 0x80 /* N flag */
#define F6502_V 0x40 /* V flag */
#define F6502_B 0x10 /* B flag */
#define F6502_D 0x08 /* D flag */
#define F6502_I 0x04 /* I flag */
#define F6502_Z 0x02 /* Z flag */
#define F6502_C 0x01 /* C flag */
/* Function to call any machine language subroutine. All registers in the
** regs structure are passed into the routine and the results are passed
** out. The B flag is ignored on input. The called routine must end with
** an RTS.
*/
void __fastcall__ _sys (struct regs* r);
/* Set and reset the break vector. The given user function is called if
** a break occurs. The values of the registers may be read from the brk_...
** variables. The value in brk_pc will point to the address that contains
** the brk instruction.
** The set_brk function will install an exit handler that will reset the
** vector if the program ends.
*/
extern unsigned char brk_a; /* A register value */
extern unsigned char brk_x; /* X register value */
extern unsigned char brk_y; /* Y register value */
extern unsigned char brk_sr; /* Status register */
extern unsigned brk_pc; /* PC value */
typedef void (*brk_handler) (void);
/* Type of the break handler */
void __fastcall__ set_brk (brk_handler f);
/* Set the break vector to the given address */
void reset_brk (void);
/* Reset the break vector to the original value */
/* Possible returns for irq_handler() */
#define IRQ_NOT_HANDLED 0
#define IRQ_HANDLED 1
typedef unsigned char (*irq_handler) (void);
/* Type of the C level interrupt request handler */
void __fastcall__ set_irq (irq_handler f, void *stack_addr, size_t stack_size);
/* Set the C level interrupt request vector to the given address */
void reset_irq (void);
/* Reset the C level interrupt request vector */
/* End of 6502.h */
#endif
/*****************************************************************************/
/* */
/* mouse.h */
/* */
/* Mouse API */
/* */
/* */
/* */
/* (C) 2003-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _MOUSE_H
#define _MOUSE_H
/*****************************************************************************/
/* Definitions */
/*****************************************************************************/
/* Error codes */
#define MOUSE_ERR_OK 0 /* No error */
#define MOUSE_ERR_NO_DRIVER 1 /* No driver available */
#define MOUSE_ERR_CANNOT_LOAD 2 /* Error loading driver */
#define MOUSE_ERR_INV_DRIVER 3 /* Invalid driver */
#define MOUSE_ERR_NO_DEVICE 4 /* Mouse hardware not found */
#define MOUSE_ERR_INV_IOCTL 5 /* Invalid ioctl code */
/* Mouse button masks */
#define MOUSE_BTN_LEFT 0x10
#define MOUSE_BTN_RIGHT 0x01
/* Structure containing the mouse coordinates */
struct mouse_pos {
int x;
int y;
};
/* Structure containing information about the mouse */
struct mouse_info {
struct mouse_pos pos; /* Mouse position */
unsigned char buttons; /* Mouse button mask */
};
/* Structure used for getbox/setbox */
struct mouse_box {
int minx;
int miny;
int maxx;
int maxy;
};
/* Structure containing mouse callback functions. These functions are declared
** in C notation here, but they cannot be C functions (at least not easily),
** since they may be called from within an interrupt.
*/
struct mouse_callbacks {
void (*hide) (void);
/* Hide the mouse cursor. */
void (*show) (void);
/* Show the mouse cursor. */
void (*prep) (void);
/* Prepare to move the mouse cursor. This function is called,
** even when the cursor is currently invisible.
*/
void (*draw) (void);
/* Draw the mouse cursor. This function is called,
** even when the cursor is currently invisible.
*/
void __fastcall__ (*movex) (int x);
/* Move the mouse cursor to the new X coordinate. This function is called,
** even when the cursor is currently invisible.
*/
void __fastcall__ (*movey) (int y);
/* Move the mouse cursor to the new Y coordinate. This function is called,
** even when the cursor is currently invisible.
*/
};
/*****************************************************************************/
/* Declarations */
/*****************************************************************************/
/* The default mouse callbacks */
extern const struct mouse_callbacks mouse_def_callbacks;
#if defined(__CBM__)
/* The default mouse pointer shape used by the default mouse callbacks */
extern const unsigned char mouse_def_pointershape[63];
/* The default mouse pointer color used by the default mouse callbacks */
extern const unsigned char mouse_def_pointercolor;
#endif
/* The name of the standard mouse driver for a platform */
extern const char mouse_stddrv[];
/* The address of the static standard mouse driver for a platform */
extern const void mouse_static_stddrv[];
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
unsigned char __fastcall__ mouse_load_driver (const struct mouse_callbacks* c,
const char* driver);
/* Load and install a mouse driver, return an error code. */
unsigned char mouse_unload (void);
/* Uninstall, then unload the currently loaded driver. */
unsigned char __fastcall__ mouse_install (const struct mouse_callbacks* c,
void* driver);
/* Install an already loaded driver. Return an error code. */
unsigned char mouse_uninstall (void);
/* Uninstall the currently loaded driver. Return an error code. */
const char* __fastcall__ mouse_geterrormsg (unsigned char code);
/* Get an error message describing the error in code. */
void mouse_hide (void);
/* Hide the mouse. The function manages a counter and may be called more than
** once. For each call to mouse_hide there must be a call to mouse_show to make
** the mouse visible again.
*/
void mouse_show (void);
/* Show the mouse. See mouse_hide() for more information. */
void __fastcall__ mouse_setbox (const struct mouse_box* box);
/* Set the bounding box for the mouse pointer movement. The mouse X and Y
** coordinates will never go outside the given box.
** NOTE: The function does *not* check if the mouse is currently inside the
** given margins. The proper way to use this function therefore is:
**
** - Hide the mouse
** - Set the bounding box
** - Place the mouse at the desired position
** - Show the mouse again.
**
** NOTE2: When setting the box to something that is larger than the actual
** screen, the positioning of the mouse cursor can fail. If such margins
** are really what you want, you have to use your own cursor routines.
*/
void __fastcall__ mouse_getbox (struct mouse_box* box);
/* Get the current bounding box for the mouse pointer movement. */
void __fastcall__ mouse_move (int x, int y);
/* Set the mouse cursor to the given position. If a mouse cursor is defined
** and currently visible, the mouse cursor is also moved.
** NOTE: This function does not check if the given position is valid and
** inside the bounding box.
*/
unsigned char mouse_buttons (void);
/* Return a bit mask encoding the states of the mouse buttons. Use the
** MOUSE_BTN_XXX flags to decode a specific button.
*/
void __fastcall__ mouse_pos (struct mouse_pos* pos);
/* Return the current mouse position. */
void __fastcall__ mouse_info (struct mouse_info* info);
/* Return the state of the mouse buttons and the position of the mouse. */
unsigned char __fastcall__ mouse_ioctl (unsigned char code, void* data);
/* Call the driver-specific ioctl function. Return an error code.
** NON-PORTABLE!
*/
/* End of mouse.h */
#endif
/*****************************************************************************/
/* */
/* lynx.h */
/* */
/* Lynx system-specific definitions */
/* */
/* */
/* */
/* (C) 2003 Shawn Jefferson */
/* */
/* Adapted with many changes Ullrich von Bassewitz, 2004-10-09 */
/* */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _LYNX_H
#define _LYNX_H
/* Check for errors */
#if !defined(__LYNX__)
# error This module may only be used when compiling for the Lynx game console!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_RED 0x01
#define COLOR_PINK 0x02
#define COLOR_LIGHTGREY 0x03
#define COLOR_GREY 0x04
#define COLOR_DARKGREY 0x05
#define COLOR_BROWN 0x06
#define COLOR_PEACH 0x07
#define COLOR_YELLOW 0x08
#define COLOR_LIGHTGREEN 0x09
#define COLOR_GREEN 0x0A
#define COLOR_DARKBROWN 0x0B
#define COLOR_VIOLET 0x0C
#define COLOR_BLUE 0x0D
#define COLOR_LIGHTBLUE 0x0E
#define COLOR_WHITE 0x0F
/* TGI color defines (default palette) */
#define TGI_COLOR_BLACK COLOR_BLACK
#define TGI_COLOR_RED COLOR_RED
#define TGI_COLOR_PINK COLOR_PINK
#define TGI_COLOR_LIGHTGREY COLOR_LIGHTGREY
#define TGI_COLOR_GREY COLOR_GREY
#define TGI_COLOR_DARKGREY COLOR_DARKGREY
#define TGI_COLOR_BROWN COLOR_BROWN
#define TGI_COLOR_PEACH COLOR_PEACH
#define TGI_COLOR_YELLOW COLOR_YELLOW
#define TGI_COLOR_LIGHTGREEN COLOR_LIGHTGREEN
#define TGI_COLOR_GREEN COLOR_GREEN
#define TGI_COLOR_DARKBROWN COLOR_DARKBROWN
#define TGI_COLOR_VIOLET COLOR_VIOLET
#define TGI_COLOR_BLUE COLOR_BLUE
#define TGI_COLOR_LIGHTBLUE COLOR_LIGHTBLUE
#define TGI_COLOR_WHITE COLOR_WHITE
/* No support for dynamically loadable drivers */
#define DYN_DRV 0
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The addresses of the static drivers */
extern void lynx_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
extern void lynx_comlynx_ser[];
extern void lynx_160_102_16_tgi[]; /* Referred to by tgi_static_stddrv[] */
/*****************************************************************************/
/* Sound support */
/*****************************************************************************/
void lynx_snd_init (void);
/* Initialize the sound driver */
void lynx_snd_pause (void);
/* Pause sound */
void lynx_snd_continue (void);
/* Continue sound after pause */
void __fastcall__ lynx_snd_play (unsigned char channel, unsigned char *music);
/* Play tune on channel */
void lynx_snd_stop (void);
/* Stop sound on all channels */
void __fastcall__ lynx_snd_stop_channel (unsigned char channel);
/* Stop sound on all channels */
unsigned char lynx_snd_active(void);
/* Show which channels are active */
/*****************************************************************************/
/* Accessing the cart */
/*****************************************************************************/
void __fastcall__ lynx_load (int fileno);
/* Load a file into ram. The first entry is fileno=0. */
void __fastcall__ lynx_exec (int fileno);
/* Load a file into ram and execute it. */
/*****************************************************************************/
/* Accessing the EEPROM */
/*****************************************************************************/
unsigned __fastcall__ lynx_eeprom_read (unsigned char cell);
/* Read a 16 bit word from the given address */
unsigned __fastcall__ lynx_eeprom_write (unsigned char cell, unsigned val);
/* Write the word at the given address */
void __fastcall__ lynx_eeprom_erase (unsigned char cell);
/* Clear the word at the given address */
unsigned __fastcall__ lynx_eeread (unsigned cell);
/* Read a 16 bit word from the given address 93C46 93C66 or 93C86*/
unsigned __fastcall__ lynx_eewrite (unsigned cell, unsigned val);
/* Write the word at the given address 93C46 93C66 or 93C86*/
/*****************************************************************************/
/* TGI extras */
/*****************************************************************************/
#define tgi_sprite(spr) tgi_ioctl(0, spr)
#define tgi_flip() tgi_ioctl(1, (void*)0)
#define tgi_setbgcolor(bgcol) tgi_ioctl(2, (void*)(bgcol))
#define tgi_setframerate(rate) tgi_ioctl(3, (void*)(rate))
#define tgi_busy() tgi_ioctl(4, (void*)0)
#define tgi_updatedisplay() tgi_ioctl(4, (void*)1)
#define tgi_setcollisiondetection(active) tgi_ioctl(5, (void*)(active))
/* Define Hardware */
#include <_mikey.h>
#define MIKEY (*(struct __mikey *)0xFD00)
#define _MIKEY_TIMERS (*(struct _mikey_all_timers *) 0xFD00) // mikey_timers[8]
#define _HBL_TIMER (*(struct _mikey_timer *) 0xFD00) // timer0 (HBL)
#define _VBL_TIMER (*(struct _mikey_timer *) 0xFD08) // timer2 (VBL)
#define _UART_TIMER (*(struct _mikey_timer *) 0xFD14) // timer4 (UART)
#define _VIDDMA (*(unsigned int *) 0xFD92) // dispctl/viddma
#include <_suzy.h>
#define SUZY (*(struct __suzy*)0xFC00)
/* End of lynx.h */
#endif
/*****************************************************************************/
/* */
/* atari.h */
/* */
/* Atari system specific definitions */
/* */
/* */
/* */
/* (C) 2000-2006 Mark Keates <markk@dendrite.co.uk> */
/* Freddy Offenga <taf_offenga@yahoo.com> */
/* Christian Groessler <chris@groessler.org> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ATARI_H
#define _ATARI_H
/* Check for errors */
#if !defined(__ATARI__)
# error This module may only be used when compiling for the Atari!
#endif
/* Character codes */
#define CH_DELCHR 0xFE /* delete char under the cursor */
#define CH_ENTER 0x9B
#define CH_ESC 0x1B
#define CH_CURS_UP 28
#define CH_CURS_DOWN 29
#define CH_CURS_LEFT 30
#define CH_CURS_RIGHT 31
#define CH_TAB 0x7F /* tabulator */
#define CH_EOL 0x9B /* end-of-line marker */
#define CH_CLR 0x7D /* clear screen */
#define CH_BEL 0xFD /* bell */
#define CH_DEL 0x7E /* back space (delete char to the left) */
#define CH_RUBOUT 0x7E /* back space (old, deprecated) */
#define CH_DELLINE 0x9C /* delete line */
#define CH_INSLINE 0x9D /* insert line */
/* These are defined to be Atari + NumberKey */
#define CH_F1 177
#define CH_F2 178
#define CH_F3 179
#define CH_F4 180
#define CH_F5 181
#define CH_F6 182
#define CH_F7 183
#define CH_F8 184
#define CH_F9 185
#define CH_F10 176
#define CH_ULCORNER 0x11
#define CH_URCORNER 0x05
#define CH_LLCORNER 0x1A
#define CH_LRCORNER 0x03
#define CH_TTEE 0x17
#define CH_BTEE 0x18
#define CH_LTEE 0x01
#define CH_RTEE 0x04
#define CH_CROSS 0x13
#define CH_HLINE 0x12
#define CH_VLINE 0x7C
/* color defines */
/* make GTIA color value */
#define _gtia_mkcolor(hue,lum) (((hue) << 4) | ((lum) << 1))
/* luminance values go from 0 (black) to 7 (white) */
/* hue values */
#define HUE_GREY 0
#define HUE_GOLD 1
#define HUE_GOLDORANGE 2
#define HUE_REDORANGE 3
#define HUE_ORANGE 4
#define HUE_MAGENTA 5
#define HUE_PURPLE 6
#define HUE_BLUE 7
#define HUE_BLUE2 8
#define HUE_CYAN 9
#define HUE_BLUEGREEN 10
#define HUE_BLUEGREEN2 11
#define HUE_GREEN 12
#define HUE_YELLOWGREEN 13
#define HUE_YELLOW 14
#define HUE_YELLOWRED 15
/* Color defines, similar to c64 colors (untested) */
/* Note that the conio color implementation is monochrome (bgcolor and textcolor are only placeholders) */
/* Use the defines with the setcolor() or _atari_xxxcolor() functions */
#define COLOR_BLACK _gtia_mkcolor(HUE_GREY,0)
#define COLOR_WHITE _gtia_mkcolor(HUE_GREY,7)
#define COLOR_RED _gtia_mkcolor(HUE_REDORANGE,1)
#define COLOR_CYAN _gtia_mkcolor(HUE_CYAN,3)
#define COLOR_VIOLET _gtia_mkcolor(HUE_PURPLE,4)
#define COLOR_GREEN _gtia_mkcolor(HUE_GREEN,2)
#define COLOR_BLUE _gtia_mkcolor(HUE_BLUE,2)
#define COLOR_YELLOW _gtia_mkcolor(HUE_YELLOW,7)
#define COLOR_ORANGE _gtia_mkcolor(HUE_ORANGE,5)
#define COLOR_BROWN _gtia_mkcolor(HUE_YELLOW,2)
#define COLOR_LIGHTRED _gtia_mkcolor(HUE_REDORANGE,6)
#define COLOR_GRAY1 _gtia_mkcolor(HUE_GREY,2)
#define COLOR_GRAY2 _gtia_mkcolor(HUE_GREY,3)
#define COLOR_LIGHTGREEN _gtia_mkcolor(HUE_GREEN,6)
#define COLOR_LIGHTBLUE _gtia_mkcolor(HUE_BLUE,6)
#define COLOR_GRAY3 _gtia_mkcolor(HUE_GREY,5)
/* TGI color defines */
#define TGI_COLOR_BLACK COLOR_BLACK
#define TGI_COLOR_WHITE COLOR_WHITE
#define TGI_COLOR_RED COLOR_RED
#define TGI_COLOR_CYAN COLOR_CYAN
#define TGI_COLOR_VIOLET COLOR_VIOLET
#define TGI_COLOR_GREEN COLOR_GREEN
#define TGI_COLOR_BLUE COLOR_BLUE
#define TGI_COLOR_YELLOW COLOR_YELLOW
#define TGI_COLOR_ORANGE COLOR_ORANGE
#define TGI_COLOR_BROWN COLOR_BROWN
#define TGI_COLOR_LIGHTRED COLOR_LIGHTRED
#define TGI_COLOR_GRAY1 COLOR_GRAY1
#define TGI_COLOR_GRAY2 COLOR_GRAY2
#define TGI_COLOR_LIGHTGREEN COLOR_LIGHTGREEN
#define TGI_COLOR_LIGHTBLUE COLOR_LIGHTBLUE
#define TGI_COLOR_GRAY3 COLOR_GRAY3
/* color register functions */
extern void __fastcall__ _setcolor (unsigned char color_reg, unsigned char hue, unsigned char luminace);
extern void __fastcall__ _setcolor_low (unsigned char color_reg, unsigned char color_value);
extern unsigned char __fastcall__ _getcolor (unsigned char color_reg);
/* other screen functions */
extern int __fastcall__ _graphics (unsigned char mode); /* mode value same as in BASIC */
extern void __fastcall__ _scroll (signed char numlines);
/* numlines > 0 scrolls up */
/* numlines < 0 scrolls down */
/* misc. functions */
extern unsigned char get_ostype(void); /* get ROM version */
extern unsigned char get_tv(void); /* get TV system */
extern void _save_vecs(void); /* save system vectors */
extern void _rest_vecs(void); /* restore system vectors */
extern char *_getdefdev(void); /* get default floppy device */
extern unsigned char _is_cmdline_dos(void); /* does DOS support command lines */
/* global variables */
extern unsigned char _dos_type; /* the DOS flavour */
#ifndef __ATARIXL__
extern void atr130_emd[];
extern void atrstd_joy[]; /* referred to by joy_static_stddrv[] */
extern void atrmj8_joy[];
extern void atrjoy_mou[];
extern void atrst_mou[]; /* referred to by mouse_static_stddrv[] */
extern void atrami_mou[];
extern void atrtrk_mou[];
extern void atrtt_mou[];
extern void atrrdev_ser[];
extern void atr3_tgi[];
extern void atr4_tgi[];
extern void atr5_tgi[];
extern void atr6_tgi[];
extern void atr7_tgi[];
extern void atr8_tgi[]; /* referred to by tgi_static_stddrv[] */
extern void atr8p2_tgi[];
extern void atr9_tgi[];
extern void atr9p2_tgi[];
extern void atr10_tgi[];
extern void atr10p2_tgi[];
extern void atr11_tgi[];
extern void atr14_tgi[];
extern void atr15_tgi[];
extern void atr15p2_tgi[];
#else
extern void atrx130_emd[];
extern void atrxstd_joy[]; /* referred to by joy_static_stddrv[] */
extern void atrxmj8_joy[];
extern void atrxjoy_mou[];
extern void atrxst_mou[]; /* referred to by mouse_static_stddrv[] */
extern void atrxami_mou[];
extern void atrxtrk_mou[];
extern void atrxtt_mou[];
extern void atrxrdev_ser[];
extern void atrx3_tgi[];
extern void atrx4_tgi[];
extern void atrx5_tgi[];
extern void atrx6_tgi[];
extern void atrx7_tgi[];
extern void atrx8_tgi[]; /* referred to by tgi_static_stddrv[] */
extern void atrx8p2_tgi[];
extern void atrx9_tgi[];
extern void atrx9p2_tgi[];
extern void atrx10_tgi[];
extern void atrx10p2_tgi[];
extern void atrx11_tgi[];
extern void atrx14_tgi[];
extern void atrx15_tgi[];
extern void atrx15p2_tgi[];
#endif
/* provide old names for backwards compatibility */
#ifdef ATARI_COMPAT_PRE_2_11
#define setcolor _setcolor
#define setcolor_low _setcolor_low
#define getcolor _getcolor
#define graphics _graphics
#define scroll _scroll
#define save_vecs _save_vecs
#define rest_vecs _rest_vecs
#define getdefdev _getdefdev
#endif /* #ifdef ATARI_COMPAT_PRE_2_11 */
/* get_ostype return value defines (for explanation, see ostype.s) */
/* masks */
#define AT_OS_TYPE_MAIN 7
#define AT_OS_TYPE_MINOR (7 << 3)
/* AT_OS_TYPE_MAIN values */
#define AT_OS_UNKNOWN 0
#define AT_OS_400800 1
#define AT_OS_1200XL 2
#define AT_OS_XLXE 3
/* AS_OS_TYPE_MINOR values */
/* for 400/800 remember this are the ROM versions */
/* to check whether the hw is PAL or NTSC, use get_tv() */
#define AT_OS_400800PAL_A 1
#define AT_OS_400800PAL_B 2
#define AT_OS_400800NTSC_A 1
#define AT_OS_400800NTSC_B 2
#define AT_OS_1200_10 1
#define AT_OS_1200_11 2
#define AT_OS_XLXE_1 1
#define AT_OS_XLXE_2 2
#define AT_OS_XLXE_3 3
#define AT_OS_XLXE_4 4
/* get_tv return values */
#define AT_NTSC 0
#define AT_PAL 1
/* valid _dos_type values */
#define SPARTADOS 0
#define OSADOS 1
#define XDOS 2
#define ATARIDOS 3
#define MYDOS 4
#define NODOS 255
/* Define hardware */
#include <_gtia.h>
#define GTIA_READ (*(struct __gtia_read*)0xD000)
#define GTIA_WRITE (*(struct __gtia_write*)0xD000)
#include <_pbi.h>
#include <_pokey.h>
#define POKEY_READ (*(struct __pokey_read*)0xD200)
#define POKEY_WRITE (*(struct __pokey_write*)0xD200)
#include <_pia.h>
#define PIA (*(struct __pia*)0xD300)
#include <_antic.h>
#define ANTIC (*(struct __antic*)0xD400)
/* device control block */
struct __dcb {
unsigned char device; /* device id */
unsigned char unit; /* unit number */
unsigned char command; /* command */
unsigned char status; /* command type / status return */
void *buffer; /* pointer to buffer */
unsigned char timeout; /* device timeout in seconds */
unsigned char unused;
unsigned int xfersize; /* # of bytes to transfer */
unsigned char aux1; /* 1st command auxiliary byte */
unsigned char aux2; /* 2nd command auxiliary byte */
};
#define DCB (*(struct __dcb *)0x300)
/* I/O control block */
struct __iocb {
unsigned char handler; /* handler index number (0xff free) */
unsigned char drive; /* device number (drive) */
unsigned char command; /* command */
unsigned char status; /* status of last operation */
void *buffer; /* pointer to buffer */
void *put_byte; /* pointer to device's PUT BYTE routine */
unsigned int buflen; /* length of buffer */
unsigned char aux1; /* 1st auxiliary byte */
unsigned char aux2; /* 2nd auxiliary byte */
unsigned char aux3; /* 3rd auxiliary byte */
unsigned char aux4; /* 4th auxiliary byte */
unsigned char aux5; /* 5th auxiliary byte */
unsigned char spare; /* spare byte */
};
#define ZIOCB (*(struct __iocb *)0x20) /* zero page IOCB */
#define IOCB (*(struct __iocb *)0x340) /* system IOCB buffers */
/* IOCB Command Codes */
#define IOCB_OPEN 0x03 /* open */
#define IOCB_GETREC 0x05 /* get record */
#define IOCB_GETCHR 0x07 /* get character(s) */
#define IOCB_PUTREC 0x09 /* put record */
#define IOCB_PUTCHR 0x0B /* put character(s) */
#define IOCB_CLOSE 0x0C /* close */
#define IOCB_STATIS 0x0D /* status */
#define IOCB_SPECIL 0x0E /* special */
#define IOCB_DRAWLN 0x11 /* draw line */
#define IOCB_FILLIN 0x12 /* draw line with right fill */
#define IOCB_RENAME 0x20 /* rename disk file */
#define IOCB_DELETE 0x21 /* delete disk file */
#define IOCB_LOCKFL 0x23 /* lock file (set to read-only) */
#define IOCB_UNLOCK 0x24 /* unlock file */
#define IOCB_POINT 0x25 /* point sector */
#define IOCB_NOTE 0x26 /* note sector */
#define IOCB_GETFL 0x27 /* get file length */
#define IOCB_CHDIR_MYDOS 0x29 /* change directory (MyDOS) */
#define IOCB_MKDIR 0x2A /* make directory (MyDOS/SpartaDOS) */
#define IOCB_RMDIR 0x2B /* remove directory (SpartaDOS) */
#define IOCB_CHDIR_SPDOS 0x2C /* change directory (SpartaDOS) */
#define IOCB_GETCWD 0x30 /* get current directory (MyDOS/SpartaDOS) */
#define IOCB_FORMAT 0xFE /* format */
/* End of atari.h */
#endif /* #ifndef _ATARI_H */
/*****************************************************************************/
/* */
/* atari_screen_charmap.h */
/* */
/* Atari system internal string mapping (ISO-8859-1 -> Internal/Screen-Code) */
/* */
/* */
/* */
/* (C) 2016 Christian Krueger */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* No include guard here! Multiple use in one file may be intentional. */
#pragma warn (remap-zero, push, off)
#pragma charmap (0x00, 0x40)
#pragma warn (remap-zero, pop)
#pragma charmap (0x01, 0x41)
#pragma charmap (0x02, 0x42)
#pragma charmap (0x03, 0x43)
#pragma charmap (0x04, 0x44)
#pragma charmap (0x05, 0x45)
#pragma charmap (0x06, 0x46)
#pragma charmap (0x07, 0xFD)
#pragma charmap (0x08, 0x48)
#pragma charmap (0x09, 0x7F)
#pragma charmap (0x0A, 0xDB)
#pragma charmap (0x0B, 0x4B)
#pragma charmap (0x0C, 0x7D)
#pragma charmap (0x0D, 0x4D)
#pragma charmap (0x0E, 0x4E)
#pragma charmap (0x0F, 0x4F)
#pragma charmap (0x10, 0x50)
#pragma charmap (0x11, 0x51)
#pragma charmap (0x12, 0x52)
#pragma charmap (0x13, 0x53)
#pragma charmap (0x14, 0x54)
#pragma charmap (0x15, 0x55)
#pragma charmap (0x16, 0x56)
#pragma charmap (0x17, 0x57)
#pragma charmap (0x18, 0x58)
#pragma charmap (0x19, 0x59)
#pragma charmap (0x1A, 0x5A)
#pragma charmap (0x1B, 0x5B)
#pragma charmap (0x1C, 0x5C)
#pragma charmap (0x1D, 0x5D)
#pragma charmap (0x1E, 0x5E)
#pragma charmap (0x1F, 0x5F)
#pragma warn (remap-zero, push, off)
#pragma charmap (0x20, 0x00)
#pragma warn (remap-zero, pop)
#pragma charmap (0x21, 0x01)
#pragma charmap (0x22, 0x02)
#pragma charmap (0x23, 0x03)
#pragma charmap (0x24, 0x04)
#pragma charmap (0x25, 0x05)
#pragma charmap (0x26, 0x06)
#pragma charmap (0x27, 0x07)
#pragma charmap (0x28, 0x08)
#pragma charmap (0x29, 0x09)
#pragma charmap (0x2A, 0x0A)
#pragma charmap (0x2B, 0x0B)
#pragma charmap (0x2C, 0x0C)
#pragma charmap (0x2D, 0x0D)
#pragma charmap (0x2E, 0x0E)
#pragma charmap (0x2F, 0x0F)
#pragma charmap (0x30, 0x10)
#pragma charmap (0x31, 0x11)
#pragma charmap (0x32, 0x12)
#pragma charmap (0x33, 0x13)
#pragma charmap (0x34, 0x14)
#pragma charmap (0x35, 0x15)
#pragma charmap (0x36, 0x16)
#pragma charmap (0x37, 0x17)
#pragma charmap (0x38, 0x18)
#pragma charmap (0x39, 0x19)
#pragma charmap (0x3A, 0x1A)
#pragma charmap (0x3B, 0x1B)
#pragma charmap (0x3C, 0x1C)
#pragma charmap (0x3D, 0x1D)
#pragma charmap (0x3E, 0x1E)
#pragma charmap (0x3F, 0x1F)
#pragma charmap (0x40, 0x20)
#pragma charmap (0x41, 0x21)
#pragma charmap (0x42, 0x22)
#pragma charmap (0x43, 0x23)
#pragma charmap (0x44, 0x24)
#pragma charmap (0x45, 0x25)
#pragma charmap (0x46, 0x26)
#pragma charmap (0x47, 0x27)
#pragma charmap (0x48, 0x28)
#pragma charmap (0x49, 0x29)
#pragma charmap (0x4A, 0x2A)
#pragma charmap (0x4B, 0x2B)
#pragma charmap (0x4C, 0x2C)
#pragma charmap (0x4D, 0x2D)
#pragma charmap (0x4E, 0x2E)
#pragma charmap (0x4F, 0x2F)
#pragma charmap (0x50, 0x30)
#pragma charmap (0x51, 0x31)
#pragma charmap (0x52, 0x32)
#pragma charmap (0x53, 0x33)
#pragma charmap (0x54, 0x34)
#pragma charmap (0x55, 0x35)
#pragma charmap (0x56, 0x36)
#pragma charmap (0x57, 0x37)
#pragma charmap (0x58, 0x38)
#pragma charmap (0x59, 0x39)
#pragma charmap (0x5A, 0x3A)
#pragma charmap (0x5B, 0x3B)
#pragma charmap (0x5C, 0x3C)
#pragma charmap (0x5D, 0x3D)
#pragma charmap (0x5E, 0x3E)
#pragma charmap (0x5F, 0x3F)
#pragma charmap (0x60, 0x60)
#pragma charmap (0x61, 0x61)
#pragma charmap (0x62, 0x62)
#pragma charmap (0x63, 0x63)
#pragma charmap (0x64, 0x64)
#pragma charmap (0x65, 0x65)
#pragma charmap (0x66, 0x66)
#pragma charmap (0x67, 0x67)
#pragma charmap (0x68, 0x68)
#pragma charmap (0x69, 0x69)
#pragma charmap (0x6A, 0x6A)
#pragma charmap (0x6B, 0x6B)
#pragma charmap (0x6C, 0x6C)
#pragma charmap (0x6D, 0x6D)
#pragma charmap (0x6E, 0x6E)
#pragma charmap (0x6F, 0x6F)
#pragma charmap (0x70, 0x70)
#pragma charmap (0x71, 0x71)
#pragma charmap (0x72, 0x72)
#pragma charmap (0x73, 0x73)
#pragma charmap (0x74, 0x74)
#pragma charmap (0x75, 0x75)
#pragma charmap (0x76, 0x76)
#pragma charmap (0x77, 0x77)
#pragma charmap (0x78, 0x78)
#pragma charmap (0x79, 0x79)
#pragma charmap (0x7A, 0x7A)
#pragma charmap (0x7B, 0x7B)
#pragma charmap (0x7C, 0x7C)
#pragma charmap (0x7D, 0x7D)
#pragma charmap (0x7E, 0x7E)
#pragma charmap (0x7F, 0x7F)
#pragma charmap (0x80, 0xC0)
#pragma charmap (0x81, 0xC1)
#pragma charmap (0x82, 0xC2)
#pragma charmap (0x83, 0xC3)
#pragma charmap (0x84, 0xC4)
#pragma charmap (0x85, 0xC5)
#pragma charmap (0x86, 0xC6)
#pragma charmap (0x87, 0xC7)
#pragma charmap (0x88, 0xC8)
#pragma charmap (0x89, 0xC9)
#pragma charmap (0x8A, 0xCA)
#pragma charmap (0x8B, 0xCB)
#pragma charmap (0x8C, 0xCC)
#pragma charmap (0x8D, 0xCD)
#pragma charmap (0x8E, 0xCE)
#pragma charmap (0x8F, 0xCF)
#pragma charmap (0x90, 0xD0)
#pragma charmap (0x91, 0xD1)
#pragma charmap (0x92, 0xD2)
#pragma charmap (0x93, 0xD3)
#pragma charmap (0x94, 0xD4)
#pragma charmap (0x95, 0xD5)
#pragma charmap (0x96, 0xD6)
#pragma charmap (0x97, 0xD7)
#pragma charmap (0x98, 0xD8)
#pragma charmap (0x99, 0xD9)
#pragma charmap (0x9A, 0xDA)
#pragma charmap (0x9B, 0xDB)
#pragma charmap (0x9C, 0xDC)
#pragma charmap (0x9D, 0xDD)
#pragma charmap (0x9E, 0xDE)
#pragma charmap (0x9F, 0xDF)
#pragma charmap (0xA0, 0x80)
#pragma charmap (0xA1, 0x81)
#pragma charmap (0xA2, 0x82)
#pragma charmap (0xA3, 0x83)
#pragma charmap (0xA4, 0x84)
#pragma charmap (0xA5, 0x85)
#pragma charmap (0xA6, 0x86)
#pragma charmap (0xA7, 0x87)
#pragma charmap (0xA8, 0x88)
#pragma charmap (0xA9, 0x89)
#pragma charmap (0xAA, 0x8A)
#pragma charmap (0xAB, 0x8B)
#pragma charmap (0xAC, 0x8C)
#pragma charmap (0xAD, 0x8D)
#pragma charmap (0xAE, 0x8E)
#pragma charmap (0xAF, 0x8F)
#pragma charmap (0xB0, 0x90)
#pragma charmap (0xB1, 0x91)
#pragma charmap (0xB2, 0x92)
#pragma charmap (0xB3, 0x93)
#pragma charmap (0xB4, 0x94)
#pragma charmap (0xB5, 0x95)
#pragma charmap (0xB6, 0x96)
#pragma charmap (0xB7, 0x97)
#pragma charmap (0xB8, 0x98)
#pragma charmap (0xB9, 0x99)
#pragma charmap (0xBA, 0x9A)
#pragma charmap (0xBB, 0x9B)
#pragma charmap (0xBC, 0x9C)
#pragma charmap (0xBD, 0x9D)
#pragma charmap (0xBE, 0x9E)
#pragma charmap (0xBF, 0x9F)
#pragma charmap (0xC0, 0xA0)
#pragma charmap (0xC1, 0xA1)
#pragma charmap (0xC2, 0xA2)
#pragma charmap (0xC3, 0xA3)
#pragma charmap (0xC4, 0xA4)
#pragma charmap (0xC5, 0xA5)
#pragma charmap (0xC6, 0xA6)
#pragma charmap (0xC7, 0xA7)
#pragma charmap (0xC8, 0xA8)
#pragma charmap (0xC9, 0xA9)
#pragma charmap (0xCA, 0xAA)
#pragma charmap (0xCB, 0xAB)
#pragma charmap (0xCC, 0xAC)
#pragma charmap (0xCD, 0xAD)
#pragma charmap (0xCE, 0xAE)
#pragma charmap (0xCF, 0xAF)
#pragma charmap (0xD0, 0xB0)
#pragma charmap (0xD1, 0xB1)
#pragma charmap (0xD2, 0xB2)
#pragma charmap (0xD3, 0xB3)
#pragma charmap (0xD4, 0xB4)
#pragma charmap (0xD5, 0xB5)
#pragma charmap (0xD6, 0xB6)
#pragma charmap (0xD7, 0xB7)
#pragma charmap (0xD8, 0xB8)
#pragma charmap (0xD9, 0xB9)
#pragma charmap (0xDA, 0xBA)
#pragma charmap (0xDB, 0xBB)
#pragma charmap (0xDC, 0xBC)
#pragma charmap (0xDD, 0xBD)
#pragma charmap (0xDE, 0xBE)
#pragma charmap (0xDF, 0xBF)
#pragma charmap (0xE0, 0xE0)
#pragma charmap (0xE1, 0xE1)
#pragma charmap (0xE2, 0xE2)
#pragma charmap (0xE3, 0xE3)
#pragma charmap (0xE4, 0xE4)
#pragma charmap (0xE5, 0xE5)
#pragma charmap (0xE6, 0xE6)
#pragma charmap (0xE7, 0xE7)
#pragma charmap (0xE8, 0xE8)
#pragma charmap (0xE9, 0xE9)
#pragma charmap (0xEA, 0xEA)
#pragma charmap (0xEB, 0xEB)
#pragma charmap (0xEC, 0xEC)
#pragma charmap (0xED, 0xED)
#pragma charmap (0xEE, 0xEE)
#pragma charmap (0xEF, 0xEF)
#pragma charmap (0xF0, 0xF0)
#pragma charmap (0xF1, 0xF1)
#pragma charmap (0xF2, 0xF2)
#pragma charmap (0xF3, 0xF3)
#pragma charmap (0xF4, 0xF4)
#pragma charmap (0xF5, 0xF5)
#pragma charmap (0xF6, 0xF6)
#pragma charmap (0xF7, 0xF7)
#pragma charmap (0xF8, 0xF8)
#pragma charmap (0xF9, 0xF9)
#pragma charmap (0xFA, 0xFA)
#pragma charmap (0xFB, 0xFB)
#pragma charmap (0xFC, 0xFC)
#pragma charmap (0xFD, 0xFD)
#pragma charmap (0xFE, 0xFE)
#pragma charmap (0xFF, 0xFF)
/*****************************************************************************/
/* */
/* stdlib.h */
/* */
/* General utilities */
/* */
/* */
/* */
/* (C) 1998-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _STDLIB_H
#define _STDLIB_H
/* size_t is needed */
#ifndef _HAVE_size_t
typedef unsigned size_t;
#define _HAVE_size_t
#endif
/* Standard exit codes */
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
/* Return type of the div function */
typedef struct {
int rem;
int quot;
} div_t;
/* Return type of the ldiv function (which currently doesn't exist) */
typedef struct {
long rem;
long quot;
} ldiv_t;
/* Memory management */
void* __fastcall__ malloc (size_t size);
void* __fastcall__ calloc (size_t count, size_t size);
void* __fastcall__ realloc (void* block, size_t size);
void __fastcall__ free (void* block);
/* Non standard memory management functions */
#if __CC65_STD__ == __CC65_STD_CC65__
int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size);
/* Allocate a block of memory with the given "size", which is aligned to a
** memory address that is a multiple of "alignment". "alignment" MUST NOT be
** zero, and MUST be a power of two; otherwise, this function will return
** EINVAL. The function returns ENOMEM if not enough memory is available
** to satisfy the request. "memptr" must point to a variable; that variable
** will return the address of the allocated memory. Use free() to release that
** allocated block.
*/
#endif
void __fastcall__ _heapadd (void* mem, size_t size);
/* Add a block to the heap */
size_t __fastcall__ _heapblocksize (const void* block);
/* Return the size of an allocated block */
size_t _heapmemavail (void);
/* Return the total free heap space */
size_t _heapmaxavail (void);
/* Return the size of the largest free block on the heap */
/* Random numbers */
#define RAND_MAX 0x7FFF
int rand (void);
void __fastcall__ srand (unsigned seed);
void _randomize (void); /* Non-standard */
/* Other standard stuff */
void abort (void) __attribute__ ((noreturn));
int __fastcall__ abs (int val);
long __fastcall__ labs (long val);
int __fastcall__ atoi (const char* s);
long __fastcall__ atol (const char* s);
int __fastcall__ atexit (void (*exitfunc) (void));
void* __fastcall__ bsearch (const void* key, const void* base, size_t n,
size_t size, int __fastcall__ (* cmp) (const void*, const void*));
div_t __fastcall__ div (int numer, int denom);
void __fastcall__ exit (int ret) __attribute__ ((noreturn));
char* __fastcall__ getenv (const char* name);
void __fastcall__ qsort (void* base, size_t count, size_t size,
int __fastcall__ (* compare) (const void*, const void*));
long __fastcall__ strtol (const char* nptr, char** endptr, int base);
unsigned long __fastcall__ strtoul (const char* nptr, char** endptr, int base);
int __fastcall__ system (const char* s);
/* Non-ANSI functions */
void __fastcall__ _swap (void* p, void* q, size_t size);
#if __CC65_STD__ == __CC65_STD_CC65__
char* __fastcall__ itoa (int val, char* buf, int radix);
char* __fastcall__ utoa (unsigned val, char* buf, int radix);
char* __fastcall__ ltoa (long val, char* buf, int radix);
char* __fastcall__ ultoa (unsigned long val, char* buf, int radix);
int __fastcall__ putenv (char* s);
#endif
/* End of stdlib.h */
#endif
/*****************************************************************************/
/* */
/* pen.h */
/* */
/* Lightpen API */
/* */
/* */
/* This software is provided "as-is", without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated, but is not required. */
/* 2. Altered source versions must be marked plainly as such; and, must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _PEN_H
#define _PEN_H
/*****************************************************************************/
/* Declarations */
/*****************************************************************************/
/* A program optionally can set this pointer to a function that gives
** a calibration value to a driver. If this pointer isn't NULL,
** then a driver that wants a value can call that function.
** pen_adjuster must be set before the driver is installed.
*/
extern void __fastcall__ (*pen_adjuster) (unsigned char *pValue);
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
void __fastcall__ pen_calibrate (unsigned char *XOffset);
/* Ask the user to help to calibrate a lightpen. Changes the screen!
** A pointer to this function can be put into pen_adjuster.
*/
void __fastcall__ pen_adjust (const char *filename);
/* Get a lightpen calibration value from a file if it exists. Otherwise, call
** pen_calibrate() to create a value; then, write it into a file, so that it
** will be available at the next time that the lightpen is used.
** Might change the screen.
** pen_adjust() is optional; if you want to use its feature,
** then it must be called before a driver is installed.
** Note: This function merely saves the file-name pointer, and sets
** the pen_adjuster pointer. The file will be read only when a driver
** is installed, and only if that driver wants to be calibrated.
*/
/* End of pen.h */
#endif
/*****************************************************************************/
/* */
/* stdbool.h */
/* */
/* C99 Boolean definitions */
/* */
/* */
/* */
/* (C) 2002 Greg King */
/* */
/* */
/* This software is provided "as-is," without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment, in the product's documentation, */
/* would be appreciated, but is not required. */
/* 2. Alterred source versions must be marked plainly as such, */
/* and must not be misrepresented as being the original software. */
/* 3. This notice may not be removed or alterred */
/* from any source distribution. */
/*****************************************************************************/
#ifndef _STDBOOL_H
#define _STDBOOL_H
#define bool _Bool
typedef unsigned char _Bool;
/* Standard test-results. */
#define false 0
#define true 1
/* All three names are macroes. */
#define __bool_true_false_are_defined 1
/* End of stdbool.h */
#endif
/*****************************************************************************/
/* */
/* cc65.h */
/* */
/* Target independent but cc65 specific utility functions */
/* */
/* */
/* */
/* (C) 2009-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CC65_H
#define _CC65_H
/*****************************************************************************/
/* Code */
/*****************************************************************************/
long __fastcall__ cc65_idiv32by16r16 (long rhs, int lhs);
/* Divide a 32 bit signed value by a 16 bit signed value yielding a 16
** bit result and a 16 bit remainder. The former is returned in the lower 16
** bit of the result, the latter in the upper. If you don't need the
** remainder, just assign (or cast) to an int.
*/
unsigned long __fastcall__ cc65_udiv32by16r16 (unsigned long rhs, unsigned lhs);
/* Divide a 32 bit unsigned value by a 16 bit unsigned value yielding a 16
** bit result and a 16 bit remainder. The former is returned in the lower 16
** bit of the result, the latter in the upper. If you don't need the
** remainder, just assign (or cast) to an unsigned.
*/
int __fastcall__ cc65_imul8x8r16 (signed char lhs, signed char rhs);
/* Multiplicate two signed 8 bit to yield an signed 16 bit result */
long __fastcall__ cc65_imul16x16r32 (int lhs, int rhs);
/* Multiplicate two signed 16 bit to yield a signed 32 bit result */
unsigned __fastcall__ cc65_umul8x8r16 (unsigned char lhs, unsigned char rhs);
/* Multiplicate two unsigned 8 bit to yield an unsigned 16 bit result */
unsigned long __fastcall__ cc65_umul16x8r32 (unsigned lhs, unsigned char rhs);
/* Multiplicate an unsigned 16 bit by an unsigned 8 bit number yielding a 24
** bit unsigned result that is extended to 32 bits for easier handling from C.
*/
unsigned long __fastcall__ cc65_umul16x16r32 (unsigned lhs, unsigned rhs);
/* Multiplicate two unsigned 16 bit to yield an unsigned 32 bit result */
int __fastcall__ cc65_sin (unsigned x);
/* Return the sine of the argument, which must be in range 0..360. The result
** is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
*/
int __fastcall__ cc65_cos (unsigned x);
/* Return the cosine of the argument, which must be in range 0..360. The result
** is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
*/
unsigned char doesclrscrafterexit (void);
/* Indicates whether the screen automatically be cleared after program
** termination.
*/
/* End of cc65.h */
#endif
/*****************************************************************************/
/* */
/* signal.h */
/* */
/* Signal handling definitions */
/* */
/* */
/* */
/* (C) 2002-2005, Ullrich von Bassewitz */
/* R<>merstra<72>e 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _SIGNAL_H
#define _SIGNAL_H
/* sig_atomic_t */
typedef unsigned char sig_atomic_t;
/* Type of a signal handler */
typedef void __fastcall__ (*__sigfunc) (int);
/* Functions that implement SIG_IGN and SIG_DFL */
void __fastcall__ _sig_ign (int);
void __fastcall__ _sig_dfl (int);
/* Standard signal handling functions */
#define SIG_DFL _sig_dfl
#define SIG_IGN _sig_ign
#define SIG_ERR ((__sigfunc) 0x0000)
/* Signal numbers */
#define SIGABRT 0
#define SIGFPE 1
#define SIGILL 2
#define SIGINT 3
#define SIGSEGV 4
#define SIGTERM 5
/* Function declarations */
__sigfunc __fastcall__ signal (int sig, __sigfunc func);
int __fastcall__ raise (int sig);
/* End of signal.h */
#endif
/*****************************************************************************/
/* */
/* _sid.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 1998-2000 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __SID_H
#define __SID_H
/* Define a structure with the sid register offsets */
struct __sid_voice {
unsigned freq; /* Frequency */
unsigned pw; /* Pulse width */
unsigned char ctrl; /* Control register */
unsigned char ad; /* Attack/decay */
unsigned char sr; /* Sustain/release */
};
struct __sid {
struct __sid_voice v1; /* Voice 1 */
struct __sid_voice v2; /* Voice 2 */
struct __sid_voice v3; /* Voice 3 */
unsigned flt_freq; /* Filter frequency */
unsigned char flt_ctrl; /* Filter control register */
unsigned char amp; /* Amplitude */
unsigned char ad1; /* A/D converter 1 */
unsigned char ad2; /* A/D converter 2 */
unsigned char noise; /* Noise generator */
unsigned char read3; /* Value of voice 3 */
};
/* End of _sid.h */
#endif
/*****************************************************************************/
/* */
/* _vic2.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 1998-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __VIC2_H
#define __VIC2_H
/* Define a structure with the vic register offsets. In cc65 mode, there
** are aliases for the field accessible as arrays.
*/
#if __CC65_STD__ == __CC65_STD_CC65__
struct __vic2 {
union {
struct {
unsigned char spr0_x; /* Sprite 0, X coordinate */
unsigned char spr0_y; /* Sprite 0, Y coordinate */
unsigned char spr1_x; /* Sprite 1, X coordinate */
unsigned char spr1_y; /* Sprite 1, Y coordinate */
unsigned char spr2_x; /* Sprite 2, X coordinate */
unsigned char spr2_y; /* Sprite 2, Y coordinate */
unsigned char spr3_x; /* Sprite 3, X coordinate */
unsigned char spr3_y; /* Sprite 3, Y coordinate */
unsigned char spr4_x; /* Sprite 4, X coordinate */
unsigned char spr4_y; /* Sprite 4, Y coordinate */
unsigned char spr5_x; /* Sprite 5, X coordinate */
unsigned char spr5_y; /* Sprite 5, Y coordinate */
unsigned char spr6_x; /* Sprite 6, X coordinate */
unsigned char spr6_y; /* Sprite 6, Y coordinate */
unsigned char spr7_x; /* Sprite 7, X coordinate */
unsigned char spr7_y; /* Sprite 7, Y coordinate */
};
struct {
unsigned char x; /* X coordinate */
unsigned char y; /* Y coordinate */
} spr_pos[8];
};
unsigned char spr_hi_x; /* High bits of X coordinate */
unsigned char ctrl1; /* Control register 1 */
unsigned char rasterline; /* Current raster line */
union {
struct {
unsigned char strobe_x; /* Light pen, X position */
unsigned char strobe_y; /* Light pen, Y position */
};
struct {
unsigned char x; /* Light pen, X position */
unsigned char y; /* Light pen, Y position */
} strobe;
};
unsigned char spr_ena; /* Enable sprites */
unsigned char ctrl2; /* Control register 2 */
unsigned char spr_exp_y; /* Expand sprites in Y dir */
unsigned char addr; /* Address of chargen and video ram */
unsigned char irr; /* Interrupt request register */
unsigned char imr; /* Interrupt mask register */
unsigned char spr_bg_prio; /* Priority to background */
unsigned char spr_mcolor; /* Sprite multicolor bits */
unsigned char spr_exp_x; /* Expand sprites in X dir */
unsigned char spr_coll; /* Sprite/sprite collision reg */
unsigned char spr_bg_coll; /* Sprite/background collision reg */
unsigned char bordercolor; /* Border color */
union {
struct {
unsigned char bgcolor0; /* Background color 0 */
unsigned char bgcolor1; /* Background color 1 */
unsigned char bgcolor2; /* Background color 2 */
unsigned char bgcolor3; /* Background color 3 */
};
unsigned char bgcolor[4]; /* Background colors */
};
union {
struct {
unsigned char spr_mcolor0; /* Color 0 for multicolor sprites */
unsigned char spr_mcolor1; /* Color 1 for multicolor sprites */
};
/* spr_color is already used ... */
unsigned char spr_mcolors[2]; /* Color for multicolor sprites */
};
union {
struct {
unsigned char spr0_color; /* Color sprite 0 */
unsigned char spr1_color; /* Color sprite 1 */
unsigned char spr2_color; /* Color sprite 2 */
unsigned char spr3_color; /* Color sprite 3 */
unsigned char spr4_color; /* Color sprite 4 */
unsigned char spr5_color; /* Color sprite 5 */
unsigned char spr6_color; /* Color sprite 6 */
unsigned char spr7_color; /* Color sprite 7 */
};
unsigned char spr_color[8]; /* Colors for the sprites */
};
/* The following ones are only valid in the C128: */
unsigned char x_kbd; /* Additional keyboard lines */
unsigned char clock; /* Clock switch bit */
};
#else
struct __vic2 {
unsigned char spr0_x; /* Sprite 0, X coordinate */
unsigned char spr0_y; /* Sprite 0, Y coordinate */
unsigned char spr1_x; /* Sprite 1, X coordinate */
unsigned char spr1_y; /* Sprite 1, Y coordinate */
unsigned char spr2_x; /* Sprite 2, X coordinate */
unsigned char spr2_y; /* Sprite 2, Y coordinate */
unsigned char spr3_x; /* Sprite 3, X coordinate */
unsigned char spr3_y; /* Sprite 3, Y coordinate */
unsigned char spr4_x; /* Sprite 4, X coordinate */
unsigned char spr4_y; /* Sprite 4, Y coordinate */
unsigned char spr5_x; /* Sprite 5, X coordinate */
unsigned char spr5_y; /* Sprite 5, Y coordinate */
unsigned char spr6_x; /* Sprite 6, X coordinate */
unsigned char spr6_y; /* Sprite 6, Y coordinate */
unsigned char spr7_x; /* Sprite 7, X coordinate */
unsigned char spr7_y; /* Sprite 7, Y coordinate */
unsigned char spr_hi_x; /* High bits of X coordinate */
unsigned char ctrl1; /* Control register 1 */
unsigned char rasterline; /* Current raster line */
unsigned char strobe_x; /* Light pen, X position */
unsigned char strobe_y; /* Light pen, Y position */
unsigned char spr_ena; /* Enable sprites */
unsigned char ctrl2; /* Control register 2 */
unsigned char spr_exp_y; /* Expand sprites in Y dir */
unsigned char addr; /* Address of chargen and video ram */
unsigned char irr; /* Interrupt request register */
unsigned char imr; /* Interrupt mask register */
unsigned char spr_bg_prio; /* Priority to background */
unsigned char spr_mcolor; /* Sprite multicolor bits */
unsigned char spr_exp_x; /* Expand sprites in X dir */
unsigned char spr_coll; /* Sprite/sprite collision reg */
unsigned char spr_bg_coll; /* Sprite/background collision reg */
unsigned char bordercolor; /* Border color */
unsigned char bgcolor0; /* Background color 0 */
unsigned char bgcolor1; /* Background color 1 */
unsigned char bgcolor2; /* Background color 2 */
unsigned char bgcolor3; /* Background color 3 */
unsigned char spr_mcolor0; /* Color 0 for multicolor sprites */
unsigned char spr_mcolor1; /* Color 1 for multicolor sprites */
unsigned char spr0_color; /* Color sprite 0 */
unsigned char spr1_color; /* Color sprite 1 */
unsigned char spr2_color; /* Color sprite 2 */
unsigned char spr3_color; /* Color sprite 3 */
unsigned char spr4_color; /* Color sprite 4 */
unsigned char spr5_color; /* Color sprite 5 */
unsigned char spr6_color; /* Color sprite 6 */
unsigned char spr7_color; /* Color sprite 7 */
/* The following ones are only valid in the C128: */
unsigned char x_kbd; /* Additional keyboard lines */
unsigned char clock; /* Clock switch bit */
};
#endif
/* End of _vic2.h */
#endif
/*****************************************************************************/
/* */
/* unistd.h */
/* */
/* Unix compatibility header file for cc65 */
/* */
/* */
/* */
/* (C) 2003-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _UNISTD_H
#define _UNISTD_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Predefined file handles */
#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
/* WE need size_t */
#ifndef _HAVE_size_t
#define _HAVE_size_t
typedef unsigned size_t;
#endif
/* We need off_t if sys/types is not included */
#ifndef _HAVE_off_t
#define _HAVE_off_t
typedef long int off_t;
#endif
/* Stuff for getopt */
extern char *optarg;
extern int optind, opterr, optopt;
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* Files */
int __fastcall__ write (int fd, const void* buf, unsigned count);
int __fastcall__ read (int fd, void* buf, unsigned count);
off_t __fastcall__ lseek (int fd, off_t offset, int whence);
int __fastcall__ unlink (const char* name); /* Same as remove() */
/* Directories */
int __fastcall__ chdir (const char* name);
char* __fastcall__ getcwd (char* buf, size_t size);
int mkdir (const char* name, ...); /* May take a mode argument */
int __fastcall__ rmdir (const char* name);
/* Others */
unsigned __fastcall__ sleep (unsigned seconds);
int __fastcall__ getopt (int argc, char* const* argv, const char* optstring);
/* Non standard: */
#if __CC65_STD__ == __CC65_STD_CC65__
int __fastcall__ exec (const char* progname, const char* cmdline);
#endif
/* End of unistd.h */
#endif
/*****************************************************************************/
/* */
/* ctype.h */
/* */
/* Character handling */
/* */
/* */
/* */
/* (C) 1998-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CTYPE_H
#define _CTYPE_H
/* The array containing character classification data */
extern unsigned char _ctype[256];
/* Bits used to specify character classes */
#define _CT_LOWER 0x01 /* 0 - Lower case char */
#define _CT_UPPER 0x02 /* 1 - Upper case char */
#define _CT_DIGIT 0x04 /* 2 - Numeric digit */
#define _CT_XDIGIT 0x08 /* 3 - Hex digit (both lower and upper) */
#define _CT_CNTRL 0x10 /* 4 - Control character */
#define _CT_SPACE 0x20 /* 5 - The space character itself */
#define _CT_OTHER_WS 0x40 /* 6 - Other whitespace ('\f', '\n', '\r', '\t', and '\v') */
#define _CT_SPACE_TAB 0x80 /* 7 - Space or tab character */
/* Bit combinations */
#define _CT_ALNUM (_CT_LOWER | _CT_UPPER | _CT_DIGIT)
#define _CT_ALPHA (_CT_LOWER | _CT_UPPER)
#define _CT_NOT_GRAPH (_CT_CNTRL | _CT_SPACE)
#define _CT_NOT_PRINT (_CT_CNTRL)
#define _CT_NOT_PUNCT (_CT_SPACE | _CT_CNTRL | _CT_DIGIT | _CT_UPPER | _CT_LOWER)
#define _CT_WS (_CT_SPACE | _CT_OTHER_WS)
/* Character classification functions */
int __fastcall__ isalnum (int c);
int __fastcall__ isalpha (int c);
int __fastcall__ iscntrl (int c);
int __fastcall__ isdigit (int c);
int __fastcall__ isgraph (int c);
int __fastcall__ islower (int c);
int __fastcall__ isprint (int c);
int __fastcall__ ispunct (int c);
int __fastcall__ isspace (int c);
int __fastcall__ isupper (int c);
int __fastcall__ isxdigit (int c);
#if __CC65_STD__ >= __CC65_STD_C99__
int __fastcall__ isblank (int c); /* New in C99 */
#endif
int __fastcall__ toupper (int c); /* Always external */
int __fastcall__ tolower (int c); /* Always external */
#if __CC65_STD__ >= __CC65_STD_CC65__
unsigned char __fastcall__ toascii (unsigned char c);
/* Convert a target-specific character to ASCII. */
#endif
/* When inlining-of-known-functions is enabled, overload most of the above
** functions by macroes. The function prototypes are available again after
** #undef'ing the macroes.
** Please note that the following macroes do NOT handle EOF correctly, as
** stated in the manual. If you need correct behaviour for EOF, don't
** use -Os, or #undefine the following macroes.
*/
#ifdef __OPT_s__
#define isalnum(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_ALNUM), \
__AX__)
#define isalpha(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_ALPHA), \
__AX__)
#if __CC65_STD__ >= __CC65_STD_C99__
#define isblank(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_SPACE_TAB), \
__AX__)
#endif
#define iscntrl(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_CNTRL), \
__AX__)
#define isdigit(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_DIGIT), \
__AX__)
#define isgraph(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_NOT_GRAPH), \
__asm__ ("cmp #1"), \
__asm__ ("lda #1"), \
__asm__ ("sbc #1"), \
__AX__)
#define islower(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_LOWER), \
__AX__)
#define isprint(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_NOT_PRINT), \
__asm__ ("eor #%b", _CT_NOT_PRINT), \
__AX__)
#define ispunct(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_NOT_PUNCT), \
__asm__ ("cmp #1"), \
__asm__ ("lda #1"), \
__asm__ ("sbc #1"), \
__AX__)
#define isspace(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_WS), \
__AX__)
#define isupper(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_UPPER), \
__AX__)
#define isxdigit(c) (__AX__ = (c), \
__asm__ ("tay"), \
__asm__ ("lda %v,y", _ctype), \
__asm__ ("and #%b", _CT_XDIGIT), \
__AX__)
#endif
/* End of ctype.h */
#endif
/*****************************************************************************/
/* */
/* _suzy.h */
/* */
/* Atari Lynx, Suzy chip register hardware structures */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __SUZY_H
#define __SUZY_H
/* Joypad $FCB0 */
#define JOYPAD_RIGHT 0x10
#define JOYPAD_LEFT 0x20
#define JOYPAD_DOWN 0x40
#define JOYPAD_UP 0x80
#define BUTTON_OPTION1 0x08
#define BUTTON_OPTION2 0x04
#define BUTTON_INNER 0x02
#define BUTTON_OUTER 0x01
/* Switches $FCB1 */
#define BUTTON_PAUSE 0x01
/* Hardware Math */
#define FACTOR_A *(unsigned int *) 0xFC54
#define FACTOR_B *(unsigned int *) 0xFC52
#define PRODUCT0 *(unsigned int *) 0xFC60
#define PRODUCT1 *(unsigned int *) 0xFC62
#define PRODUCT *(long *) 0xFC60
#define DIVIDEND0 *(unsigned int *) 0xFC60
#define DIVIDEND1 *(unsigned int *) 0xFC62
#define DIVIDEND *(long *) 0xFC60
#define DIVISOR *(unsigned int *) 0xFC56
#define QUOTIENT0 *(unsigned int *) 0xFC52
#define QUOTIENT1 *(unsigned int *) 0xFC54
#define QUOTIENT *(long *) 0xFC52
#define REMAINDER0 *(unsigned int *) 0xFC6C
#define REMAINDER1 *(unsigned int *) 0xFC6E
#define REMAINDER *(long *) 0xFC6C
/* Sprite control block (SCB) defines */
/* SPRCTL0 $FC80 */
#define BPP_4 0xC0
#define BPP_3 0x80
#define BPP_2 0x40
#define BPP_1 0x00
#define HFLIP 0x20
#define VFLIP 0x10
#define TYPE_SHADOW 0x07
#define TYPE_XOR 0x06
#define TYPE_NONCOLL 0x05
#define TYPE_NORMAL 0x04
#define TYPE_BOUNDARY 0x03
#define TYPE_BSHADOW 0x02
#define TYPE_BACKNONCOLL 0x01
#define TYPE_BACKGROUND 0x00
/* SPRCTL1 $FC81 */
#define LITERAL 0x80
#define PACKED 0x00
#define ALGO3 0x40
#define RENONE 0x00
#define REHV 0x10
#define REHVS 0x20
#define REHVST 0x30
#define REUSEPAL 0x08
#define SKIP 0x04
#define DRAWUP 0x02
#define DRAWLEFT 0x01
typedef struct SCB_REHVST_PAL { // SCB with all attributes
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
unsigned int hsize;
unsigned int vsize;
unsigned int stretch;
unsigned int tilt;
unsigned char penpal[8];
} SCB_REHVST_PAL;
typedef struct SCB_REHVST { // SCB without pallette
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
unsigned int hsize;
unsigned int vsize;
unsigned int stretch;
unsigned int tilt;
} SCB_REHVST;
typedef struct SCB_REHV { // SCB without stretch/tilt
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
unsigned int hsize;
unsigned int vsize;
} SCB_REHV;
typedef struct SCB_REHV_PAL { // SCB without str/tilt, w/ penpal
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
unsigned int hsize;
unsigned int vsize;
unsigned char penpal[8];
} SCB_REHV_PAL;
typedef struct SCB_REHVS { // SCB w/o tilt & penpal
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
unsigned int hsize;
unsigned int vsize;
unsigned int stretch;
} SCB_REHVS;
typedef struct SCB_REHVS_PAL { // SCB w/o tilt w/penpal
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
unsigned int hsize;
unsigned int vsize;
unsigned int stretch;
unsigned char penpal[8];
} SCB_REHVS_PAL;
typedef struct SCB_RENONE { // SCB w/o size/stretch/tilt/pal
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
} SCB_RENONE;
typedef struct SCB_RENONE_PAL { // SCB w/o size/str/tilt w/penpal
unsigned char sprctl0;
unsigned char sprctl1;
unsigned char sprcoll;
char *next;
unsigned char *data;
signed int hpos;
signed int vpos;
unsigned char penpal[8];
} SCB_RENONE_PAL;
typedef struct PENPAL_4 {
unsigned char penpal[8];
} PENPAL_4;
typedef struct PENPAL_3 {
unsigned char penpal[4];
} PENPAL_3;
typedef struct PENPAL_2 {
unsigned char penpal[2];
} PENPAL_2;
typedef struct PENPAL_1 {
unsigned char penpal[1];
} PENPAL_1;
/* Misc system defines */
/* SPRGO $FC91 */
#define EVER_ON 0x04
#define SPRITE_GO 0x01
/* SPRSYS (write) $FC92 */
#define SIGNMATH 0x80
#define ACCUMULATE 0x40
#define NO_COLLIDE 0x20
#define VSTRETCH 0x10
#define LEFTHAND 0x08
#define CLR_UNSAFE 0x04
#define SPRITESTOP 0x02
/* SPRSYS (read) $FC92 */
#define MATHWORKING 0x80
#define MATHWARNING 0x40
#define MATHCARRY 0x20
#define VSTRETCHING 0x10
#define LEFTHANDED 0x08
#define UNSAFE_ACCESS 0x04
#define SPRITETOSTOP 0x02
#define SPRITEWORKING 0x01
/* MAPCTL $FFF9 */
#define HIGHSPEED 0x80
#define VECTORSPACE 0x08
#define ROMSPACE 0x04
#define MIKEYSPACE 0x02
#define SUZYSPACE 0x01
/* Suzy Hardware Registers */
struct __suzy {
unsigned int tmpadr; // 0xFC00 Temporary address
unsigned int tiltacc; // 0xFC02 Tilt accumulator
unsigned int hoff; // 0xFC04 Offset to H edge of screen
unsigned int voff; // 0xFC06 Offset to V edge of screen
unsigned char *sprbase; // 0xFC08 Base address of sprite
unsigned char *colbase; // 0xFC0A Base address of collision buffer
unsigned char *vidadr; // 0xFC0C Current vid buffer address
unsigned char *coladr; // 0xFC0E Current col buffer address
unsigned char *scbnext; // 0xFC10 Address of next SCB
unsigned char *sprdline; // 0xFC12 start of sprite data line address
unsigned char *hposstrt; // 0xFC14 start hpos
unsigned char *vposstrt; // 0xFC16 start vpos
unsigned char *sprhsize; // 0xFC18 sprite h size
unsigned char *sprvsize; // 0xFC1A sprite v size
unsigned int stretchl; // 0xFC1C H size adder
unsigned int tilt; // 0xFC1E H pos adder
unsigned int sprdoff; // 0xFC20 offset to next sprite data line
unsigned int sprvpos; // 0xFC22 current vpos
unsigned int colloff; // 0xFC24 offset to collision depository
unsigned int vsizeacc; // 0xFC26 vertical size accumulator
unsigned int hsizeoff; // 0xFC28 horizontal size offset
unsigned int vsizeoff; // 0xFC2A vertical size offset
unsigned char *scbaddr; // 0xFC2C address of current SCB
unsigned char *procaddr; // 0xFC2E address of current spr data proc
unsigned char unused0[32]; // 0xFC30 - 0xFC4F reserved/unused
unsigned char unused1[2]; // 0xFC50 - 0xFC51 do not use
unsigned char mathd; // 0xFC52
unsigned char mathc; // 0xFC53
unsigned char mathb; // 0xFC54
unsigned char matha; // 0xFC55
unsigned char mathp; // 0xFC56
unsigned char mathn; // 0xFC57
unsigned char unused2[8]; // 0xFC58 - 0xFC5F do not use
unsigned char mathh; // 0xFC60
unsigned char mathg; // 0xFC61
unsigned char mathf; // 0xFC62
unsigned char mathe; // 0xFC63
unsigned char unused3[8]; // 0xFC64 - 0xFC6B do not use
unsigned char mathm; // 0xFC6C
unsigned char mathl; // 0xFC6D
unsigned char mathk; // 0xFC6E
unsigned char mathj; // 0xFC6F
unsigned char unused4[16]; // 0xFC70 - 0xFC7F do not use
unsigned char sprctl0; // 0xFC80 sprite control bits 0
unsigned char sprctl1; // 0xFC81 sprite control bits 1
unsigned char sprcoll; // 0xFC82 sprite collision number
unsigned char sprinit; // 0xFC83 sprite initialization bits
unsigned char unused5[4]; // 0xFC84 - 0xFC87 unused
unsigned char suzyhrev; // 0xFC88 suzy hardware rev
unsigned char suzysrev; // 0xFC89 suzy software rev
unsigned char unused6[6]; // 0xFC8A - 0xFC8F unused
unsigned char suzybusen; // 0xFC90 suzy bus enable
unsigned char sprgo; // 0xFC91 sprite process start bit
unsigned char sprsys; // 0xFC92 sprite system control bits
unsigned char unused7[29]; // 0xFC93 - 0xFCAF unused
unsigned char joystick; // 0xFCB0 joystick and buttons
unsigned char switches; // 0xFCB1 other switches
unsigned char cart0; // 0xFCB2 cart0 r/w
unsigned char cart1; // 0xFCB3 cart1 r/w
unsigned char unused8[8]; // 0xFCB4 - 0xFCBF unused
unsigned char leds; // 0xFCC0 leds
unsigned char unused9; // 0xFCC1 unused
unsigned char parstat; // 0xFCC2 parallel port status
unsigned char pardata; // 0xFCC3 parallel port data
unsigned char howie; // 0xFCC4 howie (?)
// 0xFCC5 - 0xFCFF unused
};
#endif
/*****************************************************************************/
/* */
/* zlib.h */
/* */
/* Decompression routines for the 'deflate' format */
/* */
/* */
/* */
/* (C) 2000-2015 Piotr Fusik <fox@scene.pl> */
/* */
/* This file is based on the zlib.h from 'zlib' general purpose compression */
/* library, version 1.1.3, (C) 1995-1998 Jean-loup Gailly and Mark Adler. */
/* */
/* Jean-loup Gailly Mark Adler */
/* jloup@gzip.org madler@alumni.caltech.edu */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ZLIB_H
#define _ZLIB_H
#define Z_OK 0
#define Z_DATA_ERROR (-3)
/* Return codes for uncompress() */
#define Z_DEFLATED 8
/* The deflate compression method (the only one supported) */
#define Z_NULL 0
unsigned __fastcall__ inflatemem (char* dest, const char* source);
/*
Decompresses the source buffer into the destination buffer.
Returns the size of the uncompressed data (number of bytes written starting
from dest).
This function expects data in the DEFLATE format, described in RFC
(Request for Comments) 1951 in the file
ftp://ds.internic.net/rfc/rfc1951.txt.
This function does not exist in the original zlib. Its implementation
using original zlib might be following:
unsigned inflatemem (char* dest, const char* source)
{
z_stream stream;
stream.next_in = (Bytef*) source;
stream.avail_in = 65535;
stream.next_out = dest;
stream.avail_out = 65535;
stream.zalloc = (alloc_func) 0;
stream.zfree = (free_func) 0;
inflateInit2(&stream, -MAX_WBITS);
inflate(&stream, Z_FINISH);
inflateEnd(&stream);
return stream.total_out;
}
*/
int __fastcall__ uncompress (char* dest, unsigned* destLen,
const char* source, unsigned sourceLen);
/*
Original zlib description:
Decompresses the source buffer into the destination buffer. sourceLen is
the byte length of the source buffer. Upon entry, destLen is the total
size of the destination buffer, which must be large enough to hold the
entire uncompressed data. (The size of the uncompressed data must have
been saved previously by the compressor and transmitted to the decompressor
by some mechanism outside the scope of this compression library.)
Upon exit, destLen is the actual size of the compressed buffer.
This function can be used to decompress a whole file at once if the
input file is mmap'ed.
uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
enough memory, Z_BUF_ERROR if there was not enough room in the output
buffer, or Z_DATA_ERROR if the input data was corrupted.
Implementation notes:
This function expects data in the ZLIB format, described in RFC 1950
in the file ftp://ds.internic.net/rfc/rfc1950.txt. The ZLIB format is
essentially the DEFLATE format plus a very small header and Adler-32
checksum.
Z_MEM_ERROR and Z_BUF_ERROR are never returned in this implementation.
*/
unsigned long __fastcall__ adler32 (unsigned long adler, const char* buf,
unsigned len);
/*
Original zlib description:
Update a running Adler-32 checksum with the bytes buf[0..len-1] and
return the updated checksum. If buf is NULL, this function returns
the required initial value for the checksum.
An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
much faster. Usage example:
unsigned long adler = adler32(0L, Z_NULL, 0);
while (read_buffer(buffer, length) != EOF) {
adler = adler32(adler, buffer, length);
}
if (adler != original_adler) error();
Implementation notes:
This function isn't actually much faster than crc32(), but it is smaller
and does not use any lookup tables.
*/
unsigned long __fastcall__ crc32 (unsigned long crc, const char* buf,
unsigned len);
/*
Original zlib description:
Update a running crc with the bytes buf[0..len-1] and return the updated
crc. If buf is NULL, this function returns the required initial value
for the crc. Pre- and post-conditioning (one's complement) is performed
within this function so it shouldn't be done by the application.
Usage example:
unsigned long crc = crc32(0L, Z_NULL, 0);
while (read_buffer(buffer, length) != EOF) {
crc = crc32(crc, buffer, length);
}
if (crc != original_crc) error();
Implementation notes:
This function uses statically allocated 1 KB lookup table. The table is
initialised before it is used for the first time (that is, if buffer is
NULL or length is zero, then the lookup table isn't initialised).
*/
/* end of zlib.h */
#endif
/*****************************************************************************/
/* */
/* dbg.h */
/* */
/* Debugger module interface */
/* */
/* */
/* */
/* (C) 1998-2000, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/*
** This is the interface to the cc65 debugger. Since many of the functions
** used for the debugger are quite usable even in another context, they
** are declared here.
**
** To use the debugger, just call DbgInit in your application. Once it has
** been called, the debugger will catch any BRK opcode. Use the BREAK macro
** defined below to insert breakpoints into your code.
**
** There are currently a lot of things that cannot be debugged, graphical
** applications are an example. The debugger does not save your screen
** contents, so even your text screen gets destroyed. However, you can
** debug the C and runtime library, even if the debugger is using this
** stuff itself.
**
** Note: When using the debugger, there are some other identifiers with
** external linkage, that start with Dbg. Avoid those names if you use the
** module.
*/
#ifndef _DBG_H
#define _DBG_H
/*****************************************************************************/
/* Utility functions */
/*****************************************************************************/
unsigned __fastcall__ DbgDisAsm (unsigned Addr, char* Buf, unsigned char Len);
/* Disassemble one instruction at address addr into the given buffer.
** The resulting line has the format, "AAAA__BB_BB_BB___OPC_OPERAND",
** where AAAA is the hexadecimal representation of addr, BB are the
** bytes (in hex) that make the instruction, OPC is the mnemonic, and
** OPERAND is an operand for the instruction.
** The buffer is filled with spaces up to the given length and terminated as
** a usual C string. NOTE: Buf must be able to hold Len+1 characters.
** The function returns the length of the disassembled instruction, so,
** to disassemble the next instruction, add the return value to addr
** and call the function again.
*/
unsigned __fastcall__ DbgDisAsmLen (unsigned Addr);
/* Disassemble one instruction, but do only return the length, do not
** create a visible representation. This function is useful when
** disassembling backwards, it is much faster than DbgDisAsm.
*/
int __fastcall__ DbgIsRAM (unsigned Addr);
/* Return true if we can read and write the given address */
char* __cdecl__ DbgMemDump (unsigned Addr, char* Buf, unsigned char Len);
/* Create a line of a memory dump in the given buffer. The buffer contains
** the starting address (4 digits hex), then Len bytes in this format:
** "AAAA__XX_YY_ZZ_...". The passed char buffer must hold Len*3+5 bytes
** plus a terminator byte.
** The function does not work correctly if the created string is longer
** than 255 bytes.
** The return value is Buf.
*/
/*****************************************************************************/
/* High level user interface */
/*****************************************************************************/
void __fastcall__ DbgInit (unsigned unused);
/* Initialize the debugger. Use 0 as parameter. The debugger will popup on
** next brk encountered.
*/
#define BREAK() __asm__ ("brk")
/* Use this to insert breakpoints into your code */
/* End of dbg.h */
#endif
/*****************************************************************************/
/* */
/* _gtia.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2000 Freddy Offenga <taf_offenga@yahoo.com> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __GTIA_H
#define __GTIA_H
/* Define a structure with the gtia register offsets */
struct __gtia_write {
unsigned char hposp0; /* horizontal position player 0 */
unsigned char hposp1; /* horizontal position player 1 */
unsigned char hposp2; /* horizontal position player 2 */
unsigned char hposp3; /* horizontal position player 3 */
unsigned char hposm0; /* horizontal position missile 0 */
unsigned char hposm1; /* horizontal position missile 1 */
unsigned char hposm2; /* horizontal position missile 2 */
unsigned char hposm3; /* horizontal position missile 3 */
unsigned char sizep0; /* size of player 0 */
unsigned char sizep1; /* size of player 1 */
unsigned char sizep2; /* size of player 2 */
unsigned char sizep3; /* size of player 3 */
unsigned char sizem; /* size of missiles */
unsigned char grafp0; /* graphics shape player 0 */
unsigned char grafp1; /* graphics shape player 1 */
unsigned char grafp2; /* graphics shape player 2 */
unsigned char grafp3; /* graphics shape player 3 */
unsigned char grafm; /* graphics shape missiles */
unsigned char colpm0; /* color player and missile 0 */
unsigned char colpm1; /* color player and missile 1 */
unsigned char colpm2; /* color player and missile 2 */
unsigned char colpm3; /* color player and missile 3 */
unsigned char colpf0; /* color playfield 0 */
unsigned char colpf1; /* color playfield 1 */
unsigned char colpf2; /* color playfield 2 */
unsigned char colpf3; /* color playfield 3 */
unsigned char colbk; /* color background */
unsigned char prior; /* priority selection */
unsigned char vdelay; /* vertical delay */
unsigned char gractl; /* stick/paddle latch, p/m control */
unsigned char hitclr; /* clear p/m collision */
unsigned char consol; /* console buttons */
};
/* Define a structure with the gtia register offsets */
struct __gtia_read {
unsigned char m0pf; /* missile 0 to playfield collision */
unsigned char m1pf; /* missile 1 to playfield collision */
unsigned char m2pf; /* missile 2 to playfield collision */
unsigned char m3pf; /* missile 3 to playfield collision */
unsigned char p0pf; /* player 0 to playfield collision */
unsigned char p1pf; /* player 1 to playfield collision */
unsigned char p2pf; /* player 2 to playfield collision */
unsigned char p3pf; /* player 3 to playfield collision */
unsigned char m0pl; /* missile 0 to player collision */
unsigned char m1pl; /* missile 1 to player collision */
unsigned char m2pl; /* missile 2 to player collision */
unsigned char m3pl; /* missile 3 to player collision */
unsigned char p0pl; /* player 0 to player collision */
unsigned char p1pl; /* player 1 to player collision */
unsigned char p2pl; /* player 2 to player collision */
unsigned char p3pl; /* player 3 to player collision */
unsigned char trig0; /* joystick trigger 0 */
unsigned char trig1; /* joystick trigger 1 */
unsigned char trig2; /* joystick trigger 2 */
unsigned char trig3; /* joystick trigger 3 */
unsigned char pal; /* pal/ntsc flag */
};
/* End of _gtia.h */
#endif /* #ifndef __GTIA_H */
/*****************************************************************************/
/* */
/* errno.h */
/* */
/* Error codes */
/* */
/* */
/* */
/* (C) 1998-2010, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ERRNO_H
#define _ERRNO_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Operating system specific error code */
extern unsigned char _oserror;
extern int _errno;
/* System errors go here */
#define errno _errno
/* errno must be a macro */
/* Possible error codes */
#define ENOENT 1 /* No such file or directory */
#define ENOMEM 2 /* Out of memory */
#define EACCES 3 /* Permission denied */
#define ENODEV 4 /* No such device */
#define EMFILE 5 /* Too many open files */
#define EBUSY 6 /* Device or resource busy */
#define EINVAL 7 /* Invalid argument */
#define ENOSPC 8 /* No space left on device */
#define EEXIST 9 /* File exists */
#define EAGAIN 10 /* Try again */
#define EIO 11 /* I/O error */
#define EINTR 12 /* Interrupted system call */
#define ENOSYS 13 /* Function not implemented */
#define ESPIPE 14 /* Illegal seek */
#define ERANGE 15 /* Range error */
#define EBADF 16 /* Bad file number */
#define ENOEXEC 17 /* Exec format error */
#define EUNKNOWN 18 /* Unknown OS specific error */
/*****************************************************************************/
/* Code */
/*****************************************************************************/
int __fastcall__ _osmaperrno (unsigned char oserror);
/* Map an operating system specific error code (for example from _oserror)
** into one of the E... codes above. It is user callable.
*/
unsigned char __fastcall__ _seterrno (unsigned char code);
/* Set errno to a specific error code and return zero. Used by the library */
int __fastcall__ _directerrno (unsigned char code);
/* Set errno to a specific error code, clear _oserror and return -1. Used
** by the library.
*/
int __fastcall__ _mappederrno (unsigned char code);
/* Set _oserror to the given platform specific error code. If it is a real
** error code (not zero) set errno to the corresponding system error code
** and return -1. Otherwise return zero.
** Used by the library.
*/
/* End of errno.h */
#endif
/*****************************************************************************/
/* */
/* _ted.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2003 Ullrich von Bassewitz */
/* R<>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __TED_H
#define __TED_H
/* Define a structure with the ted register offsets */
struct __ted {
unsigned char t1_lo; /* Timer #1 low */
unsigned char t1_hi; /* Timer #1 high */
unsigned char t2_lo; /* Timer #2 low */
unsigned char t2_hi; /* Timer #2 high */
unsigned char t3_lo; /* Timer #3 low */
unsigned char t3_hi; /* Timer #3 high */
unsigned char vscroll; /* Vertical scroll control */
unsigned char hscroll; /* Horizontal scroll control */
unsigned char kbdlatch; /* Keyboard latch */
unsigned char irr; /* Interrupt request register */
unsigned char imr; /* Interrupt mask register */
unsigned char irq_rasterline; /* Interrupt rasterline */
unsigned char cursor_hi; /* Cursor position high */
unsigned char cursor_lo; /* Cursor position low */
unsigned char snd1_freq_lo; /* Channel #1 frequency */
unsigned char snd2_freq_lo; /* Channel #2 frequency low */
unsigned char snd2_freq_hi; /* Channel #2 frequency high */
unsigned char snd_ctrl; /* Sound control */
unsigned char misc; /* Channel #1 frequency high and more */
unsigned char char_addr; /* Character data base address */
unsigned char video_addr; /* Video memory base address */
unsigned char bgcolor; /* Background color */
unsigned char color1; /* Color register #1 */
unsigned char color2; /* Color register #2 */
unsigned char color3; /* Color register #3 */
unsigned char bordercolor; /* Border color */
unsigned char bmap_reload_hi; /* Bitmap reload bits 8+9 */
unsigned char bmap_reload_lo; /* Bitmap reload bits 0-7 */
unsigned char rasterline_hi; /* Current rasterline bit 8 */
unsigned char rasterline_lo; /* Current rasterline bits 0-7 */
unsigned char rastercolumn; /* Current rastercolumn */
unsigned char cursor_blink; /* Cursor blink attribute */
unsigned char unused[30]; /* Unused */
unsigned char enable_rom; /* Write enables ROM */
unsigned char enable_ram; /* Write enables RAM */
};
/* End of _ted.h */
#endif
/*****************************************************************************/
/* */
/* ace.h */
/* */
/* ACE system-specific definitions */
/* */
/* */
/* */
/* (C) 1998-2015, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ACE_H
#define _ACE_H
/* Check for errors */
#if !defined(__ACE__)
# error This module may only be used when compiling for the ACE os!
#endif
#ifndef _STDDEF_H
#include <stddef.h>
#endif
struct aceDirentBuf {
unsigned long ad_size; /* Size in bytes */
unsigned char ad_date [8]; /* YY:YY:MM:DD:HH:MM:SS:TW */
char ad_type [4]; /* File type as ASCIIZ string */
unsigned char ad_flags; /* File flags */
unsigned char ad_usage; /* More flags */
unsigned char ad_namelen; /* Length of name */
char ad_name [17]; /* Name itself, ASCIIZ */
};
int __cdecl__ aceDirOpen (char* dir);
int __cdecl__ aceDirClose (int handle);
int __cdecl__ aceDirRead (int handle, struct aceDirentBuf* buf);
/* Type of an ACE key. Key in low byte, shift mask in high byte */
typedef unsigned int aceKey;
/* #defines for the shift mask returned by aceConGetKey */
#define aceSH_KEY 0x00FF /* Mask key itself */
#define aceSH_MASK 0xFF00 /* Mask shift mask */
#define aceSH_EXT 0x2000 /* Extended key */
#define aceSH_CAPS 0x1000 /* Caps lock key */
#define aceSH_ALT 0x0800 /* Alternate key */
#define aceSH_CTRL 0x0400 /* Ctrl key */
#define aceSH_CBM 0x0200 /* Commodore key */
#define aceSH_SHIFT 0x0100 /* Shift key */
/* #defines for the options in aceConSetOpt/aceConGetOpt */
#define aceOP_PUTMASK 1 /* Console put mask */
#define aceOP_CHARCOLOR 2 /* Character color */
#define aceOP_CHARATTR 3 /* Character attribute */
#define aceOP_FILLCOLOR 4 /* Fill color */
#define aceOP_FILLATTR 5 /* Fill attribute */
#define aceOP_CRSCOLOR 6 /* Cursor color */
#define aceOP_CRSWRAP 7 /* Force cursor wrap */
#define aceOP_SHSCROLL 8 /* Shift keys for scrolling */
#define aceOP_MOUSCALE 9 /* Mouse scaling */
#define aceOP_RPTDELAY 10 /* Key repeat delay */
#define aceOP_RPTRATE 11 /* Key repeat rate */
/* Console functions */
void __cdecl__ aceConWrite (char* buf, size_t count);
void __cdecl__ aceConPutLit (int c);
void __cdecl__ aceConPos (unsigned x, unsigned y);
void __cdecl__ aceConGetPos (unsigned* x, unsigned* y);
unsigned aceConGetX (void);
unsigned aceConGetY (void);
char __cdecl__* aceConInput (char* buf, unsigned initial);
int aceConStopKey (void);
aceKey aceConGetKey (void);
int __cdecl__ aceConKeyAvail (aceKey* key);
void __cdecl__ aceConKeyMat (char* matrix);
void __cdecl__ aceConSetOpt (unsigned char opt, unsigned char val);
int __cdecl__ aceConGetOpt (unsigned char opt);
/* Misc stuff */
int __cdecl__ aceMiscIoPeek (unsigned addr);
void __cdecl__ aceMiscIoPoke (unsigned addr, unsigned char val);
/* End of ace.h */
#endif
/*****************************************************************************/
/* */
/* joystick.h */
/* */
/* Read the joystick on systems that support it */
/* */
/* */
/* */
/* (C) 1998-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _JOYSTICK_H
#define _JOYSTICK_H
/*****************************************************************************/
/* Definitions */
/*****************************************************************************/
/* Error codes */
#define JOY_ERR_OK 0 /* No error */
#define JOY_ERR_NO_DRIVER 1 /* No driver available */
#define JOY_ERR_CANNOT_LOAD 2 /* Error loading driver */
#define JOY_ERR_INV_DRIVER 3 /* Invalid driver */
#define JOY_ERR_NO_DEVICE 4 /* Device (hardware) not found */
/* Argument for the joy_read function */
#define JOY_1 0
#define JOY_2 1
/* The following codes are *indices* into the joy_masks array */
#define JOY_UP 0
#define JOY_DOWN 1
#define JOY_LEFT 2
#define JOY_RIGHT 3
#define JOY_FIRE 4
#define JOY_FIRE2 5 /* Second fire button if available */
/* Array of masks used to check the return value of joy_read for a state */
extern const unsigned char joy_masks[8];
/* Macros that evaluate the return code of joy_read */
#define JOY_BTN_UP(v) ((v) & joy_masks[JOY_UP])
#define JOY_BTN_DOWN(v) ((v) & joy_masks[JOY_DOWN])
#define JOY_BTN_LEFT(v) ((v) & joy_masks[JOY_LEFT])
#define JOY_BTN_RIGHT(v) ((v) & joy_masks[JOY_RIGHT])
#define JOY_BTN_FIRE(v) ((v) & joy_masks[JOY_FIRE])
#define JOY_BTN_FIRE2(v) ((v) & joy_masks[JOY_FIRE2])
/* The name of the standard joystick driver for a platform */
extern const char joy_stddrv[];
/* The address of the static standard joystick driver for a platform */
extern const void joy_static_stddrv[];
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
unsigned char __fastcall__ joy_load_driver (const char* driver);
/* Load and install a joystick driver. Return an error code. */
unsigned char joy_unload (void);
/* Uninstall, then unload the currently loaded driver. */
unsigned char __fastcall__ joy_install (void* driver);
/* Install an already loaded driver. Return an error code. */
unsigned char joy_uninstall (void);
/* Uninstall the currently loaded driver and return an error code.
** Note: This call does not free allocated memory.
*/
unsigned char joy_count (void);
/* Return the number of joysticks supported by the driver */
unsigned char __fastcall__ joy_read (unsigned char joystick);
/* Read a particular joystick */
/* End of joystick.h */
#endif
/*****************************************************************************/
/* */
/* em.h */
/* */
/* API for extended memory access */
/* */
/* */
/* */
/* (C) 2002-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _EM_H
#define _EM_H
/*****************************************************************************/
/* Definitions */
/*****************************************************************************/
/* Size of an extended memory page */
#define EM_PAGE_SIZE 256
/* Error codes */
#define EM_ERR_OK 0 /* No error */
#define EM_ERR_NO_DRIVER 1 /* No driver available */
#define EM_ERR_CANNOT_LOAD 2 /* Error loading driver */
#define EM_ERR_INV_DRIVER 3 /* Invalid driver */
#define EM_ERR_NO_DEVICE 4 /* Device (hardware) not found */
#define EM_ERR_INSTALLED 5 /* A driver is already installed */
/* Parameters for the em_copy_... functions. NOTE: The first seven bytes
** have the same order and alignment as needed for the Commodore REU, so
** don't change the order without changing the assembler file that defines
** the struct offsets and the code in the REU driver.
*/
struct em_copy {
void* buf; /* Memory buffer to copy from or to */
unsigned char offs; /* Offset into page */
unsigned page; /* Starting page to copy from or to */
unsigned count; /* Number of bytes to copy */
unsigned char unused; /* Make the size 8 bytes */
};
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
unsigned char __fastcall__ em_load_driver (const char* driver);
/* Load and install an extended memory driver. Return an error code. */
unsigned char em_unload (void);
/* Uninstall, then unload the currently loaded driver. */
unsigned char __fastcall__ em_install (void* driver);
/* Install an already loaded driver. Return an error code. */
unsigned char em_uninstall (void);
/* Uninstall the currently loaded driver and return an error code.
** Note: This call does not free allocated memory.
*/
unsigned em_pagecount (void);
/* Return the total number of 256 byte pages available in extended memory. */
void* __fastcall__ em_map (unsigned page);
/* Unmap the current page from memory and map a new one. The function returns
** a pointer to the location of the page in memory. Note: Without calling
** em_commit, the old contents of the memory window may be lost!
*/
void* __fastcall__ em_use (unsigned page);
/* Tell the driver that the memory window is associated with a given page.
** This call is very similar to em_map. The difference is that the driver
** does not necessarily transfer the current contents of the extended
** memory into the returned window. If you're going to just write to the
** window and the current contents of the window are invalid or no longer
** use, this call may perform better than em_map.
*/
void em_commit (void);
/* Commit changes in the memory window to extended storage. If the contents
** of the memory window have been changed, these changes may be lost if
** em_map, em_copyfrom or em_copyto are called without calling em_commit
** first. Note: Not calling em_commit does not mean that the changes are
** discarded, it does just mean that some drivers will discard the changes.
*/
void __fastcall__ em_copyfrom (const struct em_copy* copy_data);
/* Copy from extended into linear memory. Note: This may invalidate the
** currently mapped page.
*/
void __fastcall__ em_copyto (const struct em_copy* copy_data);
/* Copy from linear into extended memory. Note: This may invalidate the
** currently mapped page.
*/
/* End of em.h */
#endif
/*****************************************************************************/
/* */
/* device.h */
/* */
/* Device handling */
/* */
/* */
/* */
/* (C) 2012 Oliver Schmidt, <ol.sc@web.de> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _DEVICE_H
#define _DEVICE_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
#define INVALID_DEVICE 255
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned char getfirstdevice (void);
unsigned char __fastcall__ getnextdevice (unsigned char device);
unsigned char getcurrentdevice (void);
char* __fastcall__ getdevicedir (unsigned char device, char* buf, size_t size);
/* End of device.h */
#endif
/*****************************************************************************/
/* */
/* _vdc.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 1998-2000 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __VDC_H
#define __VDC_H
/* Define a structure with the vdc register offsets */
struct __vdc {
unsigned char ctrl; /* Control register */
unsigned char data; /* Data register */
};
/* End of _vdc.h */
#endif
/*****************************************************************************/
/* */
/* assert.h */
/* */
/* Diagnostics */
/* */
/* */
/* */
/* (C) 1998-2015, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ASSERT_H
#define _ASSERT_H
#undef assert
#ifdef NDEBUG
# define assert(expr)
#else
extern void __fastcall__ _afailed (const char*, unsigned);
# define assert(expr) ((expr)? (void)0 : _afailed(__FILE__, __LINE__))
#endif
/* End of assert.h */
#endif
/*****************************************************************************/
/* */
/* setjmp.h */
/* */
/* Nonlocal jumps */
/* */
/* */
/* */
/* (C) 1998-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _SETJMP_H
#define _SETJMP_H
typedef char jmp_buf [5];
int __fastcall__ _setjmp (jmp_buf buf);
#define setjmp _setjmp /* ISO insists on a macro */
void __fastcall__ longjmp (jmp_buf buf, int retval) __attribute__((noreturn));
/* End of setjmp.h */
#endif
/*****************************************************************************/
/* */
/* stdint.h */
/* */
/* Standard integer types */
/* */
/* */
/* */
/* (C) 2002 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* Note: This file is not fully ISO 9899-1999 compliant because cc65 lacks
** a 64 bit data types. The declarations have been adjusted accordingly.
*/
#ifndef _STDINT_H
#define _STDINT_H
/* Exact-width integer types */
typedef signed char int8_t;
typedef int int16_t;
typedef long int32_t;
typedef unsigned char uint8_t;
typedef unsigned uint16_t;
typedef unsigned long uint32_t;
#define INT8_MIN ((int8_t) 0x80)
#define INT8_MAX ((int8_t) 0x7F)
#define INT16_MIN ((int16_t) 0x8000)
#define INT16_MAX ((int16_t) 0x7FFF)
#define INT32_MIN ((int32_t) 0x80000000)
#define INT32_MAX ((int32_t) 0x7FFFFFFF)
#define UINT8_MAX ((uint8_t) 0xFF)
#define UINT16_MAX ((uint16_t) 0xFFFF)
#define UINT32_MAX ((uint32_t) 0xFFFFFFFF)
/* Minimum-width integer types */
typedef signed char int_least8_t;
typedef int int_least16_t;
typedef long int_least32_t;
typedef unsigned char uint_least8_t;
typedef unsigned uint_least16_t;
typedef unsigned long uint_least32_t;
#define INT_LEAST8_MIN ((int_least8_t) 0x80)
#define INT_LEAST8_MAX ((int_least8_t) 0x7F)
#define INT_LEAST16_MIN ((int_least16_t) 0x8000)
#define INT_LEAST16_MAX ((int_least16_t) 0x7FFF)
#define INT_LEAST32_MIN ((int_least32_t) 0x80000000)
#define INT_LEAST32_MAX ((int_least32_t) 0x7FFFFFFF)
#define UINT_LEAST8_MAX ((uint_least8_t) 0xFF)
#define UINT_LEAST16_MAX ((uint_least16_t) 0xFFFF)
#define UINT_LEAST32_MAX ((uint_least32_t) 0xFFFFFFFF)
/* Fastest minimum-width integer types */
typedef signed char int_fast8_t;
typedef int int_fast16_t;
typedef long int_fast32_t;
typedef unsigned char uint_fast8_t;
typedef unsigned uint_fast16_t;
typedef unsigned long uint_fast32_t;
#define INT_FAST8_MIN ((int_fast8_t) 0x80)
#define INT_FAST8_MAX ((int_fast8_t) 0x7F)
#define INT_FAST16_MIN ((int_fast16_t) 0x8000)
#define INT_FAST16_MAX ((int_fast16_t) 0x7FFF)
#define INT_FAST32_MIN ((int_fast32_t) 0x80000000)
#define INT_FAST32_MAX ((int_fast32_t) 0x7FFFFFFF)
#define UINT_FAST8_MAX ((uint_fast8_t) 0xFF)
#define UINT_FAST16_MAX ((uint_fast16_t) 0xFFFF)
#define UINT_FAST32_MAX ((uint_fast32_t) 0xFFFFFFFF)
/* Integer types capable of holding object pointers */
typedef int intptr_t;
typedef unsigned uintptr_t;
#define INTPTR_MIN ((intptr_t)0x8000)
#define INTPTR_MAX ((intptr_t)0x7FFF)
#define UINTPTR_MAX ((uintptr_t) 0xFFFF)
/* Greatest width integer types */
typedef long intmax_t;
typedef unsigned long uintmax_t;
#define INTMAX_MIN ((intmax_t) 0x80000000)
#define INTMAX_MAX ((intmax_t) 0x7FFFFFFF)
#define UINTMAX_MAX ((uintmax_t) 0xFFFFFFFF)
/* Limits of other integer types */
#define PTRDIFF_MIN ((int) 0x8000)
#define PTRDIFF_MAX ((int) 0x7FFF)
#define SIG_ATOMIC_MIN ((unsigned char) 0x00)
#define SIG_ATOMIC_MAX ((unsigned char) 0xFF)
#define SIZE_MAX 0xFFFF
/* Macros for minimum width integer constants */
#define INT8_C(c) c
#define INT16_C(c) c
#define INT32_C(c) c##L
#define UINT8_C(c) c##U
#define UINT16_C(c) c##U
#define UINT32_C(c) c##UL
/* Macros for greatest width integer constants */
#define INTMAX_C(c) c##L
#define UINTMAX_C(c) c##UL
/* End of stdint.h */
#endif
/*****************************************************************************/
/* */
/* cbm264.h */
/* */
/* System specific definitions for the C16, C116 and Plus/4 */
/* */
/* */
/* */
/* (C) 1998-2003 Ullrich von Bassewitz */
/* R<>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CBM264_H
#define _CBM264_H
/* Check for errors */
#if !defined(__C16__)
# error This module may only be used when compiling for the Plus/4 or C16!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Additional key defines */
#define CH_F1 133
#define CH_F2 137
#define CH_F3 134
#define CH_F4 138
#define CH_F5 135
#define CH_F6 139
#define CH_F7 136
#define CH_F8 140
/* Color attributes */
#define CATTR_LUMA0 0x00
#define CATTR_LUMA1 0x10
#define CATTR_LUMA2 0x20
#define CATTR_LUMA3 0x30
#define CATTR_LUMA4 0x40
#define CATTR_LUMA5 0x50
#define CATTR_LUMA6 0x60
#define CATTR_LUMA7 0x70
#define CATTR_BLINK 0x80
/* Base colors */
#define BCOLOR_BLACK 0x00
#define BCOLOR_WHITE 0x01
#define BCOLOR_RED 0x02
#define BCOLOR_CYAN 0x03
#define BCOLOR_VIOLET 0x04
#define BCOLOR_PURPLE BCOLOR_VIOLET
#define BCOLOR_GREEN 0x05
#define BCOLOR_BLUE 0x06
#define BCOLOR_YELLOW 0x07
#define BCOLOR_ORANGE 0x08
#define BCOLOR_BROWN 0x09
#define BCOLOR_LEMON 0x0A /* What's that color? */
#define BCOLOR_LIGHTVIOLET 0x0B
#define BCOLOR_BLUEGREEN 0x0C
#define BCOLOR_LIGHTBLUE 0x0D
#define BCOLOR_DARKBLUE 0x0E
#define BCOLOR_LIGHTGREEN 0x0F
/* Now try to mix up a C64/C128 compatible palette */
#define COLOR_BLACK (BCOLOR_BLACK)
#define COLOR_WHITE (BCOLOR_WHITE | CATTR_LUMA7)
#define COLOR_RED (BCOLOR_RED | CATTR_LUMA4)
#define COLOR_CYAN (BCOLOR_CYAN | CATTR_LUMA7)
#define COLOR_VIOLET (BCOLOR_VIOLET | CATTR_LUMA7)
#define COLOR_PURPLE COLOR_VIOLET
#define COLOR_GREEN (BCOLOR_GREEN | CATTR_LUMA7)
#define COLOR_BLUE (BCOLOR_BLUE | CATTR_LUMA7)
#define COLOR_YELLOW (BCOLOR_YELLOW | CATTR_LUMA7)
#define COLOR_ORANGE (BCOLOR_ORANGE | CATTR_LUMA7)
#define COLOR_BROWN (BCOLOR_BROWN | CATTR_LUMA7)
#define COLOR_LIGHTRED (BCOLOR_RED | CATTR_LUMA7)
#define COLOR_GRAY1 (BCOLOR_WHITE | CATTR_LUMA1)
#define COLOR_GRAY2 (BCOLOR_WHITE | CATTR_LUMA3)
#define COLOR_LIGHTGREEN (BCOLOR_LIGHTGREEN | CATTR_LUMA7)
#define COLOR_LIGHTBLUE (BCOLOR_LIGHTBLUE | CATTR_LUMA7)
#define COLOR_GRAY3 (BCOLOR_WHITE | CATTR_LUMA5)
/* Define hardware */
#include <_ted.h>
#define TED (*(struct __ted*)0xFF00)
/* Define special memory areas */
#define COLOR_RAM ((unsigned char*)0x0800)
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* End of cbm264.h */
#endif
/*****************************************************************************/
/* */
/* vic20.h */
/* */
/* vic20 system specific definitions */
/* */
/* */
/* */
/* (C) 1998-2004 Ullrich von Bassewitz */
/* R<>merstra<72>e 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _VIC20_H
#define _VIC20_H
/* Check for errors */
#if !defined(__VIC20__)
# error This module may only be used when compiling for the Vic20!
#endif
/* Additional key defines */
#define CH_F1 133
#define CH_F2 137
#define CH_F3 134
#define CH_F4 138
#define CH_F5 135
#define CH_F6 139
#define CH_F7 136
#define CH_F8 140
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
#define COLOR_RED 0x02
#define COLOR_CYAN 0x03
#define COLOR_VIOLET 0x04
#define COLOR_GREEN 0x05
#define COLOR_BLUE 0x06
#define COLOR_YELLOW 0x07
#define COLOR_ORANGE 0x08
#define COLOR_BROWN 0x09
#define COLOR_LIGHTRED 0x0A
#define COLOR_GRAY1 0x0B
#define COLOR_GRAY2 0x0C
#define COLOR_LIGHTGREEN 0x0D
#define COLOR_LIGHTBLUE 0x0E
#define COLOR_GRAY3 0x0F
/* Define hardware */
#include <_vic.h>
#define VIC (*(struct __vic*)0x9000)
#include <_6522.h>
#define VIA1 (*(struct __6522*)0x9110)
#define VIA2 (*(struct __6522*)0x9120)
/* Define special memory areas */
#define COLOR_RAM ((unsigned char*)0x9600)
/* The addresses of the static drivers */
extern void vic20_ptvjoy_joy[];
extern void vic20_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
/* End of vic20.h */
#endif
/*****************************************************************************/
/* */
/* _mikey.h */
/* */
/* Atari Lynx, Mikey chip register hardware structures */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __MIKEY_H
#define __MIKEY_H
/* timer structure */
typedef struct _mikey_timer {
unsigned char reload;
unsigned char control;
unsigned char count;
unsigned char control2;
} _mikey_timer;
typedef struct _mikey_all_timers {
struct _mikey_timer timer[8];
} _mikey_all_timers;
/* audio channel structure */
typedef struct _mikey_audio {
unsigned char volume;
unsigned char feedback;
unsigned char dac;
unsigned char shiftlo;
unsigned char reload;
unsigned char control;
unsigned char count;
unsigned char other;
} _mikey_audio;
/* Define a structure with the mikey register offsets */
struct __mikey {
struct _mikey_timer timer0; // 0xFD00
struct _mikey_timer timer1; // 0xFD04
struct _mikey_timer timer2; // 0xFD08
struct _mikey_timer timer3; // 0xFD0C
struct _mikey_timer timer4; // 0xFD10
struct _mikey_timer timer5; // 0xFD14
struct _mikey_timer timer6; // 0xFD18
struct _mikey_timer timer7; // 0xFD1C
struct _mikey_audio channel_a; // 0xFD20
struct _mikey_audio channel_b; // 0xFD28
struct _mikey_audio channel_c; // 0xFD30
struct _mikey_audio channel_d; // 0xFD38
unsigned char attena; // 0xFD40 ?? not yet allocated?
unsigned char attenb; // 0xFD41 |
unsigned char attenc; // 0xFD42 |
unsigned char attend; // 0xFD43 |
unsigned char panning; // 0xFD44 |
unsigned char unused0[11]; // 0xFD45 - 0xFD4F not used
unsigned char mstereo; // 0xFD50 stereo control bits
unsigned char unused1[47]; // 0xFD51 - 0xFD7F not used
unsigned char intrst; // 0xFD80 interrupt poll 0
unsigned char intset; // 0xFD81 interrupt poll 1
unsigned char unused2[2]; // 0xFD82 - 0xFD83 not used
unsigned char magrdy0; // 0xFD84 mag tape channel0 ready bit
unsigned char magrdy1; // 0xFD85 mag tape channel1 ready bit
unsigned char audin; // 0xFD86 audio in
unsigned char sysctl1; // 0xFD87 control bits
unsigned char mikeyrev; // 0xFD88 mikey hardware rev
unsigned char mikeysrev; // 0xFD89 mikey software rev
unsigned char iodir; // 0xFD8A parallel i/o data dir
unsigned char iodat; // 0xFD8B parallel data
unsigned char serctl; // 0xFD8C serial control register
unsigned char serdat; // 0xFD8D serial data
unsigned char unused3[2]; // 0xFD8E - 0xFD8F not used
unsigned char sdoneack; // 0xFD90 suzy done acknowledge
unsigned char cpusleep; // 0xFD91 cpu bus request disable
unsigned char dispctl; // 0xFD92 video bus request enable, viddma
unsigned char pkbkup; // 0xFD93 magic 'P' count
unsigned char *scrbase; // 0xFD94 start address of video display
unsigned char unused4[6]; // 0xFD96 - 0xFD9B not used
unsigned char mtest0; // 0xFD9C
unsigned char mtest1; // 0xFD9D
unsigned char mtest2; // 0xFD9E
unsigned char unused5; // 0xFD9F not used
unsigned char palette[32]; // 0xFDA0 - 0xFDBF palette 32 bytes
// 0xFDC0 - 0xFDFF not used
};
#endif
/*****************************************************************************/
/* */
/* locale.h */
/* */
/* Localization <locale.h> */
/* */
/* */
/* */
/* (C) 1998-2005 Ullrich von Bassewitz */
/* R<>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _LOCALE_H
#define _LOCALE_H
/* NULL pointer */
#ifndef _HAVE_NULL
#define NULL 0
#define _HAVE_NULL
#endif
/* Locale information constants */
#define LC_ALL 0
#define LC_COLLATE 1
#define LC_CTYPE 2
#define LC_MONETARY 3
#define LC_NUMERIC 4
#define LC_TIME 5
/* Struct containing locale settings */
struct lconv {
char* currency_symbol;
char* decimal_point;
char* grouping;
char* int_curr_symbol;
char* mon_decimal_point;
char* mon_grouping;
char* mon_thousands_sep;
char* negative_sign;
char* positive_sign;
char* thousands_sep;
char frac_digits;
char int_frac_digits;
char n_cs_precedes;
char n_sep_by_space;
char n_sign_posn;
char p_cs_precedes;
char p_sep_by_space;
char p_sign_posn;
};
/* Function prototypes */
struct lconv* localeconv (void);
char* __fastcall__ setlocale (int category, const char* locale);
/* End of locale.h */
#endif
/*****************************************************************************/
/* */
/* _6522.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2004 Stefan Haubenthal <polluks@sdf.lonestar.org> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __VIA_H
#define __VIA_H
/* Define a structure with the 6522 register offsets.
** NOTE: The timer registers are not declared as 16 bit registers, because
** the order in which the two 8 bit halves are written is important, and
** the compiler doesn't guarantee any order when writing 16 bit values.
*/
struct __6522 {
unsigned char prb; /* Port register B */
unsigned char pra; /* Port register A */
unsigned char ddrb; /* Data direction register B */
unsigned char ddra; /* Data direction register A */
unsigned char t1_lo; /* Timer 1, low byte */
unsigned char t1_hi; /* Timer 1, high byte */
unsigned char t1l_lo; /* Timer 1 latch, low byte */
unsigned char t1l_hi; /* Timer 1 latch, high byte */
unsigned char t2_lo; /* Timer 2, low byte */
unsigned char t2_hi; /* Timer 2, high byte */
unsigned char sr; /* Shift register */
unsigned char acr; /* Auxiliary control register */
unsigned char pcr; /* Peripheral control register */
unsigned char ifr; /* Interrupt flag register */
unsigned char ier; /* Interrupt enable register */
unsigned char pra2; /* Port register A w/o handshake */
};
/* End of _6522.h */
#endif
/*****************************************************************************/
/* */
/* _6545.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 1998-2000 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __6545_H
#define __6545_H
/* Define a structure with the 6545 register offsets */
struct __6545 {
unsigned char ctrl; /* Control register */
unsigned char data; /* Data register */
};
/* End of _6545.h */
#endif
/*****************************************************************************/
/* */
/* cbm_filetype.h */
/* */
/* Definitions for CBM file types */
/* */
/* */
/* */
/* (C) 2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CBM_FILETYPE_H
#define _CBM_FILETYPE_H
/* Check for errors */
#if !defined(__CBM__)
# error This module may be used only when compiling for CBM machines!
#endif
/*****************************************************************************/
/* Definitions */
/*****************************************************************************/
/* CBM FILE TYPES. The definitions are used within standard headers, so we
** be careful with identifiers in the user name space.
** "Regular" files have a special bit set so it's easier to pick them out.
*/
#define _CBM_T_REG 0x10U /* Bit set for regular files */
#define _CBM_T_SEQ 0x10U
#define _CBM_T_PRG 0x11U
#define _CBM_T_USR 0x12U
#define _CBM_T_REL 0x13U
#define _CBM_T_VRP 0x14U /* Vorpal fast-loadable format */
#define _CBM_T_DEL 0x00U
#define _CBM_T_CBM 0x01U /* 1581 sub-partition */
#define _CBM_T_DIR 0x02U /* IDE64 and CMD sub-directory */
#define _CBM_T_LNK 0x03U /* IDE64 soft-link */
#define _CBM_T_OTHER 0x04U /* File-type not recognized */
#define _CBM_T_HEADER 0x05U /* Disk header / title */
#if __CC65_STD__ == __CC65_STD_CC65__
/* Allow for names without leading underscores */
#define CBM_T_DEL _CBM_T_DEL
#define CBM_T_SEQ _CBM_T_SEQ
#define CBM_T_PRG _CBM_T_PRG
#define CBM_T_USR _CBM_T_USR
#define CBM_T_REL _CBM_T_REL
#define CBM_T_CBM _CBM_T_CBM
#define CBM_T_DIR _CBM_T_DIR
#define CBM_T_LNK _CBM_T_LNK
#define CBM_T_VRP _CBM_T_VRP
#define CBM_T_OTHER _CBM_T_OTHER
#define CBM_T_HEADER _CBM_T_HEADER
#endif
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned char __fastcall__ _cbm_filetype (unsigned char c);
/* Map the start character for a file type to one of the file types above.
** Note: 'd' will always mapped to CBM_T_DEL. The calling function has to
** look at the following character to determine if the file type is actually
** CBM_T_DIR.
** This is a function used by the implementation. There is usually no need
** to call it from user code.
*/
/* End of cbm_filetype.h */
#endif
/*****************************************************************************/
/* */
/* nes.h */
/* */
/* NES system specific definitions */
/* */
/* */
/* */
/* (C) 2002-2003 Groepaz/Hitmen */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _NES_H
#define _NES_H
/* Check for errors */
#if !defined(__NES__)
# error This module may only be used when compiling for the NES!
#endif
/* Key and character defines */
#define CH_ENTER '\n'
#define CH_CURS_UP 0x01
#define CH_CURS_DOWN 0x02
#define CH_CURS_LEFT 0x03
#define CH_CURS_RIGHT 0x04
#define CH_ESC 8
#define CH_DEL 20
#define CH_CROSS 0x10
#define CH_RTEE 0x17
#define CH_LTEE 0x0f
#define CH_TTEE 0x16
#define CH_BTEE 0x15
#define CH_HLINE 0x0b
#define CH_VLINE 0x0e
#define CH_ULCORNER 0x14
#define CH_URCORNER 0x12
#define CH_LLCORNER 0x11
#define CH_LRCORNER 0x08
#define CH_PI 0x05
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
#define COLOR_RED 0x02
#define COLOR_CYAN 0x03
#define COLOR_VIOLET 0x04
#define COLOR_GREEN 0x05
#define COLOR_BLUE 0x06
#define COLOR_YELLOW 0x07
#define COLOR_ORANGE 0x08
#define COLOR_BROWN 0x09
#define COLOR_LIGHTRED 0x0A
#define COLOR_GRAY1 0x0B
#define COLOR_GRAY2 0x0C
#define COLOR_LIGHTGREEN 0x0D
#define COLOR_LIGHTBLUE 0x0E
#define COLOR_GRAY3 0x0F
/* Return codes of get_tv */
#define TV_NTSC 0
#define TV_PAL 1
#define TV_OTHER 2
/* No support for dynamically loadable drivers */
#define DYN_DRV 0
/* The joystick keys - all keys are supported */
#define KEY_A 0x01
#define KEY_B 0x02
#define KEY_SELECT 0x04
#define KEY_START 0x08
#define KEY_UP 0x10
#define KEY_DOWN 0x20
#define KEY_LEFT 0x40
#define KEY_RIGHT 0x80
/* Define hardware */
/* Picture Processing Unit */
struct __ppu {
unsigned char control;
unsigned char mask; /* color; show sprites, background */
signed char volatile const status;
struct {
unsigned char address;
unsigned char data;
} sprite;
unsigned char scroll;
struct {
unsigned char address;
unsigned char data;
} vram;
};
#define PPU (*(struct __ppu*)0x2000)
#define SPRITE_DMA (APU.sprite.dma)
/* Audio Processing Unit */
struct __apu {
struct {
unsigned char control; /* duty, counter halt, volume/envelope */
unsigned char ramp;
unsigned char period_low; /* timing */
unsigned char len_period_high; /* length, timing */
} pulse[2];
struct {
unsigned char counter; /* counter halt, linear counter */
unsigned char unused;
unsigned char period_low; /* timing */
unsigned char len_period_high; /* length, timing */
} triangle;
struct {
unsigned char control; /* counter halt, volume/envelope */
unsigned char unused;
unsigned char period; /* loop, timing */
unsigned char len; /* length */
} noise;
struct {
unsigned char control; /* IRQ, loop, rate */
unsigned char output; /* output value */
unsigned char address;
unsigned char length;
} delta_mod; /* delta pulse-code modulation */
struct {
unsigned char dma;
} sprite;
signed char volatile status;
unsigned char unused;
unsigned char fcontrol;
};
#define APU (*(struct __apu*)0x4000)
#define JOYPAD ((unsigned char volatile[2])0x4016)
/* The addresses of the static drivers */
extern void nes_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
extern void nes_64_56_2_tgi[]; /* Referred to by tgi_static_stddrv[] */
void waitvblank (void);
/* Wait for the vertical blanking */
unsigned char get_tv (void);
/* Return the video mode the machine is using. */
/* End of nes.h */
#endif
/*
Supreme GEOS header file
includes all other headers
Maciej 'YTM/Elysium' Witkowiak, 27.10.1999
*/
#ifndef _GEOS_H
#define _GEOS_H
/* Check for errors */
#if !defined(__GEOS__)
# error This module may only be used when compiling for GEOS!
#endif
#ifndef _GCONST_H
#include <geos/gconst.h>
#endif
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
#ifndef _GSYM_H
#include <geos/gsym.h>
#endif
#ifndef _GDISK_H
#include <geos/gdisk.h>
#endif
#ifndef _GFILE_H
#include <geos/gfile.h>
#endif
#ifndef _GPROCESS_H
#include <geos/gprocess.h>
#endif
#ifndef _GGRAPH_H
#include <geos/ggraph.h>
#endif
#ifndef _GMENU_H
#include <geos/gmenu.h>
#endif
#ifndef _GSPRITE_H
#include <geos/gsprite.h>
#endif
#ifndef _GMEMORY_H
#include <geos/gmemory.h>
#endif
#ifndef _GSYS_H
#include <geos/gsys.h>
#endif
#ifndef _GDLGBOX_H
#include <geos/gdlgbox.h>
#endif
#define CH_ULCORNER '+'
#define CH_URCORNER '+'
#define CH_LLCORNER '+'
#define CH_LRCORNER '+'
#define CH_TTEE '+'
#define CH_RTEE '+'
#define CH_BTEE '+'
#define CH_LTEE '+'
#define CH_CROSS '+'
#define CH_F1 KEY_F1
#define CH_F2 KEY_F2
#define CH_F3 KEY_F3
#define CH_F4 KEY_F4
#define CH_F5 KEY_F5
#define CH_F6 KEY_F6
#define CH_F7 KEY_F7
#define CH_F8 KEY_F8
#define CH_CURS_UP KEY_UP
#define CH_CURS_DOWN KEY_DOWN
#define CH_CURS_LEFT KEY_LEFT
#define CH_CURS_RIGHT KEY_RIGHT
#define CH_DEL KEY_DELETE
#define CH_INS KEY_INSERT
#define CH_ENTER KEY_ENTER
#define CH_STOP KEY_STOP
#define CH_ESC KEY_ESC
#define COLOR_BLACK BLACK
#define COLOR_WHITE WHITE
#define COLOR_RED RED
#define COLOR_CYAN CYAN
#define COLOR_VIOLET PURPLE
#define COLOR_PURPLE PURPLE
#define COLOR_GREEN GREEN
#define COLOR_BLUE BLUE
#define COLOR_YELLOW YELLOW
#define COLOR_ORANGE ORANGE
#define COLOR_BROWN BROWN
#define COLOR_LIGHTRED LTRED
#define COLOR_GRAY1 DKGREY
#define COLOR_GRAY2 MEDGREY
#define COLOR_LIGHTGREEN LTGREEN
#define COLOR_LIGHTBLUE LTBLUE
#define COLOR_GRAY3 LTGREY
#define TGI_COLOR_BLACK COLOR_BLACK
#define TGI_COLOR_WHITE COLOR_WHITE
#define TGI_COLOR_RED COLOR_RED
#define TGI_COLOR_CYAN COLOR_CYAN
#define TGI_COLOR_VIOLET COLOR_VIOLET
#define TGI_COLOR_PURPLE COLOR_PURPLE
#define TGI_COLOR_GREEN COLOR_GREEN
#define TGI_COLOR_BLUE COLOR_BLUE
#define TGI_COLOR_YELLOW COLOR_YELLOW
#define TGI_COLOR_ORANGE COLOR_ORANGE
#define TGI_COLOR_BROWN COLOR_BROWN
#define TGI_COLOR_LIGHTRED COLOR_LIGHTRED
#define TGI_COLOR_GRAY1 COLOR_GRAY1
#define TGI_COLOR_GRAY2 COLOR_GRAY2
#define TGI_COLOR_LIGHTGREEN COLOR_LIGHTGREEN
#define TGI_COLOR_LIGHTBLUE COLOR_LIGHTBLUE
#define TGI_COLOR_GRAY3 COLOR_GRAY3
/* End of geos.h */
#endif
/*****************************************************************************/
/* */
/* dio.h */
/* */
/* Low-Level diskette I/O functions */
/* */
/* */
/* */
/* (C) 2005 Christian Groessler <chris@groessler.org> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _DIO_H
#define _DIO_H
/* Please note: All functions in this file will set _oserror *and* return its
** value. The only exception is dio_open, which will return NULL, but _oserror
** will be set. All function will also set _oserror in case of successful
** execution, effectively clearing it.
*/
/*****************************************************************************/
/* Data */
/*****************************************************************************/
typedef struct __dhandle_t *dhandle_t;
typedef struct {
unsigned char head;
unsigned track;
unsigned sector;
} dio_phys_pos;
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned __fastcall__ dio_query_sectsize (dhandle_t handle);
/* returns sector size */
unsigned __fastcall__ dio_query_sectcount (dhandle_t handle);
/* returns sector count */
dhandle_t __fastcall__ dio_open (unsigned char device);
/* open device for subsequent dio access */
unsigned char __fastcall__ dio_close (dhandle_t handle);
/* close device, returns oserror (0 for success) */
unsigned char __fastcall__ dio_read (dhandle_t handle,
unsigned sect_num,
void *buffer);
/* read sector <sect_num> from device <handle> to memory at <buffer> */
/* the number of bytes transferred depends on the sector size */
/* returns oserror (0 for success) */
unsigned char __fastcall__ dio_write (dhandle_t handle,
unsigned sect_num,
const void *buffer);
/* write memory at <buffer> to sector <sect_num> on device <handle>, no verify */
/* the number of bytes transferred depends on the sector size */
/* returns oserror (0 for success) */
unsigned char __fastcall__ dio_write_verify (dhandle_t handle,
unsigned sect_num,
const void *buffer);
/* write memory at <buffer> to sector <sect_num> on device <handle>, verify after write */
/* the number of bytes transferred depends on the sector size */
/* returns oserror (0 for success) */
unsigned char __fastcall__ dio_phys_to_log (dhandle_t handle,
const dio_phys_pos *physpos, /* input */
unsigned *sectnum); /* output */
/* convert physical sector address (head/track/sector) to logical sector number */
/* returns oserror (0 for success) */
unsigned char __fastcall__ dio_log_to_phys (dhandle_t handle,
const unsigned *sectnum, /* input */
dio_phys_pos *physpos); /* output */
/* convert logical sector number to physical sector address (head/track/sector) */
/* returns oserror (0 for success) */
#endif /* #ifndef _DIO_H */
/*****************************************************************************/
/* */
/* o65.h */
/* */
/* Definitions for the o65 file format */
/* */
/* */
/* */
/* (C) 2002-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* This files exports structures and constants to handle the o65 relocatable
** file format as defined by Andre Fachat. See the original document under
**
** http://www.6502.org/users/andre/o65/fileformat.html
**
** for more information.
*/
#ifndef _O65_H
#define _O65_H
/* o65 size type. It is 2 bytes for the 6502 and 4 bytes for the 65816 */
typedef unsigned o65_size;
/* Structure that defines the o65 file header */
typedef struct o65_header o65_header;
struct o65_header {
char marker[2]; /* Non-C64 marker */
char magic[3]; /* o65 magic */
char version; /* Version number */
unsigned mode; /* Mode word */
o65_size tbase; /* Original text (code) segment address */
o65_size tlen; /* Size of text (code) segment */
o65_size dbase; /* Original data segment address */
o65_size dlen; /* Size of data segment */
o65_size bbase; /* Original bss segment address */
o65_size blen; /* Size of bss segment */
o65_size zbase; /* Original zp segment address */
o65_size zlen; /* Size of zp segment */
o65_size stack; /* Stacksize needed */
};
/* Marker, magic and version number */
#define O65_MARKER_0 0x01
#define O65_MARKER_1 0x00
#define O65_MAGIC_0 0x6F /* 'o' */
#define O65_MAGIC_1 0x36 /* '6' */
#define O65_MAGIC_2 0x35 /* '5' */
#define O65_VERSION 0x00
/* Defines for the mode word */
#define O65_CPU_65816 0x8000 /* Executable is for 65816 */
#define O65_CPU_6502 0x0000 /* Executable is for the 6502 */
#define O65_CPU_MASK 0x8000 /* Mask to extract CPU type */
#define O65_RELOC_PAGE 0x4000 /* Page wise relocation */
#define O65_RELOC_BYTE 0x0000 /* Byte wise relocation */
#define O65_RELOC_MASK 0x4000 /* Mask to extract relocation type */
#define O65_SIZE_32BIT 0x2000 /* All size words are 32bit */
#define O65_SIZE_16BIT 0x0000 /* All size words are 16bit */
#define O65_SIZE_MASK 0x2000 /* Mask to extract size */
#define O65_FTYPE_OBJ 0x1000 /* Object file */
#define O65_FTYPE_EXE 0x0000 /* Executable file */
#define O65_FTYPE_MASK 0x1000 /* Mask to extract type */
#define O65_ADDR_SIMPLE 0x0800 /* Simple addressing */
#define O65_ADDR_DEFAULT 0x0000 /* Default addressing */
#define O65_ADDR_MASK 0x0800 /* Mask to extract addressing */
#define O65_CHAIN 0x0400 /* Chained file, another one follows */
#define O65_CHAIN_MASK 0x0400 /* Mask to extract chain flag */
#define O65_BSSZERO 0x0200 /* BSS segment must be zeroed */
#define O65_BSSZERO_MASK 0x0200 /* Mask to extract bss zero flag */
/* The following is used if O65_CPU == 6502 */
#define O65_CPU2_6502 0x0000 /* Executable is for 6502 */
#define O65_CPU2_65C02 0x0010 /* Executable is for 65C02 */
#define O65_CPU2_65SC02 0x0020 /* Executable is for 65SC02 */
#define O65_CPU2_65CE02 0x0030 /* Executable is for 65CE02 */
#define O65_CPU2_6502X 0x0040 /* Executable is for NMOS 6502 */
#define O65_CPU2_65816_EMU 0x0050 /* Executable is for 65816 in emul mode */
#define O65_CPU2_MASK 0x00F0 /* Mask to extract CPU2 field */
#define O65_ALIGN_1 0x0000 /* Bytewise alignment */
#define O65_ALIGN_2 0x0001 /* Align words */
#define O65_ALIGN_4 0x0002 /* Align longwords */
#define O65_ALIGN_256 0x0003 /* Align pages (256 bytes) */
#define O65_ALIGN_MASK 0x0003 /* Mask to extract alignment */
/* The mode word as generated by the ld65 linker */
#define O65_MODE_CC65 (O65_CPU_6502 | \
O65_RELOC_BYTE | \
O65_SIZE_16BIT | \
O65_FTYPE_EXE | \
O65_ADDR_SIMPLE | \
O65_ALIGN_1)
/* The four o65 segment types. */
#define O65_SEGID_UNDEF 0x00
#define O65_SEGID_ABS 0x01
#define O65_SEGID_TEXT 0x02
#define O65_SEGID_DATA 0x03
#define O65_SEGID_BSS 0x04
#define O65_SEGID_ZP 0x05
#define O65_SEGID_MASK 0x07
/* Relocation type codes */
#define O65_RTYPE_WORD 0x80
#define O65_RTYPE_HIGH 0x40
#define O65_RTYPE_LOW 0x20
#define O65_RTYPE_SEGADDR 0xC0
#define O65_RTYPE_SEG 0xA0
#define O65_RTYPE_MASK 0xE0
/* Segment IDs */
#define O65_SEGID_UNDEF 0x00
#define O65_SEGID_ABS 0x01
#define O65_SEGID_TEXT 0x02
#define O65_SEGID_DATA 0x03
#define O65_SEGID_BSS 0x04
#define O65_SEGID_ZP 0x05
#define O65_SEGID_MASK 0x07
/* Option tags */
#define O65_OPT_FILENAME 0
#define O65_OPT_OS 1
#define O65_OPT_ASM 2
#define O65_OPT_AUTHOR 3
#define O65_OPT_TIMESTAMP 4
/* Operating system codes for O65_OPT_OS */
#define O65_OS_OSA65 1
#define O65_OS_LUNIX 2
#define O65_OS_CC65 3
#define O65_OS_OPENCBM 4
/* End of o65.h */
#endif
/*****************************************************************************/
/* */
/* stdarg.h */
/* */
/* Variable arguments */
/* */
/* */
/* */
/* (C) 1998-2004 Ullrich von Bassewitz */
/* R<>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _STDARG_H
#define _STDARG_H
typedef unsigned char* va_list;
#define va_start(ap, fix) ap = ((va_list)&(fix))
#define va_arg(ap,type) (*(type*)(ap -= ((sizeof (type) + 1) & ~1)))
#if __CC65_STD__ >= __CC65_STD_C99__
#define va_copy(dest, src) ((dest)=(src))
#endif
#define va_end(ap)
/* End of stdarg.h */
#endif
/*****************************************************************************/
/* */
/* stddef.h */
/* */
/* Common definitions */
/* */
/* */
/* */
/* (C) 1998-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _STDDEF_H
#define _STDDEF_H
/* Standard data types */
#ifndef _HAVE_ptrdiff_t
#define _HAVE_ptrdiff_t
typedef int ptrdiff_t;
#endif
#ifndef _HAVE_wchar_t
#define _HAVE_wchar_t
typedef char wchar_t;
#endif
#ifndef _HAVE_size_t
#define _HAVE_size_t
typedef unsigned size_t;
#endif
/* NULL pointer */
#ifndef _HAVE_NULL
#define NULL 0
#define _HAVE_NULL
#endif
/* offsetof macro */
#define offsetof(type, member) (size_t) (&((type*) 0)->member)
/* End of stddef.h */
#endif
/*****************************************************************************/
/* */
/* dirent.h */
/* */
/* Directory entries for cc65 */
/* */
/* */
/* */
/* (C) 2005 Oliver Schmidt, <ol.sc@web.de> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _DIRENT_H
#define _DIRENT_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
typedef struct DIR DIR;
#if defined(__APPLE2__)
struct dirent {
char d_name[16];
unsigned d_ino;
unsigned d_blocks;
unsigned long d_size;
unsigned char d_type;
struct {
unsigned day :5;
unsigned mon :4;
unsigned year :7;
} d_cdate;
struct {
unsigned char min;
unsigned char hour;
} d_ctime;
unsigned char d_access;
unsigned d_auxtype;
struct {
unsigned day :5;
unsigned mon :4;
unsigned year :7;
} d_mdate;
struct {
unsigned char min;
unsigned char hour;
} d_mtime;
};
#define _DE_ISREG(t) ((t) != 0x0F)
#define _DE_ISDIR(t) ((t) == 0x0F)
#define _DE_ISLBL(t) (0)
#define _DE_ISLNK(t) (0)
#elif defined(__ATARI__)
struct dirent {
char d_name[13]; /* 8.3 + trailing 0 */
unsigned char d_type;
};
#define _DE_ISREG(t) ((t) != 0xC4)
#define _DE_ISDIR(t) ((t) == 0xC4)
#define _DE_ISLBL(t) (0)
#define _DE_ISLNK(t) (0)
#elif defined(__CBM__)
struct dirent {
char d_name[16+1];
unsigned int d_off;
unsigned int d_blocks;
unsigned char d_type; /* See _CBM_T_xxx defines */
/* bsd extensions */
unsigned char d_namlen;
};
/* File type specification macros. We need definitions of CBM file types. */
#include <cbm_filetype.h>
#define _DE_ISREG(t) (((t) & _CBM_T_REG) != 0)
#define _DE_ISDIR(t) ((t) == _CBM_T_DIR)
#define _DE_ISLBL(t) ((t) == _CBM_T_HDR)
#define _DE_ISLNK(t) ((t) == _CBM_T_LNK)
#elif defined(__LYNX__)
struct dirent {
unsigned char d_blocks;
unsigned int d_offset;
char d_type;
void *d_address;
unsigned int d_size;
};
extern struct dirent FileEntry;
#pragma zpsym ("FileEntry");
#define _DE_ISREG(t) (1)
#define _DE_ISDIR(t) (0)
#define _DE_ISLBL(t) (0)
#define _DE_ISLNK(t) (0)
#else
struct dirent {
char d_name[1];
};
#define _DE_ISREG(t) (1)
#define _DE_ISDIR(t) (0)
#define _DE_ISLBL(t) (0)
#define _DE_ISLNK(t) (0)
#endif
/*****************************************************************************/
/* Code */
/*****************************************************************************/
DIR* __fastcall__ opendir (const char* name);
struct dirent* __fastcall__ readdir (DIR* dir);
int __fastcall__ closedir (DIR* dir);
long __fastcall__ telldir (DIR* dir);
void __fastcall__ seekdir (DIR* dir, long offs);
void __fastcall__ rewinddir (DIR* dir);
/* End of dirent.h */
#endif
/*****************************************************************************/
/* */
/* _pokey.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2000 Freddy Offenga <taf_offenga@yahoo.com> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __POKEY_H
#define __POKEY_H
/* Define a structure with the pokey register offsets */
struct __pokey_write {
unsigned char audf1; /* audio channel #1 frequency */
unsigned char audc1; /* audio channel #1 control */
unsigned char audf2; /* audio channel #2 frequency */
unsigned char audc2; /* audio channel #2 control */
unsigned char audf3; /* audio channel #3 frequency */
unsigned char audc3; /* audio channel #3 control */
unsigned char audf4; /* audio channel #4 frequency */
unsigned char audc4; /* audio channel #4 control */
unsigned char audctl; /* audio control */
unsigned char stimer; /* start pokey timers */
unsigned char skrest; /* reset serial port status reg. */
unsigned char potgo; /* start paddle scan sequence */
unsigned char unuse1; /* unused */
unsigned char serout; /* serial port data output */
unsigned char irqen; /* interrupt request enable */
unsigned char skctl; /* serial port control */
};
struct __pokey_read {
unsigned char pot0; /* paddle 0 value */
unsigned char pot1; /* paddle 1 value */
unsigned char pot2; /* paddle 2 value */
unsigned char pot3; /* paddle 3 value */
unsigned char pot4; /* paddle 4 value */
unsigned char pot5; /* paddle 5 value */
unsigned char pot6; /* paddle 6 value */
unsigned char pot7; /* paddle 7 value */
unsigned char allpot; /* eight paddle port status */
unsigned char kbcode; /* keyboard code */
unsigned char random; /* random number generator */
unsigned char unuse2; /* unused */
unsigned char unuse3; /* unused */
unsigned char serin; /* serial port input */
unsigned char irqst; /* interrupt request status */
unsigned char skstat; /* serial port status */
};
/* End of _pokey.h */
#endif /* #ifndef __POKEY_H */
/*****************************************************************************/
/* */
/* supervision.h */
/* */
/* Supervision specific definitions */
/* */
/* */
/* */
/* 2003 Peter Trauner (trap@utanet.at) */
/* */
/* */
/* This software is provided "as-is," without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment, in the product's documentation, */
/* would be appreciated, but is not required. */
/* 2. Alterred source versions must be marked plainly as such, */
/* and must not be misrepresented as being the original software. */
/* 3. This notice may not be removed or alterred */
/* from any source distribution. */
/* */
/*****************************************************************************/
#ifndef _SUPERVISION_H
#define _SUPERVISION_H
/* Check for errors */
#if !defined(__SUPERVISION__)
# error This module may only be used when compiling for the Supervision!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
struct __sv_lcd {
unsigned char width;
unsigned char height;
unsigned char xpos;
unsigned char ypos;
};
#define SV_LCD ((struct __sv_lcd*)0x2000)
struct __sv_tone {
unsigned delay;
unsigned char control;
unsigned char timer;
};
#define SV_RIGHT ((struct __sv_tone*)0x2010)
#define SV_LEFT ((struct __sv_tone*)0x2014)
struct __sv_noise {
unsigned char volume; /* and frequency */
unsigned char timer;
unsigned char control;
};
#define SV_NOISE ((struct __sv_noise*)0x2028)
struct __io_port {
unsigned char in;
unsigned char out;
};
#define IO_PORT ((struct __io_port*)(0x2021)
struct __sv_dma {
unsigned start;
unsigned char size;
unsigned char control;
unsigned char on;
};
#define SV_DMA ((struct __sv_dma*)0x2018)
#define SV_CONTROL (*(unsigned char*)0x2020)
#define SV_BANK (*(unsigned char*)0x2026)
#define SV_BANK_COMBINE(nmi,irq_timer,irq_dma,lcd_on, timer_prescale, bank) \
((nmi)?1:0)|((irq_timer)?2:0)|((irq_dma)?4:0)|((lcd_on)?8:0) \
|((timer_prescale)?0x10:0)|((bank)<<5)
#define SV_VIDEO ((unsigned char*)0x4000)
#define SV_TIMER_COUNT (*(unsigned char*)0x2023)
/* Counters incremented asynchronously!
** If you want more complex, copy the crt0.s file from the libsrc/supervision
** directory and code them yourself (in assembler)
*/
extern unsigned char sv_nmi_counter;
extern unsigned char sv_timer_irq_counter;
extern unsigned char sv_timer_dma_counter;
/* End of supervision.h */
#endif
/*****************************************************************************/
/* */
/* atmos.h */
/* */
/* Oric Atmos system-specific definitions */
/* */
/* */
/* */
/* (C) 2002 Debrune J<>rome, <jede@oric.org> */
/* (C) 2003-2013 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ATMOS_H
#define _ATMOS_H
/* Check for errors */
#if !defined(__ATMOS__)
# error This module may only be used when compiling for the Oric Atmos!
#endif
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_RED 0x01
#define COLOR_GREEN 0x02
#define COLOR_YELLOW 0x03
#define COLOR_BLUE 0x04
#define COLOR_MAGENTA 0x05
#define COLOR_CYAN 0x06
#define COLOR_WHITE 0x07
/* TGI color defines */
/* White and red are swapped, so that the pallete
** driver is compatible with black-and-white drivers.
*/
#define TGI_COLOR_BLACK COLOR_BLACK
#define TGI_COLOR_WHITE 1
#define TGI_COLOR_GREEN COLOR_GREEN
#define TGI_COLOR_YELLOW COLOR_YELLOW
#define TGI_COLOR_BLUE COLOR_BLUE
#define TGI_COLOR_MAGENTA COLOR_MAGENTA
#define TGI_COLOR_CYAN COLOR_CYAN
#define TGI_COLOR_RED 7
/* Define hardware */
#include <_6522.h>
#define VIA (*(struct __6522*)0x300)
/* These are defined to be FUNCT + NumberKey */
#define CH_F1 0xB1
#define CH_F2 0xB2
#define CH_F3 0xB3
#define CH_F4 0xB4
#define CH_F5 0xB5
#define CH_F6 0xB6
#define CH_F7 0xB7
#define CH_F8 0xB8
#define CH_F9 0xB9
#define CH_F10 0xB0
/* Character codes */
#define CH_ULCORNER '+'
#define CH_URCORNER '+'
#define CH_LLCORNER '+'
#define CH_LRCORNER '+'
#define CH_TTEE '+'
#define CH_BTEE '+'
#define CH_LTEE '+'
#define CH_RTEE '+'
#define CH_CROSS '+'
#define CH_CURS_UP 11
#define CH_CURS_DOWN 10
#define CH_CURS_LEFT 8
#define CH_CURS_RIGHT 9
#define CH_DEL 127
#define CH_ENTER 13
#define CH_STOP 3
#define CH_LIRA 95
#define CH_ESC 27
/* No support for dynamically loadable drivers */
#define DYN_DRV 0
/* The addresses of the static drivers */
extern void atmos_pase_joy[]; /* Referred to by joy_static_stddrv[] */
extern void atmos_acia_ser[];
extern void atmos_228_200_3_tgi[];
extern void atmos_240_200_2_tgi[]; /* Referred to by tgi_static_stddrv[] */
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
void __fastcall__ atmos_load(const char* name);
/* Load Atmos tape. */
void __fastcall__ atmos_save(const char* name, const void* start, const void* end);
/* Save Atmos tape. */
void atmos_explode (void);
/* Bomb sound effect */
void atmos_ping (void);
/* Bell or ricochet sound effect */
void atmos_shoot (void);
/* Pistol sound effect */
void atmos_tick (void);
/* High-pitch click */
void atmos_tock (void);
/* Low-pitch click */
void atmos_zap (void);
/* Raygun sound effect */
/* End of atmos.h */
#endif
/*****************************************************************************/
/* */
/* peekpoke.h */
/* */
/* PEEK and POKE macros for those who want to write BASIC code in C */
/* */
/* */
/* */
/* (C) 2003 Ullrich von Bassewitz */
/* R<>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _PEEKPOKE_H
#define _PEEKPOKE_H
/*****************************************************************************/
/* Macros */
/*****************************************************************************/
#define POKE(addr,val) (*(unsigned char*) (addr) = (val))
#define POKEW(addr,val) (*(unsigned*) (addr) = (val))
#define PEEK(addr) (*(unsigned char*) (addr))
#define PEEKW(addr) (*(unsigned*) (addr))
/* End of peekpoke.h */
#endif
/*****************************************************************************/
/* */
/* apple2.h */
/* */
/* Apple ][ system specific definitions */
/* */
/* */
/* */
/* (C) 2000 Kevin Ruland, <kevin@rodin.wustl.edu> */
/* (C) 2003 Ullrich von Bassewitz, <uz@cc65.org> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _APPLE2_H
#define _APPLE2_H
/* Check for errors */
#if !defined(__APPLE2__)
# error This module may only be used when compiling for the Apple ][!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
/* TGI color defines */
#define TGI_COLOR_BLACK 0x00
#define TGI_COLOR_GREEN 0x01
#define TGI_COLOR_VIOLET 0x02
#define TGI_COLOR_WHITE 0x03
#define TGI_COLOR_BLACK2 0x04
#define TGI_COLOR_ORANGE 0x05
#define TGI_COLOR_BLUE 0x06
#define TGI_COLOR_WHITE2 0x07
#define TGI_COLOR_MAGENTA TGI_COLOR_BLACK2
#define TGI_COLOR_DARKBLUE TGI_COLOR_WHITE2
#define TGI_COLOR_DARKGREEN 0x08
#define TGI_COLOR_GRAY 0x09
#define TGI_COLOR_CYAN 0x0A
#define TGI_COLOR_BROWN 0x0B
#define TGI_COLOR_GRAY2 0x0C
#define TGI_COLOR_PINK 0x0D
#define TGI_COLOR_YELLOW 0x0E
#define TGI_COLOR_AQUA 0x0F
/* Characters codes */
#define CH_ENTER 0x0D
#define CH_ESC 0x1B
#define CH_CURS_LEFT 0x08
#define CH_CURS_RIGHT 0x15
#define CH_ULCORNER '+'
#define CH_URCORNER '+'
#define CH_LLCORNER '+'
#define CH_LRCORNER '+'
#define CH_TTEE '+'
#define CH_BTEE '+'
#define CH_LTEE '+'
#define CH_RTEE '+'
#define CH_CROSS '+'
/* Return codes for get_ostype */
#define APPLE_UNKNOWN 0x00
#define APPLE_II 0x10 /* Apple ][ */
#define APPLE_IIPLUS 0x11 /* Apple ][+ */
#define APPLE_IIIEM 0x20 /* Apple /// (emulation) */
#define APPLE_IIE 0x30 /* Apple //e */
#define APPLE_IIEENH 0x31 /* Apple //e (enhanced) */
#define APPLE_IIECARD 0x40 /* Apple //e Option Card */
#define APPLE_IIC 0x50 /* Apple //c */
#define APPLE_IIC35 0x51 /* Apple //c (3.5 ROM) */
#define APPLE_IICEXP 0x53 /* Apple //c (Mem. Exp.) */
#define APPLE_IICREV 0x54 /* Apple //c (Rev. Mem. Exp.) */
#define APPLE_IICPLUS 0x55 /* Apple //c Plus */
#define APPLE_IIGS 0x80 /* Apple IIgs */
#define APPLE_IIGS1 0x81 /* Apple IIgs (ROM 1) */
#define APPLE_IIGS3 0x83 /* Apple IIgs (ROM 3) */
extern unsigned char _dos_type;
/* Valid _dos_type values:
**
** AppleDOS 3.3 - 0x00
** ProDOS 8 1.0.1 - 0x10
** ProDOS 8 1.0.2 - 0x10
** ProDOS 8 1.1.1 - 0x11
** ProDOS 8 1.2 - 0x12
** ProDOS 8 1.3 - 0x13
** ProDOS 8 1.4 - 0x14
** ProDOS 8 1.5 - 0x15
** ProDOS 8 1.6 - 0x16
** ProDOS 8 1.7 - 0x17
** ProDOS 8 1.8 - 0x18
** ProDOS 8 1.9 - 0x18 (!)
** ProDOS 8 2.0.1 - 0x21
** ProDOS 8 2.0.2 - 0x22
** ProDOS 8 2.0.3 - 0x23
*/
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The file stream implementation and the POSIX I/O functions will use the
** following variables to determine the file type, aux type and creation time
** stamp to use.
*/
extern unsigned char _filetype; /* Default: 6 */
extern unsigned int _auxtype; /* Default: 0 */
extern struct {
struct {
unsigned day :5;
unsigned mon :4;
unsigned year :7;
} createdate; /* Current date: 0 */
struct {
unsigned char min;
unsigned char hour;
} createtime; /* Current time: 0 */
} _datetime;
/* The addresses of the static drivers */
#if !defined(__APPLE2ENH__)
extern void a2_auxmem_emd[];
extern void a2_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
extern void a2_stdmou_mou[]; /* Referred to by mouse_static_stddrv[] */
extern void a2_ssc_ser[];
extern void a2_hi_tgi[]; /* Referred to by tgi_static_stddrv[] */
extern void a2_lo_tgi[];
#endif
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned char get_ostype (void);
/* Get the machine type. Returns one of the APPLE_xxx codes. */
void rebootafterexit (void);
/* Reboot machine after program termination has completed. */
#define ser_apple2_slot(num) ser_ioctl (0, (void*) (num))
/* Select a slot number from 1 to 7 prior to ser_open.
** The default slot number is 2.
*/
#define tgi_apple2_mix(onoff) tgi_ioctl (0, (void*) (onoff))
/* If onoff is 1, graphics/text mixed mode is enabled.
** If onoff is 0, graphics/text mixed mode is disabled.
*/
/* The following #defines will cause the matching functions calls in conio.h
** to be overlaid by macros with the same names, saving the function call
** overhead.
*/
#define _textcolor(color) COLOR_WHITE
#define _bgcolor(color) COLOR_BLACK
#define _bordercolor(color) COLOR_BLACK
/* End of apple2.h */
#endif
/*****************************************************************************/
/* */
/* inttypes.h */
/* */
/* Format conversion of integer types */
/* */
/* */
/* */
/* (C) 2002-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* Note: This file is not fully ISO 9899-1999 compliant because cc65 lacks
** a 64 bit data types and is not able to return structs > 4 bytes. The
** declarations have been adjusted accordingly or left out.
*/
#ifndef _INTTYPES_H
#define _INTTYPES_H
/* inttypes.h must always include stdint.h */
#ifndef _STDINT_H
#include <stdint.h>
#endif
/* Standard functions */
intmax_t __fastcall__ imaxabs (intmax_t val);
intmax_t __fastcall__ strtoimax (const char* nptr, char** endptr, int base);
uintmax_t __fastcall__ strtoumax (const char* nptr, char** endptr, int base);
/* printf() macros for signed integers */
#define PRId8 "d"
#define PRId16 "d"
#define PRId32 "ld"
#define PRIdLEAST8 "d"
#define PRIdLEAST16 "d"
#define PRIdLEAST32 "ld"
#define PRIdFAST8 "d"
#define PRIdFAST16 "d"
#define PRIdFAST32 "ld"
#define PRIdMAX "ld"
#define PRIdPTR "d"
#define PRIi8 "i"
#define PRIi16 "i"
#define PRIi32 "li"
#define PRIiLEAST8 "i"
#define PRIiLEAST16 "i"
#define PRIiLEAST32 "li"
#define PRIiFAST8 "i"
#define PRIiFAST16 "i"
#define PRIiFAST32 "li"
#define PRIiMAX "li"
#define PRIiPTR "i"
/* fprintf() macros for unsigned integers */
#define PRIo8 "o"
#define PRIo16 "o"
#define PRIo32 "lo"
#define PRIoLEAST8 "o"
#define PRIoLEAST16 "o"
#define PRIoLEAST32 "lo"
#define PRIoFAST8 "o"
#define PRIoFAST16 "o"
#define PRIoFAST32 "lo"
#define PRIoMAX "lo"
#define PRIoPTR "o"
#define PRIu8 "u"
#define PRIu16 "u"
#define PRIu32 "lu"
#define PRIuLEAST8 "u"
#define PRIuLEAST16 "u"
#define PRIuLEAST32 "lu"
#define PRIuFAST8 "u"
#define PRIuFAST16 "u"
#define PRIuFAST32 "lu"
#define PRIuMAX "lu"
#define PRIuPTR "u"
#define PRIx8 "x"
#define PRIx16 "x"
#define PRIx32 "lx"
#define PRIxLEAST8 "x"
#define PRIxLEAST16 "x"
#define PRIxLEAST32 "lx"
#define PRIxFAST8 "x"
#define PRIxFAST16 "x"
#define PRIxFAST32 "lx"
#define PRIxMAX "lx"
#define PRIxPTR "x"
#define PRIX8 "X"
#define PRIX16 "X"
#define PRIX32 "lX"
#define PRIXLEAST8 "X"
#define PRIXLEAST16 "X"
#define PRIXLEAST32 "lX"
#define PRIXFAST8 "X"
#define PRIXFAST16 "X"
#define PRIXFAST32 "lX"
#define PRIXMAX "lX"
#define PRIXPTR "X"
/* fscanf() macros for signed integers */
#define SCNd8 "hd"
#define SCNd16 "d"
#define SCNd32 "ld"
#define SCNdLEAST8 "hd"
#define SCNdLEAST16 "d"
#define SCNdLEAST32 "ld"
#define SCNdFAST8 "hd"
#define SCNdFAST16 "d"
#define SCNdFAST32 "ld"
#define SCNdMAX "ld"
#define SCNdPTR "d"
#define SCNi8 "hi"
#define SCNi16 "i"
#define SCNi32 "li"
#define SCNiLEAST8 "hi"
#define SCNiLEAST16 "i"
#define SCNiLEAST32 "li"
#define SCNiFAST8 "hi"
#define SCNiFAST16 "i"
#define SCNiFAST32 "li"
#define SCNiMAX "li"
#define SCNiPTR "i"
/* fscanf() macros for unsigned integers */
#define SCNo8 "ho"
#define SCNo16 "o"
#define SCNo32 "lo"
#define SCNoLEAST8 "ho"
#define SCNoLEAST16 "o"
#define SCNoLEAST32 "lo"
#define SCNoFAST8 "ho"
#define SCNoFAST16 "o"
#define SCNoFAST32 "lo"
#define SCNoMAX "lo"
#define SCNoPTR "o"
#define SCNu8 "hu"
#define SCNu16 "u"
#define SCNu32 "lu"
#define SCNuLEAST8 "hu"
#define SCNuLEAST16 "u"
#define SCNuLEAST32 "lu"
#define SCNuFAST8 "hu"
#define SCNuFAST16 "u"
#define SCNuFAST32 "lu"
#define SCNuMAX "lu"
#define SCNuPTR "u"
#define SCNx8 "hx"
#define SCNx16 "x"
#define SCNx32 "lx"
#define SCNxLEAST8 "hx"
#define SCNxLEAST16 "x"
#define SCNxLEAST32 "lx"
#define SCNxFAST8 "hx"
#define SCNxFAST16 "x"
#define SCNxFAST32 "lx"
#define SCNxMAX "lx"
#define SCNxPTR "x"
/* End of inttypes.h */
#endif
/*****************************************************************************/
/* */
/* time.h */
/* */
/* Date and time */
/* */
/* */
/* */
/* (C) 1998-2012 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _TIME_H
#define _TIME_H
/* NULL pointer */
#ifndef _HAVE_NULL
#define NULL 0
#define _HAVE_NULL
#endif
/* size_t is needed */
#ifndef _HAVE_size_t
#define _HAVE_size_t
typedef unsigned size_t;
#endif
typedef unsigned long time_t;
typedef unsigned long clock_t;
/* Structure for broken down time */
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
/* Timezone representation, default is UTC */
extern struct _timezone {
char daylight; /* True if daylight savings time active */
long timezone; /* Number of seconds behind UTC */
char tzname[5]; /* Name of timezone, e.g. CET */
char dstname[5]; /* Name when daylight true, e.g. CEST */
} _tz;
#if defined(__ATARI__)
/* The clock depends on the video standard, so read it at runtime */
unsigned _clocks_per_sec (void);
# define CLK_TCK _clocks_per_sec()
# define CLOCKS_PER_SEC _clocks_per_sec()
#elif defined(__ATARI5200__)
# define CLK_TCK 60 /* POSIX */
# define CLOCKS_PER_SEC 60 /* ANSI */
#elif defined(__ATMOS__)
# define CLK_TCK 100 /* POSIX */
# define CLOCKS_PER_SEC 100 /* ANSI */
#elif defined(__CBM__)
# if defined(__CBM510__) || defined(__CBM610__)
/* The 510/610 gets its clock from the AC current */
# define CLK_TCK 50 /* POSIX */
# define CLOCKS_PER_SEC 50 /* ANSI */
# else
# define CLK_TCK 60 /* POSIX */
# define CLOCKS_PER_SEC 60 /* ANSI */
# endif
#elif defined(__NES__)
# define CLK_TCK 50 /* POSIX */
# define CLOCKS_PER_SEC 50 /* ANSI */
#elif defined(__PCE__)
# define CLK_TCK 60 /* POSIX */
# define CLOCKS_PER_SEC 60 /* ANSI */
#elif defined(__GAMATE__)
# define CLK_TCK 135 /* POSIX */ /* FIXME */
# define CLOCKS_PER_SEC 135 /* ANSI */ /* FIXME */
#elif defined(__GEOS__)
# define CLK_TCK 1 /* POSIX */
# define CLOCKS_PER_SEC 1 /* ANSI */
#elif defined(__LYNX__)
/* The clock-rate depends on the video scan-rate;
** so, read it at run-time.
*/
extern clock_t _clk_tck (void);
# define CLK_TCK _clk_tck()
# define CLOCKS_PER_SEC _clk_tck()
#endif
time_t _systime (void);
/* Similar to time(), but:
** - Is not ISO C
** - Does not take the additional pointer
** - Does not set errno when returning -1
*/
/* ISO C function prototypes */
char* __fastcall__ asctime (const struct tm* timep);
clock_t clock (void);
char* __fastcall__ ctime (const time_t* timep);
struct tm* __fastcall__ gmtime (const time_t* timep);
struct tm* __fastcall__ localtime (const time_t* timep);
time_t __fastcall__ mktime (struct tm* timep);
size_t __fastcall__ strftime (char* buf, size_t bufsize, const char* format, const struct tm* tm);
time_t __fastcall__ time (time_t* t);
/* End of time.h */
#endif
/*****************************************************************************/
/* */
/* modload.h */
/* */
/* o65 module loader interface for cc65 */
/* */
/* */
/* */
/* (C) 2002 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* Exports structures and functions to load relocatable o65 modules at
** runtime.
*/
#ifndef _MODLOAD_H
#define _MODLOAD_H
/* The following struct is passed to the module loader. It contains stuff,
** the loader needs to work, and another area where the loader will place
** informational data if it was successful. You will have to check the return
** code of mod_load before accessing any of these additional struct members.
*/
struct mod_ctrl {
/* Parameters passed into the loader routine. The member callerdata
** is an opaque 16 bit datatype that may be used by the caller to
** pass data through to the read routine. The read routine is used by the
** loader to load any required data. There are several calls where the
** read routine is passed a count of 1, so you may choose to make this
** a special case when implementing read(). The read() should return the
** number of bytes actually read. If the return value differs from the
** passed count, this is considered an error.
** NOTE: read() is designed so that the POSIX read() routine can be used
** for this vector, if you're loading from disk.
*/
int __fastcall__ (*read) (int callerdata, void* buffer, unsigned count);
int callerdata;
/* Parameters set by the loader routine */
void* module; /* Pointer to module data */
unsigned module_size; /* Total size of loaded module */
unsigned module_id; /* Module id */
};
unsigned char __fastcall__ mod_load (struct mod_ctrl* ctrl);
/* Load a module into memory and relocate it. The function will return an
** error code (see below). If MLOAD_OK is returned, the outgoing fields in
** the passed mod_ctrl struct contain information about the module just
** loaded.
*/
void __fastcall__ mod_free (void* module);
/* Free a loaded module. Note: The given pointer is the pointer to the
** module memory, not a pointer to a control structure.
*/
/* Errors */
#define MLOAD_OK 0 /* Module load successful */
#define MLOAD_ERR_READ 1 /* Read error */
#define MLOAD_ERR_HDR 2 /* Header error */
#define MLOAD_ERR_OS 3 /* Wrong OS */
#define MLOAD_ERR_FMT 4 /* Data format error */
#define MLOAD_ERR_MEM 5 /* Not enough memory */
/* End of modload.h */
#endif
/*****************************************************************************/
/* */
/* string.h */
/* */
/* String handling */
/* */
/* */
/* */
/* (C) 1998-2014, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _STRING_H
#define _STRING_H
#include <stddef.h>
char* __fastcall__ strcat (char* dest, const char* src);
char* __fastcall__ strchr (const char* s, int c);
int __fastcall__ strcmp (const char* s1, const char* s2);
int __fastcall__ strcoll (const char* s1, const char* s2);
char* __fastcall__ strcpy (char* dest, const char* src);
size_t __fastcall__ strcspn (const char* s1, const char* s2);
char* __fastcall__ strerror (int errcode);
size_t __fastcall__ strlen (const char* s);
char* __fastcall__ strncat (char* s1, const char* s2, size_t count);
int __fastcall__ strncmp (const char* s1, const char* s2, size_t count);
char* __fastcall__ strncpy (char* dest, const char* src, size_t count);
char* __fastcall__ strrchr (const char* s, int c);
size_t __fastcall__ strspn (const char* s1, const char* s2);
char* __fastcall__ strstr (const char* str, const char* substr);
char* __fastcall__ strtok (char* s1, const char* s2);
size_t __fastcall__ strxfrm (char* s1, const char* s2, size_t count);
void* __fastcall__ memchr (const void* mem, int c, size_t count);
int __fastcall__ memcmp (const void* p1, const void* p2, size_t count);
void* __fastcall__ memcpy (void* dest, const void* src, size_t count);
void* __fastcall__ memmove (void* dest, const void* src, size_t count);
void* __fastcall__ memset (void* s, int c, size_t count);
/* The following is an internal function, the compiler will replace memset
** with it if the fill value is zero. Never use this one directly!
*/
void* __fastcall__ _bzero (void* ptr, size_t n);
/* Non standard: */
#if __CC65_STD__ == __CC65_STD_CC65__
void __fastcall__ bzero (void* ptr, size_t n); /* BSD */
char* __fastcall__ strdup (const char* s); /* SYSV/BSD */
int __fastcall__ stricmp (const char* s1, const char* s2); /* DOS/Windows */
int __fastcall__ strcasecmp (const char* s1, const char* s2); /* Same for Unix */
int __fastcall__ strnicmp (const char* s1, const char* s2, size_t count); /* DOS/Windows */
int __fastcall__ strncasecmp (const char* s1, const char* s2, size_t count); /* Same for Unix */
char* __fastcall__ strlwr (char* s);
char* __fastcall__ strlower (char* s);
char* __fastcall__ strupr (char* s);
char* __fastcall__ strupper (char* s);
char* __fastcall__ strqtok (char* s1, const char* s2);
#endif
const char* __fastcall__ _stroserror (unsigned char errcode);
/* Map an operating system error number to an error message. */
/* End of string.h */
#endif
/*****************************************************************************/
/* */
/* pce.h */
/* */
/* PC-Engine system specific definitions */
/* */
/* */
/* */
/* (C) 2015 Groepaz/Hitmen */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _PCE_H
#define _PCE_H
/* Check for errors */
#if !defined(__PCE__)
# error This module may only be used when compiling for the PCE!
#endif
#define CH_HLINE 1
#define CH_VLINE 2
#define CH_CROSS 3
#define CH_ULCORNER 4
#define CH_URCORNER 5
#define CH_LLCORNER 6
#define CH_LRCORNER 7
#define CH_TTEE 8
#define CH_BTEE 9
#define CH_LTEE 10
#define CH_RTEE 11
#define CH_ENTER 13
#define CH_PI 18
/* Color defines (CBM compatible, for conio) */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
#define COLOR_RED 0x02
#define COLOR_CYAN 0x03
#define COLOR_VIOLET 0x04
#define COLOR_GREEN 0x05
#define COLOR_BLUE 0x06
#define COLOR_YELLOW 0x07
#define COLOR_ORANGE 0x08
#define COLOR_BROWN 0x09
#define COLOR_LIGHTRED 0x0A
#define COLOR_GRAY1 0x0B
#define COLOR_GRAY2 0x0C
#define COLOR_LIGHTGREEN 0x0D
#define COLOR_LIGHTBLUE 0x0E
#define COLOR_GRAY3 0x0F
#define TV_NTSC 0
#define TV_PAL 1
#define TV_OTHER 2
/* No support for dynamically loadable drivers */
#define DYN_DRV 0
/* The addresses of the static drivers */
extern void pce_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
#define JOY_FIRE_B 5
#define JOY_SELECT 6
#define JOY_RUN 7
void waitvblank (void);
/* Wait for the vertical blanking */
/* NOTE: all PCE are NTSC */
#define get_tv() TV_NTSC
/* Return the video mode the machine is using. */
/* End of pce.h */
#endif
/*****************************************************************************/
/* */
/* osic1p.h */
/* */
/* Challenger 1P system specific definitions */
/* */
/* */
/* */
/* (C) 2015 Stephan Muehlstrasser */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _OSIC1P_H
#define _OSIC1P_H
/* Check for errors */
#if !defined(__OSIC1P__)
# error "This module may only be used when compiling for the Challenger 1P!"
#endif
/* The following #defines will cause the matching functions calls in conio.h
** to be overlaid by macros with the same names, saving the function call
** overhead.
*/
#define _textcolor(color) COLOR_WHITE
#define _bgcolor(color) COLOR_BLACK
#define _bordercolor(color) COLOR_BLACK
#endif
/*****************************************************************************/
/* */
/* cbm610.h */
/* */
/* CBM610 system specific definitions */
/* */
/* */
/* */
/* (C) 1998-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CBM610_H
#define _CBM610_H
/* Check for errors */
#if !defined(__CBM610__)
# error This module may only be used when compiling for the CBM 610!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Additional key defines */
#define CH_F1 224
#define CH_F2 225
#define CH_F3 226
#define CH_F4 227
#define CH_F5 228
#define CH_F6 229
#define CH_F7 230
#define CH_F8 231
#define CH_F9 232
#define CH_F10 233
#define CH_F11 234
#define CH_F12 235
#define CH_F13 236
#define CH_F14 237
#define CH_F15 238
#define CH_F16 239
#define CH_F17 240
#define CH_F18 241
#define CH_F19 242
#define CH_F20 243
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
/* Define hardware */
#include <_6545.h>
#define CRTC (*(struct __6545)0xD800)
#include <_sid.h>
#define SID (*(struct __sid*)0xDA00)
#include <_6526.h>
#define CIA (*(struct __6526*)0xDC00)
#include <_6551.h>
#define ACIA (*(struct __6551*)0xDD00)
#include <_6525.h>
#define TPI1 (*(struct __6525*)0xDE00)
#define TPI2 (*(struct __6525*)0xDF00)
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The addresses of the static drivers */
extern void cbm610_ram_emd[];
extern void cbm610_std_ser[];
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* Special routines to read/write bytes and words in the system bank */
unsigned char __fastcall__ peekbsys (unsigned addr);
unsigned __fastcall__ peekwsys (unsigned addr);
void __fastcall__ pokebsys (unsigned addr, unsigned char val);
void __fastcall__ pokewsys (unsigned addr, unsigned val);
#if defined(__OPT_i__) && (__OPT_i__ >= 600)
#define peekbsys(addr) \
__AX__ = (addr), \
__asm__ ("sta ptr1"), \
__asm__ ("stx ptr1+1"), \
__asm__ ("ldx $01"), \
__asm__ ("lda #$0F"), \
__asm__ ("sta $01"), \
__asm__ ("ldy #$00"), \
__asm__ ("lda (ptr1),y"), \
__asm__ ("stx $01"), \
__asm__ ("ldx #$00"), \
__AX__
#endif
/* The following #defines will cause the matching functions calls in conio.h
** to be overlaid by macros with the same names, saving the function call
** overhead.
*/
#define _textcolor(color) COLOR_WHITE
#define _bgcolor(color) COLOR_BLACK
#define _bordercolor(color) COLOR_BLACK
/* End of cbm610.h */
#endif
/*****************************************************************************/
/* */
/* _vic.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2002 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __VIC_H
#define __VIC_H
/* Define a structure with the vic register offsets */
struct __vic {
unsigned char leftborder;
unsigned char upperborder;
unsigned char charsperline; /* Characters per line */
unsigned char linecount; /* Number of lines */
unsigned char rasterline; /* Current raster line */
unsigned char addr; /* Address of chargen and video ram */
unsigned char strobe_x; /* Light pen, X position */
unsigned char strobe_y; /* Light pen, Y position */
unsigned char analog_x; /* Analog input X */
unsigned char analog_y; /* Analog input Y */
unsigned char voice1; /* Sound generator #1 */
unsigned char voice2; /* Sound generator #2 */
unsigned char voice3; /* Sound generator #3 */
unsigned char noise; /* Noise generator */
unsigned char volume_color; /* Bits 0..3: volume, 4..7: color */
unsigned char bg_border_color;/* Background and border color */
};
/* End of _vic.h */
#endif
/*****************************************************************************/
/* */
/* pet.h */
/* */
/* PET system specific definitions */
/* */
/* */
/* */
/* (C) 1998-2005 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _PET_H
#define _PET_H
/* Check for errors */
#if !defined(__PET__)
# error This module may only be used when compiling for the CBM PET!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
/* Define hardware */
#include <_pia.h>
#define PIA1 (*(struct __pia*)0xE810)
#define PIA2 (*(struct __pia*)0xE820)
#include <_6522.h>
#define VIA (*(struct __6522*)0xE840)
/* All models from 40xx and above */
#include <_6545.h>
#define CRTC (*(struct __6545)0xE880)
/* SuperPET only */
#include <_6551.h>
#define ACIA (*(struct __6551*)0xEFF0)
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The addresses of the static drivers */
extern void pet_ptvjoy_joy[];
extern void pet_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* The following #defines will cause the matching functions calls in conio.h
** to be overlaid by macros with the same names, saving the function call
** overhead.
*/
#define _textcolor(color) COLOR_WHITE
#define _bgcolor(color) COLOR_BLACK
#define _bordercolor(color) COLOR_BLACK
/* End of pet.h */
#endif
/*****************************************************************************/
/* */
/* gamate.h */
/* */
/* Gamate system specific definitions */
/* */
/* */
/* */
/* (w) 2015 Groepaz/Hitmen (groepaz@gmx.net) */
/* based on technical reference by PeT (mess@utanet.at) */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _GAMATE_H
#define _GAMATE_H
/* Check for errors */
#if !defined(__GAMATE__)
# error This module may only be used when compiling for the Gamate!
#endif
#define AUDIO_BASE 0x4000
/*
base clock cpu clock/32 ?
0/1: 1. channel(right): 12 bit frequency: right frequency 0 nothing, 1 high;
3 23khz; 4 17,3; 10 6,9; 15 4.6; $60 720hz; $eff 18,0; $fff 16,9 hz)
(delay clock/32)
2/3: 2. channel(left): 12 bit frequency
4/5: 3. channel(both): 12 bit frequency
6: 0..5 noise frequency 0 fast 1f slow (about 500us) 15.6ns--> clock/32 counts
7 control (hinibble right)
bit 0: right channel high (full cycle, else square pulse/tone)
bit 1: left channel high
bit 2: both channel high
bit 3: set right tone (else noise)
bit 4: set left channel normal
bit 5: set both normal
bits 30: 11 high, 10 square, 01 noise, 00 noise only when square high
noise means switches channel to ad converter based noise algorithmen
(white noise shift register 17bit wide, repeats after about 130000 cycles)
probably out=!bit16, bit0=bit16 xor bit13; runs through, so start value anything than 0
8: 1st volume: 0..3 square volume; bit 4 envelope (higher priority)
9: 2nd volume
10: 3rd volume
11/12: envelope delay time 0 fast, 0xffff slow/nearly no effect (2 22us, 4 56us)
frequency $800, envelope $10 2 times in pulse high time (4*16*16)
13: envelope control
0-3 one time falling
4-7 one time rising
8 falling
9 one time falling
a starts with down falling, rising; same falling time, but double/longer cycle
b one time falling, on
c rising
d one time rising, on
e rising, falling (double cycle before restart)
f one time rising
bit 0: once only
bit 1: full tone
bit 2: start rising (else falling)
bit 3:
*/
#define JOY_DATA 0x4400
#define JOY_DATA_UP 0x01
#define JOY_DATA_DOWN 0x02
#define JOY_DATA_LEFT 0x04
#define JOY_DATA_RIGHT 0x08
#define JOY_DATA_FIRE_A 0x10
#define JOY_DATA_FIRE_B 0x20
#define JOY_DATA_START 0x40
#define JOY_DATA_SELECT 0x80
/* LCD
resolution 160x152 in 4 greys/greens
2 256x256 sized bitplanes (2x 8kbyte ram)
*/
#define LCD_BASE 0x5000
#define LCD_MODE 0x5001
/*
bit 3..0 (from zeropage 15)
bit 0 set no normal screen display, seldom scrolling effects on screen;
bytes written to somewhat actual display refresh position!?
bytes read "random"
bit 1,2,3 no effect
bit 4 swaps plane intensity
bit 5 ? display effect
bit 6 on y auto increment (else auto x increment), reading
bit 7 ? lcd flickering
*/
#define LCD_MODE_INC_Y 0x40
#define LCD_XPOS 0x5002 /* smooth scrolling X */
#define LCD_YPOS 0x5003 /* smooth scrolling Y */
/*
smooth scrolling until $c8 with 200 limit
after 200 display if ((value & 0xf) < 8) display of (value & 0xf) - 8
chaos lines from value + current line from plane 2 only then lines starting
with zero (problematic 200 limit/overrun implementation!?)
*/
#define LCD_X 0x5004 /* x-addr */
/*
bit 5,6 no effect
bit 7 0 1st/1 2nd bitplane
*/
#define LCD_XPOS_PLANE1 0x00
#define LCD_XPOS_PLANE2 0x80
#define LCD_Y 0x5005 /* y-addr */
#define LCD_READ 0x5006 /* read from RAM (no auto inc?) */
#define LCD_DATA 0x5007 /* write to RAM */
/* BIOS zeropage usage */
/* locations 0x0a-0x0c, 0x0e-0x11 and 0xe8 are in use by the BIOS IRQ/NMI handlers */
#define ZP_NMI_4800 0x0a /* content of I/O reg 4800 gets copied here each NMI */
#define ZP_IRQ_COUNT 0x0b /* increments once per IRQ, used elsewhere in the
BIOS for synchronisation purposes */
#define ZP_IRQ_CTRL 0x0c /* if 0 then cartridge irq stubs will not get called */
/* each of the following 4 increments by 1 per IRQ - it is _not_ a 32bit
counter (see code at $ffa6 in BIOS)
these are not used elsewhere in the bios and can be (re)set as needed by
the user.
*/
#define ZP_IRQ_CNT1 0x0e
#define ZP_IRQ_CNT2 0x0f
#define ZP_IRQ_CNT3 0x10
#define ZP_IRQ_CNT4 0x11
#define ZP_NMI_FLAG 0xe8 /* set to 0xff each NMI */
/* constants for the conio implementation */
#define COLOR_BLACK 0x03
#define COLOR_WHITE 0x00
#define CH_HLINE 1
#define CH_VLINE 2
#define CH_CROSS 3
#define CH_ULCORNER 4
#define CH_URCORNER 5
#define CH_LLCORNER 6
#define CH_LRCORNER 7
#define CH_TTEE 8
#define CH_BTEE 9
#define CH_RTEE 11
#define CH_LTEE 12
#define CH_ENTER 13
#define CH_PI 18
#define TV_NTSC 0
#define TV_PAL 1
#define TV_OTHER 2
/* No support for dynamically loadable drivers */
#define DYN_DRV 0
/* The addresses of the static drivers */
extern void gamate_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
#define JOY_FIRE_B 5
#define JOY_START 6
#define JOY_SELECT 7
void waitvblank (void);
/* Wait for the vertical blanking */
/* NOTE: all Gamate are "NTSC" */
#define get_tv() TV_NTSC
/* Return the video mode the machine is using. */
/* End of gamate.h */
#endif
/*****************************************************************************/
/* */
/* _antic.h */
/* */
/* Internal include file, do not use directly */
/* */
/* */
/* */
/* (C) 2000 Freddy Offenga <taf_offenga@yahoo.com> */
/* 24-Jan-2011: Christian Krueger: Added defines for Antic instruction set */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef __ANTIC_H
#define __ANTIC_H
/* Define a structure with the antic register offsets */
struct __antic {
unsigned char dmactl; /* direct memory access control */
unsigned char chactl; /* character mode control */
unsigned char dlistl; /* display list pointer low-byte */
unsigned char dlisth; /* display list pointer high-byte */
unsigned char hscrol; /* horizontal scroll enable */
unsigned char vscrol; /* vertical scroll enable */
unsigned char unuse0; /* unused */
unsigned char pmbase; /* msb of p/m base address */
unsigned char unuse1; /* unused */
unsigned char chbase; /* character base address */
unsigned char wsync; /* wait for horizontal synchronization */
unsigned char vcount; /* vertical line counter */
unsigned char penh; /* light pen horizontal position */
unsigned char penv; /* light pen vertical position */
unsigned char nmien; /* non-maskable interrupt enable */
unsigned char nmires; /* nmi reset/status */
};
/* antic instruction set */
/* absolute instructions (non mode lines) */
#define DL_JMP 1
#define DL_JVB 65
#define DL_BLK1 0
#define DL_BLK2 16
#define DL_BLK3 32
#define DL_BLK4 48
#define DL_BLK5 64
#define DL_BLK6 80
#define DL_BLK7 96
#define DL_BLK8 112
/* absolute instructions (mode lines) */
#define DL_CHR40x8x1 2 /* monochrome, 40 character & 8 scanlines per mode line (GR. 0) */
#define DL_CHR40x10x1 3 /* monochrome, 40 character & 10 scanlines per mode line */
#define DL_CHR40x8x4 4 /* colour, 40 character & 8 scanlines per mode line (GR. 12) */
#define DL_CHR40x16x4 5 /* colour, 40 character & 16 scanlines per mode line (GR. 13) */
#define DL_CHR20x8x2 6 /* colour (duochrome per character), 20 character & 8 scanlines per mode line (GR. 1) */
#define DL_CHR20x16x2 7 /* colour (duochrome per character), 20 character & 16 scanlines per mode line (GR. 2) */
#define DL_MAP40x8x4 8 /* colour, 40 pixel & 8 scanlines per mode line (GR. 3) */
#define DL_MAP80x4x2 9 /* 'duochrome', 80 pixel & 4 scanlines per mode line (GR.4) */
#define DL_MAP80x4x4 10 /* colour, 80 pixel & 4 scanlines per mode line (GR.5) */
#define DL_MAP160x2x2 11 /* 'duochrome', 160 pixel & 2 scanlines per mode line (GR.6) */
#define DL_MAP160x1x2 12 /* 'duochrome', 160 pixel & 1 scanline per mode line (GR.14) */
#define DL_MAP160x2x4 13 /* 4 colours, 160 pixel & 2 scanlines per mode line (GR.7) */
#define DL_MAP160x1x4 14 /* 4 colours, 160 pixel & 1 scanline per mode line (GR.15) */
#define DL_MAP320x1x1 15 /* monochrome, 320 pixel & 1 scanline per mode line (GR.8) */
/* modifiers on mode lines */
#define DL_HSCROL 16
#define DL_VSCROL 32
#define DL_LMS 64
/* general modifier */
#define DL_DLI 128
/* End of _antic.h */
#endif /* #ifndef __ANTIC_H */
/*****************************************************************************/
/* */
/* atari5200.h */
/* */
/* Atari 5200 system specific definitions */
/* */
/* */
/* */
/* (C) 2014 Christian Groessler <chris@groessler.org> */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _ATARI5200_H
#define _ATARI5200_H
/* Check for errors */
#if !defined(__ATARI5200__)
# error This module may only be used when compiling for the Atari 5200!
#endif
/* no support for dynamically loadable drivers */
#define DYN_DRV 0
/* the addresses of the static drivers */
extern void atr5200std_joy[]; /* referred to by joy_static_stddrv[] */
/* make GTIA color value */
#define _gtia_mkcolor(hue,lum) (((hue) << 4) | ((lum) << 1))
/* luminance values go from 0 (black) to 7 (white) */
/* hue values */
#define HUE_GREY 0
#define HUE_GOLD 1
#define HUE_GOLDORANGE 2
#define HUE_REDORANGE 3
#define HUE_ORANGE 4
#define HUE_MAGENTA 5
#define HUE_PURPLE 6
#define HUE_BLUE 7
#define HUE_BLUE2 8
#define HUE_CYAN 9
#define HUE_BLUEGREEN 10
#define HUE_BLUEGREEN2 11
#define HUE_GREEN 12
#define HUE_YELLOWGREEN 13
#define HUE_YELLOW 14
#define HUE_YELLOWRED 15
/* Color defines, similar to c64 colors (untested) */
#define COLOR_BLACK _gtia_mkcolor(HUE_GREY,0)
#define COLOR_WHITE _gtia_mkcolor(HUE_GREY,7)
#define COLOR_RED _gtia_mkcolor(HUE_REDORANGE,1)
#define COLOR_CYAN _gtia_mkcolor(HUE_CYAN,3)
#define COLOR_VIOLET _gtia_mkcolor(HUE_PURPLE,4)
#define COLOR_GREEN _gtia_mkcolor(HUE_GREEN,2)
#define COLOR_BLUE _gtia_mkcolor(HUE_BLUE,2)
#define COLOR_YELLOW _gtia_mkcolor(HUE_YELLOW,7)
#define COLOR_ORANGE _gtia_mkcolor(HUE_ORANGE,5)
#define COLOR_BROWN _gtia_mkcolor(HUE_YELLOW,2)
#define COLOR_LIGHTRED _gtia_mkcolor(HUE_REDORANGE,6)
#define COLOR_GRAY1 _gtia_mkcolor(HUE_GREY,2)
#define COLOR_GRAY2 _gtia_mkcolor(HUE_GREY,3)
#define COLOR_LIGHTGREEN _gtia_mkcolor(HUE_GREEN,6)
#define COLOR_LIGHTBLUE _gtia_mkcolor(HUE_BLUE,6)
#define COLOR_GRAY3 _gtia_mkcolor(HUE_GREY,5)
/* get_tv return values */
#define AT_NTSC 0
#define AT_PAL 1
/* Define hardware */
#include <_gtia.h>
#define GTIA_READ (*(struct __gtia_read*)0xC000)
#define GTIA_WRITE (*(struct __gtia_write*)0xC000)
#include <_pokey.h>
#define POKEY_READ (*(struct __pokey_read*)0xE800)
#define POKEY_WRITE (*(struct __pokey_write*)0xE800)
#include <_antic.h>
#define ANTIC (*(struct __antic*)0xD400)
/* End of atari5200.h */
#endif /* #ifndef _ATARI5200_H */
/*****************************************************************************/
/* */
/* c16.h */
/* */
/* C16 system specific definitions */
/* */
/* */
/* */
/* (C) 2002 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _C16_H
#define _C16_H
/* Check for errors */
#if !defined(__C16__)
# error This module may only be used when compiling for the C16!
#endif
/* Include the base header file for the 264 series. include file.
*/
#ifndef _CBM264_H
#include <cbm264.h>
#endif
/* The addresses of the static drivers */
extern void c16_ram_emd[];
extern void c16_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
/* End of c16.h */
#endif
/*****************************************************************************/
/* */
/* c64.h */
/* */
/* C64 system-specific definitions */
/* */
/* */
/* */
/* (C) 1998-2013 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _C64_H
#define _C64_H
/* Check for errors */
#if !defined(__C64__)
# error This module may only be used when compiling for the C64!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Additional key defines */
#define CH_F1 133
#define CH_F2 137
#define CH_F3 134
#define CH_F4 138
#define CH_F5 135
#define CH_F6 139
#define CH_F7 136
#define CH_F8 140
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
#define COLOR_RED 0x02
#define COLOR_CYAN 0x03
#define COLOR_VIOLET 0x04
#define COLOR_PURPLE COLOR_VIOLET
#define COLOR_GREEN 0x05
#define COLOR_BLUE 0x06
#define COLOR_YELLOW 0x07
#define COLOR_ORANGE 0x08
#define COLOR_BROWN 0x09
#define COLOR_LIGHTRED 0x0A
#define COLOR_GRAY1 0x0B
#define COLOR_GRAY2 0x0C
#define COLOR_LIGHTGREEN 0x0D
#define COLOR_LIGHTBLUE 0x0E
#define COLOR_GRAY3 0x0F
/* TGI color defines */
#define TGI_COLOR_BLACK COLOR_BLACK
#define TGI_COLOR_WHITE COLOR_WHITE
#define TGI_COLOR_RED COLOR_RED
#define TGI_COLOR_CYAN COLOR_CYAN
#define TGI_COLOR_VIOLET COLOR_VIOLET
#define TGI_COLOR_PURPLE COLOR_PURPLE
#define TGI_COLOR_GREEN COLOR_GREEN
#define TGI_COLOR_BLUE COLOR_BLUE
#define TGI_COLOR_YELLOW COLOR_YELLOW
#define TGI_COLOR_ORANGE COLOR_ORANGE
#define TGI_COLOR_BROWN COLOR_BROWN
#define TGI_COLOR_LIGHTRED COLOR_LIGHTRED
#define TGI_COLOR_GRAY1 COLOR_GRAY1
#define TGI_COLOR_GRAY2 COLOR_GRAY2
#define TGI_COLOR_LIGHTGREEN COLOR_LIGHTGREEN
#define TGI_COLOR_LIGHTBLUE COLOR_LIGHTBLUE
#define TGI_COLOR_GRAY3 COLOR_GRAY3
/* Define hardware */
#include <_vic2.h>
#define VIC (*(struct __vic2*)0xD000)
#include <_sid.h>
#define SID (*(struct __sid*)0xD400)
#include <_6526.h>
#define CIA1 (*(struct __6526*)0xDC00)
#define CIA2 (*(struct __6526*)0xDD00)
/* Define special memory areas */
#define COLOR_RAM ((unsigned char*)0xD800)
/* Return codes for get_ostype */
#define C64_OS_US 0xAA /* US version */
#define C64_OS_PET64 0x64 /* PET 64 */
#define C64_OS_SX64 0x43 /* SX-64 */
#define C64_EU_NEW 0x03
#define C64_EU_OLD 0x00
#define C64_DTV 0xFF /* C64 DTV */
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The addresses of the static drivers */
extern void c64_c256k_emd[];
extern void c64_dqbb_emd[];
extern void c64_georam_emd[];
extern void c64_isepic_emd[];
extern void c64_ram_emd[];
extern void c64_ramcart_emd[];
extern void c64_reu_emd[];
extern void c64_vdc_emd[];
extern void dtv_himem_emd[];
extern void c64_hitjoy_joy[];
extern void c64_numpad_joy[];
extern void c64_ptvjoy_joy[];
extern void c64_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */
extern void c64_1351_mou[]; /* Referred to by mouse_static_stddrv[] */
extern void c64_joy_mou[];
extern void c64_inkwell_mou[];
extern void c64_pot_mou[];
extern void c64_swlink_ser[];
extern void c64_hi_tgi[]; /* Referred to by tgi_static_stddrv[] */
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned char get_ostype (void);
/* Get the ROM version. Returns one of the C64_OS_xxx codes. */
/* End of c64.h */
#endif
/*****************************************************************************/
/* */
/* tgi.h */
/* */
/* Tiny graphics interface */
/* */
/* */
/* */
/* (C) 2002-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _TGI_H
#define _TGI_H
#ifndef _TGI_ERROR_H
#include <tgi/tgi-error.h>
#endif
/*****************************************************************************/
/* Definitions */
/*****************************************************************************/
/* Font constants for use with tgi_settextstyle */
#define TGI_FONT_BITMAP 0
#define TGI_FONT_VECTOR 1
/* Direction constants for use with tgi_settextstyle */
#define TGI_TEXT_HORIZONTAL 0
#define TGI_TEXT_VERTICAL 1
/* The name of the standard tgi driver for a platform */
extern const char tgi_stddrv[];
/* The address of the static standard tgi driver for a platform */
extern const void tgi_static_stddrv[];
/* A vector font definition */
typedef struct tgi_vectorfont tgi_vectorfont;
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
void __fastcall__ tgi_load_driver (const char* name);
/* Load and install the given driver. */
void tgi_unload (void);
/* Uninstall, then unload the currently loaded driver. Will call tgi_done if
** necessary.
*/
void __fastcall__ tgi_install (void* driver);
/* Install an already loaded driver. */
void tgi_uninstall (void);
/* Uninstall the currently loaded driver but do not unload it. Will call
** tgi_done if necessary.
*/
void tgi_init (void);
/* Initialize the already loaded graphics driver. */
void tgi_done (void);
/* End graphics mode, switch back to text mode. Will NOT uninstall or unload
** the driver!
*/
const tgi_vectorfont* __fastcall__ tgi_load_vectorfont (const char* name);
/* Load a vector font into memory and return it. In case of errors, NULL is
** returned and an error is set, which can be retrieved using tgi_geterror.
** To use the font, it has to be installed using tgi_install_vectorfont.
*/
void __fastcall__ tgi_install_vectorfont (const tgi_vectorfont* font);
/* Install a vector font for use. More than one vector font can be loaded,
** but only one can be active. This function is used to tell which one. Call
** with a NULL pointer to uninstall the currently installed font.
*/
void __fastcall__ tgi_free_vectorfont (const tgi_vectorfont* font);
/* Free a vector font that was previously loaded into memory. */
unsigned char tgi_geterror (void);
/* Return the error code for the last operation. This will also clear the
** error.
*/
const char* __fastcall__ tgi_geterrormsg (unsigned char code);
/* Get an error message describing the error in code. */
void tgi_clear (void);
/* Clear the drawpage. */
unsigned tgi_getpagecount (void);
/* Returns the number of screen pages available. */
void __fastcall__ tgi_setviewpage (unsigned char page);
/* Set the visible page. Will set an error if the page is not available. */
void __fastcall__ tgi_setdrawpage (unsigned char page);
/* Set the drawable page. Will set an error if the page is not available. */
unsigned char tgi_getcolorcount (void);
/* Get the number of available colors. */
unsigned char tgi_getmaxcolor (void);
/* Return the maximum supported color number (the number of colors would
** then be getmaxcolor()+1).
*/
void __fastcall__ tgi_setcolor (unsigned char color);
/* Set the current drawing color. */
unsigned char tgi_getcolor (void);
/* Return the current drawing color. */
void __fastcall__ tgi_setpalette (const unsigned char* palette);
/* Set the palette (not available with all drivers/hardware). palette is
** a pointer to as many entries as there are colors.
*/
const unsigned char* tgi_getpalette (void);
/* Return the current palette. */
const unsigned char* tgi_getdefpalette (void);
/* Return the default palette. */
unsigned tgi_getxres (void);
/* Return the resolution in X direction. */
unsigned tgi_getmaxx (void);
/* Return the maximum x coordinate. The resolution in x direction is
** getmaxx() + 1
*/
unsigned tgi_getyres (void);
/* Return the resolution in Y direction. */
unsigned tgi_getmaxy (void);
/* Return the maximum y coordinate. The resolution in y direction is
** getmaxy() + 1
*/
unsigned tgi_getaspectratio (void);
/* Returns the aspect ratio for the loaded driver. The aspect ratio is an
** 8.8 fixed point value.
*/
void __fastcall__ tgi_setaspectratio (unsigned aspectratio);
/* Set a new aspect ratio for the loaded driver. The aspect ratio is an
** 8.8 fixed point value.
*/
unsigned char __fastcall__ tgi_getpixel (int x, int y);
/* Get the color value of a pixel. */
void __fastcall__ tgi_setpixel (int x, int y);
/* Plot a pixel in the current drawing color. */
void __fastcall__ tgi_gotoxy (int x, int y);
/* Set the graphics cursor to the given position. */
void __fastcall__ tgi_line (int x1, int y1, int x2, int y2);
/* Draw a line in the current drawing color. The graphics cursor will
** be set to x2/y2 by this call.
*/
void __fastcall__ tgi_lineto (int x2, int y2);
/* Draw a line in the current drawing color from the graphics cursor to the
** new end point. The graphics cursor will be updated to x2/y2.
*/
void __fastcall__ tgi_circle (int x, int y, unsigned char radius);
/* Draw a circle in the current drawing color. */
void __fastcall__ tgi_ellipse (int x, int y, unsigned char rx, unsigned char ry);
/* Draw a full ellipse with center at x/y and radii rx/ry using the current
** drawing color.
*/
void __fastcall__ tgi_arc (int x, int y, unsigned char rx, unsigned char ry,
unsigned sa, unsigned ea);
/* Draw an ellipse arc with center at x/y and radii rx/ry using the current
** drawing color. The arc covers the angle between sa and ea (startangle and
** endangle), which must be in the range 0..360 (otherwise the function may
** bevave unextectedly).
*/
void __fastcall__ tgi_pieslice (int x, int y, unsigned char rx, unsigned char ry,
unsigned sa, unsigned ea);
/* Draw an ellipse pie slice with center at x/y and radii rx/ry using the
** current drawing color. The pie slice covers the angle between sa and ea
** (startangle and endangle), which must be in the range 0..360 (otherwise the
** function may behave unextectedly).
*/
void __fastcall__ tgi_bar (int x1, int y1, int x2, int y2);
/* Draw a bar (a filled rectangle) using the current color. */
void __fastcall__ tgi_settextdir (unsigned char dir);
/* Set the direction for text output. dir is one of the TGI_TEXT_XXX
** constants.
*/
void __fastcall__ tgi_settextscale (unsigned width, unsigned height);
/* Set the scaling for text output. The scaling factors for width and height
** are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
*/
void __fastcall__ tgi_settextstyle (unsigned width, unsigned height,
unsigned char dir, unsigned char font);
/* Set the style for text output. The scaling factors for width and height
** are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
** dir is one of the TGI_TEXT_XXX constants. font is one of the TGI_FONT_XXX
** constants.
*/
unsigned __fastcall__ tgi_gettextwidth (const char* s);
/* Calculate the width of the text in pixels according to the current text
** style.
*/
unsigned __fastcall__ tgi_gettextheight (const char* s);
/* Calculate the height of the text in pixels according to the current text
** style.
*/
void __fastcall__ tgi_outtext (const char* s);
/* Output text at the current graphics cursor position. The graphics cursor
** is moved to the end of the text.
*/
void __fastcall__ tgi_outtextxy (int x, int y, const char* s);
/* Output text at the given cursor position. The graphics cursor is moved to
** the end of the text.
*/
unsigned __fastcall__ tgi_ioctl (unsigned char code, void* data);
/* Call the driver specific control function. What this function does for
** a specific code depends on the driver. The driver will set an error
** for unknown codes or values.
*/
int __fastcall__ tgi_imulround (int rhs, int lhs);
/* Helper function for functions using sine/cosine: Multiply two values, one
** being an 8.8 fixed point one, and return the rounded and scaled result.
*/
/* End of tgi.h */
#endif
/*****************************************************************************/
/* */
/* cbm510.h */
/* */
/* System-specific definitions for the CBM5x0 / P500 */
/* */
/* */
/* */
/* (C) 2001-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CBM510_H
#define _CBM510_H
/* Check for errors */
#if !defined(__CBM510__)
# error This module may only be used when compiling for the CBM 510!
#endif
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Additional key defines */
#define CH_F1 224
#define CH_F2 225
#define CH_F3 226
#define CH_F4 227
#define CH_F5 228
#define CH_F6 229
#define CH_F7 230
#define CH_F8 231
#define CH_F9 232
#define CH_F10 233
#define CH_F11 234
#define CH_F12 235
#define CH_F13 236
#define CH_F14 237
#define CH_F15 238
#define CH_F16 239
#define CH_F17 240
#define CH_F18 241
#define CH_F19 242
#define CH_F20 243
/* Color defines */
#define COLOR_BLACK 0x00
#define COLOR_WHITE 0x01
#define COLOR_RED 0x02
#define COLOR_CYAN 0x03
#define COLOR_VIOLET 0x04
#define COLOR_PURPLE COLOR_VIOLET
#define COLOR_GREEN 0x05
#define COLOR_BLUE 0x06
#define COLOR_YELLOW 0x07
#define COLOR_ORANGE 0x08
#define COLOR_BROWN 0x09
#define COLOR_LIGHTRED 0x0A
#define COLOR_GRAY1 0x0B
#define COLOR_GRAY2 0x0C
#define COLOR_LIGHTGREEN 0x0D
#define COLOR_LIGHTBLUE 0x0E
#define COLOR_GRAY3 0x0F
/* Define hardware */
#include <_vic2.h>
#define VIC (*(struct __vic2*)0xD800)
#include <_sid.h>
#define SID (*(struct __sid*)0xDA00)
#include <_6526.h>
#define CIA2 (*(struct __6526*)0xDC00)
#include <_6551.h>
#define ACIA (*(struct __6551*)0xDD00)
#include <_6525.h>
#define TPI1 (*(struct __6525*)0xDE00)
#define TPI2 (*(struct __6525*)0xDF00)
/*****************************************************************************/
/* Variables */
/*****************************************************************************/
/* The addresses of the static drivers */
extern void cbm510_inkwl_mou[];
extern void cbm510_joy_mou[]; /* Referred to by mouse_static_stddrv[] */
extern void cbm510_ram_emd[];
extern void cbm510_std_joy[]; /* Referred to by joy_static_stddrv[] */
extern void cbm510_std_ser[];
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* Special routines to read/write bytes and words in the system bank */
unsigned char __fastcall__ peekbsys (unsigned addr);
unsigned __fastcall__ peekwsys (unsigned addr);
void __fastcall__ pokebsys (unsigned addr, unsigned char val);
void __fastcall__ pokewsys (unsigned addr, unsigned val);
#if defined(__OPT_i__) && (__OPT_i__ >= 600)
#define peekbsys(addr) \
__AX__ = (addr), \
__asm__ ("sta ptr1"), \
__asm__ ("stx ptr1+1"), \
__asm__ ("ldx $01"), \
__asm__ ("lda #$0F"), \
__asm__ ("sta $01"), \
__asm__ ("ldy #$00"), \
__asm__ ("lda (ptr1),y"), \
__asm__ ("stx $01"), \
__asm__ ("ldx #$00"), \
__AX__
#endif
/* End of cbm510.h */
#endif
/*****************************************************************************/
/* */
/* atari_atascii_charmap.h */
/* */
/* Atari system standard string mapping (ISO-8859-1 -> AtASCII) */
/* */
/* */
/* */
/* (C) 2016 Christian Krueger */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* No include guard here! Multiple use in one file may be intentional. */
#pragma charmap (0x00, 0x00)
#pragma charmap (0x01, 0x01)
#pragma charmap (0x02, 0x02)
#pragma charmap (0x03, 0x03)
#pragma charmap (0x04, 0x04)
#pragma charmap (0x05, 0x05)
#pragma charmap (0x06, 0x06)
#pragma charmap (0x07, 0xFD)
#pragma charmap (0x08, 0x08)
#pragma charmap (0x09, 0x7F)
#pragma charmap (0x0A, 0x9B)
#pragma charmap (0x0B, 0x0B)
#pragma charmap (0x0C, 0x7D)
#pragma charmap (0x0D, 0x0D)
#pragma charmap (0x0E, 0x0E)
#pragma charmap (0x0F, 0x0F)
#pragma charmap (0x10, 0x10)
#pragma charmap (0x11, 0x11)
#pragma charmap (0x12, 0x12)
#pragma charmap (0x13, 0x13)
#pragma charmap (0x14, 0x14)
#pragma charmap (0x15, 0x15)
#pragma charmap (0x16, 0x16)
#pragma charmap (0x17, 0x17)
#pragma charmap (0x18, 0x18)
#pragma charmap (0x19, 0x19)
#pragma charmap (0x1A, 0x1A)
#pragma charmap (0x1B, 0x1B)
#pragma charmap (0x1C, 0x1C)
#pragma charmap (0x1D, 0x1D)
#pragma charmap (0x1E, 0x1E)
#pragma charmap (0x1F, 0x1F)
#pragma charmap (0x20, 0x20)
#pragma charmap (0x21, 0x21)
#pragma charmap (0x22, 0x22)
#pragma charmap (0x23, 0x23)
#pragma charmap (0x24, 0x24)
#pragma charmap (0x25, 0x25)
#pragma charmap (0x26, 0x26)
#pragma charmap (0x27, 0x27)
#pragma charmap (0x28, 0x28)
#pragma charmap (0x29, 0x29)
#pragma charmap (0x2A, 0x2A)
#pragma charmap (0x2B, 0x2B)
#pragma charmap (0x2C, 0x2C)
#pragma charmap (0x2D, 0x2D)
#pragma charmap (0x2E, 0x2E)
#pragma charmap (0x2F, 0x2F)
#pragma charmap (0x30, 0x30)
#pragma charmap (0x31, 0x31)
#pragma charmap (0x32, 0x32)
#pragma charmap (0x33, 0x33)
#pragma charmap (0x34, 0x34)
#pragma charmap (0x35, 0x35)
#pragma charmap (0x36, 0x36)
#pragma charmap (0x37, 0x37)
#pragma charmap (0x38, 0x38)
#pragma charmap (0x39, 0x39)
#pragma charmap (0x3A, 0x3A)
#pragma charmap (0x3B, 0x3B)
#pragma charmap (0x3C, 0x3C)
#pragma charmap (0x3D, 0x3D)
#pragma charmap (0x3E, 0x3E)
#pragma charmap (0x3F, 0x3F)
#pragma charmap (0x40, 0x40)
#pragma charmap (0x41, 0x41)
#pragma charmap (0x42, 0x42)
#pragma charmap (0x43, 0x43)
#pragma charmap (0x44, 0x44)
#pragma charmap (0x45, 0x45)
#pragma charmap (0x46, 0x46)
#pragma charmap (0x47, 0x47)
#pragma charmap (0x48, 0x48)
#pragma charmap (0x49, 0x49)
#pragma charmap (0x4A, 0x4A)
#pragma charmap (0x4B, 0x4B)
#pragma charmap (0x4C, 0x4C)
#pragma charmap (0x4D, 0x4D)
#pragma charmap (0x4E, 0x4E)
#pragma charmap (0x4F, 0x4F)
#pragma charmap (0x50, 0x50)
#pragma charmap (0x51, 0x51)
#pragma charmap (0x52, 0x52)
#pragma charmap (0x53, 0x53)
#pragma charmap (0x54, 0x54)
#pragma charmap (0x55, 0x55)
#pragma charmap (0x56, 0x56)
#pragma charmap (0x57, 0x57)
#pragma charmap (0x58, 0x58)
#pragma charmap (0x59, 0x59)
#pragma charmap (0x5A, 0x5A)
#pragma charmap (0x5B, 0x5B)
#pragma charmap (0x5C, 0x5C)
#pragma charmap (0x5D, 0x5D)
#pragma charmap (0x5E, 0x5E)
#pragma charmap (0x5F, 0x5F)
#pragma charmap (0x60, 0x60)
#pragma charmap (0x61, 0x61)
#pragma charmap (0x62, 0x62)
#pragma charmap (0x63, 0x63)
#pragma charmap (0x64, 0x64)
#pragma charmap (0x65, 0x65)
#pragma charmap (0x66, 0x66)
#pragma charmap (0x67, 0x67)
#pragma charmap (0x68, 0x68)
#pragma charmap (0x69, 0x69)
#pragma charmap (0x6A, 0x6A)
#pragma charmap (0x6B, 0x6B)
#pragma charmap (0x6C, 0x6C)
#pragma charmap (0x6D, 0x6D)
#pragma charmap (0x6E, 0x6E)
#pragma charmap (0x6F, 0x6F)
#pragma charmap (0x70, 0x70)
#pragma charmap (0x71, 0x71)
#pragma charmap (0x72, 0x72)
#pragma charmap (0x73, 0x73)
#pragma charmap (0x74, 0x74)
#pragma charmap (0x75, 0x75)
#pragma charmap (0x76, 0x76)
#pragma charmap (0x77, 0x77)
#pragma charmap (0x78, 0x78)
#pragma charmap (0x79, 0x79)
#pragma charmap (0x7A, 0x7A)
#pragma charmap (0x7B, 0x7B)
#pragma charmap (0x7C, 0x7C)
#pragma charmap (0x7D, 0x7D)
#pragma charmap (0x7E, 0x7E)
#pragma charmap (0x7F, 0x7F)
#pragma charmap (0x80, 0x80)
#pragma charmap (0x81, 0x81)
#pragma charmap (0x82, 0x82)
#pragma charmap (0x83, 0x83)
#pragma charmap (0x84, 0x84)
#pragma charmap (0x85, 0x85)
#pragma charmap (0x86, 0x86)
#pragma charmap (0x87, 0x87)
#pragma charmap (0x88, 0x88)
#pragma charmap (0x89, 0x89)
#pragma charmap (0x8A, 0x8A)
#pragma charmap (0x8B, 0x8B)
#pragma charmap (0x8C, 0x8C)
#pragma charmap (0x8D, 0x8D)
#pragma charmap (0x8E, 0x8E)
#pragma charmap (0x8F, 0x8F)
#pragma charmap (0x90, 0x90)
#pragma charmap (0x91, 0x91)
#pragma charmap (0x92, 0x92)
#pragma charmap (0x93, 0x93)
#pragma charmap (0x94, 0x94)
#pragma charmap (0x95, 0x95)
#pragma charmap (0x96, 0x96)
#pragma charmap (0x97, 0x97)
#pragma charmap (0x98, 0x98)
#pragma charmap (0x99, 0x99)
#pragma charmap (0x9A, 0x9A)
#pragma charmap (0x9B, 0x9B)
#pragma charmap (0x9C, 0x9C)
#pragma charmap (0x9D, 0x9D)
#pragma charmap (0x9E, 0x9E)
#pragma charmap (0x9F, 0x9F)
#pragma charmap (0xA0, 0xA0)
#pragma charmap (0xA1, 0xA1)
#pragma charmap (0xA2, 0xA2)
#pragma charmap (0xA3, 0xA3)
#pragma charmap (0xA4, 0xA4)
#pragma charmap (0xA5, 0xA5)
#pragma charmap (0xA6, 0xA6)
#pragma charmap (0xA7, 0xA7)
#pragma charmap (0xA8, 0xA8)
#pragma charmap (0xA9, 0xA9)
#pragma charmap (0xAA, 0xAA)
#pragma charmap (0xAB, 0xAB)
#pragma charmap (0xAC, 0xAC)
#pragma charmap (0xAD, 0xAD)
#pragma charmap (0xAE, 0xAE)
#pragma charmap (0xAF, 0xAF)
#pragma charmap (0xB0, 0xB0)
#pragma charmap (0xB1, 0xB1)
#pragma charmap (0xB2, 0xB2)
#pragma charmap (0xB3, 0xB3)
#pragma charmap (0xB4, 0xB4)
#pragma charmap (0xB5, 0xB5)
#pragma charmap (0xB6, 0xB6)
#pragma charmap (0xB7, 0xB7)
#pragma charmap (0xB8, 0xB8)
#pragma charmap (0xB9, 0xB9)
#pragma charmap (0xBA, 0xBA)
#pragma charmap (0xBB, 0xBB)
#pragma charmap (0xBC, 0xBC)
#pragma charmap (0xBD, 0xBD)
#pragma charmap (0xBE, 0xBE)
#pragma charmap (0xBF, 0xBF)
#pragma charmap (0xC0, 0xC0)
#pragma charmap (0xC1, 0xC1)
#pragma charmap (0xC2, 0xC2)
#pragma charmap (0xC3, 0xC3)
#pragma charmap (0xC4, 0xC4)
#pragma charmap (0xC5, 0xC5)
#pragma charmap (0xC6, 0xC6)
#pragma charmap (0xC7, 0xC7)
#pragma charmap (0xC8, 0xC8)
#pragma charmap (0xC9, 0xC9)
#pragma charmap (0xCA, 0xCA)
#pragma charmap (0xCB, 0xCB)
#pragma charmap (0xCC, 0xCC)
#pragma charmap (0xCD, 0xCD)
#pragma charmap (0xCE, 0xCE)
#pragma charmap (0xCF, 0xCF)
#pragma charmap (0xD0, 0xD0)
#pragma charmap (0xD1, 0xD1)
#pragma charmap (0xD2, 0xD2)
#pragma charmap (0xD3, 0xD3)
#pragma charmap (0xD4, 0xD4)
#pragma charmap (0xD5, 0xD5)
#pragma charmap (0xD6, 0xD6)
#pragma charmap (0xD7, 0xD7)
#pragma charmap (0xD8, 0xD8)
#pragma charmap (0xD9, 0xD9)
#pragma charmap (0xDA, 0xDA)
#pragma charmap (0xDB, 0xDB)
#pragma charmap (0xDC, 0xDC)
#pragma charmap (0xDD, 0xDD)
#pragma charmap (0xDE, 0xDE)
#pragma charmap (0xDF, 0xDF)
#pragma charmap (0xE0, 0xE0)
#pragma charmap (0xE1, 0xE1)
#pragma charmap (0xE2, 0xE2)
#pragma charmap (0xE3, 0xE3)
#pragma charmap (0xE4, 0xE4)
#pragma charmap (0xE5, 0xE5)
#pragma charmap (0xE6, 0xE6)
#pragma charmap (0xE7, 0xE7)
#pragma charmap (0xE8, 0xE8)
#pragma charmap (0xE9, 0xE9)
#pragma charmap (0xEA, 0xEA)
#pragma charmap (0xEB, 0xEB)
#pragma charmap (0xEC, 0xEC)
#pragma charmap (0xED, 0xED)
#pragma charmap (0xEE, 0xEE)
#pragma charmap (0xEF, 0xEF)
#pragma charmap (0xF0, 0xF0)
#pragma charmap (0xF1, 0xF1)
#pragma charmap (0xF2, 0xF2)
#pragma charmap (0xF3, 0xF3)
#pragma charmap (0xF4, 0xF4)
#pragma charmap (0xF5, 0xF5)
#pragma charmap (0xF6, 0xF6)
#pragma charmap (0xF7, 0xF7)
#pragma charmap (0xF8, 0xF8)
#pragma charmap (0xF9, 0xF9)
#pragma charmap (0xFA, 0xFA)
#pragma charmap (0xFB, 0xFB)
#pragma charmap (0xFC, 0xFC)
#pragma charmap (0xFD, 0xFD)
#pragma charmap (0xFE, 0xFE)
#pragma charmap (0xFF, 0xFF)
/*****************************************************************************/
/* */
/* em-kernel.h */
/* */
/* Internally used EM functions */
/* */
/* */
/* */
/* (C) 2002-2003 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _EM_KERNEL_H
#define _EM_KERNEL_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* A structure that describes the header of an extended memory driver loaded
** into memory.
*/
typedef struct {
/* Driver header */
char id[3]; /* Contains 0x65, 0x6d, 0x64 ("emd") */
unsigned char version; /* Interface version */
/* Jump vectors. Note that these are not C callable */
void* install; /* INSTALL routine */
void* deinstall; /* DEINSTALL routine */
void* pagecount; /* PAGECOUNT routine */
void* map; /* MAP routine */
void* use; /* USE routine */
void* mapclean; /* MAPCLEAN routine */
void* copyfrom; /* COPYFROM routine */
void* copyto; /* COPYTO routine */
} em_drv_header;
/* EM kernel variables */
extern em_drv_header* em_drv; /* Pointer to driver */
/* End of em-kernel.h */
#endif
/*****************************************************************************/
/* */
/* mouse-kernel.h */
/* */
/* Internally used mouse functions */
/* */
/* */
/* */
/* (C) 2003-2006, Ullrich von Bassewitz */
/* R<>merstra<72>e 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _MOUSE_KERNEL_H
#define _MOUSE_KERNEL_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Mouse kernel variables */
extern void* mouse_drv; /* Pointer to driver */
/*****************************************************************************/
/* Code */
/*****************************************************************************/
void mouse_clear_ptr (void);
/* Clear the mouse_drv pointer */
/* End of mouse-kernel.h */
#endif
/*****************************************************************************/
/* */
/* tgi-vectorfont.h */
/* */
/* TGI vector font definitions */
/* */
/* */
/* */
/* (C) 2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _TGI_VECTORFONT_H
#define _TGI_VECTORFONT_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
#define TGI_VF_FIRSTCHAR 0x20 /* First char in file */
#define TGI_VF_LASTCHAR 0x7E /* Last char in file */
#define TGI_VF_CCOUNT (TGI_VF_LASTCHAR - TGI_VF_FIRSTCHAR + 1)
#define TGI_VF_VERSION 0x00 /* File version number */
/* TCH file header */
typedef struct tgi_vectorfont_header tgi_vectorfont_header;
struct tgi_vectorfont_header {
unsigned char magic[3]; /* "TCH" */
unsigned char version; /* Version number */
unsigned size; /* Font data size */
};
/* Font data loaded directly from file */
struct tgi_vectorfont {
unsigned char top; /* Height of char */
unsigned char baseline; /* Character baseline */
unsigned char bottom; /* Descender */
unsigned char widths[TGI_VF_CCOUNT]; /* Char widths */
unsigned char* chars[TGI_VF_CCOUNT]; /* Pointer to character defs */
unsigned char vec_ops[1]; /* Actually dynamic */
};
/*****************************************************************************/
/* Code */
/*****************************************************************************/
void __fastcall__ tgi_vectorchar (char C);
/* Draw one character of the vector font at the current graphics cursor
** position using the current font magnification.
*/
/* End of tgi-vectorfont.h */
#endif
/*****************************************************************************/
/* */
/* tgi-kernel.h */
/* */
/* TGI kernel interface */
/* */
/* */
/* */
/* (C) 2002-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _TGI_KERNEL_H
#define _TGI_KERNEL_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* TGI kernel variables */
extern void* tgi_drv; /* Pointer to driver */
extern unsigned char tgi_error; /* Last error code */
extern unsigned char tgi_gmode; /* Flag: Graphics mode active */
extern int tgi_curx; /* Current drawing cursor X */
extern int tgi_cury; /* Current drawing cursor Y */
extern unsigned char tgi_color; /* Current drawing color */
extern unsigned char tgi_font; /* Current font type */
extern unsigned tgi_xres; /* X resolution of the current mode */
extern unsigned tgi_yres; /* Y resolution of the current mode */
extern unsigned char tgi_colorcount; /* Number of available colors */
extern unsigned char tgi_pagecount; /* Number of available screens */
extern unsigned char tgi_fontwidth; /* System font width in pixels */
extern unsigned char tgi_fontheight; /* System font height in pixels */
extern unsigned tgi_aspectratio; /* Aspect ratio as fixed point 8.8 */
extern unsigned char tgi_flags; /* TGI driver flags */
extern unsigned tgi_textscalew[2]; /* Vector/bitmap font scale 8.8 */
extern unsigned tgi_textscaleh[2]; /* Vector/bitmap font scale 8.8 */
extern unsigned tgi_charwidth; /* Width of scaled bitmap font */
extern unsigned tgi_charheight; /* Height of scaled bitmap font */
/* End of tgi-kernel.h */
#endif
/*****************************************************************************/
/* */
/* tgi-error.h */
/* */
/* TGI error codes */
/* */
/* */
/* */
/* (C) 2002-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _TGI_ERROR_H
#define _TGI_ERROR_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
#define TGI_ERR_OK 0 /* No error */
#define TGI_ERR_NO_DRIVER 1 /* No driver available */
#define TGI_ERR_CANNOT_LOAD 2 /* Error loading driver or font */
#define TGI_ERR_INV_DRIVER 3 /* Invalid driver */
#define TGI_ERR_INV_MODE 4 /* Mode not supported by driver */
#define TGI_ERR_INV_ARG 5 /* Invalid function argument */
#define TGI_ERR_INV_FUNC 6 /* Function not supported */
#define TGI_ERR_INV_FONT 7 /* Font file is invalid */
#define TGI_ERR_NO_RES 8 /* Out of resources */
#define TGI_ERR_INSTALLED 9 /* A driver is already installed */
/* End of tgi-error.h */
#endif
/*
GEOS mouse and sprite functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GSPRITE_H
#define _GSPRITE_H
void StartMouseMode(void);
void ClearMouseMode(void);
void MouseUp(void);
void MouseOff(void);
char __fastcall__ IsMseInRegion(struct window *region);
void __fastcall__ DrawSprite(char spritenum, const char *spritepic);
void __fastcall__ PosSprite(char spritenum, struct pixel *position);
void __fastcall__ EnablSprite(char spritenum);
void __fastcall__ DisablSprite(char spritenum);
void __fastcall__ InitTextPrompt(char height);
void __fastcall__ PromptOn(struct pixel *position);
void PromptOff(void);
char GetNextChar(void);
/* keyboard constants */
#define KEY_F1 1
#define KEY_F2 2
#define KEY_F3 3
#define KEY_F4 4
#define KEY_F5 5
#define KEY_F6 6
#define KEY_NOSCRL 7
#define KEY_ENTER 13
#define KEY_F7 14
#define KEY_F8 15
#define KEY_HOME 18
#define KEY_CLEAR 19
#define KEY_LARROW 20
#define KEY_UPARROW 21
#define KEY_STOP 22
#define KEY_RUN 23
#define KEY_BPS 24
#define KEY_HELP 25
#define KEY_ALT 26
#define KEY_ESC 27
#define KEY_INSERT 28
#define KEY_INVALID 31
#define KEY_LEFT BACKSPACE
#ifdef __GEOS_CBM__
#define KEY_UP 16
#define KEY_DOWN 17
#define KEY_DELETE 29
#define KEY_RIGHT 30
#else
#define KEY_UP 11
#define KEY_DOWN 10
#define KEY_DELETE 127
#define KEY_RIGHT 21
#endif
/* values of faultData - pointer position vs. mouseWindow */
/* bit numbers */
#define OFFTOP_BIT 7
#define OFFBOTTOM_BIT 6
#define OFFLEFT_BIT 5
#define OFFRIGHT_BIT 4
#define OFFMENU_BIT 3
/* bit masks */
#define SET_OFFTOP 0x80
#define SET_OFFBOTTOM 0x40
#define SET_OFFLEFT 0x20
#define SET_OFFRIGHT 0x10
#define SET_OFFMENU 0x08
/* mouseOn */
/* bit numbers */
#define MOUSEON_BIT 7
#define MENUON_BIT 6
#define ICONSON_BIT 5
/* bit masks */
#define SET_MSE_ON 0x80
#define SET_MENUON 0x40
#define SET_ICONSON 0x20
/* pressFlag */
/* bit numbers */
#define KEYPRESS_BIT 7
#define INPUT_BIT 6
#define MOUSE_BIT 5
/* bit masks */
#define SET_KEYPRESS 0x80
#define SET_INPUTCHG 0x40
#define SET_MOUSE 0x20
#endif
/*
GEOS constants
reassembled by Maciej 'YTM/Elysium' Witkowiak
*/
/* Here are constants which didn't fit into any other cathegory... */
#ifndef _GCONST_H
#define _GCONST_H
#define NULL 0
#define FALSE NULL
#define TRUE 0xff
#define MOUSE_SPRNUM 0
#define DISK_DRV_LGH 0x0d80
/* drivetypes */
#define DRV_NULL 0
#define DRV_1541 1
#define DRV_1571 2
#define DRV_1581 3
#define DRV_NETWORK 15
/* various disk constants */
#define REL_FILE_NUM 9
#define CMND_FILE_NUM 15
#define MAX_CMND_STR 32
#define DIR_1581_TRACK 40
#define DIR_ACC_CHAN 13
#define DIR_TRACK 18
#define N_TRACKS 35
#define DK_NM_ID_LEN 18
#define TRACK 9
#define SECTOR 12
#define TOTAL_BLOCKS 664
/* offset to something */
#define OFF_INDEX_PTR 1
/* values for CPU_DATA memory config - C64 */
#define IO_IN 0x35
#define KRNL_IO_IN 0x36
#define KRNL_BAS_IO_IN 0x37
/* values for MMU config - C128 */
#define CIOIN 0x7E
#define CRAM64K 0x7F
#define CKRNLBASIOIN 0x40
#define CKRNLIOIN 0x4E
/* alarmSetFlag */
#define ALARMMASK 4
#define CLR_SAVE 0x40
#define CONSTRAINED 0x40
#define UN_CONSTRAINED 0
#define FG_SAVE 0x80
#define FUTURE1 7
#define FUTURE2 8
#define FUTURE3 9
#define FUTURE4 10
#define USELAST 127
#define SHORTCUT 128
#endif
/*
GEOS graphic (non icon/menu/sprite) functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GGRAPH_H
#define _GGRAPH_H
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
void __fastcall__ SetPattern(char newpattern);
void __fastcall__ HorizontalLine(char pattern, char y, unsigned xstart, unsigned xend);
void __fastcall__ InvertLine(char y, unsigned xstart, unsigned xend);
void __fastcall__ RecoverLine(char y, unsigned xstart, unsigned xend);
void __fastcall__ VerticalLine(char pattern, char ystart, char yend, unsigned x);
void __fastcall__ InitDrawWindow(struct window *myRectangle);
void Rectangle(void);
void __fastcall__ FrameRectangle(char pattern);
void InvertRectangle(void);
void ImprintRectangle(void);
void RecoverRectangle(void);
void __fastcall__ DrawLine(char mode, struct window *topBotCoords);
void __fastcall__ DrawPoint(char mode, struct pixel *myPixel);
char __fastcall__ TestPoint(struct pixel *myPixel);
void __fastcall__ PutChar(char character, char y, unsigned x);
void __fastcall__ PutString(char *myString, char y, unsigned x);
void __fastcall__ PutDecimal(char style, unsigned value, char y, unsigned x);
char __fastcall__ GetCharWidth(char character);
void __fastcall__ LoadCharSet(struct fontdesc *myFont);
void UseSystemFont(void);
void __fastcall__ BitmapUp(struct iconpic *myIcon);
void __fastcall__ BitmapClip(char skipl, char skipr, unsigned skiptop,
struct iconpic *myIcon);
void __fastcall__ BitOtherClip(void *proc1, void *proc2, char skipl,
char skipr, unsigned skiptop,
struct iconpic *myIcon);
void __fastcall__ GraphicsString(char *myGfxString);
/* VIC colour constants */
#define BLACK 0
#define WHITE 1
#define RED 2
#define CYAN 3
#define PURPLE 4
#define GREEN 5
#define BLUE 6
#define YELLOW 7
#define ORANGE 8
#define BROWN 9
#define LTRED 10
#define DKGREY 11
#define GREY 12
#define MEDGREY 12
#define LTGREEN 13
#define LTBLUE 14
#define LTGREY 15
/* VIC memory banks - lowest 2 bits of cia2base+0 */
#define GRBANK0 3
#define GRBANK1 2
#define GRBANK2 1
#define GRBANK3 0
/* VIC screen sizes */
#define VIC_X_POS_OFF 24
#define VIC_Y_POS_OFF 50
#ifdef __GEOS_CBM__
#define SC_BYTE_WIDTH 40
#define SC_PIX_HEIGHT 200
#define SC_PIX_WIDTH 320
#define SC_SIZE 8000
#else
#define SC_BYTE_WIDTH 70
#define SC_PIX_HEIGHT 192
#define SC_PIX_WIDTH 560
#define SC_SIZE 13440
#endif
/* VDC screen constants */
#define SCREENBYTEWIDTH 80
#define SCREENPIXELWIDTH 640
/* control characters for use as numbers, not characters */
#define BACKSPACE 8
#define FORWARDSPACE 9
#define TAB 9
#define LF 10
#define HOME 11
#define PAGE_BREAK 12
#define UPLINE 12
#define CR 13
#define ULINEON 14
#define ULINEOFF 15
#define ESC_GRAPHICS 16
#define ESC_RULER 17
#define REV_ON 18
#define REV_OFF 19
#define GOTOX 20
#define GOTOY 21
#define GOTOXY 22
#define NEWCARDSET 23
#define BOLDON 24
#define ITALICON 25
#define OUTLINEON 26
#define PLAINTEXT 27
/* control characters for use in
strings: eg: str[10]=CBOLDON "Hello"; */
#define CCR "\015"
#define CULINEON "\016"
#define CULINEOFF "\017"
#define CREV_ON "\022"
#define CREV_OFF "\023"
#define CBOLDON "\030"
#define CITALICON "\031"
#define COUTLINEON "\032"
#define CPLAINTEXT "\033"
/*values of currentMode */
/* bitNumbers */
#define UNDERLINE_BIT 7
#define BOLD_BIT 6
#define REVERSE_BIT 5
#define ITALIC_BIT 4
#define OUTLINE_BIT 3
#define SUPERSCRIPT_BIT 2
#define SUBSCRIPT_BIT 1
/* bitMasks */
#define SET_UNDERLINE 0x80
#define SET_BOLD 0x40
#define SET_REVERSE 0x20
#define SET_ITALIC 0x10
#define SET_OUTLINE 0x08
#define SET_SUPERSCRIPT 0x04
#define SET_SUBSCRIPT 0x02
#define SET_PLAINTEXT 0
/* values of dispBufferOn */
#define ST_WRGS_FORE 0x20
#define ST_WR_BACK 0x40
#define ST_WR_FORE 0x80
/* PutDecimal parameters */
/* leading zeros? */
#define SET_NOSURPRESS 0
#define SET_SURPRESS 0x40
/* justification */
#define SET_RIGHTJUST 0
#define SET_LEFTJUST 0x80
/* C128 x-extension flags */
#define ADD1_W 0x2000
#define DOUBLE_B 0x80
#define DOUBLE_W 0x8000
/* DrawLine/DrawPoint mode values */
#define DRAW_ERASE 0x00
#define DRAW_DRAW 0x40
#define DRAW_COPY 0x80
typedef void graphicStr;
#define MOVEPENTO(x,y) (char)1, (unsigned)(x), (char)(y)
#define LINETO(x,y) (char)2, (unsigned)(x), (char)(y)
#define RECTANGLETO(x,y) (char)3, (unsigned)(x), (char)(y)
#define NEWPATTERN(p) (char)5, (char)(p)
#define FRAME_RECTO(x,y) (char)7, (unsigned)(x), (char)(y)
#define PEN_X_DELTA(x) (char)8, (unsigned)(x)
#define PEN_Y_DELTA(y) (char)9, (char)(y)
#define PEN_XY_DELTA(x,y) (char)10, (unsigned)(x), (char)(y)
#define GSTR_END (char)NULL
/* ESC_PUTSTRING can't be implemented - it needs text, not pointer to it
#define ESC_PUTSTRING(x,y,text) (char)6, (unsigned)(x), (char)(y), (text), (char)NULL
*/
#endif
/*
GEOS menu and icon functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GMENU_H
#define _GMENU_H
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
void __fastcall__ DoMenu(struct menu *myMenu);
void ReDoMenu(void);
void RecoverMenu(void);
void RecoverAllMenus(void);
void DoPreviousMenu(void);
void GotoFirstMenu(void);
void __fastcall__ DoIcons(struct icontab *myIconTab);
/* DoMenu - menutypes */
#define MENU_ACTION 0x00
#define DYN_SUB_MENU 0x40
#define SUB_MENU 0x80
#define HORIZONTAL 0x00
#define VERTICAL 0x80
/* menu string offsets */
#define OFF_MY_TOP 0
#define OFF_MY_BOT 1
#define OFF_MX_LEFT 2
#define OFF_MX_RIGHT 4
#define OFF_NUM_M_ITEMS 6
#define OFF_1ST_M_ITEM 7
/* icon string offsets */
#define OFF_NM_ICNS 0
#define OFF_IC_XMOUSE 1
#define OFF_IC_YMOUSE 3
#define OFF_PIC_ICON 0
#define OFF_X_ICON_POS 2
#define OFF_Y_ICON_POS 3
#define OFF_WDTH_ICON 4
#define OFF_HEIGHT_ICON 5
#define OFF_SRV_RT_ICON 6
#define OFF_NX_ICON 8
/* icons, menus status flags */
#define ST_FLASH 0x80
#define ST_INVERT 0x40
#define ST_LD_AT_ADDR 0x01
#define ST_LD_DATA 0x80
#define ST_PR_DATA 0x40
#define ST_WR_PR 0x40
#endif
/*
GEOS memory and string functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GMEMORY_H
#define _GMEMORY_H
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
void __fastcall__ CopyString(char *dest, const char *source);
char __fastcall__ CmpString(const char *dest, const char *source);
void __fastcall__ CopyFString(char len, char *dest, const char *source);
char __fastcall__ CmpFString(char len, char *dest, const char *source);
unsigned __fastcall__ CRC(const char *buffer, unsigned len);
void* __fastcall__ ClearRam(char *dest, unsigned len);
void* __fastcall__ FillRam(char *dest, char what, unsigned len);
void* __fastcall__ MoveData(char *dest, const char *source, unsigned len);
void __fastcall__ InitRam(char *myInitTab);
void __fastcall__ StashRAM(char REUBank, unsigned len, char *reuaddy, const char *cpuaddy);
void __fastcall__ FetchRAM(char REUBank, unsigned len, const char *reuaddy, char *cpuaddy);
void __fastcall__ SwapRAM(char REUBank, unsigned len, char *reuaddy, char *cpuaddy);
char __fastcall__ VerifyRAM(char REUBank, unsigned len, const char *reuaddy, const char *cpuaddy);
#endif
/*
GEOS processes (~multitasking) functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GPROCESS_H
#define _GPROCESS_H
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
void __fastcall__ InitProcesses(char number, struct process *proctab);
void __fastcall__ RestartProcess(char number);
void __fastcall__ EnableProcess(char number);
void __fastcall__ BlockProcess(char number);
void __fastcall__ UnblockProcess(char number);
void __fastcall__ FreezeProcess(char number);
void __fastcall__ UnfreezeProcess(char number);
void __fastcall__ Sleep(unsigned jiffies);
#endif
/*
GEOS dialog box functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GDLGBOX_H
#define _GDLGBOX_H
char __fastcall__ DoDlgBox(const char *dboxstring);
char RstrFrmDialogue(void);
/* These are custom, predefined dialog boxes, I'm sure you'll find them usable
Most of them show 2 lines of text */
char __fastcall__ DlgBoxYesNo(const char *line1, const char *line2);
char __fastcall__ DlgBoxOkCancel(const char *line1, const char *line2);
void __fastcall__ DlgBoxOk(const char *line1, const char *line2);
char __fastcall__ DlgBoxGetString(char *myString, char strLength,
const char *line1, const char *line2);
char __fastcall__ DlgBoxFileSelect(const char *classtxt, char ftype,
char *fname);
/* This is a more general dialog box, works like printf in a window */
char MessageBox(char mode, const char *format, ...);
/* mode argument for MessageBox() */
enum {
MB_EMPTY=0,
MB_OK,
MB_OKCANCEL,
MB_YESNO,
MB_LAST };
/* Now the command string type */
typedef void dlgBoxStr;
/* and command string commands - macros */
#define DB_DEFPOS(pattern) (char)(DEF_DB_POS | (pattern))
#define DB_SETPOS(pattern,top,bot,left,right) \
(char)(SET_DB_POS | (pattern)), (char)(top), (char)(bot), \
(unsigned)(left), (unsigned)(right)
#define DB_ICON(i,x,y) (char)(i), (char)(x), (char)(y)
#define DB_TXTSTR(x,y,text) (char)DBTXTSTR, (char)(x), (char)(y), (text)
#define DB_VARSTR(x,y,ptr) (char)DBVARSTR, (char)(x), (char)(y), (char)(ptr)
#define DB_GETSTR(x,y,ptr,length) (char)DBGETSTRING, (char)(x), (char)(y), (char)(ptr), (char)(length)
#define DB_SYSOPV(ptr) (char)DBSYSOPV, (unsigned)(ptr)
#define DB_GRPHSTR(ptr) (char)DBGRPHSTR, (unsigned)(ptr)
#define DB_GETFILES(x,y) (char)DBGETFILES, (char)(x), (char)(y)
#define DB_OPVEC(ptr) (char)DBOPVEC, (unsigned)(ptr)
#define DB_USRICON(x,y,ptr) (char)DBUSRICON, (char)(x), (char)(y), (unsigned)(ptr)
#define DB_USRROUT(ptr) (char)DB_USR_ROUT, (unsigned)(ptr)
#define DB_END (char)NULL
/*
part of constants below is used internally, but some are useful for macros above
*/
/* icons for DB_ICON */
#define OK 1
#define CANCEL 2
#define YES 3
#define NO 4
#define OPEN 5
#define DISK 6
/* commands - internally used by command macros */
#define DBTXTSTR 11
#define DBVARSTR 12
#define DBGETSTRING 13
#define DBSYSOPV 14
#define DBGRPHSTR 15
#define DBGETFILES 16
#define DBOPVEC 17
#define DBUSRICON 18
#define DB_USR_ROUT 19
/* icons tabulation in standard window */
#define DBI_X_0 1
#define DBI_X_1 9
#define DBI_X_2 17
#define DBI_Y_0 8
#define DBI_Y_1 40
#define DBI_Y_2 72
/* standard window size defaults */
#define SET_DB_POS 0
#define DEF_DB_POS 0x80
#define DEF_DB_TOP 32
#define DEF_DB_BOT 127
#define DEF_DB_LEFT 64
#define DEF_DB_RIGHT 255
/* text tabulation in standard window */
#define TXT_LN_1_Y 16
#define TXT_LN_2_Y 32
#define TXT_LN_3_Y 48
#define TXT_LN_4_Y 64
#define TXT_LN_5_Y 80
#define TXT_LN_X 16
/* system icons size */
#define SYSDBI_HEIGHT 16
#define SYSDBI_WIDTH 6
/* dialogbox string offsets */
#define OFF_DB_FORM 0
#define OFF_DB_TOP 1
#define OFF_DB_BOT 2
#define OFF_DB_LEFT 3
#define OFF_DB_RIGHT 5
#define OFF_DB_1STCMD 7
#endif
/*
GEOS system addresses and locations
reassembled by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GSYM_H
#define _GSYM_H
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
#define r0 (*(unsigned*)(R_BASE + 0x00))
#define r0L (*(char*)(R_BASE + 0x00))
#define r0H (*(char*)(R_BASE + 0x01))
#define r1 (*(unsigned*)(R_BASE + 0x02))
#define r1L (*(char*)(R_BASE + 0x02))
#define r1H (*(char*)(R_BASE + 0x03))
#define drawWindow (*(struct window*)(R_BASE + 0x04))
#define r2 (*(unsigned*)(R_BASE + 0x04))
#define r2L (*(char*)(R_BASE + 0x04))
#define r2H (*(char*)(R_BASE + 0x05))
#define r3 (*(unsigned*)(R_BASE + 0x06))
#define r3L (*(char*)(R_BASE + 0x06))
#define r3H (*(char*)(R_BASE + 0x07))
#define r4 (*(unsigned*)(R_BASE + 0x08))
#define r4L (*(char*)(R_BASE + 0x08))
#define r4H (*(char*)(R_BASE + 0x09))
#define r5 (*(unsigned*)(R_BASE + 0x0a))
#define r5L (*(char*)(R_BASE + 0x0a))
#define r5H (*(char*)(R_BASE + 0x0b))
#define r6 (*(unsigned*)(R_BASE + 0x0c))
#define r6L (*(char*)(R_BASE + 0x0c))
#define r6H (*(char*)(R_BASE + 0x0d))
#define r7 (*(unsigned*)(R_BASE + 0x0e))
#define r7L (*(char*)(R_BASE + 0x0e))
#define r7H (*(char*)(R_BASE + 0x0f))
#define r8 (*(unsigned*)(R_BASE + 0x10))
#define r8L (*(char*)(R_BASE + 0x10))
#define r8H (*(char*)(R_BASE + 0x11))
#define r9 (*(unsigned*)(R_BASE + 0x12))
#define r9L (*(char*)(R_BASE + 0x12))
#define r9H (*(char*)(R_BASE + 0x13))
#define r10 (*(unsigned*)(R_BASE + 0x14))
#define r10L (*(char*)(R_BASE + 0x14))
#define r10H (*(char*)(R_BASE + 0x15))
#define r11 (*(unsigned*)(R_BASE + 0x16))
#define r11L (*(char*)(R_BASE + 0x16))
#define r11H (*(char*)(R_BASE + 0x17))
#define r12 (*(unsigned*)(R_BASE + 0x18))
#define r12L (*(char*)(R_BASE + 0x18))
#define r12H (*(char*)(R_BASE + 0x19))
#define r13 (*(unsigned*)(R_BASE + 0x1a))
#define r13L (*(char*)(R_BASE + 0x1a))
#define r13H (*(char*)(R_BASE + 0x1b))
#define r14 (*(unsigned*)(R_BASE + 0x1c))
#define r14L (*(char*)(R_BASE + 0x1c))
#define r14H (*(char*)(R_BASE + 0x1d))
#define r15 (*(unsigned*)(R_BASE + 0x1e))
#define r15L (*(char*)(R_BASE + 0x1e))
#define r15H (*(char*)(R_BASE + 0x1f))
#ifdef __GEOS_CBM__
#define nameBuf char[17]
#define blockBuf char[256]
#define CPU_DDR (*(char*)0x00)
#define CPU_DATA (*(char*)0x01)
#define R_BASE 0x02
#define curPattern (*(unsigned*)0x22)
#define string (*(unsigned*)0x24)
#define curFontDesc (*(struct fontdesc*)0x26)
#define currentMode (*(char*)0x2e)
#define dispBufferOn (*(char*)0x2f)
#define mouseOn (*(char*)0x30)
#define msePicPtr (*(unsigned*)0x31)
#define curWindow (*(struct window*)0x33)
#define pressFlag (*(char*)0x39)
#define mousePos (*(struct pixel*)0x3a)
#define returnAddress (*(unsigned*)0x3d)
#define graphMode (*(char*)0x3f)
#define STATUS (*(char*)0x90)
#define curDevice (*(char*)0xba)
#define irqvec (*(void_func*)0x0314)
#define bkvec (*(void_func*)0x0316)
#define nmivec (*(void_func*)0x0318)
#define APP_RAM ((char*)0x0400)
#define BACK_SCR_BASE ((char*)0x6000)
#define PRINTBASE ((char*)0x7900)
#define OS_VARS ((char*)0x8000)
#define diskBlkBuf ((blockBuf)0x8000)
#define fileHeader (*(struct fileheader*)0x8100)
#define curDirHead ((blockBuf)0x8200)
#define fileTrScTab ((struct tr_se[128])0x8300)
#define dirEntryBuf (*(struct filehandle*)0x8400)
#define DrACurDkNm ((nameBuf)0x841e)
#define DrBCurDkNm ((nameBuf)0x8430)
#define dataFileName ((nameBuf)0x8442)
#define dataDiskName ((nameBuf)0x8453)
#define PrntFileName ((nameBuf)0x8465)
#define PrntDiskName ((nameBuf)0x8476)
#define curDrive (*(char*)0x8489)
#define diskOpenFlg (*(char*)0x848a)
#define isGEOS (*(char*)0x848b)
#define interleave (*(char*)0x848c)
#define NUMDRV (*(char*)0x848d)
#define driveType ((char[4])0x848e)
#define turboFlags ((char[4])0x8492)
#define VLIRInfo (*(struct VLIR_info*)0x8496)
#define appMain (*(void_func*)0x849b)
#define intTopVector (*(void_func*)0x849d)
#define intBotVector (*(void_func*)0x849f)
#define mouseVector (*(void_func*)0x84a1)
#define keyVector (*(void_func*)0x84a3)
#define inputVector (*(void_func*)0x84a5)
#define mouseFaultVec (*(void_func*)0x84a7)
#define otherPressVec (*(void_func*)0x84a9)
#define StringFaultVec (*(void_func*)0x84ab)
#define alarmTmtVector (*(void_func*)0x84ad)
#define BRKVector (*(void_func*)0x84af)
#define RecoverVector (*(void_func*)0x84b1)
#define selectionFlash (*(char*)0x84b3)
#define alphaFlag (*(char*)0x84b4)
#define iconSelFlg (*(char*)0x84b5)
#define faultData (*(char*)0x84b6)
#define menuNumber (*(char*)0x84b7)
#define mouseWindow (*(struct window*)0x84b8)
#define stringXY (*(struct pixel*)0x84be)
#define mousePicData (*(char*)0x84c1)
#define maxMouseSpeed (*(char*)0x8501)
#define minMouseSpeed (*(char*)0x8502)
#define mouseAccel (*(char*)0x8503)
#define keyData (*(char*)0x8504)
#define mouseData (*(char*)0x8505)
#define inputData (*(char*)0x8506)
#define mouseSpeed (*(char*)0x8507)
#define random (*(char*)0x850a)
#define saveFontTab (*(struct fontdesc*)0x850c)
#define dblClickCount (*(char*)0x8515)
#define system_date (*(struct s_date*)0x8516)
#define alarmSetFlag (*(char*)0x851c)
#define sysDBData (*(char*)0x851d)
#define screencolors (*(char*)0x851e)
#define dlgBoxRamBuf (*(char*)0x851f)
#define savedmoby2 (*(char*)0x88bb)
#define scr80polar (*(char*)0x88bc)
#define scr80colors (*(char*)0x88bd)
#define vdcClrMode (*(char*)0x88be)
#define driveData ((char[4])0x88bf)
#define ramExpSize (*(char*)0x88c3)
#define sysRAMFlg (*(char*)0x88c4)
#define firstBoot (*(char*)0x88c5)
#define curType (*(char*)0x88c6)
#define ramBase (*(char*)0x88c7)
#define inputDevName ((nameBuf)0x88cb)
#define DrCCurDkNm ((nameBuf)0x88dc)
#define DrDCurDkNm ((nameBuf)0x88ee)
#define dir2Head ((blockBuf)0x8900)
#define SPRITE_PICS ((char*)0x8a00)
#define sprpic ((char[8][64])0x8a00)
#define COLOR_MATRIX ((char[1000])0x8c00)
#define objPointer ((char[8])0x8ff8)
#define DISK_BASE ((char*)0x9000)
#define SCREEN_BASE ((char*)0xa000)
#define OS_ROM ((char*)0xc000)
#define OS_JUMPTAB ((char*)0xc100)
#define EXP_BASE ((char*)0xdf00)
#define MOUSE_BASE_128 ((char*)0xfd00)
#define MOUSE_JMP_128 ((char*)0xfd00)
#define END_MOUSE_128 ((char*)0xfe80)
#define MOUSE_BASE ((char*)0xfe80)
#define MOUSE_JMP ((char*)0xfe80)
#define config (*(char*)0xff00)
#define END_MOUSE ((char*)0xfffa)
#define NMI_VECTOR (*(void_func*)0xfffa)
#define RESET_VECTOR (*(void_func*)0xfffc)
#define IRQ_VECTOR (*(void_func*)0xfffe)
#define vicbase ((char*)0xd000)
#define sidbase ((char*)0xd400)
#define mmu ((char*)0xd500)
#define VDC ((char*)0xd600)
#define ctab ((char*)0xd800)
#define cia1base ((char*)0xdc00)
#define cia2base ((char*)0xdd00)
#define mob0xpos (*(char*)0xd000)
#define mob0ypos (*(char*)0xd001)
#define mob1xpos (*(char*)0xd002)
#define mob1ypos (*(char*)0xd003)
#define mob2xpos (*(char*)0xd004)
#define mob2ypos (*(char*)0xd005)
#define mob3xpos (*(char*)0xd006)
#define mob3ypos (*(char*)0xd007)
#define mob4xpos (*(char*)0xd008)
#define mob4ypos (*(char*)0xd009)
#define mob5xpos (*(char*)0xd00a)
#define mob5ypos (*(char*)0xd00b)
#define mob6xpos (*(char*)0xd00c)
#define mob6ypos (*(char*)0xd00d)
#define mob7xpos (*(char*)0xd00e)
#define mob7ypos (*(char*)0xd00f)
#define msbxpos (*(char*)0xd010)
#define grcntrl1 (*(char*)0xd011)
#define rasreg (*(char*)0xd012)
#define lpxpos (*(char*)0xd013)
#define lpypos (*(char*)0xd014)
#define mobenble (*(char*)0xd015)
#define grcntrl2 (*(char*)0xd016)
#define grmemptr (*(char*)0xd018)
#define grirq (*(char*)0xd019)
#define grirqen (*(char*)0xd01a)
#define moby2 (*(char*)0xd017)
#define mobprior (*(char*)0xd01b)
#define mobmcm (*(char*)0xd01c)
#define mobx2 (*(char*)0xd01d)
#define mobmobcol (*(char*)0xd01e)
#define mobbakcol (*(char*)0xd01f)
#define extclr (*(char*)0xd020)
#define bakclr0 (*(char*)0xd021)
#define bakclr1 (*(char*)0xd022)
#define bakclr2 (*(char*)0xd023)
#define bakclr3 (*(char*)0xd024)
#define mcmclr0 (*(char*)0xd025)
#define mcmclr1 (*(char*)0xd026)
#define mob0clr (*(char*)0xd027)
#define mob1clr (*(char*)0xd028)
#define mob2clr (*(char*)0xd029)
#define mob3clr (*(char*)0xd02a)
#define mob4clr (*(char*)0xd02b)
#define mob5clr (*(char*)0xd02c)
#define mob6clr (*(char*)0xd02d)
#define mob7clr (*(char*)0xd02e)
#define keyreg (*(char*)0xd02f)
#define clkreg (*(char*)0xd030)
#define vdcreg (*(char*)0xd600)
#define vdcdata (*(char*)0xd601)
#else /* #ifdef __GEOS_CBM__ */
#define nameBuf char[16]
#define blockBuf char[512]
#define R_BASE 0x00
#define curPattern (*(unsigned*)0x022c)
#define string (*(unsigned*)0x53)
#define curFontDesc (*(struct fontdesc*)0x0218)
#define currentMode (*(char*)0x021c)
#define dispBufferOn (*(char*)0x021d)
#define mouseOn (*(char*)0x5d)
#define curWindow (*(struct window*)0x021e)
#define pressFlag (*(char*)0x08fe)
#define mousePos (*(struct pixel*)0x0241)
#define returnAddress (*(unsigned*)0x64)
#define diskBlkBuf ((blockBuf)0xf659)
#define fileHeader (*(struct fileheader*)0xf859)
#define curDirHead ((char[39])0xfa80)
#define dirEntryBuf (*(struct filehandle*)0xfa59)
#define DrACurDkNm ((nameBuf)0xfaa7)
#define DrBCurDkNm ((nameBuf)0xfab7)
#define dataFileName ((nameBuf)0x02a4)
#define dataDiskName ((nameBuf)0x02b4)
#define PrntFileName ((nameBuf)0x08ac)
#define curDrive (*(char*)0xf60d)
#define diskOpenFlg (*(char*)0xf617)
#define NUMDRV (*(char*)0xf60e)
#define driveType ((char[4])0xfaf3)
#define VLIRInfo (*(struct VLIR_info*)0xf618)
#define appMain (*(void_func*)0x0200)
#define intTopVector (*(void_func*)0x0202)
#define intBotVector (*(void_func*)0x0204)
#define mouseVector (*(void_func*)0x0206)
#define keyVector (*(void_func*)0x0208)
#define inputVector (*(void_func*)0x020a)
#define mouseFaultVec (*(void_func*)0x020c)
#define otherPressVec (*(void_func*)0x020e)
#define StringFaultVec (*(void_func*)0x0210)
#define alarmTmtVector (*(void_func*)0x0212)
#define BRKVector (*(void_func*)0x0214)
#define RecoverVector (*(void_func*)0x0216)
#define selectionFlash (*(char*)0x0224)
#define alphaFlag (*(char*)0x0225)
#define iconSelFlg (*(char*)0x0226)
#define faultData (*(char*)0x0227)
#define menuNumber (*(char*)0x0228)
#define mouseWindow (*(struct window*)0x57)
#define stringXY (*(struct pixel*)0x022e)
#define maxMouseSpeed (*(char*)0x027d)
#define minMouseSpeed (*(char*)0x027e)
#define mouseAccel (*(char*)0x027f)
#define keyData (*(char*)0x0245)
#define mouseData (*(char*)0x0246)
#define inputData (*(char*)0x0247)
#define random (*(char*)0x024c)
#define saveFontTab (*(struct fontdesc*)0x024e)
#define dblClickCount (*(char*)0x0258)
#define system_date (*(struct s_date*)0xf200)
#define sysDBData (*(char*)0x0259)
#define dlgBoxRamBuf (*(char*)0xf381)
#define firstBoot (*(char*)0x0281)
#define inputDevName ((nameBuf)0x08cc)
#define DrCCurDkNm ((nameBuf)0xfac7)
#define DrDCurDkNm ((nameBuf)0xfad7)
#define mobenble (*(char*)0x0818)
#define moby2 (*(char*)0x081a)
#define mobx2 (*(char*)0x0819)
#endif /* #ifdef __GEOS_CBM__ */
#endif
/*
GEOS filesystem functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GFILE_H
#define _GFILE_H
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
struct filehandle *Get1stDirEntry(void);
struct filehandle *GetNxtDirEntry(void);
char __fastcall__ FindFTypes(char *buffer, char ftype, char fmaxnum, const char *classtxt);
char __fastcall__ GetFile(char flag, const char *fname,
const char *loadaddr, const char *datadname, const char *datafname);
char __fastcall__ FindFile(const char *fname);
char __fastcall__ ReadFile(struct tr_se *myTrSe, char *buffer, unsigned flength);
char __fastcall__ SaveFile(char skip, struct fileheader *myHeader);
char __fastcall__ FreeFile(struct tr_se myTable[]);
char __fastcall__ DeleteFile(const char *fname);
char __fastcall__ RenameFile(const char *source, const char *target);
char ReadByte(void);
char __fastcall__ FollowChain(struct tr_se *startTrSe, char *buffer);
char __fastcall__ GetFHdrInfo(struct filehandle *myFile);
char __fastcall__ OpenRecordFile(const char *fname);
char CloseRecordFile(void);
char NextRecord(void);
char PreviousRecord(void);
char __fastcall__ PointRecord(char);
char DeleteRecord(void);
char InsertRecord(void);
char AppendRecord(void);
char __fastcall__ ReadRecord(char *buffer, unsigned flength);
char __fastcall__ WriteRecord(const char *buffer, unsigned flength);
char UpdateRecordFile(void);
/* GEOS filetypes */
#define NOT_GEOS 0
#define BASIC 1
#define ASSEMBLY 2
#define DATA 3
#define SYSTEM 4
#define DESK_ACC 5
#define APPLICATION 6
#define APPL_DATA 7
#define FONT 8
#define PRINTER 9
#define INPUT_DEVICE 10
#define DISK_DEVICE 11
#define SYSTEM_BOOT 12
#define TEMPORARY 13
#define AUTO_EXEC 14
#define INPUT_128 15
#define NUMFILETYPES 16
/* supported structures */
#define SEQUENTIAL 0
#define VLIR 1
/* DOS filetypes */
#define DEL 0
#define SEQ 1
#define PRG 2
#define USR 3
#define REL 4
#define CBM 5
#endif
/*
GEOS functions from disk driver
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GDISK_H
#define _GDISK_H
#ifndef _GSTRUCT_H
#include <geos/gstruct.h>
#endif
char __fastcall__ ReadBuff(struct tr_se *myTrSe);
char __fastcall__ WriteBuff(struct tr_se *myTrSe);
char __fastcall__ GetBlock(struct tr_se *myTrSe, char *buffer);
char __fastcall__ PutBlock(struct tr_se *myTrSe, const char *buffer);
char __fastcall__ ReadBlock(struct tr_se *myTrSe, char *buffer);
char __fastcall__ WriteBlock(struct tr_se *myTrSe, const char *buffer);
char __fastcall__ VerWriteBlock(struct tr_se *myTrSe, const char *buffer);
unsigned CalcBlksFree(void);
char ChkDkGEOS(void);
char SetGEOSDisk(void);
char NewDisk(void);
char OpenDisk(void);
char __fastcall__ FindBAMBit(struct tr_se *myTrSe);
char __fastcall__ BlkAlloc(struct tr_se output[], unsigned length);
char __fastcall__ NxtBlkAlloc(struct tr_se *startTrSe,
struct tr_se output[], unsigned length);
char __fastcall__ FreeBlock(struct tr_se *myTrSe);
struct tr_se __fastcall__ SetNextFree(struct tr_se *myTrSe);
// above needs (unsigned) casts on both sides of '='
char GetDirHead(void);
char PutDirHead(void);
void __fastcall__ GetPtrCurDkNm(char *name);
void EnterTurbo(void);
void ExitTurbo(void);
void PurgeTurbo(void);
char __fastcall__ ChangeDiskDevice(char newdev);
/* disk header offsets i.e. index curDirHead with these */
#define OFF_TO_BAM 4
#define OFF_DISK_NAME 144
#define OFF_GS_DTYPE 189
#define OFF_OP_TR_SC 171
#define OFF_GS_ID 173
/* disk errors reported in _oserror */
#define ANY_FAULT 0xf0
#define G_EOF 0
#define NO_BLOCKS 1
#define INV_TRACK 2
#define INSUFF_SPACE 3
#define FULL_DIRECTORY 4
#define FILE_NOT_FOUND 5
#define BAD_BAM 6
#define UNOPENED_VLIR 7
#define INV_RECORD 8
#define OUT_OF_RECORDS 9
#define STRUCT_MISMAT 10
#define BFR_OVERFLOW 11
#define CANCEL_ERR 12
#define DEV_NOT_FOUND 13
#define INCOMPATIBLE 14
#define HDR_NOT_THERE 0x20
#define NO_SYNC 0x21
#define DBLK_NOT_THERE 0x22
#define DAT_CHKSUM_ERR 0x23
#define WR_VER_ERR 0x25
#define WR_PR_ON 0x26
#define HDR_CHKSUM_ERR 0x27
#define DSK_ID_MISMAT 0x29
#define BYTE_DEC_ERR 0x2e
#define DOS_MISMATCH 0x73
#endif
/*
GEOS structs
by Maciej 'YTM/Elysium' Witkowiak
*/
/*
apart from initializing data, structures below can be used to
speed up access to data and let cc65 to generate better code
e.g. if you have menu defined as TopMenu and you want to change the number of
menu items use:
((struct menu*)&TopMenu)->number=newNumber;
This will be translated into single lda/sta pair
*/
#ifndef _GSTRUCT_H
#define _GSTRUCT_H
typedef void (*void_func) (void);
struct s_date { /* system date & time */
char s_year;
char s_month;
char s_day;
char s_hour;
char s_minutes;
char s_seconds;
};
struct tr_se { /* track and sector */
char track;
char sector;
};
struct fileheader { /* header block (like fileHeader) */
struct tr_se n_block;
char icon_desc[3];
char icon_pic[63];
char dostype;
char type;
char structure;
unsigned load_address;
unsigned end_address;
unsigned exec_address;
char class_name[19];
char column_flag;
char author[63];
char note[96];
};
#ifdef __GEOS_CBM__
struct f_date { /* date in filedesctiptor */
char f_year;
char f_month;
char f_day;
char f_hour;
char f_minute;
};
struct filehandle { /* filehandle in directory sectors */
char dostype; /* or in dirEntryBuf */
struct tr_se n_block;
char name[16];
struct tr_se header;
char structure;
char type;
struct f_date date;
unsigned size;
};
#else /* #ifdef __GEOS_CBM__ */
struct f_date { /* date in filedesctiptor */
unsigned f_day:5;
unsigned f_month:4;
unsigned f_year:7;
char f_minute;
char f_hour;
};
struct filehandle { /* filehandle in directory sectors */
unsigned name_len:4; /* or in dirEntryBuf */
unsigned structure:4;
char name[15];
char type;
struct tr_se n_block;
unsigned size;
char byte_size[3];
struct f_date date;
char version;
char min_version;
char access;
struct tr_se header;
struct f_date mod_date;
struct tr_se dir_head;
};
#endif /* #ifdef __GEOS_CBM__ */
struct pixel { /* describes point */
unsigned x;
char y;
};
struct fontdesc { /* describes font */
char baseline;
char width;
char height;
char *index_tbl;
char *data_ptr;
};
struct window { /* describes screen region */
char top;
char bot;
unsigned left;
unsigned right;
};
struct VLIR_info { /* VLIR information */
char curRecord; /* currently only used in VLIR */
char usedRecords; /* as system info (curRecord is mainly of your interest */
char fileWritten;
unsigned fileSize;
};
struct process { /* process info, declare table of that type */
unsigned pointer; /* (like: struct process proctab[2]=... */
unsigned jiffies; /* last entry HAVE TO BE {0,0} */
};
struct iconpic { /* icon/encoded bitmap description */
char *pic_ptr; /* ptr to a photo scrap (or encoded bitmap) */
char x; /* position in cards (*8 pixels) */
char y;
char width; /* in cards */
char heigth; /* in lines (pixels) */
};
struct icondef { /* icon definition for DoIcons */
char *pic_ptr; /* ptr to a photo scrap (or encoded bitmap) */
char x; /* position in cards (*8 pixels) */
char y;
char width; /* of icon (in cards) */
char heigth; /* of icon in lines (pixels) */
unsigned proc_ptr; /* pointer to function handling that icon */
};
struct icontab {
char number; /* number of declared icons */
struct pixel mousepos; /* position of mouse after DoIcons */
struct icondef tab[]; /* table of size declared by icontab.number */
};
struct menuitem {
char *name;
char type;
void *rest; /* may be ptr to function, or ptr to struct menu (submenu) */
};
struct menu {
struct window size;
char number;
struct menuitem items[];
};
struct inittab { /* use struct inittab mytab[n] for initram */
unsigned ptr; /* ptr to 1st byte */
char number; /* number of following bytes */
char values[]; /* actual string of bytes */
};
#endif
/*
GEOS system functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GSYS_H
#define _GSYS_H
void FirstInit(void);
void InitForIO(void);
void DoneWithIO(void);
void MainLoop(void);
void EnterDeskTop(void);
void ToBASIC(void);
void Panic(void);
void __fastcall__ CallRoutine(void *myRoutine);
unsigned GetSerialNumber(void);
char GetRandom(void);
void __fastcall__ SetDevice(char newdev);
char get_ostype(void);
/* possible return values of get_ostype, machine and version flags will
be combined with OR */
/* machine flags */
#define GEOS64 0x00
#define GEOS4 0x04 /* plus4 geos is not or'ed with version */
#define GEOS128 0x80
/* version flags */
#define GEOS_V10 0x10
#define GEOS_V11 0x11
#define GEOS_V12 0x12 /* ??? not sure */
#define GEOS_V20 0x20
#define WHEELS 0x40 /* only Wheels? */
char get_tv(void);
/* possible return values of get_tv, these flags will be combined
note that columns state can be changed during runtime and get_tv
always returns the current state */
#define COLUMNS40 0x00
#define COLUMNS80 0x01
#define TV_PAL 0x00
#define TV_NTSC 0x80
#endif
/*****************************************************************************/
/* */
/* utsname.h */
/* */
/* Return system information */
/* */
/* */
/* */
/* (C) 2003 Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _UTSNAME_H
#define _UTSNAME_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/*
** Suggested field contents:
**
** sysname
** Should contain the name of the underlying operating system, or "cc65"
** if the program runs on the bare machine.
**
** nodename
** Is empty or may be defined by the implementor.
**
** release
** Contains the operating system release or the major/minor cc65 version
** if sysname contains "cc65".
**
** version
** Contains the operating system version or the cc65 patch version if
** sysname contains "cc65".
**
** machine
** Contains the complete name of the machine, like "Commodore 64",
** "Oric Atmos" or similar.
**
** Beware: The library sources written in assembler have knowledge about this
** struct!
*/
struct utsname {
char sysname[17];
char nodename[9];
char release[9];
char version[9];
char machine[25];
};
/*****************************************************************************/
/* Code */
/*****************************************************************************/
int __fastcall__ uname (struct utsname* buf);
/* Return system information */
/* End of utsname.h */
#endif
/*****************************************************************************/
/* */
/* types.h */
/* */
/* Primitive system data types for cc65 */
/* */
/* */
/* */
/* (C) 2003 Ullrich von Bassewitz */
/* R<>merstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _TYPES_H
#define _TYPES_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* off_t is also defined in unistd.h */
#ifndef _HAVE_off_t
#define _HAVE_off_t
typedef long int off_t;
#endif
/*****************************************************************************/
/* Code */
/*****************************************************************************/
/* End of types.h */
#endif
/*****************************************************************************/
/* */
/* joy-kernel.h */
/* */
/* Internally used joystick functions */
/* */
/* */
/* */
/* (C) 2002-2006, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _JOY_KERNEL_H
#define _JOY_KERNEL_H
/*****************************************************************************/
/* Data */
/*****************************************************************************/
/* A structure that describes the header of a joystick driver loaded into
** memory.
*/
typedef struct {
/* Driver header */
char id[3]; /* Contains 0x6a, 0x6f, 0x79 ("joy") */
unsigned char version; /* Interface version */
/* Bitmasks for the joystick states. See joystick.h for indices */
unsigned char masks[8];
/* Jump vectors. Note that these are not C callable */
void* install; /* INSTALL routine */
void* uninstall; /* UNINSTALL routine */
void* count; /* COUNT routine */
void* read; /* READ routine */
void* irq; /* IRQ routine */
} joy_drv_header;
/* JOY kernel variables */
extern joy_drv_header* joy_drv; /* Pointer to driver */
/*****************************************************************************/
/* Code */
/*****************************************************************************/
void joy_clear_ptr (void);
/* Clear the joy_drv pointer */
/* End of joy-kernel.h */
#endif
;/*****************************************************************************/
;/* */
;/* time.inc */
;/* */
;/* Date and time */
;/* */
;/* */
;/* */
;/* (C) 2009 Ullrich von Bassewitz */
;/* Roemerstrasse 52 */
;/* D-70794 Filderstadt */
;/* EMail: uz@cc65.org */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
;------------------------------------------------------------------------------
; Struct tm - must match the struct defined in time.h
.struct tm
tm_sec .word
tm_min .word
tm_hour .word
tm_mday .word
tm_mon .word
tm_year .word
tm_wday .word
tm_yday .word
tm_isdst .word
.endstruct
;------------------------------------------------------------------------------
; Exported functions
.global __systime
.global _mktime
;-------------------------------------------------------------------------
; Atari System Equates
; by Freddy Offenga, Christian Groessler, and Christian Krueger
;
; References:
; - Atari 400/800 OS rev.B source code, Atari 1979
; - Atari OS manual - XL addendum
; - Atari XL/XE rev.2 source code, Atari 1984
; - Mapping the Atari - revised edition, Ian Chadwick 1985
;
; ##old## old OS rev.B label - moved or deleted
; ##1200xl## new label introduced in 1200XL OS (rev.10/11)
; ##rev2## new label introduced in XL/XE OS rev.2
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------
; Configuration Equates
;-------------------------------------------------------------------------
MAXDEV = 33 ;offset to last possible entry of HATABS
IOCBSZ = 16 ;length of IOCB
SEIOCB = 0*IOCBSZ ;##rev2## screen editor IOCB index
MAXIOC = 8*IOCBSZ ;first invalid IOCB index
DSCTSZ = 128 ;##rev2## disk sector size
LEDGE = 2 ;left edge
REDGE = 39 ;right edge
INIML = $0700 ;##rev2## initial MEMLO
ICSORG = $CC00 ;##rev2## international character set origin
DCSORG = $E000 ;##rev2## domestic character set origin
; IOCB Command Code Equates
OPEN = $03 ;open
GETREC = $05 ;get record
GETCHR = $07 ;get character(s)
PUTREC = $09 ;put record
PUTCHR = $0B ;put character(s)
CLOSE = $0C ;close
STATIS = $0D ;status
SPECIL = $0E ;special
; DOS IOCB command codes
RENAME = $20 ;rename disk file
DELETE = $21 ;delete disk file
LOCKFL = $23 ;lock file (set to read-only)
UNLOCK = $24 ;unlock file
POINT = $25 ;point sector
NOTE = $26 ;note sector
GETFL = $27 ;get file length
CHDIR_MYDOS = $29 ;change directory (MyDOS)
MKDIR = $2A ;make directory (MyDOS/SpartaDOS)
RMDIR = $2B ;remove directory (SpartaDOS)
CHDIR_SPDOS = $2C ;change directory (SpartaDOS)
FORMAT = $FE ;format
GETCWD = $30 ;get current directory (MyDOS/SpartaDOS)
; Special Entry Command Equates
; DOS Commands
; Command line table, Index values for (DOSVEC),Y -- COMTAB
; Compatible with OS/A+, DOS XL and SpartaDOS
COMTAB = 0 ;DOS entry jump vector
ZCRNAME = 3 ;file name crunch routine jump vector
BUFOFF = 10 ;next parameter buffer offset
COMFNAM = 33 ;destination buffer for crunch routine
LBUF = 63 ;command line input buffer
; Screen IOCB Commands
DRAWLN = $11 ;draw line
FILLIN = $12 ;draw line with right fill
; ICAX1 Auxiliary Byte 1 Equates
APPEND = $01 ;open write append (D:)
DIRECT = $02 ;open for directory access (D:)
OPNIN = $04 ;open for input (all devices)
OPNOT = $08 ;open for output (all devices)
MXDMOD = $10 ;open for mixed mode (E:, S:)
INSCLR = $20 ;open for input without clearing screen
; Device Code Equates
CASSET = 'C' ;cassette
DISK = 'D' ;disk
SCREDT = 'E' ;screen editor
KBD = 'K' ;keyboard
PRINTR = 'P' ;printer
DISPLY = 'S' ;screen display
; SIO Command Code Equates
SIO_FORMAT = $21 ;format disk (default density)
SIO_FORMATS = $22 ;1050: format medium density
SIO_CONFIG = $44 ;configure drive
SIO_CONFIGSF = $4B ;slow/fast configure drive??
SIO_RDPERCOM = $4E ;read PERCOM block (XF551)
SIO_WRPERCOM = $4F ;write PERCOM block (XF551)
SIO_WRITE = $50 ;write sector
SIO_READ = $52 ;read sector
SIO_STAT = $53 ;get status information
SIO_VERIFY = $56 ;verify sector
SIO_WRITEV = $57 ;write sector with verify
SIO_WRITETRK = $60 ;write track (Speedy)
SIO_READTRK = $62 ;read track (Speedy)
; SIO Status Code (DSTATS)
; Input: data direction
; Bit #7 - W (write operation)
; #6 - R (read operation)
; Output: status code
; $01 (001) -- OPERATION COMPLETE (NO ERRORS)
; $8A (138) -- DEVICE TIMEOUT (DOESN'T RESPOND)
; $8B (139) -- DEVICE NAK
; $8C (140) -- SERIAL BUS INPUT FRAMING ERROR
; $8E (142) -- SERIAL BUS DATA FRAME OVERRUN ERROR
; $8F (143) -- SERIAL BUS DATA FRAME CHECKSUM ERROR
; $90 (144) -- DEVICE DONE ERROR
; Character and Key Code Equates
CLS = $7D ;##rev2## clear screen
EOL = $9B ;end of line (RETURN)
HELP = $11 ;##1200xl## key code for HELP
CNTLF1 = $83 ;##1200xl## key code for CTRL-F1
CNTLF2 = $84 ;##1200xl## key code for CTRL-F2
CNTLF3 = $93 ;##1200xl## key code for CTRL-F3
CNTLF4 = $94 ;##1200xl## key code for CTRL-F4
CNTL1 = $9F ;##1200xl## key code for CTRL-1
; Status Code Equates
SUCCES = 1 ;($01) succesful operation
BRKABT = 128 ;($80) BREAK key abort
PRVOPN = 129 ;($81) IOCB already open error
NONDEV = 130 ;($82) nonexistent device error
WRONLY = 131 ;($83) IOCB opened for write only error
NVALID = 132 ;($84) invalid command error
NOTOPN = 133 ;($85) device/file not open error
BADIOC = 134 ;($86) invalid IOCB index error
RDONLY = 135 ;($87) IOCB opened for read only error
EOFERR = 136 ;($88) end of file error
TRNRCD = 137 ;($89) truncated record error
TIMOUT = 138 ;($8A) peripheral device timeout error
DNACK = 139 ;($8B) device does not acknowledge command
FRMERR = 140 ;($8C) serial bus framing error
CRSROR = 141 ;($8D) cursor overrange error
OVRRUN = 142 ;($8E) serial bus data overrun error
CHKERR = 143 ;($8F) serial bus checksum error
DERROR = 144 ;($90) device done (operation incomplete)
BADMOD = 145 ;($91) bad screen mode number error
FNCNOT = 146 ;($92) function not implemented in handler
SCRMEM = 147 ;($93) insufficient memory for screen mode
DSKFMT = 148 ;($94) SpartaDOS: unrecognized disk format
INCVER = 149 ;($95) SpartaDOS: disk was made with incompat. version
DIRNFD = 150 ;($96) SpartaDOS: directory not found
FEXIST = 151 ;($97) SpartaDOS: file exists
NOTBIN = 152 ;($98) SpartaDOS: file not binary
LSYMND = 154 ;($9A) SDX: loader symbol not defined
BADPRM = 156 ;($9C) SDX: bad parameter
OUTOFM = 158 ;($9E) SDX: out of memory
INVDEV = 160 ;($A0) invalid device number
TMOF = 161 ;($A1) too many open files
DSKFLL = 162 ;($A2) disk full
FATLIO = 163 ;($A3) fatal I/O error
FNMSMT = 164 ;($A4) internal file number mismatch
INVFNM = 165 ;($A5) invalid file name
PDLERR = 166 ;($A6) point data length error
EPERM = 167 ;($A7) permission denied
DINVCM = 168 ;($A8) command invalid for disk
DIRFLL = 169 ;($A9) directory full
FNTFND = 170 ;($AA) file not found
PNTINV = 171 ;($AB) point invalid
BADDSK = 173 ;($AD) bad disk
INCFMT = 176 ;($B0) DOS 3: incompatible file system
XNTBIN = 180 ;($B4) XDOS: file not binary
; DCB Device Bus Equates
DISKID = $31 ;##rev2## disk bus ID
PDEVN = $40 ;##rev2## printer bus ID
CASET = $60 ;##rev2## cassette bus ID
; Bus Command Equates
FOMAT = '!' ;##rev2## format command
PUTSEC = 'P' ;##rev2## put sector command
READ = 'R' ;##rev2## read command
STATC = 'S' ;##rev2## status command
WRITE = 'W' ;##rev2## write command
; Command Auxiliary Byte Equates
DOUBLE = 'D' ;##rev2## print 20 characters double width
NORMAL = 'N' ;##rev2## print 40 characters normally
PLOT = 'P' ;##rev2## plot
SIDWAY = 'S' ;##rev2## print 16 characters sideways
; Bus Response Equates
ACK = 'A' ;##rev2## device acknowledged
COMPLT = 'C' ;##rev2## device succesfully completed operation
ERROR = 'E' ;##rev2## device incurred error
NACK = 'N' ;##rev2## device did not understand
; Floating Point Miscellaneous Equates
FPREC = 6 ;precision
FMPREC = FPREC-1 ;##rev2## length of mantissa
; Cassette Record Type Equates
HDR = $FB ;##rev2## header
DTA = $FC ;##rev2## data record
DT1 = $FA ;##rev2## last data record
EOT = $FE ;##rev2## end of tape (file)
TONE1 = 2 ;##rev2## record
TONE2 = 1 ;##rev2## playback
; Cassette Timing Equates
WLEADN = 1152 ;##rev2## NTSC 19.2 second WRITE file leader
RLEADN = 576 ;##rev2## NTSC 9.6 second READ file leader
WIRGLN = 180 ;##rev2## NTSC 3.0 second WRITE IRG
RIRGLN = 120 ;##rev2## NTSC 2.0 second READ IRG
WSIRGN = 15 ;##rev2## NTSC 0.25 second WRITE short IRG
RSIRGN = 10 ;##rev2## NTSC 0.16 second READ short IRG
BEEPNN = 30 ;##rev2## NTSC 0.5 second beep duration
BEEPFN = 10 ;##rev2## NTSC 0.16 seconrd beep duration
WLEADP = 960 ;##rev2## PAL 19.2 second WRITE file leader
RLEADP = 480 ;##rev2## PAL 9.6 second READ file leader
WIRGLP = 150 ;##rev2## PAL 3.0 second WRITE IRG
RIRGLP = 100 ;##rev2## PAL 2.0 second READ IRG
WSIRGP = 13 ;##rev2## PAL 0.25 second WRITE short IRG
RSIRGP = 8 ;##rev2## PAL 0.16 second READ short IRG
BEEPNP = 25 ;##rev2## PAL 0.5 second beep duration
BEEPFP = 8 ;##rev2## PAL 0.16 seconrd beep duration
WIRGHI = 0 ;##rev2## high WRITE IRG
RIRGHI = 0 ;##rev2## high READ IRG
; Power-up Validation Byte Value Equates
PUPVL1 = $5C ;##rev2## power-up validation value 1
PUPVL2 = $93 ;##rev2## power-up validation value 2
PUPVL3 = $25 ;##rev2## power-up validation value 3
; Relocating Loader Miscellaneous Equates
DATAER = 156 ;##rev2## end of record appears before END
MEMERR = 157 ;##rev2## memory insufficient for load error
; Miscellaneous Equates
IOCFRE = $FF ;IOCB free indication
B19200 = $0028 ;##rev2## 19200 baud POKEY counter value
B00600 = $05CC ;##rev2## 600 baud POKEY counter value
HITONE = $05 ;##rev2## FSK high freq. POKEY counter value
LOTONE = $07 ;##rev2## FSK low freq. POKEY counter value
NCOMLO = $34 ;##rev2## PIA lower NOT COMMAND line command
NCOMHI = $3C ;##rev2## PIA raise NOT COMMAND line command
MOTRGO = $34 ;##rev2## PIA cassette motor ON command
MOTRST = $3C ;##rev2## PIA cassette motor OFF command
NODAT = $00 ;##rev2## SIO immediate operation
GETDAT = $40 ;##rev2## SIO read data frame
PUTDAT = $80 ;##rev2## SIO write data frame
CRETRI = 13 ;##rev2## number of command frame retries
DRETRI = 1 ;##rev2## number of device retries
CTIM = 2 ;##rev2## command frame ACK timeout
NBUFSZ = 40 ;##rev2## print normal buffer size
DBUFSZ = 20 ;##rev2## print double buffer size
SBUFSZ = 29 ;##rev2## print sideways buffer size
;-------------------------------------------------------------------------
; Page Zero Address Equates
;-------------------------------------------------------------------------
LINZBS = $00 ;LINBUG RAM (WILL BE REPLACED BY MONITOR RAM)
LNFLG = $00 ;##1200xl## 1-byte LNBUG flag (0 = not LNBUG)
NGFLAG = $01 ;##1200xl## 1-byte memory status (0 = failure)
; Not Cleared
CASINI = $02 ;CASSETTE INIT LOCATION
RAMLO = $04 ;RAM POINTER FOR MEMORY TEST
TRAMSZ = $06 ;TEMPORARY REGISTER FOR RAM SIZE
;TSTDAT = $07 ;##old## RAM TEST DATA REGISTER
CMCMD = $07 ;##rev2## 1-byte command communications
; Cleared upon Coldstart only
WARMST = $08 ;WARM START FLAG
BOOTQ = $09 ;SUCCESSFUL BOOT FLAG
DOSVEC = $0A ;DISK SOFTWARE START VECTOR
DOSINI = $0C ;DISK SOFTWARE INIT ADDRESS
APPMHI = $0E ;APPLICATIONS MEMORY HI LIMIT
; Cleared upon Coldstart or Warmstart
INTZBS = $10 ;INTERRUPT HANDLER
POKMSK = $10 ;SYSTEM MASK FOR POKEY IRQ ENABLE (shadow of IRQEN)
BRKKEY = $11 ;BREAK KEY FLAG
RTCLOK = $12 ;REAL TIME CLOCK (IN 16 MSEC UNITS>
BUFADR = $15 ;INDIRECT BUFFER ADDRESS REGISTER
ICCOMT = $17 ;COMMAND FOR VECTOR
DSKFMS = $18 ;DISK FILE MANAGER POINTER
DSKUTL = $1A ;DISK UTILITIES POINTER
ABUFPT = $1C ;##1200xl## 4-byte ACMI buffer pointer area
;PTIMOT = $1C ;##old## PRINTER TIME OUT REGISTER
;PBPNT = $1D ;##old## PRINT BUFFER POINTER
;PBUFSZ = $1E ;##old## PRINT BUFFER SIZE
;PTEMP = $1F ;##old## TEMPORARY REGISTER
ZIOCB = $20 ;ZERO PAGE I/O CONTROL BLOCK
IOCBAS = $20 ;16-byte page zero IOCB
ICHIDZ = $20 ;HANDLER INDEX NUMBER (FF = IOCB FREE)
ICDNOZ = $21 ;DEVICE NUMBER (DRIVE NUMBER)
ICCOMZ = $22 ;COMMAND CODE
ICSTAZ = $23 ;STATUS OF LAST IOCB ACTION
ICBALZ = $24 ;BUFFER ADDRESS LOW BYTE
ICBAHZ = $25 ;1-byte high buffer address
ICPTLZ = $26 ;PUT BYTE ROUTINE ADDRESS -1
ICPTHZ = $27 ;1-byte high PUT-BYTE routine address
ICBLLZ = $28 ;BUFFER LENGTH LOW BYTE
ICBLHZ = $29 ;1-byte high buffer length
ICAX1Z = $2A ;AUXILIARY INFORMATION FIRST BYTE
ICAX2Z = $2B ;1-byte second auxiliary information
ICSPRZ = $2C ;4-byte spares
ENTVEC = $2C ;##rev2## 2-byte (not used)
ICIDNO = $2E ;IOCB NUMBER X 16
CIOCHR = $2F ;CHARACTER BYTE FOR CURRENT OPERATION
STATUS = $30 ;INTERNAL STATUS STORAGE
CHKSUM = $31 ;CHECKSUM (SINGLE BYTE SUM WITH CARRY)
BUFRLO = $32 ;POINTER TO DATA BUFFER (LO BYTE)
BUFRHI = $33 ;POINTER TO DATA BUFFER (HI BYTE)
BFENLO = $34 ;NEXT BYTE PAST END OF THE DATA BUFFER LO
BFENHI = $35 ;NEXT BYTE PAST END OF THE DATA BUFFER HI
;CRETRY = $36 ;##old## NUMBER OF COMMAND FRAME RETRIES
;DRETRY = $37 ;##old## NUMBER OF DEVICE RETRIES
LTEMP = $36 ;##1200xl## 2-byte loader temporary
BUFRFL = $38 ;DATA BUFFER FULL FLAG
RECVDN = $39 ;RECEIVE DONE FLAG
XMTDON = $3A ;TRANSMISSION DONE FLAG
CHKSNT = $3B ;CHECKSUM SENT FLAG
NOCKSM = $3C ;NO CHECKSUM FOLLOWS DATA FLAG
BPTR = $3D ;1-byte cassette buffer pointer
FTYPE = $3E ;1-byte cassette IRG type
FEOF = $3F ;1-byte cassette EOF flag (0 = quiet)
FREQ = $40 ;1-byte cassette beep counter
SOUNDR = $41 ;NOISY I/0 FLAG. (ZERO IS QUIET)
CRITIC = $42 ;DEFINES CRITICAL SECTION (CRITICAL IF NON-Z)
FMSZPG = $43 ;DISK FILE MANAGER SYSTEM ZERO PAGE
;CKEY = $4A ;##old## FLAG SET WHEN GAME START PRESSED
ZCHAIN = $4A ;##1200xl## 2-byte handler linkage chain pointer
;CASSBT = $4B ;##old## CASSETTE BOOT FLAG
DSTAT = $4C ;DISPLAY STATUS
ATRACT = $4D ;ATRACT FLAG
DRKMSK = $4E ;DARK ATRACT MASK
COLRSH = $4F ;ATRACT COLOR SHIFTER (EOR'ED WITH PLAYFIELD
TMPCHR = $50 ;1-byte temporary character
HOLD1 = $51 ;1-byte temporary
LMARGN = $52 ;left margin (normally 2, cc65 C startup code sets it to 0)
RMARGN = $53 ;right margin (normally 39 if no XEP80 is used)
ROWCRS = $54 ;1-byte cursor row
COLCRS = $55 ;2-byte cursor column
DINDEX = $57 ;1-byte display mode
SAVMSC = $58 ;2-byte saved memory scan counter
OLDROW = $5A ;1-byte prior row
OLDCOL = $5B ;2-byte prior column
OLDCHR = $5D ;DATA UNDER CURSOR
OLDADR = $5E ;2-byte saved cursor memory address
FKDEF = $60 ;##1200xl## 2-byte function key definition table
;NEWROW = $60 ;##old## POINT DRAW GOES TO
;NEWCOL = $61 ;##old##
PALNTS = $62 ;##1200xl## 1-byte PAL/NTSC indicator (0 = NTSC)
LOGCOL = $63 ;POINTS AT COLUMN IN LOGICAL LINE
ADRESS = $64 ;2-byte temporary address
MLTTMP = $66 ;1-byte temporary
OPNTMP = $66 ;FIRST BYTE IS USED IN OPEN AS TEMP
TOADR = $66 ;##rev2## 2-byte destination address
SAVADR = $68 ;2-byte saved address
FRMADR = $68 ;##rev2## 2-byte source address
RAMTOP = $6A ;RAM SIZE DEFINED BY POWER ON LOGIC
BUFCNT = $6B ;BUFFER COUNT
BUFSTR = $6C ;EDITOR GETCH POINTER
BITMSK = $6E ;BIT MASK
SHFAMT = $6F ;1-byte shift amount for pixel justifucation
ROWAC = $70 ;2-byte draw working row
COLAC = $72 ;2-byte draw working column
ENDPT = $74 ;2-byte end point
DELTAR = $76 ;1-byte row difference
DELTAC = $77 ;2-byte column difference
KEYDEF = $79 ;##1200xl## 2-byte key definition table address
;ROWINC = $79 ;##old##
;COLINC = $7A ;##old##
SWPFLG = $7B ;NON-0 1F TXT AND REGULAR RAM IS SWAPPED
HOLDCH = $7C ;CH IS MOVED HERE IN KGETCH BEFORE CNTL & SH
INSDAT = $7D ;1-byte temporary
COUNTR = $7E ;2-byte draw iteration count
; Floating Point Package Page Zero Address Equates
FR0 = $D4 ;6-byte register 0
FR0M = $D5 ;##rev2## 5-byte register 0 mantissa
QTEMP = $D9 ;##rev2## 1-byte temporary
FRE = $DA ;6-byte (internal) register E
FR1 = $E0 ;FP REG1
FR1M = $E1 ;##rev2## 5-byte register 1 mantissa
FR2 = $E6 ;6-byte (internal) register 2
FRX = $EC ;1-byte temporary
EEXP = $ED ;VALUE OF E
FRSIGN = $EE ;##rev2## 1-byte floating point sign
NSIGN = $EE ;SIGN OF #
PLYCNT = $EF ;##rev2## 1-byte polynomial degree
ESIGN = $EF ;SIGN OF EXPONENT
SGNFLG = $F0 ;##rev2## 1-byte sign flag
FCHRFLG = $F0 ;1ST CHAR FLAG
XFMFLG = $F1 ;##rev2## 1-byte transform flag
DIGRT = $F1 ;# OF DIGITS RIGHT OF DECIMAL
CIX = $F2 ;CURRENT INPUT INDEX
INBUFF = $F3 ;POINTS TO USER'S LINE INPUT BUFFER
ZTEMP1 = $F5 ;2-byte temporary
ZTEMP4 = $F7 ;2-byte temporary
ZTEMP3 = $F9 ;2-byte temporary
;DEGFLG = $FB ;##old## same as RADFLG
;RADFLG = $FB ;##old## 0=RADIANS, 6=DEGREES
FLPTR = $FC ;2-byte floating point number pointer
FPTR2 = $FE ;2-byte floating point number pointer
;-------------------------------------------------------------------------
; Page Two Address Equates
;-------------------------------------------------------------------------
INTABS = $0200 ;INTERRUPT RAM
VDSLST = $0200 ;DISPLAY LIST NMI VECTOR
VPRCED = $0202 ;PROCEED LINE IRQ VECTOR
VINTER = $0204 ;INTERRUPT LINE IRQ VECTOR
VBREAK = $0206 ;SOFTWARE BREAK (00) INSTRUCTION IRQ VECTOR
VKEYBD = $0208 ;POKEY KEYBOARD IRQ VECTOR
VSERIN = $020A ;POKEY SERIAL INPUT READY IRQ
VSEROR = $020C ;POKEY SERIAL OUTPUT READY IRQ
VSEROC = $020E ;POKEY SERIAL OUTPUT COMPLETE IRQ
VTIMR1 = $0210 ;POKEY TIMER 1 IRQ
VTIMR2 = $0212 ;POKEY TIMER 2 IRQ
VTIMR4 = $0214 ;POKEY TIMER 4 IRQ
VIMIRQ = $0216 ;IMMEDIATE IRQ VECTOR
CDTMV1 = $0218 ;COUNT DOWN TIMER 1
CDTMV2 = $021A ;COUNT DOWN TIMER 2
CDTMV3 = $021C ;COUNT DOWN TIMER 3
CDTMV4 = $021E ;COUNT DOWN TIMER 4
CDTMV5 = $0220 ;COUNT DOWN TIMER 5
VVBLKI = $0222 ;IMMEDIATE VERTICAL BLANK NMI VECTOR
VVBLKD = $0224 ;DEFERRED VERTICAL BLANK NMI VECTOR
CDTMA1 = $0226 ;COUNT DOWN TIMER 1 JSR ADDRESS
CDTMA2 = $0228 ;COUNT DOWN TIMER 2 JSR ADDRESS
CDTMF3 = $022A ;COUNT DOWN TIMER 3 FLAG
SRTIMR = $022B ;SOFTWARE REPEAT TIMER
CDTMF4 = $022C ;COUNT DOWN TIMER 4 FLAG
INTEMP = $022D ;IAN'S TEMP
CDTMF5 = $022E ;COUNT DOWN TIMER FLAG 5
SDMCTL = $022F ;SAVE DMACTL REGISTER
SDLSTL = $0230 ;SAVE DISPLAY LIST LOW BYTE
SDLSTH = $0231 ;SAVE DISPLAY LIST HI BYTE
SSKCTL = $0232 ;SKCTL REGISTER RAM
LCOUNT = $0233 ;##1200xl## 1-byte relocating loader record
LPENH = $0234 ;LIGHT PEN HORIZONTAL VALUE
LPENV = $0235 ;LIGHT PEN VERTICAL VALUE
BRKKY = $0236 ;BREAK KEY VECTOR
;RELADR = $0238 ;##1200xl## 2-byte relocatable loader address
VPIRQ = $0238 ;##rev2## 2-byte parallel device IRQ vector
CDEVIC = $023A ;COMMAND FRAME BUFFER - DEVICE
CCOMND = $023B ;COMMAND
CAUX1 = $023C ;COMMAND AUX BYTE 1
CAUX2 = $023D ;COMMAND AUX BYTE 2
TEMP = $023E ;TEMPORARY RAM CELL
ERRFLG = $023F ;ERROR FLAG - ANY DEVICE ERROR EXCEPT TIME OUT
DFLAGS = $0240 ;DISK FLAGS FROM SECTOR ONE
DBSECT = $0241 ;NUMBER OF DISK BOOT SECTORS
BOOTAD = $0242 ;ADDRESS WHERE DISK BOOT LOADER WILL BE PUT
COLDST = $0244 ;COLDSTART FLAG (1=IN MIDDLE OF COLDSTART>
RECLEN = $0245 ;##1200xl## 1-byte relocating loader record length
DSKTIM = $0246 ;DISK TIME OUT REGISTER
;LINBUF = $0247 ;##old## CHAR LINE BUFFER
PDVMSK = $0247 ;##rev2## 1-byte parallel device selection mask
SHPDVS = $0248 ;##rev2## 1-byte PDVS (parallel device select)
PDIMSK = $0249 ;##rev2## 1-byte parallel device IRQ selection
RELADR = $024A ;##rev2## 2-byte relocating loader relative adr.
PPTMPA = $024C ;##rev2## 1-byte parallel device handler temporary
PPTMPX = $024D ;##rev2## 1-byte parallel device handler temporary
CHSALT = $026B ;##1200xl## 1-byte character set alternate
VSFLAG = $026C ;##1200xl## 1-byte fine vertical scroll count
KEYDIS = $026D ;##1200xl## 1-byte keyboard disable
FINE = $026E ;##1200xl## 1-byte fine scrolling mode
GPRIOR = $026F ;GLOBAL PRIORITY CELL
PADDL0 = $0270 ;1-byte potentiometer 0
PADDL1 = $0271 ;1-byte potentiometer 1
PADDL2 = $0272 ;1-byte potentiometer 2
PADDL3 = $0273 ;1-byte potentiometer 3
PADDL4 = $0274 ;1-byte potentiometer 4
PADDL5 = $0275 ;1-byte potentiometer 5
PADDL6 = $0276 ;1-byte potentiometer 6
PADDL7 = $0277 ;1-byte potentiometer 7
STICK0 = $0278 ;1-byte joystick 0
STICK1 = $0279 ;1-byte joystick 1
STICK2 = $027A ;1-byte joystick 2
STICK3 = $027B ;1-byte joystick 3
PTRIG0 = $027C ;1-byte paddle trigger 0
PTRIG1 = $027D ;1-byte paddle trigger 1
PTRIG2 = $027E ;1-byte paddle trigger 2
PTRIG3 = $027F ;1-byte paddle trigger 3
PTRIG4 = $0280 ;1-byte paddle trigger 4
PTRIG5 = $0281 ;1-byte paddle trigger 5
PTRIG6 = $0281 ;1-byte paddle trigger 6
PTRIG7 = $0283 ;1-byte paddle trigger 7
STRIG0 = $0284 ;1-byte joystick trigger 0
STRIG1 = $0285 ;1-byte joystick trigger 1
STRIG2 = $0286 ;1-byte joystick trigger 2
STRIG3 = $0287 ;1-byte joystick trigger 3
;CSTAT = $0288 ;##old## cassette status register
HIBYTE = $0288 ;##1200xl## 1-byte relocating loader high byte
WMODE = $0289 ;1-byte cassette WRITE mode
BLIM = $028A ;1-byte cassette buffer limit
IMASK = $028B ;##rev2## (not used)
JVECK = $028C ;2-byte jump vector or temporary
NEWADR = $028E ;##1200xl## 2-byte relocating address
TXTROW = $0290 ;TEXT ROWCRS
TXTCOL = $0291 ;TEXT COLCRS
TINDEX = $0293 ;TEXT INDEX
TXTMSC = $0294 ;FOOLS CONVRT INTO NEW MSC
TXTOLD = $0296 ;OLDROW & OLDCOL FOR TEXT (AND THEN SOME)
;TMPX1 = $029C ;##old## 1-byte temporary register
CRETRY = $029C ;##1200xl## 1-byte number of command frame retries
HOLD3 = $029D ;1-byte temporary
SUBTMP = $029E ;1-byte temporary
HOLD2 = $029F ;1-byte (not used)
DMASK = $02A0 ;1-byte display (pixel location) mask
TMPLBT = $02A1 ;1-byte (not used)
ESCFLG = $02A2 ;ESCAPE FLAG
TABMAP = $02A3 ;15-byte (120 bit) tab stop bit map
LOGMAP = $02B2 ;LOGICAL LINE START BIT MAP
INVFLG = $02B6 ;INVERSE VIDEO FLAG (TOGGLED BY ATARI KEY)
FILFLG = $02B7 ;RIGHT FILL FLAG FOR DRAW
TMPROW = $02B8 ;1-byte temporary row
TMPCOL = $02B9 ;2-byte temporary column
SCRFLG = $02BB ;SET IF SCROLL OCCURS
HOLD4 = $02BC ;TEMP CELL USED IN DRAW ONLY
;HOLD5 = $02BD ;##old## DITTO
DRETRY = $02BD ;##1200xl## 1-byte number of device retries
SHFLOK = $02BE ;1-byte shift/control lock flags
BOTSCR = $02BF ;BOTTOM OF SCREEN 24 NORM 4 SPLIT
PCOLR0 = $02C0 ;1-byte player-missile 0 color/luminance
PCOLR1 = $02C1 ;1-byte player-missile 1 color/luminance
PCOLR2 = $02C2 ;1-byte player-missile 2 color/luminance
PCOLR3 = $02C3 ;1-byte player-missile 3 color/luminance
COLOR0 = $02C4 ;1-byte playfield 0 color/luminance
COLOR1 = $02C5 ;1-byte playfield 1 color/luminance
COLOR2 = $02C6 ;1-byte playfield 2 color/luminance
COLOR3 = $02C7 ;1-byte playfield 3 color/luminance
COLOR4 = $02C8 ;1-byte background color/luminance
PARMBL = $02C9 ;##rev2## 6-byte relocating loader parameter
RUNADR = $02C9 ;##1200xl## 2-byte run address
HIUSED = $02CB ;##1200xl## 2-byte highest non-zero page address
ZHIUSE = $02CD ;##1200xl## 2-byte highest zero page address
OLDPAR = $02CF ;##rev2## 6-byte relocating loader parameter
GBYTEA = $02CF ;##1200xl## 2-byte GET-BYTE routine address
LOADAD = $02D1 ;##1200xl## 2-byte non-zero page load address
ZLOADA = $02D3 ;##1200xl## 2-byte zero page load address
DSCTLN = $02D5 ;##1200xl## 2-byte disk sector length
ACMISR = $02D7 ;##1200xl## 2-byte ACMI interrupt service routine
KRPDEL = $02D9 ;##1200xl## 1-byte auto-repeat delay
KEYREP = $02DA ;##1200xl## 1-byte auto-repeat rate
NOCLIK = $02DB ;##1200xl## 1-byte key click disable
HELPFG = $02DC ;##1200xl## 1-byte HELP key flag (0 = no HELP)
DMASAV = $02DD ;##1200xl## 1-byte SDMCTL save/restore
PBPNT = $02DE ;##1200xl## 1-byte printer buffer pointer
PBUFSZ = $02DF ;##1200xl## 1-byte printer buffer size
GLBABS = $02E0 ;4-byte global variables for non-DOS users
RUNAD = $02E0 ;##map## 2-byte binary file run address
INITAD = $02E2 ;##map## 2-byte binary file initialization address
RAMSIZ = $02E4 ;RAM SIZE (HI BYTE ONLY)
MEMTOP = $02E5 ;TOP OF AVAILABLE USER MEMORY
MEMLO = $02E7 ;BOTTOM OF AVAILABLE USER MEMORY
HNDLOD = $02E9 ;##1200xl## 1-byte user load flag
DVSTAT = $02EA ;STATUS BUFFER
CBAUDL = $02EE ;1-byte low cassette baud rate
CBAUDH = $02EF ;1-byte high cassette baud rate
CRSINH = $02F0 ;CURSOR INHIBIT (00 = CURSOR ON)
KEYDEL = $02F1 ;KEY DELAY
CH1 = $02F2 ;1-byte prior keyboard character
CHACT = $02F3 ;CHACTL REGISTER RAM
CHBAS = $02F4 ;CHBAS REGISTER RAM
NEWROW = $02F5 ;##1200xl## 1-byte draw destination row
NEWCOL = $02F6 ;##1200xl## 2-byte draw destination column
ROWINC = $02F8 ;##1200xl## 1-byte draw row increment
COLINC = $02F9 ;##1200xl## 1-byte draw column increment
CHAR = $02FA ;1-byte internal character
ATACHR = $02FB ;ATASCII CHARACTER
CH = $02FC ;GLOBAL VARIABLE FOR KEYBOARD
FILDAT = $02FD ;RIGHT FILL DATA <DRAW>
DSPFLG = $02FE ;DISPLAY FLAG DISPLAY CNTLS IF NON-ZERO
SSFLAG = $02FF ;START/STOP FLAG FOR PAGING (CNTL 1). CLEARE
;-------------------------------------------------------------------------
; Page Three Address Equates
;-------------------------------------------------------------------------
DCB = $0300 ;DEVICE CONTROL BLOCK
DDEVIC = $0300 ;PERIPHERAL UNIT 1 BUS I.D. NUMBER
DUNIT = $0301 ;UNIT NUMBER
DCOMND = $0302 ;BUS COMMAND
DSTATS = $0303 ;COMMAND TYPE/STATUS RETURN
DBUFLO = $0304 ;1-byte low data buffer address
DBUFHI = $0305 ;1-byte high data buffer address
DTIMLO = $0306 ;DEVICE TIME OUT IN 1 SECOND UNITS
DUNUSE = $0307 ;UNUSED BYTE
DBYTLO = $0308 ;1-byte low number of bytes to transfer
DBYTHI = $0309 ;1-byte high number of bytes to transfer
DAUX1 = $030A ;1-byte first command auxiliary
DAUX2 = $030B ;1-byte second command auxiliary
TIMER1 = $030C ;INITIAL TIMER VALUE
;ADDCOR = $030E ;##old## ADDITION CORRECTION
JMPERS = $030E ;##1200xl## 1-byte jumper options
CASFLG = $030F ;CASSETTE MODE WHEN SET
TIMER2 = $0310 ;2-byte final baud rate timer value
TEMP1 = $0312 ;TEMPORARY STORAGE REGISTER
;TEMP2 = $0314 ;##old## TEMPORARY STORAGE REGISTER
TEMP2 = $0313 ;##1200xl## 1-byte temporary
PTIMOT = $0314 ;##1200xl## 1-byte printer timeout
TEMP3 = $0315 ;TEMPORARY STORAGE REGISTER
SAVIO = $0316 ;SAVE SERIAL IN DATA PORT
TIMFLG = $0317 ;TIME OUT FLAG FOR BAUD RATE CORRECTION
STACKP = $0318 ;SIO STACK POINTER SAVE CELL
TSTAT = $0319 ;TEMPORARY STATUS HOLDER
HATABS = $031A ;35-byte handler address table (was 38 bytes)
PUPBT1 = $033D ;##1200xl## 1-byte power-up validation byte 1
PUPBT2 = $033E ;##1200xl## 1-byte power-up validation byte 2
PUPBT3 = $033F ;##1200xl## 1-byte power-up validation byte 3
IOCB = $0340 ;I/O CONTROL BLOCKS
ICHID = $0340 ;HANDLER INDEX NUMBER (FF=IOCB FREE)
ICDNO = $0341 ;DEVICE NUMBER (DRIVE NUMBER)
ICCOM = $0342 ;COMMAND CODE
ICSTA = $0343 ;STATUS OF LAST IOCB ACTION
ICBAL = $0344 ;1-byte low buffer address
ICBAH = $0345 ;1-byte high buffer address
ICPTL = $0346 ;1-byte low PUT-BYTE routine address - 1
ICPTH = $0347 ;1-byte high PUT-BYTE routine address - 1
ICBLL = $0348 ;1-byte low buffer length
ICBLH = $0349 ;1-byte high buffer length
ICAX1 = $034A ;1-byte first auxiliary information
ICAX2 = $034B ;1-byte second auxiliary information
ICAX3 = $034C ;1-byte third auxiliary information
ICAX4 = $034D ;1-byte fourth auxiliary information
ICAX5 = $034E ;1-byte fifth auxiliary information
ICSPR = $034F ;SPARE BYTE
PRNBUF = $03C0 ;PRINTER BUFFER
SUPERF = $03E8 ;##1200xl## 1-byte editor super function flag
CKEY = $03E9 ;##1200xl## 1-byte cassette boot request flag
CASSBT = $03EA ;##1200xl## 1-byte cassette boot flag
CARTCK = $03EB ;##1200xl## 1-byte cartridge equivalence check
DERRF = $03EC ;##rev2## 1-byte screen OPEN error flag
; Remainder of Page Three Not Cleared upon Reset
ACMVAR = $03ED ;##1200xl## 11 bytes reserved for ACMI
BASICF = $03F8 ;##rev2## 1-byte BASIC switch flag
MINTLK = $03F9 ;##1200xl## 1-byte ACMI module interlock
GINTLK = $03FA ;##1200xl## 1-byte cartridge interlock
CHLINK = $03FB ;##1200xl## 2-byte loaded handler chain link
CASBUF = $03FD ;CASSETTE BUFFER
;-------------------------------------------------------------------------
; Page Four/Five Address Equates
;-------------------------------------------------------------------------
; USER AREA STARTS HERE AND GOES TO END OF PAGE FIVE
USAREA = $0480 ;128 bytes reserved for application
LBPR1 = $057E ;LBUFF PREFIX 1
LBPR2 = $057F ;LBUFF PREFIX 2
LBUFF = $0580 ;128-byte line buffer
PLYARG = $05E0 ;6-byte floating point polynomial argument
FPSCR = $05E6 ;6-byte floating point temporary
FPSCR1 = $05EC ;6-byte floating point temporary
;LBFEND = $05FF ;##old## END OF LBUFF
DOS = $0700
;-------------------------------------------------------------------------
; Cartridge Address Equates
;-------------------------------------------------------------------------
CARTCS = $BFFA ;##rev2## 2-byte cartridge coldstart address
CART = $BFFC ;##rev2## 1-byte cartridge present indicator
;0=Cart Exists
CARTFG = $BFFD ;##rev2## 1-byte cartridge flags
;D7 0=Not a Diagnostic Cart
; 1=Is a Diagnostic cart and control is
; given to cart before any OS is init.
;D2 0=Init but Do not Start Cart
; 1=Init and Start Cart
;D0 0=Do not boot disk
; 1=Boot Disk
CARTAD = $BFFE ;##rev2## 2-byte cartridge start vector
;-------------------------------------------------------------------------
; CTIA/GTIA Address Equates
;-------------------------------------------------------------------------
GTIA = $D000 ;CTIA/GTIA area
.include "atari_gtia.inc"
;-------------------------------------------------------------------------
; PBI Address Equates
;-------------------------------------------------------------------------
PBI = $D100 ;##rev2## parallel bus interface area
; Read Addresses
PDVI = $D1FF ;##rev2## parallel device IRQ status
; Write Addresses
PDVS = $D1FF ;##rev2## parallel device select
;-------------------------------------------------------------------------
; POKEY Address Equates
;-------------------------------------------------------------------------
POKEY = $D200 ;POKEY area
.include "atari_pokey.inc"
;-------------------------------------------------------------------------
; ANTIC Address Equates
;-------------------------------------------------------------------------
ANTIC = $D400 ;ANTIC area
.include "atari_antic.inc"
; PBI RAM Address Equates
PBIRAM = $D600 ;##rev2## parallel bus interface RAM area
; Parallel Device Address Equates
PDID1 = $D803 ;##rev2## parallel device ID 1
PDIDV = $D805 ;##rev2## parallel device I/O vector
PDIRQV = $D808 ;##rev2## parallel device IRQ vector
PDID2 = $D80B ;##rev2## parallel device ID 2
PDVV = $D80D ;##rev2## parallel device vector table
;-------------------------------------------------------------------------
; PIA Address Equates
;-------------------------------------------------------------------------
PIA = $D300 ;PIA area
PORTA = $D300 ;port A direction register or jacks one/two
PORTB = $D301 ;port B direction register or memory management
PACTL = $D302 ;port A control
PBCTL = $D303 ;port B control
;-------------------------------------------------------------------------
; Floating Point Package Address Equates
;-------------------------------------------------------------------------
AFP = $D800 ;convert ASCII to floating point
FASC = $D8E6 ;convert floating point to ASCII
IFP = $D9AA ;convert integer to floating point
FPI = $D9D2 ;convert floating point to integer
ZFR0 = $DA44 ;zero FR0
ZF1 = $DA46 ;zero floating point number
FSUB = $DA60 ;subtract floating point numbers
FADD = $DA66 ;add floating point numbers
FMUL = $DADB ;multiply floating point numbers
FDIV = $DB28 ;divide floating point numbers
PLYEVL = $DD40 ;evaluate floating point polynomial
FLD0R = $DD89 ;load floating point number
FLD0P = $DD8D ;load floating point number
FLD1R = $DD98 ;load floating point number
PLD1P = $DD9C ;load floating point number
FST0R = $DDA7 ;store floating point number
FST0P = $DDAB ;store floating point number
FMOVE = $DDB6 ;move floating point number
LOG = $DECD ;calculate floating point logarithm
LOG10 = $DED1 ;calculate floating point base 10 logarithm
EXP = $DDC0 ;calculate floating point exponential
EXP10 = $DDCC ;calculate floating point base 10 exponential
;-------------------------------------------------------------------------
; Device Handler Vector Table Address Equates
;-------------------------------------------------------------------------
EDITRV = $E400 ;editor handler vector table
SCRENV = $E410 ;screen handler vector table
KEYBDV = $E420 ;keyboard handler vector table
PRINTV = $E430 ;printer handler vector table
CASETV = $E440 ;cassette handler vector table
;-------------------------------------------------------------------------
; Jump Vector Address Equates
;-------------------------------------------------------------------------
DISKIV = $E450 ;vector to initialize DIO
DSKINV = $E453 ;vector to DIO
.ifdef __ATARIXL__
.ifndef SHRAM_HANDLERS
.import CIO_handler, SIO_handler, SETVBV_handler
.endif
.define CIOV CIO_handler
.define SIOV SIO_handler
.define SETVBV SETVBV_handler
CIOV_org = $E456 ;vector to CIO
SIOV_org = $E459 ;vector to SIO
SETVBV_org = $E45C ;vector to set VBLANK parameters
.else
CIOV = $E456 ;vector to CIO
SIOV = $E459 ;vector to SIO
SETVBV = $E45C ;vector to set VBLANK parameters
; aliases in order not to have to sprinkle common code with .ifdefs
CIOV_org = CIOV
SIOV_org = SIOV
SETVBV_org = SETVBV
.endif
SYSVBV = $E45F ;vector to process immediate VBLANK
XITVBV = $E462 ;vector to process deferred VBLANK
SIOINV = $E465 ;vector to initialize SIO
SENDEV = $E468 ;vector to enable SEND
INTINV = $E46B ;vector to initialize interrupt handler
CIOINV = $E46E ;vector to initialize CIO
BLKBDV = $E471 ;vector to power-up display
WARMSV = $E474 ;vector to warmstart
COLDSV = $E477 ;vector to coldstart
RBLOKV = $E47A ;vector to read cassette block
CSOPIV = $E47D ;vector to open cassette for input
VCTABL = $E480 ;RAM vector initial value table
PUPDIV = $E480 ;##rev2## vector to power-up display
SLFTSV = $E483 ;##rev2## vector to self-test
PHENTV = $E486 ;##rev2## vector to enter peripheral handler
PHUNLV = $E489 ;##rev2## vector to unlink peripheral handler
PHINIV = $E48C ;##rev2## vector to initialize peripheral handler
GPDVV = $E48F ;##rev2## generic parallel device handler vector
; NOTE: OS rom self-test labels are not included in this file
;-------------------------------------------------------------------------
; Some misc. stuff from the 400/800 rev.B source
;-------------------------------------------------------------------------
; THE FOLLOWING ARE IN BASIC CARTRIDGE:
SIN = $BD81 ;FR0 <- SIN (FR0) DEGFLG (0=RAD,6=DEG) CARRY
COS = $BD73 ;FR0 <- COS (FR0) CARRY
ATAN = $BE43 ;FR0 <- ATAN(FR0) CARRY
SQR = $BEB1 ;FR0 <- ROOT(FR0) CARRY
RADON = 0 ;INDICATES RADIANS
DEGON = 6 ;INDICATES DEGREES
ASCZER = '0' ;ASCII ZERO
COLON = $3A ;ASCII COLON
CR = $9B ;SYSTEM EOL (CARRIAGE RETURN)
;-------------------------------------------------------------------------
; 6502
;-------------------------------------------------------------------------
NMIVEC = $FFFA
RESVEC = $FFFC
IRQVEC = $FFFE
;-------------------------------------------------------------------------
; BASIC
;-------------------------------------------------------------------------
LOMEM = $80 ;2-byte low memory pointer
VNTP = $82 ;2-byte variable name table address
VNTD = $84 ;2-byte variable name table end + 1
VVTP = $86 ;2-byte variable value table
STMTAB = $88 ;2-byte statement table address
STMCUR = $8A ;2-byte current statement pointer
STARP = $8C ;2-byte string and array table pointer
RUNSTK = $8E ;2-byte runtime stack address
BMEMTOP = $90 ;2-byte top of memory pointer
STOPLN = $BA ;2-byte stopped line number
ERRSAVE = $C3 ;1-byte error code
PTABW = $C9 ;1-byte tab width
;-------------------------------------------------------------------------
; ATASCII CHARACTER DEFS
;-------------------------------------------------------------------------
ATCLR = $7D ;CLEAR SCREEN CHARACTER
ATRUB = $7E ;BACK SPACE (RUBOUT)
ATTAB = $7F ;TAB
ATEOL = $9B ;END-OF-LINE
ATDELL = $9C ;delete line
ATINSL = $9D ;insert line
ATCTAB = $9E ;clear TAB
ATSTAB = $9F ;set TAB
ATBEL = $FD ;CONSOLE BELL
ATDEL = $FE ;delete char.
ATINS = $FF ;insert char.
ATURW = $1C ;UP-ARROW
ATDRW = $1D ;DOWN-ARROW
ATLRW = $1E ;LEFT-ARROW
ATRRW = $1F ;RIGHT-ARROW
ATESC = $1B ;ESCAPE
;-------------------------------------------------------------------------
; OFFSETS INTO SECTSIZETAB (DIO functions)
;-------------------------------------------------------------------------
sst_flag = 0 ; length 1
sst_sectsize = 1 ; 2
sst_driveno = 3 ; 1 (drive #)
sst_size = 4 ; size of one entry
; if changed, adapt diopncls.s
;-------------------------------------------------------------------------
; OFFSETS INTO dio_phys_pos
;-------------------------------------------------------------------------
diopp_head = 0 ; head
diopp_track = 1 ; track / cylinder
diopp_sector = 3 ; sector
diopp_size = 5 ; size of structure
;-------------------------------------------------------------------------
; VALUES for dos_type
;-------------------------------------------------------------------------
SPARTADOS = 0
OSADOS = 1 ; OS/A+
XDOS = 2
ATARIDOS = 3
MYDOS = 4
NODOS = 255
; The DOSes with dos_type below or equal MAX_DOS_WITH_CMDLINE do support
; command line arguments.
MAX_DOS_WITH_CMDLINE = XDOS
;-------------------------------------------------------------------------
; XDOS defines (version 2.4, taken from xdos24.pdf)
;-------------------------------------------------------------------------
XOPT = $070B ; XDOS options
XCAR = $070C ; XDOS cartridge address (+ $70D)
XPAT = $086F ; XDOS bugfix and patch number
XVER = $0870 ; XDOS version number
XFILE = $087D ; XDOS filename buffer
XLINE = $0880 ; XDOS DUP input line
XGLIN = $0871 ; get line
XSKIP = $0874 ; skip parameter
.ifdef __ATARIXL__
.ifndef SHRAM_HANDLERS
.import XMOVE_handler
.endif
.define XMOVE XMOVE_handler
XMOVE_org = $0877 ; move filename
.else
XMOVE = $0877 ; move filename
.endif
XGNUM = $087A ; get number
;-------------------------------------------------------------------------
; End of atari.inc
;-------------------------------------------------------------------------
;
; PET generic definitions.
;
; ---------------------------------------------------------------------------
; Zero page, Commodore stuff
VARTAB := $2A ; Pointer to start of BASIC variables
MEMSIZE := $34 ; Size of memory installed
TXTPTR := $77 ; Pointer into BASIC source code
TIME := $8D ; 60HZ clock
KEY_COUNT := $9E ; Number of keys in input buffer
RVS := $9F ; Reverse flag
CURS_FLAG := $A7 ; 1 = cursor off
CURS_BLINK := $A8 ; Blink counter
CURS_CHAR := $A9 ; Character under the cursor
CURS_STATE := $AA ; Cursor blink state
SCREEN_PTR := $C4 ; Pointer to current char in text screen
CURS_X := $C6 ; Cursor column
FNLEN := $D1 ; Length of filename
LFN := $D2 ; Current Logical File Number
SECADR := $D3 ; Secondary address
DEVNUM := $D4 ; Device number
SCR_LINELEN := $D5 ; Screen line length
CURS_Y := $D8 ; Cursor row
FNADR := $DA ; Pointer to file name
BASIC_BUF := $200 ; Location of command-line
BASIC_BUF_LEN = 81 ; Maximum length of command-line
KEY_BUF := $26F ; Keyboard buffer
;----------------------------------------------------------------------------
; PET ROM type detection
PET_DETECT := $FFFB
PET_2000 = $CA
PET_3000 = $FC
PET_4000 = $FD
;----------------------------------------------------------------------------
; Vector and other locations
IRQVec := $0090
BRKVec := $0092
NMIVec := $0094
; ---------------------------------------------------------------------------
; I/O: 6522 VIA2
VIA := $E840
VIA_PRB := $E840
VIA_PRA := $E841
VIA_DDRB := $E842
VIA_DDRA := $E843
;
; _heap.inc
;
; (c) Copyright 2003, Ullrich von Bassewitz (uz@cc65.org)
;
; Assembler include file that makes the constants and structures in _heap.h
; available for asm code.
; Struct freeblock
; NOTE: For performance reasons, the asm code often uses increment/decrement
; operators to access other offsets, so just changing offsets here will
; probably not work.
.struct freeblock
size .word
next .addr
prev .addr
.endstruct
; Struct usedblock
; See notes above
.struct usedblock
size .word
start .addr
.endstruct
HEAP_MIN_BLOCKSIZE = .sizeof (freeblock) ; Minimum size of an allocated block
HEAP_ADMIN_SPACE = .sizeof (usedblock) ; Additional space for used bock
; Variables
.global __heaporg
.global __heapptr
.global __heapend
.global __heapfirst
.global __heaplast
;
; Oric Atmos definitions
; BASIC 1.1 addresses
;
; ---------------------------------------------------------------------------
; Constants
SCREEN_XSIZE = 40 ; screen columns
SCREEN_YSIZE = 28 ; screen rows
FUNCTKEY = $A5
FNAME_LEN = 16 ; maximum length of file-name
; ---------------------------------------------------------------------------
; Zero page
SCRPTR := $12
BASIC_BUF := $35
CHARGOT := $E8
TXTPTR := $E9
; ---------------------------------------------------------------------------
; Low memory
MODEKEY := $0209
CAPSLOCK := $020C ; $7F = not locked, $FF = locked
PATTERN := $0213
IRQVec := $0245 ; "fast" interrupt vector
JOINFLAG := $025A ; 0 = don't joiu, $4A = join BASIC programs
VERIFYFLAG := $025B ; 0 = load, 1 = verify
CURS_Y := $0268
CURS_X := $0269
STATUS := $026A
BACKGRND := $026B
FOREGRND := $026C
TIMER3 := $0276
CFILE_NAME := $027F
CFOUND_NAME := $0293
FILESTART := $02A9
FILEEND := $02AB
AUTORUN := $02AD ; $00 = only load, $C7 = autorun
LANGFLAG := $02AE ; $00 = BASIC, $80 = machine code
LOADERR := $02B1
KEYBUF := $02DF
PARMERR := $02E0
PARAM1 := $02E1 ; & $02E2
PARAM2 := $02E3 ; & $02E4
PARAM3 := $02E5 ; & $02E6
BANGVEC := $02F5
; ---------------------------------------------------------------------------
; I/O locations
; 6522
.struct VIA ; Versatile Interface Adapter
.res $0300
PRB .byte ; Port Register B
PRA .byte ; Port Register A
DDRB .byte ; Data Direction Register B
DDRA .byte ; Data Direction Register A
T1 .word ; Timer 1
T1L .word ; Timer 1 Latch
T2 .word ; Timer 2
SR .byte ; Shift Register
ACR .byte ; Auxiliary Control Register
PCR .byte ; Peripheral Control Register
IFR .byte ; Interrupt Flags Register
IER .byte ; Interrupt Enable Register
PRA2 .byte ; Port Register A without handshaking
.endstruct
; 6551
.struct ACIA ; Asynchronous Communications Interface Adapter
.res $031C
DATA .byte
STATUS .byte
CMD .byte ; Command register
CTRL .byte ; Control register
.endstruct
SCREEN := $BB80
; ---------------------------------------------------------------------------
; ROM entries
GETLINE := $C592
TEXT := $EC21
HIRES := $EC33
CURSET := $F0C8
CURMOV := $F0FD
DRAW := $F110
CHAR := $F12D
POINT := $F1C8
PAPER := $F204
INK := $F210
PRINT := $F77C
; Sound Effects
PING := $FA9F
SHOOT := $FAB5
EXPLODE := $FACB
ZAP := $FAE1
TICK := $FB14
TOCK := $FB2A
;
; PCE definitions. By Groepaz/Hitmem.
;
; FIXME: screen dimensions my change according to selected video mode
screenrows = (224/8)
charsperline = 61
CH_HLINE = 1
CH_VLINE = 2
; huc6270 - Video Display Controller (VDC)
VDC_MAWR = 0 ; Memory Address Write Register
VDC_MARR = 1 ; Memory Address Read Register
VDC_VWR = 2 ; VRAM Write Register (write only)
VDC_VRR = 2 ; VRAM Read Register (read only)
VDC_UNK03 = 3 ; (unknown)
VDC_UNK04 = 4 ; (unknown)
VDC_CR = 5 ; Control Register
VDC_RCR = 6 ; Raster Counter Register
VDC_BXR = 7 ; Background X-Scroll Register
VDC_BYR = 8 ; Background Y-Scroll Register
VDC_MWR = 9 ; Memory-access Width Register
VDC_HSR = 10 ; Horizontal Sync Register
VDC_HDR = 11 ; Horizontal Display Register
VDC_VPR = 12 ; Vertical synchronous register
VDC_VDW = 13 ; Vertical display register
VDC_VCR = 14 ; Vertical display END position register
VDC_DCR = 15 ; (DMA) Control Register
VDC_SOUR = 16 ; (DMA) Source Register
VDC_DESR = 17 ; (DMA) Destination Register
VDC_LENR = 18 ; (DMA) Length Register
VDC_SATB = 19 ; Sprite Attribute Table
; VDC port
; Note: absolute addressing mode must be used when writing to this port
VDC_CTRL = $0000
VDC_DATA_LO = $0002
VDC_DATA_HI = $0003
; huc6260 - Video Color Encoder (vce)
; The DAC has a palette of 512 colours.
; bitmap of the palette data is this: 0000000gggrrrbbb.
; You can read and write the DAC-registers.
VCE = $0400 ; base
VCE_CTRL = $0400 ; write$00 to reset
VCE_ADDR_LO = $0402 ; LSB of byte offset into palette
VCE_ADDR_HI = $0403 ; MSB of byte offset into palette
VCE_DATA_LO = $0404 ; LSB of 16-bit palette data
VCE_DATA_HI = $0405 ; MSB of 16-bit palette data
; programmable sound generator (PSG)
PSG = $0800 ; base
PSG_CHAN_SELECT = $0800
PSG_GLOBAL_PAN = $0801
PSG_FREQ_LO = $0802
PSG_FREQ_HI = $0803
PSG_CHAN_CTRL = $0804
PSG_CHAN_PAN = $0805
PSG_CHAN_DATA = $0806
PSG_NOISE = $0807
PSG_LFO_FREQ = $0808
PSG_LFO_CTRL = $0809
; timer
TIMER = $0c00 ; base
TIMER_COUNT = $0c00
TIMER_CTRL = $0c01
JOY_CTRL = $1000
IRQ_MASK = $1402
IRQ_STATUS = $1403
CDR_MEM_DISABLE = $1803
CDR_MEM_ENABLE = $1807
; Write VDC register
.macro VREG arg1,arg2
st0 #arg1
st1 #<(arg2)
st2 #>(arg2)
.endmacro
;*****************************************************************************/
;* */
;* tgi-error.inc */
;* */
;* TGI error codes */
;* */
;* */
;* */
;* (C) 2002-2012, Ullrich von Bassewitz */
;* Roemerstrasse 52 */
;* D-70794 Filderstadt */
;* EMail: uz@cc65.org */
;* */
;* */
;* This software is provided 'as-is', without any expressed or implied */
;* warranty. In no event will the authors be held liable for any damages */
;* arising from the use of this software. */
;* */
;* Permission is granted to anyone to use this software for any purpose, */
;* including commercial applications, and to alter it and redistribute it */
;* freely, subject to the following restrictions: */
;* */
;* 1. The origin of this software must not be misrepresented; you must not */
;* claim that you wrote the original software. If you use this software */
;* in a product, an acknowledgment in the product documentation would be */
;* appreciated but is not required. */
;* 2. Altered source versions must be plainly marked as such, and must not */
;* be misrepresented as being the original software. */
;* 3. This notice may not be removed or altered from any source */
;* distribution. */
;* */
;*****************************************************************************/
; Error constants
.enum
TGI_ERR_OK ; No error
TGI_ERR_NO_DRIVER ; No driver available
TGI_ERR_CANNOT_LOAD ; Error loading driver or font
TGI_ERR_INV_DRIVER ; Invalid driver
TGI_ERR_INV_MODE ; Mode not supported by driver
TGI_ERR_INV_ARG ; Invalid function argument
TGI_ERR_INV_FUNC ; Function not supported
TGI_ERR_INV_FONT ; Font file is invalid
TGI_ERR_NO_RES ; Out of resources (memory, handles, ...)
TGI_ERR_UNKNOWN ; Unknown error
TGI_ERR_INSTALLED ; A driver is already installed
TGI_ERR_COUNT ; Special: Number of error messages
.endenum
;/*****************************************************************************/
;/* */
;/* em-error.inc */
;/* */
;/* EM error codes */
;/* */
;/* */
;/* */
;/* (C) 2002-2012, Ullrich von Bassewitz */
;/* Roemerstrasse 52 */
;/* D-70794 Filderstadt */
;/* EMail: uz@cc65.org */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
; Error constants
.enum
EM_ERR_OK ; No error
EM_ERR_NO_DRIVER ; No driver available
EM_ERR_CANNOT_LOAD ; Error loading driver
EM_ERR_INV_DRIVER ; Invalid driver
EM_ERR_NO_DEVICE ; Device (hardware) not found
EM_ERR_INSTALLED ; A driver is already installed
EM_ERR_COUNT ; Special: Number of error messages
.endenum
;/*****************************************************************************/
;/* */
;/* em-kernel.inc */
;/* */
;/* EM kernel interface */
;/* */
;/* */
;/* */
;/* (C) 2002-2003 Ullrich von Bassewitz */
;/* R<>merstrasse 52 */
;/* D-70794 Filderstadt */
;/* EMail: uz@cc65.org */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
;------------------------------------------------------------------------------
; The driver header
.struct EMD_HDR
ID .byte 3 ; Contains 0x65, 0x6d, 0x64 ("emd")
VERSION .byte 1 ; Interface version
LIBREF .addr ; Library reference
JUMPTAB .struct
INSTALL .addr ; INSTALL routine
UNINSTALL .addr ; UNINSTALL routine
PAGECOUNT .addr ; PAGECOUNT routine
MAP .addr ; MAP routine
USE .addr ; USE routine
MAPCLEAN .addr ; MAPCLEAN routine
COPYFROM .addr ; COPYFROM routine
COPYTO .addr ; COPYTO routine
.endstruct
.endstruct
;------------------------------------------------------------------------------
; The EMD API version, stored in EMD_HDR::VERSION
EMD_API_VERSION = $02
;------------------------------------------------------------------------------
; The asm equivalent to the C em_copy structure
.struct EM_COPY
BUF .addr ; Memory buffer to copy from or to
OFFS .byte ; Offset into page
PAGE .word ; Starting page to copy from or to
COUNT .word ; Number of bytes to copy
UNUSED .byte ; Make the size 8 bytes
.endstruct
;------------------------------------------------------------------------------
; Variables
.global _em_drv ; Pointer to driver
;------------------------------------------------------------------------------
; Driver entry points
.global emd_install
.global emd_uninstall
.global emd_pagecount
.global emd_map
.global emd_use
.global emd_commit
.global emd_copyfrom
.global emd_copyto
;------------------------------------------------------------------------------
; ASM functions
.global em_clear_ptr
;------------------------------------------------------------------------------
; C callable functions
.global _em_load_driver
.global _em_unload
.global _em_install
.global _em_uninstall
.global _em_pagecount
.global _em_map
.global _em_use
.global _em_commit
.global _em_copyfrom
.global _em_copyto
;
; zeropage.inc
;
; (C) Copyright 2002-2012, Ullrich von Bassewitz (uz@cc65.org)
;
; Assembler include file that imports the runtime zero page locations used
; by the compiler, ready for usage in asm code.
.globalzp sp, sreg, regsave
.globalzp ptr1, ptr2, ptr3, ptr4
.globalzp tmp1, tmp2, tmp3, tmp4
.globalzp regbank
; The size of the register bank
regbanksize = 6
; The total amount of zero page space used
zpspace = 26
; The amount of space that needs to be saved by an interrupt handler that
; calls C code (does not include the register bank, which is saved by the
; generated C code if required).
zpsavespace = zpspace - regbanksize
; Lynx system hardware includes
; Shawn Jefferson
; June 18th, 2004
;
; Reference:
; Bastian Schick's Lynx Documentation
; http://www.geocities.ws/SiliconValley/Byte/4242/lynx/
;
; ***
; *** Suzy Addresses
; ***
; Sprite Control Block
TMPADRL = $FC00
TMPADRH = $FC01
TILTACUML = $FC02
TILTACUMH = $FC03
HOFFL = $FC04
HOFFH = $FC05
VOFFL = $FC06
VOFFH = $FC07
VIDBASL = $FC08
VIDBASH = $FC09
COLLBASL = $FC0A
COLLBASH = $FC0B
VIDADRL = $FC0C
VIDADRH = $FC0D
COLLADRL = $FC0E
COLLADRH = $FC0F
SCBNEXTL = $FC10
SCBNEXTH = $FC11
SPRDLINEL = $FC12
SPRDLINEH = $FC13
HPOSSTRTL = $FC14
HPOSSTRTH = $FC15
VPOSSTRTL = $FC16
VPOSSTRTH = $FC17
SPRHSIZL = $FC18
SPRHSIZH = $FC19
SPRVSIZL = $FC1A
SPRVSIZH = $FC1B
STRETCHL = $FC1C
STRETCHH = $FC1D
TILTL = $FC1E
TILTH = $FC1F
SPRDOFFL = $FC20
SPRDOFFH = $FC21
SPRVPOSL = $FC22
SPRVPOSH = $FC23
COLLOFFL = $FC24
COLLOFFH = $FC25
VSIZACUML = $FC26
VSIZACUMH = $FC27
HSIZOFFL = $FC28
HSIZOFFH = $FC29
VSIZOFFL = $FC2A
VSIZOFFH = $FC2B
SCBADRL = $FC2C
SCBADRH = $FC2D
PROCADRL = $FC2E
PROCADRH = $FC2F
; Suzy Math
MATHD = $FC52
MATHC = $FC53
MATHB = $FC54
MATHA = $FC55
MATHP = $FC56
MATHN = $FC57
MATHH = $FC60
MATHG = $FC61
MATHF = $FC62
MATHE = $FC63
MATHM = $FC6C
MATHL = $FC6D
MATHK = $FC6E
MATHJ = $FC6F
; Suzy Misc
SPRCTL0 = $FC80
SPRCTL1 = $FC81
SPRCOLL = $FC82
SPRINIT = $FC83
SUZYHREV = $FC88
SUZYSREV = $FC89
SUZYBUSEN = $FC90
SPRGO = $FC91
SPRSYS = $FC92
JOYSTICK = $FCB0
SWITCHES = $FCB1
RCART0 = $FCB2
RCART1 = $FCB3
LEDS = $FCC0
PARSTATUS = $FCC2
PARDATA = $FCC3
HOWIE = $FCC4
; ***
; *** Mikey Addresses
; ***
; Mikey Timers
TIMER0 = $FD00
TIMER1 = $FD04
TIMER2 = $FD08
TIMER3 = $FD0C
TIMER4 = $FD10
TIMER5 = $FD14
TIMER6 = $FD18
TIMER7 = $FD1C
HTIMER = $FD00 ; horizontal line timer (timer 0)
VTIMER = $FD08 ; vertical blank timer (timer 2)
STIMER = $FD1C ; sound timer (timer 7)
HTIMBKUP = $FD00 ; horizontal line timer (timer 0)
HTIMCTLA = $FD01
HTIMCNT = $FD02
HTIMCTLB = $FD03
VTIMBKUP = $FD08 ; vertical blank timer (timer 2)
VTIMCTLA = $FD09
VTIMCNT = $FD0A
VTIMCTLB = $FD0B
BAUDBKUP = $FD10 ; serial timer (timer 4)
STIMBKUP = $FD1C ; sound timer (timer 7)
STIMCTLA = $FD1D
STIMCNT = $FD1E
STIMCTLB = $FD1F
TIM0BKUP = $FD00
TIM0CTLA = $FD01
TIM0CNT = $FD02
TIM0CTLB = $FD03
TIM1BKUP = $FD04
TIM1CTLA = $FD05
TIM1CNT = $FD06
TIM1CTLB = $FD07
TIM2BKUP = $FD08
TIM2CTLA = $FD09
TIM2CNT = $FD0A
TIM2CTLB = $FD0B
TIM3BKUP = $FD0C
TIM3CTLA = $FD0D
TIM3CNT = $FD0E
TIM3CTLB = $FD0F
TIM4BKUP = $FD10
TIM4CTLA = $FD11
TIM4CNT = $FD12
TIM4CTLB = $FD13
TIM5BKUP = $FD14
TIM5CTLA = $FD15
TIM5CNT = $FD16
TIM5CTLB = $FD17
TIM6BKUP = $FD18
TIM6CTLA = $FD19
TIM6CNT = $FD1A
TIM6CTLB = $FD1B
TIM7BKUP = $FD1C
TIM7CTLA = $FD1D
TIM7CNT = $FD1E
TIM7CTLB = $FD1F
; Mikey Audio
AUDIO0 = $FD20 ; audio channel 0
AUDIO1 = $FD28 ; audio channel 1
AUDIO2 = $FD30 ; audio channel 2
AUDIO3 = $FD38 ; audio channel 3
AUD0VOL = $FD20
AUD0FEED = $FD21
AUD0OUT = $FD22
AUD0SHIFT = $FD23
AUD0BKUP = $FD24
AUD0CTLA = $FD25
AUD0CNT = $FD26
AUD0CTLB = $FD27
AUD1VOL = $FD28
AUD1FEED = $FD29
AUD1OUT = $FD2A
AUD1SHIFT = $FD2B
AUD1BKUP = $FD2C
AUD1CTLA = $FD2D
AUD1CNT = $FD2E
AUD1CTLB = $FD2F
AUD2VOL = $FD30
AUD2FEED = $FD31
AUD2OUT = $FD32
AUD2SHIFT = $FD33
AUD2BKUP = $FD34
AUD2CTLA = $FD35
AUD2CNT = $FD36
AUD2CTLB = $FD37
AUD3VOL = $FD38
AUD3FEED = $FD39
AUD3OUT = $FD3A
AUD3SHIFT = $FD3B
AUD3BKUP = $FD3C
AUD3CTLA = $FD3D
AUD3CNT = $FD3E
AUD3CTLB = $FD3F
MSTEREO = $FD50
; Mikey Misc
; Interrupt bits in INTRST and INTSET
TIMER0_INTERRUPT = $01
TIMER1_INTERRUPT = $02
TIMER2_INTERRUPT = $04
TIMER3_INTERRUPT = $08
TIMER4_INTERRUPT = $10
TIMER5_INTERRUPT = $20
TIMER6_INTERRUPT = $40
TIMER7_INTERRUPT = $80
HBL_INTERRUPT = TIMER0_INTERRUPT
VBL_INTERRUPT = TIMER2_INTERRUPT
SERIAL_INTERRUPT = TIMER4_INTERRUPT
SND_INTERRUPT = TIMER7_INTERRUPT
INTRST = $FD80
INTSET = $FD81
MAGRDY0 = $FD84
MAGRDY1 = $FD85
AUDIN = $FD86
SYSCTL1 = $FD87
MIKEYHREV = $FD88
MIKEYSREV = $FD89
IODIR = $FD8A
IODAT = $FD8B
TxIntEnable = %10000000
RxIntEnable = %01000000
TxParEnable = %00010000
ResetErr = %00001000
TxOpenColl = %00000100
TxBreak = %00000010
ParEven = %00000001
TxReady = %10000000
RxReady = %01000000
TxEmpty = %00100000
RxParityErr = %00010000
RxOverrun = %00001000
RxFrameErr = %00000100
RxBreak = %00000010
ParityBit = %00000001
SERCTL = $FD8C
SERDAT = $FD8D
SDONEACK = $FD90
CPUSLEEP = $FD91
DISPCTL = $FD92
PBKUP = $FD93
DISPADRL = $FD94
DISPADRH = $FD95
MTEST0 = $FD9C
MTEST1 = $FD9D
MTEST2 = $FD9E
PALETTE = $FDA0 ; hardware rgb palette
GCOLMAP = $FDA0 ; hardware rgb palette (green)
RBCOLMAP = $FDB0 ; hardware rgb palette (red-blue)
; ***
; *** Misc Hardware + 6502 vectors
; ***
MAPCTL = $FFF9
VECTORS = $FFFB
INTVECTL = $FFFE
INTVECTH = $FFFF
RSTVECTL = $FFFC
RSTVECTH = $FFFD
NMIVECTL = $FFFA
NMIVECTH = $FFFB
;*****************************************************************************/
;* */
;* tgi-kernel.inc */
;* */
;* TGI kernel interface */
;* */
;* */
;* */
;* (C) 2002-2012, Ullrich von Bassewitz */
;* Roemerstrasse 52 */
;* D-70794 Filderstadt */
;* EMail: uz@cc65.org */
;* */
;* */
;* This software is provided 'as-is', without any expressed or implied */
;* warranty. In no event will the authors be held liable for any damages */
;* arising from the use of this software. */
;* */
;* Permission is granted to anyone to use this software for any purpose, */
;* including commercial applications, and to alter it and redistribute it */
;* freely, subject to the following restrictions: */
;* */
;* 1. The origin of this software must not be misrepresented; you must not */
;* claim that you wrote the original software. If you use this software */
;* in a product, an acknowledgment in the product documentation would be */
;* appreciated but is not required. */
;* 2. Altered source versions must be plainly marked as such, and must not */
;* be misrepresented as being the original software. */
;* 3. This notice may not be removed or altered from any source */
;* distribution. */
;* */
;*****************************************************************************/
;------------------------------------------------------------------------------
; The driver header
.struct TGI_HDR
ID .byte 3 ; Contains 0x74, 0x67, 0x69 ("tgi")
VERSION .byte 1 ; Interface version
LIBREF .addr ; Library reference
VARS .struct
XRES .word 1 ; X resolution
YRES .word 1 ; Y resolution
COLORCOUNT .byte 1 ; Number of available colors
PAGECOUNT .byte 1 ; Number of screens available
FONTWIDTH .byte 1 ; System font width in pixel
FONTHEIGHT .byte 1 ; System font height in pixel
ASPECTRATIO .word 1 ; Fixed point 8.8 format
FLAGS .byte 1 ; TGI driver flags
.endstruct
JUMPTAB .struct
INSTALL .addr ; INSTALL routine
UNINSTALL .addr ; UNINSTALL routine
INIT .addr ; INIT routine
DONE .addr ; DONE routine
GETERROR .addr ; GETERROR routine
CONTROL .addr ; CONTROL routine
CLEAR .addr ; CLEAR routine
SETVIEWPAGE .addr ; SETVIEWPAGE routine
SETDRAWPAGE .addr ; SETDRAWPAGE routine
SETCOLOR .addr ; SETCOLOR routine
SETPALETTE .addr ; SETPALETTE routine
GETPALETTE .addr ; GETPALETTE routine
GETDEFPALETTE .addr ; GETDEFPALETTE routine
SETPIXEL .addr ; SETPIXEL routine
GETPIXEL .addr ; GETPIXEL routine
LINE .addr ; LINE routine
BAR .addr ; BAR routine
TEXTSTYLE .addr ; TEXTSTYLE routine
OUTTEXT .addr ; OUTTEXT routine
IRQ .addr ; IRQ routine
.endstruct
.endstruct
;------------------------------------------------------------------------------
; The TGI API version, stored at TGI_HDR_VERSION
TGI_API_VERSION = $05
;------------------------------------------------------------------------------
; Bitmapped tgi driver flags, stored in TGI_HDR::VARS::FLAGS.
; Beware: Some of the bits are tested using the BIT instruction, so do not
; change the values without checking the code!
TGI_BM_FONT_FINESCALE = $80 ; Bitmap fonts are fine grained scalable
;------------------------------------------------------------------------------
; Text constants
TGI_FONT_BITMAP = 0
TGI_FONT_VECTOR = 1
TGI_TEXT_HORIZONTAL = 0
TGI_TEXT_VERTICAL = 1
;----------------------------------------------------------------------------
; Results of tgi_outcode
TGI_CLIP_NONE = $00
TGI_CLIP_LEFT = $01
TGI_CLIP_RIGHT = $02
TGI_CLIP_BOTTOM = $04
TGI_CLIP_TOP = $08
;------------------------------------------------------------------------------
; ASM accessible color constants
.global tgi_color_black:zp ; Target-specific value for black
.global tgi_color_white:zp ; Target-specific value for white
;------------------------------------------------------------------------------
; C accessible variables
.global _tgi_drv ; Pointer to driver
.global _tgi_error ; Last error code
.global _tgi_gmode ; Flag: graphics mode active
.global _tgi_curx ; Current drawing cursor X
.global _tgi_cury ; Current drawing cursor Y
.global _tgi_color ; Current drawing color
.global _tgi_font ; Which font to use
.global _tgi_textdir ; Current text direction
.global _tgi_vectorfont ; Pointer to vector font
.global _tgi_textscalew ; Text magnification for the width
.global _tgi_textscaleh ; Text magnification for the height
.global _tgi_charwidth ; Width of scaled system font char
.global _tgi_charheight ; Height of scaled system font char
.global _tgi_xres ; X resolution of the current mode
.global _tgi_yres ; Y resolution of the current mode
.global _tgi_xmax ; Maximum X coordinate
.global _tgi_ymax ; Maximum Y coordinate
.global _tgi_colorcount ; Number of available colors
.global _tgi_pagecount ; Number of available screen pages
.global _tgi_fontwidth ; System font width
.global _tgi_fontheight ; System font height
.global _tgi_aspectratio ; Aspect ratio, fixed point 8.8
.global _tgi_flags ; TGI driver flags
;------------------------------------------------------------------------------
; ASM accessible variables
.global tgi_clip_x1 ; Coordinate for line clipper
.global tgi_clip_y1 ; Coordinate for line clipper
.global tgi_clip_x2 ; Coordinate for line clipper
.global tgi_clip_y2 ; Coordinate for line clipper
;------------------------------------------------------------------------------
; Driver entry points
.global tgi_install
.global tgi_uninstall
.global tgi_init
.global tgi_done
.global tgi_geterror
.global tgi_control
.global tgi_clear
.global tgi_setviewpage
.global tgi_setdrawpage
.global tgi_setcolor
.global tgi_setpalette
.global tgi_getpalette
.global tgi_getdefpalette
.global tgi_setpixel
.global tgi_getpixel
.global tgi_line
.global tgi_bar
.global tgi_textstyle
.global tgi_outtext
;------------------------------------------------------------------------------
; ASM functions
.global tgi_clear_ptr
.global tgi_clippedline
.global tgi_curtoxy
.global tgi_getset
.global tgi_imulround
.global tgi_inv_arg
.global tgi_inv_drv
.global tgi_linepop
.global tgi_outcode
.global tgi_popxy
.global tgi_popxy2
.global tgi_set_ptr
;------------------------------------------------------------------------------
; C callable functions
.global _tgi_arc
.global _tgi_bar
.global _tgi_circle
.global _tgi_clear
.global _tgi_done
.global _tgi_ellipse
.global _tgi_getaspectratio
.global _tgi_getcolor
.global _tgi_getcolorcount
.global _tgi_getdefpalette
.global _tgi_geterror
.global _tgi_geterrormsg
.global _tgi_getmaxcolor
.global _tgi_getmaxx
.global _tgi_getmaxy
.global _tgi_getpagecount
.global _tgi_getpalette
.global _tgi_getpixel
.global _tgi_gettextheight
.global _tgi_gettextwidth
.global _tgi_getxres
.global _tgi_getyres
.global _tgi_gotoxy
.global _tgi_imulround
.global _tgi_init
.global _tgi_install
.global _tgi_install_vectorfont
.global _tgi_ioctl
.global _tgi_line
.global _tgi_lineto
.global _tgi_load_driver
.global _tgi_outtext
.global _tgi_outtextxy
.global _tgi_pieslice
.global _tgi_setaspectratio
.global _tgi_setcolor
.global _tgi_setdrawpage
.global _tgi_setpalette
.global _tgi_setpixel
.global _tgi_settextdir
.global _tgi_settextscale
.global _tgi_settextstyle
.global _tgi_setviewpage
.global _tgi_uninstall
.global _tgi_unload
;
; get_tv.inc
;
; Ullrich von Bassewitz, 2004-10-15
;
; Defines for the get_tv function.
; Error codes returned by all functions
.enum TV
NTSC
PAL
OTHER
.endenum
; get_tv function
.global _get_tv
;*****************************************************************************/
;* */
;* modload.inc */
;* */
;* o65 module loader interface for cc65 */
;* */
;* */
;* */
;* (C) 2002 Ullrich von Bassewitz */
;* Wacholderweg 14 */
;* D-70597 Stuttgart */
;* EMail: uz@musoftware.de */
;* */
;* */
;* This software is provided 'as-is', without any expressed or implied */
;* warranty. In no event will the authors be held liable for any damages */
;* arising from the use of this software. */
;* */
;* Permission is granted to anyone to use this software for any purpose, */
;* including commercial applications, and to alter it and redistribute it */
;* freely, subject to the following restrictions: */
;* */
;* 1. The origin of this software must not be misrepresented; you must not */
;* claim that you wrote the original software. If you use this software */
;* in a product, an acknowledgment in the product documentation would be */
;* appreciated but is not required. */
;* 2. Altered source versions must be plainly marked as such, and must not */
;* be misrepresented as being the original software. */
;* 3. This notice may not be removed or altered from any source */
;* distribution. */
;* */
;*****************************************************************************/
; Exports structures and functions to load relocatable o65 modules at
; runtime.
; Offsets for the mod_ctrl struct. This struct is passed to the module loader.
; It contains stuff, the loader needs to work, and another area where the
; loader will place informational data if it was successful. You will have to
; check the return code of mod_load before accessing any of these additional
; struct members.
.struct MOD_CTRL
READ .addr
CALLERDATA .word
MODULE .addr ; Pointer to module data
MODULE_SIZE .word ; Total size of loaded module
MODULE_ID .word
.endstruct
; unsigned char mod_load (struct mod_ctrl* ctrl);
; /* Load a module into memory and relocate it. The function will return an
; * error code (see below). If MLOAD_OK is returned, the outgoing fields in
; * the passed mod_ctrl struct contain information about the module just
; * loaded.
; */
.global _mod_load
; void mod_free (void* module);
; /* Free a loaded module. Note: The given pointer is the pointer to the
; * module memory, not a pointer to a control structure.
; */
.global _mod_free
; Errors
.enum
MLOAD_OK ; Module load successful
MLOAD_ERR_READ ; Read error
MLOAD_ERR_HDR ; Header error
MLOAD_ERR_OS ; Wrong OS
MLOAD_ERR_FMT ; Data format error
MLOAD_ERR_MEM ; Not enough memory
.endenum
;
; Definitions for the character type tables
;
; Ullrich von Bassewitz, 08.09.2001
;
; Make the __ctype table an exported/imported symbol
.global __ctype
; Define bitmapped constants for the table entries
CT_NONE = $00 ; Nothing special
CT_LOWER = $01 ; 0 - Lower case char
CT_UPPER = $02 ; 1 - Upper case char
CT_DIGIT = $04 ; 2 - Numeric digit
CT_XDIGIT = $08 ; 3 - Hex digit (both, lower and upper)
CT_CTRL = $10 ; 4 - Control character
CT_SPACE = $20 ; 5 - The space character itself
CT_OTHER_WS = $40 ; 6 - Other whitespace ('\f', '\n', '\r', '\t' and '\v')
CT_SPACE_TAB = $80 ; 7 - Space or tab character
; Combined stuff
CT_ALNUM = (CT_LOWER | CT_UPPER | CT_DIGIT)
CT_ALPHA = (CT_LOWER | CT_UPPER)
CT_CTRL_SPACE = (CT_CTRL | CT_SPACE)
CT_NOT_PUNCT = (CT_SPACE | CT_CTRL | CT_DIGIT | CT_UPPER | CT_LOWER)
.macro jeq Target
.if .match(Target, 0)
bne *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
beq Target
.else
bne *+5
jmp Target
.endif
.endmacro
.macro jne Target
.if .match(Target, 0)
beq *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
bne Target
.else
beq *+5
jmp Target
.endif
.endmacro
.macro jmi Target
.if .match(Target, 0)
bpl *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
bmi Target
.else
bpl *+5
jmp Target
.endif
.endmacro
.macro jpl Target
.if .match(Target, 0)
bmi *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
bpl Target
.else
bmi *+5
jmp Target
.endif
.endmacro
.macro jcs Target
.if .match(Target, 0)
bcc *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
bcs Target
.else
bcc *+5
jmp Target
.endif
.endmacro
.macro jcc Target
.if .match(Target, 0)
bcs *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
bcc Target
.else
bcs *+5
jmp Target
.endif
.endmacro
.macro jvs Target
.if .match(Target, 0)
bvc *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
bvs Target
.else
bvc *+5
jmp Target
.endif
.endmacro
.macro jvc Target
.if .match(Target, 0)
bvs *+5
jmp Target
.elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
bvc Target
.else
bvs *+5
jmp Target
.endif
.endmacro
;
; _file.inc
;
; (C) Copyright 2002 Ullrich von Bassewitz (uz@cc65.org)
;
; Assembler include file that makes the constants and structures in _file.h
; available for asm code.
; Struct _FILE
.struct _FILE
f_fd .byte
f_flags .byte
f_pushback .byte
.endstruct
; Flags field
_FCLOSED = $00
_FOPEN = $01
_FEOF = $02
_FERROR = $04
_FPUSHBACK = $08
; File table
.global __filetab
;-------------------------------------------------------------------------
; CTIA/GTIA Address Equates
;-------------------------------------------------------------------------
; Read/Write Addresses
CONSOL = GTIA + $1F ;console switches and speaker control
; Read Addresses
M0PF = GTIA + $00 ;missile 0 and playfield collision
M1PF = GTIA + $01 ;missile 1 and playfield collision
M2PF = GTIA + $02 ;missile 2 and playfield collision
M3PF = GTIA + $03 ;missile 3 and playfield collision
P0PF = GTIA + $04 ;player 0 and playfield collision
P1PF = GTIA + $05 ;player 1 and playfield collision
P2PF = GTIA + $06 ;player 2 and playfield collision
P3PF = GTIA + $07 ;player 3 and playfield collision
M0PL = GTIA + $08 ;missile 0 and player collision
M1PL = GTIA + $09 ;missile 1 and player collision
M2PL = GTIA + $0A ;missile 2 and player collision
M3PL = GTIA + $0B ;missile 3 and player collision
P0PL = GTIA + $0C ;player 0 and player collision
P1PL = GTIA + $0D ;player 1 and player collision
P2PL = GTIA + $0E ;player 2 and player collision
P3PL = GTIA + $0F ;player 3 and player collision
TRIG0 = GTIA + $10 ;joystick trigger 0
TRIG1 = GTIA + $11 ;joystick trigger 1
TRIG2 = GTIA + $12 ;cartridge interlock
TRIG3 = GTIA + $13 ;ACMI module interlock
PAL = GTIA + $14 ;##rev2## PAL/NTSC indicator
; Write Addresses
HPOSP0 = GTIA + $00 ;player 0 horizontal position
HPOSP1 = GTIA + $01 ;player 1 horizontal position
HPOSP2 = GTIA + $02 ;player 2 horizontal position
HPOSP3 = GTIA + $03 ;player 3 horizontal position
HPOSM0 = GTIA + $04 ;missile 0 horizontal position
HPOSM1 = GTIA + $05 ;missile 1 horizontal position
HPOSM2 = GTIA + $06 ;missile 2 horizontal position
HPOSM3 = GTIA + $07 ;missile 3 horizontal position
SIZEP0 = GTIA + $08 ;player 0 size
SIZEP1 = GTIA + $09 ;player 1 size
SIZEP2 = GTIA + $0A ;player 2 size
SIZEP3 = GTIA + $0B ;player 3 size
SIZEM = GTIA + $0C ;missile sizes
GRAFP0 = GTIA + $0D ;player 0 graphics
GRAFP1 = GTIA + $0E ;player 1 graphics
GRAFP2 = GTIA + $0F ;player 2 graphics
GRAFP3 = GTIA + $10 ;player 3 graphics
GRAFM = GTIA + $11 ;missile graphics
COLPM0 = GTIA + $12 ;player-missile 0 color/luminance
COLPM1 = GTIA + $13 ;player-missile 1 color/luminance
COLPM2 = GTIA + $14 ;player-missile 2 color/luminance
COLPM3 = GTIA + $15 ;player-missile 3 color/luminance
COLPF0 = GTIA + $16 ;playfield 0 color/luminance
COLPF1 = GTIA + $17 ;playfield 1 color/luminance
COLPF2 = GTIA + $18 ;playfield 2 color/luminance
COLPF3 = GTIA + $19 ;playfield 3 color/luminance
COLBK = GTIA + $1A ;background color/luminance
PRIOR = GTIA + $1B ;priority select
VDELAY = GTIA + $1C ;vertical delay
GRACTL = GTIA + $1D ;graphic control
HITCLR = GTIA + $1E ;collision clear
; add - Add without carry
.macro add Arg1, Arg2
clc
.if .paramcount = 2
adc Arg1, Arg2
.else
adc Arg1
.endif
.endmacro
; sub - subtract without borrow
.macro sub Arg1, Arg2
sec
.if .paramcount = 2
sbc Arg1, Arg2
.else
sbc Arg1
.endif
.endmacro
; bge - jump if unsigned greater or equal
.macro bge Arg
bcs Arg
.endmacro
; blt - Jump if unsigned less
.macro blt Arg
bcc Arg
.endmacro
; bgt - jump if unsigned greater
.macro bgt Arg
.local L
beq L
bcs Arg
L:
.endmacro
; ble - jump if unsigned less or equal
.macro ble Arg
beq Arg
bcc Arg
.endmacro
; bnz - jump if not zero
.macro bnz Arg
bne Arg
.endmacro
; bze - jump if zero
.macro bze Arg
beq Arg
.endmacro
;-------------------------------------------------------------------------
; ANTIC Address Equates
;-------------------------------------------------------------------------
; Read Addresses
VCOUNT = ANTIC + $0B ;vertical line counter
PENH = ANTIC + $0C ;light pen horizontal position
PENV = ANTIC + $0D ;light pen vertical position
NMIST = ANTIC + $0F ;NMI interrupt status
; Write Addresses
DMACTL = ANTIC + $00 ;DMA control
CHACTL = ANTIC + $01 ;character control
DLISTL = ANTIC + $02 ;low display list address
DLISTH = ANTIC + $03 ;high display list address
HSCROL = ANTIC + $04 ;horizontal scroll
VSCROL = ANTIC + $05 ;vertical scroll
PMBASE = ANTIC + $07 ;player-missile base address
CHBASE = ANTIC + $09 ;character base address
WSYNC = ANTIC + $0A ;wait for HBLANK synchronization
NMIEN = ANTIC + $0E ;NMI enable
NMIRES = ANTIC + $0F ;NMI interrupt reset
;-------------------------------------------------------------------------
; Antic opcodes
;-------------------------------------------------------------------------
; usage example:
;
; ScreenDL:
; .byte DL_BLK8
; .byte DL_BLK8
; .byte DL_CHR40x8x1 + DL_LMS + DL_DLI
; .word ScreenAlignment
; .byte DL_BLK1 + DL_DLI
; .byte DL_MAP320x1x1 + DL_LMS
; .word Screen
;
; .repeat 99
; .byte DL_MAP320x1x1
; .endrepeat
; .byte DL_MAP320x1x1 + DL_LMS
; .word Screen + 40 * 100 ; 100 lines a 40 byte, 'Screen' has to be aligned correctly!
; .repeat 92
; .byte DL_MAP320x1x1
; .endrepeat
;
; .byte DL_JVB
; absolute instructions (non mode lines)
DL_JMP = 1
DL_JVB = 65
DL_BLK1 = 0
DL_BLK2 = 16
DL_BLK3 = 32
DL_BLK4 = 48
DL_BLK5 = 64
DL_BLK6 = 80
DL_BLK7 = 96
DL_BLK8 = 112
; absolute instructions (mode lines)
DL_CHR40x8x1 = 2 ; monochrome, 40 character & 8 scanlines per mode line (GR. 0)
DL_CHR40x10x1 = 3 ; monochrome, 40 character & 10 scanlines per mode line
DL_CHR40x8x4 = 4 ; colour, 40 character & 8 scanlines per mode line (GR. 12)
DL_CHR40x16x4 = 5 ; colour, 40 character & 16 scanlines per mode line (GR. 13)
DL_CHR20x8x2 = 6 ; colour (duochrome per character), 20 character & 8 scanlines per mode line (GR. 1)
DL_CHR20x16x2 = 7 ; colour (duochrome per character), 20 character & 16 scanlines per mode line (GR. 2)
DL_MAP40x8x4 = 8 ; colour, 40 pixel & 8 scanlines per mode line (GR. 3)
DL_MAP80x4x2 = 9 ; 'duochrome', 80 pixel & 4 scanlines per mode line (GR.4)
DL_MAP80x4x4 = 10 ; colour, 80 pixel & 4 scanlines per mode line (GR.5)
DL_MAP160x2x2 = 11 ; 'duochrome', 160 pixel & 2 scanlines per mode line (GR.6)
DL_MAP160x1x2 = 12 ; 'duochrome', 160 pixel & 1 scanline per mode line (GR.14)
DL_MAP160x2x4 = 13 ; 4 colours, 160 pixel & 2 scanlines per mode line (GR.7)
DL_MAP160x1x4 = 14 ; 4 colours, 160 pixel & 1 scanline per mode line (GR.15)
DL_MAP320x1x1 = 15 ; monochrome, 320 pixel & 1 scanline per mode line (GR.8)
; modifiers on mode lines...
DL_HSCROL = 16
DL_VSCROL = 32
DL_LMS = 64
; general modifier...
DL_DLI = 128
;/*****************************************************************************/
;/* */
;/* signal.inc */
;/* */
;/* Signal handling definitions */
;/* */
;/* */
;/* */
;/* (C) 2002 Ullrich von Bassewitz */
;/* Wacholderweg 14 */
;/* D-70597 Stuttgart */
;/* EMail: uz@musoftware.de */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
; Standard signal handling functions
SIG_ERR = $0000
; Signal numbers
SIGABRT = 0
SIGFPE = 1
SIGILL = 2
SIGINT = 3
SIGSEGV = 4
SIGTERM = 5
SIGCOUNT = 6 ; Number of signals
; Table with signal handlers (asm code only)
.global sigtable
; Function declarations
.global __sig_ign
.global __sig_dfl
.global _signal
.global _raise
;
; C128 generic definitions. Stolen from Elite128
;
; ---------------------------------------------------------------------------
; Zero page, Commodore stuff
TXTPTR := $3D ; Pointer into BASIC source code
TIME := $A0 ; 60HZ clock
FNAM_LEN := $B7 ; Length of filename
SECADR := $B9 ; Secondary address
DEVNUM := $BA ; Device number
FNAM := $BB ; Address of filename
FNAM_BANK := $C7 ; Bank for filename
KEY_COUNT := $D0 ; Number of keys in input buffer
FKEY_COUNT := $D1 ; Characters for function key
MODE := $D7 ; 40/80 column mode flag
CURS_X := $EC ; Cursor column
CURS_Y := $EB ; Cursor row
SCREEN_PTR := $E0 ; Pointer to current char in text screen
CRAM_PTR := $E2 ; Pointer to current char in color RAM
CHARCOLOR := $F1
RVS := $F3 ; Reverse output flag
SCROLL := $F8 ; Disable scrolling flag
BASIC_BUF := $200 ; Location of command-line
BASIC_BUF_LEN = 162 ; Maximum length of command-line
FETCH := $2A2 ; Fetch subroutine in RAM
FETVEC := $2AA ; Vector patch location for FETCH
STASH := $2AF ; Stash routine in RAM
STAVEC := $2B9 ; Vector patch location for STASH
IRQInd := $2FD ; JMP $0000 -- used as indirect IRQ vector
PALFLAG := $A03 ; $FF=PAL, $00=NTSC
INIT_STATUS := $A04 ; Flags: Reset/Restore initiation status
FKEY_LEN := $1000 ; Function key lengths
FKEY_TEXT := $100A ; Function key texts
; ---------------------------------------------------------------------------
; Kernal routines
; Direct entries
CURS_SET := $CD57
CURS_ON := $CD6F
CURS_OFF := $CD9F
CLRSCR := $C142
KBDREAD := $C006
NEWLINE := $C363
PRINT := $C322
NMIEXIT := $FF33
INDFET := $FF74
; ---------------------------------------------------------------------------
; Vectors
IRQVec := $0314
BRKVec := $0316
NMIVec := $0318
KeyStoreVec := $033C
; ---------------------------------------------------------------------------
; I/O: VIC
VIC := $D000
VIC_SPR0_X := $D000
VIC_SPR0_Y := $D001
VIC_SPR1_X := $D002
VIC_SPR1_Y := $D003
VIC_SPR2_X := $D004
VIC_SPR2_Y := $D005
VIC_SPR3_X := $D006
VIC_SPR3_Y := $D007
VIC_SPR4_X := $D008
VIC_SPR4_Y := $D009
VIC_SPR5_X := $D00A
VIC_SPR5_Y := $D00B
VIC_SPR6_X := $D00C
VIC_SPR6_Y := $D00D
VIC_SPR7_X := $D00E
VIC_SPR7_Y := $D00F
VIC_SPR_HI_X := $D010
VIC_SPR_ENA := $D015
VIC_SPR_EXP_Y := $D017
VIC_SPR_EXP_X := $D01D
VIC_SPR_MCOLOR := $D01C
VIC_SPR_BG_PRIO := $D01B
VIC_SPR_MCOLOR0 := $D025
VIC_SPR_MCOLOR1 := $D026
VIC_SPR0_COLOR := $D027
VIC_SPR1_COLOR := $D028
VIC_SPR2_COLOR := $D029
VIC_SPR3_COLOR := $D02A
VIC_SPR4_COLOR := $D02B
VIC_SPR5_COLOR := $D02C
VIC_SPR6_COLOR := $D02D
VIC_SPR7_COLOR := $D02E
VIC_CTRL1 := $D011
VIC_CTRL2 := $D016
VIC_HLINE := $D012
VIC_LPEN_X := $D013
VIC_LPEN_Y := $D014
VIC_VIDEO_ADR := $D018
VIC_IRR := $D019 ; Interrupt request register
VIC_IMR := $D01A ; Interrupt mask register
VIC_BORDERCOLOR := $D020
VIC_BG_COLOR0 := $D021
VIC_BG_COLOR1 := $D022
VIC_BG_COLOR2 := $D023
VIC_BG_COLOR3 := $D024
; 128 stuff:
VIC_KBD_128 := $D02F ; Extended kbd bits (visible in 64 mode)
VIC_CLK_128 := $D030 ; Clock rate register (visible in 64 mode)
; ---------------------------------------------------------------------------
; I/O: SID
SID := $D400
SID_S1Lo := $D400
SID_S1Hi := $D401
SID_PB1Lo := $D402
SID_PB1Hi := $D403
SID_Ctl1 := $D404
SID_AD1 := $D405
SID_SUR1 := $D406
SID_S2Lo := $D407
SID_S2Hi := $D408
SID_PB2Lo := $D409
SID_PB2Hi := $D40A
SID_Ctl2 := $D40B
SID_AD2 := $D40C
SID_SUR2 := $D40D
SID_S3Lo := $D40E
SID_S3Hi := $D40F
SID_PB3Lo := $D410
SID_PB3Hi := $D411
SID_Ctl3 := $D412
SID_AD3 := $D413
SID_SUR3 := $D414
SID_FltLo := $D415
SID_FltHi := $D416
SID_FltCtl := $D417
SID_Amp := $D418
SID_ADConv1 := $D419
SID_ADConv2 := $D41A
SID_Noise := $D41B
SID_Read3 := $D41C
; ---------------------------------------------------------------------------
; I/O: VDC (128 only)
VDC_INDEX := $D600
VDC_DATA := $D601
; ---------------------------------------------------------------------------
; I/O: CIAs
CIA1 := $DC00
CIA1_PRA := $DC00
CIA1_PRB := $DC01
CIA1_DDRA := $DC02
CIA1_DDRB := $DC03
CIA1_TOD10 := $DC08
CIA1_TODSEC := $DC09
CIA1_TODMIN := $DC0A
CIA1_TODHR := $DC0B
CIA1_ICR := $DC0D
CIA1_CRA := $DC0E
CIA1_CRB := $DC0F
CIA2 := $DD00
CIA2_PRA := $DD00
CIA2_PRB := $DD01
CIA2_DDRA := $DD02
CIA2_DDRB := $DD03
CIA2_TOD10 := $DD08
CIA2_TODSEC := $DD09
CIA2_TODMIN := $DD0A
CIA2_TODHR := $DD0B
CIA2_ICR := $DD0D
CIA2_CRA := $DD0E
CIA2_CRB := $DD0F
; ---------------------------------------------------------------------------
; I/O: MMU
MMU_CR := $FF00
MMU_CFG_CC65 := %00001110 ; Bank 0 with kernal ROM
MMU_CFG_RAM0 := %00111111 ; Bank 0 full RAM
MMU_CFG_RAM1 := %01111111 ; Bank 1 full RAM
MMU_CFG_RAM2 := %10111111 ; Bank 2 full RAM
MMU_CFG_RAM3 := %11111111 ; Bank 3 full RAM
MMU_CFG_IFROM := %01010111 ; Bank 1 with Internal Function RAM/ROM
MMU_CFG_EFROM := %01101011 ; Bank 1 with External Function RAM/ROM
; ---------------------------------------------------------------------------
; Super CPU
SCPU_VIC_Bank1 := $D075
SCPU_Slow := $D07A
SCPU_Fast := $D07B
SCPU_EnableRegs := $D07E
SCPU_DisableRegs:= $D07F
SCPU_Detect := $D0BC
;
; NES definitions. By Groepaz/Hitmem.
;
;; FIXME: optimize zeropage usage
SCREEN_PTR = $62 ;2
CRAM_PTR = $64 ;2
CHARCOLOR = $66
BGCOLOR = $67
RVS = $68
CURS_X = $69
CURS_Y = $6a
tickcount = $6b ;2
VBLANK_FLAG = $70
ringbuff = $0200
ringwrite = $71
ringread = $72
ringcount = $73
ppuhi = $74
ppulo = $75
ppuval = $76
screenrows = (30-1)
charsperline = 32
xsize = charsperline
;; PPU defines
PPU_CTRL1 = $2000
PPU_CTRL2 = $2001
PPU_STATUS = $2002
PPU_SPR_ADDR = $2003
PPU_SPR_IO = $2004
PPU_VRAM_ADDR1 = $2005
PPU_VRAM_ADDR2 = $2006
PPU_VRAM_IO = $2007
;; APU defines
APU_PULSE1CTRL = $4000 ; Pulse #1 Control Register (W)
APU_PULSE1RAMP = $4001 ; Pulse #1 Ramp Control Register (W)
APU_PULSE1FTUNE = $4002 ; Pulse #1 Fine Tune (FT) Register (W)
APU_PULSE1CTUNE = $4003 ; Pulse #1 Coarse Tune (CT) Register (W)
APU_PULSE2CTRL = $4004 ; Pulse #2 Control Register (W)
APU_PULSE2RAMP = $4005 ; Pulse #2 Ramp Control Register (W)
APU_PULSE2FTUNE = $4006 ; Pulse #2 Fine Tune Register (W)
APU_PULSE2STUNE = $4007 ; Pulse #2 Coarse Tune Register (W)
APU_TRICTRL1 = $4008 ; Triangle Control Register #1 (W)
APU_TRICTRL2 = $4009 ; Triangle Control Register #2 (?)
APU_TRIFREQ1 = $400A ; Triangle Frequency Register #1 (W)
APU_TRIFREQ2 = $400B ; Triangle Frequency Register #2 (W)
APU_NOISECTRL = $400C ; Noise Control Register #1 (W)
;;APU_ = $400D ; Unused (???)
APU_NOISEFREQ1 = $400E ; Noise Frequency Register #1 (W)
APU_NOISEFREQ2 = $400F ; Noise Frequency Register #2 (W)
APU_MODCTRL = $4010 ; Delta Modulation Control Register (W)
APU_MODDA = $4011 ; Delta Modulation D/A Register (W)
APU_MODADDR = $4012 ; Delta Modulation Address Register (W)
APU_MODLEN = $4013 ; Delta Modulation Data Length Register (W)
APU_SPR_DMA = $4014 ; Sprite DMA Register (W)
APU_CHANCTRL = $4015 ; Sound/Vertical Clock Signal Register (R)
APU_PAD1 = $4016 ; Joypad #1 (RW)
APU_PAD2 = $4017 ; Joypad #2/SOFTCLK (RW)
CH_HLINE = 11
CH_VLINE = 14
CH_ULCORNER = 176
CH_URCORNER = 174
CH_LLCORNER = 173
CH_LRCORNER = 189
CH_TTEE = 178
CH_RTEE = 179
CH_BTEE = 177
CH_LTEE = 171
CH_CROSS = 123
CH_CURS_UP = 145
CH_CURS_DOWN = 17
CH_CURS_LEFT = 157
CH_CURS_RIGHT = 29
CH_PI = 126
CH_DEL = 20
CH_INS = 148
CH_ENTER = 10
CH_STOP = 3
CH_ESC = 27
;/*****************************************************************************/
;/* */
;/* joy-error.inc */
;/* */
;/* Joystick error codes */
;/* */
;/* */
;/* */
;/* (C) 2002 Ullrich von Bassewitz */
;/* Wacholderweg 14 */
;/* D-70597 Stuttgart */
;/* EMail: uz@musoftware.de */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
; Error codes
JOY_ERR_OK = 0 ; No error
JOY_ERR_NO_DRIVER = 1 ; No driver available
JOY_ERR_CANNOT_LOAD = 2 ; Error loading driver
JOY_ERR_INV_DRIVER = 3 ; Invalid driver
JOY_ERR_NO_DEVICE = 4 ; Device (hardware) not found
;****************************************************************************
;* *
;* ser-kernel.inc *
;* *
;* Serial communication API *
;* *
;* *
;* *
;*(C) 2003-2006, Ullrich von Bassewitz *
;* R<>merstrasse 52 *
;* D-70794 Filderstadt *
;*EMail: uz@cc65.org *
;* *
;* *
;*This software is provided 'as-is', without any expressed or implied *
;*warranty. In no event will the authors be held liable for any damages *
;*arising from the use of this software. *
;* *
;*Permission is granted to anyone to use this software for any purpose, *
;*including commercial applications, and to alter it and redistribute it *
;*freely, subject to the following restrictions: *
;* *
;*1. The origin of this software must not be misrepresented; you must not *
;* claim that you wrote the original software. If you use this software *
;* in a product, an acknowledgment in the product documentation would be *
;* appreciated but is not required. *
;*2. Altered source versions must be plainly marked as such, and must not *
;* be misrepresented as being the original software. *
;*3. This notice may not be removed or altered from any source *
;* distribution. *
;* *
;****************************************************************************
;------------------------------------------------------------------------------
; The driver header
.struct SER_HDR
ID .byte 3 ; Contains 0x73, 0x65, 0x72 ("ser")
VERSION .byte 1 ; Interface version
LIBREF .addr ; Library reference
JUMPTAB .struct
INSTALL .addr ; INSTALL routine
UNINSTALL .addr ; UNINSTALL routine
OPEN .addr ; OPEN routine
CLOSE .addr ; CLOSE routine
GET .addr ; GET routine
PUT .addr ; PUT routine
STATUS .addr ; STATUS routine
IOCTL .addr ; IOCTL routine
IRQ .addr ; IRQ routine
.endstruct
.endstruct
;------------------------------------------------------------------------------
; The SER API version, stored SER_HDR::VERSION
SER_API_VERSION = $02
;------------------------------------------------------------------------------
; ser_params
.struct SER_PARAMS
BAUDRATE .byte ; Baudrate
DATABITS .byte ; Number of data bits
STOPBITS .byte ; Number of stop bits
PARITY .byte ; Parity setting
HANDSHAKE .byte ; Type of handshake to use
.endstruct
;------------------------------------------------------------------------------
; Serial parameters
; Baudrate
SER_BAUD_45_5 = $00
SER_BAUD_50 = $01
SER_BAUD_75 = $02
SER_BAUD_110 = $03
SER_BAUD_134_5 = $04
SER_BAUD_150 = $05
SER_BAUD_300 = $06
SER_BAUD_600 = $07
SER_BAUD_1200 = $08
SER_BAUD_1800 = $09
SER_BAUD_2400 = $0A
SER_BAUD_3600 = $0B
SER_BAUD_4800 = $0C
SER_BAUD_7200 = $0D
SER_BAUD_9600 = $0E
SER_BAUD_19200 = $0F
SER_BAUD_38400 = $10
SER_BAUD_57600 = $11
SER_BAUD_115200 = $12
SER_BAUD_230400 = $13
SER_BAUD_31250 = $14
SER_BAUD_62500 = $15
SER_BAUD_56_875 = $16
; Data bit settings
SER_BITS_5 = $00
SER_BITS_6 = $01
SER_BITS_7 = $02
SER_BITS_8 = $03
; Stop bit settings
SER_STOP_1 = $00
SER_STOP_2 = $01
; Parity
SER_PAR_NONE = $00
SER_PAR_ODD = $01
SER_PAR_EVEN = $02
SER_PAR_MARK = $03
SER_PAR_SPACE = $04
; Handshake
SER_HS_NONE = $00 ; No handshake
SER_HS_HW = $01 ; Hardware (RTS/CTS) handshake
SER_HS_SW = $02 ; Software handshake
; Bit masks to mask out things from the status returned by ser_status
SER_STATUS_PE = $01 ; Parity error
SER_STATUS_FE = $02 ; Framing error
SER_STATUS_OE = $04 ; Overrun error
SER_STATUS_DCD = $20 ; NOT data carrier detect
SER_STATUS_DSR = $40 ; NOT data set ready
;------------------------------------------------------------------------------
; Variables
.global _ser_drv ; Pointer to driver
;------------------------------------------------------------------------------
; Driver entry points
.global ser_install
.global ser_uninstall
.global ser_open
.global ser_close
.global ser_get
.global ser_put
.global ser_status
.global ser_ioctl
.global ser_irq
;------------------------------------------------------------------------------
; C callable functions
.global _ser_load_driver
.global _ser_unload
.global _ser_install
.global _ser_uninstall
.global _ser_open
.global _ser_close
.global _ser_get
.global _ser_put
.global _ser_status
.global _ser_ioctl
.global _ser_clear_ptr
;
; C64 generic definitions. Stolen from Elite128
;
; ---------------------------------------------------------------------------
; Zero page, Commodore stuff
VARTAB := $2D ; Pointer to start of BASIC variables
MEMSIZE := $37 ; Pointer to highest BASIC RAM location (+1)
TXTPTR := $7A ; Pointer into BASIC source code
TIME := $A0 ; 60 HZ clock
FNAM_LEN := $B7 ; Length of filename
SECADR := $B9 ; Secondary address
DEVNUM := $BA ; Device number
FNAM := $BB ; Pointer to filename
KEY_COUNT := $C6 ; Number of keys in input buffer
RVS := $C7 ; Reverse flag
CURS_FLAG := $CC ; 1 = cursor off
CURS_BLINK := $CD ; Blink counter
CURS_CHAR := $CE ; Character under the cursor
CURS_STATE := $CF ; Cursor blink state
SCREEN_PTR := $D1 ; Pointer to current char in text screen
CURS_X := $D3 ; Cursor column
CURS_Y := $D6 ; Cursor row
CRAM_PTR := $F3 ; Pointer to current char in color RAM
FREKZP := $FB ; Five unused bytes
BASIC_BUF := $200 ; Location of command-line
BASIC_BUF_LEN = 89 ; Maximum length of command-line
CHARCOLOR := $286
CURS_COLOR := $287 ; Color under the cursor
PALFLAG := $2A6 ; $01 = PAL, $00 = NTSC
; ---------------------------------------------------------------------------
; Kernal routines
; Direct entries
CLRSCR := $E544
KBDREAD := $E5B4
NMIEXIT := $FEBC
; ---------------------------------------------------------------------------
; Vector and other locations
IRQVec := $0314
BRKVec := $0316
NMIVec := $0318
; ---------------------------------------------------------------------------
; Screen size
XSIZE = 40
YSIZE = 25
; ---------------------------------------------------------------------------
; I/O: VIC
VIC := $D000
VIC_SPR0_X := $D000
VIC_SPR0_Y := $D001
VIC_SPR1_X := $D002
VIC_SPR1_Y := $D003
VIC_SPR2_X := $D004
VIC_SPR2_Y := $D005
VIC_SPR3_X := $D006
VIC_SPR3_Y := $D007
VIC_SPR4_X := $D008
VIC_SPR4_Y := $D009
VIC_SPR5_X := $D00A
VIC_SPR5_Y := $D00B
VIC_SPR6_X := $D00C
VIC_SPR6_Y := $D00D
VIC_SPR7_X := $D00E
VIC_SPR7_Y := $D00F
VIC_SPR_HI_X := $D010
VIC_SPR_ENA := $D015
VIC_SPR_EXP_Y := $D017
VIC_SPR_EXP_X := $D01D
VIC_SPR_MCOLOR := $D01C
VIC_SPR_BG_PRIO := $D01B
VIC_SPR_MCOLOR0 := $D025
VIC_SPR_MCOLOR1 := $D026
VIC_SPR0_COLOR := $D027
VIC_SPR1_COLOR := $D028
VIC_SPR2_COLOR := $D029
VIC_SPR3_COLOR := $D02A
VIC_SPR4_COLOR := $D02B
VIC_SPR5_COLOR := $D02C
VIC_SPR6_COLOR := $D02D
VIC_SPR7_COLOR := $D02E
VIC_CTRL1 := $D011
VIC_CTRL2 := $D016
VIC_HLINE := $D012
VIC_LPEN_X := $D013
VIC_LPEN_Y := $D014
VIC_VIDEO_ADR := $D018
VIC_IRR := $D019 ; Interrupt request register
VIC_IMR := $D01A ; Interrupt mask register
VIC_BORDERCOLOR := $D020
VIC_BG_COLOR0 := $D021
VIC_BG_COLOR1 := $D022
VIC_BG_COLOR2 := $D023
VIC_BG_COLOR3 := $D024
; 128 stuff:
VIC_KBD_128 := $D02F ; Extended kbd bits (visible in 64 mode)
VIC_CLK_128 := $D030 ; Clock rate register (visible in 64 mode)
; ---------------------------------------------------------------------------
; I/O: SID
SID := $D400
SID_S1Lo := $D400
SID_S1Hi := $D401
SID_PB1Lo := $D402
SID_PB1Hi := $D403
SID_Ctl1 := $D404
SID_AD1 := $D405
SID_SUR1 := $D406
SID_S2Lo := $D407
SID_S2Hi := $D408
SID_PB2Lo := $D409
SID_PB2Hi := $D40A
SID_Ctl2 := $D40B
SID_AD2 := $D40C
SID_SUR2 := $D40D
SID_S3Lo := $D40E
SID_S3Hi := $D40F
SID_PB3Lo := $D410
SID_PB3Hi := $D411
SID_Ctl3 := $D412
SID_AD3 := $D413
SID_SUR3 := $D414
SID_FltLo := $D415
SID_FltHi := $D416
SID_FltCtl := $D417
SID_Amp := $D418
SID_ADConv1 := $D419
SID_ADConv2 := $D41A
SID_Noise := $D41B
SID_Read3 := $D41C
; ---------------------------------------------------------------------------
; I/O: VDC (128 only)
VDC_INDEX := $D600
VDC_DATA := $D601
; ---------------------------------------------------------------------------
; I/O: CIAs
CIA1 := $DC00
CIA1_PRA := $DC00
CIA1_PRB := $DC01
CIA1_DDRA := $DC02
CIA1_DDRB := $DC03
CIA1_TOD10 := $DC08
CIA1_TODSEC := $DC09
CIA1_TODMIN := $DC0A
CIA1_TODHR := $DC0B
CIA1_ICR := $DC0D
CIA1_CRA := $DC0E
CIA1_CRB := $DC0F
CIA2 := $DD00
CIA2_PRA := $DD00
CIA2_PRB := $DD01
CIA2_DDRA := $DD02
CIA2_DDRB := $DD03
CIA2_TOD10 := $DD08
CIA2_TODSEC := $DD09
CIA2_TODMIN := $DD0A
CIA2_TODHR := $DD0B
CIA2_ICR := $DD0D
CIA2_CRA := $DD0E
CIA2_CRB := $DD0F
; ---------------------------------------------------------------------------
; Super CPU
SCPU_VIC_Bank1 := $D075
SCPU_Slow := $D07A
SCPU_Fast := $D07B
SCPU_EnableRegs := $D07E
SCPU_DisableRegs:= $D07F
SCPU_Detect := $D0BC
; ---------------------------------------------------------------------------
; Processor Port at $01
LORAM = $01 ; Enable the basic rom
HIRAM = $02 ; Enable the kernal rom
IOEN = $04 ; Enable I/O
CASSDATA = $08 ; Cassette data
CASSPLAY = $10 ; Cassette: Play
CASSMOT = $20 ; Cassette motor on
TP_FAST = $80 ; Switch Rossmoeller TurboProcess to fast mode
RAMONLY = $F8 ; (~(LORAM | HIRAM | IOEN)) & $FF
; Convert characters to screen codes
; Helper macro that converts and outputs one character
.macro _scrcode char
.if (char < 256)
.byte (char + 128)
.else
.error "scrcode: Character constant out of range"
.endif
.endmacro
.macro scrcode arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
; Bail out if next argument is empty
.if .blank (arg1)
.exitmacro
.endif
; Check for a string
.if .match ({arg1}, "")
; Walk over all string chars
.repeat .strlen (arg1), i
_scrcode {.strat (arg1, i)}
.endrepeat
; Check for a number
.elseif .match (.left (1, {arg1}), 0)
; Just output the number
_scrcode arg1
; Check for a character
.elseif .match (.left (1, {arg1}), 'a')
; Just output the character
_scrcode arg1
; Anything else is an error
.else
.error "scrcode: invalid argument type"
.endif
; Call the macro recursively with the remaining args
scrcode arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
.endmacro
; Convert characters to screen codes
; Helper macro that converts and outputs one character
.macro _scrcode char
.if (char >= 0) .and (char <= 31)
.byte (char + 64)
.elseif (char >= 32) .and (char <= 95)
.byte (char - 32)
.elseif (char >= 96) .and (char <= 127)
.byte char
.elseif (char >= 128) .and (char <= 159)
.byte (char + 64)
.elseif (char >= 160) .and (char <= 223)
.byte (char - 32)
.elseif (char >= 224) .and (char <= 255)
.byte char
.else
.error "scrcode: Character constant out of range"
.endif
.endmacro
.macro scrcode arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
; Bail out if next argument is empty
.if .blank (arg1)
.exitmacro
.endif
; Check for a string
.if .match ({arg1}, "")
; Walk over all string chars
.repeat .strlen (arg1), i
_scrcode {.strat (arg1, i)}
.endrepeat
; Check for a number
.elseif .match (.left (1, {arg1}), 0)
; Just output the number
_scrcode arg1
; Check for a character
.elseif .match (.left (1, {arg1}), 'a')
; Just output the character
_scrcode arg1
; Anything else is an error
.else
.error "scrcode: invalid argument type"
.endif
; Call the macro recursively with the remaining args
scrcode arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
.endmacro
;****************************************************************************
;* *
;* ser-error.inc *
;* *
;* Serial communication API *
;* *
;* *
;* *
;* (C) 2003-2012, Ullrich von Bassewitz *
;* Roemerstrasse 52 *
;* D-70794 Filderstadt *
;* EMail: uz@cc65.org *
;* *
;* *
;*This software is provided 'as-is', without any expressed or implied *
;*warranty. In no event will the authors be held liable for any damages *
;*arising from the use of this software. *
;* *
;*Permission is granted to anyone to use this software for any purpose, *
;*including commercial applications, and to alter it and redistribute it *
;*freely, subject to the following restrictions: *
;* *
;*1. The origin of this software must not be misrepresented; you must not *
;* claim that you wrote the original software. If you use this software *
;* in a product, an acknowledgment in the product documentation would be *
;* appreciated but is not required. *
;*2. Altered source versions must be plainly marked as such, and must not *
;* be misrepresented as being the original software. *
;*3. This notice may not be removed or altered from any source *
;* distribution. *
;* *
;****************************************************************************
;------------------------------------------------------------------------------
; Error codes
.enum
SER_ERR_OK ; Not an error - relax
SER_ERR_NO_DRIVER ; No driver available
SER_ERR_CANNOT_LOAD ; Error loading driver
SER_ERR_INV_DRIVER ; Invalid driver
SER_ERR_NO_DEVICE ; Device (hardware) not found
SER_ERR_BAUD_UNAVAIL ; Baud rate not available
SER_ERR_NO_DATA ; Nothing to read
SER_ERR_OVERFLOW ; No room in send buffer
SER_ERR_INIT_FAILED ; Initialization failed
SER_ERR_INV_IOCTL ; IOCTL not supported
SER_ERR_INSTALLED ; A driver is already installed
SER_ERR_NOT_OPEN ; Driver not open
SER_ERR_COUNT ; Special: Number of error codes
.endenum
;
; Definitions for CBM file types. From cbm.h
;
; Ullrich von Bassewitz, 2012-06-03
;
; Define bitmapped constants for the table entries
.enum
CBM_T_REG = $10 ; Bit set for regular files
CBM_T_SEQ = $10 ; Sequential file
CBM_T_PRG = $11 ; Program file
CBM_T_USR = $12 ; User file
CBM_T_REL = $13 ; Relative file
CBM_T_VRP = $14 ; Vorpal fast-loadable format
CBM_T_DEL = $00 ; Deleted file
CBM_T_CBM = $01 ; 1581 sub-partition
CBM_T_DIR = $02 ; IDE64 and CMD sub-directory
CBM_T_LNK = $03 ; IDE64 soft-link
CBM_T_OTHER = $04 ; File-type not recognized
CBM_T_HEADER = $05 ; Disk header / title
.endenum
; The following function maps the start character for a file type to
; one of the file types above. Note: 'd' will always mapped to CBM_T_DEL.
; The calling function has to look at the following character to determine
; if the file type is actually CBM_T_DIR.
;
; unsigned char __fastcall__ _cbm_filetype (unsigned char c);
.global __cbm_filetype
;
; Ullrich von Bassewitz, 05.06.1999
;
; Predefined file handles
STDIN_FILENO = 0
STDOUT_FILENO = 1
STDERR_FILENO = 2
; File mode constants, must match the values in the C headers
O_RDONLY = $01
O_WRONLY = $02
O_RDWR = $03
O_CREAT = $10
O_TRUNC = $20
O_APPEND = $40
O_EXCL = $80
;
; Zero page variables and I/O definitions for the CBM 610
;
; Taken from a kernal disassembly done by myself in 1987.
;
; 1998-09-28, Ullrich von Bassewitz
; 2014-04-02, Greg King
; ---------------------------------------------------------------------------
; Zeropage stuff
ExecReg := $00 ; Controls execution memory bank
IndReg := $01 ; Controls indirect indexed load-store bank
TXTPTR := $85 ; Far pointer into BASIC source code
FNAM := $90 ; Far pointer to LOAD/SAVE file-name
FNAM_LEN := $9D ; Holds length of file-name
; ---------------------------------------------------------------------------
; Screen size
XSIZE = 80
YSIZE = 25
; ---------------------------------------------------------------------------
; I/O definitions
; I/O $d800: CRTC 6545
.struct CRTC
ADDR .byte
DATA .byte
.endstruct
; I/O $db00: CIA 6526, Inter Process Communication
;
; IPCcia = $db00
.struct CIA
PRA .byte
PRB .byte
DDRA .byte
DDRB .byte
.union
.struct
TALO .byte
TAHI .byte
.endstruct
TA .word
.endunion
.union
.struct
TBLO .byte
TBHI .byte
.endstruct
TB .word
.endunion
TOD10 .byte
TODSEC .byte
TODMIN .byte
TODHR .byte
SDR .byte
ICR .byte
CRA .byte
CRB .byte
.endstruct
; I/O $dc00: CIA 6526
;
; cia = $dc00
; I/O $dd00: ACIA 6551
;
; acia = $dd00
.struct ACIA
DATA .byte
STATUS .byte
CMD .byte
CTRL .BYTE
.endstruct
; I/O $de00: Triport #1 6525
;
; tpi1 = $de00
.struct TPI
PRA .byte
PRB .byte
.union
PRC .byte
INT .byte
.endunion
DDRA .byte
DDRB .byte
.union
DDRC .byte
IMR .byte
.endunion
CR .byte
AIR .byte
.endstruct
; I/O $df00: Triport #2 6525
; tpi2 = $df00
;-----------------------------------------------------------------------------
BASIC_BUF := $FA5E ; Bank 1 location of command-line
BASIC_BUF_LEN = 162 ; Maximum length of command-line
;-------------------------------------------------------------------------
; POKEY Address Equates
;-------------------------------------------------------------------------
; Read Addresses
POT0 = POKEY + $00 ;potentiometer 0
POT1 = POKEY + $01 ;potentiometer 1
POT2 = POKEY + $02 ;potentiometer 2
POT3 = POKEY + $03 ;potentiometer 3
POT4 = POKEY + $04 ;potentiometer 4
POT5 = POKEY + $05 ;potentiometer 5
POT6 = POKEY + $06 ;potentiometer 6
POT7 = POKEY + $07 ;potentiometer 7
ALLPOT = POKEY + $08 ;potentiometer port status
KBCODE = POKEY + $09 ;keyboard code
RANDOM = POKEY + $0A ;random number generator
SERIN = POKEY + $0D ;serial port input
IRQST = POKEY + $0E ;IRQ interrupt status
SKSTAT = POKEY + $0F ;serial port and keyboard status
; Write Addresses
AUDF1 = POKEY + $00 ;channel 1 audio frequency
AUDC1 = POKEY + $01 ;channel 1 audio control
AUDF2 = POKEY + $02 ;channel 2 audio frequency
AUDC2 = POKEY + $03 ;channel 2 audio control
AUDF3 = POKEY + $04 ;channel 3 audio frequency
AUDC3 = POKEY + $05 ;channel 3 audio control
AUDF4 = POKEY + $06 ;channel 4 audio frequency
AUDC4 = POKEY + $07 ;channel 4 audio control
AUDCTL = POKEY + $08 ;audio control
STIMER = POKEY + $09 ;start timers
SKRES = POKEY + $0A ;reset SKSTAT status
POTGO = POKEY + $0B ;start potentiometer scan sequence
SEROUT = POKEY + $0D ;serial port output
IRQEN = POKEY + $0E ;IRQ interrupt enable
SKCTL = POKEY + $0F ;serial port and keyboard control
;
; Ullrich von Bassewitz, 16.05.2000
;
; Variables and functions
.global __errno, __oserror
.global __osmaperrno
.global __seterrno
.global __directerrno, __mappederrno
; Error codes, must match the values in the C headers
.enum
EOK ; No error
ENOENT ; No such file or directory
ENOMEM ; Out of memory
EACCES ; Permission denied
ENODEV ; No such device
EMFILE ; Too many open files
EBUSY ; Device or resource busy
EINVAL ; Invalid argument
ENOSPC ; No space left on device
EEXIST ; File exists
EAGAIN ; Try again
EIO ; I/O error
EINTR ; Interrupted system call
ENOSYS ; Function not implemented
ESPIPE ; Illegal seek
ERANGE ; Range error
EBADF ; Bad file number
ENOEXEC ; Exec format error
EUNKNOWN ; Unknown OS specific error - must be last!
EMAX = EUNKNOWN ; Highest error code
.endenum
;-------------------------------------------------------------------------
; Atari 5200 System Equates
; by Christian Groessler <chris@groessler.org>
; taken from EQUATES.INC from Atari Inc.
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------
; ATASCII CHARACTER DEFS
;-------------------------------------------------------------------------
ATEOL = $9B ;END-OF-LINE, used by CONIO
;-------------------------------------------------------------------------
; Zero Page
;-------------------------------------------------------------------------
POKMSK = $00 ;Mask for Pokey IRQ enable
RTCLOK = $01 ;60 hz. clock
JUMP = $01
CRITIC = $03 ;Critical section
ATRACT = $04 ;Attract Mode
SDLSTL = $05 ;DLISTL Shadow
SDLSTH = $06 ;DLISTH "
SDMCTL = $07 ;DMACTL "
PCOLR0 = $08 ;COLPM0 Shadow
PCOLR1 = $09 ;COLPM1 "
PCOLR2 = $0A ;COLPM2 "
PCOLR3 = $0B ;COLPM3 "
COLOR0 = $0C ;COLPF0 Shadow
COLOR1 = $0D ;COLPF1 "
COLOR2 = $0E ;COLPF2 "
COLOR3 = $0F ;COLPF3 "
COLOR4 = $10 ;COLBK "
PADDL0 = $11 ;POT0 Shadow
PADDL1 = $12 ;POT1 "
PADDL2 = $13 ;POT2 "
PADDL3 = $14 ;POT3 "
PADDL4 = $15 ;POT4 "
PADDL5 = $16 ;POT5 "
PADDL6 = $17 ;POT6 "
PADDL7 = $18 ;POT7 "
; cc65 runtime zero page variables
ROWCRS_5200 = $19
COLCRS_5200 = $1A
SAVMSC = $1B ; pointer to screen memory (conio)
;-------------------------------------------------------------------------
; Page #2
;-------------------------------------------------------------------------
;Interrupt Vectors
VIMIRQ = $0200 ;Immediate IRQ
;Preset $FC03 (SYSIRQ)
VVBLKI = $0202 ;Vblank immediate
;Preset $FCB8 (SYSVBL)
VVBLKD = $0204 ;Vblank deferred
;Preset $FCB2 (XITVBL)
VDSLST = $0206 ;Display List
;Preset $FEA1 (OSDLI)
VKYBDI = $0208 ;Keyboard immediate
;Preset $FD02 (SYSKBD)
VKYBDF = $020A ;Deferred Keyboard
;Preset $FCB2 (XITVBL)
VTRIGR = $020C ;Soft Trigger
VBRKOP = $020E ;BRK Opcode
VSERIN = $0210 ;Serial in Ready
VSEROR = $0212 ;Serial Out Ready
VSEROC = $0214 ;Serial Output complete
VTIMR1 = $0216 ;Pokey Timer 1
VTIMR2 = $0218 ;Pokey Timer 2
VTIMR4 = $021A ;Pokey Timer 4
;-------------------------------------------------------------------------
; CTIA/GTIA Address Equates
;-------------------------------------------------------------------------
GTIA = $C000 ;CTIA/GTIA area
.include "atari_gtia.inc"
;-------------------------------------------------------------------------
; ANTIC Address Equates
;-------------------------------------------------------------------------
ANTIC = $D400 ;ANTIC area
.include "atari_antic.inc"
;-------------------------------------------------------------------------
; POKEY Address Equates
;-------------------------------------------------------------------------
POKEY = $E800 ;POKEY area
.include "atari_pokey.inc"
;-------------------------------------------------------------------------
; Cartridge Parameters
;-------------------------------------------------------------------------
CARTNM = $BFE8 ;Cartridge Name Area
COPYD = $BFFC ;Copyright Decade in Cart
COPYR = $BFFD ;Copyright Year in Cart
; $FF=Diagnostic Cart
GOCART = $BFFE ;Cartridge Start Vector
CHRORG = $F800 ;Character Generator Base
;*****************************************************************************/
;* */
;* stdio.inc */
;* */
;* Mirror definitions for stdio.h */
;* */
;* */
;* */
;* (C) 2003-2005, Ullrich von Bassewitz */
;* R<>merstrasse 52 */
;* D-70794 Filderstadt */
;* EMail: uz@cc65.org */
;* */
;* */
;* This software is provided 'as-is', without any expressed or implied */
;* warranty. In no event will the authors be held liable for any damages */
;* arising from the use of this software. */
;* */
;* Permission is granted to anyone to use this software for any purpose, */
;* including commercial applications, and to alter it and redistribute it */
;* freely, subject to the following restrictions: */
;* */
;* 1. The origin of this software must not be misrepresented; you must not */
;* claim that you wrote the original software. If you use this software */
;* in a product, an acknowledgment in the product documentation would be */
;* appreciated but is not required. */
;* 2. Altered source versions must be plainly marked as such, and must not */
;* be misrepresented as being the original software. */
;* 3. This notice may not be removed or altered from any source */
;* distribution. */
;* */
;*****************************************************************************/
;----------------------------------------------------------------------------
; Constants
_IOFBF = 0
_IOLBF = 1
_IONBF = 2
BUFSIZ = 256
EOF = -1
.if .defined(__APPLE2__)
FILENAME_MAX = 64+1
.elseif .defined(__ATARI__)
FILENAME_MAX = 12+1
.elseif .defined(__LUNIX__)
FILENAME_MAX = 80+1
.else
FILENAME_MAX = 16+1
.endif
L_tmpnam = FILENAME_MAX
SEEK_CUR = 0
SEEK_END = 1
SEEK_SET = 2
TMP_MAX = 256
; Maximum number of open files (size of the file table)
FOPEN_MAX = 8
;----------------------------------------------------------------------------
; External variables
.global _stdin
.global _stdout
.global _stderr
;
; Zero page variables and I/O definitions for the CBM 510
;
; Taken from a kernal disassembly done by myself in 2000/2001.
;
; 2001-09-13, Ullrich von Bassewitz
; 2014-04-02, Greg King
;-----------------------------------------------------------------------------
; Zeropage stuff
ExecReg := $00 ; Controls execution memory bank
IndReg := $01 ; Controls indirect indexed load-store bank
TXTPTR := $85 ; Far pointer into BASIC source code
FNAM := $90 ; Far pointer to LOAD/SAVE file-name
FNAM_LEN := $9D ; Holds length of file-name
; ---------------------------------------------------------------------------
; Screen size
XSIZE = 40
YSIZE = 25
;-----------------------------------------------------------------------------
; I/O Definitions
; Note: These numbers aren't addresses. They are offsets from the start of
; each chip's register set. They are used in the indirect indexed addressing
; mode.
; I/O $d800: VIC-II
VIC_SPR0_X = $00
VIC_SPR0_Y = $01
VIC_SPR1_X = $02
VIC_SPR1_Y = $03
VIC_SPR2_X = $04
VIC_SPR2_Y = $05
VIC_SPR3_X = $06
VIC_SPR3_Y = $07
VIC_SPR4_X = $08
VIC_SPR4_Y = $09
VIC_SPR5_X = $0A
VIC_SPR5_Y = $0B
VIC_SPR6_X = $0C
VIC_SPR6_Y = $0D
VIC_SPR7_X = $0E
VIC_SPR7_Y = $0F
VIC_SPR_HI_X = $10
VIC_SPR_ENA = $15
VIC_SPR_EXP_Y = $17
VIC_SPR_EXP_X = $1D
VIC_SPR_MCOLOR = $1C
VIC_SPR_BG_PRIO = $1B
VIC_SPR_MCOLOR0 = $25
VIC_SPR_MCOLOR1 = $26
VIC_SPR0_COLOR = $27
VIC_SPR1_COLOR = $28
VIC_SPR2_COLOR = $29
VIC_SPR3_COLOR = $2A
VIC_SPR4_COLOR = $2B
VIC_SPR5_COLOR = $2C
VIC_SPR6_COLOR = $2D
VIC_SPR7_COLOR = $2E
VIC_CTRL1 = $11
VIC_CTRL2 = $16
VIC_HLINE = $12
VIC_LPEN_X = $13
VIC_LPEN_Y = $14
VIC_VIDEO_ADR = $18
VIC_IRR = $19 ; Interrupt request register
VIC_IMR = $1A ; Interrupt mask register
VIC_BORDERCOLOR = $20
VIC_BG_COLOR0 = $21
VIC_BG_COLOR1 = $22
VIC_BG_COLOR2 = $23
VIC_BG_COLOR3 = $24
; I/O $da00: SID 6581
SID_S1Lo = $00
SID_S1Hi = $01
SID_PB1Lo = $02
SID_PB1Hi = $03
SID_Ctl1 = $04
SID_AD1 = $05
SID_SUR1 = $06
SID_S2Lo = $07
SID_S2Hi = $08
SID_PB2Lo = $09
SID_PB2Hi = $0A
SID_Ctl2 = $0B
SID_AD2 = $0C
SID_SUR2 = $0D
SID_S3Lo = $0E
SID_S3Hi = $0F
SID_PB3Lo = $10
SID_PB3Hi = $11
SID_Ctl3 = $12
SID_AD3 = $13
SID_SUR3 = $14
SID_FltLo = $15
SID_FltHi = $16
SID_FltCtl = $17
SID_Amp = $18
SID_ADConv1 = $19
SID_ADConv2 = $1A
SID_Noise = $1B
SID_Read3 = $1C
; I/O $db00: CIA 6526, Inter Process Communication
; I/O $dc00: CIA 6526
.struct CIA
PRA .byte
PRB .byte
DDRA .byte
DDRB .byte
.union
.struct
TALO .byte
TAHI .byte
.endstruct
TA .word
.endunion
.union
.struct
TBLO .byte
TBHI .byte
.endstruct
TB .word
.endunion
TOD10 .byte
TODSEC .byte
TODMIN .byte
TODHR .byte
SDR .byte
ICR .byte
CRA .byte
CRB .byte
.endstruct
; I/O $dd00: ACIA 6551
.struct ACIA
DATA .byte
STATUS .byte
CMD .byte
CTRL .BYTE
.endstruct
; I/O $de00: Triport #1 6525
; I/O $df00: Triport #2 6525
.struct TPI
PRA .byte
PRB .byte
.union
PRC .byte
INT .byte
.endunion
DDRA .byte
DDRB .byte
.union
DDRC .byte
IMR .byte
.endunion
CR .byte
AIR .byte
.endstruct
;-----------------------------------------------------------------------------
; Our video memory address
COLOR_RAM := $D400 ; System bank
;-----------------------------------------------------------------------------
BASIC_BUF := $FB5E ; Bank 0 location of command-line
BASIC_BUF_LEN = 162 ; Maximum length of command-line
;-------------------------------------------------------------------------------
; gamate.inc
;
; Gamate system specific definitions
;
; (w) 2015 Groepaz/Hitmen (groepaz@gmx.net)
; based on technical reference by PeT (mess@utanet.at)
;-------------------------------------------------------------------------------
; look at gamate.h for comments, they are not duplicated here
AUDIO_BASE = $4000
JOY_DATA = $4400
JOY_DATA_UP = $01
JOY_DATA_DOWN = $02
JOY_DATA_LEFT = $04
JOY_DATA_RIGHT = $08
JOY_DATA_FIRE_A = $10
JOY_DATA_FIRE_B = $20
JOY_DATA_START = $40
JOY_DATA_SELECT = $80
LCD_WIDTH = 160
LCD_HEIGHT = 152
LCD_BASE = $5000
LCD_MODE = $5001
LCD_XPOS = $5002
LCD_YPOS = $5003
LCD_X = $5004
LCD_Y = $5005
LCD_READ = $5006
LCD_DATA = $5007
LCD_MODE_INC_X = $00
LCD_MODE_INC_Y = $40
LCD_XPOS_PLANE1 = $00
LCD_XPOS_PLANE2 = $80
; constants for the conio implementation
charsperline = (LCD_WIDTH / 8)
screenrows = (LCD_HEIGHT / 8)
CH_HLINE = 1
CH_VLINE = 2
COLOR_WHITE = 0
COLOR_GREY2 = 1
COLOR_GREY1 = 2
COLOR_BLACK = 3
; bios zp usage:
ZP_NMI_4800 = $0a
ZP_IRQ_COUNT = $0b
ZP_IRQ_CTRL = $0c
ZP_IRQ_CNT1 = $0e
ZP_IRQ_CNT2 = $0f
ZP_IRQ_CNT3 = $10
ZP_IRQ_CNT4 = $11
ZP_NMI_FLAG = $e8
;*****************************************************************************/
;* */
;* tgi-vectorfont.inc */
;* */
;* TGI vector font definitions */
;* */
;* */
;* */
;* (C) 2009, Ullrich von Bassewitz */
;* Roemerstrasse 52 */
;* D-70794 Filderstadt */
;* EMail: uz@cc65.org */
;* */
;* */
;* This software is provided 'as-is', without any expressed or implied */
;* warranty. In no event will the authors be held liable for any damages */
;* arising from the use of this software. */
;* */
;* Permission is granted to anyone to use this software for any purpose, */
;* including commercial applications, and to alter it and redistribute it */
;* freely, subject to the following restrictions: */
;* */
;* 1. The origin of this software must not be misrepresented; you must not */
;* claim that you wrote the original software. If you use this software */
;* in a product, an acknowledgment in the product documentation would be */
;* appreciated but is not required. */
;* 2. Altered source versions must be plainly marked as such, and must not */
;* be misrepresented as being the original software. */
;* 3. This notice may not be removed or altered from any source */
;* distribution. */
;* */
;*****************************************************************************/
;------------------------------------------------------------------------------
; Vectorfont constants
TGI_VF_VERSION = $00 ; File version number
TGI_VF_FIRSTCHAR = $20 ; First char in file
TGI_VF_LASTCHAR = $7E ; Last char in file
TGI_VF_CCOUNT = (TGI_VF_LASTCHAR - TGI_VF_FIRSTCHAR + 1)
;------------------------------------------------------------------------------
; TCH file header and font data structures
; TCH file header
.struct TGI_VF_HDR
MAGIC .byte 3 ; "TCH"
VERSION .byte 1 ; Version number
SIZE .word 1 ; Font data size
.endstruct
; Font data loaded directly from file
.struct TGI_VECTORFONT
TOP .byte ; Height of char
BOTTOM .byte ; Descender
HEIGHT .byte ; Maximum char height
WIDTHS .byte ::TGI_VF_CCOUNT ; Char widths
CHARS .word ::TGI_VF_CCOUNT ; Pointer to character defs
OPS .byte ; Actually dynamic
.endstruct
;------------------------------------------------------------------------------
; C callable functions
.global _tgi_vectorchar
.ifndef DYN_DRV
DYN_DRV = 1
.endif
.macro module_header module_label
.if DYN_DRV
.segment "HEADER"
.else
.data
.export module_label
module_label:
.endif
.endmacro
;*****************************************************************************/
;* */
;* o65.inc */
;* */
;* Definitions for the o65 file format */
;* */
;* */
;* */
;* (C) 2002-2009, Ullrich von Bassewitz */
;* Roemerstrasse 52 */
;* D-70794 Filderstadt */
;* EMail: uz@cc65.org */
;* */
;* */
;* This software is provided 'as-is', without any expressed or implied */
;* warranty. In no event will the authors be held liable for any damages */
;* arising from the use of this software. */
;* */
;* Permission is granted to anyone to use this software for any purpose, */
;* including commercial applications, and to alter it and redistribute it */
;* freely, subject to the following restrictions: */
;* */
;* 1. The origin of this software must not be misrepresented; you must not */
;* claim that you wrote the original software. If you use this software */
;* in a product, an acknowledgment in the product documentation would be */
;* appreciated but is not required. */
;* 2. Altered source versions must be plainly marked as such, and must not */
;* be misrepresented as being the original software. */
;* 3. This notice may not be removed or altered from any source */
;* distribution. */
;* */
;*****************************************************************************/
; This files exports structures and constants to handle the o65 relocatable
; file format as defined by Andre Fachat.
; The o65 header structure (6502 format)
.struct O65_HDR
MARKER .byte 2 ; Non-C64 marker: $01 $00
MAGIC .byte 3 ; o65 magic: "o65"
VERSION .byte 1 ; Version number
MODE .word ; Mode word
TBASE .word ; Original text (code) segment address
TLEN .word ; Size of text (code) segment
DBASE .word ; Original data segment address
DLEN .word ; Size of data segment
BBASE .word ; Original bss segment address
BLEN .word ; Size of bss segment
ZBASE .word ; Original zp segment address
ZLEN .word ; Size of zp segment
STACK .word ; Stacksize needed
.endstruct
; Marker, magic and version number
O65_MARKER_0 = $01
O65_MARKER_1 = $00
O65_MAGIC_0 = $6F ; 'o'
O65_MAGIC_1 = $36 ; '6'
O65_MAGIC_2 = $35 ; '5'
O65_VERSION = $00
; Defines for the mode word
O65_CPU_65816 = $8000 ; Executable is for 65816
O65_CPU_6502 = $0000 ; Executable is for the 6502
O65_CPU_MASK = $8000 ; Mask to extract CPU type
O65_RELOC_PAGE = $4000 ; Page wise relocation
O65_RELOC_BYTE = $0000 ; Byte wise relocation
O65_RELOC_MASK = $4000 ; Mask to extract relocation type
O65_SIZE_32BIT = $2000 ; All size words are 32bit
O65_SIZE_16BIT = $0000 ; All size words are 16bit
O65_SIZE_MASK = $2000 ; Mask to extract size
O65_FTYPE_OBJ = $1000 ; Object file
O65_FTYPE_EXE = $0000 ; Executable file
O65_FTYPE_MASK = $1000 ; Mask to extract type
O65_ADDR_SIMPLE = $0800 ; Simple addressing
O65_ADDR_DEFAULT = $0000 ; Default addressing
O65_ADDR_MASK = $0800 ; Mask to extract addressing
O65_CHAIN = $0400 ; Chained file, another one follows
O65_CHAIN_MASK = $0400 ; Mask to extract chain flag
O65_BSSZERO = $0200 ; BSS segment must be zeroed
O65_BSSZERO_MASK = $0200 ; Mask to extract bss zero flag
; The following is used if O65_CPU == 6502
O65_CPU2_6502 = $0000 ; Executable is for 6502
O65_CPU2_65C02 = $0010 ; Executable is for 65C02
O65_CPU2_65SC02 = $0020 ; Executable is for 65SC02
O65_CPU2_65CE02 = $0030 ; Executable is for 65CE02
O65_CPU2_6502X = $0040 ; Executable is for NMOS 6502
O65_CPU2_65816_EMU = $0050 ; Executable is for 65816 in emul mode
O65_CPU2_MASK = $00F0 ; Mask to extract CPU2 field
O65_ALIGN_1 = $0000 ; Bytewise alignment
O65_ALIGN_2 = $0001 ; Align words
O65_ALIGN_4 = $0002 ; Align longwords
O65_ALIGN_256 = $0003 ; Align pages (256 bytes)
O65_ALIGN_MASK = $0003 ; Mask to extract alignment
; The mode word as generated by the ld65 linker
O65_MODE_CC65 = O65_CPU_6502 | O65_RELOC_BYTE | O65_SIZE_16BIT | O65_FTYPE_EXE | O65_ADDR_SIMPLE | O65_ALIGN_1
; Relocation type codes
O65_RTYPE_WORD = $80
O65_RTYPE_HIGH = $40
O65_RTYPE_LOW = $20
O65_RTYPE_SEGADDR = $C0
O65_RTYPE_SEG = $A0
O65_RTYPE_MASK = $E0
; Segment IDs
O65_SEGID_UNDEF = $00
O65_SEGID_ABS = $01
O65_SEGID_TEXT = $02
O65_SEGID_DATA = $03
O65_SEGID_BSS = $04
O65_SEGID_ZP = $05
O65_SEGID_MASK = $07
; Option tags
O65_OPT_FILENAME = 0
O65_OPT_OS = 1
O65_OPT_ASM = 2
O65_OPT_AUTHOR = 3
O65_OPT_TIMESTAMP = 4
; Operating system codes for O65_OPT_OS
O65_OS_OSA65 = 1
O65_OS_LUNIX = 2
O65_OS_CC65 = 3
O65_OS_OPENCBM = 4
; Load errors
O65_LOAD_OK = 0 ; Module load successful
O65_LOAD_ERR_READ = 1 ; Read error
O65_LOAD_ERR_HDR = 2 ; Header error
O65_LOAD_ERR_OS = 3 ; Wrong OS
O65_LOAD_ERR_FMT = 4 ; Data format error
O65_LOAD_ERR_MEM = 5 ; Not enough memory
;/*****************************************************************************/
;/* */
;/* joy-kernel.inc */
;/* */
;/* Internally used joystick functions */
;/* */
;/* */
;/* */
;/* (C) 2002-2006, Ullrich von Bassewitz */
;/* R<>merstra<72>e 52 */
;/* D-70794 Filderstadt */
;/* EMail: uz@cc65.org */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
;------------------------------------------------------------------------------
; Driver header stuff
.struct JOY_HDR
ID .byte 3 ; $6A, $6F, $79 ("joy")
VERSION .byte 1 ; Interface version
LIBREF .addr ; Library reference
MASKS .byte 8 ; Joystick state mask array
JUMPTAB .struct
INSTALL .addr ; INSTALL routine
UNINSTALL .addr ; UNINSTALL routine
COUNT .addr ; COUNT routine
READ .addr ; READ routine
IRQ .addr ; IRQ routine
.endstruct
.endstruct
;------------------------------------------------------------------------------
; The JOY API version, stored in JOY_HDR::VERSION
JOY_API_VERSION = $03
;------------------------------------------------------------------------------
; Variables
.global _joy_drv ; Pointer to driver
.global _joy_masks
;------------------------------------------------------------------------------
; Driver entry points
.global joy_install
.global joy_uninstall
.global joy_count
.global joy_read
;------------------------------------------------------------------------------
; C callable functions
.global _joy_load_driver
.global _joy_unload
.global _joy_install
.global _joy_uninstall
.global _joy_count
.global _joy_read
.global _joy_clear_ptr
;/*****************************************************************************/
;/* */
;/* utsname.inc */
;/* */
;/* Return system information */
;/* */
;/* */
;/* */
;/* (C) 2003 Ullrich von Bassewitz */
;/* R<>merstrasse 52 */
;/* D-70794 Filderstadt */
;/* EMail: uz@cc65.org */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
; Struct utsname
.struct utsname
sysname .byte 17
nodename .byte 9
release .byte 9
version .byte 9
machine .byte 25
.endstruct
; smc.mac
; ca65 Macro-Pack for Self Modifying Code (SMC)
;
; (c) Christian Krüger, latest change: 17-Jul-2016
;
; This software is provided 'as-is', without any expressed or implied
; warranty. In no event will the authors be held liable for any damages
; arising from the use of this software.
;
; Permission is granted to anyone to use this software for any purpose,
; including commercial applications, and to alter it and redistribute it
; freely, subject to the following restrictions:
;
; 1. The origin of this software must not be misrepresented; you must not
; claim that you wrote the original software. If you use this software
; in a product, an acknowledgment in the product documentation would be
; appreciated but is not required.
; 2. Altered source versions must be plainly marked as such, and must not
; be misrepresented as being the original software.
; 3. This notice may not be removed or altered from any source
; distribution.
;
.define _SMCDesignator .mid(0, .tcount(label) - 1, label) .ident(.concat(.string(.right(1, label)), "_SMC"))
.define _SMCAlias .mid(0, .tcount(alias) - 1, alias) .ident(.concat(.string(.right(1, alias)), "_SMC"))
.define SMC_AbsAdr $FADE
.define SMC_ZpAdr $00
.define SMC_Opcode nop
.define SMC_Value $42
.macro SMC_OperateOnValue opcode, label
opcode _SMCDesignator+1
.endmacro
.macro SMC_OperateOnLowByte opcode, label
SMC_OperateOnValue opcode, label
.endmacro
.macro SMC_OperateOnHighByte opcode, label
opcode _SMCDesignator + 2
.endmacro
.macro SMC_Import alias
.import _SMCAlias
.endmacro
.macro SMC_Export alias, label
.export _SMCAlias := _SMCDesignator
.endmacro
.macro SMC label, statement
_SMCDesignator: statement
.endmacro
.macro SMC_TransferOpcode label, opcode, register
.if .paramcount = 2 .or .match ({register}, a) .or .match ({register}, )
lda #opcode
sta _SMCDesignator
.elseif .match ({register}, x)
ldx #opcode
stx _SMCDesignator
.elseif .match ({register}, y)
ldy #opcode
sty _SMCDesignator
.else
.error "Invalid usage of macro 'SMC_TransferOpcode'"
.endif
.endmacro
.macro SMC_LoadOpcode label, register
.if .paramcount = 1 .or .match ({register}, a) .or .match ({register}, )
lda _SMCDesignator
.elseif .match ({register}, x)
ldx _SMCDesignator
.elseif .match ({register}, y)
ldy _SMCDesignator
.else
.error "Invalid usage of macro 'SMC_LoadOpcode'"
.endif
.endmacro
.macro SMC_StoreOpcode label, register
.if .paramcount = 1 .or .match ({register}, a) .or .match ({register}, )
sta _SMCDesignator
.elseif .match ({register}, x)
stx _SMCDesignator
.elseif .match ({register}, y)
sty _SMCDesignator
.else
.error "Invalid usage of macro 'SMC_StoreOpcode'"
.endif
.endmacro
.macro SMC_ChangeBranch label, destination, register
.if .paramcount = 2 .or .match ({register}, a) .or .match ({register}, )
lda #(<(destination - _SMCDesignator -2))
sta _SMCDesignator+1
.elseif .match ({register}, x)
ldx #(<(destination - _SMCDesignator - 2))
stx _SMCDesignator+1
.elseif .match ({register}, y)
ldy #(<(destination - _SMCDesignator - 2))
sty _SMCDesignator+1
.else
.error "Invalid usage of macro 'SMC_ChangeBranch'"
.endif
.endmacro
.macro SMC_TransferValue label, value, register
.if .paramcount = 2 .or .match ({register}, a) .or .match ({register}, )
lda value
sta _SMCDesignator+1
.elseif .match ({register}, x)
ldx value
stx _SMCDesignator+1
.elseif .match ({register}, y)
ldy value
sty _SMCDesignator+1
.else
.error "Invalid usage of macro 'SMC_TransferValue'"
.endif
.endmacro
.macro SMC_LoadValue label, register
.if .paramcount = 1 .or .match ({register}, a) .or .match ({register}, )
lda _SMCDesignator+1
.elseif .match ({register}, x)
ldx _SMCDesignator+1
.elseif .match ({register}, y)
ldy _SMCDesignator+1
.else
.error "Invalid usage of macro 'SMC_LoadValue'"
.endif
.endmacro
.macro SMC_StoreValue label, register
.if .paramcount = 1 .or .match ({register}, a) .or .match ({register}, )
sta _SMCDesignator+1
.elseif .match ({register}, x)
stx _SMCDesignator+1
.elseif .match ({register}, y)
sty _SMCDesignator+1
.else
.error "Invalid usage of macro 'SMC_StoreValue'"
.endif
.endmacro
.macro SMC_TransferLowByte label, value, register
SMC_TransferValue label, value, register
.endmacro
.macro SMC_LoadLowByte label, register
SMC_LoadValue label, register
.endmacro
.macro SMC_StoreLowByte label, register
SMC_StoreValue label, register
.endmacro
.macro SMC_TransferHighByte label, value, register
.if .paramcount = 2 .or .match ({register}, a) .or .match ({register}, )
lda value
sta _SMCDesignator+2
.elseif .match ({register}, x)
ldx value
stx _SMCDesignator+2
.elseif .match ({register}, y)
ldy value
sty _SMCDesignator+2
.else
.error "Invalid usage of macro 'SMC_TransferHighByte'"
.endif
.endmacro
.macro SMC_LoadHighByte label, register
.if .paramcount = 1 .or .match ({register}, a) .or .match ({register}, )
lda _SMCDesignator+2
.elseif .match ({register}, x)
ldx _SMCDesignator+2
.elseif .match ({register}, y)
ldy _SMCDesignator+2
.else
.error "Invalid usage of macro 'SMC_LoadHighByte'"
.endif
.endmacro
.macro SMC_StoreHighByte label, register
.if .paramcount = 1 .or .match ({register}, a) .or .match ({register}, )
sta _SMCDesignator+2
.elseif .match ({register}, x)
stx _SMCDesignator+2
.elseif .match ({register}, y)
sty _SMCDesignator+2
.else
.error "Invalid usage of macro 'SMC_StoreHighByte'"
.endif
.endmacro
.macro SMC_TransferAddressSingle label, address, register
.if .paramcount = 2 .or .match ((register), a) .or .match ({register}, )
.if (.match (.left (1, {address}), #))
; immediate mode
lda #<(.right (.tcount ({address})-1, {address}))
sta _SMCDesignator+1
lda #>(.right (.tcount ({address})-1, {address}))
sta _SMCDesignator+2
.else
; assume absolute or zero page
lda address
sta _SMCDesignator+1
lda 1+(address)
sta _SMCDesignator+2
.endif
.elseif .match ((register), x)
.if (.match (.left (1, {address}), #))
; immediate mode
ldx #<(.right (.tcount ({address})-1, {address}))
stx _SMCDesignator+1
ldx #>(.right (.tcount ({address})-1, {address}))
stx _SMCDesignator+2
.else
; assume absolute or zero page
ldx address
stx _SMCDesignator+1
ldx 1+(address)
stx _SMCDesignator+2
.endif
.elseif .match ((register), y)
.if (.match (.left (1, {address}), #))
; immediate mode
ldy #<(.right (.tcount ({address})-1, {address}))
sty _SMCDesignator+1
ldy #>(.right (.tcount ({address})-1, {address}))
sty _SMCDesignator+2
.else
; assume absolute or zero page
ldy address
sty _SMCDesignator+1
ldy 1+(address)
sty _SMCDesignator+2
.endif
.else
.error "Invalid usage of macro 'SMC_TransferAddressSingle'"
.endif
.endmacro
.macro SMC_TransferAddress label, address
.if (.match (.left (1, {address}), #))
; immediate mode
lda #<(.right (.tcount ({address})-1, {address}))
sta _SMCDesignator+1
ldx #>(.right (.tcount ({address})-1, {address}))
stx _SMCDesignator+2
.else
; assume absolute or zero page
lda {address}
sta _SMCDesignator+1
ldx 1+{address}
stx _SMCDesignator)+2
.endif
.endmacro
.macro SMC_StoreAddress label
sta _SMCDesignator+1
stx _SMCDesignator+2
.endmacro
;
; C16 generic definitions.
;
; The C16 and Plus/4 are identical, so just include the Plus/4 include file.
.include "plus4.inc"
; CPU bitmask constants
CPU_ISET_NONE = $0001
CPU_ISET_6502 = $0002
CPU_ISET_6502X = $0004
CPU_ISET_65SC02 = $0008
CPU_ISET_65C02 = $0010
CPU_ISET_65816 = $0020
CPU_ISET_SWEET16 = $0040
CPU_ISET_HUC6280 = $0080
;CPU_ISET_M740 = $0100 not actually implemented
CPU_ISET_4510 = $0200
; CPU capabilities
CPU_NONE = CPU_ISET_NONE
CPU_6502 = CPU_ISET_6502
CPU_6502X = CPU_ISET_6502|CPU_ISET_6502X
CPU_65SC02 = CPU_ISET_6502|CPU_ISET_65SC02
CPU_65C02 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65C02
CPU_65816 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65816
CPU_SWEET16 = CPU_ISET_SWEET16
CPU_HUC6280 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65C02|CPU_ISET_HUC6280
CPU_4510 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65C02|CPU_ISET_4510
; Convert characters to screen codes
; Helper macro that converts and outputs one character
.macro _scrcode char
.if (char < 256)
.byte <(.strat ("h@dbdlhh", char >> 5) << 4) ^ char
.else
.error "scrcode: Character constant out of range"
.endif
.endmacro
.macro scrcode arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
; Bail out if next argument is empty
.if .blank ({arg1})
.exitmacro
.endif
; Check for a string
.if .match ({arg1}, "")
; Walk over all string chars
.repeat .strlen (arg1), i
_scrcode {.strat (arg1, i)}
.endrepeat
; Check for a number
.elseif .match (.left (1, {arg1}), 0)
; Just output the number
_scrcode arg1
; Check for a character
.elseif .match (.left (1, {arg1}), 'a')
; Just output the character
_scrcode arg1
; Anything else is an error
.else
.error "scrcode: invalid argument type"
.endif
; Call the macro recursively with the remaining args
scrcode arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
.endmacro
; opcodes.inc
; ca65 6502 - opcode definitions, mainly for self modifying code
;
; Christian Kr<4B>ger, latest change: 18-Sep-2010
;
; This software is provided 'as-is', without any expressed or implied
; warranty. In no event will the authors be held liable for any damages
; arising from the use of this software.
;
; Permission is granted to anyone to use this software for any purpose,
; including commercial applications, and to alter it and redistribute it
; freely, subject to the following restrictions:
;
; 1. The origin of this software must not be misrepresented; you must not
; claim that you wrote the original software. If you use this software
; in a product, an acknowledgment in the product documentation would be
; appreciated but is not required.
; 2. Altered source versions must be plainly marked as such, and must not
; be misrepresented as being the original software.
; 3. This notice may not be removed or altered from any source
; distribution.
;
; Opcode-Table
; ------------
; Post fix explanation:
; imm = #$00
; zp = $00
; zpx = $00,X
; zpy = $00,Y
; izp = ($00)
; izx = ($00,X)
; izy = ($00),Y
; abs = $0000
; abx = $0000,X
; aby = $0000,Y
; ind = ($0000)
; iax = ($0000,X)
; rel = $0000 (PC-relative) (supressed here)
.macpack cpu
OPC_BRK = $00
OPC_ORA_izx = $01
OPC_ORA_zp = $05
OPC_ASL_zp = $06
OPC_PHP = $08
OPC_ORA_imm = $09
OPC_ASL = $0A
OPC_ORA_abs = $0D
OPC_ASL_abs = $0E
OPC_BPL = $10
OPC_ORA_izy = $11
OPC_ORA_zpx = $15
OPC_ASL_zpx = $16
OPC_CLC = $18
OPC_ORA_aby = $19
OPC_ORA_abx = $1D
OPC_ASL_abx = $1E
OPC_JSR_abs = $20
OPC_AND_izx = $21
OPC_BIT_zp = $24
OPC_AND_zp = $25
OPC_ROL_zp = $26
OPC_PLP = $28
OPC_AND_imm = $29
OPC_ROL = $2A
OPC_BIT_abs = $2C
OPC_AND_abs = $2D
OPC_ROL_abs = $2E
OPC_BMI = $30
OPC_AND_izy = $31
OPC_AND_zpx = $35
OPC_ROL_zpx = $36
OPC_SEC = $38
OPC_AND_aby = $39
OPC_AND_abx = $3D
OPC_ROL_abx = $3E
OPC_RTI = $40
OPC_EOR_izx = $41
OPC_EOR_zp = $45
OPC_LSR_zp = $46
OPC_PHA = $48
OPC_EOR_imm = $49
OPC_LSR = $4A
OPC_JMP_abs = $4C
OPC_EOR_abs = $4D
OPC_LSR_abs = $4E
OPC_BVC = $50
OPC_EOR_izy = $51
OPC_EOR_zpx = $55
OPC_LSR_zpx = $56
OPC_CLI = $58
OPC_EOR_aby = $59
OPC_EOR_abx = $5D
OPC_LSR_abx = $5E
OPC_RTS = $60
OPC_ADC_izx = $61
OPC_ADC_zp = $65
OPC_ROR_zp = $66
OPC_PLA = $68
OPC_ADC_imm = $69
OPC_ROR = $6A
OPC_JMP_ind = $6C
OPC_ADC_abs = $6D
OPC_ROR_abs = $6E
OPC_BVS = $70
OPC_ADC_izy = $71
OPC_ADC_zpx = $75
OPC_ROR_zpx = $76
OPC_SEI = $78
OPC_ADC_aby = $79
OPC_ADC_abx = $7D
OPC_ROR_abx = $7E
OPC_STA_izx = $81
OPC_STY_zp = $84
OPC_STA_zp = $85
OPC_STX_zp = $86
OPC_DEY = $88
OPC_TXA = $8A
OPC_STY_abs = $8C
OPC_STA_abs = $8D
OPC_STX_abs = $8E
OPC_BCC = $90
OPC_STA_izy = $91
OPC_STY_zpx = $94
OPC_STA_zpx = $95
OPC_STX_zpy = $96
OPC_TYA = $98
OPC_STA_aby = $99
OPC_TXS = $9A
OPC_STA_abx = $9D
OPC_LDY_imm = $A0
OPC_LDA_izx = $A1
OPC_LDX_imm = $A2
OPC_LDY_zp = $A4
OPC_LDA_zp = $A5
OPC_LDX_zp = $A6
OPC_TAY = $A8
OPC_LDA_imm = $A9
OPC_TAX = $AA
OPC_LDY_abs = $AC
OPC_LDA_abs = $AD
OPC_LDX_abs = $AE
OPC_BCS = $B0
OPC_LDA_izy = $B1
OPC_LDY_zpx = $B4
OPC_LDA_zpx = $B5
OPC_LDX_zpy = $B6
OPC_CLV = $B8
OPC_LDA_aby = $B9
OPC_TSX = $BA
OPC_LDY_abx = $BC
OPC_LDA_abx = $BD
OPC_LDX_aby = $BE
OPC_CPY_imm = $C0
OPC_CMP_izx = $C1
OPC_CPY_zp = $C4
OPC_CMP_zp = $C5
OPC_DEC_zp = $C6
OPC_INY = $C8
OPC_CMP_imm = $C9
OPC_DEX = $CA
OPC_CPY_abs = $CC
OPC_CMP_abs = $CD
OPC_DEC_abs = $CE
OPC_BNE = $D0
OPC_CMP_izy = $D1
OPC_CMP_zpx = $D5
OPC_DEC_zpx = $D6
OPC_CLD = $D8
OPC_CMP_aby = $D9
OPC_CMP_abx = $DD
OPC_DEC_abx = $DE
OPC_CPX_imm = $E0
OPC_SBC_izx = $E1
OPC_CPX_zp = $E4
OPC_SBC_zp = $E5
OPC_INC_zp = $E6
OPC_INX = $E8
OPC_SBC_imm = $E9
OPC_NOP = $EA
OPC_CPX_abs = $EC
OPC_SBC_abs = $ED
OPC_INC_abs = $EE
OPC_BEQ = $F0
OPC_SBC_izy = $F1
OPC_SBC_zpx = $F5
OPC_INC_zpx = $F6
OPC_SED = $F8
OPC_SBC_aby = $F9
OPC_SBC_abx = $FD
OPC_INC_abx = $FE
.if (.cpu .bitand ::CPU_ISET_65SC02)
; OPC_NOP = $02 ; doublet
; OPC_NOP = $03 ; doublet
OPC_TSB_zp = $04
; OPC_NOP = $0B ; doublet
OPC_TSB_abs = $0C
OPC_ORA_izp = $12
; OPC_NOP = $13 ; doublet
OPC_TRB_zp = $14
OPC_INC = $1A
; OPC_NOP = $1B ; doublet
OPC_TRB_abs = $1C
; OPC_NOP = $22 ; doublet
; OPC_NOP = $23 ; doublet
; OPC_NOP = $2B ; doublet
OPC_AND_izp = $32
; OPC_NOP = $33 ; doublet
OPC_BIT_zpx = $34
OPC_DEC = $3A
; OPC_NOP = $3B ; doublet
OPC_BIT_abx = $3C
; OPC_NOP = $42 ; doublet
; OPC_NOP = $43 ; doublet
; OPC_NOP = $44 ; doublet
; OPC_NOP = $4B ; doublet
OPC_EOR_izp = $52
; OPC_NOP = $53 ; doublet
; OPC_NOP = $54 ; doublet
; OPC_NOP = $5A ; doublet
; OPC_NOP = $5B ; doublet
OPC_EOR_abx = $5C
; OPC_NOP = $62 ; doublet
; OPC_NOP = $63 ; doublet
OPC_STZ_zp = $64
; OPC_NOP = $6B ; doublet
OPC_ADC_izp = $72
; OPC_NOP = $73 ; doublet
OPC_STZ_zpx = $74
OPC_PLY = $7A
; OPC_NOP = $7B ; doublet
OPC_JMP_iax = $7C
OPC_BRA = $80
; OPC_NOP = $82 ; doublet
; OPC_NOP = $83 ; doublet
OPC_BIT_imm = $89
; OPC_NOP = $8B ; doublet
OPC_STA_izp = $92
; OPC_NOP = $93 ; doublet
; OPC_NOP = $9B ; doublet
OPC_STZ_abs = $9C
OPC_STZ_abx = $9E
; OPC_NOP = $A3 ; doublet
; OPC_NOP = $AB ; doublet
OPC_LDA_izp = $B2
; OPC_NOP = $B3 ; doublet
; OPC_NOP = $BB ; doublet
; OPC_NOP = $C2 ; doublet
; OPC_NOP = $C3 ; doublet
; OPC_NOP = $CB ; doublet
OPC_CMP_izp = $D2
; OPC_NOP = $D3 ; doublet
; OPC_NOP = $D4 ; doublet
OPC_PHX = $DA
; OPC_NOP = $DB ; doublet
; OPC_NOP = $DC ; doublet
; OPC_NOP = $E2 ; doublet
; OPC_NOP = $E3 ; doublet
; OPC_NOP = $EB ; doublet
OPC_SBC_izp = $F2
; OPC_NOP = $F3 ; doublet
; OPC_NOP = $F4 ; doublet
OPC_PLX = $FA
; OPC_NOP = $FB ; doublet
; OPC_NOP = $FC ; doublet
.if (.cpu .bitand ::CPU_ISET_65C02)
; bit instructions for 65C02
OPC_RMB0 = $07
OPC_RMB1 = $17
OPC_RMB2 = $27
OPC_RMB3 = $37
OPC_RMB4 = $47
OPC_RMB5 = $57
OPC_RMB6 = $67
OPC_RMB7 = $77
OPC_SMB0 = $87
OPC_SMB1 = $97
OPC_SMB2 = $A7
OPC_SMB3 = $B7
OPC_SMB4 = $C7
OPC_SMB5 = $D7
OPC_SMB6 = $E7
OPC_SMB7 = $F7
OPC_BBR0 = $0F
OPC_BBR1 = $1F
OPC_BBR2 = $2F
OPC_BBR3 = $3F
OPC_BBR4 = $4F
OPC_BBR5 = $5F
OPC_BBR6 = $6F
OPC_BBR7 = $7F
OPC_BBS0 = $8F
OPC_BBS1 = $9F
OPC_BBS2 = $AF
OPC_BBS3 = $BF
OPC_BBS4 = $CF
OPC_BBS5 = $DF
OPC_BBS6 = $EF
OPC_BBS7 = $FF
.else
; no bit instructions for 65SC02
; OPC_NOP = $07 ; doublet
; OPC_NOP = $17 ; doublet
; OPC_NOP = $27 ; doublet
; OPC_NOP = $37 ; doublet
; OPC_NOP = $47 ; doublet
; OPC_NOP = $57 ; doublet
; OPC_NOP = $67 ; doublet
; OPC_NOP = $77 ; doublet
; OPC_NOP = $87 ; doublet
; OPC_NOP = $97 ; doublet
; OPC_NOP = $A7 ; doublet
; OPC_NOP = $B7 ; doublet
; OPC_NOP = $C7 ; doublet
; OPC_NOP = $D7 ; doublet
; OPC_NOP = $E7 ; doublet
; OPC_NOP = $F7 ; doublet
; OPC_NOP = $0F ; doublet
; OPC_NOP = $1F ; doublet
; OPC_NOP = $2F ; doublet
; OPC_NOP = $3F ; doublet
; OPC_NOP = $4F ; doublet
; OPC_NOP = $5F ; doublet
; OPC_NOP = $6F ; doublet
; OPC_NOP = $7F ; doublet
; OPC_NOP = $8F ; doublet
; OPC_NOP = $9F ; doublet
; OPC_NOP = $AF ; doublet
; OPC_NOP = $BF ; doublet
; OPC_NOP = $CF ; doublet
; OPC_NOP = $DF ; doublet
; OPC_NOP = $EF ; doublet
; OPC_NOP = $FF ; doublet
.endif
.elseif (.cpu .bitand ::CPU_ISET_6502X)
; stable, undocumented opcodes
; OPC_KIL = $02 ; unstable
OPC_SLO_izx = $03
OPC_NOP_zp = $04
OPC_SLO_zp = $07
OPC_ANC_imm = $0B
OPC_NOP_abs = $0C
OPC_SLO_abs = $0F
; OPC_KIL = $12 ; unstable
OPC_SLO_izy = $13
OPC_NOP_zpx = $14
OPC_SLO_zpx = $17
;OPC_NOP = $1A
OPC_SLO_aby = $1B
OPC_NOP_abx = $1C
OPC_SLO_abx = $1F
; OPC_KIL = $22 ; unstable
OPC_RLA_izx = $23
OPC_RLA_zp = $27
OPC_ANC_imm = $2B
OPC_RLA_abs = $2F
; OPC_KIL = $32 ; unstable
OPC_RLA_izy = $33
OPC_NOP_zpx = $34
OPC_RLA_zpx = $37
; OPC_NOP = $3A ; doublet
OPC_RLA_aby = $3B
OPC_NOP_abx = $3C
OPC_RLA_abx = $3F
; OPC_KIL = $42 ; unstable
OPC_SRE_izx = $43
OPC_NOP_zp = $44
OPC_SRE_zp = $47
OPC_ALR_imm = $4B
OPC_SRE_abs = $4F
; OPC_KIL = $52 ; unstable
OPC_SRE_izy = $53
OPC_NOP_zpx = $54
OPC_SRE_zpx = $57
; OPC_NOP = $5A ; doublet
OPC_SRE_aby = $5B
OPC_NOP_abx = $5C
OPC_SRE_abx = $5F
; OPC_KIL = $62
OPC_RRA_izx = $63
OPC_NOP_zp = $64
OPC_RRA_zp = $67
OPC_ARR_imm = $6B
OPC_RRA_abs = $6F
; OPC_KIL = $72
OPC_RRA_izy = $73
OPC_NOP_zpx = $74
OPC_RRA_zpx = $77
; OPC_NOP = $7A ; doublet
OPC_RRA_aby = $7B
OPC_NOP_abx = $7C
OPC_RRA_abx = $7F
OPC_NOP_imm = $80
; OPC_NOP_imm = $82 ; doublet
OPC_SAX_izx = $83
OPC_SAX_zp = $87
; OPC_NOP_imm = $89 ; doublet
; OPC_XAA = $8B ; unstable
OPC_SAX_abs = $8F
; OPC_KIL = $92 ; unstable
; OPC_AHX_izy = $93 ; unstable
OPC_SAX_zpy = $97
; OPC_TAS_aby = $9B ; unstable
; OPC_SHY_abx = $9C ; unstable
; OPC_SHX_aby = $9E ; unstable
; OPC_AHX_aby = $9F ; unstable
OPC_LAX_izx = $A3
OPC_LAX_zp = $A7
; OPC_LAX_imm = $AB ; unstable
OPC_LAX_abs = $AF
; OPC_KIL = $B2 ; unstable
OPC_LAX_izy = $B3
OPC_LAX_zpy = $B7
OPC_LAS_aby = $BB
OPC_LAX_aby = $BF
; OPC_NOP_imm = $C2 ; doublet
OPC_DCP_izx = $C3
OPC_DCP_zp = $C7
OPC_AXS_imm = $CB
OPC_DCP_abs = $CF
; OPC_KIL = $D2 ; unstable
OPC_DCP_izy = $D3
OPC_NOP_zpx = $D4
OPC_DCP_zpx = $D7
OPC_NOP_DA = $DA
OPC_DCP_aby = $DB
OPC_NOP_abx = $DC
OPC_DCP_abx = $DF
; OPC_NOP_imm = $E2 ; doublet
OPC_ISC_izx = $E3
OPC_ISC_zp = $E7
; OPC_SBC_imm = $EB ; doublet
OPC_ISC_abs = $EF
; OPC_KIL = $F2 ; unstable
OPC_ISC_izy = $F3
OPC_NOP_zpx = $F4
OPC_ISC_zpx = $F7
OPC_NOP_FA = $FA
OPC_ISC_aby = $FB
OPC_NOP_abx = $FC
OPC_ISC_abx = $FF
.endif
;
; Vic20 generic definitions. Stolen mostly from c64.inc - Steve Schmidtke
;
; ---------------------------------------------------------------------------
; Zero page, Commodore stuff
VARTAB := $2D ; Pointer to start of BASIC variables
MEMSIZE := $37 ; Pointer to highest BASIC RAM location (+1)
TXTPTR := $7A ; Pointer into BASIC source code
TIME := $A0 ; 60HZ clock
FNAM_LEN := $B7 ; Length of filename
SECADR := $B9 ; Secondary address
DEVNUM := $BA ; Device number
FNAM := $BB ; Pointer to filename
KEY_COUNT := $C6 ; Number of keys in input buffer
RVS := $C7 ; Reverse flag
CURS_FLAG := $CC ; 1 = cursor off
CURS_BLINK := $CD ; Blink counter
CURS_CHAR := $CE ; Character under the cursor
CURS_STATE := $CF ; Cursor blink state
SCREEN_PTR := $D1 ; Pointer to current char in text screen
CURS_X := $D3 ; Cursor column
CURS_Y := $D6 ; Cursor row
CRAM_PTR := $F3 ; Pointer to current char in color RAM
BASIC_BUF := $200 ; Location of command-line
BASIC_BUF_LEN = 89 ; Maximum length of command-line
CHARCOLOR := $286
CURS_COLOR := $287 ; Color under the cursor
; ---------------------------------------------------------------------------
; Screen size
XSIZE = 22
YSIZE = 23
; ---------------------------------------------------------------------------
; Kernal routines
; Direct entries
CLRSCR := $E55F
KBDREAD := $E5CF
; ---------------------------------------------------------------------------
; Vector and other locations
IRQVec := $0314
BRKVec := $0316
NMIVec := $0318
; ---------------------------------------------------------------------------
; I/O: 6560 VIC
VIC := $9000
VIC_LINES := $9003 ; Screen lines, bit 7 is bit 0 from VIC_HLINE
VIC_HLINE := $9004 ; Rasterline, bits 1-8
VIC_COLOR := $900F ; Border and background color
; ---------------------------------------------------------------------------
; I/O: 6522 VIA1
VIA1 := $9110
VIA1_JOY := $9111
VIA1_DDRB := $9112
VIA1_DDRA := $9113
; ---------------------------------------------------------------------------
; I/O: 6522 VIA2
VIA2 := $9120
VIA2_JOY := $9120
VIA2_DDRB := $9122
VIA2_DDRA := $9123
;
; Plus/4 generic definitions.
;
; ---------------------------------------------------------------------------
; Zero page, Commodore stuff
TMPPTR := $22 ; Temporary ptr used by BASIC
VARTAB := $2D ; Pointer to start of BASIC variables
MEMSIZE := $37 ; Pointer to highest BASIC RAM location (+1)
TXTPTR := $3B ; Pointer into BASIC source code
TIME := $A3 ; 60HZ clock
FNAM_LEN := $AB ; Length of filename
LFN := $AC ; Logical file number
SECADR := $AD ; Secondary address
DEVNUM := $AE ; Device number
FNAM := $AF ; Pointer to filename for OPEN
KEY_COUNT := $EF ; Number of keys in input buffer
RVS := $C2 ; Reverse flag
CURS_X := $CA ; Cursor column
CURS_Y := $CD ; Cursor row
SCREEN_PTR := $C8 ; Pointer to current char in text screen
CRAM_PTR := $EA ; Pointer to current char in color RAM
BASIC_BUF := $200 ; Location of command-line
BASIC_BUF_LEN = 89 ; Maximum length of command-line
FNBUF := $25E ; Buffer for filename
FETCH := $494 ; lda (zp),y from RAM
CHARCOLOR := $53B
FKEY_COUNT := $55D ; Characters for function key
FKEY_SPACE := $55F ; Function key definitions
FKEY_ORIG := $F3D2 ; Original definitions
; ---------------------------------------------------------------------------
; Kernal routines
; Direct entries
CLRSCR := $D88B
KBDREAD := $D8C1
; ---------------------------------------------------------------------------
; Vector and other locations
IRQVec := $0314
BRKVec := $0316
NMIVec := $0318
; ---------------------------------------------------------------------------
; Screen size
XSIZE = 40
YSIZE = 25
; ---------------------------------------------------------------------------
; I/O
TED_T1LO := $FF00
TED_T1HI := $FF01
TED_T2LO := $FF02
TED_T2HI := $FF03
TED_T3LO := $FF04
TED_T4HI := $FF05
TED_MULTI1 := $FF07
TED_KBD := $FF08
TED_CURSHI := $FF0C
TED_CURSLO := $FF0D
TED_V1FRQLO := $FF0E
TED_V2FRQLO := $FF0F
TED_V2FRQHI := $FF10
TED_BGCOLOR := $FF15
TED_COLOR1 := $FF16
TED_COLOR2 := $FF17
TED_COLOR3 := $FF18
TED_BORDERCOLOR := $FF19
TED_VLINEHI := $FF1C
TED_VLINELO := $FF1D
TED_HPOS := $FF1E
TED_ROMSEL := $FF3E
TED_RAMSEL := $FF3F
; ---------------------------------------------------------------------------
; RAM/ROM selection addresses
ENABLE_ROM := TED_ROMSEL
ENABLE_RAM := TED_RAMSEL
; supervision symbols
; supervision 65c02s
; in cc65 up to 2.9.1 65c02 means 65sc02
lcd_addr = $4000
LCD_LINESIZE = $30
LCD_WIDTH = 160
LCD_HEIGHT = 160
; 2 bit per pixel, packed
lcd_width = $2000
lcd_height = $2001
lcd_xpos = $2002 ; in pixel, bit 0+1 not used
lcd_ypos = $2003 ; weird
sv_port_r = $2021
sv_port_w = $2022
sv_timer_count = $2023
; read for quitting
sv_timer_quit = $2024
; bit 0 timer, bit 1 dma
sv_irq_source = $2027
SV_IRQ_REQUEST_TIMER = 1
SV_IRQ_REQUEST_DMA = 2
; bit 5,6,7 select bank at 0x8000
sv_bank = $2026
SV_NMI_ENABLE_ON = 1
SV_IRQ_ENABLE_TIMER = 2
SV_IRQ_ENABLE_DMA = 4
SV_LCD_ON = 8
SV_TIMER_MODE_240Hz = $10 ; else 15360
; low activ/pressed
sv_control = $2020
SV_RIGHT = 1
SV_LEFT = 2
SV_DOWN = 4
SV_UP = 8
SV_BUTTONB = $10
SV_BUTTONA = $20
SV_SELECT = $40
SV_START = $80
; frequency=125000/counter
sv_audio_right_counter = $2010 ;word
sv_audio_left_counter = $2014
SV_AUDIO_ON =$40
;bits 0..3 volume
; bit 4 ?
; bit 5 ?
sv_audio_right_control = $2012
sv_audio_left_control = $2016
; write activates tone for x/60 sec (0 means 256)
sv_audio_right_timer = $2013
sv_audio_left_timer = $2017
;read for irq quitting
sv_dma_quit = $2025
sv_dma_on = $201c
; bit 7 true start, false stop
sv_dma_start = $2018 ; word
sv_dma_size = $201a ; *32 samples
sv_dma_control = $201b
; bit 0,1 speed: 0 15360, 11 15360/4
; bit 2,3 volume: 0 silent, 11 loud
sv_noise_volume = $2028 ; and frequency
sv_noise_timer = $2029
sv_noise_control = $202a
;/*****************************************************************************/
;/* */
;/* mouse-kernel.inc */
;/* */
;/* Mouse API */
;/* */
;/* */
;/* */
;/* (C) 2003-2009, Ullrich von Bassewitz */
;/* Roemerstrasse 52 */
;/* D-70794 Filderstadt */
;/* EMail: uz@cc65.org */
;/* */
;/* */
;/* */
;/* */
;/* This software is provided 'as-is', without any expressed or implied */
;/* warranty. In no event will the authors be held liable for any damages */
;/* arising from the use of this software. */
;/* */
;/* Permission is granted to anyone to use this software for any purpose, */
;/* including commercial applications, and to alter it and redistribute it */
;/* freely, subject to the following restrictions: */
;/* */
;/* 1. The origin of this software must not be misrepresented; you must not */
;/* claim that you wrote the original software. If you use this software */
;/* in a product, an acknowledgment in the product documentation would be */
;/* appreciated but is not required. */
;/* 2. Altered source versions must be plainly marked as such, and must not */
;/* be misrepresented as being the original software. */
;/* 3. This notice may not be removed or altered from any source */
;/* distribution. */
;/* */
;/*****************************************************************************/
;------------------------------------------------------------------------------
; Error codes
.enum
MOUSE_ERR_OK ; No error
MOUSE_ERR_NO_DRIVER ; No driver available
MOUSE_ERR_CANNOT_LOAD ; Error loading driver
MOUSE_ERR_INV_DRIVER ; Invalid driver
MOUSE_ERR_NO_DEVICE ; Mouse hardware not found
MOUSE_ERR_INV_IOCTL ; Invalid ioctl code
MOUSE_ERR_COUNT ; Special: Number of error codes
.endenum
;------------------------------------------------------------------------------
; The driver header
.struct MOUSE_HDR
ID .byte 3 ; Contains 0x6D, 0x6F, 0x75 ("mou")
VERSION .byte 1 ; Interface version
LIBREF .addr ; Library reference
JUMPTAB .struct
INSTALL .addr
UNINSTALL .addr
HIDE .addr
SHOW .addr
SETBOX .addr
GETBOX .addr
MOVE .addr
BUTTONS .addr
POS .addr
INFO .addr
IOCTL .addr
IRQ .addr
.endstruct
FLAGS .byte ; Mouse driver flags
CALLBACKS .struct ; Jump instructions
.byte ; JMP opcode
CHIDE .addr ; Jump address
.byte
CSHOW .addr
.byte
CPREP .addr
.byte
CDRAW .addr
.byte
CMOVEX .addr
.byte
CMOVEY .addr
.endstruct
.endstruct
;------------------------------------------------------------------------------
; The mouse callback structure
.struct MOUSE_CALLBACKS
HIDE .addr ; Hide the mouse cursor
SHOW .addr ; Show the mouse cursor
PREP .addr ; Prepare to move the mouse cursor
DRAW .addr ; Draw the mouse cursor
MOVEX .addr ; Move the mouse cursor to X coord
MOVEY .addr ; Move the mouse cursor to Y coord
.endstruct
;------------------------------------------------------------------------------
; The mouse API version, stored in MOUSE_HDR::VERSION
MOUSE_API_VERSION = $05
;------------------------------------------------------------------------------
; Bitmapped mouse driver flags, stored in MOUSE_HDR::FLAGS.
; Note: If neither of MOUSE_FLAG_XXX_IRQ is set, no interrupts are supplied
; to the driver. If one of the bits is set, the interrupt vector MUST be
; valid.
; Beware: Some of the bits are tested using the BIT instruction, so do not
; change the values without checking the code!
MOUSE_FLAG_EARLY_IRQ = $40 ; Enable IRQ *before* calling INSTALL
MOUSE_FLAG_LATE_IRQ = $80 ; Enable IRQ *after* calling INSTALL
;------------------------------------------------------------------------------
; Mouse button definitions
MOUSE_BTN_LEFT = $10
MOUSE_BTN_RIGHT = $01
;------------------------------------------------------------------------------
; Structures used to return data from the mouse driver
.struct MOUSE_POS
XCOORD .word
YCOORD .word
.endstruct
.struct MOUSE_INFO
POS .tag MOUSE_POS
BUTTONS .byte
.endstruct
.struct MOUSE_BOX
MINX .word
MINY .word
MAXX .word
MAXY .word
.endstruct
;------------------------------------------------------------------------------
; Variables
.global _mouse_drv ; Pointer to driver
.global _mouse_hidden ; Counter, 0 = mouse is visible
;------------------------------------------------------------------------------
; C callable functions
.global _mouse_load_driver
.global _mouse_unload
.global _mouse_install
.global _mouse_uninstall
.global _mouse_geterrormsg
.global _mouse_hide
.global _mouse_show
.global _mouse_setbox
.global _mouse_getbox
.global _mouse_move
.global _mouse_buttons
.global _mouse_pos
.global _mouse_info
.global _mouse_ioctl
.global _mouse_clear_ptr
;------------------------------------------------------------------------------
; Driver entry points (asm callable)
.global mouse_install
.global mouse_uninstall
.global mouse_hide
.global mouse_show
.global mouse_setbox
.global mouse_getbox
.global mouse_move
.global mouse_buttons
.global mouse_pos
.global mouse_info
.global mouse_ioctl
;-----------------------------------------------------------------------------
; Zero page stuff
WNDLFT := $20 ; Text window left
WNDWDTH := $21 ; Text window width
WNDTOP := $22 ; Text window top
WNDBTM := $23 ; Text window bottom+1
CH := $24 ; Cursor horizontal position
CV := $25 ; Cursor vertical position
BASL := $28 ; Text base address low
BASH := $29 ; Text base address high
INVFLG := $32 ; Normal/inverse(/flash)
PROMPT := $33 ; Used by GETLN
RNDL := $4E ; Random counter low
RNDH := $4F ; Random counter high
HIMEM := $73 ; Highest available memory address+1
;-----------------------------------------------------------------------------
; Vectors
DOSWARM := $03D0 ; DOS warmstart vector
BRKVec := $03F0 ; Break vector
SOFTEV := $03F2 ; Vector for warm start
PWREDUP := $03F4 ; This must be = EOR #$A5 of SOFTEV+1
;-----------------------------------------------------------------------------
; Hardware
; Keyboard input
KBD := $C000 ; Read keyboard
KBDSTRB := $C010 ; Clear keyboard strobe
; 80 column video switches
CLR80COL:= $C000 ; Disable 80 column store
SET80COL:= $C001 ; Enable 80 column store
RD80COL := $C018 ; >127 if 80 column store enabled
RD80VID := $C01F ; >127 if 80 column video enabled
; Character set switches
CLRALTCHAR := $C00E ; Normal Apple II char set
SETALTCHAR := $C00F ; Norm/inv LC, no flash
ALTCHARSET := $C01E ; >127 if alt charset switched in
; Language card switches
RDLCBNK2:= $C011 ; >127 if LC bank 2 in use
RDLCRAM := $C012 ; >127 if LC is read enabled
ROMIN := $C081 ; Swap in D000-FFFF ROM
LCBANK2 := $C083 ; Swap in LC bank 2
LCBANK1 := $C08B ; Swap in LC bank 1
; Video mode switches
TXTCLR := $C050 ; Display graphics
TXTSET := $C051 ; Display text
MIXCLR := $C052 ; Disable 4 lines of text
MIXSET := $C053 ; Enable 4 lines of text
LOWSCR := $C054 ; Page 1
HISCR := $C055 ; Page 2
LORES := $C056 ; Lores graphics
HIRES := $C057 ; Hires graphics
; Game controller
BUTN0 := $C061 ; Open-Apple Key
BUTN1 := $C062 ; Closed-Apple Key
SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack
}
MEMORY {
ZP: file = "", start = $0000, size = $001A;
HEADER: file = %O, start = $0000, size = $0001;
MAIN: file = %O, define = yes, start = $0200, size = $FDF0 - __STACKSIZE__;
}
SEGMENTS {
ZEROPAGE: load = ZP, type = zp;
EXEHDR: load = HEADER, type = ro;
STARTUP: load = MAIN, type = ro;
LOWCODE: load = MAIN, type = ro, optional = yes;
ONCE: load = MAIN, type = ro, optional = yes;
CODE: load = MAIN, type = ro;
RODATA: load = MAIN, type = ro;
DATA: load = MAIN, type = rw;
BSS: load = MAIN, 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__;
}
naUz <00><>
Uzna` ixK<00><00>%<00><00><00>A<00>
<00><00>@<40>۵<8B>faX<61><08><17>\<5C>
 <03><06> <0A><18><04>< B)7(A8' 69+
5*2,.0C3! __SIM6502__ common/_cwd.s
ca65 V2.15__cwd__cwd_buf_sizecwd_initinitcwd*/home/hugg/compilers/cc65/asminc/stdio.inc_IOFBF_IOLBF_IONBFBUFSIZEOF FILENAME_MAXL_tmpnamSEEK_CURSEEK_ENDSEEK_SETTMP_MAX FOPEN_MAX_stdin_stdout_stderr.size __cwd_buf_size must not be > 255CODERODATABSSDATAZEROPAGENULLINIT<01>Uzna` i<00>L[ gjj<00><00>i<00>@<40>۵<8B>faX<61><06><17>\<5C>faX<61><06>%<02><01>9
<01><00> <01>
<01><01><01><01>$$<01>.<01>.L
<82><01>,i H<><01>- I<>-<01><01>"`
&'()*! - <01><04>!3<"B)& 7( A8'$6!9+%5*(2 ,. #0+C3+ __SIM6502__common/_fdesc.s
ca65 V2.15__fdescreturn0*/home/hugg/compilers/cc65/asminc/stdio.inc_IOFBF_IOLBF_IONBFBUFSIZEOF FILENAME_MAXL_tmpnamSEEK_CURSEEK_ENDSEEK_SETTMP_MAX FOPEN_MAX_stdin_stdout_stderr*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACK __filetabLoopFound@L1CODERODATABSSDATAZEROPAGENULLUzna` i<00><00>kl?<00><00><00><00><00><00><00>@<40>۵<8B>faX<61><05><17>\<5C>faX<61> faX<61>+,-<00>.   000000000000000
<01><03>
<01><03>
<01><03>/0<04><01><03>-<00><01><03>,<00><01><03><00><04> 6< B)&7( A8'$6!9 +5*2 ,. # 0C31 __SIM6502__common/_file.s
ca65 V2.15 __filetab*/home/hugg/compilers/cc65/asminc/stdio.inc_IOFBF_IOLBF_IONBFBUFSIZEOF FILENAME_MAXL_tmpnamSEEK_CURSEEK_ENDSEEK_SETTMP_MAX FOPEN_MAX_stdin_stdout_stderr*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCL*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACKCODERODATABSSDATAZEROPAGENULLUzna` iqT<00>%<00> <00><00><00><00>y<00>@<40>۵<8B><02><17>\<5C> 50I<> <01> <09><01> I<><01> <01><00> 
<82><01> <09><01> <01><01> 
<82> <01> <09><01> <01><02><02><01> <09><01><01> <09><01><01> <09><01> <09><01><01> <09><01><01><01><01> <01><02> <01> <01><01><01><01><01> <01><00> <01><01>`
   <01><04> !-)& 61 $! %7*(,2 #'+ __SIM6502__common/_swap.s
ca65 V2.15__swappopaxptr1ptr2ptr3.size@L1@L3@L2CODERODATABSSDATAZEROPAGENULLUzna` iq\<00><00> <00><00>) ]i<00>j@<40>۵<8B><02><17>\<5C>%<02>L
<82>` 
   <01><04>  
 __SIM6502__ common/abs.s
ca65 V2.15_absnegax.sizeL1CODERODATABSSDATAZEROPAGENULLUzna` ix<00>1 <Y\<00>4v<00>[<00>@<40>۵<8B><02><17>\<5C>faX<61><06><02><02>q& <09>&<01>H<01>q <09><01>'<01>" <09>"i<01>
<09>
<01>##<01> <01><00>h`  !&"
<02><01><00><18><04>+ "& $!
%  #'" __SIM6502__ runtime/add.s
ca65 V2.15tosadda0tosaddaxsp(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeL1CODERODATABSSDATAZEROPAGENULLUzna` iq|<00>?, 8;F<00><00><:=@<40>۵<8B><02><17>\<5C>Epd<01><01><01><01> <09><01> <01><01> *
<82>*<01>: <09>:<01> <01><02>2 <01><02>2<01>T 
<82><01>7 <09>7<01>!!<01> <01><01> <01>8H8<02>q9 <09>9<01>..<01> <01>- -<02><>@<01>//<02><><01>  <01>5<02><><01>0 <09>0e <09><01>& <09>&<01>e) <01><03>)<01> <01><03><01>
<02><>6<01><01>? <09>?<02><>$<01> <01> <09> <02><>+<01> <09><01>; <01><03>;<02><><01>= <01><03>=<01> <09><01>(<01>

<01> <01><02><01>" <09>"<01><01><01>4 <01><01>4<01><01>`,<01>> <09>><01>3 <01><03>3<02><L
<82> 0 7 "4
:29  &)? ;=>3''*'<01><04>1#AU -0HG?")>&9C8L6E1A4;J$.!I= 5
F7@N*(,2RK/: #'BSDQ<+ __SIM6502__zlib/adler32.s
ca65 V2.15_adler32incsp2incsp4popaxpopeaxsregptr1ptr2tmp1BASE.size@L1@L0@L2@RET@L3@L4@L5@L6@L7@L8@L9CODERODATABSSDATAZEROPAGENULLUzna` iq<00>
03Gzd<00>2<00>@<40>۵<8B><02><17>\<5C>`<02><01> <09> <01> <01><00>` ɀ<01><01><02><><01> <09><01> <01><00>` 
   
 <02><01><00> <09><04>    __SIM6502__runtime/along.s
ca65 V2.15aulongalongsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>
03Lg<00>2<00>@<40>۵<8B><02><17>\<5C>`<02> <01> <09><01> <01><00> ` <02><><01><01><02><><01> <09><01> <01><00>`  
   
 <02><01><00><08><04>   __SIM6502__runtime/axlong.s
ca65 V2.15axulongaxlongsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>b<00><00><00>t<00><00><00><00>@<40>۵<8B><02><17>\<5C><06>#<01> <09><01> <01><01> 
<82>L
<01><00> <01> <09><01> <01><01><02><01> <09><01>  <01><01> <09> 
<82><01> <09><01><01><01> <01><01><01> <01> `  <02><01><00>
<0E><04>
  ! 
# __SIM6502__ conio/cputs.s
ca65 V2.15_cputsxy_cputsgotoxy_cputcptr1tmp1.sizeL0L1L9CODERODATABSSDATAZEROPAGENULLUzna` iq<00>e[<00><00><00>"<00><00><00><00><00>@<40>۵<8B><02><17>\<5C><06><00><02><02>;<02>&<01> <09><01> <09><01> <01><04><02>'<01>2<01>I <09>IJb<01><01>_ <01><04>_JVI<> <01>< <01><04><<01> <09>jeI<>^<01>9 <09>9<01> <09>j`I<>6<01>F <09>F<01> <09>jaI N<01>*MFk <01><04>kfR <09>Rf
<09>
j7<01>[<01> <01> <01>.
<83>.<01>S <09>S<01>,
<01><02>,<01>0 <09>0<01>C
<01><02>C<01># <01><04>#<01>G
<01><02>G<01> <01><01><01>\
<83>\`i<01>K<01>//<01>d<01> <09><01>f <01><02>f E
<82>E<01> <09><01> <01><03>4 <01><03>4<01>YKY<01>
<83><01>LL "
<83>" X
<82>X<01>- <09>-<01><01>Q <01><02>Q<01><01> g
<82>g<01>J <09>J<02>Q8 <09>8<01>H<01>c
<83>cEO <09>O<01>* <09>*<01>W
<01><02>WE> <09>><01>3 <09>3<01>
<01><02>E% <01><04>%<01> <09><01>:
<01><02>:<01> <01><04><01>+ <09>+<01><01><01>5 <01><03>5<01> <09><01>$<01>$<01>= <01><02>=<01>P<01>P<01> <09>L)
<82>)<01>U <09>U<01>? <01><04>?LZ
<82>Z <00> <20>h <20> <20> <20>( !]"#  F
SJO3  I*+  f-Q=  485
 _<9kR0#>%U? DXDEDZDg)<01><01><00>R@lhm\j<00>U -P0M<00>lHG")o>&sfW9C8}O6pg<00>tbk3T1A4;eJn$.^!iqdx <00>5
F%7_[@N*(arV,2wcRKz/:~ #'`BDZ<00><X+$ __SIM6502__ zlib/crc32.s
ca65 V2.15_crc32compleaxincsp2incsp4popaxpopeaxsregptr1ptr2tmp1tmp2
POLYNOMIAL
make_table.size@L1@L2@L3@L4table_0table_1table_2table_3table_initialisedRET@L0
@dont_makeCODERODATABSSDATAZEROPAGENULLUzna` k{yl<00>l xIIxLx!6m<><00>
<04>Kx<05>@<40>۵<8B><02>m<8B>\<5C><>faX<61><06>W<00><00>!<02> }
<82><AB>} <01>
<01><00>9 <01>  <01>
<82><AA><01>  <01>
<01><00><><01><02><01><01><01> <09><><01><02>+<01><01><01>#<01><02>-<01><01><01> +<01> <02>a<01><01><01>p<01><02>f<01><01><01>G<01><02>g<01><01><01>I<01><02>o<01><01>AOA<02>p<01>
<01><01>Q<01><02>t<01>
<01><01>+<01><02>z<01> <01><01>o<01>L<01>
<01><00><><01> <01>
<82><A9><01><01><01>
<83><01> <01><01>
<01><02><01> L<01>
<01><00><01> <01><01>
<83><01><01><01>
<01><02><01> <01>
<82><A8><01><01><01>
<01><03>h<00> <01>  <01>
<01><00>a
<01><01><01>
<83><01><01><01>
<01><02><01> L<01>
<01><00><01><01><01>
<83><01><01><01>
<01><02><01> <01>
<01><00>J <01>L<01>
<01><00><01> 
<01><00> L<01>
<01><00><01><01>7 H<>7<01><01> I<><01> <01>
<01><00><><01>L<01>
<01><00><01>  <01>
<01><00><> <01>L<01>
<01><00><01><01><01>
<83><01><01>
<82><B5><01><01>
<01><02><01><01><01>
<01><><01><01>L<01>
<01><00><01><01><01>
<83><01><01><01>
<01><02><01> <01>
<82><A8><01><02><01> <01>
<01><00>a
<01> <01><01>
<83><01> <01><01>
<01><02><01>L<01>
<01><00><01><01><01>
<83><01><01><01>
<01><02><01> <01>
<82><B3><01><01>m<01>
<83><01><01><01>
<83><01><01><01>m<01>
<01><02><01><01><01>
<01><02><01>L<01>
<01><00><01><02><01><01><01> <09><><01>L<01>
<82><A7><01> L<01>
<01><00><><01>  <01>
<82><A6><01> <01><01>
<01><03><><00> <01> m
<82><A5>m <01>
<01><00><><01><02><01><01><01> <09><><01> <02>+<01><01><01><01><02>-<01><01><01><01><02>a<01><01><01>-<01><02>o<01><01><01>#<01><02>z<01><01>v+vL<01>
<01><00><01> <01>R<01><01> <09><><01><01>m<01>
<01><02><01> <01><01>
<01><02><01>L<01>
<01><00>#<01> <01><01><01>p <09><>pI<><01>8<01>m<01>
<01><02><01> <01><01>
<01><02><01> L<01>
<01><00>#<01> <01>
<01><00>:<01>L<01>
<01><00>#<01><01><01>
<01><02><01> L<01>
<01><00>#<01><01><01>
<01><02><01>L<01>
<01><00>#<01><02>l<01><01>
<09><><01>
L<01>
<82><A4><01> <01>
<01><00><> <01>L<01>
<01><00><><01> <01>
<82><A3><01>
<01><01>
<01><03><><00> <01>
<01> <01>
<82><A2><01> -
<01><00><>-<02><01> <01><01> <09><><01><02>+<01><01><01> <01> <02>-<01> <01><01> #<01> <02>a<01><01><01><<01><02>o<01><01><01>2<01><02>z<01>
<01><01>E<01>L<01>
<01><00><><01><01><01><01><01> <09><><01><01>m<01>
<01><02><01><01><01>
<01><02><01><01><01>m<01>
<01><02><00><01><01><01>
<01><02><00><01>L<01>
<01><00><><01><01><01><01><01> <09><><01>I<><01> 8<01>m<01>
<01><02><01><01><01>
<01><02><01><02><><01>m<01>
<01><02><00><01> <01><01>
<01><02><00><01>L<01>
<01><00><><01> <01>
<01><00><><01>L<01>
<01><00><><01><01><01>
<01><02><01>8<01><02><01><01><01>
<01><02><01> <01><01><01><01><01>
<01><02><00><01>L<01>
<01><00><><01>
<02><01><01>
m<01>
<01><02><01><01><01>
<01><02><01> <01><01> <01><01><01>
<01><02><00><01>L<01>
<01><00><><01><02><01><01><01>
<09><><01>
L<01>
<82><A1><01> <01>
<01><00>J<01>
L<01>
<01><00>3<01> u
<82><A0>u<02><01><01><01>
<01><03><><00> <01> <01>
<82><9F><01> <01>
<82><9E><01> <01>
<01><00><><01><02><01> <01><01> <09><><01><02>+<01><01><01><01><02>-<01><01><01>'<01><02>a<01> <01><01>K<01><02>g<01>
<01><01> 7<01> <02>o<01> <01><01>=<01><02>z<01> <01><01>P<01>L<01>
<01><00>?<01> <01>
<82><9D><01><01>mK
<01><02>K<01><01>
<01><02><01><01><01> m<01>
<01><02><00><01><01><01>
<01><02><00><01>L<01>
<01><00>F<01>  <01>
<82><9D><01>I<><01>8<01>m<01>
<01><02><01><01><01>
<01><02><01><01><01>I<><01>m<01>
<01><02><00><01><01><01>
<01><02><00><01>L<01>
<01><00>F<01><01><01> H<01><02><01><01><01> I<01><02><01>  <01>
<01><00><><01> L<01>
<01><00>F<01> <01>
<01><00>@<01>L<01>
<01><00>F<01> <01><01>
<01><02><01>8<01> <02><01><01><01>
<01><02><01><01><01> <01> <01><01>
<01><02><00><01>L<01>
<01><00>F<01><02><01><01>m<01>
<01><02><01><01><01>
<01><02><01><01><01> <01><01><01>
<01><02><00><01>L<01>
<01><00>F<01> <02><01><01><01> <09><><01>L<01>
<82><9C><01>
 <01>
<01><00><><01>L<01>
<01><00><><01> <01><01>
<01><03><><01><01><01>
<01><03><><00><01> <01>
<82><9B><01> <02><01> @
<82><9A>@<02><01> <01>
<01><00><><01> <01>
<01><00><><01>  <01>
<82><C9><01><02><01> <01><01>
<09><><01>
 <01>
<01><00><><01>
<02><01><01><01>L<01>
<82><99><01> <01>
<82><98><01> 
<82><97> <02><01>  <01>
<82><C6><01><02><01> <01><01> <09><><01><01><01>
<01><03><><01> <01>
<01><03><><00><01><01><01><01><01><01>
<01><02><01> <01>
<82><C6><01><02>(<01> 8<01><01><01>
<01><02><01>J<01> <01>
<82><96><01><02><01> <01>
<82><96><01><01><01>
<01><02><01>  <01>
<82><C2><01><02><01> <01>
<82><95><01><01>
<01><03><><01><01>
<01><03><><00><01><02><01><01><01> <09><><01> <01><01>
<01><02><01><01><01>
<01><03><><01><01><01>
<01><03><><00><01> <01>
<82><D1><01><01><01>
<01><02><01><02><01> <01>
<82><C6><01><02>(<01>8<01><01><01>
<01><02><01> J<01> <01>
<82><96><01><02><01> <01>
<82><96><01><01><01>
<01><03><><01>
<01><01>
<01><03><><00><01>  <01>
<82><CA><01><01><01>
<01><02><01> <01>
<82><C6><01> L<01>
<82><94><01> <01>
<82><93><01>  <01>
<82><92><01><01><01>
<82><B5><01><01><01> <09><><01> <01><01>
<01><><01><01> <01><01> <01><><01><01> <02><01><01><01> <09><><01><02><01><01><01>B<01><02> <01> <01><01>x<01><02>0<01> <01><01>:<01><02>@<01><01><01>h<01><02>L<01> <01><01>#<01><02>P<01><01><01>.<01><02>`<01><01><01>V<01><02>l<01> <01><01> <01> <02>p<01>
<01><01>
"<01>
ɐ<01><01><01><01>ɰ<01><01><01><01><02><><01><01><01> <01> <02><><01>
<01><01><01>L<01>
<01><00><><01> <01>
<01><00>I<01> L<01>
<01><00><><01> <01>
<01><00>I<01> <01>
<82><91><01>L<01>
<01><00><><01><01><01>
<82><B5><01><01><01>
<01><><01><01> <01><01> <01>
<82><90><01>
<01><01><01><01> <09><><01><01><01>
<09><><01>
<01><01>
4<01>
<02><01><01><01> <09><><01><01><01><01><01><01> m0
<82><B5>0H<01><01><01>m<01>
<01><><01><01><01><01>h<01>
 <01>
<82><8F><01> <01>
<01><00> <01>L<01>
<01><00><><01> <01>
<01><00>{<01>L<01>
<82><8E><01> <02><01> <01>
<01><00>W<01>L<01>
<01><00><><01> <01><01><01>\ <09><>\<01><01>
<01>
 <01>
<01><00>I<01>L<01>
<01><00><><01><01><01>
<82><B5><01><01><01>
<01><><01><01> <01>
<82><8D><01><01><01>
<82><B5><01><01><01>
<01><><01><01> <01>
<82><B3><01>  <01>
<82><8C><01> <01>
<01><00> <01> L<01>
<82><8E><01> <01>
<82><8B><01><02><>C<01><01>
<01><03><><01><01><01>
<01><03><><00><01><02><01> <01>
<82><C4><01> <02><01> <01>
<82><C5><01> <01>
<82><D0><01> <02><01> <01>
<82><C8><01><02><01>  <01>
<82><C6><01> <01>
<01><00><><01> <01>
<01><00><><01> <02><01> <01><01> <09><><01> <01>
<82><8A><01><02><01> <01>
<01><00><><01> L<01>
<82><89><01>  `
<82><88>`<02><01> <01><01> <09><><01> <01>
<01><00><><01> <01>
<01><00>9 <01> <01>
<01><00><> <01> <01>
<01><00><> <01> <01>
<01><00>J<01> <01>
<01><00><><01>L<01>
<82><87><01>L<01>
<01><00>,<01><01>$
<01><02>9$<01><01><01><02><01><01><01><01><02><01><01><01> <01> <02><01><01><01><01>L(
<01><00>!( <01>
<01><00>9 <01>
L<01>
<01><00>!<01> <01>
<01><00><> <01> L<01>
<01><00>!<01> <01>
<01><00>J<01> L<01>
<01><00>!<01>
 <01>
<01><00><><01><01><01>
<01><02>9<01><01>i<01>)<01><01><01>
<01><02>9<01> <01>
<82><CF><01><01><01>
<01><01><01><01>L<01>
<82><C9><01> <01>
<82><86><01><02><01> <02><01> <01>
<82><85><01> <02> <01> <01>
<82><84><01> <02> <01>
<01><01> <09><><01><01><01><01><02><01>  <01>
<82><C6><01><02><01><01><01> <09><><01> <02>+<01> <02><01><01><01>
<09><><01>
<01><01> <01><01> <09><><01><01><01><01><01> <09><><01>L<01>
<01><00><><01><02><01> <01>
<82><C6><01><02><01><01><01> <09><><01> <01><01> <01><><01><01><02><01><01><01> <09><><01><02>#<01><01> <01><><01><01> <02><01><01><01> <09><><01><02><01><01><01> <01><><01><01><02><01><01><01> <09><><01><02><01>
<01><01> <01><><01><01><02><01> <01><01> <09><><01><01><01> <01><><01><01><01><01><01>D <09><>D<02><01> <01><01> <01><><01><01> <02><01> <01><01> <09><><01><02><01><01><01> <01><><01><01><02><01> <01><01> <09><><01><02><01> <01><01> <09><><01> <01>
<82><86><01><02><01><01><01> <09><><01>  <01>
<82><86><01> <02> <01><01><01> <09><><01> <01>
<82><CB><01> <02><01><01><01> <09><><01> <01>
<82><C3><01><02><01>
<01><01> <09><><01> <01>
<82><CC><01><02><01><01><01> <09><><01> <01>
<82><86><01><02><01> <01> <02><01>q<01> <09><><01><01><01> <09><><01> <01>
<82><86><01><02> <01><01><01> <01><><01><01>  <01>
<82><C1><01><02><01><01><01> <09><><01> <01>
<82><CC><01><02><01><01><01> <09><><01> <01>
<82><C3><01><02><01><01><01> <09><><01> <01>
<82><CC><01><02><01> <01><01> <01><><01><01> <01>
<82><86><01><02><01><01><01> <09><><01> <01>
<82><86><01><02> <01><01><01> <01><><01><01> <01>
<82><C1><01> <02><01>  <01>
<82><C6><01><02> ,<01><01> <01><><01><01><02><01><01><01> <09><><01><02><01><01><01> <01><><01><01> <01><01><01><01> <01><01> <01><><01><01><02> <01> <01>
<82><83><01> L<01>
<01><00>l<01><02><01><01><01> <09><><01> <01>
<82><82><01> <02> <01>  <01>
<82><81><01> <01><01> <09><><01><01><01> <01><><01><01><02><01><01><01> <09><><01>  <01>
<82><80><01> <01>
<82><86><01> <02><01><01><01>
<09><><01>
 <01>
<82><82><01><02> <01> <01>
<82><81><01> <01>k <09><>k<01><01> <01><><01><01><02><01><01><01> <09><><01> <01>
<82><80><01> <01>
<82><86><01><02> <01>  <01>
<82><81><01><02><01>  <01>
<82><01> <01>
<82><CA><01> <02> <01> <02><01><02>  <01>
<82>~<01>
<02><01> <01><01> <09><><01>H<01>8<01><02><01><01>
<09><><01>
h<01><01><01><01><01><01><01><01><01> <09><><01>  <01>
<82><C6><01><02> <01><01><01> <09><><01><01><01> <01><><01><01><01><01> <01>& <09><>&<01><01> <01><><01><01><01><01>L<01>
<82>}<01> <01>
<82>|<01><02><01><02><01><01><01> <09><><01><02><01><01><01>3<01><02><01> <01><01> <09><><01> 
<01> <01><01><01><01><01><01>i<01> H<01><03><><01> <01><01><01><01> i<01> I<01><03><><01><01><01><01><01> <01>
<82>{<01>  <01>
<82>z<01><01><01> <09><><01><01><01> <01><><01><01><02>
<01> <01><01>
<09><><01>
<01><01><01> <01>
<82>y<01> <02><01> <01>
<01><00>5<01><02>_<01> <02><01>q<01> <09><><01>L<01>
<01><00><><01> L<01>
<82>x<01>  <01>
<82>w<01> <01>
<82>v<01><01><01> <01><><01><01> <01><01> <01><><01><01> <01>
<82>u<01> <02><01>  <01>
<82>t<01><01><01>
<01><03><><00><01><01><01> <01> <01><01>
<01><03><><01><01><02> <02> L<02> <0C>
<01><00><><02> <0C> <01><01>
<01><03><><00><01>
0<01><01><01><01>
<01><03><><01> <01><01>
<01><03><><00><01> <01>
<82>s<01><01>i<01> H<01><03><><01><01><01><01><01>id I<01><03><>d<01><01><01><01> <01>
<82>r<01><02><01> <01>
<01><00>5<01><02><01> <01>
<82>t<01><01><01>
<01><03><><01><01><01>
<01><03><><00><01><01><01>0<01> f<01> <01><01>
<01><03><><01><01>[
<01><03><><00>[ 
<82>s<01>i<01> H<01><03><><01><01><01> <01><01>i<01> I<01><03><><01><01><01><01><01> <01>
<82>q<01><01><01> <01><><01><01><01><01> <01><><01><00><01> <02><01><01><01> <09><><01><01><01>;<01><02><01> <01><01> <01><><01><01><01> i<01><02><01> <01><01> <09><><01> <01><01> <09><><01> <01>
<82>p<01><02><01><01><01> <01><><01><01>  <01>
<82>o<01><01><01>"<01><02><01> <01>9 <01><><01>9<01> i<01> <01>
<82>w<01> <02><01><01><01> <09><><01>  
<82>w<02>'<01><01> <01><><01><01>  <01>
<82><C0><01><02><01><01><02><01>q<01> <09><><01>L<01>
<01><00>E<01> <01><01> <01><><01><01><01><01> <01><><01><00><01> <01>
<82>u<01><02><01>
 <01>
<01><00>5<01> <01><01>
<01><03><><01><01><01>
<01><03><><00><01> <01>
<01><00>r<01> <02><01><01><01> <09><><01> <01><01> <01><><01><01><01><01><01><01> <09><><01><01><01> <01><><01><01>L<01>
<82>n<01><01><01> H<01><01><01><01><01>
I<01><01><01>
L<01>
<01><00>r<01><01><01> H<01><01> <01><01><01> I<01><01> <01>L<01>
<01><00>r<01>  <01>
<82>m<01><02><01><01><01>L<01>
<82>l<01> <01>
<82>k<01> <01>
<82>j<01> <02><01>  <01>
<82>k<01><02><01> <01>
<82>k<01><02>(<01> <01>
<82><C0><01>
<02><01>
 V
<82><C6>V<02><01><01><01> <09><><01><02><01> <01>
<82>k<01><02><01> <01>
<82>k<01><02><01> <01>
<82>i<01>
 <01>
<82><CA><01>
<02><01> <01>
<82><C6><01> <01>
<82><CD><01><02><01> <01><01> <09><><01> <02><01> <01>
<82><C8><01><02><01><01><01> <09><><01><02><01><02><01><01><01> <09><><01><01><01><01>? <09><>? <01>
<82><C9><01><02><01><01><01> <09><><01> <02><01> <01>
<82><BD><01><01><01> <09><><01><01> <09><><01><01><01> D<01> <02><01> <02><01><01>s <09><>s<02><01><01><01> <09><><01><01><01>8<01><02><01><01><01> <09><><01><01> <02> <01>q<01> <09><><01><01><01> <09><><01><01><01> <01>cq <09><><01><01> <01><><01><01><02><01><01><01> <09><><01> <01><01> <09><><01><02><01><01><01> <09><><01> <01><01><01>q<01> <09><><01> <01>
<82>k<01><02><01> <01>
<82>k<01><02><01><01><01> <09><><01>  <01>
<82><CB><01><02><01> <01><02><01> q<01> <09><><01>L<01>
<01><00><><01> <02><01><01><01> <09><><01> <01><01> 5<01> <02><01> <01><01> <09><><01><02><01><01><01>.<01><02><01><01><01> <09><><01>8<01> <02><01><01>
<09><><01>
<01><01>6q<01> <09><><01> <01>
<82>k<01> <02><01> I
<82>kI<02> <01> <01>
<82><CB><01><02><01> <01><01>
<09><><01>
<01> <01><01>q<01> <09><><01> <01>
<82>k<01> <02><01> <01>
<82><CE><01>L<01>
<01><00><><01><01><01> <01><01> <09><><01><02>
<01> <01><01><01><02><01><01><01> <09><><01><01><02> zq<01> <09><><01><01>U <09><>U<02><01><01>Nq<01> <09><><01><01><01> <01><><01><01><02><01>
<01><01><01><01> <09><><01><02><01> L<01>
<01><00><><01><01><01>
<09><><01>
 <01>
<01><00><><01> <01><01><01><01><01><02><01><02><01><01><01> <09><><01><02><01><01><01>
<09><><01>
<01><02><02>L<02><0E>
<01><00><><02><0E> <02><01><01><01> <09><><01> <01>
<82><C8><01><02><01> <01><01> <09><><01> <01>
<82><C6><01>
 <01>
<01><00><><01><01><01>
<01><03><><01><01><01>
<01><03><><00><01><02><01> <01>
<82>h<01> <02><><01><01><01>
<01><03><><01><01><01>
<01><03><><00><01> <02> <01> <01>
<82>g<01><02><01> <01>
<01><00><><01><02><01>
<01><01> <09><><01><02><01>  <01>
<82>f<01><02> <01> L<01>
<82>e<01> "
<82>d"<02>
<01> <01>
<82>c<01><02><01> <01>
<82>b<01><02><01> <01>
<82>a<01> <01>
<82>d<01> <02><01> <01>
<01><00><><01><01><01> <01><02><02>L<02><0F>
<01><00><><02><0F> <02><01><01><01> <09><><01><02>y <01>
<82><BB><01><01><01> <09><><01><01> <09><><01><01><01><01><01><01>L<01>
<01><00><><01><02><01> <01>
<82>a<01><02><01> 2
<82>`2<02><01><01><01> <01>
<82>_<01>L<01>
<01><00><><01>  <01>
<82>^<01> <01>
<82>]<01> <01>
<82>_<01><02><01><01><01> <09><><01> <02><01>
 <01>
<82><BC><01><01><01> <09><><01> <01> <09><><01><01><01>
<01><02><01><01><01>
<09><><01>
8<01><02>0<01> L<01>
<01><00>~<01>
<02><01><01><01>
<09><><01>
<02><01> <01>
<82><BA><01><02>7<01> <01>
<82>\<01> <02>^<01><01> <09><><01><02><01> !
<82>[!<02><01><02><01><02><01> <01>
<82>Z<01><02><01>  <01>
<82>Y<01> <01><01> <09><><01> <01><01> <01><><01><01><02><01><01><01> <09><><01><02><01><01><01> <09><><01><01><01> <01><01> <01><01><01> <09><><01><02><01>  <01>
<82><BB><01><01><01> <09><><01><01> <09><><01><01><01>
<01><01>
<02> <01> <01>
<82>Y<01><01><01> <09><><01><01><01> <01><><01><01> 
<82>^<02><01> <01><01> <09><><01> <01><01><01><01><01><01> <09><><01><02><01><01><01> <02><01>L<01>
<82>X<01>  <01>
<82>W<01> <01><01>
<01><03><><01><01><01>
<01><03><><00><01>  <01>
<82>W<01><02><01> Q
<82>VQ <01>
<01><00>r<01>  <01>
<82><C9><01> <01>
<82>U<01> <01>
<01><00>r<01>L<01>
<82>T<01>
 <01>
<82>S<01> <01>
<82>R<01><01><01> H<01><01>?<01><01><01> I<01><01>?<01> <01>
<82>S<01> <02><01> <01>
<82>Q<01>
 <01>
<01><00><01><02><01> <01><01> <09><><01><01><01> <09><><01><01><01> <01> <01><01> H<01><01><01> <01><01> I<01><01><01> <01>
<01><00><><01><02><01><01><01> <09><><01> L<01>
<82>P<01><01>
H<01><01>'
<01><01> I<01><01>'<01> L<01>
<01><00><><01>  <01>
<82>O<01> <01>
<82><AD><01> <01>
<82>O<01> <01>
<82>N<01><01><01> <09><><01><01><01> <01><><01><01><02><01> <01>
<82>M<01> <02><01><01><01> <09><><01><01><01> <01><01>
<01><01> <09><><01> <01>
<82>N<01><01><01> <09><><01> <01><01> <01><><01><01><02><><01> <02><01> <01><01> <09><><01>L
<82>L <01>
<82>K<01><01><01> <01><><01><01><01><01> <01><><01><01> <01>
<82>K<01><02><01>  <01>
<82>J<01> <01>
<82><AC><01><01><01> <01><><01><01><01><01>
<01><><01><00><01>
<01><01> <01><><01><01><01> <01><><01><00><01><01><01> <01><02><01><02><01> <01><01> <01><><01><01><01><01>
<01><03><><01>L<01>
<01><00><> <01><01><01>
<01><03><><01> <02>
<01> <01><01>
<01><01><01> H<01><01>K<01><01><01> I<01><01>K<01> <01>
<01><00><><01>Lo
<01><00><> o<02><01>  <01>
<82>J<01>  <01>
<82><B2><01><01><01> <09><><01> <01> <09><><01><01><01> <01>  <01>
<01><00> <01>L<01>
<01><00><> <01> <01>
<82><AD><01><01><01> <01><><01><01><01><01> <01><><01><00><01><01><01> <09><><01><01><01> <01><><01><01><02><01> <01>
<82>J<01> <02><01><01><01>
<09><><01>
<01><01><01><01><01><01> <09><><01><01><01><02><01> <01><01> <01><><01><01> <01><01>
<01><03><><01><02><01> <01><01> <09><><01><01><01> <01><><01><01><01><01><01><01> <09><><01><01><01> <01><><01><01>LM
<82>IM <01>
<82>H<01><01><01> H<01><02> <01><01><01> I<01><02> <01> <01>
<82>G<01><02><01><02><01> <01><01> <09><><01><02>
<01><01><01>-<01> <01>
<82>F<01><01><01> <09><><01> <01> <01><><01><02><01><01><01> <09><><01>ɀ<01><01><01>  <01>  <01>
<82>F<01><01><01> <09><><01> <01><01> <01><><01><01><02><01><02><01> <01><01> <09><><01><02><01><02><01>  <01>
<82>E<01><02><01><01><02><01>q<01> <09><><01>L<01>
<01><00><> <01>L<01>
<82>D<01> <01>
<82>C<01> <01><01> H<01><02> <01> <01><01> I<01><02> <01>  <01>
<82>B<01><02><01> <02><01><01><01> <09><><01> <02><01>
<01><01> <09><><01><02>
<01><01><01>;<01> <01>
<82>A<01> <01><01> <09><><01><01><01> <01><><01><01><02><01><01><01> <09><><01>ɀ<01><01>55 <01>
<82>A<01> <01>
<82>@<01> <01>
<82><B2><01> <01><01> <09><><01> H <09><>H<01><01>  <01>  <01>
<01><00> <01> <01>
<01><00><> <01><02><01> <01><01>L<01>
<82>?<01><02><01> <02><01> <01>
<82>><01><02><01><01> <02><01>q<01> <09><><01>L<01>
<01><00>
<01><02><01>L<01>
<82>?<01> <01>
<82>=<01> <02>C<01>  <01>
<82><<01><02><01>  <01>
<82>;<01><02>P<02><01> <01><01> <09><><01><02>I<01> <01>
<82>:<01><02>G<01><02><01><01><01> <09><><01>  <01>
<82>9<01> <01>
<82>8<01>8<01><02><01><01><01> <09><><01>H<01><01><01><01><01><01><01> <09><><01> <01><01>h<01><02>C<01> <01>
<82>7<01> <02>D<01>  <01>
<82>6<01> <01>
<82><B3><01><02>C<01> <01>
<82>5<01> <02>T<02><01><01><01> <09><><01> 
<01><01><01><01><01><01> <01> i<01><01><01><01><01>L<01>e<01> <09><><01><01><01>
<09><><01>
<01><01> e<01> <01><><01><01> <01><01> <01><><01><01> <02>D% <01>
<82>6<01><02><01><01><01> <09><><01><01><01><01><01>
<01><01> <09><><01><01><01><01><01>
<09><><01>
<01> i<01> )<01><01><01> <09><><01><02>D<01> S
<82>6S<02>F<01><01><01> <09><><01><01><01><01>W<01><01> <09><><01><01><01>
<01><01>
<02>D<01> <01>
<82>6<01><02>F<01><01><01> <09><><01> <01><01><01> <01><01> <01><01> <09><><01><01><01> <01><02><01><01><01> <09><><01><01><01>0<01><01><01><01><01> <09><><01> <02> <01><01><01>)<01><02><01><02><01><01><01> <09><><01> 8<01><02>E<01><01><01> <09><><01>8<01><02><01>)<01>
<01><01><01><01><01><01>ti<01><01><01> <01> <01><01><01> e<01> <09><><01><01><01><01><01>e<01> <01><><01><01><01><01><01><01> <01>
<82>4<01>L<01>
<01><00>4 <01><02><01><02>J <01>
<82>3<01>L<01>
<01><00>n
<01><02>H<01>L
<82>2<02>*<01>
 <01>
<82>1<01><01><01>
<01><03>h<00><01> <01>
<82>0<01><01><01>
<01><03>h<00><01><01>
i<01> <01>
<82>0<01><01><01>
<83><01><01><01>
<01><02><01>
 <01>
<82>/<01>
<02><01> j
<01><00>a
j <01>
<82>/<01><01><01>
<01><03>h<00><01><01>i<01><02><01> <01><01> <09><><01><01><01>
<01><03>h<00><01><01><02> <0A> <02> <0A> L<02> <0A>
<01><00> <02> <0A> <01>
<82>.<01>
<02><01> <01>
<82>-<01> <01>
<82>/<01><02><01><01><01>
<09><><01>
 <01>
<82><B4><01><02><01><01><01> <09><><01> <01>
<82>,<01> <01><01>
<01><><01><01><01><01><01><01><01>
<82><B5><01> <01><01>  <01> <02>-<01> <02>
<01> <01><01> <09><><01> <02>><01><01><01> <01><01> <09><><01> <01>
<82>,<01>  <01>
<82><AC><01>
<01><01> <09><><01><01> <09><><01><01><01><01><02>*<01> <02> <01><01><01> <09><><01>  <01>
<82>,<01><01><01>
<01><02><01> <01><01> &<01> <01><01>
<83><01><01><01>!<01><02><01>  <01>
<82><C7><01><02>4 <01>
<82>0<01><02><01><01><01> <09><><01> <01>
<82>0<01><02><01> <01>
<82>-<01> 8
<82><CA>8<02><01>  <01>
<82><C7><01>L<01>
<01><00><> <01>
<02><01> <01>
<82>0<01><02><01>
<01><01> <09><><01>  <01>
<82>0<01><02><01> <01>
<82>-<01>  E
<82><CA>E<02><01><01><01> <09><><01><02><01> <01>
<82>+<01><02><01><01> <02><01>q<01> <09><><01>L<01>
<01><00>f <01> <01>
<82>,<01><02>.<01> L<01>
<82>*<01><01><01>
<83><01><01><01>
<01><02><01>  <01>
<82>)<01><02><01>L<01>
<82>(<01><01><01>
<83><01> <01><01> <09><><01><01><01>
<01><02><01><01><01> <01><><01><01><02><01> <01><01>
<09><><01>
<02><01> <01><01> =<01> <02> <01><01><01>-<01><02>0<01> <01><01>5<01><02>@<01><01><01>d<01><02>L<01> <01><01>!<01><02>P<01> <01><01>)<01><02>`<01><01><01>
E<01>
<02>l<01>
<01><01><01><02>p<01><01><01><01>ɐ<01><01><01><01>ɰ<01> <01><01> <01> <02><><01><01><01><01><02><><01><01><01> <01>`<01> <01>
<01><00> <01>
L<01>
<01><00><> <01>
 <01>
<01><00> <01>L<01>
<01><00><> <01> <01><01>
<83><01><01><01>
<01><02><01> <01>
<82>'<01> <01>
<82>&<01><01><01>
<83><01><01><01>
<01><02><01> <01>
<82>%<01>
<02><01> <01>
<82>$<01> <01>
<82>#<01>L<01>
<01><00><> <01> <02><01><01><01> <01>m<01>
<82><B0><01> <01><01> <01> <01><01>  <01>
<82>"<01> <01>
<82>%<01>L<01>
<01><00><> <01><02><01> <02><01><01>m<01>
<82><B0><01><01><01> <01> <01><01>  <01>
<82>"<01><01><01>
<83><01><01><01>
<01><02><01>`<01><01><01>
<82><B5><01><01><01>
<83><01><01><01>
<01><><01><01><01><01>
<01><02><01>`<01> <01>
<01><00><> <01>L<01>
<01><00>9 <01><01><01>
<01><03>x<00><01> <01> i<01> <01>
<82>!<01><02><01> <01><01> <09><><01><01>i<01>  <01>
<82>!<01><01><01>
<01><03>x<00><01> <01>
<82>!<01><02><01><01><01> <09><><01> <01>
<82>!<01><02><01> <01><01><01>q<01> <09><><01><01><01> <09><><01> <01>
<82><CE><01><01><01>
<82><B5><01><01><01>
<01><><01><01>  <01>
<82><BE><01><02><01><01><01> <09><><01> <01>
<82>!<01><02><01> <01><01><01>q<01> <09><><01><01><01> <09><><01> <01>
<82><CE><01><01><01>
<82><B6><01> <01>
<82><BF><01><02><01><01><01> <09><><01>  <01>
<82>!<01><02><01><01><01><01>q<01> <09><><01><01><01>
<09><><01>
 <01>
<82><CE><01><01><01>
<82><B9><01>  <01>
<82><BF><01><02>n<01><01> <09><><01> 
<82>!<02><01><01><01><01>
q<01> <09><><01> <01><01> <09><><01> <01>
<82><CE><01> <01><01>
<82><B8><01>  <01>
<82><BF><01> <02><01><01><01> <09><><01> <01>
<82>!<01><02><01> <01><01><01> q<01> <09><><01><01><01> <09><><01> <01>
<82><CE><01><01><01>
<82><B7><01> <01>
<82><BF><01> <02><01> <01><01> <09><><01> <01>
<82>!<01><02><01><01><01><01>q<01> <09><><01><01><01> <09><><01> <01>
<82><CE><01><01><01>
<82><B0><01>
 <01>
<82><BF><01><02><<01><01> <09><><01> <01>
<82>!<01>
<02><01>
<01><01><01>q<01> <09><><01><01><01> <09><><01> <01>
<82><CE><01><01><01>
<82><AF><01><01><01>
<01><><01><01>  <01>
<82><BE><01><02><01><01> <09><><01>  <01>
<82>!<01><02><01> <01><01><01> q<01> <09><><01><01><01> <09><><01> <01>
<82><CE><01><01><01>
<82><AE><01><01><01>
<01><><01><01>  <01>
<82><BE><01><02><01><01><01>L<01>
<82> <01>L<01>
<01><00><> <01>
<01><01>
<01><02><01>  <01>
<82><01><01><01>
<01><03><><00><01> <01> i<01> <01>
<82><01><02><01> <01><01> <09><><01><01>i<01> <01>
<82><01> <01>
<82><01><01>
<01><03><><00> 8<01><02><01> <02><01><01><01> <09><><01><02><01>
<01><01> <09><><01>8<01><01><01>
<01><03><><00><01><01><01> <09><><01> <01><01> <09><><01><01><01>O<01><01><01> M<01> <02><01> <01><01> <09><><01> <01>
<82><01><02><01>
<01><01> <09><><01> <01>
<82><CE><01><02><01><01><01> <09><><01> <01>
<82><BF><01><02><01><01><01> <09><><01>  <01>
<82><01><02><01><01><01> <09><><01> <01>
<82><CE><01> <02>i<02><01> <01><02><01>q<01> <09><><01><01><01><01><01><01><01><01> <09><><01><01><01> <01><><01><01><02><01> <01><01>
<09><><01>
 <01>
<82><BF><01> <02><01><01><02><01>q<01> <09><><01><01><01> <09><><01><02><01><01><01> <09><><01>8<01><02><01> L<01>
<01><00><> <01> <02><01><01><01> <09><><01>L<01>
<82><01><01><01>
<82><B0><01>;i<01> <01><01>
<01><02><01>`<01> <01>
<01><00>:<01>L<01>
<01><00><> <01> <01><01>
<01><02><01><01>~
<01><02><00>~ h
<82>h<01><01>
<01><03><><00><01> <01>i<01>  <01>
<82><01> <01>
<82><01><01><01>
<01><03><><00><01> 8<01><02><01><02><01><01><01> <09><><01>8<01><01><01>
<01><03><><00><01><01><01> <09><><01> <01><01>
<09><><01>
<01><01>
,<01>
<01><01>*<01><01><01> <01><01> <09><><01>  <01>
<82><01><02><01><01><01> <09><><01> <01>
<82><CE><01><02><01> <01>
<82><01> <01>
<82><01> <01>
<82><BE><01>
<02><01> <02><01> <01><01>
 <01>
<82><01><02><01> <01><01>
<09><><01>
8<01>
<02><01>L<01>
<01><00>g<01><01><01>
<01><03><><00><01><01>i<01> <01>
<82><01><01><01>
<01><03><><00><01>8<01> <02><01> <01>
<82><01><01><01> H<01><01>R<01><01><01> I<01><01>R<01> <01>
<82><CA><01> <02><01>  <01>
<82><01>L<01>
<82><01><01><01>
<82><AF><01> <01><01>
<01><02><01><01><01>
<01><><01><01><01><01>
<01><02><00><01>`<01> <01>
<01><00><><01> L<01>
<01><00>J<01><02>)<01>  <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<82><01>
<01><01>
<01><03><><00><01> <01>
i<01> <01>
<82><01><02><01> <01>
<82><01> <01><01>
<01><03><><00><01><01>i<01><02><01><01><01> <09><><01><01><01>
<01><03><><00><01><01><01>9<01><02><01><01><01> <09><><01> <01>
<82><01><02><01><01><01> <09><><01> <01>
<82><01><02><01>  <01>
<82><01>
<02>
<01> <01>
<82><01> <01>
<82><01><02><01> <01>
<82><01> <01>
<82><B1><01> <01>
<82><CA><01><02><01><02><01><02><01> <01>
<82><01><02><01>B<02><01> q<01> <09><><01>L<01>
<01><00><><01><01><01>  <01>
<82><01><02>.<01>L<01>
<82><01> <02><01><01><01>
<01><02><01><01><01>
<01><02><00><01> `<01><01><01>
<82><B5><01><01>>
<01><><01>> <01>
<82> <01>
<02><01> Lb
<82> b <01>
<82> <01><02><01> <01><01> <09><><01><01> m<01>
<82><B0><01> <01><01><01><01><01><01><01> <09><><01><01>: <01><><01>:<02><01><01><01> <01> e<01>
<09><><01>
H<01><01><01>ef <01><><01>f<01><01>h<01>  <01>
<82>
<01> L<01>
<82> <01><02><01>
 <01>
<01><00>W<01> <01>
<82><01>L<01>
<01><00> <01> <01>
<82><01>
<01><01>
<01><03><><01> <01><01><01><02><01><01><01>
<01><03><><01>  <01>
<01><00><><01>  <01>
<01><00><> <01> <01>
<01><00><> <01> r
<01><00>Dr <01>
<01><00><><01> <01>
<01><00><><01>
 <01>
<01><00><> <01> <01>
<01><00><> <01> <01>
<01><00>:<01> <01>
<01><00><><01><02><01><01><01><01><01> <09><><01> L<01>
<01><00><><01> <01>
<01><03><> <01><01>
<01><03><><00><01> <01>
<82><01><01>i<01> H<01><03><><01><01><01><01><01>
i<01> I<01><03><><01><01><01><01> <01>
<82><01><02> <01> <01>
<82><01> <01>
<82><01><02><01> <01><01> <09><><01><02><01><01><01> <09><><01><01><02> <02> L<02> <0A>
<01><00><><02> <0A> <02>
<01><01><02><02>L<02><06>
<01><00><><02><06> <02> <01>
<01><02> <02> L<02> <0A>
<01><00>s<02> <0A> <02>1<01><01><01>8<01><02>2<01>
<01><01>4<01><02>3<01> <01><01>0<01><02>4<01> <01><01>,<01><02>5<01><01><01> (<01> <02>?<01><01><01>6<01><02>c<01><01><02><02>L<02><06>
<01><00><><02><06> <02>h<01>
<01><01> =<01> <02>q<01><01><02><02>L<02><07>
<01><00><><02><07> <02>r<01><01><02><02>L<02><05>
<01><00><><02><05> <02>s<01> <01><01>z<01><02>u<01> <01><01><01>L<01>
<01><00><><01><01><01> <09><><01><02>1<01> <01>
<82><01> <01>
<82><01><02><01> <01>
<01><00><><01> L<01>
<01><00><><01>  <01>
<01><00>L<01>L<01>
<01><00><><01> <01>
<01><00>{<01> <02><01> <02><01><01><01> <09><><01>L<01>
<01><00><><01> <01><01>
<82><B5><01><01>/
<01><><01>/<01><01>
<01><02><01><01><01><01><01><01>
<83><01><01><01>o<01><01><01>
<83><01><01><01>
<01><02><01>  <01>
<01><00> <01><02><01><02><01><01><01> <09><><01>L<01>
<01><00><><01><01><01> <01>
<01><00><><01>  <01>
<01><00>
<01> <01><01><01><01>S<01><02><01><02><01><01><01> <09><><01>L<01>
<01><00><><01><01><01>
 <01>
<01><00><><01>  <01>
<01><00>
<01> <01><01><01><01> @<01> <02><02><01><01><01>
<09><><01>
L<01>
<01><00><><01><01><01><01><01><01><01> <09><><01>L<01>
<01><00><><01><01><01>
<82><B5><01> <01>e
<01><><01>e <01>
<82><B3><01><01>m<01>
<82><B5><01><01><01>
<82><B5><01> <01><01>m<01>
<01><><01><01><01><01>
<01><><01><01> <01>
<01><00><> <01> L<01>
<01><00><><01> <01><01>
<01><03><><01> <01>
<01><00><><01>L<01>
<01><00><><01>  <01>
<82><D0><01><02><01> <02>= <01>
<82><D2><01><02><01><01><01>
<09><><01>
<01>  L <0C>
<01><00><> <0C> L<01>
<82><01> <00><00><02>F<01>3<01>,<01> <01>u<01> <01> <01> <01> <01> <01>R<01>u<01>n<01> <01>u<01>n<01>t<01>i<01>l<01> <01>s<01>u<01>b<01>r<01>o<01>u<01>t<01>i<01>n<01>e<01> <01>r<01>e<01>t<01>u<01>r<01>n<01>s<01><01>C<01>a<01>n<01>n<01>o<01>t<01> <01>s<01>e<01>t<01> <01>b<01>r<01>e<01>a<01>k<01>pqoqiqnqtq q-q qpqrqeqsqsq qaq qk<01>e<01>y<01><01>T<01>o<01>o<01> <01>m<01>a<01>n<01>y<01> <01>b<01>r<01>e<01>a<01>k<01>p<01>o<01>i<01>n<01>t<01>s<01> <01>-<01> <01>p<01>r<01>e<01>s<01>s<01> <01>a<01> <01>k<01>e<01>y<01><01>s<01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01> S<01> k<01> i<01> p<01>  <01> n<01> e<01>x<01>t<01> <01>i<01>n<01>s<01>t<01>r<01>u<01>c<01>t<01>i<01>o<01>n<01><01>1<01> -<01> 5<01>  <01>  <01>  <01>  <01>  <01>  <01>  <01> S<01> e<01> l<01> e<01> c<01> t<01>  <01>a<01>c<01>t<01>i<01>v<01>e<01> <01>w<01>i<01>n<01>d<01>o<01>w<01><01>p<01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01> U<01> s<01> e<01>  <01> a<01> s<01>  <01>n<01>e<01>w<01> <01>P<01>C<01> <01>v<01>a<01>l<01>u<01>e<01><01>f<01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01> F<01> o<01> l<01> l<01> o<01> w<01>  <01>i<01>n<01>s<01>t<01>r<01>u<01>c<01>t<01>i<01>o<01>n<01><01>Fw2w,w wtw w w w w wTwowgwgwlwew <01>b<01>r<01>e<01>a<01>k<01>p<01>o<01>i<01>n<01>t<01><01>I<01>n<01>v<01>a<01>l<01>i<01>d<01> <01>i<01>n<01>p<01>u<01>t<01> <01>-<01> <01>pFrFeFsFsF FaF FkFeFyFFP<01> r<01> e<01> s<01> s<01>  <01> a<01> n<01> y<01>  <01> k<01> e<01> y<01>  <01> t<01> o<01>  <01>c<01>o<01>n<01>t<01>i<01>n<01>u<01>e<01><01>F<01>4<01>,<01> <01>h<01> <01> <01> <01> <01> <01>R<01>u<01>n<01> <01>t<01>o<01> cursorr<01> <01> <01> <01> <01> <01> <01> <01> <01> <01>R<01>e<01>d<01>r<01>a<01>w<01> <01> s<01> c<01> r<01> e<01> e<01> n<01> <01> a<01>/<01>z<01> <01> <01> <01> <01> <01> <01> <01>M<01>o<01>v<01>e<01> <01>u<01>p<01>/<01>d<01>o<01>w<01>n<01><01>C<01>u<01>r<01>s<01>o<01>r<01> <01> <01> <01> <01>M<01>o<01>v<01>e<01> <01>u<01>p<01>/<01>d<01>o<01>w<01>n<01><01>o<01> <01> <01> <01> <01> <01> <01> <01> <01> <01>G<01>o<01>t<01>o<01> <01>o<01>r<01> i<01> g<01> i<01> n<01> <01> F<01>7<01>,<01> <01>s<01>p<01>a<01>c<01>e<01> <01>S<01>t<01>e<01>p<01> <01>i<01>n<01>t<01>o<01><01>F<01> 8<01> ,<01>  <01> e<01> n<01> t<01> e<01> r<01>  <01> S<01> t<01> e<01> p<01>  <01> o<01> v<01> e<01> r<01> <01> +<01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01> P<01> a<01> g<01> e<01>  <01> d<01> o<01> w<01> n<01> <01> c<01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01>  <01> C<01> o<01> n<01> t<01> i<01> n<01> u<01>e<01><01>-<01> <01> <01> <01> <01> <01> <01> <01> <01> <01>P<01>a<01>g<01>e<01> <01>u<01>p<01><01>P<01>r<01>e<01>s<01>s<01> <01>F<01>1<01> <01>f<01>o<01>r<01> <01>h<01>e<01>l<01>p<01><01>q<01> <01> <01> <01> <01> <01> <01> <01> <01> <01>Q<01>u<01>i<01>t<01><01>F<01>1<01>,<01> <01>?<01> <01> <01> <01> <01> <01>H<01>e<01>l<01>p<01><01>G<01>o<01>t<01>o<01>:<01> <01><01>S<01>R<01><01>C<01>S<01><01>H<01>I<01><01>S<01>P<01><01>-<01>><01><01>P<01>C<01><01>X<01> <01> A<01><01>Y<01> <01> c<00>::<01><01><01> <01> <01><01><01> <01><01><01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01>
<01><0F><00><00><02><01><01>
<01><01>U<01>
<01><01>
<01><01>F<01> <01><01>
<01><01>Z<01><01><01>
<01><01>X<01>
<01><01>
<01><01>\<01> <01><01>
<01><01>O<01><01><01>
<01><01>I<01><01><01>
<01><01>L<01><01><01>
<01><01>0<01> <01><01>
<01><01><><01><01><01>
<83>G<01><01>
<01><01>:<01> <01><01>
<01><01><><01><01><01>
<01><01><><01><01><01>
<01><01><>*<01>O
<01><01><><01><01>3
<01><01><><01><01> <01>
<01><01><><01> <01> 
<01>
<01><01>j<01><01> <01>
<01><01><><01> <01>
 <01>
<01><01><><01><01> a
<01><01><><01><01><01>
<01><01><><01><01><01>
<01><01>!<01>x
<01><01>R<01>
<01>Z
<01><01>n<01>+<01> +<01>+<01>
+<01><01><01><01> <01><01><01><01>
<83><01><01> <01>+<01>+<01>+<01>
+<01><01><01> '<01> <01> <01><01><01>
<01><00><><01> <01>
<83><01>+<01>+<01>+<01>+<01> <01>  <01> '<01> <01><01><01> <01>
<01><00><><01> <01><01>+<01>+<01> +<01> +<01>
<01>]'<01><01><01><01><01>
<01><00>)<01><01><01> ++<01>+<01>+<01>
<01> <01> <01><01><01>
<01>
<01><00><><01> <01>+<01>+<01>+<01>+<01> <01><01>')<01> &<01><01> 
<01><00>L<01> <01>
<01><03> <01>
<01><03>h<01>
<01><03>x<01>
<01><03><><01>
<01><03><><01>
<01><03><><01>
<01><03><><01><02><><01> <01><01><01> <00><00><00><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01>
<02><01>
<01><02><01>
<01><02><01>
<01> <02><01>
<01><02><01>
b<02><01>
<01>
<02><01>
<01> <02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<02> <0B>
<02><01>
<04><11><08><04><02><01>
<02>
<FB><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<02><0E><02><01>
<01><02><01>
<04><02><02><0E><02><01>
h<02><01>
<01><02><01>
<01><02><01>
<05><10><02><11><07><02><01>
<01><02><01>
<0B><04><03><06><02><07><06><06><06>
<DB><02><01>
<02><0E><02><01>
<01><02><01>
<01><02><01>
<02>
<9F><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<04> <0C> <09><08><02><01>
<03><03><03> <02><01>
<01>
<02><01>
<03>
<FC><0F><02><01>
<06><11><11><11><07><01><02><01>
<01><02><01>
<02><01>
<01><02><01>
<01><02><01>
<01> <02><01>
<04><01>S<><02><01>
<01> <02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01> <02><01>
<01><02><01>
<02><08><02><01>
<01><02><01>
<02> <0C><02><01>
<01><02><01>
<01> <02><01>
<01><02><01>
<01><02><01>
<02><03><02><01>
<01><02><01>
<01><02><01>
M<02><01>
<03><12> <09> <02><01>
<02><02><02><01>
<02><01>
<01> <02><01>
<02><10><02><01>
<02><03><02><01>
<01><02><01>
<01>
<02><01>
<01><02><01>
<02><05> <02><01>
<01>
<02><01>
<01><02><01>
Q<02><01>
<02> <0B><02><01>
<01> <02><01>
<02> <0A><02><01>
<01><02><01>
!<02><01>
<01> <02><01>
<01><02><01>
<02>x<01>
<02><05><02><01>
2<02><01>
<02><0F><02><01>
<01><02><01>
<01><02><01>
"<22> <02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01> <02><01>
<01>
<02><01>
<01> <02><01>
<8F><12><02><11><06><01><08><0E> I<> <02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<02><02><01>
<02><0F><02><01>
<02> <09><02><01>
<01><02><01>
<03><10> <02><01>
<01> <02><01>
<01> x<01>
<01><02><01>
<01> u<01>
<01><02><01>
<01><02><01>
<01>
<02><01>
<01><02><01>
<02><08><02><01>
<03> <0C> <0C><02><01>
<02> <0B><02><01>
<01> <02><01>
<01> <02><01>
<01> <02><01>
<09><10><05> <09><0F><0F><08><0F> <09><02><01>
<01><02><01>
`<02><01>
<01> <02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<01><02><01>
<02> <0B><02><01>
<01><02><01>
<01>
<02><01>
<01><02><01>
<01><02><01>
<01> <02><01>
<01><02><01>
<01><02><01>
<04><05><0E><08><02><01>
 <02><01>
<01><02><01>
<01><02><01>
@<02><01>
<01> <02><01>
<01>
<02><01>
<02><08><02><01>
<01><02><01>
<01><02><01>
u<02><01>
<01><02><01>
<01><02><01>
<01>
<02><01>
<01><02><01>
m<02><01>
<01> <02><01>
<01> <02><01>
<02><05><02><01>
<01>x<01>
<01> u<01>
}:<01>
<02>
<C1>9<01><02><0F>6<01><02><02> 5<01><04> <0C><0F><07> 4<01><05> <09><0F>
<B0> <0A>3<01><01>2<01><02> <0B>1<01> <04><10><04> <0C>0<01><01>/<01> <1C>/<2F> e<><03> <0C><04><0F>><3E><12> <09><0E><06><0E> <0C><08> <0B><03> 0<><11><04><07><03><19>.<01><01>-<01> <01>,<01><01> +<01><01> *<01> <01>)<01><02><05>(<01><01>'<01><01>&<01><04>
<93><05><08>%<01><07><07> <0C><07><07> <09> <0A>$<01><02>
<D2>#+<02><08> "<01> <01>!<01><02><11> <01><01> <01><01> V<><07>
<F8><11><04><11><07><12><0E><0E><11> <01><02><0F><01> <03><05><02><01><04><01><03><11><01><07><04> 8E<38>
<D8> <0B><01><03><0E><06> 1<03><05><07><01><01><01> <0C><05><05> <09><04><08><08> <0A><02><11><02><06><01><01><01> <02><0E> <01><01><01>
<01> <01>;<3B>:<3A>
f<9C><03><10>
<96><12><03>
<8C>
<B0> <09><08><0F><06><06><11> <10><03> <0A><02><08><08><05>
<DC><08><11><01><01><11> <0C><04><01> <0C><05><0F><01><01> <0A><03><10><10>U<><0F><10><10><10>
<E8><03><04> k<><06><06> <0C> <0C> <01><12> <0B>
<BC> <0B><0E><03><06> H<> <0C><05><02><02> <09><01><04><0E><02><01>
'<27><08><05><04>
<E8><07><10><10><0F><08> <09><0F><0F> <0C><06><0E> <0A><07> 9<> <0B><02><11><08><0F><05> <0B><0E><03><01> <09><06> <09><08><0F><01> <0C><11><01><01>
<C8><01> <0B><04><08><02><0F><03><06>
<8D><04>
<BD><03><03><0F><04><12><11> <0C><10>
<B3><01><05><03><10><05><05> <0B><10><05><10><10><07><0E><11><02><11><11><06><11><04> <0C><07>
<85><06> <09><01><05><02><08><07><07><04><04><10><11> <09><07><02><05>
<9F><03> <0A><06> <0C><04> <0B><0F><03><05> <09><08> <0A> <09><10> <0C>
<84><05><0F><10> <0B><06><10> <0C> <0C><07><01><03> <0B><06><05><05><0E><08><04><07><07> <09><02> <0A>
<D9>
<E0><0F><05><10><0E> <0B><06>?<3F> s<><03><03><1F> <0A> <0B><04> <0A><11> <0A><06><05>
<88><11>
<F6><08><08><0E><06><10>
<AA><11>
<DD><06><01><07><0E> <0B><04> <0A><06> <0A><0F><05> <0C><07><04> <0C>
<A9><0F><11> <0A><0E><07><0F>D<><06><12><04> <0C><07><04><06><0E><03><01><11><0F><02><06><10><01>
<E1><01>
<D5> <0C>&<26><07><03><02>
<FA>\<5C><0F> <0A>
<DC><10><11><0F><0E><02>
<C7> <0C>p<>
<AF><0E><03>;<01><00><><00><01><01><05>8<01><02> <01> <05><07> <0A> <0C><05><0F>7<01><03><><01><04> <0A><11> <0B><00><12><00> <00><00><00><00><00><00><00><00> <00><00><00><00> <00><00> <00>
<00><00><00><00><00> <00> <00> <00><00><00><00><00><00>
<00><00> <00> <00><00><00><00><00> <00><00>h<00><00><00><00><00><00> m<00><00><00> <00><00><00> <00><00><00><00><00><00>
<00><00><00><00><00><00><00>\<00><00> <00><00><00><00> <00> j<00><00> <00><00><00><00> <00>
<00><00>
<00><00><00> <00><00><00> <00><00>|<00><00>
<00> <00><00><00><00><00><00><00><00><00><00><00> <00><00><00><00>
<00><00><00><00><00><00> <00> <00><00><00><00><00><00><00><00><00> <00>U<00> <00><00><00> <00> <00>
<00><00><00><00><00><00> <00><00><00><00> <00> <00><00><00><00> <00> <00><00> <00><00><00><00> <00><00> <00>
<00><00><00><00> <00>
<00> <00> <00><00><00><00><00><00>-<00> <00><00><00><00><00><00><00><00> <00><00><00><00><00> <00><00><00><00> <00><00><00>P<00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00>
<00> <00><00><00><00><00><00><00><00><00><00> <00>
<00><00><00><00><00><00> <00><00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00> <00><00> <00><00> <00><00><00><00><00><00><00> <00><00> <00> <00> <00>0<00> <00> <00><00>M<00>]<00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00> <00><00><00><00> <00> lH<00><00><00><00><00><00><00><00>
<00><00><00>G<00><00> <00><00><00><00><00> <00><00><00><00><00><00><00>
<00><00><00><00><00><00><00> <00><00><00><00>
<00><00><00><00><00><00>
<00><00><00> <00>
<00><00><00><00><00><00> <00><00><00> <00><00><00>?<00> <00> <00> <00> <00><00><00><00><00><00> <00> <00><00><00>
<00><00><00> <00><00><00> <00> <00> "<00><00><00><00><00>)<00><00> <00>o<00> <00><00><00><00> <00><00><00> <00> <00><00><00><00><00><00><00><00><00><00> <00>><00><00><00> &<00><00><00><00> <00> <00><00><00> <00><00><00><00><00><00><00><00><00><00>y<00><00><00><00>
<00>
<00>s<00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00>f<00><00><00><00><00><00> <00>
<00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00>
<00><00><00>W<00>
<00><00><00><00> <00><00><00> <00> <00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>
<00>C<00><00><00> <00> <00><00><00> <00> <00><00><00><00> <00><00><00><00><00><00> <00><00><00> <00> <00> <00><00><00><00> <00> <00> <00><00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00> <00><00><00> <00><00>}<00><00><00><00><00><00><00><00><00><00>L<00><00><00><00><00><00><00><00><00> <00><00> <00><00><00>
<00><00><00> <00><00><00><00><00><00><00>
<00><00><00><00><00> <00><00><00><00><00><00><00> <00><00><00><00><00><00><00> <00>O<00><00><00><00> <00><00> <00>
<00> <00><00><00><00><00><00><00><00><00><00> <00><00> <00>6<00><00> <00>p<00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00> <00> <00><00><00> <00><00> <00> <00><00> <00><00><00> E<00><00><00> <00><00><00><00><00><00><00> <00><00><00><00><00>
<00> <00><00><00><00><00><00> <00>
<00><00><00><00><00><00><00><00><00><00>g<00><00> <00> <00>
<00><00><00><00><00> <00> <00><00><00><00><00> <00>
<00><00> <00><00><00> <00><00>
<00><00><00><00><00><00><00><00>
<00><00><00><00> <00><00><00><00><00><00><00><00><00> <00> <00><00><00><00><00>
<00><00><00><00><00><00><00> <00><00><00> <00><00><00><00><00><00> <00><00><00><00> <00> <00><00><00><00><00><00><00><00><00><00><00><00> <00><00><00> <00> <00>
<00><00><00><00><00><00><00><00><00>
t<00><00><00><00><00><00><00><00>b<00><00>
k<00><00> <00> <00><00><00><00> <00><00><00><00> <00><00><00><00><00><00> <00>
<00><00><00>
<00><00><00> <00><00><00> <00><00><00> <00><00><00><00><00><00> <00><00><00><00><00><00> <00><00><00><00> <00><00><00><00><00><00><00> <00><00>3<00><00><00> <00><00><00> <00> <00><00><00><00><00><00><00><00><00><00> <00><00><00> <00><00><00><00><00>
<00><00><00><00> <00> <00>
<00><00><00>
<00><00> <00><00><00><00><00>T<00> <00><00><00><00><00><00><00><00><00><00><00>1<00><00>
<00><00><00><00> <00><00><00><00><00> <00> <00><00><00><00><00><00><00> <00> <00>A<00> <00><00>4<00><00> <00><00><00><00><00><00><00> <00> <00><00><00>;<00><00><00><00> <00><00><00><00><00><00> <00><00><00><00><00> <00><00><00> <00><00> <00><00><00> <00><00><00><00><00><00><00><00> <00><00> <00>e<00> <00><00><00><00><00> <00><00><00> <00>J<00><00><00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00>n<00><00><00><00> <00> <00><00> <00><00><00><00>$<00><00><00> <00><00><00><00><00><00><00><00><00><00>.<00><00><00><00><00>
<00><00><00><00> <00><00><00><00><00><00><00><00><00> <00><00><00><00> <00><00>^!<00><00>
<00><00><00><00>i<00> <00> <00><00><00><00><00><00><00><00> <00> <00><00><00> 5<00>
<00><00><00> <00> <00> <00><00> <00><00><00> <00><00><00> <00><00><00><00><00><00><00><00>
<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>
<00><00> <00><00><00><00><00><00><00><00><00><00>q<00><00> <00><00><00><00><00><00><00><00><00>I<00><00>
<00>
<00><00><00><00><00> <00><00><00> <00><00><00> <00><00><00><00> <00><00><00><00>d<00><00> <00><00><00><00><00><00>
<00> <00><00><00><00>
<00><00><00><00> <00> <00>
<00><00>1<00>
<00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00> <00><00><00><00><00><00>
<00> <00>
<00> <00><00><00>x<00><00> <00><00><00><00><00> <00><00> <00><00><00><00><00><00><00><00><00><00><00> <00>
<00><00><00><00><00><00><00><00> <00> <00><00><00> <00><00><00><00><00><00><00><00><00> <00>=<00> <00> <00> <00><00><00><00><00><00> <00><00><00><00> <00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00>5
<00><00><00> <00><00><00>F<00><00><00><00><00> <00><00><00> <00><00><00><00><00><00> <00><00><00> <00> <00><00>
<00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00>
<00><00> <00><00><00> <00>
<00> %<00> <00><00> <00><00><00><00> <00><00> <00><00><00><00><00> <00> <00><00><00><00><00><00><00><00><00><00><00>
<00> <00> <00><00><00><00>_<00><00><00> <00><00><00> <00>  <00><00><00><00><00><00>[@<00><00><00><00> <00><00><00>
<00>N<00><00><00><00> <00><00><00><00><00><00><00><00><00><00>*<00><00><00><00><00> <00> <00><00><00><00> <00><00><00><00> <00><00><00><00><00><00> <00><00><00><00><00>(<00> <00><00><00> <00><00><00><00><00><00><00><00> <00><00> <00><00> <00><00><00> <00> <00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00> <00><00><00> <00> <00> <00><00><00><00> <00><00> <00><00><00><00><00><00><00> <00><00><00><00><00><00> <00><00><00><00><00><00><00><00>
<00><00><00><00> <00> <00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00>a<00><00><00> <00><00><00><00><00><00><00> <00><00><00>
<00><00><00>r<00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00>3<00><00><00> <00><00><00><00>
<00><00><00><00><00><00><00> <00> <00><00> V<00><00><00><00> <00><00><00><00><00><00><00> <00><00><00><00><00><00><00><00> <00> <00><00><00><00> <00>
<00>
<00><00><00><00><00><00><00><00><00><00><00><00> <00> <00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>,<00><00><00><00><00> <00> <00>2<00><00><00><00><00><00> <00><00><00> <00> <00><00><00><00><00><00><00><00><00><00><00>
4<00><00><00><00><00> <00><00> <00><00><00><00> <00><00><00> <00> <00><00> <00><00><00> <00> <00> <00> <00><00> <00>
<00>w<00><00><00>
<00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00> <00><00> <00><00><00> <00><00><00><00>cR<00>K<00><00>
<00> <00><00><00> <00><00><00>
<00> <00>v<00> <00><00><00>z<00><00><00><00> <00><00><00> <00><00>
<00><00><00><00><00><00><00><00> <00><00><00><00> <00><00><00><00> <00><00><00><00><00><00> <00><00> /<00><00><00>
<00><00><00><00> <00><00><00><00><00> <00><00>:<00><00> <00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00> <00>u<00><00><00><00><00><00><00><00>
<00><00><00><00><00><00> <00><00>~<00> <00><00><00> <00>
<00> <00><00><00><00> <00><00> <00> <00><00><00><00><00><00><00> <00> <00> <00><00><00><00><00><00> <00><00><00><00><00> <00><00><00><00>
<00><00><00> <00><00><00><00> <00><00> <00> <00>  <00><00>
<00><00><00><00>#<00><00><00><00><00><00><00><00><00><00><00><00> <00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00> <00><00> <00><00><00><00><00><00><00><00><00> <00> <00><00><00><00><00><00> <00><00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00> <00><00><00><00> <00><00><00> '<00><00><00><00><00> <00><00><00><00>
<00><00><00> <00>
<00><00><00><00><00><00> <00><00>`<00>
<00><00><00><00><00><00><00> <00> <00><00><00><00>B<00><00><00><00>
<00><00><00><00>
S<00><00> <00><00><00><00> <00><00><00><00><00><00> <00><00><00><00> D<00><00> <00><00><00><00><00> <00> <00> <00><00><00>
<00><00><00><00><00><00> <00> <00><00><00><00><00><00><00><00> <00> <00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00>
<00>
<00><00><00><00><00><00><00>Z<00><00> <00> <00><00> <00><00> <00><00><00><00><00><00><00><00><00> <00> <00> <00> <00><00> <00><00>{<00><00><00><00><00><00><00><00> <00><00> <00><00><00>
<00><00><00><00><00>
<00><00>
<00><00><00><00><00><00><00><00><00> <00>Q<00><00><00><00><00><00><00> <00> <00>
<00> <00><00><<00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00>
<00><00><00><00><00> <00><00><00><00><00><00>
<00><00><00><00>
<00><00><00>
<00><00><00><00><00><00><00><00> <00> <00><00>YX<00> <00> <00><00>.<00><00><00><00><00> <00><00> <00><00><00><00><00><00><00>
<00>
<00><00><00><00> <00> <00><00><00><00><00><00><00>
<00><00><00><00> <00>
<00><00><00>
<00><00>+<00><00><00> <00><00> __SIM6502__../libwrk/sim6502/dbg.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_exit_strlen_clrscr_kbhit_gotoxy_wherex_cputc_cputcxy_cputsxy_cgetc_cursor_revers
_textcolor_bgcolor _bordercolor_chline _chlinexy _cvlinexy _cclearxy _cputhex8
_cputhex16_isalnum_isdigit _isxdigit_toupper_brk_a_brk_x_brk_y_brk_sr_brk_pc
_DbgDisAsm _DbgDisAsmLen _DbgIsRAM _DbgMemDump_DbgSP_DbgCS_DbgHI_DbgBreakCount
_DbgBreaks_DbgGetBreakSlot _DbgIsBreak _DbgEntry_RegText.sizeL0004L0008L000CL0010L0014L0018L001CL0020 _HelpTextL0024L0028L002CL0030L0034L0038L003CL0040L0044L0048L004CL0050L0054L0058L005CL0060L0064L0068 _AsmFrame _AsmHandler _RegFrame _RegHandler _StackFrame _StackHandler _CStackFrame_CStackHandler
_DumpFrame _DumpHandler
_HelpFrame _HelpHandler_Frames _ActiveFrame _ActivePromptL0209L021DL0204L016FL016BL01FEL0395_AsmAddr _DumpAddr _CStackAddr
_StackAddr _PromptColor _PromptLengthdecsp3L02DF
_UpdateAsmstax0sp _GetKeyUpdateL02EAL02EEL0306L02F8L02FBL02FFL0302L02F4L030CL04DCldax0sppushax_AsmBack_DbgToggleUserBreak
_AsmFollow
_InputGoto_AsmHomeincsp3decsp1pushaL0364L036DL0371L0378L0375L037BL04DDL036B
_StackHomeincsp2 _UpdateStackL03A0L03A9L03ADL03B4L03B1L03B9L04DEL03A7 _CStackHome _UpdateCStackshlax3L03DCL03E5L03E9L03F4L03EDL03F1L03F9L04DFL03E3 _DumpHome _UpdateDumppusha0_ActivateFrame _AnyKeyPrompt_Redraw_DisplayPromptL0150ldaxysp _SingleStepL042FL0442L043DL0419L043AL041DL0417 _GetArg16L04E0ldaxildaidxL0438incax2_DbgSetTmpBreak _SetRTSBreak _GetStack16tosaddax _RedrawStatic _DrawFrames _HelpPromptincsp1
_UpdateRegL0464L0467L04E1L046DL0470L0473L0476L04E2
_DrawFrameregswap2subyspL00CFL04E4staxyspL010CL010Atosadda0ldaxidxaddeqyspaddyspL04E6L0117L04E7L0118pushw0spL04EAL012AL012Caslax1pushwL0132L013CL04E9tosicmp0incsp6 _IsAbortKey_Inputdecsp8L018AL018FL04EEL019DL04F5L01B3L04F3L04F4pushwyspbooleq _InputHexleaa0spL01F2L01CAL01D9L01D7shlax4L01E2L04F7decaxyaddeq0spL04F6 _ErrorPromptincsp4L04FD_BreakInRomErrorL0214L0224L021AL0220_DbgResetTmpBreaksL04FFL022FL0236_DbgTmpBreaksOkL0500L0502L0245L0252mulax3tossubaxL025BL0506L0264L0508L026CL050AL0507L0272L0253L050DL027DL0289L0291L0297L02A1 _AsmArg16incax1L02BBL02B1L0512L0511L02B7L0513L050FL050E_InitAsm_InitRegL0517L0348L0515
_InitStackL0519L051A _InitCStackL051BL03C6L051CL047Ddecsp2L047FL0521L0490callaxL0520L04C0L04B8L051FL04A8L04B0L04D8L04D4L04CEL04ABL0492L0522CODERODATABSSDATAZEROPAGENULLUzna` ix<00>`<00>fY\?<00> <00>~ [ @<40>۵<8B><02><17>\<5C>&faX<61><06>8<00><02><01>' H<01><00>'<01>: I<01><00>:LG
<82>Gh<01>T
<01><02>Th<01><01>
<01><02><00><01>XP<01><01><01>
<01><02><01> a
<01><00>4a<01> H<01><02><01><01> <09><01><01>h I<01><02>h<01> <01><02> g
<01><00>Gg <01>
<82><01> r
<01><00>or 
<01><00>4 <01><01>
<01><02><00><01>H<01>D
<01><02>DHs`A<02>0<01>
<01><02><01>f
H<82>f<01>2
<01><02>2<01><01><01>
<82><01><01>}<01><01><01>`C<02>=<02>|<01>W
<01><04>W<01>JJ&&<02>6<01>
<01><04><01>Q
<01><04>Q<01> <01><01><01>>
<82>><01> <09><01>
<01><04><01>M <09>M<01><01>3<01>U<01>m<02>0"<01><<01><`<01><02>[<02> <01><01>
<01><04><01><01><01><01><01>
<01><04><01>/ <01><01>/<01><01>
<82><01><01> <09><01>@ <09>@<01><01>
<01><04><01><02><01>
<09>
<01>;<01> <01>^<01><02>0<01><01><01><01>` <02>d<01><01>
<01><04><01><01> <01><01><01>.<01>%<01>u<02>0<01><01>,<01>,L+
<82>+<01>Z <09>Z<01><01> H<><01><01> I<>pe7 <09>7<01>vv<01><02><01>`<01> l
<82>l<01>o <09>o<01>Y <01><01>Y<02>-<01>8
<01><04>8<01>kk0))<01>n
<82>n<01>{ <09>{<01>11<01>L
<01><04>L<01><01> <01><01><01><01>w w<01>V<01>`<01>9<01><02>0y<01>#<01>#LO
<82>O<01>q <09>q<01>? H<>?<01>H I<>Hbe5 <09>5<01><01>S<02>(`\9#:<00> <20><01> e E <01> <01> 4;<= RZ7q5I M/@
oY{<7B>*<03><1C>Kf _WQ><04><08><01><01><01>8nL?H $G
$<01> $+O$l<06>3<01><00><>t<01><01>/<01><00><><01>B<><01><02>E]<5D><01><02>e]<5D><01><02><01>]<5D><01><04>N<00><01>hmj<00><00>|<00><00><00> -P<00>0M<00><00>l?<00>")o<00>&ys<00> <00>f<00><00> <00><00><00><00>}L<00>OpE<00>g<00><00><00><00>tbk<00><00>3<00>T1A;<00> e <00>n<00>!i <00>q<00>d<00><00><00>x<00><00>
<00>%<00>_<00>@N*(a<00><00>r<00><00><00><00>,2<00><00><00><00>w<00><00>cRKz<00>/:u~<00>#<00><00>'BS<00><00>D{<00><00>Q<00><00><00>+> __SIM6502__ dbg/dbgsupp.s
ca65 V2.15_DbgInit_DbgSP_DbgCS_DbgHIpopaxreturn0 _DbgEntry_set_brk_end_brk
_DbgBreaks_brk_pc __ZP_START__-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeDbgBreakretsav DbgSwapZPDbgStackResetDbgBreaks SetDbgBreaksCTempSwap1 MaxBreaksL4L6L5L7L8_DbgGetBreakSlotL10L11L12 _DbgIsBreakL20L21L22L23CODERODATABSSDATAZEROPAGENULLUzna` iq<00>'@]`[<00><00>F_G@<40>۵<8B><02><17>\<5C>q<02>  
<82> 
<82><01> <01><02><01> <09>E <09><01> <09>L
<82><01> <09>`  
 <02><01><00>
 <0B><04>   $
%# __SIM6502__ runtime/div.s
ca65 V2.15tosdiva0tosdivaxpopsargsudiv16negaxsregtmp1tmp2.sizePosCODERODATABSSDATAZEROPAGENULLUzna` iq<00>!0 <?G<00>w<00>><00>@<40>۵<8B><02><17>\<5C>g  
<82><01> <09><01> <01><02><01>
<09>
<01> <01><01> $ <09> L
<82> `   
 <01><04> "! __SIM6502__ common/divt.s
ca65 V2.15_divtosdivaxnegaxsregptr1tmp1.sizePosCODERODATABSSDATAZEROPAGENULLUzna` iq<00>  `}b<00><00>@<40>۵<8B><02><17>\<5C> e<02><02> <01> B<01><02> <01><01>:<01> ,
<02><02> ` 
   <01><04>-")&.!*(, '+ __SIM6502__common/getcpu.s
ca65 V2.15_getcpu.size@L9@L8CODERODATABSSDATAZEROPAGENULLUzna` ix*<00>&<00> <00><00>#<00>|v<00>w@<40>۵<8B><02><17>\<5C> faX<61> <06>)0*I<><01>! <09>!<01>4I<><01>/ <01><01>/ 
<82><01> <09><01> <01><02><02> <01>0 <09>0<01><01> <01><01><01> 
 <01>9
<82>9<01>( <09>(<01>
<01><01>,<01>,<01>   
<82><01>`.<01> <09> <01>
<01><02>
`"*+,-. #!/0(
9<01><04>0: -?">& 986$.

"%7@ ,/ :#BD+/ __SIM6502__common/getcwd.s
ca65 V2.15_getcwdpopax__cwdptr1ptr2*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAXloop.size@L1overflowdoneCODERODATABSSDATAZEROPAGENULLUzna` kzU<00>Q  ,/<00><00>6 . @<40>۵<8B><02>m<8B>\<5C>faX<61><- 
<82> 
<82><02><01> <09> <01> <09> <01><01>L
<82> 
<82>  
<82> 
<82><01>
<01> <09><00><01> <01>
<81><01>
<01> <09><00><01> <09>
<01>
<01> <09><00> <01>
<01> <09> 
<82> 
<82> <01> <09> <01> <01> <0B> 
<82>
L
<82> !"#$   
 <01><13>< ! -0")&14$.! 5
%*(,2/ #'+% __SIM6502__../libwrk/sim6502/gmtime.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac__tz_gmtime
_localtimepushaxdecsp4L000Cincsp6ldaxysp.sizeldeaxipusheax tosaddeaxsteax0spCODERODATABSSDATAZEROPAGENULLUzna` ixs<00><00>GZ<00><00><00>@<40>۵<8B><02><17>\<5C>faX<61><

<02><01> <09> e <09> <01><01> `    
 <02><05><08><01><00>    __SIM6502__runtime/incaxy.s
ca65 V2.15incaxyincax4tmp1,/home/hugg/compilers/cc65/asminc/generic.mac.size@L9CODERODATABSSDATAZEROPAGENULLUzna` ix<00>% 1NQ<00>y<00>P<00>@<40>۵<8B><02><17>\<5C>faX<61>v<02><01> <09><01> <01><01> <09><01>! <09>!<01><01> <09><01>##`<01> <09> <01>% <01><00>%` !"! %<02><01><00><13><04>)"& $! *(/ #'# __SIM6502__runtime/incsp2.s
ca65 V2.15popaxincsp2sp(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.size@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` iy4<00>L<00>
Q
[<00>M$ N$@<40>۵<8B><02><17> faX<61>A v<00><02><01><01> <09><01><01>~ <01><04>~<02><01><01> <09><01><01>_<01><01> <09><01><01><01> <09><01><01><01> <01><03><01><01><01> <09><01><02><01><02><01> <01>
<01><00><01>J<01><01> <01>
<01><00>1<01>(<01><01><01><01><01>H <09>H<02><01><01><01> <09><01><01><01>H<01><01>Q <01><03>Q<01><01> <09><01><01><01>hL<01>
<82><01><01><01>:<01><02><01><01><01> <09><01><02><01><01>D <09>D<01><01> <09><01><01><01> <09><01><01><01> <01><05><01><02><01>peX <09>X<01><01> <09><01><01><01><01><01>n <01><04>n<01><01> <09><01><01><01><01><02><01><01><01> <01><05><01><01><01> <09><01><01><01> <09><01><01><01> <09><01><01><01><01><01>o <01><04>o<01><01> <09><01><01>aa<01><01> <01><03><01><01><01> <09><01><01><01><01><01><01><01> <01><05><01><01><01>`<01>J<01><01><01>,<01><02><><01><01><01>
<01><02><00> <01><02>W<01><01>
<02><02><01><01>P
<01><02><><00>P<01><01><01><01><02>pE<01><01>
<01><02><><00><01><01><01><01><01><02><01><01><01>
<01><02><00><01><01>^<01><01><02><01><02><01><01>1
<01><02><00>1<01>v<01><01><01><01><01>:j:<02><01> <01>
<01><00><01><01>i <09>i<02><01><02> <01>
<01><00><01><01><01> <01><05><01><02><01><01>+ l
<01><00>l<01><01> <09><01><01><01><01><01><02><01> <01>
<01><00><01><01>
<83><01><01>
<83><01><02><01><01>=<01> <09><01>M<01>M<02><01><01>]<01>]n
<01><02> <01>
<01><00>J<01><02><01><02><01><01> <09><01> <01>
<01><00><><01><01>q
<83>q<01><01><01>u<01>u <01>
<01><00><><01><01><01>
<01><02><01><01>j<01><01> <09><01><01><01><01><01><02><01><02>9<01><01><01><01> <01>
<01><00><><01><02><01><01><01><01>i<01><01><01>
<01><02><01><01><01><01><01> <01><05><01><01><01><01><01>~<01>
<01><02><01> <01>
<01><00>J<01> <01>
<01><00><><01><01>c c<02><01><01><01> <09><01><01><01> <09><01><01>!<01>!<01><01> <01><03><01><01><01><01><01>`B<01>
<01>
 <01>
<01><00><01><01><01> <09><01><01><01> <01>
<01><00><01><01>- <01><05>-<02><01> <01>
<01><00><><01> <01>
<01><00><01>8{I<>e<01> <09><01><01><01> <09><01><01><01>s <01>
<01><00><01>(<01>I<><01>e<01> <01><03><01><01><01> <01><02><01><01> <09>  <01>
<01><00>L<01><01><01><01><01><01><01> H<><01><01><01> <09><01><01><01> I<><01><01><01> <01><02><01><02>=<01><02><01><01><01>
<01><02>?<00><01><01><01><01>'<01>'<01>` `<01> <01><01>
<01><02>]<01><01> <01><01><01><01><01> <01><02><01><01><01> <09><01><01><01><01><02><01><01><01> H<01><02><><01><01><01> I<01><02><><01><01><01><01>
<01><02>]<01><01>I<01><01>
<01><02>|<01><01><01>
<01><02>]<00><01>}<01>
<01><02>]<01><01><01><01><01><01><01><01><02>d<01><01><01><01><01><01> I<><01><01> <01><02><02><01><01> ' <01><01><01><01><01><01><01>
<01><02>]<00><01><01><01> <09><01><01>
<01><02>|<00><01><01> <01><01><01><01><01><01>
<01><02>?<00><01><01><01>
<01><02>?<00><01><01><01> <09><01><01><01><01><01><01><01> <01><01><01> <01><02><01><02>A<01><01>
<01><02>?<01><01><01>
<83><01><01><01>/<01>/<01><01> <09><01><01><01><01>`<01><01><01> <01><02><01><01><01><01><01><01> <01>
<01><00><><01><02><01><02><01><01><01><01><01><01><01><01>
<01><01><00><01><01>
<01><01><00> <01>
<01><00><01><02><01><01><01><01><01><01><01><01><01><01> <09><01><01>z <09>z<01><01> <01><02><01>`<01><02><01><02>6 <01>
<01><00>+<01>*<01>@8w<01><01>
<01><02>?<00><01><01>J<01>J}<01>
<01><02>?<00><01><01><01>
<02><02><01><01> <09><01><01>
<01><02>]<00><01><01><01>
<01><02>|<00><01><01><01> <01><01><01><01><01> <09><01>`<01><01><01><01>
<01><01><><00><01><01><01>
<01><01><00><01>H<01><01><01>
<01><01>T<00><01><01><01>h\<02><01><01><01><01>H <02><><01><01><01> <09><01>h8 <01>
<01><00>+<01><01><01><01><01><01> <09><01><01><01><01><01><01><01>b<01><01><01>e <09>e0<01><01><01>`<01>F<01> <09><01><01><<H<01><01><01> <09><01><02><01><01><01> <09><01><01><01> <09><01><01>Z <09>Z<01><01><01><01><01> <01><04><01>j<01><01><01> <09><01>h4`Y<>w<00><02><01><01><01><01><01><01> <01><01>
<01><01> <01><01> <01><01> <01><01><01><01><01> <01><01><01> 
 <01> <01><01><01><01><01><01><01>#<01>+<01>3<01>;<01>C<01>S<01>c<01>s<01><01><01><01><01><01><01><01><01><01>777777 7 7GG!G1GAGaG<01>G<01>G<01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01> <01>VV V0V@V`V<01><01><01><01><01><01><01><01>OOOOOOOO<01><01><01><01><01><01><01><01>FFFFF<01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01> <01> <01>
<01>
<01> <01> <01> <01> <01> <01> <01>2x<00> <20><01> > U , <01> <01> <01> ? <20><01>yz{ %m %<03><01><03>
%<05><02><01>rk %<01>%<01>%C<><02>%<04><02><03><02><01><01><01><04><01><01><00><03><00><00><00><00><00><00><00><00><00><00><00><00><00><00>j<00><00><00>|<00><00><00><00><00><00><00><00>U<00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>?<00><00><00><00>o<00><00><00><00><00><00><00>ys<00><00><00><00><00><00><00><00><00><00><00>W<00><00><00><00><00><00><00> <00><00><00>9<00>C<00><00><00><00>8<00><00><00><00><00><00><00><00><00><00>O<00><00><00><00><00>6p<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>g<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>t<00><00>bk<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>T<00><00><00>A<00><00><00><00>;<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>^i<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>d<00><00><00><00><00><00><00>x<00><00>=<00><00><00><00><00>5
<00><00><00><00><00><00><00><00><00><00><00>7<00><00><00><00><00><00><00>_<00><00>[@<00>N<00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>a<00><00><00><00><00><00><00><00>V<00><00><00><00><00><00><00>,<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>cK<00><00><00>v<00>z<00><00><00><00><00><00>/<00><00><00>u<00><00><00><00><00>~<00><00><00><00><00><00><00><00> <00><00>#<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>Z<00><00>{<00><00><00><00><00>Q<00><<00><00><00><00><00><00><00><00><00><00><00><00>Y<00><00><00><00>| __SIM6502__zlib/inflatemem.s
ca65 V2.15 _inflatememincsp2spsregptr1ptr2ptr3ptr4tmp1(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510MAX_BITS PRIMARY_TREE DISTANCE_TREE
TREES_SIZE inputPointer outputPointerinflateDynamicBlock_cntinflateCodes_srcbuildHuffmanTree_srcgetNextLength_lastgetNextLength_indexbuildHuffmanTree_ptr fetchCode_ptr getBits_tmp moveBlock_leninflateDynamicBlock_npinflateDynamicBlock_nd getBit_hold.size inflatemem_1getBitscallExtrinflateCompressedBlockinflateCopyBlock moveBlock moveBlock_1 moveBlock_2 moveBlock_3inflateDynamicBlockinflateFixedBlockdistanceCodeLengthinflateFixedBlock_1literalCodeLengthinflateFixedBlock_2inflateFixedBlock_3 endCodeLengthinflateFixedBlock_4 inflateCodesinflateDynamicBlock_1inflateDynamicBlock_2tempCodeLengthOrderbuildHuffmanTreeinflateDynamicBlock_3 getNextLengthinflateDynamicBlock_4inflateDynamicBlock_5inflateDynamicBlock_6inflateDynamicBlock_7inflateCodes_1fetchPrimaryCodeinflateCodes_2inflateCodes_retgetValue fetchCodebuildHuffmanTree_1 bitsCountbuildHuffmanTree_3buildHuffmanTree_2 bitsPointer_l sortedCodesbuildHuffmanTree_4 bitsPointer_hbuildHuffmanTree_5buildHuffmanTree_9buildHuffmanTree_6buildHuffmanTree_7buildHuffmanTree_8 literalCountgetNextLength_1getNextLength_2 tempExtraBits tempBaseValue fetchCode_1getBitlengthExtraBitslengthBaseValue_llengthBaseValue_h getBits_ret getBits_1 getBits_2
getBit_retgetBit_1distanceBaseValue_ldistanceBaseValue_hdistanceExtraBitslengthCodeLengthCODERODATABSSDATAZEROPAGENULLUzna` i<00>Rh/<00><00>7<00>b3<00>4@<40>۵<8B><02><17>\<5C> faX<61>faX<61><06>!S?x5<01>*
<83>*<01>=
<01><02>= -
<82>- m(
<83>(<01>
<83> <01>2m
<01><02><01>
<01><02> 
<82><01>%
<01><03>%<01>
<01><03>X`3<02><01>6
<01><03>6`<01>0
<01><03>0<01> `)<02>9<01>/ H<>/<01>7
<01><02>7<01><01><01><
<83><<01>;
<01><02>;<01>8 <09>8<01>' <01><00>' !
<83>!<02>,<01>
<01><02><01>. H<>.<01>$<01>J`""#   $L<>%&
8'/.-<03>@<01><00>)*
&<26><01><00># <0F><04>#>hU -0MH?  9CL6EbkT1A4 e$.^i d5
[N*a,cRK/:'BSZQ<YX+' __SIM6502__common/interrupt.s
ca65 V2.15_set_irq
_reset_irq
clevel_irqpopax __ZP_START__-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace,/home/hugg/compilers/cc65/asminc/generic.macirqvec.sizeirqspzpsave@L1@L2@L3CODERODATABSSDATAZEROPAGENULLUzna` iqD<00><00> <00><00><00>Z4<00>5@<40>۵<8B><02><17>\<5C> L<><4C>
 <01><04>  __SIM6502__runtime/jmpvec.s
ca65 V2.15jmpvec.sizeCODERODATABSSDATAZEROPAGENULLUzna` iu<00><00><00><00><00>M<00><00><00>@<40>۵<8B><02><17>\<5C><07><17>\<5C> "faX<61><06>0mS<01>
<83> <01>2 <09>2<01>R
<01><02>R<01> <01><00> <02>,<01>= <09>=<01>
<83> <01>?;?<01><01><02>;<01> H<><01> <09><01>B<01>+ I<>+<01>Y <09>Y<02> ><02><01> <09><01>8
<01><02>8<01>/<01>O<01><02>
<02>a<01>N [
<01><00>S[ *
<01><00>S*<02><01>I<01>I d
<83>d<01>c<01>]
]<01>A
<01><03> <00>A<01>XX<02>LF<01>'
<01><03> '`M<02><02>4`<01>0 <09>0<01><01>!
<83>!<01>6`H<02>`^<01>
<01><03>  T
<01><03>T<02>_<01>
<83> <01>
<01><02><01>`<1jWoWyWW2
  -13LKL L5L`ZZZ45:2 =Y01+
<B8>!<01><00>c)<00><01><00>[P<00><1D>J<00><01><03> <00><01><03>5<00><01><03> T<><17>Kd<><01><02>-8<><15> R <07>F<01><03> ZA'fhj/|-<00><00>U-P0<00>HNG?o(> FP9H8)&L6p'%gOAb;<00>TA4GJn.6iq+I4 =<00>5F75_@2 U,a1 rV,@cRKz./Q~I#`BS0 Z{<00>RQSYX3 6 __SIM6502__joystick/joy-kernel.s
ca65 V2.15
joy_librefptr1joy_irq//home/hugg/compilers/cc65/asminc/joy-kernel.incJOY_HDRID.sizeVERSIONLIBREFMASKSJUMPTABINSTALL UNINSTALLCOUNTREADIRQJOY_API_VERSION_joy_drv
_joy_masks joy_install joy_uninstall joy_countjoy_read_joy_load_driver _joy_unload _joy_install_joy_uninstall
_joy_count _joy_read_joy_clear_ptr./home/hugg/compilers/cc65/asminc/joy-error.inc
JOY_ERR_OKJOY_ERR_NO_DRIVERJOY_ERR_CANNOT_LOADJOY_ERR_INV_DRIVERJOY_ERR_NO_DEVICE joy_vectorsjoy_sig@L0inv_drv@L1@L2copy@L3CODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00>V~<00><00><00>@<40>۵<8B>faX<61><04><17>\<5C>  !"#$<01><1C>/-NFPHOA;G6+4 
52 U,1 @.QI0 RS3 % __SIM6502__joystick/joy_count.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/joy-kernel.incJOY_HDRID.sizeVERSIONLIBREFMASKSJUMPTABINSTALL UNINSTALLCOUNTREADIRQJOY_API_VERSION_joy_drv
_joy_masks joy_install joy_uninstall joy_countjoy_read_joy_load_driver _joy_unload _joy_install_joy_uninstall
_joy_count _joy_read_joy_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` i$<00><00>qF<00> <00><00><00><00>k<00>l@<40>۵<8B>faX<61><04><17>\<5C> faX<61>%faX<61>3faX<61><06>HWB H
<82>H<01>7
<82>
7 Y
<01>
<81>Y<01>   2
<82>2<01>DD 
<82> <02> \
<82>\<01>4
<01><03>4<01>g
<01><03><00>g<01>F0313<01>C H<>C<01> I<> 
<82>H?<01>G
<01><03>G<01>%
<01><03><00>% 
<82>h<01>NN<01>
<01><03><01>
<01><03><00>  9
<82> 9<01>.<01>WWH<01>;
<82>
;<01>
<01>
<81> /
<82>/ 
<82> h<02>6`<01><01>,,`]IJK

<82>U  =  aLM CB)UA<\?$ >BH,c/+K ^29V7Y;<01><18>Wlhm\j/-UPK0]lHNGo(&ysFP 92H<8J)&O'%GOtAbk;1A;Gn.6^ i+I4 0 F75@N*12 U,1 VIw@c./H/:uQI43B0 R< FS3 N __SIM6502__joystick/joy_load.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/joy-kernel.incJOY_HDRID.sizeVERSIONLIBREFMASKSJUMPTABINSTALL UNINSTALLCOUNTREADIRQJOY_API_VERSION_joy_drv
_joy_masks joy_install joy_uninstall joy_countjoy_read_joy_load_driver _joy_unload _joy_install_joy_uninstall
_joy_count _joy_read_joy_clear_ptr./home/hugg/compilers/cc65/asminc/joy-error.inc
JOY_ERR_OKJOY_ERR_NO_DRIVERJOY_ERR_CANNOT_LOADJOY_ERR_INV_DRIVERJOY_ERR_NO_DEVICE,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRL
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCLpushaxpusha0incsp2_open_read_closectrl@L1@L3@L2CODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00>V}<00><00><00>@<40>۵<8B><02><17>\<5C><04><17>\<5C>  !"#$<01><1D>/-NFPHOA;G6+4 
52 U,1 @.QI0 RS3 % __SIM6502__joystick/joy_read.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/joy-kernel.incJOY_HDRID.sizeVERSIONLIBREFMASKSJUMPTABINSTALL UNINSTALLCOUNTREADIRQJOY_API_VERSION_joy_drv
_joy_masks joy_install joy_uninstall joy_countjoy_read_joy_load_driver _joy_unload _joy_install_joy_uninstall
_joy_count _joy_read_joy_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` i<00><00>C^ ilK<00><00><00>k<00>@<40>۵<8B>faX<61><04><17>\<5C> faX<61>%faX<61><06>6<01>
<82>H 
<01><03> <01><01>
<01><03>H* 
<82>h1<01>h# 
<82>L:
<82>:<01> h9<02> `(789:;4':,<62 <01><19>B/-KN"(FP2H<J)&'%GOA;G $6!+4 0 %512 U,1 I@.H/QI4#3B0 RFS3 < __SIM6502__joystick/joy_unload.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/joy-kernel.incJOY_HDRID.sizeVERSIONLIBREFMASKSJUMPTABINSTALL UNINSTALLCOUNTREADIRQJOY_API_VERSION_joy_drv
_joy_masks joy_install joy_uninstall joy_countjoy_read_joy_load_driver _joy_unload _joy_install_joy_uninstall
_joy_count _joy_read_joy_clear_ptr./home/hugg/compilers/cc65/asminc/joy-error.inc
JOY_ERR_OKJOY_ERR_NO_DRIVERJOY_ERR_CANNOT_LOADJOY_ERR_INV_DRIVERJOY_ERR_NO_DEVICE,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRL
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM joy_clear_ptrreturn0 no_driverCODERODATABSSDATAZEROPAGENULLUzna` iq*<00><00>.<00><00><00><00>y<00>@<40>۵<8B><02><17>\<5C> <06> -*<02><02>
<01> <09><01> <01><01> <01> <01><00> <02>q <09><01> <09>H<01><01>q <09><01> <09><01><01><01> <09>q <09><01> <09><01> <09><01><01> <01><01> q <09><01> <09><01> <01><01>h`     <03><01><00> <12><01><00> <12><04> ! -0"&$.!5
%*(,2 '+ __SIM6502__runtime/laddeq.s
ca65 V2.15laddeq1laddeqaladdeqsregptr1tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>g"<00><00><00><00>1z<00><00><00>@<40>۵<8B><02><17>\<5C><06> $!<02><01> <09> <01> <01><01><02>1 <09><01> <09><01> <01> 1 <09><01><01><01> <09>1 <09><01> <09><01><01> <01><01>1 <09><01> <01><01><01> <09>L
<82>    <02><01><00>
<0E><04> "  $  # __SIM6502__runtime/land.s
ca65 V2.15 tosand0ax tosandeaxaddysp1spsregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>0C ORe<00>cQ@<40>۵<8B><02><17>\<5C><06><01> <09>8
<01> <09><01> <09><01><02> <01><01> <09><02><01> <09><01> <01><01><02> <01> <01><01><01> <09>` 
     <01><04>    
 __SIM6502__runtime/ldec.s
ca65 V2.15deceaxysregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>,<b<00><00><00>$<00><00><00><00>@<40>۵<8B><02><17>\<5C><06><02> <02><01><02> <02> 
<82>H<02><01> <09>8e <09><01> <09><01><01> <01><00>h`  
<06> <01><00>  <02><01><00>
<03><01><00><03><01><00>
<03><01><00><03><04> " $! % # __SIM6502__runtime/leave.s
ca65 V2.15leave00leave0leavey00leavey0leaveyleaveaddyspsp.sizeL1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>M5<00><00><00>o<00><00><00><00>@<40>۵<8B><02><17>\<5C><06> <02><01> <09> <01> <01><04>  
<82> 
<82>
<01> <09><01> <01><03><01> <09><01> <09><01> <09> <01> <01><04>$ <09>L
<82>`           
<02><01><00><0E><04> " 
,#'+ __SIM6502__runtime/lmod.s
ca65 V2.15 tosmod0ax tosmodeax poplsargsudiv32negeaxsregptr1ptr2tmp1tmp3tmp4.sizePosCODERODATABSSDATAZEROPAGENULLUzna` iq*<00>Q<00>9%((P<00>
' @<40>۵<8B><02><17>\<5C> <06>\W<02>$<01> <09><01>. <01><06>.<01> <09><01> <01><02> <02><01> <09><01>( <09>(<01>5<01> <09><01>3 <01><01>3<01>/<01> <09><01>! <09>!<01><01>7 <09>7<01>2 <01><00>2 
<82> <02>&<01> <09> <01>4 <09>4<01>+ <09>+<02>  F* <09>*f: <09>:f, <09>,jf <01><06>f0 <09>0f <01><02>f <09><01>--e <09>H%<01> <01><01>e' <09>'<01> <09><01> <09>e1 <09>1<01> <09><01>9 <01><00>9e# <09>#<01>
<09>
h<01>)<01><01>6 <09>6<01> <01><02>`8  !29 (3  6  *#
  4:1  +,'
 .0  7" <04><01><00><1E><06><1E><01><00><1E><04>; -0?)>& 9C86E31A4; .!= 5%7@*(,2/: 'BD<+ __SIM6502__runtime/lmul.s
ca65 V2.15
tosumul0ax
tosumuleax tosmul0ax tosmuleaxaddysp1spsregtmp1tmp2tmp3tmp4ptr1ptr3ptr4.sizemul32L0L1CODERODATABSSDATAZEROPAGENULLUzna` kz.<00>e  n<00>h<00><00>@<40>۵<8B><02>m<8B>\<5C> faX<61><06>$<00>j @
<82> @ :
<82>
:<02>#<01> <09> <01><! <09>!<01>** 
<82>  =
<82>= 1
<82>1<01> <01> <0A> 
0<01>HH<02>3<01>L"
<82>" 8
<82>8 
<82><02><02>4 
<82><01>
<83><01>'
<01><02>'<02><01>+
<01><02>+<01>
<01><02><00> 
<82> 9
<82>9<02><02>E %
<82>% 
<82><02> <02>. 
<82><01>?
<01><02>?<01>
<01><02><00> B
<82>B 
<82><02>Q)<02>
<01> <09> <02>$<01> <01> <0A> <02><>7 
<82><02> /
<82>/<01>
<01><02><01>
<01><02><00><02>D<01>6<01>A
<01><02>A<01>
<01><02><00><02>F<01>2
<01><02>
2<01>
<01><02>
<00><01>G H<>G<01>F I<>F C
<82> C<01>- H<>-<01> I<>L
<82>%`&555555555555555555'()#>/">!>% >>9>8B>">1>=>>:>@C(  ( !<01><12><00>&I\U -P0M]HG?")>&W9C8LO6E3T1A4;J$.!I= 5
F%7_[@N*(V,2RK/: #'`BSDZQ<YX+* __SIM6502__../libwrk/sim6502/localtime.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac
_localtime_mktimeL0004.sizepushaxdecsp4L001Eldaxyspldeaxisteax0spL0005incsp6ldeax0sppusheax
tosumod0ax
tosudiv0ax
tosudiveaxinceaxyCODERODATABSSDATAZEROPAGENULLUzna` iq8<00>%<00> <00><00><00>~s<00><00><00>@<40>۵<8B><02><17>\<5C> .,<01> <09><01> <01><00> <01><00><01><01> <09>  
<82><01> <09><01>
<01><01>
<02> <01> <09><01><01> <09><01> <09><01><01> <01><02><01> <09><01><01><01><01> <09><01>H<01> <09>H<01> <09><01> <01><00> `     
<01><04> -& 34 $. 
%*,2#+ __SIM6502__common/longjmp.s
ca65 V2.15_longjmppopaxspptr1ptr2.size@L1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>g"<00><00><00><00>1w<00><00><00>@<40>۵<8B><02><17>\<5C><06> $!<02><01> <09> <01> <01><01><02> <09><01> <09><01> <01>  <09><01><01><01> <09> <09><01> <09><01><01> <01><01> <09><01> <01><01><01> <09>L
<82>    <02><01><00>
<0E><04> "  $  # __SIM6502__ runtime/lor.s
ca65 V2.15tosor0axtosoreaxaddysp1spsregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>+ 7:V<00>g<00>9<00>@<40>۵<8B><02><17>\<5C>l <02>
<01> <09><01> <01><00><01><01> <09> <01> <09><01><01> <09><01><01><01> <09> L
<82>
      <01><04>
     __SIM6502__runtime/lpop.s
ca65 V2.15popeaxincsp4spsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>Ng.<00><00><00>%x<00><00><00>@<40>۵<8B><02><17>\<5C><06> !<02><01><02><01> <09><01> <01><00>H  
<82><02><01> <01><00><01> <09><01><01> <09><01> <09><01><01><01> <09><01>h<01> <09>`     <03><01><00>  <12><01><00>
<12><04>  " $!
% # __SIM6502__runtime/lpush.s
ca65 V2.15pushl0push0axpusheaxdecsp4spsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>l"<00><00><00><00>;}<00><00><00>@<40>۵<8B><02><17>\<5C><06> %"<02><01> <09><01>
<01><01>
<02>8 <01> <09> <01> <09><01><01><01> <09><01><01><01> <09><01> <09><01> <09><01><01> <01><01><01> <09><01> <01><01><01> <09>L
<82>     
  <02><01><00><12><04>  "& $!
% # __SIM6502__runtime/lrsub.s
ca65 V2.15
tosrsub0ax
tosrsubeaxaddysp1spsregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>j<00><00><00>j o{<00>|@<40>۵<8B><02><17>\<5C><06> <01> <09><01>
<01><00>
<01> <09><01> <01><00><01> <01><01><01> <01><00> <01> <09>`<01> <01><00><01> <01><01> <01> <01><00><01> <09><01> <01><00><01> <09>`
    
   <02><01><00> <0B><04>    
 __SIM6502__runtime/lsave.s
ca65 V2.15saveeaxresteaxsregregsave.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>u<00><00><00><00><00><00>.<00>/@<40>۵<8B><02><17>\<5C> faX<61><06>'"<02><01> <09><01> <01><00>8I<><02>q <09><01>H)<01>I<>
q* <09>*<01><01><01> <09> <01>, <09>,<01># <09>#<01> <01>! <09>!<01>1 <01><00>1<01>$ <01><00>$hL
<82> !",#1$* !<02><01><00><1C><04>2 -")&  $.!
% *(,/ #'+# __SIM6502__runtime/lsub.s
ca65 V2.15 tossub0ax tossubeaxaddysp1spsreg(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq6<00><00>.<00><00><00><00>t<00>@<40>۵<8B><02><17>\<5C>
<06>
1,<02><02>
<01> <09><01> <01><01> <01> <01><00><02>8!I<>q <09><01> <09>H<01>"<01>I<>q <09><01> <09><01><01><01> <09> <01> <09><01> <09><01> <09><01><01> <09><01> <01><01><01> <09><01> <01><01>h`      <03><01><00><14><01><00> <14><04> # -0")&84$.!
*(,2/ #' __SIM6502__runtime/lsubeq.s
ca65 V2.15lsubeq1lsubeqalsubeqsregptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>Vl#<00><00><00>y<00>0<00>1@<40>۵<8B><02><17>\<5C>n<00><02><01># <09># /
<82>/<01>? <09>?<01>T <01><03>T<01> <09><01>Q <01><04>Q G
<82>G<01> <09> <01>5 <01><02>5 
<82><01>V <09>V<01>P <01><01>P`4 S
<83>S<01>E <01><01>E<01> <09> <02>
3<01>LOL<01> <09> + <01><02>+F <09>F<01>((<02><>-<01>: :<02> ><01>
<82><01> <09><01>M.<01>.L\
<01><00><>\<01>,U3U<02>-<02>Y<01>" <09>"<01>< <09><<01><01> <01><03><01>1 <09>1I<>Ii<01>A <09>A<01> <01><02> I<>
i[<01>H <01><02>H<01>W <09>WI<>*i<01>D <09>D<01> <01><01>I<>^i]<01>Z <01><01>ZL@
<01><00>v@ B
<83>B<02>0H<02> <02>& <09>& <01><02>&2 <09>2& <01><01>*!<01>6 <09>6<01>CC<01> <09><01>% <09>%<01>N<01>J<01>J<01>7<01>
<82>HK<01> <09> <01><02>O <09>O <01><01> <01>'<01>'<02>$h<01>9 <09>9<01><01><01>X<01>X<01>= <09>=<01>) <01><04>)` # 6  VPE WDZ2O   5+F1A H%
?T"<9 Q=);;/G<02><01><00>sB8<><01><00>S8_mj<00>|<00>U -P0M<00>lHG<00>oys fW9C8}LOpE<00>tk<00>3<00>T1A4;eJn.!qx<00>5
F<00>7[NarV,2RKvz/:u~ <00>'BS<00>DZQ<YX __SIM6502__ common/ltoa.s
ca65 V2.15_ltoa_ultoapopax__hextab __longminstrsregptr1ptr2ptr3tmp1dopop.sizeultoaL2L1L10L3L5L6L7L9CODERODATABSSDATAZEROPAGENULLUzna` iq<00>c\<00>Ail<00>@<40>۵<8B><02><17>\<5C><06>zs<02>!<01>, <09>,<01> <01><06> 
<01><00> 
<01><00>5<01> <09><01> <01><03>`<01>; <09>;<01>7 <01><01>7<01> <09><01>( <09>(<01> <01><06><01>? <01><00>?<02>&<01> <09> <01>< <09><<01>$<01>/ <09>/<01> <01><03><01>=<01>3 <09>3<01> <09><01>2<01>G <09>G<01>5 <01><06>5L
<82><02>6<01> <01><02><01> <09><01>- <09>-<02> 0 <09>& <01><03>&: <09>:& <01><06> *D&+ <01><02>+& <09>& <09> HA<01> <09><01>. <01><02>.<01> <01><01> <01> <09> <01>) <09>)<01>" <09>"<01>9 <01><00>9<01><01> <09>hC<01>8 <09>8H@<01> <01><02><01> <01><01><01>4 <01><02>4<01> <09><01>F <09>F<01>E <09>E<01>B <09>Bh<01><01>%<01>%<01>1 <09>1`> (?)9F;7 8+.41 <B - "  E
,5:   /3G*<04><01><00>56#<15><01><00>;#<1A><01><00>'#<23><04>#H\U -P]HG?")>& W98LEb3T4; J$^!I= 5F%7_*(V,2RK:#'`SDZQ<YX+ __SIM6502__runtime/ludiv.s
ca65 V2.15
tosudiv0ax
tosudiveaxgetlopudiv32addysp1spsregtmp3tmp4ptr1ptr2ptr3ptr4.sizeL0L1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>/)Xux`<00><00>bwc@<40>۵<8B><02><17>\<5C><06> <02> <01> <09><01> <01><03> 
<82> 
<82><01> <09><01> <09><01> <09> <01>
<01><03>
<01> <09><01> <01><00>` 
  
<02><01><00>  <0C><04>     __SIM6502__runtime/lumod.s
ca65 V2.15
tosumod0ax
tosumodeaxgetlopudiv32sregtmp3tmp4ptr2.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>g"<00><00><00><00>1z<00><00><00>@<40>۵<8B><02><17>\<5C><06> $!<02><01> <09><01>
<01><01>
<02> Q <09> <01> <09><01><01> Q <09> <01><01><01> <09>Q <09><01> <09><01><01> <01><01>Q <09><01> <01><01><01> <09>L
<82>   
 <02><01><00><0F><04> "  ! % __SIM6502__runtime/lxor.s
ca65 V2.15 tosxor0ax tosxoreaxaddysp1spsregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00><00>),<00><00><00><00>+<00>@<40>۵<8B><02><17>\<5C><06>1)<01>*<02><01>` <01>$<02> <01>` <01>0##<02><01>!`<01>$$<02> <01>`<01><01> <02><01>`&<01><01><02><01>`<02><02> `

<B8> <01><00>&<16> <01><00>$<16> <01><00><16>
<01><00>"<16> <01><00>$<13><01><00><13><01><00> <13><01><00>#<13><01><00><13><04>' 0")&98314 .! %7*(2/ '<+ __SIM6502__runtime/makebool.s
ca65 V2.15boolnebooleqboolltboolleboolgtboolgeboolultbooluleboolugtboolugeret1.sizeL0L1CODERODATABSSDATAZEROPAGENULLUzna` iqX<00>"<00> <00><00><00><00><00>K<00>L@<40>۵<8B><02><17>\<5C> !82I<> <01> <09><01>I<><01>
<01><00>
 
<82>H 
<82><01> <09><01> <01><01><02>h"<01> <09> <01><01> <01>% <09>%<01>!!<01><01><01><01># <01><01>#<01><01><01> <01><00><01>$<01>$L
<82><01> <01><01><01>e <09><01><01>` 
%#<01><04>8'0"& 986314 $!5,2 #'+ __SIM6502__common/memchr.s
ca65 V2.15_memchrpopaxreturn0ptr1ptr2L1.sizeL3L2foundnotfoundL9CODERODATABSSDATAZEROPAGENULLUzna` iqj<00>) <00><00><00>xy@<40>۵<8B><02><17>\<5C> 3<4I<><01> <09><01>I<><01> <01><00>  $
<82>$<01> <09><01>" <01><01>" 
<82> <01> <09><01> <01><02><01> <09><02><01> <01>##<01>' <09>'<01> <09><01><01><01><01><01> <01><02><01> <01><01><01><01><01>! <01><00>!<01><01>L&
<82>&<01><02><>%` <02>` 
 !
"
'&$ <01><04>( -HG"& 9CE31A4;!5F@,2:'B<+ __SIM6502__common/memcmp.s
ca65 V2.15_memcmppopaxreturn0ptr1ptr2ptr3.sizeLoop BumpHiCntCompNotEqualGreaterCODERODATABSSDATAZEROPAGENULLUzna` iq<00>.B/qt<00>G<00><00>s<00>@<40>۵<8B><02><17>\<5C>lA= 
<01><00>)<01> <01><00><01><01> <09> <01>" <09>"<01><01> <09> <01>" <09>"<01><01><01><01>' <01><02>'<01>& <01><01>&<01><01> <01> <01>! <09>!<01>))<01> <09><01> <09><01>%<01><01><01>L
<82><01> <09><01> <01><00> 
<82> <01>( <09>(<01> <01><02><02><01> <09><01>$<01> <01><01><01><01> <09> <01> <09>` #!
#& #'(#  <03><01><00>)
<02><01><00><1C><04>*-P0MH?")CLOE1AJ.! 5@N*K/ D+ __SIM6502__common/memcpy.s
ca65 V2.15_memcpymemcpy_upwardsmemcpy_getparamspopaxspptr1ptr2ptr3.sizeL2L1doneL3CODERODATABSSDATAZEROPAGENULLUzna` i<00><<00> <00><00>#<00>;6<00>7@<40>۵<8B><02><17>\<5C> faX<61>faX<61><06>PM 
<82><01>1 <09>1<01>+<01> <01><02><01>  L 
<82> <01> <01><02> e <01><00><01>2 <01><02>2<01>% <01><01>% e <01><00><01>3 <01><01>3<01>9 <09>9<01>))<01> <01> <09><01> <09><01><01><01><01>$ <09>$<01> <09><01> <01><00><01>//<01>" <01><02>"<01> <01><01><01> <01>' <09>'<01> <09><01>4<01>
 <09>
<01>
7 <09>
7<01>
&<01>
 <09>
<01>
7 <09>
7<01>
&<01><01><01>- <09>-<01> <09><01><01>(<01>(L,
<82>,
#9 # %3
# 12$"'
-, <01><04>:? -0M>H?">&E9C8L@631A4 J!I= 5%G@N,2RK/:9#'B<<F+ __SIM6502__common/memmove.s
ca65 V2.15_memmovememcpy_getparamsmemcpy_upwardspopaxptr1ptr2ptr3ptr4tmp1,/home/hugg/compilers/cc65/asminc/generic.mac//home/hugg/compilers/cc65/asminc/longbranch.mac.size@entry PageSizeCopy @copyBytedone @initBase
@copyBytes
@copyEntryCODERODATABSSDATAZEROPAGENULLUzna` kz <00><00>(7:<00> ([h*9i*@<40>۵<8B><02>m<8B>\<5C>CfaX<61>UE<00><02> <01>
<82><01><02><01><02><01> <01>
<82><01> <01>
<82><01><02><01><01><01> <02>"<22><01><01>l <09>$l<01>_<01><01><01><01><01><01> <01>
<82><01><01><01> <01>"<22><01><01> <01>"<22><00><01><01><02><02>L<02><01>
<01><00><02><01><02><01><01>V <01>"<22>V<01>R<01><01><01><01> <01>"<22><01> <01>
<82><01><02><01><02><K <01>
<82><01><01><01> <01>"<22><01><01>; <01>"<22><00>;<01><01> <09>#<01><01><01> <01>"<22><00><01><01><01> <01>#<23><01><01><01> <01>"<22><00><01><01>+ <01>"<22>+<02><01><01><01> <01>"<22><01><01><01><01><01> <01>"<22><00><01><01><01> <01>"<22><01><02><01><01> <01>"<22><01>M<01><01><01><01> <01>"<22><01><01>e<01> <01>"<22><01><01><01>e<01> <01>"<22><00><01><01><01><02><><01><01>|<7C>|<7C>L|<7C>
<01><00>|<7C><01><01> <01>"<22><01><01> <01>"<22><00> <01>
<82><01><02><01><01> <01>"<22><01><01>Q<01><01><01> <01>"<22><01>fe<01> <01>"<22><01>H<01><01><01>et <01>"<22><00>t<01><01>h<01> <01>
<82><01><01><01><01><01> <01>"<22><01><01>r<01><01><01><01> <01>"<22><01> 
<82><02><01><02><<01> =
<82>=<01><01> <01>"<22><01><01><01> <01>"<22><00><01><01>N <09>#N<01>( <01>"<22><00>(<01><01> <01>#<23><01><01>& <01>"<22><00>&<01><01> <01>"<22><01><02>P<01> <01>"<22><01><01><01>* <01>"<22><00>*<01><01> <01>"<22><01><02><01><01><01> <01>"<22><01><01><01><01>`<01><01> <01>"<22><01><01>e<01> <01>"<22><01><01>me<01> <01>"<22><00><01><01><01><02><>y<01><02><03><02><03>L<02><03>
<01><00><02><03><01><01> <01>"<22><01><01><01> <01>"<22><00><01> <01>
<82><01><02><01><01><01> <01>"<22><01><01><01><01>c<01><01> <01>"<22><01><01>e<01> <01>"<22><01>HF<01><01>e<01> <01>"<22><00><01><01><01>h<01> <01>
<82><01><01><01><01>3 <01>"<22>3<01><01><01><01><01><01> <01>"<22><01> <01>
<82><01><02><01><02><01> <01>
<82><01><01><01> <01>"<22><01><01><01> <01>"<22><00><01><01><01> <09>#<01><01><01> <01>"<22><00><01><01><01> <01>#<23><01><01><01> <01>"<22><00><01><01><01> <01>"<22><01><02><01><01><01> <01>"<22><01><01><01><01><01> <01>"<22><00><01><01><01> <01>"<22><01><02><01><01> <01>"<22><01><01>v<01><01><01><01> <01>"<22><01><01>e<01> <01>"<22><01><01><01>e<01> <01>"<22><00><01><01><01><02><><01><02><02><02><02>L<02><02>
<01><00><02><02><01> <01>"<22><01><01> <01>"<22><00><01> <01>
<82><01><02><01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01><01>e <01>"<22> H<01><01><01>ex <01>"<22><00>x<01>ph<01> q
<82>q<02> <01><01>, <01>"<22>,<01>b<01> <01><01> <01>"<22><01> <01>
<82><01><02><01><02>  <01>
<82><01><01>Z <01>"<22>Z<01><01> <01>"<22><00><01><01><01> <09>#<01><01><01> <01>"<22><00><01><01>- <01>#<23>-<01><01> <01>"<22><00><01><01><01> <01>"<22><01><02><01><01>B <01>"<22>B<01><01><01><01> <01>"<22><00><01><01>O <01>"<22>O<02> <01><01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01>]e<01> <01>"<22><01><01><01>e<01> <01>"<22><00><01><01><01><02><><01><01><02><02><02><02>L<02><02>
<01><00><02><02><01>" <01>"<22>"<01><01> <01>"<22><00><01> <01>
<82><01><02> <01><01><01> <01>"<22><01><01><<01><01><01><01> <01>"<22><01><01>e<01> <01>"<22><01>H<01><01><01>e<01> <01>"<22><00><01><01><01>h<01> 
<82><01><01><01><01> <01>"<22><01><01>W<01>%<01>k <01>"<22>k<02><01><01><01>)<01><02><01><01>%<01><02> <01><01><01> <01>"<22><01><01><01><01><01><01> <01>"<22><01><01> <09> <01><01>u <01> <20>u<02>l<01><01>e<01> <09> <01>H<01><02><01>e<01> <01> <20><01><01>{h<01> <01>
<01><00><><01><01><01><01><01><01><02><01><02>LL<01>
<01><00><><01><02> <01><01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01><01><01> <09> <01><01><01><01>i<01> I<><01><01><01> <01> <20><01><01><01> H<><01><01>} <09> }<02><01><02>E 0
<82>0<02>Y<01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01> <01>
<82><01><02><01> <01>
<82><01> <01>
<82><01>0<01>O<01><01><01>M<01><02> <01><01><01> <01>"<22><01><01><01><01>/<01><01> <01>"<22><01><02><01><01><01><01><02> <01><01>^^<01>5<01> <01>"<22><01><01><01><01> <01>"<22><01><02> <01><01><01> <01>"<22><01><01><01>L>
<01><00>><01><01><01><01> <01>"<22><01><01><01><01><01><01> <01>"<22> <01>
<82><01><01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01><01><01> <01>"<22><01><01><01> <01>"<22><00><01> <01>
<82><01><02><01><01> <01>"<22><01><01><01><01><01><01> <01>"<22><01>8<01><02><01><01>X <09>$XH<01><01><01><01>'<01><01> <09>$<01><01><01>h<01><01><01>L<01>
<01><00>,<01><01><01> <01>"<22><01><01><01> <01>"<22><00><01> <01>
<82><01><02> <01><01><01> <01>"<22><01><01>7<01><01><01><01> <01>"<22><01> <01>
<82><01>.i<01> H<01><01> <01><01><01><01>i<01> I<01><01> <01><01><01><01><01> <01>
<82><01><02><01><01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01> <01>
<82><01> <01>
<82><01><02>h <01>
<82><01><02> <01><01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01><02><01><01><01><02><01>p<01><01>I<>
<01>/<01><02> <01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01><01><01> <09> <01><01><01> <01> <20><01><02>l <01>e) <09> )H<01><02><01>e<01> <01> <20><01><01><01>h<01> <01>
<01><00><><01><01><01><01><01><01><02>\<01>2 <01>"<22>2<01><01><01><01><01><01> <01>"<22><01> @
<82>@<01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01><02> <01><01><01> <01>"<22><01><01>T<01><01><01>j <01>"<22>j<02>F<01> <01>
<82><01> <01>
<82><01><02><01><02>m<01> <01>
<82><01><01><01> <09> <01><01><01> <01> <20><01><02> <01><01><01> <01>"<22><01><01><01><01><01><01><01> <01>"<22><01><02>E<01> 
<82> <01>
<82><01><01>e<01> <09> <01>H<01><01><01>e<01> <01> <20><01><01><01>h<01> <01>
<82><01><02><01><01><01> <01>"<22><01><01><01><01><01><01> <01>"<22>  <01>
<82><01> ?
<82>?<01><01> <01>"<22><01><01><01> <01>"<22><00><01> g
<82>g<02><01> <01>
<82><01> <01>
<82><01> <01>
<82><01><02>o <01>
<82> <01><02> I $
<82>$<01><01> <01>"<22><01><01> <01>"<22><00> [
<82>[<02><01><01><01><02>i <01>
<82><01> <01>
<82> <01> !
<82> ! <01>
<82>
<01><02>Q<01><02><01><01><01> <09>#<01><02><01><01><01> <01>#<23><01><02><><01> <01>
<82> <01> <01>
<82>
<01><02>a<01><01> <01>"<22><01><01><01><01><01><01> <01>"<22><01> <01>
<82> <01> <01>
<82>
<01><02><01><02><01> <01>
<82><01> <01>
<82><01> 8
<82>
8<02><01><01>9 <01>"<22>9<01><01><01><01><01>6 <01>"<22>6 <01>
<82><01><02><<01> <01>
<82><01> <01>
<82> <01> <01>
<82><01> <01>
<82>
<01><02><01><01> <01>"<22><01><01><01><01><01>J <01>"<22>J <01>
<82> <01> <01>
<82><01>L<01>
<01><00><><01><02><><01><01><01> <09>#<01><01><01> <01>#<23><01><01><01>H<01><01><01> <09>!<01><02> <01><02><01><01><01> <09>$<01><01>H <01>"<22>H<01><01><01>U<01><01><01><01><01> <09>!<01>hA<02>
<01>L<01>
<82><01> :
<82>:<02><01><01><01> <09>$<01><02>G)<01><01>z/z <01>
<82><01><02>d<01> <01>
<82><01><02><01><01><01><01><02><01><01><01><01> <01>
<82><01><02><01><02><><01> <01>
<82><01><02>D<01><01><01><02><01><01>ss<02><01><01>L
<82><02><01><02><01>L<01>
<82><01><01><01>Lw
<82>w<>F$~<01><01><01><01> <01><01>C<01><01><01>;dZ<01>x<01><02><01><02>n<02><01><02><01>e0<01>N<01>GHIJ%D<01><00>wB<01><01>3<01><01>?<01><02><02><01>:=<01><01>:<01><01>9<01><03><01><01>8<01><01>7<01><01>6<01><05><01><04>8<>5<01>!<21><04><02>4<01><01>3<01><01>2<01><01>1<01>?0<01><01>/<01><01>.<01><02>+<01><01>*<01><02><03>)<01><01>(<01><01>'<01><02>@#<01><01>"<01><02><03>!<01>0<01><07><03>q<07>$<24><01><02><01><01><01><01><12><02><03><1E><01><03><02><03><02><01><04><04><01>g<>[<5B><01><04>=<3D><01> 4<0F>u<><01><01><02>}<7D><03>)<29><03><03><02><02> 4<02><01><01><02><01><02><01>V<><02>;<3B><03>+<2B><01><04><18><02><03><03><0E><01><02>t<><02><04><01>(&<26>*<2A><02><02><04><04><04><04><01><02><03><03>3<><03><01><03><03><01><01><03><02><01><03><03><01><><02><02> x,<2C>Z<><02><01><01>B<>O<><02><03><01>"<22><03><03><02><03><04>k<><01><02><02><04><04><04><11><03><03><06><02><01><02><16><01><01><02><04><01><02><02><04><04><04>2<><01><04><01>j<><01><03> <20><03><03><1A><01>96JH<01> <0C><04>N<><01><01><03>-<2D><02><04><03><01><05>lX<6C><03><01><13><00><01><01><00><04><00><00><00><00><00><00><00><00><00><00><00>h<00><00>m<00><00><00><00>\j<00><00><00><00>|<00><00><00><00><00><00><00><00><00><00><00><00>U<00><00><00><00><00><00><00> <00><00><00><00><00><00>P<00><00><00><00><00><00><00><00><00><00><00><00><00>M<00>]<00><00><00>lH<00><00>G<00><00><00><00><00><00><00><00>?<00><00><00><00>")o<00><00><00><00><00>><00>&<00><00><00>y<00>s<00><00><00><00><00><00><00>f<00><00><00><00><00>W<00><00><00><00><00><00><00><00><00><00>9<00>C<00><00><00><00><00><00>8<00><00><00><00><00>}<00><00>L<00><00><00><00><00><00><00><00>O<00><00><00>p<00><00><00><00><00><00><00>E<00><00><00><00><00><00><00><00><00>g<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>t<00>bk<00><00><00><00><00><00><00><00><00><00>3<00><00><00><00><00><00><00><00>T<00><00><00><00>A<00><00><00><00>;<00><00><00><00><00>e<00><00><00><00>J<00><00><00><00><00>n$<00><00><00><00><00><00><00><00><00><00><00>^!<00>i<00><00>5<00><00><00><00><00><00><00>q<00><00>I<00><00><00><00><00><00><00><00><00><00><00>d<00><00><00><00><00>1<00><00><00><00>x<00><00><00><00><00>=<00> <00><00><00><00><00><00>
<00><00>F<00><00><00><00><00><00><00><00><00>%7<00><00><00><00><00><00><00><00><00>_<00><00> [@<00><00>N<00><00><00>*<00><00><00><00><00><00>(<00><00><00><00><00><00><00><00><00><00>a<00><00><00><00>r<00><00>3<00><00><00><00>V<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>4<00><00>w<00><00><00><00><00><00><00><00><00>cRK<00><00><00><00>v<00>z<00><00><00><00><00><00><00><00><00><00><00>:<00>u<00><00><00>~<00><00><00><00><00><00><00><00><00><00><00><00> <00><00>#<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>'<00><00><00><00><00>`<00><00><00><00><00>BS<00><00><00>D<00><00><00><00><00><00><00><00><00><00><00><00>Z<00><00><00>{<00><00><00><00><00><00><00><00><00>Q<<00><00><00><00><00><00><00><00><00><00><00><00><00>YX.<00><00><00>+<00>K __SIM6502__../libwrk/sim6502/mktime.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_div_mktime _MonthLength.size
_MonthDayspushaxregswap2decsp4L002AL002E staxspidxL0093L005B _IsLeapYearL0096staxyspldaxysptosicmpL004EL0069L009Dincax1aslax1pushwtosaddaxdecax1L0079L0077decaxy tosumulaxshrax2stax0spincax4 tosumoda0ldax0spaxulongpusheax
tosumuleax
tosumul0ax tosaddeax tosumula0L0029L0090addyspL009Epushw0spL0022L00A3 tosumodaxL00A2incsp2CODERODATABSSDATAZEROPAGENULLUzna` iq<00> %BEQ<00><00>D@<40>۵<8B><02><17>\<5C>] <02>  
<82> 
<82><01> <09><01> <01><01>$ <09>L
<82>` 
 <02><01><00>
 <0B><04>   $
%  __SIM6502__ runtime/mod.s
ca65 V2.15tosmoda0tosmodaxpopsargsudiv16negaxptr1tmp1.sizePosCODERODATABSSDATAZEROPAGENULLUzna` ix<00>rR<00><00><00><00><00> <00>b<00>c@<40>۵<8B>faX<61>, <0A><17>\<5C><k<00>}<01>l
<83>l<01>7 <09>7<01>s
<01><02>s<01>3 <01><02>3<02><01><01>i <09>i<01>
<83> <01>]<01>yM<01>M<02>:<01>m H<>m<01> <09><01><01>a I<>a<01>T <09>T<02>{<01>6
<01><02>6<02><01><02>L<01> <01>
<01><00>w<01> ,
<01><00>w,<02><01><01><01><01><01> w
<01><00>ww <01>
<82><01><02>0c<01>S <09>S<02> )<01>; <09>; Z
<01><00>Z<01> <09> F
<01><00>F<01> <09><01> <09>U<01>U,<01>
<01><03>$<01>P%% D
<01><00>dD f
<83>f<01>#<01><01> <01>,J
<01><03>$J<01><01><02>L <01>B
<01><03>!B`
<02>`v<01><01>
<01><03>!<01>`n<02><01><02>!L<01>
<82><01><01><01> <09><01><01>1
<83>1<01>/<01>N`e<01>< <09><<01><01> <09><01><01> <09><01><01> <09><01><01><01> <09><01>`z,2
<01><03>$2>> <01>
<01><00>j<01> -
<01><03>- <01>
<01><00>j<01><02>A<01>
<83><01><01>
<01><02><01><01>X`<01>lm<01>o<01>u<01><01>m * P<>n%L<01>
<82><01>L
<82>L_
<82>_L
<82>L<01>
<82><01>L<01>
<82><01>LY
<82>YL
<82>L<01>
<82><01>LW
<82>WLr
<82>r`"""<01>op hS<13>
h;<05> h73iT<><01>h<VmaV<01>V<01>V <0B>_<04><01>Y<1E>Wr<11>]<01><03>r<00>\<01><03>W<00>[<01><03><01><00>Z<01><03><00>Y<01><03>Y<00>X<01><03><01><00>W<01><03> <01><00>V<01><03> <00>U<01><03>_<00>T<01><03>-<2D>S<><01>f<>R<01><00><>p<00>G<01><00><>K<00>F<>O<00>C<01><02>P6<>B<>*ls<08><01>F <01><03>!"&B<><00><<00><00><00>mj/<00>-<00><00><00>? U<00><00>Y<00><00>jlH<00>G?<00>c"B ><00>&y<00>s <00>F f= W<00>X<00>H <00><00>8u<00>O6<00><00>Eg<00>E <00>D a<00><00>O tA k<00>;<00><00><00>TA<00>4G <00>eJn$<00>!i9:<00><00>+I<00>d<00><00>xz=<00><00>5F<00><00><00>{%7<00>K<00>_<00>@<00>N<00>_2U ,<00>rdV> <00><00><00>@ c<00><00><00>tzb<00>.Q W <00><00>I<00>` #<00><00>J'<00>e<00>M <00>S<00>0<00><00><00><00><00><<00><00><00>S <00>YX<00>+C q __SIM6502__mouse/mouse-kernel.s
ca65 V2.15return0popsregincsp2 mouse_librefsregptr1tmp1tmp2 mouse_irq1/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctl mouse_vectors mouse_flags mouse_sig@L0inv_drv@L1copyjv@L2copycb@L3 install_irq uninstall_irqExitCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40>۵<8B>faX<61><04><17>\<5C><UVWXYZQG$<01>E<>$W<<00><00><00>/-? <00><00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00> 9:<00><00>+<00><00>z<00><00><00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C [ __SIM6502__mouse/mouse_buttons.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40>۵<8B>faX<61><04><17>\<5C><UVWXYZO+<01>C<>W<<00><00><00>/-? <00> <00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00>9:<00><00>+<00><00>z<00><00><00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C [ __SIM6502__mouse/mouse_getbox.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlCODERODATABSSDATAZEROPAGENULLUzna` ix<00> (+g<00>%<00>*<00>@<40>۵<8B>faX<61> <04><17>\<5C><p`<01>??<01>!!<01>QQ<01>7<01>% I<01><01>%<01> H<01><01>y
<83><01>))<01>0`Ga<00>5 `03?DXkdNo errorHHNo driveqr availaqbleqqCannot lPoad drivPerPPInvalid  driver  Mouse ha4rdware n4ot found44Invalid Yioctl coYdeYYUnknown errorbcde<01>?<3F>
s<<00><00><00>/-? <00> <00>-Y0j<00><00>c")B &<00><00>F = XH u<00><00><00>E D aO A <00>;<00>1G <00>$.!9:<00><00>+<00><00>z <00><00><00>{%<00>K*<00>_2U ,d> ,@ <00><00><00>tb./Q W <00>I<00>`#<00><00>J'<00>eM <00>0<00><00><00><00><00>S <00>+C f __SIM6502__mouse/mouse_geterrormsg.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlL1msgtaboffsL2msg0msg1msg2msg3msg4msg5msg6CODERODATABSSDATAZEROPAGENULLUzna` ixj<00><00> <00><00><00><00><00><00><00><00>@<40>۵<8B>faX<61><04><17>\<5C><3V  <01>?
<82>?<01>)) 
<82><01>
<82>`WXYZ[L:B?<01>@<40> 1]<<00><00><00>/-? <00><00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00>9:<00><00>+<00><00>z <00><00><00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C \ __SIM6502__mouse/mouse_hide.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctl@L1CODERODATABSSDATAZEROPAGENULLUzna` ixa<00><00> <00><00><00><00><00><00><00><00>@<40>۵<8B>faX<61><05><17>\<5C><*V<01> <09><01>? <01><01>?L(
<82>(WXYZ[T(0?<01>H<>&]<<00><00><00>/-? <00><00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00> 9:<00><00>+<00><00>z<00><00><00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C \ __SIM6502__mouse/mouse_info.s
ca65 V2.15ptr11/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlCODERODATABSSDATAZEROPAGENULLUzna` ixk<00><00> <00><00><00>@<40>۵<8B>faX<61><06><17>\<5C><4W
<01> <09><01> <01><01> 
<82>L
<82>XYZ[\VC 4<01>J<>
@_<<00><00><00>/-? <00> <00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00>9:<00><00>+<00><00>z<00><00>
<00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C ] __SIM6502__mouse/mouse_ioctl.s
ca65 V2.15popaptr11/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlCODERODATABSSDATAZEROPAGENULLUzna` i<00><00>N<00> <00><00>X3u<00> <00><00> @<40>۵<8B>faX<61><04><17>\<5C><UfaX<61>dfaX<61><06>yZD i
<82>i<01>O
<82> O <01>
<01> <0B><01><01> G
<82> G<01>dd /
<82>/<02>, <01>
<82><01><01>J
<01><03>J<01><01>
<01><03><00><01><01>g0I1I<01>a H<>a<01> I<> 
<82>HZ<01>h
<01><03>h<01>7
<01><03><00>7 
<82>h <01>rr<01>
<01><03><01>
<01><03><00> P
<82>
P<01>A<01>{{H<01>Q
<82> Q<01>
<01> <0B> B
<82>B 
<82>h<02>N`! ?
<82>?<01><01><01><01><01><01>`xz{|

<82>y  X  <01>}~ t.s:yrS<01>qw?p4/o^i]3B\vI6>_G=P9kO<>Q<01>;<3B>Z#<00><<00><00><00>hm\j /-? UG<00><00>PY0]jlH<00>G 3<00>coB &yH<00><00>F = 4X9H 8uKIB1<00>O<00><00>E D aO tA bk<00>;<00>/1A;G <00>n.^i9:<00> <00>+I<00><00>z <00><00>F<00>{7<00>K@N*F<00>_2U ,dV> 2<w@ c<00><00><00>tvb./:uQ W <00>I<00>`<00><00>0J<00>eM <00>0<00><00>{<00><<00><00>S J<00>C  __SIM6502__mouse/mouse_load.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctl,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCLpushaxpusha0incsp2_open_read_closectrl@L1@L3@L2CODERODATABSSDATAZEROPAGENULLUzna` ixQ<00> <00> <00><00><00><00><00><00><00><00>@<40>۵<8B>faX<61><06><17>\<5C><W 
<82>L
<82>XYZ[\R(<01>F<>]<<00><00><00>/-? <00><00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00> 9:<00><00>+<00><00>z <00><00><00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C ] __SIM6502__mouse/mouse_move.s
ca65 V2.15incsp2ptr11/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlCODERODATABSSDATAZEROPAGENULLUzna` ixa<00><00> <00><00><00><00><00><00><00><00>@<40>۵<8B>faX<61><05><17>\<5C><*V<01> <09><01>? <01><01>?L(
<82>(WXYZ[SV(0?<01>G<>&]<<00><00><00>/-? <00><00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00> 9:<00><00>+<00><00>z<00><00><00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C \ __SIM6502__mouse/mouse_pos.s
ca65 V2.15ptr11/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40>۵<8B>faX<61><04><17>\<5C><UVWXYZNK<01>B<>KW<<00><00><00>/-? <00><00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00>9:<00><00>+<00><00>z<00><00><00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C [ __SIM6502__mouse/mouse_setbox.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctlCODERODATABSSDATAZEROPAGENULLUzna` ixt<00><00> <00><00><00><00>@<40>۵<8B>faX<61><04><17>\<5C><=V <01>'
<82>'<01>11<01>
<82><01>@@L)
<82>)`WXYZ[M,):C'<01>A<>4^<<00><00><00>/-? <00><00>Yj<00><00>cB <00><00>F = XH u<00><00><00>E D aO A <00>;<00>G <00> 9:<00><00>+<00><00>z <00><00>
<00>{<00>K<00>_2U ,d> @ <00><00><00>tb.Q W <00>I<00>`<00><00>J<00>eM <00>0<00><00><00><00><00>S <00>C \ __SIM6502__mouse/mouse_show.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctl@L1CODERODATABSSDATAZEROPAGENULLUzna` i<00><W be{<00><00><00>d<00>@<40>۵<8B>faX<61><04><17>\<5C><UfaX<61><06>f<01>8
<82>8H) 
<01><03> <01><01>
<01><03>H- G
<82>Gh<01>bhS 
<82>L<
<82><<01>ah6<02>`cghijkd <]$>AG9I8 <01><<3C>Rw<<00><00><00>/-? G<00> <00>Yj<00>3<00>c"B H<00><00>F = 4XH uKIB1<00><00><00>E D aO A <00>;<00>/G <00>!9:<00><00>+<00><00>z<00><00><00>{<00>KF<00>_2U ,d> 2<@ <00><00><00>tb.Q W <00>I<00>` #<00><00>0J<00>eM <00>0<00><00><00><00><00>S J<00>C l __SIM6502__mouse/mouse_unload.s
ca65 V2.151/home/hugg/compilers/cc65/asminc/mouse-kernel.inc MOUSE_ERR_OKMOUSE_ERR_NO_DRIVERMOUSE_ERR_CANNOT_LOADMOUSE_ERR_INV_DRIVERMOUSE_ERR_NO_DEVICEMOUSE_ERR_INV_IOCTLMOUSE_ERR_COUNT MOUSE_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLHIDESHOWSETBOXGETBOXMOVEBUTTONSPOSINFOIOCTLIRQFLAGS CALLBACKSCHIDECSHOWCPREPCDRAWCMOVEXCMOVEYMOUSE_CALLBACKSPREPDRAWMOVEXMOVEYMOUSE_API_VERSIONMOUSE_FLAG_EARLY_IRQMOUSE_FLAG_LATE_IRQMOUSE_BTN_LEFTMOUSE_BTN_RIGHT MOUSE_POSXCOORDYCOORD
MOUSE_INFO MOUSE_BOXMINXMINYMAXXMAXY
_mouse_drv _mouse_hidden_mouse_load_driver _mouse_unload_mouse_install_mouse_uninstall_mouse_geterrormsg _mouse_hide _mouse_show _mouse_setbox _mouse_getbox _mouse_move_mouse_buttons
_mouse_pos _mouse_info _mouse_ioctl_mouse_clear_ptr mouse_installmouse_uninstall
mouse_hide
mouse_show mouse_setbox mouse_getbox
mouse_move mouse_buttons mouse_pos
mouse_info mouse_ioctl,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEMreturn0 no_driverCODERODATABSSDATAZEROPAGENULLUzna` iq<00>5E\_<00>A<00><00>^<00>@<40>۵<8B><02><17>\<5C>hE?<01> <09><01><01> . <01> <01><00> 
<82><02>)<01>& <01><02>&<01>&<01> <09><02>F( <01><00>(f <09><01>
e! <09>!H
<01>*e$ <09>$<01> <09>h#f% <09>%jf <01><00>f' <09>'<01><01><01><01> <09><01> <01><00>`L
<82> <01> <09> <01> <09><01>" <09>"<01> <01><00><01>+ <09>+<02>L,
<82>,  ('+
 $%  &! " , <02><05><18><04>--0?")>& 9CE31A4$.!5
%@*(,/ 'BD __SIM6502__ runtime/mul.s
ca65 V2.15 tosumulaxtosmulaxmul8x16mul8x16apopsregsregtmp1ptr4.size@L3@L4@L0@L1CODERODATABSSDATAZEROPAGENULLUzna` iqp<00>99<<00><00><00>;<00>@<40>۵<8B><02><17>\<5C> 9:7<01> <09>  
<82><02><02><01> <01><01> <01>))<01>& <01><00>&F <09><01>
*e% <09>%H<01>e' <01><00>'<01> <01><00>hf( <01><00>(j"f <09><01>!<01>,<01>,<01>#<01> <09>`F <09><01> e <09>j f
<09>
<01>$<01><01><01>+<01> <09>`
 &'(
  % <04><01><00> <1A><01><00><1A><05><14><04>--?")> 98634;$.!=5
%7*(,: #'<+ __SIM6502__runtime/mul8.s
ca65 V2.15 tosumula0tosmula0mul8x16mul8x16apopsregsregptr4.sizemul8x8@L0@L1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>  ,/[<00>_<00>.<00>@<40>۵<8B><02><17>\<5C>m<01> <09> <01> <01><00> 
& <01><00> e <09>H<01>e <01><00><01>h` 
    <01><04>
  
 __SIM6502__runtime/mulax3.s
ca65 V2.15mulax3ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>* 6 BEe<00>_ D
@<40>۵<8B><02><17>\<5C><06><01> <09> <01> <01><00>
& <01><00>
 & <01><00>e <09>H<01>e <01><00><01>h` 
    <01><04>
  
 __SIM6502__runtime/mulax5.s
ca65 V2.15mulax5ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>E R ^at<00>_4`5@<40>۵<8B><02><17>\<5C><06><01> <09><01> <01><00>
& <01><00> 
 & <01><00>
& <01><00>8
<01> <09> H<01>I<>e <01><00><01>h` 
    <01><04>  !  __SIM6502__runtime/mulax7.s
ca65 V2.15mulax7ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>? L X[o<00>_)Z*@<40>۵<8B><02><17>\<5C><06><01> <09><01> <01><00> 
& <01><00> 

& <01><00>
& <01><00> e <09> H<01>e <01><00><01>h` 
    <01><04>     __SIM6502__runtime/mulax9.s
ca65 V2.15mulax9ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqs<00><00> <00><00>B6V<00><00><00>@<40>۵<8B><02><17>\<5C><
I<> iH<01>
I<>i <01> h` 
 <01><04>    
 __SIM6502__ runtime/neg.s
ca65 V2.15negax.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>-0V<00>o<00>/<00>@<40>۵<8B><02><17>\<5C>S
<02>
<02> <09><01> <09> <01><01> <09><01><01> <09>L
<82>       <02><01><00> <0B><04>     __SIM6502__ runtime/or.s
ca65 V2.15tosora0tosoraxaddysp1sptmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>#$AD<00><00>bQCR@<40>۵<8B><02><17>\<5C> sJ1<01>
<01><03>m
<01><03><01>
<01><03>m
<01><03><01>
<01><03>m
<01><03><01>
<01><03><01>
<01><03>i'<01>!
<01><03>!<01>
<01><03>iY<01>
<01><03><01>
<01><03>iA<01>
<01><03> )<01>
<01>
<01><03> i1<01>
<01><03> `<01>
<01><03><01>
<01><03><02> <01>
<01><03> <01>
<01><03>` 
   <02><01><00>;<0E><04>"-0")>&96314;$.!=5%7@*(,2/: #'<+ __SIM6502__ common/rand.s
ca65 V2.15_rand_srandrand.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>25[<00>u4@<40>۵<8B><02><17>\<5C>X
<02>
<02>8<01> <09><01> <09><01><01> <01> <09><01><01> <09>L
<82>    <02><01><00> <09><04>   __SIM6502__runtime/rsub.s
ca65 V2.15 tosrsuba0 tosrsubaxaddysp1sptmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>  ,/e<00>{.@<40>۵<8B><02><17>\<5C>]
<01> <09><01> <01><01>  
<82> 
<82><01><02> <01> <09><01><01> <09>`     <01><04> 
 " 
 # __SIM6502__conio/scrsize.s
ca65 V2.15 _screensizepopsreg
screensizeptr1sreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` in<00>$<00><00><00>A%<00><00> <00><00> @<40>۵<8B>faX<61><08><17>\<5C>4]faX<61><06>r]F<01><01>
<83><01><01> <09><01>?
<01><02>?<01>w <01><00>w<02>1<01>_ <09>_<01>,
<83>,<01>)+)<01><01>B<01>B<02><01>d H<>d<01>A <09>A<01><01><01>* I<>*<01><01> <09><01><02><02>R<01>E ~
<01><00>C~ .
<01><00>C.<02><01>f<01>f 
<83> <01>}
<01><03><00>}<01><01><01><02>L=<01>
<01><03>
`t<02>c<02>`<01>p <09>p<01>;
<83>;<01>|<01>T`D F
<01><03>F<02>`2<01>P
<01><03>P<02>9<01><01>
<83><01><01><01>
<01><02><01><01>X`!ss]e]r]]
t &kuL
<82>L<01>
<82><01>L{
<82>{L
<82> LO
<82>OL
<82>L<01>
<82><01>L<01>
<82><01>`LLLvwYw_A<5F>pGd*G<01>{ O<04><01> <0A>\<01><00>S#<00>U<01><00>K<00>T<>I<00>Q<01><03><01><00>P<01><03><01><00>O<01><03><00>N<01><03> O<00>M<01><03>  <00>L<01><03>{<00>K<01><03><01>F<>J<> <0B>I<>&<04>?<3F><01><01>\<01><03>L$}
P<00><<00><00>ym\/ - UPYhlp0M][HN?3<00><00>cB)(y<00>s FPX9C+8)L(16p<00>E-DaOt}b<00>T/1ZA;GeJn<00>.6.!<00>gq+I<00>d4 x<00>x<00>i~%f75m<00>[@*N*<00>q<00>_2 rU, a1 T,V]|22w\cRKtvb. /:uQ^W<00><00>` s<00>50<00>MBSDV0 <00><00>ZRSC3 x __SIM6502__serial/ser-kernel.s
ca65 V2.15return0
ser_librefptr1ser_irq//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctl_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptr./home/hugg/compilers/cc65/asminc/ser-error.inc
SER_ERR_OKSER_ERR_NO_DRIVERSER_ERR_CANNOT_LOADSER_ERR_INV_DRIVERSER_ERR_NO_DEVICESER_ERR_BAUD_UNAVAILSER_ERR_NO_DATASER_ERR_OVERFLOWSER_ERR_INIT_FAILEDSER_ERR_INV_IOCTLSER_ERR_INSTALLEDSER_ERR_NOT_OPEN SER_ERR_COUNT ser_vectorsser_sig@L0inv_drv@L1copy@L2CODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00>><00><00><00>@<40>۵<8B>faX<61><04><17>\<5C>4Z[\]^_I,<01>T<>,W<<00><00>y/ - Yhlp[N<00><00>cB)<00>FPX(<00><00>EDaO}<00>ZG<00>6<00>g+<00>4 x<00><00>
i~f5m<00>*<00>q<00>_2 rU, 1 T]|w\tb. Q^W<00><00>`s<00><00>MV0 <00><00>RSC3 ` __SIM6502__serial/ser_close.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` ixa<00><00> <00><00><00><00>A<00>@<40>۵<8B>faX<61><05><17>\<5C>4*[<01> <09><01> <01><01>L
<82>\]^_`KS1<01>V<>E]<<00><00>y/ - Yhlp[N<00><00>cB)<00>FPX(<00><00>EDaO}<00>ZG<00>6<00>g+<00>4 x<00><00>
i~f5m<00>*<00>q<00>_2 rU, 1 T]|w\tb. Q^W<00><00>`s<00><00>MV0 <00><00>RSC3 a __SIM6502__serial/ser_get.s
ca65 V2.15ptr1//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` ixk<00><00> <00><00>H?@@<40>۵<8B>faX<61><06><17>\<5C>44\
<01>+ <09>+<01> <01><01> 
<82>L
<82>]^_`aO>+2<01>Z<>
_<<00><00>y/ - Yhlp[N<00><00>cB)<00> FPX(<00><00>EDaO}<00>ZG<00>6<00>g+<00>4 x<00><00>i~f5m<00>*<00>q<00>_2 rU, 1 T]|w\tb. Q^W<00><00>`s<00><00>MV0 <00><00>RSC3 b __SIM6502__serial/ser_ioctl.s
ca65 V2.15popaptr1//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` i$<00> <00>J<00> <00><00><00>{<00>_ <00>` @<40>۵<8B>faX<61><04><17>\<5C>4ZfaX<61>hfaX<61>wfaX<61><06><00>ZE<01><01>
<82> <01><01><01><01><01>
<01> <09> <01>RR<01><01>
<01><01>I :
<82>:<01>ii 3
<82>3<02>- <01>
<82><01><01>N
<01><03>N<01><01>
<01><03><00><01><01>m0M1M<01>e H<>e<01> I<> 
<82>H]<01>o
<01><03>o<01>9
<01><03><00>9 
<82> h <01>}}<01>
<01><03><01>
<01><03><00> U
<82>U<01>G<01><01><01>H<01>W
<82> W<01>
<01> <09> H
<82>H 
<82>h<02>P`!<01>((<02>E`<01><00><00><00>

<82><01>  [  <01><00><00>
<02>0 <02>><01><02>Y<01><02>63<02>c:p<01>Ho2Y^QaUE<01><04> W<01>O<>Z%<00><<00><00>hym\j/ - U-PYhKlp0][lHNG3<00><00>coB)(&y<00>sFP X92+<8J)(1O6<00><00>E-DaGOt}bk<00>/ZA;Gn<00>.6.^ i<00>g+I<00>4 x<00>0 <00>Fi~f75m<00>@*N*<00>q1<00>_2 rU, 1 T,V]|,I2ww\ctb. /H/:uQ^W<00><00>4`s<00>50<00>M3VB0 <00><00>R< FS+C3 <00> __SIM6502__serial/ser_load.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptr./home/hugg/compilers/cc65/asminc/ser-error.inc
SER_ERR_OKSER_ERR_NO_DRIVERSER_ERR_CANNOT_LOADSER_ERR_INV_DRIVERSER_ERR_NO_DEVICESER_ERR_BAUD_UNAVAILSER_ERR_NO_DATASER_ERR_OVERFLOWSER_ERR_INIT_FAILEDSER_ERR_INV_IOCTLSER_ERR_INSTALLEDSER_ERR_NOT_OPEN SER_ERR_COUNT,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCLpushaxpusha0incsp2_open_read_closectrl@L0@L1@L4@L3@L2CODERODATABSSDATAZEROPAGENULLUzna` ixa<00><00> <00><00><00><00>B<00> @<40>۵<8B>faX<61><05><17>\<5C>4*[<01> <09><01> <01><01>L
<82>\]^_`IQ<01>T<>D]<<00><00>y/ - Yhlp[N<00><00>cB)<00> FPX(<00><00>EDaO}<00>ZG<00>6<00>g+<00>4 x<00><00>i~f5m<00>*<00>q<00>_2 rU, 1 T]|w\tb. Q^W<00><00>`s<00><00>MV0 <00><00>RSC3 a __SIM6502__serial/ser_open.s
ca65 V2.15ptr1//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><<00><00><00>@<40>۵<8B>faX<61><04><17>\<5C>4Z[\]^_KH+<01>V<>+W<<00><00>y/ - Yhlp[N<00><00>cB)<00>FPX(<00><00>EDaO}<00>ZG<00>6<00>g+<00>4 x<00> <00>i~f5m<00>*<00>q<00>_2 rU, 1 T]|w\tb. Q^W<00><00>`s<00><00>MV0 <00><00>RSC3 ` __SIM6502__serial/ser_put.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` ixa<00><00> <00><00><00><00>D!<00>"@<40>۵<8B>faX<61><05><17>\<5C>4*[<01>E <09>E<01>( <01><01>(L
<82>\]^_`M"/E(<01>X<>0]<<00><00>y/ - Yhlp[N<00><00>cB)<00>FPX(<00><00>EDaO}<00>ZG<00>6<00>g+<00>4 x<00> <00>i~f5m<00>*<00>q<00>_2 rU, 1 T]|w\tb. Q^W<00><00>`s<00><00>MV0 <00><00>RSC3 a __SIM6502__serial/ser_status.s
ca65 V2.15ptr1//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptrCODERODATABSSDATAZEROPAGENULLUzna` i<00><00>C^ il<00>8U
kV
@<40>۵<8B>faX<61><04><17>\<5C>4ZfaX<61>hfaX<61><06>z<01>!
<82>!H 
<01><03><01>//<01>6
<01><03>6HP 
<82>he<01>
h@ 
<82>Ly
<82>y<01>hr<02>:`K{|}~xGyp|RE!6<01>P<>*<00><<00><00>y/ - YhKlp[N3<00><00>c"B)(<00>FPX2+<J)(1<00><00>E-DaGO}<00>/ZG <00>$6.!<00>g+<00>4 x<00>0 <00>i~%f5m<00>**<00>q1<00>_2 rU, 1 T,]|I2w\tb. H/Q^W<00><00>4`#s<00>50<00>M3VB0 <00><00>RFSC3 <00> __SIM6502__serial/ser_unload.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/ser-kernel.incSER_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALLOPENCLOSEGETPUTSTATUSIOCTLIRQSER_API_VERSION
SER_PARAMSBAUDRATEDATABITSSTOPBITSPARITY HANDSHAKE SER_BAUD_45_5 SER_BAUD_50 SER_BAUD_75 SER_BAUD_110SER_BAUD_134_5 SER_BAUD_150 SER_BAUD_300 SER_BAUD_600 SER_BAUD_1200 SER_BAUD_1800 SER_BAUD_2400 SER_BAUD_3600 SER_BAUD_4800 SER_BAUD_7200 SER_BAUD_9600SER_BAUD_19200SER_BAUD_38400SER_BAUD_57600SER_BAUD_115200SER_BAUD_230400SER_BAUD_31250SER_BAUD_62500SER_BAUD_56_875
SER_BITS_5
SER_BITS_6
SER_BITS_7
SER_BITS_8
SER_STOP_1
SER_STOP_2 SER_PAR_NONE SER_PAR_ODD SER_PAR_EVEN SER_PAR_MARK SER_PAR_SPACE SER_HS_NONE SER_HS_HW SER_HS_SW SER_STATUS_PE SER_STATUS_FE SER_STATUS_OESER_STATUS_DCDSER_STATUS_DSR_ser_drv ser_install ser_uninstallser_open ser_closeser_getser_put
ser_status ser_ioctlser_irq_ser_load_driver _ser_unload _ser_install_ser_uninstall _ser_open
_ser_close_ser_get_ser_put _ser_status
_ser_ioctl_ser_clear_ptr./home/hugg/compilers/cc65/asminc/ser-error.inc
SER_ERR_OKSER_ERR_NO_DRIVERSER_ERR_CANNOT_LOADSER_ERR_INV_DRIVERSER_ERR_NO_DEVICESER_ERR_BAUD_UNAVAILSER_ERR_NO_DATASER_ERR_OVERFLOWSER_ERR_INIT_FAILEDSER_ERR_INV_IOCTLSER_ERR_INSTALLEDSER_ERR_NOT_OPEN SER_ERR_COUNT,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM ser_clear_ptrreturn0 no_driverCODERODATABSSDATAZEROPAGENULLUzna` iq<00>9(a mpe<00><00>VoW@<40>۵<8B><02><17>\<5C><06><01> <09><02>    
<82><01> <09><01> <01><00> 
<82>
<01> <09><02> 
<82><01> <09><01> <01><03>` 
     
<01><04>  
 __SIM6502__runtime/shelp.s
ca65 V2.15popsargsnegaxpopaxsregtmp1tmp2ptr4.sizeL1L2CODERODATABSSDATAZEROPAGENULLUzna` iq<00>2P \_t<00>rE^F@<40>۵<8B><02><17>\<5C><06>
<01> <09>H <02><01> <09><01>
<01><00>
<01><01> <09><01> <09><01> <09> <01> <01><01> <09><01>h<01> <09>L
<82>   
 <01><04>      __SIM6502__runtime/staxspi.s
ca65 V2.15 staxspidxincsp2sptmp1ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqs/<00> <00><00><00>><00><00><00>@<40>۵<8B><02><17>\<5C><06> &%<01> <09><01> <09> <01> <09>  
<82><01> <09><01> <01><03><01>
<09>
<01> <09> <01> <09><01><01> <09><01> <09><01><01><01> <09><01> <09><01><01> <01><04><01> <09> <01> <09>` 

    <01><04>&" !
% #' __SIM6502__runtime/steaxspi.s
ca65 V2.15
steaxspidxpopaxsregptr1tmp1tmp2tmp3.sizeCODERODATABSSDATAZEROPAGENULLUzna` iql<00>% <00><00><00>IJ@<40>۵<8B><02><17>\<5C>585<01> <09> <01> <01><02> 
<82> <01> <09><01> <01><01><01>
<09>
<02><01> <09> <01><01>!<01><01><01> <01><01><01><01><01>"e <09><01> <09><01>  <01> <01><01><02><01> <09><01> <09><01># #<01><01><01><01> <01><02><01> <01><01><01><01><01> <09> `
    <01><04>$ -0") 4 $.! 57*(,/ #+ __SIM6502__common/strcat.s
ca65 V2.15_strcatpopaxptr1ptr2tmp3.sizesc1sc2sc3sc4sc5CODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00><00><00>Y<00><00><00><00>@<40>۵<8B><02><17>\<5C> <06>,)<01> <09> 
<82><01> <09> <01> <01><01><02><01> <09> <01> <01>
<09>
<01>   <01><01><01><01> <01><01><01><01><01> <09><01>
<01> <01><01><01>e <09><01><01>`<02><01>` 
   <01><04>  -0"&  $. %(,/#' __SIM6502__common/strchr.s
ca65 V2.15_strchrpopaxptr1tmp1.sizeLoopEOSFoundNotFoundFound1CODERODATABSSDATAZEROPAGENULLUzna` iqx<00> <00><00><00>#x<00><00><00>@<40>۵<8B><02><17>\<5C><06> '#<01> <09> <01> <01><00> 
<82> <01> <09><01> <01><01><02>
<01> <09><01> <09><01>   <01> <01><01><01><01><01> <01><01><01> <01><00><01><01><01><02><>`<02>`  <01><04> "    # __SIM6502__common/strcmp.s
ca65 V2.15_strcmppopaxptr1ptr2.sizeloopL1L3L2CODERODATABSSDATAZEROPAGENULLUzna` iqV<00>.<00> <00><00><00>CD@<40>۵<8B><02><17>\<5C>
84<01> <09><01> <01><03> 
<82>
<01> <09><01> <01><04><02> <01> <09> <02><01> <09> <01><01> <09><01>!<01><01> <01><04><01> <09><02><01> <09><01>""<01> <09><01> <01><01><01><01> <09> <01><01><01><01> <09><01>#<01>#<01><01> <09>`
    
<01><04>$ 0") 61 ! *(2 #'+ __SIM6502__common/strcspn.s
ca65 V2.15_strcspnpopaxptr1ptr2tmp1tmp2tmp3.sizeL1L6L2L3L4CODERODATABSSDATAZEROPAGENULLUzna` kzS*<00>*T!-0-3-^<00>?<00>DC2-EC@<40>۵<8B><02>m<8B>\<5C>gfaX<61><06>"<00><00> <02>  <01>
<82><01><02><01><01><01>
<83><01><01><01>
<01><02><01><01><01>
<83><01><02><01><01><01> <09><01><01><01>
<01><02><01><01><01><01><01> <09><01><01><01><01><02><01><01><01>L<01>
<82><01><02><01> <01>
<82><01><01><01> <09><01><01><01> <01><18><01> <01>
<82><01><02><01> a
<82>a<02><01><01><01> <09><01><01><01>
<01><02><01><02><01><01><01><01><02><01> ?
<82>?<01><01> <09><01><01><01> <01><17><01><02><01><01><01><01><01> <09><01><01><01>
<83><01><01><01>
<01><02><01>L<01>
<82><01><01><01>
<01><02><01><02>%<01><01><02><04><02><04>L<02>
<01><00>L<02><01><01> H<01><02><01><01><01>
<01><02>-<01><01><01> I<01><02><01><01><01>
<01><02>-<00><01><02><01> <01>
<82><01><01><01> <09><01><01><01> <01><18><01> #
<82>#<02><01> <01>
<82><01><02><01><01><01> <09><01><02>%<01><01><02><02>L<02><02>
<01><00>.<02><02><02>A<01><01><02><02>L<02><03>
<01><00>7<02><03><02>B<01><01>  L <09>
<01><00>W <09><02>D<01><01><02><02>L<02><01>
<01><00>w<02><01><02>F<01><01><02><02>L<02><03>
<01><00><><02><03><02>H<01><02><02>L<02><03>
<01><00><02><03><02>I<01><01><02><02>L<02><05>
<01><00>(<02><05><02>M<01><01><02><02>L<02><04>
<01><00>]<02><04><02>P<01><02><02>L<02><03>
<01><00>}<02><03><02>S<01><01><02><02>L<02><01>
<01><00><><02><01><02>U<01><01><02><02>L<02><05>
<01><00><><02><05><02>W<01><01><02><02>L<02><03>
<01><00><02><03><02>X7<01><02><02>L<02><01>
<01><00>Y<02><01><02>Y<01><02><02>L<02><03>
<01><00><><02><03><02>Z<01><01><02><02>L<02><03>
<01><00><><02><03><02>a<01><02><02>L<02><03>
<01><00><><02><03><02>b<01><01><02><02>L<02><03>
<01><00><02><03><02>c<01><01><02><02>L<02><01>
<01><00>@<02><01><02>d8<01><02><02>L<02><02>
<01><00><><02><02><02>j<01><01><02><02>L<02><04>
<01><00><><02><04><02>m\<01><02><02>L<02><01>
<01><00><02><01><02>p<01><01>ppLp<>
<01><00>7p<><02>w<01><01><02><02>L<02><03>
<01><00>^<02><03><02>x<01><01><02><02>L<02><05>
<01><00>~<02><05><02>y<01><01><02><02>L<02><01>
<01><00><><02><01>L<01>
<01><00><><01><01><01>
<01><02><01><01><01>
<01><02><00><01>L<01>
<01><00><><01> <01>
<82> <01><02> <01> )
<82> ) <01>
<82> <01><01>i<01> H<><01><01><01><01>Pi<01> I<><01><01><01><01><01> <01>
<82>
<01><01><01>
<01><02>-<01><01><01>
<01><02>-<00><01>L<01>
<01><00><><01> <01>
<82> <01><02> <01> 
<82>  <01>
<82> <01><01>i~ H<01><03>~<01>,<01><01>i<01> I<01><03><01><01><01><01> <01>
<82>
<01><01><01>
<01><02>-<01><01><01>
<01><02>-<00><01>L<01>
<01><00><><01><01><01> H<01><02><01><01> I<01><02> <01>
<82><01><01><01> H<01><01>.<01><01><01> I<01><01>.<01> <01>
<82><01><02><01> <01>
<82><01><02> <01> <01>
<82> <01> <01>
<82><01> <01>
<82><01><02><01> <01>
<82><01><02><01> <01>
<82> <01><02> l <01>
<82><01><02> <01> <01>
<82> <01><02><01><02>d<01> <01>
<82><01> <01>
<82><01><02>
<01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><01><01>` I<01><01>` <
<82><<02><01> <01>
<82><01><02> <01> <01>
<82> <01><01><01> <09><01><01><01> <01><17><01><02>l<01><01>e<01> <09><01>H<01><02><01>e<01> <01><17><01><01><01>h<01> ;
<82>;<02><01> <01>
<82><01><02> <01> <01>
<82> <01> <01>
<82><01> B
<82>B<02>  <01>
<82><01><02><01> <01>
<82> <01><02>
<01> <01>
<82><01>LV
<01><00><>V<01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><00>
<01><01> I<01><01><00>
 <01>
<82><01><02><01> <01>
<82><01><02><01> <01>
<82> <01><02><01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01> I<01><02> <01>
<82><01><01><01> H<01><01><00>
<01><01><01> I<01><01><00>
<01> <01>
<82><01><02><01> 
<82><02><01> <01>
<82> <01><02> 1 <01>
<82><01> <01>
<82><01><02><01><02> <01> <01>
<82><01> <01>
<82><01> <01>
<82><01><02><01> <01>
<82><01>L<01>
<01><00><><01><01>G H<01><02>G<01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><00>
<01><01>9 I<01><01><00>
9 <01>
<82><01><02> <01>
<82><01><02><01> <01>
<82> <01><02><01> <01>
<82><01>L<01>
<01><00><><01> <01>
<82> <01><02><01> <01>
<82> <01><02> <01><01><01><02><01>p<01><01>I<><01><01><01><01><01> H<01><01><><01><01><01> I<01><01><><01>L<01>
<01><00><><01><01><01> H<01><01><><01><01><01> I<01><01><><01><01><01>
<01><02>-<01><01><01>
<01><02>-<00><01>L<01>
<01><00><><01><01> H<01><02> <01><01> I<01><02><01> 
<82><01><01> H<01><01><00>
<01><01><01> I<01><01><00>
<01> <01>
<82><01><02><01> <01>
<82><01> <01>
<82><01><02>  <01>
<82><01>L3
<01><00><>3<01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><00>
<01><01><01> I<01><01><00>
<01> <01>
<82><01><02><01> <01>
<82><01><02><01> >
<82> > <01>
<82><01> <01>
<82><01><02><01> Z
<82>Z<02> <01> <01>
<82> <01> <01>
<82><01> <01>
<82><01><02><01> <01>
<82><01> y
<82>y<02><01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><00>
<01><01><01> I<01><01><00>
<01> <01>
<82><01><02><01> <01>
<82><01><02><01> <01>
<82> <01> <01>
<82><01> <01>
<82><01><02><01> !
<82>!<02> <01><01><01> <09><01><01><01> <01><17><01><01><01> <09><01><01><01><01> <09><01><01><01><01><02><01> <01>
<82><01><02> <01> <01>
<82> <01> <01>
<82><01>L<01>
<01><00>C<01><01>'<02><01> X
<82>X <01>
<82><01><02><01> <01>
<82><01> <01>
<82><01><02><01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> e
<82>e<01>+ H<01><01>=+<01><01> I<01><01>=<01> 
<82> <02><01> <01>
<82><01><02><01> <01>
<82> <01><02><01> <01>
<82><01><02>( <01>
<82> <01><02> <01> <01>
<82><01> <01>
<82><01><02>
<01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><><01><01>& I<01><01><>& <01>
<82><01><02><01> <01>
<82><01><02> <01> <01>
<82> <01><01><01> <09><01><01><01> <01><17><01><02>l<01>Ie<01> <09><01>HJ<02><01>e<01> <01><17><01><01>Fh<01> <01>
<82><01><02><01> <01>
<82><01>L<01>
<01><00><><01> <01>
<82> <01><02><01><01> <09><01><01> <01><17><01><01><01> <09><01><01>j<01> <09><01><01><01><01><01><01> H<01><13>
<01><01><01> I<01><13>
<01>L<01>
<01><00><><01><01><01> H<01><13><01><01><01> I<01><13><01><01><01>
<01><02>-<01><01><01>
<01><02>-<00><01>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> c
<82>c<01><01> H<01><01><><01><01>z I<01><01><>z <01>
<82><01><02><01> [
<82>[<02> <01> <01>
<82> <01> }
<82> }<01>i<01> H<><01><01><01><01><01>i<01> I<><01><01><01><01><01> <01>
<82><01><02><01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01>M I<01><02>M <01>
<82><01><01><01> H<01><01><><00><01><01>b I<01><01><><00>b <01>
<82><01><02><01> <01>
<82><01><02> <01> <01>
<82> <01> <01>
<82> <01><01>i<01> H<01><03><01><01><01><01><01>i<01> I<01><03><01><01><01><01><01> _
<82>_<02><01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01> I<01><02> 
<82><01><01> H<><01><01><01> I<><01> <01>
<82><01><02><01> <01>
<82><01><02> ^ *
<82> * <01>
<82> <01><01>iL H<>L<01><01><01><01>i<01> I<><01><01><01><01><01> f
<82>f<02><01> <01>
<82><01><02> <01> <01>
<82> <01> <01>
<82> <01><01>i<01> H<01><03><01><01><01><01><01>i<01> I<01><03><01><01><01><01><01> <01>
<82><01><02>  <01>
<82><01><02><01> <01>
<82> <01><02> <01> <01>
<82><01><02><01> <01>
<82> <01><02> <01> <01>
<82><01><02><01> <01>
<82> <01><02><01> <01>
<82><01> x
<82>x<02><01> <01>
<82><01><02> <01> <01>
<82> <01><01><01> <09><01><01><01> <01><17><01><02>l<01><01>e<01> <09><01>H<01><02><01>e<01> <01><17><01><01><01>h<01> <01>
<82><01><02><01> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><00>
<01><01><01> I<01><01><00>
<01> <01>
<82><01><02><01> <01>
<82><01><02>% <01>
<82> <01><02>T <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01>o I<01><02>o <01>
<82><01><01>s H<01><01><>s<01>0 I<01><01><>0 <01>
<82><01><02><01> <01>
<82><01><02>K <01>
<82> <01> <01>
<82><01> <01>
<82><01><02> <01>
<82><01>L<01>
<01><00><><01><01><01> H<01><02><01><01>Q I<01><02>Q <01>
<82><01><01><01> H<01><01><00>
<01><01><01> I<01><01><00>
<01> <01>
<82><01><02><01> <01>
<82><01><02> <01> <01>
<82> <01> /
<82>/ <01>
<82><01><02><01> <01>
<82><01>L<01>
<01><00><><01> <01>
<82> <01><02><01> .
<82> .<02> <01><01><01><02>WpSSI<><01><01><01><01> H<01><01><><01><01><01> I<01><01><><01>L<01>
<01><00>U<01><01><01> H<01><01><><01><01><01> I<01><01><><01><01><01>
<01><02>-<01><01><01>
<01><02>-<00><01>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> U
<82>U<01><01> H<01><01><01><01><01> I<01><01><01> <01>
<82><01><02><01> <01>
<82><01><02> A <01>
<82> <01><02><01> 
<82>L<01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><00><01><01><01> I<01><01><00><01> <01>
<82><01><02><01> r
<82>r<02> <01> <01>
<82> <01><01><01> <09><01><01><01> <01><17><01><02>l<01><01>e<01> <09><01>H<01><02><01>e<01> <01><17><01><01><01>h<01> <01>
<82><01><02><01> <01>
<82><01><02> <01> <01>
<82> <01> <01>
<82><01> <01>
<82><01><02> <01> 
<82>
<02><01> i
<82> i<02>
<01> <01>
<82><01>L
<01><00><><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82><01><01><01> H<01><01><00>
<01><01><01> I<01><01><00>
<01> <01>
<82><01><02><01> :
<82>:<02> q R
<82> R<02><01><02>d<01> <01>
<82><01> <01>
<82><01><02><01> <01>
<82><01>LY
<01><00><>Y<01><01>
<01><02><01><01><01>
<01><02>-<01><01>D
<01><02>-<00>D <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01><01>m<01>
<83><01><01><01>
<83><01><01><01>m<01>
<01><02><01><01><01>
<01><02><01><01><01>
<83><01><02>E<01><01> <09><01><01><01>
<01><02><01><01><01><01><01> <09><01><01><02><06><02><06>L<02><06>
<01><00> <02><06><02> <01> <01>
<82><01><01><01>
<01><02>-<01><01><01>
<01><02>-<00><01> <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01><02>d <01>
<82><01>L<01>
<01><00> <01><02><01> <01>
<82><01><01>| <09>|<01>O <01><18>O <01>
<82><01><02> <01>
<82><01><01><01>
<01><02><01><02><01><01><01> <09><01><01><01>
<83><01><01><02><06><02><06>L<02>
<01><00> <02><01>h
<01><02>hL<01>
<01><00> <01><05><00><00><02>%<01>.<01>3<01>s<01> <01>%<01>.<01>3<01>s<01>%<01>3<01>d<01> <01>%<01>0<01>2<01>d<01>:<01>%<01>0<01>2<01>d<01>:<01>%<01>0<01>2<01>d<01> <01>%<01>d<01><01>% 0 4 d - % 0 2 d - % 0 2 d  %]0]2]d]/]%]0]2]d]/]%]0]2]d]]%02d:%02d:%02dW<01>e<01>d<01>n<01>e<01>s<01>d<01>a<01>y<01><01>S<01>e<01>p<01>t<01>e<01>m<01>b<01>e<01>r<01><01>F<01>e<01>b<01>r<01>u<01>a<01>r<01>y<01><01>S<01>a<01>t<01>u<01>r<01>d<01>a<01>y<01><01>N<01>o<01>v<01>e<01>m<01>b<01>e<01>r<01><01>T<01>h<01>u<01>r<01>s<01>d<01>a<01>y<01><01>D<01>e<01>c<01>e<01>m<01>b<01>e<01>r<01><01>J<01>a<01>n<01>u<01>a<01>r<01>y<01><01>OgcgtgogbgegrggT<01>u<01>e<01>s<01>d<01>a<01>y<01><01>A<01>u<01>g<01>u<01>s<01>t<01><01>F<01>r<01>i<01>d<01>a<01>y<01><01>S<01>u<01>n<01>d<01>a<01>y<01><01>M<01>o<01>n<01>d<01>a<01>y<01><01>M<01>a<01>r<01>c<01>h<01><01>A<01>p<01>r<01>i<01>l<01><01>J<01>u<01>n<01>e<01><01>%<01>0<01>3<01>d<01><01>%<01>.<01>3<01>s<01><01>JNuNlNyNNM<01>a<01>y<01><01>%<01>4<01>d<01><01>A<01>M<01><01>a<01>m<01><01>p<01>m<01><01>PmMmm<><00>//nn<01><01><01>""""""""""""""""""""""""""""""""""""""""44<><00>&
<01><01><>
<01><01><><01>
<01><01><>u
<01><01>L
<01><01>{<01>
<01><01><><01>
<01><01>i<01>
<01><01><><01>
<01><01>`<01>
<01><01><><01>
<01><01><><01>
<01><01><><01>
<01><01><><01>
<01><01><><01>
<01><01><><01>
<01><01>V<01>
<01><01><><01>
<01><01>r$
<01><01><><01><00><00><02>6<01><02>6<01>|6<01>z6<02><05>y6<02>Xx6<02><05>w6<07><06><03>_f<5F>xs6<01>r6<03><03><04>q6<0E><01><03><02><02><03><01><02><05><02><05><02>iRp6<02><04>o6<06><04>}<7D><02><05>n6)<08><02><03><04><05>><3E><05><05><03><03><05>*<2A><01><04><05>.<2E><05>m6<05><01><03><03><05>O6a<><01>N6 <09>#<23><01><01><02>/<2F><04>M6(<28>?<3F><03><01><04><02><05><02><03><><03><05>Z<>!<21><01><01><02><03>[<5B><03><01><01><02><04><02><02><01><03><01><04>r<>
:<3A>L6<02><02>I6;<3B><02><02><01><04><03><;B<><02><03><03><04><03><03><02><17><03><04><04><02>y<><05><05><04><04>e <20><01><03>c<><01><04><00><02><02><04><03><01><03><01><04><05>U<><04><01><05><03><05><01><03><03><01><04><04><02><05><01><13><05><04><03><03><04><03><01><01><06><03><01><04><05><01><04><01><01><01><01><01><01> @<1B><05><02><04><06><01><03><04><04><03><04><01><01><04><04><12><04><05><04><01><06><04><04><01><04><06><01> <09><01><04><05><03><02>|O<><01><04><05><04><05><01><16><00> <01><01><00><06><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>m<00><00><00><00><00>\<00>j<00><00><00><00>|<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>U<00><00><00><00><00><00><00><00><00> <00><00>-<00><00><00><00><00><00><00><00><00>P<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>0<00><00><00>M<00>]<00><00><00><00><00><00><00>lH<00><00><00>G<00><00><00><00><00><00><00><00><00><00><00><00><00>?<00><00><00><00><00><00><00>"<00><00>)<00>o<00><00><00><00><00><00><00>><00>&<00><00><00><00><00>y<00>s<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>W<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>9<00>C<00><00><00><00><00><00><00>8<00><00><00><00><00><00>}<00><00><00><00><00>L<00><00><00><00><00><00><00><00><00><00><00>O<00><00><00><00><00><00><00>6p<00><00><00><00><00><00><00><00><00>E<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>t<00><00><00><00>k<00><00><00><00><00><00><00><00><00><00><00>3<00><00><00><00><00><00><00><00><00><00><00><00>T<00><00>1<00><00><00><00><00>A<00><00>4<00><00><00><00><00>;<00><00><00><00><00><00><00><00><00>e<00><00><00><00><00>J<00><00><00><00><00><00><00><00><00><00>n<00><00>$<00><00><00><00><00><00>.<00><00><00><00><00><00><00><00>!<00>i<00><00><00>5<00><00><00><00><00><00><00><00><00><00><00>q<00><00>I<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>1<00><00><00><00><00><00><00><00><00>x<00><00><00><00><00><00><00><00><00><00><00><00>=<00><00> <00><00><00><00><00><00><00><00><00><00>5
<00><00>F<00><00><00><00><00><00><00><00><00><00><00><00><00><00>%7<00><00><00><00><00><00><00><00><00><00><00><00> <00>[@<00><00>N<00><00><00><00><00><00>*<00><00><00><00><00><00><00><00>(<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>r<00><00><00>3<00><00><00><00>V<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>,<00><00><00>2<00><00><00><00><00><00><00><00><00> 4<00><00><00><00><00><00><00><00>w<00><00><00><00><00><00><00><00><00><00><00><00><00>RK<00><00><00><00>v<00>z<00><00><00><00><00><00><00><00><00><00><00>/<00><00><00><00><00>:<00><00><00><00>u<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00> <00><00>#<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>'<00><00><00><00><00><00><00><00><00><00><00>B<00><00>S<00><00><00>D<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>Z<00><00><00><00><00><00>{<00><00><00><00><00><00><00><00><00><00><00>Q<00><00><<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>YX.<00><00><00><00><00><00><00><00><00>+<00><00> __SIM6502__../libwrk/sim6502/strftime.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_strlen_memcpy_sprintf__tz _strftimeL00DA.sizeL006BL0111L0062L00B2L000DL0027L0019L0013L002BL000FL002DL0017L0029L000BL0025L0011L0007L0009L001BL001DL007BL0083L011AL0021L0096L009DL00A5L00F7L00F0L00CAL00D2L0074L00E9L0023L001FL00BBL0103L010AL008FL008CL0100L0006L0016L002FL0030L0031L0033L0034pushaxL0037L003Bincsp8ldaxyspincax1staxyspL0133L0045L0135L0055L005AL005FL0068L0071L0078L0080L0087L0093L009AL00A2L00AFL00B8L00BFL00C7L00CFL00D7L00E6L00EDL00F4L00FBL0107L010EL0117L0136L004Bldax0spldaxidxaslax1ldaxipushwidxtosmoda0incaxyL008BL008DL0090pushwincax7tossubaxtosdiva0L00AAdecax1L00ACL00C2L00C4L00FFL0101L0104pushwyspaddeqyspCODERODATABSSDATAZEROPAGENULLUzna` ix<00><00>'"9<(dH<00>;<00>@<40>۵<8B><02><17>\<5C> faX<61>L E;<01> <09><01> <01><01> 
<82><01> <09><01> <01><02><02><01>5 <09>5<01><01>2
<82>2)-<01><01>!i<>6<01>1<01> <09><01>3 <09>3<01><01>%
<82>%) <01>44<01>( i<>'<01>:<01> <09><01> <01>0<01>  <01><01>+<01>+<01> <01><02><01> <01><01><01>#<01>#<01>&&<02><>`<02>`8!"#$%
 53$2%<02><05> "<22><04>,"; -0)& 98314;$.! 5
%7*(2/ #'<+& __SIM6502__common/stricmp.s
ca65 V2.15_stricmp _strcasecmppopax__ctypeptr1ptr2tmp1*/home/hugg/compilers/cc65/asminc/ctype.incCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.sizeloopL1L2L3L5L4CODERODATABSSDATAZEROPAGENULLUzna` iq<00> 
* 69[<00>e<00>8<00>@<40>۵<8B><02><17>\<5C>x <01> <09><01>
<01><00>
<02><02><01> <09> <01><01><01><01><01> <01><00><01><01> <01> <01>`
    
<01><04>    
 __SIM6502__common/strlen.s
ca65 V2.15_strlenptr1.sizeL1L9CODERODATABSSDATAZEROPAGENULLUzna` iq<00>i7<00> <00><00><00><00>?<00>@@<40>۵<8B><02><17>\<5C> <06>UNI<><01>" <09>"<01>I<>)<01> <09> 
<82><01> <09><01> <01><04> 
<82> <01> <09><01> <01><03><01>& <09>&<01>- <01><02>-<02><01> <09><01><01>/<01>+<01>+<01> <01><03><01><01><01>
,e( <09>(<01> <09><01>''<01>2 <01><03>2<02><01> <09><01><01><01># <09>#<01><01>% <09>%<01> <09><01>   <01>*<01><01><01>1 <01><04>1<01>! <01><03>!<01> <01> <02>.<01> <09><01>0 <09>0<01> <01><02>`$
 #  " &-0
(2! %1  <01><04>3 0H")>& 9C86E314; != 5F7*(: 'BD<+ __SIM6502__common/strncat.s
ca65 V2.15_strncatpopaxptr1ptr2ptr3tmp1tmp2.sizeL1L2L3L4L5L6L7CODERODATABSSDATAZEROPAGENULLUzna` iqz<00># <00><00><00><00><00>@<40>۵<8B><02><17>\<5C>C?7I<><01> <09><01>I<><01>% <01><00>% 
<82><01> <09><01> <01><01> &
<82>&<01>$ <09>$<01> <01><02><02><01> <09><01><01> <09><01>" <09>"<01><01><01>  <01><01><01><01> <01><02> <01> <01><01> <01>#<01>#<01> <01><00><01><01><02>
<01>'`<01><02><>!` <02>` %" $ &<01><04>)0?)> 9C8LO6E1 J.!I%7N*2K/: DQ __SIM6502__common/strncmp.s
ca65 V2.15_strncmppopaxptr1ptr2ptr3.sizeLoopIncHiCompNotEqualEqual1EqualL1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>3Q ]`<00>B<00><00>_<00>@<40>۵<8B><02><17>\<5C> vHCI<><01> <09><01>$I<><01> <09> 
<82><01> <09> <01> <01><04> 
<82><01> <09><01>) <01><03>)<01> <09><01> <09><02><01>+<01>''<01> <09><01><01> <09><01> <09><01>

<01>(<01>"<01>"<01> <01><04><01>! <01><03>!<01>,<01>,<01>%<01> <01> <09><01>#<01><01><01> <01><03><01><01><01> <09> <01>&<01>&<01> <09> <01> <09>` 
      )!   <01><04>H- 0?")>& 9E314$! 5%@*(2/: 'B+ __SIM6502__common/strncpy.s
ca65 V2.15_strncpypopaxptr1ptr2tmp1tmp2tmp3L1.sizeL2L9L5L3L6L4CODERODATABSSDATAZEROPAGENULLUzna` ix<00>n1<00><00><00>i"k<00><00><00>@<40>۵<8B><02><17>\<5C> faX<61><06>$]OI<>B<01> <09><01>@I<>9<01> <01><01> ?
<82>?<01>& <09>&<01> <01><02> A
<82>A<01>$ <09>$<01>. <01><03>.<02><01> <09><01>%0%<01>7 <09>7<01><01>!
<82>!),<01><01>/8<02> <01>><01>" <09>"<01>+ <09>+<01><01>
<82> )1<01>  <01>C8<02> D<01><01> <09> <01>

<01>)<01>##<01>2<01><01><01> <01><03><01>F <01><02>F<01>;<01>;<01>5 <01><01>5<01><01><02>0<01>` <01><02><>:`*<02>`%&'() " 
5 &7F$.+-! -?A<02><05>(<12><04>8H\ -P]HG?")> fW9C8O6Egb3A4;J$.! Id=5
%7[@NaV2cR: #BDQ* __SIM6502__common/strnicmp.s
ca65 V2.15 _strnicmp _strncasecmppopax__ctypeptr1ptr2ptr3tmp1*/home/hugg/compilers/cc65/asminc/ctype.incCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.sizeLoopIncHiCompL1L2NotEqualEqual1EqualL3CODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>6* 69<00><00><00>8<00>@<40>۵<8B><02><17>\<5C> LA< 
<82><01> <09><01> <01><03>  
<82> <01> <09><01> <01><04><02> <01>
<09>
<01>*<01> <09><01><01>%%<01> <01><04><01># <09>#<02><01> <09><01><01>& <09>&<01>" "<01><01><01><01> <09><01>$<01><01><01> <09><01><01><01> <01><04><01>! <09>!e <09><01><01>`L
<82>   #!
 &     
  <01><04>( 0")& 8314 .! *(2/ '< __SIM6502__common/strpbrk.s
ca65 V2.15_strpbrkpopaxreturn0ptr1ptr2tmp1tmp2tmp3.sizeL1L9L2L3L4L6L7CODERODATABSSDATAZEROPAGENULLUzna` iqD<00>$<00> <00><00><00><00>z<00><00><00>@<40>۵<8B><02><17>\<5C>  0-<01> <09> 
<82><01> <09> <01> <01><02><02><01> <09> <01>
<01><01>
<01><01> <09> <01><01> <09><01> <01>e <09><01> <09><01> <01><02>i<01> <01><01><01><01><01><01> <01><02><01><01><01> <09><01> <01><01>`  
   <01><04> -")&  .! (/ ' __SIM6502__common/strrchr.s
ca65 V2.15_strrchrpopaxptr1ptr2tmp1.sizeL1L3L2CODERODATABSSDATAZEROPAGENULLUzna` iqV<00>.<00> <00><00><00>AB@<40>۵<8B><02><17>\<5C>
84<01> <09><01> <01><03> 
<82> <01> <09><01> <01><04><02> <01> <09> <02><01> <09> <01><01> <09><01>!<01><01> <01><04><01> <09><02><01> <09><01>""<01> <09><01><01><01><01><01> <09> <01><01><01><01> <09><01>#<01>#<01><01> <09>`
     <01><04>$ 0") 81 ! *(2 #'+ __SIM6502__common/strspn.s
ca65 V2.15_strspnpopaxptr1ptr2tmp1tmp2tmp3.sizeL1L6L2L3L4CODERODATABSSDATAZEROPAGENULLUzna` iq"<00>8<00> <00><00><00><00><00><00><00>@<40>۵<8B><02><17>\<5C><06>XS<01> <09><01>" <01><03>"<01> <09> 
<82><01> <09><01> <01><04> <02><01>& <09>&<01>/</<01> <09><01> <09><01>1;1<01>- <09>-<01><01><01>.<01>.<01> <01><04><01>$<01>$<01> )e5 <09>5<01>, <09>,<01><01> <01><04><01> <09><01> <01><04><01># <01><02>#<01> <01><03><01>% <01><01>%<02><01>4 <09>4<01>!!<01>
<09>
<01> <01>'<01><01><01>0 <01><02>0<01> <01><01> <01>3<01>3<02><01><01><01> <09><01>( <01><04>(`<02><01>`+
 -  %4  #
0 "&
 5,( <01><04>6U -MH?")> C8O63TA4 $.!I= 5%7@N*aV, #BSD<+ __SIM6502__common/strstr.s
ca65 V2.15_strstrpopaxptr1ptr2ptr3ptr4tmp1.size@Found@L1 @NotFound@L2@L3@L4@L5CODERODATABSSDATAZEROPAGENULLUzna` iq<00>)< HK`<00>a J @<40>۵<8B><02><17>\<5C><06><01> <09><01>
<01><00>
<02><01> <09><01><01> <01><00> <01> <09><01><01> <09>H<01> <09><01> <09> h` 
    
  <01><04>    
 __SIM6502__runtime/swap.s
ca65 V2.15swapstkspptr4.sizeCODERODATABSSDATAZEROPAGENULLUzna` i<00>0<00>%<00>2
?I8 <00> <00>@<40>۵<8B><02><17>\<5C>5<07><17>\<5C>R<A9>faX<61><06><00><00>j<01>e
<83>e<01><01> <09><01><01><01>
<01><02><01><01>{ <01><01>{<02><01><01> <09> <01>f
<83>f<01>$S$<01>
<01><01><01><02><01><01>6 H<>6<01>a <09>a<01><01><01><01> I<><01><01><01> <09><01><02><01><02><01>N <01>
<01><00>X<01> 
<01><00>X<02>9l<01><01><01><01> <01>
<83><01> 
<01><00>l<02><01><02>
<01><01><01> <09><01><01>p
<01><02>p<01>*<01><01><01><01><01><01>I
<01><03>9<00>I<01>==<02>L<01><01><01>
<01><03>9<01><02><01><02><01><01>,
<01><02>,<01><01>[<01>[` <01>o <09>o<01>}
<83>}<01><01><01>`<01><02>H<01>^
<01><02>^`<01><02><01><01><01>
<01><02><01>`<01><01><01>
<83><01><01><01> <09><01><01><01>
<01><02><01><01>k <01><01>k`w <01>
<82><01> <01>
<01><03><01><02>`<01><01>
<01><03>9<02><01><01>5
<83>5<01><01>
<01><02><01><01>
<01><02>`<00>t<01>g<01>i<01><01>x<00>( > <01> <01>  <01> <01>  <01>  <01> - <01> <01> <01> 3 <01>  <01> m u <01> T <01> K C<><00><LtL<01>LDL<01>LXL<01>L(L%L<01>L~L<01>LPL"L<01>LSLL<01>L<01>L<01>`qqq<00><00>v<01><01><01> <09>{ a<><01>o<>k<01>6<>1<><02><01><00>w<00><02><01><01><00>q<01><00>l7<12>l<01><00>f|$<24>k<01><00>`<01><00>f<01><00><>4<00>e<01><03>6<01><00>d<01><03>3<01><00>c<01><03>0<01><00>b<01><03>-<00>a<01><03>*S<00>`<01><03>'<01><00>_<01><03>$"<00>^<01><03>!P<00>]<01><03><01><00>\<01><03>~<00>[<01><03><01><00>Z<01><03>%<00>Y<01><03>(<00>X<01><03><01><00>W<01><03> X<00>V<01><03> <01><00>U<01><03>D<00>T<01><03><01><01><02>S<>t<01><01>N<01><02>'C<00>M<01><02>%K<00>L<01><02>$<01><00>K<01><02>#T<00>J<01><02>"<01><00>I<01><02>!u<00>H<01><02><00>G<01><02><01><00>F<01><02>m<00>E<01><02><01><00>D<01><02>3<00>C<01><02><01><00>B<01><02><01><00>A<01><02> <01><00>@<01><02> <00>?<01><02>
<01><00>><01><02> <00>=<01><02><01><00><<01><02><01><00>;<01><02><00>:<01><02><01><00>9<01><02><01>^<5E><15>8<>>e<><01><01>5<><01>F<01><03>9q:I<><00>< <00><00><00><00><00><00>ym<00><00>j<00>/ |- <00><00>? <00><00><00><00>-P<00><00>h<00>M<00>lH<00>G<00><00><00><00>")B <00>)(&<00><00>s<00><00><00> <00>F <00>P= <00><00>9CH 7 +<00><00><00>8u)}&L(<00>O6'<00><00>E<00><00><00>E -<00>D <00>t<00>A }bk<00>; <00><00><00><00>38 <00><00>T/1A4<00><00>G <00>e<00><00>J<00><00>n<00>$<00><00><00>6 .!i<00>9 : <00>g<00><00>n+I<00><00>d<00><00>4<00><00>x<00><00><00><00>zo<00><00><00><00><00>5F<00>i<00>{~%f7<00>5<00><00>K<00><00><00>@*N*<00><00><00><00>_2 <00>, a<00>1 r<00>,<00>]<00><00>|> <00>,2<00><00>2<00><00>ww\@ vcRK<00><00>tv<00>. <00><00>u~W<00><00><00><00>I <00><00>`#<00><00><00><00><00><00>0<00><00>Je<00>B<00>SD<00><00>0 <00><00><00><00>{<00><00>Q<00><00><00><00><00>X<00><00>C 3 <00> __SIM6502__tgi/tgi-kernel.s
ca65 V2.15
tgi_librefptr1tgi_irq//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload./home/hugg/compilers/cc65/asminc/tgi-error.inc
TGI_ERR_OKTGI_ERR_NO_DRIVERTGI_ERR_CANNOT_LOADTGI_ERR_INV_DRIVERTGI_ERR_INV_MODETGI_ERR_INV_ARGTGI_ERR_INV_FUNCTGI_ERR_INV_FONTTGI_ERR_NO_RESTGI_ERR_UNKNOWNTGI_ERR_INSTALLED TGI_ERR_COUNTcstartcsizetgi_driver_vars jumpvectorstgi_sig@L0@L1copy@L3@L4@L5CODERODATABSSDATAZEROPAGENULLUzna` ixM<00><00>a mpp
<00>o<00>@<40>۵<8B><02><17>\<5C><04><17>\<5C>R<00><00><02><01>p <09>p<01>I <01><01>I 
<82><01>3 <09>3<01>M <01><02>M <01>
<82><01><01><01> <09><01><01> <01><03> <01>
<82><01><01> <09><01>u <01><04>u<01>l <09>l<01>' <09>'<01><01> <01><02><01><01>h <01><04>h<01><01><01>- <09>-<01><01> <09><01><01><01> <09><01><01>( <09>(<01><01> <01><02><01><01><01> <01><04><01><01><01> <01><04><01><01> <01><02><01>[ <09>[<01><01> <09><01><01>X <01><01>X<01>] <01><03>]<01><01><01>C <09>C<01><01> <09><01><01>= <09>=<01>8 <09>8<01><01> <01><01><01><01>^ <01><03>^<01><01> <01><03><01><01><01> <01><01><01><01>\ <01><01>\<01> <01><02><01>09Y9$$ <01><04>$!!<02>y<01>c <09>c<01><01> <01><04><01><01>? ?<01> <09><01><01>
<82> <01><01><01> <01><04><01><01><01>
<82> <01><01>ZAZ$<01> <01><03><01><01><01><02><01><01><01> <09><01><01>
<01><03>
<01> <01><01> <09><01><01>R
<82>R<01><01> <01><03><01><01>{
<82>{<01>b)b<01>m <09>m<01>
<82>  <01>S <01><02>S<01>
<01> <09> <01> f
<82>f<01>) <09>)<01>D <01><02>D<01>N <09>N<01><01>
<82><01><01><01> <01><01><01><01><01>
<01><08><01><01><01><01> .
<82>.<01><01> <09><01><01><01> <01><01><01>L
<82>`<00><00><00><00><00>
<02><05><01><01><01> pI[XC8<43><01>\N<><01><01><01><01> 3Ml<4D>-(<28><16>mS)D<01><01> <0A><01>]<5D>=^<5E><01><01>
<A4><01><01><01> u'h<><01><01><01>$c<><17>}<01>.|<01>f`VC#R{<7B><01>B<04><01> <01>p<><00>@<00>< <00><00><00>ym<00><00>\j<00>/ - <00><00><00>? <00> <00>-P<00><00>h]<00>lH<00>G<00><00>")oB <00>)&y<00><00><00>F P= <00><00>9CH 7 <00>8uL(<00>6p<00><00><00><00>E D <00>t<00>A }bk<00>; <00><00>38 T1A4;<00>G <00>eJ<00><00>n<00>$<00><00>6 !i<00>9 : <00>g<00><00>n+I<00>d<00>4<00>x<00>x<00>zo=<00><00><00>5
i<00>{~%f7<00>5<00><00>K<00>[**<00><00>(<00>_2 <00>, a1 <00>]<00><00>|> ,2<00><00>ww\@ vcRK<00><00>tvz<00>. <00><00>:uW<00><00>I <00><00>`#<00><00><00><00>J'eB<00>S<00><00>0 <00><00>Z<00><00>{<00>Q<<00><00><00>YX<00>+<00>C 3 <00> __SIM6502__ tgi/tgi_bar.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadptr1ptr2ptr3ptr4popax@L1@L2@L9@L3@L4@L5@L6@L7@L8CODERODATABSSDATAZEROPAGENULLUzna` ixW<00><00> <00><00>s^<00>E <00>F @<40>۵<8B>faX<61><04><17>\<5C>R<00> &
<82>&L
<82><00><00><00><00><00><02>&tu<01>q<>F<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00> <00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_circle.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpushaCODERODATABSSDATAZEROPAGENULLUzna` ixC<00><00>
<00><00>_.<00> <00> @<40>۵<8B>faX<61><04><17>\<5C>R<00><00><00><00><00><00>VT<01>r<><00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00> <00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_clear.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` i<00>q
<00>
<00><00> <00> <00>  <00><00> <00><00> <00>@<40>۵<8B>faX<61>L<07><17>\<5C>R<A9>faX<61><05>faX<61>
<00><00><02><02><01> @
<82>@<01><01>
<83><01>`<01><01><01> H<02><06><01> <01>
<82><01><01><01>
<01><02><01>`<01><01><01>
<01><02><01>I<><01>]i<01><01>s
<01><02>s<01><01>
<01><02><00><01>I<>6i2<01><01>
<01><02><00><01>`<01><01>U
<82>U8<01><01><01>
<82> <01><01><01>
<01><02><01><01><01>
<01><07><01><01>
<01> <09> <01>-
<01><02><00>-<01><01>
<01><02><01><01><01><02><01> <01>
<01><00><01><01><01>
<82><01>8<01><01><01>
<82><01><01>Q
<01><02>Q<01>{
<01><06>{<01>
<01><08><01><01>
<01><02><00><01>M<01>
<01><02><01><01>1
<01><02>1,<01>
<01><02><00><01>AA<01><01><01>L<01>
<01><00><01>`<01><01><01>M.
<01><02>.<01> <09><01><01><02><01><01> 0
<82> 0<01> <09><01><01> <01><02><01>`<01>P <09>P<01><01> <01><02><01><01><01> <09><01><01>a <09>a<01>_ <01><03>_<01><01> <01><01><01>`<01> <01>
<01><00>i<01><01><01>
<01><02><01><01><01>
<01><02><00><01> W
<82>W <01>
<01><00>|<01><01><01>
<01><02><01><01><01>
<01><02><00><01> 
<82> $<01> <09><01><02><02><02><02>L<02>z
<82> <02>z`<01> <01>
<01><00>i<01><01><01>
<01><02><01><01>
<01><02><00> =
<82>= <01>
<01><00>|<01><01><01>
<01><02><01><01><01>
<01><02><00><01> T
<82> TL<01>
<01><00><><01><02>^<01><01>
<01><02><01> <01>
<83><01> <01>
<01><00> <01><01><01>
<83><01> <01>
<01><02><01><01><01> <01><02><01><01><01>
<82> <01><01>7 <09>7<01>G<01>GL<01>
<82><01><01><01>
<83><01>-<01>
<01><02><01><01><01><01>`p<01><01>
<01><02><01><01>dd<01><01>
<01><02><01> g
<01><00>(g<01>\
<83>\<01><02>O<02>OL<02><02>
<01><00>l<02><02>Jy<01><01><01><02><01><01><01><01><01> <01>J<01><01><01>,<01><01>9
<82> 9<01><01>
<01> <0B><01><01><01>8<01><01>Y
<82> Y<01><01>
<82> <01><01><01><01><01><01><01>
<01> <09><01><01><01>
<01> <09><01> <01>
<01><00><><01>mo
<82>o<01><01>
<82><01><01><01>m<01>
<01><08><01><01>:
<01><08>:<01><01>
<83><01>J<01>J<01>J<01><01>&&<02><01><01><01><01> <01>Jf<01>x'x<01>
<82>

<01><01>
<01>
<81><01><01><01>8<01><01><01>
<82><01><01>8
<82>8<01><01><01><01><01>
<01><08><01><01>
<01><08><01> <01>
<01><00><><01><01>mt
<82> t<01><01>
<82> <01><01><01>m<01>
<01> <09><01><01><01>
<01> <09><01> m
<83>m<01><01>
<01><02><01><01><02>O<02>OL<02><02>
<01><00><><02><02>J<01><01><01><01><02><01><01>D<01>v vJ<01><01><01>,<01><01><01>
<82> <01><01><01>
<01> <0B><01><01><01>8<01><01>
<82><01><01><01>
<82><01><01><01><01><01><01><01>
<01><07><01><01><01>
<01><07><01> <01>
<01><00><><01><01>m<01>
<82><01><01><01>
<82><01><01><01>m<01>
<01><06><01><01><01>
<01><06><01><01>
<01><02> J<01>J<01>J<01><01>''<02><01><01><01><01>4 4JE<01>n'n<01><01>
<82>
<01><01><01>
<01>
<81><01><01>~8<01><01><01>
<82><01><01><01>
<82><01><01><01><01><01><01>
<01><06><01>u
<01><06>u <01>
<01><00><><01><01>mZ
<82>Z<01><01>
<82><01><01><01>mk
<01><07>k<01><01>
<01><07><01> 
<01><00> L<01>
<01><00><><01><00>#<00> <01> <01> <01> <01> ) <00><00><00><01>}<02><01><01>a<><01><01>7P<37><10><01><01><02>_n<01><02>@b<01><01>Rw <0B><02><02><01><02><02>u<>{<7B>Q<01>
<81><03><02><02>Z<>k<>U<>P<01> o<><01>:<3A>8<17><02><05>O<01> <0B>Y<><02><01>t<><01><01><02> H<01>
<F6><01><01>G<01>9<><02><02>L<04><02><02>0<01>T<01>=W<01>g<01><00><><00><01><00>< <00><00><00><00>hy<00><00><00><00>\<00>/ <00><00><00>- <00><00><00><00><00><00><00>? U<00><00><00><00><00>-<00><00><00><00>h0]<00><00><00>lH<00><00>G<00><00><00><00>?<00><00><00><00>)oB <00><00><00>)<00>&<00><00><00> <00>F <00>fP= <00>W<00><00><00><00><00><00>C<00><00>H <00>7 <00><00>u<00><00><00>L(<00><00><00><00><00><00><00><00>E<00><00><00><00><00><00>g <00><00><00>E <00>D <00><00><00><00><00><00><00><00>t<00>A }<00>k<00>; <00><00><00><00><00><00><00><00>38 <00><00><00><00>A<00><00>4<00><00><00>G <00>e<00><00>J<00><00><00><00>n<00><00><00><00><00><00>6 <00><00><00>^i<00><00>9 : <00><00>g<00><00>nq<00>+I<00><00><00><00><00>d<00><00>4<00>x<00><00><00><00>z<00><00>o<00><00><00><00>5<00>Fi<00><00>{~<00><00><00>f7<00>5<00><00><00>K<00>_[<00>*<00>*<00><00><00>(<00><00><00>_2 <00> , <00>a<00>1 r<00><00><00>]<00><00><00><00><00><00>|> <00><00><00>2<00><00><00><00>w<00>\<00>@ vc<00><00>t<00>v<00><00><00><00><00><00>. <00><00><00><00><00><00><00><00>W<00><00><00><00>I <00><00><00>`<00><00><00><00><00><00><00><00><00><00>J<00><00> e<00><00>`<00><00><00><00><00>B<00> <00><00>D<00><00><00>0 <00><00><00><00>Z<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>YX<00><00><00><00>+<00>C 3 <00> __SIM6502__tgi/tgi_clippedline.s
ca65 V2.15 umul16x16r32 udiv32by16r16negax//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace//home/hugg/compilers/cc65/asminc/longbranch.mac tgi_clip_o1 tgi_clip_o2
tgi_clip_d tgi_clip_dx tgi_clip_dy tgi_clip_signoutcode1outcode2negate
calcdeltas@L1@L9 prepare_coordmove_intermediate_result muldiv_dydxdone muldiv_dxdyLoopL1L0L2
HaveDeltasL10L3L4L5L6L7L8L11L12L13L14L15L16CODERODATABSSDATAZEROPAGENULLUzna` ix<00>(G RU<00><00><00><00> T<00> @<40>۵<8B>faX<61><04><17>\<5C>Rt<00><01>C
<82>C<01>\ <09>\<01>+
<01><03>+<01>| <01><01>|<01>2
<82>2<01>( <09>(<01>
<01><02><01>! <01><00>!`6<00><00><00><00><00><01>(!<01>\|9W28}C+<01>e<><00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>B <00>)<00><00> <00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_curtoxy.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadptr1ptr2CODERODATABSSDATAZEROPAGENULLUzna` i<00>w<00> <00><00><00><00> <00> @<40>۵<8B>faX<61><04><17>\<5C>R<A9>faX<61>;<00>
<01>D
<82>D<01>__ +
<82>+<02><01><01>N
<82>N`3<00><00><00><00><00>S+7<01>DN<01>s<>c<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)(<00><00><00>F P= <00><00>H 7 +<00>u)&(<00>'<00><00><00><00>E -D <00><00>A }<00>; <00><00>8 /<00>G <00> <00><00><00><00><00>6 .<00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>**<00><00><00>_2 <00>, 1 <00>,]<00><00>|> <00>2<00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>0Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_done.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload./home/hugg/compilers/cc65/asminc/tgi-error.inc
TGI_ERR_OKTGI_ERR_NO_DRIVERTGI_ERR_CANNOT_LOADTGI_ERR_INV_DRIVERTGI_ERR_INV_MODETGI_ERR_INV_ARGTGI_ERR_INV_FUNCTGI_ERR_INV_FONTTGI_ERR_NO_RESTGI_ERR_UNKNOWNTGI_ERR_INSTALLED TGI_ERR_COUNT@L1CODERODATABSSDATAZEROPAGENULLUzna` ixp<00><00>
 <00><00><00>}  ~ @<40>۵<8B>faX<61><04><17>\<5C>R4<00>  :
<82>: e
<82>e<02>h<01><02>L<01>
<82><01><00><00><00><00><00><02>Ve<02>V:o<01><01><01>t<>  <00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_ellipse.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpushapush0CODERODATABSSDATAZEROPAGENULLUzna` ixb<00> <00> <00><00>sd<00>M <00>N @<40>۵<8B>faX<61><04><17>\<5C>R&<00><01>'
<82>'<01>u
<01><00>u`E<00><00><00><00><00>J<01>'u<01>u<><<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getaspectratio.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixX<00><00> <00><00>sX<00>; <00>< @<40>۵<8B>faX<61><04><17>\<5C>R<00><01>;
<82>;<02>U`&<00><00><00><00><00>:;<01>v<>Y<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getcolor.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixX<00><00> <00><00>sY<00>A <00>B @<40>۵<8B>faX<61><04><17>\<5C>R<00><01>
<82> <02><`U<00><00><00><00><00>F<01> <01>w<><00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>B <00>)<00><00> <00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getcolorcount.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixC<00><00>
<00><00>_/<00> <00> @<40>۵<8B>faX<61><04><17>\<5C>R<00><00><00><00><00><00>\<01>:<01>x<>:<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getdefpalette.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ix<00>- 8;<00><00><00><00> :<00> @<40>۵<8B>faX<61><04><17>\<5C>Rc<00><01>[
<82>[ *
<01><02>*<01>{{ J
<82>J<02>1<01>'
<82>'<01><01> <01>5
<82>5`><00><00><00><00><00>TJ6)'55<01>[*<01>y<><00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_geterror.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` i<00>x<00><00> OV= <00><00>@<40>۵<8B>faX<61> <04><17>\<5C>R<A9>faX<61>u<00><01>3 3<01><01><01><01>_ _<01><<01>, I<01><01> ,<01> H<01><01> $yA
<83>A<01>OO<01><01>`<01><01><00><00>5 <01>W0x?\<01>v<01><01><01><01><01><01><01><01>No error<01><01>No driver availableCannot lLoad drivLerLLInvalid <01>driver<01><01>Mode notI supportIed by drIiverIIInvalid MfunctionM argumenMtMMFunctions not supsportedssInvalid 6font fil6e66Out of rzesourceszzUnknown /error//A driver) is alre)ady inst)alled))<00><00><00><00><01>z<>S<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h0<00><00><00><00>")B <00>)(&<00><00><00>F P= <00><00>9H 7 +<00>8u)&(<00>6'<00><00><00><00>E -D <00><00>A }<00>; <00><00>38 /14;<00>G <00> <00><00><00>$<00>.<00>6 .<00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>5i<00>{~%f7<00>5<00><00>K<00>***<00><00>(<00>_2 <00>, 1 <00>,]<00><00>|> ,2<00>2<00>w\@ v<00><00>t<00>. <00>/<00>W<00><00>I <00><00>`#<00><00><00><00>0J'e<00><00><00>0 <00><00><00><00><00><00><00><00><00>+<00>C 3 <00> __SIM6502__tgi/tgi_geterrormsg.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload./home/hugg/compilers/cc65/asminc/tgi-error.inc
TGI_ERR_OKTGI_ERR_NO_DRIVERTGI_ERR_CANNOT_LOADTGI_ERR_INV_DRIVERTGI_ERR_INV_MODETGI_ERR_INV_ARGTGI_ERR_INV_FUNCTGI_ERR_INV_FONTTGI_ERR_NO_RESTGI_ERR_UNKNOWNTGI_ERR_INSTALLED TGI_ERR_COUNTL1msgtaboffsL2msg0msg1msg2msg3msg4msg5msg6msg7msg8msg9msg10Message table too largeCODERODATABSSDATAZEROPAGENULL <01><01><><01><01> <00><01>NUzna` ixb<00><00> <00><00>}m<00>S <00>T @<40>۵<8B>faX<61><04><17>\<5C>R&<00><01>(
<82>(<01>w<01>G<02>/`%<00><00><00><00><00>F<01>(<01>{<7B>><00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getmaxcolor.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixb<00><00> <00><00>sc<00>E <00>F @<40>۵<8B>faX<61><04><17>\<5C>R&<00><01>'
<82>'<01>u
<01><00>u`E<00><00><00><00><00>D;'u<01>|<7C><<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getmaxx.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixb<00><00> <00><00>sc<00>E <00>F @<40>۵<8B>faX<61><04><17>\<5C>R&<00><01>U
<82>U<01>'
<01><00>'`u<00><00><00><00><00>EaU'<01>}<7D> <00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getmaxy.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixX<00><00> <00><00>sX<00>? <00>@ @<40>۵<8B>faX<61><04><17>\<5C>R<00><01>;
<82>;<02>U`&<00><00><00><00><00>G{;<01>~<7E>Y<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getpagecount.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixC<00><00>
<00><00>_.<00> <00> @<40>۵<8B>faX<61><04><17>\<5C>R<00><00><00><00><00><00>[J:<01><>:<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getpalette.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixk<00><00> <00><00><00>x y @<40>۵<8B>faX<61><04><17>\<5C>R/<00>  (
<82>(<01>xxLG
<82>GL/
<82>/<00><00><00><00><00><02>[/fK(^<01>G<01><02><01> ><00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getpixel.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadreturn0@L9CODERODATABSSDATAZEROPAGENULLUzna` ix<00>V(~ <00><00><00>E<00>: <00>; @<40>۵<8B><02><17>\<5C><04><17>\<5C>R<06><00> M
<82>M<01>$7 <01><00>70@@<01><01> <09><01><01><01>
<82><01><01><01>R
<01><04>R<01>
<01> <09><01><01>
<82><01><01>G <01><00>G<01>g
<01><03>g`<00><00><00><00><00><01>7G<01><01>l0MC<02>gB<02>R<01>f<>-<00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>")B <00>)&<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00>$<00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>
i<00>{~%f<00>5<00><00>K<00>*<00><00>(<00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`#<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getset.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopaxptr1ptr2@L9CODERODATABSSDATAZEROPAGENULLUzna` i<00> <00>2<00> <00><00>@)H q<00>r@<40>۵<8B>faX<61>
<04><17>\<5C>R<A9>faX<61><1E>faX<61><06><00>.#<01>(
<82>(<01>@@<01>
<82><02><01>`<01><01><01>
<82><01><01><01> W
<01><04>W<01><01><01>R <09>R<01>s
<01><04>s<01>" <01><00>"<02><01><01><01> <09><01><01>} <09>}<02><01><01><01> <01><00><01><01>T
<82>T<01><01>
<01><03><01>L
<82><00><00><00><00><00><01>R"<22>}<7D>gDA~?rT<>=<01><03>Ws;j(<01><02><01>.0<00>< <00><00><00>y<00><00> <00>/ - <00>? <00><00><00><00>hC0<00><00> 3<00><00>"B <00>)(&;<00><00><00>F P= 4<00><00>H 7 <00>u)(1<00>'<00><00><00><00>E D <00><00>A }<00>; <00><00>98 4<00>G :<00><00><00><00>$<00>.<00>6 !<00>9 : <00> g<00><00>n+<00>8<00>4<00>x<00><00>zo<00><00><00>i<00>{~%f<00>5<00><00>K<00>***<00><00>(<00>_2 <00>, 1 <00>>]<00><00>|> ,2<00>2<00><w\@ v<00><00>t<00>. <00>/<00>W<00><00>I <00><00>` <00><00><00><00>J'e<00><00><00>0 <00><00>=<00><00><00><00><00><00><00>+<00>C 3 <00> __SIM6502__tgi/tgi_gettextheight.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload3/home/hugg/compilers/cc65/asminc/tgi-vectorfont.incTGI_VF_VERSIONTGI_VF_FIRSTCHARTGI_VF_LASTCHAR TGI_VF_CCOUNT
TGI_VF_HDRMAGICSIZETGI_VECTORFONTTOPBOTTOMHEIGHTWIDTHSCHARSOPS_tgi_vectorchar-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace@L2@L1CODERODATABSSDATAZEROPAGENULLUzna` i<00><00>V<00> <00><00><00><00><00> 8<00>9@<40>۵<8C>faX<61><04><17>\<5C>R<A9>faX<61><1E>faX<61><06><00>WJ<01>"
<82>
"<01><01> <01> <01>
<82><01><01><01>
<01><07><01><01># <09>#L<01>
<82><01><01>U <09>U<01><01> <01><03><01><01>W
<01> <09>W<01> A
<82> A<01><01>9<01><01>3
<82> 3<01>iX<01>X<01><01> <09><01><01>{i(<01>(<01> <01><04><02>V<01><01> <09><01><01>4 <01><05>4<02><01> <09><01>oo ]
<82>]<01><01><01>< <09><e<01> <09><01><01>@ <09>@<01><01><01> <01><05><01><01><01> <09><01><01><01><01><01><01>T <01><03>T<01> <01> <01><01>
<82><01><01><01>
<01><08><01>L<01>
<82><01>`<01><00><00><00><00><00> <02><01><02><01>]<02><01><01><01>7<01>G<01>f#gN<01>@<01>>M<02><01>=<01>WA3;y"<01><02><01>W<01><00>< <00><00><00>y<00><00> <00>/ - <00>? U<00> <00>P<00><00>hCM<00>H<00>G ?3<00><00>")B <00>)(>;<00><00><00>F P= 4<00><00>9CH 7 <00>u)L(1<00>O6'<00><00><00><00>E D <00><00>A }<00>; <00><00>98 T1A4;<00>G :<00>J<00><00><00><00><00>6 <00>9 : <00> g<00><00>n+I<00>d8<00>4<00>x<00><00>zo=<00><00><00>5
i<00>{~f7<00>5<00><00>K<00>_[*N**<00><00>(<00>_2 <00>, a1 <00>>]<00><00>|> 2<00>2<00><w\@ vRK<00><00>t<00>. <00><00>:W<00><00>I <00><00>` #<00><00><00><00>J'eB<00>S<00><00>0 <00><00>Z=<00><00><00>Q<<00><00><00>Y<00><00>C 3 <00> __SIM6502__tgi/tgi_gettextwidth.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload3/home/hugg/compilers/cc65/asminc/tgi-vectorfont.incTGI_VF_VERSIONTGI_VF_FIRSTCHARTGI_VF_LASTCHAR TGI_VF_CCOUNT
TGI_VF_HDRMAGICSIZETGI_VECTORFONTTOPBOTTOMHEIGHTWIDTHSCHARSOPS_tgi_vectorchar-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace_strlen_toascii umul8x16r16WidthWTabText@L1@L9@L2@L4@L3CODERODATABSSDATAZEROPAGENULLUzna` ixb<00><00> <00><00>sd<00>F <00>G @<40>۵<8C>faX<61><04><17>\<5C>R&<00><01>;
<82>;<01>U
<01><00>U`&<00><00><00><00><00>B ;U<01><02><01>Y<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getxres.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixb<00><00> <00><00>sd<00>F <00>G @<40>۵<8C>faX<61><04><17>\<5C>R&<00><01>;
<82>;<01>U
<01><00>U`&<00><00><00><00><00>C;U<01><02><01>Y<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_getyres.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ix<00><00> #<00><00><00><00> "<00> @<40>۵<8C>faX<61><04><17>\<5C>RJ<00> <01>(
<82>(<01>z
<01><01>z I
<82>I<01>/
<82>/<01>%
<01><02>%`<00><00><00><00><00><02>]I9U(z8{/%<01><02><01>@<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_gotoxy.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopaxCODERODATABSSDATAZEROPAGENULLUzna` i<00><00>"<00><00> <00><00>O<00> <00> @<40>۵<8C>faX<61><04><17>\<5C>R<A9>faX<61>f<00>X= &
<82>& @
<82>@ N
<82> N<01><01>
<82><01><01><01><01><01>G<01><01>
<82><01> <01>
<82><01> <01>
<82><01><01>]
<82>]<01>
<01><10> W
<82>W x
<82>x<01>!
<82>!<01><01>
<01><0F><01><02><01> <01>
<82> <01><02> Y
<82> Y <01>
<82> <01><01>H <09>H<01>L <01><00>L s
<82>
s 6
<82> 6<01><01> <09><01> M
<82>M<02><02><01> K
<82>K <01>
<82><01> +
<82>+L<01>
<82><01>`<00><00><00><00><00><01>RHL<02><02>x<02>+<02>K<><02>z<01><02>pM<02><01>W<02>0<01>s<01>&\<01><01>ZrsX<01>YW<01><01>TN6Rl@E}!<21>DQ]7<01><01>61<01>4o<01><01><02><01>X.<00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00>-<00><00>h<00>H<00>?<00><00>"B <00>)(&<00><00><00>F P= <00><00>CH 7 +<00>u)&(<00>6'<00><00><00><00>E -D <00><00>A }<00>; <00><00>38 /A4;<00>G <00> J<00><00><00>$<00>.<00>6 .!<00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>5i<00>{~%f<00>5<00><00>K<00>@**<00><00><00>_2 <00>, 1 <00>,]<00><00>|> ,2<00>2<00>w\@ v<00><00>t<00>. <00><00>:W<00><00>I <00><00>` <00><00><00><00>0J'eB<00>D<00><00>0 <00><00><00><00><00><00><00><00><00>+<00>C 3 <00> __SIM6502__tgi/tgi_init.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload./home/hugg/compilers/cc65/asminc/tgi-error.inc
TGI_ERR_OKTGI_ERR_NO_DRIVERTGI_ERR_CANNOT_LOADTGI_ERR_INV_DRIVERTGI_ERR_INV_MODETGI_ERR_INV_ARGTGI_ERR_INV_FUNCTGI_ERR_INV_FONTTGI_ERR_NO_RESTGI_ERR_UNKNOWNTGI_ERR_INSTALLED TGI_ERR_COUNTpushaxpushadecax1ptr1@L9@L1CODERODATABSSDATAZEROPAGENULLUzna` ixb<00><00> <00><00>xi<00>V <00>W @<40>۵<8C>faX<61><04><17>\<5C>R&<00><01>
<82><01>
<01><00>`2<00><00><00><00><00>=r<01><02><01>.<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_install_vectorfont.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixq<00><00> <00><00><00>  <00> @<40>۵<8C>faX<61><04><17>\<5C>R5<00>
<01> <09><01> <01><00> 3
<82>3L<
<82><<00><00><00><00><00><01>(<02>X3U<<01><02><01>
/<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_ioctl.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopaptr1CODERODATABSSDATAZEROPAGENULLUzna` ix<00>&= IL<00><00><00><00> K<00> @<40>۵<8C>faX<61><04><17>\<5C>Rc<00> *
<82>* |
<82>|<01>J
<82>J<01>1
<01><03>1 '
<82>'<01>
<82><01>
<01><04> L5
<82>5<00><00><00><00><00><02>^|'j<01>*d<01>5M<J1L<01> <01><02><01>A<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_line.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopaxCODERODATABSSDATAZEROPAGENULLUzna` ix<00>3$W be<00><00><00> d<00> @<40>۵<8C>faX<61><04><17>\<5C>R<00><01>Z
<82>Z<01>*
<01><01>*<01>{
<82>{<01>I
<01><03>I '
<82>'<01>
<82> <01>4
<01><02>4<01>=
<82>=<01>i
<01><04>i`<01><00><00><00><00><00><02>'O/Z*Nm 49U{I8|=i<01>j<> <00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>B <00>)<00><00> <00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_linepop.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopaxCODERODATABSSDATAZEROPAGENULLUzna` ix<00> *-<00><00><00><00> ,<00> @<40>۵<8C>faX<61><04><17>\<5C>RN<00>H|<02>J<01>1
<82>1<01>(
<82>(<01>!<01>!h5 >
<82>>Lj
<82>j<00><00><00><00><00>j<01>>d<01>jL<01>(8}1<01><02><01>[<00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_lineto.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopax@L1CODERODATABSSDATAZEROPAGENULLUzna` i'<00> <00>X<00> <00>l
t<00>u@<40>۵<8C>faX<61><04><17>\<5C>R<A9>faX<61><19>faX<61><1F>faX<61><06><00>XC<01><01>
<82>
<01><01><01><01><01>
<01>
<81><01>ii<01><01>
<01><01>, E
<82>E<01><01><01> <
<82><<02>3 <01>
<82><01><01>`
<01><03>`<01><01>
<01><03><00><01><01><01>0__<01><01> H<><01><01> I<>  
<82>Hy<01><01>
<01><03><01><01>D
<01><03><00>D 
<82>h<01><01><01><01>//<01><01>
<82> <01>`
<01><01>
<01><03><01><01>W
<01><03><00>W <01>
<82><01><01>L
<82> L<01><01><01>
<82>
<01>f
<01>
<81>f #
<82>#LF
<82>F<00><00><00>

<82><01>  u  <01><00><00> <02>8<02>N<01><02>p<01><02>A<<02><01>E<02><01>#<02>:<02><01>c<01>F6=<02>L5<01><04>f<01><02><01>X(<00>< <00><00><00>hym<00><00>\<00>/ - <00>? U<00><00>-P<00><00>hK0<00>H<00>G<00><00>oB <00>)(&<00><00><00>F P= W <00><00>92H 7 +<<00>8uJ)&(<00>O6p'<00><00><00>g<00>E -D <00>G<00>A }b<00>; <00><00>8 /A;<00>G <00><00><00>n<00><00>.<00>6 . <00>9 : <00>g<00><00>n+I<00><00>4<00>x<00>0<00>zo <00><00><00>Fi<00>{~f7<00>5<00><00>K<00>[@*N*<00><00>1<00>_2 <00>, a1 r<00>,V]<00><00>|> ,<00>I2<00>w\@ vc<00><00>t<00>. <00>/<00>H/:uW<00><00>I <00><00>4`<00><00><00><00>0Je<00>3B<00><00>0 <00><00><00><00><00>< <00><00>F<00><00>+<00>C 3 <00> __SIM6502__tgi/tgi_load.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload./home/hugg/compilers/cc65/asminc/tgi-error.inc
TGI_ERR_OKTGI_ERR_NO_DRIVERTGI_ERR_CANNOT_LOADTGI_ERR_INV_DRIVERTGI_ERR_INV_MODETGI_ERR_INV_ARGTGI_ERR_INV_FUNCTGI_ERR_INV_FONTTGI_ERR_NO_RESTGI_ERR_UNKNOWNTGI_ERR_INSTALLED TGI_ERR_COUNT,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCLpushaxpusha0incsp2_open_read_closectrl@L0@L1@L3@L2@L5@L4CODERODATABSSDATAZEROPAGENULLUzna` i<00><00>5I~<00>6<00><00><<00>=@<40>۵<8C>faX<61><04><17>\<5C>R<A9>faX<61>N<00>A7<01><01><01><01> <09><01>L
<01><02><00>L0qq<01>x
<01><02>x<01>3
<82>3<01>.
<01><01>.p<01><01>I<>M<01><01><01>mm<01>$$<01><01> <09><01>:
<01><02>:0rr<01>
<83><01>c
<82>c<01>Q
<01><02>Qp<01><01>I<>50<01><01> <09><01>`<01><01><01><01>+ <09>+`<01><01> <09>`X<00><00> [ ? 1 <00><00><00><01>=<>+C3.BcQ<05>k<>A<00>O<01><02><00>N<01><02>1<00>M<01><02>?Lx<4C>L<>[:<00>< <00><00><00>y<00><00>\<00>/ - <00>? <00><00>-<00><00>h0M]<00>H<00>?<00><00>B <00>)><00><00><00>F P= W<00><00>9H 7 <00>8uL(<00><00><00>E<00> <00>E D <00><00>A }b<00>; <00><00>8 4;<00>G <00>J<00><00><00><00><00>6 ^<00>9 : <00>g<00><00>n+I<00><00>4<00>x<00><00>zo=<00><00><00>5Fi<00>{~f7<00>5<00><00>K<00>@*<00><00><00>_2 <00> , 1 <00>V]<00><00>|> <00><00>w\@ vRK<00><00>t<00>. <00>/<00>:W<00><00>I <00><00>`<00><00><00><00>J e`<00><00><00>0 <00><00><00><00><00>Q<<00><00><00>X<00><00>C 3 <00> __SIM6502__tgi/tgi_outcode.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespaceL2L1L4L3L7L5L6CODERODATABSSDATAZEROPAGENULLUzna` i<00>h<00>o}<00><00>
<00> <00><00>@<40>۵<8C>faX<61><04><17>\<5C>R<A9>faX<61><1E>faX<61>,<00><00>z<01>
<82> <01>,<01>w <09>w<01>+ <01><03>+H<01><01>rH<01> <01>
<82><01> <01>
<82> <01>h<01><01><01>h<01> 
<82><01><01>
<82> <01><01>aa <01>
<82><01><02>D<01>y<01>
<82><01><01>1
<82>1<01>&y<01>
<01><0E><01><01>f
<01><0E>f`<01><01>!<01><01>
<82> <01> m
<01> <0B>m<01><01><01><01><01> <09>H<01><01>> <01><02>>H<01><01><01> <01><02><01>H<01><01><01> <01><02><00><01>H <01>v <09>v<01><01> <01><02><01><01><01>
<82> <01>[i<01><01><01><01><01> <01><02><01><01>k
<01> <0B>ki9<01>9<01>Q <01><02><00>Q<02>\<01> <09> <01>% p
<82>pH, L
<82>Lh<01><01><01><01><01> <01><02><01><01><01> <09><01><02><01><01>4 <01><04>4<01><01>
<82>
<01><01><01>
<01>
<81><01> 
<82> H
<01><00>H<01><01> <09><01><01><01><01> <01><02><01>W<01>Wh<01><01> <01><02><00>h<01><01><01> <01><02><01>h<01><01>d <01><02>dh)<01><01> <09><01>`<01><00><00><00><00><00><02><01><01><02>lp<01><01>:V<01>%w+<01>%<02>4<02>L<02><01>g]e<01>bK<01>>Z<02><01>=<01><04>m<>k<<01><01>;<01>8<01><04>1<>f<01><02><01><00><01><00>< <00><00><00>ym<00><00>\ <00>/ <00>|- <00><00><00>? U<00><00>-<00><00>hC<00><00>lH<00>G ?3<00><00><00>"oB <00>)(><00>;y<00><00><00>F fP= 4W<00><00>H 7 <00>8u)}(1<00>p'<00><00><00>g<00>E D <00><00><00>A }bk<00>; <00><00>398 <00>1A<00>G :<00>e J<00><00>n<00>$<00><00>6 ^!<00>9 : <00> g<00><00>nq+I<00>d8<00>4<00>x<00>x<00>zo= <00><00><00><00>i<00>{~%f7<00>5<00><00>K<00><00>_<00>[@***<00><00>(<00>_2 <00>, a1 <00>>V]<00><00>|> ,2<00>2<00><ww\@ vcK<00><00>tvz<00>. <00><00>uW<00><00>I <00><00>`#<00><00><00><00>J'e<00>B<00><00><00><00>0 <00><00>Z=<00><00>{<00><00><00><<00><00><00><00>YX<00>+<00>C 3 <00> __SIM6502__tgi/tgi_outtext.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload3/home/hugg/compilers/cc65/asminc/tgi-vectorfont.incTGI_VF_VERSIONTGI_VF_FIRSTCHARTGI_VF_LASTCHAR TGI_VF_CCOUNT
TGI_VF_HDRMAGICSIZETGI_VECTORFONTTOPBOTTOMHEIGHTWIDTHSCHARSOPS_tgi_vectorchar-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace_toasciipopaxnegaxtextfontwidths
VectorFont
MoveCursor@L1Done EndOfTextCODERODATABSSDATAZEROPAGENULLUzna` ix<00>S, <00><00><00>Q<00>@ <00>A @<40>۵<8C>faX<61><04><17>\<5C>R<06><00>!H+<02><01>$ <09>$<01>7
<82>7<01>@<01>o <09>o<01><01>
<01><03><01><01><01><01> <09><01><01><01>
<82><01><01><01>Q <09>Q<01>
<01><04>h<01> <01>
<82><01>L
<82><00><00><00><00><00><01>$o<>Q<02>b<01><02>|9Y7<>8<01><02><01><02><01>!^<00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>"B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00>$<00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~%f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>` <00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_outtextxy.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadaddysp1spCODERODATABSSDATAZEROPAGENULLUzna` ix<00><00> !$<00><00><00><00> #<00> @<40>۵<8C><02><17>\<5C><04><17>\<5C>RJ<00>  <01>) <09>)<01>{ <01><00>{ J
<82>J<01>0 <09>0<01>& <01><01>&`<00><00><00><00><00><01>^){<01>^0&<02>J<01>l<> A<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00> <00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_popxy.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopaxptr1ptr2CODERODATABSSDATAZEROPAGENULLUzna` ix<00><00> !$<00><00><00><00> #<00> @<40>۵<8C>faX<61><04><17>\<5C>RJ<00>  <01>) <09>)<01>{ <01><00>{ I
<82>I<01>0 <09>0<01>& <01><01>&`<00><00><00><00><00><01>]){<01>]0&<02>I<01>m<> @<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00> <00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_popxy2.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadpopaxptr3ptr4CODERODATABSSDATAZEROPAGENULLUzna` ixb<00> <00> <00><00>xj<00>S <00>T @<40>۵<8C>faX<61><04><17>\<5C>R&<00><01>(
<82>(<01>v
<01><00>v`F<00><00><00><00><00>J<01>(v<01><02><01>=<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_setaspectratio.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` ixu<00> <00><00><00> <00> @<40>۵<8C>faX<61><04><17>\<5C>R9<00>
<01>=
<82>=<01>WW<01>(
<82>(Lx
<82>xLF
<82>F<00><00><00><00><00>hOFY,xF<01>=:(<01><02><01>[<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_setcolor.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload@L1CODERODATABSSDATAZEROPAGENULLUzna` ixk<00><00> }<00><00>m n @<40>۵<8C>faX<61><04><17>\<5C>R/<00> <01>=
<82>=<01>VVL'
<82>'Lw
<82>w<00><00><00><00><00>hNwX<01>'G}=<01><02><01> Z<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_setdrawpage.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload@L1CODERODATABSSDATAZEROPAGENULLUzna` ixg<00><00> <00><00>}z<00>d <00>e @<40>۵<8C>faX<61><04><17>\<5C>R+<00><01>H <09>H<01>/ <01><00>/L%
<82>%<00><00><00><00><00><01>?H/Z[%<01><02><01>(<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_setpalette.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadptr1CODERODATABSSDATAZEROPAGENULLUzna` ixf<00> <00> <00><00>}w<00>^ <00>_ @<40>۵<8C>faX<61><04><17>\<5C>R*<00>  =
<82>=<01>VVL'
<82>'`w<00><00><00><00><00>fI=] '<01><02><01> Z<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00> <00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>
i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_setpixel.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload@L9CODERODATABSSDATAZEROPAGENULLUzna` ixR<00><00> <00><00>sS<00>8 <00>9 @<40>۵<8C>faX<61><04><17>\<5C>R<00><01>.
<82>.`%<00><00><00><00><00><[.<01><02><01>u<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo<00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_settextdir.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unloadCODERODATABSSDATAZEROPAGENULLUzna` i<00>s<00>YSru<00><00> <00>t<00>@<40>۵<8C>faX<61>faX<61><14><17>\<5C>R<A9>faX<61>7<00>D3<01><01>
<82><01> <01>
<82><01><01>
<82> <01>
<82><01><01>q
<82>q<01><01> <09>
<01><02> g
<01><00> g <01>
<82><01><01>K
<82>K<01><01> <09>
<01><02>> Q
<01><00>8Q,<01>
<82><01>0  
<01>pp<01><01><02>E <01>
<01><00>8<01><01><01> <09> <01> <01>
<82><01><01> <09> <01><01>
<82><01><01><01>H<01><01>]<01><01>
<82><01><01><01>ho`1<00><00><00><00><00> <02><01><02><01><02><01><01><02>/<01>[%<01>YMqX?KN<01><02><01>L<01>K<01> w<02>n<02><01><02><02><01> <01><00><02><01><00> 8<01><00><00>h\<00><00>j <00>U<00>G <00><00><00><00><00><00><00><00>C e0<00><00>zG<00>~3 "<00>(<00><00>; H <00><00>A  ]f<00><00><00>4<00><00> _C<00>+x8<00>K`)|I LtB 1 <00><00>6<00><00><00><00>E<00><00><00><00>6 <00>o<00>- <00><00>b<00>D 9 \<00>v / i1<00><00><00>:  eJ.<00>. <00><00><00> <00><00>g<00><00><00>Id<00>8 u}<00><00><00>{<00>5
F<00>n<00><00>7<00>? _<00>f[*N*<00><00>F a> , <00>2 < <00>E <00>cK<00><00><00>/<00><00>h@ <00><00>y W<00><00><00>50 P<00><00>`<00><00><00>Z= 7 <00>w<00><00>JY<00><00><00> __SIM6502__tgi/tgi_settextstyle.s
ca65 V2.15-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload umul8x16r24popapopax(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510process_onedimstore@L2@L1CODERODATABSSDATAZEROPAGENULLUzna` ixk<00><00> }<00><00>m n @<40>۵<8C>faX<61><04><17>\<5C>R/<00> <01>W
<82>W<01>))Lw
<82>wLF
<82>F<00><00><00><00><00>hOFW<01>wG}W<01><02><01> <00>< <00><00><00>y<00><00><00>/ - <00>? <00> <00><00><00>h<00><00><00><00>B <00>)<00><00><00>F P= <00><00>H 7 <00>u(<00><00><00><00><00>E D <00><00>A }<00>; <00><00>8 <00>G <00><00><00><00><00><00>6 <00>9 : <00>g<00><00>n+<00><00>4<00>x<00><00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>*<00><00><00>_2 <00>, 1 <00>]<00><00>|> <00><00>w\@ v<00><00>t<00>. <00><00>W<00><00>I <00><00>`<00><00><00><00>Je<00><00><00>0 <00><00><00><00><00><00><00><00><00><00>C 3 <00> __SIM6502__tgi/tgi_setviewpage.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload@L1CODERODATABSSDATAZEROPAGENULLUzna` i<00><00>L"n z}1<00><00> T|U@<40>۵<8C>faX<61><04><17>\<5C>R<A9>faX<61><19>faX<61><06><00><01><01>
<82><01> W
<82>W<01>99<01>
<82>H#<01>>
<01><03>>HI <01>
<82><01>h<01><01><01>hL\
<82>\<02><01><01>T
<82>T`<00><00><00><00><00><02><01>\<02><01>6.T5<01><04>W><01><02><01>j<00>< <00><00><00>y<00><00><00>/ - <00>? <00><00><00><00>hK<00><00><00><00>"B <00>)(<00><00><00>F P= <00><00>2H 7 +<<00>uJ)&(<00>'<00><00><00><00>E -D <00>G<00>A }<00>; <00><00>8 /<00>G <00><00><00><00><00><00>6 .!<00>9 : <00>g<00><00>n+<00><00>4<00>x<00>0<00>zo <00><00><00>i<00>{~f<00>5<00><00>K<00>**<00><00>1<00>_2 <00>, 1 <00>,]<00><00>|> <00>I2<00>w\@ v<00><00>t<00>. <00><00>H/W<00><00>I <00><00>4` <00><00><00><00>0Je<00>3B<00><00>0 <00><00><00><00><00><00><00>F<00><00><00>C 3 <00> __SIM6502__tgi/tgi_unload.s
ca65 V2.15//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload./home/hugg/compilers/cc65/asminc/tgi-error.inc
TGI_ERR_OKTGI_ERR_NO_DRIVERTGI_ERR_CANNOT_LOADTGI_ERR_INV_DRIVERTGI_ERR_INV_MODETGI_ERR_INV_ARGTGI_ERR_INV_FUNCTGI_ERR_INV_FONTTGI_ERR_NO_RESTGI_ERR_UNKNOWNTGI_ERR_INSTALLED TGI_ERR_COUNT,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM no_driverCODERODATABSSDATAZEROPAGENULLUzna` i'<00><00>V<00><00><00><00><00>
<00><00><00>@<40>۵<8C>faX<61>/<08><17>\<5C>R<A9>faX<61><1E>faX<61><05>faX<61><06><00><00><02><02><01><01><01> <09><01><01>1 <09>1<01><01><01><01><01> <01><00><01>
"fv <01><00>v<02><01>ɀqjx<01><01><01>V`<01><01><01>
<01><05><01><01>Z
<01><05>Z<01><01> <09><01><01>R <01><01>R 
<83>Lu
<82>u y$
<01> <09>$H<01><01><01>y<01>
<01> <09><01><01><01>hi`<01>I<><01>8<01>y<01>
<01> <09><01>H<01><01>9I<><01>y<01>
<01> <09><01><01>hQ`<01>
<01><01><01><01> <09><01>H<01><01><01> <01><00><01>H6<01><01> <01><00><01>HL<01>I
<82>Iwi<01>"<01><01><01> <09><01><01>0
<01><07>0i<01><01><01>_ <01><00>_<01><01><01> <09><01><01><01><01><01><01>t <09>t<01><01> <09><01><01><01> <01><00><01><01><01>
<01><06><01><01><01>
<01><06><01> <01>
<01><00><01><01>b
<82>b<01><01><01><02><01> <01>
<01><00>&<01><01>@
<01><02>@<01>7
<01><02><00>7 
<01><00><02><01> <01>
<01><00>2<01><01>
<01><02><01><01>
<01><02><00><01>L*
<01><00><>*<02>y <01>
<01><00>2<01><01><01>
<01><02><01><01>
<01><02><00> <01>
<01><00><01><02><01> +
<01><00>2+<01>c
<01><02>c<01>[
<01><02><00>[$ <01><00><01><01><02><01><01><01>
<83><01><01><01>
<82><01><01><01><01><01> )
<82>)<02>
<01><01>
<01><02><01><01><01>
<83><01><01><01>n<01>n$; <01><00>;P<01><01><01>h<01><01>m <01><00>mhA<01><01> <01><00><01>hG<01><01> <09><01>`<01><00><00>  <01> <01> <00><00><00>
<01><01>ez<01>,<02>Rkjuh<01>)P<01><01>C<01><02>ZBh<02><01>A<01>I0@<01>b<<01><04><01>$<24><01><02><01><00>B<00><01><00>< <00><00><00><00><00>y<00><00><00>\ <00>/ |- <00><00><00>? <00><00><00><00>P<00><00><00>h<00>C0<00>]<00><00>G<00><00><00> 3<00><00><00>)B <00>)(<00><00>;ys<00><00><00><00>F <00><00>P= 4<00><00><00>C<00>H 7 <00><00>u)}L(1<00>6'<00><00>E<00><00><00><00><00>E D <00><00><00><00>A }b<00>; <00><00><00><00><00>398 <00>T1<00>4<00><00>G :<00>e<00><00><00><00><00><00><00>6 ^<00><00>9 : <00> <00>g<00><00>n+<00><00><00><00>8<00>4<00>x<00><00>x<00>zo<00><00><00><00><00>5
i<00>{~f<00>5<00><00><00>K<00><00>_<00><00>*<00>**<00><00>(<00><00><00>_2 <00>, <00>a<00>1 <00>><00><00>]<00><00>|> <00><00>2<00><00>2<00><<00>ww\@ vcK<00><00><00>t<00>vz<00><00>. <00><00>:u~W<00><00><00><00>I <00><00>`#<00><00><00><00><00><00>J'e<00>`<00><00><00>D<00><00><00>0 <00><00>Z=<00><00>{<00><00><00><<00><00><00><00><00><00><00><00><00>+<00>C 3 <00> __SIM6502__tgi/tgi_vectorchar.s
ca65 V2.15 imul16x16r32 umul16x16r32negaxnegeax//home/hugg/compilers/cc65/asminc/tgi-kernel.incTGI_HDRID.sizeVERSIONLIBREFVARSXRESYRES
COLORCOUNT PAGECOUNT FONTWIDTH
FONTHEIGHT ASPECTRATIOFLAGSJUMPTABINSTALL UNINSTALLINITDONEGETERRORCONTROLCLEAR SETVIEWPAGE SETDRAWPAGESETCOLOR
SETPALETTE
GETPALETTE GETDEFPALETTESETPIXELGETPIXELLINEBAR TEXTSTYLEOUTTEXTIRQTGI_API_VERSIONTGI_BM_FONT_FINESCALETGI_FONT_BITMAPTGI_FONT_VECTORTGI_TEXT_HORIZONTALTGI_TEXT_VERTICAL TGI_CLIP_NONE TGI_CLIP_LEFTTGI_CLIP_RIGHTTGI_CLIP_BOTTOM TGI_CLIP_TOPtgi_color_blacktgi_color_white_tgi_drv
_tgi_error
_tgi_gmode _tgi_curx _tgi_cury
_tgi_color _tgi_font _tgi_textdir_tgi_vectorfont_tgi_textscalew_tgi_textscaleh_tgi_charwidth_tgi_charheight _tgi_xres _tgi_yres _tgi_xmax _tgi_ymax_tgi_colorcount_tgi_pagecount_tgi_fontwidth_tgi_fontheight_tgi_aspectratio
_tgi_flags tgi_clip_x1 tgi_clip_y1 tgi_clip_x2 tgi_clip_y2 tgi_install tgi_uninstalltgi_inittgi_done tgi_geterror tgi_control tgi_cleartgi_setviewpagetgi_setdrawpage tgi_setcolortgi_setpalettetgi_getpalettetgi_getdefpalette tgi_setpixel tgi_getpixeltgi_linetgi_bar tgi_textstyle tgi_outtext tgi_clear_ptrtgi_clippedline tgi_curtoxy
tgi_getset tgi_imulround tgi_inv_arg tgi_inv_drv tgi_linepop tgi_outcode tgi_popxy
tgi_popxy2 tgi_set_ptr_tgi_arc_tgi_bar _tgi_circle
_tgi_clear _tgi_done _tgi_ellipse_tgi_getaspectratio _tgi_getcolor_tgi_getcolorcount_tgi_getdefpalette _tgi_geterror_tgi_geterrormsg_tgi_getmaxcolor _tgi_getmaxx _tgi_getmaxy_tgi_getpagecount_tgi_getpalette _tgi_getpixel_tgi_gettextheight_tgi_gettextwidth _tgi_getxres _tgi_getyres _tgi_gotoxy_tgi_imulround _tgi_init _tgi_install_tgi_install_vectorfont
_tgi_ioctl _tgi_line _tgi_lineto_tgi_load_driver _tgi_outtext_tgi_outtextxy _tgi_pieslice_tgi_setaspectratio _tgi_setcolor_tgi_setdrawpage_tgi_setpalette _tgi_setpixel_tgi_settextdir_tgi_settextscale_tgi_settextstyle_tgi_setviewpage_tgi_uninstall _tgi_unload3/home/hugg/compilers/cc65/asminc/tgi-vectorfont.incTGI_VF_VERSIONTGI_VF_FIRSTCHARTGI_VF_LASTCHAR TGI_VF_CCOUNT
TGI_VF_HDRMAGICSIZETGI_VECTORFONTTOPBOTTOMHEIGHTWIDTHSCHARSOPS_tgi_vectorchar-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace//home/hugg/compilers/cc65/asminc/longbranch.macOpsFlagX1Y1X2Y2GetOpGetProcessedYCoordGetProcessedCoord AddBaseCoord SubBaseCoordLoop @Vertical @DrawMove@MoveCODERODATABSSDATAZEROPAGENULLUzna` ixA<00>)<00> <00><00>-l<00><00><00>@<40>۵<8C><02><17>\<5C> faX<61> 
'2/H<01>H #
<82>#<01> <09>h<01> <01><03>h8<01>2 <09>2 <01><03><01>

<02> <01>6 <01><02>6<01>) <09>)<01> <01>& <09>&<01>; <09>;<01>,<01><01> <09><01>0<01> <09><01> <09><01> <01><02><01>  
<82><01> <09>` ()*+, %  6& 2);#<01><04>2<-0")>& 9861.!
=5
"@ *(,/  'B+- __SIM6502__ common/time.s
ca65 V2.15_time __systimeptr1sregtmp1*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX@L1.size@L2CODERODATABSSDATAZEROPAGENULLUzna` iq<00>e,<00>/<00><00><00><00>h<00>i@<40>۵<8C><02><17>\<5C> <06>OJ<02> <01>( <09>(<01> <01><00> 
<82> 
<01><00><01> <09><01>. <01><02>.`)<02><01>/ <01><01>/<02><01># <01><00>#<01>' <09>'& <01><02>*&&3 <01><01>3H<01> <09><01>, <01><01>,<01> <01><00><01><01> <01><01>h<01>! <09>!H<01>$ <09>$h
<01>-<01><01><01>2 <09>2`0 <09>0& <01><02>*"<01><01> <09><01><01>+ <09>+<01> <09> <01>%<01><01><01> <09>`1
 (#!+  /3,2 .'$0 <03><01><00><12><01><00> <19><04>4-P0G")& 9CLO6E314; J$.I= 5F%7N*(RK/:#DQ<+ __SIM6502__runtime/udiv.s
ca65 V2.15 tosudiva0 tosudivaxudiv16popsregsregptr1ptr4.size
udiv16by8aL0L1@L0@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` ix`<00>&<00><00><00> <00><00>@<40>۵<8C><02><17>\<5C>faX<61>)1/<01> <09><01>% <01><00>%<02>"<01> <01><03><02>  <09>&& <01><02>&&! <09>!& <01><01>*&# <01><03>#H<01> <09><01>$ <01><03>$<01> <01><00><01><01>' <01><03>'h<01> <09>H<01> <09> h<01><01> <01> <01> <09><01> <09><01> <01><02> ` % !
&  
#$'<02><01><00><12><04>(-")& 86314 .! 5%7(,2/ #'+ __SIM6502__runtime/udiv32by16r16.s
ca65 V2.15 udiv32by16r16udiv32by16r16m-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeL0L1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>9<L<00>~;@<40>۵<8C><02><17>\<5C>Y <02><01> <09><01> <01><00>  
<82>  
<82><01> <09><01> <01><01>`     

 <02><01><00> <08><04>     __SIM6502__runtime/umod.s
ca65 V2.15 tosumoda0 tosumodaxpopsregudiv16ptr1ptr4.sizeCODERODATABSSDATAZEROPAGENULLUzna` ixG<00><00>9<00><00>% @<40>۵<8C><02><17>\<5C> faX<61>,*<01> <09><01>% <01><00>%<02>#<01> <01><02><02>F$ <01><01>$f <09><01> 'e <09>H<01> <01><00>e! <01><02>!<01> <01><02>hf <01><02> jf <01><01>f <09> <01><01> <01> <01>" <09>"<01> <09><01>& <01><01>&` % $ &

! "<04><01><00><18><06><18><01><00><12><04>(-0?") 86314; $.! =5%7(,/:#'<+! __SIM6502__runtime/umul16x16r32.s
ca65 V2.15 umul16x16r32 umul16x16r32m umul16x16r16 umul16x16r16m-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.size@L0@L1CODERODATABSSDATAZEROPAGENULLUzna` ixE<00><00>9<00><00>   @<40>۵<8C><02><17>\<5C> faX<61>.,<01> <09><01> <01><00><02><01> <01><01><01>% <09>%<02><01> <09><01>& <09>&j<01>)H<01>e <01><01><01>" <01><01>"<01> <01><00>e <09><01> <09>hf <09>f <01><01> j<01> <01> <01> <01> <09><01>( <01><01>(`  &" (

%<04><01><00>#<17><06> <17><01><00>'<12><04>$*-0?")& 98631; .! =5%7(,2/ #'<+! __SIM6502__runtime/umul8x16r24.s
ca65 V2.15 umul8x16r24 umul8x16r24m umul8x16r16 umul8x16r16m-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.size@L0@L1CODERODATABSSDATAZEROPAGENULLUzna` ix<00>:M<00><00><00><00><00><00><00><00>@<40>۵<8C><02><17>\<5C>faX<61>t~i 
<82>
<01>" <09>"I<>6<01>
<01><03> <01>#<01>- <01><02>-I<><01>0
<01><03>0 
<82><01>< <09><<01>$ <01><03>$ +
<82>+<01> <09><01> <01><01><02><01>C <09>C<01> <09>/e/ <09>/<01> <09><01> <01>) <09>)e& <01><02>&<01>: <09>:<01>
<01><03><01><01>F <09>F<01>9 <09>9<01>A<01>!!<01> <01><03><01>5 <09>5 
<82>LI
<01><00>2I<01>D
<01><03>D<01>4<01>4`<01> <09><01>( <01><03>(<02>=<01>;
<83>;<01>8
<01><03>8<02>E<01> <09><01><01>><01> <09>  
<82><02>,<01> H<> <01> <09><01>B<01> I<><01>1 <09>1<01> <09><01>G <01><03>G 3
<82>3<01>
<83><01>
<01><03>`72
<83>@?  .CF5 .): ."-/&
.<$9(G . 13*
+*<01><01><00>N'J\<00>|<00>UP0<00>HG?<00>o> <00>W9C<00>}O6pE<00>3T14;JqI=<00>5
F7<00><00>[V2<00>wRKv:u~S<00>DZ{Q<00>X __SIM6502__conio/vcprintf.s
ca65 V2.15 _vcprintfpushaxpopax__printf_cputcspptr1ptr2ptr3tmp1,/home/hugg/compilers/cc65/asminc/generic.macoutdesc.sizeout@L1@L4@L2@L3CODERODATABSSDATAZEROPAGENULLUzna` i<00>Z<00>( Kb<00>AB@<40>۵<8C>faX<61>faX<61>faX<61><1F><17>\<5C>23+H<02> <01>' <09>'<01>
<01><03><01>8 H<>8<01> <09><01><01>$ <09>$<01>
<01><03><00> <01> I<><01> <09> h (
<82>(<01> <09><01> <01><01><01>
<01><03><01>
<01><03><00> -
<82>-<01><01>AA<02><>@<01>=`&<01>% <09>%<01>7 <01><01>7`+34
<82>6
<82>356,( '$ -6<01><04>1"B U('PMH7G? W CC2<AOE5bTA;  I0+F_[@N aV*8:96 `B3,)BZ.
YX7 __SIM6502__common/vfscanf.s
ca65 V2.15_vfscanf_fgetc_ungetc_ferror-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespacecommon/_scanf.inc SCANFDATAGET.sizeUNGETDATA__scanf*/home/hugg/compilers/cc65/asminc/stdio.inc_IOFBF_IOLBF_IONBFBUFSIZEOF FILENAME_MAXL_tmpnamSEEK_CURSEEK_ENDSEEK_SETTMP_MAX FOPEN_MAX_stdin_stdout_stderrcountdL1CODERODATABSSZEROPAGENULLUzna` iq<00><00>-0V<00>r<00>/<00>@<40>۵<8C><02><17>\<5C>S
<02>
<02>Q <09><01> <09> <01><01>Q <09><01><01> <09>L
<82>       <02><01><00> <0B><04>     __SIM6502__ runtime/xor.s
ca65 V2.15tosxora0tosxoraxaddysp1sptmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` kzi<00>)  <00><00><00><00>@<40><><91><F8><11><>\<5C>faX<61><06>, 
<82><01>
<82><01>
<01><05> 
<82><01> H<><01> I<> 
<82><02>  
<82><02>  
<82><02> 
<82><02><02> 
<82> L
<82><18>A
S
S
E
R
T
I
O
N
 
F
A
I
L
E
D
  I N   % s ( % u ) 
     <01><15>, -0")&14$. 5
%*(,2/#'+! __SIM6502__../libwrk/sim6502/_afailed.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stderr_fprintf_exit __afailedL0004.sizepushaxpushwyspincsp4CODERODATABSSDATAZEROPAGENULLUzna` iqA<00><00> <00><00><00>Y0<00>1@<40><><91><F8>faX<61>
  
 <01><04>  __SIM6502__conio/_cursor.s
ca65 V2.15cursor.sizeCODERODATABSSDATAZEROPAGENULLUzna` ia<00> <00> <00><00><00>[V<00>W@<40><><91><F8>faX<61>faX<61> faX<61>*3
 
<82><01>
<82> <02><>.<01>(`"45678+ <01> <09>
3 
"   9 __SIM6502__common/_directerrno.s
ca65 V2.15*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00>9<00>89<00><00><00>@<40><><91><F8>faX<61>
   
 <04><08><04><01><03><07><01><03><07><04>  __SIM6502__common/_environ.s
ca65 V2.15 __environ
__envcount __envsizeinitenvenv_init.sizeCODERODATABSSDATAZEROPAGENULLUzna` i<00>j<00>1! -0Eu<00>/@<40><><91><F8>faX<61> faX<61> &faX<61>1faX<61>/E{f<01>
<83><01>a
<01><02>a<02><01>k <09>k<01>` <01><01>`<01>4<01> <09><01>b <09>b<02>g<01>J <09>J<02>w<01>GG<01>s2s<01>RR<02>r <01>22<01>]]<01><02>a+<01>SS<01>)R)<01>B<01><01> <09><01>__<02>+-<01>pp<01>= <01><01>E<01>E<02>b,<01>j<01>j<01> 
<82><01>9L0
<82>0<02>!<01>
<01>o <09>o<01>W<01>l<01>* <09>*<02> O
<82>O<02><>n<01>DD<02><><01>L3
<82>3<01>(
<83>(<01>V <09>V<01>:
<01><02>:<01>. <01><01>.<02><01>$ <09>$<02><01>55<01> <09><01>1 <09>1<01> <01><01>`"F
G ;HIJF
/
`bJV.$1 /ko*30>O<01><04>{C<th\jU -P0]HG ?")o>f98Opg b3T1A;e Jn.^!i 
Idx=
F"7[@ *( rV,2cRz/ : #' BSZQ<+K __SIM6502__common/_fopen.s
ca65 V2.15__fopen_openpushaxincsp4return0spptr1*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCL*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACK __filetabfile@L1@L3@L2invmodemodeok@L4openokCODERODATABSSDATAZEROPAGENULLUzna` ix<00>EdY<00><00><00>6<00><00><00>@<40><><91><F8>faX<61> faX<61>*

<01><03>
<01><03>
<01><03>h8<01> <09><01>! H<>!<01>
<01><03><01> <01><00><01> I<><01>$
<01><03><00>$` !  <06><01><03>%<00><01><03><00><01><03> $<24><01><03> <00><13><00><04> &"& !#$!"%*(  #' __SIM6502__common/_heap.s
ca65 V2.15initheap __BSS_RUN__ __BSS_SIZE__ __STACKSIZE__sp*/home/hugg/compilers/cc65/asminc/_heap.inc freeblocksize.sizenextprev usedblockstartHEAP_MIN_BLOCKSIZEHEAP_ADMIN_SPACE __heaporg __heapptr __heapend __heapfirst
__heaplastCODERODATABSSDATAZEROPAGENULLONCEUzna` i<00>a<00> <00><00><00>NT<00><00><00>@<40><><91><F8>faX<61>
faX<61>faX<61><06>!<01> <09><01>$ <01><03>$ 
<82><01> <09><01> <01><02><01> <09><01> <01><03><01>  <02><01>`#<02>%<01> <09><01><01><01> <09>L
<82>  $<01><08>& -"!#34 $.! 
"%,/ #'+ __SIM6502__common/_heapadd.s
ca65 V2.15ptr1ptr2popaxheapadd __heapadd*/home/hugg/compilers/cc65/asminc/_heap.inc freeblocksize.sizenextprev usedblockstartHEAP_MIN_BLOCKSIZEHEAP_ADMIN_SPACE __heaporg __heapptr __heapend __heapfirst
__heaplast,/home/hugg/compilers/cc65/asminc/generic.mac@L1CODERODATABSSDATAZEROPAGENULLUzna` i<00>/<00><00> <00><00>xS\<00><00><00>@<40><><91><F8>faX<61>faX<61>faX<61>faX<61><06>*,*<01>8 <09>8<01>
<01>' <01><01>'<02><><01>G <09>G<01>> <09>><01>$<01> <09><01>? <01><00>?<02>D<01>0 <09>0<01><01><01># <09>#<01>= e . <09> .HI<01>(e <01><00><01>h-8<01>% <09>%HF<01><01>H <01><01>H<01>h*`"+,-./>?0# 8'GH<01><06>)K -?")> !CE# A;J.!=
F"@*(,K : #'BD<0 __SIM6502__common/_heapblocksize.s
ca65 V2.15ptr1ptr2__heapblocksize*/home/hugg/compilers/cc65/asminc/_heap.inc freeblocksize.sizenextprev usedblockstartHEAP_MIN_BLOCKSIZEHEAP_ADMIN_SPACE __heaporg __heapptr __heapend __heapfirst
__heaplast,/home/hugg/compilers/cc65/asminc/generic.mac(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510CODERODATABSSDATAZEROPAGENULLUzna` i<00>j2<00> <00><00>A<00>`L<00>M@<40><><91><F8>faX<61> faX<61>faX<61><06>SI<01><
<82><8<01>%
<82>%<01>8 <09>8<01>2
<01><01>2<01>
<01><02> <01>& <01><03>&<01>$
<82>$<01> <09> <01>9
<01><00>9<01>" <01><04>". <09>.<01>%<02><01># <09>#85<01>5 <09>5<01>
<01> <01><03><01>1 <09>1<01> <02>+<01> <09><01> <09><01>7<01> <09> <01>? <01><03>?<01>,<01> <09><01>=<01><01>> <09>><01> <09>L(
<01><00>(<01>! <09>!83<02>3%<01> <01><03><01>  <01>--<01>`<01>` !*$9<26 '8&#?!'
".51 ><01><06>@U -P0M")!9C8LOE#3T1A;J$.!
F"7@N(2K/ :#BD<" __SIM6502__common/_heapmaxavail.s
ca65 V2.15ptr1ptr2__heapmaxavail*/home/hugg/compilers/cc65/asminc/_heap.inc freeblocksize.sizenextprev usedblockstartHEAP_MIN_BLOCKSIZEHEAP_ADMIN_SPACE __heaporg __heapptr __heapend __heapfirst
__heaplast,/home/hugg/compilers/cc65/asminc/generic.mac@L1@L3@L2@L5@L4CODERODATABSSDATAZEROPAGENULLUzna` i<00>V4<00> <00><00>A<00>T.<00>/@<40><><91><F8>faX<61> faX<61>faX<61><06>NE<02>;<01> <09><01>7 <01><03>7<01>
<82><01>= <09>=<01>6
<01><00>6<01> <01><04> ( <09>(<01><02>-<01>? <09>?0 e0+ <09>0+<01> <09><01><01>3 <09>3e <01><03> <01> <01><03><01>#<01> <09><01>)<01><01> <09><01>5 <09>5L
<01><00><01> <09>* m*+
<82>*+<01> <09><01>< <01><03><m
<01><01><01>><01>% <09>%8 <01> !
<82> !<01>
<09>
<01>"<01>
<01><02><01>1<01> <09>`,'6*4 $ 70 <%
$= (?35<01><06>@ -0HG?&!9C8L6#1A;J.!I5
F"%7@N*,K/ : BD+ __SIM6502__common/_heapmemavail.s
ca65 V2.15ptr1ptr2__heapmemavail*/home/hugg/compilers/cc65/asminc/_heap.inc freeblocksize.sizenextprev usedblockstartHEAP_MIN_BLOCKSIZEHEAP_ADMIN_SPACE __heaporg __heapptr __heapend __heapfirst
__heaplast,/home/hugg/compilers/cc65/asminc/generic.mac@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` kz<00> o<00><00>ij@<40><><91><F8><11><>\<5C>faX<61>V0123
4 56789AB CDEF <01><12>  "! 
  __SIM6502__../libwrk/sim6502/_hextab.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac__hextab.sizeCODERODATABSSDATAZEROPAGENULLUzna` kzy<00><00> $'<00>@<40><><91><F8><11><>\<5C>faX<61>B  -2147483648<01><12>  
 __SIM6502__../libwrk/sim6502/_longminstr.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac __longminstr.sizeCODERODATABSSDATAZEROPAGENULLUzna` i<00>| #7<00><00>"<00>@<40><><91><F8>faX<61>faX<61> faX<61> faX<61>E5 <01>
<82><01><01>3 3 
<82> -
<82>-<02><><01>,`6789:-0<01>
<83>7  !
5"   ; __SIM6502__common/_mappederrno.s
ca65 V2.15*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX,/home/hugg/compilers/cc65/asminc/generic.mac(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeokCODERODATABSSDATAZEROPAGENULLUzna` iqA<00><00> <00><00><00>^:<00>;@<40><><91><F8>faX<61>
  
 <01><04>   __SIM6502__common/_oserror.s
ca65 V2.15 __oserror.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00>(<d ps<00>Z><00>r<00>@<40><><91><F8><11><>\<5C> faX<61>OQ9 '
<82>'<01>
<82> 
<82> 
<82><02>(<01>! <09>!<01> <09> <01>--<01>"
<82>"<01>
<01><06> 
<82><01>% H<>%<01> I<> 
<82><02> # 
<82><02>  
<82><02> L
<01><00>K<01>
<82> <01>
<01><06> &
<82>&<01> H<01><01><01>, I<01><01>, 
<82><02> 
<82><02> 
<82>L)
<82>). %s: %s
!"#$ )  '& 
" ! <01><14>Q*$. -0?)>&986E31A4;$.= 5
%7@*(,2/:#'BD<+% __SIM6502__../libwrk/sim6502/_poserror.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stderr_fprintf
__poserror __stroserror __oserrorL0008.sizeL000FpushaxL0004pushwyspL0012incsp4CODERODATABSSDATAZEROPAGENULLUzna` i<00>b<00><00><00><00><00>, <00>"<00><00>&<00><00>&@<40><><91><F8>faXԨfaX<61> faX<61><06>i<00><02><02><01><01><01> <01> <0B><01><01><01> <01> <0B><01><01><01><01><01><01> <01> <0B><00><01>`#<01><01>
<01><02> <01><01>v
<01><02>v <01>
<01><00><><01><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82> <01> U
<82>ULJ
<83>J<01><01> <01> <0B><01>8<02><02><02><02><01>C <01> <0B>C<01>>><01><01> <01> <0B><00><01>`<01><01>(
<01><02>(<01><01><01> <01>
<01><00>J<01>L<01>
<82><01><01><01>
<01><02><01><01><01><01> <01>
<01><00>J<01>L
<82>  <01>
<01><00>J<01><01><01> <09><01><01><01> <01><0F><01> =
<01><00>!=<02> <01><01> <01> <0B><01><01>P<01><01><01><01> <01> <0B><01>`<01><02><01><01>Z <09>Z<01><01> <01><0E><01><01><01> <01> <0B><01>8<02>0<11><01><01>,<01><02>
<01><01>+(+ 
<01><00>H<<01> <09><01><01> <01><0E><01> <09>&<01> <01><0E><01><01> <09><01>&<01> <01><0E><01>e<01> <09><01><01>K <09>K<01><01>e<01> <01><0E><01><01><01> <01><0E><01>V <09>V&<01> <01><0E><01>h{ec <09>c<01><01> <09><01><01><01><01><01><01>y <01><0E>y<01>x<01>x<01>M <09>M<01><01> <01><0E><01>`<01><01><01>
<01><02><01><01><01>
<01><02><01><01><01>
<01><02><01>` <01><01> H<01><02><01><01>z I<01><02>z<02>Gm<02><01>
<01><02><02><01><01><01><01><01>lL<01>
<82> <01><01><01> <01> <0B><01><01><01> <01> <0B><00><01>L<01>
<82> <01> <01>
<01><00> <01><01><01>
<01><02> <01><01><01><01><01><01>
<01><02> <00><01><01><01><01>`j <01>
<01><00><><01><01><01>
<01><02>'<01><01>
<01><02>'<00> <01>
<82> <01><01><01>
<01><02>)<01><01>b
<01><02>)<00>b Y
<82> YL<01>
<83><01><01> <09> <01>
<82><01> <01>
<01><00><><01><01><01> <09><01>L
<82><01> <09> <01>
<82><01> <01>
<01><00><><01><01><01> <09><01>L3
<82>3H<01><02><01><01><01>
<82> <01><01>t
<83>t<01>w<01><01><01>h<01><01><01> <01> <0B><01><01>) <01> <0B><00>) <01>
<82>
<01><01><01> <01> <0B><01><01><01> <01> <0B><00><01> <01>
<82>
<01><01><01> <01> <0B><01><01><01> <01> <0B><00><01><02><01><01>E<01> <01> <0B><01>T<01><01> <01> <0B><01><01><01><01><01> <01> <0B><01><01><01>
<01><03><01><01><01><01> <01> <0B><01><01>
<01><03><01><01><01> <01> <0B><01><01><01> <09><01><01><01> <01> <0B><00><01><01>g <01><0E>g<02>u<01><01> <01> <0B><01><01><01> <01><02>%<01><01>::<01><01><01><01><01><01><01><01> <01> <0B><00><01><01><01><01><01><01><01><02>Ge<02><01> <01> <0B><02><01><01><01> <01> <0B><01><01><01><01><01>i <01> <0B><00>i8<02><01><02><03> <09><02><03><01><01> <09> <01><01><01> <01> <0B><00><01><01><01> <01><0E><01><01>p <01> <0A>p<01> <09> <01><01><01>%<01> <01>
<82><01><02><01><01> <01> <0B><00><01><01> <09><01><01><01><01><01> <01> <0B><01><01><01> <09><01><01>I<01>" <01><0E>"<01>
<09>
<01><01><01><01> <09><01><01><01> <09><01><01><01><01><01> <01> <0A><01><01>/ <09>/<01><01><01><01> <09> <01><01><01> <09><01> <01>
<83><01> <01>
<83><01><01>}<01><01> <01><02><01><01>
<83> <01><01> <09> <01><01><01><01><01><01>`<01><02>%<01><01><01> <01><01><01> <01> <0B><01><02>%<01><01><01> <01> <01>
<01><00><01> <01>
<01><00><01>L<01>
<01><00>&<01><02><01><01><01> <01><01><01>
<01><02><01><01><01><01><01><01><01><01> <01> <0B><01><02>-<01><01>SS<01><01>
<01><02><01><01><01><01><02>+<01><01><01><01><01><01>
<01><02><01><01><01><01><02> <01><01><01><01><01>
<01><02> <01><01><01><02>#<01><01><01> <01><01><01>
<01><02>
<01> <01>
<01><00><01>L<01>
<01><00><><01><02> <01><02>0<01><01><01><01><01><01> <01>
<01><00><01><01><01> <01> <0B><01><01><01>
<01><02> <01><02>*2<01><01> <01> <01>
<01><00><01> <01>
<01><00>J<01>L<01>
<01><00><><01> <01>
<01><00>V<01><01>A
<01><02> A<01><01>
<01><02> <00><01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01> <01> <0B><01><02>.<01><01><01><01> <01>
<01><00><01><01><01> <01> <0B><01><02>*<01><01><01> <01> <01>
<01><00><01> 
<01><00>JL<01>
<01><00><01> <01>
<01><00>V<01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01> <01> <0B><01><02>z<01><01><01><01><02>h<01><01><02>t<01><01>00<02>j<01><01><01><01><02>LR<01><01><01><02>l<01><01><01> <01><02><><01><01>X
<01><02>X <01>
<01><00><01>L7
<01><00>!7<01><01>
<01><02><01><01> H<01><02><01><01>
<01><02>'<01><01><01> I<01><02><01><01><01>
<01><02>'<00><01> n
<01><00>n<02>c~<01> <01>
<01><00>J<01><01><01>
<01><02><01><02>k<01><01>
<01><02><00><01>L<01>
<01><00>E<01><02>d<01><01>%%<02>i<01><01><01>-<01><02><01><01><01>
<01><02> <01><01>  <02> <01><01><01>
<01><02><01><01>99<02>+<01><01><01>
<01><02><01> <01>
<01><00>8<01><01><01> <01><0F><01>0<01> <01><01>m
<01><02>m<01><01><01><01>q
<01><02>q<01><01>
<01><02><01><02>
<01> B
<01><00><>BL<01>
<01><00>E<01><02>nD<01><01><01> <01>
<01><00>J<01><01><01> <09><01><01><01> <01><0E><01><02><01><01><01> <01> <0B><01><01>f <09>f<01><01><01><01> <01> <0B><01><01>' <09>'L<01>
<01><00>&<01><02>o<01><01><01>'<01> <01>
<01><00>8<01><01><01>
<01><02>
<01><01><01><01>H<01><01><01> <09> <01> <09> 5 <09>5<01> <01><0F><01> <01>
<01><02><01> \
<01><02><00>\<01><01><01><02>0 
<01><00><>h<01><02><01> <01>
<01><00><><01>La
<01><00>Ea<02>p&<01><01> <01><02><01><01>8
<01><02>8<01>N<01><01>
<01><02>
<01><02>x<01><01>s's<02>s<01><01><01> <01> 
<01><00>J<01><01>
<01><02>'<01><01><01>
<01><02>'<00><01>L<01>
<01><00>E<01><02>u<01><01><01> <01> <01>
<01><00>-<01><02>
@ <01>
<01><00><><01>L`
<01><00>E`<02>x<01><01><01><01><02>X<01><01><01>)<01>H<01><01><01>
<01><02>
<01><01><01>
<01><02>0<01> <01>
<01><00><><01><02>XF d
<01><00><>d ]
<01><00>-]<02><01> <01>
<01><00><><01>h<01><02>x<01><01> <01><01>-
<01><02>'-<01><01>
<01><02>'<00><01> <01>
<82><01>L<01>
<01><00>E<01>L<01>
<01><00>&<01><01><01>
<01><02>'<01><01><01>
<01><02>'<00><01> <01>
<82><01><01>*
<01><02>)*<01><01>
<01><02>)<00><01><01><01>
<01><02><01> <01>
<01><02><00><01><01><01><01><01><01>
<01><02><01><01>
<01><02>)<01><01>
<01><02><00><01><01><01><01><01>
<01><02>)<00><01><01><01><01><01><01>
<01><02>)<01><01><01>
<01><02>)<00><01>8<01><01><01>
<01><02> <01><01><01>
<01><02>)<01><01><01><01><01>
<01><02> <00><01><01><01>
<01><02>)<00><01><01><01><01><02><01><01><01>I<>.<01><01>
<01><02> <00><01><01><01>I<><01><01><01>
<01><02> <01><01><01>
<01><02><01><01><01><01> <01>
<01><00><><01> _
<01><00><>_<01>H
<01><02>H<01><01><01> <01>
<01><00><><01>Lo
<01><00>&oj[k+ <01><01>,Q<01><01><01>h<01>1<01>L <01><01> <01>lL<01>mn<01><01><01><01><01>3<01>!<01>! !U!<01>!<02><02>!<05><02><02><01>Y!<02><02>6<05><01><01><02><03> <01><02> <01><01>4<>Z<><10><1C><02><03><02>K<><02>V<>c<>yM<79><02><02>f'r<05><02><02>5<>r<06><01>
<BA>/<2F><01><01><00><><01>^<00><03><00><00><00><00><00><00><00><00><00>m<00>\<00><00><00>|<00><00><00><00><00><00><00><00><00><00><00><00><00> <00>-<00><00><00><00>P<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>lH<00><00><00>G<00><00><00><00><00>?<00><00><00><00>)o<00><00><00><00>><00>&<00><00>y<00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00> <00><00><00>9<00><00><00><00><00>8<00><00><00><00><00>}<00><00><00><00><00><00><00><00>O<00><00><00><00><00>p<00><00><00><00><00><00>E<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>bk<00><00><00><00><00><00><00><00><00>3<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>;<00><00><00><00><00>  <00><00><00><00>J<00><00><00><00><00>n<00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00>q<00>I<00><00><00><00><00><00><00><00>d<00><00><00>x<00><00><00><00><00><00>=<00><00> <00><00><00><00><00><00>F<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>[<00><00><00>*<00><00><00><00><00><00>(<00><00><00><00><00><00><00><00><00><00><00>a<00><00><00>r<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>,<00>2<00><00><00><00><00><00><00><00>w<00><00><00><00><00><00><00><00><00><00><00>cR<00><00><00>z<00><00><00><00><00><00><00><00><00><00><00>:<00><00><00><00><00><00><00><00>~<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>'<00><00><00><00><00><00><00><00><00><00><00>S<00>D<00><00><00><00><00><00><00><00><00><00><00>Z<00><00>{<00><00><00><00><00><00><00>Q<00><<00><00><00><00><00><00><00><00><00><00>YX<00><00><00><00><00>+o __SIM6502__common/_printf.s
ca65 V2.15-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace__printfpopaxpushaxpusheaxdecsp6push1axlongaxulong_ltoa_ultoa _strlower_strlen,/home/hugg/compilers/cc65/asminc/generic.macArgListFormatOutDataBaseFSaveFCount GetFormatChar.size IncFormatPtr@L1 OutputPadCharPadCharOutput1CharArg PushOutData CallOutFunc DecArgList2GetUnsignedArgIsLong
GetLongArg GetIntArg GetSignedArgReadInt@Loop@L9PutBufBufIdxBuf
PushBufPtrPadLoop OutputPaddingWidth OutputArgStrArgLenltoaultoaSaveRegSaveMainLoop@L2@L3@L4NotDoneRest
FormatSpec FormatVarSize
FormatVars ReadFlagsLeftJustAddSignAddBlank ReadPaddingAltForm ReadWidthPrecReadModReadPrecDoFormatCheckIntHaveArg
CheckCountLeader@Int1
CheckOctal CheckPointer@Oct1 CheckStringIsHex CheckUnsignedCheckHex UnknownFormatCODERODATABSSDATAZEROPAGENULLUzna` k{Q.<00>.8111e{E><00>J1<00>J@<40><><91><F8><11><>\<5C><>faX<61>_,<00><00><02>  <01>
<82> <01><01><01> <01>)<29><01><01><01> <01>)<29><01> #
<82> #<02>t <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01><02><01> <01>
<82><01><01><01>
<83><01><01><01>
<01><02><01><02><01> <01>
<82><01><01><01>
<01><02><01><01>
<01><02><00><02><01><01>%
<01><02>%<01><01>
<01><02><01><01>z
<01><02><00>z<01>
<01><02> <01><01>
<01><02> <00><01><01><01> H<01><02><01><01><01> I<01><02><01> <01>
<82>'<01><02><01><01><02><01><02><01>L<02>
<01><00><><02> <01>
<01><00><><01>L<01>
<01><00><><01><01><01>
<01><02> <01><02>%<01><01><01>"<01><02><01> <01>
<82>#<01><01><01><01>,, <01>
<01><00><><01>L<01>
<01><00><><01><01>[
<01><02>[<01><01>
<01><02><00><01> <01>
<82> <01><01>u
<01><02> u 8
<82>8<01><01><01><01>L4
<01><00><>4 <01>
<01><00><><01><02>%y<01>(<01>(<01><01>
<01><02> <01><02>*: <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><01><01><01><01> <01>
<01><00><><01><02><><01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01>
<01><02> <01><02><01> <01>
<82>$<01><01><01>
<01><02>=<01><01><01>
<01><02>=<01><01><01>3<01><02><01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<82><01><01><01> <09>(<01><01><01> <01>(<28><01><01><01>
<01><02> <01>)k<01>e<01> <09>(<01><01><01> <01>(<28><01><01><01><01><01><01><01><01>
<01><02><01><01>H
<01><02><00>H <01>
<01><00><><01><02><01> <01>
<82>$<01><01><01><01><01><01><01><01><01>
<01><02><01> <01>
<01><02><00><01><01><01><01><02><01> <01>
<82>%<01>L<01>
<01><00><><01><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01><02><01><01><01>
<01><02><01><01><01>
<01><02> <01><02>L*<01><01>V<01><02>h<01><01><01><01><02>j<01><01><01>I<01><02>l<01><01><01>+<01><02>t<01><01><01>F<01><02>z <01><01>B<01>L<01>
<01><00>b<01><01><01>
<83><01><01><01> <09>(<01><01>
<01><02><01><01> <01>(<28><01><02><01><01><01> <09>(<01><02>h<01><01><01>-<01><01>
<01><02> <01><01>
<83><01><01><01>%<01><01><01>
<01><02><01>L<01>
<01><00>_<01><01><01>
<83><01><01><01> <09>(<01><01><01>
<01><02><01><01>? <01>(<28>?<02><01><01> <09>(<02>l<01><01><01><01><01><01>
<83><01><01><01><01>
<01><02><01><02><01><01><01>
<01><02><01> <01>
<01><00><><01><01><01>
<01><02> <01><02>A@<01><02><02>L<02><02>
<01><00><><02><02><02>C<01><01><02><02>L<02><05>
<01><00><><02><05><02>Ee<01><02><02>L<02><01>
<01><00><><02><01><02>F<01><01>vvLv<>
<01><00><>v<><02>G<01><01><02><02>L<02><03>
<01><00><><02><03><02>S<01><01><02><02>L<02><05>
<01><00><><02><05><02>X<01><01><01>k<01><02>[<01><01><02><02>L<02><02>
<01><00><02><02><02>a<01><01><02><02>L<02><01>
<01><00><><02><01><02>c<01><01><02><02>L<02><03>
<01><00><><02><03><02>d1<01><01>:<01><02>e<01><01><02><02>L<02><06>
<01><00><><02><06><02>f<01><01>XXLX<>
<01><00><>X<><02>g<01><01><02><02>L<02><04>
<01><00><><02><04><02>i<01><01><01>)<01><02>n<01><01><02><02>L<02><06>
<01><00>n<02><06><02>o<01><01><01>&<01><02>p<01><01>L<08>
<01><00>@<08><02>s<01><01><01>+<01><02>u<01><01>33<02>x<01><01><01><01>L<01>
<01><00><><01><02>
" <01>
<01><00> <01>L<01>
<01><00><><01><02><01> <01>
<01><00> <01>L<01>
<01><00><><01><02> <01>
<01><00> <01>L<01>
<01><00><><01><02><01> <01>
<01><00> <01>L<01>
<01><00><><01> <01>
<01><00><><01> <01>
<01><00><><01><02><01><01><01>
<01><02><01><01><01>
<01><02><01><01><01>9<01><01><01>
<01><02><01>8<01><02><01><01>s
<01><02>s<01><01><01><01><01>
<01><02><00><01><01><01>
<01><02><00><01> <01>
<82><01><01><01> <01>)<29><01><01><01> <01>)<29><00><01>L<01>
<01><00>O<01><01><01>
<01><02><01><01><01><01><01><01> <01>)<29><01><01><01> <01>)<29><00><01><01><01> <09>*<01><01><01> <01>*<2A><01> <01>
<82><01><01>j <01>)<29>j<01>D <01>)<29><00>D<01><01>
<01><02><01><02><01><01><01> <09>*<01> <01>
<01><00><><01><01><01>
<01><02><00><01><02><><01><01><01><01><01><01>
<01><02><01><02><><01><01><01><01><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<82>#<01><02><01><01>CC<01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01><01><01>
<01><02><01> <01>
<01><02><00><01><01>J<01>J<01>
<01><02><01><02><04><02><04>L<02>
<01><00><><02><01><01><01><01> <01>)<29><01><01><01>
<01><02><01><01><02><04><02><04>L<02>
<01><00><><02><01>_
<01><02><00>_L<01>
<01><00><><01><01><01>
<01><02>=<01><01><01>
<01><02><><01><02><><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<01><00><><01><02><01><01><01>
<01><02><01><01><01>
<01><02><01><01><01>[<01><01><01>
<01><02><01>8<01><02>!<01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01><01><01>
<01><02><00><01> <01>
<82><01><01><01> <01>)<29><01><01><01> <01>)<29><00><01>L<01>
<01><00><><01> 7
<01><00><>7<01><01> <01>)<29><01><01><01> <01>)<29><00><01><01><01> <09>*<01><01><01> <01>*<2A><01> <01>
<82><01><01><01> <01>)<29><01><01><01> <01>)<29><00><01><01><01>
<01><02><01><02><01><01><01> <09>*<01> O
<01><00><>O<01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01><01>A
<01><02>A <01>
<01><02><00><01><01><01><01><01>
<01><02><01><01><02><06><02><06>L<02>
<01><00><><02><01><01>
<01><02><00><01>L<01>
<01><00><><01> <01>
<01><00><><01> <01>
<01><00><><01><01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01><01><01>
<01><02><01> <01>
<01><02><00><01><01><01><01><01>L<01>
<01><00><><01><02><01><02><01><01><01>
<01><02><01><01><01><01><01><01> <01>
<01><00><><01><02>^<01> <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><01><01>   <01>
<01><00><><01><01>
<01><02> <02>]<01><01><01>Y<01>L<01>
<01><00><><01><01><01>
<83><01><01><01> <09>(<01><01><01>
<01><02><01><01>
<01>(<28>
<02><01><01>9 <09>(9<02>-<01><01><01>;<01><01><01>
<01><02> <01><01><01>
<01><02>?<01><01><01>
<83><01><01><01><01><01><01>
<01><02><01> <01>
<01><00><><01><02><01><01>GG<02>]<01><01><01><01><01><01>
<01><02>?<01> c
<01><00>c<02>-<01> <01>
<01><00><01>L<01>
<01><00><><01><01><01>
<01><02>?<01> <01>
<01><00><01><01><01>
<01><02> <01><01>}
<01><02>?}<01><01> <01><01><01>
<01><02>?<01>L<01>
<01><00>}<01><01><01>
<01><02> <01> <01>
<01><00><01> <01>
<01><00><><01><01><01>
<01><02> <01><01><01><01><02>]<01><01><01><01><01><01><01>
<01><02> <01><01><01><01><01><01>
<83><01>8<01><02><01><01><01>
<83><01><01>''<01><01>
<01><02><01><01><01>
<01><02><01><01><01><01> <01>
<01><00>@<01><02><01><01><01>
<01><02>><01><01><01>
<01><02><01><01><01>A<01><01><01>
<01><02><01>8<01><02><01><01><01>
<01><02><01><01><01><01><01>/
<01><02><00>/<01><01>
<01><02><00><01> a
<82>a<01><01> <01>)<29><01><01><01> <01>)<29><00><01>L<01>
<01><00> <01><01><01>
<01><02><01><01><01><01><01><01> <01>)<29><01><01><01> <01>)<29><00><01><01><01> <09>*<01><01><01> <01>*<2A><01> p
<82>p<01>2 <01>)<29>2<01><01> <01>)<29><00><01><01>&
<01><02>&<02><01><01><01> <09>*<01><02><01><01><01>
<01><02><01><01><01>
<01><02>><01> <01>
<01><00><><01> 0
<01><00>*0<01><01><01><01><01><01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01><01><01>
<01><02><01> <01>
<01><02><00><01><01><01><01><01><01><01>
<01><02>><01><01><02><02>L<02><01>
<01><00><><02><01><01><01>
<01><02><01><01>.<2E>.<2E>L.
<01><00><>.<01><01><01><01> <01>)<29><01><01><01>
<01><02><01><01><02><06><02><06>L<02>
<01><00><><02><01><01>
<01><02><00><01>L<01>
<01><00><><01> <01>
<01><00><><01><01><01>
<01><02><01><02>0Q<01><02><05><02><05>L<02>
<01><00><><02><02>S<01><01>
<01><02><01> <01>
<01><00><><01><01>N
<01><02>N<02>X<01><01><01><01><02>x<01><01><01>w<01> <01>
<01><00><><01><02><01> <01>
<01><00>;<01> 
<01><00><>L<01>
<01><00><><01><01><01>
<01><02> <01><01>r
<01><02> <00>r <01>
<82> <01><01><01>
<01><02><00><01><02><><01><01><01> <01><01><01>
<01><02><01><02><><01><01><01><01><02><01>L<01>
<01><00><><01><02><01> <01>
<82><01> <01>
<82><01><01>n
<01><02>n<01><01>
<01><02><00><01><01>~ <09>+~<01><01>
<01><02><00><01><01><01> <01>+<2B><01><01>d
<01><02><00>d <01>
<01><00><><01><01><01>
<01><02><01><01><01>!<01><01><01>
<01><02><01>8<01><02><01><01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01>L<01>
<01><00><><01><02> <01> <01>
<82>%<01>L<01>
<01><00><><01><02><01> <01>
<82>%<01>LU
<01><00><>U <01>
<01><00><><01><01><01><01>l<>l<>Ll
<01><00>PlL<01>
<01><00><><01><01><01>
<01><02><00><01><02><><01><01><01><01><01><01>
<01><02><01><02><><01><01><01> <01><01><01>
<01><02><01><01><01><01><02><><01><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<01><00>N<01><01>i
<01><02>i<01><01>
<01><02><00><01>H<01><02><01><01><01> <09>,<01><01> <01>)<29><01><01><01> <09>,<01><01><01> <01>)<29><01>h<01>L<01>
<82><01>H<01>J<01>J<01>J<01><01><01>h<01>)<01><01><01><01><01>
<83><01>L<01>
<01><00><01>`<01> <01>
<82><01> <01>
<01><00> <01>|
<01><02>|<01><01>
<01><02><01>L<01>
<82><01><02><01><01><01>
<01><02><00><01><01><01> <01><01><01>
<01><02><01> <01>
<01><00> <01>=<01>
<01><02><01><02><01>L<01>
<01><00>?<01>`<01><02><01><01><01>
<01><02><01>I<>T<01><01>
<01><02><01><01><01><01><01><01>`<01><01>
<01><02><00><01><01><01>3<01><01><01>
<01><02><01> <01>
<82><01><01><01>
<01><02><01><01><01> <09>(<01><01>6
<01><02><00>6<01><01> <01>(<28><01><02><01><01>` <09>(`<01>]
<01><12>]<01><01><01> <09>(<01><01><01>
<01><12><01><02><01><01><01> <09>(<01><01><01><01><01><01><01> <09>(<01> <01>
<82><01><01><01>
<01><02> <01><01><01><01><01><01>
<01><02> <00><01><01>^
<01><02> ^`<01><01><01>
<01><02><01><01><01> <09>(<01><01><01>
<01><02><00><01><01>x <01>(<28>x<02><01><01><01> <09>(<01><01><01>
<01><11><01><01><01><01><01> <09>(<01><01><01>
<01><11><01><02><01><01><01> <09>(<01><01><01><01><01><01><01> <09>(<01> <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01><01><01><01><01><01>
<01><02> <01><01><01><01><01><01>
<01><02> <00><01>`<01> B
<82>BHw<01>\ H<01><02>\<01><01> I<01><02><01> <01>
<82><01>h<01><02><01>L<01>
<82>&<01> <01>
<82><01>`b<01>M
<01><02><00>M<01><01><01><02><01>L<01>
<01><00><><01>`<01>L<01>
<01><00><><01> <01>
<01><00><><01><01><01>
<01><02><01><01><01>
<01><02><00><01> W
<82>#W<01><01><01><01>`<01><01>)
<01><02>)<02>-<01><01>L
L<01><01>
<01><02><01> <01>
<01><00><><01><02><01><01><01> <01><02>+<01><01><01><01><01><01>
<01><02><01> <01>
<01><00><><01><02><01><01><01>
<01><02><01>`<01> 
<82>  <02>=<01><01> <09>,<01><02><01> <01>
<82>$<01><01><01> <01><02><01><01><01> <09>,<01><02>0fL<01>
<01><00>3<01><02><01><01><01> <09>,<01><02><01> <01>
<82>!<01><02><01><02>W<01> <01>
<82> <01><02><01>L<01>
<82> <01> <01>
<82>
<01><02><01><01><01>
<01><02>A<01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01>
<01><02><00><01><01><01>
<01><02><00><01>L<01>
<01><00><><01><01>
<01><02>A<01><01>
<01><02><00><01><01><01> <01>+<2B><01><01><01>
<01><02><00><01><01><01> <09>+<01><01><01>
<01><02><00><01><01>E
<01><02>E <01>
<82> <01><02><01><02><01><01><01> <09>,<01> <01>
<82><01> <01>
<82><01> 5
<82>5 <01>
<82> <01><02><01><01>
<01><02>@<01> <01>
<82><01> <01>
<82><01> <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01> <09>+<01><01>
<01><02><00><01><01> <01>+<2B><01><01><01>
<01><02><00><01> <01>
<01><00><><01><01><01>
<01><02><01><01><01>
<01><02><00><01> <01>
<82>"<01><01><01><01><01>"<01><01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01><01><01>
<01><02><01> <01>
<01><02><00><01><01><01><01><01><01>
<01><02><01> <01>
<01><00><01><01><01>
<01><02>@<01><02><01><01><01> <09>,<01><01><01><02><01><01><01><01><01><01>
<01><02>A<01>ZZ<02><01> <01>
<01><00><><01><02><01><01><01>
<01><02><01>L<01>
<82><01><01><01>
<01><02><01><01><01>+<01><01><01>
<01><02><01>8<01><02><01><01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01><01><01>
<01><02><00><01> <01>
<82><01><01><01> <09>(<01><01><01> <01>(<28><01><01><01>
<01><02><01><01><01>
<01><02><01><01><01> <09>(<01><01><01><01><01><01><01>
<01><02><01><01><01><01><01><01>
<01><02><00><01>`<01> R
<82>R <01>
<01><00><><01> <01>
<01><00><><01><02><01><01><01> <09>,<01><01><01>B<01><01><01>
<01><02><01><02>0<01><01>5<01> <01>
<01><00><><01><01><01>
<01><02><01><02>X<01><01><01><01><02>x<01><01><01><01><02><01><02><01><01><01> <09>,<01><02><01><01><01>
<01><02><01> <01>
<01><00><><01>L<01>
<01><00>[<01><02><01><02><01><01><01> <09>,<01> <01>
<01><00>N<01><02>m<02>0<01><01><01>
<01><02><01><01><01>
<01><02><00><01>L<01>
<01><00>[<01><02>
<01><01><01> <09>,<01><02><01><01><01> <09>,<01> <01>
<01><00>;<01><01><01>
<01><02><01><01><01>#<01><01>o
<01><02><00>o<01><01> <01>+<2B><01><01><01>
<01><02><00><01><01><01> <09>+<01><01><01>
<01><02><00><01><01><01>
<01><02><01> <01>
<82><01><01><01>
<01><02><01><01><01>
<01><02><00><01><01><01> <09>+<01><01><01>
<01><02><00><01><01><01> <01>+<2B><01><01><01>
<01><02><00><01> 
<01><00><>L<
<82><<01><01>
<83><01><01><01> <09>*<01><01><01>
<01><02><01><01><01> <01>*<2A><01><01><01>
<83><01><01><01><01><01><01>
<01><02><01><02><01><01><01> <09>*<01><02><01><01><01>
<01><02> <01>`Y5<00><01><01>g<01> <01>@<01><01><01><03><00>BB<01><01><01><01><01><01><01><01><01><01><01><01>qq<01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01>;+<01><00><00><00>-<02><01><<02><01><01><02><01>RY<01><01><02><01><01><02><01><01><02><01>5<02><01><02><04><02><01><02><02><02><01><02><04><02><01><01><02><01><01><02><01><01><02><01> <02><01><01>0<01><01><02><01>B<02><01><03><01><03><02><01>]<5D><05><02><01><01><02><01><01><02><01><01><02><01><01><02><01><01><02><01><01>\<01><03><01>pY<01><03><04>aD<01><01>@<01><01><<01><02><04>:<01>81<01><03><03><02>0<01><04>#<23><06><01><01><01><01>W<><05><01><03><05><01><01><03><01><05><01><01><01><01> I<1C><01><05><05>x<><06><03><02><02><05>`<60><03><05><05><04><02><05><04><03><03><06>?<12>
9<01><18><06><04><04><03><02>jD<6A><02><01><06><05><04><02><03><04><05><01>2<><03><03><01> <0C><04><01><05><02><01><06><05><02><06><01><02><01>
<87><01><03><05><04><06><06><06>~<7E><01> <0C><03><02><06><06><05><05><05><06><03><06><03><01><1A><00>
<01><01><00><06><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>h<00><00><00><00><00>m<00><00><00><00><00><00>\<00>j<00><00><00><00><00><00>|<00><00><00><00><00><00><00><00><00><00><00><00><00><00>U<00><00><00><00><00><00><00><00><00><00><00><00> <00>-<00><00><00><00><00><00><00><00><00>P<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>0<00><00>]<00><00><00><00><00>l<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>?<00><00><00><00><00><00><00>)o<00><00><00><00><00><00><00><00>><00>&<00><00><00><00><00><00><00><00>y<00>s<00><00><00><00><00><00><00><00><00><00><00><00><00>f<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>9<00>C<00><00><00><00><00><00><00><00>8<00><00><00><00><00>}<00><00>L<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>6<00>p<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>g<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>t<00><00><00>bk<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>3<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>T<00><00>1<00><00><00><00><00><00><00>A<00><00>4<00><00><00><00><00>;<00><00><00><00><00><00><00><00><00><00>e<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>n<00><00><00><00><00><00><00><00><00><00>.<00><00><00><00><00><00><00><00><00>^!<00><00><00><00>i<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>q<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>d<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>x<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>=<00><00> <00><00><00><00><00><00><00><00><00>5
<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>%<00>7<00><00><00><00><00><00><00><00><00><00><00><00><00>_<00><00><00> <00>[@<00><00><00><00><00><00><00><00><00><00><00>*<00><00><00><00><00><00><00><00><00>(<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>a<00><00><00><00><00>r<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>,<00><00><00>2<00><00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00>w<00><00><00><00><00><00><00><00><00><00><00><00>cR<00><00><00><00><00>v<00><00>z<00><00><00><00><00><00><00><00><00><00><00><00>/<00><00><00><00><00>:<00><00><00>u<00><00><00><00><00><00><00>~<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>'<00><00><00><00><00><00><00><00>`<00><00><00><00><00><00>B<00>S<00><00><00><00><00>D<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>Z<00><00><00><00><00><00><00><00>{<00><00><00><00><00><00><00><00><00><00><00><00><00><00>Q<00><00><<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>Y<00><00><00><00><00><00><00><00><00><00><00><00><00>+<00><00> __SIM6502__../libwrk/sim6502/_scanf.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_memset__setjmp_longjmp
__seterrno_isdigit_isspace _isxdigit_tolower__scanf_Bits.size_format_D__ap_JumpBuf_F
_CharCount_C_Width_IntVal _Assignments _IntBytes
_Converted _Positive _NoAssign_Invert_CharSetL017EL017FL0180pushaxldaxyspL018DL0190 _ReadCharL0194L0192L0196L0198
_SkipWhitetosicmp0
_GetFormatbooleqL01A6L01B3L01B2mulax10L0316L01BAL031DcomplaxL01DEL01CBL0303L01D4L0304L02D3L01F6L0246L0309L01E8L01EEL02C3L01F2L02A9L01FCL02EC_ScanInt _CheckEndL020DL020AldaxiL0305L0214incax1L0317L0308L0212L0221L0240L0231L0234L0232L0236L023EL0242L024CL030AL030BL025EL0258L0263L0268L0270 _AddCharToSetL0302L030FL027EL031A_InvertCharSetL0293L0290L0310L0311 _IsCharInSetL0314L0296L02B8_ReadInt
_AssignIntL02C9L02CBtossuba0axulongL02F4 _PushBackincsp8_FindBitL0010pushaincsp1L1L002DL0055pusha0jmpvecL0082L00B6_ErrorL00D1L00D7L00D5 _ReadSignL00E3L00ECL00F1_HexValL00FEL031EdecaxyL0105L0106L010CL0320pusheaxaulong tosmuleax tosaddeaxL0323L0110L0324L013EL012AL0131L0328L0327L0325L0326L0161L0166negeaxL0173CODERODATABSSDATAZEROPAGENULLUzna` ixb<00><00> <00><00><00><00>J<00><00><00>@<40><><91><F8>faX<61>faX<61> + <01>
<82><02> <01>
<01><00> `!"#$% <01><08>  
 "  & __SIM6502__common/_seterrno.s
ca65 V2.15*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>  <00>bst@<40><><91><F8>faX<61> ID<<01> <09><01>" <01><00>"<02><01> <09><01>
<01><01><01> <01> <09><01>
<01><01>(<01>+hQ, <09>,)0Q$ <09>$H
<02>-<01>& <09>&H <01><01> <09><01>*<01><01> <09><01>'h(% 
<82>0H!<01><02>.<01> <09> <01>/<01><01># <09>#<01>h<01> <09><02>h)<01> <09>(` 
    ",$& # <01><04>1U-P0HG")& C8L6ET1A J$.!I= F%7(2K/ #'BD< __SIM6502__ common/_sys.s
ca65 V2.15__sysjmpvecptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` kzD<00> <00> <00><00><00>px<00>y@<40><><91><F8><11><>\<5C>faX<61>w<02><01>  
<82><01> H<><01> I<> 
<82><01>
<82><01>
<01><04> 
<82><02><02>L
<82> <0C>A
B
N
O
R
M
A
L
 
P
R
O
G
R
A
M
 TERMINATION
   <01><14> -0)&1$. 
%*(,#'+ __SIM6502__../libwrk/sim6502/abort.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stderr_fputs_abort_exit_raiseL0005.sizepushaxCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>
&)[<00>i<00>(<00>@<40><><91><F8>faX<61>W<02> q <09><01> <09>H <01><01>q <09><01> <09><01>h` 
    <02><01><00> 
<B8><04>
   
 __SIM6502__runtime/addeqsp.s
ca65 V2.15addeq0spaddeqyspsp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>  #Loi<00>"<00>@<40><><91><F8>faX<61>R <01>H <01>e <09><01>
<09>
<01><01> <01><00>h`
    
<02><01><00> <09><04>     
 __SIM6502__runtime/addysp.s
ca65 V2.15addysp1addyspsp.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ix<00><00>#&<00><00><00>`%a@<40><><91><F8>faX<61> faX<61>I <02><02> 1 <09><01>H!<01>1 <09><01>hL
<82> !" <02><01><00><13><04>%    # __SIM6502__ runtime/and.s
ca65 V2.15tosanda0tosandaxaddysp1spptr4(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00>)= IL<00><00> K
@<40><><91><F8><11><>\<5C>faX<61><06>/% 
<82><01> H<><01> I<> 
<82><02> 
<82><01> H<><01> I<> 
<82><02> 
<82> 
<82><01> <09> <09> <01><01> H<> <01> I<> L
<82><01>
L
<82>%c
<00> !   <01><12>/  -0)&96314$. 5
%7*(,2/: '+" __SIM6502__../libwrk/sim6502/asctime.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_asctime _strftimeL000A.sizeL0005pushaxpusha0ldaxyspL000Dincsp2CODERODATABSSDATAZEROPAGENULLUzna` iqe<00> <00><00><00>3,f<00><00><00>@<40><><91><F8>faX<61>.<01> <09>
& <09><01> <09>`  
   <02><05><05><04>
  
 __SIM6502__runtime/aslax1.s
ca65 V2.15aslax1shlax1tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqt<00>
<00> =Ff<00><00>@<40><><91><F8>faX<61>=  <01> <09>
& <09> 
& <09> <01> <09>` 
    <02><05><06><04>
   
 __SIM6502__runtime/aslax2.s
ca65 V2.15aslax2shlax2tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>G`f<00><00>@<40><><91><F8>faX<61>L<01> <09>
& <09> 
& <09> 
 & <09><01> <09>` 
   
 <02><05><08><04>    
 __SIM6502__runtime/aslax3.s
ca65 V2.15aslax3shlax3tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00> &)Qzf<00>(<00>@<40><><91><F8>faX<61>[<01> <09>
 & <09> 
& <09>
 & <09>
& <09><01> <09>` 
     <02><05>
<B8><04>
   
 __SIM6502__runtime/aslax4.s
ca65 V2.15aslax4shlax4tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>B\n<00><00>@<40><><91><F8>faX<61>H  <01> <09>

& <09>& <09> & <01><01><01> <09>`
      <02><05><07><04>     
 __SIM6502__runtime/asleax1.s
ca65 V2.15asleax1shleax1sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>,CFV<00>n
E @<40><><91><F8>faX<61>q <01> <09> 
 & <09>& <09>& <01><01> 
& <09>& <09>& <01><01><01> <09>`
       <02><05>
<B8><04>
   
 __SIM6502__runtime/asleax2.s
ca65 V2.15asleax2shleax2sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>BXorj<00>nJqK@<40><><91><F8>faX<61><06> <01>
<09>

& <09>& <09>& <01><01> 
& <09>& <09>& <01><01>
& <09> & <09>& <01><01><01> <09>`
    
   <02><05> <0B><04>    
 __SIM6502__runtime/asleax3.s
ca65 V2.15asleax3shleax3sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>,/Q<00>r<00>.<00>@<40><><91><F8>faX<61>]
<01> <09> <02> 
& <09>& <09> & <01><01><01><01><01><01> <09>`       <02><05>
<B8><04>
   
 __SIM6502__runtime/asleax4.s
ca65 V2.15asleax4shleax4sregtmp1.size@L1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>ahk<00>9<00><00>j<00>@<40><><91><F8>faX<61> ^ <00><02>@E<01>@ 0"E3<01>@ @  E 3 <01>  @   @E<01><01>@ "D3<01><01>D&"&D&3&<01>&<01>&D&<01>&"D3<01>@ $"$D$3$<01>$$@$ $b""x"<01>"!<01><01>YM<01>'<01>'<01>'J'<01>'<01>',),#($YX$$<01>#]<01><01><01><01>#<01><01><01>)<01>i<01>#$(S((#($(S((<01>(  [ [ <01> i $ $ <01><01><01><01>)|<01>m<01><01>i)S<01>##4##<01>#i###<01>#<01>!b!Z!H!&!b!<01>!<01>!TD<01>ThD<01><01><01><01>t<01>(nt<01><01>Jr<01><01><01> <01> <01> <01> t t t r Dh<01>2<01>"  & & r r <01> <01> <01> <01> & H D D <01> <01>  <06> <01><01><><1A><01><01>^%<1A><01><01>X<07><01><01>R<07><01><01>D<17><04>
)-") 986314$.!=5
%7*(,2/'+ __SIM6502__ dbg/asmtab.s
ca65 V2.15 OffsetTab
AdrFlagTab
SymbolTab1
SymbolTab2 MnemoTab1 MnemoTab2.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqH<00><00><00><00><00><00><00>Q<00>R@<40><><91><F8>faX<61><4<01> <09> 
<82> <01> <09>H'<01>$)<01>8<02>*<01>&&<01><01>h
<01>(ɀ j <01>-<01>!<01>!<01>h`"h<01><02>ɀ <01>%%<01>`,i<01>h)<01> <09> <02><>+f <09>j<01><01><01><01> <09>` # <02><01><00><11><04>.-MHG)&9C8L6E1A;!F%7@N*,2: 'BD<+ __SIM6502__ runtime/asr.s
ca65 V2.15tosasraxasraxypopaxtmp1.sizeL2L3L6L1L4L5L7CODERODATABSSDATAZEROPAGENULLUzna` iqk<00> <00> <00><00>3'_<00><00><00>@<40><><91><F8>faX<61>4
 <01> <09><02><>f <09>j<01> <09>`  
  <01><04>
  
 __SIM6502__runtime/asrax1.s
ca65 V2.15asrax1tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>
<00> 
BL_<00> <00>@<40><><91><F8>faX<61>I <01> <09> <02><>f <09>j
<02><>f <09> j<01> <09>` 
     <01><04>     
 __SIM6502__runtime/asrax2.s
ca65 V2.15asrax2tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>   Qq_<00><00>@<40><><91><F8>faX<61>^<01> <09><02><>
f <09> j<02><>f <09> j<02><>f <09>j<01> <09>`  
   <01><04>     __SIM6502__runtime/asrax3.s
ca65 V2.15asrax3tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00> ' 36`<00>_<00>5<00>@<40><><91><F8>faX<61>s<01> <09><02><> f <09>j<02><>f <09> j<02><>f <09>j<02><> f
<09>
j<01> <09>` 
   
<01><04>     __SIM6502__runtime/asrax4.s
ca65 V2.15asrax4tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00> #&Gmf<00>%<00>@<40><><91><F8>faX<61>^<01> <09><01> <01><01><02><> f <01><01>f <09> f <09> j<01> <09>` 
   
 
 <01><04>    
 __SIM6502__runtime/asreax1.s
ca65 V2.15asreax1sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>5I UX`<00>fW@<40><><91><F8>faX<61><06><01> <09><01>
<01><01>
<02><>f <01><01>f <09>f <09> j<02><>f <01><01>f <09>f <09>j <01> <09>` 
      
<01><04>    
 __SIM6502__runtime/asreax2.s
ca65 V2.15asreax2sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>d{ <00><00>yfi<00>j@<40><><91><F8>faX<61><06>"<01> <09><01> <01><01> <02><>f <01><01>f <09>f <09>j <02><>f <01><01>f <09>f
<09>
j <02><>f <01><01>f <09>f <09>j<01> <09>` 
   
 <01><04>    
 __SIM6502__runtime/asreax3.s
ca65 V2.15asreax3sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>, 8;V<00>j<00>:<00>@<40><><91><F8>faX<61>s <01> <09><01> <01><01> <02> <02><>f <01><01>f <09> f <09>j<01><01><01><01> <09>`
       <01><04>
   
 __SIM6502__runtime/asreax4.s
ca65 V2.15asreax4sregtmp1.size@L1CODERODATABSSDATAZEROPAGENULLUzna` i<<00> <00><00><00><00><00><00>2<00>3@<40><><91><F8>faX<61> faX<61> "faX<61><06>;8+<01>
<83><01>
<01><01>
<01><02><01>E<01>=<01>
<01><02> <01>*<01>
<83><02><01>F`&<01>77 
<82><02><>4<01>S`;<01>
<83><01><01>D<01>$
<01><02>$<01>P<01>.<01>
<01><02><01>
<83>  2
<82>2LM
<01><00> M` <=  
O>?@ 32<02>0<01><00> -M<><04> %T PG?")> 9C86TA;$.
I="@ *(,R :# DQ<+A __SIM6502__common/atexit.s
ca65 V2.15_atexitdoatexitcallax*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510exitfunc_index exitfunc_max@Errorexitfunc_table.size@L9CODERODATABSSDATAZEROPAGENULLUzna` ixk<00>F)@CCK<00>B<00>@<40><><91><F8>faX<61> faX<61>4$<00><02><01> <09><01> <01><02><02>'<01>/ <09>/<01>A <01><01>A<01>W <09>W<01> <01><03><01>8 <09>8<01><01>Z
<82>Z)<29>U<01>55<01><01>V<01>V<01>2 <01><02>2<01>?<01>?<01><02>D<02>+d<01>II<02>-
<01>33<01>Q<01><01>--<01>J <01><02>J<01># <09>#<01> <09><01><01>R
<82>R).<01>`F` B
<01><00><>B<01>Y <01><03>YH<01>\ <09>\H%<01>> <01><01>>H<01> <09>H9 M
<01><00><>M 
<01><00><> Ch"e <09> <01>_ <09>_hLe[ <01><01>[<01>, <01><01>,heG <09>G<01> <09>hbea <01><03>a<01>^ <01><03>^<01>48@<02>0XFe+ <09>+<01>K <09>K<01>:
:<01>0 <01><01>0<01><01>& <09>&<01><01>6 <01><03>6<01><01>1<01>1<01> <01><02><01>$<01>$<01>* <09>*<01>S <01><01>S<01> <09><01>O OLT
<82>T) <09>)& <01><01>&< <09><& <01><03>`%&'() =#
=/A> _[,+K0*S) =82J= WY\Ga^&6<ZRT<02><05>;<3B><04>;ehm<00><00><00>U-P0<00>HG")oy fW9C8LO6pEg<00>tbT1;en$.^!i Id<00>
F%_@N*aV,2cRKz/:u~ #`BSDZQ<YX+* __SIM6502__ common/atoi.s
ca65 V2.15_atoi_atolnegeax__ctypesregptr1ptr2tmp1*/home/hugg/compilers/cc65/asminc/ctype.incCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.sizeL1L2L3L5L6L8mul2L7L9CODERODATABSSDATAZEROPAGENULLUzna` iqw<00><00> BKt<00><00>@<40><><91><F8>faX<61>@  <02> <01><01><01>

<02>` <02><01>`  <02><05> <08><01><00>    
 __SIM6502__runtime/bneg.s
ca65 V2.15bnegabnegaxreturn0return1.sizeL0L1CODERODATABSSDATAZEROPAGENULLUzna` iqW<00> <00><00><00>3(q<00><00><00>@<40><><91><F8>faX<61> <02><01> <09>L
<82> 
    <02><01><00><06><04>
   __SIM6502__runtime/bpushbsp.s
ca65 V2.15bpushbsp bpushbysppushasp.sizeCODERODATABSSDATAZEROPAGENULLUzna` kzx<00><00>v <00><00>"<00><00>)<00>*@<40><><91><F8><11><>\<5C>faX<61>A*<00><02> 
<82> ]
<82>] T
<82> T 
<82>  <02> 8 
<82>  b
<82> b \
<82>\L6
<01><00><>6<02> ^
<82> ^3<02>Cq <09>H_<01>L<01>qJ <09>J<01>lhQ 
<82>

<02>4 Y
<82> Y<02>   ,
<82>,<02>R *
<82>*<02>. @
<82>@<02>" D
<82> D 
<82> 
<82> Z
<82>Z<02>/ h
<82> hH><02><01> <09><01>H
<01><05>H<01>-<01>a <09>a<01>
<01><05>hd $
<82>$ B
<82>B<02> 
<82> <02><>:<01>1 1<02> W 
<82>   
<82><02>IL!
<01><00><>!<02>   g
<82> g V
<82> V c
<82>c<02>+<01> <09><01>P <09><01>kk<01>j<02>f<02>G 
<82> <02> 5
<82>5<02>E `
<82> ` N
<82>N(M(ML(=
<01><00>(=<01>UULUF
<01><00>UF<02><<01>0 <09>0<01>% <09>%<01><02>7 
<82><02>) 
<82><02> 2
<82> 2 
<82> #
<82>#L9
<01><00><>9<01>O<02>L'
<82>'+,-./)S'&SN%Sc#S!SB SH$S#SS,*@5SYS
SbVS^Dh g`2ST S]S\ZAJa0%<01><12><00>&?mhm\jU -P0M]lHG?")o>&sfW9C8LO6pEgtbk3T1A4;eJn$.^!iqId= 5
F%7_ [@N*(arV,2wcRKv/: #'`BSDZQ<YX+0 __SIM6502__../libwrk/sim6502/bsearch.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_bsearchpushaxdecsp4push0ldaxyspdecax1L0007L0005.sizeasrax1staxysppushwysp tosumulaxtosaddaxjmpvecincsp2L0012incax1L0025stax0sptosicmpL0020L0001addyspCODERODATABSSDATAZEROPAGENULLUzna` iqa<00> <00> <00><00>$|<00><00><00>@<40><><91><F8>faX<61>*<01> <09><01> <01><00>l
<82> 
   <01><04>  
 __SIM6502__runtime/call.s
ca65 V2.15callaxptr1.size"jmp (abs)" across page borderCODERODATABSSDATAZEROPAGENULL H<><00><>Uzna` iq<00>Ke?<00><00><00>/<00><00>@<40><><91><F8>faX<61><00><01> H<03><02><01> <01>
<82><01>
<01><03><00><01> <01>
<82><01>
<01><03><00><01>
<01><03><00> <20><><01><02><> <01><01>`  
 <05>)<08><03> <07><0F><17><01><03>
<19><04> ?")>&9C86A4;$!=5%7@(: B< __SIM6502__runtime/callirq.s
ca65 V2.15callirq callirq_y __CALLIRQ__irq_initirq_done__INTERRUPTOR_TABLE____INTERRUPTOR_COUNT__initirqdoneirq.sizeloopjmpvecindexdoneCODERODATABSSDATAZEROPAGENULLUzna` iq<00>,,X[V<00>y*Z+@<40><><91><F8>faX<61>j
<01>
<83><01>
<01><03> 
<82><01>
<01><03><01>
<01><03><00>  
<82><02>L
<82>     <03><01><03> <0B><05><00><04>
  $(# __SIM6502__runtime/callmain.s
ca65 V2.15callmain__argc__argv_mainpushax.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>3L X[o<00><00>UZV@<40><><91><F8>faX<61> <06> ! 
<82><01>
<83><01>
<01><02> 
<82><02><01>

<02><01>` 
<82><01>
<83> <01>
<01><02>L
<82> 
   <01><04>!  0?& 31$5
%*2/#< __SIM6502__common/calloc.s
ca65 V2.15_calloc_malloc__bzero tosumulaxpushaxSize
ClearBlock.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>+A MP<00><00><00>O<00>@<40><><91><F8>faX<61>faX<61>|H<02> <01> <09><01>
<82><01><01><02>e <09><01> <09><01><01> <01><01> hL
<82>  
  <01><04> &  $!  #' __SIM6502__common/cc65_idiv32by16r16.s
ca65 V2.15_cc65_idiv32by16r16 idiv32by16r16incsp4-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace@L1.size@L2CODERODATABSSDATAZEROPAGENULLUzna` ixk<00><00> V\mn@<40><><91><F8>faX<61>faX<61>4
<01> <09><01> <01><00> 
<82>L
<82>  
   <01><04>
     __SIM6502__common/cc65_imul16x16r32.s
ca65 V2.15_cc65_imul16x16r32 imul16x16r32popax-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq[<00><00> <00><00>)<00><00><00><00>@<40><><91><F8>faX<61>$ <01> <09> 
<82>L
<82>
   <01><04>  __SIM6502__common/cc65_imul8x8r16.s
ca65 V2.15_cc65_imul8x8r16
imul8x8r16popaptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq1<00><00><00><00>F
<00><00><00><00>@<40><><91><F8>faX<61>GS< iZ<01>))<01><02>"<01><02>h<01>00<02>h;<01>!!<01><01> <02>%<01>ɴ<01>::<02>Z<01>&&I<>i<>-<02>W<01><02><02>`<01><02><01>1
<83>1`.89<02><><02>Z2<01>I<>#i<>7<02><>$<02>W=<01><02>*`<<01> <01>6Y
<83> i'<01><01>+`<08>WW,, , ,,,,,$,(,,15:>BGKOSX\`dhlptx|<01><01><01><01><01><01><01><01><01><01><01>8<01>8<01>8<01>8<01>8<01>8<01>8<01>8<01>8<01>8<01>3<01>3<01>3<01>3<01>3<01>3<01>3<01>3<01>3<01>3<01><01><01><01><01><01><01><01><01><01><01> <01> <01> <01> <01> <01> <01> <01> <01> <01> <01>5<01>5<01>5<01>5<01>5<01>5<01>5<02><01><00>0<><04>(>hm|UP<00>0?<00>"o><00>s98O<00>tb31Jn!i<00>=7<00><00>NV<00>,2<00><00>cv<00>:u~ #<00><00>{Q<<00><00> __SIM6502__common/cc65_sincos.s
ca65 V2.15 _cc65_cos _cc65_sin _cc65_sintab.size@L1@L2@L3L3L4L1L2L5L6L7CODERODATABSSDATAZEROPAGENULLUzna` ix<00>;X dg<00><00> f@<40><><91><F8>faX<61>faX<61><06><01> <09> <01> <01><00><02><01> <09><01>
<82><01><01><02>e <09><01> <09><01>  <01> <01><02>L
<82>  
  
 <01><04> "&  $!  ' __SIM6502__common/cc65_udiv32by16r16.s
ca65 V2.15_cc65_udiv32by16r16udiv32by16r16mincsp4-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace@L1.size@L2CODERODATABSSDATAZEROPAGENULLUzna` ixk<00><00> V\mn@<40><><91><F8>faX<61>faX<61>4
<01> <09><01> <01><00> 
<82>L
<82>    <01><04>
 
    __SIM6502__common/cc65_umul16x16r32.s
ca65 V2.15_cc65_umul16x16r32 umul16x16r32popax-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeCODERODATABSSDATAZEROPAGENULLUzna` ixq<00> [lz{@<40><><91><F8>faX<61>faX<61>:  <01> <09><02><01> <01><01> 
<82> L
<82> 
    <01><04>      __SIM6502__common/cc65_umul16x8r32.s
ca65 V2.15_cc65_umul16x8r32 umul8x16r24popax-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq[<00><00> <00><00>)<00><00><00><00>@<40><><91><F8>faX<61>$ <01> <09> 
<82>L
<82>
   <01><04> __SIM6502__common/cc65_umul8x8r16.s
ca65 V2.15_cc65_umul8x8r16
umul8x8r16popaptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>. q}<00>~@<40><><91><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__common/chdir.s
ca65 V2.15_chdir
__syschdir __mappederrno.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqb<00><00> <00><00>8Zu<00>v@<40><><91><F8>faX<61>+ I<> H<01>I<><01>h
` 
 <01><04>    
 __SIM6502__runtime/compl.s
ca65 V2.15complax.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>.$RUn<00>fTg@<40><><91><F8>faX<61> faX<61>I%  <01>. H<03><00>.<01>  <01> H<><01>) I<>)L
<83>`&'<00>(%<01>2
<01><03> <00>2<01>
<01><03> <00><01>4
<01><03><00>4<01>
<01><03><00><01>"<03><><B9> <01>
<01><03><00> <01>!<03><><B9><01>+
<01><03><00>+<01>
<01><03> <00> <20><>
<02><>&<01><01>`)*I+  <01> H<03><02><01>33<01>/ H<>/<01> I<>L
<83>`0
. )/<03><06>%% <0E><05>  <20><04>  8-P0MHG" CLO6E3T14J!IF%@N 2RK/ #BD, __SIM6502__runtime/condes.s
ca65 V2.15initlibdonelibcondes__CONSTRUCTOR_TABLE____CONSTRUCTOR_COUNT____DESTRUCTOR_TABLE____DESTRUCTOR_COUNT__(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510exit.sizefetch1fetch2loopjmpvecindexCODERODATABSSDATAZEROPAGENULLONCEUzna` iqB<00>/<00> <00><00><00><00><00>)<00>*@<40><><91><F8>faX<61> -,<01> H<><01>
<09>
<01> I<><01> <01><02><01> H<> <01> <09><01> I<><01> <01><01> <01> HB<48><01> IB<49><01> <09><02><01><01> <01> <09><01> <09><01><01><01><01> <01><02><01> <01><01><01><01><01> <09><01><01>`
  
 <01><04> 0"& 1 $! %,#'+ __SIM6502__common/copydata.s
ca65 V2.15copydata __DATA_LOAD__ __DATA_RUN__ __DATA_SIZE__ptr1ptr2tmp1.size@L1@L3@L2CODERODATABSSDATAZEROPAGENULLUzna` ix <00>%<00> <00><00><00>X<00><00>@<40><><91><F8>faX<61>
faX<61><06>*$<01>
<83><01><01><01>e <09><01> <09><01> <01><01><01><01><01> <01><00><02><01> <09><01><01><01> <09> 
<82><01> <09> <01> <01><00> 
<82>
<01>
<83>L
<82>
      
<01><04> -0">& 94$.!=5%@,/ #'+ __SIM6502__conio/cprintf.s
ca65 V2.15_cprintfpushaxaddysp _vcprintfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac ParamSize.size@L1CODERODATABSSDATAZEROPAGENULLUzna` iq<00>#2PSy<00>wCRD@<40><><91><F8>faX<61>{ H<01> 
<01><00> hHJ J
JJ<01><01>
<82> 
<82>h) <01><01>
<82>L
<82>
   <02><05> <0A><01><00>  
 ' __SIM6502__conio/cputhex.s
ca65 V2.15 _cputhex8
_cputhex16_cputc__hextab.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>  %(<00><00><00><00>'<00>@<40><><91><F8>faX<61>faX<61>\H<01>H<01>2<01> 
<82>h<01>h  
<82><02>L
<82> <01><04> -"   $ %*( #' __SIM6502__common/creat.s
ca65 V2.15_creat_openpushax*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCL.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>I;<00><00><00><00>7J<00><00><00>@<40><><91><F8>faX<61>faX<61> !"#$<00>%<01><02><> <01> <01> H<01><03><02> <01> I<01><03><02><01> <09><01> <01><00> 
<82> 
<82> 
<82>H 
<82>hL
<82> 
      
 <02><12><01><06>       
 & __SIM6502__sim6502/crt0.s
ca65 V2.15_exit __STARTUP__zerobsscallmaininitlibdonelibexit__MAIN_START__ __MAIN_SIZE__ __STACKSIZE__-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeCODERODATABSSDATAZEROPAGENULLSTARTUPUzna` i <00>%<00> <00><00><00><00>7<00><00><00>@<40><><91><F8>faX<61>
faX<61> faX<61><06>*$<01>
<83><01> <01><01><01> <01><01>  e <09><01><01><01> <09><01>$ <01><00>$<02>!<01> <09><01><01> <01>" <09>" 
<82><01> <09><01> <01><00> 
<82><01>
<83>L
<82>
  ! $"
# <01><04> '->&6 1$=5
%( ,#' <" __SIM6502__conio/cscanf.s
ca65 V2.15_cscanfpushaxaddysp_vcscanf,/home/hugg/compilers/cc65/asminc/generic.mac-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeArgSize@L1CODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>)ls<00>t@<40><><91><F8>faX<61> 
<82>L
<82> 
   <01><04>  __SIM6502__common/ctime.s
ca65 V2.15_ctime
_localtime_asctime.sizeCODERODATABSSDATAZEROPAGENULLUzna` ixN<00><00> <00><00><00><00> <00> <00><00> @<40><><91><F8>faX<61>CfaX<61><00><02>LxIyF<01>WP{PaPP`<01>h Gt>i;AT1X,'uB<01><01>R]?~(<01>3UNDo.  ^ 0   <01> n <01> = 
 e&<01><01><01>\H
Z
}
c
8
m
OC%4J9E2Md#7vqkQ!r<01>-w  : <01>   6S<01> Y|V<<01>[<01> <01>+$j<01>*)@P@zffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff<01><05>l<00>hm\j<00>|<00><00><00>U-P0M<00><00>lHG?<00>")o><00>ys<00>fW9C<00><00><00>8}LO6pEg<00>tbk<00>3<00>T1A<00>4;eJn$.^!i qId<00>x=<00>5F<00>%7<00>_<00>[@N *(arV<00>,2<00>wcRKvz/:u~ #<00>'<00>`BS<00>DZ{<00><00>Q<<00><00><00>YX+ __SIM6502__sim6502/ctype.s
ca65 V2.15*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqa<00><00> <00><00>8!`<00><00><00>@<40><><91><F8>faX<61>*
<01> <02><01>
<82>
<01>
<82>` 
  
<01><04>
    __SIM6502__conio/cursor.s
ca65 V2.15_cursorcursor.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqf<00>pG gj<00>M hii@<40><><91><F8>faX<61>=/B<00><02><01><01> <09><01> *
<82>*<01><01> <09><01><01><01> <01><02><01> <01>
<82><01><01> <09><01>q <01><01>q<02><01><01> <09> b
<01><00><>b<01>_ <09>_8e<01><01> <09><01><01>L L<01><01><01>C <09>C<02> <<01><01> <09><01><01>g<01><01><01><01><01><01><02>,<01>& <09>&<01><01> <01><01><01> <09><01><01># <01><01>#<02>!<01>{ <09>{ k
<01><00><>k<01>G <09>G<01><01><01><02>J` 8
<01><00>G8 <01>
<01><00>G<01><02> <01><01> <09><01>s <09>s<01><01> <09><01><01><01><01><01><01> <09><01><01>Z<01><01> <09><01><01>~ <09>~`h<01>  [
<01><00>^[<01> <01>y <01><07>y<01><01> <09><01><01>1 <09>1HYJ<01>J<01>J<01>J<01><01>0<01><01>
<82><01><01><01> <09><01><01> hE)<01><01><01>^
<82>^<01><01> <09><01><01><01> <09><01>X <09>X<01> <01><07>`<01><01><01> <09><01><01><01> <01><01><01> a
<01><00>Ya '
<01><00>D'<02><01><01><01> <09><01> <01>
<01><00><><01>H-<01><01> <09><01><01><01><01>@?? d
<01><00>AdL<01>
<01><00><><01><01><01> <09><01> )
<01><00>^) <01>
<01><00>G<01><01><01><02><01><01><01><01> <01>
<01><00>D<01>h<02><01> `
<01><00>B`<02><01><02>A<01>SS<01><01> <09><01><01>99<01><01> <09><01><02><>I<01>j <09>j<01><01><01> <01>
<01><00>^<01><01>|<01><01><01><01>
<09>
<01><01><01><01>3
<02> <0B>3 r
<01><00>Ir<01><01>
<02>
<81><01><01><01><01> ]
<01><00>I]<01><01><01>P<01>P` 
<01><00><>Ui<01><01><01><01><01><01><01>L}
<01><00>Y}<01>4 <01><01>4<01>.<01><01><01>/e<01> <09><01><01><01>(`<01><01>J7<01> Jf<01><01><01><02>"<01><01>)F <09>zJ<01>t<01>o
<82> o<01>ppJ<01>J<01>J%JV)Q<01><01><01><02><>:<02>><01>l<01>
<82>  <01><01> <09><01>)n<01><01> <09><01><01><01>)<29><01>=<01><01><02>T<02><><01><01>v vJ<01><01>wwJ<01>J <01><01><01><01>$<01>$<01> <01>+<01><01><01><01>`6<01><01>m
<82> m<01>2 <09>2<01><01>
<82><01><01>B <01><00>B<02>c<02>D<01> <01><00><01>&\ <09>\*5<01><01><01>;<01>;i?<01> <01>
<01><00>I<01><01>K<01><01>LR
<01><00>GRCDEFGW<01>WWxW<01>WW<01> W<01> W<02> H<01>
Hm H<01>H3<01> <01>o<01><02>^i*<2A><02><01><00>/O<01><01><1D>/<01><01><00><01><00><00><00><00><00>\j<00>|<00><00><00><00><00><00><00>-P<00><00><00>0M<00>]<00><00>lHG<00><00>?<00><00><00>)<00>><00><00><00>ys<00><00><00><00><00><00>W<00><00><00>9<00><00><00><00><00><00>8<00>}<00>L<00>O<00>6p<00>E<00><00><00><00><00><00><00><00>tbk<00><00><00>3<00><00>1<00><00>4<00>;e <00>J<00><00><00><00><00>.<00>^<00>i<00><00>q<00>I<00><00>d<00><00><00>x<00>= <00>5F<00><00><00>%7<00><00><00><00>_<00>[@<00>N<00>*<00>(<00><00>a<00>r<00>V<00><00><00>,<00><00><00><00><00><00><00>w<00><00>cK<00><00>vz/:u~<00><00><00><00><00><00><00><00><00>'<00><00>`<00>B<00><00>Z{<00><00><00><<00><00><00><00>YX<00>+H __SIM6502__ dbg/dbgdasm.s
ca65 V2.15popax__hextab OffsetTab
AdrFlagTab
SymbolTab1
SymbolTab2 MnemoTab1 MnemoTab2sregtmp1tmp2tmp3tmp4ptr1ptr2ptr3BufIndex
OperandLenBufLen
AdrFlagBufYSaveXSaveBufPtrMemPtrMnemoBuf
_DbgDisAsm _DbgDisAsmLen
DisAssLineL2L1.size disassret AnalyzeOPCode
Put3SpacesPutSpace
Put2SpacesPutCharPC9PutHex16PutHex8L2083L208CL2094PutMnemoL20A4L20BAL20AC GetBranchAdrL20CCL20DDL20D9L20E3L20E8L20F8L2107L2103L210BL212BL2120L2124L213AL213ECODERODATABSSDATAZEROPAGENULLUzna` iqU<00>E  A[<00>@<40><><91><F8>faX<61>l]<02>&<01> <09><01>2 <09>2<01>"<01> <09><01> <09><01><01> <09><01> <01><01><01><01>, <09>,<01>9 <09>9<01><01>7 <09>7<01>3 <01><00>3 
<82><02><01>; <09>;<01>6 <09>6<01> <01><00>  *
<01><00>N*<01> <09>  8
<01><00>N8 0
<01><00>h0<01>/ <09>/0?? 1
<01><00>h1<01> <09><01>! <09>!<01>5 <09>5 
<01><00>NL
<01><00>0<02><01> <09><01>' <09>'<01> <09><01>+ <01><01>+`H>J%J J
J-<01><01>:
<82>: 
<01><00>ah<)<01>)<01>
<82> <01> <09><01># <09>#<01> <09>`4<02> .<01><01> (93 5 ('+
(2/ (6!(;#(,7 : $<01><04>@-0MHG?>& C8O6E31A4 J$.I= 5
F%7@N*(,K/ 'BDQ<+ __SIM6502__ dbg/dbgdump.s
ca65 V2.15 _DbgMemDumpaddysp1__hextabsptmp2tmp3tmp4ptr3ptr4.sizedumpputspacedump1dump9putcCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00><00><00>W<00><00><00><00>@<40><><91><F8>faX<61><06>+%<01> <09><01> <01><00><02>x <01> <09>H
<02> <01>
<83> 
<01><00>&<01>
<01><01>h <01> <09>(L
<82>h<01> <09>(L
<82><01> <09><01> <09>`U<01>3<01> <01><04>! -0")& 4 .! 57(/ ' __SIM6502__dbg/dbgisram.s
ca65 V2.15 _DbgIsRAMpopaxreturn0return1ptr1.sizeL1TestVal CheckCellL2CODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax1.s
ca65 V2.15decax1,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax2.s
ca65 V2.15decax2,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax3.s
ca65 V2.15decax3,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax4.s
ca65 V2.15decax4,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax5.s
ca65 V2.15decax5,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax6.s
ca65 V2.15decax6,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax7.s
ca65 V2.15decax7,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><91><F8>faX<61>faX<61>'8
<02>
<01><01> `  
   <01><04>   __SIM6502__runtime/decax8.s
ca65 V2.15decax8,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ixm<00><00> <00><00>LH<00><00><00><00>@<40><><91><F8>faX<61>faX<61>6  <01> <09>8<01> <09><01>  <01>`
    <01><04> 
   __SIM6502__runtime/decaxy.s
ca65 V2.15decaxytmp1,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqp<00> <00> <00><00>81a<00><00><00>@<40><><91><F8>faX<61>9  <01> <09><01><01> <01><00><01>
<09>
` 
   
<01><04>    
 __SIM6502__runtime/decsp1.s
ca65 V2.15decsp1sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> <09>8
<02><01> <09> <01>`<01> <01><00>` 
     <01><04>    
 __SIM6502__runtime/decsp2.s
ca65 V2.15decsp2sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> <09>8
<02><01> <09> <01>`<01> <01><00>` 
     <01><04>    
 __SIM6502__runtime/decsp3.s
ca65 V2.15decsp3sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> <09>8
<02><01> <09> <01>`<01> <01><00>` 
     <01><04>    
 __SIM6502__runtime/decsp4.s
ca65 V2.15decsp4sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> <09>8
<02><01> <09> <01>`<01> <01><00>` 
     <01><04>    
 __SIM6502__runtime/decsp5.s
ca65 V2.15decsp5sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> <09>8
<02><01> <09> <01>`<01> <01><00>` 
     <01><04>    
 __SIM6502__runtime/decsp6.s
ca65 V2.15decsp6sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> <09>8 <02><01> <09> <01>  `<01> <01><00>` 
   
 <01><04>    
 __SIM6502__runtime/decsp7.s
ca65 V2.15decsp7sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> <09>8
<02><01> <09> <01>`<01> <01><00>` 
     <01><04>    
 __SIM6502__runtime/decsp8.s
ca65 V2.15decsp8sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq=<00><00> <00><00><00>mE<00>F@<40><><92><F8>faX<61> 
 <01><04> 
 __SIM6502__common/doesclrscr.s
ca65 V2.15_doesclrscrafterexitreturn0CODERODATABSSDATAZEROPAGENULLUzna` i<00>{ <00><00>VY b<00>7X8@<40><><92><F8>faX<61>faX<61>&1faX<61>?q@Q?eVmVdVV<01>K
<83>K<01> <09> <01>/
<01><02>/<01>R <01><00>R<02>(<01>+ <09>+<01>:
<83>:<01> <01>><01><02>a<01>9 H<>9<01> <09><01><01>B I<>B<01>* <09>*<02> <02>;<01> 
<01><01>< 5
<01><01><5<02>-<01>O<01>OL
<83> <02>N<02>[`)<01>d <09>d<01>c
<83>c<01>^<01>A` ,
<01><03>,<02><01>0
<83>0<01>
<01><02><01>`
A VBLY
<82>YL
<82>LU
<82>ULL
<82>LL
<82>
L3
<82>3L
<82>LZ
<82>ZCD8 R+*d.9B.YUL
3Z <0C>*<01><01>D6<00>)<01><01>e<00>&<01><01>G!<00>%<01><03>Z<00>$<01><03><00>#<01><03>3<00>"<01><03> 
<00>!<01><03> L<00> <01><03>U<00><01><03>,<2C><1E>Y <0C><1D>K/0hhm\j/ - -hM[lHG?cB)(>P+8)&(6'EgE-DaOA3TA4eJ.i:g+Id4=5Fif75[@**2 U, 1 dT,@RKb. /Q`#JeSV0 ZRQ<SYX+C3 E __SIM6502__em/em-kernel.s
ca65 V2.15return0 em_librefptr1./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copyto-/home/hugg/compilers/cc65/asminc/em-error.inc EM_ERR_OKEM_ERR_NO_DRIVEREM_ERR_CANNOT_LOADEM_ERR_INV_DRIVEREM_ERR_NO_DEVICEEM_ERR_INSTALLED EM_ERR_COUNT emd_vectorsemd_sig@L0inv_drv@L1copyCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40><><92><F8>faX<61>faX<61>&./0123  <01>+<2B> +/ - h[cB)P(EDaOA:g+4if5*2 U, 1 dT@b. Q`JeV0 RSC3 4 __SIM6502__em/em_commit.s
ca65 V2.15./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copytoCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40><><92><F8>faX<61>faX<61>&./0123!<01>,<2C>+/ - h[cB)P(EDaOA:g+4
if5*2 U, 1 dT@b. Q`JeV0 RSC3 4 __SIM6502__em/em_copyfrom.s
ca65 V2.15./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copytoCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40><><92><F8>faX<61>faX<61>&./0123"%<01>-<2D>+/ - h[cB)P(EDaOA:g+4
if5*2 U, 1 dT@b. Q`JeV0 RSC3 4 __SIM6502__em/em_copyto.s
ca65 V2.15./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copytoCODERODATABSSDATAZEROPAGENULLUzna` i$<00><00><00>@<00> <00><00>|K'r <00>s @<40><><92><F8>faX<61>faX<61>&.faX<61>6faX<61>EfaX<61><06>\ZE<01>|
<82> |<01>``<01>
<01> <09><01><<<01>hh<01> I  )
<82>)<01>LL "
<82>"<02> k
<82>k<01>:
<01><03>:<01>x
<01><03><00>x<01>O0919<01>I H<>I<01> I<> 
<82>HD<01>Q
<01><03>Q<01>(
<01><03><00>( 
<82> h<01>\\<01>N
<01><03>N<01>
<01><03><00> 
<82><01>W<01>66H,<01>
<82> <01>>
<01> <09>> 
<82> 7
<82>7h<02>`;<01>YY<02>`4]^_

<82>c 
B  q`a
U T-cS?kQ&"PH)>t=!&f#7o|><01>$<24>Zhm\j/ - U-PhK0][lHGcB)(&sP 92+<8J)&(O6'gE-DaGOtAbkA;n. i:g+I40x Fif75[@*N*12 U, a1 rdTV,I@vb. /H/:Q4`Je3VB0 R< FS+C3 b __SIM6502__ em/em_load.s
ca65 V2.15./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copyto-/home/hugg/compilers/cc65/asminc/em-error.inc EM_ERR_OKEM_ERR_NO_DRIVEREM_ERR_CANNOT_LOADEM_ERR_INV_DRIVEREM_ERR_NO_DEVICEEM_ERR_INSTALLED EM_ERR_COUNT,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM*/home/hugg/compilers/cc65/asminc/fcntl.inc STDIN_FILENO STDOUT_FILENO STDERR_FILENOO_RDONLYO_WRONLYO_RDWRO_CREATO_TRUNCO_APPENDO_EXCLpushaxpusha0incsp2_open_read_closectrl@L0@L1@L4@L3@L2CODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40><><92><F8>faX<61>faX<61>&./0123'<01>)<29>+/ - h[cB)P(EDaOA :g+4if5*2 U, 1 dT@b. Q`JeV0 RSC3 4 __SIM6502__ em/em_map.s
ca65 V2.15./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copytoCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40><><92><F8>faX<61>faX<61>&./0123!<01>(<28>+/ - h[cB)P(EDaOA:g+4
if5*2 U, 1 dT@b. Q`JeV0 RSC3 4 __SIM6502__em/em_pagecount.s
ca65 V2.15./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copytoCODERODATABSSDATAZEROPAGENULLUzna` i<00><00>/K VY}<00>e;X<@<40><><92><F8>faX<61>faX<61>&.faX<61>6faX<61>rF<01>7
<82>7 !
<01><02>!<01> 
<82><01>
<82><01>
<01><02>  ,
<82>,L
<82><01><02>$`GHIJK>E, A7! (<01>%<25>L/ - hKcB)(P2+<J)&('E-DaGOA:g+40if5**12 U, 1 dTI@b. H/Q4`Je3VB0 RFSC3 L __SIM6502__em/em_unload.s
ca65 V2.15 em_clear_ptr./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copyto-/home/hugg/compilers/cc65/asminc/em-error.inc EM_ERR_OKEM_ERR_NO_DRIVEREM_ERR_CANNOT_LOADEM_ERR_INV_DRIVEREM_ERR_NO_DEVICEEM_ERR_INSTALLED EM_ERR_COUNT,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM no_driverCODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00>
<00><00><00><00><00><00><00><00>@<40><><92><F8>faX<61>faX<61>&./0123(<01>*<2A>+/ - h[cB)P(EDaOA:g+4if5*2 U, 1 dT@b. Q`JeV0 RSC3 4 __SIM6502__ em/em_use.s
ca65 V2.15./home/hugg/compilers/cc65/asminc/em-kernel.incEMD_HDRID.sizeVERSIONLIBREFJUMPTABINSTALL UNINSTALL PAGECOUNTMAPUSEMAPCLEANCOPYFROMCOPYTOEMD_API_VERSIONEM_COPYBUFOFFSPAGECOUNTUNUSED_em_drv emd_install emd_uninstall emd_pagecountemd_mapemd_use
emd_commit emd_copyfrom
emd_copyto em_clear_ptr_em_load_driver
_em_unload _em_install _em_uninstall _em_pagecount_em_map_em_use
_em_commit _em_copyfrom
_em_copytoCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>
 =L^<00><00>@<40><><92><F8>faX<61>N <01>
<01> <09><01><01> <01><00> <01> <09><02> <01> <09>` 
    <01><04>
   
 __SIM6502__runtime/enter.s
ca65 V2.15entersp.sizeL1CODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8D~<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>L
<82> <03><01><00>
<06><01><00> <06><04>    __SIM6502__ runtime/eq.s
ca65 V2.15toseq00toseqa0toseqaxtosicmpbooleqsptmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` ixC<00><00> <00><00><00>RF<00><00><00>@<40><><92><F8>faX<61>faX<61>  ! "#$%<01><05>

 "  & __SIM6502__common/errno.s
ca65 V2.15*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00>  n<00> [<00>
<00>
@<40><><92><F8><12><>\<5C>faX<61>'_(<00><02>
<01><01>-
<01><01>&
<01><01>
<01><01><>
<01><01>#
<01><01><>1
<01><01>qA
<01><01><>
<01><01>Y>
<01><01>H8
<01><01>j
<01><01>`(
<01><01><>
<01><01>@C
<01><01>;=
<01><01>T'
<01><01>
<01><01><>?
<01><01><>%No such file or d@i@r@e@c@t@o@r@y@@Function not impl4e4m4e4n4t4e4d44N6o6 6s6p6a6c6e6 6l6e6f6t6 6o6n6 deviceD;e;v;i;c;e; ;o;r; ;r;e;s;o;u;r;ce busyI7n7t7e7r7r7u7p7t7e7d7 7s7y7s7t7em callU,n,k,n,o,w,n, ,O,S, ,e,r,r,o,r, codeToo many open filesP"e"r"m"i"s"s"i"o"n" "d"e"n"i"e"dGGExec format error  I n v a l i d   a r g u m e n t BBEaEdE EfEiElEeE EnEuEmEbEeErEEN.o. .s.u.c.h. .d.e.v.i.c.e..O
u
t
 
o
f
 
m
e
m
o
r
y

U$n$k$n$o$w$n$ $e$r$r$o$r$$Illegal seekF3i3l3e3 3e3x3i3s3t3s33Range errorI9/9O9 9e9r9r9o9r99Try again)*+,<01><12>+IU -P0MHG?")>&9C8LO6E3T1A4;J$.!I= 5
F%7@N*(,2RK/: #'BSDQ<+- __SIM6502__../libwrk/sim6502/errormsg.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac __sys_errlist.sizeL0001L0003L0005L0007L0009L000BL000DL000FL0011L0013L0015L0017L0019L001BL001DL001FL0021L0023L0025CODERODATABSSDATAZEROPAGENULLUzna` iqL<00><00> <00><00><00>eC<00>D@<40><><92><F8>faX<61> 
  <01>  __SIM6502__sim6502/exehdr.s
ca65 V2.15
__EXEHDR__.sizeCODERODATABSSDATAZEROPAGENULLEXEHDRUzna` i<00>Ri ux#<00><00>vww@<40><><92><F8>faX<61>faX<61> "faX<61><06>/"<01> <09><01> <01><01><02>3<01>- <09>-)<01> <01> 
<82> <02><>4<01>`"<01>  <01>$ <09>$<02>*<01> <09><02>L1
<82>101234 # -$1<01><04>": -") 1$.!

"% * ,2/ #5 __SIM6502__common/fclose.s
ca65 V2.15_fclose_closeptr1*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACK __filetab@L1CODERODATABSSDATAZEROPAGENULLUzna` kz<00>2G SV<00>(U)@<40><><92><F8><12><>\<5C>faX<61>d>3 
<82><01> <01><04><01> <01><04> 
<82> %
<82>%<01>" <01><04>"<01> <01><04><00> <01><04><00><01>##<02><01> <09><02><01>$ <01><04>$<02><01><01> <01><04>L&
<01><00>*&<02> 
<82><01> <01><04><01> <01><04><00> H<02> <01> <09><01> <01><04> <01><01> <09><01> <01><04> hL
<82>  %
 "$ <01><12>>' -0")&86314;$.! 5
%7*(,2/: #'+ __SIM6502__../libwrk/sim6502/fdopen.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fdopen
__seterrno__fdescpushaxL0003L000B.sizeincsp6CODERODATABSSDATAZEROPAGENULLUzna` kz<00>CF<00> <00><00>}<R<00>S@<40><><92><F8><12><>\<5C> faX<61><06>"<00>h >
<82>><02>8<02> &
<82>& 
<82><02>C<01>= <01><07>=)%<01><01>? <01><07>?)#<01>--<02><><01>@L4
<01><00>|4<01> <01><07>)3<01>KK<01>6 <01><07>6)<29><01>$ <01><07>$<01>;<02><01> <01><07>L7
<01><00>|7<01><01> <01><07> *
<82>*<02> .
<82>. 
<82><02><02>< 
<82> <02>H<01>((<02><01>  L1
<01><00>v1<02><><01>BB<02><><01>EE<02><01>, <01><07>,  <01>
<01><07>
<01>'L"
<01><00>|"<02>:<01> <01><07> <01>2 <01><07>2<01><01>LG
<01><00>|G<02>9<01>D <09>D<02>H<02>5<01> <09><01>J <01><07>J<01>I<01>F <09>F<01>0 <01><07>0hL
<82> #$%&' !A A.A*AA&A> + =?6$,
2J0+DF<01><12><00>!)L\U -P0M]HG?")>&W9C8LO6E3T1A4;J$.!I= 5
F%7_[@N*(V,2RK/: #'`BSDZQ<YX+( __SIM6502__../libwrk/sim6502/fgetc.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fgetc_readpushaxregswap2decsp1L0025L0027.sizeL0016L000Cpusha0leaa0spL0023L001DL0021incsp3CODERODATABSSDATAZEROPAGENULLUzna` kz<00>vE<00> <00><00><00>a:<00><00><00>@<40><><92><F8><12><>\<5C>faX<61><06>4$ 
<82> 
<82><02> 
<82> 
<82> <02> 
<82> 
<82>  
<82> 
<82><02><> <01> <09>
<01> <01>
<81><01> 
<82><01><02><01>L
<82><02><><01> L
<82> !"#$  <01><12>4
 -")&1$.! 
%*(,2/ #'+% __SIM6502__../libwrk/sim6502/fgetpos.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fgetpos_ftellpushaxpushw0spldaxysp
steaxspidxldax0spldeaxipusheaxtosneeaxL0005incsp4.sizeCODERODATABSSDATAZEROPAGENULLUzna` kzt<00>lZ gj<00>Ko<00>i<00>@<40><><92><F8><12><>\<5C>faX<61>=(<00><02> L
<82>L<02> <02>5 
<82><01>W <01> <0C>W<01>R <01> <0C>R 3
<82>3<02> S
<82>S<01>0 <01> <0C>0<01>> <01> <0C><00>> 
<82><02>T<01>F <09> F<01>E <09> E<01>_
_<02>I 
<82> <02>1LP
<01><00><>P<02>
<01>)<02>J '
<82>'L+
<01><00><>+<01>; <01> <0C>;<01> <01> <0C><00>  ?
<82>
? 
<82><02><><01>QQ<02><>,<01>\\<02>9<01> <01> <0C>)<01>CC<01>*<01>V <09> V<01>Y <09> Y<01>"5"<02>=<01><01> <01> <0C><01>7L.
<01><00><>.<02>O<01> <09> <01> <01> <0C> <01>D <01> <0C>D<01><01> <01> <0C><00><02>[<02>N<02>X (
<82>(<02><01>H <09> H<02>
<01>^^<02>]<02>Z<02>B 
<82><01> <09>  2 <09> 2<01>@<01>@<02>U<01>G<01>% <01> <0C>%<02> M 8
<82>8H-<01> <09> <02>#<02><01>4 <09> 4<01> <01> <0C><01>&<01> <01><01>/ <09> /h<02> !L6
<82>6)*+,-'$6%$$$($$'$$S8$$L3K:?  2/< WR0>;  D%<FEVYH4<01><13><00>A`hm\jU -P0M]lHG?")o>&sfW9C8LO6pEgtbk3T1A4;eJn$.^!iqId= 5
F%7_[@N*(aV,2cRK/: #'`BSDZQ<YX+. __SIM6502__../libwrk/sim6502/fgets.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fgetc_fgets
__seterrnopushaxregswap2ldaxyspdecsp4L0004L0002.sizestaxyspL002BL000Bstax0spL001EL002AL000CL0022addeqyspsubeqyspL0029addyspCODERODATABSSDATAZEROPAGENULLUzna` if<00><00>ONQ<00><00>
P@<40><><92><F8>faX<61> faX<61>faX<61> /6D9<01> <09><01> <01><01><02><01>& <09>&)55`I E
<83>E<01>,,<01> <09>)F<01>F<01>* <09>*`4 
<83><01>++<01>C <09>C)  <02>#`; D
<83>D<01>%%<01>Q <09>Q)11<02>` 
<83><01>  <02>.<01>( <09>(<02>>`<01> P
<82>P<02><>=<01>K`"789:;P
(QC*& 06<05><08>6)<29><01><00>/2)<29><01><00># )<29><01><00> :)<29><01><00> J)U U-P0]HG?">& 9L3T1; J$.! I=F%[@,2RK/: # S
Q<"< __SIM6502__common/fmisc.s
ca65 V2.15 _clearerr_feof_ferror_fileno_fflushreturn0ptr1*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACK __filetab*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAXgetferr@L1errorCODERODATABSSDATAZEROPAGENULLUzna` ix<00>* 69<00> p|8}@<40><><92><F8>faX<61> faX<61> b& 
<82> 
<82><02>'<01>" "<02><01><01>

 &
<82>&<01>` L
<82>'()*+ &<01><04>* 0")&1.!

" (  ', __SIM6502__common/fopen.s
ca65 V2.15_fopen__fopen__fdescpushaxreturn0*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix <00>%<00> <00><00><00>N<00> <00>
@<40><><92><F8>faX<61>
faX<61><06>+$<01>
<83> 
<82><01>
<83>e <09><01> <09><01> <01><01><01><01><01> <01><00><02><01> <09> <01> <09> <01>
<01>
<01> <09><01> <01><00> 
<82><01>
<83>L
<82>
     <01><04>-?) C6E34;$.5*(,2:D+ __SIM6502__common/fprintf.s
ca65 V2.15_fprintfaddyspdecsp4 _vfprintfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac ParamSize.size@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` kz<00>6:p |<00>z$<00>~<00>@<40><><92><F8><12><>\<5C> faX<61><06>W@ +
<82>+<02>'<02> 
<82><02><01>/ <01><06>/)*<01>+<01> <01><06>),<01>%<01> <01>
<01><06>
 -
<82>-<02>$ 
<82> #
<82>#<02>1<02>% 
<82><02><01>((<02><01><02>&<01> <01><06> <01> <01><06><02><><01>!L
<01><00>G <02> <01>) <09>)H<02>0<01> <09><01> <01><06> <01><01>" <09>"<01> <01><06>h.L
<82>  !"# -+#/
 )"<01><12>W2 -0?")>&9C86E31A4;$.!= 5
F%7@*(,2/: #'B<+$ __SIM6502__../libwrk/sim6502/fputc.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fputc_writepushaxregswap2L000Bpusha0leaa0spL0017L000C.sizeL0002incsp4CODERODATABSSDATAZEROPAGENULLUzna` kzd<00>B  ,/<00><00>/,.-@<40><><92><F8><12><>\<5C>faX<61>-D2 
<82> <02><02> 
<82><02>&<01># <01><08>#)<01><01>$ <01><08>$)<01><02><><01>%L
<01><00>4<01><01> <01><08> (
<82>(<02> 
<82><02> !
<82>! 
<82> 
<82>H<02> <01> <09> <01> <01><08><01> <01> <09> <01>
<01><08>
h L"
<82>" !"#$
"!(  #$
<01><12>D) -0")&986314$.!= 5
%7*(,2/: #'<+% __SIM6502__../libwrk/sim6502/fputs.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fputs_strlen_writepushaxregswap2L0011L0003.sizeL0002pusha0pushwyspldaxyspincsp4CODERODATABSSDATAZEROPAGENULLUzna` i<00> <00>`<00> ?B<00><00>
<00>
@<40><><92><F8>faX<61>+faX<61> ,faX<61>8faX<61><06>H<00><02><01>M <01><00>M<01>c
<83>c<01> <01><00><01><01>
<01><02><01><01><01> <09><01><01>r <01><00>r<02><01>F <09>F)ss<01>BB<01>d <09>d)++<01>' '<01>[[ 
<82><01>Lh
<01><00><>h<01><01><01>2 <09>2)__<01><01> <09>)R<01>R<01>L <09>L<01>~<01>-
<01><02>-<02> <01><01> <09><01> }
<82> }<02> E 
<82><02><01> g
<82>g<02>  
<82> N
<82>N<02>=<01>| |<02>U<01>H H O
<82>
O 
<82>L>
<01><00><>><01>
<01><02><01>1,1H<<02> <01><01> <09><01><01><01> <09><01><06>i$<01>, <09>,<01><01><01> <09><01>A <01><03>Ai<01><01> <09><02><01> <09><02><01><01> <09>h8<02>m<02><02>a<01>ff<01><01><02><01><01><01><02>*<01>## (
<82> (<02><><01>pp<02><>8<01>v v<01>D<01>KK<02>]
<09>
<01><01> <09><01><01>C<01>tt)<29>m)$
<01><02>)$<01>99<01>o<02>/<01>JJ<02><01><01>ww<01><01>y<01>y @
<82> @<02>G e
<82>e 3
<82>3<01>
<83><01>P <09>P<01>%
<01><02>%<01>Y <01><00>YLS
<82> SIJ T <01>KLM9<01><01>i7<04>,7<03>Ax3 xN .g \
\e ISIO @ }^(<01><04><00>zZ<00><01>\j<00><00>|<00>U<00> P0]<00><00>HG?<00><00>o><00>&y<00><00><00>9<00><00><00>8}L<00>pE<00> <00><00>tbk<00><00>3<00><00>T1<00>e <00><00>J$^i<00>
I<00><00>d<00><00>= <00>
F"%7<00><00>[@  <00><00>,2<00><00><00><00>cRKz ~<00><00> <00>'<00>DZ{<00><00>Q<00><00>+N __SIM6502__common/fread.s
ca65 V2.15_fread_readpusha0pushaxincsp4incsp6ldaxyspldax0sppushwysp tosumulax tosudivaxptr1sp*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACK __filetab,/home/hugg/compilers/cc65/asminc/generic.macregbankfilesave@L1@L2@L99@L3pb@L4@L6@L5@L8@L7@L9@L10CODERODATABSSDATAZEROPAGENULLUzna` i<00><00>
S k <00> <00> <00><00>O<00> P@<40><><92><F8>faX<61><58>
faX<61>faX<61><06>
&<00><02><01>% <09>%<01><01> <01><05><01>! <01><05>!<01><01><01>`M<01><01> <01><05><01><02><>:<01><01> <09><01><01><01><01><01><01><01> <09><01><01> <01><05><01>" <09>"<02><01><01><01> <09><01><01><01> <01><06><01><01>b<01><01> <09><01><01><01> <09><01>(e<02> <09><02><01><01><01> <01><05>ec <01><06>c<01>$
<82>$<01>e<01>x
<01><02>x<01>.`.<01>` <09>`<01><01>
<82><01><01><01> <01><05><01><01><01>
<01><02><01><01>
<82> <01>I <09>I <01>
<01><00><01><01>B<01>j
<01><00>j<01><01> <01><06><01><02><01>] <09>](e<0E> <09><0E><01><01><01>#<01>
<09>
e<01> <01><06><01><01><01>
<01><02><01><01><01>+<01><01><01>
<82><01><01>p&p<01><01> <09><01><01>3
<82>3<01><01> <01><06><01><01>F
<01><02>F<02>D<01>C <09>C<01>r <01><05>r<01><01>
<01><00><01><01><01><01>- <09>-<01><01> <09><01><01>W
<82>W <01>
<01><00><01><01><01>o
<82>o<01>v
<01><01>v`n<02><01><01>E<01>Y <09>Y<01><01><01>< <09><`<01><01><01>
<82><01><01>f <09>f<01>6
<01><01>6<01><01> <01><04><01>B <09>B<01><01><01><02><01><01><01><01><01> <09><01><02><01><01><01><01><01><01><01> <09><01><01><01> <01><05><01><01>X
<82>X<01><01>
<01><01><01><01>s
<82>s<01>7
<01><00>7`<02>{<01>g <09>g<01><01> <01><03><01><02><01><01><01> <09><01><01> <01><04><01>S <01><05>S<01>ww<01><01> <09><01><01><01><01><01>*%*<01> <09><01><01> <01><03><01><01>e<01><01> <09><01><01><01><01><01><01> <09><01><01><01> <09><01><01>R <01><04>RK <09>K<01><01><01><01> <09><01><01><01><01><01> <09><01><01> <09><01><01>
<82><01><01><01> <01><05><01><01>^
<01><00>^L
<01><00>r<01>T <09>T}(e}<7D> <09>}<7D><01><01><01><01> <01><05><01>e<01> <01><06><01><01>; <09>;<01>[@[<01>L <01><04>L<01><<02><01><01><01> <09><01><02>(q<02>8 <09><02>8<01><01> <09><01><01><01><01>~ <01><06>~q_ <09>_<01><01> <09><01><01>V<01><01> <09><01><01><01> <09><01><01><01> <09><01><01><01><01><01> <09><01><01>P <09>P<01>? <01><06>?<01> <09><01><01>l l<01><01><01><01> <09><01><01><01> <09><01><01><01><01><01> <01><05><01><01><01> <09><01>L
<01><00>Z<01><01> <09><01><01><01>
<82><01><01><01> <01><05><01><01>
<01><00>L<01>
<01><00>Z<01><02><01><01>d <09>d<01>q <09>q<01><01><01> <01><04><01><01><01> <09><01><01>O<01>a <09>a<01><01> <09><01><01>'<01><01> <01><05><01><01>1 <09>1<01>u <09>uy <01><03>y<01><01><01><02><01><01><01> <09><01><01><01><01>t <09>t<01>U <09>U<01><01>
<82><01><01><01> <01><05><01><01><01>
<01><01><01>`A<02><01><01><01> <09><01><02>(e<02><01> <09><02><01><01> <01><01><01> <09>e<01> <01><03><01><01>/ <09>/<01><01>;<01><01>i <01><05>i<01>G7G<01><01> <09> <02>(q<02>8 <09><02>8<01> <09> <01>)<01>J <09>Jq<01> <09><01><01>0 <09>0<01>m<01>| <09>|<01><01> <09><01><01><01> <09><01><01><01><01><01> <09><01><01>> <09>><01><01> <01><06><01><01> <09><01><01>, ,<01>Z<01><01> <09><01><01><01> <09><01><01><01><01>9 <01><03>9<01><01> <09><01>`h<01><01> <09><01><01><01>
<82><01><01> <01><03><01><01>
<01><00><01>`<01><01><01><01> <09><01><01><01> <09><01><01> <01><01> <01><05><01><01><01> <09><01><01><01><01><01> <09><01><01><01> <09><01><01>=<01>N <01><03>N<01>@ <09>@`<01>'()*+k <0B>j<>W<>s7<73>^<5E><><01><01>ov<6F>6X<36><01><01><01>$x<><01><01><01>3F2g<><04>uy<75><01><1A> J0<4A>><3E>9<><16><01><01>N2f<>B<><14><01><01>RK;L<>_<><01>d<><01>127%<25>!<21><01><02>"<22><01>`<60>r<>Y<<3C><01><01>S<><01><01><06>T<><01><01><01>P<><01><01><01>q<>a<><01>tU<74>/i<><01>|<7C><02><01><01>@2<1B><01>cI<63>]
<EE><01><02>C-}<7D><01>~<7E>?<3F><01><01><02><01><01><01><01><02> <01><00><>H+.<2E><08>%+<00><02><00>h<00><00>m<00>\j<00><00>|<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>M]<00>lH<00><00><00>?<00><00>o<00><00><00>><00>!<00><00><00>W<00><00><00><00><00><00><00><00><00><00><00><00><00><00>}<00><00><00>O<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>t<00>bk<00><00><00><00><00><00><00>#<00><00><00><00><00><00><00><00><00><00><00><00>n<00><00><00><00><00><00><00>i<00><00><00><00><00>I<00><00>d<00><00><00><00><00><00><00><00><00><00>"<00><00><00><00><00><00><00><00><00>_<00>[<00>N<00><00><00><00><00><00><00><00><00><00><00>a<00><00><00><00><00>V<00><00><00><00><00><00><00><00><00><00>w<00><00><00><00><00>c<00><00>v<00><00><00><00><00><00><00><00><00> <00>u<00><00><00>~<00><00><00><00><00><00><00><00><00><00><00>`<00><00><00><00><00><00><00><00><00><00><00>Z<00><00><00><00><00><00><00><00><00><00><00><00><00><00>YX<00><00>, __SIM6502__ common/free.s
ca65 V2.15ptr1ptr2ptr3ptr4_freeheapadd*/home/hugg/compilers/cc65/asminc/_heap.inc freeblocksize.sizenextprev usedblockstartHEAP_MIN_BLOCKSIZEHEAP_ADMIN_SPACE __heaporg __heapptr __heapend __heapfirst
__heaplast,/home/hugg/compilers/cc65/asminc/generic.mac@L1@L3@L9@L8SearchFreeList@L2@LoopCheckRightMergeCheckLeftMerge2 NoRightMergeCheckLeftMerge NoLeftMergeCODERODATABSSDATAZEROPAGENULLUzna` kzX<00>@ !<00><00>0$ %@<40><><92><F8><12><>\<5C> faX<61>!K4 
<82> 
<82><01> <09><01>( <01><08>(<02>$<01> <09>)<01>%
%<02> 
<82><02> L&
<82>& 
<82><01> <09><01> <01><08><02>)<01> <09><02> 
<82><02><>"<01><02><01> L
<82><02> 
<82><02>  
<82><02>  
<82>
 #
<82>#L
<82> !"# 
&#!  (<01><12>K'* -0")>&986314;$.!= 5
%7*(,2/: #'+$ __SIM6502__../libwrk/sim6502/freopen.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_freopen_close
__seterrno__fopenpushaxldax0spL0011incsp6.sizeL0009pushwyspldaxyspCODERODATABSSDATAZEROPAGENULLUzna` ix <00>%<00> <00><00><00>N<00><00>@<40><><92><F8>faX<61>
faX<61><06>+$<01>
<83> 
<82><01>
<83>e <09><01> <09><01> <01><01><01>  <01> <01> <01><00><02><01> <09><01> <09><01><01><01> <09><01> <01><00> 
<82><01>
<83>L
<82>
   

<01><04> P0G?>& 98O6A45F7@K:'BQ __SIM6502__common/fscanf.s
ca65 V2.15_fscanfaddyspdecsp4_vfscanfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac ParamSize.size@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` kz~<00>nf sv_<00>i>u?@<40><><92><F8><12><>\<5C> faX<61>G&<00>` 5
<82>
5<02><02># 
<82>  >
<82>><02>:<01>" <01> <0A>") <01>;;<02>  *
<82> *L
<01><00>m<01>< <01> <0A><)0<01>  <02>/<01>E <09>E<01>2 <09><01>! !<01>8<01> <09><01> <01><0E><02>3<01> 
<82><02>'<01> <01> <0A> +
<82>+<02>  
<82> 9
<82>9<02>  C
<82>C %
<82> % 
<82> 
<82> <01>- <01><0E>-0 <02>=<01> <01> <0A>)<29>@<01> <01> <0A><02>)L
<01><00>o
<02><01>$ <01> <0A>$ <01>7 <01> <0A>7<02><><01>H.<02>
<01> <09><01>B <01> <0A>B<01>6<01>? <09>?<01> <01> <0A>h<01>1L
<82>'()*+%A"A !A ACA9AA+AA>AA54%*( "<$7B(-(E?<01><12><00>,&FU -P0MHG?")>&W9C8LO6E3T1A4;J$.!I= 5
F%7@N*(V,2RK/: #'BSDZQ<Y+, __SIM6502__../libwrk/sim6502/fseek.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fseek
__seterrno_lseekpushaxregswap2decsp4L0022L0026.sizeL000A lsubeqysppusha0ldeaxysppusheaxldaxyspsteax0spldeax0spL0016L0027addyspCODERODATABSSDATAZEROPAGENULLUzna` kz<00>+@ LO`<00><00>N<00>@<40><><92><F8><12><>\<5C>faX<61>d 
<82><02>  
<82><02>
 
<82> 
<82> 
<82><02> <02> 
<82>L
<82> <01><12>  "&$! 
 #'! __SIM6502__../libwrk/sim6502/fsetpos.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_fsetpos_fseekpushaxpushwyspldaxyspldeaxipusheaxincsp4.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00>oj<00> <00><00>\]<00>^@<40><><92><F8><12><>\<5C>
faX<61><06>$gL ,
<82>
,<02><02> 
<82>  4
<82>4<02>0<01> <01> <0A>) <01>11<02> #
<82> #<02><> <01>2 <09>2<01>( <01><0E>(<01>
L'
<01><00>W'<01>7<01>) <01> <0A>) 
<82> 
<82> .
<82> . 
<82> 
<82> *
<82>*<02><01> <09><01> <01><0E> <02> $
<82>$<01><02> <01>/ <01> <0A>/)<01>66<02><01>  
<82> &
<82>&H<02>3<01> <09><01>5 <01> <0A>5<01><01>" <09>"<01> <01> <0A>hL
<82>%&'()#" $*&4,+.#!)/5!2( !"<01><12>g%8 -0HG?")>&9C8L6E31A4;$.!I= 5
F%7@*(,2K/: #'BD<+* __SIM6502__../libwrk/sim6502/ftell.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_ftell
__seterrno_lseekpushaxregswap2decsp4L0003L0002.sizepusha0pushl0steax0spldeax0sppusheaxtosgeeaxL000F lsubeq0spincsp6CODERODATABSSDATAZEROPAGENULLUzna` i.<00>J<00> <00><00>.@<40><><92><F8>faX<61>faX<61> *faX<61><06>;{[<01>K
<83>K<01> <09> <01>2
<01><02>2<01> <01><01><02><01>U <09>U)..<01>; ;<01> @
<82>@<01>`LG
<82>G<01> <09> )((<01>H<01>H<02><01>< <09><<02> 
<82><02> * ^
<82>^<02>) Y
<82>Y<02>  [
<82>[ 
<82><02>4<01>--<02>O<01>
<02> ]
<82>]<02>
NLZ
<82>Z 
<82> <02><>><01><02><><01>//<01>M
<83>M<01>5 <09>5<01>+
<01><02>+<01> <01><01><02> <01> <09> 00<01> <09><01>&<01>& 3
<82>3<02>E 
<82> %
<82>%LS
<82>S<
= >?@
?@ U <5 ,% ,
^Y []ZGS38<01><04>{=7ah\j P0]")sfW9C8}L6Eg tk1A;e J$^i
qId
"%7[ * r,2wcRK u~#BSDQ<+A __SIM6502__common/fwrite.s
ca65 V2.15_fwrite_writepushaxincsp6addyspldaxysppushwyspreturn0 tosumulax tosudivaxptr1*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACK __filetabfile@L2@L1@L3@L4CODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  3?v<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>L
<82>   <03><01><00> <05><01><00><05><04>
   __SIM6502__ runtime/ge.s
ca65 V2.15tosge00tosgea0tosgeaxtosicmpboolge.sizeCODERODATABSSDATAZEROPAGENULLUzna` kza<00><00> <00><00>=5<00>&<00>'@<40><><92><F8><12><>\<5C>faX<61>* <01>
<82> <01>
<01><01>L
<82> <01><14>   
  __SIM6502__../libwrk/sim6502/getchar.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stdin_fgetc_getchar.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>9 EHj<00><00>LGM@<40><><92><F8>faX<61>v<01> <09><01> <01><01> 
<82> L
<82><01> <01><00> <01>8e <09><01><01>`
     <01><04> )&  $. 
%*(,' __SIM6502__common/getenv.s
ca65 V2.15_getenv __environ
__envcount searchenvreturn0ptr1ptr3tmp1found.size@L9CODERODATABSSDATAZEROPAGENULLUzna` kz; <00> <00><00>w#&<00><00><00><00>%<00>@<40><><92><F8><12><>\<5C>%faX<61><06> ?<00><02> w
<82>
w<01><01> <01><10><01><01>L <01><10>L <01>
<82>
<01><01>^
<01><03>^<01><01> <09><01><01>-
<01><03><00>-<01>+ <01><0F>+<02><01><01>~ <09>~<01><01>w<01><01>X
<01><03>X<02>%<01><01> <09><01><01>[
<01><03><00>[<01><01><01> <09><01>p<01><01>I<><01>0t@t<01>
<01><03><01><01>
<01><03><00><01> H
<82> H<01><02><01>q<01> <09><01>H<01><01> <01>&q<01> <09><01><01><01>h<01> <01>
<82><01><01>l
<01><03>l<01><01>
<01><03><00><01><01><01> <09><01><01>{ <01><0F>{<02>C<01>a <09>a<02>-<01><01><01><01>
<01><03><01>mm<01>*
<01><03><00>*<01>
<01><03>
<01><01> <09><01><01>6
<01><03><00>6<01>\ <01><0F>\<01><01> <09><01><01><01><01><02><>=<01>kL<01>
<01><00> <01><01><01>
<01><03><01><01><01> <09><01><01><01>
<01><03><00><01><01>< <01><0F><<01><01> <09><01><02>-<01><01><01>V
<01><03>V<01><01><01><01>
<01><03><00> <02><>p<01><01>L'
<01><00> '<01>
<01><03><01>j
<01><03><00>j<01> <09><01><01> <01><11><01> )
<82>)<01>
<01><03><01><01>
<01><03><00><01><01> <09><01><01>
<83><01><01><01>
<01><02><01><02><01> s
<82>s<01>1
<83>1<01><01>
<01><02><01> <01>
<82> <01><01><01> <01><10><01><01>8 <01><10><00>8 <01>
<82><01><01>R`R<01>A
<01><03>A<01><01> <09><01><01><01>
<01><03><00><01><01>O <01><0F>O<02>N<01>x <09>x<01><01><01><01><01>
<01><03><01><01>33<01><01>
<01><03><00><01><02>c <01>
<82><01> #
<82>#<01><01>
<82><01><01><01>
<01><0E><01> <01>
<82> <01><01>r H<01><01>"r<01>} I<01><01>"} <01>
<82>
<01><01>
<82><01><01>
<01><0E><01> q
<82> q<01><01>
<83><01><01><01>
<01><02><01> <01>
<82>
<01><01><01>
<82><01><01>Q
<01><0E>Q d
<82> d<02>
<01> I
<82>I<01><01>
<82><01><01><01>
<01><0E><01> Z
<82> Z<02>|<02>?<01>L<01>
<01><00> <01><01><01> <01><10><01><01><01><01><01>g <01><10><00>g<02><01><01> <01><10><01><02>:?<01><01><01><01><01><01><01>
<01><02><01><01>o
<01><02><00>o<01>z
<01><03>z<01><01> <09><01><01>_
<01><03><00>_<01> <01><0F><01><01> <09><01><01>E<>E<>LE
<01><00>E L<01>
<01><00><><01><01><01>
<01><03><01><01> <09><01><01>
<01><03><00><01><01>f <01><0F>f<01><01> <09><01><01><01><01><01><01>
<01><03><01><01>
<01><02><01><01>
<01><03><00><01><01><01>
<01><02><00><01>L@
<01><00><>@<02> : <01>
<82><01><01>;
<01><03>;<01><01><01><01>
<01><03><00><01>2
<01><03>2<01>
<01><03><00> <01>
<82><01><01><01><01><01>R<01><01> H<01><01>!<01><01>
<01><03><01><01>/ I<01><01>!/<01><01>
<01><03><00><01><02><01> G
<82>G 
<82><01>y
<82>y<01><01>
<01><0E><01> <01>
<82> <01><01>! H<>!<01>W I<>W <01>
<82>
<01><01>(
<82>(<01><01>
<01><0E><01> <01>
<82> <01><01><01>
<83><01><01><01>
<01><02><01> <01>
<82>
<01><01>0
<82>0<01>h
<01><0E>h `
<82> `<02>
<01> J
<82>J<01>M
<82>M<01>
<01><0E> 
<82> <02><01><02>?<01>L<01>
<01><00> <01><01><01>
<01><03><01><01>
<01><03><00> K
<82> K<01><02>eq<01> <09><01>H<01><01><01><01><01>q<01> <09><01><01><01>h <01>
<82><01><01><01>
<01><02><01><01>.
<01><02><00>.<01> H<01><01>!<01>7
<01><03>7<01><01> I<01><01>!<01><01>F
<01><03><00>F<01>
<01><03> <01><01><01><01><01>
<01><03><00><01><01><01>
<83><01><01>n
<01><02>nH]<02><01><01> <09><01><01>> <01><10>><01><01><01>S <09>S<01>v <01><10>vhUL<01>
<82><01>;@77:<01> <01>o<01>p<01>t<01>i<01>o<01>n<01> <01>r<01>e<01>q<01>u<01>i<01>r<01>e<01>s4 4a4n4 4a4r4g4u4m4e4n4t4 4-4-4 <01><01>:<01> <01>i<01>l<01>l<01>e<01>g<01>a<01>l<01> <01>o<01>p<01>t<01>i<01>o<01>n<01> 9-9-9 99A<01><01>$$B<01>"
<01><01>!<01>CD><01><01>;<01><01>3<01>IJ2<01>#1<01><02>G.<01><01>-<01>s<>,<01>)'<01><02><01>&<01>HK"<01>w<><01><01><01><01><01><01><01><04>q<><01>YdZ`<01><10><01><1A><01>Q<><01>y<>(<28>0hM <15>+~<7E>{a<>\<5C><01><<3C><01>Ox<4F><04>f<><01> <09>L<>8<>g<>>v<01><14><01><08><01><01><01><01><01><01>S<05><1A><00>Ti<><19> D<><01>1<><01><01><01><01><01>n<><18> <09><01><03><01>PX[<17>V <20><01>;2<07> <0C><01><01><02><01>b<>o<06><01>.<00><02><00><00><00><00><00><00>hm<00>\j<00><00>|<00><00><00><00><00>U<00><00><00> -P<00><00><00>0M]<00><00><00>lHG<00><00><00><00><00><00>")o<00><00>&<00><00>ys<00><00><00><00><00>f<00><00><00>W<00><00><00>C<00><00><00><00><00><00>8<00>}<00>L<00>Op<00>E<00><00>g<00><00><00><00><00><00><00>tbk<00><00><00><00><00><00>T<00>A<00><00><00>e<00><00>J<00><00><00>n$<00><00>.<00>^!<00>i<00><00><00>q<00>I<00><00><00><00><00>d<00><00><00><00>x<00><00>= <00><00>
F<00><00><00>%<00><00><00><00><00>_<00>[<00>N<00><00>(<00><00>a<00><00>r<00><00>V<00><00><00><00><00><00><00><00> <00><00>w<00><00>cRK<00><00>vz<00>/u~<00><00><00><00><00> #<00><00><00><00><00><00>'<00><00>`<00><00>BS<00><00>D<00>Z{<00><00><00><00>Q<<00><00><00><00><00>YX<00>E __SIM6502__../libwrk/sim6502/getopt.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stderr_fputc_fputs_strchr_optarg_optind_opterr_optopt_getopt.sizeL004EL002AL0048L005EL0004L0005pushaxL0012L0064L0067aslax1ldaxiL000EL0009L0003L0015incax1pushwyspbnegaxL0018L0022ldaxysppushwpusha0L0037L0035L003EL006BL003FL0059L0046tosicmpL0066L0044incsp8CODERODATABSSDATAZEROPAGENULLUzna` kz<00>i_<00> <00><00>}UI<00><00><00>@<40><><92><F8><12><>\<5C> faX<61><06>$<00>o 9
<82>9<01> <01>
<81><01>% <01>
<81>% 
<82><02>C >
<82>><01>$ <01>
<81>$<01> <01>
<81><00> ?
<82>? "
<82>"<01>,
<82>,<01>
<01><08> @
<82>@<02>4 
<82><02><>3<01>K)K<02><>6<01>%<02>#<01><<01> <01>
<81><01>
<82><01>7 <09> 7<01>
<01><08><01> <01> <09><01>)<01> <09> <01>-)<01><01>=L
<01><00> <01>H <09> H<01>' <09> <01> . L1
<01><00>z1<02><01>B <09> B<02>
<01>EE<02><01>+<01> <01>
<81> L
<01><00>z
<01>& <09> &<02>!<01>; <01>
<81>;<01> <01>
<81><01><01>2 <01>
<81><00>2<02><02> G
<82>GL:
<01><00>:<02>D 
<82>H<02>5<01> <09> <01>J <01>
<81>J<01>I<01>F <09> F<01>0 <01>
<81>0hL
<82> %&'() #A "AGAA"A?A>A9@(, 7* %$ ;2J0*HB&F<01><14><00>/8L\U -P0M]HG?")>&W9C8LO6E3T1A4;J$.!I= 5
F%7_[@N*(V,2RK/: #'`BSDZQ<YX+* __SIM6502__../libwrk/sim6502/gets.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stdin_fgetc_getspushaxldaxyspdecsp2push0L0005.sizestaxyspL0018L0026L0002L0006L001AL0022addeq0spincsp8CODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8Dv<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>L
<82>   <03><01><00>
<06><01><00> <06><04>    __SIM6502__ runtime/gt.s
ca65 V2.15tosgt00tosgta0tosgtaxtosicmpboolgt.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq#<00><00><00><00><00>jz<00><00><00>@<40><><92><F8>faX<61><06> .(<02><01> <09><01> <01><00> <02><01> <09><01>
<01> <09> <01><01> <01><01><01> <09><01> <09><01><01> <01><01>8<01> <01><00><01> <01> <09> <01>i<> `P<01>I<> `   <02><05> <11><01><00> -"&  $! %*(,/#'+ __SIM6502__runtime/icmp.s
ca65 V2.15tosicmptosicmp0spsreg.size@L1@L2@L4@L3CODERODATABSSDATAZEROPAGENULLUzna` ix+<00>,<00> <00><00><00><00><00><00><00>@<40><><92><F8>faX<61>
faX<61><06>3+<01># <09>#<02>   
<82><01> <09><01> <01><01><01>$ <01><02>$E <09><01> <09>$ <01><02>!!<02>"<02>8<01> <09>I<>%i<01> <09><01><01><01><01> 
<82> $ <09> 0  `L
<82> !#   $  <01><04>&-0?") 984 .! @*(,/: #'+" __SIM6502__runtime/idiv32by16r16.s
ca65 V2.15 idiv32by16r16negaxudiv32by16r16m-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.size@L1@L3@L2@L4CODERODATABSSDATAZEROPAGENULLUzna` ix<00>.<00> <00><00><00>j<00><00><00>@<40><><92><F8>faX<61>faX<61><06>+&<01> <09><02> 
<82><01> <09><01> <01><01><01> <01><02>E <09><01> <09> <01> <09><01> <01><02>   
<82><01> <09><01> <01><02> 
<82><01> <09>L
<82>` ! 
 
<01><04> -")&  $! %*(, #'+" __SIM6502__runtime/imul16x16r32.s
ca65 V2.15 imul16x16r32negax umul16x16r32mnegeax-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.size@L1@L2@L3CODERODATABSSDATAZEROPAGENULLUzna` ix<00>2Mjm<00><00>HlI@<40><><92><F8>faX<61> faX<61><06>GC<01>% <09>%<02>1$, <09>,<01><01> <01><00><02>5<02>0<01> <09>0  2 2<01># e <09><01>3<01>(e <01><00><01>'* <09>*& <01><00>F <09><01>.<01>.<01>)<01>)<01>+`I<><01> <09><01>/ <09>/<01>) )<01>!8<01> <09><01> <01>&<01> <01><00><01>46 <09>6& <01><00>F" <09>"<01>
<01>
<01>)<01>)<01>`- %,*6/"<02><01><00> <20><04> 8-0HG?")>& 98E3A;J.!=F%7@*(0,2K/: #'BD __SIM6502__runtime/imul8x8r16.s
ca65 V2.15
imul8x8r16 imul8x8r16mptr1ptr3tmp1,/home/hugg/compilers/cc65/asminc/generic.mac.size@L7NegMult@L2@L0@L1CODERODATABSSDATAZEROPAGENULLUzna` i^<00><00> <00><00><00><00><00>'<00>(@<40><><92><F8>faX<61>faX<61>faX<61>'i<01><01>` <01><04>    ! __SIM6502__runtime/incax1.s
ca65 V2.15incax1,/home/hugg/compilers/cc65/asminc/generic.mac(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix^<00><00> <00><00>=#<00><00><00><00>@<40><><92><F8>faX<61>faX<61>' i <01><01>
` 
   <01><04>    __SIM6502__runtime/incax2.s
ca65 V2.15incax2,/home/hugg/compilers/cc65/asminc/generic.mac@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incax3.s
ca65 V2.15incax3incaxy.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incax5.s
ca65 V2.15incax5incaxy.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incax6.s
ca65 V2.15incax6incaxy.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incax7.s
ca65 V2.15incax7incaxy.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incax8.s
ca65 V2.15incax8incaxy.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqf<00><00> <00><00>3!a<00><00><00>@<40><><92><F8>faX<61>/<01> <09><01><01> <01><00>`  
   <01><04>
  
 __SIM6502__runtime/incsp1.s
ca65 V2.15incsp1sp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incsp3.s
ca65 V2.15incsp3addysp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incsp4.s
ca65 V2.15incsp4addysp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incsp5.s
ca65 V2.15incsp5addysp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incsp6.s
ca65 V2.15incsp6addysp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incsp7.s
ca65 V2.15incsp7addysp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>a^<00>_@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  
 __SIM6502__runtime/incsp8.s
ca65 V2.15incsp8addysp.sizeCODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )`<02><01>` <01><04>    
 __SIM6502__common/isalnum.s
ca65 V2.15_isalnum*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )`<02><01>` <01><04>    
 __SIM6502__common/isalpha.s
ca65 V2.15_isalpha*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01><01><01>
<82>)<29>
`<02><01> ` <01><04>     __SIM6502__common/isblank.s
ca65 V2.15_isblank*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )`<02><01>` <01><04>    
 __SIM6502__common/iscntrl.s
ca65 V2.15_iscntrl*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )`<02><01>` <01><04>    
 __SIM6502__common/isdigit.s
ca65 V2.15_isdigit*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ix<00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>R<02><01> <01>
<01>
<82>)0<02> <02> <02>`<02><01>`<01><04>      __SIM6502__common/isgraph.s
ca65 V2.15_isgraph*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )`<02><01>` <01><04>    
 __SIM6502__common/islower.s
ca65 V2.15_islower*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ix}<00><00>  <00><00><00>
<00>@<40><><92><F8>faX<61>faX<61>F <02><01> <01><01>
<82>I)`
<02><01>` <01><04>    
 __SIM6502__common/isprint.s
ca65 V2.15_isprint*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ix<00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>R<02><01> <01>
<01>
<82>)7<02> <02> <02>`<02><01>`<01><04>      __SIM6502__common/ispunct.s
ca65 V2.15_ispunct*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )``<02><01>` <01><04>    
 __SIM6502__common/isspace.s
ca65 V2.15_isspace*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )`<02><01>` <01><04>    
 __SIM6502__common/isupper.s
ca65 V2.15_isupper*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ixw<00><00> <00><00><00><00>@<40><><92><F8>faX<61>faX<61>@ <02><01>  <01><01>
<82> )`<02><01>` <01><04>    
 __SIM6502__common/isxdigit.s
ca65 V2.15 _isxdigit*/home/hugg/compilers/cc65/asminc/ctype.inc__ctypeCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.size@L1CODERODATABSSDATAZEROPAGENULLUzna` iq.<00>E<00>#
<00><00><00>h i@<40><><92><F8>faX<61><06><00>~<01>* <09>*<02>;<01>J <09>J<01> <09><01>H <09>H<01>?<01> <09> <01>0 <01><02>0<01> <01><01><01>L<01>G <09>G<01>. <09>.<01><01>I <09>I<01>, <01><03>,L9
<82>9 T
<83>T<01>
<09>
<02>
'<01>=<=<02>%<01>((<02><>6<01> <02><01>
<83><01>D <09>D<01>)R<01>RL5
<01><00><>5<01>K <01><03>K#<02>-N<02> <01>8 <09>8<01> <09><01><01>2 <01><02>2<01>B <09>BI<> i<<01> <09><01> <01><03>I<>QiA<01>M <01><03>ML&
<01><00>c& O
<83>O<02>-H:<02>@<02>3+ <09>+& <01><03>*!<01> <09><01>//<01> <09><01>$ <09>$<01> <01><01><01><01>
<82>H1<01> <09># <01><03>#<01>E<01>E<02>hC<01>P <09>P<01><01><01>F<01>F<01> <09> <01> <01><01>`")->3>2>7>6>8>> *
 H 
0D82P  .,KBM+$#J GI79<02><01><00>`O4<><01><00>T4Uhmj|<00> P0M<00>lHG"oys f9C8}LO6pEg<00>tk3T14;e$^!iqId=5
F%_N2cRKz:u~ #BSDZ{Q<<00>+ __SIM6502__ common/itoa.s
ca65 V2.15_itoa_utoaaddysp1__hextabspsregptr2ptr3tmp1specval.sizedopoputoaL2L1L10L3L5L6L7L9CODERODATABSSDATAZEROPAGENULLUzna` iqf<00> <00><00><00>86n<00><00><00>@<40><><92><F8>faX<61>/
<01>
<01><00>
L
<82>`    
<02><05><07><04>  
 __SIM6502__ common/labs.s
ca65 V2.15_labs_imaxabsnegeaxsreg.sizeL1CODERODATABSSDATAZEROPAGENULLUzna` ix<00>s"<00><00><00><00><00><00>.<00>/@<40><><92><F8>faX<61>
faX<61><06>%"<02><01> <09><01> <01><01><02>'q# <09>#<01><01> <09><01>+q& <09>&<01><01><01>( <09>(q <09><01> <09><01> <01>* <01><01>*q <09> <01> <01><01> <01> <09>L/
<82>/ !"#   (*  #& /<02><01><00><16><04>"0")&  $!% *(, #'+$ __SIM6502__runtime/ladd.s
ca65 V2.15 tosadd0ax tosaddeaxaddysp1spsregtmp1(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>e|<00><00><00>)q<00><00><00>@<40><><92><F8>faX<61><06> #"<02>q <09> <01> <09>H<01>
<01>q <09><01> <09><01> <01> <01> <09>q <09><01> <09><01> <09><01><01> <01><00>q <09><01> <09><01> <01><00>h`
    <02><01><00> <0E><04> " ! 
  __SIM6502__runtime/laddeqsp.s
ca65 V2.15 laddeq0sp laddeqyspspsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>C\ hko<00>rLjM@<40><><92><F8>faX<61> <06> )<01> <09> 
<82> <01> <09><01><01> <09><01> <01><01><02><>f
<01><01>
f <09>f <09>j <01> <01><01><01> <09>`    
 <01><04>"&$!%*, #+ __SIM6502__runtime/lasr.s
ca65 V2.15 tosasreaxpopeaxsregtmp1.sizeL9L2CODERODATABSSDATAZEROPAGENULLUzna` iq<00> Lkh<00><00>@<40><><92><F8>faX<61>Y <01> <09><02> <09>  <09> <01><01><01>

<02>`<01>`
      <01><04>     
 __SIM6502__runtime/lbneg.s
ca65 V2.15bnegeaxsregtmp1.size@L0CODERODATABSSDATAZEROPAGENULLUzna` iqX<00>!<00> <00><00><00><00>|><00>?@<40><><92><F8>faX<61> !;4<01> <09><01>! <01><00>!<02><01> <09> 8<01> <01><01> <01>"<01><01>% <09>%<01> <09><01>" "<01><01> <09><01> <01><00><01>&&<01><01> <09><01># <09># 
<82> ($<01><01><02><>`'<02>`PI<>   
<82>(`!#  %
 <01><04>(-0")& 86314.! 5
%*(2#'+ __SIM6502__runtime/lcmp.s
ca65 V2.15toslcmpincsp4spsregptr1.sizeL4L1L2L3L5CODERODATABSSDATAZEROPAGENULLUzna` iq<00>
 ),[<00>a<00>+<00>@<40><><92><F8>faX<61>kI<> H<01>I<> <01><01> <09>I<><01> <09><01> <01><00>I<><01> <01><00>h` 
   <01><04> 
   __SIM6502__runtime/lcompl.s
ca65 V2.15compleaxsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq{<00> <00> BFa<00><00>@<40><><92><F8>faX<61>D  <01> <09><01> <01><00><02>
<01> <09>  <01>` 
    <01><04>      
 __SIM6502__runtime/ldai.s
ca65 V2.15ldaidxptr1@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>03<00><00>|_2`@<40><><92><F8>faX<61>faX<61>T<02><01> <09><01> <01><00><01> <01>
<09>
<01> <09><02><01> <09>` !
<02><01><00> <11><04>#    " __SIM6502__runtime/ldau0sp.s
ca65 V2.15ldau00spldau0yspspptr1(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` iql<00> <00> <00><00>3(_<00><00><00>@<40><><92><F8>faX<61>5 <01> <09><01> <01><00><02><01> <09>`  
  <01><04> 
  
 __SIM6502__runtime/ldaui.s
ca65 V2.15ldauidxptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>36V<00>n<00>5<00>@<40><><92><F8>faX<61>^ <02><01> <09> <01> <01><00><01><01> <09> <01> <09><01><01><02><01> <09>`
      <02><01><00> 
<B8><04>
   
 __SIM6502__runtime/ldauisp.s
ca65 V2.15ldaui0spldauiyspspptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>
<00>B]e<00><00>@<40><><92><F8>faX<61>I  <02> <01> <09><01>
<01><00>
<01> <09><01> <01><01> <09>` 
    
<02><01><00><07><04>     
 __SIM6502__runtime/ldaxi.s
ca65 V2.15ldaxildaxidxptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqf<00><00><00><00>=<f<00><00><00>@<40><><92><F8>faX<61>/ <02>
<01> <09> <01><01><01> <09>` 
     <02><01><00><07><04>    __SIM6502__runtime/ldaxsp.s
ca65 V2.15ldax0spldaxyspsp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>)<Y\`<00>m)[*@<40><><92><F8>faX<61><06> <02><01>
<09>
<01> <01><00><01> <09><01><01> <01><01> <01> <09><01><01> <09><01> <09><01><01> <01> <09>`
    
  <02><05> <0B><01><00>    
 __SIM6502__runtime/ldeaxi.s
ca65 V2.15ldeaxidxldeaxisregptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00> =@[<00>o
? @<40><><92><F8>faX<61>g <02><01> <09><01> <01><01><01><01> <09><01> <09> <01>
<01> <09> <01><01><01> <09>`
       <02><01><00> <02><04>   __SIM6502__runtime/ldeaxysp.s
ca65 V2.15ldeax0spldeaxyspsregsp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>3.a~<00>e<00><00>{<00>|@<40><><92><F8>faX<61><06><02><01> <09> <01> <01><03> 
<82> 
<82><01> <01><02> <01> <09>E <09><01> <09>L
<82> <01> <09>` 
 


  
  <02><01><00> <0A><04>  & !
%(  __SIM6502__runtime/ldiv.s
ca65 V2.15 tosdiv0ax tosdiveax poplsargsudiv32negeaxsregptr1tmp1tmp2.sizePosCODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8Dv<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>
L
<82>   
<03><01><00><05><01><00><05><04>    
 __SIM6502__ runtime/le.s
ca65 V2.15tosle00toslea0tosleaxtosicmpboolle.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq{<00><00>L`g<00><00>@<40><><92><F8>faX<61>D  <02> e <09>H<01> e <01><00><01>h` 
   
<02><05> <08><01><00>   
 __SIM6502__runtime/leaaxsp.s
ca65 V2.15leaaxspleaa0spsp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$hj<00>k@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__ runtime/leq.s
ca65 V2.15toseqeaxtoslcmpbooleq.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$hj<00>k@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__ runtime/lge.s
ca65 V2.15tosgeeaxtoslcmpboolge.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$hj<00>k@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__ runtime/lgt.s
ca65 V2.15tosgteaxtoslcmpboolgt.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>  $'Qxg<00>&<00>@<40><><92><F8>faX<61>a <01> <09> e <09><01> <01> <01><01> <09><01><01> <01><00>`
   

<01><04>   
 __SIM6502__runtime/linc.s
ca65 V2.15inceaxyptr4sreg@L9.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$hj<00>k@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__ runtime/lle.s
ca65 V2.15tosleeaxtoslcmpboolle.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00><00>he<00>f@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__ runtime/llt.s
ca65 V2.15toslteaxtoslcmpboollt.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$hj<00>k@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__ runtime/lne.s
ca65 V2.15tosneeaxtoslcmpboolne.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>0
: FIo<00>]H@<40><><92><F8>faX<61><06>I<>iH <01> I<>i<01><01>
<09>
I<> i<01> <09><01> <01><00>I<>i<01> <01><00>h ` 
  
<01><04> 
 __SIM6502__runtime/lneg.s
ca65 V2.15negeaxsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00>+<00><00><00>_C/r<00>s@<40><><92><F8><12><>\<5C> faX<61>uJ=<01> H<01><03><01>9 I<01><03>9` &
<82>&<02>!<01>8 <09>8<01> <09> <01>020 
<82><01> <09> <01>B <01><03>B<02>7<01>@ <09>@<02>C<01> 3
<82>3<01> <09><01>D <01><03>D<02>C<01>A <09>A<01>//L
<01><00>0 
<82> <01># <09>#<01>- <01><03>-<02>><01>2 <09>2<01><02>6<01>'L
<82> <01> H<01><01><01> I<01><01>L
<82>.EEC e!
<83>
<83>
<83>.
<83>=
<83>
<83>;
<83>5
<83>
<83>%
<83><01>?<01>:<01>$<01><01><<01>"<01>,<01>"# 3 &  B@DA#-2+8 <02><01><00>E<16><12>*)Fh\jU -PM]"&fW9LOEgbkT;eJ$^!Id= 5
%_[N*aV,cRK: #`SZQYX+$ __SIM6502__../libwrk/sim6502/locale.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac _localeconv
_setlocale _EmptyString.size_lcL0003L0022pushaxL002Aldax0spL002Cincsp4CODERODATABSSDATAZEROPAGENULLUzna` iq<00>?9x <00><00><00>x<00><00>@<40><><92><F8>faX<61> <06>RA $
<82>$<01> <01><05> <01> <09>!,<01> <09>I<>)i%<01> <09><01> <01><02>I<>i-<01>( <01><02>(<01> <09>I<>i*<01> <09><01> <01><05>I<>i+<01>! <01><05>!<01> <01><00> <01>/ <09>/"!"<01>& <09>&I<>i<01># <09>#<01> <01><01>I<>i<01> <01><01> <01> <09>I<> i
<01>' <09>'<01> <01><00>I<>.i<01> <01><00>`  '
&#  (/ !$<01><04> 0 0">&98631A4; $.!=5
%7@*(,2/: #'<+ __SIM6502__runtime/lshelp.s
ca65 V2.15 poplsargsgetlopsregtmp1tmp2ptr1ptr3ptr4.sizeL1L2CODERODATABSSDATAZEROPAGENULLUzna` iq<00>-E\_j<00>|E^F@<40><><92><F8>faX<61><06> )<01> <09> 
<82><01> <09><01><01> <09>
&
<09>
& <09>& <01><01><01> <01> <01> <01> <09>`   
 <02><05><06><04>")$!%*, # __SIM6502__runtime/lshl.s
ca65 V2.15 tosasleax tosshleaxpopeaxsregtmp1.sizeL9L2CODERODATABSSDATAZEROPAGENULLUzna` iq<00>-E QTe<00>r+S,@<40><><92><F8>faX<61><06> )<01> <09> 
<82> <01> <09><01><01> <09>F <01><01>f <09>f
<09>
j<01><01> <01> <01> <09> `   
  <01><04>0")$!( # __SIM6502__runtime/lshr.s
ca65 V2.15 tosshreaxpopeaxsregtmp1.sizeL9L2CODERODATABSSDATAZEROPAGENULLUzna` iqq<00><00><00><00>?q<00><00><00>@<40><><92><F8>faX<61><06> '$<02>8I<> q <09><01> <09>H
<01><01>I<>q <09> <01> <09> <01><01><01> <09><01> <09><01> <09><01> <09><01><01> <09><01> <01><00><01> <09><01> <01><00>h`
    <02><01><00> <0E><04> " $! 
 # __SIM6502__runtime/lsubeqsp.s
ca65 V2.15 lsubeq0sp lsubeqyspspsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8Dv<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>
L
<82>   
<03><01><00><05><01><00><05><04>    
 __SIM6502__ runtime/lt.s
ca65 V2.15toslt00toslta0tosltaxtosicmpboollt.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>
!$Lpn<00>#<00>@<40><><92><F8>faX<61>S
<01><01> <09>  <09> <09>
<01><01>
<01><01><02>`      
<02><05>  <09><04>    
 __SIM6502__runtime/ltest.s
ca65 V2.15utsteaxtsteaxsregtmp1.sizeL9CODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$km<00>n@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__runtime/luge.s
ca65 V2.15 tosugeeaxtoslcmpbooluge.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$km<00>n@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__runtime/lugt.s
ca65 V2.15 tosugteaxtoslcmpboolugt.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>$km<00>n@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__runtime/lule.s
ca65 V2.15 tosuleeaxtoslcmpboolule.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00><00>kh<00>i@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04>  
 __SIM6502__runtime/lult.s
ca65 V2.15 tosulteaxtoslcmpboolult.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> 3Qz<00><00>@<40><><92><F8>faX<61> 
   G <01> H<><01> I<> 
<82><01>
<82><01>
<01><02>`   <01><04>
  
 __SIM6502__sim6502/mainargs.s
ca65 V2.15 initmainargs__argc__argvargs.sizeCODERODATABSSDATAZEROPAGENULLONCEUzna` i<00>|<00> <00><00>
<00><00> <00> @<40><><92><F8>faX<61>RfaX<61>faX<61><06>%<00><02><01><01> <09><01><01>b <01><06>b <01><06><01>6_6<01><01> <09><01> io<01> <09> <01>CC<01>
<01><06>
<01>e <01><06>e<01><02><01><01><01><02> <01>m <09>m<01>"
<82>"<01><01> <09><01><01>n
<01><01>n<01><01> <01><05><01>L<01>
<01><00>F<01><02>4<01>3 <09>38K<01>KZ <09>KZ<01>a<01><01><01># <09>#<01>{ <01><06>{<01>=@=<01><01><01>p <09>p<01>J<01>P<01>d <09>d<01> <09><01><01> <01><05><01>I <09>I<01><01><01><01><01>5
<82>5? e?o <09>?o<01>x<01>.
<01><03>.ey <01><06>y<01><01> <01><01>O
<01><02>O<01><01><01><01><01>
<82><01><01>^^<01>hh<02>W<01><01>`<01>
<82><01>Y <09>Y<01>+
<01><03>+<01>c <01><05>c<01>
<82><01>_
<01><03>_LA
<01><00><>A<01>%S%<02>`<01>O<02><01>] <09>]<01>! <01><04>!<01>i<01><01> <09><01><01>- <09>-<01>L <01><04>L<01>l l<01> <09><01>X <09>X<01>T<01>U <09>U<01><01> <09><01>L<01>
<01><00><><01><01>0 <09>0<01>2
<01><01>2<01>R<01> <09><01><01>
<82><01><01> <09><01>1 <09>1<01>j<01>@ <09>@<01><01> <01><04><01><01>\<01> <09><01><01><01> <01><01><01> <09><01><01> <09><01> <01>$ <09>$<01><01> <09><01>L,
<01><00><>,<01>F <09>F<01>:
<82>:<01><01>S <09>S<01>'
<01><00>'Lq
<01><00><>q<01>w<01>~ <09>~88<01>8Z <09>8Z<01> <09><01><<01>z<01>[ <09>[<01>u <01><06>u<01>t <09>t<01>><02> e<02>o <09><02>o<01>M<01>* <09>*e7 <01><05>7<01> <09><01> <01><05><02>/<01><01> <09><01><01><01> <09><01><01>V<01>G <01><06>G<01><01> <09><01><02><01><01> <09><01>9 <09>9<01>Q<01><01> <01><05><01><01>r <09>r<01>k <09>k<01><01> <01><05><01>D iDo<01><01><01><01>|`&'()*H:'g"n2<6E>)O<><01>5.+_
!-LX<4C>1<><01><1F>(<28><01>3#pd<13>IYc]<5D>U0@<40>$FS~[t<>*7<12><01>9<>rk<72><10>b<06>
emK{?y8u<38>G<01><07><01><00><01><00><00><00>m<00>|<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>l<00><00><00><00><00><00><00><00>!<00><00><00><00><00><00><00><00><00><00><00><00>}<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>#<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>x<00><00><00>"<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>w<00><00>v<00><00><00><00> <00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>+ __SIM6502__common/malloc.s
ca65 V2.15ptr1ptr2ptr3_malloc*/home/hugg/compilers/cc65/asminc/_heap.inc freeblocksize.sizenextprev usedblockstartHEAP_MIN_BLOCKSIZEHEAP_ADMIN_SPACE __heaporg __heapptr __heapend __heapfirst
__heaplast,/home/hugg/compilers/cc65/asminc/generic.macDone@L1@L2@L4@L3
BlockFoundOutOfHeapSpace@L5 TakeFromTopFillSizeAndRet
SliceBlock
RetUserPtr@L9CODERODATABSSDATAZEROPAGENULLUzna` iqH<00>9<00>(2O<00><00><00>@<40><><92><F8>faX<61>]Y<01>4 <09>4<01> <01><00><02>2<01>--<01> <09><01>6 <01><00>6 1
<82>1<01><02> <01>3 <09>3<01>* <01><02>*<01> <01>) <09>)<01>< <09><F <01><00>f <09><01>/ /<01>,<01> <09><01> <09><01>  <01> <01><02><01> <09>e0 <09>0<01> <09><01>9 <01><02>9e <01><00><01>
<01><01>
<01>'<01> <01><00><01>55<01>% <09>%<01> <09><01><01>% <09>%<01> <09><01><01>.<01>.<01> <01><02><01> <01><01><01>(<01><01><01>7 <09>7<01><01>+<01> <09> <01>; <09>;<01>:<01>:L&
<82>& 
4607
 
;  *<9  3)1&<03><06>$<0F><05><0F><01><00>=-0M]H)>&W98LOI63TA4;J.!=5F%7G[@N*(V2K/: 'BSZ<YX+ __SIM6502__common/memset.s
ca65 V2.15_memset_bzero__bzeropopaxspptr1ptr2ptr3.sizecommon evenCountoddCountL2L1leaveL3CODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>)qx<00>y@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04> 
 __SIM6502__common/mkdir.s
ca65 V2.15_mkdir
__sysmkdir __mappederrno.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq=<00><00> <00><00><00>]5<00>6@<40><><92><F8>faX<61> 
 <01><04>&$# __SIM6502__common/modfree.s
ca65 V2.15 _mod_free_freeCODERODATABSSDATAZEROPAGENULLUzna` i%<00><00> GE<00><00><00><00> <00><00><00><00>@<40><><92><F8>faX<61><58>faX<61>9VfaX<61>efaX<61>~faX<61>: <00><00><02><02>.<01><01> <01><06><01><01><01><01><01><01><01> <01><06><01>L<01>
<82><01><02><01><01>
<01><02><00><01><01>3 <02><06>3<01> <01><01><01><01>`A<02><01><01><01>9<01><02>G<01><01><01><01><01>3<01><01>& <01><06>&<01><01> <01><06><00><01>`<01><01> H<><01><01> I<><01>`2 [
<83>[<01>I H<01><02>I<01><01> I<01><02><01> <01>
<82><01><02>Y<02>W<01><01>
<01><02>!<01><01>w
<01><02>!<00>w <01>
<83><01><01><01>
<01><02>!<01><01><01><01><01><01>
<01><02>!<00><01><01><01><01><02><01><01><01><01><01>
<01><02><01>`<01><02>e<01><01>
<83><01><01><01>H<01><01> <01><06><01><01> <01><06><00><01><01><01><01>~<01><01><01> <01>
<82><01> <01>
<01><00> <01><02>Fh<01>` <01>
<82><01><01>; <01><06>;<01><01> <01><06><00><01> O
<01><00>*O<01><01><02><><01><01><01><01><01>0 <01><06>0<02><01>i<><02><01><01><01> <01><06><01><01><01><01><01><01><01> <01><06><00><01>L<01>
<01><00>t<01><02><02>e<02><02> <01><06><02><02><01>S <01><06>S<01>VV<01><01> <01><06><00><01> <01>
<01><00>*<01>)% U
<01><00>U<01><01>
<01><02><00><01><01>}
<01><02><00><00>}<01><01>
<01><02><01>)<29><01>ɀ<01><01>8#8<02>@<01>E E<02> <01><01>M<01>M<02><01>n<01>
<01><02><00><01><01> <01> a
<01><00>*a<02><01><01>mJ
<01><02><00>J<01>T
<01><02><00><00>Tq<01> <01><06><01><01>j <01><06>jL-
<01><00>t-<02><01><01><01><01>
<01><02><00><01>q<01> <01><06><01><01><01> <01><06><01><01>y<01><01><01><01>H<01><02>Q<01><01>
<02><06><01><01><01>
<01><02><00><01><01><01><01><01><01><01><01><01> <01><06><01><01><01> <01><06><00><01>h<01><01><01> <01><06><01><01><01> <01><06><00><01><01> <01><01>
<83><01><02>'<01><01> <01><06><01><01><01>
<01><03><01><01>m<01>f <01><06>f<01>
<01><03> ]
<83>]<01>s H<01><02>s<01><01> I<01><02><01> <01>
<82><01><02><01><02><01> 
<01><00>8 <02><01><01>9
<01><02>9<01><01>
<83><01><01><01>R<01><01><01><01><01><01><01><01><01> <01><06><00><01> <01>
<01><00>*<01><01><01>C<01><01>" <01><06>"<02><01>A<01><01> <01><06><01> <01>
<01><00>*<01><02><01><01><01>%<01><01><01> <01><06><01><02><01><01><01>)<01> <01>
<01><00>*<01><02>C<01>q"q <01>
<01><00>*<01><01><01><01> <01>
<01><00>*<01><02>l<01>R <01><06>R <01>
<01><00>*<01><02> <01><01> <01><06><01> <01><06><00> L<01>
<01><00>"<01><01> <01><06><01><01><01><01> 
<01><00>*L<01>
<01><00>[<01><02><01>L<01>
<01><00>U<01><01><01> <01><06><00><01><01><01><01><02>kL<01>
<01><00>U<01><01><01>
<01><02><00>
<01><02><01>m<02><01>
<01><02><00><02><01><01><01> <01><06><01><01><01>
<01><02><00>
<00><01>m<01>
<01><02><00><00><01><01>u <01><06><00>u<01>v <01><06>v<02><02>m<02><02>
<01><02><00><02><02>H<01><02><01><01><01> <01><06><01><01> <01><06><00>mp
<01><02><00><00>p<01><01><01><01> <01><06><01><01><01>h<01> <01>
<82><01><01><01> <01><06><01><01><01> <01><06><00><01><02><01><01>( <01><06>(<01><01><01><01><01>B <01><06>B<01> <01><06><01><01><01><01><02>hL+
<01><00>U+<01>c <01><06>c<02><02>e<02><02> <01><06><02><02>HD<01><01> <01><06><00><01>e<01> <01><06><00><01><01>h<01> <01>
<82><01><01><01>
<01><02><00><01><01><01>
<01><02><00><00><01> <01>
<82><01> `
<83>`<01> <01><06><01><01> <01><06><00><01> |
<82>|<01><01> <01><06><01><01><01> <01><06><00><01> <01>
<01><00>8<01> #
<01><00>*#<01><01><01> <01>
<01><00>*<01><01>!!L<01>
<01><00>S<01><01><01> <01><06><01><01><01> <01><06><00><01> 
<01><00>m<01><01> <01><06><01><02><01>m<02><01>
<01><02><00>
<02><01>H<01><01>t <01><06><00>tm<01>
<01><02><00>
<00><01><01><01>h<01> <01>
<01><00>m<01> <01>
<01><00> <01><02>*`<01>-<00>iio$6$5$<01><01><00>#<01> <01> <01> <01><00>L<><4C><01><00><00>}<01><17>|@<01>{@<01>z@<01>y<01><01>u<01><05><01><02><01>|q<01><05><02><01>3<><01>]<01><00><>:<00><<00><00><00><00><00><00><00><00><00>ym<00><00>\j /<00>-<00><00><00><00><00><00>?<00>G<00><00><00><00><00><00><00>P<00><00><00>h<00><00>p<00>][<00>j<00>lH<00><00><00><00><00><00> 3c<00>)o<00><00><00><00><00>yH<00><00>P=<00>4<00>X<00><00><00><00><00><00><00>H<00>7<00>u<00>K<00><00>I<00>B<00><00>1<00>O<00><00><00><00><00>E<00><00><00><00><00><00><00><00>E<00>Da<00><00><00><00><00><00><00>O}<00>bk;<00><00><00><00><00><00><00><00><00>3L<00><00>8<00><00><00>T/Z<00><00><00>4<00>G<00><00><00><00><00><00><00>n<00><00><00><00><00><00><00>6<00><00><00>^<00>i<00><00> <00>g<00>+<00><00><00><00><00><00><00><00>4<00>x<00><00><00>xz<00><00>=<00><00><00><00><00>i<00><00>{~<00><00>f5<00><00><00>m<00><00><00>K<00>_<00><00>N<00>*q<00><00><00><00>(<00><00>F_2<00>r<00>U,<00>a1<00>dT<00><00><00><00><00><00><00><00>|><00><00><00><00>2<00><00><00>2<<00><00>w<00><00><00><00><00>@<00>RK<00>t<00>v<00>zb<00><00><00><00>.<00><00>Q<00>^W<00><00><00><00><00><00><00>I`<00><00>s<00>0<00><00><00><00><00><00><00><00>`<00>M<00><00><00>B<00><00><00><00><00><00><00>0<00><00><00>{<00><00><00><00><00>Q<<00><00><00><00><00><00><00>SJ<00><00><00><00><00><00>C3<00> __SIM6502__common/modload.s
ca65 V2.15(/home/hugg/compilers/cc65/asminc/o65.incO65_HDRMARKER.sizeMAGICVERSIONMODETBASETLENDBASEDLENBBASEBLENZBASEZLENSTACK O65_MARKER_0 O65_MARKER_1 O65_MAGIC_0 O65_MAGIC_1 O65_MAGIC_2 O65_VERSION O65_CPU_65816 O65_CPU_6502 O65_CPU_MASKO65_RELOC_PAGEO65_RELOC_BYTEO65_RELOC_MASKO65_SIZE_32BITO65_SIZE_16BIT O65_SIZE_MASK O65_FTYPE_OBJ O65_FTYPE_EXEO65_FTYPE_MASKO65_ADDR_SIMPLEO65_ADDR_DEFAULT O65_ADDR_MASK O65_CHAINO65_CHAIN_MASK O65_BSSZEROO65_BSSZERO_MASK O65_CPU2_6502O65_CPU2_65C02O65_CPU2_65SC02O65_CPU2_65CE02O65_CPU2_6502XO65_CPU2_65816_EMU O65_CPU2_MASK O65_ALIGN_1 O65_ALIGN_2 O65_ALIGN_4 O65_ALIGN_256O65_ALIGN_MASK O65_MODE_CC65O65_RTYPE_WORDO65_RTYPE_HIGH O65_RTYPE_LOWO65_RTYPE_SEGADDR O65_RTYPE_SEGO65_RTYPE_MASKO65_SEGID_UNDEF O65_SEGID_ABSO65_SEGID_TEXTO65_SEGID_DATA O65_SEGID_BSS O65_SEGID_ZPO65_SEGID_MASKO65_OPT_FILENAME
O65_OPT_OS O65_OPT_ASMO65_OPT_AUTHORO65_OPT_TIMESTAMP O65_OS_OSA65 O65_OS_LUNIX O65_OS_CC65O65_OS_OPENCBM O65_LOAD_OKO65_LOAD_ERR_READO65_LOAD_ERR_HDRO65_LOAD_ERR_OSO65_LOAD_ERR_FMTO65_LOAD_ERR_MEM,/home/hugg/compilers/cc65/asminc/modload.incMOD_CTRLREAD
CALLERDATAMODULE MODULE_SIZE MODULE_ID _mod_load _mod_freeMLOAD_OKMLOAD_ERR_READ MLOAD_ERR_HDR MLOAD_ERR_OS MLOAD_ERR_FMT MLOAD_ERR_MEM-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespacepushaxpusha0push0push1decax1_malloc_free_bzero __ZP_START__,/home/hugg/compilers/cc65/asminc/generic.macModuleCtrlTPtrStack RegBankSaveHeader InputByteRelocValRead ExpectedHdrExpectedHdrSizePushCallerDataRestoreRegBank@L1GetReloc FormatErrorReadSizeReadByteReadAndCheckError@L2CleanupAndExitDoneRelocSegLoop RelocWord RelocHighRelocLow AddCommonAddHighValidateHeader HeaderErrorOptOptDoneSkipOptOSError CalcSizesGotMemUndefRelocCODERODATABSSDATAZEROPAGENULLUzna` iq<00>CR ^ao<00>a1`2@<40><><92><F8>faX<61><06><01> <09><01> <01><00> 
& <01><00> 

& <01><00>e <09><01> <09> <01> e <01><00> <09>*<01><01> <09>` 
     <01><04>     __SIM6502__runtime/mulax10.s
ca65 V2.15mulax10ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>.< HKe<00>_J@<40><><92><F8>faX<61><06><01> <09><01> <01><00> 
& <01><00> 
e <09><01> <09><01>e <01><00>  <09> *<01><01> <09>` 
    <01><04>    __SIM6502__runtime/mulax6.s
ca65 V2.15mulax6ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8Dv<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>
L
<82>   
<03><01><00><05><01><00><05><04>    
 __SIM6502__ runtime/ne.s
ca65 V2.15tosne00tosnea0tosneaxtosicmpboolne.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq=<00><00>I<00><00>)$s<00><00><00>@<40><><92><F8>faX<61>
   <06> <09><><06><08><><06><07><><06><06><><06><05><><06><04><> 
 __SIM6502__sim6502/paravirt.s
ca65 V2.15argsexit_open_close_read_writeCODERODATABSSDATAZEROPAGENULLUzna` kz<00>8=u <00><00><00>p3<00><00><00>@<40><><92><F8><12><>\<5C> faX<61>_T; )
<82>)<01>
<82><01>
<01><03> 
<82> *
<82>*<02>#<01> <09><01>". <09>.<01>$$<01>
<82><01>
<01><06> '
<82>'<01> H<><01> I<> %
<82>%<02>  
<82><02>  
<82> <02>L
<01><00>N
<01>
<82><01>(
<01><06>( 
<82><01>- H<01><01>-<01> I<01><01> 
<82><02> !
<82>!<02> +
<82>+L
<82> . %s: %s
!"#$  !)*'% +(.<01><14>T,&/ -0?)>&9C86E31A4;$.= 5
F%7@*(,2/:#'B<+% __SIM6502__../libwrk/sim6502/perror.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stderr_fprintf_perror _strerror__errnoL0008.sizeL000FpushaxL0004pushwyspL0012incsp4CODERODATABSSDATAZEROPAGENULLUzna` kzR <00> 0<00>   <00><00> <00>@<40><><92><F8><12><>\<5C>"faX<61> ,<00><02> <01>
<82> <01> 
<82> <01><01> <01><11><01><01> <01><11> <01>
<82> <01><01><01> <01><11><01><01><01> <01><11><01> 3
<82> 3<01><01> <01><11><01><01><01> <01><11><01> <01>
<82> <01><02> 9<01><01> <09><01><01><01>4 <09>4<01><01><01><02><01> <01>
<82> <01><01> <09><01><01> <01><10><01><02><01><01>!<01>w <09>w<01><01><01>r <09>r<01>{<02><01>L]
<01><00><>]<01><01><01>T <09>T<01>K<01> <09><01><01>}}<02><01> <01>
<82>
<01><02>7<02>/<02><01> y
<82> y <01>
<82><01><02>M<01><01><01><02>`<01><01><01><02>+ )
<82> )<01><01> <09><01><01><01> <01><10><01><02><01><01>X<01>" <09>"<01><01><01>[ <09>[<01><02><01>L<01>
<01><00><><01><02><01> v
<82> v<02> <01>qG <09>GH<01><01><01><01><01>q<01> <09><01><01> h$ <01>
<82><01><01><01> <01><11><01><01><01> <01><11><00><01><02><01><01>ll<02><01><01><01><01><02> C
<82> C<01>c <09>c<01> <01><10><02><01><01> <01>m <09>m<01>(<01> <09> <01><01><02>5L^
<01><00><>^<02><01> <01>
<82>
<01><02>= k
<82> k<01>e<01> <01><11><01><01><01> <09><01><01><01>e< <01><11><00><<01><01> <01><10><01><02><01> 
<82>  V
<82>V%<01> <09><01>H<01>q%<01> <01><10><01><01>%h<02>j 
<82><01><01> <01><11><01><01>' <01><11><00>'<01> <09> <01><01> <01><10><01><02>  <01>
<82> <01><01>e<01> <09><01><01>u <01><11>u<01>0e<01> <01><10><01><01><01> <01><11><00><01><01><01> <01><11><01><01>8 <01><11><00>8 <01>
<82><01><02>R A
<82>A<01><01> <01><11><01><01><01> <01><11><00><01><02>P<01>O <01><11>O<01>z<01><01><01><01> <01><11><01><02>
2 <01>
<82><01> d
<82> d<01><01> <01><11><01>8 <01><01> <01><11><01>H<01><01><01> <01><11><00><01><01>t <01><11><00>t<01><01>h<01><02> <01>
<82><01> s
<82>s<02><01> <01>
<82><01><02><01><01><01><02>Q<01>e8e<02><01> H
<82> H<02><01><01><01><02>Z<01><01>,<01><02> <01> <01>
<82> <01><02><01><01><01> <01><11><01><01>h<01><01><01> <01><11><01><01>? <01><11>?<01><01> <01><11><00><01><01><01><01><01> <01><11><01><01>p<01>~<01><01> <01><11><01><01>a <01><11>a<01> <01><11><00> <01>
<82><01> D
<82>D<02><01> <01>
<82> <01><02>
 <01>
<82><01><01>g <01><11>g8<01><01><01> <01><11><01>H<01><01> <01><11><00><01><01> <01><11><00><01><01><01>h@ :
<82>:<02><01> ;
<82>;<02><01><01><02>1<01>M<02> <01> <01>
<82> <01>8<01><02><01><01> <09><01>H-<01><01><01><01><01>F <09>F<01>h|<02><01><01><01><02><01>W5W <01>
<82> <01><02>&<01><01> <01><11><01><01><01><01><01><01><01> <01><11><01><01><01> <01><11><01><01>. <01><11><00>.<01>i<01>b <01><11>b<01><01><01>I<01>N <01><11>N<01><01> <01><11><01><01> <01><11><00> <01>
<82><01> <01>
<82><01><02><01> <01>
<82> <01><02>
 L
<82> L<01><01> <01><11><01><01>f <01><11><00>f <01>
<82><01><01><01> <01><11><01><01><01> <01><11><00><01><02> <01> <01>
<82> <01><02><01><01> <01><11><01><01><01><01><01>, <01><11>,<01> <01><11><01>6 <01><11><00>6 <01>
<82><01><01>E <09>E<01>
<01><10>
<01><01> <01><11><01><01><01><01><01> <09><01><01>o<01>_ <01><11><00>_<01> <09><02><01><01>>H<01><02>S<01>x <09>x<01>U
<01><11>U<01><01><02>n<01>B<01>Bh<01><02>JL<01>
<82><01>-./01+#<01>(#<02><01>&#s%#<05><01><01><01>;$#A##<04>:<3A><01>"#!#V#<01>#yL#<02><01>#<0E>)vCk<0F>H<><01><01><01><01><01>##<05><01>3<>dYD<><01><01> <1A>wr<77><01>"[cm <09><01><01><01> <0A><01><01>E
<8D><01>7<><08><01><01><01><01><01><01><<3C>'u<><01>8<><01>O<><01><01><01>t<><01>?<3F><01><01>ag<><05><01><01><01>.bN<62><10>f<><01>,6<>_U<01> <09>4T<34>G<><01>Fx<01><14><00><01><01><00><02><00><00><00><00><00><00>hm<00>\j<00><00>|<00><00><00><00><00>U<00><00><00> -P<00><00><00>0M<00>]<00><00><00>lHG<00><00><00>?<00><00><00>")o<00>><00>&<00><00>ys<00><00><00><00><00>f<00><00><00>W<00><00><00>9<00>C<00><00><00><00><00><00>8<00>}<00>L<00>O<00>6p<00>E<00><00>g<00><00><00><00><00><00><00>tbk<00><00><00><00>3<00><00><00>T1<00>A<00>4<00>;<00>e<00><00>J<00><00><00>n$<00><00>.<00>^!<00>i<00><00><00>q<00>I<00><00><00><00><00>d<00><00><00><00>x<00><00>= <00><00>5
F<00><00><00>%7<00><00><00><00><00>_<00>[@<00>N<00>*<00>(<00><00><00>a<00><00>r<00><00>V<00><00>,<00>2<00><00><00><00><00><00><00>w<00><00>cRK<00><00>vz<00>/:u~<00><00><00><00><00> #<00><00><00><00><00><00>'<00><00>`<00><00>BS<00><00>D<00>Z{<00><00><00><00>Q<<00><00><00><00><00>YX<00>+2 __SIM6502__../libwrk/sim6502/pmemalign.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_malloc_free_posix_memalignpushaxdecsp6L0002ldaxyspL0001.sizeL0009pushwyspsubeqysptosandaxL0008L0014complax staxspidxdecax4ldaxidxstaxysptossubaxL002Bincax4L003AL004FaddyspCODERODATABSSDATAZEROPAGENULLUzna` ix{<00> <00>  <00><00>k
@<40><><92><F8>faX<61>faX<61>D  <02> <01>
<09>
<01> <09><01>`<01> <01><00>` 
<01><04> !   ! __SIM6502__runtime/popa.s
ca65 V2.15popasp(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00> #&<00><00>yO%P@<40><><92><F8>faX<61>faX<61>SH <02><01> <09><01> <01><00><01><01> <09><01> <09>hL
<82> !<01><04>#    " __SIM6502__runtime/popsreg.s
ca65 V2.15popsregincsp2spsreg(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix*<00>-<00> <00><00><00><00><00>A<00>B@<40><><92><F8>faX<61> faX<61><06>3)<01>
<83><01>
<82><01>
<01><05> 
<82><01> <09><01> <01><01>m
<83><01>  <01><01> <09> <01> <01><00><02> <01> <09><01><01><01> <09> 
<82><01> <09> <01> <01><00> 
<82><01>
<83>L
<82>
 
   <01><04>!0) 98L31A4;J.=F*(2K/:B< __SIM6502__common/printf.s
ca65 V2.15_printf_stdoutpushaxaddysp _vfprintfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac ParamSize.size@L1CODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>_\<00>]@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/push1.s
ca65 V2.15push1pusha0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>_\<00>]@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/push2.s
ca65 V2.15push2pusha0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>_\<00>]@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/push3.s
ca65 V2.15push3pusha0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>_\<00>]@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/push4.s
ca65 V2.15push4pusha0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>_\<00>]@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/push5.s
ca65 V2.15push5pusha0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>_\<00>]@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/push6.s
ca65 V2.15push6pusha0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>_\<00>]@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/push7.s
ca65 V2.15push7pusha0.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>! ..\_<00><00>^<00>@<40><><92><F8>faX<61>faX<61>r<02><01> <09><01> <09> <01><01>
<09>
<02><01> <09>`<01> <01><00><01> <09><01> <09>` !"
<03><01><00> <13><01><00><13><04>$  # __SIM6502__runtime/pusha.s
ca65 V2.15pusha0sppushaysppushasp(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.size@L1CODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>c`<00>a@<40><><92><F8>faX<61><02><>L
<82> 
  <01><04>  __SIM6502__runtime/pushaff.s
ca65 V2.15pushaFFpushax.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>& 1._bj<00>n:a;@<40><><92><F8>faX<61>~
<02> <02>H<01> <09>8<02><01> <09><01><01> <01><00><02><01><01> <09> h<01><01> <09>`
     <03><01><00> <09><01><00> <09><04>   !
 # __SIM6502__runtime/pushax.s
ca65 V2.15push0pusha0pushaxsp.size@L1CODERODATABSSDATAZEROPAGENULLUzna` ix<00> 1OR<00>~<00>Q<00>@<40><><92><F8>faX<61>faX<61>q<01> <09>e <09><01><01><01> <09><01> <01><00> <02><01> <09><01>L
<82> !"  <02><05><15><01><00>&    # __SIM6502__runtime/pushb.s
ca65 V2.15pushbpushbidxpushaxptr1(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeL1CODERODATABSSDATAZEROPAGENULLUzna` iqW<00> <00><00><00>3(o<00><00><00>@<40><><92><F8>faX<61> <02><01> <09>L
<82> 
    <02><01><00><06><04>
   __SIM6502__runtime/pushbsp.s
ca65 V2.15pushbsppushbysppusha0sp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>`]<00>^@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/pushc0.s
ca65 V2.15pushc0pusha.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>`]<00>^@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/pushc1.s
ca65 V2.15pushc1pusha.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>`]<00>^@<40><><92><F8>faX<61><02>L
<82> 
  <01><04>  __SIM6502__runtime/pushc2.s
ca65 V2.15pushc2pusha.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>4 @Cj<00>nB@<40><><92><F8>faX<61>u <01><01><01> <09> <01><01> <09><01> <09><01> <01><01><01><01> <01> <09><01><01><01> <09>L
<82>
    <01><04>
   
 __SIM6502__runtime/pushlysp.s
ca65 V2.15pushlysppusheaxsregsp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00>.47L<00>y<00>6<00>@<40><><92><F8>faX<61>N
 <02> <01> <09><01> <01><00><01> <09><01><01><01> <09>L
<82>    <03><01><00> 
<B8><01><00> 
<B8><04> 
    __SIM6502__runtime/pushw.s
ca65 V2.15pushwpushwidx pushptr1idxpushaxptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>= Jgj<00><00><00><00>i<00>@<40><><92><F8>faX<61>faX<61><06>
<02><01> <09>8
<02> <01> <09><01><01> <01><00><01> <09><01> <01> <01> <09><02><01> <09><01><01><01> <09>`   <02><05><0F><01><00>   __SIM6502__runtime/pushwsp.s
ca65 V2.15pushwysppushw0spsp,/home/hugg/compilers/cc65/asminc/generic.mac.size@L1CODERODATABSSDATAZEROPAGENULLUzna` iqk<00><00> <00><00>87r<00><00><00>@<40><><92><F8>faX<61>4  
<82><01>
<82><01>
<01><01>L
<82>
    <01><04>
  
 __SIM6502__common/putchar.s
ca65 V2.15_putcharpushax_stdout_fputc.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<<00>e &)<00><00><00>(<00>@<40><><92><F8>faX<61>#faX<61> <06>9<00><02><01> <09><01>c
<83>c<01>Z <01><04>Z<01>
<01><02> <02><>4<01><01>d <09>d<01>22<01>CCL
<01><00><><02>=i<01>L<01>L<01>S <09>S<02><01>3 <09>3 =
<82>
=<01> <09><02>=a<01>. <09>.<01>HdH<01>?
<82>?<01><01>
<82><01>7I7<01>!
<82>!<01>  <02>s
[0lal<01>-
<01><02>-
w<02>v p
<82> p<01>G <09>G<01> <01><03>k <01><03>k<01>NPN<02>/<01>
<82><01># <09>#<01> <09><01>5
<82>5<01>)<01>)<01>
<01><02><01>"
<82>"<01>(
<82>(
b<01>]LY
<01><00>qY<01>; <09>;<01> <09><01>^q<01>q<01> <09> <01>* <01><02>* r
<82> r 
<82> <01>
<82><01>D
<82>D<01>j
A<01>,<02><01>t <09>t<01>F<01>u <09>u<01><01>U
e<01><01>Q
<83>Q<01>$ <09>$<01>W<01>
<01><02><01>n <09>nL1
<82>1<01>++ T
<82>T<02><>O<01>P`9:;X8<=> ITS#; * Gktu$n Zd3. <1 0!"
0?(D 05=>r>p<01><04><00>Eyh\j<00><00> -P<00>HG?<00><00>"o&y <00>f9Opg<00><00><00>tk<00><00><00>T;e <00>$.!i
I<00><00><00>x 5
F"<00>%<00><00>[@ (a<00><00><00>,<00><00><00><00>wRvz :u#<00>'<00>`S<00><00>Z{<00>Q<00><00>YX? __SIM6502__common/putenv.s
ca65 V2.15_putenv_malloc_free searchenv
copyenvptr __environ
__envcount __envsizereturn0ptr1ptr2ptr3tmp1*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAXname@L0.size@L1erroraddentry addnewentry@L2nomemnewsize@L3@L5@L4CODERODATABSSDATAZEROPAGENULLUzna` kz<00>lI<00> <00><00><00>&<00> @<40><><92><F8><12><>\<5C>
faX<61><06>iL 
<82><01>
<82>
<01>2 <09>2<01>
<01><07><01>' <01><08>'<02> <01>3 <09>3 +
<82>+<02>  *
<82>*<02>8 ,
<82>, 
<82> 
<82><02><>0<01>)<01>
<82><01>- <09>-<01>
<01><07><01> <01><08><02>$<01> <09> (
<82>(<01> H<><01> I<> 1
<82>1<02><02>7 "
<82>"<02><> <01>  <02>)<01>L5
<82>5<01>
<82><01>6 <09>6<01>
<01><07><01>& <01><08>&<02><01> <09> !<01> <09><02><>/<01>L
<82>  !
 "# 5,*+(1".#
 
2'3-6&<01><13>i49 -P0MHG?")>&9C8LO6E31A4;J$.!I= 5
F%7@*(,2K/:#'BD<+$ __SIM6502__../libwrk/sim6502/puts.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_stdout_puts_strlen_writeL0003.sizepushaxpusha0pushwyspldaxyspL0013incsp2CODERODATABSSDATAZEROPAGENULLUzna` kz0 <00> <00>@NQ$u<00>iPj@<40><><92><F8><12><>\<5C>)faX<61><06> ;<00><02> <01>
<82><01><02><01> &
<82>&<02><01><01> <02><01><01><01>+<01><02> <01> =
<82>= <01>
<82><01><02> <01> <01>
<82><01> B
<82>B <01>
<82><01><02> <01> >
<82>> <01>
<82><01> <01>
<82><01><02> <01> 
<82> <02> <01> <01>
<82><01> )
<01><00>=)L<01>
<82><01> 9
<82>9<02><01><02><01> <01>
<82><01><02>X<02><01> l
<82>l <01>
<82> <01>L3
<01><00>V3<02> 1 <01>
<82> <01><01>e<01> <01><18><01>Hb<01>*e<01> <01><18><00><01><01>fh!<02><01> <01>
<82> <01><02> <01> <01>
<82> <01> 
<82>
L<01>
<01><00>n<01><01>R <01><18>R<01><01> <01><18><00><01><02><01> <01>
<82> <01><02><01> 
<82> <02>, <01>
<82> <01> <01>
<82><01><01><01><01><01>H<01><02>z <01>
<82><01><01><01> <01><18><01><01><01> <01><18><00><01> M
<82>M<02>p 
<82>  <01>
<82><01> 
<82><01>{ <01><18>{<01>0 <01><18><00>0 
<82> <02> <01> ?
<82> ? i
<82>iH<01><02><01><01>F <09>F<01>y
<01><05>y<01><01><01><01> <09><01><01><01>
<01><05><01>h<01> E
<82>E <01>
<82><01><01><01><01>L`
<01><00><>`<01><01> <01><18><01><01># <01><18><00># <01>
<82><01><02><01> -
<82>-<02> x
<82> x 
<82><01><01><01>/?/<02> <01>
<82><01><01> <01><18><01><01> <01><18><00><01> <01>
<82><01><02><01> <01>
<82> <01> :
<82>: <01>
<82><01><01><01> <01><18><01><01><01> <01><18><00><01> A
<82>A<02><01> ]
<82> ] K
<82>KH<01><02><01><01>[ <09>[<01>Z
<01><05>Z<01><01><01><01> <09><01><01><01>
<01><05><01>h< <01>
<82><01> q
<82>q<02><><01><01>(<01>(<02><01> <01>
<82><01><02><01> <01>
<82> <01> <01>
<82><01><01><01><01>9<02><01> <01>
<82> <01><01>e<01> <01><18><01>H<01><01><01>e\ <01><18><00>\<01>sh<01> S
<82>S<02><01> <01>
<82> <01>de<01> <01><18><01>H<01><01><01>e<01> <01><18><00><01><01><01>hv 
<82><01><01> <01><18><01><01>I <01><18><00>I <01>
<82><01><01><01> <01><18><01><01><01> <01><18><00><01><02> <01>
<82> <01><01><01> <01><18><01><01>m <01><18><00>m 
<82><02><01> O
<82>O<02><01> <01>
<82> <01> 
<82><02><01><02><01>L<02><01>
<01><00>{<02><01><01>uuLu<>
<01><00>{u<> <01>
<82><01><02>
<01><01><01> <09><01><01><01><01><01><01><01>J <09>J<01>C'C <01>
<82><01>De<01> <01><18><01>H<01>;e <01><18><00><01><01>h<01> <01>
<82><01><02>  <01>
<82> <01>6e<01> <01><18><01>H<01><01>Qe <01><18><00><01><01>h<01> <01>
<82><01><01>% <01><18>%<01>a <01><18><00>a <01>
<82><01> .
<82>. <01>
<82><01> <01>
<82><01><02> <01> <01>
<82> <01><01><02>
7qw <09>wHn<01><01><01>UqY <09>Y<01><01>h <01>
<82><01><01><01>?<01><01><01>=<01><01><01> <01><18><01><01>" <01><18><00>" W
<82>W<02><01> t
<82> t<01>e<01> <01><18><01>H<01><01><01>e<01> <01><18><00><01><01><01>h <01>
<82><01><02><01> 4
<82>4<01> <01><18><01>@ <01><18><00>@ <01>
<82><01><02> P 
<82>   <01>
<01><00>=<01> <01>
<82><01>8<01><01>~ <01><18>~Hk<01><01><01> <01><18><00><01><01>Gh<01><02>^L<01>
<01><00>S<01><01>_ <01><18>_<01><01> <01><18><00><01> }
<82>}<02>L <01>
<82><01><02>V <01>
<82> <01>8<01><01>h <01><18>hH+<01>o<01><01> <01><18><00><01><01><01>h<01> <01>
<82><01><01><01> <01><18><01><01><01> <01><18><00><01> <01>
<82><01><02> <01> r
<82> r <01>
<01><00>=<01> <01>
<82><01>Nee <01><18>eH'<01>e5 <01><18><00>5<01><01>h<01><02>
<01> <01>
<82> <01><02> T <01>
<82><01><02> <01> <01>
<82> <01> <01>
<82><01><01><01><01>0<02>H<02>HL<02><01>
<01><00>T<02><01><02> <01><01><01> <09><01><01> <01><18><01>j<01><01> <09><01><01><01> <01><18><01><02><01><01>8 <09>8<01> <01><18><01>
<01><01> <09><01><01><01> <01><18><01><02>|L<01>
<82><01><=>?@:<01><01>6<01><01>3<01><05><02>.<2E><01>/<01><02>-<01><02>q,<01>y<>EZ<45><02>+<01><04>i:K(<01><06><14><03><01><01> <0A>-<2D><02>O4<4F><01>&<01><02><02>#<01>"<01><02><01><01><13><01><01>?x<>]<5D><01><01><01><01><01>t <0C>r<><01><01><01><02>l<01>9M <0B><02>AS<10><01><02>W<><01>}<7D><01><01><01><01><01><01>B<01><01><01>= <01>&<26>><3E><01><03><02><02>c<02><01><01>2<><01>R<><02><01>{0<>#<16><01><01><02>\<5C><01><01>I<><02><01>m<><07>%a<>"<22><01>@~<7E>_<>h<><01><01>e5<1A><1F><01> F<>[<5B><01>JwY<77><02>8<><01><12>=<01><01><00><02><00><00><00><00><00><00>h<00>m<00>\j<00><00>|<00><00><00><00><00>U<00><00><00><00><00> <00>-P<00><00><00><00><00>0M<00>]<00><00><00>lHG<00><00><00><00><00>?<00><00><00>")o<00><00>&<00><00>ys<00>)<00><00><00><00>f<00><00><00><00>W<00><00><00><00><00>C<00><00><00><00><00><00><00>}<00>L<00><00>O#<00>p<00><00>E<00><00><00>g<00><00><00><00><00><00><00><00>tbk<00><00><00><00><00><00>3<00><00><00>T1<00>A<00><00><00>;<00>e<00><00><00>J<00><00><00>n$<00><00><00>.<00>^!<00>i<00><00><00><00><00>(q<00>I<00><00><00><00><00>d<00><00><00><00><00><00>x<00><00> <00><00>
F<00><00><00>%<00><00><00><00><00><00>_ <00>[@<00>N<00><00>*<00><00>(<00><00><00><00><00>a<00><00>r<00><00><00>V<00><00><00><00>,<00><00><00><00><00><00><00><00><00>w<00><00>cRK<00><00><00>v<00>z<00><00>/<00>u<00>&~<00><00><00><00><00>* #<00><00><00><00><00><00>'<00><00><00>`<00><00><00><00>BS<00><00>D<00><00>Z{<00><00><00><00><00><00>Q<00><00><00><00><00><00><00>YX<00>+A __SIM6502__../libwrk/sim6502/qsort.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_qsort__swappushaxldaxyspL0048pushwysppush0decax1 tosumulax
_QuickSortincsp8.sizeregswap2decsp4L0004L0002staxyspstax0spL000CL000EaddeqyspL0010tosicmpL0055L001Atosaddaxjmpvecincsp2L0018subeq0spL0056L0053L0057ldax0spL005AL002Cshlax1L0032L0054L0058addyspCODERODATABSSDATAZEROPAGENULLUzna` ix<00>u<00> <00><00><00>`<00>Y<00>Z@<40><><92><F8>faX<61> faX<61><06>+ <02><01> & <02><01> " H%
<01>#<01>!
<82>!<01>
<01><02><01>
<01><01><01>
<01><02><01> H<><01>
<82><01> I<><01>$
<01><01>$h&<02> 
<82><02><01> `!$<01><12>'--)&7(%6314$6+4%5*,1,2.'+ __SIM6502__common/raise.s
ca65 V2.15jmpvec+/home/hugg/compilers/cc65/asminc/signal.incSIG_ERRSIGABRTSIGFPESIGILLSIGINTSIGSEGVSIGTERMSIGCOUNTsigtable __sig_ign __sig_dfl_signal_raise.size
invalidsigCODERODATABSSDATAZEROPAGENULLUzna` kz#<00><00>ky|<00>& <00><00> {<00> @<40><><92><F8><12><>\<5C>faX<61><06>1<00><02> 
<82> <02><01><02><01> W
<82>
W<01> <01><12><01><01> <01><12><01> T
<82> T j
<82> j<02> #<01><01> <09><01><01>t <09><01>s
s<01><01> <01><12><01><01>~ <01><12><00>~ 
<82>LU
<01><00>.U<01><01> <01><12><01> <01><12><00><01>J J<01> E
<82>E M
<82>M<02>e<01>8Lk
<01><00>.k<02>2+e<01> <01><12><01><01>N <01><12>N<01><01><01><01>a <01><12><00>a<01>! <01><12><00>!<02><01>pp<01>K <01><12>K<02><01><01>,,<02><01><02>:<01>g <01><12>g<01> <01><12><00><01> [
<82>[ R
<82>R<02><01> 4
<82>4<01> <01><12><01>r <01><12><00>r<02>7<01> <01><12><01><01><01><01><01><01> <01><12><01><02>I 
<82> {e) <01><12>)H<01><01><01>e<01> <01><12><00><01><01>oh<01>
<01> <0A><01>VVV<01>m
<82> m<01><01>Q<01><01>u
<82> u8B<02><01><01>] <09>]HO<01>(
<01> <0A>(<01>;<01> <09><01>XhCe <01><12>H<01>Se <01><12><00> <01>9hZ x
<82>x8%<01>A
<82> A<01><01> <09><01><01><01><01><01>
<01> <0C><01>` <09>`<01>$$<01><01>$<01> <01>
<82><01><01>
<82> <01>3
<01> <0A>3<01><01> <01><12><01><02><01>D <01><12>D<01><01><01> <01><12><00><01> <01><12> <01>@ <01><12>@<01> <01><12><00><01>d<01> <01><12><01><01><01><01>
<01><12>
<02> lL<01>
<01><00>+<01><01>h <01><12>h<01>H <01><12><00>H 
<82><02><01> n
<82>n<01><01> <09><01>" <09>"<01><01>=<01><02>1<02>'<02><01> <01>
<82><01><01>. <01><12>.8-<02>L<01>_ <09>_<01><01> <09><01><01> <01><12><00><01>|<01>= <09>=<01> <09><01><01> <01><01><01> <01>
<82><01><01>q <01><12>q<01>G <01><12><00>G<02>Q c
<82>c<02>  <01>
<82><01><01>F <01><12>F<01><01> <01><12><00><01> w
<82>w<02> z ^
<82>^ 0
<82>0<02>> v
<82>vH*<01>y <09>y<02> <01><02>6<01>P <09>P<01><01> <01><12><01><01><01><01>\i<01>i<01>? <09>?h<02> <01>L&
<82>&234560}&.}c<>,}<01>)}<01>'}x%} n$}4#}R}E[<5B>^v}j}W}T/A<><mu(3Yw<01>M0b  <08>`<60>"<22><01>y?f&<1E><01>~<7E><12>Na!Kgr<0F>)<29> <20>D @
hH.qGF<47><01>f<07>]_=P<01><13><00><01>5<00>hm\j<00><00>|<00><00><00>U<00> -P<00>0M]<00><00>lHG?<00><00>")o><00>&ys<00><00>fW<00>9C<00><00><00><00>8}L<00>O6pEg<00><00><00><00>tbk<00>3<00><00><00>T1A<00>4;e<00><00>Jn$.^!iqI<00>d<00><00>x= <00><00>5
F<00><00>%7<00>_<00>[@<00>N*(a<00><00>r<00><00>V<00><00>,2<00><00><00><00>w<00><00>cRKvz<00>/:u~<00><00> #<00><00>'<00>`BS<00><00>DZ{<00><00>Q<<00><00><00>YX+7 __SIM6502__../libwrk/sim6502/realloc.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_malloc_realloc_free_memcpy __heapptr __heapendpushaxregswap2decsp6L0002L0001.sizeL0006ldaxyspL000EL0011L000Fdecax4ldaxidxstaxyspL0021stax0spL003Eldax0spL003FL002BsubeqyspL0031pushwyspL003CaddyspCODERODATABSSDATAZEROPAGENULLUzna` iq<00> # /2[<00>p<00>1<00>@<40><><92><F8>faX<61>e
<01> <09> <01> <09> H<01> <09><01> <09> h<01> <09><01><01><01> <09><01><01>`        <01><04>
 
 __SIM6502__runtime/regswap.s
ca65 V2.15regswapspregbanktmp1@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqt<00><00> BEi<00><00>@<40><><92><F8>faX<61>=  <01> <09>H
<01> <09><01> <09> h<01> <09>` 
      <01><04>     
 __SIM6502__runtime/regswap1.s
ca65 V2.15regswap1spregbank.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>(; GJe<00>iI@<40><><92><F8>faX<61><06><01> <09>H<01> <09> <01> <09>h<01> <09><01> <01> <01><00>H<01> <09><01> <01><00>h<01>
<09>
` 
      
<01><04> !
# __SIM6502__runtime/regswap2.s
ca65 V2.15regswap2spregbank.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>. t<00><00><00>@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04> 
 __SIM6502__common/remove.s
ca65 V2.15_remove __sysremove __mappederrno.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>. t<00><00><00>@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04> 
 __SIM6502__common/rename.s
ca65 V2.15_rename __sysrename __mappederrno.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqM<00><00> <00><00>)<00>\S<00>T@<40><><92><F8>faX<61><02><01>` 
 <01><04>     __SIM6502__runtime/return0.s
ca65 V2.15return0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqN<00><00> <00><00>)<00>\T<00>U@<40><><92><F8>faX<61><02><02>` 
 <01><04>     __SIM6502__runtime/return1.s
ca65 V2.15return1.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00> +4 @C[<00><00>B<00>@<40><><92><F8><12><>\<5C>faX<61>X 
<82> 
<82><02> 
<82><02> 
<82> 
<82> 
<82>L
<82>  <01><14>   "&! 
% #! __SIM6502__../libwrk/sim6502/rewind.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac _clearerr_fseek_rewindpushaxpushw0sppushl0ldax0spincsp2.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>)qx<00>y@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04> 
 __SIM6502__common/rmdir.s
ca65 V2.15_rmdir
__sysrmdir __mappederrno.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix*<00>-<00> <00><00><00><00><00>@<00>A@<40><><92><F8>faX<61> faX<61><06>3)<01>
<83><01>
<82><01>
<01><05> 
<82><01> <09><01> <01><01> m
<83><01><01><01> <09><01>! <01><00>!<02><01> <09><01><01><01> <09>  
<82><01> <09> <01>
<01><00>
 
<82><01>
<83>L
<82>
 
!
  <01><04> " 0H)&9831A4J!I=
%*(2/ 'B+ __SIM6502__common/scanf.s
ca65 V2.15_scanf_stdinpushaxaddysp_vfscanfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac.sizeArgSize@L1CODERODATABSSDATAZEROPAGENULLUzna` iq=<00>&<00><00><00><00><00><00>M<00>N@<40><><92><F8>faX<61>4. 
<01><00>) <01>
<82><01>"0<01>
<01>!<01> <09><01> <09><01><01>$ <09>$<01> <01><00><02> <01> <09><01>  <01> <09><01><01><01>
<01><01><01> <09><02>=#<01><01>`<01>
<82><01> <09><01>
<01><04><01> <01><01> `
  $<02><01><00>)  <20><04>)%PM)& CLO63T1A4;J=5%7N*(,2R '<+ __SIM6502__common/searchenv.s
ca65 V2.15 searchenv
copyenvptr __environ
__envcountptr1ptr2ptr3@L0.size@L9@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` iq<00>j<00> <00><00><00>*k<00><00><00>@<40><><92><F8>faX<61><06> %#<01> <09> <01> <01><00><02><01> <09><01>
<09>
<01> <01> <01><01><01> <09><01><01><01><01><01><01> <09> <01>h<01>h<01> <09><01>H<01><01> <09>H L
<82>
    
 <01><04> -")&.!
*(,2 '+ __SIM6502__common/setjmp.s
ca65 V2.15__setjmpreturn0spptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix'<00><00>9<00><00>A-<00><00><00><00>@<40><><92><F8>faX<61>
faX<61><06>$3.<01> <09> )
<82>)<01>9 <09>9H<01>:)6<01>  8 <02>7<01> <01>((<01>h,
.<01><01><01><01>4<01>`h%`h<01> <02>*`i&<01> h <01># <09>#
&1 <09>1<01><01><01><01>> <09>>`0%&'() !9#1>/)<04><01><00><16><01><00>"<16><05><16><04>@-0MHG?")> L61AJ$.!I=5F%@ *,RK/: #SQ* __SIM6502__ runtime/shl.s
ca65 V2.15tosaslaxtosshlaxaslaxyshlaxypopaxtmp1(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeL2L3L4L1L5L9CODERODATABSSDATAZEROPAGENULLUzna` iq(<00><00><00><00><00><00>z<00>@<40><><92><F8>faX<61><06>4.<01> <09> 
<82> <01> <09>H$<01>!)<01>8<02>'<01>##<01><01>h
<01>%J<01><01>)<01>)<02>`h`h<01><02>` i<01> h<01> <09>F <09>j&<01> <01>(<01>(<01> <09>`  <02><01><00><10><04>*-H?)>&9C861A!I=%7@*,2K 'BD+ __SIM6502__ runtime/shr.s
ca65 V2.15tosshraxshraxypopaxtmp1.sizeL2L3L4L1L5CODERODATABSSDATAZEROPAGENULLUzna` iqe<00> <00> <00><00>._{<00>|@<40><><92><F8>faX<61>.<01> <09>F <09>j<01> <09>` 
  <01><04>   
 __SIM6502__runtime/shrax1.s
ca65 V2.15shrax1tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqt<00>
<00> <00><00>86_<00><00><00>@<40><><92><F8>faX<61>=  <01> <09> F <09>jF <09>j<01>
<09>
` 
   
<01><04>    
 __SIM6502__runtime/shrax2.s
ca65 V2.15shrax2tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00> BP_<00> <00>@<40><><92><F8>faX<61>L<01> <09> F <09>jF
<09>
jF <09> j<01> <09>` 
   
<01><04>    
 __SIM6502__runtime/shrax3.s
ca65 V2.15shrax3tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>  Lj_<00><00>@<40><><92><F8>faX<61>[<01> <09> F <09>jF <09> jF <09>j
F <09>j<01> <09>` 
     <01><04>     
 __SIM6502__runtime/shrax4.s
ca65 V2.15shrax4tmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00> =Lf<00><00>@<40><><92><F8>faX<61>H  <01> <09>F <01><01>f <09> f <09>j <01> <09>` 
    <01><04>
   
 __SIM6502__runtime/shreax1.s
ca65 V2.15shreax1sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>, 8;Q<00>f<00>:<00>@<40><><92><F8>faX<61>q<01> <09>F <01><01> f <09> f <09>jF <01><01> f <09>f <09>j<01> <09>` 
      <01><04>
   
 __SIM6502__runtime/shreax2.s
ca65 V2.15shreax2sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>BX dge<00>f2f3@<40><><92><F8>faX<61><06><01> <09>F
<01><01>
f <09>f <09>jF <01><01> f <09>f <09>jF <01><01>f <09>f <09> j<01> <09>` 
      
 <01><04>    
 __SIM6502__runtime/shreax3.s
ca65 V2.15shreax3sregtmp1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00> !$Lpj<00>#<00>@<40><><92><F8>faX<61>] <01> <09><02>F <01><01> f <09>f <09>j
<01><01><01><01> <09>`
      <01><04>    
 __SIM6502__runtime/shreax4.s
ca65 V2.15shreax4sregtmp1.size@L1CODERODATABSSDATAZEROPAGENULLUzna` i<00><00>+<00><00>iP<00>C<00>D@<40><><92><F8>faX<61> faX<61>faX<61> <06>10'<01> <09><01>: <01><02>: 
<82><02><01>@@<02>9<01>$$
<01>=x <01>-
<82>-HG<01>1 <09>1<01>
<82><01>"
<01><01>"H7<01> <01><02> <01>
<01><01>X2h<01>)h`8<02>  +
<82>+<01> `23456+/-"(:1 !<03><12>><00><01><00>/?<00><01><00>(H --0?))>&9C78(%61A.6!+475@**,1,2./:  'BD
"+7 __SIM6502__common/signal.s
ca65 V2.15popaxptr1+/home/hugg/compilers/cc65/asminc/signal.incSIG_ERRSIGABRTSIGFPESIGILLSIGINTSIGSEGVSIGTERMSIGCOUNTsigtable __sig_ign __sig_dfl_signal_raise*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX.size
invalidsigCODERODATABSSDATAZEROPAGENULLUzna` ix[<00> <00> <00><00>o]<00>G<00>H@<40><><92><F8>faX<61>faX<61>$ 
<82>
<82>
<82>
<82>
<82>
<82>  
<01><04> -)7(%6+45*,. __SIM6502__common/sigtable.s
ca65 V2.15sigtable+/home/hugg/compilers/cc65/asminc/signal.incSIG_ERRSIGABRTSIGFPESIGILLSIGINTSIGSEGVSIGTERMSIGCOUNT __sig_ign __sig_dfl_signal_raise.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz=<00><00><00><00><00><00><00><00><00>@<40><><92><F8><12><>\<5C>faX<61> 
 __SIM6502__../libwrk/sim6502/sleep.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.macCODERODATABSSDATAZEROPAGENULLUzna` ix <00>%<00> <00><00><00>N<00><00>@<40><><92><F8>faX<61> faX<61><06>+$<01>
<83> 
<82><01>
<83>e <09><01> <09><01> <01><01><01><01><01> <01><00><02><01> <09> <01> <09> <01>
<01>
<01> <09><01> <01><00> 
<82><01>
<83>L
<82>
  
   <01><04>-?) C6E34;$.5*(,2:D+ __SIM6502__common/snprintf.s
ca65 V2.15 _snprintfpushaxaddyspdecsp6
_vsnprintfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac ParamSize.size@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` ix <00>%<00> <00><00><00>N<00><00>@<40><><92><F8>faX<61> faX<61><06>+$<01>
<83> 
<82><01>
<83>e <09><01> <09><01> <01><01><01><01><01> <01><00><02><01> <09> <01> <09> <01>
<01>
<01> <09><01> <01><00> 
<82><01>
<83>L
<82>
  
   <01><04>-?) C6E34;$.5*(,2:D+ __SIM6502__common/sprintf.s
ca65 V2.15_sprintfpushaxaddyspdecsp4 _vsprintfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac ParamSize.size@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` ix <00>%<00> <00><00><00>N<00><00>@<40><><92><F8>faX<61>
faX<61><06>+$<01>
<83> 
<82><01>
<83>e <09><01> <09><01> <01><01> <01>  <01><01> <01><00><02><01> <09><01> <09><01>
<01>
<01> <09><01> <01><00> 
<82> <01>
<83>L
<82>
     <01><04>PHG? 9C8L61A;57@(R:'BQ __SIM6502__common/sscanf.s
ca65 V2.15_sscanfaddyspdecsp4_vsscanfspptr1,/home/hugg/compilers/cc65/asminc/generic.mac ParamSize.size@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` iq<00>6 BE`<00>rD@<40><><92><F8>faX<61>q
H<01> <09><02><01> <09> <01> <01><00><01><01> <09><01> <09><01> <09> h
<01> <09>L
<82>      <01><04>     __SIM6502__runtime/staspidx.s
ca65 V2.15staspidxincsp2sptmp1ptr1.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqp<00><00> GPf<00><00>@<40><><92><F8>faX<61>9 
<02><01> <09> <01>H <01> <01> <09>h` 
   
 <02><05> <08><01><00>   
 __SIM6502__runtime/staxsp.s
ca65 V2.15staxyspstax0spsp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>*GJe<00>nI@<40><><92><F8>faX<61>q <02><01> <09><01>H<01> <01> <09><01><01> <09><01> <09><01><01> <01><00> <01> <09>h`
      <02><05> <0B><01><00>
    
 __SIM6502__runtime/steaxsp.s
ca65 V2.15steaxyspsteax0spspsreg.sizeCODERODATABSSDATAZEROPAGENULLUzna` i<00>0I)rud<00><00>t<00>@<40><><92><F8>faX<61> faX<61> faX<61><08>')!<01>8<02> <01>BB`'<01>
<01><07><00> <01>% <01><00>%<01>  `5<01><01>
<01><07><01>A <09>A<01>44`><01>D
<83>D<01>@ <09>@<01>*
<01><07>*<01> <01><00><02>-<02>L3
<82>3()*+,<00>-<01>9 <09>9<01>!
<83>!8)<01>) H<>)<01>
<01><07><01>; <01><00>;<01>,
<01><07>,<01> I<> i<01>7
<01><07><00>7` . 

%A@9; 3)<03><06>#<18><01><00>?$<24><04>8$G \-P0lH)o&Ob;J$!I=%[*(ar,2cRK/:#' SDZQ<YX/ __SIM6502__runtime/stkchk.s
ca65 V2.15stkchkcstkchk
initstkchk __STACKSIZE__pusha0_exitsp,/home/hugg/compilers/cc65/asminc/generic.mac(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510 initialsplowwater.sizeFail@L0@L1CStackOverflowDoneCODERODATABSSDATAZEROPAGENULLONCEINITUzna` iq=<00><00> <00><00><00>^6<00>7@<40><><92><F8>faX<61> 
 <01><04> 
 __SIM6502__common/strcoll.s
ca65 V2.15_strcoll_strcmpCODERODATABSSDATAZEROPAGENULLUzna` iq<00>Xr ~<00>o<00>p`<00>a@<40><><92><F8>faX<61><06> <01> <09> <01> <01><01> 
<82><01> <09><01> <01><00><02> <01> <09><01> <09><01>
 
<01> <01><01><01> <01><01><01> <01><00><01><01><01> <09>`   <01><04>      __SIM6502__common/strcpy.s
ca65 V2.15_strcpypopaxptr1ptr2.sizeL1L9CODERODATABSSDATAZEROPAGENULLUzna` i4<00>8<00> <00><00>-'<00><00>@<40><><92><F8>faX<61>faX<61>!faX<61><06>%6.H& 4
<82>4<02><01>!<01> <09>h5<01>1<01> <09> 
<82> i(<01>  <01>/<01> <09><01> <01><05> 
<82><02>:<01>" <09>"<01> <09><01> <01>'<01> <09> <09><01>$$<01>, <09>,<01> <01><05>L
<82>
<01>+L6
<82>6&'()* 
 
 #6#4,"<01> <0A><U -M?")>  8LE3A4 $.=
F@ RK/ #SQ<+ __SIM6502__common/strdup.s
ca65 V2.15sptmp1ptr4pushaxdecsp4incsp4_strlen_malloc_memcpy_strdup(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510,/home/hugg/compilers/cc65/asminc/generic.mac.size@L1 OutOfMemoryCODERODATABSSDATAZEROPAGENULLUzna` ix<00>$3 ?B<00>i~A@<40><><92><F8>faX<61>faX<61> u$<02><01><02><01>


<02> <01>
<82> <02><01>&
<01><00>&
<01><01>'
<01><01>'<01>!
<82>!`%&'()$ &'!<01><04>* !
 "   #* __SIM6502__common/strerror.s
ca65 V2.15 _strerror __sys_errlist*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX.size@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` ix <00><00><00><00><00><00>8<00><00><00>@<40><><92><F8>faX<61>
faX<61><06>($<01> <09> <01> <01><01><01> <09><01> <01><00><02>&<01># <09>#<01><01><01>
<82>)<01>''<01>"8<02><>
<01>$ <09>$<01><01><01><01> <01><01> <01>%<01>%<01>* <09>*<01> <01><00>` ! * #$ <02><05><03><04>+ -0"& $!  %, #'+" __SIM6502__common/strlower.s
ca65 V2.15 _strlower_strlwrpopax__ctypeptr1ptr2*/home/hugg/compilers/cc65/asminc/ctype.incCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.sizeloopL9L1CODERODATABSSDATAZEROPAGENULLUzna` ix=<00><00> <00><00><00><00><00>H<00>I@<40><><92><F8>faX<61> faX<61> 0.<01> <09><01> H<><01> <09><01> I<><01> <01><01><02><01> <09><01>  <01><01> <09><01>
<09>
<01>  <01>#<01> <09>q <09><01> <09><01><01><01> <01><01><01><01><01> <01><01><01> <09> i <01>  <01>` 

 <01><04>!$-0"& 9861;$.!=
%7,2/: '+ __SIM6502__common/stroserr.s
ca65 V2.15 __stroserror__sys_oserrlistptr1tmp1,/home/hugg/compilers/cc65/asminc/generic.mac.size@L1DoneCODERODATABSSDATAZEROPAGENULLUzna` kzS<00>S  -0n<00>q
/
@<40><><92><F8><12><>\<5C>faX<61><06>*<00><02> Z
<82>Z<02> <02>? b
<82>b<01> <01><06>8 <01><06><00>8<01>[#[<01>5
<83>5<01>: <01><06>:<01>J
<01><03>J<01>, <01><06><00>,<01>O
<83>O<02>"'<01>##Lc
<01><00><>c<01>;
<83>;<01>ss<01>GL
<01><00><><01> <01><06><01>TT<01>9 <01><06><00>9 j
<82>j<02>$<01>m <01><06>m<01>.
<83>.<02>L 
<82><01> <09>D <09>D<01>=<01>=<01>_
<83>_<02>")<01>7<01>U <01><06>U<01>+
<01><02>+<01> <01><06><00> <01>r
<01><02><00>rL^
<01><00>b^<01>k <01><06>k<01>77<01>
<01><06><00>
<02>Y<01>" <01><06>"<01>w
<83>w<02>"v<01>nn S
<82>S<01>
<83><02> @
<82>@<01>Q <09>Qi <09>i<01>W<01>W<01>2
<83>2<01>]<]LE
<01><00><>E<01>< <01><06><<01>  <01>/ <01><06><00>/<02><01>B
<83>B<01> <01><06><01>3
<01><02>3<01> <01><06><00><01>
<01><02><00><01>> <01><06>><01> <01><06><00> -
<82>-<02>C<02>"X 
<82><01>1 <01><06>1<01>d <01><06><00>d<02>`<01>\\<02>F<01>
<01>a H<>a<01>o
<83>o<01> I<>L(
<01><00><>(<02>e<01><01>4 <01><06>4<01>p <01><06>p<01><01> <01><06><00><01>0 <01><06>0<01>
<83><01>I <01><06><00>I<01>
<01><03><01>
<01><02><01>l
<01><02><00>lH <02>P<01>h <09>h<01>M <01><06>M<01>6<01> <09><01>t <01><06>thRLu
<82>u +,VV-
<01><01>A./)&u!&jS&b&Z-H@  DQiK8:,9mU k
"</>1d4p0IMtKh<01><13><00>*xhm\j<00>|<00><00><00>U -P0M]<00><00>lHG?<00>o>&ysfW9C<00>8}LO6pEg<00>tbk<00>3<00>T1A4;eJn.^!iqIdx= <00>5
F<00>%7<00>_<00>[@N(arV,2wcRKvz/:u~ '<00>`BS<00>DZ{<00><00>Q<<00><00>YX0 __SIM6502__../libwrk/sim6502/strqtok.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_strchr_strqtokL003E.sizeL0004L0005L0002L0003pushaxregswap2L0011L004CL000FL0016L0001pushw0spL001DL0022L0020L004BL0036L002EL004Eincsp4CODERODATABSSDATAZEROPAGENULLUzna` iq=<00><00> <00><00><00>b5<00>6@<40><><92><F8>faX<61> 
 <01><05> __SIM6502__common/strtoimax.s
ca65 V2.15_strtol
_strtoimaxCODERODATABSSDATAZEROPAGENULLUzna` kzY<00>a4 AD M{<00>C<00>@<40><><92><F8><12><>\<5C>faX<61>+<00><02> ^
<82>^<02>Y<02>6 
<82> Z
<82>Z<01>3 <01> <09>3A <01> <09><00>A<01>
<01>[
<83>[<01>H <01> <09>H<01>
<01><03><01>G <01> <09><00>G<02>g<01>L <01> <09>L<01> <01>4LU
<01><00><>U<01> <01> <09> <01>,,<01>M <01> <09><00>M<02>*<01>. <01> <09>.<02>><01># <09>
#<01>B<01><02> V
<82>V<02>/<01>d <09>
d<02>< 
<82><02><01>E<01>E<02>-<01>]<01>]<02><01>` <09>
`<01>%%<01>@ <01> <09>@<01>
<83><01> <01> <09><00><01>9
<01><03>9<01>1LR
<01><00><>R<01> <01> <09> <01> <01> <09><00>  F
<82>FL"
<01><00>r"<01> <01> <09> <01>cc<01>Q <01> <09><00>Q<02>_<01>+ <01> <09>+<02><01>K <09>
K<01><01>ff<02>e a
<82>a<02>D<01> <09>
<02>  5
<82>5<02>C<01>\\<02>I<01>(<01>(<02>P<01>: <09>
:<01>0 0<01> <01> <09><01>&
<83>&<01> <01> <09><00><01>7
<01><03>7L
<01><00><><02>)<01><01> <01> <09><01>2 <01> <09>2<01> <01> <09><00> $
<82>$<01>8
<83>8<01>J
<01><03>J 
<82>H'<02>W<01>S <09>
S<01>N <01> <09>N<01>;<01> <09>
<01>T <01> <09>ThbL
<82>,- ./0 *
)
(
$!
F
Va
Z

^=5?3AHGL M.@ Q+2NT?#d`K:S<01><13><00>O!hhm\j|U -P0M]lHG?")o>&ysfW9C8LO6pEgtbk3T1A4;eJn$.^!iqIdx= 5
F%7_[@N*(arV,2wcRKvz/:u~ #'`BSDZ{Q<YX+1 __SIM6502__../libwrk/sim6502/strtok.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_strchr_strtok_Last.sizepushaxregswap2decsp3L0003L0039L0002L000BL0017L003FpushwyspL0018stax0spL0021L001FL0040L0037L002CL0030incax1ldax0spincsp7CODERODATABSSDATAZEROPAGENULLUzna` kz/ <00> <00>6DG<00><00>zsFt@<40><><92><F8><12><>\<5C>(faX<61><06> M<00><02> 
<82> <01><01> <01><1C><01><01><01> <01><1C><01> <01>
<82><01><02>9 <01>
<82><01><01><01> <01><1C><01><01><01> <01><1C><00><01> ?
<82>? <01>
<82><01> <01>
<82><01> :
<82>: <01>
<82><01>L<01>
<01><00>+<01><01><01> <01><1C><01><01><01><01> <01><1C><00><01><02><01><01>& <01><1C>&<02><01> <01>
<82><01><01>~ <09>~<01> <09><01><01><01><01><01><01>f<01><01> <01><1C><01><02>+\<01>R
R<02>-<01><01><01> <01><02><01><02> <01><01>= <09>=<01>5 <01><1C>5<01><01><01><01><01> <01><1C><00><01><02><01><01>T <09>T<01><01>i <09>i<01><01>4<01><01>0<01>. <01><1C>.<02>0<01><01><01>$<01><01><01> <01><1C><01><01>``<01>' <01><1C><00>'<01><01> <01><1C><01><02>xd<01>  <02>X<01><01><01> <01><01><01> <01><1C><01><01><01><01><01> <01><1C><00><02><01>LN
<01><00><>N<02><01><01><01> <01>
<82><01>L<01>
<01><00><><01><02>
 <01>) <01>
<82><01>L<01>
<01><00><><01><01><01> <09><01><01><01>%<01><01>x<01><01> <09><01><02><01><01><01><01><02>I<01>m <01><1C>m<02>0<01><01><01><01><01>y <01><1C>y<02>x-<01>

<02>X<01><01>; ;<02>g<01>e<01> <01><1C><01><01>C <01><1C>C<01>ww<01><01> <01><1C><00><01><02> <01><01><01> <09><01><01><01> <01><02>B<01><01> <09><01><02><><01>L
<01><00><><02><>^<01><01> <09><01><02>"<01>} <01><1D>}<01><01><02>* 
<82><02>v 
<82>  <01>
<82> <01><02>, 
<82> <01>
<82> <01> 
<82>
<02><01><01><01> <09><01><02><01> <01>
<82> <01> 6
<82> 6<02><01> <01>
<82><01> <01>
<82> <01> >
<82> ><02><01> Z
<82>Z<02>G<01><01> <01><1C><01><02><01> W
<82>W<01>V <09>V<01> <09><01><01><01> <01><02><01><01>8 <01><1C>8<02>0<01>Lo
<01><00>Io<01><01><01>% <01><1C>%<02><01> <01>
<82><01><01><01> <09><01><01> <09><01><01><01> <01><02><01><01> <01><1C><02>7<01>L
<01><00>I<01><01><01><01> <01><1C><01><02><01> <01>
<82><01><01>Y <09>Yq <09>q<01><02><02>L<02><01>
<01><00><><02><01><02>O<01><01> <01><1C><01><02>W<01> b
<82>b<02><01><01><01> <09><01><02><01><01><01> <09><01><02><01><01>t<01> <09><01><01>}<01><02> E <01>
<82> <01> <01>
<82> <01><02><01> |
<82> | <01>
<82><01><01><01>#<01><02> j 
<82>  <01>
<82> <01><02>K <01>
<82> <01> <01>
<82><01><01><02><01><01>s <09>s8<01><02><01><01><01> <09><01><01> <09><01><01> <09><01><01><01><01><01>FF<02>@<02><01><01>A <09>A<02><01><01> <09><01>707<02>  <01>
<82> <01> <01>
<82> <01><02><01> 
<82> <01>
<82> <01> 3
<82>3 <01>
<82> <01><02> <01><02>M<01> <09> <01>
<82><01> <01>
<82><01><02>
<01> #
<82>#<02>_<02><01><02>+ <01>
<82><01><01><01> <01><1C><01><01><02><01><02><01>L<02>
<01><00><02> <01><01> <01><1C><00><01>L<01>
<01><00><01><02>4<01>u <09>u<01>k<01> <09><01><01>P4P<02>U<01><01> <09><01><01><01> <09><01><01><01><01><02><01> <01>
<82><01><01>! <09>!<01>S <01><1D>S<01><01> <01><1C><01><02>r<01><01> <09><01><01><01><01><01> <01><1C><00><01>L<01>
<01><00><01><02><01> <01>
<82><01><01> <09><01><01> <01><1D><01><02><01> 1
<82>1<02><01>< <09><<01><01><01>L<01> <09> <02><01><01><01> <09><01><01><01>#<01><02>{ h
<82>h<02> <01><01> <09><01><01>D D<02><01><01>[ <09>[<02><><01><01>] <01><1D>]<01><01>Lz
<01><00>Sz<02><>H<01><01> <09><01><02>Q<01><01> <01><1D><01><01><01>Le
<01><00>Se<01>(<01>l <09>l<01><01> <01><02> <01> <01>
<82> <01> <01>
<82><01>L<01>
<01><00>S<01><02> <01> <01>
<82> <01>H<01><02>p<01><01> <09><01><01><01> <01><1C><01><01>J<01>c <09>c<01>$ <01><1C>$h<02>2L<01>
<82><01>NOPQRL<01><01>K<01><01>C<01><01>B<01><01>A<01><01>@<01>3=<01><01>;<01><01>:<01>b4<01>>3<01>2<01><03><02><02>1<01><06>6<><02><01><02>0<01> <14><01>|<05><01><01><01>/<01>Z#*<01><02><02><01><01><01>:<01><02><02><01>?<01><07><0F><02><02>1<01> <09>nh<01><01><01><01>a<01><01>W 
~<7E>V<><01><01>Yq<06><01>!<21><02><02><01><01><01>&<26>5<>.<2E>'<27><01>my<6D>C<><01>8%<1C><01><01><01><02><01><02>$<01><0E><01>}!S<><04>< []<5D><01><01>=Ti<54><02><01><01><02><02>s<>Au<><02><01><01><01>l<>c<01><17><00><01>X<00><02><00><00><00><00><00><00>hm<00>\j<00><00>|<00><00><00><00><00>U<00><00><00><00> -P<00><00><00><00>0M<00>]<00><00><00>lHG<00><00><00><00>?<00><00><00>")o<00>><00>&<00><00>ys<00><00><00><00><00>f<00><00><00><00>W<00><00><00>9<00>C<00><00><00><00><00><00>8<00>}<00>L<00><00>O<00>6p<00>E<00><00><00>g<00><00><00><00><00><00><00><00>tbk<00><00><00><00>3<00><00><00>T1<00>A<00>4<00><00>;<00>e<00><00>J<00><00><00>n$<00><00>.<00>^!<00>i<00><00><00><00><00>q<00>I<00><00><00><00><00>d<00><00><00><00><00><00>x<00><00>= <00><00>5
F<00><00><00>%7<00><00><00><00><00>_ <00>[@<00>N<00>*<00>(<00><00><00><00><00>a<00><00>r<00><00><00>V<00><00><00><00>,<00>2<00><00><00><00> <00><00><00>w<00><00>cRK<00><00>v<00>z<00>/:u<00>~<00><00><00><00><00> #<00><00><00><00><00><00>'<00><00>`<00><00>BS<00><00>D<00><00>Z{<00><00><00><00>Q<<00><00><00><00><00><00>YX<00>+S __SIM6502__../libwrk/sim6502/strtol.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_isdigit_islower_isspace_isupper
__seterrno_strtolpushaxldaxysppushl0pushapush0decsp6L000AL0008.sizeL0017L0011L0091L0090L0020L008EL008FL0025L00A2staxyspL002FL0096L003BL00AAsteaxyspldeaxysppusheaxaxlong
tosumodeax
tosudiveaxL0047L004BL00A8L0051L0048decaxy tosugteaxL0062toseqeaxL0061L0069
tosumuleaxaxulong tosaddeaxaddeqyspL0078L0073L00A5L0083L007FL0088L0085negeaxaddyspCODERODATABSSDATAZEROPAGENULLUzna` kzm <00> mT b e :<00>j d 
@<40><><92><F8><12><>\<5C>%faX<61>6 J<00><02> 
<82> <01><01> <01><1C><01><01><01> <01><1C><01> <01>
<82><01><02>6 <01>
<82><01><01><01> <01><1C><01><01><01> <01><1C><00><01> <
<82>< <01>
<82><01> <01>
<82><01> 7
<82>7 <01>
<82><01>L<01>
<01><00>+<01><01><01> <01><1C><01><01><01><01> <01><1C><00><01><02><01><01>$ <01><1C>$<02>| <01>
<82><01><01>w <09>w<01> <09><01><01><01><01><01><01>`<01><01> <01><1C><01><02>+X<01>N
N<02>-<01><01><01> <01><02><01><02> <01><01>: <09>:<01>2 <01><1C>2<01><01><01><01> <01><1C><00><02><01><01>P <09>P<01><01>c <09>c<01><01>4<01><01>.<01>, <01><1C>,<02>0<01><01><01>$<01><01><01> <01><1C><01><01>\\<01>% <01><1C><00>%<01><01> <01><1C><01><02>x_<01><02>X<01><01><01> <01><01><01> <01><1C><01><01>{{<01> <01><1C><00><02><01>LJ
<01><00><>J<02><01><01><01> <01>
<82><01>L<01>
<01><00><><01><02>
 <01>' <01>
<82><01>L<01>
<01><00><><01><01><01> <09><01><01><01>%<01><01>q<01><01> <09><01><02><01><01><01><01><02>F<01>g <01><1C>g<02>0<01><01><01><01><01>r <01><1C>r<02>x+<01>

<02>X<01><01>8 8<02>a<01>e<01> <01><1C><01><01>@ <01><1C>@<01>pp<01><01> <01><1C><00><01><02><><01><01><01> <09><01><01><01> <01><1D><01><01>? <01>
<82><01><02><01> 
<82> Z
<82> Z <01>
<82> <01><02>!<01>v <09>v<02><><01><01>( <09>(<01> <01><1D><01>o 
<82><02><01> *
<82>* 
<82>  <01>
<82> <01><02> <01>
<82>
<01><02><01><01><01> <01><1C><01><02>z 3
<82>3<01><01> <09><01><01> <09><01><01><01> <01><02>;<01><01> <01><1C><01><02>0VLD
<01><00>0D<01><01><01><01> <01><1C><01><02>S R
<82>R<01><01> <09><01><01> <09><01><01><01> <01><02>5<01><01> <01><1C><01><02>7iL<01>
<01><00>0<01><01>#<01><01> <01><1C><01><02><01> <01>
<82><01><01>y <09>y<01> <09><01><01><02><02>L<02><01>
<01><00><><02><01><02><01><01> <01><1C><01><02>Wx <01>
<82> <01><02><01><01><01> <09><01><02><01><01>U <09>U<02>j<01><01><01>K <09>K<01><01>}<01><02> <01> ^
<82>^ <01>
<82><01><02><01> <01>
<82><01> <01>
<82><01><01><01>#<01><02> m 
<82> <01>
<82><01><02>B <01>
<82><01> <01>
<82><01><01><01><01><02>u<01><01> <09><01>8<01><02>d<01> <09><01><01> <09><01><01>G <09>G<01><01><01><01><01><01><02><02><01><01>l <09>l<02><01><01><01> <09><01><01><01>0<01><02>  <01>
<82><01> <01>
<82><01><02>C =
<82>= <01>
<82> <01> >
<82>> <01>
<82><01><02> <02>4<01> <09> <01>
<82><01> <01>
<82><01><02>
<01> 
<82>
<02><01><02>0<02><01> <01>
<82><01><01>I <01><1C>I<01><19><19>L
<01><00><> <01><01> <01><1C><00><01>L<01>
<01><00><><01><02><01><01>" <09>"<01>[<01> <09><01><01>)4)<02><01><01><01> <09><01><01><01><01> <09><01><01><01><01><02>1 n
<82>n<01>e <09>e<01><01> <01><1D><01><01>L <01><1C>L<02>Q<01><01> <09><01><01><01><01> <01><1C><00><01>L<01>
<01><00><><01><02><01> <01>
<82><01><01> <09> <01>O <01><1D>O<02><01> k
<82>k<02><01><01><01> <09><01><01><01><01><01><01><01> <09><01><02><01><01> <09><01><01><01><02><01> /
<82>/<02><><01>9 <09>9<01><01> <01><1D><01><01>HL
<01><00>& <01><01><01><01> <09><01><01><01> <01><02> t b
<82>b 
<82>L<01>
<01><00>&<01><02> A <01>
<82><01>HW<02>~<01>Y <09>Y<01><01> <01><1C><01><01>s<01>E <09>E<01><01> <01><1C><01>hM<02><01>L<01>
<82><01>KLMNOIf<01>HfAf<01>@f<01>?f<01>>f>;f<01>9f<01>8f^<5E><10><01>b<>7f<01>1f<02>0f<01>/f<01>.fZ<0F>-f<06><14><01><01><01>*f<02><02>f<01>f7f<02><01>f<f<07>*=n<>kf <09>h/<01>R<01><01>]<01><01>3 
w<81><01><02><01><01>y<><01>G<01>!<21><02><01><01><01><01>$<24>2,<2C>%<25><01>gr<67>@<40><01><01><02><02><01><02>I<>L<><01><02><01> <0A><01>(e<><01> O<><01>9<><01>:Pc<50><01>v<>UK<55>l<>"<22><01><01><04>YE<01><17><00><01>T<00><02><00><00><00><00><00><00>hm<00>\j<00><00>|<00><00><00><00><00>U<00><00><00> -P<00><00><00>0M<00>]<00><00><00>lHG<00><00><00>?<00><00><00>")o<00>><00>&<00><00>ys<00><00><00><00><00>f<00><00><00>W<00><00><00>9<00>C<00><00><00><00><00><00>8<00>}<00>L<00>O6p<00>E<00><00><00>g<00><00><00><00><00><00><00>tbk<00><00><00><00>3<00><00><00>T1<00>A<00>4<00>;<00>e<00><00>J<00><00><00>n$<00><00>.<00>^!<00>i<00><00><00>q<00>I<00><00><00><00><00>d<00><00><00><00>x<00><00>= <00><00>5
F<00><00><00>%7<00><00><00><00><00>_ <00>[@<00>N<00>*<00>(<00><00><00>a<00><00>r<00><00>V<00><00><00>,<00>2<00><00><00><00> <00><00><00>w<00><00>cRK<00><00>vz<00>/:u~<00><00><00><00><00> #<00><00><00><00><00><00>'<00><00>`<00><00>BS<00><00>D<00>Z{<00><00><00><00>Q<<00><00><00><00><00>YX<00>+P __SIM6502__../libwrk/sim6502/strtoul.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_isdigit_islower_isspace_isupper
__seterrno_strtoulpushaxldaxysppushl0pushapush0decsp6L000AL0008.sizeL0017L0011L0083L0082L0020L0080L0081L0025L0094staxyspL002FL0088pusheaxaxlong
tosumodeax
tosudiveaxsteaxyspL003FL0043L0099L0049L0040decaxyldeaxysp tosugteaxL005AtoseqeaxL0059L0061
tosumuleaxaxulong tosaddeaxaddeqyspL0070L006BL0096L0073L007BL0078negeaxaddyspCODERODATABSSDATAZEROPAGENULLUzna` iq=<00><00> <00><00><00>c6<00>7@<40><><92><F8>faX<61> 
 <01><05> __SIM6502__common/strtoumax.s
ca65 V2.15_strtoul
_strtoumaxCODERODATABSSDATAZEROPAGENULLUzna` ix <00><00><00><00><00><00>8<00><00><00>@<40><><92><F8>faX<61>
faX<61><06>($<01> <09> <01> <01><01><01> <09><01> <01><00><02>&<01># <09>#<01><01><01>
<82>)<01>''<01>"i<>
<01>$ <09>$<01><01><01><01> <01><01> <01>%<01>%<01>* <09>*<01> <01><00>` ! * #$ <02><05><03><04>+ -0"& $!  %, #'+" __SIM6502__common/strupper.s
ca65 V2.15 _strupper_struprpopax__ctypeptr1ptr2*/home/hugg/compilers/cc65/asminc/ctype.incCT_NONECT_LOWERCT_UPPERCT_DIGIT CT_XDIGITCT_CTRLCT_SPACE CT_OTHER_WS CT_SPACE_TABCT_ALNUMCT_ALPHA CT_CTRL_SPACE CT_NOT_PUNCT.sizeloopL9L1CODERODATABSSDATAZEROPAGENULLUzna` kz<00>'F RUj<00><00>T<00>@<40><><92><F8><12><>\<5C>faX<61>n  
<82><02> 
<82>
<02> 
<82><02> 
<82>  
<82><02> 
<82> 
<82> L
<82> 
  <01><14>  ")&$! 
%( # __SIM6502__../libwrk/sim6502/strxfrm.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_strlen_strncpy_strxfrmpushaxpushwyspldaxyspincsp6.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00> 47<00>{{6|@<40><><92><F8>faX<61>faX<61>Z<02>8I<><02>#q <09><01> H<01>I<>q$ <09>$<01>hL
<82>  ! $ <02><01><00><13><04>("  !  #" __SIM6502__ runtime/sub.s
ca65 V2.15tossuba0tossubaxaddysp1sp(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00> 
25e<00>i4@<40><><92><F8>faX<61>c<02>8I<>q <09><01> <09> H<01><01>I<>q <09><01> <09> <01>h` 
      <02><01><00>
 <0B><04>    
 __SIM6502__runtime/subeqsp.s
ca65 V2.15subeq0spsubeqyspsp.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00> <00>  GPa<00><00>@<40><><92><F8>faX<61>I  <01> I<>8 e <09> <01> <09><01><01> <01><00>` 
    <01><04> 
   __SIM6502__runtime/subysp.s
ca65 V2.15subyspsp@L1.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00># /2[<00><00><00>1<00>@<40><><92><F8><12><>\<5C>faX<61>] 
<82><02><01> <09> <01> <09> <01><01>L
<82><02><><01>L
<82>  <01><12>
 "&! 
% # __SIM6502__../libwrk/sim6502/system.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_systempushaxL0002incsp2.sizeCODERODATABSSDATAZEROPAGENULLUzna` kzq<00><00><00> <00><00><00><00><00>
<00>
@<40><><92><F8><12><>\<5C>faX<61>:*<00><02> O
<82>
O<02>  ~
<82> ~<02>x L
<82>L<02>  y
<82>y8I<02>
[<01>$ <09>$<01>z <09>z<01>e<01> <01>d <09>d<01> <09><01><01>ii<01><10><10>L
<01><00><02>J<02>t<01> <09>A<01>jq> <09>><01>DD<01>W<02>4<01>\<02>/<01>**<02> uLE
<01><00>AE<02><01><02>T<01>" <09>"<02> b
<82>b<02>C<01>} <09>} +
<82>+<02><01> 6
<82>6 Y
<82> Y 
<82>  
<82><02>Q G
<82>G<02>q 1
<82>1<02><01>c <09>c 3
<82>3<02> <01>
<82><01> p
<82> p 
<82>  @
<82>@<02>  h
<82>h<02>)<01><01> <09><01><02><01><02> <01> a
<82>a<02>  
<82><02>
K<01>^ <09>^<01>|<01>f<01>; <09>;<01>oo R
<82>R<02> F (
<82>(<02>7<02><01>M <09>M<02> <
<82><<02><01> <09> H
<82>H<02>! 5
<82>5 P
<82> P g
<82> g &
<82>&<02>: v
<82>v<02>r n
<82>n<02>S<01>% <09>% s
<82>s<02><01> 
<82>  0
<82> 0 w
<82> w 
<82><02>= <01>
<82><01><02>  
<82> <02> 9 
<82>
<02> V 
<82><02>  <01>
<82><01> 
<82> <02>] {
<82>{<02>Z ?
<82>?<02> <01>
<82><01><02>` <01>
<82><01><02>#<01><01> <09><01><01>..L._
<01><00><>._<02>'Lk
<82>k+,-./),k',a%,@$,Gh(v<>?<3F>#,&",+3Hs!,b1<n
,
y6<87>R5 <09>{<7B>,L,~,O8YPNp0mgwU  z<>X$d>"}c<>^;M%<25><01><13><00>2<00>hm\j<00>|<00><00><00>U -P0M]<00><00>lHG?<00>")o><00>&ys<00>fW9C<00><00><00>8}LO6pEg<00>tbk<00>3<00>T1A4;eJn$.^!iqIdx= <00>5
F<00>%7<00>_ <00>[@N*(arV,2<00> wcRKvz/:u~ #'<00>`BS<00>DZ{<00><00>Q<<00><00>YX+0 __SIM6502__../libwrk/sim6502/tgi_arc.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac _tgi_line_tgi_arc_tgi_imulround _cc65_sin _cc65_cospushaxsubysppushaldaxyspL0005L0019.sizeL0037L0039L003Apushwysppusha0tosaddaxstaxysptossubaxL0018addeqyspL001DaddyspCODERODATABSSDATAZEROPAGENULLUzna` iq=<00><00> <00><00><00>qD<00>E@<40><><92><F8>faX<61> 
 <01><05> 
 __SIM6502__tgi/tgi_free_vectorfont.s
ca65 V2.15_free_tgi_free_vectorfontCODERODATABSSDATAZEROPAGENULLUzna` ix<00>\x<00><00><00>H`<00>a@<40><><92><F8>faX<61> faX<61><06>%<01> <09><01> <01><00> 
<82>  
<82>ɀ<01>"<01> <01><01>0
i<01><01> <09>i<01><01>`<02><01> <01> <09> <02><01><01>!` 

    <02><01><00><16><04>#-0?"& 98314;  = 57*,2/:<+ __SIM6502__tgi/tgi_imulround.s
ca65 V2.15_tgi_imulround tgi_imulroundpopax imul16x16r32-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.size@L1CODERODATABSSDATAZEROPAGENULLUzna` kz<00><00><00> <00><00><00>{
<00>G <00>H @<40><><92><F8><12><>\<5C>faX<61>K2<00><02> s
<82> s !
<82> ! r
<82>
r <01>
<82> <01><02>}<01>
<82> <02>U <01>
<82><01><02> J
<82>J<02>~ E
<82>E<02>N f
<82>f<02><>9<01>j<>j<>LjZ
<01><00>,jZ<02>3 ,
<82>,<02> <01> O
<82>O <01>
<82> <01><02>b<02># 
<82><02>o<01>L<>L<>LL
<01><00>,L<02><01><01>-<2D>-<2D>L-
<01><00>,-<02><01> ;
<82>; h
<82> h<01> H<><01> I<> \
<82> \<02>R<02><01> 5
<82>5<02><01>q<>q<>Lq
<01><00>,q<02>8<01><10><10>L
<01><00>,<02> <01> <01>
<82><01> <01>
<82><01><02>I 
<82> <02>{<01>* *<02><01><01><01><01><02><01><01>n
<82> nL
<01><00>,<02> V
<82>V<02>l <01>
<82><01><02>t B
<82>B <01>
<82><01><02> ]<01>P <09>P<01>((<01><<01><01>X <09>X<01> <02>C 
<82> 
<82>LS
<01><00>,S<02>" :
<82>: [
<82>[<02> w&<02>Aq<01> <09><01>H<01><02><01><01>aq% <09>%<01><01>h<01><02> 4
<82>4<02><01><01><01>D <09>D<02>_<01><01>D<02>  @
<82>@<02>b e
<82>e<01> <09><01> <01><14><02><01><01>
<09>

k<01><01><01><01>iHe <09>H<01><01>me<01> <01><14><01><01>$h<01> 2
<82> 2 '
<82>'<01><01> <09><01><01><01> <01><14><01><02>/ .
<82>.Me` <09>`H<01><01>e| <01><14>|<01>>h<01><02> <01>
<82><01><01><02>pqG <09>GLQ
<01><00><>Q<01>d
<82> d<02>  <01>
<82><01>LF
<01><00>?F<02> v
<82>v<01>z0^^<02>1 ?
<82>? u
<82>u<02>+<01>y<02><01>L7
<82>73TWC H<01>T45671<01>7.<01><01>-<01>'+<01>e%<01> <09>B:@.<2E>v?$<01>O;"<01>f 4!<01>J <01><04>,V<><01><01><01>r<01>!<01>s<>h\2)nd0<1D>=[uYE<01>56c<01>  <1E><01><01>`|gPX<50>%D
G<01><18><00><00>hm\j<00>|<00><00><00>U<00> -P<00>0M]<00><00>lHG?<00><00>")o><00>ys<00>fW<00>9C<00><00><00><00>8}L<00>O6pEg<00><00><00>tbk<00>3<00><00><00>T1A<00>4;e<00>Jn$.^!i5qId<00>1<00>x= <00><00>5
F<00>7<00>_<00>[@<00>N*(a<00><00>r3<00><00>V<00>,2<00><00><00> <00>4w<00>cRKvz<00>/:u~<00> #<00><00><00>`BS<00><00>DZ{<00><00>Q<<00><00><00>YX.+8 __SIM6502__'../libwrk/sim6502/tgi_load_vectorfont.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac_malloc_free_memcmp_open_close_read_tgi_load_vectorfont
_tgi_errorL000B.sizepushaxdecsp8push0decsp3pushwysppusha0staxyspL0019leaa0spldaxyspL002CL0055L0031L0052L0054incaxyL0053ldaxi staxspidxL0009L004BaddyspCODERODATABSSDATAZEROPAGENULLUzna` kz<00>v<00> <00><00><00>9a<00><00><00>@<40><><92><F8><12><>\<5C>faX<61>g!<00>u 
<82><02> I C
<82>C<02> ) 
<82> <02> E<01>& <09> & 1
<82>1<02> <01>F <09> F 8
<82>8<02>  7
<82>7<02> Q ;
<82>; 
<82> <02> ' A
<82>A<02>  
<82> <02>< 
<82><02> "<01>. <09> . 
<82><02> 2 
<82> 
<82> B
<82>
B #
<82># N
<82>N<02>, 
<82><02>  <01>5 <09> 5 !
<82>!<02> H 
<82> K
<82> K 
<82>
 0
<82>0 
<82>  <02>   +
<82>+<02> % @
<82>@<02> 
<82><02> 6<01> <09>  
<82><02> M ?
<82>? J
<82>J 
<82>
 
<82> :
<82>:<02> P
<82>P<02> O<01>L <09> L 4
<82>4<02>  
<82> (
<82> ( 3
<82>
3 G
<82>G 9
<82> 9<02>
L>
<82>>"#$%&>0G#!4;?18 C 7A +@PN:JK(*B3- 9/&F.5L<01><14><00>D=R\U -P0M]HG?")>&fW9C8LO6Eb3T1A4;eJ$.^!I= 5
F%7_[@N*(aV,2cRK/: #'`BSDZQ<YX+' __SIM6502__ ../libwrk/sim6502/tgi_pieslice.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac _tgi_line_tgi_arc _tgi_pieslice_tgi_imulround _cc65_sin _cc65_cospushaxpushwysppushaldaxysppusha0tosaddaxtossubaxaddysp.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz|<00><00> =C<00>#$@<40><><92><F8><12><>\<5C>faX<61>E UTCUTC
<01><12>   
 __SIM6502__../libwrk/sim6502/timezone.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac__tz.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00><00><00> LSg<00><00>@<40><><92><F8>faX<61>I <02><01> <01> <01>
<82>JJ
<01><01><02><>` 
    <01><04>     
 __SIM6502__common/tolower.s
ca65 V2.15_tolower__ctype.sizeL9CODERODATABSSDATAZEROPAGENULLUzna` ix<00> $'<00><00>rS&T@<40><><92><F8>faX<61>faX<61>YH<02><01> <09><02> <01> <09><01><01> <09><02><01> <09>hL!
<82>! 
!<01><04>%  ! ! __SIM6502__runtime/tosint.s
ca65 V2.15tosintincsp2sp(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix#<00><00><00><00>2<00><00><00><00>@<40><><92><F8>faX<61>
faX<61><06>8,H! 
<82><02><01> <09><02>6<01> <09><02>2<01> <09><02><01>7 <09>7<02>1<01>
<01>3 <09>3<01><01>% <09>%h `5H) <
<82><<02>+<01> <09><02>,<01> <09><02><01> <09>&<01>&<02><01> <09><02><>0<01><01> !"#
73%#<<02><01><00> <1D><04>-=-")&  986314;$.!%7 *,2: #'<+$ __SIM6502__runtime/toslong.s
ca65 V2.15tosulongtoslongdecsp2sp(/home/hugg/compilers/cc65/asminc/cpu.mac CPU_ISET_NONE CPU_ISET_6502CPU_ISET_6502XCPU_ISET_65SC02CPU_ISET_65C02CPU_ISET_65816CPU_ISET_SWEET16CPU_ISET_HUC6280 CPU_ISET_4510CPU_NONECPU_6502 CPU_6502X
CPU_65SC02 CPU_65C02 CPU_65816 CPU_SWEET16 CPU_HUC6280CPU_4510.sizetoslong1toslong2CODERODATABSSDATAZEROPAGENULLUzna` iq<00><00><00> LSg<00><00>@<40><><92><F8>faX<61>I <02><01> <01> <01>
<82>J<01>
<01>i<>` 
    <01><04>     
 __SIM6502__common/toupper.s
ca65 V2.15_toupper__ctype.sizeL9CODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8D{<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>L
<82>   <03><01><00>
<06><01><00> <06><04>    __SIM6502__ runtime/uge.s
ca65 V2.15tosuge00tosugea0tosugeaxtosicmpbooluge.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8D{<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>L
<82>   <03><01><00>
<06><01><00> <06><04>    __SIM6502__ runtime/ugt.s
ca65 V2.15tosugt00tosugta0tosugtaxtosicmpboolugt.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq]<00> <00>.  8D{<00> <00>@<40><><92><F8>faX<61>&
<02><02> 
<82>
L
<82>   
<03><01><00><05><01><00><05><04>    
 __SIM6502__ runtime/ule.s
ca65 V2.15tosule00tosulea0tosuleaxtosicmpboolule.sizeCODERODATABSSDATAZEROPAGENULLUzna` iqW<00><00>'38<00><00><00>@<40><><92><F8>faX<61> <02> 
<82>L
<82>   <03><01><00> <05><05><05><04>
  __SIM6502__ runtime/ult.s
ca65 V2.15tosult00tosulta0tosultaxtosicmpboolultreturn0.sizeCODERODATABSSDATAZEROPAGENULLUzna` iq<00>):WZe<00><00>?Y@@<40><><92><F8>faX<61><06> <01> <09><02><02> F <09><01>e <09>jf <09> <01><01><01><01><01>
<01><01>
<01> <09>`    
<02><01><00> <09><04> "! # __SIM6502__runtime/umul8x8r16.s
ca65 V2.15
umul8x8r16 umul8x8r16mptr1ptr3.size@L0@L1CODERODATABSSDATAZEROPAGENULLUzna` iqQ<00> <00> <00><00>. q}<00>~@<40><><92><F8>faX<61> 
<82>L
<82> 
   <01><04> 
 __SIM6502__common/uname.s
ca65 V2.15_uname
__sysuname __mappederrno.sizeCODERODATABSSDATAZEROPAGENULLUzna` kz<00><00>V cf<00>K <00><00>
e<00>
@<40><><93><F8><13><>\<5C>faX<61><06>*<00><02> l
<82>l 
<82><02> K 
<82><01>} <09>}<01>v <01><14>v<02>I<01> <09>)<29>w<02>F<01>X<>X<>LX
<01><00>#X<02> " y
<82>y<01>b <09>b<01> <01><14><02>a<01><01> <09><01>) f<01> <0A> <0A>L 
<01><00># <02> G r
<82>r<01> <09><01>> <01><14>><02>g<01>; <09>;<01>A<01>T 2
<82>2<02> Y -
<82>-<01>( <09>(<01>s <01><14>s<02>B<01><01> <09><01> Q
<82>Q 
<82> <02> _
<82> _<01>@ <09>@| <09>|<01>)<29>)<29>L)
<01><00>#)<02><01> 4
<82> 4<02>V 
<82> <02> M
<82>M D
<82> D o
<82>o<02>/ 
<82>
<02>` 1
<82> 1<02>  <01>
<82><01>n<02>
~q= <09>=H <01>e<01>'q<01> <09><01><01><01>h<01> ^
<82>^<02> 
<82>
 H
<82>H [
<82>[ {
<82>{ c
<82>c<02>8 m
<82> m<02> N C
<82>C &
<82>& 5
<82>5<02><01>J <09>J 
<82><02>9 
<82><01> <09><01>E <01><14>E<02><01>3 <09>3 L
<82>L<01>dSd $
<82>$<01>7 t
<82>t<02>p k
<82>k<01>P <09>P<01># <01><14>#<02>q<01><01> <09><01> 
<82><01>.:. u
<82>u<01> <09> :
<82>:<02><01> 
<82><01> <09> <01>6 <01><14>6<02><01>S <09>S 
<82><01>  
<82><01>
<01><16>
 Z
<82>Z<02>z W
<82>W<01>< <09><<01> <01><14><02><01><01>] <09>] <01>
<82><01><01>!!<02><01><01>,L%
<01><00>'%<02><>h<02><><01><02>+L*
<82>*+,-./)x*&x$u%xL<16>$xt:Z#x5"xc!x[ xHx^x1xxDx4mx_xQx yr-M<>CkWxxl2 j{&Ro  }vb<1E>>;(s<>E3P#<23> 6S<]  @|U
U=<3D>J<01><13><00>\0<00>hm\j<00>|<00><00><00>U -P0M]<00><00>lHG?<00>")o><00>&ys<00>fW9C<00><00><00>8}LO6pEg<00>tbk<00>3<00>T1A4;eJn$.^!iqId<00>x= <00>5
F<00>%7<00>_<00>[@N*(arV,2<00> wcRKvz/:u~ #<00>'<00>`BS<00>DZ{<00><00>Q<<00><00><00>YX+0 __SIM6502__../libwrk/sim6502/uncompress.s
ca65 V2.15 cc65 v 2.15spsregregsaveregbanktmp1tmp2tmp3tmp4ptr1ptr2ptr3ptr4//home/hugg/compilers/cc65/asminc/longbranch.mac _inflatemem _uncompress_adler32pushaxdecsp8ldaxyspL0023tosora0 tosumoda0pushwyspincax2staxysp staxspidxdecax4pushl0push0pusheaxsteax0sppusha0tosicmp0ldeax0spL0001.sizeaddyspCODERODATABSSDATAZEROPAGENULLUzna` i<00><00> <00><00>F<00><00><00><00>@<40><><93><F8>faX<61>
faX<61>faX<61> <06>0.(<01>6 <09>6<01> <01><02> 
<82><01> <09><01> <01>22<02>5<01>) <09>))  <01>((<01> <09> 11) <01> <01> <09><02>"<01> <09><01>& <09>&<02>`=<01>'' 
<82><02><>7<01>`9123456)&#<01><04>.!A  0G")C61A; . 5
F7@*(/# 'BD
<"6 __SIM6502__common/ungetc.s
ca65 V2.15_ungetcpopaxptr1tmp1*/home/hugg/compilers/cc65/asminc/_file.inc_FILEf_fd.sizef_flags
f_pushback_FCLOSED_FOPEN_FEOF_FERROR
_FPUSHBACK __filetab*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAXerrorCODERODATABSSDATAZEROPAGENULLUzna` iq=<00><00> <00><00><00>\4<00>5@<40><><93><F8>faX<61> 
 <01><04>  __SIM6502__common/unlink.s
ca65 V2.15_unlink_removeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>r<00> <00><00><00>\<00>K<00>L@<40><><93><F8>faX<61>faX<61><06>$<01>& <09>&<01> <01><01><02><01> <09> <01> <09> <01><01>  <01> <09><01>
<83><01>
<01>
<82><01> <09><01>!<02><01>%<01>%<01><01><01><02>`$#", &<01><04>$'))>9C8(6E31'A4;.!+= 5@*&,2/: #<+ __SIM6502__common/utscopy.s
ca65 V2.15utscopyutsdataptr1tmp1,/home/hugg/compilers/cc65/asminc/utsname.incutsnamesysname.sizenodenamereleaseversionmachine fieldoffs
fieldcountnextdoneloopCODERODATABSSDATAZEROPAGENULLUzna` ixI<00>%<00><00><00><00><00><00><00><00><00>@<40><><93><F8>faX<61>
faX<61><06><-<01>
<83> <01>,,<01>'<01>
<83><01>
<01><02>`" 
<82>H( 
<82>h+<02>`<02><01>
<83> 
<82><01>
<01><02>`%H<01>H<02><01>!
<83>!<01>& H<>&<01># I<># 
<82> 
<82> h<01>)hL
<82>
<83>
<01><00>   
    <01><01><00>$$-j0HGo>y  }6p<00>1; Jni
qIx=
 *r2wcKv/:~<00><+ __SIM6502__conio/vcscanf.s
ca65 V2.15_vcscanf_cgetc_cputcpopaxpushaxswapstkconio/../common/_scanf.inc SCANFDATAGET.sizeUNGETDATA__scanfpushedbackgetL1ungetdCODERODATABSSZEROPAGENULLUzna` ix<00>2<00><00><00>3<00><00><00><00>@<40><><93><F8>faX<61> faX<61><06>aI<02>& 
<82> )
<82>)<02> 
<82><01>/
<01><03>/<01>!
<01><03><00>! 9
<82>9<01>% <09>%<01> <01><00>3 <01><00>3<01><02><> <01>
<83><01>   <01>8 <09>8-m-
<83>-<01>4
<83>4<01> m
<01><03><01>,
<01><03>,L
<82>H<02><01>0
<83>0<01>.
<01><03>.<02>6<01> <09><01>
<01><03><01>1 H<>1<01> <09><01><01>7 <09>7<01>
<01><03><00>
<01> I<><01> <09>h 5
<82>5<01>(
<83>(<01>
<01><03>` "
<83>* 2  %38
7 '5'9)<01><01><00>8$;<00>|<00>U M<00>HG<00>o> W9C8}L6p<00>t<00><00>T;I=5
<00>7<00>VRv:u~BS<00>{<00>Q< __SIM6502__common/vfprintf.s
ca65 V2.15 _vfprintfpush1pushwyspincsp6_fwrite__printfspptr1,/home/hugg/compilers/cc65/asminc/generic.macoutdesc.sizeccountoutptr@Ok@DoneCODERODATABSSDATAZEROPAGENULLUzna` iq<00>Dc or<00><00>xmqn@<40><><93><F8>faX<61><06>
$H 
<82><02><01> <09><02><01> <09><02> <01> <09><02><01> <09><01><01>
<82><01> <09> <01><01>
<01><02><01> <09>hL
<82>    <01><04>$ "& 31$
%/ #'+ __SIM6502__common/vprintf.s
ca65 V2.15_vprintf _vfprintf_stdoutdecsp2sp.sizeCODERODATABSSDATAZEROPAGENULLUzna` ix<00>Kj vy<00><00>x@<40><><93><F8>faX<61> faX<61><06>$H 
<82><02><01> <09><02><01> <09><02><01> <09><02><01> <09><01><01>
<82><01> <09><01><01>
<01><02><01> <09> hL
<82>
   
<01><04> -0"&  61 $.! 5
%7(,/#' __SIM6502__common/vscanf.s
ca65 V2.15_vscanf_vfscanf_stdindecsp2-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeCODERODATABSSDATAZEROPAGENULLUzna` i <00>L<00><00><00><00><00> <00>
<00><00>
@<40><><93><F8>faX<61>(faX<61> )faX<61><06><<00><02>H<01><01>aH<02>x<01>
<01><03><01>8
<01><03>8<02>$<01>z <09>z<01>: <09>:<01>N H<>N<01> <09><01>Z<01>9 <09>90<01>a<01><01>% <01><01>%<01>* I<>*<01>S <09>S<01>? <01><01>?<01>r <09>r<01>&&<01><01>\<01>(
<01><03><00>(<01>
<01><03><00> <02>7 
<82><01>f
<01><03><00>f<01>"
<01><03><00>",Y
<01><03><00>Y0 
<01><03><00><01>BO;BOh0<01>qhG <
<82><<01>
<01><03><00>01$1<01>
<01><03><00><01>
<01><03><01>@@<01>
<01><03><01>))<01>E
<01><03>E<01>d
<01><03>dm/
<01><03><00>/<01>{ <09>{<01>tmm
<01><03><00>m<01>K <01><01>K<02>u<01><01><01> <09><01>3
<01><03>3<01><01>
<01><03><01>L
<82><02>Q,<02>Xh<01>hU<01>6 
<82>L<01>
<82><01><01>k
<01><03><00>k8<01><01>
<01><03><01><01>v <09>v<01>[
<01><03><00>[055<01>>
<01><03>><01>P <01><01>P<01>  <02><01><01>4 <09>4<01>i <01><01>i<01>,
<01><03><00>,cm#
<01><03>#<02>e<01>p <09>p<01>=
<01><03><00>=m|
<01><03>|<01>l<01>F <09>F n
<82>nHh2m;
<01><03>;<01>W
<01><03>W<01>+m
<01><03><01>C
<01><03>Ch!<01>H <01><01>H<01>--<01><01> <09><01><01>LL<01>^ <09>^<01> <01><01>L
<82>=>#?
<01><00><>}o@A D 
:%?r{KvP4iH<69>^ 
z9SpF R<
R  <01>  n <02><01><00>AM<><04>M<00><01><00>m\j|U<00> P<00>0M]<00><00>l<00>)o>&<00>s <00>W<00>9CLOpE<00><00><00>tbk<00><00><00><00><00>T1A;<00>e<00><00>Jn.^<00>
q<00>d<00><00><00>x<00>=5<00><00>
F"<00><00><00>[@<00>N <00>(<00>r<00>V<00><00><00><00>w<00><00>cKvz<00>/ :u<00><00><00>'<00>B<00>{<00><00>B __SIM6502__common/vsnprintf.s
ca65 V2.15
_vsnprintf vsnprintfldaxysppopaxincsp2incsp6_memcpy__printfspptr1*/home/hugg/compilers/cc65/asminc/errno.inc__errno __oserror __osmaperrno
__seterrno __directerrno __mappederrnoEOKENOENTENOMEMEACCESENODEVEMFILEEBUSYEINVALENOSPCEEXISTEAGAINEIOEINTRENOSYSESPIPEERANGEEBADFENOEXECEUNKNOWNEMAX,/home/hugg/compilers/cc65/asminc/generic.macoutdesc.sizeccountfuncoutbufptrbufsizeL9L1L5L0L4L2L3@L9@L0@L1@L2CODERODATABSSDATAZEROPAGENULLUzna` iq|<00> L[y<00><00>@<40><><93><F8>faX<61>E  H<01>H 
<82> <02><><02>
<02> 
<82>L
<82> 
       <01><04> $% __SIM6502__common/vsprintf.s
ca65 V2.15 _vsprintfpushw0spstaxysp vsnprintf.sizeCODERODATABSSDATAZEROPAGENULLUzna` ixj<00>2&)<00><00><00><00>(<00>@<40><><93><F8>faX<61>!
faX<61>m[<01>S <09>S<01>A <01><01>A<02>'<01>B <09>B<01>% <09>%<01>+<01>5 <09>5<02>8 q8 <09>8<01> <01><00><01>P<01>3 <09>3<01><01>
<09>
<01><02><>L<01>`6<01>/<01>G<02> i<01>: <09>:<01><01> <09>iO<01>F <09>F<01>@<02>`R<01># <09>#<01> <01><01><02><01>1 <09>18=$<02>=(<01> <09><01>"<01>I <09>I<02>H<01>E <09>ELN
<82>NH<02>.<01>4 <09>4<01>
<01><02><01>K H<>K<01>& <09>&<01>C<01>< <09><<01>?
<01><02><00>?<01>2 I<>2<01> <09><02>;<01>
<01><02><01>>
<01><02><00>>hJLD
<82>D
<83>
<01><00>4
<83>*
  -%
-#1IESAB583:F-4&<DN<01><01><00>K" T<00> P<00>Ml?<00>)>s <00>W<00>C<00><00><00>8}LO6pE<00>tk3<00>1<00>4 <00>Jiq<00>=<00>5F<00>7N<00><00>r<00><00>V,2<00><00>wRKvu<00><00>DZ{Q<X+ __SIM6502__common/vsscanf.s
ca65 V2.15_vsscanfpopax__scanfspptr1ptr2,/home/hugg/compilers/cc65/asminc/generic.mac
SSCANFDATASTR.sizeINDEXgetL1ungetsddCODERODATABSSDATAZEROPAGENULLUzna` iq<00>m<00> <00><00>~<00><00><00><00>@<40><><93><F8>faX<61><06> #"<01> H<><01> <09> <01>
I<>
<01> <01><00><02><01><01> I<><01>
<01> <09><01><01><01><01> <01><00><01><01><01><01> H<><01>  <01> <09><01><01><01>` 
<01><04>  & $%#'+ __SIM6502__common/zerobss.s
ca65 V2.15zerobss __BSS_RUN__ __BSS_SIZE__ptr1.sizeL1L3L2L4CODERODATABSSDATAZEROPAGENULLUzna` ixm<00><00><00><00><00>e <00><00><00><00>@<40><><93><F8>faX<61>faX<61>6          
  <0C><01><04><00><01><04><00><01><04>
<00> <01><04> <00> <01><04><00> <01><04><00>
<01><04> <00> <01><04>
<00><01><04> <00><01><04><00><01><04><00><05>     __SIM6502__runtime/zeropage.s
ca65 V2.15-/home/hugg/compilers/cc65/asminc/zeropage.incspsregregsaveptr1ptr2ptr3ptr4tmp1tmp2tmp3tmp4regbank regbanksizezpspace zpsavespace.sizeCODERODATABSSDATAZEROPAGENULL<00>
_afailed.o<11><>\<0E><00> _cursor.o<11><>\<5C><>2_cwd.o<00>m<8B>\ <00>_directerrno.o<11><>\ <0A>X
_environ.o<11><>\e<><00>_fdesc.o<00>m<8B>\<5C><00>_file.o<00>m<8B>\<5C><00>_fopen.o<11><>\$<24>_heap.o<11><>\B<><00>
_heapadd.o<11><>\<5C><00>_heapblocksize.o<11><>\<5C><00>_heapmaxavail.o<11><>\N
N_heapmemavail.o<11><>\<5C>0 _hextab.o<11><>\<5C>k _longminstr.o<11><>\7_mappederrno.o<11><>\K<00>
_oserror.o<11><>\< _poserror.o<11><>\K<00> _printf.o<11><>\<5C>#<00>&_scanf.o<11><>\<5C>J<00>J _seterrno.o<11><>\V<><00>_swap.o<00>m<8B>\<5C> _sys.o<11><>\3<>uabort.o<11><>\<5C><>zabs.o<00>m<8B>\<5C>kadd.o<00>m<8B>\<00> addeqsp.o<11><>\"<22><00>addysp.o<11><>\<11><00> adler32.o<00>m<8B>\<5C>>along.o<00>m<8B>\<00>and.o<11><>\<5C><>b asctime.o<11><>\M<> aslax1.o<11><>\X<><00>aslax2.o<11><>\<5C><><00>aslax3.o<11><>\<5C><><00>aslax4.o<11><>\b<><00> asleax1.o<11><>\D<><00> asleax2.o<11><>\<10>  asleax3.o<11><>\<1C>L asleax4.o<11><>\h<><00>asmtab.o<11><>\\<5C><00>asr.o<11><>\%<25>Sasrax1.o<11><>\x<><00>asrax2.o<11><>\<00><00>asrax3.o<11><>\<5C><><00>asrax4.o<11><>\<><00> asreax1.o<11><>\v<><00> asreax2.o<11><>\K<>  asreax3.o<11><>\k<>k asreax4.o<11><>\<5C><><00>atexit.o<11><>\<5C><>4atoi.o<11><>\<07><00>axlong.o<00>m<8B>\<5C><00>bneg.o<11><>\<5C><><00>
bpushbsp.o<11><>\X<><00> bsearch.o<11><>\<5C><>+call.o<11><>\<1E><00> callirq.o<11><>\<5C><>
callmain.o<11><>\<5C><>,calloc.o<11><>\<5C><>Wcc65_idiv32by16r16.o<11><>\C<><00>cc65_imul16x16r32.o<11><>\:<3A>occ65_imul8x8r16.o<11><>\<5C><><00> cc65_sincos.o<11><>\C<><00>cc65_udiv32by16r16.o<11><>\<5C>cc65_umul16x16r32.o<11><>\<5C>occ65_umul16x8r32.o<11><>\f|cc65_umul8x8r16.o<11><>\<5C> <00>chdir.o<11><>\| compl.o<11><>\<5C> wcondes.o<11><>\rh
copydata.o<11><>\<5C>+ cprintf.o<11><>\ cputhex.o<11><>\Ecputs.o<00>m<8B>\<5C><00>crc32.o<00>m<8B>\b<00>creat.o<11><>\Z<00>crt0.o<11><>\<00>cscanf.o<11><>\<5C>"<00>ctime.o<11><>\F&uctype.o<11><>\<5C>'<00> cursor.o<11><>\<5C>1<00>dbg.o<00>m<8B>\Y'<06> dbgdasm.o<11><>\3j dbgdump.o<11><>\~B
dbgisram.o<11><>\<5C>G<00> dbgsupp.o<00>m<8B>\_<><00> decax1.o<11><>\jJ<00>decax2.o<11><>\L<00>decax3.o<11><>\<5C>M<00>decax4.o<11><>\zO<00>decax5.o<11><>\*Q<00>decax6.o<11><>\<5C>R<00>decax7.o<11><>\<5C>T<00>decax8.o<11><>\:V<00>decaxy.o<11><>\<5C>W<00>decsp1.o<11><>\<5C>Y<00>decsp2.o<12><>\X[<00>decsp3.o<12><>\ ]<00>decsp4.o<12><>\<5C>^<00>decsp5.o<12><>\q`<00>decsp6.o<12><>\$b<00>decsp7.o<12><>\<5C>c<00>decsp8.o<12><>\<5C>e<00>div.o<00>m<8B>\<5C><>Hdivt.o<00>m<8B>\'<27><00> doesclrscr.o<12><>\=gG em-kernel.o<12><>\<5C>h9 em_commit.o<12><>\<5C>p<00> em_copyfrom.o<12><>\Xt<00> em_copyto.o<12><>\<5C>w<00> em_load.o<12><>\<5C>{t em_map.o<12><>\<04><00>em_pagecount.o<12><>\<5C><><00> em_unload.o<12><>\:<3A>=em_use.o<12><>\w<><00>enter.o<12><>\<0F><00>eq.o<12><>\<5C><><00>errno.o<12><>\<><00>
errormsg.o<12><>\<19><00>
exehdr.o<12><>\<04>Efclose.o<12><>\I<>xfdopen.o<12><>\<5C><>*fgetc.o<12><>\<5C><>T fgetpos.o<12><>\?<3F><00>fgets.o<12><><00>fmisc.o<12><>\<5C><>fopen.o<12><>\<5C><>~ fprintf.o<12><>\<1D> fputc.o<12><>\(<28><00>fputs.o<12><>\<5C><>.fread.o<12><>\<5C><><00>
free.o<12><>\<5C><>Q freopen.o<12><>\<1B>&fscanf.o<12><>\A<>fseek.o<12><>\I<>@ fsetpos.o<12><>\<5C><00>ftell.o<12><>\R_fwrite.o<12><>\<5C> ge.o<12><>\<5C><00> getchar.o<12><>\<5C>(getcpu.o<00>m<8B>\&<26><00>getcwd.o<00>m<8B>\<07>xgetenv.o<12><>\<5C>Ngetopt.o<12><>\<5C><00>gets.o<12><>\<5C>0<00>gmtime.o<00>m<8B>\<> gt.o<12><>\<5C>7<00>icmp.o<12><>\=9<00>idiv32by16r16.o<12><>\#<<00>imul16x16r32.o<12><>\<5C>?<00> imul8x8r16.o<12><>\dCJincax1.o<12><>\<5C>G)incax2.o<12><>\<5C>J<00>incax3.o<12><>\<5C>L`incax5.o<12><>\<5C>M`incax6.o<12><>\GO`incax7.o<12><>\<5C>P`incax8.o<12><>\R`incaxy.o<00>m<8B>\<5C><><00>incsp1.o<12><>\gS<00>incsp2.o<00>m<8B>\<><00>incsp3.o<12><>\<5C>T`incsp4.o<12><>\KV`incsp5.o<12><>\<5C>W`incsp6.o<12><>\ Y`incsp7.o<12><>\kZ`incsp8.o<12><>\<5C>[` inflatemem.o<00>m<8B>\O$ interrupt.o<00>m<8B>\h$5 isalnum.o<12><>\+]<00> isalpha.o<12><>\<5C>_<00> isblank.o<12><>\wb<00> iscntrl.o<12><>\e<00> isdigit.o<12><>\<5C>g<00> isgraph.o<12><>\ij<00> islower.o<12><>\0m<00> isprint.o<12><>\<5C>o<00> ispunct.o<12><>\<5C>r<00> isspace.o<12><>\Nu<00> isupper.o<12><>\<5C>w<00>
isxdigit.o<12><>\<5C>z<00>itoa.o<12><>\B}jjmpvec.o<00>m<8B>\<5C>)6 joy-kernel.o<00>m<8B>\<5C>*<00> joy_count.o<00>m<8B>\<5C>2<00>
joy_load.o<00>m<8B>\<5C>5m
joy_read.o<00>m<8B>\><00> joy_unload.o<00>m<8B>\<5C>@<00>labs.o<12><>\<5C><><00>ladd.o<12><>\R<>0laddeq.o<00>m<8B>\<5C>F
laddeqsp.o<12><>\<5C><><00>land.o<00>m<8B>\<5C>I<00>lasr.o<12><>\<1E>Nlbneg.o<12><>\l<><00>lcmp.o<12><>\A<>@lcompl.o<12><>\<5C><><00>ldai.o<12><>\k<><00> ldau0sp.o<12><>\<14>aldaui.o<12><>\u<><00> ldauisp.o<12><>\<5C><><00>ldaxi.o<12><>\<5C><><00>ldaxsp.o<12><>\<5C><><00>ldeaxi.o<12><>\b<>+
ldeaxysp.o<12><>\<5C><> ldec.o<00>m<8B>\7Lldiv.o<12><>\<5C><>}le.o<12><>\<16><00> leaaxsp.o<12><><00>leave.o<00>m<8B>\SN<00>leq.o<12><>\<5C><>llge.o<12><>\<07>llgt.o<12><>\s<>llinc.o<12><><00>lle.o<12><>\<5C><>lllt.o<12><>\,<2C>glmod.o<00>m<8B>\Q<00>lmul.o<00>m<8B>\<5C>S lne.o<12><>\<5C><>llneg.o<12><>\<5C><>locale.o<12><>\<16>t localtime.o<00>m<8B>\<5C>X<00> longjmp.o<00>m<8B>\<5C>_<00>lor.o<00>m<8B>\<5C>b<00>lpop.o<00>m<8B>\Ue<00>lpush.o<00>m<8B>\Ng<00>lrsub.o<00>m<8B>\<5C>i<00>lsave.o<00>m<8B>\<5C>l}lshelp.o<12><>\<5C><>lshl.o<12><>\<5C><>Glshr.o<12><>\<5C><>-lsub.o<00>m<8B>\$o0lsubeq.o<00>m<8B>\Ts
lsubeqsp.o<12><>\<00><00>lt.o<12><>\<5C><><00>ltest.o<12><>\n<><00>ltoa.o<00>m<8B>\lv2ludiv.o<00>m<8B>\<5C>}luge.o<12><>\N<>olugt.o<12><>\<5C><>olule.o<12><>\,<2C>olult.o<12><>\<5C><>jlumod.o<00>m<8B>\<5C><>dlxor.o<00>m<8B>\<1A><00>
mainargs.o<12><>\<05><00>
makebool.o<00>m<8B><00>malloc.o<12><>\<5C><><00> memchr.o<00>m<8B>\c<>Mmemcmp.o<00>m<8B>\<5C><>zmemcpy.o<00>m<8B>\*<2A><00> memmove.o<00>m<8B>\<13>8memset.o<12><>\g<><00>mkdir.o<12><>\b<>zmktime.o<00>m<8B>\K<>j*mod.o<00>m<8B>\<5C><> modfree.o<12><>\<5C><>7 modload.o<12><>\<13><00>mouse-kernel.o<00>m<8B>\<5C><>dmouse_buttons.o<00>m<8B>\7<><00>mouse_getbox.o<00>m<8B>\<5C><><00>mouse_geterrormsg.o<00>m<8B>\Z<><00> mouse_hide.o<00>m<8B>\<13><00> mouse_info.o<00>m<8B>\<5C><><00> mouse_ioctl.o<00>m<8B>\<5C><><00> mouse_load.o<00>m<8B>\<5C><00> mouse_move.o<00>m<8B>\ <00> mouse_pos.o<00>m<8B>\S<00>mouse_setbox.o<00>m<8B>\0<00> mouse_show.o<00>m<8B>\<5C>!<00>mouse_unload.o<00>m<8B>\<5C>(<00>mul.o<00>m<8B>\[1<00>mul8.o<00>m<8B>\95<00> mulax10.o<12><>\<5C> 3mulax3.o<00>m<8B>\<5C>8<00>mulax5.o<00>m<8B>\<5C>: mulax6.o<12><>\ mulax7.o<00>m<8B>\<5C><6mulax9.o<00>m<8B>\?+ne.o<12><>\' <00>neg.o<00>m<8B>\FA<00>or.o<00>m<8B>\<5C>B<00>
paravirt.o<12><>\<5C> <00>perror.o<12><>\| <00> pmemalign.o<12><>\! <00>popa.o<12><>\<5C>'  popsreg.o<12><>\<5C>* Qprintf.o<12><>\=. Cpush1.o<12><>\<5C>1 ^push2.o<12><>\<5C>2 ^push3.o<12><>\<4 ^push4.o<12><>\<5C>5 ^push5.o<12><>\<5C>6 ^push6.o<12><>\V8 ^push7.o<12><>\<5C>9 ^pusha.o<12><>\; <00> pushaff.o<12><>\<5C>> bpushax.o<12><>\ @ <pushb.o<12><>\EB <00> pushbsp.o<12><>\<5C>E <00>pushc0.o<12><>\oG _pushc1.o<12><>\<5C>H _pushc2.o<12><>\-J _
pushlysp.o<12><>\<5C>K pushw.o<12><>\<5C>M <00> pushwsp.o<12><>\<5C>O <00> putchar.o<12><>\0R <00>putenv.o<12><>\<5C>S <00>puts.o<12><>\x\
qsort.o<12><>\<5C>a kraise.o<12><>\<5C>y [rand.o<00>m<8B>\<5C>DS realloc.o<12><>\H} <00> regswap.o<12><>\$<24> <00>
regswap1.o<12><>\#<23> <00>
regswap2.o<12><>remove.o<12><>\<5C><> <00>rename.o<12><>\o<> <00> return0.o<12><>\<5C><> U return1.o<12><>\F<> Vrewind.o<12><>\<5C><> <00>rmdir.o<12><>\T<> zrsub.o<00>m<8B>\Hscanf.o<12><>\Κ B scrsize.o<00>m<8B>\%J searchenv.o<12><>\<10> O ser-kernel.o<00>m<8B>\6L<00> ser_close.o<00>m<8B>\<5C>X<00> ser_get.o<00>m<8B>\<5C>_  ser_ioctl.o<00>m<8B>\<5C>fA
ser_load.o<00>m<8B>\'na
ser_open.o<00>m<8B>\<5C>{! ser_put.o<00>m<8B>\<5C><><00> ser_status.o<00>m<8B>\z<># ser_unload.o<00>m<8B>\<5C><>W
setjmp.o<12><>\_<> <00>shelp.o<00>m<8B>\<5C><>Xshl.o<12><>\<5C><> <00>shr.o<12><>\<5C><> shrax1.o<12><>\٫ }shrax2.o<12><>\V<> <00>shrax3.o<12><>\<5C><> <00>shrax4.o<12><>\<5C><> <00> shreax1.o<12><>\i<> <00> shreax2.o<12><>\<1D> <00> shreax3.o<12><>\<11> 4 shreax4.o<12><>\E<> <00>signal.o<12><>\!<21> E
sigtable.o<12><>\f<> Isleep.o<12><>\<5C><> <00>
snprintf.o<12><>\O<>  sprintf.o<12><>\d<> sscanf.o<12><>\v<> 
staspidx.o<12><>\~<7E> staxsp.o<12><>\<5C><> <00> staxspi.o<00>m<8B>\L<>G steaxsp.o<12><>\O<> 
steaxspi.o<00>m<8B>\<5C><><00>stkchk.o<12><>\n<> <00>strcat.o<00>m<8B>\R<>Kstrchr.o<00>m<8B>\<5C><><00>strcmp.o<00>m<8B>\<5C><><00> strcoll.o<12><>\M<> 8strcpy.o<12><>\<5C><> b strcspn.o<00>m<8B>\<1E>Estrdup.o<12><>\<5C><> 
strerror.o<12><>\<5C><> <00>
strftime.o<00>m<8B>\c<>FC stricmp.o<00>m<8B>\<5C><><00>strlen.o<00>m<8B>\W<><00>
strlower.o<12><>\o<> <00> strncat.o<00>m<8B>\R<>A strncmp.o<00>m<8B>\<5C><><00> strncpy.o<00>m<8B>\<00>
strnicmp.o<00>m<8B>\<5C><00>
stroserr.o<12><>\9<> J strpbrk.o<00>m<8B>\} <00> strqtok.o<12><>\<5C><> 
strrchr.o<00>m<8B>\ strspn.o<00>m<8B>\Cstrstr.o<00>m<8B>\\<00> strtoimax.o<12><>\<5C><> 7strtok.o<12><>\<5C><> <00>strtol.o<12><>\<5C><> u strtoul.o<12><>\

 strtoumax.o<12><>\-
8
strupper.o<12><>\M.
<00> strxfrm.o<12><>\2
<00>sub.o<12><>\<5C>4
} subeqsp.o<12><>\h8
subysp.o<12><>\m:
<00>swap.o<00>m<8B>\<5C>system.o<12><>\ <
<00> tgi-kernel.o<00>m<8B>\<5C><00> tgi_arc.o<12><>\<5C>>

tgi_bar.o<00>m<8B>\v1<00> tgi_circle.o<00>m<8B>\DG tgi_clear.o<00>m<8B>\KP tgi_clippedline.o<00>m<8B>\[\<00> tgi_curtoxy.o<00>m<8B>\
{<00>
tgi_done.o<00>m<8B>\<5C><><00> tgi_ellipse.o<00>m<8B>\<5C><> tgi_free_vectorfont.o<12><>\<5C>H
Ftgi_getaspectratio.o<00>m<8B>\<0E>O tgi_getcolor.o<00>m<8B>\]<5D>= tgi_getcolorcount.o<00>m<8B>\<5C><>C tgi_getdefpalette.o<00>m<8B>\<5C><> tgi_geterror.o<00>m<8B>\<5C><><00> tgi_geterrormsg.o<00>m<8B>\<5C><><00>tgi_getmaxcolor.o<00>m<8B>\e<>U tgi_getmaxx.o<00>m<8B>\<5C><>G tgi_getmaxy.o<00>m<8B>\ G tgi_getpagecount.o<00>m<8B>\HA tgi_getpalette.o<00>m<8B>\<5C>! tgi_getpixel.o<00>m<8B>\<5C>-z tgi_getset.o<00>m<8B>\:< tgi_gettextheight.o<00>m<8C>\TGstgi_gettextwidth.o<00>m<8C>\<5C>V: tgi_getxres.o<00>m<8C>\hH tgi_getyres.o<00>m<8C>\ItH tgi_gotoxy.o<00>m<8C>\<5C><><00> tgi_imulround.o<12><>\<5C>I
b
tgi_init.o<00>m<8C>\)<29>tgi_install_vectorfont.o<00>m<8C>\7<>X tgi_ioctl.o<00>m<8C>\<5C><><00>
tgi_line.o<00>m<8C>\<10><00> tgi_linepop.o<00>m<8C>\<5C><><00> tgi_lineto.o<00>m<8C>\<5C><><00>
tgi_load.o<00>m<8C>\}<7D>vtgi_load_vectorfont.o<12><>\aM
I tgi_outcode.o<00>m<8C>\<5C><>> tgi_outtext.o<00>m<8C>\1<><00>tgi_outtextxy.o<00>m<8C>\<5C>B tgi_pieslice.o<12><>\<5C>Y
<00> tgi_popxy.o<00>m<8C>\<00> tgi_popxy2.o<00>m<8C>\<5C>+<00> tgi_setaspectratio.o<00>m<8C>\S8U tgi_setcolor.o<00>m<8C>\<5C>D<00> tgi_setdrawpage.o<00>m<8C>\)Qo tgi_setpalette.o<00>m<8C>\<5C>]f tgi_setpixel.o<00>m<8C>\<5C>i` tgi_settextdir.o<00>m<8C>\^v: tgi_settextstyle.o<00>m<8C>\<5C><><00>tgi_setviewpage.o<00>m<8C>\j<>o tgi_unload.o<00>m<8C>Vtgi_vectorchar.o<00>m<8C>\/<2F><00>time.o<00>m<8C>\<5C><><00>
timezone.o<12><>\F`
% tolower.o<12><>\kb
<00>tosint.o<12><>\'d
U toslong.o<12><>\|g
<00> toupper.o<12><>\l
<00>udiv.o<00>m<8C>\\<5C>judiv32by16r16.o<00>m<8C>\<5C><><00>uge.o<12><>\<5C>m
<00>ugt.o<12><>\<5C>o
<00>ule.o<12><>\Oq
<00>ult.o<12><>\s
<00>umod.o<00>m<8C>\<5C><>umul16x16r32.o<00>m<8C>\<5C><>
 umul8x16r24.o<00>m<8C>\<5C><>  umul8x8r16.o<12><>\<5C>t
Auname.o<12><>\w
 uncompress.o<13><>\<5C>x
<00>
ungetc.o<13><>\s<>
<00>unlink.o<13><>\X<>
6 utscopy.o<13><>\<5C><>
M
vcprintf.o<00>m<8C>\<5C><><00> vcscanf.o<13><>
<00>
vfprintf.o<13><>\<5C><>
<00> vfscanf.o<00>m<8C>\<5C><>C vprintf.o<13><>\j<>
ovscanf.o<13><>
 vsnprintf.o<13><>\<5C><>
<00>
vsprintf.o<13><>\<5C><>
<00> vsscanf.o<13><>
<00>xor.o<00>m<8C>\<14><00> zerobss.o<13><>\v<>
<00>
zeropage.o<13><>\<10>
<00>