nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 12 Dec 2017 10:16



Reply to topic  [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Эмуляция КР580ВВ79 
Author Message
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
Не сказал бы, что это очевидно... По Ctrl+M выбрал bios, вроде всё заработало.

По поводу точности эмуляции ВВ79. Моё пошаговое устройство показывает, что после записи управляющего слова "Сброс" (0CFh) индикатор очищается, в эмуляторе же остаётся на индикаторе то, что и было. Вероятно, это имеет значение.

При работе с эмулятором заметил, что если выбрать File -> New, а потом в окошке выбора нажать Cancel, то при открытом окне дебагера эмулятор завершает работу. Если же дебагер закрыт, то к завершению работы приводит попытка его открытия.


03 Oct 2012 07:27
Profile
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
VituZz wrote:
По поводу точности эмуляции ВВ79. Моё пошаговое устройство показывает, что после записи управляющего слова "Сброс" (0CFh) индикатор очищается

Спасибо за информацию.

VituZz wrote:
При работе с эмулятором заметил, что если выбрать File -> New, а потом в окошке выбора нажать Cancel, то при открытом окне дебагера эмулятор завершает работу. Если же дебагер закрыт, то к завершению работы приводит попытка его открытия.

Да, с отладчиком надо аккуратнее, косяков там не мало. :)
Постараюсь исправить.

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


03 Oct 2012 07:34
Profile WWW
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
b2m wrote:
Да, с отладчиком надо аккуратнее

Вообще-то эмулятор здорово облегчает жизнь. Но как я полагаю, эмуляция компьютеров в целом достаточно безглючна. Имеет ли смысл мне писать здесь о каких-то замеченных недостатках? Ведь они касаются, как я понимаю, только интересной мне конфигурации Calc, которая не представляет интереса для других.

П.С. Если в онлайн-ассемблерe ошибочно написать, к примеру, pop HL вместо pop H, то генерится код C1, соответствующий pop B, а не код E1, соответствующий pop H. Можно потом долго искать... :)


03 Oct 2012 07:49
Profile
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
VituZz wrote:
Имеет ли смысл мне писать здесь о каких-то замеченных недостатках?

Совершенству нет предела, но всё равно, пиши :)

VituZz wrote:
П.С. Если в онлайн-ассемблерe ошибочно написать, к примеру, pop HL вместо pop H, то генерится код C1, соответствующий pop B, а не код E1, соответствующий pop H. Можно потом долго искать... :)

Приколько, даже ошибки не выдаёт. Но на полноценный ассемблер эта поделка и не претендует.

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


03 Oct 2012 10:00
Profile WWW
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
b2m wrote:
но всё равно, пиши :)

Ещё заметил в отладчике, что если идти по коду клавишей F8, основное окошко эмулятора не отображает изменений. Например, выводишь символ на индикатор, а после этой команды на индикаторе ничего не происходит. Но если часть кода пройти с помощью F4 (я пропускал циклы, ответственные за паузу после вывода символа), то индикатор нормально отрабатывает то, что должен был показать раньше.
b2m wrote:
Но на полноценный ассемблер эта поделка и не претендует.

Но двигаться в нужном направлении будет? :)


03 Oct 2012 10:15
Profile
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
VituZz wrote:
Ещё заметил в отладчике, что если идти по коду клавишей F8, основное окошко эмулятора не отображает изменений.

Не ты первый на это жалуешься. Но обновление экрана из отладчика не предусмотрено программным интерфейсом. Даже я не знаю, будет ли это когда-либо сделано. :)

VituZz wrote:
Но если часть кода пройти с помощью F4 (я пропускал циклы, ответственные за паузу после вывода символа), то индикатор нормально отрабатывает то, что должен был показать раньше.

Логично. Когда приходит время обновлять экран, он обновляется.

VituZz wrote:
Но двигаться в нужном направлении будет? :)

Всё зависит от наличия времени и желания. А эти две сущности, заразы, редко когда одновременно имеются :)

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


04 Oct 2012 06:43
Profile WWW
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
b2m wrote:
VituZz wrote:
Ещё заметил в отладчике, что если идти по коду клавишей F8, основное окошко эмулятора не отображает изменений.

Не ты первый на это жалуешься. Но обновление экрана из отладчика не предусмотрено программным интерфейсом. Даже я не знаю, будет ли это когда-либо сделано. :)

VituZz wrote:
Но если часть кода пройти с помощью F4 (я пропускал циклы, ответственные за паузу после вывода символа), то индикатор нормально отрабатывает то, что должен был показать раньше.

Логично. Когда приходит время обновлять экран, он обновляется.

Что-то я не совсем понял. Когда фрагмент кода в отладчике проходишь по F8, индикатор изменений не показывает. Когда этот же фрагмент кода в отладчике проходишь по F4, индикатор изменения показывает. Сейчас я упёрся в это дело, не пойму, откуда вылезает в бегущей строке лишний символ, вообще левый. Придётся снова прошить РФку, посмотреть, как оно будет в железке :).

