ZX Review #7-8-9-10
08 ноября 1997

Ретро - 40 лучших процедур: Удаление блока программы.


 7. ПРОЦЕДУРЫ ОБРАБОТКИ ПРОГРАММ

  7.1. Удаление блока программы

  Длина: 42
  Количество переменных: 2
  Контрольная сумма: 5977
  Назначение: эта программа уда-
ляет блок BASIC-программы, нахо-
дящийся между  строками, опреде-
ленными пользователем.
  Переменные:
     Имя: start line no
     Длина: 2
     Ячейка: 23296
     Комментарий:  номер  первой
строки, подлежащей удалению.
     Имя: end line no
     Длина: 2
     Ячейка: 23298
     Комментарий: номер  послед-
ней строки, подлежащей удалению.
  Вызов программы:
     RANDOMIZE USR адрес
  Контроль  ошибок:  если  имеют
место следующие ошибки, то  про-
цедура останавливается без  уда-
ления строк BASIC-программы:
  - если последний номер  строки
меньше, чем первый номер строки;
  - если между этими двумя стро-
ками нет программы на БЕЙСИКе;
  - если один из  номеров  строк
или оба равны 0.
  Комментарий: эта программа до-
вольно  медленна  для   удаления
большого    блока    программных
строк, но, тем  не  менее, рабо-
тать с ее помощью все  же  удоб-
нее, чем удалять строки вручную.
  Не вводите номера строк  боль-
ше, чем 9999.

   ЛИСТИНГ МАШИННЫХ КОДОВ
МЕТКА  АССЕМБЛЕР      ЧИСЛА ДЛЯ ВВОДА147.

        LD HL,(23296)  42   0  91
        LD DE,(23298) 237 91 2 91
        LD A,H        124
        OR L          181
        RET Z         200
        LD A,D        122
        OR E          179
        RET Z         200
        PUSH DE       213
        CALL 6510     205 110  25
        EX (SP),HL    227
        INC HL         35
        CALL 6510     205 110  25
        POP DE        209
        AND A         167
        SBC HL,DE     237  82
        RET Z         200
        RET C         216
        EX DE,HL      235
NXT_CH: LD A,D        122
        OR E          179
        RET Z         200
        PUSH DE       213
        PUSH HL       229
        CALL 4120     205  24 16
        POP HL        225
        POP DE        209
        DEC DE         27
        JR NXT_CH      24 243
2
  Как она работает:
  В пары регистров HL и DE  заг-
ружаются  начальный  и  конечный
номера строк соответственно. Эти
значения проверяются и, если од-
но из них или оба равны 0, прог-
рамма возвращается в BASIC.
  Затем вызывается  подпрограмма
ПЗУ по адресу 6510 - она возвра-
щает адрес в памяти  компьютера,
с  которого  начинается   первая
строка. Эта же подпрограмма  за-
тем вызывается снова для опреде-
ления  адреса  символа, стоящего
после ENTER в конечной строке.
  В пару регистров HL  помещает-
ся разность этих двух адресов и,
если это значение  равно  0  или
отрицательно, программа  возвра-
щается в BASIC.
  Содержимое пары  регистров  HL
копируется в DE для  использова-
ния DE в качестве счетчика. Если
счетчик равен 0, то работа  про-
цедуры завершается, а если  нет,
то вызывается подпрограмма  ПЗУ,
расположенная  по  адресу  4120,
которая  удаляет  один   символ.
После этого - возврат к NXT_CH.



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

TR-DOS для начинающих - Окончание.

Компьютерная новелла - Prince of Persia.

Компьютерная новелла - Лазерная бригада (по игре Laser Squad).

Перекресток драконов - Игра Rapscallion.

Перекресток драконов - Игра The Runes of Zendos.

Перекресток драконов - Игра The Saga.

Перекресток драконов - Игра Witch's Cauldron.

Перекресток драконов - Создаём Адвентюру. Обзор редакторов.

Перекресток драконов - Создаём словарь к Адвентюрной игре.

Программы, которые мы выбираем - Возможные последствия использования недокументированных команд.

Программы, которые мы выбираем - О замеченных шероховатостях в работе некоторых программ и пожелания к следующим версиям.

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

Программы, которые мы выбираем - Несколько предложений по усовершенствованию ассемблера.

Программы, которые мы выбираем - Предложения по доработке ZX Word v2.5.

Программы, которые мы выбираем - Программа "Эмулятор Спектрума" v1.2.

Программы, которые мы выбираем - Что хотелось бы иметь в идеальном ассемблере.

Ретро - 40 лучших процедур: Копирование данных в памяти.

Ретро - 40 лучших процедур: Обмен токена.

Ретро - 40 лучших процедур: Определение адреса БЕЙСИК-строки.

