Эмуляция КР580ВВ79

Эмулятор Радио-86РК и других советских компьютеров на КР580ВМ80А http://www.emu80.org

Moderator: Pyk

User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Всё верно. ПЗУ и порт уже есть, а "рамы" по адресам 0-7FFFh ещё нет. Поэтому после переключения порта на ОЗУ оно пока остаётся только по адресам 8000-FFFFh.

Спасибо за помощь, буду дальше играться.

П.С. Можно ли в online-ассемблере указать, что некоторая область, не занятая кодом, должна быть заполнена определённым байтом? К примеру, я хочу так:

Code: Select all

org 0
db 0FFh, ..., 0FFh ; 32 байта FF
org 0
hlt
org 8
ret
...
org 38h
ret
Если писать таким образом, то RETы, не смотря на ORGи, смещаются в адресном пространстве и располагаются уже после 32-х байтов FF:

Code: Select all

0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0040: 76 00 00 00 00 00 00 00 c9 00 00 00 00 00 00 00
0050: c9 00 00 00 00 00 00 00 c9 00 00 00 00 00 00 00
0060: c9 00 00 00 00 00 00 00 c9 00 00 00 00 00 00 00
0070: c9 00 00 00 00 00 00 00 c9
вместо того, чтобы расположиться "поверх":

Code: Select all

0000: 76 ff ff ff ff ff ff ff c9 ff ff ff ff ff ff ff
0010: c9 ff ff ff ff ff ff ff c9 ff ff ff ff ff ff ff
0020: c9 ff ff ff ff ff ff ff c9 ff ff ff ff ff ff ff
0030: c9 ff ff ff ff ff ff ff c9 ff ff ff ff ff ff ff
Как сделать правильно?
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

VituZz wrote:П.С. Можно ли в online-ассемблере указать, что некоторая область, не занятая кодом, должна быть заполнена определённым байтом? К примеру, я хочу так:
...
Как сделать правильно?
К сожалению, org в моей версии нельзя двигать назад.
Придётся делать так:

Code: Select all

HLT
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
RET
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
RET
...
Могу сделать, чтобы org при смещении вперёд забивал не нулевым байтом, а байтом FF. Тогда можно будет делать так:

Code: Select all

HLT
ORG 8
RET
ORG 10h
RET
...
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Для озу принято инициализировать память 00, для ПЗУ - FF (из-за уважения к EPROM). Думаю, было бы хорошим тоном указывать, каким байтом заполнять не проинициализированную память. Например ввести команду fill 00h.
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

b2m, что-то я не нахожу на твоём сайте online-ассемблера. Может, со зрением что-то, или ссылка потерялась?
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

Да кому он нужен...
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Мне нужен.
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Спасибо!
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Кстати, в Wine 1.4.1, который ныне идёт со стабильным Дебианом, эмулятор работает сразу и без проблем...
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Железочка обзавелась контроллером прерываний. ВН59 находится по адресам 04h, 05h, на вход IR2 (нумерация от IR0 до IR7) присоединена ВВ79.
b2m, нельзя ли отразить это в эмуляторе? Это Calc, если ты подзабыл уже, о чём речь :)