Subversion Repositories KoE_projects

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

                   Mr Gluk Reset Service 6.3R
                         (01 sep 2006)
  Краткое описание теневой операционки Mr Gluk Reset Service.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Прошивается на свободное место в ПЗУ, должна запускаться по
кнопке Reset. Если у кого свободным местом считается 128 васик,
прошивайте на здоровье туда - только за глюки я не отвечаю
(Операция Р.Р. и иже с ней). (прим.: можно прошивать в кэш и
запускать Глюк из другого Глюка ;))
Комплектуется ПЗУ TR-DOS с RAM-диском: версия 6b09e.
Авторы: Ренат Мамедов (Mr Gluk), Роман Гаврилов (Reanimator) и
Дмитрий Быстров (Alone Coder).

                        Кнопки сбросов:
Space - to DOS.
H - to CACHE0 по адресу #60 (там должно быть nop:nop:pop bc,af:
inc sp,sp; в прошивках для ROM #4-7 - аналогично, только вместо
nop:nop должно быть out (c),a).
C - to COLOR TABLE (сверху - все возможные flash квадратики, в
середине - все чистые цвета, внизу - наложение цветов в сетке,
на границе средней и нижней трети можно проверять одинаковость
яркости чистых тёмных и черессеточных ярких красок). Параллельно
на COVOX играет чистый звучок, для теста. Любая крайняя клавиша
- изменение цвета бордюра.
D - to DEMO "Grass" by PSB^Halloween.
S - CMOS Setup. Действуют стрелки и цифробуквы. Изменения
заносятся в CMOS незамедлительно. Существующие загружаемые
аналоги перебивают друг друга по размеру в секторах, да ещё и
имеют обыкновение теряться на дисках ;)
CS - to STS page #57.
0, U - to ROM #0, #2 соотв., по адресу 0. Для ROM #0 надо иметь
в #3d2f этого ROM'а байты nop:ret.
SS, 5, 7 - to ROM #4, #5, #7 соотв., по адресу #62 (все регистры
сохраняются, а в случае #4 сохраняется и страничка). Для ROM #4
нужно иметь в #3d2f этого ROM'а байты nop:ret. Для ROM #5 нужны
не только эти байты в #4, но и out (c),a в том же #4 по адресу
#60.
Любая буквенная клавиша из оставшихся - встроенный HELP.

ROM #4-7 должны включаться вместо стандартных при сбросе и
выключаться при исполнении любой команды в ОЗУ. Не проверено,
ибо схема не собрана! Gluk должен в этом случае быть в ROM #6.

Предусмотрена возможность заменить GLUK BOOT опцией, засунутой в
CACHE1 (вызывается по адресу 0). Её наличие определяется так:
#18 по адресу 0 и строка "GLUK" по адресу 2. Имя опции лежит по
адресу 6 и занимает 9 байт (последний символ - с установленным
7-м битом).
Также организована замена надписи "MENU128" на надпись из ПЗУ
128-го меню, если по адресу 0 опять-таки присутствует #18, а по
адресу 2 - опять-таки "GLUK". Имя опции тоже лежит по адресу 6 и
занимает 9 байт (было 7) - и последний символ опять с
установленным 7-м битом.

        Общее распределение памяти (т.е. что мы портим):
#5c00-#5d4a, исключая область 23582-23605 - системные переменные
                 #5fdx-#9bd3 - Глюк и его стек
      #9bd4-#9bff - состояние стека и регистров при сбросе
        #9c00-#a4ff - буфер каталога и уменьшалки экрана
              #a500-#bfff - захваченный 5-й экран

Выход в TR-DOS через меню работает исключительно с DOS 5.1xf или
6.xxE. DOS 5.01-04 и 6.08 он не понимает!

              Отличия версии 5.4R от версии 5.3K:

- нормально проходит сброс на тех патологах, у которых /RES
замыкается на /M1.
- при запуске прог и выходе в командир AY обнуляется (во все 14
регистров записывается ноль [плюс см.изменения в v6.0R]). Теперь
будут нормально звучать EMERGENCY и TRASHe.
- 5-й экран более не убивается. Плюс ускорена процедурка
наложения сеточки.
+ после выхода нибудь-куда восстанавливается 5-й экран.
Пустячок, а приятно.
- перекрашена менюшка EXIT MENU - раньше на ч/б курсор там
прятался.
- мышка теперь определяется, даже если её дёргают.
+ PC понимает русскую речь в именах файлов.
/ убит скринсажер со звездюльками. Просто он много места
занимал :(.
/ убит выход по маркеру "D", "S", "C". (Это Ренат так защитил
свой продукт от взлома STS'ом. Бояка.)
+ T(c)S не написал CMOS Setup [прим.: я его потом написал],
поэтому взамен добавлен текстовый редактор Word'2001 (прим.:
теперь кнопка E в Perfect'е). Это AC Edit 0.09, но с минусами:
/ нет русских на цифрах;
/ нет автовыравнивания;
/ нет окна информации;
/ ещё много чего нет.
Что осталось:
+ 64k текста;
+ ssQ,ssE,ssW,csEnt - Home,End,ё,Save соотв.;
+ Enter ставит <CR+LF>.

                          fix (5.5R):

- исправлен глюк с CONCAT FILE в Perfect (определялка памяти в
реж.128k портила яч.#7ffd).
- Perfect будет показывать все картинки с чёрным, а не с
псевдослучайным бордером.
- каталог в Word'е теперь полный.
- ячейка #ffff больше не юзается (текущий  дисковод теперь не
забывается).
* цвет редактора культурно серый.
- KILL RAM (форматирование рамдиска) теперь по стандарту
DOS5.13fm (892k disk)
* выход из редактора теперь EXTEND.
- на выходе из редактора текущая строка запоминается.
- на входе в редактор курсор устанавливается в начало текста.
- текст протирался на границах страниц.
* табуляций больше нет.
- в одном месте опрос мыши проводился без учёта возможности
наличия колеса. Если это место не единственное, колесованных
просим обращаться...
- "отмена" на мышке работала даже при отсутствии мышки.

                          fix (5.5RR):

/ убиты горячки выхода в аласм (всё равно не работали
почему-то).
- перед выходом в STS и прочими выходами - теперь задержка,
чтобы работало на реале (видимо, фронты сброса на разных
микросхемах определились по-разному).
+ сброс в STS можно и по CS+Reset.
+ прилагается бейсик-запускалка для приверед.

                      beta (25 feb 2005):

! полная декомпиляция.
* опции переобозваны грамотно.
* полупрозрачное окошко, под печатаемыми символами - сеточки.
+ видно оба экрана уменьшенные.
+ видно регистры и стек. Я выбрал способ сохранения регистров,
который при единичном (не дребезжащем) сбросе не портит ничего,
кроме стека (да и то, не портит (SP-2)). На случай дребезга
сброса огранизована задержка в 4000 тактов. При повторном сбросе
будет запорчено AF.
/ я выбросил настройщик портов CMOS. Просьба не молчать, если
вам нужен Gluk с настройкой этих портов! Не надо сидеть и про
себя на меня материться! Если действительно нужно, напишите - и
я верну. Это именно проверка реакции общественности и
уничтожение антистандартов. (Вообще-то исходник есть :))
/ аналогично с кондратьевской раскладкой кнопок мыши, она
уничтожена. Автоопределение по первой нажатой неюзабельно.
Пишите, если вам это не нравится (объясните, почему).
/ выброшено ускорение мышки - нельзя было попасть в опцию ;)
/ X-COPY выкинуто, ибо его уже нет в TR-DOS.
+ Nemo master HDD boot sec loader по Zet9. Грузит с 3-го сектора
0-й головы 0-го цилиндра #6000 байт по адресу #6000 и запускает
оттуда же.
- не работали Keep'ы на DOS6.05. Теперь DOS6.05 (точнее, его
вариант с перевёрнутым рамдиском: "dos6b05e.r") - официальный
ДОС для Глюка. Прилагается новая версия настройщика DOS6.05,
теперь в виде исходника ALASM, а не в виде исходника устаревшего
STORM.
- в досе при операциях с рамдиском текущая страничка
определяется по 4, а не по 2 байтам, теперь ошибки практически
исключены.
* поскольку рамдиск теперь растёт вниз, то его форматировать в
Глюке можно на разный размер (508k/764k/892k). В самом досе
форматилка делает 508k. Как обычно, 7ffd/bit5 - старший, далее
bit7,6,2,1,0, то есть 508k - рамдиск, невидимый для программ.
* запуск бейсиков - с чёрными атрибутами (вредно для начинающих
кодеров! см.ниже).
* очищает память при запуске файлов (тоже вредно для начинающих
кодеров - сделано для быстрого просмотра старого глючного софта
из архивов).
- нажаты кнопки мышки - тоже нет мышки (для zx_emul без драйвера
мышки - когда половины железа на писюке нет, только мама,
видюха и дисковод, а поюзать емуль хоцца :)))).
- CMOS #6: 0 при BCD=1 (1 при BCD=0) как воскресенье (Dallas),
может быть, неверно. Кто проверит? Эмулятор не считается!
+ выбор дисковода горячими кнопками "1"-"4".
+ горячая кнопка щёлкания режима памяти - "M".
+ куча горячек в самих меню (они выделены заглавными буквами).
- режим 48k работает и на метре (eff7:2=1, 7ffd:5=1).
- запуск первых никронов без шипения. Там ay8=ay9=ayA=#F. Теперь
ay7=#FF.
+ опция выхода в pg7:c000 с проверкой наличия там RC/QC.
+ чистый звучок для Covox (чтобы быстро протестировать работу
старших битов Covox) - при закрытии окна "GO SLEEP, STUPID
USER!" {пардон, теперь в цветовой таблице}.
+ добавлена демка Reset+D. Автор PSB^Halloween^3umf,
демка называется Grass! Интересно, как она работает? ;) В ней
можно протестировать все 3 канала AY (в A - огибающая, в B -
тарелочки, в C - барабанчики). Бипер уже есть в Perfect.
+ стандартная точка входа в Глюк, торчащий в 0-й странице ПЗУ:
#3d2f=nop:ret.
+ сбросы с 0,2,ss,5,7 - для ромдиска (соответственно 0-я, 2-я,
4-я, 5-я и 7-я страницы ПЗУ, если Глюк прошит в 6-ю. Последние
три запускаются через точку #62, там должно быть:
pop bc,af:inc sp,sp).
* выход в кэш теперь по адресу #66.
+ выход в кэш по Reset+H по адресу #60, там должно быть
nop:nop:pop bc,af:inc sp,sp - для сохранения всех регистров.
* clear cache очищает #0000..#61 и кладёт по адресу #62
pop bc,af:inc sp,sp. В общем теперь сброс в кэш - это аналог
Magic :)
* при выходе в STS даёт ему в стеке 23600 (и не портит эту
память, см.ниже!), для новых STS'ов 7-й версии.
- границы выбора опции мышкой были неверные.
- при выключении CMOS не перерисовавалась часть экрана под
часами.
+ память #c000 в 0-й страничке больше не занимается под экран.
- каталог для Gluk Boot и Keep Trk портил 0-ю страничку.
+ появились опции стирания 128k памяти и ВСЕЙ памяти (т.е. 1M по
порту пентагона). При стирании метра сначала грохаются "правые"
512k (D5=0), а потом "левые". Если на борту всего 512k, то
включится 48k...
+ появилась опция стирания ОЗУ ниже стека.
+ boot устанавливает шрифт UDG.
! процедуры инициализации больше не занимают ОЗУ.
+ если при сбросе видит аласм в #8000 - прячет его в страницу
#51 (точнее, обменивает с ней). Теперь можно нажимать сброс
прямо в аласме!
* убито всё, завязанное на "защиту от взлома" ("D","S","C").
! в исходнике можно убрать и день рождения Mr Глюка (10
августа), если вы его за что-то не любите :(
+ вместо 2 таблиц системной области памяти (#5c00-#5fff) теперь
всего одна и короче. Не стирает резидент аласма. Даже почти не
стирает бейсик :)
+ ставит правильный 24-байтный стек бейсика, а не один адрес
#1bb0 (RST 8:#ff).
* кнопки отключения цмоса и мыши перенесены на 8, 9.
+ Reset+C - цветовая таблица. Тестируются цвета, Bright, Flash
и их взаимное наложение на мелкой сетке. Любая кнопка меняет
цвет бордюра - тоже важно.
+ выбранный режим памяти устанавливается и при выходе в TR-DOS,
и при выходе в RC (раньше было только в BOOT и PC).
+ в инициализации (см.конец *.rom) имеется три #ff-ки, в которые
пользователь может позже дошить вызов своего кода, не стирая
ПЗУ. Также имеются #ff-ки в перекидывалке аласма, но для их
задействования нужно одновременно забить пару байт NOP'ами.

                      fix (6.0R mar 2005):

- не устанавливался режим памяти при запуске из BOOT.
- неправильно прорисовывалось окошко 2-й страницы каталога.
* надписи в TR-DOS приведены в современное состояние, и, чтобы
её не путали с оригинальной 6.05E, ей присвоено почётное звание
6.09E.
+ добавлен простой TR-DOS копировщик 160 дорожек с текущего
диска на выбранный (например, на рамдиск. Предварительно
форматировать рамдиск не обязательно). Портит 0-ю страницу -
юзает её как буфер. Если будут пожелания, сделаю через экран
и/или 9 секторов буфера под каталог...
+ добавлен дискдоктор. Сначала следует ввести три цифробуквы
дорожки-сектора, потом становится доступно редактирование.
Работают стрелки, цифробуквы, cs0 - восстановить байт,
ssQ - сдвиг, ssW - раздвиг, csEnt - сохранить, L - загрузить
другой сектор, Break - выход.
- сброс в ROM#2 теперь Res+U, как в меню.
+ Res+S=CMOS Setup. Действуют стрелки и цифробуквы. Изменения
заносятся в CMOS незамедлительно. Существующие загружаемые
аналоги перебивают друг друга по размеру в секторах ;)
+ Res+любая незадействованная клавиша=HELP.
- Res+D по ошибке включал страничку ПЗУ 128-го бейсика,
оставлял включенной текущую страничку ОЗУ и не менял IM0 на IM1.
+ клавиатура действует и тогда, когда мышь на окне. "Огонь" на
мышке опознаётся только если мышка находится на подсвеченной
опции.
- убрана ещё одна несовместимость с колесом мыши.
* очищается начало не 1-й страницы кэша, а 0-й (параллельной
128-му меню, а не 48-му бейсику), ибо Res+H идёт именно в 0-ю.
Обычно программы устанавливаются в 1-ю, Wolf2004 и ZXRar также
пользуются 1-й. Выход в кэш через меню идёт в 1-ю страничку
кэша по адресу #66, для этого ничего очищать не надо.
+ в исходнике можно выключить фишку с подменой двух опций (см.
ниже, в описании).
+ Break при вводе трека-сектора в докторе - перейти к
редактированию без чтения или отменить ввод (как в HDDoct).
+ при выходе в 48 basic и 128 menu тоже устанавливается
выбранный режим памяти.
- включал Caps Lock при запуске программ.
- поверх сохраняемого экрана светилось знакоместо будильника -
было некрасиво.
- доктор не стирал часы.
* окно boot - непрозрачное, доктор тоже.
- подправлена раскраска mem=48, сдвинута пара меню.
- по ошибке включал #17 страницу при запуске бейсиков.
- не показывал и не сохранял 2-й экран.
/ всё-таки возвращён щелчок в I KNOW ALL вместо шипелки, а
шипелка опять в канале A и опять в GO SLEEP (отвыкнуть трудно).
+ цвета в цветовой таблице пересортированы так, что на границе
средней и нижней третей можно проверять одинаковость яркости
чистых тёмных и черессеточных ярких красок. Плюс флеш теперь
показывается на элегантных квадратиках...
- стрелочка на часах их затирала.
+ дисководы и режим памяти можно щёлкать мышкой.
+ самые ходовые опции подсвечены разными цветами.

                    fix (6.1R 22 jun 2005):

