From 3129dca1b89ac0d6a74e7b6257383b7877439ca7 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 26 Dec 2018 14:40:45 +0100 Subject: [PATCH] PSG sound card schematic added --- RC6502 PSG/RC6502 PSG-cache.lib | 500 +++++++++++++ RC6502 PSG/RC6502 PSG.kicad_pcb | 1 + RC6502 PSG/RC6502 PSG.net | 720 +++++++++++++++++++ RC6502 PSG/RC6502 PSG.pro | 76 ++ RC6502 PSG/RC6502 PSG.sch | 1120 ++++++++++++++++++++++++++++++ RC6502 PSG/SN76489AN.dcm | 3 + RC6502 PSG/SN76489AN.lib | 32 + RC6502 PSG/export/RC6502 PSG.pdf | Bin 0 -> 59705 bytes 8 files changed, 2452 insertions(+) create mode 100644 RC6502 PSG/RC6502 PSG-cache.lib create mode 100644 RC6502 PSG/RC6502 PSG.kicad_pcb create mode 100644 RC6502 PSG/RC6502 PSG.net create mode 100644 RC6502 PSG/RC6502 PSG.pro create mode 100644 RC6502 PSG/RC6502 PSG.sch create mode 100644 RC6502 PSG/SN76489AN.dcm create mode 100644 RC6502 PSG/SN76489AN.lib create mode 100644 RC6502 PSG/export/RC6502 PSG.pdf diff --git a/RC6502 PSG/RC6502 PSG-cache.lib b/RC6502 PSG/RC6502 PSG-cache.lib new file mode 100644 index 0000000..263698c --- /dev/null +++ b/RC6502 PSG/RC6502 PSG-cache.lib @@ -0,0 +1,500 @@ +EESchema-LIBRARY Version 2.3 +#encoding utf-8 +# +# 74LS138 +# +DEF 74LS138 U 0 40 Y Y 1 F N +F0 "U" 100 500 50 H V C CNN +F1 "74LS138" 150 -549 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +S -300 450 300 -450 0 1 0 N +X A0 1 -600 350 300 R 50 50 1 1 I +X A1 2 -600 250 300 R 50 50 1 1 I +X A2 3 -600 150 300 R 50 50 1 1 I +X E1 4 -600 -350 300 R 50 50 1 1 I L +X E2 5 -600 -250 300 R 50 50 1 1 I L +X E3 6 -600 -150 300 R 50 50 1 1 I +X O7 7 600 -350 300 L 50 50 1 1 O V +X GND 8 0 -450 0 U 50 50 1 1 W N +X O6 9 600 -250 300 L 50 50 1 1 O V +X O5 10 600 -150 300 L 50 50 1 1 O V +X O4 11 600 -50 300 L 50 50 1 1 O V +X O3 12 600 50 300 L 50 50 1 1 O V +X O2 13 600 150 300 L 50 50 1 1 O V +X O1 14 600 250 300 L 50 50 1 1 O V +X O0 15 600 350 300 L 50 50 1 1 O V +X VCC 16 0 450 0 D 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# 74LS373 +# +DEF 74LS373 U 0 40 Y Y 1 F N +F0 "U" 0 0 50 H V C CNN +F1 "74LS373" 50 -350 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +X GND 10 -300 -550 0 U 50 50 0 0 W N +X VCC 20 -250 550 0 U 50 50 0 0 W N +S -400 550 400 -550 0 1 0 N +X OE 1 -700 -500 300 R 50 50 1 1 I I +X O0 2 700 500 300 L 50 50 1 1 T +X D0 3 -700 500 300 R 50 50 1 1 I +X D1 4 -700 400 300 R 50 50 1 1 I +X O1 5 700 400 300 L 50 50 1 1 T +X O2 6 700 300 300 L 50 50 1 1 T +X D2 7 -700 300 300 R 50 50 1 1 I +X D3 8 -700 200 300 R 50 50 1 1 I +X O3 9 700 200 300 L 50 50 1 1 T +X LE 11 -700 -400 300 R 50 50 1 1 I +X O4 12 700 100 300 L 50 50 1 1 T +X D4 13 -700 100 300 R 50 50 1 1 I +X D5 14 -700 0 300 R 50 50 1 1 I +X O5 15 700 0 300 L 50 50 1 1 T +X O6 16 700 -100 300 L 50 50 1 1 T +X D6 17 -700 -100 300 R 50 50 1 1 I +X D7 18 -700 -200 300 R 50 50 1 1 I +X O7 19 700 -200 300 L 50 50 1 1 T +ENDDRAW +ENDDEF +# +# Audio-Jack-3 +# +DEF Audio-Jack-3 J 0 40 Y Y 1 F N +F0 "J" -50 175 50 H V C CNN +F1 "Audio-Jack-3" 100 -70 50 H V C CNN +F2 "" 250 100 50 H I C CNN +F3 "" 250 100 50 H I C CNN +DRAW +T 0 -25 50 30 0 0 0 1 Normal 0 C C +T 0 -100 50 30 0 0 0 2 Normal 0 C C +S -185 125 100 -25 0 1 10 f +S -175 0 -205 100 0 1 0 F +P 4 0 1 10 -50 0 -25 25 0 0 100 0 N +P 4 0 1 10 100 100 -75 100 -100 75 -125 100 N +X ~ 1 200 0 100 L 50 50 1 1 P +X ~ 2 200 100 100 L 50 50 1 1 P +X ~ 3 -200 -100 100 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# C +# +DEF C C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "C" 25 -100 50 H V L CNN +F2 "" 38 -150 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + C_* +$ENDFPLIST +DRAW +P 2 0 1 20 -80 -30 80 -30 N +P 2 0 1 20 -80 30 80 30 N +X ~ 1 0 150 110 D 50 50 1 1 P +X ~ 2 0 -150 110 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# CP +# +DEF CP C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "CP" 25 -100 50 H V L CNN +F2 "" 38 -150 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + CP_* +$ENDFPLIST +DRAW +S -90 20 -90 40 0 1 0 N +S -90 20 90 20 0 1 0 N +S 90 -20 -90 -40 0 1 0 F +S 90 40 -90 40 0 1 0 N +S 90 40 90 20 0 1 0 N +P 2 0 1 0 -70 90 -30 90 N +P 2 0 1 0 -50 110 -50 70 N +X ~ 1 0 150 110 D 50 50 1 1 P +X ~ 2 0 -150 110 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Conn_02x08_Odd_Even +# +DEF Conn_02x08_Odd_Even J 0 40 Y N 1 F N +F0 "J" 50 400 50 H V C CNN +F1 "Conn_02x08_Odd_Even" 50 -500 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*2x??x*mm* + Connector*:*2x???Pitch* + Pin_Header_Straight_2X* + Pin_Header_Angled_2X* + Socket_Strip_Straight_2X* + Socket_Strip_Angled_2X* +$ENDFPLIST +DRAW +S -50 -395 0 -405 1 1 6 N +S -50 -295 0 -305 1 1 6 N +S -50 -195 0 -205 1 1 6 N +S -50 -95 0 -105 1 1 6 N +S -50 5 0 -5 1 1 6 N +S -50 105 0 95 1 1 6 N +S -50 205 0 195 1 1 6 N +S -50 305 0 295 1 1 6 N +S -50 350 150 -450 1 1 10 f +S 150 -395 100 -405 1 1 6 N +S 150 -295 100 -305 1 1 6 N +S 150 -195 100 -205 1 1 6 N +S 150 -95 100 -105 1 1 6 N +S 150 5 100 -5 1 1 6 N +S 150 105 100 95 1 1 6 N +S 150 205 100 195 1 1 6 N +S 150 305 100 295 1 1 6 N +X Pin_1 1 -200 300 150 R 50 50 1 1 P +X Pin_2 2 300 300 150 L 50 50 1 1 P +X Pin_3 3 -200 200 150 R 50 50 1 1 P +X Pin_4 4 300 200 150 L 50 50 1 1 P +X Pin_5 5 -200 100 150 R 50 50 1 1 P +X Pin_6 6 300 100 150 L 50 50 1 1 P +X Pin_7 7 -200 0 150 R 50 50 1 1 P +X Pin_8 8 300 0 150 L 50 50 1 1 P +X Pin_9 9 -200 -100 150 R 50 50 1 1 P +X Pin_10 10 300 -100 150 L 50 50 1 1 P +X Pin_11 11 -200 -200 150 R 50 50 1 1 P +X Pin_12 12 300 -200 150 L 50 50 1 1 P +X Pin_13 13 -200 -300 150 R 50 50 1 1 P +X Pin_14 14 300 -300 150 L 50 50 1 1 P +X Pin_15 15 -200 -400 150 R 50 50 1 1 P +X Pin_16 16 300 -400 150 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# DGOF5S3 +# +DEF DGOF5S3 X 0 10 Y Y 1 F N +F0 "X" -200 250 50 H V L CNN +F1 "DGOF5S3" 50 -250 50 H V L CNN +F2 "Oscillators:Oscillator_DIP-14" 450 -350 50 H I C CNN +F3 "" -100 0 50 H I C CNN +ALIAS ACO-xxxMHz GTXO-S14T TCXO-14 +$FPLIST + Oscillator*DIP*14* +$ENDFPLIST +DRAW +S -200 200 200 -200 0 1 10 f +P 9 0 1 0 -100 -25 -75 -25 -75 25 -50 25 -50 -25 -25 -25 -25 25 0 25 0 -25 N +X NC 1 -300 0 100 R 50 50 1 1 N N +X GND 7 0 -300 100 U 50 50 1 1 W +X OUT 8 300 0 100 L 50 50 1 1 O +X Vcc 14 0 300 100 D 50 50 1 1 W +ENDDRAW +ENDDEF +# +# GND +# +DEF GND #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -250 50 H I C CNN +F1 "GND" 0 -150 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N +X GND 1 0 0 0 D 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# Jumper_NC_Dual +# +DEF Jumper_NC_Dual JP 0 30 Y N 1 F N +F0 "JP" 50 -100 50 H V L CNN +F1 "Jumper_NC_Dual" 0 100 50 H V C BNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +A -60 10 64 386 1413 0 1 0 N -10 50 -110 50 +A 60 10 64 386 1413 0 1 0 N 110 50 10 50 +C -120 0 35 0 1 0 N +C 0 0 36 0 1 0 N +C 120 0 35 0 1 0 N +X 1 1 -250 0 95 R 50 50 0 1 P +X 2 2 0 -100 60 U 50 50 0 1 P +X 3 3 250 0 95 L 50 50 0 1 P +ENDDRAW +ENDDEF +# +# Jumper_NO_Small +# +DEF Jumper_NO_Small JP 0 30 N N 1 F N +F0 "JP" 0 80 50 H V C CNN +F1 "Jumper_NO_Small" 10 -60 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +C -40 0 20 0 1 0 N +C 40 0 20 0 1 0 N +X 1 1 -100 0 40 R 50 50 0 1 P +X 2 2 100 0 40 L 50 50 0 1 P +ENDDRAW +ENDDEF +# +# LM386 +# +DEF LM386 U 0 10 Y Y 1 F N +F0 "U" 50 300 50 H V L CNN +F1 "LM386" 50 200 50 H V L CNN +F2 "" 100 100 50 H I C CNN +F3 "" 200 200 50 H I C CNN +$FPLIST + SOIC*3.9x4.9mm*Pitch1.27mm* + DIP*W7.62mm* + MSSOP*Pitch0.65mm* +$ENDFPLIST +DRAW +P 2 0 1 6 0 -150 0 -100 N +P 2 0 1 6 0 150 0 100 N +P 3 0 1 6 100 -150 100 -125 50 -75 N +P 4 0 1 10 200 0 -200 200 -200 -200 200 0 f +X ~ 1 0 -300 150 U 50 50 1 1 I +X - 2 -300 -100 100 R 50 50 1 1 I +X + 3 -300 100 100 R 50 50 1 1 I +X Gnd 4 -100 -300 150 U 50 50 1 1 W +X ~ 5 300 0 100 L 50 50 1 1 O +X V+ 6 -100 300 150 D 50 50 1 1 W +X ~ 7 0 300 150 D 50 50 1 1 I +X ~ 8 100 -300 150 U 50 50 1 1 I +ENDDRAW +ENDDEF +# +# POT +# +DEF POT RV 0 40 N N 1 F N +F0 "RV" -175 0 50 V V C CNN +F1 "POT" -100 0 50 V V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Potentiometer* +$ENDFPLIST +DRAW +S 40 100 -40 -100 0 1 10 N +P 2 0 1 0 100 0 60 0 N +P 3 0 1 0 45 0 90 20 90 -20 F +X 1 1 0 150 50 D 50 50 1 1 P +X 2 2 150 0 50 L 50 50 1 1 P +X 3 3 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# R +# +DEF R R 0 0 N Y 1 F N +F0 "R" 80 0 50 V V C CNN +F1 "R" 0 0 50 V V C CNN +F2 "" -70 0 50 V I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + R_* + R_* +$ENDFPLIST +DRAW +S -40 -100 40 100 0 1 10 N +X ~ 1 0 150 50 D 50 50 1 1 P +X ~ 2 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# RC6502_Backplane +# +DEF RC6502_Backplane J 0 40 Y N 1 F N +F0 "J" 0 2000 50 H V C CNN +F1 "RC6502_Backplane" 450 -50 50 V V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Pin_Header_Straight_1X* + Pin_Header_Angled_1X* + Socket_Strip_Straight_1X* + Socket_Strip_Angled_1X* +$ENDFPLIST +DRAW +T 0 100 400 60 0 0 0 A0 Normal 0 L C +T 0 100 500 60 0 0 0 A1 Normal 0 L C +T 0 100 1400 60 0 0 0 A10 Normal 0 L C +T 0 100 1500 60 0 0 0 A11 Normal 0 L C +T 0 100 1600 60 0 0 0 A12 Normal 0 L C +T 0 100 1700 60 0 0 0 A13 Normal 0 L C +T 0 100 1800 60 0 0 0 A14 Normal 0 L C +T 0 100 1900 60 0 0 0 A15 Normal 0 L C +T 0 100 600 60 0 0 0 A2 Normal 0 L C +T 0 100 700 60 0 0 0 A3 Normal 0 L C +T 0 100 800 60 0 0 0 A4 Normal 0 L C +T 0 100 900 60 0 0 0 A5 Normal 0 L C +T 0 100 1000 60 0 0 0 A6 Normal 0 L C +T 0 100 1100 60 0 0 0 A7 Normal 0 L C +T 0 100 1200 60 0 0 0 A8 Normal 0 L C +T 0 100 1300 60 0 0 0 A9 Normal 0 L C +T 0 100 -700 60 0 0 0 D0 Normal 0 L C +T 0 100 -800 60 0 0 0 D1 Normal 0 L C +T 0 100 -900 60 0 0 0 D2 Normal 0 L C +T 0 100 -1000 60 0 0 0 D3 Normal 0 L C +T 0 100 -1100 60 0 0 0 D4 Normal 0 L C +T 0 100 -1200 60 0 0 0 D5 Normal 0 L C +T 0 100 -1300 60 0 0 0 D6 Normal 0 L C +T 0 100 -1400 60 0 0 0 D7 Normal 0 L C +T 0 100 300 60 0 0 0 GND Normal 0 L C +T 0 100 -200 60 0 0 0 IRQ Normal 0 L C +T 0 100 -1700 60 0 0 0 NMI Normal 0 L C +T 0 100 -100 60 0 0 0 PHI0 Normal 0 L C +T 0 100 100 60 0 0 0 PHI2 Normal 0 L C +T 0 100 -500 60 0 0 0 RDY Normal 0 L C +T 0 100 0 60 0 0 0 RESET Normal 0 L C +T 0 100 -400 60 0 0 0 RW Normal 0 L C +T 0 100 -1600 60 0 0 0 RX Normal 0 L C +T 0 100 -600 60 0 0 0 SYNC Normal 0 L C +T 0 100 -1500 60 0 0 0 TX Normal 0 L C +T 0 100 200 60 0 0 0 VCC Normal 0 L C +S -50 -1950 50 1950 0 1 0 N +S -50 -1895 10 -1905 0 1 0 N +S -50 -1795 10 -1805 0 1 0 N +S -50 -1695 10 -1705 0 1 0 N +S -50 -1595 10 -1605 0 1 0 N +S -50 -1495 10 -1505 0 1 0 N +S -50 -1395 10 -1405 0 1 0 N +S -50 -1295 10 -1305 0 1 0 N +S -50 -1195 10 -1205 0 1 0 N +S -50 -1095 10 -1105 0 1 0 N +S -50 -995 10 -1005 0 1 0 N +S -50 -895 10 -905 0 1 0 N +S -50 -795 10 -805 0 1 0 N +S -50 -695 10 -705 0 1 0 N +S -50 -595 10 -605 0 1 0 N +S -50 -495 10 -505 0 1 0 N +S -50 -395 10 -405 0 1 0 N +S -50 -295 10 -305 0 1 0 N +S -50 -195 10 -205 0 1 0 N +S -50 -95 10 -105 0 1 0 N +S -50 5 10 -5 0 1 0 N +S -50 105 10 95 0 1 0 N +S -50 205 10 195 0 1 0 N +S -50 305 10 295 0 1 0 N +S -50 405 10 395 0 1 0 N +S -50 505 10 495 0 1 0 N +S -50 605 10 595 0 1 0 N +S -50 705 10 695 0 1 0 N +S -50 805 10 795 0 1 0 N +S -50 905 10 895 0 1 0 N +S -50 1005 10 995 0 1 0 N +S -50 1105 10 1095 0 1 0 N +S -50 1205 10 1195 0 1 0 N +S -50 1305 10 1295 0 1 0 N +S -50 1405 10 1395 0 1 0 N +S -50 1505 10 1495 0 1 0 N +S -50 1605 10 1595 0 1 0 N +S -50 1705 10 1695 0 1 0 N +S -50 1805 10 1795 0 1 0 N +S -50 1905 10 1895 0 1 0 N +X A15 1 -200 1900 150 R 50 50 1 1 B +X A14 2 -200 1800 150 R 50 50 1 1 B +X A13 3 -200 1700 150 R 50 50 1 1 B +X A12 4 -200 1600 150 R 50 50 1 1 B +X A11 5 -200 1500 150 R 50 50 1 1 B +X A10 6 -200 1400 150 R 50 50 1 1 B +X A9 7 -200 1300 150 R 50 50 1 1 B +X A8 8 -200 1200 150 R 50 50 1 1 B +X A7 9 -200 1100 150 R 50 50 1 1 B +X A6 10 -200 1000 150 R 50 50 1 1 B +X RESET 20 -200 0 150 R 50 50 1 1 B +X D3 30 -200 -1000 150 R 50 50 1 1 B +X A5 11 -200 900 150 R 50 50 1 1 B +X PHI0 21 -200 -100 150 R 50 50 1 1 B C +X D4 31 -200 -1100 150 R 50 50 1 1 B +X A4 12 -200 800 150 R 50 50 1 1 B +X IRQ 22 -200 -200 150 R 50 50 1 1 B +X D5 32 -200 -1200 150 R 50 50 1 1 B +X A3 13 -200 700 150 R 50 50 1 1 B +X P23 23 -200 -300 150 R 50 50 1 1 N +X D6 33 -200 -1300 150 R 50 50 1 1 B +X A2 14 -200 600 150 R 50 50 1 1 B +X RW 24 -200 -400 150 R 50 50 1 1 B +X D7 34 -200 -1400 150 R 50 50 1 1 B +X A1 15 -200 500 150 R 50 50 1 1 B +X READY 25 -200 -500 150 R 50 50 1 1 B +X TX 35 -200 -1500 150 R 50 50 1 1 B +X A0 16 -200 400 150 R 50 50 1 1 B +X SYNC 26 -200 -600 150 R 50 50 1 1 B +X RX 36 -200 -1600 150 R 50 50 1 1 B +X P17 17 -200 300 150 R 50 50 1 1 w +X D0 27 -200 -700 150 R 50 50 1 1 B +X NMI 37 -200 -1700 150 R 50 50 1 1 B +X P18 18 -200 200 150 R 50 50 1 1 w +X D1 28 -200 -800 150 R 50 50 1 1 B +X P38 38 -200 -1800 150 R 50 50 1 1 N +X PHI2 19 -200 100 150 R 50 50 1 1 B C +X D2 29 -200 -900 150 R 50 50 1 1 B +X P39 39 -200 -1900 150 R 50 50 1 1 N +ENDDRAW +ENDDEF +# +# SN76489AN +# +DEF SN76489AN U 0 40 Y Y 1 F N +F0 "U" 0 -500 50 H V C CNN +F1 "SN76489AN" 0 0 50 V V C CNN +F2 "MODULE" 0 650 50 H I C CNN +F3 "DOCUMENTATION" 0 -650 50 H I C CNN +DRAW +S -450 -550 450 550 1 0 0 N +X ~WE 5 -750 -50 300 R 50 50 1 0 I +X D2 1 -750 350 300 R 50 50 1 1 I +X D1 2 -750 250 300 R 50 50 1 1 I +X D0 3 -750 150 300 R 50 50 1 1 I +X READY 4 -750 50 300 R 50 50 1 1 O +X ~CE 6 -750 -150 300 R 50 50 1 1 I +X SND 7 -750 -250 300 R 50 50 1 1 O +X GND 8 -750 -350 300 R 50 50 1 1 W +X NC 9 750 350 300 L 50 50 1 1 I +X D7 10 750 250 300 L 50 50 1 1 I +X D6 11 750 150 300 L 50 50 1 1 I +X D5 12 750 50 300 L 50 50 1 1 I +X D4 13 750 -50 300 L 50 50 1 1 I +X CLOCK 14 750 -150 300 L 50 50 1 1 I +X D3 15 750 -250 300 L 50 50 1 1 I +X VCC 16 750 -350 300 L 50 50 1 1 W +ENDDRAW +ENDDEF +# +# Speaker +# +DEF Speaker LS 0 0 Y N 1 F N +F0 "LS" 50 225 50 H V R CNN +F1 "Speaker" 50 150 50 H V R CNN +F2 "" 0 -200 50 H I C CNN +F3 "" -10 -50 50 H I C CNN +DRAW +S -100 50 40 -150 0 0 10 N +P 4 0 0 10 40 50 140 150 140 -250 40 -150 N +X 1 1 -200 0 100 R 50 50 1 1 I +X 2 2 -200 -100 100 R 50 50 1 1 I +ENDDRAW +ENDDEF +# +# VCC +# +DEF VCC #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -150 50 H I C CNN +F1 "VCC" 0 150 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +C 0 75 25 0 1 0 N +P 2 0 1 0 0 0 0 50 N +X VCC 1 0 0 0 U 50 50 1 1 W N +ENDDRAW +ENDDEF +# +#End Library diff --git a/RC6502 PSG/RC6502 PSG.kicad_pcb b/RC6502 PSG/RC6502 PSG.kicad_pcb new file mode 100644 index 0000000..02c8ecb --- /dev/null +++ b/RC6502 PSG/RC6502 PSG.kicad_pcb @@ -0,0 +1 @@ +(kicad_pcb (version 4) (host kicad "dummy file") ) diff --git a/RC6502 PSG/RC6502 PSG.net b/RC6502 PSG/RC6502 PSG.net new file mode 100644 index 0000000..42d26de --- /dev/null +++ b/RC6502 PSG/RC6502 PSG.net @@ -0,0 +1,720 @@ +(export (version D) + (design + (source "D:/ownCloud/Documents/Projects/RC6502/RC6502 PSG/RC6502 PSG.sch") + (date "26/12/2018 14:40:03") + (tool "Eeschema 4.0.7") + (sheet (number 1) (name /) (tstamps /) + (title_block + (title) + (company) + (rev) + (date) + (source "RC6502 PSG.sch") + (comment (number 1) (value "")) + (comment (number 2) (value "")) + (comment (number 3) (value "")) + (comment (number 4) (value ""))))) + (components + (comp (ref J4) + (value RC6502_Backplane) + (footprint Pin_Headers:Pin_Header_Angled_1x39_Pitch2.54mm) + (libsource (lib rc6502_backplane) (part RC6502_Backplane)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C225E9D)) + (comp (ref U4) + (value 74LS138) + (footprint Housings_DIP:DIP-16_W7.62mm) + (libsource (lib 74xx) (part 74LS138)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C225F79)) + (comp (ref U3) + (value 74LS138) + (footprint Housings_DIP:DIP-16_W7.62mm) + (libsource (lib 74xx) (part 74LS138)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C225FA2)) + (comp (ref J3) + (value Base) + (footprint Pin_Headers:Pin_Header_Straight_2x08_Pitch2.54mm) + (libsource (lib conn) (part Conn_02x08_Odd_Even)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C226011)) + (comp (ref J2) + (value Port) + (footprint Pin_Headers:Pin_Header_Straight_2x08_Pitch2.54mm) + (libsource (lib conn) (part Conn_02x08_Odd_Even)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22CCC7)) + (comp (ref U5) + (value SN76489AN) + (footprint Housings_DIP:DIP-16_W7.62mm_Socket) + (datasheet DOCUMENTATION) + (libsource (lib SN76489AN) (part SN76489AN)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22D784)) + (comp (ref X1) + (value TCXO-14) + (footprint Oscillators:Oscillator_DIP-14) + (libsource (lib Oscillators) (part TCXO-14)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22E816)) + (comp (ref U1) + (value LM386) + (footprint Housings_DIP:DIP-8_W7.62mm_Socket) + (libsource (lib linear) (part LM386)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22EC62)) + (comp (ref C2) + (value 470nF) + (footprint Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm) + (libsource (lib device) (part C)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22ECA0)) + (comp (ref C1) + (value 100nF) + (footprint Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm) + (libsource (lib device) (part C)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22F3EF)) + (comp (ref C4) + (value 100nF) + (footprint Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm) + (libsource (lib device) (part C)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22F577)) + (comp (ref C3) + (value 100uF) + (footprint Capacitors_THT:CP_Radial_D4.0mm_P2.00mm) + (libsource (lib device) (part CP)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22F68D)) + (comp (ref C5) + (value 10uF) + (footprint Capacitors_THT:CP_Radial_Tantal_D5.0mm_P5.00mm) + (libsource (lib device) (part CP)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22FDDA)) + (comp (ref RV2) + (value 10K) + (footprint Potentiometers:Potentiometer_Trimmer_Bourns_3296W) + (libsource (lib device) (part POT)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C22FF68)) + (comp (ref C6) + (value 10uF) + (footprint Capacitors_THT:CP_Radial_Tantal_D5.0mm_P5.00mm) + (libsource (lib device) (part CP)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C2305EC)) + (comp (ref R1) + (value 10k) + (footprint Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal) + (libsource (lib device) (part R)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C2306BB)) + (comp (ref RV1) + (value 10K) + (footprint Potentiometers:Potentiometer_Trimmer_Bourns_3296W) + (libsource (lib device) (part POT)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C230B68)) + (comp (ref C7) + (value 100nF) + (footprint Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm) + (libsource (lib device) (part C)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C231784)) + (comp (ref R3) + (value 10) + (footprint Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal) + (libsource (lib device) (part R)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C2318E6)) + (comp (ref C8) + (value 1000uF) + (footprint Capacitors_THT:CP_Radial_D8.0mm_P3.80mm) + (libsource (lib device) (part CP)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C231F73)) + (comp (ref J1) + (value Out) + (footprint Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm) + (libsource (lib conn) (part Audio-Jack-3)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C233E8D)) + (comp (ref JP1) + (value CLK_SEL) + (footprint Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm) + (libsource (lib device) (part Jumper_NC_Dual)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C235BBC)) + (comp (ref R2) + (value 4k7) + (footprint Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal) + (libsource (lib device) (part R)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C2374DE)) + (comp (ref U2) + (value 74LS373) + (footprint Housings_DIP:DIP-20_W7.62mm) + (libsource (lib 74xx) (part 74LS373)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C237A24)) + (comp (ref LS1) + (value Speaker) + (footprint Buzzers_Beepers:Buzzer_12x9.5RM7.6) + (libsource (lib device) (part Speaker)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C23AA18)) + (comp (ref JP2) + (value SPKR_EN) + (footprint Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm) + (libsource (lib device) (part Jumper_NO_Small)) + (sheetpath (names /) (tstamps /)) + (tstamp 5C23C542))) + (libparts + (libpart (lib 74xx) (part 74LS138) + (description "Decoder 3 to 8 (active low outputs)") + (fields + (field (name Reference) U) + (field (name Value) 74LS138)) + (pins + (pin (num 1) (name A0) (type input)) + (pin (num 2) (name A1) (type input)) + (pin (num 3) (name A2) (type input)) + (pin (num 4) (name E1) (type input)) + (pin (num 5) (name E2) (type input)) + (pin (num 6) (name E3) (type input)) + (pin (num 7) (name O7) (type output)) + (pin (num 8) (name GND) (type power_in)) + (pin (num 9) (name O6) (type output)) + (pin (num 10) (name O5) (type output)) + (pin (num 11) (name O4) (type output)) + (pin (num 12) (name O3) (type output)) + (pin (num 13) (name O2) (type output)) + (pin (num 14) (name O1) (type output)) + (pin (num 15) (name O0) (type output)) + (pin (num 16) (name VCC) (type power_in)))) + (libpart (lib 74xx) (part 74LS373) + (description "8 bits Latch, 3 state Out") + (fields + (field (name Reference) U) + (field (name Value) 74LS373)) + (pins + (pin (num 1) (name OE) (type input)) + (pin (num 2) (name O0) (type 3state)) + (pin (num 3) (name D0) (type input)) + (pin (num 4) (name D1) (type input)) + (pin (num 5) (name O1) (type 3state)) + (pin (num 6) (name O2) (type 3state)) + (pin (num 7) (name D2) (type input)) + (pin (num 8) (name D3) (type input)) + (pin (num 9) (name O3) (type 3state)) + (pin (num 10) (name GND) (type power_in)) + (pin (num 11) (name LE) (type input)) + (pin (num 12) (name O4) (type 3state)) + (pin (num 13) (name D4) (type input)) + (pin (num 14) (name D5) (type input)) + (pin (num 15) (name O5) (type 3state)) + (pin (num 16) (name O6) (type 3state)) + (pin (num 17) (name D6) (type input)) + (pin (num 18) (name D7) (type input)) + (pin (num 19) (name O7) (type 3state)) + (pin (num 20) (name VCC) (type power_in)))) + (libpart (lib conn) (part Audio-Jack-3) + (description "3-pin audio jack receptable (stereo/TRS connector)") + (docs ~) + (fields + (field (name Reference) J) + (field (name Value) Audio-Jack-3)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)) + (pin (num 3) (name ~) (type passive)))) + (libpart (lib device) (part C) + (description "Unpolarized capacitor") + (footprints + (fp C_*)) + (fields + (field (name Reference) C) + (field (name Value) C)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib device) (part CP) + (description "Polarised capacitor") + (footprints + (fp CP_*)) + (fields + (field (name Reference) C) + (field (name Value) CP)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib conn) (part Conn_02x08_Odd_Even) + (description "Generic connector, double row, 02x08, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers)") + (docs ~) + (footprints + (fp Connector*:*2x??x*mm*) + (fp Connector*:*2x???Pitch*) + (fp Pin_Header_Straight_2X*) + (fp Pin_Header_Angled_2X*) + (fp Socket_Strip_Straight_2X*) + (fp Socket_Strip_Angled_2X*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_02x08_Odd_Even)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)) + (pin (num 3) (name Pin_3) (type passive)) + (pin (num 4) (name Pin_4) (type passive)) + (pin (num 5) (name Pin_5) (type passive)) + (pin (num 6) (name Pin_6) (type passive)) + (pin (num 7) (name Pin_7) (type passive)) + (pin (num 8) (name Pin_8) (type passive)) + (pin (num 9) (name Pin_9) (type passive)) + (pin (num 10) (name Pin_10) (type passive)) + (pin (num 11) (name Pin_11) (type passive)) + (pin (num 12) (name Pin_12) (type passive)) + (pin (num 13) (name Pin_13) (type passive)) + (pin (num 14) (name Pin_14) (type passive)) + (pin (num 15) (name Pin_15) (type passive)) + (pin (num 16) (name Pin_16) (type passive)))) + (libpart (lib Oscillators) (part DGOF5S3) + (aliases + (alias ACO-xxxMHz) + (alias GTXO-S14T) + (alias TCXO-14)) + (description "HCMOS Crystal Clock Oscillator, DIP14-style metal package") + (docs http://www.conwin.com/datasheets/cx/cx030.pdf) + (footprints + (fp Oscillator*DIP*14*)) + (fields + (field (name Reference) X) + (field (name Value) DGOF5S3) + (field (name Footprint) Oscillators:Oscillator_DIP-14)) + (pins + (pin (num 1) (name NC) (type NotConnected)) + (pin (num 7) (name GND) (type power_in)) + (pin (num 8) (name OUT) (type output)) + (pin (num 14) (name Vcc) (type power_in)))) + (libpart (lib device) (part Jumper_NC_Dual) + (description "Dual Jumper, normally closed") + (fields + (field (name Reference) JP) + (field (name Value) Jumper_NC_Dual)) + (pins + (pin (num 1) (name 1) (type passive)) + (pin (num 2) (name 2) (type passive)) + (pin (num 3) (name 3) (type passive)))) + (libpart (lib device) (part Jumper_NO_Small) + (description "Jumper, normally open") + (fields + (field (name Reference) JP) + (field (name Value) Jumper_NO_Small)) + (pins + (pin (num 1) (name 1) (type passive)) + (pin (num 2) (name 2) (type passive)))) + (libpart (lib linear) (part LM386) + (description "Low Voltage Audio Power Amplifier, DIP-8/SOIC-8/SSOP-8") + (docs http://www.ti.com/lit/ds/symlink/lm386.pdf) + (footprints + (fp SOIC*3.9x4.9mm*Pitch1.27mm*) + (fp DIP*W7.62mm*) + (fp MSSOP*Pitch0.65mm*)) + (fields + (field (name Reference) U) + (field (name Value) LM386)) + (pins + (pin (num 1) (name ~) (type input)) + (pin (num 2) (name -) (type input)) + (pin (num 3) (name +) (type input)) + (pin (num 4) (name Gnd) (type power_in)) + (pin (num 5) (name ~) (type output)) + (pin (num 6) (name V+) (type power_in)) + (pin (num 7) (name ~) (type input)) + (pin (num 8) (name ~) (type input)))) + (libpart (lib device) (part POT) + (description Potentiometer) + (footprints + (fp Potentiometer*)) + (fields + (field (name Reference) RV) + (field (name Value) POT)) + (pins + (pin (num 1) (name 1) (type passive)) + (pin (num 2) (name 2) (type passive)) + (pin (num 3) (name 3) (type passive)))) + (libpart (lib device) (part R) + (description Resistor) + (footprints + (fp R_*) + (fp R_*)) + (fields + (field (name Reference) R) + (field (name Value) R)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib rc6502_backplane) (part RC6502_Backplane) + (footprints + (fp Pin_Header_Straight_1X*) + (fp Pin_Header_Angled_1X*) + (fp Socket_Strip_Straight_1X*) + (fp Socket_Strip_Angled_1X*)) + (fields + (field (name Reference) J) + (field (name Value) RC6502_Backplane)) + (pins + (pin (num 1) (name A15) (type BiDi)) + (pin (num 2) (name A14) (type BiDi)) + (pin (num 3) (name A13) (type BiDi)) + (pin (num 4) (name A12) (type BiDi)) + (pin (num 5) (name A11) (type BiDi)) + (pin (num 6) (name A10) (type BiDi)) + (pin (num 7) (name A9) (type BiDi)) + (pin (num 8) (name A8) (type BiDi)) + (pin (num 9) (name A7) (type BiDi)) + (pin (num 10) (name A6) (type BiDi)) + (pin (num 11) (name A5) (type BiDi)) + (pin (num 12) (name A4) (type BiDi)) + (pin (num 13) (name A3) (type BiDi)) + (pin (num 14) (name A2) (type BiDi)) + (pin (num 15) (name A1) (type BiDi)) + (pin (num 16) (name A0) (type BiDi)) + (pin (num 17) (name P17) (type power_out)) + (pin (num 18) (name P18) (type power_out)) + (pin (num 19) (name PHI2) (type BiDi)) + (pin (num 20) (name RESET) (type BiDi)) + (pin (num 21) (name PHI0) (type BiDi)) + (pin (num 22) (name IRQ) (type BiDi)) + (pin (num 23) (name P23) (type NotConnected)) + (pin (num 24) (name RW) (type BiDi)) + (pin (num 25) (name READY) (type BiDi)) + (pin (num 26) (name SYNC) (type BiDi)) + (pin (num 27) (name D0) (type BiDi)) + (pin (num 28) (name D1) (type BiDi)) + (pin (num 29) (name D2) (type BiDi)) + (pin (num 30) (name D3) (type BiDi)) + (pin (num 31) (name D4) (type BiDi)) + (pin (num 32) (name D5) (type BiDi)) + (pin (num 33) (name D6) (type BiDi)) + (pin (num 34) (name D7) (type BiDi)) + (pin (num 35) (name TX) (type BiDi)) + (pin (num 36) (name RX) (type BiDi)) + (pin (num 37) (name NMI) (type BiDi)) + (pin (num 38) (name P38) (type NotConnected)) + (pin (num 39) (name P39) (type NotConnected)))) + (libpart (lib SN76489AN) (part SN76489AN) + (fields + (field (name Reference) U) + (field (name Value) SN76489AN) + (field (name Footprint) MODULE) + (field (name Datasheet) DOCUMENTATION)) + (pins + (pin (num 1) (name D2) (type input)) + (pin (num 2) (name D1) (type input)) + (pin (num 3) (name D0) (type input)) + (pin (num 4) (name READY) (type output)) + (pin (num 5) (name ~WE) (type input)) + (pin (num 6) (name ~CE) (type input)) + (pin (num 7) (name SND) (type output)) + (pin (num 8) (name GND) (type power_in)) + (pin (num 9) (name NC) (type input)) + (pin (num 10) (name D7) (type input)) + (pin (num 11) (name D6) (type input)) + (pin (num 12) (name D5) (type input)) + (pin (num 13) (name D4) (type input)) + (pin (num 14) (name CLOCK) (type input)) + (pin (num 15) (name D3) (type input)) + (pin (num 16) (name VCC) (type power_in)))) + (libpart (lib device) (part Speaker) + (description "speaker ") + (fields + (field (name Reference) LS) + (field (name Value) Speaker)) + (pins + (pin (num 1) (name 1) (type input)) + (pin (num 2) (name 2) (type input))))) + (libraries + (library (logical 74xx) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library\\74xx.lib")) + (library (logical device) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library\\device.lib")) + (library (logical conn) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library\\conn.lib")) + (library (logical rc6502_backplane) + (uri D:\ownCloud\Documents\Projects\RC6502\Templates\rc6502_backplane.lib)) + (library (logical SN76489AN) + (uri "D:\\ownCloud\\Documents\\Projects\\RC6502\\RC6502 PSG\\SN76489AN.lib")) + (library (logical Oscillators) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library\\Oscillators.lib")) + (library (logical linear) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library\\linear.lib"))) + (nets + (net (code 1) (name GND) + (node (ref C6) (pin 2)) + (node (ref C2) (pin 2)) + (node (ref C2) (pin 1)) + (node (ref U1) (pin 4)) + (node (ref U1) (pin 2)) + (node (ref X1) (pin 7)) + (node (ref LS1) (pin 2)) + (node (ref C4) (pin 2)) + (node (ref C3) (pin 2)) + (node (ref U2) (pin 18)) + (node (ref U2) (pin 17)) + (node (ref U2) (pin 14)) + (node (ref U2) (pin 13)) + (node (ref U2) (pin 8)) + (node (ref U2) (pin 7)) + (node (ref U2) (pin 4)) + (node (ref U5) (pin 8)) + (node (ref U4) (pin 5)) + (node (ref U4) (pin 4)) + (node (ref U3) (pin 8)) + (node (ref RV1) (pin 3)) + (node (ref U2) (pin 10)) + (node (ref U4) (pin 8)) + (node (ref U3) (pin 5)) + (node (ref J4) (pin 17)) + (node (ref R3) (pin 2)) + (node (ref C1) (pin 1)) + (node (ref J1) (pin 3))) + (net (code 2) (name "Net-(C5-Pad1)") + (node (ref RV2) (pin 3)) + (node (ref C5) (pin 1))) + (net (code 3) (name "Net-(RV2-Pad1)") + (node (ref RV2) (pin 1))) + (net (code 4) (name "Net-(C5-Pad2)") + (node (ref U1) (pin 8)) + (node (ref C5) (pin 2))) + (net (code 5) (name "Net-(RV2-Pad2)") + (node (ref U1) (pin 1)) + (node (ref RV2) (pin 2))) + (net (code 6) (name VCC) + (node (ref R2) (pin 1)) + (node (ref U2) (pin 20)) + (node (ref C1) (pin 2)) + (node (ref J4) (pin 18)) + (node (ref U3) (pin 16)) + (node (ref U5) (pin 16)) + (node (ref C3) (pin 1)) + (node (ref C4) (pin 1)) + (node (ref U4) (pin 16)) + (node (ref U1) (pin 6)) + (node (ref X1) (pin 14))) + (net (code 7) (name "Net-(C7-Pad2)") + (node (ref C7) (pin 2)) + (node (ref C8) (pin 1)) + (node (ref U1) (pin 5))) + (net (code 8) (name "Net-(C7-Pad1)") + (node (ref C7) (pin 1)) + (node (ref R3) (pin 1))) + (net (code 9) (name "Net-(R1-Pad1)") + (node (ref U1) (pin 7)) + (node (ref R1) (pin 1))) + (net (code 10) (name Line) + (node (ref RV1) (pin 1)) + (node (ref U5) (pin 7))) + (net (code 11) (name "Net-(RV1-Pad2)") + (node (ref U1) (pin 3)) + (node (ref RV1) (pin 2))) + (net (code 12) (name "Net-(C6-Pad1)") + (node (ref R1) (pin 2)) + (node (ref C6) (pin 1))) + (net (code 13) (name WRITE) + (node (ref J2) (pin 4)) + (node (ref U5) (pin 5)) + (node (ref U5) (pin 6)) + (node (ref J2) (pin 2)) + (node (ref J2) (pin 8)) + (node (ref J2) (pin 6))) + (net (code 14) (name "Net-(X1-Pad1)") + (node (ref X1) (pin 1))) + (net (code 15) (name "Net-(U5-Pad9)") + (node (ref U5) (pin 9))) + (net (code 16) (name /D6) + (node (ref U5) (pin 11)) + (node (ref J4) (pin 33)) + (node (ref U2) (pin 16))) + (net (code 17) (name /D5) + (node (ref J4) (pin 32)) + (node (ref U2) (pin 15)) + (node (ref U5) (pin 12))) + (net (code 18) (name /D4) + (node (ref U2) (pin 12)) + (node (ref U5) (pin 13)) + (node (ref J4) (pin 31))) + (net (code 19) (name /D3) + (node (ref J4) (pin 30)) + (node (ref U2) (pin 9)) + (node (ref U5) (pin 15))) + (net (code 20) (name /D2) + (node (ref J4) (pin 29)) + (node (ref U5) (pin 1)) + (node (ref U2) (pin 6))) + (net (code 21) (name /CLK) + (node (ref U5) (pin 14)) + (node (ref JP1) (pin 2))) + (net (code 22) (name "Net-(JP2-Pad2)") + (node (ref LS1) (pin 1)) + (node (ref JP2) (pin 2))) + (net (code 23) (name /D1) + (node (ref J4) (pin 28)) + (node (ref U2) (pin 5)) + (node (ref U5) (pin 2))) + (net (code 24) (name /D0) + (node (ref U5) (pin 3)) + (node (ref U2) (pin 2)) + (node (ref J4) (pin 27))) + (net (code 25) (name "Net-(J4-Pad16)") + (node (ref J4) (pin 16))) + (net (code 26) (name "Net-(J4-Pad15)") + (node (ref J4) (pin 15))) + (net (code 27) (name "Net-(J4-Pad14)") + (node (ref J4) (pin 14))) + (net (code 28) (name "Net-(J4-Pad13)") + (node (ref J4) (pin 13))) + (net (code 29) (name "Net-(J4-Pad12)") + (node (ref J4) (pin 12))) + (net (code 30) (name "Net-(J4-Pad11)") + (node (ref J4) (pin 11))) + (net (code 31) (name "Net-(J4-Pad10)") + (node (ref J4) (pin 10))) + (net (code 32) (name "Net-(J4-Pad9)") + (node (ref J4) (pin 9))) + (net (code 33) (name "Net-(J4-Pad8)") + (node (ref J4) (pin 8))) + (net (code 34) (name "Net-(J4-Pad7)") + (node (ref J4) (pin 7))) + (net (code 35) (name "Net-(J1-Pad2)") + (node (ref J1) (pin 2))) + (net (code 36) (name "Net-(C8-Pad2)") + (node (ref J1) (pin 1)) + (node (ref JP2) (pin 1)) + (node (ref C8) (pin 2))) + (net (code 37) (name /Phi0) + (node (ref JP1) (pin 3)) + (node (ref J4) (pin 21))) + (net (code 38) (name "Net-(JP1-Pad1)") + (node (ref JP1) (pin 1)) + (node (ref X1) (pin 8))) + (net (code 39) (name READ) + (node (ref J2) (pin 10)) + (node (ref J2) (pin 12)) + (node (ref J2) (pin 14)) + (node (ref J2) (pin 16)) + (node (ref U2) (pin 11)) + (node (ref U2) (pin 1))) + (net (code 40) (name READY) + (node (ref U5) (pin 4)) + (node (ref U2) (pin 3)) + (node (ref R2) (pin 2))) + (net (code 41) (name /A13) + (node (ref U4) (pin 2)) + (node (ref J4) (pin 3))) + (net (code 42) (name /A14) + (node (ref U4) (pin 3)) + (node (ref J4) (pin 2))) + (net (code 43) (name /A15) + (node (ref U4) (pin 6)) + (node (ref J4) (pin 1))) + (net (code 44) (name "Net-(J3-Pad15)") + (node (ref J3) (pin 15)) + (node (ref U4) (pin 7))) + (net (code 45) (name "Net-(J3-Pad13)") + (node (ref U4) (pin 9)) + (node (ref J3) (pin 13))) + (net (code 46) (name "Net-(J3-Pad11)") + (node (ref U4) (pin 10)) + (node (ref J3) (pin 11))) + (net (code 47) (name "Net-(J3-Pad9)") + (node (ref J3) (pin 9)) + (node (ref U4) (pin 11))) + (net (code 48) (name "Net-(J3-Pad7)") + (node (ref J3) (pin 7)) + (node (ref U4) (pin 12))) + (net (code 49) (name "Net-(J3-Pad5)") + (node (ref U4) (pin 13)) + (node (ref J3) (pin 5))) + (net (code 50) (name /A10) + (node (ref J4) (pin 6)) + (node (ref U3) (pin 1))) + (net (code 51) (name "Net-(J3-Pad3)") + (node (ref J3) (pin 3)) + (node (ref U4) (pin 14))) + (net (code 52) (name "Net-(J3-Pad1)") + (node (ref J3) (pin 1)) + (node (ref U4) (pin 15))) + (net (code 53) (name "Net-(J2-Pad1)") + (node (ref U3) (pin 15)) + (node (ref J2) (pin 1))) + (net (code 54) (name "Net-(J2-Pad3)") + (node (ref U3) (pin 14)) + (node (ref J2) (pin 3))) + (net (code 55) (name "Net-(J2-Pad5)") + (node (ref J2) (pin 5)) + (node (ref U3) (pin 13))) + (net (code 56) (name "Net-(J2-Pad7)") + (node (ref J2) (pin 7)) + (node (ref U3) (pin 12))) + (net (code 57) (name "Net-(J2-Pad9)") + (node (ref U3) (pin 11)) + (node (ref J2) (pin 9))) + (net (code 58) (name "Net-(J2-Pad11)") + (node (ref U3) (pin 10)) + (node (ref J2) (pin 11))) + (net (code 59) (name "Net-(J2-Pad13)") + (node (ref U3) (pin 9)) + (node (ref J2) (pin 13))) + (net (code 60) (name "Net-(J2-Pad15)") + (node (ref U3) (pin 7)) + (node (ref J2) (pin 15))) + (net (code 61) (name /Phi2) + (node (ref J4) (pin 19)) + (node (ref U3) (pin 6))) + (net (code 62) (name /A12) + (node (ref U4) (pin 1)) + (node (ref J4) (pin 4))) + (net (code 63) (name "Net-(J4-Pad36)") + (node (ref J4) (pin 36))) + (net (code 64) (name "Net-(J4-Pad26)") + (node (ref J4) (pin 26))) + (net (code 65) (name "Net-(J4-Pad35)") + (node (ref J4) (pin 35))) + (net (code 66) (name "Net-(J4-Pad25)") + (node (ref J4) (pin 25))) + (net (code 67) (name "Net-(J4-Pad23)") + (node (ref J4) (pin 23))) + (net (code 68) (name "Net-(J4-Pad22)") + (node (ref J4) (pin 22))) + (net (code 69) (name "Net-(J4-Pad20)") + (node (ref J4) (pin 20))) + (net (code 70) (name "Net-(J3-Pad10)") + (node (ref U3) (pin 4)) + (node (ref J3) (pin 2)) + (node (ref J3) (pin 6)) + (node (ref J3) (pin 8)) + (node (ref J3) (pin 10)) + (node (ref J3) (pin 12)) + (node (ref J3) (pin 14)) + (node (ref J3) (pin 16)) + (node (ref J3) (pin 4))) + (net (code 71) (name /R/~W) + (node (ref U3) (pin 3)) + (node (ref J4) (pin 24))) + (net (code 72) (name /A11) + (node (ref J4) (pin 5)) + (node (ref U3) (pin 2))) + (net (code 73) (name "Net-(J4-Pad39)") + (node (ref J4) (pin 39))) + (net (code 74) (name "Net-(J4-Pad38)") + (node (ref J4) (pin 38))) + (net (code 75) (name "Net-(J4-Pad37)") + (node (ref J4) (pin 37))) + (net (code 76) (name /D7) + (node (ref U2) (pin 19)) + (node (ref U5) (pin 10)) + (node (ref J4) (pin 34))))) \ No newline at end of file diff --git a/RC6502 PSG/RC6502 PSG.pro b/RC6502 PSG/RC6502 PSG.pro new file mode 100644 index 0000000..d74d87a --- /dev/null +++ b/RC6502 PSG/RC6502 PSG.pro @@ -0,0 +1,76 @@ +update=26/12/2018 14:40:18 +version=1 +last_client=kicad +[pcbnew] +version=1 +LastNetListRead= +UseCmpFile=1 +PadDrill=0.600000000000 +PadDrillOvalY=0.600000000000 +PadSizeH=1.500000000000 +PadSizeV=1.500000000000 +PcbTextSizeV=1.500000000000 +PcbTextSizeH=1.500000000000 +PcbTextThickness=0.300000000000 +ModuleTextSizeV=1.000000000000 +ModuleTextSizeH=1.000000000000 +ModuleTextSizeThickness=0.150000000000 +SolderMaskClearance=0.000000000000 +SolderMaskMinWidth=0.000000000000 +DrawSegmentWidth=0.200000000000 +BoardOutlineThickness=0.100000000000 +ModuleOutlineThickness=0.150000000000 +[cvpcb] +version=1 +NetIExt=net +[general] +version=1 +[eeschema] +version=1 +LibDir= +[eeschema/libraries] +LibName1=power +LibName2=device +LibName3=switches +LibName4=relays +LibName5=motors +LibName6=transistors +LibName7=conn +LibName8=linear +LibName9=regul +LibName10=74xx +LibName11=cmos4000 +LibName12=adc-dac +LibName13=memory +LibName14=xilinx +LibName15=microcontrollers +LibName16=dsp +LibName17=microchip +LibName18=analog_switches +LibName19=motorola +LibName20=texas +LibName21=intel +LibName22=audio +LibName23=interface +LibName24=digital-audio +LibName25=philips +LibName26=display +LibName27=cypress +LibName28=siliconi +LibName29=opto +LibName30=atmel +LibName31=contrib +LibName32=valves +LibName33=D:/ownCloud/Documents/Projects/RC6502/Templates/rc6502_backplane +LibName34=SN76489AN +LibName35=C:/Program Files/KiCad/share/kicad/library/Oscillators +[schematic_editor] +version=1 +PageLayoutDescrFile= +PlotDirectoryName=export +SubpartIdSeparator=0 +SubpartFirstId=65 +NetFmtName=Pcbnew +SpiceForceRefPrefix=0 +SpiceUseNetNumbers=0 +LabSize=60 diff --git a/RC6502 PSG/RC6502 PSG.sch b/RC6502 PSG/RC6502 PSG.sch new file mode 100644 index 0000000..4b2e399 --- /dev/null +++ b/RC6502 PSG/RC6502 PSG.sch @@ -0,0 +1,1120 @@ +EESchema Schematic File Version 2 +LIBS:power +LIBS:device +LIBS:switches +LIBS:relays +LIBS:motors +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:rc6502_backplane +LIBS:SN76489AN +LIBS:Oscillators +LIBS:RC6502 PSG-cache +EELAYER 25 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L RC6502_Backplane J4 +U 1 1 5C225E9D +P 10625 4450 +F 0 "J4" H 10625 6450 50 0000 C CNN +F 1 "RC6502_Backplane" V 11075 4400 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Angled_1x39_Pitch2.54mm" H 10625 4450 50 0001 C CNN +F 3 "" H 10625 4450 50 0001 C CNN + 1 10625 4450 + 1 0 0 -1 +$EndComp +$Comp +L 74LS138 U4 +U 1 1 5C225F79 +P 8100 2200 +F 0 "U4" H 8200 2700 50 0000 C CNN +F 1 "74LS138" H 8250 1651 50 0000 C CNN +F 2 "Housings_DIP:DIP-16_W7.62mm" H 8100 2200 50 0001 C CNN +F 3 "" H 8100 2200 50 0001 C CNN + 1 8100 2200 + 0 -1 -1 0 +$EndComp +$Comp +L 74LS138 U3 +U 1 1 5C225FA2 +P 6725 2200 +F 0 "U3" H 6825 2700 50 0000 C CNN +F 1 "74LS138" H 6875 1651 50 0000 C CNN +F 2 "Housings_DIP:DIP-16_W7.62mm" H 6725 2200 50 0001 C CNN +F 3 "" H 6725 2200 50 0001 C CNN + 1 6725 2200 + 0 -1 -1 0 +$EndComp +$Comp +L Conn_02x08_Odd_Even J3 +U 1 1 5C226011 +P 8050 1325 +F 0 "J3" H 8100 1725 50 0000 C CNN +F 1 "Base" H 8100 825 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_2x08_Pitch2.54mm" H 8050 1325 50 0001 C CNN +F 3 "" H 8050 1325 50 0001 C CNN + 1 8050 1325 + 0 -1 -1 0 +$EndComp +Text Label 10375 2550 2 60 ~ 0 +A15 +Text Label 10375 2650 2 60 ~ 0 +A14 +Text Label 10375 2750 2 60 ~ 0 +A13 +Text Label 10375 3050 2 60 ~ 0 +A10 +Text Label 10375 2950 2 60 ~ 0 +A11 +Text Label 10375 2850 2 60 ~ 0 +A12 +Text Label 8250 2850 3 60 ~ 0 +A15 +Text Label 7750 2850 3 60 ~ 0 +A12 +Text Label 7850 2850 3 60 ~ 0 +A13 +Text Label 7950 2850 3 60 ~ 0 +A14 +$Comp +L GND #PWR01 +U 1 1 5C22690B +P 8450 2950 +F 0 "#PWR01" H 8450 2700 50 0001 C CNN +F 1 "GND" H 8450 2800 50 0000 C CNN +F 2 "" H 8450 2950 50 0001 C CNN +F 3 "" H 8450 2950 50 0001 C CNN + 1 8450 2950 + 1 0 0 -1 +$EndComp +Text Label 6375 2850 3 60 ~ 0 +A10 +Text Label 6475 2850 3 60 ~ 0 +A11 +Text Label 10375 4350 2 60 ~ 0 +Phi2 +Text Label 10375 4850 2 60 ~ 0 +R/~W +Text Label 6575 2850 3 60 ~ 0 +R/~W +Text Label 6875 2850 3 60 ~ 0 +Phi2 +$Comp +L GND #PWR02 +U 1 1 5C22C222 +P 6975 2800 +F 0 "#PWR02" H 6975 2550 50 0001 C CNN +F 1 "GND" H 6975 2650 50 0000 C CNN +F 2 "" H 6975 2800 50 0001 C CNN +F 3 "" H 6975 2800 50 0001 C CNN + 1 6975 2800 + 1 0 0 -1 +$EndComp +Entry Wire Line + 6375 3150 6475 3250 +Entry Wire Line + 6475 3150 6575 3250 +Entry Wire Line + 6575 3150 6675 3250 +Entry Wire Line + 6875 3150 6975 3250 +Entry Wire Line + 7750 3150 7850 3250 +Entry Wire Line + 7850 3150 7950 3250 +Entry Wire Line + 7950 3150 8050 3250 +Entry Wire Line + 8250 3150 8350 3250 +Wire Wire Line + 7750 1600 7750 1525 +Wire Wire Line + 7850 1600 7850 1525 +Wire Wire Line + 7950 1600 7950 1525 +Wire Wire Line + 8050 1600 8050 1525 +Wire Wire Line + 8150 1600 8150 1525 +Wire Wire Line + 8250 1600 8250 1525 +Wire Wire Line + 8350 1600 8350 1525 +Wire Wire Line + 10425 2550 10075 2550 +Wire Wire Line + 10425 2650 10075 2650 +Wire Wire Line + 10425 2750 10075 2750 +Wire Wire Line + 10425 2850 10075 2850 +Wire Wire Line + 10425 2950 10075 2950 +Wire Wire Line + 10425 3050 10075 3050 +Wire Wire Line + 8450 1525 8450 1600 +Wire Wire Line + 7750 2800 7750 3150 +Wire Wire Line + 7850 2800 7850 3150 +Wire Wire Line + 7950 2800 7950 3150 +Wire Wire Line + 8250 2800 8250 3150 +Wire Wire Line + 8450 2800 8450 2950 +Wire Wire Line + 8450 2875 8350 2875 +Wire Wire Line + 8350 2875 8350 2800 +Connection ~ 8450 2875 +Wire Wire Line + 6375 2800 6375 3150 +Wire Wire Line + 6475 2800 6475 3150 +Wire Wire Line + 6575 2800 6575 3150 +Wire Wire Line + 6875 2800 6875 3150 +Wire Wire Line + 7075 2800 7075 3000 +Wire Wire Line + 8450 950 8450 1025 +Wire Wire Line + 7450 950 8450 950 +Wire Wire Line + 7450 950 7450 3000 +Wire Wire Line + 7750 1025 7750 950 +Connection ~ 7750 950 +Wire Wire Line + 7850 1025 7850 950 +Connection ~ 7850 950 +Wire Wire Line + 7950 1025 7950 950 +Connection ~ 7950 950 +Wire Wire Line + 8050 1025 8050 950 +Connection ~ 8050 950 +Wire Wire Line + 8150 1025 8150 950 +Connection ~ 8150 950 +Wire Wire Line + 8250 1025 8250 950 +Connection ~ 8250 950 +Wire Wire Line + 8350 1025 8350 950 +Connection ~ 8350 950 +Wire Wire Line + 10425 4350 10075 4350 +Wire Wire Line + 10425 4850 10075 4850 +Wire Wire Line + 7450 3000 7075 3000 +Wire Bus Line + 6475 3250 9425 3250 +Entry Wire Line + 9975 2450 10075 2550 +Entry Wire Line + 9975 2550 10075 2650 +Entry Wire Line + 9975 2650 10075 2750 +Entry Wire Line + 9975 2750 10075 2850 +Entry Wire Line + 9975 2850 10075 2950 +Entry Wire Line + 9975 2950 10075 3050 +Entry Wire Line + 9975 4250 10075 4350 +Entry Wire Line + 9975 4750 10075 4850 +Wire Wire Line + 10425 5150 10075 5150 +Entry Wire Line + 9975 5050 10075 5150 +Wire Wire Line + 10425 5250 10075 5250 +Entry Wire Line + 9975 5150 10075 5250 +Wire Wire Line + 10425 5350 10075 5350 +Entry Wire Line + 9975 5250 10075 5350 +Wire Wire Line + 10425 5450 10075 5450 +Entry Wire Line + 9975 5350 10075 5450 +Wire Wire Line + 10425 5550 10075 5550 +Entry Wire Line + 9975 5450 10075 5550 +Wire Wire Line + 10425 5650 10075 5650 +Entry Wire Line + 9975 5550 10075 5650 +Wire Wire Line + 10425 5750 10075 5750 +Entry Wire Line + 9975 5650 10075 5750 +Wire Wire Line + 10425 5850 10075 5850 +Entry Wire Line + 9975 5750 10075 5850 +NoConn ~ 10425 5950 +NoConn ~ 10425 6050 +NoConn ~ 10425 6150 +NoConn ~ 10425 4950 +NoConn ~ 10425 5050 +NoConn ~ 10425 4650 +NoConn ~ 10425 4450 +Wire Bus Line + 9975 2275 9975 5750 +Wire Bus Line + 9975 2275 9075 2275 +Wire Bus Line + 9075 2275 9075 3250 +Text Label 10375 5150 2 60 ~ 0 +D0 +Text Label 10375 5250 2 60 ~ 0 +D1 +Text Label 10375 5350 2 60 ~ 0 +D2 +Text Label 10375 5450 2 60 ~ 0 +D3 +Text Label 10375 5550 2 60 ~ 0 +D4 +Text Label 10375 5650 2 60 ~ 0 +D5 +Text Label 10375 5750 2 60 ~ 0 +D6 +Text Label 10375 5850 2 60 ~ 0 +D7 +$Comp +L Conn_02x08_Odd_Even J2 +U 1 1 5C22CCC7 +P 6675 1325 +F 0 "J2" H 6725 1725 50 0000 C CNN +F 1 "Port" H 6725 825 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_2x08_Pitch2.54mm" H 6675 1325 50 0001 C CNN +F 3 "" H 6675 1325 50 0001 C CNN + 1 6675 1325 + 0 -1 -1 0 +$EndComp +Wire Wire Line + 6375 1600 6375 1525 +Wire Wire Line + 6475 1525 6475 1600 +Wire Wire Line + 6575 1600 6575 1525 +Wire Wire Line + 6675 1525 6675 1600 +Wire Wire Line + 6775 1525 6775 1600 +Wire Wire Line + 6875 1525 6875 1600 +Wire Wire Line + 6975 1525 6975 1600 +Wire Wire Line + 7075 1600 7075 1525 +Wire Wire Line + 6375 1025 6375 950 +Wire Wire Line + 6375 950 6675 950 +Wire Wire Line + 6675 950 6675 1025 +Wire Wire Line + 6575 1025 6575 950 +Connection ~ 6575 950 +Wire Wire Line + 6475 875 6475 1025 +Connection ~ 6475 950 +Wire Wire Line + 6775 1025 6775 950 +Wire Wire Line + 6775 950 7075 950 +Wire Wire Line + 7075 950 7075 1025 +Wire Wire Line + 6975 875 6975 1025 +Connection ~ 6975 950 +Wire Wire Line + 6875 1025 6875 950 +Connection ~ 6875 950 +Text GLabel 6475 875 1 60 Output ~ 0 +WRITE +Text GLabel 6975 875 1 60 Output ~ 0 +READ +$Comp +L SN76489AN U5 +U 1 1 5C22D784 +P 8225 4175 +F 0 "U5" H 8225 3675 50 0000 C CNN +F 1 "SN76489AN" V 8225 4175 50 0000 C CNN +F 2 "Housings_DIP:DIP-16_W7.62mm_Socket" H 8225 4825 50 0001 C CNN +F 3 "DOCUMENTATION" H 8225 3525 50 0001 C CNN + 1 8225 4175 + 1 0 0 -1 +$EndComp +Wire Wire Line + 7475 3825 7125 3825 +Entry Wire Line + 7025 3725 7125 3825 +Wire Wire Line + 7475 3925 7125 3925 +Entry Wire Line + 7025 3825 7125 3925 +Wire Wire Line + 7475 4025 7125 4025 +Entry Wire Line + 7025 3925 7125 4025 +Wire Wire Line + 9325 3925 8975 3925 +Entry Wire Line + 9325 3925 9425 4025 +Wire Wire Line + 9325 4025 8975 4025 +Entry Wire Line + 9325 4025 9425 4125 +Wire Wire Line + 9325 4125 8975 4125 +Entry Wire Line + 9325 4125 9425 4225 +Wire Wire Line + 9325 4225 8975 4225 +Entry Wire Line + 9325 4225 9425 4325 +Wire Wire Line + 9325 4325 8975 4325 +Entry Wire Line + 9325 4325 9425 4425 +Text Label 7425 4025 2 60 ~ 0 +D0 +Text Label 7425 3925 2 60 ~ 0 +D1 +Text Label 7425 3825 2 60 ~ 0 +D2 +Text Label 9000 4425 0 60 ~ 0 +D3 +Text Label 9000 4225 0 60 ~ 0 +D4 +Text Label 9000 4125 0 60 ~ 0 +D5 +Text Label 9000 4025 0 60 ~ 0 +D6 +Text Label 9000 3925 0 60 ~ 0 +D7 +Wire Wire Line + 9325 4425 8975 4425 +Entry Wire Line + 9325 4425 9425 4525 +Wire Bus Line + 7025 3250 7025 3925 +Wire Bus Line + 9425 3250 9425 4525 +NoConn ~ 8975 3825 +$Comp +L GND #PWR03 +U 1 1 5C22DD10 +P 7475 4525 +F 0 "#PWR03" H 7475 4275 50 0001 C CNN +F 1 "GND" H 7475 4375 50 0000 C CNN +F 2 "" H 7475 4525 50 0001 C CNN +F 3 "" H 7475 4525 50 0001 C CNN + 1 7475 4525 + 1 0 0 -1 +$EndComp +$Comp +L VCC #PWR04 +U 1 1 5C22DD60 +P 9550 4525 +F 0 "#PWR04" H 9550 4375 50 0001 C CNN +F 1 "VCC" H 9550 4675 50 0000 C CNN +F 2 "" H 9550 4525 50 0001 C CNN +F 3 "" H 9550 4525 50 0001 C CNN + 1 9550 4525 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8975 4525 9325 4525 +Wire Wire Line + 9325 4525 9325 4625 +Wire Wire Line + 9325 4625 9550 4625 +Wire Wire Line + 9550 4625 9550 4525 +Text GLabel 7325 4225 0 60 Input ~ 0 +WRITE +Wire Wire Line + 7325 4225 7475 4225 +Wire Wire Line + 7400 4225 7400 4325 +Wire Wire Line + 7400 4325 7475 4325 +Connection ~ 7400 4225 +Text GLabel 3000 5050 0 60 Input ~ 0 +READY +Wire Wire Line + 7325 4125 7475 4125 +Wire Wire Line + 7325 4425 7475 4425 +$Comp +L GND #PWR05 +U 1 1 5C22E663 +P 6125 4550 +F 0 "#PWR05" H 6125 4300 50 0001 C CNN +F 1 "GND" H 6125 4400 50 0000 C CNN +F 2 "" H 6125 4550 50 0001 C CNN +F 3 "" H 6125 4550 50 0001 C CNN + 1 6125 4550 + 1 0 0 -1 +$EndComp +$Comp +L VCC #PWR06 +U 1 1 5C22E6B4 +P 6125 3950 +F 0 "#PWR06" H 6125 3800 50 0001 C CNN +F 1 "VCC" H 6125 4100 50 0000 C CNN +F 2 "" H 6125 3950 50 0001 C CNN +F 3 "" H 6125 3950 50 0001 C CNN + 1 6125 3950 + 1 0 0 -1 +$EndComp +$Comp +L TCXO-14 X1 +U 1 1 5C22E816 +P 6125 4250 +F 0 "X1" H 5925 4500 50 0000 L CNN +F 1 "TCXO-14" H 6175 4000 50 0000 L CNN +F 2 "Oscillators:Oscillator_DIP-14" H 6575 3900 50 0001 C CNN +F 3 "" H 6025 4250 50 0001 C CNN + 1 6125 4250 + 1 0 0 -1 +$EndComp +Entry Wire Line + 6925 3825 7025 3925 +Wire Wire Line + 6625 3825 6925 3825 +Text Label 9000 4325 0 60 ~ 0 +CLK +Text Label 6875 3825 2 60 ~ 0 +CLK +$Comp +L LM386 U1 +U 1 1 5C22EC62 +P 2200 2375 +F 0 "U1" H 2250 2675 50 0000 L CNN +F 1 "LM386" H 2250 2575 50 0000 L CNN +F 2 "Housings_DIP:DIP-8_W7.62mm_Socket" H 2300 2475 50 0001 C CNN +F 3 "" H 2400 2575 50 0001 C CNN + 1 2200 2375 + 1 0 0 -1 +$EndComp +$Comp +L C C2 +U 1 1 5C22ECA0 +P 1875 3050 +F 0 "C2" H 1900 3150 50 0000 L CNN +F 1 "470nF" H 1900 2950 50 0000 L CNN +F 2 "Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm" H 1913 2900 50 0001 C CNN +F 3 "" H 1875 3050 50 0001 C CNN + 1 1875 3050 + 0 1 1 0 +$EndComp +Wire Wire Line + 2025 3050 2100 3050 +Wire Wire Line + 2100 3250 2100 2675 +Wire Wire Line + 1725 3050 1650 3050 +Wire Wire Line + 1650 2475 1650 3250 +Wire Wire Line + 1650 2475 1900 2475 +$Comp +L GND #PWR07 +U 1 1 5C22F056 +P 1875 3325 +F 0 "#PWR07" H 1875 3075 50 0001 C CNN +F 1 "GND" H 1875 3175 50 0000 C CNN +F 2 "" H 1875 3325 50 0001 C CNN +F 3 "" H 1875 3325 50 0001 C CNN + 1 1875 3325 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1875 3325 1875 3250 +Wire Wire Line + 1650 3250 2100 3250 +Connection ~ 1650 3050 +Connection ~ 1875 3250 +Connection ~ 2100 3050 +Wire Wire Line + 2100 2825 1825 2825 +Wire Wire Line + 1825 2825 1825 2075 +Connection ~ 2100 2825 +$Comp +L C C1 +U 1 1 5C22F3EF +P 1825 1925 +F 0 "C1" H 1850 2025 50 0000 L CNN +F 1 "100nF" H 1850 1825 50 0000 L CNN +F 2 "Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm" H 1863 1775 50 0001 C CNN +F 3 "" H 1825 1925 50 0001 C CNN + 1 1825 1925 + -1 0 0 1 +$EndComp +Wire Wire Line + 1825 1775 1825 1700 +Wire Wire Line + 1825 1700 2100 1700 +Wire Wire Line + 2100 1000 2100 2075 +$Comp +L C C4 +U 1 1 5C22F577 +P 2325 1425 +F 0 "C4" H 2350 1525 50 0000 L CNN +F 1 "100nF" H 2350 1325 50 0000 L CNN +F 2 "Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm" H 2363 1275 50 0001 C CNN +F 3 "" H 2325 1425 50 0001 C CNN + 1 2325 1425 + 0 -1 -1 0 +$EndComp +$Comp +L CP C3 +U 1 1 5C22F68D +P 2325 1075 +F 0 "C3" H 2350 1175 50 0000 L CNN +F 1 "100uF" H 2350 975 50 0000 L CNN +F 2 "Capacitors_THT:CP_Radial_D4.0mm_P2.00mm" H 2363 925 50 0001 C CNN +F 3 "" H 2325 1075 50 0001 C CNN + 1 2325 1075 + 0 -1 -1 0 +$EndComp +Wire Wire Line + 2100 1075 2175 1075 +Connection ~ 2100 1700 +Wire Wire Line + 2175 1425 2100 1425 +Connection ~ 2100 1425 +Wire Wire Line + 2475 1075 2550 1075 +Wire Wire Line + 2550 1075 2550 1500 +Wire Wire Line + 2550 1425 2475 1425 +Connection ~ 2550 1425 +$Comp +L GND #PWR08 +U 1 1 5C22FA37 +P 2550 1500 +F 0 "#PWR08" H 2550 1250 50 0001 C CNN +F 1 "GND" H 2550 1350 50 0000 C CNN +F 2 "" H 2550 1500 50 0001 C CNN +F 3 "" H 2550 1500 50 0001 C CNN + 1 2550 1500 + 1 0 0 -1 +$EndComp +Connection ~ 2100 1075 +$Comp +L VCC #PWR09 +U 1 1 5C22FC2B +P 2100 1000 +F 0 "#PWR09" H 2100 850 50 0001 C CNN +F 1 "VCC" H 2100 1150 50 0000 C CNN +F 2 "" H 2100 1000 50 0001 C CNN +F 3 "" H 2100 1000 50 0001 C CNN + 1 2100 1000 + 1 0 0 -1 +$EndComp +$Comp +L CP C5 +U 1 1 5C22FDDA +P 2525 2750 +F 0 "C5" H 2550 2850 50 0000 L CNN +F 1 "10uF" H 2550 2650 50 0000 L CNN +F 2 "Capacitors_THT:CP_Radial_Tantal_D5.0mm_P5.00mm" H 2563 2600 50 0001 C CNN +F 3 "" H 2525 2750 50 0001 C CNN + 1 2525 2750 + 0 1 1 0 +$EndComp +Wire Wire Line + 2300 2675 2300 2750 +Wire Wire Line + 2300 2750 2375 2750 +$Comp +L POT RV2 +U 1 1 5C22FF68 +P 2750 3075 +F 0 "RV2" V 2575 3075 50 0000 C CNN +F 1 "10K" V 2650 3075 50 0000 C CNN +F 2 "Potentiometers:Potentiometer_Trimmer_Bourns_3296W" H 2750 3075 50 0001 C CNN +F 3 "" H 2750 3075 50 0001 C CNN + 1 2750 3075 + -1 0 0 1 +$EndComp +Wire Wire Line + 2750 2925 2750 2750 +Wire Wire Line + 2750 2750 2675 2750 +Wire Wire Line + 2200 2675 2200 3075 +Wire Wire Line + 2200 3075 2600 3075 +NoConn ~ 2750 3225 +$Comp +L CP C6 +U 1 1 5C2305EC +P 3000 2000 +F 0 "C6" H 3025 2100 50 0000 L CNN +F 1 "10uF" H 3025 1900 50 0000 L CNN +F 2 "Capacitors_THT:CP_Radial_Tantal_D5.0mm_P5.00mm" H 3038 1850 50 0001 C CNN +F 3 "" H 3000 2000 50 0001 C CNN + 1 3000 2000 + 0 -1 -1 0 +$EndComp +$Comp +L R R1 +U 1 1 5C2306BB +P 2625 2000 +F 0 "R1" V 2705 2000 50 0000 C CNN +F 1 "10k" V 2625 2000 50 0000 C CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 2555 2000 50 0001 C CNN +F 3 "" H 2625 2000 50 0001 C CNN + 1 2625 2000 + 0 -1 -1 0 +$EndComp +Wire Wire Line + 2850 2000 2775 2000 +Wire Wire Line + 2200 2000 2200 2075 +$Comp +L GND #PWR010 +U 1 1 5C2309CE +P 3225 2075 +F 0 "#PWR010" H 3225 1825 50 0001 C CNN +F 1 "GND" H 3225 1925 50 0000 C CNN +F 2 "" H 3225 2075 50 0001 C CNN +F 3 "" H 3225 2075 50 0001 C CNN + 1 3225 2075 + 1 0 0 -1 +$EndComp +$Comp +L POT RV1 +U 1 1 5C230B68 +P 1325 2275 +F 0 "RV1" V 1150 2275 50 0000 C CNN +F 1 "10K" V 1225 2275 50 0000 C CNN +F 2 "Potentiometers:Potentiometer_Trimmer_Bourns_3296W" H 1325 2275 50 0001 C CNN +F 3 "" H 1325 2275 50 0001 C CNN + 1 1325 2275 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1475 2275 1900 2275 +$Comp +L GND #PWR011 +U 1 1 5C230CD3 +P 1325 2425 +F 0 "#PWR011" H 1325 2175 50 0001 C CNN +F 1 "GND" H 1325 2275 50 0000 C CNN +F 2 "" H 1325 2425 50 0001 C CNN +F 3 "" H 1325 2425 50 0001 C CNN + 1 1325 2425 + 1 0 0 -1 +$EndComp +Text GLabel 1075 2050 0 60 Input ~ 0 +Line +Wire Wire Line + 1075 2050 1325 2050 +Wire Wire Line + 1325 2050 1325 2125 +Wire Wire Line + 2200 2000 2475 2000 +Wire Wire Line + 3225 2075 3225 2000 +Wire Wire Line + 3225 2000 3150 2000 +$Comp +L C C7 +U 1 1 5C231784 +P 3125 2600 +F 0 "C7" H 3150 2700 50 0000 L CNN +F 1 "100nF" H 3150 2500 50 0000 L CNN +F 2 "Capacitors_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm" H 3163 2450 50 0001 C CNN +F 3 "" H 3125 2600 50 0001 C CNN + 1 3125 2600 + -1 0 0 1 +$EndComp +Wire Wire Line + 3125 2450 3125 2375 +Wire Wire Line + 2500 2375 3325 2375 +$Comp +L R R3 +U 1 1 5C2318E6 +P 3125 2975 +F 0 "R3" V 3205 2975 50 0000 C CNN +F 1 "10" V 3125 2975 50 0000 C CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 3055 2975 50 0001 C CNN +F 3 "" H 3125 2975 50 0001 C CNN + 1 3125 2975 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR012 +U 1 1 5C231A31 +P 3125 3200 +F 0 "#PWR012" H 3125 2950 50 0001 C CNN +F 1 "GND" H 3125 3050 50 0000 C CNN +F 2 "" H 3125 3200 50 0001 C CNN +F 3 "" H 3125 3200 50 0001 C CNN + 1 3125 3200 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3125 3125 3125 3200 +Wire Wire Line + 3125 2825 3125 2750 +$Comp +L CP C8 +U 1 1 5C231F73 +P 3475 2375 +F 0 "C8" H 3500 2475 50 0000 L CNN +F 1 "1000uF" H 3500 2275 50 0000 L CNN +F 2 "Capacitors_THT:CP_Radial_D8.0mm_P3.80mm" H 3513 2225 50 0001 C CNN +F 3 "" H 3475 2375 50 0001 C CNN + 1 3475 2375 + 0 -1 -1 0 +$EndComp +Connection ~ 3125 2375 +Wire Wire Line + 3625 2375 3950 2375 +Text Notes 2675 3350 0 60 ~ 0 +Gain +Text Notes 1400 2400 0 60 ~ 0 +Volume +Text GLabel 7325 4425 0 60 Output ~ 0 +Line +$Comp +L Audio-Jack-3 J1 +U 1 1 5C233E8D +P 4300 1850 +F 0 "J1" H 4250 2025 50 0000 C CNN +F 1 "Out" H 4400 1780 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm" H 4550 1950 50 0001 C CNN +F 3 "" H 4550 1950 50 0001 C CNN + 1 4300 1850 + -1 0 0 1 +$EndComp +$Comp +L GND #PWR013 +U 1 1 5C234708 +P 4600 1750 +F 0 "#PWR013" H 4600 1500 50 0001 C CNN +F 1 "GND" H 4600 1600 50 0000 C CNN +F 2 "" H 4600 1750 50 0001 C CNN +F 3 "" H 4600 1750 50 0001 C CNN + 1 4600 1750 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR014 +U 1 1 5C234C2F +P 3875 2550 +F 0 "#PWR014" H 3875 2300 50 0001 C CNN +F 1 "GND" H 3875 2400 50 0000 C CNN +F 2 "" H 3875 2550 50 0001 C CNN +F 3 "" H 3875 2550 50 0001 C CNN + 1 3875 2550 + 1 0 0 -1 +$EndComp +$Comp +L Jumper_NC_Dual JP1 +U 1 1 5C235BBC +P 6525 3825 +F 0 "JP1" H 6575 3725 50 0000 L CNN +F 1 "CLK_SEL" H 6525 3925 50 0000 C BNN +F 2 "Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm" H 6525 3825 50 0001 C CNN +F 3 "" H 6525 3825 50 0001 C CNN + 1 6525 3825 + 0 -1 -1 0 +$EndComp +Wire Wire Line + 6425 4250 6525 4250 +Wire Wire Line + 6525 4250 6525 4075 +Text Label 10375 4550 2 60 ~ 0 +Phi0 +Wire Wire Line + 10425 4550 10075 4550 +Entry Wire Line + 9975 4450 10075 4550 +Text Label 6550 3500 0 60 ~ 0 +Phi0 +Entry Wire Line + 6925 3500 7025 3600 +Wire Wire Line + 6525 3500 6925 3500 +Wire Wire Line + 6525 3500 6525 3575 +$Comp +L R R2 +U 1 1 5C2374DE +P 3075 4825 +F 0 "R2" V 3155 4825 50 0000 C CNN +F 1 "4k7" V 3075 4825 50 0000 C CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 3005 4825 50 0001 C CNN +F 3 "" H 3075 4825 50 0001 C CNN + 1 3075 4825 + 1 0 0 -1 +$EndComp +$Comp +L VCC #PWR015 +U 1 1 5C237867 +P 3075 4675 +F 0 "#PWR015" H 3075 4525 50 0001 C CNN +F 1 "VCC" H 3075 4825 50 0000 C CNN +F 2 "" H 3075 4675 50 0001 C CNN +F 3 "" H 3075 4675 50 0001 C CNN + 1 3075 4675 + 1 0 0 -1 +$EndComp +$Comp +L 74LS373 U2 +U 1 1 5C237A24 +P 3850 5550 +F 0 "U2" H 3850 5550 50 0000 C CNN +F 1 "74LS373" H 3900 5200 50 0000 C CNN +F 2 "Housings_DIP:DIP-20_W7.62mm" H 3850 5550 50 0001 C CNN +F 3 "" H 3850 5550 50 0001 C CNN + 1 3850 5550 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3000 5050 3150 5050 +Wire Wire Line + 3075 4975 3075 5050 +Connection ~ 3075 5050 +Text GLabel 3000 6050 0 60 Input ~ 0 +READ +Wire Wire Line + 3000 6050 3150 6050 +Wire Wire Line + 3075 6050 3075 5950 +Wire Wire Line + 3075 5950 3150 5950 +Connection ~ 3075 6050 +$Comp +L GND #PWR016 +U 1 1 5C238D66 +P 3075 5750 +F 0 "#PWR016" H 3075 5500 50 0001 C CNN +F 1 "GND" H 3075 5600 50 0000 C CNN +F 2 "" H 3075 5750 50 0001 C CNN +F 3 "" H 3075 5750 50 0001 C CNN + 1 3075 5750 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3075 5750 3150 5750 +Wire Wire Line + 3075 5150 3075 5750 +Wire Wire Line + 3075 5650 3150 5650 +Wire Wire Line + 3075 5550 3150 5550 +Connection ~ 3075 5650 +Wire Wire Line + 3075 5450 3150 5450 +Connection ~ 3075 5550 +Wire Wire Line + 3075 5350 3150 5350 +Connection ~ 3075 5450 +Wire Wire Line + 3075 5250 3150 5250 +Connection ~ 3075 5350 +Wire Wire Line + 3075 5150 3150 5150 +Connection ~ 3075 5250 +Wire Wire Line + 4550 5750 4900 5750 +Entry Wire Line + 5000 5850 4900 5750 +Wire Wire Line + 4550 5650 4900 5650 +Entry Wire Line + 5000 5750 4900 5650 +Wire Wire Line + 4550 5550 4900 5550 +Entry Wire Line + 5000 5650 4900 5550 +Wire Wire Line + 4550 5450 4900 5450 +Entry Wire Line + 5000 5550 4900 5450 +Wire Wire Line + 4550 5350 4900 5350 +Entry Wire Line + 5000 5450 4900 5350 +Wire Wire Line + 4550 5250 4900 5250 +Entry Wire Line + 5000 5350 4900 5250 +Wire Wire Line + 4550 5150 4900 5150 +Entry Wire Line + 5000 5250 4900 5150 +Wire Wire Line + 4550 5050 4900 5050 +Entry Wire Line + 5000 5150 4900 5050 +Text Label 4600 5050 0 60 ~ 0 +D0 +Text Label 4600 5150 0 60 ~ 0 +D1 +Text Label 4600 5250 0 60 ~ 0 +D2 +Text Label 4600 5350 0 60 ~ 0 +D3 +Text Label 4600 5450 0 60 ~ 0 +D4 +Text Label 4600 5550 0 60 ~ 0 +D5 +Text Label 4600 5650 0 60 ~ 0 +D6 +Text Label 4600 5750 0 60 ~ 0 +D7 +Wire Bus Line + 6450 3250 5000 3250 +Wire Bus Line + 5000 3250 5000 5850 +$Comp +L Speaker LS1 +U 1 1 5C23AA18 +P 4350 2375 +F 0 "LS1" H 4400 2600 50 0000 R CNN +F 1 "Speaker" H 4400 2525 50 0000 R CNN +F 2 "Buzzers_Beepers:Buzzer_12x9.5RM7.6" H 4350 2175 50 0001 C CNN +F 3 "" H 4340 2325 50 0001 C CNN + 1 4350 2375 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3875 2550 3875 2475 +Wire Wire Line + 3875 2475 4150 2475 +$Comp +L Jumper_NO_Small JP2 +U 1 1 5C23C542 +P 4050 2375 +F 0 "JP2" H 4050 2455 50 0000 C CNN +F 1 "SPKR_EN" H 4060 2315 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm" H 4050 2375 50 0001 C CNN +F 3 "" H 4050 2375 50 0001 C CNN + 1 4050 2375 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3875 1850 4100 1850 +Connection ~ 3875 2375 +Wire Wire Line + 4500 1750 4500 1675 +Wire Wire Line + 4500 1675 4600 1675 +Wire Wire Line + 4600 1675 4600 1750 +Wire Wire Line + 3875 2375 3875 1850 +NoConn ~ 4100 1950 +$Comp +L GND #PWR017 +U 1 1 5C240C7F +P 9825 4350 +F 0 "#PWR017" H 9825 4100 50 0001 C CNN +F 1 "GND" H 9825 4200 50 0000 C CNN +F 2 "" H 9825 4350 50 0001 C CNN +F 3 "" H 9825 4350 50 0001 C CNN + 1 9825 4350 + 1 0 0 -1 +$EndComp +Wire Wire Line + 9825 4350 9825 4150 +Wire Wire Line + 9825 4150 10425 4150 +$Comp +L VCC #PWR018 +U 1 1 5C240EFC +P 9875 4050 +F 0 "#PWR018" H 9875 3900 50 0001 C CNN +F 1 "VCC" H 9875 4200 50 0000 C CNN +F 2 "" H 9875 4050 50 0001 C CNN +F 3 "" H 9875 4050 50 0001 C CNN + 1 9875 4050 + 1 0 0 -1 +$EndComp +Text GLabel 7325 4125 0 60 Output ~ 0 +READY +Wire Wire Line + 10425 4250 10250 4250 +Wire Wire Line + 10250 4250 10250 4200 +Wire Wire Line + 10250 4200 9875 4200 +Wire Wire Line + 9875 4200 9875 4050 +NoConn ~ 10425 3150 +NoConn ~ 10425 3250 +NoConn ~ 10425 3350 +NoConn ~ 10425 3450 +NoConn ~ 10425 3550 +NoConn ~ 10425 3650 +NoConn ~ 10425 3750 +NoConn ~ 10425 3850 +NoConn ~ 10425 3950 +NoConn ~ 10425 4050 +Text Notes 7350 7500 0 60 ~ 0 +RC6502 Programmable Sound Generator +Text Notes 7025 6950 0 60 ~ 0 +A simple sound card for the RC6502 computer, this one implements the sound chip\noriginally found in systems such as the BBC Micro as well as Sega Master System\nconsoles. Note that the card does not have a designed in reset and needs startup\nroutines to stop it from generating a random noise on power-up. +$EndSCHEMATC diff --git a/RC6502 PSG/SN76489AN.dcm b/RC6502 PSG/SN76489AN.dcm new file mode 100644 index 0000000..5dd71cb --- /dev/null +++ b/RC6502 PSG/SN76489AN.dcm @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/RC6502 PSG/SN76489AN.lib b/RC6502 PSG/SN76489AN.lib new file mode 100644 index 0000000..981ecfd --- /dev/null +++ b/RC6502 PSG/SN76489AN.lib @@ -0,0 +1,32 @@ +EESchema-LIBRARY Version 2.3 +#encoding utf-8 +# +# SN76489AN +# +DEF SN76489AN U 0 40 Y Y 1 F N +F0 "U" 0 -500 50 H V C CNN +F1 "SN76489AN" 0 0 50 V V C CNN +F2 "MODULE" 0 650 50 H I C CNN +F3 "DOCUMENTATION" 0 -650 50 H I C CNN +DRAW +S -450 -550 450 550 1 0 0 N +X ~WE 5 -750 -50 300 R 50 50 1 0 I +X D2 1 -750 350 300 R 50 50 1 1 I +X D1 2 -750 250 300 R 50 50 1 1 I +X D0 3 -750 150 300 R 50 50 1 1 I +X READY 4 -750 50 300 R 50 50 1 1 O +X ~CE 6 -750 -150 300 R 50 50 1 1 I +X SND 7 -750 -250 300 R 50 50 1 1 O +X GND 8 -750 -350 300 R 50 50 1 1 W +X NC 9 750 350 300 L 50 50 1 1 I +X D7 10 750 250 300 L 50 50 1 1 I +X D6 11 750 150 300 L 50 50 1 1 I +X D5 12 750 50 300 L 50 50 1 1 I +X D4 13 750 -50 300 L 50 50 1 1 I +X CLOCK 14 750 -150 300 L 50 50 1 1 I +X D3 15 750 -250 300 L 50 50 1 1 I +X VCC 16 750 -350 300 L 50 50 1 1 W +ENDDRAW +ENDDEF +# +#End Library diff --git a/RC6502 PSG/export/RC6502 PSG.pdf b/RC6502 PSG/export/RC6502 PSG.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ed299472d5c41a95fac4e9b380ace77d01b16777 GIT binary patch literal 59705 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Ⓢ%LOGIC=B&UW3B5C!XjM|fXFNF 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