KrNews #05
24 июля 1998

Кодерам - Быстрая процедура точки.

<b>Кодерам</b> - Быстрая процедура точки.
┌──────────────────────────────────────┐
│                CODING                │
└──────────────────────────────────────┘

      (C) Viper/Techno Laboratory
   
   Посмотрев другие компьютерные газеты,
я   нашел   там   разделы,   посвященные
программистам. Думаю, что  НАША  (ВАША!)
газета  ничем  не  хуже  (по-моему  даже
лучше  многих) и  пора  восполнить  этот
пробел.
   Сегодня  здесь  будет  4   процедуры,
которые довольно часто используются  при
программировании:
   
   1) быстрая процедура точки
   2) обмен двух областей памяти
   3) быстрое деление
   4) быстрое умножение
   
   
   1) Над этой процедурой я долго ломал
голову и изобрел (как оказалось позднее)
велосипед. Но  зато  потом  я   придумал
процедуру еще быстрее (69 тактов), но ее
я вам не дам, если  кому  надо, тот  сам
придумает. :-)
   Этот вариант берет 73 такта, для  его
работы  нужно  1024  байта   непрерывной
памяти. Подпрограмма создания таблиц об-
зывается CRT. Координаты точки  задаются
в DE (XY). Таблицы падают вниз, то  есть
если PTY=#FE00, то еще  3  сектора  ниже
будут  использованы. В  самой  процедуре
точки (ZIP) вторая команда
               LD H,'PTY
есть ничто иное как  операция  выделения
старшего байта (ALASM). Подобная команда
имеется  в   STORM,  и   насколько   мне
известно ZXASM3. Если Ваш  ассемблер  не
поддерживает   подобные   вещи,  задайте
старший  байт  напрямую,  хотя   это   и
неудобно.

 ;ZIP PLOT 1.4
 ;Author: Viper of TechnoLab
 ;73 Tacts, 4 Tables take 4 sectors

       ;PTY - Down HiB, LEN=192
       ;PTX - Down LoB, LEN=192
       ;ADX - Div8 Lin, LEN=256
       ;PTB - BitSet N, LEN=256

       PTY EQU #FF00
      ;PTX EQU #FE00 
      ;ADX EQU #FD00  > для справки
      ;PTB EQU #FC00 /


       ORG 40000
       ENT

       CALL CRT
       LD DE,#0909 ;   координаты точки
       CALL ZIP
       RET

ZIP    LD L,E
       LD H,'PTY
       LD B,(HL)
       DEC H
       LD A,(HL)
       DEC H
       LD L,D
       ADD A,(HL)
       LD C,A
       DEC H
       LD A,(BC)
       XOR (HL)
       LD (BC),A
       RET 

CRT    LD HL,PTY   ;   создание таблиц
       LD DE,#4000 ;   основной экран
       LD BC,#C020
CR1    LD (HL),D
       DEC H
       LD (HL),E
       INC L
       INC H
       INC D
       LD A,D
       AND 7
       JR NZ,$+12
       LD A,E
       SUB #E0
       LD E,A
       JR NC,$+6
       LD A,D
       SUB 8
       LD D,A
       DJNZ CR1
       LD L,H ;только для данных адресов
       DEC H  ;в общем случае LD L,#FF
       DEC H
CR3    DEC C
       LD B,8
CR2    LD (HL),C
       DEC L
       DJNZ CR2
       INC C
       DEC C
       JR NZ,CR3
       DEC H
       INC A
CR4    LD (HL),A
       RLCA 
       DEC L
       DJNZ CR4
       RET



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

INTRO - Прошел "День программиста".

Событие - Появился выход в INTERNET.

BBS-File - лог XTR-MODEM/BBS v156!

SCENERGY - Анкета журнала SCENERGY.

Playing - Советы по прохождению игр: Бегство на Хархан, Сталкер.

Ferrum! - схема модема KrVicomm v1.0.

Ferrum! - Схема для снятия виком модемом трубки.

Ferrum! - Как добиться хорошей связи с BBS.

Кодерам - Быстрая процедура точки.

Кодерам - Обмен двух областей памяти.

Кодерам - Процедуры быстрого деление и умножение.

Авторы - об авторах.

INCOMING - Описание особенностей игры DAEMON.

MUZAKING - Музыкальный скелет.

KrZxNet - О KrZxNet адресации.

P-Net - Открыт узел и хаб P-Net.

Письма - Отклики читателей о газете.

Таланты - Лирика "Если хочешь ты ПыЦы".

Таланты - Russian Radio 101.8 FM.

Таланты - Крутой тест о компьютере от BLAZ'а.

P.S. - Post Scriptum - о изменениях в данной версии оболочки.

NEW GAME - Презентация игры ЗЕРКАЛО.

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


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

Похожие статьи:
АLEХ'у от меня - я только рад обоснованной критике.
Раскрутка - Описание игры "Starglider 2".
Юмор - Штирлиц. Продолжение.

В этот день...   29 января