; ***************************************************************************
; API for Sinclair ZX Spectrum OS
; Notes about the Sinclair ZX Spectrum operating system & memory
; Author: Peter Mount, Area51.dev & Contributors
;
; URL: https://area51.dev/sinclair/spectrum/
;
; Modified: Sun, 23 Jan 2022 17:05:58 UTC
;
; Current version: https://area51.dev/sinclair/spectrum/reference/include/beebasm/api.asm
; ***************************************************************************
DOS_FLUSH = &142 ; Write any pending data to this drive
DOS_GET_1346 = &13C ; Set current cache/ramdisk location
DOS_GET_EOF = &139 ; Get the end of file (EOF) position
DOS_GET_POSITION = &133 ; Get the file pointer
DOS_MAP_A = &154 ; Map drive B to unit 0 or 1
DOS_OPEN_DRIVE = &14B ; Open drive as a single file
DOS_REF_XDPB = &151 ; Point at XDPB for this drive
DOS_SET_1346 = &13F ; Rebuild the sector cache and RAM disk
DOS_SET_ACCESS = &145 ; Change access mode of an open file
DOS_SET_ATTRIBUTES = &148 ; Set a files attributes
DOS_SET_MESSAGE = &14E ; Enable/disable disk error messages
DOS_SET_POSITION = &136 ; Set the file pointer
DOS_ABANDON = &10C ; Abandon a file
DOS_BOOT = &12A ; Boot from disk
DOS_CATALOG = &11E ; Get the disk catalog
DOS_CLOSE = &109 ; Close a file
DOS_DELETE = &124 ; Delete a file
DOS_FREE_SPACE = &121 ; Get free space on drive
DOS_INITIALISE = &100 ; Initialise +3DOS
DOS_OPEN = &106 ; Open and/or Create a file
DOS_READ = &112 ; Read bytes from a file into memory
DOS_READ_BYTE = &118 ; Read byte from a file, check for soft-EOF
DOS_REF_HEAD = &10F ; Point to header data for this file
DOS_RENAME = &127 ; Get free space on drive
DOS_SET_DRIVE = &12D ; Set the default drive
DOS_SET_USER = &130 ; Set the default user
DOS_VERSION = &103 ; Return DOS issue and version numbers
DOS_WRITE = &115 ; Write bytes from memory into a file
DOS_WRITE_BYTE = &11B ; Write byte to a file
DD_ASK_1 = &17B ; Check to see if unit 1 is present
DD_CHECK_SECTOR = &169 ; Check a sector
DD_DRIVE_STATUS = &17E ; Check drive status
DD_ENCODE = &184 ; Set copy protection encode routine
DD_EQUIPMENT = &181 ; Ask what type of drive
DD_FORMAT = &16C ; Format a track
DD_INIT = &15A ; Initialise the disk driver
DD_INTERFACE = &157 ; Check for the disk drive interface
DD_L_DPB = &18A ; Initialise DPB for a given format
DD_L_OFF_MOTOR = &19C ; Turn off motor
DD_L_ON_MOTOR = &196 ; Turn on motor
DD_L_READ = &190 ; Low level uPD765A read command
DD_L_SEEK = &18D ; Seek to required track
DD_L_T_OFF_MOTOR = &199 ; Start motor off timeout
DD_L_WRITE = &193 ; Low level uPD765A write command
DD_L_XDPB = &187 ; Initialise XDPB for a given format
DD_LOGIN = &175 ; Login a new disk
DD_READ_ID = &16F ; Read a sector identifier
DD_READ_SECTOR = &163 ; Read a sector
DD_SEL_FORMAT = &178 ; Select a standard format
DD_SET_RETRY = &160 ; Set try/retry count
DD_SETUP = &15D ; Setup disk parameters
DD_TEST_UNSUITABLE = &172 ; Check disk is suitable to write to
DD_WRITE_SECTOR = &166 ; Write a sector
RST_6 = &30 ; FP Calculator
RST_5 = &28 ; FP Calculator
CL_ALL = &DAF ; Clear the screen
RST_3 = &18 ; Collect character
RST_4 = &20 ; Collect Next character
RST_1 = &8 ; Report an error
RST_7 = &38 ; Maskable Interrupt Handler
RST_2 = &10 ; Print A to the output stream
RST_0 = &0 ; Start the computer
SWAP = &5B00 ; Paging subroutine
STOO = &5B10 ; Paging subroutine. Entered with interrupts disabled and AF, BC on the stack.
YOUNGER = &5B21 ; Paging subroutine
REGNUOY = &5B2A ; Paging subroutine
ONERR = &5B3A ; Paging subroutine
RAMRST = &5B5D ; RST 8 instruction used by ROM 1 to report old errors to ROM 3