vc-3_system_interrupt_table
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| vc-3_system_interrupt_table [2026/01/09 13:00] – appledog | vc-3_system_interrupt_table [2026/01/22 22:19] (current) – appledog | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| == Introduction | == Introduction | ||
| - | I guess this interrupt system is part of the KERNAL, so should be more " | + | I guess this interrupt system is part of the KERNAL, so should be more " |
| + | |||
| + | == 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 such as char can go in AL. Otherwise, inputs can go in B. | ||
| + | * Pointers: ELM, ELD | ||
| + | |||
| + | === Returns | ||
| + | * Values: B, and C if needed | ||
| + | * Status: Carry flag | ||
| + | * Pointers: ELM, ELD (see calling convention) | ||
| + | |||
| + | === Example Code | ||
| + | <codify armasm> | ||
| + | LDAL #' | ||
| + | LDB #1234 | ||
| + | LDAH $11 ; VAR_SET | ||
| + | INT $05 | ||
| + | |||
| + | LDELD @string | ||
| + | LDAH $62 ; IO_GETNUM | ||
| + | INT $05 | ||
| + | ; B has parsed number | ||
| + | </ | ||
| + | |||
| + | == INT 05h - Pao Alto Tiny Basic | ||
| + | === Memory Map | ||
| + | ; PATB System Memory ($01ED00-$01EDFF, | ||
| + | .equ PATB_VARIABLES | ||
| + | .equ PATB_EXPR_STACK | ||
| + | .equ PATB_EXPR_SP | ||
| + | .equ PATB_GOSUB_STACK | ||
| + | .equ PATB_GOSUB_SP | ||
| + | .equ PATB_FOR_STACK | ||
| + | .equ PATB_FOR_SP | ||
| + | .equ PATB_PROGRAM_PTR | ||
| + | .equ PATB_IL_PTR | ||
| + | .equ PATB_INPUT_PTR | ||
| + | .equ PATB_RANDSEED | ||
| + | .equ PATB_STATUS | ||
| + | ; Bit 0: Running (1) / Stopped (0) | ||
| + | ; Bit 1: Error flag | ||
| + | ; Bit 2: Break flag | ||
| + | .equ PATB_PROGRAM_BASE | ||
| + | .equ PATB_PROGRAM_END | ||
| + | |||
| + | === Function Dispatch | ||
| + | ; === EXECUTION CONTROL (AH=$00-$0F) === | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === VARIABLE MANAGEMENT (AH=$10-$1F) === | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === EXPRESSION STACK (AH=$20-$2F) === | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === PROGRAM LINE MANAGEMENT (AH=$30-$3F) === | ||
| + | ; $30-$37: Search/ | ||
| + | ; $30: LINE_FIND | ||
| + | ; $31: LINE_NEXT | ||
| + | ; $32: LINE_FIND_REVERSE | ||
| + | ; $33: LINE_PREV | ||
| + | ; $36-$39: Modify | ||
| + | ; $36: LINE_INSERT | ||
| + | ; $37: LINE_DELETE | ||
| + | ; $38: LINE_REMOVE_SPACE | ||
| + | ; $39: LINE_MAKE_SPACE | ||
| + | ; $3A-$3F: Utility | ||
| + | ; $3A: LINE_FIRST | ||
| + | ; $3B: LINE_CLEAR_ALL | ||
| + | ; $3C: LINE_COUNT | ||
| + | ; $3F: PROGRAM_END | ||
| + | ; | ||
| + | ; === GOSUB/ | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === FOR/NEXT STACK (AH=$50-$5F) === | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === INPUT/ | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === STRING/ | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === ARITHMETIC/ | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === COMPARISON HELPERS (AH=$A0-$AF) === | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === ERROR HANDLING (AH=$B0-$BF) === | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; === IL INTERPRETER CORE (AH=$F0-$FF) === | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; ============================================================================ | ||
| + | |||
| == INT 10h - Video Services | == INT 10h - Video Services | ||
| - | ; ============================================================================ | + | |
| - | ; INT 10h - VIDEO SERVICES | + | ; INT 10h - VIDEO SERVICES |
| - | ; Stellar BIOS Video interrupt handler | + | ; Stellar BIOS Video interrupt handler |
| - | ; ============================================================================ | + | ; ============================================================================ |
| - | ; Function dispatch via AH register: | + | ; Function dispatch via AH register: |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; | + | ; |
| - | ; ============================================================================ | + | ; ============================================================================ |
| === AH=00h: Set video mode | === AH=00h: Set video mode | ||
vc-3_system_interrupt_table.1767963615.txt.gz · Last modified: by appledog
