75 lines
2.3 KiB
PHP
75 lines
2.3 KiB
PHP
; ==================================================
|
|
; Orion BASIC v2.4 for Orion-128 computer
|
|
;
|
|
; Helper routines for BASIC
|
|
; in safe, unswitheable RAM area
|
|
; Disassembled by Romychs @ 2026-10-23
|
|
; ==================================================
|
|
|
|
; --------------------------------------------------
|
|
; Inp: A - RAM-page
|
|
; C - AND mask
|
|
; --------------------------------------------------
|
|
ORI_SAFE_SET_ATTR EQU 0xF300
|
|
|
|
; --------------------------------------------------
|
|
; Inp: A - RAM-page
|
|
; B - OR mask
|
|
; C - AND mask
|
|
; HL - address in ext RAM
|
|
; Out: B
|
|
; --------------------------------------------------
|
|
ORI_SCR_ANDOR EQU 0xF310
|
|
|
|
ORI_SCR_OP2_1 EQU 0xF319
|
|
|
|
; --------------------------------------------------
|
|
; Mask by OR hi 4 bit of extended RAM byte:
|
|
; RAM[A][HL] = RAM[A][HL] AND 0xF0 OR B
|
|
; Inp: A - memory page
|
|
; B - mask
|
|
; HL - address in extended RAM
|
|
; --------------------------------------------------
|
|
ORI_MSK_HI_OR EQU 0xF31F
|
|
|
|
CLRCLNXT EQU 0xF32C
|
|
CURCATR EQU 0xF32F
|
|
CLRCLUP EQU 0xF330
|
|
|
|
; --------------------------------------------------
|
|
; Fill screen attributes
|
|
; Inp: A - memory page
|
|
; C - rows, B - columns
|
|
; HL - start address
|
|
; --------------------------------------------------
|
|
ORI_SCR_FA EQU 0xF32A
|
|
|
|
CLRCLRT EQU 0xF341
|
|
|
|
; Cursor attribute mirror in safe RAM (set by CUR_ATTR_SPLIT,
|
|
; used by OR_SAFE_SET_ATTR to OR attribute bits into pixel bytes)
|
|
CURATR_SAFE EQU 0xF349
|
|
|
|
; Hi pixel color attribute bit (bit 5 of CURCATR), stored as 0/0xFF.
|
|
; Set by CUR_ATTR_SPLIT; OR'ed into pixel bytes when plotting in
|
|
; 4-color mode (PSET4C / ORI_SAFE_SET_ATTR); tested by CLS.
|
|
; Sibling of CURATR_SAFE (bit 4) - together they form the 2-bit pixel color.
|
|
PSET_ATTR_A1 EQU 0xF34A
|
|
|
|
; --------------------------------------------------
|
|
; Output char for specified memory page
|
|
; Inp: A - memory page
|
|
; C - character code
|
|
; --------------------------------------------------
|
|
ORI_MON_TV2 EQU 0xF34B
|
|
|
|
; --------------------------------------------------
|
|
; Buffer for filename (12 bytes)
|
|
; --------------------------------------------------
|
|
FNAMBUF EQU 0xF354
|
|
|
|
; --------------------------------------------------
|
|
; Stack for safe call MONITOR subroutines
|
|
; when one of extended RAM-page active
|
|
; --------------------------------------------------
|
|
SAFESTK EQU 0xF3C0 |