; LAST UPDATE: 28.02.2025 savelij ; mame/src/mame/sinclair/sprinter.cpp ; OFF = 0, // ld b,b ; FILL, // ld c,c ; SET_BUFFER, // ld d,d ; FILL_VERT, // ld e,e ; DOUBLE, // ld h,h ; COPY, // ld l,l ; OFF_HALT, // halt ; COPY_VERT, // ld a,a ; MODE_AND = 0xa6, // and (hl) ; MODE_XOR = 0xae, // xor (hl) ; MODE_OR = 0xb6, // or (hl) ; MODE_NOP = 0xbe // cp (hl) ; []----------------------------------------------------------[] ACCELCMD .OFF EQU 0x40 ; LD B,B выключить акселератор .FILL EQU 0x49 ; LD C,C Операция Fill - заполнение одним байтом. ; Последующая команда типа LD (HL),A приведет к заполнению ; указанного ранее количества байт значением A. .SET_BUFFER EQU 0x52 ; LD D,D включить акселератор в режим приема байта размера ; блока далее следует команда типа LD A,dat, где dat и ; будет новым размером блока. Если размер блока был ; установлен ранее, его можно не устанавливать .FILL_VERT EQU 0x5B ; LD E,E Операция Fill для графического экрана - ; заполнение вертикальных линий .DOUBLE EQU 0x64 ; LD H,H .COPY EQU 0x6D ; LD L,L копирование блока. Последующая команда типа ; LD A,(HL) приведет к заполнению ОЗУ акселератора данными ; из адреса (HL), а команда типа LD (DE),A приведет ; к перезаписи данных из ОЗУ акселератора в основное или видео-ОЗУ. .OFF_HALT EQU 0x76 .COPY_VERT EQU 0x7F ; LD A,A - копирование блока для графического экрана подобна команде .MODE_AND EQU 0xA6 ; AND (HL) .MODE_XOR EQU 0xAE ; XOR (HL) .MODE_OR EQU 0xB6 ; OR (HL) .MODE_NOP EQU 0xBE ; CP (HL)