|
Этюды - бегущая строка.
|
Ну, уж коли, я завел разговор про "SATISFACTION MEGADEMO", то приведу еще одну свою разработку, на этот раз из серии "Бегущая строка". Приведенная ниже программа скроллирует по экрану спрайты размером 2*2 знакоместа, с возможностью окрашивания каждой литеры в свой цвет. Эффект похож на тот, который есть в той же части вышеупомянутого "MEGADEMO". В "листинге 1" я приведу саму б/с, а в "листинге 2" - программу формирующую для нее спрайтовый набор. Нарисуйте на экране буквы размером 2*2 знакоместа, как это указано в ZX-РЕВЮ 95/1 и запустите мою программу. Через секунду спрайтовый набор будет готов. Листинг 1. ; ES FOR INFORCOM
|
ORG |
40000 |
|
CALL |
CH |
|
CALL |
SCR |
|
CALL |
ATR |
|
RET |
|
CH |
LD |
A, (COL) |
|
AND |
A |
|
JR |
Z, CH1 |
|
DEC |
A |
|
LD |
(COL),A |
|
RET |
|
CH1 |
LD |
A,1 |
|
LD |
(COL),A |
|
LD |
HL,(TEXP) |
CH4 |
LD |
A, (HL) |
|
CP |
255 |
|
JR |
NZ, CH2 |
|
LD |
HL, 45000 |
|
LD |
A,(HL) |
CH2 |
CP |
8 |
|
JR |
NC,CH3 |
|
ADD |
A,64 |
|
LD |
(CLR),A |
|
INC |
HL |
|
JR |
CH4 |
CH3 |
INC |
HL |
LD |
(TEXP),HL |
SUB |
32 |
LD |
H, 0 |
LD |
L,A |
ADD |
HL, HL |
ADD |
HL, HL |
ADD |
HL, HL |
ADD |
HL, HL |
ADD |
HL, HL |
LD |
DE,41000 |
ADD |
HL, DE |
LD |
DE,BUF |
LD |
BC, 32 |
LDIR |
|
RET |
|
LD |
HL,16385 |
LD |
DE,16384 |
LD |
B, 2 |
PUSH |
BC |
PUSH |
HL |
LD |
B, 8 |
PUSH |
BC |
PUSH |
HL |
PUSH |
DE |
LD |
BC, 31 |
LDIR |
|
POP |
DE |
POP |
HL |
INC |
H |
INC |
D |
POP |
BC |
DJNZ |
SC1 |
POP |
HL |
LD |
DE,32 |
ADD |
HL, DE |
LD |
D, H |
LD |
E, L |
DEC |
E |
POP |
BC |
DJNZ |
SC2 |
LD |
IX,BUF |
LD |
HL,16415 |
LD |
B, 2 |
PUSH |
BC |
PUSH |
HL |
LD |
B, 8 |
LD |
A, (IX+0) |
LD |
(HL),A |
LD |
A,(IX+1) |
LD |
(IX+0),A |
INC |
IX |
INC |
IX |
INC |
H |
DJNZ |
SC3 |
POP |
HL |
LD |
DE,32 |
ADD |
HL, DE |
POP |
BC |
DJNZ |
SC4 |
RET |
|
LD |
HL,22529 |
LD |
DE,22528 |
LD |
B, 2 |
PUSH |
BC |
LD |
HL,16384 |
LD |
DE,41000 |
LD |
B, 4 |
CALL |
L4 |
LD |
HL,18432 |
LD |
B, 2 |
CALL |
L4 |
RET |
|
PUSH |
BC |
PUSH |
HL |
LD |
B,16 |
PUSH |
HL |
PUSH |
BC |
LD |
B, 2 |
PUSH |
HL |
PUSH |
BC |
LD |
B, 8 |
PUSH |
HL |
LD |
A, (HL) |
LD |
(DE),A |
INC |
HL |
INC |
DE |
LD |
A,(HL) |
LD |
(DE),A |
POP |
HL |
INC |
DE |
|
PUSH |
HL |
|
LD |
BC, 31 |
|
LDIR |
|
|
POP |
HL |
|
LD |
DE,32 |
|
ADD |
HL, DE |
|
LD |
D, H |
|
LD |
E, L |
|
DEC |
E |
|
POP |
BC |
|
DJNZ |
ATR1 |
|
LD |
HL,22559 |
|
LD |
A,(CLR) |
|
LD |
B, 2 |
ATR2 |
LD |
(HL),A |
|
LD |
DE,32 |
|
ADD |
HL, DE |
|
DJNZ |
ATR2 |
|
RET |
|
COL |
DEFB |
0 |
TEXP |
DEFW |
45000 |
CLR |
DEFB |
7 |
BUF |
DEFS |
32 |
|
ORG |
45000 |
|
DEFB |
2 |
|
DEFM |
"HELLO EV: |
|
DEFB |
6 |
|
DEFM |
'EARTH |
|
DEFB |
4 |
|
DEFM |
'PRESENTS |
Текст должен располагаться с адреса 45000. Он будет выводиться на экран с атрибутом повышенной яркости. Если это Вам не надо, то можно убрать строку ADD A,64. Спрайтовый набор располагается с адреса 41000 и формируется следующей программой. Листинг 2.
ORG 39000 ; ES FOR INFORCOM
INC |
H |
|
DJNZ |
L1 |
|
POP |
HL |
|
POP |
BC |
|
PUSH |
DE |
|
LD |
DE, |
32 |
ADD |
HL, |
DE |
POP |
DE |
|
DJNZ |
L2 |
|
POP |
BC |
|
POP |
HL |
|
INC |
HL |
|
INC |
HL |
|
DJNZ |
L3 |
|
POP |
HL |
|
POP |
BC |
|
PUSH |
DE |
|
LD |
DE, |
64 |
ADD |
HL, |
DE |
POP |
DE |
|
DJNZ |
L4 |
|
RET |
|
|
СОДЕРЖАНИЕ:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Форум-Игры - рассмотрены следующие игры: Venturama, The sceptre, Carrier command, Elite, Sim city, Robin of the wood, Think, Hacker 2, Rampage, Звёздное наследие, "A.T.F.", Colony.
-
Перекресток - рассмотрены следующие адвентюры: He-man, Hampstead, Звёздное наследие, Rebel planet, The famous five, Terrormolinos, Sam spoon, Spiderman, Kentilla, Heavy on the magic, Magnetic moon.
-
-
-
-
-
-
-
-
-
-
-
-
-
|
|