ZX Pilot
#40
30 декабря 2000 |
|
Сделай сам - исправление программы для форматирования дисков FAST FORMAT'а.
С Д Е Л А Й С А М I ────────────────────────────────────────── (C) SKL-KEEPER Исправление FAST FORMAT'а. Появилась у меня не так давно програм- мка, по всей видимости, интересная (прис- лал уважаемый ZePagan). Почему по всей ви- димости? Да потому, что на моем Скорпионе она не пошла :-( Неправильный опрос mouse, поэтому она у меня загружается и "висит", не реагируя на клавиатуру. А судя по тому, что я видел на экране, программа с интри- гующим названием FAST FORMAT, разработан- ная Владимирон Чепрасовым из Днепропетров- ска, позволяет форматировать дискеты как в системе TR-DOS, так и в IS-DOS, и в MS-DOS (360, 720 и 800 kB), и даже в CP-M! Обидно мне стало... Ну нет у меня этого "девайса", и, может, никогда не будет, так что ж я, и не человек, что-ли?! (Кстати, аналогичная ситуация у меня была и с ZX- WINDOWS 1.4...) И решил я попробовать ее "оживить"... Вот этому я и хочу посвятить свою заметку. Итак, воспользовавшись теневым монитор- ом своего "Скорпиона", я выяснил, что от- ключить мышку можно очень даже просто. Оп- рашивается она командой CALL #9BE5, а на- ходится эта команда по адресу #9C61. Стоит нам забить нулями эти три байта и дело сд- елано! Мышка отключена и можно воспользо- ваться клавиатурой для выбора опций и за- пуска! Но есть одно "но"... Это ведь самое простое, что можно сделать, и после такого грубого вмешательства вряд-ли вам скажет спасибо какой-нибудь Спектрумист, которому вы подарите доработанную таким образом программу, если mouse у него имеется... Дорабатывать, так уж цивилизованно! :-) Надо просто вставить в свободное место программы небольшую процедурку, которая определяет наличие "мышонка" правильно и, если таковой будет ею обнаружен при запус- ке программы, она ничего не будет делать, а просто передаст управление основной про- грамме. Если же такого девайса эта проце- дура не обнаружит, она забьет нулями это самое CALL #9BE5 и программа будет коррек- тно работать уже только от клавиатуры. Теперь конкретные рекомендации тем, кто оказался в такой же безвыходной ситуации, как и я (а иначе зачем бы я стал хозяйни- чать в чужой программе?). С помощью GLOBAL COMMANDER'а 1.31i или другим способом разрежьте файл FASTFORM на два - длиной в 1 и 27 секторов. Первый - это BASIC-загрузчик, а второй - это запа- кованный с помощью программы HRUST 1.0 ко- довый блок. Распаковать его можно элемен- тарно-простым способом с помощью великоле- пного (не могу скрыть своего восхищения этой программой!) BEST VIEW 2.9. После то- го, как файл будет записан на Вашу рабочую дискету, дисковым доктором подправьте ста- ртовый адрес этого кодового блока на #8000 (32768), а заодно исправьте расширение с "B" на "C". Процедуру, которая корректно определяет наличие мышки, я нашел в приложении газеты ZX-Pilot #36. В любом ассемблере наберите програмку: ; Kempston Mouse Interface ORG 46355 HALT LD BC,65503 IN H,(C) LD B,251 IN L,(C) DEC B IN A,(C) CP L JP NZ,32768 ;Мышка есть! CP H JP NZ,32768 ;Мышка есть! XOR A ;Мышки нет! LD (#9C61),A LD (#9C62),A LD (#9C63),A JP 32768 Отассемблируйте ее и объектный код за- пишите на диск под именем "mouse". Длина этой процедуры будет 34 байт. Теперь запишите его сразу следом за ра- спакованным Fast Format'ом с помощью прос- той программы на BASIC'е: 10 CLEAR 30000:RANDOMIZE USR 15619:REM: LOAD "UNPACK" CODE 32768,13587 20 RANDOMIZE USR 15619:REM:LOAD "mouse" CODE 46355,34 30 RANDOMIZE USR 15619:REM:SAVE "NEWFF" CODE 32768,13621 Пришла пора опять запаковать уже изме- ненный нами кодовый блок. Для этого загру- зите HRUST 1.3, выберите курсором этот файл и запакуйте его, установив следующие параметры: Адрес блока - CAT Длина - CAT Декомпрессор - 32000 Куда распачить - 32768 Прерывания - EI Автостарт - 46355 Стек - OFF DePacker - ON Последнее, что надо сделать - это опять "склеить" первый файл с длиной 1 сектор и только-что запакованный нами файл длиной 27 секторов. Сделать это можно тем же GC 1.31i или REAL COMMANDER-ом или еще чем- нибудь, что Вам больше нравится :-) И все! Теперь отсутствие мышонка не ом- рачит вашего существования :-) Несколько слов напоследок об этой прог- рамме. Прога отличная, скорость форматиро- вание - невероятная (быстрее мне не попа- далось форматера). Что интересно, попробо- вал отформатировать в IS-DOSе - процесс прошел отлично, диск отформатировался и на нем оказалось уже созданным устройство в 3200 секторов с наименованием диска - IS- DOS! Проверка доктором показала, что фор- матирование прошло отлично! (Правда, спа- ведливости ради, замечу, что в IS-DOS 1999 года диск, отформатированный программой FAST FORMAT, не определяется, как IS-DOS' овский при попытке его открыть :-( В MS- DOS'е и CP-M не стал форматить, т.к. не на чем проверить :-( А TR-DOS'овский формат значительно лучше по качеству, чем, к при- меру, форматтер REAL COMMANDER'а (проверял на "запиленных" дискетах). В общем, прогр- амма стоящая! Попробуйте и сами убедитесь!
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября