Искал на форуме, ну может быть хреново искал....
Искал всети...
Не нашел...
Может быть есть у кого наработки по дизасму ПроФПЗУ Скорпиона????
Вид для печати
Искал на форуме, ну может быть хреново искал....
Искал всети...
Не нашел...
Может быть есть у кого наработки по дизасму ПроФПЗУ Скорпиона????
Не помню, чтобы кто-то дизасм делал.
Какие-то изменения внести есть желание?
частичный дизасм делали (но не на этом форуме)
в эмуле unreal ProfRom чуток подправленный (иначе не работал)
А где? доступ можно получить? и насколькоко частичный? если онли TR-DOS так это даже не стоит обуждения.
А в в чём правки были?
- - - Добавлено - - -
Есть желание поиметь дизасм., и как мимимум научить пройфпзу рабтать с фатом. в плане монтирования TRD.
Ну ваообщенм, не факт что такое будет, но тем не менее Хоттелка это вещь серознаяюююю
я не помню что было 20 лет назад, но .............
насколько я помню Unreal вообще не эмулирует ТурбоРежим Скорпа,
а в ранних версиях ПрофРом (3.2a ? ) после старта шла проверка и если число тактов в инте не меняется при включении турбо комп зависал.
позже авторы этот момент убрали
эх, вот бы теневой монитор для экрана gmx... Помню где-то читал, что у MOA были такие планы, но работы пришлось свернуть.
Ну вообщем-то примерно так и предполагал...
Печалька...
Но зато есть занятие на ближайшие пару лет :)
Поддержка фат планируется значит?
kox, Ради этого сиё и начато.
Но учитывая трудоемкость такого занятия, и отсутствие наличия достаточного свободного времени данный процесс растянется во во времени очень прилично.
МОА писал ПрофПЗУ на форте под CP/M, так что скорее нужен дизфортер... а там важно упаковал ли он код с удалением идентификаторов форт-слов или нет... если не упаковывал, то дизфортится легко...
Цитата:
Сообщение от LW
Для того чтобы ипользовать TRD-образы дисков из FAT-раздела винчестера на СкорпионеЦитата:
Сообщение от kox
вовсе не обязательно делать поддержку FAT'а в Scorpion BIOS и менять ПЗУ. Достаточно будет специально написанной внешней системной программы.
Попробую донести свою мысль на следующем примере.
Пусть у нас имеется винчестер, подключенный к компьютеру Scorpion, имеющий FAT-раздел с TRD-образами дисков и раздел MFS - стандартный скорпионовский раздел с подразделом TR-DOS, названным, скажем, \mount в котором четыре псевдодиска, назовем их drv_a, drv_b, drv_c и drv_d (по числу устройств TR-DOS).
Пусть у нас имеется программа, назовем ее FAT_MOUNTER. После ее запуска с TR-DOS-устройства она выдаст нам каталог FAT-раздела винчестера, где мы выбирем TRD-файл для монтирования, - предположем мы выбрали utils.trd; далее программа запрашивает у нас имя устройства TR-DOS: A:...D:, к которому этот файл следует примонтировать, - предположем мы выбрали C:. Теперь FAT_MOUNTER копирует сектора из файла utils.trd, который в FAT-разделе, в псевдодиск \mount\drv_c, который в MFS-разделе, и монтирует последний на C:. Как известно, первый 512-и байтный сектор каждого псевдодиска не используется, FAT_MOUNTER записывает в него свои слежебные данные: информация о монтировании, имя примонтированного файла в FAT-разделе, флаг read/write, дата монтирования, контрольная сумма файла и т.п.
Происходит выход из FAT_MOUNTER'а в TR-DOS, и теперь пользователь может работать с псевдодиском C:\mount\drv_c как будто с файлом utils.trd FAT-раздела стандартными средствами TR-DOS: запускать файлы и создавать новые; может даже отмонтировать этот псевдодиск.
При следующем запуске FAT_MOUNTER восстанавливает точки монтирования (если это задано в его настройках). Если теперь, для нашего примера, в FAT_MOUNTER мы выберем размонтирование C:, произойдет обратное копирование секторов из \mount\drv_c в файл utils.trd FAT-раздела (если только он действительно изменен и не монтировался с флагом read only), а в первый сектор \mount\drv_c запишется информация, что он отмонтирован и выполнится его отмонтирование от C:.
Вот таким вот образом, создав внешнюю программу (названную здесь FAT_MOUNTER) и
появится возможность работы с TRD-образами дисков FAT-раздела винчестера на Скорпионе.
Однако, я уже писал на нашем Форуме, что не являюсь сторонником использования FAT-файловой системы на Spectrum-совместимых компьютерах в рамках системы ZX Spectrum, и вновь хочу это подтвердить. Считаю, что отличным примером взаимодействия TR-DOS с винчестером, как раз и является способ ныне имеющийся в Scorpion BIOS и не использующий FAT.
А я считаю что FATэто лучшее что можно сделать с дисками под Спектрум. И без этого ононизмом копирования образа с фат на мфс. Драгое дело что взять и написать все заново хоть как-то может очень мало кто. Сделать свою систему, со своим софтом и поддержкой старого на базе нового. Поэтому велосипеды на костылях наше все) хотя данное решение хотябы без страданий переносить образы на Скорпион.
а какие плюсы в использовании HDD по сравнению с эмулем флопа ?
Это минимум 5 секунд ждать. А если бы просто монтировать образ на FAT, то почти мгновенно.
Я хотел бы послушать мнение тех, у кого есть эмуль флопа. На сколько там удобно щёлкать кнопками по меню. И какова скорость чтения. У меня нет такого, и дискетами почти не пользуюсь.
Ну и с HDD явно больше возможностей, кроме эмуляции TR-DOS. Можно с FATа музыку и видео гонять. Ну и другие ОС юзать. Да и удобнее, я думаю, чем менюшка эмулятора FDD.
PS. идея автора шикарная.
Но эмуль и размер "диска" выдаст не больше дискеты. Во всем свои плюсы и минусы =)
Для работы с HDD/СF, в общем-то, и FAT не нужен, если программировать номера секторов напрямую. Вставляем CF на 2 гига - получаем 2 доступных гига.
Понятно, что софт с прямым доступом к ПЗУ TR-DOS работать не будет, но Скорпионовские образы дискет, насколько знаю, тоже работают только через #3D13
Да, когда ПЗУ научится работать с FAT, нужно будет и утилитку монтирования типа scboot сделать, чтобы лишний раз в монитор не лезть. А лучше в TRDN поддержку добавить.
izzx, А вы оптимист... Ну до этого еще далеко, хотя, могу сказать, что не всё так сложно как я ожидал.
Кто знает существуют эмуляторы, поддерживающие чтение портов #7FFD и #1FFD через регистры AY?
Вероятно SPM:
http://a-moa.chat.ru/SPM.htm
были сведения, что убрана проверка CRC и чтение сигналов ВГ93 из порта 1F при ресете.
Это было сделано значительно позже, Савелием, по просьбе общественности, чтобы самостоятельно менять содержимое ромдиска без плясок с бубном CRC, а чтение сигналов убрали, когда привинчивали профПЗУ на Феникс и Кай. Я во всех этих событиях непосредственно участвовал.
- - - Добавлено - - -
Ничего не правили. Любой дамп вставляй в эмуль - будет работать.
Если имеется ввиду это, то с этим я ознакомлен.
Вот... В этом ответ на вопрос... Спасибо!Цитата:
Ничего не правили. Любой дамп вставляй в эмуль - будет работать.
Любопытный момент. Чисто для информации.
Функции встроенной дисковой BIOS R8DOS, вызываемые через rst 8: db #81 начиная 20 по 33 включительно, т.е. те которые работают с файлом через буфер fcb, в том виде как оно есть, для пользователя недоступны. Т.к. регистр ix в них не передается.
Но судя по всему раз информации об этой ошибке не встречалась, этими функциями никто и не пользовался.
Кроме того нашел несколько горячих клавиш в меню монитора:
EDIT+Q - быстрый переход из любого меню(кроме отладчика) в main menu
EDIT+D - вызов меню выбора диска из любого меню(кроме отладчика)
EDIT+M - дублирует enter
Еще один любопытный факт.
В драйвере монитора реализована возможность защиты от записи для каждого из подключаемых образов.
Но возможность поднять этот флаг средствами монитора отсутствует. :(
P.S. Если кому-то интересно, могу рассказать как включать защиту образа на запись...
Нашел достаточно неприятную ошибку в функции 35 ($HDDMOUNT) R8DOS.
При завершении работы этой функции:
при входном параметре bit 4,a =1 устанавливается 4й бит по адресу #E5A5 в 8й странице монитора, а там хранится произведение head * sector активного HDD. порча этого значения может привести к нехорошим последствиям.
при входном параметре bit 4,a =0 устанавливается 4й бит по адресу в регистре hl, заданному при вызове этой функции, опять таки при включенной 8й странице. тут предсказывать последствия вообще сложно.
так что вместо этой функции предпочтительнее использовать недокументированную функцию 40(#28). Это полный аналог, но без порчи памяти.
В дескрипторе образа диска первый байт содержит единицу(признак диска TR-DOS). установка в этом байте 5го бита в единицу даст защиту от записи на уровне драйвера.
Но есть один неприятный момент. Монтирование защищенных дисков выполняется не совсем корректно. И что бы был к нему доступ из tr-dos его нельзя монтировать на пустой дисковод. Необходимо что бы к дисководу был примонтирован диск без защиты от записи. Либо сразу после монтирования в 8й странице в ячейку #FFCC..#FFCF для дисководов A..D записать значение #E0
LW, удалось понять для чего из порта кемпстона можно считать сигналы INR/DRQ ?
кажется понял. по задумке этот порт во время работы trdos откликался на чтение из #FF,
но в итоге сохранилась возможность читать в пару старших битов сигналы с ВГшки из #1F в обычном режиме
Да уж. В странице с монитором (ROM2) есть процедура использующая этот метод. Сходу не понял зачем читать неиспользуемые биты кемпстона, отложил на потом. Любопытно, что вызвать эту процедуру можно через rst 8: db #8B/#8D(две точки входа). Предварительно видится связь с загрузкой конфигурационного сектора с диска.
Почему именно через порт кемпстона могу только предположить, что в простом ПЗУ в целях экономии памяти использовали этот метод, раз уж техническая возможность позволяет.
А что читается в 5й бит? Не знаю насколько точно эмулит это дело Unreal, но в нем из порта #1F читается #A0 (на реале проверить возможности пока нет).
В ПЗУ же монитора имеем такой кусок процедуры:
Код:x02B3 rst #30
dw rom7_x155A ;подача команды чтения заголовка первого попавшегося сектора дисковода A
db #07 ;без чтения заголовка. завершается ld a,#C4: out (#1F),a:ret
rst #30
dw rom7_x0394 ;проверка подключен ли образ к дисководу
db #07
ret nz ;образ подключен
ld hl,#E005
x02BF in a,(#1F)
and h ;маска %11100000
jr z,x02BF
ret m ;7,a =1
ret pe ;7-5,a =000/011
res 5,h
inc (hl)
inc hl
ld (hl),l
ret
А можно перефразировать для тех, кто не шарит в схемотехнике?
LW, я тут пытался заменить в ром-файле шрифт скорпионовский, на что-то более читабельное. Нашел где он лежит в пзу, заменил на свой, загрузил в эмулятор, и опять увидел в теневике все тот-же шрифт.. Оно где-то в сжатом виде хранится, и разжимается? не натыкались?