goo blog サービス終了のお知らせ 

ブログの練習

ブログを書く練習です。
最近はレトロな計算機(電卓、マイコン、パソコンなど)
に関することを書き始めました。

Intel 4004 (その5) Mask ROM 4001を読んでみる

2023-01-18 16:41:33 | マイコン(4004)
Intel 4004入りパーツケースに一緒に入っていた4001です。プラスチックパッケージではありますが金脚で、溝のところに「i」と彫られていたりして凝った作りになっています。マスクROMなので使い道は無いのですが、何のプログラムが入っているのかちょっと気になったので調べてみることにしました。先日4004にROMを継げてLチカが出来るところまで到達したので、このROMを読むことも簡単に出来そうなものですが、そう単純な話ではありません。
先日のLチカではメモリインターフェースの4289を継げて「普通のROM」である1702にプログラムを入れて動作させていました。4289を継げたことにより、「MCS-4専用のROM」である4001が継げられなくなりました。
4004のアドレスバス、データバスは全部で4本しか無く、4bitの信号線を時分割して12bitのアドレスと8bitのデータをやりとりします。

MCS-4のバスプロトコルに従ってアドレスを送ってデータを受けとる方が簡単だと考え、その方向で作ることにしました。
最初はラズパイを使ってクロックの生成もラズパイにやらせようと思ったのですが、先日作ったROMライターより1桁速いレベルの制御が必要だということに気付いて断念。Teensy 4.1を使うことにしました。Teensyでも最初はクロック生成もTeensy側でやろうと思ったのですが、信号レベルの変換やそれに伴う遅延等を考えると、クロックはちゃんとクロック生成回路で作る方がいいような気がしてきました。
その他の信号もレベル変換が必要なのですが、ROMライターの時に使ったトランジスタアレイでは速度が間に合わないことがわかり、3.3V→15Vには定番FETの2N7000、15V→3.3VにはCMOSの4050と4049を2段にかませることにしました。
-10V, GND, +5Vで組めばTTLレベルで信号をやりとりできるという話もあったのですが、データシートを見るとそんな単純な話ではないような気がして、信号レベルを確認しながら作っていました。


試行錯誤の末、出来上がった回路がこちら。


ブレッドボードに組んだものがこちら。


Teensy側のプログラムはGitHubに置きました。
GitHub - ryomuk/read4001: A simple ROM reader for Intel 4001(MSC-4) vintage mask ROM using Teensy 4.1

GitHub - ryomuk/read4001: A simple ROM reader for Intel 4001(MSC-4) vintage mask ROM using Teensy 4.1

A simple ROM reader for Intel 4001(MSC-4) vintage mask ROM using Teensy 4.1 - GitHub - ryomuk/read4001: A simple ROM reader for Intel 4001(MSC-4) vintage mask RO...

GitHub

 


クロックを別回路にするならラズパイでも良かったかなあ。
読んだ結果がこれ。

E2 CF 2A 41 50 DE 50 E5 20 FE 50 EE 50 E5 50 EE
50 E5 2A 42 5F FF 57 1A 48 24 5F FF 53 20 4C 18
5F FF 4F FF 22 CB F0 2B E1 21 E0 F2 71 29 E4 F2
E5 F2 E6 F2 E7 60 72 29 FA 50 F7 73 39 25 FA F5
E1 1A 47 1C 4F 19 50 12 50 14 52 11 43 40 45 F0
40 3F 2C 66 2E 59 20 00 3D 21 84 85 E0 F6 74 59
75 59 50 DE 40 75 50 DE 21 94 95 E0 F0 74 68 75
68 F0 2B E1 3F FA 68 A8 E0 B9 A9 E2 FB E0 74 75
F0 F8 E0 FC E0 74 81 F0 FB E0 F2 74 88 DF E0 F7
E0 1C 8D F0 2B E1 DF F9 E0 FA F9 E0 F3 F6 E0 74
9C 24 C0 21 E9 71 A3 EC ED EE EF 60 74 A3 20 20
22 30 21 E8 61 23 E8 E0 73 B2 20 00 20 10 F0 2B
E1 21 EB 61 23 EB E0 73 C1 2B EC 14 D7 D8 21 E1
F0 2B E4 19 D3 40 02 F2 E4 D2 21 E1 40 02 2B AB
F1 E1 F5 BB C0 21 23 25 27 29 2B 2D 2F C0 32 34
36 38 3A 3C 3E 30 C0 A4 F5 FD B4 EA C0 00 FF 00

ディスアセンブルしてくれるサイト(Intel 4004 disassembler)があったのでそこに食わせてみたところ、こんな感じでした。
プログラムっぽいけど、先頭の2バイトを見た感じだと2バイト目がリターン命令だし、これって000番地用のROMではないなあ。

【2023/01/18 追記】
上記サイトにあるエミュレーター(e4004)のサンプルプログラム"MCS-4 EVALUATION KIT USING THE 4001-0009"のコードを見たところ、2バイト目がリターン命令。これはもしかして、と思ってdiffを取ってみたら3箇所違うだけでほぼ同じ。そういえばパッケージを良く見たら4001-0009って書いてある!
差分の原因はROMリーダーのbit化けかと思ったんだけど、よくよく調べてみるとどうやらマニュアルの誤植が1箇所と、エミュレーター用のROMイメージの方が2箇所間違ってるっぽい。
これはすごいものを手に入れた。
【2023/01/18 追記ここまで】

* = $000
   0 $000: E2     WRR
   1 $001: CF     BBL 15
   2 $002: 2A 41  FIM P5 65
   4 $004: 50 DE  JMS 222
   6 $006: 50 E5  JMS 229
   8 $008: 20 FE  FIM P0 254
  10 $00A: 50 EE  JMS 238
  12 $00C: 50 E5  JMS 229
  14 $00E: 50 EE  JMS 238
  16 $010: 50 E5  JMS 229
  18 $012: 2A 42  FIM P5 66
  20 $014: 5F FF  JMS 4095
  22 $016: 57 1A  JMS 1818
  24 $018: 48 24  JUN 2084
  26 $01A: 5F FF  JMS 4095
  28 $01C: 53 20  JMS 800
  30 $01E: 4C 18  JUN 3096
  32 $020: 5F FF  JMS 4095
  34 $022: 4F FF  JUN 4095
  36 $024: 22 CB  FIM P1 203
  38 $026: F0     CLB
  39 $027: 2B     SRC P5
  40 $028: E1     WMP
  41 $029: 21     SRC P0
  42 $02A: E0     WRM
  43 $02B: F2     IAC
  44 $02C: 71 29  ISZ R1 41
  46 $02E: E4     WR0
  47 $02F: F2     IAC
  48 $030: E5     WR1
  49 $031: F2     IAC
  50 $032: E6     WR2
  51 $033: F2     IAC
  52 $034: E7     WR3
  53 $035: 60     INC R0
  54 $036: 72 29  ISZ R2 41
  56 $038: FA     STC
  57 $039: 50 F7  JMS 247
  59 $03B: 73 39  ISZ R3 57
  61 $03D: 25     SRC P2
  62 $03E: FA     STC
  63 $03F: F5     RAL
  64 $040: E1     WMP
  65 $041: 1A 47  JCN CN 71
  67 $043: 1C 4F  JCN AN 79
  69 $045: 19 50  JCN TN 80
  71 $047: 12 50  JCN CZ 80
  73 $049: 14 52  JCN AZ 82
  75 $04B: 11 43  JCN TZ 67
  77 $04D: 40 45  JUN 69
  79 $04F: F0     CLB
  80 $050: 40 3F  JUN 63
  82 $052: 2C 66  FIM P6 102
  84 $054: 2E 59  FIM P7 89
  86 $056: 20 00  FIM P0 0
  88 $058: 3D     JIN P6
  89 $059: 21     SRC P0
  90 $05A: 84     ADD R4
  91 $05B: 85     ADD R5
  92 $05C: E0     WRM
  93 $05D: F6     RAR
  94 $05E: 74 59  ISZ R4 89
  96 $060: 75 59  ISZ R5 89
  98 $062: 50 DE  JMS 222
 100 $064: 40 75  JUN 117
 102 $066: 50 DE  JMS 222
 104 $068: 21     SRC P0
 105 $069: 94     SUB R4
 106 $06A: 95     SUB R5
 107 $06B: E0     WRM
 108 $06C: F0     CLB
 109 $06D: 74 68  ISZ R4 104
 111 $06F: 75 68  ISZ R5 104
 113 $071: F0     CLB
 114 $072: 2B     SRC P5
 115 $073: E1     WMP
 116 $074: 3F     JIN P7
 117 $075: FA     STC
 118 $076: 68     INC R8
 119 $077: A8     LD R8
 120 $078: E0     WRM
 121 $079: B9     XCH R9
 122 $07A: A9     LD R9
 123 $07B: E2     WRR
 124 $07C: FB     DAA
 125 $07D: E0     WRM
 126 $07E: 74 75  ISZ R4 117
 128 $080: F0     CLB
 129 $081: F8     DAC
 130 $082: E0     WRM
 131 $083: FC     KBP
 132 $084: E0     WRM
 133 $085: 74 81  ISZ R4 129
 135 $087: F0     CLB
 136 $088: FB     DAA
 137 $089: E0     WRM
 138 $08A: F2     IAC
 139 $08B: 74 88  ISZ R4 136
 141 $08D: DF     LDM 15
 142 $08E: E0     WRM
 143 $08F: F7     TCC
 144 $090: E0     WRM
 145 $091: 1C 8D  JCN AN 141
 147 $093: F0     CLB
 148 $094: 2B     SRC P5
 149 $095: E1     WMP
 150 $096: DF     LDM 15
 151 $097: F9     TCS
 152 $098: E0     WRM
 153 $099: FA     STC
 154 $09A: F9     TCS
 155 $09B: E0     WRM
 156 $09C: F3     CMC
 157 $09D: F6     RAR
 158 $09E: E0     WRM
 159 $09F: 74 9C  ISZ R4 156
 161 $0A1: 24 C0  FIM P2 192
 163 $0A3: 21     SRC P0
 164 $0A4: E9     RDM
 165 $0A5: 71 A3  ISZ R1 163
 167 $0A7: EC     RD0
 168 $0A8: ED     RD1
 169 $0A9: EE     RD2
 170 $0AA: EF     RD3
 171 $0AB: 60     INC R0
 172 $0AC: 74 A3  ISZ R4 163
 174 $0AE: 20 20  FIM P0 32
 176 $0B0: 22 30  FIM P1 48
 178 $0B2: 21     SRC P0
 179 $0B3: E8     SBM
 180 $0B4: 61     INC R1
 181 $0B5: 23     SRC P1
 182 $0B6: E8     SBM
 183 $0B7: E0     WRM
 184 $0B8: 73 B2  ISZ R3 178
 186 $0BA: 20 00  FIM P0 0
 188 $0BC: 20 10  FIM P0 16
 190 $0BE: F0     CLB
 191 $0BF: 2B     SRC P5
 192 $0C0: E1     WMP
 193 $0C1: 21     SRC P0
 194 $0C2: EB     ADM
 195 $0C3: 61     INC R1
 196 $0C4: 23     SRC P1
 197 $0C5: EB     ADM
 198 $0C6: E0     WRM
 199 $0C7: 73 C1  ISZ R3 193
 201 $0C9: 2B     SRC P5
 202 $0CA: EC     RD0
 203 $0CB: 14 D7  JCN AZ 215
 205 $0CD: D8     LDM 8
 206 $0CE: 21     SRC P0
 207 $0CF: E1     WMP
 208 $0D0: F0     CLB
 209 $0D1: 2B     SRC P5
 210 $0D2: E4     WR0
 211 $0D3: 19 D3  JCN TN 211
 213 $0D5: 40 02  JUN 2
 215 $0D7: F2     IAC
 216 $0D8: E4     WR0
 217 $0D9: D2     LDM 2
 218 $0DA: 21     SRC P0
 219 $0DB: E1     WMP
 220 $0DC: 40 02  JUN 2
 222 $0DE: 2B     SRC P5
 223 $0DF: AB     LD R11
 224 $0E0: F1     CLC
 225 $0E1: E1     WMP
 226 $0E2: F5     RAL
 227 $0E3: BB     XCH R11
 228 $0E4: C0     BBL 0
 229 $0E5: 21     SRC P0
 230 $0E6: 23     SRC P1
 231 $0E7: 25     SRC P2
 232 $0E8: 27     SRC P3
 233 $0E9: 29     SRC P4
 234 $0EA: 2B     SRC P5
 235 $0EB: 2D     SRC P6
 236 $0EC: 2F     SRC P7
 237 $0ED: C0     BBL 0
 238 $0EE: 32     FIN P1
 239 $0EF: 34     FIN P2
 240 $0F0: 36     FIN P3
 241 $0F1: 38     FIN P4
 242 $0F2: 3A     FIN P5
 243 $0F3: 3C     FIN P6
 244 $0F4: 3E     FIN P7
 245 $0F5: 30     FIN P0
 246 $0F6: C0     BBL 0
 247 $0F7: A4     LD R4
 248 $0F8: F5     RAL
 249 $0F9: FD     DCL
 250 $0FA: B4     XCH R4
 251 $0FB: EA     RDR
 252 $0FC: C0     BBL 0
 253 $0FD: 00     NOP
 254 $0FE: FF     ???
 255 $0FF: 00     NOP
 256 $100: $







コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Intel 4004 (その4) Lチカの巻

2022-11-22 19:54:47 | マイコン(4004)
eBayで買った4289(Memory Interface)は10日ほど前に無事到着しました。商品写真が適当だったので若干心配だったのですが、まともそうな外観のものが届きました。

で、動作確認用にブレッドボードで組み立てたのが冒頭の写真です。ROMは1702、RAMは4002です。4002の出力ポートにLEDを継げています。最近のLEDは30μAとかでも点灯するので、100kΩで4002に直付けしています。昔はトランジスタやドライブ用のICなどが必要だったのですが楽になったものです。
最初は出力ポートのアドレスを設定し忘れていたり、TEST信号の正負を逆に考えていたり、ハンドアセンブルでミスをしたりしてすんなりとはいかなかったのですが、ROMを7~8回焼き直してなんとかLチカに成功しました。動いている様子がこれ。

基本的な構成での動作が確認できたので、次はROM、RAM、入出力を増やしていこうと思います。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Intel 4004 (その3) 1702A EPROM用ライター(プログラマー)を自作する

2022-11-04 21:14:41 | マイコン(4004)
先日eBayでIntel 4004用のメモリインターフェース4289を購入したのですが、到着予定は11/16~22でまだ届いていません。届いたらすぐに動作確認をしたいので準備を進めることにしました。
過去に白セラミックのIntel C1702Aが8つも載った基板(下記写真)を入手しており、ROMはこれを使おうと思っています。

ただ、これをいきなり使うのは怖いので、実験用のROMを調達しました。

NS製の白セラミックは上記ROMボードと同時期に入手していたもの、黒セラミックは新規にeBayで買ったものです。3つで60PLN(約1800円)、送料31PLNでポーランドから10日ほどで届きました。

このROMですが、27xx系のROMとは電圧や作法が違うので、普通のROMライターでは書けません。Retro Chip Tester (RTC)もアダプターを使って読み込み(ダンプ)はできるのですが、書き込み用のアダプターはまだありません。


"1702 programmer"でググったところ、参考になりそうなサイトが2つ見つかりました。(この記事の末尾の参考文献参照)
[1]の方はリーダー機能とライター機能の双方を完備しているので若干複雑な回路になっています。[2]の方はライター機能に特化したもので、かなり簡単な回路です。[2]に紹介されている文献[3]もとても参考になりました。具体的な作り方がわかったのでIntel のオリジナルの資料[4], [5]で仕様を確認。(順序が逆な気もしますが。)
読み込みをRCTに任せて、書き込み専用のライターならわりと簡単に作れそうな気がしてきました。
書き込みに必要なことをまとめると、
・電源は+12V, -47V
・Vcc=0V, Vbb=+12V, /CS=0V
・PROGRAM=-47V, Vdd=-47V, Vgg=-35~40V(-47Vからツエナーダイオード(9.1V)で作ったやつでOK)。
・PROGRAM, Vdd, Vggはパルスで与える。(Duty比20%以下、立上り立下り1μs以下)
・D1~D8は0Vで"0"、-47Vで"1"。
・A0~A8は0Vで"1"、-47Vで"0"。
・上記信号をタイミング仕様に従って生成して1byte書き込み、12ms以上休む。
・アドレス0x00~0xFFへの書き込みを32回繰り返す。
文献[3]ではアドレスやデータをトグルスイッチで与えていたので、1つのアドレスに対し32回繰り返してから次のアドレスに行けばいいのかと思ったのですが、文献[4]に
"For best results, the 1602A/1702A should be programmed by scanning through the addresses in binary sequence some 32 times. Each pass repeats the same series of programming pulses. The duty cycle for applied power must not exceed 20%. As result, each pass takes about 4 seconds, with the 32 passes taking just over 2 minutes."
とあるため、「"0x00~0xFFへの書き込み"を32回繰り返す」が正しいやり方のようです。
タイミングに関する仕様はこんな感じ。


肝心のProgram Pulse WidthはMAX.=3msと規定されているだけで、MIN. TYP.が提示されていないのですが、とりあえず2.5msにすることにしました。

ホスト用のマイコンには、文献[1]ではArduino、[2]ではPCを使っているようでしたが、私は以前にVFDインターフェースを作ってノウハウのあるRaspberry Piを使うことにしました。
ロジック系と-47V系とのインターフェースには、トランジスタアレイTBD62083(部品情報)が使えるんじゃないかと思って調べてみました。

一見するとインバーターロジックですが、入力が2.5V以上でON、0.6V以下でOFFのスイッチ(出力端子OがGNDにつながる)のような働きをします。

・出力耐圧50V, 電流500mA/ch。(電圧はギリギリだけどOK、電流も余裕。)
・ターンオン時間=0.4μs, ターンオフ時間0.8μs。(要求条件の1μsを満たす。)
・入力2.5VでONなのでラズパイのGPIOでもOK
(と書いていて今気がついたのですが、ラズパイのGPIOって3.3V系でしたね。実測したら余裕で3V出てるから結果オーライでした。と書いてさらに調べたら、CMOS3.3V系の出力は直接5VのTTLにつなげてもいいのね。VFD用のインターフェースでは真面目にレベル変換用バッファを挟んでたけどもしかして不要だったか・・・)
ラズパイのGPIOのGNDを-47Vに接続して大丈夫か若干不安だったのですが、試してみたら期待通りの動作をしてくれました。

今までは、オシロスコープで50V/divなんて何に使うのだろう?コンセントの電源でも測るのか?とか思っていたのですが、まさかデジタル回路の工作で使うことになるとは。
パルスのエッジも1μsをなんとか満たしていそうです。


電源は過去にメルカリで買ったMatsusadaの絶縁出力の安定化電源。これのおかげで電源部分をサボれてかなり助かりました。


ラズパイ用の電源はモバイルバッテリーを使いました。-47Vが絶縁出力なので多分USBアダプタでも大丈夫だとは思うのですが、ラズパイ側のGNDを-47Vに接続するので念のため。


