Video on a spec - This article will discuss how to organize reactive display of high-resolution video on a spec with 128 kilobytes of memory.
╔═══════════════════════════════════╗╔══╗
| Видео на спеке... ╔╗╚╝ |
╚═════════════════════════════════╝╚════╝
Lynx/Infotek
Fast high resolution
full screen video engine
Fast high resolution
full screen video engine
В этой статье речь пойдет о том, как на
спеке с памятью 128 килобайт организовать
реактивный показ видео в высоком разреше-
нии. Это - самый легкий и в то же время
самый 'рульный' и самый быстрый способ
вывода видео кадров на экран.
Что требуется для этого. Для этого, для
примера надо запастись 15-ю кадрами како-
го-нибудь видео (например, из какого-ни-
будь писишного ЗD-shooter'а подергайте
кадры по F12, потом конвертнитеthem on
spec).
Now I’ll tell you the location of this vi-
deo(frames) in memory. For quick withdrawal
on the screen they are stored unpacked
form in main memory, as well as in the page
Tsakh memory. Naturally pages 2 and 5 are not
are used because they are in os-
new memory.
What is special about this video? The point is
that now mainly for small
memory waste uses a special format
mat - video output in low resolution -
4x4 textures. And no one has yet practiced
output video in high definition on
screen.
So, let's start with a program that implements
sends this output to the screen. Program
can operate in any interrupt mode.
The program uses a table in which
3 bytes are allocated for each frame:
1 - page in which this frame:
2,3 - screen address.
org 2SOOO
ld hl,table
ld b,15
l1: push bc
ld bc,#7FFD
ld a,(hl)
add a,#1O
out(c),ainc hl
push hl
ld a,(hl)
inc hl
ld h,(hl)
ld l,a
ld de,#ЧOOO
ld bc,#18OO
ldir
рор hl
call pause
inc hl
рор bc
djnz l1
ret
pause ld b,8
l2 halt
djnz l2
table DB O
DW 27OOO
DB O
DW 33144
DB O
DW 39288
DB O
DW 49152
DB O
DW 55296
DB 1
DW 49152
DB 1
DW 55296DB 3
DW 49152
DB 3
DW 55296
DB 4
DW 49152
DB 4
DW 55296
DB 6
DW 49152
DB 6
DW 55296
DB 7
DW 49152
DB 7
DW 55296
This is the program. She displays
deo on the screen. Accordingly, in the procedure
pause, the number of halts was selected by me
purely for my video. With such a delay
it turned out to be proportional.
After loading this program into memory
you need to load the table into
memory frames. The easiest way to do this is from
48-vasika with open pages. Make
it can be done like this:
1O OUT 32765.16+page number:RANDOMIZE USR
15619:REM : LOAD "frame name" CODE address
from the table.This is done because 48 BASIC is not
switches pages every interruption on
the one that lies in the variable 23388, and,
Accordingly, it is convenient to arrange it like this
image of the program.
I saw such a loader, for example, in de-
me BOOM.
Well, that's all. Finally, I will give one co-
vet: how to unlock pages and TR-DOS post-
le return from the program menu 128 quora-
ma. This is done simply:
Share your thoughts about the article