test4004
Test system for Intel MCS-4 (4004) micro computer set
This document is written mostly in Japanese.
If necessary, please use a translation service such as DeepL (I recommend this) or Google.
概要
昨年,運良くIntel 4004を入手することができました.せっかくだから動かしてみようと思い,このプロジェクトを始めました.
このレポジトリ(test4004)は電卓を作ったところまでで完成.続きはメモリ関連のハードウェアの変更も伴うので別レポジトリ(https://github.com/ryomuk/VTL4004 )に移行します.
これまでに作ったもの
実験用ボードの仕様
- CPU: Intel 4004
- Clock: 740kHz
- DATA RAM: 4002-1(320bit) x 4
- Program Memory
- ROM: AT28C64B (8k x 8bit EEPROM)
- 000H〜EFFHの3.75KB利用可能
- RAM: HM6268(4k x 4bit SRAM)x 2個
- F00H〜FFDHの254byte x 16バンク, 合計約4KB
- 通信ポート: 9600bps Software Serial UART (TTL level)
ToDO
動画
Youtubeで関連動画を公開しています.
ブログ
関連する情報が書いてあるかも.
参考にした文献,サイト
4004関連開発事例
データシート
開発環境
更新履歴
- 2023/2/20: ハードウェアをrev.0.2に更新
- プログラム領域のメモリ(6116)のA8〜A10を4002のポートに接続してバンク切り替えで256byte(正確には254byte) x 8 バンク使えるようにした.
- これに伴い,バンク窓以外の空間をROM用に使う余地がある.
- モニタプログラムにバンク切り替え命令('B')を追加.
- rev.0.1は,「CM0とCM1に4002-1を2づつ」という構成でしたが,「CM0に4002-1を2つと4002-2を2つ」という構成も可能にしました.ピンヘッダでCMのラインを切り替えます.
- 2023/2/21: PM_READ_P0_P2 を PM_READ_P0_P1 に変更.
- 2023/2/23: 上記にバグがあったので修正.CTOI_P1_R5をCTOI_P1に変更.
- 2023/2/24: ハードウェアをrev.1.0に更新
- プログラム領域のROMを2716から28C64B(2764等も可)に変更.
- 000H〜7FFHだったROM領域を000H〜EFFHに拡大
- プログラム領域のRAMを6116から6268(たぶん6168でも可)に変更
- 254byte x 16 バンク使えるようにした.
- 通信ポートをRAM3に,PMのRAMバンク指定用のポートをRAM0に変更
- 2023/3/12:
- RAM2, RAM3を4002-1から4002-2に変更
- RAM2, RAM3のバンク(CMRAM)の設定を1から0に変更
- CR,LFが入力されたときの挙動の変更.(CRを無視していたのをCR or LFでの入力にした.)
- 2023/4/14: 0100H前後のメモリが重複してSQRTの計算時に暴走してしまっていたので修正
- 2023/7/5: 回路図で6268のピン番号の一部に誤りがあったので修正.(rev1.0→1.01)