├── GAL ├── iodecoder │ ├── IODECODER.PLD │ ├── IODECODER.jed │ └── IODECODER.si └── memdecoder │ ├── MEMDECODER.PLD │ ├── MEMDECODER.jed │ └── MEMDECODER.si ├── LICENCE.md ├── README.md ├── basic ├── basic.asm ├── basic.srec ├── basic.txt └── readme.txt ├── bootloader ├── bootloader.asm └── bootloader_AT28C256.hex ├── doc └── HD6309_computer_schematics_v1.pdf ├── expansion └── sdcard │ ├── HD6309_sdcard.lib │ ├── sdcard-cache.lib │ ├── sdcard.kicad_pcb │ ├── sdcard.net │ ├── sdcard.pro │ ├── sdcard.sch │ └── sym-lib-table ├── images ├── HD6309_computer_30_4_2017_2_small.JPG └── HD6309_srec_loading_test.gif ├── kicad ├── HD6309_computer-cache.lib ├── HD6309_computer-rescue.dcm ├── HD6309_computer-rescue.lib ├── HD6309_computer.dsn ├── HD6309_computer.kicad_pcb ├── HD6309_computer.net ├── HD6309_computer.pro ├── HD6309_computer.sch └── hd6309_computer.pretty │ ├── CP_Elec_6.3x5.3.kicad_mod │ ├── C_0805_HandSoldering.kicad_mod │ ├── DIP-20_W7.62mm_LongPads.kicad_mod │ ├── DIP-28_W15.24mm_LongPads.kicad_mod │ ├── DIP-40_W15.24mm_LongPads.kicad_mod │ ├── HD6309_computer_name.kicad_mod │ ├── LED_D3.0mm_centered.kicad_mod │ ├── LQFP-48_7x7mm_Pitch0.5mm.kicad_mod │ ├── MountingHole_3.2mm_M3_DIN965.kicad_mod │ ├── OSCSMD7x5.kicad_mod │ ├── Pin_Header_Straight_1x02_Pitch2.54mm.kicad_mod │ ├── Pin_Header_Straight_1x05_Pitch2.54mm.kicad_mod │ ├── Pin_Header_Straight_1x08_Pitch2.54mm.kicad_mod │ ├── Pin_Header_Straight_1x10_Pitch2.54mm.kicad_mod │ ├── R_0805_HandSoldering.kicad_mod │ ├── SOIC-20W_7.5x12.8mm_Pitch1.27mm.kicad_mod │ ├── SW_PUSH_6mm.kicad_mod │ ├── TO-92_Inline_Wide.kicad_mod │ ├── TSOP-II_44pin_W400mil.kicad_mod │ ├── USB_B.kicad_mod │ ├── moseley_instruments_logo_smaller.kicad_mod │ └── retro_challenge_logo.kicad_mod ├── software ├── example1 │ ├── example1.asm │ └── example1.srec ├── exptest │ ├── compile.sh │ └── exptest.asm ├── mempager │ ├── compile.sh │ ├── mempager.asm │ └── mempager.srec └── sdtest │ ├── compile.sh │ └── sdtest.asm └── tools └── README.txt /GAL/iodecoder/IODECODER.PLD: -------------------------------------------------------------------------------- 1 | Name IODECODER; 2 | Partno ATF16V8B; 3 | Revision 02; 4 | Date 06-10-2019; 5 | Designer Niels Moseley; 6 | Company Moseley Instruments; 7 | Assembly HD6309 IO DECODER; 8 | Location U2; 9 | Device g16v8a; 10 | 11 | /********************************************************************************/ 12 | /* This device partially decodes the I/O address for the HD6309 computer */ 13 | /* */ 14 | /* UART : 0xE000 - 0xE008 */ 15 | /* EXPANSION : 0xE010 */ 16 | /* */ 17 | /* Compile using WINCUPL (http://www.atmel.com/tools/wincupl.aspx */ 18 | /* */ 19 | /* Serial number: 60008009 (Atmel) */ 20 | /********************************************************************************/ 21 | 22 | /* input signals - we don't use special clock PIN 1 */ 23 | pin 5 = RW ; /* R/~W pin from HD6309 */ 24 | pin 6 = E ; /* E pin from HD6309 */ 25 | pin 7 = RST_N ; /* System reset */ 26 | pin 9 = IO_CS_N ; /* I/O selection active */ 27 | pin [2..4] = [a4..a6]; /* Address lines from HD6309 */ 28 | pin 11 = !oe; /* output enable (do we need this?) */ 29 | 30 | /* outputs (available: 12..19) 31 | Note: negative outputs don't work 32 | as reported here: 33 | http://ecee.colorado.edu/~mcclurel/WinCUPL_Intro_handouts2.pdf 34 | so we define them as active high 35 | but code them as active low! 36 | */ 37 | 38 | pin 19 = uart_cs_n ; 39 | pin 18 = exp_oe_n ; 40 | pin 17 = exp_dir ; 41 | pin 16 = exp_read_n ; 42 | pin 15 = exp_write_n ; 43 | pin 14 = uart_reset ; 44 | pin 13 = nu_1 ; 45 | pin 12 = nu_2 ; 46 | 47 | /** declarations **/ 48 | 49 | field addr = [a6..a4] ; 50 | 51 | /** equations **/ 52 | uart_cs_n = !(addr:'B'000XXXX) # IO_CS_N; 53 | exp_read_n = !E # !RW # !(addr:'B'001XXXX) # IO_CS_N; 54 | exp_write_n = !E # RW # !(addr:'B'001XXXX) # IO_CS_N; 55 | exp_dir = !RW # !(addr:'B'001XXXX) # IO_CS_N; /* always high, except to read */ 56 | exp_oe_n = !(addr:'B'001XXXX) # IO_CS_N; /* drive low on all I/O */ 57 | /* exp_oe_n = RW # !(addr:'B'001XXXX) # IO_CS_N; */ /* driving on writes */ 58 | 59 | uart_reset = !RST_N ; 60 | nu_1 = 'B'0 ; /* not used */ 61 | nu_2 = 'B'0 ; /* not used */ 62 | 63 | -------------------------------------------------------------------------------- /GAL/iodecoder/IODECODER.jed: -------------------------------------------------------------------------------- 1 |  2 | CUPL(WM) 5.0a Serial# 60008009 3 | Device g16v8as Library DLIB-h-40-2 4 | Created Sun Oct 06 23:45:38 2019 5 | Name IODECODER 6 | Partno ATF16V8B 7 | Revision 02 8 | Date 06-10-2019 9 | Designer Niels Moseley 10 | Company Moseley Instruments 11 | Assembly HD6309 IO DECODER 12 | Location U2 13 | *QP20 14 | *QF2194 15 | *QV8 16 | *G0 17 | *F0 18 | *L00000 11111111011111111111111111111111 19 | *L00032 11110111111111111111111111111111 20 | *L00064 01111111111111111111111111111111 21 | *L00096 11111111111111111111111111110111 22 | *L00256 11111111011111111111111111111111 23 | *L00288 11110111111111111111111111111111 24 | *L00320 10111111111111111111111111111111 25 | *L00352 11111111111111111111111111110111 26 | *L00512 11111111111110111111111111111111 27 | *L00544 11111111011111111111111111111111 28 | *L00576 11110111111111111111111111111111 29 | *L00608 10111111111111111111111111111111 30 | *L00640 11111111111111111111111111110111 31 | *L00768 11111111111111111011111111111111 32 | *L00800 11111111111110111111111111111111 33 | *L00832 11111111011111111111111111111111 34 | *L00864 11110111111111111111111111111111 35 | *L00896 10111111111111111111111111111111 36 | *L00928 11111111111111111111111111110111 37 | *L01024 11111111111111111011111111111111 38 | *L01056 11111111111101111111111111111111 39 | *L01088 11111111011111111111111111111111 40 | *L01120 11110111111111111111111111111111 41 | *L01152 10111111111111111111111111111111 42 | *L01184 11111111111111111111111111110111 43 | *L01280 11111111111111111111101111111111 44 | *L02048 11111111010000010101010001000110 45 | *L02080 00110001001101100101011000111000 46 | *L02112 01000010000000001111111111111111 47 | *L02144 11111111111111111111111111111111 48 | *L02176 111111111111111110 49 | *C723C 50 | *P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 51 | *V0001 X00001XX0NXXXXHHHHLN 52 | *V0002 X00011XX0NXXXXHHHHLN 53 | *V0003 X10001XX0NXXXXLHHLHN 54 | *V0004 X10011XX0NXXXXHLLLHN 55 | *V0005 X00001XX1NXXXXHHHHHN 56 | *V0006 X00011XX1NXXXXHHHHHN 57 | *V0007 X10001XX1NXXXXHHHHHN 58 | *V0008 X10011XX1NXXXXHHHHHN 59 | *8D79 -------------------------------------------------------------------------------- /GAL/iodecoder/IODECODER.si: -------------------------------------------------------------------------------- 1 | Name IODECODER; 2 | PartNo ATF16V8B; 3 | Date 06-10-2019; 4 | Revision 02; 5 | Designer Niels Moseley; 6 | Company Moseley Instruments; 7 | Assembly HD6309 IO DECODER; 8 | Location U2; 9 | Device g16v8a; 10 | 11 | 12 | ORDER: a6, a5, a4, RW, E, IO_CS_N, %2, uart_cs_n, exp_read_n, exp_write_n, exp_dir, exp_oe_n; 13 | 14 | 15 | VECTORS: 16 | 000010LHHHH 17 | 000110LHHHH 18 | 001010HHLHL 19 | 001110HLHLL 20 | 000011HHHHH 21 | 000111HHHHH 22 | 001011HHHHH 23 | 001111HHHHH 24 | -------------------------------------------------------------------------------- /GAL/memdecoder/MEMDECODER.PLD: -------------------------------------------------------------------------------- 1 | Name MEMDECODER; 2 | Partno ATF16V8B; 3 | Revision 03; 4 | Date 26-4-2017; 5 | Designer Niels Moseley; 6 | Company Moseley Instruments; 7 | Assembly HD6309 MEMORY DECODER; 8 | Location U4; 9 | Device g16v8a; 10 | 11 | /********************************************************************************/ 12 | /* This device partially decodes the memory address for the HD6309 computer */ 13 | /* */ 14 | /* We won't use the memory mapper for now. */ 15 | /* */ 16 | /* RAM: 0x0000 - 0xDFFF */ 17 | /* IO : 0xE000 - 0xE7FF */ 18 | /* MAP: 0xE800 - 0xEFFF */ 19 | /* ROM: 0xF000 - 0xF000 */ 20 | /* */ 21 | /* WRITE RAM MAP: 0xEC-- */ 22 | /* */ 23 | /* Compile using WINCUPL (http://www.atmel.com/tools/wincupl.aspx */ 24 | /* */ 25 | /* Serial number: 60008009 (Atmel) */ 26 | /********************************************************************************/ 27 | 28 | /* input signals - we don't use special clock PIN 1 */ 29 | pin 2 = E ; /* E clock from HD6309 */ 30 | pin 3 = RW ; /* R/~W pin from HD6309 */ 31 | pin [4..9] = [a15..a10]; /* Address lines from HD6309 */ 32 | pin 11 = !oe; /* output enable (do we need this?) */ 33 | 34 | /* outputs (available: 12..19) 35 | Note: negative outputs don't work 36 | as reported here: 37 | http://ecee.colorado.edu/~mcclurel/WinCUPL_Intro_handouts2.pdf 38 | so we define them as active high 39 | but code them as active low! 40 | */ 41 | 42 | pin 19 = ram_fix_n ; 43 | pin 18 = ram_map_n ; 44 | pin 17 = ram_cs_n ; 45 | pin 16 = write_n ; 46 | pin 15 = read_n ; 47 | pin 14 = rom_cs_n ; 48 | pin 13 = write_map ; 49 | pin 12 = io_cs_n ; 50 | 51 | /** declarations **/ 52 | 53 | field addr = [a15..a10] ; 54 | 55 | /** equations **/ 56 | read_n = !E # !RW ; 57 | write_n = !E # RW ; 58 | ram_cs_n = a15 & a14 & a13; 59 | io_cs_n = !a15 # !a14 # !a13 # a12 # a11; 60 | rom_cs_n = !a15 # !a14 # !a13 # !a12; 61 | write_map = a15 & a14 & a13 & !a12 & a11 & !E & !RW; 62 | ram_fix_n = !a15; 63 | ram_map_n = a15; 64 | -------------------------------------------------------------------------------- /GAL/memdecoder/MEMDECODER.jed: -------------------------------------------------------------------------------- 1 |  2 | CUPL(WM) 5.0a Serial# 60008009 3 | Device g16v8as Library DLIB-h-40-2 4 | Created Sun May 07 22:08:28 2017 5 | Name MEMDECODER 6 | Partno ATF16V8B 7 | Revision 03 8 | Date 26-4-2017 9 | Designer Niels Moseley 10 | Company Moseley Instruments 11 | Assembly HD6309 MEMORY DECODER 12 | Location U4 13 | *QP20 14 | *QF2194 15 | *QV23 16 | *G0 17 | *F0 18 | *L00000 11111111101111111111111111111111 19 | *L00256 11111111011111111111111111111111 20 | *L00512 11111111011101110111111111111111 21 | *L00768 10111111111111111111111111111111 22 | *L00800 11110111111111111111111111111111 23 | *L01024 10111111111111111111111111111111 24 | *L01056 11111011111111111111111111111111 25 | *L01280 11111111101111111111111111111111 26 | *L01312 11111111111110111111111111111111 27 | *L01344 11111111111111111011111111111111 28 | *L01376 11111111111111111111101111111111 29 | *L01536 10111011011101110111101101111111 30 | *L01792 11111111101111111111111111111111 31 | *L01824 11111111111110111111111111111111 32 | *L01856 11111111111111111011111111111111 33 | *L01888 11111111111111111111011111111111 34 | *L01920 11111111111111111111111101111111 35 | *L02048 11111111010000010101010001000110 36 | *L02080 00110001001101100101011000111000 37 | *L02112 01000010000000001111111111111111 38 | *L02144 11111111111111111111111111111111 39 | *L02176 111111111111111110 40 | *C4E6B 41 | *P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 42 | *V0001 X01000000NXHXHHHLLXN 43 | *V0002 X11000000NXHXHLHLLXN 44 | *V0003 X00000000NXHXHHHLLXN 45 | *V0004 X10000000NXHXHHLLLXN 46 | *V0005 X01111000NXLXHHHHHXN 47 | *V0006 X11111000NXLXHLHHHXN 48 | *V0007 X01111100NXHXLHHHHXN 49 | *V0008 X11111100NXHXLLHHHXN 50 | *V0009 X11000000NXHXHLHLLXN 51 | *V0010 X11000100NXHXHLHLLXN 52 | *V0011 X11001000NXHXHLHLLXN 53 | *V0012 X11001100NXHXHLHLLXN 54 | *V0013 X11010000NXHXHLHLLXN 55 | *V0014 X11010100NXHXHLHLLXN 56 | *V0015 X11011000NXHXHLHLLXN 57 | *V0016 X11011100NXHXHLHLLXN 58 | *V0017 X11100000NXHXHLHLHXN 59 | *V0018 X11100100NXHXHLHLHXN 60 | *V0019 X11101000NXHXHLHLHXN 61 | *V0020 X11101100NXHXHLHLHXN 62 | *V0021 X11110000NXHXHLHLHXN 63 | *V0022 X11110100NXHXHLHLHXN 64 | *V0023 X11111000NXLXHLHHHXN 65 | *AAE7 -------------------------------------------------------------------------------- /GAL/memdecoder/MEMDECODER.si: -------------------------------------------------------------------------------- 1 | Name MEMDECODER; 2 | PartNo ATF16V8B; 3 | Date 26-4-2017; 4 | Revision 03; 5 | Designer Niels Moseley; 6 | Company Moseley Instruments; 7 | Assembly HD6309 MEMORY DECODER; 8 | Location U4; 9 | Device g16v8a; 10 | 11 | 12 | ORDER: a15, a14, a13, a12, a11, a10, E, RW, %2, ram_cs_n, io_cs_n, rom_cs_n, write_n, read_n, ram_map_n; 13 | 14 | 15 | VECTORS: 16 | $MSG "ARSE!"; 17 | 00000001LHHHHL 18 | 00000011LHHHLL 19 | 00000000LHHHHL 20 | 00000010LHHLHL 21 | 11100001HLHHHH 22 | 11100011HLHHLH 23 | 11110001HHLHHH 24 | 11110011HHLHLH 25 | 00000011LHHHLL 26 | 00010011LHHHLL 27 | 00100011LHHHLL 28 | 00110011LHHHLL 29 | 01000011LHHHLL 30 | 01010011LHHHLL 31 | 01100011LHHHLL 32 | 01110011LHHHLL 33 | 10000011LHHHLH 34 | 10010011LHHHLH 35 | 10100011LHHHLH 36 | 10110011LHHHLH 37 | 11000011LHHHLH 38 | 11010011LHHHLH 39 | 11100011HLHHLH 40 | 11110011HHLHLH -------------------------------------------------------------------------------- /LICENCE.md: -------------------------------------------------------------------------------- 1 | #CERN Open Hardware Licence v1.2 2 | 3 | ##Preamble 4 | 5 | Through this CERN Open Hardware Licence ("CERN OHL") version 1.2, CERN 6 | wishes to provide a tool to foster collaboration and sharing among 7 | hardware designers. The CERN OHL is copyright CERN. Anyone is welcome 8 | to use the CERN OHL, in unmodified form only, for the distribution of 9 | their own Open Hardware designs. Any other right is reserved. Release 10 | of hardware designs under the CERN OHL does not constitute an 11 | endorsement of the licensor or its designs nor does it imply any 12 | involvement by CERN in the development of such designs. 13 | 14 | ##1. Definitions 15 | 16 | In this Licence, the following terms have the following meanings: 17 | 18 | “Licence” means this CERN OHL. 19 | 20 | “Documentation” means schematic diagrams, designs, circuit or circuit 21 | board layouts, mechanical drawings, flow charts and descriptive text, 22 | and other explanatory material that is explicitly stated as being made 23 | available under the conditions of this Licence. The Documentation may 24 | be in any medium, including but not limited to computer files and 25 | representations on paper, film, or any other media. 26 | 27 | “Documentation Location” means a location where the Licensor has 28 | placed Documentation, and which he believes will be publicly 29 | accessible for at least three years from the first communication to 30 | the public or distribution of Documentation. 31 | 32 | “Product” means either an entire, or any part of a, device built using 33 | the Documentation or the modified Documentation. 34 | 35 | “Licensee” means any natural or legal person exercising rights under 36 | this Licence. 37 | 38 | “Licensor” means any natural or legal person that creates or modifies 39 | Documentation and subsequently communicates to the public and/ or 40 | distributes the resulting Documentation under the terms and conditions 41 | of this Licence. 42 | 43 | A Licensee may at the same time be a Licensor, and vice versa. 44 | 45 | Use of the masculine gender includes the feminine and neuter genders 46 | and is employed solely to facilitate reading. 47 | 48 | ##2. Applicability 49 | 50 | 2.1. This Licence governs the use, copying, modification, 51 | communication to the public and distribution of the Documentation, and 52 | the manufacture and distribution of Products. By exercising any right 53 | granted under this Licence, the Licensee irrevocably accepts these 54 | terms and conditions. 55 | 56 | 2.2. This Licence is granted by the Licensor directly to the Licensee, 57 | and shall apply worldwide and without limitation in time. The Licensee 58 | may assign his licence rights or grant sub-licences. 59 | 60 | 2.3. This Licence does not extend to software, firmware, or code 61 | loaded into programmable devices which may be used in conjunction with 62 | the Documentation, the modified Documentation or with Products, unless 63 | such software, firmware, or code is explicitly expressed to be subject 64 | to this Licence. The use of such software, firmware, or code is 65 | otherwise subject to the applicable licence terms and conditions. 66 | 67 | ##3. Copying, modification, communication to the public and distribution of the Documentation 68 | 69 | 3.1. The Licensee shall keep intact all copyright and trademarks 70 | notices, all notices referring to Documentation Location, and all 71 | notices that refer to this Licence and to the disclaimer of warranties 72 | that are included in the Documentation. He shall include a copy 73 | thereof in every copy of the Documentation or, as the case may be, 74 | modified Documentation, that he communicates to the public or 75 | distributes. 76 | 77 | 3.2. The Licensee may copy, communicate to the public and distribute 78 | verbatim copies of the Documentation, in any medium, subject to the 79 | requirements specified in section 3.1. 80 | 81 | 3.3. The Licensee may modify the Documentation or any portion thereof 82 | provided that upon modification of the Documentation, the Licensee 83 | shall make the modified Documentation available from a Documentation 84 | Location such that it can be easily located by an original Licensor 85 | once the Licensee communicates to the public or distributes the 86 | modified Documentation under section 3.4, and, where required by 87 | section 4.1, by a recipient of a Product. However, the Licensor shall 88 | not assert his rights under the foregoing proviso unless or until a 89 | Product is distributed. 90 | 91 | 3.4. The Licensee may communicate to the public and distribute the 92 | modified Documentation (thereby in addition to being a Licensee also 93 | becoming a Licensor), always provided that he shall: 94 | 95 | a) comply with section 3.1; 96 | 97 | b) cause the modified Documentation to carry prominent notices stating 98 | that the Licensee has modified the Documentation, with the date and 99 | description of the modifications; 100 | 101 | c) cause the modified Documentation to carry a new Documentation 102 | Location notice if the original Documentation provided for one; 103 | 104 | d) make available the modified Documentation at the same level of 105 | abstraction as that of the Documentation, in the preferred format for 106 | making modifications to it (e.g. the native format of the CAD tool as 107 | applicable), and in the event that format is proprietary, in a format 108 | viewable with a tool licensed under an OSI-approved license if the 109 | proprietary tool can create it; and 110 | 111 | e) license the modified Documentation under the terms and conditions 112 | of this Licence or, where applicable, a later version of this Licence 113 | as may be issued by CERN. 114 | 115 | 3.5. The Licence includes a non-exclusive licence to those patents or 116 | registered designs that are held by, under the control of, or 117 | sub-licensable by the Licensor, to the extent necessary to make use of 118 | the rights granted under this Licence. The scope of this section 3.5 119 | shall be strictly limited to the parts of the Documentation or 120 | modified Documentation created by the Licensor. 121 | 122 | ##4. Manufacture and distribution of Products 123 | 124 | 4.1. The Licensee may manufacture or distribute Products always 125 | provided that, where such manufacture or distribution requires a 126 | licence under this Licence the Licensee provides to each recipient of 127 | such Products an easy means of accessing a copy of the Documentation 128 | or modified Documentation, as applicable, as set out in section 3. 129 | 130 | 4.2. The Licensee is invited to inform any Licensor who has indicated 131 | his wish to receive this information about the type, quantity and 132 | dates of production of Products the Licensee has (had) manufactured 133 | 134 | ##5. Warranty and liability 135 | 136 | 5.1. DISCLAIMER – The Documentation and any modified Documentation are 137 | provided "as is" and any express or implied warranties, including, but 138 | not limited to, implied warranties of merchantability, of satisfactory 139 | quality, non-infringement of third party rights, and fitness for a 140 | particular purpose or use are disclaimed in respect of the 141 | Documentation, the modified Documentation or any Product. The Licensor 142 | makes no representation that the Documentation, modified 143 | Documentation, or any Product, does or will not infringe any patent, 144 | copyright, trade secret or other proprietary right. The entire risk as 145 | to the use, quality, and performance of a Product shall be with the 146 | Licensee and not the Licensor. This disclaimer of warranty is an 147 | essential part of this Licence and a condition for the grant of any 148 | rights granted under this Licence. The Licensee warrants that it does 149 | not act in a consumer capacity. 150 | 151 | 5.2. LIMITATION OF LIABILITY – The Licensor shall have no liability 152 | for direct, indirect, special, incidental, consequential, exemplary, 153 | punitive or other damages of any character including, without 154 | limitation, procurement of substitute goods or services, loss of use, 155 | data or profits, or business interruption, however caused and on any 156 | theory of contract, warranty, tort (including negligence), product 157 | liability or otherwise, arising in any way in relation to the 158 | Documentation, modified Documentation and/or the use, manufacture or 159 | distribution of a Product, even if advised of the possibility of such 160 | damages, and the Licensee shall hold the Licensor(s) free and harmless 161 | from any liability, costs, damages, fees and expenses, including 162 | claims by third parties, in relation to such use. 163 | 164 | ##6. General 165 | 166 | 6.1. Except for the rights explicitly granted hereunder, this Licence 167 | does not imply or represent any transfer or assignment of intellectual 168 | property rights to the Licensee. 169 | 170 | 6.2. The Licensee shall not use or make reference to any of the names 171 | (including acronyms and abbreviations), images, or logos under which 172 | the Licensor is known, save in so far as required to comply with 173 | section 3. Any such permitted use or reference shall be factual and 174 | shall in no event suggest any kind of endorsement by the Licensor or 175 | its personnel of the modified Documentation or any Product, or any 176 | kind of implication by the Licensor or its personnel in the 177 | preparation of the modified Documentation or Product. 178 | 179 | 6.3. CERN may publish updated versions of this Licence which retain 180 | the same general provisions as this version, but differ in detail so 181 | far this is required and reasonable. New versions will be published 182 | with a unique version number. 183 | 184 | 6.4. This Licence shall terminate with immediate effect, upon written 185 | notice and without involvement of a court if the Licensee fails to 186 | comply with any of its terms and conditions, or if the Licensee 187 | initiates legal action against Licensor in relation to this 188 | Licence. Section 5 shall continue to apply. 189 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HD6309-Computer 2 | A computer based on the HD6309 CPU, done for the Retro Challenge 2017/04. 3 | 4 | ![HD6309 Computer Image](images/HD6309_computer_30_4_2017_2_small.JPG) 5 | ![HD6309 Computer Image](images/HD6309_srec_loading_test.gif) 6 | 7 | 8 | Read the blog: [https://namoseley.wordpress.com/category/retrochallenge/](https://namoseley.wordpress.com/category/retrochallenge/) 9 | 10 | Features: 11 | * HD6309 CPU 12 | * Binary compatible to MC6809 13 | * ..but faster instruction execution, 14 | * ..extended registers, 15 | * ..additional instructions, 16 | * and lots more! 17 | * 1MB of RAM: 18 | * mapped in 32K pages at 0x0000 .. 0x7FFF 19 | * fixed page at 0x8000 .. 0xDFFF 20 | * 2KB of IO space: 21 | * SC16C550B UART at 0xE000 22 | * 8-bit expansions port at 0xE010(untested!) 23 | * Memory map register: 24 | * 5-bit entry sets A15..A19 on RAM 25 | * reg at address 0xE800 26 | * 4KB of ROM: 27 | * Memory check 28 | * SREC loader 29 | 30 | Licence: CERN Open Hardware Licence v1.2 31 | 32 | Development time provided by: http://www.moseleyinstruments.com 33 | -------------------------------------------------------------------------------- /basic/basic.srec: -------------------------------------------------------------------------------- 1 | S01B00005B6C77746F6F6C7320342E31335D2062617369632E61736DA1 2 | S11380007E800B10DE06BD87CC201310CE7ECC10F4 3 | S1138010DF06BD87CCCC0149DD00DD02DD04BD8176 4 | S1138020358E8079BD812E10DE060F13BD81359EFD 5 | S1138030009F088E00009F0C0D132605863ABD870D 6 | S1138040A4BD8188BD82E2240E292BBD8253810404 7 | S113805027E1BD820520D034109E029C04351027F0 8 | S1138060037E8155C30000270D340683270F350690 9 | S113807022048D1020BD7E814C54494E5920563126 10 | S11380802E3337043406BD82539F0EA6609E089C8F 11 | S113809002270510A30024029E00BD83BE9F08256D 12 | S11380A0229F0A3002A680810426FA9C02270EA68B 13 | S11380B0809F109E0AA7809F0A9E1020EE9E0A9F12 14 | S11380C0029F049E0EC6FF5CA680810426F95D26ED 15 | S11380D003326239301FCB04301F5AA60081202797 16 | S11380E0F78604A7014F9E029F10D302DD02DD0430 17 | S11380F0BD835A24079F029F047E81449E029F0AE7 18 | S11381009E109C08270AA6829F109E0AA78220EE32 19 | S113811035069E08ED819F109E0EA6809F0E9E1030 20 | S1138120A7809F10810426F039BD87A43001A600E2 21 | S1138130810426F5398E813D8DF40F12390D0A7FA5 22 | S1138140000000048D26534F525259048D1E574887 23 | S11381504154203F048D15484F57203F048D0D4254 24 | S11381605245414B048D0553544F50048DC7860727 25 | S1138170BD87A4DC0CBD86588620BD87A435108D30 26 | S1138180AD8DB27E80278DAD8E0100BD879A812092 27 | S11381902514817F27F58C0148260486072002A731 28 | S11381A080BD87A420E581082724811827D8810A67 29 | S11381B02731810D26D50D132705BD87A42007344B 30 | S11381C010BD813535108604A7008E0100398C015D 31 | S11381D00027B8301F8608BD87A48620BD87A486E3 32 | S11381E00820BE1A01061320B830018D66810426CA 33 | S11381F0F8BD852B960C9A0D27149C0226037E81CC 34 | S113820055EC81DD0CBD87968D0825033406397E37 35 | S1138210853C8D3F9F088E8731A680810426059E6C 36 | S1138220081A01399F109E089F0E9E0EA100261564 37 | S113823030019F0E9E10A6809F10810426ECEC0056 38 | S11382409E0E1CFE399E10A680810426FA30022060 39 | S1138250C83001A600812027F8398D1A24228141D3 40 | S113826025118146220D80371CFE39814125048168 41 | S11382705A230D1A0139813025F9813922F58030CC 42 | S11382801CFE398DCE8DE425121F89A6018DDC24B8 43 | S1138290E23001C041584FD3061CFE39BD850A3473 44 | S11382A006BD8253812C270981291A0127157E8155 45 | S11382B04C3001BD843D3402BD82538129350226F0 46 | S11382C0ED1CFE30019F08ADF19E081CFE39BD82F5 47 | S11382D053812D260D30018D092506405082001C46 48 | S11382E0FC39BD8253BD8276242F81241A01266075 49 | S11382F030016FE26FE2A600BD825A254F3001348F 50 | S1138300103402EC6385F0264A58495849584958B4 51 | S113831049EBE0ED62351020DD300134026FE2A656 52 | S113832000BD82762526300134103402EC635849AE 53 | S113833029215849291DE363291958492915EB6056 54 | S11383408900290FED633261351020D335061CFEF8 55 | S11383501CFD39AE6132651A033910DF0ADC0A8369 56 | S11383600030930439BD84F734063410E6F802353E 57 | S11383701032624F39BD84F73406BD8253813D27E4 58 | S1138380037E814C3001BD843DBD852B3410E7F85C 59 | S113839002351032627E81F4BD82539F088E83A819 60 | S11383A0BD8219250234063955535204829C504526 61 | S11383B0454B0483654D454D04835A049E009C023D 62 | S11383C026031A033910A30026031CFC3924051ABA 63 | S11383D0011CFD393402860430013001A10026FA63 64 | S11383E03502300120D88D5534065FBD8253813D5E 65 | S11383F02723813C261030015CBD8253813E261127 66 | S11384003001CB042013813E265F3001CB04BD82B2 67 | S113841053813D26043001CB0234048D203410A353 68 | S1138420631FA8441F8948483404ABE0840626012E 69 | S11384304C5FA4622701534F35103263396FE26FEA 70 | S1138440E2BD8253812D2717812B260230018D1C1A 71 | S1138450E360ED60BD8253812B27F1812D260A3024 72 | S1138460018D094050820020E7350639BD84DF3490 73 | S113847006BD8253812A2748812F270335063930C8 74 | S1138480018D5C341030623406A800BD851E306056 75 | S1138490BD851E3402861134024F5FA3622406E3B5 76 | S11384A0621CFE20021A016967696659496A6026DE 77 | S11384B0EAA66132644D2A0430628D66351020B11B 78 | S11384C030018D1B3404E6623DA661E761E6603D40 79 | S11384D0A662E76235043DAB60AB61ED602092BDFE 80 | S11384E08283250934101F01EC00351039BD82E266 81 | S11384F024FABD839824F58D113402BD8253812959 82 | S1138500350226033001397E814CBD835A24037E13 83 | S11385108144BD8253812826EE30017E843D6D0066 84 | S11385202A086000600124026A00393402BD8253C3 85 | S1138530810427037E814C3001350239BD828324B6 86 | S1138540037E814C3406BD8253813D27037E814CDA 87 | S11385503001BD843D8DD49F083510ED009E087E0A 88 | S113856081F4BD83E65D27037E82057E81EBBD84B5 89 | S11385703D8DB8BD83BC250F7E8201BD843D8DAB8E 90 | S11385809F08BD83BC24037E8155BD835A24037E8A 91 | S11385908144DC083406DC0C3406BD82013506DD7A 92 | S11385A00C35107E81F4BD8253812C2736813B2704 93 | S11385B03D810427258122260630018D422009BDF4 94 | S11385C0843D34108D473510BD8253812C2714818E 95 | S11385D03B271B810427037E814C3410BD81353534 96 | S11385E0102014C6078620BD87A4D51226F73001B3 97 | S11385F0BD8253810426B230017E81F4BD87A4A6D6 98 | S113860080810426037E814C812226F0394D2A0D77 99 | S1138610405082003402862DBD87A435028E864CDC 100 | S1138620300210A30024058C865626F40F1010A3E4 101 | S1138630002506A3000C1020F5340286309B10BDE3 102 | S113864087A435028C86562704300220DF39271090 103 | S113865003E80064000A00018E865020CFBD8283A7 104 | S1138660253C34069F08863FBD87A4BD8188BD8212 105 | S113867053810427F1BD82CE240B8E86B2BD812E98 106 | S1138680BD813520E19F0E3510ED009E08BD82535B 107 | S1138690812C27037E81F13001BD828324037E81F6 108 | S11386A04C340634109E0EBD8253812C26C03001FA 109 | S11386B020BC52452D454E544552049E0686346FC7 110 | S11386C0804A26FB9E007E81FABD82E224084F5F29 111 | S11386D0DD08867F2017DD08BD8253812C27049690 112 | S11386E008200A3001BD82E224037E814CBD852B23 113 | S11386F03406DC089F08BD83BC9C0227283506107D 114 | S1138700A30025283406EC813410BD865835108624 115 | S113871020BD87A4BD812E30013410BD81353510B4 116 | S1138720BD879620D432628603BD87A49E087E81CD 117 | S1138730F44C455404853C4946048562474F544FE4 118 | S113874004856E474F53554204857B524554555218 119 | S11387504E04852B504F4B450483755052494E545B 120 | S11387600485A6494E50555404865D52454D0481F6 121 | S1138770EB53544F50048165454E44048165525572 122 | S11387804E0486BB4C4953540486C94E4557048055 123 | S1138790153F0485A6048D2A27098D0D8103260320 124 | S11387A07E815D390C127E87B38D1727FCB6E000FD 125 | S11387B0847F393402B6E005852027F93502B7E015 126 | S11087C000393402B6E0058501350239396F 127 | S503007D7F 128 | S90380007C 129 | -------------------------------------------------------------------------------- /basic/basic.txt: -------------------------------------------------------------------------------- 1 | TINY BASIC SUMMARY 2 | 3 | Editing Standard Basic 4 | 5 | Direct Mode All Verbs Usable 6 | 7 | Statement Types 8 | 9 | PRINT Item List 10 | LET Var = Expr (LET is optional) 11 | IF Expr Relop Expr Statement 12 | INPUT Variable List 13 | GOTO Line Number 14 | GOSUB Line Number 15 | RETURN 16 | POKE POKE(Expr) = Expr 17 | STOP 18 | LIST Line Number, Line Number (Line Numbers are optional) 19 | RUN 20 | NEW 21 | 22 | Functions 23 | 24 | USR Variable = USR(Expr,Expr) 25 | PEEK Variable = PEEK(Expr) 26 | MEM Variable = MEM 27 | 28 | Number Integers to _+32767 or Hex Integers preceded by a $ symbol 29 | 30 | Variable Letters A-Z 31 | 32 | Expression Variables, Numbers, and Functions combined with the following 33 | operators +, -, *, /, (, ). 34 | 35 | Relop Comparison operators =, <, >, <=, >=, <>. 36 | 37 | Line Number Numbers 1 through 9999 38 | 39 | String "ALPHANUMERICS" 40 | 41 | Item List Expressions and Strings seperated by format control 42 | characters , and ;. 43 | 44 | Control Chars. Control H or "Back Space" deletes last input character. 45 | Control X or "Cancel" deletes entire input line. 46 | Control C Terminates Basic program or List operation and 47 | returns control to command mode. 48 | 49 | Memory Usage Tiny Basic V1.37 50 | 51 | $0080 - $009F Tiny Basic interpreter scratch area. 52 | $00A0 - $00FD Not used by Tiny Basic interpreter. (usable USR routines) 53 | $**** - $**** Pointer to Interrupt Vector Table. (Identical to LILBUG) 54 | $D800 - $DFFF Input Buffer, Basic Program storage, Stack Space, and 55 | Variables in RAM. 56 | $**** - $**** Optional Power Up Basic Program and/or USR functions in ROM. 57 | $E800 - $EFFF Tiny Basic interpreter ROM. 58 | 59 | $E800 Cold Start Address. 60 | $E803 Warm Start Address. 61 | 62 | Tiny Basic USR Function 63 | 64 | The USR function in Tiny Basic takes 2 arguments and returns a value to a 65 | variable. The form of the USR function is "LET V = USR(Expr,Expr)". 66 | The USR function can be used in any expression in Tiny Basic as an example 67 | "LET V = A * ( B + USR( $EF00, K))". The USR function can also be used with 68 | the PRINT statement. 69 | 70 | The first argument of the USR function is evaluated to determine the address 71 | or the machine language code to be called. The second argument is evaluated 72 | and the value is send to the machine code routine in the D accumulator. The 73 | second argument is optional, if it is present the Carry bit in the condition 74 | code register will be cleared when the machine code routine is called. If the 75 | second argument is not present the Carry Bit will be set when the machine code 76 | is called. The machine code routine may return a result to the BASIC program 77 | in the D accumulator, the value in the D accumulator on return from the machine 78 | code routine will be used by the BASIC program as the value of the function. 79 | 80 | The machine code routine must execute a RTS instruction to return conterol to 81 | the BASIC program. The machine code routine may use all the processor registers 82 | freely and need not save and restore any registers. It is important that the 83 | machine code routine not modify any memory used by the Tiny Basic interpreter. 84 | Consult the memory map provided with your version of Tiny Basic to determine 85 | which memory areas are not used. 86 | 87 | Tiny Basic handles interrupts with the same interrupt vectoring technique used 88 | by LILBUG. Consult the LILBUG manual for details on interrupt vector usage. 89 | 90 | 91 | 92 | JPB 12-APR-82 93 | -------------------------------------------------------------------------------- /basic/readme.txt: -------------------------------------------------------------------------------- 1 | Basic was adapted from: https://github.com/6809/sbc09/tree/master/basic 2 | -------------------------------------------------------------------------------- /bootloader/bootloader.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Bootloader for HD6309 computer 3 | ; Retro Challenge 2017/04 4 | ; Niels A. Moseley 5 | ; www.moseleyinstruments.com 6 | ; 7 | ; Version 8 | ; 1.0 - initial version 9 | ; 1.1 - replaced custom loader with SREC loader 10 | ; 1.2 - moved the ISR trampoline addresses to 11 | ; non-paged memory. 12 | 13 | ; ================================================== 14 | ; SYSTEM CONSTANTS 15 | ; ================================================== 16 | 17 | RAMSTART EQU $0000 18 | RAMEND EQU $E000 19 | STACK EQU $DFF0 20 | 21 | ; ================================================== 22 | ; BOOTLOADER ADDRESSES 23 | ; ================================================== 24 | JMPADDR EQU $DFFE ; 16 bits 25 | SRECCHK EQU $DFFD ; 8 bits 26 | SRECERR EQU $DFFC ; 8 bits 27 | SRECTMP EQU $DFFB ; 8 bits 28 | 29 | ; ================================================== 30 | ; ISR TRAMPOLINE ADDRESSES 31 | ; ================================================== 32 | 33 | NMIADDR EQU $DFEA ; 16 bits 34 | SWIADDR EQU $DFE8 ; 16 bits 35 | IRQADDR EQU $DFE6 ; 16 bits 36 | FIRQADDR EQU $DFE4 ; 16 bits 37 | SWI2ADDR EQU $DFE2 ; 16 bits 38 | SWI3ADDR EQU $DFE0 ; 16 bits 39 | 40 | ; ================================================== 41 | ; UART ADDRESSES 42 | ; ================================================== 43 | SER_TX EQU $E000 44 | SER_RX EQU $E000 45 | SER_IER EQU $E001 46 | SER_FCR EQU $E002 47 | SER_ISR EQU $E002 48 | SER_LCR EQU $E003 49 | SER_MCR EQU $E004 50 | SER_LSR EQU $E005 51 | SER_MSR EQU $E006 52 | SER_SPR EQU $E007 53 | SER_DLL EQU $E000 54 | SER_DLM EQU $E001 55 | 56 | EXP_ADDR EQU $E010 57 | 58 | ORG $F000 ; START OF ROM 59 | 60 | JMP START 61 | 62 | ; ================================================== 63 | ; OUTPUT A CHARACTER TO THE CONSOLE 64 | ; BLOCKS ON UART TX FULL 65 | ; ================================================== 66 | OUTCHAR: 67 | PSHS B 68 | OUTCHAR_1: 69 | LDB SER_LSR 70 | BITB #32 71 | NOP 72 | NOP 73 | BEQ OUTCHAR_1 74 | STA SER_TX 75 | PULS B 76 | RTS 77 | 78 | ; ================================================== 79 | ; GET A CHARACTER FROM THE CONSOLE 80 | ; BLOCKS ON UART RX EMPTY 81 | ; ================================================== 82 | 83 | INCHAR: 84 | PSHS B 85 | INCHAR_1: 86 | LDB SER_LSR 87 | BITB #1 88 | NOP 89 | NOP 90 | BEQ INCHAR_1 91 | LDA SER_RX 92 | PULS B 93 | RTS 94 | 95 | ; ================================================== 96 | ; PRINT STRING POINTED TO BY X 97 | ; BLOCKS ON UART TX FULL 98 | ; ================================================== 99 | PRINTSTRING: 100 | PSHS A 101 | PRINTSTRING_1: 102 | LDA ,X+ 103 | BEQ PS_END 104 | JSR OUTCHAR 105 | JMP PRINTSTRING_1 106 | PS_END: 107 | PULS A 108 | RTS 109 | 110 | ; ================================================== 111 | ; WRITE A REGISTER AS HEX TO UART 112 | ; BLOCKS ON UART TX FULL 113 | ; ================================================== 114 | PRINTAHEX: 115 | PSHS A 116 | PSHS A 117 | ; convert MS nibble 118 | LSRA 119 | LSRA 120 | LSRA 121 | LSRA 122 | CMPA #9 123 | BLS PRINTAHEX_1 124 | ADDA #7 ; 'A'-'9'-1 : 65 - 57 - 1 = 7 125 | PRINTAHEX_1: 126 | ADDA #'0' 127 | JSR OUTCHAR 128 | ; convert LS nibble 129 | PULS A 130 | ANDA #$0F 131 | CMPA #9 132 | BLS PRINTAHEX_2 133 | ADDA #7 134 | PRINTAHEX_2: 135 | ADDA #'0' 136 | JSR OUTCHAR 137 | PULS A 138 | RTS 139 | 140 | ; ================================================== 141 | ; START OF PROGRAM 142 | ; ================================================== 143 | 144 | START: 145 | ORCC #%01010000 ; disable interrupts 146 | 147 | ; **************************************** 148 | ; init UART 149 | ; baud divisor to 48 -> 9600 baud 150 | ; 8 bits, 1 stop bit, no parity 151 | ; 152 | ; **************************************** 153 | CLRA 154 | STA SER_IER ; no interrupts 155 | NOP 156 | NOP 157 | NOP 158 | NOP 159 | STA SER_FCR ; no FIFO 160 | NOP 161 | NOP 162 | NOP 163 | NOP 164 | LDA #$83 ; 8 bits per symbol, no parity, enable baud reg access 165 | STA SER_LCR ; line control 166 | NOP 167 | NOP 168 | NOP 169 | NOP 170 | LDA #$4 ; set at least one led to ON 171 | STA SER_MCR ; modem control 172 | NOP 173 | NOP 174 | NOP 175 | NOP 176 | LDA #48 177 | STA SER_DLL 178 | NOP 179 | NOP 180 | NOP 181 | NOP 182 | CLRA 183 | STA SER_DLM 184 | NOP 185 | NOP 186 | NOP 187 | NOP 188 | LDA #$03 ; 8 bits per symbol, no parity, disable baud reg access 189 | STA SER_LCR 190 | NOP 191 | NOP 192 | NOP 193 | NOP 194 | 195 | ; **************************************** 196 | ; CHECK MEMORY 0 .. 0xDFFF 197 | ; **************************************** 198 | LDX #RAMSTART 199 | MEMCHKLP: 200 | CLRA 201 | STA ,X 202 | LDA ,X 203 | CMPA #$00 204 | BNE MEMERROR ; jump if not zero 205 | LDA #$FF 206 | STA ,X 207 | LDA ,X+ 208 | CMPA #$FF 209 | BNE MEMERROR ; jump if not equal 210 | CMPX #RAMEND 211 | BNE MEMCHKLP 212 | JMP MEMOK 213 | 214 | MEMERROR: 215 | LDA #$0C ; both LEDS on 216 | STA SER_MCR ; modem control 217 | NOP 218 | NOP 219 | MEMERROR_1: 220 | NOP 221 | NOP 222 | LDB SER_LSR 223 | BITB #32 224 | BEQ MEMERROR_1 225 | NOP 226 | NOP 227 | LDA #'E' 228 | STA SER_TX 229 | STOP: 230 | LDA #$F0 231 | STA EXP_ADDR 232 | JMP MEMERROR 233 | 234 | ; PRINT THE SIGN-ON MESSAGE 235 | MEMOK: 236 | LDS #STACK ; LOAD THE STACK 237 | LDX #SIGNON 238 | JSR PRINTSTRING 239 | JMP SRECLOADER 240 | 241 | ; ================================================== 242 | ; SRECORD LOADER 243 | ; https://en.wikipedia.org/wiki/SREC_(file_format) 244 | ; SUPPORTS 245 | ; S0 - dumps to the terminal (not implemented) 246 | ; S1 - 16-bit address data record 247 | ; S9 - 16-bit start address 248 | ; 249 | ; Inspired by Alan Garfield's loader 250 | ; https://github.com/alangarf/amx_axc_m68k/blob/master/loader.s#L206 251 | ; ================================================== 252 | SRECLOADER: 253 | JSR INCHAR ; get character 254 | CMPA #'S' ; is it an S record? 255 | BNE SRECLOADER ; skip, if it isnt 256 | 257 | JSR INCHAR ; get next char 258 | CMPA #'1' ; is it an S5 count 259 | BEQ _LD_S1 260 | CMPA #'9' ; is it an S9 termination record? 261 | BEQ _LD_S9 262 | JMP SRECLOADER 263 | 264 | _LD_S1: 265 | CLRB 266 | STB SRECCHK ; clear checksum 267 | STB SRECERR ; clear error flag 268 | JSR SRECREAD ; get S1 packet length 269 | SUBA #3 ; calculate number of payload bytes 270 | PSHS A ; save the count 271 | JSR SRECREAD ; load MSB of address 272 | TFR A,B ; 273 | JSR SRECREAD ; load LSB of address 274 | EXG A,B ; D = [MSB, LSB] 275 | TFR D,X ; X = load address 276 | PULS B ; B = byte count 277 | JMP _LD_DATA 278 | 279 | _LD_S9: 280 | CLRB 281 | STB SRECCHK ; clear checksum 282 | JSR SRECREAD ; get S9 packet length 283 | JSR SRECREAD ; load MSB of address 284 | TFR A,B ; 285 | JSR SRECREAD ; load LSB of address 286 | EXG A,B ; D = [MSB, LSB] 287 | STD JMPADDR ; store jump address 288 | JSR SRECREAD ; read checksum byte 289 | LDB SRECCHK 290 | INCB ; adjust for 1s complement! 291 | BEQ _LD_OK ; total sum should be zero 292 | LDA #$FF 293 | STA SRECERR ; set error flag 294 | _LD_OK: 295 | JMP _LD_TERM 296 | 297 | ; Load data part of packet 298 | ; expects B to have the number of 299 | ; bytes to read. Data is stored 300 | ; using the X index register 301 | _LD_DATA: 302 | JSR SRECREAD 303 | STA ,X+ 304 | DECB 305 | BNE _LD_DATA ; loop until there is no more data to read 306 | JSR SRECREAD ; read checksum byte 307 | LDB SRECCHK 308 | INCB ; adjust for 1s complement! 309 | BEQ _LD_DATA_OK ; total sum should be zero 310 | LDA #'X' ; print X for every bad record 311 | JSR OUTCHAR 312 | LDA #$FF 313 | STA SRECERR ; set error flag 314 | JMP SRECLOADER ; try again .. 315 | 316 | _LD_DATA_OK: 317 | LDA #'*' ; print * for every good record 318 | JSR OUTCHAR 319 | JMP SRECLOADER ; next record .. 320 | 321 | ; Check for errors 322 | _LD_TERM: 323 | LDA SRECERR ; load error flags 324 | BEQ _LD_NOERRORS 325 | LDX #SRECERRORSTR ; report error 326 | JSR PRINTSTRING 327 | JMP SRECLOADER ; try again.. 328 | _LD_NOERRORS: 329 | LDX #ADDRSTR 330 | JSR PRINTSTRING 331 | LDA JMPADDR 332 | JSR PRINTAHEX 333 | LDA JMPADDR+1 334 | JSR PRINTAHEX 335 | LDX #EOLSTR 336 | JSR PRINTSTRING 337 | JMP [JMPADDR] ; jump to start address 338 | 339 | ; ======================================== 340 | ; SREC LOADER 341 | ; READ BYTE AS ASCII HEX DIGIT 342 | ; 343 | ; return contents in A, update checksum 344 | ; ======================================== 345 | SRECREAD: 346 | PSHS B 347 | CLRA 348 | JSR READHEXDIGIT 349 | LSLA 350 | LSLA 351 | LSLA 352 | LSLA 353 | JSR READHEXDIGIT 354 | ;JSR PRINTAHEX 355 | ; update checksum 356 | TFR A,B 357 | ADDB SRECCHK 358 | STB SRECCHK 359 | PULS B 360 | RTS 361 | 362 | ; ======================================== 363 | ; SREC LOADER - READ HEX DIGIT 364 | ; 365 | ; read an ASCII hex digit 0-9,A-F from 366 | ; the UART, convert to 4-bit binary 367 | ; and OR it with the contents in A. 368 | ; ======================================== 369 | READHEXDIGIT: 370 | PSHS B 371 | PSHS A ; save A for later 372 | JSR INCHAR 373 | SUBA #'0' ; move ascii 0 down to binary 0 374 | BMI READHEX_ERR 375 | CMPA #9 376 | BLE READHEX_OK ; 0-9 found 377 | SUBA #7 ; drop 'A' down to 10 378 | CMPA #$F 379 | BLE READHEX_OK 380 | 381 | READHEX_ERR: 382 | PULS A 383 | PULS B 384 | RTS 385 | 386 | READHEX_OK: 387 | STA SRECTMP ; store 4-bit value in temp 388 | PULS A ; restore old value 389 | ORA SRECTMP ; or the hex value 390 | PULS B 391 | RTS 392 | 393 | ; ================================================== 394 | ; INTERRUPT SERVICE ROUTINE INDIRECTIONS 395 | ; ================================================== 396 | 397 | SWI3VECTOR_ISR: 398 | JMP START 399 | 400 | SWI2VECTOR_ISR: 401 | JMP [SWI2ADDR] 402 | 403 | FIRQVECTOR_ISR: 404 | JMP [FIRQADDR] 405 | 406 | IRQVECTOR_ISR: 407 | JMP [IRQADDR] 408 | 409 | SWIVECTOR_ISR: 410 | JMP [SWIADDR] 411 | 412 | NMIVECTOR_ISR: 413 | JMP [NMIADDR] 414 | 415 | ; ================================================== 416 | ; DATA 417 | ; ================================================== 418 | 419 | SIGNON .ascii "HD6309 Computer / Retrochallenge 2017/04" 420 | .db 13,10 421 | .ascii "By Niels Moseley " 422 | .db 13,10 423 | .ascii "Bootloader v1.1 - expecting SREC" 424 | .db 13,10,13,10,0 425 | 426 | SRECERRORSTR: 427 | .db 13,10 428 | .ascii "SREC checksum errors! Aborting." 429 | EOLSTR: 430 | .db 13,10,0 431 | 432 | ADDRSTR: 433 | .db 13,10 434 | .ascii "Jumping to $" 435 | .db 0 436 | ; ================================================== 437 | ; RESET AND INTERRUPT VECTOR TABLE 438 | ; ================================================== 439 | 440 | ORG $FFF2 441 | SWI3VECTOR: FDB SWI3VECTOR_ISR 442 | SWI2VECTOR: FDB SWI2VECTOR_ISR 443 | FIRQVECTOR: FDB FIRQVECTOR_ISR 444 | IRQVECTOR: FDB IRQVECTOR_ISR 445 | SWIVECTOR: FDB SWIVECTOR_ISR 446 | NMIVECTOR: FDB NMIVECTOR_ISR 447 | RESETVECTOR: FDB START 448 | -------------------------------------------------------------------------------- /bootloader/bootloader_AT28C256.hex: -------------------------------------------------------------------------------- 1 | 2 | F000:7E,F0,59,34,04,F6,E0,05,C5,20,12,12,27,F7,B7,E0 3 | F010:00,35,04,39,34,04,F6,E0,05,C5,01,12,12,27,F7,B6 4 | F020:E0,00,35,04,39,34,02,A6,80,27,06,BD,F0,03,7E,F0 5 | F030:27,35,02,39,34,02,34,02,44,44,44,44,81,09,23,02 6 | F040:8B,07,8B,30,BD,F0,03,35,02,84,0F,81,09,23,02,8B 7 | F050:07,8B,30,BD,F0,03,35,02,39,1A,50,4F,B7,E0,01,12 8 | F060:12,12,12,B7,E0,02,12,12,12,12,86,83,B7,E0,03,12 9 | F070:12,12,12,86,04,B7,E0,04,12,12,12,12,86,30,B7,E0 10 | F080:00,12,12,12,12,4F,B7,E0,01,12,12,12,12,86,03,B7 11 | F090:E0,03,12,12,12,12,8E,00,00,4F,A7,84,A6,84,81,00 12 | F0A0:26,12,86,FF,A7,84,A6,80,81,FF,26,08,8C,E0,00,26 13 | F0B0:E8,7E,F0,D3,86,0C,B7,E0,04,12,12,12,12,F6,E0,05 14 | F0C0:C5,20,27,F7,12,12,86,45,B7,E0,00,86,F0,B7,E0,10 15 | F0D0:7E,F0,B4,10,CE,DF,F0,8E,F1,DE,BD,F0,25,7E,F0,E0 16 | F0E0:BD,F0,14,81,53,26,F9,BD,F0,14,81,31,27,07,81,39 17 | F0F0:27,22,7E,F0,E0,5F,F7,DF,FB,F7,DF,FA,BD,F1,89,80 18 | F100:03,34,02,BD,F1,89,1F,89,BD,F1,89,1E,89,1F,01,35 19 | F110:04,7E,F1,39,5F,F7,DF,FB,BD,F1,89,BD,F1,89,1F,89 20 | F120:BD,F1,89,1E,89,FD,DF,FC,BD,F1,89,F6,DF,FB,5C,27 21 | F130:05,86,FF,B7,DF,FA,7E,F1,5F,BD,F1,89,A7,80,5A,26 22 | F140:F8,BD,F1,89,F6,DF,FB,5C,27,0D,86,58,BD,F0,03,86 23 | F150:FF,B7,DF,FA,7E,F0,E0,86,2A,BD,F0,03,7E,F0,E0,B6 24 | F160:DF,FA,27,09,8E,F2,40,BD,F0,25,7E,F0,E0,8E,F2,64 25 | F170:BD,F0,25,B6,DF,FC,BD,F0,34,B6,DF,FD,BD,F0,34,8E 26 | F180:F2,61,BD,F0,25,6E,9F,DF,FC,34,04,4F,BD,F1,A1,48 27 | F190:48,48,48,BD,F1,A1,1F,89,FB,DF,FB,F7,DF,FB,35,04 28 | F1A0:39,34,04,34,02,BD,F0,14,80,30,2B,0A,81,09,2F,0B 29 | F1B0:80,07,81,0F,2F,05,35,02,35,04,39,B7,DF,F9,35,02 30 | F1C0:BA,DF,F9,35,04,39,6E,9F,00,00,6E,9F,00,02,6E,9F 31 | F1D0:00,04,6E,9F,00,06,6E,9F,00,08,6E,9F,00,10,48,44 32 | F1E0:36,33,30,39,20,43,6F,6D,70,75,74,65,72,20,2F,20 33 | F1F0:52,65,74,72,6F,63,68,61,6C,6C,65,6E,67,65,20,32 34 | F200:30,31,37,2F,30,34,0D,0A,42,79,20,4E,69,65,6C,73 35 | F210:20,4D,6F,73,65,6C,65,79,20,0D,0A,42,6F,6F,74,6C 36 | F220:6F,61,64,65,72,20,76,31,2E,31,20,2D,20,65,78,70 37 | F230:65,63,74,69,6E,67,20,53,52,45,43,0D,0A,0D,0A,00 38 | F240:0D,0A,53,52,45,43,20,63,68,65,63,6B,73,75,6D,20 39 | F250:65,72,72,6F,72,73,21,20,41,62,6F,72,74,69,6E,67 40 | F260:2E,0D,0A,00,0D,0A,4A,75,6D,70,69,6E,67,20,74,6F 41 | F270:20,24,00 42 | FFF2:F1,C6,F1,CA,F1,CE,F1,D2,F1,D6,F1,DA,F0,59 -------------------------------------------------------------------------------- /doc/HD6309_computer_schematics_v1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trcwm/HD6309-Computer/426b9321384f4665ced02b92d3b37952d3cea111/doc/HD6309_computer_schematics_v1.pdf -------------------------------------------------------------------------------- /expansion/sdcard/sdcard-cache.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # Connector_Generic_Conn_01x08 5 | # 6 | DEF Connector_Generic_Conn_01x08 J 0 40 Y N 1 F N 7 | F0 "J" 0 400 50 H V C CNN 8 | F1 "Connector_Generic_Conn_01x08" 0 -500 50 H V C CNN 9 | F2 "" 0 0 50 H I C CNN 10 | F3 "" 0 0 50 H I C CNN 11 | $FPLIST 12 | Connector*:*_1x??_* 13 | $ENDFPLIST 14 | DRAW 15 | S -50 -395 0 -405 1 1 6 N 16 | S -50 -295 0 -305 1 1 6 N 17 | S -50 -195 0 -205 1 1 6 N 18 | S -50 -95 0 -105 1 1 6 N 19 | S -50 5 0 -5 1 1 6 N 20 | S -50 105 0 95 1 1 6 N 21 | S -50 205 0 195 1 1 6 N 22 | S -50 305 0 295 1 1 6 N 23 | S -50 350 50 -450 1 1 10 f 24 | X Pin_1 1 -200 300 150 R 50 50 1 1 P 25 | X Pin_2 2 -200 200 150 R 50 50 1 1 P 26 | X Pin_3 3 -200 100 150 R 50 50 1 1 P 27 | X Pin_4 4 -200 0 150 R 50 50 1 1 P 28 | X Pin_5 5 -200 -100 150 R 50 50 1 1 P 29 | X Pin_6 6 -200 -200 150 R 50 50 1 1 P 30 | X Pin_7 7 -200 -300 150 R 50 50 1 1 P 31 | X Pin_8 8 -200 -400 150 R 50 50 1 1 P 32 | ENDDRAW 33 | ENDDEF 34 | # 35 | # Connector_Generic_Conn_01x10 36 | # 37 | DEF Connector_Generic_Conn_01x10 J 0 40 Y N 1 F N 38 | F0 "J" 0 500 50 H V C CNN 39 | F1 "Connector_Generic_Conn_01x10" 0 -600 50 H V C CNN 40 | F2 "" 0 0 50 H I C CNN 41 | F3 "" 0 0 50 H I C CNN 42 | $FPLIST 43 | Connector*:*_1x??_* 44 | $ENDFPLIST 45 | DRAW 46 | S -50 -495 0 -505 1 1 6 N 47 | S -50 -395 0 -405 1 1 6 N 48 | S -50 -295 0 -305 1 1 6 N 49 | S -50 -195 0 -205 1 1 6 N 50 | S -50 -95 0 -105 1 1 6 N 51 | S -50 5 0 -5 1 1 6 N 52 | S -50 105 0 95 1 1 6 N 53 | S -50 205 0 195 1 1 6 N 54 | S -50 305 0 295 1 1 6 N 55 | S -50 405 0 395 1 1 6 N 56 | S -50 450 50 -550 1 1 10 f 57 | X Pin_1 1 -200 400 150 R 50 50 1 1 P 58 | X Pin_10 10 -200 -500 150 R 50 50 1 1 P 59 | X Pin_2 2 -200 300 150 R 50 50 1 1 P 60 | X Pin_3 3 -200 200 150 R 50 50 1 1 P 61 | X Pin_4 4 -200 100 150 R 50 50 1 1 P 62 | X Pin_5 5 -200 0 150 R 50 50 1 1 P 63 | X Pin_6 6 -200 -100 150 R 50 50 1 1 P 64 | X Pin_7 7 -200 -200 150 R 50 50 1 1 P 65 | X Pin_8 8 -200 -300 150 R 50 50 1 1 P 66 | X Pin_9 9 -200 -400 150 R 50 50 1 1 P 67 | ENDDRAW 68 | ENDDEF 69 | # 70 | # Connector_SD_Card 71 | # 72 | DEF Connector_SD_Card J 0 40 Y Y 1 F N 73 | F0 "J" -650 550 50 H V C CNN 74 | F1 "Connector_SD_Card" 600 -550 50 H V C CNN 75 | F2 "" 0 0 50 H I C CNN 76 | F3 "" 0 0 50 H I C CNN 77 | $FPLIST 78 | SD* 79 | $ENDFPLIST 80 | DRAW 81 | S -350 -375 -250 -425 0 1 0 F 82 | S -350 -275 -250 -325 0 1 0 F 83 | S -350 -175 -250 -225 0 1 0 F 84 | S -350 -75 -250 -125 0 1 0 F 85 | S -350 25 -250 -25 0 1 0 F 86 | S -350 125 -250 75 0 1 0 F 87 | S -350 225 -250 175 0 1 0 F 88 | S -350 325 -250 275 0 1 0 F 89 | S -300 425 -200 375 0 1 0 F 90 | P 6 0 1 0 -400 350 -300 450 800 450 800 -450 -400 -450 -400 350 f 91 | P 6 0 1 0 650 450 650 500 -800 500 -800 -500 650 -500 650 -450 N 92 | X CD/DAT3 1 -900 300 100 R 50 50 1 1 I 93 | X CARD_DETECT 10 900 200 100 L 50 50 1 1 I 94 | X WRITE_PROTECT 11 900 100 100 L 50 50 1 1 I 95 | X SHELL1 12 900 -100 100 L 50 50 1 1 I 96 | X SHELL2 13 900 -200 100 L 50 50 1 1 I 97 | X CMD 2 -900 200 100 R 50 50 1 1 I 98 | X VSS 3 -900 100 100 R 50 50 1 1 W 99 | X VDD 4 -900 0 100 R 50 50 1 1 W 100 | X CLK 5 -900 -100 100 R 50 50 1 1 I 101 | X VSS 6 -900 -200 100 R 50 50 1 1 W 102 | X DAT0 7 -900 -300 100 R 50 50 1 1 I 103 | X DAT1 8 -900 -400 100 R 50 50 1 1 I 104 | X DAT2 9 -900 400 100 R 50 50 1 1 I 105 | ENDDRAW 106 | ENDDEF 107 | # 108 | # Device_C_Small 109 | # 110 | DEF Device_C_Small C 0 10 N N 1 F N 111 | F0 "C" 10 70 50 H V L CNN 112 | F1 "Device_C_Small" 10 -80 50 H V L CNN 113 | F2 "" 0 0 50 H I C CNN 114 | F3 "" 0 0 50 H I C CNN 115 | $FPLIST 116 | C_* 117 | $ENDFPLIST 118 | DRAW 119 | P 2 0 1 13 -60 -20 60 -20 N 120 | P 2 0 1 12 -60 20 60 20 N 121 | X ~ 1 0 100 80 D 50 50 1 1 P 122 | X ~ 2 0 -100 80 U 50 50 1 1 P 123 | ENDDRAW 124 | ENDDEF 125 | # 126 | # Device_LED_Small 127 | # 128 | DEF Device_LED_Small D 0 10 N N 1 F N 129 | F0 "D" -50 125 50 H V L CNN 130 | F1 "Device_LED_Small" -175 -100 50 H V L CNN 131 | F2 "" 0 0 50 V I C CNN 132 | F3 "" 0 0 50 V I C CNN 133 | $FPLIST 134 | LED* 135 | LED_SMD:* 136 | LED_THT:* 137 | $ENDFPLIST 138 | DRAW 139 | P 2 0 1 0 -30 -40 -30 40 N 140 | P 2 0 1 0 40 0 -30 0 N 141 | P 4 0 1 0 30 -40 -30 0 30 40 30 -40 N 142 | P 5 0 1 0 0 30 -20 50 -10 50 -20 50 -20 40 N 143 | P 5 0 1 0 20 50 0 70 10 70 0 70 0 60 N 144 | X K 1 -100 0 70 R 50 50 1 1 P 145 | X A 2 100 0 70 L 50 50 1 1 P 146 | ENDDRAW 147 | ENDDEF 148 | # 149 | # Device_R_Small 150 | # 151 | DEF Device_R_Small R 0 10 N N 1 F N 152 | F0 "R" 30 20 50 H V L CNN 153 | F1 "Device_R_Small" 30 -40 50 H V L CNN 154 | F2 "" 0 0 50 H I C CNN 155 | F3 "" 0 0 50 H I C CNN 156 | $FPLIST 157 | R_* 158 | $ENDFPLIST 159 | DRAW 160 | S -30 70 30 -70 0 1 8 N 161 | X ~ 1 0 100 30 D 50 50 1 1 P 162 | X ~ 2 0 -100 30 U 50 50 1 1 P 163 | ENDDRAW 164 | ENDDEF 165 | # 166 | # HD6309_sdcard_74HC541 167 | # 168 | DEF HD6309_sdcard_74HC541 U 0 40 Y Y 1 F N 169 | F0 "U" 500 -50 50 H V C CNN 170 | F1 "HD6309_sdcard_74HC541" 300 1150 50 H V C CNN 171 | F2 "" 400 550 50 H V C CNN 172 | F3 "" 400 550 50 H V C CNN 173 | $FPLIST 174 | DIP20* 175 | $ENDFPLIST 176 | DRAW 177 | S 0 1100 600 0 0 1 0 N 178 | X GND 10 -100 100 100 R 50 50 0 0 W 179 | X VCC 20 700 1000 100 L 50 50 0 0 W 180 | X ~OE1 1 -100 1000 100 R 50 50 1 1 I 181 | X Y7 11 700 100 100 L 50 50 1 1 I 182 | X Y6 12 700 200 100 L 50 50 1 1 T 183 | X Y5 13 700 300 100 L 50 50 1 1 T 184 | X Y4 14 700 400 100 L 50 50 1 1 T 185 | X Y3 15 700 500 100 L 50 50 1 1 T 186 | X Y2 16 700 600 100 L 50 50 1 1 T 187 | X Y1 17 700 700 100 L 50 50 1 1 T 188 | X Y0 18 700 800 100 L 50 50 1 1 T 189 | X ~OE2 19 700 900 100 L 50 50 1 1 T 190 | X D0 2 -100 900 100 R 50 50 1 1 I 191 | X D1 3 -100 800 100 R 50 50 1 1 I 192 | X D2 4 -100 700 100 R 50 50 1 1 I 193 | X D3 5 -100 600 100 R 50 50 1 1 I 194 | X D4 6 -100 500 100 R 50 50 1 1 I 195 | X D5 7 -100 400 100 R 50 50 1 1 I 196 | X D6 8 -100 300 100 R 50 50 1 1 I 197 | X D7 9 -100 200 100 R 50 50 1 1 I 198 | ENDDRAW 199 | ENDDEF 200 | # 201 | # HD6309_sdcard_74HC574 202 | # 203 | DEF HD6309_sdcard_74HC574 U 0 40 Y Y 1 F N 204 | F0 "U" 500 -50 50 H V C CNN 205 | F1 "HD6309_sdcard_74HC574" 300 1150 50 H V C CNN 206 | F2 "" 400 550 50 H V C CNN 207 | F3 "" 400 550 50 H V C CNN 208 | $FPLIST 209 | DIP20* 210 | $ENDFPLIST 211 | DRAW 212 | S 0 1100 600 0 0 1 0 N 213 | X GND 10 -100 100 100 R 50 50 0 0 W 214 | X VCC 20 700 1000 100 L 50 50 0 0 W 215 | X OE 1 -100 1000 100 R 50 50 1 1 I I 216 | X Cp 11 700 100 100 L 50 50 1 1 I C 217 | X Q7 12 700 200 100 L 50 50 1 1 T 218 | X Q6 13 700 300 100 L 50 50 1 1 T 219 | X Q5 14 700 400 100 L 50 50 1 1 T 220 | X Q4 15 700 500 100 L 50 50 1 1 T 221 | X Q3 16 700 600 100 L 50 50 1 1 T 222 | X Q2 17 700 700 100 L 50 50 1 1 T 223 | X Q1 18 700 800 100 L 50 50 1 1 T 224 | X Q0 19 700 900 100 L 50 50 1 1 T 225 | X D0 2 -100 900 100 R 50 50 1 1 I 226 | X D1 3 -100 800 100 R 50 50 1 1 I 227 | X D2 4 -100 700 100 R 50 50 1 1 I 228 | X D3 5 -100 600 100 R 50 50 1 1 I 229 | X D4 6 -100 500 100 R 50 50 1 1 I 230 | X D5 7 -100 400 100 R 50 50 1 1 I 231 | X D6 8 -100 300 100 R 50 50 1 1 I 232 | X D7 9 -100 200 100 R 50 50 1 1 I 233 | ENDDRAW 234 | ENDDEF 235 | # 236 | # Regulator_Linear_LM1117-3.3 237 | # 238 | DEF Regulator_Linear_LM1117-3.3 U 0 10 Y Y 1 F N 239 | F0 "U" -150 125 50 H V C CNN 240 | F1 "Regulator_Linear_LM1117-3.3" 0 125 50 H V L CNN 241 | F2 "" 0 0 50 H I C CNN 242 | F3 "" 0 0 50 H I C CNN 243 | ALIAS LM1117-2.5 LM1117-3.3 LM1117-5.0 TLV1117-15 TLV1117-18 TLV1117-25 TLV1117-33 TLV1117-50 244 | $FPLIST 245 | SOT?223* 246 | TO?263* 247 | TO?252* 248 | TO?220* 249 | $ENDFPLIST 250 | DRAW 251 | S -200 -200 200 75 0 1 10 f 252 | X GND 1 0 -300 100 U 50 50 1 1 W 253 | X VO 2 300 0 100 L 50 50 1 1 w 254 | X VI 3 -300 0 100 R 50 50 1 1 W 255 | ENDDRAW 256 | ENDDEF 257 | # 258 | # power_+3V3 259 | # 260 | DEF power_+3V3 #PWR 0 0 Y Y 1 F P 261 | F0 "#PWR" 0 -150 50 H I C CNN 262 | F1 "power_+3V3" 0 140 50 H V C CNN 263 | F2 "" 0 0 50 H I C CNN 264 | F3 "" 0 0 50 H I C CNN 265 | ALIAS +3.3V 266 | DRAW 267 | P 2 0 1 0 -30 50 0 100 N 268 | P 2 0 1 0 0 0 0 100 N 269 | P 2 0 1 0 0 100 30 50 N 270 | X +3V3 1 0 0 0 U 50 50 1 1 W N 271 | ENDDRAW 272 | ENDDEF 273 | # 274 | # power_+5V 275 | # 276 | DEF power_+5V #PWR 0 0 Y Y 1 F P 277 | F0 "#PWR" 0 -150 50 H I C CNN 278 | F1 "power_+5V" 0 140 50 H V C CNN 279 | F2 "" 0 0 50 H I C CNN 280 | F3 "" 0 0 50 H I C CNN 281 | DRAW 282 | P 2 0 1 0 -30 50 0 100 N 283 | P 2 0 1 0 0 0 0 100 N 284 | P 2 0 1 0 0 100 30 50 N 285 | X +5V 1 0 0 0 U 50 50 1 1 W N 286 | ENDDRAW 287 | ENDDEF 288 | # 289 | # power_GND 290 | # 291 | DEF power_GND #PWR 0 0 Y Y 1 F P 292 | F0 "#PWR" 0 -250 50 H I C CNN 293 | F1 "power_GND" 0 -150 50 H V C CNN 294 | F2 "" 0 0 50 H I C CNN 295 | F3 "" 0 0 50 H I C CNN 296 | DRAW 297 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N 298 | X GND 1 0 0 0 D 50 50 1 1 W N 299 | ENDDRAW 300 | ENDDEF 301 | # 302 | #End Library 303 | -------------------------------------------------------------------------------- /expansion/sdcard/sdcard.net: -------------------------------------------------------------------------------- 1 | (export (version D) 2 | (design 3 | (source E:\Programming\HD6309-Computer\expansion\sdcard\sdcard.sch) 4 | (date "10/12/19 00:09:51") 5 | (tool "Eeschema (5.1.2)-2") 6 | (sheet (number 1) (name /) (tstamps /) 7 | (title_block 8 | (title "HD6309 SDCARD + I2C INTERFACE") 9 | (company "Moseley Instruments") 10 | (rev B) 11 | (date 2019-10-07) 12 | (source sdcard.sch) 13 | (comment (number 1) (value "")) 14 | (comment (number 2) (value "")) 15 | (comment (number 3) (value "")) 16 | (comment (number 4) (value ""))))) 17 | (components 18 | (comp (ref J2) 19 | (value Conn_01x10) 20 | (footprint Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical) 21 | (datasheet ~) 22 | (libsource (lib Connector_Generic) (part Conn_01x10) (description "Generic connector, single row, 01x10, script generated (kicad-library-utils/schlib/autogen/connector/)")) 23 | (sheetpath (names /) (tstamps /)) 24 | (tstamp 5D9A892D)) 25 | (comp (ref J1) 26 | (value Conn_01x08) 27 | (footprint Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical) 28 | (datasheet ~) 29 | (libsource (lib Connector_Generic) (part Conn_01x08) (description "Generic connector, single row, 01x08, script generated (kicad-library-utils/schlib/autogen/connector/)")) 30 | (sheetpath (names /) (tstamps /)) 31 | (tstamp 5D9A9B47)) 32 | (comp (ref U3) 33 | (value LM1117-3.3) 34 | (footprint Package_TO_SOT_SMD:SOT-223-3_TabPin2) 35 | (datasheet http://www.ti.com/lit/ds/symlink/lm1117.pdf) 36 | (libsource (lib Regulator_Linear) (part LM1117-3.3) (description "800mA Low-Dropout Linear Regulator, 3.3V fixed output, TO-220/TO-252/TO-263/SOT-223")) 37 | (sheetpath (names /) (tstamps /)) 38 | (tstamp 5D9AA3B5)) 39 | (comp (ref C1) 40 | (value 100n) 41 | (footprint Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder) 42 | (datasheet ~) 43 | (libsource (lib Device) (part C_Small) (description "Unpolarized capacitor, small symbol")) 44 | (sheetpath (names /) (tstamps /)) 45 | (tstamp 5D9AAE3B)) 46 | (comp (ref C2) 47 | (value 100n) 48 | (footprint Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder) 49 | (datasheet ~) 50 | (libsource (lib Device) (part C_Small) (description "Unpolarized capacitor, small symbol")) 51 | (sheetpath (names /) (tstamps /)) 52 | (tstamp 5D9AB622)) 53 | (comp (ref U1) 54 | (value 74LVX574) 55 | (footprint Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm) 56 | (libsource (lib HD6309_sdcard) (part 74HC574) (description "")) 57 | (sheetpath (names /) (tstamps /)) 58 | (tstamp 5D9BB470)) 59 | (comp (ref J3) 60 | (value SD_Card) 61 | (footprint Connector_Card:SD_TE_2041021) 62 | (datasheet http://portal.fciconnect.com/Comergent//fci/drawing/10067847.pdf) 63 | (fields 64 | (field (name PN) 649-10067847-001RLF)) 65 | (libsource (lib Connector) (part SD_Card) (description "SD Card Reader")) 66 | (sheetpath (names /) (tstamps /)) 67 | (tstamp 5DA3D279)) 68 | (comp (ref R9) 69 | (value 10k) 70 | (footprint Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder) 71 | (datasheet ~) 72 | (libsource (lib Device) (part R_Small) (description "Resistor, small symbol")) 73 | (sheetpath (names /) (tstamps /)) 74 | (tstamp 5DB4243F)) 75 | (comp (ref C3) 76 | (value 100n) 77 | (footprint Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder) 78 | (datasheet ~) 79 | (libsource (lib Device) (part C_Small) (description "Unpolarized capacitor, small symbol")) 80 | (sheetpath (names /) (tstamps /)) 81 | (tstamp 5DAAB322)) 82 | (comp (ref D1) 83 | (value LED_Small) 84 | (footprint LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder) 85 | (datasheet ~) 86 | (libsource (lib Device) (part LED_Small) (description "Light emitting diode, small symbol")) 87 | (sheetpath (names /) (tstamps /)) 88 | (tstamp 5DAB3EC3)) 89 | (comp (ref R1) 90 | (value 470) 91 | (footprint Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder) 92 | (datasheet ~) 93 | (libsource (lib Device) (part R_Small) (description "Resistor, small symbol")) 94 | (sheetpath (names /) (tstamps /)) 95 | (tstamp 5DAB8360)) 96 | (comp (ref U2) 97 | (value 74HCT541) 98 | (footprint Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm) 99 | (libsource (lib HD6309_sdcard) (part 74HC541) (description "")) 100 | (sheetpath (names /) (tstamps /)) 101 | (tstamp 5D9A747E))) 102 | (libparts 103 | (libpart (lib Connector) (part SD_Card) 104 | (description "SD Card Reader") 105 | (docs http://portal.fciconnect.com/Comergent//fci/drawing/10067847.pdf) 106 | (footprints 107 | (fp SD*)) 108 | (fields 109 | (field (name Reference) J) 110 | (field (name Value) SD_Card)) 111 | (pins 112 | (pin (num 1) (name CD/DAT3) (type input)) 113 | (pin (num 2) (name CMD) (type input)) 114 | (pin (num 3) (name VSS) (type power_in)) 115 | (pin (num 4) (name VDD) (type power_in)) 116 | (pin (num 5) (name CLK) (type input)) 117 | (pin (num 6) (name VSS) (type power_in)) 118 | (pin (num 7) (name DAT0) (type input)) 119 | (pin (num 8) (name DAT1) (type input)) 120 | (pin (num 9) (name DAT2) (type input)) 121 | (pin (num 10) (name CARD_DETECT) (type input)) 122 | (pin (num 11) (name WRITE_PROTECT) (type input)) 123 | (pin (num 12) (name SHELL1) (type input)) 124 | (pin (num 13) (name SHELL2) (type input)))) 125 | (libpart (lib Connector_Generic) (part Conn_01x08) 126 | (description "Generic connector, single row, 01x08, script generated (kicad-library-utils/schlib/autogen/connector/)") 127 | (docs ~) 128 | (footprints 129 | (fp Connector*:*_1x??_*)) 130 | (fields 131 | (field (name Reference) J) 132 | (field (name Value) Conn_01x08)) 133 | (pins 134 | (pin (num 1) (name Pin_1) (type passive)) 135 | (pin (num 2) (name Pin_2) (type passive)) 136 | (pin (num 3) (name Pin_3) (type passive)) 137 | (pin (num 4) (name Pin_4) (type passive)) 138 | (pin (num 5) (name Pin_5) (type passive)) 139 | (pin (num 6) (name Pin_6) (type passive)) 140 | (pin (num 7) (name Pin_7) (type passive)) 141 | (pin (num 8) (name Pin_8) (type passive)))) 142 | (libpart (lib Connector_Generic) (part Conn_01x10) 143 | (description "Generic connector, single row, 01x10, script generated (kicad-library-utils/schlib/autogen/connector/)") 144 | (docs ~) 145 | (footprints 146 | (fp Connector*:*_1x??_*)) 147 | (fields 148 | (field (name Reference) J) 149 | (field (name Value) Conn_01x10)) 150 | (pins 151 | (pin (num 1) (name Pin_1) (type passive)) 152 | (pin (num 2) (name Pin_2) (type passive)) 153 | (pin (num 3) (name Pin_3) (type passive)) 154 | (pin (num 4) (name Pin_4) (type passive)) 155 | (pin (num 5) (name Pin_5) (type passive)) 156 | (pin (num 6) (name Pin_6) (type passive)) 157 | (pin (num 7) (name Pin_7) (type passive)) 158 | (pin (num 8) (name Pin_8) (type passive)) 159 | (pin (num 9) (name Pin_9) (type passive)) 160 | (pin (num 10) (name Pin_10) (type passive)))) 161 | (libpart (lib Device) (part C_Small) 162 | (description "Unpolarized capacitor, small symbol") 163 | (docs ~) 164 | (footprints 165 | (fp C_*)) 166 | (fields 167 | (field (name Reference) C) 168 | (field (name Value) C_Small)) 169 | (pins 170 | (pin (num 1) (name ~) (type passive)) 171 | (pin (num 2) (name ~) (type passive)))) 172 | (libpart (lib Device) (part LED_Small) 173 | (description "Light emitting diode, small symbol") 174 | (docs ~) 175 | (footprints 176 | (fp LED*) 177 | (fp LED_SMD:*) 178 | (fp LED_THT:*)) 179 | (fields 180 | (field (name Reference) D) 181 | (field (name Value) LED_Small)) 182 | (pins 183 | (pin (num 1) (name K) (type passive)) 184 | (pin (num 2) (name A) (type passive)))) 185 | (libpart (lib Device) (part R_Small) 186 | (description "Resistor, small symbol") 187 | (docs ~) 188 | (footprints 189 | (fp R_*)) 190 | (fields 191 | (field (name Reference) R) 192 | (field (name Value) R_Small)) 193 | (pins 194 | (pin (num 1) (name ~) (type passive)) 195 | (pin (num 2) (name ~) (type passive)))) 196 | (libpart (lib HD6309_sdcard) (part 74HC541) 197 | (footprints 198 | (fp DIP20*)) 199 | (fields 200 | (field (name Reference) U) 201 | (field (name Value) 74HC541)) 202 | (pins 203 | (pin (num 1) (name ~OE1) (type input)) 204 | (pin (num 2) (name D0) (type input)) 205 | (pin (num 3) (name D1) (type input)) 206 | (pin (num 4) (name D2) (type input)) 207 | (pin (num 5) (name D3) (type input)) 208 | (pin (num 6) (name D4) (type input)) 209 | (pin (num 7) (name D5) (type input)) 210 | (pin (num 8) (name D6) (type input)) 211 | (pin (num 9) (name D7) (type input)) 212 | (pin (num 10) (name GND) (type power_in)) 213 | (pin (num 11) (name Y7) (type input)) 214 | (pin (num 12) (name Y6) (type 3state)) 215 | (pin (num 13) (name Y5) (type 3state)) 216 | (pin (num 14) (name Y4) (type 3state)) 217 | (pin (num 15) (name Y3) (type 3state)) 218 | (pin (num 16) (name Y2) (type 3state)) 219 | (pin (num 17) (name Y1) (type 3state)) 220 | (pin (num 18) (name Y0) (type 3state)) 221 | (pin (num 19) (name ~OE2) (type 3state)) 222 | (pin (num 20) (name VCC) (type power_in)))) 223 | (libpart (lib HD6309_sdcard) (part 74HC574) 224 | (footprints 225 | (fp DIP20*)) 226 | (fields 227 | (field (name Reference) U) 228 | (field (name Value) 74HC574)) 229 | (pins 230 | (pin (num 1) (name OE) (type input)) 231 | (pin (num 2) (name D0) (type input)) 232 | (pin (num 3) (name D1) (type input)) 233 | (pin (num 4) (name D2) (type input)) 234 | (pin (num 5) (name D3) (type input)) 235 | (pin (num 6) (name D4) (type input)) 236 | (pin (num 7) (name D5) (type input)) 237 | (pin (num 8) (name D6) (type input)) 238 | (pin (num 9) (name D7) (type input)) 239 | (pin (num 10) (name GND) (type power_in)) 240 | (pin (num 11) (name Cp) (type input)) 241 | (pin (num 12) (name Q7) (type 3state)) 242 | (pin (num 13) (name Q6) (type 3state)) 243 | (pin (num 14) (name Q5) (type 3state)) 244 | (pin (num 15) (name Q4) (type 3state)) 245 | (pin (num 16) (name Q3) (type 3state)) 246 | (pin (num 17) (name Q2) (type 3state)) 247 | (pin (num 18) (name Q1) (type 3state)) 248 | (pin (num 19) (name Q0) (type 3state)) 249 | (pin (num 20) (name VCC) (type power_in)))) 250 | (libpart (lib Regulator_Linear) (part LM1117-1.8) 251 | (aliases 252 | (alias LM1117-2.5) 253 | (alias LM1117-3.3) 254 | (alias LM1117-5.0) 255 | (alias TLV1117-15) 256 | (alias TLV1117-18) 257 | (alias TLV1117-25) 258 | (alias TLV1117-33) 259 | (alias TLV1117-50)) 260 | (description "800mA Low-Dropout Linear Regulator, 1.8V fixed output, TO-220/TO-252/TO-263/SOT-223") 261 | (docs http://www.ti.com/lit/ds/symlink/lm1117.pdf) 262 | (footprints 263 | (fp SOT?223*) 264 | (fp TO?263*) 265 | (fp TO?252*) 266 | (fp TO?220*)) 267 | (fields 268 | (field (name Reference) U) 269 | (field (name Value) LM1117-1.8)) 270 | (pins 271 | (pin (num 1) (name GND) (type power_in)) 272 | (pin (num 2) (name VO) (type power_out)) 273 | (pin (num 3) (name VI) (type power_in))))) 274 | (libraries 275 | (library (logical Connector) 276 | (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Connector.lib")) 277 | (library (logical Connector_Generic) 278 | (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Connector_Generic.lib")) 279 | (library (logical Device) 280 | (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Device.lib")) 281 | (library (logical HD6309_sdcard) 282 | (uri E:\Programming\HD6309-Computer\expansion\sdcard/HD6309_sdcard.lib)) 283 | (library (logical Regulator_Linear) 284 | (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Regulator_Linear.lib"))) 285 | (nets 286 | (net (code 1) (name +3V3) 287 | (node (ref J3) (pin 4)) 288 | (node (ref C3) (pin 1)) 289 | (node (ref C2) (pin 1)) 290 | (node (ref U3) (pin 2)) 291 | (node (ref U1) (pin 20)) 292 | (node (ref R1) (pin 1)) 293 | (node (ref R9) (pin 1))) 294 | (net (code 2) (name CARD_DETECT) 295 | (node (ref J3) (pin 10)) 296 | (node (ref U2) (pin 2)) 297 | (node (ref R9) (pin 2))) 298 | (net (code 3) (name "Net-(J2-Pad5)") 299 | (node (ref J2) (pin 5))) 300 | (net (code 4) (name "Net-(J2-Pad6)") 301 | (node (ref J2) (pin 6))) 302 | (net (code 5) (name "Net-(J3-Pad9)") 303 | (node (ref J3) (pin 9))) 304 | (net (code 6) (name MOSI_3V) 305 | (node (ref J3) (pin 2)) 306 | (node (ref U1) (pin 18))) 307 | (net (code 7) (name "Net-(U1-Pad14)") 308 | (node (ref U1) (pin 14))) 309 | (net (code 8) (name "Net-(U1-Pad12)") 310 | (node (ref U1) (pin 12))) 311 | (net (code 9) (name "Net-(U1-Pad13)") 312 | (node (ref U1) (pin 13))) 313 | (net (code 10) (name SCK_3V) 314 | (node (ref U1) (pin 17)) 315 | (node (ref J3) (pin 5))) 316 | (net (code 11) (name "Net-(U1-Pad15)") 317 | (node (ref U1) (pin 15))) 318 | (net (code 12) (name "Net-(U1-Pad16)") 319 | (node (ref U1) (pin 16))) 320 | (net (code 13) (name MISO) 321 | (node (ref J3) (pin 7)) 322 | (node (ref U2) (pin 3))) 323 | (net (code 14) (name "Net-(J3-Pad12)") 324 | (node (ref J3) (pin 12))) 325 | (net (code 15) (name "Net-(J3-Pad8)") 326 | (node (ref J3) (pin 8))) 327 | (net (code 16) (name "Net-(J3-Pad13)") 328 | (node (ref J3) (pin 13))) 329 | (net (code 17) (name "Net-(J3-Pad11)") 330 | (node (ref J3) (pin 11))) 331 | (net (code 18) (name ~SS_3V) 332 | (node (ref U1) (pin 19)) 333 | (node (ref J3) (pin 1)) 334 | (node (ref D1) (pin 2))) 335 | (net (code 19) (name GND) 336 | (node (ref U2) (pin 1)) 337 | (node (ref J3) (pin 3)) 338 | (node (ref U2) (pin 10)) 339 | (node (ref U3) (pin 1)) 340 | (node (ref J3) (pin 6)) 341 | (node (ref J2) (pin 2)) 342 | (node (ref C2) (pin 2)) 343 | (node (ref C1) (pin 2)) 344 | (node (ref U2) (pin 6)) 345 | (node (ref U2) (pin 7)) 346 | (node (ref U2) (pin 8)) 347 | (node (ref U2) (pin 9)) 348 | (node (ref C3) (pin 2)) 349 | (node (ref U1) (pin 1)) 350 | (node (ref U1) (pin 10)) 351 | (node (ref U2) (pin 4)) 352 | (node (ref U2) (pin 5))) 353 | (net (code 20) (name "Net-(J1-Pad1)") 354 | (node (ref J1) (pin 1)) 355 | (node (ref U1) (pin 2)) 356 | (node (ref U2) (pin 18))) 357 | (net (code 21) (name "Net-(U2-Pad13)") 358 | (node (ref U2) (pin 13))) 359 | (net (code 22) (name "Net-(U2-Pad12)") 360 | (node (ref U2) (pin 12))) 361 | (net (code 23) (name "Net-(U2-Pad11)") 362 | (node (ref U2) (pin 11))) 363 | (net (code 24) (name "Net-(D1-Pad1)") 364 | (node (ref D1) (pin 1)) 365 | (node (ref R1) (pin 2))) 366 | (net (code 25) (name "Net-(U2-Pad14)") 367 | (node (ref U2) (pin 14))) 368 | (net (code 26) (name "Net-(U2-Pad16)") 369 | (node (ref U2) (pin 16))) 370 | (net (code 27) (name "Net-(U2-Pad15)") 371 | (node (ref U2) (pin 15))) 372 | (net (code 28) (name +5V) 373 | (node (ref U2) (pin 20)) 374 | (node (ref J2) (pin 1)) 375 | (node (ref C1) (pin 1)) 376 | (node (ref U3) (pin 3))) 377 | (net (code 29) (name "Net-(J1-Pad7)") 378 | (node (ref J1) (pin 7)) 379 | (node (ref U1) (pin 8))) 380 | (net (code 30) (name ~RD) 381 | (node (ref U2) (pin 19)) 382 | (node (ref J2) (pin 3))) 383 | (net (code 31) (name "Net-(J1-Pad5)") 384 | (node (ref J1) (pin 5)) 385 | (node (ref U1) (pin 6))) 386 | (net (code 32) (name "Net-(J1-Pad3)") 387 | (node (ref U1) (pin 4)) 388 | (node (ref J1) (pin 3))) 389 | (net (code 33) (name ~WR) 390 | (node (ref J2) (pin 4)) 391 | (node (ref U1) (pin 11))) 392 | (net (code 34) (name "Net-(J2-Pad8)") 393 | (node (ref J2) (pin 8))) 394 | (net (code 35) (name "Net-(J1-Pad6)") 395 | (node (ref J1) (pin 6)) 396 | (node (ref U1) (pin 7))) 397 | (net (code 36) (name "Net-(J1-Pad4)") 398 | (node (ref J1) (pin 4)) 399 | (node (ref U1) (pin 5))) 400 | (net (code 37) (name "Net-(J1-Pad2)") 401 | (node (ref U1) (pin 3)) 402 | (node (ref J1) (pin 2)) 403 | (node (ref U2) (pin 17))) 404 | (net (code 38) (name "Net-(J2-Pad9)") 405 | (node (ref J2) (pin 9))) 406 | (net (code 39) (name "Net-(J1-Pad8)") 407 | (node (ref U1) (pin 9)) 408 | (node (ref J1) (pin 8))) 409 | (net (code 40) (name "Net-(J2-Pad7)") 410 | (node (ref J2) (pin 7))) 411 | (net (code 41) (name "Net-(J2-Pad10)") 412 | (node (ref J2) (pin 10))))) -------------------------------------------------------------------------------- /expansion/sdcard/sdcard.pro: -------------------------------------------------------------------------------- 1 | update=10/11/19 23:49:26 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [cvpcb] 9 | version=1 10 | NetIExt=net 11 | [eeschema] 12 | version=1 13 | LibDir= 14 | [eeschema/libraries] 15 | [pcbnew] 16 | version=1 17 | PageLayoutDescrFile= 18 | LastNetListRead=sdcard.net 19 | CopperLayerCount=2 20 | BoardThickness=1.6 21 | AllowMicroVias=0 22 | AllowBlindVias=0 23 | RequireCourtyardDefinitions=0 24 | ProhibitOverlappingCourtyards=1 25 | MinTrackWidth=0.2 26 | MinViaDiameter=0.4 27 | MinViaDrill=0.3 28 | MinMicroViaDiameter=0.2 29 | MinMicroViaDrill=0.09999999999999999 30 | MinHoleToHole=0.25 31 | TrackWidth1=0.25 32 | TrackWidth2=0.35 33 | TrackWidth3=0.5 34 | TrackWidth4=1 35 | ViaDiameter1=0.8 36 | ViaDrill1=0.4 37 | ViaDiameter2=1 38 | ViaDrill2=0.4 39 | dPairWidth1=0.2 40 | dPairGap1=0.25 41 | dPairViaGap1=0.25 42 | SilkLineWidth=0.12 43 | SilkTextSizeV=1 44 | SilkTextSizeH=1 45 | SilkTextSizeThickness=0.15 46 | SilkTextItalic=0 47 | SilkTextUpright=1 48 | CopperLineWidth=0.2 49 | CopperTextSizeV=1.5 50 | CopperTextSizeH=1.5 51 | CopperTextThickness=0.3 52 | CopperTextItalic=0 53 | CopperTextUpright=1 54 | EdgeCutLineWidth=0.05 55 | CourtyardLineWidth=0.05 56 | OthersLineWidth=0.15 57 | OthersTextSizeV=1 58 | OthersTextSizeH=1 59 | OthersTextSizeThickness=0.15 60 | OthersTextItalic=0 61 | OthersTextUpright=1 62 | SolderMaskClearance=0.051 63 | SolderMaskMinWidth=0.25 64 | SolderPasteClearance=0 65 | SolderPasteRatio=-0 66 | [pcbnew/Layer.F.Cu] 67 | Name=F.Cu 68 | Type=0 69 | Enabled=1 70 | [pcbnew/Layer.In1.Cu] 71 | Name=In1.Cu 72 | Type=0 73 | Enabled=0 74 | [pcbnew/Layer.In2.Cu] 75 | Name=In2.Cu 76 | Type=0 77 | Enabled=0 78 | [pcbnew/Layer.In3.Cu] 79 | Name=In3.Cu 80 | Type=0 81 | Enabled=0 82 | [pcbnew/Layer.In4.Cu] 83 | Name=In4.Cu 84 | Type=0 85 | Enabled=0 86 | [pcbnew/Layer.In5.Cu] 87 | Name=In5.Cu 88 | Type=0 89 | Enabled=0 90 | [pcbnew/Layer.In6.Cu] 91 | Name=In6.Cu 92 | Type=0 93 | Enabled=0 94 | [pcbnew/Layer.In7.Cu] 95 | Name=In7.Cu 96 | Type=0 97 | Enabled=0 98 | [pcbnew/Layer.In8.Cu] 99 | Name=In8.Cu 100 | Type=0 101 | Enabled=0 102 | [pcbnew/Layer.In9.Cu] 103 | Name=In9.Cu 104 | Type=0 105 | Enabled=0 106 | [pcbnew/Layer.In10.Cu] 107 | Name=In10.Cu 108 | Type=0 109 | Enabled=0 110 | [pcbnew/Layer.In11.Cu] 111 | Name=In11.Cu 112 | Type=0 113 | Enabled=0 114 | [pcbnew/Layer.In12.Cu] 115 | Name=In12.Cu 116 | Type=0 117 | Enabled=0 118 | [pcbnew/Layer.In13.Cu] 119 | Name=In13.Cu 120 | Type=0 121 | Enabled=0 122 | [pcbnew/Layer.In14.Cu] 123 | Name=In14.Cu 124 | Type=0 125 | Enabled=0 126 | [pcbnew/Layer.In15.Cu] 127 | Name=In15.Cu 128 | Type=0 129 | Enabled=0 130 | [pcbnew/Layer.In16.Cu] 131 | Name=In16.Cu 132 | Type=0 133 | Enabled=0 134 | [pcbnew/Layer.In17.Cu] 135 | Name=In17.Cu 136 | Type=0 137 | Enabled=0 138 | [pcbnew/Layer.In18.Cu] 139 | Name=In18.Cu 140 | Type=0 141 | Enabled=0 142 | [pcbnew/Layer.In19.Cu] 143 | Name=In19.Cu 144 | Type=0 145 | Enabled=0 146 | [pcbnew/Layer.In20.Cu] 147 | Name=In20.Cu 148 | Type=0 149 | Enabled=0 150 | [pcbnew/Layer.In21.Cu] 151 | Name=In21.Cu 152 | Type=0 153 | Enabled=0 154 | [pcbnew/Layer.In22.Cu] 155 | Name=In22.Cu 156 | Type=0 157 | Enabled=0 158 | [pcbnew/Layer.In23.Cu] 159 | Name=In23.Cu 160 | Type=0 161 | Enabled=0 162 | [pcbnew/Layer.In24.Cu] 163 | Name=In24.Cu 164 | Type=0 165 | Enabled=0 166 | [pcbnew/Layer.In25.Cu] 167 | Name=In25.Cu 168 | Type=0 169 | Enabled=0 170 | [pcbnew/Layer.In26.Cu] 171 | Name=In26.Cu 172 | Type=0 173 | Enabled=0 174 | [pcbnew/Layer.In27.Cu] 175 | Name=In27.Cu 176 | Type=0 177 | Enabled=0 178 | [pcbnew/Layer.In28.Cu] 179 | Name=In28.Cu 180 | Type=0 181 | Enabled=0 182 | [pcbnew/Layer.In29.Cu] 183 | Name=In29.Cu 184 | Type=0 185 | Enabled=0 186 | [pcbnew/Layer.In30.Cu] 187 | Name=In30.Cu 188 | Type=0 189 | Enabled=0 190 | [pcbnew/Layer.B.Cu] 191 | Name=B.Cu 192 | Type=0 193 | Enabled=1 194 | [pcbnew/Layer.B.Adhes] 195 | Enabled=1 196 | [pcbnew/Layer.F.Adhes] 197 | Enabled=1 198 | [pcbnew/Layer.B.Paste] 199 | Enabled=1 200 | [pcbnew/Layer.F.Paste] 201 | Enabled=1 202 | [pcbnew/Layer.B.SilkS] 203 | Enabled=1 204 | [pcbnew/Layer.F.SilkS] 205 | Enabled=1 206 | [pcbnew/Layer.B.Mask] 207 | Enabled=1 208 | [pcbnew/Layer.F.Mask] 209 | Enabled=1 210 | [pcbnew/Layer.Dwgs.User] 211 | Enabled=1 212 | [pcbnew/Layer.Cmts.User] 213 | Enabled=1 214 | [pcbnew/Layer.Eco1.User] 215 | Enabled=1 216 | [pcbnew/Layer.Eco2.User] 217 | Enabled=1 218 | [pcbnew/Layer.Edge.Cuts] 219 | Enabled=1 220 | [pcbnew/Layer.Margin] 221 | Enabled=1 222 | [pcbnew/Layer.B.CrtYd] 223 | Enabled=1 224 | [pcbnew/Layer.F.CrtYd] 225 | Enabled=1 226 | [pcbnew/Layer.B.Fab] 227 | Enabled=1 228 | [pcbnew/Layer.F.Fab] 229 | Enabled=1 230 | [pcbnew/Layer.Rescue] 231 | Enabled=0 232 | [pcbnew/Netclasses] 233 | [pcbnew/Netclasses/Default] 234 | Name=Default 235 | Clearance=0.2 236 | TrackWidth=0.25 237 | ViaDiameter=0.8 238 | ViaDrill=0.4 239 | uViaDiameter=0.3 240 | uViaDrill=0.1 241 | dPairWidth=0.2 242 | dPairGap=0.25 243 | dPairViaGap=0.25 244 | -------------------------------------------------------------------------------- /expansion/sdcard/sdcard.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | LIBS:sdcard-cache 3 | EELAYER 29 0 4 | EELAYER END 5 | $Descr A4 11693 8268 6 | encoding utf-8 7 | Sheet 1 1 8 | Title "HD6309 SDCARD + I2C INTERFACE" 9 | Date "2019-10-07" 10 | Rev "B" 11 | Comp "Moseley Instruments" 12 | Comment1 "" 13 | Comment2 "" 14 | Comment3 "" 15 | Comment4 "" 16 | $EndDescr 17 | $Comp 18 | L Connector_Generic:Conn_01x10 J2 19 | U 1 1 5D9A892D 20 | P 1000 1400 21 | F 0 "J2" H 918 2017 50 0000 C CNN 22 | F 1 "Conn_01x10" H 918 1926 50 0000 C CNN 23 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical" H 1000 1400 50 0001 C CNN 24 | F 3 "~" H 1000 1400 50 0001 C CNN 25 | 1 1000 1400 26 | -1 0 0 -1 27 | $EndComp 28 | $Comp 29 | L Connector_Generic:Conn_01x08 J1 30 | U 1 1 5D9A9B47 31 | P 700 2700 32 | F 0 "J1" H 618 3217 50 0000 C CNN 33 | F 1 "Conn_01x08" H 618 3126 50 0000 C CNN 34 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical" H 700 2700 50 0001 C CNN 35 | F 3 "~" H 700 2700 50 0001 C CNN 36 | 1 700 2700 37 | -1 0 0 -1 38 | $EndComp 39 | $Comp 40 | L Regulator_Linear:LM1117-3.3 U3 41 | U 1 1 5D9AA3B5 42 | P 3100 1100 43 | F 0 "U3" H 3100 1342 50 0000 C CNN 44 | F 1 "LM1117-3.3" H 3100 1251 50 0000 C CNN 45 | F 2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" H 3100 1100 50 0001 C CNN 46 | F 3 "http://www.ti.com/lit/ds/symlink/lm1117.pdf" H 3100 1100 50 0001 C CNN 47 | 1 3100 1100 48 | 1 0 0 -1 49 | $EndComp 50 | $Comp 51 | L Device:C_Small C1 52 | U 1 1 5D9AAE3B 53 | P 2550 1300 54 | F 0 "C1" H 2642 1346 50 0000 L CNN 55 | F 1 "100n" H 2642 1255 50 0000 L CNN 56 | F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 2550 1300 50 0001 C CNN 57 | F 3 "~" H 2550 1300 50 0001 C CNN 58 | 1 2550 1300 59 | 1 0 0 -1 60 | $EndComp 61 | Wire Wire Line 62 | 2550 1200 2550 1100 63 | Wire Wire Line 64 | 2550 1100 2800 1100 65 | $Comp 66 | L Device:C_Small C2 67 | U 1 1 5D9AB622 68 | P 3650 1300 69 | F 0 "C2" H 3742 1346 50 0000 L CNN 70 | F 1 "100n" H 3742 1255 50 0000 L CNN 71 | F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 3650 1300 50 0001 C CNN 72 | F 3 "~" H 3650 1300 50 0001 C CNN 73 | 1 3650 1300 74 | 1 0 0 -1 75 | $EndComp 76 | Wire Wire Line 77 | 3650 1200 3650 1100 78 | $Comp 79 | L power:GND #PWR0101 80 | U 1 1 5D9AC0B2 81 | P 2550 1500 82 | F 0 "#PWR0101" H 2550 1250 50 0001 C CNN 83 | F 1 "GND" H 2555 1327 50 0000 C CNN 84 | F 2 "" H 2550 1500 50 0001 C CNN 85 | F 3 "" H 2550 1500 50 0001 C CNN 86 | 1 2550 1500 87 | 1 0 0 -1 88 | $EndComp 89 | Wire Wire Line 90 | 2550 1500 2550 1450 91 | Wire Wire Line 92 | 2550 1450 3100 1450 93 | Wire Wire Line 94 | 3100 1450 3100 1400 95 | Connection ~ 2550 1450 96 | Wire Wire Line 97 | 2550 1450 2550 1400 98 | Wire Wire Line 99 | 3100 1450 3650 1450 100 | Wire Wire Line 101 | 3650 1450 3650 1400 102 | Connection ~ 3100 1450 103 | Wire Wire Line 104 | 3400 1100 3650 1100 105 | Wire Wire Line 106 | 3650 1100 3800 1100 107 | Connection ~ 3650 1100 108 | $Comp 109 | L power:+3V3 #PWR0102 110 | U 1 1 5D9AD0C7 111 | P 3800 1100 112 | F 0 "#PWR0102" H 3800 950 50 0001 C CNN 113 | F 1 "+3V3" H 3815 1273 50 0000 C CNN 114 | F 2 "" H 3800 1100 50 0001 C CNN 115 | F 3 "" H 3800 1100 50 0001 C CNN 116 | 1 3800 1100 117 | 1 0 0 -1 118 | $EndComp 119 | Wire Wire Line 120 | 1200 1000 1500 1000 121 | Wire Wire Line 122 | 1500 1000 1500 800 123 | $Comp 124 | L power:+5V #PWR0103 125 | U 1 1 5D9AD9D3 126 | P 1500 800 127 | F 0 "#PWR0103" H 1500 650 50 0001 C CNN 128 | F 1 "+5V" H 1515 973 50 0000 C CNN 129 | F 2 "" H 1500 800 50 0001 C CNN 130 | F 3 "" H 1500 800 50 0001 C CNN 131 | 1 1500 800 132 | 1 0 0 -1 133 | $EndComp 134 | Wire Wire Line 135 | 1200 1100 1750 1100 136 | Wire Wire Line 137 | 1750 1100 1750 900 138 | Wire Wire Line 139 | 1750 900 1850 900 140 | Wire Wire Line 141 | 1850 900 1850 950 142 | $Comp 143 | L power:GND #PWR0104 144 | U 1 1 5D9AE2A6 145 | P 1850 950 146 | F 0 "#PWR0104" H 1850 700 50 0001 C CNN 147 | F 1 "GND" H 1855 777 50 0000 C CNN 148 | F 2 "" H 1850 950 50 0001 C CNN 149 | F 3 "" H 1850 950 50 0001 C CNN 150 | 1 1850 950 151 | 1 0 0 -1 152 | $EndComp 153 | Wire Wire Line 154 | 1200 1200 1500 1200 155 | Text GLabel 1500 1200 2 50 Output ~ 0 156 | ~RD 157 | Text GLabel 1700 1300 2 50 Output ~ 0 158 | ~WR 159 | Wire Wire Line 160 | 1200 1300 1700 1300 161 | Wire Wire Line 162 | 900 2400 1600 2400 163 | Wire Wire Line 164 | 900 2600 1400 2600 165 | Wire Wire Line 166 | 900 2800 1200 2800 167 | Wire Wire Line 168 | 900 3000 1000 3000 169 | $Comp 170 | L power:+5V #PWR0105 171 | U 1 1 5D9B481C 172 | P 3200 3450 173 | F 0 "#PWR0105" H 3200 3300 50 0001 C CNN 174 | F 1 "+5V" H 3215 3623 50 0000 C CNN 175 | F 2 "" H 3200 3450 50 0001 C CNN 176 | F 3 "" H 3200 3450 50 0001 C CNN 177 | 1 3200 3450 178 | 1 0 0 -1 179 | $EndComp 180 | Wire Wire Line 181 | 3200 3450 3200 3550 182 | Wire Wire Line 183 | 3200 3550 3350 3550 184 | Wire Wire Line 185 | 3350 3550 3350 3300 186 | Wire Wire Line 187 | 3350 3300 3450 3300 188 | Wire Wire Line 189 | 3000 3200 3450 3200 190 | Text GLabel 3000 3200 0 50 Input ~ 0 191 | ~RD 192 | NoConn ~ 1200 1600 193 | NoConn ~ 1200 1700 194 | NoConn ~ 1200 1800 195 | NoConn ~ 1200 1900 196 | Wire Wire Line 197 | 4250 2400 4300 2400 198 | Wire Wire Line 199 | 4400 2400 4400 2250 200 | $Comp 201 | L power:GND #PWR0106 202 | U 1 1 5D9B97C9 203 | P 4550 2250 204 | F 0 "#PWR0106" H 4550 2000 50 0001 C CNN 205 | F 1 "GND" H 4555 2077 50 0000 C CNN 206 | F 2 "" H 4550 2250 50 0001 C CNN 207 | F 3 "" H 4550 2250 50 0001 C CNN 208 | 1 4550 2250 209 | 1 0 0 -1 210 | $EndComp 211 | Wire Wire Line 212 | 4550 2250 4400 2250 213 | $Comp 214 | L HD6309_sdcard:74HC574 U1 215 | U 1 1 5D9BB470 216 | P 2250 4850 217 | F 0 "U1" H 2550 6115 50 0000 C CNN 218 | F 1 "74LVX574" H 2550 6024 50 0000 C CNN 219 | F 2 "Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm" H 2650 5400 50 0001 C CNN 220 | F 3 "" H 2650 5400 50 0000 C CNN 221 | 1 2250 4850 222 | 1 0 0 -1 223 | $EndComp 224 | Wire Wire Line 225 | 2150 3950 1600 3950 226 | Wire Wire Line 227 | 1600 3950 1600 2400 228 | Wire Wire Line 229 | 1500 4050 2150 4050 230 | Wire Wire Line 231 | 1500 2500 900 2500 232 | Wire Wire Line 233 | 2150 4150 1400 4150 234 | Wire Wire Line 235 | 1400 4150 1400 2600 236 | Wire Wire Line 237 | 2150 4250 1300 4250 238 | Wire Wire Line 239 | 1300 4250 1300 2700 240 | Wire Wire Line 241 | 1300 2700 900 2700 242 | Wire Wire Line 243 | 2150 4350 1200 4350 244 | Wire Wire Line 245 | 1200 4350 1200 2800 246 | Wire Wire Line 247 | 2150 4450 1100 4450 248 | Wire Wire Line 249 | 1100 4450 1100 2900 250 | Wire Wire Line 251 | 1100 2900 900 2900 252 | Wire Wire Line 253 | 2150 4550 1000 4550 254 | Wire Wire Line 255 | 1000 4550 1000 3000 256 | Wire Wire Line 257 | 2150 4650 900 4650 258 | Wire Wire Line 259 | 900 4650 900 3100 260 | $Comp 261 | L power:GND #PWR0107 262 | U 1 1 5D9C9A9B 263 | P 2050 4850 264 | F 0 "#PWR0107" H 2050 4600 50 0001 C CNN 265 | F 1 "GND" H 2055 4677 50 0000 C CNN 266 | F 2 "" H 2050 4850 50 0001 C CNN 267 | F 3 "" H 2050 4850 50 0001 C CNN 268 | 1 2050 4850 269 | 1 0 0 -1 270 | $EndComp 271 | Wire Wire Line 272 | 2050 4850 2050 4750 273 | Wire Wire Line 274 | 2050 4750 2150 4750 275 | $Comp 276 | L power:GND #PWR0108 277 | U 1 1 5D9CB7DC 278 | P 2000 3750 279 | F 0 "#PWR0108" H 2000 3500 50 0001 C CNN 280 | F 1 "GND" H 2005 3577 50 0000 C CNN 281 | F 2 "" H 2000 3750 50 0001 C CNN 282 | F 3 "" H 2000 3750 50 0001 C CNN 283 | 1 2000 3750 284 | 1 0 0 -1 285 | $EndComp 286 | Wire Wire Line 287 | 2000 3750 2000 3700 288 | Wire Wire Line 289 | 2000 3700 2150 3700 290 | Wire Wire Line 291 | 2150 3700 2150 3850 292 | Wire Wire Line 293 | 3050 3650 3050 3850 294 | Wire Wire Line 295 | 3050 3850 2950 3850 296 | Text GLabel 3100 4750 2 50 Input ~ 0 297 | ~WR 298 | Wire Wire Line 299 | 3100 4750 2950 4750 300 | Text GLabel 3250 4050 2 50 Output ~ 0 301 | MOSI_3V 302 | Wire Wire Line 303 | 3250 3950 2950 3950 304 | Text GLabel 3250 4150 2 50 Output ~ 0 305 | SCK_3V 306 | Wire Wire Line 307 | 2950 4050 3250 4050 308 | Wire Wire Line 309 | 2950 4150 3250 4150 310 | Text GLabel 3250 3950 2 50 Output ~ 0 311 | ~SS_3V 312 | $Comp 313 | L power:+5V #PWR0114 314 | U 1 1 5DA39338 315 | P 2550 1000 316 | F 0 "#PWR0114" H 2550 850 50 0001 C CNN 317 | F 1 "+5V" H 2565 1173 50 0000 C CNN 318 | F 2 "" H 2550 1000 50 0001 C CNN 319 | F 3 "" H 2550 1000 50 0001 C CNN 320 | 1 2550 1000 321 | 1 0 0 -1 322 | $EndComp 323 | Wire Wire Line 324 | 2550 1000 2550 1100 325 | Connection ~ 2550 1100 326 | $Comp 327 | L Connector:SD_Card J3 328 | U 1 1 5DA3D279 329 | P 6300 4250 330 | F 0 "J3" H 6300 4915 50 0000 C CNN 331 | F 1 "SD_Card" H 6300 4824 50 0000 C CNN 332 | F 2 "Connector_Card:SD_TE_2041021" H 6300 4250 50 0001 C CNN 333 | F 3 "http://portal.fciconnect.com/Comergent//fci/drawing/10067847.pdf" H 6300 4250 50 0001 C CNN 334 | F 4 "649-10067847-001RLF" H 6300 4250 50 0001 C CNN "PN" 335 | 1 6300 4250 336 | 1 0 0 -1 337 | $EndComp 338 | Wire Wire Line 339 | 5400 4450 5150 4450 340 | Wire Wire Line 341 | 5150 4450 5150 4800 342 | $Comp 343 | L power:GND #PWR0115 344 | U 1 1 5DA52644 345 | P 5150 4800 346 | F 0 "#PWR0115" H 5150 4550 50 0001 C CNN 347 | F 1 "GND" H 5155 4627 50 0000 C CNN 348 | F 2 "" H 5150 4800 50 0001 C CNN 349 | F 3 "" H 5150 4800 50 0001 C CNN 350 | 1 5150 4800 351 | 1 0 0 -1 352 | $EndComp 353 | Wire Wire Line 354 | 5150 4450 5150 4150 355 | Wire Wire Line 356 | 5150 4150 5400 4150 357 | Connection ~ 5150 4450 358 | $Comp 359 | L power:+3V3 #PWR0116 360 | U 1 1 5DA565DE 361 | P 4000 4250 362 | F 0 "#PWR0116" H 4000 4100 50 0001 C CNN 363 | F 1 "+3V3" H 4015 4423 50 0000 C CNN 364 | F 2 "" H 4000 4250 50 0001 C CNN 365 | F 3 "" H 4000 4250 50 0001 C CNN 366 | 1 4000 4250 367 | 1 0 0 -1 368 | $EndComp 369 | Wire Wire Line 370 | 4000 4250 4100 4250 371 | Text GLabel 4350 3100 2 50 Input ~ 0 372 | MISO 373 | $Comp 374 | L power:GND #PWR0125 375 | U 1 1 5DAB4AC3 376 | P 4350 3350 377 | F 0 "#PWR0125" H 4350 3100 50 0001 C CNN 378 | F 1 "GND" H 4355 3177 50 0000 C CNN 379 | F 2 "" H 4350 3350 50 0001 C CNN 380 | F 3 "" H 4350 3350 50 0001 C CNN 381 | 1 4350 3350 382 | 1 0 0 -1 383 | $EndComp 384 | Wire Wire Line 385 | 4250 3300 4350 3300 386 | Wire Wire Line 387 | 4350 3300 4350 3350 388 | Text GLabel 4650 4550 0 50 Output ~ 0 389 | MISO 390 | Wire Wire Line 391 | 4650 4550 5400 4550 392 | NoConn ~ 5400 4650 393 | Text GLabel 4650 4350 0 50 Input ~ 0 394 | SCK_3V 395 | Wire Wire Line 396 | 4650 4350 5400 4350 397 | Text GLabel 4650 4050 0 50 Output ~ 0 398 | MOSI_3V 399 | Wire Wire Line 400 | 4650 4050 5400 4050 401 | Text GLabel 4650 3950 0 50 Input ~ 0 402 | ~SS_3V 403 | Wire Wire Line 404 | 4650 3950 4850 3950 405 | NoConn ~ 5400 3850 406 | NoConn ~ 1200 1500 407 | NoConn ~ 1200 1400 408 | Wire Wire Line 409 | 1500 2500 1500 2550 410 | $Comp 411 | L Device:R_Small R9 412 | U 1 1 5DB4243F 413 | P 7500 3750 414 | F 0 "R9" H 7559 3796 50 0000 L CNN 415 | F 1 "10k" H 7559 3705 50 0000 L CNN 416 | F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 7500 3750 50 0001 C CNN 417 | F 3 "~" H 7500 3750 50 0001 C CNN 418 | 1 7500 3750 419 | 1 0 0 -1 420 | $EndComp 421 | Wire Wire Line 422 | 7200 4050 7500 4050 423 | Wire Wire Line 424 | 7500 4050 7500 3850 425 | $Comp 426 | L power:+3V3 #PWR0126 427 | U 1 1 5DB48C13 428 | P 7500 3550 429 | F 0 "#PWR0126" H 7500 3400 50 0001 C CNN 430 | F 1 "+3V3" H 7515 3723 50 0000 C CNN 431 | F 2 "" H 7500 3550 50 0001 C CNN 432 | F 3 "" H 7500 3550 50 0001 C CNN 433 | 1 7500 3550 434 | 1 0 0 -1 435 | $EndComp 436 | Wire Wire Line 437 | 7500 3550 7500 3650 438 | Wire Wire Line 439 | 7500 4050 7650 4050 440 | Connection ~ 7500 4050 441 | Text GLabel 4350 3200 2 50 Input ~ 0 442 | CARD_DETECT 443 | Text GLabel 7650 4050 2 50 Output ~ 0 444 | CARD_DETECT 445 | NoConn ~ 7200 4350 446 | $Comp 447 | L power:+3V3 #PWR0109 448 | U 1 1 5DA92681 449 | P 3050 3650 450 | F 0 "#PWR0109" H 3050 3500 50 0001 C CNN 451 | F 1 "+3V3" H 3065 3823 50 0000 C CNN 452 | F 2 "" H 3050 3650 50 0001 C CNN 453 | F 3 "" H 3050 3650 50 0001 C CNN 454 | 1 3050 3650 455 | 1 0 0 -1 456 | $EndComp 457 | Wire Wire Line 458 | 4350 3100 4250 3100 459 | NoConn ~ 2950 4250 460 | NoConn ~ 2950 4350 461 | NoConn ~ 2950 4450 462 | NoConn ~ 2950 4550 463 | NoConn ~ 2950 4650 464 | $Comp 465 | L Device:C_Small C3 466 | U 1 1 5DAAB322 467 | P 4100 4600 468 | F 0 "C3" H 4192 4646 50 0000 L CNN 469 | F 1 "100n" H 4192 4555 50 0000 L CNN 470 | F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4100 4600 50 0001 C CNN 471 | F 3 "~" H 4100 4600 50 0001 C CNN 472 | 1 4100 4600 473 | 1 0 0 -1 474 | $EndComp 475 | Wire Wire Line 476 | 4100 4250 4100 4500 477 | Connection ~ 4100 4250 478 | Wire Wire Line 479 | 4100 4250 5400 4250 480 | $Comp 481 | L power:GND #PWR0110 482 | U 1 1 5DAB1275 483 | P 4100 4800 484 | F 0 "#PWR0110" H 4100 4550 50 0001 C CNN 485 | F 1 "GND" H 4105 4627 50 0000 C CNN 486 | F 2 "" H 4100 4800 50 0001 C CNN 487 | F 3 "" H 4100 4800 50 0001 C CNN 488 | 1 4100 4800 489 | 1 0 0 -1 490 | $EndComp 491 | Wire Wire Line 492 | 4100 4800 4100 4700 493 | $Comp 494 | L Device:LED_Small D1 495 | U 1 1 5DAB3EC3 496 | P 4850 3700 497 | F 0 "D1" V 4804 3798 50 0000 L CNN 498 | F 1 "LED_Small" V 4895 3798 50 0000 L CNN 499 | F 2 "LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder" V 4850 3700 50 0001 C CNN 500 | F 3 "~" V 4850 3700 50 0001 C CNN 501 | 1 4850 3700 502 | 0 1 1 0 503 | $EndComp 504 | Wire Wire Line 505 | 4850 3800 4850 3950 506 | Connection ~ 4850 3950 507 | Wire Wire Line 508 | 4850 3950 5400 3950 509 | $Comp 510 | L power:+3V3 #PWR0111 511 | U 1 1 5DAB78B8 512 | P 5450 3350 513 | F 0 "#PWR0111" H 5450 3200 50 0001 C CNN 514 | F 1 "+3V3" H 5465 3523 50 0000 C CNN 515 | F 2 "" H 5450 3350 50 0001 C CNN 516 | F 3 "" H 5450 3350 50 0001 C CNN 517 | 1 5450 3350 518 | 1 0 0 -1 519 | $EndComp 520 | $Comp 521 | L Device:R_Small R1 522 | U 1 1 5DAB8360 523 | P 4850 3450 524 | F 0 "R1" H 4909 3496 50 0000 L CNN 525 | F 1 "470" H 4909 3405 50 0000 L CNN 526 | F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4850 3450 50 0001 C CNN 527 | F 3 "~" H 4850 3450 50 0001 C CNN 528 | 1 4850 3450 529 | 1 0 0 -1 530 | $EndComp 531 | Wire Wire Line 532 | 4850 3550 4850 3600 533 | Wire Wire Line 534 | 5450 3350 4850 3350 535 | Wire Wire Line 536 | 4350 3200 4250 3200 537 | NoConn ~ 3450 2400 538 | NoConn ~ 3450 2500 539 | NoConn ~ 3450 2600 540 | NoConn ~ 3450 2700 541 | NoConn ~ 3450 2800 542 | NoConn ~ 3450 2900 543 | $Comp 544 | L HD6309_sdcard:74HC541 U2 545 | U 1 1 5D9A747E 546 | P 4150 2300 547 | F 0 "U2" H 4450 2135 50 0000 C CNN 548 | F 1 "74HCT541" H 4450 2226 50 0000 C CNN 549 | F 2 "Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm" H 4550 2850 50 0001 C CNN 550 | F 3 "" H 4550 2850 50 0000 C CNN 551 | 1 4150 2300 552 | -1 0 0 1 553 | $EndComp 554 | Wire Wire Line 555 | 4300 2400 4300 2500 556 | Wire Wire Line 557 | 4300 2500 4250 2500 558 | Connection ~ 4300 2400 559 | Wire Wire Line 560 | 4300 2400 4400 2400 561 | Wire Wire Line 562 | 4300 2500 4300 2600 563 | Wire Wire Line 564 | 4300 2600 4250 2600 565 | Connection ~ 4300 2500 566 | Wire Wire Line 567 | 4300 2600 4300 2700 568 | Wire Wire Line 569 | 4300 2700 4250 2700 570 | Connection ~ 4300 2600 571 | Wire Wire Line 572 | 4250 2800 4300 2800 573 | Wire Wire Line 574 | 4300 2800 4300 2700 575 | Connection ~ 4300 2700 576 | Wire Wire Line 577 | 4250 2900 4300 2900 578 | Wire Wire Line 579 | 4300 2900 4300 2800 580 | Connection ~ 4300 2800 581 | Wire Wire Line 582 | 4250 3000 4300 3000 583 | Wire Wire Line 584 | 4300 3000 4300 2900 585 | Connection ~ 4300 2900 586 | Wire Wire Line 587 | 3450 3000 1950 3000 588 | Wire Wire Line 589 | 1850 3100 3450 3100 590 | Wire Wire Line 591 | 1600 2400 1850 2400 592 | Wire Wire Line 593 | 1850 2400 1850 3100 594 | Connection ~ 1600 2400 595 | Wire Wire Line 596 | 1950 3000 1950 2500 597 | Wire Wire Line 598 | 1950 2500 1500 2500 599 | Connection ~ 1500 2500 600 | Wire Wire Line 601 | 1500 2550 1500 4050 602 | $EndSCHEMATC 603 | -------------------------------------------------------------------------------- /expansion/sdcard/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name HD6309_sdcard)(type Legacy)(uri ${KIPRJMOD}/HD6309_sdcard.lib)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /images/HD6309_computer_30_4_2017_2_small.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trcwm/HD6309-Computer/426b9321384f4665ced02b92d3b37952d3cea111/images/HD6309_computer_30_4_2017_2_small.JPG -------------------------------------------------------------------------------- /images/HD6309_srec_loading_test.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trcwm/HD6309-Computer/426b9321384f4665ced02b92d3b37952d3cea111/images/HD6309_srec_loading_test.gif -------------------------------------------------------------------------------- /kicad/HD6309_computer-rescue.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /kicad/HD6309_computer.pro: -------------------------------------------------------------------------------- 1 | update=Sun 06 Oct 2019 04:41:19 PM CEST 2 | version=1 3 | last_client=kicad 4 | [pcbnew] 5 | version=1 6 | LastNetListRead= 7 | UseCmpFile=1 8 | PadDrill=0.600000000000 9 | PadDrillOvalY=0.600000000000 10 | PadSizeH=1.500000000000 11 | PadSizeV=1.500000000000 12 | PcbTextSizeV=1.500000000000 13 | PcbTextSizeH=1.500000000000 14 | PcbTextThickness=0.300000000000 15 | ModuleTextSizeV=1.000000000000 16 | ModuleTextSizeH=1.000000000000 17 | ModuleTextSizeThickness=0.150000000000 18 | SolderMaskClearance=0.000000000000 19 | SolderMaskMinWidth=0.000000000000 20 | DrawSegmentWidth=0.200000000000 21 | BoardOutlineThickness=0.100000000000 22 | ModuleOutlineThickness=0.150000000000 23 | [cvpcb] 24 | version=1 25 | NetIExt=net 26 | [general] 27 | version=1 28 | [eeschema] 29 | version=1 30 | LibDir= 31 | [schematic_editor] 32 | version=1 33 | PageLayoutDescrFile= 34 | PlotDirectoryName=./ 35 | SubpartIdSeparator=0 36 | SubpartFirstId=65 37 | NetFmtName= 38 | SpiceAjustPassiveValues=0 39 | LabSize=60 40 | ERC_TestSimilarLabels=1 41 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/CP_Elec_6.3x5.3.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Capacitors_SMD:CP_Elec_6.3x5.3 (layer F.Cu) (tedit 58F28F83) 2 | (descr "SMT capacitor, aluminium electrolytic, 6.3x5.3") 3 | (attr smd) 4 | (fp_text reference C2 (at -5.08 2.235 90) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value 1u (at 0 0 90) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_circle (center 0 0) (end 0.6 3) (layer F.Fab) (width 0.1)) 11 | (fp_text user + (at -1.75 -0.08) (layer F.Fab) 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | ) 14 | (fp_text user + (at -4.28 3.01) (layer F.SilkS) 15 | (effects (font (size 1 1) (thickness 0.15))) 16 | ) 17 | (fp_text user %R (at -4.445 -2.54 90) (layer F.Fab) hide 18 | (effects (font (size 1 1) (thickness 0.15))) 19 | ) 20 | (fp_line (start 3.15 3.15) (end 3.15 -3.15) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -2.48 3.15) (end 3.15 3.15) (layer F.Fab) (width 0.1)) 22 | (fp_line (start -3.15 2.48) (end -2.48 3.15) (layer F.Fab) (width 0.1)) 23 | (fp_line (start -3.15 -2.48) (end -3.15 2.48) (layer F.Fab) (width 0.1)) 24 | (fp_line (start -2.48 -3.15) (end -3.15 -2.48) (layer F.Fab) (width 0.1)) 25 | (fp_line (start 3.15 -3.15) (end -2.48 -3.15) (layer F.Fab) (width 0.1)) 26 | (fp_line (start 3.3 3.3) (end 3.3 1.12) (layer F.SilkS) (width 0.12)) 27 | (fp_line (start 3.3 -3.3) (end 3.3 -1.12) (layer F.SilkS) (width 0.12)) 28 | (fp_line (start -3.3 2.54) (end -3.3 1.12) (layer F.SilkS) (width 0.12)) 29 | (fp_line (start -3.3 -2.54) (end -3.3 -1.12) (layer F.SilkS) (width 0.12)) 30 | (fp_line (start 3.3 3.3) (end -2.54 3.3) (layer F.SilkS) (width 0.12)) 31 | (fp_line (start -2.54 3.3) (end -3.3 2.54) (layer F.SilkS) (width 0.12)) 32 | (fp_line (start -3.3 -2.54) (end -2.54 -3.3) (layer F.SilkS) (width 0.12)) 33 | (fp_line (start -2.54 -3.3) (end 3.3 -3.3) (layer F.SilkS) (width 0.12)) 34 | (fp_line (start -4.7 -3.4) (end 4.7 -3.4) (layer F.CrtYd) (width 0.05)) 35 | (fp_line (start -4.7 -3.4) (end -4.7 3.4) (layer F.CrtYd) (width 0.05)) 36 | (fp_line (start 4.7 3.4) (end 4.7 -3.4) (layer F.CrtYd) (width 0.05)) 37 | (fp_line (start 4.7 3.4) (end -4.7 3.4) (layer F.CrtYd) (width 0.05)) 38 | (pad 1 smd rect (at -2.7 0 180) (size 3.5 1.6) (layers F.Cu F.Paste F.Mask)) 39 | (pad 2 smd rect (at 2.7 0 180) (size 3.5 1.6) (layers F.Cu F.Paste F.Mask)) 40 | (model Capacitors_SMD.3dshapes/CP_Elec_6.3x5.3.wrl 41 | (at (xyz 0 0 0)) 42 | (scale (xyz 1 1 1)) 43 | (rotate (xyz 0 0 180)) 44 | ) 45 | ) 46 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/C_0805_HandSoldering.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 58F6351D) 2 | (descr "Capacitor SMD 0805, hand soldering") 3 | (tags "capacitor 0805") 4 | (attr smd) 5 | (fp_text reference C12 (at 0.0635 1.651) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value 100n (at 0.0635 0) (layer F.Fab) hide 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_text user %R (at 0 -1.75) (layer F.Fab) hide 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | ) 14 | (fp_line (start -1 0.62) (end -1 -0.62) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 1 0.62) (end -1 0.62) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 1 -0.62) (end 1 0.62) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1 -0.62) (end 1 -0.62) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start -2.25 -0.88) (end 2.25 -0.88) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -2.25 -0.88) (end -2.25 0.87) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 2.25 0.87) (end 2.25 -0.88) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 2.25 0.87) (end -2.25 0.87) (layer F.CrtYd) (width 0.05)) 24 | (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask)) 25 | (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask)) 26 | (model Capacitors_SMD.3dshapes/C_0805.wrl 27 | (at (xyz 0 0 0)) 28 | (scale (xyz 1 1 1)) 29 | (rotate (xyz 0 0 0)) 30 | ) 31 | ) 32 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/DIP-20_W7.62mm_LongPads.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Housings_DIP:DIP-20_W7.62mm_LongPads (layer F.Cu) (tedit 58F28D9E) 2 | (descr "20-lead dip package, row spacing 7.62 mm (300 mils), LongPads") 3 | (tags "DIL DIP PDIP 2.54mm 7.62mm 300mil LongPads") 4 | (fp_text reference U4 (at 7.62 25.4) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value ATF16V8B (at 3.81 25.25) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user %R (at 3.81 11.43) (layer F.Fab) hide 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_line (start 1.635 -1.27) (end 6.985 -1.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start 6.985 -1.27) (end 6.985 24.13) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 6.985 24.13) (end 0.635 24.13) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 0.635 24.13) (end 0.635 -0.27) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 0.635 -0.27) (end 1.635 -1.27) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 2.81 -1.39) (end 1.44 -1.39) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start 1.44 -1.39) (end 1.44 24.25) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start 1.44 24.25) (end 6.18 24.25) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start 6.18 24.25) (end 6.18 -1.39) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 6.18 -1.39) (end 4.81 -1.39) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start -1.5 -1.6) (end -1.5 24.4) (layer F.CrtYd) (width 0.05)) 24 | (fp_line (start -1.5 24.4) (end 9.1 24.4) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start 9.1 24.4) (end 9.1 -1.6) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start 9.1 -1.6) (end -1.5 -1.6) (layer F.CrtYd) (width 0.05)) 27 | (fp_arc (start 3.81 -1.39) (end 2.81 -1.39) (angle -180) (layer F.SilkS) (width 0.12)) 28 | (pad 1 thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 29 | (pad 11 thru_hole oval (at 7.62 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 31 | (pad 12 thru_hole oval (at 7.62 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 32 | (pad 3 thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 33 | (pad 13 thru_hole oval (at 7.62 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 34 | (pad 4 thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 35 | (pad 14 thru_hole oval (at 7.62 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 36 | (pad 5 thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 37 | (pad 15 thru_hole oval (at 7.62 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 38 | (pad 6 thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 39 | (pad 16 thru_hole oval (at 7.62 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 40 | (pad 7 thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 41 | (pad 17 thru_hole oval (at 7.62 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 42 | (pad 8 thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 43 | (pad 18 thru_hole oval (at 7.62 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 44 | (pad 9 thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 45 | (pad 19 thru_hole oval (at 7.62 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 46 | (pad 10 thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 47 | (pad 20 thru_hole oval (at 7.62 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 48 | (model Housings_DIP.3dshapes/DIP-20_W7.62mm_LongPads.wrl 49 | (at (xyz 0 0 0)) 50 | (scale (xyz 1 1 1)) 51 | (rotate (xyz 0 0 0)) 52 | ) 53 | ) 54 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/DIP-28_W15.24mm_LongPads.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Housings_DIP:DIP-28_W15.24mm_LongPads (layer F.Cu) (tedit 58F2959E) 2 | (descr "28-lead dip package, row spacing 15.24 mm (600 mils), LongPads") 3 | (tags "DIL DIP PDIP 2.54mm 15.24mm 600mil LongPads") 4 | (fp_text reference U12 (at 13.335 35.306) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value AT28C64B (at 7.62 35.41) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user %R (at 7.62 16.51) (layer F.Fab) 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_line (start 1.255 -1.27) (end 14.985 -1.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start 14.985 -1.27) (end 14.985 34.29) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 14.985 34.29) (end 0.255 34.29) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 0.255 34.29) (end 0.255 -0.27) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 0.255 -0.27) (end 1.255 -1.27) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 6.62 -1.39) (end 1.44 -1.39) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start 1.44 -1.39) (end 1.44 34.41) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start 1.44 34.41) (end 13.8 34.41) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start 13.8 34.41) (end 13.8 -1.39) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 13.8 -1.39) (end 8.62 -1.39) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start -1.5 -1.6) (end -1.5 34.6) (layer F.CrtYd) (width 0.05)) 24 | (fp_line (start -1.5 34.6) (end 16.7 34.6) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start 16.7 34.6) (end 16.7 -1.6) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start 16.7 -1.6) (end -1.5 -1.6) (layer F.CrtYd) (width 0.05)) 27 | (fp_arc (start 7.62 -1.39) (end 6.62 -1.39) (angle -180) (layer F.SilkS) (width 0.12)) 28 | (pad 1 thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 29 | (pad 15 thru_hole oval (at 15.24 33.02) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 31 | (pad 16 thru_hole oval (at 15.24 30.48) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 32 | (pad 3 thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 33 | (pad 17 thru_hole oval (at 15.24 27.94) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 34 | (pad 4 thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 35 | (pad 18 thru_hole oval (at 15.24 25.4) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 36 | (pad 5 thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 37 | (pad 19 thru_hole oval (at 15.24 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 38 | (pad 6 thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 39 | (pad 20 thru_hole oval (at 15.24 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 40 | (pad 7 thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 41 | (pad 21 thru_hole oval (at 15.24 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 42 | (pad 8 thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 43 | (pad 22 thru_hole oval (at 15.24 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 44 | (pad 9 thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 45 | (pad 23 thru_hole oval (at 15.24 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 46 | (pad 10 thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 47 | (pad 24 thru_hole oval (at 15.24 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 48 | (pad 11 thru_hole oval (at 0 25.4) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 49 | (pad 25 thru_hole oval (at 15.24 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 50 | (pad 12 thru_hole oval (at 0 27.94) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 51 | (pad 26 thru_hole oval (at 15.24 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 52 | (pad 13 thru_hole oval (at 0 30.48) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 53 | (pad 27 thru_hole oval (at 15.24 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 54 | (pad 14 thru_hole oval (at 0 33.02) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 55 | (pad 28 thru_hole oval (at 15.24 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 56 | (model Housings_DIP.3dshapes/DIP-28_W15.24mm_LongPads.wrl 57 | (at (xyz 0 0 0)) 58 | (scale (xyz 1 1 1)) 59 | (rotate (xyz 0 0 0)) 60 | ) 61 | ) 62 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/DIP-40_W15.24mm_LongPads.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Housings_DIP:DIP-40_W15.24mm_LongPads (layer F.Cu) (tedit 58F28DA3) 2 | (descr "40-lead dip package, row spacing 15.24 mm (600 mils), LongPads") 3 | (tags "DIL DIP PDIP 2.54mm 15.24mm 600mil LongPads") 4 | (fp_text reference U1 (at 15.24 50.8) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value HD63C09 (at 7.62 50.65) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user %R (at 7.62 24.13) (layer F.Fab) hide 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_line (start 1.255 -1.27) (end 14.985 -1.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start 14.985 -1.27) (end 14.985 49.53) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 14.985 49.53) (end 0.255 49.53) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 0.255 49.53) (end 0.255 -0.27) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 0.255 -0.27) (end 1.255 -1.27) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 6.62 -1.39) (end 1.44 -1.39) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start 1.44 -1.39) (end 1.44 49.65) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start 1.44 49.65) (end 13.8 49.65) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start 13.8 49.65) (end 13.8 -1.39) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 13.8 -1.39) (end 8.62 -1.39) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start -1.5 -1.6) (end -1.5 49.8) (layer F.CrtYd) (width 0.05)) 24 | (fp_line (start -1.5 49.8) (end 16.7 49.8) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start 16.7 49.8) (end 16.7 -1.6) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start 16.7 -1.6) (end -1.5 -1.6) (layer F.CrtYd) (width 0.05)) 27 | (fp_arc (start 7.62 -1.39) (end 6.62 -1.39) (angle -180) (layer F.SilkS) (width 0.12)) 28 | (pad 1 thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 29 | (pad 21 thru_hole oval (at 15.24 48.26) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 31 | (pad 22 thru_hole oval (at 15.24 45.72) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 32 | (pad 3 thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 33 | (pad 23 thru_hole oval (at 15.24 43.18) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 34 | (pad 4 thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 35 | (pad 24 thru_hole oval (at 15.24 40.64) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 36 | (pad 5 thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 37 | (pad 25 thru_hole oval (at 15.24 38.1) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 38 | (pad 6 thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 39 | (pad 26 thru_hole oval (at 15.24 35.56) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 40 | (pad 7 thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 41 | (pad 27 thru_hole oval (at 15.24 33.02) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 42 | (pad 8 thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 43 | (pad 28 thru_hole oval (at 15.24 30.48) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 44 | (pad 9 thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 45 | (pad 29 thru_hole oval (at 15.24 27.94) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 46 | (pad 10 thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 47 | (pad 30 thru_hole oval (at 15.24 25.4) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 48 | (pad 11 thru_hole oval (at 0 25.4) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 49 | (pad 31 thru_hole oval (at 15.24 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 50 | (pad 12 thru_hole oval (at 0 27.94) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 51 | (pad 32 thru_hole oval (at 15.24 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 52 | (pad 13 thru_hole oval (at 0 30.48) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 53 | (pad 33 thru_hole oval (at 15.24 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 54 | (pad 14 thru_hole oval (at 0 33.02) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 55 | (pad 34 thru_hole oval (at 15.24 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 56 | (pad 15 thru_hole oval (at 0 35.56) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 57 | (pad 35 thru_hole oval (at 15.24 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 58 | (pad 16 thru_hole oval (at 0 38.1) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 59 | (pad 36 thru_hole oval (at 15.24 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 60 | (pad 17 thru_hole oval (at 0 40.64) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 61 | (pad 37 thru_hole oval (at 15.24 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 62 | (pad 18 thru_hole oval (at 0 43.18) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 63 | (pad 38 thru_hole oval (at 15.24 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 64 | (pad 19 thru_hole oval (at 0 45.72) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 65 | (pad 39 thru_hole oval (at 15.24 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 66 | (pad 20 thru_hole oval (at 0 48.26) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 67 | (pad 40 thru_hole oval (at 15.24 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)) 68 | (model Housings_DIP.3dshapes/DIP-40_W15.24mm_LongPads.wrl 69 | (at (xyz 0 0 0)) 70 | (scale (xyz 1 1 1)) 71 | (rotate (xyz 0 0 0)) 72 | ) 73 | ) 74 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/HD6309_computer_name.kicad_mod: -------------------------------------------------------------------------------- 1 | (module mi_footprints:HD6309_computer_name (layer F.Cu) (tedit 0) 2 | (fp_text reference LOGO3 (at 0 0) (layer F.SilkS) hide 3 | (effects (font (thickness 0.3))) 4 | ) 5 | (fp_text value Logo (at 0.75 0) (layer F.SilkS) hide 6 | (effects (font (thickness 0.3))) 7 | ) 8 | (fp_poly (pts (xy -12.445783 -1.468437) (xy -12.540211 -1.339829) (xy -12.669179 -1.16102) (xy -12.806432 -0.968437) 9 | (xy -12.820364 -0.948746) (xy -13.066183 -0.601034) (xy -12.909899 -0.623972) (xy -12.608626 -0.617289) 10 | (xy -12.329373 -0.50854) (xy -12.170628 -0.390394) (xy -11.982008 -0.169658) (xy -11.882113 0.081229) 11 | (xy -11.863463 0.3835) (xy -11.869944 0.463152) (xy -11.949068 0.791615) (xy -12.109467 1.053872) 12 | (xy -12.347293 1.246599) (xy -12.658694 1.366474) (xy -12.964583 1.408) (xy -13.177485 1.407202) 13 | (xy -13.375752 1.388387) (xy -13.488851 1.363569) (xy -13.721536 1.238499) (xy -13.929959 1.043513) 14 | (xy -14.08221 0.812287) (xy -14.12875 0.688301) (xy -14.172241 0.427187) (xy -14.168166 0.343959) 15 | (xy -13.49375 0.343959) (xy -13.450567 0.545846) (xy -13.363863 0.663864) (xy -13.192207 0.772346) 16 | (xy -13.043958 0.79375) (xy -12.842071 0.750568) (xy -12.724053 0.663864) (xy -12.614484 0.491232) 17 | (xy -12.592406 0.303742) (xy -12.647349 0.126588) (xy -12.768842 -0.015039) (xy -12.946415 -0.095944) 18 | (xy -13.043958 -0.105833) (xy -13.251713 -0.059038) (xy -13.405584 0.068485) (xy -13.486279 0.257444) 19 | (xy -13.49375 0.343959) (xy -14.168166 0.343959) (xy -14.159071 0.158237) (xy -14.084841 -0.132071) 20 | (xy -13.945152 -0.457257) (xy -13.735605 -0.830844) (xy -13.530798 -1.14967) (xy -13.202708 -1.640019) 21 | (xy -12.759865 -1.640218) (xy -12.317022 -1.640416) (xy -12.445783 -1.468437)) (layer F.SilkS) (width 0.01)) 22 | (fp_poly (pts (xy -10.045191 -1.637533) (xy -9.803393 -1.53375) (xy -9.607985 -1.378819) (xy -9.476939 -1.173766) 23 | (xy -9.434614 -1.012816) (xy -9.441786 -0.751164) (xy -9.531287 -0.530337) (xy -9.694458 -0.371642) 24 | (xy -9.695505 -0.371004) (xy -9.847987 -0.278274) (xy -9.657441 -0.16585) (xy -9.468185 0.000743) 25 | (xy -9.355929 0.217092) (xy -9.318972 0.462193) (xy -9.355614 0.715039) (xy -9.464156 0.954627) 26 | (xy -9.642897 1.159952) (xy -9.772167 1.251639) (xy -10.031893 1.356818) (xy -10.340445 1.411437) 27 | (xy -10.652868 1.41148) (xy -10.920689 1.35425) (xy -11.18247 1.208641) (xy -11.392931 0.997287) 28 | (xy -11.534188 0.744058) (xy -11.588355 0.472826) (xy -11.588455 0.463021) (xy -11.574437 0.413886) 29 | (xy -11.517457 0.385717) (xy -11.395709 0.373059) (xy -11.218333 0.370417) (xy -11.023668 0.373272) 30 | (xy -10.912147 0.386148) (xy -10.861141 0.415511) (xy -10.84802 0.467826) (xy -10.847916 0.47625) 31 | (xy -10.799983 0.620943) (xy -10.6753 0.73341) (xy -10.502543 0.790713) (xy -10.451041 0.79375) 32 | (xy -10.254717 0.75035) (xy -10.116522 0.631999) (xy -10.055498 0.45647) (xy -10.054166 0.423334) 33 | (xy -10.090049 0.267956) (xy -10.16 0.15875) (xy -10.293487 0.079087) (xy -10.424583 0.052917) 34 | (xy -10.522201 0.046014) (xy -10.568436 0.006158) (xy -10.582436 -0.095373) (xy -10.583333 -0.185208) 35 | (xy -10.57785 -0.33215) (xy -10.550898 -0.40177) (xy -10.486723 -0.422424) (xy -10.451041 -0.423333) 36 | (xy -10.293353 -0.464234) (xy -10.179239 -0.567871) (xy -10.120413 -0.705648) (xy -10.128587 -0.848965) 37 | (xy -10.215476 -0.969225) (xy -10.224691 -0.975958) (xy -10.371473 -1.038582) (xy -10.532949 -1.049756) 38 | (xy -10.677509 -1.015282) (xy -10.773543 -0.940963) (xy -10.795 -0.871263) (xy -10.818366 -0.828915) 39 | (xy -10.901022 -0.804701) (xy -11.061803 -0.794679) (xy -11.165416 -0.79375) (xy -11.376035 -0.799192) 40 | (xy -11.494805 -0.825872) (xy -11.535561 -0.889323) (xy -11.512132 -1.005077) (xy -11.463653 -1.128649) 41 | (xy -11.320956 -1.353305) (xy -11.116809 -1.520656) (xy -10.869186 -1.631729) (xy -10.59606 -1.687548) 42 | (xy -10.315404 -1.689141) (xy -10.045191 -1.637533)) (layer F.SilkS) (width 0.01)) 43 | (fp_poly (pts (xy -7.628462 -1.667514) (xy -7.337525 -1.576257) (xy -7.090683 -1.406694) (xy -7.05373 -1.368926) 44 | (xy -6.883356 -1.114041) (xy -6.763107 -0.790913) (xy -6.693806 -0.424949) (xy -6.676278 -0.041554) 45 | (xy -6.711345 0.333868) (xy -6.79983 0.675909) (xy -6.942557 0.959166) (xy -6.976803 1.005417) 46 | (xy -7.213689 1.227876) (xy -7.495104 1.367428) (xy -7.799588 1.41853) (xy -8.105684 1.375639) 47 | (xy -8.228541 1.328735) (xy -8.449982 1.196571) (xy -8.622732 1.016641) (xy -8.771515 0.762065) 48 | (xy -8.794241 0.713716) (xy -8.850357 0.575395) (xy -8.88629 0.435647) (xy -8.906229 0.265205) 49 | (xy -8.914361 0.034804) (xy -8.914495 0.011394) (xy -8.202259 0.011394) (xy -8.180974 0.27364) 50 | (xy -8.179615 0.282878) (xy -8.11425 0.521925) (xy -8.009128 0.687209) (xy -7.877631 0.771656) 51 | (xy -7.733144 0.768192) (xy -7.589052 0.669741) (xy -7.545858 0.617891) (xy -7.496641 0.539697) 52 | (xy -7.464362 0.447917) (xy -7.445585 0.319344) (xy -7.436874 0.130769) (xy -7.434791 -0.132291) 53 | (xy -7.436986 -0.401278) (xy -7.445871 -0.587691) (xy -7.464898 -0.714742) (xy -7.497517 -0.805642) 54 | (xy -7.546336 -0.882474) (xy -7.689215 -1.005684) (xy -7.84658 -1.030495) (xy -7.997463 -0.956603) 55 | (xy -8.058575 -0.889848) (xy -8.122614 -0.746822) (xy -8.169976 -0.528899) (xy -8.197559 -0.26614) 56 | (xy -8.202259 0.011394) (xy -8.914495 0.011394) (xy -8.915319 -0.132291) (xy -8.911991 -0.409326) 57 | (xy -8.899215 -0.609924) (xy -8.872802 -0.763352) (xy -8.828564 -0.898876) (xy -8.794241 -0.978299) 58 | (xy -8.646972 -1.24699) (xy -8.479605 -1.436829) (xy -8.267417 -1.574696) (xy -8.228541 -1.593318) 59 | (xy -7.934975 -1.675017) (xy -7.628462 -1.667514)) (layer F.SilkS) (width 0.01)) 60 | (fp_poly (pts (xy -19.52625 -0.529166) (xy -18.467916 -0.529166) (xy -18.467916 -1.640416) (xy -17.674166 -1.640416) 61 | (xy -17.674166 1.375834) (xy -18.467916 1.375834) (xy -18.467916 0.211667) (xy -19.52625 0.211667) 62 | (xy -19.52625 1.375834) (xy -20.32 1.375834) (xy -20.32 -1.640416) (xy -19.52625 -1.640416) 63 | (xy -19.52625 -0.529166)) (layer F.SilkS) (width 0.01)) 64 | (fp_poly (pts (xy -16.03664 -1.632523) (xy -15.718107 -1.605679) (xy -15.464807 -1.555141) (xy -15.256922 -1.476164) 65 | (xy -15.074631 -1.364004) (xy -14.984509 -1.291965) (xy -14.787732 -1.101292) (xy -14.654044 -0.9084) 66 | (xy -14.572905 -0.686646) (xy -14.533772 -0.409389) (xy -14.525625 -0.132291) (xy -14.538932 0.207952) 67 | (xy -14.585881 0.471556) (xy -14.677014 0.685163) (xy -14.822874 0.875412) (xy -14.984509 1.027382) 68 | (xy -15.16136 1.158427) (xy -15.353627 1.253852) (xy -15.581128 1.318402) (xy -15.863686 1.356821) 69 | (xy -16.22112 1.373853) (xy -16.440229 1.375834) (xy -17.145 1.375834) (xy -17.145 -0.899583) 70 | (xy -16.35125 -0.899583) (xy -16.35125 0.635) (xy -16.107893 0.635) (xy -15.915447 0.616768) 71 | (xy -15.73568 0.571356) (xy -15.695464 0.55477) (xy -15.507844 0.417105) (xy -15.393091 0.212699) 72 | (xy -15.347129 -0.066455) (xy -15.345833 -0.132292) (xy -15.382764 -0.434463) (xy -15.493802 -0.661088) 73 | (xy -15.679311 -0.812535) (xy -15.939658 -0.889171) (xy -16.107893 -0.899583) (xy -16.35125 -0.899583) 74 | (xy -17.145 -0.899583) (xy -17.145 -1.640416) (xy -16.440229 -1.640416) (xy -16.03664 -1.632523)) (layer F.SilkS) (width 0.01)) 75 | (fp_poly (pts (xy -4.89562 -1.672038) (xy -4.577878 -1.579334) (xy -4.31683 -1.410175) (xy -4.122703 -1.174193) 76 | (xy -4.005725 -0.881021) (xy -3.976122 -0.540291) (xy -3.980909 -0.474155) (xy -4.043227 -0.192844) 77 | (xy -4.18248 0.144388) (xy -4.400526 0.541496) (xy -4.619619 0.885087) (xy -4.947708 1.375436) 78 | (xy -5.833394 1.375834) (xy -5.704633 1.203854) (xy -5.609835 1.074759) (xy -5.480786 0.89587) 79 | (xy -5.34404 0.704015) (xy -5.332649 0.687917) (xy -5.089426 0.343959) (xy -5.336067 0.36069) 80 | (xy -5.632551 0.330684) (xy -5.897571 0.207045) (xy -6.110126 0.001451) (xy -6.179833 -0.108624) 81 | (xy -6.253032 -0.266876) (xy -6.285507 -0.415337) (xy -6.286056 -0.60328) (xy -6.285706 -0.608541) 82 | (xy -5.55625 -0.608541) (xy -5.509455 -0.400786) (xy -5.381932 -0.246915) (xy -5.192972 -0.166221) 83 | (xy -5.106458 -0.15875) (xy -4.904571 -0.201932) (xy -4.786553 -0.288636) (xy -4.676984 -0.461268) 84 | (xy -4.654906 -0.648758) (xy -4.709849 -0.825912) (xy -4.831342 -0.967539) (xy -5.008915 -1.048444) 85 | (xy -5.106458 -1.058333) (xy -5.314213 -1.011538) (xy -5.468084 -0.884015) (xy -5.548779 -0.695056) 86 | (xy -5.55625 -0.608541) (xy -6.285706 -0.608541) (xy -6.281192 -0.676301) (xy -6.21152 -1.018108) 87 | (xy -6.060763 -1.292546) (xy -5.83143 -1.497154) (xy -5.526028 -1.62947) (xy -5.259829 -1.678657) 88 | (xy -4.89562 -1.672038)) (layer F.SilkS) (width 0.01)) 89 | (fp_poly (pts (xy -0.462273 -1.551501) (xy -0.171063 -1.391999) (xy -0.001702 -1.239259) (xy 0.107908 -1.107582) 90 | (xy 0.171912 -1.004845) (xy 0.177623 -0.956746) (xy 0.112974 -0.907143) (xy -0.00936 -0.817323) 91 | (xy -0.13691 -0.725374) (xy -0.406112 -0.532794) (xy -0.520337 -0.687291) (xy -0.681345 -0.826193) 92 | (xy -0.879814 -0.885417) (xy -1.088195 -0.868796) (xy -1.278939 -0.780164) (xy -1.424496 -0.623356) 93 | (xy -1.458133 -0.556786) (xy -1.521648 -0.302156) (xy -1.526023 -0.019223) (xy -1.471931 0.24055) 94 | (xy -1.44689 0.301096) (xy -1.313346 0.47808) (xy -1.129797 0.587051) (xy -0.923473 0.62386) 95 | (xy -0.721605 0.584362) (xy -0.55142 0.464408) (xy -0.531339 0.440535) (xy -0.423092 0.302921) 96 | (xy -0.189077 0.427066) (xy 0.01318 0.537112) (xy 0.134856 0.615835) (xy 0.18989 0.679518) 97 | (xy 0.192221 0.744445) (xy 0.155789 0.826901) (xy 0.154793 0.82878) (xy 0.046327 0.960097) 98 | (xy -0.129791 1.09987) (xy -0.340027 1.225538) (xy -0.550848 1.314542) (xy -0.580256 1.323283) 99 | (xy -0.828889 1.363908) (xy -1.098494 1.364453) (xy -1.323259 1.326391) (xy -1.653345 1.173433) 100 | (xy -1.933501 0.94059) (xy -2.154128 0.645826) (xy -2.305625 0.307103) (xy -2.378393 -0.057614) 101 | (xy -2.362831 -0.430362) (xy -2.333516 -0.56395) (xy -2.195647 -0.898163) (xy -1.988072 -1.175688) 102 | (xy -1.726724 -1.391912) (xy -1.427536 -1.54222) (xy -1.106443 -1.621997) (xy -0.779377 -1.626629) 103 | (xy -0.462273 -1.551501)) (layer F.SilkS) (width 0.01)) 104 | (fp_poly (pts (xy 2.085597 -1.58481) (xy 2.36357 -1.496003) (xy 2.612587 -1.332003) (xy 2.745907 -1.208099) 105 | (xy 2.933185 -0.992563) (xy 3.05448 -0.779287) (xy 3.121724 -0.536347) (xy 3.146849 -0.231813) 106 | (xy 3.147961 -0.132291) (xy 3.14132 0.138229) (xy 3.118373 0.331819) (xy 3.074937 0.476684) 107 | (xy 3.049906 0.529167) (xy 2.884361 0.772967) (xy 2.664226 1.005353) (xy 2.427638 1.187865) 108 | (xy 2.356348 1.228598) (xy 2.16029 1.298455) (xy 1.91304 1.344295) (xy 1.658644 1.361584) 109 | (xy 1.441148 1.345786) (xy 1.375491 1.329564) (xy 1.069848 1.192498) (xy 0.806797 0.987014) 110 | (xy 0.69795 0.871964) (xy 0.477089 0.54607) (xy 0.349839 0.188061) (xy 0.320937 -0.132291) 111 | (xy 1.164167 -0.132291) (xy 1.201224 0.158374) (xy 1.304787 0.387842) (xy 1.463439 0.546109) 112 | (xy 1.665765 0.623173) (xy 1.90035 0.60903) (xy 1.980906 0.583402) (xy 2.147356 0.465673) 113 | (xy 2.263763 0.266475) (xy 2.322497 0.001303) (xy 2.328136 -0.12169) (xy 2.296762 -0.428298) 114 | (xy 2.200644 -0.654569) (xy 2.037463 -0.805633) (xy 2.012566 -0.819312) (xy 1.782688 -0.889822) 115 | (xy 1.571843 -0.864851) (xy 1.392569 -0.754556) (xy 1.257407 -0.56909) (xy 1.178896 -0.318608) 116 | (xy 1.164167 -0.132291) (xy 0.320937 -0.132291) (xy 0.316198 -0.184809) (xy 0.376162 -0.55529) 117 | (xy 0.529727 -0.906131) (xy 0.698336 -1.136985) (xy 0.939454 -1.372163) (xy 1.184625 -1.519828) 118 | (xy 1.46595 -1.594518) (xy 1.74625 -1.611505) (xy 2.085597 -1.58481)) (layer F.SilkS) (width 0.01)) 119 | (fp_poly (pts (xy 4.000512 -1.629248) (xy 4.455608 -1.613958) (xy 4.743804 -0.979145) (xy 4.854217 -0.739537) 120 | (xy 4.951644 -0.534777) (xy 5.026616 -0.384298) (xy 5.06966 -0.307536) (xy 5.073295 -0.303039) 121 | (xy 5.108189 -0.333542) (xy 5.176188 -0.445373) (xy 5.268681 -0.622592) (xy 5.377059 -0.849261) 122 | (xy 5.423323 -0.951081) (xy 5.732057 -1.640416) (xy 6.614584 -1.640416) (xy 6.614584 1.375834) 123 | (xy 5.823663 1.375834) (xy 5.794375 -0.185208) (xy 5.556557 0.359559) (xy 5.318738 0.904327) 124 | (xy 4.850474 0.873125) (xy 4.634508 0.384745) (xy 4.540251 0.179818) (xy 4.458442 0.016991) 125 | (xy 4.39987 -0.083077) (xy 4.378854 -0.104734) (xy 4.364593 -0.055388) (xy 4.352605 0.08089) 126 | (xy 4.343904 0.285205) (xy 4.339503 0.53866) (xy 4.339167 0.635) (xy 4.339167 1.375834) 127 | (xy 3.545417 1.375834) (xy 3.545417 -1.644537) (xy 4.000512 -1.629248)) (layer F.SilkS) (width 0.01)) 128 | (fp_poly (pts (xy 8.197858 -1.638292) (xy 8.424309 -1.630414) (xy 8.587103 -1.614525) (xy 8.707301 -1.588368) 129 | (xy 8.805961 -1.549684) (xy 8.825962 -1.539733) (xy 9.107448 -1.344856) (xy 9.29796 -1.095948) 130 | (xy 9.397071 -0.79377) (xy 9.40946 -0.500602) (xy 9.345442 -0.160749) (xy 9.202729 0.109051) 131 | (xy 8.983864 0.306577) (xy 8.69139 0.429607) (xy 8.327848 0.475921) (xy 8.29121 0.47625) 132 | (xy 7.9375 0.47625) (xy 7.9375 1.375834) (xy 7.14375 1.375834) (xy 7.14375 -0.899583) 133 | (xy 7.9375 -0.899583) (xy 7.9375 -0.264583) (xy 8.188854 -0.265393) (xy 8.351278 -0.273726) 134 | (xy 8.472362 -0.293867) (xy 8.502159 -0.305611) (xy 8.580511 -0.410752) (xy 8.606421 -0.564714) 135 | (xy 8.575094 -0.721818) (xy 8.550655 -0.767677) (xy 8.479455 -0.849525) (xy 8.382143 -0.88874) 136 | (xy 8.221059 -0.899522) (xy 8.200864 -0.899583) (xy 7.9375 -0.899583) (xy 7.14375 -0.899583) 137 | (xy 7.14375 -1.640416) (xy 7.886692 -1.640416) (xy 8.197858 -1.638292)) (layer F.SilkS) (width 0.01)) 138 | (fp_poly (pts (xy 10.583334 -0.744278) (xy 10.586198 -0.437545) (xy 10.594122 -0.159893) (xy 10.606104 0.067958) 139 | (xy 10.62114 0.225284) (xy 10.633008 0.282515) (xy 10.749404 0.472215) (xy 10.913279 0.592002) 140 | (xy 11.100162 0.634651) (xy 11.285579 0.592935) (xy 11.401594 0.509467) (xy 11.487028 0.402701) 141 | (xy 11.550564 0.266639) (xy 11.594982 0.085706) (xy 11.623064 -0.155675) (xy 11.63759 -0.473079) 142 | (xy 11.641372 -0.833437) (xy 11.641667 -1.640416) (xy 12.443361 -1.640416) (xy 12.42616 -0.595312) 143 | (xy 12.419875 -0.237483) (xy 12.412971 0.031909) (xy 12.403233 0.230246) (xy 12.388446 0.374913) 144 | (xy 12.366395 0.483292) (xy 12.334867 0.572767) (xy 12.291647 0.660723) (xy 12.258428 0.721357) 145 | (xy 12.068981 0.992185) (xy 11.835519 1.182525) (xy 11.580123 1.299502) (xy 11.31907 1.355358) 146 | (xy 11.011555 1.366341) (xy 10.707284 1.331767) (xy 10.625042 1.312669) (xy 10.416047 1.217139) 147 | (xy 10.199157 1.053591) (xy 10.007116 0.851726) (xy 9.872663 0.641247) (xy 9.864395 0.622636) 148 | (xy 9.828927 0.521802) (xy 9.801888 0.396969) (xy 9.781701 0.231331) (xy 9.766788 0.008081) 149 | (xy 9.755571 -0.289586) (xy 9.747601 -0.621771) (xy 9.726928 -1.640416) (xy 10.583334 -1.640416) 150 | (xy 10.583334 -0.744278)) (layer F.SilkS) (width 0.01)) 151 | (fp_poly (pts (xy 15.24 -0.899583) (xy 14.393334 -0.899583) (xy 14.393334 1.375834) (xy 13.546667 1.375834) 152 | (xy 13.546667 -0.899583) (xy 12.7 -0.899583) (xy 12.7 -1.640416) (xy 15.24 -1.640416) 153 | (xy 15.24 -0.899583)) (layer F.SilkS) (width 0.01)) 154 | (fp_poly (pts (xy 17.674167 -0.899583) (xy 16.35125 -0.899583) (xy 16.35125 -0.47625) (xy 17.4625 -0.47625) 155 | (xy 17.4625 0.211667) (xy 16.35125 0.211667) (xy 16.35125 0.635) (xy 17.674167 0.635) 156 | (xy 17.674167 1.375834) (xy 15.5575 1.375834) (xy 15.5575 -1.640416) (xy 17.674167 -1.640416) 157 | (xy 17.674167 -0.899583)) (layer F.SilkS) (width 0.01)) 158 | (fp_poly (pts (xy 19.191796 -1.638992) (xy 19.419138 -1.633049) (xy 19.583463 -1.620086) (xy 19.70617 -1.597599) 159 | (xy 19.808657 -1.563086) (xy 19.897976 -1.521354) (xy 20.156157 -1.336469) (xy 20.340286 -1.092629) 160 | (xy 20.446537 -0.810054) (xy 20.471087 -0.508963) (xy 20.410111 -0.209576) (xy 20.259785 0.067886) 161 | (xy 20.210096 0.128843) (xy 20.058479 0.301526) (xy 20.354491 0.772534) (xy 20.479855 0.974319) 162 | (xy 20.58418 1.146557) (xy 20.65429 1.267238) (xy 20.676122 1.309688) (xy 20.661564 1.343435) 163 | (xy 20.577188 1.364237) (xy 20.409489 1.374189) (xy 20.250123 1.375834) (xy 19.798507 1.375834) 164 | (xy 19.516858 0.927079) (xy 19.384909 0.721207) (xy 19.290052 0.589877) (xy 19.215562 0.516502) 165 | (xy 19.14471 0.484496) (xy 19.063229 0.477287) (xy 18.89125 0.47625) (xy 18.89125 1.375834) 166 | (xy 18.0975 1.375834) (xy 18.0975 -0.899583) (xy 18.89125 -0.899583) (xy 18.89125 -0.264583) 167 | (xy 19.198167 -0.264583) (xy 19.376158 -0.274959) (xy 19.514417 -0.30174) (xy 19.568583 -0.328083) 168 | (xy 19.620389 -0.44181) (xy 19.627617 -0.599194) (xy 19.592333 -0.748894) (xy 19.548929 -0.816428) 169 | (xy 19.419582 -0.87753) (xy 19.194123 -0.899519) (xy 19.178512 -0.899583) (xy 18.89125 -0.899583) 170 | (xy 18.0975 -0.899583) (xy 18.0975 -1.640416) (xy 18.880038 -1.640416) (xy 19.191796 -1.638992)) (layer F.SilkS) (width 0.01)) 171 | ) 172 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/LED_D3.0mm_centered.kicad_mod: -------------------------------------------------------------------------------- 1 | (module mi_footprints:LED_D3.0mm_centered (layer F.Cu) (tedit 58A772B9) 2 | (descr "LED, diameter 3.0mm, 2 pins") 3 | (tags "LED diameter 3.0mm 2 pins") 4 | (fp_text reference D3 (at -3.302 0 90) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value LED (at 0 2.96) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_arc (start 0 0) (end -1.5 -1.16619) (angle 284.3) (layer F.Fab) (width 0.1)) 11 | (fp_arc (start 0 0) (end -1.56 -1.235516) (angle 108.8) (layer F.SilkS) (width 0.12)) 12 | (fp_arc (start 0 0) (end -1.56 1.235516) (angle -108.8) (layer F.SilkS) (width 0.12)) 13 | (fp_arc (start 0 0) (end -1.040961 -1.08) (angle 87.9) (layer F.SilkS) (width 0.12)) 14 | (fp_arc (start 0 0) (end -1.040961 1.08) (angle -87.9) (layer F.SilkS) (width 0.12)) 15 | (fp_circle (center 0 0) (end 1.5 0) (layer F.Fab) (width 0.1)) 16 | (fp_line (start -1.5 -1.16619) (end -1.5 1.16619) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1.56 -1.236) (end -1.56 -1.08) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start -1.56 1.08) (end -1.56 1.236) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -2.42 -2.25) (end -2.42 2.25) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start -2.42 2.25) (end 2.43 2.25) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start 2.43 2.25) (end 2.43 -2.25) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 2.43 -2.25) (end -2.42 -2.25) (layer F.CrtYd) (width 0.05)) 23 | (pad 1 thru_hole rect (at -1.27 0) (size 1.8 1.8) (drill 0.9) (layers *.Cu *.Mask)) 24 | (pad 2 thru_hole circle (at 1.27 0) (size 1.8 1.8) (drill 0.9) (layers *.Cu *.Mask)) 25 | (model LEDs.3dshapes/LED_D3.0mm.wrl 26 | (at (xyz 0 0 0)) 27 | (scale (xyz 0.393701 0.393701 0.393701)) 28 | (rotate (xyz 0 0 0)) 29 | ) 30 | ) 31 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/LQFP-48_7x7mm_Pitch0.5mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Housings_QFP:LQFP-48_7x7mm_Pitch0.5mm (layer F.Cu) (tedit 58F551E2) 2 | (descr "48 LEAD LQFP 7x7mm (see MICREL LQFP7x7-48LD-PL-1.pdf)") 3 | (tags "QFP 0.5") 4 | (attr smd) 5 | (fp_text reference U11 (at 0 -6) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value SC16C550B (at 0 6) (layer F.Fab) hide 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_text user %R (at 0 0) (layer F.Fab) 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | ) 14 | (fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer F.Fab) (width 0.15)) 15 | (fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer F.Fab) (width 0.15)) 16 | (fp_line (start 3.5 3.5) (end -3.5 3.5) (layer F.Fab) (width 0.15)) 17 | (fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer F.Fab) (width 0.15)) 18 | (fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer F.Fab) (width 0.15)) 19 | (fp_line (start -5.25 -5.25) (end -5.25 5.25) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start 5.25 -5.25) (end 5.25 5.25) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -5.25 -5.25) (end 5.25 -5.25) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start -5.25 5.25) (end 5.25 5.25) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start -3.625 -3.625) (end -3.625 -3.175) (layer F.SilkS) (width 0.15)) 24 | (fp_line (start 3.625 -3.625) (end 3.625 -3.1) (layer F.SilkS) (width 0.15)) 25 | (fp_line (start 3.625 3.625) (end 3.625 3.1) (layer F.SilkS) (width 0.15)) 26 | (fp_line (start -3.625 3.625) (end -3.625 3.1) (layer F.SilkS) (width 0.15)) 27 | (fp_line (start -3.625 -3.625) (end -3.1 -3.625) (layer F.SilkS) (width 0.15)) 28 | (fp_line (start -3.625 3.625) (end -3.1 3.625) (layer F.SilkS) (width 0.15)) 29 | (fp_line (start 3.625 3.625) (end 3.1 3.625) (layer F.SilkS) (width 0.15)) 30 | (fp_line (start 3.625 -3.625) (end 3.1 -3.625) (layer F.SilkS) (width 0.15)) 31 | (fp_line (start -3.625 -3.175) (end -5 -3.175) (layer F.SilkS) (width 0.15)) 32 | (pad 1 smd rect (at -4.35 -2.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 33 | (pad 2 smd rect (at -4.35 -2.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 34 | (pad 3 smd rect (at -4.35 -1.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 35 | (pad 4 smd rect (at -4.35 -1.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 36 | (pad 5 smd rect (at -4.35 -0.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 37 | (pad 6 smd rect (at -4.35 -0.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 38 | (pad 7 smd rect (at -4.35 0.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 39 | (pad 8 smd rect (at -4.35 0.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 40 | (pad 9 smd rect (at -4.35 1.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 41 | (pad 10 smd rect (at -4.35 1.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 42 | (pad 11 smd rect (at -4.35 2.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 43 | (pad 12 smd rect (at -4.35 2.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 44 | (pad 13 smd rect (at -2.75 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 45 | (pad 14 smd rect (at -2.25 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 46 | (pad 15 smd rect (at -1.75 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 47 | (pad 16 smd rect (at -1.25 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 48 | (pad 17 smd rect (at -0.75 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 49 | (pad 18 smd rect (at -0.25 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 50 | (pad 19 smd rect (at 0.25 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 51 | (pad 20 smd rect (at 0.75 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 52 | (pad 21 smd rect (at 1.25 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 53 | (pad 22 smd rect (at 1.75 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 54 | (pad 23 smd rect (at 2.25 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 55 | (pad 24 smd rect (at 2.75 4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 56 | (pad 25 smd rect (at 4.35 2.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 57 | (pad 26 smd rect (at 4.35 2.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 58 | (pad 27 smd rect (at 4.35 1.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 59 | (pad 28 smd rect (at 4.35 1.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 60 | (pad 29 smd rect (at 4.35 0.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 61 | (pad 30 smd rect (at 4.35 0.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 62 | (pad 31 smd rect (at 4.35 -0.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 63 | (pad 32 smd rect (at 4.35 -0.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 64 | (pad 33 smd rect (at 4.35 -1.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 65 | (pad 34 smd rect (at 4.35 -1.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 66 | (pad 35 smd rect (at 4.35 -2.25) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 67 | (pad 36 smd rect (at 4.35 -2.75) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 68 | (pad 37 smd rect (at 2.75 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 69 | (pad 38 smd rect (at 2.25 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 70 | (pad 39 smd rect (at 1.75 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 71 | (pad 40 smd rect (at 1.25 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 72 | (pad 41 smd rect (at 0.75 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 73 | (pad 42 smd rect (at 0.25 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 74 | (pad 43 smd rect (at -0.25 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 75 | (pad 44 smd rect (at -0.75 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 76 | (pad 45 smd rect (at -1.25 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 77 | (pad 46 smd rect (at -1.75 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 78 | (pad 47 smd rect (at -2.25 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 79 | (pad 48 smd rect (at -2.75 -4.35 90) (size 1.3 0.25) (layers F.Cu F.Paste F.Mask)) 80 | (model Housings_QFP.3dshapes/LQFP-48_7x7mm_Pitch0.5mm.wrl 81 | (at (xyz 0 0 0)) 82 | (scale (xyz 1 1 1)) 83 | (rotate (xyz 0 0 0)) 84 | ) 85 | ) 86 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/MountingHole_3.2mm_M3_DIN965.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Mounting_Holes:MountingHole_3.2mm_M3_DIN965 (layer F.Cu) (tedit 58E7C2B0) 2 | (descr "Mounting Hole 3.2mm, no annular, M3, DIN965") 3 | (tags "mounting hole 3.2mm no annular m3 din965") 4 | (fp_text reference M4 (at 0 -3.8) (layer F.SilkS) hide 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value MountingHole3mm (at 0 3.8) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_circle (center 0 0) (end 2.8 0) (layer Cmts.User) (width 0.15)) 11 | (fp_circle (center 0 0) (end 3.05 0) (layer F.CrtYd) (width 0.05)) 12 | (pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) 13 | ) 14 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/OSCSMD7x5.kicad_mod: -------------------------------------------------------------------------------- 1 | (module mi_footprints:OSCSMD7x5 (layer F.Cu) (tedit 58F63520) 2 | (fp_text reference U9 (at -2.032 -1.914 90) (layer F.SilkS) 3 | (effects (font (size 1 1) (thickness 0.15))) 4 | ) 5 | (fp_text value "7.3728 MHz" (at 2.54 2.54) (layer F.Fab) hide 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_circle (center -1.8 0) (end -1.4 -0.4) (layer F.SilkS) (width 0.25)) 9 | (fp_line (start 6.2 -3) (end 6.2 -1.2) (layer F.SilkS) (width 0.25)) 10 | (fp_line (start -1 -3) (end -1 -1.2) (layer F.SilkS) (width 0.25)) 11 | (fp_line (start 1 0) (end 4 0) (layer F.SilkS) (width 0.25)) 12 | (fp_line (start 1 -4.4) (end 4 -4.4) (layer F.SilkS) (width 0.25)) 13 | (pad 1 smd rect (at 0 0) (size 1.8 2) (layers F.Cu F.Paste F.Mask)) 14 | (pad 2 smd rect (at 5.08 0) (size 1.8 2) (layers F.Cu F.Paste F.Mask)) 15 | (pad 3 smd rect (at 5.08 -4.2) (size 1.8 2) (layers F.Cu F.Paste F.Mask)) 16 | (pad 4 smd rect (at 0 -4.2) (size 1.8 2) (layers F.Cu F.Paste F.Mask)) 17 | ) 18 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/Pin_Header_Straight_1x02_Pitch2.54mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm (layer F.Cu) (tedit 58F67A43) 2 | (descr "Through hole straight pin header, 1x02, 2.54mm pitch, single row") 3 | (tags "Through hole pin header THT 1x02 2.54mm single row") 4 | (fp_text reference P2 (at 0 -2.33) (layer F.SilkS) hide 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value CONN_01X02 (at 0 4.87) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start -1.27 -1.27) (end -1.27 3.81) (layer F.Fab) (width 0.1)) 11 | (fp_line (start -1.27 3.81) (end 1.27 3.81) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 1.27 3.81) (end 1.27 -1.27) (layer F.Fab) (width 0.1)) 13 | (fp_line (start 1.27 -1.27) (end -1.27 -1.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start -1.33 1.27) (end -1.33 3.87) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start -1.33 3.87) (end 1.33 3.87) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 1.33 3.87) (end 1.33 1.27) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start 1.33 1.27) (end -1.33 1.27) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start -1.8 -1.8) (end -1.8 4.35) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -1.8 4.35) (end 1.8 4.35) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 1.8 4.35) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05)) 24 | (fp_text user %R (at 0 -2.33) (layer F.Fab) hide 25 | (effects (font (size 1 1) (thickness 0.15))) 26 | ) 27 | (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 28 | (pad 2 thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 29 | (model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x02_Pitch2.54mm.wrl 30 | (at (xyz 0 -0.05 0)) 31 | (scale (xyz 1 1 1)) 32 | (rotate (xyz 0 0 90)) 33 | ) 34 | ) 35 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/Pin_Header_Straight_1x05_Pitch2.54mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Pin_Headers:Pin_Header_Straight_1x05_Pitch2.54mm (layer F.Cu) (tedit 58F66ED1) 2 | (descr "Through hole straight pin header, 1x05, 2.54mm pitch, single row") 3 | (tags "Through hole pin header THT 1x05 2.54mm single row") 4 | (fp_text reference P5 (at -2.88 5.2) (layer F.SilkS) hide 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value CONN_01X05 (at 0 12.49) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start -1.27 -1.27) (end -1.27 11.43) (layer F.Fab) (width 0.1)) 11 | (fp_line (start -1.27 11.43) (end 1.27 11.43) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 1.27 11.43) (end 1.27 -1.27) (layer F.Fab) (width 0.1)) 13 | (fp_line (start 1.27 -1.27) (end -1.27 -1.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start -1.33 1.27) (end -1.33 11.49) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start -1.33 11.49) (end 1.33 11.49) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 1.33 11.49) (end 1.33 1.27) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start 1.33 1.27) (end -1.33 1.27) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start -1.8 -1.8) (end -1.8 11.95) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -1.8 11.95) (end 1.8 11.95) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 1.8 11.95) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05)) 24 | (fp_text user %R (at 0 -2.33) (layer F.Fab) hide 25 | (effects (font (size 1 1) (thickness 0.15))) 26 | ) 27 | (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 28 | (pad 2 thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 29 | (pad 3 thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 30 | (pad 4 thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 31 | (pad 5 thru_hole oval (at 0 10.16) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 32 | (model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x05_Pitch2.54mm.wrl 33 | (at (xyz 0 -0.2 0)) 34 | (scale (xyz 1 1 1)) 35 | (rotate (xyz 0 0 90)) 36 | ) 37 | ) 38 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/Pin_Header_Straight_1x08_Pitch2.54mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Pin_Headers:Pin_Header_Straight_1x08_Pitch2.54mm (layer F.Cu) (tedit 58F678CA) 2 | (descr "Through hole straight pin header, 1x08, 2.54mm pitch, single row") 3 | (tags "Through hole pin header THT 1x08 2.54mm single row") 4 | (fp_text reference P3 (at 0 -2.33) (layer F.SilkS) hide 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value CONN_01X08 (at 0 20.11) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start -1.27 -1.27) (end -1.27 19.05) (layer F.Fab) (width 0.1)) 11 | (fp_line (start -1.27 19.05) (end 1.27 19.05) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 1.27 19.05) (end 1.27 -1.27) (layer F.Fab) (width 0.1)) 13 | (fp_line (start 1.27 -1.27) (end -1.27 -1.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start -1.33 1.27) (end -1.33 19.11) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start -1.33 19.11) (end 1.33 19.11) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 1.33 19.11) (end 1.33 1.27) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start 1.33 1.27) (end -1.33 1.27) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start -1.8 -1.8) (end -1.8 19.55) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -1.8 19.55) (end 1.8 19.55) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 1.8 19.55) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05)) 24 | (fp_text user %R (at 0 -2.33) (layer F.Fab) 25 | (effects (font (size 1 1) (thickness 0.15))) 26 | ) 27 | (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 28 | (pad 2 thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 29 | (pad 3 thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 30 | (pad 4 thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 31 | (pad 5 thru_hole oval (at 0 10.16) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 32 | (pad 6 thru_hole oval (at 0 12.7) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 33 | (pad 7 thru_hole oval (at 0 15.24) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 34 | (pad 8 thru_hole oval (at 0 17.78) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 35 | (model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x08_Pitch2.54mm.wrl 36 | (at (xyz 0 -0.35 0)) 37 | (scale (xyz 1 1 1)) 38 | (rotate (xyz 0 0 90)) 39 | ) 40 | ) 41 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/Pin_Header_Straight_1x10_Pitch2.54mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Pin_Headers:Pin_Header_Straight_1x10_Pitch2.54mm (layer F.Cu) (tedit 58F678D7) 2 | (descr "Through hole straight pin header, 1x10, 2.54mm pitch, single row") 3 | (tags "Through hole pin header THT 1x10 2.54mm single row") 4 | (fp_text reference P4 (at 0 -2.33) (layer F.SilkS) hide 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value CONN_01X10 (at 0 25.19) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start -1.27 -1.27) (end -1.27 24.13) (layer F.Fab) (width 0.1)) 11 | (fp_line (start -1.27 24.13) (end 1.27 24.13) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 1.27 24.13) (end 1.27 -1.27) (layer F.Fab) (width 0.1)) 13 | (fp_line (start 1.27 -1.27) (end -1.27 -1.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start -1.33 1.27) (end -1.33 24.19) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start -1.33 24.19) (end 1.33 24.19) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 1.33 24.19) (end 1.33 1.27) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start 1.33 1.27) (end -1.33 1.27) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start -1.8 -1.8) (end -1.8 24.65) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -1.8 24.65) (end 1.8 24.65) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 1.8 24.65) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05)) 24 | (fp_text user %R (at 0 -2.33) (layer F.Fab) hide 25 | (effects (font (size 1 1) (thickness 0.15))) 26 | ) 27 | (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 28 | (pad 2 thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 29 | (pad 3 thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 30 | (pad 4 thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 31 | (pad 5 thru_hole oval (at 0 10.16) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 32 | (pad 6 thru_hole oval (at 0 12.7) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 33 | (pad 7 thru_hole oval (at 0 15.24) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 34 | (pad 8 thru_hole oval (at 0 17.78) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 35 | (pad 9 thru_hole oval (at 0 20.32) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 36 | (pad 10 thru_hole oval (at 0 22.86) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) 37 | (model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x10_Pitch2.54mm.wrl 38 | (at (xyz 0 -0.45 0)) 39 | (scale (xyz 1 1 1)) 40 | (rotate (xyz 0 0 90)) 41 | ) 42 | ) 43 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/R_0805_HandSoldering.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 58F54EDA) 2 | (descr "Resistor SMD 0805, hand soldering") 3 | (tags "resistor 0805") 4 | (attr smd) 5 | (fp_text reference R11 (at 0.174 1.778) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value 4k7 (at 0 0) (layer F.Fab) hide 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_text user %R (at 0 0) (layer F.Fab) 12 | (effects (font (size 0.5 0.5) (thickness 0.075))) 13 | ) 14 | (fp_line (start -1 0.62) (end -1 -0.62) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 1 0.62) (end -1 0.62) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 1 -0.62) (end 1 0.62) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1 -0.62) (end 1 -0.62) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 0.6 0.88) (end -0.6 0.88) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -0.6 -0.88) (end 0.6 -0.88) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start -2.35 -0.9) (end 2.35 -0.9) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -2.35 -0.9) (end -2.35 0.9) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 2.35 0.9) (end 2.35 -0.9) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 2.35 0.9) (end -2.35 0.9) (layer F.CrtYd) (width 0.05)) 24 | (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask)) 25 | (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask)) 26 | (model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0805.wrl 27 | (at (xyz 0 0 0)) 28 | (scale (xyz 1 1 1)) 29 | (rotate (xyz 0 0 0)) 30 | ) 31 | ) 32 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/SOIC-20W_7.5x12.8mm_Pitch1.27mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Housings_SOIC:SOIC-20W_7.5x12.8mm_Pitch1.27mm (layer F.Cu) (tedit 58CC8F64) 2 | (descr "20-Lead Plastic Small Outline (SO) - Wide, 7.50 mm Body [SOIC] (see Microchip Packaging Specification 00000049BS.pdf)") 3 | (tags "SOIC 1.27") 4 | (attr smd) 5 | (fp_text reference U8 (at 0 -7.5) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value 74HC541 (at 0 7.5) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_text user %R (at 0 0) (layer F.Fab) 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | ) 14 | (fp_line (start -2.75 -6.4) (end 3.75 -6.4) (layer F.Fab) (width 0.15)) 15 | (fp_line (start 3.75 -6.4) (end 3.75 6.4) (layer F.Fab) (width 0.15)) 16 | (fp_line (start 3.75 6.4) (end -3.75 6.4) (layer F.Fab) (width 0.15)) 17 | (fp_line (start -3.75 6.4) (end -3.75 -5.4) (layer F.Fab) (width 0.15)) 18 | (fp_line (start -3.75 -5.4) (end -2.75 -6.4) (layer F.Fab) (width 0.15)) 19 | (fp_line (start -5.95 -6.75) (end -5.95 6.75) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start 5.95 -6.75) (end 5.95 6.75) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -5.95 -6.75) (end 5.95 -6.75) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start -5.95 6.75) (end 5.95 6.75) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start -3.875 -6.575) (end -3.875 -6.325) (layer F.SilkS) (width 0.15)) 24 | (fp_line (start 3.875 -6.575) (end 3.875 -6.24) (layer F.SilkS) (width 0.15)) 25 | (fp_line (start 3.875 6.575) (end 3.875 6.24) (layer F.SilkS) (width 0.15)) 26 | (fp_line (start -3.875 6.575) (end -3.875 6.24) (layer F.SilkS) (width 0.15)) 27 | (fp_line (start -3.875 -6.575) (end 3.875 -6.575) (layer F.SilkS) (width 0.15)) 28 | (fp_line (start -3.875 6.575) (end 3.875 6.575) (layer F.SilkS) (width 0.15)) 29 | (fp_line (start -3.875 -6.325) (end -5.675 -6.325) (layer F.SilkS) (width 0.15)) 30 | (pad 1 smd rect (at -4.7 -5.715) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 31 | (pad 2 smd rect (at -4.7 -4.445) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 32 | (pad 3 smd rect (at -4.7 -3.175) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 33 | (pad 4 smd rect (at -4.7 -1.905) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 34 | (pad 5 smd rect (at -4.7 -0.635) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 35 | (pad 6 smd rect (at -4.7 0.635) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 36 | (pad 7 smd rect (at -4.7 1.905) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 37 | (pad 8 smd rect (at -4.7 3.175) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 38 | (pad 9 smd rect (at -4.7 4.445) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 39 | (pad 10 smd rect (at -4.7 5.715) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 40 | (pad 11 smd rect (at 4.7 5.715) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 41 | (pad 12 smd rect (at 4.7 4.445) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 42 | (pad 13 smd rect (at 4.7 3.175) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 43 | (pad 14 smd rect (at 4.7 1.905) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 44 | (pad 15 smd rect (at 4.7 0.635) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 45 | (pad 16 smd rect (at 4.7 -0.635) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 46 | (pad 17 smd rect (at 4.7 -1.905) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 47 | (pad 18 smd rect (at 4.7 -3.175) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 48 | (pad 19 smd rect (at 4.7 -4.445) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 49 | (pad 20 smd rect (at 4.7 -5.715) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) 50 | (model Housings_SOIC.3dshapes/SOIC-20_7.5x12.8mm_Pitch1.27mm.wrl 51 | (at (xyz 0 0 0)) 52 | (scale (xyz 1 1 1)) 53 | (rotate (xyz 0 0 0)) 54 | ) 55 | ) 56 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/SW_PUSH_6mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Buttons_Switches_ThroughHole:SW_PUSH_6mm (layer F.Cu) (tedit 58F66D6E) 2 | (descr https://www.omron.com/ecb/products/pdf/en-b3f.pdf) 3 | (tags "tact sw push 6mm") 4 | (fp_text reference SW1 (at 3.25 -2) (layer F.SilkS) hide 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value SW_PUSH_SMALL_H (at 3.75 6.7) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 3.25 -0.75) (end 6.25 -0.75) (layer F.Fab) (width 0.1)) 11 | (fp_line (start 6.25 -0.75) (end 6.25 5.25) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 6.25 5.25) (end 0.25 5.25) (layer F.Fab) (width 0.1)) 13 | (fp_line (start 0.25 5.25) (end 0.25 -0.75) (layer F.Fab) (width 0.1)) 14 | (fp_line (start 0.25 -0.75) (end 3.25 -0.75) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 7.75 6) (end 8 6) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start 8 6) (end 8 5.75) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start 7.75 -1.5) (end 8 -1.5) (layer F.CrtYd) (width 0.05)) 18 | (fp_line (start 8 -1.5) (end 8 -1.25) (layer F.CrtYd) (width 0.05)) 19 | (fp_line (start -1.5 -1.25) (end -1.5 -1.5) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start -1.5 -1.5) (end -1.25 -1.5) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start -1.5 5.75) (end -1.5 6) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start -1.5 6) (end -1.25 6) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start -1.25 -1.5) (end 7.75 -1.5) (layer F.CrtYd) (width 0.05)) 24 | (fp_line (start -1.5 5.75) (end -1.5 -1.25) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start 7.75 6) (end -1.25 6) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start 8 -1.25) (end 8 5.75) (layer F.CrtYd) (width 0.05)) 27 | (fp_line (start 1 5.5) (end 5.5 5.5) (layer F.SilkS) (width 0.12)) 28 | (fp_line (start -0.25 1.5) (end -0.25 3) (layer F.SilkS) (width 0.12)) 29 | (fp_line (start 5.5 -1) (end 1 -1) (layer F.SilkS) (width 0.12)) 30 | (fp_line (start 6.75 3) (end 6.75 1.5) (layer F.SilkS) (width 0.12)) 31 | (fp_circle (center 3.25 2.25) (end 1.25 2.5) (layer F.Fab) (width 0.1)) 32 | (pad 2 thru_hole circle (at 0 4.5 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 33 | (pad 1 thru_hole circle (at 0 0 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 34 | (pad 2 thru_hole circle (at 6.5 4.5 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 35 | (pad 1 thru_hole circle (at 6.5 0 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 36 | (model Buttons_Switches_THT.3dshapes/SW_PUSH_6mm.wrl 37 | (at (xyz 0.005 0 0)) 38 | (scale (xyz 0.3937 0.3937 0.3937)) 39 | (rotate (xyz 0 0 0)) 40 | ) 41 | ) 42 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/TO-92_Inline_Wide.kicad_mod: -------------------------------------------------------------------------------- 1 | (module TO_SOT_Packages_THT:TO-92_Inline_Wide (layer F.Cu) (tedit 58F54ED6) 2 | (descr "TO-92 leads in-line, wide, drill 0.8mm (see NXP sot054_po.pdf)") 3 | (tags "to-92 sc-43 sc-43a sot54 PA33 transistor") 4 | (fp_text reference Q1 (at 2.794 2.794 180) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value 2N3904 (at 2.54 2.79) (layer F.Fab) hide 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user %R (at 2.54 -3.56) (layer F.Fab) hide 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_line (start 0.74 1.85) (end 4.34 1.85) (layer F.SilkS) (width 0.12)) 14 | (fp_line (start 0.8 1.75) (end 4.3 1.75) (layer F.Fab) (width 0.1)) 15 | (fp_line (start -1.01 -2.73) (end 6.09 -2.73) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start -1.01 -2.73) (end -1.01 2.01) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start 6.09 2.01) (end 6.09 -2.73) (layer F.CrtYd) (width 0.05)) 18 | (fp_line (start 6.09 2.01) (end -1.01 2.01) (layer F.CrtYd) (width 0.05)) 19 | (fp_arc (start 2.54 0) (end 0.74 1.85) (angle 20) (layer F.SilkS) (width 0.12)) 20 | (fp_arc (start 2.54 0) (end 2.54 -2.6) (angle -65) (layer F.SilkS) (width 0.12)) 21 | (fp_arc (start 2.54 0) (end 2.54 -2.6) (angle 65) (layer F.SilkS) (width 0.12)) 22 | (fp_arc (start 2.54 0) (end 2.54 -2.48) (angle 135) (layer F.Fab) (width 0.1)) 23 | (fp_arc (start 2.54 0) (end 2.54 -2.48) (angle -135) (layer F.Fab) (width 0.1)) 24 | (fp_arc (start 2.54 0) (end 4.34 1.85) (angle -20) (layer F.SilkS) (width 0.12)) 25 | (pad 2 thru_hole circle (at 2.54 0 90) (size 1.52 1.52) (drill 0.8) (layers *.Cu *.Mask)) 26 | (pad 3 thru_hole circle (at 5.08 0 90) (size 1.52 1.52) (drill 0.8) (layers *.Cu *.Mask)) 27 | (pad 1 thru_hole rect (at 0 0 90) (size 1.52 1.52) (drill 0.8) (layers *.Cu *.Mask)) 28 | (model ${KISYS3DMOD}/TO_SOT_Packages_THT.3dshapes/TO-92_Inline_Wide.wrl 29 | (at (xyz 0.1 0 0)) 30 | (scale (xyz 1 1 1)) 31 | (rotate (xyz 0 0 -90)) 32 | ) 33 | ) 34 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/TSOP-II_44pin_W400mil.kicad_mod: -------------------------------------------------------------------------------- 1 | (module mi_footprints:TSOP-II_44pin_W400mil (layer F.Cu) (tedit 58F55180) 2 | (fp_text reference U10 (at 6 19) (layer F.SilkS) 3 | (effects (font (size 1 1) (thickness 0.15))) 4 | ) 5 | (fp_text value AS6C8008 (at 5.6 -2.2) (layer F.Fab) hide 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_line (start 11.5 -1.5) (end 1 -1.5) (layer F.SilkS) (width 0.5)) 9 | (fp_line (start -0.5 18) (end 12 18) (layer F.SilkS) (width 0.5)) 10 | (fp_circle (center 0 -1.6) (end 0 -0.8) (layer F.SilkS) (width 0.5)) 11 | (pad 1 smd rect (at 0 0) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 12 | (pad 2 smd rect (at 0 0.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 13 | (pad 3 smd rect (at 0 1.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 14 | (pad 4 smd rect (at 0 2.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 15 | (pad 5 smd rect (at 0 3.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 16 | (pad 6 smd rect (at 0 4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 17 | (pad 7 smd rect (at 0 4.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 18 | (pad 8 smd rect (at 0 5.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 19 | (pad 9 smd rect (at 0 6.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 20 | (pad 10 smd rect (at 0 7.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 21 | (pad 11 smd rect (at 0 8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 22 | (pad 12 smd rect (at 0 8.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 23 | (pad 13 smd rect (at 0 9.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 24 | (pad 14 smd rect (at 0 10.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 25 | (pad 15 smd rect (at 0 11.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 26 | (pad 16 smd rect (at 0 12) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 27 | (pad 17 smd rect (at 0 12.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 28 | (pad 18 smd rect (at 0 13.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 29 | (pad 19 smd rect (at 0 14.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 30 | (pad 20 smd rect (at 0 15.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 31 | (pad 21 smd rect (at 0 16) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 32 | (pad 22 smd rect (at 0 16.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 33 | (pad 23 smd rect (at 11.4572 16.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 34 | (pad 24 smd rect (at 11.4572 16) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 35 | (pad 25 smd rect (at 11.4572 15.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 36 | (pad 26 smd rect (at 11.4572 14.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 37 | (pad 27 smd rect (at 11.4572 13.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 38 | (pad 28 smd rect (at 11.4572 12.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 39 | (pad 29 smd rect (at 11.4572 12) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 40 | (pad 30 smd rect (at 11.4572 11.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 41 | (pad 31 smd rect (at 11.4572 10.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 42 | (pad 32 smd rect (at 11.4572 9.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 43 | (pad 33 smd rect (at 11.4572 8.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 44 | (pad 34 smd rect (at 11.4572 8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 45 | (pad 35 smd rect (at 11.4572 7.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 46 | (pad 36 smd rect (at 11.4572 6.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 47 | (pad 37 smd rect (at 11.4572 5.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 48 | (pad 38 smd rect (at 11.4572 4.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 49 | (pad 39 smd rect (at 11.4572 4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 50 | (pad 40 smd rect (at 11.4572 3.2) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 51 | (pad 41 smd rect (at 11.4572 2.4) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 52 | (pad 42 smd rect (at 11.4572 1.6) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 53 | (pad 43 smd rect (at 11.4572 0.8) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 54 | (pad 44 smd rect (at 11.4572 0) (size 2 0.48) (layers F.Cu F.Paste F.Mask)) 55 | ) 56 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/USB_B.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Connect:USB_B (layer F.Cu) (tedit 55B36073) 2 | (descr "USB B connector") 3 | (tags "USB_B USB_DEV") 4 | (fp_text reference P1 (at 11.05 1.27 90) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value USB_B (at 4.7 1.27 90) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 15.25 8.9) (end -2.3 8.9) (layer F.CrtYd) (width 0.05)) 11 | (fp_line (start -2.3 8.9) (end -2.3 -6.35) (layer F.CrtYd) (width 0.05)) 12 | (fp_line (start -2.3 -6.35) (end 15.25 -6.35) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start 15.25 -6.35) (end 15.25 8.9) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start 6.35 7.37) (end 14.99 7.37) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start -2.03 7.37) (end 3.05 7.37) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 6.35 -4.83) (end 14.99 -4.83) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start -2.03 -4.83) (end 3.05 -4.83) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start 14.99 -4.83) (end 14.99 7.37) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -2.03 7.37) (end -2.03 -4.83) (layer F.SilkS) (width 0.12)) 20 | (pad 2 thru_hole circle (at 0 2.54 270) (size 1.52 1.52) (drill 0.81) (layers *.Cu *.Mask)) 21 | (pad 1 thru_hole circle (at 0 0 270) (size 1.52 1.52) (drill 0.81) (layers *.Cu *.Mask)) 22 | (pad 4 thru_hole circle (at 2 0 270) (size 1.52 1.52) (drill 0.81) (layers *.Cu *.Mask)) 23 | (pad 3 thru_hole circle (at 2 2.54 270) (size 1.52 1.52) (drill 0.81) (layers *.Cu *.Mask)) 24 | (pad 5 thru_hole circle (at 4.7 7.27 270) (size 2.7 2.7) (drill 2.3) (layers *.Cu *.Mask)) 25 | (pad 5 thru_hole circle (at 4.7 -4.73 270) (size 2.7 2.7) (drill 2.3) (layers *.Cu *.Mask)) 26 | (model Connectors.3dshapes/USB_B.wrl 27 | (at (xyz 0.18 -0.05 0)) 28 | (scale (xyz 0.39 0.39 0.39)) 29 | (rotate (xyz 0 0 -90)) 30 | ) 31 | ) 32 | -------------------------------------------------------------------------------- /kicad/hd6309_computer.pretty/moseley_instruments_logo_smaller.kicad_mod: -------------------------------------------------------------------------------- 1 | (module mi_footprints:moseley_instruments_logo_smaller (layer F.Cu) (tedit 0) 2 | (fp_text reference LOGO1 (at 0 0) (layer F.SilkS) hide 3 | (effects (font (thickness 0.3))) 4 | ) 5 | (fp_text value Logo (at 0.75 0) (layer F.SilkS) hide 6 | (effects (font (thickness 0.3))) 7 | ) 8 | (fp_poly (pts (xy -12.998824 4.108824) (xy -13.447059 4.108824) (xy -13.447059 2.764118) (xy -12.998824 2.764118) 9 | (xy -12.998824 4.108824)) (layer F.SilkS) (width 0.01)) 10 | (fp_poly (pts (xy -9.511295 2.769471) (xy -9.4564 2.8047) (xy -9.427036 2.898556) (xy -9.415215 3.079791) 11 | (xy -9.41295 3.377156) (xy -9.412941 3.436471) (xy -9.422363 3.799573) (xy -9.458964 4.021753) 12 | (xy -9.535246 4.110781) (xy -9.663711 4.074423) (xy -9.856861 3.920448) (xy -9.989084 3.794446) 13 | (xy -10.309412 3.480068) (xy -10.309412 3.794446) (xy -10.317164 3.992439) (xy -10.360306 4.082966) 14 | (xy -10.468666 4.107866) (xy -10.533529 4.108824) (xy -10.757647 4.108824) (xy -10.757647 3.436471) 15 | (xy -10.755629 3.117848) (xy -10.744877 2.919965) (xy -10.718346 2.814158) (xy -10.668991 2.771764) 16 | (xy -10.592387 2.764118) (xy -10.446698 2.815942) (xy -10.248966 2.951895) (xy -10.106798 3.078496) 17 | (xy -9.786471 3.392873) (xy -9.786471 3.078496) (xy -9.777418 2.879667) (xy -9.733955 2.788748) 18 | (xy -9.631623 2.764569) (xy -9.599706 2.764118) (xy -9.511295 2.769471)) (layer F.SilkS) (width 0.01)) 19 | (fp_poly (pts (xy -6.171665 2.716434) (xy -6.022894 2.801802) (xy -5.976471 2.921522) (xy -5.998748 3.006764) 20 | (xy -6.089549 3.049243) (xy -6.284822 3.062569) (xy -6.35 3.062941) (xy -6.563112 3.073438) 21 | (xy -6.698353 3.100274) (xy -6.723529 3.121274) (xy -6.659635 3.178354) (xy -6.49821 3.254975) 22 | (xy -6.406029 3.289362) (xy -6.2047 3.372596) (xy -6.106153 3.468415) (xy -6.067557 3.622889) 23 | (xy -6.063973 3.657291) (xy -6.078343 3.872484) (xy -6.182413 4.011425) (xy -6.394191 4.086182) 24 | (xy -6.731685 4.108819) (xy -6.737808 4.108824) (xy -6.983281 4.10301) (xy -7.114173 4.077619) 25 | (xy -7.165116 4.020727) (xy -7.171765 3.959412) (xy -7.14628 3.861094) (xy -7.043646 3.818042) 26 | (xy -6.87735 3.81) (xy -6.644305 3.791174) (xy -6.553892 3.739093) (xy -6.608184 3.660358) 27 | (xy -6.800368 3.565033) (xy -7.04288 3.435818) (xy -7.153474 3.276992) (xy -7.149624 3.06141) 28 | (xy -7.142919 3.032886) (xy -7.044828 2.882565) (xy -6.860713 2.772137) (xy -6.628518 2.705224) 29 | (xy -6.386188 2.685448) (xy -6.171665 2.716434)) (layer F.SilkS) (width 0.01)) 30 | (fp_poly (pts (xy -2.94095 2.766898) (xy -2.752355 2.779822) (xy -2.654707 2.809764) (xy -2.618789 2.863598) 31 | (xy -2.614706 2.913529) (xy -2.649926 3.022894) (xy -2.78097 3.0614) (xy -2.838824 3.062941) 32 | (xy -3.062941 3.062941) (xy -3.062941 3.585882) (xy -3.065688 3.859091) (xy -3.081679 4.015453) 33 | (xy -3.122542 4.087528) (xy -3.199905 4.107872) (xy -3.249706 4.108824) (xy -3.34728 4.101134) 34 | (xy -3.403124 4.056359) (xy -3.428865 3.941942) (xy -3.436131 3.725325) (xy -3.436471 3.585882) 35 | (xy -3.436471 3.062941) (xy -3.660588 3.062941) (xy -3.824635 3.039461) (xy -3.882394 2.952098) 36 | (xy -3.884706 2.913529) (xy -3.872889 2.840881) (xy -3.817962 2.796506) (xy -3.690709 2.77353) 37 | (xy -3.461916 2.765078) (xy -3.249706 2.764118) (xy -2.94095 2.766898)) (layer F.SilkS) (width 0.01)) 38 | (fp_poly (pts (xy 0.319394 2.775969) (xy 0.504565 2.817546) (xy 0.620813 2.897884) (xy 0.623421 2.900735) 39 | (xy 0.734142 3.125071) (xy 0.717575 3.379952) (xy 0.660856 3.501824) (xy 0.616463 3.637255) 40 | (xy 0.678153 3.786699) (xy 0.698209 3.816257) (xy 0.801399 3.988797) (xy 0.794472 4.077727) 41 | (xy 0.670322 4.107662) (xy 0.613754 4.108824) (xy 0.42579 4.060051) (xy 0.278606 3.893502) 42 | (xy 0.273354 3.884706) (xy 0.145627 3.708459) (xy 0.054649 3.676422) (xy -0.00146 3.788472) 43 | (xy -0.013714 3.866029) (xy -0.06722 4.026036) (xy -0.208538 4.090412) (xy -0.242794 4.095109) 44 | (xy -0.448235 4.118748) (xy -0.448235 3.212353) (xy 0 3.212353) (xy 0.052825 3.337209) 45 | (xy 0.149412 3.361765) (xy 0.274268 3.30894) (xy 0.298824 3.212353) (xy 0.245998 3.087496) 46 | (xy 0.149412 3.062941) (xy 0.024555 3.115766) (xy 0 3.212353) (xy -0.448235 3.212353) 47 | (xy -0.448235 2.764118) (xy 0.025774 2.764118) (xy 0.319394 2.775969)) (layer F.SilkS) (width 0.01)) 48 | (fp_poly (pts (xy 4.250224 2.773785) (xy 4.306088 2.826332) (xy 4.328688 2.957073) (xy 4.332941 3.201323) 49 | (xy 4.332941 3.206243) (xy 4.323876 3.528031) (xy 4.287084 3.738539) (xy 4.208175 3.8753) 50 | (xy 4.072756 3.975851) (xy 4.028775 3.999528) (xy 3.705878 4.099071) (xy 3.406319 4.058094) 51 | (xy 3.324412 4.018593) (xy 3.14749 3.884361) (xy 3.04428 3.706912) (xy 2.998021 3.446702) 52 | (xy 2.990611 3.231029) (xy 2.99286 2.976274) (xy 3.011957 2.836491) (xy 3.061491 2.777275) 53 | (xy 3.155047 2.764221) (xy 3.175 2.764118) (xy 3.296051 2.780792) (xy 3.349345 2.858989) 54 | (xy 3.361735 3.040975) (xy 3.361765 3.058078) (xy 3.391915 3.388344) (xy 3.476726 3.618302) 55 | (xy 3.60774 3.728495) (xy 3.656111 3.735294) (xy 3.819611 3.667524) (xy 3.921292 3.466927) 56 | (xy 3.959193 3.137571) (xy 3.959412 3.105205) (xy 3.966895 2.895849) (xy 4.003868 2.795922) 57 | (xy 4.092114 2.765641) (xy 4.146176 2.764118) (xy 4.250224 2.773785)) (layer F.SilkS) (width 0.01)) 58 | (fp_poly (pts (xy 6.982868 2.781803) (xy 7.09303 2.859452) (xy 7.197958 3.033956) (xy 7.22106 3.080923) 59 | (xy 7.374498 3.397729) (xy 7.53612 3.080923) (xy 7.653905 2.88151) (xy 7.766575 2.787798) 60 | (xy 7.917383 2.764122) (xy 7.920342 2.764118) (xy 8.142941 2.764118) (xy 8.142941 3.436471) 61 | (xy 8.14136 3.754774) (xy 8.131411 3.952412) (xy 8.105284 4.058132) (xy 8.055169 4.100678) 62 | (xy 7.973256 4.108798) (xy 7.96027 4.108824) (xy 7.848387 4.093352) (xy 7.789811 4.021086) 63 | (xy 7.762093 3.853247) (xy 7.754828 3.753971) (xy 7.732059 3.399118) (xy 7.599405 3.641912) 64 | (xy 7.462654 3.830067) (xy 7.335838 3.869985) (xy 7.213987 3.762094) (xy 7.166342 3.679265) 65 | (xy 7.062231 3.473824) (xy 7.037997 3.791324) (xy 7.013946 3.990966) (xy 6.961368 4.0827) 66 | (xy 6.84839 4.107991) (xy 6.79394 4.108824) (xy 6.574118 4.108824) (xy 6.574118 2.764118) 67 | (xy 6.82087 2.764118) (xy 6.982868 2.781803)) (layer F.SilkS) (width 0.01)) 68 | (fp_poly (pts (xy 11.256586 2.768149) (xy 11.414028 2.786327) (xy 11.486037 2.82778) (xy 11.50456 2.901636) 69 | (xy 11.504706 2.913529) (xy 11.483141 3.006236) (xy 11.393243 3.050502) (xy 11.197202 3.062825) 70 | (xy 11.162304 3.062941) (xy 10.935192 3.087608) (xy 10.846282 3.145529) (xy 10.895815 3.212589) 71 | (xy 11.084036 3.26467) (xy 11.160185 3.273164) (xy 11.347604 3.305543) (xy 11.416271 3.371146) 72 | (xy 11.415259 3.422575) (xy 11.32921 3.523389) (xy 11.112483 3.571665) (xy 11.111879 3.571716) 73 | (xy 10.905687 3.608091) (xy 10.839123 3.659171) (xy 10.905997 3.707084) (xy 11.100119 3.733958) 74 | (xy 11.168529 3.735294) (xy 11.375977 3.743035) (xy 11.474263 3.781085) (xy 11.503422 3.871684) 75 | (xy 11.504706 3.922059) (xy 11.497016 4.019633) (xy 11.452241 4.075477) (xy 11.337824 4.101218) 76 | (xy 11.121208 4.108484) (xy 10.981765 4.108824) (xy 10.458824 4.108824) (xy 10.458824 2.764118) 77 | (xy 10.981765 2.764118) (xy 11.256586 2.768149)) (layer F.SilkS) (width 0.01)) 78 | (fp_poly (pts (xy 15.07482 3.417794) (xy 15.061535 3.732893) (xy 15.041767 3.928524) (xy 15.00753 4.034624) 79 | (xy 14.950836 4.08113) (xy 14.894368 4.094135) (xy 14.754512 4.061717) (xy 14.576226 3.919316) 80 | (xy 14.427939 3.757958) (xy 14.120376 3.399118) (xy 14.119894 3.753971) (xy 14.112758 3.96863) 81 | (xy 14.078367 4.073122) (xy 13.996088 4.106544) (xy 13.932647 4.108824) (xy 13.844236 4.10347) 82 | (xy 13.789341 4.068241) (xy 13.759977 3.974385) (xy 13.748156 3.793151) (xy 13.745891 3.495786) 83 | (xy 13.745882 3.436471) (xy 13.74811 3.117556) (xy 13.759268 2.919452) (xy 13.786073 2.813574) 84 | (xy 13.835237 2.77134) (xy 13.90382 2.764118) (xy 14.04625 2.819546) (xy 14.234418 2.965813) 85 | (xy 14.348992 3.081618) (xy 14.636225 3.399118) (xy 14.639289 3.081618) (xy 14.648821 2.882347) 86 | (xy 14.692396 2.790765) (xy 14.800216 2.765196) (xy 14.869379 2.764118) (xy 15.096405 2.764118) 87 | (xy 15.07482 3.417794)) (layer F.SilkS) (width 0.01)) 88 | (fp_poly (pts (xy 18.200815 2.766898) (xy 18.389409 2.779822) (xy 18.487058 2.809764) (xy 18.522976 2.863598) 89 | (xy 18.527059 2.913529) (xy 18.491839 3.022894) (xy 18.360795 3.0614) (xy 18.302941 3.062941) 90 | (xy 18.078824 3.062941) (xy 18.078824 3.585882) (xy 18.075709 3.859347) (xy 18.059153 4.015888) 91 | (xy 18.018331 4.087972) (xy 17.942423 4.108065) (xy 17.90451 4.108824) (xy 17.747619 4.089513) 92 | (xy 17.680392 4.05902) (xy 17.654469 3.963483) (xy 17.636456 3.764072) (xy 17.630588 3.536078) 93 | (xy 17.627106 3.279201) (xy 17.607664 3.137532) (xy 17.55877 3.076889) (xy 17.466929 3.063089) 94 | (xy 17.443824 3.062941) (xy 17.29737 3.027923) (xy 17.257059 2.913529) (xy 17.268876 2.840881) 95 | (xy 17.323803 2.796506) (xy 17.451056 2.77353) (xy 17.679849 2.765078) (xy 17.892059 2.764118) 96 | (xy 18.200815 2.766898)) (layer F.SilkS) (width 0.01)) 97 | (fp_poly (pts (xy 21.429257 2.704017) (xy 21.620856 2.739864) (xy 21.707674 2.822908) (xy 21.725931 2.894853) 98 | (xy 21.726104 2.997841) (xy 21.663631 3.047199) (xy 21.502068 3.062222) (xy 21.408431 3.062941) 99 | (xy 21.172168 3.077292) (xy 21.082619 3.118903) (xy 21.140012 3.185609) (xy 21.344575 3.275249) 100 | (xy 21.384559 3.289362) (xy 21.591999 3.378479) (xy 21.693133 3.481994) (xy 21.726335 3.611165) 101 | (xy 21.704575 3.850561) (xy 21.569564 4.008975) (xy 21.313491 4.0922) (xy 21.05548 4.108824) 102 | (xy 20.80908 4.103081) (xy 20.677355 4.077974) (xy 20.625763 4.021681) (xy 20.618824 3.959412) 103 | (xy 20.645128 3.860026) (xy 20.750333 3.817275) (xy 20.905196 3.81) (xy 21.141691 3.794462) 104 | (xy 21.232253 3.747154) (xy 21.177169 3.667035) (xy 20.976724 3.553064) (xy 20.975807 3.552624) 105 | (xy 20.771421 3.437245) (xy 20.67021 3.318925) (xy 20.632634 3.154545) (xy 20.633142 2.988274) 106 | (xy 20.701157 2.88764) (xy 20.873795 2.799384) (xy 20.882774 2.79562) (xy 21.141934 2.723997) 107 | (xy 21.407006 2.702583) (xy 21.429257 2.704017)) (layer F.SilkS) (width 0.01)) 108 | (fp_poly (pts (xy -19.747072 -4.093579) (xy -19.662151 -4.044971) (xy -19.660846 -4.008747) (xy -19.702113 -3.925521) 109 | (xy -19.81089 -3.726239) (xy -19.979706 -3.424078) (xy -20.201089 -3.032216) (xy -20.467566 -2.56383) 110 | (xy -20.771668 -2.032099) (xy -21.105921 -1.4502) (xy -21.439864 -0.8711) (xy -23.194728 2.166471) 111 | (xy -23.520945 2.166471) (xy -23.721398 2.15825) (xy -23.804398 2.123639) (xy -23.801462 2.047716) 112 | (xy -23.797068 2.035735) (xy -23.750464 1.945936) (xy -23.636718 1.740236) (xy -23.463471 1.432081) 113 | (xy -23.238365 1.034921) (xy -22.969041 0.562203) (xy -22.66314 0.027375) (xy -22.328303 -0.556115) 114 | (xy -22.01481 -1.100842) (xy -20.282647 -4.106685) (xy -19.959669 -4.107754) (xy -19.747072 -4.093579)) (layer F.SilkS) (width 0.01)) 115 | (fp_poly (pts (xy -18.182742 -4.101111) (xy -17.989988 -4.0809) (xy -17.905024 -4.052794) (xy -17.934576 -3.97881) 116 | (xy -18.032177 -3.788576) (xy -18.190674 -3.494946) (xy -18.402909 -3.110775) (xy -18.661725 -2.648916) 117 | (xy -18.959968 -2.122223) (xy -19.290481 -1.543551) (xy -19.641443 -0.933823) (xy -21.411068 2.129118) 118 | (xy -21.954901 2.151191) (xy -22.241182 2.157454) (xy -22.404635 2.144554) (xy -22.471084 2.10834) 119 | (xy -22.473926 2.067787) (xy -22.432531 1.983426) (xy -22.323653 1.783034) (xy -22.154768 1.479825) 120 | (xy -21.933355 1.087015) (xy -21.66689 0.617817) (xy -21.362852 0.085448) (xy -21.028717 -0.496877) 121 | (xy -20.696612 -1.073257) (xy -18.944106 -4.108823) (xy -18.441168 -4.108823) (xy -18.182742 -4.101111)) (layer F.SilkS) (width 0.01)) 122 | (fp_poly (pts (xy -16.136616 -4.103261) (xy -15.87451 -4.088581) (xy -15.705423 -4.067083) (xy -15.660436 -4.049576) 123 | (xy -15.689186 -3.974881) (xy -15.785804 -3.783806) (xy -15.943183 -3.489214) (xy -16.154219 -3.103967) 124 | (xy -16.411806 -2.640925) (xy -16.70884 -2.112951) (xy -17.038215 -1.532906) (xy -17.392827 -0.913651) 125 | (xy -17.392939 -0.913455) (xy -19.162059 2.163418) (xy -19.970625 2.164945) (xy -20.340604 2.161671) 126 | (xy -20.581456 2.148542) (xy -20.713284 2.123091) (xy -20.756188 2.082853) (xy -20.755037 2.068733) 127 | (xy -20.713784 1.985991) (xy -20.605042 1.787161) (xy -20.436278 1.485405) (xy -20.214956 1.093884) 128 | (xy -19.948544 0.625761) (xy -19.644507 0.094196) (xy -19.310311 -0.487647) (xy -18.975294 -1.068743) 129 | (xy -17.219706 -4.108481) (xy -16.45838 -4.108652) (xy -16.136616 -4.103261)) (layer F.SilkS) (width 0.01)) 130 | (fp_poly (pts (xy -9.338235 2.166471) (xy -11.202586 2.166471) (xy -11.22291 0.774539) (xy -11.243235 -0.617392) 131 | (xy -11.647961 0.291589) (xy -12.052686 1.20057) (xy -12.723974 1.179255) (xy -13.395262 1.157941) 132 | (xy -13.84396 0.165835) (xy -14.006292 -0.182938) (xy -14.151083 -0.475138) (xy -14.266034 -0.687356) 133 | (xy -14.338846 -0.796186) (xy -14.35421 -0.805341) (xy -14.408042 -0.737436) (xy -14.524966 -0.558686) 134 | (xy -14.693494 -0.28771) (xy -14.902136 0.05687) (xy -15.139405 0.456434) (xy -15.265963 0.672353) 135 | (xy -16.116164 2.129118) (xy -17.241313 2.14971) (xy -17.635556 2.153235) (xy -17.974256 2.149268) 136 | (xy -18.230568 2.138671) (xy -18.377649 2.12231) (xy -18.40177 2.112357) (xy -18.372688 2.037956) 137 | (xy -18.275612 1.84728) (xy -18.117681 1.553201) (xy -17.906036 1.168588) (xy -17.647817 0.706312) 138 | (xy -17.350164 0.179246) (xy -17.020217 -0.399741) (xy -16.670451 -1.008529) (xy -14.903824 -4.071471) 139 | (xy -13.812668 -4.071471) (xy -13.205631 -2.74385) (xy -13.017008 -2.339581) (xy -12.846997 -1.990777) 140 | (xy -12.705735 -1.716984) (xy -12.603358 -1.537744) (xy -12.550005 -1.472603) (xy -12.546884 -1.47385) 141 | (xy -12.500932 -1.557134) (xy -12.404039 -1.75437) (xy -12.266755 -2.043337) (xy -12.099635 -2.401817) 142 | (xy -11.913229 -2.807591) (xy -11.907502 -2.820147) (xy -11.31983 -4.108823) (xy -9.338235 -4.108823) 143 | (xy -9.338235 2.166471)) (layer F.SilkS) (width 0.01)) 144 | (fp_poly (pts (xy -5.388325 -4.052983) (xy -5.324371 -4.042026) (xy -4.817432 -3.911519) (xy -4.389041 -3.708692) 145 | (xy -3.980938 -3.403922) (xy -3.867805 -3.301374) (xy -3.434103 -2.807353) (xy -3.124288 -2.266915) 146 | (xy -2.932491 -1.696155) (xy -2.852845 -1.111167) (xy -2.879484 -0.528046) (xy -3.006539 0.037112) 147 | (xy -3.228143 0.568213) (xy -3.53843 1.049163) (xy -3.93153 1.463866) (xy -4.401578 1.796227) 148 | (xy -4.942705 2.030152) (xy -5.549045 2.149546) (xy -5.859295 2.161473) (xy -6.170295 2.141387) 149 | (xy -6.476308 2.095317) (xy -6.627455 2.058091) (xy -7.210567 1.799077) (xy -7.726513 1.412789) 150 | (xy -8.161982 0.911322) (xy -8.466827 0.386947) (xy -8.56992 0.159857) (xy -8.637725 -0.02955) 151 | (xy -8.677591 -0.223528) (xy -8.696863 -0.464332) (xy -8.702888 -0.794214) (xy -8.703235 -0.972747) 152 | (xy -8.702876 -1.031847) (xy -6.952129 -1.031847) (xy -6.929406 -0.57408) (xy -6.822973 -0.150121) 153 | (xy -6.631823 0.19998) (xy -6.589945 0.250267) (xy -6.314213 0.455653) (xy -5.970093 0.560647) 154 | (xy -5.604531 0.55984) (xy -5.26447 0.447826) (xy -5.201496 0.410196) (xy -4.947422 0.170788) 155 | (xy -4.778874 -0.164908) (xy -4.690923 -0.609814) (xy -4.674632 -0.971176) (xy -4.689504 -1.385811) 156 | (xy -4.736724 -1.677658) (xy -4.795389 -1.830294) (xy -5.045112 -2.168667) (xy -5.352993 -2.394257) 157 | (xy -5.69351 -2.501508) (xy -6.041139 -2.484865) (xy -6.370358 -2.338771) (xy -6.528115 -2.207493) 158 | (xy -6.750476 -1.888603) (xy -6.89215 -1.483371) (xy -6.952129 -1.031847) (xy -8.702876 -1.031847) 159 | (xy -8.700936 -1.350744) (xy -8.688956 -1.621233) (xy -8.659669 -1.826101) (xy -8.605452 -2.007239) 160 | (xy -8.518679 -2.206535) (xy -8.45467 -2.338343) (xy -8.105008 -2.899662) (xy -7.665441 -3.364558) 161 | (xy -7.154978 -3.722684) (xy -6.592632 -3.963695) (xy -5.99741 -4.077244) (xy -5.388325 -4.052983)) (layer F.SilkS) (width 0.01)) 162 | (fp_poly (pts (xy 2.374505 -3.312189) (xy 2.353235 -2.502647) (xy 0.957025 -2.502647) (xy 0.420381 -2.499613) 163 | (xy 0.018131 -2.489877) (xy -0.264632 -2.472485) (xy -0.442816 -2.446484) (xy -0.531327 -2.41092) 164 | (xy -0.535413 -2.407208) (xy -0.593374 -2.300763) (xy -0.545007 -2.190834) (xy -0.380613 -2.070513) 165 | (xy -0.090493 -1.932895) (xy 0.335054 -1.771073) (xy 0.380524 -1.755016) (xy 0.985537 -1.526499) 166 | (xy 1.453782 -1.312741) (xy 1.796449 -1.107703) (xy 2.024727 -0.905345) (xy 2.075456 -0.840153) 167 | (xy 2.298976 -0.397478) (xy 2.391932 0.076907) (xy 2.361668 0.55721) (xy 2.215523 1.017641) 168 | (xy 1.96084 1.432407) (xy 1.60496 1.775719) (xy 1.275219 1.971183) (xy 1.1507 2.023399) 169 | (xy 1.017355 2.063361) (xy 0.85276 2.093102) (xy 0.634489 2.114657) (xy 0.340116 2.13006) 170 | (xy -0.052785 2.141345) (xy -0.566639 2.150547) (xy -0.728382 2.152929) (xy -2.390588 2.176741) 171 | (xy -2.390588 0.597647) (xy -1.089345 0.597647) (xy -0.656561 0.595134) (xy -0.270767 0.588168) 172 | (xy 0.041087 0.57761) (xy 0.252048 0.564321) (xy 0.330066 0.552301) (xy 0.429655 0.448371) 173 | (xy 0.436098 0.294509) (xy 0.354853 0.168559) (xy 0.25001 0.117041) (xy 0.034706 0.032143) 174 | (xy -0.259169 -0.074137) (xy -0.583038 -0.184296) (xy -1.15479 -0.396922) (xy -1.599404 -0.618912) 175 | (xy -1.939102 -0.863455) (xy -2.193393 -1.140069) (xy -2.298543 -1.371384) (xy -2.363782 -1.698372) 176 | (xy -2.385194 -2.071696) (xy -2.358862 -2.442017) (xy -2.313957 -2.658934) (xy -2.151434 -3.014761) 177 | (xy -1.881623 -3.366651) (xy -1.542044 -3.673853) (xy -1.178816 -3.891796) (xy -1.037637 -3.951062) 178 | (xy -0.89818 -3.996024) (xy -0.736618 -4.029125) (xy -0.52912 -4.052807) (xy -0.25186 -4.069511) 179 | (xy 0.118992 -4.081679) (xy 0.607265 -4.091754) (xy 0.805681 -4.09516) (xy 2.395774 -4.121729) 180 | (xy 2.374505 -3.312189)) (layer F.SilkS) (width 0.01)) 181 | (fp_poly (pts (xy 7.395882 -2.543528) (xy 6.107206 -2.523088) (xy 4.818529 -2.502647) (xy 4.795949 -2.110441) 182 | (xy 4.773368 -1.718235) (xy 7.022353 -1.718235) (xy 7.022353 -0.298823) (xy 4.781176 -0.298823) 183 | (xy 4.781176 0.597647) (xy 7.470588 0.597647) (xy 7.470588 2.091765) (xy 3.062941 2.091765) 184 | (xy 3.062941 -4.034118) (xy 7.395882 -4.034118) (xy 7.395882 -2.543528)) (layer F.SilkS) (width 0.01)) 185 | (fp_poly (pts (xy 9.935882 0.597647) (xy 12.7 0.597647) (xy 12.7 2.091765) (xy 8.142941 2.091765) 186 | (xy 8.142941 -4.034118) (xy 9.935882 -4.034118) (xy 9.935882 0.597647)) (layer F.SilkS) (width 0.01)) 187 | (fp_poly (pts (xy 17.555882 -2.543528) (xy 16.267206 -2.523088) (xy 14.978529 -2.502647) (xy 14.978529 -1.755588) 188 | (xy 16.080441 -1.734915) (xy 17.182353 -1.714241) (xy 17.182353 -0.298823) (xy 14.93372 -0.298823) 189 | (xy 14.956125 0.130735) (xy 14.978529 0.560294) (xy 16.304559 0.580694) (xy 17.630588 0.601095) 190 | (xy 17.630588 2.091765) (xy 13.222941 2.091765) (xy 13.222941 -4.034118) (xy 17.555882 -4.034118) 191 | (xy 17.555882 -2.543528)) (layer F.SilkS) (width 0.01)) 192 | (fp_poly (pts (xy 22.865863 -1.985882) (xy 21.814118 0.062354) (xy 21.814118 2.091765) (xy 20.021176 2.091765) 193 | (xy 20.021176 -0.000432) (xy 19.012647 -1.967461) (xy 18.757758 -2.466289) (xy 18.526536 -2.922055) 194 | (xy 18.327429 -3.317847) (xy 18.168885 -3.636753) (xy 18.059351 -3.86186) (xy 18.007274 -3.976256) 195 | (xy 18.004118 -3.986536) (xy 18.074098 -4.004585) (xy 18.265317 -4.016582) (xy 18.549687 -4.021602) 196 | (xy 18.899121 -4.018719) (xy 18.949805 -4.017673) (xy 19.895493 -3.996765) (xy 20.371084 -2.840692) 197 | (xy 20.532493 -2.452919) (xy 20.67728 -2.113652) (xy 20.794843 -1.847068) (xy 20.874578 -1.67734) 198 | (xy 20.90265 -1.628644) (xy 20.947811 -1.675668) (xy 21.039061 -1.840479) (xy 21.166325 -2.102408) 199 | (xy 21.319526 -2.44079) (xy 21.475363 -2.803393) (xy 21.992101 -4.034118) (xy 23.917609 -4.034118) 200 | (xy 22.865863 -1.985882)) (layer F.SilkS) (width 0.01)) 201 | ) 202 | -------------------------------------------------------------------------------- /software/example1/example1.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Example program for HD6309 computer 3 | ; Retro Challenge 2017/04 4 | ; Niels A. Moseley 5 | ; www.moseleyinstruments.com 6 | ; 7 | 8 | ; ================================================== 9 | ; SYSTEM CONSTANTS 10 | ; ================================================== 11 | 12 | RAMSTART EQU $0000 13 | RAMEND EQU $E000 14 | STACK EQU $DFF0 15 | 16 | ; ================================================== 17 | ; UART ADDRESSES 18 | ; ================================================== 19 | SER_TX EQU $E000 20 | SER_RX EQU $E000 21 | SER_IER EQU $E001 22 | SER_FCR EQU $E002 23 | SER_ISR EQU $E002 24 | SER_LCR EQU $E003 25 | SER_MCR EQU $E004 26 | SER_LSR EQU $E005 27 | SER_MSR EQU $E006 28 | SER_SPR EQU $E007 29 | SER_DLL EQU $E000 30 | SER_DLM EQU $E001 31 | 32 | ORG $0100 ; START OF RAM 33 | 34 | JMP __START 35 | 36 | ; ================================================== 37 | ; OUTPUT A CHARACTER TO THE CONSOLE 38 | ; BLOCKS ON UART TX FULL 39 | ; ================================================== 40 | OUTCHAR: 41 | PSHS B 42 | OUTCHAR_1: 43 | LDB SER_LSR 44 | BITB #32 45 | NOP 46 | NOP 47 | BEQ OUTCHAR_1 48 | STA SER_TX 49 | PULS B 50 | RTS 51 | 52 | ; ================================================== 53 | ; PRINT STRING POINTED TO BY X 54 | ; BLOCKS ON UART TX FULL 55 | ; ================================================== 56 | PRINTSTRING: 57 | PSHS A 58 | PRINTSTRING_1: 59 | LDA ,X+ 60 | BEQ PS_END 61 | JSR OUTCHAR 62 | JMP PRINTSTRING_1 63 | PS_END: 64 | PULS A 65 | RTS 66 | 67 | ; ================================================== 68 | ; START OF PROGRAM 69 | ; ================================================== 70 | 71 | __START: 72 | LDS #STACK 73 | ORCC #%01010000 ; disable interrupts 74 | 75 | ; **************************************** 76 | ; init UART 77 | ; baud divisor to 48 -> 9600 baud 78 | ; 8 bits, 1 stop bit, no parity 79 | ; 80 | ; **************************************** 81 | CLRA 82 | STA SER_IER ; no interrupts 83 | 84 | STA SER_FCR ; no FIFO 85 | 86 | LDA #$83 ; 8 bits per symbol, no parity, enable baud reg access 87 | STA SER_LCR ; line control 88 | 89 | LDA #$4 ; set at least one led to ON 90 | STA SER_MCR ; modem control 91 | 92 | LDA #48 93 | STA SER_DLL 94 | 95 | CLRA 96 | STA SER_DLM 97 | 98 | LDA #$03 ; 8 bits per symbol, no parity, disable baud reg access 99 | STA SER_LCR 100 | 101 | LDX #BANNER 102 | JSR PRINTSTRING 103 | 104 | SPIN: 105 | JMP SPIN 106 | 107 | BANNER: 108 | .ascii " __ __ _____ _ _ ______ " 109 | .db 13,10 110 | .ascii " \ \ / /| _ || | | || ___ \ " 111 | .db 13,10 112 | .ascii " \ V / | | | || | | || |_/ / " 113 | .db 13,10 114 | .ascii " \ / | | | || | | || / " 115 | .db 13,10 116 | .ascii " | | \ \_/ /| |_| || |\ \ " 117 | .db 13,10 118 | .ascii " _____ _____ _\_/ __\___/__\___/ \_|_\_|_ _____ ______ " 119 | .db 13,10 120 | .ascii "/ __ \| _ || \/ || ___ \| | | ||_ _|| ___|| ___ \" 121 | .db 13,10 122 | .ascii "| / \/| | | || . . || |_/ /| | | | | | | |__ | |_/ /" 123 | .db 13,10 124 | .ascii "| | | | | || |\/| || __/ | | | | | | | __| | / " 125 | .db 13,10 126 | .ascii "| \__/\\ \_/ /| | | || | | |_| | | | | |___ | |\ \ " 127 | .db 13,10 128 | .ascii " \____/ \___/ \_| |_/\_|_ __\___/ \_/ \____/ \_| \_|" 129 | .db 13,10 130 | .ascii " |_ _|/ ___| " 131 | .db 13,10 132 | .ascii " | | \ `--. " 133 | .db 13,10 134 | .ascii " | | `--. \ " 135 | .db 13,10 136 | .ascii " _| |_ /\__/ / " 137 | .db 13,10 138 | .ascii " _ _ _____ ____\___/ \____/____ _ _ _____ _ " 139 | .db 13,10 140 | .ascii " | | | || _ || ___ \| | / /|_ _|| \ | || __ \| | " 141 | .db 13,10 142 | .ascii " | | | || | | || |_/ /| |/ / | | | \| || | \/| | " 143 | .db 13,10 144 | .ascii " | |/\| || | | || / | \ | | | . ` || | __ | | " 145 | .db 13,10 146 | .ascii " \ /\ /\ \_/ /| |\ \ | |\ \ _| |_ | |\ || |_\ \|_| " 147 | .db 13,10 148 | .ascii " \/ \/ \___/ \_| \_|\_| \_/ \___/ \_| \_/ \____/(_) " 149 | .db 13,10,0 -------------------------------------------------------------------------------- /software/example1/example1.srec: -------------------------------------------------------------------------------- 1 | S01E00005B6C77746F6F6C7320342E31335D206578616D706C65312E61736D83 2 | S11301007E01233404F6E005C520121227F7B7E078 3 | S1130110003504393402A6802706BD01037E01168A 4 | S113012035023910CEDFF01A504FB7E001B7E002C4 5 | S11301308683B7E0038604B7E0048630B7E0004F57 6 | S1130140B7E0018603B7E0038E0151BD01147E01BF 7 | S11301504E202020202020202020202020205F5FEF 8 | S11301602020205F5F205F5F5F5F5F20205F202093 9 | S1130170205F205F5F5F5F5F5F20202020202020C2 10 | S1130180202020202020202020200D0A2020202094 11 | S11301902020202020202020205C205C202F202FC5 12 | S11301A07C20205F20207C7C207C207C207C7C2088 13 | S11301B05F5F5F205C202020202020202020202042 14 | S11301C020202020200D0A20202020202020202054 15 | S11301D020202020205C2056202F207C207C207C86 16 | S11301E0207C7C207C207C207C7C207C5F2F202F2A 17 | S11301F020202020202020202020202020202020FB 18 | S11302000D0A202020202020202020202020202013 19 | S1130210205C202F20207C207C207C207C7C207C67 20 | S1130220207C207C7C202020202F202020202020A7 21 | S113023020202020202020202020200D0A202020E3 22 | S11302402020202020202020202020207C207C20F2 23 | S1130250205C205C5F2F202F7C207C5F7C207C7CBA 24 | S1130260207C5C205C2020202020202020202020B6 25 | S11302702020202020200D0A205F5F5F5F5F202068 26 | S11302805F5F5F5F5F205F5C5F2F205F5F5C5F5F2E 27 | S11302905F2F5F5F5C5F5F5F2F205C5F7C5F5C5FF5 28 | S11302A07C5F20205F5F5F5F5F205F5F5F5F5F5FFA 29 | S11302B0200D0A2F20205F5F205C7C20205F2020FF 30 | S11302C07C7C20205C2F20207C7C205F5F5F205C76 31 | S11302D07C207C207C207C7C5F2020205F7C7C2018 32 | S11302E0205F5F5F7C7C205F5F5F205C0D0A7C2069 33 | S11302F02F20205C2F7C207C207C207C7C202E20C6 34 | S1130300202E207C7C207C5F2F202F7C207C207C56 35 | S1130310207C20207C207C20207C207C5F5F20208F 36 | S11303207C207C5F2F202F0D0A7C207C2020202025 37 | S11303307C207C207C207C7C207C5C2F7C207C7C32 38 | S113034020205F5F2F207C207C207C207C20207C50 39 | S1130350207C20207C20205F5F7C207C20202020AB 40 | S11303602F200D0A7C205C5F5F2F5C5C205C5F2F7C 41 | S1130370202F7C207C20207C207C7C207C20202042 42 | S1130380207C207C5F7C207C20207C207C20207CA6 43 | S1130390207C5F5F5F207C207C5C205C200D0A2039 44 | S11303A05C5F5F5F5F2F205C5F5F5F2F205C5F7C23 45 | S11303B020207C5F2F5C5F7C5F20205F5F5C5F5F41 46 | S11303C05F2F2020205C5F2F20205C5F5F5F5F2F0A 47 | S11303D0205C5F7C205C5F7C0D0A20202020202094 48 | S11303E020202020202020202020202020207C5F6E 49 | S11303F02020205F7C2F20205F5F5F7C2020202036 50 | S113040020202020202020202020202020202020E8 51 | S11304102020200D0A202020202020202020202001 52 | S113042020202020202020202020207C207C202010 53 | S11304305C20602D2D2E2020202020202020202014 54 | S113044020202020202020202020202020200D0AD1 55 | S11304502020202020202020202020202020202098 56 | S11304602020202020207C207C202020602D2D2E68 57 | S1130470205C20202020202020202020202020203C 58 | S11304802020202020202020200D0A202020202091 59 | S11304902020202020202020202020202020202058 60 | S11304A05F7C207C5F202F5C5F5F2F202F2020202B 61 | S11304B02020202020202020202020202020202038 62 | S11304C0202020200D0A2020205F202020205F20D3 63 | S11304D0205F5F5F5F5F205F5F5F5F5C5F5F5F2FD9 64 | S11304E0205C5F5F5F5F2F5F5F5F5F20205F202086 65 | S11304F0205F20205F5F5F5F5F20205F2020200D52 66 | S11305000A20207C207C20207C207C7C20205F20F2 67 | S1130510207C7C205F5F5F205C7C207C202F202F50 68 | S11305207C5F2020205F7C7C205C207C207C7C20E5 69 | S1130530205F5F205C7C207C20200D0A20207C2012 70 | S11305407C20207C207C7C207C207C207C7C207C6B 71 | S11305505F2F202F7C207C2F202F2020207C207CAC 72 | S113056020207C20205C7C207C7C207C20205C2F34 73 | S11305707C207C20200D0A20207C207C2F5C7C2089 74 | S11305807C7C207C207C207C7C202020202F207CD4 75 | S1130590202020205C2020207C207C20207C202EF9 76 | S11305A02060207C7C207C205F5F207C207C2020BD 77 | S11305B00D0A20205C20202F5C20202F5C205C5F13 78 | S11305C02F202F7C207C5C205C207C207C5C2020E5 79 | S11305D05C205F7C207C5F207C207C5C20207C7CF9 80 | S11305E0207C5F5C205C7C5F7C20200D0A20202026 81 | S11305F05C2F20205C2F20205C5F5F5F2F205C5FDE 82 | S11306007C205C5F7C5C5F7C205C5F2F205C5F5F98 83 | S11306105F2F205C5F7C205C5F2F205C5F5F5F5FEF 84 | S10C06202F285F2920200D0A0097 85 | S5030053A9 86 | S9030000FC 87 | -------------------------------------------------------------------------------- /software/exptest/compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ../../tools/lwasm --format=srec exptest.asm --output=exptest.srec 3 | -------------------------------------------------------------------------------- /software/exptest/exptest.asm: -------------------------------------------------------------------------------- 1 | ; HD6309 Computer expansion port test 2 | ; 3 | ; Retro Challenge 2019/10 4 | ; Niels A. Moseley 5 | ; www.moseleyinstruments.com 6 | ; 7 | 8 | ; ================================================== 9 | ; SYSTEM CONSTANTS 10 | ; ================================================== 11 | 12 | RAMSTART EQU $0000 13 | RAMEND EQU $E000 14 | STACK EQU $DFE0 15 | 16 | PAGEREG EQU $E800 17 | IOPORT EQU $E010 18 | 19 | ; ================================================== 20 | ; UART ADDRESSES 21 | ; ================================================== 22 | SER_TX EQU $E000 23 | SER_RX EQU $E000 24 | SER_IER EQU $E001 25 | SER_FCR EQU $E002 26 | SER_ISR EQU $E002 27 | SER_LCR EQU $E003 28 | SER_MCR EQU $E004 29 | SER_LSR EQU $E005 30 | SER_MSR EQU $E006 31 | SER_SPR EQU $E007 32 | SER_DLL EQU $E000 33 | SER_DLM EQU $E001 34 | 35 | ORG $0000 36 | 37 | JMP START 38 | 39 | ; ================================================== 40 | ; OUTPUT A CHARACTER TO THE CONSOLE 41 | ; BLOCKS ON UART TX FULL 42 | ; ================================================== 43 | OUTCHAR: 44 | PSHS B 45 | OUTCHAR_1: 46 | LDB SER_LSR 47 | BITB #32 48 | NOP 49 | NOP 50 | BEQ OUTCHAR_1 51 | STA SER_TX 52 | PULS B 53 | RTS 54 | 55 | ; ================================================== 56 | ; GET A CHARACTER FROM THE CONSOLE 57 | ; BLOCKS ON UART RX EMPTY 58 | ; ================================================== 59 | 60 | INCHAR: 61 | PSHS B 62 | INCHAR_1: 63 | LDB SER_LSR 64 | BITB #1 65 | NOP 66 | NOP 67 | BEQ INCHAR_1 68 | LDA SER_RX 69 | PULS B 70 | RTS 71 | 72 | ; ================================================== 73 | ; PRINT STRING POINTED TO BY X 74 | ; BLOCKS ON UART TX FULL 75 | ; ================================================== 76 | PRINTSTRING: 77 | PSHS A 78 | PRINTSTRING_1: 79 | LDA ,X+ 80 | BEQ PS_END 81 | JSR OUTCHAR 82 | JMP PRINTSTRING_1 83 | PS_END: 84 | PULS A 85 | RTS 86 | 87 | ; ================================================== 88 | ; WRITE 'A' REGISTER AS HEX TO UART 89 | ; BLOCKS ON UART TX FULL 90 | ; ================================================== 91 | PRINTAHEX: 92 | PSHS A 93 | PSHS A 94 | ; convert MS nibble 95 | LSRA 96 | LSRA 97 | LSRA 98 | LSRA 99 | CMPA #9 100 | BLS PRINTAHEX_1 101 | ADDA #7 ; 'A'-'9'-1 : 65 - 57 - 1 = 7 102 | PRINTAHEX_1: 103 | ADDA #'0' 104 | JSR OUTCHAR 105 | ; convert LS nibble 106 | PULS A 107 | ANDA #$0F 108 | CMPA #9 109 | BLS PRINTAHEX_2 110 | ADDA #7 111 | PRINTAHEX_2: 112 | ADDA #'0' 113 | JSR OUTCHAR 114 | PULS A 115 | RTS 116 | 117 | 118 | ; ================================================== 119 | ; ENTRY POINT 120 | ; ================================================== 121 | 122 | START: 123 | LDS #STACK 124 | LDX #BANNER 125 | JSR PRINTSTRING 126 | CLRB 127 | 128 | CMDAGAIN: 129 | ; ask for user input 130 | LDX #ASK 131 | JSR PRINTSTRING 132 | 133 | JSR INCHAR 134 | 135 | CMPA #'R' 136 | BEQ PORT_READ 137 | 138 | CMPA #'W' 139 | BEQ PORT_WRITE 140 | 141 | LDX #HUH ; error -> invalid command 142 | JSR PRINTSTRING 143 | JSR OUTCHAR ; print command char 144 | LDA #39 ; apostrophe 145 | JSR OUTCHAR 146 | LDX #EOLSTR 147 | JSR PRINTSTRING 148 | JMP CMDAGAIN 149 | 150 | PORT_READ: 151 | LDX #IOPORT 152 | LDA 0,X 153 | LDX #PORTTXT 154 | JSR PRINTSTRING 155 | JSR PRINTAHEX 156 | LDX #EOLSTR 157 | JSR PRINTSTRING 158 | JMP CMDAGAIN 159 | 160 | PORT_WRITE: 161 | LDX #IOPORT 162 | STB 0,X 163 | LDX #PORTTXT2 164 | JSR PRINTSTRING 165 | TFR B,A 166 | JSR PRINTAHEX 167 | LDX #EOLSTR 168 | JSR PRINTSTRING 169 | INCB 170 | JMP CMDAGAIN 171 | 172 | BANNER .ascii "HD6309 I/O port test" 173 | .db 10,13,0 174 | 175 | ASK .ascii "Press R for READ - W for WRITE" 176 | .db 10,13,0 177 | 178 | HUH .ascii "Invalid command '" 179 | .db 0 180 | 181 | PORTTXT .ascii "Read : " 182 | .db 0 183 | 184 | PORTTXT2 .ascii "Write : " 185 | .db 0 186 | 187 | EOLSTR .db 10,13,0 188 | -------------------------------------------------------------------------------- /software/mempager/compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ../../tools/lwasm --format=srec mempager.asm --output=mempager.srec 3 | -------------------------------------------------------------------------------- /software/mempager/mempager.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Test for the paging mechanism of the HD6309 computer 3 | ; 4 | ; Niels A. Moseley 5 | ; www.moseleyinstruments.com 6 | ; 7 | 8 | ; ================================================== 9 | ; SYSTEM CONSTANTS 10 | ; ================================================== 11 | 12 | RAMSTART EQU $0000 13 | RAMEND EQU $E000 14 | STACK EQU $DFE0 15 | 16 | PAGEREG EQU $E800 17 | 18 | ; ================================================== 19 | ; UART ADDRESSES 20 | ; ================================================== 21 | SER_TX EQU $E000 22 | SER_RX EQU $E000 23 | SER_IER EQU $E001 24 | SER_FCR EQU $E002 25 | SER_ISR EQU $E002 26 | SER_LCR EQU $E003 27 | SER_MCR EQU $E004 28 | SER_LSR EQU $E005 29 | SER_MSR EQU $E006 30 | SER_SPR EQU $E007 31 | SER_DLL EQU $E000 32 | SER_DLM EQU $E001 33 | 34 | ; run program in non-paged part of memory! 35 | ORG $8000 36 | 37 | JMP __START 38 | 39 | ; ================================================== 40 | ; OUTPUT A CHARACTER TO THE CONSOLE 41 | ; BLOCKS ON UART TX FULL 42 | ; ================================================== 43 | OUTCHAR: 44 | PSHS B 45 | OUTCHAR_1: 46 | LDB SER_LSR 47 | BITB #32 48 | NOP 49 | NOP 50 | BEQ OUTCHAR_1 51 | STA SER_TX 52 | PULS B 53 | RTS 54 | 55 | ; ================================================== 56 | ; GET A CHARACTER FROM THE CONSOLE 57 | ; BLOCKS ON UART RX EMPTY 58 | ; ================================================== 59 | 60 | INCHAR: 61 | PSHS B 62 | INCHAR_1: 63 | LDB SER_LSR 64 | BITB #1 65 | NOP 66 | NOP 67 | BEQ INCHAR_1 68 | LDA SER_RX 69 | PULS B 70 | RTS 71 | 72 | ; ================================================== 73 | ; PRINT STRING POINTED TO BY X 74 | ; BLOCKS ON UART TX FULL 75 | ; ================================================== 76 | PRINTSTRING: 77 | PSHS A 78 | PRINTSTRING_1: 79 | LDA ,X+ 80 | BEQ PS_END 81 | JSR OUTCHAR 82 | JMP PRINTSTRING_1 83 | PS_END: 84 | PULS A 85 | RTS 86 | 87 | ; ================================================== 88 | ; WRITE 'A' REGISTER AS HEX TO UART 89 | ; BLOCKS ON UART TX FULL 90 | ; ================================================== 91 | PRINTAHEX: 92 | PSHS A 93 | PSHS A 94 | ; convert MS nibble 95 | LSRA 96 | LSRA 97 | LSRA 98 | LSRA 99 | CMPA #9 100 | BLS PRINTAHEX_1 101 | ADDA #7 ; 'A'-'9'-1 : 65 - 57 - 1 = 7 102 | PRINTAHEX_1: 103 | ADDA #'0' 104 | JSR OUTCHAR 105 | ; convert LS nibble 106 | PULS A 107 | ANDA #$0F 108 | CMPA #9 109 | BLS PRINTAHEX_2 110 | ADDA #7 111 | PRINTAHEX_2: 112 | ADDA #'0' 113 | JSR OUTCHAR 114 | PULS A 115 | RTS 116 | 117 | ; ================================================== 118 | ; START OF PROGRAM 119 | ; ================================================== 120 | 121 | __START: 122 | LDS #STACK 123 | ORCC #%01010000 ; disable interrupts 124 | 125 | LDA #$00 126 | STA PAGEREG 127 | 128 | ; **************************************** 129 | ; init UART 130 | ; baud divisor to 48 -> 9600 baud 131 | ; 8 bits, 1 stop bit, no parity 132 | ; 133 | ; **************************************** 134 | CLRA 135 | STA SER_IER ; no interrupts 136 | 137 | STA SER_FCR ; no FIFO 138 | 139 | LDA #$83 ; 8 bits per symbol, no parity, enable baud reg access 140 | STA SER_LCR ; line control 141 | 142 | LDA #$4 ; set at least one led to ON 143 | STA SER_MCR ; modem control 144 | 145 | LDA #48 146 | STA SER_DLL 147 | 148 | CLRA 149 | STA SER_DLM 150 | 151 | LDA #$03 ; 8 bits per symbol, no parity, disable baud reg access 152 | STA SER_LCR 153 | 154 | ; ================================================== 155 | ; Write + read to page 2 156 | ; ================================================== 157 | ; set page register 158 | LDA #$02 159 | STA PAGEREG 160 | 161 | LDX #TEXT1 162 | JSR PRINTSTRING 163 | 164 | LDA #$FF 165 | STA $0000 166 | LDX #WRITETEXT 167 | JSR PRINTSTRING 168 | JSR PRINTAHEX 169 | LDX #EOLSTR 170 | JSR PRINTSTRING 171 | 172 | LDA $0000 173 | LDX #READTEXT 174 | JSR PRINTSTRING 175 | JSR PRINTAHEX 176 | LDX #EOLSTR 177 | JSR PRINTSTRING 178 | CMPA #$FF 179 | BNE PAGE_ERROR 180 | 181 | ; ================================================== 182 | ; Write + read to page 0 183 | ; ================================================== 184 | ; set page register 185 | LDA #$00 186 | STA PAGEREG 187 | 188 | LDX #TEXT0 189 | JSR PRINTSTRING 190 | 191 | LDA #$AA 192 | STA $0000 193 | LDX #WRITETEXT 194 | JSR PRINTSTRING 195 | JSR PRINTAHEX 196 | LDX #EOLSTR 197 | JSR PRINTSTRING 198 | 199 | LDA $0000 200 | LDX #READTEXT 201 | JSR PRINTSTRING 202 | JSR PRINTAHEX 203 | LDX #EOLSTR 204 | JSR PRINTSTRING 205 | CMPA #$AA 206 | BNE PAGE_ERROR 207 | 208 | 209 | ; ================================================== 210 | ; Read again from page 2 211 | ; ================================================== 212 | ; set page register 213 | LDA #$02 214 | STA PAGEREG 215 | 216 | LDX #TEXT1 217 | JSR PRINTSTRING 218 | 219 | LDA $0000 220 | LDX #READTEXT 221 | JSR PRINTSTRING 222 | JSR PRINTAHEX 223 | CMPA #$FF 224 | BNE PAGE_ERROR 225 | LDX #EOLSTR 226 | JSR PRINTSTRING 227 | JMP MEMTEST 228 | 229 | PAGE_ERROR: 230 | LDX #PAGEERRORSTR 231 | JSR PRINTSTRING 232 | JMP QUIT 233 | 234 | ; ================================================== 235 | ; Perform exhaustive memory test 236 | ; ================================================== 237 | MEMTEST: 238 | CLRB ; page ID 239 | 240 | NEXTPAGE: 241 | CMPB #1 ; don't check page 1 because 242 | ; that's where the program is running! 243 | BEQ SKIPPAGE 244 | CMPB #32 ; no more than 32 pages! 245 | BHS DONE 246 | STB PAGEREG 247 | LDX #CHECKSTR 248 | JSR PRINTSTRING 249 | TFR B,A 250 | JSR PRINTAHEX 251 | LDA #13 252 | JSR OUTCHAR 253 | 254 | LDX #$0000 255 | NEXTBYTE: 256 | LDA #$AA 257 | STA ,X 258 | LDA ,X 259 | CMPA #$AA 260 | BNE MEM_ERROR 261 | LDA #$55 262 | STA ,X 263 | LDA ,X+ 264 | CMPA #$55 265 | BNE MEM_ERROR 266 | CMPX #$8000 267 | BNE NEXTBYTE 268 | SKIPPAGE: 269 | INCB 270 | JMP NEXTPAGE 271 | 272 | DONE: 273 | LDX #DONESTR 274 | JSR PRINTSTRING 275 | JMP QUIT 276 | 277 | MEM_ERROR: 278 | LDX #MEMERRORSTR 279 | JSR PRINTSTRING 280 | JMP QUIT 281 | 282 | ; ================================================== 283 | ; Program end 284 | ; ================================================== 285 | 286 | QUIT: 287 | JMP QUIT 288 | 289 | ; ================================================== 290 | ; Strings 291 | ; ================================================== 292 | 293 | TEXT0: 294 | .ascii "Page register set to 0." 295 | .db 13,10,0 296 | 297 | TEXT1: 298 | .ascii "Page register set to 2." 299 | .db 13,10,0 300 | 301 | PAGEERRORSTR: 302 | .ascii "Paging error!" 303 | .db 13,10,0 304 | 305 | MEMERRORSTR: 306 | .ascii "Memory error!" 307 | .db 13,10,0 308 | 309 | CHECKSTR: 310 | .asciz "Checking page $" 311 | 312 | DONESTR: 313 | .ascii "Done: memory ok!" 314 | .db 13,10,0 315 | 316 | READTEXT: 317 | .asciz "Data read as: $" 318 | 319 | WRITETEXT: 320 | .asciz "Data written: $" 321 | 322 | EOLSTR: 323 | .db 13,10,0 324 | -------------------------------------------------------------------------------- /software/mempager/mempager.srec: -------------------------------------------------------------------------------- 1 | S01E00005B6C77746F6F6C7320342E31375D206D656D70616765722E61736D4E 2 | S11380007E80593404F6E005C520121227F7B7E044 3 | S1138010003504393404F6E005C501121227F7B619 4 | S1138020E0003504393402A6802706BD80037E8033 5 | S1138030273502393402340244444444810923027A 6 | S11380408B078B30BD80033502840F810923028B9B 7 | S1138050078B30BD800335023910CEDFE01A50861D 8 | S113806000B7E8004FB7E001B7E0028683B7E0034A 9 | S11380708604B7E0048630B7E0004FB7E00186031A 10 | S1138080B7E0038602B7E8008E8180BD802586FFB5 11 | S113809097008E81EDBD8025BD80348E81FDBD802D 12 | S11380A02596008E81DDBD8025BD80348E81FDBD89 13 | S11380B0802581FF26568600B7E8008E8166BD8044 14 | S11380C02586AA97008E81EDBD8025BD80348E81E2 15 | S11380D0FDBD802596008E81DDBD8025BD80348E5A 16 | S11380E081FDBD802581AA26238602B7E8008E8102 17 | S11380F080BD802596008E81DDBD8025BD803481C4 18 | S1138100FF26098E81FDBD80257E81158E819ABD55 19 | S113811080257E81635FC1012733C1202433F7E8C2 20 | S1138120008E81BABD80251F98BD8034860DBD8028 21 | S1138130038E000086AAA784A68481AA261C8655DD 22 | S1138140A784A680815526128C800026E75C7E8158 23 | S1138150168E81CABD80257E81638E81AABD80254D 24 | S11381607E81637E81635061676520726567697390 25 | S11381707465722073657420746F20302E0D0A00AC 26 | S113818050616765207265676973746572207365F1 27 | S11381907420746F20322E0D0A00506167696E6777 28 | S11381A0206572726F72210D0A004D656D6F7279D0 29 | S11381B0206572726F72210D0A00436865636B69F2 30 | S11381C06E672070616765202400446F6E653A20F5 31 | S11381D06D656D6F7279206F6B210D0A00446174B7 32 | S11381E06120726561642061733A202400446174E3 33 | S11381F061207772697474656E3A2024000D0A0058 34 | S5030020DC 35 | S9030000FC 36 | -------------------------------------------------------------------------------- /software/sdtest/compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ../../tools/lwasm --format=srec sdtest.asm --output=sdtest.srec 3 | -------------------------------------------------------------------------------- /software/sdtest/sdtest.asm: -------------------------------------------------------------------------------- 1 | ; HD6309 Computer SD card expansion test 2 | ; 3 | ; Retro Challenge 2019/10 4 | ; Niels A. Moseley 5 | ; www.moseleyinstruments.com 6 | ; 7 | ; INPORT: 8 | ; bit 7: /CARD_DETECT 9 | ; bit 6: MISO 10 | ; 11 | ; OUTPORT: 12 | ; bit 7: /SS 13 | ; bit 6: MOSI 14 | ; bit 5: SCK 15 | ; 16 | ; default state for the MOSI line is '1' 17 | ; 18 | ; https://electronics.stackexchange.com/questions/77417/what-is-the-correct-command-sequence-for-microsd-card-initialization-in-spi 19 | 20 | ; ================================================== 21 | ; SYSTEM CONSTANTS 22 | ; ================================================== 23 | 24 | RAMSTART EQU $0000 25 | RAMEND EQU $E000 26 | STACK EQU $DFE0 27 | 28 | PAGEREG EQU $E800 29 | IOPORT EQU $E010 30 | 31 | ; ================================================== 32 | ; UART ADDRESSES 33 | ; ================================================== 34 | SER_TX EQU $E000 35 | SER_RX EQU $E000 36 | SER_IER EQU $E001 37 | SER_FCR EQU $E002 38 | SER_ISR EQU $E002 39 | SER_LCR EQU $E003 40 | SER_MCR EQU $E004 41 | SER_LSR EQU $E005 42 | SER_MSR EQU $E006 43 | SER_SPR EQU $E007 44 | SER_DLL EQU $E000 45 | SER_DLM EQU $E001 46 | 47 | ORG $0000 48 | 49 | JMP START 50 | 51 | ; ================================================== 52 | ; OUTPUT A CHARACTER TO THE CONSOLE 53 | ; BLOCKS ON UART TX FULL 54 | ; ================================================== 55 | OUTCHAR: 56 | PSHS B 57 | OUTCHAR_1: 58 | LDB SER_LSR 59 | BITB #32 60 | NOP 61 | NOP 62 | BEQ OUTCHAR_1 63 | STA SER_TX 64 | PULS B 65 | RTS 66 | 67 | ; ================================================== 68 | ; GET A CHARACTER FROM THE CONSOLE 69 | ; BLOCKS ON UART RX EMPTY 70 | ; ================================================== 71 | 72 | INCHAR: 73 | PSHS B 74 | INCHAR_1: 75 | LDB SER_LSR 76 | BITB #1 77 | NOP 78 | NOP 79 | BEQ INCHAR_1 80 | LDA SER_RX 81 | PULS B 82 | RTS 83 | 84 | ; ================================================== 85 | ; PRINT STRING POINTED TO BY X 86 | ; BLOCKS ON UART TX FULL 87 | ; ================================================== 88 | PRINTSTRING: 89 | PSHS A 90 | PRINTSTRING_1: 91 | LDA ,X+ 92 | BEQ PS_END 93 | JSR OUTCHAR 94 | JMP PRINTSTRING_1 95 | PS_END: 96 | PULS A 97 | RTS 98 | 99 | ; ================================================== 100 | ; WRITE 'A' REGISTER AS HEX TO UART 101 | ; BLOCKS ON UART TX FULL 102 | ; ================================================== 103 | PRINTAHEX: 104 | PSHS A 105 | PSHS A 106 | ; convert MS nibble 107 | LSRA 108 | LSRA 109 | LSRA 110 | LSRA 111 | CMPA #9 112 | BLS PRINTAHEX_1 113 | ADDA #7 ; 'A'-'9'-1 : 65 - 57 - 1 = 7 114 | PRINTAHEX_1: 115 | ADDA #'0' 116 | JSR OUTCHAR 117 | ; convert LS nibble 118 | PULS A 119 | ANDA #$0F 120 | CMPA #9 121 | BLS PRINTAHEX_2 122 | ADDA #7 123 | PRINTAHEX_2: 124 | ADDA #'0' 125 | JSR OUTCHAR 126 | PULS A 127 | RTS 128 | 129 | 130 | ; ================================================== 131 | ; SPI INTERFACE - delay for a bit 132 | ; ================================================== 133 | 134 | ; SHOULD BE IN RAM! 135 | SPI_OUT .db 0 ; SPI output shadow register 136 | SPI_SPEED .db 255 137 | 138 | SPI_DELAY: 139 | PSHS A 140 | LDA SPI_SPEED 141 | SPI_DELAY1: 142 | DECA 143 | BNE SPI_DELAY1 144 | PULS A 145 | RTS 146 | 147 | ; ================================================== 148 | ; SPI INTERFACE - 149 | ; ================================================== 150 | 151 | SCK1: 152 | PSHS A 153 | LDA SPI_OUT 154 | ORA #32 155 | STA SPI_OUT 156 | STA IOPORT 157 | PULS A 158 | RTS 159 | 160 | SCK0: 161 | PSHS A 162 | LDA SPI_OUT 163 | ANDA #$DF 164 | STA SPI_OUT 165 | STA IOPORT 166 | PULS A 167 | RTS 168 | 169 | NSS1: 170 | PSHS A 171 | LDA SPI_OUT 172 | ORA #128 173 | STA SPI_OUT 174 | STA IOPORT 175 | PULS A 176 | RTS 177 | 178 | NSS0: 179 | PSHS A 180 | LDA SPI_OUT 181 | ANDA #$7F 182 | STA SPI_OUT 183 | STA IOPORT 184 | PULS A 185 | RTS 186 | 187 | MOSI1: 188 | PSHS A 189 | LDA SPI_OUT 190 | ORA #64 191 | STA SPI_OUT 192 | STA IOPORT 193 | PULS A 194 | RTS 195 | 196 | MOSI0: 197 | PSHS A 198 | LDA SPI_OUT 199 | ANDA #$B5 200 | STA SPI_OUT 201 | STA IOPORT 202 | PULS A 203 | RTS 204 | 205 | ; SEND 'A' register, MSB first 206 | SPI_TXA: 207 | PSHS B 208 | LDB #8 209 | SPI_TX_NEXTBIT: 210 | TSTA 211 | ; set the MOSI state 212 | BPL SPI_TXA0 ; is MSB of A is 0 -> branch 213 | BSR MOSI1 214 | BRA SPI_TXA1 215 | SPI_TXA0: 216 | BSR MOSI0 217 | SPI_TXA1: 218 | ; toggle the SCK line 219 | BSR SCK1 220 | BSR SPI_DELAY 221 | BSR SCK0 222 | BSR SPI_DELAY 223 | ASLA 224 | DECB 225 | BNE SPI_TX_NEXTBIT 226 | PULS B 227 | RTS 228 | 229 | ; READ MISO into 'A' register 230 | SPI_RXA: 231 | PSHS B 232 | LDB #8 233 | BSR MOSI1 ; default state when RXing 234 | SPI_RX_NEXT_BIT: 235 | BSR SCK1 236 | JSR SPI_DELAY 237 | ; read MISO bit 238 | PSHS B 239 | LDB IOPORT 240 | ASLB 241 | ASLB ; shift MISO bit into the carry flag 242 | ROLA ; into A register 243 | PULS B 244 | 245 | BSR SCK0 246 | JSR SPI_DELAY 247 | 248 | DECB 249 | BNE SPI_RX_NEXT_BIT 250 | PULS B 251 | RTS 252 | 253 | ; ================================================== 254 | ; SEND SDCARD COMMAND POINTED TO BY X REG 255 | ; assumed that NSS is 1 256 | ; sets NSS to 0 257 | ; ================================================== 258 | SDTXCMD: 259 | LDA #$FF ; send 8 idle clocks 260 | JSR SPI_TXA 261 | 262 | JSR NSS0 263 | 264 | LDA #$FF ; send 8 idle clocks 265 | JSR SPI_TXA 266 | 267 | 268 | LDA ,X+ ; cmd byte 269 | JSR SPI_TXA 270 | LDA ,X+ ; payload byte 1 271 | JSR SPI_TXA 272 | LDA ,X+ ; payload byte 2 273 | JSR SPI_TXA 274 | LDA ,X+ ; payload byte 3 275 | JSR SPI_TXA 276 | LDA ,X+ ; payload byte 4 277 | JSR SPI_TXA 278 | LDA ,X 279 | JSR SPI_TXA ; checksum + stop bit 280 | 281 | ; turn-around time 282 | LDA #$FF 283 | JSR SPI_TXA 284 | 285 | RTS 286 | 287 | ; ================================================== 288 | ; READ SDCARD 1 BYTE RESPONSE INTO MEM -> X PTR 289 | ; assumed that NSS is 0 290 | ; saves X 291 | ; ================================================== 292 | SDRX1: 293 | JSR SPI_RXA 294 | TSTA 295 | BMI SDRX1 ; MSB should be 0 296 | STA ,X 297 | RTS 298 | 299 | ; ================================================== 300 | ; READ SDCARD 4 BYTE RESPONSE INTO MEM -> X PTR 301 | ; assumed that NSS is 0 302 | ; saves X 303 | ; ================================================== 304 | SDRX5: 305 | JSR SPI_RXA 306 | TSTA 307 | BMI SDRX5 ; MSB should be 0 308 | STA 0,X 309 | JSR SPI_RXA 310 | STA 1,X 311 | JSR SPI_RXA 312 | STA 2,X 313 | JSR SPI_RXA 314 | STA 3,X 315 | JSR SPI_RXA 316 | STA 4,X 317 | RTS 318 | 319 | ; ================================================== 320 | ; SD CARD INIT 321 | ; ================================================== 322 | 323 | ; can be in ROM: 324 | CMD0: .db $40,0,0,0,0,$95 325 | CMD8: .db $48,0,0,1,$AA,$87 326 | CMD41: .db $69,0x40,0,0,0,1 327 | CMD55: .db $77,0,0,0,0,1 328 | CMD58: .db $7A,0,0,0,0,1 329 | 330 | ; SDRESP must be in RAM! 331 | SDRESP: .db 0,0,0,0,0 332 | 333 | SDFAIL: 334 | LDX #SDERR 335 | JSR PRINTSTRING 336 | LDX #ASK 337 | JSR PRINTSTRING 338 | JSR INCHAR ; wait for key press 339 | ; intentional fall-through 340 | 341 | ; === INIT ENTRY POINT === 342 | SDINIT: 343 | LDA #255 344 | STA SPI_SPEED ; set slowest speed 345 | JSR NSS1 ; deselect card 346 | JSR MOSI1 ; default state for MOSI 347 | JSR SCK0 ; default state for SCK 348 | LDB #10 ; 10 bytes -> spec says at least 74 clock cycles 349 | 350 | SDINIT1: 351 | LDA #$FF ; make sure MOSI stays at '1' 352 | JSR SPI_TXA ; send idle sequence 353 | DECB 354 | BNE SDINIT1 355 | 356 | ; === send CMD0 init sequence === 357 | LDB #10 ; try CMD0 max 10x 358 | TRYCMD0: 359 | DECB 360 | BEQ SDFAIL 361 | LDX #CMD0 362 | JSR SDTXCMD 363 | 364 | ; read CMD0 response 365 | ; should be $01 for OK 366 | LDX #SDRESP 367 | JSR SDRX1 368 | JSR NSS1 369 | LDA 0,X 370 | CMPA #$01 ; check status code 371 | BNE TRYCMD0 372 | 373 | ; === send CMD8 === 374 | LDB #10 ; try CMD8 max 10x 375 | TRYCMD8: 376 | DECB 377 | BEQ SDFAIL 378 | LDX #CMD8 379 | JSR SDTXCMD 380 | 381 | ; read response 382 | LDX #SDRESP 383 | JSR SDRX5 384 | JSR NSS1 385 | LDA 0,X 386 | CMPA #$01 ; check status code 387 | BNE TRYCMD8 388 | LDA 3,X 389 | CMPA #$01 390 | BNE TRYCMD8 ; check voltage range 391 | LDA 4,X 392 | CMPA #$AA 393 | BNE TRYCMD8 394 | 395 | ; == idle period == 396 | LDA #$FF 397 | JSR SPI_TXA 398 | LDA #$FF 399 | JSR SPI_TXA 400 | LDA #$FF 401 | JSR SPI_TXA 402 | LDA #$FF 403 | JSR SPI_TXA 404 | 405 | LDB #10 406 | INIT_AGAIN: 407 | DECB 408 | LBEQ SDERR 409 | 410 | ; === send CMD55 === 411 | LDX #CMD55 412 | JSR SDTXCMD 413 | 414 | ; read response 415 | LDX #SDRESP 416 | JSR SDRX1 417 | JSR NSS1 418 | ; ignore response for now.. 419 | 420 | ; === send ACMD41 === 421 | LDX #CMD41 422 | JSR SDTXCMD 423 | 424 | ; read response 425 | LDX #SDRESP 426 | JSR SDRX1 427 | JSR NSS1 428 | 429 | ; init bit should be zero to indicate 430 | ; card came out of init. 431 | 432 | LDA 0,X 433 | ANDA #1 434 | BNE INIT_AGAIN 435 | 436 | ; === send CMD58 === 437 | ; to read OCR register 438 | ; 439 | ; bit 30 is Card capacitry status 440 | ; bit 31 is Card power up status 441 | ; 442 | LDB #10 443 | CMD58AGAIN: 444 | DECB 445 | LBEQ SDERR 446 | 447 | LDX #CMD58 448 | JSR SDTXCMD 449 | 450 | ; read response 451 | LDX #SDRESP 452 | JSR SDRX5 453 | JSR NSS1 454 | LDA 0,X 455 | CMPA #$00 456 | LBNE SDERR 457 | LDA 1,X ; check the capacity 458 | ANDA #$C0 459 | CMPA #$C0 460 | BNE CMD58AGAIN 461 | 462 | ; tell user the SD card was initialized 463 | LDX #SDOK1 464 | JSR PRINTSTRING 465 | 466 | ; set fast speed 467 | LDA #1 468 | STA SPI_SPEED 469 | 470 | RTS 471 | 472 | ; ================================================== 473 | ; SD CARD - READ SINGLE BLOCK 474 | ; A - MSB of 16-bit block index 475 | ; B - LSB of 16-bit block index 476 | ; X - Destination pointer 477 | ; 478 | ; return: Z=1 if no error. 479 | ; 480 | ; Assumption: SD card is a high-capacity card 481 | ; which always uses 512-byte 482 | ; fixed-size blocks 483 | ; ================================================== 484 | 485 | SDREAD: 486 | PSHS A 487 | LDA #$FF ; send 8 idle clocks 488 | JSR SPI_TXA 489 | 490 | JSR NSS0 ; select card 491 | 492 | LDA #$FF ; send 8 idle clocks 493 | JSR SPI_TXA 494 | 495 | LDA #$51 ; CMD17 496 | JSR SPI_TXA 497 | CLRA ; address 31-24 -> 0 498 | JSR SPI_TXA 499 | CLRA ; address 23-16 -> 0 500 | JSR SPI_TXA 501 | PULS A ; address 15-8 -> MSB block index 502 | JSR SPI_TXA 503 | TFR B,A ; address 7-0 -> LSB block index 504 | JSR SPI_TXA 505 | LDA #$01 ; dummy CRC + stop bit 506 | JSR SPI_TXA 507 | 508 | ; turn around 509 | LDA #$FF ; send 8 idle clocks 510 | JSR SPI_TXA 511 | 512 | ; read response 513 | PSHS X 514 | LDX #SDRESP 515 | JSR SDRX1 516 | LDA 0,X ; get response code 517 | BEQ SDREAD_ROK ; expected = 0 518 | PULS X 519 | JMP SDREAD_ERR 520 | 521 | SDREAD_ROK: 522 | PULS X 523 | ; wait for data response token (0xFE) 524 | SDREAD_AGAIN: 525 | JSR SPI_RXA 526 | CMPA #$FF 527 | BEQ SDREAD_AGAIN 528 | 529 | ; check for 0xFE 530 | CMPA #$FE 531 | BNE SDREAD_ERR ; didnt find response token -> error 532 | 533 | ; read the 512-byte data block (512 bytes) 534 | ; but store only the first 256 bytes 535 | ; 536 | ; alternatively, send CMD12 to terminate xfer 537 | ; which is faster 538 | ; 539 | CLRB 540 | SDREAD_BLK1: 541 | JSR SPI_RXA 542 | STA ,X+ 543 | DECB 544 | BNE SDREAD_BLK1 545 | 546 | CLRB ; superfluous, but ok. 547 | SDREAD_BLK2: 548 | JSR SPI_RXA 549 | DECB 550 | BNE SDREAD_BLK2 551 | 552 | ; read the 16-bit CRC 553 | ; and ignore it :) 554 | JSR SPI_RXA 555 | JSR SPI_RXA 556 | 557 | ; de-select SD card 558 | JSR NSS1 559 | 560 | SDREAD_OK: 561 | ORCC #$04 ; set zero flag 562 | RTS 563 | 564 | SDREAD_ERR: 565 | JSR NSS1 566 | JSR PRINTAHEX 567 | ANDCC #$FB ; clear zero flag 568 | RTS 569 | 570 | ; ================================================== 571 | ; SD CARD - WRITE SINGLE BLOCK 572 | ; A - MSB of 16-bit block index 573 | ; B - LSB of 16-bit block index 574 | ; X - Source pointer 575 | ; 576 | ; return: Z=1 if no error. 577 | ; 578 | ; Assumption: SD card is a high-capacity card 579 | ; which always uses 512-byte 580 | ; fixed-size blocks 581 | ; ================================================== 582 | 583 | SDWRITE: 584 | PSHS A 585 | LDA #$FF ; send 8 idle clocks 586 | JSR SPI_TXA 587 | 588 | JSR NSS0 ; select card 589 | 590 | LDA #$FF ; send 8 idle clocks 591 | JSR SPI_TXA 592 | 593 | LDA #$58 ; CMD24 594 | JSR SPI_TXA 595 | CLRA ; address 31-24 -> 0 596 | JSR SPI_TXA 597 | CLRA ; address 23-16 -> 0 598 | JSR SPI_TXA 599 | PULS A ; address 15-8 -> MSB block index 600 | JSR SPI_TXA 601 | TFR B,A ; address 7-0 -> LSB block index 602 | JSR SPI_TXA 603 | LDA #$01 ; dummy CRC + stop bit 604 | JSR SPI_TXA 605 | 606 | ; turn around 607 | LDA #$FF ; send 8 idle clocks 608 | JSR SPI_TXA 609 | 610 | ; read response 611 | PSHS X 612 | LDX #SDRESP 613 | JSR SDRX1 614 | LDA 0,X ; get response code 615 | BEQ SDWRITE_ROK ; expected = 0 616 | PULS X 617 | JMP SDWRITE_ERR 618 | 619 | SDWRITE_ROK: 620 | PULS X 621 | ; send mandatory dummy byte 622 | LDA #$FF 623 | JSR SPI_TXA 624 | 625 | ; send start-of-packet byte 0xFE 626 | LDA #$FE 627 | JSR SPI_TXA 628 | 629 | ; send the 512-byte data block 630 | CLRB 631 | SDWRITE_BLK1: 632 | LDA ,X+ 633 | JSR SPI_TXA 634 | DECB 635 | BNE SDWRITE_BLK1 636 | 637 | CLRB 638 | SDWRITE_BLK2: 639 | CLRA ; fill last part of sector with 0 640 | JSR SPI_TXA 641 | DECB 642 | BNE SDWRITE_BLK2 643 | 644 | ; send dummy CRC 645 | CLRA 646 | JSR SPI_TXA 647 | LDA #$01 648 | JSR SPI_TXA 649 | 650 | ; wait for the data accept token 651 | CLRB 652 | SDWRITE_TOK: 653 | DECB 654 | BEQ SDWRITE_ERR ; time-out 655 | JSR SPI_RXA 656 | CMPA #$FF 657 | BEQ SDWRITE_TOK 658 | 659 | ; check token 660 | ANDA #$1F 661 | CMPA #$05 ; $05 = data accepted 662 | BNE SDWRITE_ERR 663 | 664 | 665 | SDWRITE_OK: 666 | JSR NSS1 667 | ORCC #$04 ; set zero flag 668 | RTS 669 | 670 | SDWRITE_ERR: 671 | JSR NSS1 672 | JSR PRINTAHEX 673 | ANDCC #$FB ; clear zero flag 674 | RTS 675 | 676 | ; ================================================== 677 | ; ENTRY POINT 678 | ; ================================================== 679 | 680 | START: 681 | LDX #BANNER 682 | JSR PRINTSTRING 683 | JSR SDINIT 684 | 685 | AGAIN: 686 | ; try to read sector 0 and display 687 | CLRA 688 | CLRB 689 | LDX #$2000 690 | JSR SDREAD 691 | BNE ERROR 692 | 693 | ; display sector data 694 | LDX #$2000 695 | CLRB 696 | DISPSEC: 697 | LDA ,X+ 698 | JSR PRINTAHEX 699 | DECB 700 | BNE DISPSEC 701 | LDX #EOLSTR 702 | JSR PRINTSTRING 703 | 704 | ; write to sector 0 705 | JSR INCHAR 706 | JSR OUTCHAR 707 | LDX #$2000 708 | CLRB 709 | FILLSEC: 710 | STA ,X+ 711 | DECB 712 | BNE FILLSEC 713 | 714 | CLRA 715 | CLRB 716 | LDX #$2000 717 | JSR SDWRITE 718 | BNE ERROR 719 | JMP AGAIN 720 | 721 | 722 | 723 | ERROR: 724 | LDX #ERRORTXT 725 | JSR PRINTSTRING 726 | JMP START 727 | 728 | 729 | 730 | LOOP: 731 | JMP LOOP 732 | 733 | 734 | BANNER .ascii "=== HD6309 SD card test ===" 735 | .db 10,13,10,13,0 736 | 737 | ASK .ascii "Press any key to try again" 738 | .db 10,13,0 739 | 740 | SDERR .ascii "Error: failed to init SD card" 741 | .db 10,13,0 742 | 743 | SDOK1 .ascii "SD card ok" 744 | .db 10,13,0 745 | 746 | ERRORTXT .ascii "I/O error - sector 0" 747 | .db 10,13,0 748 | 749 | EOLSTR .db 10,13,0 750 | -------------------------------------------------------------------------------- /tools/README.txt: -------------------------------------------------------------------------------- 1 | Install LWTOOLS here. 2 | 3 | http://lwtools.projects.l-w.ca/ --------------------------------------------------------------------------------