КОДИРОВАНИЕ
Название этого раздела не зря «Кодирование», а не «Программирование». Это означает, что данный раздел полностью посвящён программированию на ассемблере. Впрочем, это не означает, что здесь нельзя обсуждать другие языки, если ты того пожелаешь.
Именно ассемблер заставило меня выбрать то, что для Спектрума это единственный язык, на котором можно профессионально программировать.
Осталось лишь добавить, что этот раздел предназначен для людей хотя бы с минимальными начальными знаниями об ассемблере.
Все упомянутые в журнале процедуры приведены в приложении. Поэтому здесь будет дано лишь описание принципа работы этих процедур и краткая инструкция по использованию. В приложении эти процедуры будут даны в формате двух ассемблеров — GENS и TASM.
Тема этого номера — TR-DOS и всё, что с ним связано.
Первая процедура, которую мы рассмотрим, — это LOADER. Эта процедура выполняет те же самые функции, что и оператор LOAD в Бейсике.
Входные параметры процедуры:
HL — адрес, куда нужно загрузить файл.
DE — адрес, где находится шаблон имени и расширения файла.
Процедура вызывается с помощью команды ассемблера CALL LOAD.
ПРИМЕР:
LD HL,40000
LD DE,FNAME
CALL LOAD
FNAME DEFM "CODEFILEC" ;Шаблон состоит из девяти символов, из которых восемь — имя файла, а девятый — расширение.
Описание принципа работы:
- Создаёт дескриптор файла;
- Заносит в дескриптор имя файла;
- Ищет файл с заданным именем, если находит, то считывает точные данные о нём, если нет — выводит на экран сообщение: NO FILE, далее следует имя файла и расширение.
- Из дескриптора файла считывает необходимые для ROM-процедуры загрузки данные и вызывает её.
Вышеупомянутую процедуру загрузки целесообразно использовать во время создания и отладки программ, а в качестве процедуры загрузки для готовой программы рекомендуется использовать MONOLOADER.
MONOLOADER настолько прост, что его можно полностью привести в журнале.
MONOLOAD
LD C,5
LD DE,(#5CF4)
CALL #3D13
RET
Входные параметры:
HL — адрес, куда нужно загрузить файл;
B — количество загружаемых секторов.
Процедура вызывается ассемблерной командой CALL MONOLOAD.
Описание принципа работы:
- Заносит в DE текущий сектор и дорожку.
- Вызывает ROM-процедуру загрузки.
Особенность программы в том, что все файлы должны идти подряд и нужно самому указывать длину файла в секторах.
Данная процедура используется следующим образом:
- Создаётся кодовый файл (загрузчик) на Бейсике (это делается путём резервирования за REM нужного количества байт и записи загрузчика из DOS по адресу 23872+257).
- Вслед за бейсик-блоком на диск в правильном порядке записываются файлы и объединяются с помощью ADM 7.08, или же сделайте это сами в каком-нибудь дисковом мониторе.
Эта информация далеко не исчерпывающая для нормальной работы с TR-DOS. Поэтому, если у вас возникли какие-либо вопросы или предложения, пишите в редакцию или звоните.
ПРОДОЛЖЕНИЕ СЛЕДУЕТ
ИНФО
Раздел: Кодирование.
Статья: TR-DOS loaderi.
Автор: Rihards (WORLD SOFT).
Дата: 21.07.95.
Адрес редакции: DAXY, Mālkalnes 27-33, LV-5000, Ogre.
Телефоны: 8250-23533, спрашивать Egonu;
8250-44058, спрашивать Rihardu.
Факс: 8250-46295.
Поделитесь вашим мнением о статье