|
Wallpaper
#07
06 ноября 1999 |
|
Письмо в номер - CompoWellcome о новой прошивке TR-DOS v6.05E

╔───────────────────╗
│ 4. ПИСЬМО В HОМЕP │▐
╚───────────────────╝▐
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
От редакции: CompoWellcome продолжает
радовать нас своими новыми прошивками ПЗУ.
Окольными путями добиралось это послание
до нас. Но это уже отдельная история...
─────═════════─────
(c) CompoWellcome
TR-DOS v6.05E vs TR-DOS v5.13F
или
все что Вы хотели знать о TR-DOS 6.05Е,
но боялись спросить.
В связи с выходом Узбекистанских спек-
трумистов (в количестве четырех штук) в
Фидо, было решено с гордостью объявить на
весь мир (Спектрума) о том, что не только
в столь далекой (или близкой, кому как)
России изготовляются новые ПЗУ'шечные при-
бамбасы к нашему компьютеру. То, что писа-
лось ранее о этой прошивке в Wallpaper'е -
полный suxx, потому что во-первых расчиты-
валось только на местную публику, а
во-вторых было давно и не правда :-).
Итак, приступим к рассмотрению и срав-
нению всевозможных наворотов в ДОС'ах 6.05
и 5.13.
-= CUT =-
Для несведующих: TR-DOS 5.13F - новая
:) прошивка ДОС'a (и только) с разными на-
воротами из России, а TR-DOS 6.05E вещь
местного производства ;-))).
-= CUT =-
Сразу оговорюсь, что в нашей прошивке
подвергся изменению не только ДОС, но и
BASIC 128 (вместо 128 Basic'a можно ис-
пользовать MadRom).
Предварительно должен признаться, что
большинство идей отнюдь не собственного
производства, а взяты из самых разных
ДОС'ов. После чего все было засунуто в
TR-DOS 5.04Е (если не ошибаюсь). Да и са-
мой статье используются отрывки :) из опи-
сания того ДОС'a, за что его автору (ДОС и
описания) большое спасибо!
Пункт номер 1.
Форматирование дискет в 3-х вариантах:
ORIGINAL - обычный формат;
TURBO - форматирование диска с другим
расположением секторов, что приводит к ус-
корению операций чтения/записи диска при-
мерно в 2 раза;
FAST-TURBO - форматирование аналогично
TURBO, но без операции проверки (если Вы
уверены в качестве ваших дискет), при этом
ускоряется сама операция форматирования.
Turbo формат 6.05 ДОС'а уступает форма-
ту ДОС'а 5.13, так как сделан без смеще-
ния секторов. Мысль об этом была, но по
причине крайне редкого использования ко-
манды TR-DOS 'FORMAT' (в основном для этих
целей используется Honey Commander) реали-
зовано небыло.
Bыбор формата производится по запросу
DOS после ввода обычной команды FORMAT
клавишами <1>, <2> или <3>. Kлавиша <SPA-
CE> отменяет команду. При форматировании
выдается сообшение о номере форматируемой
в данный момент дорожки и стороны диска.
После окончания форматирования выдается
запрос на его повтор.
Пункт номер 2.
При записи файла на диск в случае если
файл с таким именем на диске есть DOS вы-
дает запрос о стирании старого файла. Если
Вы ответите <Enter> или <Y> старый файл
будет стерт и на его место будет записан
новый файл если он не длиннее старого.
Если же новый файл длиннее, то он будет
записан как обычно с первого свободного
сектора диска, а в каталоге появится еще
один стертый файл. Релизено немного глюко-
вато. Глюк вылазит при записи такого-же
файла, но с меньшей длиной. Файл-то запи-
шется но длина нового файла будет равна
длине старого.
Аналогов в TR-DOS 5.13 не имеется.
Пункт номер 3.
В описании к ДОС 5.13 пишут: 'Удален
автотест дисковода. Дисководы принимаются
все 2х80, шаг 6 мкс'. Imho, так делать
нельзя. Не раз возникала ситуация (на раз-
ных машинах) когда дисковод после сброса
при первом обращении упорно отказывается
выводить бошки на нулевой трек. Возникает
в основном если до этого какаянить прога
ухитрилась загнать их в самый конец диска.
В ДОС'е 6.05 мы вернули автотест, только
укоротили его.
Пункт номер 4.
Ускорeнная команда MOVE. В обычной вер-
сии ДОС команда MOVE наиболее длинная по
времени работы, кроме того создается впе-
чатление, что дисковод больше стоит чем
работает. Это объясняется тем, что каждый
раз при перемещении файла производится
чтение каталога и запись в него. В данной
версии чтение и запись каталога произво-
дятся один раз. Информация каталога сохра-
няется в ОЗУ и все операции с каталогом
(только в команде MOVE) производятся в
ОЗУ, что значительно ускоряет работу ко-
манды, в среднем в 3 - 4 раза, а в некото-
рых случаях и более.
Аналогов в TR-DOS 5.13 не имеется.
Пункт номер 5.
Введена новая команда - переименование
диска: MOVE "name". При этом команда MOVE
не выполняется, а просто имя диска заме-
няется на "name".
Аналогов в TR-DOS 5.13 не имеется.
Пункт номер 6.
В DOS 6.05E изменен редактор командной
строки. Во-первых, устранена неприятность
которая возникает при входе в DOS в 128
режиме. Во-вторых, устранено влияние кла-
виш редактирования, которые перемещают
курсор строки в 48 режиме. И наиболее важ-
ная часть - возможность вызова предыдущей
команды с помощью клавиши <EDIT>. Если Вы
хотите повторить операцию или повторить ее
с немного измененными параметрами, то мож-
но вызвать ее сразу после выполнения на-
жав клавишу <EDIT>. Если же Вы что-то наб-
рали в командной строке, то клавиша <EDIT>
не сработает (в стандартной версии это
приводит к вызову строки из BASIC програм-
мы).
Аналогов в TR-DOS 5.13 не имеется.
Пункт номер 7 (самый большой).
DOS 6.05E разумеется поддерживает рабо-
ту с RAM-диском, основанном на дополни-
тельном ОЗУ до 1024k. При этом 4k отводит-
ся под каталог и некоторые другие функции,
а остальная свободная память отведена под
рабочее пространство RAM-диска. Для ини-
циализации RAM-диска используется команда
FORMAT "d:name". Далее с диском D: можно
обращаться как с обычным дисководом, с той
лишь разницей, что этот диск невозможно
сменить и при выключении питания информа-
ция на нем теряется.
Полезным свойством является то, что при
сбросе информация на диске D: остается
невредимой, и возможна дальнейшая работа с
ним без операции FORMAT.
Для системных программистов важно, что
работа с RAM-диском не отличается от рабо-
ты с обычным диском через входы #3D00,
#3D03, #3D13 и при обращении в DOS к под-
программам, работающим на уровне работы с
секторами диска. Программы записи и чте-
ния секторов работают даже если диск D: не
был 'отформатирован'. Пользователь в этом
случае имеет всю память RAM-диска, но без
файловой организации.
Программы использующие прямое програм-
мирование К1818ВГ93 естественно не рабо-
тают.
Под RAM-DISK, по умолчанию, отводится
не все 1024К ОЗУ, а только старшие 512К.
Нижние 512К отведены под резидент (см. ни-
же). В следствии этого пришлось сделать
возможность чтения из порта #7FFD (аппа-
ратно, как - см. ниже) для определения те-
кущей страницы ОЗУ всех нижних 512К.
-= CUT =-
Лично я использую программное определе-
ние текущей страницы, хотя конечно это и
не позволяет отслеживать состояние второго
экрана (а оно надо?). Но это уж кому как
больше нравиться.
-= CUT =-
Благодаря чему можно из RAM-DISK'а за-
пускать не только 128К программы (например
Страну Мифов).
Порт расширенной памяти используется
#7FFD. Если кто захочет может сделать свой
(инсталлятор поставляется).
Пункт номер 8 (гораздо меньше).
Magic'и... Ну что тут скажешь? Целиком
и полностью передрано из ДОС 5.13 ;).
Имхо, рульные возможности (цитирую отры-
вок из описания 5.13):
"Значительно расширены функции волшеб-
ной кнопищи. При ее нажатии комп подвеши-
вается, и ждет нажатия:
1 - запуск стандартной процедуры сохра-
нения, только еще сохраняется, а при заг-
рузке восстанавливается и корректируется
регистр R.
2 - то же самое, но стек помещается в
низ экрана. Предназначено для взлома.
3 - Переход в STS. BANK=#57
Два числа на стеке и несколько байт в
области атрибутов - в зависимости от поло-
жения стека. Перед входом в STS гасится
музыкалка. PC в STS'е показывает место ос-
танова, но не всегда. Его можно точно уз-
нать под стеком.
4 - Возврат в программу. Выполняет фун-
кцию паузы.
В некоторых прогах стоит проверка на
адрес перехода в тырдосе (#0066), и если
магик нестандартный, то облом. В данной
версии такие проверки не найдут отличий:
перехват осуществлен в начале засирания
стека."
Пункт номер 9.
Имеется доступ ко всем регистрам кон-
троллера K1818ВГ93 аж двумя способами.
Утянуто из разных версий.
Первый способ (скорпионовский):
#3FF0 OUT (C),A:RET
#3FF3 IN A,(C) :RET
Второй (весьма странный) через новые
системные вызовы #3D13:
#0D - Регистр D содержит младший адрес
порта, регистр E данные в него. Если необ-
ходим и старший адрес порта, то он указы-
вается в регистре B.
#0F - Регистр D содержит младший адрес
порта, на выходе в регистре E данные из
него. Если необходим и старший адрес пор-
та, то он указывается в регистре B.
И еще две (в довесок):
#10 - Вызов подпрограммы записи #3FBA.
В регистре HL адрес области данных, в DE
- время ожидания готовности ВГ93.
#11 - Вызов подпрограммы чтения #3FD5.
В регистре HL адрес буфера, в DE время
ожидания готовности ВГ93.
Аналогов в TR-DOS 5.13 не имеется.
Пункт номер 10.
Разумеется исправлена ошибка TR-DOS'а
работы с большой группой секторов команда-
ми 5 и 6 из #3D13 (см.ZF#3).
Пункт номер 11.
Имеется встроенный Mini-boot который
запускается из TR-DOS по команде '8' (быв-
шая команда 80). Уж незнаю кто был авто-
ром этого бута, но мы его немного дорабо-
тали (sorry...). В связи с тем, что перек-
лючаться на драйв 'B' возможно не шибко
быстро, в нем реализован автопоиск дисков
в дисководах 'A' и 'B'. Например выходим в
ДОС (диск в дисководе 'B') нажимаем '8' и
через две-три секунды boot сам переключит-
ся на него! И еще выбрать текущий диско-
вод в boot'е можно клавишами 1-4, а клави-
ша 'D' - Reset Dos.
В ДОС 5.12 был вроде-бы небольшой копи-
ровщик, который судя по описанию из вер-
сии 5.13 выкинули...
Пункт номер 12.
Аналогично версии 5.13 в нашем ДОС вы-
кинут тест памяти, заполнение которой сде-
лано через команду PUSH, вследствии этого
скорость RESET-DOS выросла немерянно... А
также, через PUSH очищается память при
сбросе в BASIC 128, с аналогичными послед-
ствиями :).
Пункт номер 13.
Опять-таки как и в версии 5.13 значи-
тельно ускорено чтение с дисковода. Намно-
го быстрее читают даже такие программы как
iS-DOS и Honey Comander'e, не говоря уже о
программах типа Conver Comander, Real
Comander или командах TR-DOS LIST и т.д.
Ускорять запись, как показали экспери-
менты, к сожалению нельзя. Некоторые дис-
ководы не успевают раскрутить диск, пос-
ледствия сего ужасны...
Пункт номер 14.
Исправлены некоторые мелкие глючки
TR-DOS (какие именно уже не помню). И так-
же как и в ДОС 5.13 по команде NEW можно
узнать дату последнего изменения кода.
Так называемый 'Родионовский вектор
прерываний #0900-#0А00' затронут не был,
все программы использующие его идут нор-
мально.
Дополнительные возможности
полученные небольшим изменением
BASIC 128 совместно с TR-DOS 6.05E.
Пункт номер 1.
Естественно поддерживается резидентом
Honey Commander, но благодаря изменению
BASIC 128 попасть в него можно при любом
сбросе (кроме 48-го ;-), в отличии от вер-
сии 5.13, в которой перехват резидента
возможен только при RESET-DOS. Возможнос-
ти резидента в нашей версии значительно
расширены, перехватывать сброс может абсо-
лютно любая программа с минимальными зат-
ратами памяти. Достаточно разместить по
адресу #FFF0 в странице 31 (#1F) строку
символов 'Residentpresent!' (без пробе-
лов), и сразу же после сброса управление
будет передано на адрес #C000 этой же
страницы.
Под этот резидент уже переделаны:
Real Comander, Conver Comander, FPM (две
версии), Luxe Copy, Direct Comander, bo-
ot Турбинова и boot Родионова, STS.
Возможно что-то еще, что я упустил.
Пользоваться такими программами стало не в
пример удобнее. Дополнительно в Conver и в
Luxe Copy встроена гасилка экрана.
Пункт номер 2.
Имеется программный RESET-DOS с возмож-
ностью выбора любого дисковода, если при
сбросе держать нажатыми клавиши 1-4
(1-дисковод A, 2-B и т.д.). К сожалению
работает только на тех машинах, где кла-
виатура при работе ДОС не блокируется
(PROFI, PENTAGON, ATM...). Также значи-
тельно облегчает работу с RAM-DISK'ом (не
надо писать постоянно '*"D"' ;-).
Пункт номер 3.
Если из заставки BASIC 128 при выборе
пункта '128 TR-DOS' нажать не просто EN-
TER, а с CAPS-SHIFT'ом (можно и EDIT :-),
то автоматически при выходе в ДОС с теку-
щего дисковода будет запущен файл boot.
Совсем как в Скорпионе, только корректнее.
Само-собой 'Tape Loader' из заставки вы-
кинут, а стоит '48 TR-DOS'.
Пункт номер 4.
Нажатие 5+RESET вызывает сброс с игно-
рированием всех резидентов. Очень редко
бывает (при копировании всего диска за
раз) убивается часть резидента так, что
после сброса комп уходит в полную медита-
цию, вывести его из которой можно только
выключением питания.
Конечно, многие пункты теряют свою ак-
туальность при использовании MadRom, но
все-же он есть не у всех, да и большую
часть доработок я делал тогда, когда и не
подозревал о существовании такой штуки как
MadRom.
Инсталлятор
Инсталлятор поставляется в виде исход-
ника к Storm. После его компиляции соз-
дается рабочий файл для прошивки в ПЗУ.
Полный комплект поставки прошивок должен
содержать следующие файлы:
128_resd.P 16К BASIC128 резидент
128_norm.P 16K BASIC128
dos6_05e.P 16K TRDOS резидент
dos_inst.C исходник-инсталлятор DOS
mad_inst.C исходник-инсталлятор MADROM
md615d5^.P ─┐
md896d5^.P ─┤ прошивки MADROM
md896d5v.P ─┘
Приложение
Схема чтения из порта #7FFD.
(требуется только для компьютеров с 1024К
ОЗУ) и если имеется охота отслеживать сос-
тояние второго экрана :)
┌─ ИР22
│ Q0 3┌──┬─┬──┐2 D0
│ ───┤D0│ │Q0├─────
Выхода ТМ9 порта │ Q1 4│ │ │ │5 D1
#7FFD │ ───┤D1│ │Q1├─────
D62 для Пентагона.│ Q2 7│ │ │ │6 D2
│ ───┤D2│ │Q2├─────
│ Q3 8│ │ │ │9 D3
└─ ───┤D3│ │Q3├─────
13│ │ │ │12 D4
+5V о───┤D4│ │Q4├─────
14│ │ │ │15 D5
┌─ ┌──┤D5│ │Q5├─────
Выхода ТМ'ки порта│bit0┴17│ │ │ │16 D6
расширения памяти │───────┤D6│ │Q6├─────
до 512К. │bit1 18│ │ │ │19 D7
│───────┤D7│ │Q7├─────
1н ПЗУ 27512 └─ 1├──┤ ├──┤11
───────────────┐ ┌───┤OE│ │PE├──┐
ЛЕ1 │ ЛЛ1 │ └──┴─┴──┘ ┴
A1 3┌─┐ │1┌─┐ │
────┤1│1 └─┤1│3│
A15 2│ о─┐ ЛА3 2│ ├─┘
────┤ │ │1┌─┐ ┌─┤ │
└─┘ └─┤&│3│ └─┘
ЛЕ1 2│ о─┘
/IORQ 5┌─┐ ┌─┤ │
────┤1│4│ └─┘
/RD 6│ о─┘
────┤ │
└─┘
Порт активным становится только в
ДОС'е, посему несовместимостей внести не
может. Проверить правильность сборки порта
можно проверить моим TEST v4.22.
Для более удобной работы с RAM-DISK'он
я написал программку, как в IS-DOS, IMAGE.
Она также позволяет сохранять RAM-DISK на
дискету, восстанавливать его с диска и
просто скопировать любой диск в память.
Работает, естественно, только с TR-DOS
6.05E и RAM-DISK'ами размером 512, 384 и
128К. RD на 896К не поддерживается по при-
чине отсутствия смысла.
Все прошивки и сопутствующее им прог-
раммное обеспечение распространяется абсо-
лютно БЕСПЛАТНО, найти вы их сможете на
станции Zero BBS TashZXNet.
Засим, Au revoire!
─────═════════─────
Примечание редакции: от себя можем до-
бавить, что попользовавшись этой прошив-
кой около полугода мы выяснили, что это
куль и руль фарева! В версии для 512К Ram
есть такой кактус, что RAM-диски от Honey
Commandera и DOSa совпадают. То есть воз-
никла как-бы интегрированная среда. Так
что к этой версии прошивки мы прилагаем
свою рекомендацию.
Другие статьи номера:
Похожие статьи:
В этот день... 3 ноября