Odyssey Magazine #02
14 июля 1997

Почта - Печать строки 32-х символьным шрифтом.

 Печать строки 32-х символьным шрифтом.

 Нижний  байт  знакогенератора должен быть
пустой.
 Процедура  печати символа непосредственно
интегрирована  в печать строки для получе-
ния  максимальной  скорости. Использование
печати  символа  какой-либо точкой входа в
теле  процедуры  печати  строки достаточно
затруднительно.

hl-адрес начала строки
b  -  длина строки =32 всегда. Прекращает
печать  по  достижении #0D или предельной
длины строки.
c -позиция Y.

Позиция  X жестко определена =0,хотя можно
без  труда  при  чтении  адреса из таблицы
прибавить необходимый X. После такой моди-
фикации  становится  возможной печать оди-
ночного символа с любыми координатами, по-
лагая b=1.
Предложенное  не  было  сделано мною, т.к.
процедура   разрабатывалась  исключительно
для печати с 0-й позиции по X.


PRLINE  LD HL,LINE
        PUSH HL
        LD C,10
        LD B,32


        LD A,C          ;инициализация
        LD H,0          ;адреса.Адрес
        ADD A,A         ;в экране чита-
        LD L,A          ;ется один раз
        LD DE,TABST     ;для всех симво-
        ADD HL,DE       ;лов строки
        LD E,(HL)       ;<здесь возможна
        INC HL          ;<доработка
        LD D,(HL)       ;адрес (0,Y)-в BC
        POP HL


SSM1    LD A,(HL)       ;чтение строки
        CP #0D          ;выход,если конец
        RET Z
        PUSH DE         ;в de-экранный
        EXX             ;адрес
        POP BC
PR      LD L,A          ;расчет координат
        LD H,0          ;символа в наборе
        LD DE,FONTST-256
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,DE       ;адрес символа


        DEFS 6,#7E,#23,#02,#04
      ; LD A,(HL)
      ; INC HL     Блок повторен RAS-1
      ; LD (BC),A  раз
      ; INC B     /
        LD A,(HL)
        LD (BC),A
        EXX
        INC HL          ;приб. указатель
        INC E           ;коорд x=x+1
        DJNZ SSM1
        RET             ;вых.,если строка
                        ;длиннее 32 симв.

FONTST  EQU 15360+256+1
;чтобы   не  загружать  знакогенератор  с
;пустым  последним байтом, он формируется
;смещением указателя на 1

LINE    DEFM ' PROBE OF 32 SYMBOLS PRIN
               TING.  '   ;пробная строка


;таблица для скроллингов и печати
TABST   DEFB #00,#40,#20,#40,#40,#40,#60,
             #40,#80,#40,#A0,#40,#C0,#40,
             #E0,#40
        DEFB #00,#48,#20,#48,#40,#48,#60,
             #48,#80,#48,#A0,#48,#C0,#48,
             #E0,#48
        DEFB #00,#50,#20,#50,#40,#50,#60,
             #50,#80,#50,#A0,#50,#C0,#50,
             #E0,#50
TABEN   EQU $-1


  Печать  64 символа в строке нисколько не
более сложна, чем печать 32 символа. Быст-
рота  печати  сильно  зависит от того, как
хранится  знакогенератор.  Хуже всего дело
обстоит   при  использовании  шрифта  типа
"TASM",  где в одном знакоместе хранится 2
символа. например:

   12 34 56 78 90   ... AB CD EF ....


В наиболее неудачном случае приходится ро-
тировать  байт  4 раза и накладывать маску
(зависит от способа ротации).
Более быстрым является дублирование:

    11 22 33 44 55 66 77 88 99 00 ...


В этом случае знакогенератор менее компак-
тен,  хотя и не превосходит размерами 32-х
символьный.  Печать сводится к определению
типа накладываемой маски, т. е. фактически
это  32-х симв. печать с затиранием одного
или  другого полубайта. Какой именно зати-
рать, определяется из четности X-координа-
ты  нециклическим  сдвигом в флаг C. В ре-
гистре  остается  координата для 32-х сим-
вольной  печати.  Это намного более удобно
по алгоритму, чем для знакогенеранора типа
"TASM".  Вариант с таким модернизированным
фонтом  один из самых оптимальных в приме-
нении, но не по скорости.

