Name |
Address |
Description
|
BOOT |
$00:1000 |
Cold boot routine
|
PUTC |
$00:1018 |
Print a character to the currently selected channel
Register |
Width |
Contents
|
A |
8 |
ASCII code of the character to print
|
|
PUTS |
$00:101C |
Print a null-terminated ASCII string to the currently selected channel
Register |
Width |
Contents
|
B |
8 |
Bank containing the data to print
|
X |
16 |
Address within that bank of the first character to print
|
|
GETSCANCODE |
$00:1028 |
[v0.4] Get the next scancode from the keyboard (A = scancode, 0 if none available). See C256 Keyboard for details.
|
GETLOCKS |
$00:102C |
[v0.4] Get the state of the lock keys on the keyboard (A[2] = CAPS, A[1] = NUM, A[0] = SCROLL). See C256 Keyboard for details.
|
SETIN |
$00:1038 |
Set the current input channel used by the GET subroutines
Register |
Width |
Contents
|
A |
8 |
Input channel to use
- 0 = Keyboard
- 1 = COM1 (external serial)
- 2 = COM2 (internal serial)
|
|
SETOUT |
$00:103C |
Set the current output channel used by the PUT subroutines
Register |
Width |
Contents
|
A |
8 |
Input channel to use
- 0 = Screen
- 1 = COM1 (external serial)
- 2 = COM2 (internal serial)
|
|
GETCHW |
$00:104C |
Get a character from the input channel. Waits until data received. A=0 and Carry=1 if no data is waiting
|
GETCHE |
$00:1050 |
Get a character from the input channel and echo to the screen. Wait if data is not ready.
|
PRINTCR |
$00:106C |
Print Carriage Return
|
PRINTH |
$00:1078 |
Print hex value in memory.
Register |
Width |
Contents
|
B |
8 |
Bank containing the data to print
|
X |
16 |
Address within that bank of the last byte to print
|
Y |
16 |
Number of bytes to print
|
|
PRINTAH |
$00:1080 |
Prints hex value in A. Printed value is 2 wide if M flag is 1, 4 wide if M
|
LOCATE |
$00:1084 |
Move the cursor to a new position on the screen.
Register |
Width |
Contents
|
X |
16 |
The column for the cursor
|
Y |
16 |
The row for the cursor
|
|
CSRRIGHT |
$00:1090 |
Move the cursor one position to the right
|
CSRLEFT |
$00:1094 |
Move the cursor one position to the left
|
CSRUP |
$00:1098 |
Move the cursor up one row
|
CSRDOWN |
$00:109C |
Move the cursor down one row
|
CSRHOME |
$00:10A0 |
Move the cursor to the upper-left corner
|
SCROLLUP |
$00:10A4 |
Scroll the screen up one line. Creates an empty line at the bottom.
|
CLRSCREEN |
$00:10B0 |
Clear the screen
|
INITCHLUT |
$00:10B4 |
Init character look-up table
|
INITSUPERIO |
$00:10B8 |
Init Super-IO chip
|
INITKEYBOARD |
$00:10BC |
Init keyboard
|
INITRTC |
$00:10C0 |
Init Real-Time Clock
|
INITCURSOR |
$00:10C4 |
Init the Cursors registers
|
INITFONTSET |
$00:10C8 |
Init the Internal FONT Memory
|
INITGAMMATABLE |
$00:10CC |
Init the RGB GAMMA Look Up Table
|
INITALLLUT |
$00:10D0 |
Init the Graphic Engine (Bitmap/Tile/Sprites) LUT
|
INITVKYTXTMODE |
$00:10D4 |
Init the Text Mode @ Reset Time
|
INITVKYGRPMODE |
$00:10D8 |
Init the Basic Registers for the Graphic Mode
|
F_OPEN |
$00:10F0 |
Open a file for reading/writing. DOS_FD_PTR points to a file descriptor for the file.
|
F_CREATE |
$00:10F4 |
Create a new file and write its first cluster. DOS_FD_PTR points to a file descriptor for the file.
|
F_CLOSE |
$00:10F8 |
Close a file (make sure last cluster is written). DOS_FD_PTR points to a file descriptor for the file.
|
F_WRITE |
$00:10FC |
Write the current cluster to the file. DOS_FD_PTR points to a file descriptor for the file.
|
F_READ |
$00:1100 |
Read the next cluster from the file. DOS_FD_PTR points to a file descriptor for the file.
|
F_DELETE |
$00:1104 |
Delete a file / directory. DOS_PATH_BUFF = a buffer containing the full path to the file (NULL terminated).
|
F_DIROPEN |
$00:1108 |
Open a directory and seek the first directory entry. NOTE: currently only works with the root directory.
Variable |
Direction |
Contents
|
DOS_FD_PTR |
IN |
Points to a file descriptor for the path to lookup. NOTE: currently unused.
|
DOS_DIR_PTR |
OUT |
Pointer to the first FAT directory entry in that directory.
|
|
F_DIRNEXT |
$00:110C |
seek to the next directory of an open directory
Variable |
Direction |
Contents
|
DOS_DIR_PTR |
IN |
Pointer to the current FAT directory entry.
|
DOS_DIR_PTR |
OUT |
Pointer to the next FAT directory entry.
|
|
F_DIRREAD |
$00:1110 |
Read the directory entry for the specified file
Variable |
Direction |
Contents
|
DOS_PATH_BUFF |
IN |
The buffer containing the path to the file to lookup.
|
DOS_DIR_PTR |
OUT |
Pointer to the FAT directory entry for that file.
|
|
F_DIRWRITE |
$00:1114 |
Write any changes in the current directory cluster back to the drive
|
F_LOAD |
$00:1118 |
load a binary file into memory, supports multiple file formats
Variable |
Contents
|
DOS_FD_PTR |
Points to a file descriptor for the file to lookup.
|
DOS_DST_PTR |
Pointer to the location to load the file (any value > $3F:FFFF to load the file where the file specifies).
|
|
F_SAVE |
$00:111C |
Save memory to a binary file
Variable |
Contents
|
DOS_FD_PTR |
Points to a file descriptor for the file to create.
|
DOS_SRC_PTR |
Address of the first byte to save.
|
DOS_END_PTR |
Address of the last byte to save.
|
|
CMDBLOCK |
$00:1120 |
Send a command to a block device.
Variable |
Contents
|
BIOS_DEV |
The target device
|
X |
The number of the command to send. Command numbers are device dependent, but typical examples are: 1 = Turn on spindle motor, 2 = Turn off spindle motor, 3 = Recalibrate.
|
|
F_RUN |
$00:1124 |
Load and run a binary file from a block device. DOS_RUN_PARAMS is a pointer to the ASCIIZ string specifying the path of the file to execute and any parameters to it.
|
F_MOUNT |
$00:1128 |
Mount the designated block device. BIOS_DEV is the device number to mount.
|
F_COPY |
$00:1130 |
Copy a file. DOS_STR1_PTR is the path of the source file to copy. DOS_STR2_PTR is the path of the destination.
|
F_ALLOCFD |
$00:1134 |
Allocate a file descriptor from the kernel. DOS_FD_PTR will point to the file descriptor allocated, if one is available. There
is a limit of 8 file descriptors that can be allocated at any one time.
|
F_FREEFD |
$00:1138 |
Return a file descriptor to the kernel. DOS_FD_PTR points to the file descriptor to return to the kernel. It must have been
allocated previously through F_ALLOCFD.
|
TESTBREAK |
$00:113C |
[v0.4] Check if BREAK was pressed recently by the user (C is set if true, clear if false)
|
SETTABLE |
$00:1140 |
[v0.4] Set the keyboard scan code -> character translation tables (B:X points to the new tables). See C256 Keyboard for details.
|
READVRAM |
$00:1144 |
[v0.4] Read a byte from video RAM at B:X. Result in A. C clear on success, set on failure (timeout).
|
SETHANDLER |
$00:1148 |
[v0.4] Set the handler for the interrupt # in A (A[7..4] = block number, A[3..0] = interrupt) to the FAR routine at Y:X
|
DELAY |
$00:114C |
[v0.4] Wait at least Y:X ticks of the system clock.
|