├── .gitignore
├── LICENSE.md
├── README.md
├── hardware
├── 6502_computer_in_case.jpg
├── 6502_computer_pcb_diagram.svg
├── 6502_computer_schematic.pdf
├── README.md
├── case
│ ├── base.stl
│ └── lid.stl
├── gerber
│ └── 6502-computer-rev-1.0
│ │ ├── 6502-computer-B_Cu.gbl
│ │ ├── 6502-computer-B_Mask.gbs
│ │ ├── 6502-computer-B_Paste.gbp
│ │ ├── 6502-computer-B_SilkS.gbo
│ │ ├── 6502-computer-Edge_Cuts.gm1
│ │ ├── 6502-computer-F_Cu.gtl
│ │ ├── 6502-computer-F_Mask.gts
│ │ ├── 6502-computer-F_Paste.gtp
│ │ ├── 6502-computer-F_SilkS.gto
│ │ ├── 6502-computer-NPTH-drl_map.gbr
│ │ ├── 6502-computer-NPTH.drl
│ │ ├── 6502-computer-PTH-drl_map.gbr
│ │ ├── 6502-computer-PTH.drl
│ │ └── 6502-computer-job.gbrjob
└── kicad
│ ├── .gitignore
│ ├── 6502-computer-cache.lib
│ ├── 6502-computer.kicad_pcb
│ ├── 6502-computer.pro
│ ├── 6502-computer.sch
│ ├── 65xx.dcm
│ ├── 65xx.lib
│ ├── fp-lib-table
│ ├── project.dcm
│ ├── project.lib
│ ├── project.pretty
│ └── SW_THT_DPDT.kicad_mod
│ └── sym-lib-table
├── licenses
└── LGPL.txt
└── rom
├── Makefile
├── basic
├── Makefile
├── basic.cfg
├── basic.s
└── min_mon.s
├── boot
├── Makefile
├── boot.cfg
├── boot.s
├── generated
│ └── generate_rom_defs.py
└── hardware
│ ├── acia.s
│ ├── speaker.s
│ └── via.s
└── programs
├── Makefile
├── nxp_sc16c752b_test.s
├── program.cfg
├── sd_test.s
└── test.s
/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated files
2 | *.o
3 | *.bin
4 | *.dbg
5 | rom/boot/generated/rom_defs.s
6 |
7 | # Project files
8 | .idea
9 |
10 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # License
2 |
3 | The works in this repository are under multiple licenses. See `README.md` for details.
4 |
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 6502 computer
2 |
3 | This repository contains the hardware and software for my home-built 65C02-based computer. At its heart, this computer is a 1980's design, and is approximately as powerful as the Apple II. It is powered over USB, and operated via a serial connection.
4 |
5 | It features an SD card interface, simple audio interface, and two user-selectable ROMs. One ROM contains a port of EhBASIC, which is the only proprietary component in this repository. The other ROM contains a shell, written from scratch to be free and open source, which can be used to load machine-language programs from a modern PC.
6 |
7 | Take a look at the [hardware/](https://github.com/mike42/6502-computer/tree/main/hardware) directory for how it's made, or [rom/](https://github.com/mike42/6502-computer/tree/main/rom) for the firmware source code.
8 |
9 | ### Basic specs
10 |
11 | - 1.8432 MHz 65C02 processor
12 | - 32 KiB RAM
13 | - 32 KiB ROM in two 16 KiB banks
14 | - 65C22 VIA (general purpose I/O) chip
15 | - 65C51N ACIA (UART) interface
16 | - Custom PCB and 3D printed case
17 |
18 | ### Image of completed build
19 |
20 |
21 |
22 | ## Blog series
23 |
24 | This project started out on breadboards, and I have been blogging about it as I have progressed the hardware, software, and my electronics knowlege. Posts I've written about this project include:
25 |
26 | - [IntelliJ plugin for 6502 assembly language](https://mike42.me/blog/2021-05-intellij-plugin-for-6502-assembly-language)
27 | - [Building a 6502 computer](https://mike42.me/blog/2021-07-building-a-6502-computer)
28 | - [Adding a serial port to my 6502 computer](https://mike42.me/blog/2021-07-adding-a-serial-port-to-my-6502-computer)
29 | - [Upgrades and improvements to my 6502 computer](https://mike42.me/blog/2021-08-upgrades-and-improvements-to-my-6502-computer)
30 | - [Porting BASIC to my 6502 computer](https://mike42.me/blog/2021-09-porting-basic-to-my-6502-computer)
31 | - [6502 computer – from breadboard to PCB](https://mike42.me/blog/2021-09-6502-computer-from-breadboard-to-pcb)
32 | - [Re-creating the world’s worst sound card](https://mike42.me/blog/2021-10-re-creating-the-worlds-worst-sound-card)
33 | - [Designing a 3D printed enclosure for my KiCad project in Blender](https://mike42.me/blog/2021-11-designing-a-3d-printed-enclosure-for-my-kicad-project-in-blender)
34 | - [Implementing the XMODEM protocol for file transfer](https://mike42.me/blog/2021-12-implementing-the-xmodem-protocol-for-file-transfer)
35 | - [Adding an SD card reader to my 6502 computer](https://mike42.me/blog/2021-12-adding-an-sd-card-reader-to-my-6502-computer)
36 | - [Assembling my 6502 computer](https://mike42.me/blog/2012-12-assembling-my-6502-computer)
37 | - [Rendering my 6502 computer project in Blender](https://mike42.me/blog/2022-01-rendering-my-6502-computer-project-in-blender)
38 |
39 | ## Licenses & acknowledgement
40 |
41 | With the exception of the files noted below, this work is © 2021 Michael Billington, and is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).
42 |
43 | The design is an extension of [Ben Eater's 6502 computer tutorial](https://eater.net/6502), which is itself based on the work of the [6502.org](http://www.6502.org/) community.
44 |
45 | ### 6502 KiCad Library
46 |
47 | The files `hardware/kicad/65xx.dcm` and `hardware/kicad/65xx.lib` are modified versions of the [6502 KiCad Library](https://github.com/Alarm-Siren/6502-kicad-library). Copyright 2018, Nicholas Parks Young. All Rights Reserved. The 6502 KiCad Library library is licensed under the GNU LGPL v2.1, which can be found in file `licenses/LGPL.txt`.
48 |
49 | ### EhBASIC
50 |
51 | The files in `rom/basic/` are derived from EhBASIC, developed by Lee Davidson. The EhBASIC license allows for non-commerical use only. The most recent release and manual is hosted [here](https://github.com/Klaus2m5/6502_EhBASIC_V2.22), and a mirror of Lee's website can be found [here](http://retro.hansotten.nl/6502-sbc/lee-davison-web-site/).
52 |
53 | > EhBASIC is free but not copyright free. For non commercial use there is only one
54 | > restriction, any derivative work should include, in any binary image distributed,
55 | > the string "Derived from EhBASIC" and in any distribution that includes human
56 | > readable files a file that includes the above string in a human readable form
57 | > e.g. not as a comment in an HTML file.
58 |
59 |
--------------------------------------------------------------------------------
/hardware/6502_computer_in_case.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike42/6502-computer/fd9463e5136a441a2788d37b61779e0015d4649c/hardware/6502_computer_in_case.jpg
--------------------------------------------------------------------------------
/hardware/6502_computer_schematic.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike42/6502-computer/fd9463e5136a441a2788d37b61779e0015d4649c/hardware/6502_computer_schematic.pdf
--------------------------------------------------------------------------------
/hardware/README.md:
--------------------------------------------------------------------------------
1 | # 6502 computer hardware
2 |
3 | This directory contains information about the hardware side of this project.
4 |
5 | - [kicad/](https://github.com/mike42/6502-computer/tree/main/hardware/kicad) - CAD source files for schematic and PCB
6 | - [gerber/](https://github.com/mike42/6502-computer/tree/main/hardware/gerber/) - PCB manufacturing files
7 | - [6502_computer_schematic.pdf](https://github.com/mike42/6502-computer/tree/main/hardware/6502_computer_schematic.pdf) - Human-readable schematic
8 | - [case/](https://github.com/mike42/6502-computer/tree/main/hardware/case/) - STL files for 3D printed computer case.
9 | - Parts list (below)
10 |
11 | ## Parts list for assembling PCB
12 |
13 | This is the full list of parts which are required to fully populate the PCB for this build. I've stuck with the parts which I actually used, though many can be substituted if you check the data sheets.
14 |
15 | 
16 |
17 | ### IC’s and sockets
18 |
19 | Notes on IC's and sockets
20 |
21 | - If you see a designator mentioned twice, one is the IC, the other is the socket.
22 | - All sockets are optional except U9.
23 |
24 | | Qty. | Description | Installed at | Product ref. |
25 | | ---- | ------------------------------ | ------------ | ------------------------------------------------------------------------------------ |
26 | | 1 | 65C02S CPU | U1 | [WDC W65C02S6TPG-14](https://au.mouser.com/ProductDetail/955-W65C02S6TPG-14) |
27 | | 1 | 65C22S VIA | U3 | [WDC W65C22S6TPG-14](https://au.mouser.com/ProductDetail/955-W65C22S6TPG-14) |
28 | | 2 | DIP-40 socket | U1, U3 | [Mill-Max 110-99-640-41-001000](https://au.mouser.com/ProductDetail/575-199640) |
29 | | 1 | 65C51N ACIA | U6 | [WDC W65C51N6TPG-14](https://au.mouser.com/ProductDetail/955-W65C51N6TPG-14) |
30 | | 1 | SRAM 32k x 8 | U8 | [Alliance AS6C62256-55PCN](https://au.mouser.com/ProductDetail/913-AS6C62256-55PCN) |
31 | | 2 | DIP-28 socket | U6, U8 | [Mill-Max 110-99-628-41-001000](https://au.mouser.com/ProductDetail/575-199628) |
32 | | 1 | EEPROM 32k x 8 | U9 | [Atmel AT28C256-15PU](https://au.mouser.com/ProductDetail/556-AT28C25615PU) |
33 | | 1 | Low-profile DIP-28 ZIF socket | U9 | [Aires 28-526-10](https://au.mouser.com/ProductDetail/535-28-526-10) |
34 | | 1 | 74LS138 demultiplexer | U2 | [Texas Instruments SN74LS138N](https://au.mouser.com/ProductDetail/595-SN74LS138N) |
35 | | 1 | DIP-16 socket | U2 | [Mill-Max 110-44-316-41-001000](https://au.mouser.com/ProductDetail/575-11044316) |
36 | | 1 | 74LS00 quad NAND gate | U4 | [Texas Instruments SN74LS00N](https://au.mouser.com/ProductDetail/595-SN74LS00N) |
37 | | 1 | DIP-14 socket | U4 | [Mill-Max 110-44-314-41-001000](https://au.mouser.com/ProductDetail/575-11044314) |
38 | | 1 | 1.8432 MHz oscillator | X1 | [CTS MXO45HS-3C-1M8432](https://au.mouser.com/ProductDetail/774-MXO45HS-3C-1.8) |
39 | | 1 | Oscillator socket | X1 | [Aires 1108800](https://au.mouser.com/ProductDetail/535-1108800) |
40 | | 1 | 7805 voltage regulator | U5 | [STMicroelectronics L7805ABV](https://au.mouser.com/ProductDetail/511-L7805ABV) |
41 | | 1 | DS1813 reset / voltage monitor | U7 | [Maxim Integrated DS1813-5+](https://au.mouser.com/ProductDetail/700-DS1813-5%2b) |
42 |
43 | ### Connectors
44 |
45 | Notes on connectors:
46 |
47 | - If you use the exact parts here, then one of the 2x20 headers needs to be snapped apart to populate 2x6 footprints at J4 and J5.
48 | - The shunts at J3 should be installed to connect the VIA to IRQ, and the ACIA to NMI. These are labelled on the PCB.
49 |
50 | | Qty. | Description | Installed at | Product ref. |
51 | | ---- | --------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------ |
52 | | 2 | 2x20 male pin header | J1, J4, J5 | [Amphenol FCI 10129381-940002BLF](https://au.mouser.com/ProductDetail/649-1012938194002BLF) |
53 | | 1 | Barrel jack | J2 | [Adafruit 373](https://au.mouser.com/ProductDetail/485-373) |
54 | | 1 | 1x6 male pin header | J6 | [Amphenol FCI 10129378-906001BLF](https://au.mouser.com/ProductDetail/Amphenol-FCI/10129378-906001BLF) |
55 | | 2 | SPDT switch 2.54mm lead spacing | SW1, SW2 | [SparkFun COM-00102](https://au.mouser.com/ProductDetail/474-COM-00102) |
56 | | 1 | Momentary switch | SW3 | [SparkFun COM-00097](https://au.mouser.com/ProductDetail/474-COM-00097) |
57 | | 2 | 1x2 male pin header | J3 | [Amphenol FCI 10129378-902001BLF](https://au.mouser.com/ProductDetail/649-1012937890201BLF) |
58 | | 2 | Shunt/jumper | J3 | [TE Connectivity 2-382811-1](https://au.mouser.com/ProductDetail/571-2-382811-1) |
59 |
60 | ### Basic components
61 |
62 | | Qty. | Description | Installed at | Product ref. |
63 | | ---- | ------------------------------------------------------- | ------------------------------------ | ----------------------------------------------------------- |
64 | | 1 | 0.1 µF ceramic capacitor, 2.54mm lead spacing (10 pack) | C1, C2, C3, C4, C5, C6, C7, C8, C10 | [Adafruit 753](https://au.mouser.com/ProductDetail/485-753) |
65 | | 1 | 1 µF electrolytic capacitor, 1.5mm lead spacing | C9 | – |
66 | | 1 | 1N5819 schottky diode | D1 | – |
67 | | 1 | 5.0 mm LED | D2 | – |
68 | | 3 | 3.3 kΩ resistor 1/4w | R1 R2 R4 | – |
69 | | 1 | 1 kΩ resistor 1/4w | R3 | – |
70 |
71 | ## Additional parts to install in case
72 |
73 | | Qty. | Description | Product ref. |
74 | | ---- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
75 | | 1 | 16mm Illuminated Pushbutton - Red Latching On/Off Switch | [Adafruit 1442](https://core-electronics.com.au/16mm-illuminated-pushbutton-red-latching-on-off-switch.html) |
76 | | 1 | 330 Ω resistor 1/4w | – |
77 | | 1 | Momentary Button - Panel Mount | [SparkFun COM-11006](https://core-electronics.com.au/momentary-button-panel-mount-black.html) |
78 | | 1 | Piezo Buzzer | [TDK PS1240P02BT](https://core-electronics.com.au/piezo-buzzer-ps1240.html) |
79 | | 4 | M3 x 5+6mm hex standoff | Generic, similar to [this](https://www.minikits.com.au/SPA-M3x5-6-B-C) |
80 | | 4 | M3 nut | [Polulu 1069](https://core-electronics.com.au/machine-hex-nut-m3-25-pack.html) |
81 | | 4 | M3 x 5 mm screw | [Polulu 1075](https://core-electronics.com.au/machine-screw-m3-5mm-length-phillips-25-pack.html) |
82 | | 1 | Heat-shrink tubing kit | [Adafruit 344](https://core-electronics.com.au/heat-shrink-pack.html) |
83 | | 1 | Stranded wire | – |
84 | | 1 | Du Pont connector kit | – |
85 | | 1 | FTDI Cable 5V (FT232RQ-based) | [Sparkfun DEV-09718](https://core-electronics.com.au/ftdi-cable-5v.html) |
86 | | 1 | Adhesive rubber feet | [Adafruit 550](https://core-electronics.com.au/little-rubber-bumper-feet-pack-of-4.html) |
87 |
88 | ### Case installation notes
89 |
90 | First solder three pairs of wires to the underside of the PCB for adding connectors. Each wire is soldered to the PCB on one end, with a female Du Pont connector on the other end (2 x 1 housing).
91 |
92 | - Power: Attach to pins 1 and 2 of SW1 to control DC barrel jack, or attach between Pin 4 of J6 (labelled `NC`) and Pin 1 of J5 (labelled `5V`) for power over USB.
93 | - Reset: Connect to underside of SW3. One wire should attach to `GND`, the other to `RES`.
94 | - Speaker: Connect to underside of J1, at pins 24 (labelled `IO2`) and pin 2 (labelled `GND`).
95 |
96 | Next, add the corresponding connectors to the power/reset buttons and speaker.
97 |
98 | - Power: Solder a wire to each power terminal, and terminate it to a 2x1 male Du Point connector. Solder a wire to each LED terminal, adding a resistor on the GND line, and terminating them to a 2x1 female Du Pont connector.
99 | - Reset: Solder wire to each terminal, terminate to a 2x1 male Du Pont connector
100 | - Speaker: Solder wire to each terminal, terminate to a 2x1 male Du Pont connector
101 |
102 | To assemble, first check that the reset button fits (the hole is too small in the case model, and will need to be expanded). Install stand-offs, then feed the UART cable through the oval-shaped hole. Next, add the PCB, and install the power and reset buttons. After this, you can connect the UART cable, power button, and reset button to the board. The power LED connects to pin 1 and 2 of J5. The final step is to super-glue the speaker over the hole at the back of the case.
103 |
104 | ## Additional parts to install microSD
105 |
106 | Some of the test programs in this repository expect an SD card to be connected. Any 5V-compatible microSD break-out board could be used. These exact parts will fit inside the case with the lid closed.
107 |
108 | | Qty. | Description | Product ref. |
109 | | ---- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
110 | | 1 | Level Shifting microSD Breakout | [Sparkfun DEV-13743](https://core-electronics.com.au/sparkfun-level-shifting-microsd-breakout.html) |
111 | | 1 | 1x7 male pin header | Generic, similar to [this](https://au.mouser.com/ProductDetail/Amphenol-FCI/10129378-907001BLF) |
112 | | 1 | 1x7 female pin header | [Polulu 1017](https://core-electronics.com.au/0-100-2-54-mm-female-header-1x7-pin-straight.html) |
113 | | 1 | 2x6 female Du Pont housing | [Polulu 1914](https://core-electronics.com.au/0-1-2-54mm-crimp-connector-housing-2x6-pin-5-pack.html) |
114 | | 1 | microSD card 16 GB | – |
115 |
116 | ### microSD installation notes
117 |
118 | These parts can be used to install a microSD card in the case, attaching to J4. The card sits parallel to J4.
119 |
120 | Glue the female pin header to the side of the Du Pont housing to make an adapter. You will need 6 wires, soldered on one end, and with a female Du Pont connector on the other end:
121 |
122 | - Pin 1 (labelled `5V`) connects to `VCC`
123 | - Pin 2 (labelled `GND`) connects to `GND`
124 | - Pin 5 (labelled `PA0`) connects to `DO`
125 | - Pin 6 (labelled `PA1`) connects to `SCK`
126 | - Pin 7 (labelled `PA2`) connects to `DI`
127 | - Pin 8 (labelled `PA3`) connects to `CS`
128 |
129 | Solder the male pin headers to the microSD breakout, connect the module to the adapter, and attach it to J4. Wiggle it around a bit, and add insulating tape to anything it can contact. You can then fit an SD card.
130 |
--------------------------------------------------------------------------------
/hardware/case/base.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike42/6502-computer/fd9463e5136a441a2788d37b61779e0015d4649c/hardware/case/base.stl
--------------------------------------------------------------------------------
/hardware/case/lid.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike42/6502-computer/fd9463e5136a441a2788d37b61779e0015d4649c/hardware/case/lid.stl
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-B_Mask.gbs:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,5.1.9+dfsg1-1*%
2 | %TF.CreationDate,2021-08-01T20:01:47+10:00*%
3 | %TF.ProjectId,6502-computer,36353032-2d63-46f6-9d70-757465722e6b,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Soldermask,Bot*%
6 | %TF.FilePolarity,Negative*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW 5.1.9+dfsg1-1) date 2021-08-01 20:01:47*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | %ADD10R,1.600000X1.600000*%
15 | %ADD11O,1.600000X1.600000*%
16 | %ADD12C,1.300000*%
17 | %ADD13R,1.300000X1.300000*%
18 | %ADD14R,1.700000X1.700000*%
19 | %ADD15O,1.700000X1.700000*%
20 | %ADD16C,1.397000*%
21 | %ADD17C,1.600000*%
22 | %ADD18R,1.800000X1.800000*%
23 | %ADD19C,1.800000*%
24 | %ADD20C,0.800000*%
25 | %ADD21C,6.400000*%
26 | %ADD22O,1.905000X2.000000*%
27 | %ADD23R,1.905000X2.000000*%
28 | %ADD24O,3.500000X3.500000*%
29 | %ADD25C,1.200000*%
30 | %ADD26R,2.200000X2.200000*%
31 | %ADD27O,2.200000X2.200000*%
32 | %ADD28R,3.500000X3.500000*%
33 | G04 APERTURE END LIST*
34 | D10*
35 | %TO.C,U4*%
36 | X95885000Y-107950000D03*
37 | D11*
38 | X111125000Y-100330000D03*
39 | X98425000Y-107950000D03*
40 | X108585000Y-100330000D03*
41 | X100965000Y-107950000D03*
42 | X106045000Y-100330000D03*
43 | X103505000Y-107950000D03*
44 | X103505000Y-100330000D03*
45 | X106045000Y-107950000D03*
46 | X100965000Y-100330000D03*
47 | X108585000Y-107950000D03*
48 | X98425000Y-100330000D03*
49 | X111125000Y-107950000D03*
50 | X95885000Y-100330000D03*
51 | %TD*%
52 | %TO.C,U9*%
53 | X184404000Y-93980000D03*
54 | X151384000Y-78740000D03*
55 | X181864000Y-93980000D03*
56 | X153924000Y-78740000D03*
57 | X179324000Y-93980000D03*
58 | X156464000Y-78740000D03*
59 | X176784000Y-93980000D03*
60 | X159004000Y-78740000D03*
61 | X174244000Y-93980000D03*
62 | X161544000Y-78740000D03*
63 | X171704000Y-93980000D03*
64 | X164084000Y-78740000D03*
65 | X169164000Y-93980000D03*
66 | X166624000Y-78740000D03*
67 | X166624000Y-93980000D03*
68 | X169164000Y-78740000D03*
69 | X164084000Y-93980000D03*
70 | X171704000Y-78740000D03*
71 | X161544000Y-93980000D03*
72 | X174244000Y-78740000D03*
73 | X159004000Y-93980000D03*
74 | X176784000Y-78740000D03*
75 | X156464000Y-93980000D03*
76 | X179324000Y-78740000D03*
77 | X153924000Y-93980000D03*
78 | X181864000Y-78740000D03*
79 | X151384000Y-93980000D03*
80 | D10*
81 | X184404000Y-78740000D03*
82 | %TD*%
83 | D12*
84 | %TO.C,U7*%
85 | X123190000Y-91440000D03*
86 | X124460000Y-90170000D03*
87 | D13*
88 | X124460000Y-92710000D03*
89 | %TD*%
90 | D11*
91 | %TO.C,U3*%
92 | X95885000Y-135890000D03*
93 | X144145000Y-151130000D03*
94 | X98425000Y-135890000D03*
95 | X141605000Y-151130000D03*
96 | X100965000Y-135890000D03*
97 | X139065000Y-151130000D03*
98 | X103505000Y-135890000D03*
99 | X136525000Y-151130000D03*
100 | X106045000Y-135890000D03*
101 | X133985000Y-151130000D03*
102 | X108585000Y-135890000D03*
103 | X131445000Y-151130000D03*
104 | X111125000Y-135890000D03*
105 | X128905000Y-151130000D03*
106 | X113665000Y-135890000D03*
107 | X126365000Y-151130000D03*
108 | X116205000Y-135890000D03*
109 | X123825000Y-151130000D03*
110 | X118745000Y-135890000D03*
111 | X121285000Y-151130000D03*
112 | X121285000Y-135890000D03*
113 | X118745000Y-151130000D03*
114 | X123825000Y-135890000D03*
115 | X116205000Y-151130000D03*
116 | X126365000Y-135890000D03*
117 | X113665000Y-151130000D03*
118 | X128905000Y-135890000D03*
119 | X111125000Y-151130000D03*
120 | X131445000Y-135890000D03*
121 | X108585000Y-151130000D03*
122 | X133985000Y-135890000D03*
123 | X106045000Y-151130000D03*
124 | X136525000Y-135890000D03*
125 | X103505000Y-151130000D03*
126 | X139065000Y-135890000D03*
127 | X100965000Y-151130000D03*
128 | X141605000Y-135890000D03*
129 | X98425000Y-151130000D03*
130 | X144145000Y-135890000D03*
131 | D10*
132 | X95885000Y-151130000D03*
133 | %TD*%
134 | D14*
135 | %TO.C,J1*%
136 | X85725000Y-151130000D03*
137 | D15*
138 | X83185000Y-151130000D03*
139 | X85725000Y-148590000D03*
140 | X83185000Y-148590000D03*
141 | X85725000Y-146050000D03*
142 | X83185000Y-146050000D03*
143 | X85725000Y-143510000D03*
144 | X83185000Y-143510000D03*
145 | X85725000Y-140970000D03*
146 | X83185000Y-140970000D03*
147 | X85725000Y-138430000D03*
148 | X83185000Y-138430000D03*
149 | X85725000Y-135890000D03*
150 | X83185000Y-135890000D03*
151 | X85725000Y-133350000D03*
152 | X83185000Y-133350000D03*
153 | X85725000Y-130810000D03*
154 | X83185000Y-130810000D03*
155 | X85725000Y-128270000D03*
156 | X83185000Y-128270000D03*
157 | X85725000Y-125730000D03*
158 | X83185000Y-125730000D03*
159 | X85725000Y-123190000D03*
160 | X83185000Y-123190000D03*
161 | X85725000Y-120650000D03*
162 | X83185000Y-120650000D03*
163 | X85725000Y-118110000D03*
164 | X83185000Y-118110000D03*
165 | X85725000Y-115570000D03*
166 | X83185000Y-115570000D03*
167 | X85725000Y-113030000D03*
168 | X83185000Y-113030000D03*
169 | X85725000Y-110490000D03*
170 | X83185000Y-110490000D03*
171 | X85725000Y-107950000D03*
172 | X83185000Y-107950000D03*
173 | X85725000Y-105410000D03*
174 | X83185000Y-105410000D03*
175 | X85725000Y-102870000D03*
176 | X83185000Y-102870000D03*
177 | %TD*%
178 | D10*
179 | %TO.C,U8*%
180 | X183515000Y-114300000D03*
181 | D11*
182 | X150495000Y-129540000D03*
183 | X180975000Y-114300000D03*
184 | X153035000Y-129540000D03*
185 | X178435000Y-114300000D03*
186 | X155575000Y-129540000D03*
187 | X175895000Y-114300000D03*
188 | X158115000Y-129540000D03*
189 | X173355000Y-114300000D03*
190 | X160655000Y-129540000D03*
191 | X170815000Y-114300000D03*
192 | X163195000Y-129540000D03*
193 | X168275000Y-114300000D03*
194 | X165735000Y-129540000D03*
195 | X165735000Y-114300000D03*
196 | X168275000Y-129540000D03*
197 | X163195000Y-114300000D03*
198 | X170815000Y-129540000D03*
199 | X160655000Y-114300000D03*
200 | X173355000Y-129540000D03*
201 | X158115000Y-114300000D03*
202 | X175895000Y-129540000D03*
203 | X155575000Y-114300000D03*
204 | X178435000Y-129540000D03*
205 | X153035000Y-114300000D03*
206 | X180975000Y-129540000D03*
207 | X150495000Y-114300000D03*
208 | X183515000Y-129540000D03*
209 | %TD*%
210 | D10*
211 | %TO.C,U1*%
212 | X95885000Y-129540000D03*
213 | D11*
214 | X144145000Y-114300000D03*
215 | X98425000Y-129540000D03*
216 | X141605000Y-114300000D03*
217 | X100965000Y-129540000D03*
218 | X139065000Y-114300000D03*
219 | X103505000Y-129540000D03*
220 | X136525000Y-114300000D03*
221 | X106045000Y-129540000D03*
222 | X133985000Y-114300000D03*
223 | X108585000Y-129540000D03*
224 | X131445000Y-114300000D03*
225 | X111125000Y-129540000D03*
226 | X128905000Y-114300000D03*
227 | X113665000Y-129540000D03*
228 | X126365000Y-114300000D03*
229 | X116205000Y-129540000D03*
230 | X123825000Y-114300000D03*
231 | X118745000Y-129540000D03*
232 | X121285000Y-114300000D03*
233 | X121285000Y-129540000D03*
234 | X118745000Y-114300000D03*
235 | X123825000Y-129540000D03*
236 | X116205000Y-114300000D03*
237 | X126365000Y-129540000D03*
238 | X113665000Y-114300000D03*
239 | X128905000Y-129540000D03*
240 | X111125000Y-114300000D03*
241 | X131445000Y-129540000D03*
242 | X108585000Y-114300000D03*
243 | X133985000Y-129540000D03*
244 | X106045000Y-114300000D03*
245 | X136525000Y-129540000D03*
246 | X103505000Y-114300000D03*
247 | X139065000Y-129540000D03*
248 | X100965000Y-114300000D03*
249 | X141605000Y-129540000D03*
250 | X98425000Y-114300000D03*
251 | X144145000Y-129540000D03*
252 | X95885000Y-114300000D03*
253 | %TD*%
254 | D15*
255 | %TO.C,J4*%
256 | X120015000Y-160020000D03*
257 | X120015000Y-162560000D03*
258 | X117475000Y-160020000D03*
259 | X117475000Y-162560000D03*
260 | X114935000Y-160020000D03*
261 | X114935000Y-162560000D03*
262 | X112395000Y-160020000D03*
263 | X112395000Y-162560000D03*
264 | X109855000Y-160020000D03*
265 | X109855000Y-162560000D03*
266 | X107315000Y-160020000D03*
267 | D14*
268 | X107315000Y-162560000D03*
269 | %TD*%
270 | D16*
271 | %TO.C,SW3*%
272 | X102235000Y-158750000D03*
273 | X102235000Y-163830000D03*
274 | X94615000Y-158750000D03*
275 | X94615000Y-163830000D03*
276 | %TD*%
277 | D17*
278 | %TO.C,C4*%
279 | X90805000Y-151130000D03*
280 | X90805000Y-148630000D03*
281 | %TD*%
282 | %TO.C,C6*%
283 | X90297000Y-129921000D03*
284 | X90297000Y-127421000D03*
285 | %TD*%
286 | D18*
287 | %TO.C,D2*%
288 | X178054000Y-160274000D03*
289 | D19*
290 | X178054000Y-162814000D03*
291 | %TD*%
292 | D20*
293 | %TO.C,H4*%
294 | X191435056Y-163910944D03*
295 | X189738000Y-163208000D03*
296 | X188040944Y-163910944D03*
297 | X187338000Y-165608000D03*
298 | X188040944Y-167305056D03*
299 | X189738000Y-168008000D03*
300 | X191435056Y-167305056D03*
301 | X192138000Y-165608000D03*
302 | D21*
303 | X189738000Y-165608000D03*
304 | %TD*%
305 | D20*
306 | %TO.C,H2*%
307 | X188040944Y-76754056D03*
308 | X189738000Y-77457000D03*
309 | X191435056Y-76754056D03*
310 | X192138000Y-75057000D03*
311 | X191435056Y-73359944D03*
312 | X189738000Y-72657000D03*
313 | X188040944Y-73359944D03*
314 | X187338000Y-75057000D03*
315 | D21*
316 | X189738000Y-75057000D03*
317 | %TD*%
318 | D20*
319 | %TO.C,H1*%
320 | X80344944Y-76754056D03*
321 | X82042000Y-77457000D03*
322 | X83739056Y-76754056D03*
323 | X84442000Y-75057000D03*
324 | X83739056Y-73359944D03*
325 | X82042000Y-72657000D03*
326 | X80344944Y-73359944D03*
327 | X79642000Y-75057000D03*
328 | D21*
329 | X82042000Y-75057000D03*
330 | %TD*%
331 | D20*
332 | %TO.C,H3*%
333 | X83739056Y-163910944D03*
334 | X82042000Y-163208000D03*
335 | X80344944Y-163910944D03*
336 | X79642000Y-165608000D03*
337 | X80344944Y-167305056D03*
338 | X82042000Y-168008000D03*
339 | X83739056Y-167305056D03*
340 | X84442000Y-165608000D03*
341 | D21*
342 | X82042000Y-165608000D03*
343 | %TD*%
344 | D22*
345 | %TO.C,U5*%
346 | X106680000Y-75565000D03*
347 | X109220000Y-75565000D03*
348 | D23*
349 | X111760000Y-75565000D03*
350 | D24*
351 | X109220000Y-92225000D03*
352 | %TD*%
353 | D17*
354 | %TO.C,C1*%
355 | X188595000Y-135890000D03*
356 | X188595000Y-138390000D03*
357 | %TD*%
358 | %TO.C,C2*%
359 | X120015000Y-105450000D03*
360 | X120015000Y-107950000D03*
361 | %TD*%
362 | %TO.C,C3*%
363 | X188595000Y-116800000D03*
364 | X188595000Y-114300000D03*
365 | %TD*%
366 | %TO.C,C5*%
367 | X125095000Y-82590000D03*
368 | X125095000Y-85090000D03*
369 | %TD*%
370 | %TO.C,C7*%
371 | X101600000Y-75605000D03*
372 | X101600000Y-78105000D03*
373 | %TD*%
374 | %TO.C,C8*%
375 | X184404000Y-104053000D03*
376 | X184404000Y-106553000D03*
377 | %TD*%
378 | D25*
379 | %TO.C,C9*%
380 | X118110000Y-77470000D03*
381 | X119610000Y-77470000D03*
382 | %TD*%
383 | D17*
384 | %TO.C,C10*%
385 | X90805000Y-107950000D03*
386 | X90805000Y-105450000D03*
387 | %TD*%
388 | D26*
389 | %TO.C,D1*%
390 | X99695000Y-93980000D03*
391 | D27*
392 | X89535000Y-93980000D03*
393 | %TD*%
394 | D28*
395 | %TO.C,J2*%
396 | X93980000Y-84455000D03*
397 | G36*
398 | G01*
399 | X92980000Y-76955000D02*
400 | X94980000Y-76955000D01*
401 | G75*
402 | G02*
403 | X95730000Y-77705000I0J-750000D01*
404 | G01*
405 | X95730000Y-79205000D01*
406 | G75*
407 | G02*
408 | X94980000Y-79955000I-750000J0D01*
409 | G01*
410 | X92980000Y-79955000D01*
411 | G75*
412 | G02*
413 | X92230000Y-79205000I0J750000D01*
414 | G01*
415 | X92230000Y-77705000D01*
416 | G75*
417 | G02*
418 | X92980000Y-76955000I750000J0D01*
419 | G01*
420 | G37*
421 | G36*
422 | G01*
423 | X88405000Y-79705000D02*
424 | X90155000Y-79705000D01*
425 | G75*
426 | G02*
427 | X91030000Y-80580000I0J-875000D01*
428 | G01*
429 | X91030000Y-82330000D01*
430 | G75*
431 | G02*
432 | X90155000Y-83205000I-875000J0D01*
433 | G01*
434 | X88405000Y-83205000D01*
435 | G75*
436 | G02*
437 | X87530000Y-82330000I0J875000D01*
438 | G01*
439 | X87530000Y-80580000D01*
440 | G75*
441 | G02*
442 | X88405000Y-79705000I875000J0D01*
443 | G01*
444 | G37*
445 | %TD*%
446 | D14*
447 | %TO.C,J3*%
448 | X171450000Y-162814000D03*
449 | D15*
450 | X168910000Y-162814000D03*
451 | X171450000Y-160274000D03*
452 | X168910000Y-160274000D03*
453 | %TD*%
454 | D14*
455 | %TO.C,J5*%
456 | X130175000Y-162560000D03*
457 | D15*
458 | X130175000Y-160020000D03*
459 | X132715000Y-162560000D03*
460 | X132715000Y-160020000D03*
461 | X135255000Y-162560000D03*
462 | X135255000Y-160020000D03*
463 | X137795000Y-162560000D03*
464 | X137795000Y-160020000D03*
465 | X140335000Y-162560000D03*
466 | X140335000Y-160020000D03*
467 | X142875000Y-162560000D03*
468 | X142875000Y-160020000D03*
469 | %TD*%
470 | D14*
471 | %TO.C,J6*%
472 | X150495000Y-161290000D03*
473 | D15*
474 | X153035000Y-161290000D03*
475 | X155575000Y-161290000D03*
476 | X158115000Y-161290000D03*
477 | X160655000Y-161290000D03*
478 | X163195000Y-161290000D03*
479 | %TD*%
480 | D11*
481 | %TO.C,R1*%
482 | X168275000Y-106934000D03*
483 | D17*
484 | X178435000Y-106934000D03*
485 | %TD*%
486 | %TO.C,R2*%
487 | X163195000Y-101854000D03*
488 | D11*
489 | X153035000Y-101854000D03*
490 | %TD*%
491 | %TO.C,R3*%
492 | X178435000Y-101854000D03*
493 | D17*
494 | X168275000Y-101854000D03*
495 | %TD*%
496 | %TO.C,R4*%
497 | X163195000Y-106934000D03*
498 | D11*
499 | X153035000Y-106934000D03*
500 | %TD*%
501 | D10*
502 | %TO.C,SW1*%
503 | X83820000Y-92035000D03*
504 | D17*
505 | X83820000Y-89535000D03*
506 | X83820000Y-87035000D03*
507 | %TD*%
508 | %TO.C,SW2*%
509 | X131525000Y-77470000D03*
510 | X134025000Y-77470000D03*
511 | D10*
512 | X136525000Y-77470000D03*
513 | %TD*%
514 | %TO.C,U2*%
515 | X125095000Y-107950000D03*
516 | D11*
517 | X142875000Y-100330000D03*
518 | X127635000Y-107950000D03*
519 | X140335000Y-100330000D03*
520 | X130175000Y-107950000D03*
521 | X137795000Y-100330000D03*
522 | X132715000Y-107950000D03*
523 | X135255000Y-100330000D03*
524 | X135255000Y-107950000D03*
525 | X132715000Y-100330000D03*
526 | X137795000Y-107950000D03*
527 | X130175000Y-100330000D03*
528 | X140335000Y-107950000D03*
529 | X127635000Y-100330000D03*
530 | X142875000Y-107950000D03*
531 | X125095000Y-100330000D03*
532 | %TD*%
533 | D10*
534 | %TO.C,U6*%
535 | X183515000Y-135890000D03*
536 | D11*
537 | X150495000Y-151130000D03*
538 | X180975000Y-135890000D03*
539 | X153035000Y-151130000D03*
540 | X178435000Y-135890000D03*
541 | X155575000Y-151130000D03*
542 | X175895000Y-135890000D03*
543 | X158115000Y-151130000D03*
544 | X173355000Y-135890000D03*
545 | X160655000Y-151130000D03*
546 | X170815000Y-135890000D03*
547 | X163195000Y-151130000D03*
548 | X168275000Y-135890000D03*
549 | X165735000Y-151130000D03*
550 | X165735000Y-135890000D03*
551 | X168275000Y-151130000D03*
552 | X163195000Y-135890000D03*
553 | X170815000Y-151130000D03*
554 | X160655000Y-135890000D03*
555 | X173355000Y-151130000D03*
556 | X158115000Y-135890000D03*
557 | X175895000Y-151130000D03*
558 | X155575000Y-135890000D03*
559 | X178435000Y-151130000D03*
560 | X153035000Y-135890000D03*
561 | X180975000Y-151130000D03*
562 | X150495000Y-135890000D03*
563 | X183515000Y-151130000D03*
564 | %TD*%
565 | D10*
566 | %TO.C,X1*%
567 | X130175000Y-91440000D03*
568 | D17*
569 | X130175000Y-83820000D03*
570 | X137795000Y-83820000D03*
571 | X137795000Y-91440000D03*
572 | %TD*%
573 | M02*
574 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-B_Paste.gbp:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,5.1.9+dfsg1-1*%
2 | %TF.CreationDate,2021-08-01T20:01:47+10:00*%
3 | %TF.ProjectId,6502-computer,36353032-2d63-46f6-9d70-757465722e6b,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Paste,Bot*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW 5.1.9+dfsg1-1) date 2021-08-01 20:01:47*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | G04 APERTURE END LIST*
15 | M02*
16 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-B_SilkS.gbo:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,5.1.9+dfsg1-1*%
2 | %TF.CreationDate,2021-08-01T20:01:47+10:00*%
3 | %TF.ProjectId,6502-computer,36353032-2d63-46f6-9d70-757465722e6b,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Legend,Bot*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW 5.1.9+dfsg1-1) date 2021-08-01 20:01:47*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | %ADD10R,1.600000X1.600000*%
15 | %ADD11O,1.600000X1.600000*%
16 | %ADD12C,1.300000*%
17 | %ADD13R,1.300000X1.300000*%
18 | %ADD14R,1.700000X1.700000*%
19 | %ADD15O,1.700000X1.700000*%
20 | %ADD16C,1.397000*%
21 | %ADD17C,1.600000*%
22 | %ADD18R,1.800000X1.800000*%
23 | %ADD19C,1.800000*%
24 | %ADD20C,0.800000*%
25 | %ADD21C,6.400000*%
26 | %ADD22O,1.905000X2.000000*%
27 | %ADD23R,1.905000X2.000000*%
28 | %ADD24O,3.500000X3.500000*%
29 | %ADD25C,1.200000*%
30 | %ADD26R,2.200000X2.200000*%
31 | %ADD27O,2.200000X2.200000*%
32 | %ADD28R,3.500000X3.500000*%
33 | G04 APERTURE END LIST*
34 | %LPC*%
35 | D10*
36 | %TO.C,U4*%
37 | X95885000Y-107950000D03*
38 | D11*
39 | X111125000Y-100330000D03*
40 | X98425000Y-107950000D03*
41 | X108585000Y-100330000D03*
42 | X100965000Y-107950000D03*
43 | X106045000Y-100330000D03*
44 | X103505000Y-107950000D03*
45 | X103505000Y-100330000D03*
46 | X106045000Y-107950000D03*
47 | X100965000Y-100330000D03*
48 | X108585000Y-107950000D03*
49 | X98425000Y-100330000D03*
50 | X111125000Y-107950000D03*
51 | X95885000Y-100330000D03*
52 | %TD*%
53 | %TO.C,U9*%
54 | X184404000Y-93980000D03*
55 | X151384000Y-78740000D03*
56 | X181864000Y-93980000D03*
57 | X153924000Y-78740000D03*
58 | X179324000Y-93980000D03*
59 | X156464000Y-78740000D03*
60 | X176784000Y-93980000D03*
61 | X159004000Y-78740000D03*
62 | X174244000Y-93980000D03*
63 | X161544000Y-78740000D03*
64 | X171704000Y-93980000D03*
65 | X164084000Y-78740000D03*
66 | X169164000Y-93980000D03*
67 | X166624000Y-78740000D03*
68 | X166624000Y-93980000D03*
69 | X169164000Y-78740000D03*
70 | X164084000Y-93980000D03*
71 | X171704000Y-78740000D03*
72 | X161544000Y-93980000D03*
73 | X174244000Y-78740000D03*
74 | X159004000Y-93980000D03*
75 | X176784000Y-78740000D03*
76 | X156464000Y-93980000D03*
77 | X179324000Y-78740000D03*
78 | X153924000Y-93980000D03*
79 | X181864000Y-78740000D03*
80 | X151384000Y-93980000D03*
81 | D10*
82 | X184404000Y-78740000D03*
83 | %TD*%
84 | D12*
85 | %TO.C,U7*%
86 | X123190000Y-91440000D03*
87 | X124460000Y-90170000D03*
88 | D13*
89 | X124460000Y-92710000D03*
90 | %TD*%
91 | D11*
92 | %TO.C,U3*%
93 | X95885000Y-135890000D03*
94 | X144145000Y-151130000D03*
95 | X98425000Y-135890000D03*
96 | X141605000Y-151130000D03*
97 | X100965000Y-135890000D03*
98 | X139065000Y-151130000D03*
99 | X103505000Y-135890000D03*
100 | X136525000Y-151130000D03*
101 | X106045000Y-135890000D03*
102 | X133985000Y-151130000D03*
103 | X108585000Y-135890000D03*
104 | X131445000Y-151130000D03*
105 | X111125000Y-135890000D03*
106 | X128905000Y-151130000D03*
107 | X113665000Y-135890000D03*
108 | X126365000Y-151130000D03*
109 | X116205000Y-135890000D03*
110 | X123825000Y-151130000D03*
111 | X118745000Y-135890000D03*
112 | X121285000Y-151130000D03*
113 | X121285000Y-135890000D03*
114 | X118745000Y-151130000D03*
115 | X123825000Y-135890000D03*
116 | X116205000Y-151130000D03*
117 | X126365000Y-135890000D03*
118 | X113665000Y-151130000D03*
119 | X128905000Y-135890000D03*
120 | X111125000Y-151130000D03*
121 | X131445000Y-135890000D03*
122 | X108585000Y-151130000D03*
123 | X133985000Y-135890000D03*
124 | X106045000Y-151130000D03*
125 | X136525000Y-135890000D03*
126 | X103505000Y-151130000D03*
127 | X139065000Y-135890000D03*
128 | X100965000Y-151130000D03*
129 | X141605000Y-135890000D03*
130 | X98425000Y-151130000D03*
131 | X144145000Y-135890000D03*
132 | D10*
133 | X95885000Y-151130000D03*
134 | %TD*%
135 | D14*
136 | %TO.C,J1*%
137 | X85725000Y-151130000D03*
138 | D15*
139 | X83185000Y-151130000D03*
140 | X85725000Y-148590000D03*
141 | X83185000Y-148590000D03*
142 | X85725000Y-146050000D03*
143 | X83185000Y-146050000D03*
144 | X85725000Y-143510000D03*
145 | X83185000Y-143510000D03*
146 | X85725000Y-140970000D03*
147 | X83185000Y-140970000D03*
148 | X85725000Y-138430000D03*
149 | X83185000Y-138430000D03*
150 | X85725000Y-135890000D03*
151 | X83185000Y-135890000D03*
152 | X85725000Y-133350000D03*
153 | X83185000Y-133350000D03*
154 | X85725000Y-130810000D03*
155 | X83185000Y-130810000D03*
156 | X85725000Y-128270000D03*
157 | X83185000Y-128270000D03*
158 | X85725000Y-125730000D03*
159 | X83185000Y-125730000D03*
160 | X85725000Y-123190000D03*
161 | X83185000Y-123190000D03*
162 | X85725000Y-120650000D03*
163 | X83185000Y-120650000D03*
164 | X85725000Y-118110000D03*
165 | X83185000Y-118110000D03*
166 | X85725000Y-115570000D03*
167 | X83185000Y-115570000D03*
168 | X85725000Y-113030000D03*
169 | X83185000Y-113030000D03*
170 | X85725000Y-110490000D03*
171 | X83185000Y-110490000D03*
172 | X85725000Y-107950000D03*
173 | X83185000Y-107950000D03*
174 | X85725000Y-105410000D03*
175 | X83185000Y-105410000D03*
176 | X85725000Y-102870000D03*
177 | X83185000Y-102870000D03*
178 | %TD*%
179 | D10*
180 | %TO.C,U8*%
181 | X183515000Y-114300000D03*
182 | D11*
183 | X150495000Y-129540000D03*
184 | X180975000Y-114300000D03*
185 | X153035000Y-129540000D03*
186 | X178435000Y-114300000D03*
187 | X155575000Y-129540000D03*
188 | X175895000Y-114300000D03*
189 | X158115000Y-129540000D03*
190 | X173355000Y-114300000D03*
191 | X160655000Y-129540000D03*
192 | X170815000Y-114300000D03*
193 | X163195000Y-129540000D03*
194 | X168275000Y-114300000D03*
195 | X165735000Y-129540000D03*
196 | X165735000Y-114300000D03*
197 | X168275000Y-129540000D03*
198 | X163195000Y-114300000D03*
199 | X170815000Y-129540000D03*
200 | X160655000Y-114300000D03*
201 | X173355000Y-129540000D03*
202 | X158115000Y-114300000D03*
203 | X175895000Y-129540000D03*
204 | X155575000Y-114300000D03*
205 | X178435000Y-129540000D03*
206 | X153035000Y-114300000D03*
207 | X180975000Y-129540000D03*
208 | X150495000Y-114300000D03*
209 | X183515000Y-129540000D03*
210 | %TD*%
211 | D10*
212 | %TO.C,U1*%
213 | X95885000Y-129540000D03*
214 | D11*
215 | X144145000Y-114300000D03*
216 | X98425000Y-129540000D03*
217 | X141605000Y-114300000D03*
218 | X100965000Y-129540000D03*
219 | X139065000Y-114300000D03*
220 | X103505000Y-129540000D03*
221 | X136525000Y-114300000D03*
222 | X106045000Y-129540000D03*
223 | X133985000Y-114300000D03*
224 | X108585000Y-129540000D03*
225 | X131445000Y-114300000D03*
226 | X111125000Y-129540000D03*
227 | X128905000Y-114300000D03*
228 | X113665000Y-129540000D03*
229 | X126365000Y-114300000D03*
230 | X116205000Y-129540000D03*
231 | X123825000Y-114300000D03*
232 | X118745000Y-129540000D03*
233 | X121285000Y-114300000D03*
234 | X121285000Y-129540000D03*
235 | X118745000Y-114300000D03*
236 | X123825000Y-129540000D03*
237 | X116205000Y-114300000D03*
238 | X126365000Y-129540000D03*
239 | X113665000Y-114300000D03*
240 | X128905000Y-129540000D03*
241 | X111125000Y-114300000D03*
242 | X131445000Y-129540000D03*
243 | X108585000Y-114300000D03*
244 | X133985000Y-129540000D03*
245 | X106045000Y-114300000D03*
246 | X136525000Y-129540000D03*
247 | X103505000Y-114300000D03*
248 | X139065000Y-129540000D03*
249 | X100965000Y-114300000D03*
250 | X141605000Y-129540000D03*
251 | X98425000Y-114300000D03*
252 | X144145000Y-129540000D03*
253 | X95885000Y-114300000D03*
254 | %TD*%
255 | D15*
256 | %TO.C,J4*%
257 | X120015000Y-160020000D03*
258 | X120015000Y-162560000D03*
259 | X117475000Y-160020000D03*
260 | X117475000Y-162560000D03*
261 | X114935000Y-160020000D03*
262 | X114935000Y-162560000D03*
263 | X112395000Y-160020000D03*
264 | X112395000Y-162560000D03*
265 | X109855000Y-160020000D03*
266 | X109855000Y-162560000D03*
267 | X107315000Y-160020000D03*
268 | D14*
269 | X107315000Y-162560000D03*
270 | %TD*%
271 | D16*
272 | %TO.C,SW3*%
273 | X102235000Y-158750000D03*
274 | X102235000Y-163830000D03*
275 | X94615000Y-158750000D03*
276 | X94615000Y-163830000D03*
277 | %TD*%
278 | D17*
279 | %TO.C,C4*%
280 | X90805000Y-151130000D03*
281 | X90805000Y-148630000D03*
282 | %TD*%
283 | %TO.C,C6*%
284 | X90297000Y-129921000D03*
285 | X90297000Y-127421000D03*
286 | %TD*%
287 | D18*
288 | %TO.C,D2*%
289 | X178054000Y-160274000D03*
290 | D19*
291 | X178054000Y-162814000D03*
292 | %TD*%
293 | D20*
294 | %TO.C,H4*%
295 | X191435056Y-163910944D03*
296 | X189738000Y-163208000D03*
297 | X188040944Y-163910944D03*
298 | X187338000Y-165608000D03*
299 | X188040944Y-167305056D03*
300 | X189738000Y-168008000D03*
301 | X191435056Y-167305056D03*
302 | X192138000Y-165608000D03*
303 | D21*
304 | X189738000Y-165608000D03*
305 | %TD*%
306 | D20*
307 | %TO.C,H2*%
308 | X188040944Y-76754056D03*
309 | X189738000Y-77457000D03*
310 | X191435056Y-76754056D03*
311 | X192138000Y-75057000D03*
312 | X191435056Y-73359944D03*
313 | X189738000Y-72657000D03*
314 | X188040944Y-73359944D03*
315 | X187338000Y-75057000D03*
316 | D21*
317 | X189738000Y-75057000D03*
318 | %TD*%
319 | D20*
320 | %TO.C,H1*%
321 | X80344944Y-76754056D03*
322 | X82042000Y-77457000D03*
323 | X83739056Y-76754056D03*
324 | X84442000Y-75057000D03*
325 | X83739056Y-73359944D03*
326 | X82042000Y-72657000D03*
327 | X80344944Y-73359944D03*
328 | X79642000Y-75057000D03*
329 | D21*
330 | X82042000Y-75057000D03*
331 | %TD*%
332 | D20*
333 | %TO.C,H3*%
334 | X83739056Y-163910944D03*
335 | X82042000Y-163208000D03*
336 | X80344944Y-163910944D03*
337 | X79642000Y-165608000D03*
338 | X80344944Y-167305056D03*
339 | X82042000Y-168008000D03*
340 | X83739056Y-167305056D03*
341 | X84442000Y-165608000D03*
342 | D21*
343 | X82042000Y-165608000D03*
344 | %TD*%
345 | D22*
346 | %TO.C,U5*%
347 | X106680000Y-75565000D03*
348 | X109220000Y-75565000D03*
349 | D23*
350 | X111760000Y-75565000D03*
351 | D24*
352 | X109220000Y-92225000D03*
353 | %TD*%
354 | D17*
355 | %TO.C,C1*%
356 | X188595000Y-135890000D03*
357 | X188595000Y-138390000D03*
358 | %TD*%
359 | %TO.C,C2*%
360 | X120015000Y-105450000D03*
361 | X120015000Y-107950000D03*
362 | %TD*%
363 | %TO.C,C3*%
364 | X188595000Y-116800000D03*
365 | X188595000Y-114300000D03*
366 | %TD*%
367 | %TO.C,C5*%
368 | X125095000Y-82590000D03*
369 | X125095000Y-85090000D03*
370 | %TD*%
371 | %TO.C,C7*%
372 | X101600000Y-75605000D03*
373 | X101600000Y-78105000D03*
374 | %TD*%
375 | %TO.C,C8*%
376 | X184404000Y-104053000D03*
377 | X184404000Y-106553000D03*
378 | %TD*%
379 | D25*
380 | %TO.C,C9*%
381 | X118110000Y-77470000D03*
382 | X119610000Y-77470000D03*
383 | %TD*%
384 | D17*
385 | %TO.C,C10*%
386 | X90805000Y-107950000D03*
387 | X90805000Y-105450000D03*
388 | %TD*%
389 | D26*
390 | %TO.C,D1*%
391 | X99695000Y-93980000D03*
392 | D27*
393 | X89535000Y-93980000D03*
394 | %TD*%
395 | D28*
396 | %TO.C,J2*%
397 | X93980000Y-84455000D03*
398 | G36*
399 | G01*
400 | X92980000Y-76955000D02*
401 | X94980000Y-76955000D01*
402 | G75*
403 | G02*
404 | X95730000Y-77705000I0J-750000D01*
405 | G01*
406 | X95730000Y-79205000D01*
407 | G75*
408 | G02*
409 | X94980000Y-79955000I-750000J0D01*
410 | G01*
411 | X92980000Y-79955000D01*
412 | G75*
413 | G02*
414 | X92230000Y-79205000I0J750000D01*
415 | G01*
416 | X92230000Y-77705000D01*
417 | G75*
418 | G02*
419 | X92980000Y-76955000I750000J0D01*
420 | G01*
421 | G37*
422 | G36*
423 | G01*
424 | X88405000Y-79705000D02*
425 | X90155000Y-79705000D01*
426 | G75*
427 | G02*
428 | X91030000Y-80580000I0J-875000D01*
429 | G01*
430 | X91030000Y-82330000D01*
431 | G75*
432 | G02*
433 | X90155000Y-83205000I-875000J0D01*
434 | G01*
435 | X88405000Y-83205000D01*
436 | G75*
437 | G02*
438 | X87530000Y-82330000I0J875000D01*
439 | G01*
440 | X87530000Y-80580000D01*
441 | G75*
442 | G02*
443 | X88405000Y-79705000I875000J0D01*
444 | G01*
445 | G37*
446 | %TD*%
447 | D14*
448 | %TO.C,J3*%
449 | X171450000Y-162814000D03*
450 | D15*
451 | X168910000Y-162814000D03*
452 | X171450000Y-160274000D03*
453 | X168910000Y-160274000D03*
454 | %TD*%
455 | D14*
456 | %TO.C,J5*%
457 | X130175000Y-162560000D03*
458 | D15*
459 | X130175000Y-160020000D03*
460 | X132715000Y-162560000D03*
461 | X132715000Y-160020000D03*
462 | X135255000Y-162560000D03*
463 | X135255000Y-160020000D03*
464 | X137795000Y-162560000D03*
465 | X137795000Y-160020000D03*
466 | X140335000Y-162560000D03*
467 | X140335000Y-160020000D03*
468 | X142875000Y-162560000D03*
469 | X142875000Y-160020000D03*
470 | %TD*%
471 | D14*
472 | %TO.C,J6*%
473 | X150495000Y-161290000D03*
474 | D15*
475 | X153035000Y-161290000D03*
476 | X155575000Y-161290000D03*
477 | X158115000Y-161290000D03*
478 | X160655000Y-161290000D03*
479 | X163195000Y-161290000D03*
480 | %TD*%
481 | D11*
482 | %TO.C,R1*%
483 | X168275000Y-106934000D03*
484 | D17*
485 | X178435000Y-106934000D03*
486 | %TD*%
487 | %TO.C,R2*%
488 | X163195000Y-101854000D03*
489 | D11*
490 | X153035000Y-101854000D03*
491 | %TD*%
492 | %TO.C,R3*%
493 | X178435000Y-101854000D03*
494 | D17*
495 | X168275000Y-101854000D03*
496 | %TD*%
497 | %TO.C,R4*%
498 | X163195000Y-106934000D03*
499 | D11*
500 | X153035000Y-106934000D03*
501 | %TD*%
502 | D10*
503 | %TO.C,SW1*%
504 | X83820000Y-92035000D03*
505 | D17*
506 | X83820000Y-89535000D03*
507 | X83820000Y-87035000D03*
508 | %TD*%
509 | %TO.C,SW2*%
510 | X131525000Y-77470000D03*
511 | X134025000Y-77470000D03*
512 | D10*
513 | X136525000Y-77470000D03*
514 | %TD*%
515 | %TO.C,U2*%
516 | X125095000Y-107950000D03*
517 | D11*
518 | X142875000Y-100330000D03*
519 | X127635000Y-107950000D03*
520 | X140335000Y-100330000D03*
521 | X130175000Y-107950000D03*
522 | X137795000Y-100330000D03*
523 | X132715000Y-107950000D03*
524 | X135255000Y-100330000D03*
525 | X135255000Y-107950000D03*
526 | X132715000Y-100330000D03*
527 | X137795000Y-107950000D03*
528 | X130175000Y-100330000D03*
529 | X140335000Y-107950000D03*
530 | X127635000Y-100330000D03*
531 | X142875000Y-107950000D03*
532 | X125095000Y-100330000D03*
533 | %TD*%
534 | D10*
535 | %TO.C,U6*%
536 | X183515000Y-135890000D03*
537 | D11*
538 | X150495000Y-151130000D03*
539 | X180975000Y-135890000D03*
540 | X153035000Y-151130000D03*
541 | X178435000Y-135890000D03*
542 | X155575000Y-151130000D03*
543 | X175895000Y-135890000D03*
544 | X158115000Y-151130000D03*
545 | X173355000Y-135890000D03*
546 | X160655000Y-151130000D03*
547 | X170815000Y-135890000D03*
548 | X163195000Y-151130000D03*
549 | X168275000Y-135890000D03*
550 | X165735000Y-151130000D03*
551 | X165735000Y-135890000D03*
552 | X168275000Y-151130000D03*
553 | X163195000Y-135890000D03*
554 | X170815000Y-151130000D03*
555 | X160655000Y-135890000D03*
556 | X173355000Y-151130000D03*
557 | X158115000Y-135890000D03*
558 | X175895000Y-151130000D03*
559 | X155575000Y-135890000D03*
560 | X178435000Y-151130000D03*
561 | X153035000Y-135890000D03*
562 | X180975000Y-151130000D03*
563 | X150495000Y-135890000D03*
564 | X183515000Y-151130000D03*
565 | %TD*%
566 | D10*
567 | %TO.C,X1*%
568 | X130175000Y-91440000D03*
569 | D17*
570 | X130175000Y-83820000D03*
571 | X137795000Y-83820000D03*
572 | X137795000Y-91440000D03*
573 | %TD*%
574 | M02*
575 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-Edge_Cuts.gm1:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,5.1.9+dfsg1-1*%
2 | %TF.CreationDate,2021-08-01T20:01:47+10:00*%
3 | %TF.ProjectId,6502-computer,36353032-2d63-46f6-9d70-757465722e6b,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Profile,NP*%
6 | %FSLAX46Y46*%
7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
8 | G04 Created by KiCad (PCBNEW 5.1.9+dfsg1-1) date 2021-08-01 20:01:47*
9 | %MOMM*%
10 | %LPD*%
11 | G01*
12 | G04 APERTURE LIST*
13 | %TA.AperFunction,Profile*%
14 | %ADD10C,0.050000*%
15 | %TD*%
16 | G04 APERTURE END LIST*
17 | D10*
18 | X77470000Y-71755000D02*
19 | G75*
20 | G02*
21 | X78740000Y-70485000I1270000J0D01*
22 | G01*
23 | X78740000Y-170180000D02*
24 | G75*
25 | G02*
26 | X77470000Y-168910000I0J1270000D01*
27 | G01*
28 | X194310000Y-168910000D02*
29 | G75*
30 | G02*
31 | X193040000Y-170180000I-1270000J0D01*
32 | G01*
33 | X193040000Y-70485000D02*
34 | G75*
35 | G02*
36 | X194310000Y-71755000I0J-1270000D01*
37 | G01*
38 | X77470000Y-168910000D02*
39 | X77470000Y-71755000D01*
40 | X193040000Y-170180000D02*
41 | X78740000Y-170180000D01*
42 | X194310000Y-71755000D02*
43 | X194310000Y-168910000D01*
44 | X78740000Y-70485000D02*
45 | X193040000Y-70485000D01*
46 | M02*
47 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-F_Mask.gts:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,5.1.9+dfsg1-1*%
2 | %TF.CreationDate,2021-08-01T20:01:47+10:00*%
3 | %TF.ProjectId,6502-computer,36353032-2d63-46f6-9d70-757465722e6b,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Soldermask,Top*%
6 | %TF.FilePolarity,Negative*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW 5.1.9+dfsg1-1) date 2021-08-01 20:01:47*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | %ADD10R,1.600000X1.600000*%
15 | %ADD11O,1.600000X1.600000*%
16 | %ADD12C,1.300000*%
17 | %ADD13R,1.300000X1.300000*%
18 | %ADD14R,1.700000X1.700000*%
19 | %ADD15O,1.700000X1.700000*%
20 | %ADD16C,1.397000*%
21 | %ADD17C,1.600000*%
22 | %ADD18R,1.800000X1.800000*%
23 | %ADD19C,1.800000*%
24 | %ADD20C,0.800000*%
25 | %ADD21C,6.400000*%
26 | %ADD22O,1.905000X2.000000*%
27 | %ADD23R,1.905000X2.000000*%
28 | %ADD24O,3.500000X3.500000*%
29 | %ADD25C,1.200000*%
30 | %ADD26R,2.200000X2.200000*%
31 | %ADD27O,2.200000X2.200000*%
32 | %ADD28R,3.500000X3.500000*%
33 | G04 APERTURE END LIST*
34 | D10*
35 | %TO.C,U4*%
36 | X95885000Y-107950000D03*
37 | D11*
38 | X111125000Y-100330000D03*
39 | X98425000Y-107950000D03*
40 | X108585000Y-100330000D03*
41 | X100965000Y-107950000D03*
42 | X106045000Y-100330000D03*
43 | X103505000Y-107950000D03*
44 | X103505000Y-100330000D03*
45 | X106045000Y-107950000D03*
46 | X100965000Y-100330000D03*
47 | X108585000Y-107950000D03*
48 | X98425000Y-100330000D03*
49 | X111125000Y-107950000D03*
50 | X95885000Y-100330000D03*
51 | %TD*%
52 | %TO.C,U9*%
53 | X184404000Y-93980000D03*
54 | X151384000Y-78740000D03*
55 | X181864000Y-93980000D03*
56 | X153924000Y-78740000D03*
57 | X179324000Y-93980000D03*
58 | X156464000Y-78740000D03*
59 | X176784000Y-93980000D03*
60 | X159004000Y-78740000D03*
61 | X174244000Y-93980000D03*
62 | X161544000Y-78740000D03*
63 | X171704000Y-93980000D03*
64 | X164084000Y-78740000D03*
65 | X169164000Y-93980000D03*
66 | X166624000Y-78740000D03*
67 | X166624000Y-93980000D03*
68 | X169164000Y-78740000D03*
69 | X164084000Y-93980000D03*
70 | X171704000Y-78740000D03*
71 | X161544000Y-93980000D03*
72 | X174244000Y-78740000D03*
73 | X159004000Y-93980000D03*
74 | X176784000Y-78740000D03*
75 | X156464000Y-93980000D03*
76 | X179324000Y-78740000D03*
77 | X153924000Y-93980000D03*
78 | X181864000Y-78740000D03*
79 | X151384000Y-93980000D03*
80 | D10*
81 | X184404000Y-78740000D03*
82 | %TD*%
83 | D12*
84 | %TO.C,U7*%
85 | X123190000Y-91440000D03*
86 | X124460000Y-90170000D03*
87 | D13*
88 | X124460000Y-92710000D03*
89 | %TD*%
90 | D11*
91 | %TO.C,U3*%
92 | X95885000Y-135890000D03*
93 | X144145000Y-151130000D03*
94 | X98425000Y-135890000D03*
95 | X141605000Y-151130000D03*
96 | X100965000Y-135890000D03*
97 | X139065000Y-151130000D03*
98 | X103505000Y-135890000D03*
99 | X136525000Y-151130000D03*
100 | X106045000Y-135890000D03*
101 | X133985000Y-151130000D03*
102 | X108585000Y-135890000D03*
103 | X131445000Y-151130000D03*
104 | X111125000Y-135890000D03*
105 | X128905000Y-151130000D03*
106 | X113665000Y-135890000D03*
107 | X126365000Y-151130000D03*
108 | X116205000Y-135890000D03*
109 | X123825000Y-151130000D03*
110 | X118745000Y-135890000D03*
111 | X121285000Y-151130000D03*
112 | X121285000Y-135890000D03*
113 | X118745000Y-151130000D03*
114 | X123825000Y-135890000D03*
115 | X116205000Y-151130000D03*
116 | X126365000Y-135890000D03*
117 | X113665000Y-151130000D03*
118 | X128905000Y-135890000D03*
119 | X111125000Y-151130000D03*
120 | X131445000Y-135890000D03*
121 | X108585000Y-151130000D03*
122 | X133985000Y-135890000D03*
123 | X106045000Y-151130000D03*
124 | X136525000Y-135890000D03*
125 | X103505000Y-151130000D03*
126 | X139065000Y-135890000D03*
127 | X100965000Y-151130000D03*
128 | X141605000Y-135890000D03*
129 | X98425000Y-151130000D03*
130 | X144145000Y-135890000D03*
131 | D10*
132 | X95885000Y-151130000D03*
133 | %TD*%
134 | D14*
135 | %TO.C,J1*%
136 | X85725000Y-151130000D03*
137 | D15*
138 | X83185000Y-151130000D03*
139 | X85725000Y-148590000D03*
140 | X83185000Y-148590000D03*
141 | X85725000Y-146050000D03*
142 | X83185000Y-146050000D03*
143 | X85725000Y-143510000D03*
144 | X83185000Y-143510000D03*
145 | X85725000Y-140970000D03*
146 | X83185000Y-140970000D03*
147 | X85725000Y-138430000D03*
148 | X83185000Y-138430000D03*
149 | X85725000Y-135890000D03*
150 | X83185000Y-135890000D03*
151 | X85725000Y-133350000D03*
152 | X83185000Y-133350000D03*
153 | X85725000Y-130810000D03*
154 | X83185000Y-130810000D03*
155 | X85725000Y-128270000D03*
156 | X83185000Y-128270000D03*
157 | X85725000Y-125730000D03*
158 | X83185000Y-125730000D03*
159 | X85725000Y-123190000D03*
160 | X83185000Y-123190000D03*
161 | X85725000Y-120650000D03*
162 | X83185000Y-120650000D03*
163 | X85725000Y-118110000D03*
164 | X83185000Y-118110000D03*
165 | X85725000Y-115570000D03*
166 | X83185000Y-115570000D03*
167 | X85725000Y-113030000D03*
168 | X83185000Y-113030000D03*
169 | X85725000Y-110490000D03*
170 | X83185000Y-110490000D03*
171 | X85725000Y-107950000D03*
172 | X83185000Y-107950000D03*
173 | X85725000Y-105410000D03*
174 | X83185000Y-105410000D03*
175 | X85725000Y-102870000D03*
176 | X83185000Y-102870000D03*
177 | %TD*%
178 | D10*
179 | %TO.C,U8*%
180 | X183515000Y-114300000D03*
181 | D11*
182 | X150495000Y-129540000D03*
183 | X180975000Y-114300000D03*
184 | X153035000Y-129540000D03*
185 | X178435000Y-114300000D03*
186 | X155575000Y-129540000D03*
187 | X175895000Y-114300000D03*
188 | X158115000Y-129540000D03*
189 | X173355000Y-114300000D03*
190 | X160655000Y-129540000D03*
191 | X170815000Y-114300000D03*
192 | X163195000Y-129540000D03*
193 | X168275000Y-114300000D03*
194 | X165735000Y-129540000D03*
195 | X165735000Y-114300000D03*
196 | X168275000Y-129540000D03*
197 | X163195000Y-114300000D03*
198 | X170815000Y-129540000D03*
199 | X160655000Y-114300000D03*
200 | X173355000Y-129540000D03*
201 | X158115000Y-114300000D03*
202 | X175895000Y-129540000D03*
203 | X155575000Y-114300000D03*
204 | X178435000Y-129540000D03*
205 | X153035000Y-114300000D03*
206 | X180975000Y-129540000D03*
207 | X150495000Y-114300000D03*
208 | X183515000Y-129540000D03*
209 | %TD*%
210 | D10*
211 | %TO.C,U1*%
212 | X95885000Y-129540000D03*
213 | D11*
214 | X144145000Y-114300000D03*
215 | X98425000Y-129540000D03*
216 | X141605000Y-114300000D03*
217 | X100965000Y-129540000D03*
218 | X139065000Y-114300000D03*
219 | X103505000Y-129540000D03*
220 | X136525000Y-114300000D03*
221 | X106045000Y-129540000D03*
222 | X133985000Y-114300000D03*
223 | X108585000Y-129540000D03*
224 | X131445000Y-114300000D03*
225 | X111125000Y-129540000D03*
226 | X128905000Y-114300000D03*
227 | X113665000Y-129540000D03*
228 | X126365000Y-114300000D03*
229 | X116205000Y-129540000D03*
230 | X123825000Y-114300000D03*
231 | X118745000Y-129540000D03*
232 | X121285000Y-114300000D03*
233 | X121285000Y-129540000D03*
234 | X118745000Y-114300000D03*
235 | X123825000Y-129540000D03*
236 | X116205000Y-114300000D03*
237 | X126365000Y-129540000D03*
238 | X113665000Y-114300000D03*
239 | X128905000Y-129540000D03*
240 | X111125000Y-114300000D03*
241 | X131445000Y-129540000D03*
242 | X108585000Y-114300000D03*
243 | X133985000Y-129540000D03*
244 | X106045000Y-114300000D03*
245 | X136525000Y-129540000D03*
246 | X103505000Y-114300000D03*
247 | X139065000Y-129540000D03*
248 | X100965000Y-114300000D03*
249 | X141605000Y-129540000D03*
250 | X98425000Y-114300000D03*
251 | X144145000Y-129540000D03*
252 | X95885000Y-114300000D03*
253 | %TD*%
254 | D15*
255 | %TO.C,J4*%
256 | X120015000Y-160020000D03*
257 | X120015000Y-162560000D03*
258 | X117475000Y-160020000D03*
259 | X117475000Y-162560000D03*
260 | X114935000Y-160020000D03*
261 | X114935000Y-162560000D03*
262 | X112395000Y-160020000D03*
263 | X112395000Y-162560000D03*
264 | X109855000Y-160020000D03*
265 | X109855000Y-162560000D03*
266 | X107315000Y-160020000D03*
267 | D14*
268 | X107315000Y-162560000D03*
269 | %TD*%
270 | D16*
271 | %TO.C,SW3*%
272 | X102235000Y-158750000D03*
273 | X102235000Y-163830000D03*
274 | X94615000Y-158750000D03*
275 | X94615000Y-163830000D03*
276 | %TD*%
277 | D17*
278 | %TO.C,C4*%
279 | X90805000Y-151130000D03*
280 | X90805000Y-148630000D03*
281 | %TD*%
282 | %TO.C,C6*%
283 | X90297000Y-129921000D03*
284 | X90297000Y-127421000D03*
285 | %TD*%
286 | D18*
287 | %TO.C,D2*%
288 | X178054000Y-160274000D03*
289 | D19*
290 | X178054000Y-162814000D03*
291 | %TD*%
292 | D20*
293 | %TO.C,H4*%
294 | X191435056Y-163910944D03*
295 | X189738000Y-163208000D03*
296 | X188040944Y-163910944D03*
297 | X187338000Y-165608000D03*
298 | X188040944Y-167305056D03*
299 | X189738000Y-168008000D03*
300 | X191435056Y-167305056D03*
301 | X192138000Y-165608000D03*
302 | D21*
303 | X189738000Y-165608000D03*
304 | %TD*%
305 | D20*
306 | %TO.C,H2*%
307 | X188040944Y-76754056D03*
308 | X189738000Y-77457000D03*
309 | X191435056Y-76754056D03*
310 | X192138000Y-75057000D03*
311 | X191435056Y-73359944D03*
312 | X189738000Y-72657000D03*
313 | X188040944Y-73359944D03*
314 | X187338000Y-75057000D03*
315 | D21*
316 | X189738000Y-75057000D03*
317 | %TD*%
318 | D20*
319 | %TO.C,H1*%
320 | X80344944Y-76754056D03*
321 | X82042000Y-77457000D03*
322 | X83739056Y-76754056D03*
323 | X84442000Y-75057000D03*
324 | X83739056Y-73359944D03*
325 | X82042000Y-72657000D03*
326 | X80344944Y-73359944D03*
327 | X79642000Y-75057000D03*
328 | D21*
329 | X82042000Y-75057000D03*
330 | %TD*%
331 | D20*
332 | %TO.C,H3*%
333 | X83739056Y-163910944D03*
334 | X82042000Y-163208000D03*
335 | X80344944Y-163910944D03*
336 | X79642000Y-165608000D03*
337 | X80344944Y-167305056D03*
338 | X82042000Y-168008000D03*
339 | X83739056Y-167305056D03*
340 | X84442000Y-165608000D03*
341 | D21*
342 | X82042000Y-165608000D03*
343 | %TD*%
344 | D22*
345 | %TO.C,U5*%
346 | X106680000Y-75565000D03*
347 | X109220000Y-75565000D03*
348 | D23*
349 | X111760000Y-75565000D03*
350 | D24*
351 | X109220000Y-92225000D03*
352 | %TD*%
353 | D17*
354 | %TO.C,C1*%
355 | X188595000Y-135890000D03*
356 | X188595000Y-138390000D03*
357 | %TD*%
358 | %TO.C,C2*%
359 | X120015000Y-105450000D03*
360 | X120015000Y-107950000D03*
361 | %TD*%
362 | %TO.C,C3*%
363 | X188595000Y-116800000D03*
364 | X188595000Y-114300000D03*
365 | %TD*%
366 | %TO.C,C5*%
367 | X125095000Y-82590000D03*
368 | X125095000Y-85090000D03*
369 | %TD*%
370 | %TO.C,C7*%
371 | X101600000Y-75605000D03*
372 | X101600000Y-78105000D03*
373 | %TD*%
374 | %TO.C,C8*%
375 | X184404000Y-104053000D03*
376 | X184404000Y-106553000D03*
377 | %TD*%
378 | D25*
379 | %TO.C,C9*%
380 | X118110000Y-77470000D03*
381 | X119610000Y-77470000D03*
382 | %TD*%
383 | D17*
384 | %TO.C,C10*%
385 | X90805000Y-107950000D03*
386 | X90805000Y-105450000D03*
387 | %TD*%
388 | D26*
389 | %TO.C,D1*%
390 | X99695000Y-93980000D03*
391 | D27*
392 | X89535000Y-93980000D03*
393 | %TD*%
394 | D28*
395 | %TO.C,J2*%
396 | X93980000Y-84455000D03*
397 | G36*
398 | G01*
399 | X92980000Y-76955000D02*
400 | X94980000Y-76955000D01*
401 | G75*
402 | G02*
403 | X95730000Y-77705000I0J-750000D01*
404 | G01*
405 | X95730000Y-79205000D01*
406 | G75*
407 | G02*
408 | X94980000Y-79955000I-750000J0D01*
409 | G01*
410 | X92980000Y-79955000D01*
411 | G75*
412 | G02*
413 | X92230000Y-79205000I0J750000D01*
414 | G01*
415 | X92230000Y-77705000D01*
416 | G75*
417 | G02*
418 | X92980000Y-76955000I750000J0D01*
419 | G01*
420 | G37*
421 | G36*
422 | G01*
423 | X88405000Y-79705000D02*
424 | X90155000Y-79705000D01*
425 | G75*
426 | G02*
427 | X91030000Y-80580000I0J-875000D01*
428 | G01*
429 | X91030000Y-82330000D01*
430 | G75*
431 | G02*
432 | X90155000Y-83205000I-875000J0D01*
433 | G01*
434 | X88405000Y-83205000D01*
435 | G75*
436 | G02*
437 | X87530000Y-82330000I0J875000D01*
438 | G01*
439 | X87530000Y-80580000D01*
440 | G75*
441 | G02*
442 | X88405000Y-79705000I875000J0D01*
443 | G01*
444 | G37*
445 | %TD*%
446 | D14*
447 | %TO.C,J3*%
448 | X171450000Y-162814000D03*
449 | D15*
450 | X168910000Y-162814000D03*
451 | X171450000Y-160274000D03*
452 | X168910000Y-160274000D03*
453 | %TD*%
454 | D14*
455 | %TO.C,J5*%
456 | X130175000Y-162560000D03*
457 | D15*
458 | X130175000Y-160020000D03*
459 | X132715000Y-162560000D03*
460 | X132715000Y-160020000D03*
461 | X135255000Y-162560000D03*
462 | X135255000Y-160020000D03*
463 | X137795000Y-162560000D03*
464 | X137795000Y-160020000D03*
465 | X140335000Y-162560000D03*
466 | X140335000Y-160020000D03*
467 | X142875000Y-162560000D03*
468 | X142875000Y-160020000D03*
469 | %TD*%
470 | D14*
471 | %TO.C,J6*%
472 | X150495000Y-161290000D03*
473 | D15*
474 | X153035000Y-161290000D03*
475 | X155575000Y-161290000D03*
476 | X158115000Y-161290000D03*
477 | X160655000Y-161290000D03*
478 | X163195000Y-161290000D03*
479 | %TD*%
480 | D11*
481 | %TO.C,R1*%
482 | X168275000Y-106934000D03*
483 | D17*
484 | X178435000Y-106934000D03*
485 | %TD*%
486 | %TO.C,R2*%
487 | X163195000Y-101854000D03*
488 | D11*
489 | X153035000Y-101854000D03*
490 | %TD*%
491 | %TO.C,R3*%
492 | X178435000Y-101854000D03*
493 | D17*
494 | X168275000Y-101854000D03*
495 | %TD*%
496 | %TO.C,R4*%
497 | X163195000Y-106934000D03*
498 | D11*
499 | X153035000Y-106934000D03*
500 | %TD*%
501 | D10*
502 | %TO.C,SW1*%
503 | X83820000Y-92035000D03*
504 | D17*
505 | X83820000Y-89535000D03*
506 | X83820000Y-87035000D03*
507 | %TD*%
508 | %TO.C,SW2*%
509 | X131525000Y-77470000D03*
510 | X134025000Y-77470000D03*
511 | D10*
512 | X136525000Y-77470000D03*
513 | %TD*%
514 | %TO.C,U2*%
515 | X125095000Y-107950000D03*
516 | D11*
517 | X142875000Y-100330000D03*
518 | X127635000Y-107950000D03*
519 | X140335000Y-100330000D03*
520 | X130175000Y-107950000D03*
521 | X137795000Y-100330000D03*
522 | X132715000Y-107950000D03*
523 | X135255000Y-100330000D03*
524 | X135255000Y-107950000D03*
525 | X132715000Y-100330000D03*
526 | X137795000Y-107950000D03*
527 | X130175000Y-100330000D03*
528 | X140335000Y-107950000D03*
529 | X127635000Y-100330000D03*
530 | X142875000Y-107950000D03*
531 | X125095000Y-100330000D03*
532 | %TD*%
533 | D10*
534 | %TO.C,U6*%
535 | X183515000Y-135890000D03*
536 | D11*
537 | X150495000Y-151130000D03*
538 | X180975000Y-135890000D03*
539 | X153035000Y-151130000D03*
540 | X178435000Y-135890000D03*
541 | X155575000Y-151130000D03*
542 | X175895000Y-135890000D03*
543 | X158115000Y-151130000D03*
544 | X173355000Y-135890000D03*
545 | X160655000Y-151130000D03*
546 | X170815000Y-135890000D03*
547 | X163195000Y-151130000D03*
548 | X168275000Y-135890000D03*
549 | X165735000Y-151130000D03*
550 | X165735000Y-135890000D03*
551 | X168275000Y-151130000D03*
552 | X163195000Y-135890000D03*
553 | X170815000Y-151130000D03*
554 | X160655000Y-135890000D03*
555 | X173355000Y-151130000D03*
556 | X158115000Y-135890000D03*
557 | X175895000Y-151130000D03*
558 | X155575000Y-135890000D03*
559 | X178435000Y-151130000D03*
560 | X153035000Y-135890000D03*
561 | X180975000Y-151130000D03*
562 | X150495000Y-135890000D03*
563 | X183515000Y-151130000D03*
564 | %TD*%
565 | D10*
566 | %TO.C,X1*%
567 | X130175000Y-91440000D03*
568 | D17*
569 | X130175000Y-83820000D03*
570 | X137795000Y-83820000D03*
571 | X137795000Y-91440000D03*
572 | %TD*%
573 | M02*
574 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-F_Paste.gtp:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,5.1.9+dfsg1-1*%
2 | %TF.CreationDate,2021-08-01T20:01:47+10:00*%
3 | %TF.ProjectId,6502-computer,36353032-2d63-46f6-9d70-757465722e6b,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Paste,Top*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW 5.1.9+dfsg1-1) date 2021-08-01 20:01:47*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | G04 APERTURE END LIST*
15 | M02*
16 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-NPTH-drl_map.gbr:
--------------------------------------------------------------------------------
1 | %FSLAX45Y45*%
2 | G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
3 | G04 Created by KiCad (PCBNEW 5.1.9+dfsg1-1) date 2021-08-01 20:01:58*
4 | %MOMM*%
5 | %LPD*%
6 | G01*
7 | G04 APERTURE LIST*
8 | %TA.AperFunction,Profile*%
9 | %ADD10C,0.050000*%
10 | %TD*%
11 | %ADD11C,0.200000*%
12 | %ADD12C,0.300000*%
13 | G04 APERTURE END LIST*
14 | D10*
15 | X7747000Y-7175500D02*
16 | G75*
17 | G02*
18 | X7874000Y-7048500I127000J0D01*
19 | G01*
20 | X7874000Y-17018000D02*
21 | G75*
22 | G02*
23 | X7747000Y-16891000I0J127000D01*
24 | G01*
25 | X19431000Y-16891000D02*
26 | G75*
27 | G02*
28 | X19304000Y-17018000I-127000J0D01*
29 | G01*
30 | X19304000Y-7048500D02*
31 | G75*
32 | G02*
33 | X19431000Y-7175500I0J-127000D01*
34 | G01*
35 | X7747000Y-16891000D02*
36 | X7747000Y-7175500D01*
37 | X19304000Y-17018000D02*
38 | X7874000Y-17018000D01*
39 | X19431000Y-7175500D02*
40 | X19431000Y-16891000D01*
41 | X7874000Y-7048500D02*
42 | X19304000Y-7048500D01*
43 | D11*
44 | X10747000Y-9047500D02*
45 | X11097000Y-9397500D01*
46 | X11097000Y-9047500D02*
47 | X10747000Y-9397500D01*
48 | D12*
49 | X8030928Y-17486214D02*
50 | X8030928Y-17186214D01*
51 | X8102357Y-17186214D01*
52 | X8145214Y-17200500D01*
53 | X8173786Y-17229072D01*
54 | X8188071Y-17257643D01*
55 | X8202357Y-17314786D01*
56 | X8202357Y-17357643D01*
57 | X8188071Y-17414786D01*
58 | X8173786Y-17443357D01*
59 | X8145214Y-17471929D01*
60 | X8102357Y-17486214D01*
61 | X8030928Y-17486214D01*
62 | X8330928Y-17486214D02*
63 | X8330928Y-17286214D01*
64 | X8330928Y-17343357D02*
65 | X8345214Y-17314786D01*
66 | X8359500Y-17300500D01*
67 | X8388071Y-17286214D01*
68 | X8416643Y-17286214D01*
69 | X8516643Y-17486214D02*
70 | X8516643Y-17286214D01*
71 | X8516643Y-17186214D02*
72 | X8502357Y-17200500D01*
73 | X8516643Y-17214786D01*
74 | X8530928Y-17200500D01*
75 | X8516643Y-17186214D01*
76 | X8516643Y-17214786D01*
77 | X8702357Y-17486214D02*
78 | X8673786Y-17471929D01*
79 | X8659500Y-17443357D01*
80 | X8659500Y-17186214D01*
81 | X8859500Y-17486214D02*
82 | X8830928Y-17471929D01*
83 | X8816643Y-17443357D01*
84 | X8816643Y-17186214D01*
85 | X9202357Y-17486214D02*
86 | X9202357Y-17186214D01*
87 | X9302357Y-17400500D01*
88 | X9402357Y-17186214D01*
89 | X9402357Y-17486214D01*
90 | X9673786Y-17486214D02*
91 | X9673786Y-17329072D01*
92 | X9659500Y-17300500D01*
93 | X9630928Y-17286214D01*
94 | X9573786Y-17286214D01*
95 | X9545214Y-17300500D01*
96 | X9673786Y-17471929D02*
97 | X9645214Y-17486214D01*
98 | X9573786Y-17486214D01*
99 | X9545214Y-17471929D01*
100 | X9530928Y-17443357D01*
101 | X9530928Y-17414786D01*
102 | X9545214Y-17386214D01*
103 | X9573786Y-17371929D01*
104 | X9645214Y-17371929D01*
105 | X9673786Y-17357643D01*
106 | X9816643Y-17286214D02*
107 | X9816643Y-17586214D01*
108 | X9816643Y-17300500D02*
109 | X9845214Y-17286214D01*
110 | X9902357Y-17286214D01*
111 | X9930928Y-17300500D01*
112 | X9945214Y-17314786D01*
113 | X9959500Y-17343357D01*
114 | X9959500Y-17429072D01*
115 | X9945214Y-17457643D01*
116 | X9930928Y-17471929D01*
117 | X9902357Y-17486214D01*
118 | X9845214Y-17486214D01*
119 | X9816643Y-17471929D01*
120 | X10088071Y-17457643D02*
121 | X10102357Y-17471929D01*
122 | X10088071Y-17486214D01*
123 | X10073786Y-17471929D01*
124 | X10088071Y-17457643D01*
125 | X10088071Y-17486214D01*
126 | X10088071Y-17300500D02*
127 | X10102357Y-17314786D01*
128 | X10088071Y-17329072D01*
129 | X10073786Y-17314786D01*
130 | X10088071Y-17300500D01*
131 | X10088071Y-17329072D01*
132 | X7394500Y-17805500D02*
133 | X7744500Y-18155500D01*
134 | X7744500Y-17805500D02*
135 | X7394500Y-18155500D01*
136 | X8002357Y-17816214D02*
137 | X8188071Y-17816214D01*
138 | X8088071Y-17930500D01*
139 | X8130928Y-17930500D01*
140 | X8159500Y-17944786D01*
141 | X8173786Y-17959072D01*
142 | X8188071Y-17987643D01*
143 | X8188071Y-18059072D01*
144 | X8173786Y-18087643D01*
145 | X8159500Y-18101929D01*
146 | X8130928Y-18116214D01*
147 | X8045214Y-18116214D01*
148 | X8016643Y-18101929D01*
149 | X8002357Y-18087643D01*
150 | X8316643Y-18087643D02*
151 | X8330928Y-18101929D01*
152 | X8316643Y-18116214D01*
153 | X8302357Y-18101929D01*
154 | X8316643Y-18087643D01*
155 | X8316643Y-18116214D01*
156 | X8602357Y-17816214D02*
157 | X8459500Y-17816214D01*
158 | X8445214Y-17959072D01*
159 | X8459500Y-17944786D01*
160 | X8488071Y-17930500D01*
161 | X8559500Y-17930500D01*
162 | X8588071Y-17944786D01*
163 | X8602357Y-17959072D01*
164 | X8616643Y-17987643D01*
165 | X8616643Y-18059072D01*
166 | X8602357Y-18087643D01*
167 | X8588071Y-18101929D01*
168 | X8559500Y-18116214D01*
169 | X8488071Y-18116214D01*
170 | X8459500Y-18101929D01*
171 | X8445214Y-18087643D01*
172 | X8802357Y-17816214D02*
173 | X8830928Y-17816214D01*
174 | X8859500Y-17830500D01*
175 | X8873786Y-17844786D01*
176 | X8888071Y-17873357D01*
177 | X8902357Y-17930500D01*
178 | X8902357Y-18001929D01*
179 | X8888071Y-18059072D01*
180 | X8873786Y-18087643D01*
181 | X8859500Y-18101929D01*
182 | X8830928Y-18116214D01*
183 | X8802357Y-18116214D01*
184 | X8773786Y-18101929D01*
185 | X8759500Y-18087643D01*
186 | X8745214Y-18059072D01*
187 | X8730928Y-18001929D01*
188 | X8730928Y-17930500D01*
189 | X8745214Y-17873357D01*
190 | X8759500Y-17844786D01*
191 | X8773786Y-17830500D01*
192 | X8802357Y-17816214D01*
193 | X9030928Y-18116214D02*
194 | X9030928Y-17916214D01*
195 | X9030928Y-17944786D02*
196 | X9045214Y-17930500D01*
197 | X9073786Y-17916214D01*
198 | X9116643Y-17916214D01*
199 | X9145214Y-17930500D01*
200 | X9159500Y-17959072D01*
201 | X9159500Y-18116214D01*
202 | X9159500Y-17959072D02*
203 | X9173786Y-17930500D01*
204 | X9202357Y-17916214D01*
205 | X9245214Y-17916214D01*
206 | X9273786Y-17930500D01*
207 | X9288071Y-17959072D01*
208 | X9288071Y-18116214D01*
209 | X9430928Y-18116214D02*
210 | X9430928Y-17916214D01*
211 | X9430928Y-17944786D02*
212 | X9445214Y-17930500D01*
213 | X9473786Y-17916214D01*
214 | X9516643Y-17916214D01*
215 | X9545214Y-17930500D01*
216 | X9559500Y-17959072D01*
217 | X9559500Y-18116214D01*
218 | X9559500Y-17959072D02*
219 | X9573786Y-17930500D01*
220 | X9602357Y-17916214D01*
221 | X9645214Y-17916214D01*
222 | X9673786Y-17930500D01*
223 | X9688071Y-17959072D01*
224 | X9688071Y-18116214D01*
225 | X10273786Y-17801929D02*
226 | X10016643Y-18187643D01*
227 | X10659500Y-17816214D02*
228 | X10688071Y-17816214D01*
229 | X10716643Y-17830500D01*
230 | X10730928Y-17844786D01*
231 | X10745214Y-17873357D01*
232 | X10759500Y-17930500D01*
233 | X10759500Y-18001929D01*
234 | X10745214Y-18059072D01*
235 | X10730928Y-18087643D01*
236 | X10716643Y-18101929D01*
237 | X10688071Y-18116214D01*
238 | X10659500Y-18116214D01*
239 | X10630928Y-18101929D01*
240 | X10616643Y-18087643D01*
241 | X10602357Y-18059072D01*
242 | X10588071Y-18001929D01*
243 | X10588071Y-17930500D01*
244 | X10602357Y-17873357D01*
245 | X10616643Y-17844786D01*
246 | X10630928Y-17830500D01*
247 | X10659500Y-17816214D01*
248 | X10888071Y-18087643D02*
249 | X10902357Y-18101929D01*
250 | X10888071Y-18116214D01*
251 | X10873786Y-18101929D01*
252 | X10888071Y-18087643D01*
253 | X10888071Y-18116214D01*
254 | X11188071Y-18116214D02*
255 | X11016643Y-18116214D01*
256 | X11102357Y-18116214D02*
257 | X11102357Y-17816214D01*
258 | X11073786Y-17859072D01*
259 | X11045214Y-17887643D01*
260 | X11016643Y-17901929D01*
261 | X11288071Y-17816214D02*
262 | X11473786Y-17816214D01*
263 | X11373786Y-17930500D01*
264 | X11416643Y-17930500D01*
265 | X11445214Y-17944786D01*
266 | X11459500Y-17959072D01*
267 | X11473786Y-17987643D01*
268 | X11473786Y-18059072D01*
269 | X11459500Y-18087643D01*
270 | X11445214Y-18101929D01*
271 | X11416643Y-18116214D01*
272 | X11330928Y-18116214D01*
273 | X11302357Y-18101929D01*
274 | X11288071Y-18087643D01*
275 | X11645214Y-17944786D02*
276 | X11616643Y-17930500D01*
277 | X11602357Y-17916214D01*
278 | X11588071Y-17887643D01*
279 | X11588071Y-17873357D01*
280 | X11602357Y-17844786D01*
281 | X11616643Y-17830500D01*
282 | X11645214Y-17816214D01*
283 | X11702357Y-17816214D01*
284 | X11730928Y-17830500D01*
285 | X11745214Y-17844786D01*
286 | X11759500Y-17873357D01*
287 | X11759500Y-17887643D01*
288 | X11745214Y-17916214D01*
289 | X11730928Y-17930500D01*
290 | X11702357Y-17944786D01*
291 | X11645214Y-17944786D01*
292 | X11616643Y-17959072D01*
293 | X11602357Y-17973357D01*
294 | X11588071Y-18001929D01*
295 | X11588071Y-18059072D01*
296 | X11602357Y-18087643D01*
297 | X11616643Y-18101929D01*
298 | X11645214Y-18116214D01*
299 | X11702357Y-18116214D01*
300 | X11730928Y-18101929D01*
301 | X11745214Y-18087643D01*
302 | X11759500Y-18059072D01*
303 | X11759500Y-18001929D01*
304 | X11745214Y-17973357D01*
305 | X11730928Y-17959072D01*
306 | X11702357Y-17944786D01*
307 | X11873786Y-17816214D02*
308 | X11873786Y-17873357D01*
309 | X11988071Y-17816214D02*
310 | X11988071Y-17873357D01*
311 | X12430928Y-18230500D02*
312 | X12416643Y-18216214D01*
313 | X12388071Y-18173357D01*
314 | X12373786Y-18144786D01*
315 | X12359500Y-18101929D01*
316 | X12345214Y-18030500D01*
317 | X12345214Y-17973357D01*
318 | X12359500Y-17901929D01*
319 | X12373786Y-17859072D01*
320 | X12388071Y-17830500D01*
321 | X12416643Y-17787643D01*
322 | X12430928Y-17773357D01*
323 | X12702357Y-18116214D02*
324 | X12530928Y-18116214D01*
325 | X12616643Y-18116214D02*
326 | X12616643Y-17816214D01*
327 | X12588071Y-17859072D01*
328 | X12559500Y-17887643D01*
329 | X12530928Y-17901929D01*
330 | X13059500Y-18116214D02*
331 | X13059500Y-17816214D01*
332 | X13188071Y-18116214D02*
333 | X13188071Y-17959072D01*
334 | X13173786Y-17930500D01*
335 | X13145214Y-17916214D01*
336 | X13102357Y-17916214D01*
337 | X13073786Y-17930500D01*
338 | X13059500Y-17944786D01*
339 | X13373786Y-18116214D02*
340 | X13345214Y-18101929D01*
341 | X13330928Y-18087643D01*
342 | X13316643Y-18059072D01*
343 | X13316643Y-17973357D01*
344 | X13330928Y-17944786D01*
345 | X13345214Y-17930500D01*
346 | X13373786Y-17916214D01*
347 | X13416643Y-17916214D01*
348 | X13445214Y-17930500D01*
349 | X13459500Y-17944786D01*
350 | X13473786Y-17973357D01*
351 | X13473786Y-18059072D01*
352 | X13459500Y-18087643D01*
353 | X13445214Y-18101929D01*
354 | X13416643Y-18116214D01*
355 | X13373786Y-18116214D01*
356 | X13645214Y-18116214D02*
357 | X13616643Y-18101929D01*
358 | X13602357Y-18073357D01*
359 | X13602357Y-17816214D01*
360 | X13873786Y-18101929D02*
361 | X13845214Y-18116214D01*
362 | X13788071Y-18116214D01*
363 | X13759500Y-18101929D01*
364 | X13745214Y-18073357D01*
365 | X13745214Y-17959072D01*
366 | X13759500Y-17930500D01*
367 | X13788071Y-17916214D01*
368 | X13845214Y-17916214D01*
369 | X13873786Y-17930500D01*
370 | X13888071Y-17959072D01*
371 | X13888071Y-17987643D01*
372 | X13745214Y-18016214D01*
373 | X13988071Y-18230500D02*
374 | X14002357Y-18216214D01*
375 | X14030928Y-18173357D01*
376 | X14045214Y-18144786D01*
377 | X14059500Y-18101929D01*
378 | X14073786Y-18030500D01*
379 | X14073786Y-17973357D01*
380 | X14059500Y-17901929D01*
381 | X14045214Y-17859072D01*
382 | X14030928Y-17830500D01*
383 | X14002357Y-17787643D01*
384 | X13988071Y-17773357D01*
385 | X14530928Y-18230500D02*
386 | X14516643Y-18216214D01*
387 | X14488071Y-18173357D01*
388 | X14473786Y-18144786D01*
389 | X14459500Y-18101929D01*
390 | X14445214Y-18030500D01*
391 | X14445214Y-17973357D01*
392 | X14459500Y-17901929D01*
393 | X14473786Y-17859072D01*
394 | X14488071Y-17830500D01*
395 | X14516643Y-17787643D01*
396 | X14530928Y-17773357D01*
397 | X14645214Y-17916214D02*
398 | X14645214Y-18116214D01*
399 | X14645214Y-17944786D02*
400 | X14659500Y-17930500D01*
401 | X14688071Y-17916214D01*
402 | X14730928Y-17916214D01*
403 | X14759500Y-17930500D01*
404 | X14773786Y-17959072D01*
405 | X14773786Y-18116214D01*
406 | X14959500Y-18116214D02*
407 | X14930928Y-18101929D01*
408 | X14916643Y-18087643D01*
409 | X14902357Y-18059072D01*
410 | X14902357Y-17973357D01*
411 | X14916643Y-17944786D01*
412 | X14930928Y-17930500D01*
413 | X14959500Y-17916214D01*
414 | X15002357Y-17916214D01*
415 | X15030928Y-17930500D01*
416 | X15045214Y-17944786D01*
417 | X15059500Y-17973357D01*
418 | X15059500Y-18059072D01*
419 | X15045214Y-18087643D01*
420 | X15030928Y-18101929D01*
421 | X15002357Y-18116214D01*
422 | X14959500Y-18116214D01*
423 | X15145214Y-17916214D02*
424 | X15259500Y-17916214D01*
425 | X15188071Y-17816214D02*
426 | X15188071Y-18073357D01*
427 | X15202357Y-18101929D01*
428 | X15230928Y-18116214D01*
429 | X15259500Y-18116214D01*
430 | X15588071Y-17916214D02*
431 | X15588071Y-18216214D01*
432 | X15588071Y-17930500D02*
433 | X15616643Y-17916214D01*
434 | X15673786Y-17916214D01*
435 | X15702357Y-17930500D01*
436 | X15716643Y-17944786D01*
437 | X15730928Y-17973357D01*
438 | X15730928Y-18059072D01*
439 | X15716643Y-18087643D01*
440 | X15702357Y-18101929D01*
441 | X15673786Y-18116214D01*
442 | X15616643Y-18116214D01*
443 | X15588071Y-18101929D01*
444 | X15902357Y-18116214D02*
445 | X15873786Y-18101929D01*
446 | X15859500Y-18073357D01*
447 | X15859500Y-17816214D01*
448 | X16145214Y-18116214D02*
449 | X16145214Y-17959072D01*
450 | X16130928Y-17930500D01*
451 | X16102357Y-17916214D01*
452 | X16045214Y-17916214D01*
453 | X16016643Y-17930500D01*
454 | X16145214Y-18101929D02*
455 | X16116643Y-18116214D01*
456 | X16045214Y-18116214D01*
457 | X16016643Y-18101929D01*
458 | X16002357Y-18073357D01*
459 | X16002357Y-18044786D01*
460 | X16016643Y-18016214D01*
461 | X16045214Y-18001929D01*
462 | X16116643Y-18001929D01*
463 | X16145214Y-17987643D01*
464 | X16245214Y-17916214D02*
465 | X16359500Y-17916214D01*
466 | X16288071Y-17816214D02*
467 | X16288071Y-18073357D01*
468 | X16302357Y-18101929D01*
469 | X16330928Y-18116214D01*
470 | X16359500Y-18116214D01*
471 | X16573786Y-18101929D02*
472 | X16545214Y-18116214D01*
473 | X16488071Y-18116214D01*
474 | X16459500Y-18101929D01*
475 | X16445214Y-18073357D01*
476 | X16445214Y-17959072D01*
477 | X16459500Y-17930500D01*
478 | X16488071Y-17916214D01*
479 | X16545214Y-17916214D01*
480 | X16573786Y-17930500D01*
481 | X16588071Y-17959072D01*
482 | X16588071Y-17987643D01*
483 | X16445214Y-18016214D01*
484 | X16845214Y-18116214D02*
485 | X16845214Y-17816214D01*
486 | X16845214Y-18101929D02*
487 | X16816643Y-18116214D01*
488 | X16759500Y-18116214D01*
489 | X16730928Y-18101929D01*
490 | X16716643Y-18087643D01*
491 | X16702357Y-18059072D01*
492 | X16702357Y-17973357D01*
493 | X16716643Y-17944786D01*
494 | X16730928Y-17930500D01*
495 | X16759500Y-17916214D01*
496 | X16816643Y-17916214D01*
497 | X16845214Y-17930500D01*
498 | X16959500Y-18230500D02*
499 | X16973786Y-18216214D01*
500 | X17002357Y-18173357D01*
501 | X17016643Y-18144786D01*
502 | X17030928Y-18101929D01*
503 | X17045214Y-18030500D01*
504 | X17045214Y-17973357D01*
505 | X17030928Y-17901929D01*
506 | X17016643Y-17859072D01*
507 | X17002357Y-17830500D01*
508 | X16973786Y-17787643D01*
509 | X16959500Y-17773357D01*
510 | M02*
511 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-NPTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad 5.1.9+dfsg1-1} date Sun Aug 1 20:01:57 2021
3 | ; FORMAT={-:-/ absolute / metric / decimal}
4 | ; #@! TF.CreationDate,2021-08-01T20:01:57+10:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.9+dfsg1-1
6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH
7 | FMAT,2
8 | METRIC
9 | T1C3.500
10 | %
11 | G90
12 | G05
13 | T1
14 | X109.22Y-92.225
15 | T0
16 | M30
17 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-PTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad 5.1.9+dfsg1-1} date Sun Aug 1 20:01:57 2021
3 | ; FORMAT={-:-/ absolute / metric / decimal}
4 | ; #@! TF.CreationDate,2021-08-01T20:01:57+10:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.9+dfsg1-1
6 | ; #@! TF.FileFunction,Plated,1,2,PTH
7 | FMAT,2
8 | METRIC
9 | T1C0.400
10 | T2C0.500
11 | T3C0.600
12 | T4C0.750
13 | T5C0.800
14 | T6C0.813
15 | T7C0.900
16 | T8C1.000
17 | T9C1.100
18 | T10C3.200
19 | %
20 | G90
21 | G05
22 | T1
23 | X86.36Y-153.67
24 | X87.662Y-104.235
25 | X88.797Y-116.562
26 | X90.551Y-132.969
27 | X90.551Y-134.112
28 | X92.138Y-144.208
29 | X92.693Y-110.346
30 | X92.837Y-144.907
31 | X93.599Y-98.171
32 | X95.476Y-117.946
33 | X96.252Y-118.577
34 | X96.266Y-117.221
35 | X97.409Y-154.051
36 | X97.536Y-137.541
37 | X98.26Y-149.33
38 | X99.822Y-137.414
39 | X100.203Y-117.602
40 | X100.457Y-148.717
41 | X100.965Y-154.051
42 | X101.346Y-117.602
43 | X105.41Y-162.052
44 | X105.41Y-164.465
45 | X107.315Y-106.934
46 | X107.315Y-115.824
47 | X108.712Y-119.507
48 | X109.347Y-127.508
49 | X109.347Y-127.508
50 | X113.538Y-119.38
51 | X114.046Y-96.647
52 | X114.046Y-106.1
53 | X115.062Y-97.409
54 | X115.443Y-117.602
55 | X116.713Y-109.3
56 | X117.094Y-127.0
57 | X117.221Y-117.602
58 | X117.983Y-126.238
59 | X118.872Y-117.602
60 | X123.317Y-132.588
61 | X124.46Y-133.858
62 | X125.857Y-104.88
63 | X126.746Y-133.096
64 | X127.127Y-96.647
65 | X127.508Y-143.256
66 | X129.667Y-96.012
67 | X130.556Y-112.014
68 | X135.763Y-119.38
69 | X136.271Y-111.252
70 | X137.033Y-110.49
71 | X137.16Y-119.38
72 | X138.176Y-110.49
73 | X143.451Y-111.701
74 | X143.51Y-133.604
75 | X143.923Y-112.583
76 | X144.526Y-137.795
77 | X145.034Y-104.521
78 | X145.513Y-133.096
79 | X145.542Y-100.076
80 | X145.923Y-110.49
81 | X145.923Y-116.078
82 | X146.05Y-96.012
83 | X146.238Y-131.501
84 | X146.245Y-111.438
85 | X146.584Y-128.397
86 | X146.685Y-115.062
87 | X147.034Y-130.048
88 | X147.193Y-77.089
89 | X147.574Y-159.258
90 | X147.701Y-109.22
91 | X147.891Y-84.772
92 | X148.399Y-86.804
93 | X148.463Y-116.078
94 | X148.907Y-88.837
95 | X148.971Y-75.819
96 | X149.352Y-90.551
97 | X150.114Y-125.984
98 | X153.035Y-146.05
99 | X154.051Y-72.517
100 | X154.239Y-119.584
101 | X155.101Y-118.721
102 | X155.575Y-146.05
103 | X155.916Y-117.906
104 | X155.956Y-110.49
105 | X156.693Y-117.13
106 | X156.972Y-111.379
107 | X157.734Y-116.676
108 | X158.115Y-137.405
109 | X158.115Y-146.05
110 | X160.655Y-146.05
111 | X160.909Y-123.481
112 | X161.925Y-124.333
113 | X163.195Y-146.05
114 | X163.323Y-123.589
115 | X165.608Y-146.05
116 | X168.275Y-146.05
117 | X168.719Y-140.653
118 | X170.815Y-146.05
119 | X171.704Y-122.301
120 | X172.466Y-121.539
121 | X173.487Y-123.058
122 | X174.244Y-138.049
123 | X175.133Y-123.952
124 | X177.551Y-146.68
125 | X177.673Y-149.098
126 | X184.531Y-118.364
127 | X186.055Y-162.433
128 | T2
129 | X79.642Y-75.057
130 | X79.642Y-165.608
131 | X80.345Y-73.36
132 | X80.345Y-76.754
133 | X80.345Y-163.911
134 | X80.345Y-167.305
135 | X82.042Y-72.657
136 | X82.042Y-77.457
137 | X82.042Y-163.208
138 | X82.042Y-168.008
139 | X83.739Y-73.36
140 | X83.739Y-76.754
141 | X83.739Y-163.911
142 | X83.739Y-167.305
143 | X84.442Y-75.057
144 | X84.442Y-165.608
145 | X187.338Y-75.057
146 | X187.338Y-165.608
147 | X188.041Y-73.36
148 | X188.041Y-76.754
149 | X188.041Y-163.911
150 | X188.041Y-167.305
151 | X189.738Y-72.657
152 | X189.738Y-77.457
153 | X189.738Y-163.208
154 | X189.738Y-168.008
155 | X191.435Y-73.36
156 | X191.435Y-76.754
157 | X191.435Y-163.911
158 | X191.435Y-167.305
159 | X192.138Y-75.057
160 | X192.138Y-165.608
161 | T3
162 | X118.11Y-77.47
163 | X119.61Y-77.47
164 | T4
165 | X123.19Y-91.44
166 | X124.46Y-90.17
167 | X124.46Y-92.71
168 | T5
169 | X83.82Y-87.035
170 | X83.82Y-89.535
171 | X83.82Y-92.035
172 | X90.297Y-127.421
173 | X90.297Y-129.921
174 | X90.805Y-105.45
175 | X90.805Y-107.95
176 | X90.805Y-148.63
177 | X90.805Y-151.13
178 | X95.885Y-100.33
179 | X95.885Y-107.95
180 | X95.885Y-114.3
181 | X95.885Y-129.54
182 | X95.885Y-135.89
183 | X95.885Y-151.13
184 | X98.425Y-100.33
185 | X98.425Y-107.95
186 | X98.425Y-114.3
187 | X98.425Y-129.54
188 | X98.425Y-135.89
189 | X98.425Y-151.13
190 | X100.965Y-100.33
191 | X100.965Y-107.95
192 | X100.965Y-114.3
193 | X100.965Y-129.54
194 | X100.965Y-135.89
195 | X100.965Y-151.13
196 | X101.6Y-75.605
197 | X101.6Y-78.105
198 | X103.505Y-100.33
199 | X103.505Y-107.95
200 | X103.505Y-114.3
201 | X103.505Y-129.54
202 | X103.505Y-135.89
203 | X103.505Y-151.13
204 | X106.045Y-100.33
205 | X106.045Y-107.95
206 | X106.045Y-114.3
207 | X106.045Y-129.54
208 | X106.045Y-135.89
209 | X106.045Y-151.13
210 | X108.585Y-100.33
211 | X108.585Y-107.95
212 | X108.585Y-114.3
213 | X108.585Y-129.54
214 | X108.585Y-135.89
215 | X108.585Y-151.13
216 | X111.125Y-100.33
217 | X111.125Y-107.95
218 | X111.125Y-114.3
219 | X111.125Y-129.54
220 | X111.125Y-135.89
221 | X111.125Y-151.13
222 | X113.665Y-114.3
223 | X113.665Y-129.54
224 | X113.665Y-135.89
225 | X113.665Y-151.13
226 | X116.205Y-114.3
227 | X116.205Y-129.54
228 | X116.205Y-135.89
229 | X116.205Y-151.13
230 | X118.745Y-114.3
231 | X118.745Y-129.54
232 | X118.745Y-135.89
233 | X118.745Y-151.13
234 | X120.015Y-105.45
235 | X120.015Y-107.95
236 | X121.285Y-114.3
237 | X121.285Y-129.54
238 | X121.285Y-135.89
239 | X121.285Y-151.13
240 | X123.825Y-114.3
241 | X123.825Y-129.54
242 | X123.825Y-135.89
243 | X123.825Y-151.13
244 | X125.095Y-82.59
245 | X125.095Y-85.09
246 | X125.095Y-100.33
247 | X125.095Y-107.95
248 | X126.365Y-114.3
249 | X126.365Y-129.54
250 | X126.365Y-135.89
251 | X126.365Y-151.13
252 | X127.635Y-100.33
253 | X127.635Y-107.95
254 | X128.905Y-114.3
255 | X128.905Y-129.54
256 | X128.905Y-135.89
257 | X128.905Y-151.13
258 | X130.175Y-83.82
259 | X130.175Y-91.44
260 | X130.175Y-100.33
261 | X130.175Y-107.95
262 | X131.445Y-114.3
263 | X131.445Y-129.54
264 | X131.445Y-135.89
265 | X131.445Y-151.13
266 | X131.525Y-77.47
267 | X132.715Y-100.33
268 | X132.715Y-107.95
269 | X133.985Y-114.3
270 | X133.985Y-129.54
271 | X133.985Y-135.89
272 | X133.985Y-151.13
273 | X134.025Y-77.47
274 | X135.255Y-100.33
275 | X135.255Y-107.95
276 | X136.525Y-77.47
277 | X136.525Y-114.3
278 | X136.525Y-129.54
279 | X136.525Y-135.89
280 | X136.525Y-151.13
281 | X137.795Y-83.82
282 | X137.795Y-91.44
283 | X137.795Y-100.33
284 | X137.795Y-107.95
285 | X139.065Y-114.3
286 | X139.065Y-129.54
287 | X139.065Y-135.89
288 | X139.065Y-151.13
289 | X140.335Y-100.33
290 | X140.335Y-107.95
291 | X141.605Y-114.3
292 | X141.605Y-129.54
293 | X141.605Y-135.89
294 | X141.605Y-151.13
295 | X142.875Y-100.33
296 | X142.875Y-107.95
297 | X144.145Y-114.3
298 | X144.145Y-129.54
299 | X144.145Y-135.89
300 | X144.145Y-151.13
301 | X150.495Y-114.3
302 | X150.495Y-129.54
303 | X150.495Y-135.89
304 | X150.495Y-151.13
305 | X151.384Y-78.74
306 | X151.384Y-93.98
307 | X153.035Y-101.854
308 | X153.035Y-106.934
309 | X153.035Y-114.3
310 | X153.035Y-129.54
311 | X153.035Y-135.89
312 | X153.035Y-151.13
313 | X153.924Y-78.74
314 | X153.924Y-93.98
315 | X155.575Y-114.3
316 | X155.575Y-129.54
317 | X155.575Y-135.89
318 | X155.575Y-151.13
319 | X156.464Y-78.74
320 | X156.464Y-93.98
321 | X158.115Y-114.3
322 | X158.115Y-129.54
323 | X158.115Y-135.89
324 | X158.115Y-151.13
325 | X159.004Y-78.74
326 | X159.004Y-93.98
327 | X160.655Y-114.3
328 | X160.655Y-129.54
329 | X160.655Y-135.89
330 | X160.655Y-151.13
331 | X161.544Y-78.74
332 | X161.544Y-93.98
333 | X163.195Y-101.854
334 | X163.195Y-106.934
335 | X163.195Y-114.3
336 | X163.195Y-129.54
337 | X163.195Y-135.89
338 | X163.195Y-151.13
339 | X164.084Y-78.74
340 | X164.084Y-93.98
341 | X165.735Y-114.3
342 | X165.735Y-129.54
343 | X165.735Y-135.89
344 | X165.735Y-151.13
345 | X166.624Y-78.74
346 | X166.624Y-93.98
347 | X168.275Y-101.854
348 | X168.275Y-106.934
349 | X168.275Y-114.3
350 | X168.275Y-129.54
351 | X168.275Y-135.89
352 | X168.275Y-151.13
353 | X169.164Y-78.74
354 | X169.164Y-93.98
355 | X170.815Y-114.3
356 | X170.815Y-129.54
357 | X170.815Y-135.89
358 | X170.815Y-151.13
359 | X171.704Y-78.74
360 | X171.704Y-93.98
361 | X173.355Y-114.3
362 | X173.355Y-129.54
363 | X173.355Y-135.89
364 | X173.355Y-151.13
365 | X174.244Y-78.74
366 | X174.244Y-93.98
367 | X175.895Y-114.3
368 | X175.895Y-129.54
369 | X175.895Y-135.89
370 | X175.895Y-151.13
371 | X176.784Y-78.74
372 | X176.784Y-93.98
373 | X178.435Y-101.854
374 | X178.435Y-106.934
375 | X178.435Y-114.3
376 | X178.435Y-129.54
377 | X178.435Y-135.89
378 | X178.435Y-151.13
379 | X179.324Y-78.74
380 | X179.324Y-93.98
381 | X180.975Y-114.3
382 | X180.975Y-129.54
383 | X180.975Y-135.89
384 | X180.975Y-151.13
385 | X181.864Y-78.74
386 | X181.864Y-93.98
387 | X183.515Y-114.3
388 | X183.515Y-129.54
389 | X183.515Y-135.89
390 | X183.515Y-151.13
391 | X184.404Y-78.74
392 | X184.404Y-93.98
393 | X184.404Y-104.053
394 | X184.404Y-106.553
395 | X188.595Y-114.3
396 | X188.595Y-116.8
397 | X188.595Y-135.89
398 | X188.595Y-138.39
399 | T6
400 | X94.615Y-158.75
401 | X94.615Y-163.83
402 | X102.235Y-158.75
403 | X102.235Y-163.83
404 | T7
405 | X178.054Y-160.274
406 | X178.054Y-162.814
407 | T8
408 | X83.185Y-102.87
409 | X83.185Y-105.41
410 | X83.185Y-107.95
411 | X83.185Y-110.49
412 | X83.185Y-113.03
413 | X83.185Y-115.57
414 | X83.185Y-118.11
415 | X83.185Y-120.65
416 | X83.185Y-123.19
417 | X83.185Y-125.73
418 | X83.185Y-128.27
419 | X83.185Y-130.81
420 | X83.185Y-133.35
421 | X83.185Y-135.89
422 | X83.185Y-138.43
423 | X83.185Y-140.97
424 | X83.185Y-143.51
425 | X83.185Y-146.05
426 | X83.185Y-148.59
427 | X83.185Y-151.13
428 | X85.725Y-102.87
429 | X85.725Y-105.41
430 | X85.725Y-107.95
431 | X85.725Y-110.49
432 | X85.725Y-113.03
433 | X85.725Y-115.57
434 | X85.725Y-118.11
435 | X85.725Y-120.65
436 | X85.725Y-123.19
437 | X85.725Y-125.73
438 | X85.725Y-128.27
439 | X85.725Y-130.81
440 | X85.725Y-133.35
441 | X85.725Y-135.89
442 | X85.725Y-138.43
443 | X85.725Y-140.97
444 | X85.725Y-143.51
445 | X85.725Y-146.05
446 | X85.725Y-148.59
447 | X85.725Y-151.13
448 | X107.315Y-160.02
449 | X107.315Y-162.56
450 | X109.855Y-160.02
451 | X109.855Y-162.56
452 | X112.395Y-160.02
453 | X112.395Y-162.56
454 | X114.935Y-160.02
455 | X114.935Y-162.56
456 | X117.475Y-160.02
457 | X117.475Y-162.56
458 | X120.015Y-160.02
459 | X120.015Y-162.56
460 | X130.175Y-160.02
461 | X130.175Y-162.56
462 | X132.715Y-160.02
463 | X132.715Y-162.56
464 | X135.255Y-160.02
465 | X135.255Y-162.56
466 | X137.795Y-160.02
467 | X137.795Y-162.56
468 | X140.335Y-160.02
469 | X140.335Y-162.56
470 | X142.875Y-160.02
471 | X142.875Y-162.56
472 | X150.495Y-161.29
473 | X153.035Y-161.29
474 | X155.575Y-161.29
475 | X158.115Y-161.29
476 | X160.655Y-161.29
477 | X163.195Y-161.29
478 | X168.91Y-160.274
479 | X168.91Y-162.814
480 | X171.45Y-160.274
481 | X171.45Y-162.814
482 | T9
483 | X89.535Y-93.98
484 | X99.695Y-93.98
485 | X106.68Y-75.565
486 | X109.22Y-75.565
487 | X111.76Y-75.565
488 | T10
489 | X82.042Y-75.057
490 | X82.042Y-165.608
491 | X189.738Y-75.057
492 | X189.738Y-165.608
493 | T8
494 | X89.28Y-80.455G85X89.28Y-82.455
495 | G05
496 | X94.98Y-78.455G85X92.98Y-78.455
497 | G05
498 | X94.98Y-84.455G85X92.98Y-84.455
499 | G05
500 | T0
501 | M30
502 |
--------------------------------------------------------------------------------
/hardware/gerber/6502-computer-rev-1.0/6502-computer-job.gbrjob:
--------------------------------------------------------------------------------
1 | {
2 | "Header":
3 | {
4 | "GenerationSoftware":
5 | {
6 | "Vendor": "KiCad",
7 | "Application": "Pcbnew",
8 | "Version": "5.1.9+dfsg1-1"
9 | },
10 | "CreationDate": "2021-08-01T20:01:47+10:00"
11 | },
12 | "GeneralSpecs":
13 | {
14 | "ProjectId":
15 | {
16 | "Name": "6502-computer",
17 | "GUID": "36353032-2d63-46f6-9d70-757465722e6b",
18 | "Revision": "rev?"
19 | },
20 | "Size":
21 | {
22 | "X": 116.890,
23 | "Y": 99.745
24 | },
25 | "LayerNumber": 2,
26 | "BoardThickness": 1.600
27 | },
28 | "DesignRules":
29 | [
30 | {
31 | "Layers": "Outer",
32 | "PadToPad": 0.200,
33 | "PadToTrack": 0.200,
34 | "TrackToTrack": 0.200,
35 | "MinLineWidth": 0.250,
36 | "TrackToRegion": 0.508,
37 | "RegionToRegion": 0.508
38 | }
39 | ],
40 | "FilesAttributes":
41 | [
42 | {
43 | "Path": "6502-computer-F_Cu.gtl",
44 | "FileFunction": "Copper,L1,Top",
45 | "FilePolarity": "Positive"
46 | },
47 | {
48 | "Path": "6502-computer-B_Cu.gbl",
49 | "FileFunction": "Copper,L2,Bot",
50 | "FilePolarity": "Positive"
51 | },
52 | {
53 | "Path": "6502-computer-F_Paste.gtp",
54 | "FileFunction": "SolderPaste,Top",
55 | "FilePolarity": "Positive"
56 | },
57 | {
58 | "Path": "6502-computer-B_Paste.gbp",
59 | "FileFunction": "SolderPaste,Bot",
60 | "FilePolarity": "Positive"
61 | },
62 | {
63 | "Path": "6502-computer-F_SilkS.gto",
64 | "FileFunction": "Legend,Top",
65 | "FilePolarity": "Positive"
66 | },
67 | {
68 | "Path": "6502-computer-B_SilkS.gbo",
69 | "FileFunction": "Legend,Bot",
70 | "FilePolarity": "Positive"
71 | },
72 | {
73 | "Path": "6502-computer-F_Mask.gts",
74 | "FileFunction": "SolderMask,Top",
75 | "FilePolarity": "Negative"
76 | },
77 | {
78 | "Path": "6502-computer-B_Mask.gbs",
79 | "FileFunction": "SolderMask,Bot",
80 | "FilePolarity": "Negative"
81 | },
82 | {
83 | "Path": "6502-computer-Edge_Cuts.gm1",
84 | "FileFunction": "Profile",
85 | "FilePolarity": "Positive"
86 | }
87 | ],
88 | "MaterialStackup":
89 | [
90 | {
91 | "Type": "Legend",
92 | "Notes": "Layer F.SilkS"
93 | },
94 | {
95 | "Type": "SolderPaste",
96 | "Notes": "Layer F.Paste"
97 | },
98 | {
99 | "Type": "SolderMask",
100 | "Notes": "Layer F.Mask"
101 | },
102 | {
103 | "Type": "Copper",
104 | "Notes": "Layer F.Cu"
105 | },
106 | {
107 | "Type": "Dielectric",
108 | "Material": "FR4",
109 | "Notes": "Layers L1/L2"
110 | },
111 | {
112 | "Type": "Copper",
113 | "Notes": "Layer B.Cu"
114 | },
115 | {
116 | "Type": "SolderMask",
117 | "Notes": "Layer B.Mask"
118 | },
119 | {
120 | "Type": "SolderPaste",
121 | "Notes": "Layer B.Paste"
122 | },
123 | {
124 | "Type": "Legend",
125 | "Notes": "Layer B.SilkS"
126 | }
127 | ]
128 | }
129 |
--------------------------------------------------------------------------------
/hardware/kicad/.gitignore:
--------------------------------------------------------------------------------
1 | # Backup files
2 | *.bck
3 | *.sch-bak
4 | *.kicad_pcb-bak
5 |
6 | # Cache files
7 | fp-info-cache
8 |
9 | # Generated files which can be re-created manually
10 | *.net
11 |
12 |
--------------------------------------------------------------------------------
/hardware/kicad/6502-computer-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.4
2 | #encoding utf-8
3 | #
4 | # 65xx_W65C02SxP
5 | #
6 | DEF 65xx_W65C02SxP U 0 40 Y Y 1 F N
7 | F0 "U" -400 1400 50 H V L CNN
8 | F1 "65xx_W65C02SxP" 0 0 50 V V C CIB
9 | F2 "" 0 2000 50 H I C CNN
10 | F3 "" 0 1900 50 H I C CNN
11 | $FPLIST
12 | DIP-40_W15.24mm*
13 | $ENDFPLIST
14 | DRAW
15 | S -400 1350 400 -1350 0 1 0 f
16 | X ~VP 1 -600 -800 200 R 50 50 1 1 O V
17 | X A1 10 600 1100 200 L 50 50 1 1 T
18 | X A2 11 600 1000 200 L 50 50 1 1 T
19 | X A3 12 600 900 200 L 50 50 1 1 T
20 | X A4 13 600 800 200 L 50 50 1 1 T
21 | X A5 14 600 700 200 L 50 50 1 1 T
22 | X A6 15 600 600 200 L 50 50 1 1 T
23 | X A7 16 600 500 200 L 50 50 1 1 T
24 | X A8 17 600 400 200 L 50 50 1 1 T
25 | X A9 18 600 300 200 L 50 50 1 1 T
26 | X A10 19 600 200 200 L 50 50 1 1 T
27 | X RDY 2 -600 -300 200 R 50 50 1 1 C
28 | X A11 20 600 100 200 L 50 50 1 1 T
29 | X VSS 21 0 -1550 200 U 50 50 1 1 W
30 | X A12 22 600 0 200 L 50 50 1 1 T
31 | X A13 23 600 -100 200 L 50 50 1 1 T
32 | X A14 24 600 -200 200 L 50 50 1 1 T
33 | X A15 25 600 -300 200 L 50 50 1 1 T
34 | X D7 26 600 -1200 200 L 50 50 1 1 B
35 | X D6 27 600 -1100 200 L 50 50 1 1 B
36 | X D5 28 600 -1000 200 L 50 50 1 1 B
37 | X D4 29 600 -900 200 L 50 50 1 1 B
38 | X ϕ1 3 -600 800 200 R 50 50 1 1 O
39 | X D3 30 600 -800 200 L 50 50 1 1 B
40 | X D2 31 600 -700 200 L 50 50 1 1 B
41 | X D1 32 600 -600 200 L 50 50 1 1 B
42 | X D0 33 600 -500 200 L 50 50 1 1 B
43 | X R/~W 34 -600 0 200 R 50 50 1 1 T
44 | X nc 35 -400 -1100 100 R 50 50 1 1 N NX
45 | X BE 36 -600 -400 200 R 50 50 1 1 I
46 | X ϕ0 37 -600 900 200 R 50 50 1 1 I C
47 | X ~SO 38 -600 -1200 200 R 50 50 1 1 I L
48 | X ϕ2 39 -600 700 200 R 50 50 1 1 O
49 | X ~IRQ 4 -600 400 200 R 50 50 1 1 I L
50 | X ~RES 40 -600 1200 200 R 50 50 1 1 I L
51 | X ~ML 5 -600 -900 200 R 50 50 1 1 O V
52 | X ~NMI 6 -600 300 200 R 50 50 1 1 I L
53 | X SYNC 7 -600 -700 200 R 50 50 1 1 O
54 | X VDD 8 0 1550 200 D 50 50 1 1 W
55 | X A0 9 600 1200 200 L 50 50 1 1 T
56 | ENDDRAW
57 | ENDDEF
58 | #
59 | # 65xx_W65C22SxP
60 | #
61 | DEF 65xx_W65C22SxP U 0 40 Y Y 1 F N
62 | F0 "U" -400 1300 50 H V L CNN
63 | F1 "65xx_W65C22SxP" 0 0 50 V V C CIB
64 | F2 "" 0 150 50 H I C CNN
65 | F3 "" 0 150 50 H I C CNN
66 | $FPLIST
67 | DIP-40_W15.24mm*
68 | $ENDFPLIST
69 | DRAW
70 | S -400 1250 400 -1250 0 1 0 f
71 | X VSS 1 0 -1450 200 U 50 50 1 1 W
72 | X PB0 10 600 -100 200 L 50 50 1 1 B
73 | X PB1 11 600 -200 200 L 50 50 1 1 B
74 | X PB2 12 600 -300 200 L 50 50 1 1 B
75 | X PB3 13 600 -400 200 L 50 50 1 1 B
76 | X PB4 14 600 -500 200 L 50 50 1 1 B
77 | X PB5 15 600 -600 200 L 50 50 1 1 B
78 | X PB6 16 600 -700 200 L 50 50 1 1 B
79 | X PB7 17 600 -800 200 L 50 50 1 1 B
80 | X CB1 18 600 -1000 200 L 50 50 1 1 I
81 | X CB2 19 600 -1100 200 L 50 50 1 1 B
82 | X PA0 2 600 1100 200 L 50 50 1 1 B
83 | X VCC 20 0 1450 200 D 50 50 1 1 W
84 | X ~IRQ 21 -600 800 200 R 50 50 1 1 O V
85 | X R/~W 22 -600 -200 200 R 50 50 1 1 I
86 | X ~CS2 23 -600 500 200 R 50 50 1 1 I L
87 | X CS1 24 -600 600 200 R 50 50 1 1 I
88 | X ϕ2 25 -600 1000 200 R 50 50 1 1 I C
89 | X D7 26 -600 -1100 200 R 50 50 1 1 B
90 | X D6 27 -600 -1000 200 R 50 50 1 1 B
91 | X D5 28 -600 -900 200 R 50 50 1 1 B
92 | X D4 29 -600 -800 200 R 50 50 1 1 B
93 | X PA1 3 600 1000 200 L 50 50 1 1 B
94 | X D3 30 -600 -700 200 R 50 50 1 1 B
95 | X D2 31 -600 -600 200 R 50 50 1 1 B
96 | X D1 32 -600 -500 200 R 50 50 1 1 B
97 | X D0 33 -600 -400 200 R 50 50 1 1 B
98 | X ~RES 34 -600 1100 200 R 50 50 1 1 I L
99 | X RS3 35 -600 0 200 R 50 50 1 1 I
100 | X RS2 36 -600 100 200 R 50 50 1 1 I
101 | X RS1 37 -600 200 200 R 50 50 1 1 I
102 | X RS0 38 -600 300 200 R 50 50 1 1 I
103 | X CA2 39 600 100 200 L 50 50 1 1 B
104 | X PA2 4 600 900 200 L 50 50 1 1 B
105 | X CA1 40 600 200 200 L 50 50 1 1 I
106 | X PA3 5 600 800 200 L 50 50 1 1 B
107 | X PA4 6 600 700 200 L 50 50 1 1 B
108 | X PA5 7 600 600 200 L 50 50 1 1 B
109 | X PA6 8 600 500 200 L 50 50 1 1 B
110 | X PA7 9 600 400 200 L 50 50 1 1 B
111 | ENDDRAW
112 | ENDDEF
113 | #
114 | # 65xx_W65C51NxP
115 | #
116 | DEF 65xx_W65C51NxP U 0 40 Y Y 1 F N
117 | F0 "U" -400 1300 50 H V L CNN
118 | F1 "65xx_W65C51NxP" 0 0 50 V V C CIB
119 | F2 "" 0 150 50 H I C CNN
120 | F3 "" 0 150 50 H I C CNN
121 | ALIAS W65C51NxP W65C51NxPL
122 | $FPLIST
123 | DIP-28_W15.24mm*
124 | PLCC28
125 | $ENDFPLIST
126 | DRAW
127 | S -400 1250 400 -1250 0 1 0 f
128 | X VSS 1 0 -1450 200 U 50 50 1 1 W
129 | X TxD 10 600 300 200 L 50 50 1 1 O
130 | X ~DTR 11 600 -300 200 L 50 50 1 1 O V
131 | X RxD 12 600 200 200 L 50 50 1 1 I
132 | X RS0 13 -600 300 200 R 50 50 1 1 I
133 | X RS1 14 -600 200 200 R 50 50 1 1 I
134 | X VCC 15 0 1450 200 D 50 50 1 1 W
135 | X ~DCD 16 600 -600 200 L 50 50 1 1 I L
136 | X ~DSR 17 600 -400 200 L 50 50 1 1 I L
137 | X D0 18 -600 -400 200 R 50 50 1 1 B
138 | X D1 19 -600 -500 200 R 50 50 1 1 B
139 | X CS0 2 -600 600 200 R 50 50 1 1 I
140 | X D2 20 -600 -600 200 R 50 50 1 1 B
141 | X D3 21 -600 -700 200 R 50 50 1 1 B
142 | X D4 22 -600 -800 200 R 50 50 1 1 B
143 | X D5 23 -600 -900 200 R 50 50 1 1 B
144 | X D6 24 -600 -1000 200 R 50 50 1 1 B
145 | X D7 25 -600 -1100 200 R 50 50 1 1 B
146 | X ~IRQ 26 -600 800 200 R 50 50 1 1 C V
147 | X ϕ2 27 -600 1000 200 R 50 50 1 1 I C
148 | X R/~W 28 -600 -200 200 R 50 50 1 1 I
149 | X ~CS1 3 -600 500 200 R 50 50 1 1 I L
150 | X ~RES 4 -600 1100 200 R 50 50 1 1 I L
151 | X RxC 5 600 800 200 L 50 50 1 1 B C
152 | X XTLI 6 600 1100 200 L 50 50 1 1 I C
153 | X XTLO 7 600 1000 200 L 50 50 1 1 O
154 | X ~RTS 8 600 0 200 L 50 50 1 1 O V
155 | X ~CTS 9 600 -100 200 L 50 50 1 1 I L
156 | ENDDRAW
157 | ENDDEF
158 | #
159 | # 74xx_74LS00
160 | #
161 | DEF 74xx_74LS00 U 0 40 Y Y 5 L N
162 | F0 "U" 0 50 50 H V C CNN
163 | F1 "74xx_74LS00" 0 -50 50 H V C CNN
164 | F2 "" 0 0 50 H I C CNN
165 | F3 "" 0 0 50 H I C CNN
166 | ALIAS 74LS37 7400 74HCT00 74HC00
167 | $FPLIST
168 | DIP*W7.62mm*
169 | SO14*
170 | $ENDFPLIST
171 | DRAW
172 | A 0 0 150 -899 899 1 1 10 f 0 -150 0 150
173 | A 0 0 150 -899 899 2 1 10 f 0 -150 0 150
174 | A 0 0 150 -899 899 3 1 10 f 0 -150 0 150
175 | A 0 0 150 -899 899 4 1 10 f 0 -150 0 150
176 | A -360 0 258 354 -354 1 2 10 N -150 150 -150 -150
177 | A -47 -52 204 150 837 1 2 10 f 150 0 -24 150
178 | A -47 52 204 -150 -837 1 2 10 f 150 0 -24 -150
179 | A -360 0 258 354 -354 2 2 10 N -150 150 -150 -150
180 | A -47 -52 204 150 837 2 2 10 f 150 0 -24 150
181 | A -47 52 204 -150 -837 2 2 10 f 150 0 -24 -150
182 | A -360 0 258 354 -354 3 2 10 N -150 150 -150 -150
183 | A -47 -52 204 150 837 3 2 10 f 150 0 -24 150
184 | A -47 52 204 -150 -837 3 2 10 f 150 0 -24 -150
185 | A -360 0 258 354 -354 4 2 10 N -150 150 -150 -150
186 | A -47 -52 204 150 837 4 2 10 f 150 0 -24 150
187 | A -47 52 204 -150 -837 4 2 10 f 150 0 -24 -150
188 | S -200 300 200 -300 5 1 10 f
189 | P 4 1 1 10 0 150 -150 150 -150 -150 0 -150 f
190 | P 4 2 1 10 0 150 -150 150 -150 -150 0 -150 f
191 | P 4 3 1 10 0 150 -150 150 -150 -150 0 -150 f
192 | P 4 4 1 10 0 150 -150 150 -150 -150 0 -150 f
193 | P 2 1 2 10 -150 -150 -25 -150 f
194 | P 2 1 2 10 -150 150 -25 150 f
195 | P 12 1 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f
196 | P 2 2 2 10 -150 -150 -25 -150 f
197 | P 2 2 2 10 -150 150 -25 150 f
198 | P 12 2 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f
199 | P 2 3 2 10 -150 -150 -25 -150 f
200 | P 2 3 2 10 -150 150 -25 150 f
201 | P 12 3 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f
202 | P 2 4 2 10 -150 -150 -25 -150 f
203 | P 2 4 2 10 -150 150 -25 150 f
204 | P 12 4 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f
205 | X VCC 14 0 500 200 D 50 50 5 0 W
206 | X GND 7 0 -500 200 U 50 50 5 0 W
207 | X ~ 1 -300 100 150 R 50 50 1 1 I
208 | X ~ 2 -300 -100 150 R 50 50 1 1 I
209 | X ~ 3 300 0 150 L 50 50 1 1 O I
210 | X ~ 4 -300 100 150 R 50 50 2 1 I
211 | X ~ 5 -300 -100 150 R 50 50 2 1 I
212 | X ~ 6 300 0 150 L 50 50 2 1 O I
213 | X ~ 10 -300 -100 150 R 50 50 3 1 I
214 | X ~ 8 300 0 150 L 50 50 3 1 O I
215 | X ~ 9 -300 100 150 R 50 50 3 1 I
216 | X ~ 11 300 0 150 L 50 50 4 1 O I
217 | X ~ 12 -300 100 150 R 50 50 4 1 I
218 | X ~ 13 -300 -100 150 R 50 50 4 1 I
219 | X ~ 1 -300 100 170 R 50 50 1 2 I I
220 | X ~ 2 -300 -100 170 R 50 50 1 2 I I
221 | X ~ 3 300 0 150 L 50 50 1 2 O
222 | X ~ 4 -300 100 170 R 50 50 2 2 I I
223 | X ~ 5 -300 -100 170 R 50 50 2 2 I I
224 | X ~ 6 300 0 150 L 50 50 2 2 O
225 | X ~ 10 -300 -100 170 R 50 50 3 2 I I
226 | X ~ 8 300 0 150 L 50 50 3 2 O
227 | X ~ 9 -300 100 170 R 50 50 3 2 I I
228 | X ~ 11 300 0 150 L 50 50 4 2 O
229 | X ~ 12 -300 100 170 R 50 50 4 2 I I
230 | X ~ 13 -300 -100 170 R 50 50 4 2 I I
231 | ENDDRAW
232 | ENDDEF
233 | #
234 | # 74xx_74LS138
235 | #
236 | DEF 74xx_74LS138 U 0 40 Y Y 1 L N
237 | F0 "U" -300 450 50 H V C CNN
238 | F1 "74xx_74LS138" -300 -550 50 H V C CNN
239 | F2 "" 0 0 50 H I C CNN
240 | F3 "" 0 0 50 H I C CNN
241 | $FPLIST
242 | DIP?16*
243 | $ENDFPLIST
244 | DRAW
245 | S -300 400 300 -500 1 1 10 f
246 | X A0 1 -500 300 200 R 50 50 1 0 I
247 | X O5 10 500 -200 200 L 50 50 1 0 O V
248 | X O4 11 500 -100 200 L 50 50 1 0 O V
249 | X O3 12 500 0 200 L 50 50 1 0 O V
250 | X O2 13 500 100 200 L 50 50 1 0 O V
251 | X O1 14 500 200 200 L 50 50 1 0 O V
252 | X O0 15 500 300 200 L 50 50 1 0 O V
253 | X VCC 16 0 600 200 D 50 50 1 0 W
254 | X A1 2 -500 200 200 R 50 50 1 0 I
255 | X A2 3 -500 100 200 R 50 50 1 0 I
256 | X E1 4 -500 -400 200 R 50 50 1 0 I L
257 | X E2 5 -500 -300 200 R 50 50 1 0 I L
258 | X E3 6 -500 -200 200 R 50 50 1 0 I
259 | X O7 7 500 -400 200 L 50 50 1 0 O V
260 | X GND 8 0 -700 200 U 50 50 1 0 W
261 | X O6 9 500 -300 200 L 50 50 1 0 O V
262 | ENDDRAW
263 | ENDDEF
264 | #
265 | # Connector_Barrel_Jack
266 | #
267 | DEF Connector_Barrel_Jack J 0 40 Y Y 1 F N
268 | F0 "J" 0 210 50 H V C CNN
269 | F1 "Connector_Barrel_Jack" 0 -200 50 H V C CNN
270 | F2 "" 50 -40 50 H I C CNN
271 | F3 "" 50 -40 50 H I C CNN
272 | ALIAS Jack-DC
273 | $FPLIST
274 | BarrelJack*
275 | $ENDFPLIST
276 | DRAW
277 | A -130 100 25 901 -901 0 1 10 F -130 125 -130 75
278 | A -130 100 25 901 -901 0 1 10 N -130 125 -130 75
279 | S -200 150 200 -150 0 1 10 f
280 | S 145 125 -130 75 0 1 10 F
281 | P 2 0 1 10 200 100 150 100 N
282 | P 6 0 1 10 -150 -100 -100 -100 -50 -50 0 -100 100 -100 200 -100 N
283 | X ~ 1 300 100 100 L 50 50 1 1 P
284 | X ~ 2 300 -100 100 L 50 50 1 1 P
285 | ENDDRAW
286 | ENDDEF
287 | #
288 | # Connector_Conn_01x06_Female
289 | #
290 | DEF Connector_Conn_01x06_Female J 0 40 Y N 1 F N
291 | F0 "J" 0 300 50 H V C CNN
292 | F1 "Connector_Conn_01x06_Female" 0 -400 50 H V C CNN
293 | F2 "" 0 0 50 H I C CNN
294 | F3 "" 0 0 50 H I C CNN
295 | $FPLIST
296 | Connector*:*_1x??_*
297 | $ENDFPLIST
298 | DRAW
299 | A 0 -300 20 901 -901 1 1 6 N 0 -280 0 -320
300 | A 0 -200 20 901 -901 1 1 6 N 0 -180 0 -220
301 | A 0 -100 20 901 -901 1 1 6 N 0 -80 0 -120
302 | A 0 0 20 901 -901 1 1 6 N 0 20 0 -20
303 | A 0 100 20 901 -901 1 1 6 N 0 120 0 80
304 | A 0 200 20 901 -901 1 1 6 N 0 220 0 180
305 | P 2 1 1 6 -50 -300 -20 -300 N
306 | P 2 1 1 6 -50 -200 -20 -200 N
307 | P 2 1 1 6 -50 -100 -20 -100 N
308 | P 2 1 1 6 -50 0 -20 0 N
309 | P 2 1 1 6 -50 100 -20 100 N
310 | P 2 1 1 6 -50 200 -20 200 N
311 | X Pin_1 1 -200 200 150 R 50 50 1 1 P
312 | X Pin_2 2 -200 100 150 R 50 50 1 1 P
313 | X Pin_3 3 -200 0 150 R 50 50 1 1 P
314 | X Pin_4 4 -200 -100 150 R 50 50 1 1 P
315 | X Pin_5 5 -200 -200 150 R 50 50 1 1 P
316 | X Pin_6 6 -200 -300 150 R 50 50 1 1 P
317 | ENDDRAW
318 | ENDDEF
319 | #
320 | # Connector_Generic_Conn_02x02_Odd_Even
321 | #
322 | DEF Connector_Generic_Conn_02x02_Odd_Even J 0 40 Y N 1 F N
323 | F0 "J" 50 100 50 H V C CNN
324 | F1 "Connector_Generic_Conn_02x02_Odd_Even" 50 -200 50 H V C CNN
325 | F2 "" 0 0 50 H I C CNN
326 | F3 "" 0 0 50 H I C CNN
327 | $FPLIST
328 | Connector*:*_2x??_*
329 | $ENDFPLIST
330 | DRAW
331 | S -50 -95 0 -105 1 1 6 N
332 | S -50 5 0 -5 1 1 6 N
333 | S -50 50 150 -150 1 1 10 f
334 | S 150 -95 100 -105 1 1 6 N
335 | S 150 5 100 -5 1 1 6 N
336 | X Pin_1 1 -200 0 150 R 50 50 1 1 P
337 | X Pin_2 2 300 0 150 L 50 50 1 1 P
338 | X Pin_3 3 -200 -100 150 R 50 50 1 1 P
339 | X Pin_4 4 300 -100 150 L 50 50 1 1 P
340 | ENDDRAW
341 | ENDDEF
342 | #
343 | # Connector_Generic_Conn_02x06_Odd_Even
344 | #
345 | DEF Connector_Generic_Conn_02x06_Odd_Even J 0 40 Y N 1 F N
346 | F0 "J" 50 300 50 H V C CNN
347 | F1 "Connector_Generic_Conn_02x06_Odd_Even" 50 -400 50 H V C CNN
348 | F2 "" 0 0 50 H I C CNN
349 | F3 "" 0 0 50 H I C CNN
350 | $FPLIST
351 | Connector*:*_2x??_*
352 | $ENDFPLIST
353 | DRAW
354 | S -50 -295 0 -305 1 1 6 N
355 | S -50 -195 0 -205 1 1 6 N
356 | S -50 -95 0 -105 1 1 6 N
357 | S -50 5 0 -5 1 1 6 N
358 | S -50 105 0 95 1 1 6 N
359 | S -50 205 0 195 1 1 6 N
360 | S -50 250 150 -350 1 1 10 f
361 | S 150 -295 100 -305 1 1 6 N
362 | S 150 -195 100 -205 1 1 6 N
363 | S 150 -95 100 -105 1 1 6 N
364 | S 150 5 100 -5 1 1 6 N
365 | S 150 105 100 95 1 1 6 N
366 | S 150 205 100 195 1 1 6 N
367 | X Pin_1 1 -200 200 150 R 50 50 1 1 P
368 | X Pin_10 10 300 -200 150 L 50 50 1 1 P
369 | X Pin_11 11 -200 -300 150 R 50 50 1 1 P
370 | X Pin_12 12 300 -300 150 L 50 50 1 1 P
371 | X Pin_2 2 300 200 150 L 50 50 1 1 P
372 | X Pin_3 3 -200 100 150 R 50 50 1 1 P
373 | X Pin_4 4 300 100 150 L 50 50 1 1 P
374 | X Pin_5 5 -200 0 150 R 50 50 1 1 P
375 | X Pin_6 6 300 0 150 L 50 50 1 1 P
376 | X Pin_7 7 -200 -100 150 R 50 50 1 1 P
377 | X Pin_8 8 300 -100 150 L 50 50 1 1 P
378 | X Pin_9 9 -200 -200 150 R 50 50 1 1 P
379 | ENDDRAW
380 | ENDDEF
381 | #
382 | # Connector_Generic_Conn_02x20_Odd_Even
383 | #
384 | DEF Connector_Generic_Conn_02x20_Odd_Even J 0 40 Y N 1 F N
385 | F0 "J" 50 1000 50 H V C CNN
386 | F1 "Connector_Generic_Conn_02x20_Odd_Even" 50 -1100 50 H V C CNN
387 | F2 "" 0 0 50 H I C CNN
388 | F3 "" 0 0 50 H I C CNN
389 | $FPLIST
390 | Connector*:*_2x??_*
391 | $ENDFPLIST
392 | DRAW
393 | S -50 -995 0 -1005 1 1 6 N
394 | S -50 -895 0 -905 1 1 6 N
395 | S -50 -795 0 -805 1 1 6 N
396 | S -50 -695 0 -705 1 1 6 N
397 | S -50 -595 0 -605 1 1 6 N
398 | S -50 -495 0 -505 1 1 6 N
399 | S -50 -395 0 -405 1 1 6 N
400 | S -50 -295 0 -305 1 1 6 N
401 | S -50 -195 0 -205 1 1 6 N
402 | S -50 -95 0 -105 1 1 6 N
403 | S -50 5 0 -5 1 1 6 N
404 | S -50 105 0 95 1 1 6 N
405 | S -50 205 0 195 1 1 6 N
406 | S -50 305 0 295 1 1 6 N
407 | S -50 405 0 395 1 1 6 N
408 | S -50 505 0 495 1 1 6 N
409 | S -50 605 0 595 1 1 6 N
410 | S -50 705 0 695 1 1 6 N
411 | S -50 805 0 795 1 1 6 N
412 | S -50 905 0 895 1 1 6 N
413 | S -50 950 150 -1050 1 1 10 f
414 | S 150 -995 100 -1005 1 1 6 N
415 | S 150 -895 100 -905 1 1 6 N
416 | S 150 -795 100 -805 1 1 6 N
417 | S 150 -695 100 -705 1 1 6 N
418 | S 150 -595 100 -605 1 1 6 N
419 | S 150 -495 100 -505 1 1 6 N
420 | S 150 -395 100 -405 1 1 6 N
421 | S 150 -295 100 -305 1 1 6 N
422 | S 150 -195 100 -205 1 1 6 N
423 | S 150 -95 100 -105 1 1 6 N
424 | S 150 5 100 -5 1 1 6 N
425 | S 150 105 100 95 1 1 6 N
426 | S 150 205 100 195 1 1 6 N
427 | S 150 305 100 295 1 1 6 N
428 | S 150 405 100 395 1 1 6 N
429 | S 150 505 100 495 1 1 6 N
430 | S 150 605 100 595 1 1 6 N
431 | S 150 705 100 695 1 1 6 N
432 | S 150 805 100 795 1 1 6 N
433 | S 150 905 100 895 1 1 6 N
434 | X Pin_1 1 -200 900 150 R 50 50 1 1 P
435 | X Pin_10 10 300 500 150 L 50 50 1 1 P
436 | X Pin_11 11 -200 400 150 R 50 50 1 1 P
437 | X Pin_12 12 300 400 150 L 50 50 1 1 P
438 | X Pin_13 13 -200 300 150 R 50 50 1 1 P
439 | X Pin_14 14 300 300 150 L 50 50 1 1 P
440 | X Pin_15 15 -200 200 150 R 50 50 1 1 P
441 | X Pin_16 16 300 200 150 L 50 50 1 1 P
442 | X Pin_17 17 -200 100 150 R 50 50 1 1 P
443 | X Pin_18 18 300 100 150 L 50 50 1 1 P
444 | X Pin_19 19 -200 0 150 R 50 50 1 1 P
445 | X Pin_2 2 300 900 150 L 50 50 1 1 P
446 | X Pin_20 20 300 0 150 L 50 50 1 1 P
447 | X Pin_21 21 -200 -100 150 R 50 50 1 1 P
448 | X Pin_22 22 300 -100 150 L 50 50 1 1 P
449 | X Pin_23 23 -200 -200 150 R 50 50 1 1 P
450 | X Pin_24 24 300 -200 150 L 50 50 1 1 P
451 | X Pin_25 25 -200 -300 150 R 50 50 1 1 P
452 | X Pin_26 26 300 -300 150 L 50 50 1 1 P
453 | X Pin_27 27 -200 -400 150 R 50 50 1 1 P
454 | X Pin_28 28 300 -400 150 L 50 50 1 1 P
455 | X Pin_29 29 -200 -500 150 R 50 50 1 1 P
456 | X Pin_3 3 -200 800 150 R 50 50 1 1 P
457 | X Pin_30 30 300 -500 150 L 50 50 1 1 P
458 | X Pin_31 31 -200 -600 150 R 50 50 1 1 P
459 | X Pin_32 32 300 -600 150 L 50 50 1 1 P
460 | X Pin_33 33 -200 -700 150 R 50 50 1 1 P
461 | X Pin_34 34 300 -700 150 L 50 50 1 1 P
462 | X Pin_35 35 -200 -800 150 R 50 50 1 1 P
463 | X Pin_36 36 300 -800 150 L 50 50 1 1 P
464 | X Pin_37 37 -200 -900 150 R 50 50 1 1 P
465 | X Pin_38 38 300 -900 150 L 50 50 1 1 P
466 | X Pin_39 39 -200 -1000 150 R 50 50 1 1 P
467 | X Pin_4 4 300 800 150 L 50 50 1 1 P
468 | X Pin_40 40 300 -1000 150 L 50 50 1 1 P
469 | X Pin_5 5 -200 700 150 R 50 50 1 1 P
470 | X Pin_6 6 300 700 150 L 50 50 1 1 P
471 | X Pin_7 7 -200 600 150 R 50 50 1 1 P
472 | X Pin_8 8 300 600 150 L 50 50 1 1 P
473 | X Pin_9 9 -200 500 150 R 50 50 1 1 P
474 | ENDDRAW
475 | ENDDEF
476 | #
477 | # Device_C
478 | #
479 | DEF Device_C C 0 10 N Y 1 F N
480 | F0 "C" 25 100 50 H V L CNN
481 | F1 "Device_C" 25 -100 50 H V L CNN
482 | F2 "" 38 -150 50 H I C CNN
483 | F3 "" 0 0 50 H I C CNN
484 | $FPLIST
485 | C_*
486 | $ENDFPLIST
487 | DRAW
488 | P 2 0 1 20 -80 -30 80 -30 N
489 | P 2 0 1 20 -80 30 80 30 N
490 | X ~ 1 0 150 110 D 50 50 1 1 P
491 | X ~ 2 0 -150 110 U 50 50 1 1 P
492 | ENDDRAW
493 | ENDDEF
494 | #
495 | # Device_CP
496 | #
497 | DEF Device_CP C 0 10 N Y 1 F N
498 | F0 "C" 25 100 50 H V L CNN
499 | F1 "Device_CP" 25 -100 50 H V L CNN
500 | F2 "" 38 -150 50 H I C CNN
501 | F3 "" 0 0 50 H I C CNN
502 | $FPLIST
503 | CP_*
504 | $ENDFPLIST
505 | DRAW
506 | S -90 20 90 40 0 1 0 N
507 | S 90 -20 -90 -40 0 1 0 F
508 | P 2 0 1 0 -70 90 -30 90 N
509 | P 2 0 1 0 -50 110 -50 70 N
510 | X ~ 1 0 150 110 D 50 50 1 1 P
511 | X ~ 2 0 -150 110 U 50 50 1 1 P
512 | ENDDRAW
513 | ENDDEF
514 | #
515 | # Device_LED
516 | #
517 | DEF Device_LED D 0 40 N N 1 F N
518 | F0 "D" 0 100 50 H V C CNN
519 | F1 "Device_LED" 0 -100 50 H V C CNN
520 | F2 "" 0 0 50 H I C CNN
521 | F3 "" 0 0 50 H I C CNN
522 | $FPLIST
523 | LED*
524 | LED_SMD:*
525 | LED_THT:*
526 | $ENDFPLIST
527 | DRAW
528 | P 2 0 1 10 -50 -50 -50 50 N
529 | P 2 0 1 0 -50 0 50 0 N
530 | P 4 0 1 10 50 -50 50 50 -50 0 50 -50 N
531 | P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N
532 | P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N
533 | X K 1 -150 0 100 R 50 50 1 1 P
534 | X A 2 150 0 100 L 50 50 1 1 P
535 | ENDDRAW
536 | ENDDEF
537 | #
538 | # Device_R
539 | #
540 | DEF Device_R R 0 0 N Y 1 F N
541 | F0 "R" 80 0 50 V V C CNN
542 | F1 "Device_R" 0 0 50 V V C CNN
543 | F2 "" -70 0 50 V I C CNN
544 | F3 "" 0 0 50 H I C CNN
545 | $FPLIST
546 | R_*
547 | $ENDFPLIST
548 | DRAW
549 | S -40 -100 40 100 0 1 10 N
550 | X ~ 1 0 150 50 D 50 50 1 1 P
551 | X ~ 2 0 -150 50 U 50 50 1 1 P
552 | ENDDRAW
553 | ENDDEF
554 | #
555 | # Diode_1N5819
556 | #
557 | DEF Diode_1N5819 D 0 40 N N 1 F N
558 | F0 "D" 0 100 50 H V C CNN
559 | F1 "Diode_1N5819" 0 -100 50 H V C CNN
560 | F2 "Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal" 0 -175 50 H I C CNN
561 | F3 "" 0 0 50 H I C CNN
562 | ALIAS SB130 SB140 SB150 SB160 1N5817 1N5818 1N5819
563 | $FPLIST
564 | D*DO?41*
565 | $ENDFPLIST
566 | DRAW
567 | P 2 0 1 0 50 0 -50 0 N
568 | P 4 0 1 10 50 50 50 -50 -50 0 50 50 N
569 | P 6 0 1 10 -75 25 -75 50 -50 50 -50 -50 -25 -50 -25 -25 N
570 | X K 1 -150 0 100 R 50 50 1 1 P
571 | X A 2 150 0 100 L 50 50 1 1 P
572 | ENDDRAW
573 | ENDDEF
574 | #
575 | # Memory_EEPROM_28C256
576 | #
577 | DEF Memory_EEPROM_28C256 U 0 20 Y Y 1 F N
578 | F0 "U" -300 1050 50 H V C CNN
579 | F1 "Memory_EEPROM_28C256" 100 -1050 50 H V L CNN
580 | F2 "" 0 0 50 H I C CNN
581 | F3 "" 0 0 50 H I C CNN
582 | $FPLIST
583 | DIP*W15.24mm*
584 | SOIC*7.5x17.9mm*P1.27mm*
585 | $ENDFPLIST
586 | DRAW
587 | S -300 1000 300 -1000 1 1 10 f
588 | X A14 1 -400 -500 100 R 50 50 1 1 I
589 | X A0 10 -400 900 100 R 50 50 1 1 I
590 | X D0 11 400 900 100 L 50 50 1 1 T
591 | X D1 12 400 800 100 L 50 50 1 1 T
592 | X D2 13 400 700 100 L 50 50 1 1 T
593 | X GND 14 0 -1100 100 U 50 50 1 1 W
594 | X D3 15 400 600 100 L 50 50 1 1 T
595 | X D4 16 400 500 100 L 50 50 1 1 T
596 | X D5 17 400 400 100 L 50 50 1 1 T
597 | X D6 18 400 300 100 L 50 50 1 1 T
598 | X D7 19 400 200 100 L 50 50 1 1 T
599 | X A12 2 -400 -300 100 R 50 50 1 1 I
600 | X ~CS 20 -400 -900 100 R 50 50 1 1 I
601 | X A10 21 -400 -100 100 R 50 50 1 1 I
602 | X ~OE 22 -400 -800 100 R 50 50 1 1 I
603 | X A11 23 -400 -200 100 R 50 50 1 1 I
604 | X A9 24 -400 0 100 R 50 50 1 1 I
605 | X A8 25 -400 100 100 R 50 50 1 1 I
606 | X A13 26 -400 -400 100 R 50 50 1 1 I
607 | X ~WE 27 -400 -700 100 R 50 50 1 1 I
608 | X VCC 28 0 1100 100 D 50 50 1 1 W
609 | X A7 3 -400 200 100 R 50 50 1 1 I
610 | X A6 4 -400 300 100 R 50 50 1 1 I
611 | X A5 5 -400 400 100 R 50 50 1 1 I
612 | X A4 6 -400 500 100 R 50 50 1 1 I
613 | X A3 7 -400 600 100 R 50 50 1 1 I
614 | X A2 8 -400 700 100 R 50 50 1 1 I
615 | X A1 9 -400 800 100 R 50 50 1 1 I
616 | ENDDRAW
617 | ENDDEF
618 | #
619 | # Memory_RAM_HM62256BLP
620 | #
621 | DEF Memory_RAM_HM62256BLP U 0 20 Y Y 1 F N
622 | F0 "U" -400 825 50 H V L BNN
623 | F1 "Memory_RAM_HM62256BLP" 100 825 50 H V L BNN
624 | F2 "Package_DIP:DIP-28_W15.24mm" 0 -100 50 H I C CNN
625 | F3 "" 0 -100 50 H I C CNN
626 | ALIAS HM62256BLP CY62256-70PC
627 | $FPLIST
628 | DIP*W15.24mm*
629 | $ENDFPLIST
630 | DRAW
631 | S -400 800 400 -800 0 1 10 f
632 | X GND 14 0 -900 100 U 50 50 0 0 W
633 | X VCC 28 0 900 100 D 50 50 0 0 W
634 | X A14 1 -500 -700 100 R 50 50 1 1 I
635 | X A0 10 -500 700 100 R 50 50 1 1 I
636 | X Q0 11 500 700 100 L 50 50 1 1 T
637 | X Q1 12 500 600 100 L 50 50 1 1 T
638 | X Q2 13 500 500 100 L 50 50 1 1 T
639 | X Q3 15 500 400 100 L 50 50 1 1 T
640 | X Q4 16 500 300 100 L 50 50 1 1 T
641 | X Q5 17 500 200 100 L 50 50 1 1 T
642 | X Q6 18 500 100 100 L 50 50 1 1 T
643 | X Q7 19 500 0 100 L 50 50 1 1 T
644 | X A12 2 -500 -500 100 R 50 50 1 1 I
645 | X ~CS 20 500 -200 100 L 50 50 1 1 I
646 | X A10 21 -500 -300 100 R 50 50 1 1 I
647 | X ~OE 22 500 -400 100 L 50 50 1 1 I
648 | X A11 23 -500 -400 100 R 50 50 1 1 I
649 | X A9 24 -500 -200 100 R 50 50 1 1 I
650 | X A8 25 -500 -100 100 R 50 50 1 1 I
651 | X A13 26 -500 -600 100 R 50 50 1 1 I
652 | X ~WE 27 500 -500 100 L 50 50 1 1 I
653 | X A7 3 -500 0 100 R 50 50 1 1 I
654 | X A6 4 -500 100 100 R 50 50 1 1 I
655 | X A5 5 -500 200 100 R 50 50 1 1 I
656 | X A4 6 -500 300 100 R 50 50 1 1 I
657 | X A3 7 -500 400 100 R 50 50 1 1 I
658 | X A2 8 -500 500 100 R 50 50 1 1 I
659 | X A1 9 -500 600 100 R 50 50 1 1 I
660 | ENDDRAW
661 | ENDDEF
662 | #
663 | # Oscillator_CXO_DIP8
664 | #
665 | DEF Oscillator_CXO_DIP8 X 0 10 Y Y 1 F N
666 | F0 "X" -200 250 50 H V L CNN
667 | F1 "Oscillator_CXO_DIP8" 50 -250 50 H V L CNN
668 | F2 "Oscillator:Oscillator_DIP-8" 450 -350 50 H I C CNN
669 | F3 "" -100 0 50 H I C CNN
670 | ALIAS TFT660
671 | $FPLIST
672 | Oscillator*DIP*8*
673 | $ENDFPLIST
674 | DRAW
675 | S -200 200 200 -200 0 1 10 f
676 | P 9 0 1 0 -75 -25 -50 -25 -50 25 -25 25 -25 -25 0 -25 0 25 25 25 25 -25 N
677 | X EN 1 -300 0 100 R 50 50 1 1 I
678 | X GND 4 0 -300 100 U 50 50 1 1 W
679 | X OUT 5 300 0 100 L 50 50 1 1 O
680 | X Vcc 8 0 300 100 D 50 50 1 1 W
681 | ENDDRAW
682 | ENDDEF
683 | #
684 | # Regulator_Linear_L7805
685 | #
686 | DEF Regulator_Linear_L7805 U 0 10 Y Y 1 F N
687 | F0 "U" -150 125 50 H V C CNN
688 | F1 "Regulator_Linear_L7805" 0 125 50 H V L CNN
689 | F2 "" 25 -150 50 H I L CIN
690 | F3 "" 0 -50 50 H I C CNN
691 | ALIAS L7806 L7808 L7885 L7809 L7812 L7815 L7818 L7824
692 | $FPLIST
693 | TO?252*
694 | TO?263*
695 | TO?220*
696 | $ENDFPLIST
697 | DRAW
698 | S -200 75 200 -200 0 1 10 f
699 | X IN 1 -300 0 100 R 50 50 1 1 W
700 | X GND 2 0 -300 100 U 50 50 1 1 W
701 | X OUT 3 300 0 100 L 50 50 1 1 w
702 | ENDDRAW
703 | ENDDEF
704 | #
705 | # Switch_SW_Push
706 | #
707 | DEF Switch_SW_Push SW 0 40 N N 1 F N
708 | F0 "SW" 50 100 50 H V L CNN
709 | F1 "Switch_SW_Push" 0 -60 50 H V C CNN
710 | F2 "" 0 200 50 H I C CNN
711 | F3 "" 0 200 50 H I C CNN
712 | DRAW
713 | C -80 0 20 0 1 0 N
714 | C 80 0 20 0 1 0 N
715 | P 2 0 1 0 0 50 0 120 N
716 | P 2 0 1 0 100 50 -100 50 N
717 | X 1 1 -200 0 100 R 50 50 0 1 P
718 | X 2 2 200 0 100 L 50 50 0 1 P
719 | ENDDRAW
720 | ENDDEF
721 | #
722 | # Switch_SW_SPDT
723 | #
724 | DEF Switch_SW_SPDT SW 0 0 Y N 1 F N
725 | F0 "SW" 0 170 50 H V C CNN
726 | F1 "Switch_SW_SPDT" 0 -200 50 H V C CNN
727 | F2 "" 0 0 50 H I C CNN
728 | F3 "" 0 0 50 H I C CNN
729 | DRAW
730 | C -80 0 20 0 0 0 N
731 | C 80 -100 20 0 0 0 N
732 | C 80 100 20 0 1 0 N
733 | P 2 0 1 0 -60 10 65 90 N
734 | X A 1 200 100 100 L 50 50 1 1 P
735 | X B 2 -200 0 100 R 50 50 1 1 P
736 | X C 3 200 -100 100 L 50 50 1 1 P
737 | ENDDRAW
738 | ENDDEF
739 | #
740 | # power_+5V
741 | #
742 | DEF power_+5V #PWR 0 0 Y Y 1 F P
743 | F0 "#PWR" 0 -150 50 H I C CNN
744 | F1 "power_+5V" 0 140 50 H V C CNN
745 | F2 "" 0 0 50 H I C CNN
746 | F3 "" 0 0 50 H I C CNN
747 | DRAW
748 | P 2 0 1 0 -30 50 0 100 N
749 | P 2 0 1 0 0 0 0 100 N
750 | P 2 0 1 0 0 100 30 50 N
751 | X +5V 1 0 0 0 U 50 50 1 1 W N
752 | ENDDRAW
753 | ENDDEF
754 | #
755 | # power_GND
756 | #
757 | DEF power_GND #PWR 0 0 Y Y 1 F P
758 | F0 "#PWR" 0 -250 50 H I C CNN
759 | F1 "power_GND" 0 -150 50 H V C CNN
760 | F2 "" 0 0 50 H I C CNN
761 | F3 "" 0 0 50 H I C CNN
762 | DRAW
763 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
764 | X GND 1 0 0 0 D 50 50 1 1 W N
765 | ENDDRAW
766 | ENDDEF
767 | #
768 | # power_PWR_FLAG
769 | #
770 | DEF power_PWR_FLAG #FLG 0 0 N N 1 F P
771 | F0 "#FLG" 0 75 50 H I C CNN
772 | F1 "power_PWR_FLAG" 0 150 50 H V C CNN
773 | F2 "" 0 0 50 H I C CNN
774 | F3 "" 0 0 50 H I C CNN
775 | DRAW
776 | P 6 0 1 0 0 0 0 50 -40 75 0 100 40 75 0 50 N
777 | X pwr 1 0 0 0 U 50 50 0 0 w
778 | ENDDRAW
779 | ENDDEF
780 | #
781 | # project_DS1813-5+
782 | #
783 | DEF project_DS1813-5+ U 0 40 Y Y 3 F N
784 | F0 "U" 0 100 50 H V C CNN
785 | F1 "project_DS1813-5+" 0 0 50 H V C CNN
786 | F2 "Package_TO_SOT_THT:TO-92" 0 100 50 H I C CNN
787 | F3 "" 0 100 50 H I C CNN
788 | DRAW
789 | S -200 -300 200 -900 0 1 0 f
790 | X ~RST 1 300 -600 100 L 50 50 1 1 B
791 | X VCC 2 0 -200 100 D 50 50 1 1 W
792 | X GND 3 0 -1000 100 U 50 50 1 1 W
793 | X ~RST 1-UB 300 -600 100 R 50 50 2 1 B
794 | X GND ~-UB 0 -1000 100 R 50 50 2 1 U
795 | X VCC ~-UB 0 -200 100 R 50 50 2 1 W
796 | X ~RST 1-UC 300 -600 100 R 50 50 3 1 B
797 | X GND ~-UC 0 -1000 100 R 50 50 3 1 U
798 | X VCC ~-UC 0 -200 100 R 50 50 3 1 W
799 | ENDDRAW
800 | ENDDEF
801 | #
802 | #End Library
803 |
--------------------------------------------------------------------------------
/hardware/kicad/6502-computer.pro:
--------------------------------------------------------------------------------
1 | update=Sun 01 Aug 2021 16:33:51
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 | [schematic_editor]
16 | version=1
17 | PageLayoutDescrFile=
18 | PlotDirectoryName=
19 | SubpartIdSeparator=0
20 | SubpartFirstId=65
21 | NetFmtName=Pcbnew
22 | SpiceAjustPassiveValues=0
23 | LabSize=50
24 | ERC_TestSimilarLabels=1
25 | [pcbnew]
26 | version=1
27 | PageLayoutDescrFile=
28 | LastNetListRead=6502-computer.net
29 | CopperLayerCount=2
30 | BoardThickness=1.6
31 | AllowMicroVias=0
32 | AllowBlindVias=0
33 | RequireCourtyardDefinitions=0
34 | ProhibitOverlappingCourtyards=1
35 | MinTrackWidth=0.2
36 | MinViaDiameter=0.4
37 | MinViaDrill=0.3
38 | MinMicroViaDiameter=0.2
39 | MinMicroViaDrill=0.09999999999999999
40 | MinHoleToHole=0.25
41 | TrackWidth1=0.25
42 | TrackWidth2=1
43 | ViaDiameter1=0.8
44 | ViaDrill1=0.4
45 | dPairWidth1=0.2
46 | dPairGap1=0.25
47 | dPairViaGap1=0.25
48 | SilkLineWidth=0.153
49 | SilkTextSizeV=1
50 | SilkTextSizeH=1
51 | SilkTextSizeThickness=0.153
52 | SilkTextItalic=0
53 | SilkTextUpright=1
54 | CopperLineWidth=0.2
55 | CopperTextSizeV=1.5
56 | CopperTextSizeH=1.5
57 | CopperTextThickness=0.3
58 | CopperTextItalic=0
59 | CopperTextUpright=1
60 | EdgeCutLineWidth=0.05
61 | CourtyardLineWidth=0.05
62 | OthersLineWidth=0.15
63 | OthersTextSizeV=1
64 | OthersTextSizeH=1
65 | OthersTextSizeThickness=0.15
66 | OthersTextItalic=0
67 | OthersTextUpright=1
68 | SolderMaskClearance=0
69 | SolderMaskMinWidth=0
70 | SolderPasteClearance=0
71 | SolderPasteRatio=-0
72 | [pcbnew/Layer.F.Cu]
73 | Name=F.Cu
74 | Type=0
75 | Enabled=1
76 | [pcbnew/Layer.In1.Cu]
77 | Name=In1.Cu
78 | Type=0
79 | Enabled=0
80 | [pcbnew/Layer.In2.Cu]
81 | Name=In2.Cu
82 | Type=0
83 | Enabled=0
84 | [pcbnew/Layer.In3.Cu]
85 | Name=In3.Cu
86 | Type=0
87 | Enabled=0
88 | [pcbnew/Layer.In4.Cu]
89 | Name=In4.Cu
90 | Type=0
91 | Enabled=0
92 | [pcbnew/Layer.In5.Cu]
93 | Name=In5.Cu
94 | Type=0
95 | Enabled=0
96 | [pcbnew/Layer.In6.Cu]
97 | Name=In6.Cu
98 | Type=0
99 | Enabled=0
100 | [pcbnew/Layer.In7.Cu]
101 | Name=In7.Cu
102 | Type=0
103 | Enabled=0
104 | [pcbnew/Layer.In8.Cu]
105 | Name=In8.Cu
106 | Type=0
107 | Enabled=0
108 | [pcbnew/Layer.In9.Cu]
109 | Name=In9.Cu
110 | Type=0
111 | Enabled=0
112 | [pcbnew/Layer.In10.Cu]
113 | Name=In10.Cu
114 | Type=0
115 | Enabled=0
116 | [pcbnew/Layer.In11.Cu]
117 | Name=In11.Cu
118 | Type=0
119 | Enabled=0
120 | [pcbnew/Layer.In12.Cu]
121 | Name=In12.Cu
122 | Type=0
123 | Enabled=0
124 | [pcbnew/Layer.In13.Cu]
125 | Name=In13.Cu
126 | Type=0
127 | Enabled=0
128 | [pcbnew/Layer.In14.Cu]
129 | Name=In14.Cu
130 | Type=0
131 | Enabled=0
132 | [pcbnew/Layer.In15.Cu]
133 | Name=In15.Cu
134 | Type=0
135 | Enabled=0
136 | [pcbnew/Layer.In16.Cu]
137 | Name=In16.Cu
138 | Type=0
139 | Enabled=0
140 | [pcbnew/Layer.In17.Cu]
141 | Name=In17.Cu
142 | Type=0
143 | Enabled=0
144 | [pcbnew/Layer.In18.Cu]
145 | Name=In18.Cu
146 | Type=0
147 | Enabled=0
148 | [pcbnew/Layer.In19.Cu]
149 | Name=In19.Cu
150 | Type=0
151 | Enabled=0
152 | [pcbnew/Layer.In20.Cu]
153 | Name=In20.Cu
154 | Type=0
155 | Enabled=0
156 | [pcbnew/Layer.In21.Cu]
157 | Name=In21.Cu
158 | Type=0
159 | Enabled=0
160 | [pcbnew/Layer.In22.Cu]
161 | Name=In22.Cu
162 | Type=0
163 | Enabled=0
164 | [pcbnew/Layer.In23.Cu]
165 | Name=In23.Cu
166 | Type=0
167 | Enabled=0
168 | [pcbnew/Layer.In24.Cu]
169 | Name=In24.Cu
170 | Type=0
171 | Enabled=0
172 | [pcbnew/Layer.In25.Cu]
173 | Name=In25.Cu
174 | Type=0
175 | Enabled=0
176 | [pcbnew/Layer.In26.Cu]
177 | Name=In26.Cu
178 | Type=0
179 | Enabled=0
180 | [pcbnew/Layer.In27.Cu]
181 | Name=In27.Cu
182 | Type=0
183 | Enabled=0
184 | [pcbnew/Layer.In28.Cu]
185 | Name=In28.Cu
186 | Type=0
187 | Enabled=0
188 | [pcbnew/Layer.In29.Cu]
189 | Name=In29.Cu
190 | Type=0
191 | Enabled=0
192 | [pcbnew/Layer.In30.Cu]
193 | Name=In30.Cu
194 | Type=0
195 | Enabled=0
196 | [pcbnew/Layer.B.Cu]
197 | Name=B.Cu
198 | Type=0
199 | Enabled=1
200 | [pcbnew/Layer.B.Adhes]
201 | Enabled=1
202 | [pcbnew/Layer.F.Adhes]
203 | Enabled=1
204 | [pcbnew/Layer.B.Paste]
205 | Enabled=1
206 | [pcbnew/Layer.F.Paste]
207 | Enabled=1
208 | [pcbnew/Layer.B.SilkS]
209 | Enabled=1
210 | [pcbnew/Layer.F.SilkS]
211 | Enabled=1
212 | [pcbnew/Layer.B.Mask]
213 | Enabled=1
214 | [pcbnew/Layer.F.Mask]
215 | Enabled=1
216 | [pcbnew/Layer.Dwgs.User]
217 | Enabled=1
218 | [pcbnew/Layer.Cmts.User]
219 | Enabled=1
220 | [pcbnew/Layer.Eco1.User]
221 | Enabled=1
222 | [pcbnew/Layer.Eco2.User]
223 | Enabled=1
224 | [pcbnew/Layer.Edge.Cuts]
225 | Enabled=1
226 | [pcbnew/Layer.Margin]
227 | Enabled=1
228 | [pcbnew/Layer.B.CrtYd]
229 | Enabled=1
230 | [pcbnew/Layer.F.CrtYd]
231 | Enabled=1
232 | [pcbnew/Layer.B.Fab]
233 | Enabled=1
234 | [pcbnew/Layer.F.Fab]
235 | Enabled=1
236 | [pcbnew/Layer.Rescue]
237 | Enabled=0
238 | [pcbnew/Netclasses]
239 | [pcbnew/Netclasses/Default]
240 | Name=Default
241 | Clearance=0.2
242 | TrackWidth=0.25
243 | ViaDiameter=0.8
244 | ViaDrill=0.4
245 | uViaDiameter=0.3
246 | uViaDrill=0.1
247 | dPairWidth=0.2
248 | dPairGap=0.25
249 | dPairViaGap=0.25
250 |
--------------------------------------------------------------------------------
/hardware/kicad/65xx.dcm:
--------------------------------------------------------------------------------
1 | EESchema-DOCLIB Version 2.0
2 | #
3 | $CMP 6502
4 | D 6502 8-bit NMOS Microprocessor, 64K, DIP-40
5 | K 6502 CPU uP
6 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
7 | $ENDCMP
8 | #
9 | $CMP 6503
10 | D 6503 8-bit NMOS Microprocessor, 4K, DIP-28
11 | K 6502 6503 CPU uP
12 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
13 | $ENDCMP
14 | #
15 | $CMP 6504
16 | D 6504 8-bit NMOS Microprocessor, 8K, DIP-28
17 | K 6502 6504 CPU uP
18 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
19 | $ENDCMP
20 | #
21 | $CMP 6505
22 | D 6505 8-bit NMOS Microprocessor, 4K, DIP-28
23 | K 6502 6505 CPU uP
24 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
25 | $ENDCMP
26 | #
27 | $CMP 6506
28 | D 6506 8-bit NMOS Microprocessor, 4K, DIP-28
29 | K 6502 6506 CPU uP
30 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
31 | $ENDCMP
32 | #
33 | $CMP 6507
34 | D 6507 8-bit NMOS Microprocessor, 8K, DIP-28
35 | K 6502 6507 CPU uP
36 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
37 | $ENDCMP
38 | #
39 | $CMP 6508
40 | D 6508 8-bit NMOS Microprocessor, 64K, 8-bit I/O Port, 256 Byte RAM, DIP-40
41 | K 6502 6508 CPU uP
42 | F http://www.6502.org/documents/datasheets/mos/mos_6508_mpu.pdf
43 | $ENDCMP
44 | #
45 | $CMP 6509
46 | D 6509 8-bit NMOS Microprocessor, 16x64K, DIP-40
47 | K 6502 6509 CPU uP
48 | F http://www.6502.org/documents/datasheets/mos/mos_6509_mpu.pdf
49 | $ENDCMP
50 | #
51 | $CMP 6510
52 | D 6510 8-bit NMOS Microprocessor, 64K, 6-bit I/O Port, DIP-40
53 | K 6502 6510 CPU uP
54 | F http://www.6502.org/documents/datasheets/mos/mos_6510_mpu.pdf
55 | $ENDCMP
56 | #
57 | $CMP 6510-1
58 | D 6510-1 8-bit NMOS/HMOS Microprocessor, 64K, 8-bit I/O Port, 2ϕ Clock, DIP-40
59 | K 6502 6510-1 CPU uP
60 | F http://www.6502.org/documents/datasheets/mos/mos_6510_mpu.pdf
61 | $ENDCMP
62 | #
63 | $CMP 6510-2
64 | D 6510-2 8-bit NMOS/HMOS Microprocessor, 64K, 8-bit I/O Port, DIP-40
65 | K 6502 6510-2 CPU uP
66 | F http://www.6502.org/documents/datasheets/mos/mos_6510_mpu.pdf
67 | $ENDCMP
68 | #
69 | $CMP 6510T
70 | D 6510T 8-bit NMOS/HMOS Microprocessor, 64K, 8-bit I/O Port, DIP-40
71 | K 6502 6510T CPU uP
72 | F http://www.6502.org/documents/datasheets/mos/mos_6510_mpu.pdf
73 | $ENDCMP
74 | #
75 | $CMP 6512
76 | D 6512 8-bit NMOS Microprocessor, 64K, 2ϕ Clock, DIP-40
77 | K 6502 6512 CPU uP
78 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
79 | $ENDCMP
80 | #
81 | $CMP 6513
82 | D 6513 8-bit NMOS Microprocessor, 4K, 2ϕ Clock, DIP-28
83 | K 6502 6513 CPU uP
84 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
85 | $ENDCMP
86 | #
87 | $CMP 6514
88 | D 6514 8-bit NMOS Microprocessor, 8K, 2ϕ Clock, DIP-28
89 | K 6502 6514 CPU uP
90 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
91 | $ENDCMP
92 | #
93 | $CMP 6515
94 | D 6515 8-bit NMOS Microprocessor, 4K, 2ϕ Clock, DIP-28
95 | K 6502 6515 CPU uP
96 | F http://www.6502.org/documents/datasheets/mos/mos_6500_mpu_mar_1980.pdf
97 | $ENDCMP
98 | #
99 | $CMP 6520
100 | D 6520 NMOS Peripheral Interface Adapter (PIA), 20-pin I/O, DIP-40
101 | K 6502 6520 PIA I/O
102 | F http://www.6502.org/documents/datasheets/mos/mos_6520.pdf
103 | $ENDCMP
104 | #
105 | $CMP 6522
106 | D 6522 NMOS Versatile Interface Adapter (VIA), 20-pin I/O, 2 Timer/Counters, DIP-40
107 | K 6502 6522 VIA I/O
108 | F http://www.6502.org/documents/datasheets/mos/mos_6522_preliminary_nov_1977.pdf
109 | $ENDCMP
110 | #
111 | $CMP 6523
112 | D 6523 NMOS Tri-Port Interface (TPI), 24-pin I/O, DIP-40
113 | K 6502 6523 TPI I/O
114 | F http://www.6502.org/documents/datasheets/mos/mos_6523_tpi_preliminary_nov_1980.pdf
115 | $ENDCMP
116 | #
117 | $CMP 6525
118 | D 6525 NMOS Tri-Port Interface (TPI), 24-pin I/O, DIP-40
119 | K 6502 6525 TPI I/O
120 | F http://www.6502.org/documents/datasheets/mos/mos_6525_tpi_preliminary.pdf
121 | $ENDCMP
122 | #
123 | $CMP 6526
124 | D 6526 NMOS Complex Interface Adapter (CIA), 20-pin I/O, 2 Timer/Counters, RTC, DIP-40
125 | K 6502 6526 CIA I/O
126 | F http://www.6502.org/documents/datasheets/mos/mos_6526_cia_preliminary_nov_1981.pdf
127 | $ENDCMP
128 | #
129 | $CMP 6529
130 | D 6529 NMOS Single Port Interface (SPI), 8-pin I/O, DIP-20
131 | K 6502 6529 SPI I/O
132 | F http://www.6502.org/documents/datasheets/mos/mos_6529_spi.pdf
133 | $ENDCMP
134 | #
135 | $CMP 6532
136 | D 6532 NMOS Memory, I/O and Timer Array (RIOT), 16-pin I/O, 1 Timer/Counter, 128-byte SRAM, DIP-40
137 | K 6502 6532 RIOT I/O RAM
138 | F http://www.6502.org/documents/datasheets/mos/mos_6532_riot.pdf
139 | $ENDCMP
140 | #
141 | $CMP 6545
142 | D 6545 NMOS CRT Controller (CRTC), DIP-40
143 | K 6502 6545 CRTC Video
144 | F http://www.6502.org/documents/datasheets/mos/mos_6545-1_crtc.pdf
145 | $ENDCMP
146 | #
147 | $CMP 6551
148 | D 6551 NMOS Asynchronous Communication Interface Adapter (ACIA), Serial UART, DIP-28
149 | K 6502 6551 ACIA UART
150 | F http://www.6502.org/documents/datasheets/mos/mos_6551_acia.pdf
151 | $ENDCMP
152 | #
153 | $CMP 6581
154 | D 6581 NMOS Sound Interface Device (SID), 3-Voice Sound Synthesizer, DIP-28
155 | K 6502 6581 SID Sound
156 | F http://www.6502.org/documents/datasheets/mos/mos_6581_sid.pdf
157 | $ENDCMP
158 | #
159 | $CMP 6582
160 | D 6582 NMOS Sound Interface Device (SID), 3-Voice Sound Synthesizer, DIP-28
161 | K 6502 6582 SID Sound
162 | F http://www.6502.org/documents/datasheets/mos/mos_6582_sid.pdf
163 | $ENDCMP
164 | #
165 | $CMP 65CE02
166 | D 65CE02 8-bit CMOS Microprocessor, 64K, DIP-40
167 | K 6502 65CE02 CPU uP
168 | F http://www.6502.org/documents/datasheets/mos/mos_65ce02_mpu.pdf
169 | $ENDCMP
170 | #
171 | $CMP 8500
172 | D 8500 8-bit HMOS Microprocessor, 64K, 6-bit I/O Port, DIP-40
173 | K 6502 8500 CPU uP
174 | $ENDCMP
175 | #
176 | $CMP 8502
177 | D 8502 8-bit HMOS Microprocessor, 64K, 7-bit I/O Port, DIP-40
178 | K 6502 8502 CPU uP
179 | $ENDCMP
180 | #
181 | $CMP 8580
182 | D 8580 HMOS Sound Interface Device (SID), 3-Voice Sound Synthesizer, DIP-28
183 | K 6502 8580 SID Sound
184 | $ENDCMP
185 | #
186 | $CMP W65C02SxP
187 | D W65C02S 8-bit CMOS General Purpose Microprocessor, DIP-40
188 | K 6502 CPU uP
189 | F http://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf
190 | $ENDCMP
191 | #
192 | $CMP W65C02SxPL
193 | D W65C02S 8-bit CMOS General Purpose Microprocessor, PLCC-44
194 | K 6502 CPU uP
195 | F http://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf
196 | $ENDCMP
197 | #
198 | $CMP W65C02SxQ
199 | D W65C02S 8-bit CMOS General Purpose Microprocessor, PQFP-44
200 | K 6502 CPU uP
201 | F http://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf
202 | $ENDCMP
203 | #
204 | $CMP W65C21NxP
205 | D W65C21N CMOS Peripheral Interface Adapter (PIA), 20-pin I/O, NMOS-Compatible, DIP-40
206 | K 6502 6521 PIA I/O
207 | F http://www.westerndesigncenter.com/wdc/documentation/w65c21.pdf
208 | $ENDCMP
209 | #
210 | $CMP W65C21NxPL
211 | D W65C21N CMOS Peripheral Interface Adapter (PIA), 20-pin I/O, NMOS-Compatible, PLCC-44
212 | K 6502 6521 PIA I/O
213 | F http://www.westerndesigncenter.com/wdc/documentation/w65c21.pdf
214 | $ENDCMP
215 | #
216 | $CMP W65C21SxP
217 | D W65C21S CMOS Peripheral Interface Adapter (PIA), 20-pin I/O, DIP-40
218 | K 6502 6521 PIA I/O
219 | F http://www.westerndesigncenter.com/wdc/documentation/w65c21.pdf
220 | $ENDCMP
221 | #
222 | $CMP W65C21SxPL
223 | D W65C21S CMOS Peripheral Interface Adapter (PIA), 20-pin I/O, PLCC-44
224 | K 6502 6521 PIA I/O
225 | F http://www.westerndesigncenter.com/wdc/documentation/w65c21.pdf
226 | $ENDCMP
227 | #
228 | $CMP W65C22NxP
229 | D W65C22N CMOS Versatile Interface Adapter (VIA), 20-pin I/O, 2 Timer/Counters, NMOS-Compatible, DIP-40
230 | K 6502 6522 VIA I/O
231 | F http://www.westerndesigncenter.com/wdc/documentation/w65c22.pdf
232 | $ENDCMP
233 | #
234 | $CMP W65C22NxPL
235 | D W65C22N CMOS Versatile Interface Adapter (VIA), 20-pin I/O, 2 Timer/Counters, NMOS-Compatible, PLCC-44
236 | K 6502 6522 VIA I/O
237 | F http://www.westerndesigncenter.com/wdc/documentation/w65c22.pdf
238 | $ENDCMP
239 | #
240 | $CMP W65C22SxP
241 | D W65C22S CMOS Versatile Interface Adapter (VIA), 20-pin I/O, 2 Timer/Counters, DIP-40
242 | K 6502 6522 VIA I/O
243 | F http://www.westerndesigncenter.com/wdc/documentation/w65c22.pdf
244 | $ENDCMP
245 | #
246 | $CMP W65C22SxPL
247 | D W65C22S CMOS Versatile Interface Adapter (VIA), 20-pin I/O, 2 Timer/Counters, PLCC-44
248 | K 6502 6522 VIA I/O
249 | F http://www.westerndesigncenter.com/wdc/documentation/w65c22.pdf
250 | $ENDCMP
251 | #
252 | $CMP W65C22SxQ
253 | D W65C22S CMOS Versatile Interface Adapter (VIA), 20-pin I/O, 2 Timer/Counters, PQFP-44
254 | K 6502 6522 VIA I/O
255 | F http://www.westerndesigncenter.com/wdc/documentation/w65c22.pdf
256 | $ENDCMP
257 | #
258 | $CMP W65C51NxP
259 | D W65C51N CMOS Asynchronous Communication Interface Adapter (ACIA), Serial UART, DIP-28
260 | K 6502 6551 ACIA UART
261 | F http://www.westerndesigncenter.com/wdc/documentation/w65c51n.pdf
262 | $ENDCMP
263 | #
264 | $CMP W65C51NxPL
265 | D W65C51N CMOS Asynchronous Communication Interface Adapter (ACIA), Serial UART, PLCC-28
266 | K 6502 6551 ACIA UART
267 | F http://www.6502.org/documents/datasheets/mos/mos_6551_acia.pdf
268 | $ENDCMP
269 | #
270 | $CMP W65C51NxQ
271 | D W65C51N CMOS Asynchronous Communication Interface Adapter (ACIA), Serial UART, PQFP-32
272 | K 6502 6551 ACIA UART
273 | F http://www.westerndesigncenter.com/wdc/documentation/w65c51n.pdf
274 | $ENDCMP
275 | #
276 | $CMP W65C816SxP
277 | D W65C816S 8/16-bit CMOS General Purpose Microprocessor, DIP-40
278 | K 6502 65816 CPU uP
279 | F http://www.westerndesigncenter.com/wdc/documentation/w65c816s.pdf
280 | $ENDCMP
281 | #
282 | $CMP W65C816SxPL
283 | D W65C816S 8/16-bit CMOS General Purpose Microprocessor, PLCC-44
284 | K 6502 65816 CPU uP
285 | F http://www.westerndesigncenter.com/wdc/documentation/w65c816s.pdf
286 | $ENDCMP
287 | #
288 | $CMP W65C816SxQ
289 | D W65C02S 8/16-bit CMOS General Purpose Microprocessor, PQFP-44
290 | K 6502 65816 CPU uP
291 | F http://www.westerndesigncenter.com/wdc/documentation/w65c816s.pdf
292 | $ENDCMP
293 | #
294 | #End Doc Library
295 |
--------------------------------------------------------------------------------
/hardware/kicad/fp-lib-table:
--------------------------------------------------------------------------------
1 | (fp_lib_table
2 | (lib (name project)(type KiCad)(uri ${KIPRJMOD}/project.pretty)(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/hardware/kicad/project.dcm:
--------------------------------------------------------------------------------
1 | EESchema-DOCLIB Version 2.0
2 | #
3 | $CMP DS1813-5+
4 | F https://www.mouser.com/datasheet/2/256/maxim%20integrated%20products_ds1813-1178753.pdf
5 | $ENDCMP
6 | #
7 | #End Doc Library
8 |
--------------------------------------------------------------------------------
/hardware/kicad/project.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.4
2 | #encoding utf-8
3 | #
4 | # DS1813-5+
5 | #
6 | DEF DS1813-5+ U 0 40 Y Y 3 F N
7 | F0 "U" 0 100 50 H V C CNN
8 | F1 "DS1813-5+" 0 0 50 H V C CNN
9 | F2 "Package_TO_SOT_THT:TO-92" 0 100 50 H I C CNN
10 | F3 "" 0 100 50 H I C CNN
11 | DRAW
12 | S -200 -300 200 -900 0 1 0 f
13 | X ~RST 1 300 -600 100 L 50 50 1 1 B
14 | X VCC 2 0 -200 100 D 50 50 1 1 W
15 | X GND 3 0 -1000 100 U 50 50 1 1 W
16 | X ~RST 1-UB 300 -600 100 R 50 50 2 1 B
17 | X GND ~-UB 0 -1000 100 R 50 50 2 1 U
18 | X VCC ~-UB 0 -200 100 R 50 50 2 1 W
19 | X ~RST 1-UC 300 -600 100 R 50 50 3 1 B
20 | X GND ~-UC 0 -1000 100 R 50 50 3 1 U
21 | X VCC ~-UC 0 -200 100 R 50 50 3 1 W
22 | ENDDRAW
23 | ENDDEF
24 | #
25 | #End Library
26 |
--------------------------------------------------------------------------------
/hardware/kicad/project.pretty/SW_THT_DPDT.kicad_mod:
--------------------------------------------------------------------------------
1 | (module SW_THT_DPDT (layer F.Cu) (tedit 60FD49AB)
2 | (descr "E-Switch sub miniature slide switch, EG series, DPDT, http://spec_sheets.e-switch.com/specs/P040047.pdf")
3 | (tags "switch DPDT")
4 | (fp_text reference REF** (at 0 -2.92) (layer F.SilkS)
5 | (effects (font (size 1 1) (thickness 0.15)))
6 | )
7 | (fp_text value SW_THT_DPDT (at 0 3.8) (layer F.Fab)
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | )
10 | (fp_line (start -6 2.2) (end -6 -2.2) (layer F.SilkS) (width 0.12))
11 | (fp_line (start 6 2.2) (end -6 2.2) (layer F.SilkS) (width 0.12))
12 | (fp_line (start 6 -2.2) (end 6 2.2) (layer F.SilkS) (width 0.12))
13 | (fp_line (start -6 -2.2) (end 6 -2.2) (layer F.SilkS) (width 0.12))
14 | (fp_line (start -5.8 2) (end 5.8 2) (layer F.Fab) (width 0.1))
15 | (fp_line (start 5.8 -2) (end 5.8 2) (layer F.Fab) (width 0.1))
16 | (fp_line (start -6.2 -2.4) (end -6.2 2.4) (layer F.CrtYd) (width 0.05))
17 | (fp_line (start 6.2 2.4) (end -6.2 2.4) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start -5.8 -2) (end 5.8 -2) (layer F.Fab) (width 0.1))
19 | (fp_line (start -5.8 -2) (end -5.8 2) (layer F.Fab) (width 0.1))
20 | (fp_line (start 6.2 -2.4) (end -6.2 -2.4) (layer F.CrtYd) (width 0.05))
21 | (fp_line (start 6.2 -2.4) (end 6.2 2.4) (layer F.CrtYd) (width 0.05))
22 | (fp_text user %R (at 0 -2.92) (layer F.Fab)
23 | (effects (font (size 1 1) (thickness 0.15)))
24 | )
25 | (fp_line (start -6.4 -2.6) (end -6.4 -1.3) (layer F.SilkS) (width 0.12))
26 | (fp_line (start -6.4 -2.6) (end -5.1 -2.6) (layer F.SilkS) (width 0.12))
27 | (pad 1 thru_hole rect (at -2.5 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask))
28 | (pad 2 thru_hole circle (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask))
29 | (pad 3 thru_hole circle (at 2.5 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask))
30 | (model ${KISYS3DMOD}/Button_Switch_THT.3dshapes/SW_E-Switch_EG1271_DPDT.wrl
31 | (at (xyz 0 0 0))
32 | (scale (xyz 1 1 1))
33 | (rotate (xyz 0 0 0))
34 | )
35 | )
36 |
--------------------------------------------------------------------------------
/hardware/kicad/sym-lib-table:
--------------------------------------------------------------------------------
1 | (sym_lib_table
2 | (lib (name 65xx)(type Legacy)(uri ${KIPRJMOD}/65xx.lib)(options "")(descr ""))
3 | (lib (name project)(type Legacy)(uri ${KIPRJMOD}/project.lib)(options "")(descr ""))
4 | )
5 |
--------------------------------------------------------------------------------
/licenses/LGPL.txt:
--------------------------------------------------------------------------------
1 | GNU LESSER GENERAL PUBLIC LICENSE
2 | Version 2.1, February 1999
3 |
4 | Copyright (C) 1991, 1999 Free Software Foundation, Inc.
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | [This is the first released version of the Lesser GPL. It also counts
10 | as the successor of the GNU Library Public License, version 2, hence
11 | the version number 2.1.]
12 |
13 | Preamble
14 |
15 | The licenses for most software are designed to take away your
16 | freedom to share and change it. By contrast, the GNU General Public
17 | Licenses are intended to guarantee your freedom to share and change
18 | free software--to make sure the software is free for all its users.
19 |
20 | This license, the Lesser General Public License, applies to some
21 | specially designated software packages--typically libraries--of the
22 | Free Software Foundation and other authors who decide to use it. You
23 | can use it too, but we suggest you first think carefully about whether
24 | this license or the ordinary General Public License is the better
25 | strategy to use in any particular case, based on the explanations below.
26 |
27 | When we speak of free software, we are referring to freedom of use,
28 | not price. Our General Public Licenses are designed to make sure that
29 | you have the freedom to distribute copies of free software (and charge
30 | for this service if you wish); that you receive source code or can get
31 | it if you want it; that you can change the software and use pieces of
32 | it in new free programs; and that you are informed that you can do
33 | these things.
34 |
35 | To protect your rights, we need to make restrictions that forbid
36 | distributors to deny you these rights or to ask you to surrender these
37 | rights. These restrictions translate to certain responsibilities for
38 | you if you distribute copies of the library or if you modify it.
39 |
40 | For example, if you distribute copies of the library, whether gratis
41 | or for a fee, you must give the recipients all the rights that we gave
42 | you. You must make sure that they, too, receive or can get the source
43 | code. If you link other code with the library, you must provide
44 | complete object files to the recipients, so that they can relink them
45 | with the library after making changes to the library and recompiling
46 | it. And you must show them these terms so they know their rights.
47 |
48 | We protect your rights with a two-step method: (1) we copyright the
49 | library, and (2) we offer you this license, which gives you legal
50 | permission to copy, distribute and/or modify the library.
51 |
52 | To protect each distributor, we want to make it very clear that
53 | there is no warranty for the free library. Also, if the library is
54 | modified by someone else and passed on, the recipients should know
55 | that what they have is not the original version, so that the original
56 | author's reputation will not be affected by problems that might be
57 | introduced by others.
58 |
59 | Finally, software patents pose a constant threat to the existence of
60 | any free program. We wish to make sure that a company cannot
61 | effectively restrict the users of a free program by obtaining a
62 | restrictive license from a patent holder. Therefore, we insist that
63 | any patent license obtained for a version of the library must be
64 | consistent with the full freedom of use specified in this license.
65 |
66 | Most GNU software, including some libraries, is covered by the
67 | ordinary GNU General Public License. This license, the GNU Lesser
68 | General Public License, applies to certain designated libraries, and
69 | is quite different from the ordinary General Public License. We use
70 | this license for certain libraries in order to permit linking those
71 | libraries into non-free programs.
72 |
73 | When a program is linked with a library, whether statically or using
74 | a shared library, the combination of the two is legally speaking a
75 | combined work, a derivative of the original library. The ordinary
76 | General Public License therefore permits such linking only if the
77 | entire combination fits its criteria of freedom. The Lesser General
78 | Public License permits more lax criteria for linking other code with
79 | the library.
80 |
81 | We call this license the "Lesser" General Public License because it
82 | does Less to protect the user's freedom than the ordinary General
83 | Public License. It also provides other free software developers Less
84 | of an advantage over competing non-free programs. These disadvantages
85 | are the reason we use the ordinary General Public License for many
86 | libraries. However, the Lesser license provides advantages in certain
87 | special circumstances.
88 |
89 | For example, on rare occasions, there may be a special need to
90 | encourage the widest possible use of a certain library, so that it becomes
91 | a de-facto standard. To achieve this, non-free programs must be
92 | allowed to use the library. A more frequent case is that a free
93 | library does the same job as widely used non-free libraries. In this
94 | case, there is little to gain by limiting the free library to free
95 | software only, so we use the Lesser General Public License.
96 |
97 | In other cases, permission to use a particular library in non-free
98 | programs enables a greater number of people to use a large body of
99 | free software. For example, permission to use the GNU C Library in
100 | non-free programs enables many more people to use the whole GNU
101 | operating system, as well as its variant, the GNU/Linux operating
102 | system.
103 |
104 | Although the Lesser General Public License is Less protective of the
105 | users' freedom, it does ensure that the user of a program that is
106 | linked with the Library has the freedom and the wherewithal to run
107 | that program using a modified version of the Library.
108 |
109 | The precise terms and conditions for copying, distribution and
110 | modification follow. Pay close attention to the difference between a
111 | "work based on the library" and a "work that uses the library". The
112 | former contains code derived from the library, whereas the latter must
113 | be combined with the library in order to run.
114 |
115 | GNU LESSER GENERAL PUBLIC LICENSE
116 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
117 |
118 | 0. This License Agreement applies to any software library or other
119 | program which contains a notice placed by the copyright holder or
120 | other authorized party saying it may be distributed under the terms of
121 | this Lesser General Public License (also called "this License").
122 | Each licensee is addressed as "you".
123 |
124 | A "library" means a collection of software functions and/or data
125 | prepared so as to be conveniently linked with application programs
126 | (which use some of those functions and data) to form executables.
127 |
128 | The "Library", below, refers to any such software library or work
129 | which has been distributed under these terms. A "work based on the
130 | Library" means either the Library or any derivative work under
131 | copyright law: that is to say, a work containing the Library or a
132 | portion of it, either verbatim or with modifications and/or translated
133 | straightforwardly into another language. (Hereinafter, translation is
134 | included without limitation in the term "modification".)
135 |
136 | "Source code" for a work means the preferred form of the work for
137 | making modifications to it. For a library, complete source code means
138 | all the source code for all modules it contains, plus any associated
139 | interface definition files, plus the scripts used to control compilation
140 | and installation of the library.
141 |
142 | Activities other than copying, distribution and modification are not
143 | covered by this License; they are outside its scope. The act of
144 | running a program using the Library is not restricted, and output from
145 | such a program is covered only if its contents constitute a work based
146 | on the Library (independent of the use of the Library in a tool for
147 | writing it). Whether that is true depends on what the Library does
148 | and what the program that uses the Library does.
149 |
150 | 1. You may copy and distribute verbatim copies of the Library's
151 | complete source code as you receive it, in any medium, provided that
152 | you conspicuously and appropriately publish on each copy an
153 | appropriate copyright notice and disclaimer of warranty; keep intact
154 | all the notices that refer to this License and to the absence of any
155 | warranty; and distribute a copy of this License along with the
156 | Library.
157 |
158 | You may charge a fee for the physical act of transferring a copy,
159 | and you may at your option offer warranty protection in exchange for a
160 | fee.
161 |
162 | 2. You may modify your copy or copies of the Library or any portion
163 | of it, thus forming a work based on the Library, and copy and
164 | distribute such modifications or work under the terms of Section 1
165 | above, provided that you also meet all of these conditions:
166 |
167 | a) The modified work must itself be a software library.
168 |
169 | b) You must cause the files modified to carry prominent notices
170 | stating that you changed the files and the date of any change.
171 |
172 | c) You must cause the whole of the work to be licensed at no
173 | charge to all third parties under the terms of this License.
174 |
175 | d) If a facility in the modified Library refers to a function or a
176 | table of data to be supplied by an application program that uses
177 | the facility, other than as an argument passed when the facility
178 | is invoked, then you must make a good faith effort to ensure that,
179 | in the event an application does not supply such function or
180 | table, the facility still operates, and performs whatever part of
181 | its purpose remains meaningful.
182 |
183 | (For example, a function in a library to compute square roots has
184 | a purpose that is entirely well-defined independent of the
185 | application. Therefore, Subsection 2d requires that any
186 | application-supplied function or table used by this function must
187 | be optional: if the application does not supply it, the square
188 | root function must still compute square roots.)
189 |
190 | These requirements apply to the modified work as a whole. If
191 | identifiable sections of that work are not derived from the Library,
192 | and can be reasonably considered independent and separate works in
193 | themselves, then this License, and its terms, do not apply to those
194 | sections when you distribute them as separate works. But when you
195 | distribute the same sections as part of a whole which is a work based
196 | on the Library, the distribution of the whole must be on the terms of
197 | this License, whose permissions for other licensees extend to the
198 | entire whole, and thus to each and every part regardless of who wrote
199 | it.
200 |
201 | Thus, it is not the intent of this section to claim rights or contest
202 | your rights to work written entirely by you; rather, the intent is to
203 | exercise the right to control the distribution of derivative or
204 | collective works based on the Library.
205 |
206 | In addition, mere aggregation of another work not based on the Library
207 | with the Library (or with a work based on the Library) on a volume of
208 | a storage or distribution medium does not bring the other work under
209 | the scope of this License.
210 |
211 | 3. You may opt to apply the terms of the ordinary GNU General Public
212 | License instead of this License to a given copy of the Library. To do
213 | this, you must alter all the notices that refer to this License, so
214 | that they refer to the ordinary GNU General Public License, version 2,
215 | instead of to this License. (If a newer version than version 2 of the
216 | ordinary GNU General Public License has appeared, then you can specify
217 | that version instead if you wish.) Do not make any other change in
218 | these notices.
219 |
220 | Once this change is made in a given copy, it is irreversible for
221 | that copy, so the ordinary GNU General Public License applies to all
222 | subsequent copies and derivative works made from that copy.
223 |
224 | This option is useful when you wish to copy part of the code of
225 | the Library into a program that is not a library.
226 |
227 | 4. You may copy and distribute the Library (or a portion or
228 | derivative of it, under Section 2) in object code or executable form
229 | under the terms of Sections 1 and 2 above provided that you accompany
230 | it with the complete corresponding machine-readable source code, which
231 | must be distributed under the terms of Sections 1 and 2 above on a
232 | medium customarily used for software interchange.
233 |
234 | If distribution of object code is made by offering access to copy
235 | from a designated place, then offering equivalent access to copy the
236 | source code from the same place satisfies the requirement to
237 | distribute the source code, even though third parties are not
238 | compelled to copy the source along with the object code.
239 |
240 | 5. A program that contains no derivative of any portion of the
241 | Library, but is designed to work with the Library by being compiled or
242 | linked with it, is called a "work that uses the Library". Such a
243 | work, in isolation, is not a derivative work of the Library, and
244 | therefore falls outside the scope of this License.
245 |
246 | However, linking a "work that uses the Library" with the Library
247 | creates an executable that is a derivative of the Library (because it
248 | contains portions of the Library), rather than a "work that uses the
249 | library". The executable is therefore covered by this License.
250 | Section 6 states terms for distribution of such executables.
251 |
252 | When a "work that uses the Library" uses material from a header file
253 | that is part of the Library, the object code for the work may be a
254 | derivative work of the Library even though the source code is not.
255 | Whether this is true is especially significant if the work can be
256 | linked without the Library, or if the work is itself a library. The
257 | threshold for this to be true is not precisely defined by law.
258 |
259 | If such an object file uses only numerical parameters, data
260 | structure layouts and accessors, and small macros and small inline
261 | functions (ten lines or less in length), then the use of the object
262 | file is unrestricted, regardless of whether it is legally a derivative
263 | work. (Executables containing this object code plus portions of the
264 | Library will still fall under Section 6.)
265 |
266 | Otherwise, if the work is a derivative of the Library, you may
267 | distribute the object code for the work under the terms of Section 6.
268 | Any executables containing that work also fall under Section 6,
269 | whether or not they are linked directly with the Library itself.
270 |
271 | 6. As an exception to the Sections above, you may also combine or
272 | link a "work that uses the Library" with the Library to produce a
273 | work containing portions of the Library, and distribute that work
274 | under terms of your choice, provided that the terms permit
275 | modification of the work for the customer's own use and reverse
276 | engineering for debugging such modifications.
277 |
278 | You must give prominent notice with each copy of the work that the
279 | Library is used in it and that the Library and its use are covered by
280 | this License. You must supply a copy of this License. If the work
281 | during execution displays copyright notices, you must include the
282 | copyright notice for the Library among them, as well as a reference
283 | directing the user to the copy of this License. Also, you must do one
284 | of these things:
285 |
286 | a) Accompany the work with the complete corresponding
287 | machine-readable source code for the Library including whatever
288 | changes were used in the work (which must be distributed under
289 | Sections 1 and 2 above); and, if the work is an executable linked
290 | with the Library, with the complete machine-readable "work that
291 | uses the Library", as object code and/or source code, so that the
292 | user can modify the Library and then relink to produce a modified
293 | executable containing the modified Library. (It is understood
294 | that the user who changes the contents of definitions files in the
295 | Library will not necessarily be able to recompile the application
296 | to use the modified definitions.)
297 |
298 | b) Use a suitable shared library mechanism for linking with the
299 | Library. A suitable mechanism is one that (1) uses at run time a
300 | copy of the library already present on the user's computer system,
301 | rather than copying library functions into the executable, and (2)
302 | will operate properly with a modified version of the library, if
303 | the user installs one, as long as the modified version is
304 | interface-compatible with the version that the work was made with.
305 |
306 | c) Accompany the work with a written offer, valid for at
307 | least three years, to give the same user the materials
308 | specified in Subsection 6a, above, for a charge no more
309 | than the cost of performing this distribution.
310 |
311 | d) If distribution of the work is made by offering access to copy
312 | from a designated place, offer equivalent access to copy the above
313 | specified materials from the same place.
314 |
315 | e) Verify that the user has already received a copy of these
316 | materials or that you have already sent this user a copy.
317 |
318 | For an executable, the required form of the "work that uses the
319 | Library" must include any data and utility programs needed for
320 | reproducing the executable from it. However, as a special exception,
321 | the materials to be distributed need not include anything that is
322 | normally distributed (in either source or binary form) with the major
323 | components (compiler, kernel, and so on) of the operating system on
324 | which the executable runs, unless that component itself accompanies
325 | the executable.
326 |
327 | It may happen that this requirement contradicts the license
328 | restrictions of other proprietary libraries that do not normally
329 | accompany the operating system. Such a contradiction means you cannot
330 | use both them and the Library together in an executable that you
331 | distribute.
332 |
333 | 7. You may place library facilities that are a work based on the
334 | Library side-by-side in a single library together with other library
335 | facilities not covered by this License, and distribute such a combined
336 | library, provided that the separate distribution of the work based on
337 | the Library and of the other library facilities is otherwise
338 | permitted, and provided that you do these two things:
339 |
340 | a) Accompany the combined library with a copy of the same work
341 | based on the Library, uncombined with any other library
342 | facilities. This must be distributed under the terms of the
343 | Sections above.
344 |
345 | b) Give prominent notice with the combined library of the fact
346 | that part of it is a work based on the Library, and explaining
347 | where to find the accompanying uncombined form of the same work.
348 |
349 | 8. You may not copy, modify, sublicense, link with, or distribute
350 | the Library except as expressly provided under this License. Any
351 | attempt otherwise to copy, modify, sublicense, link with, or
352 | distribute the Library is void, and will automatically terminate your
353 | rights under this License. However, parties who have received copies,
354 | or rights, from you under this License will not have their licenses
355 | terminated so long as such parties remain in full compliance.
356 |
357 | 9. You are not required to accept this License, since you have not
358 | signed it. However, nothing else grants you permission to modify or
359 | distribute the Library or its derivative works. These actions are
360 | prohibited by law if you do not accept this License. Therefore, by
361 | modifying or distributing the Library (or any work based on the
362 | Library), you indicate your acceptance of this License to do so, and
363 | all its terms and conditions for copying, distributing or modifying
364 | the Library or works based on it.
365 |
366 | 10. Each time you redistribute the Library (or any work based on the
367 | Library), the recipient automatically receives a license from the
368 | original licensor to copy, distribute, link with or modify the Library
369 | subject to these terms and conditions. You may not impose any further
370 | restrictions on the recipients' exercise of the rights granted herein.
371 | You are not responsible for enforcing compliance by third parties with
372 | this License.
373 |
374 | 11. If, as a consequence of a court judgment or allegation of patent
375 | infringement or for any other reason (not limited to patent issues),
376 | conditions are imposed on you (whether by court order, agreement or
377 | otherwise) that contradict the conditions of this License, they do not
378 | excuse you from the conditions of this License. If you cannot
379 | distribute so as to satisfy simultaneously your obligations under this
380 | License and any other pertinent obligations, then as a consequence you
381 | may not distribute the Library at all. For example, if a patent
382 | license would not permit royalty-free redistribution of the Library by
383 | all those who receive copies directly or indirectly through you, then
384 | the only way you could satisfy both it and this License would be to
385 | refrain entirely from distribution of the Library.
386 |
387 | If any portion of this section is held invalid or unenforceable under any
388 | particular circumstance, the balance of the section is intended to apply,
389 | and the section as a whole is intended to apply in other circumstances.
390 |
391 | It is not the purpose of this section to induce you to infringe any
392 | patents or other property right claims or to contest validity of any
393 | such claims; this section has the sole purpose of protecting the
394 | integrity of the free software distribution system which is
395 | implemented by public license practices. Many people have made
396 | generous contributions to the wide range of software distributed
397 | through that system in reliance on consistent application of that
398 | system; it is up to the author/donor to decide if he or she is willing
399 | to distribute software through any other system and a licensee cannot
400 | impose that choice.
401 |
402 | This section is intended to make thoroughly clear what is believed to
403 | be a consequence of the rest of this License.
404 |
405 | 12. If the distribution and/or use of the Library is restricted in
406 | certain countries either by patents or by copyrighted interfaces, the
407 | original copyright holder who places the Library under this License may add
408 | an explicit geographical distribution limitation excluding those countries,
409 | so that distribution is permitted only in or among countries not thus
410 | excluded. In such case, this License incorporates the limitation as if
411 | written in the body of this License.
412 |
413 | 13. The Free Software Foundation may publish revised and/or new
414 | versions of the Lesser General Public License from time to time.
415 | Such new versions will be similar in spirit to the present version,
416 | but may differ in detail to address new problems or concerns.
417 |
418 | Each version is given a distinguishing version number. If the Library
419 | specifies a version number of this License which applies to it and
420 | "any later version", you have the option of following the terms and
421 | conditions either of that version or of any later version published by
422 | the Free Software Foundation. If the Library does not specify a
423 | license version number, you may choose any version ever published by
424 | the Free Software Foundation.
425 |
426 | 14. If you wish to incorporate parts of the Library into other free
427 | programs whose distribution conditions are incompatible with these,
428 | write to the author to ask for permission. For software which is
429 | copyrighted by the Free Software Foundation, write to the Free
430 | Software Foundation; we sometimes make exceptions for this. Our
431 | decision will be guided by the two goals of preserving the free status
432 | of all derivatives of our free software and of promoting the sharing
433 | and reuse of software generally.
434 |
435 | NO WARRANTY
436 |
437 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
438 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
439 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
440 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
441 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
442 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
443 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
444 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
445 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
446 |
447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
448 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
449 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
450 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
451 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
452 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
453 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
454 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
455 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
456 | DAMAGES.
457 |
458 | END OF TERMS AND CONDITIONS
459 |
460 | How to Apply These Terms to Your New Libraries
461 |
462 | If you develop a new library, and you want it to be of the greatest
463 | possible use to the public, we recommend making it free software that
464 | everyone can redistribute and change. You can do so by permitting
465 | redistribution under these terms (or, alternatively, under the terms of the
466 | ordinary General Public License).
467 |
468 | To apply these terms, attach the following notices to the library. It is
469 | safest to attach them to the start of each source file to most effectively
470 | convey the exclusion of warranty; and each file should have at least the
471 | "copyright" line and a pointer to where the full notice is found.
472 |
473 |
474 | Copyright (C)
475 |
476 | This library is free software; you can redistribute it and/or
477 | modify it under the terms of the GNU Lesser General Public
478 | License as published by the Free Software Foundation; either
479 | version 2.1 of the License, or (at your option) any later version.
480 |
481 | This library is distributed in the hope that it will be useful,
482 | but WITHOUT ANY WARRANTY; without even the implied warranty of
483 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
484 | Lesser General Public License for more details.
485 |
486 | You should have received a copy of the GNU Lesser General Public
487 | License along with this library; if not, write to the Free Software
488 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
489 | USA
490 |
491 | Also add information on how to contact you by electronic and paper mail.
492 |
493 | You should also get your employer (if you work as a programmer) or your
494 | school, if any, to sign a "copyright disclaimer" for the library, if
495 | necessary. Here is a sample; alter the names:
496 |
497 | Yoyodyne, Inc., hereby disclaims all copyright interest in the
498 | library `Frob' (a library for tweaking knobs) written by James Random
499 | Hacker.
500 |
501 | , 1 April 1990
502 | Ty Coon, President of Vice
503 |
504 | That's all there is to it!
--------------------------------------------------------------------------------
/rom/Makefile:
--------------------------------------------------------------------------------
1 | MINIPRO=minipro
2 |
3 | all: rom.bin programs
4 |
5 | rom.bin: basic boot
6 | cat basic/basic.bin boot/boot.bin > rom.bin
7 |
8 | basic:
9 | $(MAKE) -C basic
10 |
11 | boot:
12 | $(MAKE) -C boot
13 |
14 | programs:
15 | $(MAKE) -C programs
16 |
17 | clean:
18 | rm -f rom.bin
19 | $(MAKE) -C basic clean
20 | $(MAKE) -C boot clean
21 | $(MAKE) -C programs clean
22 |
23 | flashrom: rom.bin
24 | $(MINIPRO) -p AT28C256 -w rom.bin
25 |
26 | .PHONY: all basic boot programs flashrom
27 |
--------------------------------------------------------------------------------
/rom/basic/Makefile:
--------------------------------------------------------------------------------
1 | CA65=/usr/bin/ca65
2 | LD65=/usr/bin/ld65
3 |
4 | basic.bin: min_mon.o
5 | $(LD65) -o basic.bin \
6 | -C basic.cfg \
7 | min_mon.o
8 |
9 | min_mon.o: min_mon.s basic.s
10 | $(CA65) --cpu 65C02 --feature labels_without_colons min_mon.s
11 |
12 | clean:
13 | rm -f min_mon.o basic.bin
14 |
15 |
--------------------------------------------------------------------------------
/rom/basic/basic.cfg:
--------------------------------------------------------------------------------
1 | # Configuration for BASIC ROM
2 | MEMORY {
3 | ZP: start = $00, size = $0100, type = rw, file = "";
4 | RAM: start = $0100, size = $7e00, type = rw, file = "";
5 | PRG: start = $C000, size = $4000, type = ro, file = %O, fill = yes, fillval = $00;
6 | }
7 |
8 | SEGMENTS {
9 | ZEROPAGE: load = ZP, type = zp;
10 | BSS: load = RAM, type = bss;
11 | CODE: load = PRG, type = ro, start = $C000;
12 | VECTORS: load = PRG, type = ro, start = $FFFA;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/rom/basic/min_mon.s:
--------------------------------------------------------------------------------
1 | ; minimal monitor for EhBASIC and 6502 simulator V1.05
2 | ; tabs converted to space, tabwidth=6
3 |
4 | ; To run EhBASIC on the simulator load and assemble [F7] this file, start the simulator
5 | ; running [F6] then start the code with the RESET [CTRL][SHIFT]R. Just selecting RUN
6 | ; will do nothing, you'll still have to do a reset to run the code.
7 |
8 | .include "basic.s"
9 |
10 | ; put the IRQ and MNI code in RAM so that it can be changed
11 |
12 | IRQ_vec = VEC_SV+2 ; IRQ code vector
13 | NMI_vec = IRQ_vec+$0A ; NMI code vector
14 |
15 | ; now the code. all this does is set up the vectors and interrupt code
16 | ; and wait for the user to select [C]old or [W]arm start. nothing else
17 | ; fits in less than 128 bytes
18 |
19 | .segment "CODE" ; pretend this is in a 1/8K ROM
20 |
21 | ; reset vector points here
22 |
23 | RES_vec
24 | CLD ; clear decimal mode
25 | LDX #$FF ; empty stack
26 | TXS ; set the stack
27 | JSR ACIAsetup
28 |
29 | ; set up vectors and interrupt code, copy them to page 2
30 |
31 | LDY #END_CODE-LAB_vec ; set index/count
32 | LAB_stlp
33 | LDA LAB_vec-1,Y ; get byte from interrupt code
34 | STA VEC_IN-1,Y ; save to RAM
35 | DEY ; decrement index/count
36 | BNE LAB_stlp ; loop if more to do
37 |
38 | ; now do the signon message, Y = $00 here
39 |
40 | LAB_signon
41 | LDA LAB_mess,Y ; get byte from sign on message
42 | BEQ LAB_nokey ; exit loop if done
43 |
44 | JSR V_OUTP ; output character
45 | INY ; increment index
46 | BNE LAB_signon ; loop, branch always
47 |
48 | LAB_nokey
49 | JSR V_INPT ; call scan input device
50 | BCC LAB_nokey ; loop if no key
51 |
52 | AND #$DF ; mask xx0x xxxx, ensure upper case
53 | CMP #'W' ; compare with [W]arm start
54 | BEQ LAB_dowarm ; branch if [W]arm start
55 |
56 | CMP #'C' ; compare with [C]old start
57 | BNE RES_vec ; loop if not [C]old start
58 |
59 | JMP LAB_COLD ; do EhBASIC cold start
60 |
61 | LAB_dowarm
62 | JMP LAB_WARM ; do EhBASIC warm start
63 |
64 | ; Polled 65c51 I/O routines adapted to EhBASIC. Delay routine from
65 | ; http://forum.6502.org/viewtopic.php?f=4&t=2543&start=30#p29795
66 | ACIA_RX = $8400
67 | ACIA_TX = $8400
68 | ACIA_STATUS = $8401
69 | ACIA_COMMAND = $8402
70 | ACIA_CONTROL = $8403
71 |
72 | ACIAsetup
73 | LDA #$00 ; write anything to status register for program reset
74 | STA ACIA_STATUS
75 | LDA #$0B ; %0000 1011 = Receiver odd parity check
76 | ; Parity mode disabled
77 | ; Receiver normal mode
78 | ; RTSB Low, trans int disabled
79 | ; IRQB disabled
80 | ; Data terminal ready (DTRB low)
81 | STA ACIA_COMMAND ; set command register
82 | LDA #$1F ; %0001 1111 = 19200 Baud
83 | ; External receiver
84 | ; 8 bit words
85 | ; 1 stop bit
86 | STA ACIA_CONTROL ; set control register
87 | RTS
88 |
89 | ACIAout
90 | PHA ; save A
91 | LDA ACIA_STATUS ; Read (and ignore) ACIA status register
92 | PLA ; restore A
93 | STA ACIA_TX ; write byte
94 | JSR ACIAdelay ; delay because of bug
95 | RTS
96 |
97 | ACIAdelay
98 | PHY ; Save Y Reg
99 | PHX ; Save X Reg
100 | DELAY_LOOP
101 | LDY #6 ; Get delay value (clock rate in MHz 2 clock cycles)
102 | MINIDLY
103 | LDX #$68 ; Seed X reg
104 | DELAY_1
105 | DEX ; Decrement low index
106 | BNE DELAY_1 ; Loop back until done
107 | DEY ; Decrease by one
108 | BNE MINIDLY ; Loop until done
109 | PLX ; Restore X Reg
110 | PLY ; Restore Y Reg
111 | DELAY_DONE
112 | RTS ; Delay done, return
113 |
114 | ACIAin
115 | LDA ACIA_STATUS ; get ACIA status
116 | AND #$08 ; mask rx buffer status flag
117 | BEQ LAB_nobyw ; branch if no byte waiting
118 | LDA ACIA_RX ; get byte from ACIA data port
119 | SEC ; flag byte received
120 | RTS
121 | LAB_nobyw
122 | CLC ; flag no byte received
123 | no_load ; empty load vector for EhBASIC
124 | no_save ; empty save vector for EhBASIC
125 | RTS
126 |
127 | ; vector tables
128 |
129 | LAB_vec
130 | .word ACIAin ; byte in from simulated ACIA
131 | .word ACIAout ; byte out to simulated ACIA
132 | .word no_load ; null load vector for EhBASIC
133 | .word no_save ; null save vector for EhBASIC
134 |
135 | ; EhBASIC IRQ support
136 |
137 | IRQ_CODE
138 | PHA ; save A
139 | LDA IrqBase ; get the IRQ flag byte
140 | LSR ; shift the set b7 to b6, and on down ...
141 | ORA IrqBase ; OR the original back in
142 | STA IrqBase ; save the new IRQ flag byte
143 | PLA ; restore A
144 | RTI
145 |
146 | ; EhBASIC NMI support
147 |
148 | NMI_CODE
149 | PHA ; save A
150 | LDA NmiBase ; get the NMI flag byte
151 | LSR ; shift the set b7 to b6, and on down ...
152 | ORA NmiBase ; OR the original back in
153 | STA NmiBase ; save the new NMI flag byte
154 | PLA ; restore A
155 | RTI
156 |
157 | END_CODE
158 |
159 | LAB_mess
160 | .byte $0D,$0A,"6502 EhBASIC [C]old/[W]arm ?",$00
161 | ; sign on string
162 |
163 | ; system vectors
164 |
165 | .segment "VECTORS"
166 |
167 | .word NMI_vec ; NMI vector
168 | .word RES_vec ; RESET vector
169 | .word IRQ_vec ; IRQ vector
170 |
171 | .end RES_vec ; set start at reset vector
172 |
173 |
--------------------------------------------------------------------------------
/rom/boot/Makefile:
--------------------------------------------------------------------------------
1 | CA65=/usr/bin/ca65
2 | LD65=/usr/bin/ld65
3 |
4 | all: boot.bin generated/rom_defs.o
5 |
6 | boot.bin boot.dbg: boot.o
7 | $(LD65) \
8 | --dbgfile boot.dbg \
9 | -o boot.bin \
10 | -C boot.cfg \
11 | boot.o
12 |
13 | boot.o: boot.s
14 | $(CA65) \
15 | --cpu 65C02 \
16 | --debug-info \
17 | boot.s
18 |
19 | generated/rom_defs.o: generated/rom_defs.s
20 | $(CA65) \
21 | --cpu 65C02 \
22 | --debug-info \
23 | boot.s
24 |
25 | generated/rom_defs.s: boot.dbg
26 | python3 generated/generate_rom_defs.py
27 |
28 | clean:
29 | rm -f boot.o boot.bin boot.dbg generated/rom_defs.s generated/rom_defs.o
30 |
31 | .PHONY: all
32 |
33 |
--------------------------------------------------------------------------------
/rom/boot/boot.cfg:
--------------------------------------------------------------------------------
1 | # Configuration for boot ROM
2 | MEMORY {
3 | ZP: start = $00, size = $0100, type = rw, file = "";
4 | RAM: start = $0100, size = $7e00, type = rw, file = "";
5 | PRG: start = $C000, size = $4000, type = ro, file = %O, fill = yes, fillval = $00;
6 | }
7 |
8 | SEGMENTS {
9 | ZEROPAGE: load = ZP, type = zp;
10 | BSS: load = RAM, type = bss;
11 | CODE: load = PRG, type = ro, start = $C000;
12 | VECTORS: load = PRG, type = ro, start = $FFFA;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/rom/boot/boot.s:
--------------------------------------------------------------------------------
1 | ; Boot ROM for 6502 computer. Provides shell which can access test programs.
2 |
3 | .include "hardware/speaker.s"
4 | .include "hardware/acia.s"
5 | .include "hardware/via.s"
6 |
7 | .segment "BSS"
8 | shell_cmd_id: .res 1
9 | shell_cmd_tmp: .res 1
10 | shell_buffer_used: .res 1
11 | shell_buffer: .res 64
12 | .segment "CODE"
13 |
14 | reset:
15 | ; Computer setup
16 | ldx #$ff
17 | txs
18 | cli
19 | jsr acia_setup
20 |
21 | ; Print welcome message
22 | jsr shell_newline
23 | ldx #0
24 | @shell_welcome_char:
25 | lda shell_welcome, X
26 | beq @shell_welcome_done
27 | jsr acia_print_char
28 | inx
29 | jmp @shell_welcome_char
30 | @shell_welcome_done:
31 | jsr shell_newline
32 |
33 | shell_next_command:
34 | ; Clear buffer
35 | lda #0
36 | sta shell_buffer_used
37 | ; Show prompt
38 | ldx #0
39 | @shell_prompt_char:
40 | lda shell_prompt, X
41 | beq @shell_prompt_done
42 | jsr acia_print_char
43 | inx
44 | jmp @shell_prompt_char
45 | @shell_prompt_done:
46 |
47 | shell_next_char:
48 | ; receive char
49 | jsr acia_recv_char
50 | sta shell_cmd_tmp ; possible future use
51 | cmp #$0d ; return key pressed?
52 | beq @run_command ; run the command
53 | ; TODO check for ASCII printable, backspace etc
54 | ; regular ascii char - save to buffer
55 | ldx shell_buffer_used
56 | sta shell_buffer, X
57 | inx
58 | stx shell_buffer_used
59 | ; print char
60 | jsr acia_print_char
61 | jmp shell_next_char
62 | @run_command:
63 | jsr shell_newline
64 | ; set command ID to 0
65 | ldx shell_buffer_used
66 | cpx #0
67 | beq @no_command
68 | lda #0
69 | sta shell_cmd_id
70 | @test_command_next:
71 | ldx shell_cmd_id ; any more commands to compare?
72 | cpx built_in_count
73 | bcs @command_not_found ; no more commands to compare
74 | jsr shell_command_test
75 | inc shell_cmd_id
76 | jmp @test_command_next
77 | @no_command: ; pressed enter with nothing at the prompt
78 | jmp shell_next_command
79 |
80 | @command_not_found:
81 | ; Print not found message
82 | ldx #0
83 | @shell_not_found_char:
84 | lda shell_not_found, X
85 | beq @shell_not_found_done
86 | jsr acia_print_char
87 | inx
88 | jmp @shell_not_found_char
89 | @shell_not_found_done:
90 | jsr shell_newline
91 | jmp shell_next_command
92 |
93 | ; if command number shell_cmd_id is the one in shell_buffer then run it, oherwise return
94 | shell_command_test:
95 | ldx shell_cmd_id ; id of this command
96 | lda built_in_cmd_offsets, X ; start character of this command name in built_in_cmd
97 | tax ; x is index for next character in built_in_cmd
98 | ldy #0 ; y is index for next character in shell_buffer
99 | @nextchar:
100 | tya ; check for end of shell command
101 | cmp shell_buffer_used
102 | bcs @shell_command_end
103 | lda shell_buffer, Y ; next char in shell_buffer
104 | cmp #32 ; check for separator between shell command and arg
105 | beq @shell_command_end
106 | sta shell_cmd_tmp ; store to fixed addr for next computation
107 | lda built_in_cmd, X ; next char in built_in_cmd
108 | cmp #0 ; check for null
109 | beq @command_not_match ; command we are checking has ended, user command has not
110 | cmp shell_cmd_tmp ; check for char is equal
111 | bne @command_not_match
112 | inx
113 | iny
114 | jmp @nextchar
115 | @shell_command_end: ; user command ended
116 | lda built_in_cmd, X ; next char of command we are checking against
117 | cmp #0 ; if we read a null here it is a match
118 | beq @command_match ; command we are checking also ended
119 | @command_not_match:
120 | rts
121 | @command_match: ; run the command
122 | lda shell_cmd_id ; Get command ID, multiply by 2, jump to it.
123 | asl ; Multiply by 2 - mem address is 2 bytes
124 | tax
125 | jmp (built_in_main, X) ; jump to this main method
126 |
127 | shell_not_found: .asciiz "Command not found"
128 | shell_welcome: .asciiz "65C02 Computer Ready"
129 | shell_prompt: .asciiz "# "
130 |
131 | shell_newline:
132 | lda #$0d
133 | jsr acia_print_char
134 | lda #$0a
135 | jsr acia_print_char
136 | rts
137 |
138 | sys_exit: ; Jump here to hand control back to shell
139 | ldx #$ff ; Discard stack
140 | txs
141 | cli
142 | jmp shell_next_command
143 |
144 | ;
145 | ; Built-in command table
146 | ;
147 | built_in_count: .byte 6
148 | built_in_cmd_offsets:
149 | .byte 0
150 | .byte 5
151 | .byte 11
152 | .byte 14
153 | .byte 22
154 | .byte 26
155 |
156 | built_in_cmd:
157 | .asciiz "echo"
158 | .asciiz "hello"
159 | .asciiz "rx"
160 | .asciiz "irqtest"
161 | .asciiz "run"
162 | .asciiz "dump"
163 |
164 | built_in_main:
165 | .word shell_echo_main
166 | .word shell_hello_main
167 | .word shell_rx_main
168 | .word shell_irqtest_main
169 | .word shell_run_main
170 | .word shell_dump_main
171 |
172 | ;
173 | ; Built-in command: echo
174 | ;
175 | shell_echo_main:
176 | ldx #5
177 |
178 | @shell_echo_char:
179 | lda shell_buffer, X
180 | jsr acia_print_char
181 | inx
182 | cpx shell_buffer_used
183 | bcs @shell_echo_done
184 | jmp @shell_echo_char
185 | @shell_echo_done:
186 | jsr shell_newline
187 | lda #0
188 | jmp sys_exit
189 |
190 | ;
191 | ; Built-in command: hello
192 | ;
193 | shell_hello_main:
194 | ldx #0
195 | @hello_char:
196 | lda hello_world, X
197 | beq @hello_done
198 | jsr acia_print_char
199 | inx
200 | jmp @hello_char
201 | @hello_done:
202 | jsr shell_newline
203 | lda #0
204 | jmp sys_exit
205 |
206 | hello_world: .asciiz "Hello, world"
207 |
208 | ;
209 | ; Built-in command: rx
210 | ; recives a file over XMODEM protocol, and loads it into memory
211 | USER_PROGRAM_START = $0400 ; Address for start of user programs
212 | USER_PROGRAM_WRITE_PTR = $00 ; ZP address for writing user program
213 |
214 | shell_rx_main:
215 | ; Set pointers
216 | lda #USER_PROGRAM_START ; High byte next
219 | sta USER_PROGRAM_WRITE_PTR + 1
220 | ; Delay so that we can set up file send
221 | lda #1 ; wait ~1 second
222 | jsr shell_rx_sleep_seconds
223 | ; NAK, ACK once
224 | @shell_block_nak:
225 | lda #$15 ; NAK gets started
226 | jsr acia_print_char
227 | lda SPEAKER ; Click each time we send a NAK or ACK
228 | jsr shell_rx_receive_with_timeout ; Check in loop w/ timeout
229 | bcc @shell_block_nak ; Not received yet
230 | cmp #$01 ; If we do have char, should be SOH
231 | bne @shell_rx_fail ; Terminate transfer if we don't get SOH
232 | @shell_rx_block:
233 | ; Receive one block
234 | jsr acia_recv_char ; Block number
235 | jsr acia_recv_char ; Inverse block number
236 | ldy #0 ; Start at char 0
237 | @shell_rx_char:
238 | jsr acia_recv_char
239 | sta (USER_PROGRAM_WRITE_PTR), Y
240 | iny
241 | cpy #128
242 | bne @shell_rx_char
243 | jsr acia_recv_char ; Checksum - TODO verify this and jump to shell_block_nak to repeat if not matching
244 | lda #$06 ; ACK the packet
245 | jsr acia_print_char
246 | lda SPEAKER ; Click each time we send a NAK or ACK
247 | jsr acia_recv_char
248 | cmp #$04 ; EOT char, no more blocks
249 | beq @shell_rx_done
250 | cmp #$01 ; SOH char, next block on the way
251 | bne @shell_block_nak ; Anything else fail transfer
252 | lda USER_PROGRAM_WRITE_PTR ; This next part moves write pointer along by 128 bytes
253 | cmp #$00
254 | beq @block_half_advance
255 | lda #$00 ; If low byte != 0, set to 0 and inc high byte
256 | sta USER_PROGRAM_WRITE_PTR
257 | inc USER_PROGRAM_WRITE_PTR + 1
258 | jmp @shell_rx_block
259 | @block_half_advance: ; If low byte = 0, set it to 128
260 | lda #$80
261 | sta USER_PROGRAM_WRITE_PTR
262 | jmp @shell_rx_block
263 | @shell_rx_done:
264 | lda #$6 ; ACK the EOT as well.
265 | jsr acia_print_char
266 | lda SPEAKER ; Click each time we send a NAK or ACK
267 | lda #1 ; wait a moment (printing does not work otherwise..)
268 | jsr shell_rx_sleep_seconds
269 | ; jsr shell_rx_print_user_program
270 | jsr shell_newline
271 | lda #0
272 | jmp sys_exit
273 | @shell_rx_fail:
274 | lda #1
275 | jmp sys_exit
276 |
277 | ; Like acia_recv_char, but terminates after a short time if nothing is received
278 | shell_rx_receive_with_timeout:
279 | ldy #$ff
280 | @y_loop:
281 | ldx #$ff
282 | @x_loop:
283 | lda ACIA_STATUS ; check ACIA status in inner loop
284 | and #$08 ; mask rx buffer status flag
285 | bne @rx_got_char
286 | dex
287 | cpx #0
288 | bne @x_loop
289 | dey
290 | cpy #0
291 | bne @y_loop
292 | clc ; no byte received in time
293 | rts
294 | @rx_got_char:
295 | lda ACIA_RX ; get byte from ACIA data port
296 | sec ; set carry bit
297 | rts
298 |
299 | shell_rx_sleep_seconds: ; sleep for 0-63 seconds (approx)
300 | pha ; save registers
301 | phx
302 | phy
303 | asl ; multiply A by 4, outer loop is approx 250ms.
304 | asl
305 | @a_loop:
306 | cmp #0 ; stop if A is 0 (outer loop)
307 | beq @end
308 | ldy #$ff ; start Y at 255 and decrement (middle loop)
309 | @y_loop:
310 | ldx #$ff
311 | @x_loop: ; start Y at 255 and decrement (inner loop)
312 | dex
313 | cpx #0
314 | bne @x_loop ; end inner loop
315 | dey
316 | cpy #0
317 | bne @y_loop ; end middle loop
318 | dec ; decrement A and repeat
319 | jmp @a_loop ; end outer loop
320 | @end:
321 | ply ; restore registers
322 | plx
323 | pla
324 | rts
325 |
326 | ; test routine tp show what is being received over serial.
327 | ; receive bytes from ACIA, and echo them back in hex until Ctrl+C is pressed
328 | shell_rx_print_chars:
329 | ldx #26 ; Number of hex digits per line, fills 80 chars
330 | @next_byte:
331 | phx
332 | jsr acia_recv_char ; get char
333 | cmp #$03 ; Ctrl+C?
334 | beq @done
335 | jsr hex_print_byte ; print as hex (2 digits)
336 | lda #$20 ; space between chars
337 | jsr acia_print_char
338 | plx
339 | dex
340 | cpx #0
341 | bne @next_byte ; loop until x is 0
342 | jsr shell_newline ; line break
343 | jmp shell_rx_print_chars
344 | @done:
345 | plx
346 | jsr shell_newline ; line break
347 | rts
348 |
349 | ; Jump into user program
350 | shell_run_main:
351 | jmp USER_PROGRAM_START
352 |
353 | ; Dump memory
354 | shell_dump_main:
355 | jsr shell_rx_print_user_program
356 | jsr shell_newline
357 | lda #0
358 | jmp sys_exit
359 |
360 | shell_rx_print_user_program: ; Print the first 255 bytes of uploaded user program
361 | ldy #0
362 | @user_program_line:
363 | jsr shell_newline
364 | ldx #16 ; Number of hex digits per line
365 | @user_program_char:
366 | lda USER_PROGRAM_START, Y
367 | phx
368 | jsr hex_print_byte ; Print the char (clobbers X)
369 | plx
370 | lda #$20 ; space between chars
371 | jsr acia_print_char
372 | iny
373 | cpy #0 ; Wrap-around at 255 bytes
374 | beq @user_program_done
375 | dex
376 | cpx #0
377 | bne @user_program_char
378 | jmp @user_program_line
379 | @user_program_done:
380 | rts
381 |
382 | ; Set up a timer to trigger an IRQ
383 | IRQ_CONTROLLER = $8C00
384 |
385 | ; Some values to help us debug
386 | DEBUG_LAST_INTERRUPT_INDEX = $00
387 | DEBUG_INTERRUPT_COUNT = $01
388 |
389 | shell_irqtest_main:
390 | lda #$ff ; set interrupt index to dummy value (so we can see if it's not being overridden)
391 | sta DEBUG_LAST_INTERRUPT_INDEX
392 | lda #$00 ; reset interrupt counter
393 | sta $01
394 | ; setup for via
395 | lda #%00000000 ; set ACR. first two bits = 00 is one-shot for T1
396 | sta VIA_ACR
397 | lda #%11000000 ; enable VIA interrupt for T1
398 | sta VIA_IER
399 | sei ; enable IRQ at CPU - normally off in this code
400 | ; set up a timer at ~65535 clock pulses.
401 | lda #$ff ; set T1 low-order counter
402 | sta VIA_T1C_L
403 | lda #$ff ; set T1 high-order counter
404 | sta VIA_T1C_H
405 | wai ; wait for interrupt
406 | ; reset for via
407 | cli ; disable IRQ at CPU - normally off in this code
408 | lda #%01000000 ; disable VIA interrupt for T1
409 | ; Print out which interrupt was used, should be 02 if irq1_isr ran
410 | lda DEBUG_LAST_INTERRUPT_INDEX
411 | jsr hex_print_byte
412 | jsr shell_newline
413 | ; print number of times interrupt ran, should be 01 if it only ran once
414 | lda DEBUG_INTERRUPT_COUNT
415 | jsr hex_print_byte
416 | jsr shell_newline
417 | lda #0
418 | jmp sys_exit
419 | ;
420 | ;fake_irq:
421 | ; ldx IRQ_CONTROLLER ; read interrupt controller to find highest-priority interrupt to service
422 | ; jmp (isr_jump_table, X) ; jump to matching service routine
423 |
424 | hex_print_byte: ; print accumulator as two ascii digits (hex)
425 | pha ; store byte for later
426 | lsr ; shift out lower nibble
427 | lsr
428 | lsr
429 | lsr
430 | tax
431 | lda hex_chars, X ; convert 0-15 to ascii char for hex digit
432 | jsr acia_print_char ; print upper nibble
433 | pla ; retrieve byte again
434 | and #$0f ; mask out upper nibble
435 | tax
436 | lda hex_chars, X ; convert 0-15 to ascii char for hex digit
437 | jsr acia_print_char ; print lower nibble
438 | rts
439 | hex_chars: .byte '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
440 |
441 | irq1_isr: ; interrupt routine for VIA
442 | stx DEBUG_LAST_INTERRUPT_INDEX ; store interrupt index for debugging
443 | ldx VIA_T1C_L ; clear IFR bit 6 on VIA (side-effect of reading T1 low-order counter)
444 | jmp irq_return
445 |
446 | nop_isr: ; interrupt routine for anything else
447 | stx DEBUG_LAST_INTERRUPT_INDEX ; store interrupt index for debugging
448 | jmp irq_return
449 |
450 | isr_jump_table: ; 10 possible interrupt sources
451 | .word nop_isr
452 | .word irq1_isr
453 | .word nop_isr
454 | .word nop_isr
455 | .word nop_isr
456 | .word nop_isr
457 | .word nop_isr
458 | .word nop_isr
459 | .word nop_isr
460 | .word nop_isr
461 | .word nop_isr ; 11th option for when no source is triggering the interrupt
462 |
463 | irq:
464 | phx ; push x for later
465 | inc DEBUG_INTERRUPT_COUNT ; count how many times this runs..
466 | ldx IRQ_CONTROLLER ; read interrupt controller to find highest-priority interrupt to service
467 | jmp (isr_jump_table, X) ; jump to matching service routine
468 |
469 | irq_return:
470 | plx ; restore x
471 | rti
472 |
473 | nmi:
474 | rti
475 |
476 | .segment "VECTORS"
477 | .word nmi
478 | .word reset
479 | .word irq
480 |
481 |
--------------------------------------------------------------------------------
/rom/boot/generated/generate_rom_defs.py:
--------------------------------------------------------------------------------
1 | """
2 | generate_rom_defs.py:
3 |
4 | Reads CC65 debug information from the ROM, and save label/constant definitions to rom_defs.s.
5 | """
6 | import os
7 | from dataclasses import dataclass
8 | from typing import List
9 |
10 |
11 | @dataclass
12 | class DebugLine:
13 | """ One line of debug output """
14 | line_type: str
15 | values: dict
16 |
17 | @staticmethod
18 | def _process_value(key: str, val: str):
19 | if key == "ref":
20 | # List of values
21 | return [DebugLine._process_value("_" + key, x) for x in val.split("+")]
22 | if val.startswith("\""):
23 | # String
24 | return val.strip("\"")
25 | if val.startswith("0x"):
26 | # Hex value, change to format suitable for inclusion in assembler source.
27 | hex_str = val[2:].lower()
28 | if len(hex_str) % 2 == 1:
29 | # Round out to even number
30 | return "$0" + hex_str
31 | return "$" + hex_str
32 | if not val.isnumeric():
33 | # enums like addrsize, type
34 | return val
35 | # Everything else is numeric, so parse it!
36 | return int(val)
37 |
38 | @staticmethod
39 | def from_str(line: str):
40 | """
41 | Slice up strings to read the line. General format is:
42 |
43 | scope id=0,name="",mod=0,size=784,span=346+345+344
44 | """
45 | # eg. 'scope', 'major=2,minor=0'
46 | line_type, kv_pairs_str = line.strip().split("\t", maxsplit=1)
47 | # eg. [['major', '2'], ['minor', '0']]
48 | key_value_list = [x.split("=", maxsplit=1) for x in kv_pairs_str.split(",")]
49 | # into dictionary, unquote quoted fields
50 | values = {x: DebugLine._process_value(x, v) for x, v in key_value_list}
51 | return DebugLine(line_type, values)
52 |
53 |
54 | def read_symbols_from_lines(lines: List[str]) -> List[DebugLine]:
55 | return [DebugLine.from_str(x) for x in lines]
56 |
57 |
58 | def is_interersting_line(line: DebugLine) -> bool:
59 | if line.line_type != "sym": # Only interested in symbols
60 | return False
61 | if 'parent' in line.values: # Local labels
62 | return False
63 | return True
64 |
65 |
66 | def filter_debug_symbols(lines: List[DebugLine]) -> List[DebugLine]:
67 | interesting_lines = [x for x in lines if is_interersting_line(x)]
68 | return sorted(interesting_lines, key=lambda x: x.values['name'])
69 |
70 |
71 | """
72 | ; locations of some functions in ROM
73 | .export acia_print_char := $c014
74 | .export acia_recv_char := $c020
75 | .export shell_newline := $c113
76 | .export sys_exit := $c11e
77 |
78 | """
79 | if __name__ == "__main__":
80 | script_dir = os.path.dirname(__file__)
81 | source_file = os.path.join(script_dir, "../boot.dbg")
82 | dest_file = os.path.join(script_dir, "rom_defs.s")
83 | with open(source_file) as f:
84 | all_defs = read_symbols_from_lines(f.readlines())
85 | filtered_defs = filter_debug_symbols(all_defs)
86 | with open(dest_file, "w") as f:
87 | for symbol in filtered_defs:
88 | name = symbol.values['name']
89 | val = symbol.values['val']
90 | if symbol.values['type'] == "lab":
91 | f.write(f".export {name:32} := {val}\n")
92 | else:
93 | f.write(f".export {name:32} = {val}\n")
94 |
--------------------------------------------------------------------------------
/rom/boot/hardware/acia.s:
--------------------------------------------------------------------------------
1 | ACIA_RX = $8400
2 | ACIA_TX = $8400
3 | ACIA_STATUS = $8401
4 | ACIA_COMMAND = $8402
5 | ACIA_CONTROL = $8403
6 |
7 | acia_setup:
8 | ; Polled 65c51 I/O routines. Delay routine from
9 | ; http://forum.6502.org/viewtopic.php?f=4&t=2543&start=30#p29795
10 | lda #$00 ; write anything to status register for program reset
11 | sta ACIA_STATUS
12 | lda #$0b ; %0000 1011 = Receiver odd parity check
13 | ; Parity mode disabled
14 | ; Receiver normal mode
15 | ; RTSB Low, trans int disabled
16 | ; IRQB disabled
17 | ; Data terminal ready (DTRB low)
18 | sta ACIA_COMMAND ; set control register
19 | lda #$1f ; %0001 1111 = 19200 Baud
20 | ; External receiver
21 | ; 8 bit words
22 | ; 1 stop bit
23 | sta ACIA_CONTROL ; set control register
24 | rts
25 |
26 | acia_print_char:
27 | pha ; save A
28 | lda ACIA_STATUS ; Read ACIA status register
29 | pla ; ELSE, restore ACCUMULATOR from STACK
30 | sta ACIA_TX ; Write byte to ACIA transmit data register
31 | jsr acia_delay ; Required delay - Comment out for working 6551/65C51!
32 | rts ; Done COUT subroutine, RETURN
33 |
34 | acia_recv_char:
35 | lda ACIA_STATUS ; get ACIA status
36 | and #$08 ; mask rx buffer status flag
37 | beq acia_recv_char ; loop if rx buffer empty
38 | lda ACIA_RX ; get byte from ACIA data port
39 | rts
40 |
41 | acia_delay:
42 | phy ; Save Y Reg
43 | phx ; Save X Reg
44 | ldy #6 ; Get delay value (clock rate in MHz 2 clock cycles)
45 | @minidly:
46 | ldx #$68 ; Seed X reg
47 | @delay_1:
48 | dex ; Decrement low index
49 | bne @delay_1 ; Loop back until done
50 | dey ; Decrease by one
51 | bne @minidly ; Loop until done
52 | plx ; Restore X Reg
53 | ply ; Restore Y Reg
54 | @delay_done:
55 | rts ; Delay done, return
56 |
57 |
--------------------------------------------------------------------------------
/rom/boot/hardware/speaker.s:
--------------------------------------------------------------------------------
1 | SPEAKER = $8800
2 |
3 | speaker_beep:
4 | ; Not implemented
5 | lda SPEAKER
6 | rts
7 |
8 |
--------------------------------------------------------------------------------
/rom/boot/hardware/via.s:
--------------------------------------------------------------------------------
1 | VIA_PORTB = $8000
2 | VIA_PORTA = $8001
3 | VIA_DDRB = $8002
4 | VIA_DDRA = $8003
5 | VIA_T1C_L = $8004
6 | VIA_T1C_H = $8005
7 | VIA_T1L_L = $8006
8 | VIA_T1L_H = $8007
9 | VIA_T2C_L = $8008
10 | VIA_T2C_H = $8009
11 | VIA_SR = $800a
12 | VIA_ACR = $800b
13 | VIA_PCR = $800c
14 | VIA_IFR = $800d
15 | VIA_IER = $800e
16 | VIA_PORTA_2 = $800f
17 |
--------------------------------------------------------------------------------
/rom/programs/Makefile:
--------------------------------------------------------------------------------
1 | SOURCE_FILES = $(wildcard *.s)
2 | PROGRAMS = $(addsuffix .bin, $(basename $(SOURCE_FILES)))
3 |
4 | all: $(PROGRAMS)
5 |
6 | %.bin: %.o ../boot/generated/rom_defs.o
7 | ld65 -o $@ -C program.cfg --dbgfile $(<:.o=.dbg) $^
8 |
9 | %.o: %.s
10 | ca65 $< --cpu 65C02 --debug-info
11 |
12 | clean:
13 | rm -f *.o *.bin *.dbg
14 |
15 | .PHONY: all
16 |
17 |
--------------------------------------------------------------------------------
/rom/programs/nxp_sc16c752b_test.s:
--------------------------------------------------------------------------------
1 | ;
2 | ; Test program for the SC16C752B dual UART from NXP
3 | ;
4 | .import sys_exit
5 |
6 | ; Assuming /CSA is connected to IO3
7 | UART_BASE = $8c00
8 |
9 | ; UART registers
10 | ; Not included: FIFO ready register, Xon1 Xon2 words.
11 | UART_RHR = UART_BASE ; Receiver Holding Register (RHR) - R
12 | UART_THR = UART_BASE ; Transmit Holding Register (THR) - W
13 | UART_IER = UART_BASE + 1 ; Interrupt Enable Register (IER) - R/W
14 | UART_IIR = UART_BASE + 2 ; Interrupt Identification Register (IIR) - R
15 | UART_FCR = UART_BASE + 2 ; FIFO Control Register (FCR) - W
16 | UART_LCR = UART_BASE + 3 ; Line Control Register (LCR) - R/W
17 | UART_MCR = UART_BASE + 4 ; Modem Control Register (MCR) - R/W
18 | UART_LSR = UART_BASE + 5 ; Line Status Register (LSR) - R
19 | UART_MSR = UART_BASE + 6 ; Modem Status Register (MSR) - R
20 | UART_SPR = UART_BASE + 7 ; Scratchpad Register (SPR) - R/W
21 | ; Different meaning when LCR is logic 1
22 | UART_DLL = UART_BASE ; Divisor latch LSB - R/W
23 | UART_DLM = UART_BASE + 1 ; Divisor latch MSB - R/W
24 | ; Different meaning when LCR is %1011 1111 ($bh).
25 | UART_EFR = UART_BASE + 2 ; Enhanced Feature Register (EFR) - R/W
26 | UART_TCR = UART_BASE + 6 ; Transmission Control Register (TCR) - R/W
27 | UART_TLR = UART_BASE + 7 ; Trigger Level Register (TLR) - R/W
28 |
29 | .segment "CODE"
30 | main:
31 | lda #$80 ; Enable divisor latches
32 | sta UART_LCR
33 | lda #1 ; Set divisior to 1 - on a 1.8432 MHZ XTAL1, this gets 115200bps.
34 | sta UART_DLL
35 | lda #0
36 | sta UART_DLM
37 | lda #%00010111 ; Sets up 8-n-1
38 | sta UART_LCR
39 | lda #%00001111 ; Enable FIFO, set DMA mode 1
40 | sta UART_FCR
41 | jsr test_print
42 | jsr test_recv
43 | lda #0
44 | jmp sys_exit
45 |
46 | test_print: ; Send test string to UART
47 | ldx #0
48 | @test_char:
49 | lda test_string, X
50 | beq @test_done
51 | sta UART_THR
52 | inx
53 | jmp @test_char
54 | @test_done:
55 | rts
56 |
57 | test_string: .asciiz "Hello, world!"
58 |
59 | test_recv: ; Receive three characters and echo them back
60 | jsr uart_recv_char
61 | sta UART_THR
62 | jsr uart_recv_char
63 | sta UART_THR
64 | jsr uart_recv_char
65 | sta UART_THR
66 | rts
67 |
68 | uart_recv_char: ; Receive next char to A register
69 | lda UART_LSR
70 | and #%00000001
71 | cmp #%00000001
72 | bne uart_recv_char
73 | lda UART_RHR
74 | rts
75 |
76 |
--------------------------------------------------------------------------------
/rom/programs/program.cfg:
--------------------------------------------------------------------------------
1 | # ld65 linker configuration for user programs
2 | FEATURES {
3 | STARTADDRESS: default = $0400;
4 | }
5 |
6 | MEMORY {
7 | ZP: file = "", start = $0000, size = $0100, define = yes;
8 | MAIN: file = %O, start = %S, size = $8000 - %S, define = yes;
9 | BSS: file = "", start = __MAIN_LAST__, size = $8000 - __MAIN_LAST__, type = rw;
10 | ROM: file = "", start = $C000, size = $4000, type = ro;
11 | }
12 |
13 | SEGMENTS {
14 | ZEROPAGE: load = ZP, type = zp, optional = yes;
15 | CODE: load = MAIN, type = rw;
16 | RODATA: load = MAIN, type = ro, optional = yes;
17 | DATA: load = MAIN, type = rw, optional = yes;
18 | BSS: load = BSS, type = bss, optional = yes, define = yes;
19 | }
20 |
--------------------------------------------------------------------------------
/rom/programs/sd_test.s:
--------------------------------------------------------------------------------
1 | ;
2 | ; Test for reading from SD card.
3 | ; Expects card to be wired CD, CS, DI, DO, CLK on PA0..PA5
4 | ;
5 | .import acia_print_char, shell_newline, sys_exit, VIA_DDRA, hex_print_byte, VIA_PORTA, shell_rx_sleep_seconds
6 |
7 | .segment "ZEROPAGE"
8 | string_ptr: .res 2 ; Pointer for printing
9 | out_tmp: .res 1 ; Used for shifting bit out
10 | in_tmp: .res 1 ; Used when shifing bits in
11 |
12 | .segment "BSS"
13 | io_block_id: .res 4
14 | io_buffer: .res 512
15 |
16 | .segment "CODE"
17 | main:
18 | jsr via_setup
19 | jsr sd_reset
20 | ; Set block ID to 0
21 | stz io_block_id
22 | stz io_block_id + 1
23 | stz io_block_id + 2
24 | stz io_block_id + 3
25 | ; Read and print first block
26 | jsr sd_read_single_block
27 | jsr print_io_buffer
28 | ; Read and print second block
29 | inc io_block_id
30 | jsr sd_read_single_block
31 | jsr print_io_buffer
32 |
33 | lda #0
34 | jmp sys_exit
35 |
36 | ; Pin direction PA7..PA0.
37 | CS = %00001000
38 | MOSI = %00000100
39 | MISO = %00000001
40 | CLK = %00000010
41 |
42 | OUTPUT_PINS = CS | MOSI | CLK
43 |
44 | ; Set up pin directions on the VIA and set initial values.
45 | via_setup:
46 | lda #(CS | MOSI) ; CS and MOSI are high initially.
47 | sta VIA_PORTA
48 | lda #OUTPUT_PINS
49 | sta VIA_DDRA
50 | rts
51 |
52 | ; Print null terminated string
53 | print_string:
54 | ldy #0
55 | @test_char:
56 | lda (string_ptr), Y
57 | beq @test_done
58 | jsr acia_print_char
59 | iny
60 | jmp @test_char
61 | @test_done:
62 | rts
63 |
64 | ; Reset sequence for SD card, places it in SPI mode, completes initialization.
65 | sd_reset:
66 | ldx #74
67 | @clock:
68 | jsr spi_nothing_byte ; 80 cycles with MOSI and CS high.
69 | jsr spi_nothing_byte
70 | jsr spi_nothing_byte
71 | jsr spi_nothing_byte
72 | jsr spi_nothing_byte
73 | jsr spi_nothing_byte
74 | jsr spi_nothing_byte
75 | jsr spi_nothing_byte
76 | jsr spi_nothing_byte
77 | jsr spi_nothing_byte
78 | jsr sd_cmd_go_idle_state
79 | cmp #$01 ; Check for idle state
80 | bne @sd_reset_fail
81 | jsr sd_cmd_send_if_cond
82 | cmp #01 ; Expect command to be supported, indicating 2.x SD card.
83 | bne @sd_reset_fail
84 | jsr sd_cmd_read_ocr ; Do not care about response here, but expect it to be supported
85 | cmp #$01
86 | bne @sd_reset_fail
87 | jsr sd_cmd_app_cmd ; Send app command to activiate initialisation process
88 | cmp #$01
89 | bne @sd_reset_fail
90 | jsr sd_acmd_sd_send_op_cond
91 | cmp #$01 ; Expect initialisation in progress.
92 | bne @sd_reset_fail
93 | ldx #20 ; max attempts
94 | @reset_wait: ; Repeat last step until initialisation is complete
95 | phx
96 | jsr sd_cmd_app_cmd
97 | jsr sd_acmd_sd_send_op_cond
98 | plx
99 | cmp #$00 ; Init complete
100 | beq @sd_reset_init_ok
101 | dex
102 | cpx #0 ; max attempts exceeded
103 | bne @reset_wait ; repeat up to maximum, falls through to failure otherwise
104 | @sd_reset_fail:
105 | ldx #string_sd_reset_fail
108 | stx string_ptr + 1
109 | jsr print_string
110 | jsr shell_newline
111 | ; Not OK. Terminate program.
112 | lda #1
113 | jmp sys_exit
114 | @sd_reset_init_ok:
115 | jsr sd_cmd_read_ocr ; TODO read response bit here for CCS
116 | rts
117 |
118 | ; send SD card CMD0
119 | sd_cmd_go_idle_state:
120 | ; Select chip
121 | jsr sd_command_start
122 | ; Send command
123 | lda #%01000000
124 | jsr sd_byte_send
125 | lda #%00000000
126 | jsr sd_byte_send
127 | lda #%00000000
128 | jsr sd_byte_send
129 | lda #%00000000
130 | jsr sd_byte_send
131 | lda #%00000000
132 | jsr sd_byte_send
133 | lda #%10010101
134 | jsr sd_byte_send
135 |
136 | jsr sd_first_byte_of_response
137 | pha ; This will be 01 if everything is OK.
138 |
139 | jsr sd_command_end
140 | pla
141 | rts
142 |
143 | ; send SD card CMD8
144 | sd_cmd_send_if_cond:
145 | ; Select chip
146 | jsr sd_command_start
147 | lda #%01001000
148 | jsr sd_byte_send
149 | lda #%00000000
150 | jsr sd_byte_send
151 | lda #%00000000
152 | jsr sd_byte_send
153 | lda #%00000001
154 | jsr sd_byte_send
155 | lda #%10101010
156 | jsr sd_byte_send
157 | lda #%10000111
158 | jsr sd_byte_send
159 |
160 | jsr sd_first_byte_of_response
161 | pha ; This will be 01 if command is valid / everything is OK
162 | lda #%11111111
163 | jsr sd_byte_send
164 | lda #%11111111
165 | jsr sd_byte_send
166 | lda #%11111111
167 | jsr sd_byte_send
168 | lda #%11111111
169 | jsr sd_byte_send
170 | jsr sd_command_end
171 | pla ; Return first byte of response
172 | rts
173 |
174 | ; send SD card CMD58
175 | sd_cmd_read_ocr:
176 | jsr sd_command_start
177 | lda #%01111010
178 | jsr sd_byte_send
179 | lda #%00000000
180 | jsr sd_byte_send
181 | lda #%00000000
182 | jsr sd_byte_send
183 | lda #%00000000
184 | jsr sd_byte_send
185 | lda #%00000000
186 | jsr sd_byte_send
187 | lda #%01110101
188 | jsr sd_byte_send
189 |
190 | lda #%11111111 ; Fill
191 | jsr sd_byte_send
192 |
193 | lda #%11111111 ; 5 byte response
194 | jsr sd_byte_send
195 | pha
196 | lda #%11111111
197 | jsr sd_byte_send
198 | lda #%11111111
199 | jsr sd_byte_send
200 | lda #%11111111
201 | jsr sd_byte_send
202 | lda #%11111111
203 | jsr sd_byte_send
204 |
205 | jsr sd_command_end
206 | pla
207 | rts
208 |
209 | ; send SD card CMD55
210 | sd_cmd_app_cmd:
211 | jsr sd_command_start
212 | lda #%01110111
213 | jsr sd_byte_send
214 | lda #%00000000
215 | jsr sd_byte_send
216 | lda #%00000000
217 | jsr sd_byte_send
218 | lda #%00000000
219 | jsr sd_byte_send
220 | lda #%00000000
221 | jsr sd_byte_send
222 | lda #%11111111 ; Dummy CRC
223 | jsr sd_byte_send
224 |
225 | jsr sd_first_byte_of_response
226 | pha
227 |
228 | jsr sd_command_end
229 | pla
230 | rts
231 |
232 | ; send SD card ACMD41
233 | sd_acmd_sd_send_op_cond:
234 | jsr sd_command_start
235 | lda #%01101001
236 | jsr sd_byte_send
237 | lda #%01000000
238 | jsr sd_byte_send
239 | lda #%00000000
240 | jsr sd_byte_send
241 | lda #%00000000
242 | jsr sd_byte_send
243 | lda #%00000000
244 | jsr sd_byte_send
245 | lda #%11111111 ; Dummy CRC
246 | jsr sd_byte_send
247 |
248 | jsr sd_first_byte_of_response
249 | pha
250 |
251 | jsr sd_command_end
252 | pla
253 | rts
254 |
255 | ; send SD card CMD17
256 | sd_read_single_block:
257 | jsr sd_command_start
258 | lda #%01010001
259 | jsr sd_byte_send
260 | lda io_block_id + 3
261 | jsr sd_byte_send
262 | lda io_block_id + 2
263 | jsr sd_byte_send
264 | lda io_block_id + 1
265 | jsr sd_byte_send
266 | lda io_block_id
267 | jsr sd_byte_send
268 |
269 | jsr sd_first_byte_of_response
270 | cmp #$00 ; OK, block coming up
271 | bne @sd_read_single_block_fail
272 | jsr sd_first_byte_of_response
273 | cmp #$fe ; Start of block
274 | bne @sd_read_single_block_fail
275 |
276 | ldx #io_buffer
279 | stx string_ptr + 1
280 |
281 | @sd_read_page: ; read 255 bytes to I/O buffer, needs to be done twice
282 | ldy #$00
283 | @sd_read_page_next_byte:
284 | lda #%11111111
285 | phy
286 | jsr sd_byte_send
287 | sta (string_ptr), Y
288 | ply
289 | cpy #$ff
290 | beq @sd_read_page_done
291 | iny
292 | jmp @sd_read_page_next_byte
293 | @sd_read_page_done: ; Done reading a page. Is this first or second?
294 | ; Check high byte of string_ptr for second page
295 | ldx #(>io_buffer + 1)
296 | cpx string_ptr + 1
297 | beq @sd_read_single_block_done
298 | ; Bump to next page and repeat
299 | stx string_ptr + 1
300 | jmp @sd_read_page
301 | @sd_read_single_block_done:
302 | lda #%11111111 ; 16 byte CRC (ignored).
303 | jsr sd_byte_send
304 | lda #%11111111
305 | jsr sd_byte_send
306 | @sd_read_single_block_fail:
307 | jsr sd_command_end
308 | rts
309 |
310 | print_io_buffer:
311 | ; Set up pointer to first page of I/O buffer
312 | ldx #io_buffer
315 | stx string_ptr + 1
316 | jsr hexdump_page
317 | ;jsr hexdump_page
318 | rts
319 |
320 | hexdump_page:
321 | ; Hexdump one page of data, pointed to by string_ptr
322 | ldx #16
323 | @hexdump_page_next_line:
324 | phx
325 | jsr hexdump_line
326 | plx
327 | cpx #0
328 | beq @hexdump_page_done
329 | dex
330 | jmp @hexdump_page_next_line
331 | @hexdump_page_done:
332 | rts
333 |
334 | ; Given address in string_ptr, prints a line. Eg.
335 | ; 0c00 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 gggggggggggggggg
336 | hexdump_line:
337 | ; Print memory address first
338 | lda string_ptr + 1 ; High byte
339 | jsr hex_print_byte
340 | lda string_ptr ; Low byte
341 | jsr hex_print_byte
342 | lda #' ' ; Two spaces
343 | jsr acia_print_char
344 | jsr acia_print_char
345 | jsr hexdump_line_hex ; Print 16 bytes hex
346 | lda #' '
347 | jsr acia_print_char ; Extra space
348 | jsr hexdump_line_ascii ; Print 16 bytes ascii
349 | ; Print line in ASCII
350 | ; Newline at the end
351 | jsr shell_newline
352 | ; Move pointer by 16 bytes
353 | clc ; First byte
354 | lda string_ptr
355 | adc #16
356 | sta string_ptr
357 | lda string_ptr + 1 ; Second byte if carry set
358 | adc #0
359 | sta string_ptr + 1
360 | rts
361 |
362 | hexdump_line_hex:
363 | ; Print line in hex
364 | ldy #0
365 | @hexdump_line_next_byte:
366 | lda (string_ptr), Y
367 | jsr hex_print_byte ; Hex byte
368 | lda #' ' ; Spaces between bytes
369 | jsr acia_print_char
370 | iny
371 | cpy #8
372 | beq @hexdump_line_half_way
373 | cpy #16
374 | beq @hexdump_line_done
375 | jmp @hexdump_line_next_byte
376 | @hexdump_line_half_way:
377 | lda #' ' ; Extra space after 8 bytes
378 | jsr acia_print_char
379 | jmp @hexdump_line_next_byte
380 | @hexdump_line_done:
381 | rts
382 |
383 | hexdump_line_ascii:
384 | ldy #0
385 | @hexdump_line_ascii_next_byte:
386 | lda (string_ptr), Y ; Print byte as ASCII
387 | cmp #128 ; Substitute with '.' if >= 128
388 | bcs @char_subst
389 | cmp #32 ; Print if >= 32
390 | bcs @char_print
391 | @char_subst: ; Fallthrough to substitute
392 | lda #'.'
393 | @char_print:
394 | jsr acia_print_char
395 | iny
396 | cpy #16
397 | beq @hexdump_line_ascii_done
398 | jmp @hexdump_line_ascii_next_byte
399 | @hexdump_line_ascii_done:
400 | rts
401 |
402 |
403 | ; Send $ff to the SD card, return the first non-fill byte we get back in the A register.
404 | ; Returns $ff if the SD does not respond with a non-fill byte after 255 bytes.
405 | sd_first_byte_of_response:
406 | ldx #$ff ; Limit before failure
407 | @spi_consume_fill_byte:
408 | lda #%11111111 ; Fill
409 | phx ; Preserve X, send the byte
410 | jsr sd_byte_send
411 | plx
412 | cmp #%11111111 ; Empty response?
413 | bne @spi_consume_fill_bytes_done
414 | dex ; Repeat up to limit
415 | cpx #$00
416 | bne @spi_consume_fill_byte
417 | @spi_consume_fill_bytes_done:
418 | rts
419 |
420 | spi_debug = 0 ; Triggers optional wrapper. Print everything!
421 | sd_command_start:
422 | jsr spi_nothing_byte ; Send 8 bits of nothing without SD selected
423 | lda #%11111111 ; Send 8 bits of nothing w/ SD selected
424 | jsr sd_byte_send
425 | rts
426 |
427 | sd_command_end:
428 | lda #%11111111 ; Send 8 bits of nothing w/ SD selected
429 | jsr sd_byte_send
430 | jsr spi_nothing_byte ; Send 8 bits of nothing without SD selected
431 | .if spi_debug = 1
432 | jsr shell_newline
433 | .endif
434 | rts
435 |
436 | spi_nothing_byte:
437 | ldx #8 ; Send 8 bits of nothing, without SD selected
438 | @command_start_bit:
439 | lda #(MOSI | CS)
440 | sta VIA_PORTA
441 | lda #(CLK | MOSI | CS)
442 | dex
443 | cpx #0
444 | bne @command_start_bit
445 | rts
446 |
447 | sd_byte_send:
448 | .if spi_debug = 1
449 | phx
450 | phy
451 | pha
452 | jsr hex_print_byte
453 | lda #'/'
454 | jsr acia_print_char
455 | pla
456 | ply
457 | plx
458 | jsr sd_byte_send_real
459 | phx
460 | phy
461 | pha
462 | jsr hex_print_byte
463 | lda #' '
464 | jsr acia_print_char
465 | pla
466 | ply
467 | plx
468 | rts
469 | .endif
470 | sd_byte_send_real: ; Send the byte stored in the A register
471 | ldx #8
472 | sta out_tmp
473 | stz in_tmp
474 | @sd_send_bit: ; Send one bit
475 | asl in_tmp
476 | asl out_tmp ; Carry bit holds bit to send.
477 | bcs @sd_send_1
478 | @sd_send_0: ; Send a 0
479 | lda #0
480 | sta VIA_PORTA
481 | lda #CLK
482 | sta VIA_PORTA
483 | ;jsr debug_0_sent
484 | jmp @sd_send_bit_done
485 | @sd_send_1: ; Send a 1
486 | lda #MOSI
487 | sta VIA_PORTA
488 | lda #(MOSI | CLK)
489 | sta VIA_PORTA
490 | ;jsr debug_1_sent
491 | @sd_send_bit_done: ; Check received bit
492 | lda VIA_PORTA
493 | and #MISO
494 | cmp #MISO
495 | beq @sd_recv_1
496 | @sd_recv_0: ; Received a 0 - nothing to do.
497 | ; jsr debug_0_sent
498 | jmp @sd_recv_done
499 | @sd_recv_1: ; Received a 1
500 | lda in_tmp
501 | ora #%00000001
502 | sta in_tmp
503 | ; jsr debug_1_sent
504 | @sd_recv_done:
505 | dex
506 | cpx #0
507 | bne @sd_send_bit ; Repeat until all 8 bits are sent
508 | ; jsr debug_byte_done
509 | lda in_tmp
510 | ; jsr hex_print_byte
511 | ; jsr debug_byte_done
512 | rts
513 |
514 | string_sd_reset_fail: .asciiz "SD card reset failed"
515 |
--------------------------------------------------------------------------------
/rom/programs/test.s:
--------------------------------------------------------------------------------
1 | ;
2 | ; Simple test program.
3 | ;
4 | .import acia_print_char, shell_newline, sys_exit
5 |
6 | .segment "CODE"
7 | main:
8 | ldx #0
9 | @test_char:
10 | lda test_string, X
11 | beq @test_done
12 | jsr acia_print_char
13 | inx
14 | jmp @test_char
15 | @test_done:
16 | jsr shell_newline
17 | lda #0
18 | jmp sys_exit
19 |
20 | test_string: .asciiz "Test program"
21 |
--------------------------------------------------------------------------------