Наиболее скоростным является способ печати
с применением 2-х фонтов. От вышеприведен-
ного этот метод отличает только отсутствие
необходимости накладывать на байты символа
маску,  т.к. там все и без того уже чисто.
Т.е.  процедура печати 64 символа в строке
может   быть   сведена  к  обычной  печати
32-сомвола,  но с переставлением указателя
на  фонт  или  применения  двух идентичных
процедур с разными указателями и выбор од-
ной из процедур по мере надобности.
  Эту  процедуру  я  и  прилагаю в формате
TASM 3.0. Приводить эту программу в тексте
нет  необходимости, так как она ничем осо-
бенно не отличается от печати 32-симв.

Вообще говоря, к этому тексту я постараюсь
приложить все исходники с надеждой, что по
дороге они не потеряются.



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

Вступление - Что будет в третьем номере ?

Вступление - об оболочке

Ассемблер - Возможно ли перекинуть экран (6144 байта) за один тик.

Ассемблер - Плавный скрол текста вверх в окне 15x24 знакоместа.

Дискуссия - AMIGA VS PC мнение читателей (VVG).

Презентация - VIRTUAL VISION GROUP из Воронежа .

Отдохнем - Рок энциклопедия: MEGADEATH...

IS-DOS - Проблемы и решения: макросы.

IS-DOS - Практическое применение макросов.

Почта - Скроллинг по строке вверх и вниз.

Почта - Печать строки 32-х символьным шрифтом.

Почта - Процедура пропорциональной печати.

Отдохнем - Рассказ "Чебурашка".

Система - Описание формата PСX.

Система - Описание программ: Y-COMMANDER & MS COMPILER v1.08.

Обзор - Системных программ: XAS 7.1

Обзор - Системных программ: PRO TRACKER 2,1, PRO TRACKER 3,0d

Обзор - Системных программ: ZASM

Разборка - Обзор игр на тему "футболный менеджмент" : Обзор на тему "футболный менеджмент" : THE DOUBLE , MSMANAGER, MANCHESTER UNITED, KENNY, SOCCER RIVALS , 1-ST DIVISION MANA- GER, SUPER LEAGUE, SOCCER BOSS, PROFFESIONAL SOCCER FOOTBALL, MANAGER 2, ADVANCED SOCCER SIMULATOR.

Интервью - Интервью с FIKUS/Flash Inc.

Отдохнем - Однажды на лекции.

История - Хакеры - статья "ОНО" - об истории появления хакерства. ч.2

Система - Перспективы группы Assept Corp: APS v2.0.

Система - Multicolor Studio Compiler

Разборка - Описание игр: SOCCER RIVALS.

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

Новости - Колесо обозрения.

Почта - о письмах

Почта - Конкурс на лучшую головолмку (первые 2 головоломки).

Обзор - Новые игры: TIME COP, UFO III, MORTAL COMBAT, MINELAYER , SEX REVERSY, THE MAGIC OF LOGIC, FEUDAL WARS, КУБОК АВИЛЛИАДЫ , CHOPPER DUEL, BACK TO SCHOLL, LCP, 750 CC GRANDPRX, INTERNA- TIONAL KIKBOXING, TAG TEAM WRESTLING, CAPTAIN PLANET,DOC THE DESTRUE DUX, OLE,TORO!.

Презентация - История группы AURYN.

Подарок - О приложении к журналу.

Деморынок - Хит парад музыкальных дем.

Система - Описание программ: КРАТКОЕ ОПИСАНИЕ КОМАНД Y-COMMANDER.

авторы - авторы журнала


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

Похожие статьи:
Что нового - О новинках в Минске: Adventurer #9, ZX-Power #3, Scenergy #1.
CODING - Использование стека при разрешенных прерываниях.
БАЙК-ШOУ report - Зaключeние...

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