[Vincenzo] хотел прочитать около 82S129 биполярных выпускных вечеров, и почему нет, они были очень распространены в аркадной сцене 1980-х годов. Проблема в том, что его вид нечетной шариковой части сейчас, и обычно только (даже) более дорогих программистов EPROM могут их прочитать. Arduino, Marboard и некоторые быстрые сценарии быстро заботятся об этой проблеме с помощью этой аркадного ROM Reader.

Вы придерживаетесь выпускного вечера в своем макете и проводят его до соответствующих портов и контактов Arduino, что бит, челкает выпускной, и возвращает результаты, хотя и последовательное соединение Arduino. Используя терминальную программу на стороне ПК, вы захватите текст и используете скрипт для преобразования значений ASCII в двоичный формат отключения и сохраняют как Hex.

Это делает намного проще для нас, чтобы выбросить рома из старых аркадных досок, потому что вы никогда не знаете, когда вы можете столкнуться с старой полибийской аркадной доской на следующем выезде в спасение или лома.

Присоединяйтесь к нам после перерыва для всех деталей и как всегда комментарии!

82S129 Биполярные выпускные вечера очень распространены в A80 Arcade Jamma досками. Неужели, только более дорогие программисты EPROM могут их прочитать. Я использовал Arduino Duemilanove для сброса 82S129 содержимого на ПК для резервного использования.
Я использовал макет для подключения 82S129 булавок к Arduino. Пожалуйста, следуйте этой схеме:

Arduino Pins ——> 82S129 PIN-код (Функция)
+ 5 В 16 VCC
GND 8 GND.
Digital 2 5 A0
Digital 3 6 A1
Digital 4 7 A2
Digital 5 4 A3
Digital 6 3 A4
Digital 7 2 A5
Digital 8 1 A6
Digital 9 15 A7
Digital 10 12 O1
Digital 11 11 O2
Digital 12 10 O3
Digital 13 9 O4
GND 13 CE1.
GND 14 CE2.

Вот программа PDE для отправки в Arduino:

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120
121.
122.
123.
124.
Начать PDE программа
——————————————————
/ *
82S129 Arduino Reader
Vincenzo Femia (Enzofemia@gmail.com)
* /
Байт indirizzo = 0; // & quot; indirizzo ” является итальянским для «адрес»; 🙂
логический a0 = 0; // адресные биты
Boolean A1 = 0;
логический A2 = 0;
Boolean A3 = 0;
Boolean A4 = 0;
логический a5 = 0;
Boolean A6 = 0;
Boolean A7 = 0;
//
Boolean O0 = 0; // биты данных
Boolean O1 = 0;
Boolean O2 = 0;
Boolean O3 = 0;
байтовый выход = 0;
Void Setup ()
{
// pin0 & amp; PIN1 зарезервирован для последовательной связи
PinMode (2, вывод); // установить контакты для адреса
PinMode (3, выход);
PinMode (4, выход);
PinMode (5, вывод);
PinMode (6, выход);
PinMode (7, выход);
PinMode (8, выход);
PinMode (9, вывод);
PINMODE (10, вход); // Установите контакты для данных (это лякл)
PinMode (11, вход);
PinMode (12, вход);
PinMode (13, вход);

}

