; ================================================== ; 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 ; Inp: HL = start addr ; DE = end address 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 ; Out: A = 0 - ok ; A = 1 - no file found ; A = 4 - read only 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 ; Out: A = 0 - success ; A = 2 - repeat ; A = 3 - no space left 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 ; ORDOS Start. Entry point to ORDOS (JP) ORD_START EQU 0xBFFD ; Start sddress of ORDOS ORD_STADR EQU 0xBFFE