ZX Review
#11-12
26 ноября 1997 |
|
Новые программы - Обзор программ FASTzasm и @-zasm.
(c) Иван Рощин, г.Москва, 1997 WARNING! Описываемые здесь программы предназначены для ис- пользования только вместе с ас- семблером ZX ASM 3.0! Наверняка каждому кодеру из- вестна такая ситуация: вы набра- ли текст какой-либо программы на ассемблере, откомпилировали ее, запустили, а компьютер завис или сбросился. Хорошо, если перед этим вы сохранили исходный текст на диске, а если нет? Тогда ос- тается только... запустить прог- рамму "FASTzasm" или "@-zasm"! Дело в том, что так называе- мый "сброс" компьютера - не что иное, как передача управления по нулевому адресу в ПЗУ-48. При этом очищается только 48-я па- мять, а ассемблер, отладчик и текст вашей программы остают- ся неповрежденными. "Зависание" компьютера также в 99% случаев не приводит к потере исходного текста программы. Итак, пусть после неудачного запуска все закончилось очис- ткой экрана и появлением знако- мой надписи: (C) 1982 Sinclair Research Ltd Ваши дальнейшие действия дол- жны быть такими: - набрать RANDOMIZE USR 15616; - выполнить команду TR-DOS: RUN "FASTzasm" (можно запускать эту программу и из любого boot'а, который не портит 128-ю память); - FASTzasm восстановит содержи- мое памяти по адресам #5B00- #6000 (резидентная часть ас- семблера, стек) и перезапус- тит ассемблер (который остал- ся в 128-й памяти), после че- го вы сможете продолжить ра- боту. Если FASTzasm не обна- ружит в памяти ничего похоже- го на ассемблер, он просто выдаст соответствующее сооб- щение и выйдет в TR-DOS. Если компьютер сбросился, когда вы отлаживали свою прог- рамму с помощью STS'а, может быть так, что активным останет- ся экран в 7-м банке памяти. В этом случае для включения стан- дартного экрана придется "всле- пую" набрать команду: OUT 32765,16 Имеет смысл использовать FASTzasm при сбросе компьютера, даже если вы сохранили исходный текст своей программы. Во-пер- вых, запуск пройдет быстрее, а во-вторых, не придется заново загружать текст и устанавливать параметры в ассемблере и отлад- чике. Рассмотрим еще такую ситуа- цию: вы отлаживаете большую про- грамму, состоящую из нескольких файлов, и изменяете то один, то другой файл. И вот, при попытке записать очередной файл с тек- стом программы на диск, появ- ляется сообщение "Disk full!". Так происходит потому, что на диске образовалось много удален- ных файлов, и свободного места не осталось. Надо бы уплотнить диск, но как это сделать? При попытке вызвать из ZX ASM'а TR- DOS и выполнить команду MOVE вы получите сообщение "Out of RAM". А поднимать стек выше #6000 нельзя - разрушится резидентная часть ассемблера! Можно, конеч- но, временно записать файл на другой диск, нажать RESET, уп- лотнить исходный диск и перепи- сать файл на него, затем запус- тить ZX ASM и, наконец, продол- жить работу. Но уж слишком это долго... Эта проблема легко решается с помощью FASTzasm: вы просто вы- ходите из ZX ASM в бейсик, не сохраняя текстового файла, и спокойно набираете RANDOMIZE USR 0. После этого уплотняете диск (с помощью команды MOVE или фай- ловой оболочки, не использующей 128-ю память) и запускаете FAST- zasm, который восстановит рези- дентную часть ZX ASM'а и запус- тит его. После этого можно запи- сать текстовый файл на диск. Если ZX ASM, FASTzasm и файло- вая оболочка находятся на том же диске, где и рабочие файлы - вам даже не придется менять диски в дисководе! Теперь поговорим о "зависа- нии". Наилучшее средство в та- кой ситуации - кнопка MAGIC. После того, как содержимое памя- ти запишется на диск, нажимайте RESET и запускайте программу "@-zasm". ┌──────────────────────────────────────┐ │ Кстати, если вас интересует, ПОЧЕМУ│ │зависла ваша программа, могу посовето-│ │вать загрузить полученный @-файл в от-│ │ладчик "STS5.1+@" (это обычный STS,│ │доработанный мной так, что при загруз-│ │ке @-файла он устанавливает содержимое│ │регистров процессора таким, каким оно│ │было в момент нажатия кнопки MAGIC). │ └──────────────────────────────────────┘ @-zasm попросит вас вставить диск с записанными в результате нажатия кнопки MAGIC файлами. Нажмите любую клавишу, и начнет- ся чтение этих файлов. Если на диске нет @-файлов или эти фай- лы не имеют отношения к ZX ASM'у, программа выдаст сообще- ние "ZX ASM NOT FOUND IN MEMO- RY!" и выйдет в TR-DOS. После успешного считывания @-файлов программа задаст вам последний вопрос - нужно ли уда- лить эти файлы с диска. Если нужно, нажимайте "Y". Потом нем- ного подождите, и, наконец, за- пустится ассемблер. При работе программы @-zasm в память считывается лишь содержи- мое 1,3,4,6 и 7 банков памяти, а в 48-й памяти восстанавливается только резидентная часть ассем- блера и стек. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября