this is a work in progress. it is incomplete and contains errors. please send questions or improvements to: admin@extropicstudios.com

Zero Page

Addr Description
$20 Leftmost column of the text window.
$21 Width of the text window.
$22 Top line of the text window.
$23 Bottom line of the screen.
$24 Horizontal cursor position for 40 column display. When the 80 column display is active, use $057B.
$25 Vertical cursor postion. Must be changed by calling VTAB.
$28 Lo byte of address calculated by BASCALC ($FBC1), which calculates memory addresses for the 80 column display
$29 Hi byte of address calculated by BASCALC ($FBC1), which calculates memory addresses for the 80 column display
$32 Inverse flag for character display. If the value of the character being printed is >= $A0, it is ANDed with the value here before being displayed. $FF prints characters normally, $3F inverts characters, and $7F prints flashing characters.
$33 Prompt character to be used by GETLN.
$36 Character Output Switch. Holds the starting address of the routine to be used for single-character output (normally COUT1, $FDF0).
$37
$38 Keyboard Input Switch. Holds the starting address of the routine to be used for single-character input (normally KEYIN, $FD1B).
$39
$4E Random number generated after a call to KEYIN.
$4F

Hardware Page ($C0)

Addr Name Read Write
$C000 80STORE_OFF -
$C001 80STORE_ON -
$C004 RAMWRT_MAIN -
$C005 RAMWRT_AUX -
$C00C 80COL_OFF -
$C00D 80COL_ON -
$C00E ALTCHAR_OFF -
$C00F ALTCHAR_ON -
$C014 RDRAMWRT -
$C018 RD80STORE -
$C01A RDTEXT -
$C01C RDPAGE2 -
$C01D RDHIRES -
$C01E RDALTCHAR -
$C01F RD80COL -
$C030 - Toggles the speaker -
$C050 TEXT_OFF Set text mode off
$C051 TEXT_ON Set text mode on
$C052 MIXED_OFF Set mixed mode off
$C053 MIXED_ON Set mixed mode on
$C054 PAGE2_OFF -
$C055 PAGE2_ON -
$C056 HIRES_OFF -
$C057 HIRES_ON -
$C05E DHIRES_ON -
$C05F DHIRES_OFF -
$C07E IOUDIS_ON / RDIOUDIS 1 if IOUDIS is on, 0 if it is off Set IOUDIS on
$C07F IOUDIS_OFF / RDDHIRES 1 if DHIRES is on, 0 if it is off Set IOUDIS off
$C07F IOUDIS_OFF -

ROM Routines

Addr Name Description
$C412 SETMOUSE
$C413 SERVEMOUSE
$C414 READMOUSE
$C415 CLEARMOUSE
$C416 POSMOUSE
$C417 CLAMPMOUSE
$C418 HOMEMOUSE
$C419 INITMOUSE
$F800 PLOT Plots a single low-resolution block on the screen.
$F819 HLINE Draws a horizontal line of blocks.
$F828 VLINE Draws a vertical line of low-resolution blocks.
$F832 CLRSCR Clears the low-resolution screen.
$F836 CLRTOP Clears the top 40 lines of the low-resolution screen.
$F864 SETCOL Sets the color for plotting in low res.
$F871 SCRN Reads color value of a low res block on the screen.
$F941 PRTAX Prints A and X in hex.
$F94A PRBL2 Sends 1-256 blank spaces to the output device whose address is in CSW.
$FA47 NEWBRK
$FA62 RESET
$FB1E PREAD
$FBC1 BASCALC Calculates the base address in video memory for the line offset stored in A. The address is stored in $28/$29.
$FB5B TABV
$FB6F SETPWRC
$FBB3 Machine identification byte
$FBC0 Machine identification byte
$FBDD BELL1 Generates a 1kz tone for 0.1 seconds. Scrambles A and X.
$FC24 VTABZ Sets vertical cursor position.
$FC42 CLREOP Clears to bottom of window.
$FC58 HOME Clears the window and puts cursor in upper left corner of window.
$FC9C CLREOL Clears to end of line from current cursor position.
$FC9E CLEOLZ Clears to end of line using Y as cursor position.
$FCA8 WAIT Delays for time specified by A.
$FD0C RDKEY The standard character input subroutine.
$FD0C RDCHAR Gets an input character or escape code.
$FD1B KEYIN
$FD6A GETLN Repeatedly calls RDKEY, storing the characters in the input buffer (page $02). Characters are echoed to the screen as they are typed. The ASCII character stored in $33 is used as a prompt.
$FD67 GETLNZ Gets an input line with preceding carriage return.
$FD6F GETLN1 Same as GETLN but does not display a prompt.
$FD8B CROUT1 Clears to end of line, then generates a carriage return character.
$FD8E CROUT Generates a carriage return character.
$FDE3 PRHEX Prints lower nibble of A as hex number.
$FDED COUT Calls the output routine stored in CSW (normally COUT1)
$FDDA PRBYTE Prints a hexadecimal byte.
$FDF0 COUT1 Displays a character on the screen.
$FE2C MOVE Copies memory elsewhere.
$FE36 VERIFY Compares two blocks of memory.
$FF2D PRERR Sends ERR and CTL-G to the output routine in CSW.
$FF3A BELL Writes a bell control character to the current output device. After running, $87 will be stored in A.
$FF3F IOREST Loads ($45-$49) into registers.
$FF4A IOSAVE Stores (A,X,Y,P,S) at $45-$49.
$FF58 IORTS Location of known RTS instruction.
$FF69 Standard Monitor entry point.