Deja Vu #07
31 декабря 1997

CODING - Процедура печати группы тектстовых строк из Бейсика.

AY-Track: LOW CODER'S LYRIC (ON FUNTOP'98)
__________________________________________


(C) Стрельников Андрей
__________________________________________


        Процедура печати


   В программах на Basic'e часто использу-
ются процедуры печати  в  машинных  кодах.
Для этого их подключают к новому каналу  и
печатают обычным PRINT, либо  размещают  в
ОЗУ заранее подготовленные сообщения и пе-
редают в процедуру печати их адрес  с  по-
мощью POKE. Предлагаю другой  способ. Дан-
ные передаются через функцию пользователя.
Текст  размещается  в  REM  строках. Адрес
текста расчитывается по номеру первой 1-ой
строки с текстом. Символ конца текста  от-
сутствует. Конец текста  определяется  ОТ-
СУТСТВИЕМ оператора REM в начале следующей
Basic строки. В качестве  примера  привожу
несложную  процедуру  печати, использующую
ПЗУшную RST 16.

; процедура печати группы текстовых  строк
; из Бейсика.
; (с) Стрельников А.С.
; def fn a(n, x, y, t, p, b) = adr
; n - номер первой строки с текстом
; x,y - координаты
; t,p,b, - атрибуты (ink, paper, bright)
; символ конца строки 13 (ВК)
; текст размещается за оператором REM в
; нескольких строках.
; печатаются строки пока не встретится
; строка, которая начинается с другого
; (не REM) оператора.

      ORG  40000
      LD   A,2
      CALL 5633  ; открываем канал 2

; определение адреса 1-ой строки текста

      LD   HL,(23563) ;defadd
      INC  HL
      INC  HL
      CALL 13236
      CALL 7833
      PUSH BC
      POP  HL
      CALL 6510
      LD   DE,5
      ADD  HL,DE ;теперь в HL адрес текста
                 ;после REM

;установка атрибутов печати

      LD   IX,(23563)  ;Defadd
      LD   A,16
      RST  16
      LD   A,(IX+28)   ;ink
      RST  16
      LD   A,17
      RST  16
      LD   A,(IX+36)   ;paper
      RST  16
      LD   A,19
      RST  16
      LD   A,(IX+44)   ;bright
      RST  16


;установка позиции печати

      LD   B,(IX+12)   ;x
      LD   C,(IX+2)    ;y
START LD   A,22        ;at
      RST  16
      LD   A,C         ;y
      RST  16
      LD   A,B         ;x
      RST  16


;печать

PRN   LD   A,(HL) ;взяли символ
      CP   13     ;проверка на код ВК
      JR   2,PS   ;если да-к процедуре пе-
                  ;ревода строки
      RST  16     ;печать символа
      INC  HL     ;увеличиваем указатель
                  ;текста
      JR   PRN    ;печать след. символа

;перевод строки: увеличиваем y на 1
;адрес увеличиваем на 5 (переходим к  сле-
;дующей строке, где  после  REM  находится
;текст: 2 байта номер строки, 2 байта дли-
;на строки и 1  байт - код  13  предыдущей
;строки).

PS    INC  C       ;y=y+1
      LD   DE,5
      ADD  HL,DE   ;adr=adr+5
      LD   A,(HL)  ;если здесь
      CP   234     ;код REM - пропускаем
      INC  HL      ;его и печатаем
      JR   Z,START ;следующую строку, если
                   ;нет - сброс
END   CALL 3405    ;временных атрибутов
      RET          ;выход

   Эта программа во многих  случаях  удоб-
нее, чем просто PRINT. Она  печатает  нес-
колько строк в заданных координатах. Можно
использовать для печати  меню, описаний  и
т.д.



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

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

Аперативчик - Новогодний выпуск DEJA VU...

Тема - Реальное положение дел в ассоциации AMAZING MAKING SOFT.

Тема - Мой выбор - PC.

Тема - Заочный виртуальный фестиваль В Польше - Complex Compo.

Тема - Хронология развития Спектрума в СССР/СНГ.

Капля припоя - Резервы ZX-Spectrum.

Капля припоя - Подключение SIMM к ZX-Spectrum-у.

Капля припоя - Схема подключения 1Mb pin SIMM к компьютеру типа Пентагон.

Капля припоя - Дополнительные ОЗУ: кэш.

Капля припоя - Эмулятор ПЗУ для компьютера ZX-Spectrum v1.0.

Капля припоя - Доработка Пентагона для работы с дисками высокой плотности.

SOFTWARE - Новинки демосцены: ENTER the MIND, LOST MEMORY , PARANOIA, GARLIC RESPIRATION, CRAZY LOVE, MORBID VISION, AIR SPACE, REFRESH, TV-X, HIGHER STSTE.

SOFTWARE - Новинки игровых программ : АДМИРАЛ demo , KOLOBOK ZOOM 2, HOMER SIMPSON В РОССИИ, ЧЕРНЫЙ ВОРОН 2, BOOVIE 2.

SOFTWARE - Новинки системных программ: UNIVERSAL VIEWER v1.0 , MODERN WORD v1, GLOBAL COMMANDER v1.21, BEST VIEW v2.4 , REFRESH OPTIMIZER.

SOFTWARE - Полное прохождение игры "Зеркало".

SOFTWARE - планы по созданию ELITE с залитой графикой.

CODING - DITHERING - дизеринг как он есть.

CODING - Процедура печати группы тектстовых строк из Бейсика.

CODING - Адаптация программ к TR-DOS (загрузка уровней)

ANOTHER WORLD - PENTIUM II Xeon - быстродействующая версия процессора.

ANOTHER WORLD - Перепалка (о журнале AMIGA RULES).

ANOTHER WORLD - Дело московского хаккера.

Доска почета - Отрывки из разговоров на втором дне Fun Top-98: Alex(R), Kano, Boss, Mitchell, Daniel, Serzh.

Доска почета - Интервью с XPEh.

Доска почета - Чем создатель Тетриса занимается в MicroSoft.

Доска почета - Криминал - о наезде на Triumph: история Спектрума в Челябинске.

Доска почета - Презумпция невиновности: о нелегальном распространении журнала.

Доска почета - Ирландское рагу (о демоверсиях программ).

Доска почета - VIRTUAL TR-DOS - что это? (о сайте в Интернете). Новости.

Доска почета - Без комментариев.

Доска почета - Об интрах и демах и т.п., которые не удается сделать крутыми.

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

Семь и 1/2 - Приколы русского радио.

Семь и 1/2 - Анекдоты про программистов.

Семь и 1/2 - VIRTUAL-но AMIG-ный синдром VI или сибирские самородки: приключения Кемеровских спектрумистов.

Проба пера - Отрывок из романа: Лабиринт отражений.

Проба пера - Стихи А. Баженова: Наболело, понимаеш-ш-шь..., Причин для радости немного,Уже октябрь дождем холодным...,REMEMBER!, Одиночество, Волны плещут за кормой..., ождаясь, мы тут и умираем... На перекретке двух миров.

Проба пера - Записки редактора.

Проба пера - Девять жизней Клэр.

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


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

Похожие статьи:
Письмо №294 - Балашов
Игрушки - описание редактора Адевентюр - PAW (часть 2).
Реклама - Cамый большой выбор в Крыму программного обеспечения.

В этот день...   4 апреля