nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 19 Jun 2018 08:07



Reply to topic  [ 73 posts ]  Go to page Previous  1, 2, 3, 4, 5
Эмуляция Ориона-Про 
Author Message
Fanat

Joined: 01 Oct 2007 11:30
Posts: 88
Reply with quote
Error404 wrote:
Пытаюсь разобраться с эмуляцией ПРО. В стартовом ПЗУ с самого начала ROM1 выполняется примерно такая конструкция:
while (TRUE)
{
delay();
init_ports();
init_stack();
init_ff00_mem();
init_interrupts();
}
У меня эмулятор из этого цикла не выходит (и не должен, я прошагал), т.е. увисает. По логике, могло бы выйти по прерыванию, но во-первых, код делает DI и не делает EI, а во вторых, не включает прерывания портом 0FBh (т.е. даже аппаратно прерывания запрещены). Кто-нибудь сталкивался с таким?

При загрузке стартовой страницы в Орион-Про прерывания не используются. Я думаю, что тебе надо обратить внимание на эмуляцию диспетчера памяти и порта 0xA0. Диспетчер памяти в Орион-Про на мой взгляд очень замороченный. У меня в эмуляторе все работает.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


03 Apr 2008 01:33
Profile
Fanat

Joined: 01 Oct 2007 11:30
Posts: 88
Reply with quote
Post 
Еще существует две версии системного ПЗУ для платы v2.9 (по-моему) и v3.10. Платы отличаются расположением области F000-FFFF в ОЗУ. Версия 2.9 – 3 страница, версия 3.10 – 31 страница.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


03 Apr 2008 01:55
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 623
Reply with quote
Post 
Error404 wrote:
Добавил строчки, но не нашел дебагер. Он имеет встроенный интерфейс или нужно нечто внешнее?

Дебагер встроенный, окно дебагера должно появляться сразу после выбора данной конфигурации. После запуска по F5 можно в любой момент тормознуть клавишей Break.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


03 Apr 2008 06:26
Profile WWW
Maniac
User avatar

Joined: 05 Oct 2006 05:45
Posts: 266
Location: Moscow
Reply with quote
Post 
b2m wrote:
Error404 wrote:
Добавил строчки, но не нашел дебагер. Он имеет встроенный интерфейс или нужно нечто внешнее?

Дебагер встроенный, окно дебагера должно появляться сразу после выбора данной конфигурации. После запуска по F5 можно в любой момент тормознуть клавишей Break.


Не получается. При старте ничего не выводит (работает как обычно), по кнопке Break выдает "MFC application error" и закрывается. Использую EMU.EXE 18.02.2008 11:20 размер 155648
cfg:
Code:
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]
.............................................

_________________
Всем добра!


03 Apr 2008 08:34
Profile
Maniac
User avatar

Joined: 05 Oct 2006 05:45
Posts: 266
Location: Moscow
Reply with quote
Post 
Alekcandr wrote:
Еще существует две версии системного ПЗУ для платы v2.9 (по-моему) и v3.10. Платы отличаются расположением области F000-FFFF в ОЗУ. Версия 2.9 – 3 страница, версия 3.10 – 31 страница.


Вот этого не знал. Я пользовал 31-й сегмент для F000..FFFF - c другим ROM (rom1-100.bin) стало подавать какие-то признаки жизни. :o А клавиатура на ПРО отличается от обычного Ориона (кроме адресации по OUT)? Такое ощущение, что да: не работает стандартная Орионовская, к другим линиям порта подключена что ли?
Млин, ну и наворотил же Сугоняко! Уже чего-то расхотелось паять этот шедевр. :)

_________________
Всем добра!


03 Apr 2008 08:42
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 623
Reply with quote
Post 
Error404 wrote:
Не получается. При старте ничего не выводит (работает как обычно), по кнопке Break выдает "MFC application error" и закрывается. Использую EMU.EXE 18.02.2008 11:20 размер 155648
cfg:


Надо так:
Code:
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]
.............................................


debug=dbg - это связь дебагера и процессора

Quote:
А клавиатура на ПРО отличается от обычного Ориона

У меня стандартная раскладка, через ВВ55 на портах 18-1В и в памяти F400-F4FF. Отключения клавиатуры по адресам в памяти в режиме Про пока не реализовано.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


03 Apr 2008 10:11
Profile WWW
Maniac
User avatar

Joined: 05 Oct 2006 05:45
Posts: 266
Location: Moscow
Reply with quote
Post 
b2m wrote:
Error404 wrote:
Не получается. При старте ничего не выводит (работает как обычно), по кнопке Break выдает "MFC application error" и закрывается. Использую EMU.EXE 18.02.2008 11:20 размер 155648
cfg:


Надо так:
debug=dbg - это связь дебагера и процессора

Quote:
А клавиатура на ПРО отличается от обычного Ориона

У меня стандартная раскладка, через ВВ55 на портах 18-1В и в памяти F400-F4FF. Отключения клавиатуры по адресам в памяти в режиме Про пока не реализовано.


Дебагер запустился. :) Как в нем сделать breakpoint (а то в ПЗУ первым же делом идет цикл на 40 тысяч итераций :) , прошагивать которые по F8 нереально) ?

Подскажите, пож, побитовые значения DIP-переключателя - соотвествие битам порта 0, а то я сделал как на мой взгляд должно было следовать из описания, и снова убедился, что Сугоняко мыслил иначе, чем я. :) Или опять описание не соответствует версии платы/прошивки. Каким-то чудом удалось подобрать комбинацию, при которой выходит в Power Commander либо (в другой комбинации) ругается что "нет внешнего ROM-Disk-а", и это пока все, что удалось подобрать :)

