Sprinter BIOS function. [02/02]

ZXNet эхоконференция «zx.spectrum»

От 812/08.16 Кому All 23.07.1997


Рад приветствовать тебя, All!

;=============================================================
; point 3D13h C=90h
; Определение объема памяти.
; Выход: BC - общий объем ОЗУ в блоках по 16k
EMM_FN0 EQU 90H
;=============================================================
; point 3D13h C=91h
; Инициализация распределения памяти. Стирание
; всех RAM-дисков
EMM_FN1 EQU 91H
;=============================================================
; point 3D13h C=92h
; Получить блок памяти N bytes
; Вход: A - номер RAM-Disk-а
; B - число необходимых блоков
; Выход: A - RAM-Disk/код ошибки
; CF - признак ошибки
; ( нет памяти/RAM-Disk существует )
EMM_FN2 EQU 92H
;=============================================================
; point 3D13h C=93h
; Освободить блок памяти RAM-Disk-a A
; Вход: A - КЛЮЧ RAM-Disk ( Clear RAM-Disk A )
EMM_FN3 EQU 93H
;=============================================================
; point 3D13h C=94h
; Получить страницу N RAM-Disk-a A
; Вход: A - КЛЮЧ RAM-Disk, B - номер страницы
; Выход: A - страница
EMM_FN4 EQU 94H
;=============================================================
; point 3D13h C=95h
; Получить следующую страницу RAM-Disk
; Вход: A - страница ОЗУ
; Выход: A - следующая страница ОЗУ/ L=0FFh - конец
EMM_FN5 EQU 95H
;=============================================================
; point 3D13h C=96h
; Получение адресов портов и данных для восстановления
; Вход: C - номер окна проецирования
; Выход: B - данные, C - адрес порта окна
; По завершении работы с расширенным ОЗУ программа
; должна выполнить OUT (C),B для всех использованных
; окон, что бы вернуть на место страницы, подключенные
; ранее
EMM_FN6 EQU 96H
;=============================================================
; point 3D13h C=98h
; Вычисление страницы и адреса в RAM-Disk по
; абсолютному номеру сектора
; Вход: A - RAM-Disk, DE - абсолютный номер сектора
; Выход: A - страница, HL - адрес в странице
RAMD_CALC_PAGE EQU 98H
;=============================================================
; ..Внутренняя функция..
; открыть графическое окно, с описателем в IX
; на месте HL, E - страница режима, седьмой бит E - режим BOND
PIC_FN0 EQU 0A0H
;=============================================================
; point 3D13h C=0A1h
; ВЫВЕСТИ ТОЧКУ вход: E - вертикаль, HL - горизонталь,
; D - цвет точки
PIC_FN1 EQU 0A1H
;=============================================================
; point 3D13h C=0A2h
; ВЫВОД ЛИHИИ 'FILL' вход: E - вертикаль, IX - горизонталь.
; HL - длина линии в точках, D - цвет
PIC_FN2 EQU 0A2H
;=============================================================
; point 3D13h C=0A3h
; ВЫВОД ЛИHИИ 'COPY' вход: E - вертикаль, IX - горизонт.
; A',HL' - адрес данных, откуда брать данные
; A' - страница RAM-Disk/MEM, HL' - адрес в стр.
; BC' - длина данных
PIC_FN3 EQU 0A3H
;=============================================================
; point 3D13h C=0A4h
; ВЫВОД ПАЛИТРЫ вход: HL - данные палитры RGB,
; данные в (HL) - { DB R,G,B,Y } D раз ( Y - чернобелый
; тон для B/W режима ) ; E - начальный цвет ; D - число
; цветов, B - маска ; A - страница PAL ( B должно быть
; равно FFh, для полной палитры )
PIC_FN4 EQU 0A4H ; ВЫВОД ПАЛИТРЫ
CMD_SET_PAL EQU PIC_FN4
;=============================================================
; point 3D13h C=0A5h
; УСТАHОВКА СТРАHИЦЫ ВЫВОДА HА ЭКРАH Вход: E = 0/1
PIC_FN5 EQU 0A5H
;=============================================================
; point 3D13h C=0A6h
; Установка внутренней палитры. A - номер, B=1 - для палитры
; 256 цветов A = 0 - для PAL0, A = 1 для PAL1
; A = 2 - для PAL2, A = 3 для PAL3
; B=2 ( A=0 ) - восстановление всей стандарной палитры,
; загружаемой при включении
PIC_FN6 EQU 0A6H
;=============================================================
; point 3D13h C=0A7h
; Рисование линий. Е - вертикаль, HL - горизонталь
; H' - высота, C'/DE',B' - add_parameters D - color
; C' = 80h, DE' = 0, B'=0 - для вертикальных линий
; Алгоритм:
; 1: Поставить точку цветом D
; HL,C + DE,B -> HL,C
; dec H'
; jr nz,1
PIC_FN7 EQU 0A7H
; point 3D13h C=0A8h
PIC_FN8 EQU 0A8H
;=============================================================
; Рисование спрайтов
; E - вертикаль, IX - горизонталь
; D - код увеличения/уменьшения
; B - управляющий код
; 0 - Вывод постоянного спрайта
; 1 - Вывод временного спрайта
; 2 - Восстановление картинки под временным спрайтом
; HL - Special coding data ( данные спрайта форма, цвета.. )
; flick-подобный формат
PIC_FN9 EQU 0A9H
;=============================================================

В данном списке не приводится вызовы к п/п дискового биоса, это тема
отдельного
разговора.

С уважением, Denis.