недействительный цикл ()
{

для (indirizzo = 0; indirizzo & lt; 256; indirizzo ++) // от 00 до FF-адреса
{
A0 = BitRead (Indirizzo, 0); // Чтение статуса бит адреса …
A1 = BitRead (Indirizzo, 1);
A2 = BitRead (Indirizzo, 2);
A3 = BitRead (Indirizzo, 3);
A4 = BitRead (Indirizzo, 4);
A5 = BitRead (Indirizzo, 5);
A6 = BitRead (Indirizzo, 6);
A7 = BitRead (Indirizzo, 7);

//..and набор выходов
if (a0 == 1) {digitalwrite (2, высокий);}
еще {DigitalWrite (2, низкий);}

Если (A1 == 1) {DigitalWrite (3, высокий);}
еще {DigitalWrite (3, низкий);}

Если (A2 == 1) {DigitalWrite (4, высокий);}
еще {DigitalWrite (4, низкий);}

если (A3 == 1) {DigitalWrite (5, высокий);}
еще {DigitalWrite (5, низкий);}

Если (A4 == 1) {DigitalWrite (6, высокий);}
еще {DigitalWrite (6, низкий);}

Если (A5 == 1) {DigitalWrite (7, высокий);}
еще {DigitalWrite (7, низкий);}

Если (A6 == 1) {DigitalWrite (8, высокий);}
еще {DigitalWrite (8, низкий);}

Если (A7 == 1) {DigitalWrite (9, высокий);}
еще {DigitalWrite (9, низкий);}

// Подождите, чтобы выходы могут быть установлены на 82S129
задержка (50);

O0 = DigitalRead (10); // Бит с чтением от выходов данных
O1 = DigitalRead (11);
O2 = DigitalRead (12);
O3 = DigitalRead (13);
Serial.begin (9600); // Настройка последовательной связи
// пишу в двоичном адресе ascii прочитайте и “- & gt; & quot;
if (a7 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}
if (a6 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}
if (a5 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}
if (a4 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}
if (a3 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}
if (a2 == 0) {serial.print (&: 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}
if (a1 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}
если (a0 == 0) {serial.print (& quot; 0 – & gt;);};}
остальное {serial.print (& quot; 1 – & gt;);};}

// Написать в двоичном выходе ASCII

if (o3 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}

если (o2 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}

если (o1 == 0) {serial.print (& quot; 0 & quot;);}
еще {serial.print (& quot; 1 & quot;);}

if (o0 == 0) {serial.println (& quot; 0 & quot;);}
else {serial.println (& quot; 1 & quot;);}

Если (indirizzo == 255) {serial.println (& quot; ROM был прочитан & quot;);}
Serial.end ();
}
}
———————————————-
Конечная программа PDE

Использование MINICOM или аналогичной программы, вы можете войти в систему серийных данных на ПК.
Использование редактора Теперь исправьте файл журнала, чтобы первая строка:
00000000 -> xxxx

И последняя строка:
11111111 -> xxxx

Пожалуйста, убедитесь, что файл содержит только 1 цитал чтения (256 строк).

Теперь мы должны преобразовать этот файл ASCII .txt в двоичном файле.
Поскольку я использую Linux, я пишу в языке программирования Gambas () небольшая программа для выполнения этого преобразования.
Однако пользователь Windows может портировать его в Visual Basic или другие языки.
Просто оно читайте считывающие биты, постройте ценность Zobble (00-0F), напишите двоичное значение в файле вывода .hex.
Вот источник:

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Начало программы Gambas
——————————————————-
Государственный субъект ()
Dim Ingreco как поток
Dim Uscita как поток
Dim Stringa как строка
DIM O0 как строка
Dim O1 как строка
Dim O2 как строка
Dim O3 как строка
Дим валоре как байт
Ingreco = Open & Quot; /home/enzo/temp/datafile.txt” Для ввода
USCITA = Open & Quot; /home/enzo/temp/datafile.hex” Для вывода создания
Пока не EOF (Ingrovo)
Линия вход #ingresso, Stringa
o3 = mid $ (Stringa, 13, 1)
o2 = mid $ (Stringa, 14, 1)
O1 = MID $ (Stringa, 15, 1)
o0 = mid $ (Stringa, 16, 1)
Valore = 1 * Val (O0) + 2 * Val (O1) + 4 * Val (O2) + 8 * Val (O3)
Печать #uasCita, Chr $ (Valore);
Ведущий
Закрыть Ингрет
Закрыть USCITA
КОНЕЦ
——————————————————- ————-
Конец программы Gambas

За вопросы могут связаться со мной:
Винченцо Фемия
inzofemia@gmail.com.
Реджо-Калабрия, Италия.

Leave A Comment

Recommended Posts

PropiRC: Клиент IRC Priveller

Многие люди не хотят ничего пропустить в своей комнате IRC, поэтому они «простаивают» или просто оставьте клиента, чтобы поймать все разговоры. Это может быть расстраивает, чтобы он идет на заднем плане на вашем компьютере. Чтобы лечить это, [Harrison] разработал простой компьютер от […]

yxlpu

Wii Nunchuck управляемый PLEO

[Энди] писал, чтобы показать нам, как он взломал свой PLEO, чтобы контролировать Wii Nunchuck. Он установил Xbee Utits для связи, а также написал «Skit», который позволяет PLEO просто стоять там и ждать команд. Он использует Arduino для интерпретации ввода Nunchuck и отправить […]

yxlpu