Просмотр полной версии : ROM-disk для Специалиста
Мне нужна помощь, начал собирать РОМ-диск по М-К №1, 1997г., кто может сделать для него пару образов из нескольких программ, игрушек под 27с256 ?
https://i.ibb.co/NrwJs19/B13-A881-F-D9-C7-4186-AACF-2-A1-ECFC4110-A.jpg (https://ibb.co/NrwJs19)
В эмуляторе emu есть диск, но там формат файлов Специалиста МХ2. А вообще лучше собрать SD читалку, там можно на карту очень много фалов записать.
Serg6845
02.10.2019, 09:34
В эмуляторе emu есть диск, но там формат файлов Специалиста МХ2. А вообще лучше собрать SD читалку, там можно на карту очень много фалов записать.
Присоединяюсь. Одна поддержка FAT многого стоит. и есть вариант схемы (очень простой) с работой через ВВ55, хотя работать будет медленнее.
SD читалку тоже планирую собрать, но не на МГТФе, а на нормальной плате. Но платы пока нет, поэтому ROM-диск..
В эмуляторе emu есть диск, но там формат файлов Специалиста МХ2.
Файл Specialist/001.rom из архива (http://bashkiria-2m.narod.ru/files/emu.rar) или мой (см. атач).
Если нужна программа просмотра файлов, то скажите - выложу. Это EXTERNAL FLASH DISK V0.1 от HardWareMan'а.
в папке eureka тоже есть какой то romdisk..
ROM диски разные есть, в смысле ПО его обслуживающее. А подключение вроде стандарт - данные на порт А, адрес - на порты В и С ВВ55.
У меня проблема в том, как правильно сформировать каталог в ПЗУ РОМ-диска. Прочитал статью в "М-К", но до конца еще понял.
Допаяю, буду сам разбираться.
Мне нужна помощь, начал собирать РОМ-диск по М-К №1, 1997г., кто может сделать для него пару образов из нескольких программ, игрушек под 27с256 ?
нужен список программ для диска, сделаю...
Бейсик, Крестики-нолики, Нарды, Fisher cat, Адскок, Lines
PVV, бейсики здесь правленные https://zx-pk.ru/threads/10345-spetsialist-bejsik.html
и еще игру Джет Сет, барсик принес, дай бог ему здоровья
https://zx-pk.ru/threads/27540-leningradskij-monitor-i-drugie-programmy-dlya-spetsialista/page2.html
Не забываем, что ПЗУ на 32КБ, а программа должна быть меньше, тк нужно еще 16 байт на описатель заголовка. Джет-сет сам на 32КБ только...
Образ я то собрал тестовый, проблема в другом, а монитор то правильный под РОМдиск есть?! в журнале он приведен с ошибками:
https://i.ibb.co/2WXKKfZ/1997-01-djvu-Dj-View.png (https://ibb.co/9cRYYCZ)
никого не смущают одинокие 'С' ? Монитор с сайта fifan_а подставляет все C0, но это ошибка.
Надо в отладчике разбираться.
Надо еще посмотреть как ПЗУ к ВВ55 подключена, совпадают ли адреса с РК-86, а то я конфиг РОМдиска из РК взял, но не сверял.
------------
удалил вложение, ниже есть исправленное
Надо еще посмотреть как ПЗУ к ВВ55 подключена, совпадают ли адреса с РК-86, а то я конфиг РОМдиска из РК взял, но не сверял.
данные на порт А, адрес - на порты В и С ВВ55.
Образ я то собрал тестовый, проблема в другом, а монитор то правильный под РОМдиск есть?! в журнале он приведен с ошибками:
Спасибо!
Попробую прошить и запустить
Монитор в архиве с сайта fifana?
HardWareMan
03.10.2019, 10:52
PVV, небольшое увлекательное расследование с заглядыванием в коды Монитор-2, для которого и приведены эти коды обслуживания ROM диска легко восстанавливают изначальный вариант:
https://jpegshare.net/images/1e/da/1eda39085a41968be9fba71fd0c18c3a.png
Однако в ячейке 0C923H должен быть код 0C9H (RET), который кстати уже есть в теле Монитор-2. Видимо этот байт лишний в данной таблице. Если этот байт забить 00H (NOP), то после копирования строки директории программа вывалится в кишки монитора и дальнейшее поведение будет непредсказуемо.
- - - Добавлено - - -
PS В дампе первый байт 01H вместо 11H - это моя ошибка. Не обращайте внимание. В дизасме справа всё правильно.
Спасибо. Часть переходов я раскопал, а вот куда они ведут в мониторе не знал. Особенно CALL 0xCC0C что такое. Однако все еще не работает этот патч. Имя программы пишет, в монитор по М выходит, но на N и Y глючит. Я поправил описатель в образе РОМдиска (последние 4 байта образа FF 46 00 00) , и первую программу загрузил правильно, она запустилась, но надо разбираться дальше.
------------------
надо изменить на:
C8E2 E5 PUSH H
тогда работает N
HardWareMan
03.10.2019, 14:58
надо изменить на:
C8E2 E5 PUSH H
тогда работает N
А, вот куда 10Н девается. Теперь точно всё чётко: 01 => 11, F5 => E5 и контрольная сумма остаётся какой была. Что касается клавиш, там всё прикольнее и проще:
C8FC CD 03 C8 CALL 0C803H
C8FF D1 POP D
C900 FE 4E CPI 4EH
C902 CA D9 C8 JZ 0C8D9H
C905 D8 RC
C906 F9 SPHL
C907 C1 POP B
C908 D1 POP D
C909 E1 POP H
C90A 31 FD 7F LXI SP,7FFDH
C90D 00 NOP
C90E 00 NOP
Сначала вводится символ, он попадает в [A]. Затем восстанавливается уровень стэка, компенсируя первый PUSH по адресу C8E2 а затем считанный код символа сравнивается с 4EH, а это ASCII 'N'. Если код символа равен - то идём на второй круг, если код ASCII меньше 4EH - выходим через RC (RET C). А в остальных случаях идем дальше, где значение в HL заносится как вершина стэка (должно указывать на параметры запускаемой программы), откуда идет прогрузка всех регистров и однократный вызов подпрограммы считывания данных с ROM диска, которая завершаясь через RET выйдет уже в загружаемую программу. Смысл кнопок в том, что по таблице ASCII 'M' < 'N' < 'Y'. Но будут работать все кнопки согласно весу ASCII относительно кода 'N'.
- - - Добавлено - - -
https://jpegshare.net/images/8b/66/8b66e110d4f182e725487c347f5846de.png
- - - Добавлено - - -
А не, автозапуска не происходит, ведь стэк обнуляется до стандартного мониторного адреса. Только загрузка кода в память. Статью надо читать внимательнее:
https://jpegshare.net/images/2f/cd/2fcdba8cbddcceba7741f7524dcc3c12.png
- - - Добавлено - - -
Я поправил описатель в образе РОМдиска (последние 4 байта образа FF 46 00 00) , и первую программу загрузил правильно, она запустилась, но надо разбираться дальше.
Нужно делать строго как описано в статье. Код вычисляет строку от 0000H, делая -0010H за каждый проход цикла вывода имени и свойств файла. Т.е. сначала 7FF0H, затем 7FE0H и так далее (старший бит игнорируется в адресации ROM диска), с каждым нажатием на 'N', но это перед выводом. А на момент запуска этот указатель в начале параметров, откуда уже через серию POP они и попадают в регистры. Это плата за простоту и компактность кода. Порядок же описываемых программ действительно не важен.
Предлагаю модераторам перенести сообщения 156-172 из темы Линевский Специалист (https://zx-pk.ru/threads/30876-linevskij-spetsialist/page16.html) сюда, дабы не оффтопить там. - СДЕЛАНО
- - - Добавлено - - -
Во вложении исправленный монитор, им fifan_у следует заменить тот файл, что выложен сейчас у него на сайте.
Еще во вложении продублирован конфиг, который не изменился от выложенного ранее и исправленный образ диска.
Касательно образа, я не вполне понял, для чего нужно старший бит адреса выставлять в 1 (я это не делаю, сейчас он в 0), по указанию в статье? или таким образом в этом цикле:
C90F 22 01 F0 SHLD 0xF001
C912 3E 0E MVI A,0x0E
C914 32 03 F0 STA 0xF003
C917 3A 00 F0 LDA 0xF000
C91A 02 STAX B
C91B 23 INX H
C91C 03 INX B
C91D CD 27 C4 CALL 0xC427 ; cmp HL == DE
C920 C2 0F C9 RNZ 0xC90F
планировалось старшим битом выключать по /OE ПЗУ? так здесь, похоже, ошибка, тк мы выключаем ПЗУ, а след командой ее читаем, и для древних, медленных, ПЗУ это похоже работать будет, то для современных и быстрых получим мусор... Плюс еще и 32КБ возможной адресации теряем. Предлагаю этот
C912 3E 0E MVI A,0x0E
C914 32 03 F0 STA 0xF003
кусок кода выбросить, и получим РОМдиск на 64КБ. Такая доработка еще на РК-86 делалась, когда /OE и /CS ПЗУ всегда в нуле.
PS в образе диска LRUNNER я странный зашил, он и в оригинале так работает, те не работает по факту, только экраны меняются...
HardWareMan
03.10.2019, 19:37
PVV, схему посмотри и догадайся:
https://jpegshare.net/images/d6/04/d604a488dca7adc6be51daca544651fc.png
Я поправил описатель в образе РОМдиска (последние 4 байта образа FF 46 00 00).
------------------
надо изменить на:
C8E2 E5 PUSH H
тогда работает N
Перезаписал Монитор, исправил прошивку РОМ-диска.
https://i.ibb.co/N63hmtP/46-C3-E1-EB-0-F1-B-49-C2-8239-05-E1-AEECC6-C1.jpg (https://ibb.co/ccv5CkH)
При вводе директивы X комп виснет
- - - Добавлено - - -
Отличается схема подключения 27С256 и 28С256 ?
Ставил и одну и другую.
HardWareMan
03.10.2019, 20:53
Pluto,
https://jpegshare.net/images/1f/d6/1fd6ac59fdffb85fdcd33fb895c30f02.png
https://jpegshare.net/images/aa/83/aa830936749d5f4af0b1b8a5ff3d8f44.png
А ведь C90F вызывается не только для чтения самой программы но и элемента меню.
Переписал на С9.
Заработало!
https://i.ibb.co/gvNLpJp/E5031-A21-81-A3-4-D1-D-B4-CA-1-CB7-BAAC3-AB8.jpg (https://ibb.co/Rhfkmcm)
https://i.ibb.co/BGZ3fxd/237-BB063-8-B2-E-42-F2-B56-E-B037-E421-E7-CE.jpg (https://ibb.co/kJ8BGfk)
Но грузится только первая программа
При попытке загрузки второй, на экран вываливается это:
https://i.ibb.co/LRT4wW3/FFA27-C98-FB75-4-D88-AEF5-69497-E3-E644-C.jpg (https://ibb.co/jfC7K2S)
Если запускаю третью:
https://i.ibb.co/ZHzn2d4/38373-DD7-7232-45-AA-A35-D-E1869-C6500-B4.jpg (https://ibb.co/PTG7DxX)
Явно наблюдаются человечки из Lode Runner :)
При нажатии "Р" тоже появляется такой же мусор
Переписал на С9.
Заработало!
https://i.ibb.co/gvNLpJp/E5031-A21-81-A3-4-D1-D-B4-CA-1-CB7-BAAC3-AB8.jpg (https://ibb.co/Rhfkmcm)
а должно быть вот так
https://i.ibb.co/z6SYndF/rom1.png (https://ibb.co/mNHwDp0)
я же выложил поправленный образ здесь (https://zx-pk.ru/threads/30941-rom-disk-dlya-spetsialista.html?p=1028708&viewfull=1#post1028708).
Сложно 'это' назвать схемой, ну пусть так.
Вот более наглядная 'схема'
https://i.ibb.co/R7nZMwt/ROMD-sch.png (https://ibb.co/x3vPcTw)
и на что смотреть?
кусок кода выбросить, и получим РОМдиск на 64КБ. Такая доработка еще на РК-86 делалась, когда /OE и /CS ПЗУ всегда в нуле.
инача говоря КС7 с 22й ножки перенести на 1ю, которая у 27с512 А15, а на 22ю, соответственно, подать 0В.
- - - Добавлено - - -
Вот еще образ, два бейсика и игра диггер.
- - - Добавлено - - -
Только не напасешся ПЗУшек, надо использовать другой носитель.
to Pluto- нет желания такую (https://zx-pk.ru/threads/29892-sd-karta-i-sdos-dlya-8i-bitnykh-pk.html?p=1010959&viewfull=1#post1010959) идею подключения SD через РОМ диск сделать? SDOS будет из этого РОМ диска грузиться, а дальше работать уже с картой...?
Я собственно в первую редакцию сам это внес..
https://i.ibb.co/3ptXJDs/123.jpg (https://ibb.co/Cbxdrkt)
Еще что то нужно исправлять ?
- - - Добавлено - - -
я же выложил поправленный образ здесь (https://zx-pk.ru/threads/30941-rom-disk-dlya-spetsialista.html).
Переписал. Работает.
- - - Добавлено - - -
https://i.ibb.co/gyNMdGZ/6953-B900-1-F30-4-CED-9-FE5-356-BE228-F20-A.jpg (https://ibb.co/rkYG3g2)
https://i.ibb.co/zfQb8H2/2-A386-B71-1-E2-A-48-B4-8-A43-B19-B7-E96-A1-DA.jpg (https://ibb.co/tCQcZP2)
Класс!
PVV, Спасибо!
- - - Добавлено - - -
Только Адскок теперь не грузится..
to Pluto- нет желания такую (https://zx-pk.ru/threads/29892-sd-karta-i-sdos-dlya-8i-bitnykh-pk.html?p=1010959&viewfull=1#post1010959) идею подключения SD через РОМ диск сделать? SDOS будет из этого РОМ диска грузиться, а дальше работать уже с картой...?
Правильно я понимаю, тут нет микроконтроллера и в этом отличие от схемы Alemorf ?
- - - Добавлено - - -
Есть разводка платы под ЛУТ?
Попробую наконец сам вытравить плату. Морально уже созрел :)
- - - Добавлено - - -
Вот еще образ, два бейсика и игра диггер.
Спасибо!
Мне бы еще крестики-ноликии и кота-рыболова.. :)
Правильно я понимаю, тут нет микроконтроллера и в этом отличие от схемы Alemorf ?
да, тут только резисторы, диоды и конденсаторы...схема во вложении(на лишний разъем смотреть не надо :) ).
Есть разводка платы под ЛУТ?
Попробую наконец сам вытравить плату. Морально уже созрел :)
да, только под распиновку системного разъема Апогея.
Мне бы еще крестики-ноликии и кота-рыболова.. :)
у меня их нет... будут, сделаю.
В архиве Кот + Крестики..
70226
Прошивка ПЗУ для SD читалки под Специалист есть?
Еще вопрос:
https://i.ibb.co/wJ46CkK/8-E7-F94-E4-C76-F-40-CB-A93-F-AC4-EAC398-C61.jpg (https://ibb.co/wJ46CkK)
Для такой платы SD согласование уровней сигналов не требуется?
Serg6845
04.10.2019, 09:13
В архиве Кот + Крестики..
70226
Прошивка ПЗУ для SD читалки под Специалист есть?
Еще вопрос:
https://i.ibb.co/wJ46CkK/8-E7-F94-E4-C76-F-40-CB-A93-F-AC4-EAC398-C61.jpg (https://ibb.co/wJ46CkK)
Для такой платы SD согласование уровней сигналов не требуется?
прошивка есть.
https://zx-pk.ru/threads/29710-sd-card-dlya-spetsialist-m-i-os.html?p=985070&viewfull=1#post985070
там исходники, надо поправить под нужную конфигурацию (комп, схема подключения) и пересобрать (собиралка там же). но схему подключения через ВВ55 я что-то сходу не нашел. Надеюсь автор подскажет.
насчет платы - стабилизатор на 3В - вижу, какие-то резисторы - тоже. сходу не скажешь, надо хотя бы фотку с другой стороны.
PVV, а как бы универсальную штуку, sdos которая понимает ROM диск, и интегрирована с монитором
такое чтото прекрасное
В архиве Кот + Крестики..
Кот большой, он один на весь образ, однако...см вложения.
Прошивка ПЗУ для SD читалки под Специалист есть?
собранной нет, надо сделать из исходников :)
Тут, правда есть нюансы как это сделать, из-за специфического РОМ-диска Специалиста - то, что каталог файлов в конце диска используется, а по моей задумке там FF должны быть...
Для того, что бы обойтись вообще без дополнительных микросхем в мультиплексировании выходной шины данных ПЗУ РОМдиска и выходной ножки данных SD карты на DR7 решил в качестве такого 'мультиплексора' использовать саму ПЗУ РОМдиска. ПЗУ РОМдиска собрал таким образом - повторяю два раза 16КБ с данными, в которых записана SDOS, затем 16КБ нулей(можно 7F) и, затем, 16КБ FF. В схеме же РОМдиска на старший адресный разряд(А15) подается 0 (РС7 с ВВ55) при работе с нижней половиной ПЗУ и 1 при работе с SD, а на предпоследний адресный разряд(А14) идут данные с SD карты.
Такой вариант схемы позволяет используя только штатные средства монитора РК загрузить из РОМдиска SDOS и начать работу с SD картой.
Сама SDOS в полном варианте занимает 2.2КБ, а в усеченном, без записи, меньше 2х.
Соответственно, можно эту схему реализовать на минимум 8КБ ПЗУ, где 2КБ(SDOS)+2КБ(SDOS)+2КБ(00)+2КБ(FF). В моем варианте я использую ПЗУ на 64КБ, и в 16КБ полезного объема можно поместить кроме SDOS еще что-то, или варианты сборки SDOS с другой раскладкой по размещению в памяти
Для такой платы SD согласование уровней сигналов не требуется?
скорее всего не нужно, все на борту, у меня есть аналогичная плата под microSD, но там для согласования уровней микросхемка стоит ~16 ног, а здесь только резисторы, но это будет как в схеме выложенной выше.
- - - Добавлено - - -
PVV, а как бы универсальную штуку, sdos которая понимает ROM диск, и интегрирована с монитором
такое чтото прекрасное
Мы, кажется, этот вопрос уже поднимали, куда еще интегрироваться то? Чего не хватает для реальной жизни?
Или в SDOS добавить поддержку РОМдиска? а для чего, если можно выйти в монитор и достучаться до диска? или, вообще для чего нужен то еще этот диск, если есть SD, кроме как для хранения SDOS?
Размер диска слишком мал, как ни крути...
Я поддержку SD карты взял от автора, Vinxru. У него оболочка на карте, а загрузчик зашит в ПЗУ. Так сделано в Сябре.
PVV, дос прекрасная - из которой есть доступ ко всем блочным устройствам
нет?
Кот большой, он один на весь образ, однако...см вложения.
Спасибо!
Вечером залью кота, поныряю... :)
Адскок не проверяли, в первом ROMe, почему перестал запускаться?
Только Адскок теперь не грузится..
скачал заново архив, подставил оттуда файл ROM1.bin в emu, все работает, более того, разобрался, что LRUNNER, оказывается, работает, надо было просто нажимать 1 или 2 или 3 для запуска...
- - - Добавлено - - -
Опишу, вообще, как делать образ для этого диска.
Я все делаю в linux в mc, но в win шаги будут аналогичные.
Из RKS файла удаляем первых 4 байта и последних 2 байта (вообще это совершенно не обязательно, если эти 6 байт на каждый файл не критичны к общему объему диска, только в алгоритме, описанном ниже, нужно будет эти 6 байт дополнительно учитывать). Это можно сделать простым редактированием RKS файла как текстовый файл. Дальше копируем все файлы в один ROM.bin файл, дописывая их в конец ( в win можно использовать copy f_in1+f_in2 f_out). Копировать нужно столько, что бы не превысить размер в 32768 байт. Файл ROM.bin до размера 32768 нужно добить в хвосте, к примеру, пробелами, опять таки, открыв его как текст. Дальше заполняем таблицу указателей на файл в HEX редакторе:
https://i.ibb.co/VHkXrNL/ROM1t.png (https://ibb.co/wJ2D3Ld)
начинаем с нижней строки 7FF0
первый байт 0А, дальше имя файла 8 байт, затем 00 и самые интересные 6 байт,
возвращаемся к RKS файлам, смотрим первые 2 байта первого файла и вписываем их, смотрим 3 и 4 байты (назовем их 3_1 и 4_1) в RKS (это размер файла) и опять пишем их, и для этой, самой нижней строки еще 00 00 (это начало этого файла в ROM). Все, запись для первого файла готова, переходим на строчку выше 7FE0.
Повторяем первый байт 0А, дальше имя файла 8 байт, затем 00, смотрим первые 2 байта второго RKS файла и вписываем их, смотрим 3(3_2) и 4(4_2) байты в RKS второго файла, и! нужен HEX калькулятор! Меняем местами байты [4_1][3_1] размера первого(предыдущего) файла и складываем их с развернутыми байтами размера второго(текущего) файла, те [4_1][3_1]+[4_2][3_2]=[4_12][3_12] и пишем результат в обратном порядке [3_12][4_12]. И завершающие 2 байта это, байты [4_1][3_1]+1=[4_1п1][3_1п1], и пишем развернутый результат [3_1п1][4_1п1](это начало этого файла в ROM). Все!
Следующие строчки делаются аналогично.
Схема SD интерфейса слегка изменилась из-за использования ПЗУ на 32КБ. Плюс, для простоты адаптации, 22ю ножку ПЗУ, которая /CS РОМ диска нужно посадить на ноль, отрезав его от РС7.
Все работает :)
https://i.ibb.co/N2mjVJP/SPEC-ROMD-SD.png (https://ibb.co/ZzY8LFP)
PVV, супер
вот что спрашивал ! ) - чтобы на подсказку монитора ввел букву S и вывалился в SDOS
в SDOS буква диска A: - диск карточки
написал B: - диск с rom диском
Что то не работают нормально ROM-файлы, большая часть программ не запускается.
Каталог отображается, но при выборе программы комп виснет
Что то не работают нормально ROM-файлы, большая часть программ не запускается.
Каталог отображается, но при выборе программы комп виснет
странно и не понятно. Нужно больше информации.
Начнем с начала. Первый ром грузится? адскок, лодеранер, нарды? Адскок я проверил кроме emu еще и в Протеусе, все ок. С подключением РОМдиска все в порядке, ничего не коротнуло(оборвалось)?
Какие программы в каких ромах не работают?
В первом ROM-е запускаются Lode runner и Нарды.
Крестики и Budi при попытке запуска вылетают в Монитор
ROM с Fischer Cat не запускается.
Обрывов не заметил.
монитор точно со всеми доработками? Что, если ПЗУ монитора перешить заново? Самый первый образ, где адскок запускался остался? в нем он работает?
- - - Добавлено - - -
https://i.ibb.co/YhHqHk1/sp-rd-adsk.png (https://ibb.co/jDn1nMQ)
- - - Добавлено - - -
https://i.ibb.co/c1KfFv5/sp-rd-cat.png (https://ibb.co/HVLwz2v)
- - - Добавлено - - -
https://i.ibb.co/7SDyJxb/sp-rd-krestn.png (https://ibb.co/fXW0YVQ)
- - - Добавлено - - -
https://i.ibb.co/HVPqL8s/sp-rd-budi.png (https://ibb.co/zr2ZWvY)
прогнал я все проблемные образы в Протеусе, все ок. Если с emu я и мог что-то напортачить с конфигом, то работа в Протеусе однозначно показывает, что с образами все нормально.
Надо смотреть на стабильность работы компа в целом. Может проблема то не в РОМдиске. Была же нестабильность работы, которую удалось победить заменой ВМ80, но это же не гарантированное 'лечение'.
Монитор проверил, последняя версия, обрывов нет.
Нужно переходить на SD карту.
По какой схеме в итоге нужно подключать карту?
Оболочка SD-карты аналогична Галаксии?
Монитор проверил, последняя версия, обрывов нет.
Нужно переходить на SD карту.
у ВВ55 какая нибудь ножка не подпалилась? Есть возможность заменить, проверить?
Просто без выяснения причины, почему не работают образы двигаться дальше, имхо, бесполезно, но попытка не пытка. Начать можно даже просто с проверки запуска образа с SDOS с РОМдиска как есть, без перепайки и подключения карты.
По какой схеме в итоге нужно подключать карту?
Оболочка SD-карты аналогична Галаксии?
Первая выложенная схема была от Апогея, и расчитана на ПЗУ 27с512(на 64КБ). Вторая схемя расчитана именно на 27с256(те 32КБ) и именно под Специалист, под нее же и прошивка образа РОМдиска.
Да, оболочка такая же, как на Галаксии.
В Протеусе воспроизведена схема Линевского Специалиста?
Все же Lode runner и Нарды запускаются и работают.
В Протеусе воспроизведена схема Линевского Специалиста?
А какая разница то? Монитор общий, адрес ВВ55 для РОМдиска один. Схема, я как то и не смотрел нас нее, взял первую попавшуюся у себя, которую проще было адаптировать.
Все же Lode runner и Нарды запускаются и работают.
повторю
Самый первый образ, где адскок запускался остался? в нем он работает?
Разница между тем, первым и нынешним только в последних 48 байтах описателях.
Самый первый образ не сохранился.
https://i.ibb.co/Y3DSbPg/ED9-E664-A-E445-4-FC0-9-EA8-EF9-ABDC0-AFFE.jpg (https://ibb.co/L8QyvYK)
SDOS запустился, файлов правда не нашел, т.к. SD карту еще не подключил
https://i.ibb.co/gjkF3NX/SDOS-1.jpg (https://ibb.co/8K140qR)
https://i.ibb.co/tpj9N7p/SDOS-2.jpg (https://ibb.co/pjVSstj)
27C256 ?
1я ножка 27с512 сидит в земле на этой схеме, те 27с512 включена как 27с256 и прошивка в нее залита как 27с256. Для реальной 27c256 1я ножка это ножка программирования, ее надо подключить на +5В в режиме чтения, те да, надо на моей "Протеусной" схеме первую ножку подключить на +5В.
- - - Добавлено - - -
Я собственно в первую редакцию сам это внес..
https://i.ibb.co/3ptXJDs/123.jpg (https://ibb.co/Cbxdrkt)
Не дает мне покоя, из-за чего не грузится первый файл, вот сравнил что было и что стало
https://i.ibb.co/RywdNbD/ROM1-first-txt-ROM1-txt-Diffuse.png (https://ibb.co/YZswXQL)
начало совпадает полностью.
- - - Добавлено - - -
во вложении именно тот архив, с первым РОМом. В нем и монитор без исправлений и этот РОМ. Можно с ним повторить все те же действия по правке описателя и посмотреть на результат.
С 22 ногой 27с256 не понятно на картинках она к 10 ноге ВВ55 прицеплена, а на схеме (PDF) к земле. Ошибка?
- - - Добавлено - - -
Разглядел, на картинках SD отключена
- - - Добавлено - - -
Подпаял по второй схеме SD карту.
https://i.ibb.co/cb1phMq/8-CD693-F6-BC1-D-41-DD-8-E4-F-F26-B9546848-E.jpg (https://ibb.co/DGt6fsd)
При запуске выдает:
https://i.ibb.co/55p3TsL/05-F94-D6-E-7233-4681-8086-6-E0301-E53-E67.jpg (https://ibb.co/LCjyS91)
26ю ножку ПЗУ, сигнал DATA_FROM_SD надо обязательно подтянуть к +5В резистором 2-10К
- - - Добавлено - - -
Для себя, для статистики, РОМ с бейсиками запускается все?
С бейсиком тоже не запустился
- - - Добавлено - - -
26ю ножку ПЗУ, сигнал DATA_FROM_SD надо обязательно подтянуть к +5В резистором 2-10К
подпаял 2К, не помогло
- - - Добавлено - - -
выдернул плату SD и все опять заработало
- - - Добавлено - - -
Видимо, не так подключаю
https://i.ibb.co/Thm62cy/B4-E3-C7-B1-D8-EF-46-AA-9011-E22-D92-F420-EE.jpg (https://ibb.co/Thm62cy)
эта платка как у меня, в первой схеме(Апогеевской) распиновка ее разъема есть
- - - Добавлено - - -
вывод подписанный MISO надо подключать к 26 ноге ПЗУ.
Можно тестером посмотреть какое напряжение на 26й ножке?
Из-за специфики РОМдиска Специалиста 26я ножка при старте должна быть в логической единице, но, возможно эта плата не дает 1, а дает 0 без карты. Можно попробовать вставить карту и посмотреть появится ли 1 на 26й ноге.
Можно, конечно и образ пересобрать под 0 на 26й ноге, но это уже завтра.
Можно тестером посмотреть какое напряжение на 26й ножке?
0 В.
вот бинарник который должен работать при 0 на 26й ножке.
и еще, надо бы конденсаторы по питанию ПЗУ поставить 0.1мкф и 10-100мкф с 14 на 28 ножки, может из-за этого ромы не работают как надо...
Перешил.
Запустилось.
Файлы залил в корень карты. Карта 2 Gb, FAT
Файлы не видит.
Карту можно взять от Галаксии. Саму карту видит? Фото экрана можно?
https://i.ibb.co/9pz7mjq/EBF2-BF6-A-0-E5-E-4-FBA-8-BE6-ED9-F2-E0-C55-A8.jpg (https://ibb.co/x2PNKQM)
Понятно, карту не видит, от слова совсем :(.
- - - Добавлено - - -
В SDOS есть директива I - повторить инициализацию карты, можно попробовать несколько раз выполнить, мало ли...
Собственно вот..
https://i.ibb.co/KGKb7dk/C7754-B95-BE42-4-A68-806-A-8-CD03-DBF3292.jpg (https://ibb.co/8BYN2qp)
Что должно происходить?
Картинка должна быть такая https://i.ibb.co/N2mjVJP/SPEC-ROMD-SD.png (https://ibb.co/ZzY8LFP)
и про вводе I повторяться.
Можно попробовать глянуть осциллографом, есть ли импульсы на ножках SDплаты - на CLK, затем уходит ли CS в 0, и есть ли на MOSI и MISO импульсы. Это все смотреть в момент ввода I. Пачки импульсов будут достаточно короткие.
Все же, без запуска стабильной работы РОМдиска мне все это кажется гиблым делом.
- - - Добавлено - - -
напряжение питания на ПЗУ РОМдиска в норме? конденсаторы по питанию на ней есть?
Конденсаторы не ставил пока, но питание на осциллографе выглядит прилично, нет пульсаций как на ОЗУ, без блокировочников
Импульсы вроде есть, мой С1-94 их плохо фиксирует, что то пролетает в момент ввода I.
Импульсы там короткие, да.
Еще раз по схеме, на плате с microSD:
1й вывод платы, CS, идет к 27й ножке ПЗУ и к 11й ВВ55,
2й вывод платы, SCK, идет к 12й ножке BB55 и оторван от 26й ПЗУ,
3й вывод платы, MOSI, идет к 25й ножке ПЗУ и к 14й ВВ55,
4й вывод платы, MISO, идет к 26й ножке ПЗУ,
5й вывод платы, VCC, идет к 28й ножке ПЗУ,
6й вывод платы, GND, идет к 14й ножке ПЗУ,
у ПЗУ 22я ножка на GND.
подтягивающий резистор на 26й ножке ПЗУ не обязателен, можно убрать.
на плате SD после стабилизатора LD1117 напряжение 3.3В.
Все так тестером звонится?
Извините, что вмешиваюсь. Прошустрил тему, не нашёл схемы SD интерфейса. Нужна схема для выкладки на сайт.
fifan, https://zx-pk.ru/threads/30941-rom-disk-dlya-spetsialista.html?p=1028849&viewfull=1#post1028849
Тут выкладывали, пост№36
https://i.ibb.co/6wHCTf2/SD-ROM.jpg (https://ibb.co/T2437FZ)
- - - Добавлено - - -
PVV,
проверил еще раз, подключено все по схеме, напряжение проверю.
У меня была вторая плата SD, подключил ее для проверки, ничего не поменялось.
Схему оформлю красивее и выложу.
Надо разбираться с РОМдиском, что бы все программы нормално стартовали.
Во вложении первый образ, только в нем изменилось размещение файлов. Было 'адскок' - 'лодеранер' - 'нарды', стало 'лодеранер' - 'нарды' - 'адскок'.
22ю ножку ПЗУ можно так и оставить на земле, на работу диска это влиять не должно, и более того, возможно из-за нее и могут быть проблемы, когда она не на земле.
Если говорить о схеме, то во вложении один из вариантов.
На мой взгляд так сделать разумнее всего, двухпозиционной кнопкой с фиксацией можно выбирать или просто РОМдиск, причем хоть на 32КБ, хоть на 64КБ, или SD интерфейс, соответственно с установкой ПЗУ с SDOS. https://i.ibb.co/9HrRnBx/key.png (https://ibb.co/s9VLjcT)
Можно, конечно, заменить такую кнопку и джамперами.
У журнального Специалиста вторая ВВ55 на плате не размещалась, по тому я саму ВВ55 нарисовал в схеме. Кроме этого, 22я ножка ПЗУ сидит на чипселекте ВВ55, но никто не запрещает ее просто посадить на землю, если этого чипселекта нет на системном разъеме (для тех клонов где ВВ55 размещена на самой плате Специалиста). SD интерфейс сделан в двух вариантах, с готовой платкой с алиэкспресса, или просто SD держатель, устанавливать или то или то.
Прошил ROM1а
Последовательность программ не изменилась.
https://i.ibb.co/9sD3kBs/DFE3-E7-FA-FDBE-48-FF-9356-6-B6-A39899756.jpg (https://ibb.co/XSQkr6S)
Ни одна не запускается
Это уже информация.
ROM1 имеет такую раскладку:
ADSKOK 0x0000-0x46FF - не работает
LRUNNER 0x4700-0x66FF - работает
NARDY 0x6700-0x7B70 - работает
и ROM1a имеет такую раскладку:
LRUNNER 0x0000-0x1FFF - не работает
NARDY 0x2000-0x38CF - не работает
ADSKOK 0x38D0-0x7FCF - не работает
получается, что при А14 ПЗУшки==0 программы не работают, а при А14==1 работают... значит надо смотреть или обрыв или коротыш по этой цепи.
Перепаял по последней схеме, добавил кнопку-переключатель, 22 ногу ПЗУ повесил на землю.
По А14 ПЗУ: прозвонил, проблем не нашел, осциллограф показывает переходы из нуля в единицу, ничего подозрительного не заметно.
По прежнему SD карта не читается, rom1a не запускается, остальные rom-ы не успел проверить
- - - Добавлено - - -
Да, питание 3.3 в. есть прямо на соответствующей ножке SD-платы
Вот образ, в котором все файлы только во второй половине ПЗУ.
При попытке запуска Digger начинает мерцать и замирает рамка и на этом все..
https://i.ibb.co/17n9c6R/205-DC213-9378-4137-8-AFE-76-CAC8-E5-C2-EA.jpg (https://ibb.co/PFY5kQ1)
- - - Добавлено - - -
ROM-диск работает только при замкнутых 3-2, 4-5 контактах переключателя по схеме.
При другом положении переключателя выдает крякозябры типа таких..
https://i.ibb.co/NtQWpnv/EFE0-E4-E2-B7-C3-47-E6-BE3-F-EE3521755-AF5.jpg (https://ibb.co/fqBrtGg)
- - - Добавлено - - -
ROM-4:
крестики-нолики запуститлсь.
при запуске BASCIR комп внезапно превратился в zx-spectrum :)
и вылетел в Монитор
https://i.ibb.co/Fz2YkQj/739-A3527-E648-401-E-8088-708-B0-F45-CEEB.jpg (https://ibb.co/L1mgDT2)
и в таком виде запустились крестики-нолики
https://i.ibb.co/27Wv9Dw/48801-D66-63-D2-4-B4-C-8-D8-C-E20-EF387-BCF4.jpg (https://ibb.co/4ZK8q6c)
- - - Добавлено - - -
Повторно такой трюк не удался
Следует, наверное, попробовать третий процессор.
ROM-диск работает только при замкнутых 3-2, 4-5 контактах переключателя по схеме.
это не правильно, тк А13 в этом случае висит в воздухе.
Для работы РОМдиска на 27256 нужно, что бы ее 1я ножка всегда была на +5В. В моей схеме она кнопкой в режиме ДИСК подключается на РС7 ВВ55,
а там при обращении к РОМ диску выставляется 0. Схема же сделана с прицелом использовать 27512 ПЗУшку как более логичную.
Решений тут несколько, первое, в лоб, просто посадить 1ю ножку на +5В, независимо от состояния кнопки. Второе, на мой взгляд более правильное,
это сделать изменения в мониторе, что бы ножка РС7 ВВ55 не сбрасывалась 0, и изменить прошивку РОМдиска таким образом, чтобы в описателе
адресов файла в ПЗУ в старшем разряде была 1ца (то, что изначально требовалось делать по журнальной статье)
изменения такие:
C90D 00 NOP
C90E 00 NOP
C90F 22 01 F0 SHLD 0xF001
C912 3E 0E MVI A,0x0E
C914 32 03 F0 STA 0xF003
C912 00 NOP
C913 00 NOP
C914 00 NOP
C915 00 NOP
C916 00 NOP
C917 3A 00 F0 LDA 0xF000
C91A 02 STAX B
C91B 23 INX H
C91C 03 INX B
C91D CD 27 C4 CALL 0xC427 ; cmp HL == DE
C920 C2 0F C9 RNZ 0xC90F
C923 C9 RET
или же, для ускорения чтения из РОМдиска лучше так, обходим лишние NOPы:
C90D 00 NOP
C90E 00 NOP
C90F 22 01 F0 SHLD 0xF001
C90F 00 NOP
C910 00 NOP
C911 00 NOP
C912 00 NOP
C913 22 01 F0 SHLD 0xF001
C916 00 NOP ; тянем время перед чтением
C917 3A 00 F0 LDA 0xF000
C91A 02 STAX B
C91B 23 INX H
C91C 03 INX B
C91D CD 27 C4 CALL 0xC427 ; cmp HL == DE
C920 C2 0F C9 RNZ 0xC90F
C920 C2 13 C9 RNZ 0xC913
C923 C9 RET
возвращаясь к вопросу о необходимости ставить 1цу в старшем разряде для, оригинального, журнального варианта монитора, я так этого и не понимаю.
вот оригинальный код:
C90F 22 01 F0 SHLD 0xF001 ; записываем адрес байта для чтения из ПЗУ хоть с выставленным битом, хоть со сброшенным,
C912 3E 0E MVI A,0x0E ; пишем в ВВ55 для прямого управления ножкой РС7 и сбрасываем ее
C914 32 03 F0 STA 0xF003 ; те по оригинальной схеме включаем ОЕ ПЗУ
C917 3A 00 F0 LDA 0xF000 ; читаем байт из ПЗУ
C91A 02 STAX B ; сохраняем прочитанный байт из ПЗУ по адресу в ВС
C91B 23 INX H ; инкрементируем адреса
C91C 03 INX B ; ---//---
C91D CD 27 C4 CALL 0xC427 ; cmp HL == DE сравнение для проверки все ли прочитали
C920 C2 0F C9 RNZ 0xC90F ; повторяем чтение байта, если не все прочитали или
C923 C9 RET ; выходим, при этом ОЕ остается в 0, обратно его никто не возвращает!
если на то пошло, то надо сделать так:
C90F 22 01 F0 SHLD 0xF001 ; записываем адрес байта для чтения из ПЗУ со сброшенным битом, соответственно ОЕ в 0, вкл
C912 23 INX H ; инкрементируем адрес здесь, тянем время перед чтением байта
C913 3A 00 F0 LDA 0xF000 ; читаем байт из ПЗУ
C916 02 STAX B ; сохраняем прочитанный байт из ПЗУ по адресу в ВС
C917 3E 0F MVI A,0x0F ; пишем в ВВ55 для прямого управления ножкой РС7 и устанавливаем ее в 1
C919 32 03 F0 STA 0xF003 ; те по оригинальной схеме выключаем ОЕ ПЗУ
C91C 03 INX B ; инкрементируем адрес
C91D CD 27 C4 CALL 0xC427 ; cmp HL == DE сравнение для проверки все ли прочитали
C920 C2 0F C9 RNZ 0xC90F ; повторяем чтение байта, если не все прочитали или выходим
C923 C9 RET ; при этом ОЕ остается в 1, ПЗУ выключена, все логично!
но и опять же для чего эту 1цу выставлять?!
во вложении измененный монитор и ром4.
SpaceEngineer
22.11.2021, 15:50
Ну как, победили?
Неа. У меня линевский спец подглючивает, заниматься с ним особо нет желания. Гораздо стабильней он работает с контроллером от VINXRU.
Контроллер SD впаял в монтажное поле на плате, на том и успокоился.
https://i.ibb.co/Xsz0Xxz/1719-A445-7-A96-4651-8-E06-B46-EC0-CFD040.jpg (https://ibb.co/d2QCB4Q)
примерялся к корпусу от какого то DVD..
- - - Добавлено - - -
СЯБР наше ВСЕ !
На нем все SD контроллеры работают
SpaceEngineer
30.11.2021, 01:30
Вообще есть же флеш диск от HardwareMan'a, может его стоит развивать. Подключается тоже к порту программатора, поддерживает запись. По крайней мере выводы /WE флешек AT29C040 выведены на ВВ55. Я уже платку для него развёл, жду флешки из Китая.
Долго молчал, не могу больше. SpaceEngineer, вы как слепой котёнок делаете предположения и убеждаете себя потом в этом. И ведь другие потом молчат, не опровергают лживые предположения. Отвечу по пунктам и не только по этой теме:
1. Нет ROM-диск от Hardwareman не поддерживает запись. Может автор и предполагал это в дальнейшем никак не развил. Существующая программа, его поддерживающая только читает данные.
2. SpetsCommander от меня также не поддерживает запись ни на дискету, ни на SD карту и в том числе ни на ROM-диск. Вообще эта программа не будет развиваться. Слишком много ресурсов хавает. В конце концов я потерял нить идеи её надобности.
3. MX-DOS4 как-то у меня получше пошёл, но и... не знаю когда закончу, может никогда.
P.S. может, SpaceEngineer вам, попытаться самому хоть одну программку написать для Специалиста? Критиковать любой может.
fifan, рад Вас тут видеть!
Пишите еще! :)
HardWareMan
30.11.2021, 10:27
1. Нет ROM-диск от Hardwareman не поддерживает запись. Может автор и предполагал это в дальнейшем никак не развил. Существующая программа, его поддерживающая только читает данные.
Ну зачем ты так? Сигнал записи на разъём выходит, а значит при использовании соответствующих FLASH запись аппаратно реализована. Другое дело, что на данный момент действительно нет программной поддержки записи, но это дело поправимое, ведь так?
https://i.ibb.co/ctHrPsR/bcbf05b1f4d8.png
SpaceEngineer
30.11.2021, 10:44
P.S. может, SpaceEngineer вам, попытаться самому хоть одну программку написать для Специалиста? Критиковать любой может.
Я разве критикую? Я и собираюсь писать для Спеца, только надо сначала его привести в удобоваримый вид. Сразу максимум из доступного - MX(2).
Запись во флеш (AT29C0xx) несложно сделать, на ардуине работает. В даташите всё написано, даже пример кода есть. Главный затык - нужна нормальная ОС для блочных устройств, т.к. эти флешки блочные (256 или 512 байт). Commander (который старый) тут как раз отлично подходит. Про ваш SpetsCommander подробной информации не нарыл, всё размазано по форуму. Насколько понял, он хранит файлы как рамфос, сплошным куском.
Вообще эта программа не будет развиваться. Слишком много ресурсов хавает. В конце концов я потерял нить идеи её надобности.
Выложите на гитхаб, будем всем сообществом развивать (какое бы богатое оно ни было :).
А ресурсы разве проблема, когда есть 512 кб памяти? Надо её использовать по полной, а не тупо как рам-диск.
- - - Updated - - -
Ну зачем ты так? Сигнал записи на разъём выходит, а значит при использовании соответствующих FLASH запись аппаратно реализована. Другое дело, что на данный момент действительно нет программной поддержки записи, но это дело поправимое, ведь так?
Кстати, почему дешифратор сделан на мелкой логике, не проще ли было поставить ИД4?
Ещё один момент - где-то в теме про гибридный флеш/рам диск для ориона видел замечание, что ВВ55 при инициализации выдаёт нули на выходы. В вашей схеме это приведёт к тому, что включится ПЗУ 0 на чтение по адресу блока, который будет в регистре DD1. А канал A ВВ55 тоже может быть включен на вывод, в результате на ШД будет конфликт. Для борьбы с этим схему флеш-диска для ориона заметно усложнили.
Serg6845
30.11.2021, 11:34
Ещё один момент - где-то в теме про гибридный флеш/рам диск для ориона видел замечание, что ВВ55 при инициализации выдаёт нули на выходы. В вашей схеме это приведёт к тому, что включится ПЗУ 0 на чтение по адресу блока, который будет в регистре DD1. А канал A ВВ55 тоже может быть включен на вывод, в результате на IL будет конфликт. Для борьбы с этим схему флеш-диска для ориона заметно усложнили.
поставить в разрыв шины данных 8 резисторов ом по 500, делов-то... скорости все равно небольшие. или например оставшимся элементом ЛА3 проинвертировать сигнал /RD...
HardWareMan
30.11.2021, 15:15
Serg6845, гораздо правильнее сделать аппаратную схему преобразования R/W+STB в RD+WR. На тот момент такой задачи не было. А сейчас и не надо, когда есть SD.
Кстати, как раз если ЛА3 заменить на ИД14, то одна половина будет выбирать микру, а вторая - преобразовывать.
SpaceEngineer
01.12.2021, 13:46
Serg6845, гораздо правильнее сделать аппаратную схему преобразования R/W+STB в RD+WR. На тот момент такой задачи не было. А сейчас и не надо, когда есть SD.
Кстати, как раз если ЛА3 заменить на ИД14, то одна половина будет выбирать микру, а вторая - преобразовывать.
Как? На вход ИД14 - 2 бита кода команды, выходы - (не подключен), STB, WR, RD? Т.о. когда код команды = 00, ничего не происходит.
Но тогда потеряется совместимость с предыдущей моделью флеш-диска. Или его никто, кроме вас, не собирал?
Схема и плата. Блокировочные конденсаторы не показаны, они будут расположены под панельками и запаяны прямо в переходные отверстия рядом с выводами питания.
- - - Updated - - -
Блин, как картинки я яндекс диска прикрепить, чтобы отображались? Я и так, и эдак пробовал...
https://disk.yandex.ru/i/8Ez9PPaf1DRf2A
https://disk.yandex.ru/i/9XTlvVMumm44mw
https://disk.yandex.ru/i/mAPeTZe2Sa9QNg
Serg6845
01.12.2021, 16:26
Как? На вход ИД14 - 2 бита кода команды, выходы - (не подключен), STB, WR, RD? Т.о. когда код команды = 00, ничего не происходит.
Но тогда потеряется совместимость с предыдущей моделью флеш-диска. Или его никто, кроме вас, не собирал?
на самом деле можно и совместимость сохранить, и блокировку сделать. для этого на ИД14 подаем на A - RD с ВВ55, на B - WR с ВВ55, с Y1 снимаем /WR на флешки, с Y2 - /OE на флешки. тогда в случае запрещенных комбинаций 00 и 11 - /WR и /OE будут в лог. 1. STB можно не трогать.
11 с ВВ55 прилетит после сброса, когда все порты на ввод.
HardWareMan
01.12.2021, 19:10
Serg6845, так даже ещё лучше. Я всегда знал, что мозговой штурм всегда полезен.
SpaceEngineer
02.12.2021, 02:23
Перерисовал схему на ИД14. Может, добавить светодиоды для индикации чтения и записи? Придётся еще один корпус ставить, или транзисторы.
https://disk.yandex.ru/i/8Ez9PPaf1DRf2A
https://disk.yandex.ru/i/9XTlvVMumm44mw
SpaceEngineer
02.12.2021, 17:48
del
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot