107 lines
2.1 KiB
ObjectPascal
107 lines
2.1 KiB
ObjectPascal
; ===================================================
|
|
; Orion-128 computer
|
|
; MONITOR Program symbols
|
|
;
|
|
; ram:f800-ram:ffff
|
|
; Disassembled by Romychs @ 2026-10-05
|
|
; ===================================================
|
|
|
|
; Font bitmap storage area
|
|
MON_CHARGEN EQU 0xf000
|
|
|
|
|
|
; --------------------------------------------------
|
|
; System Calls
|
|
; --------------------------------------------------
|
|
|
|
; Keyboard read
|
|
; Out: A - key code
|
|
MON_KBRD EQU 0xf803
|
|
|
|
|
|
; Read byte from tape
|
|
; Inp: A = 0xff - with search syncro byte, 0x00 - without
|
|
; Out: A = byte from tape
|
|
MON_TRD EQU 0xf806
|
|
|
|
; Character output to screen
|
|
; Inp: C - char code
|
|
MON_TV2 EQU 0xf809
|
|
|
|
; Tape write byte
|
|
; Inp: C - byte to write
|
|
MON_TWR EQU 0xf80c
|
|
|
|
; Write char to screen
|
|
; Inp: A - char
|
|
MON_OUT EQU 0xf80f
|
|
|
|
; Get keyboard status
|
|
; Out: A = 0xff - key pressed
|
|
; A = 0x00 - no key pressed
|
|
MON_STTS EQU 0xf812
|
|
|
|
; Out byte in HEX form to screen
|
|
; Inp: A - byte to print
|
|
MON_ASC EQU 0xf815
|
|
|
|
; Output string
|
|
; Inp: HL -> asciiz string
|
|
MON_MSG EQU 0xf818
|
|
|
|
; Input key wo wait
|
|
; Out: A = 0xff no key pressed
|
|
; A = 0xfe rus/lat key pressed
|
|
; else A = key code
|
|
MON_INKEY EQU 0xf81b
|
|
|
|
; Read cursor position
|
|
; Out: H - Y
|
|
; L - X
|
|
MON_GETCUR EQU 0xf81e
|
|
|
|
MON_USR_DRV EQU 0xf821
|
|
|
|
; Read file from tape
|
|
MON_TRDF EQU 0xf824
|
|
|
|
; Write file to tape
|
|
; Inp: HL - start addres of code
|
|
; DE - end address of code
|
|
MON_TWRF EQU 0xf827
|
|
|
|
; Calculate checksum
|
|
; Inp: HL - start addres of code
|
|
; DE - end address of code
|
|
; Out: BC - checksum
|
|
MON_CHKSUM EQU 0xf82a
|
|
|
|
; Unpack internal character generator
|
|
MON_UNPAK EQU 0xf82d
|
|
|
|
; Read last free RAM address
|
|
; Out: HL - address
|
|
MON_LASTADDR EQU 0xf830
|
|
|
|
MON_RESET EQU 0xf833
|
|
|
|
; Read byte from RAM page
|
|
; Inp: HL - Address
|
|
; A - page 0..3
|
|
; Out: C - result
|
|
MON_RBDS EQU 0xf836
|
|
|
|
; Write byte to RAM page
|
|
; Inp: HL - Address
|
|
; A - page 0..3
|
|
; C - byte to write to
|
|
MON_WBDS EQU 0xf839
|
|
|
|
; Set cursor position
|
|
; Inp: H - row
|
|
; L - column
|
|
MON_SET_CUR EQU 0xf83c
|
|
|
|
; Make beep sound
|
|
MON_SOUND EQU 0xf83f
|