PDA

Просмотр полной версии : Инициализация TR-DOS



valker
23.03.2007, 13:00
Вплотную подошёл к тому, чтобы разрабатываемая программа считала наконец-таки что-то с диска. Пишу на IAR-C, компилирую в sna-формат, а посему вопрос:
Какие системные переменные нужно инициализировать, чтобы потом можно было вызывать TR-DOS через 0x3D13. В "ZX-Spectum и TR-DOS для пользователей и программистов 3-е издание, Питер, С-Петербург, 1994" на странице 179 написано:
Точка по адресу 15649 (прим. valker: 0x3D21)... её назначение - установка системы TR-DOS. При этом в памяти открывается область системных переменных и происходит её инициализация.Следовательно вопрос такой:
Какие переменные должны быть установлены ПЕРЕД вызовом 0x3D21?

Заранее спасибо.

Sonic
23.03.2007, 13:09
Логично предположить, что программу ты уже загрузил с диска. При этом TR-DOS уже была инициализирована и делать ничего не надо. Просто работаешь и все.
Это нужно только в том случае, если первым обращением было обращение к #3D13 после команды NEW или USR 0. Это возможно только если мы имеем резидент, оставшийся после NEW, или загрузили нашу программу с магнитофона. Это редкость.
Я сам никогда этим не пользовался. Можешь почитать дизассемблер - там я писал все параметры. Кажется ничего не надо (хотя подразумевается что бейсик-48 жив и здоров). Только тогда надо еще кучу всего делать - определять дисководы например.
В общем гемор. Если действительно не надо - не связывайся.

valker
23.03.2007, 13:16
Логично предположить, что программу ты уже загрузил с диска. При этом TR-DOS уже была инициализирована и делать ничего не надо. Просто работаешь и все.
Это нужно только в том случае, если первым обращением было обращение к #3D13 после команды NEW или USR 0. Это возможно только если мы имеем резидент, оставшийся после NEW, или загрузили нашу программу с магнитофона. Это редкость.
Я сам никогда этим не пользовался. Можешь почитать дизассемблер - там я писал все параметры. Кажется ничего не надо (хотя подразумевается что бейсик-48 жив и здоров). Только тогда надо еще кучу всего делать - определять дисководы например.
В общем гемор. Если действительно не надо - не связывайся.

Видимо, при загрузке на реальном спектруме так и будет. НО! Дело в том, что я работаю под эмулятором (unreal) и гружу подготовленный образ в sna-формате. В нём по всем адресам системных переменных и бейсика и TR-DOS лежат банальные нули.

Evgeny Muchkin
23.03.2007, 15:26
В нём по всем адресам системных переменных и бейсика и TR-DOS лежат банальные нули.
Проинициализируй все, сохрани все эти переменные. А потом запихивай их каждый раз в sna-файл.