Sprinter BIOS function. [02/02]

ZXNet echo conference «zx.spectrum»

From 812/08.16 To All 23 July 1997


I am glad to welcome you, All!

;===========================================================================================
; point 3D13h C=90h
; Determining the amount of memory.
; Output: BC - total amount of RAM in blocks of 16k
EMM_FN0 EQU 90H
;============================================================================
; point 3D13h C=91h
; Initializing memory allocation. Erase
; all RAM disks
EMM_FN1 EQU 91H
;========================================================================
; point 3D13h C=92h
; Get memory block N bytes
; Input: A - RAM-Disk number
; B - number of required blocks
; Output: A - RAM-Disk/error code
; CF - error flag
; (no memory/RAM-Disk exists)
EMM_FN2 EQU 92H
;===========================================================================
; point 3D13h C=93h
; Free up the memory block RAM-Disk-a
; Input: A - RAM-Disk KEY ( Clear RAM-Disk A )
EMM_FN3 EQU 93H
;============================================================================
; point 3D13h C=94h
; Get page N RAM-Disk-a A
; Input: A - RAM-Disk KEY, B - page number
; Output: A - page
EMM_FN4 EQU 94H
;========================================================================
; point 3D13h C=95h
; Getnext page RAM-Disk
; Input: A - RAM page
; Output: A - next RAM page/ L=0FFh - end
EMM_FN5 EQU 95H
;============================================================================
; point 3D13h C=96h
; Obtaining port addresses and data for recovery
; Input: C - projection window number
; Output: B - data, C - window port address
; Upon completion of work with the extended RAM, the program
; must do OUT (C),B for all used
; windows to return the pages connected
to their place; previously
EMM_FN6 EQU 96H
;=============================================================================
; point 3D13h C=98h
; Calculation of page and address in RAM-Disk by
; absolute sector number
; Input: A - RAM-Disk, DE - absolute sector number
; Output: A - page, HL - address in page
RAMD_CALC_PAGE EQU 98H
;===========================================================================
; ..Internal function..
; open a graphics window with a descriptor in IX
; in place of HL, E - mode page, seventh bit E - mode BOND
PIC_FN0 EQU 0A0H
;============================================================================
; point 3D13h C=0A1h
; OUTPUT POINT input: E - vertical, HL - horizontal,
; D - colorpoints
PIC_FN1 EQU 0A1H
;============================================================================
; point 3D13h C=0A2h
; OUTPUT LINE 'FILL' input: E - vertical, IX - horizontal.
; HL - line length in points, D - color
PIC_FN2 EQU 0A2H
;============================================================================
; point 3D13h C=0A3h
; OUTPUT LINE 'COPY' input: E - vertical, IX - horizontal
; A',HL' - data address, where to get data from
; A' - RAM-Disk/MEM page, HL' - address in page
; BC' - data length
PIC_FN3 EQU 0A3H
;==========================================================================
; point 3D13h C=0A4h
; PALETTE OUTPUT input: HL - RGB palette data,
; data in (HL) - { DB R,G,B,Y } D times ( Y - black and white
; tone for B/W mode) ; E - initial color; D - number
; colors, B - mask; A - PAL page ( B must be
; equal to FFh, for full palette )
PIC_FN4 EQU 0A4H ; PALETTE OUTPUT
CMD_SET_PAL EQU PIC_FN4
;===========================================================================
; point 3D13h C=0A5h
; SETTING THE OUTPUT PAGE ON THE SCREEN Input: E = 0/1
PIC_FN5 EQU 0A5H
;============================================================================
; point 3D13h C=0A6h
;Installation of the internal palette. A - number, B=1 - for palette
; 256 colors A = 0 - for PAL0, A = 1 for PAL1
; A = 2 - for PAL2, A = 3 for PAL3
; B=2 ( A=0 ) - restoration of the entire standard palette,
; loaded when turned on
PIC_FN6 EQU 0A6H
;==========================================================================
; point 3D13h C=0A7h
; Drawing lines. E - vertical, HL - horizontal
; H' - height, C'/DE',B' - add_parameters D - color
; C' = 80h, DE' = 0, B'=0 - for vertical lines
; Algorithm:
; 1: Place a dot with color D
; HL,C + DE,B -> HL,C
; dec H'
; jr nz,1
PIC_FN7 EQU 0A7H
; point 3D13h C=0A8h
PIC_FN8 EQU 0A8H
;============================================================================
; Drawing sprites
; E - vertical, IX - horizontal
; D - increase/decrease code
; B - control code
; 0 - Output a permanent sprite
; 1 - Output temporary sprite
; 2 - Restoring the image under the temporary sprite
; HL - Special coding data (sprite data shape, colors..)
; flick-like format
PIC_FN9 EQU0A9H
;===========================================================================

This list does not include calls to the disk BIOS, this is a topic
for a separate
conversation.

Sincerely, Denis.