Files
2026-10-24 09:44:21 +03:00

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