一つ大事なことを書き忘れていました。今回使っているRaspberry PiのOSはリアルタイムOSではないので、書き込み信号発生時のタイミングが保証されません。一番心配なのは、PROGRAM, Vdd, Vggのパルス信号をアサートしているときに割り込みがかかって3msを超えてしまう事態です。最悪の場合にはROMが壊れてしまうかもしれません。
というわけで、"raspberry pi 割り込み禁止"でググったところ、[6]のサイトが見つかりました。Raspberry Pi Zeroでこれを試したところ期待通りの動作をしたのでこれで解決しました。Pi 4での方法は見つけられなかったので、今回のプログラムはPi Zero専用になっています。

完成した書き込み器の回路図はこちら。[PDF]

プログラムはGitHubで公開しています。
GitHub - ryomuk/prog1702: A simple programmer using Raspberry Pi Zero for Intel 1702A vintage EPROM

GitHub - ryomuk/prog1702: A simple programmer using Raspberry Pi Zero for Intel 1702A vintage EPROM

A simple programmer using Raspberry Pi Zero for Intel 1702A vintage EPROM - GitHub - ryomuk/prog1702: A simple programmer using Raspberry Pi Zero for Intel 1702A...

GitHub

 


書き込みの様子です。


書いたROMをRetro Chip Testerでダンプ。無事書き込めていることが確認できました。


■参考文献、サイト
[1] A compact programmer for 1702A EPROMs – Matt's Tech Pages
[2] Building a Simple 1702A EPROM Programmer by Stephen H. Lafferty
[3] "Low-Cost EPROM Programmer" by Dan Vincent, Popular Electronics, Feb.1978
[4] "Read Only Memories", The Intel Memory Design Handbook, Aug. 1973, pp. 2-1~2-5
[5] "Silicon Gate MOS 1602A/1702A", Intel Data Catalog 1975, pp. 3-7~3-13
[6] Raspberry Pi で割り込みを禁止したい (≒DI/EI したい)by @yagshi

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Intel 4004 (その2) クロックの巻

2022-10-06 19:30:41 | マイコン(4004)
注文した部品が届くまでだいぶ時間がかかりそうなので、とりあえず電源とクロックを食わせて何らかの反応を示すか試してみることにしました。8Bit-MuseumのCPU NOP tester(Hardware Projekte – CPU NOP-Tester – 8Bit-Museum.de)のようにLEDを光らせようかと思いましたが、4004のアドレスバスは4bit×3に時分割されている上に、データバスも兼ねているためちょっと面倒くさそうです。というわけで、手始めにオシロで観測することにしました。
実は私、信号レベルが+5Vのデジタル回路以外はほとんど経験が無く、+5V, GND, -10V(データシートにはVSS=GND, VDD=-15Vという記載もあり)という回路は初めてです。変なことをして大事な4004を壊しては悲しいので、できるだけデータシートに忠実に組むことにしました。

ユーザーズマニュアルで見つけたクロックジェネレータはこんな感じでした。

発振部分のマルチバイブレーターは抵抗で周波数を調整、駆動部分はディスクリートのトランジスタ。かなりアナログっぽい回路です。デジタル回路ですら+5Vしか扱ったことがない私には敷居が高いです。

別の資料に載っていたのがこれ。

水晶で発振してカウンタで7分周して、クロックドライバICでレベル変換。これなら私にも理解できました。
9316というカウンタは入手困難っぽいので、手元にあった74LS163で代用。74H04は若松に注文しましたが、いつ届くかわからないので74S04で代用しました。MH0026の代用のDS0026も若松に注文中なのですが、4004が入っていたパーツ箱にたくさん入ってるのを発見。買わなくても良かったのか・・・。(若松にはメタル缶タイプとDIPを注文中。)


ちなみにトラ技に下記のような簡単な回路が紹介されていたのですが、ちょっとこれは・・・と思ったので見送りました。


