GLUK RESET SERVICE v5.2i (С) 1999 GLUK ----------------------------------------- "Без рубашки - ближе к телу!" В.Я. Шишков, "Угрюм-река" Ну, для начала пара слов по поводу: За- думал Исаев Андрей себе новый "Глюк" заи- меть. И, поскольку глюкописец рядом (я) - обратился ко мне. Довольно скоро достигли консенсуса и за бутылку пива, выпитую мною авансом, я подрядился ему поправить глюк 5.2 до 5.3. Все ниже поправленное отмечено *. Пристал тут ко мне народ: "ясный ты наш, хоть строчечку напиши в ориджи- не...". За двое суток мною было подсчита- но, что дабы описать все возможности "Gluk Reset Service v5.2i" пришлось бы исписать около 10000 ориджинов. Поскольку такое терпение и напористость мне не при- сущи, то было принято (голосованием) ре- шение, что хелп надо текстом. Поскольку голосование было тайным, скажу, что пере- вес был всего в один голос, а общее соот- ношение за/против было 100/0. Скажу так- же, что в голосовании принимал участие весь сплоченный коллектив авторов данного творения, т.е. я. Я не буду тут описывать что и как сделать, дабы эта прошивка заработала, об этом было много сказано в предыдущих се- риях нашего сериала "хелп" 4.1, 4.2, 5.0, 5.1. Стоит лишь отметить, что кроме обыч- ного расположения в верхней четверти м/с 27512 возможна также замена 128-го басица на мою прошивку. Данная возможность была замечена одним писюковцем, который жаждал ее увидать, но не смог. Последнее обстоя- тельство позволяет насладиться прелестями моей уникальной гениальности пользовате- лям виртуального спека - эмуляторщикам. Правда, в этом случае функция перехода в 128-ой басиц будет работать весьма инте- ресно. Тут в эхе ZX.SPECTRUM пролетала мысля чела по доработке тырдоса: увеличение его скорости + встроенная микропанель и т. д. По-моему более правильно оставить в покое умирающий тырдос и все недостающие функ- ции втолкать в свободное место ПЗУ, что я, собственно говоря, и сделал. Теперь о предмете монолога: о работе прошивки. Управление осуществляется с помощью системы меню, вложенность не более трех. Выбор функции в меню осуществляется с по- мощью стрелки. Стрелка появится только в том случае, если прога обнаружит кемпстон мышь. Иначе ее нет и управлять придется только с клавиатуры. Мышь имеет более вы- сокий приоритет, т.е если вы мышу навели на какую-то опцию, то как бы вы не били по клавиатуре - выбранная опция не сме- нится. При управлении с клавиатуры: вверх - "Q", CURSOR UP вниз - "A", CURSOR DOWN в конец меню - CURSOR RIGHT в начало меню - CURSOR LEFT огонь - ентер, пробел. Нажатие "BREAK", "EDIT" вернет в пре- дыдущее окно, если оно не главное. В этом случае ничего не произойдет. Вообще эти кнопки производят отказ от выбранной функции. * для большей наглядности в 5.3 курсор помигивает. Не, вы не думайте, что вы ему понравились - просто он всем так подмиги- вает :) В версии 5.2 сделан автоконфигурация кнопок мыши: первая нажатая кнопка стано- вится огнем, другая - откат (то-же что и "EDIT", "BREAK" - даже при дисковых опе- рациях - удержание ее приведет к тем же последствиям, что и "BREAK". Такое хоте- лось бы иметь в программах, юзающих мышу. В FUT`е и многих других остановить опера- цию можно только бриком и никак с мыши.) Средняя кнопка не конфигурируется и при ее нажатии программа переходит в ре- жим сохранения ресурса монитора - плыву- щие звезды. То же самое произойдет авто- матически по прошествии 37 секунд (изме- рения производились часами Dmitry PugacHev 2:5026/18.44@FidoNet - претензии по точности к нему :), если не нажимать ничего на клаве и мыши. Такой же эффект дает нажатие "Е". Поддержаны часы по моей схеме. Вся техническая документация по часам + необ- ходимый софт доступны на ZX-Server`е. * Вот! Ключевой момент! Поддержаны часы по любой схеме! Фроловский изврат лучше не применять! Так вот: по начальным адре- сам в ПЗУ расположена некая табличка: ----------------------------------------- адрес длина назначение ----------------------------------------- #0002 2байта регистр адреса #DFF7 #0004 2байта регистр данных (RD) #BFF7 #0006 1байт маска выключения #00 #0007 1байт маска включения #80 #0008 2байта регистр данных (WR) #BFF7 #000A 2байта регистр управления #EFF7 ----------------------------------------- По поводу регистра данных. В схеме Глю- ка и аналогичных адрес регистра на запись и чтение один и тот же. Но есть такая ма- шинка, как Спринтер - там они разные. Та- кая вот долговременная перспектива... Поправив эту табличку под свои часы, вы всегда сможете их увидать в Глюке. Более того, при старте Глюк настраивается на систему исчисления, и теперь борьба фор- матов BCD/BINARY закончилась универсаль- ным драйвером :). По последним данным некто написал мо- дуль для какого-то эмуля, который мои ча- сы эмулирует. * Вова Хекс. Больше ничего не знаю. Данный аддон пылится на ZX_SERVER`е. При старте программы происходит опре- деление наличия мыши и часов. Однако, в силу ряда причин может потребоваться из- менение состояния определителя - напри- мер, если определитель сработал неверно, или в часах произошло разрушение времени - тогда можно кнопками "1" и "2" включать и выключать мышь и часы соответственно игнорируя мнение определителей. Внизу экрана (2-я строка) во время работы программы можно видеть сообщение "GLUK RESET SERVICE V5.2i". Однако, если записать в ячейку #12 часов символ "G", то внизу (вместо этой строки) можно уви- деть сообщение, которое храниться в часах с адреса #13. Маркер конца - #FF. НО! не- зависимо от USER MESSAGE 10 августа любо- го года прошивка в нижней строке поздрав- ляет меня (автора) с днем рождения :) * Исправлен глюк с поздравлялкой, и вер- сия изменилась на 5.3к. Кто догадается почему `к` - получит конфетку. :) Одна из первых версий 5.1 в свое вре- мя была сделана так, что глючила по 13-м числам. Но поскольку часы были только у меня одного - я первый на этом накололся и впоследствии это дело прибил... Теперь пройдемся по главному меню: 1 GLUK ВООТ Из названия видно, что это бут, кото- рый написал я - Мр. Глюк. Управление осу- ществляется под общим интерфейсом, т.е.: а) дисковод сканируется на вынимание дис- ка; б) выжидается 37 секунд, или принудилка мышой, или "Е". При этом гаснет экран, но дисковод продолжает сканиться; в) возможен возврат назад в прошивку от- катными клавишами; г) по многочисленным просьбам заменил его цвета; д) запуск осуществляется аналогично пер- фектовскому; * Исправлен глюк при смене дисков и от- сутствии файлов на нем. Если есть кэш и в нем по адресу #00 найдена такая последо- вательость: #0000 #18 #0001 #XX - любой #0002 "GLUK", то вместо надписи "Глюк бут" получим над- пись из кэша, которая хранится за послед- ним из описанных байтов, а при выборе оп- ции прога врубит кэш и попытается туда идти. Если ничего не гадить, то можно из кэша вернутся по RET назад в Глюк (в род- ную стихию :). 2 COMMANDER Легендарный PERFECT COMMANDER. Все та же версия 1.52 с пофиксенными багами и пр. Без изменений с времен 5.0. 3 СОММ 128 Он же, только независимо от имеющейся памяти определит только 128. Нужно всяким рамдискам :) 4 EXIT ТО: Подменю выходов: 4.1 TR-DOS+ 4.2 TR-DOS- Выходы в тр-дос, минуя определитель резидента в 5.11 и выше; соответственно с открытым и закрытым портом расширения. 4.3 MENU 128 Переход в 128-ой басиц. Если вместо басица имеем нечто наподобие кэша, с теми же словами, что и в буте - эта опция за- менится содержимым кэша. 4.4 BASIC 48 В любимый, магнитофонный :) 4.5 NOWHERE Любимая функция - ничего не делает - вешает. Сделано для тех, кто не любит чи- тать описания :) * В версии 5.3 заменена на выход в кэш. Если кэш не найден - получим возврат в Глюк с ошибкой. Кстати, об возврате. Все функции вызова кэша работают через RST 0 JP ERROR Таким образом, прога в кэше может прове- рить себя на целостность (например, под- счетом crc-32, и в случае неудачного ре- зультата вернутся в Глюк. Естественно, что память при проверке лучше не занимать - а то... а то... плохо вам будет... 4.6 ТО PROG еще подменю: 4.6.1 ТО XAS BANK #51, JP #С000 4.6.2 ТО STS BANK #57, JP #DB00 * Добавлен выход в sts в #17-ой банке. Пиво отрабатываю :) 4.6.3 ТО ASSEMBLER BANK #14, JP #С000 в тырдос, там если нету его, то кранты :). этот копировщик в версии тырдоса от 5.11 и выше... * крантов не будет. наличие проверяет- ся. Возврат в Глюк в случае отсутствия... 4.6.5 FROM ROM DISC * Убрано. Вместо нее: 1) очистка кэша с возвратом в главное ме- ню; 2) форматируется рамдиск (если есть) с возвратом туда же; Рамдиск - тот,что под- держан Исаевским тырдосом. Форматирование осуществляется методом создания в памяти каталога и системного сектора рамдиска. Оные находятся в стра- нице #50. В печальном случае, если памяти всего 128 - то подпортится копия 5-го эк- рана, сохраненная в памяти - так что не удивляйтесь - это системная функция. 5 MODE: ALL Открывается меню, где можно выбрать режим запуска бутов. 48, 128, или вся доступная. Защелка 128/вся висит на бите D2 порта #EFF7. Состояние защелки запоми- нается в часах. 6 ABOUT МЕ Окошко с моими координатами и всякой дре- беденью. 7 SCREEN SAVER Уникальная функция, не видел больше нигде. Позволяет вынуть картинку, которая была на экране в момент сброса и скиды- вать на диск. Вынуть можно как с 5-го эк- рана, так и с 7-го. Файл запишется на диск с именем "@-SCREEN". Проверка на на- личие одноименного не производится, если уже такой есть - будет два. Кстати сказать: после сброса картинка с 5-го экрана уменьшается в 2 раза и по- мещается в левый верхний угол экрана. Атрибуты очищаются. После того, как укра- ли :) мою идею черезсеточного показа :) - сделал по другому. * По требованию заказчика опять вернул черезсеточность. Как - увидите :) 8 DRIVE: А Выбор дисковода для работы. Запоми- нается в часах. Выбор из меню. 9 TRACK KEEPER Меню, где можно посмотреть 0-ой, 161- ый, записать туда и обратно. В сохранне- ный каталог кладется маркер. Если даже 161-ый трек физически существует - запа- рывания каталога информацией с него не произойдет. Записываемые дорожки предва- рительно форматируются. Ну вот - вкратце всё по функциям. Следует сказать, что дисковые ошибки повлекут за собой открытие окошка "RETRY/ ABORT/IGNORE", там же после слева "RETRY" можно увидеть трек/сектор/сторону, на ко- торой произошел инцидент. Игнорить при записи настоятельно не рекомендую. Вся работа прошивки осуществляется стандартными функциями тырдоса, доступны- ми через #3D13. Единственное исключение - форматирование дорожки при сохранении трека. Также путем прямого доступа к контроллеру мгновенно останавливается дисковод. Однако, на эмулях все прекрасно пашет. При удержании пробела во время сброса произойдет мгновенный запуск тырдоса - для входа в резидент. Удержание "1" в момент сброса приве- дет к запуску STS`а: BANK #57, JP #DB00. Порчи ОЗУ не происходит - однако состоя- ние прерываний и некоторые регистры все- же теряются. Настоятельно рекомендую использовать эту прошивку совместно с тырдосом 5.11 и выше. Хочется сказать пару слов тем, кто занимается аналогичными прошивками слова- ми Джонна Леннона: "Неу,Jude! Don`t маке it bad Таке а sad song and маке it better". Глубоко признателен за труд по прочтению, отзывы буду рад выслушать по адресу: 2:5026/5.46 Renat Mamedov (АКА MR GLUK). Last Edited: 16.02.99 р.s В базовом варианте (тот, что в паке- те) - настройка на часы по схеме Глюка. Если надо сменить - см. выше... ----- Данный текст является частью описания прошивки Gluk 5.1 и следовательно написан он Глюком, все отличия TR-DOS5.13F(m) бу- дут выделены значком `>`. 8 TR DOS V 5.12 Не спрашивайте меня, почему 5.12 - нито не знает. > Ну, 5.13 видимо потому, что предыдущая была 5.12 :) 8.1 Ускорение После сброса проверяется наличие рези- дента Honey-коммандера, если его там нет, то идем дальше, к п.8.2 Если Honey обна- ружен, то происходит его запуск. К слову сказать, коммандер подвергся переделке - переделан на #7ffd драйвер верхней памя- ти, теперь он как в Пентагоне. НО! Пере- делана была версия 2.5, а другой у нас нет. Если кто может помочь - Help!!!! > Помогать уже не надо, все найдено и пе- ределано. Кроме Honey-а резидентом может остаться любая прога, даже если у вас всего 128. Просто необходимо правильно сформировать загрузочную страницу. Типичный пример - мой boot, только не тот, который в Пзу, а тот, который с музыкой. Он остается в по- следней странице и занимает только ее од- ну, а после любого обращения к TR-DOS по адресу 0 происходит его запуск. Также мною вчера сделана прога в is- dos, которая, будучи запущена, формирует резидент is-dos`а, что весьма удобно: ра- ботаем в is-dos, запускаем is_res.сом, нажимаем сброс, грузим чего-нибудь (под тырдосом), работаем. Потом нажимаем про- бел со сбросом - быстрый перезапуск tr- dos`а - и мы в IS-DOS. Правда всё же сле- дует учесть при работе с гам диском, что портятся страницы #D7,#D6,#D4. 8.2 Продолжим При запуске тырдоса удален тест памя- ти - память просто очищается, что ускори- ло запуск. Удален автотест дисковода. Дисководы принимаются все 2х80, шаг 6 мкс. Интересное наблюдение: у советского 5313 в паспорте шаг нормируется не более 3 мкс... Так что, обладатели нетурбиро- ванных контроллеров не удивляйтесь, что дисководы рычат. > Так же значительно ускорено чтение с диска. 8.3 X=COPY Трековый копировщик. Помещен в свобод- ную область тырдоса, кстати все изменения тырдоса не коснулись родионовского векто- ра - #0900-#09ff, так что все проги идут ок. Позволяет копировать как тырдосовские, так и профинские СР/М диски, можно уста- новить последнюю копируемую дорожку, пе- ред записью можно диск форматировать, чтение осуществляет турболоадер, что при несоответствии выбранному формату зацик- ливает на чтении - зато быстро. Перенесен без изменений из версии 5.11F. > в версии 5.13 вобще удален за ненадоб- ностью... Можно войти из командной строки в тыр- досе: COPY A. COPY В - запуск стандартно- го тырдосовского копировщика. 8.4 MAGIC Значительно расширены функции волшебной кнопищи. При ее нажатии комп подвешивает- ся, и ждет нажатия: 1 - запуск стандартной процедуры сохра- нения, не только еще сохраняется, но при загрузке восстанавливается и корректиру- ется регистр R. 2 - то же самое, но стек помещается в низ экрана. Предназначено для взлома. 3 - Переход в sts. BANK=#57. Два числа на стеке и несколько байт в области атрибутов - в зависимости от по- ложения стека. Перед входом в sts гасится музыкалка. РС в stse показывает место ос- танова, но не всегда. Его можно точно уз- нать под стеком. 4 - Возврат в программу. Выполняет функ- цию паузы. В некоторых прогах стоит про- верка на адрес 102 - перехода в тырдосе, и, если magic нестандартный, то облом. В данной версии такие проверки не найдут отличий: перехват осуществлен в начале засирания стека. Кстати, не знаю я таких программ, кото- рые не работают из под моей ПЗУ или же из под тырдоса 5.12 - даже если и есть одна - две, то я ими пожертвовал бы ради всего этого кайфа... Правда, щас народ все больше на эмуляторах... 8.5 FORMATTER После ввода FORMAT "NAME" появляется стандартный запрос на обычный или турбо формат. При выборе турбо формата диск бу- дет форматироватся с радиальным смещением секторов - на каждой следующей дорожке сектора начинаются позже, чем на предыду- щей для компенсации задержек в программе и шага дисковода. При копировании в РС дает ощутимый выигрыш во времени. > Запрос немного видоизменился. Теперь, чтобы диск был отформатирован как турбо, можно жать любую клавишу, а вот для мед- ленного формата необходимо нажать `S`. На диске `D` вместо реального драйва ви- сит рам-диск. На данный момент имеются две версии досов: в одной рам-диск сделан для 512К по порту #7FFD и имеет полезный объём 1520 секторов, а в другой для 1024К по порту #7FFD+бит защелки порта и имеет объём 3568 секторов. Первая версия зовет- ся 5.13F, а вторая 5.1ЗFm. Естественно, убран глюк с позиционирова- нием описаный в одном из номеров ZX-FOR- МАТ`а. Для того, чтобы узнать дату компиляции версии, необходимо в досе ввести команду NEW, после чего на экране получим конст- рукцию типа "Rel: 16.03.99". ПРИЛОЖЕНИЕ ========== GLUK TS.В - сие файло запускает прошивку из памяти. Тем, кто хочет по- смотреть на неё не зашивая... ROM53.С - собственно файл прошивки. В на- чале часовой сетап. dos13f(m) - прошивки вместо TR-DOS`а. Для понимания "что есть для чего" ещё раз прочитай статью ;-)