lstoff

; Spectravideo SVI functions definition
;
; $Id: svibios.def,v 1.6 2016-06-06 15:40:54 stefano Exp $
;


defc CHKRAM = $0000 ; Check RAM and sets slot for command area.
defc RESET  = $0000
defc BOOT   = $0000
defc STARTUP = $0000

defc SYNCHR = $0008 ; Checks if then current character pointed by
                    ; HL is one desired.If not,generates
                    ; 'Syntax error',otherwise falls into CHRGTB.
;; defc RDSLT  = $???? ; Reads the value of an address in another slot
defc CHRGTB = $0010 ; Gets next character (or token) from BASIC text.
;; defc WRTSLT = $???? ; Writes a value to an address in another slot.
defc OUTDO  = $0018 ; Output to the current device.
;; defc CALSLT = $???? ; Performs inter-slot call to specified address.
defc DCOMPR = $0020 ; Compare HL with DE.
;; defc ENASLT = $???? ; Switches indicated slot at indicated page on perpetual
defc GETYPR = $0030 ; Return the type FAC.
;; defc CALLF  = $???? ; Performs far_call (i.e. inter-slots call)
defc KEYINT = $0038 ; Performs hardware interrupt procedures.

; I/O initialization.

defc INITIO = $34D9 ; Dev. initialization.
defc INIFNK = $0059 ; Initializes function key strings.

; Accessing to the VDP (T19918)

;; defc DISSCR = $???? ; Disables screen display.
;; defc ENASCR = $???? ; Enables screen display.
defc WRTVDP = $3536 ; Writes to the VDP register C the data in B.
defc RDVRM  = $3734 ; Reads the VRAM address by [HL] (VPEEK).
defc WRTVRM = $372A ; Write to the VRAM address by [HL] (VPOKE).
defc SETRD  = $3747 ; Sets up the VDP for read.
defc SETWRT = $373C ; Sets up the VDP for write.
 EXTERN FILVRM         ; Fill the vram with specified data
 EXTERN LDIRMV         ; Block transfer to memory from VRAM
 EXTERN LDIRVM         ; Block transfer to VRAM from memory
defc CHGMOD = $37D9 ; Sets the VDP mode according to SCRMOD.
defc CHGCLR = $3750 ; Changes the color of the screen.
defc NMI    = $0066 ; Performs non-maskable interrupt procedures.
defc CLRSPR = $36BE ; Initializes all sprites.
defc INITXT = $0047 ; Initializes screen for text mode (40*24) and sets the VDP.
;; defc INIT32 = $???? ; Initializes screen for text mode (32*24) and sets the VDP.
defc INIGRP = $004A ; Initializes screen for high-resolution mode and sets the VDP.
defc INIMLT = $004D ; Initializes screen for multi-color mode and sets the VDP.
defc SETTXT = $0047 ; (=INITXT on SVI) Sets the VDP for text (40*24) mode.
;; defc SETT32 = $???? ; Sets the VDP for text (32*24) mode.
;; defc SETGRP = $???? ; Sets the VDP for high-resolution mode.
;; defc SETMLT = $???? ; Sets the VDP for multicolor mode.
;; defc CALPAT = $???? ; Returns address of sprite pattern table.
;; defc CALATR = $???? ; Returns address of sprite atribute table.
;; defc GSPSIZ = $???? ; Returns the current sprite size.
defc GRPPRT = $4702 ; Prints a character on the graphic screen.

; Accessing to the PSG.

defc GICINI = $4066 ; Initializes PSG,and static data for PLAY
defc WRTPSG = $40B6 ; Writes data to the PSG register. (no DI/EI)
;; defc RDPSG  = $???? ; Reads data from PSG register.
defc STRTMS = $416E ; Checks/starts background tasks for PLAY.

; Console (i.e. the keyboard and the CRT)

defc CHSNS  = $003B ; Check the status of keyboard buffer.
defc CHGET  = $003E ; Waits for character being input and returns the character codes.
defc CHPUT  = $394D ; Outputs a character to the console.
defc LPTOUT = $0044 ; Output a character to the line printer.
defc LPTSTT = $0041 ; Check the line priter status.
;; defc SNVCHR = $???? ; Check graphic header byte and converts codes.
defc PINLIN = $6D13 ; Accepts a line from console until a CR or STOP
                    ; is typed,and stores the line in a buffer.
defc INLIN  = $6D2F ; Same as PINLIN,exept if AUTFLO if set.
defc QINLIN = $6D26 ; Output a '?' mark and a space then falls into the INLIN routine.
defc BREAKX = $005C ; Check the status of the Control-STOP key.
defc ISCNTC = $6495 ; Check the status of the SHIFT-STOP key.
defc CKCNTC = $016E ; Same as ISCNTC,used by BASIC
defc BEEP   = $0147 ; Sounds the buffer
defc CLS    = $3777 ; Clear the screen.
defc POSIT  = $393E ; Locate cursor at the specified position.
defc FNKSB  = $0050 ; Check if function key display is active. If
                    ; it is,it display it,otherwise does nothing.
defc ERAFNK = $0053 ; Hide the function key diplay.
defc DSPFNK = $0056 ; Show the function key display.
defc TOTEXT = $3768 ; Forcidly places the screen in text mode.

; Game I/O devices

    EXTERN GTSTCK         ; Return the current joystick status. (STICK+8)
    EXTERN GTTRIG         ; Return the current trigger button status. (TRIGF+3)
;; defc GTPAD  = $???? ; Check the current touch PAD status.
;; defc GTPDL  = $???? ; Return the value of the paddle.

; Tape device routines

;; defc TAPION = $???? ; Reads the header block after turning the cassette motor on
;; defc TAPIN  = $???? ; Read data from the tape
;; defc TAPIOF = $???? ; Stops reading from the tape
;; defc TAPOON = $???? ; Turns on the cassette motor and writes the header
;; defc TAPOUT = $???? ; Writes data on the tape
;; defc TAPOOF = $???? ; Stops writing on the tape
;; defc STMOTR = $???? ; Sets the cassette motor action

; Queue routines

defc LFTQ   = $2BC0 ; Gives number of bytes in queue
defc PUTQ   = $2B45 ; Put byte in queue

; Graphic routines

defc RIGHTC = $49CF ; Shifts screenpixel to the right
defc LEFTC  = $49F8 ; Shifts screenpixel to the left
defc UPC    = $4A59 ; Shifts screenpixel up
defc TUPC   = $4A3F ; Tests whether UPC is possible, if possible, execute UPC
defc DOWNC  = $4A2D ; Shifts screenpixel down
defc TDOWNC = $4A14 ; Tests whether DOWNC is possible, if possible, execute DOWNC
defc SCALXY = $48A1 ; Scales X and Y coordinates
defc MAPXY  = $48E9 ; Places cursor at current cursor address (MAPXYC)
defc FETCHC = $4943 ; Gets current cursor addresses mask pattern
defc STOREC = $494A ; Record current cursor addresses mask pattern
defc SETATR = $4980 ; Set attribute byte
defc READC  = $4951 ; Reads attribute byte of current screenpixel
defc SETC   = $4988 ; Returns currenct screenpixel of specificed attribute byte
defc NSETCX = $4AF9 ; Set horizontal screenpixels
defc GTASPC = $4BC3 ; Gets screen relations
defc PNTINI = $4BC9 ; Initalises the PAINT instruction
defc SCANR  = $4BD0 ; Scans screenpixels to the right
defc SCANL  = $4C66 ; Scans screenpixels to the left

; Misc routines

;; defc CHGCAP = $???? ; Alternates the CAP lamp status
;; defc CHGSND = $???? ; Alternates the 1-bit sound port status
;; defc RSLREG = $???? ; Reads the primary slot register
;; defc WSLREG = $???? ; Writes value to the primary slot register

defc RDVDP  = $3734 ; Reads VDP status register

;; defc SNSMAT = $???? ; Returns the value of the specified line from the keyboard matrix
;; defc PHYDIO = $???? ; Executes I/O for mass-storage media like diskettes
;; defc FORMAT = $???? ; Initialises mass-storage media like formatting of diskettes
defc ISFLIO = $68C2 ; Tests if I/O to device is taking place
defc OUTDLP = $6415 ; Printer output
defc GETVCP = $2D46 ; Returns pointer to play queue
;; defc GETVC2 = $???? ; Returns pointer to variable in queue number VOICEN (byte op #FB38)
defc KILBUF = $0156 ; Clear keyboard buffer
;; defc CALBAS = $???? ; Executes inter-slot call to the routine in BASIC interpreter (CALBNK=$3480)

defc SETBORDER = $3762		; Set border color (color in 'A')


lston
