|
Этюды - программа гашения экрана случайным образом.
|
© А.Волков, г. Березники, Пермской обл.
Хочу предложить в рубрику "Этюды" свою программу. Подобной я у вас еще не встречал. Эта программа выполняет гашение экрана случайным образом по знакоместам.
10 |
|
ORG |
|
40000 |
20 |
|
ENT |
|
$ |
30 |
L1 |
LD |
|
BC, 3 |
40 |
|
LD |
|
HL,22528 |
50 |
|
LD |
|
E, B |
60 |
L2 |
LD |
|
A, (HL) |
70 |
|
AND |
|
A |
80 |
|
JR |
|
Z,L4 |
90 |
|
EXX |
|
|
100 |
|
INC |
|
DE |
110 |
|
LD |
|
A, D |
120 |
|
AND |
|
7 |
130 |
|
OR |
|
0 |
140 |
|
LD |
|
D,A |
150 |
|
LD |
|
A,(DE) |
160 |
|
EXX |
|
|
170 |
|
AND |
|
7 |
180 |
|
LD |
|
D,A |
190 |
|
LD |
|
A, (HL) |
200 |
|
AND |
|
7 |
210 |
|
SUB |
|
D |
220 |
|
JR |
|
NC, L3 |
230 |
|
XOR |
|
A |
240 |
L3 |
LD |
|
(HL),A |
250 |
|
LD |
|
E, 1 |
260 |
L4 |
INC |
|
HL |
270 |
|
DJNZ |
L2 |
|
280 |
|
DEC |
|
C |
290 |
|
JR |
|
NZ.L2 |
300 |
|
LD |
|
BC,10000 |
310 |
|
CALL |
L5 |
|
320 |
|
DEC |
|
E |
330 |
|
RET |
|
NZ |
340 |
|
JR |
|
L1 |
350 |
L5 |
PUSH |
BC |
|
360 |
PUSH |
AF |
370 L6 |
DEC |
BC |
380 |
LD |
A, B |
390 |
OR |
C |
400 |
JR |
NZ, L6 |
410 |
POP |
AF |
420 |
POP |
BC |
430 |
RET |
|
ORG |
30000 |
|
|
LD |
C, #18 |
; |
Настройка на диск. |
CALL |
#3D13 |
|
|
LD |
HL,#5CDD |
; |
Заполнение имя файла пробелами. |
PUSH |
HL |
|
|
LD |
B, 8 |
|
|
LD |
(HL),#20 |
|
|
INC |
HL |
|
|
DJNZ |
ZAP_ |
|
|
LD |
(HL),"B" |
; |
Установка некоторых |
LD |
L, #06 |
; |
переменных DOS. |
LD |
(HL),#09 |
|
|
LD |
L, #F9 |
|
|
LD |
(HL),#00 |
|
|
LD |
HL,(#5C5D); |
Системная переменная CH_ADD. |
INC |
HL |
|
|
LD |
B, 8 |
; |
Переброска не более 8 байт, |
POP |
DE |
; |
записанных за REM в дескриптор |
INC |
HL |
; |
файла. |
LD |
A, (HL) |
|
|
CP |
#0D |
; |
Если конец строки - то и конец |
JR |
Z,IN_F1 |
; |
файла. |
LD |
(DE),A |
|
|
INC |
DE |
|
|
DJNZ |
IN_F |
|
|
LD |
C, #0A |
; |
Проверка на наличие |
CALL |
#3D13 |
; |
файла на диске. |
INC |
C |
|
|
JR |
NZ,LOAD |
; |
Если файл есть - то переход на LOAD, |
RST |
#08 |
; |
иначе сообщение об ошибке. |
DEFB |
#0E |
|
|
XOR |
A |
; |
По адресу #5DA0 должно быть #00. |
LD |
(#5DA0),A |
|
|
LD |
C, #0E |
; |
Загрузка файла. |
CALL |
#3D13 |
|
|
LD |
HL,(#5C42) |
; |
В HL номер стартующей строки. |
LD |
(#5C45),HL |
; |
Номер выполняющейся строки. |
RST |
#08 |
; |
Сообщение "OK" |
DEFB |
#FF |
|
|
Длина процедуры 60 байт. В 300 строке можно изменять скорость выполнения программы в широких пределах. Для испытания программы можно использовать следующую программу на BASICe.
10 CLEAR 3 9999 2 0 LOAD "CLS" CODE 4 0000 30 LOAD "SCREEN" SCREEN$ 4 0 RANDOMIZE USR 4 0000
В 30 строке загружается любой файл-экран.
СОДЕРЖАНИЕ:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Форум-Игры - рассмотрены следующие игры: 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.
-
-
-
-
-
-
-
-
-
-
-
-
-
|
|