|
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'а (проверял
на "запиленных" дискетах). В общем, прогр-
амма стоящая! Попробуйте и сами убедитесь!
Другие статьи номера:
Похожие статьи:
В этот день... 16 ноября