Помогите с ассемблером

Поиск, обмен ссылками, вопросы по устаревшему программному обеспечению.
Kup
Advanced Member
Сообщения: 452
Зарегистрирован: 25.09.2017,12:20
Откуда: Москва

Помогите с ассемблером

Сообщение Kup » 01.09.2019,19:05

Добрый вечер. Собрал себе компьютер Радио-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

Аватара пользователя
nimdasys_inbox_ru
Advanced Member
Сообщения: 3661
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Помогите с ассемблером

Сообщение nimdasys_inbox_ru » 01.09.2019,21:55

Такс... смотрите крайние слева это адрес смещения и рядом значения в этих смещениях. а вот правее это мнемокод! Т.е. Ваша задача создать дамп с данными по нужным адресам (они же смещения)!

Иными словами Вам нужно внести с адреса F800 все значения расположенные левее - это и есть нужный Вам код в шестнадцатеричном виде!

ПЗУ есть чем программировать ?!

Аватара пользователя
Tronix
Advanced Member
Сообщения: 3625
Зарегистрирован: 15.01.2008,11:00
Откуда: Москва

Вклад в сообщество

Помогите с ассемблером

Сообщение Tronix » 01.09.2019,22:30

Берется кросс-ассемблер под винду: http://48k.ca/zmac.html . Далее правятся в файле очепятки от Fine-Reader'a, на скорую руку примерно где-то так:

Код: Выделить всё

;Программа для наладки РАДИО-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
Далее создается текстовый файл 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. Не суть конечно важно, но вызывает ПОДОЗРЕНИЕ в компетентности афторов :biggrin:

Аватара пользователя
nimdasys_inbox_ru
Advanced Member
Сообщения: 3661
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Помогите с ассемблером

Сообщение nimdasys_inbox_ru » 01.09.2019,22:39

Так вот и не нужно смотреть на исходник - явно косяк редакции ну или аффторов!

А так по сути, там всё проще - просто нужно создать дамп с готовыми данными - они правильные!

Kup
Advanced Member
Сообщения: 452
Зарегистрирован: 25.09.2017,12:20
Откуда: Москва

Помогите с ассемблером

Сообщение Kup » 01.09.2019,22:42

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. Не суть конечно важно, но вызывает ПОДОЗРЕНИЕ в компетентности афторов :biggrin:
,
Спасибо! Завтра попробую. В интернетах видел как хороший, так и плохой отзыв об этом тесте. Но ничего лучше не нашел.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Помогите с ассемблером

Сообщение Rio444 » 01.09.2019,22:44

Вот не верю, что за столько лет никто не сделал и не выложил готовую прошивку.

Вот здесь посмотрите, если нет, спросите.

И здесь http://www.emuverse.ru/wiki/Радио-86РК
Электронка: Изображение копия Изображение

Kup
Advanced Member
Сообщения: 452
Зарегистрирован: 25.09.2017,12:20
Откуда: Москва

Помогите с ассемблером

Сообщение Kup » 01.09.2019,22:52

Rio444 писал(а): 01.09.2019,22:44 Вот не верю, что за столько лет никто не сделал и не выложил готовую прошивку.

Вот здесь посмотрите, если нет, спросите.

И здесь http://www.emuverse.ru/wiki/Радио-86РК
Я уже искал прошивку на этих страницах, но не нашел. На zx-pk тоже уже написал о своей проблеме.

Аватара пользователя
nimdasys_inbox_ru
Advanced Member
Сообщения: 3661
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Помогите с ассемблером

Сообщение nimdasys_inbox_ru » 01.09.2019,23:02

Код из журнала рабочий! Лично проверялось в своё время! У папиного друга, который тоже собирал Радио-86РК была проблема и он был вынужден заиметь такую ПЗУ! А у нас запустился, но были проблемы с ОЗУ (я обнаружил ... у меня сердце в пятки ушло, так как я думал, что я сломал компьютер из-за очень долгой игры в "Питон"!... а глюк был в виде кракозябры на экране, как выяснилось позже - из-за плохих микросхем ОЗУ)... потом папа "нашёл" хорошие микросхемы и всё было исправлено!

Kup
Advanced Member
Сообщения: 452
Зарегистрирован: 25.09.2017,12:20
Откуда: Москва

Помогите с ассемблером

Сообщение Kup » 01.09.2019,23:07

nimdasys_inbox_ru писал(а): 01.09.2019,23:02 Код из журнала рабочий! Лично проверялось в своё время! У папиного друга, который тоже собирал Радио-86РК была проблема и он был вынужден заиметь такую ПЗУ! А у нас запустился, но были проблемы с ОЗУ (я обнаружил ... у меня сердце в пятки ушло, так как я думал, что я сломал компьютер из-за очень долгой игры в "Питон"!... а глюк был в виде кракозябры на экране, как выяснилось позже - из-за плохих микросхем ОЗУ)... потом папа "нашёл" хорошие микросхемы и всё было исправлено!
А вот эта пометка в другой копии этого же выпуска важна, не помните?
Изображение

Аватара пользователя
nimdasys_inbox_ru
Advanced Member
Сообщения: 3661
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Помогите с ассемблером

Сообщение nimdasys_inbox_ru » 01.09.2019,23:22

Я не знаю, ПЗУ заимел папин друг! Но он её делал по статье из журнала!

Kup
Advanced Member
Сообщения: 452
Зарегистрирован: 25.09.2017,12:20
Откуда: Москва

Помогите с ассемблером

Сообщение Kup » 02.09.2019,09:23

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?

Ответить