├── DIY-VideoRAM ├── KiCAD │ ├── VideoRAM.kicad_pcb │ ├── VideoRAM-rescue.dcm │ ├── VRAM Schematic.pdf │ ├── sym-lib-table │ ├── VideoRAM.pro │ ├── VideoRAM.bck │ ├── VideoRAM.dcm │ ├── VideoRAM-rescue.lib │ ├── VideoRAM.lib │ ├── VideoRAM-cache.lib │ ├── VideoRAM.sch │ └── VideoRAM.sch-bak ├── README.md └── Arduino │ ├── VideoRAM_Random │ └── VideoRAM_Random.ino │ └── VideoRAM_PrintText │ └── VideoRAM_PrintText.ino ├── README.md ├── Arduino-PS2-Keyboard-Reader ├── README.md └── ArduinoPS2Keyboard │ └── ArduinoPS2Keyboard.ino ├── Minimal-Arduino-VGA ├── README.md └── MinimalVGA │ ├── asm.S │ └── MinimalVGA.ino ├── Arduino-VGA ├── README.md ├── LICENSE.txt ├── Arduino_VGA_320x480_v1.00 │ ├── LICENSE.txt │ └── Arduino_VGA_320x480_v1.00.ino └── Arduino_VGA_Terminal_v1.06 │ ├── LICENSE.txt │ └── Arduino_VGA_Terminal_v1.06.ino └── LICENSE.txt /DIY-VideoRAM/KiCAD/VideoRAM.kicad_pcb: -------------------------------------------------------------------------------- 1 | (kicad_pcb (version 4) (host kicad "dummy file") ) 2 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM-rescue.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VRAM Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slu4coder/YouTube/HEAD/DIY-VideoRAM/KiCAD/VRAM Schematic.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # YouTube Code Snippets 2 | 3 | Code snippets and smaller projects I've documented in my YouTube videos. 4 | 5 | See https://www.youtube.com/channel/UCXYQcMpUBT3aaQKfmAVJNow 6 | 7 | 8 | -------------------------------------------------------------------------------- /Arduino-PS2-Keyboard-Reader/README.md: -------------------------------------------------------------------------------- 1 | # Easy Arduino PS2 Keyboard Read-out 2 | 3 | This is a quick and dirty Arduino sketch that allows you to read out a PS/2 keyboard without additional libraries or external components. 4 | 5 | See https://www.youtube.com/watch?v=jUoR5ICCepA 6 | 7 | Have fun! 8 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name VideoRAM)(type Legacy)(uri ${KIPRJMOD}/VideoRAM.lib)(options "")(descr "")) 3 | (lib (name VideoRAM-rescue)(type Legacy)(uri ${KIPRJMOD}/VideoRAM-rescue.lib)(options "")(descr "")) 4 | (lib (name alternate)(type Legacy)(uri "C:/Users/slu4/Documents/KiCAD/NanoPC v2/alternate.lib")(options "")(descr "")) 5 | ) 6 | -------------------------------------------------------------------------------- /Minimal-Arduino-VGA/README.md: -------------------------------------------------------------------------------- 1 | # Minimal ATmega328P VGA Output 2 | 3 | VERY lightweight implementation of 320x200(400) VGA on an Arduino Nano mostly written in AVR Assembler inside the Arduino IDE... 4 | 5 | ...featuring a full 256 character set in FLASH memory! 6 | 7 | https://www.youtube.com/watch?v=-ZABNgYb6TQ 8 | 9 | https://www.youtube.com/channel/UCXYQcMpUBT3aaQKfmAVJNow 10 | -------------------------------------------------------------------------------- /DIY-VideoRAM/README.md: -------------------------------------------------------------------------------- 1 | # DIY-VideoRAM 2 | 3 | Project files of my DIY video RAM I built from TTL chips as a learning experience. Use at your own risk. Have fun! 4 | 5 | See YouTube playlist https://www.youtube.com/playlist?list=PLYlQj5cfIcBWSu-1JA0rs5Okzlj4fCNzK 6 | 7 | NEW: I've build a VGA Expansion Card for my 'Minimal UART CPU System': https://github.com/slu4coder/Minimal-UART-CPU-System 8 | -------------------------------------------------------------------------------- /Arduino-VGA/README.md: -------------------------------------------------------------------------------- 1 | # Arduino VGA Output 2 | 3 | Output 320(or 400) x 200 pixels with an Arduino Nano using only 3 standard logic ICs. Use a terminal input register to write text data and ANSI escape sequences to this VGA terminal. Please note that this is *NOT* supporting a USART serial connection but a parallel connection to a CPU's 8-bit bus. 4 | 5 | This is used for my video series about VGA output and my home-built minimalistic CPU. 6 | 7 | https://www.youtube.com/channel/UCXYQcMpUBT3aaQKfmAVJNow 8 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | ; LICENSING INFORMATION 2 | ; This file is free software: you can redistribute it and/or modify it under the terms of the 3 | ; GNU General Public License as published by the Free Software Foundation, either 4 | ; version 3 of the License, or (at your option) any later version. 5 | ; This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 6 | ; implied warranty of MERCHANMBBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 7 | ; License for more details. You should have received a copy of the GNU General Public License along 8 | ; with this program. If not, see https://www.gnu.org/licenses/. 9 | -------------------------------------------------------------------------------- /Arduino-VGA/LICENSE.txt: -------------------------------------------------------------------------------- 1 | ; LICENSING INFORMATION 2 | ; This file is free software: you can redistribute it and/or modify it under the terms of the 3 | ; GNU General Public License as published by the Free Software Foundation, either 4 | ; version 3 of the License, or (at your option) any later version. 5 | ; This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 6 | ; implied warranty of MERCHANMBBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 7 | ; License for more details. You should have received a copy of the GNU General Public License along 8 | ; with this program. If not, see https://www.gnu.org/licenses/. 9 | -------------------------------------------------------------------------------- /DIY-VideoRAM/Arduino/VideoRAM_Random/VideoRAM_Random.ino: -------------------------------------------------------------------------------- 1 | void setup() 2 | { 3 | DDRD = 0b00011100; // set D2-4 to output 4 | 5 | for(int i=0; i<16384; i++) WriteByte(0, i); // clear RAM 6 | } 7 | 8 | void loop() 9 | { 10 | int y = random(240); 11 | int x = random(50); 12 | int adr = ((y+16)<<6) + (12+x); 13 | WriteByte(0xff, adr); 14 | } 15 | 16 | void WriteByte(byte d, long a) 17 | { 18 | a = (a<<8) + d; 19 | for(byte i=0; i<24; i++) 20 | { 21 | bitWrite(PORTD, 2, a&1); 22 | a = a>>1; 23 | bitWrite(PORTD, 3, HIGH); bitWrite(PORTD, 3, LOW); 24 | } 25 | bitWrite(PORTD, 4, HIGH); bitWrite(PORTD, 4, LOW); 26 | } 27 | -------------------------------------------------------------------------------- /Arduino-VGA/Arduino_VGA_320x480_v1.00/LICENSE.txt: -------------------------------------------------------------------------------- 1 | ; LICENSING INFORMATION 2 | ; This file is free software: you can redistribute it and/or modify it under the terms of the 3 | ; GNU General Public License as published by the Free Software Foundation, either 4 | ; version 3 of the License, or (at your option) any later version. 5 | ; This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 6 | ; implied warranty of MERCHANMBBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 7 | ; License for more details. You should have received a copy of the GNU General Public License along 8 | ; with this program. If not, see https://www.gnu.org/licenses/. 9 | -------------------------------------------------------------------------------- /Arduino-VGA/Arduino_VGA_Terminal_v1.06/LICENSE.txt: -------------------------------------------------------------------------------- 1 | ; LICENSING INFORMATION 2 | ; This file is free software: you can redistribute it and/or modify it under the terms of the 3 | ; GNU General Public License as published by the Free Software Foundation, either 4 | ; version 3 of the License, or (at your option) any later version. 5 | ; This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 6 | ; implied warranty of MERCHANMBBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 7 | ; License for more details. You should have received a copy of the GNU General Public License along 8 | ; with this program. If not, see https://www.gnu.org/licenses/. 9 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM.pro: -------------------------------------------------------------------------------- 1 | update=06/11/2021 21:38:54 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [pcbnew] 9 | version=1 10 | LastNetListRead= 11 | UseCmpFile=1 12 | PadDrill=0.600000000000 13 | PadDrillOvalY=0.600000000000 14 | PadSizeH=1.500000000000 15 | PadSizeV=1.500000000000 16 | PcbTextSizeV=1.500000000000 17 | PcbTextSizeH=1.500000000000 18 | PcbTextThickness=0.300000000000 19 | ModuleTextSizeV=1.000000000000 20 | ModuleTextSizeH=1.000000000000 21 | ModuleTextSizeThickness=0.150000000000 22 | SolderMaskClearance=0.000000000000 23 | SolderMaskMinWidth=0.000000000000 24 | DrawSegmentWidth=0.200000000000 25 | BoardOutlineThickness=0.100000000000 26 | ModuleOutlineThickness=0.150000000000 27 | [cvpcb] 28 | version=1 29 | NetIExt=net 30 | [eeschema] 31 | version=1 32 | LibDir= 33 | [eeschema/libraries] 34 | [schematic_editor] 35 | version=1 36 | PageLayoutDescrFile= 37 | PlotDirectoryName=../../../Desktop/ 38 | SubpartIdSeparator=0 39 | SubpartFirstId=65 40 | NetFmtName= 41 | SpiceAjustPassiveValues=0 42 | LabSize=50 43 | ERC_TestSimilarLabels=1 44 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM.bck: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | $CMP 74HC161 4 | D Synchronous 4-bit programmable binary Counter 5 | K TTL CNT CNT4 6 | F http://www.ti.com/lit/gpn/sn74LS161 7 | $ENDCMP 8 | # 9 | $CMP 74HC165 10 | D Shift Register 8-bit, parallel load 11 | K TTL SR SR8 12 | F http://www.ti.com/lit/gpn/sn74LS165 13 | $ENDCMP 14 | # 15 | $CMP 74HC173 16 | D 4-bit D-type Register, 3 state out 17 | K TTL REG REG4 3State DFF 18 | F http://www.ti.com/lit/gpn/sn74LS173 19 | $ENDCMP 20 | # 21 | $CMP 74HC245 22 | D Octal BUS Transceivers, 3-State outputs 23 | K HCMOS BUS 3State 24 | F http://www.ti.com/lit/gpn/sn74HC245 25 | $ENDCMP 26 | # 27 | $CMP 74HC32 28 | D Quad 2-input OR 29 | K TTL Or2 30 | F http://www.ti.com/lit/gpn/sn74LS32 31 | $ENDCMP 32 | # 33 | $CMP 74LS160 34 | D Synchronous 4-bit programmable decimal Counter 35 | K TTL CNT CNT4 36 | F http://www.ti.com/lit/gpn/sn74LS160 37 | $ENDCMP 38 | # 39 | $CMP 74LS162 40 | D Synchronous 4-bit programmable decimal Counter 41 | K TTL CNT CNT4 42 | F http://www.ti.com/lit/gpn/sn74LS162 43 | $ENDCMP 44 | # 45 | $CMP 74LS163 46 | D Synchronous 4-bit programmable binary Counter 47 | K TTL CNT CNT4 48 | F http://www.ti.com/lit/gpn/sn74LS163 49 | $ENDCMP 50 | # 51 | #End Doc Library 52 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | $CMP 74HC161 4 | D Synchronous 4-bit programmable binary Counter 5 | K TTL CNT CNT4 6 | F http://www.ti.com/lit/gpn/sn74LS161 7 | $ENDCMP 8 | # 9 | $CMP 74HC165 10 | D Shift Register 8-bit, parallel load 11 | K TTL SR SR8 12 | F http://www.ti.com/lit/gpn/sn74LS165 13 | $ENDCMP 14 | # 15 | $CMP 74HC173 16 | D 4-bit D-type Register, 3 state out 17 | K TTL REG REG4 3State DFF 18 | F http://www.ti.com/lit/gpn/sn74LS173 19 | $ENDCMP 20 | # 21 | $CMP 74HC245 22 | D Octal BUS Transceivers, 3-State outputs 23 | K HCMOS BUS 3State 24 | F http://www.ti.com/lit/gpn/sn74HC245 25 | $ENDCMP 26 | # 27 | $CMP 74HC32 28 | D Quad 2-input OR 29 | K TTL Or2 30 | F http://www.ti.com/lit/gpn/sn74LS32 31 | $ENDCMP 32 | # 33 | $CMP 74LS160 34 | D Synchronous 4-bit programmable decimal Counter 35 | K TTL CNT CNT4 36 | F http://www.ti.com/lit/gpn/sn74LS160 37 | $ENDCMP 38 | # 39 | $CMP 74LS162 40 | D Synchronous 4-bit programmable decimal Counter 41 | K TTL CNT CNT4 42 | F http://www.ti.com/lit/gpn/sn74LS162 43 | $ENDCMP 44 | # 45 | $CMP 74LS163 46 | D Synchronous 4-bit programmable binary Counter 47 | K TTL CNT CNT4 48 | F http://www.ti.com/lit/gpn/sn74LS163 49 | $ENDCMP 50 | # 51 | #End Doc Library 52 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM-rescue.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # 74HC245-8-Bit_CPU_32k 5 | # 6 | DEF 74HC245-8-Bit_CPU_32k U 0 40 Y Y 1 L N 7 | F0 "U" 0 -250 50 V V C CNN 8 | F1 "74HC245-8-Bit_CPU_32k" 0 100 50 V V C CNN 9 | F2 "" 0 0 50 H I C CNN 10 | F3 "" 0 0 50 H I C CNN 11 | $FPLIST 12 | DIP?20* 13 | $ENDFPLIST 14 | DRAW 15 | S -300 600 300 -600 1 1 10 f 16 | X A->B 1 -500 -400 200 R 50 50 1 0 I 17 | X GND 10 0 -800 200 U 50 50 1 0 W 18 | X B7 11 500 -200 200 L 50 50 1 0 T 19 | X B6 12 500 -100 200 L 50 50 1 0 T 20 | X B5 13 500 0 200 L 50 50 1 0 T 21 | X B4 14 500 100 200 L 50 50 1 0 T 22 | X B3 15 500 200 200 L 50 50 1 0 T 23 | X B2 16 500 300 200 L 50 50 1 0 T 24 | X B1 17 500 400 200 L 50 50 1 0 T 25 | X B0 18 500 500 200 L 50 50 1 0 T 26 | X CE 19 -500 -500 200 R 50 50 1 0 I I 27 | X A0 2 -500 500 200 R 50 50 1 0 T 28 | X VCC 20 0 800 200 D 50 50 1 0 W 29 | X A1 3 -500 400 200 R 50 50 1 0 T 30 | X A2 4 -500 300 200 R 50 50 1 0 T 31 | X A3 5 -500 200 200 R 50 50 1 0 T 32 | X A4 6 -500 100 200 R 50 50 1 0 T 33 | X A5 7 -500 0 200 R 50 50 1 0 T 34 | X A6 8 -500 -100 200 R 50 50 1 0 T 35 | X A7 9 -500 -200 200 R 50 50 1 0 T 36 | ENDDRAW 37 | ENDDEF 38 | # 39 | # 74HC32-8-Bit_CPU_32k 40 | # 41 | DEF 74HC32-8-Bit_CPU_32k U 0 40 Y Y 5 L N 42 | F0 "U" 0 50 50 H V C CNN 43 | F1 "74HC32-8-Bit_CPU_32k" 0 -50 50 H V C CNN 44 | F2 "" 0 0 50 H I C CNN 45 | F3 "" 0 0 50 H I C CNN 46 | $FPLIST 47 | DIP?14* 48 | $ENDFPLIST 49 | DRAW 50 | A -360 0 258 354 -354 1 1 10 N -150 150 -150 -150 51 | A -47 -52 204 150 837 1 1 10 f 150 0 -24 150 52 | A -47 52 204 -150 -837 1 1 10 f 150 0 -24 -150 53 | A -360 0 258 354 -354 2 1 10 N -150 150 -150 -150 54 | A -47 -52 204 150 837 2 1 10 f 150 0 -24 150 55 | A -47 52 204 -150 -837 2 1 10 f 150 0 -24 -150 56 | A -360 0 258 354 -354 3 1 10 N -150 150 -150 -150 57 | A -47 -52 204 150 837 3 1 10 f 150 0 -24 150 58 | A -47 52 204 -150 -837 3 1 10 f 150 0 -24 -150 59 | A -360 0 258 354 -354 4 1 10 N -150 150 -150 -150 60 | A -47 -52 204 150 837 4 1 10 f 150 0 -24 150 61 | A -47 52 204 -150 -837 4 1 10 f 150 0 -24 -150 62 | A 0 0 150 -899 899 1 2 10 f 0 -150 0 150 63 | A 0 0 150 -899 899 2 2 10 f 0 -150 0 150 64 | A 0 0 150 -899 899 3 2 10 f 0 -150 0 150 65 | A 0 0 150 -899 899 4 2 10 f 0 -150 0 150 66 | S -200 300 200 -300 5 1 10 f 67 | P 2 1 1 10 -150 -150 -25 -150 f 68 | P 2 1 1 10 -150 150 -25 150 f 69 | P 12 1 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 70 | P 2 2 1 10 -150 -150 -25 -150 f 71 | P 2 2 1 10 -150 150 -25 150 f 72 | P 12 2 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 73 | P 2 3 1 10 -150 -150 -25 -150 f 74 | P 2 3 1 10 -150 150 -25 150 f 75 | P 12 3 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 76 | P 2 4 1 10 -150 -150 -25 -150 f 77 | P 2 4 1 10 -150 150 -25 150 f 78 | P 12 4 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 79 | P 4 1 2 10 0 150 -150 150 -150 -150 0 -150 f 80 | P 4 2 2 10 0 150 -150 150 -150 -150 0 -150 f 81 | P 4 3 2 10 0 150 -150 150 -150 -150 0 -150 f 82 | P 4 4 2 10 0 150 -150 150 -150 -150 0 -150 f 83 | X VCC 14 0 500 200 D 50 50 5 0 W 84 | X GND 7 0 -500 200 U 50 50 5 0 W 85 | X ~ 1 -300 100 170 R 50 50 1 1 I 86 | X ~ 2 -300 -100 170 R 50 50 1 1 I 87 | X ~ 3 300 0 150 L 50 50 1 1 O 88 | X ~ 4 -300 100 170 R 50 50 2 1 I 89 | X ~ 5 -300 -100 170 R 50 50 2 1 I 90 | X ~ 6 300 0 150 L 50 50 2 1 O 91 | X ~ 10 -300 -100 170 R 50 50 3 1 I 92 | X ~ 8 300 0 150 L 50 50 3 1 O 93 | X ~ 9 -300 100 170 R 50 50 3 1 I 94 | X ~ 11 300 0 150 L 50 50 4 1 O 95 | X ~ 12 -300 100 170 R 50 50 4 1 I 96 | X ~ 13 -300 -100 170 R 50 50 4 1 I 97 | X ~ 1 -300 100 150 R 50 50 1 2 I I 98 | X ~ 2 -300 -100 150 R 50 50 1 2 I I 99 | X ~ 3 300 0 150 L 50 50 1 2 O I 100 | X ~ 4 -300 100 150 R 50 50 2 2 I I 101 | X ~ 5 -300 -100 150 R 50 50 2 2 I I 102 | X ~ 6 300 0 150 L 50 50 2 2 O I 103 | X ~ 10 -300 -100 150 R 50 50 3 2 I I 104 | X ~ 8 300 0 150 L 50 50 3 2 O I 105 | X ~ 9 -300 100 150 R 50 50 3 2 I I 106 | X ~ 11 300 0 150 L 50 50 4 2 O I 107 | X ~ 12 -300 100 150 R 50 50 4 2 I I 108 | X ~ 13 -300 -100 150 R 50 50 4 2 I I 109 | ENDDRAW 110 | ENDDEF 111 | # 112 | #End Library 113 | -------------------------------------------------------------------------------- /DIY-VideoRAM/Arduino/VideoRAM_PrintText/VideoRAM_PrintText.ino: -------------------------------------------------------------------------------- 1 | byte charset[8][128] = { // charset line data 2 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x66,0x66,0x18,0x62,0x3c,0x06,0x0c,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x18,0x3c,0x3c,0x06,0x7e,0x3c,0x7e,0x3c,0x3c,0x00,0x00,0x0e,0x00,0x70,0x3c,0x3c,0x18,0x7c,0x3c,0x78,0x7e,0x7e,0x3c,0x66,0x3c,0x1e,0x66,0x60,0x63,0x66,0x3c,0x7c,0x3c,0x7c,0x3c,0x7e,0x66,0x66,0x63,0x66,0x66,0x7e,0x3c,0x00,0x3c,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x18,0x70,0x00,0xff, 3 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x66,0x66,0x3e,0x66,0x66,0x0c,0x18,0x18,0x66,0x18,0x00,0x00,0x00,0x03,0x66,0x18,0x66,0x66,0x0e,0x60,0x66,0x66,0x66,0x66,0x00,0x00,0x18,0x00,0x18,0x66,0x66,0x3c,0x66,0x66,0x6c,0x60,0x60,0x66,0x66,0x18,0x0c,0x6c,0x60,0x77,0x76,0x66,0x66,0x66,0x66,0x66,0x18,0x66,0x66,0x63,0x66,0x66,0x06,0x30,0x60,0x0c,0x18,0x00,0x66,0x00,0x60,0x00,0x06,0x00,0x0e,0x00,0x60,0x18,0x06,0x60,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0xff, 4 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x66,0xff,0x60,0x0c,0x3c,0x18,0x30,0x0c,0x3c,0x18,0x00,0x00,0x00,0x06,0x6e,0x38,0x06,0x06,0x1e,0x7c,0x60,0x0c,0x66,0x66,0x18,0x18,0x30,0x7e,0x0c,0x06,0x6e,0x66,0x66,0x60,0x66,0x60,0x60,0x60,0x66,0x18,0x0c,0x78,0x60,0x7f,0x7e,0x66,0x66,0x66,0x66,0x60,0x18,0x66,0x66,0x63,0x3c,0x66,0x0c,0x30,0x30,0x0c,0x3c,0x00,0x6e,0x3c,0x60,0x3c,0x06,0x3c,0x18,0x3e,0x60,0x00,0x00,0x60,0x18,0x66,0x7c,0x3c,0x7c,0x3e,0x7c,0x3e,0x7e,0x66,0x66,0x63,0x66,0x66,0x7e,0x18,0x18,0x18,0x00,0xff, 5 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x66,0x3c,0x18,0x38,0x00,0x30,0x0c,0xff,0x7e,0x00,0x7e,0x00,0x0c,0x76,0x18,0x0c,0x1c,0x66,0x06,0x7c,0x18,0x3c,0x3e,0x00,0x00,0x60,0x00,0x06,0x0c,0x6e,0x7e,0x7c,0x60,0x66,0x78,0x78,0x6e,0x7e,0x18,0x0c,0x70,0x60,0x6b,0x7e,0x66,0x7c,0x66,0x7c,0x3c,0x18,0x66,0x66,0x6b,0x18,0x3c,0x18,0x30,0x18,0x0c,0x7e,0x00,0x6e,0x06,0x7c,0x60,0x3e,0x66,0x3e,0x66,0x7c,0x38,0x06,0x6c,0x18,0x7f,0x66,0x66,0x66,0x66,0x66,0x60,0x18,0x66,0x66,0x6b,0x3c,0x66,0x0c,0x70,0x18,0x0e,0x3b,0xff, 6 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x06,0x30,0x67,0x00,0x30,0x0c,0x3c,0x18,0x00,0x00,0x00,0x18,0x66,0x18,0x30,0x06,0x7f,0x06,0x66,0x18,0x66,0x06,0x00,0x00,0x30,0x7e,0x0c,0x18,0x60,0x66,0x66,0x60,0x66,0x60,0x60,0x66,0x66,0x18,0x0c,0x78,0x60,0x63,0x6e,0x66,0x60,0x66,0x78,0x06,0x18,0x66,0x66,0x7f,0x3c,0x18,0x30,0x30,0x0c,0x0c,0x18,0x00,0x60,0x3e,0x66,0x60,0x66,0x7e,0x18,0x66,0x66,0x18,0x06,0x78,0x18,0x7f,0x66,0x66,0x66,0x66,0x60,0x3c,0x18,0x66,0x66,0x7f,0x18,0x66,0x18,0x18,0x18,0x18,0x6e,0xff, 7 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x7c,0x66,0x66,0x00,0x18,0x18,0x66,0x18,0x18,0x00,0x18,0x30,0x66,0x18,0x60,0x66,0x06,0x66,0x66,0x18,0x66,0x66,0x18,0x18,0x18,0x00,0x18,0x00,0x66,0x66,0x66,0x66,0x6c,0x60,0x60,0x66,0x66,0x18,0x6c,0x6c,0x60,0x63,0x66,0x66,0x60,0x3c,0x6c,0x66,0x18,0x66,0x3c,0x77,0x66,0x18,0x60,0x30,0x06,0x0c,0x18,0x00,0x66,0x66,0x66,0x60,0x66,0x60,0x18,0x3e,0x66,0x18,0x06,0x6c,0x18,0x6b,0x66,0x66,0x7c,0x3e,0x60,0x06,0x18,0x66,0x3c,0x3e,0x3c,0x3e,0x30,0x18,0x18,0x18,0x00,0xff, 8 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x66,0x18,0x46,0x3f,0x00,0x0c,0x30,0x00,0x00,0x18,0x00,0x18,0x60,0x3c,0x7e,0x7e,0x3c,0x06,0x3c,0x3c,0x18,0x3c,0x3c,0x00,0x18,0x0e,0x00,0x70,0x18,0x3c,0x66,0x7c,0x3c,0x78,0x7e,0x60,0x3c,0x66,0x3c,0x38,0x66,0x7e,0x63,0x66,0x3c,0x60,0x0e,0x66,0x3c,0x18,0x3c,0x18,0x63,0x66,0x18,0x7e,0x3c,0x03,0x3c,0x18,0x00,0x3c,0x3e,0x7c,0x3c,0x3e,0x3c,0x18,0x06,0x66,0x3c,0x06,0x66,0x3c,0x63,0x66,0x3c,0x60,0x06,0x60,0x7c,0x0e,0x3e,0x18,0x36,0x66,0x0c,0x7e,0x0e,0x18,0x70,0x00,0xff, 9 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x18,0x00,0x00,0xff, 10 | }; 11 | 12 | void setup() 13 | { 14 | DDRD = 0b00011100; // set D2-4 to output 15 | for(int i=0; i<16384; i++) WriteByte(0, i); 16 | } 17 | 18 | void loop() 19 | { 20 | Text(15, 15, "Hello, World!!!"); 21 | } 22 | 23 | void Text(byte x, byte y, String str) 24 | { 25 | for(int i=0; i>1; 43 | bitWrite(PORTD, 3, HIGH); bitWrite(PORTD, 3, LOW); 44 | } 45 | bitWrite(PORTD, 4, HIGH); bitWrite(PORTD, 4, LOW); 46 | } 47 | -------------------------------------------------------------------------------- /Minimal-Arduino-VGA/MinimalVGA/asm.S: -------------------------------------------------------------------------------- 1 | #define __SFR_OFFSET 0x00 // set the Special Function Register Offset from 0x20 to 0x00 in order to use the AVR PORT definitions 2 | #include // include PORTB, DDRD, ... symbols for easier register access 3 | 4 | .global TIMER0_COMPA_vect ; define this global to make the Arduino IDE integrate the ISR 5 | 6 | .macro ONECHAR ; Z: address of char data (MSB is fixed, LSB depends on char), X: current VRAM position (one line) 7 | ld ZL, X+ ; 2 ZL = (X), X = X + 1 8 | lpm r21, Z ; 3 get font byte from program memory for current chr on current line 9 | out PORTD, r21 ; 1 put data to shift register 10 | out PORTB, r19 ; 1 /PE LOW (next CLOCK will load pixel data) 11 | out PORTB, r18 ; 1 /PE HIGH (now CLOCK will pump out the pixels) 12 | .endm 13 | 14 | ; ******************************************************************* 15 | ; ***** ***** 16 | ; ***** Assembler routine sending out pixel data for a scanline ***** 17 | ; ***** ***** 18 | ; ******************************************************************* 19 | TIMER0_COMPA_vect: ; ISR table entry is automatically generated by the AVR assembler 20 | push r1 ; save r1 and r0 (the compiler needs this) 21 | push r0 22 | in r0, SREG ; reads the AVR status register SREG 0x3f holding the complete flag state 23 | push r0 ; push it on the stack, too 24 | eor r1, r1 ; r1: 0 25 | 26 | push r18 ; save content, so we can use it 27 | 28 | lds r18, TCNT2 ; timer TCNT2 jitter compensation 29 | cpi r18, 4 30 | breq .+8 31 | cpi r18, 3 32 | breq .+6 33 | cpi r18, 2 34 | breq .+4 35 | nop 36 | nop 37 | nop 38 | 39 | cbi PORTB, 4 ; start of sync pulse 40 | 41 | push r19 42 | push r20 43 | push r21 44 | push r22 45 | push r23 46 | push r24 47 | push r25 48 | push r26 49 | push r27 50 | push r30 51 | push r31 52 | 53 | lds r20, vline ; load vline to r20-21 54 | lds r21, vline+1 55 | movw r24, r20 ; copy register pair 56 | adiw r24, 1 ; increment vline by 1 57 | sts vline+1, r25 ; store vline 58 | sts vline, r24 59 | asr r21 ; divide vline by 2 and subtract 30 60 | ror r20 61 | subi r20, 30 ; r20: pixel line "lin" 62 | 63 | sbi PORTB, 4 ; end of sync pulse (after 2,5µ, should be 3,8µs but this buys valuable time here) 64 | 65 | mov r21, r20 ; calculate VRAM row address from lin 66 | lsr r21 67 | lsr r21 68 | lsr r21 ; lin>>3 69 | 70 | ldi r25, 40 71 | mul r25, r21 ; calculate * 40 => result is in r0-1 72 | movw r30, r0 ; r30-31 (Z): index of VRAM row 73 | eor r1, r1 ; r1: 0 74 | 75 | ldi XL, lo8(vram) 76 | ldi XH, hi8(vram) 77 | add XH, ZH ; add VRAM row index to VRAM start address 78 | add XL, ZL 79 | adc XH, r1 ; r26-27 (X): VRAM row address 80 | 81 | mov r21, r20 ; get lin 82 | andi r21, 7 ; only use lowest 3 bits of lin to determin charset line 83 | 84 | ldi ZH, hi8(charset); charset must be aligned to 256 bytes 85 | add ZH, r21 ; ZH: MSB of charset line address 86 | 87 | ldi r18, 0x18 ; different /PE states 88 | ldi r19, 0x10 89 | 90 | cpi r20, 200 91 | brcs drawPixels 92 | jmp regHandler 93 | 94 | drawPixels: ldi r21, 20 ; shifts screen left BUT BE CAREFUL: if routine takes too long, it won't fit into a scanline! 95 | wait: dec r21 96 | brne wait 97 | 98 | ONECHAR 99 | ONECHAR 100 | ONECHAR 101 | ONECHAR 102 | ONECHAR 103 | ONECHAR 104 | ONECHAR 105 | ONECHAR 106 | ONECHAR 107 | ONECHAR 108 | 109 | ONECHAR 110 | ONECHAR 111 | ONECHAR 112 | ONECHAR 113 | ONECHAR 114 | ONECHAR 115 | ONECHAR 116 | ONECHAR 117 | ONECHAR 118 | ONECHAR 119 | 120 | ONECHAR 121 | ONECHAR 122 | ONECHAR 123 | ONECHAR 124 | ONECHAR 125 | ONECHAR 126 | ONECHAR 127 | ONECHAR 128 | ONECHAR 129 | ONECHAR 130 | 131 | ONECHAR 132 | ONECHAR 133 | ONECHAR 134 | ONECHAR 135 | ONECHAR 136 | ONECHAR 137 | ONECHAR 138 | ONECHAR 139 | ONECHAR 140 | ONECHAR 141 | 142 | regHandler: pop r31 143 | pop r30 144 | pop r27 145 | pop r26 146 | pop r25 147 | pop r24 148 | pop r23 149 | pop r22 150 | pop r21 151 | pop r20 152 | pop r19 153 | pop r18 154 | pop r0 ; restore the AVR status register SREG 0x3f value 155 | out SREG, r0 ; set the SREG back to what it was 156 | pop r0 ; restore r0, r1 157 | pop r1 158 | reti ; return from interrupt 159 | -------------------------------------------------------------------------------- /Arduino-PS2-Keyboard-Reader/ArduinoPS2Keyboard/ArduinoPS2Keyboard.ino: -------------------------------------------------------------------------------- 1 | // *********************************************************************** 2 | // ***** EASY ARDUINO PS/2 KEYBOARD READ OUT by Carsten Herting 2020 ***** 3 | // *********************************************************************** 4 | // See end of file for license information. 5 | 6 | // Lookup table (in: SHIFT state and PS2 scancode => out: desired ASCII code) change for your country 7 | // QWERTZ layout 8 | char ScancodeToASCII[2][128] = { 9 | { 0,0,0,0,0,0,0,0, 0,0,0,0,0,9,94,0, 0,0,0,0,0,113,49,0, 0,0,121,115,97,119,50,0, // w/o SHIFT or ALT(GR) 10 | 0,99,120,100,101,52,51,0,0,32,118,102,116,114,53,0,0,110,98,104,103,122,54,0,0,0,109,106,117,55,56,0, 11 | 0,44,107,105,111,48,57,0,0,46,45,108,148,112,0,0, 0,0,132,0,129,96,0,0, 0,0,10,43,0,35,0,0, 12 | 0,60,0,0,0,0,8,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,27,0, 0,0,0,0,0,0,0,0 }, 13 | { 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,248,0, 0,0,0,0,0,81,33,0, 0,0,89,83,65,87,34,0, // with SHIFT 14 | 0,67,88,68,69,36,0,0, 0,0,86,70,84,82,37,0, 0,78,66,72,71,90,38,0, 0,0,77,74,85,47,40,0, 15 | 0,59,75,73,79,61,41,0, 0,58,95,76,153,80,63,0, 0,0,142,0,154,0,0,0, 0,0,0,42,0,39,0,0, 16 | 0,62,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0 } }; 17 | 18 | // QWERTY layout 19 | /* 20 | char ScancodeToASCII[2][128] = { 21 | { 0,0,0,0,0,27,27,0, 0,0,0,0,0,9,96,0, 0,0,0,0,0,113,49,0, 0,0,122,115,97,119,50,0, // w/o SHIFT or ALT(GR) 22 | 0,99,120,100,101,52,51,0,0,32,118,102,116,114,53,0,0,110,98,104,103,121,54,0,0,0,109,106,117,55,56,0, 23 | 0,44,107,105,111,48,57,0,0,46,47,108,59,112,45,0, 0,0,39,0,91,61,0,0, 0,0,10,93,0,124,0,0, 24 | 0,60,0,0,0,0,8,0, 0,49,0,52,55,0,0,0, 0,46,50,53,54,56,27,0, 0,43,51,45,42,57,0,0 }, 25 | { 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,126,0, 0,0,0,0,0,81,33,0, 0,0,90,83,65,87,64,35, // with SHIFT 26 | 0,67,88,68,69,36,35,0, 0,32,86,70,84,82,37,0, 0,78,66,72,71,89,94,0, 0,0,77,74,85,38,42,0, 27 | 0,60,75,73,79,41,40,0, 0,62,63,76,58,80,95,0, 0,0,34,0,123,43,0,0, 0,0,0,125,0,92,0,0, 28 | 0,62,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0 } }; 29 | */ 30 | 31 | void setup() 32 | { 33 | noInterrupts(); 34 | PCICR = 0b00000010; // enable Port C pin change interrupt PCI "PCINT1" 35 | PCMSK1 = 0b00010000; // unmask Pin A4 pin change interrupt PCI 36 | interrupts(); 37 | Serial.begin(9600); 38 | } 39 | 40 | void loop() {} 41 | 42 | ISR(PCINT1_vect) // interrupt service routine 43 | { 44 | int val = 0; 45 | for(int i=0; i<11; i++) 46 | { 47 | while(bitRead(PINC, 4) == true); 48 | val |= bitRead(PINC, 3)<>1) & 255; 52 | 53 | static bool shiftIsActive = false; // state of the SHIFT key 54 | static bool nextIsReleased = false; // indicating that the next key was released 55 | 56 | switch (val) 57 | { 58 | case 18: case 89: shiftIsActive = !nextIsReleased; nextIsReleased = false; break; // SHIFT LEFT, SHIFT RIGHT 59 | case 240: nextIsReleased = true; break; // key release indicator 60 | default: // any other key 61 | if (!nextIsReleased) // is it a 'key pressed' event? 62 | { 63 | Serial.print(ScancodeToASCII[shiftIsActive][val & 127]); // do lookup raw -> ASCII 64 | } 65 | nextIsReleased = false; 66 | break; 67 | } 68 | PCIFR = 0x02; // clears the PCI flag 1 69 | } 70 | 71 | /* 72 | ------------------------------------------------------------------------------ 73 | This software is available under 2 licenses -- choose whichever you prefer. 74 | ------------------------------------------------------------------------------ 75 | ALTERNATIVE A - MIT License 76 | Copyright (c) 2020 Carsten Herting 77 | Permission is hereby granted, free of charge, to any person obtaining a copy of 78 | this software and associated documentation files (the "Software"), to deal in 79 | the Software without restriction, including without limitation the rights to 80 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 81 | of the Software, and to permit persons to whom the Software is furnished to do 82 | so, subject to the following conditions: 83 | The above copyright notice and this permission notice shall be included in all 84 | copies or substantial portions of the Software. 85 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 86 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 87 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 88 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 89 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 90 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 91 | SOFTWARE. 92 | ------------------------------------------------------------------------------ 93 | ALTERNATIVE B - Public Domain (www.unlicense.org) 94 | This is free and unencumbered software released into the public domain. 95 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute this 96 | software, either in source code form or as a compiled binary, for any purpose, 97 | commercial or non-commercial, and by any means. 98 | In jurisdictions that recognize copyright laws, the author or authors of this 99 | software dedicate any and all copyright interest in the software to the public 100 | domain. We make this dedication for the benefit of the public at large and to 101 | the detriment of our heirs and successors. We intend this dedication to be an 102 | overt act of relinquishment in perpetuity of all present and future rights to 103 | this software under copyright law. 104 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 105 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 106 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 107 | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 108 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 109 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 110 | ------------------------------------------------------------------------------ 111 | */ 112 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # 74HC161 5 | # 6 | DEF 74HC161 U 0 40 Y Y 1 L N 7 | F0 "U" -300 650 50 H V C CNN 8 | F1 "74HC161" -300 -650 50 H V C CNN 9 | F2 "" 0 0 50 H I C CNN 10 | F3 "" 0 0 50 H I C CNN 11 | ALIAS 74LS160 74LS162 74LS163 12 | $FPLIST 13 | DIP?16* 14 | $ENDFPLIST 15 | DRAW 16 | S -300 600 300 -600 1 1 10 f 17 | X ~MR 1 -500 -500 200 R 50 50 1 0 I 18 | X CET 10 -500 -200 200 R 50 50 1 0 I 19 | X Q3 11 500 200 200 L 50 50 1 0 O 20 | X Q2 12 500 300 200 L 50 50 1 0 O 21 | X Q1 13 500 400 200 L 50 50 1 0 O 22 | X Q0 14 500 500 200 L 50 50 1 0 O 23 | X TC 15 500 0 200 L 50 50 1 0 O 24 | X VCC 16 0 800 200 D 50 50 1 0 W 25 | X CP 2 -500 -300 200 R 50 50 1 0 I 26 | X D0 3 -500 500 200 R 50 50 1 0 I 27 | X D1 4 -500 400 200 R 50 50 1 0 I 28 | X D2 5 -500 300 200 R 50 50 1 0 I 29 | X D3 6 -500 200 200 R 50 50 1 0 I 30 | X CEP 7 -500 -100 200 R 50 50 1 0 I 31 | X GND 8 0 -800 200 U 50 50 1 0 W 32 | X ~PE 9 -500 0 200 R 50 50 1 0 I 33 | ENDDRAW 34 | ENDDEF 35 | # 36 | # 74HC165 37 | # 38 | DEF 74HC165 U 0 40 Y Y 1 L N 39 | F0 "U" -300 750 50 H V C CNN 40 | F1 "74HC165" -300 -850 50 H V C CNN 41 | F2 "" 0 0 50 H I C CNN 42 | F3 "" 0 0 50 H I C CNN 43 | $FPLIST 44 | DIP?16* 45 | $ENDFPLIST 46 | DRAW 47 | S -300 700 300 -800 1 1 10 f 48 | X ~PL 1 500 -500 200 L 50 50 1 0 I 49 | X DS 10 -500 600 200 R 50 50 1 0 I 50 | X D0 11 -500 500 200 R 50 50 1 0 I 51 | X D1 12 -500 400 200 R 50 50 1 0 I 52 | X D2 13 -500 300 200 R 50 50 1 0 I 53 | X D3 14 -500 200 200 R 50 50 1 0 I 54 | X ~CE 15 500 -700 200 L 50 50 1 0 I 55 | X VCC 16 0 900 200 D 50 50 1 0 W 56 | X CP 2 500 -600 200 L 50 50 1 0 I 57 | X D4 3 -500 100 200 R 50 50 1 0 I 58 | X D5 4 -500 0 200 R 50 50 1 0 I 59 | X D6 5 -500 -100 200 R 50 50 1 0 I 60 | X D7 6 -500 -200 200 R 50 50 1 0 I 61 | X ~Q7 7 500 500 200 L 50 50 1 0 O 62 | X GND 8 0 -1000 200 U 50 50 1 0 W 63 | X Q7 9 500 600 200 L 50 50 1 0 O 64 | ENDDRAW 65 | ENDDEF 66 | # 67 | # 74HC173 68 | # 69 | DEF 74HC173 U 0 40 Y Y 1 L N 70 | F0 "U" -300 750 50 H V C CNN 71 | F1 "74HC173" -300 -750 50 H V C CNN 72 | F2 "" 0 0 50 H I C CNN 73 | F3 "" 0 0 50 H I C CNN 74 | $FPLIST 75 | DIP?16* 76 | $ENDFPLIST 77 | DRAW 78 | S -300 700 300 -700 1 1 10 f 79 | X Oe1 1 -500 100 200 R 50 50 1 0 I I 80 | X E2 10 -500 -300 200 R 50 50 1 0 I I 81 | X D3 11 -500 300 200 R 50 50 1 0 I 82 | X D2 12 -500 400 200 R 50 50 1 0 I 83 | X D1 13 -500 500 200 R 50 50 1 0 I 84 | X D0 14 -500 600 200 R 50 50 1 0 I 85 | X Mr 15 -500 -600 200 R 50 50 1 0 I 86 | X VCC 16 0 900 200 D 50 50 1 0 W 87 | X Oe2 2 -500 0 200 R 50 50 1 0 I I 88 | X Q0 3 500 600 200 L 50 50 1 0 T 89 | X Q1 4 500 500 200 L 50 50 1 0 T 90 | X Q2 5 500 400 200 L 50 50 1 0 T 91 | X Q3 6 500 300 200 L 50 50 1 0 T 92 | X Cp 7 -500 -400 200 R 50 50 1 0 I C 93 | X GND 8 0 -900 200 U 50 50 1 0 W 94 | X E1 9 -500 -200 200 R 50 50 1 0 I I 95 | ENDDRAW 96 | ENDDEF 97 | # 98 | # 74HC245 99 | # 100 | DEF 74HC245 U 0 40 Y Y 1 L N 101 | F0 "U" 0 -250 50 V V C CNN 102 | F1 "74HC245" 0 100 50 V V C CNN 103 | F2 "" 0 0 50 H I C CNN 104 | F3 "" 0 0 50 H I C CNN 105 | $FPLIST 106 | DIP?20* 107 | $ENDFPLIST 108 | DRAW 109 | S -300 600 300 -600 1 1 10 f 110 | X A->B 1 -500 -400 200 R 50 50 1 0 I 111 | X GND 10 0 -800 200 U 50 50 1 0 W 112 | X B7 11 500 -200 200 L 50 50 1 0 T 113 | X B6 12 500 -100 200 L 50 50 1 0 T 114 | X B5 13 500 0 200 L 50 50 1 0 T 115 | X B4 14 500 100 200 L 50 50 1 0 T 116 | X B3 15 500 200 200 L 50 50 1 0 T 117 | X B2 16 500 300 200 L 50 50 1 0 T 118 | X B1 17 500 400 200 L 50 50 1 0 T 119 | X B0 18 500 500 200 L 50 50 1 0 T 120 | X CE 19 -500 -500 200 R 50 50 1 0 I I 121 | X A0 2 -500 500 200 R 50 50 1 0 T 122 | X VCC 20 0 800 200 D 50 50 1 0 W 123 | X A1 3 -500 400 200 R 50 50 1 0 T 124 | X A2 4 -500 300 200 R 50 50 1 0 T 125 | X A3 5 -500 200 200 R 50 50 1 0 T 126 | X A4 6 -500 100 200 R 50 50 1 0 T 127 | X A5 7 -500 0 200 R 50 50 1 0 T 128 | X A6 8 -500 -100 200 R 50 50 1 0 T 129 | X A7 9 -500 -200 200 R 50 50 1 0 T 130 | ENDDRAW 131 | ENDDEF 132 | # 133 | # 74HC32 134 | # 135 | DEF 74HC32 U 0 40 Y Y 5 L N 136 | F0 "U" 0 50 50 H V C CNN 137 | F1 "74HC32" 0 -50 50 H V C CNN 138 | F2 "" 0 0 50 H I C CNN 139 | F3 "" 0 0 50 H I C CNN 140 | $FPLIST 141 | DIP?14* 142 | $ENDFPLIST 143 | DRAW 144 | A -360 0 258 354 -354 1 1 10 N -150 150 -150 -150 145 | A -47 -52 204 150 837 1 1 10 f 150 0 -24 150 146 | A -47 52 204 -150 -837 1 1 10 f 150 0 -24 -150 147 | A -360 0 258 354 -354 2 1 10 N -150 150 -150 -150 148 | A -47 -52 204 150 837 2 1 10 f 150 0 -24 150 149 | A -47 52 204 -150 -837 2 1 10 f 150 0 -24 -150 150 | A -360 0 258 354 -354 3 1 10 N -150 150 -150 -150 151 | A -47 -52 204 150 837 3 1 10 f 150 0 -24 150 152 | A -47 52 204 -150 -837 3 1 10 f 150 0 -24 -150 153 | A -360 0 258 354 -354 4 1 10 N -150 150 -150 -150 154 | A -47 -52 204 150 837 4 1 10 f 150 0 -24 150 155 | A -47 52 204 -150 -837 4 1 10 f 150 0 -24 -150 156 | A 0 0 150 -899 899 1 2 10 f 0 -150 0 150 157 | A 0 0 150 -899 899 2 2 10 f 0 -150 0 150 158 | A 0 0 150 -899 899 3 2 10 f 0 -150 0 150 159 | A 0 0 150 -899 899 4 2 10 f 0 -150 0 150 160 | S -200 300 200 -300 5 1 10 f 161 | P 2 1 1 10 -150 -150 -25 -150 f 162 | P 2 1 1 10 -150 150 -25 150 f 163 | P 12 1 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 164 | P 2 2 1 10 -150 -150 -25 -150 f 165 | P 2 2 1 10 -150 150 -25 150 f 166 | P 12 2 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 167 | P 2 3 1 10 -150 -150 -25 -150 f 168 | P 2 3 1 10 -150 150 -25 150 f 169 | P 12 3 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 170 | P 2 4 1 10 -150 -150 -25 -150 f 171 | P 2 4 1 10 -150 150 -25 150 f 172 | P 12 4 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 173 | P 4 1 2 10 0 150 -150 150 -150 -150 0 -150 f 174 | P 4 2 2 10 0 150 -150 150 -150 -150 0 -150 f 175 | P 4 3 2 10 0 150 -150 150 -150 -150 0 -150 f 176 | P 4 4 2 10 0 150 -150 150 -150 -150 0 -150 f 177 | X VCC 14 0 500 200 D 50 50 5 0 W 178 | X GND 7 0 -500 200 U 50 50 5 0 W 179 | X ~ 1 -300 100 170 R 50 50 1 1 I 180 | X ~ 2 -300 -100 170 R 50 50 1 1 I 181 | X ~ 3 300 0 150 L 50 50 1 1 O 182 | X ~ 4 -300 100 170 R 50 50 2 1 I 183 | X ~ 5 -300 -100 170 R 50 50 2 1 I 184 | X ~ 6 300 0 150 L 50 50 2 1 O 185 | X ~ 10 -300 -100 170 R 50 50 3 1 I 186 | X ~ 8 300 0 150 L 50 50 3 1 O 187 | X ~ 9 -300 100 170 R 50 50 3 1 I 188 | X ~ 11 300 0 150 L 50 50 4 1 O 189 | X ~ 12 -300 100 170 R 50 50 4 1 I 190 | X ~ 13 -300 -100 170 R 50 50 4 1 I 191 | X ~ 1 -300 100 150 R 50 50 1 2 I I 192 | X ~ 2 -300 -100 150 R 50 50 1 2 I I 193 | X ~ 3 300 0 150 L 50 50 1 2 O I 194 | X ~ 4 -300 100 150 R 50 50 2 2 I I 195 | X ~ 5 -300 -100 150 R 50 50 2 2 I I 196 | X ~ 6 300 0 150 L 50 50 2 2 O I 197 | X ~ 10 -300 -100 150 R 50 50 3 2 I I 198 | X ~ 8 300 0 150 L 50 50 3 2 O I 199 | X ~ 9 -300 100 150 R 50 50 3 2 I I 200 | X ~ 11 300 0 150 L 50 50 4 2 O I 201 | X ~ 12 -300 100 150 R 50 50 4 2 I I 202 | X ~ 13 -300 -100 150 R 50 50 4 2 I I 203 | ENDDRAW 204 | ENDDEF 205 | # 206 | # CY62256 207 | # 208 | DEF CY62256 U 0 40 Y Y 1 F N 209 | F0 "U" 0 400 50 V V C CNN 210 | F1 "CY62256" 0 0 50 V V C CNN 211 | F2 "" 0 0 50 H I C CNN 212 | F3 "" 0 0 50 H I C CNN 213 | DRAW 214 | S -400 950 400 -650 0 1 0 f 215 | X A5 1 -500 -50 100 R 50 50 1 1 I 216 | X A14 10 -500 850 100 R 50 50 1 1 I 217 | X I/O0 11 500 400 100 L 50 50 1 1 B 218 | X I/O1 12 500 300 100 L 50 50 1 1 B 219 | X I/O2 13 500 200 100 L 50 50 1 1 B 220 | X GND 14 500 -550 100 L 50 50 1 1 W 221 | X I/O3 15 500 100 100 L 50 50 1 1 B 222 | X I/O4 16 500 0 100 L 50 50 1 1 B 223 | X I/O5 17 500 -100 100 L 50 50 1 1 B 224 | X I/O6 18 500 -200 100 L 50 50 1 1 B 225 | X I/O7 19 500 -300 100 L 50 50 1 1 B 226 | X A6 2 -500 50 100 R 50 50 1 1 I 227 | X ~CE 20 500 550 100 L 50 50 1 1 I 228 | X A0 21 -500 -550 100 R 50 50 1 1 I 229 | X ~OE 22 500 650 100 L 50 50 1 1 I 230 | X A1 23 -500 -450 100 R 50 50 1 1 I 231 | X A2 24 -500 -350 100 R 50 50 1 1 I 232 | X A3 25 -500 -250 100 R 50 50 1 1 I 233 | X A4 26 -500 -150 100 R 50 50 1 1 I 234 | X ~WE 27 500 750 100 L 50 50 1 1 I 235 | X VCC 28 500 850 100 L 50 50 1 1 W 236 | X A7 3 -500 150 100 R 50 50 1 1 I 237 | X A8 4 -500 250 100 R 50 50 1 1 I 238 | X A9 5 -500 350 100 R 50 50 1 1 I 239 | X A10 6 -500 450 100 R 50 50 1 1 I 240 | X A11 7 -500 550 100 R 50 50 1 1 I 241 | X A12 8 -500 650 100 R 50 50 1 1 I 242 | X A13 9 -500 750 100 R 50 50 1 1 I 243 | ENDDRAW 244 | ENDDEF 245 | # 246 | #End Library 247 | -------------------------------------------------------------------------------- /Arduino-VGA/Arduino_VGA_320x480_v1.00/Arduino_VGA_320x480_v1.00.ino: -------------------------------------------------------------------------------- 1 | // set Arduino Nano FuseA from default 0xff to 0xbf (enabling output of 16MHz CLKO on pin 8) 2 | 3 | //#include // not needed 4 | #pragma GCC optimize ("O2") 5 | 6 | /* 7 | 80 91 b2 00 lds r24, 0x00B2 ; 2 cycles, TCNT2 8 | 85 30 cpi r24, 0x05 ; 1 cycle 9 | 10 f4 brcc .+4 ; 1 cycle and 2 cycles if branching 10 | 88 e1 ldi r24, 0x18 ; 1 cycle 11 | 85 b9 out 0x05, r24 ; 1 cycle, PORTB 12 | 28 e1 ldi r18, 0x18 ; 1 cycle 13 | 25 b9 out 0x05, r18 ; 1 cycle, PORTB 14 | 15 | PORTD = cset[*vrow++]; ; total 8 cycles 16 | 20 81 ld r18, Z ; 2 cycles 17 | dc 01 movw r26, r24 ; 1 cycles 18 | a2 0f add r26, r18 ; 1 cycles 19 | b1 1d adc r27, r1 ; 1 cycles 20 | 2c 91 ld r18, X ; 2 cycles 21 | 2b b9 out 0x0b, r18 ; 1 cycles, PORTD 22 | */ 23 | 24 | int vLine; 25 | byte vram[25][40] = { 26 | "Hello, World!", 27 | "", 28 | "This is a 16MHz Arduino Nano generating ", 29 | " - 320x480 pixels with 60Hz refresh rate", 30 | " - 40 characters text output per line ", 31 | " - set of 128 characters with 8x8 pixels", 32 | " - writing to the VRAM or doing some I/O", 33 | "", 34 | "0123456789012345678901234567890123456789", 35 | "", 36 | " **** COMMODORE 64 BASIC V2 ****", 37 | "", 38 | " 64K RAM SYSTEM 38911 BASIC BYTES FREE", 39 | "", 40 | "READY.", 41 | }; 42 | 43 | const byte charset[8][128] = { 44 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x66, 0x66, 0x18, 0x62, 0x3c, 0x06, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x18, 0x3c, 0x3c, 0x06, 0x7e, 0x3c, 0x7e, 0x3c, 0x3c, 0x00, 0x00, 0x0e, 0x00, 0x70, 0x3c, 0x00, 0x18, 0x7c, 0x3c, 0x78, 0x7e, 0x7e, 0x3c, 0x66, 0x3c, 0x1e, 0x66, 0x60, 0x63, 0x66, 0x3c, 0x7c, 0x3c, 0x7c, 0x3c, 0x7e, 0x66, 0x66, 0x63, 0x66, 0x66, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x0c, 0x3c, 0x00, 0x00, 45 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x66, 0x66, 0x3e, 0x66, 0x66, 0x0c, 0x18, 0x18, 0x66, 0x18, 0x00, 0x00, 0x00, 0x03, 0x66, 0x18, 0x66, 0x66, 0x0e, 0x60, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x18, 0x00, 0x18, 0x66, 0x00, 0x3c, 0x66, 0x66, 0x6c, 0x60, 0x60, 0x66, 0x66, 0x18, 0x0c, 0x6c, 0x60, 0x77, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x18, 0x66, 0x66, 0x63, 0x66, 0x66, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x60, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x60, 0x18, 0x06, 0x60, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x12, 0x0c, 0x18, 0x10, 46 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x66, 0xff, 0x60, 0x0c, 0x3c, 0x18, 0x30, 0x0c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x06, 0x6e, 0x38, 0x06, 0x06, 0x1e, 0x7c, 0x60, 0x0c, 0x66, 0x66, 0x18, 0x18, 0x30, 0x7e, 0x0c, 0x06, 0x00, 0x66, 0x66, 0x60, 0x66, 0x60, 0x60, 0x60, 0x66, 0x18, 0x0c, 0x78, 0x60, 0x7f, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x60, 0x18, 0x66, 0x66, 0x63, 0x3c, 0x66, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x3c, 0x60, 0x3c, 0x06, 0x3c, 0x18, 0x3e, 0x60, 0x00, 0x00, 0x60, 0x18, 0x66, 0x7c, 0x3c, 0x7c, 0x3e, 0x7c, 0x3e, 0x7e, 0x66, 0x66, 0x63, 0x66, 0x66, 0x7e, 0x30, 0x30, 0x0c, 0x3c, 0x30, 47 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x66, 0x3c, 0x18, 0x38, 0x00, 0x30, 0x0c, 0xff, 0x7e, 0x00, 0x7e, 0x00, 0x0c, 0x76, 0x18, 0x0c, 0x1c, 0x66, 0x06, 0x7c, 0x18, 0x3c, 0x3e, 0x00, 0x00, 0x60, 0x00, 0x06, 0x0c, 0x00, 0x7e, 0x7c, 0x60, 0x66, 0x78, 0x78, 0x6e, 0x7e, 0x18, 0x0c, 0x70, 0x60, 0x6b, 0x7e, 0x66, 0x7c, 0x66, 0x7c, 0x3c, 0x18, 0x66, 0x66, 0x6b, 0x18, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x06, 0x7c, 0x60, 0x3e, 0x66, 0x3e, 0x66, 0x7c, 0x38, 0x06, 0x6c, 0x18, 0x7f, 0x66, 0x66, 0x66, 0x66, 0x66, 0x60, 0x18, 0x66, 0x66, 0x6b, 0x3c, 0x66, 0x0c, 0x30, 0x7c, 0x0c, 0x7e, 0x7f, 48 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x06, 0x30, 0x67, 0x00, 0x30, 0x0c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x18, 0x66, 0x18, 0x30, 0x06, 0x7f, 0x06, 0x66, 0x18, 0x66, 0x06, 0x00, 0x00, 0x30, 0x7e, 0x0c, 0x18, 0x00, 0x66, 0x66, 0x60, 0x66, 0x60, 0x60, 0x66, 0x66, 0x18, 0x0c, 0x78, 0x60, 0x63, 0x6e, 0x66, 0x60, 0x66, 0x78, 0x06, 0x18, 0x66, 0x66, 0x7f, 0x3c, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x3e, 0x66, 0x60, 0x66, 0x7e, 0x18, 0x66, 0x66, 0x18, 0x06, 0x78, 0x18, 0x7f, 0x66, 0x66, 0x66, 0x66, 0x60, 0x3c, 0x18, 0x66, 0x66, 0x7f, 0x18, 0x66, 0x18, 0x30, 0x30, 0x0c, 0x18, 0x7f, 49 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x7c, 0x66, 0x66, 0x00, 0x18, 0x18, 0x66, 0x18, 0x18, 0x00, 0x18, 0x30, 0x66, 0x18, 0x60, 0x66, 0x06, 0x66, 0x66, 0x18, 0x66, 0x66, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00, 0x66, 0x66, 0x66, 0x6c, 0x60, 0x60, 0x66, 0x66, 0x18, 0x6c, 0x6c, 0x60, 0x63, 0x66, 0x66, 0x60, 0x3c, 0x6c, 0x66, 0x18, 0x66, 0x3c, 0x77, 0x66, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x60, 0x66, 0x60, 0x18, 0x3e, 0x66, 0x18, 0x06, 0x6c, 0x18, 0x6b, 0x66, 0x66, 0x7c, 0x3e, 0x60, 0x06, 0x18, 0x66, 0x3c, 0x3e, 0x3c, 0x3e, 0x30, 0x30, 0x62, 0x0c, 0x18, 0x30, 50 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x66, 0x18, 0x46, 0x3f, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x18, 0x00, 0x18, 0x60, 0x3c, 0x7e, 0x7e, 0x3c, 0x06, 0x3c, 0x3c, 0x18, 0x3c, 0x3c, 0x00, 0x18, 0x0e, 0x00, 0x70, 0x18, 0x00, 0x66, 0x7c, 0x3c, 0x78, 0x7e, 0x60, 0x3c, 0x66, 0x3c, 0x38, 0x66, 0x7e, 0x63, 0x66, 0x3c, 0x60, 0x0e, 0x66, 0x3c, 0x18, 0x3c, 0x18, 0x63, 0x66, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3e, 0x7c, 0x3c, 0x3e, 0x3c, 0x18, 0x06, 0x66, 0x3c, 0x06, 0x66, 0x3c, 0x63, 0x66, 0x3c, 0x60, 0x06, 0x60, 0x7c, 0x0e, 0x3e, 0x18, 0x36, 0x66, 0x0c, 0x7e, 0x3c, 0xfc, 0x3c, 0x18, 0x10, 51 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 52 | }; 53 | 54 | int main(void) 55 | { 56 | setup(); 57 | while(true) loop(); 58 | } 59 | 60 | void setup() 61 | { 62 | noInterrupts(); // disable interrupts before messing around with timer registers 63 | //set_sleep_mode(SLEEP_MODE_IDLE); // not needed 64 | 65 | DDRC = 0b11111111; 66 | DDRB = 0b11011101; // pin8: CLKO, pin 10: VSYNC (timer1), pin 11: shift register latch (timer2), pin 12: HSync "by hand" inside ISR 67 | DDRD = 0b11111111; // pins 0-7: parallel output 68 | PORTB = 0b00010000; 69 | PORTD = 0b00000000; 70 | 71 | GTCCR = 0b10000011; // set TSM, PSRSYNC und PSRASY to correlate all 3 timers 72 | 73 | // ************************* 74 | // ***** Timer0: HSYNC ***** 75 | // ************************* 76 | TCNT0 = 0; 77 | TCCR0A = (1< 0.5µs 79 | OCR0A = 63; // compare match register A (TOP) -> 32µs 80 | TIMSK0 = (1< 64µs 88 | OCR1A = 259; // compare match register A (TOP) -> 16.64ms 89 | OCR1B = 0; // compare match register B -> 64µs 90 | TIMSK1 = (1< 62.5ns; 98 | OCR2A = 7; // compare match register A (TOP) -> 250ns 99 | TIMSK2 = 0; // no interrupts here 100 | 101 | GTCCR = 0; // clear TSM => all timers start synchronously 102 | 103 | UCSR0B = 0; // brute-force the USART off just in case... 104 | 105 | interrupts(); 106 | } 107 | 108 | ISR(TIMER0_COMPA_vect) // VSYNC and scanline drawing 109 | { 110 | if (TCNT2 & 1) PORTB = 16; // canceling out interrupt jitter using the fast timer 111 | PORTB = 16; // if branching it takes a cycle longer 112 | 113 | PORTB = 0; // start of HSYNC pulse 114 | PORTD = 0; // prevent trash data from being fed into the shift register 115 | vLine++; // use the time during the pulse to init pointers 116 | byte* vrow = vram[byte((vLine-36)>>4)]; // pointer to the vram row 0...24 to display 117 | byte* cset = charset[byte((vLine-36)>>1) & 0b00000111]; // pointer to the charset line 0..7 to use 118 | __builtin_avr_delay_cycles(36); // should be 49 (3.8µs) but than this routine gets mysteriously unstable, also influences the phase at which data is fed to the shift register 119 | PORTB = 16; // end of HSYNC pulse 120 | 121 | if (vLine >= 36 && vLine < 436) // skip 2 lines (VSYNC pulse) + 33 lines (vertical back porch) 122 | { 123 | TCCR2A &= ~(1< 0.5µs 55 | OCR0A = 63; // compare match register A (TOP) -> 32µs 56 | TIMSK0 = (1 << OCIE0A); // Output Compare Match A Interrupt Enable (not working: TOIE1 with ISR TIMER0_TOIE1_vect because it is already defined by timing functions) 57 | 58 | // ***************************** 59 | // ***** Timer1: VGA VSYNC ***** 60 | // ***************************** 61 | TCNT1 = 0; 62 | TCCR1A = (1 << COM1B1) | (1 << COM1B0) | (1 << WGM11) | (1 << WGM10); // mode 15 (Fast PWM), set OC1B on Compare Match, clear OC1B at BOTTOM, controlling OC1B pin 10 63 | TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS12) | (0 << CS11) | (1 << CS10); // x1024 prescaler -> 64µs 64 | OCR1A = 259; // compare match register A (TOP) -> 16.64ms 65 | OCR1B = 0; // compare match register B -> 64µs 66 | TIMSK1 = (1 << TOIE1); // enable timer overflow interrupt setting vlines = 0 67 | 68 | // ************************************************ 69 | // ***** Timer2: only used for jitter control ***** 70 | // ************************************************ 71 | TCNT2 = 0; 72 | TCCR2A = (0< 62.5ns; 74 | OCR2A = 7; // compare match register A (TOP) -> 250ns 75 | TIMSK2 = 0; // no interrupts here 76 | 77 | GTCCR = 0; // clear TSM => all timers start synchronously 78 | interrupts(); 79 | 80 | UCSR0B = 0; // brute-force the USART off just in case... 81 | } 82 | 83 | int main() { setup(); while (true) loop(); } // enforce main() loop w/o serial handler 84 | 85 | ISR(TIMER1_OVF_vect) { vline = 0; } // timer1 overflow interrupt resets vline at HSYNC 86 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM-cache.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # 74xx_74HC00 5 | # 6 | DEF 74xx_74HC00 U 0 40 Y Y 5 L N 7 | F0 "U" 0 50 50 H V C CNN 8 | F1 "74xx_74HC00" 0 -50 50 H V C CNN 9 | F2 "" 0 0 50 H I C CNN 10 | F3 "" 0 0 50 H I C CNN 11 | ALIAS 74LS37 7400 74HCT00 74HC00 12 | $FPLIST 13 | DIP*W7.62mm* 14 | SO14* 15 | $ENDFPLIST 16 | DRAW 17 | A 0 0 150 -899 899 1 1 10 f 0 -150 0 150 18 | A 0 0 150 -899 899 2 1 10 f 0 -150 0 150 19 | A 0 0 150 -899 899 3 1 10 f 0 -150 0 150 20 | A 0 0 150 -899 899 4 1 10 f 0 -150 0 150 21 | A -360 0 258 354 -354 1 2 10 N -150 150 -150 -150 22 | A -47 -52 204 150 837 1 2 10 f 150 0 -24 150 23 | A -47 52 204 -150 -837 1 2 10 f 150 0 -24 -150 24 | A -360 0 258 354 -354 2 2 10 N -150 150 -150 -150 25 | A -47 -52 204 150 837 2 2 10 f 150 0 -24 150 26 | A -47 52 204 -150 -837 2 2 10 f 150 0 -24 -150 27 | A -360 0 258 354 -354 3 2 10 N -150 150 -150 -150 28 | A -47 -52 204 150 837 3 2 10 f 150 0 -24 150 29 | A -47 52 204 -150 -837 3 2 10 f 150 0 -24 -150 30 | A -360 0 258 354 -354 4 2 10 N -150 150 -150 -150 31 | A -47 -52 204 150 837 4 2 10 f 150 0 -24 150 32 | A -47 52 204 -150 -837 4 2 10 f 150 0 -24 -150 33 | S -200 300 200 -300 5 1 10 f 34 | P 4 1 1 10 0 150 -150 150 -150 -150 0 -150 f 35 | P 4 2 1 10 0 150 -150 150 -150 -150 0 -150 f 36 | P 4 3 1 10 0 150 -150 150 -150 -150 0 -150 f 37 | P 4 4 1 10 0 150 -150 150 -150 -150 0 -150 f 38 | P 2 1 2 10 -150 -150 -25 -150 f 39 | P 2 1 2 10 -150 150 -25 150 f 40 | P 12 1 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 41 | P 2 2 2 10 -150 -150 -25 -150 f 42 | P 2 2 2 10 -150 150 -25 150 f 43 | P 12 2 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 44 | P 2 3 2 10 -150 -150 -25 -150 f 45 | P 2 3 2 10 -150 150 -25 150 f 46 | P 12 3 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 47 | P 2 4 2 10 -150 -150 -25 -150 f 48 | P 2 4 2 10 -150 150 -25 150 f 49 | P 12 4 2 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 50 | X VCC 14 0 500 200 D 50 50 5 0 W 51 | X GND 7 0 -500 200 U 50 50 5 0 W 52 | X ~ 1 -300 100 150 R 50 50 1 1 I 53 | X ~ 2 -300 -100 150 R 50 50 1 1 I 54 | X ~ 3 300 0 150 L 50 50 1 1 O I 55 | X ~ 4 -300 100 150 R 50 50 2 1 I 56 | X ~ 5 -300 -100 150 R 50 50 2 1 I 57 | X ~ 6 300 0 150 L 50 50 2 1 O I 58 | X ~ 10 -300 -100 150 R 50 50 3 1 I 59 | X ~ 8 300 0 150 L 50 50 3 1 O I 60 | X ~ 9 -300 100 150 R 50 50 3 1 I 61 | X ~ 11 300 0 150 L 50 50 4 1 O I 62 | X ~ 12 -300 100 150 R 50 50 4 1 I 63 | X ~ 13 -300 -100 150 R 50 50 4 1 I 64 | X ~ 1 -300 100 170 R 50 50 1 2 I I 65 | X ~ 2 -300 -100 170 R 50 50 1 2 I I 66 | X ~ 3 300 0 150 L 50 50 1 2 O 67 | X ~ 4 -300 100 170 R 50 50 2 2 I I 68 | X ~ 5 -300 -100 170 R 50 50 2 2 I I 69 | X ~ 6 300 0 150 L 50 50 2 2 O 70 | X ~ 10 -300 -100 170 R 50 50 3 2 I I 71 | X ~ 8 300 0 150 L 50 50 3 2 O 72 | X ~ 9 -300 100 170 R 50 50 3 2 I I 73 | X ~ 11 300 0 150 L 50 50 4 2 O 74 | X ~ 12 -300 100 170 R 50 50 4 2 I I 75 | X ~ 13 -300 -100 170 R 50 50 4 2 I I 76 | ENDDRAW 77 | ENDDEF 78 | # 79 | # 74xx_74HC04 80 | # 81 | DEF 74xx_74HC04 U 0 20 Y Y 7 L N 82 | F0 "U" 0 50 50 H V C CNN 83 | F1 "74xx_74HC04" 0 -50 50 H V C CNN 84 | F2 "" 0 0 50 H I C CNN 85 | F3 "" 0 0 50 H I C CNN 86 | ALIAS 74HC04 74HCT04 74AHC04 74AHCT04 87 | $FPLIST 88 | DIP*W7.62mm* 89 | SSOP?14* 90 | TSSOP?14* 91 | $ENDFPLIST 92 | DRAW 93 | S -200 300 200 -300 7 1 10 f 94 | P 4 1 0 10 -150 150 -150 -150 150 0 -150 150 f 95 | P 4 2 0 10 -150 150 -150 -150 150 0 -150 150 f 96 | P 4 3 0 10 -150 150 -150 -150 150 0 -150 150 f 97 | P 4 4 0 10 -150 150 -150 -150 150 0 -150 150 f 98 | P 4 5 0 10 -150 150 -150 -150 150 0 -150 150 f 99 | P 4 6 0 10 -150 150 -150 -150 150 0 -150 150 f 100 | X ~ 1 -300 0 150 R 50 50 1 0 I 101 | X ~ 2 300 0 150 L 50 50 1 0 O I 102 | X ~ 3 -300 0 150 R 50 50 2 0 I 103 | X ~ 4 300 0 150 L 50 50 2 0 O I 104 | X ~ 5 -300 0 150 R 50 50 3 0 I 105 | X ~ 6 300 0 150 L 50 50 3 0 O I 106 | X ~ 8 300 0 150 L 50 50 4 0 O I 107 | X ~ 9 -300 0 150 R 50 50 4 0 I 108 | X ~ 10 300 0 150 L 50 50 5 0 O I 109 | X ~ 11 -300 0 150 R 50 50 5 0 I 110 | X ~ 12 300 0 150 L 50 50 6 0 O I 111 | X ~ 13 -300 0 150 R 50 50 6 0 I 112 | X VCC 14 0 500 200 D 50 50 7 0 W 113 | X GND 7 0 -500 200 U 50 50 7 0 W 114 | ENDDRAW 115 | ENDDEF 116 | # 117 | # 74xx_74HC590 118 | # 119 | DEF 74xx_74HC590 U 0 20 Y Y 1 F N 120 | F0 "U" -300 650 50 H V C CNN 121 | F1 "74xx_74HC590" -300 -550 50 H V C CNN 122 | F2 "" 0 50 50 H I C CNN 123 | F3 "" 0 50 50 H I C CNN 124 | ALIAS 74LS590 74HC590A 125 | $FPLIST 126 | DIP*W7.62mm* 127 | SOIC*3.9x9.9mm*P1.27mm* 128 | TSSOP*4.4x5mm*P0.65mm* 129 | SOIC*5.3x10.2mm*P1.27mm* 130 | SOIC*7.5x10.3mm*P1.27mm* 131 | $ENDFPLIST 132 | DRAW 133 | S -300 600 300 -500 1 1 10 f 134 | X Q1 1 400 400 100 L 50 50 1 0 T 135 | X ~MRC 10 -400 0 100 R 50 50 1 0 I 136 | X CPC 11 -400 300 100 R 50 50 1 0 I 137 | X ~CE 12 -400 500 100 R 50 50 1 0 I 138 | X CPR 13 -400 200 100 R 50 50 1 0 I 139 | X ~OE 14 -400 -200 100 R 50 50 1 0 I 140 | X Q0 15 400 500 100 L 50 50 1 0 T 141 | X VCC 16 0 700 100 D 50 50 1 0 W 142 | X Q2 2 400 300 100 L 50 50 1 0 T 143 | X Q3 3 400 200 100 L 50 50 1 0 T 144 | X Q4 4 400 100 100 L 50 50 1 0 T 145 | X Q5 5 400 0 100 L 50 50 1 0 T 146 | X Q6 6 400 -100 100 L 50 50 1 0 T 147 | X Q7 7 400 -200 100 L 50 50 1 0 T 148 | X GND 8 0 -600 100 U 50 50 1 0 W 149 | X ~RCO 9 400 -400 100 L 50 50 1 0 O 150 | ENDDRAW 151 | ENDDEF 152 | # 153 | # 74xx_74HC595 154 | # 155 | DEF 74xx_74HC595 U 0 20 Y Y 1 F N 156 | F0 "U" -300 550 50 H V C CNN 157 | F1 "74xx_74HC595" -300 -650 50 H V C CNN 158 | F2 "" 0 0 50 H I C CNN 159 | F3 "" 0 0 50 H I C CNN 160 | ALIAS 74LS595 74HCT595 161 | $FPLIST 162 | DIP*W7.62mm* 163 | SOIC*3.9x9.9mm*P1.27mm* 164 | TSSOP*4.4x5mm*P0.65mm* 165 | SOIC*5.3x10.2mm*P1.27mm* 166 | SOIC*7.5x10.3mm*P1.27mm* 167 | $ENDFPLIST 168 | DRAW 169 | S -300 500 300 -600 1 1 10 f 170 | X QB 1 400 300 100 L 50 50 1 0 T 171 | X ~SRCLR 10 -400 100 100 R 50 50 1 0 I 172 | X SRCLK 11 -400 200 100 R 50 50 1 0 I 173 | X RCLK 12 -400 -100 100 R 50 50 1 0 I 174 | X ~OE 13 -400 -200 100 R 50 50 1 0 I 175 | X SER 14 -400 400 100 R 50 50 1 0 I 176 | X QA 15 400 400 100 L 50 50 1 0 T 177 | X VCC 16 0 600 100 D 50 50 1 0 W 178 | X QC 2 400 200 100 L 50 50 1 0 T 179 | X QD 3 400 100 100 L 50 50 1 0 T 180 | X QE 4 400 0 100 L 50 50 1 0 T 181 | X QF 5 400 -100 100 L 50 50 1 0 T 182 | X QG 6 400 -200 100 L 50 50 1 0 T 183 | X QH 7 400 -300 100 L 50 50 1 0 T 184 | X GND 8 0 -700 100 U 50 50 1 0 W 185 | X QH' 9 400 -500 100 L 50 50 1 0 O 186 | ENDDRAW 187 | ENDDEF 188 | # 189 | # Connector_DB15_Female_HighDensity 190 | # 191 | DEF Connector_DB15_Female_HighDensity J 0 40 Y N 1 F N 192 | F0 "J" 0 850 50 H V C CNN 193 | F1 "Connector_DB15_Female_HighDensity" 0 750 50 H V C CNN 194 | F2 "" -950 400 50 H I C CNN 195 | F3 "" -950 400 50 H I C CNN 196 | $FPLIST 197 | DSUB*Female* 198 | $ENDFPLIST 199 | DRAW 200 | C -75 -400 25 0 1 0 N 201 | C -75 -200 25 0 1 0 N 202 | C -75 0 25 0 1 0 N 203 | C -75 200 25 0 1 0 N 204 | C -75 400 25 0 1 0 N 205 | C 0 -300 25 0 1 0 N 206 | C 0 -100 25 0 1 0 N 207 | C 0 100 25 0 1 0 N 208 | C 0 300 25 0 1 0 N 209 | C 0 500 25 0 1 0 N 210 | C 75 -400 25 0 1 0 N 211 | C 75 -200 25 0 1 0 N 212 | C 75 0 25 0 1 0 N 213 | C 75 200 25 0 1 0 N 214 | C 75 400 25 0 1 0 N 215 | P 2 0 1 0 -125 300 -25 300 N 216 | P 2 0 1 0 -25 -300 -125 -300 N 217 | P 2 0 1 0 -25 -100 -125 -100 N 218 | P 2 0 1 0 -25 100 -125 100 N 219 | P 2 0 1 0 -25 500 -125 500 N 220 | P 5 0 1 10 -150 700 -150 -600 150 -500 150 600 -150 700 f 221 | X ~ 1 -300 400 200 R 50 50 1 1 P 222 | X ~ 10 -300 -300 200 R 50 50 1 1 P 223 | X ~ 11 300 400 200 L 50 50 1 1 P 224 | X ~ 12 300 200 200 L 50 50 1 1 P 225 | X ~ 13 300 0 200 L 50 50 1 1 P 226 | X ~ 14 300 -200 200 L 50 50 1 1 P 227 | X ~ 15 300 -400 200 L 50 50 1 1 P 228 | X ~ 2 -300 200 200 R 50 50 1 1 P 229 | X ~ 3 -300 0 200 R 50 50 1 1 P 230 | X ~ 4 -300 -200 200 R 50 50 1 1 P 231 | X ~ 5 -300 -400 200 R 50 50 1 1 P 232 | X ~ 6 -300 500 200 R 50 50 1 1 P 233 | X ~ 7 -300 300 200 R 50 50 1 1 P 234 | X ~ 8 -300 100 200 R 50 50 1 1 P 235 | X ~ 9 -300 -100 200 R 50 50 1 1 P 236 | ENDDRAW 237 | ENDDEF 238 | # 239 | # Device_R 240 | # 241 | DEF Device_R R 0 0 N Y 1 F N 242 | F0 "R" 80 0 50 V V C CNN 243 | F1 "Device_R" 0 0 50 V V C CNN 244 | F2 "" -70 0 50 V I C CNN 245 | F3 "" 0 0 50 H I C CNN 246 | $FPLIST 247 | R_* 248 | $ENDFPLIST 249 | DRAW 250 | S -40 -100 40 100 0 1 10 N 251 | X ~ 1 0 150 50 D 50 50 1 1 P 252 | X ~ 2 0 -150 50 U 50 50 1 1 P 253 | ENDDRAW 254 | ENDDEF 255 | # 256 | # MCU_Module_Arduino_Nano_v3.x 257 | # 258 | DEF MCU_Module_Arduino_Nano_v3.x A 0 20 Y Y 1 F N 259 | F0 "A" -400 925 50 H V L BNN 260 | F1 "MCU_Module_Arduino_Nano_v3.x" 200 -950 50 H V L TNN 261 | F2 "Module:Arduino_Nano" 0 0 50 H I C CIN 262 | F3 "" 0 0 50 H I C CNN 263 | ALIAS Arduino_Nano_v3.x 264 | $FPLIST 265 | Arduino*Nano* 266 | $ENDFPLIST 267 | DRAW 268 | S -400 900 400 -900 0 1 10 f 269 | X D1/TX 1 -500 500 100 R 50 50 1 1 B 270 | X D7 10 -500 -100 100 R 50 50 1 1 B 271 | X D8 11 -500 -200 100 R 50 50 1 1 B 272 | X D9 12 -500 -300 100 R 50 50 1 1 B 273 | X D10 13 -500 -400 100 R 50 50 1 1 B 274 | X D11 14 -500 -500 100 R 50 50 1 1 B 275 | X D12 15 -500 -600 100 R 50 50 1 1 B 276 | X D13 16 -500 -700 100 R 50 50 1 1 B 277 | X 3V3 17 100 1000 100 D 50 50 1 1 w 278 | X AREF 18 500 200 100 L 50 50 1 1 I 279 | X A0 19 500 0 100 L 50 50 1 1 B 280 | X D0/RX 2 -500 600 100 R 50 50 1 1 B 281 | X A1 20 500 -100 100 L 50 50 1 1 B 282 | X A2 21 500 -200 100 L 50 50 1 1 B 283 | X A3 22 500 -300 100 L 50 50 1 1 B 284 | X A4 23 500 -400 100 L 50 50 1 1 B 285 | X A5 24 500 -500 100 L 50 50 1 1 B 286 | X A6 25 500 -600 100 L 50 50 1 1 B 287 | X A7 26 500 -700 100 L 50 50 1 1 B 288 | X +5V 27 200 1000 100 D 50 50 1 1 w 289 | X ~RESET 28 500 600 100 L 50 50 1 1 I 290 | X GND 29 100 -1000 100 U 50 50 1 1 W 291 | X ~RESET 3 500 500 100 L 50 50 1 1 I 292 | X VIN 30 -100 1000 100 D 50 50 1 1 W 293 | X GND 4 0 -1000 100 U 50 50 1 1 W 294 | X D2 5 -500 400 100 R 50 50 1 1 B 295 | X D3 6 -500 300 100 R 50 50 1 1 B 296 | X D4 7 -500 200 100 R 50 50 1 1 B 297 | X D5 8 -500 100 100 R 50 50 1 1 B 298 | X D6 9 -500 0 100 R 50 50 1 1 B 299 | ENDDRAW 300 | ENDDEF 301 | # 302 | # Oscillator_ACO-xxxMHz 303 | # 304 | DEF Oscillator_ACO-xxxMHz X 0 10 Y Y 1 F N 305 | F0 "X" -200 250 50 H V L CNN 306 | F1 "Oscillator_ACO-xxxMHz" 50 -250 50 H V L CNN 307 | F2 "Oscillator:Oscillator_DIP-14" 450 -350 50 H I C CNN 308 | F3 "" -100 0 50 H I C CNN 309 | ALIAS ACO-xxxMHz GTXO-S14T TCXO-14 310 | $FPLIST 311 | Oscillator*DIP*14* 312 | $ENDFPLIST 313 | DRAW 314 | S -200 200 200 -200 0 1 10 f 315 | P 9 0 1 0 -100 -25 -75 -25 -75 25 -50 25 -50 -25 -25 -25 -25 25 0 25 0 -25 N 316 | X NC 1 -300 0 100 R 50 50 1 1 N N 317 | X Vcc 14 0 300 100 D 50 50 1 1 W 318 | X GND 7 0 -300 100 U 50 50 1 1 W 319 | X OUT 8 300 0 100 L 50 50 1 1 O 320 | ENDDRAW 321 | ENDDEF 322 | # 323 | # VideoRAM-rescue_74HC245-8-Bit_CPU_32k 324 | # 325 | DEF VideoRAM-rescue_74HC245-8-Bit_CPU_32k U 0 40 Y Y 1 L N 326 | F0 "U" 0 -250 50 V V C CNN 327 | F1 "VideoRAM-rescue_74HC245-8-Bit_CPU_32k" 0 100 50 V V C CNN 328 | F2 "" 0 0 50 H I C CNN 329 | F3 "" 0 0 50 H I C CNN 330 | $FPLIST 331 | DIP?20* 332 | $ENDFPLIST 333 | DRAW 334 | S -300 600 300 -600 1 1 10 f 335 | X A->B 1 -500 -400 200 R 50 50 1 0 I 336 | X GND 10 0 -800 200 U 50 50 1 0 W 337 | X B7 11 500 -200 200 L 50 50 1 0 T 338 | X B6 12 500 -100 200 L 50 50 1 0 T 339 | X B5 13 500 0 200 L 50 50 1 0 T 340 | X B4 14 500 100 200 L 50 50 1 0 T 341 | X B3 15 500 200 200 L 50 50 1 0 T 342 | X B2 16 500 300 200 L 50 50 1 0 T 343 | X B1 17 500 400 200 L 50 50 1 0 T 344 | X B0 18 500 500 200 L 50 50 1 0 T 345 | X CE 19 -500 -500 200 R 50 50 1 0 I I 346 | X A0 2 -500 500 200 R 50 50 1 0 T 347 | X VCC 20 0 800 200 D 50 50 1 0 W 348 | X A1 3 -500 400 200 R 50 50 1 0 T 349 | X A2 4 -500 300 200 R 50 50 1 0 T 350 | X A3 5 -500 200 200 R 50 50 1 0 T 351 | X A4 6 -500 100 200 R 50 50 1 0 T 352 | X A5 7 -500 0 200 R 50 50 1 0 T 353 | X A6 8 -500 -100 200 R 50 50 1 0 T 354 | X A7 9 -500 -200 200 R 50 50 1 0 T 355 | ENDDRAW 356 | ENDDEF 357 | # 358 | # VideoRAM-rescue_74HC32-8-Bit_CPU_32k 359 | # 360 | DEF VideoRAM-rescue_74HC32-8-Bit_CPU_32k U 0 40 Y Y 5 L N 361 | F0 "U" 0 50 50 H V C CNN 362 | F1 "VideoRAM-rescue_74HC32-8-Bit_CPU_32k" 0 -50 50 H V C CNN 363 | F2 "" 0 0 50 H I C CNN 364 | F3 "" 0 0 50 H I C CNN 365 | $FPLIST 366 | DIP?14* 367 | $ENDFPLIST 368 | DRAW 369 | A -360 0 258 354 -354 1 1 10 N -150 150 -150 -150 370 | A -47 -52 204 150 837 1 1 10 f 150 0 -24 150 371 | A -47 52 204 -150 -837 1 1 10 f 150 0 -24 -150 372 | A -360 0 258 354 -354 2 1 10 N -150 150 -150 -150 373 | A -47 -52 204 150 837 2 1 10 f 150 0 -24 150 374 | A -47 52 204 -150 -837 2 1 10 f 150 0 -24 -150 375 | A -360 0 258 354 -354 3 1 10 N -150 150 -150 -150 376 | A -47 -52 204 150 837 3 1 10 f 150 0 -24 150 377 | A -47 52 204 -150 -837 3 1 10 f 150 0 -24 -150 378 | A -360 0 258 354 -354 4 1 10 N -150 150 -150 -150 379 | A -47 -52 204 150 837 4 1 10 f 150 0 -24 150 380 | A -47 52 204 -150 -837 4 1 10 f 150 0 -24 -150 381 | A 0 0 150 -899 899 1 2 10 f 0 -150 0 150 382 | A 0 0 150 -899 899 2 2 10 f 0 -150 0 150 383 | A 0 0 150 -899 899 3 2 10 f 0 -150 0 150 384 | A 0 0 150 -899 899 4 2 10 f 0 -150 0 150 385 | S -200 300 200 -300 5 1 10 f 386 | P 2 1 1 10 -150 -150 -25 -150 f 387 | P 2 1 1 10 -150 150 -25 150 f 388 | P 12 1 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 389 | P 2 2 1 10 -150 -150 -25 -150 f 390 | P 2 2 1 10 -150 150 -25 150 f 391 | P 12 2 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 392 | P 2 3 1 10 -150 -150 -25 -150 f 393 | P 2 3 1 10 -150 150 -25 150 f 394 | P 12 3 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 395 | P 2 4 1 10 -150 -150 -25 -150 f 396 | P 2 4 1 10 -150 150 -25 150 f 397 | P 12 4 1 -1000 -25 150 -150 150 -150 150 -140 134 -119 89 -106 41 -103 -10 -109 -59 -125 -107 -150 -150 -150 -150 -25 -150 f 398 | P 4 1 2 10 0 150 -150 150 -150 -150 0 -150 f 399 | P 4 2 2 10 0 150 -150 150 -150 -150 0 -150 f 400 | P 4 3 2 10 0 150 -150 150 -150 -150 0 -150 f 401 | P 4 4 2 10 0 150 -150 150 -150 -150 0 -150 f 402 | X VCC 14 0 500 200 D 50 50 5 0 W 403 | X GND 7 0 -500 200 U 50 50 5 0 W 404 | X ~ 1 -300 100 170 R 50 50 1 1 I 405 | X ~ 2 -300 -100 170 R 50 50 1 1 I 406 | X ~ 3 300 0 150 L 50 50 1 1 O 407 | X ~ 4 -300 100 170 R 50 50 2 1 I 408 | X ~ 5 -300 -100 170 R 50 50 2 1 I 409 | X ~ 6 300 0 150 L 50 50 2 1 O 410 | X ~ 10 -300 -100 170 R 50 50 3 1 I 411 | X ~ 8 300 0 150 L 50 50 3 1 O 412 | X ~ 9 -300 100 170 R 50 50 3 1 I 413 | X ~ 11 300 0 150 L 50 50 4 1 O 414 | X ~ 12 -300 100 170 R 50 50 4 1 I 415 | X ~ 13 -300 -100 170 R 50 50 4 1 I 416 | X ~ 1 -300 100 150 R 50 50 1 2 I I 417 | X ~ 2 -300 -100 150 R 50 50 1 2 I I 418 | X ~ 3 300 0 150 L 50 50 1 2 O I 419 | X ~ 4 -300 100 150 R 50 50 2 2 I I 420 | X ~ 5 -300 -100 150 R 50 50 2 2 I I 421 | X ~ 6 300 0 150 L 50 50 2 2 O I 422 | X ~ 10 -300 -100 150 R 50 50 3 2 I I 423 | X ~ 8 300 0 150 L 50 50 3 2 O I 424 | X ~ 9 -300 100 150 R 50 50 3 2 I I 425 | X ~ 11 300 0 150 L 50 50 4 2 O I 426 | X ~ 12 -300 100 150 R 50 50 4 2 I I 427 | X ~ 13 -300 -100 150 R 50 50 4 2 I I 428 | ENDDRAW 429 | ENDDEF 430 | # 431 | # VideoRAM_74HC161 432 | # 433 | DEF VideoRAM_74HC161 U 0 40 Y Y 1 L N 434 | F0 "U" -300 650 50 H V C CNN 435 | F1 "VideoRAM_74HC161" -300 -650 50 H V C CNN 436 | F2 "" 0 0 50 H I C CNN 437 | F3 "" 0 0 50 H I C CNN 438 | ALIAS 74LS160 74LS162 74LS163 439 | $FPLIST 440 | DIP?16* 441 | $ENDFPLIST 442 | DRAW 443 | S -300 600 300 -600 1 1 10 f 444 | X ~MR 1 -500 -500 200 R 50 50 1 0 I 445 | X CET 10 -500 -200 200 R 50 50 1 0 I 446 | X Q3 11 500 200 200 L 50 50 1 0 O 447 | X Q2 12 500 300 200 L 50 50 1 0 O 448 | X Q1 13 500 400 200 L 50 50 1 0 O 449 | X Q0 14 500 500 200 L 50 50 1 0 O 450 | X TC 15 500 0 200 L 50 50 1 0 O 451 | X VCC 16 0 800 200 D 50 50 1 0 W 452 | X CP 2 -500 -300 200 R 50 50 1 0 I 453 | X D0 3 -500 500 200 R 50 50 1 0 I 454 | X D1 4 -500 400 200 R 50 50 1 0 I 455 | X D2 5 -500 300 200 R 50 50 1 0 I 456 | X D3 6 -500 200 200 R 50 50 1 0 I 457 | X CEP 7 -500 -100 200 R 50 50 1 0 I 458 | X GND 8 0 -800 200 U 50 50 1 0 W 459 | X ~PE 9 -500 0 200 R 50 50 1 0 I 460 | ENDDRAW 461 | ENDDEF 462 | # 463 | # VideoRAM_74HC165 464 | # 465 | DEF VideoRAM_74HC165 U 0 40 Y Y 1 L N 466 | F0 "U" -300 750 50 H V C CNN 467 | F1 "VideoRAM_74HC165" -300 -850 50 H V C CNN 468 | F2 "" 0 0 50 H I C CNN 469 | F3 "" 0 0 50 H I C CNN 470 | $FPLIST 471 | DIP?16* 472 | $ENDFPLIST 473 | DRAW 474 | S -300 700 300 -800 1 1 10 f 475 | X ~PL 1 500 -500 200 L 50 50 1 0 I 476 | X DS 10 -500 600 200 R 50 50 1 0 I 477 | X D0 11 -500 500 200 R 50 50 1 0 I 478 | X D1 12 -500 400 200 R 50 50 1 0 I 479 | X D2 13 -500 300 200 R 50 50 1 0 I 480 | X D3 14 -500 200 200 R 50 50 1 0 I 481 | X ~CE 15 500 -700 200 L 50 50 1 0 I 482 | X VCC 16 0 900 200 D 50 50 1 0 W 483 | X CP 2 500 -600 200 L 50 50 1 0 I 484 | X D4 3 -500 100 200 R 50 50 1 0 I 485 | X D5 4 -500 0 200 R 50 50 1 0 I 486 | X D6 5 -500 -100 200 R 50 50 1 0 I 487 | X D7 6 -500 -200 200 R 50 50 1 0 I 488 | X ~Q7 7 500 500 200 L 50 50 1 0 O 489 | X GND 8 0 -1000 200 U 50 50 1 0 W 490 | X Q7 9 500 600 200 L 50 50 1 0 O 491 | ENDDRAW 492 | ENDDEF 493 | # 494 | # VideoRAM_CY62256 495 | # 496 | DEF VideoRAM_CY62256 U 0 40 Y Y 1 F N 497 | F0 "U" 0 400 50 V V C CNN 498 | F1 "VideoRAM_CY62256" 0 0 50 V V C CNN 499 | F2 "" 0 0 50 H I C CNN 500 | F3 "" 0 0 50 H I C CNN 501 | DRAW 502 | S -400 950 400 -650 0 1 0 f 503 | X A5 1 -500 -50 100 R 50 50 1 1 I 504 | X A14 10 -500 850 100 R 50 50 1 1 I 505 | X I/O0 11 500 400 100 L 50 50 1 1 B 506 | X I/O1 12 500 300 100 L 50 50 1 1 B 507 | X I/O2 13 500 200 100 L 50 50 1 1 B 508 | X GND 14 500 -550 100 L 50 50 1 1 W 509 | X I/O3 15 500 100 100 L 50 50 1 1 B 510 | X I/O4 16 500 0 100 L 50 50 1 1 B 511 | X I/O5 17 500 -100 100 L 50 50 1 1 B 512 | X I/O6 18 500 -200 100 L 50 50 1 1 B 513 | X I/O7 19 500 -300 100 L 50 50 1 1 B 514 | X A6 2 -500 50 100 R 50 50 1 1 I 515 | X ~CE 20 500 550 100 L 50 50 1 1 I 516 | X A0 21 -500 -550 100 R 50 50 1 1 I 517 | X ~OE 22 500 650 100 L 50 50 1 1 I 518 | X A1 23 -500 -450 100 R 50 50 1 1 I 519 | X A2 24 -500 -350 100 R 50 50 1 1 I 520 | X A3 25 -500 -250 100 R 50 50 1 1 I 521 | X A4 26 -500 -150 100 R 50 50 1 1 I 522 | X ~WE 27 500 750 100 L 50 50 1 1 I 523 | X VCC 28 500 850 100 L 50 50 1 1 W 524 | X A7 3 -500 150 100 R 50 50 1 1 I 525 | X A8 4 -500 250 100 R 50 50 1 1 I 526 | X A9 5 -500 350 100 R 50 50 1 1 I 527 | X A10 6 -500 450 100 R 50 50 1 1 I 528 | X A11 7 -500 550 100 R 50 50 1 1 I 529 | X A12 8 -500 650 100 R 50 50 1 1 I 530 | X A13 9 -500 750 100 R 50 50 1 1 I 531 | ENDDRAW 532 | ENDDEF 533 | # 534 | # power_+5V 535 | # 536 | DEF power_+5V #PWR 0 0 Y Y 1 F P 537 | F0 "#PWR" 0 -150 50 H I C CNN 538 | F1 "power_+5V" 0 140 50 H V C CNN 539 | F2 "" 0 0 50 H I C CNN 540 | F3 "" 0 0 50 H I C CNN 541 | DRAW 542 | P 2 0 1 0 -30 50 0 100 N 543 | P 2 0 1 0 0 0 0 100 N 544 | P 2 0 1 0 0 100 30 50 N 545 | X +5V 1 0 0 0 U 50 50 1 1 W N 546 | ENDDRAW 547 | ENDDEF 548 | # 549 | # power_GND 550 | # 551 | DEF power_GND #PWR 0 0 Y Y 1 F P 552 | F0 "#PWR" 0 -250 50 H I C CNN 553 | F1 "power_GND" 0 -150 50 H V C CNN 554 | F2 "" 0 0 50 H I C CNN 555 | F3 "" 0 0 50 H I C CNN 556 | DRAW 557 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N 558 | X GND 1 0 0 0 D 50 50 1 1 W N 559 | ENDDRAW 560 | ENDDEF 561 | # 562 | # power_PWR_FLAG 563 | # 564 | DEF power_PWR_FLAG #FLG 0 0 N N 1 F P 565 | F0 "#FLG" 0 75 50 H I C CNN 566 | F1 "power_PWR_FLAG" 0 150 50 H V C CNN 567 | F2 "" 0 0 50 H I C CNN 568 | F3 "" 0 0 50 H I C CNN 569 | DRAW 570 | P 6 0 1 0 0 0 0 50 -40 75 0 100 40 75 0 50 N 571 | X pwr 1 0 0 0 U 50 50 0 0 w 572 | ENDDRAW 573 | ENDDEF 574 | # 575 | #End Library 576 | -------------------------------------------------------------------------------- /Arduino-VGA/Arduino_VGA_Terminal_v1.06/Arduino_VGA_Terminal_v1.06.ino: -------------------------------------------------------------------------------- 1 | // ********************************************************************************** 2 | // ***** ARDUINO NANO 40x25 ANSI DUMP (VT-100) TERMINAL by Carsten Herting 2020 ***** 3 | // ********************************************************************************** 4 | // LICENSE: See end of file for license information. 5 | // Firmware Version 1.06 - 20.06.2020 6 | // set Arduino Nano FuseA from default 0xFF to 0xBF (enabling output of 16MHz CLKO on pin 8) 7 | // Pins 0-7: Port D, used to write data to the parallel load of 74165, used to read data from 74174 input register 8 | // Pin 8: Arduino CLK out (16MHz) 9 | // Pin 9: 74173 /OE 10 | // Pin 10: VSYNC (timer1) 11 | // Pin 11: 74165 PE (timer2) 12 | // Pin 12: HSync "by hand" inside ISR 13 | // Pin 13: 74173 MR 14 | 15 | volatile int vLine; // current horizontal video line 16 | volatile byte reg[128]; // Queue of data to be written into VRAM 17 | volatile byte regout = 0; // Index of current output position in queue 18 | volatile byte regin = 0; // Index of current input position in queue 19 | volatile int mFrame = 0; // 1/60s frame counter for cursor blinking 20 | byte mEscValid = 0; // Number of valid characters in mEscBuffer[] 21 | byte mEscBuffer[5]; 22 | byte mRow = 8; // cursor position in terminal window 23 | byte mCol = 0; // cursor position in terminal window 24 | byte oldc = ' '; // stores char a cursor position 25 | 26 | byte vram[25][40] = { 27 | "****************************************", 28 | "* ATMega328P VGA ANSI TERMINAL v1.06 *", 29 | "****************************************", 30 | "* - 320x480 pixels / 60Hz refresh rate *", 31 | "* - 40x25 characters VRAM text output *", 32 | "* - full 8x8 pixel ASCII character set *", 33 | "* - processing ANSI escape sequences *", 34 | "****************************************", 35 | " ", 36 | " ", 37 | " ", 38 | " ", 39 | " ", 40 | " ", 41 | " ", 42 | " ", 43 | " ", 44 | " ", 45 | " ", 46 | " ", 47 | " ", 48 | " ", 49 | " ", 50 | " ", 51 | " ", 52 | }; 53 | 54 | // my improved charset line data starting with character 32 (SPACE) 55 | const byte charset[8][96] = { 56 | 0x00,0x18,0x66,0x66,0x18,0x62,0x3C,0x06,0x0C,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x18,0x3C,0x3C,0x06,0x7E,0x3C,0x7E,0x3C,0x3C,0x00,0x00,0x0E,0x00,0x70,0x3C,0x3C,0x18,0x7C,0x3C,0x78,0x7E,0x7E,0x3C,0x66,0x3C,0x1E,0x66,0x60,0x63,0x66,0x3C,0x7C,0x3C,0x7C,0x3C,0x7E,0x66,0x66,0x63,0x66,0x66,0x7E,0x3C,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x18,0x70,0x00,0xFF, 57 | 0x00,0x18,0x66,0x66,0x3E,0x66,0x66,0x0C,0x18,0x18,0x66,0x18,0x00,0x00,0x00,0x03,0x66,0x18,0x66,0x66,0x0E,0x60,0x66,0x66,0x66,0x66,0x00,0x00,0x18,0x00,0x18,0x66,0x66,0x3C,0x66,0x66,0x6C,0x60,0x60,0x66,0x66,0x18,0x0C,0x6C,0x60,0x77,0x76,0x66,0x66,0x66,0x66,0x66,0x18,0x66,0x66,0x63,0x66,0x66,0x06,0x30,0x60,0x0C,0x18,0x00,0x66,0x00,0x60,0x00,0x06,0x00,0x0E,0x00,0x60,0x18,0x06,0x60,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0xFF, 58 | 0x00,0x18,0x66,0xFF,0x60,0x0C,0x3C,0x18,0x30,0x0C,0x3C,0x18,0x00,0x00,0x00,0x06,0x6E,0x38,0x06,0x06,0x1E,0x7C,0x60,0x0C,0x66,0x66,0x18,0x18,0x30,0x7E,0x0C,0x06,0x6E,0x66,0x66,0x60,0x66,0x60,0x60,0x60,0x66,0x18,0x0C,0x78,0x60,0x7F,0x7E,0x66,0x66,0x66,0x66,0x60,0x18,0x66,0x66,0x63,0x3C,0x66,0x0C,0x30,0x30,0x0C,0x3C,0x00,0x6E,0x3C,0x60,0x3C,0x06,0x3C,0x18,0x3E,0x60,0x00,0x00,0x60,0x18,0x66,0x7C,0x3C,0x7C,0x3E,0x7C,0x3E,0x7E,0x66,0x66,0x63,0x66,0x66,0x7E,0x18,0x18,0x18,0x00,0xFF, 59 | 0x00,0x18,0x00,0x66,0x3C,0x18,0x38,0x00,0x30,0x0C,0xFF,0x7E,0x00,0x7E,0x00,0x0C,0x76,0x18,0x0C,0x1C,0x66,0x06,0x7C,0x18,0x3C,0x3E,0x00,0x00,0x60,0x00,0x06,0x0C,0x6E,0x7E,0x7C,0x60,0x66,0x78,0x78,0x6E,0x7E,0x18,0x0C,0x70,0x60,0x6B,0x7E,0x66,0x7C,0x66,0x7C,0x3C,0x18,0x66,0x66,0x6B,0x18,0x3C,0x18,0x30,0x18,0x0C,0x7E,0x00,0x6E,0x06,0x7C,0x60,0x3E,0x66,0x3E,0x66,0x7C,0x38,0x06,0x6C,0x18,0x7F,0x66,0x66,0x66,0x66,0x66,0x60,0x18,0x66,0x66,0x6B,0x3C,0x66,0x0C,0x70,0x18,0x0E,0x3B,0xFF, 60 | 0x00,0x00,0x00,0xFF,0x06,0x30,0x67,0x00,0x30,0x0C,0x3C,0x18,0x00,0x00,0x00,0x18,0x66,0x18,0x30,0x06,0x7F,0x06,0x66,0x18,0x66,0x06,0x00,0x00,0x30,0x7E,0x0C,0x18,0x60,0x66,0x66,0x60,0x66,0x60,0x60,0x66,0x66,0x18,0x0C,0x78,0x60,0x63,0x6E,0x66,0x60,0x66,0x78,0x06,0x18,0x66,0x66,0x7F,0x3C,0x18,0x30,0x30,0x0C,0x0C,0x18,0x00,0x60,0x3E,0x66,0x60,0x66,0x7E,0x18,0x66,0x66,0x18,0x06,0x78,0x18,0x7F,0x66,0x66,0x66,0x66,0x60,0x3C,0x18,0x66,0x66,0x7F,0x18,0x66,0x18,0x18,0x18,0x18,0x6E,0xFF, 61 | 0x00,0x00,0x00,0x66,0x7C,0x66,0x66,0x00,0x18,0x18,0x66,0x18,0x18,0x00,0x18,0x30,0x66,0x18,0x60,0x66,0x06,0x66,0x66,0x18,0x66,0x66,0x18,0x18,0x18,0x00,0x18,0x00,0x66,0x66,0x66,0x66,0x6C,0x60,0x60,0x66,0x66,0x18,0x6C,0x6C,0x60,0x63,0x66,0x66,0x60,0x3C,0x6C,0x66,0x18,0x66,0x3C,0x77,0x66,0x18,0x60,0x30,0x06,0x0C,0x18,0x00,0x66,0x66,0x66,0x60,0x66,0x60,0x18,0x3E,0x66,0x18,0x06,0x6C,0x18,0x6B,0x66,0x66,0x7C,0x3E,0x60,0x06,0x18,0x66,0x3C,0x3E,0x3C,0x3E,0x30,0x18,0x18,0x18,0x00,0xFF, 62 | 0x00,0x18,0x00,0x66,0x18,0x46,0x3F,0x00,0x0C,0x30,0x00,0x00,0x18,0x00,0x18,0x60,0x3C,0x7E,0x7E,0x3C,0x06,0x3C,0x3C,0x18,0x3C,0x3C,0x00,0x18,0x0E,0x00,0x70,0x18,0x3C,0x66,0x7C,0x3C,0x78,0x7E,0x60,0x3C,0x66,0x3C,0x38,0x66,0x7E,0x63,0x66,0x3C,0x60,0x0E,0x66,0x3C,0x18,0x3C,0x18,0x63,0x66,0x18,0x7E,0x3C,0x03,0x3C,0x18,0x00,0x3C,0x3E,0x7C,0x3C,0x3E,0x3C,0x18,0x06,0x66,0x3C,0x06,0x66,0x3C,0x63,0x66,0x3C,0x60,0x06,0x60,0x7C,0x0E,0x3E,0x18,0x36,0x66,0x0C,0x7E,0x0E,0x18,0x70,0x00,0xFF, 63 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x18,0x00,0x00,0xFF, 64 | }; 65 | 66 | int main() // IMPORTANT: Enforce simplest main() loop possible 67 | { 68 | setup(); 69 | while(true) loop(); 70 | } 71 | 72 | void setup() 73 | { 74 | noInterrupts(); // disable interrupts before messing around with timer registers 75 | 76 | DDRB = 0b00111111; // pin8: CLKO, pin 9: 74173 /OE, pin 10: VSYNC (timer1), pin 11: 74165 PE (timer2), pin 12: HSync "by hand" inside ISR, pin 13: 74173 MR 77 | PORTB = 0b00010010; // MR=0, HSYNC=1, /OE=1 78 | GTCCR = 0b10000011; // set TSM, PSRSYNC und PSRASY to correlate all 3 timers 79 | 80 | // ***************************** 81 | // ***** Timer0: VGA HSYNC ***** 82 | // ***************************** 83 | TCNT0 = 0; 84 | TCCR0A = (1< 0.5µs 86 | OCR0A = 63; // compare match register A (TOP) -> 32µs 87 | TIMSK0 = (1< 64µs 95 | OCR1A = 259; // compare match register A (TOP) -> 16.64ms 96 | OCR1B = 0; // compare match register B -> 64µs 97 | TIMSK1 = (1< 62.5ns; 105 | OCR2A = 7; // compare match register A (TOP) -> 250ns 106 | TIMSK2 = 0; // no interrupts here 107 | 108 | GTCCR = 0; // clear TSM => all timers start synchronously 109 | 110 | UCSR0B = 0; // brute-force the USART off just in case... 111 | 112 | interrupts(); 113 | } 114 | 115 | ISR(TIMER1_OVF_vect) { vLine = 0; mFrame++; } // timer overflow interrupt sets back vLine at the start of a frame 116 | 117 | ISR(TIMER0_COMPA_vect) // HSYNC generation and drawing of a scanline 118 | { 119 | if (TCNT2 & 1) PORTB = 0b00010010; // MR=0, HSYNC=1, /OE=1: Canceling out interrupt jitter using the fast timer (if branching, this code takes a cycle longer) 120 | PORTB = 0b00000000; // MR=0, HSYNC=0, /OE=0: Start the HSYNC pulse & activate 74173 output 121 | DDRD = 0b00000000; // check the 74173 input register for new data, switch to D = input 122 | __builtin_avr_delay_cycles(1); // IMPORTANT: Wait for the 74173 outputs to stabilize 123 | byte a = PIND; // doppelte Auslesung, um Auslesen während eines Schreibvorgangs abzufangen 124 | byte b = PIND; 125 | byte c = regin; 126 | 127 | if(a != 0) // wurde überhaupt etwas != 0 gelesen? 128 | { 129 | if(a == b) // war der Lesevorgang valide? 130 | { 131 | PORTB = 0b00100010; // MR=1, HSYNC=0, /OE=1: Pull register reset and output 132 | reg[c++] = a; // übernimm den neuen Wert in den Puffer 133 | c &= 0b1111111; 134 | regin = c; 135 | } else __builtin_avr_delay_cycles(13); // sorgt für gleiche Laufzeit in jedem Zweig 4/5/9 136 | } else __builtin_avr_delay_cycles(15); // sorgt für gleiche Laufzeit in jedem Zweig 137 | 138 | PORTB = 0b00000010; // MR=0, HSYNC=0, /OE=1: Disable register output 139 | 140 | DDRD = 0b11111111; // switch port D to output 141 | PORTD = 0; // prevent trash data from being fed into the shift register 142 | vLine++; // use the time during the pulse to init pointers 143 | byte* vrow = vram[byte((vLine-36)>>4)]; // pointer to the vram row 0...24 to display 144 | byte* cset = charset[byte((vLine-36)>>1) & 0b00000111] - 32; // pointer to the charset line 0..7 to use starting @ character 32 145 | PORTB = 0b00010010; // MR=0, HSYNC=1, /OE=1: End of HSYNC pulse 146 | 147 | if (vLine >= 36 && vLine < 436) // skip 2 lines (VSYNC pulse) + 33 lines (vertical back porch) 148 | { 149 | TCCR2A &= ~(1< 31) vram[mRow][mCol] = 127; else vram[mRow][mCol] = oldc; // cursor blinking 199 | 200 | if (regout != regin) // was a character received 201 | { 202 | vram[mRow][mCol] = oldc; // restore character beneath the cursor BEFORE a possible scrolling happens 203 | do 204 | { 205 | ProcessChar(reg[regout]); // process this character 206 | regout++; 207 | regout &= 0b1111111; 208 | } while(regout != regin); 209 | oldc = vram[mRow][mCol]; 210 | } 211 | } 212 | 213 | void Scroll() 214 | { 215 | for(int r=0; r<24; r++) for(int c=0; c<40; c++) vram[r][c] = vram[r+1][c]; // move all rows one step up 216 | for(int c=0; c<40; c++) vram[24][c] = 32; // fill lowest line with SPACES 217 | } 218 | 219 | void ProcessChar(byte inbyte) // processes a character (accepts some VT52/GEMDOS ESC sequences, control chars, normal chars) 220 | { 221 | mFrame = 25; 222 | 223 | if (mEscValid > 4) mEscValid = 0; // unverarbeibare ESC-Sequenzen löschen und dieses Zeichen normal verarbeiten 224 | if (inbyte == 27) { mEscValid = 1; return; } // neue ESC sequence starten 225 | 226 | if(mEscValid > 0) // ES IST BEREITS EIN ESC AKTIV 227 | { 228 | if (mEscValid < 2) { if (inbyte == '[') mEscValid++; else mEscValid = 0; } // als 2. Zeichen MUSS '[' kommen 229 | else // es wurde bereits '\e[' korrekt empfangen... 230 | { 231 | mEscBuffer[mEscValid++] = inbyte; // ein weiteres Zeichen hinzufügen 232 | switch(inbyte) // Für jede ESC sequence muss geprüft werden, ob damit der Befehl komplett ist 233 | { 234 | case 'A': // move cursor up 235 | { 236 | byte anz; 237 | if (mEscValid == 5) anz = 10 * (mEscBuffer[2] - 48) + mEscBuffer[3] - 48; 238 | if (mEscValid == 4) anz = mEscBuffer[2] - 48; 239 | if (mEscValid == 3) anz = 1; 240 | for(byte i=0; i 0) mRow--; 241 | mEscValid = 0; 242 | break; 243 | } 244 | case 'B': // move cursor down 245 | { 246 | byte anz; 247 | if (mEscValid == 5) anz = 10 * (mEscBuffer[2] - 48) + mEscBuffer[3] - 48; 248 | if (mEscValid == 4) anz = mEscBuffer[2] - 48; 249 | if (mEscValid == 3) anz = 1; 250 | for(byte i=0; i 0) mCol--; else if (mRow > 0) { mCol = 39; mRow--; } } 271 | mEscValid = 0; 272 | break; 273 | } 274 | case 'H': // move cursor to upper left corner 275 | mRow = 0; mCol = 0; 276 | mEscValid = 0; 277 | break; 278 | case 'J': // clear VRAM from cursor onwards 279 | for(int c=mCol; c<40; c++) vram[mRow][c] = 32; 280 | for(int r=mRow+1; r<25; r++) for(int c = 0; c<40; c++) vram[r][c] = 32; 281 | mEscValid = 0; 282 | break; 283 | case 'K': // clear line from cursor onwards (does not move the cursor) 284 | for(int c = mCol; c<40; c++) vram[mRow][c] = 32; 285 | mEscValid = 0; 286 | break; 287 | case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': 288 | break; // Zahlen erstmal hinzufügen 289 | default: 290 | mEscValid = 0; 291 | break; 292 | } 293 | } 294 | } 295 | else 296 | { 297 | switch(inbyte) 298 | { 299 | case '\n': // Sonderzeichen 'newline' abfangen 300 | mCol = 0; 301 | if (mRow < 24) mRow++; else Scroll(); 302 | break; 303 | case '\r': // Sonderzeichen 'carriage return' abfangen 304 | mCol = 0; 305 | break; 306 | case 8: // Sonderzeichen 'BACKSPACE' abfangen 307 | if (mCol > 0) vram[mRow][--mCol] = 32; 308 | else if (mRow > 0) { mRow--; vram[mRow][39] = 32; mCol = 39; } 309 | break; 310 | default: 311 | if (inbyte >= 32) 312 | { 313 | vram[mRow][mCol++] = inbyte; // einfach das via TI OUT gesendete Zeichen im Terminal ausgeben 314 | if (mCol > 39) 315 | { 316 | mCol = 0; 317 | if (mRow < 24) mRow++; else Scroll(); 318 | } 319 | } 320 | break; 321 | } 322 | } 323 | } 324 | 325 | /* 326 | ------------------------------------------------------------------------------ 327 | This software is available under 2 licenses -- choose whichever you prefer. 328 | ------------------------------------------------------------------------------ 329 | ALTERNATIVE A - MIT License 330 | Copyright (c) 2020 Carsten Herting 331 | Permission is hereby granted, free of charge, to any person obtaining a copy of 332 | this software and associated documentation files (the "Software"), to deal in 333 | the Software without restriction, including without limitation the rights to 334 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 335 | of the Software, and to permit persons to whom the Software is furnished to do 336 | so, subject to the following conditions: 337 | The above copyright notice and this permission notice shall be included in all 338 | copies or substantial portions of the Software. 339 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 340 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 341 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 342 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 343 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 344 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 345 | SOFTWARE. 346 | ------------------------------------------------------------------------------ 347 | ALTERNATIVE B - Public Domain (www.unlicense.org) 348 | This is free and unencumbered software released into the public domain. 349 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute this 350 | software, either in source code form or as a compiled binary, for any purpose, 351 | commercial or non-commercial, and by any means. 352 | In jurisdictions that recognize copyright laws, the author or authors of this 353 | software dedicate any and all copyright interest in the software to the public 354 | domain. We make this dedication for the benefit of the public at large and to 355 | the detriment of our heirs and successors. We intend this dedication to be an 356 | overt act of relinquishment in perpetuity of all present and future rights to 357 | this software under copyright law. 358 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 359 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 360 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 361 | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 362 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 363 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 364 | ------------------------------------------------------------------------------ 365 | */ 366 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | EELAYER 30 0 3 | EELAYER END 4 | $Descr A4 8268 11693 portrait 5 | encoding utf-8 6 | Sheet 1 1 7 | Title "DIY Video RAM" 8 | Date "2021-11-06" 9 | Rev "1.4" 10 | Comp "" 11 | Comment1 "creativecommons.org/licenses/by-nc-sa/3.0/deed.en" 12 | Comment2 "License: CC BY-NC-SA 3.0" 13 | Comment3 "Author: Carsten Herting (Slu4)" 14 | Comment4 "" 15 | $EndDescr 16 | $Comp 17 | L power:GND #PWR032 18 | U 1 1 5FA549F2 19 | P 4450 4550 20 | F 0 "#PWR032" H 4450 4300 50 0001 C CNN 21 | F 1 "GND" V 4550 4550 50 0000 R CNN 22 | F 2 "" H 4450 4550 50 0001 C CNN 23 | F 3 "" H 4450 4550 50 0001 C CNN 24 | 1 4450 4550 25 | 0 -1 -1 0 26 | $EndComp 27 | $Comp 28 | L power:GND #PWR025 29 | U 1 1 5FAC0EE4 30 | P 3450 4850 31 | F 0 "#PWR025" H 3450 4600 50 0001 C CNN 32 | F 1 "GND" V 3500 4900 50 0000 R CNN 33 | F 2 "" H 3450 4850 50 0001 C CNN 34 | F 3 "" H 3450 4850 50 0001 C CNN 35 | 1 3450 4850 36 | 0 1 1 0 37 | $EndComp 38 | $Comp 39 | L 74xx:74HC595 U? 40 | U 1 1 5F9261E2 41 | P 4750 7450 42 | AR Path="/5F8CED2C/5F9261E2" Ref="U?" Part="1" 43 | AR Path="/5F9261E2" Ref="U11" Part="1" 44 | F 0 "U11" V 4850 7200 50 0000 L CNN 45 | F 1 "74HC595" V 4750 7200 50 0000 L CNN 46 | F 2 "" H 4750 7450 50 0001 C CNN 47 | F 3 "http://www.ti.com/lit/ds/symlink/sn74hc595.pdf" H 4750 7450 50 0001 C CNN 48 | 1 4750 7450 49 | 0 1 -1 0 50 | $EndComp 51 | $Comp 52 | L 74xx:74HC595 U? 53 | U 1 1 5F9261E8 54 | P 2950 7450 55 | AR Path="/5F8CED2C/5F9261E8" Ref="U?" Part="1" 56 | AR Path="/5F9261E8" Ref="U7" Part="1" 57 | F 0 "U7" V 3050 7200 50 0000 L CNN 58 | F 1 "74HC595" V 2950 7200 50 0000 L CNN 59 | F 2 "" H 2950 7450 50 0001 C CNN 60 | F 3 "http://www.ti.com/lit/ds/symlink/sn74hc595.pdf" H 2950 7450 50 0001 C CNN 61 | 1 2950 7450 62 | 0 1 -1 0 63 | $EndComp 64 | Wire Wire Line 65 | 5150 7850 5450 7850 66 | Wire Wire Line 67 | 5450 7850 5450 7050 68 | Wire Wire Line 69 | 4250 7050 3800 7050 70 | Wire Wire Line 71 | 3800 7050 3800 7850 72 | Wire Wire Line 73 | 3800 7850 3350 7850 74 | NoConn ~ 2450 7050 75 | $Comp 76 | L power:+5V #PWR? 77 | U 1 1 5F926200 78 | P 3050 7850 79 | AR Path="/5F8CED2C/5F926200" Ref="#PWR?" Part="1" 80 | AR Path="/5F926200" Ref="#PWR023" Part="1" 81 | F 0 "#PWR023" H 3050 7700 50 0001 C CNN 82 | F 1 "+5V" V 3100 7900 50 0000 C CNN 83 | F 2 "" H 3050 7850 50 0001 C CNN 84 | F 3 "" H 3050 7850 50 0001 C CNN 85 | 1 3050 7850 86 | -1 0 0 1 87 | $EndComp 88 | $Comp 89 | L power:+5V #PWR? 90 | U 1 1 5F926206 91 | P 4850 7850 92 | AR Path="/5F8CED2C/5F926206" Ref="#PWR?" Part="1" 93 | AR Path="/5F926206" Ref="#PWR034" Part="1" 94 | F 0 "#PWR034" H 4850 7700 50 0001 C CNN 95 | F 1 "+5V" V 4900 7900 50 0000 C CNN 96 | F 2 "" H 4850 7850 50 0001 C CNN 97 | F 3 "" H 4850 7850 50 0001 C CNN 98 | 1 4850 7850 99 | -1 0 0 1 100 | $EndComp 101 | Wire Wire Line 102 | 4950 8000 4950 7850 103 | Wire Wire Line 104 | 4950 8000 3150 8000 105 | Wire Wire Line 106 | 3150 8000 3150 7850 107 | Connection ~ 4950 8000 108 | Wire Wire Line 109 | 2750 7850 2750 8200 110 | Wire Wire Line 111 | 6050 8200 4550 8200 112 | Wire Wire Line 113 | 4550 8200 4550 7850 114 | Wire Wire Line 115 | 4550 8200 2750 8200 116 | Connection ~ 4550 8200 117 | Wire Wire Line 118 | 2850 7850 2850 8100 119 | Wire Wire Line 120 | 2850 8100 4650 8100 121 | Wire Wire Line 122 | 4650 8100 4650 7850 123 | Wire Wire Line 124 | 4650 8100 6150 8100 125 | Connection ~ 4650 8100 126 | Wire Wire Line 127 | 3350 7050 3350 5000 128 | Connection ~ 3350 5000 129 | Wire Wire Line 130 | 3350 5000 3450 5000 131 | Wire Wire Line 132 | 3250 5100 3250 7050 133 | Connection ~ 3250 5100 134 | Wire Wire Line 135 | 3250 5100 3450 5100 136 | Wire Wire Line 137 | 3150 7050 3150 5200 138 | Connection ~ 3150 5200 139 | Wire Wire Line 140 | 3150 5200 3450 5200 141 | Connection ~ 3050 5300 142 | Wire Wire Line 143 | 3050 5300 3450 5300 144 | Connection ~ 2950 5400 145 | Wire Wire Line 146 | 2950 5400 3450 5400 147 | Connection ~ 2850 5500 148 | Wire Wire Line 149 | 2850 5500 3450 5500 150 | Connection ~ 2750 5600 151 | Wire Wire Line 152 | 2750 5600 3450 5600 153 | Wire Wire Line 154 | 2650 5700 3450 5700 155 | Wire Wire Line 156 | 5450 7050 5750 7050 157 | Wire Wire Line 158 | 6050 7850 6050 8200 159 | $Comp 160 | L power:+5V #PWR? 161 | U 1 1 5F92620C 162 | P 6350 7850 163 | AR Path="/5F8CED2C/5F92620C" Ref="#PWR?" Part="1" 164 | AR Path="/5F92620C" Ref="#PWR044" Part="1" 165 | F 0 "#PWR044" H 6350 7700 50 0001 C CNN 166 | F 1 "+5V" V 6400 7900 50 0000 C CNN 167 | F 2 "" H 6350 7850 50 0001 C CNN 168 | F 3 "" H 6350 7850 50 0001 C CNN 169 | 1 6350 7850 170 | -1 0 0 1 171 | $EndComp 172 | $Comp 173 | L 74xx:74HC595 U? 174 | U 1 1 5F9261CD 175 | P 6250 7450 176 | AR Path="/5F8CED2C/5F9261CD" Ref="U?" Part="1" 177 | AR Path="/5F9261CD" Ref="U14" Part="1" 178 | F 0 "U14" V 6350 7200 50 0000 L CNN 179 | F 1 "74HC595" V 6250 7200 50 0000 L CNN 180 | F 2 "" H 6250 7450 50 0001 C CNN 181 | F 3 "http://www.ti.com/lit/ds/symlink/sn74hc595.pdf" H 6250 7450 50 0001 C CNN 182 | 1 6250 7450 183 | 0 1 -1 0 184 | $EndComp 185 | Text GLabel 2650 10300 2 50 Output ~ 0 186 | ~16MHZ 187 | Text GLabel 2750 8200 3 50 Input ~ 0 188 | ~2MHZ 189 | Text GLabel 3450 4750 0 50 Input ~ 0 190 | 2MHZ 191 | NoConn ~ 5550 9700 192 | NoConn ~ 5650 9700 193 | NoConn ~ 5750 9700 194 | NoConn ~ 5850 9700 195 | NoConn ~ 5950 9700 196 | NoConn ~ 6050 9700 197 | NoConn ~ 6150 9700 198 | NoConn ~ 6250 9700 199 | NoConn ~ 6450 9700 200 | NoConn ~ 6750 9700 201 | NoConn ~ 6850 9700 202 | NoConn ~ 6750 8700 203 | NoConn ~ 6850 8700 204 | NoConn ~ 6150 8700 205 | NoConn ~ 6250 8700 206 | NoConn ~ 6350 8700 207 | NoConn ~ 5950 8700 208 | NoConn ~ 5850 8700 209 | NoConn ~ 5750 8700 210 | NoConn ~ 5650 8700 211 | NoConn ~ 5550 8700 212 | NoConn ~ 7250 9300 213 | NoConn ~ 7250 9100 214 | Wire Wire Line 215 | 5250 9300 5250 9200 216 | $Comp 217 | L power:GND #PWR035 218 | U 1 1 5FA623F7 219 | P 5250 9300 220 | F 0 "#PWR035" H 5250 9050 50 0001 C CNN 221 | F 1 "GND" H 5255 9127 50 0000 C CNN 222 | F 2 "" H 5250 9300 50 0001 C CNN 223 | F 3 "" H 5250 9300 50 0001 C CNN 224 | 1 5250 9300 225 | 1 0 0 -1 226 | $EndComp 227 | $Comp 228 | L power:+5V #PWR049 229 | U 1 1 5FA652FB 230 | P 7250 9400 231 | F 0 "#PWR049" H 7250 9250 50 0001 C CNN 232 | F 1 "+5V" V 7265 9528 50 0000 L CNN 233 | F 2 "" H 7250 9400 50 0001 C CNN 234 | F 3 "" H 7250 9400 50 0001 C CNN 235 | 1 7250 9400 236 | -1 0 0 1 237 | $EndComp 238 | $Comp 239 | L power:GND #PWR029 240 | U 1 1 5FA66186 241 | P 4050 7450 242 | F 0 "#PWR029" H 4050 7200 50 0001 C CNN 243 | F 1 "GND" V 4050 7250 50 0000 C CNN 244 | F 2 "" H 4050 7450 50 0001 C CNN 245 | F 3 "" H 4050 7450 50 0001 C CNN 246 | 1 4050 7450 247 | 1 0 0 -1 248 | $EndComp 249 | $Comp 250 | L power:GND #PWR019 251 | U 1 1 5FA6657C 252 | P 2250 7450 253 | F 0 "#PWR019" H 2250 7200 50 0001 C CNN 254 | F 1 "GND" V 2250 7250 50 0000 C CNN 255 | F 2 "" H 2250 7450 50 0001 C CNN 256 | F 3 "" H 2250 7450 50 0001 C CNN 257 | 1 2250 7450 258 | 1 0 0 -1 259 | $EndComp 260 | $Comp 261 | L power:GND #PWR041 262 | U 1 1 5FA67039 263 | P 5550 7450 264 | F 0 "#PWR041" H 5550 7200 50 0001 C CNN 265 | F 1 "GND" V 5550 7250 50 0000 C CNN 266 | F 2 "" H 5550 7450 50 0001 C CNN 267 | F 3 "" H 5550 7450 50 0001 C CNN 268 | 1 5550 7450 269 | 1 0 0 -1 270 | $EndComp 271 | $Comp 272 | L power:GND #PWR026 273 | U 1 1 5FA67FA7 274 | P 3450 5950 275 | F 0 "#PWR026" H 3450 5700 50 0001 C CNN 276 | F 1 "GND" H 3455 5777 50 0000 C CNN 277 | F 2 "" H 3450 5950 50 0001 C CNN 278 | F 3 "" H 3450 5950 50 0001 C CNN 279 | 1 3450 5950 280 | 1 0 0 -1 281 | $EndComp 282 | $Comp 283 | L power:+5V #PWR047 284 | U 1 1 5FA94D8A 285 | P 6850 7450 286 | F 0 "#PWR047" H 6850 7300 50 0001 C CNN 287 | F 1 "+5V" V 6850 7650 50 0000 C CNN 288 | F 2 "" H 6850 7450 50 0001 C CNN 289 | F 3 "" H 6850 7450 50 0001 C CNN 290 | 1 6850 7450 291 | 1 0 0 -1 292 | $EndComp 293 | $Comp 294 | L power:+5V #PWR036 295 | U 1 1 5FA95230 296 | P 5350 7450 297 | F 0 "#PWR036" H 5350 7300 50 0001 C CNN 298 | F 1 "+5V" V 5350 7650 50 0000 C CNN 299 | F 2 "" H 5350 7450 50 0001 C CNN 300 | F 3 "" H 5350 7450 50 0001 C CNN 301 | 1 5350 7450 302 | 1 0 0 -1 303 | $EndComp 304 | $Comp 305 | L 74xx:74HC00 U? 306 | U 5 1 5FA9A5EB 307 | P 2350 850 308 | AR Path="/5F8CD8D4/5FA9A5EB" Ref="U?" Part="5" 309 | AR Path="/5FA9A5EB" Ref="U5" Part="5" 310 | F 0 "U5" V 2250 850 50 0000 C CNN 311 | F 1 "74HC00" V 2450 850 50 0000 C CNN 312 | F 2 "" H 2350 850 50 0001 C CNN 313 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 2350 850 50 0001 C CNN 314 | 5 2350 850 315 | 0 1 1 0 316 | $EndComp 317 | $Comp 318 | L power:GND #PWR? 319 | U 1 1 5FA9A5F1 320 | P 1850 850 321 | AR Path="/5F8CD8D4/5FA9A5F1" Ref="#PWR?" Part="1" 322 | AR Path="/5FA9A5F1" Ref="#PWR010" Part="1" 323 | F 0 "#PWR010" H 1850 600 50 0001 C CNN 324 | F 1 "GND" H 1855 677 50 0000 C CNN 325 | F 2 "" H 1850 850 50 0001 C CNN 326 | F 3 "" H 1850 850 50 0001 C CNN 327 | 1 1850 850 328 | 1 0 0 -1 329 | $EndComp 330 | $Comp 331 | L power:+5V #PWR? 332 | U 1 1 5FA9A5F7 333 | P 2850 850 334 | AR Path="/5F8CD8D4/5FA9A5F7" Ref="#PWR?" Part="1" 335 | AR Path="/5FA9A5F7" Ref="#PWR020" Part="1" 336 | F 0 "#PWR020" H 2850 700 50 0001 C CNN 337 | F 1 "+5V" H 2865 1023 50 0000 C CNN 338 | F 2 "" H 2850 850 50 0001 C CNN 339 | F 3 "" H 2850 850 50 0001 C CNN 340 | 1 2850 850 341 | 1 0 0 -1 342 | $EndComp 343 | $Comp 344 | L power:GND #PWR? 345 | U 1 1 5FAA3963 346 | P 1850 1350 347 | AR Path="/5F8CD8D4/5FAA3963" Ref="#PWR?" Part="1" 348 | AR Path="/5FAA3963" Ref="#PWR011" Part="1" 349 | F 0 "#PWR011" H 1850 1100 50 0001 C CNN 350 | F 1 "GND" H 1855 1177 50 0000 C CNN 351 | F 2 "" H 1850 1350 50 0001 C CNN 352 | F 3 "" H 1850 1350 50 0001 C CNN 353 | 1 1850 1350 354 | 1 0 0 -1 355 | $EndComp 356 | $Comp 357 | L power:+5V #PWR? 358 | U 1 1 5FAA3969 359 | P 2850 1350 360 | AR Path="/5F8CD8D4/5FAA3969" Ref="#PWR?" Part="1" 361 | AR Path="/5FAA3969" Ref="#PWR021" Part="1" 362 | F 0 "#PWR021" H 2850 1200 50 0001 C CNN 363 | F 1 "+5V" H 2865 1523 50 0000 C CNN 364 | F 2 "" H 2850 1350 50 0001 C CNN 365 | F 3 "" H 2850 1350 50 0001 C CNN 366 | 1 2850 1350 367 | 1 0 0 -1 368 | $EndComp 369 | $Comp 370 | L power:+5V #PWR024 371 | U 1 1 5FAD7FB5 372 | P 3450 4550 373 | F 0 "#PWR024" H 3450 4400 50 0001 C CNN 374 | F 1 "+5V" H 3465 4723 50 0000 C CNN 375 | F 2 "" H 3450 4550 50 0001 C CNN 376 | F 3 "" H 3450 4550 50 0001 C CNN 377 | 1 3450 4550 378 | 1 0 0 -1 379 | $EndComp 380 | $Comp 381 | L VideoRAM:CY62256 U8 382 | U 1 1 5FA30EEE 383 | P 3950 5400 384 | F 0 "U8" V 3950 5750 50 0000 C CNN 385 | F 1 "CY62256" V 3950 5350 50 0000 C CNN 386 | F 2 "" H 3950 5400 50 0001 C CNN 387 | F 3 "" H 3950 5400 50 0001 C CNN 388 | 1 3950 5400 389 | -1 0 0 -1 390 | $EndComp 391 | $Comp 392 | L power:+5V #PWR027 393 | U 1 1 5FAE4ED6 394 | P 3550 7450 395 | F 0 "#PWR027" H 3550 7300 50 0001 C CNN 396 | F 1 "+5V" V 3550 7650 50 0000 C CNN 397 | F 2 "" H 3550 7450 50 0001 C CNN 398 | F 3 "" H 3550 7450 50 0001 C CNN 399 | 1 3550 7450 400 | 1 0 0 -1 401 | $EndComp 402 | Text GLabel 3450 4650 0 50 Input ~ 0 403 | ~2MHZ 404 | Text Notes 3600 2700 2 50 ~ 0 405 | ~S 406 | Text Notes 3600 2050 2 50 ~ 0 407 | ~R 408 | Text Notes 2950 2600 2 50 ~ 0 409 | Q 410 | $Comp 411 | L 74xx:74HC00 U? 412 | U 2 1 5FB915BD 413 | P 3850 2700 414 | AR Path="/5F8CD850/5FB915BD" Ref="U?" Part="2" 415 | AR Path="/5FB915BD" Ref="U5" Part="2" 416 | F 0 "U5" H 3850 2650 50 0000 C CNN 417 | F 1 "74HC00" H 3850 2750 50 0000 C CNN 418 | F 2 "" H 3850 2700 50 0001 C CNN 419 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3850 2700 50 0001 C CNN 420 | 2 3850 2700 421 | -1 0 0 1 422 | $EndComp 423 | $Comp 424 | L 74xx:74HC00 U? 425 | U 1 1 5FB915C3 426 | P 3850 2050 427 | AR Path="/5F8CD850/5FB915C3" Ref="U?" Part="1" 428 | AR Path="/5FB915C3" Ref="U5" Part="1" 429 | F 0 "U5" H 3850 2000 50 0000 C CNN 430 | F 1 "74HC00" H 3850 2100 50 0000 C CNN 431 | F 2 "" H 3850 2050 50 0001 C CNN 432 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3850 2050 50 0001 C CNN 433 | 1 3850 2050 434 | -1 0 0 1 435 | $EndComp 436 | $Comp 437 | L 74xx:74HC00 U? 438 | U 5 1 5FB915C9 439 | P 1200 1350 440 | AR Path="/5F8CD8D4/5FB915C9" Ref="U?" Part="5" 441 | AR Path="/5F8CD850/5FB915C9" Ref="U?" Part="5" 442 | AR Path="/5FB915C9" Ref="U1" Part="5" 443 | F 0 "U1" V 1100 1350 50 0000 C CNN 444 | F 1 "74HC00" V 1300 1350 50 0000 C CNN 445 | F 2 "" H 1200 1350 50 0001 C CNN 446 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 1200 1350 50 0001 C CNN 447 | 5 1200 1350 448 | 0 1 1 0 449 | $EndComp 450 | $Comp 451 | L power:GND #PWR? 452 | U 1 1 5FB915CF 453 | P 700 1350 454 | AR Path="/5F8CD8D4/5FB915CF" Ref="#PWR?" Part="1" 455 | AR Path="/5F8CD850/5FB915CF" Ref="#PWR?" Part="1" 456 | AR Path="/5FB915CF" Ref="#PWR02" Part="1" 457 | F 0 "#PWR02" H 700 1100 50 0001 C CNN 458 | F 1 "GND" H 705 1177 50 0000 C CNN 459 | F 2 "" H 700 1350 50 0001 C CNN 460 | F 3 "" H 700 1350 50 0001 C CNN 461 | 1 700 1350 462 | 1 0 0 -1 463 | $EndComp 464 | $Comp 465 | L power:+5V #PWR? 466 | U 1 1 5FB915D5 467 | P 1700 1350 468 | AR Path="/5F8CD8D4/5FB915D5" Ref="#PWR?" Part="1" 469 | AR Path="/5F8CD850/5FB915D5" Ref="#PWR?" Part="1" 470 | AR Path="/5FB915D5" Ref="#PWR08" Part="1" 471 | F 0 "#PWR08" H 1700 1200 50 0001 C CNN 472 | F 1 "+5V" H 1700 1500 50 0000 C CNN 473 | F 2 "" H 1700 1350 50 0001 C CNN 474 | F 3 "" H 1700 1350 50 0001 C CNN 475 | 1 1700 1350 476 | 1 0 0 -1 477 | $EndComp 478 | $Comp 479 | L 74xx:74HC00 U? 480 | U 4 1 5FB915E3 481 | P 3250 2150 482 | AR Path="/5F8CD850/5FB915E3" Ref="U?" Part="4" 483 | AR Path="/5FB915E3" Ref="U5" Part="4" 484 | F 0 "U5" H 3250 2100 50 0000 C CNN 485 | F 1 "74HC00" H 3250 2200 50 0000 C CNN 486 | F 2 "" H 3250 2150 50 0001 C CNN 487 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3250 2150 50 0001 C CNN 488 | 4 3250 2150 489 | -1 0 0 -1 490 | $EndComp 491 | $Comp 492 | L 74xx:74HC00 U? 493 | U 3 1 5FB915EE 494 | P 3250 2600 495 | AR Path="/5F8CD850/5FB915EE" Ref="U?" Part="3" 496 | AR Path="/5FB915EE" Ref="U5" Part="3" 497 | F 0 "U5" H 3250 2550 50 0000 C CNN 498 | F 1 "74HC00" H 3250 2650 50 0000 C CNN 499 | F 2 "" H 3250 2600 50 0001 C CNN 500 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3250 2600 50 0001 C CNN 501 | 3 3250 2600 502 | -1 0 0 -1 503 | $EndComp 504 | $Comp 505 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 506 | U 1 1 5FB915F4 507 | P 3850 3100 508 | AR Path="/5F8CD850/5FB915F4" Ref="U?" Part="1" 509 | AR Path="/5FB915F4" Ref="U2" Part="1" 510 | F 0 "U2" H 3850 3150 50 0000 C CNN 511 | F 1 "74HC32" H 3850 3050 50 0000 C CNN 512 | F 2 "" H 3850 3100 50 0001 C CNN 513 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 3850 3100 50 0001 C CNN 514 | 1 3850 3100 515 | -1 0 0 1 516 | $EndComp 517 | $Comp 518 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 519 | U 2 1 5FB915FA 520 | P 3250 3000 521 | AR Path="/5F8CD850/5FB915FA" Ref="U?" Part="2" 522 | AR Path="/5FB915FA" Ref="U2" Part="2" 523 | F 0 "U2" H 3250 2950 50 0000 C CNN 524 | F 1 "74HC32" H 3250 3050 50 0000 C CNN 525 | F 2 "" H 3250 3000 50 0001 C CNN 526 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 3250 3000 50 0001 C CNN 527 | 2 3250 3000 528 | -1 0 0 1 529 | $EndComp 530 | $Comp 531 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 532 | U 5 1 5FB91606 533 | P 1200 850 534 | AR Path="/5F8CD850/5FB91606" Ref="U?" Part="5" 535 | AR Path="/5FB91606" Ref="U2" Part="5" 536 | F 0 "U2" V 1100 850 50 0000 C CNN 537 | F 1 "74HC32" V 1300 850 50 0000 C CNN 538 | F 2 "" H 1200 850 50 0001 C CNN 539 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 1200 850 50 0001 C CNN 540 | 5 1200 850 541 | 0 1 1 0 542 | $EndComp 543 | $Comp 544 | L power:GND #PWR? 545 | U 1 1 5FB9160C 546 | P 700 850 547 | AR Path="/5F8CD8D4/5FB9160C" Ref="#PWR?" Part="1" 548 | AR Path="/5F8CD850/5FB9160C" Ref="#PWR?" Part="1" 549 | AR Path="/5FB9160C" Ref="#PWR01" Part="1" 550 | F 0 "#PWR01" H 700 600 50 0001 C CNN 551 | F 1 "GND" H 705 677 50 0000 C CNN 552 | F 2 "" H 700 850 50 0001 C CNN 553 | F 3 "" H 700 850 50 0001 C CNN 554 | 1 700 850 555 | 1 0 0 -1 556 | $EndComp 557 | $Comp 558 | L power:+5V #PWR? 559 | U 1 1 5FB91612 560 | P 1700 850 561 | AR Path="/5F8CD8D4/5FB91612" Ref="#PWR?" Part="1" 562 | AR Path="/5F8CD850/5FB91612" Ref="#PWR?" Part="1" 563 | AR Path="/5FB91612" Ref="#PWR07" Part="1" 564 | F 0 "#PWR07" H 1700 700 50 0001 C CNN 565 | F 1 "+5V" H 1715 1023 50 0000 C CNN 566 | F 2 "" H 1700 850 50 0001 C CNN 567 | F 3 "" H 1700 850 50 0001 C CNN 568 | 1 1700 850 569 | 1 0 0 -1 570 | $EndComp 571 | $Comp 572 | L 74xx:74HC590 U? 573 | U 1 1 5FB91618 574 | P 4850 1500 575 | AR Path="/5F8CD850/5FB91618" Ref="U?" Part="1" 576 | AR Path="/5FB91618" Ref="U9" Part="1" 577 | F 0 "U9" V 4850 1450 50 0000 L CNN 578 | F 1 "74HC590" V 4950 1350 50 0000 L CNN 579 | F 2 "" H 4850 1550 50 0001 C CNN 580 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" H 4850 1550 50 0001 C CNN 581 | 1 4850 1500 582 | 0 1 1 0 583 | $EndComp 584 | $Comp 585 | L 74xx:74HC590 U? 586 | U 1 1 5FB9161E 587 | P 6750 1500 588 | AR Path="/5F8CD850/5FB9161E" Ref="U?" Part="1" 589 | AR Path="/5FB9161E" Ref="U12" Part="1" 590 | F 0 "U12" V 6750 1450 50 0000 L CNN 591 | F 1 "74HC590" V 6850 1350 50 0000 L CNN 592 | F 2 "" H 6750 1550 50 0001 C CNN 593 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" H 6750 1550 50 0001 C CNN 594 | 1 6750 1500 595 | 0 1 1 0 596 | $EndComp 597 | $Comp 598 | L power:+5V #PWR? 599 | U 1 1 5FB9162A 600 | P 7450 1500 601 | AR Path="/5F8CD8D4/5FB9162A" Ref="#PWR?" Part="1" 602 | AR Path="/5F8CD850/5FB9162A" Ref="#PWR?" Part="1" 603 | AR Path="/5FB9162A" Ref="#PWR046" Part="1" 604 | F 0 "#PWR046" H 7450 1350 50 0001 C CNN 605 | F 1 "+5V" V 7450 1700 50 0000 C CNN 606 | F 2 "" H 7450 1500 50 0001 C CNN 607 | F 3 "" H 7450 1500 50 0001 C CNN 608 | 1 7450 1500 609 | 1 0 0 -1 610 | $EndComp 611 | $Comp 612 | L power:+5V #PWR? 613 | U 1 1 5FB91630 614 | P 5550 1500 615 | AR Path="/5F8CD8D4/5FB91630" Ref="#PWR?" Part="1" 616 | AR Path="/5F8CD850/5FB91630" Ref="#PWR?" Part="1" 617 | AR Path="/5FB91630" Ref="#PWR037" Part="1" 618 | F 0 "#PWR037" H 5550 1350 50 0001 C CNN 619 | F 1 "+5V" V 5550 1700 50 0000 C CNN 620 | F 2 "" H 5550 1500 50 0001 C CNN 621 | F 3 "" H 5550 1500 50 0001 C CNN 622 | 1 5550 1500 623 | 1 0 0 -1 624 | $EndComp 625 | $Comp 626 | L power:GND #PWR? 627 | U 1 1 5FB91636 628 | P 4250 1500 629 | AR Path="/5F8CD850/5FB91636" Ref="#PWR?" Part="1" 630 | AR Path="/5FB91636" Ref="#PWR030" Part="1" 631 | F 0 "#PWR030" H 4250 1250 50 0001 C CNN 632 | F 1 "GND" H 4255 1327 50 0000 C CNN 633 | F 2 "" H 4250 1500 50 0001 C CNN 634 | F 3 "" H 4250 1500 50 0001 C CNN 635 | 1 4250 1500 636 | 1 0 0 -1 637 | $EndComp 638 | $Comp 639 | L power:GND #PWR? 640 | U 1 1 5FB9163C 641 | P 6150 1500 642 | AR Path="/5F8CD850/5FB9163C" Ref="#PWR?" Part="1" 643 | AR Path="/5FB9163C" Ref="#PWR040" Part="1" 644 | F 0 "#PWR040" H 6150 1250 50 0001 C CNN 645 | F 1 "GND" H 6155 1327 50 0000 C CNN 646 | F 2 "" H 6150 1500 50 0001 C CNN 647 | F 3 "" H 6150 1500 50 0001 C CNN 648 | 1 6150 1500 649 | 1 0 0 -1 650 | $EndComp 651 | Wire Wire Line 652 | 5050 1100 5150 1100 653 | Wire Wire Line 654 | 6950 1100 7050 1100 655 | Wire Wire Line 656 | 6350 1900 5850 1900 657 | Wire Wire Line 658 | 5850 1900 5850 1100 659 | NoConn ~ 4450 1900 660 | Wire Wire Line 661 | 5250 1900 5250 2150 662 | Wire Wire Line 663 | 4850 1100 4850 850 664 | Wire Wire Line 665 | 6750 1100 6750 850 666 | Wire Wire Line 667 | 4650 1900 4650 1950 668 | Wire Wire Line 669 | 4650 1950 4150 1950 670 | Wire Wire Line 671 | 4150 2150 5250 2150 672 | Wire Wire Line 673 | 5350 1100 5850 1100 674 | Wire Wire Line 675 | 6750 850 4850 850 676 | Wire Wire Line 677 | 3550 850 4850 850 678 | Wire Wire Line 679 | 4750 1900 4750 3400 680 | Wire Wire Line 681 | 4850 1900 4850 3400 682 | Wire Wire Line 683 | 4950 1900 4950 3400 684 | Wire Wire Line 685 | 5050 1900 5050 3400 686 | Wire Wire Line 687 | 5150 1900 5150 3400 688 | Wire Wire Line 689 | 5350 1900 5350 3400 690 | Wire Wire Line 691 | 6950 1100 6950 750 692 | Connection ~ 6950 1100 693 | Wire Wire Line 694 | 5050 1100 5050 750 695 | Connection ~ 5050 1100 696 | Wire Wire Line 697 | 6550 1900 6550 2700 698 | Wire Wire Line 699 | 4150 2700 6550 2700 700 | Wire Wire Line 701 | 6850 3000 4150 3000 702 | Wire Wire Line 703 | 6750 1900 6750 2900 704 | Wire Wire Line 705 | 6850 1900 6850 3000 706 | Text Notes 2550 2750 0 50 ~ 0 707 | HSYNC 708 | Text Notes 2550 2550 0 50 ~ 0 709 | VSYNC 710 | Connection ~ 1800 2400 711 | $Comp 712 | L power:GND #PWR014 713 | U 1 1 5F980386 714 | P 1800 2400 715 | F 0 "#PWR014" H 1800 2150 50 0001 C CNN 716 | F 1 "GND" H 1805 2227 50 0000 C CNN 717 | F 2 "" H 1800 2400 50 0001 C CNN 718 | F 3 "" H 1800 2400 50 0001 C CNN 719 | 1 1800 2400 720 | 1 0 0 1 721 | $EndComp 722 | NoConn ~ 1900 2700 723 | NoConn ~ 1900 2600 724 | NoConn ~ 2500 2400 725 | NoConn ~ 2500 3000 726 | NoConn ~ 2500 3200 727 | Connection ~ 1800 2500 728 | Wire Wire Line 729 | 1800 2400 1900 2400 730 | Wire Wire Line 731 | 1800 2500 1800 2400 732 | Connection ~ 1800 2900 733 | Wire Wire Line 734 | 1800 2500 1900 2500 735 | Wire Wire Line 736 | 1800 2900 1800 2500 737 | $Comp 738 | L Device:R R3 739 | U 1 1 5FAB6EFA 740 | P 2650 2800 741 | F 0 "R3" V 2600 2650 50 0000 C CNN 742 | F 1 "75" V 2650 2800 50 0000 C CNN 743 | F 2 "" H 2650 2800 50 0001 C CNN 744 | F 3 "~" H 2650 2800 50 0001 C CNN 745 | 1 2650 2800 746 | 0 -1 -1 0 747 | $EndComp 748 | $Comp 749 | L Device:R R2 750 | U 1 1 5FAB5FC5 751 | P 2650 2600 752 | F 0 "R2" V 2600 2450 50 0000 C CNN 753 | F 1 "75" V 2650 2600 50 0000 C CNN 754 | F 2 "" H 2650 2600 50 0001 C CNN 755 | F 3 "~" H 2650 2600 50 0001 C CNN 756 | 1 2650 2600 757 | 0 -1 -1 0 758 | $EndComp 759 | Connection ~ 1800 3100 760 | Wire Wire Line 761 | 1800 2900 1900 2900 762 | Wire Wire Line 763 | 1800 3100 1800 2900 764 | Wire Wire Line 765 | 1800 3100 1900 3100 766 | Wire Wire Line 767 | 1800 3300 1800 3100 768 | Wire Wire Line 769 | 1900 3300 1800 3300 770 | $Comp 771 | L Connector:DB15_Female_HighDensity J1 772 | U 1 1 5F9DF8FD 773 | P 2200 2800 774 | F 0 "J1" H 2100 2300 50 0000 C CNN 775 | F 1 "VGA connector" H 2200 2100 50 0000 C CNN 776 | F 2 "" H 1250 3200 50 0001 C CNN 777 | F 3 " ~" H 1250 3200 50 0001 C CNN 778 | 1 2200 2800 779 | 1 0 0 1 780 | $EndComp 781 | Wire Wire Line 782 | 2800 2600 2950 2600 783 | $Comp 784 | L power:+5V #PWR03 785 | U 1 1 5FA9566C 786 | P 700 9500 787 | F 0 "#PWR03" H 700 9350 50 0001 C CNN 788 | F 1 "+5V" H 715 9673 50 0000 C CNN 789 | F 2 "" H 700 9500 50 0001 C CNN 790 | F 3 "" H 700 9500 50 0001 C CNN 791 | 1 700 9500 792 | 1 0 0 -1 793 | $EndComp 794 | $Comp 795 | L power:GND #PWR016 796 | U 1 1 5FA66A23 797 | P 2300 9500 798 | F 0 "#PWR016" H 2300 9250 50 0001 C CNN 799 | F 1 "GND" H 2305 9327 50 0000 C CNN 800 | F 2 "" H 2300 9500 50 0001 C CNN 801 | F 3 "" H 2300 9500 50 0001 C CNN 802 | 1 2300 9500 803 | 1 0 0 -1 804 | $EndComp 805 | Text GLabel 1200 8800 1 50 Output ~ 0 806 | 2MHZ 807 | Text GLabel 1100 9000 1 50 Output ~ 0 808 | 4MHZ 809 | $Comp 810 | L VideoRAM:74HC161 U4 811 | U 1 1 5F9E7ADA 812 | P 1500 9500 813 | F 0 "U4" V 1550 9700 50 0000 R CNN 814 | F 1 "74HC161" V 1450 9700 50 0000 R CNN 815 | F 2 "" H 1500 9500 50 0001 C CNN 816 | F 3 "http://www.ti.com/lit/gpn/sn74LS161" H 1500 9500 50 0001 C CNN 817 | 1 1500 9500 818 | 0 -1 -1 0 819 | $EndComp 820 | NoConn ~ 1000 9000 821 | NoConn ~ 1300 9000 822 | $Comp 823 | L power:+5V #PWR09 824 | U 1 1 5F8DBB59 825 | P 1700 10000 826 | F 0 "#PWR09" H 1700 9850 50 0001 C CNN 827 | F 1 "+5V" V 1715 10173 50 0000 C CNN 828 | F 2 "" H 1700 10000 50 0001 C CNN 829 | F 3 "" H 1700 10000 50 0001 C CNN 830 | 1 1700 10000 831 | -1 0 0 1 832 | $EndComp 833 | $Comp 834 | L power:+5V #PWR06 835 | U 1 1 5F8DB979 836 | P 1600 10000 837 | F 0 "#PWR06" H 1600 9850 50 0001 C CNN 838 | F 1 "+5V" V 1615 10173 50 0000 C CNN 839 | F 2 "" H 1600 10000 50 0001 C CNN 840 | F 3 "" H 1600 10000 50 0001 C CNN 841 | 1 1600 10000 842 | -1 0 0 1 843 | $EndComp 844 | $Comp 845 | L power:+5V #PWR04 846 | U 1 1 5F8DACF6 847 | P 1500 10000 848 | F 0 "#PWR04" H 1500 9850 50 0001 C CNN 849 | F 1 "+5V" V 1515 10173 50 0000 C CNN 850 | F 2 "" H 1500 10000 50 0001 C CNN 851 | F 3 "" H 1500 10000 50 0001 C CNN 852 | 1 1500 10000 853 | -1 0 0 1 854 | $EndComp 855 | $Comp 856 | L power:+5V #PWR013 857 | U 1 1 5F8DA380 858 | P 2000 10000 859 | F 0 "#PWR013" H 2000 9850 50 0001 C CNN 860 | F 1 "+5V" V 2015 10173 50 0000 C CNN 861 | F 2 "" H 2000 10000 50 0001 C CNN 862 | F 3 "" H 2000 10000 50 0001 C CNN 863 | 1 2000 10000 864 | -1 0 0 1 865 | $EndComp 866 | NoConn ~ 1500 9000 867 | NoConn ~ 1000 10000 868 | NoConn ~ 1100 10000 869 | NoConn ~ 1200 10000 870 | NoConn ~ 1300 10000 871 | Wire Wire Line 872 | 6550 8000 6450 8000 873 | Wire Wire Line 874 | 6550 8700 6550 8000 875 | Wire Wire Line 876 | 3050 5300 3050 7050 877 | Wire Wire Line 878 | 2950 5400 2950 7050 879 | Wire Wire Line 880 | 2850 5500 2850 7050 881 | Wire Wire Line 882 | 2750 5600 2750 7050 883 | Wire Wire Line 884 | 2650 5700 2650 7050 885 | Connection ~ 5250 2150 886 | Connection ~ 6550 2700 887 | Connection ~ 6850 3000 888 | Wire Wire Line 889 | 5250 2150 5250 3400 890 | Wire Wire Line 891 | 3550 2050 3550 850 892 | Connection ~ 3550 2050 893 | Connection ~ 5250 9300 894 | $Comp 895 | L MCU_Module:Arduino_Nano_v3.x A? 896 | U 1 1 5F9261C7 897 | P 6250 9200 898 | AR Path="/5F8CED2C/5F9261C7" Ref="A?" Part="1" 899 | AR Path="/5F9261C7" Ref="A1" Part="1" 900 | F 0 "A1" V 6250 8800 50 0000 R CNN 901 | F 1 "Arduino_Nano_v3.x" V 6350 9400 50 0000 R CNN 902 | F 2 "Module:Arduino_Nano" H 6250 9200 50 0001 C CIN 903 | F 3 "http://www.mouser.com/pdfdocs/Gravitech_Arduino_Nano3_0.pdf" H 6250 9200 50 0001 C CNN 904 | 1 6250 9200 905 | 0 1 1 0 906 | $EndComp 907 | Connection ~ 5250 9200 908 | $Comp 909 | L power:PWR_FLAG #FLG01 910 | U 1 1 5FA631EE 911 | P 5250 9200 912 | F 0 "#FLG01" H 5250 9275 50 0001 C CNN 913 | F 1 "PWR_FLAG" H 5150 9350 50 0000 C CNN 914 | F 2 "" H 5250 9200 50 0001 C CNN 915 | F 3 "~" H 5250 9200 50 0001 C CNN 916 | 1 5250 9200 917 | 1 0 0 -1 918 | $EndComp 919 | Connection ~ 6950 3200 920 | Wire Wire Line 921 | 6950 1900 6950 3200 922 | Wire Wire Line 923 | 6750 2900 3550 2900 924 | Connection ~ 6750 2900 925 | Wire Wire Line 926 | 4150 3200 6950 3200 927 | $Comp 928 | L power:GND #PWR? 929 | U 1 1 5F9DE643 930 | P 7250 1100 931 | AR Path="/5F8CD850/5F9DE643" Ref="#PWR?" Part="1" 932 | AR Path="/5F9DE643" Ref="#PWR045" Part="1" 933 | F 0 "#PWR045" H 7250 850 50 0001 C CNN 934 | F 1 "GND" H 7255 927 50 0000 C CNN 935 | F 2 "" H 7250 1100 50 0001 C CNN 936 | F 3 "" H 7250 1100 50 0001 C CNN 937 | 1 7250 1100 938 | -1 0 0 1 939 | $EndComp 940 | Wire Wire Line 941 | 5050 750 6950 750 942 | Text GLabel 1300 7950 1 50 Output ~ 0 943 | ~2MHZ 944 | Text GLabel 1150 2750 1 50 Input ~ 0 945 | 2MHZ 946 | Text GLabel 950 2750 1 50 Input ~ 0 947 | 4MHZ 948 | $Comp 949 | L power:GND #PWR? 950 | U 1 1 5FA5D831 951 | P 6550 1100 952 | AR Path="/5F8CD850/5FA5D831" Ref="#PWR?" Part="1" 953 | AR Path="/5FA5D831" Ref="#PWR043" Part="1" 954 | F 0 "#PWR043" H 6550 850 50 0001 C CNN 955 | F 1 "GND" H 6555 927 50 0000 C CNN 956 | F 2 "" H 6550 1100 50 0001 C CNN 957 | F 3 "" H 6550 1100 50 0001 C CNN 958 | 1 6550 1100 959 | -1 0 0 1 960 | $EndComp 961 | $Comp 962 | L power:GND #PWR? 963 | U 1 1 5FA5DB19 964 | P 4650 1100 965 | AR Path="/5F8CD850/5FA5DB19" Ref="#PWR?" Part="1" 966 | AR Path="/5FA5DB19" Ref="#PWR033" Part="1" 967 | F 0 "#PWR033" H 4650 850 50 0001 C CNN 968 | F 1 "GND" H 4655 927 50 0000 C CNN 969 | F 2 "" H 4650 1100 50 0001 C CNN 970 | F 3 "" H 4650 1100 50 0001 C CNN 971 | 1 4650 1100 972 | -1 0 0 1 973 | $EndComp 974 | Connection ~ 2950 2600 975 | $Comp 976 | L power:+5V #PWR? 977 | U 1 1 5FB60157 978 | P 5650 3900 979 | AR Path="/5F8CD8D4/5FB60157" Ref="#PWR?" Part="1" 980 | AR Path="/5F8CD850/5FB60157" Ref="#PWR?" Part="1" 981 | AR Path="/5FB60157" Ref="#PWR038" Part="1" 982 | F 0 "#PWR038" H 5650 3750 50 0001 C CNN 983 | F 1 "+5V" V 5650 4100 50 0000 C CNN 984 | F 2 "" H 5650 3900 50 0001 C CNN 985 | F 3 "" H 5650 3900 50 0001 C CNN 986 | 1 5650 3900 987 | 1 0 0 -1 988 | $EndComp 989 | $Comp 990 | L power:GND #PWR? 991 | U 1 1 5FB60161 992 | P 4050 3900 993 | AR Path="/5F8CD850/5FB60161" Ref="#PWR?" Part="1" 994 | AR Path="/5FB60161" Ref="#PWR028" Part="1" 995 | F 0 "#PWR028" H 4050 3650 50 0001 C CNN 996 | F 1 "GND" H 4055 3727 50 0000 C CNN 997 | F 2 "" H 4050 3900 50 0001 C CNN 998 | F 3 "" H 4050 3900 50 0001 C CNN 999 | 1 4050 3900 1000 | 1 0 0 -1 1001 | $EndComp 1002 | $Comp 1003 | L VideoRAM-rescue:74HC245-8-Bit_CPU_32k U10 1004 | U 1 1 5FB6016B 1005 | P 4850 3900 1006 | F 0 "U10" V 4800 3850 50 0000 L CNN 1007 | F 1 "74HC245" V 4900 3700 50 0000 L CNN 1008 | F 2 "" H 4850 3900 50 0001 C CNN 1009 | F 3 "http://www.ti.com/lit/gpn/sn74HC245" H 4850 3900 50 0001 C CNN 1010 | 1 4850 3900 1011 | 0 1 1 0 1012 | $EndComp 1013 | $Comp 1014 | L power:+5V #PWR? 1015 | U 1 1 5FB60175 1016 | P 4450 3400 1017 | AR Path="/5F8CD8D4/5FB60175" Ref="#PWR?" Part="1" 1018 | AR Path="/5F8CD850/5FB60175" Ref="#PWR?" Part="1" 1019 | AR Path="/5FB60175" Ref="#PWR031" Part="1" 1020 | F 0 "#PWR031" H 4450 3250 50 0001 C CNN 1021 | F 1 "+5V" H 4550 3500 50 0000 C CNN 1022 | F 2 "" H 4450 3400 50 0001 C CNN 1023 | F 3 "" H 4450 3400 50 0001 C CNN 1024 | 1 4450 3400 1025 | 1 0 0 -1 1026 | $EndComp 1027 | Wire Wire Line 1028 | 4750 4400 4750 4650 1029 | Wire Wire Line 1030 | 4850 4400 4850 4750 1031 | Wire Wire Line 1032 | 4950 4400 4950 4850 1033 | Wire Wire Line 1034 | 5050 4400 5050 4950 1035 | Wire Wire Line 1036 | 5150 4400 5150 5050 1037 | Wire Wire Line 1038 | 5250 4400 5250 5150 1039 | Wire Wire Line 1040 | 5350 4400 5350 5250 1041 | Wire Wire Line 1042 | 6550 2700 6550 3400 1043 | Wire Wire Line 1044 | 6750 2900 6750 3400 1045 | Wire Wire Line 1046 | 6850 3000 6850 3400 1047 | Wire Wire Line 1048 | 6950 3200 6950 3400 1049 | Wire Wire Line 1050 | 7050 1900 7050 3400 1051 | Wire Wire Line 1052 | 7150 1900 7150 3400 1053 | $Comp 1054 | L power:+5V #PWR? 1055 | U 1 1 5FA6270A 1056 | P 7550 3900 1057 | AR Path="/5F8CD8D4/5FA6270A" Ref="#PWR?" Part="1" 1058 | AR Path="/5F8CD850/5FA6270A" Ref="#PWR?" Part="1" 1059 | AR Path="/5FA6270A" Ref="#PWR048" Part="1" 1060 | F 0 "#PWR048" H 7550 3750 50 0001 C CNN 1061 | F 1 "+5V" V 7550 4100 50 0000 C CNN 1062 | F 2 "" H 7550 3900 50 0001 C CNN 1063 | F 3 "" H 7550 3900 50 0001 C CNN 1064 | 1 7550 3900 1065 | 1 0 0 -1 1066 | $EndComp 1067 | Wire Wire Line 1068 | 7250 1900 7250 3400 1069 | Wire Wire Line 1070 | 7050 4400 7050 5750 1071 | Wire Wire Line 1072 | 6950 4400 6950 5650 1073 | Wire Wire Line 1074 | 6850 4400 6850 5550 1075 | Wire Wire Line 1076 | 6750 4400 6750 5450 1077 | Wire Wire Line 1078 | 6550 4400 6550 5350 1079 | $Comp 1080 | L power:GND #PWR? 1081 | U 1 1 5FA62F35 1082 | P 5950 3900 1083 | AR Path="/5F8CD850/5FA62F35" Ref="#PWR?" Part="1" 1084 | AR Path="/5FA62F35" Ref="#PWR039" Part="1" 1085 | F 0 "#PWR039" H 5950 3650 50 0001 C CNN 1086 | F 1 "GND" H 5955 3727 50 0000 C CNN 1087 | F 2 "" H 5950 3900 50 0001 C CNN 1088 | F 3 "" H 5950 3900 50 0001 C CNN 1089 | 1 5950 3900 1090 | 1 0 0 -1 1091 | $EndComp 1092 | $Comp 1093 | L power:+5V #PWR? 1094 | U 1 1 5FA61EEE 1095 | P 6350 3400 1096 | AR Path="/5F8CD8D4/5FA61EEE" Ref="#PWR?" Part="1" 1097 | AR Path="/5F8CD850/5FA61EEE" Ref="#PWR?" Part="1" 1098 | AR Path="/5FA61EEE" Ref="#PWR042" Part="1" 1099 | F 0 "#PWR042" H 6350 3250 50 0001 C CNN 1100 | F 1 "+5V" H 6450 3500 50 0000 C CNN 1101 | F 2 "" H 6350 3400 50 0001 C CNN 1102 | F 3 "" H 6350 3400 50 0001 C CNN 1103 | 1 6350 3400 1104 | 1 0 0 -1 1105 | $EndComp 1106 | $Comp 1107 | L VideoRAM-rescue:74HC245-8-Bit_CPU_32k U13 1108 | U 1 1 5FA5EE63 1109 | P 6750 3900 1110 | F 0 "U13" V 6700 3850 50 0000 L CNN 1111 | F 1 "74HC245" V 6800 3700 50 0000 L CNN 1112 | F 2 "" H 6750 3900 50 0001 C CNN 1113 | F 3 "http://www.ti.com/lit/gpn/sn74HC245" H 6750 3900 50 0001 C CNN 1114 | 1 6750 3900 1115 | 0 1 1 0 1116 | $EndComp 1117 | NoConn ~ 6650 4400 1118 | NoConn ~ 4650 4400 1119 | Wire Wire Line 1120 | 6650 1900 6650 3400 1121 | Wire Wire Line 1122 | 4650 1950 4650 3400 1123 | Connection ~ 4650 1950 1124 | $Comp 1125 | L 74xx:74HC04 U3 1126 | U 3 1 5FC9A408 1127 | P 2350 10300 1128 | F 0 "U3" V 2350 10350 50 0000 R CNN 1129 | F 1 "74HC04" V 2250 10450 50 0000 R CNN 1130 | F 2 "" H 2350 10300 50 0001 C CNN 1131 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" H 2350 10300 50 0001 C CNN 1132 | 3 2350 10300 1133 | 1 0 0 -1 1134 | $EndComp 1135 | $Comp 1136 | L 74xx:74HC04 U3 1137 | U 1 1 5FC9BC6F 1138 | P 1300 8250 1139 | F 0 "U3" V 1300 8300 50 0000 R CNN 1140 | F 1 "74HC04" V 1200 8400 50 0000 R CNN 1141 | F 2 "" H 1300 8250 50 0001 C CNN 1142 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" H 1300 8250 50 0001 C CNN 1143 | 1 1300 8250 1144 | 0 -1 -1 0 1145 | $EndComp 1146 | $Comp 1147 | L 74xx:74HC04 U3 1148 | U 7 1 5FC9C63A 1149 | P 2350 1350 1150 | F 0 "U3" V 2250 1400 50 0000 R CNN 1151 | F 1 "74HC04" V 2450 1500 50 0000 R CNN 1152 | F 2 "" H 2350 1350 50 0001 C CNN 1153 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" H 2350 1350 50 0001 C CNN 1154 | 7 2350 1350 1155 | 0 1 1 0 1156 | $EndComp 1157 | Text GLabel 4300 3400 0 50 Input ~ 0 1158 | 2MHZ 1159 | Text GLabel 6250 3400 0 50 Input ~ 0 1160 | 2MHZ 1161 | NoConn ~ 6050 8700 1162 | $Comp 1163 | L Oscillator:ACO-xxxMHz X1 1164 | U 1 1 5FD3B993 1165 | P 1800 10600 1166 | F 0 "X1" V 1650 10750 50 0000 C CNN 1167 | F 1 "ACO-xxxMHz" V 1550 10600 50 0000 C CNN 1168 | F 2 "Oscillator:Oscillator_DIP-14" H 2250 10250 50 0001 C CNN 1169 | F 3 "http://www.conwin.com/datasheets/cx/cx030.pdf" H 1700 10600 50 0001 C CNN 1170 | 1 1800 10600 1171 | 0 -1 -1 0 1172 | $EndComp 1173 | Wire Wire Line 1174 | 1800 10300 1800 10000 1175 | Wire Wire Line 1176 | 1800 10300 2050 10300 1177 | Connection ~ 1800 10300 1178 | Wire Wire Line 1179 | 1200 8800 1200 8900 1180 | Wire Wire Line 1181 | 1200 8900 1300 8900 1182 | Wire Wire Line 1183 | 1300 8900 1300 8550 1184 | Connection ~ 1200 8900 1185 | Wire Wire Line 1186 | 1200 8900 1200 9000 1187 | $Comp 1188 | L power:GND #PWR015 1189 | U 1 1 5FDB1232 1190 | P 2100 10600 1191 | F 0 "#PWR015" H 2100 10350 50 0001 C CNN 1192 | F 1 "GND" H 2200 10450 50 0000 C CNN 1193 | F 2 "" H 2100 10600 50 0001 C CNN 1194 | F 3 "" H 2100 10600 50 0001 C CNN 1195 | 1 2100 10600 1196 | 1 0 0 -1 1197 | $EndComp 1198 | $Comp 1199 | L power:+5V #PWR05 1200 | U 1 1 5FDB16EE 1201 | P 1500 10600 1202 | F 0 "#PWR05" H 1500 10450 50 0001 C CNN 1203 | F 1 "+5V" H 1400 10700 50 0000 C CNN 1204 | F 2 "" H 1500 10600 50 0001 C CNN 1205 | F 3 "" H 1500 10600 50 0001 C CNN 1206 | 1 1500 10600 1207 | 1 0 0 -1 1208 | $EndComp 1209 | Wire Wire Line 1210 | 2950 3000 2950 2800 1211 | Wire Wire Line 1212 | 2950 2800 2800 2800 1213 | Text GLabel 5050 750 0 50 Input ~ 0 1214 | 2MHZ 1215 | Text Notes 2950 2200 2 50 ~ 0 1216 | ~Q 1217 | Wire Wire Line 1218 | 2950 2450 2950 2600 1219 | Wire Wire Line 1220 | 2950 2300 2950 2150 1221 | Wire Wire Line 1222 | 3550 2300 3550 2250 1223 | Wire Wire Line 1224 | 3550 2450 3550 2500 1225 | Wire Wire Line 1226 | 3550 2450 2950 2300 1227 | Wire Wire Line 1228 | 2950 2450 3550 2300 1229 | Wire Wire Line 1230 | 950 6000 950 5850 1231 | $Comp 1232 | L 74xx:74HC00 U1 1233 | U 4 1 5FBC5047 1234 | P 950 5550 1235 | F 0 "U1" H 950 5500 50 0000 C CNN 1236 | F 1 "74HC00" H 950 5600 50 0000 C CNN 1237 | F 2 "" H 950 5550 50 0001 C CNN 1238 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 950 5550 50 0001 C CNN 1239 | 4 950 5550 1240 | 0 -1 1 0 1241 | $EndComp 1242 | $Comp 1243 | L 74xx:74HC00 U1 1244 | U 3 1 5FBC04D0 1245 | P 850 4950 1246 | F 0 "U1" H 850 4900 50 0000 C CNN 1247 | F 1 "74HC00" H 850 5000 50 0000 C CNN 1248 | F 2 "" H 850 4950 50 0001 C CNN 1249 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 850 4950 50 0001 C CNN 1250 | 3 850 4950 1251 | 0 1 1 0 1252 | $EndComp 1253 | Wire Wire Line 1254 | 850 4650 750 4650 1255 | Wire Wire Line 1256 | 850 4650 950 4650 1257 | Connection ~ 850 4650 1258 | $Comp 1259 | L 74xx:74HC00 U1 1260 | U 2 1 5FBBAF01 1261 | P 850 4350 1262 | F 0 "U1" H 850 4300 50 0000 C CNN 1263 | F 1 "74HC00" H 850 4400 50 0000 C CNN 1264 | F 2 "" H 850 4350 50 0001 C CNN 1265 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 850 4350 50 0001 C CNN 1266 | 2 850 4350 1267 | 0 1 1 0 1268 | $EndComp 1269 | Wire Wire Line 1270 | 1050 5250 1050 3350 1271 | Wire Wire Line 1272 | 850 3350 1050 3350 1273 | Wire Wire Line 1274 | 850 3450 850 3350 1275 | Wire Wire Line 1276 | 750 3450 850 3450 1277 | Connection ~ 850 3450 1278 | Wire Wire Line 1279 | 850 3450 950 3450 1280 | Wire Wire Line 1281 | 750 4050 850 4050 1282 | Wire Wire Line 1283 | 850 4050 950 4050 1284 | Connection ~ 850 4050 1285 | $Comp 1286 | L 74xx:74HC00 U1 1287 | U 1 1 5FBB490E 1288 | P 850 3750 1289 | F 0 "U1" H 850 3700 50 0000 C CNN 1290 | F 1 "74HC00" H 850 3800 50 0000 C CNN 1291 | F 2 "" H 850 3750 50 0001 C CNN 1292 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 850 3750 50 0001 C CNN 1293 | 1 850 3750 1294 | 0 1 1 0 1295 | $EndComp 1296 | $Comp 1297 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 1298 | U 3 1 5FA0A33A 1299 | P 1050 3050 1300 | AR Path="/5F8CD850/5FA0A33A" Ref="U?" Part="2" 1301 | AR Path="/5FA0A33A" Ref="U2" Part="3" 1302 | F 0 "U2" H 1050 3000 50 0000 C CNN 1303 | F 1 "74HC32" H 1050 3100 50 0000 C CNN 1304 | F 2 "" H 1050 3050 50 0001 C CNN 1305 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 1050 3050 50 0001 C CNN 1306 | 3 1050 3050 1307 | 0 1 1 0 1308 | $EndComp 1309 | Wire Wire Line 1310 | 2650 5600 2750 5600 1311 | Wire Wire Line 1312 | 2650 5500 2850 5500 1313 | Wire Wire Line 1314 | 2650 5400 2950 5400 1315 | Wire Wire Line 1316 | 2650 5300 3050 5300 1317 | Wire Wire Line 1318 | 2650 5200 3150 5200 1319 | Wire Wire Line 1320 | 2650 5100 3250 5100 1321 | Wire Wire Line 1322 | 2650 5000 3350 5000 1323 | $Comp 1324 | L power:GND #PWR022 1325 | U 1 1 5F988BFA 1326 | P 2650 4900 1327 | F 0 "#PWR022" H 2650 4650 50 0001 C CNN 1328 | F 1 "GND" V 2655 4772 50 0000 R CNN 1329 | F 2 "" H 2650 4900 50 0001 C CNN 1330 | F 3 "" H 2650 4900 50 0001 C CNN 1331 | 1 2650 4900 1332 | 0 -1 -1 0 1333 | $EndComp 1334 | Wire Wire Line 1335 | 1900 2800 1650 2800 1336 | Wire Wire Line 1337 | 1900 3200 1650 3200 1338 | Connection ~ 1650 3200 1339 | Wire Wire Line 1340 | 1900 3000 1650 3000 1341 | Wire Wire Line 1342 | 1650 2800 1650 3000 1343 | Connection ~ 1650 3000 1344 | Wire Wire Line 1345 | 1650 3000 1650 3200 1346 | Wire Wire Line 1347 | 1650 3200 1650 3300 1348 | $Comp 1349 | L Device:R R1 1350 | U 1 1 5F9FE84B 1351 | P 1650 3450 1352 | F 0 "R1" V 1550 3450 50 0000 C CNN 1353 | F 1 "150" V 1650 3450 50 0000 C CNN 1354 | F 2 "" H 1650 3450 50 0001 C CNN 1355 | F 3 "~" H 1650 3450 50 0001 C CNN 1356 | 1 1650 3450 1357 | -1 0 0 -1 1358 | $EndComp 1359 | Wire Wire Line 1360 | 1650 3600 1650 4900 1361 | $Comp 1362 | L power:+5V #PWR017 1363 | U 1 1 5FAE4A5A 1364 | P 2150 4600 1365 | F 0 "#PWR017" H 2150 4450 50 0001 C CNN 1366 | F 1 "+5V" H 2165 4773 50 0000 C CNN 1367 | F 2 "" H 2150 4600 50 0001 C CNN 1368 | F 3 "" H 2150 4600 50 0001 C CNN 1369 | 1 2150 4600 1370 | 1 0 0 -1 1371 | $EndComp 1372 | $Comp 1373 | L power:GND #PWR018 1374 | U 1 1 5FA678D6 1375 | P 2150 6500 1376 | F 0 "#PWR018" H 2150 6250 50 0001 C CNN 1377 | F 1 "GND" H 2155 6327 50 0000 C CNN 1378 | F 2 "" H 2150 6500 50 0001 C CNN 1379 | F 3 "" H 2150 6500 50 0001 C CNN 1380 | 1 2150 6500 1381 | 1 0 0 -1 1382 | $EndComp 1383 | $Comp 1384 | L power:GND #PWR012 1385 | U 1 1 5FFCC538 1386 | P 1650 6200 1387 | F 0 "#PWR012" H 1650 5950 50 0001 C CNN 1388 | F 1 "GND" H 1650 6050 50 0000 C CNN 1389 | F 2 "" H 1650 6200 50 0001 C CNN 1390 | F 3 "" H 1650 6200 50 0001 C CNN 1391 | 1 1650 6200 1392 | 1 0 0 -1 1393 | $EndComp 1394 | Connection ~ 2650 5700 1395 | Wire Wire Line 1396 | 950 6000 1650 6000 1397 | Text GLabel 1650 6100 0 50 Input ~ 0 1398 | ~16MHZ 1399 | NoConn ~ 1650 5000 1400 | $Comp 1401 | L VideoRAM:74HC165 U6 1402 | U 1 1 5FDF8487 1403 | P 2150 5500 1404 | F 0 "U6" V 2250 5350 50 0000 C CNN 1405 | F 1 "74HC165" V 2100 5450 50 0000 C CNN 1406 | F 2 "" H 2150 5500 50 0001 C CNN 1407 | F 3 "http://www.ti.com/lit/gpn/sn74LS165" H 2150 5500 50 0001 C CNN 1408 | 1 2150 5500 1409 | -1 0 0 -1 1410 | $EndComp 1411 | Wire Wire Line 1412 | 7250 4400 7250 5950 1413 | Wire Wire Line 1414 | 7150 4400 7150 5850 1415 | Wire Wire Line 1416 | 4550 5850 4450 5850 1417 | Wire Wire Line 1418 | 4650 5750 4450 5750 1419 | Wire Wire Line 1420 | 4450 5650 4750 5650 1421 | Wire Wire Line 1422 | 4850 5550 4450 5550 1423 | Wire Wire Line 1424 | 4950 5450 4450 5450 1425 | Wire Wire Line 1426 | 4450 5350 5050 5350 1427 | Wire Wire Line 1428 | 5350 5250 5150 5250 1429 | Wire Wire Line 1430 | 6450 8100 6450 8700 1431 | Wire Wire Line 1432 | 6450 8000 6450 7850 1433 | Wire Wire Line 1434 | 4150 2600 4150 2700 1435 | Connection ~ 4850 850 1436 | Connection ~ 4150 2700 1437 | Wire Wire Line 1438 | 4150 2700 4150 2800 1439 | Wire Wire Line 1440 | 6650 8700 6650 7850 1441 | Wire Wire Line 1442 | 4550 5850 7150 5850 1443 | Connection ~ 4550 5850 1444 | Wire Wire Line 1445 | 4650 5750 7050 5750 1446 | Connection ~ 4650 5750 1447 | Wire Wire Line 1448 | 4750 5650 6950 5650 1449 | Connection ~ 4750 5650 1450 | Wire Wire Line 1451 | 4850 5550 6850 5550 1452 | Connection ~ 4850 5550 1453 | Wire Wire Line 1454 | 4950 5450 6750 5450 1455 | Connection ~ 4950 5450 1456 | Wire Wire Line 1457 | 6550 5350 5050 5350 1458 | Connection ~ 5050 5350 1459 | Wire Wire Line 1460 | 5950 7050 5950 5150 1461 | Wire Wire Line 1462 | 5950 5150 5250 5150 1463 | Connection ~ 5250 5150 1464 | Wire Wire Line 1465 | 5250 5150 4450 5150 1466 | Wire Wire Line 1467 | 5150 5050 4450 5050 1468 | Wire Wire Line 1469 | 5050 4950 4450 4950 1470 | Wire Wire Line 1471 | 4950 4850 4450 4850 1472 | Wire Wire Line 1473 | 4850 4750 4450 4750 1474 | Wire Wire Line 1475 | 4750 4650 4450 4650 1476 | Wire Wire Line 1477 | 6050 7050 6050 5050 1478 | Wire Wire Line 1479 | 6050 5050 5150 5050 1480 | Connection ~ 5150 5050 1481 | Wire Wire Line 1482 | 5050 4950 6150 4950 1483 | Wire Wire Line 1484 | 6150 4950 6150 7050 1485 | Connection ~ 5050 4950 1486 | Wire Wire Line 1487 | 4950 4850 6250 4850 1488 | Wire Wire Line 1489 | 6250 4850 6250 7050 1490 | Connection ~ 4950 4850 1491 | Wire Wire Line 1492 | 6350 7050 6350 4750 1493 | Wire Wire Line 1494 | 6350 4750 4850 4750 1495 | Connection ~ 4850 4750 1496 | Wire Wire Line 1497 | 4750 4650 6450 4650 1498 | Wire Wire Line 1499 | 6450 4650 6450 7050 1500 | Connection ~ 4750 4650 1501 | NoConn ~ 6550 7050 1502 | NoConn ~ 6650 7050 1503 | Connection ~ 6450 8000 1504 | Wire Wire Line 1505 | 6450 8000 4950 8000 1506 | Wire Wire Line 1507 | 6150 7850 6150 8100 1508 | Connection ~ 6150 8100 1509 | Wire Wire Line 1510 | 6150 8100 6450 8100 1511 | Connection ~ 4450 5950 1512 | Wire Wire Line 1513 | 4450 5950 7250 5950 1514 | Wire Wire Line 1515 | 4450 5950 4450 7050 1516 | Wire Wire Line 1517 | 4550 5850 4550 7050 1518 | Wire Wire Line 1519 | 4650 5750 4650 7050 1520 | Wire Wire Line 1521 | 4750 5650 4750 7050 1522 | Wire Wire Line 1523 | 4850 5550 4850 7050 1524 | Wire Wire Line 1525 | 4950 5450 4950 7050 1526 | Wire Wire Line 1527 | 5050 5350 5050 7050 1528 | Wire Wire Line 1529 | 5150 5250 5150 7050 1530 | Connection ~ 5150 5250 1531 | Wire Wire Line 1532 | 5150 5250 4450 5250 1533 | Connection ~ 1050 3350 1534 | $EndSCHEMATC 1535 | -------------------------------------------------------------------------------- /DIY-VideoRAM/KiCAD/VideoRAM.sch-bak: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | EELAYER 30 0 3 | EELAYER END 4 | $Descr A4 8268 11693 portrait 5 | encoding utf-8 6 | Sheet 1 1 7 | Title "DIY Video RAM" 8 | Date "2020-10-30" 9 | Rev "1.3" 10 | Comp "" 11 | Comment1 "creativecommons.org/licenses/by-nc-sa/3.0/deed.en" 12 | Comment2 "License: CC BY-NC-SA 3.0" 13 | Comment3 "Author: Carsten Herting (Slu4)" 14 | Comment4 "" 15 | $EndDescr 16 | $Comp 17 | L power:GND #PWR032 18 | U 1 1 5FA549F2 19 | P 4450 4550 20 | F 0 "#PWR032" H 4450 4300 50 0001 C CNN 21 | F 1 "GND" V 4550 4550 50 0000 R CNN 22 | F 2 "" H 4450 4550 50 0001 C CNN 23 | F 3 "" H 4450 4550 50 0001 C CNN 24 | 1 4450 4550 25 | 0 -1 -1 0 26 | $EndComp 27 | $Comp 28 | L power:GND #PWR025 29 | U 1 1 5FAC0EE4 30 | P 3450 4850 31 | F 0 "#PWR025" H 3450 4600 50 0001 C CNN 32 | F 1 "GND" V 3500 4900 50 0000 R CNN 33 | F 2 "" H 3450 4850 50 0001 C CNN 34 | F 3 "" H 3450 4850 50 0001 C CNN 35 | 1 3450 4850 36 | 0 1 1 0 37 | $EndComp 38 | $Comp 39 | L 74xx:74HC595 U? 40 | U 1 1 5F9261E2 41 | P 4750 7450 42 | AR Path="/5F8CED2C/5F9261E2" Ref="U?" Part="1" 43 | AR Path="/5F9261E2" Ref="U11" Part="1" 44 | F 0 "U11" V 4850 7200 50 0000 L CNN 45 | F 1 "74HC595" V 4750 7200 50 0000 L CNN 46 | F 2 "" H 4750 7450 50 0001 C CNN 47 | F 3 "http://www.ti.com/lit/ds/symlink/sn74hc595.pdf" H 4750 7450 50 0001 C CNN 48 | 1 4750 7450 49 | 0 1 -1 0 50 | $EndComp 51 | $Comp 52 | L 74xx:74HC595 U? 53 | U 1 1 5F9261E8 54 | P 2950 7450 55 | AR Path="/5F8CED2C/5F9261E8" Ref="U?" Part="1" 56 | AR Path="/5F9261E8" Ref="U7" Part="1" 57 | F 0 "U7" V 3050 7200 50 0000 L CNN 58 | F 1 "74HC595" V 2950 7200 50 0000 L CNN 59 | F 2 "" H 2950 7450 50 0001 C CNN 60 | F 3 "http://www.ti.com/lit/ds/symlink/sn74hc595.pdf" H 2950 7450 50 0001 C CNN 61 | 1 2950 7450 62 | 0 1 -1 0 63 | $EndComp 64 | Wire Wire Line 65 | 5150 7850 5450 7850 66 | Wire Wire Line 67 | 5450 7850 5450 7050 68 | Wire Wire Line 69 | 4250 7050 3800 7050 70 | Wire Wire Line 71 | 3800 7050 3800 7850 72 | Wire Wire Line 73 | 3800 7850 3350 7850 74 | NoConn ~ 2450 7050 75 | $Comp 76 | L power:+5V #PWR? 77 | U 1 1 5F926200 78 | P 3050 7850 79 | AR Path="/5F8CED2C/5F926200" Ref="#PWR?" Part="1" 80 | AR Path="/5F926200" Ref="#PWR023" Part="1" 81 | F 0 "#PWR023" H 3050 7700 50 0001 C CNN 82 | F 1 "+5V" V 3100 7900 50 0000 C CNN 83 | F 2 "" H 3050 7850 50 0001 C CNN 84 | F 3 "" H 3050 7850 50 0001 C CNN 85 | 1 3050 7850 86 | -1 0 0 1 87 | $EndComp 88 | $Comp 89 | L power:+5V #PWR? 90 | U 1 1 5F926206 91 | P 4850 7850 92 | AR Path="/5F8CED2C/5F926206" Ref="#PWR?" Part="1" 93 | AR Path="/5F926206" Ref="#PWR034" Part="1" 94 | F 0 "#PWR034" H 4850 7700 50 0001 C CNN 95 | F 1 "+5V" V 4900 7900 50 0000 C CNN 96 | F 2 "" H 4850 7850 50 0001 C CNN 97 | F 3 "" H 4850 7850 50 0001 C CNN 98 | 1 4850 7850 99 | -1 0 0 1 100 | $EndComp 101 | Wire Wire Line 102 | 4950 8000 4950 7850 103 | Wire Wire Line 104 | 4950 8000 3150 8000 105 | Wire Wire Line 106 | 3150 8000 3150 7850 107 | Connection ~ 4950 8000 108 | Wire Wire Line 109 | 2750 7850 2750 8200 110 | Wire Wire Line 111 | 6050 8200 4550 8200 112 | Wire Wire Line 113 | 4550 8200 4550 7850 114 | Wire Wire Line 115 | 4550 8200 2750 8200 116 | Connection ~ 4550 8200 117 | Wire Wire Line 118 | 2850 7850 2850 8100 119 | Wire Wire Line 120 | 2850 8100 4650 8100 121 | Wire Wire Line 122 | 4650 8100 4650 7850 123 | Wire Wire Line 124 | 4650 8100 6150 8100 125 | Connection ~ 4650 8100 126 | Wire Wire Line 127 | 3350 7050 3350 5000 128 | Connection ~ 3350 5000 129 | Wire Wire Line 130 | 3350 5000 3450 5000 131 | Wire Wire Line 132 | 3250 5100 3250 7050 133 | Connection ~ 3250 5100 134 | Wire Wire Line 135 | 3250 5100 3450 5100 136 | Wire Wire Line 137 | 3150 7050 3150 5200 138 | Connection ~ 3150 5200 139 | Wire Wire Line 140 | 3150 5200 3450 5200 141 | Connection ~ 3050 5300 142 | Wire Wire Line 143 | 3050 5300 3450 5300 144 | Connection ~ 2950 5400 145 | Wire Wire Line 146 | 2950 5400 3450 5400 147 | Connection ~ 2850 5500 148 | Wire Wire Line 149 | 2850 5500 3450 5500 150 | Connection ~ 2750 5600 151 | Wire Wire Line 152 | 2750 5600 3450 5600 153 | Wire Wire Line 154 | 2650 5700 3450 5700 155 | Wire Wire Line 156 | 5450 7050 5750 7050 157 | Wire Wire Line 158 | 6050 7850 6050 8200 159 | $Comp 160 | L power:+5V #PWR? 161 | U 1 1 5F92620C 162 | P 6350 7850 163 | AR Path="/5F8CED2C/5F92620C" Ref="#PWR?" Part="1" 164 | AR Path="/5F92620C" Ref="#PWR044" Part="1" 165 | F 0 "#PWR044" H 6350 7700 50 0001 C CNN 166 | F 1 "+5V" V 6400 7900 50 0000 C CNN 167 | F 2 "" H 6350 7850 50 0001 C CNN 168 | F 3 "" H 6350 7850 50 0001 C CNN 169 | 1 6350 7850 170 | -1 0 0 1 171 | $EndComp 172 | $Comp 173 | L 74xx:74HC595 U? 174 | U 1 1 5F9261CD 175 | P 6250 7450 176 | AR Path="/5F8CED2C/5F9261CD" Ref="U?" Part="1" 177 | AR Path="/5F9261CD" Ref="U14" Part="1" 178 | F 0 "U14" V 6350 7200 50 0000 L CNN 179 | F 1 "74HC595" V 6250 7200 50 0000 L CNN 180 | F 2 "" H 6250 7450 50 0001 C CNN 181 | F 3 "http://www.ti.com/lit/ds/symlink/sn74hc595.pdf" H 6250 7450 50 0001 C CNN 182 | 1 6250 7450 183 | 0 1 -1 0 184 | $EndComp 185 | Text GLabel 2650 10300 2 50 Output ~ 0 186 | ~16MHZ 187 | Text GLabel 2750 8200 3 50 Input ~ 0 188 | ~2MHZ 189 | Text GLabel 3450 4750 0 50 Input ~ 0 190 | 2MHZ 191 | NoConn ~ 5550 9700 192 | NoConn ~ 5650 9700 193 | NoConn ~ 5750 9700 194 | NoConn ~ 5850 9700 195 | NoConn ~ 5950 9700 196 | NoConn ~ 6050 9700 197 | NoConn ~ 6150 9700 198 | NoConn ~ 6250 9700 199 | NoConn ~ 6450 9700 200 | NoConn ~ 6750 9700 201 | NoConn ~ 6850 9700 202 | NoConn ~ 6750 8700 203 | NoConn ~ 6850 8700 204 | NoConn ~ 6150 8700 205 | NoConn ~ 6250 8700 206 | NoConn ~ 6350 8700 207 | NoConn ~ 5950 8700 208 | NoConn ~ 5850 8700 209 | NoConn ~ 5750 8700 210 | NoConn ~ 5650 8700 211 | NoConn ~ 5550 8700 212 | NoConn ~ 7250 9300 213 | NoConn ~ 7250 9100 214 | Wire Wire Line 215 | 5250 9300 5250 9200 216 | $Comp 217 | L power:GND #PWR035 218 | U 1 1 5FA623F7 219 | P 5250 9300 220 | F 0 "#PWR035" H 5250 9050 50 0001 C CNN 221 | F 1 "GND" H 5255 9127 50 0000 C CNN 222 | F 2 "" H 5250 9300 50 0001 C CNN 223 | F 3 "" H 5250 9300 50 0001 C CNN 224 | 1 5250 9300 225 | 1 0 0 -1 226 | $EndComp 227 | $Comp 228 | L power:+5V #PWR049 229 | U 1 1 5FA652FB 230 | P 7250 9400 231 | F 0 "#PWR049" H 7250 9250 50 0001 C CNN 232 | F 1 "+5V" V 7265 9528 50 0000 L CNN 233 | F 2 "" H 7250 9400 50 0001 C CNN 234 | F 3 "" H 7250 9400 50 0001 C CNN 235 | 1 7250 9400 236 | -1 0 0 1 237 | $EndComp 238 | $Comp 239 | L power:GND #PWR029 240 | U 1 1 5FA66186 241 | P 4050 7450 242 | F 0 "#PWR029" H 4050 7200 50 0001 C CNN 243 | F 1 "GND" V 4050 7250 50 0000 C CNN 244 | F 2 "" H 4050 7450 50 0001 C CNN 245 | F 3 "" H 4050 7450 50 0001 C CNN 246 | 1 4050 7450 247 | 1 0 0 -1 248 | $EndComp 249 | $Comp 250 | L power:GND #PWR019 251 | U 1 1 5FA6657C 252 | P 2250 7450 253 | F 0 "#PWR019" H 2250 7200 50 0001 C CNN 254 | F 1 "GND" V 2250 7250 50 0000 C CNN 255 | F 2 "" H 2250 7450 50 0001 C CNN 256 | F 3 "" H 2250 7450 50 0001 C CNN 257 | 1 2250 7450 258 | 1 0 0 -1 259 | $EndComp 260 | $Comp 261 | L power:GND #PWR041 262 | U 1 1 5FA67039 263 | P 5550 7450 264 | F 0 "#PWR041" H 5550 7200 50 0001 C CNN 265 | F 1 "GND" V 5550 7250 50 0000 C CNN 266 | F 2 "" H 5550 7450 50 0001 C CNN 267 | F 3 "" H 5550 7450 50 0001 C CNN 268 | 1 5550 7450 269 | 1 0 0 -1 270 | $EndComp 271 | $Comp 272 | L power:GND #PWR026 273 | U 1 1 5FA67FA7 274 | P 3450 5950 275 | F 0 "#PWR026" H 3450 5700 50 0001 C CNN 276 | F 1 "GND" H 3455 5777 50 0000 C CNN 277 | F 2 "" H 3450 5950 50 0001 C CNN 278 | F 3 "" H 3450 5950 50 0001 C CNN 279 | 1 3450 5950 280 | 1 0 0 -1 281 | $EndComp 282 | $Comp 283 | L power:+5V #PWR047 284 | U 1 1 5FA94D8A 285 | P 6850 7450 286 | F 0 "#PWR047" H 6850 7300 50 0001 C CNN 287 | F 1 "+5V" V 6850 7650 50 0000 C CNN 288 | F 2 "" H 6850 7450 50 0001 C CNN 289 | F 3 "" H 6850 7450 50 0001 C CNN 290 | 1 6850 7450 291 | 1 0 0 -1 292 | $EndComp 293 | $Comp 294 | L power:+5V #PWR036 295 | U 1 1 5FA95230 296 | P 5350 7450 297 | F 0 "#PWR036" H 5350 7300 50 0001 C CNN 298 | F 1 "+5V" V 5350 7650 50 0000 C CNN 299 | F 2 "" H 5350 7450 50 0001 C CNN 300 | F 3 "" H 5350 7450 50 0001 C CNN 301 | 1 5350 7450 302 | 1 0 0 -1 303 | $EndComp 304 | $Comp 305 | L 74xx:74HC00 U? 306 | U 5 1 5FA9A5EB 307 | P 2350 850 308 | AR Path="/5F8CD8D4/5FA9A5EB" Ref="U?" Part="5" 309 | AR Path="/5FA9A5EB" Ref="U5" Part="5" 310 | F 0 "U5" V 2250 850 50 0000 C CNN 311 | F 1 "74HC00" V 2450 850 50 0000 C CNN 312 | F 2 "" H 2350 850 50 0001 C CNN 313 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 2350 850 50 0001 C CNN 314 | 5 2350 850 315 | 0 1 1 0 316 | $EndComp 317 | $Comp 318 | L power:GND #PWR? 319 | U 1 1 5FA9A5F1 320 | P 1850 850 321 | AR Path="/5F8CD8D4/5FA9A5F1" Ref="#PWR?" Part="1" 322 | AR Path="/5FA9A5F1" Ref="#PWR010" Part="1" 323 | F 0 "#PWR010" H 1850 600 50 0001 C CNN 324 | F 1 "GND" H 1855 677 50 0000 C CNN 325 | F 2 "" H 1850 850 50 0001 C CNN 326 | F 3 "" H 1850 850 50 0001 C CNN 327 | 1 1850 850 328 | 1 0 0 -1 329 | $EndComp 330 | $Comp 331 | L power:+5V #PWR? 332 | U 1 1 5FA9A5F7 333 | P 2850 850 334 | AR Path="/5F8CD8D4/5FA9A5F7" Ref="#PWR?" Part="1" 335 | AR Path="/5FA9A5F7" Ref="#PWR020" Part="1" 336 | F 0 "#PWR020" H 2850 700 50 0001 C CNN 337 | F 1 "+5V" H 2865 1023 50 0000 C CNN 338 | F 2 "" H 2850 850 50 0001 C CNN 339 | F 3 "" H 2850 850 50 0001 C CNN 340 | 1 2850 850 341 | 1 0 0 -1 342 | $EndComp 343 | $Comp 344 | L power:GND #PWR? 345 | U 1 1 5FAA3963 346 | P 1850 1350 347 | AR Path="/5F8CD8D4/5FAA3963" Ref="#PWR?" Part="1" 348 | AR Path="/5FAA3963" Ref="#PWR011" Part="1" 349 | F 0 "#PWR011" H 1850 1100 50 0001 C CNN 350 | F 1 "GND" H 1855 1177 50 0000 C CNN 351 | F 2 "" H 1850 1350 50 0001 C CNN 352 | F 3 "" H 1850 1350 50 0001 C CNN 353 | 1 1850 1350 354 | 1 0 0 -1 355 | $EndComp 356 | $Comp 357 | L power:+5V #PWR? 358 | U 1 1 5FAA3969 359 | P 2850 1350 360 | AR Path="/5F8CD8D4/5FAA3969" Ref="#PWR?" Part="1" 361 | AR Path="/5FAA3969" Ref="#PWR021" Part="1" 362 | F 0 "#PWR021" H 2850 1200 50 0001 C CNN 363 | F 1 "+5V" H 2865 1523 50 0000 C CNN 364 | F 2 "" H 2850 1350 50 0001 C CNN 365 | F 3 "" H 2850 1350 50 0001 C CNN 366 | 1 2850 1350 367 | 1 0 0 -1 368 | $EndComp 369 | $Comp 370 | L power:+5V #PWR024 371 | U 1 1 5FAD7FB5 372 | P 3450 4550 373 | F 0 "#PWR024" H 3450 4400 50 0001 C CNN 374 | F 1 "+5V" H 3465 4723 50 0000 C CNN 375 | F 2 "" H 3450 4550 50 0001 C CNN 376 | F 3 "" H 3450 4550 50 0001 C CNN 377 | 1 3450 4550 378 | 1 0 0 -1 379 | $EndComp 380 | $Comp 381 | L VideoRAM:CY62256 U8 382 | U 1 1 5FA30EEE 383 | P 3950 5400 384 | F 0 "U8" V 3950 5750 50 0000 C CNN 385 | F 1 "CY62256" V 3950 5350 50 0000 C CNN 386 | F 2 "" H 3950 5400 50 0001 C CNN 387 | F 3 "" H 3950 5400 50 0001 C CNN 388 | 1 3950 5400 389 | -1 0 0 -1 390 | $EndComp 391 | $Comp 392 | L power:+5V #PWR027 393 | U 1 1 5FAE4ED6 394 | P 3550 7450 395 | F 0 "#PWR027" H 3550 7300 50 0001 C CNN 396 | F 1 "+5V" V 3550 7650 50 0000 C CNN 397 | F 2 "" H 3550 7450 50 0001 C CNN 398 | F 3 "" H 3550 7450 50 0001 C CNN 399 | 1 3550 7450 400 | 1 0 0 -1 401 | $EndComp 402 | Text GLabel 3450 4650 0 50 Input ~ 0 403 | ~2MHZ 404 | Text Notes 3600 2700 2 50 ~ 0 405 | ~S 406 | Text Notes 3600 2050 2 50 ~ 0 407 | ~R 408 | Text Notes 2950 2600 2 50 ~ 0 409 | Q 410 | $Comp 411 | L 74xx:74HC00 U? 412 | U 2 1 5FB915BD 413 | P 3850 2700 414 | AR Path="/5F8CD850/5FB915BD" Ref="U?" Part="2" 415 | AR Path="/5FB915BD" Ref="U5" Part="2" 416 | F 0 "U5" H 3850 2650 50 0000 C CNN 417 | F 1 "74HC00" H 3850 2750 50 0000 C CNN 418 | F 2 "" H 3850 2700 50 0001 C CNN 419 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3850 2700 50 0001 C CNN 420 | 2 3850 2700 421 | -1 0 0 1 422 | $EndComp 423 | $Comp 424 | L 74xx:74HC00 U? 425 | U 1 1 5FB915C3 426 | P 3850 2050 427 | AR Path="/5F8CD850/5FB915C3" Ref="U?" Part="1" 428 | AR Path="/5FB915C3" Ref="U5" Part="1" 429 | F 0 "U5" H 3850 2000 50 0000 C CNN 430 | F 1 "74HC00" H 3850 2100 50 0000 C CNN 431 | F 2 "" H 3850 2050 50 0001 C CNN 432 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3850 2050 50 0001 C CNN 433 | 1 3850 2050 434 | -1 0 0 1 435 | $EndComp 436 | $Comp 437 | L 74xx:74HC00 U? 438 | U 5 1 5FB915C9 439 | P 1200 1350 440 | AR Path="/5F8CD8D4/5FB915C9" Ref="U?" Part="5" 441 | AR Path="/5F8CD850/5FB915C9" Ref="U?" Part="5" 442 | AR Path="/5FB915C9" Ref="U1" Part="5" 443 | F 0 "U1" V 1100 1350 50 0000 C CNN 444 | F 1 "74HC00" V 1300 1350 50 0000 C CNN 445 | F 2 "" H 1200 1350 50 0001 C CNN 446 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 1200 1350 50 0001 C CNN 447 | 5 1200 1350 448 | 0 1 1 0 449 | $EndComp 450 | $Comp 451 | L power:GND #PWR? 452 | U 1 1 5FB915CF 453 | P 700 1350 454 | AR Path="/5F8CD8D4/5FB915CF" Ref="#PWR?" Part="1" 455 | AR Path="/5F8CD850/5FB915CF" Ref="#PWR?" Part="1" 456 | AR Path="/5FB915CF" Ref="#PWR02" Part="1" 457 | F 0 "#PWR02" H 700 1100 50 0001 C CNN 458 | F 1 "GND" H 705 1177 50 0000 C CNN 459 | F 2 "" H 700 1350 50 0001 C CNN 460 | F 3 "" H 700 1350 50 0001 C CNN 461 | 1 700 1350 462 | 1 0 0 -1 463 | $EndComp 464 | $Comp 465 | L power:+5V #PWR? 466 | U 1 1 5FB915D5 467 | P 1700 1350 468 | AR Path="/5F8CD8D4/5FB915D5" Ref="#PWR?" Part="1" 469 | AR Path="/5F8CD850/5FB915D5" Ref="#PWR?" Part="1" 470 | AR Path="/5FB915D5" Ref="#PWR08" Part="1" 471 | F 0 "#PWR08" H 1700 1200 50 0001 C CNN 472 | F 1 "+5V" H 1700 1500 50 0000 C CNN 473 | F 2 "" H 1700 1350 50 0001 C CNN 474 | F 3 "" H 1700 1350 50 0001 C CNN 475 | 1 1700 1350 476 | 1 0 0 -1 477 | $EndComp 478 | $Comp 479 | L 74xx:74HC00 U? 480 | U 4 1 5FB915E3 481 | P 3250 2150 482 | AR Path="/5F8CD850/5FB915E3" Ref="U?" Part="4" 483 | AR Path="/5FB915E3" Ref="U5" Part="4" 484 | F 0 "U5" H 3250 2100 50 0000 C CNN 485 | F 1 "74HC00" H 3250 2200 50 0000 C CNN 486 | F 2 "" H 3250 2150 50 0001 C CNN 487 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3250 2150 50 0001 C CNN 488 | 4 3250 2150 489 | -1 0 0 -1 490 | $EndComp 491 | $Comp 492 | L 74xx:74HC00 U? 493 | U 3 1 5FB915EE 494 | P 3250 2600 495 | AR Path="/5F8CD850/5FB915EE" Ref="U?" Part="3" 496 | AR Path="/5FB915EE" Ref="U5" Part="3" 497 | F 0 "U5" H 3250 2550 50 0000 C CNN 498 | F 1 "74HC00" H 3250 2650 50 0000 C CNN 499 | F 2 "" H 3250 2600 50 0001 C CNN 500 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 3250 2600 50 0001 C CNN 501 | 3 3250 2600 502 | -1 0 0 -1 503 | $EndComp 504 | $Comp 505 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 506 | U 1 1 5FB915F4 507 | P 3850 3100 508 | AR Path="/5F8CD850/5FB915F4" Ref="U?" Part="1" 509 | AR Path="/5FB915F4" Ref="U2" Part="1" 510 | F 0 "U2" H 3850 3150 50 0000 C CNN 511 | F 1 "74HC32" H 3850 3050 50 0000 C CNN 512 | F 2 "" H 3850 3100 50 0001 C CNN 513 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 3850 3100 50 0001 C CNN 514 | 1 3850 3100 515 | -1 0 0 1 516 | $EndComp 517 | $Comp 518 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 519 | U 2 1 5FB915FA 520 | P 3250 3000 521 | AR Path="/5F8CD850/5FB915FA" Ref="U?" Part="2" 522 | AR Path="/5FB915FA" Ref="U2" Part="2" 523 | F 0 "U2" H 3250 2950 50 0000 C CNN 524 | F 1 "74HC32" H 3250 3050 50 0000 C CNN 525 | F 2 "" H 3250 3000 50 0001 C CNN 526 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 3250 3000 50 0001 C CNN 527 | 2 3250 3000 528 | -1 0 0 1 529 | $EndComp 530 | $Comp 531 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 532 | U 5 1 5FB91606 533 | P 1200 850 534 | AR Path="/5F8CD850/5FB91606" Ref="U?" Part="5" 535 | AR Path="/5FB91606" Ref="U2" Part="5" 536 | F 0 "U2" V 1100 850 50 0000 C CNN 537 | F 1 "74HC32" V 1300 850 50 0000 C CNN 538 | F 2 "" H 1200 850 50 0001 C CNN 539 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 1200 850 50 0001 C CNN 540 | 5 1200 850 541 | 0 1 1 0 542 | $EndComp 543 | $Comp 544 | L power:GND #PWR? 545 | U 1 1 5FB9160C 546 | P 700 850 547 | AR Path="/5F8CD8D4/5FB9160C" Ref="#PWR?" Part="1" 548 | AR Path="/5F8CD850/5FB9160C" Ref="#PWR?" Part="1" 549 | AR Path="/5FB9160C" Ref="#PWR01" Part="1" 550 | F 0 "#PWR01" H 700 600 50 0001 C CNN 551 | F 1 "GND" H 705 677 50 0000 C CNN 552 | F 2 "" H 700 850 50 0001 C CNN 553 | F 3 "" H 700 850 50 0001 C CNN 554 | 1 700 850 555 | 1 0 0 -1 556 | $EndComp 557 | $Comp 558 | L power:+5V #PWR? 559 | U 1 1 5FB91612 560 | P 1700 850 561 | AR Path="/5F8CD8D4/5FB91612" Ref="#PWR?" Part="1" 562 | AR Path="/5F8CD850/5FB91612" Ref="#PWR?" Part="1" 563 | AR Path="/5FB91612" Ref="#PWR07" Part="1" 564 | F 0 "#PWR07" H 1700 700 50 0001 C CNN 565 | F 1 "+5V" H 1715 1023 50 0000 C CNN 566 | F 2 "" H 1700 850 50 0001 C CNN 567 | F 3 "" H 1700 850 50 0001 C CNN 568 | 1 1700 850 569 | 1 0 0 -1 570 | $EndComp 571 | $Comp 572 | L 74xx:74HC590 U? 573 | U 1 1 5FB91618 574 | P 4850 1500 575 | AR Path="/5F8CD850/5FB91618" Ref="U?" Part="1" 576 | AR Path="/5FB91618" Ref="U9" Part="1" 577 | F 0 "U9" V 4850 1450 50 0000 L CNN 578 | F 1 "74HC590" V 4950 1350 50 0000 L CNN 579 | F 2 "" H 4850 1550 50 0001 C CNN 580 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" H 4850 1550 50 0001 C CNN 581 | 1 4850 1500 582 | 0 1 1 0 583 | $EndComp 584 | $Comp 585 | L 74xx:74HC590 U? 586 | U 1 1 5FB9161E 587 | P 6750 1500 588 | AR Path="/5F8CD850/5FB9161E" Ref="U?" Part="1" 589 | AR Path="/5FB9161E" Ref="U12" Part="1" 590 | F 0 "U12" V 6750 1450 50 0000 L CNN 591 | F 1 "74HC590" V 6850 1350 50 0000 L CNN 592 | F 2 "" H 6750 1550 50 0001 C CNN 593 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" H 6750 1550 50 0001 C CNN 594 | 1 6750 1500 595 | 0 1 1 0 596 | $EndComp 597 | $Comp 598 | L power:+5V #PWR? 599 | U 1 1 5FB9162A 600 | P 7450 1500 601 | AR Path="/5F8CD8D4/5FB9162A" Ref="#PWR?" Part="1" 602 | AR Path="/5F8CD850/5FB9162A" Ref="#PWR?" Part="1" 603 | AR Path="/5FB9162A" Ref="#PWR046" Part="1" 604 | F 0 "#PWR046" H 7450 1350 50 0001 C CNN 605 | F 1 "+5V" V 7450 1700 50 0000 C CNN 606 | F 2 "" H 7450 1500 50 0001 C CNN 607 | F 3 "" H 7450 1500 50 0001 C CNN 608 | 1 7450 1500 609 | 1 0 0 -1 610 | $EndComp 611 | $Comp 612 | L power:+5V #PWR? 613 | U 1 1 5FB91630 614 | P 5550 1500 615 | AR Path="/5F8CD8D4/5FB91630" Ref="#PWR?" Part="1" 616 | AR Path="/5F8CD850/5FB91630" Ref="#PWR?" Part="1" 617 | AR Path="/5FB91630" Ref="#PWR037" Part="1" 618 | F 0 "#PWR037" H 5550 1350 50 0001 C CNN 619 | F 1 "+5V" V 5550 1700 50 0000 C CNN 620 | F 2 "" H 5550 1500 50 0001 C CNN 621 | F 3 "" H 5550 1500 50 0001 C CNN 622 | 1 5550 1500 623 | 1 0 0 -1 624 | $EndComp 625 | $Comp 626 | L power:GND #PWR? 627 | U 1 1 5FB91636 628 | P 4250 1500 629 | AR Path="/5F8CD850/5FB91636" Ref="#PWR?" Part="1" 630 | AR Path="/5FB91636" Ref="#PWR030" Part="1" 631 | F 0 "#PWR030" H 4250 1250 50 0001 C CNN 632 | F 1 "GND" H 4255 1327 50 0000 C CNN 633 | F 2 "" H 4250 1500 50 0001 C CNN 634 | F 3 "" H 4250 1500 50 0001 C CNN 635 | 1 4250 1500 636 | 1 0 0 -1 637 | $EndComp 638 | $Comp 639 | L power:GND #PWR? 640 | U 1 1 5FB9163C 641 | P 6150 1500 642 | AR Path="/5F8CD850/5FB9163C" Ref="#PWR?" Part="1" 643 | AR Path="/5FB9163C" Ref="#PWR040" Part="1" 644 | F 0 "#PWR040" H 6150 1250 50 0001 C CNN 645 | F 1 "GND" H 6155 1327 50 0000 C CNN 646 | F 2 "" H 6150 1500 50 0001 C CNN 647 | F 3 "" H 6150 1500 50 0001 C CNN 648 | 1 6150 1500 649 | 1 0 0 -1 650 | $EndComp 651 | Wire Wire Line 652 | 5050 1100 5150 1100 653 | Wire Wire Line 654 | 6950 1100 7050 1100 655 | Wire Wire Line 656 | 6350 1900 5850 1900 657 | Wire Wire Line 658 | 5850 1900 5850 1100 659 | NoConn ~ 4450 1900 660 | Wire Wire Line 661 | 5250 1900 5250 2150 662 | Wire Wire Line 663 | 4850 1100 4850 850 664 | Wire Wire Line 665 | 6750 1100 6750 850 666 | Wire Wire Line 667 | 4650 1900 4650 1950 668 | Wire Wire Line 669 | 4650 1950 4150 1950 670 | Wire Wire Line 671 | 4150 2150 5250 2150 672 | Wire Wire Line 673 | 5350 1100 5850 1100 674 | Wire Wire Line 675 | 6750 850 4850 850 676 | Wire Wire Line 677 | 3550 850 4850 850 678 | Wire Wire Line 679 | 4750 1900 4750 3400 680 | Wire Wire Line 681 | 4850 1900 4850 3400 682 | Wire Wire Line 683 | 4950 1900 4950 3400 684 | Wire Wire Line 685 | 5050 1900 5050 3400 686 | Wire Wire Line 687 | 5150 1900 5150 3400 688 | Wire Wire Line 689 | 5350 1900 5350 3400 690 | Wire Wire Line 691 | 6950 1100 6950 750 692 | Connection ~ 6950 1100 693 | Wire Wire Line 694 | 5050 1100 5050 750 695 | Connection ~ 5050 1100 696 | Wire Wire Line 697 | 6550 1900 6550 2700 698 | Wire Wire Line 699 | 4150 2700 6550 2700 700 | Wire Wire Line 701 | 6850 3000 4150 3000 702 | Wire Wire Line 703 | 6750 1900 6750 2900 704 | Wire Wire Line 705 | 6850 1900 6850 3000 706 | Text Notes 2550 2750 0 50 ~ 0 707 | HSYNC 708 | Text Notes 2550 2550 0 50 ~ 0 709 | VSYNC 710 | Connection ~ 1800 2400 711 | $Comp 712 | L power:GND #PWR014 713 | U 1 1 5F980386 714 | P 1800 2400 715 | F 0 "#PWR014" H 1800 2150 50 0001 C CNN 716 | F 1 "GND" H 1805 2227 50 0000 C CNN 717 | F 2 "" H 1800 2400 50 0001 C CNN 718 | F 3 "" H 1800 2400 50 0001 C CNN 719 | 1 1800 2400 720 | 1 0 0 1 721 | $EndComp 722 | NoConn ~ 1900 2700 723 | NoConn ~ 1900 2600 724 | NoConn ~ 2500 2400 725 | NoConn ~ 2500 3000 726 | NoConn ~ 2500 3200 727 | Connection ~ 1800 2500 728 | Wire Wire Line 729 | 1800 2400 1900 2400 730 | Wire Wire Line 731 | 1800 2500 1800 2400 732 | Connection ~ 1800 2900 733 | Wire Wire Line 734 | 1800 2500 1900 2500 735 | Wire Wire Line 736 | 1800 2900 1800 2500 737 | $Comp 738 | L Device:R R3 739 | U 1 1 5FAB6EFA 740 | P 2650 2800 741 | F 0 "R3" V 2600 2650 50 0000 C CNN 742 | F 1 "75" V 2650 2800 50 0000 C CNN 743 | F 2 "" H 2650 2800 50 0001 C CNN 744 | F 3 "~" H 2650 2800 50 0001 C CNN 745 | 1 2650 2800 746 | 0 -1 -1 0 747 | $EndComp 748 | $Comp 749 | L Device:R R2 750 | U 1 1 5FAB5FC5 751 | P 2650 2600 752 | F 0 "R2" V 2600 2450 50 0000 C CNN 753 | F 1 "75" V 2650 2600 50 0000 C CNN 754 | F 2 "" H 2650 2600 50 0001 C CNN 755 | F 3 "~" H 2650 2600 50 0001 C CNN 756 | 1 2650 2600 757 | 0 -1 -1 0 758 | $EndComp 759 | Connection ~ 1800 3100 760 | Wire Wire Line 761 | 1800 2900 1900 2900 762 | Wire Wire Line 763 | 1800 3100 1800 2900 764 | Wire Wire Line 765 | 1800 3100 1900 3100 766 | Wire Wire Line 767 | 1800 3300 1800 3100 768 | Wire Wire Line 769 | 1900 3300 1800 3300 770 | $Comp 771 | L Connector:DB15_Female_HighDensity J1 772 | U 1 1 5F9DF8FD 773 | P 2200 2800 774 | F 0 "J1" H 2100 2300 50 0000 C CNN 775 | F 1 "VGA connector" H 2200 2100 50 0000 C CNN 776 | F 2 "" H 1250 3200 50 0001 C CNN 777 | F 3 " ~" H 1250 3200 50 0001 C CNN 778 | 1 2200 2800 779 | 1 0 0 1 780 | $EndComp 781 | Wire Wire Line 782 | 2800 2600 2950 2600 783 | $Comp 784 | L power:+5V #PWR03 785 | U 1 1 5FA9566C 786 | P 700 9500 787 | F 0 "#PWR03" H 700 9350 50 0001 C CNN 788 | F 1 "+5V" H 715 9673 50 0000 C CNN 789 | F 2 "" H 700 9500 50 0001 C CNN 790 | F 3 "" H 700 9500 50 0001 C CNN 791 | 1 700 9500 792 | 1 0 0 -1 793 | $EndComp 794 | $Comp 795 | L power:GND #PWR016 796 | U 1 1 5FA66A23 797 | P 2300 9500 798 | F 0 "#PWR016" H 2300 9250 50 0001 C CNN 799 | F 1 "GND" H 2305 9327 50 0000 C CNN 800 | F 2 "" H 2300 9500 50 0001 C CNN 801 | F 3 "" H 2300 9500 50 0001 C CNN 802 | 1 2300 9500 803 | 1 0 0 -1 804 | $EndComp 805 | Text GLabel 1200 8800 1 50 Output ~ 0 806 | 2MHZ 807 | Text GLabel 1100 9000 1 50 Output ~ 0 808 | 4MHZ 809 | $Comp 810 | L VideoRAM:74HC161 U4 811 | U 1 1 5F9E7ADA 812 | P 1500 9500 813 | F 0 "U4" V 1550 9700 50 0000 R CNN 814 | F 1 "74HC161" V 1450 9700 50 0000 R CNN 815 | F 2 "" H 1500 9500 50 0001 C CNN 816 | F 3 "http://www.ti.com/lit/gpn/sn74LS161" H 1500 9500 50 0001 C CNN 817 | 1 1500 9500 818 | 0 -1 -1 0 819 | $EndComp 820 | NoConn ~ 1000 9000 821 | NoConn ~ 1300 9000 822 | $Comp 823 | L power:+5V #PWR09 824 | U 1 1 5F8DBB59 825 | P 1700 10000 826 | F 0 "#PWR09" H 1700 9850 50 0001 C CNN 827 | F 1 "+5V" V 1715 10173 50 0000 C CNN 828 | F 2 "" H 1700 10000 50 0001 C CNN 829 | F 3 "" H 1700 10000 50 0001 C CNN 830 | 1 1700 10000 831 | -1 0 0 1 832 | $EndComp 833 | $Comp 834 | L power:+5V #PWR06 835 | U 1 1 5F8DB979 836 | P 1600 10000 837 | F 0 "#PWR06" H 1600 9850 50 0001 C CNN 838 | F 1 "+5V" V 1615 10173 50 0000 C CNN 839 | F 2 "" H 1600 10000 50 0001 C CNN 840 | F 3 "" H 1600 10000 50 0001 C CNN 841 | 1 1600 10000 842 | -1 0 0 1 843 | $EndComp 844 | $Comp 845 | L power:+5V #PWR04 846 | U 1 1 5F8DACF6 847 | P 1500 10000 848 | F 0 "#PWR04" H 1500 9850 50 0001 C CNN 849 | F 1 "+5V" V 1515 10173 50 0000 C CNN 850 | F 2 "" H 1500 10000 50 0001 C CNN 851 | F 3 "" H 1500 10000 50 0001 C CNN 852 | 1 1500 10000 853 | -1 0 0 1 854 | $EndComp 855 | $Comp 856 | L power:+5V #PWR013 857 | U 1 1 5F8DA380 858 | P 2000 10000 859 | F 0 "#PWR013" H 2000 9850 50 0001 C CNN 860 | F 1 "+5V" V 2015 10173 50 0000 C CNN 861 | F 2 "" H 2000 10000 50 0001 C CNN 862 | F 3 "" H 2000 10000 50 0001 C CNN 863 | 1 2000 10000 864 | -1 0 0 1 865 | $EndComp 866 | NoConn ~ 1500 9000 867 | NoConn ~ 1000 10000 868 | NoConn ~ 1100 10000 869 | NoConn ~ 1200 10000 870 | NoConn ~ 1300 10000 871 | Wire Wire Line 872 | 6550 8000 6450 8000 873 | Wire Wire Line 874 | 6550 8700 6550 8000 875 | Wire Wire Line 876 | 3050 5300 3050 7050 877 | Wire Wire Line 878 | 2950 5400 2950 7050 879 | Wire Wire Line 880 | 2850 5500 2850 7050 881 | Wire Wire Line 882 | 2750 5600 2750 7050 883 | Wire Wire Line 884 | 2650 5700 2650 7050 885 | Connection ~ 5250 2150 886 | Connection ~ 6550 2700 887 | Connection ~ 6850 3000 888 | Wire Wire Line 889 | 5250 2150 5250 3400 890 | Wire Wire Line 891 | 3550 2050 3550 850 892 | Connection ~ 3550 2050 893 | Connection ~ 5250 9300 894 | $Comp 895 | L MCU_Module:Arduino_Nano_v3.x A? 896 | U 1 1 5F9261C7 897 | P 6250 9200 898 | AR Path="/5F8CED2C/5F9261C7" Ref="A?" Part="1" 899 | AR Path="/5F9261C7" Ref="A1" Part="1" 900 | F 0 "A1" V 6250 8800 50 0000 R CNN 901 | F 1 "Arduino_Nano_v3.x" V 6350 9400 50 0000 R CNN 902 | F 2 "Module:Arduino_Nano" H 6250 9200 50 0001 C CIN 903 | F 3 "http://www.mouser.com/pdfdocs/Gravitech_Arduino_Nano3_0.pdf" H 6250 9200 50 0001 C CNN 904 | 1 6250 9200 905 | 0 1 1 0 906 | $EndComp 907 | Connection ~ 5250 9200 908 | $Comp 909 | L power:PWR_FLAG #FLG01 910 | U 1 1 5FA631EE 911 | P 5250 9200 912 | F 0 "#FLG01" H 5250 9275 50 0001 C CNN 913 | F 1 "PWR_FLAG" H 5150 9350 50 0000 C CNN 914 | F 2 "" H 5250 9200 50 0001 C CNN 915 | F 3 "~" H 5250 9200 50 0001 C CNN 916 | 1 5250 9200 917 | 1 0 0 -1 918 | $EndComp 919 | Connection ~ 6950 3200 920 | Wire Wire Line 921 | 6950 1900 6950 3200 922 | Wire Wire Line 923 | 6750 2900 3550 2900 924 | Connection ~ 6750 2900 925 | Wire Wire Line 926 | 4150 3200 6950 3200 927 | $Comp 928 | L power:GND #PWR? 929 | U 1 1 5F9DE643 930 | P 7250 1100 931 | AR Path="/5F8CD850/5F9DE643" Ref="#PWR?" Part="1" 932 | AR Path="/5F9DE643" Ref="#PWR045" Part="1" 933 | F 0 "#PWR045" H 7250 850 50 0001 C CNN 934 | F 1 "GND" H 7255 927 50 0000 C CNN 935 | F 2 "" H 7250 1100 50 0001 C CNN 936 | F 3 "" H 7250 1100 50 0001 C CNN 937 | 1 7250 1100 938 | -1 0 0 1 939 | $EndComp 940 | Wire Wire Line 941 | 5050 750 6950 750 942 | Text GLabel 1300 7950 1 50 Output ~ 0 943 | ~2MHZ 944 | Text GLabel 1150 2750 1 50 Input ~ 0 945 | 2MHZ 946 | Text GLabel 950 2750 1 50 Input ~ 0 947 | 4MHZ 948 | $Comp 949 | L power:GND #PWR? 950 | U 1 1 5FA5D831 951 | P 6550 1100 952 | AR Path="/5F8CD850/5FA5D831" Ref="#PWR?" Part="1" 953 | AR Path="/5FA5D831" Ref="#PWR043" Part="1" 954 | F 0 "#PWR043" H 6550 850 50 0001 C CNN 955 | F 1 "GND" H 6555 927 50 0000 C CNN 956 | F 2 "" H 6550 1100 50 0001 C CNN 957 | F 3 "" H 6550 1100 50 0001 C CNN 958 | 1 6550 1100 959 | -1 0 0 1 960 | $EndComp 961 | $Comp 962 | L power:GND #PWR? 963 | U 1 1 5FA5DB19 964 | P 4650 1100 965 | AR Path="/5F8CD850/5FA5DB19" Ref="#PWR?" Part="1" 966 | AR Path="/5FA5DB19" Ref="#PWR033" Part="1" 967 | F 0 "#PWR033" H 4650 850 50 0001 C CNN 968 | F 1 "GND" H 4655 927 50 0000 C CNN 969 | F 2 "" H 4650 1100 50 0001 C CNN 970 | F 3 "" H 4650 1100 50 0001 C CNN 971 | 1 4650 1100 972 | -1 0 0 1 973 | $EndComp 974 | Connection ~ 2950 2600 975 | $Comp 976 | L power:+5V #PWR? 977 | U 1 1 5FB60157 978 | P 5650 3900 979 | AR Path="/5F8CD8D4/5FB60157" Ref="#PWR?" Part="1" 980 | AR Path="/5F8CD850/5FB60157" Ref="#PWR?" Part="1" 981 | AR Path="/5FB60157" Ref="#PWR038" Part="1" 982 | F 0 "#PWR038" H 5650 3750 50 0001 C CNN 983 | F 1 "+5V" V 5650 4100 50 0000 C CNN 984 | F 2 "" H 5650 3900 50 0001 C CNN 985 | F 3 "" H 5650 3900 50 0001 C CNN 986 | 1 5650 3900 987 | 1 0 0 -1 988 | $EndComp 989 | $Comp 990 | L power:GND #PWR? 991 | U 1 1 5FB60161 992 | P 4050 3900 993 | AR Path="/5F8CD850/5FB60161" Ref="#PWR?" Part="1" 994 | AR Path="/5FB60161" Ref="#PWR028" Part="1" 995 | F 0 "#PWR028" H 4050 3650 50 0001 C CNN 996 | F 1 "GND" H 4055 3727 50 0000 C CNN 997 | F 2 "" H 4050 3900 50 0001 C CNN 998 | F 3 "" H 4050 3900 50 0001 C CNN 999 | 1 4050 3900 1000 | 1 0 0 -1 1001 | $EndComp 1002 | $Comp 1003 | L VideoRAM-rescue:74HC245-8-Bit_CPU_32k U10 1004 | U 1 1 5FB6016B 1005 | P 4850 3900 1006 | F 0 "U10" V 4800 3850 50 0000 L CNN 1007 | F 1 "74HC245" V 4900 3700 50 0000 L CNN 1008 | F 2 "" H 4850 3900 50 0001 C CNN 1009 | F 3 "http://www.ti.com/lit/gpn/sn74HC245" H 4850 3900 50 0001 C CNN 1010 | 1 4850 3900 1011 | 0 1 1 0 1012 | $EndComp 1013 | $Comp 1014 | L power:+5V #PWR? 1015 | U 1 1 5FB60175 1016 | P 4450 3400 1017 | AR Path="/5F8CD8D4/5FB60175" Ref="#PWR?" Part="1" 1018 | AR Path="/5F8CD850/5FB60175" Ref="#PWR?" Part="1" 1019 | AR Path="/5FB60175" Ref="#PWR031" Part="1" 1020 | F 0 "#PWR031" H 4450 3250 50 0001 C CNN 1021 | F 1 "+5V" H 4550 3500 50 0000 C CNN 1022 | F 2 "" H 4450 3400 50 0001 C CNN 1023 | F 3 "" H 4450 3400 50 0001 C CNN 1024 | 1 4450 3400 1025 | 1 0 0 -1 1026 | $EndComp 1027 | Wire Wire Line 1028 | 4750 4400 4750 4650 1029 | Wire Wire Line 1030 | 4850 4400 4850 4750 1031 | Wire Wire Line 1032 | 4950 4400 4950 4850 1033 | Wire Wire Line 1034 | 5050 4400 5050 4950 1035 | Wire Wire Line 1036 | 5150 4400 5150 5050 1037 | Wire Wire Line 1038 | 5250 4400 5250 5150 1039 | Wire Wire Line 1040 | 5350 4400 5350 5250 1041 | Wire Wire Line 1042 | 6550 2700 6550 3400 1043 | Wire Wire Line 1044 | 6750 2900 6750 3400 1045 | Wire Wire Line 1046 | 6850 3000 6850 3400 1047 | Wire Wire Line 1048 | 6950 3200 6950 3400 1049 | Wire Wire Line 1050 | 7050 1900 7050 3400 1051 | Wire Wire Line 1052 | 7150 1900 7150 3400 1053 | $Comp 1054 | L power:+5V #PWR? 1055 | U 1 1 5FA6270A 1056 | P 7550 3900 1057 | AR Path="/5F8CD8D4/5FA6270A" Ref="#PWR?" Part="1" 1058 | AR Path="/5F8CD850/5FA6270A" Ref="#PWR?" Part="1" 1059 | AR Path="/5FA6270A" Ref="#PWR048" Part="1" 1060 | F 0 "#PWR048" H 7550 3750 50 0001 C CNN 1061 | F 1 "+5V" V 7550 4100 50 0000 C CNN 1062 | F 2 "" H 7550 3900 50 0001 C CNN 1063 | F 3 "" H 7550 3900 50 0001 C CNN 1064 | 1 7550 3900 1065 | 1 0 0 -1 1066 | $EndComp 1067 | Wire Wire Line 1068 | 7250 1900 7250 3400 1069 | Wire Wire Line 1070 | 7050 4400 7050 5750 1071 | Wire Wire Line 1072 | 6950 4400 6950 5650 1073 | Wire Wire Line 1074 | 6850 4400 6850 5550 1075 | Wire Wire Line 1076 | 6750 4400 6750 5450 1077 | Wire Wire Line 1078 | 6550 4400 6550 5350 1079 | $Comp 1080 | L power:GND #PWR? 1081 | U 1 1 5FA62F35 1082 | P 5950 3900 1083 | AR Path="/5F8CD850/5FA62F35" Ref="#PWR?" Part="1" 1084 | AR Path="/5FA62F35" Ref="#PWR039" Part="1" 1085 | F 0 "#PWR039" H 5950 3650 50 0001 C CNN 1086 | F 1 "GND" H 5955 3727 50 0000 C CNN 1087 | F 2 "" H 5950 3900 50 0001 C CNN 1088 | F 3 "" H 5950 3900 50 0001 C CNN 1089 | 1 5950 3900 1090 | 1 0 0 -1 1091 | $EndComp 1092 | $Comp 1093 | L power:+5V #PWR? 1094 | U 1 1 5FA61EEE 1095 | P 6350 3400 1096 | AR Path="/5F8CD8D4/5FA61EEE" Ref="#PWR?" Part="1" 1097 | AR Path="/5F8CD850/5FA61EEE" Ref="#PWR?" Part="1" 1098 | AR Path="/5FA61EEE" Ref="#PWR042" Part="1" 1099 | F 0 "#PWR042" H 6350 3250 50 0001 C CNN 1100 | F 1 "+5V" H 6450 3500 50 0000 C CNN 1101 | F 2 "" H 6350 3400 50 0001 C CNN 1102 | F 3 "" H 6350 3400 50 0001 C CNN 1103 | 1 6350 3400 1104 | 1 0 0 -1 1105 | $EndComp 1106 | $Comp 1107 | L VideoRAM-rescue:74HC245-8-Bit_CPU_32k U13 1108 | U 1 1 5FA5EE63 1109 | P 6750 3900 1110 | F 0 "U13" V 6700 3850 50 0000 L CNN 1111 | F 1 "74HC245" V 6800 3700 50 0000 L CNN 1112 | F 2 "" H 6750 3900 50 0001 C CNN 1113 | F 3 "http://www.ti.com/lit/gpn/sn74HC245" H 6750 3900 50 0001 C CNN 1114 | 1 6750 3900 1115 | 0 1 1 0 1116 | $EndComp 1117 | NoConn ~ 6650 4400 1118 | NoConn ~ 4650 4400 1119 | Wire Wire Line 1120 | 6650 1900 6650 3400 1121 | Wire Wire Line 1122 | 4650 1950 4650 3400 1123 | Connection ~ 4650 1950 1124 | $Comp 1125 | L 74xx:74HC04 U3 1126 | U 3 1 5FC9A408 1127 | P 2350 10300 1128 | F 0 "U3" V 2350 10350 50 0000 R CNN 1129 | F 1 "74HC04" V 2250 10450 50 0000 R CNN 1130 | F 2 "" H 2350 10300 50 0001 C CNN 1131 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" H 2350 10300 50 0001 C CNN 1132 | 3 2350 10300 1133 | 1 0 0 -1 1134 | $EndComp 1135 | $Comp 1136 | L 74xx:74HC04 U3 1137 | U 1 1 5FC9BC6F 1138 | P 1300 8250 1139 | F 0 "U3" V 1300 8300 50 0000 R CNN 1140 | F 1 "74HC04" V 1200 8400 50 0000 R CNN 1141 | F 2 "" H 1300 8250 50 0001 C CNN 1142 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" H 1300 8250 50 0001 C CNN 1143 | 1 1300 8250 1144 | 0 -1 -1 0 1145 | $EndComp 1146 | $Comp 1147 | L 74xx:74HC04 U3 1148 | U 7 1 5FC9C63A 1149 | P 2350 1350 1150 | F 0 "U3" V 2250 1400 50 0000 R CNN 1151 | F 1 "74HC04" V 2450 1500 50 0000 R CNN 1152 | F 2 "" H 2350 1350 50 0001 C CNN 1153 | F 3 "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" H 2350 1350 50 0001 C CNN 1154 | 7 2350 1350 1155 | 0 1 1 0 1156 | $EndComp 1157 | Text GLabel 4300 3400 0 50 Input ~ 0 1158 | 2MHZ 1159 | Text GLabel 6250 3400 0 50 Input ~ 0 1160 | 2MHZ 1161 | NoConn ~ 6050 8700 1162 | $Comp 1163 | L Oscillator:ACO-xxxMHz X1 1164 | U 1 1 5FD3B993 1165 | P 1800 10600 1166 | F 0 "X1" V 1650 10750 50 0000 C CNN 1167 | F 1 "ACO-xxxMHz" V 1550 10600 50 0000 C CNN 1168 | F 2 "Oscillator:Oscillator_DIP-14" H 2250 10250 50 0001 C CNN 1169 | F 3 "http://www.conwin.com/datasheets/cx/cx030.pdf" H 1700 10600 50 0001 C CNN 1170 | 1 1800 10600 1171 | 0 -1 -1 0 1172 | $EndComp 1173 | Wire Wire Line 1174 | 1800 10300 1800 10000 1175 | Wire Wire Line 1176 | 1800 10300 2050 10300 1177 | Connection ~ 1800 10300 1178 | Wire Wire Line 1179 | 1200 8800 1200 8900 1180 | Wire Wire Line 1181 | 1200 8900 1300 8900 1182 | Wire Wire Line 1183 | 1300 8900 1300 8550 1184 | Connection ~ 1200 8900 1185 | Wire Wire Line 1186 | 1200 8900 1200 9000 1187 | $Comp 1188 | L power:GND #PWR015 1189 | U 1 1 5FDB1232 1190 | P 2100 10600 1191 | F 0 "#PWR015" H 2100 10350 50 0001 C CNN 1192 | F 1 "GND" H 2200 10450 50 0000 C CNN 1193 | F 2 "" H 2100 10600 50 0001 C CNN 1194 | F 3 "" H 2100 10600 50 0001 C CNN 1195 | 1 2100 10600 1196 | 1 0 0 -1 1197 | $EndComp 1198 | $Comp 1199 | L power:+5V #PWR05 1200 | U 1 1 5FDB16EE 1201 | P 1500 10600 1202 | F 0 "#PWR05" H 1500 10450 50 0001 C CNN 1203 | F 1 "+5V" H 1400 10700 50 0000 C CNN 1204 | F 2 "" H 1500 10600 50 0001 C CNN 1205 | F 3 "" H 1500 10600 50 0001 C CNN 1206 | 1 1500 10600 1207 | 1 0 0 -1 1208 | $EndComp 1209 | Wire Wire Line 1210 | 2950 3000 2950 2800 1211 | Wire Wire Line 1212 | 2950 2800 2800 2800 1213 | Text GLabel 5050 750 0 50 Input ~ 0 1214 | 2MHZ 1215 | Text Notes 2950 2200 2 50 ~ 0 1216 | ~Q 1217 | Wire Wire Line 1218 | 2950 2450 2950 2600 1219 | Wire Wire Line 1220 | 2950 2300 2950 2150 1221 | Wire Wire Line 1222 | 3550 2300 3550 2250 1223 | Wire Wire Line 1224 | 3550 2450 3550 2500 1225 | Wire Wire Line 1226 | 3550 2450 2950 2300 1227 | Wire Wire Line 1228 | 2950 2450 3550 2300 1229 | Wire Wire Line 1230 | 950 6000 950 5850 1231 | $Comp 1232 | L 74xx:74HC00 U1 1233 | U 4 1 5FBC5047 1234 | P 950 5550 1235 | F 0 "U1" H 950 5500 50 0000 C CNN 1236 | F 1 "74HC00" H 950 5600 50 0000 C CNN 1237 | F 2 "" H 950 5550 50 0001 C CNN 1238 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 950 5550 50 0001 C CNN 1239 | 4 950 5550 1240 | 0 -1 1 0 1241 | $EndComp 1242 | $Comp 1243 | L 74xx:74HC00 U1 1244 | U 3 1 5FBC04D0 1245 | P 850 4950 1246 | F 0 "U1" H 850 4900 50 0000 C CNN 1247 | F 1 "74HC00" H 850 5000 50 0000 C CNN 1248 | F 2 "" H 850 4950 50 0001 C CNN 1249 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 850 4950 50 0001 C CNN 1250 | 3 850 4950 1251 | 0 1 1 0 1252 | $EndComp 1253 | Wire Wire Line 1254 | 850 4650 750 4650 1255 | Wire Wire Line 1256 | 850 4650 950 4650 1257 | Connection ~ 850 4650 1258 | $Comp 1259 | L 74xx:74HC00 U1 1260 | U 2 1 5FBBAF01 1261 | P 850 4350 1262 | F 0 "U1" H 850 4300 50 0000 C CNN 1263 | F 1 "74HC00" H 850 4400 50 0000 C CNN 1264 | F 2 "" H 850 4350 50 0001 C CNN 1265 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 850 4350 50 0001 C CNN 1266 | 2 850 4350 1267 | 0 1 1 0 1268 | $EndComp 1269 | Wire Wire Line 1270 | 1050 5250 1050 3350 1271 | Wire Wire Line 1272 | 850 3350 1050 3350 1273 | Wire Wire Line 1274 | 850 3450 850 3350 1275 | Wire Wire Line 1276 | 750 3450 850 3450 1277 | Connection ~ 850 3450 1278 | Wire Wire Line 1279 | 850 3450 950 3450 1280 | Wire Wire Line 1281 | 750 4050 850 4050 1282 | Wire Wire Line 1283 | 850 4050 950 4050 1284 | Connection ~ 850 4050 1285 | $Comp 1286 | L 74xx:74HC00 U1 1287 | U 1 1 5FBB490E 1288 | P 850 3750 1289 | F 0 "U1" H 850 3700 50 0000 C CNN 1290 | F 1 "74HC00" H 850 3800 50 0000 C CNN 1291 | F 2 "" H 850 3750 50 0001 C CNN 1292 | F 3 "http://www.ti.com/lit/gpn/sn74hc00" H 850 3750 50 0001 C CNN 1293 | 1 850 3750 1294 | 0 1 1 0 1295 | $EndComp 1296 | $Comp 1297 | L VideoRAM-rescue:74HC32-8-Bit_CPU_32k U? 1298 | U 3 1 5FA0A33A 1299 | P 1050 3050 1300 | AR Path="/5F8CD850/5FA0A33A" Ref="U?" Part="2" 1301 | AR Path="/5FA0A33A" Ref="U2" Part="3" 1302 | F 0 "U2" H 1050 3000 50 0000 C CNN 1303 | F 1 "74HC32" H 1050 3100 50 0000 C CNN 1304 | F 2 "" H 1050 3050 50 0001 C CNN 1305 | F 3 "http://www.ti.com/lit/gpn/sn74LS32" H 1050 3050 50 0001 C CNN 1306 | 3 1050 3050 1307 | 0 1 1 0 1308 | $EndComp 1309 | Wire Wire Line 1310 | 2650 5600 2750 5600 1311 | Wire Wire Line 1312 | 2650 5500 2850 5500 1313 | Wire Wire Line 1314 | 2650 5400 2950 5400 1315 | Wire Wire Line 1316 | 2650 5300 3050 5300 1317 | Wire Wire Line 1318 | 2650 5200 3150 5200 1319 | Wire Wire Line 1320 | 2650 5100 3250 5100 1321 | Wire Wire Line 1322 | 2650 5000 3350 5000 1323 | $Comp 1324 | L power:GND #PWR022 1325 | U 1 1 5F988BFA 1326 | P 2650 4900 1327 | F 0 "#PWR022" H 2650 4650 50 0001 C CNN 1328 | F 1 "GND" V 2655 4772 50 0000 R CNN 1329 | F 2 "" H 2650 4900 50 0001 C CNN 1330 | F 3 "" H 2650 4900 50 0001 C CNN 1331 | 1 2650 4900 1332 | 0 -1 -1 0 1333 | $EndComp 1334 | Wire Wire Line 1335 | 1900 2800 1650 2800 1336 | Wire Wire Line 1337 | 1900 3200 1650 3200 1338 | Connection ~ 1650 3200 1339 | Wire Wire Line 1340 | 1900 3000 1650 3000 1341 | Wire Wire Line 1342 | 1650 2800 1650 3000 1343 | Connection ~ 1650 3000 1344 | Wire Wire Line 1345 | 1650 3000 1650 3200 1346 | Wire Wire Line 1347 | 1650 3200 1650 3300 1348 | $Comp 1349 | L Device:R R1 1350 | U 1 1 5F9FE84B 1351 | P 1650 3450 1352 | F 0 "R1" V 1550 3450 50 0000 C CNN 1353 | F 1 "150" V 1650 3450 50 0000 C CNN 1354 | F 2 "" H 1650 3450 50 0001 C CNN 1355 | F 3 "~" H 1650 3450 50 0001 C CNN 1356 | 1 1650 3450 1357 | -1 0 0 -1 1358 | $EndComp 1359 | Wire Wire Line 1360 | 1650 3600 1650 4900 1361 | $Comp 1362 | L power:+5V #PWR017 1363 | U 1 1 5FAE4A5A 1364 | P 2150 4600 1365 | F 0 "#PWR017" H 2150 4450 50 0001 C CNN 1366 | F 1 "+5V" H 2165 4773 50 0000 C CNN 1367 | F 2 "" H 2150 4600 50 0001 C CNN 1368 | F 3 "" H 2150 4600 50 0001 C CNN 1369 | 1 2150 4600 1370 | 1 0 0 -1 1371 | $EndComp 1372 | $Comp 1373 | L power:GND #PWR018 1374 | U 1 1 5FA678D6 1375 | P 2150 6500 1376 | F 0 "#PWR018" H 2150 6250 50 0001 C CNN 1377 | F 1 "GND" H 2155 6327 50 0000 C CNN 1378 | F 2 "" H 2150 6500 50 0001 C CNN 1379 | F 3 "" H 2150 6500 50 0001 C CNN 1380 | 1 2150 6500 1381 | 1 0 0 -1 1382 | $EndComp 1383 | $Comp 1384 | L power:GND #PWR012 1385 | U 1 1 5FFCC538 1386 | P 1650 6200 1387 | F 0 "#PWR012" H 1650 5950 50 0001 C CNN 1388 | F 1 "GND" H 1650 6050 50 0000 C CNN 1389 | F 2 "" H 1650 6200 50 0001 C CNN 1390 | F 3 "" H 1650 6200 50 0001 C CNN 1391 | 1 1650 6200 1392 | 1 0 0 -1 1393 | $EndComp 1394 | Connection ~ 2650 5700 1395 | Wire Wire Line 1396 | 950 6000 1650 6000 1397 | Text GLabel 1650 6100 0 50 Input ~ 0 1398 | ~16MHZ 1399 | NoConn ~ 1650 5000 1400 | $Comp 1401 | L VideoRAM:74HC165 U6 1402 | U 1 1 5FDF8487 1403 | P 2150 5500 1404 | F 0 "U6" V 2250 5350 50 0000 C CNN 1405 | F 1 "74HC165" V 2100 5450 50 0000 C CNN 1406 | F 2 "" H 2150 5500 50 0001 C CNN 1407 | F 3 "http://www.ti.com/lit/gpn/sn74LS165" H 2150 5500 50 0001 C CNN 1408 | 1 2150 5500 1409 | -1 0 0 -1 1410 | $EndComp 1411 | Wire Wire Line 1412 | 7250 4400 7250 5950 1413 | Wire Wire Line 1414 | 7150 4400 7150 5850 1415 | Wire Wire Line 1416 | 4550 5850 4450 5850 1417 | Wire Wire Line 1418 | 4650 5750 4450 5750 1419 | Wire Wire Line 1420 | 4450 5650 4750 5650 1421 | Wire Wire Line 1422 | 4850 5550 4450 5550 1423 | Wire Wire Line 1424 | 4950 5450 4450 5450 1425 | Wire Wire Line 1426 | 4450 5350 5050 5350 1427 | Wire Wire Line 1428 | 5350 5250 5150 5250 1429 | Wire Wire Line 1430 | 6450 8100 6450 8700 1431 | Wire Wire Line 1432 | 6450 8000 6450 7850 1433 | Wire Wire Line 1434 | 4150 2600 4150 2700 1435 | Connection ~ 4850 850 1436 | Connection ~ 4150 2700 1437 | Wire Wire Line 1438 | 4150 2700 4150 2800 1439 | Wire Wire Line 1440 | 6650 8700 6650 7850 1441 | Wire Wire Line 1442 | 4550 5850 7150 5850 1443 | Connection ~ 4550 5850 1444 | Wire Wire Line 1445 | 4650 5750 7050 5750 1446 | Connection ~ 4650 5750 1447 | Wire Wire Line 1448 | 4750 5650 6950 5650 1449 | Connection ~ 4750 5650 1450 | Wire Wire Line 1451 | 4850 5550 6850 5550 1452 | Connection ~ 4850 5550 1453 | Wire Wire Line 1454 | 4950 5450 6750 5450 1455 | Connection ~ 4950 5450 1456 | Wire Wire Line 1457 | 6550 5350 5050 5350 1458 | Connection ~ 5050 5350 1459 | Wire Wire Line 1460 | 5950 7050 5950 5150 1461 | Wire Wire Line 1462 | 5950 5150 5250 5150 1463 | Connection ~ 5250 5150 1464 | Wire Wire Line 1465 | 5250 5150 4450 5150 1466 | Wire Wire Line 1467 | 5150 5050 4450 5050 1468 | Wire Wire Line 1469 | 5050 4950 4450 4950 1470 | Wire Wire Line 1471 | 4950 4850 4450 4850 1472 | Wire Wire Line 1473 | 4850 4750 4450 4750 1474 | Wire Wire Line 1475 | 4750 4650 4450 4650 1476 | Wire Wire Line 1477 | 6050 7050 6050 5050 1478 | Wire Wire Line 1479 | 6050 5050 5150 5050 1480 | Connection ~ 5150 5050 1481 | Wire Wire Line 1482 | 5050 4950 6150 4950 1483 | Wire Wire Line 1484 | 6150 4950 6150 7050 1485 | Connection ~ 5050 4950 1486 | Wire Wire Line 1487 | 4950 4850 6250 4850 1488 | Wire Wire Line 1489 | 6250 4850 6250 7050 1490 | Connection ~ 4950 4850 1491 | Wire Wire Line 1492 | 6350 7050 6350 4750 1493 | Wire Wire Line 1494 | 6350 4750 4850 4750 1495 | Connection ~ 4850 4750 1496 | Wire Wire Line 1497 | 4750 4650 6450 4650 1498 | Wire Wire Line 1499 | 6450 4650 6450 7050 1500 | Connection ~ 4750 4650 1501 | NoConn ~ 6550 7050 1502 | NoConn ~ 6650 7050 1503 | Connection ~ 6450 8000 1504 | Wire Wire Line 1505 | 6450 8000 4950 8000 1506 | Wire Wire Line 1507 | 6150 7850 6150 8100 1508 | Connection ~ 6150 8100 1509 | Wire Wire Line 1510 | 6150 8100 6450 8100 1511 | Connection ~ 4450 5950 1512 | Wire Wire Line 1513 | 4450 5950 7250 5950 1514 | Wire Wire Line 1515 | 4450 5950 4450 7050 1516 | Wire Wire Line 1517 | 4550 5850 4550 7050 1518 | Wire Wire Line 1519 | 4650 5750 4650 7050 1520 | Wire Wire Line 1521 | 4750 5650 4750 7050 1522 | Wire Wire Line 1523 | 4850 5550 4850 7050 1524 | Wire Wire Line 1525 | 4950 5450 4950 7050 1526 | Wire Wire Line 1527 | 5050 5350 5050 7050 1528 | Wire Wire Line 1529 | 5150 5250 5150 7050 1530 | Connection ~ 5150 5250 1531 | Wire Wire Line 1532 | 5150 5250 4450 5250 1533 | Connection ~ 1050 3350 1534 | $EndSCHEMATC 1535 | --------------------------------------------------------------------------------