Files

73 lines
1.6 KiB
PHP

; ==================================================
; Orion-128 computer
;
; ORDOS (Orion-DOS) System calls
; Disassembled by Romychs @ 2026-10-08
; ==================================================
; ORDOS Write max disk size
ORD_WMAX EQU 0xbfc4
; ORDOS Read file attributes
; Out: HL -> file address in memory,
; DE - file size,
; BC -> directory address after search
ORD_ATFM EQU 0xbfc7
; ORDOS Write start/end address of file buffer in RAM
ORD_WATF EQU 0xbfca
; ORDOS Read address of file buffer in RAM
ORD_ATF EQU 0xbfcd
; ORDOS Set address of filename buffer
; Inp: HL -> filename
ORD_SDNA EQU 0xbfd0
; ORDOS Read address of filename buffer
ORD_LDMA EQU 0xbfd3
; ORDOS Set current drive
; Inp: A - 'A' or 'B' drive letter
ORD_WND EQU 0xbfd6
; ORDOS Read byte from disk
; Inp: HL -address.
; Out: A - byte from disk
ORD_RDISK EQU 0xbfdc
; ORDOS Write byte to disk
; Inp: HL -address,
; A - byte to write
ORD_WDISK EQU 0xbfdf
ORD_STOP EQU 0xbfe2
; ORDOS Search file on disk
; Inp: Filename will be set before call
; Out: A = 0 - not found, 0xff - found
; HL -> stop byte if not found, of file header if found
ORD_PSCF EQU 0xbfe5
; ORDOS Read current disk name
ORD_RND EQU 0xbfe9
; ORDOS Erase disk file
ORD_ERAS EQU 0xbfee
; ORDOS Open sequential file for read
ORD_OFILL EQU 0xbff1
; ORDOS Close sequential file
ODR_CFILL EQU 0xbff4
; ORDOS Write file on disk
ORD_WFILE EQU 0xbff7
; ORDOS Read file from disk
; Out: A = 0 - ok, 1 - file not found, 0x80 - COM file
; HL -> start address of buffer
; SP+2 -> return to OS address
ORD_RFILE EQU 0xbffa