まずこちらの方です。回路は、というか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ベースデバッグなのでゼロプレッシャーソケットを重ねています。テストピンはちょっと良いものを使用。電源の電解はここまで良いものを使う理由はないですが、当初予定通り。