Помогите с ассемблером
Помогите с ассемблером
Добрый вечер. Собрал себе компьютер Радио-86рк, но он отказывается работать. Методика отладки компьютера предполагает использование чипа ПЗУ с особой тестирующей прошивкой. В седьмом выпуске журнала Радио за 1988 год приведен код этой программы на ассемблере. Я в этом языке не силен и не знаю, как преобразовать его в бинарный файл, который можно будет зашить в ПЗУ. Прошу вашей помощи.
Вот сайт, на котором есть ассемблер для Радио-86рк http://rk86.ru/
Вот вырезка из исходной статьи
Вот тот же самый код, но в печатном виде
;Программа для наладки РАДИО-86РК
C000 = VG75 EQU 0C000H
E000 = VT57 EQU 0E000H
8000 = VV55 EQU 8000H
F800 ORG 0F800H
F800 C303F8 JMP BEGIN
;Инициализация KP580BB55
F803 ЗЕ8А MVI A,9AH
F805 320380 STA W55+3
;Инициализация КР580ВГ75
F808 2101C0 BEGIN: LXI H,VG75+1
F80B 3600 MVI M,B
F00D 2В DCX H
F80E 364D MVI M,4DH
F010 361D MVI M,1DH
F812 3699 MVI M,99H
F814 3693 MVI M,93H
; Инициализация КР580BT57
F816 3E80 MVI A,80H
P818 3208Е0 STA VT57+8
F818 2104E0 LXI H,VT57+4
F81E 36D0 MVI M,BD0H
F82a 3636 MVI M,36H
F822 23 INX H
F923 3623 MVI M,23H
f825 3649 MVI M,49H
; Старт ПДП
F827 3EA4 MVI A,0A4H
F829 3208E0 STA VT57+8
; Заполнение экранной области ОЗУ
F82С 210036 LXI Н,3600Н
F82F 7D LABEL1: MOV A,L
F850 E67F ANI 7FH
F832 77 MOV M,A
F833 23 INX H
F834 7C MOV A,H
F835 FE40 CPI 40Н
FB37 C22AF8 JNZ LABEL1
; Старт отображений
F83A 3E27 MVI A,27H
F83C 3201C0 STA VG75+1
; Проверка работы клавиатуры
F83F 210080 LXI H,W55
F842 367F MVI M,7FH
F844 7E LABEL2: MOV A,M
F845 07 RLC
F846 77 MOV M,A
F847 3A0180 LABEL3: LDA VV55+1
F84A 3C INR A
F84B C247F8 JNZ LABEL3
F84E C344F8 JMP LABEL2
F851 END
Вот сайт, на котором есть ассемблер для Радио-86рк http://rk86.ru/
Вот вырезка из исходной статьи
Вот тот же самый код, но в печатном виде
;Программа для наладки РАДИО-86РК
C000 = VG75 EQU 0C000H
E000 = VT57 EQU 0E000H
8000 = VV55 EQU 8000H
F800 ORG 0F800H
F800 C303F8 JMP BEGIN
;Инициализация KP580BB55
F803 ЗЕ8А MVI A,9AH
F805 320380 STA W55+3
;Инициализация КР580ВГ75
F808 2101C0 BEGIN: LXI H,VG75+1
F80B 3600 MVI M,B
F00D 2В DCX H
F80E 364D MVI M,4DH
F010 361D MVI M,1DH
F812 3699 MVI M,99H
F814 3693 MVI M,93H
; Инициализация КР580BT57
F816 3E80 MVI A,80H
P818 3208Е0 STA VT57+8
F818 2104E0 LXI H,VT57+4
F81E 36D0 MVI M,BD0H
F82a 3636 MVI M,36H
F822 23 INX H
F923 3623 MVI M,23H
f825 3649 MVI M,49H
; Старт ПДП
F827 3EA4 MVI A,0A4H
F829 3208E0 STA VT57+8
; Заполнение экранной области ОЗУ
F82С 210036 LXI Н,3600Н
F82F 7D LABEL1: MOV A,L
F850 E67F ANI 7FH
F832 77 MOV M,A
F833 23 INX H
F834 7C MOV A,H
F835 FE40 CPI 40Н
FB37 C22AF8 JNZ LABEL1
; Старт отображений
F83A 3E27 MVI A,27H
F83C 3201C0 STA VG75+1
; Проверка работы клавиатуры
F83F 210080 LXI H,W55
F842 367F MVI M,7FH
F844 7E LABEL2: MOV A,M
F845 07 RLC
F846 77 MOV M,A
F847 3A0180 LABEL3: LDA VV55+1
F84A 3C INR A
F84B C247F8 JNZ LABEL3
F84E C344F8 JMP LABEL2
F851 END
- nimdasys_inbox_ru
- Advanced Member
- Сообщения: 3661
- Зарегистрирован: 05.06.2019,18:58
- Откуда: Черкесск
-
Вклад в сообщество
Помогите с ассемблером
Такс... смотрите крайние слева это адрес смещения и рядом значения в этих смещениях. а вот правее это мнемокод! Т.е. Ваша задача создать дамп с данными по нужным адресам (они же смещения)!
Иными словами Вам нужно внести с адреса F800 все значения расположенные левее - это и есть нужный Вам код в шестнадцатеричном виде!
ПЗУ есть чем программировать ?!
Иными словами Вам нужно внести с адреса F800 все значения расположенные левее - это и есть нужный Вам код в шестнадцатеричном виде!
ПЗУ есть чем программировать ?!
- Tronix
- Advanced Member
- Сообщения: 3625
- Зарегистрирован: 15.01.2008,11:00
- Откуда: Москва
-
Вклад в сообщество
Помогите с ассемблером
Берется кросс-ассемблер под винду: http://48k.ca/zmac.html . Далее правятся в файле очепятки от Fine-Reader'a, на скорую руку примерно где-то так:
Далее создается текстовый файл TEST.ASM с вышеуказанным содержанием и кидается в директорию, в которой уже есть распакованный ассемблер. Далее запускается ассемблер из командной строки: zmac.exe -8 test.asm . Появляется папка zout, в которой лежат файлы test.cim - просто бинарный файл, test.hex - intel HEX формат, test.lst - файл листинга и другие, в данном случае не нужные.
Так же обращаю внимание, что листинг "вырезка из исходной статьи" не соответствует сам себе - первой инструкцией идет JMP BEGIN, и как видим по листингу, метка BEGIN у афторов начинается после "инициализация ВГ75", пропуская "инициализацию ВВ55". Если верить ассемблерному листингу, то мнемоника должна быть C308F8. Если верить мнемонике С303А8, то метка BEGIN: должна стоять сразу после JMP BEGIN. Не суть конечно важно, но вызывает ПОДОЗРЕНИЕ в компетентности афторов
Код: Выделить всё
;Программа для наладки РАДИО-86РК
VG75 EQU 0C000H
VT57 EQU 0E000H
VV55 EQU 8000H
STARTUP ORG 0F800H
JMP BEGIN
;Инициализация KP580BB55
BEGIN: MVI A,8AH
STA VV55+3
;Инициализация КР580ВГ75
LXI H,VG75+1
MVI M,0
DCX H
MVI M,4DH
MVI M,1DH
MVI M,99H
MVI M,93H
; Инициализация КР580BT57
MVI A,80H
STA VT57+8
LXI H,VT57+4
MVI M,0D0H
MVI M,36H
INX H
MVI M,23H
MVI M,49H
; Старт ПДП
MVI A,0A4H
STA VT57+8
; Заполнение экранной области ОЗУ
LXI H,3600H
LABEL1: MOV A,L
ANI 7FH
MOV M,A
INX H
MOV A,H
CPI 40H
JNZ LABEL1
; Старт отображений
MVI A,27H
STA VG75+1
; Проверка работы клавиатуры
LXI H,VV55
MVI M,7FH
LABEL2: MOV A,M
RLC
MOV M,A
LABEL3: LDA VV55+1
INR A
JNZ LABEL3
JMP LABEL2
END
Так же обращаю внимание, что листинг "вырезка из исходной статьи" не соответствует сам себе - первой инструкцией идет JMP BEGIN, и как видим по листингу, метка BEGIN у афторов начинается после "инициализация ВГ75", пропуская "инициализацию ВВ55". Если верить ассемблерному листингу, то мнемоника должна быть C308F8. Если верить мнемонике С303А8, то метка BEGIN: должна стоять сразу после JMP BEGIN. Не суть конечно важно, но вызывает ПОДОЗРЕНИЕ в компетентности афторов
- nimdasys_inbox_ru
- Advanced Member
- Сообщения: 3661
- Зарегистрирован: 05.06.2019,18:58
- Откуда: Черкесск
-
Вклад в сообщество
Помогите с ассемблером
Так вот и не нужно смотреть на исходник - явно косяк редакции ну или аффторов!
А так по сути, там всё проще - просто нужно создать дамп с готовыми данными - они правильные!
А так по сути, там всё проще - просто нужно создать дамп с готовыми данными - они правильные!
Помогите с ассемблером
Спасибо! Да, есть.nimdasys_inbox_ru писал(а): ↑01.09.2019,21:55 Такс... смотрите крайние слева это адрес смещения и рядом значения в этих смещениях. а вот правее это мнемокод! Т.е. Ваша задача создать дамп с данными по нужным адресам (они же смещения)!
Иными словами Вам нужно внести с адреса F800 все значения расположенные левее - это и есть нужный Вам код в шестнадцатеричном виде!
ПЗУ есть чем программировать ?!
,Tronix писал(а): ↑01.09.2019,22:30 Берется кросс-ассемблер под винду: http://48k.ca/zmac.html . Далее правятся в файле очепятки от Fine-Reader'a, на скорую руку примерно где-то так:
Далее создается текстовый файл TEST.ASM с вышеуказанным содержанием и кидается в директорию, в которой уже есть распакованный ассемблер. Далее запускается ассемблер из командной строки: zmac.exe -8 test.asm . Появляется папка zout, в которой лежат файлы test.cim - просто бинарный файл, test.hex - intel HEX формат, test.lst - файл листинга и другие, в данном случае не нужные.
Так же обращаю внимание, что листинг "вырезка из исходной статьи" не соответствует сам себе - первой инструкцией идет JMP BEGIN, и как видим по листингу, метка BEGIN у афторов начинается после "инициализация ВГ75", пропуская "инициализацию ВВ55". Если верить ассемблерному листингу, то мнемоника должна быть C308F8. Если верить мнемонике С303А8, то метка BEGIN: должна стоять сразу после JMP BEGIN. Не суть конечно важно, но вызывает ПОДОЗРЕНИЕ в компетентности афторов
Спасибо! Завтра попробую. В интернетах видел как хороший, так и плохой отзыв об этом тесте. Но ничего лучше не нашел.
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
Помогите с ассемблером
Вот не верю, что за столько лет никто не сделал и не выложил готовую прошивку.
Вот здесь посмотрите, если нет, спросите.
И здесь http://www.emuverse.ru/wiki/Радио-86РК
Вот здесь посмотрите, если нет, спросите.
И здесь http://www.emuverse.ru/wiki/Радио-86РК
Электронка: копия
Помогите с ассемблером
Я уже искал прошивку на этих страницах, но не нашел. На zx-pk тоже уже написал о своей проблеме.Rio444 писал(а): ↑01.09.2019,22:44 Вот не верю, что за столько лет никто не сделал и не выложил готовую прошивку.
Вот здесь посмотрите, если нет, спросите.
И здесь http://www.emuverse.ru/wiki/Радио-86РК
- nimdasys_inbox_ru
- Advanced Member
- Сообщения: 3661
- Зарегистрирован: 05.06.2019,18:58
- Откуда: Черкесск
-
Вклад в сообщество
Помогите с ассемблером
Код из журнала рабочий! Лично проверялось в своё время! У папиного друга, который тоже собирал Радио-86РК была проблема и он был вынужден заиметь такую ПЗУ! А у нас запустился, но были проблемы с ОЗУ (я обнаружил ... у меня сердце в пятки ушло, так как я думал, что я сломал компьютер из-за очень долгой игры в "Питон"!... а глюк был в виде кракозябры на экране, как выяснилось позже - из-за плохих микросхем ОЗУ)... потом папа "нашёл" хорошие микросхемы и всё было исправлено!
Помогите с ассемблером
А вот эта пометка в другой копии этого же выпуска важна, не помните?nimdasys_inbox_ru писал(а): ↑01.09.2019,23:02 Код из журнала рабочий! Лично проверялось в своё время! У папиного друга, который тоже собирал Радио-86РК была проблема и он был вынужден заиметь такую ПЗУ! А у нас запустился, но были проблемы с ОЗУ (я обнаружил ... у меня сердце в пятки ушло, так как я думал, что я сломал компьютер из-за очень долгой игры в "Питон"!... а глюк был в виде кракозябры на экране, как выяснилось позже - из-за плохих микросхем ОЗУ)... потом папа "нашёл" хорошие микросхемы и всё было исправлено!
- nimdasys_inbox_ru
- Advanced Member
- Сообщения: 3661
- Зарегистрирован: 05.06.2019,18:58
- Откуда: Черкесск
-
Вклад в сообщество
Помогите с ассемблером
Я не знаю, ПЗУ заимел папин друг! Но он её делал по статье из журнала!
Помогите с ассемблером
Получилось! И итоговый листинг на первый взгляд сходится с тем, что было в журнале (попозже еще раз все проверю). Спасибо!Tronix писал(а): ↑01.09.2019,22:30 Далее создается текстовый файл TEST.ASM с вышеуказанным содержанием и кидается в директорию, в которой уже есть распакованный ассемблер. Далее запускается ассемблер из командной строки: zmac.exe -8 test.asm . Появляется папка zout, в которой лежат файлы test.cim - просто бинарный файл, test.hex - intel HEX формат, test.lst - файл листинга и другие, в данном случае не нужные.
На всякий случай спрошу, строчка F800 ORG 0F800H эквивалентна строчке F800 STARTUP ORG 0F800H?