Code: Select all
; Пример псевдографического режима
; (с) 17-04-2012 vinxru
; Используется компилятор sjasm
VG75_ADDR = 0EF00h
VT57_ADDR = 0F000h
VIDEOMEM_ADDR = 08000h
VIDEOMEM_SIZE = 78*64
device zxspectrum48
; Заголовок RKA файла
hdr: db start>>8, start&0xFF
dw 0
start: ; Ждем обратный ход
ld hl, VG75_ADDR+1
ld a, (hl)
wait1: ld a, (hl)
and 20h
jp z, wait1
; Выключаем видео и устаналиваем режим
ld hl, VG75_ADDR+1
ld (hl), 0
dec hl
ld (hl), 77 ; 78 символов
ld (hl), 63 ; 64 линии
ld (hl), 3 ; Высота символа 4
ld (hl), 053h
; Включаем альтернативный знакогенератор
ei
; Устаналиваем положение и размер видеопамяти
ld hl, VT57_ADDR+8
ld (hl), 80h
ld l, 4
ld (hl), VIDEOMEM_ADDR & 0xFF
ld (hl), VIDEOMEM_ADDR >> 8
inc l
ld (hl), (VIDEOMEM_SIZE-1) & 0xFF
ld (hl), 40h | ((VIDEOMEM_SIZE-1) >> 8)
ld l, 8
ld (hl), 0A4h
; Очищаем видеопамять
ld hl, VIDEOMEM_ADDR
ld bc, VIDEOMEM_SIZE
ld a, 0
clearMem: ld (hl), a
inc hl
dec c
jp nz, clearMem
dec b
jp nz, clearMem
; Включаем видео
ld hl, VG75_ADDR+1
ld (hl), 27h
; Копируем в видеопамять
ld hl, VIDEOMEM_ADDR + 78*6 + 9
ld bc, screen
ld d, 52
loop1: ld e, 64
loop2: ld a, (bc)
inc bc
ld (hl), a
inc hl
dec e
jp nz, loop2
push de
ld de, 14
add hl, de
pop de
dec d
jp nz, loop1
; Висим
jp $
;----------------------------------------------------------------------------
A = 5Eh
B = 58h
C = 60h
D = 52h
E = 57h
F = 5Fh
G = 5Bh
H = 61h
I = 15h
J = 2Ah
K = 7Fh
L = 67h
M = 45h
N = 4Ch
O = 4Eh
P = 43h
Q = 68h
R = 65h
S = 64h
T = 7Ah
U = 7Bh
V = 7Ch
W = 4Eh
X = 4Ch
Y = 43h
Z = 45h
_ = 0
screen: db A,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,C
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,R,B,B,B,B,B,B,B,B,B,C,_,_,T,T,T,T,T,T,T,T,T,T,_,_,W,W,W,W,W,W,W,W,W,W,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,_,L,_,_,L,_,_,L,_,E,_,_,U,U,U,U,U,U,U,U,U,U,_,_,X,X,X,X,X,X,X,X,X,X,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,M,_,N,E,_,D,M,_,N,E,_,_,V,V,V,V,V,V,V,V,V,V,_,_,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,O,_,P,E,_,D,O,_,P,E,_,_,T,T,T,T,T,T,T,T,T,T,_,_,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,_,Q,_,_,Q,_,_,Q,_,E,_,_,U,U,U,U,U,U,U,U,U,U,_,_,W,W,W,W,W,W,W,W,W,W,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,F,G,G,G,_,_,_,G,G,G,S,_,_,V,V,V,V,V,V,V,V,V,V,_,_,X,X,X,X,X,X,X,X,X,X,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,_,_,_,_,X,_,Z,_,_,_,_,_,_,T,T,T,T,T,T,T,T,T,T,_,_,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,_,_,_,_,Y,_,W,_,_,_,_,_,_,U,U,U,U,U,U,U,U,U,U,_,_,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,R,B,B,B,_,_,_,B,B,B,C,_,_,V,V,V,V,V,V,V,V,V,V,_,_,W,W,W,W,W,W,W,W,W,W,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,_,L,_,_,L,_,_,L,_,E,_,_,T,T,T,T,T,T,T,T,T,T,_,_,X,X,X,X,X,X,X,X,X,X,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,M,_,N,E,_,D,M,_,N,E,_,_,U,U,U,U,U,U,U,U,U,U,_,_,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,O,_,P,E,_,D,O,_,P,E,_,_,V,V,V,V,V,V,V,V,V,V,_,_,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,D,_,Q,_,_,Q,_,_,Q,_,E,_,_,T,T,T,T,T,T,T,T,T,T,_,_,W,W,W,W,W,W,W,W,W,W,_,_,E
db D,_,I,J,I,J,I,J,I,J,I,J,_,_,K,K,K,K,K,K,K,K,K,K,_,_,F,G,G,G,G,G,G,G,G,G,S,_,_,U,U,U,U,U,U,U,U,U,U,_,_,X,X,X,X,X,X,X,X,X,X,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E
db F,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,G,H
end: savebin "test.rka",hdr,end-hdr