Ретро - 40 лучших процедур: Определение длины БЕЙСИК-программы.

Ретро - 40 лучших процедур: Определение размера свободной памяти.

Ретро - 40 лучших процедур: Поиск и замещение строки.

Ретро - 40 лучших процедур: Поиск подстроки.

Ретро - 40 лучших процедур: Поиск строки.

Ретро - 40 лучших процедур: Составление списка переменных.

Ретро - 40 лучших процедур: увеличение и копирование экрана.

Ретро - 40 лучших процедур: Удаление REM-строк.

Ретро - 40 лучших процедур: Удаление блока программы.

Советы экспертов - Игра Fredloader.

Советы экспертов - Игра Robin of Sherwood: The Touchstones of Rhianon.

Советы экспертов - Игра Scorpions: Die Machines.

Советы экспертов - Игра Terropods.

Страничка iS-DOS - Описание рестартов системы IS DOS.

Форум - Алгоритм распознавания символов.

Форум - Время выполнения недокументированных команд процессора Z80.

Форум - Концепция экрана высокого цветового разрешения.

Форум - Несколько Pokes к играм. Программа Hacman96.

Форум - По поводу новых DOS и BIOS для Спектрума.

Форум - Программа Multicolor на любой модели компьютера. Использование 2-го экрана для Multicolor'а. Демонстрация текста. Электронные журналы.

Форум - Проект ZX Config.

Форум - Усовершенствование Art Studio. Идеи относительно компрессии файлов.

Форум - Эмулятор ZX Spectrum на IBM. По поводу шестнадцатеричной системы счисления. Программа ZX-Stars. Странности в Elita

Форум - Эффекты на бордюре и Multicolor.

Читатель-читателю - ZX Spectrum 128 - новые возможности, новые проблемы.

Читатель-читателю - Группа 'Light'. Спектрум и экспертная система.

Читатель-читателю - Драйвер принтера для Scorpion'а.

Читатель-читателю - Печать чисел в различных системах счисления.

Читатель-читателю - Программирование аркадной игры со скроллингом экрана.

Читатель-читателю - Процедура печати меток ассемблера XAS для монитора-отладчика STS 4.3.

Этюды - Атрибутная бегущая строка. "Гасилка" экрана. Упрощенный вариант процедуры "Занавес". Процедура гащения картинки. Процедура проявления картинки по точкам.

Этюды - Графический эффект "цветные полосы".

Этюды - Драйвер экрана для печати по 64 символа в строке.

Этюды - Комплект защит загрузчиков.

Этюды - Обращение к диску в режиме IM 2. Работа с диском нестандартного формата.

Этюды - Печать символа, увеличенного в 8 раз. Программа "наливания" экрана. Процедура гашения экрана по точкам. Очистка экрана как в Terminator'е. Поиск последовательности символов в памяти. Система перекодировки символьного набора.

Этюды - Программа - каталогизатор дисков.

Этюды - Программа вывода значений амплитуды каналов муз. сопроцессора на бордюр.

Этюды - Программа вывода картинки.

Этюды - Программа зажигания спрайта.

Этюды - Программа очистки заданного окна экрана.

Этюды - Программа сортировки массива по возрастанию. Процедура заполнения экрана заданным атрибутом. Процедура проявления картинки. Эффект летящих навстречу звезд. "Душ", идущий из верхнего левого угла экрана. Процедура "осыпания" картинки по пиксельным линиям. Программа "вытягивания" картинки под углом в 45 градусов. Три процедуры "Scroll".

Этюды - Процедура печати чисел.

Этюды - Процедура прорисовки символа с помощью атрибутов.

Этюды - Процедура проявления картинки. Fade-OUT эффект (картинка уходит за края экрана). Графический эффект "Фонтан". Fade-OUT эффект, имитирующий выключение телевизора. Процедура "зажигания" картинки. Программа плавной прорисовки картинки.

Этюды - Процедура рисования линии.

Этюды - Процедура составления оптимальной таблицы символов.

Этюды - Скроллинг строк текста в заданном окне. Атрибутный скроллер. Диагональный скроллинг.

Этюды - Спрайтовый скроллер. Процедуры проявления экрана.

Этюды - Укороченная процедура индикации амплитуды каналов муз. сопроцессора. Способ вычитания константы из регистровой пары HL.

Этюды - Формула для вычисления дня недели.


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

Похожие статьи:
BBS на ZX - О версиях терминальной программы Macro Modem. Скоро откроется новая сеть - Omega Net.
Система - Описание музыкального редактора FLASH TRACKERa v2 (for SOUND DRIVER v1.0).
Футбольный клуб - Вот уж отшумели футбольные баталии полуфинала Лиги Чемпионов...

В этот день...   26 июня