問題是,它現在是一種奇數球部分,而且通常只有(甚至)更昂貴的EPROM程序員可以讀取它們。 Arduino,Beckboard和一些快速腳本迅速處理這個街機ROM閱讀器的問題。

您將舞台粘在麵包板中,並將其連接到Arduino的適當港口和銷釘,突出舞會,雖然arduino的串行連接返回結果。在PC側面上使用終端程序您捕獲文本並使用腳本將ASCII值轉換為二進制虛擬格式並另存為HEX。

這使我們更容易從舊的街機板上傾倒羅馬,因為你永遠不知道你什麼時候可能會在你的下一個out到救助或廢料院子上穿過舊的古老拱廊板。

在休息後加入我們所有細節,一如既往的評論!

82S129雙極舞會在’80 Arcade Jamma Boards中非常普遍。不幸的是,只有更昂貴的EPROM程序員可以閱讀它們。我使用Arduino Duemilanove將82s129內容轉儲到PC以進行備份。
我使用麵包板將82s129引腳連接到Arduino。請遵循此示意圖:

Arduino引腳——> 82S129引腳(功能)
+ 5V 16 vcc
GND 8 GND.
數字2 5 A0
數字3 6 A1
數字4 7 A2
數字5 4 A3
數字6 3 A4
數字7 2 A5
數字8 1 A6
數字9 15 A7
數字10 12 O1
數字11 11 O2
數字12 10 O3
數字13 9 O4
GND 13 CE1.
GND 14 CE2

以下是在Arduino發送的PDE程序:

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讀者
由Vincenzo Femia(enzofemia@gmail.com)
* /
字節indirizzo = 0; //“indirizzo”是指“地址”的意大利語。 🙂
布爾A0 = 0; //地址位
布爾A1 = 0;
布爾A2 = 0;
布爾A3 = 0;
布爾A4 = 0;
布爾A5 = 0;
布爾A6 = 0;
布爾A7 = 0;
//
布爾o0 = 0; //數據位
Boolean O1 = 0;
布爾O2 = 0;
布爾o3 = 0;
字節輸出= 0;
void setup()
{
// pin0& 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,輸入);

}

void循環()
{

for(indirizzo = 0; indirizzo< 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);

//…設置輸出
if(a0 == 1){digitewrite(2,高);}
否則{digitalwrite(2,低);}

if(a1 == 1){digitalwrite(3,高);}
否則{digitalwrite(3,低);}

if(a2 == 1){digitalwrite(4,高);}
否則{digitalwrite(4,低);}

if(a3 == 1){digitalwrite(5,high);}
否則{digitalwrite(5,低);}

if(a4 == 1){digitalwrite(6,high);}
否則{digitalwrite(6,低);}

if(a5 == 1){digitewrite(7,高);}
否則{digitalwrite(7,低);}

if(a6 == 1){digitalwrite(8,高);}
否則{digitalwrite(8,低);}

if(a7 == 1){digitalwrite(9,高);}
否則{digitalwrite(9,低);}

//等待所以輸出可以設置82s129
延遲(50);

O0 = DigitalRead(10); //從數據輸出中讀取位
O1 = DigitalRead(11);
O2 = DigitalRead(12);
O3 = DigitalRead(13);
Serial.Begin(9600); //設置串行通信
//以二進制ASCII地址寫入讀取和“ – >”
if(a7 == 0){serial.print(“0”);}
否則{serial.print(“1”);}
if(a6 == 0){serial.print(“0”);}
否則{serial.print(“1”);}
if(a5 == 0){serial.print(“0”);}
否則{serial.print(“1”);}
if(a4 == 0){serial.print(“0”);}
否則{serial.print(“1”);}
if(a3 == 0){serial.print(“0”);}
否則{serial.print(“1”);}
if(a2 == 0){serial.print(&“0”);}
否則{serial.print(“1”);}
if(a1 == 0){serial.print(“0”);}
否則{serial.print(“1”);}
if(a0 == 0){serial.print(“0 – >”);}
否則{serial.print(“1 – >”);}

//寫入二進制ASCII輸出蠶食

if(o3 == 0){serial.print(“0”);}
否則{serial.print(“1”);}

if(o2 == 0){serial.print(“0”);}
否則{serial.print(“1”);}

if(o1 == 0){serial.print(“0”);}
否則{serial.print(“1”);}

if(o0 == 0){serial.println(“0”);}
否則{serial.println(“1”);}

if(indirizzo == 255){serial.println(“ROM已被讀取”);}
serial.end();
}
}
————————————–
結束PDE計劃

使用Minicom或類似程序您可以在PC上記錄串行數據。
使用編輯器現在正確的日誌文件,以便第一行是:
00000000 – > xxxx

最後一行是:
11111111 – > XXXX

請驗證該文件僅包含1個讀取的讀數(256行)。

現在我們必須在二進製文件中轉換此ASCII .txt文件。
由於我使用Linux I寫入Gambas編程語言(http://gambas.sourceforge.net/)一點程序來執行此轉換。
但是Windows用戶可以以Visual Basic或其他語言端口。
簡單地讀取啃咬位,構建啃咬值(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計劃的開始
———————————————————————————-
公共子主()
暗中的Ingresso作為流
昏暗的USCITA作為溪流
將Dim Stringa為字符串
暗淡o0作為字符串
暗淡o1作為字符串
暗淡o2作為字符串
暗淡o3作為字符串
將昏暗的valore為字節
Ingresso =打開“/home/enzo/temp/datafile.txt"輸入
Uscita =打開“/home/enzo/temp/datafile.hex"對於輸出創建
而不是eof(Ingresso)
行輸入#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)
print #uscita,chr $(valore);
w
關閉Impresso.
關閉USCITA.
結尾
———————————————————————————- ———–
Gambas計劃結束

有關問題可以聯繫我:
Vincenzo FEMIA.
enzofemia@gmail.com.
Reggio Calabria,意大利。

Leave a Reply

Your email address will not be published. Required fields are marked *