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/21 01:44] – 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 | == 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. | 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: | + | === Parameters |
| * Function number: AH | * Function number: AH | ||
| * Small values such as char can go in AL. Otherwise, inputs can go in B. | * Small values such as char can go in AL. Otherwise, inputs can go in B. | ||
| * Pointers: ELM, ELD | * Pointers: ELM, ELD | ||
| - | Returns: | + | === Returns |
| * Values: B, and C if needed | * Values: B, and C if needed | ||
| * Status: Carry flag | * Status: Carry flag | ||
| * Pointers: ELM, ELD (see calling convention) | * Pointers: ELM, ELD (see calling convention) | ||
| - | Example Code: | + | === Example Code |
| <codify armasm> | <codify armasm> | ||
| LDAL #' | LDAL #' | ||
| Line 30: | Line 30: | ||
| ; B has parsed number | ; 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 | ||
vc-3_system_interrupt_table.1768959860.txt.gz · Last modified: by appledog
