0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KBC-80SAを作ってみた

Last updated at Posted at 2024-11-30

ワンダーキットが40年位前に販売していた、KBC-80SAを作ってみました。

もともとRAM、ROM共に最大8Kバイトですが、32Kバイトに変更します。これに伴いデコーダーはTTLではなくGALで作ります。何箇所かパターンカットしてジャンパーを飛ばしました。

以前日米商事さんで108円で手に入れたLH0080Bがあるのでクロックは6MHzにします。発信器もジャンクで手に入れたストックがありました。

GALはDOSBOXでEQN2JEDでEQNをJEDにして、galprogで焼きます。galprogは以前Visual StudioでビルドしたWindowsのバイナリを使いました。

GALの下駄はLS32とLS139のピンから足を取ります。LS32とLS139の間隔がピッチがDIPの半分だったのでハーフピッチの基板を使いました。

EQNファイルはこんな感じです。

title    KBC-80SA 
pattern  Z80 
revision A 
author   yamori813 
date     11/11/24 
chip kbc gal6001 

; The following pin list order mustly be followed strictly: 
; 1. device pins 1 to 24 
; 2. slmc 7 to slmc 0 
; 3. buried feedback (OLMC 14) to buried feedback (OLMC 23) 

; pins 1  2  3  4  5  6  7  8  9  10  11  12 
; pins 2  3  4  5  6  7  9  10 11  12  13  14 
       i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 gnd 

; pins 13   14  15  16  17  18  19  20  21  22  23  24 
; pins 16   17  18  19  20  21  23  24  25  26  27  28 
       oclk o14 o15 o16 o17 o18 o19 o20 i21 i22 i23 vcc 

; slmc7 slmc6 slmc5 slmc4 slmc3 slmc2 slmc1 slmc0 
  nc    nc    nc    nc    nc    nc    nc    nc 

; buried feedback to AND array from OLMCs. 
; bur14 bur15 bur16 bur17 bur18 bur19 bur20 bur21 bur22 bur23 
  nc    nc    nc    nc    nc    nc    nc    nc    nc    nc 

; specify the User Electronic Signature (UES) 

@ues kbc
  ; 8 ues bits are used per character. 

equations 

; ILMC         : asynchronous inputs. 
; IOLMC        : asynchronous feedback to AND array. 
; SLMC         : not used. 
; OLMC 14-18   : asynchronous outputs (output always enabled). 
; OLMC 19-23   : D-type registered outputs (output always enabled). 
;      buried feedback of OLMCs not used. 
; asynch reset : not used (default is registers cannot be reset).  

;ROM CS(20) = MREQ(19) | A15(5)
o14 = i1 | i2
;RAM CS(29) = MREQ(19) | /A15(5)
o15 = i1 | /i2

; PPIO
;IOW(36) = IORQ(20) | WR(22)
o16 = i3 | i4
;IOR(5) = IORQ(29) | RD(21)
o17 = i3 | i5

;PPI0 CS(6) = A3(33) | A2(32) | A6(36) | A7(37)
o18 = i6 | i7 | i8 | i9

;PPI1 CS(6) = A3(33) | /A2(32) | A6(36) | A7(37)
o19 = i6 | /i7 | i8 | i9

;RESET PPIO(35)
;o20 = /i10

; end of example 5 

RAMはSOPの物を変換基板でDIPにしています。秋月の変換基板は少し大きいのでやすりで削りました。

最終的にはEPROMにするつもりですが、確認にはFlashを使います。

IMG_20241130_114659.jpg

PLCCの下駄はRAMとあたるので、細ピンソケットで上げました。一時的なものなので、切らず使いました。

GALのデコードを確認するアセンブラを書きます。

        ORG 0
        LD SP,9000H
INIT8255:
        LD A,10000000B
        OUT (007H),A
        CALL SLEEP
LOOP:
        LD A,0FFH
        OUT (004H),A
        CALL SLEEP
        CALL SLEEP
        LD A,00H
        OUT (004H),A
        CALL SLEEP
        JP LOOP

SLEEP:
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        RET

zmacでアセンブルしてddでflashのサイズにして、flashromで焼きます。この作業はFreeBSDで行いました。

IORQと8255のPA3はこうなりました。

NewFile2 (2).jpg

リセットモジュールのMN1280を使いましたが、小さいコンデンサーでは正常にリセットされないので、電解コンデンサーを入れました。MN1280は意味無いかもしれません。

8255のリセットはグランドに落としました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?