ROM swapper

вернуться на главную

Для определённости разработчики ПЗУ и ОЗУ дали ногам шин адреса и данных названия A0, A1... D0, D1... В большинстве случаев этой условной нумерацией можно принебречь и подключать ОЗУ и ПЗУ к процессору способом наиболее удобным с точки зрения разводки печатной платы.
Тем не менее в большинстве случаев память к процессору подключают соблюдая эту условную нумерацию. Когда мне потребовалось в первый раз дизассемблировать содержимое ПЗУ с изменённым подключением к шине, то я написал простенькую программку, которая легко справилась с расстановкой байт и бит в считанном файле. Когда же пришлось столкнуться с подобным во второй раз, написал программу на общий случай.
Программа пользуется текстовым файлом, в котором описан способ перестановки. По историческим причинам данная программа написана для малой модели памяти TC 1.01. Максимальный размер ПЗУ, с которым программа может справиться - 64кБайта.
Пример содержимого файла перестановки ног:

file
tmp.bin

data
0 - 7
1 - 6
2 - 5
3 - 4
4 - 3
5 - 2
6 - 1
7 - 0

addr
0 - 1
1 - 2
2 - 6
3 - 7
4 - 12
5 - 5
6 - 4
7 - 3
8 - 14
9 - 13
10 - 8
11 - 9
12 - 11
13 - 10
14 - 0
15 - 15

Чтобы не усложнять процедуру считывания файла, он имеет жёстко фиксированный формат.
Сначала следует заголовок file, а сразу под ним название выходного файла с преобразованными данными.
Потом следует секция data, в которой описано подключение ПЗУ к шине данных микропроцессора. Слева номер ноги шины данных микропроцессора, а справа номер ноги ПЗУ.
И завершает файл секция addr, в которой описано подключение ПЗУ к шине адреса микропроцессора. Слева номер ноги шины адреса микропроцессора, а справа номер ноги ПЗУ.
Тут находится исходный код на С++ и уже откомпилированный исполняемый файл.

вернуться на главную

Сайт создан в системе uCoz