ZX Review
#5-6
04 ноября 1997 |
|
Форум - Программы "Пламя" и "Дракон".
(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 Здесь задан короткий цикл для простоты, кроме того, нет ника- ких особых ухищрений - все дол- жно быть предельно понятно. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября