Просмотр полной версии : Орион-128 на AVR
Lisitsin
19.10.2012, 18:55
Приветствую.
Решил тут написать Орион-128.
Для тех, кто не в курсе: платформа от AVR ZX Spectrum:
http://zx.pk.ru/showthread.php?p=515851#post515851
Эмуляцию нарисовал, но где-то баг. Шаге на 50-ом после команды RET вываливается в 0xffff и привет.
Ни у кого нет трейсинга монитора? Буду премного благодарен !!!
Видеосигнал получил "цветной" (из прямой страницы - данные, из дополнительной - аттрибуты цвета). По ссылке видеосигнал, но пока даже экран не очищает:
http://dl.dropbox.com/u/12408899/(121019-165201)%20ORION.zip
Эмулятор во вложении)))
Error404
19.10.2012, 19:34
Ни у кого нет трейсинга монитора? Буду премного благодарен !!!
Что есть трейсинг в этом контексте?
Есть исходники (дизассемблерный листинг).
Lisitsin
19.10.2012, 19:48
Что есть трейсинг в этом контексте?
Есть исходники (дизассемблерный листинг).
Трейсинг в смысле текстовый файл с пошаговой трассировкой выполнения пронраммы монитора. С адреса 0xf800.
Листинг бы тоже пригодился )))
Шаге на 50-ом после команды RET вываливается в 0xffff и привет.
Т.е. там, куда указывает SP памяти нет. Проверь раскладку памяти.
А потрассировать можно в любом нормальном эмуляторе. Моём например :)
После запуска эмулятора отказаться от выбора конфигурации, затем View/Start debuger, потом выбрать Орион-128.
---------- Post added at 01:11 ---------- Previous post was at 01:02 ----------
Обычно стек по адресам F300-F3FF.
Область памяти F000-F3FF не переключается, это учтено?
Lisitsin
20.10.2012, 10:55
[/COLOR]Обычно стек по адресам F300-F3FF.
Область памяти F000-F3FF не переключается, это учтено?
Да, я в курсе. У меня область памяти f000 - ffff одна на всех со всеми портами.
---------- Post added at 10:55 ---------- Previous post was at 10:52 ----------
Моём например :)
А качнуть где можно?
На моём сайте (http://bashkiria-2m.narod.ru/) (в разделе Файлы).
Lisitsin
20.10.2012, 13:33
После запуска эмулятора отказаться от выбора конфигурации, затем View/Start debuger, потом выбрать Орион-128.[COLOR="Silver"]
Ой, а чё эт там, ORDOS чтоли? А как монитор то в дебагере запустить? И ещё, есть ли ORDOS и другие ROMы в формате .DB .. чтобы можно было подцепить в AVRStudio?
Ой, а чё эт там, ORDOS чтоли? А как монитор то в дебагере запустить?
Э.. монитор от РК86 в Орионе? Я сравнил файл из твоего проекта с монитором РК86 - байт в байт. Шутишь?
Но вообще, можно. В отладчике выбрать (по Ctrl+M) bios, и загрузить туда бинарник (Ctrl+L).
И ещё, есть ли ORDOS и другие ROMы в формате .DB .. чтобы можно было подцепить в AVRStudio?
Есть ромы. А есть конвертилки всякие в инете. Я, например, пользуюсь опять-таки своим эмулятором и редактором FAR. Загружаю бинарник в отладчике куда-нибудь (неважно в каком компе), отмечаю в окне дампа и копирую - в буфере обмена получится текст дампа, потом в FAR-е допиливаю до нужного текста (замена символов, вертикальный блок). Но конвертилками, конечно, проще.
Lisitsin
20.10.2012, 16:00
Ойб блин .... Просто я монитор от радио-86рк запускаю. Там стек с адреса 0х76сf. А монитора для ориона и ордоса в требуемом формате у меня нет ....
Подскажите, плиз, где достать ...
Стандартный монитор Ориона-128 мало что умеет, надо к нему ромдиск, с которого ордос грузится. Но вообще, это надо у Error404 спрашивать.
Lisitsin
20.10.2012, 16:14
Стандартный монитор Ориона-128 мало что умеет, надо к нему ромдиск, с которого ордос грузится. Но вообще, это надо у Error404 спрашивать.
Да мне сейчас хотя бы что-то запустить, для проверки корректности эмуляции...
ROMы мониторов я нашёл, но они не в том формате, в котором надо. Мне надо бы что то типа того, как во вложении ...
На тебе конвертилку, махнул не глядя :)
Error404
20.10.2012, 19:36
А какая будет эмулироваться железка? Сколько ОЗУ, какой процессор, если Z80 - по какой схеме? Какие носители данных?
Lisitsin
20.10.2012, 20:03
А какая будет эмулироваться железка? Сколько ОЗУ, какой процессор, если Z80 - по какой схеме? Какие носители данных?
Озу есть у меня 256, буду стараться так и сделать. Процессор - эмулируемый ВМ80, носитель пок лента ...
Error404
20.10.2012, 20:04
Озу есть у меня 256, буду стараться так и сделать. Процессор - эмулируемый ВМ80, носитель пок лента ...
А почему не Z80? Тем более в AVR-Спектруме он уже был реализован
Lisitsin
20.10.2012, 20:06
На тебе конвертилку, махнул не глядя :)
Спасибо !!!
А тока как ей конвертить? Вот есть у меня, например, .ROM файл ... Как его преобразовать?
Там и подсказка есть, если запустить без параметров. И исходный текст есть. Ну да ладно, тут ещё скажу: bin2hex in.rom out.inc
---------- Post added at 22:23 ---------- Previous post was at 22:21 ----------
Или про консоль все уже давно забыли? :)
Lisitsin
20.10.2012, 23:07
Или про консоль все уже давно забыли? :)
Чёт учили в институте про MS DOS... Но бИЛЛ всё взял и испортил ...
---------- Post added at 23:07 ---------- Previous post was at 22:58 ----------
b2m, Генеально !!!
А я знаете как генерил для AVR ZX Spectrum?
У меня 2 проца стоят впараллель. В один начинаю шить .rom из программатора, вторым процессором в это время подслушиваю и при этом копирую в ОЗУ. По окончании процесса начинаю считывать из ОЗУ и сливать через клавиатурный порт PS/2 в блокнот )))
А до этого вообще выдрал из своего спектрума 48 ПЗУшку, подключил её к внешнему интерфейсу атмеги и читал из неё, навтыкав вэйтстейтов ...
А я знаете как генерил для AVR ZX Spectrum?
У меня 2 проца стоят впараллель. В один начинаю шить .rom из программатора, вторым процессором в это время подслушиваю и при этом копирую в ОЗУ. По окончании процесса начинаю считывать из ОЗУ и сливать через клавиатурный порт PS/2 в блокнот )))
А до этого вообще выдрал из своего спектрума 48 ПЗУшку, подключил её к внешнему интерфейсу атмеги и читал из неё, навтыкав вэйтстейтов ...
Пацталом.
Ну вот, теперь предельно ясно, кто из нас программист, а кто железячник :v2_laugh:
Lisitsin
21.10.2012, 20:10
Пацталом.
Ну вот, теперь предельно ясно, кто из нас программист, а кто железячник :v2_laugh:
Да уж ... каждому своя судьба )))
Несколько глюков нашёл, на экране появиласт какая-то мигающая хрень. и при этом динамик в такт ей щёлкает ...
Lisitsin
21.10.2012, 21:43
Дошёл до опроса клавиатуры. Делает задержку циклов на 0x0600, читает порт f4 и т. д. А экран то он когда очищает? Вот листинг бы ...
Экран там где-то внутри ордоса чистится, вроде. Т.е. после загрузки с ромдиска.
Lisitsin
22.10.2012, 19:40
Экран там где-то внутри ордоса чистится, вроде. Т.е. после загрузки с ромдиска.
После загрузки с ромдиска? У меня кроме второго монитора в проекте больше никаких источников нет ... А чё он там с ром-диском делает?
---------- Post added at 19:40 ---------- Previous post was at 18:32 ----------
А где можно статейку посмотреть про ROM диск? Заранее благодарен !!!
У меня, если забить ромдиск байтом FF, выводится "ВВОД?" и после нажатия на клавишу происходит попытка загрузить что-то с магнитофона, но если ничего не "жужжит" вываливается обратно на начало. Так что экран чистится и в мониторе, перед загрузгой с магнитофона (если ромдиска нет).
Lisitsin
22.10.2012, 20:47
У меня, если забить ромдиск байтом FF, выводится "ВВОД?" и после нажатия на клавишу происходит попытка загрузить что-то с магнитофона, но если ничего не "жужжит" вываливается обратно на начало. Так что экран чистится и в мониторе, перед загрузгой с магнитофона (если ромдиска нет).
Не понял ... Весь ROM диск байтами FF заполнить? Все 64 к?
Он у меня пока вообще не эмулируется. Я даже не знаю какие у него порты и как с ними работать ... А первый монитор у меня тоже экран не чистит ... :(((
Не понял ... Весь ROM диск байтами FF заполнить? Все 64 к?
Это чтобы при чтении из порта ромдиска всегда FF было, как будто его нет. Но можно и в конфиге попробовать удалить всё связанное с ромдиском (секцию romdisk и др. строчки, где есть romdisk). Получится то же самое.
---------- Post added at 10:33 ---------- Previous post was at 10:30 ----------
Ромдиск - это ВВ55 по адресам F500-F5FF, порт С старший байт адреса, порт В младший, а из порта А читаем данные.
---------- Post added at 10:35 ---------- Previous post was at 10:33 ----------
Т.е. там читается так: SHLD F501 / LDA F500
Error404
23.10.2012, 09:58
По хорошему, из всех нереализованных портов (как по IN, так и по LDA) должно читаться FFh
запускайте МОНИТОР-1 - он и чистит, и команды с клавиатуры спрашивает - почти как РК-86. Как Монитор-1 заработает, можно уже и с ром-диском попариться...
Lisitsin
23.10.2012, 22:17
По-тихоньку начинает работать )))
Lisitsin
24.10.2012, 22:12
Народ, подскажите, с каким ROM диском работает второй монитор?
Спасибо)
Error404
24.10.2012, 23:36
Народ, подскажите, с каким ROM диском работает второй монитор?
Спасибо)
С любым. Сами ромдиски есть в любом эмуляторе
Lisitsin
25.10.2012, 19:28
Народ, откройте секрет. При нажатии и удержании клавиши в первом мониторе должен возникать автоповтор? Я чёт не понял.
Запускаю монитор. При этом в эмуляции чтения порта F4 подбрасываю нажатие какой нибудь клавиши. Он при этом печатает символ на экране, но автоповтора не возникает. И курсор перестаёт мигать. Такое впечатление, что он просто подвисает. Может кто сказаить чё он там делает в это время?
(картинка во вложении)
Lisitsin
25.10.2012, 19:39
С любым. Сами ромдиски есть в любом эмуляторе
Я имею ввиду старт. Второй монитор при старте чё-то там подгружает с ромдиска. Какой именно ромдиск ему нужен?
Error404
25.10.2012, 20:47
Я имею ввиду старт. Второй монитор при старте чё-то там подгружает с ромдиска. Какой именно ромдиск ему нужен?
ПЗУ, подключенное к порту F500. К какому порту (ABC) и что именно подключено (адрес/данные ПЗУ) описал ранее b2m. Прошивки этих ПЗУ (64к-шные файлы - их несколько, можно брать любую) есть в любом эмуляторе Ориона.
Lisitsin
25.10.2012, 21:23
ПЗУ, подключенное к порту F500. К какому порту (ABC) и что именно подключено (адрес/данные ПЗУ) описал ранее b2m. Прошивки этих ПЗУ (64к-шные файлы - их несколько, можно брать любую) есть в любом эмуляторе Ориона.
Понял!
Второй монитор пишет "ВВОД?". Ему для загрузки надо нажать кнопку "Д" или ещё что-то?
просто любую клавишу надо нажать. Автоповтора в 1-м мониторе вроде нет...
HardWareMan
25.10.2012, 21:42
Видео сыпется. Надо тайминги доступа к памяти смотреть. И еще, не старайся интерлейс использовать, делай оба поля одинаковыми, как в реальном компьютере.
Lisitsin
25.10.2012, 21:43
Сам проект (вложение). Мож кто глюки найдёт ... )
Lisitsin
25.10.2012, 21:52
Видео сыпется. Надо тайминги доступа к памяти смотреть.
Это тупой SPI глючит. Я через него видео гоню. Я так и не понял чё ему ещё надо. А чёрточки на экране - это чтение данных с контроллера клавиатуры неотсинхронизировано. Потом уберу ...
---------- Post added at 21:52 ---------- Previous post was at 21:45 ----------
Короче происходит буквально следующее: старт. Beep, сообщение "орион-128.2", "=>_". Курсор в это время мигает. Нажимаю клавишу и удерживаю. Курсор перестаёт мигать. Отпускаю клавишу. Пишет на экране символ, курсор снова мигает. При дальнейшем нажатии на клавишу и её удержании курсор не мигает, но при отпускании второй символ уже не печатается, курсор мигает на прежнем месте. Всё.
Lisitsin
27.10.2012, 11:20
Клавиатура заработала, но клавиши все перепутаны. Ни у кого нет карты клавиатуры? Я делал по Радио-86 РК-шной.
http://www.danbigras.ru/Orion/NewKbrd/NewKbrd.html
Lisitsin
27.10.2012, 11:50
http://www.danbigras.ru/Orion/NewKbrd/NewKbrd.html
Эт я видел. Но у меня эмулируется старая клавиатура, 8х8. Мне нужно просто расположение клавиш по столбцам и строкам )
Vladimir_S
27.10.2012, 12:44
Скорее всего Монитор-1 поддерживает старую раскладку Радио-86РК, а монитор-2 - новую, как у "МС7007", из-за этого и перепутано. Не ?
Под МС7007 есть рекомендации по изменению монитора, а по умолчанию все мониторы Ориона поддерживают клавиатуру как у Радио-86РК.
---------- Post added at 12:44 ---------- Previous post was at 12:38 ----------
Во, нашел в радио №2 за 1991г.
Lisitsin
27.10.2012, 16:19
Всем огромное СПАСИБО !
Короче выяснил: клавиатура эмулируется правильно. Выводил восемь байт опроса на экран и нажимал разные клавиши - всё совпадает. А первый монитор при нажатии на пробел пишет нехорошую букву "Х", и вообще всё неправильно пишет. Короче где-то в эмуляции ВМ80 глюки. В связи с этим вопрос: где можно найти подробную информацию по инструкциям ВМ80 (желательно и недокументированные особенности) с описанием влияния на все флаги?
Заранее благодарен )))
Lisitsin
28.10.2012, 09:59
Первый пошел )))
http://dl.dropbox.com/u/12408899/CVBS%20(121028-095251)%20M1%20work.zip
Lisitsin
28.10.2012, 21:16
Короче некоторые клавиши пока не работают. Но в целом уже ожил.
http://dl.dropbox.com/u/12408899/CVBS%20(121028-210611)%20M1%20.zip
Нужен трейсинг старта первого монитора с нажатой клавишей "5". Кто может подсказать как его сгенерировать? Строка примерно такая: PC (PC+1) (PC+2) (PC+3) (PC+4) (BC) (DE) (HL) (AF).
Lisitsin
20.05.2013, 19:34
Выкладываю наработки по софту для интересующихся: https://dl.dropboxusercontent.com/u/12408899/Soft.zip
Ссылка была не та, исправил
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot