(c) Телицын С., г.Нижнекамск
Я страстный любитель спеку и
ZX РЕВЮ читаю с первого номера,
но все никак не удосуживался на-
писать - как-то не до того было.
Перейду сразу к делу.
Предлагаю на ваш конкурс этю-
дов небольшую программку. На-
писана она, правда, не мной, но
привожу я ее с разрешения автора
Mihal Soft°. Это так называемое
"Пламя".
org 5CD0h
begin: ld bc, 3E8h
loop_1: dec bc
ld a, b
or c
jr nz, loop_1
ld de, 5B00h
ld b, 20h
loop_2: inc hl
ld a, h
and 1Fh
ld h, a
ld a, (hl)
rra
ld a, 0
jr c, loop_3
ld a, 3Fh
loop_3: ld (de), a
inc de
djnz loop_2
ld ix, 57FFh
ld bc, 300h
loop_4: ld a, (ix+32)
add a, (ix+33)
add a, (ix+34)
add a, (ix+65)
srl a
srl a
jr z, loop_5
dec a
loop_5: inc ix
ld (ix+0), a
dec bc
ld a, b
or c
jr nz, loop_4
ld a, 7Fh
in a, (0FEh)
rra
jr c, begin
ret
Чертовски красиво, не правда
ли? Кроме того, если использо-
вать второй экран на 128K-маши-
не, можно сделать так: на одном
экране в знакоместе 2 цвета, на
другом еще два, а по ходу луча
переключать через каждые 4 стро-
ки. Таким образом, разрешение
увеличится в 2 раза.
Прим. ред.: Вышеописанный эффект, как
нетрудно заметить, зависит от содержимого
ячеек памяти #5B20-#5B3F, которое не опре-
делено при работе программы. Поэтому перед
запуском эффекта лучше установить значения
этих ячеек (например, равными 0 или #FF),
чтобы эффект не зависел от случайных чи-
сел, которые могли там находиться.
Кроме того, хочу предложить
интересную, на мой взгляд, тему
для обсуждения (фракталы и граф-
талы - что это такое), а для
примера предлагаю небольшой при-
мер от себя: "Дракон":140.
X_Y EQU #4040
ORG 40000
DI
LD BC,X_Y
CALL PRINT
LD D,0
LD E,1
BEGIN LD A,E
DEL_2 SRL A
JR C,NECET
JR DEL_2
NECET RLA
LD H,A
SRL H
SRL H
SLA H
SLA H
SUB H
LD H,A
CP 1
JR NZ,NE_1
LD A,D
AND A
JR Z,D_03
DEC D
JR DALEE
NE_1 INC D
JR DALEE
D_03 LD D,3
DALEE LD A,D
CP 4
JR NZ,DALE2
LD D,0
DALE2 LD A,D
AND A
JR Z,_0_2
LD A,D
CP 1
JR Z,_2_0
LD A,D
CP 2
JR Z,_0__2
LD A,D
CP 3
JR Z,__2_0
PP1 INC E
JR NC,BEGIN
EI
RET
_0_2 INC C
CALL PRINT
JR PP1
_2_0 INC B
CALL PRINT
JR PP1
_0__2 DEC C
CALL PRINT
JR PP1
__2_0 DEC B
CALL PRINT
JR PP1
PRINT PUSH BC
PUSH DE
CALL 8933
POP DE
POP BC
RET
2
Здесь задан короткий цикл для
простоты, кроме того, нет ника-
ких особых ухищрений - все дол-
жно быть предельно понятно.
* * *