Almost lost technologies

ここは昔の CPU を用いた工作記事を書くために用意しました。

SCN2650SBC (1) 組み立て

まずこちらの方です。回路は、というか2650UMの方を見ていなかったので page 外がアクセスできないことに気がついていませんでした。最初のページは ROM にしてあったので変更が必要ですが、もともと RAM には 32kB アドレスが入れてあったので、細かく ROM/RAM のアドレスマップを組むのはやめにして、全部 RAM にします。ROMの番地はRAMに書けるようにして、ROMを転送する、というわけです。転送後に非拡張制御 I/O を発行すると、ROM が消えて 全メモリ空間 RAM になります。

その関係で、OPACK 行きは切って GND に、I/Oの A6 は諦めてここに RESET を引き込んで、GALで全部対処します。

  1:Name            DEC2650;
  2:Partno          KF010002;
  3:Date            23/08/30;
  4:Revision        01;
  5:Designer        efialtes_htn;
  6:Company         EFIALTES_HTN Design;
  7:Assembly        System 19-6 SCN2650A;
  8:Location        U06;
  9:Device          G16V8;
 10:
 11:/* *************************************************************** */
 12:/* System 19-6 decorder Glue logic                                 */
 13:/*                                                                 */
 14:/* *************************************************************** */
 15:/* target device        GAL18V8 any speed rank is OK               */
 16:/* *************************************************************** */
 17:/* *************************************************************** */
 18:/** inputs      **/
 19:Pin 1   =       CLK;
 20:Pin 2   =       OPREQ;
 21:Pin 3   =       RW;
 22:Pin 4   =       WRP;
 23:Pin 5  =        MIO;
 24:Pin 6   =       A14;
 25:Pin 7   =       A13;
 26:Pin 8   =       A7;
 27:Pin 9   =       !RES;
 28:Pin 11  =       !OE;
 29:
 30:/** outputs     **/
 31:Pin 12  =       BOOTEN;
 32:Pin 13  =       !SEREN;
 33:Pin 14  =       !ROMEN;
 34:Pin 15  =       !RAMEN; 
 35:Pin 16  =       125M;
 36:Pin 17  =       !RD; 
 37:Pin 18  =       25M;
 38:Pin 19  =       !WR; 
 39:
 40:/* logic equations      */
 41:ROMEN   = (BOOTEN & !A14 & OPREQ & !RW & MIO);
 42:RAMEN   = (BOOTEN & !A14 & OPREQ & RW & MIO)
 43:              # (!BOOTEN & OPREQ & MIO);
 44:/* Memory read or non-extended IO read */
 45:RD      = OPREQ & !RW & (MIO # !A14);
 46:WR      = OPREQ & RW & WRP & (MIO # !A14);
 47:SEREN   = OPREQ & !MIO & !A14 & !A7;
 48:25M.d   = !25M;
 49:125M.d  = (!125M & 25M) # (125M & !25M);
 50:BOOTEN.d = (!RES & OPREQ & RW & !MIO & WRP & !125M & 25M & A14 & A13)
 51:        # (!RES & !OPREQ & BOOTEN)
 52:        # (!RES & MIO & BOOTEN)
 53:        # (!RES & !A14 & BOOTEN)

LISTING FOR LOGIC DESCRIPTION FILE: DEC2650.pld                      Page 2

CUPL(WM): Universal Compiler for Programmable Logic
Version 5.0a Serial# 60008009
Copyright (c) 1983, 1998 Logical Devices, Inc.
Created Wed Aug 30 23:33:00 2023

 54:        # (!RES & !RW & BOOTEN)
 55:        # (!RES & !WRP & BOOTEN);
 56:
 57:
 58:ROMEN.oe = 'b'1;
 59:RAMEN.oe = 'b'1;
 60:RD.oe = 'b'1;
 61:WR.oe = 'b'1;
 62:SEREN.oe = 'b'1;


あと、回路上はTESTピンにインバータ入れて LED をつける回路を入れています。これは「私の」デバッグ用の Lチカのため。小さい 1gate logic 使ったのでつけるのは面倒ですが、まぁオプション回路です。あと、基板見ていたら発振器への電源が細い。REV 2 では直しましょう。それと、発振器の下に電源が通っているのはどうしようか。普通に売っているモジュールだと缶の裏にボッチがあってショートしないんですけど、まぁ困る人がいたら自分で対策?

部品をとりあえず仮取り付けをして記念写真。ROMベースデバッグなのでゼロプレッシャーソケットを重ねています。テストピンはちょっと良いものを使用。電源の電解はここまで良いものを使う理由はないですが、当初予定通り。

2650A SBC