Deja Vu #06
30 сентября 1998

CODING - Уроки кодера: Генерилка шариков.


            Генерилка шариков
            -----------------


Ъ╦;-----+    Вот такие симпатичные шарики
т╦;     | (всего 16 фаз по #200 байт) ге-
*╠;     | нерирует нижеприведенная проце-
r╠;     | дура.
║╠;     |    Написана  она может  быть не
═;     | совсем оптимально,  но работает
J═;     | неплохо.
Т═;     │
┌═;     │
"╬;-----+

   Вот и листинг:

        ORG   #6000
        ENT
;Written by Max/CBX/BD (1997).


PHASES  EQU   #8000; Фазы лежат здесь.
SIN     EQU   #6C00
        LD    HL,PHASES
        LD    DE,PHASES+1
        LD    BC,8*8*8*16-1
        LD    (HL),L
        LDIR
        LD    HL,S_DATA
        LD    DE,SIN
        LD    C,65
        LDIR
        LD    H,D
        LD    L,E
        DEC   L
        DEC   L
MK_SIN  LD    A,(HL)
        LD    (DE),A
        INC   E
        DEC   L
        JR    NZ,MK_SIN
        LD    C,#80
        LDIR
        CALL  CH_GEN
        LD    A,16
        LD    HL,PHASES+8
GEN_LP  PUSH  HL,AF
        SLA   A
        CALL  BALL
        POP   AF,HL
        LD    DE,8*8*8
        ADD   HL,DE
        DEC   A
        JR    NZ,GEN_LP
        LD    HL,10072
        EXX
        RET


BALL    LD    (CHESS+1),A
        EXX
        LD    B,#80
        LD    HL,SIN
        LD    DE,SIN+64
BALL1   LD    A,(DE)
        DEC   E
        SLA   A
        EXX
        LD    E,A
        LD    D,64
        LD    A,D
        PUSH  HL,DE
        SUB   E
        SRL   A
        LD    E,A
        SRL   E
        SRL   E
        SRL   E
        LD    D,0
        ADD   HL,DE
        POP   DE
        AND   7
        INC   A
        LD    B,A
        LD    A,1
ROLL    RRCA
        DJNZ  ROLL
        LD    B,A
CHESS   LD    C,0
        LD    A,(HL)
        OR    B
        LD    (HL),A
        CALL  CHAIN
        LD    A,(HL)
        OR    B
        LD    (HL),A
        POP   HL
        EXX
        LD    A,(HL)
        INC   L
        SUB   (HL)
        EXX
        JR    Z,C1
        LD    A,L
        ADD   A,8
        LD    L,A
        JR    NC,C1
        INC   H
C1      EXX
        LD    A,B
        AND   16
OLD     CP    0
        JR    Z,ENDL
        LD    (OLD+1),A
        LD    A,(CHESS+1)
        XOR   16
;Здесь можно воткнуть команду ADD A,5.
        LD    (CHESS+1),A
ENDL    DJNZ  BALL1
        RET


CH_GEN  LD    DE,CHAIN
        LD    B,#80
        EXX
        LD    HL,SIN
        EXX
CH_LP   PUSH  BC
        LD    HL,CH_EXMP
        LD    BC,NODOT-CH_EXMP
        LDIR
        LD    C,CHAIN-NODOT
        EXX
        LD    A,(HL)
        INC   L
        SUB   (HL)
        EXX
        JR    Z,JR_OK
        DEC   C
        DEC   C
        INC   HL
        INC   HL
JR_OK   LDIR
        POP   BC
        DJNZ  CH_LP
        LD    A,201
        LD    (DE),A
        RET


S_DATA  DB    #1F,#1F,#1F,#1F,#1F,#1F,#1F
        DB    #1F,#1E,#1E,#1E,#1E,#1E,#1D
        DB    #1D,#1D,#1D,#1C,#1C,#1C,#1B
        DB    #1B,#1B,#1A,#1A,#19,#19,#18
        DB    #18,#17,#17,#16,#16,#15,#15
        DB    #14,#14,#13,#12,#12,#11,#11
        DB    #10,#0F,#0F,#0E,#0D,#0D,#0C
        DB    #0B,#0A,#0A,#09,#08,#08,#07
        DB    #06,#05,#05,#04,#03,#02,#02
        DB    #01,#00


CH_EXMP BIT   4,C
        JR    Z,NODOT
        LD    A,(HL)
        OR    B
        LD    (HL),A
NODOT   JR    NOSTEP
        LD    A,D
        SUB   E
        JR    NC,NOADD
        ADD   A,64
        RRC   B
        JR    NC,NOADD
        INC   HL
NOADD   LD    D,A
NOSTEP  INC   C
CHAIN   EQU   $




Другие статьи номера:

Аперативчик - Об управлении в оболочке DEJA VU

Аперативчик - Точность - вежливость королей; о новом выпуске журнала.

Тема - Fun Top-98 или очевидное и невероятное.

Тема - Интервью с Вл. Балчукеем перед Fun Top-98.

Тема - Результаты Fun Top-98.

Тема - Фоторепортаж с Fun Top-98.

Капля припоя - ПЗУ, которые мы выбираем.Обзор ПЗУ: Penatagon128, Scorpion ZS256,Spectrum128-фирменный вариант,Spectrum+2,Spectrum+2, Spectrum+3, ПЗУ от PROFI CLUB.

Капля припоя - Дополнительный графический режим 512x192.

SOFTWARE - Новинки демосцены: FOREVER, ADRENALIZE, BOOM,TYRANY,BLAME, EMERGENCY, KATNARSIS.

SOFTWARE - Новинки игровых программ: A LAST HERO of the LIGHT FORCE, MONSTR LAND, ЗЕРКАЛО.

CODING - Сверхбыстрое форматирование дисков SPECCY.

CODING - Уроки кодера: Фрактальный папаратник.

CODING - Драйвер чтения/записи.

CODING - Уроки кодера: Генерилка шариков.

CODING - Алгоритмы сжатия информации.

CODING - Об обечатке в листинге использования стека (в 5 номере).

ANOTHER WORLD - WINDOWS-95 и не только.

ANOTHER WORLD - Новости от INTEL-а...

ANOTHER WORLD - РС и работу софта

Доска почета - О спектрумских журналах.

Доска почета - письма в редакцию.

Доска почета - О CD-ROM проекте из города Кемерово.

Семь и 1/2 - Особенности национального рулеза 2 или упорядоченное движение электронов.

Семь и 1/2 - Руководство для потребителей пива.

Семь и 1/2 - Что делать , если не работает компьютер (Инструкция для хаккеров).

Семь и 1/2 - Гадание на таракане (Советы начинающему охотнику).

Семь и 1/2 - Инструкция по пользованию шариковой ручкой.

Проба пера - Стихи А. Баженова: Свечи, Смятение, Осень, Безисходность.

Проба пера - Приключения Винни Пуха (часть 3).

Проба пера - Сутки хаккера обыкновенные.

Реклама - Реклама и объявления ...


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - Производители: KAY - Турбирование Spectrum - машин
Кодерам - Сага о бордюре продолжается. Табличные движения.
Warez - DejaVu XX,#0A, c2h5oh 2, madriel 1k, rabbit3-4, kaka3-4.

В этот день...   21 сентября