From ed7e2528700b31f91d5366c83c8a31ff13e75274 Mon Sep 17 00:00:00 2001 From: Tom Keddie Date: Tue, 10 Aug 2021 20:38:05 -0700 Subject: [PATCH] tec-1/hardware/gals: add palasm4 version of keybd gal, sim working --- tec-1/hardware/gals/keybd/KEYBD.JED | 150 ++++++++++++++++++++++++++++ tec-1/hardware/gals/keybd/KEYBD.PDS | 74 ++++++++++++++ tec-1/hardware/gals/keybd/KEYBD.SIM | 62 ++++++++++++ tec-1/hardware/gals/keybd/KEYBD.lst | 77 -------------- tec-1/hardware/gals/keybd/keybd.jed | 48 --------- tec-1/hardware/gals/keybd/keybd.pld | 55 ---------- 6 files changed, 286 insertions(+), 180 deletions(-) create mode 100644 tec-1/hardware/gals/keybd/KEYBD.JED create mode 100644 tec-1/hardware/gals/keybd/KEYBD.PDS create mode 100644 tec-1/hardware/gals/keybd/KEYBD.SIM delete mode 100644 tec-1/hardware/gals/keybd/KEYBD.lst delete mode 100644 tec-1/hardware/gals/keybd/keybd.jed delete mode 100644 tec-1/hardware/gals/keybd/keybd.pld diff --git a/tec-1/hardware/gals/keybd/KEYBD.JED b/tec-1/hardware/gals/keybd/KEYBD.JED new file mode 100644 index 0000000..926848d --- /dev/null +++ b/tec-1/hardware/gals/keybd/KEYBD.JED @@ -0,0 +1,150 @@ + +PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92) + (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992 + + +TITLE :TEC-1 KEYBD PLD AUTHOR :Tom Keddie +PATTERN :KEYBD.PDS COMPANY:Tom Keddie +REVISION:1 DATE :08/04/21 + + +PAL22V10 +IO2* +QP24* +QF5828* +G0*F0* +L0000 00000000000000000000000000000000000000000000* +L0044 11111111111111111111111111111111111111111111* +L0088 11111111111111111111111111111111011111111111* +L0132 00000000000000000000000000000000000000000000* +L0176 00000000000000000000000000000000000000000000* +L0220 00000000000000000000000000000000000000000000* +L0264 00000000000000000000000000000000000000000000* +L0308 00000000000000000000000000000000000000000000* +L0352 00000000000000000000000000000000000000000000* +L0396 00000000000000000000000000000000000000000000* +L0440 11111111111111111111111111111111111111111101* +L0484 11011111011111111111111111111111111111111111* +L0528 00000000000000000000000000000000000000000000* +L0572 00000000000000000000000000000000000000000000* +L0616 00000000000000000000000000000000000000000000* +L0660 00000000000000000000000000000000000000000000* +L0704 00000000000000000000000000000000000000000000* +L0748 00000000000000000000000000000000000000000000* +L0792 00000000000000000000000000000000000000000000* +L0836 00000000000000000000000000000000000000000000* +L0880 00000000000000000000000000000000000000000000* +L0924 11111111111111111111111111111111111111101111* +L0968 11111111111111111111111111110111111111111111* +L1012 00000000000000000000000000000000000000000000* +L1056 00000000000000000000000000000000000000000000* +L1100 00000000000000000000000000000000000000000000* +L1144 00000000000000000000000000000000000000000000* +L1188 00000000000000000000000000000000000000000000* +L1232 00000000000000000000000000000000000000000000* +L1276 00000000000000000000000000000000000000000000* +L1320 00000000000000000000000000000000000000000000* +L1364 00000000000000000000000000000000000000000000* +L1408 00000000000000000000000000000000000000000000* +L1452 00000000000000000000000000000000000000000000* +L1496 11111111111111111111111111111111111111101111* +L1540 11111111111111111111111101111111111111111111* +L1584 00000000000000000000000000000000000000000000* +L1628 00000000000000000000000000000000000000000000* +L1672 00000000000000000000000000000000000000000000* +L1716 00000000000000000000000000000000000000000000* +L1760 00000000000000000000000000000000000000000000* +L1804 00000000000000000000000000000000000000000000* +L1848 00000000000000000000000000000000000000000000* +L1892 00000000000000000000000000000000000000000000* +L1936 00000000000000000000000000000000000000000000* +L1980 00000000000000000000000000000000000000000000* +L2024 00000000000000000000000000000000000000000000* +L2068 00000000000000000000000000000000000000000000* +L2112 00000000000000000000000000000000000000000000* +L2156 11111111111111111111111111111111111111101111* +L2200 11111111111111111111011111111111111111111111* +L2244 00000000000000000000000000000000000000000000* +L2288 00000000000000000000000000000000000000000000* +L2332 00000000000000000000000000000000000000000000* +L2376 00000000000000000000000000000000000000000000* +L2420 00000000000000000000000000000000000000000000* +L2464 00000000000000000000000000000000000000000000* +L2508 00000000000000000000000000000000000000000000* +L2552 00000000000000000000000000000000000000000000* +L2596 00000000000000000000000000000000000000000000* +L2640 00000000000000000000000000000000000000000000* +L2684 00000000000000000000000000000000000000000000* +L2728 00000000000000000000000000000000000000000000* +L2772 00000000000000000000000000000000000000000000* +L2816 00000000000000000000000000000000000000000000* +L2860 00000000000000000000000000000000000000000000* +L2904 11111111111111111111111111111111111111101111* +L2948 11111111111111110111111111111111111111111111* +L2992 00000000000000000000000000000000000000000000* +L3036 00000000000000000000000000000000000000000000* +L3080 00000000000000000000000000000000000000000000* +L3124 00000000000000000000000000000000000000000000* +L3168 00000000000000000000000000000000000000000000* +L3212 00000000000000000000000000000000000000000000* +L3256 00000000000000000000000000000000000000000000* +L3300 00000000000000000000000000000000000000000000* +L3344 00000000000000000000000000000000000000000000* +L3388 00000000000000000000000000000000000000000000* +L3432 00000000000000000000000000000000000000000000* +L3476 00000000000000000000000000000000000000000000* +L3520 00000000000000000000000000000000000000000000* +L3564 00000000000000000000000000000000000000000000* +L3608 00000000000000000000000000000000000000000000* +L3652 11111111111111111111111111111111111111101111* +L3696 11111111111101111111111111111111111111111111* +L3740 00000000000000000000000000000000000000000000* +L3784 00000000000000000000000000000000000000000000* +L3828 00000000000000000000000000000000000000000000* +L3872 00000000000000000000000000000000000000000000* +L3916 00000000000000000000000000000000000000000000* +L3960 00000000000000000000000000000000000000000000* +L4004 00000000000000000000000000000000000000000000* +L4048 00000000000000000000000000000000000000000000* +L4092 00000000000000000000000000000000000000000000* +L4136 00000000000000000000000000000000000000000000* +L4180 00000000000000000000000000000000000000000000* +L4224 00000000000000000000000000000000000000000000* +L4268 00000000000000000000000000000000000000000000* +L4312 11111111111111111111111111111111111111111111* +L4356 11111111111111111111111111111111111111110111* +L4400 11110111111111111111111111111111111110111111* +L4444 00000000000000000000000000000000000000000000* +L4488 00000000000000000000000000000000000000000000* +L4532 00000000000000000000000000000000000000000000* +L4576 00000000000000000000000000000000000000000000* +L4620 00000000000000000000000000000000000000000000* +L4664 00000000000000000000000000000000000000000000* +L4708 00000000000000000000000000000000000000000000* +L4752 00000000000000000000000000000000000000000000* +L4796 00000000000000000000000000000000000000000000* +L4840 00000000000000000000000000000000000000000000* +L4884 11111111111111111111111111111111111111111111* +L4928 11111111111111111111111111111111111110111101* +L4972 00000000000000000000000000000000000000000000* +L5016 00000000000000000000000000000000000000000000* +L5060 00000000000000000000000000000000000000000000* +L5104 00000000000000000000000000000000000000000000* +L5148 00000000000000000000000000000000000000000000* +L5192 00000000000000000000000000000000000000000000* +L5236 00000000000000000000000000000000000000000000* +L5280 00000000000000000000000000000000000000000000* +L5324 00000000000000000000000000000000000000000000* +L5368 11111111111111111111111111111111111111111111* +L5412 11111111111111111111111111111111111101111101* +L5456 00000000000000000000000000000000000000000000* +L5500 00000000000000000000000000000000000000000000* +L5544 00000000000000000000000000000000000000000000* +L5588 00000000000000000000000000000000000000000000* +L5632 00000000000000000000000000000000000000000000* +L5676 00000000000000000000000000000000000000000000* +L5720 00000000000000000000000000000000000000000000* +L5764 00000000000000000000000000000000000000000000* +L5808 10111010101010010101* +C7136* +16AA diff --git a/tec-1/hardware/gals/keybd/KEYBD.PDS b/tec-1/hardware/gals/keybd/KEYBD.PDS new file mode 100644 index 0000000..ce68356 --- /dev/null +++ b/tec-1/hardware/gals/keybd/KEYBD.PDS @@ -0,0 +1,74 @@ +;PALASM Design Description + +;---------------------------------- Declaration Segment ------------ +TITLE TEC-1 KEYBD PLD +PATTERN KEYBD.PDS +REVISION 1 +AUTHOR Tom Keddie +COMPANY Tom Keddie +DATE 08/04/21 + +CHIP IO2 PAL22V10 + +;---------------------------------- PIN Declarations --------------- + +PIN 1 FTDI_WR COMBINATORIAL ; plcc pin 2 +PIN 2 C923_DA COMBINATORIAL ; plcc pin 3 +PIN 3 SHIFTKEY_N COMBINATORIAL ; plcc pin 4 +PIN 4 FTDI_D0 COMBINATORIAL ; plcc pin 5 +PIN 5 FTDI_D1 COMBINATORIAL ; plcc pin 6 +PIN 6 FTDI_D2 COMBINATORIAL ; plcc pin 7 +PIN 7 FTDI_D3 COMBINATORIAL ; plcc pin 9 +PIN 8 FTDI_D4 COMBINATORIAL ; plcc pin 10 +PIN 9 FTDI_D5 COMBINATORIAL ; plcc pin 11 +PIN 10 FTDI_D6 COMBINATORIAL ; plcc pin 12 +PIN 11 FTDI_D7 COMBINATORIAL ; plcc pin 13 + +PIN 13 KEYBD_CS COMBINATORIAL ; plcc pin 16 +PIN 14 D_TRST COMBINATORIAL ; plcc pin 17 (NC) +PIN 15 C923_OE_N COMBINATORIAL ; plcc pin 18 +PIN 16 NMI_N COMBINATORIAL ; plcc pin 19 +PIN 17 D0 REGISTERED ; plcc pin 20 +PIN 18 D1 REGISTERED ; plcc pin 21 +PIN 19 D2 REGISTERED ; plcc pin 23 +PIN 20 D3 REGISTERED ; plcc pin 24 +PIN 21 D4 REGISTERED ; plcc pin 25 +PIN 22 D5 COMBINATORIAL ; plcc pin 26 +PIN 23 FTDI_SHIFT REGISTERED ; plcc pin 27 (NC) + +;----------------------------------- Boolean Equation Segment ------ +EQUATIONS + +D0 := FTDI_D0 +D1 := FTDI_D1 +D2 := FTDI_D2 +D3 := FTDI_D3 +D4 := FTDI_D4 +FTDI_SHIFT := FTDI_D5; + +D0.CLKF = FTDI_WR; +D1.CLKF = FTDI_WR; +D2.CLKF = FTDI_WR; +D3.CLKF = FTDI_WR; +D4.CLKF = FTDI_WR; +FTDI_SHIFT.CLKF = FTDI_WR; + +; tristate internal reg when D6 is off or CS is inactive +D_TRST = /FTDI_D6 + /KEYBD_CS + +; tristate is active low +D0.TRST = /D_TRST; +D1.TRST = /D_TRST; +D2.TRST = /D_TRST; +D3.TRST = /D_TRST; +D4.TRST = /D_TRST; +D5.TRST = KEYBD_CS + +; enable tristate keybd encoder chip outpue when D6 is off and CS is active +/C923_OE_N = /FTDI_D6 * KEYBD_CS + +; D5 pulled low when shift is pressed or ftdi shift is on +/D5 = FTDI_SHIFT + /SHIFTKEY_N + +; signal a keypress if the 74C923 signals and the encoder is enabled +/NMI_N = C923_DA * /FTDI_D6 + FTDI_D7 \ No newline at end of file diff --git a/tec-1/hardware/gals/keybd/KEYBD.SIM b/tec-1/hardware/gals/keybd/KEYBD.SIM new file mode 100644 index 0000000..1606b5d --- /dev/null +++ b/tec-1/hardware/gals/keybd/KEYBD.SIM @@ -0,0 +1,62 @@ +;----------------------------------- Simulation Segment ------------ +SIMULATION + +TRACE_ON FTDI_D0 FTDI_D1 FTDI_D2 FTDI_D3 FTDI_D4 FTDI_D5 FTDI_D6 FTDI_D7 FTDI_WR C923_DA SHIFTKEY_N KEYBD_CS C923_OE_N NMI_N D0 D1 D2 D3 D4 D5 FTDI_SHIFT D_TRST + +SETF /FTDI_D0 /FTDI_D1 /FTDI_D2 /FTDI_D3 /FTDI_D4 /FTDI_D5 FTDI_D6 /FTDI_D7 /FTDI_WR SHIFTKEY_N + +; DATA PIN tristate control +SETF /KEYBD_CS /FTDI_D6 +CHECK ^D0 ^D1 ^D2 ^D3 ^D4 +SETF KEYBD_CS /FTDI_D6 +CHECK ^D0 ^D1 ^D2 ^D3 ^D4 +SETF /KEYBD_CS FTDI_D6 +CHECK ^D0 ^D1 ^D2 ^D3 ^D4 + +; FTDI TO DATA PIN +SETF KEYBD_CS FTDI_D6 +CHECK /D0 /D1 /D2 /D3 /D4 + +SETF /FTDI_D0 FTDI_D1 /FTDI_D2 FTDI_D3 /FTDI_D4 +CLOCKF FTDI_WR +CHECK /D0 D1 /D2 D3 /D4 + +SETF FTDI_D0 /FTDI_D1 FTDI_D2 /FTDI_D3 FTDI_D4 +CLOCKF FTDI_WR +CHECK D0 /D1 D2 /D3 D4 + +; SHIFT KEY (D5 LOW = SHIFT) +SETF /SHIFTKEY_N +CHECK /D5 +SETF SHIFTKEY_N FTDI_D5 +CHECK D5 +CLOCKF FTDI_WR +CHECK /D5 +SETF SHIFTKEY_N /FTDI_D5 +CLOCKF FTDI_WR +CHECK D5 + +; C923 output enable +SETF FTDI_D6 KEYBD_CS +CHECK C923_OE_N +SETF FTDI_D6 /KEYBD_CS +CHECK C923_OE_N +SETF FTDI_D6 /KEYBD_CS +CHECK C923_OE_N +SETF /FTDI_D6 KEYBD_CS +CHECK /C923_OE_N + +; NMI +CHECK NMI_N +SETF FTDI_D7 /C923_DA /FTDI_D6 +CHECK /NMI_N +SETF /FTDI_D7 /C923_DA /FTDI_D6 +CHECK NMI_N +SETF /FTDI_D7 C923_DA /FTDI_D6 +CHECK /NMI_N +SETF /FTDI_D7 C923_DA FTDI_D6 +CHECK NMI_N + + +TRACE_OFF +;------------------------------------------------------------------- diff --git a/tec-1/hardware/gals/keybd/KEYBD.lst b/tec-1/hardware/gals/keybd/KEYBD.lst deleted file mode 100644 index 836c5c7..0000000 --- a/tec-1/hardware/gals/keybd/KEYBD.lst +++ /dev/null @@ -1,77 +0,0 @@ -LISTING FOR LOGIC DESCRIPTION FILE: KEYBD.pld Page 1 - -CUPL(WM): Universal Compiler for Programmable Logic -Version 5.0a Serial# 60008009 -Copyright (c) 1983, 1998 Logical Devices, Inc. -Created Mon Apr 12 18:52:51 2021 - - 1:Name keybd; - 2:PartNo 00 ; - 3:Date 2021-03-29 ; - 4:Revision 01 ; - 5:Designer Engineer ; - 6:Company Tom Keddie ; - 7:Assembly None ; - 8:Location ; - 9:Device g22v10lcc ; - 10: - 11:PIN 2 = FTDI_WR_N; - 12:PIN 3 = C923_DA; - 13:PIN 4 = SHIFTKEY_N; - 14:PIN 5 = FTDI_D0; - 15:PIN 6 = FTDI_D1; - 16:PIN 7 = FTDI_D2; - 17: - 18:PIN 9 = FTDI_D3; - 19:PIN 10 = FTDI_D4; - 20:PIN 11 = FTDI_D5; - 21:PIN 12 = FTDI_D6; - 22:PIN 13 = FTDI_D7; - 23: - 24:/* PIN 15 = SHIFTKEY_N; */ - 25:PIN 16 = KEYBD_CS; - 26:/* 17 */ - 27:PIN 18 = C923_OE_N; - 28:PIN 19 = NMI_N; - 29:PIN 20 = D0; - 30:PIN 21 = D1; - 31: - 32:PIN 23 = D2; - 33:PIN 24 = D3; - 34:PIN 25 = D4; - 35:PIN 26 = D5; - 36:/* 27 */ - 37: - 38:FIELD ftdidata = [FTDI_D4..FTDI_D0]; - 39:FIELD cpudata = [D4..D0]; - 40: - 41:cpudata.AR = 'b'0; - 42:cpudata.SP = 'b'0; - 43:cpudata.D = ftdidata; - 44: - 45:/* read from internal reg when D6 is low */ - 46:cpudata.OE = KEYBD_CS & !FTDI_D6; - 47:/* read from 74C923 when D6 is high (default) */ - 48:C923_OE_N = KEYBD_CS & FTDI_D6; - 49: - 50:D5.AR = 'b'0; - 51:D5.SP = 'b'0; - 52:D5.D = !FTDI_D5 & SHIFTKEY_N; - 53:D5.OE = KEYBD_CS; - -LISTING FOR LOGIC DESCRIPTION FILE: KEYBD.pld Page 2 - -CUPL(WM): Universal Compiler for Programmable Logic -Version 5.0a Serial# 60008009 -Copyright (c) 1983, 1998 Logical Devices, Inc. -Created Mon Apr 12 18:52:51 2021 - - 54: - 55: - 56: - 57: - - - -Jedec Fuse Checksum (5706) -Jedec Transmit Checksum (3b4d) diff --git a/tec-1/hardware/gals/keybd/keybd.jed b/tec-1/hardware/gals/keybd/keybd.jed deleted file mode 100644 index 29861e4..0000000 --- a/tec-1/hardware/gals/keybd/keybd.jed +++ /dev/null @@ -1,48 +0,0 @@ - -CUPL(WM) 5.0a Serial# 60008009 -Device g22v10lcc Library DLIB-h-40-2 -Created Mon Apr 12 18:52:51 2021 -Name keybd -Partno 00 -Revision 01 -Date 2021-03-29 -Designer Engineer -Company Tom Keddie -Assembly None -Location -*QP28 -*QF5892 -*G0 -*F0 -*L00416 00000000000000000000000011111111 -*L00448 11111111111111111111111111111111 -*L00480 11011111111111111111111111111111 -*L00512 11110111111111111111111110111111 -*L00544 11111111111111111111111111110000 -*L00896 00000000000000000000000000001111 -*L00928 11111111111111111111111111111111 -*L00960 10111101111111111111111111111111 -*L00992 11111011111111111111000000000000 -*L01472 00000000000000000000000011111111 -*L01504 11111111111111111111111111111011 -*L01536 11011111111111111111111111111011 -*L01568 11111111111111110000000000000000 -*L02144 00000000000011111111111111111111 -*L02176 11111111111111111011110111111111 -*L02208 11111111111110111111111111111111 -*L02240 11110000000000000000000000000000 -*L02880 00000000000000000000000011111111 -*L02912 11111111111111111111111111111011 -*L02944 11011111111111111111101111111111 -*L02976 11111111111111110000000000000000 -*L03648 00001111111111111111111111111111 -*L03680 11111111101111011111111111111011 -*L03712 11111111111111111111111111110000 -*L04864 00000000000000000000111111111111 -*L04896 11111111111111111111111111111111 -*L04928 11111111111111111111111111111111 -*L04960 11111011111111111111111111111111 -*L04992 11111111111111111111111000000000 -*L05824 01000011000000110000001000000000 -*C5706 -*3B4D \ No newline at end of file diff --git a/tec-1/hardware/gals/keybd/keybd.pld b/tec-1/hardware/gals/keybd/keybd.pld deleted file mode 100644 index 5952752..0000000 --- a/tec-1/hardware/gals/keybd/keybd.pld +++ /dev/null @@ -1,55 +0,0 @@ -Name keybd; -PartNo 00 ; -Date 2021-03-29 ; -Revision 01 ; -Designer Engineer ; -Company Tom Keddie ; -Assembly None ; -Location ; -Device g22v10lcc ; - -PIN 2 = FTDI_WR_N; -PIN 3 = C923_DA; -PIN 4 = SHIFTKEY_N; -PIN 5 = FTDI_D0; -PIN 6 = FTDI_D1; -PIN 7 = FTDI_D2; - -PIN 9 = FTDI_D3; -PIN 10 = FTDI_D4; -PIN 11 = FTDI_D5; -PIN 12 = FTDI_D6; -PIN 13 = FTDI_D7; - -/* PIN 15 = SHIFTKEY_N; */ -PIN 16 = KEYBD_CS; -/* 17 */ -PIN 18 = C923_OE_N; -PIN 19 = NMI_N; -PIN 20 = D0; -PIN 21 = D1; - -PIN 23 = D2; -PIN 24 = D3; -PIN 25 = D4; -PIN 26 = D5; -/* 27 */ - -FIELD ftdidata = [FTDI_D4..FTDI_D0]; -FIELD cpudata = [D4..D0]; - -cpudata.AR = 'b'0; -cpudata.SP = 'b'0; -cpudata.D = ftdidata; - -/* read from internal reg when D6 is low */ -cpudata.OE = KEYBD_CS & !FTDI_D6; -/* read from 74C923 when D6 is high (default) */ -C923_OE_N = KEYBD_CS & FTDI_D6; - -D5.AR = 'b'0; -D5.SP = 'b'0; -D5.D = !FTDI_D5 & SHIFTKEY_N; -D5.OE = KEYBD_CS; - -