Кстати, по каким адресам (или портам?) в ПРО находится внешний ROM-ДИСК? Это оно: " port[28-2B]=app2.data" ? Если да, то в каком документе описано (я такого не встречал)?

_________________
Всем добра!


03 Apr 2008 13:07
Profile
Fanat

Joined: 01 Oct 2007 11:30
Posts: 88
Reply with quote
Post 
Все эти непонятки с портами и другими вещами вызваны постоянной доводкой платы в то время. В документации не описаны или описаны неправильно многие аспекты работы железа. Самый верный способ разобрать – это читать схемы. Я так и делал.
Положение переключателя DIP я брал в конфигурационном файле эмулятора b2m.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


04 Apr 2008 00:22
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 623
Reply with quote
Post 
Error404 wrote:
Как в нем сделать breakpoint

Вот все клавиши:
F4 - запустить до курсора
F5 - запустить
F8 - один шаг
Shift+F8 - запустить до следующей команды (удобно выполнять ldir, call и проматывать циклы, если они заканчиваются условным jmp) Иногда не срабатывает, приходится использовать F4 на след.команде, источник бага не найден.
F9 - точка останова
Ctrl+G - перейти к другому адресу (дизассемблер, дамп)
Break - прервать исполнение

Quote:
Подскажите, пож, побитовые значения DIP-переключателя

В начальном загрузчике есть опция "TEST / Configuration" - показывает значения DIP-переключателей.
По-моему там в документации частично перепутаны 0/1
Подбирал методом тыка.

Quote:
Кстати, по каким адресам (или портам?) в ПРО находится внешний ROM-ДИСК? Это оно: " port[28-2B]=app2.data" ?

Да. Если посмотришь в конфиге app2 это BB55, к портам которого подключена память romdisk. Не помню, откуда эта информация, возможно выяснил в процессе трассировки первых запусков Про.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


04 Apr 2008 01:53
Profile WWW
Maniac
User avatar

Joined: 05 Oct 2006 05:45
Posts: 266
Location: Moscow
Reply with quote
Post 
b2m wrote:
Error404 wrote:
Quote:
Подскажите, пож, побитовые значения DIP-переключателя

В начальном загрузчике есть опция "TEST / Configuration" - показывает значения DIP-переключателей.
По-моему там в документации частично перепутаны 0/1
Подбирал методом тыка.

Quote:
Кстати, по каким адресам (или портам?) в ПРО находится внешний ROM-ДИСК? Это оно: " port[28-2B]=app2.data" ?

Да. Если посмотришь в конфиге app2 это BB55, к портам которого подключена память romdisk. Не помню, откуда эта информация, возможно выяснил в процессе трассировки первых запусков Про.


Rom-Disk сделал, работает. А в начальный загрузчик у меня оно не выходит - сразу грузится Ordos. :o Соответственно опцию "TEST / Configuration" пока посмотреть не могу. А в вашем эмуле в настройках "dip" это значение порта 0 или именно переключателей?

_________________
Всем добра!


04 Apr 2008 04:16
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 623
Reply with quote
Post 
Error404 wrote:
А в начальный загрузчик у меня оно не выходит - сразу грузится Ordos. :o Соответственно опцию "TEST / Configuration" пока посмотреть не могу.

Измени D5 DIP-переключателей :)

Error404 wrote:
А в вашем эмуле в настройках "dip" это значение порта 0 или именно переключателей?

Такой фичи как "DIP-переключатели" пока нет, и наверное не будет. Потому что тут я применил хитрость: Файл с DIP это 8 байт, из которых используется только младший бит, который и будет значением в порту 00h. Т.е. в текстовом виде - это как бы двоичная запись значения порта.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


05 Apr 2008 00:49
Profile WWW
Maniac
User avatar

Joined: 05 Oct 2006 05:45
Posts: 266
Location: Moscow
Reply with quote
Post 
b2m wrote:
Error404 wrote:
А в вашем эмуле в настройках "dip" это значение порта 0 или именно переключателей?

Такой фичи как "DIP-переключатели" пока нет, и наверное не будет. Потому что тут я применил хитрость: Файл с DIP это 8 байт, из которых


Почему-то часть DIP-переключателей работают инверсно относительно руководства пользователя :o
Например, переключатель типа клавиатуры. А в остальном вроде все работает...

А что описывает настройка "mm.page"? Что-то я не нахожу где в конфиге описывается ее "влияние"
Code:
sys2 : K580ww55 {
.....................
  portC[6-7]=mm.page
}

_________________
Всем добра!


07 Apr 2008 08:26
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 623
Reply with quote
Post 
Error404 wrote:
Почему-то часть DIP-переключателей работают инверсно относительно руководства пользователя


Сам удивляюсь. :)

Quote:
А что описывает настройка "mm.page"?

По-моему там всё не так уж и сложно:

Code:
mm : MemMap {
  map[0][0000-3FFF]=win1
  map[0][4000-7FFF]=win2
....


mm это диспетчер памяти (MemMap), внутри которого описаны строчки вида map[номер страницы][диапазон адресов]=устройство. А mm.page в данном случае - это и есть "номер страницы" данного диспетчера.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


08 Apr 2008 06:18
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 73 posts ]  Go to page Previous  1, 2, 3, 4, 5

Who is online

Users browsing this forum: Bing [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.