Третья программа увеличивает изображение в центре экрана на весь экран. Я не стал учитывать и атрибуты, так как программа бы выросла почти в два раза, а она и так 133 байта. Программа не использует дополнительных буферов, поэтому увеличение проходит в два этапа, так как иначе затирается еще не увеличенная часть центральной области. (С) Program 'Zoom' by E.kulikaev '96.
В строках 139-143 происходит расчет адреса в атрибутах выводимой картинки.
144
145
146 ZAM
147
LD POP NOP NOP
A,(HL) HL
Сюда программа вставляет команду LD А,атрибут, нужную для прорисовки выводящей линии.
|
148 LD |
(HL),A |
6 L1 |
PUSH |
DE |
|
149 RET |
7 |
CALL |
DOUB | |
|
150 LINE1 LD |
HL, 256*63+6 |
8 |
CALL |
L DE |
|
2 |
9 |
PUSH |
DE | |
|
10 |
PUSH |
ВС | ||
|
Если вы хотите изменить цвет |
11 |
LD |
ВС,32 | |
|
линии, поменяйте число 63 на нуж |
12 |
LDIR | ||
|
ный атрибут. |
13 |
POP |
ВС | |
|
14 |
POP |
DE | ||
|
151 LD |
(ZAM),HL |
15 |
CALL |
L DE |
|
152 LD |
HL, 1 |
16 |
EX |
DE.HL |
|
153 LD |
(ZAMP+1),HL |
17 |
POP |
DE |
|
154 CALL |
LINE |
18 |
CALL |
L DE |
|
155 LD |
HL,0 |
19 |
DJNZ |
L1 |
|
156 LD. |
(ZAM),HL |
20 |
LD |
HL,22527- 31 |
40000 S
ORG ENT LD LD
1 2
3
4
HL, 16384 DE, 16384 + 201
5 LD В ,48
Высота увеличиваемой обл.
В DE адрес левого верхнего угла центральной области экрана.
21 LD DE.22527- 214
Адрес левого нижнего угла центральной обл.
22 LD В,48 Высота нижней части обл.
|
23 R1 |
PUSH |
DE |
|
24 |
CALL |
DOUB |
|
25 |
CALL |
L UP |
|
26 |
PUSH |
DE |
|
27 |
PUSH |
ВС |
|
28 |
LD |
BC.32 |
|
29 |
LDIR | |
|
30 |
POP |
ВС |
|
31 |
POP |
DE |
|
32 |
CALL |
L UP |
|
33 |
EX |
DE.HL |
|
34 |
POP |
DE |
|
35 |
CALL |
L UP |
|
36 |
DJNZ |
R1 |
|
37 |
RET | |
|
38 DOUB |
PUSH |
HL |
|
39 |
LD |
C,16 |
|
40 L2 |
PUSH |
ВС |
|
41 |
LD |
A,(DE) |
|
42 |
LD |
ВС, #0402 |
|
43 L3 |
PUSH |
ВС |
|
44 L4 |
RLA | |
|
45 |
PUSH |
AF |
|
46 |
RL |
(HL) |
|
47 |
POP |
AF |
|
48 |
RL |
(HL) |
|
49 |
DJNZ |
L4 |
|
50 |
INC |
HL |
|
51 |
POP |
ВС |
|
52 |
,DEC |
С |
|
53 |
JR |
NZ.L3 |
|
54 |
INC |
DE |
|
55 |
POP |
ВС |
|
56 |
DEC |
С |
|
57 |
JR |
NZ,L2 |
|
58 |
POP |
HL |
|
59 |
PUSH |
HL |
|
60 |
POP |
DE |
|
61 |
RET | |
|
62 L DE |
INC |
D |
74 LUP DEC