2相クロックを作る部分はただのカウンタと組み合わせ回路なので簡単です。DS0026によるレベル変換の仕組みを理解しようとデータシートを読んだところ、「TTL/DTL compatible inputs」と書かれています。なるほど、TTLレベルで受けてV+, V-の振幅に変換するのね。と思ったのですが。


GNDがありません。入力の電圧どうなってるの?という疑問がわきました。

表を見ても理解できず。


クロック波形みるだけなら4004は使わなくていいのでとりあえず回路を組んで見てみることにしました。上から、カウンタ用クロック(TTLレベル)、φ1, φ2(DS0026の出力)、φ2(DS0026の入力)です。


なるほど。コンデンサによって入力のフロアがV-になっているのね。理解しました。(私のアナログ回路のレベルはこの程度なのです。)

綺麗な二相クロックが出来たので、4004に通電する準備が整いました。念のため、電流の上限値は低めに設定。


4004搭載。


電源ON! ちゃんとSYNC(Ch.1)が観測できました。


D0~D3はこんな感じ。


とりあえずそれっぽい信号が出てるので、壊れてはなさそう。もう一つの4004も同様でした。
続きはメモリインターフェースD4289が届いてからかな。(むしろそれがちゃんと動くかどうかが心配。)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Intel 4004 (その1)

2022-10-03 20:45:55 | マイコン(4004)
Intel MCS-4 Micro Computer SetのCPU 4004です。幸運にもヤフオクで入手することができました。
商品名は「★ パーツボックス 中古品 + 多種半導体部品入り  2ケース ★」、商品説明には「半導体の内容等については添付写真にてご確認下さい。」としかなく、4004に関しては一切言及されていませんでした。肝心の商品写真も下記のように不鮮明なものしかなく、拡大しても数字は読み取れなかったのですが、たぶん4004だよなあ、もしかしたら4001かもしれないけど最悪4001でもいいやという気持ちで入札しました。
これがその商品写真(の一部を切り出したもの)。


4004に気付いて入札していた方がもう一人いたのですが、その方も外したら痛いと思って入札額を抑えていたとのこと(twitterでの回答)。商品が不明確だったことが幸いして落札することができました。
とはいえ、実物が届くまでは半信半疑で不安だったのですが、ちゃんと4004が2つと、その横には8008が二つ並んでいました。(冒頭の写真です。)
さらに、スポンジの裏には4001が1個と4003が2個挿さっていました。


お話でしか読んだことのないCPUだったのですが、実物が手に入ったので動かしてみるべく勉強開始。1975年発行のインターフェース「マイクロプロセッサのすべて第1集」(トラ技別冊として発行された、月刊誌になる前のもの)とトランジスタ技術1974年9月号を本棚から発掘してきました。データシートはbitsavers.org(Index of /components/intel/MCS4)に発見。


以前オレンジピコショップで購入して積み基板になっている「SBC4004/Busicom-141PF専用プリント基板」があり、もしかしたらそれを使えば手っ取り早く動かせるのかもしれませんが、せっかくなので自分で一から勉強して、できるだけデータシートに忠実に、当時の資料を参考にしながら、部品もなるべく昔のものを使って動かしてみようと考えています。
とりあえず、4002を4つeBayの中華ストアに注文、クロックジェネレータ用の部品を若松に注文したところです。ROMをつなげるために4289も欲しいのですが、eBayでイギリスの店が売ってるやつは商品写真が無い上に商品名が"D4289 Transistor"なのでsellerに問合せ中。

【2022/10/3 20:43 追記】
sellerから回答が来た。実物の写真が無いのが不安だけど、過去に買った人が3人ぐらいいるらしいのと、sellerの評価がそれなりに高いのを信じて購入。

送った質問。修正前の商品名、画像。


sellerからの回答。修正された商品名と画像。


買っちゃいました。

たぶんこの部品はマイコンとレベルコンバーターがあれば作れるのだろうけど、4004を動かすために21世紀のマイコンを使ってメモリに接続したりしたら、一体何をやっているんだろうという気持ちになりそう。なので、できるだけ当時の部品だけでやろうと思います。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする