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 совпадают. То есть воз- никла как-бы интегрированная среда. Так что к этой версии прошивки мы прилагаем свою рекомендацию.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября