Compare commits
98 Commits
TerminalWi
...
master
Author | SHA1 | Date | |
---|---|---|---|
aadd328ef3 | |||
|
bb5cb5461c | ||
|
7ce4046796 | ||
|
bd6be9f18a | ||
|
6f435cce35 | ||
|
aa844687c8 | ||
|
1c77bc82ac | ||
|
6e2c7a8e2d | ||
|
e8ccf2a224 | ||
|
7ed696e722 | ||
|
1dc178332d | ||
|
5478926e85 | ||
|
133eb1a432 | ||
|
0a888b0955 | ||
|
5b8914e5a9 | ||
|
f3960a9f07 | ||
|
ebfe3ae420 | ||
|
527da622c9 | ||
|
bdb5e35a73 | ||
|
025f324f63 | ||
|
e5f8475364 | ||
|
1ceee757e3 | ||
|
bf678289eb | ||
|
ab9f1144a6 | ||
|
0727b793c3 | ||
|
9516ec36ba | ||
|
6796c134f3 | ||
|
3c02ac0640 | ||
|
3fe353db2e | ||
|
f179a1d8f5 | ||
|
2a0750a06e | ||
|
d2c3aa9bb2 | ||
|
6890e352c1 | ||
|
faef987494 | ||
|
186689fd5c | ||
|
35cb230ea6 | ||
|
ec86180d82 | ||
|
f414a14c09 | ||
|
8d38709c46 | ||
|
2ba63877bf | ||
|
ddb7c58640 | ||
|
1d4c4f8d3f | ||
|
0697bc3753 | ||
|
2b3f9946d9 | ||
|
2c65665900 | ||
|
75f5ce057f | ||
|
33baf71cf0 | ||
|
36ede10f3b | ||
|
97adb88023 | ||
|
cc9805f044 | ||
|
e34cfef259 | ||
|
d3604ca3ab | ||
|
706dbe56e1 | ||
|
d71e5b65cf | ||
|
7e3896848f | ||
|
c90516ab51 | ||
|
b395a4dd21 | ||
|
9872968720 | ||
|
8ed06f78e4 | ||
|
e1af852f2e | ||
|
a1a858a701 | ||
|
2366408679 | ||
|
51780e5606 | ||
|
5bea35365d | ||
|
467197fd23 | ||
|
9d6e6efd13 | ||
|
64da85548e | ||
|
154e4dc10c | ||
|
9de4753984 | ||
|
baa00e3ea0 | ||
|
f49818caa1 | ||
|
415300a2db | ||
|
17fdf97f75 | ||
|
792db80ab4 | ||
|
3b23740c36 | ||
|
03e549a69c | ||
|
901fe50fee | ||
|
b3269125ac | ||
|
8b2063c6bc | ||
|
cf3956356e | ||
|
7c07014b75 | ||
|
90c200e6a9 | ||
|
ce23f9e799 | ||
|
66414a2e57 | ||
|
b64ed1839a | ||
|
ccb9d5ecec | ||
|
8959c7add8 | ||
|
ae495b6714 | ||
|
62e98d7fe4 | ||
|
a86dbed7f7 | ||
|
2b32039b42 | ||
|
0b88c7d0db | ||
|
06779c5442 | ||
|
09785e1317 | ||
|
c0f7049df9 | ||
|
08b32b2064 | ||
|
b98ad3e136 | ||
|
3ebf35fa77 |
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "pat80-emulator/z80-python-emulator"]
|
||||||
|
path = pat80-emulator/z80-python-emulator
|
||||||
|
url = https://github.com/penguin86/z80-python-emulator.git
|
47
NOTES.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Software utilizzato
|
||||||
|
Compilatore assembly: z80asm (da repo debian)
|
||||||
|
Compilatore c: sdcc (da repo debian)
|
||||||
|
Eeprom flash: minipro (da https://gitlab.com/DavidGriffith/minipro/)
|
||||||
|
Disegnatore schemi logici: logisim (jar da sourceforge)
|
||||||
|
Per usarlo su hdpi: `java -Dsun.java2d.uiScale=2 -jar logisim-generic-2.7.1.jar`
|
||||||
|
Disegnatore circuiti: fritzing (da repo debian)
|
||||||
|
|
||||||
|
# Assembly
|
||||||
|
## Deploy
|
||||||
|
### Compilare assembly:
|
||||||
|
`z80asm -i hd44780_lcd_test_procedure.asm -o rom.bin`
|
||||||
|
### Portare binario alla dimensione dell eeprom:
|
||||||
|
`dd if=/dev/zero of=rom.bin bs=1 count=0 seek=8192`
|
||||||
|
### Scrivere su EEPROM:
|
||||||
|
`minipro -w rom.bin -p "AT28C64B"`
|
||||||
|
### Leggere EEPROM:
|
||||||
|
`minipro -r rom_read.bin -p "AT28C64B"`
|
||||||
|
## Istruzioni
|
||||||
|
### Dichiarare una variabile:
|
||||||
|
Usare EQU per assegnare una posizione di memoria nota (nella RAM) al nome variabile.
|
||||||
|
```
|
||||||
|
myVar: EQU 0x800F ; init variable
|
||||||
|
ld hl, "A" ; load value into register
|
||||||
|
ld (myVar), hl ; copy value into variable
|
||||||
|
```
|
||||||
|
NB: Se il programma si blocca, verificare che la variabile non sia stata dichiarata in una parte non scrivibile della memoria (ROM)
|
||||||
|
### Accedere ad una variabile
|
||||||
|
Modificarne il valore (nell'esempio: incrementarla di 1)
|
||||||
|
```
|
||||||
|
ld a, (myVar)
|
||||||
|
inc a
|
||||||
|
ld (myVar), a
|
||||||
|
```
|
||||||
|
Passarne il puntatore ad una funzione:
|
||||||
|
```
|
||||||
|
ld bc, myVar
|
||||||
|
call lcd_print
|
||||||
|
```
|
||||||
|
### Segmentation fault
|
||||||
|
Controllare che non si stia puntando ad un registro con le parentesi:
|
||||||
|
`ld (ix), a`
|
||||||
|
|
||||||
|
# C
|
||||||
|
## Deploy
|
||||||
|
### Compilare c:
|
||||||
|
`sdcc -mz80 test.c`
|
115
README.md
@ -1,47 +1,72 @@
|
|||||||
# Software utilizzato
|
# Pat80
|
||||||
Compilatore assembly: z80asm (da repo debian)
|
|
||||||
Compilatore c: sdcc (da repo debian)
|
|
||||||
Eeprom flash: minipro (da https://gitlab.com/DavidGriffith/minipro/)
|
|
||||||
Disegnatore schemi logici: logisim (jar da sourceforge)
|
|
||||||
Per usarlo su hdpi: `java -Dsun.java2d.uiScale=2 -jar logisim-generic-2.7.1.jar`
|
|
||||||
Disegnatore circuiti: fritzing (da repo debian)
|
|
||||||
|
|
||||||
# Assembly
|
![Pat80 Home Computer Logo](/assets/media/pat80-banner-colour-raster.png)
|
||||||
## Deploy
|
|
||||||
### Compilare assembly:
|
|
||||||
`z80asm -i hd44780_lcd_test_procedure.asm -o rom.bin`
|
|
||||||
### Portare binario alla dimensione dell eeprom:
|
|
||||||
`dd if=/dev/zero of=rom.bin bs=1 count=0 seek=8192`
|
|
||||||
### Scrivere su EEPROM:
|
|
||||||
`minipro -w rom.bin -p "AT28C64B"`
|
|
||||||
### Leggere EEPROM:
|
|
||||||
`minipro -r rom_read.bin -p "AT28C64B"`
|
|
||||||
## Istruzioni
|
|
||||||
### Dichiarare una variabile:
|
|
||||||
Usare EQU per assegnare una posizione di memoria nota (nella RAM) al nome variabile.
|
|
||||||
```
|
|
||||||
myVar: EQU 0x800F ; init variable
|
|
||||||
ld hl, "A" ; load value into register
|
|
||||||
ld (myVar), hl ; copy value into variable
|
|
||||||
```
|
|
||||||
NB: Se il programma si blocca, verificare che la variabile non sia stata dichiarata in una parte non scrivibile della memoria (ROM)
|
|
||||||
### Accedere ad una variabile
|
|
||||||
Modificarne il valore (nell'esempio: incrementarla di 1)
|
|
||||||
```
|
|
||||||
ld a, (myVar)
|
|
||||||
inc a
|
|
||||||
ld (myVar), a
|
|
||||||
```
|
|
||||||
Passarne il puntatore ad una funzione:
|
|
||||||
```
|
|
||||||
ld bc, myVar
|
|
||||||
call lcd_print
|
|
||||||
```
|
|
||||||
### Segmentation fault
|
|
||||||
Controllare che non si stia puntando ad un registro con le parentesi:
|
|
||||||
`ld (ix), a`
|
|
||||||
|
|
||||||
# C
|
Pat80 Home Computer is an attempt to develop the simplest possible Zilog Z80 based computer in 2021.
|
||||||
## Deploy
|
|
||||||
### Compilare c:
|
## Hardware
|
||||||
`sdcc -mz80 test.c`
|
Instead of being another single board computer, Pat80 focuses on modularity:
|
||||||
|
- The Core board contains Z80 CPU, 32k ram, 32k rom, memory and I/O decoding logic
|
||||||
|
- The Backplane is a stupid I/O bus board with no active components, 1 socket for the Core board and 8 sockets for I/O boards
|
||||||
|
- Each I/O board must implement tri-state and go to high impedance according to its EN pin to avoid bus contention
|
||||||
|
- The Power Supply module contains a 7805-based linear power supply capable of delivering 1A @5v for the core and I/O boards
|
||||||
|
|
||||||
|
Here is a picture of the early stages of development:
|
||||||
|
|
||||||
|
![Pat80 Breadboard prototype](/assets/media/photos/breadboard.jpg)
|
||||||
|
|
||||||
|
### I/O Boards
|
||||||
|
|
||||||
|
#### Parallel terminal interface
|
||||||
|
A parallel terminal based on Arduino is used for development purposes and will be replaced by an UART card.
|
||||||
|
|
||||||
|
#### Keyboard controller
|
||||||
|
Pat80 features a blue-switches mechanical matrix keyboard, seen by the system as a memory area in I/O space. The keyboard doesn't use interrupts and is polled by the OS.
|
||||||
|
|
||||||
|
#### Video controller
|
||||||
|
The monochrome 368x248 pixels video output is software-generated by an ATMega 1284 MCU. The timings are generated by the MCU's 16 bit internal timer and the vertical sync time is used to update the framebuffer.
|
||||||
|
|
||||||
|
|
||||||
|
## Software
|
||||||
|
The OS is a simple Memory Monitor. It can show memory content in hex and ascii with the typical hex editor tabular view.
|
||||||
|
Programs can be loaded from the keyboard, writing Z80 opcodes and data in hex. The program can be executed from any ram position and the Memory Monitor can be brought to screen in any moment issuing an INT signal (the Z80 INT pin should be connected to a button with pull-up resistor).
|
||||||
|
There is an experimental and unfinished quick load function using a python terminal to load a binary file directly to memory and execute it.
|
||||||
|
|
||||||
|
![Pat80 Memory Monitor](/assets/media/photos/memory_monitor.jpg)
|
||||||
|
|
||||||
|
## Emulator
|
||||||
|
The pat80 memory monitor (the os) can be run in a z80 emulator. This repository contains an emulator as submodule, already set up to run the os.
|
||||||
|
To try it, head to `pat80-computer/software/z80-assembly/os/Makefile` and run `make run` to build the rom from assembly and start the emulator. You will see some windows showing the emulated computer's memory and register status and the pat80 memory monitor prompt.
|
||||||
|
|
||||||
|
![Emulator running Memory Monitor](/assets/media/photos/emulator.png)
|
||||||
|
|
||||||
|
## Status
|
||||||
|
The project is heavily work in progress.
|
||||||
|
|
||||||
|
### Working
|
||||||
|
- Core board
|
||||||
|
- Sound board
|
||||||
|
- Arduino parallel terminal with its own Python companion script (or any UART terminal)
|
||||||
|
|
||||||
|
The only fully working configuration as now is the Core board with two devices hooked to its I/O bus: the Arduino Parallel Terminal (see `pat80-io-devices/parallel-terminal` and `pat80-computer/software/z80-assembly/os/drivers/arduino_terminal.asm`) and the SN76489 sound chip (see `pat80-computer/software/z80-assembly/os/drivers/hd44780.asm`)
|
||||||
|
|
||||||
|
### Partially working
|
||||||
|
The keyboard is only partially tested, as it's not completed.
|
||||||
|
|
||||||
|
![Pat80 keyboard pcb](/assets/media/photos/keyboard_before_etching.jpg)
|
||||||
|
|
||||||
|
![Pat80 keyboard layout](/assets/media/photos/keyboard_layout.jpg)
|
||||||
|
|
||||||
|
The composite video card is partially working, but has some nasty bugs on text cursor positioning and the graphics mode is not yet implemented (the only way to output graphics ATM is to place the bitmap in the MCU flash and load it to VRAM manually).
|
||||||
|
|
||||||
|
![Pat80 composite monitor text mode](/assets/media/photos/composite_text.jpg)
|
||||||
|
|
||||||
|
![Pat80 composite monitor graphics mode](/assets/media/photos/composite_graphics.jpg)
|
||||||
|
|
||||||
|
For the moment, better to stick with the Arduino Parallel Terminal.
|
||||||
|
|
||||||
|
### Not working
|
||||||
|
All the rest
|
||||||
|
|
||||||
|
## License
|
||||||
|
All the project is under GPL v3 license
|
@ -1,2 +1,3 @@
|
|||||||
# Assets
|
# Assets
|
||||||
This folder contains all the media assets for presenting Pat80 to the web, print and other media
|
This folder contains all the media and text assets for presenting Pat80 to the web, print and other media
|
||||||
|
|
||||||
|
18
assets/media/LICENSE.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Assets
|
||||||
|
This folder contains all the media assets for presenting Pat80 to the web, print and other media
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Assets.
|
||||||
|
|
||||||
|
Pat80 Assets is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Assets is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Assets. If not, see <http://www.gnu.org/licenses/>.
|
BIN
assets/media/photos/breadboard.jpg
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
assets/media/photos/composite_graphics.jpg
Normal file
After Width: | Height: | Size: 110 KiB |
BIN
assets/media/photos/composite_text.jpg
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
assets/media/photos/emulator.png
Normal file
After Width: | Height: | Size: 189 KiB |
BIN
assets/media/photos/keyboard_before_etching.jpg
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
assets/media/photos/keyboard_layout.jpg
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
assets/media/photos/memory_monitor.jpg
Normal file
After Width: | Height: | Size: 114 KiB |
BIN
assets/misc/ps2_modeset_2_to_ascii.ods
Normal file
18
kicad-symbols/LICENSE.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Kicad symbols
|
||||||
|
This folder contains the custom symbols required by Pat80 schematics and PCB layouts.
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Blueprints.
|
||||||
|
|
||||||
|
Pat80 Blueprints is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Blueprints is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Blueprints. If not, see <http://www.gnu.org/licenses/>.
|
@ -0,0 +1,18 @@
|
|||||||
|
(module SW_TH_DPDT_Pushbutton_Latched (layer F.Cu) (tedit 6066BDE4)
|
||||||
|
(fp_text reference SW54 (at 0 0.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value CAPSLK (at 0 -0.5) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -4 2) (end 4 2) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 4 2) (end 4 10) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 4 10) (end -4 10) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -4 10) (end -4 2) (layer F.SilkS) (width 0.12))
|
||||||
|
(pad 5 thru_hole circle (at 2.54 3.429) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask))
|
||||||
|
(pad 6 thru_hole circle (at 2.54 5.969) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask))
|
||||||
|
(pad 4 thru_hole circle (at 2.54 8.509) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask))
|
||||||
|
(pad 2 thru_hole circle (at -2.54 8.509) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask))
|
||||||
|
(pad 3 thru_hole circle (at -2.54 5.969) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask))
|
||||||
|
(pad 1 thru_hole circle (at -2.54 3.429) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask))
|
||||||
|
)
|
3
kicad-symbols/pat80.dcm
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
EESchema-DOCLIB Version 2.0
|
||||||
|
#
|
||||||
|
#End Doc Library
|
4
kicad-symbols/pat80.lib
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
#End Library
|
18
pat80-computer/hardware/LICENSE.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Hardware
|
||||||
|
This folder contains the Pat80 logic definitions, schematics and PCB layouts.
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Blueprints.
|
||||||
|
|
||||||
|
Pat80 Blueprints is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Blueprints is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Blueprints. If not, see <http://www.gnu.org/licenses/>.
|
21
pat80-computer/hardware/logisim/LICENSE.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Memory Decoding logic
|
||||||
|
This folder contains the memory decoding logic used by Pat80.
|
||||||
|
The memory map is a simple 32k ram / 32k rom obtained using the MSB as EN signal.
|
||||||
|
The I/O space is split in 8 devices (each with 32 registers).
|
||||||
|
Pat80 doesn't use the [high address lines I/O hack](https://retrocomputing.stackexchange.com/questions/7782/z80-16-bit-i-o-port-addresses) but adheres to the official Z80 I/O documentation.
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Blueprints.
|
||||||
|
|
||||||
|
Pat80 Blueprints is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Blueprints is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Blueprints. If not, see <http://www.gnu.org/licenses/>.
|
18
pat80-computer/hardware/schematics/pat80/LICENSE.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Hardware
|
||||||
|
This folder contains the Pat80 schematics and PCB layouts.
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Blueprints.
|
||||||
|
|
||||||
|
Pat80 Blueprints is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Blueprints is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Blueprints. If not, see <http://www.gnu.org/licenses/>.
|
68622
pat80-computer/hardware/schematics/pat80/fp-info-cache
Normal file
566
pat80-computer/hardware/schematics/pat80/pat80-cache.lib
Normal file
@ -0,0 +1,566 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# 74xx_74HC04
|
||||||
|
#
|
||||||
|
DEF 74xx_74HC04 U 0 40 Y Y 7 L N
|
||||||
|
F0 "U" 0 50 50 H V C CNN
|
||||||
|
F1 "74xx_74HC04" 0 -50 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
ALIAS 74HC14 74HC04 74LS14
|
||||||
|
$FPLIST
|
||||||
|
DIP?14*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -200 300 200 -300 7 1 10 f
|
||||||
|
P 4 1 0 10 -150 150 -150 -150 150 0 -150 150 f
|
||||||
|
P 4 2 0 10 -150 150 -150 -150 150 0 -150 150 f
|
||||||
|
P 4 3 0 10 -150 150 -150 -150 150 0 -150 150 f
|
||||||
|
P 4 4 0 10 -150 150 -150 -150 150 0 -150 150 f
|
||||||
|
P 4 5 0 10 -150 150 -150 -150 150 0 -150 150 f
|
||||||
|
P 4 6 0 10 -150 150 -150 -150 150 0 -150 150 f
|
||||||
|
X ~ 1 -300 0 150 R 50 50 1 0 I
|
||||||
|
X ~ 2 300 0 150 L 50 50 1 0 O I
|
||||||
|
X ~ 3 -300 0 150 R 50 50 2 0 I
|
||||||
|
X ~ 4 300 0 150 L 50 50 2 0 O I
|
||||||
|
X ~ 5 -300 0 150 R 50 50 3 0 I
|
||||||
|
X ~ 6 300 0 150 L 50 50 3 0 O I
|
||||||
|
X ~ 8 300 0 150 L 50 50 4 0 O I
|
||||||
|
X ~ 9 -300 0 150 R 50 50 4 0 I
|
||||||
|
X ~ 10 300 0 150 L 50 50 5 0 O I
|
||||||
|
X ~ 11 -300 0 150 R 50 50 5 0 I
|
||||||
|
X ~ 12 300 0 150 L 50 50 6 0 O I
|
||||||
|
X ~ 13 -300 0 150 R 50 50 6 0 I
|
||||||
|
X VCC 14 0 500 200 D 50 50 7 0 W
|
||||||
|
X GND 7 0 -500 200 U 50 50 7 0 W
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# 74xx_74HC244
|
||||||
|
#
|
||||||
|
DEF 74xx_74HC244 U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -300 650 50 H V C CNN
|
||||||
|
F1 "74xx_74HC244" -300 -650 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
ALIAS 74HCT244
|
||||||
|
$FPLIST
|
||||||
|
TSSOP*4.4x6.5mm*P0.65mm*
|
||||||
|
SSOP*4.4x6.5mm*P0.65mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 600 300 -600 1 1 10 f
|
||||||
|
P 4 1 0 6 50 0 -50 50 -50 -50 50 0 N
|
||||||
|
X 1OE 1 -500 -400 200 R 50 50 1 0 I I
|
||||||
|
X GND 10 0 -800 200 U 50 50 1 0 W
|
||||||
|
X 2A3 11 -500 -200 200 R 50 50 1 0 I
|
||||||
|
X 1Y3 12 500 200 200 L 50 50 1 0 O
|
||||||
|
X 2A2 13 -500 -100 200 R 50 50 1 0 I
|
||||||
|
X 1Y2 14 500 300 200 L 50 50 1 0 O
|
||||||
|
X 2A1 15 -500 0 200 R 50 50 1 0 I
|
||||||
|
X 1Y1 16 500 400 200 L 50 50 1 0 O
|
||||||
|
X 2A0 17 -500 100 200 R 50 50 1 0 I
|
||||||
|
X 1Y0 18 500 500 200 L 50 50 1 0 O
|
||||||
|
X 2OE 19 -500 -500 200 R 50 50 1 0 I I
|
||||||
|
X 1A0 2 -500 500 200 R 50 50 1 0 I
|
||||||
|
X VCC 20 0 800 200 D 50 50 1 0 W
|
||||||
|
X 2Y0 3 500 100 200 L 50 50 1 0 O
|
||||||
|
X 1A1 4 -500 400 200 R 50 50 1 0 I
|
||||||
|
X 2Y1 5 500 0 200 L 50 50 1 0 O
|
||||||
|
X 1A2 6 -500 300 200 R 50 50 1 0 I
|
||||||
|
X 2Y2 7 500 -100 200 L 50 50 1 0 O
|
||||||
|
X 1A3 8 -500 200 200 R 50 50 1 0 I
|
||||||
|
X 2Y3 9 500 -200 200 L 50 50 1 0 O
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# 74xx_74HC245
|
||||||
|
#
|
||||||
|
DEF 74xx_74HC245 U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -300 650 50 H V C CNN
|
||||||
|
F1 "74xx_74HC245" -300 -650 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
ALIAS 74HC245
|
||||||
|
$FPLIST
|
||||||
|
DIP?20*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 600 300 -600 1 1 10 f
|
||||||
|
P 3 1 0 0 -25 -50 -25 50 25 50 N
|
||||||
|
P 4 1 0 0 -50 -50 25 -50 25 50 50 50 N
|
||||||
|
X A->B 1 -500 -400 200 R 50 50 1 0 I
|
||||||
|
X GND 10 0 -800 200 U 50 50 1 0 W
|
||||||
|
X B7 11 500 -200 200 L 50 50 1 0 T
|
||||||
|
X B6 12 500 -100 200 L 50 50 1 0 T
|
||||||
|
X B5 13 500 0 200 L 50 50 1 0 T
|
||||||
|
X B4 14 500 100 200 L 50 50 1 0 T
|
||||||
|
X B3 15 500 200 200 L 50 50 1 0 T
|
||||||
|
X B2 16 500 300 200 L 50 50 1 0 T
|
||||||
|
X B1 17 500 400 200 L 50 50 1 0 T
|
||||||
|
X B0 18 500 500 200 L 50 50 1 0 T
|
||||||
|
X CE 19 -500 -500 200 R 50 50 1 0 I I
|
||||||
|
X A0 2 -500 500 200 R 50 50 1 0 T
|
||||||
|
X VCC 20 0 800 200 D 50 50 1 0 W
|
||||||
|
X A1 3 -500 400 200 R 50 50 1 0 T
|
||||||
|
X A2 4 -500 300 200 R 50 50 1 0 T
|
||||||
|
X A3 5 -500 200 200 R 50 50 1 0 T
|
||||||
|
X A4 6 -500 100 200 R 50 50 1 0 T
|
||||||
|
X A5 7 -500 0 200 R 50 50 1 0 T
|
||||||
|
X A6 8 -500 -100 200 R 50 50 1 0 T
|
||||||
|
X A7 9 -500 -200 200 R 50 50 1 0 T
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# 74xx_74LS138
|
||||||
|
#
|
||||||
|
DEF 74xx_74LS138 U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -300 450 50 H V C CNN
|
||||||
|
F1 "74xx_74LS138" -300 -550 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
DIP?16*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 400 300 -500 1 1 10 f
|
||||||
|
X A0 1 -500 300 200 R 50 50 1 0 I
|
||||||
|
X O5 10 500 -200 200 L 50 50 1 0 O V
|
||||||
|
X O4 11 500 -100 200 L 50 50 1 0 O V
|
||||||
|
X O3 12 500 0 200 L 50 50 1 0 O V
|
||||||
|
X O2 13 500 100 200 L 50 50 1 0 O V
|
||||||
|
X O1 14 500 200 200 L 50 50 1 0 O V
|
||||||
|
X O0 15 500 300 200 L 50 50 1 0 O V
|
||||||
|
X VCC 16 0 600 200 D 50 50 1 0 W
|
||||||
|
X A1 2 -500 200 200 R 50 50 1 0 I
|
||||||
|
X A2 3 -500 100 200 R 50 50 1 0 I
|
||||||
|
X E1 4 -500 -400 200 R 50 50 1 0 I L
|
||||||
|
X E2 5 -500 -300 200 R 50 50 1 0 I L
|
||||||
|
X E3 6 -500 -200 200 R 50 50 1 0 I
|
||||||
|
X O7 7 500 -400 200 L 50 50 1 0 O V
|
||||||
|
X GND 8 0 -700 200 U 50 50 1 0 W
|
||||||
|
X O6 9 500 -300 200 L 50 50 1 0 O V
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# 74xx_74LS32
|
||||||
|
#
|
||||||
|
DEF 74xx_74LS32 U 0 40 Y Y 5 L N
|
||||||
|
F0 "U" 0 50 50 H V C CNN
|
||||||
|
F1 "74xx_74LS32" 0 -50 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
DIP?14*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
A -360 0 258 354 -354 1 1 10 N -150 150 -150 -150
|
||||||
|
A -47 -52 204 150 837 1 1 10 f 150 0 -24 150
|
||||||
|
A -47 52 204 -150 -837 1 1 10 f 150 0 -24 -150
|
||||||
|
A -360 0 258 354 -354 2 1 10 N -150 150 -150 -150
|
||||||
|
A -47 -52 204 150 837 2 1 10 f 150 0 -24 150
|
||||||
|
A -47 52 204 -150 -837 2 1 10 f 150 0 -24 -150
|
||||||
|
A -360 0 258 354 -354 3 1 10 N -150 150 -150 -150
|
||||||
|
A -47 -52 204 150 837 3 1 10 f 150 0 -24 150
|
||||||
|
A -47 52 204 -150 -837 3 1 10 f 150 0 -24 -150
|
||||||
|
A -360 0 258 354 -354 4 1 10 N -150 150 -150 -150
|
||||||
|
A -47 -52 204 150 837 4 1 10 f 150 0 -24 150
|
||||||
|
A -47 52 204 -150 -837 4 1 10 f 150 0 -24 -150
|
||||||
|
A 0 0 150 -899 899 1 2 10 f 0 -150 0 150
|
||||||
|
A 0 0 150 -899 899 2 2 10 f 0 -150 0 150
|
||||||
|
A 0 0 150 -899 899 3 2 10 f 0 -150 0 150
|
||||||
|
A 0 0 150 -899 899 4 2 10 f 0 -150 0 150
|
||||||
|
S -200 300 200 -300 5 1 10 f
|
||||||
|
P 2 1 1 10 -150 -150 -25 -150 f
|
||||||
|
P 2 1 1 10 -150 150 -25 150 f
|
||||||
|
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
|
||||||
|
P 2 2 1 10 -150 -150 -25 -150 f
|
||||||
|
P 2 2 1 10 -150 150 -25 150 f
|
||||||
|
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
|
||||||
|
P 2 3 1 10 -150 -150 -25 -150 f
|
||||||
|
P 2 3 1 10 -150 150 -25 150 f
|
||||||
|
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
|
||||||
|
P 2 4 1 10 -150 -150 -25 -150 f
|
||||||
|
P 2 4 1 10 -150 150 -25 150 f
|
||||||
|
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
|
||||||
|
P 4 1 2 10 0 150 -150 150 -150 -150 0 -150 f
|
||||||
|
P 4 2 2 10 0 150 -150 150 -150 -150 0 -150 f
|
||||||
|
P 4 3 2 10 0 150 -150 150 -150 -150 0 -150 f
|
||||||
|
P 4 4 2 10 0 150 -150 150 -150 -150 0 -150 f
|
||||||
|
X VCC 14 0 500 200 D 50 50 5 0 W
|
||||||
|
X GND 7 0 -500 200 U 50 50 5 0 W
|
||||||
|
X ~ 1 -300 100 170 R 50 50 1 1 I
|
||||||
|
X ~ 2 -300 -100 170 R 50 50 1 1 I
|
||||||
|
X ~ 3 300 0 150 L 50 50 1 1 O
|
||||||
|
X ~ 4 -300 100 170 R 50 50 2 1 I
|
||||||
|
X ~ 5 -300 -100 170 R 50 50 2 1 I
|
||||||
|
X ~ 6 300 0 150 L 50 50 2 1 O
|
||||||
|
X ~ 10 -300 -100 170 R 50 50 3 1 I
|
||||||
|
X ~ 8 300 0 150 L 50 50 3 1 O
|
||||||
|
X ~ 9 -300 100 170 R 50 50 3 1 I
|
||||||
|
X ~ 11 300 0 150 L 50 50 4 1 O
|
||||||
|
X ~ 12 -300 100 170 R 50 50 4 1 I
|
||||||
|
X ~ 13 -300 -100 170 R 50 50 4 1 I
|
||||||
|
X ~ 1 -300 100 150 R 50 50 1 2 I I
|
||||||
|
X ~ 2 -300 -100 150 R 50 50 1 2 I I
|
||||||
|
X ~ 3 300 0 150 L 50 50 1 2 O I
|
||||||
|
X ~ 4 -300 100 150 R 50 50 2 2 I I
|
||||||
|
X ~ 5 -300 -100 150 R 50 50 2 2 I I
|
||||||
|
X ~ 6 300 0 150 L 50 50 2 2 O I
|
||||||
|
X ~ 10 -300 -100 150 R 50 50 3 2 I I
|
||||||
|
X ~ 8 300 0 150 L 50 50 3 2 O I
|
||||||
|
X ~ 9 -300 100 150 R 50 50 3 2 I I
|
||||||
|
X ~ 11 300 0 150 L 50 50 4 2 O I
|
||||||
|
X ~ 12 -300 100 150 R 50 50 4 2 I I
|
||||||
|
X ~ 13 -300 -100 150 R 50 50 4 2 I I
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# CPU_Z80CPU
|
||||||
|
#
|
||||||
|
DEF CPU_Z80CPU U 0 40 Y Y 1 F N
|
||||||
|
F0 "U" -550 1400 50 H V L CNN
|
||||||
|
F1 "CPU_Z80CPU" 250 1400 50 H V L CNN
|
||||||
|
F2 "" 0 400 50 H I C CNN
|
||||||
|
F3 "" 0 400 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
DIP*
|
||||||
|
PDIP*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -550 1350 550 -1350 0 1 10 f
|
||||||
|
X A11 1 700 100 150 L 50 50 1 1 O
|
||||||
|
X D6 10 700 -1100 150 L 50 50 1 1 B
|
||||||
|
X VCC 11 0 1500 150 D 50 50 1 1 W
|
||||||
|
X D2 12 700 -700 150 L 50 50 1 1 B
|
||||||
|
X D7 13 700 -1200 150 L 50 50 1 1 B
|
||||||
|
X D0 14 700 -500 150 L 50 50 1 1 B
|
||||||
|
X D1 15 700 -600 150 L 50 50 1 1 B
|
||||||
|
X ~INT~ 16 -700 500 150 R 50 50 1 1 I
|
||||||
|
X ~NMI~ 17 -700 600 150 R 50 50 1 1 I
|
||||||
|
X ~HALT~ 18 -700 -100 150 R 50 50 1 1 O
|
||||||
|
X ~MREQ~ 19 -700 -700 150 R 50 50 1 1 O
|
||||||
|
X A12 2 700 0 150 L 50 50 1 1 O
|
||||||
|
X ~IORQ~ 20 -700 -800 150 R 50 50 1 1 O
|
||||||
|
X ~RD~ 21 -700 -500 150 R 50 50 1 1 O
|
||||||
|
X ~WR~ 22 -700 -600 150 R 50 50 1 1 O
|
||||||
|
X ~BUSACK~ 23 -700 -1200 150 R 50 50 1 1 O
|
||||||
|
X ~WAIT~ 24 -700 0 150 R 50 50 1 1 I
|
||||||
|
X ~BUSRQ~ 25 -700 -1100 150 R 50 50 1 1 I
|
||||||
|
X ~RESET~ 26 -700 1200 150 R 50 50 1 1 I
|
||||||
|
X ~M1~ 27 -700 200 150 R 50 50 1 1 O
|
||||||
|
X ~RFSH~ 28 -700 100 150 R 50 50 1 1 O
|
||||||
|
X GND 29 0 -1500 150 U 50 50 1 1 W
|
||||||
|
X A13 3 700 -100 150 L 50 50 1 1 O
|
||||||
|
X A0 30 700 1200 150 L 50 50 1 1 O
|
||||||
|
X A1 31 700 1100 150 L 50 50 1 1 O
|
||||||
|
X A2 32 700 1000 150 L 50 50 1 1 O
|
||||||
|
X A3 33 700 900 150 L 50 50 1 1 O
|
||||||
|
X A4 34 700 800 150 L 50 50 1 1 O
|
||||||
|
X A5 35 700 700 150 L 50 50 1 1 O
|
||||||
|
X A6 36 700 600 150 L 50 50 1 1 O
|
||||||
|
X A7 37 700 500 150 L 50 50 1 1 O
|
||||||
|
X A8 38 700 400 150 L 50 50 1 1 O
|
||||||
|
X A9 39 700 300 150 L 50 50 1 1 O
|
||||||
|
X A14 4 700 -200 150 L 50 50 1 1 O
|
||||||
|
X A10 40 700 200 150 L 50 50 1 1 O
|
||||||
|
X A15 5 700 -300 150 L 50 50 1 1 O
|
||||||
|
X ~CLK~ 6 -700 900 150 R 50 50 1 1 I C
|
||||||
|
X D4 7 700 -900 150 L 50 50 1 1 B
|
||||||
|
X D3 8 700 -800 150 L 50 50 1 1 B
|
||||||
|
X D5 9 700 -1000 150 L 50 50 1 1 B
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Conn_01x01_Male
|
||||||
|
#
|
||||||
|
DEF Connector_Conn_01x01_Male J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 100 50 H V C CNN
|
||||||
|
F1 "Connector_Conn_01x01_Male" 0 -100 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S 34 5 0 -5 1 1 6 F
|
||||||
|
P 2 1 1 6 50 0 34 0 N
|
||||||
|
X Pin_1 1 200 0 150 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Conn_01x02_Male
|
||||||
|
#
|
||||||
|
DEF Connector_Conn_01x02_Male J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 100 50 H V C CNN
|
||||||
|
F1 "Connector_Conn_01x02_Male" 0 -200 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_1x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S 34 -95 0 -105 1 1 6 F
|
||||||
|
S 34 5 0 -5 1 1 6 F
|
||||||
|
P 2 1 1 6 50 -100 34 -100 N
|
||||||
|
P 2 1 1 6 50 0 34 0 N
|
||||||
|
X Pin_1 1 200 0 150 L 50 50 1 1 P
|
||||||
|
X Pin_2 2 200 -100 150 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_01x26
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_01x26 J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 1300 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_01x26" 0 -1400 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_1x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -1295 0 -1305 1 1 6 N
|
||||||
|
S -50 -1195 0 -1205 1 1 6 N
|
||||||
|
S -50 -1095 0 -1105 1 1 6 N
|
||||||
|
S -50 -995 0 -1005 1 1 6 N
|
||||||
|
S -50 -895 0 -905 1 1 6 N
|
||||||
|
S -50 -795 0 -805 1 1 6 N
|
||||||
|
S -50 -695 0 -705 1 1 6 N
|
||||||
|
S -50 -595 0 -605 1 1 6 N
|
||||||
|
S -50 -495 0 -505 1 1 6 N
|
||||||
|
S -50 -395 0 -405 1 1 6 N
|
||||||
|
S -50 -295 0 -305 1 1 6 N
|
||||||
|
S -50 -195 0 -205 1 1 6 N
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 205 0 195 1 1 6 N
|
||||||
|
S -50 305 0 295 1 1 6 N
|
||||||
|
S -50 405 0 395 1 1 6 N
|
||||||
|
S -50 505 0 495 1 1 6 N
|
||||||
|
S -50 605 0 595 1 1 6 N
|
||||||
|
S -50 705 0 695 1 1 6 N
|
||||||
|
S -50 805 0 795 1 1 6 N
|
||||||
|
S -50 905 0 895 1 1 6 N
|
||||||
|
S -50 1005 0 995 1 1 6 N
|
||||||
|
S -50 1105 0 1095 1 1 6 N
|
||||||
|
S -50 1205 0 1195 1 1 6 N
|
||||||
|
S -50 1250 50 -1350 1 1 10 f
|
||||||
|
X Pin_1 1 -200 1200 150 R 50 50 1 1 P
|
||||||
|
X Pin_10 10 -200 300 150 R 50 50 1 1 P
|
||||||
|
X Pin_11 11 -200 200 150 R 50 50 1 1 P
|
||||||
|
X Pin_12 12 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_13 13 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_14 14 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_15 15 -200 -200 150 R 50 50 1 1 P
|
||||||
|
X Pin_16 16 -200 -300 150 R 50 50 1 1 P
|
||||||
|
X Pin_17 17 -200 -400 150 R 50 50 1 1 P
|
||||||
|
X Pin_18 18 -200 -500 150 R 50 50 1 1 P
|
||||||
|
X Pin_19 19 -200 -600 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 -200 1100 150 R 50 50 1 1 P
|
||||||
|
X Pin_20 20 -200 -700 150 R 50 50 1 1 P
|
||||||
|
X Pin_21 21 -200 -800 150 R 50 50 1 1 P
|
||||||
|
X Pin_22 22 -200 -900 150 R 50 50 1 1 P
|
||||||
|
X Pin_23 23 -200 -1000 150 R 50 50 1 1 P
|
||||||
|
X Pin_24 24 -200 -1100 150 R 50 50 1 1 P
|
||||||
|
X Pin_25 25 -200 -1200 150 R 50 50 1 1 P
|
||||||
|
X Pin_26 26 -200 -1300 150 R 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 1000 150 R 50 50 1 1 P
|
||||||
|
X Pin_4 4 -200 900 150 R 50 50 1 1 P
|
||||||
|
X Pin_5 5 -200 800 150 R 50 50 1 1 P
|
||||||
|
X Pin_6 6 -200 700 150 R 50 50 1 1 P
|
||||||
|
X Pin_7 7 -200 600 150 R 50 50 1 1 P
|
||||||
|
X Pin_8 8 -200 500 150 R 50 50 1 1 P
|
||||||
|
X Pin_9 9 -200 400 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_C
|
||||||
|
#
|
||||||
|
DEF Device_C C 0 10 N Y 1 F N
|
||||||
|
F0 "C" 25 100 50 H V L CNN
|
||||||
|
F1 "Device_C" 25 -100 50 H V L CNN
|
||||||
|
F2 "" 38 -150 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
C_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 20 -80 -30 80 -30 N
|
||||||
|
P 2 0 1 20 -80 30 80 30 N
|
||||||
|
X ~ 1 0 150 110 D 50 50 1 1 P
|
||||||
|
X ~ 2 0 -150 110 U 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_Crystal
|
||||||
|
#
|
||||||
|
DEF Device_Crystal Y 0 40 N N 1 F N
|
||||||
|
F0 "Y" 0 150 50 H V C CNN
|
||||||
|
F1 "Device_Crystal" 0 -150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Crystal*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -45 100 45 -100 0 1 12 N
|
||||||
|
P 2 0 1 0 -100 0 -75 0 N
|
||||||
|
P 2 0 1 20 -75 -50 -75 50 N
|
||||||
|
P 2 0 1 20 75 -50 75 50 N
|
||||||
|
P 2 0 1 0 100 0 75 0 N
|
||||||
|
X 1 1 -150 0 50 R 50 50 1 1 P
|
||||||
|
X 2 2 150 0 50 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_LED
|
||||||
|
#
|
||||||
|
DEF Device_LED D 0 40 N N 1 F N
|
||||||
|
F0 "D" 0 100 50 H V C CNN
|
||||||
|
F1 "Device_LED" 0 -100 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
LED*
|
||||||
|
LED_SMD:*
|
||||||
|
LED_THT:*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 8 -50 -50 -50 50 N
|
||||||
|
P 2 0 1 0 -50 0 50 0 N
|
||||||
|
P 4 0 1 8 50 -50 50 50 -50 0 50 -50 N
|
||||||
|
P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N
|
||||||
|
P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N
|
||||||
|
X K 1 -150 0 100 R 50 50 1 1 P
|
||||||
|
X A 2 150 0 100 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_R
|
||||||
|
#
|
||||||
|
DEF Device_R R 0 0 N Y 1 F N
|
||||||
|
F0 "R" 80 0 50 V V C CNN
|
||||||
|
F1 "Device_R" 0 0 50 V V C CNN
|
||||||
|
F2 "" -70 0 50 V I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
R_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -40 -100 40 100 0 1 10 N
|
||||||
|
X ~ 1 0 150 50 D 50 50 1 1 P
|
||||||
|
X ~ 2 0 -150 50 U 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Memory_EEPROM_28C256
|
||||||
|
#
|
||||||
|
DEF Memory_EEPROM_28C256 U 0 20 Y Y 1 F N
|
||||||
|
F0 "U" -300 1050 50 H V C CNN
|
||||||
|
F1 "Memory_EEPROM_28C256" 100 -1050 50 H V L CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
DIP*W15.24mm*
|
||||||
|
SOIC*7.5x17.9mm*P1.27mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 1000 300 -1000 1 1 10 f
|
||||||
|
X A14 1 -400 -500 100 R 50 50 1 1 I
|
||||||
|
X A0 10 -400 900 100 R 50 50 1 1 I
|
||||||
|
X D0 11 400 900 100 L 50 50 1 1 T
|
||||||
|
X D1 12 400 800 100 L 50 50 1 1 T
|
||||||
|
X D2 13 400 700 100 L 50 50 1 1 T
|
||||||
|
X GND 14 0 -1100 100 U 50 50 1 1 W
|
||||||
|
X D3 15 400 600 100 L 50 50 1 1 T
|
||||||
|
X D4 16 400 500 100 L 50 50 1 1 T
|
||||||
|
X D5 17 400 400 100 L 50 50 1 1 T
|
||||||
|
X D6 18 400 300 100 L 50 50 1 1 T
|
||||||
|
X D7 19 400 200 100 L 50 50 1 1 T
|
||||||
|
X A12 2 -400 -300 100 R 50 50 1 1 I
|
||||||
|
X ~CS 20 -400 -900 100 R 50 50 1 1 I
|
||||||
|
X A10 21 -400 -100 100 R 50 50 1 1 I
|
||||||
|
X ~OE 22 -400 -800 100 R 50 50 1 1 I
|
||||||
|
X A11 23 -400 -200 100 R 50 50 1 1 I
|
||||||
|
X A9 24 -400 0 100 R 50 50 1 1 I
|
||||||
|
X A8 25 -400 100 100 R 50 50 1 1 I
|
||||||
|
X A13 26 -400 -400 100 R 50 50 1 1 I
|
||||||
|
X ~WE 27 -400 -700 100 R 50 50 1 1 I
|
||||||
|
X VCC 28 0 1100 100 D 50 50 1 1 W
|
||||||
|
X A7 3 -400 200 100 R 50 50 1 1 I
|
||||||
|
X A6 4 -400 300 100 R 50 50 1 1 I
|
||||||
|
X A5 5 -400 400 100 R 50 50 1 1 I
|
||||||
|
X A4 6 -400 500 100 R 50 50 1 1 I
|
||||||
|
X A3 7 -400 600 100 R 50 50 1 1 I
|
||||||
|
X A2 8 -400 700 100 R 50 50 1 1 I
|
||||||
|
X A1 9 -400 800 100 R 50 50 1 1 I
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Regulator_Linear_LM7805_TO220
|
||||||
|
#
|
||||||
|
DEF Regulator_Linear_LM7805_TO220 U 0 10 Y Y 1 F N
|
||||||
|
F0 "U" -150 125 50 H V C CNN
|
||||||
|
F1 "Regulator_Linear_LM7805_TO220" 0 125 50 H V L CNN
|
||||||
|
F2 "Package_TO_SOT_THT:TO-220-3_Vertical" 0 225 50 H I C CIN
|
||||||
|
F3 "" 0 -50 50 H I C CNN
|
||||||
|
ALIAS LM7806_TO220 LM7808_TO220 LM7809_TO220 LM7810_TO220 LM7812_TO220 LM7815_TO220 LM7818_TO220 LM7824_TO220 LM78M05_TO220 SPX2920U-3.3_TO220 SPX2920U-5.0_TO220 LF15_TO220 LF18_TO220 LF25_TO220 LF33_TO220 LF50_TO220 LF60_TO220 LF80_TO220 LF85_TO220 LF120_TO220 LF47_TO220 LF90_TO220 LM341T-05_TO220 LM341T-12_TO220 LM341T-15_TO220 LM2937xT
|
||||||
|
$FPLIST
|
||||||
|
TO?220*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -200 75 200 -200 0 1 10 f
|
||||||
|
X VI 1 -300 0 100 R 50 50 1 1 W
|
||||||
|
X GND 2 0 -300 100 U 50 50 1 1 W
|
||||||
|
X VO 3 300 0 100 L 50 50 1 1 w
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Switch_SW_Push
|
||||||
|
#
|
||||||
|
DEF Switch_SW_Push SW 0 40 N N 1 F N
|
||||||
|
F0 "SW" 50 100 50 H V L CNN
|
||||||
|
F1 "Switch_SW_Push" 0 -60 50 H V C CNN
|
||||||
|
F2 "" 0 200 50 H I C CNN
|
||||||
|
F3 "" 0 200 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
C -80 0 20 0 1 0 N
|
||||||
|
C 80 0 20 0 1 0 N
|
||||||
|
P 2 0 1 0 0 50 0 120 N
|
||||||
|
P 2 0 1 0 100 50 -100 50 N
|
||||||
|
X 1 1 -200 0 100 R 50 50 0 1 P
|
||||||
|
X 2 2 200 0 100 L 50 50 0 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_GND
|
||||||
|
#
|
||||||
|
DEF power_GND #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -250 50 H I C CNN
|
||||||
|
F1 "power_GND" 0 -150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
|
||||||
|
X GND 1 0 0 0 D 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_VCC
|
||||||
|
#
|
||||||
|
DEF power_VCC #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -150 50 H I C CNN
|
||||||
|
F1 "power_VCC" 0 150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
C 0 75 25 0 1 0 N
|
||||||
|
P 2 0 1 0 0 0 0 50 N
|
||||||
|
X VCC 1 0 0 0 U 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
3402
pat80-computer/hardware/schematics/pat80/pat80.kicad_pcb
Normal file
3310
pat80-computer/hardware/schematics/pat80/pat80.kicad_pcb-bak
Normal file
1066
pat80-computer/hardware/schematics/pat80/pat80.net
Normal file
252
pat80-computer/hardware/schematics/pat80/pat80.pro
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
update=mer 24 mar 2021 21:27:02 CET
|
||||||
|
version=1
|
||||||
|
last_client=kicad
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
RootSch=
|
||||||
|
BoardNm=
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=
|
||||||
|
[eeschema/libraries]
|
||||||
|
[schematic_editor]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
PlotDirectoryName=
|
||||||
|
SubpartIdSeparator=0
|
||||||
|
SubpartFirstId=65
|
||||||
|
NetFmtName=Pcbnew
|
||||||
|
SpiceAjustPassiveValues=0
|
||||||
|
LabSize=50
|
||||||
|
ERC_TestSimilarLabels=1
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
LastNetListRead=pat80.net
|
||||||
|
CopperLayerCount=2
|
||||||
|
BoardThickness=1.6
|
||||||
|
AllowMicroVias=0
|
||||||
|
AllowBlindVias=0
|
||||||
|
RequireCourtyardDefinitions=0
|
||||||
|
ProhibitOverlappingCourtyards=1
|
||||||
|
MinTrackWidth=0.2
|
||||||
|
MinViaDiameter=0.4
|
||||||
|
MinViaDrill=0.3
|
||||||
|
MinMicroViaDiameter=0.2
|
||||||
|
MinMicroViaDrill=0.09999999999999999
|
||||||
|
MinHoleToHole=0.25
|
||||||
|
TrackWidth1=0.25
|
||||||
|
TrackWidth2=0.25
|
||||||
|
TrackWidth3=0.5
|
||||||
|
ViaDiameter1=0.8
|
||||||
|
ViaDrill1=0.4
|
||||||
|
ViaDiameter2=1.5
|
||||||
|
ViaDrill2=0.5
|
||||||
|
dPairWidth1=0.2
|
||||||
|
dPairGap1=0.25
|
||||||
|
dPairViaGap1=0.25
|
||||||
|
SilkLineWidth=0.12
|
||||||
|
SilkTextSizeV=1
|
||||||
|
SilkTextSizeH=1
|
||||||
|
SilkTextSizeThickness=0.15
|
||||||
|
SilkTextItalic=0
|
||||||
|
SilkTextUpright=1
|
||||||
|
CopperLineWidth=0.2
|
||||||
|
CopperTextSizeV=1.5
|
||||||
|
CopperTextSizeH=1.5
|
||||||
|
CopperTextThickness=0.3
|
||||||
|
CopperTextItalic=0
|
||||||
|
CopperTextUpright=1
|
||||||
|
EdgeCutLineWidth=0.05
|
||||||
|
CourtyardLineWidth=0.05
|
||||||
|
OthersLineWidth=0.15
|
||||||
|
OthersTextSizeV=1
|
||||||
|
OthersTextSizeH=1
|
||||||
|
OthersTextSizeThickness=0.15
|
||||||
|
OthersTextItalic=0
|
||||||
|
OthersTextUpright=1
|
||||||
|
SolderMaskClearance=0
|
||||||
|
SolderMaskMinWidth=0
|
||||||
|
SolderPasteClearance=0
|
||||||
|
SolderPasteRatio=-0
|
||||||
|
[pcbnew/Layer.F.Cu]
|
||||||
|
Name=F.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.In1.Cu]
|
||||||
|
Name=In1.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In2.Cu]
|
||||||
|
Name=In2.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In3.Cu]
|
||||||
|
Name=In3.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In4.Cu]
|
||||||
|
Name=In4.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In5.Cu]
|
||||||
|
Name=In5.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In6.Cu]
|
||||||
|
Name=In6.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In7.Cu]
|
||||||
|
Name=In7.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In8.Cu]
|
||||||
|
Name=In8.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In9.Cu]
|
||||||
|
Name=In9.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In10.Cu]
|
||||||
|
Name=In10.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In11.Cu]
|
||||||
|
Name=In11.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In12.Cu]
|
||||||
|
Name=In12.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In13.Cu]
|
||||||
|
Name=In13.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In14.Cu]
|
||||||
|
Name=In14.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In15.Cu]
|
||||||
|
Name=In15.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In16.Cu]
|
||||||
|
Name=In16.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In17.Cu]
|
||||||
|
Name=In17.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In18.Cu]
|
||||||
|
Name=In18.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In19.Cu]
|
||||||
|
Name=In19.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In20.Cu]
|
||||||
|
Name=In20.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In21.Cu]
|
||||||
|
Name=In21.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In22.Cu]
|
||||||
|
Name=In22.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In23.Cu]
|
||||||
|
Name=In23.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In24.Cu]
|
||||||
|
Name=In24.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In25.Cu]
|
||||||
|
Name=In25.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In26.Cu]
|
||||||
|
Name=In26.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In27.Cu]
|
||||||
|
Name=In27.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In28.Cu]
|
||||||
|
Name=In28.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In29.Cu]
|
||||||
|
Name=In29.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In30.Cu]
|
||||||
|
Name=In30.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.B.Cu]
|
||||||
|
Name=B.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Dwgs.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Cmts.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco1.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco2.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Edge.Cuts]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Margin]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Rescue]
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Netclasses]
|
||||||
|
[pcbnew/Netclasses/Default]
|
||||||
|
Name=Default
|
||||||
|
Clearance=0.2
|
||||||
|
TrackWidth=0.25
|
||||||
|
ViaDiameter=0.8
|
||||||
|
ViaDrill=0.4
|
||||||
|
uViaDiameter=0.3
|
||||||
|
uViaDrill=0.1
|
||||||
|
dPairWidth=0.2
|
||||||
|
dPairGap=0.25
|
||||||
|
dPairViaGap=0.25
|
2249
pat80-computer/hardware/schematics/pat80/pat80.sch
Normal file
2247
pat80-computer/hardware/schematics/pat80/pat80.sch-bak
Normal file
2
pat80-computer/hardware/schematics/pat80/sym-lib-table
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
(sym_lib_table
|
||||||
|
)
|
@ -1,3 +1,5 @@
|
|||||||
|
; @language: Z80 ASM
|
||||||
|
|
||||||
org 0xA000
|
org 0xA000
|
||||||
include '../../os/abi-generated.asm'
|
include '../../os/abi-generated.asm'
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
; @language: Z80 ASM
|
||||||
;hd44780 lcd test procedure
|
;hd44780 lcd test procedure
|
||||||
|
|
||||||
LCD_INSTR_REG: EQU %00000000
|
LCD_INSTR_REG: EQU %00000000
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
|
; @language: Z80 ASM
|
||||||
|
|
||||||
org 0xA000 ; Set starting position to ram
|
org 0xA000 ; Set starting position to ram
|
||||||
include '../os/main.asm'
|
include '../os/main.asm'
|
@ -1,11 +1,17 @@
|
|||||||
os:
|
build:
|
||||||
@echo "Building PAT80 rom..."
|
@echo "Building PAT80 rom..."
|
||||||
@z80asm -i main.asm -o rom.bin || (exit 1)
|
@z80asm -i main.asm -o rom.bin || (exit 1)
|
||||||
@echo "Generating label lookup table..."
|
@echo "Generating label lookup table..."
|
||||||
@z80asm -i main.asm -o rom.bin -L 2>&1 | grep "Sys_" > abi-generated.asm
|
@z80asm -i main.asm -o rom.bin -L 2>&1 | grep "Sys_" > abi-generated.asm
|
||||||
@echo "PAT80 Rom size:"
|
@echo "PAT80 Rom size:"
|
||||||
@du -h rom.bin
|
@du -h rom.bin
|
||||||
|
|
||||||
|
write: build
|
||||||
@echo "Stretching rom to EEPROM size..."
|
@echo "Stretching rom to EEPROM size..."
|
||||||
@dd if=/dev/zero of=rom.bin bs=1 count=0 seek=8192
|
@dd if=/dev/zero of=rom.bin bs=1 count=0 seek=8192
|
||||||
@echo "Writing to EEPROM..."
|
@echo "Writing to EEPROM..."
|
||||||
@minipro -w rom.bin -p "AT28C64B"
|
@minipro -w rom.bin -p "AT28C64B"
|
||||||
|
|
||||||
|
run: build
|
||||||
|
@echo "Starting emulator..."
|
||||||
|
@../../../../pat80-emulator/z80-python-emulator/src/z80sbc.py -b rom.bin
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Sys_ABI: equ $0003
|
Sys_ABI: equ $0081
|
||||||
Sys_Beep: equ $0013
|
Sys_Beep: equ $0091
|
||||||
Sys_Print: equ $0007
|
Sys_Print: equ $0085
|
||||||
Sys_Printc: equ $000a
|
Sys_Printc: equ $0088
|
||||||
Sys_Readc: equ $000d
|
Sys_Readc: equ $008b
|
||||||
Sys_Readline: equ $0010
|
Sys_Readline: equ $008e
|
||||||
|
@ -1,5 +1,22 @@
|
|||||||
; Arduino terminal driver
|
; Arduino terminal driver
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
; config (IO port 0)
|
; config (IO port 0)
|
||||||
TERM_DATA_REG: EQU IO_0
|
TERM_DATA_REG: EQU IO_0
|
||||||
|
@ -1,5 +1,23 @@
|
|||||||
; HD44780 20x4 characters LCD display driver
|
; HD44780 20x4 characters LCD display driver
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
;
|
;
|
||||||
; USAGE:
|
; USAGE:
|
||||||
; STR: DB "Hello world!",0 <-- null terminated string
|
; STR: DB "Hello world!",0 <-- null terminated string
|
||||||
|
@ -1,5 +1,24 @@
|
|||||||
; Keyboard driver
|
; Keyboard driver
|
||||||
|
; Direct keyboard grid control (direct keys addressing, without keyboard controller)
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
;
|
;
|
||||||
; Requires declaration of following pointers, one for every column of the keys grid:
|
; Requires declaration of following pointers, one for every column of the keys grid:
|
||||||
; KEYB_A0_REG
|
; KEYB_A0_REG
|
||||||
|
@ -0,0 +1,91 @@
|
|||||||
|
; PS/2 Keyboard driver
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; Based on PS/2 protocol as documented on http://www.lucadavidian.com/2017/11/15/interfacing-ps2-keyboard-to-a-microcontroller/
|
||||||
|
;
|
||||||
|
; The CLK and Data pin of the PS/2 keyboard are fed into two cascated serial-in parallel-out shift registers.
|
||||||
|
; Their outputs are connected to the Pat80 data bus via a buffer activated by the selected
|
||||||
|
; I/O EN signal and their RESET is connected to I/O Address line 0 of the keyboard I/O port.
|
||||||
|
; Being RESET active low, they will be erased when the PAT80 reads (or writes) anything at address 0
|
||||||
|
; of the keyboard I/0 port.
|
||||||
|
;
|
||||||
|
; Thus, the read cycle is:
|
||||||
|
; - Read address 1 of the I/O port (the data bus will contain read keycode)
|
||||||
|
; - Read address 0 of the I/O port (the shift registers will be reset)
|
||||||
|
; The read keycode must be interpreted based on PS/2 Scan Codeset 2
|
||||||
|
;
|
||||||
|
; NOTE: The keyboard controller circuit throws away the MSB (uses only the lower 7 bits), because this allows
|
||||||
|
; for using a single buffer chip instead of two (the freed up line is used by the PAT80 to reset the shift
|
||||||
|
; registers). This means that the few keys with keycodes > 0x0F are not readable and that the break code is
|
||||||
|
; seen by PAT80 not as 0xF0, but 0x70. This also means that the 0 of numeric keypad on extended keyboards will
|
||||||
|
; behave strangely (will drop next pressed key). This is not a problem, as the computer, once completed, will
|
||||||
|
; have a 60% keyboard, without any of the unusable keys.
|
||||||
|
|
||||||
|
include 'drivers/ps2_keyboard_scancodeset2.asm' ; PS/2 Scan Codeset 2 mappings
|
||||||
|
|
||||||
|
; config (IO port 1)
|
||||||
|
PS2KEYB_CLEAR_REG: EQU IO_2
|
||||||
|
PS2KEYB_DATA_REG: EQU IO_2 + 1
|
||||||
|
|
||||||
|
PS2KEYB_TRANSMISSION_DURATION: EQU 86 ;@ 100khz ; The time needed for the keyboard to transmit all the 11 bits of data, in CPU clock cycles
|
||||||
|
|
||||||
|
PS2KEYB_BREAK: EQU 0xF0 - %10000000 ; The MSB is dropped: see NOTE on intro above
|
||||||
|
|
||||||
|
; Reads a single character and returns an ascii code when a valid key is pressed. Blocking.
|
||||||
|
; @return A The read character
|
||||||
|
PS2Keyb_readc:
|
||||||
|
in a, (PS2KEYB_DATA_REG) ; reads a character
|
||||||
|
add a, 0
|
||||||
|
jp z, PS2Keyb_readc ; if char is 0 (NULL), user didn't press any key: wait for character
|
||||||
|
; we found something, but it may still be shifting in bits. Allow the keyboard to complete data transmission
|
||||||
|
ld a, PS2KEYB_TRANSMISSION_DURATION/5 ; every cycle is 5 CPU cycles
|
||||||
|
ps2keyb_readc_waitloop:
|
||||||
|
sub 1
|
||||||
|
jr nz, ps2keyb_readc_waitloop
|
||||||
|
; data transmission should now be complete.
|
||||||
|
; check if code is a Break Code. If it is, discard next key as it is a released key
|
||||||
|
in a, (PS2KEYB_DATA_REG) ; re-reads the character (it should now be complete)
|
||||||
|
ld c, a ; save a, because it will be modified by next compare
|
||||||
|
cp PS2KEYB_BREAK ; compare a with Break Code
|
||||||
|
jp z, ps2keyb_readc_discard ; if it is a Break Code, jump to discarder routine
|
||||||
|
; we read a valid character: clean key registers
|
||||||
|
in a, (PS2KEYB_CLEAR_REG)
|
||||||
|
; now we will convert keycode in c to ASCII code
|
||||||
|
ld hl, PS2KEYB_SCANCODESET_ASCII_MAP ; load start of codeset to ascii map
|
||||||
|
ld b, 0 ; reset b, as we are going to do a sum with bc (where c contains the read scancode)
|
||||||
|
add hl, bc ; add scancode value to map start addr (we are using it as offset)
|
||||||
|
ld a, (hl) ; load the corresponding ascii code in a for return
|
||||||
|
ret ; returns in the a register
|
||||||
|
ps2keyb_readc_discard:
|
||||||
|
; clean key registers
|
||||||
|
in a, (PS2KEYB_CLEAR_REG)
|
||||||
|
ps2keyb_readc_discard_waitfordata:
|
||||||
|
; wait for next non-0 keycode and discards it (it is the code of the released key)
|
||||||
|
in a, (PS2KEYB_DATA_REG) ; reads a character
|
||||||
|
add a, 0
|
||||||
|
jp z, ps2keyb_readc_discard_waitfordata ; if char is 0 (NULL), wait
|
||||||
|
; we found something, allow the keyboard to complete data transmission
|
||||||
|
ld a, PS2KEYB_TRANSMISSION_DURATION/5 ; every cycle is 5 CPU cycles
|
||||||
|
ps2keyb_readc_discard_waitloop:
|
||||||
|
sub 1
|
||||||
|
jr nz, ps2keyb_readc_discard_waitloop
|
||||||
|
; data transmission should now be complete, throw away key code
|
||||||
|
in a, (PS2KEYB_CLEAR_REG)
|
||||||
|
jp PS2Keyb_readc ; go back and wait for another keycode
|
@ -0,0 +1,137 @@
|
|||||||
|
; PS/2 Keycode Mode 2 to ASCII mapping table
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
; Keycodes 0 to 83
|
||||||
|
|
||||||
|
PS2KEYB_SCANCODESET_ASCII_MAP: DB 35
|
||||||
|
DB 33 ; F9
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ; F5
|
||||||
|
DB 33 ; F3
|
||||||
|
DB 33 ; F1
|
||||||
|
DB 33 ; F2
|
||||||
|
DB 33 ; F12
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ; F10
|
||||||
|
DB 33 ; F8
|
||||||
|
DB 33 ; F6
|
||||||
|
DB 33 ; F4
|
||||||
|
DB 9 ; TAB
|
||||||
|
DB 96 ; `
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ; L ALT
|
||||||
|
DB 33 ; L SHFT
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ; L CTRL
|
||||||
|
DB 81 ; Q
|
||||||
|
DB 49 ; 1
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 90 ; Z
|
||||||
|
DB 83 ; S
|
||||||
|
DB 65 ; A
|
||||||
|
DB 87 ; W
|
||||||
|
DB 50 ; 2
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 67 ; C
|
||||||
|
DB 88 ; X
|
||||||
|
DB 68 ; D
|
||||||
|
DB 69 ; E
|
||||||
|
DB 52 ; 4
|
||||||
|
DB 51 ; 3
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 32 ; SPACE
|
||||||
|
DB 86 ; V
|
||||||
|
DB 70 ; F
|
||||||
|
DB 84 ; T
|
||||||
|
DB 82 ; R
|
||||||
|
DB 53 ; 5
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 78 ; N
|
||||||
|
DB 66 ; B
|
||||||
|
DB 72 ; H
|
||||||
|
DB 71 ; G
|
||||||
|
DB 89 ; Y
|
||||||
|
DB 54 ; 6
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 77 ; M
|
||||||
|
DB 74 ; J
|
||||||
|
DB 85 ; U
|
||||||
|
DB 55 ; 7
|
||||||
|
DB 56 ; 8
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 44 ; ,
|
||||||
|
DB 75 ; K
|
||||||
|
DB 73 ; I
|
||||||
|
DB 79 ; O
|
||||||
|
DB 48 ; 0
|
||||||
|
DB 57 ; 9
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 46 ; .
|
||||||
|
DB 47 ; /
|
||||||
|
DB 76 ; L
|
||||||
|
DB 59 ; ;
|
||||||
|
DB 80 ; P
|
||||||
|
DB 45 ; -
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 39 ; '
|
||||||
|
DB 33 ;
|
||||||
|
DB 91 ; [
|
||||||
|
DB 61 ; =
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ; CAPS
|
||||||
|
DB 33 ; R SHFT
|
||||||
|
DB 10 ; ENTER
|
||||||
|
DB 93 ; ]
|
||||||
|
DB 33 ;
|
||||||
|
DB 92 ; \
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 8 ; BKSP
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 49 ; KP 1
|
||||||
|
DB 33 ;
|
||||||
|
DB 52 ; KP 4
|
||||||
|
DB 55 ; KP 7
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 48 ; KP 0
|
||||||
|
DB 46 ; KP .
|
||||||
|
DB 50 ; KP 2
|
||||||
|
DB 53 ; KP 5
|
||||||
|
DB 54 ; KP 6
|
||||||
|
DB 56 ; KP 8
|
||||||
|
DB 33 ; ESC
|
||||||
|
DB 33 ; NUM
|
||||||
|
DB 33 ; F11
|
||||||
|
DB 43 ; KP +
|
||||||
|
DB 51 ; KP 3
|
||||||
|
DB 45 ; KP -
|
||||||
|
DB 42 ; KP *
|
||||||
|
DB 57 ; KP 9
|
||||||
|
DB 33 ; SCROLL
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ;
|
||||||
|
DB 33 ; F7
|
@ -1,5 +1,23 @@
|
|||||||
; TI SN76489 sound chip display driver
|
; TI SN76489 sound chip driver
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
;
|
;
|
||||||
; USAGE:
|
; USAGE:
|
||||||
; call Snd_init <-- inits sound (and silences default tone)
|
; call Snd_init <-- inits sound (and silences default tone)
|
||||||
|
@ -1,5 +1,23 @@
|
|||||||
; Vgax display driver
|
; Vgax display driver
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
;
|
;
|
||||||
; Requires declaration of following pointers:
|
; Requires declaration of following pointers:
|
||||||
; VGAX_INSTR_REG
|
; VGAX_INSTR_REG
|
||||||
|
@ -1,5 +1,22 @@
|
|||||||
; Strings manipulation library
|
; Strings manipulation library
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
; Transforms case to upper
|
; Transforms case to upper
|
||||||
|
|
||||||
|
@ -1,5 +1,22 @@
|
|||||||
; Time library
|
; Time library
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
; Duration in cpu cycles / 55 (change these values based on CPU frequency)
|
; Duration in cpu cycles / 55 (change these values based on CPU frequency)
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
|
; @language: Z80 ASM
|
||||||
|
|
||||||
org 0xA000 ; Set starting position to ram
|
org 0xA000 ; Set starting position to ram
|
||||||
include 'main.asm'
|
include 'main.asm'
|
@ -2,6 +2,24 @@ jp Sysinit ; Startup vector: DO NOT MOVE! Must be the first instruction
|
|||||||
|
|
||||||
; Pat80 BIOS v0.01
|
; Pat80 BIOS v0.01
|
||||||
; @author: Daniele Verducci
|
; @author: Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
;
|
;
|
||||||
; MEMORY MAP
|
; MEMORY MAP
|
||||||
; ROM is at 0x0000
|
; ROM is at 0x0000
|
||||||
@ -10,18 +28,30 @@ jp Sysinit ; Startup vector: DO NOT MOVE! Must be the first instruction
|
|||||||
; DRIVERS VAR SPACE: 0x9000 - 0x9FFF (4kb)
|
; DRIVERS VAR SPACE: 0x9000 - 0x9FFF (4kb)
|
||||||
; APPLICATION VAR SPACE: 0xA000 - 0xFFFF (24kb)
|
; APPLICATION VAR SPACE: 0xA000 - 0xFFFF (24kb)
|
||||||
; I/O MAP
|
; I/O MAP
|
||||||
; I/O 0 (0x00 - 0x1F) Parallel terminal (uses addr 0x00 only)
|
; I/O 0 (0x00 - 0x1F) Parallel terminal (uses addr 0x00 and 0x01)
|
||||||
; I/O 1 (0x20 - 0x3F) Sound card (uses addr 0x20 only)
|
; I/O 1 (0x20 - 0x3F) Sound card (uses addr 0x20 only)
|
||||||
; I/O 2 (0x40 - 0x5F)
|
; I/O 2 (0x40 - 0x5F) PS2 Keyboard (uses 0x40 and 0x41)
|
||||||
; I/O 3 (0x60 - 0x7F)
|
; I/O 3 (0x60 - 0x7F)
|
||||||
; I/O 4 (0x80 - 0x9F)
|
; I/O 4 (0x80 - 0x9F)
|
||||||
; I/O 5 (0xA0 - 0xBF)
|
; I/O 5 (0xA0 - 0xBF)
|
||||||
; I/O 6 (0xC0 - 0xDF)
|
; I/O 6 (0xC0 - 0xDF)
|
||||||
; I/O 7 (0xE0 - 0xFF)
|
; I/O 7 (0xE0 - 0xFF)
|
||||||
|
|
||||||
|
; **** RESET/INTERRUPT VECTOR ****
|
||||||
|
|
||||||
|
; Maskable interrupt mode 1: when the BREAK key is pressed,
|
||||||
|
; a maskable interrupt is generated and the CPU jumps to this address.
|
||||||
|
; In this way, BREAK key brings up memory monitor at any time.
|
||||||
|
ds 0x38
|
||||||
|
di ; Disable maskable interrupts.
|
||||||
|
exx ; exchange registers
|
||||||
|
ex af, af'
|
||||||
|
jp Monitor_main
|
||||||
|
|
||||||
; **** SYSTEM CALLS ****
|
; **** SYSTEM CALLS ****
|
||||||
; System calls provide access to low level functions (input from keyboard, output to screen etc).
|
; System calls provide access to low level functions (input from keyboard, output to screen etc).
|
||||||
; The name starts always with Sys_
|
; The name starts always with Sys_
|
||||||
|
ds 0x40 ; Place system calls after Z80 reset/interrupt subroutines space
|
||||||
|
|
||||||
; Returns ABI version.
|
; Returns ABI version.
|
||||||
; (ABI -> https://en.wikipedia.org/wiki/Application_binary_interface)
|
; (ABI -> https://en.wikipedia.org/wiki/Application_binary_interface)
|
||||||
@ -45,6 +75,7 @@ Sys_Printc:
|
|||||||
; @return A The read character
|
; @return A The read character
|
||||||
Sys_Readc:
|
Sys_Readc:
|
||||||
jp Term_readc
|
jp Term_readc
|
||||||
|
;jp PS2Keyb_readc
|
||||||
|
|
||||||
; Reads a line
|
; Reads a line
|
||||||
; @return BC The pointer to a null-terminated read string
|
; @return BC The pointer to a null-terminated read string
|
||||||
@ -61,6 +92,7 @@ Sys_Beep:
|
|||||||
SYS_VAR_SPACE: EQU 0x8000
|
SYS_VAR_SPACE: EQU 0x8000
|
||||||
DRV_VAR_SPACE: EQU 0x9000
|
DRV_VAR_SPACE: EQU 0x9000
|
||||||
APP_SPACE: EQU 0xA000
|
APP_SPACE: EQU 0xA000
|
||||||
|
MEM_END: EQU 0xFFFF
|
||||||
|
|
||||||
; SYSTEM CONFIGURATION
|
; SYSTEM CONFIGURATION
|
||||||
IO_0: EQU 0x00
|
IO_0: EQU 0x00
|
||||||
@ -79,6 +111,7 @@ IO_7: EQU 0xE0
|
|||||||
|
|
||||||
;include 'drivers/hd44780.asm'
|
;include 'drivers/hd44780.asm'
|
||||||
;include 'drivers/keyboard.asm'
|
;include 'drivers/keyboard.asm'
|
||||||
|
include 'drivers/ps2_keyboard.asm'
|
||||||
include 'drivers/arduino_terminal.asm'
|
include 'drivers/arduino_terminal.asm'
|
||||||
include 'drivers/sn76489.asm'
|
include 'drivers/sn76489.asm'
|
||||||
include 'monitor.asm'
|
include 'monitor.asm'
|
||||||
@ -101,13 +134,28 @@ Sysinit:
|
|||||||
; Play startup sound
|
; Play startup sound
|
||||||
call Sys_Beep
|
call Sys_Beep
|
||||||
|
|
||||||
; Run memory monitor
|
; Run memory monitor
|
||||||
call Monitor_main
|
ei ; enable maskabpe interrupts
|
||||||
|
im 1 ; set interrupt mode 1 (on interrupt jumps to 0x38)
|
||||||
|
rst 0x38 ; throw fake interrupt: jump to interrupt routine to start monitor
|
||||||
|
|
||||||
|
; Keyboard test
|
||||||
|
; ld a, 0x3E
|
||||||
|
; call Sys_Printc
|
||||||
|
; ktestloop:
|
||||||
|
; call Sys_Readc
|
||||||
|
; call Sys_Printc
|
||||||
|
; ld a, 46
|
||||||
|
; call Sys_Printc
|
||||||
|
; jp ktestloop
|
||||||
|
|
||||||
|
; User exited from memory monitor without loading a program. Do nothing.
|
||||||
|
mloop:
|
||||||
|
; Main loop: do nothing.
|
||||||
|
jp mloop
|
||||||
|
|
||||||
; DEBUG: Echo chars
|
; DEBUG: Echo chars
|
||||||
; loop:
|
; loop:
|
||||||
; call Term_readc
|
; call Term_readc
|
||||||
; call Term_printc
|
; call Term_printc
|
||||||
; jp loop
|
; jp loop
|
||||||
|
|
||||||
halt
|
|
||||||
|
@ -1,5 +1,23 @@
|
|||||||
; Pat80 Memory Monitor
|
; Pat80 Memory Monitor
|
||||||
; @author Daniele Verducci
|
; @author Daniele Verducci
|
||||||
|
; @language: Z80 ASM
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 Memory Monitor.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 Memory Monitor is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 Memory Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
;
|
;
|
||||||
; Monitor commands (CMD $arg):
|
; Monitor commands (CMD $arg):
|
||||||
; H (HELP) Shows available commands
|
; H (HELP) Shows available commands
|
||||||
@ -21,11 +39,14 @@ MON_COMMAND_ZERO: DB "ZERO",0
|
|||||||
MON_COMMAND_LOAD: DB "LOAD",0
|
MON_COMMAND_LOAD: DB "LOAD",0
|
||||||
MON_COMMAND_RUN: DB "RUN",0
|
MON_COMMAND_RUN: DB "RUN",0
|
||||||
MON_COMMAND_ADB: DB "ADB",0
|
MON_COMMAND_ADB: DB "ADB",0
|
||||||
|
MON_COMMAND_MEMTEST: DB "MEMTEST",0
|
||||||
|
MON_COMMAND_QUIT: DB "QUIT",0
|
||||||
MON_ARG_HEX: DB " 0x",0
|
MON_ARG_HEX: DB " 0x",0
|
||||||
MON_HELP: DB 10,"Available commands:\nHELP prints this message\nDUMP [ADDR] shows memory content\nSET [ADDR] sets memory content\nZERO [ADDR] [ADDR] sets all bytes to 0 in the specified range\nLOAD\nRUN [ADDR] executes code starting from ADDR\nADB starts Assembly Deploy Bridge",0
|
MON_HELP: DB 10,"Available commands:\nHELP prints this message\nDUMP [ADDR] shows memory content\nSET [ADDR] sets memory content\nZERO [ADDR] [ADDR] sets all bytes to 0 in the specified range\nLOAD\nRUN [ADDR] executes code starting from ADDR\nADB starts Assembly Deploy Bridge\nMEMTEST checks ram boundaries\nQUIT exits",0
|
||||||
MON_MSG_ADB: DB 10,"Waiting for data.",0
|
MON_MSG_ADB: DB 10,"Waiting for data.",0
|
||||||
MON_ERR_SYNTAX: DB " Syntax error",0
|
MON_ERR_SYNTAX: DB " Syntax error",0
|
||||||
;MON_ADB_TIMEOUT: EQU 0xFF // Number of cycles after an ADB binary transfer is considered completed
|
; MON_RAMTEST_INTRO: DB " Checking memory... ",0
|
||||||
|
; MON_RAMTEST_RAMSTART: DB " Ram starts at 0x",0
|
||||||
MON_DUMP_BYTES_LINES: EQU 8
|
MON_DUMP_BYTES_LINES: EQU 8
|
||||||
MON_DUMP_BYTES_PER_LINE: EQU 8
|
MON_DUMP_BYTES_PER_LINE: EQU 8
|
||||||
|
|
||||||
@ -66,6 +87,12 @@ Monitor_main:
|
|||||||
ld hl, MON_COMMAND_ADB
|
ld hl, MON_COMMAND_ADB
|
||||||
cp (hl)
|
cp (hl)
|
||||||
jp z, monitor_adb
|
jp z, monitor_adb
|
||||||
|
; ld hl, MON_COMMAND_MEMTEST
|
||||||
|
; cp (hl)
|
||||||
|
; jp z, monitor_memtest
|
||||||
|
ld hl, MON_COMMAND_QUIT
|
||||||
|
cp (hl)
|
||||||
|
jp z, monitor_quit
|
||||||
; Unrecognized command: print error and beep
|
; Unrecognized command: print error and beep
|
||||||
ld bc, MON_ERR_SYNTAX
|
ld bc, MON_ERR_SYNTAX
|
||||||
call Sys_Print
|
call Sys_Print
|
||||||
@ -80,6 +107,23 @@ monitor_help:
|
|||||||
call Sys_Print
|
call Sys_Print
|
||||||
jp monitor_main_loop
|
jp monitor_main_loop
|
||||||
|
|
||||||
|
monitor_quit:
|
||||||
|
ld bc, MON_COMMAND_QUIT + 1 ; autocomplete command
|
||||||
|
call Sys_Print
|
||||||
|
; newline
|
||||||
|
ld a, 10
|
||||||
|
call Sys_Printc
|
||||||
|
; Restores registers and re-enable interrupts: when the BREAK key is pressed,
|
||||||
|
; a maskable interrupt is generated and the CPU jumps to 0x38 reset vector,
|
||||||
|
; where if finds a call to Memory monitor (see main.asm).
|
||||||
|
exx ; exchange registers
|
||||||
|
ex af, af'
|
||||||
|
; enable interrupts
|
||||||
|
ei
|
||||||
|
im 1 ; set interrupt mode 1 (on interrupt jumps to 0x38)
|
||||||
|
reti ; return from interrupt
|
||||||
|
|
||||||
|
|
||||||
; Asks the user for a memory position and shows the following 64 bytes of memory
|
; Asks the user for a memory position and shows the following 64 bytes of memory
|
||||||
; @uses a, b, c, d, e, h, l
|
; @uses a, b, c, d, e, h, l
|
||||||
monitor_dump:
|
monitor_dump:
|
||||||
@ -257,23 +301,34 @@ monitor_zero: ; TODO: bugged, doesn't exit cycle
|
|||||||
monitor_load:
|
monitor_load:
|
||||||
ld bc, MON_COMMAND_LOAD + 1 ; autocomplete command
|
ld bc, MON_COMMAND_LOAD + 1 ; autocomplete command
|
||||||
call Sys_Print
|
call Sys_Print
|
||||||
|
; TODO: When implemented, re-enable interrupts before run application
|
||||||
jp monitor_main_loop
|
jp monitor_main_loop
|
||||||
|
|
||||||
monitor_run:
|
monitor_run:
|
||||||
ld bc, MON_COMMAND_RUN + 1 ; autocomplete command
|
ld bc, MON_COMMAND_RUN + 1 ; autocomplete command
|
||||||
call Sys_Print
|
call Sys_Print
|
||||||
; Now read the memory address to be changed from the user
|
; Now read the memory address to be executed from the user
|
||||||
call monitor_arg_2byte ; returns the read bytes in hl
|
call monitor_arg_2byte ; returns the read bytes in hl
|
||||||
ld a, 10 ; newline
|
ld a, 10 ; newline
|
||||||
call Sys_Printc
|
call Sys_Printc
|
||||||
jp (hl) ; Start executing code
|
; enable interrupts
|
||||||
|
ei
|
||||||
|
im 1 ; set interrupt mode 1 (on interrupt jumps to 0x38)
|
||||||
|
; pop the last entry on the stack: this is needed (as the monitor
|
||||||
|
; runs in an interrupt) to counter-balance the missing reti statement
|
||||||
|
pop bc
|
||||||
|
; execute code
|
||||||
|
jp (hl)
|
||||||
|
|
||||||
monitor_adb:
|
monitor_adb:
|
||||||
ld bc, MON_COMMAND_ADB + 1 ; autocomplete command
|
ld bc, MON_COMMAND_ADB + 1 ; autocomplete command
|
||||||
call Sys_Print
|
call Sys_Print
|
||||||
; start copying incoming data to application space
|
; start copying incoming data to application space
|
||||||
call monitor_copyTermToAppMem
|
call monitor_copyTermToAppMem
|
||||||
|
; call monitor_enable_int ; re-enable interrupts
|
||||||
;jp APP_SPACE ; Start executing code
|
;jp APP_SPACE ; Start executing code
|
||||||
|
|
||||||
|
|
||||||
; ld bc, APP_SPACE
|
; ld bc, APP_SPACE
|
||||||
; call Sys_Print
|
; call Sys_Print
|
||||||
jp monitor_main_loop
|
jp monitor_main_loop
|
||||||
@ -516,4 +571,55 @@ monitor_copyTermToAppMem:
|
|||||||
dec d
|
dec d
|
||||||
jp monitor_copyTermToAppMem_loop ; continue loop
|
jp monitor_copyTermToAppMem_loop ; continue loop
|
||||||
|
|
||||||
|
; Runs a memory test to identify ram memory boundaries and check the ram is working.
|
||||||
|
; Starting from last memory position, writes 0xFF, reads it back, writes 0x00, reads it back.
|
||||||
|
; Exits when the first value differs from the written value (this may be caused by a bad ram
|
||||||
|
; block or the start of rom in memory map). Prints the last good address on exit.
|
||||||
|
; monitor_memtest:
|
||||||
|
; ld bc, MON_COMMAND_MEMTEST + 1 ; autocomplete command
|
||||||
|
; call Sys_Print
|
||||||
|
; ; Prints intro
|
||||||
|
; ld bc, MON_RAMTEST_INTRO
|
||||||
|
; call Sys_Print
|
||||||
|
; ; Starts checking
|
||||||
|
; ld hl, MEM_END
|
||||||
|
; monitor_memtest_loop:
|
||||||
|
; ; Save current byte value for later restore
|
||||||
|
; ld c, (hl)
|
||||||
|
; ; Write 0xFF
|
||||||
|
; ld a, 0xFF
|
||||||
|
; ld (hl), a
|
||||||
|
; ; Read and compare 0xFF
|
||||||
|
; ld a, (hl)
|
||||||
|
; cp 0xFF
|
||||||
|
; jp nz, monitor_memtest_badram
|
||||||
|
; ; Write 0x00
|
||||||
|
; ld a, 0x00
|
||||||
|
; ld (hl), a
|
||||||
|
; ; Read and compare 0xFF
|
||||||
|
; ld a, (hl)
|
||||||
|
; cp 0x00
|
||||||
|
; jp nz, monitor_memtest_badram
|
||||||
|
; ; Memory byte is good, restore previous value
|
||||||
|
; ld (hl), c
|
||||||
|
; ; Next one
|
||||||
|
; dec hl
|
||||||
|
; jp monitor_memtest_loop
|
||||||
|
; monitor_memtest_badram:
|
||||||
|
; ; Found a bad memory byte (or entered rom block).
|
||||||
|
; ld bc, MON_RAMTEST_RAMSTART
|
||||||
|
; call Sys_Print
|
||||||
|
; ; Print last valid memory addr
|
||||||
|
; inc hl
|
||||||
|
; ld a, h
|
||||||
|
; call monitor_printHexByte
|
||||||
|
; ld a, l
|
||||||
|
; call monitor_printHexByte
|
||||||
|
; ; Newline
|
||||||
|
; ld a, 10
|
||||||
|
; call Sys_Printc
|
||||||
|
; ; Back to menu
|
||||||
|
; jp monitor_main_loop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
; @language: Z80 ASM
|
||||||
|
|
||||||
SndTest_test:
|
SndTest_test:
|
||||||
; ch1 max volume
|
; ch1 max volume
|
||||||
ld a,%10010000
|
ld a,%10010000
|
||||||
|
7
pat80-emulator/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# PAT80 Emulator
|
||||||
|
This folder contains a submodule (you should fetch it if you need to run the os in an emulator).
|
||||||
|
|
||||||
|
Uses cburbridge's Z80 emulator written in python. It opens some windows showing the emulated computer's memory map, the cpu registers state and parallel terminal to interact with the os.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
To run the os in the emulator, head to `pat80-computer/software/z80-assembly/os/Makefile` and run `make run` to build the rom from assembly and start the emulator.
|
1
pat80-emulator/z80-python-emulator
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit a5dbd3e829a94a2598b42ba976e61353c580600b
|
2
pat80-io-devices/composite-pal-adapter/software/avr-assembly/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
main.hex
|
||||||
|
main.obj
|
@ -5,9 +5,14 @@
|
|||||||
## Flash
|
## Flash
|
||||||
### Rom
|
### Rom
|
||||||
`minipro -w filename.hex -p ATMEGA1284`
|
`minipro -w filename.hex -p ATMEGA1284`
|
||||||
|
|
||||||
### Fuses
|
### Fuses
|
||||||
Read fuses: `minipro -r -c config -p ATMEGA1284` (`-r -c config` means read configuration (fuses))
|
Read fuses: `minipro -r -c config -p ATMEGA1284` (`-r -c config` means read configuration (fuses))
|
||||||
Fuses must be written all together, so read the current values, edit the generated file and write it.
|
Fuses must be written all together, so read the current values, edit the generated file and write it.
|
||||||
The meaning of every bis is in the conf file.
|
The meaning of every bis is in the conf file.
|
||||||
Write fuses: `minipro -w fuses.conf -c config -p ATMEGA1284`
|
Write fuses: `minipro -w fuses.conf -c config -p ATMEGA1284`
|
||||||
|
|
||||||
|
# Generate test images
|
||||||
|
Using GIMP, Image -> Mode -> Indexed, select 2 colors and Posterize.
|
||||||
|
Invert the image colors.
|
||||||
|
Save as .xbm file. Oper with a *text editor*, you will find an array of byte-packed pixels (every byte represents 8 pixels).
|
||||||
|
Copy and paste on an ASM file.
|
@ -1,276 +0,0 @@
|
|||||||
; ***** I/O REGISTER DEFINITIONS *****************************************
|
|
||||||
; NOTE:
|
|
||||||
; Definitions marked "MEMORY MAPPED"are extended I/O ports
|
|
||||||
; and cannot be used with IN/OUT instructions
|
|
||||||
.equ UDR1 = 0xce ; MEMORY MAPPED
|
|
||||||
.equ UBRR1L = 0xcc ; MEMORY MAPPED
|
|
||||||
.equ UBRR1H = 0xcd ; MEMORY MAPPED
|
|
||||||
.equ UCSR1C = 0xca ; MEMORY MAPPED
|
|
||||||
.equ UCSR1B = 0xc9 ; MEMORY MAPPED
|
|
||||||
.equ UCSR1A = 0xc8 ; MEMORY MAPPED
|
|
||||||
.equ UDR0 = 0xc6 ; MEMORY MAPPED
|
|
||||||
.equ UBRR0L = 0xc4 ; MEMORY MAPPED
|
|
||||||
.equ UBRR0H = 0xc5 ; MEMORY MAPPED
|
|
||||||
.equ UCSR0C = 0xc2 ; MEMORY MAPPED
|
|
||||||
.equ UCSR0B = 0xc1 ; MEMORY MAPPED
|
|
||||||
.equ UCSR0A = 0xc0 ; MEMORY MAPPED
|
|
||||||
.equ TWAMR = 0xbd ; MEMORY MAPPED
|
|
||||||
.equ TWCR = 0xbc ; MEMORY MAPPED
|
|
||||||
.equ TWDR = 0xbb ; MEMORY MAPPED
|
|
||||||
.equ TWAR = 0xba ; MEMORY MAPPED
|
|
||||||
.equ TWSR = 0xb9 ; MEMORY MAPPED
|
|
||||||
.equ TWBR = 0xb8 ; MEMORY MAPPED
|
|
||||||
.equ ASSR = 0xb6 ; MEMORY MAPPED
|
|
||||||
.equ OCR2B = 0xb4 ; MEMORY MAPPED
|
|
||||||
.equ OCR2A = 0xb3 ; MEMORY MAPPED
|
|
||||||
.equ TCNT2 = 0xb2 ; MEMORY MAPPED
|
|
||||||
.equ TCCR2B = 0xb1 ; MEMORY MAPPED
|
|
||||||
.equ TCCR2A = 0xb0 ; MEMORY MAPPED
|
|
||||||
.equ OCR3BL = 0x9a ; MEMORY MAPPED
|
|
||||||
.equ OCR3BH = 0x9b ; MEMORY MAPPED
|
|
||||||
.equ OCR3AL = 0x98 ; MEMORY MAPPED
|
|
||||||
.equ OCR3AH = 0x99 ; MEMORY MAPPED
|
|
||||||
.equ ICR3L = 0x96 ; MEMORY MAPPED
|
|
||||||
.equ ICR3H = 0x97 ; MEMORY MAPPED
|
|
||||||
.equ TCNT3L = 0x94 ; MEMORY MAPPED
|
|
||||||
.equ TCNT3H = 0x95 ; MEMORY MAPPED
|
|
||||||
.equ TCCR3C = 0x92 ; MEMORY MAPPED
|
|
||||||
.equ TCCR3B = 0x91 ; MEMORY MAPPED
|
|
||||||
.equ TCCR3A = 0x90 ; MEMORY MAPPED
|
|
||||||
.equ OCR1BL = 0x8a ; MEMORY MAPPED
|
|
||||||
.equ OCR1BH = 0x8b ; MEMORY MAPPED
|
|
||||||
.equ OCR1AL = 0x88 ; MEMORY MAPPED
|
|
||||||
.equ OCR1AH = 0x89 ; MEMORY MAPPED
|
|
||||||
.equ ICR1L = 0x86 ; MEMORY MAPPED
|
|
||||||
.equ ICR1H = 0x87 ; MEMORY MAPPED
|
|
||||||
.equ TCNT1L = 0x84 ; MEMORY MAPPED
|
|
||||||
.equ TCNT1H = 0x85 ; MEMORY MAPPED
|
|
||||||
.equ TCCR1C = 0x82 ; MEMORY MAPPED
|
|
||||||
.equ TCCR1B = 0x81 ; MEMORY MAPPED
|
|
||||||
.equ TCCR1A = 0x80 ; MEMORY MAPPED
|
|
||||||
.equ DIDR1 = 0x7f ; MEMORY MAPPED
|
|
||||||
.equ DIDR0 = 0x7e ; MEMORY MAPPED
|
|
||||||
.equ ADMUX = 0x7c ; MEMORY MAPPED
|
|
||||||
.equ ADCSRB = 0x7b ; MEMORY MAPPED
|
|
||||||
.equ ADCSRA = 0x7a ; MEMORY MAPPED
|
|
||||||
.equ ADCH = 0x79 ; MEMORY MAPPED
|
|
||||||
.equ ADCL = 0x78 ; MEMORY MAPPED
|
|
||||||
.equ PCMSK3 = 0x73 ; MEMORY MAPPED
|
|
||||||
.equ TIMSK3 = 0x71 ; MEMORY MAPPED
|
|
||||||
.equ TIMSK2 = 0x70 ; MEMORY MAPPED
|
|
||||||
.equ TIMSK1 = 0x6f ; MEMORY MAPPED
|
|
||||||
.equ TIMSK0 = 0x6e ; MEMORY MAPPED
|
|
||||||
.equ PCMSK2 = 0x6d ; MEMORY MAPPED
|
|
||||||
.equ PCMSK1 = 0x6c ; MEMORY MAPPED
|
|
||||||
.equ PCMSK0 = 0x6b ; MEMORY MAPPED
|
|
||||||
.equ EICRA = 0x69 ; MEMORY MAPPED
|
|
||||||
.equ PCICR = 0x68 ; MEMORY MAPPED
|
|
||||||
.equ OSCCAL = 0x66 ; MEMORY MAPPED
|
|
||||||
.equ PRR1 = 0x65 ; MEMORY MAPPED
|
|
||||||
.equ PRR0 = 0x64 ; MEMORY MAPPED
|
|
||||||
.equ CLKPR = 0x61 ; MEMORY MAPPED
|
|
||||||
.equ WDTCSR = 0x60 ; MEMORY MAPPED
|
|
||||||
.equ SREG = 0x3f
|
|
||||||
.equ SPL = 0x3d
|
|
||||||
.equ SPH = 0x3e
|
|
||||||
.equ RAMPZ = 0x3b
|
|
||||||
.equ SPMCSR = 0x37
|
|
||||||
.equ MCUCR = 0x35
|
|
||||||
.equ MCUSR = 0x34
|
|
||||||
.equ SMCR = 0x33
|
|
||||||
.equ OCDR = 0x31
|
|
||||||
.equ ACSR = 0x30
|
|
||||||
.equ SPDR = 0x2e
|
|
||||||
.equ SPSR = 0x2d
|
|
||||||
.equ SPCR = 0x2c
|
|
||||||
.equ GPIOR2 = 0x2b
|
|
||||||
.equ GPIOR1 = 0x2a
|
|
||||||
.equ OCR0B = 0x28
|
|
||||||
.equ OCR0A = 0x27
|
|
||||||
.equ TCNT0 = 0x26
|
|
||||||
.equ TCCR0B = 0x25
|
|
||||||
.equ TCCR0A = 0x24
|
|
||||||
.equ GTCCR = 0x23
|
|
||||||
.equ EEARH = 0x22
|
|
||||||
.equ EEARL = 0x21
|
|
||||||
.equ EEDR = 0x20
|
|
||||||
.equ EECR = 0x1f
|
|
||||||
.equ GPIOR0 = 0x1e
|
|
||||||
.equ EIMSK = 0x1d
|
|
||||||
.equ EIFR = 0x1c
|
|
||||||
.equ PCIFR = 0x1b
|
|
||||||
.equ TIFR3 = 0x18
|
|
||||||
.equ TIFR2 = 0x17
|
|
||||||
.equ TIFR1 = 0x16
|
|
||||||
.equ TIFR0 = 0x15
|
|
||||||
.equ PORTD = 0x0b
|
|
||||||
.equ DDRD = 0x0a
|
|
||||||
.equ PIND = 0x09
|
|
||||||
.equ PORTC = 0x08
|
|
||||||
.equ DDRC = 0x07
|
|
||||||
.equ PINC = 0x06
|
|
||||||
.equ PORTB = 0x05
|
|
||||||
.equ DDRB = 0x04
|
|
||||||
.equ PINB = 0x03
|
|
||||||
.equ PORTA = 0x02
|
|
||||||
.equ DDRA = 0x01
|
|
||||||
.equ PINA = 0x00
|
|
||||||
|
|
||||||
; ***** PORTA ************************
|
|
||||||
; PORTA - Port A Data Register
|
|
||||||
.equ PORTA0 = 0 ; Port A Data Register bit 0
|
|
||||||
.equ PA0 = 0 ; For compatibility
|
|
||||||
.equ PORTA1 = 1 ; Port A Data Register bit 1
|
|
||||||
.equ PA1 = 1 ; For compatibility
|
|
||||||
.equ PORTA2 = 2 ; Port A Data Register bit 2
|
|
||||||
.equ PA2 = 2 ; For compatibility
|
|
||||||
.equ PORTA3 = 3 ; Port A Data Register bit 3
|
|
||||||
.equ PA3 = 3 ; For compatibility
|
|
||||||
.equ PORTA4 = 4 ; Port A Data Register bit 4
|
|
||||||
.equ PA4 = 4 ; For compatibility
|
|
||||||
.equ PORTA5 = 5 ; Port A Data Register bit 5
|
|
||||||
.equ PA5 = 5 ; For compatibility
|
|
||||||
.equ PORTA6 = 6 ; Port A Data Register bit 6
|
|
||||||
.equ PA6 = 6 ; For compatibility
|
|
||||||
.equ PORTA7 = 7 ; Port A Data Register bit 7
|
|
||||||
.equ PA7 = 7 ; For compatibility
|
|
||||||
|
|
||||||
; DDRA - Port A Data Direction Register
|
|
||||||
.equ DDA0 = 0 ; Data Direction Register, Port A, bit 0
|
|
||||||
.equ DDA1 = 1 ; Data Direction Register, Port A, bit 1
|
|
||||||
.equ DDA2 = 2 ; Data Direction Register, Port A, bit 2
|
|
||||||
.equ DDA3 = 3 ; Data Direction Register, Port A, bit 3
|
|
||||||
.equ DDA4 = 4 ; Data Direction Register, Port A, bit 4
|
|
||||||
.equ DDA5 = 5 ; Data Direction Register, Port A, bit 5
|
|
||||||
.equ DDA6 = 6 ; Data Direction Register, Port A, bit 6
|
|
||||||
.equ DDA7 = 7 ; Data Direction Register, Port A, bit 7
|
|
||||||
|
|
||||||
; PINA - Port A Input Pins
|
|
||||||
.equ PINA0 = 0 ; Input Pins, Port A bit 0
|
|
||||||
.equ PINA1 = 1 ; Input Pins, Port A bit 1
|
|
||||||
.equ PINA2 = 2 ; Input Pins, Port A bit 2
|
|
||||||
.equ PINA3 = 3 ; Input Pins, Port A bit 3
|
|
||||||
.equ PINA4 = 4 ; Input Pins, Port A bit 4
|
|
||||||
.equ PINA5 = 5 ; Input Pins, Port A bit 5
|
|
||||||
.equ PINA6 = 6 ; Input Pins, Port A bit 6
|
|
||||||
.equ PINA7 = 7 ; Input Pins, Port A bit 7
|
|
||||||
|
|
||||||
|
|
||||||
; ***** PORTB ************************
|
|
||||||
; PORTB - Port B Data Register
|
|
||||||
.equ PORTB0 = 0 ; Port B Data Register bit 0
|
|
||||||
.equ PB0 = 0 ; For compatibility
|
|
||||||
.equ PORTB1 = 1 ; Port B Data Register bit 1
|
|
||||||
.equ PB1 = 1 ; For compatibility
|
|
||||||
.equ PORTB2 = 2 ; Port B Data Register bit 2
|
|
||||||
.equ PB2 = 2 ; For compatibility
|
|
||||||
.equ PORTB3 = 3 ; Port B Data Register bit 3
|
|
||||||
.equ PB3 = 3 ; For compatibility
|
|
||||||
.equ PORTB4 = 4 ; Port B Data Register bit 4
|
|
||||||
.equ PB4 = 4 ; For compatibility
|
|
||||||
.equ PORTB5 = 5 ; Port B Data Register bit 5
|
|
||||||
.equ PB5 = 5 ; For compatibility
|
|
||||||
.equ PORTB6 = 6 ; Port B Data Register bit 6
|
|
||||||
.equ PB6 = 6 ; For compatibility
|
|
||||||
.equ PORTB7 = 7 ; Port B Data Register bit 7
|
|
||||||
.equ PB7 = 7 ; For compatibility
|
|
||||||
|
|
||||||
; DDRB - Port B Data Direction Register
|
|
||||||
.equ DDB0 = 0 ; Port B Data Direction Register bit 0
|
|
||||||
.equ DDB1 = 1 ; Port B Data Direction Register bit 1
|
|
||||||
.equ DDB2 = 2 ; Port B Data Direction Register bit 2
|
|
||||||
.equ DDB3 = 3 ; Port B Data Direction Register bit 3
|
|
||||||
.equ DDB4 = 4 ; Port B Data Direction Register bit 4
|
|
||||||
.equ DDB5 = 5 ; Port B Data Direction Register bit 5
|
|
||||||
.equ DDB6 = 6 ; Port B Data Direction Register bit 6
|
|
||||||
.equ DDB7 = 7 ; Port B Data Direction Register bit 7
|
|
||||||
|
|
||||||
; PINB - Port B Input Pins
|
|
||||||
.equ PINB0 = 0 ; Port B Input Pins bit 0
|
|
||||||
.equ PINB1 = 1 ; Port B Input Pins bit 1
|
|
||||||
.equ PINB2 = 2 ; Port B Input Pins bit 2
|
|
||||||
.equ PINB3 = 3 ; Port B Input Pins bit 3
|
|
||||||
.equ PINB4 = 4 ; Port B Input Pins bit 4
|
|
||||||
.equ PINB5 = 5 ; Port B Input Pins bit 5
|
|
||||||
.equ PINB6 = 6 ; Port B Input Pins bit 6
|
|
||||||
.equ PINB7 = 7 ; Port B Input Pins bit 7
|
|
||||||
|
|
||||||
|
|
||||||
; ***** PORTC ************************
|
|
||||||
; PORTC - Port C Data Register
|
|
||||||
.equ PORTC0 = 0 ; Port C Data Register bit 0
|
|
||||||
.equ PC0 = 0 ; For compatibility
|
|
||||||
.equ PORTC1 = 1 ; Port C Data Register bit 1
|
|
||||||
.equ PC1 = 1 ; For compatibility
|
|
||||||
.equ PORTC2 = 2 ; Port C Data Register bit 2
|
|
||||||
.equ PC2 = 2 ; For compatibility
|
|
||||||
.equ PORTC3 = 3 ; Port C Data Register bit 3
|
|
||||||
.equ PC3 = 3 ; For compatibility
|
|
||||||
.equ PORTC4 = 4 ; Port C Data Register bit 4
|
|
||||||
.equ PC4 = 4 ; For compatibility
|
|
||||||
.equ PORTC5 = 5 ; Port C Data Register bit 5
|
|
||||||
.equ PC5 = 5 ; For compatibility
|
|
||||||
.equ PORTC6 = 6 ; Port C Data Register bit 6
|
|
||||||
.equ PC6 = 6 ; For compatibility
|
|
||||||
.equ PORTC7 = 7 ; Port C Data Register bit 7
|
|
||||||
.equ PC7 = 7 ; For compatibility
|
|
||||||
|
|
||||||
; DDRC - Port C Data Direction Register
|
|
||||||
.equ DDC0 = 0 ; Port C Data Direction Register bit 0
|
|
||||||
.equ DDC1 = 1 ; Port C Data Direction Register bit 1
|
|
||||||
.equ DDC2 = 2 ; Port C Data Direction Register bit 2
|
|
||||||
.equ DDC3 = 3 ; Port C Data Direction Register bit 3
|
|
||||||
.equ DDC4 = 4 ; Port C Data Direction Register bit 4
|
|
||||||
.equ DDC5 = 5 ; Port C Data Direction Register bit 5
|
|
||||||
.equ DDC6 = 6 ; Port C Data Direction Register bit 6
|
|
||||||
.equ DDC7 = 7 ; Port C Data Direction Register bit 7
|
|
||||||
|
|
||||||
; PINC - Port C Input Pins
|
|
||||||
.equ PINC0 = 0 ; Port C Input Pins bit 0
|
|
||||||
.equ PINC1 = 1 ; Port C Input Pins bit 1
|
|
||||||
.equ PINC2 = 2 ; Port C Input Pins bit 2
|
|
||||||
.equ PINC3 = 3 ; Port C Input Pins bit 3
|
|
||||||
.equ PINC4 = 4 ; Port C Input Pins bit 4
|
|
||||||
.equ PINC5 = 5 ; Port C Input Pins bit 5
|
|
||||||
.equ PINC6 = 6 ; Port C Input Pins bit 6
|
|
||||||
.equ PINC7 = 7 ; Port C Input Pins bit 7
|
|
||||||
|
|
||||||
|
|
||||||
; ***** PORTD ************************
|
|
||||||
; PORTD - Port D Data Register
|
|
||||||
.equ PORTD0 = 0 ; Port D Data Register bit 0
|
|
||||||
.equ PD0 = 0 ; For compatibility
|
|
||||||
.equ PORTD1 = 1 ; Port D Data Register bit 1
|
|
||||||
.equ PD1 = 1 ; For compatibility
|
|
||||||
.equ PORTD2 = 2 ; Port D Data Register bit 2
|
|
||||||
.equ PD2 = 2 ; For compatibility
|
|
||||||
.equ PORTD3 = 3 ; Port D Data Register bit 3
|
|
||||||
.equ PD3 = 3 ; For compatibility
|
|
||||||
.equ PORTD4 = 4 ; Port D Data Register bit 4
|
|
||||||
.equ PD4 = 4 ; For compatibility
|
|
||||||
.equ PORTD5 = 5 ; Port D Data Register bit 5
|
|
||||||
.equ PD5 = 5 ; For compatibility
|
|
||||||
.equ PORTD6 = 6 ; Port D Data Register bit 6
|
|
||||||
.equ PD6 = 6 ; For compatibility
|
|
||||||
.equ PORTD7 = 7 ; Port D Data Register bit 7
|
|
||||||
.equ PD7 = 7 ; For compatibility
|
|
||||||
|
|
||||||
; DDRD - Port D Data Direction Register
|
|
||||||
.equ DDD0 = 0 ; Port D Data Direction Register bit 0
|
|
||||||
.equ DDD1 = 1 ; Port D Data Direction Register bit 1
|
|
||||||
.equ DDD2 = 2 ; Port D Data Direction Register bit 2
|
|
||||||
.equ DDD3 = 3 ; Port D Data Direction Register bit 3
|
|
||||||
.equ DDD4 = 4 ; Port D Data Direction Register bit 4
|
|
||||||
.equ DDD5 = 5 ; Port D Data Direction Register bit 5
|
|
||||||
.equ DDD6 = 6 ; Port D Data Direction Register bit 6
|
|
||||||
.equ DDD7 = 7 ; Port D Data Direction Register bit 7
|
|
||||||
|
|
||||||
; PIND - Port D Input Pins
|
|
||||||
.equ PIND0 = 0 ; Port D Input Pins bit 0
|
|
||||||
.equ PIND1 = 1 ; Port D Input Pins bit 1
|
|
||||||
.equ PIND2 = 2 ; Port D Input Pins bit 2
|
|
||||||
.equ PIND3 = 3 ; Port D Input Pins bit 3
|
|
||||||
.equ PIND4 = 4 ; Port D Input Pins bit 4
|
|
||||||
.equ PIND5 = 5 ; Port D Input Pins bit 5
|
|
||||||
.equ PIND6 = 6 ; Port D Input Pins bit 6
|
|
||||||
.equ PIND7 = 7 ; Port D Input Pins bit 7
|
|
@ -0,0 +1,179 @@
|
|||||||
|
; *******************************************
|
||||||
|
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
||||||
|
; * Character generator module *
|
||||||
|
; *******************************************
|
||||||
|
;
|
||||||
|
; @language: AVR ASM
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 IO Devices.
|
||||||
|
;
|
||||||
|
; Pat80 IO Devices is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 IO Devices is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 IO Devices. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This module generates the character pixels using the font present in rom
|
||||||
|
; and adds it on the framebuffer in the position indicated by POS_COARSE (Y).
|
||||||
|
|
||||||
|
.equ LINE_COLUMNS = 46 ; number of columns (characters or chunks) per line
|
||||||
|
|
||||||
|
; Draws character in register A to the screen at current coords (Y)
|
||||||
|
; @param (HIGH_ACCUM) ascii code to display
|
||||||
|
; @modifies r0 (A), r1, r2, r3, r17, HIGH_ACCUM, Y, Z
|
||||||
|
draw_char:
|
||||||
|
; Check char is valid
|
||||||
|
cpi HIGH_ACCUM, 0x7f
|
||||||
|
brlo draw_char_valid
|
||||||
|
ret
|
||||||
|
|
||||||
|
draw_char_valid:
|
||||||
|
; Glyph's first byte is at:
|
||||||
|
; glyph_pointer = font_starting_mem_pos + (ascii_code * number_of_bytes_per_font)
|
||||||
|
; But all the fonts are 1 byte large, so a glyph is 1*height bytes:
|
||||||
|
; glyph_pointer = FONT + (ascii_code * FONT_HEIGHT)
|
||||||
|
|
||||||
|
; Load first glyph position on Z
|
||||||
|
ldi ZH, high(FONT<<1)
|
||||||
|
ldi ZL, low(FONT<<1)
|
||||||
|
; Obtain offset multiplying ascii_code * number_of_bytes_per_font
|
||||||
|
ldi r17, FONT_HEIGHT
|
||||||
|
mul HIGH_ACCUM, r17 ; result overwrites r0 and r1!
|
||||||
|
; 16-bit addition between gliph's first byte position and offset (and store result in Z) to obtain our glyph position
|
||||||
|
add ZL, r0
|
||||||
|
adc ZH, r1
|
||||||
|
; Z contain our glyph's first byte position: draw it
|
||||||
|
; Obtain drawing position in framebuffer memory (in Y)
|
||||||
|
call update_mem_pointer
|
||||||
|
; The drawing consist of FONT_HEIGHT cycles. Every glyph byte is placed on its own line
|
||||||
|
; on screen. To do this, we place it LINE_COLUMNS bytes after the previous one.
|
||||||
|
clr HIGH_ACCUM
|
||||||
|
draw_char_loop:
|
||||||
|
; Load glyph line byte from program memory (and point to the next)
|
||||||
|
lpm A, Z+
|
||||||
|
; Write glyph line to framebuffer at chunk cursor position (Y)
|
||||||
|
st Y, A
|
||||||
|
; Increment chunk cursor position (Y) to next line of the same char column
|
||||||
|
adiw YH:YL,LINE_COLUMNS
|
||||||
|
; Decrement loop counter and exit if reached 0
|
||||||
|
inc HIGH_ACCUM
|
||||||
|
cpi HIGH_ACCUM, FONT_HEIGHT
|
||||||
|
brlo draw_char_loop
|
||||||
|
|
||||||
|
; Char drawing is complete. Increment cursor position
|
||||||
|
inc POS_COLUMN
|
||||||
|
; Check if end of line
|
||||||
|
cpi POS_COLUMN, LINE_COLUMNS
|
||||||
|
brsh draw_char_eol
|
||||||
|
ret
|
||||||
|
draw_char_eol:
|
||||||
|
; end of line
|
||||||
|
clr POS_COLUMN ; reset column to 0
|
||||||
|
; Move cursor to next line
|
||||||
|
ldi HIGH_ACCUM, FONT_HEIGHT
|
||||||
|
add POS_ROWP, HIGH_ACCUM
|
||||||
|
; check if reached end of screen
|
||||||
|
cpi POS_ROWP, SCREEN_HEIGHT
|
||||||
|
brsh draw_char_eos
|
||||||
|
ret
|
||||||
|
draw_char_eos:
|
||||||
|
; end of screen: scroll screen but leave line pointer to last line
|
||||||
|
call scroll_screen
|
||||||
|
ret
|
||||||
|
|
||||||
|
; Sets the cursor to 0,0 and clears fine position
|
||||||
|
cursor_pos_home:
|
||||||
|
; Set all positions to 0
|
||||||
|
clr POS_COLUMN
|
||||||
|
clr POS_ROWP
|
||||||
|
ret
|
||||||
|
|
||||||
|
; Draws a newline
|
||||||
|
; Moves cursor to start of following screen line
|
||||||
|
; Takes care of particular cases, i.e. end of screen (shifts all screen up by one line)
|
||||||
|
draw_carriage_return:
|
||||||
|
; Move cursor to line start
|
||||||
|
ldi POS_COLUMN, 0
|
||||||
|
; Move cursor to next line
|
||||||
|
ldi HIGH_ACCUM, FONT_HEIGHT
|
||||||
|
add POS_ROWP, HIGH_ACCUM
|
||||||
|
; Check if end of screen
|
||||||
|
cpi POS_ROWP, SCREEN_HEIGHT
|
||||||
|
brsh draw_carriage_return_eos
|
||||||
|
ret
|
||||||
|
draw_carriage_return_eos:
|
||||||
|
call scroll_screen
|
||||||
|
ret
|
||||||
|
|
||||||
|
; Scrolls the screen by one line (=LINE_COLUMNS*FONT_HEIGHT bytes)
|
||||||
|
; and clears the last line (FRAMEBUFFER_END - LINE_COLUMNS*FONT_HEIGHT bytes)
|
||||||
|
; @uses A, Z
|
||||||
|
scroll_screen:
|
||||||
|
; "Read" Pointer to first char of second line
|
||||||
|
ldi YH, high(FRAMEBUFFER+(LINE_COLUMNS*FONT_HEIGHT))
|
||||||
|
ldi YL, low(FRAMEBUFFER+(LINE_COLUMNS*FONT_HEIGHT))
|
||||||
|
; "Write" Pointer to first char of first line
|
||||||
|
ldi ZH, high(FRAMEBUFFER)
|
||||||
|
ldi ZL, low(FRAMEBUFFER)
|
||||||
|
; Copy data
|
||||||
|
scroll_screen_copy_loop:
|
||||||
|
ld A, Y+
|
||||||
|
st Z+, A
|
||||||
|
cpi YH, high(FRAMEBUFFER_END)
|
||||||
|
brne scroll_screen_copy_loop
|
||||||
|
cpi YL, low(FRAMEBUFFER_END)
|
||||||
|
brne scroll_screen_copy_loop
|
||||||
|
; All the lines have been "shifted" up by one line.
|
||||||
|
; The first line is lost and the last is duplicate. Clear the last.
|
||||||
|
clr A
|
||||||
|
scroll_screen_clear_loop:
|
||||||
|
st Z+, A
|
||||||
|
cpi r31, high(FRAMEBUFFER_END)
|
||||||
|
brne scroll_screen_clear_loop
|
||||||
|
cpi r30, low(FRAMEBUFFER_END)
|
||||||
|
brne scroll_screen_clear_loop
|
||||||
|
; Last line cleared. Set cursor position
|
||||||
|
clr POS_COLUMN ; cursor to first column
|
||||||
|
ldi POS_ROWP, SCREEN_HEIGHT-FONT_HEIGHT
|
||||||
|
ret
|
||||||
|
|
||||||
|
; Sets the Y register to point to the cursor's first line memory position
|
||||||
|
; The cursor's position is represented by registers POS_COLUMN and POS_ROWP
|
||||||
|
update_mem_pointer:
|
||||||
|
; Compute memory pointer offset: offset = (LINE_COLUMNS*POS_ROWP)+POS_COLUMN
|
||||||
|
; LINE_COLUMNS*POS_ROWP
|
||||||
|
ldi HIGH_ACCUM, LINE_COLUMNS
|
||||||
|
mul HIGH_ACCUM, POS_ROWP ; result overwrites r0 and r1!
|
||||||
|
; ...+POS_COLUMN
|
||||||
|
add r0, POS_COLUMN
|
||||||
|
clr HIGH_ACCUM
|
||||||
|
adc r1, HIGH_ACCUM
|
||||||
|
; Set pointer to start of framebuffer
|
||||||
|
ldi YL, low(FRAMEBUFFER)
|
||||||
|
ldi YH, high(FRAMEBUFFER)
|
||||||
|
; Add offset to pointer
|
||||||
|
add YL, r0
|
||||||
|
adc YH, r1
|
||||||
|
ret
|
||||||
|
|
||||||
|
clear_screen:
|
||||||
|
ldi YH, high(FRAMEBUFFER)
|
||||||
|
ldi YL, low(FRAMEBUFFER)
|
||||||
|
load_mem_loop:
|
||||||
|
clr HIGH_ACCUM
|
||||||
|
;ser HIGH_ACCUM
|
||||||
|
st Y+, HIGH_ACCUM
|
||||||
|
; if reached the last framebuffer byte, exit cycle
|
||||||
|
cpi YH, high(FRAMEBUFFER_END)
|
||||||
|
brne load_mem_loop ; if not 0, repeat h_picture_loop
|
||||||
|
cpi YL, low(FRAMEBUFFER_END)
|
||||||
|
brne load_mem_loop ; if not 0, repeat h_picture_loop
|
||||||
|
ret
|
@ -0,0 +1,53 @@
|
|||||||
|
; *******************************************
|
||||||
|
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
||||||
|
; * Communication module *
|
||||||
|
; *******************************************
|
||||||
|
;
|
||||||
|
; @language: AVR ASM
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 IO Devices.
|
||||||
|
;
|
||||||
|
; Pat80 IO Devices is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 IO Devices is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 IO Devices. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; This module manages the communication between Pat80 and
|
||||||
|
; the video adapter.
|
||||||
|
|
||||||
|
; INTERNAL POINTER:
|
||||||
|
; Internally, the last screen position is represented by 24 bits in two registers:
|
||||||
|
; POS_COARSE: Register Y (16-bit, r31 and r30): Coarse position. Points to one of the chunks
|
||||||
|
; (character columns). 46 chunks per row, 304 rows. Used for character position, as
|
||||||
|
; 1 chunk = 1 byte = 1 character.
|
||||||
|
|
||||||
|
; Initializes and waits for a byte on PORTB
|
||||||
|
comm_init:
|
||||||
|
call cursor_pos_home ; Set cursor to 0,0
|
||||||
|
comm_wait_byte:
|
||||||
|
in HIGH_ACCUM, DATA_PORT_IN ; read PORTB
|
||||||
|
; Check continuously CLK until a LOW is found
|
||||||
|
sbic PORTD, CLK_PIN
|
||||||
|
jmp comm_wait_byte
|
||||||
|
; CLK triggered: Draw char
|
||||||
|
call draw_char
|
||||||
|
jmp comm_wait_byte
|
||||||
|
|
||||||
|
; ; CLK triggered: Copy PORTB to the next framebuffer byte
|
||||||
|
; st Y+, A
|
||||||
|
; ; if reached the last framebuffer byte, exit cycle
|
||||||
|
; cpi r31, 0b00111110
|
||||||
|
; brne comm_wait_byte ; if not 0, repeat h_picture_loop
|
||||||
|
; cpi r30, 0b11000000
|
||||||
|
; brne comm_wait_byte ; if not 0, repeat h_picture_loop
|
||||||
|
; jmp comm_init ; filled all memory: reset framebuffer position
|
||||||
|
|
@ -0,0 +1,974 @@
|
|||||||
|
; Draws a cat example image
|
||||||
|
draw_cat:
|
||||||
|
;*** Load data into ram ***
|
||||||
|
ldi YH, high(FRAMEBUFFER)
|
||||||
|
ldi YL, low(FRAMEBUFFER)
|
||||||
|
ldi ZH, high(CAT_IMAGE)
|
||||||
|
ldi ZL, low(CAT_IMAGE)
|
||||||
|
load_cat_loop:
|
||||||
|
lpm HIGH_ACCUM, Z+
|
||||||
|
st Y+, HIGH_ACCUM
|
||||||
|
; wait
|
||||||
|
; ser r19
|
||||||
|
; cat_wait_loop_1:
|
||||||
|
; dec r19
|
||||||
|
; brne cat_wait_loop_1
|
||||||
|
; if reached the last framebuffer byte, exit cycle
|
||||||
|
cpi YH, high(FRAMEBUFFER_END)
|
||||||
|
brne load_cat_loop ; if not 0, repeat h_picture_loop
|
||||||
|
cpi YL, low(FRAMEBUFFER_END)
|
||||||
|
brne load_cat_loop ; if not 0, repeat h_picture_loop
|
||||||
|
ret
|
||||||
|
|
||||||
|
; Image of the mighty Pepa during a rest
|
||||||
|
CAT_IMAGE: .db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x23, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x02, 0x00, 0x22, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x20, 0x22, 0x02, 0x82, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x54, 0x55, 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x11, 0x11, 0x51, 0x11, 0x51, 0x51, 0x51, 0x15, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x20, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x22, 0x20, 0x82,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x40, 0x44, 0x44, 0x55, 0x55, 0x54, 0xc5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x15, 0x11, 0x11, 0x11,
|
||||||
|
.db 0x11, 0x51, 0x55, 0x51, 0x55, 0xd5, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x22, 0x00, 0x22, 0xa2, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x55, 0x55,
|
||||||
|
.db 0x45, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x55, 0x11, 0x11, 0x11,
|
||||||
|
.db 0x11, 0x51, 0x11, 0x51, 0x11, 0x51, 0x55, 0x55, 0x55, 0xd5, 0x21, 0x22,
|
||||||
|
.db 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22,
|
||||||
|
.db 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22,
|
||||||
|
.db 0x20, 0x22, 0x20, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x82, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x45, 0x44, 0x44, 0x44, 0x44, 0x40, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x54, 0x55, 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x55, 0x15, 0x11, 0x11,
|
||||||
|
.db 0x11, 0x11, 0x15, 0x55, 0x15, 0x15, 0x15, 0x15, 0x15, 0x11, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xa2,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x54, 0x55, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x11, 0x11,
|
||||||
|
.db 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x51, 0x51, 0x55, 0x55, 0x55, 0x51,
|
||||||
|
.db 0x55, 0x15, 0x11, 0x11, 0x11, 0xd5, 0x23, 0x20, 0x22, 0x22, 0x22, 0x20,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x20, 0x22, 0x22, 0x22, 0x20, 0x22, 0x22, 0x22, 0x20,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x20, 0x02, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x54, 0x55, 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x15,
|
||||||
|
.db 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x23, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x22, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x44, 0x55, 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x45, 0x44, 0x45, 0x55, 0xc5,
|
||||||
|
.db 0x55, 0x55, 0x45, 0x55, 0x45, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x51,
|
||||||
|
.db 0x51, 0x51, 0x11, 0x51, 0x11, 0x11, 0x11, 0x51, 0x11, 0x11, 0x51, 0x55,
|
||||||
|
.db 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x21, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22,
|
||||||
|
.db 0x20, 0x22, 0x20, 0x02, 0x00, 0x20, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x20, 0xa2, 0x20, 0x00, 0x20, 0x00, 0x20, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x44, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54,
|
||||||
|
.db 0x55, 0x54, 0x55, 0x7d, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88,
|
||||||
|
.db 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x15,
|
||||||
|
.db 0x55, 0x55, 0x15, 0x15, 0x55, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x55,
|
||||||
|
.db 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5f,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x02, 0x00, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x02, 0xa2, 0x2a, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x02, 0x22, 0xa2, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x44, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x45, 0x44, 0x45, 0x45,
|
||||||
|
.db 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x5f, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88,
|
||||||
|
.db 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x80, 0x08, 0x88, 0x8a, 0x88, 0x08, 0x88, 0x88, 0x08, 0x88,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x51, 0x51,
|
||||||
|
.db 0x55, 0x51, 0x51, 0x51, 0x55, 0x55, 0x51, 0x55, 0x55, 0x51, 0x51, 0x51,
|
||||||
|
.db 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0xf5, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x23, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0xa2,
|
||||||
|
.db 0xba, 0x23, 0x22, 0xa2, 0x22, 0x22, 0xaa, 0xa2, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x45, 0x44, 0x54, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x44, 0x54, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xfd, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xee, 0x8a, 0x88, 0x80,
|
||||||
|
.db 0x80, 0x88, 0x88, 0x80, 0x55, 0x55, 0x15, 0x55, 0x55, 0x15, 0x15, 0x55,
|
||||||
|
.db 0x15, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x15, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x7f, 0x57, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x22, 0xa2, 0xbb, 0x02, 0x22, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x45, 0x44, 0x44, 0x45,
|
||||||
|
.db 0x55, 0x55, 0x44, 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x54, 0x44, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x7f, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x80, 0xaa, 0x00, 0x00, 0x00, 0x88, 0x88, 0x08, 0x88, 0xaa,
|
||||||
|
.db 0xae, 0x80, 0x88, 0x8a, 0x88, 0x88, 0x88, 0x88, 0x55, 0x55, 0x55, 0x51,
|
||||||
|
.db 0x51, 0x51, 0x51, 0x51, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x11, 0x11, 0x11, 0x11, 0x51, 0x51, 0x51, 0x51, 0x11, 0x55, 0x55, 0x55,
|
||||||
|
.db 0xf5, 0xf7, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xff, 0x7f, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xaa,
|
||||||
|
.db 0x02, 0x00, 0x00, 0x20, 0x22, 0x22, 0x22, 0xba, 0xab, 0xa2, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xa2, 0xaa, 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x54, 0x44, 0x54, 0x55, 0x54, 0x44, 0x40, 0x54, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x44, 0x40, 0x44, 0x55, 0x54, 0x75, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0xff, 0x5f, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa8, 0x2a, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x80, 0x88, 0xa8, 0xaa, 0xaa, 0x80, 0xa8, 0xaa, 0xa8, 0xa8, 0xa8, 0xa8,
|
||||||
|
.db 0x55, 0x15, 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01,
|
||||||
|
.db 0x51, 0x55, 0x55, 0x55, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0x7f, 0x57, 0x55, 0x55, 0x75, 0x55, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0xf5, 0xff, 0x77, 0x55, 0x55, 0x55, 0x77, 0x57, 0x57, 0xd7, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xab,
|
||||||
|
.db 0xaa, 0x02, 0x28, 0xaa, 0xaa, 0x22, 0x22, 0x22, 0x2a, 0xaa, 0xba, 0xab,
|
||||||
|
.db 0x2b, 0xa0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x45, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x45, 0x45, 0x44, 0x00, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f,
|
||||||
|
.db 0x5d, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xff, 0xff, 0x55, 0x54,
|
||||||
|
.db 0x55, 0x55, 0xdd, 0x5d, 0x5d, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xee, 0xee, 0xee, 0xae, 0x0e, 0xa8,
|
||||||
|
.db 0xaa, 0x0a, 0x88, 0x08, 0x88, 0xaa, 0xae, 0xea, 0x02, 0x80, 0x8a, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x51, 0x51, 0x51, 0x51, 0x55, 0x51, 0x11, 0x10,
|
||||||
|
.db 0x11, 0x51, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0xf7,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xf5, 0x77, 0x75,
|
||||||
|
.db 0x55, 0x55, 0x55, 0xff, 0xff, 0xff, 0x57, 0x51, 0x55, 0x55, 0x55, 0x75,
|
||||||
|
.db 0x77, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x20, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xba, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0x2a, 0xa8, 0xaa, 0xaa, 0xbb, 0xa2,
|
||||||
|
.db 0xaa, 0xba, 0xbb, 0xba, 0x22, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x45, 0x44, 0x44, 0x44, 0x44, 0x00, 0x40, 0x40, 0x40, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xdd, 0xdd, 0xfd, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0x5f, 0xd5, 0x5d, 0x55, 0xfd, 0x57, 0xf5, 0xff,
|
||||||
|
.db 0xff, 0x5f, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x80, 0xa8, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea,
|
||||||
|
.db 0xea, 0xea, 0x0a, 0xa8, 0xaa, 0xaa, 0xaa, 0xae, 0xea, 0xaa, 0x8a, 0xaa,
|
||||||
|
.db 0x00, 0xa8, 0xaa, 0xaa, 0xaa, 0xa8, 0xaa, 0xaa, 0x15, 0x55, 0x15, 0x15,
|
||||||
|
.db 0x11, 0x11, 0x15, 0x55, 0x55, 0x55, 0x15, 0x15, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0x5f, 0x55, 0x7f, 0xd7, 0x7f, 0xff, 0xff, 0x5f, 0x51, 0x55, 0x55, 0x75,
|
||||||
|
.db 0x77, 0x57, 0x55, 0x55, 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x22, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x3b, 0xa2,
|
||||||
|
.db 0xaa, 0xaa, 0xba, 0xaa, 0xba, 0x02, 0x20, 0x02, 0x00, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x45, 0x44, 0x04, 0x44, 0x44, 0x44, 0x55, 0x55,
|
||||||
|
.db 0x45, 0x45, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x5d, 0xdd,
|
||||||
|
.db 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xd5, 0xdd, 0x55,
|
||||||
|
.db 0xfd, 0x55, 0xfd, 0x45, 0x54, 0x55, 0x54, 0x55, 0x5d, 0x5d, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xae, 0xee, 0xee, 0xee, 0x2e, 0xa8, 0xaa, 0xaa, 0xaa, 0x00,
|
||||||
|
.db 0xa0, 0x02, 0x00, 0x00, 0x00, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x51, 0x11, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x51,
|
||||||
|
.db 0x51, 0x51, 0x55, 0x55, 0x55, 0x75, 0x77, 0xf7, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf5, 0x7f, 0x77, 0xff, 0x57, 0x55, 0x17,
|
||||||
|
.db 0x55, 0x55, 0x15, 0x55, 0x77, 0x77, 0x77, 0x77, 0x77, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x20, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0x3b, 0xa2, 0xaa, 0xaa, 0xaa, 0x0b, 0x20, 0x20, 0x20, 0x22,
|
||||||
|
.db 0x00, 0xa0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x05, 0x44, 0x44, 0x54,
|
||||||
|
.db 0x54, 0x55, 0x54, 0x54, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x55,
|
||||||
|
.db 0x55, 0x55, 0xd5, 0xdd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0x7f, 0x55, 0xd5, 0x5d, 0xfd, 0x5f, 0x55, 0x55, 0x54, 0x55, 0x55, 0xd4,
|
||||||
|
.db 0xdd, 0x5d, 0x55, 0xd5, 0xdd, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xea, 0xea, 0xea, 0xaa, 0x80,
|
||||||
|
.db 0xa8, 0xaa, 0xaa, 0x0a, 0x00, 0x80, 0x00, 0x00, 0x00, 0xa0, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x15, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x77, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x55, 0xf5, 0x7f,
|
||||||
|
.db 0x7f, 0x57, 0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x7f, 0x7f, 0x77,
|
||||||
|
.db 0x57, 0xf7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xfb, 0xa2, 0xaa, 0xaa, 0xaa, 0x02,
|
||||||
|
.db 0x22, 0x02, 0x0a, 0x20, 0x02, 0x82, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x5d, 0xdd, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0xdd, 0xfd, 0xdd, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x5d, 0x55, 0x55, 0x45, 0x55, 0x55, 0xdd, 0x5d, 0x5d, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x88, 0x88, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0x88, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x02,
|
||||||
|
.db 0x00, 0x00, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x51, 0x51, 0x51, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x77, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x55, 0xff, 0xff, 0x57, 0x55, 0x55, 0x55, 0xfd, 0x57, 0x55, 0x11,
|
||||||
|
.db 0x75, 0x77, 0x57, 0xf7, 0x77, 0xf7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xa2, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa3,
|
||||||
|
.db 0xaa, 0xaa, 0x2a, 0x20, 0x22, 0x00, 0xb8, 0x03, 0x00, 0x00, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54,
|
||||||
|
.db 0x55, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x55, 0x55, 0x55, 0xd5, 0xdd,
|
||||||
|
.db 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x5f, 0xfd,
|
||||||
|
.db 0x57, 0x54, 0x55, 0x55, 0xf4, 0x4f, 0x44, 0x55, 0x54, 0x5d, 0x55, 0x55,
|
||||||
|
.db 0xdd, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xea, 0xea, 0xee, 0xea, 0xee, 0xaa, 0x8a, 0xaa, 0x0a, 0x00,
|
||||||
|
.db 0x00, 0x00, 0xe8, 0xaa, 0x00, 0x00, 0xa0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x15,
|
||||||
|
.db 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0xf7, 0xff, 0x57, 0x55, 0x55, 0x55,
|
||||||
|
.db 0xfd, 0xff, 0x55, 0x55, 0x55, 0x7f, 0x77, 0x77, 0x57, 0xff, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x22, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xab, 0xaa, 0xbb, 0x2a, 0x22, 0x02, 0x02, 0xba, 0xab,
|
||||||
|
.db 0x00, 0x22, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x45, 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xd7, 0xf5, 0xff, 0x55, 0x55, 0x55, 0x55, 0xfd, 0xff, 0x05, 0x55,
|
||||||
|
.db 0x45, 0xdd, 0x5d, 0x55, 0x55, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xae, 0xee, 0xee, 0xee, 0xee, 0xaa,
|
||||||
|
.db 0xaa, 0xae, 0x0a, 0x00, 0x00, 0x00, 0xe8, 0xee, 0x02, 0x00, 0x00, 0xa8,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x51, 0x51, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x75, 0xf7,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf5, 0xff,
|
||||||
|
.db 0x57, 0x55, 0x55, 0x55, 0xfd, 0xff, 0x57, 0x55, 0x55, 0xf5, 0x77, 0x77,
|
||||||
|
.db 0x77, 0xf7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xba,
|
||||||
|
.db 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xaa, 0xbb, 0x2b, 0x20,
|
||||||
|
.db 0x20, 0x22, 0xb8, 0xbb, 0x03, 0x20, 0x00, 0xa0, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x55, 0x55, 0x54, 0x54, 0x54, 0x55, 0x54, 0x54, 0x54, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x54, 0x55, 0x55, 0x55, 0xd5, 0xdd, 0xdd, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0xff, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0xfd, 0xff, 0x47, 0x44, 0x55, 0x54, 0xdd, 0x5d, 0x55, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x80, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xea,
|
||||||
|
.db 0xea, 0xee, 0xea, 0xaa, 0xaa, 0xea, 0x0a, 0x00, 0x00, 0x00, 0xe8, 0xea,
|
||||||
|
.db 0x0a, 0x00, 0x00, 0x08, 0xa8, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x15, 0x11, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x77, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0x57, 0x55, 0x55, 0x55, 0xfd, 0xff, 0x17, 0x51,
|
||||||
|
.db 0x55, 0x5f, 0x75, 0x7f, 0x77, 0xf7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x22, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0x0b, 0x22, 0x22, 0x22, 0xb8, 0xbb, 0x2b, 0x02, 0x02, 0xaa,
|
||||||
|
.db 0xa2, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x45, 0x45, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0xdd,
|
||||||
|
.db 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0x4f, 0x55, 0x55, 0x55, 0xfd, 0xff, 0x5f, 0x45, 0x55, 0x5c, 0x45, 0xd5,
|
||||||
|
.db 0x5d, 0xdd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xae, 0xae, 0xee, 0xee, 0xee, 0xaa, 0xaa, 0xaa, 0x0a, 0x00,
|
||||||
|
.db 0x00, 0x00, 0xe8, 0xee, 0x8e, 0x02, 0x00, 0xae, 0x0a, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x11, 0x11, 0x51, 0x55, 0x55, 0x55, 0x75, 0xf7, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x55, 0x55, 0x55,
|
||||||
|
.db 0xf1, 0xff, 0xd7, 0x55, 0x15, 0xff, 0x57, 0x75, 0xf5, 0xf7, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x20, 0xa2, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xba, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xab, 0xaa, 0xba, 0x23, 0x20, 0x22, 0x22, 0xb8, 0xbb,
|
||||||
|
.db 0xaa, 0x00, 0x20, 0xaa, 0x2a, 0xa0, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x54,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x54, 0x54, 0x54, 0x54, 0x44, 0x44, 0x44, 0x44, 0x54,
|
||||||
|
.db 0x55, 0x55, 0xd5, 0xd5, 0xdd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0x47, 0x55, 0x55, 0x55, 0xfd, 0xff, 0xdd, 0x45,
|
||||||
|
.db 0x54, 0xfd, 0x5d, 0x55, 0x55, 0xdd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xea, 0xea, 0xee, 0xee, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x0a, 0x00, 0x00, 0x00, 0xa8, 0xaa, 0xaa, 0x80, 0x2a, 0xaa,
|
||||||
|
.db 0xaa, 0x80, 0xaa, 0xa8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x15, 0x15, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0x1f, 0x55, 0x55, 0x55, 0xfd, 0x7f, 0x7d, 0xfd, 0x7f, 0xff, 0x7f, 0x15,
|
||||||
|
.db 0x57, 0xf5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xaa, 0xab, 0xbb, 0x00,
|
||||||
|
.db 0x22, 0x22, 0xba, 0xbb, 0xaa, 0xff, 0xab, 0xba, 0xab, 0x02, 0xaa, 0xaa,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x45, 0x55, 0x45, 0x45, 0x45, 0x45,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0xdd, 0xdd, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x54, 0x55,
|
||||||
|
.db 0xff, 0x7f, 0xc5, 0xff, 0x5f, 0xfd, 0xdf, 0x55, 0x54, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x88, 0x88, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x02, 0x80, 0xaa, 0xae,
|
||||||
|
.db 0xe2, 0xee, 0xae, 0xaa, 0xaa, 0x0a, 0xa8, 0xaa, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x11, 0x51, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x75, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xd5, 0xff, 0x7f, 0xf5, 0xff,
|
||||||
|
.db 0x7f, 0xff, 0xff, 0x57, 0x51, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xba, 0xba, 0xba, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xba, 0xbb, 0xbb, 0xa2, 0xaa, 0xba, 0xaa, 0xfb, 0x3b, 0xba,
|
||||||
|
.db 0xaa, 0x2a, 0xa0, 0xaa, 0x55, 0x55, 0x54, 0x55, 0x54, 0x54, 0x54, 0x54,
|
||||||
|
.db 0x54, 0x54, 0x54, 0x44, 0x44, 0x44, 0x44, 0x44, 0x54, 0x55, 0xdd, 0xfd,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xf5, 0xff, 0x5f, 0xfd, 0xff, 0x5d,
|
||||||
|
.db 0x45, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0xaa, 0xea, 0xee, 0xea,
|
||||||
|
.db 0xea, 0xea, 0xea, 0xee, 0xea, 0xee, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xea, 0x2a, 0xaa, 0xaa, 0xaa, 0xea, 0x2a, 0xa8, 0xaa, 0xaa, 0x00, 0xa8,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x15, 0x15, 0x55, 0x55, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
|
||||||
|
.db 0xff, 0x7f, 0xf7, 0xff, 0x7f, 0xfd, 0xff, 0x7f, 0x15, 0xd5, 0x03, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0xa2, 0xaa, 0xbb, 0xbb, 0xfb, 0xff, 0xff, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbf, 0xab, 0xaa, 0xaa, 0xab, 0xab, 0xbb, 0xab, 0xab, 0xbb,
|
||||||
|
.db 0xaa, 0xbb, 0x2b, 0xba, 0xbb, 0xaa, 0x02, 0xaa, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x45, 0x45, 0x44, 0x44, 0x54,
|
||||||
|
.db 0x55, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xfd, 0xff,
|
||||||
|
.db 0x5f, 0xfc, 0xff, 0x5f, 0x55, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xee,
|
||||||
|
.db 0xae, 0xaa, 0xae, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xae, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xae, 0xea, 0xea, 0xae, 0x0a, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x0a, 0x88, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x55, 0xf5, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0x57, 0xff, 0xff, 0x7f,
|
||||||
|
.db 0x55, 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xba, 0xbb, 0xbb, 0xba, 0xbb, 0xba,
|
||||||
|
.db 0xbb, 0xfb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xba,
|
||||||
|
.db 0xba, 0xbb, 0xba, 0xba, 0xaa, 0xbb, 0x02, 0xba, 0xaa, 0xaa, 0x22, 0xa0,
|
||||||
|
.db 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
|
||||||
|
.db 0x44, 0x44, 0x44, 0xd4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xd5, 0xff, 0x45, 0xfd, 0xff, 0xdd, 0x55, 0xc0, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0xe8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xee, 0xee, 0xfe, 0xae,
|
||||||
|
.db 0xaa, 0xea, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xea,
|
||||||
|
.db 0xaa, 0xaa, 0x00, 0xaa, 0xaa, 0xaa, 0x0a, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x51, 0xfd,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x7f,
|
||||||
|
.db 0x55, 0xff, 0xff, 0x7f, 0x57, 0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xba, 0xbb, 0xbb,
|
||||||
|
.db 0xab, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xab, 0xba, 0xbf, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xab, 0xbb, 0xab, 0x2a, 0x02, 0xba,
|
||||||
|
.db 0xaa, 0xaa, 0x2a, 0x80, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x45, 0x04, 0xd4, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x5d, 0x55, 0xff, 0xdf, 0xdd,
|
||||||
|
.db 0x55, 0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0xa8, 0xee, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xea,
|
||||||
|
.db 0xaa, 0xee, 0xee, 0xee, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xae, 0xaa, 0x2a, 0x00, 0xaa, 0xaa, 0xaa, 0x0a, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x7f, 0xf5, 0x77, 0x51, 0xff, 0xff, 0x77, 0x55, 0x95, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa,
|
||||||
|
.db 0xba, 0xbb, 0xbb, 0xbb, 0xba, 0xaa, 0xaa, 0xba, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xab, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xba, 0xaa, 0xaa,
|
||||||
|
.db 0xa2, 0x2a, 0x00, 0xba, 0xaa, 0xaa, 0x2a, 0x80, 0x55, 0x55, 0x54, 0x54,
|
||||||
|
.db 0x54, 0x54, 0x54, 0x55, 0x54, 0x55, 0x54, 0x54, 0xc0, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0xf5, 0x5d,
|
||||||
|
.db 0x54, 0xfd, 0xdd, 0x55, 0x55, 0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xaa, 0xea, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xea, 0xee, 0xaa, 0xea, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa2, 0xa0, 0x0a, 0x80, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x0a, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x15, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0xf5, 0x17, 0x55, 0xff, 0x7f, 0x57,
|
||||||
|
.db 0x57, 0x95, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x20, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xab,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xaa, 0xaa, 0xaa, 0xab, 0xbb, 0xbb,
|
||||||
|
.db 0xab, 0xbb, 0xab, 0x2b, 0xa8, 0x02, 0x80, 0xaa, 0xaa, 0xaa, 0x2a, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x54,
|
||||||
|
.db 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x5f, 0xfd, 0x45, 0x55, 0xff, 0xdf, 0x55, 0x55, 0x85, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xaa, 0xaa,
|
||||||
|
.db 0xee, 0xae, 0xae, 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xae, 0xee, 0xae, 0xee,
|
||||||
|
.db 0xee, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xaa, 0xaa, 0xaa, 0x0e,
|
||||||
|
.db 0xae, 0x02, 0x80, 0xaa, 0xaa, 0xaa, 0x0a, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x75, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0x51,
|
||||||
|
.db 0x55, 0xff, 0x7f, 0x77, 0x55, 0x95, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0xa0, 0xaa, 0xaa, 0xba, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xba, 0xbb, 0xaa, 0xba, 0xbb, 0x8b, 0xbb, 0x00, 0x80, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x22, 0x80, 0x55, 0x54, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x44, 0x54, 0xd5, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x7f, 0x41, 0xc5, 0xff, 0xdf, 0x55,
|
||||||
|
.db 0x55, 0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x88, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xea, 0x8a, 0xaa, 0x00, 0x80, 0xaa, 0xaa, 0xaa, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x17, 0x7f, 0x51, 0xd5, 0xff, 0x7f, 0x55, 0x55, 0x95, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xab, 0xaa, 0xab, 0xaa, 0xaa, 0xab, 0xbb, 0xbb, 0xbb, 0xbf, 0x02,
|
||||||
|
.db 0x2a, 0x00, 0xa0, 0xab, 0xaa, 0xaa, 0x02, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x55, 0xdd, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x45, 0x55, 0x40,
|
||||||
|
.db 0xd5, 0xff, 0x5f, 0x55, 0x55, 0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0xa8, 0xaa, 0xaa, 0xaa, 0xae, 0xae, 0xae, 0xae,
|
||||||
|
.db 0xaa, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xae, 0xae, 0xea, 0xae, 0x80, 0x0a, 0x00, 0xa0, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x11, 0x51, 0x55, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf5, 0x57, 0x51, 0xf1, 0xff, 0x77, 0x55,
|
||||||
|
.db 0x55, 0x91, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xaa, 0xba, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xaa, 0xaa, 0x2a, 0x00, 0xa0, 0xba, 0xaa, 0x2a, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x40, 0x54, 0x55, 0xdd,
|
||||||
|
.db 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xfd, 0xff, 0x55, 0x55, 0xf4, 0xff, 0x5d, 0x55, 0x55, 0xc0, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0xaa, 0xaa, 0xea,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xea, 0xee, 0xea,
|
||||||
|
.db 0x8a, 0x00, 0xa8, 0xaa, 0xaa, 0x0a, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x15, 0x11, 0x55, 0x75, 0xf7, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0x51,
|
||||||
|
.db 0xfd, 0xff, 0x77, 0x57, 0x55, 0xd1, 0x01, 0x00, 0x02, 0x00, 0x02, 0x02,
|
||||||
|
.db 0x02, 0x00, 0x00, 0x20, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xba, 0xab, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xab, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xbf, 0x2a, 0x00, 0xaa, 0xab,
|
||||||
|
.db 0xaa, 0x22, 0x02, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x44,
|
||||||
|
.db 0x44, 0x55, 0x55, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x55, 0x45, 0xfd, 0xff, 0x5d, 0x55,
|
||||||
|
.db 0x45, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xa8, 0xaa, 0xaa, 0xaa, 0xae, 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xae, 0xae,
|
||||||
|
.db 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xae, 0x0a, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x51, 0x55, 0x75, 0xf7,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x7f, 0x57, 0x51, 0xff, 0xff, 0x57, 0x55, 0x15, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0xaa, 0xaa, 0xaa, 0xba,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xba,
|
||||||
|
.db 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xbb, 0xbb, 0xab, 0xfa, 0xaa,
|
||||||
|
.db 0xaa, 0x80, 0xba, 0xaa, 0x2a, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x45, 0x44, 0x44, 0x54, 0x55, 0xdd, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x5f, 0xc1,
|
||||||
|
.db 0xff, 0xff, 0x55, 0x55, 0x44, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xa8, 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xea, 0xea, 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xea, 0xee, 0xee, 0xee, 0xee, 0xae, 0x80, 0xaa, 0xaa,
|
||||||
|
.db 0x0a, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x15,
|
||||||
|
.db 0x11, 0x55, 0x55, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xd5, 0xff, 0xff, 0x55, 0x55,
|
||||||
|
.db 0x11, 0xd5, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x20,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xab, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xaa, 0xab, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xbb,
|
||||||
|
.db 0xbb, 0xbf, 0xff, 0xff, 0xbf, 0xa2, 0xbb, 0xab, 0x22, 0x00, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x44, 0x54, 0x55, 0xdd,
|
||||||
|
.db 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xd5, 0xff, 0x5f, 0x55, 0x45, 0x44, 0xd5, 0x01, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xae, 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xae, 0xae, 0xae, 0xae, 0xaa,
|
||||||
|
.db 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xee, 0xee, 0xee, 0xee, 0xee,
|
||||||
|
.db 0xaf, 0xa0, 0xaa, 0x0a, 0x00, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x15, 0x11, 0x11, 0x11, 0x55, 0x55, 0x75, 0xf7, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
|
||||||
|
.db 0xff, 0x57, 0x55, 0x11, 0x51, 0xd5, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0xa2, 0xaa, 0xaa, 0xba, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xba, 0xba, 0xbb, 0xbb, 0xbb, 0xaa, 0xba, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xba, 0xbb, 0xfb, 0xbb, 0xfb, 0xff, 0xbf, 0xa2, 0xbb, 0x22,
|
||||||
|
.db 0x02, 0x00, 0x00, 0x80, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x40, 0x44,
|
||||||
|
.db 0x40, 0x54, 0x55, 0xd5, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xff, 0xff, 0xfd, 0xfd, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x7f, 0x55, 0x55, 0x44,
|
||||||
|
.db 0x44, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x80, 0xa8, 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea,
|
||||||
|
.db 0xee, 0xae, 0xea, 0xee, 0xfe, 0xa0, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x15, 0x11, 0x15, 0x11, 0x11, 0x51, 0x55, 0x75,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xf5, 0x57, 0x55, 0x15, 0x11, 0x55, 0xd5, 0x01, 0x02,
|
||||||
|
.db 0x22, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab,
|
||||||
|
.db 0xba, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xff, 0xbf, 0xfb, 0xff,
|
||||||
|
.db 0xbf, 0xaa, 0x22, 0x02, 0x00, 0x00, 0x00, 0x80, 0x45, 0x54, 0x55, 0x55,
|
||||||
|
.db 0x45, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0xdd, 0xfd, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x45, 0x44, 0x54, 0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0xaa, 0xaa, 0xaa, 0xae, 0xae, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xae, 0xaa, 0xaa, 0xaa, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xea, 0xee, 0xee, 0xea, 0xef, 0xbe, 0x08, 0x08, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0x55, 0x51, 0x55, 0x55, 0x15, 0x11, 0x51, 0x11,
|
||||||
|
.db 0x11, 0x11, 0x55, 0x55, 0x75, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x55, 0x55, 0x55, 0x11, 0x51,
|
||||||
|
.db 0x55, 0x95, 0x2b, 0x00, 0x20, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0xa2, 0xaa, 0xaa, 0xba, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xbb, 0xba,
|
||||||
|
.db 0xbb, 0xbb, 0xba, 0xab, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xbb,
|
||||||
|
.db 0xfb, 0xfb, 0xbb, 0xbf, 0xbf, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0x55, 0x55, 0x40, 0x55, 0x45, 0x44, 0x44, 0x40, 0x44, 0x44, 0x54, 0x55,
|
||||||
|
.db 0xd5, 0xdd, 0xfd, 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x57, 0xfd, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0x5f, 0x55, 0x55, 0x44, 0x44, 0x44, 0x54, 0xc4, 0xab, 0x0a,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xea, 0xea, 0xaa, 0xaa, 0x8a,
|
||||||
|
.db 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xee, 0xee, 0xea, 0xee,
|
||||||
|
.db 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x57, 0x55, 0x51,
|
||||||
|
.db 0x15, 0x11, 0x15, 0x11, 0x11, 0x11, 0x55, 0x55, 0x55, 0xf7, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x15, 0x11, 0x55, 0x55, 0x95, 0xab, 0xaa, 0x2a, 0x02, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xab,
|
||||||
|
.db 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xba, 0xab, 0xab, 0xaa,
|
||||||
|
.db 0xaa, 0xab, 0xab, 0xbb, 0xff, 0xbb, 0xba, 0x2b, 0x22, 0x22, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xdf, 0xdd, 0x55, 0x55, 0x04, 0x44, 0x04, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x55, 0x55, 0xd5, 0xdd, 0xff, 0xff, 0xff, 0xdd, 0xfd,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xdf, 0xdf, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x55, 0xc5, 0xab, 0xaa, 0xaa, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x88, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xae,
|
||||||
|
.db 0xae, 0xaa, 0xaa, 0x8a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea,
|
||||||
|
.db 0xee, 0xaa, 0x8a, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0x77, 0x77, 0x55, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x55,
|
||||||
|
.db 0x55, 0x75, 0xf7, 0xff, 0xff, 0xff, 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x57, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x11, 0x51, 0x51, 0x55, 0x55, 0xd1, 0xbb, 0xba,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xaa, 0xba, 0x2a,
|
||||||
|
.db 0xaa, 0xbb, 0xaa, 0xaa, 0xaa, 0xba, 0xba, 0xbb, 0xbb, 0xab, 0x22, 0x22,
|
||||||
|
.db 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xdd,
|
||||||
|
.db 0x55, 0x55, 0x05, 0x40, 0x44, 0x44, 0x40, 0x44, 0x54, 0x55, 0xd5, 0xfd,
|
||||||
|
.db 0xfd, 0xff, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xdd, 0xfd, 0x57, 0xfd, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x45,
|
||||||
|
.db 0x40, 0x44, 0x44, 0x54, 0x45, 0xc4, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xaa, 0x8a, 0xe8, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xee, 0x8a, 0x80, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x57, 0x55,
|
||||||
|
.db 0x01, 0x11, 0x11, 0x11, 0x55, 0x55, 0x77, 0xff, 0xff, 0xff, 0x7f, 0x57,
|
||||||
|
.db 0xff, 0xff, 0xff, 0x7f, 0xff, 0x57, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x7f, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x11, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xaa, 0xaa, 0x2a, 0x02, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x20, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xbb,
|
||||||
|
.db 0xbb, 0xaa, 0xba, 0x2a, 0xaa, 0xab, 0xab, 0xab, 0xab, 0xbb, 0xbb, 0x2b,
|
||||||
|
.db 0x2a, 0x2a, 0x2a, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xfd, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdd, 0x55, 0x55, 0x05, 0x00, 0x44,
|
||||||
|
.db 0x44, 0x55, 0x55, 0xdd, 0xdd, 0xdd, 0x5d, 0x55, 0xff, 0xff, 0xff, 0x5d,
|
||||||
|
.db 0xfd, 0x55, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x45, 0x44, 0x44, 0x44, 0x55, 0x55, 0x45, 0xc4, 0xe9, 0xee,
|
||||||
|
.db 0xae, 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0x08, 0x00, 0x00, 0x00, 0x88,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0xaa, 0xae, 0xaa, 0xaa, 0xaa, 0x8a,
|
||||||
|
.db 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x8a, 0x88, 0x88, 0x88, 0x08, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xfd, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0x77, 0x57, 0x55, 0x15, 0x51, 0x55, 0x55, 0x75,
|
||||||
|
.db 0x77, 0x77, 0x77, 0x55, 0xff, 0xff, 0x7f, 0x77, 0xff, 0x57, 0xf5, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11,
|
||||||
|
.db 0x51, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xb9, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0x22, 0x00, 0x20, 0xa2, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xbb, 0xab, 0xaa, 0xaa, 0x22, 0xaa, 0xbb, 0xba, 0xbb,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xdd, 0xdd, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xd5, 0x55, 0x55,
|
||||||
|
.db 0xfd, 0xff, 0x5f, 0x55, 0xdd, 0x55, 0xf5, 0xff, 0xff, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x44, 0x54, 0x54, 0x54,
|
||||||
|
.db 0x44, 0xd4, 0xe9, 0xea, 0xee, 0xea, 0xee, 0xee, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x88, 0x80, 0xa8, 0xaa, 0xaa, 0x8a, 0xea, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0x02, 0xa8, 0xaa, 0xaa, 0xa8, 0xaa, 0xa8, 0xaa, 0xa8,
|
||||||
|
.db 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0x7f, 0x7f, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0xf7, 0xff, 0x77, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x57, 0x57, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x15, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0xd5, 0xb9, 0xbb,
|
||||||
|
.db 0xbb, 0xbf, 0xbb, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xab, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0x2a, 0x22, 0x22, 0xaa, 0xaa, 0x2a, 0x2a, 0x22, 0x2a,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, 0x22, 0x02, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xfd, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdd,
|
||||||
|
.db 0x5d, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x55, 0x55, 0x45, 0x44, 0xc4, 0xe9, 0xee, 0xae, 0xaa, 0xaa, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x8a, 0x88, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x77,
|
||||||
|
.db 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x75,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x51,
|
||||||
|
.db 0x55, 0xd1, 0xb1, 0xbb, 0xaa, 0xaa, 0xaa, 0xba, 0xbb, 0xfb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a,
|
||||||
|
.db 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xf5, 0xff, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xdd, 0xdd,
|
||||||
|
.db 0xdd, 0xdd, 0xdd, 0xdd, 0xd5, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x54, 0x55, 0x54, 0x44, 0x44, 0xc4, 0xe1, 0xae,
|
||||||
|
.db 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xea, 0xee, 0xee, 0xea, 0xee, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf5, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f,
|
||||||
|
.db 0x77, 0x77, 0x57, 0x57, 0x55, 0x55, 0x55, 0x55, 0x15, 0x11, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0xa3, 0xbb, 0xaa, 0xbb, 0xab, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xbb, 0xbf, 0xbb, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xab, 0xab, 0xab, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x2a, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xf5, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xdf, 0xdf,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xdd, 0xdd, 0xdd, 0x5d, 0x5d, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x44, 0x45, 0x55, 0x45, 0x44, 0x44,
|
||||||
|
.db 0x44, 0xc4, 0xe9, 0xee, 0xee, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xee, 0xee, 0xae, 0xae, 0xae, 0xae, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0x88, 0x08,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77, 0x55, 0x55, 0x55, 0x55, 0x51,
|
||||||
|
.db 0x11, 0x51, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0xd5, 0xab, 0xbb,
|
||||||
|
.db 0xfb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xba, 0xfb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xaa, 0xba, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf5, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xdd, 0xdd, 0xd5,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x44, 0x44, 0x54,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0xc4, 0xeb, 0xea, 0xee, 0xee, 0xaa, 0xee,
|
||||||
|
.db 0xaa, 0xaa, 0xea, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x77, 0x77, 0x77, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x11, 0x11, 0x55, 0x55, 0x55, 0x11, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xab,
|
||||||
|
.db 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, 0x22, 0x02,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf,
|
||||||
|
.db 0xdf, 0xdd, 0xdd, 0xdd, 0x5d, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x45, 0x44, 0x44, 0x45, 0x44, 0x45, 0x44, 0xc4, 0xeb, 0xae,
|
||||||
|
.db 0xae, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x77, 0x77,
|
||||||
|
.db 0x77, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x11, 0x51, 0x55, 0x11, 0x51,
|
||||||
|
.db 0x51, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xfb, 0xfb, 0xfb, 0xbb, 0xfb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x2a, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x44, 0x40, 0x44, 0x44, 0x40, 0x44, 0x44, 0x44, 0x54, 0x44, 0x44,
|
||||||
|
.db 0x44, 0xc4, 0xef, 0xee, 0xee, 0xee, 0xea, 0xea, 0xea, 0xee, 0xea, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0x88, 0x08, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
|
||||||
|
.db 0x7f, 0x77, 0x57, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x15, 0x11, 0x55,
|
||||||
|
.db 0x15, 0x11, 0x15, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xbf, 0xbb,
|
||||||
|
.db 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xbf, 0xbf,
|
||||||
|
.db 0xbf, 0xbb, 0xbb, 0xbb, 0xab, 0xab, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xdf, 0xdd, 0x5d, 0x5d, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x04, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x54, 0x55, 0x45, 0x45, 0x45, 0xc4, 0xef, 0xee, 0xee, 0xee, 0xee, 0xae,
|
||||||
|
.db 0xaa, 0xae, 0xae, 0xae, 0xae, 0xae, 0xee, 0xae, 0xae, 0xae, 0xae, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0x8a,
|
||||||
|
.db 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xf7, 0xf7, 0x77, 0x77, 0x77, 0x75, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x15, 0x11, 0x11, 0x51, 0x55, 0x55, 0x51, 0x11, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd1, 0xfb, 0xbb, 0xbb, 0xbb, 0xfb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xba, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x22, 0x02, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xdd, 0xdd,
|
||||||
|
.db 0xdd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x40, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x54, 0x55, 0x44, 0x44, 0x44, 0xc4, 0xef, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0xaa, 0xaa, 0xaa, 0xea, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x77, 0x57, 0x77,
|
||||||
|
.db 0x57, 0x55, 0x55, 0x55, 0x15, 0x51, 0x55, 0x55, 0x55, 0x15, 0x15, 0x15,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbb,
|
||||||
|
.db 0xbb, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xab, 0xab,
|
||||||
|
.db 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, 0x22,
|
||||||
|
.db 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf,
|
||||||
|
.db 0xdf, 0xdf, 0xdd, 0xdd, 0xfd, 0x5d, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45,
|
||||||
|
.db 0x44, 0x45, 0x44, 0x45, 0x44, 0x44, 0x44, 0x44, 0x45, 0x55, 0x45, 0x45,
|
||||||
|
.db 0x45, 0xc5, 0xef, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
|
||||||
|
.db 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0x8a, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77,
|
||||||
|
.db 0x77, 0x77, 0x55, 0x75, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x51, 0x51, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xfb, 0xfb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xfb, 0xfb, 0xbb, 0xbb,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xfd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd5, 0xdd, 0xd5, 0x55, 0x55,
|
||||||
|
.db 0x40, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x55, 0x54, 0x44, 0xc4, 0xef, 0xee, 0xee, 0xee, 0xee, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xea, 0xaa, 0xaa, 0xaa, 0xea, 0xee, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0x77, 0x57, 0x15, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x15, 0x15, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x2a, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xdf, 0x5d, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x04,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x45, 0x44, 0x45, 0x55, 0x55, 0xc5, 0xef, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xae, 0xae, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x8a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x77, 0x57,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||||
|
.db 0x51, 0x11, 0x51, 0x51, 0x55, 0x51, 0x51, 0x51, 0x51, 0x11, 0x11, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xfb, 0xbb, 0xfb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x22,
|
||||||
|
.db 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x44, 0x44, 0x44, 0x40, 0x40, 0x40, 0x40, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x40, 0x54, 0x54, 0x54, 0x54, 0x44,
|
||||||
|
.db 0x55, 0xc4, 0xeb, 0xee, 0xee, 0xee, 0xee, 0xea, 0xee, 0xea, 0xee, 0xea,
|
||||||
|
.db 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0x7f, 0x77, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15,
|
||||||
|
.db 0x15, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x15, 0x15, 0x55, 0x15, 0x15,
|
||||||
|
.db 0x15, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xfb, 0xbf,
|
||||||
|
.db 0xbf, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xab,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, 0x2a, 0x22, 0x02, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf,
|
||||||
|
.db 0xdd, 0x5d, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x04, 0x04,
|
||||||
|
.db 0x04, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55,
|
||||||
|
.db 0x45, 0x45, 0x45, 0x45, 0x44, 0xc5, 0xef, 0xee, 0xee, 0xee, 0xee, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xae, 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0x8a, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||||
|
.db 0x51, 0x51, 0x51, 0x11, 0x11, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0xbb, 0xff, 0xfb, 0xfb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xdd, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x44, 0x44, 0x00, 0x00, 0x40, 0x44, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x40, 0x40, 0x54, 0x54, 0x44, 0x54, 0x44, 0x44, 0x44, 0xd4, 0xeb, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xaa, 0xea, 0xee, 0xea, 0xea, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x88, 0x08, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0x7f, 0x7f, 0x77, 0x77, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15,
|
||||||
|
.db 0x11, 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x11, 0x11, 0x11, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xbb, 0xfb, 0xff, 0xbf, 0xbf, 0xbb,
|
||||||
|
.db 0xbb, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x22, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xdd, 0xdd, 0x5d,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x44, 0x04, 0x04, 0x04, 0x44,
|
||||||
|
.db 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x45, 0x45, 0x45, 0x45, 0x45,
|
||||||
|
.db 0x45, 0xc4, 0xaf, 0xee, 0xee, 0xee, 0xee, 0xae, 0xee, 0xee, 0xae, 0xae,
|
||||||
|
.db 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x8a, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x77, 0x77, 0x77, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x51, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x51, 0x11,
|
||||||
|
.db 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xbb, 0xfb,
|
||||||
|
.db 0xfb, 0xfb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, 0x22, 0x22,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
|
||||||
|
.db 0xdd, 0xdd, 0xdd, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x44,
|
||||||
|
.db 0x44, 0x00, 0x00, 0x40, 0x44, 0x44, 0x44, 0x40, 0x40, 0x50, 0x55, 0x54,
|
||||||
|
.db 0x54, 0x44, 0x54, 0x44, 0x44, 0xc4, 0xaf, 0xae, 0xee, 0xee, 0xee, 0xaa,
|
||||||
|
.db 0xea, 0xea, 0xaa, 0xea, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x77, 0x77,
|
||||||
|
.db 0x57, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x11, 0x11, 0x11,
|
||||||
|
.db 0x11, 0x15, 0x11, 0x11, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0xd5, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xab, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0x2a, 0x22, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xdf, 0xdd, 0xdd, 0x5d, 0x5d, 0x5d, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x45, 0x44, 0x04, 0x04, 0x44, 0x44, 0x44, 0x44, 0x04,
|
||||||
|
.db 0x04, 0x44, 0x55, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0xc4, 0xef, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xae, 0xae, 0xae, 0xea, 0xee, 0xae, 0xae, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0x88, 0x08, 0x08,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xf7, 0x77, 0x77, 0x77, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x91, 0xbb, 0xfb, 0xfb, 0xfb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa2, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xdd, 0xd5, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x44, 0x40, 0x00, 0x00, 0x40,
|
||||||
|
.db 0x40, 0x44, 0x00, 0x40, 0x40, 0x54, 0x54, 0x54, 0x44, 0x44, 0x44, 0x44,
|
||||||
|
.db 0x44, 0xc4, 0xef, 0xee, 0xee, 0xee, 0xee, 0xee, 0xaa, 0xea, 0xea, 0xea,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0x88, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x77, 0x77, 0x77, 0x57, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x15, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||||
|
.db 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x91, 0xff, 0xbf,
|
||||||
|
.db 0xbf, 0xff, 0xbf, 0xbf, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xab,
|
||||||
|
.db 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, 0x22, 0x22,
|
||||||
|
.db 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf,
|
||||||
|
.db 0xdd, 0xdd, 0xdd, 0x5d, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45,
|
||||||
|
.db 0x44, 0x04, 0x04, 0x04, 0x44, 0x44, 0x04, 0x00, 0x54, 0x55, 0x45, 0x55,
|
||||||
|
.db 0x55, 0x45, 0x45, 0x45, 0x44, 0xc4, 0xef, 0xee, 0xee, 0xee, 0xee, 0xee,
|
||||||
|
.db 0xae, 0xee, 0xee, 0xae, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x77, 0x77, 0x77,
|
||||||
|
.db 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x11, 0x11, 0x11, 0x11,
|
||||||
|
.db 0x11, 0x11, 0x11, 0x11, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11,
|
||||||
|
.db 0x11, 0xd1, 0xfb, 0xbb, 0xfb, 0xfb, 0xfb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
||||||
|
.db 0xbb, 0xbb, 0xbb, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xa2, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
.db 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||||
|
.db 0x55, 0x55, 0x55, 0x44, 0x44, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x40,
|
||||||
|
.db 0x55, 0x54, 0x54, 0x54, 0x54, 0x44, 0x44, 0x40, 0x44, 0xd4, 0xef, 0xee,
|
||||||
|
.db 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0xea, 0xea, 0xea, 0xaa, 0xaa, 0xaa,
|
||||||
|
.db 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x88, 0x88, 0x80, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80
|
@ -0,0 +1,131 @@
|
|||||||
|
.equ FONT_HEIGHT = 8
|
||||||
|
|
||||||
|
; Temporary dhepper's font8x8 adaptation (https://github.com/dhepper/font8x8)
|
||||||
|
FONT: .db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0000 (nul)
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0001
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0002
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0003
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0004
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0005
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0006
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0007
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0008
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0009
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+000A
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+000B
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+000C
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+000D
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+000E
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+000F
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0010
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0011
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0012
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0013
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0014
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0015
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0016
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0017
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0018
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0019
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+001A
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+001B
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+001C
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+001D
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+001E
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+001F
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0020 (space)
|
||||||
|
.db 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, ; U+0021 (!)
|
||||||
|
.db 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0022 (")
|
||||||
|
.db 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, ; U+0023 (#)
|
||||||
|
.db 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00, ; U+0024 ($)
|
||||||
|
.db 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00, ; U+0025 (%)
|
||||||
|
.db 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00, ; U+0026 (&)
|
||||||
|
.db 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0027 (')
|
||||||
|
.db 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00, ; U+0028 (()
|
||||||
|
.db 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00, ; U+0029 ())
|
||||||
|
.db 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, ; U+002A (*)
|
||||||
|
.db 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00, ; U+002B (+)
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06, ; U+002C (,)
|
||||||
|
.db 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, ; U+002D (-)
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, ; U+002E (.)
|
||||||
|
.db 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, ; U+002F (/)
|
||||||
|
.db 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00, ; U+0030 (0)
|
||||||
|
.db 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00, ; U+0031 (1)
|
||||||
|
.db 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00, ; U+0032 (2)
|
||||||
|
.db 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00, ; U+0033 (3)
|
||||||
|
.db 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00, ; U+0034 (4)
|
||||||
|
.db 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00, ; U+0035 (5)
|
||||||
|
.db 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00, ; U+0036 (6)
|
||||||
|
.db 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00, ; U+0037 (7)
|
||||||
|
.db 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00, ; U+0038 (8)
|
||||||
|
.db 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00, ; U+0039 (9)
|
||||||
|
.db 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, ; U+003A (:)
|
||||||
|
.db 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06, ; U+003B (;)
|
||||||
|
.db 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00, ; U+003C (<)
|
||||||
|
.db 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, ; U+003D (=)
|
||||||
|
.db 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00, ; U+003E (>)
|
||||||
|
.db 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00, ; U+003F (?)
|
||||||
|
.db 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00, ; U+0040 (@)
|
||||||
|
.db 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00, ; U+0041 (A)
|
||||||
|
.db 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00, ; U+0042 (B)
|
||||||
|
.db 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00, ; U+0043 (C)
|
||||||
|
.db 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00, ; U+0044 (D)
|
||||||
|
.db 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00, ; U+0045 (E)
|
||||||
|
.db 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00, ; U+0046 (F)
|
||||||
|
.db 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00, ; U+0047 (G)
|
||||||
|
.db 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00, ; U+0048 (H)
|
||||||
|
.db 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, ; U+0049 (I)
|
||||||
|
.db 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00, ; U+004A (J)
|
||||||
|
.db 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00, ; U+004B (K)
|
||||||
|
.db 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00, ; U+004C (L)
|
||||||
|
.db 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00, ; U+004D (M)
|
||||||
|
.db 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00, ; U+004E (N)
|
||||||
|
.db 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00, ; U+004F (O)
|
||||||
|
.db 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00, ; U+0050 (P)
|
||||||
|
.db 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00, ; U+0051 (Q)
|
||||||
|
.db 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00, ; U+0052 (R)
|
||||||
|
.db 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00, ; U+0053 (S)
|
||||||
|
.db 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, ; U+0054 (T)
|
||||||
|
.db 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00, ; U+0055 (U)
|
||||||
|
.db 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00, ; U+0056 (V)
|
||||||
|
.db 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00, ; U+0057 (W)
|
||||||
|
.db 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00, ; U+0058 (X)
|
||||||
|
.db 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00, ; U+0059 (Y)
|
||||||
|
.db 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00, ; U+005A (Y)
|
||||||
|
.db 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00, ; U+005B ([)
|
||||||
|
.db 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00, ; U+005C (\)
|
||||||
|
.db 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00, ; U+005D (])
|
||||||
|
.db 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00, ; U+005E (^)
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, ; U+005F (_)
|
||||||
|
.db 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+0060 (`)
|
||||||
|
.db 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00, ; U+0061 (a)
|
||||||
|
.db 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, ; U+0062 (b)
|
||||||
|
.db 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00, ; U+0063 (c)
|
||||||
|
.db 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00, ; U+0064 (d)
|
||||||
|
.db 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00, ; U+0065 (e)
|
||||||
|
.db 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00, ; U+0066 (f)
|
||||||
|
.db 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F, ; U+0067 (g)
|
||||||
|
.db 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00, ; U+0068 (h)
|
||||||
|
.db 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, ; U+0069 (i)
|
||||||
|
.db 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, ; U+006A (j)
|
||||||
|
.db 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00, ; U+006B (k)
|
||||||
|
.db 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, ; U+006C (l)
|
||||||
|
.db 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00, ; U+006D (m)
|
||||||
|
.db 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00, ; U+006E (n)
|
||||||
|
.db 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00, ; U+006F (o)
|
||||||
|
.db 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F, ; U+0070 (p)
|
||||||
|
.db 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78, ; U+0071 (q)
|
||||||
|
.db 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00, ; U+0072 (r)
|
||||||
|
.db 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00, ; U+0073 (s)
|
||||||
|
.db 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00, ; U+0074 (t)
|
||||||
|
.db 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00, ; U+0075 (u)
|
||||||
|
.db 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00, ; U+0076 (v)
|
||||||
|
.db 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00, ; U+0077 (w)
|
||||||
|
.db 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00, ; U+0078 (x)
|
||||||
|
.db 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F, ; U+0079 (y)
|
||||||
|
.db 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00, ; U+007A (z)
|
||||||
|
.db 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00, ; U+007B ({)
|
||||||
|
.db 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, ; U+007C (|)
|
||||||
|
.db 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00, ; U+007D (})
|
||||||
|
.db 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ; U+007E (~)
|
||||||
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; U+007F
|
1222
pat80-io-devices/composite-pal-adapter/software/avr-assembly/m1284def.inc
Executable file
@ -1,142 +1,204 @@
|
|||||||
; VIDEO COMPOSITE PAL IO DEVICE
|
; VIDEO COMPOSITE PAL IO DEVICE
|
||||||
; Implemented following timings in http://blog.retroleum.co.uk/electronics-articles/pal-tv-timing-and-voltages/
|
;
|
||||||
|
; @language: AVR ASM
|
||||||
|
;
|
||||||
|
; This file is part of Pat80 IO Devices.
|
||||||
|
;
|
||||||
|
; Pat80 IO Devices is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; Pat80 IO Devices is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with Pat80 IO Devices. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; INTERFACING WITH PAT80:
|
||||||
|
; Use PortB as data port. Before writing anything, issue a read (pin RW HIGH) and check the busy pin on the data port.
|
||||||
|
; If the busy pin is high, retry reading until goes low. When the busy pin goes low, we have... TODO
|
||||||
|
;
|
||||||
|
; ELECTRONICALLY:
|
||||||
|
; The data port PB0 is tied to ground with a 1KOhm resistance. When the MC is busy drawing the screen, the data port is in
|
||||||
|
; high impedance state, so that avoids causing bus contention, but when read returns a 0bXXXXXXX0 byte. When the MC starts vsync,
|
||||||
|
; begins checking the port for data... TODO
|
||||||
|
;
|
||||||
|
; PINS:
|
||||||
|
; Video:
|
||||||
|
; Video pin: PA0 (pin 1) (but all PORTA is used)
|
||||||
|
; Sync pin: PC0 (pin 22)
|
||||||
|
; Communication:
|
||||||
|
; Data port is PORTB [INPUT]
|
||||||
|
; CLK (clock) signal is on PORTD0 [INPUT]
|
||||||
|
; RS (register select) on PORTD1 [INPUT]
|
||||||
|
; BUSY signal is on PORTD2 [OUTPUT]
|
||||||
|
; Debug:
|
||||||
|
; Debug hsync single pulse on pin: PC1 (pin 23) (may be disabled)
|
||||||
|
;
|
||||||
|
|
||||||
.include "atmega1284definition.asm"
|
.include "m1284def.inc" ; Atmega 1280 device definition
|
||||||
|
|
||||||
; define constant
|
; *** reserved registers ***
|
||||||
.equ SYNC_PIN = PD7 ; Sync pin is on Port D 7 (pin 21)
|
; Video generator registers:
|
||||||
.equ VIDEO_PIN = PD6 ; Video pin is on Port D 6 (pin 20)
|
; X(R27, R26)
|
||||||
|
.def STATUS = r25 ; signal status (see STATUS TABLE)
|
||||||
|
.def VG_HIGH_ACCUM = r24 ; an accumulator in high registers to be used only by video_generator in interrupt
|
||||||
|
.def LINE_COUNTER = r23
|
||||||
|
|
||||||
|
; Character generator registers:
|
||||||
|
.def POS_COLUMN = r22 ; POS_COLUMN (0-46) represents the character/chunk column
|
||||||
|
.def POS_ROWP = r21 ; POS_ROWP (0-255) represent the chunk row. The caracter row is POS_ROWP/FONT_HEIGHT
|
||||||
|
.def HIGH_ACCUM = r20 ; an accumulator in high registers to be used outside of interrupts
|
||||||
|
.def A = r0 ; general purpose accumulator to be used outside of interrupts
|
||||||
|
|
||||||
|
; Hardware pins and ports
|
||||||
|
.equ VIDEO_PORT_OUT = PORTA ; Used all PORTA, but connected only PA0
|
||||||
|
.equ SYNC_PIN = PC0 ; Sync pin (pin 22)
|
||||||
|
.equ DEBUG_PIN = PC1 ; DEBUG: Single vertical sync pulse to trigger oscilloscope (pin 23)
|
||||||
|
.equ DATA_PORT_IN = PIND
|
||||||
|
.equ CLK_PIN = PC2
|
||||||
|
.equ RS_PIN = PC3
|
||||||
|
.equ BUSY_PIN = PC4
|
||||||
|
|
||||||
|
; Memory map
|
||||||
|
.equ FRAMEBUFFER = 0x0F70
|
||||||
|
.equ FRAMEBUFFER_END = 0x3C00
|
||||||
|
.equ SCREEN_HEIGHT = 248
|
||||||
|
|
||||||
; start vector
|
; start vector
|
||||||
.org 0x0000
|
.org 0x0000
|
||||||
rjmp main ; jump to main label
|
rjmp main ; reset vector: jump to main label
|
||||||
|
.org 0x001E
|
||||||
|
rjmp on_tim1_ovf ; interrupt for timer 1 overflow (used by video generation)
|
||||||
|
|
||||||
|
.org 0x40
|
||||||
; main program
|
; main program
|
||||||
main:
|
main:
|
||||||
sbi DDRD, SYNC_PIN ; set pin as output
|
; **** I/O SETUP ****
|
||||||
sbi DDRD, VIDEO_PIN ; set pin as output
|
|
||||||
|
|
||||||
v_refresh_loop:
|
; pins setup
|
||||||
; start 5 long sync pulses
|
sbi DDRC, SYNC_PIN ; set pin as output
|
||||||
call long_sync
|
sbi DDRC, DEBUG_PIN ; set pin as output
|
||||||
call long_sync
|
sbi DDRC, BUSY_PIN ; set pin as output
|
||||||
call long_sync
|
cbi DDRD, CLK_PIN ; set pin as input
|
||||||
call long_sync
|
ldi HIGH_ACCUM, 0xFF
|
||||||
call long_sync
|
out DDRA, HIGH_ACCUM ; set port as output (contains video pin)
|
||||||
; end 5 long sync pulses
|
ldi HIGH_ACCUM, 0x00
|
||||||
|
out DDRB, HIGH_ACCUM ; set port as input (used as data bus)
|
||||||
|
|
||||||
; start 5 short sync pulses
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
; end 5 short sync pulses
|
|
||||||
|
|
||||||
; start 304 picture lines
|
; **** MEMORY SETUP ****
|
||||||
ldi r16, 2
|
|
||||||
h_picture_outer_loop:
|
|
||||||
ldi r17, 152 ; line counter
|
|
||||||
h_picture_loop:
|
|
||||||
; start line sync: 4uS, 96 cycles @ 24Mhz
|
|
||||||
cbi PORTD, SYNC_PIN ; sync goes low (0v) ; 2 cycle
|
|
||||||
ldi r18, 32 ; 1 cycle
|
|
||||||
l_sync_pulse_loop: ; requires 3 cpu cycles
|
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne l_sync_pulse_loop ; 2 cycle if true, 1 if false
|
|
||||||
sbi PORTD, SYNC_PIN ; sync goes high (0.3v)
|
|
||||||
; end line sync
|
|
||||||
|
|
||||||
; start back porch: 8uS, 192 cycles @ 24Mhz
|
call clear_screen
|
||||||
ldi r18, 64 ; 1 cycle
|
|
||||||
l_sync_back_porch_loop:
|
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne l_sync_back_porch_loop ; 2 cycle if true, 1 if false
|
|
||||||
; end back porch
|
|
||||||
|
|
||||||
; start image: 52uS, 1247 cycles @ 24Mhz
|
|
||||||
; 3 bande da 416 cicli
|
|
||||||
|
|
||||||
sbi PORTD, VIDEO_PIN ; video goes high ; 2 cycle
|
|
||||||
|
|
||||||
ldi r18, 138 ; 1 cycle
|
|
||||||
l_sync_video_loop1:
|
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne l_sync_video_loop1 ; 2 cycle if true, 1 if false
|
|
||||||
|
|
||||||
cbi PORTD, VIDEO_PIN ; video goes low
|
; **** TIMERS AND DRAWING IMAGE ROUTINES SETUP ****
|
||||||
|
|
||||||
ldi r18, 137 ; 1 cycle
|
; Timer setup (use 16-bit counter TC1)
|
||||||
l_sync_video_loop2:
|
; The Power Reduction TC1 and TC3 bits in the Power Reduction Registers (PRR0.PRTIM1 and
|
||||||
dec r18 ; 1 cycle
|
; PRR1.PRTIM3) must be written to zero to enable the TC1 and TC3 module.
|
||||||
brne l_sync_video_loop2 ; 2 cycle if true, 1 if false
|
ldi HIGH_ACCUM, 0b00000000
|
||||||
|
sts PRR0, HIGH_ACCUM
|
||||||
|
; Set timer prescaler to 1:1
|
||||||
|
LDI HIGH_ACCUM,0b00000001
|
||||||
|
sts TCCR1B,HIGH_ACCUM
|
||||||
|
; Enambe timer1 overflow interrupt
|
||||||
|
LDI HIGH_ACCUM,0b00000001
|
||||||
|
STS TIMSK1,HIGH_ACCUM
|
||||||
|
; Enable interrupts globally
|
||||||
|
SEI
|
||||||
|
; Timer setup completed.
|
||||||
|
|
||||||
sbi PORTD, VIDEO_PIN ; video goes high
|
|
||||||
|
|
||||||
ldi r18, 138 ; 1 cycle
|
|
||||||
l_sync_video_loop3:
|
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne l_sync_video_loop3 ; 2 cycle if true, 1 if false
|
|
||||||
cbi PORTD, VIDEO_PIN ; video goes low
|
|
||||||
|
|
||||||
; end image
|
|
||||||
|
|
||||||
dec r17 ; decrement line counter
|
; **** MAIN ROUTINE ****
|
||||||
brne h_picture_loop ; if not 0, repeat h_picture_loop
|
|
||||||
|
|
||||||
dec r16 ; decrement outside counter
|
; Wait for data (it never exits)
|
||||||
brne h_picture_outer_loop ; if not 0, repeat h_picture_loop
|
;jmp comm_init
|
||||||
; end picture lines
|
|
||||||
|
|
||||||
; start 6 short sync pulses
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
call short_sync
|
|
||||||
; end 6 short sync pulses
|
|
||||||
|
|
||||||
jmp v_refresh_loop
|
; draw example image
|
||||||
; end vertical refresh
|
;call draw_cat
|
||||||
|
|
||||||
long_sync:
|
; test draw character routine
|
||||||
; long sync: 30uS low (719 cycles @ 24Mhz), 2uS high (48 cycles @ 24Mhz)
|
call cursor_pos_home
|
||||||
cbi PORTD, SYNC_PIN ; sync goes low (0v) ; 2 cycle
|
dctest:
|
||||||
|
ldi r18, 0x41
|
||||||
|
draw_chars:
|
||||||
|
mov HIGH_ACCUM, r18
|
||||||
|
call draw_char
|
||||||
|
dc_continue:
|
||||||
|
; wait
|
||||||
|
ser r19
|
||||||
|
dc_wait_loop_1:
|
||||||
|
ser r16
|
||||||
|
dc_wait_loop_2:
|
||||||
|
dec r16
|
||||||
|
brne dc_wait_loop_2
|
||||||
|
dec r19
|
||||||
|
brne dc_wait_loop_1
|
||||||
|
; wait
|
||||||
|
; ser r19
|
||||||
|
; dc_wait_loop_a1:
|
||||||
|
; ser r16
|
||||||
|
; dc_wait_loop_a2:
|
||||||
|
; dec r16
|
||||||
|
; brne dc_wait_loop_a2
|
||||||
|
; dec r19
|
||||||
|
; brne dc_wait_loop_a1
|
||||||
|
; ; wait
|
||||||
|
; ser r19
|
||||||
|
; dc_wait_loop_s1:
|
||||||
|
; ser r16
|
||||||
|
; dc_wait_loop_s2:
|
||||||
|
; dec r16
|
||||||
|
; brne dc_wait_loop_s2
|
||||||
|
; dec r19
|
||||||
|
; brne dc_wait_loop_s1
|
||||||
|
; ; wait
|
||||||
|
; ser r19
|
||||||
|
; dc_wait_loop_d1:
|
||||||
|
; ser r16
|
||||||
|
; dc_wait_loop_d2:
|
||||||
|
; dec r16
|
||||||
|
; brne dc_wait_loop_d2
|
||||||
|
; dec r19
|
||||||
|
; brne dc_wait_loop_d1
|
||||||
|
; ; wait
|
||||||
|
; ser r19
|
||||||
|
; dc_wait_loop_f1:
|
||||||
|
; ser r16
|
||||||
|
; dc_wait_loop_f2:
|
||||||
|
; dec r16
|
||||||
|
; brne dc_wait_loop_f2
|
||||||
|
; dec r19
|
||||||
|
; brne dc_wait_loop_f1
|
||||||
|
|
||||||
ldi r18, 120 ; 1 cycle
|
inc r18
|
||||||
long_sync_low_loop: ; requires 6 cpu cycles
|
cpi r18, 0x5B
|
||||||
nop ; 1 cycle
|
brne draw_chars
|
||||||
nop ; 1 cycle
|
call draw_carriage_return
|
||||||
nop ; 1 cycle
|
jmp dctest
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne long_sync_low_loop ; 2 cycle if true, 1 if false
|
|
||||||
|
|
||||||
sbi PORTD, SYNC_PIN ; sync goes high (0.3v)
|
|
||||||
|
|
||||||
ldi r18, 16 ; 1 cycle
|
|
||||||
long_sync_high_loop: ; requires 3 cpu cycles
|
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne long_sync_high_loop ; 2 cycle if true, 1 if false
|
|
||||||
|
|
||||||
ret
|
forever:
|
||||||
|
jmp forever
|
||||||
|
|
||||||
short_sync:
|
|
||||||
; short sync: 2uS low (48 cycles @ 24Mhz), 30uS high
|
|
||||||
cbi PORTD, SYNC_PIN ; sync goes low (0v) ; 2 cycle
|
|
||||||
|
|
||||||
ldi r18, 16 ; 1 cycle
|
|
||||||
short_sync_low_loop: ; requires 3 cpu cycles
|
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne long_sync_low_loop ; 2 cycle if true, 1 if false
|
|
||||||
|
|
||||||
sbi PORTD, SYNC_PIN ; sync goes high (0.3v)
|
|
||||||
|
|
||||||
ldi r18, 120 ; 1 cycle
|
.include "video_generator.asm" ; Asyncronous timer-interrupt-based video generation
|
||||||
short_sync_high_loop: ; requires 6 cpu cycles
|
.include "character_generator.asm" ; Character generator
|
||||||
nop ; 1 cycle
|
;.include "communication.asm" ; Communication with Pat80
|
||||||
nop ; 1 cycle
|
.include "font.asm" ; Font face
|
||||||
nop ; 1 cycle
|
;.include "example_data/cat.asm" ; Cat image
|
||||||
dec r18 ; 1 cycle
|
|
||||||
brne short_sync_high_loop ; 2 cycle if true, 1 if false
|
|
||||||
|
|
||||||
ret
|
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
:020000020000FC
|
|
||||||
:1000000000C0579A4F995F984F9B5F9A40E230E447
|
|
||||||
:1000100020E82A95F1F73A95D9F74A95C1F7F2CF3A
|
|
||||||
:00000001FF
|
|
18
pat80-io-devices/keyboard/hardware/keyboard/LICENSE.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Hardware
|
||||||
|
This folder contains the Pat80 keyboard schematics and PCB layout.
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Blueprints.
|
||||||
|
|
||||||
|
Pat80 Blueprints is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Blueprints is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Blueprints. If not, see <http://www.gnu.org/licenses/>.
|
68629
pat80-io-devices/keyboard/hardware/keyboard/fp-info-cache
Normal file
3
pat80-io-devices/keyboard/hardware/keyboard/fp-lib-table
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
(fp_lib_table
|
||||||
|
(lib (name footprints)(type KiCad)(uri /home/danieleverducci/git/pato-z80-home-computer/kicad-symbols/footprints.pretty)(options "")(descr ""))
|
||||||
|
)
|
235
pat80-io-devices/keyboard/hardware/keyboard/keyboard-cache.lib
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_02x17_Odd_Even
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_02x17_Odd_Even J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 50 900 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_02x17_Odd_Even" 50 -900 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_2x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -795 0 -805 1 1 6 N
|
||||||
|
S -50 -695 0 -705 1 1 6 N
|
||||||
|
S -50 -595 0 -605 1 1 6 N
|
||||||
|
S -50 -495 0 -505 1 1 6 N
|
||||||
|
S -50 -395 0 -405 1 1 6 N
|
||||||
|
S -50 -295 0 -305 1 1 6 N
|
||||||
|
S -50 -195 0 -205 1 1 6 N
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 205 0 195 1 1 6 N
|
||||||
|
S -50 305 0 295 1 1 6 N
|
||||||
|
S -50 405 0 395 1 1 6 N
|
||||||
|
S -50 505 0 495 1 1 6 N
|
||||||
|
S -50 605 0 595 1 1 6 N
|
||||||
|
S -50 705 0 695 1 1 6 N
|
||||||
|
S -50 805 0 795 1 1 6 N
|
||||||
|
S -50 850 150 -850 1 1 10 f
|
||||||
|
S 150 -795 100 -805 1 1 6 N
|
||||||
|
S 150 -695 100 -705 1 1 6 N
|
||||||
|
S 150 -595 100 -605 1 1 6 N
|
||||||
|
S 150 -495 100 -505 1 1 6 N
|
||||||
|
S 150 -395 100 -405 1 1 6 N
|
||||||
|
S 150 -295 100 -305 1 1 6 N
|
||||||
|
S 150 -195 100 -205 1 1 6 N
|
||||||
|
S 150 -95 100 -105 1 1 6 N
|
||||||
|
S 150 5 100 -5 1 1 6 N
|
||||||
|
S 150 105 100 95 1 1 6 N
|
||||||
|
S 150 205 100 195 1 1 6 N
|
||||||
|
S 150 305 100 295 1 1 6 N
|
||||||
|
S 150 405 100 395 1 1 6 N
|
||||||
|
S 150 505 100 495 1 1 6 N
|
||||||
|
S 150 605 100 595 1 1 6 N
|
||||||
|
S 150 705 100 695 1 1 6 N
|
||||||
|
S 150 805 100 795 1 1 6 N
|
||||||
|
X Pin_1 1 -200 800 150 R 50 50 1 1 P
|
||||||
|
X Pin_10 10 300 400 150 L 50 50 1 1 P
|
||||||
|
X Pin_11 11 -200 300 150 R 50 50 1 1 P
|
||||||
|
X Pin_12 12 300 300 150 L 50 50 1 1 P
|
||||||
|
X Pin_13 13 -200 200 150 R 50 50 1 1 P
|
||||||
|
X Pin_14 14 300 200 150 L 50 50 1 1 P
|
||||||
|
X Pin_15 15 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_16 16 300 100 150 L 50 50 1 1 P
|
||||||
|
X Pin_17 17 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_18 18 300 0 150 L 50 50 1 1 P
|
||||||
|
X Pin_19 19 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 300 800 150 L 50 50 1 1 P
|
||||||
|
X Pin_20 20 300 -100 150 L 50 50 1 1 P
|
||||||
|
X Pin_21 21 -200 -200 150 R 50 50 1 1 P
|
||||||
|
X Pin_22 22 300 -200 150 L 50 50 1 1 P
|
||||||
|
X Pin_23 23 -200 -300 150 R 50 50 1 1 P
|
||||||
|
X Pin_24 24 300 -300 150 L 50 50 1 1 P
|
||||||
|
X Pin_25 25 -200 -400 150 R 50 50 1 1 P
|
||||||
|
X Pin_26 26 300 -400 150 L 50 50 1 1 P
|
||||||
|
X Pin_27 27 -200 -500 150 R 50 50 1 1 P
|
||||||
|
X Pin_28 28 300 -500 150 L 50 50 1 1 P
|
||||||
|
X Pin_29 29 -200 -600 150 R 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 700 150 R 50 50 1 1 P
|
||||||
|
X Pin_30 30 300 -600 150 L 50 50 1 1 P
|
||||||
|
X Pin_31 31 -200 -700 150 R 50 50 1 1 P
|
||||||
|
X Pin_32 32 300 -700 150 L 50 50 1 1 P
|
||||||
|
X Pin_33 33 -200 -800 150 R 50 50 1 1 P
|
||||||
|
X Pin_34 34 300 -800 150 L 50 50 1 1 P
|
||||||
|
X Pin_4 4 300 700 150 L 50 50 1 1 P
|
||||||
|
X Pin_5 5 -200 600 150 R 50 50 1 1 P
|
||||||
|
X Pin_6 6 300 600 150 L 50 50 1 1 P
|
||||||
|
X Pin_7 7 -200 500 150 R 50 50 1 1 P
|
||||||
|
X Pin_8 8 300 500 150 L 50 50 1 1 P
|
||||||
|
X Pin_9 9 -200 400 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_C
|
||||||
|
#
|
||||||
|
DEF Device_C C 0 10 N Y 1 F N
|
||||||
|
F0 "C" 25 100 50 H V L CNN
|
||||||
|
F1 "Device_C" 25 -100 50 H V L CNN
|
||||||
|
F2 "" 38 -150 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
C_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 20 -80 -30 80 -30 N
|
||||||
|
P 2 0 1 20 -80 30 80 30 N
|
||||||
|
X ~ 1 0 150 110 D 50 50 1 1 P
|
||||||
|
X ~ 2 0 -150 110 U 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_D
|
||||||
|
#
|
||||||
|
DEF Device_D D 0 40 N N 1 F N
|
||||||
|
F0 "D" 0 100 50 H V C CNN
|
||||||
|
F1 "Device_D" 0 -100 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
TO-???*
|
||||||
|
*_Diode_*
|
||||||
|
*SingleDiode*
|
||||||
|
D_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 8 -50 50 -50 -50 N
|
||||||
|
P 2 0 1 0 50 0 -50 0 N
|
||||||
|
P 4 0 1 8 50 50 50 -50 -50 0 50 50 N
|
||||||
|
X K 1 -150 0 100 R 50 50 1 1 P
|
||||||
|
X A 2 150 0 100 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_LED
|
||||||
|
#
|
||||||
|
DEF Device_LED D 0 40 N N 1 F N
|
||||||
|
F0 "D" 0 100 50 H V C CNN
|
||||||
|
F1 "Device_LED" 0 -100 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
LED*
|
||||||
|
LED_SMD:*
|
||||||
|
LED_THT:*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 8 -50 -50 -50 50 N
|
||||||
|
P 2 0 1 0 -50 0 50 0 N
|
||||||
|
P 4 0 1 8 50 -50 50 50 -50 0 50 -50 N
|
||||||
|
P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N
|
||||||
|
P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N
|
||||||
|
X K 1 -150 0 100 R 50 50 1 1 P
|
||||||
|
X A 2 150 0 100 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_R
|
||||||
|
#
|
||||||
|
DEF Device_R R 0 0 N Y 1 F N
|
||||||
|
F0 "R" 80 0 50 V V C CNN
|
||||||
|
F1 "Device_R" 0 0 50 V V C CNN
|
||||||
|
F2 "" -70 0 50 V I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
R_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -40 -100 40 100 0 1 10 N
|
||||||
|
X ~ 1 0 150 50 D 50 50 1 1 P
|
||||||
|
X ~ 2 0 -150 50 U 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Switch_SW_DPDT_x2
|
||||||
|
#
|
||||||
|
DEF Switch_SW_DPDT_x2 SW 0 0 Y N 2 F N
|
||||||
|
F0 "SW" 0 170 50 H V C CNN
|
||||||
|
F1 "Switch_SW_DPDT_x2" 0 -200 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
SW*DPDT*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
C -80 0 20 0 0 0 N
|
||||||
|
C 80 -100 20 0 0 0 N
|
||||||
|
C 80 100 20 0 1 0 N
|
||||||
|
P 2 0 1 0 -60 10 65 90 N
|
||||||
|
X A 1 200 100 100 L 50 50 1 1 P
|
||||||
|
X B 2 -200 0 100 R 50 50 1 1 P
|
||||||
|
X C 3 200 -100 100 L 50 50 1 1 P
|
||||||
|
X A 4 200 100 100 L 50 50 2 1 P
|
||||||
|
X B 5 -200 0 100 R 50 50 2 1 P
|
||||||
|
X C 6 200 -100 100 L 50 50 2 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Switch_SW_Push
|
||||||
|
#
|
||||||
|
DEF Switch_SW_Push SW 0 40 N N 1 F N
|
||||||
|
F0 "SW" 50 100 50 H V L CNN
|
||||||
|
F1 "Switch_SW_Push" 0 -60 50 H V C CNN
|
||||||
|
F2 "" 0 200 50 H I C CNN
|
||||||
|
F3 "" 0 200 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
C -80 0 20 0 1 0 N
|
||||||
|
C 80 0 20 0 1 0 N
|
||||||
|
P 2 0 1 0 0 50 0 120 N
|
||||||
|
P 2 0 1 0 100 50 -100 50 N
|
||||||
|
X 1 1 -200 0 100 R 50 50 0 1 P
|
||||||
|
X 2 2 200 0 100 L 50 50 0 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_GND
|
||||||
|
#
|
||||||
|
DEF power_GND #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -250 50 H I C CNN
|
||||||
|
F1 "power_GND" 0 -150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
|
||||||
|
X GND 1 0 0 0 D 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_VCC
|
||||||
|
#
|
||||||
|
DEF power_VCC #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -150 50 H I C CNN
|
||||||
|
F1 "power_VCC" 0 150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
C 0 75 25 0 1 0 N
|
||||||
|
P 2 0 1 0 0 0 0 50 N
|
||||||
|
X VCC 1 0 0 0 U 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
6619
pat80-io-devices/keyboard/hardware/keyboard/keyboard.kicad_pcb
Normal file
6618
pat80-io-devices/keyboard/hardware/keyboard/keyboard.kicad_pcb-bak
Normal file
1240
pat80-io-devices/keyboard/hardware/keyboard/keyboard.net
Normal file
252
pat80-io-devices/keyboard/hardware/keyboard/keyboard.pro
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
update=mar 30 mar 2021 07:28:33 CEST
|
||||||
|
version=1
|
||||||
|
last_client=kicad
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
RootSch=
|
||||||
|
BoardNm=
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=
|
||||||
|
[eeschema/libraries]
|
||||||
|
[schematic_editor]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
PlotDirectoryName=
|
||||||
|
SubpartIdSeparator=0
|
||||||
|
SubpartFirstId=65
|
||||||
|
NetFmtName=Pcbnew
|
||||||
|
SpiceAjustPassiveValues=0
|
||||||
|
LabSize=50
|
||||||
|
ERC_TestSimilarLabels=1
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
LastNetListRead=keyboard.net
|
||||||
|
CopperLayerCount=2
|
||||||
|
BoardThickness=1.6
|
||||||
|
AllowMicroVias=0
|
||||||
|
AllowBlindVias=0
|
||||||
|
RequireCourtyardDefinitions=0
|
||||||
|
ProhibitOverlappingCourtyards=1
|
||||||
|
MinTrackWidth=0.2
|
||||||
|
MinViaDiameter=0.4
|
||||||
|
MinViaDrill=0.3
|
||||||
|
MinMicroViaDiameter=0.2
|
||||||
|
MinMicroViaDrill=0.09999999999999999
|
||||||
|
MinHoleToHole=0.25
|
||||||
|
TrackWidth1=0.25
|
||||||
|
TrackWidth2=0.5
|
||||||
|
TrackWidth3=1
|
||||||
|
ViaDiameter1=0.8
|
||||||
|
ViaDrill1=0.4
|
||||||
|
ViaDiameter2=2
|
||||||
|
ViaDrill2=0.5
|
||||||
|
dPairWidth1=0.2
|
||||||
|
dPairGap1=0.25
|
||||||
|
dPairViaGap1=0.25
|
||||||
|
SilkLineWidth=0.12
|
||||||
|
SilkTextSizeV=1
|
||||||
|
SilkTextSizeH=1
|
||||||
|
SilkTextSizeThickness=0.15
|
||||||
|
SilkTextItalic=0
|
||||||
|
SilkTextUpright=1
|
||||||
|
CopperLineWidth=0.2
|
||||||
|
CopperTextSizeV=1.5
|
||||||
|
CopperTextSizeH=1.5
|
||||||
|
CopperTextThickness=0.3
|
||||||
|
CopperTextItalic=0
|
||||||
|
CopperTextUpright=1
|
||||||
|
EdgeCutLineWidth=0.05
|
||||||
|
CourtyardLineWidth=0.05
|
||||||
|
OthersLineWidth=0.15
|
||||||
|
OthersTextSizeV=1
|
||||||
|
OthersTextSizeH=1
|
||||||
|
OthersTextSizeThickness=0.15
|
||||||
|
OthersTextItalic=0
|
||||||
|
OthersTextUpright=1
|
||||||
|
SolderMaskClearance=0
|
||||||
|
SolderMaskMinWidth=0
|
||||||
|
SolderPasteClearance=0
|
||||||
|
SolderPasteRatio=-0
|
||||||
|
[pcbnew/Layer.F.Cu]
|
||||||
|
Name=F.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.In1.Cu]
|
||||||
|
Name=In1.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In2.Cu]
|
||||||
|
Name=In2.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In3.Cu]
|
||||||
|
Name=In3.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In4.Cu]
|
||||||
|
Name=In4.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In5.Cu]
|
||||||
|
Name=In5.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In6.Cu]
|
||||||
|
Name=In6.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In7.Cu]
|
||||||
|
Name=In7.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In8.Cu]
|
||||||
|
Name=In8.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In9.Cu]
|
||||||
|
Name=In9.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In10.Cu]
|
||||||
|
Name=In10.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In11.Cu]
|
||||||
|
Name=In11.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In12.Cu]
|
||||||
|
Name=In12.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In13.Cu]
|
||||||
|
Name=In13.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In14.Cu]
|
||||||
|
Name=In14.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In15.Cu]
|
||||||
|
Name=In15.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In16.Cu]
|
||||||
|
Name=In16.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In17.Cu]
|
||||||
|
Name=In17.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In18.Cu]
|
||||||
|
Name=In18.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In19.Cu]
|
||||||
|
Name=In19.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In20.Cu]
|
||||||
|
Name=In20.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In21.Cu]
|
||||||
|
Name=In21.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In22.Cu]
|
||||||
|
Name=In22.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In23.Cu]
|
||||||
|
Name=In23.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In24.Cu]
|
||||||
|
Name=In24.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In25.Cu]
|
||||||
|
Name=In25.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In26.Cu]
|
||||||
|
Name=In26.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In27.Cu]
|
||||||
|
Name=In27.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In28.Cu]
|
||||||
|
Name=In28.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In29.Cu]
|
||||||
|
Name=In29.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In30.Cu]
|
||||||
|
Name=In30.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.B.Cu]
|
||||||
|
Name=B.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Dwgs.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Cmts.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco1.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco2.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Edge.Cuts]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Margin]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Rescue]
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Netclasses]
|
||||||
|
[pcbnew/Netclasses/Default]
|
||||||
|
Name=Default
|
||||||
|
Clearance=0.2
|
||||||
|
TrackWidth=0.25
|
||||||
|
ViaDiameter=0.8
|
||||||
|
ViaDrill=0.4
|
||||||
|
uViaDiameter=0.3
|
||||||
|
uViaDrill=0.1
|
||||||
|
dPairWidth=0.2
|
||||||
|
dPairGap=0.25
|
||||||
|
dPairViaGap=0.25
|
2023
pat80-io-devices/keyboard/hardware/keyboard/keyboard.sch
Normal file
2023
pat80-io-devices/keyboard/hardware/keyboard/keyboard.sch-bak
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
(sym_lib_table
|
||||||
|
(lib (name pat80)(type Legacy)(uri /home/danieleverducci/git/pato-z80-home-computer/kicad-symbols/pat80.lib)(options "")(descr ""))
|
||||||
|
)
|
@ -0,0 +1,18 @@
|
|||||||
|
# Hardware
|
||||||
|
This folder contains the Pat80 keyboard controller IO card schematics and PCB layout.
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Blueprints.
|
||||||
|
|
||||||
|
Pat80 Blueprints is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Blueprints is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Blueprints. If not, see <http://www.gnu.org/licenses/>.
|
68629
pat80-io-devices/keyboard/hardware/keyboard_controller/fp-info-cache
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
(fp_lib_table
|
||||||
|
(lib (name footprints)(type KiCad)(uri /home/danieleverducci/git/pato-z80-home-computer/kicad-symbols/footprints.pretty)(options "")(descr ""))
|
||||||
|
)
|
@ -0,0 +1,297 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# 74xx_74HC244
|
||||||
|
#
|
||||||
|
DEF 74xx_74HC244 U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -300 650 50 H V C CNN
|
||||||
|
F1 "74xx_74HC244" -300 -650 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
ALIAS 74HCT244
|
||||||
|
$FPLIST
|
||||||
|
TSSOP*4.4x6.5mm*P0.65mm*
|
||||||
|
SSOP*4.4x6.5mm*P0.65mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 600 300 -600 1 1 10 f
|
||||||
|
P 4 1 0 6 50 0 -50 50 -50 -50 50 0 N
|
||||||
|
X 1OE 1 -500 -400 200 R 50 50 1 0 I I
|
||||||
|
X GND 10 0 -800 200 U 50 50 1 0 W
|
||||||
|
X 2A3 11 -500 -200 200 R 50 50 1 0 I
|
||||||
|
X 1Y3 12 500 200 200 L 50 50 1 0 O
|
||||||
|
X 2A2 13 -500 -100 200 R 50 50 1 0 I
|
||||||
|
X 1Y2 14 500 300 200 L 50 50 1 0 O
|
||||||
|
X 2A1 15 -500 0 200 R 50 50 1 0 I
|
||||||
|
X 1Y1 16 500 400 200 L 50 50 1 0 O
|
||||||
|
X 2A0 17 -500 100 200 R 50 50 1 0 I
|
||||||
|
X 1Y0 18 500 500 200 L 50 50 1 0 O
|
||||||
|
X 2OE 19 -500 -500 200 R 50 50 1 0 I I
|
||||||
|
X 1A0 2 -500 500 200 R 50 50 1 0 I
|
||||||
|
X VCC 20 0 800 200 D 50 50 1 0 W
|
||||||
|
X 2Y0 3 500 100 200 L 50 50 1 0 O
|
||||||
|
X 1A1 4 -500 400 200 R 50 50 1 0 I
|
||||||
|
X 2Y1 5 500 0 200 L 50 50 1 0 O
|
||||||
|
X 1A2 6 -500 300 200 R 50 50 1 0 I
|
||||||
|
X 2Y2 7 500 -100 200 L 50 50 1 0 O
|
||||||
|
X 1A3 8 -500 200 200 R 50 50 1 0 I
|
||||||
|
X 2Y3 9 500 -200 200 L 50 50 1 0 O
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# 74xx_74LS138
|
||||||
|
#
|
||||||
|
DEF 74xx_74LS138 U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -300 450 50 H V C CNN
|
||||||
|
F1 "74xx_74LS138" -300 -550 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
DIP?16*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 400 300 -500 1 1 10 f
|
||||||
|
X A0 1 -500 300 200 R 50 50 1 0 I
|
||||||
|
X O5 10 500 -200 200 L 50 50 1 0 O V
|
||||||
|
X O4 11 500 -100 200 L 50 50 1 0 O V
|
||||||
|
X O3 12 500 0 200 L 50 50 1 0 O V
|
||||||
|
X O2 13 500 100 200 L 50 50 1 0 O V
|
||||||
|
X O1 14 500 200 200 L 50 50 1 0 O V
|
||||||
|
X O0 15 500 300 200 L 50 50 1 0 O V
|
||||||
|
X VCC 16 0 600 200 D 50 50 1 0 W
|
||||||
|
X A1 2 -500 200 200 R 50 50 1 0 I
|
||||||
|
X A2 3 -500 100 200 R 50 50 1 0 I
|
||||||
|
X E1 4 -500 -400 200 R 50 50 1 0 I L
|
||||||
|
X E2 5 -500 -300 200 R 50 50 1 0 I L
|
||||||
|
X E3 6 -500 -200 200 R 50 50 1 0 I
|
||||||
|
X O7 7 500 -400 200 L 50 50 1 0 O V
|
||||||
|
X GND 8 0 -700 200 U 50 50 1 0 W
|
||||||
|
X O6 9 500 -300 200 L 50 50 1 0 O V
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_DB9_Female_MountingHoles
|
||||||
|
#
|
||||||
|
DEF Connector_DB9_Female_MountingHoles J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 650 50 H V C CNN
|
||||||
|
F1 "Connector_DB9_Female_MountingHoles" 0 575 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
DSUB*Female*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
C -70 -400 30 0 1 0 N
|
||||||
|
C -70 -200 30 0 1 0 N
|
||||||
|
C -70 0 30 0 1 0 N
|
||||||
|
C -70 200 30 0 1 0 N
|
||||||
|
C -70 400 30 0 1 0 N
|
||||||
|
C 50 -300 30 0 1 0 N
|
||||||
|
C 50 -100 30 0 1 0 N
|
||||||
|
C 50 100 30 0 1 0 N
|
||||||
|
C 50 300 30 0 1 0 N
|
||||||
|
P 2 0 1 0 -150 -400 -100 -400 N
|
||||||
|
P 2 0 1 0 -150 -300 20 -300 N
|
||||||
|
P 2 0 1 0 -150 -200 -100 -200 N
|
||||||
|
P 2 0 1 0 -150 -100 20 -100 N
|
||||||
|
P 2 0 1 0 -150 0 -100 0 N
|
||||||
|
P 2 0 1 0 -150 100 20 100 N
|
||||||
|
P 2 0 1 0 -150 200 -100 200 N
|
||||||
|
P 2 0 1 0 -150 300 20 300 N
|
||||||
|
P 2 0 1 0 -150 400 -100 400 N
|
||||||
|
P 5 0 1 10 -150 525 -150 -525 150 -375 150 375 -150 525 f
|
||||||
|
X PAD 0 0 -600 150 U 50 50 1 1 P
|
||||||
|
X 1 1 -300 400 150 R 50 50 1 1 P
|
||||||
|
X 2 2 -300 200 150 R 50 50 1 1 P
|
||||||
|
X 3 3 -300 0 150 R 50 50 1 1 P
|
||||||
|
X 4 4 -300 -200 150 R 50 50 1 1 P
|
||||||
|
X 5 5 -300 -400 150 R 50 50 1 1 P
|
||||||
|
X 6 6 -300 300 150 R 50 50 1 1 P
|
||||||
|
X 7 7 -300 100 150 R 50 50 1 1 P
|
||||||
|
X 8 8 -300 -100 150 R 50 50 1 1 P
|
||||||
|
X 9 9 -300 -300 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_01x19
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_01x19 J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 1000 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_01x19" 0 -1000 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_1x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -895 0 -905 1 1 6 N
|
||||||
|
S -50 -795 0 -805 1 1 6 N
|
||||||
|
S -50 -695 0 -705 1 1 6 N
|
||||||
|
S -50 -595 0 -605 1 1 6 N
|
||||||
|
S -50 -495 0 -505 1 1 6 N
|
||||||
|
S -50 -395 0 -405 1 1 6 N
|
||||||
|
S -50 -295 0 -305 1 1 6 N
|
||||||
|
S -50 -195 0 -205 1 1 6 N
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 205 0 195 1 1 6 N
|
||||||
|
S -50 305 0 295 1 1 6 N
|
||||||
|
S -50 405 0 395 1 1 6 N
|
||||||
|
S -50 505 0 495 1 1 6 N
|
||||||
|
S -50 605 0 595 1 1 6 N
|
||||||
|
S -50 705 0 695 1 1 6 N
|
||||||
|
S -50 805 0 795 1 1 6 N
|
||||||
|
S -50 905 0 895 1 1 6 N
|
||||||
|
S -50 950 50 -950 1 1 10 f
|
||||||
|
X Pin_1 1 -200 900 150 R 50 50 1 1 P
|
||||||
|
X Pin_10 10 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_11 11 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_12 12 -200 -200 150 R 50 50 1 1 P
|
||||||
|
X Pin_13 13 -200 -300 150 R 50 50 1 1 P
|
||||||
|
X Pin_14 14 -200 -400 150 R 50 50 1 1 P
|
||||||
|
X Pin_15 15 -200 -500 150 R 50 50 1 1 P
|
||||||
|
X Pin_16 16 -200 -600 150 R 50 50 1 1 P
|
||||||
|
X Pin_17 17 -200 -700 150 R 50 50 1 1 P
|
||||||
|
X Pin_18 18 -200 -800 150 R 50 50 1 1 P
|
||||||
|
X Pin_19 19 -200 -900 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 -200 800 150 R 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 700 150 R 50 50 1 1 P
|
||||||
|
X Pin_4 4 -200 600 150 R 50 50 1 1 P
|
||||||
|
X Pin_5 5 -200 500 150 R 50 50 1 1 P
|
||||||
|
X Pin_6 6 -200 400 150 R 50 50 1 1 P
|
||||||
|
X Pin_7 7 -200 300 150 R 50 50 1 1 P
|
||||||
|
X Pin_8 8 -200 200 150 R 50 50 1 1 P
|
||||||
|
X Pin_9 9 -200 100 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_02x17_Odd_Even
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_02x17_Odd_Even J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 50 900 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_02x17_Odd_Even" 50 -900 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_2x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -795 0 -805 1 1 6 N
|
||||||
|
S -50 -695 0 -705 1 1 6 N
|
||||||
|
S -50 -595 0 -605 1 1 6 N
|
||||||
|
S -50 -495 0 -505 1 1 6 N
|
||||||
|
S -50 -395 0 -405 1 1 6 N
|
||||||
|
S -50 -295 0 -305 1 1 6 N
|
||||||
|
S -50 -195 0 -205 1 1 6 N
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 205 0 195 1 1 6 N
|
||||||
|
S -50 305 0 295 1 1 6 N
|
||||||
|
S -50 405 0 395 1 1 6 N
|
||||||
|
S -50 505 0 495 1 1 6 N
|
||||||
|
S -50 605 0 595 1 1 6 N
|
||||||
|
S -50 705 0 695 1 1 6 N
|
||||||
|
S -50 805 0 795 1 1 6 N
|
||||||
|
S -50 850 150 -850 1 1 10 f
|
||||||
|
S 150 -795 100 -805 1 1 6 N
|
||||||
|
S 150 -695 100 -705 1 1 6 N
|
||||||
|
S 150 -595 100 -605 1 1 6 N
|
||||||
|
S 150 -495 100 -505 1 1 6 N
|
||||||
|
S 150 -395 100 -405 1 1 6 N
|
||||||
|
S 150 -295 100 -305 1 1 6 N
|
||||||
|
S 150 -195 100 -205 1 1 6 N
|
||||||
|
S 150 -95 100 -105 1 1 6 N
|
||||||
|
S 150 5 100 -5 1 1 6 N
|
||||||
|
S 150 105 100 95 1 1 6 N
|
||||||
|
S 150 205 100 195 1 1 6 N
|
||||||
|
S 150 305 100 295 1 1 6 N
|
||||||
|
S 150 405 100 395 1 1 6 N
|
||||||
|
S 150 505 100 495 1 1 6 N
|
||||||
|
S 150 605 100 595 1 1 6 N
|
||||||
|
S 150 705 100 695 1 1 6 N
|
||||||
|
S 150 805 100 795 1 1 6 N
|
||||||
|
X Pin_1 1 -200 800 150 R 50 50 1 1 P
|
||||||
|
X Pin_10 10 300 400 150 L 50 50 1 1 P
|
||||||
|
X Pin_11 11 -200 300 150 R 50 50 1 1 P
|
||||||
|
X Pin_12 12 300 300 150 L 50 50 1 1 P
|
||||||
|
X Pin_13 13 -200 200 150 R 50 50 1 1 P
|
||||||
|
X Pin_14 14 300 200 150 L 50 50 1 1 P
|
||||||
|
X Pin_15 15 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_16 16 300 100 150 L 50 50 1 1 P
|
||||||
|
X Pin_17 17 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_18 18 300 0 150 L 50 50 1 1 P
|
||||||
|
X Pin_19 19 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 300 800 150 L 50 50 1 1 P
|
||||||
|
X Pin_20 20 300 -100 150 L 50 50 1 1 P
|
||||||
|
X Pin_21 21 -200 -200 150 R 50 50 1 1 P
|
||||||
|
X Pin_22 22 300 -200 150 L 50 50 1 1 P
|
||||||
|
X Pin_23 23 -200 -300 150 R 50 50 1 1 P
|
||||||
|
X Pin_24 24 300 -300 150 L 50 50 1 1 P
|
||||||
|
X Pin_25 25 -200 -400 150 R 50 50 1 1 P
|
||||||
|
X Pin_26 26 300 -400 150 L 50 50 1 1 P
|
||||||
|
X Pin_27 27 -200 -500 150 R 50 50 1 1 P
|
||||||
|
X Pin_28 28 300 -500 150 L 50 50 1 1 P
|
||||||
|
X Pin_29 29 -200 -600 150 R 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 700 150 R 50 50 1 1 P
|
||||||
|
X Pin_30 30 300 -600 150 L 50 50 1 1 P
|
||||||
|
X Pin_31 31 -200 -700 150 R 50 50 1 1 P
|
||||||
|
X Pin_32 32 300 -700 150 L 50 50 1 1 P
|
||||||
|
X Pin_33 33 -200 -800 150 R 50 50 1 1 P
|
||||||
|
X Pin_34 34 300 -800 150 L 50 50 1 1 P
|
||||||
|
X Pin_4 4 300 700 150 L 50 50 1 1 P
|
||||||
|
X Pin_5 5 -200 600 150 R 50 50 1 1 P
|
||||||
|
X Pin_6 6 300 600 150 L 50 50 1 1 P
|
||||||
|
X Pin_7 7 -200 500 150 R 50 50 1 1 P
|
||||||
|
X Pin_8 8 300 500 150 L 50 50 1 1 P
|
||||||
|
X Pin_9 9 -200 400 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_C
|
||||||
|
#
|
||||||
|
DEF Device_C C 0 10 N Y 1 F N
|
||||||
|
F0 "C" 25 100 50 H V L CNN
|
||||||
|
F1 "Device_C" 25 -100 50 H V L CNN
|
||||||
|
F2 "" 38 -150 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
C_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 20 -80 -30 80 -30 N
|
||||||
|
P 2 0 1 20 -80 30 80 30 N
|
||||||
|
X ~ 1 0 150 110 D 50 50 1 1 P
|
||||||
|
X ~ 2 0 -150 110 U 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_GND
|
||||||
|
#
|
||||||
|
DEF power_GND #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -250 50 H I C CNN
|
||||||
|
F1 "power_GND" 0 -150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
|
||||||
|
X GND 1 0 0 0 D 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_VCC
|
||||||
|
#
|
||||||
|
DEF power_VCC #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -150 50 H I C CNN
|
||||||
|
F1 "power_VCC" 0 150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
C 0 75 25 0 1 0 N
|
||||||
|
P 2 0 1 0 0 0 0 50 N
|
||||||
|
X VCC 1 0 0 0 U 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
@ -0,0 +1 @@
|
|||||||
|
(kicad_pcb (version 4) (host kicad "dummy file") )
|
1541
pat80-io-devices/keyboard/hardware/keyboard_controller/keyboard.net
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
update=sab 27 mar 2021 17:56:11 CET
|
||||||
|
version=1
|
||||||
|
last_client=kicad
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
RootSch=
|
||||||
|
BoardNm=
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=
|
||||||
|
[eeschema/libraries]
|
||||||
|
[schematic_editor]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
PlotDirectoryName=
|
||||||
|
SubpartIdSeparator=0
|
||||||
|
SubpartFirstId=65
|
||||||
|
NetFmtName=Pcbnew
|
||||||
|
SpiceAjustPassiveValues=0
|
||||||
|
LabSize=50
|
||||||
|
ERC_TestSimilarLabels=1
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
LastNetListRead=keyboard.net
|
||||||
|
CopperLayerCount=2
|
||||||
|
BoardThickness=1.6
|
||||||
|
AllowMicroVias=0
|
||||||
|
AllowBlindVias=0
|
||||||
|
RequireCourtyardDefinitions=0
|
||||||
|
ProhibitOverlappingCourtyards=1
|
||||||
|
MinTrackWidth=0.2
|
||||||
|
MinViaDiameter=0.4
|
||||||
|
MinViaDrill=0.3
|
||||||
|
MinMicroViaDiameter=0.2
|
||||||
|
MinMicroViaDrill=0.09999999999999999
|
||||||
|
MinHoleToHole=0.25
|
||||||
|
TrackWidth1=0.25
|
||||||
|
ViaDiameter1=0.8
|
||||||
|
ViaDrill1=0.4
|
||||||
|
dPairWidth1=0.2
|
||||||
|
dPairGap1=0.25
|
||||||
|
dPairViaGap1=0.25
|
||||||
|
SilkLineWidth=0.12
|
||||||
|
SilkTextSizeV=1
|
||||||
|
SilkTextSizeH=1
|
||||||
|
SilkTextSizeThickness=0.15
|
||||||
|
SilkTextItalic=0
|
||||||
|
SilkTextUpright=1
|
||||||
|
CopperLineWidth=0.2
|
||||||
|
CopperTextSizeV=1.5
|
||||||
|
CopperTextSizeH=1.5
|
||||||
|
CopperTextThickness=0.3
|
||||||
|
CopperTextItalic=0
|
||||||
|
CopperTextUpright=1
|
||||||
|
EdgeCutLineWidth=0.05
|
||||||
|
CourtyardLineWidth=0.05
|
||||||
|
OthersLineWidth=0.15
|
||||||
|
OthersTextSizeV=1
|
||||||
|
OthersTextSizeH=1
|
||||||
|
OthersTextSizeThickness=0.15
|
||||||
|
OthersTextItalic=0
|
||||||
|
OthersTextUpright=1
|
||||||
|
SolderMaskClearance=0
|
||||||
|
SolderMaskMinWidth=0
|
||||||
|
SolderPasteClearance=0
|
||||||
|
SolderPasteRatio=0
|
||||||
|
[pcbnew/Layer.F.Cu]
|
||||||
|
Name=F.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.In1.Cu]
|
||||||
|
Name=In1.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In2.Cu]
|
||||||
|
Name=In2.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In3.Cu]
|
||||||
|
Name=In3.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In4.Cu]
|
||||||
|
Name=In4.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In5.Cu]
|
||||||
|
Name=In5.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In6.Cu]
|
||||||
|
Name=In6.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In7.Cu]
|
||||||
|
Name=In7.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In8.Cu]
|
||||||
|
Name=In8.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In9.Cu]
|
||||||
|
Name=In9.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In10.Cu]
|
||||||
|
Name=In10.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In11.Cu]
|
||||||
|
Name=In11.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In12.Cu]
|
||||||
|
Name=In12.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In13.Cu]
|
||||||
|
Name=In13.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In14.Cu]
|
||||||
|
Name=In14.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In15.Cu]
|
||||||
|
Name=In15.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In16.Cu]
|
||||||
|
Name=In16.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In17.Cu]
|
||||||
|
Name=In17.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In18.Cu]
|
||||||
|
Name=In18.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In19.Cu]
|
||||||
|
Name=In19.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In20.Cu]
|
||||||
|
Name=In20.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In21.Cu]
|
||||||
|
Name=In21.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In22.Cu]
|
||||||
|
Name=In22.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In23.Cu]
|
||||||
|
Name=In23.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In24.Cu]
|
||||||
|
Name=In24.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In25.Cu]
|
||||||
|
Name=In25.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In26.Cu]
|
||||||
|
Name=In26.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In27.Cu]
|
||||||
|
Name=In27.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In28.Cu]
|
||||||
|
Name=In28.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In29.Cu]
|
||||||
|
Name=In29.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In30.Cu]
|
||||||
|
Name=In30.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.B.Cu]
|
||||||
|
Name=B.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Dwgs.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Cmts.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco1.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco2.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Edge.Cuts]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Margin]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Rescue]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Netclasses]
|
||||||
|
[pcbnew/Netclasses/Default]
|
||||||
|
Name=Default
|
||||||
|
Clearance=0.2
|
||||||
|
TrackWidth=0.25
|
||||||
|
ViaDiameter=0.8
|
||||||
|
ViaDrill=0.4
|
||||||
|
uViaDiameter=0.3
|
||||||
|
uViaDrill=0.1
|
||||||
|
dPairWidth=0.2
|
||||||
|
dPairGap=0.25
|
||||||
|
dPairViaGap=0.25
|
@ -0,0 +1,755 @@
|
|||||||
|
EESchema Schematic File Version 4
|
||||||
|
EELAYER 30 0
|
||||||
|
EELAYER END
|
||||||
|
$Descr A4 11693 8268
|
||||||
|
encoding utf-8
|
||||||
|
Sheet 1 1
|
||||||
|
Title ""
|
||||||
|
Date ""
|
||||||
|
Rev ""
|
||||||
|
Comp ""
|
||||||
|
Comment1 ""
|
||||||
|
Comment2 ""
|
||||||
|
Comment3 ""
|
||||||
|
Comment4 ""
|
||||||
|
$EndDescr
|
||||||
|
Wire Wire Line
|
||||||
|
4350 3800 5800 3800
|
||||||
|
Connection ~ 4350 3800
|
||||||
|
Text Label 4900 4800 0 50 ~ 0
|
||||||
|
ROW7
|
||||||
|
Text Label 4900 4700 0 50 ~ 0
|
||||||
|
ROW6
|
||||||
|
Text Label 4900 4600 0 50 ~ 0
|
||||||
|
ROW5
|
||||||
|
Text Label 4900 4500 0 50 ~ 0
|
||||||
|
ROW4
|
||||||
|
Text Label 4900 4400 0 50 ~ 0
|
||||||
|
ROW3
|
||||||
|
Text Label 4900 4300 0 50 ~ 0
|
||||||
|
ROW2
|
||||||
|
Text Label 4900 4200 0 50 ~ 0
|
||||||
|
ROW1
|
||||||
|
Text Label 4900 4100 0 50 ~ 0
|
||||||
|
ROW0
|
||||||
|
Text Label 6850 4300 0 50 ~ 0
|
||||||
|
COL7
|
||||||
|
Text Label 6850 4200 0 50 ~ 0
|
||||||
|
COL6
|
||||||
|
Text Label 6850 4100 0 50 ~ 0
|
||||||
|
COL5
|
||||||
|
Text Label 6850 4000 0 50 ~ 0
|
||||||
|
COL4
|
||||||
|
Text Label 6850 3900 0 50 ~ 0
|
||||||
|
COL3
|
||||||
|
Text Label 6850 3800 0 50 ~ 0
|
||||||
|
COL2
|
||||||
|
Text Label 6850 3700 0 50 ~ 0
|
||||||
|
COL1
|
||||||
|
Text Label 6850 3600 0 50 ~ 0
|
||||||
|
COL0
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4800 5100 4800
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4700 5100 4700
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4600 5100 4600
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4500 5100 4500
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4400 5100 4400
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4300 5100 4300
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4200 5100 4200
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4100 5100 4100
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4800 5200 4900
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4700 5200 4800
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4600 5200 4700
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4500 5200 4600
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4400 5200 4500
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4300 5200 4400
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4200 5200 4300
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4100 5200 4200
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3600 7150 3600
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3700 7150 3700
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3800 7150 3800
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3900 7150 3900
|
||||||
|
Wire Wire Line
|
||||||
|
6800 4000 7150 4000
|
||||||
|
Wire Wire Line
|
||||||
|
7150 4100 6800 4100
|
||||||
|
Wire Wire Line
|
||||||
|
6800 4200 7150 4200
|
||||||
|
Wire Wire Line
|
||||||
|
7150 4300 6800 4300
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4300 7250 4400
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4200 7250 4300
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4100 7250 4200
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4000 7250 4100
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3900 7250 4000
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3800 7250 3900
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3700 7250 3800
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3600 7250 3700
|
||||||
|
Connection ~ 5400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
5400 3500 5400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3500 5400 3500
|
||||||
|
Wire Wire Line
|
||||||
|
4850 5050 4850 5100
|
||||||
|
Connection ~ 4850 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5800 4250 5800 4300
|
||||||
|
Connection ~ 5800 4250
|
||||||
|
Wire Wire Line
|
||||||
|
5400 5050 4850 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5400 4250 5400 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5800 4250 5400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
4850 5000 4850 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5800 4200 5800 4250
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR010
|
||||||
|
U 1 1 605B5E0F
|
||||||
|
P 5800 4100
|
||||||
|
F 0 "#PWR010" H 5800 3950 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 5817 4273 50 0000 C CNN
|
||||||
|
F 2 "" H 5800 4100 50 0001 C CNN
|
||||||
|
F 3 "" H 5800 4100 50 0001 C CNN
|
||||||
|
1 5800 4100
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3800 4350 3800
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3700 5800 3700
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3600 5800 3600
|
||||||
|
Wire Wire Line
|
||||||
|
4350 3150 4350 3800
|
||||||
|
NoConn ~ 2650 4000
|
||||||
|
NoConn ~ 2650 3900
|
||||||
|
NoConn ~ 2650 4900
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4800 3850 4800
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4700 3850 4700
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4600 3850 4600
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4500 3850 4500
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4300 3850 4300
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4200 3850 4200
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4100 3850 4100
|
||||||
|
$Comp
|
||||||
|
L Device:C C2
|
||||||
|
U 1 1 6058BC4A
|
||||||
|
P 4700 3300
|
||||||
|
F 0 "C2" V 4448 3300 50 0000 C CNN
|
||||||
|
F 1 "56Pf" V 4539 3300 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 4738 3150 50 0001 C CNN
|
||||||
|
F 3 "~" H 4700 3300 50 0001 C CNN
|
||||||
|
1 4700 3300
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4850 3150 4850 3050
|
||||||
|
Connection ~ 4850 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4950 3150 4850 3150
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR09
|
||||||
|
U 1 1 6058E1A9
|
||||||
|
P 4950 3150
|
||||||
|
F 0 "#PWR09" H 4950 2900 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4955 2977 50 0000 C CNN
|
||||||
|
F 2 "" H 4950 3150 50 0001 C CNN
|
||||||
|
F 3 "" H 4950 3150 50 0001 C CNN
|
||||||
|
1 4950 3150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4350 3150 4350 3000
|
||||||
|
Connection ~ 4350 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4550 3150 4550 3050
|
||||||
|
Connection ~ 4550 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4550 3150 4350 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4550 3300 4550 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4850 3300 4850 3150
|
||||||
|
$Comp
|
||||||
|
L Device:C C1
|
||||||
|
U 1 1 6058B545
|
||||||
|
P 4700 3050
|
||||||
|
F 0 "C1" V 4448 3050 50 0000 C CNN
|
||||||
|
F 1 "100Nf" V 4539 3050 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 4738 2900 50 0001 C CNN
|
||||||
|
F 3 "~" H 4700 3050 50 0001 C CNN
|
||||||
|
1 4700 3050
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR08
|
||||||
|
U 1 1 6058B250
|
||||||
|
P 4350 5400
|
||||||
|
F 0 "#PWR08" H 4350 5150 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4355 5227 50 0000 C CNN
|
||||||
|
F 2 "" H 4350 5400 50 0001 C CNN
|
||||||
|
F 3 "" H 4350 5400 50 0001 C CNN
|
||||||
|
1 4350 5400
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR07
|
||||||
|
U 1 1 6058AE17
|
||||||
|
P 4350 3000
|
||||||
|
F 0 "#PWR07" H 4350 2850 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 4367 3173 50 0000 C CNN
|
||||||
|
F 2 "" H 4350 3000 50 0001 C CNN
|
||||||
|
F 3 "" H 4350 3000 50 0001 C CNN
|
||||||
|
1 4350 3000
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2650 5450 2900 5450
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR05
|
||||||
|
U 1 1 60585FB5
|
||||||
|
P 2900 5450
|
||||||
|
F 0 "#PWR05" H 2900 5300 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 2917 5623 50 0000 C CNN
|
||||||
|
F 2 "" H 2900 5450 50 0001 C CNN
|
||||||
|
F 3 "" H 2900 5450 50 0001 C CNN
|
||||||
|
1 2900 5450
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR03
|
||||||
|
U 1 1 60585B88
|
||||||
|
P 2750 5200
|
||||||
|
F 0 "#PWR03" H 2750 4950 50 0001 C CNN
|
||||||
|
F 1 "GND" H 2755 5027 50 0000 C CNN
|
||||||
|
F 2 "" H 2750 5200 50 0001 C CNN
|
||||||
|
F 3 "" H 2750 5200 50 0001 C CNN
|
||||||
|
1 2750 5200
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 5000 2750 5000
|
||||||
|
Wire Wire Line
|
||||||
|
2750 5000 2750 5200
|
||||||
|
Wire Wire Line
|
||||||
|
2650 5100 2650 5450
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR04
|
||||||
|
U 1 1 60584796
|
||||||
|
P 2850 3000
|
||||||
|
F 0 "#PWR04" H 2850 2750 50 0001 C CNN
|
||||||
|
F 1 "GND" H 2855 2827 50 0000 C CNN
|
||||||
|
F 2 "" H 2850 3000 50 0001 C CNN
|
||||||
|
F 3 "" H 2850 3000 50 0001 C CNN
|
||||||
|
1 2850 3000
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR02
|
||||||
|
U 1 1 60584370
|
||||||
|
P 2650 3000
|
||||||
|
F 0 "#PWR02" H 2650 2850 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 2667 3173 50 0000 C CNN
|
||||||
|
F 2 "" H 2650 3000 50 0001 C CNN
|
||||||
|
F 3 "" H 2650 3000 50 0001 C CNN
|
||||||
|
1 2650 3000
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3400 2750 3400
|
||||||
|
Wire Wire Line
|
||||||
|
2750 3000 2850 3000
|
||||||
|
Wire Wire Line
|
||||||
|
2750 3400 2750 3000
|
||||||
|
Wire Wire Line
|
||||||
|
2650 3300 2650 3000
|
||||||
|
Text Label 2250 5100 0 50 ~ 0
|
||||||
|
IOVCC
|
||||||
|
Text Label 2250 5000 0 50 ~ 0
|
||||||
|
IOGND
|
||||||
|
Text Label 2250 4900 0 50 ~ 0
|
||||||
|
IOWR
|
||||||
|
Text Label 2250 4800 0 50 ~ 0
|
||||||
|
IOD7
|
||||||
|
Text Label 2250 4700 0 50 ~ 0
|
||||||
|
IOD6
|
||||||
|
Text Label 2250 4600 0 50 ~ 0
|
||||||
|
IOD5
|
||||||
|
Text Label 2250 4500 0 50 ~ 0
|
||||||
|
IOD4
|
||||||
|
Text Label 2250 4400 0 50 ~ 0
|
||||||
|
IOD3
|
||||||
|
Text Label 2250 4300 0 50 ~ 0
|
||||||
|
IOD2
|
||||||
|
Text Label 2250 4200 0 50 ~ 0
|
||||||
|
IOD1
|
||||||
|
Text Label 2250 4100 0 50 ~ 0
|
||||||
|
IOD0
|
||||||
|
Text Label 2250 4000 0 50 ~ 0
|
||||||
|
IOADDR4
|
||||||
|
Text Label 2250 3900 0 50 ~ 0
|
||||||
|
IOADDR3
|
||||||
|
Text Label 2250 3800 0 50 ~ 0
|
||||||
|
IOADDR2
|
||||||
|
Text Label 2250 3700 0 50 ~ 0
|
||||||
|
IOADDR1
|
||||||
|
Text Label 2250 3600 0 50 ~ 0
|
||||||
|
IOADDR0
|
||||||
|
Text Label 2250 3500 0 50 ~ 0
|
||||||
|
IOEN
|
||||||
|
Text Label 2250 3400 0 50 ~ 0
|
||||||
|
IOGND
|
||||||
|
Text Label 2250 3300 0 50 ~ 0
|
||||||
|
IOVCC
|
||||||
|
Wire Wire Line
|
||||||
|
2150 5100 2650 5100
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4900 2650 4900
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4000 2650 4000
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3900 2650 3900
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3300 2650 3300
|
||||||
|
$Comp
|
||||||
|
L Connector_Generic:Conn_01x19 IOBUS1
|
||||||
|
U 1 1 6057928D
|
||||||
|
P 1950 4200
|
||||||
|
F 0 "IOBUS1" H 1868 5317 50 0000 C CNN
|
||||||
|
F 1 "IO_Bus_conn" H 1868 5226 50 0000 C CNN
|
||||||
|
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x19_P2.54mm_Horizontal" H 1950 4200 50 0001 C CNN
|
||||||
|
F 3 "~" H 1950 4200 50 0001 C CNN
|
||||||
|
1 1950 4200
|
||||||
|
-1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L 74xx:74HC244 U1
|
||||||
|
U 1 1 605787CB
|
||||||
|
P 4350 4600
|
||||||
|
F 0 "U1" H 4350 5581 50 0000 C CNN
|
||||||
|
F 1 "74HC244" H 4350 5490 50 0000 C CNN
|
||||||
|
F 2 "Package_DIP:DIP-20_W7.62mm_LongPads" H 4350 4600 50 0001 C CNN
|
||||||
|
F 3 "http://www.nxp.com/documents/data_sheet/74HC_HCT244.pdf" H 4350 4600 50 0001 C CNN
|
||||||
|
1 4350 4600
|
||||||
|
-1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L 74xx:74LS138 U2
|
||||||
|
U 1 1 60577A7C
|
||||||
|
P 6300 3900
|
||||||
|
F 0 "U2" H 6300 4681 50 0000 C CNN
|
||||||
|
F 1 "74HC138" H 6300 4590 50 0000 C CNN
|
||||||
|
F 2 "Package_DIP:DIP-16_W7.62mm_LongPads" H 6300 3900 50 0001 C CNN
|
||||||
|
F 3 "http://www.ti.com/lit/gpn/sn74LS138" H 6300 3900 50 0001 C CNN
|
||||||
|
1 6300 3900
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4400 3850 4400
|
||||||
|
Text Notes 4000 1300 0 197 ~ 0
|
||||||
|
PAT80 Keyboard Controller
|
||||||
|
Text Notes 4000 2000 0 47 ~ 0
|
||||||
|
The PAT80 keyboard is seen from the computer as a readonly block of 64 bytes of memory\nin the I/O space mapped to the first 3 of the 5 I/O address available for every single I/O device.\n\nThe keyboard controller is a board plugged on the I/O backplane and connected to the matrix board with a\n34-pin female-to-female flat ribbon cable (e.g. the ones used by IBM PC floppy disk drives)\n\nThe joystick port is Atari-style: partially C64 and MSX compatible (supports a single button and no analog paddle)
|
||||||
|
Text Notes 4750 6100 0 47 ~ 0
|
||||||
|
Keyboard controller
|
||||||
|
$Comp
|
||||||
|
L Connector_Generic:Conn_02x17_Odd_Even J1
|
||||||
|
U 1 1 60ECCE47
|
||||||
|
P 9100 3650
|
||||||
|
F 0 "J1" H 9150 4667 50 0000 C CNN
|
||||||
|
F 1 "Keyboard connector" H 9150 4576 50 0000 C CNN
|
||||||
|
F 2 "Connector_PinHeader_2.54mm:PinHeader_2x17_P2.54mm_Vertical" H 9100 3650 50 0001 C CNN
|
||||||
|
F 3 "~" H 9100 3650 50 0001 C CNN
|
||||||
|
1 9100 3650
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
9400 2850 9400 2950
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4600 9600 4600
|
||||||
|
Connection ~ 9400 2950
|
||||||
|
Wire Wire Line
|
||||||
|
9400 2950 9400 3050
|
||||||
|
Connection ~ 9400 3050
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3050 9400 3150
|
||||||
|
Connection ~ 9400 3150
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3150 9400 3250
|
||||||
|
Connection ~ 9400 3250
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3250 9400 3350
|
||||||
|
Connection ~ 9400 3350
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3350 9400 3450
|
||||||
|
Connection ~ 9400 3450
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3450 9400 3550
|
||||||
|
Connection ~ 9400 3550
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3550 9400 3650
|
||||||
|
Connection ~ 9400 3650
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3650 9400 3750
|
||||||
|
Connection ~ 9400 3750
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3750 9400 3850
|
||||||
|
Connection ~ 9400 3850
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3850 9400 3950
|
||||||
|
Connection ~ 9400 3950
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3950 9400 4050
|
||||||
|
Connection ~ 9400 4050
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4050 9400 4150
|
||||||
|
Connection ~ 9400 4150
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4150 9400 4250
|
||||||
|
Connection ~ 9400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4250 9400 4350
|
||||||
|
Connection ~ 9400 4350
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4350 9400 4450
|
||||||
|
Connection ~ 9400 4450
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4450 9400 4600
|
||||||
|
Entry Wire Line
|
||||||
|
8500 2850 8400 2950
|
||||||
|
Entry Wire Line
|
||||||
|
8500 2950 8400 3050
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3050 8400 3150
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3150 8400 3250
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3250 8400 3350
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3350 8400 3450
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3450 8400 3550
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3550 8400 3650
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3750 8400 3850
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3850 8400 3950
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3950 8400 4050
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4050 8400 4150
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4150 8400 4250
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4250 8400 4350
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4350 8400 4450
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4450 8400 4550
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR017
|
||||||
|
U 1 1 60ECCE7F
|
||||||
|
P 9600 4600
|
||||||
|
F 0 "#PWR017" H 9600 4350 50 0001 C CNN
|
||||||
|
F 1 "GND" H 9605 4427 50 0000 C CNN
|
||||||
|
F 2 "" H 9600 4600 50 0001 C CNN
|
||||||
|
F 3 "" H 9600 4600 50 0001 C CNN
|
||||||
|
1 9600 4600
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
8500 2850 8900 2850
|
||||||
|
Wire Wire Line
|
||||||
|
8500 2950 8900 2950
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3050 8900 3050
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3150 8900 3150
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3250 8900 3250
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3350 8900 3350
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3450 8900 3450
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3550 8900 3550
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3750 8900 3750
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3850 8900 3850
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3950 8900 3950
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4050 8900 4050
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4150 8900 4150
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4250 8900 4250
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4350 8900 4350
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4450 8900 4450
|
||||||
|
Text Label 8600 2850 0 47 ~ 0
|
||||||
|
COL0
|
||||||
|
Text Label 8600 2950 0 47 ~ 0
|
||||||
|
COL1
|
||||||
|
Text Label 8600 3050 0 47 ~ 0
|
||||||
|
COL2
|
||||||
|
Text Label 8600 3150 0 47 ~ 0
|
||||||
|
COL3
|
||||||
|
Text Label 8600 3250 0 47 ~ 0
|
||||||
|
COL4
|
||||||
|
Text Label 8600 3350 0 47 ~ 0
|
||||||
|
COL5
|
||||||
|
Text Label 8600 3450 0 47 ~ 0
|
||||||
|
COL6
|
||||||
|
Text Label 8600 3550 0 47 ~ 0
|
||||||
|
COL7
|
||||||
|
Text Label 8600 3750 0 47 ~ 0
|
||||||
|
ROW0
|
||||||
|
Text Label 8600 3850 0 47 ~ 0
|
||||||
|
ROW1
|
||||||
|
Text Label 8600 3950 0 47 ~ 0
|
||||||
|
ROW2
|
||||||
|
Text Label 8600 4050 0 47 ~ 0
|
||||||
|
ROW3
|
||||||
|
Text Label 8600 4150 0 47 ~ 0
|
||||||
|
ROW4
|
||||||
|
Text Label 8600 4250 0 47 ~ 0
|
||||||
|
ROW5
|
||||||
|
Text Label 8600 4350 0 47 ~ 0
|
||||||
|
ROW6
|
||||||
|
Text Label 8600 4450 0 47 ~ 0
|
||||||
|
ROW7
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR014
|
||||||
|
U 1 1 6138B5E2
|
||||||
|
P 7950 3950
|
||||||
|
F 0 "#PWR014" H 7950 3800 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 7967 4123 50 0000 C CNN
|
||||||
|
F 2 "" H 7950 3950 50 0001 C CNN
|
||||||
|
F 3 "" H 7950 3950 50 0001 C CNN
|
||||||
|
1 7950 3950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
8900 3650 8450 3650
|
||||||
|
Wire Wire Line
|
||||||
|
8450 3650 8450 3750
|
||||||
|
Wire Wire Line
|
||||||
|
8450 3750 8150 3750
|
||||||
|
Wire Wire Line
|
||||||
|
8150 3750 8150 3950
|
||||||
|
Wire Wire Line
|
||||||
|
8150 3950 7950 3950
|
||||||
|
Text Label 8600 3650 0 47 ~ 0
|
||||||
|
MTXVCC
|
||||||
|
$Comp
|
||||||
|
L Connector:DB9_Female_MountingHoles J2
|
||||||
|
U 1 1 60C1B7D7
|
||||||
|
P 9250 5250
|
||||||
|
F 0 "J2" H 9430 5252 50 0000 L CNN
|
||||||
|
F 1 "Joystick connector" H 9430 5161 50 0000 L CNN
|
||||||
|
F 2 "Connector_Dsub:DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm" H 9250 5250 50 0001 C CNN
|
||||||
|
F 3 " ~" H 9250 5250 50 0001 C CNN
|
||||||
|
1 9250 5250
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Bus Line
|
||||||
|
7250 3650 8400 3650
|
||||||
|
Wire Bus Line
|
||||||
|
7250 5600 8100 5600
|
||||||
|
Wire Bus Line
|
||||||
|
5200 5750 8400 5750
|
||||||
|
Entry Wire Line
|
||||||
|
8100 5450 8200 5350
|
||||||
|
Text Label 8600 5350 0 50 ~ 0
|
||||||
|
COL7
|
||||||
|
Wire Wire Line
|
||||||
|
8950 4850 8500 4850
|
||||||
|
Entry Wire Line
|
||||||
|
8400 4950 8500 4850
|
||||||
|
Wire Bus Line
|
||||||
|
8100 5600 8100 5450
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5050 8500 5050
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5150 8500 5050
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5250 8500 5250
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5350 8500 5250
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5450 8500 5450
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5550 8500 5450
|
||||||
|
Text Label 8600 4850 0 50 ~ 0
|
||||||
|
ROW0
|
||||||
|
Text Label 8600 5050 0 50 ~ 0
|
||||||
|
ROW1
|
||||||
|
Text Label 8600 5250 0 50 ~ 0
|
||||||
|
ROW2
|
||||||
|
Text Label 8600 5450 0 50 ~ 0
|
||||||
|
ROW3
|
||||||
|
Wire Wire Line
|
||||||
|
8950 4950 8500 4950
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5050 8500 4950
|
||||||
|
Text Label 8600 4950 0 50 ~ 0
|
||||||
|
ROW4
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5150 8500 5150
|
||||||
|
Wire Wire Line
|
||||||
|
8500 5150 8500 5200
|
||||||
|
Wire Wire Line
|
||||||
|
8500 5200 7950 5200
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR015
|
||||||
|
U 1 1 60EC4111
|
||||||
|
P 7950 5200
|
||||||
|
F 0 "#PWR015" H 7950 5050 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 7967 5373 50 0000 C CNN
|
||||||
|
F 2 "" H 7950 5200 50 0001 C CNN
|
||||||
|
F 3 "" H 7950 5200 50 0001 C CNN
|
||||||
|
1 7950 5200
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR016
|
||||||
|
U 1 1 60EC5968
|
||||||
|
P 9250 5850
|
||||||
|
F 0 "#PWR016" H 9250 5600 50 0001 C CNN
|
||||||
|
F 1 "GND" H 9255 5677 50 0000 C CNN
|
||||||
|
F 2 "" H 9250 5850 50 0001 C CNN
|
||||||
|
F 3 "" H 9250 5850 50 0001 C CNN
|
||||||
|
1 9250 5850
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR012
|
||||||
|
U 1 1 60F7D3B6
|
||||||
|
P 6300 4950
|
||||||
|
F 0 "#PWR012" H 6300 4700 50 0001 C CNN
|
||||||
|
F 1 "GND" H 6305 4777 50 0000 C CNN
|
||||||
|
F 2 "" H 6300 4950 50 0001 C CNN
|
||||||
|
F 3 "" H 6300 4950 50 0001 C CNN
|
||||||
|
1 6300 4950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6300 4950 6300 4600
|
||||||
|
$Comp
|
||||||
|
L Device:C C4
|
||||||
|
U 1 1 60FB4E9D
|
||||||
|
P 6650 3100
|
||||||
|
F 0 "C4" V 6398 3100 50 0000 C CNN
|
||||||
|
F 1 "56Pf" V 6489 3100 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 6688 2950 50 0001 C CNN
|
||||||
|
F 3 "~" H 6650 3100 50 0001 C CNN
|
||||||
|
1 6650 3100
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6800 2950 6800 2850
|
||||||
|
Connection ~ 6800 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6900 2950 6800 2950
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR013
|
||||||
|
U 1 1 60FB4EA6
|
||||||
|
P 6900 2950
|
||||||
|
F 0 "#PWR013" H 6900 2700 50 0001 C CNN
|
||||||
|
F 1 "GND" H 6905 2777 50 0000 C CNN
|
||||||
|
F 2 "" H 6900 2950 50 0001 C CNN
|
||||||
|
F 3 "" H 6900 2950 50 0001 C CNN
|
||||||
|
1 6900 2950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6300 2950 6300 2800
|
||||||
|
Wire Wire Line
|
||||||
|
6500 2950 6500 2850
|
||||||
|
Connection ~ 6500 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6500 2950 6300 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6500 3100 6500 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3100 6800 2950
|
||||||
|
$Comp
|
||||||
|
L Device:C C3
|
||||||
|
U 1 1 60FB4EB3
|
||||||
|
P 6650 2850
|
||||||
|
F 0 "C3" V 6398 2850 50 0000 C CNN
|
||||||
|
F 1 "100Nf" V 6489 2850 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 6688 2700 50 0001 C CNN
|
||||||
|
F 3 "~" H 6650 2850 50 0001 C CNN
|
||||||
|
1 6650 2850
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR011
|
||||||
|
U 1 1 60FB4EB9
|
||||||
|
P 6300 2800
|
||||||
|
F 0 "#PWR011" H 6300 2650 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 6317 2973 50 0000 C CNN
|
||||||
|
F 2 "" H 6300 2800 50 0001 C CNN
|
||||||
|
F 3 "" H 6300 2800 50 0001 C CNN
|
||||||
|
1 6300 2800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6300 2950 6300 3300
|
||||||
|
Connection ~ 6300 2950
|
||||||
|
Wire Wire Line
|
||||||
|
8200 5350 8950 5350
|
||||||
|
Wire Bus Line
|
||||||
|
8400 2950 8400 3650
|
||||||
|
Wire Bus Line
|
||||||
|
5200 4200 5200 5750
|
||||||
|
Wire Bus Line
|
||||||
|
7250 3650 7250 5600
|
||||||
|
Wire Bus Line
|
||||||
|
8400 3850 8400 5750
|
||||||
|
Text Notes 7350 7550 0 118 ~ 0
|
||||||
|
Pat80 Keyboard and Joystick Controller
|
||||||
|
$EndSCHEMATC
|
@ -0,0 +1,755 @@
|
|||||||
|
EESchema Schematic File Version 4
|
||||||
|
EELAYER 30 0
|
||||||
|
EELAYER END
|
||||||
|
$Descr A4 11693 8268
|
||||||
|
encoding utf-8
|
||||||
|
Sheet 1 1
|
||||||
|
Title ""
|
||||||
|
Date ""
|
||||||
|
Rev ""
|
||||||
|
Comp ""
|
||||||
|
Comment1 ""
|
||||||
|
Comment2 ""
|
||||||
|
Comment3 ""
|
||||||
|
Comment4 ""
|
||||||
|
$EndDescr
|
||||||
|
Wire Wire Line
|
||||||
|
4350 3800 5800 3800
|
||||||
|
Connection ~ 4350 3800
|
||||||
|
Text Label 4900 4800 0 50 ~ 0
|
||||||
|
ROW7
|
||||||
|
Text Label 4900 4700 0 50 ~ 0
|
||||||
|
ROW6
|
||||||
|
Text Label 4900 4600 0 50 ~ 0
|
||||||
|
ROW5
|
||||||
|
Text Label 4900 4500 0 50 ~ 0
|
||||||
|
ROW4
|
||||||
|
Text Label 4900 4400 0 50 ~ 0
|
||||||
|
ROW3
|
||||||
|
Text Label 4900 4300 0 50 ~ 0
|
||||||
|
ROW2
|
||||||
|
Text Label 4900 4200 0 50 ~ 0
|
||||||
|
ROW1
|
||||||
|
Text Label 4900 4100 0 50 ~ 0
|
||||||
|
ROW0
|
||||||
|
Text Label 6850 4300 0 50 ~ 0
|
||||||
|
COL7
|
||||||
|
Text Label 6850 4200 0 50 ~ 0
|
||||||
|
COL6
|
||||||
|
Text Label 6850 4100 0 50 ~ 0
|
||||||
|
COL5
|
||||||
|
Text Label 6850 4000 0 50 ~ 0
|
||||||
|
COL4
|
||||||
|
Text Label 6850 3900 0 50 ~ 0
|
||||||
|
COL3
|
||||||
|
Text Label 6850 3800 0 50 ~ 0
|
||||||
|
COL2
|
||||||
|
Text Label 6850 3700 0 50 ~ 0
|
||||||
|
COL1
|
||||||
|
Text Label 6850 3600 0 50 ~ 0
|
||||||
|
COL0
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4800 5100 4800
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4700 5100 4700
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4600 5100 4600
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4500 5100 4500
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4400 5100 4400
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4300 5100 4300
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4200 5100 4200
|
||||||
|
Wire Wire Line
|
||||||
|
4850 4100 5100 4100
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4800 5200 4900
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4700 5200 4800
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4600 5200 4700
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4500 5200 4600
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4400 5200 4500
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4300 5200 4400
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4200 5200 4300
|
||||||
|
Entry Wire Line
|
||||||
|
5100 4100 5200 4200
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3600 7150 3600
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3700 7150 3700
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3800 7150 3800
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3900 7150 3900
|
||||||
|
Wire Wire Line
|
||||||
|
6800 4000 7150 4000
|
||||||
|
Wire Wire Line
|
||||||
|
7150 4100 6800 4100
|
||||||
|
Wire Wire Line
|
||||||
|
6800 4200 7150 4200
|
||||||
|
Wire Wire Line
|
||||||
|
7150 4300 6800 4300
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4300 7250 4400
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4200 7250 4300
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4100 7250 4200
|
||||||
|
Entry Wire Line
|
||||||
|
7150 4000 7250 4100
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3900 7250 4000
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3800 7250 3900
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3700 7250 3800
|
||||||
|
Entry Wire Line
|
||||||
|
7150 3600 7250 3700
|
||||||
|
Connection ~ 5400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
5400 3500 5400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3500 5400 3500
|
||||||
|
Wire Wire Line
|
||||||
|
4850 5050 4850 5100
|
||||||
|
Connection ~ 4850 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5800 4250 5800 4300
|
||||||
|
Connection ~ 5800 4250
|
||||||
|
Wire Wire Line
|
||||||
|
5400 5050 4850 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5400 4250 5400 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5800 4250 5400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
4850 5000 4850 5050
|
||||||
|
Wire Wire Line
|
||||||
|
5800 4200 5800 4250
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR010
|
||||||
|
U 1 1 605B5E0F
|
||||||
|
P 5800 4100
|
||||||
|
F 0 "#PWR010" H 5800 3950 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 5817 4273 50 0000 C CNN
|
||||||
|
F 2 "" H 5800 4100 50 0001 C CNN
|
||||||
|
F 3 "" H 5800 4100 50 0001 C CNN
|
||||||
|
1 5800 4100
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3800 4350 3800
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3700 5800 3700
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3600 5800 3600
|
||||||
|
Wire Wire Line
|
||||||
|
4350 3150 4350 3800
|
||||||
|
NoConn ~ 2650 4000
|
||||||
|
NoConn ~ 2650 3900
|
||||||
|
NoConn ~ 2650 4900
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4800 3850 4800
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4700 3850 4700
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4600 3850 4600
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4500 3850 4500
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4300 3850 4300
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4200 3850 4200
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4100 3850 4100
|
||||||
|
$Comp
|
||||||
|
L Device:C C2
|
||||||
|
U 1 1 6058BC4A
|
||||||
|
P 4700 3300
|
||||||
|
F 0 "C2" V 4448 3300 50 0000 C CNN
|
||||||
|
F 1 "56Pf" V 4539 3300 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 4738 3150 50 0001 C CNN
|
||||||
|
F 3 "~" H 4700 3300 50 0001 C CNN
|
||||||
|
1 4700 3300
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4850 3150 4850 3050
|
||||||
|
Connection ~ 4850 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4950 3150 4850 3150
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR09
|
||||||
|
U 1 1 6058E1A9
|
||||||
|
P 4950 3150
|
||||||
|
F 0 "#PWR09" H 4950 2900 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4955 2977 50 0000 C CNN
|
||||||
|
F 2 "" H 4950 3150 50 0001 C CNN
|
||||||
|
F 3 "" H 4950 3150 50 0001 C CNN
|
||||||
|
1 4950 3150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4350 3150 4350 3000
|
||||||
|
Connection ~ 4350 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4550 3150 4550 3050
|
||||||
|
Connection ~ 4550 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4550 3150 4350 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4550 3300 4550 3150
|
||||||
|
Wire Wire Line
|
||||||
|
4850 3300 4850 3150
|
||||||
|
$Comp
|
||||||
|
L Device:C C1
|
||||||
|
U 1 1 6058B545
|
||||||
|
P 4700 3050
|
||||||
|
F 0 "C1" V 4448 3050 50 0000 C CNN
|
||||||
|
F 1 "100Nf" V 4539 3050 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 4738 2900 50 0001 C CNN
|
||||||
|
F 3 "~" H 4700 3050 50 0001 C CNN
|
||||||
|
1 4700 3050
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR08
|
||||||
|
U 1 1 6058B250
|
||||||
|
P 4350 5400
|
||||||
|
F 0 "#PWR08" H 4350 5150 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4355 5227 50 0000 C CNN
|
||||||
|
F 2 "" H 4350 5400 50 0001 C CNN
|
||||||
|
F 3 "" H 4350 5400 50 0001 C CNN
|
||||||
|
1 4350 5400
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR07
|
||||||
|
U 1 1 6058AE17
|
||||||
|
P 4350 3000
|
||||||
|
F 0 "#PWR07" H 4350 2850 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 4367 3173 50 0000 C CNN
|
||||||
|
F 2 "" H 4350 3000 50 0001 C CNN
|
||||||
|
F 3 "" H 4350 3000 50 0001 C CNN
|
||||||
|
1 4350 3000
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2650 5450 2900 5450
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR05
|
||||||
|
U 1 1 60585FB5
|
||||||
|
P 2900 5450
|
||||||
|
F 0 "#PWR05" H 2900 5300 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 2917 5623 50 0000 C CNN
|
||||||
|
F 2 "" H 2900 5450 50 0001 C CNN
|
||||||
|
F 3 "" H 2900 5450 50 0001 C CNN
|
||||||
|
1 2900 5450
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR03
|
||||||
|
U 1 1 60585B88
|
||||||
|
P 2750 5200
|
||||||
|
F 0 "#PWR03" H 2750 4950 50 0001 C CNN
|
||||||
|
F 1 "GND" H 2755 5027 50 0000 C CNN
|
||||||
|
F 2 "" H 2750 5200 50 0001 C CNN
|
||||||
|
F 3 "" H 2750 5200 50 0001 C CNN
|
||||||
|
1 2750 5200
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 5000 2750 5000
|
||||||
|
Wire Wire Line
|
||||||
|
2750 5000 2750 5200
|
||||||
|
Wire Wire Line
|
||||||
|
2650 5100 2650 5450
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR04
|
||||||
|
U 1 1 60584796
|
||||||
|
P 2850 3000
|
||||||
|
F 0 "#PWR04" H 2850 2750 50 0001 C CNN
|
||||||
|
F 1 "GND" H 2855 2827 50 0000 C CNN
|
||||||
|
F 2 "" H 2850 3000 50 0001 C CNN
|
||||||
|
F 3 "" H 2850 3000 50 0001 C CNN
|
||||||
|
1 2850 3000
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR02
|
||||||
|
U 1 1 60584370
|
||||||
|
P 2650 3000
|
||||||
|
F 0 "#PWR02" H 2650 2850 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 2667 3173 50 0000 C CNN
|
||||||
|
F 2 "" H 2650 3000 50 0001 C CNN
|
||||||
|
F 3 "" H 2650 3000 50 0001 C CNN
|
||||||
|
1 2650 3000
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3400 2750 3400
|
||||||
|
Wire Wire Line
|
||||||
|
2750 3000 2850 3000
|
||||||
|
Wire Wire Line
|
||||||
|
2750 3400 2750 3000
|
||||||
|
Wire Wire Line
|
||||||
|
2650 3300 2650 3000
|
||||||
|
Text Label 2250 5100 0 50 ~ 0
|
||||||
|
IOVCC
|
||||||
|
Text Label 2250 5000 0 50 ~ 0
|
||||||
|
IOGND
|
||||||
|
Text Label 2250 4900 0 50 ~ 0
|
||||||
|
IOWR
|
||||||
|
Text Label 2250 4800 0 50 ~ 0
|
||||||
|
IOD7
|
||||||
|
Text Label 2250 4700 0 50 ~ 0
|
||||||
|
IOD6
|
||||||
|
Text Label 2250 4600 0 50 ~ 0
|
||||||
|
IOD5
|
||||||
|
Text Label 2250 4500 0 50 ~ 0
|
||||||
|
IOD4
|
||||||
|
Text Label 2250 4400 0 50 ~ 0
|
||||||
|
IOD3
|
||||||
|
Text Label 2250 4300 0 50 ~ 0
|
||||||
|
IOD2
|
||||||
|
Text Label 2250 4200 0 50 ~ 0
|
||||||
|
IOD1
|
||||||
|
Text Label 2250 4100 0 50 ~ 0
|
||||||
|
IOD0
|
||||||
|
Text Label 2250 4000 0 50 ~ 0
|
||||||
|
IOADDR4
|
||||||
|
Text Label 2250 3900 0 50 ~ 0
|
||||||
|
IOADDR3
|
||||||
|
Text Label 2250 3800 0 50 ~ 0
|
||||||
|
IOADDR2
|
||||||
|
Text Label 2250 3700 0 50 ~ 0
|
||||||
|
IOADDR1
|
||||||
|
Text Label 2250 3600 0 50 ~ 0
|
||||||
|
IOADDR0
|
||||||
|
Text Label 2250 3500 0 50 ~ 0
|
||||||
|
IOEN
|
||||||
|
Text Label 2250 3400 0 50 ~ 0
|
||||||
|
IOGND
|
||||||
|
Text Label 2250 3300 0 50 ~ 0
|
||||||
|
IOVCC
|
||||||
|
Wire Wire Line
|
||||||
|
2150 5100 2650 5100
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4900 2650 4900
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4000 2650 4000
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3900 2650 3900
|
||||||
|
Wire Wire Line
|
||||||
|
2150 3300 2650 3300
|
||||||
|
$Comp
|
||||||
|
L Connector_Generic:Conn_01x19 IOBUS1
|
||||||
|
U 1 1 6057928D
|
||||||
|
P 1950 4200
|
||||||
|
F 0 "IOBUS1" H 1868 5317 50 0000 C CNN
|
||||||
|
F 1 "IO_Bus_conn" H 1868 5226 50 0000 C CNN
|
||||||
|
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x19_P2.54mm_Horizontal" H 1950 4200 50 0001 C CNN
|
||||||
|
F 3 "~" H 1950 4200 50 0001 C CNN
|
||||||
|
1 1950 4200
|
||||||
|
-1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L 74xx:74HC244 U1
|
||||||
|
U 1 1 605787CB
|
||||||
|
P 4350 4600
|
||||||
|
F 0 "U1" H 4350 5581 50 0000 C CNN
|
||||||
|
F 1 "74HC244" H 4350 5490 50 0000 C CNN
|
||||||
|
F 2 "Package_DIP:DIP-20_W7.62mm_LongPads" H 4350 4600 50 0001 C CNN
|
||||||
|
F 3 "http://www.nxp.com/documents/data_sheet/74HC_HCT244.pdf" H 4350 4600 50 0001 C CNN
|
||||||
|
1 4350 4600
|
||||||
|
-1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L 74xx:74LS138 U2
|
||||||
|
U 1 1 60577A7C
|
||||||
|
P 6300 3900
|
||||||
|
F 0 "U2" H 6300 4681 50 0000 C CNN
|
||||||
|
F 1 "74HC138" H 6300 4590 50 0000 C CNN
|
||||||
|
F 2 "Package_DIP:DIP-16_W7.62mm_LongPads" H 6300 3900 50 0001 C CNN
|
||||||
|
F 3 "http://www.ti.com/lit/gpn/sn74LS138" H 6300 3900 50 0001 C CNN
|
||||||
|
1 6300 3900
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
2150 4400 3850 4400
|
||||||
|
Text Notes 4600 1300 0 197 ~ 0
|
||||||
|
PAT80 Keyboard
|
||||||
|
Text Notes 4000 2000 0 47 ~ 0
|
||||||
|
The PAT80 keyboard is seen from the computer as a readonly block of 64 bytes of memory\nin the I/O space mapped to the first 3 of the 5 I/O address available for every single I/O device.\n\nThe keyboard controller is a board plugged on the I/O backplane and connected to the matrix board with a\n34-pin female-to-female flat ribbon cable (e.g. the ones used by IBM PC floppy disk drives)\n\nThe joystick port is Atari-style: partially C64 and MSX compatible (supports a single button and no analog paddle)
|
||||||
|
Text Notes 4750 6100 0 47 ~ 0
|
||||||
|
Keyboard controller
|
||||||
|
$Comp
|
||||||
|
L Connector_Generic:Conn_02x17_Odd_Even J1
|
||||||
|
U 1 1 60ECCE47
|
||||||
|
P 9100 3650
|
||||||
|
F 0 "J1" H 9150 4667 50 0000 C CNN
|
||||||
|
F 1 "Keyboard connector" H 9150 4576 50 0000 C CNN
|
||||||
|
F 2 "Connector_PinHeader_2.54mm:PinHeader_2x17_P2.54mm_Vertical" H 9100 3650 50 0001 C CNN
|
||||||
|
F 3 "~" H 9100 3650 50 0001 C CNN
|
||||||
|
1 9100 3650
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
9400 2850 9400 2950
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4600 9600 4600
|
||||||
|
Connection ~ 9400 2950
|
||||||
|
Wire Wire Line
|
||||||
|
9400 2950 9400 3050
|
||||||
|
Connection ~ 9400 3050
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3050 9400 3150
|
||||||
|
Connection ~ 9400 3150
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3150 9400 3250
|
||||||
|
Connection ~ 9400 3250
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3250 9400 3350
|
||||||
|
Connection ~ 9400 3350
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3350 9400 3450
|
||||||
|
Connection ~ 9400 3450
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3450 9400 3550
|
||||||
|
Connection ~ 9400 3550
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3550 9400 3650
|
||||||
|
Connection ~ 9400 3650
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3650 9400 3750
|
||||||
|
Connection ~ 9400 3750
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3750 9400 3850
|
||||||
|
Connection ~ 9400 3850
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3850 9400 3950
|
||||||
|
Connection ~ 9400 3950
|
||||||
|
Wire Wire Line
|
||||||
|
9400 3950 9400 4050
|
||||||
|
Connection ~ 9400 4050
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4050 9400 4150
|
||||||
|
Connection ~ 9400 4150
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4150 9400 4250
|
||||||
|
Connection ~ 9400 4250
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4250 9400 4350
|
||||||
|
Connection ~ 9400 4350
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4350 9400 4450
|
||||||
|
Connection ~ 9400 4450
|
||||||
|
Wire Wire Line
|
||||||
|
9400 4450 9400 4600
|
||||||
|
Entry Wire Line
|
||||||
|
8500 2850 8400 2950
|
||||||
|
Entry Wire Line
|
||||||
|
8500 2950 8400 3050
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3050 8400 3150
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3150 8400 3250
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3250 8400 3350
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3350 8400 3450
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3450 8400 3550
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3550 8400 3650
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3750 8400 3850
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3850 8400 3950
|
||||||
|
Entry Wire Line
|
||||||
|
8500 3950 8400 4050
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4050 8400 4150
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4150 8400 4250
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4250 8400 4350
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4350 8400 4450
|
||||||
|
Entry Wire Line
|
||||||
|
8500 4450 8400 4550
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR017
|
||||||
|
U 1 1 60ECCE7F
|
||||||
|
P 9600 4600
|
||||||
|
F 0 "#PWR017" H 9600 4350 50 0001 C CNN
|
||||||
|
F 1 "GND" H 9605 4427 50 0000 C CNN
|
||||||
|
F 2 "" H 9600 4600 50 0001 C CNN
|
||||||
|
F 3 "" H 9600 4600 50 0001 C CNN
|
||||||
|
1 9600 4600
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
8500 2850 8900 2850
|
||||||
|
Wire Wire Line
|
||||||
|
8500 2950 8900 2950
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3050 8900 3050
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3150 8900 3150
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3250 8900 3250
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3350 8900 3350
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3450 8900 3450
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3550 8900 3550
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3750 8900 3750
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3850 8900 3850
|
||||||
|
Wire Wire Line
|
||||||
|
8500 3950 8900 3950
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4050 8900 4050
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4150 8900 4150
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4250 8900 4250
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4350 8900 4350
|
||||||
|
Wire Wire Line
|
||||||
|
8500 4450 8900 4450
|
||||||
|
Text Label 8600 2850 0 47 ~ 0
|
||||||
|
COL0
|
||||||
|
Text Label 8600 2950 0 47 ~ 0
|
||||||
|
COL1
|
||||||
|
Text Label 8600 3050 0 47 ~ 0
|
||||||
|
COL2
|
||||||
|
Text Label 8600 3150 0 47 ~ 0
|
||||||
|
COL3
|
||||||
|
Text Label 8600 3250 0 47 ~ 0
|
||||||
|
COL4
|
||||||
|
Text Label 8600 3350 0 47 ~ 0
|
||||||
|
COL5
|
||||||
|
Text Label 8600 3450 0 47 ~ 0
|
||||||
|
COL6
|
||||||
|
Text Label 8600 3550 0 47 ~ 0
|
||||||
|
COL7
|
||||||
|
Text Label 8600 3750 0 47 ~ 0
|
||||||
|
ROW0
|
||||||
|
Text Label 8600 3850 0 47 ~ 0
|
||||||
|
ROW1
|
||||||
|
Text Label 8600 3950 0 47 ~ 0
|
||||||
|
ROW2
|
||||||
|
Text Label 8600 4050 0 47 ~ 0
|
||||||
|
ROW3
|
||||||
|
Text Label 8600 4150 0 47 ~ 0
|
||||||
|
ROW4
|
||||||
|
Text Label 8600 4250 0 47 ~ 0
|
||||||
|
ROW5
|
||||||
|
Text Label 8600 4350 0 47 ~ 0
|
||||||
|
ROW6
|
||||||
|
Text Label 8600 4450 0 47 ~ 0
|
||||||
|
ROW7
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR014
|
||||||
|
U 1 1 6138B5E2
|
||||||
|
P 7950 3950
|
||||||
|
F 0 "#PWR014" H 7950 3800 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 7967 4123 50 0000 C CNN
|
||||||
|
F 2 "" H 7950 3950 50 0001 C CNN
|
||||||
|
F 3 "" H 7950 3950 50 0001 C CNN
|
||||||
|
1 7950 3950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
8900 3650 8450 3650
|
||||||
|
Wire Wire Line
|
||||||
|
8450 3650 8450 3750
|
||||||
|
Wire Wire Line
|
||||||
|
8450 3750 8150 3750
|
||||||
|
Wire Wire Line
|
||||||
|
8150 3750 8150 3950
|
||||||
|
Wire Wire Line
|
||||||
|
8150 3950 7950 3950
|
||||||
|
Text Label 8600 3650 0 47 ~ 0
|
||||||
|
MTXVCC
|
||||||
|
$Comp
|
||||||
|
L Connector:DB9_Female_MountingHoles J2
|
||||||
|
U 1 1 60C1B7D7
|
||||||
|
P 9250 5250
|
||||||
|
F 0 "J2" H 9430 5252 50 0000 L CNN
|
||||||
|
F 1 "Joystick connector" H 9430 5161 50 0000 L CNN
|
||||||
|
F 2 "Connector_Dsub:DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm" H 9250 5250 50 0001 C CNN
|
||||||
|
F 3 " ~" H 9250 5250 50 0001 C CNN
|
||||||
|
1 9250 5250
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Bus Line
|
||||||
|
7250 3650 8400 3650
|
||||||
|
Wire Bus Line
|
||||||
|
7250 5600 8100 5600
|
||||||
|
Wire Bus Line
|
||||||
|
5200 5750 8400 5750
|
||||||
|
Entry Wire Line
|
||||||
|
8100 5450 8200 5350
|
||||||
|
Text Label 8600 5350 0 50 ~ 0
|
||||||
|
COL7
|
||||||
|
Wire Wire Line
|
||||||
|
8950 4850 8500 4850
|
||||||
|
Entry Wire Line
|
||||||
|
8400 4950 8500 4850
|
||||||
|
Wire Bus Line
|
||||||
|
8100 5600 8100 5450
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5050 8500 5050
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5150 8500 5050
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5250 8500 5250
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5350 8500 5250
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5450 8500 5450
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5550 8500 5450
|
||||||
|
Text Label 8600 4850 0 50 ~ 0
|
||||||
|
ROW0
|
||||||
|
Text Label 8600 5050 0 50 ~ 0
|
||||||
|
ROW1
|
||||||
|
Text Label 8600 5250 0 50 ~ 0
|
||||||
|
ROW2
|
||||||
|
Text Label 8600 5450 0 50 ~ 0
|
||||||
|
ROW3
|
||||||
|
Wire Wire Line
|
||||||
|
8950 4950 8500 4950
|
||||||
|
Entry Wire Line
|
||||||
|
8400 5050 8500 4950
|
||||||
|
Text Label 8600 4950 0 50 ~ 0
|
||||||
|
ROW4
|
||||||
|
Wire Wire Line
|
||||||
|
8950 5150 8500 5150
|
||||||
|
Wire Wire Line
|
||||||
|
8500 5150 8500 5200
|
||||||
|
Wire Wire Line
|
||||||
|
8500 5200 7950 5200
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR015
|
||||||
|
U 1 1 60EC4111
|
||||||
|
P 7950 5200
|
||||||
|
F 0 "#PWR015" H 7950 5050 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 7967 5373 50 0000 C CNN
|
||||||
|
F 2 "" H 7950 5200 50 0001 C CNN
|
||||||
|
F 3 "" H 7950 5200 50 0001 C CNN
|
||||||
|
1 7950 5200
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR016
|
||||||
|
U 1 1 60EC5968
|
||||||
|
P 9250 5850
|
||||||
|
F 0 "#PWR016" H 9250 5600 50 0001 C CNN
|
||||||
|
F 1 "GND" H 9255 5677 50 0000 C CNN
|
||||||
|
F 2 "" H 9250 5850 50 0001 C CNN
|
||||||
|
F 3 "" H 9250 5850 50 0001 C CNN
|
||||||
|
1 9250 5850
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR012
|
||||||
|
U 1 1 60F7D3B6
|
||||||
|
P 6300 4950
|
||||||
|
F 0 "#PWR012" H 6300 4700 50 0001 C CNN
|
||||||
|
F 1 "GND" H 6305 4777 50 0000 C CNN
|
||||||
|
F 2 "" H 6300 4950 50 0001 C CNN
|
||||||
|
F 3 "" H 6300 4950 50 0001 C CNN
|
||||||
|
1 6300 4950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6300 4950 6300 4600
|
||||||
|
$Comp
|
||||||
|
L Device:C C4
|
||||||
|
U 1 1 60FB4E9D
|
||||||
|
P 6650 3100
|
||||||
|
F 0 "C4" V 6398 3100 50 0000 C CNN
|
||||||
|
F 1 "56Pf" V 6489 3100 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 6688 2950 50 0001 C CNN
|
||||||
|
F 3 "~" H 6650 3100 50 0001 C CNN
|
||||||
|
1 6650 3100
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6800 2950 6800 2850
|
||||||
|
Connection ~ 6800 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6900 2950 6800 2950
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR013
|
||||||
|
U 1 1 60FB4EA6
|
||||||
|
P 6900 2950
|
||||||
|
F 0 "#PWR013" H 6900 2700 50 0001 C CNN
|
||||||
|
F 1 "GND" H 6905 2777 50 0000 C CNN
|
||||||
|
F 2 "" H 6900 2950 50 0001 C CNN
|
||||||
|
F 3 "" H 6900 2950 50 0001 C CNN
|
||||||
|
1 6900 2950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6300 2950 6300 2800
|
||||||
|
Wire Wire Line
|
||||||
|
6500 2950 6500 2850
|
||||||
|
Connection ~ 6500 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6500 2950 6300 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6500 3100 6500 2950
|
||||||
|
Wire Wire Line
|
||||||
|
6800 3100 6800 2950
|
||||||
|
$Comp
|
||||||
|
L Device:C C3
|
||||||
|
U 1 1 60FB4EB3
|
||||||
|
P 6650 2850
|
||||||
|
F 0 "C3" V 6398 2850 50 0000 C CNN
|
||||||
|
F 1 "100Nf" V 6489 2850 50 0000 C CNN
|
||||||
|
F 2 "Capacitor_THT:CP_Radial_Tantal_D6.0mm_P5.00mm" H 6688 2700 50 0001 C CNN
|
||||||
|
F 3 "~" H 6650 2850 50 0001 C CNN
|
||||||
|
1 6650 2850
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR011
|
||||||
|
U 1 1 60FB4EB9
|
||||||
|
P 6300 2800
|
||||||
|
F 0 "#PWR011" H 6300 2650 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 6317 2973 50 0000 C CNN
|
||||||
|
F 2 "" H 6300 2800 50 0001 C CNN
|
||||||
|
F 3 "" H 6300 2800 50 0001 C CNN
|
||||||
|
1 6300 2800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
6300 2950 6300 3300
|
||||||
|
Connection ~ 6300 2950
|
||||||
|
Wire Wire Line
|
||||||
|
8200 5350 8950 5350
|
||||||
|
Wire Bus Line
|
||||||
|
8400 2950 8400 3650
|
||||||
|
Wire Bus Line
|
||||||
|
5200 4200 5200 5750
|
||||||
|
Wire Bus Line
|
||||||
|
7250 3650 7250 5600
|
||||||
|
Wire Bus Line
|
||||||
|
8400 3850 8400 5750
|
||||||
|
Text Notes 7350 7550 0 118 ~ 0
|
||||||
|
Pat80 Keyboard and Joystick Controller
|
||||||
|
$EndSCHEMATC
|
@ -0,0 +1,3 @@
|
|||||||
|
(sym_lib_table
|
||||||
|
(lib (name pat80)(type Legacy)(uri /home/danieleverducci/git/pato-z80-home-computer/kicad-symbols/pat80.lib)(options "")(descr ""))
|
||||||
|
)
|
@ -1,10 +1,29 @@
|
|||||||
/**
|
/**
|
||||||
* Terminal interface.
|
* Terminal interface.
|
||||||
|
*
|
||||||
|
* * @language: AVR ASM
|
||||||
|
*
|
||||||
|
* This file is part of Pat80 IO Devices.
|
||||||
|
*
|
||||||
|
* Pat80 IO Devices is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 IO Devices is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 IO Devices. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*
|
||||||
* This sketch allow an Arduino to be used as a terminal to log into Pat80.
|
* This sketch allow an Arduino to be used as a terminal to log into Pat80.
|
||||||
* The Arduino is connected to the Pat80 I/O bus and to the terminal computer via USB.
|
* The Arduino is connected to the Pat80 I/O bus and to the terminal computer via USB.
|
||||||
* The Python Terminal Monitor or the Arduino IDE serial monitor is used to send
|
* The Python Terminal Monitor or the Arduino IDE serial monitor is used to send
|
||||||
* and receive commands to/from the Z80.
|
* and receive commands to/from the Z80.
|
||||||
*
|
*
|
||||||
* Seen from the Pat80, the terminal interface has two registers:
|
* Seen from the Pat80, the terminal interface has two registers:
|
||||||
* DATA Register at addr 0x00 (\RS) contains the last received byte from the pc
|
* DATA Register at addr 0x00 (\RS) contains the last received byte from the pc
|
||||||
* DATA_AVAILABLE Register at addr 0x01 (RS) contains the number of bytes in the buffer,
|
* DATA_AVAILABLE Register at addr 0x01 (RS) contains the number of bytes in the buffer,
|
||||||
|
@ -4,6 +4,23 @@
|
|||||||
""" @package docstring
|
""" @package docstring
|
||||||
ARDUINO PARALLEL TERMINAL EMULATOR
|
ARDUINO PARALLEL TERMINAL EMULATOR
|
||||||
|
|
||||||
|
|
||||||
|
* This file is part of Pat80 IO Devices.
|
||||||
|
*
|
||||||
|
* Pat80 IO Devices is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 IO Devices is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 IO Devices. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
Connect the arduino to a Pat80 I/O port.
|
Connect the arduino to a Pat80 I/O port.
|
||||||
Flash /arduino/arduino_terminal firmware into the Arduino.
|
Flash /arduino/arduino_terminal firmware into the Arduino.
|
||||||
|
18
pat80-io-devices/uart/hardware/LICENSE.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# UART
|
||||||
|
This folder contains the Pat80 UART decoding logic, schematics and PCB layout.
|
||||||
|
|
||||||
|
## License
|
||||||
|
All files contained in this folder are part of Pat80 Blueprints.
|
||||||
|
|
||||||
|
Pat80 Blueprints is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Pat80 Blueprints is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTYwithout even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Pat80 Blueprints. If not, see <http://www.gnu.org/licenses/>.
|
336
pat80-io-devices/uart/hardware/uart-decoding-logic.circ
Normal file
@ -0,0 +1,336 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<project source="2.7.1" version="1.0">
|
||||||
|
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
|
||||||
|
|
||||||
|
<lib desc="#Wiring" name="0">
|
||||||
|
<tool name="Splitter">
|
||||||
|
<a name="fanout" val="4"/>
|
||||||
|
<a name="incoming" val="4"/>
|
||||||
|
</tool>
|
||||||
|
</lib>
|
||||||
|
<lib desc="#Gates" name="1">
|
||||||
|
<tool name="AND Gate">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
<a name="size" val="30"/>
|
||||||
|
<a name="inputs" val="2"/>
|
||||||
|
</tool>
|
||||||
|
</lib>
|
||||||
|
<lib desc="#Plexers" name="2"/>
|
||||||
|
<lib desc="#Arithmetic" name="3"/>
|
||||||
|
<lib desc="#Memory" name="4">
|
||||||
|
<tool name="Counter">
|
||||||
|
<a name="width" val="4"/>
|
||||||
|
<a name="max" val="0xf"/>
|
||||||
|
<a name="trigger" val="falling"/>
|
||||||
|
<a name="label" val="Clock demultiplier"/>
|
||||||
|
</tool>
|
||||||
|
<tool name="Shift Register">
|
||||||
|
<a name="parallel" val="false"/>
|
||||||
|
</tool>
|
||||||
|
</lib>
|
||||||
|
<lib desc="#I/O" name="5"/>
|
||||||
|
<lib desc="#Base" name="6">
|
||||||
|
<tool name="Text Tool">
|
||||||
|
<a name="text" val=""/>
|
||||||
|
<a name="font" val="SansSerif plain 12"/>
|
||||||
|
<a name="halign" val="center"/>
|
||||||
|
<a name="valign" val="base"/>
|
||||||
|
</tool>
|
||||||
|
</lib>
|
||||||
|
<main name="main"/>
|
||||||
|
<options>
|
||||||
|
<a name="gateUndefined" val="ignore"/>
|
||||||
|
<a name="simlimit" val="1000"/>
|
||||||
|
<a name="simrand" val="0"/>
|
||||||
|
</options>
|
||||||
|
<mappings>
|
||||||
|
<tool lib="6" map="Button2" name="Menu Tool"/>
|
||||||
|
<tool lib="6" map="Button3" name="Menu Tool"/>
|
||||||
|
<tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
|
||||||
|
</mappings>
|
||||||
|
<toolbar>
|
||||||
|
<tool lib="6" name="Poke Tool"/>
|
||||||
|
<tool lib="6" name="Edit Tool"/>
|
||||||
|
<tool lib="6" name="Text Tool">
|
||||||
|
<a name="text" val=""/>
|
||||||
|
<a name="font" val="SansSerif plain 12"/>
|
||||||
|
<a name="halign" val="center"/>
|
||||||
|
<a name="valign" val="base"/>
|
||||||
|
</tool>
|
||||||
|
<sep/>
|
||||||
|
<tool lib="0" name="Pin">
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</tool>
|
||||||
|
<tool lib="0" name="Pin">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="labelloc" val="east"/>
|
||||||
|
</tool>
|
||||||
|
<tool lib="1" name="NOT Gate"/>
|
||||||
|
<tool lib="1" name="AND Gate"/>
|
||||||
|
<tool lib="1" name="OR Gate"/>
|
||||||
|
</toolbar>
|
||||||
|
<circuit name="main">
|
||||||
|
<a name="circuit" val="main"/>
|
||||||
|
<a name="clabel" val=""/>
|
||||||
|
<a name="clabelup" val="east"/>
|
||||||
|
<a name="clabelfont" val="SansSerif plain 12"/>
|
||||||
|
<wire from="(400,430)" to="(400,500)"/>
|
||||||
|
<wire from="(610,290)" to="(660,290)"/>
|
||||||
|
<wire from="(350,370)" to="(350,500)"/>
|
||||||
|
<wire from="(210,490)" to="(210,500)"/>
|
||||||
|
<wire from="(880,30)" to="(880,350)"/>
|
||||||
|
<wire from="(290,370)" to="(290,380)"/>
|
||||||
|
<wire from="(420,520)" to="(540,520)"/>
|
||||||
|
<wire from="(330,370)" to="(330,380)"/>
|
||||||
|
<wire from="(370,370)" to="(370,380)"/>
|
||||||
|
<wire from="(870,430)" to="(870,460)"/>
|
||||||
|
<wire from="(390,100)" to="(390,180)"/>
|
||||||
|
<wire from="(420,180)" to="(420,210)"/>
|
||||||
|
<wire from="(440,80)" to="(440,110)"/>
|
||||||
|
<wire from="(410,370)" to="(410,400)"/>
|
||||||
|
<wire from="(180,410)" to="(180,500)"/>
|
||||||
|
<wire from="(250,380)" to="(290,380)"/>
|
||||||
|
<wire from="(200,30)" to="(880,30)"/>
|
||||||
|
<wire from="(280,90)" to="(320,90)"/>
|
||||||
|
<wire from="(290,180)" to="(330,180)"/>
|
||||||
|
<wire from="(400,170)" to="(440,170)"/>
|
||||||
|
<wire from="(350,100)" to="(350,200)"/>
|
||||||
|
<wire from="(490,300)" to="(580,300)"/>
|
||||||
|
<wire from="(860,410)" to="(880,410)"/>
|
||||||
|
<wire from="(410,110)" to="(440,110)"/>
|
||||||
|
<wire from="(520,140)" to="(550,140)"/>
|
||||||
|
<wire from="(380,400)" to="(410,400)"/>
|
||||||
|
<wire from="(320,190)" to="(340,190)"/>
|
||||||
|
<wire from="(300,530)" to="(320,530)"/>
|
||||||
|
<wire from="(410,480)" to="(430,480)"/>
|
||||||
|
<wire from="(800,420)" to="(830,420)"/>
|
||||||
|
<wire from="(150,470)" to="(150,520)"/>
|
||||||
|
<wire from="(490,90)" to="(500,90)"/>
|
||||||
|
<wire from="(210,490)" to="(220,490)"/>
|
||||||
|
<wire from="(870,430)" to="(880,430)"/>
|
||||||
|
<wire from="(440,80)" to="(500,80)"/>
|
||||||
|
<wire from="(200,490)" to="(200,500)"/>
|
||||||
|
<wire from="(240,490)" to="(240,500)"/>
|
||||||
|
<wire from="(270,520)" to="(320,520)"/>
|
||||||
|
<wire from="(260,390)" to="(310,390)"/>
|
||||||
|
<wire from="(790,390)" to="(790,460)"/>
|
||||||
|
<wire from="(410,100)" to="(410,110)"/>
|
||||||
|
<wire from="(290,260)" to="(290,270)"/>
|
||||||
|
<wire from="(200,150)" to="(200,300)"/>
|
||||||
|
<wire from="(220,470)" to="(220,490)"/>
|
||||||
|
<wire from="(530,100)" to="(530,120)"/>
|
||||||
|
<wire from="(390,410)" to="(430,410)"/>
|
||||||
|
<wire from="(380,100)" to="(380,190)"/>
|
||||||
|
<wire from="(340,100)" to="(340,190)"/>
|
||||||
|
<wire from="(330,410)" to="(330,500)"/>
|
||||||
|
<wire from="(810,370)" to="(830,370)"/>
|
||||||
|
<wire from="(390,180)" to="(420,180)"/>
|
||||||
|
<wire from="(660,180)" to="(660,290)"/>
|
||||||
|
<wire from="(400,430)" to="(430,430)"/>
|
||||||
|
<wire from="(510,100)" to="(510,260)"/>
|
||||||
|
<wire from="(440,170)" to="(440,210)"/>
|
||||||
|
<wire from="(330,380)" to="(340,380)"/>
|
||||||
|
<wire from="(200,150)" to="(280,150)"/>
|
||||||
|
<wire from="(200,490)" to="(210,490)"/>
|
||||||
|
<wire from="(280,90)" to="(280,150)"/>
|
||||||
|
<wire from="(530,120)" to="(610,120)"/>
|
||||||
|
<wire from="(860,430)" to="(870,430)"/>
|
||||||
|
<wire from="(790,460)" to="(870,460)"/>
|
||||||
|
<wire from="(340,380)" to="(340,500)"/>
|
||||||
|
<wire from="(190,490)" to="(190,500)"/>
|
||||||
|
<wire from="(230,490)" to="(230,500)"/>
|
||||||
|
<wire from="(200,80)" to="(320,80)"/>
|
||||||
|
<wire from="(340,200)" to="(340,210)"/>
|
||||||
|
<wire from="(380,200)" to="(380,210)"/>
|
||||||
|
<wire from="(310,370)" to="(310,390)"/>
|
||||||
|
<wire from="(390,370)" to="(390,390)"/>
|
||||||
|
<wire from="(880,380)" to="(880,410)"/>
|
||||||
|
<wire from="(290,180)" to="(290,260)"/>
|
||||||
|
<wire from="(330,100)" to="(330,180)"/>
|
||||||
|
<wire from="(200,300)" to="(490,300)"/>
|
||||||
|
<wire from="(370,100)" to="(370,200)"/>
|
||||||
|
<wire from="(830,330)" to="(830,370)"/>
|
||||||
|
<wire from="(640,130)" to="(660,130)"/>
|
||||||
|
<wire from="(150,570)" to="(300,570)"/>
|
||||||
|
<wire from="(380,190)" to="(400,190)"/>
|
||||||
|
<wire from="(580,140)" to="(610,140)"/>
|
||||||
|
<wire from="(260,390)" to="(260,500)"/>
|
||||||
|
<wire from="(150,530)" to="(150,570)"/>
|
||||||
|
<wire from="(430,370)" to="(430,410)"/>
|
||||||
|
<wire from="(150,520)" to="(170,520)"/>
|
||||||
|
<wire from="(520,100)" to="(520,140)"/>
|
||||||
|
<wire from="(610,310)" to="(810,310)"/>
|
||||||
|
<wire from="(340,200)" to="(350,200)"/>
|
||||||
|
<wire from="(360,380)" to="(370,380)"/>
|
||||||
|
<wire from="(410,110)" to="(410,160)"/>
|
||||||
|
<wire from="(460,160)" to="(460,210)"/>
|
||||||
|
<wire from="(190,490)" to="(200,490)"/>
|
||||||
|
<wire from="(230,490)" to="(240,490)"/>
|
||||||
|
<wire from="(250,380)" to="(250,500)"/>
|
||||||
|
<wire from="(400,100)" to="(400,170)"/>
|
||||||
|
<wire from="(140,80)" to="(200,80)"/>
|
||||||
|
<wire from="(410,160)" to="(460,160)"/>
|
||||||
|
<wire from="(220,490)" to="(220,500)"/>
|
||||||
|
<wire from="(320,190)" to="(320,210)"/>
|
||||||
|
<wire from="(400,190)" to="(400,210)"/>
|
||||||
|
<wire from="(410,480)" to="(410,500)"/>
|
||||||
|
<wire from="(800,390)" to="(800,420)"/>
|
||||||
|
<wire from="(490,90)" to="(490,300)"/>
|
||||||
|
<wire from="(390,410)" to="(390,500)"/>
|
||||||
|
<wire from="(660,130)" to="(660,150)"/>
|
||||||
|
<wire from="(290,260)" to="(510,260)"/>
|
||||||
|
<wire from="(380,400)" to="(380,500)"/>
|
||||||
|
<wire from="(180,410)" to="(330,410)"/>
|
||||||
|
<wire from="(300,570)" to="(640,570)"/>
|
||||||
|
<wire from="(370,390)" to="(390,390)"/>
|
||||||
|
<wire from="(180,370)" to="(180,410)"/>
|
||||||
|
<wire from="(360,100)" to="(360,210)"/>
|
||||||
|
<wire from="(370,390)" to="(370,500)"/>
|
||||||
|
<wire from="(300,530)" to="(300,570)"/>
|
||||||
|
<wire from="(150,530)" to="(170,530)"/>
|
||||||
|
<wire from="(200,30)" to="(200,80)"/>
|
||||||
|
<wire from="(370,200)" to="(380,200)"/>
|
||||||
|
<wire from="(220,490)" to="(230,490)"/>
|
||||||
|
<wire from="(360,380)" to="(360,500)"/>
|
||||||
|
<comp lib="0" loc="(410,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(290,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="1" loc="(880,380)" name="NOT Gate">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="4" loc="(320,80)" name="Shift Register"/>
|
||||||
|
<comp lib="1" loc="(660,180)" name="NOT Gate">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(880,430)" name="Clock">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(180,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
<a name="label" val="Wr"/>
|
||||||
|
<a name="labelloc" val="north"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(150,470)" name="Power"/>
|
||||||
|
<comp lib="0" loc="(350,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(400,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(430,430)" name="Ground"/>
|
||||||
|
<comp lib="0" loc="(340,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(440,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="4" loc="(170,520)" name="Shift Register"/>
|
||||||
|
<comp lib="0" loc="(360,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(420,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(310,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="4" loc="(320,520)" name="Shift Register"/>
|
||||||
|
<comp lib="0" loc="(330,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(390,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(370,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="4" loc="(500,80)" name="Shift Register"/>
|
||||||
|
<comp lib="0" loc="(430,370)" name="Pin">
|
||||||
|
<a name="facing" val="south"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(140,80)" name="Pin">
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
<a name="label" val="Rx"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="1" loc="(580,140)" name="NOT Gate"/>
|
||||||
|
<comp lib="1" loc="(640,130)" name="AND Gate">
|
||||||
|
<a name="size" val="30"/>
|
||||||
|
<a name="inputs" val="2"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(540,520)" name="Pin">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
<a name="label" val="Tx"/>
|
||||||
|
<a name="labelloc" val="east"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="1" loc="(830,420)" name="AND Gate">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
<a name="size" val="30"/>
|
||||||
|
<a name="inputs" val="2"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(320,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="1" loc="(580,300)" name="AND Gate">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
<a name="size" val="30"/>
|
||||||
|
<a name="inputs" val="2"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(220,470)" name="Power"/>
|
||||||
|
<comp lib="4" loc="(810,370)" name="Counter">
|
||||||
|
<a name="width" val="4"/>
|
||||||
|
<a name="max" val="0xf"/>
|
||||||
|
<a name="trigger" val="falling"/>
|
||||||
|
<a name="label" val="Clock demultiplier"/>
|
||||||
|
<a name="labelfont" val="SansSerif plain 10"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(380,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(460,210)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(290,270)" name="Pin">
|
||||||
|
<a name="facing" val="north"/>
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
<a name="label" val="Clear"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(430,480)" name="Power"/>
|
||||||
|
<comp lib="0" loc="(830,330)" name="Splitter">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
<a name="fanout" val="4"/>
|
||||||
|
<a name="incoming" val="4"/>
|
||||||
|
<a name="appear" val="right"/>
|
||||||
|
</comp>
|
||||||
|
</circuit>
|
||||||
|
</project>
|
87
pat80-io-devices/uart/hardware/wip_delay.circ
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<project source="2.7.1" version="1.0">
|
||||||
|
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
|
||||||
|
|
||||||
|
<lib desc="#Wiring" name="0"/>
|
||||||
|
<lib desc="#Gates" name="1">
|
||||||
|
<tool name="NAND Gate">
|
||||||
|
<a name="size" val="30"/>
|
||||||
|
<a name="inputs" val="2"/>
|
||||||
|
</tool>
|
||||||
|
</lib>
|
||||||
|
<lib desc="#Plexers" name="2"/>
|
||||||
|
<lib desc="#Arithmetic" name="3"/>
|
||||||
|
<lib desc="#Memory" name="4"/>
|
||||||
|
<lib desc="#I/O" name="5"/>
|
||||||
|
<lib desc="#Base" name="6">
|
||||||
|
<tool name="Text Tool">
|
||||||
|
<a name="text" val=""/>
|
||||||
|
<a name="font" val="SansSerif plain 12"/>
|
||||||
|
<a name="halign" val="center"/>
|
||||||
|
<a name="valign" val="base"/>
|
||||||
|
</tool>
|
||||||
|
</lib>
|
||||||
|
<main name="main"/>
|
||||||
|
<options>
|
||||||
|
<a name="gateUndefined" val="ignore"/>
|
||||||
|
<a name="simlimit" val="1000"/>
|
||||||
|
<a name="simrand" val="0"/>
|
||||||
|
</options>
|
||||||
|
<mappings>
|
||||||
|
<tool lib="6" map="Button2" name="Menu Tool"/>
|
||||||
|
<tool lib="6" map="Button3" name="Menu Tool"/>
|
||||||
|
<tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
|
||||||
|
</mappings>
|
||||||
|
<toolbar>
|
||||||
|
<tool lib="6" name="Poke Tool"/>
|
||||||
|
<tool lib="6" name="Edit Tool"/>
|
||||||
|
<tool lib="6" name="Text Tool">
|
||||||
|
<a name="text" val=""/>
|
||||||
|
<a name="font" val="SansSerif plain 12"/>
|
||||||
|
<a name="halign" val="center"/>
|
||||||
|
<a name="valign" val="base"/>
|
||||||
|
</tool>
|
||||||
|
<sep/>
|
||||||
|
<tool lib="0" name="Pin">
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
</tool>
|
||||||
|
<tool lib="0" name="Pin">
|
||||||
|
<a name="facing" val="west"/>
|
||||||
|
<a name="output" val="true"/>
|
||||||
|
<a name="labelloc" val="east"/>
|
||||||
|
</tool>
|
||||||
|
<tool lib="1" name="NOT Gate"/>
|
||||||
|
<tool lib="1" name="AND Gate"/>
|
||||||
|
<tool lib="1" name="OR Gate"/>
|
||||||
|
</toolbar>
|
||||||
|
<circuit name="main">
|
||||||
|
<a name="circuit" val="main"/>
|
||||||
|
<a name="clabel" val=""/>
|
||||||
|
<a name="clabelup" val="east"/>
|
||||||
|
<a name="clabelfont" val="SansSerif plain 12"/>
|
||||||
|
<wire from="(180,160)" to="(340,160)"/>
|
||||||
|
<wire from="(160,210)" to="(170,210)"/>
|
||||||
|
<wire from="(180,150)" to="(180,160)"/>
|
||||||
|
<wire from="(190,130)" to="(230,130)"/>
|
||||||
|
<wire from="(260,140)" to="(260,250)"/>
|
||||||
|
<wire from="(340,130)" to="(340,160)"/>
|
||||||
|
<wire from="(260,140)" to="(300,140)"/>
|
||||||
|
<wire from="(250,120)" to="(300,120)"/>
|
||||||
|
<wire from="(170,150)" to="(170,210)"/>
|
||||||
|
<wire from="(160,250)" to="(260,250)"/>
|
||||||
|
<comp lib="0" loc="(160,210)" name="Clock"/>
|
||||||
|
<comp lib="0" loc="(160,250)" name="Pin">
|
||||||
|
<a name="tristate" val="false"/>
|
||||||
|
<a name="label" val="Rx"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="0" loc="(230,130)" name="Splitter">
|
||||||
|
<a name="fanout" val="8"/>
|
||||||
|
<a name="incoming" val="8"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="1" loc="(340,130)" name="NAND Gate">
|
||||||
|
<a name="size" val="30"/>
|
||||||
|
<a name="inputs" val="2"/>
|
||||||
|
</comp>
|
||||||
|
<comp lib="4" loc="(190,130)" name="Counter"/>
|
||||||
|
</circuit>
|
||||||
|
</project>
|
@ -1,4 +1,21 @@
|
|||||||
/**
|
/**
|
||||||
|
*
|
||||||
|
* This file is part of Pat80 Utils.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 Utils. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*
|
||||||
* SN76489 sound chip test
|
* SN76489 sound chip test
|
||||||
*
|
*
|
||||||
* DATA BUS IS: 2, 3, 4, 5, 6, 7, 8, 9 (NOTE: 2 is D0, but D0 is the MSB)
|
* DATA BUS IS: 2, 3, 4, 5, 6, 7, 8, 9 (NOTE: 2 is D0, but D0 is the MSB)
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
/**
|
||||||
|
* This file is part of Pat80 IO Devices.
|
||||||
|
*
|
||||||
|
* Pat80 IO Devices is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 IO Devices is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 IO Devices. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Composite pal adapter test.
|
||||||
|
* This sketch makes an Arduino send test data to tha Pat80 composite video pal adapter.
|
||||||
|
* Connect the video adapter directly to Arduino
|
||||||
|
*/
|
||||||
|
|
||||||
|
const byte CLK = 11; // output active low
|
||||||
|
const byte RS = 12; // output low = DATA register, high = COMMAND register
|
||||||
|
const byte BUSY = 13; // Input, Active low
|
||||||
|
// DATA BUS (Output, active high): 3, 4, 5, 6, 7, 8, 9, 10;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
DDRD = DDRD | B11111000; // Port D (arduino pins 3 to 7) is output. In or to preserve serial pins and interrupt pin
|
||||||
|
DDRB = B00000111; // Port B (0,1,2) = pins 8,9,10 output
|
||||||
|
pinMode(CLK, OUTPUT);
|
||||||
|
pinMode(RS, OUTPUT);
|
||||||
|
pinMode(BUSY, INPUT);
|
||||||
|
|
||||||
|
digitalWrite(CLK, HIGH); // Inactive clock
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
delay(1000);
|
||||||
|
send();
|
||||||
|
}
|
||||||
|
|
||||||
|
void send() {
|
||||||
|
// Random char
|
||||||
|
char c = random(32, 126);
|
||||||
|
// Wait for BUSY to become inactive (HIGH)
|
||||||
|
//while(digitalRead(BUSY) == LOW) {}
|
||||||
|
|
||||||
|
// Split byte to two parts and write to ports
|
||||||
|
PORTD = c << 3;
|
||||||
|
PORTB = c >> 5;
|
||||||
|
|
||||||
|
// Clock pulse
|
||||||
|
digitalWrite(CLK, LOW);
|
||||||
|
delay(100);
|
||||||
|
digitalWrite(CLK, HIGH);
|
||||||
|
}
|
@ -1,4 +1,23 @@
|
|||||||
/* ************** EEPROM PROGRAMMER ******************
|
/* ************** EEPROM PROGRAMMER ******************
|
||||||
|
* This file is part of Pat80 Utils.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 Utils. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
NOTE: This is not working and I'm not sure if it will be fixed or removed,
|
||||||
|
as I'm actually using an USB programmer.
|
||||||
|
|
||||||
|
|
||||||
HARDWARE:
|
HARDWARE:
|
||||||
|
|
||||||
|
@ -1,4 +1,23 @@
|
|||||||
/* HD44780 Character display debugger */
|
/*
|
||||||
|
* This file is part of Pat80 Utils.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 Utils. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* HD44780 Character display debugger
|
||||||
|
* Used to intercept data sent from Pat80 to character display
|
||||||
|
*/
|
||||||
|
|
||||||
#define EN 2
|
#define EN 2
|
||||||
const byte DATA_BUS[] = {10, 9, 8, 7, 6, 5, 4, 3};
|
const byte DATA_BUS[] = {10, 9, 8, 7, 6, 5, 4, 3};
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
#include <TVout.h>
|
|
||||||
#include <TVoutfonts/fontALL.h>
|
|
||||||
TVout TV;
|
|
||||||
|
|
||||||
// Pins
|
|
||||||
#define RS 5
|
|
||||||
#define EN 4
|
|
||||||
const byte DATA [] = {A5, A4, A3, A2, 13, 12, 11, 10};
|
|
||||||
|
|
||||||
|
|
||||||
bool clkState = false;
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
Serial.begin(57600);
|
|
||||||
Serial.println("PAL debugger");
|
|
||||||
|
|
||||||
// Init comm pins
|
|
||||||
pinMode(EN, INPUT);
|
|
||||||
pinMode(RS, INPUT);
|
|
||||||
for(int pin = 0; pin < 8; pin++) {
|
|
||||||
pinMode(DATA[pin], INPUT);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Init VGA
|
|
||||||
TV.begin(PAL,120,96);
|
|
||||||
TV.select_font(font4x6);
|
|
||||||
|
|
||||||
TV.println("TV init");
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
bool newClkState = digitalRead(EN);
|
|
||||||
if (newClkState == false && clkState == true) {
|
|
||||||
// Falling edge: read data from bus
|
|
||||||
onClk();
|
|
||||||
}
|
|
||||||
clkState = newClkState;
|
|
||||||
}
|
|
||||||
|
|
||||||
void onClk() {
|
|
||||||
bool isCommand = digitalRead(RS);
|
|
||||||
if (isCommand) {
|
|
||||||
//onCommandReceived();
|
|
||||||
onDataReceived();
|
|
||||||
} else {
|
|
||||||
onDataReceived();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void onCommandReceived() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void onDataReceived() {
|
|
||||||
char ch = readByte();
|
|
||||||
TV.print(ch);
|
|
||||||
Serial.println(ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
byte readByte() {
|
|
||||||
unsigned int data = 0;
|
|
||||||
for(int pin=0; pin < 8; pin++) {
|
|
||||||
byte b = digitalRead(DATA[pin]) ? 1 : 0;
|
|
||||||
data = (data << 1) + b; // Shifta di 1 e aggiunge il bit corrente. Serve per ricostruire il numero da binario
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of Pat80 Utils.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 Utils. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* PS/2 Keyboard controller debugger
|
||||||
|
* Used to intercept data decoded from Pat80 PS/2 keyboard adapter
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define EN 2
|
||||||
|
const byte DATA_BUS[] = {10, 9, 8, 7, 6, 5, 4, 3};
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
pinMode(EN, INPUT);
|
||||||
|
for(int pin=0; pin < 8; pin++) {
|
||||||
|
pinMode(DATA_BUS[pin], INPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.begin(57600);
|
||||||
|
Serial.println("PS/2 keyboard controller debugger");
|
||||||
|
Serial.println("DATA BUS HEX EN");
|
||||||
|
|
||||||
|
attachInterrupt(digitalPinToInterrupt(EN), onClk, FALLING);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {}
|
||||||
|
|
||||||
|
void onClk() {
|
||||||
|
unsigned int data = 0;
|
||||||
|
for(int pin=0; pin < 8; pin++) {
|
||||||
|
byte b = digitalRead(DATA_BUS[pin]) ? 1 : 0;
|
||||||
|
Serial.print(b);
|
||||||
|
data = (data << 1) + b; // Shifta di 1 e aggiunge il bit corrente. Serve per ricostruire il numero da binario
|
||||||
|
}
|
||||||
|
|
||||||
|
char output[50] = {};
|
||||||
|
sprintf(output, " 0x%02x %c",
|
||||||
|
data,
|
||||||
|
digitalRead(EN) ? 'D' : 'I'
|
||||||
|
);
|
||||||
|
Serial.println(output);
|
||||||
|
}
|
@ -1,7 +1,24 @@
|
|||||||
/**
|
/**
|
||||||
|
*
|
||||||
|
* This file is part of Pat80 Utils.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 Utils. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*
|
||||||
* SPI SD-Card test sketch
|
* SPI SD-Card test sketch
|
||||||
* Reads the first 128 bytes from sdcard and prints it out as ascii characters in serial monitor at 9200 baud
|
* Reads the first 128 bytes from sdcard and prints it out as ascii characters in serial monitor at 9200 baud
|
||||||
*
|
*
|
||||||
* Implementation of the specification at http://elm-chan.org/docs/mmc/mmc_e.html
|
* Implementation of the specification at http://elm-chan.org/docs/mmc/mmc_e.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,4 +1,20 @@
|
|||||||
/* ************** DEBUGGER Zilog Z80 ******************
|
/* ************** DEBUGGER Zilog Z80 ******************
|
||||||
|
*
|
||||||
|
* This file is part of Pat80 Utils.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Pat80 Utils is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY * without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Pat80 Utils. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
HARDWARE:
|
HARDWARE:
|
||||||
|
|
||||||
|