Skip to content

Memory systems and peripherals implemented on Tang Nano 20K for Intersil IM6100 PDP-8 Processor

License

Notifications You must be signed in to change notification settings

ryomuk/TangNano6100MEM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TangNano6100MEM

Memory systems and peripherals implemented on Tang Nano 20K for Intersil IM6100 PDP-8 Processor

This document is written mostly in Japanese, so please use machine translation if necessary.

概要

  • PDP-8の命令セットを持つCPU「Intersil IM6100」のメモリシステムと周辺回路をFPGA(TangNano20K)上に実装する試みです.
  • FPGAに実装するのはメモリ,UART, HDDなどの周辺装置の部分だけで,CPU自体は本物を使用します.ソフトウェアやFPGAによるシミュレータやエミュレータではなく,実物のCPUを動かします.
  • "TangNano6100"だとTangNano上にIM6100を実装したみたいな名前になってしまうので,"MEM"を付けて"TangNano6100MEM"という名前になっています.
  • モニタプログラムとして,Haruo Asano氏によるUniversal MonitorIM6100版をControl Panel空間で動くように改変したものを搭載しました.MITライセンスだったので,使用した部分のソースを同梱しています.

最近の主な話題

  • 2026/01/28: 初版公開
  • 2026/02/01: version 20260201, 紙テープエミュレータ実装
  • 2026/02/02: version 20260202, 割り込み関連のバグ修正
  • 2026/02/02: CP空間のuniversal monitorにコンテキストの保存復帰を実装しました.
  • 2026/02/06: version 20260206, 拡張メモリ関連の微修正
  • 2026/02/06: OS/8のRK2, RK3を有効化する方法についてのドキュメントを追加.

主なファイル一覧

.
├── doc                      : 説明用文書
├── hdl                      : Gowin EDA用プロジェクト
│   ├── old                 : 旧版のバックアップ(あれば)
│   └── TangNano6100MEM_project: HDLソース一式
│       └── src
│            ├── dbglog.v   : debug log用モジュール
│            ├── mem.v      : メモリ初期データ(OS/8 bootloader)
│            ├── mem_cp.v   : CPメモリデータ(unimon)
│            ├── sdhd.v     : HDエミュレータモジュール
│            ├── sdtape.v   : 紙tapeエミュレータモジュール
│            ├── switch.v   : スイッチ用モジュール
│            ├── TangNano6100MEM_project.sdc : 時間制約(適当)
│            ├── tn20k.cst  :  物理制約(ピンアサイン)
│            ├── top.v      : メインプログラム
│            ├── uart.v     : uartモジュール
│            ├── ws2812.v   : WS2812モジュール
│            └── ws2812_matrix.v : WS2812 matrix用モジュール
├── images                   : 文書用画像ファイル
├── LICENSE
├── pcb
│   └── rev2.1 :  回路図,基板データ等(KiCAD 9用)
├── README.md   : このファイル
└── tools
    ├── papertape
    │   └── ptp2v.c    : 紙テープバイナリ変換用ソフト
    ├── sample          : bootやテスト用プログラム(unimonで書く用)
    └── unimon          : Universal Monitor
        ├── im6100      : IM6100 Control Panel版
        └── LICENSE.txt : 上記のライセンスファイル

各種説明はdoc/に項目に分けて記載しています.

その他

以下,雑多な情報です.

動作状況

  • 紙テープソフトやOS/8およびOS/8上で動く言語処理系などがある程度動作します.
  • OS/8のBASICで簡単なプログラムを入力したりセーブ/ロードしたりできます.
    • STRTRK.BAやSNOOPY.BAが動きました.
  • コントロールパネル空間でUniversal Monitorが動きます.

既知の問題

  • ステップ実行後に戻ってくるとおかしくなることがある.
  • OS/8版のFOCALが動かない.おそらく割り込み関連の問題. → やはり割り込みの問題でした.20260202版で修正して解決.
  • OS/8でDIR SYS: はできるが DIR RKA0: は止まる. → PDP/8ハンドブックの誤植が原因でした.RK_DONEフラグを修正したら動くようになりました.
  • OS/8 BASICでSTRTRK.BAやSNOOPY.BAが動かない. 動きました.

今後の予定,ToDo

  • 紙テープイメージからOS/8のディスクイメージを作成.
    • → ある程度はできたのですが,CCL.SVがうまく作れなかったりEPICの動作が不安定なのであきらめました.
  • 磁気テープドライブエミュレータ実装.(紙テープは実装済なので,必要でなければやらないかも)
    • → いろいろ面倒な仕様があったのであきらめました.

About

Memory systems and peripherals implemented on Tang Nano 20K for Intersil IM6100 PDP-8 Processor

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages