This is an old revision of the document!
Table of Contents
VC-3 System Interrupt Table
The VC-3 is a system, running on the SD-8516.
Introduction
I guess this interrupt system is part of the KERNAL, so should be more “VC-3” as it is system software. What follows is a simple list of the interrupt, what it does, it's calling parameters and it's return codes. I guess this should be called “Stellar BIOS V1”.
Calling Convention
Each INT subsystem has it's own convention. However, the INT 05h system was done first so it represents a general convention you can expect going forward.
Parameters: - Function number: `AH` - Small values: `AL`, `B`, `C` - Pointers: `ELM`, `ELD`, `ELX` (EL-group)
Returns: - Values: `B` (or `A` if needed) - Status: Carry flag - Updated pointers: Same register (ELM/ELD)
Example Code:
LDAL #'A'
LDB #1234
LDAH $11 ; VAR_SET
INT $05
LDELD @string
LDAH $62 ; IO_GETNUM
INT $05
; B has parsed number
INT 10h - Video Services
; ============================================================================ ; INT 10h - VIDEO SERVICES ; Stellar BIOS Video interrupt handler ; ============================================================================ ; Function dispatch via AH register: ; AH=00h: Set video mode ; AH=01h: Set cursor shape (reserved) ; AH=02h: Set cursor position ; AH=03h: Get cursor position ; AH=0Eh: Write character at cursor (teletype) ; AH=0Fh: Get current video mode ; AH=13h: Write string at cursor ; AH=14h: Scroll screen up ; AH=15h: Clear screen ; AH=16h: Get video parameters (rows, cols) ; ============================================================================
AH=00h: Set video mode
- Returns: AL is 00 on success, 01 if the mode failed to init.
Available modes:
- Mode 0: 22×23 console
- Mode 1: 40×25 console
- Mode 2: 80×25 console
- Mode 3: still thinking, graphics, or superterminal? 1280×800 “128×40“font via 10×20 charset??
AH=01h: Set cursor shape
AH=02h: Set cursor position
AH=03h: Get cursor position
AH=0Eh: Write character (teletype)
AH=13h: Write string
INT 11h - Keyboard Services
AH=00h: Read character (non-blocking)
- returns character code in AL and keyboard flags in BL.
AH=01h: Read character (blocking)
- returns character code in AL, keyboard flags in BL, and time spent waiting in ms in C
AH=02h: Get keyboard flags
- returns keyboard flags in AL.
AH=03h: Check if key available
- returns the number of keys waiting in AL. I.E. 0=no keys available, 1+= has keys waiting.
