Bolle
Well-known member
I figured that it might be worth sharing this to maybe spark somebodies interest in getting the GAL logic dumbed down into something more modern to drastically reduce the size of this thing to free space for additional PDS cards.
So far I happen to have figured out the schematics:
View attachment DiiMOSE30.png
And I also extracted the GAL code:
Code:
;$GALMODE MEDIUM
chip U1 GAL16V8
i1=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /i11=11 o12=12
f13=13 f14=14 o15=15 f16=16 f17=17 o18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
/o19 = /i2 * f14 * /f13 * /i11
o19.oe = vcc
/o18 = /i4
+ /i1 * /i6
+ /i2 * i1 * i3 * i5 * /i7 * i8 * i9 * i11
+ /i2 * i1 * i3 * i5 * i7 * /i8 * i9 * i11
+ /i2 * i1 * i3 * i5 * /i7 * /f14 * i8 * /f13 * i9
+ /i2 * i1 * i3 * i5 * i7 * /f14 * /i8 * /f13 * i9
o18.oe = vcc
/f17 = /i2 * i1 * i3 * i5 * /i7 * i8 * i9 * i11
+ /i2 * i1 * i3 * i5 * i7 * /i8 * i9 * i11
+ /i2 * i1 * i3 * i5 * /i7 * /f14 * i8 * /f13 * i9
+ /i2 * i1 * i3 * i5 * i7 * /f14 * /i8 * /f13 * i9
f17.oe = vcc
f16 = gnd
f16.oe = gnd
/o15 = /f16
o15.oe = f17
f14 = gnd
f14.oe = gnd
f13 = gnd
f13.oe = gnd
/o12 = /i2 * i1 * i3 * /i7 * i8 * i9 * i11
+ /i2 * i1 * i3 * i7 * /i8 * i9 * i11
+ /i2 * i1 * i3 * /i7 * /f14 * i8 * /f13 * i9
+ /i2 * i1 * i3 * i7 * /f14 * /i8 * /f13 * i9
o12.oe = vcc
Code:
;$GALMODE REGISTERED
chip U2 GAL16V8
CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /OE=11 rf12=12
rf13=13 rf14=14 rf15=15 rf16=16 rf17=17 rf18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
/o19 = /i2
o19.oe = vcc
rf18 := rf18 * rf17 * rf14
+ i3 * i4 * rf17 * rf14 * i9
rf18.oe = OE
/rf17 := rf18 * rf17 * /i9
+ rf18 * rf17 * /rf14 * /i8
+ rf18 * rf17 * /i7 * /rf14
+ /i3 * /i4 * /i5 * /i6
rf17.oe = OE
/rf16 := /rf16 * /i6
+ rf18 * i5 * /i6 * i7 * /rf14 * i8 * /rf12
rf16.oe = OE
/rf15 := /i6 * /rf15
+ rf18 * i5 * /i6 * i7 * /rf14 * i8 * /rf13
rf15.oe = OE
rf14 := /rf18
+ rf13 * rf12
+ /i3 * i7 * i8 * rf12
+ /i4 * i7 * i8 * rf13
+ /i3 * /i4 * i7 * i8
rf14.oe = OE
/rf13 := /i3 * rf18
+ rf18 * /rf13
rf13.oe = OE
/rf12 := rf18 * /i4
+ rf18 * /rf12
rf12.oe = OE
Code:
;$GALMODE REGISTERED
chip U3 GAL16V8
CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /OE=11 f12=12
rf13=13 rf14=14 f15=15 f16=16 rf17=17 rf18=18 f19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
f19 = gnd
f19.oe = gnd
/rf18 := i2 * i3 * /rf18 * i4 * i9
+ i2 * i3 * i4 * rf17 * f16 * /i6 * f15 * /i7 * rf14 * i9 * f12
+ i2 * i3 * i4 * rf17 * i5 * f16 * /i6 * f15 * rf14 * i9 * f12
+ i2 * f19 * i3 * i4 * rf17 * f16 * f15 * rf14 * /i8 * rf13 * i9
rf18.oe = OE
/rf17 := /i2 * rf17 * rf14
+ f19 * rf18 * /i5 * /i6 * /i7 * rf14
rf17.oe = OE
/f16 = /i4 * /i6
f16.oe = f12
/f15 = /i3 * /i6
f15.oe = f12
/rf14 := /rf18 * /rf14 * i9
+ i2 * f19 * /rf18 * /i5 * /i7 * i9
rf14.oe = OE
rf13 := /rf13 * /i9
+ i2 * i3 * rf18 * i4 * rf17 * f16 * /i6 * f15 * rf14 * f12
rf13.oe = OE
f12 = gnd
f12.oe = gnd
Code:
;$GALMODE REGISTERED
chip U4 GAL16V8
CLK=1 i2=2 i3=3 i5=5 i6=6 i7=7 i8=8 GND=10 /OE=11 o12=12 rf13=13
rf14=14 rf15=15 rf16=16 rf17=17 rf18=18 f19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
/f19 = /i3 * /i6 * /rf13
+ /i5 * /i6 * /rf13
+ /f19 * /i6
f19.oe = vcc
rf18 := f19 * rf18 * /rf16 * /i6 * /i7 * rf13
+ f19 * rf18 * /i6 * /rf15 * /i7 * rf13
+ f19 * rf18 * /rf17 * /i6 * /i7 * rf13
+ f19 * /rf18 * rf17 * rf16 * /i6 * rf15 * /i7 * rf14 * rf13
+ f19 * rf18 * /i6 * /i7 * /rf14 * rf13
rf18.oe = OE
rf17 := f19 * rf17 * /i6 * /rf15 * /i7 * rf13
+ f19 * rf17 * /rf16 * /i6 * /i7 * rf13
+ f19 * /rf17 * rf16 * /i6 * rf15 * /i7 * rf14 * rf13
+ f19 * rf17 * /i6 * /i7 * /rf14 * rf13
rf17.oe = OE
rf16 := f19 * rf16 * /i6 * /i7 * /rf14 * rf13
+ f19 * rf16 * /i6 * /rf15 * /i7 * rf13
+ f19 * /rf16 * /i6 * rf15 * rf14 * rf13
+ rf15 * i7 * rf14
rf16.oe = OE
rf15 := i5 * rf15 * /i8
+ /i5 * /rf15 * rf14 * /i8
+ f19 * /i6 * /rf15 * /i7 * rf14 * rf13
+ f19 * /i6 * rf15 * /i7 * /rf14 * rf13
+ rf15 * /rf14 * /i8
rf15.oe = OE
rf14 := /i5 * /rf14 * /i8
+ f19 * /i6 * /i7 * /rf14 * rf13
+ i5 * rf14 * /i8
rf14.oe = OE
/rf13 := i2 * i3 * i5 * /rf13
+ f19 * rf18 * rf17 * rf16 * /i6 * rf15 * /i7 * rf14
+ i2 * f19 * i3 * i5 * /rf16 * /i6 * /rf15 * i7 * /rf14
+ i2 * /i8 * /rf13
rf13.oe = OE
o12 = gnd
o12.oe = gnd
Code:
;$GALMODE REGISTERED
chip U5 GAL16V8
CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /OE=11 f12=12
f13=13 rf14=14 rf15=15 rf16=16 rf17=17 o18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
/o19 = /i3
o19.oe = vcc
o18 = i3 * i5 * i9
o18.oe = vcc
/rf17 := /i2 * /rf17 * rf15
+ /i2 * rf17 * /rf15
rf17.oe = OE
/rf16 := /i2 * rf17 * /rf16
+ /i2 * /rf17 * rf16 * /rf15
+ /i2 * /rf16 * rf15
rf16.oe = OE
/rf15 := /i2 * /i4 * /rf14 * i8
rf15.oe = OE
/rf14 := /i2 * i3
rf14.oe = OE
/f13 = i2 * rf14 * /f12
+ i5 * rf14 * /f13
+ /i2 * /f13
f13.oe = vcc
/f12 = /i6 * /i7 * /rf14
+ /rf14 * /f12
f12.oe = vcc
Code:
;$GALMODE MEDIUM
chip U6 GAL16V8
i1=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /i11=11 o12=12
f13=13 f14=14 f15=15 f16=16 f17=17 o18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
o19 = i5 * i6 * i9
+ /i5 * /i8 * /i9
+ /i5 * /i6 * i8 * i9
+ i5 * /i6 * i8 * /i9
+ i5 * /i8 * i9
+ /i5 * i6 * /i9
o19.oe = vcc
o18 = i6 * i8
+ /i6 * /i8
o18.oe = vcc
/f17 = /i2 * /f13
+ /f17 * /f14 * f13
+ /i2 * /f14
f17.oe = vcc
f16 = gnd
f16.oe = gnd
f15 = i4 * f16 * f15
+ /i2 * i1 * /f16 * i7 * /f13 * i11
+ i2 * i4 * f15
+ i4 * f15 * f13
+ i4 * f15 * /i11
+ i4 * f15 * /i7
f15.oe = vcc
/f14 = /i2 * /i3
f14.oe = /i3
f13 = gnd
f13.oe = gnd
o12 = i3 * /f13
o12.oe = vcc
Code:
;$GALMODE SMALL
chip U7 GAL16V8
i1=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /i11=11 o12=12
f13=13 f14=14 o15=15 o16=16 o17=17 o18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
/o19 = /i2 * /i3 * f14 * /i8 * /i9 * i11
+ /i2 * f13
/o18 = /i2 * /i3 * f14 * /i8 * i9 * i11
+ /i2 * /i3 * f14 * i7 * /i8 * i11
+ /i2 * /i3 * /i6 * f14 * /i8 * i11
+ /i2 * f13
/o17 = /i2 * /i3 * f14 * /i8 * /i9 * /i11
+ /i2 * f13
+ /i2 * /i3 * f14 * i7 * /i8 * i9 * i11
+ /i2 * /i3 * /i6 * f14 * /i7 * /i8 * i11
+ /i2 * /i3 * i6 * f14 * i7 * /i8 * i11
/o16 = /i2 * /i3 * f14 * /i8 * i9 * /i11
+ /i2 * /i3 * /i6 * f14 * /i7 * /i8
+ /i2 * /i3 * f14 * i7 * /i8 * /i11
+ /i2 * /i3 * i6 * f14 * i7 * /i8 * i9
+ /i2 * f13
f13 = /i1 * /i4 * /i5
/o12 = /i2 * f13
Code:
;$GALMODE MEDIUM
chip U8 GAL16V8
i1=1 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /i11=11 o12=12 o13=13
f14=14 f15=15 f16=16 f17=17 f18=18 o19=19 VCC=20
@ues ffffffffffffffff
equations
o19 = /i1 * i4 * f17 * i8 * i9
+ /i1 * i4 * f15 * i8 * /i9
+ /i1 * i4 * f16 * /i8 * i9
+ /i1 * i4 * f14 * /i8 * /i9
o19.oe = vcc
f18 = gnd
f18.oe = gnd
f17 = i8 * i9
+ i11
+ i4 * f17
f17.oe = /i1 * i7
f16 = /i8 * i9
+ i11
+ i4 * f16
f16.oe = /i1 * i7
f15 = i8 * /i9
+ i11
+ i4 * f15
f15.oe = /i1 * i7
f14 = /i8 * /i9
+ i11
+ i4 * f14
f14.oe = /i1 * i7
o13 = i4 * f17 * i8 * i9
+ i4 * f15 * i8 * /i9
+ i4 * f16 * /i8 * i9
+ i4 * f14 * /i8 * /i9
+ i1 * i6
o13.oe = /i5
o12 = f18 * i4 * f17 * i8 * i9
+ f18 * i4 * f15 * i8 * /i9
+ f18 * i4 * f16 * /i8 * i9
+ f18 * i4 * f14 * /i8 * /i9
+ i1 * f18 * i6
+ f18 * i5
o12.oe = vcc
Code:
;$GALMODE REGISTERED
chip U9 GAL16V8
CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /OE=11 o12=12
f13=13 f14=14 f15=15 o16=16 rf17=17 f18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
o19 = /i2
o19.oe = vcc
/f18 = /i2 * /i9
+ i2 * /f18
f18.oe = i8
/rf17 := /i3 * /f14
+ /i4 * /f14
rf17.oe = OE
o16 = /f18 * /i5
+ /i5 * /i7
o16.oe = vcc
/f15 = /i2 * i5 * /i9
+ /i2 * /f13 * /i9
+ i2 * /f15
f15.oe = i8
f14 = /i4 * f14
+ i2 * /i6
+ /i3 * f14
+ /rf17 * i9
f14.oe = vcc
/f13 = i2 * /f18 * /i5 * /i9
+ /f13 * /i9
f13.oe = vcc
o12 = i3 * i4
o12.oe = vcc
Code:
;$GALMODE REGISTERED
chip U10 GAL16V8
CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /OE=11 f12=12
f13=13 o14=14 f15=15 o16=16 f17=17 ro18=18 rf19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
/rf19 := /i2 * /rf19
+ /i2 * i4
rf19.oe = OE
/ro18 := /i3 * i4 * i5
ro18.oe = OE
f17 = gnd
f17.oe = gnd
/o16 = f17 * i6 * f15 * /i7 * /i8 * /f13 * /i9 * /f12
o16.oe = vcc
f15 = gnd
f15.oe = gnd
/o14 = i8 * /f13 * /i9 * /f12
+ i7 * i8 * /f12
o14.oe = vcc
f13 = gnd
f13.oe = gnd
f12 = gnd
f12.oe = gnd
Code:
;$GALMODE MEDIUM
chip U24 GAL16V8
i1=1 i2=2 GND=10 /nc11=11 o12=12 f13=13 f14=14 f15=15 o16=16
o17=17 o18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
o19 = gnd
o19.oe = gnd
/o18 = /f13
o18.oe = vcc
/o17 = /i1
o17.oe = vcc
/o16 = /i1
o16.oe = vcc
/f15 = /i2 * /f15
+ /i2 * /i1
f15.oe = vcc
/f14 = /f15
f14.oe = vcc
/f13 = /f14
f13.oe = vcc
o12 = gnd
o12.oe = gnd
Code:
;$GALMODE MEDIUM
chip U33 GAL16V8
i1=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 GND=10 /i11=11 o12=12
f13=13 o14=14 f15=15 f16=16 f17=17 f18=18 o19=19 VCC=20
@ues 0000000000000000
@ptd unused
equations
o19 = /i6
+ i1 * i7 * /i8 * /i9
+ i11
o19.oe = vcc
f18 = gnd
f18.oe = gnd
/f17 = i2 * i3 * /f18 * /i4
+ /i3 * /f17 * /i5 * f13
+ /i3 * /f17 * /f15 * f13
+ /i3 * /i4 * /f17 * f13
f17.oe = vcc
/f16 = /f18 * /f16 * f13
+ /i3 * /f18 * f13
f16.oe = vcc
f15 = gnd
f15.oe = gnd
o14 = gnd
o14.oe = gnd
f13 = gnd
f13.oe = gnd
/o12 = /i1 * i6 * i7 * /i8 * /i9 * /i11
o12.oe = vcc
I also confirmed all of this is actually correct and working :evil:
So who's up for the challenge to translate all that into something modern or come up with something better than just rebuilding the original?
Last edited by a moderator: