При загрузке стартовой страницы в Орион-Про прерывания не используются. Я думаю, что тебе надо обратить внимание на эмуляцию диспетчера памяти и порта 0xA0. Диспетчер памяти в Орион-Про на мой взгляд очень замороченный. У меня в эмуляторе все работает.Error404 wrote:Пытаюсь разобраться с эмуляцией ПРО. В стартовом ПЗУ с самого начала ROM1 выполняется примерно такая конструкция:
while (TRUE)
{
delay();
init_ports();
init_stack();
init_ff00_mem();
init_interrupts();
}
У меня эмулятор из этого цикла не выходит (и не должен, я прошагал), т.е. увисает. По логике, могло бы выйти по прерыванию, но во-первых, код делает DI и не делает EI, а во вторых, не включает прерывания портом 0FBh (т.е. даже аппаратно прерывания запрещены). Кто-нибудь сталкивался с таким?
Эмуляция Ориона-Про
Moderator: Shaos
-
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Эмулятор ПК "ОРИОН"
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Еще существует две версии системного ПЗУ для платы v2.9 (по-моему) и v3.10. Платы отличаются расположением области F000-FFFF в ОЗУ. Версия 2.9 – 3 страница, версия 3.10 – 31 страница.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Дебагер встроенный, окно дебагера должно появляться сразу после выбора данной конфигурации. После запуска по F5 можно в любой момент тормознуть клавишей Break.Error404 wrote:Добавил строчки, но не нашел дебагер. Он имеет встроенный интерфейс или нужно нечто внешнее?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Maniac
- Posts: 269
- Joined: 05 Oct 2006 04:45
- Location: Moscow
Не получается. При старте ничего не выводит (работает как обычно), по кнопке Break выдает "MFC application error" и закрывается. Использую EMU.EXE 18.02.2008 11:20 размер 155648b2m wrote:Дебагер встроенный, окно дебагера должно появляться сразу после выбора данной конфигурации. После запуска по F5 можно в любой момент тормознуть клавишей Break.Error404 wrote:Добавил строчки, но не нашел дебагер. Он имеет встроенный интерфейс или нужно нечто внешнее?
cfg:
Code: Select all
main.CPUClock=5MHz
main.Caption="Орион-Про"
dbg : debug {
}
CPU : Z80 {
mem=mm
port[00-03]=sys1.data
port[04-07]=pagectl.data
port[08-0B]=sys2.data
port[10-13]=dsk.data
port[14]=regs1.data[0]
.............................................
Всем добра!
-
- Maniac
- Posts: 269
- Joined: 05 Oct 2006 04:45
- Location: Moscow
Вот этого не знал. Я пользовал 31-й сегмент для F000..FFFF - c другим ROM (rom1-100.bin) стало подавать какие-то признаки жизни.Alekcandr wrote:Еще существует две версии системного ПЗУ для платы v2.9 (по-моему) и v3.10. Платы отличаются расположением области F000-FFFF в ОЗУ. Версия 2.9 – 3 страница, версия 3.10 – 31 страница.

Млин, ну и наворотил же Сугоняко! Уже чего-то расхотелось паять этот шедевр.

Всем добра!
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Надо так:Error404 wrote:Не получается. При старте ничего не выводит (работает как обычно), по кнопке Break выдает "MFC application error" и закрывается. Использую EMU.EXE 18.02.2008 11:20 размер 155648
cfg:
Code: Select all
main.CPUClock=5MHz
main.Caption="Орион-Про"
dbg : debug {
}
CPU : Z80 {
debug=dbg
mem=mm
port[00-03]=sys1.data
port[04-07]=pagectl.data
port[08-0B]=sys2.data
port[10-13]=dsk.data
port[14]=regs1.data[0]
.............................................
У меня стандартная раскладка, через ВВ55 на портах 18-1В и в памяти F400-F4FF. Отключения клавиатуры по адресам в памяти в режиме Про пока не реализовано.А клавиатура на ПРО отличается от обычного Ориона
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Maniac
- Posts: 269
- Joined: 05 Oct 2006 04:45
- Location: Moscow
Дебагер запустился.b2m wrote:Надо так:Error404 wrote:Не получается. При старте ничего не выводит (работает как обычно), по кнопке Break выдает "MFC application error" и закрывается. Использую EMU.EXE 18.02.2008 11:20 размер 155648
cfg:
debug=dbg - это связь дебагера и процессора
У меня стандартная раскладка, через ВВ55 на портах 18-1В и в памяти F400-F4FF. Отключения клавиатуры по адресам в памяти в режиме Про пока не реализовано.А клавиатура на ПРО отличается от обычного Ориона


Подскажите, пож, побитовые значения DIP-переключателя - соотвествие битам порта 0, а то я сделал как на мой взгляд должно было следовать из описания, и снова убедился, что Сугоняко мыслил иначе, чем я.


Кстати, по каким адресам (или портам?) в ПРО находится внешний ROM-ДИСК? Это оно: " port[28-2B]=app2.data" ? Если да, то в каком документе описано (я такого не встречал)?
Всем добра!
-
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Все эти непонятки с портами и другими вещами вызваны постоянной доводкой платы в то время. В документации не описаны или описаны неправильно многие аспекты работы железа. Самый верный способ разобрать – это читать схемы. Я так и делал.
Положение переключателя DIP я брал в конфигурационном файле эмулятора b2m.
Положение переключателя DIP я брал в конфигурационном файле эмулятора b2m.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Вот все клавиши:Error404 wrote:Как в нем сделать breakpoint
F4 - запустить до курсора
F5 - запустить
F8 - один шаг
Shift+F8 - запустить до следующей команды (удобно выполнять ldir, call и проматывать циклы, если они заканчиваются условным jmp) Иногда не срабатывает, приходится использовать F4 на след.команде, источник бага не найден.
F9 - точка останова
Ctrl+G - перейти к другому адресу (дизассемблер, дамп)
Break - прервать исполнение
В начальном загрузчике есть опция "TEST / Configuration" - показывает значения DIP-переключателей.Подскажите, пож, побитовые значения DIP-переключателя
По-моему там в документации частично перепутаны 0/1
Подбирал методом тыка.
Да. Если посмотришь в конфиге app2 это BB55, к портам которого подключена память romdisk. Не помню, откуда эта информация, возможно выяснил в процессе трассировки первых запусков Про.Кстати, по каким адресам (или портам?) в ПРО находится внешний ROM-ДИСК? Это оно: " port[28-2B]=app2.data" ?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Maniac
- Posts: 269
- Joined: 05 Oct 2006 04:45
- Location: Moscow
Rom-Disk сделал, работает. А в начальный загрузчик у меня оно не выходит - сразу грузится Ordos.b2m wrote:Error404 wrote:В начальном загрузчике есть опция "TEST / Configuration" - показывает значения DIP-переключателей.Подскажите, пож, побитовые значения DIP-переключателя
По-моему там в документации частично перепутаны 0/1
Подбирал методом тыка.
Да. Если посмотришь в конфиге app2 это BB55, к портам которого подключена память romdisk. Не помню, откуда эта информация, возможно выяснил в процессе трассировки первых запусков Про.Кстати, по каким адресам (или портам?) в ПРО находится внешний ROM-ДИСК? Это оно: " port[28-2B]=app2.data" ?

Всем добра!
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Измени D5 DIP-переключателейError404 wrote:А в начальный загрузчик у меня оно не выходит - сразу грузится Ordos.Соответственно опцию "TEST / Configuration" пока посмотреть не могу.

Такой фичи как "DIP-переключатели" пока нет, и наверное не будет. Потому что тут я применил хитрость: Файл с DIP это 8 байт, из которых используется только младший бит, который и будет значением в порту 00h. Т.е. в текстовом виде - это как бы двоичная запись значения порта.Error404 wrote:А в вашем эмуле в настройках "dip" это значение порта 0 или именно переключателей?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Maniac
- Posts: 269
- Joined: 05 Oct 2006 04:45
- Location: Moscow
Почему-то часть DIP-переключателей работают инверсно относительно руководства пользователяb2m wrote:Такой фичи как "DIP-переключатели" пока нет, и наверное не будет. Потому что тут я применил хитрость: Файл с DIP это 8 байт, из которыхError404 wrote:А в вашем эмуле в настройках "dip" это значение порта 0 или именно переключателей?

Например, переключатель типа клавиатуры. А в остальном вроде все работает...
А что описывает настройка "mm.page"? Что-то я не нахожу где в конфиге описывается ее "влияние"
Code: Select all
sys2 : K580ww55 {
.....................
portC[6-7]=mm.page
}
Всем добра!
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Сам удивляюсь.Error404 wrote:Почему-то часть DIP-переключателей работают инверсно относительно руководства пользователя

По-моему там всё не так уж и сложно:А что описывает настройка "mm.page"?
Code: Select all
mm : MemMap {
map[0][0000-3FFF]=win1
map[0][4000-7FFF]=win2
....
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/