; ================================================== ; 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