П.С. С лишним символом, похоже, разобрался. Режим вывода на индикатор со сдвигом влево оказался не так прост, как хотелось. Перезапись управляющего слова изменяет адрес следующего символа в ОЗУ индикации, и в общем случае нужно перезаполнить индикатор. В эмуляторе теперь всё работает, но в железке всё равно проверю.


04 Oct 2012 07:03
Profile
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
Обновил эмулятор на сайте. Исправил сброс, добавил дамп внутренней памяти дисплея ВВ79 (по Ctrl+M), в нижней строке теперь показывается позиция левого символа (в режиме со сдвигом).

Заметил, что при трассировке иногда появляются дублирующиеся символы. Но это не косяк. Просто экран отобразился в такой момент, когда один символ уже изменился, а следующий ещё "горит" с предыдущего цикла обновления дисплея ВВ79. Реальное содержимое памяти лучше смотреть через дамп.

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


04 Oct 2012 10:17
Profile WWW
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
Спасибо!


04 Oct 2012 10:35
Profile
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
Наврное, вчера и ассемблер обновлялся? Сегодня он "забыл" о существовании у процессора регистра B :D . Если ассемблировать строчку
Code:
mov B, A

то внизу появляется сообщение
Code:
Unknown register B:         mov B, A

И так со всеми строчками, где встречается регистр B. Хотя в окошке дампа соответствующие коды появляются.


05 Oct 2012 03:00
Profile
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
Опс :)

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


05 Oct 2012 05:22
Profile WWW
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
Железочка обзавелась "рамой" - статическим ОЗУ с батарейкой, 32кБ по адресам 8000h-FFFFh. b2m, нельзя ли добавить это ОЗУ в эмулятор железочки? :roll:

Это Calc в твоём эмуляторе - на случай, если ты успел позабыть. :)


18 Dec 2012 12:33
Profile
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
Да ради Бога!
Измени конфиг вот так:
Code:
mem1 : Memory {
  size=9000
}

mm : MemMap {
  map[0][0000-07FF]=bios
  map[0][0800-0FFF]=mem1[0800]
  map[0][8000-FFFF]=mem1[1000]
  map[1][0000-0FFF]=mem1[0000]
  map[1][8000-FFFF]=mem1[1000]
}

Только это будет без батарейки :)

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


18 Dec 2012 15:32
Profile WWW
God
User avatar

Joined: 13 Nov 2010 07:06
Posts: 1291
Reply with quote
Post 
Quote:
mem1 : Memory {
size=9000
}

mm : MemMap {
map[0][0000-07FF]=bios
map[0][0800-0FFF]=mem1[0800]
map[0][8000-FFFF]=mem1[1000]
map[1][0000-0FFF]=mem1[0000]
map[1][8000-FFFF]=mem1[1000]
}

Не мог бы ты пояснить выделенное? RAM по адресам 0-07FFh пока нет, как и по адресам 0800-0FFFh.


19 Dec 2012 00:03
Profile
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
Я уже не помню, зачем так сделано. Если есть только биос в адресах 0000-07FF и ОЗУ 8000-FFFF, а раскладка памяти фиксированная, то можно и проще (это весь конфиг):
Code:
main.CPUClock=2MHz
main.Caption="Calc"

CPU : K580wm80a {
  mem=mm
  port[02-03]=ww79.data
  rst[7]=ww79.irq
}

bios : Memory {
  rom="Calc\calc.rom"
}

kbd : Keyboard {
  layout="Calc\calc.kbd"
}

mem1 : Memory {
  size=8000
}

mm : MemMap {
  map[0][0000-07FF]=bios
  map[0][8000-FFFF]=mem1
}

dspmux : MemMap2 {
  map[00-FF]=vid.pins
}

kbdreg : Register {
  write[0-2]=kbd.mask
}

ww79 : K580ww79 {
  scan=dspmux.offset
  scan=kbdreg
  ret=kbd.~idata
  display=dspmux
}

vid : Indicator {
  maskbitmap="Calc\calc.bmp"
  background[0]="Calc\calc.gif"
  background[1]="Calc\calc.bmp"
  pin[0-38].point=18,9,23,0,8
  pin[1-39].point=24,18,23,0,8
  pin[2-3A].point=24,32,23,0,8
  pin[3-3B].point=18,40,23,0,8
  pin[4-3C].point=11,32,23,0,8
  pin[5-3D].point=11,18,23,0,8
  pin[6-3E].point=18,24,23,0,8
  pin[7-3F].point=29,40,23,0,8
}


О, вспомнил :)

VituZz wrote:
Также у этого контроллера в пространство 0000...07FFh включена ПЗУ РФ2. Имеется порт ввода-вывода 00h, бит 0 которого по сбросу устанавливается в 0 и разрешает работу ROM, а при установке его в 1 ROM отключается, а адресное пространство отдаётся RAM. Порт 00h доступен для чтения и записи.

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


19 Dec 2012 02:42
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users 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.