Files
MZBAS/monitor.inc

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