Ну вот адрес и зачитался...Возникли другие проблемы с переключением в TRDOS, а именно - FLASH-ка успевает выставить данные, когда RD и ROM(=OE) активны, и процессор исполняет непойми-что. Сейчас пробую сделать дополнительный цикл чтения из ПЗУ при включении банка с TRDOS.
P.S.
Вроде заработал, только как-то криво - заставка TRDOS выводится не полностью. Есть подозрения на то что не всегда читается первый байт - ну не успевает FLASH-ка его выставить.
Если так просите...
Есть пока несколько но...
1. Стопроцентно не будет работать загрузка с ленты -
AVR_TAPE_IN используется как сигнал с ПЛИС-ки о том , что был вход/выход из TRDOS.
2. Пока не работает звук - в оригинальной версии он замешивался с помощью XOR с TAPE_IN-ом, в моей микшировать уже нельзя, а напрямую вывести не получается - Quartus ругается на превышения количества Interconnect-ов между LAB-ами, я оставил на потом. Возможно потребуется "порезать" дорожки.
3. PIN AVR_TAPE_IN в редакторе PIN-ов нужно определить как AVR_TRDOS_OUT
4. Образ ПЗУ содержит дополнительно пропатченный ROM TRDOS 5.03 (в 4 банке) (частично исходники патча прилагаются), в котором обращения к портам BDI заменены на обращения к АВР-ке.
5. Работспособность эмулятора BDI на AVR-ке не проверялась. Я отлаживался в ZEmu и Unreal, заменив стандартные модули BDI.
P.S. В Atmega16 код AVR уже не лезет, придется использовать Atmega32.
Прошивать лучше всего сперва AVR, затем ПЛИС.
P.P.S.
В настройках проекта в Alter-е в More Analysis & Synthesis Settings я выставил Parallel-Expanders Chain Lenght в 2 (по умолчанию 4) - освободило одну макроячейку.
Последний раз редактировалось denisv; 28.02.2008 в 07:51.
Это свершилось. Заработал TRDOS на speccy2007.
Пока не все до конца отлажено, но с образами дисков система уже работает. Остаётся только подчистить код, доотладить, добавить выбор образа диска в BOOT.
Поддерживаются образы: TRD, SCL, FDI.
Не поддерживаются, и возможно в ближайшем времени не будут поддерживаться команды ВГ93 WRITE/FORMAT TRACK и READ TRACK - т.е. отформатировать новый образ не получится.
Прилагаю код AVR-ки и CPLD.
Замечания:
1. AVR-ка нужна СТРОГО atmega32.
Выложу hex, а то 150 метров качать не все хотят...
Там ещё понадобится .POF файл для прошивки ПЛИС-а.
Если кто будет прошивать, настоятельно рекомендую сперва прошивать AVR и только затем ПЛИС.
P.S.
Звук заработал в последней прошивке для ПЛИС-а.
Исходные тексты будут чуть попозже - в прошивке для AVR есть ошибки, часть я поправил.
В прошивке AVR по умолчанию открываются образы:
для "A" - test.trd, для "B" - isdbase1.fdi, для "C" - trantor.scl.
Поддержка .SCL пока не отлажена на AVR, может и не работать.
P.P.S.
Уже сегодня потестировал чтение/запись дисков. Результаты такие - TRD на speccy2007 читается не стабильно. SCL - пока тоже. Нужно отлаживаться.
Так что текущие прошивки можно считать ознакомительными, для длительного использования они не годятся.
Последний раз редактировалось denisv; 01.03.2008 в 08:57.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Круто !
А что с совместимостью со старой системой ? Можно использовать tap/tzx и отгрузку снапов ?
Со старой системой совместимость частично потерялась - не работает загрузка с ленты, это из-за того, что я ставил перед собой задачу встроить TRDOS без изменения схемы устройства. Да и плюс к тому - в авр-ке не хватает ног. Т.о. я использовал линию, которая была для вывода сигнала с виртуальной ленты в качестве сигнала активности TRDOS. А загрузка/выгрузка снапов работает.
Да, вычищены. Но самое главное - код прерывания по таймеру, который обрабатывает ввод с ленты просто закомментирован. Так что, даже если где и я забыл или просто не увидел обработчика клавиш для ленты, то лента работать все равно не будет. Возможно, пока работает выбор ленты, но загрузка не работает.
P.S.
Через некоторое время (1-2 недели), я доработаю boot с SD-карты, который выбирает ленту/снапшот, чтобы можно было выбирать образ диска. Плюс к этому выбор будет сохраняться в конфигурационном файле на SD-карте (решил отказаться от хранении в EEPROM).
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)