├── .gitignore
├── .gitmodules
├── LICENSE
├── MK1_CPU
├── 8bit-computer.csv
├── 8bit-computer
│ ├── 8bit-computer-cache.lib
│ ├── 8bit-computer-rescue.dcm
│ ├── 8bit-computer-rescue.lib
│ ├── 8bit-computer.kicad_pcb
│ ├── 8bit-computer.net
│ ├── 8bit-computer.pro
│ ├── 8bit-computer.sch
│ ├── Housings_LCC.pretty
│ │ ├── .gitattributes
│ │ ├── .travis.yml
│ │ ├── PLCC-20.kicad_mod
│ │ ├── PLCC-20_SMD-Socket.kicad_mod
│ │ ├── PLCC-20_THT-Socket.kicad_mod
│ │ ├── PLCC-28.kicad_mod
│ │ ├── PLCC-28_SMD-Socket.kicad_mod
│ │ ├── PLCC-28_THT-Socket.kicad_mod
│ │ ├── PLCC-32.kicad_mod
│ │ ├── PLCC-32_SMD-Socket.kicad_mod
│ │ ├── PLCC-32_THT-Socket.kicad_mod
│ │ ├── PLCC-44.kicad_mod
│ │ ├── PLCC-44_SMD-Socket.kicad_mod
│ │ ├── PLCC-44_THT-Socket.kicad_mod
│ │ ├── PLCC-52.kicad_mod
│ │ ├── PLCC-52_SMD-Socket.kicad_mod
│ │ ├── PLCC-52_THT-Socket.kicad_mod
│ │ ├── PLCC-68.kicad_mod
│ │ ├── PLCC-68_SMD-Socket.kicad_mod
│ │ ├── PLCC-68_THT-Socket.kicad_mod
│ │ ├── PLCC-84.kicad_mod
│ │ ├── PLCC-84_SMD-Socket.kicad_mod
│ │ ├── PLCC-84_THT-Socket.kicad_mod
│ │ └── README.md
│ ├── PC-interface.sch
│ ├── a-register.sch
│ ├── alu.sch
│ ├── b-register.sch
│ ├── clock.sch
│ ├── control.sch
│ ├── ext_interface.sch
│ ├── fp-info-cache
│ ├── fp-lib-table
│ ├── inst-register.sch
│ ├── mar.sch
│ ├── output.sch
│ ├── parrot.kicad_mod
│ ├── program-counter.sch
│ ├── ram.sch
│ ├── stack-register.sch
│ └── sym-lib-table
├── code
│ ├── microcode.bin
│ ├── microcode.py
│ ├── microcode.txt
│ ├── mk1_computer_uplodader
│ │ └── mk1_computer_uplodader.ino
│ ├── output_display.py
│ └── uploader.py
├── images
│ ├── 8bit-computer_v1.jpg
│ └── 8bit-computer_v2.jpg
├── programs
│ ├── assembled
│ │ ├── bubble_sort.bin
│ │ ├── counter.bin
│ │ ├── display_counter.bin
│ │ ├── display_hello_world.bin
│ │ ├── division.bin
│ │ ├── factorial.bin
│ │ ├── fibonacci.bin
│ │ ├── fibonacci_recursive.bin
│ │ ├── merge_sort.bin
│ │ ├── multiplication.bin
│ │ ├── multiplication_tables.bin
│ │ ├── primes.bin
│ │ ├── quick_sort.bin
│ │ ├── reminder.bin
│ │ └── test_suite.bin
│ ├── bubble_sort.asm
│ ├── counter.asm
│ ├── display_counter.asm
│ ├── display_hello_world.asm
│ ├── division.asm
│ ├── factorial.asm
│ ├── fibonacci.asm
│ ├── fibonacci_recursive.asm
│ ├── lib
│ │ ├── helix.asm
│ │ ├── mk1.cpu
│ │ └── mk1_std.asm
│ ├── merge_sort.asm
│ ├── multiplication.asm
│ ├── multiplication_tables.asm
│ ├── primes.asm
│ ├── quick_sort.asm
│ ├── reminder.asm
│ └── test_suite.asm
└── schematics.pdf
├── README.md
├── bus_breakout
├── bus_breakout-cache.lib
├── bus_breakout.kicad_pcb
├── bus_breakout.pro
├── bus_breakout.sch
└── fp-info-cache
├── eeprom_programmer
├── arduino_eeprom_programmer
│ ├── arduino_eeprom_programmer-cache.lib
│ ├── arduino_eeprom_programmer.kicad_pcb
│ ├── arduino_eeprom_programmer.pro
│ ├── arduino_eeprom_programmer.sch
│ ├── fp-info-cache
│ ├── fp-lib-table
│ ├── images
│ │ └── arduino_eeprom_programmer_render.png
│ └── sym-lib-table
└── multiplexed-display
│ └── multiplexed-display.ino
├── helix_display_interface
├── README.md
├── code
│ └── helix_display_interface
│ │ └── helix_display_interface.ino
├── display_interface
│ ├── display_interface-cache.lib
│ ├── display_interface.kicad_pcb
│ ├── display_interface.pro
│ ├── display_interface.sch
│ ├── fp-info-cache
│ ├── helix.kicad_mod
│ └── helix_small.kicad_mod
└── images
│ ├── display_interface_render.png
│ └── hello_world.gif
└── start9_programming_interface
├── README.md
├── code
├── flash_composer.py
├── start9.bin
├── start9.txt
└── start9_programming_interface
│ └── start9_programming_interface.ino
├── images
└── programming_interface_render.png
└── programming_interface
├── arduino-kicad-library
├── .gitignore
├── Arduino.pretty
│ ├── Arduino_101_Shield.kicad_mod
│ ├── Arduino_Due_Shield.kicad_mod
│ ├── Arduino_Leonardo_Shield.kicad_mod
│ ├── Arduino_Mega2560_Shield.kicad_mod
│ ├── Arduino_Micro_Socket.kicad_mod
│ ├── Arduino_Mini_Socket.kicad_mod
│ ├── Arduino_Nano_Socket.kicad_mod
│ ├── Arduino_Uno_Shield.kicad_mod
│ └── Arduino_Zero_Shield.kicad_mod
├── LICENSE.txt
├── README.md
├── arduino.dcm
└── arduino.lib
├── fp-info-cache
├── fp-lib-table
├── programming_interface-cache.lib
├── programming_interface.kicad_pcb
├── programming_interface.pro
├── programming_interface.sch
├── sym-lib-table
└── trainer.kicad_mod
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | *.sch-bak
3 | *.kicad_pcb-bak
4 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "MK1_CPU/assembler"]
2 | path = MK1_CPU/assembler
3 | url = git@github.com:vascofazza/customasm.git
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Federico Scozzafava
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer.csv:
--------------------------------------------------------------------------------
1 | Comment,Designator,Footprint,LCSC
2 | "Arduino Nano","A1","Module:Arduino_Nano",""
3 | "0.1µF","C5,C10,C11,C12,C14,C15,C18,C22,C23,C25,C28,C29,C30,C34,C36,C37,C40,C41,C42","Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm",""
4 | "*","C13,C16,C21,C26,C31,C32,C33,C35,C38,C43","Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm",""
5 | "0.01","C17","Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm",""
6 | "10µF","C1,C2","Capacitor_THT:CP_Radial_D5.0mm_P2.00mm",""
7 | "0.01µf","C24,C27,C44","Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm",""
8 | "0.01µF","C3,C6,C7,C9,C19,C20,C39,C45","Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm",""
9 | "1µF","C4,C8","Capacitor_THT:CP_Radial_D5.0mm_P2.00mm",""
10 | "BLUE","D10,D72,D73,D74,D75,D76,D77,D78,D79,D93,D94,D95,D96,D97,D98,D99,D100,D101,D102,D103,D104,D105,D106,D107,D108,D109,D110,D111,D112,D113,D114,D115,D116,D117,D118,D119,D120,D121,D122,D123,D124,D125,D126","LED_THT:LED_D3.0mm",""
11 | "WHITE","D19,D20,D88,D89","LED_THT:LED_D3.0mm",""
12 | "YELLOW","D38,D39,D40,D41,D42,D43,D44,D45,D48,D55,D56,D57,D58,D59,D60,D61,D62,D63,D90,D91,D92","LED_THT:LED_D3.0mm",""
13 | "RED","D1,D2,D3,D4,D5,D6,D7,D8,D21,D22,D23,D24,D25,D26,D27,D28,D29,D30,D31,D32,D33,D34,D35,D36,D37","LED_THT:LED_D3.0mm",""
14 | "GREEN","D9,D11,D12,D13,D14,D15,D16,D17,D18,D46,D47,D49,D50,D51,D52,D53,D54,D64,D65,D66,D67,D68,D69,D70,D71,D80,D81,D82,D83,D84,D85,D86,D87,D127,D128,D129,D130,D131,D132,D133,D134","LED_THT:LED_D3.0mm",""
15 | "USB_B-8bit-computer-rescue","J1","Connector_USB:USB_B_OST_USB-B1HSxx_Horizontal",""
16 | "Barrel_Jack_Switch","J2","Connector_BarrelJack:BarrelJack_Horizontal",""
17 | "EXT-CONN","J4","Connector_PinHeader_2.54mm:PinHeader_2x09_P2.54mm_Vertical",""
18 | "Arduino_VIN","JP1","Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm",""
19 | "220","R1,R2,R23,R24","Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal",""
20 | "10K","R12,R18,R19,R20,R21,R22,R29,R30,R31,R32","Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal",""
21 | "470","R13","Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal",""
22 | "100K","R16","Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal",""
23 | "1K","R3,R5,R6,R7,R8,R9,R10,R11,R14,R15,R17,R25,R26,R27,R28","Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal",""
24 | "330K","R4","Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal",""
25 | "10K","RN1","Resistor_THT:R_Array_SIP9",""
26 | "470","RN2,RN4,RN5","Resistor_THT:R_Array_SIP9",""
27 | "1K","RN3,RN7,RN9,RN10,RN11,RN12,RN13,RN14,RN15,RN16,RN17,RN18,RN19,RN20","Resistor_THT:R_Array_SIP9",""
28 | "220","RN6,RN8","Resistor_THT:R_Array_SIP9",""
29 | "1M","RV1","Potentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_Vertical",""
30 | "Multiplier","SW1","Button_Switch_THT:SW_DIP_SPSTx03_Slide_9.78x9.8mm_W7.62mm_P2.54mm",""
31 | "Reset","SW10","Button_Switch_THT:SW_PUSH_6mm_H5mm",""
32 | "Pulse","SW2","Button_Switch_THT:SW_PUSH_6mm_H5mm",""
33 | "Manual","SW3","Button_Switch_THT:SW_NKK_GW12LJP",""
34 | "Prog","SW4","Button_Switch_THT:SW_DIP_SPSTx01_Slide_9.78x4.72mm_W7.62mm_P2.54mm",""
35 | "Address","SW5","Button_Switch_THT:SW_DIP_SPSTx10_Slide_9.78x27.58mm_W7.62mm_P2.54mm",""
36 | "Mode","SW6","Button_Switch_THT:SW_DIP_SPSTx03_Slide_9.78x9.8mm_W7.62mm_P2.54mm",""
37 | "Write","SW7","Button_Switch_THT:SW_PUSH_6mm_H5mm",""
38 | "Show","SW8","Button_Switch_THT:SW_PUSH_6mm_H5mm",""
39 | "Data","SW9","Button_Switch_THT:SW_DIP_SPSTx08_Slide_9.78x22.5mm_W7.62mm_P2.54mm",""
40 | "CLK_IN","TP1","TestPoint:TestPoint_Pad_1.0x1.0mm",""
41 | "AND","TP10","TestPoint:TestPoint_Pad_1.0x1.0mm",""
42 | "EI","TP11","TestPoint:TestPoint_Pad_1.0x1.0mm",""
43 | "~EO","TP12","TestPoint:TestPoint_Pad_1.0x1.0mm",""
44 | "NOT","TP13","TestPoint:TestPoint_Pad_1.0x1.0mm",""
45 | "SUB","TP14","TestPoint:TestPoint_Pad_1.0x1.0mm",""
46 | "MI","TP15","TestPoint:TestPoint_Pad_1.0x1.0mm",""
47 | "OI","TP16","TestPoint:TestPoint_Pad_1.0x1.0mm",""
48 | "~PO","TP17","TestPoint:TestPoint_Pad_1.0x1.0mm",""
49 | "PE","TP18","TestPoint:TestPoint_Pad_1.0x1.0mm",""
50 | "~PI","TP19","TestPoint:TestPoint_Pad_1.0x1.0mm",""
51 | "CLK","TP2","TestPoint:TestPoint_Pad_1.0x1.0mm",""
52 | "~RO","TP20","TestPoint:TestPoint_Pad_1.0x1.0mm",""
53 | "RI","TP21","TestPoint:TestPoint_Pad_1.0x1.0mm",""
54 | "~SO","TP22","TestPoint:TestPoint_Pad_1.0x1.0mm",""
55 | "SU","TP23","TestPoint:TestPoint_Pad_1.0x1.0mm",""
56 | "SD","TP24","TestPoint:TestPoint_Pad_1.0x1.0mm",""
57 | "SI","TP25","TestPoint:TestPoint_Pad_1.0x1.0mm",""
58 | "II","TP28","TestPoint:TestPoint_Pad_1.0x1.0mm",""
59 | "AI","TP29","TestPoint:TestPoint_Pad_1.0x1.0mm",""
60 | "~CLK","TP3","TestPoint:TestPoint_Pad_1.0x1.0mm",""
61 | "~AO","TP30","TestPoint:TestPoint_Pad_1.0x1.0mm",""
62 | "RGT","TP31","TestPoint:TestPoint_Pad_1.0x1.0mm",""
63 | "ROT","TP32","TestPoint:TestPoint_Pad_1.0x1.0mm",""
64 | "SHF","TP33","TestPoint:TestPoint_Pad_1.0x1.0mm",""
65 | "E0","TP34","TestPoint:TestPoint_Pad_1.0x1.0mm",""
66 | "EXT_IN","TP35","TestPoint:TestPoint_Pad_1.0x1.0mm",""
67 | "E1","TP36","TestPoint:TestPoint_Pad_1.0x1.0mm",""
68 | "U0","TP37","TestPoint:TestPoint_Pad_1.0x1.0mm",""
69 | "U1","TP38","TestPoint:TestPoint_Pad_1.0x1.0mm",""
70 | "~CU_EN","TP39","TestPoint:TestPoint_Pad_1.0x1.0mm",""
71 | "~REG-O","TP4,TP26,TP40","TestPoint:TestPoint_Pad_1.0x1.0mm",""
72 | "REG-I","TP5,TP27,TP41","TestPoint:TestPoint_Pad_1.0x1.0mm",""
73 | "~FI","TP6","TestPoint:TestPoint_Pad_1.0x1.0mm",""
74 | "ZF","TP7","TestPoint:TestPoint_Pad_1.0x1.0mm",""
75 | "CF","TP8","TestPoint:TestPoint_Pad_1.0x1.0mm",""
76 | "OR","TP9","TestPoint:TestPoint_Pad_1.0x1.0mm",""
77 | "74HCT32","U1,U2,U12,U25,U28","Package_DIP:DIP-14_W7.62mm",""
78 | "74HCT173","U11","Package_DIP:DIP-16_W7.62mm",""
79 | "74HCT02","U13,U69","Package_DIP:DIP-14_W7.62mm",""
80 | "74HCT283","U15,U16","Package_DIP:DIP-16_W7.62mm",""
81 | "74HCT157","U17,U18,U20,U23,U45,U62,U63,U67,U68","Package_DIP:DIP-16_W7.62mm",""
82 | "74HCT86","U21,U22,U24","Package_DIP:DIP-14_W7.62mm",""
83 | "NE555","U3,U6,U7,U33","Package_DIP:DIP-8_W7.62mm",""
84 | "74LS157","U30,U31,U50,U51","Package_DIP:DIP-16_W7.62mm",""
85 | "74HCT107","U35,U71","Package_DIP:DIP-14_W7.62mm",""
86 | "28C64","U36","Package_DIP:DIP-28_W15.24mm_Socket",""
87 | "74HCT139","U38","Package_DIP:DIP-16_W7.62mm",""
88 | "74HCT04","U4,U60","Package_DIP:DIP-14_W7.62mm",""
89 | "7SEGMENT_CC","U37,U39,U40,U41","Display_7Segment:7SegmentLED_LTS6760_LTS6780",""
90 | "74HCT161","U43,U44,U72","Package_DIP:DIP-16_W7.62mm",""
91 | "74HCT00","U46,U55","Package_DIP:DIP-14_W7.62mm",""
92 | "CY62256","U47","Package_DIP:DIP-28_W15.24mm_Socket",""
93 | "74HCT08","U5,U10,U26,U27,U29,U58,U64","Package_DIP:DIP-14_W7.62mm",""
94 | "74HCT193","U53,U54","Package_DIP:DIP-16_W7.62mm",""
95 | "AM29F040","U73,U74,U75,U76","Housings_LCC:PLCC-32_THT-Socket",""
96 | "74HCT138","U77","Package_DIP:DIP-16_W7.62mm",""
97 | "74HCT238","U78,U79","Package_DIP:DIP-16_W7.62mm",""
98 | "74HCT245","U8,U14,U42,U48,U49,U52,U56,U59,U65,U70,U80","Package_DIP:DIP-20_W7.62mm",""
99 | "74HCT273","U9,U19,U32,U34,U57,U61,U66,U81","Package_DIP:DIP-20_W7.62mm",""
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/8bit-computer-rescue.dcm:
--------------------------------------------------------------------------------
1 | EESchema-DOCLIB Version 2.0
2 | #
3 | $CMP 74LS168
4 | D Synchronous 4-bit Up/Down counter
5 | K TTL CNT CNT4
6 | F http://www.ti.com/lit/gpn/sn74LS168
7 | $ENDCMP
8 | #
9 | $CMP 74LS175
10 | D 4-bit D Flip-Flop, reset
11 | K TTL REG REG4 DFF
12 | F http://www.ti.com/lit/gpn/sn74LS175
13 | $ENDCMP
14 | #
15 | $CMP 74LS374
16 | D 8-bit Register, 3-state outputs
17 | K TTL DFF DFF8 REG 3State
18 | F http://www.ti.com/lit/gpn/sn74LS374
19 | $ENDCMP
20 | #
21 | $CMP Barrel_Jack_Switch
22 | D DC Barrel Jack with an internal switch
23 | K DC power barrel jack connector
24 | F ~
25 | $ENDCMP
26 | #
27 | $CMP CY62256
28 | D SRAM 32Kx8 STATIC RAM
29 | K SRAM memory
30 | $ENDCMP
31 | #
32 | $CMP IDT7125
33 | D SRAM 32Kx8 ASYNCHRONOUS 5.0V STATIC RAM
34 | K asynchronous SRAM memory
35 | $ENDCMP
36 | #
37 | $CMP SW_NKK_GW12LHP
38 | D Switch, single pole double throw, illuminated paddle, red and green LEDs
39 | K switch single-pole double-throw spdt ON-ON illuminated red green
40 | F http://www.nkkswitches.com/pdf/gwillum.pdf
41 | $ENDCMP
42 | #
43 | #End Doc Library
44 |
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/8bit-computer.pro:
--------------------------------------------------------------------------------
1 | update=Monday, 27 April 2020 at 00:54:54
2 | version=1
3 | last_client=kicad
4 | [cvpcb]
5 | version=1
6 | NetIExt=net
7 | [general]
8 | version=1
9 | [eeschema]
10 | version=1
11 | LibDir=
12 | [pcbnew]
13 | version=1
14 | PageLayoutDescrFile=
15 | LastNetListRead=8bit-computer-2.net
16 | CopperLayerCount=2
17 | BoardThickness=1.6
18 | AllowMicroVias=0
19 | AllowBlindVias=0
20 | RequireCourtyardDefinitions=0
21 | ProhibitOverlappingCourtyards=1
22 | MinTrackWidth=0.254
23 | MinViaDiameter=0.4
24 | MinViaDrill=0.3
25 | MinMicroViaDiameter=0.2
26 | MinMicroViaDrill=0.09999999999999999
27 | MinHoleToHole=0.25
28 | TrackWidth1=0.254
29 | ViaDiameter1=0.6
30 | ViaDrill1=0.4
31 | dPairWidth1=0.3
32 | dPairGap1=0.25
33 | dPairViaGap1=0.25
34 | SilkLineWidth=0.15
35 | SilkTextSizeV=1
36 | SilkTextSizeH=1
37 | SilkTextSizeThickness=0.15
38 | SilkTextItalic=0
39 | SilkTextUpright=1
40 | CopperLineWidth=0.2
41 | CopperTextSizeV=1.5
42 | CopperTextSizeH=1.5
43 | CopperTextThickness=0.3
44 | CopperTextItalic=0
45 | CopperTextUpright=1
46 | EdgeCutLineWidth=0.15
47 | CourtyardLineWidth=0.05
48 | OthersLineWidth=0.15
49 | OthersTextSizeV=1
50 | OthersTextSizeH=1
51 | OthersTextSizeThickness=0.15
52 | OthersTextItalic=0
53 | OthersTextUpright=1
54 | SolderMaskClearance=0.2
55 | SolderMaskMinWidth=0
56 | SolderPasteClearance=0
57 | SolderPasteRatio=-0
58 | [pcbnew/Layer.F.Cu]
59 | Name=F.Cu
60 | Type=0
61 | Enabled=1
62 | [pcbnew/Layer.In1.Cu]
63 | Name=In1.Cu
64 | Type=0
65 | Enabled=0
66 | [pcbnew/Layer.In2.Cu]
67 | Name=In2.Cu
68 | Type=0
69 | Enabled=0
70 | [pcbnew/Layer.In3.Cu]
71 | Name=In3.Cu
72 | Type=0
73 | Enabled=0
74 | [pcbnew/Layer.In4.Cu]
75 | Name=In4.Cu
76 | Type=0
77 | Enabled=0
78 | [pcbnew/Layer.In5.Cu]
79 | Name=In5.Cu
80 | Type=0
81 | Enabled=0
82 | [pcbnew/Layer.In6.Cu]
83 | Name=In6.Cu
84 | Type=0
85 | Enabled=0
86 | [pcbnew/Layer.In7.Cu]
87 | Name=In7.Cu
88 | Type=0
89 | Enabled=0
90 | [pcbnew/Layer.In8.Cu]
91 | Name=In8.Cu
92 | Type=0
93 | Enabled=0
94 | [pcbnew/Layer.In9.Cu]
95 | Name=In9.Cu
96 | Type=0
97 | Enabled=0
98 | [pcbnew/Layer.In10.Cu]
99 | Name=In10.Cu
100 | Type=0
101 | Enabled=0
102 | [pcbnew/Layer.In11.Cu]
103 | Name=In11.Cu
104 | Type=0
105 | Enabled=0
106 | [pcbnew/Layer.In12.Cu]
107 | Name=In12.Cu
108 | Type=0
109 | Enabled=0
110 | [pcbnew/Layer.In13.Cu]
111 | Name=In13.Cu
112 | Type=0
113 | Enabled=0
114 | [pcbnew/Layer.In14.Cu]
115 | Name=In14.Cu
116 | Type=0
117 | Enabled=0
118 | [pcbnew/Layer.In15.Cu]
119 | Name=In15.Cu
120 | Type=0
121 | Enabled=0
122 | [pcbnew/Layer.In16.Cu]
123 | Name=In16.Cu
124 | Type=0
125 | Enabled=0
126 | [pcbnew/Layer.In17.Cu]
127 | Name=In17.Cu
128 | Type=0
129 | Enabled=0
130 | [pcbnew/Layer.In18.Cu]
131 | Name=In18.Cu
132 | Type=0
133 | Enabled=0
134 | [pcbnew/Layer.In19.Cu]
135 | Name=In19.Cu
136 | Type=0
137 | Enabled=0
138 | [pcbnew/Layer.In20.Cu]
139 | Name=In20.Cu
140 | Type=0
141 | Enabled=0
142 | [pcbnew/Layer.In21.Cu]
143 | Name=In21.Cu
144 | Type=0
145 | Enabled=0
146 | [pcbnew/Layer.In22.Cu]
147 | Name=In22.Cu
148 | Type=0
149 | Enabled=0
150 | [pcbnew/Layer.In23.Cu]
151 | Name=In23.Cu
152 | Type=0
153 | Enabled=0
154 | [pcbnew/Layer.In24.Cu]
155 | Name=In24.Cu
156 | Type=0
157 | Enabled=0
158 | [pcbnew/Layer.In25.Cu]
159 | Name=In25.Cu
160 | Type=0
161 | Enabled=0
162 | [pcbnew/Layer.In26.Cu]
163 | Name=In26.Cu
164 | Type=0
165 | Enabled=0
166 | [pcbnew/Layer.In27.Cu]
167 | Name=In27.Cu
168 | Type=0
169 | Enabled=0
170 | [pcbnew/Layer.In28.Cu]
171 | Name=In28.Cu
172 | Type=0
173 | Enabled=0
174 | [pcbnew/Layer.In29.Cu]
175 | Name=In29.Cu
176 | Type=0
177 | Enabled=0
178 | [pcbnew/Layer.In30.Cu]
179 | Name=In30.Cu
180 | Type=0
181 | Enabled=0
182 | [pcbnew/Layer.B.Cu]
183 | Name=B.Cu
184 | Type=0
185 | Enabled=1
186 | [pcbnew/Layer.B.Adhes]
187 | Enabled=1
188 | [pcbnew/Layer.F.Adhes]
189 | Enabled=1
190 | [pcbnew/Layer.B.Paste]
191 | Enabled=1
192 | [pcbnew/Layer.F.Paste]
193 | Enabled=1
194 | [pcbnew/Layer.B.SilkS]
195 | Enabled=1
196 | [pcbnew/Layer.F.SilkS]
197 | Enabled=1
198 | [pcbnew/Layer.B.Mask]
199 | Enabled=1
200 | [pcbnew/Layer.F.Mask]
201 | Enabled=1
202 | [pcbnew/Layer.Dwgs.User]
203 | Enabled=1
204 | [pcbnew/Layer.Cmts.User]
205 | Enabled=1
206 | [pcbnew/Layer.Eco1.User]
207 | Enabled=1
208 | [pcbnew/Layer.Eco2.User]
209 | Enabled=1
210 | [pcbnew/Layer.Edge.Cuts]
211 | Enabled=1
212 | [pcbnew/Layer.Margin]
213 | Enabled=1
214 | [pcbnew/Layer.B.CrtYd]
215 | Enabled=1
216 | [pcbnew/Layer.F.CrtYd]
217 | Enabled=1
218 | [pcbnew/Layer.B.Fab]
219 | Enabled=1
220 | [pcbnew/Layer.F.Fab]
221 | Enabled=1
222 | [pcbnew/Layer.Rescue]
223 | Enabled=0
224 | [pcbnew/Netclasses]
225 | [pcbnew/Netclasses/Default]
226 | Name=Default
227 | Clearance=0.253997
228 | TrackWidth=0.254
229 | ViaDiameter=0.6
230 | ViaDrill=0.4
231 | uViaDiameter=0.3
232 | uViaDrill=0.1
233 | dPairWidth=0.3
234 | dPairGap=0.25
235 | dPairViaGap=0.25
236 | [pcbnew/Netclasses/1]
237 | Name=POWER
238 | Clearance=0.253997
239 | TrackWidth=0.3
240 | ViaDiameter=0.6
241 | ViaDrill=0.4
242 | uViaDiameter=0.3
243 | uViaDrill=0.1
244 | dPairWidth=0.3
245 | dPairGap=0.25
246 | dPairViaGap=0.25
247 | [schematic_editor]
248 | version=1
249 | PageLayoutDescrFile=
250 | PlotDirectoryName=
251 | SubpartIdSeparator=0
252 | SubpartFirstId=65
253 | NetFmtName=Pcbnew
254 | SpiceAjustPassiveValues=0
255 | LabSize=60
256 | ERC_TestSimilarLabels=1
257 |
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/.gitattributes:
--------------------------------------------------------------------------------
1 | *.kicad_mod text=auto
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: required
2 | before_install:
3 | - git clone https://github.com/KiCad/kicad-library-utils /home/travis/build/kicad-library-utils
4 |
5 | script:
6 | - sudo bash /home/travis/build/kicad-library-utils/pcb/travis/check_all.sh $TRAVIS_BUILD_DIR
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-20.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-20 (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 20 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -6.015) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-20 (at 0 6.015) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -4.015 -5.015) (end -5.015 -4.015) (layer F.Fab) (width 0.1))
12 | (fp_line (start -5.015 -4.015) (end -5.015 5.015) (layer F.Fab) (width 0.1))
13 | (fp_line (start -5.015 5.015) (end 5.015 5.015) (layer F.Fab) (width 0.1))
14 | (fp_line (start 5.015 5.015) (end 5.015 -5.015) (layer F.Fab) (width 0.1))
15 | (fp_line (start 5.015 -5.015) (end -4.015 -5.015) (layer F.Fab) (width 0.1))
16 | (fp_line (start -5.5 -5.5) (end -5.5 5.5) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -5.5 5.5) (end 5.5 5.5) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 5.5 5.5) (end 5.5 -5.5) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 5.5 -5.5) (end -5.5 -5.5) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -0.5 -5.015) (end 0 -4.015) (layer F.Fab) (width 0.1))
21 | (fp_line (start 0 -4.015) (end 0.5 -5.015) (layer F.Fab) (width 0.1))
22 | (fp_line (start -3.515 -5.165) (end -4.015 -5.165) (layer F.SilkS) (width 0.1))
23 | (fp_line (start -4.015 -5.165) (end -5.165 -4.015) (layer F.SilkS) (width 0.1))
24 | (fp_line (start -5.165 -4.015) (end -5.165 -3.515) (layer F.SilkS) (width 0.1))
25 | (fp_line (start 3.515 -5.165) (end 5.165 -5.165) (layer F.SilkS) (width 0.1))
26 | (fp_line (start 5.165 -5.165) (end 5.165 -3.515) (layer F.SilkS) (width 0.1))
27 | (fp_line (start -3.515 5.165) (end -5.165 5.165) (layer F.SilkS) (width 0.1))
28 | (fp_line (start -5.165 5.165) (end -5.165 3.515) (layer F.SilkS) (width 0.1))
29 | (fp_line (start 3.515 5.165) (end 5.165 5.165) (layer F.SilkS) (width 0.1))
30 | (fp_line (start 5.165 5.165) (end 5.165 3.515) (layer F.SilkS) (width 0.1))
31 | (pad 1 smd rect (at 0 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
32 | (pad 2 smd rect (at -1.27 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
33 | (pad 3 smd rect (at -2.54 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
34 | (pad 20 smd rect (at 1.27 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
35 | (pad 19 smd rect (at 2.54 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
36 | (pad 4 smd rect (at -4.0525 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
37 | (pad 5 smd rect (at -4.0525 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
38 | (pad 6 smd rect (at -4.0525 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
39 | (pad 7 smd rect (at -4.0525 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
40 | (pad 8 smd rect (at -4.0525 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
41 | (pad 9 smd rect (at -2.54 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
42 | (pad 10 smd rect (at -1.27 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
43 | (pad 11 smd rect (at 0 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
44 | (pad 12 smd rect (at 1.27 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
45 | (pad 13 smd rect (at 2.54 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
46 | (pad 14 smd rect (at 4.0525 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
47 | (pad 15 smd rect (at 4.0525 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
48 | (pad 16 smd rect (at 4.0525 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
49 | (pad 17 smd rect (at 4.0525 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
50 | (pad 18 smd rect (at 4.0525 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
51 | (fp_text user %R (at 0 0) (layer F.Fab)
52 | (effects (font (size 1 1) (thickness 0.15)))
53 | )
54 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-20.wrl
55 | (at (xyz 0 0 0))
56 | (scale (xyz 1 1 1))
57 | (rotate (xyz 0 0 0))
58 | )
59 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-20_SMD-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-20_SMD-Socket (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 20 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -8.825) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-20_SMD-Socket (at 0 8.825) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -6.825 -7.825) (end -7.825 -6.825) (layer F.Fab) (width 0.1))
12 | (fp_line (start -7.825 -6.825) (end -7.825 7.825) (layer F.Fab) (width 0.1))
13 | (fp_line (start -7.825 7.825) (end 7.825 7.825) (layer F.Fab) (width 0.1))
14 | (fp_line (start 7.825 7.825) (end 7.825 -7.825) (layer F.Fab) (width 0.1))
15 | (fp_line (start 7.825 -7.825) (end -6.825 -7.825) (layer F.Fab) (width 0.1))
16 | (fp_line (start -8.3 -8.3) (end -8.3 8.3) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -8.3 8.3) (end 8.3 8.3) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 8.3 8.3) (end 8.3 -8.3) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 8.3 -8.3) (end -8.3 -8.3) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -4.015 -5.015) (end -5.015 -4.015) (layer F.Fab) (width 0.1))
21 | (fp_line (start -5.015 -4.015) (end -5.015 5.015) (layer F.Fab) (width 0.1))
22 | (fp_line (start -5.015 5.015) (end 5.015 5.015) (layer F.Fab) (width 0.1))
23 | (fp_line (start 5.015 5.015) (end 5.015 -5.015) (layer F.Fab) (width 0.1))
24 | (fp_line (start 5.015 -5.015) (end -4.015 -5.015) (layer F.Fab) (width 0.1))
25 | (fp_line (start -6.555 -6.555) (end -6.555 6.555) (layer F.Fab) (width 0.1))
26 | (fp_line (start -6.555 6.555) (end 6.555 6.555) (layer F.Fab) (width 0.1))
27 | (fp_line (start 6.555 6.555) (end 6.555 -6.555) (layer F.Fab) (width 0.1))
28 | (fp_line (start 6.555 -6.555) (end -6.555 -6.555) (layer F.Fab) (width 0.1))
29 | (fp_line (start -0.5 -7.825) (end 0 -6.825) (layer F.Fab) (width 0.1))
30 | (fp_line (start 0 -6.825) (end 0.5 -7.825) (layer F.Fab) (width 0.1))
31 | (fp_line (start -1 -7.975) (end -6.975 -7.975) (layer F.SilkS) (width 0.12))
32 | (fp_line (start -6.975 -7.975) (end -7.975 -6.975) (layer F.SilkS) (width 0.12))
33 | (fp_line (start -7.975 -6.975) (end -7.975 7.975) (layer F.SilkS) (width 0.12))
34 | (fp_line (start -7.975 7.975) (end 7.975 7.975) (layer F.SilkS) (width 0.12))
35 | (fp_line (start 7.975 7.975) (end 7.975 -7.975) (layer F.SilkS) (width 0.12))
36 | (fp_line (start 7.975 -7.975) (end 1 -7.975) (layer F.SilkS) (width 0.12))
37 | (fp_line (start -3.515 -5.165) (end -4.015 -5.165) (layer F.SilkS) (width 0.1))
38 | (fp_line (start -4.015 -5.165) (end -5.165 -4.015) (layer F.SilkS) (width 0.1))
39 | (fp_line (start -5.165 -4.015) (end -5.165 -3.515) (layer F.SilkS) (width 0.1))
40 | (fp_line (start 3.515 -5.165) (end 5.165 -5.165) (layer F.SilkS) (width 0.1))
41 | (fp_line (start 5.165 -5.165) (end 5.165 -3.515) (layer F.SilkS) (width 0.1))
42 | (fp_line (start -3.515 5.165) (end -5.165 5.165) (layer F.SilkS) (width 0.1))
43 | (fp_line (start -5.165 5.165) (end -5.165 3.515) (layer F.SilkS) (width 0.1))
44 | (fp_line (start 3.515 5.165) (end 5.165 5.165) (layer F.SilkS) (width 0.1))
45 | (fp_line (start 5.165 5.165) (end 5.165 3.515) (layer F.SilkS) (width 0.1))
46 | (pad 1 smd rect (at 0 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
47 | (pad 2 smd rect (at -1.27 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
48 | (pad 3 smd rect (at -2.54 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
49 | (pad 20 smd rect (at 1.27 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
50 | (pad 19 smd rect (at 2.54 -4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
51 | (pad 4 smd rect (at -4.0525 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
52 | (pad 5 smd rect (at -4.0525 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
53 | (pad 6 smd rect (at -4.0525 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
54 | (pad 7 smd rect (at -4.0525 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
55 | (pad 8 smd rect (at -4.0525 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
56 | (pad 9 smd rect (at -2.54 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
57 | (pad 10 smd rect (at -1.27 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
58 | (pad 11 smd rect (at 0 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
59 | (pad 12 smd rect (at 1.27 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
60 | (pad 13 smd rect (at 2.54 4.0525) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
61 | (pad 14 smd rect (at 4.0525 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
62 | (pad 15 smd rect (at 4.0525 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
63 | (pad 16 smd rect (at 4.0525 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
64 | (pad 17 smd rect (at 4.0525 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
65 | (pad 18 smd rect (at 4.0525 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
66 | (fp_text user %R (at 0 0) (layer F.Fab)
67 | (effects (font (size 1 1) (thickness 0.15)))
68 | )
69 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-20_SMD-Socket.wrl
70 | (at (xyz 0 0 0))
71 | (scale (xyz 1 1 1))
72 | (rotate (xyz 0 0 0))
73 | )
74 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-20_THT-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-20_THT-Socket (layer F.Cu) (tedit 58FB5F08)
2 | (descr "PLCC, 20 pins, through hole")
3 | (tags "plcc leaded")
4 | (fp_text reference REF** (at 0 -3.67) (layer F.SilkS)
5 | (effects (font (size 1 1) (thickness 0.15)))
6 | )
7 | (fp_text value PLCC-20_THT-Socket (at 0 13.83) (layer F.Fab)
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | )
10 | (fp_line (start -6.75 -2.67) (end -7.75 -1.67) (layer F.Fab) (width 0.1))
11 | (fp_line (start -7.75 -1.67) (end -7.75 12.83) (layer F.Fab) (width 0.1))
12 | (fp_line (start -7.75 12.83) (end 7.75 12.83) (layer F.Fab) (width 0.1))
13 | (fp_line (start 7.75 12.83) (end 7.75 -2.67) (layer F.Fab) (width 0.1))
14 | (fp_line (start 7.75 -2.67) (end -6.75 -2.67) (layer F.Fab) (width 0.1))
15 | (fp_line (start -8.25 -3.17) (end -8.25 13.33) (layer F.CrtYd) (width 0.05))
16 | (fp_line (start -8.25 13.33) (end 8.25 13.33) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start 8.25 13.33) (end 8.25 -3.17) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 8.25 -3.17) (end -8.25 -3.17) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start -5.21 -0.13) (end -5.21 10.29) (layer F.Fab) (width 0.1))
20 | (fp_line (start -5.21 10.29) (end 5.21 10.29) (layer F.Fab) (width 0.1))
21 | (fp_line (start 5.21 10.29) (end 5.21 -0.13) (layer F.Fab) (width 0.1))
22 | (fp_line (start 5.21 -0.13) (end -5.21 -0.13) (layer F.Fab) (width 0.1))
23 | (fp_line (start -0.5 -2.67) (end 0 -1.67) (layer F.Fab) (width 0.1))
24 | (fp_line (start 0 -1.67) (end 0.5 -2.67) (layer F.Fab) (width 0.1))
25 | (fp_line (start -1 -2.77) (end -6.85 -2.77) (layer F.SilkS) (width 0.12))
26 | (fp_line (start -6.85 -2.77) (end -7.85 -1.77) (layer F.SilkS) (width 0.12))
27 | (fp_line (start -7.85 -1.77) (end -7.85 12.93) (layer F.SilkS) (width 0.12))
28 | (fp_line (start -7.85 12.93) (end 7.85 12.93) (layer F.SilkS) (width 0.12))
29 | (fp_line (start 7.85 12.93) (end 7.85 -2.77) (layer F.SilkS) (width 0.12))
30 | (fp_line (start 7.85 -2.77) (end 1 -2.77) (layer F.SilkS) (width 0.12))
31 | (pad 2 thru_hole circle (at 0 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
32 | (pad 20 thru_hole circle (at 2.54 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
33 | (pad 18 thru_hole circle (at 5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
34 | (pad 1 thru_hole rect (at 0 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
35 | (pad 3 thru_hole circle (at -2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
36 | (pad 19 thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
37 | (pad 5 thru_hole circle (at -2.54 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
38 | (pad 7 thru_hole circle (at -2.54 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
39 | (pad 4 thru_hole circle (at -5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
40 | (pad 6 thru_hole circle (at -5.08 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
41 | (pad 8 thru_hole circle (at -5.08 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
42 | (pad 10 thru_hole circle (at -2.54 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
43 | (pad 12 thru_hole circle (at 0 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
44 | (pad 14 thru_hole circle (at 2.54 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
45 | (pad 9 thru_hole circle (at -2.54 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
46 | (pad 11 thru_hole circle (at 0 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
47 | (pad 13 thru_hole circle (at 2.54 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
48 | (pad 15 thru_hole circle (at 2.54 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
49 | (pad 17 thru_hole circle (at 2.54 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
50 | (pad 19 thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
51 | (pad 14 thru_hole circle (at 5.08 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
52 | (pad 16 thru_hole circle (at 5.08 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
53 | (pad 18 thru_hole circle (at 5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
54 | (fp_text user %R (at 0 5.08) (layer F.Fab)
55 | (effects (font (size 1 1) (thickness 0.15)))
56 | )
57 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-20_THT-Socket.wrl
58 | (at (xyz 0 0 0))
59 | (scale (xyz 1 1 1))
60 | (rotate (xyz 0 0 0))
61 | )
62 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-28.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-28 (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 28 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -7.285) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-28 (at 0 7.285) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -5.285 -6.285) (end -6.285 -5.285) (layer F.Fab) (width 0.1))
12 | (fp_line (start -6.285 -5.285) (end -6.285 6.285) (layer F.Fab) (width 0.1))
13 | (fp_line (start -6.285 6.285) (end 6.285 6.285) (layer F.Fab) (width 0.1))
14 | (fp_line (start 6.285 6.285) (end 6.285 -6.285) (layer F.Fab) (width 0.1))
15 | (fp_line (start 6.285 -6.285) (end -5.285 -6.285) (layer F.Fab) (width 0.1))
16 | (fp_line (start -6.75 -6.75) (end -6.75 6.75) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -6.75 6.75) (end 6.75 6.75) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 6.75 6.75) (end 6.75 -6.75) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 6.75 -6.75) (end -6.75 -6.75) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -0.5 -6.285) (end 0 -5.285) (layer F.Fab) (width 0.1))
21 | (fp_line (start 0 -5.285) (end 0.5 -6.285) (layer F.Fab) (width 0.1))
22 | (fp_line (start -4.785 -6.435) (end -5.285 -6.435) (layer F.SilkS) (width 0.1))
23 | (fp_line (start -5.285 -6.435) (end -6.435 -5.285) (layer F.SilkS) (width 0.1))
24 | (fp_line (start -6.435 -5.285) (end -6.435 -4.785) (layer F.SilkS) (width 0.1))
25 | (fp_line (start 4.785 -6.435) (end 6.435 -6.435) (layer F.SilkS) (width 0.1))
26 | (fp_line (start 6.435 -6.435) (end 6.435 -4.785) (layer F.SilkS) (width 0.1))
27 | (fp_line (start -4.785 6.435) (end -6.435 6.435) (layer F.SilkS) (width 0.1))
28 | (fp_line (start -6.435 6.435) (end -6.435 4.785) (layer F.SilkS) (width 0.1))
29 | (fp_line (start 4.785 6.435) (end 6.435 6.435) (layer F.SilkS) (width 0.1))
30 | (fp_line (start 6.435 6.435) (end 6.435 4.785) (layer F.SilkS) (width 0.1))
31 | (pad 1 smd rect (at 0 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
32 | (pad 2 smd rect (at -1.27 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
33 | (pad 3 smd rect (at -2.54 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
34 | (pad 4 smd rect (at -3.81 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
35 | (pad 28 smd rect (at 1.27 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
36 | (pad 27 smd rect (at 2.54 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
37 | (pad 26 smd rect (at 3.81 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
38 | (pad 5 smd rect (at -5.3225 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
39 | (pad 6 smd rect (at -5.3225 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
40 | (pad 7 smd rect (at -5.3225 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
41 | (pad 8 smd rect (at -5.3225 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
42 | (pad 9 smd rect (at -5.3225 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
43 | (pad 10 smd rect (at -5.3225 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
44 | (pad 11 smd rect (at -5.3225 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
45 | (pad 12 smd rect (at -3.81 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
46 | (pad 13 smd rect (at -2.54 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
47 | (pad 14 smd rect (at -1.27 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
48 | (pad 15 smd rect (at 0 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
49 | (pad 16 smd rect (at 1.27 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
50 | (pad 17 smd rect (at 2.54 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
51 | (pad 18 smd rect (at 3.81 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
52 | (pad 19 smd rect (at 5.3225 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
53 | (pad 20 smd rect (at 5.3225 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
54 | (pad 21 smd rect (at 5.3225 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
55 | (pad 22 smd rect (at 5.3225 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
56 | (pad 23 smd rect (at 5.3225 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
57 | (pad 24 smd rect (at 5.3225 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
58 | (pad 25 smd rect (at 5.3225 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
59 | (fp_text user %R (at 0 0) (layer F.Fab)
60 | (effects (font (size 1 1) (thickness 0.15)))
61 | )
62 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-28.wrl
63 | (at (xyz 0 0 0))
64 | (scale (xyz 1 1 1))
65 | (rotate (xyz 0 0 0))
66 | )
67 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-28_SMD-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-28_SMD-Socket (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 28 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -10.09) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-28_SMD-Socket (at 0 10.09) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -8.09 -9.09) (end -9.09 -8.09) (layer F.Fab) (width 0.1))
12 | (fp_line (start -9.09 -8.09) (end -9.09 9.09) (layer F.Fab) (width 0.1))
13 | (fp_line (start -9.09 9.09) (end 9.09 9.09) (layer F.Fab) (width 0.1))
14 | (fp_line (start 9.09 9.09) (end 9.09 -9.09) (layer F.Fab) (width 0.1))
15 | (fp_line (start 9.09 -9.09) (end -8.09 -9.09) (layer F.Fab) (width 0.1))
16 | (fp_line (start -9.55 -9.55) (end -9.55 9.55) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -9.55 9.55) (end 9.55 9.55) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 9.55 9.55) (end 9.55 -9.55) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 9.55 -9.55) (end -9.55 -9.55) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -5.285 -6.285) (end -6.285 -5.285) (layer F.Fab) (width 0.1))
21 | (fp_line (start -6.285 -5.285) (end -6.285 6.285) (layer F.Fab) (width 0.1))
22 | (fp_line (start -6.285 6.285) (end 6.285 6.285) (layer F.Fab) (width 0.1))
23 | (fp_line (start 6.285 6.285) (end 6.285 -6.285) (layer F.Fab) (width 0.1))
24 | (fp_line (start 6.285 -6.285) (end -5.285 -6.285) (layer F.Fab) (width 0.1))
25 | (fp_line (start -7.82 -7.82) (end -7.82 7.82) (layer F.Fab) (width 0.1))
26 | (fp_line (start -7.82 7.82) (end 7.82 7.82) (layer F.Fab) (width 0.1))
27 | (fp_line (start 7.82 7.82) (end 7.82 -7.82) (layer F.Fab) (width 0.1))
28 | (fp_line (start 7.82 -7.82) (end -7.82 -7.82) (layer F.Fab) (width 0.1))
29 | (fp_line (start -0.5 -9.09) (end 0 -8.09) (layer F.Fab) (width 0.1))
30 | (fp_line (start 0 -8.09) (end 0.5 -9.09) (layer F.Fab) (width 0.1))
31 | (fp_line (start -1 -9.24) (end -8.24 -9.24) (layer F.SilkS) (width 0.12))
32 | (fp_line (start -8.24 -9.24) (end -9.24 -8.24) (layer F.SilkS) (width 0.12))
33 | (fp_line (start -9.24 -8.24) (end -9.24 9.24) (layer F.SilkS) (width 0.12))
34 | (fp_line (start -9.24 9.24) (end 9.24 9.24) (layer F.SilkS) (width 0.12))
35 | (fp_line (start 9.24 9.24) (end 9.24 -9.24) (layer F.SilkS) (width 0.12))
36 | (fp_line (start 9.24 -9.24) (end 1 -9.24) (layer F.SilkS) (width 0.12))
37 | (fp_line (start -4.785 -6.435) (end -5.285 -6.435) (layer F.SilkS) (width 0.1))
38 | (fp_line (start -5.285 -6.435) (end -6.435 -5.285) (layer F.SilkS) (width 0.1))
39 | (fp_line (start -6.435 -5.285) (end -6.435 -4.785) (layer F.SilkS) (width 0.1))
40 | (fp_line (start 4.785 -6.435) (end 6.435 -6.435) (layer F.SilkS) (width 0.1))
41 | (fp_line (start 6.435 -6.435) (end 6.435 -4.785) (layer F.SilkS) (width 0.1))
42 | (fp_line (start -4.785 6.435) (end -6.435 6.435) (layer F.SilkS) (width 0.1))
43 | (fp_line (start -6.435 6.435) (end -6.435 4.785) (layer F.SilkS) (width 0.1))
44 | (fp_line (start 4.785 6.435) (end 6.435 6.435) (layer F.SilkS) (width 0.1))
45 | (fp_line (start 6.435 6.435) (end 6.435 4.785) (layer F.SilkS) (width 0.1))
46 | (pad 1 smd rect (at 0 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
47 | (pad 2 smd rect (at -1.27 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
48 | (pad 3 smd rect (at -2.54 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
49 | (pad 4 smd rect (at -3.81 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
50 | (pad 28 smd rect (at 1.27 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
51 | (pad 27 smd rect (at 2.54 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
52 | (pad 26 smd rect (at 3.81 -5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
53 | (pad 5 smd rect (at -5.3225 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
54 | (pad 6 smd rect (at -5.3225 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
55 | (pad 7 smd rect (at -5.3225 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
56 | (pad 8 smd rect (at -5.3225 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
57 | (pad 9 smd rect (at -5.3225 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
58 | (pad 10 smd rect (at -5.3225 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
59 | (pad 11 smd rect (at -5.3225 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
60 | (pad 12 smd rect (at -3.81 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
61 | (pad 13 smd rect (at -2.54 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
62 | (pad 14 smd rect (at -1.27 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
63 | (pad 15 smd rect (at 0 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
64 | (pad 16 smd rect (at 1.27 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
65 | (pad 17 smd rect (at 2.54 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
66 | (pad 18 smd rect (at 3.81 5.3225) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
67 | (pad 19 smd rect (at 5.3225 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
68 | (pad 20 smd rect (at 5.3225 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
69 | (pad 21 smd rect (at 5.3225 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
70 | (pad 22 smd rect (at 5.3225 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
71 | (pad 23 smd rect (at 5.3225 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
72 | (pad 24 smd rect (at 5.3225 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
73 | (pad 25 smd rect (at 5.3225 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
74 | (fp_text user %R (at 0 0) (layer F.Fab)
75 | (effects (font (size 1 1) (thickness 0.15)))
76 | )
77 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-28_SMD-Socket.wrl
78 | (at (xyz 0 0 0))
79 | (scale (xyz 1 1 1))
80 | (rotate (xyz 0 0 0))
81 | )
82 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-28_THT-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-28_THT-Socket (layer F.Cu) (tedit 58FB5F08)
2 | (descr "PLCC, 28 pins, through hole")
3 | (tags "plcc leaded")
4 | (fp_text reference REF** (at -1.27 -6.215) (layer F.SilkS)
5 | (effects (font (size 1 1) (thickness 0.15)))
6 | )
7 | (fp_text value PLCC-28_THT-Socket (at -1.27 13.835) (layer F.Fab)
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | )
10 | (fp_line (start -9.295 -5.215) (end -10.295 -4.215) (layer F.Fab) (width 0.1))
11 | (fp_line (start -10.295 -4.215) (end -10.295 12.835) (layer F.Fab) (width 0.1))
12 | (fp_line (start -10.295 12.835) (end 7.755 12.835) (layer F.Fab) (width 0.1))
13 | (fp_line (start 7.755 12.835) (end 7.755 -5.215) (layer F.Fab) (width 0.1))
14 | (fp_line (start 7.755 -5.215) (end -9.295 -5.215) (layer F.Fab) (width 0.1))
15 | (fp_line (start -10.77 -5.69) (end -10.77 13.31) (layer F.CrtYd) (width 0.05))
16 | (fp_line (start -10.77 13.31) (end 8.23 13.31) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start 8.23 13.31) (end 8.23 -5.69) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 8.23 -5.69) (end -10.77 -5.69) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start -7.755 -2.675) (end -7.755 10.295) (layer F.Fab) (width 0.1))
20 | (fp_line (start -7.755 10.295) (end 5.215 10.295) (layer F.Fab) (width 0.1))
21 | (fp_line (start 5.215 10.295) (end 5.215 -2.675) (layer F.Fab) (width 0.1))
22 | (fp_line (start 5.215 -2.675) (end -7.755 -2.675) (layer F.Fab) (width 0.1))
23 | (fp_line (start -1.77 -5.215) (end -1.27 -4.215) (layer F.Fab) (width 0.1))
24 | (fp_line (start -1.27 -4.215) (end -0.77 -5.215) (layer F.Fab) (width 0.1))
25 | (fp_line (start -2.27 -5.315) (end -9.395 -5.315) (layer F.SilkS) (width 0.12))
26 | (fp_line (start -9.395 -5.315) (end -10.395 -4.315) (layer F.SilkS) (width 0.12))
27 | (fp_line (start -10.395 -4.315) (end -10.395 12.935) (layer F.SilkS) (width 0.12))
28 | (fp_line (start -10.395 12.935) (end 7.855 12.935) (layer F.SilkS) (width 0.12))
29 | (fp_line (start 7.855 12.935) (end 7.855 -5.315) (layer F.SilkS) (width 0.12))
30 | (fp_line (start 7.855 -5.315) (end -0.27 -5.315) (layer F.SilkS) (width 0.12))
31 | (pad 1 thru_hole rect (at 0 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
32 | (pad 3 thru_hole circle (at -2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
33 | (pad 27 thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
34 | (pad 25 thru_hole circle (at 5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
35 | (pad 2 thru_hole circle (at -2.54 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
36 | (pad 4 thru_hole circle (at -5.08 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
37 | (pad 28 thru_hole circle (at 0 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
38 | (pad 26 thru_hole circle (at 2.54 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
39 | (pad 6 thru_hole circle (at -5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
40 | (pad 8 thru_hole circle (at -5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
41 | (pad 10 thru_hole circle (at -5.08 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
42 | (pad 5 thru_hole circle (at -7.62 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
43 | (pad 7 thru_hole circle (at -7.62 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
44 | (pad 9 thru_hole circle (at -7.62 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
45 | (pad 11 thru_hole circle (at -7.62 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
46 | (pad 13 thru_hole circle (at -5.08 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
47 | (pad 15 thru_hole circle (at -2.54 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
48 | (pad 17 thru_hole circle (at 0 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
49 | (pad 19 thru_hole circle (at 2.54 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
50 | (pad 12 thru_hole circle (at -5.08 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
51 | (pad 14 thru_hole circle (at -2.54 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
52 | (pad 16 thru_hole circle (at 0 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
53 | (pad 18 thru_hole circle (at 2.54 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
54 | (pad 20 thru_hole circle (at 2.54 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
55 | (pad 22 thru_hole circle (at 2.54 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
56 | (pad 24 thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
57 | (pad 26 thru_hole circle (at 2.54 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
58 | (pad 19 thru_hole circle (at 5.08 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
59 | (pad 21 thru_hole circle (at 5.08 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
60 | (pad 23 thru_hole circle (at 5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
61 | (pad 25 thru_hole circle (at 5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
62 | (fp_text user %R (at -1.27 3.81) (layer F.Fab)
63 | (effects (font (size 1 1) (thickness 0.15)))
64 | )
65 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-28_THT-Socket.wrl
66 | (at (xyz 0 0 0))
67 | (scale (xyz 1 1 1))
68 | (rotate (xyz 0 0 0))
69 | )
70 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-32.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-32 (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 32 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -8.555) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-32 (at 0 8.555) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -5.285 -7.555) (end -6.285 -6.555) (layer F.Fab) (width 0.1))
12 | (fp_line (start -6.285 -6.555) (end -6.285 7.555) (layer F.Fab) (width 0.1))
13 | (fp_line (start -6.285 7.555) (end 6.285 7.555) (layer F.Fab) (width 0.1))
14 | (fp_line (start 6.285 7.555) (end 6.285 -7.555) (layer F.Fab) (width 0.1))
15 | (fp_line (start 6.285 -7.555) (end -5.285 -7.555) (layer F.Fab) (width 0.1))
16 | (fp_line (start -6.75 -8.05) (end -6.75 8.05) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -6.75 8.05) (end 6.75 8.05) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 6.75 8.05) (end 6.75 -8.05) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 6.75 -8.05) (end -6.75 -8.05) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -0.5 -7.555) (end 0 -6.555) (layer F.Fab) (width 0.1))
21 | (fp_line (start 0 -6.555) (end 0.5 -7.555) (layer F.Fab) (width 0.1))
22 | (fp_line (start -4.785 -7.705) (end -5.285 -7.705) (layer F.SilkS) (width 0.1))
23 | (fp_line (start -5.285 -7.705) (end -6.435 -6.555) (layer F.SilkS) (width 0.1))
24 | (fp_line (start -6.435 -6.555) (end -6.435 -6.055) (layer F.SilkS) (width 0.1))
25 | (fp_line (start 4.785 -7.705) (end 6.435 -7.705) (layer F.SilkS) (width 0.1))
26 | (fp_line (start 6.435 -7.705) (end 6.435 -6.055) (layer F.SilkS) (width 0.1))
27 | (fp_line (start -4.785 7.705) (end -6.435 7.705) (layer F.SilkS) (width 0.1))
28 | (fp_line (start -6.435 7.705) (end -6.435 6.055) (layer F.SilkS) (width 0.1))
29 | (fp_line (start 4.785 7.705) (end 6.435 7.705) (layer F.SilkS) (width 0.1))
30 | (fp_line (start 6.435 7.705) (end 6.435 6.055) (layer F.SilkS) (width 0.1))
31 | (pad 1 smd rect (at -0.635 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
32 | (pad 2 smd rect (at -1.905 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
33 | (pad 3 smd rect (at -3.175 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
34 | (pad 4 smd rect (at -4.445 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
35 | (pad 32 smd rect (at 0.635 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
36 | (pad 31 smd rect (at 1.905 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
37 | (pad 30 smd rect (at 3.175 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
38 | (pad 29 smd rect (at 4.445 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
39 | (pad 5 smd rect (at -5.3225 -4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
40 | (pad 6 smd rect (at -5.3225 -3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
41 | (pad 7 smd rect (at -5.3225 -1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
42 | (pad 8 smd rect (at -5.3225 -0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
43 | (pad 9 smd rect (at -5.3225 0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
44 | (pad 10 smd rect (at -5.3225 1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
45 | (pad 11 smd rect (at -5.3225 3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
46 | (pad 12 smd rect (at -5.3225 4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
47 | (pad 13 smd rect (at -4.445 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
48 | (pad 14 smd rect (at -3.175 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
49 | (pad 15 smd rect (at -1.905 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
50 | (pad 16 smd rect (at -0.635 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
51 | (pad 17 smd rect (at 0.635 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
52 | (pad 18 smd rect (at 1.905 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
53 | (pad 19 smd rect (at 3.175 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
54 | (pad 20 smd rect (at 4.445 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
55 | (pad 21 smd rect (at 5.3225 4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
56 | (pad 22 smd rect (at 5.3225 3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
57 | (pad 23 smd rect (at 5.3225 1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
58 | (pad 24 smd rect (at 5.3225 0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
59 | (pad 25 smd rect (at 5.3225 -0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
60 | (pad 26 smd rect (at 5.3225 -1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
61 | (pad 27 smd rect (at 5.3225 -3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
62 | (pad 28 smd rect (at 5.3225 -4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
63 | (fp_text user %R (at 0 0) (layer F.Fab)
64 | (effects (font (size 1 1) (thickness 0.15)))
65 | )
66 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-32.wrl
67 | (at (xyz 0 0 0))
68 | (scale (xyz 1 1 1))
69 | (rotate (xyz 0 0 0))
70 | )
71 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-32_SMD-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-32_SMD-Socket (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 32 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -11.375) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-32_SMD-Socket (at 0 11.375) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -8.09 -10.375) (end -9.09 -9.375) (layer F.Fab) (width 0.1))
12 | (fp_line (start -9.09 -9.375) (end -9.09 10.375) (layer F.Fab) (width 0.1))
13 | (fp_line (start -9.09 10.375) (end 9.09 10.375) (layer F.Fab) (width 0.1))
14 | (fp_line (start 9.09 10.375) (end 9.09 -10.375) (layer F.Fab) (width 0.1))
15 | (fp_line (start 9.09 -10.375) (end -8.09 -10.375) (layer F.Fab) (width 0.1))
16 | (fp_line (start -9.55 -10.85) (end -9.55 10.85) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -9.55 10.85) (end 9.55 10.85) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 9.55 10.85) (end 9.55 -10.85) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 9.55 -10.85) (end -9.55 -10.85) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -5.285 -7.555) (end -6.285 -6.555) (layer F.Fab) (width 0.1))
21 | (fp_line (start -6.285 -6.555) (end -6.285 7.555) (layer F.Fab) (width 0.1))
22 | (fp_line (start -6.285 7.555) (end 6.285 7.555) (layer F.Fab) (width 0.1))
23 | (fp_line (start 6.285 7.555) (end 6.285 -7.555) (layer F.Fab) (width 0.1))
24 | (fp_line (start 6.285 -7.555) (end -5.285 -7.555) (layer F.Fab) (width 0.1))
25 | (fp_line (start -7.82 -9.105) (end -7.82 9.105) (layer F.Fab) (width 0.1))
26 | (fp_line (start -7.82 9.105) (end 7.82 9.105) (layer F.Fab) (width 0.1))
27 | (fp_line (start 7.82 9.105) (end 7.82 -9.105) (layer F.Fab) (width 0.1))
28 | (fp_line (start 7.82 -9.105) (end -7.82 -9.105) (layer F.Fab) (width 0.1))
29 | (fp_line (start -0.5 -10.375) (end 0 -9.375) (layer F.Fab) (width 0.1))
30 | (fp_line (start 0 -9.375) (end 0.5 -10.375) (layer F.Fab) (width 0.1))
31 | (fp_line (start -1 -10.525) (end -8.24 -10.525) (layer F.SilkS) (width 0.12))
32 | (fp_line (start -8.24 -10.525) (end -9.24 -9.525) (layer F.SilkS) (width 0.12))
33 | (fp_line (start -9.24 -9.525) (end -9.24 10.525) (layer F.SilkS) (width 0.12))
34 | (fp_line (start -9.24 10.525) (end 9.24 10.525) (layer F.SilkS) (width 0.12))
35 | (fp_line (start 9.24 10.525) (end 9.24 -10.525) (layer F.SilkS) (width 0.12))
36 | (fp_line (start 9.24 -10.525) (end 1 -10.525) (layer F.SilkS) (width 0.12))
37 | (fp_line (start -4.785 -7.705) (end -5.285 -7.705) (layer F.SilkS) (width 0.1))
38 | (fp_line (start -5.285 -7.705) (end -6.435 -6.555) (layer F.SilkS) (width 0.1))
39 | (fp_line (start -6.435 -6.555) (end -6.435 -6.055) (layer F.SilkS) (width 0.1))
40 | (fp_line (start 4.785 -7.705) (end 6.435 -7.705) (layer F.SilkS) (width 0.1))
41 | (fp_line (start 6.435 -7.705) (end 6.435 -6.055) (layer F.SilkS) (width 0.1))
42 | (fp_line (start -4.785 7.705) (end -6.435 7.705) (layer F.SilkS) (width 0.1))
43 | (fp_line (start -6.435 7.705) (end -6.435 6.055) (layer F.SilkS) (width 0.1))
44 | (fp_line (start 4.785 7.705) (end 6.435 7.705) (layer F.SilkS) (width 0.1))
45 | (fp_line (start 6.435 7.705) (end 6.435 6.055) (layer F.SilkS) (width 0.1))
46 | (pad 1 smd rect (at -0.635 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
47 | (pad 2 smd rect (at -1.905 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
48 | (pad 3 smd rect (at -3.175 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
49 | (pad 4 smd rect (at -4.445 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
50 | (pad 32 smd rect (at 0.635 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
51 | (pad 31 smd rect (at 1.905 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
52 | (pad 30 smd rect (at 3.175 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
53 | (pad 29 smd rect (at 4.445 -6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
54 | (pad 5 smd rect (at -5.3225 -4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
55 | (pad 6 smd rect (at -5.3225 -3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
56 | (pad 7 smd rect (at -5.3225 -1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
57 | (pad 8 smd rect (at -5.3225 -0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
58 | (pad 9 smd rect (at -5.3225 0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
59 | (pad 10 smd rect (at -5.3225 1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
60 | (pad 11 smd rect (at -5.3225 3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
61 | (pad 12 smd rect (at -5.3225 4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
62 | (pad 13 smd rect (at -4.445 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
63 | (pad 14 smd rect (at -3.175 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
64 | (pad 15 smd rect (at -1.905 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
65 | (pad 16 smd rect (at -0.635 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
66 | (pad 17 smd rect (at 0.635 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
67 | (pad 18 smd rect (at 1.905 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
68 | (pad 19 smd rect (at 3.175 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
69 | (pad 20 smd rect (at 4.445 6.5925) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
70 | (pad 21 smd rect (at 5.3225 4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
71 | (pad 22 smd rect (at 5.3225 3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
72 | (pad 23 smd rect (at 5.3225 1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
73 | (pad 24 smd rect (at 5.3225 0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
74 | (pad 25 smd rect (at 5.3225 -0.635) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
75 | (pad 26 smd rect (at 5.3225 -1.905) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
76 | (pad 27 smd rect (at 5.3225 -3.175) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
77 | (pad 28 smd rect (at 5.3225 -4.445) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
78 | (fp_text user %R (at 0 0) (layer F.Fab)
79 | (effects (font (size 1 1) (thickness 0.15)))
80 | )
81 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-32_SMD-Socket.wrl
82 | (at (xyz 0 0 0))
83 | (scale (xyz 1 1 1))
84 | (rotate (xyz 0 0 0))
85 | )
86 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-32_THT-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-32_THT-Socket (layer F.Cu) (tedit 5E77F70F)
2 | (descr "PLCC, 32 pins, through hole")
3 | (tags "plcc leaded")
4 | (fp_text reference REF** (at -1.27 -6.22) (layer F.SilkS)
5 | (effects (font (size 1 1) (thickness 0.15)))
6 | )
7 | (fp_text value PLCC-32_THT-Socket (at -1.27 16.38) (layer F.Fab)
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | )
10 | (fp_line (start -9.295 -5.22) (end -10.295 -4.22) (layer F.Fab) (width 0.1))
11 | (fp_line (start -10.295 -4.22) (end -10.295 15.38) (layer F.Fab) (width 0.1))
12 | (fp_line (start -10.295 15.38) (end 7.755 15.38) (layer F.Fab) (width 0.1))
13 | (fp_line (start 7.755 15.38) (end 7.755 -5.22) (layer F.Fab) (width 0.1))
14 | (fp_line (start 7.755 -5.22) (end -9.295 -5.22) (layer F.Fab) (width 0.1))
15 | (fp_line (start -10.77 -5.72) (end -10.77 15.88) (layer F.CrtYd) (width 0.05))
16 | (fp_line (start -10.77 15.88) (end 8.23 15.88) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start 8.23 15.88) (end 8.23 -5.72) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 8.23 -5.72) (end -10.77 -5.72) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start -7.755 -2.68) (end -7.755 12.84) (layer F.Fab) (width 0.1))
20 | (fp_line (start -7.755 12.84) (end 5.215 12.84) (layer F.Fab) (width 0.1))
21 | (fp_line (start 5.215 12.84) (end 5.215 -2.68) (layer F.Fab) (width 0.1))
22 | (fp_line (start 5.215 -2.68) (end -7.755 -2.68) (layer F.Fab) (width 0.1))
23 | (fp_line (start -1.77 -5.22) (end -1.27 -4.22) (layer F.Fab) (width 0.1))
24 | (fp_line (start -1.27 -4.22) (end -0.77 -5.22) (layer F.Fab) (width 0.1))
25 | (fp_line (start -2.27 -5.32) (end -9.395 -5.32) (layer F.SilkS) (width 0.12))
26 | (fp_line (start -9.395 -5.32) (end -10.395 -4.32) (layer F.SilkS) (width 0.12))
27 | (fp_line (start -10.395 -4.32) (end -10.395 15.48) (layer F.SilkS) (width 0.12))
28 | (fp_line (start -10.395 15.48) (end 7.855 15.48) (layer F.SilkS) (width 0.12))
29 | (fp_line (start 7.855 15.48) (end 7.855 -5.32) (layer F.SilkS) (width 0.12))
30 | (fp_line (start 7.855 -5.32) (end -0.27 -5.32) (layer F.SilkS) (width 0.12))
31 | (fp_text user %V (at -1.27 5.08 90) (layer F.SilkS)
32 | (effects (font (size 1 1) (thickness 0.15)))
33 | )
34 | (pad 1 thru_hole rect (at 0 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
35 | (pad 3 thru_hole circle (at -2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
36 | (pad 31 thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
37 | (pad 29 thru_hole circle (at 5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
38 | (pad 2 thru_hole circle (at -2.54 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
39 | (pad 4 thru_hole circle (at -5.08 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
40 | (pad 32 thru_hole circle (at 0 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
41 | (pad 30 thru_hole circle (at 2.54 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
42 | (pad 6 thru_hole circle (at -5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
43 | (pad 8 thru_hole circle (at -5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
44 | (pad 10 thru_hole circle (at -5.08 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
45 | (pad 12 thru_hole circle (at -5.08 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
46 | (pad 5 thru_hole circle (at -7.62 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
47 | (pad 7 thru_hole circle (at -7.62 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
48 | (pad 9 thru_hole circle (at -7.62 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
49 | (pad 11 thru_hole circle (at -7.62 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
50 | (pad 13 thru_hole circle (at -7.62 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
51 | (pad 15 thru_hole circle (at -5.08 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
52 | (pad 17 thru_hole circle (at -2.54 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
53 | (pad 19 thru_hole circle (at 0 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
54 | (pad 14 thru_hole circle (at -5.08 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
55 | (pad 16 thru_hole circle (at -2.54 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
56 | (pad 18 thru_hole circle (at 0 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
57 | (pad 20 thru_hole circle (at 2.54 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
58 | (pad 22 thru_hole circle (at 2.54 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
59 | (pad 24 thru_hole circle (at 2.54 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
60 | (pad 26 thru_hole circle (at 2.54 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
61 | (pad 28 thru_hole circle (at 2.54 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
62 | (pad 21 thru_hole circle (at 5.08 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
63 | (pad 23 thru_hole circle (at 5.08 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
64 | (pad 25 thru_hole circle (at 5.08 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
65 | (pad 27 thru_hole circle (at 5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
66 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-32_THT-Socket.wrl
67 | (at (xyz 0 0 0))
68 | (scale (xyz 1 1 1))
69 | (rotate (xyz 0 0 0))
70 | )
71 | )
72 |
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-44.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-44 (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 44 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -9.825) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-44 (at 0 9.825) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -7.825 -8.825) (end -8.825 -7.825) (layer F.Fab) (width 0.1))
12 | (fp_line (start -8.825 -7.825) (end -8.825 8.825) (layer F.Fab) (width 0.1))
13 | (fp_line (start -8.825 8.825) (end 8.825 8.825) (layer F.Fab) (width 0.1))
14 | (fp_line (start 8.825 8.825) (end 8.825 -8.825) (layer F.Fab) (width 0.1))
15 | (fp_line (start 8.825 -8.825) (end -7.825 -8.825) (layer F.Fab) (width 0.1))
16 | (fp_line (start -9.3 -9.3) (end -9.3 9.3) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -9.3 9.3) (end 9.3 9.3) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 9.3 9.3) (end 9.3 -9.3) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 9.3 -9.3) (end -9.3 -9.3) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -0.5 -8.825) (end 0 -7.825) (layer F.Fab) (width 0.1))
21 | (fp_line (start 0 -7.825) (end 0.5 -8.825) (layer F.Fab) (width 0.1))
22 | (fp_line (start -7.325 -8.975) (end -7.825 -8.975) (layer F.SilkS) (width 0.1))
23 | (fp_line (start -7.825 -8.975) (end -8.975 -7.825) (layer F.SilkS) (width 0.1))
24 | (fp_line (start -8.975 -7.825) (end -8.975 -7.325) (layer F.SilkS) (width 0.1))
25 | (fp_line (start 7.325 -8.975) (end 8.975 -8.975) (layer F.SilkS) (width 0.1))
26 | (fp_line (start 8.975 -8.975) (end 8.975 -7.325) (layer F.SilkS) (width 0.1))
27 | (fp_line (start -7.325 8.975) (end -8.975 8.975) (layer F.SilkS) (width 0.1))
28 | (fp_line (start -8.975 8.975) (end -8.975 7.325) (layer F.SilkS) (width 0.1))
29 | (fp_line (start 7.325 8.975) (end 8.975 8.975) (layer F.SilkS) (width 0.1))
30 | (fp_line (start 8.975 8.975) (end 8.975 7.325) (layer F.SilkS) (width 0.1))
31 | (pad 1 smd rect (at 0 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
32 | (pad 2 smd rect (at -1.27 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
33 | (pad 3 smd rect (at -2.54 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
34 | (pad 4 smd rect (at -3.81 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
35 | (pad 5 smd rect (at -5.08 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
36 | (pad 6 smd rect (at -6.35 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
37 | (pad 44 smd rect (at 1.27 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
38 | (pad 43 smd rect (at 2.54 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
39 | (pad 42 smd rect (at 3.81 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
40 | (pad 41 smd rect (at 5.08 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
41 | (pad 40 smd rect (at 6.35 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
42 | (pad 7 smd rect (at -7.8625 -6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
43 | (pad 8 smd rect (at -7.8625 -5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
44 | (pad 9 smd rect (at -7.8625 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
45 | (pad 10 smd rect (at -7.8625 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
46 | (pad 11 smd rect (at -7.8625 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
47 | (pad 12 smd rect (at -7.8625 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
48 | (pad 13 smd rect (at -7.8625 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
49 | (pad 14 smd rect (at -7.8625 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
50 | (pad 15 smd rect (at -7.8625 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
51 | (pad 16 smd rect (at -7.8625 5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
52 | (pad 17 smd rect (at -7.8625 6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
53 | (pad 18 smd rect (at -6.35 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
54 | (pad 19 smd rect (at -5.08 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
55 | (pad 20 smd rect (at -3.81 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
56 | (pad 21 smd rect (at -2.54 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
57 | (pad 22 smd rect (at -1.27 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
58 | (pad 23 smd rect (at 0 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
59 | (pad 24 smd rect (at 1.27 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
60 | (pad 25 smd rect (at 2.54 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
61 | (pad 26 smd rect (at 3.81 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
62 | (pad 27 smd rect (at 5.08 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
63 | (pad 28 smd rect (at 6.35 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
64 | (pad 29 smd rect (at 7.8625 6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
65 | (pad 30 smd rect (at 7.8625 5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
66 | (pad 31 smd rect (at 7.8625 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
67 | (pad 32 smd rect (at 7.8625 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
68 | (pad 33 smd rect (at 7.8625 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
69 | (pad 34 smd rect (at 7.8625 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
70 | (pad 35 smd rect (at 7.8625 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
71 | (pad 36 smd rect (at 7.8625 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
72 | (pad 37 smd rect (at 7.8625 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
73 | (pad 38 smd rect (at 7.8625 -5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
74 | (pad 39 smd rect (at 7.8625 -6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
75 | (fp_text user %R (at 0 0) (layer F.Fab)
76 | (effects (font (size 1 1) (thickness 0.15)))
77 | )
78 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-44.wrl
79 | (at (xyz 0 0 0))
80 | (scale (xyz 1 1 1))
81 | (rotate (xyz 0 0 0))
82 | )
83 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-44_SMD-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-44_SMD-Socket (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 44 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -12.64) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-44_SMD-Socket (at 0 12.64) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -10.64 -11.64) (end -11.64 -10.64) (layer F.Fab) (width 0.1))
12 | (fp_line (start -11.64 -10.64) (end -11.64 11.64) (layer F.Fab) (width 0.1))
13 | (fp_line (start -11.64 11.64) (end 11.64 11.64) (layer F.Fab) (width 0.1))
14 | (fp_line (start 11.64 11.64) (end 11.64 -11.64) (layer F.Fab) (width 0.1))
15 | (fp_line (start 11.64 -11.64) (end -10.64 -11.64) (layer F.Fab) (width 0.1))
16 | (fp_line (start -12.1 -12.1) (end -12.1 12.1) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -12.1 12.1) (end 12.1 12.1) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 12.1 12.1) (end 12.1 -12.1) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 12.1 -12.1) (end -12.1 -12.1) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -7.825 -8.825) (end -8.825 -7.825) (layer F.Fab) (width 0.1))
21 | (fp_line (start -8.825 -7.825) (end -8.825 8.825) (layer F.Fab) (width 0.1))
22 | (fp_line (start -8.825 8.825) (end 8.825 8.825) (layer F.Fab) (width 0.1))
23 | (fp_line (start 8.825 8.825) (end 8.825 -8.825) (layer F.Fab) (width 0.1))
24 | (fp_line (start 8.825 -8.825) (end -7.825 -8.825) (layer F.Fab) (width 0.1))
25 | (fp_line (start -10.37 -10.37) (end -10.37 10.37) (layer F.Fab) (width 0.1))
26 | (fp_line (start -10.37 10.37) (end 10.37 10.37) (layer F.Fab) (width 0.1))
27 | (fp_line (start 10.37 10.37) (end 10.37 -10.37) (layer F.Fab) (width 0.1))
28 | (fp_line (start 10.37 -10.37) (end -10.37 -10.37) (layer F.Fab) (width 0.1))
29 | (fp_line (start -0.5 -11.64) (end 0 -10.64) (layer F.Fab) (width 0.1))
30 | (fp_line (start 0 -10.64) (end 0.5 -11.64) (layer F.Fab) (width 0.1))
31 | (fp_line (start -1 -11.79) (end -10.79 -11.79) (layer F.SilkS) (width 0.12))
32 | (fp_line (start -10.79 -11.79) (end -11.79 -10.79) (layer F.SilkS) (width 0.12))
33 | (fp_line (start -11.79 -10.79) (end -11.79 11.79) (layer F.SilkS) (width 0.12))
34 | (fp_line (start -11.79 11.79) (end 11.79 11.79) (layer F.SilkS) (width 0.12))
35 | (fp_line (start 11.79 11.79) (end 11.79 -11.79) (layer F.SilkS) (width 0.12))
36 | (fp_line (start 11.79 -11.79) (end 1 -11.79) (layer F.SilkS) (width 0.12))
37 | (fp_line (start -7.325 -8.975) (end -7.825 -8.975) (layer F.SilkS) (width 0.1))
38 | (fp_line (start -7.825 -8.975) (end -8.975 -7.825) (layer F.SilkS) (width 0.1))
39 | (fp_line (start -8.975 -7.825) (end -8.975 -7.325) (layer F.SilkS) (width 0.1))
40 | (fp_line (start 7.325 -8.975) (end 8.975 -8.975) (layer F.SilkS) (width 0.1))
41 | (fp_line (start 8.975 -8.975) (end 8.975 -7.325) (layer F.SilkS) (width 0.1))
42 | (fp_line (start -7.325 8.975) (end -8.975 8.975) (layer F.SilkS) (width 0.1))
43 | (fp_line (start -8.975 8.975) (end -8.975 7.325) (layer F.SilkS) (width 0.1))
44 | (fp_line (start 7.325 8.975) (end 8.975 8.975) (layer F.SilkS) (width 0.1))
45 | (fp_line (start 8.975 8.975) (end 8.975 7.325) (layer F.SilkS) (width 0.1))
46 | (pad 1 smd rect (at 0 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
47 | (pad 2 smd rect (at -1.27 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
48 | (pad 3 smd rect (at -2.54 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
49 | (pad 4 smd rect (at -3.81 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
50 | (pad 5 smd rect (at -5.08 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
51 | (pad 6 smd rect (at -6.35 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
52 | (pad 44 smd rect (at 1.27 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
53 | (pad 43 smd rect (at 2.54 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
54 | (pad 42 smd rect (at 3.81 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
55 | (pad 41 smd rect (at 5.08 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
56 | (pad 40 smd rect (at 6.35 -7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
57 | (pad 7 smd rect (at -7.8625 -6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
58 | (pad 8 smd rect (at -7.8625 -5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
59 | (pad 9 smd rect (at -7.8625 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
60 | (pad 10 smd rect (at -7.8625 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
61 | (pad 11 smd rect (at -7.8625 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
62 | (pad 12 smd rect (at -7.8625 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
63 | (pad 13 smd rect (at -7.8625 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
64 | (pad 14 smd rect (at -7.8625 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
65 | (pad 15 smd rect (at -7.8625 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
66 | (pad 16 smd rect (at -7.8625 5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
67 | (pad 17 smd rect (at -7.8625 6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
68 | (pad 18 smd rect (at -6.35 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
69 | (pad 19 smd rect (at -5.08 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
70 | (pad 20 smd rect (at -3.81 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
71 | (pad 21 smd rect (at -2.54 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
72 | (pad 22 smd rect (at -1.27 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
73 | (pad 23 smd rect (at 0 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
74 | (pad 24 smd rect (at 1.27 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
75 | (pad 25 smd rect (at 2.54 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
76 | (pad 26 smd rect (at 3.81 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
77 | (pad 27 smd rect (at 5.08 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
78 | (pad 28 smd rect (at 6.35 7.8625) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
79 | (pad 29 smd rect (at 7.8625 6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
80 | (pad 30 smd rect (at 7.8625 5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
81 | (pad 31 smd rect (at 7.8625 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
82 | (pad 32 smd rect (at 7.8625 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
83 | (pad 33 smd rect (at 7.8625 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
84 | (pad 34 smd rect (at 7.8625 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
85 | (pad 35 smd rect (at 7.8625 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
86 | (pad 36 smd rect (at 7.8625 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
87 | (pad 37 smd rect (at 7.8625 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
88 | (pad 38 smd rect (at 7.8625 -5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
89 | (pad 39 smd rect (at 7.8625 -6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
90 | (fp_text user %R (at 0 0) (layer F.Fab)
91 | (effects (font (size 1 1) (thickness 0.15)))
92 | )
93 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-44_SMD-Socket.wrl
94 | (at (xyz 0 0 0))
95 | (scale (xyz 1 1 1))
96 | (rotate (xyz 0 0 0))
97 | )
98 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-44_THT-Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-44_THT-Socket (layer F.Cu) (tedit 58FB5F08)
2 | (descr "PLCC, 44 pins, through hole")
3 | (tags "plcc leaded")
4 | (fp_text reference REF** (at -1.27 -6.4) (layer F.SilkS)
5 | (effects (font (size 1 1) (thickness 0.15)))
6 | )
7 | (fp_text value PLCC-44_THT-Socket (at -1.27 19.1) (layer F.Fab)
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | )
10 | (fp_line (start -12.02 -5.4) (end -13.02 -4.4) (layer F.Fab) (width 0.1))
11 | (fp_line (start -13.02 -4.4) (end -13.02 18.1) (layer F.Fab) (width 0.1))
12 | (fp_line (start -13.02 18.1) (end 10.48 18.1) (layer F.Fab) (width 0.1))
13 | (fp_line (start 10.48 18.1) (end 10.48 -5.4) (layer F.Fab) (width 0.1))
14 | (fp_line (start 10.48 -5.4) (end -12.02 -5.4) (layer F.Fab) (width 0.1))
15 | (fp_line (start -13.52 -5.9) (end -13.52 18.6) (layer F.CrtYd) (width 0.05))
16 | (fp_line (start -13.52 18.6) (end 10.98 18.6) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start 10.98 18.6) (end 10.98 -5.9) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 10.98 -5.9) (end -13.52 -5.9) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start -10.48 -2.86) (end -10.48 15.56) (layer F.Fab) (width 0.1))
20 | (fp_line (start -10.48 15.56) (end 7.94 15.56) (layer F.Fab) (width 0.1))
21 | (fp_line (start 7.94 15.56) (end 7.94 -2.86) (layer F.Fab) (width 0.1))
22 | (fp_line (start 7.94 -2.86) (end -10.48 -2.86) (layer F.Fab) (width 0.1))
23 | (fp_line (start -1.77 -5.4) (end -1.27 -4.4) (layer F.Fab) (width 0.1))
24 | (fp_line (start -1.27 -4.4) (end -0.77 -5.4) (layer F.Fab) (width 0.1))
25 | (fp_line (start -2.27 -5.5) (end -12.12 -5.5) (layer F.SilkS) (width 0.12))
26 | (fp_line (start -12.12 -5.5) (end -13.12 -4.5) (layer F.SilkS) (width 0.12))
27 | (fp_line (start -13.12 -4.5) (end -13.12 18.2) (layer F.SilkS) (width 0.12))
28 | (fp_line (start -13.12 18.2) (end 10.58 18.2) (layer F.SilkS) (width 0.12))
29 | (fp_line (start 10.58 18.2) (end 10.58 -5.5) (layer F.SilkS) (width 0.12))
30 | (fp_line (start 10.58 -5.5) (end -0.27 -5.5) (layer F.SilkS) (width 0.12))
31 | (pad 1 thru_hole rect (at 0 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
32 | (pad 3 thru_hole circle (at -2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
33 | (pad 5 thru_hole circle (at -5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
34 | (pad 43 thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
35 | (pad 41 thru_hole circle (at 5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
36 | (pad 39 thru_hole circle (at 7.62 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
37 | (pad 2 thru_hole circle (at -2.54 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
38 | (pad 4 thru_hole circle (at -5.08 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
39 | (pad 6 thru_hole circle (at -7.62 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
40 | (pad 44 thru_hole circle (at 0 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
41 | (pad 42 thru_hole circle (at 2.54 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
42 | (pad 40 thru_hole circle (at 5.08 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
43 | (pad 8 thru_hole circle (at -7.62 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
44 | (pad 10 thru_hole circle (at -7.62 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
45 | (pad 12 thru_hole circle (at -7.62 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
46 | (pad 14 thru_hole circle (at -7.62 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
47 | (pad 16 thru_hole circle (at -7.62 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
48 | (pad 7 thru_hole circle (at -10.16 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
49 | (pad 9 thru_hole circle (at -10.16 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
50 | (pad 11 thru_hole circle (at -10.16 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
51 | (pad 13 thru_hole circle (at -10.16 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
52 | (pad 15 thru_hole circle (at -10.16 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
53 | (pad 17 thru_hole circle (at -10.16 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
54 | (pad 19 thru_hole circle (at -7.62 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
55 | (pad 21 thru_hole circle (at -5.08 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
56 | (pad 23 thru_hole circle (at -2.54 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
57 | (pad 25 thru_hole circle (at 0 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
58 | (pad 27 thru_hole circle (at 2.54 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
59 | (pad 29 thru_hole circle (at 5.08 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
60 | (pad 18 thru_hole circle (at -7.62 15.24) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
61 | (pad 20 thru_hole circle (at -5.08 15.24) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
62 | (pad 22 thru_hole circle (at -2.54 15.24) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
63 | (pad 24 thru_hole circle (at 0 15.24) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
64 | (pad 26 thru_hole circle (at 2.54 15.24) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
65 | (pad 28 thru_hole circle (at 5.08 15.24) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
66 | (pad 30 thru_hole circle (at 5.08 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
67 | (pad 32 thru_hole circle (at 5.08 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
68 | (pad 34 thru_hole circle (at 5.08 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
69 | (pad 36 thru_hole circle (at 5.08 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
70 | (pad 38 thru_hole circle (at 5.08 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
71 | (pad 40 thru_hole circle (at 5.08 -2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
72 | (pad 29 thru_hole circle (at 7.62 12.7) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
73 | (pad 31 thru_hole circle (at 7.62 10.16) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
74 | (pad 33 thru_hole circle (at 7.62 7.62) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
75 | (pad 35 thru_hole circle (at 7.62 5.08) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
76 | (pad 37 thru_hole circle (at 7.62 2.54) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
77 | (pad 39 thru_hole circle (at 7.62 0) (size 1.75 1.75) (drill 0.95) (layers *.Cu *.Mask))
78 | (fp_text user %R (at -1.27 6.35) (layer F.Fab)
79 | (effects (font (size 1 1) (thickness 0.15)))
80 | )
81 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-44_THT-Socket.wrl
82 | (at (xyz 0 0 0))
83 | (scale (xyz 1 1 1))
84 | (rotate (xyz 0 0 0))
85 | )
86 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/PLCC-52.kicad_mod:
--------------------------------------------------------------------------------
1 | (module PLCC-52 (layer F.Cu) (tedit 58FB5F99)
2 | (descr "PLCC, 52 pins, surface mount")
3 | (tags "plcc smt")
4 | (attr smd)
5 | (fp_text reference REF** (at 0 -11.095) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value PLCC-52 (at 0 11.095) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -9.095 -10.095) (end -10.095 -9.095) (layer F.Fab) (width 0.1))
12 | (fp_line (start -10.095 -9.095) (end -10.095 10.095) (layer F.Fab) (width 0.1))
13 | (fp_line (start -10.095 10.095) (end 10.095 10.095) (layer F.Fab) (width 0.1))
14 | (fp_line (start 10.095 10.095) (end 10.095 -10.095) (layer F.Fab) (width 0.1))
15 | (fp_line (start 10.095 -10.095) (end -9.095 -10.095) (layer F.Fab) (width 0.1))
16 | (fp_line (start -10.55 -10.55) (end -10.55 10.55) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start -10.55 10.55) (end 10.55 10.55) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start 10.55 10.55) (end 10.55 -10.55) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 10.55 -10.55) (end -10.55 -10.55) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start -0.5 -10.095) (end 0 -9.095) (layer F.Fab) (width 0.1))
21 | (fp_line (start 0 -9.095) (end 0.5 -10.095) (layer F.Fab) (width 0.1))
22 | (fp_line (start -8.595 -10.245) (end -9.095 -10.245) (layer F.SilkS) (width 0.1))
23 | (fp_line (start -9.095 -10.245) (end -10.245 -9.095) (layer F.SilkS) (width 0.1))
24 | (fp_line (start -10.245 -9.095) (end -10.245 -8.595) (layer F.SilkS) (width 0.1))
25 | (fp_line (start 8.595 -10.245) (end 10.245 -10.245) (layer F.SilkS) (width 0.1))
26 | (fp_line (start 10.245 -10.245) (end 10.245 -8.595) (layer F.SilkS) (width 0.1))
27 | (fp_line (start -8.595 10.245) (end -10.245 10.245) (layer F.SilkS) (width 0.1))
28 | (fp_line (start -10.245 10.245) (end -10.245 8.595) (layer F.SilkS) (width 0.1))
29 | (fp_line (start 8.595 10.245) (end 10.245 10.245) (layer F.SilkS) (width 0.1))
30 | (fp_line (start 10.245 10.245) (end 10.245 8.595) (layer F.SilkS) (width 0.1))
31 | (pad 1 smd rect (at 0 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
32 | (pad 2 smd rect (at -1.27 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
33 | (pad 3 smd rect (at -2.54 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
34 | (pad 4 smd rect (at -3.81 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
35 | (pad 5 smd rect (at -5.08 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
36 | (pad 6 smd rect (at -6.35 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
37 | (pad 7 smd rect (at -7.62 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
38 | (pad 52 smd rect (at 1.27 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
39 | (pad 51 smd rect (at 2.54 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
40 | (pad 50 smd rect (at 3.81 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
41 | (pad 49 smd rect (at 5.08 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
42 | (pad 48 smd rect (at 6.35 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
43 | (pad 47 smd rect (at 7.62 -9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
44 | (pad 8 smd rect (at -9.1325 -7.62) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
45 | (pad 9 smd rect (at -9.1325 -6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
46 | (pad 10 smd rect (at -9.1325 -5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
47 | (pad 11 smd rect (at -9.1325 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
48 | (pad 12 smd rect (at -9.1325 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
49 | (pad 13 smd rect (at -9.1325 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
50 | (pad 14 smd rect (at -9.1325 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
51 | (pad 15 smd rect (at -9.1325 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
52 | (pad 16 smd rect (at -9.1325 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
53 | (pad 17 smd rect (at -9.1325 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
54 | (pad 18 smd rect (at -9.1325 5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
55 | (pad 19 smd rect (at -9.1325 6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
56 | (pad 20 smd rect (at -9.1325 7.62) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
57 | (pad 21 smd rect (at -7.62 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
58 | (pad 22 smd rect (at -6.35 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
59 | (pad 23 smd rect (at -5.08 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
60 | (pad 24 smd rect (at -3.81 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
61 | (pad 25 smd rect (at -2.54 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
62 | (pad 26 smd rect (at -1.27 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
63 | (pad 27 smd rect (at 0 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
64 | (pad 28 smd rect (at 1.27 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
65 | (pad 29 smd rect (at 2.54 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
66 | (pad 30 smd rect (at 3.81 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
67 | (pad 31 smd rect (at 5.08 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
68 | (pad 32 smd rect (at 6.35 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
69 | (pad 33 smd rect (at 7.62 9.1325) (size 0.7 1.925) (layers F.Cu F.Mask F.Paste))
70 | (pad 34 smd rect (at 9.1325 7.62) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
71 | (pad 35 smd rect (at 9.1325 6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
72 | (pad 36 smd rect (at 9.1325 5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
73 | (pad 37 smd rect (at 9.1325 3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
74 | (pad 38 smd rect (at 9.1325 2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
75 | (pad 39 smd rect (at 9.1325 1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
76 | (pad 40 smd rect (at 9.1325 0) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
77 | (pad 41 smd rect (at 9.1325 -1.27) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
78 | (pad 42 smd rect (at 9.1325 -2.54) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
79 | (pad 43 smd rect (at 9.1325 -3.81) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
80 | (pad 44 smd rect (at 9.1325 -5.08) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
81 | (pad 45 smd rect (at 9.1325 -6.35) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
82 | (pad 46 smd rect (at 9.1325 -7.62) (size 1.925 0.7) (layers F.Cu F.Mask F.Paste))
83 | (fp_text user %R (at 0 0) (layer F.Fab)
84 | (effects (font (size 1 1) (thickness 0.15)))
85 | )
86 | (model ${KISYS3DMOD}/Housings_LCC.3dshapes/PLCC-52.wrl
87 | (at (xyz 0 0 0))
88 | (scale (xyz 1 1 1))
89 | (rotate (xyz 0 0 0))
90 | )
91 | )
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/Housings_LCC.pretty/README.md:
--------------------------------------------------------------------------------
1 | # Housings_LLC.pretty
2 | Leaded Chip Carrier (LCC) footprints, such as PLCC (Plastic Leaded Chip Carrier), see https://en.wikipedia.org/wiki/Chip_carrier#Plastic_leaded_chip_carrier
3 |
4 |
5 | ## Note
6 |
7 | This repository is now considered legacy in preparation for the v5 KiCad software release. It will not accept any further pull requests. To contribute, please refer to the new `kicad-footprints` repository at https://github.com/kicad/kicad-footprints
8 |
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/fp-lib-table:
--------------------------------------------------------------------------------
1 | (fp_lib_table
2 | (lib (name Housings_LCC)(type KiCad)(uri ${KIPRJMOD}/Housings_LCC.pretty)(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/MK1_CPU/8bit-computer/sym-lib-table:
--------------------------------------------------------------------------------
1 | (sym_lib_table
2 | (lib (name 8bit-computer-rescue)(type Legacy)(uri ${KIPRJMOD}/8bit-computer-rescue.lib)(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/MK1_CPU/code/microcode.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/code/microcode.bin
--------------------------------------------------------------------------------
/MK1_CPU/code/mk1_computer_uplodader/mk1_computer_uplodader.ino:
--------------------------------------------------------------------------------
1 | #define MI 10
2 | #define HL 11
3 | #define RI 12
4 | #define EN 13
5 | #define CLK A0
6 | #define RST A1
7 | #define CU_EN A2
8 |
9 | void setup() {
10 | // put your setup code here, to run once:
11 | Serial.begin(9600);
12 | //Serial.setTimeout(5000);
13 | pinMode(MI, OUTPUT);
14 | pinMode(HL, OUTPUT);
15 | pinMode(RI, OUTPUT);
16 | pinMode(EN, OUTPUT);
17 | pinMode(CLK, INPUT);
18 | pinMode(RST, INPUT);
19 | pinMode(CU_EN, OUTPUT);
20 |
21 | DDRD |= B11111100;
22 | DDRB |= B00000011;
23 | }
24 |
25 | void reset()
26 | {
27 | pinMode(RST, OUTPUT);
28 | digitalWrite(RST, HIGH);
29 | delayMicroseconds(10);
30 | digitalWrite(RST, LOW);
31 | pinMode(RST, INPUT);
32 | }
33 |
34 | void clock()
35 | {
36 | pinMode(CLK, OUTPUT);
37 | digitalWrite(CLK, HIGH);
38 | delayMicroseconds(1);
39 | digitalWrite(CLK, LOW);
40 | pinMode(CLK, INPUT);
41 | }
42 |
43 | void enableClock()
44 | {
45 | pinMode(CLK, OUTPUT);
46 | digitalWrite(CLK, HIGH);
47 | }
48 |
49 | void disableClock()
50 | {
51 | pinMode(CLK, OUTPUT);
52 | digitalWrite(CLK, LOW);
53 | pinMode(CLK, INPUT);
54 | }
55 |
56 | void disable_cu()
57 | {
58 | digitalWrite(CU_EN, HIGH);
59 | }
60 |
61 | void enable_cu()
62 | {
63 | digitalWrite(CU_EN, LOW);
64 | }
65 |
66 | void enableOutput()
67 | {
68 | digitalWrite(EN, HIGH);
69 | }
70 |
71 | void disableOutput()
72 | {
73 | digitalWrite(EN, LOW);
74 | }
75 |
76 | void setAddress(unsigned int address)
77 | {
78 | digitalWrite(HL, address > 0xFF);
79 | putOut(address);
80 | delayMicroseconds(1);
81 | enableOutput();
82 | digitalWrite(MI, HIGH);
83 | delayMicroseconds(1);
84 | digitalWrite(MI, LOW);
85 | delayMicroseconds(1);
86 | disableOutput();
87 | }
88 |
89 | void putOut(byte data)
90 | {
91 | PORTD = (PORTD & 0x3) | (data << 2);
92 | PORTB = (PORTB & 0xFC) | (data >> 6 & 0x3);
93 | delayMicroseconds(1);
94 | }
95 |
96 | void writeInstruction(byte instr)
97 | {
98 | putOut(instr);
99 | enableOutput();
100 | delayMicroseconds(1);
101 | digitalWrite(RI, HIGH);
102 | delayMicroseconds(1);
103 | digitalWrite(RI, LOW);
104 | delayMicroseconds(1);
105 | disableOutput();
106 |
107 | }
108 |
109 | byte buffer[512];
110 |
111 | void loop() {
112 | if (Serial.available()) {
113 |
114 | int p_size = Serial.readBytes(buffer, sizeof(buffer));
115 | Serial.write(0);
116 |
117 | reset();
118 | disable_cu();
119 |
120 | delayMicroseconds(1);
121 | enableClock();
122 | delayMicroseconds(1);
123 | for (int i = 0; i < p_size; i ++)
124 | {
125 | setAddress(i);
126 | delayMicroseconds(1);
127 | writeInstruction(buffer[i]);
128 | delayMicroseconds(1);
129 | }
130 |
131 | disableClock();
132 | digitalWrite(HL, LOW);
133 | reset();
134 | enable_cu();
135 | }
136 | disableOutput();
137 |
138 | }
139 |
--------------------------------------------------------------------------------
/MK1_CPU/code/output_display.py:
--------------------------------------------------------------------------------
1 | digits = [0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b]
2 |
3 | def byte(value):
4 | return int.from_bytes((value).to_bytes(1, 'big', signed=True), 'big')
5 |
6 | def write(address, data, out):
7 | out.seek(address)
8 | out.write(data.to_bytes(1, 'big'))
9 |
10 | def main():
11 | with open('output_display.bin', 'wb') as out:
12 | print("Programming ones place")
13 |
14 | for value in range(256):
15 | write(value, digits[value % 10], out);
16 |
17 | print("Programming tens place")
18 | for value in range(256):
19 | write(value + 256, digits[(value // 10) % 10], out)
20 |
21 | print("Programming hundreds place")
22 | for value in range(256):
23 | write(value + 512, digits[(value // 100) % 10], out)
24 |
25 | print("Programming sign")
26 | for value in range(256):
27 | write(value + 768, 0, out)
28 |
29 | print("Programming ones place (twos complement)")
30 | for value in range(-128, 127):
31 | write(byte(value) + 1024, digits[abs(value) % 10], out)
32 |
33 | print("Programming tens place (twos complement)")
34 | for value in range(-128, 127):
35 | write(byte(value) + 1280, digits[abs(value // 10) % 10], out)
36 |
37 | print("Programming hundreds place (twos complement)")
38 | for value in range(-128, 127):
39 | write(byte(value) + 1536, digits[abs(value // 100) % 10], out)
40 |
41 | print("Programming sign (twos complement)")
42 | for value in range(-128, 127):
43 | if value < 0:
44 | write(byte(value) + 1792, 0x01, out)
45 | else:
46 | write(byte(value) + 1792, 0, out)
47 |
48 | if __name__ == "__main__":
49 | main()
50 |
--------------------------------------------------------------------------------
/MK1_CPU/code/uploader.py:
--------------------------------------------------------------------------------
1 | import warnings
2 | import serial
3 | import serial.tools.list_ports
4 | import argparse
5 | from tqdm import tqdm
6 | from time import sleep
7 |
8 | baud = 9600
9 |
10 | if __name__ == '__main__':
11 |
12 | parser = argparse.ArgumentParser(description='Binary uploader for MK1 computer.')
13 | parser.add_argument('-i', '--input', metavar='input', type=str, required = True,
14 | help='input file name')
15 | parser.add_argument('-p', '--port', metavar='port', type=str,
16 | help='Arduino serial property')
17 |
18 | args = parser.parse_args()
19 |
20 | arduino_ports = [
21 | p.device
22 | for p in serial.tools.list_ports.comports()
23 | if 'Arduino' in p.description or 'Serial' in p.description # may need tweaking to match new arduinos
24 | ]
25 |
26 | if not arduino_ports:
27 | raise IOError("No Arduino found")
28 | if not args.port and len(arduino_ports) > 1:
29 | warnings.warn('Multiple Arduinos found - using the first')
30 |
31 | if not args.input.endswith('.bin'):
32 | warnings.warn('Input file may not be binary - continuing')
33 |
34 | ser = serial.Serial(args.port or arduino_ports[0], baud, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)
35 | sleep(3)
36 |
37 | with open(args.input, 'rb') as f:
38 | byte = f.read(1)
39 | while byte:
40 | written = ser.write(byte)
41 | ser.flush()
42 | byte = f.read(1)
43 | ser.read()
44 | ser.close()
45 |
--------------------------------------------------------------------------------
/MK1_CPU/images/8bit-computer_v1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/images/8bit-computer_v1.jpg
--------------------------------------------------------------------------------
/MK1_CPU/images/8bit-computer_v2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/images/8bit-computer_v2.jpg
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/bubble_sort.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/bubble_sort.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/counter.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/counter.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/display_counter.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/display_counter.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/display_hello_world.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/display_hello_world.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/division.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/division.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/factorial.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/factorial.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/fibonacci.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/fibonacci.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/fibonacci_recursive.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/fibonacci_recursive.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/merge_sort.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/merge_sort.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/multiplication.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/multiplication.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/multiplication_tables.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/multiplication_tables.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/primes.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/primes.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/quick_sort.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/quick_sort.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/reminder.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/reminder.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/assembled/test_suite.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/programs/assembled/test_suite.bin
--------------------------------------------------------------------------------
/MK1_CPU/programs/bubble_sort.asm:
--------------------------------------------------------------------------------
1 | ;--- bubble sort ---
2 | #include "lib/mk1.cpu"
3 |
4 | #bank ".data"
5 | data: #d8 123, 210, 20, 13, 222, 94, 205, 199, 213, 176, 58, 160, 216, 12, 73, 172, 184, 225, 125, 63, 186, 111, 252, 136, 242, 92, 101, 134, 175, 126, 195, 2, 42, 57, 149, 23, 223, 48, 214, 217
6 | vector_len = pc - data
7 | vector: #res vector_len
8 | #bank ".instr"
9 |
10 | init:
11 | ;copy vector to tmp array
12 | ldi $a 0
13 | .loop:
14 | cmp vector_len
15 | jz main
16 | addi data $b
17 | addi vector $c
18 | ld $b [$b]
19 | st $b [$c]
20 | addi 1 $a
21 | j .loop
22 |
23 | main:
24 | jal print
25 | ldi $a vector_len
26 | subi 1 $b ;prepare end - 1
27 | ldi $a 0
28 | jal bubble_sort
29 | jal print
30 | hlt
31 |
32 | bubble_sort:
33 | ldi $a 0
34 | .loop:
35 | cmp vector_len - 1
36 | jz .end
37 | push $a
38 | ldi $a 0
39 | .for:
40 | cmp vector_len - 1
41 | jz .next
42 | addi 1 $b
43 | push $a
44 | push $b
45 | addi vector $a
46 | ld $a [$a]
47 | push $a
48 | mov $b $a
49 | addi vector $a
50 | ld $a [$a]
51 | mov $a $b
52 | pop $a
53 | jal compare
54 | cmp 1
55 | pop $a
56 | pop $b
57 | jz .for
58 | push $a
59 | push $b
60 | ;addi vector $a
61 | ;subi 1 $b
62 | jal swap
63 | pop $b
64 | pop $a
65 | j .for
66 |
67 | .next:
68 | pop $a
69 | addi 1 $a
70 | j .loop
71 |
72 | .end:
73 | ret
74 |
75 |
76 | ; print subroutine
77 | print:
78 | jal clear_display
79 | ldi $b vector
80 | ldi $a 0
81 | .loop:
82 | cmp vector_len
83 | jz .end
84 | add $b $c
85 | ld $c [$c]
86 | out $c
87 | push $a
88 | mov $c $a
89 | jal print_int
90 | ldi $a SPACE
91 | jal print_char
92 | pop $a
93 | addi 1 $a
94 | j .loop
95 | .end:
96 | ret
97 |
98 | ;--- compare ---
99 | compare: ;$a < $b
100 | sub $b $a
101 | add $b $a
102 | jc .ret_false
103 | ; a greater
104 | ldi $a 0
105 | ret
106 | ; b greater
107 | .ret_false:
108 | ldi $a 1
109 | ret
110 |
111 | swap:
112 | addi vector $c ; c = [a]
113 | ld $a [$c] ; a = vec[a]
114 | mov $a $d ; d = vec[a]
115 | mov $b $a
116 | addi vector $a ; a = [b]
117 | ld $b [$a] ; b = vec[b]
118 | st $d [$a]
119 | st $b [$c]
120 | ret
121 |
122 | #include "lib/helix.asm"
123 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/counter.asm:
--------------------------------------------------------------------------------
1 | #include "lib/mk1.cpu"
2 |
3 | main:
4 | addi 1 $a
5 | out
6 | j main
7 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/display_counter.asm:
--------------------------------------------------------------------------------
1 | #include "lib/mk1.cpu"
2 |
3 | jal init_display
4 | ldi $a 0
5 |
6 | loop:
7 | push $a
8 | out
9 | jal print_int
10 | ldi $a SPACE
11 | jal print_char
12 | pop $a
13 | addi 1 $a
14 | jc end
15 | j loop
16 |
17 | end:
18 | hlt
19 |
20 | #include "lib/helix.asm"
21 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/display_hello_world.asm:
--------------------------------------------------------------------------------
1 | #include "lib/mk1.cpu"
2 |
3 | #bank ".data"
4 | helloworld: #str "Hello, world!\0"
5 |
6 | #bank ".instr"
7 | main:
8 | jal init_display
9 | ldi $b helloworld
10 | .loop:
11 | ld $a [$b]
12 | cmp 0
13 | jz end
14 | push $a
15 | push $b
16 | jal print_char
17 | pop $b
18 | pop $a
19 | ldi $a 1
20 | add $b $b
21 | j .loop
22 |
23 | end:
24 | hlt
25 |
26 | #include "lib/helix.asm"
27 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/division.asm:
--------------------------------------------------------------------------------
1 | ; division test
2 | #include "lib/mk1.cpu"
3 |
4 | ldi $a 144
5 | ldi $b 3; = 48
6 | jal divide
7 | out $a
8 | hlt
9 |
10 | #include "lib/mk1_std.asm"
11 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/factorial.asm:
--------------------------------------------------------------------------------
1 | ;factorial - recursive algorithm
2 | #include "lib/mk1.cpu"
3 |
4 | max_value = 5 + 1
5 | init:
6 | ldi $a 0
7 |
8 | main:
9 | cmp max_value
10 | jz end
11 | push $a
12 | jal factorial
13 | out
14 | pop $a
15 | addi 1 $a
16 | j main
17 |
18 | end:
19 | hlt
20 |
21 | ;--- factorial routine ---
22 | factorial:
23 | ;base case
24 | cmp 0
25 | jz .ret_base
26 | ;computing factorial($a - 1)
27 | push $a
28 | subi 1 $a
29 | jal factorial
30 | pop $b
31 | jal multiply
32 | ret
33 |
34 | .ret_base:
35 | ldi $a 1
36 | ret
37 |
38 | #include "lib/mk1_std.asm"
39 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/fibonacci.asm:
--------------------------------------------------------------------------------
1 | ;fibonacci sequence
2 | #include "lib/mk1.cpu"
3 |
4 | init:
5 | ldi $a 1
6 | ldi $b 1
7 |
8 | loop:
9 | out $a
10 | mov $a $c
11 | add $b $a
12 | jc end
13 | mov $c $b
14 | j loop
15 |
16 | end:
17 | hlt
18 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/fibonacci_recursive.asm:
--------------------------------------------------------------------------------
1 | ;fibonacci sequence - recursive algorithm
2 | #include "lib/mk1.cpu"
3 |
4 | main:
5 | ldi $a 1 ; counter
6 |
7 | .loop:
8 | cmp 14 ; maximum printable fibonacci value is fib(13)
9 | jz .end
10 | push $a
11 | jal fibonacci ; computing fib(counter)
12 | out $a
13 | pop $a
14 | addi 1 $a
15 | j .loop
16 |
17 | .end:
18 | hlt
19 |
20 | fibonacci:
21 | mov $a $d ; input argument to $d
22 | cmp 0
23 | jz .ret_base_0 ; if argument is 0 ret 0
24 | subi 1 $a
25 | jz .ret_base_1 ; if argument is 1 ret 1
26 | push $d
27 | jal fibonacci ; computing fib(argument - 1)
28 | pop $d
29 | mov $a $b ; $b contains fib(-1)
30 | mov $d $a
31 | subi 2 $a ; preparing argument - 2
32 | push $b
33 | jal fibonacci ; computing fib(argument - 2)
34 | pop $b
35 | add $b $a ; returning fib(-1) + fib(-2)
36 | ret
37 |
38 | .ret_base_0:
39 | ldi $a 0
40 | ret
41 |
42 | .ret_base_1:
43 | ldi $a 1
44 | ret
45 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/lib/helix.asm:
--------------------------------------------------------------------------------
1 | ;--- helix display interface library ---
2 |
3 | SPACE = 32
4 |
5 | #bank ".data"
6 | _ready: #d8 1
7 | #bank ".instr"
8 |
9 | init_display:
10 | ldi $a 1
11 | je0 .ret
12 | ldi $a 0
13 | .ret:
14 | st $a _ready
15 | ret
16 |
17 | print_char:
18 | jal _display_ready
19 | exw 0 2
20 | ret
21 |
22 | print_int:
23 | jal _display_ready
24 | exw 0 1
25 | ret
26 |
27 | clear_display:
28 | jal _display_ready
29 | exw 0 3
30 | ret
31 |
32 | _display_ready:
33 | push $a
34 | ld $a _ready
35 | add $a $a
36 | jz .ret
37 | jal _active_wait
38 | .ret:
39 | pop $a
40 | ret
41 |
42 | _active_wait:
43 | nop
44 | je0 .ret
45 | nop
46 | j _active_wait
47 | .ret:
48 | exr 0
49 | ret
50 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/lib/mk1.cpu:
--------------------------------------------------------------------------------
1 | #bankdef ".instr"
2 | {
3 | #addr 0x00
4 | #size 0x100
5 | #outp 0x00
6 | }
7 |
8 | #bankdef ".data"
9 | {
10 | #addr 0x00
11 | #size 0x100
12 | #outp 0x100
13 | }
14 |
15 | #cpudef
16 | {
17 | #bits 8
18 |
19 | #tokendef reg
20 | {
21 | $a = 0
22 | $b = 1
23 | $c = 2
24 | $d = 3
25 | $sp = 4
26 | $pc = 5
27 | $out = 6
28 | }
29 |
30 | #tokendef alu_op
31 | {
32 | add = 0
33 | sub = 1
34 | or = 2
35 | and = 3
36 | }
37 |
38 | nop -> 0x00
39 | hlt -> 0b01111111
40 |
41 | ldi {dst: reg} 0 -> 0b11 @ 0b01 @ 0b00 @ dst[1:0]
42 |
43 | mov {src: reg} {dst: reg} -> 0b00 @ src[2:0] @ dst[2:0]
44 | ldi {dst: reg} {value: i8} -> { assert(value <= 0xff), 0b00 @ 0b111 @ dst[2:0] @ value }
45 | out -> 0b00000110
46 | out {value: reg} -> 0b00 @ value[2:0] @ 0b110
47 | out {value: i8} -> { assert(value <= 0xff), 0b00 @ 0b111 @ 0b110 @ value }
48 |
49 | j {address: u8} -> { assert(address <= 0xff), 0b00 @ 0b111 @ 3'5 @ address }
50 |
51 | ld {dst: reg} [{addr: reg}] -> 0b01 @ dst[2:0] @ addr[2:0]
52 | ld {dst: reg} {address: u8} -> { assert(address <= 0xff), 0b01 @ dst[2:0] @ 0b111 @ address }
53 |
54 | st {src: reg} [{addr: reg}] -> 0b10 @ src[2:0] @ addr[2:0]
55 | st {src: reg} {address: u8} -> { assert(address <= 0xff), 0b10 @ src[2:0] @ 0b111 @ address }
56 |
57 | {op: alu_op} {operand_1: reg} {operand_2: reg} -> 0b11 @ op[1:0] @ operand_1[1:0] @ operand_2[1:0]
58 | {op: alu_op}i {value: i8} {dst: reg} -> { assert(value <= 0xff), 0b1011 @ op[1:0] @ dst[1:0] @ value }
59 |
60 | not -> 0b01111010
61 | rll -> 0b01111101
62 | rlr -> 0b01111110
63 | sll -> 0b01111011
64 | slr -> 0b01111100
65 |
66 | cmp $b -> 0b10101110
67 | cmp $c -> 0b01000110
68 | cmp $d -> 0b01001110
69 | cmp {value: i8} -> { assert(value <= 0xff), 0b10000110 @ value }
70 |
71 | push {data: reg} -> 0b10 @ data[2:0] @ 0b100
72 | pop {data: reg} -> 0b01 @ data[2:0] @ 0b100
73 | ret -> 0b01 @ 3'5 @ 0b100
74 |
75 | jal {address: u8} -> { assert(address <= 0xff), 0b10 @ 3'5 @ 0b100 @ address }
76 | jc {address: u8} -> { assert(address <= 0xff), 0b00110111 @ address }
77 | jz {address: u8} -> { assert(address <= 0xff), 0b00111111 @ address }
78 |
79 | exr 0 -> 0b01111000
80 | exr 1 -> 0b01111001
81 |
82 | exw 0 0 -> 0b00000111
83 | exw 0 1 -> 0b00001111
84 | exw 0 2 -> 0b10001110
85 | exw 0 3 -> 0b10010110
86 |
87 | exw 1 0 -> 0b00010111
88 | exw 1 1 -> 0b00011111
89 | exw 1 2 -> 0b10011110
90 | exw 2 3 -> 0b10100110
91 |
92 | je0 {address: u8} -> { assert(address <= 0xff), 0b00100111 @ address }
93 | je1 {address: u8} -> { assert(address <= 0xff), 0b00101111 @ address }
94 | }
95 |
96 | #bank ".instr"
97 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/lib/mk1_std.asm:
--------------------------------------------------------------------------------
1 | ;-- utility functions --
2 |
3 | ;--- multiplication ---
4 | multiply: ; $a * $b
5 | mov $b $c ;counter
6 | mov $a $b ;multiplication base
7 | ldi $d 0 ;tmp
8 | cmp 0
9 | jz .end
10 |
11 | .loop:
12 | mov $c $a ; counter equals 0 -> we're done
13 | cmp 0
14 | jz .end
15 | mov $d $a
16 | add $b $d
17 | mov $c $a
18 | subi 1 $c
19 | j .loop
20 |
21 | .end:
22 | mov $d $a
23 | ret
24 |
25 | ;--- divide ---
26 | #bank ".data"
27 | _sign: #res 1
28 | #bank ".instr"
29 | divide: ;$a / $b
30 | mov $a $c; c contains tmp value
31 | ldi $d 2; sign on
32 | st $d _sign
33 | ldi $d 0; counter
34 | cmp 0
35 | jz .ret
36 |
37 | .loop:
38 | mov $c $a
39 | sub $b $a ;subtract the divisor
40 | mov $a $c
41 | jz .ret_zero
42 | ;check if the sign is positive.
43 | ;if sign is positive we'll check when goes negative and return.
44 | andi 128 $a
45 | jz .set_sign
46 | ;sign is not positive, check against old sign
47 | push $d
48 | ld $d _sign
49 | sub $d $a
50 | pop $d
51 | jz .ret ;sign went negative, returning
52 | .continue:
53 | mov $d $a
54 | addi 1 $d
55 | j .loop
56 |
57 | .ret_zero:
58 | mov $d $a
59 | addi 1 $d
60 | .ret: ;we're done! reminder is negative, get positive part and return
61 | mov $d $a
62 | ret
63 |
64 | .set_sign:
65 | ldi $a 128 ;set sign to 1, when we compare and it changes we're done.
66 | st $a _sign
67 | j .continue
68 |
69 |
70 | ;--- get division reminder ---
71 | reminder: ;$a % $b
72 | mov $a $c; c contains tmp value
73 | ldi $d 2; sign
74 | cmp 0
75 | jz .ret_zero
76 |
77 | .loop:
78 | mov $c $a
79 | sub $b $a ;subtract the divisor and check if zero
80 | jz .ret_zero
81 | mov $a $c
82 | ;check if the sign is positive.
83 | ;if sign is positive we'll check when goes negative and return.
84 | andi 128 $a
85 | jz .set_sign
86 | ;sign is not positive, check against old sign
87 | sub $d $a
88 | jz .ret ;sign went negative, returning.
89 | j .loop
90 |
91 | .ret: ;we're done! reminder is negative, get positive part and return
92 | mov $c $a
93 | add $b $a
94 | .ret_zero:
95 | ret
96 |
97 | .set_sign:
98 | ldi $d 128 ;set sign to 1, when we compare and it changes we're done.
99 | j .loop
100 |
101 | ;--- compare ---
102 | compare: ;$a < $b
103 | sub $b $a
104 | add $b $a
105 | jc .ret_false
106 | ; a greater
107 | ldi $a 0
108 | ret
109 | ; b greater
110 | .ret_false:
111 | ldi $a 1
112 | ret
113 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/merge_sort.asm:
--------------------------------------------------------------------------------
1 | ;--- merge sort ---
2 | #include "lib/mk1.cpu"
3 |
4 | #bank ".data"
5 | data: #d8 123, 210, 20, 13, 222, 94, 205, 199, 213, 176, 58, 160, 216, 12, 73, 172, 184, 225, 125, 63, 186, 111, 252, 136, 242, 92, 101, 134, 175, 126, 195, 2, 42, 57, 149, 23, 223, 48, 214, 217
6 | vector_len = pc - data
7 | vector: #res vector_len
8 | #bank ".instr"
9 |
10 | init:
11 | jal init_display
12 | ;copy vector to tmp array
13 | ldi $a 0
14 | .loop:
15 | cmp vector_len
16 | jz main
17 | addi data $b
18 | addi vector $c
19 | ld $b [$b]
20 | st $b [$c]
21 | addi 1 $a
22 | j .loop
23 |
24 | main:
25 | jal print
26 | ldi $b vector_len - 1
27 | ldi $a 0
28 | jal merge_sort
29 | jal print
30 | hlt
31 |
32 | merge_sort: ; start, end
33 | cmp $b ; if start == end -> return
34 | jz return
35 |
36 | ;compute mid index
37 | mov $a $d ; d = start
38 | mov $b $a ; a = b = end
39 | sub $d $a ; a = end - start
40 | slr ;(end - start) / 2
41 | add $d $a ; a = start + (end - start) / 2
42 | mov $b $c ; c = end
43 | mov $a $b ; b = mid = start + (end - start) / 2
44 | mov $d $a ; a = start
45 |
46 | ;first call (start, middle)
47 | push $a
48 | push $b
49 | push $c
50 | jal merge_sort
51 | pop $b ; end
52 | pop $a ; mid
53 | pop $c ; start
54 |
55 | ;second call (middle, end)
56 | push $a
57 | push $b
58 | push $c
59 | addi 1 $a
60 | jal merge_sort
61 | pop $a ; start
62 | pop $c ; end
63 | pop $b ; mid
64 |
65 | ;merge phase
66 | jal merge
67 |
68 | return:
69 | ret
70 |
71 | ; ---- merge function ----
72 | merge: ;start, mid, end
73 |
74 | ; merge variables
75 | #bank ".data"
76 | start: #res 1
77 | start2: #res 1
78 | mid: #res 1
79 | end: #res 1
80 | index: #res 1
81 | #bank ".instr"
82 |
83 | ;init variable
84 | st $a start
85 | st $b mid
86 | st $c end
87 | mov $b $a
88 | addi 1 $a
89 | st $a start2 ; a = mid +1 = start2
90 |
91 | ;if vec[mid] <= vec[start2] -> return
92 | addi vector $a ; a = [start2]
93 | ld $c [$a] ; c = vec[start2]
94 | ldi $a vector
95 | add $b $b ; b = [mid]
96 | mov $c $a ; a = vec[start2]
97 | ld $b [$b] ; b = vec[mid]
98 | jal compare ; $a < $b? vec[start2] < vec[mid] ?
99 | add $a $a ;cmp 1 , invert condition
100 | jz return
101 |
102 | .while:
103 | ;while start <= mid and start2 <= end
104 | ld $a mid
105 | ld $b start
106 | jal compare ; mid < start?
107 | cmp 1
108 | jz return
109 | ld $a end
110 | ld $b start2
111 | push $b
112 | jal compare ; end < start2?
113 | cmp 1
114 | pop $a
115 | jz return
116 |
117 | .if: ;a -> start2
118 | ;if vec[start] <= vec[start2] -> start++
119 | addi vector $c ; c = [start2]
120 | ld $a start
121 | mov $a $d ; d = start
122 | addi vector $b ; b = [start]
123 | ld $a [$c] ; a = vec[start2]
124 | push $a ; n <---- vec[start2] in stack (value)
125 | ld $b [$b] ; b = vec[start]
126 | push $d
127 | jal compare ; start2 < start ?
128 | cmp 1
129 | pop $d ; <------- d = start
130 | jz .else
131 | mov $d $a
132 | addi 1 $a
133 | st $a start ; start++
134 | pop $a ; de-allocating stack
135 | j .while
136 | .else:
137 | ;idx = start2
138 | ;while idx != start
139 | ld $b start2 ; b = start 2 = idx
140 | .while_2:
141 | mov $d $a ; d = a = start
142 | cmp $b
143 | jz .break
144 | ;vec[idx] = vec[idx - 1]
145 | mov $b $a ; b = idx
146 | subi 1 $a ; idx -1
147 | addi vector $a ; [idx - 1]
148 | ld $c [$a] ; c = vec[idx - 1]
149 | mov $b $a ; b = idx
150 | addi vector $a ; [idx]
151 | st $c [$a]; ;vec[idx] = vec[idx - 1]
152 | ;idx --
153 | mov $b $a
154 | subi 1 $b ; b = idx - 1
155 | j .while_2
156 |
157 | .break:
158 | ;d = start
159 | ;arr[start] = value (in stack)
160 | mov $d $a
161 | addi vector $a; a = [start]
162 | pop $b ;<- value
163 | st $b [$a] ; arr[start] = value
164 |
165 | ;update counters
166 | ldi $a 1
167 | add $d $d ; start++
168 | st $d start
169 | ld $b start2
170 | add $b $b
171 | st $b start2 ; start2++
172 | ld $b mid
173 | add $b $b
174 | st $b mid ; mid++
175 | j .while
176 |
177 | #include "lib/helix.asm"
178 |
179 | ;--- compare ---
180 | compare: ;$a < $b
181 | sub $b $a
182 | add $b $a
183 | ldi $a 1
184 | jc .ret_false
185 | ; a greater
186 | ldi $a 0
187 | ; b greater
188 | .ret_false:
189 | ret
190 |
191 | ; print subroutine
192 | print:
193 | jal clear_display
194 | ldi $b vector
195 | ldi $a 0
196 | .loop:
197 | cmp vector_len
198 | jz .end
199 | add $b $c
200 | ld $c [$c]
201 | out $c
202 | push $a
203 | mov $c $a
204 | jal print_int
205 | ldi $a SPACE
206 | jal print_char
207 | pop $a
208 | addi 1 $a
209 | j .loop
210 | .end:
211 | ret
212 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/multiplication.asm:
--------------------------------------------------------------------------------
1 | ; multiplication test
2 | #include "lib/mk1.cpu"
3 |
4 | ldi $a 5
5 | ldi $b 17 ; 85
6 | jal multiply
7 | out $a
8 | hlt
9 |
10 | #include "lib/mk1_std.asm"
11 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/multiplication_tables.asm:
--------------------------------------------------------------------------------
1 | ; multiplication tables
2 | #include "lib/mk1.cpu"
3 |
4 | init:
5 | jal init_display
6 | ldi $a 1
7 | ldi $b 1
8 |
9 | main:
10 | cmp 26
11 | jz .end
12 | .loop:
13 | push $a
14 | push $b
15 | jal multiply
16 | jal print
17 | pop $a
18 | cmp 10
19 | jz .break
20 | addi 1 $b
21 | pop $a
22 | j .loop
23 |
24 | .break:
25 | jal clear_display
26 | pop $a
27 | addi 1 $a
28 | ldi $b 1
29 | j main
30 |
31 | .end:
32 | hlt
33 |
34 | print:
35 | out
36 | jal print_int
37 | ldi $a SPACE
38 | jal print_char
39 | ret
40 |
41 |
42 | #include "lib/mk1_std.asm"
43 | #include "lib/helix.asm"
44 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/primes.asm:
--------------------------------------------------------------------------------
1 | ;--- computes prime numbers ---
2 | ;--- includes helix display support ---
3 | #include "lib/mk1.cpu"
4 |
5 | init:
6 | jal init_display
7 | ldi $a 3
8 |
9 | .loop:
10 | push $a
11 | jal is_prime ;call subroutine
12 | cmp 0
13 | pop $a
14 | jz .continue ;if the result is 0 do not print value
15 | push $a
16 | jal print
17 | pop $a
18 | .continue:
19 | addi 2 $a
20 | jc .end
21 | j .loop
22 | .end:
23 | hlt
24 |
25 | print:
26 | out $a
27 | jal print_int
28 | ldi $a SPACE
29 | jal print_char
30 | ret
31 |
32 | ; --- is_prime ---
33 | is_prime:
34 | ;optimization -> divisions start from half
35 | push $a
36 | slr
37 | subi 1 $b ; preparing second operand for reminder
38 | pop $a
39 | jz .ret_true
40 |
41 | ;main loop
42 | .prime_loop:
43 | push $a
44 | push $b
45 | jal reminder
46 | cmp 0
47 | jz .ret_false
48 | pop $a ; counter
49 | pop $b ; argument
50 | subi 2 $a ;counter decrement + ;if counter == 1 -> prime
51 | jz .ret_true
52 | addi 1 $a ;restore good counter
53 | mov $b $c
54 | mov $a $b
55 | mov $c $a
56 | j .prime_loop
57 |
58 | .ret_true:
59 | ldi $a 1
60 | ret
61 | .ret_false:
62 | pop $b
63 | pop $b
64 | ldi $a 0
65 | ret
66 |
67 | #include "lib/mk1_std.asm"
68 | #include "lib/helix.asm"
69 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/quick_sort.asm:
--------------------------------------------------------------------------------
1 | ;--- quick sort ---
2 | #include "lib/mk1.cpu"
3 |
4 | #bank ".data"
5 | data: #d8 123, 110, 20, 13, 222, 94, 205, 199, 213, 176, 58, 160, 216, 12, 73, 172, 184, 225, 125, 63, 186, 111, 252, 136, 242, 92, 101, 134, 175, 126, 195, 2, 42, 57, 149, 23, 223, 48, 214, 217
6 | vector_len = pc - data
7 | vector: #res vector_len
8 | #bank ".instr"
9 |
10 | init:
11 | jal init_display
12 | ;copy vector to tmp array
13 | ldi $a 0
14 | .loop:
15 | cmp vector_len
16 | jz main
17 | addi data $b
18 | addi vector $c
19 | ld $b [$b]
20 | st $b [$c]
21 | addi 1 $a
22 | j .loop
23 |
24 | main:
25 | jal print
26 | ldi $a vector_len
27 | subi 1 $b ;prepare end - 1
28 | ldi $a 0
29 | jal quick_sort
30 | jal print
31 | hlt
32 |
33 |
34 | quick_sort:
35 | ;cmp $b ; if low == high -> return
36 | push $a
37 | push $b
38 | jal compare_signed
39 | cmp 1
40 | pop $b
41 | pop $a
42 | jz .continue
43 | j .return
44 | .continue:
45 | push $b ; high
46 | push $a ; low
47 | jal partition; pivot
48 | subi 1 $a ; pivot -1
49 | mov $a $b
50 | pop $a
51 | push $b ;pivot -1
52 | jal quick_sort
53 |
54 | pop $a ; pivot -1
55 | addi 2 $a ; pivot +1
56 | pop $b ; high
57 | jal quick_sort
58 | ret
59 |
60 | .return:
61 | ret
62 |
63 | #bank ".data"
64 | pivot: #res 1
65 | i: #res 1
66 | j: #res 1
67 | #bank ".instr"
68 | partition: ;low, high
69 | mov $a $c ; c = low
70 | mov $b $a
71 | addi vector $a
72 | ld $a [$a]
73 | st $a pivot
74 | mov $c $a
75 | subi 1 $a
76 | st $a i
77 | st $c j
78 | .for:
79 | ld $a j
80 | push $b
81 | cmp $b
82 | jz .break
83 |
84 | addi vector $a
85 | ld $a [$a]
86 | ld $b pivot
87 | jal compare
88 | cmp 0
89 | jz .next
90 | ld $a i
91 | addi 1 $a
92 | st $a i
93 | ld $b j
94 | jal swap
95 | .next:
96 | ld $a j
97 | addi 1 $a
98 | st $a j
99 | pop $b ; high
100 | j .for
101 |
102 | .break:
103 | ld $a i
104 | addi 1 $a
105 | pop $b ; high
106 | push $a
107 | jal swap
108 | pop $a
109 | ret
110 |
111 | swap:
112 | addi vector $c ; c = [a]
113 | ld $a [$c] ; a = vec[a]
114 | mov $a $d ; d = vec[a]
115 | mov $b $a
116 | addi vector $a ; a = [b]
117 | ld $b [$a] ; b = vec[b]
118 | st $d [$a]
119 | st $b [$c]
120 | ret
121 |
122 | #include "lib/helix.asm"
123 |
124 | ;--- compare ---
125 | compare_signed:
126 | mov $a $c
127 | mov $b $d
128 | andi 128 $a
129 | mov $a $b
130 | mov $d $a
131 | andi 128 $a
132 | cmp $b
133 | jz _compare
134 | cmp 128
135 | jz .ret_true
136 | ldi $a 1
137 | ret
138 | .ret_true:
139 | ldi $a 0
140 | ret
141 |
142 | _compare:
143 | mov $c $a
144 | mov $d $b
145 | compare: ;$a < $b
146 | sub $b $a
147 | add $b $a
148 | jc .ret_false
149 | ; a greater
150 | ldi $a 0
151 | ret
152 | ; b greater
153 | .ret_false:
154 | ldi $a 1
155 | ret
156 |
157 | ; print subroutine
158 | print:
159 | jal clear_display
160 | ldi $b vector
161 | ldi $a 0
162 | .loop:
163 | cmp vector_len
164 | jz .end
165 | add $b $c
166 | ld $c [$c]
167 | out $c
168 | push $a
169 | mov $c $a
170 | jal print_int
171 | ldi $a SPACE
172 | jal print_char
173 | pop $a
174 | addi 1 $a
175 | j .loop
176 | .end:
177 | ret
178 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/reminder.asm:
--------------------------------------------------------------------------------
1 | ; reminder test
2 | #include "lib/mk1.cpu"
3 |
4 | ldi $a 99
5 | ldi $b 50
6 | jal reminder
7 | out $a
8 | hlt
9 |
10 | #include "lib/mk1_std.asm"
11 |
--------------------------------------------------------------------------------
/MK1_CPU/programs/test_suite.asm:
--------------------------------------------------------------------------------
1 | ;--- test suite ---
2 | #include "lib/mk1.cpu"
3 |
4 | init:
5 | ;--- MOVE ---
6 |
7 | test_00: ;cmp
8 | ldi $a 243
9 | cmp 200
10 | jz end
11 | mov $a $b
12 | cmp $b
13 | jz test_01
14 | hlt
15 |
16 | test_01:
17 | ldi $a 0x77
18 | cmp 0x77
19 | jz .continue1
20 | hlt
21 | .continue1:
22 | ldi $b 0x66
23 | ldi $a 0x66
24 | cmp $b
25 | jz .test_ok
26 | hlt
27 | .test_ok:
28 | out 1
29 |
30 | test_02:
31 | ldi $a 0xFF
32 | mov $a $b
33 | mov $b $c
34 | mov $c $d
35 | cmp $b
36 | jz .continue1
37 | hlt
38 | .continue1:
39 | mov $c $a
40 | cmp $c
41 | jz .continue2
42 | hlt
43 | .continue2:
44 | mov $d $a
45 | cmp $d
46 | jz .test_ok
47 | hlt
48 | .test_ok:
49 | out 2
50 |
51 | ;--- LOAD ---
52 | #bank ".data"
53 | variable: #d8 0x55
54 | variable_location: #d8 variable
55 | #bank ".instr"
56 | test_03:
57 | ld $a variable
58 | cmp 0x55
59 | jz .test_ok
60 | hlt
61 | .test_ok:
62 | out 3
63 |
64 | test_04:
65 | ld $b variable_location
66 | ld $a [$b]
67 | cmp 0x55
68 | jz .test_ok
69 | hlt
70 | .test_ok:
71 | out 4
72 |
73 | ;--- STORE ---
74 |
75 | #bank ".data"
76 | value = 0x42
77 | store_variable: #res 1
78 | #bank ".instr"
79 | test_05:
80 | ldi $a value
81 | st $a store_variable
82 | ld $b store_variable
83 | cmp $b
84 | jz .test_ok
85 | hlt
86 | .test_ok:
87 | out 5
88 |
89 | test_06:
90 | value1 = 0x54
91 | ldi $a value1
92 | ldi $b store_variable
93 | st $a [$b]
94 | ld $b [$b]
95 | cmp $b
96 | jz .test_ok
97 | hlt
98 | .test_ok:
99 | out 6
100 |
101 | ;ALU
102 |
103 | test_07:
104 | ldi $a 77
105 | addi 10 $a
106 | subi 87 $a
107 | jz .test_ok
108 | hlt
109 | .test_ok:
110 | out 7
111 |
112 | test_08:
113 | ldi $a 77
114 | ldi $b 10
115 | sub $b $a
116 | cmp 67
117 | jz .test_ok
118 | hlt
119 | .test_ok:
120 | out 8
121 |
122 | test_09:
123 | ldi $a 77
124 | ori 112 $a
125 | cmp 125
126 | jz .test_ok
127 | hlt
128 | .test_ok:
129 | out 9
130 |
131 | test_10:
132 | ldi $a 77
133 | andi 112 $a
134 | cmp 64
135 | jz .test_ok
136 | hlt
137 | .test_ok:
138 | out 10
139 |
140 | test_11:
141 | ldi $a 0x55
142 | not
143 | cmp 0xAA
144 | jz .test_ok
145 | hlt
146 | .test_ok:
147 | out 11
148 |
149 | test_12:
150 | ldi $a 0xAA
151 | sll
152 | cmp 0x54
153 | jz .test_ok
154 | hlt
155 | .test_ok:
156 | out 12
157 |
158 | test_13:
159 | ldi $a 0x55
160 | slr
161 | cmp 0x2A
162 | jz .test_ok
163 | hlt
164 | .test_ok:
165 | out 13
166 |
167 | test_14:
168 | ldi $a 0xB2
169 | rll
170 | cmp 0x65
171 | jz .test_ok
172 | hlt
173 | .test_ok:
174 | out 14
175 |
176 | test_15:
177 | ldi $a 0x65
178 | rlr
179 | cmp 0xB2
180 | jz .test_ok
181 | hlt
182 | .test_ok:
183 | out 15
184 |
185 | ;EXTRA (pop push jal ret jz jc)
186 |
187 | test_16:
188 | mov $sp $a
189 | cmp 0
190 | jz .continue1
191 | hlt
192 | .continue1:
193 | ldi $a 123
194 | push $a
195 | mov $sp $a
196 | cmp 0xFF
197 | jz .continue2
198 | hlt
199 | .continue2:
200 | pop $b
201 | mov $sp $a
202 | cmp 0
203 | jz .continue3
204 | hlt
205 | .continue3:
206 | mov $b $a
207 | cmp 123
208 | jz .test_ok
209 | hlt
210 | .test_ok:
211 | out 16
212 |
213 | test_17:
214 | ldi $a 0xFF
215 | addi 0 $a
216 | jc end
217 | addi 1 $a
218 | jc .test_ok
219 | hlt
220 | .test_ok:
221 | out 17
222 |
223 | test_18:
224 | jal func
225 | cmp 0x55
226 | jz .test_ok
227 | hlt
228 | .test_ok:
229 | out 18
230 |
231 | end:
232 | hlt
233 |
234 | func:
235 | ldi $a 0x55
236 | ret
237 |
--------------------------------------------------------------------------------
/MK1_CPU/schematics.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/MK1_CPU/schematics.pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MK1 8bit Computer
2 |
3 | Schematics and code for my home-made 8-bit CPU and its companion boards.
4 |
5 | Articles about this project:
6 |
7 | [Hackaday.com](https://hackaday.com/2020/12/31/diy-8-bit-computer-knows-all-the-tricks/)
8 |
9 | [Hackster.io](https://www.hackster.io/news/see-inside-of-a-cpu-with-the-mk1-8bit-computer-14fa9e313c73)
10 |
11 | [InformaticaLab.com](https://blog.informaticalab.com/viaggio-allinterno-di-una-cpu-con-il-mk1-8bit-computer/)
12 |
13 | ## Overview
14 |
15 | During the past month, I designed and built a programmable 8-bit CPU from scratch, out of basic series 74LS logic ICs.
16 |
17 | This repository contains pictures, schematics, and code for this project and its companion boards.
18 |
19 | * V 1.0 assembled:
20 |
21 |
22 |
23 | * V 2.0b assembled:
24 |
25 |
26 |
27 | - Helix Display Interface in action:
28 |
29 |
30 |
31 | * V 1.0 in action:
32 |
33 | **DEMO VIDEO (YouTube)**
34 |
35 | [](https://www.youtube.com/watch?v=qSviFkpLFKI)
36 |
37 | ## Architecture
38 |
39 | The MK1 CPU is composed of several modules, all connected trough a common 8-bit BUS, the status of each module is shown by dedicated LEDs.
40 |
41 | - The clock module is designed to allow step-by-step execution; in automatic mode the clock speed can be adjusted from 1Hz up to 32KHz.
42 | - The computer programs are stored in RAM and the CPU can be programmed both manually, by inserting binary machine code through dip-switches, and automatically via a USB PC interface.
43 | - The Programming interface is designed to be used in conjunction with an **Arduino Nano** or the **Start9** programming board.
44 | - The **Start9** programming board allows the loading of multiple programs stored on an on-board flash memory without the aid of an external computer device.
45 | - The Addressable memory space is 1024 byte, data, stack and code spaces are separated, the code address space is not writable.
46 | - The instructions are variable-length (see **instruction-set [here](https://github.com/vascofazza/8bit-cpu/tree/master/MK1_CPU/programs/lib/mk1.cpu)**) 1 or 2 bytes long (first byte for the opcode, the second one for the argument), there are 4 general purpose registers (`A`, `B`, `C`, `D`) and a `stack pointer` register for subroutine calls.
47 | - The **A**rithmetic **L**ogic **U**nit has a dedicated register for the second operand and supports the following operations:
48 | - Addition
49 | - Subtraction
50 | - OR
51 | - AND
52 | - NOT
53 | - Left/Right Shift
54 | - Left/Right Rotation
55 | - The Control Unit combinatory logic is implemented using EEPROMs (see **microcode [here](https://github.com/vascofazza/8bit-cpu/blob/master/MK1_CPU/code/microcode.txt)**) whilst each instruction is realized through a variable number of micro-instruction for a maximum of 6 micro-steps per instruction, including the fetch cycle. The instruction-set supports both direct and indirect memory access as well as absolute and conditional jumps on carry (`CF`) and zero (`ZF`) ALU flags.
56 | - The computation output can be visualized on a 4-digit display, with a dedicated register, able to represent positive and 2-complement negative numbers both in decimal and hexadecimal format.
57 | - The CPU can be extended thanks to the external BUS interface capable of handling up to 2 peripheral. The communication is bidirectional, the devices can send interrupts to the CPU to notify when new data is available. Interrupts are cleared once the data has been processed.
58 | - The only available peripheral at the moment is the **Helix** display interface, an ATmega328-driven 2x16 LCD output display.
59 |
60 | ## Structure
61 |
62 | - **MK1 CPU/**:
63 | - **8bit-computer/**: KiCad project, schematics and PCB design of the **MK1 CPU**.
64 | - **code/**:
65 | - microcode.py: generates the binary EEPROM microcode.
66 | - out_display.py: generates the binary output display EEPROM code.
67 | - uploader.py: uploads a binary MK1 program to the CPU.
68 | - mk1_computer_uploader/: Arduino programmer interface sketch.
69 | - **assembler/**: fork of the hlorenzi's assembler, improved and customized for the MK1
70 | - **programs/**: a collection of programs for the MK1 CPU plus the assembler definition
71 | - **start9_programming_interface/**:
72 | - **programming_interface/**: KiCad project, schematics and PCB design of the **Start9** programming board.
73 | - **code/start9_programming_interface/**: Arduino code for the programming interface.
74 | - **helix_display_interface/**:
75 | - **display_interface/**: KiCad project, schematics and PCB design of the **Helix** display interface board.
76 | - **code/helix_display_interface/**: Arduino code for the display interface.
77 | - **eeprom_programmer/**: KiCad project, schematics and PCB design of a simple Arduino-based eeprom programmer
78 | - **bus_breakout/**: KiCad project, schematics and PCB design of the external bus connector breakout board.
79 |
80 | ## Changelog
81 |
82 | ##### V2.0d:
83 |
84 | - minor hardware revision
85 | - revisited PCB design
86 | - new memory architecture, code memory section is read-only, stack and data live on separated spaces
87 |
88 | ##### V2.0b:
89 |
90 | - minor hardware revision
91 | - Variable-length instructions (1 or 2 bytes)
92 | - new custom assembler, thanks to https://github.com/hlorenzi/customasm
93 | - few new instructions
94 | - revisited microcode and instruction-set
95 |
96 | ##### V2.0:
97 |
98 | - 4 general purposes registers (A, B, C, D)
99 | - Stack Pointer implemented as an up-down counter
100 | - External interface and interrupt handling
101 | - Output display decodes HEX and ASCII values
102 | - Clock speed multipliers
103 | - Control Unit extended with 4 EEPROMs
104 | - Variable step microcode counter length (each instruction uses the minimum amount of micro-steps)
105 | - revisited microcode and instruction-set
106 |
107 | ##### V1.0:
108 |
109 | - Bugfixes.
110 | - `HL` and `STK` address signals available in the `MAR` dip-switch.
111 |
112 | ##### V0.1:
113 |
114 | - Initial release
115 |
116 |
--------------------------------------------------------------------------------
/bus_breakout/bus_breakout-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.4
2 | #encoding utf-8
3 | #
4 | # Connector_Generic_Conn_01x02
5 | #
6 | DEF Connector_Generic_Conn_01x02 J 0 40 Y N 1 F N
7 | F0 "J" 0 100 50 H V C CNN
8 | F1 "Connector_Generic_Conn_01x02" 0 -200 50 H V C CNN
9 | F2 "" 0 0 50 H I C CNN
10 | F3 "" 0 0 50 H I C CNN
11 | $FPLIST
12 | Connector*:*_1x??_*
13 | $ENDFPLIST
14 | DRAW
15 | S -50 -95 0 -105 1 1 6 N
16 | S -50 5 0 -5 1 1 6 N
17 | S -50 50 50 -150 1 1 10 f
18 | X Pin_1 1 -200 0 150 R 50 50 1 1 P
19 | X Pin_2 2 -200 -100 150 R 50 50 1 1 P
20 | ENDDRAW
21 | ENDDEF
22 | #
23 | # Connector_Generic_Conn_01x08
24 | #
25 | DEF Connector_Generic_Conn_01x08 J 0 40 Y N 1 F N
26 | F0 "J" 0 400 50 H V C CNN
27 | F1 "Connector_Generic_Conn_01x08" 0 -500 50 H V C CNN
28 | F2 "" 0 0 50 H I C CNN
29 | F3 "" 0 0 50 H I C CNN
30 | $FPLIST
31 | Connector*:*_1x??_*
32 | $ENDFPLIST
33 | DRAW
34 | S -50 -395 0 -405 1 1 6 N
35 | S -50 -295 0 -305 1 1 6 N
36 | S -50 -195 0 -205 1 1 6 N
37 | S -50 -95 0 -105 1 1 6 N
38 | S -50 5 0 -5 1 1 6 N
39 | S -50 105 0 95 1 1 6 N
40 | S -50 205 0 195 1 1 6 N
41 | S -50 305 0 295 1 1 6 N
42 | S -50 350 50 -450 1 1 10 f
43 | X Pin_1 1 -200 300 150 R 50 50 1 1 P
44 | X Pin_2 2 -200 200 150 R 50 50 1 1 P
45 | X Pin_3 3 -200 100 150 R 50 50 1 1 P
46 | X Pin_4 4 -200 0 150 R 50 50 1 1 P
47 | X Pin_5 5 -200 -100 150 R 50 50 1 1 P
48 | X Pin_6 6 -200 -200 150 R 50 50 1 1 P
49 | X Pin_7 7 -200 -300 150 R 50 50 1 1 P
50 | X Pin_8 8 -200 -400 150 R 50 50 1 1 P
51 | ENDDRAW
52 | ENDDEF
53 | #
54 | # Connector_Generic_Conn_02x09_Odd_Even
55 | #
56 | DEF Connector_Generic_Conn_02x09_Odd_Even J 0 40 Y N 1 F N
57 | F0 "J" 50 500 50 H V C CNN
58 | F1 "Connector_Generic_Conn_02x09_Odd_Even" 50 -500 50 H V C CNN
59 | F2 "" 0 0 50 H I C CNN
60 | F3 "" 0 0 50 H I C CNN
61 | $FPLIST
62 | Connector*:*_2x??_*
63 | $ENDFPLIST
64 | DRAW
65 | S -50 -395 0 -405 1 1 6 N
66 | S -50 -295 0 -305 1 1 6 N
67 | S -50 -195 0 -205 1 1 6 N
68 | S -50 -95 0 -105 1 1 6 N
69 | S -50 5 0 -5 1 1 6 N
70 | S -50 105 0 95 1 1 6 N
71 | S -50 205 0 195 1 1 6 N
72 | S -50 305 0 295 1 1 6 N
73 | S -50 405 0 395 1 1 6 N
74 | S -50 450 150 -450 1 1 10 f
75 | S 150 -395 100 -405 1 1 6 N
76 | S 150 -295 100 -305 1 1 6 N
77 | S 150 -195 100 -205 1 1 6 N
78 | S 150 -95 100 -105 1 1 6 N
79 | S 150 5 100 -5 1 1 6 N
80 | S 150 105 100 95 1 1 6 N
81 | S 150 205 100 195 1 1 6 N
82 | S 150 305 100 295 1 1 6 N
83 | S 150 405 100 395 1 1 6 N
84 | X Pin_1 1 -200 400 150 R 50 50 1 1 P
85 | X Pin_10 10 300 0 150 L 50 50 1 1 P
86 | X Pin_11 11 -200 -100 150 R 50 50 1 1 P
87 | X Pin_12 12 300 -100 150 L 50 50 1 1 P
88 | X Pin_13 13 -200 -200 150 R 50 50 1 1 P
89 | X Pin_14 14 300 -200 150 L 50 50 1 1 P
90 | X Pin_15 15 -200 -300 150 R 50 50 1 1 P
91 | X Pin_16 16 300 -300 150 L 50 50 1 1 P
92 | X Pin_17 17 -200 -400 150 R 50 50 1 1 P
93 | X Pin_18 18 300 -400 150 L 50 50 1 1 P
94 | X Pin_2 2 300 400 150 L 50 50 1 1 P
95 | X Pin_3 3 -200 300 150 R 50 50 1 1 P
96 | X Pin_4 4 300 300 150 L 50 50 1 1 P
97 | X Pin_5 5 -200 200 150 R 50 50 1 1 P
98 | X Pin_6 6 300 200 150 L 50 50 1 1 P
99 | X Pin_7 7 -200 100 150 R 50 50 1 1 P
100 | X Pin_8 8 300 100 150 L 50 50 1 1 P
101 | X Pin_9 9 -200 0 150 R 50 50 1 1 P
102 | ENDDRAW
103 | ENDDEF
104 | #
105 | #End Library
106 |
--------------------------------------------------------------------------------
/bus_breakout/bus_breakout.pro:
--------------------------------------------------------------------------------
1 | update=Saturday, 28 March 2020 at 15:07:36
2 | version=1
3 | last_client=kicad
4 | [general]
5 | version=1
6 | RootSch=
7 | BoardNm=
8 | [cvpcb]
9 | version=1
10 | NetIExt=net
11 | [eeschema]
12 | version=1
13 | LibDir=
14 | [eeschema/libraries]
15 | [pcbnew]
16 | version=1
17 | PageLayoutDescrFile=
18 | LastNetListRead=
19 | CopperLayerCount=2
20 | BoardThickness=1.6
21 | AllowMicroVias=0
22 | AllowBlindVias=0
23 | RequireCourtyardDefinitions=0
24 | ProhibitOverlappingCourtyards=1
25 | MinTrackWidth=0.2
26 | MinViaDiameter=0.4
27 | MinViaDrill=0.3
28 | MinMicroViaDiameter=0.2
29 | MinMicroViaDrill=0.09999999999999999
30 | MinHoleToHole=0.25
31 | TrackWidth1=0.3
32 | ViaDiameter1=0.8
33 | ViaDrill1=0.4
34 | dPairWidth1=0.2
35 | dPairGap1=0.25
36 | dPairViaGap1=0.25
37 | SilkLineWidth=0.12
38 | SilkTextSizeV=1
39 | SilkTextSizeH=1
40 | SilkTextSizeThickness=0.15
41 | SilkTextItalic=0
42 | SilkTextUpright=1
43 | CopperLineWidth=0.2
44 | CopperTextSizeV=1.5
45 | CopperTextSizeH=1.5
46 | CopperTextThickness=0.3
47 | CopperTextItalic=0
48 | CopperTextUpright=1
49 | EdgeCutLineWidth=0.05
50 | CourtyardLineWidth=0.05
51 | OthersLineWidth=0.15
52 | OthersTextSizeV=1
53 | OthersTextSizeH=1
54 | OthersTextSizeThickness=0.15
55 | OthersTextItalic=0
56 | OthersTextUpright=1
57 | SolderMaskClearance=0.051
58 | SolderMaskMinWidth=0.25
59 | SolderPasteClearance=0
60 | SolderPasteRatio=-0
61 | [pcbnew/Layer.F.Cu]
62 | Name=F.Cu
63 | Type=0
64 | Enabled=1
65 | [pcbnew/Layer.In1.Cu]
66 | Name=In1.Cu
67 | Type=0
68 | Enabled=0
69 | [pcbnew/Layer.In2.Cu]
70 | Name=In2.Cu
71 | Type=0
72 | Enabled=0
73 | [pcbnew/Layer.In3.Cu]
74 | Name=In3.Cu
75 | Type=0
76 | Enabled=0
77 | [pcbnew/Layer.In4.Cu]
78 | Name=In4.Cu
79 | Type=0
80 | Enabled=0
81 | [pcbnew/Layer.In5.Cu]
82 | Name=In5.Cu
83 | Type=0
84 | Enabled=0
85 | [pcbnew/Layer.In6.Cu]
86 | Name=In6.Cu
87 | Type=0
88 | Enabled=0
89 | [pcbnew/Layer.In7.Cu]
90 | Name=In7.Cu
91 | Type=0
92 | Enabled=0
93 | [pcbnew/Layer.In8.Cu]
94 | Name=In8.Cu
95 | Type=0
96 | Enabled=0
97 | [pcbnew/Layer.In9.Cu]
98 | Name=In9.Cu
99 | Type=0
100 | Enabled=0
101 | [pcbnew/Layer.In10.Cu]
102 | Name=In10.Cu
103 | Type=0
104 | Enabled=0
105 | [pcbnew/Layer.In11.Cu]
106 | Name=In11.Cu
107 | Type=0
108 | Enabled=0
109 | [pcbnew/Layer.In12.Cu]
110 | Name=In12.Cu
111 | Type=0
112 | Enabled=0
113 | [pcbnew/Layer.In13.Cu]
114 | Name=In13.Cu
115 | Type=0
116 | Enabled=0
117 | [pcbnew/Layer.In14.Cu]
118 | Name=In14.Cu
119 | Type=0
120 | Enabled=0
121 | [pcbnew/Layer.In15.Cu]
122 | Name=In15.Cu
123 | Type=0
124 | Enabled=0
125 | [pcbnew/Layer.In16.Cu]
126 | Name=In16.Cu
127 | Type=0
128 | Enabled=0
129 | [pcbnew/Layer.In17.Cu]
130 | Name=In17.Cu
131 | Type=0
132 | Enabled=0
133 | [pcbnew/Layer.In18.Cu]
134 | Name=In18.Cu
135 | Type=0
136 | Enabled=0
137 | [pcbnew/Layer.In19.Cu]
138 | Name=In19.Cu
139 | Type=0
140 | Enabled=0
141 | [pcbnew/Layer.In20.Cu]
142 | Name=In20.Cu
143 | Type=0
144 | Enabled=0
145 | [pcbnew/Layer.In21.Cu]
146 | Name=In21.Cu
147 | Type=0
148 | Enabled=0
149 | [pcbnew/Layer.In22.Cu]
150 | Name=In22.Cu
151 | Type=0
152 | Enabled=0
153 | [pcbnew/Layer.In23.Cu]
154 | Name=In23.Cu
155 | Type=0
156 | Enabled=0
157 | [pcbnew/Layer.In24.Cu]
158 | Name=In24.Cu
159 | Type=0
160 | Enabled=0
161 | [pcbnew/Layer.In25.Cu]
162 | Name=In25.Cu
163 | Type=0
164 | Enabled=0
165 | [pcbnew/Layer.In26.Cu]
166 | Name=In26.Cu
167 | Type=0
168 | Enabled=0
169 | [pcbnew/Layer.In27.Cu]
170 | Name=In27.Cu
171 | Type=0
172 | Enabled=0
173 | [pcbnew/Layer.In28.Cu]
174 | Name=In28.Cu
175 | Type=0
176 | Enabled=0
177 | [pcbnew/Layer.In29.Cu]
178 | Name=In29.Cu
179 | Type=0
180 | Enabled=0
181 | [pcbnew/Layer.In30.Cu]
182 | Name=In30.Cu
183 | Type=0
184 | Enabled=0
185 | [pcbnew/Layer.B.Cu]
186 | Name=B.Cu
187 | Type=0
188 | Enabled=1
189 | [pcbnew/Layer.B.Adhes]
190 | Enabled=1
191 | [pcbnew/Layer.F.Adhes]
192 | Enabled=1
193 | [pcbnew/Layer.B.Paste]
194 | Enabled=1
195 | [pcbnew/Layer.F.Paste]
196 | Enabled=1
197 | [pcbnew/Layer.B.SilkS]
198 | Enabled=1
199 | [pcbnew/Layer.F.SilkS]
200 | Enabled=1
201 | [pcbnew/Layer.B.Mask]
202 | Enabled=1
203 | [pcbnew/Layer.F.Mask]
204 | Enabled=1
205 | [pcbnew/Layer.Dwgs.User]
206 | Enabled=1
207 | [pcbnew/Layer.Cmts.User]
208 | Enabled=1
209 | [pcbnew/Layer.Eco1.User]
210 | Enabled=1
211 | [pcbnew/Layer.Eco2.User]
212 | Enabled=1
213 | [pcbnew/Layer.Edge.Cuts]
214 | Enabled=1
215 | [pcbnew/Layer.Margin]
216 | Enabled=1
217 | [pcbnew/Layer.B.CrtYd]
218 | Enabled=1
219 | [pcbnew/Layer.F.CrtYd]
220 | Enabled=1
221 | [pcbnew/Layer.B.Fab]
222 | Enabled=1
223 | [pcbnew/Layer.F.Fab]
224 | Enabled=1
225 | [pcbnew/Layer.Rescue]
226 | Enabled=0
227 | [pcbnew/Netclasses]
228 | [pcbnew/Netclasses/Default]
229 | Name=Default
230 | Clearance=0.2
231 | TrackWidth=0.3
232 | ViaDiameter=0.8
233 | ViaDrill=0.4
234 | uViaDiameter=0.3
235 | uViaDrill=0.1
236 | dPairWidth=0.2
237 | dPairGap=0.25
238 | dPairViaGap=0.25
239 |
--------------------------------------------------------------------------------
/bus_breakout/bus_breakout.sch:
--------------------------------------------------------------------------------
1 | EESchema Schematic File Version 4
2 | EELAYER 30 0
3 | EELAYER END
4 | $Descr A4 11693 8268
5 | encoding utf-8
6 | Sheet 1 1
7 | Title ""
8 | Date ""
9 | Rev ""
10 | Comp ""
11 | Comment1 ""
12 | Comment2 ""
13 | Comment3 ""
14 | Comment4 ""
15 | $EndDescr
16 | $Comp
17 | L Connector_Generic:Conn_01x08 J1
18 | U 1 1 5E7F3AE4
19 | P 4500 5300
20 | F 0 "J1" V 4372 4812 50 0000 R CNN
21 | F 1 "Signals" V 4463 4812 50 0000 R CNN
22 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical" H 4500 5300 50 0001 C CNN
23 | F 3 "~" H 4500 5300 50 0001 C CNN
24 | 1 4500 5300
25 | 0 -1 1 0
26 | $EndComp
27 | $Comp
28 | L Connector_Generic:Conn_01x02 J3
29 | U 1 1 5E7F8A6C
30 | P 6200 4500
31 | F 0 "J3" H 6280 4492 50 0000 L CNN
32 | F 1 "Power" H 6280 4401 50 0000 L CNN
33 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 6200 4500 50 0001 C CNN
34 | F 3 "~" H 6200 4500 50 0001 C CNN
35 | 1 6200 4500
36 | 1 0 0 -1
37 | $EndComp
38 | $Comp
39 | L Connector_Generic:Conn_02x09_Odd_Even J4
40 | U 1 1 5E7F9439
41 | P 4600 4600
42 | F 0 "J4" V 4696 4112 50 0000 R CNN
43 | F 1 "Conn_02x09_Odd_Even" V 4605 4112 50 0000 R CNN
44 | F 2 "Connector_PinHeader_2.54mm:PinHeader_2x09_P2.54mm_Vertical" H 4600 4600 50 0001 C CNN
45 | F 3 "~" H 4600 4600 50 0001 C CNN
46 | 1 4600 4600
47 | 0 -1 -1 0
48 | $EndComp
49 | Wire Wire Line
50 | 4200 4000 4200 4300
51 | Wire Wire Line
52 | 4300 4000 4300 4300
53 | Wire Wire Line
54 | 4400 4000 4400 4300
55 | Wire Wire Line
56 | 4500 4000 4500 4300
57 | Wire Wire Line
58 | 4600 4000 4600 4300
59 | Wire Wire Line
60 | 4700 4000 4700 4300
61 | Wire Wire Line
62 | 4800 4000 4800 4300
63 | Wire Wire Line
64 | 4900 4000 4900 4300
65 | Wire Wire Line
66 | 4200 5100 4200 4800
67 | Wire Wire Line
68 | 4300 5100 4300 4800
69 | Wire Wire Line
70 | 4400 5100 4400 4800
71 | Wire Wire Line
72 | 4500 5100 4500 4800
73 | Wire Wire Line
74 | 4600 5100 4600 4800
75 | Wire Wire Line
76 | 4700 5100 4700 4800
77 | Wire Wire Line
78 | 4800 5100 4800 4800
79 | Wire Wire Line
80 | 4900 5100 4900 4800
81 | Wire Wire Line
82 | 6000 4800 5000 4800
83 | Wire Wire Line
84 | 5000 4300 6000 4300
85 | Wire Wire Line
86 | 6000 4300 6000 4500
87 | $Comp
88 | L Connector_Generic:Conn_01x08 J2
89 | U 1 1 5E7F6C54
90 | P 4500 3800
91 | F 0 "J2" V 4464 3312 50 0000 R CNN
92 | F 1 "BUS" V 4373 3312 50 0000 R CNN
93 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical" H 4500 3800 50 0001 C CNN
94 | F 3 "~" H 4500 3800 50 0001 C CNN
95 | 1 4500 3800
96 | 0 -1 -1 0
97 | $EndComp
98 | Wire Wire Line
99 | 6000 4600 6000 4800
100 | $EndSCHEMATC
101 |
--------------------------------------------------------------------------------
/eeprom_programmer/arduino_eeprom_programmer/arduino_eeprom_programmer.pro:
--------------------------------------------------------------------------------
1 | update=Friday, 27 March 2020 at 16:26:40
2 | version=1
3 | last_client=kicad
4 | [general]
5 | version=1
6 | RootSch=
7 | BoardNm=
8 | [cvpcb]
9 | version=1
10 | NetIExt=net
11 | [eeschema]
12 | version=1
13 | LibDir=
14 | [eeschema/libraries]
15 | [pcbnew]
16 | version=1
17 | PageLayoutDescrFile=
18 | LastNetListRead=
19 | CopperLayerCount=2
20 | BoardThickness=1.6
21 | AllowMicroVias=0
22 | AllowBlindVias=0
23 | RequireCourtyardDefinitions=0
24 | ProhibitOverlappingCourtyards=1
25 | MinTrackWidth=0.2
26 | MinViaDiameter=0.4
27 | MinViaDrill=0.3
28 | MinMicroViaDiameter=0.2
29 | MinMicroViaDrill=0.09999999999999999
30 | MinHoleToHole=0.25
31 | TrackWidth1=0.254
32 | ViaDiameter1=0.6
33 | ViaDrill1=0.4
34 | dPairWidth1=0.3
35 | dPairGap1=0.25
36 | dPairViaGap1=0.25
37 | SilkLineWidth=0.12
38 | SilkTextSizeV=1
39 | SilkTextSizeH=1
40 | SilkTextSizeThickness=0.15
41 | SilkTextItalic=0
42 | SilkTextUpright=1
43 | CopperLineWidth=0.2
44 | CopperTextSizeV=1.5
45 | CopperTextSizeH=1.5
46 | CopperTextThickness=0.3
47 | CopperTextItalic=0
48 | CopperTextUpright=1
49 | EdgeCutLineWidth=0.05
50 | CourtyardLineWidth=0.05
51 | OthersLineWidth=0.15
52 | OthersTextSizeV=1
53 | OthersTextSizeH=1
54 | OthersTextSizeThickness=0.15
55 | OthersTextItalic=0
56 | OthersTextUpright=1
57 | SolderMaskClearance=0.051
58 | SolderMaskMinWidth=0.25
59 | SolderPasteClearance=0
60 | SolderPasteRatio=-0
61 | [pcbnew/Layer.F.Cu]
62 | Name=F.Cu
63 | Type=0
64 | Enabled=1
65 | [pcbnew/Layer.In1.Cu]
66 | Name=In1.Cu
67 | Type=0
68 | Enabled=0
69 | [pcbnew/Layer.In2.Cu]
70 | Name=In2.Cu
71 | Type=0
72 | Enabled=0
73 | [pcbnew/Layer.In3.Cu]
74 | Name=In3.Cu
75 | Type=0
76 | Enabled=0
77 | [pcbnew/Layer.In4.Cu]
78 | Name=In4.Cu
79 | Type=0
80 | Enabled=0
81 | [pcbnew/Layer.In5.Cu]
82 | Name=In5.Cu
83 | Type=0
84 | Enabled=0
85 | [pcbnew/Layer.In6.Cu]
86 | Name=In6.Cu
87 | Type=0
88 | Enabled=0
89 | [pcbnew/Layer.In7.Cu]
90 | Name=In7.Cu
91 | Type=0
92 | Enabled=0
93 | [pcbnew/Layer.In8.Cu]
94 | Name=In8.Cu
95 | Type=0
96 | Enabled=0
97 | [pcbnew/Layer.In9.Cu]
98 | Name=In9.Cu
99 | Type=0
100 | Enabled=0
101 | [pcbnew/Layer.In10.Cu]
102 | Name=In10.Cu
103 | Type=0
104 | Enabled=0
105 | [pcbnew/Layer.In11.Cu]
106 | Name=In11.Cu
107 | Type=0
108 | Enabled=0
109 | [pcbnew/Layer.In12.Cu]
110 | Name=In12.Cu
111 | Type=0
112 | Enabled=0
113 | [pcbnew/Layer.In13.Cu]
114 | Name=In13.Cu
115 | Type=0
116 | Enabled=0
117 | [pcbnew/Layer.In14.Cu]
118 | Name=In14.Cu
119 | Type=0
120 | Enabled=0
121 | [pcbnew/Layer.In15.Cu]
122 | Name=In15.Cu
123 | Type=0
124 | Enabled=0
125 | [pcbnew/Layer.In16.Cu]
126 | Name=In16.Cu
127 | Type=0
128 | Enabled=0
129 | [pcbnew/Layer.In17.Cu]
130 | Name=In17.Cu
131 | Type=0
132 | Enabled=0
133 | [pcbnew/Layer.In18.Cu]
134 | Name=In18.Cu
135 | Type=0
136 | Enabled=0
137 | [pcbnew/Layer.In19.Cu]
138 | Name=In19.Cu
139 | Type=0
140 | Enabled=0
141 | [pcbnew/Layer.In20.Cu]
142 | Name=In20.Cu
143 | Type=0
144 | Enabled=0
145 | [pcbnew/Layer.In21.Cu]
146 | Name=In21.Cu
147 | Type=0
148 | Enabled=0
149 | [pcbnew/Layer.In22.Cu]
150 | Name=In22.Cu
151 | Type=0
152 | Enabled=0
153 | [pcbnew/Layer.In23.Cu]
154 | Name=In23.Cu
155 | Type=0
156 | Enabled=0
157 | [pcbnew/Layer.In24.Cu]
158 | Name=In24.Cu
159 | Type=0
160 | Enabled=0
161 | [pcbnew/Layer.In25.Cu]
162 | Name=In25.Cu
163 | Type=0
164 | Enabled=0
165 | [pcbnew/Layer.In26.Cu]
166 | Name=In26.Cu
167 | Type=0
168 | Enabled=0
169 | [pcbnew/Layer.In27.Cu]
170 | Name=In27.Cu
171 | Type=0
172 | Enabled=0
173 | [pcbnew/Layer.In28.Cu]
174 | Name=In28.Cu
175 | Type=0
176 | Enabled=0
177 | [pcbnew/Layer.In29.Cu]
178 | Name=In29.Cu
179 | Type=0
180 | Enabled=0
181 | [pcbnew/Layer.In30.Cu]
182 | Name=In30.Cu
183 | Type=0
184 | Enabled=0
185 | [pcbnew/Layer.B.Cu]
186 | Name=B.Cu
187 | Type=0
188 | Enabled=1
189 | [pcbnew/Layer.B.Adhes]
190 | Enabled=1
191 | [pcbnew/Layer.F.Adhes]
192 | Enabled=1
193 | [pcbnew/Layer.B.Paste]
194 | Enabled=1
195 | [pcbnew/Layer.F.Paste]
196 | Enabled=1
197 | [pcbnew/Layer.B.SilkS]
198 | Enabled=1
199 | [pcbnew/Layer.F.SilkS]
200 | Enabled=1
201 | [pcbnew/Layer.B.Mask]
202 | Enabled=1
203 | [pcbnew/Layer.F.Mask]
204 | Enabled=1
205 | [pcbnew/Layer.Dwgs.User]
206 | Enabled=1
207 | [pcbnew/Layer.Cmts.User]
208 | Enabled=1
209 | [pcbnew/Layer.Eco1.User]
210 | Enabled=1
211 | [pcbnew/Layer.Eco2.User]
212 | Enabled=1
213 | [pcbnew/Layer.Edge.Cuts]
214 | Enabled=1
215 | [pcbnew/Layer.Margin]
216 | Enabled=1
217 | [pcbnew/Layer.B.CrtYd]
218 | Enabled=1
219 | [pcbnew/Layer.F.CrtYd]
220 | Enabled=1
221 | [pcbnew/Layer.B.Fab]
222 | Enabled=1
223 | [pcbnew/Layer.F.Fab]
224 | Enabled=1
225 | [pcbnew/Layer.Rescue]
226 | Enabled=0
227 | [pcbnew/Netclasses]
228 | [pcbnew/Netclasses/Default]
229 | Name=Default
230 | Clearance=0.253997
231 | TrackWidth=0.254
232 | ViaDiameter=0.6
233 | ViaDrill=0.4
234 | uViaDiameter=0.3
235 | uViaDrill=0.1
236 | dPairWidth=0.3
237 | dPairGap=0.25
238 | dPairViaGap=0.25
239 | [pcbnew/Netclasses/1]
240 | Name=POWER
241 | Clearance=0.253997
242 | TrackWidth=0.3
243 | ViaDiameter=0.6
244 | ViaDrill=0.4
245 | uViaDiameter=0.3
246 | uViaDrill=0.1
247 | dPairWidth=0.3
248 | dPairGap=0.25
249 | dPairViaGap=0.25
250 |
--------------------------------------------------------------------------------
/eeprom_programmer/arduino_eeprom_programmer/fp-info-cache:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/eeprom_programmer/arduino_eeprom_programmer/fp-lib-table:
--------------------------------------------------------------------------------
1 | (fp_lib_table
2 | (lib (name Arduino)(type KiCad)(uri "/Users/fscozzafava/Library/Mobile Documents/com~apple~CloudDocs/computer project/programming_interface/arduino-kicad-library/Arduino.pretty")(options "")(descr ""))
3 | (lib (name 8bit-custom-footprints)(type KiCad)(uri "/Users/fscozzafava/Library/Mobile Documents/com~apple~CloudDocs/computer project/8bit-computer/8bit-custom-footprints.pretty")(options "")(descr ""))
4 | )
5 |
--------------------------------------------------------------------------------
/eeprom_programmer/arduino_eeprom_programmer/images/arduino_eeprom_programmer_render.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/eeprom_programmer/arduino_eeprom_programmer/images/arduino_eeprom_programmer_render.png
--------------------------------------------------------------------------------
/eeprom_programmer/arduino_eeprom_programmer/sym-lib-table:
--------------------------------------------------------------------------------
1 | (sym_lib_table
2 | (lib (name 8bit-computer-rescue)(type Legacy)(uri "/Users/fscozzafava/Library/Mobile Documents/com~apple~CloudDocs/computer project/8bit-computer/8bit-computer-rescue.lib")(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/helix_display_interface/README.md:
--------------------------------------------------------------------------------
1 | # Helix Display Interface
2 |
3 | An ATmega328-driven LCD Display peripheral for the MK1 8-bit CPU.
4 |
5 |
6 |
7 | ## Description
8 |
9 | LCD character display interface for the MK1 CPU computer.
10 |
11 | Uses an ATmega328P as driver and implements Integer and Character output mode.
12 |
13 | Commands and data are both transmitted on the external bus.
14 |
15 | There are two external bus connectors for peripheral daisy chaining.
16 |
17 |
--------------------------------------------------------------------------------
/helix_display_interface/code/helix_display_interface/helix_display_interface.ino:
--------------------------------------------------------------------------------
1 | #include
2 | const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
3 | LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
4 |
5 | #define CLK PB7
6 | #define CLR PB6
7 | #define SIG1 13
8 | #define SIG0 10
9 | #define EN 9
10 | #define IRQ 8
11 |
12 | #define read_clock PINB & 0x80
13 | #define read_mode ((PINB & 0x4) >> 2) + ((PINB & 0x20) >> 4)
14 | #define read_bus (PINC & 0x3F) | (PIND & 0xC0)
15 | #define disable_signal PORTB &= 0xfe
16 | #define enable_signal PORTB |= 0x1
17 | #define read_enable PINB & 2
18 | #define read_clear PINB & B01000000
19 |
20 | volatile boolean data_available = false;
21 | volatile byte data = 0;
22 | volatile byte mode = 0;
23 | int written_bytes = 0;
24 | char buf[4];
25 | char line1[17];
26 | char line2[17];
27 | int cursor = 0;
28 | int curr_line = 0;
29 |
30 | void setup() {
31 | lcd.begin(16, 2);
32 | lcd.setCursor(0, 0);
33 | lcd.clear();
34 |
35 | Serial.begin(9600);
36 |
37 | pinMode(SIG0, INPUT);
38 | pinMode(SIG1, INPUT);
39 | pinMode(EN, INPUT);
40 | pinMode(IRQ, OUTPUT);
41 |
42 | set_bus_input();
43 | DDRB &= ~B11000000;
44 |
45 | lcd.print(" Helix Display");
46 | delay(1000);
47 | lcd.clear();
48 | lcd.blink();
49 | enable_signal;
50 | }
51 |
52 | void set_bus_input()
53 | {
54 | DDRC &= ~B00111111;
55 | DDRD &= ~B11000000;
56 | }
57 |
58 | void set_bus_output()
59 | {
60 | DDRC |= B00111111;
61 | DDRD |= B11000000;
62 | }
63 | void write_bus(byte data)
64 | {
65 | PORTC = (PORTC & 0xC0) | (data & 0x3f);
66 | PORTD = (PORTD & 0x3F) | (data & 0xC0);
67 | }
68 | void scroll_line()
69 | {
70 | if (curr_line == 0)
71 | {
72 | curr_line = 1;
73 | lcd.setCursor(0, 1);
74 | }
75 | else
76 | {
77 | lcd.clear();
78 | lcd.setCursor(0, 0);
79 | lcd.print(line2);
80 | strcpy(line1, line2);
81 | lcd.setCursor(0, 1);
82 | curr_line = 1;
83 | }
84 | }
85 |
86 | void update_display(char data[])
87 | {
88 | int count = 0;
89 | char* line = curr_line == 0 ? line1 : line2;
90 | while (data[++count] != 0);
91 | if (cursor + count > 16 || (mode == 2 && data[0] == '\n')) {
92 | scroll_line();
93 | cursor = 0;
94 | line = line2;
95 | }
96 | if (mode == 2 && buf[0] == '\n')
97 | return;
98 | strcpy(line + cursor, data);
99 | cursor += count;
100 | lcd.print(buf);
101 | written_bytes++;
102 | }
103 |
104 | void loop() {
105 | mode = read_mode;
106 | data = read_bus;
107 | if (read_enable)
108 | {
109 | disable_signal;
110 | data_available = mode > 0;
111 | }
112 |
113 | if (data_available)
114 | {
115 | //INTEGER
116 | if (mode == 1)
117 | {
118 | itoa(data, buf, 10);
119 | update_display(buf);
120 | }
121 | //CHAR
122 | else if (mode == 2)
123 | {
124 | buf[0] = data;
125 | buf[1] = 0;
126 | update_display(buf);
127 | Serial.print((char)data);
128 | }
129 | else if (mode == 3)
130 | {
131 | lcd.clear();
132 | lcd.setCursor(0, 0);
133 | written_bytes = 0;
134 | cursor = 0;
135 | }
136 | data_available = false;
137 | delay(25);
138 | enable_signal;
139 | }
140 | else if (read_clear)
141 | {
142 | lcd.home();
143 | lcd.clear();
144 | written_bytes = 0;
145 | Serial.println();
146 | cursor = 0;
147 | enable_signal;
148 | }
149 | }
150 |
--------------------------------------------------------------------------------
/helix_display_interface/display_interface/display_interface.pro:
--------------------------------------------------------------------------------
1 | update=Saturday, 28 March 2020 at 01:08:42
2 | version=1
3 | last_client=kicad
4 | [general]
5 | version=1
6 | RootSch=
7 | BoardNm=
8 | [cvpcb]
9 | version=1
10 | NetIExt=net
11 | [eeschema]
12 | version=1
13 | LibDir=
14 | [eeschema/libraries]
15 | [pcbnew]
16 | version=1
17 | PageLayoutDescrFile=
18 | LastNetListRead=
19 | CopperLayerCount=2
20 | BoardThickness=1.6
21 | AllowMicroVias=0
22 | AllowBlindVias=0
23 | RequireCourtyardDefinitions=0
24 | ProhibitOverlappingCourtyards=1
25 | MinTrackWidth=0.2
26 | MinViaDiameter=0.4
27 | MinViaDrill=0.3
28 | MinMicroViaDiameter=0.2
29 | MinMicroViaDrill=0.09999999999999999
30 | MinHoleToHole=0.25
31 | TrackWidth1=0.254
32 | ViaDiameter1=0.6
33 | ViaDrill1=0.4
34 | dPairWidth1=0.3
35 | dPairGap1=0.25
36 | dPairViaGap1=0.25
37 | SilkLineWidth=0.12
38 | SilkTextSizeV=1
39 | SilkTextSizeH=1
40 | SilkTextSizeThickness=0.15
41 | SilkTextItalic=0
42 | SilkTextUpright=1
43 | CopperLineWidth=0.2
44 | CopperTextSizeV=1.5
45 | CopperTextSizeH=1.5
46 | CopperTextThickness=0.3
47 | CopperTextItalic=0
48 | CopperTextUpright=1
49 | EdgeCutLineWidth=0.05
50 | CourtyardLineWidth=0.05
51 | OthersLineWidth=0.15
52 | OthersTextSizeV=1
53 | OthersTextSizeH=1
54 | OthersTextSizeThickness=0.15
55 | OthersTextItalic=0
56 | OthersTextUpright=1
57 | SolderMaskClearance=0.051
58 | SolderMaskMinWidth=0.25
59 | SolderPasteClearance=0
60 | SolderPasteRatio=-0
61 | [pcbnew/Layer.F.Cu]
62 | Name=F.Cu
63 | Type=0
64 | Enabled=1
65 | [pcbnew/Layer.In1.Cu]
66 | Name=In1.Cu
67 | Type=0
68 | Enabled=0
69 | [pcbnew/Layer.In2.Cu]
70 | Name=In2.Cu
71 | Type=0
72 | Enabled=0
73 | [pcbnew/Layer.In3.Cu]
74 | Name=In3.Cu
75 | Type=0
76 | Enabled=0
77 | [pcbnew/Layer.In4.Cu]
78 | Name=In4.Cu
79 | Type=0
80 | Enabled=0
81 | [pcbnew/Layer.In5.Cu]
82 | Name=In5.Cu
83 | Type=0
84 | Enabled=0
85 | [pcbnew/Layer.In6.Cu]
86 | Name=In6.Cu
87 | Type=0
88 | Enabled=0
89 | [pcbnew/Layer.In7.Cu]
90 | Name=In7.Cu
91 | Type=0
92 | Enabled=0
93 | [pcbnew/Layer.In8.Cu]
94 | Name=In8.Cu
95 | Type=0
96 | Enabled=0
97 | [pcbnew/Layer.In9.Cu]
98 | Name=In9.Cu
99 | Type=0
100 | Enabled=0
101 | [pcbnew/Layer.In10.Cu]
102 | Name=In10.Cu
103 | Type=0
104 | Enabled=0
105 | [pcbnew/Layer.In11.Cu]
106 | Name=In11.Cu
107 | Type=0
108 | Enabled=0
109 | [pcbnew/Layer.In12.Cu]
110 | Name=In12.Cu
111 | Type=0
112 | Enabled=0
113 | [pcbnew/Layer.In13.Cu]
114 | Name=In13.Cu
115 | Type=0
116 | Enabled=0
117 | [pcbnew/Layer.In14.Cu]
118 | Name=In14.Cu
119 | Type=0
120 | Enabled=0
121 | [pcbnew/Layer.In15.Cu]
122 | Name=In15.Cu
123 | Type=0
124 | Enabled=0
125 | [pcbnew/Layer.In16.Cu]
126 | Name=In16.Cu
127 | Type=0
128 | Enabled=0
129 | [pcbnew/Layer.In17.Cu]
130 | Name=In17.Cu
131 | Type=0
132 | Enabled=0
133 | [pcbnew/Layer.In18.Cu]
134 | Name=In18.Cu
135 | Type=0
136 | Enabled=0
137 | [pcbnew/Layer.In19.Cu]
138 | Name=In19.Cu
139 | Type=0
140 | Enabled=0
141 | [pcbnew/Layer.In20.Cu]
142 | Name=In20.Cu
143 | Type=0
144 | Enabled=0
145 | [pcbnew/Layer.In21.Cu]
146 | Name=In21.Cu
147 | Type=0
148 | Enabled=0
149 | [pcbnew/Layer.In22.Cu]
150 | Name=In22.Cu
151 | Type=0
152 | Enabled=0
153 | [pcbnew/Layer.In23.Cu]
154 | Name=In23.Cu
155 | Type=0
156 | Enabled=0
157 | [pcbnew/Layer.In24.Cu]
158 | Name=In24.Cu
159 | Type=0
160 | Enabled=0
161 | [pcbnew/Layer.In25.Cu]
162 | Name=In25.Cu
163 | Type=0
164 | Enabled=0
165 | [pcbnew/Layer.In26.Cu]
166 | Name=In26.Cu
167 | Type=0
168 | Enabled=0
169 | [pcbnew/Layer.In27.Cu]
170 | Name=In27.Cu
171 | Type=0
172 | Enabled=0
173 | [pcbnew/Layer.In28.Cu]
174 | Name=In28.Cu
175 | Type=0
176 | Enabled=0
177 | [pcbnew/Layer.In29.Cu]
178 | Name=In29.Cu
179 | Type=0
180 | Enabled=0
181 | [pcbnew/Layer.In30.Cu]
182 | Name=In30.Cu
183 | Type=0
184 | Enabled=0
185 | [pcbnew/Layer.B.Cu]
186 | Name=B.Cu
187 | Type=0
188 | Enabled=1
189 | [pcbnew/Layer.B.Adhes]
190 | Enabled=1
191 | [pcbnew/Layer.F.Adhes]
192 | Enabled=1
193 | [pcbnew/Layer.B.Paste]
194 | Enabled=1
195 | [pcbnew/Layer.F.Paste]
196 | Enabled=1
197 | [pcbnew/Layer.B.SilkS]
198 | Enabled=1
199 | [pcbnew/Layer.F.SilkS]
200 | Enabled=1
201 | [pcbnew/Layer.B.Mask]
202 | Enabled=1
203 | [pcbnew/Layer.F.Mask]
204 | Enabled=1
205 | [pcbnew/Layer.Dwgs.User]
206 | Enabled=1
207 | [pcbnew/Layer.Cmts.User]
208 | Enabled=1
209 | [pcbnew/Layer.Eco1.User]
210 | Enabled=1
211 | [pcbnew/Layer.Eco2.User]
212 | Enabled=1
213 | [pcbnew/Layer.Edge.Cuts]
214 | Enabled=1
215 | [pcbnew/Layer.Margin]
216 | Enabled=1
217 | [pcbnew/Layer.B.CrtYd]
218 | Enabled=1
219 | [pcbnew/Layer.F.CrtYd]
220 | Enabled=1
221 | [pcbnew/Layer.B.Fab]
222 | Enabled=1
223 | [pcbnew/Layer.F.Fab]
224 | Enabled=1
225 | [pcbnew/Layer.Rescue]
226 | Enabled=0
227 | [pcbnew/Netclasses]
228 | [pcbnew/Netclasses/Default]
229 | Name=Default
230 | Clearance=0.253997
231 | TrackWidth=0.254
232 | ViaDiameter=0.6
233 | ViaDrill=0.4
234 | uViaDiameter=0.3
235 | uViaDrill=0.1
236 | dPairWidth=0.3
237 | dPairGap=0.25
238 | dPairViaGap=0.25
239 | [pcbnew/Netclasses/1]
240 | Name=POWER
241 | Clearance=0.253997
242 | TrackWidth=0.3
243 | ViaDiameter=0.6
244 | ViaDrill=0.4
245 | uViaDiameter=0.3
246 | uViaDrill=0.1
247 | dPairWidth=0.3
248 | dPairGap=0.25
249 | dPairViaGap=0.25
250 |
--------------------------------------------------------------------------------
/helix_display_interface/images/display_interface_render.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/helix_display_interface/images/display_interface_render.png
--------------------------------------------------------------------------------
/helix_display_interface/images/hello_world.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/helix_display_interface/images/hello_world.gif
--------------------------------------------------------------------------------
/start9_programming_interface/README.md:
--------------------------------------------------------------------------------
1 | # Start9 Programming Interface
2 |
3 | An ATmega328-driven programming interface for the MK1 8-bit CPU.
4 |
5 |
6 |
7 | ## Description
8 |
9 | Writes a program, stored in a flash memory, into the working memory of the MK1 CPU.
10 |
11 | Supports up to 16 program slots, the program/next button is used to select the bank and write the selected program.
--------------------------------------------------------------------------------
/start9_programming_interface/code/flash_composer.py:
--------------------------------------------------------------------------------
1 | import argparse
2 | from io import BytesIO
3 | import sys
4 |
5 | def byte(value):
6 | return (value).to_bytes(1, 'big', signed=False)
7 |
8 | def write(address, data, out):
9 | out.seek(address)
10 | data = data & 255
11 | out.write(data.to_bytes(1, 'big'))
12 |
13 | def assemble_binary(files):
14 | b = bytes()
15 | buffer = BytesIO(b)
16 | #Program data bytes
17 | print("Generating binary...")
18 |
19 | #address-out locations
20 | for i in range(512):
21 | buffer.write(byte(i // 2))
22 |
23 | current_bank = 1
24 | for file in files:
25 | curr_address = 0
26 | with open(file, 'rb') as f:
27 | data = 1
28 | while data:
29 | data = f.read(1)
30 | if curr_address > 0xFF:
31 | buffer.seek(current_bank * 512 + (curr_address - 0x100) * 2 + 1)
32 | buffer.write(data)
33 | else:
34 | buffer.seek(current_bank * 512 + curr_address * 2)
35 | buffer.write(data)
36 | curr_address += 1
37 | current_bank += 1
38 |
39 | print("done")
40 | return buffer.getvalue()
41 |
42 | if __name__ == "__main__":
43 |
44 | parser = argparse.ArgumentParser(description='Flash memory composer for Start9 Programming Interface.')
45 | parser.add_argument('-i', '--input', metavar='input', type=str, nargs='+',
46 | required=True, help='input files name')
47 |
48 | args = parser.parse_args()
49 |
50 | if len(args.input) > 14:
51 | print("max number of programs reached: %d. Skipping last %d." % (len(args.input), len(args.input) - 14))
52 |
53 | binary = assemble_binary(args.input)
54 |
55 | out_file_name = "start9.bin"
56 |
57 | with open(out_file_name, 'wb') as out:
58 | out.write(binary)
59 |
60 | with open("start9.txt", "w") as f:
61 | for idx, file in enumerate(args.input):
62 | f.write("%d\t%s\n" % (idx + 1, file[file.rfind("/") + 1:]))
63 |
64 | print("%s generated (%d bytes)."%(out_file_name, len(binary)))
65 |
--------------------------------------------------------------------------------
/start9_programming_interface/code/start9.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/start9_programming_interface/code/start9.bin
--------------------------------------------------------------------------------
/start9_programming_interface/code/start9.txt:
--------------------------------------------------------------------------------
1 | 1 test_suite.bin
2 | 2 display_counter.bin
3 | 3 fibonacci.bin
4 | 4 multiplication_tables.bin
5 | 5 fibonacci_recursive.bin
6 | 6 factorial.bin
7 | 7 primes.bin
8 | 8 display_hello_world.bin
9 | 9 bubble_sort.bin
10 | 10 merge_sort.bin
11 | 11 quick_sort.bin
12 |
--------------------------------------------------------------------------------
/start9_programming_interface/code/start9_programming_interface/start9_programming_interface.ino:
--------------------------------------------------------------------------------
1 | #define MI 8
2 | #define HL 9
3 | #define RI 10
4 | #define EN 11
5 | #define CLK 12
6 | #define RST 13
7 | #define CU_EN A5
8 |
9 | #define NEXT A4
10 |
11 | #define DELAY 2000
12 |
13 | byte current_bank = 0;
14 |
15 | void setup() {
16 | // put your setup code here, to run once:
17 | pinMode(MI, OUTPUT);
18 | pinMode(HL, OUTPUT);
19 | pinMode(RI, OUTPUT);
20 | pinMode(EN, OUTPUT);
21 | pinMode(CLK, INPUT);
22 | pinMode(RST, INPUT);
23 | pinMode(CU_EN, OUTPUT);
24 | pinMode(NEXT, INPUT_PULLUP);
25 |
26 | DDRD |= B11111111;
27 | DDRC |= B00001111;
28 | }
29 |
30 | void reset()
31 | {
32 | pinMode(RST, OUTPUT);
33 | digitalWrite(RST, HIGH);
34 | delayMicroseconds(10);
35 | digitalWrite(RST, LOW);
36 | pinMode(RST, INPUT);
37 | }
38 |
39 | void clock()
40 | {
41 | pinMode(CLK, OUTPUT);
42 | digitalWrite(CLK, HIGH);
43 | delayMicroseconds(1);
44 | digitalWrite(CLK, LOW);
45 | pinMode(CLK, INPUT);
46 | }
47 |
48 | void enableClock()
49 | {
50 | pinMode(CLK, OUTPUT);
51 | digitalWrite(CLK, HIGH);
52 | }
53 |
54 | void disableClock()
55 | {
56 | pinMode(CLK, OUTPUT);
57 | digitalWrite(CLK, LOW);
58 | pinMode(CLK, INPUT);
59 | }
60 |
61 | void disable_cu()
62 | {
63 | digitalWrite(CU_EN, HIGH);
64 | }
65 |
66 | void enable_cu()
67 | {
68 | digitalWrite(CU_EN, LOW);
69 | }
70 |
71 | void enableOutput()
72 | {
73 | digitalWrite(EN, HIGH);
74 | }
75 |
76 | void disableOutput()
77 | {
78 | digitalWrite(EN, LOW);
79 | }
80 |
81 | void set_bank(byte bank)
82 | {
83 | PORTC = bank + (PORTC & 0xF0);
84 | }
85 |
86 | void set_address(unsigned int address)
87 | {
88 | digitalWrite(HL, address > 0xFF);
89 | set_bank(0);
90 | delayMicroseconds(1);
91 | put_out(address % 256);
92 | delayMicroseconds(1);
93 | enableOutput();
94 | digitalWrite(MI, HIGH);
95 | delayMicroseconds(1);
96 | digitalWrite(MI, LOW);
97 | delayMicroseconds(1);
98 | disableOutput();
99 | set_bank(current_bank);
100 | }
101 |
102 | void put_out(byte data)
103 | {
104 | PORTD = data;
105 | }
106 |
107 | void write_instruction(byte instr)
108 | {
109 | put_out(instr % 256);
110 | enableOutput();
111 | delayMicroseconds(1);
112 | digitalWrite(RI, HIGH);
113 | delayMicroseconds(1);
114 | digitalWrite(RI, LOW);
115 | delayMicroseconds(1);
116 | disableOutput();
117 |
118 | }
119 |
120 | void handle_button()
121 | {
122 | while (true)
123 | {
124 | if (!digitalRead(NEXT))
125 | {
126 | if (++current_bank > 15)
127 | current_bank = 1;
128 | set_bank(current_bank);
129 | delay(250);
130 | auto curr_time = millis();
131 | bool next = false;
132 | while (millis() - curr_time < DELAY)
133 | {
134 | if (!digitalRead(NEXT))
135 | {
136 | next = true;
137 | break;
138 | }
139 | }
140 | if (next)
141 | continue;
142 | break;
143 | }
144 | }
145 | }
146 |
147 | void loop() {
148 |
149 | handle_button();
150 |
151 | reset();
152 | disable_cu();
153 |
154 | delayMicroseconds(1);
155 | enableClock();
156 | delayMicroseconds(1);
157 | for (int i = 0; i < 512; i ++)
158 | {
159 | set_address(i);
160 | delayMicroseconds(1);
161 | write_instruction(i);
162 | delayMicroseconds(1);
163 | }
164 |
165 | disableClock();
166 | digitalWrite(HL, LOW);
167 | reset();
168 | enable_cu();
169 | disableOutput();
170 |
171 | }
172 |
--------------------------------------------------------------------------------
/start9_programming_interface/images/programming_interface_render.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vascofazza/8bit-cpu/027a60365ede50967a28066cb3f8de64050dac08/start9_programming_interface/images/programming_interface_render.png
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/.gitignore:
--------------------------------------------------------------------------------
1 | # For PCBs designed using KiCad: http://www.kicad-pcb.org/
2 |
3 | # Temporary files
4 | *.000
5 | *.bak
6 | *.bck
7 | *.kicad_pcb-bak
8 | *~
9 | _autosave-*
10 | *.tmp
11 |
12 | # Netlist files (exported from Eeschema)
13 | *.net
14 |
15 | # Autorouter files (exported from Pcbnew)
16 | *.dsn
17 | *.ses
18 |
19 | # Exported BOM files
20 | *.xml
21 | *.csv
22 |
23 | # Ignore the testproject files
24 | testproject.sch
25 | testproject.pro
26 | testproject.kicad_pcb
27 | fp-lib-table
28 | *-cache.lib
29 | *-rescue.lib
30 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/Arduino.pretty/Arduino_101_Shield.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Arduino_101_Shield (layer F.Cu) (tedit 5A8605BA)
2 | (descr https://store.arduino.cc/genuino-101)
3 | (fp_text reference XA** (at 2.54 -54.356) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value Arduino_101_Shield (at 15.494 -54.356) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_line (start 9.525 -32.385) (end -6.35 -32.385) (layer B.CrtYd) (width 0.15))
10 | (fp_line (start 9.525 -43.815) (end -6.35 -43.815) (layer B.CrtYd) (width 0.15))
11 | (fp_line (start 9.525 -43.815) (end 9.525 -32.385) (layer B.CrtYd) (width 0.15))
12 | (fp_line (start -6.35 -43.815) (end -6.35 -32.385) (layer B.CrtYd) (width 0.15))
13 | (fp_text user . (at 62.484 -32.004) (layer F.SilkS)
14 | (effects (font (size 1 1) (thickness 0.15)))
15 | )
16 | (fp_line (start 11.43 -12.065) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
17 | (fp_line (start -1.905 -3.175) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
18 | (fp_line (start -1.905 -12.065) (end -1.905 -3.175) (layer B.CrtYd) (width 0.15))
19 | (fp_line (start -1.905 -12.065) (end 11.43 -12.065) (layer B.CrtYd) (width 0.15))
20 | (fp_line (start 0 -53.34) (end 0 0) (layer F.SilkS) (width 0.15))
21 | (fp_line (start 66.04 -40.64) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
22 | (fp_line (start 68.58 -38.1) (end 66.04 -40.64) (layer F.SilkS) (width 0.15))
23 | (fp_line (start 68.58 -3.81) (end 68.58 -38.1) (layer F.SilkS) (width 0.15))
24 | (fp_line (start 66.04 -1.27) (end 68.58 -3.81) (layer F.SilkS) (width 0.15))
25 | (fp_line (start 66.04 0) (end 66.04 -1.27) (layer F.SilkS) (width 0.15))
26 | (fp_line (start 64.516 -53.34) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
27 | (fp_line (start 0 0) (end 66.04 0) (layer F.SilkS) (width 0.15))
28 | (fp_line (start 0 -53.34) (end 64.516 -53.34) (layer F.SilkS) (width 0.15))
29 | (pad RST2 thru_hole oval (at 63.627 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
30 | (pad GND4 thru_hole oval (at 66.167 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
31 | (pad MOSI thru_hole oval (at 66.167 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
32 | (pad SCK thru_hole oval (at 63.627 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
33 | (pad 5V2 thru_hole oval (at 66.167 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
34 | (pad A0 thru_hole oval (at 50.8 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
35 | (pad VIN thru_hole oval (at 45.72 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
36 | (pad GND3 thru_hole oval (at 43.18 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
37 | (pad GND2 thru_hole oval (at 40.64 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
38 | (pad 5V1 thru_hole oval (at 38.1 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
39 | (pad 3V3 thru_hole oval (at 35.56 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
40 | (pad RST1 thru_hole oval (at 33.02 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
41 | (pad IORF thru_hole oval (at 30.48 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
42 | (pad D0 thru_hole oval (at 63.5 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
43 | (pad D1 thru_hole oval (at 60.96 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
44 | (pad D2 thru_hole oval (at 58.42 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
45 | (pad D3 thru_hole oval (at 55.88 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
46 | (pad D4 thru_hole oval (at 53.34 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
47 | (pad D5 thru_hole oval (at 50.8 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
48 | (pad D6 thru_hole oval (at 48.26 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
49 | (pad D7 thru_hole oval (at 45.72 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
50 | (pad GND1 thru_hole oval (at 26.416 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
51 | (pad D8 thru_hole oval (at 41.656 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
52 | (pad D9 thru_hole oval (at 39.116 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
53 | (pad D10 thru_hole oval (at 36.576 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
54 | (pad "" np_thru_hole circle (at 66.04 -7.62) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
55 | (pad "" np_thru_hole circle (at 66.04 -35.56) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
56 | (pad "" np_thru_hole circle (at 15.24 -50.8) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
57 | (pad "" np_thru_hole circle (at 13.97 -2.54) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
58 | (pad SCL thru_hole oval (at 18.796 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
59 | (pad SDA thru_hole oval (at 21.336 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
60 | (pad AREF thru_hole oval (at 23.876 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
61 | (pad D13 thru_hole oval (at 28.956 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
62 | (pad D12 thru_hole oval (at 31.496 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
63 | (pad D11 thru_hole oval (at 34.036 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
64 | (pad ATN thru_hole oval (at 27.94 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
65 | (pad A1 thru_hole oval (at 53.34 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
66 | (pad A2 thru_hole oval (at 55.88 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
67 | (pad A3 thru_hole oval (at 58.42 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
68 | (pad A4 thru_hole oval (at 60.96 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
69 | (pad A5 thru_hole oval (at 63.5 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
70 | (pad MISO thru_hole oval (at 63.627 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
71 | )
72 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/Arduino.pretty/Arduino_Leonardo_Shield.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Arduino_Leonardo_Shield (layer F.Cu) (tedit 5A8605E1)
2 | (descr https://store.arduino.cc/arduino-leonardo-with-headers)
3 | (fp_text reference XA** (at 2.54 -54.356) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value Arduino_Leonardo_Shield (at 15.494 -54.356) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_text user . (at 62.484 -32.004) (layer F.SilkS)
10 | (effects (font (size 1 1) (thickness 0.15)))
11 | )
12 | (fp_line (start 11.43 -12.065) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
13 | (fp_line (start -1.905 -3.175) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
14 | (fp_line (start -1.905 -12.065) (end -1.905 -3.175) (layer B.CrtYd) (width 0.15))
15 | (fp_line (start -1.905 -12.065) (end 11.43 -12.065) (layer B.CrtYd) (width 0.15))
16 | (fp_line (start 0 -53.34) (end 0 0) (layer F.SilkS) (width 0.15))
17 | (fp_line (start 66.04 -40.64) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
18 | (fp_line (start 68.58 -38.1) (end 66.04 -40.64) (layer F.SilkS) (width 0.15))
19 | (fp_line (start 68.58 -3.81) (end 68.58 -38.1) (layer F.SilkS) (width 0.15))
20 | (fp_line (start 66.04 -1.27) (end 68.58 -3.81) (layer F.SilkS) (width 0.15))
21 | (fp_line (start 66.04 0) (end 66.04 -1.27) (layer F.SilkS) (width 0.15))
22 | (fp_line (start 64.516 -53.34) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
23 | (fp_line (start 0 0) (end 66.04 0) (layer F.SilkS) (width 0.15))
24 | (fp_line (start 0 -53.34) (end 64.516 -53.34) (layer F.SilkS) (width 0.15))
25 | (pad RST2 thru_hole oval (at 63.627 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
26 | (pad GND4 thru_hole oval (at 66.167 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
27 | (pad MOSI thru_hole oval (at 66.167 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
28 | (pad SCK thru_hole oval (at 63.627 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
29 | (pad 5V2 thru_hole oval (at 66.167 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
30 | (pad A0 thru_hole oval (at 50.8 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
31 | (pad VIN thru_hole oval (at 45.72 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
32 | (pad GND3 thru_hole oval (at 43.18 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
33 | (pad GND2 thru_hole oval (at 40.64 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
34 | (pad 5V1 thru_hole oval (at 38.1 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
35 | (pad 3V3 thru_hole oval (at 35.56 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
36 | (pad RST1 thru_hole oval (at 33.02 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
37 | (pad IORF thru_hole oval (at 30.48 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
38 | (pad D0 thru_hole oval (at 63.5 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
39 | (pad D1 thru_hole oval (at 60.96 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
40 | (pad D2 thru_hole oval (at 58.42 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
41 | (pad D3 thru_hole oval (at 55.88 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
42 | (pad D4 thru_hole oval (at 53.34 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
43 | (pad D5 thru_hole oval (at 50.8 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
44 | (pad D6 thru_hole oval (at 48.26 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
45 | (pad D7 thru_hole oval (at 45.72 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
46 | (pad GND1 thru_hole oval (at 26.416 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
47 | (pad D8 thru_hole oval (at 41.656 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
48 | (pad D9 thru_hole oval (at 39.116 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
49 | (pad D10 thru_hole oval (at 36.576 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
50 | (pad "" np_thru_hole circle (at 66.04 -7.62) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
51 | (pad "" np_thru_hole circle (at 66.04 -35.56) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
52 | (pad "" np_thru_hole circle (at 15.24 -50.8) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
53 | (pad "" np_thru_hole circle (at 13.97 -2.54) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
54 | (pad SCL thru_hole oval (at 18.796 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
55 | (pad SDA thru_hole oval (at 21.336 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
56 | (pad AREF thru_hole oval (at 23.876 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
57 | (pad D13 thru_hole oval (at 28.956 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
58 | (pad D12 thru_hole oval (at 31.496 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
59 | (pad D11 thru_hole oval (at 34.036 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
60 | (pad "" thru_hole oval (at 27.94 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
61 | (pad A1 thru_hole oval (at 53.34 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
62 | (pad A2 thru_hole oval (at 55.88 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
63 | (pad A3 thru_hole oval (at 58.42 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
64 | (pad A4 thru_hole oval (at 60.96 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
65 | (pad A5 thru_hole oval (at 63.5 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
66 | (pad MISO thru_hole oval (at 63.627 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
67 | )
68 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/Arduino.pretty/Arduino_Micro_Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Arduino_Micro_Socket (layer F.Cu) (tedit 5A860566)
2 | (descr https://store.arduino.cc/arduino-micro)
3 | (fp_text reference XA** (at 2.54 -19.05) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value Arduino_Micro_Socket (at 15.494 -19.05) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_text user 3.3V (at 6.46 -2.794) (layer F.SilkS)
10 | (effects (font (size 0.5 0.5) (thickness 0.075)))
11 | )
12 | (fp_text user USB (at -1.016 -9.017 90) (layer F.SilkS)
13 | (effects (font (size 0.5 0.5) (thickness 0.075)))
14 | )
15 | (fp_line (start -2.032 0.254) (end -2.286 0.254) (layer F.CrtYd) (width 0.15))
16 | (fp_line (start -2.286 0.254) (end -2.286 -17.526) (layer F.CrtYd) (width 0.15))
17 | (fp_line (start -2.286 -17.526) (end -2.286 -18.288) (layer F.CrtYd) (width 0.15))
18 | (fp_line (start -2.286 -18.288) (end 48.768 -18.288) (layer F.CrtYd) (width 0.15))
19 | (fp_line (start 48.768 -18.288) (end 48.768 0.254) (layer F.CrtYd) (width 0.15))
20 | (fp_line (start 48.768 0.254) (end -2.032 0.254) (layer F.CrtYd) (width 0.15))
21 | (fp_line (start -2 -18.034) (end -2 0) (layer F.SilkS) (width 0.15))
22 | (fp_line (start 48.48 -18) (end 48.48 0) (layer F.SilkS) (width 0.15))
23 | (fp_line (start -2 -18.034) (end 48.48 -18.034) (layer F.SilkS) (width 0.15))
24 | (fp_line (start 0 -18) (end 0 0) (layer F.SilkS) (width 0.15))
25 | (fp_line (start -2 0) (end 48.48 0) (layer F.SilkS) (width 0.15))
26 | (pad "" np_thru_hole circle (at 47.1 -16.62) (size 1.016 1.016) (drill 1.016) (layers *.Cu *.Mask))
27 | (pad "" np_thru_hole circle (at 1.38 -16.62) (size 1.016 1.016) (drill 1.016) (layers *.Cu *.Mask))
28 | (pad "" np_thru_hole circle (at 47.1 -1.38) (size 1.016 1.016) (drill 1.016) (layers *.Cu *.Mask))
29 | (pad "" thru_hole oval (at 26.78 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
30 | (pad RST2 thru_hole oval (at 34.4 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
31 | (pad MOSI thru_hole rect (at 44.56 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
32 | (pad SCK thru_hole oval (at 44.56 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
33 | (pad A0 thru_hole oval (at 11.54 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
34 | (pad VIN thru_hole oval (at 39.48 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
35 | (pad GND2 thru_hole oval (at 31.86 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
36 | (pad GND1 thru_hole oval (at 36.94 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
37 | (pad 5V thru_hole oval (at 31.86 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
38 | (pad 3V3 thru_hole oval (at 6.46 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
39 | (pad RST1 thru_hole oval (at 34.4 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
40 | (pad SS thru_hole oval (at 42.02 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
41 | (pad D0 thru_hole oval (at 36.94 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
42 | (pad D1 thru_hole oval (at 39.48 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
43 | (pad D2 thru_hole oval (at 29.32 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
44 | (pad D3 thru_hole oval (at 26.78 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
45 | (pad D4 thru_hole oval (at 24.24 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
46 | (pad D5 thru_hole oval (at 21.7 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
47 | (pad D6 thru_hole oval (at 19.16 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
48 | (pad D7 thru_hole oval (at 16.62 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
49 | (pad D8 thru_hole oval (at 14.08 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
50 | (pad D9 thru_hole oval (at 11.54 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
51 | (pad D10 thru_hole oval (at 9 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
52 | (pad "" np_thru_hole circle (at 1.38 -1.38) (size 1.016 1.016) (drill 1.016) (layers *.Cu *.Mask))
53 | (pad AREF thru_hole oval (at 9 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
54 | (pad D13 thru_hole oval (at 3.92 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
55 | (pad D12 thru_hole oval (at 3.92 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
56 | (pad D11 thru_hole oval (at 6.46 -16.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
57 | (pad "" thru_hole oval (at 29.32 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
58 | (pad A1 thru_hole oval (at 14.08 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
59 | (pad A2 thru_hole oval (at 16.62 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
60 | (pad A3 thru_hole oval (at 19.16 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
61 | (pad A4 thru_hole oval (at 21.7 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
62 | (pad A5 thru_hole oval (at 24.24 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
63 | (pad MISO thru_hole oval (at 42.02 -1.38) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
64 | )
65 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/Arduino.pretty/Arduino_Mini_Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Arduino_Mini_Socket (layer F.Cu) (tedit 5A87789E)
2 | (descr https://store.arduino.cc/arduino-mini-05)
3 | (fp_text reference XA** (at 2.54 -31.496) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value Arduino_Mini_Socket (at 8.89 -15.24 90) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_line (start -0.254 0.254) (end -0.254 -30.734) (layer F.CrtYd) (width 0.15))
10 | (fp_line (start -0.254 -30.734) (end 18.034 -30.734) (layer F.CrtYd) (width 0.15))
11 | (fp_line (start 18.034 -30.734) (end 18.034 0.254) (layer F.CrtYd) (width 0.15))
12 | (fp_line (start 18.034 0.254) (end -0.254 0.254) (layer F.CrtYd) (width 0.15))
13 | (fp_text user RST (at 14.986 -24.13 90) (layer F.SilkS)
14 | (effects (font (size 0.5 0.5) (thickness 0.075)))
15 | )
16 | (fp_line (start 0 0) (end 0 -30.48) (layer F.SilkS) (width 0.15))
17 | (fp_line (start 0 -30.48) (end 17.78 -30.48) (layer F.SilkS) (width 0.15))
18 | (fp_line (start 17.78 -30.48) (end 17.78 0) (layer F.SilkS) (width 0.15))
19 | (fp_line (start 17.78 0) (end 0 0) (layer F.SilkS) (width 0.15))
20 | (pad GND3 thru_hole circle (at 13.97 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
21 | (pad 5V2 thru_hole circle (at 11.43 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
22 | (pad RX thru_hole circle (at 8.89 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
23 | (pad TX thru_hole circle (at 6.35 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
24 | (pad L2 thru_hole rect (at 3.81 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
25 | (pad D11 thru_hole circle (at 16.51 -3.81) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
26 | (pad D12 thru_hole circle (at 16.51 -6.35) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
27 | (pad D13 thru_hole circle (at 16.51 -8.89) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
28 | (pad A0 thru_hole circle (at 16.51 -11.43) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
29 | (pad A1 thru_hole circle (at 16.51 -13.97) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
30 | (pad A2 thru_hole circle (at 16.51 -16.51) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
31 | (pad A3 thru_hole circle (at 16.51 -19.05) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
32 | (pad 5V1 thru_hole circle (at 16.51 -21.59) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
33 | (pad RST2 thru_hole circle (at 16.51 -24.13) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
34 | (pad GND2 thru_hole circle (at 16.51 -26.67) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
35 | (pad VIN thru_hole rect (at 16.51 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
36 | (pad D10 thru_hole circle (at 16.51 -1.27) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
37 | (pad GND4 thru_hole rect (at 13.97 -1.27) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
38 | (pad 5V3 thru_hole circle (at 11.43 -1.27) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
39 | (pad A6 thru_hole circle (at 3.81 -3.81) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
40 | (pad A7 thru_hole circle (at 6.35 -3.81) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
41 | (pad A5 thru_hole circle (at 6.35 -1.27) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
42 | (pad D1 thru_hole rect (at 1.27 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
43 | (pad D0 thru_hole circle (at 1.27 -26.67) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
44 | (pad L0 thru_hole circle (at 1.27 -24.13) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
45 | (pad L1 thru_hole circle (at 1.27 -21.59) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
46 | (pad D2 thru_hole circle (at 1.27 -19.05) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
47 | (pad D3 thru_hole circle (at 1.27 -16.51) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
48 | (pad D4 thru_hole circle (at 1.27 -13.97) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
49 | (pad D5 thru_hole circle (at 1.27 -11.43) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
50 | (pad D6 thru_hole circle (at 1.27 -8.89) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
51 | (pad D7 thru_hole circle (at 1.27 -6.35) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
52 | (pad D8 thru_hole circle (at 1.27 -3.81) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
53 | (pad A4 thru_hole rect (at 3.81 -1.27) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
54 | (pad D9 thru_hole circle (at 1.27 -1.27) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
55 | )
56 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/Arduino.pretty/Arduino_Nano_Socket.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Arduino_Nano_Socket (layer F.Cu) (tedit 5E7D1946)
2 | (descr https://store.arduino.cc/arduino-nano)
3 | (fp_text reference XA** (at 6.604 1.016) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value Arduino_Nano_Socket (at 0 -21.082 90) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_text user USB (at 0 0.635) (layer F.SilkS)
10 | (effects (font (size 0.5 0.5) (thickness 0.075)))
11 | )
12 | (fp_text user 3.3V (at 6.35 -6.35 90) (layer F.SilkS)
13 | (effects (font (size 0.5 0.5) (thickness 0.075)))
14 | )
15 | (fp_text user ICSP (at 0 -40.64) (layer F.Fab)
16 | (effects (font (size 1 1) (thickness 0.15)))
17 | )
18 | (fp_circle (center 0 -39.37) (end 0.508 -39.37) (layer F.Fab) (width 0.15))
19 | (fp_circle (center 2.54 -39.37) (end 3.048 -39.37) (layer F.Fab) (width 0.15))
20 | (fp_circle (center 2.54 -41.91) (end 3.048 -41.91) (layer F.Fab) (width 0.15))
21 | (fp_circle (center -2.54 -39.37) (end -2.032 -39.37) (layer F.Fab) (width 0.15))
22 | (fp_circle (center 0 -41.91) (end 0.508 -41.91) (layer F.Fab) (width 0.15))
23 | (fp_circle (center -2.54 -41.91) (end -2.032 -41.91) (layer F.Fab) (width 0.15))
24 | (fp_line (start -3.302 1.778) (end -9.144 1.778) (layer F.CrtYd) (width 0.15))
25 | (fp_line (start -9.144 1.778) (end -9.144 -22.606) (layer F.CrtYd) (width 0.15))
26 | (fp_line (start -9.144 -22.606) (end -9.144 -43.434) (layer F.CrtYd) (width 0.15))
27 | (fp_line (start -9.144 -43.434) (end 9.144 -43.434) (layer F.CrtYd) (width 0.15))
28 | (fp_line (start 9.144 -43.434) (end 9.144 1.778) (layer F.CrtYd) (width 0.15))
29 | (fp_line (start 9.144 1.778) (end -3.302 1.778) (layer F.CrtYd) (width 0.15))
30 | (fp_line (start -4.064 0) (end -4.064 1.45) (layer F.SilkS) (width 0.15))
31 | (fp_line (start -4.064 1.45) (end 4.064 1.45) (layer F.SilkS) (width 0.15))
32 | (fp_line (start 4.064 1.45) (end 4.064 0) (layer F.SilkS) (width 0.15))
33 | (fp_line (start -8.89 -43.18) (end 8.89 -43.18) (layer F.SilkS) (width 0.15))
34 | (fp_line (start -8.89 0) (end 8.89 0) (layer F.SilkS) (width 0.15))
35 | (fp_line (start 8.89 -43.18) (end 8.89 0) (layer F.SilkS) (width 0.15))
36 | (fp_line (start -8.89 -43.18) (end -8.89 0) (layer F.SilkS) (width 0.15))
37 | (pad VIN thru_hole circle (at 7.62 -39.37) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
38 | (pad GND2 thru_hole circle (at 7.62 -36.83) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
39 | (pad RST2 thru_hole circle (at 7.62 -34.29) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
40 | (pad 5V thru_hole circle (at 7.62 -31.75) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
41 | (pad A7 thru_hole circle (at 7.62 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
42 | (pad A6 thru_hole circle (at 7.62 -26.67) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
43 | (pad A5 thru_hole circle (at 7.62 -24.13) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
44 | (pad A4 thru_hole circle (at 7.62 -21.59) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
45 | (pad A3 thru_hole circle (at 7.62 -19.05) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
46 | (pad A2 thru_hole circle (at 7.62 -16.51) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
47 | (pad A1 thru_hole circle (at 7.62 -13.97) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
48 | (pad A0 thru_hole circle (at 7.62 -11.43) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
49 | (pad AREF thru_hole circle (at 7.62 -8.89) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
50 | (pad 3V3 thru_hole circle (at 7.62 -6.35) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
51 | (pad D13 thru_hole circle (at 7.62 -3.81) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
52 | (pad D12 thru_hole circle (at -7.62 -3.81) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
53 | (pad D11 thru_hole circle (at -7.62 -6.35) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
54 | (pad D10 thru_hole circle (at -7.62 -8.89) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
55 | (pad D9 thru_hole circle (at -7.62 -11.43) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
56 | (pad D8 thru_hole circle (at -7.62 -13.97) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
57 | (pad D7 thru_hole circle (at -7.62 -16.51) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
58 | (pad D6 thru_hole circle (at -7.62 -19.05) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
59 | (pad D5 thru_hole circle (at -7.62 -21.59) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
60 | (pad D4 thru_hole circle (at -7.62 -24.13) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
61 | (pad D3 thru_hole circle (at -7.62 -26.67) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
62 | (pad D2 thru_hole circle (at -7.62 -29.21) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
63 | (pad GND1 thru_hole circle (at -7.62 -31.75) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
64 | (pad RST1 thru_hole circle (at -7.62 -34.29) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
65 | (pad D0 thru_hole circle (at -7.62 -36.83) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
66 | (pad D1 thru_hole rect (at -7.62 -39.37) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
67 | )
68 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/Arduino.pretty/Arduino_Uno_Shield.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Arduino_Uno_Shield (layer F.Cu) (tedit 5A8605EC)
2 | (descr https://store.arduino.cc/arduino-uno-rev3)
3 | (fp_text reference XA** (at 2.54 -54.356) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value Arduino_Uno_Shield (at 15.494 -54.356) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_line (start 9.525 -32.385) (end -6.35 -32.385) (layer B.CrtYd) (width 0.15))
10 | (fp_line (start 9.525 -43.815) (end -6.35 -43.815) (layer B.CrtYd) (width 0.15))
11 | (fp_line (start 9.525 -43.815) (end 9.525 -32.385) (layer B.CrtYd) (width 0.15))
12 | (fp_line (start -6.35 -43.815) (end -6.35 -32.385) (layer B.CrtYd) (width 0.15))
13 | (fp_text user . (at 62.484 -32.004) (layer F.SilkS)
14 | (effects (font (size 1 1) (thickness 0.15)))
15 | )
16 | (fp_line (start 11.43 -12.065) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
17 | (fp_line (start -1.905 -3.175) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
18 | (fp_line (start -1.905 -12.065) (end -1.905 -3.175) (layer B.CrtYd) (width 0.15))
19 | (fp_line (start -1.905 -12.065) (end 11.43 -12.065) (layer B.CrtYd) (width 0.15))
20 | (fp_line (start 0 -53.34) (end 0 0) (layer F.SilkS) (width 0.15))
21 | (fp_line (start 66.04 -40.64) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
22 | (fp_line (start 68.58 -38.1) (end 66.04 -40.64) (layer F.SilkS) (width 0.15))
23 | (fp_line (start 68.58 -3.81) (end 68.58 -38.1) (layer F.SilkS) (width 0.15))
24 | (fp_line (start 66.04 -1.27) (end 68.58 -3.81) (layer F.SilkS) (width 0.15))
25 | (fp_line (start 66.04 0) (end 66.04 -1.27) (layer F.SilkS) (width 0.15))
26 | (fp_line (start 64.516 -53.34) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
27 | (fp_line (start 0 0) (end 66.04 0) (layer F.SilkS) (width 0.15))
28 | (fp_line (start 0 -53.34) (end 64.516 -53.34) (layer F.SilkS) (width 0.15))
29 | (pad RST2 thru_hole oval (at 63.627 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
30 | (pad GND4 thru_hole oval (at 66.167 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
31 | (pad MOSI thru_hole oval (at 66.167 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
32 | (pad SCK thru_hole oval (at 63.627 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
33 | (pad 5V2 thru_hole oval (at 66.167 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
34 | (pad A0 thru_hole oval (at 50.8 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
35 | (pad VIN thru_hole oval (at 45.72 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
36 | (pad GND3 thru_hole oval (at 43.18 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
37 | (pad GND2 thru_hole oval (at 40.64 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
38 | (pad 5V1 thru_hole oval (at 38.1 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
39 | (pad 3V3 thru_hole oval (at 35.56 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
40 | (pad RST1 thru_hole oval (at 33.02 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
41 | (pad IORF thru_hole oval (at 30.48 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
42 | (pad D0 thru_hole oval (at 63.5 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
43 | (pad D1 thru_hole oval (at 60.96 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
44 | (pad D2 thru_hole oval (at 58.42 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
45 | (pad D3 thru_hole oval (at 55.88 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
46 | (pad D4 thru_hole oval (at 53.34 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
47 | (pad D5 thru_hole oval (at 50.8 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
48 | (pad D6 thru_hole oval (at 48.26 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
49 | (pad D7 thru_hole oval (at 45.72 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
50 | (pad GND1 thru_hole oval (at 26.416 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
51 | (pad D8 thru_hole oval (at 41.656 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
52 | (pad D9 thru_hole oval (at 39.116 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
53 | (pad D10 thru_hole oval (at 36.576 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
54 | (pad "" np_thru_hole circle (at 66.04 -7.62) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
55 | (pad "" np_thru_hole circle (at 66.04 -35.56) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
56 | (pad "" np_thru_hole circle (at 15.24 -50.8) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
57 | (pad "" np_thru_hole circle (at 13.97 -2.54) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
58 | (pad SCL thru_hole oval (at 18.796 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
59 | (pad SDA thru_hole oval (at 21.336 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
60 | (pad AREF thru_hole oval (at 23.876 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
61 | (pad D13 thru_hole oval (at 28.956 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
62 | (pad D12 thru_hole oval (at 31.496 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
63 | (pad D11 thru_hole oval (at 34.036 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
64 | (pad "" thru_hole oval (at 27.94 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
65 | (pad A1 thru_hole oval (at 53.34 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
66 | (pad A2 thru_hole oval (at 55.88 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
67 | (pad A3 thru_hole oval (at 58.42 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
68 | (pad A4 thru_hole oval (at 60.96 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
69 | (pad A5 thru_hole oval (at 63.5 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
70 | (pad MISO thru_hole oval (at 63.627 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
71 | )
72 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/Arduino.pretty/Arduino_Zero_Shield.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Arduino_Zero_Shield (layer F.Cu) (tedit 5A8605F5)
2 | (descr https://store.arduino.cc/genuino-zero)
3 | (fp_text reference XA** (at 2.54 -54.356) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value Arduino_Zero_Shield (at 15.494 -54.356) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_text user . (at 62.484 -32.004) (layer F.SilkS)
10 | (effects (font (size 1 1) (thickness 0.15)))
11 | )
12 | (fp_line (start 11.43 -12.065) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
13 | (fp_line (start -1.905 -3.175) (end 11.43 -3.175) (layer B.CrtYd) (width 0.15))
14 | (fp_line (start -1.905 -12.065) (end -1.905 -3.175) (layer B.CrtYd) (width 0.15))
15 | (fp_line (start -1.905 -12.065) (end 11.43 -12.065) (layer B.CrtYd) (width 0.15))
16 | (fp_line (start 0 -53.34) (end 0 0) (layer F.SilkS) (width 0.15))
17 | (fp_line (start 66.04 -40.64) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
18 | (fp_line (start 68.58 -38.1) (end 66.04 -40.64) (layer F.SilkS) (width 0.15))
19 | (fp_line (start 68.58 -3.81) (end 68.58 -38.1) (layer F.SilkS) (width 0.15))
20 | (fp_line (start 66.04 -1.27) (end 68.58 -3.81) (layer F.SilkS) (width 0.15))
21 | (fp_line (start 66.04 0) (end 66.04 -1.27) (layer F.SilkS) (width 0.15))
22 | (fp_line (start 64.516 -53.34) (end 66.04 -51.816) (layer F.SilkS) (width 0.15))
23 | (fp_line (start 0 0) (end 66.04 0) (layer F.SilkS) (width 0.15))
24 | (fp_line (start 0 -53.34) (end 64.516 -53.34) (layer F.SilkS) (width 0.15))
25 | (pad RST2 thru_hole oval (at 63.627 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
26 | (pad GND4 thru_hole oval (at 66.167 -25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
27 | (pad MOSI thru_hole oval (at 66.167 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
28 | (pad SCK thru_hole oval (at 63.627 -27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
29 | (pad 5V2 thru_hole oval (at 66.167 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
30 | (pad A0 thru_hole oval (at 50.8 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
31 | (pad VIN thru_hole oval (at 45.72 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
32 | (pad GND3 thru_hole oval (at 43.18 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
33 | (pad GND2 thru_hole oval (at 40.64 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
34 | (pad 5V1 thru_hole oval (at 38.1 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
35 | (pad 3V3 thru_hole oval (at 35.56 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
36 | (pad RST1 thru_hole oval (at 33.02 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
37 | (pad IORF thru_hole oval (at 30.48 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
38 | (pad D0 thru_hole oval (at 63.5 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
39 | (pad D1 thru_hole oval (at 60.96 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
40 | (pad D2 thru_hole oval (at 58.42 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
41 | (pad D3 thru_hole oval (at 55.88 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
42 | (pad D4 thru_hole oval (at 53.34 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
43 | (pad D5 thru_hole oval (at 50.8 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
44 | (pad D6 thru_hole oval (at 48.26 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
45 | (pad D7 thru_hole oval (at 45.72 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
46 | (pad GND1 thru_hole oval (at 26.416 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
47 | (pad D8 thru_hole oval (at 41.656 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
48 | (pad D9 thru_hole oval (at 39.116 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
49 | (pad D10 thru_hole oval (at 36.576 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
50 | (pad "" np_thru_hole circle (at 66.04 -7.62) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
51 | (pad "" np_thru_hole circle (at 66.04 -35.56) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
52 | (pad "" np_thru_hole circle (at 15.24 -50.8) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
53 | (pad "" np_thru_hole circle (at 13.97 -2.54) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
54 | (pad SCL thru_hole oval (at 18.796 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
55 | (pad SDA thru_hole oval (at 21.336 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
56 | (pad AREF thru_hole oval (at 23.876 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
57 | (pad D13 thru_hole oval (at 28.956 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
58 | (pad D12 thru_hole oval (at 31.496 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
59 | (pad D11 thru_hole oval (at 34.036 -50.8) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
60 | (pad ATN thru_hole oval (at 27.94 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
61 | (pad A1 thru_hole oval (at 53.34 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
62 | (pad A2 thru_hole oval (at 55.88 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
63 | (pad A3 thru_hole oval (at 58.42 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
64 | (pad A4 thru_hole oval (at 60.96 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
65 | (pad A5 thru_hole oval (at 63.5 -2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
66 | (pad MISO thru_hole oval (at 63.627 -30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask))
67 | )
68 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/README.md:
--------------------------------------------------------------------------------
1 | # Arduino KiCad Library
2 | *Version 1.4.1*
3 |
4 | Library of schematic components and footprints of common Arduino boards for KiCad.
5 |
6 | Currently included are:
7 | - Arduino 101 Shield
8 | - Arduino Due Shield
9 | - Arduino Leonardo Shied
10 | - Arduino M0 Shield
11 | - Arduino M0 Pro Shield
12 | - Arduino Mega 2560 Shield
13 | - Arduino Micro Socket
14 | - Arduino Mini Socket
15 | - Arduino Nano Socket
16 | - Arduino Uno Shield
17 | - Arduino Zero Shield
18 |
19 | Shield means the Arduino is designed to plug in from beneath your PCB; socket means it is designed to plug in from above.
20 |
21 | ## Comments, Requests, Bugs & Contributions
22 | All are welcome.
23 | Please file an Issue or Pull Request at https://github.com/Alarm-Siren/arduino-kicad-library
24 |
25 | ## License
26 | Copyright 2017-2018, Nicholas Parks Young. All Rights Reserved.
27 | This library is licensed under the GNU LGPL v2.1, which can be found in file LICENSE.txt.
28 |
29 | ## Donations
30 |
31 | If you've found this library useful and you'd like to make a donation towards its continued upkeep, click the button below:
32 |
33 | [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=UX25HM4CZFFWW)
34 |
35 | ## Library Setup
36 | To add this library to your KiCad Project, do the following steps:
37 | 1. Copy the source files to your Project. Make sure that the Arduino.pretty folder structure is preserved.
38 | 2. In Eeschema (the schematic editor of KiCad) go to Preferences -> Component Libraries. Click the "Add" button next to "Component library files".
39 | 3. Navigate to your project folder, select "arduino.lib" and click "open".
40 | 4. You may wish to adjust the newly added arduino schematic library to be near the top of the load order using the "Up" and "Down" buttons, but this is optional and is only relevant if you have other libraries that use the same names for parts.
41 | 5. OK out and exit Eeschema. Open Pcbnew (the PCB editor of KiCad) go to Preferences -> Footprint Libraries Manager.
42 | 6. Select the "Project Specific Libraries" tab and then click "Append Library".
43 | 7. In the new line of the table, set Library Path to "$(KIPRJMOD)\Arduino.pretty" on Windows or "$(KIPRJMOD)/Arduino.pretty" on Linux/Mac, and ensure Plugin Type is "KiCad". Options and Description can be left blank. You should set Nickname to something descriptive - like "Arduino" for example!
44 | 8. All done: you are now ready to use these schematic components and footprints!
45 |
46 | ## A note about Power and Reset pins
47 |
48 | ### Power
49 | On the Arduino Platform, it is not possible to categorically state that the power pins are "power inputs" or "power outputs", as that depends on exactly how you're using the Arduino. For example, if you're powering the Arduino from USB then GND, +3.3V and +5V would be power outputs and VIN would do nothing, whereas if you're powering the Arduino from a battery via your Shield then VIN and GND are power inputs whilst +5V and +3.3V are power outputs. There are other, more esoteric possibilities too.
50 |
51 | Regardless of the above, I needed to make a decision about what electrical type to apply to these pins. I could use something like Passive or Unspecified, but then KiCad's Electrical Rules Checker (ERC) tool would not be effective in catching errors on these pins at all, whilst using Power Output means it objects to you joining pins together (for example, joining all the GND pins into a common net) even when that's OK in some situations.
52 |
53 | Therefore, I have decided to use Power Input as this presents the least issues. This means if you're actually using any of the power pins as Power Outputs in your schematic, by default the ERC will complain that the relevant nets are undriven. To fix this you will need to add the special "PWR_FLAG" component to the affected net.
54 |
55 | ### Reset
56 | Reset pins on the Arduino Platform have interesting electrical characteristics, which mean that no KiCad electrical type exactly matches their functionality. I settled on Open Collector as the nearest candidate, but unlike a true Open Collector pin on an integrated circuit, the reset pins on the Arduino Platform have an internal weak pull-up, and the reset button that can strongly pull low, so your circuit needs to be able to cope with all these situations.
57 |
58 | In other words, if you use the reset pin as an input to your shield then you do not need to add a pull-up (doing so will actually make it less responsive if not break it); conversely if you want to drive the reset line in order to reset the Arduino you need to ensure that you only ever pull it low - if you pull it high at the same time as an unwitting user hits the physical reset button, you've created a short between power and ground which will likely fry whatever chip is on your shield.
59 |
60 | ### TL;DR:
61 |
62 | *The KiCad ERC cannot catch all the possible electrical errors on your schematic as it doesn't natively support the reset and power pins' electrical types. Even if the ERC says its OK, double check it manually.*
63 |
64 | *If the ERC says that your power pins are undriven, first manually check they are being driven. If they are driven, then add a "PWR_FLAG" component to the net to make the error go away.*
65 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/arduino-kicad-library/arduino.dcm:
--------------------------------------------------------------------------------
1 | EESchema-DOCLIB Version 2.0
2 | #
3 | $CMP Arduino_101_Shield
4 | D Shield for Arduino 101
5 | K Arduino MPU Shield
6 | F https://store.arduino.cc/genuino-101
7 | $ENDCMP
8 | #
9 | $CMP Arduino_Due_Shield
10 | D Shield for Arduino Due
11 | K Arduino MPU Shield
12 | F https://store.arduino.cc/arduino-due
13 | $ENDCMP
14 | #
15 | $CMP Arduino_Leonardo_Shield
16 | D Shield for Arduino Leonardo
17 | K Arduino MPU Shield
18 | F https://store.arduino.cc/arduino-leonardo-with-headers
19 | $ENDCMP
20 | #
21 | $CMP Arduino_M0_Pro_Shield
22 | D Shield for Arduino M0 Pro
23 | K Arduino MPU Shield
24 | F https://store.arduino.cc/arduino-m0-pro
25 | $ENDCMP
26 | #
27 | $CMP Arduino_M0_Shield
28 | D Shield for Arduino M0
29 | K Arduino MPU Shield
30 | F https://store.arduino.cc/arduino-m0
31 | $ENDCMP
32 | #
33 | $CMP Arduino_Mega2560_Shield
34 | D Shield for Arduino Mega 2560
35 | K Arduino MPU Shield
36 | F https://store.arduino.cc/arduino-mega-2560-rev3
37 | $ENDCMP
38 | #
39 | $CMP Arduino_Micro_Socket
40 | D Socket for Arduino Micro
41 | K Arduino MPU Shield
42 | F https://store.arduino.cc/arduino-micro
43 | $ENDCMP
44 | #
45 | $CMP Arduino_Mini_01_Socket
46 | D Socket for Arduino Mini 01
47 | K Arduino MPU Shield
48 | F https://store.arduino.cc/arduino-mini-05
49 | $ENDCMP
50 | #
51 | $CMP Arduino_Mini_02_Socket
52 | D Socket for Arduino Mini 02
53 | K Arduino MPU Shield
54 | F https://store.arduino.cc/arduino-mini-05
55 | $ENDCMP
56 | #
57 | $CMP Arduino_Mini_03_Socket
58 | D Socket for Arduino Mini 03
59 | K Arduino MPU Shield
60 | F https://store.arduino.cc/arduino-mini-05
61 | $ENDCMP
62 | #
63 | $CMP Arduino_Mini_04_Socket
64 | D Socket for Arduino Mini 04
65 | K Arduino MPU Shield
66 | F https://store.arduino.cc/arduino-mini-05
67 | $ENDCMP
68 | #
69 | $CMP Arduino_Mini_05_Socket
70 | D Socket for Arduino Mini 05
71 | K Arduino MPU Shield
72 | F https://store.arduino.cc/arduino-mini-05
73 | $ENDCMP
74 | #
75 | $CMP Arduino_Nano_Socket
76 | D Socket for Arduino Nano
77 | K Arduino MPU Shield
78 | F https://store.arduino.cc/arduino-nano
79 | $ENDCMP
80 | #
81 | $CMP Arduino_Uno_Shield
82 | D Shield for Arduino Uno
83 | K Arduino MPU Shield
84 | F https://store.arduino.cc/arduino-uno-rev3
85 | $ENDCMP
86 | #
87 | $CMP Arduino_Zero_Shield
88 | D Shield for Arduino Zero
89 | K Arduino MPU Shield
90 | F https://store.arduino.cc/genuino-zero
91 | $ENDCMP
92 | #
93 | #End Doc Library
94 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/fp-info-cache:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/fp-lib-table:
--------------------------------------------------------------------------------
1 | (fp_lib_table
2 | (lib (name Housings_LCC)(type KiCad)(uri "/Users/fscozzafava/Library/Mobile Documents/com~apple~CloudDocs/computer project/8bit-computer/Housings_LCC.pretty")(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/programming_interface.pro:
--------------------------------------------------------------------------------
1 | update=Thursday, 26 March 2020 at 22:33:30
2 | version=1
3 | last_client=kicad
4 | [general]
5 | version=1
6 | RootSch=
7 | BoardNm=
8 | [cvpcb]
9 | version=1
10 | NetIExt=net
11 | [eeschema]
12 | version=1
13 | LibDir=
14 | [eeschema/libraries]
15 | [pcbnew]
16 | version=1
17 | PageLayoutDescrFile=
18 | LastNetListRead=
19 | CopperLayerCount=2
20 | BoardThickness=1.6
21 | AllowMicroVias=0
22 | AllowBlindVias=0
23 | RequireCourtyardDefinitions=0
24 | ProhibitOverlappingCourtyards=1
25 | MinTrackWidth=0.2
26 | MinViaDiameter=0.4
27 | MinViaDrill=0.3
28 | MinMicroViaDiameter=0.2
29 | MinMicroViaDrill=0.09999999999999999
30 | MinHoleToHole=0.25
31 | TrackWidth1=0.254
32 | ViaDiameter1=0.6
33 | ViaDrill1=0.4
34 | dPairWidth1=0.3
35 | dPairGap1=0.25
36 | dPairViaGap1=0.25
37 | SilkLineWidth=0.12
38 | SilkTextSizeV=1
39 | SilkTextSizeH=1
40 | SilkTextSizeThickness=0.15
41 | SilkTextItalic=0
42 | SilkTextUpright=1
43 | CopperLineWidth=0.2
44 | CopperTextSizeV=1.5
45 | CopperTextSizeH=1.5
46 | CopperTextThickness=0.3
47 | CopperTextItalic=0
48 | CopperTextUpright=1
49 | EdgeCutLineWidth=0.05
50 | CourtyardLineWidth=0.05
51 | OthersLineWidth=0.15
52 | OthersTextSizeV=1
53 | OthersTextSizeH=1
54 | OthersTextSizeThickness=0.15
55 | OthersTextItalic=0
56 | OthersTextUpright=1
57 | SolderMaskClearance=0.051
58 | SolderMaskMinWidth=0.25
59 | SolderPasteClearance=0
60 | SolderPasteRatio=-0
61 | [pcbnew/Layer.F.Cu]
62 | Name=F.Cu
63 | Type=0
64 | Enabled=1
65 | [pcbnew/Layer.In1.Cu]
66 | Name=In1.Cu
67 | Type=0
68 | Enabled=0
69 | [pcbnew/Layer.In2.Cu]
70 | Name=In2.Cu
71 | Type=0
72 | Enabled=0
73 | [pcbnew/Layer.In3.Cu]
74 | Name=In3.Cu
75 | Type=0
76 | Enabled=0
77 | [pcbnew/Layer.In4.Cu]
78 | Name=In4.Cu
79 | Type=0
80 | Enabled=0
81 | [pcbnew/Layer.In5.Cu]
82 | Name=In5.Cu
83 | Type=0
84 | Enabled=0
85 | [pcbnew/Layer.In6.Cu]
86 | Name=In6.Cu
87 | Type=0
88 | Enabled=0
89 | [pcbnew/Layer.In7.Cu]
90 | Name=In7.Cu
91 | Type=0
92 | Enabled=0
93 | [pcbnew/Layer.In8.Cu]
94 | Name=In8.Cu
95 | Type=0
96 | Enabled=0
97 | [pcbnew/Layer.In9.Cu]
98 | Name=In9.Cu
99 | Type=0
100 | Enabled=0
101 | [pcbnew/Layer.In10.Cu]
102 | Name=In10.Cu
103 | Type=0
104 | Enabled=0
105 | [pcbnew/Layer.In11.Cu]
106 | Name=In11.Cu
107 | Type=0
108 | Enabled=0
109 | [pcbnew/Layer.In12.Cu]
110 | Name=In12.Cu
111 | Type=0
112 | Enabled=0
113 | [pcbnew/Layer.In13.Cu]
114 | Name=In13.Cu
115 | Type=0
116 | Enabled=0
117 | [pcbnew/Layer.In14.Cu]
118 | Name=In14.Cu
119 | Type=0
120 | Enabled=0
121 | [pcbnew/Layer.In15.Cu]
122 | Name=In15.Cu
123 | Type=0
124 | Enabled=0
125 | [pcbnew/Layer.In16.Cu]
126 | Name=In16.Cu
127 | Type=0
128 | Enabled=0
129 | [pcbnew/Layer.In17.Cu]
130 | Name=In17.Cu
131 | Type=0
132 | Enabled=0
133 | [pcbnew/Layer.In18.Cu]
134 | Name=In18.Cu
135 | Type=0
136 | Enabled=0
137 | [pcbnew/Layer.In19.Cu]
138 | Name=In19.Cu
139 | Type=0
140 | Enabled=0
141 | [pcbnew/Layer.In20.Cu]
142 | Name=In20.Cu
143 | Type=0
144 | Enabled=0
145 | [pcbnew/Layer.In21.Cu]
146 | Name=In21.Cu
147 | Type=0
148 | Enabled=0
149 | [pcbnew/Layer.In22.Cu]
150 | Name=In22.Cu
151 | Type=0
152 | Enabled=0
153 | [pcbnew/Layer.In23.Cu]
154 | Name=In23.Cu
155 | Type=0
156 | Enabled=0
157 | [pcbnew/Layer.In24.Cu]
158 | Name=In24.Cu
159 | Type=0
160 | Enabled=0
161 | [pcbnew/Layer.In25.Cu]
162 | Name=In25.Cu
163 | Type=0
164 | Enabled=0
165 | [pcbnew/Layer.In26.Cu]
166 | Name=In26.Cu
167 | Type=0
168 | Enabled=0
169 | [pcbnew/Layer.In27.Cu]
170 | Name=In27.Cu
171 | Type=0
172 | Enabled=0
173 | [pcbnew/Layer.In28.Cu]
174 | Name=In28.Cu
175 | Type=0
176 | Enabled=0
177 | [pcbnew/Layer.In29.Cu]
178 | Name=In29.Cu
179 | Type=0
180 | Enabled=0
181 | [pcbnew/Layer.In30.Cu]
182 | Name=In30.Cu
183 | Type=0
184 | Enabled=0
185 | [pcbnew/Layer.B.Cu]
186 | Name=B.Cu
187 | Type=0
188 | Enabled=1
189 | [pcbnew/Layer.B.Adhes]
190 | Enabled=1
191 | [pcbnew/Layer.F.Adhes]
192 | Enabled=1
193 | [pcbnew/Layer.B.Paste]
194 | Enabled=1
195 | [pcbnew/Layer.F.Paste]
196 | Enabled=1
197 | [pcbnew/Layer.B.SilkS]
198 | Enabled=1
199 | [pcbnew/Layer.F.SilkS]
200 | Enabled=1
201 | [pcbnew/Layer.B.Mask]
202 | Enabled=1
203 | [pcbnew/Layer.F.Mask]
204 | Enabled=1
205 | [pcbnew/Layer.Dwgs.User]
206 | Enabled=1
207 | [pcbnew/Layer.Cmts.User]
208 | Enabled=1
209 | [pcbnew/Layer.Eco1.User]
210 | Enabled=1
211 | [pcbnew/Layer.Eco2.User]
212 | Enabled=1
213 | [pcbnew/Layer.Edge.Cuts]
214 | Enabled=1
215 | [pcbnew/Layer.Margin]
216 | Enabled=1
217 | [pcbnew/Layer.B.CrtYd]
218 | Enabled=1
219 | [pcbnew/Layer.F.CrtYd]
220 | Enabled=1
221 | [pcbnew/Layer.B.Fab]
222 | Enabled=1
223 | [pcbnew/Layer.F.Fab]
224 | Enabled=1
225 | [pcbnew/Layer.Rescue]
226 | Enabled=0
227 | [pcbnew/Netclasses]
228 | [pcbnew/Netclasses/Default]
229 | Name=Default
230 | Clearance=0.253997
231 | TrackWidth=0.254
232 | ViaDiameter=0.6
233 | ViaDrill=0.4
234 | uViaDiameter=0.3
235 | uViaDrill=0.1
236 | dPairWidth=0.3
237 | dPairGap=0.25
238 | dPairViaGap=0.25
239 | [pcbnew/Netclasses/1]
240 | Name=POWER
241 | Clearance=0.253997
242 | TrackWidth=0.3
243 | ViaDiameter=0.6
244 | ViaDrill=0.4
245 | uViaDiameter=0.3
246 | uViaDrill=0.1
247 | dPairWidth=0.3
248 | dPairGap=0.25
249 | dPairViaGap=0.25
250 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/sym-lib-table:
--------------------------------------------------------------------------------
1 | (sym_lib_table
2 | (lib (name 8bit-computer-rescue)(type Legacy)(uri "/Users/fscozzafava/Library/Mobile Documents/com~apple~CloudDocs/computer project/8bit-computer/8bit-computer-rescue.lib")(options "")(descr ""))
3 | (lib (name arduino)(type Legacy)(uri ${KIPRJMOD}/arduino-kicad-library/arduino.lib)(options "")(descr ""))
4 | )
5 |
--------------------------------------------------------------------------------
/start9_programming_interface/programming_interface/trainer.kicad_mod:
--------------------------------------------------------------------------------
1 | (module LOGO (layer F.Cu)
2 | (at 0 0)
3 | (fp_text reference "G***" (at 0 0) (layer F.SilkS) hide
4 | (effects (font (thickness 0.3)))
5 | )
6 | (fp_text value "LOGO" (at 0.75 0) (layer F.SilkS) hide
7 | (effects (font (thickness 0.3)))
8 | )
9 | (fp_poly (pts (xy 3.048000 1.016000) (xy 3.556000 1.016000) (xy 3.556000 2.032000) (xy 3.048000 2.032000) (xy 3.048000 1.016000) )(layer F.SilkS) (width 0.010000)
10 | )
11 | (fp_poly (pts (xy 2.540000 -3.048000) (xy 2.540000 -2.032000) (xy 3.048000 -2.032000) (xy 3.048000 -1.016000) (xy 2.540000 -1.016000) (xy 2.540000 -0.508000) (xy 2.032000 -0.508000) (xy 2.032000 -1.524000)
12 | (xy 1.524000 -1.524000) (xy 1.524000 -2.032000) (xy 2.032000 -2.032000) (xy 2.032000 -3.048000) (xy 2.540000 -3.048000) )(layer F.SilkS) (width 0.010000)
13 | )
14 | (fp_poly (pts (xy -1.524000 -4.064000) (xy 1.524000 -4.064000) (xy 1.524000 -3.556000) (xy -1.524000 -3.556000) (xy -1.524000 -4.064000) )(layer F.SilkS) (width 0.010000)
15 | )
16 | (fp_poly (pts (xy -2.032000 -3.556000) (xy -1.524000 -3.556000) (xy -1.524000 -3.048000) (xy -2.032000 -3.048000) (xy -2.032000 -3.556000) )(layer F.SilkS) (width 0.010000)
17 | )
18 | (fp_poly (pts (xy -3.048000 -2.032000) (xy -2.540000 -2.032000) (xy -2.540000 -3.048000) (xy -2.032000 -3.048000) (xy -2.032000 -2.032000) (xy -1.524000 -2.032000) (xy -1.524000 -1.524000) (xy -2.032000 -1.524000)
19 | (xy -2.032000 -0.508000) (xy -2.540000 -0.508000) (xy -2.540000 -1.016000) (xy -3.048000 -1.016000) (xy -3.048000 -2.032000) )(layer F.SilkS) (width 0.010000)
20 | )
21 | (fp_poly (pts (xy -3.556000 0.000000) (xy -3.556000 -1.016000) (xy -3.048000 -1.016000) (xy -3.048000 0.000000) (xy -3.556000 0.000000) )(layer F.SilkS) (width 0.010000)
22 | )
23 | (fp_poly (pts (xy 3.048000 -1.016000) (xy 3.556000 -1.016000) (xy 3.556000 0.000000) (xy 3.048000 0.000000) (xy 3.048000 -1.016000) )(layer F.SilkS) (width 0.010000)
24 | )
25 | (fp_poly (pts (xy 1.524000 -3.048000) (xy 1.524000 -3.556000) (xy 2.032000 -3.556000) (xy 2.032000 -3.048000) (xy 1.524000 -3.048000) )(layer F.SilkS) (width 0.010000)
26 | )
27 | (fp_poly (pts (xy 3.048000 1.016000) (xy 2.032000 1.016000) (xy 2.032000 2.032000) (xy 3.048000 2.032000) (xy 3.048000 2.540000) (xy 2.540000 2.540000) (xy 2.540000 3.556000) (xy 2.032000 3.556000)
28 | (xy 2.032000 4.064000) (xy 0.508000 4.064000) (xy 0.508000 3.556000) (xy -0.508000 3.556000) (xy -0.508000 4.064000) (xy -2.032000 4.064000) (xy -2.032000 3.556000) (xy -2.540000 3.556000)
29 | (xy -2.540000 2.540000) (xy -2.032000 2.540000) (xy -2.032000 3.556000) (xy -0.508000 3.556000) (xy -0.508000 3.048000) (xy 0.508000 3.048000) (xy 0.508000 3.556000) (xy 2.032000 3.556000)
30 | (xy 2.032000 2.540000) (xy 1.524000 2.540000) (xy 1.524000 2.032000) (xy 0.508000 2.032000) (xy 0.508000 2.540000) (xy -0.508000 2.540000) (xy -0.508000 2.032000) (xy -1.524000 2.032000)
31 | (xy -1.524000 2.540000) (xy -2.032000 2.540000) (xy -2.540000 2.540000) (xy -3.048000 2.540000) (xy -3.048000 2.032000) (xy -3.556000 2.032000) (xy -3.556000 1.016000) (xy -3.048000 1.016000)
32 | (xy -3.048000 2.032000) (xy -2.032000 2.032000) (xy -2.032000 1.016000) (xy -3.048000 1.016000) (xy -3.048000 0.000000) (xy -2.032000 0.000000) (xy -2.032000 0.508000) (xy -1.524000 0.508000)
33 | (xy -1.524000 1.016000) (xy 1.524000 1.016000) (xy 1.524000 0.508000) (xy 2.032000 0.508000) (xy 2.032000 0.000000) (xy 3.048000 0.000000) (xy 3.048000 1.016000) )(layer F.SilkS) (width 0.010000)
34 | )
35 | (fp_poly (pts (xy -0.508000 3.048000) (xy -1.524000 3.048000) (xy -1.524000 2.540000) (xy -0.508000 2.540000) (xy -0.508000 3.048000) )(layer F.SilkS) (width 0.010000)
36 | )
37 | (fp_poly (pts (xy 1.524000 3.048000) (xy 0.508000 3.048000) (xy 0.508000 2.540000) (xy 1.524000 2.540000) (xy 1.524000 3.048000) )(layer F.SilkS) (width 0.010000)
38 | )
39 | (fp_poly (pts (xy -0.508000 0.508000) (xy -1.016000 0.508000) (xy -1.016000 -0.508000) (xy -0.508000 -0.508000) (xy -0.508000 0.508000) )(layer F.SilkS) (width 0.010000)
40 | )
41 | (fp_poly (pts (xy 1.016000 0.508000) (xy 0.508000 0.508000) (xy 0.508000 -0.508000) (xy 1.016000 -0.508000) (xy 1.016000 0.508000) )(layer F.SilkS) (width 0.010000)
42 | )
43 | (fp_poly (pts (xy 1.524000 -1.016000) (xy -1.524000 -1.016000) (xy -1.524000 -1.524000) (xy 1.524000 -1.524000) (xy 1.524000 -1.016000) )(layer F.SilkS) (width 0.010000)
44 | )
45 | )
46 |
--------------------------------------------------------------------------------