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