- Perfect не работал на ATM turbo 2.
* в Perfect исправлен символ V.
+ добавлен бейсик-загрузчик.
- в DOS6.10e убран якобы "фикс" команды PEEK, из-за которого
менялось расширение (#5ce5) при команде чтения файла, а в
результате глючил Wolfed.
+ в дискдокторе дорожка-сектор вводятся с курсором.
* встроенный хелп - только по нажатию буквенной кнопки, не
считая U, H, X (чтобы не портило экран при случайном нажатии).

                        v6.2 (30 mar 06)

+ reset+2 любых кнопки одновременно - тест клавы
- хелп показывается только при res+ОДНОВРЕМЕННО кнопка
- 48k с пофиксенным NMI, -65536, INT и т.д. (на основе ПЗУ 1991
года) - пофиксено повисание по Enter в процессе редактирования,
когда RAMTOP слишком низко
+ версия для ATM turbo 2+
- исправлена инициализация HDD
- PC: DISK FULL
      CONTINUE COPY Y/N - курсор мигал в Y=15
- после смены диска глючило окно бута

                        v6.3 (1 sep 06)

- не портится резидент в системных переменных TR-DOS
+ можно установить bit7 в #10 ячейке CMOS и не запоминать
дисковод
+ программное выключение turbo кнопкой W (на Pentagon 1024SL
v2.1 порт #eff7 bit4 [инверсно], а на ATM turbo2+ порт #ff77
bit3). Сохраняется в bit7 #0E ячейки CMOS
+ подсказки в CMOS setup
+ CD boot по стандарту Time Gal / ACNews #45 / IG #9

2:5029/77.48 Dima Bystrov(Alone Coder) alco@mail.ru (4912)751390
390026 Рязань, Высоковольтная 37к.1, кв.12 Быстрову Дмитрию Мих.