PDA

Просмотр полной версии : Орион-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.
Листинг бы тоже пригодился )))

b2m
20.10.2012, 00:11
Шаге на 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 ----------


Моём например :)


А качнуть где можно?

b2m
20.10.2012, 11:03
На моём сайте (http://bashkiria-2m.narod.ru/) (в разделе Файлы).

Lisitsin
20.10.2012, 13:33
После запуска эмулятора отказаться от выбора конфигурации, затем View/Start debuger, потом выбрать Орион-128.[COLOR="Silver"]


Ой, а чё эт там, ORDOS чтоли? А как монитор то в дебагере запустить? И ещё, есть ли ORDOS и другие ROMы в формате .DB .. чтобы можно было подцепить в AVRStudio?

b2m
20.10.2012, 16:00
Ой, а чё эт там, ORDOS чтоли? А как монитор то в дебагере запустить?
Э.. монитор от РК86 в Орионе? Я сравнил файл из твоего проекта с монитором РК86 - байт в байт. Шутишь?

Но вообще, можно. В отладчике выбрать (по Ctrl+M) bios, и загрузить туда бинарник (Ctrl+L).


И ещё, есть ли ORDOS и другие ROMы в формате .DB .. чтобы можно было подцепить в AVRStudio?
Есть ромы. А есть конвертилки всякие в инете. Я, например, пользуюсь опять-таки своим эмулятором и редактором FAR. Загружаю бинарник в отладчике куда-нибудь (неважно в каком компе), отмечаю в окне дампа и копирую - в буфере обмена получится текст дампа, потом в FAR-е допиливаю до нужного текста (замена символов, вертикальный блок). Но конвертилками, конечно, проще.

Lisitsin
20.10.2012, 16:00
Ойб блин .... Просто я монитор от радио-86рк запускаю. Там стек с адреса 0х76сf. А монитора для ориона и ордоса в требуемом формате у меня нет ....
Подскажите, плиз, где достать ...

b2m
20.10.2012, 16:08
Стандартный монитор Ориона-128 мало что умеет, надо к нему ромдиск, с которого ордос грузится. Но вообще, это надо у Error404 спрашивать.

Lisitsin
20.10.2012, 16:14
Стандартный монитор Ориона-128 мало что умеет, надо к нему ромдиск, с которого ордос грузится. Но вообще, это надо у Error404 спрашивать.

Да мне сейчас хотя бы что-то запустить, для проверки корректности эмуляции...
ROMы мониторов я нашёл, но они не в том формате, в котором надо. Мне надо бы что то типа того, как во вложении ...

b2m
20.10.2012, 17:08
На тебе конвертилку, махнул не глядя :)

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 файл ... Как его преобразовать?

b2m
20.10.2012, 21:23
Там и подсказка есть, если запустить без параметров. И исходный текст есть. Ну да ладно, тут ещё скажу: 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 ПЗУшку, подключил её к внешнему интерфейсу атмеги и читал из неё, навтыкав вэйтстейтов ...

b2m
21.10.2012, 16:24
А я знаете как генерил для 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 и т. д. А экран то он когда очищает? Вот листинг бы ...

b2m
21.10.2012, 22:51
Экран там где-то внутри ордоса чистится, вроде. Т.е. после загрузки с ромдиска.

Lisitsin
22.10.2012, 19:40
Экран там где-то внутри ордоса чистится, вроде. Т.е. после загрузки с ромдиска.

После загрузки с ромдиска? У меня кроме второго монитора в проекте больше никаких источников нет ... А чё он там с ром-диском делает?

---------- Post added at 19:40 ---------- Previous post was at 18:32 ----------

А где можно статейку посмотреть про ROM диск? Заранее благодарен !!!

b2m
22.10.2012, 19:52
У меня, если забить ромдиск байтом FF, выводится "ВВОД?" и после нажатия на клавишу происходит попытка загрузить что-то с магнитофона, но если ничего не "жужжит" вываливается обратно на начало. Так что экран чистится и в мониторе, перед загрузгой с магнитофона (если ромдиска нет).

Lisitsin
22.10.2012, 20:47
У меня, если забить ромдиск байтом FF, выводится "ВВОД?" и после нажатия на клавишу происходит попытка загрузить что-то с магнитофона, но если ничего не "жужжит" вываливается обратно на начало. Так что экран чистится и в мониторе, перед загрузгой с магнитофона (если ромдиска нет).

Не понял ... Весь ROM диск байтами FF заполнить? Все 64 к?
Он у меня пока вообще не эмулируется. Я даже не знаю какие у него порты и как с ними работать ... А первый монитор у меня тоже экран не чистит ... :(((

b2m
23.10.2012, 09:35
Не понял ... Весь 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

BYTEMAN
23.10.2012, 11:26
запускайте МОНИТОР-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к-шные файлы - их несколько, можно брать любую) есть в любом эмуляторе Ориона.

Понял!
Второй монитор пишет "ВВОД?". Ему для загрузки надо нажать кнопку "Д" или ещё что-то?

BYTEMAN
25.10.2012, 21:29
просто любую клавишу надо нажать. Автоповтора в 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 РК-шной.

zebest
27.10.2012, 11:45
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

Ссылка была не та, исправил