Ready for github publishing
This commit is contained in:
parent
1c77bc82ac
commit
aa844687c8
47
NOTES.md
Normal file
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`
|
103
README.md
103
README.md
@ -1,47 +1,60 @@
|
|||||||
# 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)
|
||||||
|
|
||||||
|
## 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
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/composite_graphics.jpg
Normal file
BIN
assets/media/photos/composite_graphics.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
BIN
assets/media/photos/composite_text.jpg
Normal file
BIN
assets/media/photos/composite_text.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 143 KiB |
BIN
assets/media/photos/keyboard_before_etching.jpg
Normal file
BIN
assets/media/photos/keyboard_before_etching.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 107 KiB |
BIN
assets/media/photos/keyboard_layout.jpg
Normal file
BIN
assets/media/photos/keyboard_layout.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 69 KiB |
BIN
assets/media/photos/memory_monitor.jpg
Normal file
BIN
assets/media/photos/memory_monitor.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
18
kicad-symbols/LICENSE.md
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/>.
|
18
pat80-computer/hardware/LICENSE.md
Normal file
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/>.
|
Binary file not shown.
Binary file not shown.
21
pat80-computer/hardware/logisim/LICENSE.md
Normal file
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
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/>.
|
@ -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,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,6 +1,24 @@
|
|||||||
; Keyboard driver
|
; Keyboard driver
|
||||||
; Direct keyboard grid control (direct keys addressing, without keyboard controller)
|
; 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
|
||||||
|
@ -1,4 +1,22 @@
|
|||||||
; PS/2 Keyboard driver
|
; 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/
|
; Based on PS/2 protocol as documented on http://www.lucadavidian.com/2017/11/15/interfacing-ps2-keyboard-to-a-microcontroller/
|
||||||
;
|
;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
; PS/2 Keycode Mode 2 to ASCII mapping table
|
; PS/2 Keycode Mode 2 to ASCII mapping table
|
||||||
|
; @language: Z80 ASM
|
||||||
;
|
;
|
||||||
; Keycodes 0 to 83
|
; Keycodes 0 to 83
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
@ -558,17 +576,17 @@ monitor_copyTermToAppMem:
|
|||||||
; Exits when the first value differs from the written value (this may be caused by a bad ram
|
; 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.
|
; block or the start of rom in memory map). Prints the last good address on exit.
|
||||||
; monitor_memtest:
|
; monitor_memtest:
|
||||||
; ld bc, MON_COMMAND_MEMTEST + 1 ; autocomplete command
|
; ld bc, MON_COMMAND_MEMTEST + 1 ; autocomplete command
|
||||||
; call Sys_Print
|
; call Sys_Print
|
||||||
; ; Prints intro
|
; ; Prints intro
|
||||||
; ld bc, MON_RAMTEST_INTRO
|
; ld bc, MON_RAMTEST_INTRO
|
||||||
; call Sys_Print
|
; call Sys_Print
|
||||||
; ; Starts checking
|
; ; Starts checking
|
||||||
; ld hl, MEM_END
|
; ld hl, MEM_END
|
||||||
; monitor_memtest_loop:
|
; monitor_memtest_loop:
|
||||||
; ; Save current byte value for later restore
|
; ; Save current byte value for later restore
|
||||||
; ld c, (hl)
|
; ld c, (hl)
|
||||||
; ; Write 0xFF
|
; ; Write 0xFF
|
||||||
; ld a, 0xFF
|
; ld a, 0xFF
|
||||||
; ld (hl), a
|
; ld (hl), a
|
||||||
; ; Read and compare 0xFF
|
; ; Read and compare 0xFF
|
||||||
@ -583,8 +601,8 @@ monitor_copyTermToAppMem:
|
|||||||
; cp 0x00
|
; cp 0x00
|
||||||
; jp nz, monitor_memtest_badram
|
; jp nz, monitor_memtest_badram
|
||||||
; ; Memory byte is good, restore previous value
|
; ; Memory byte is good, restore previous value
|
||||||
; ld (hl), c
|
; ld (hl), c
|
||||||
; ; Next one
|
; ; Next one
|
||||||
; dec hl
|
; dec hl
|
||||||
; jp monitor_memtest_loop
|
; jp monitor_memtest_loop
|
||||||
; monitor_memtest_badram:
|
; monitor_memtest_badram:
|
||||||
@ -592,15 +610,15 @@ monitor_copyTermToAppMem:
|
|||||||
; ld bc, MON_RAMTEST_RAMSTART
|
; ld bc, MON_RAMTEST_RAMSTART
|
||||||
; call Sys_Print
|
; call Sys_Print
|
||||||
; ; Print last valid memory addr
|
; ; Print last valid memory addr
|
||||||
; inc hl
|
; inc hl
|
||||||
; ld a, h
|
; ld a, h
|
||||||
; call monitor_printHexByte
|
; call monitor_printHexByte
|
||||||
; ld a, l
|
; ld a, l
|
||||||
; call monitor_printHexByte
|
; call monitor_printHexByte
|
||||||
; ; Newline
|
; ; Newline
|
||||||
; ld a, 10
|
; ld a, 10
|
||||||
; call Sys_Printc
|
; call Sys_Printc
|
||||||
; ; Back to menu
|
; ; Back to menu
|
||||||
; jp monitor_main_loop
|
; 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
|
||||||
|
@ -2,7 +2,25 @@
|
|||||||
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
||||||
; * Character generator module *
|
; * 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
|
; 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).
|
; and adds it on the framebuffer in the position indicated by POS_COARSE (Y).
|
||||||
|
|
||||||
|
@ -2,7 +2,25 @@
|
|||||||
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
||||||
; * Communication module *
|
; * 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
|
; This module manages the communication between Pat80 and
|
||||||
; the video adapter.
|
; the video adapter.
|
||||||
|
|
||||||
|
@ -1,5 +1,23 @@
|
|||||||
; VIDEO COMPOSITE PAL IO DEVICE
|
; VIDEO COMPOSITE PAL IO DEVICE
|
||||||
;
|
;
|
||||||
|
; @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:
|
; 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.
|
; 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
|
; If the busy pin is high, retry reading until goes low. When the busy pin goes low, we have... TODO
|
||||||
|
@ -2,6 +2,24 @@
|
|||||||
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
; * PAT80 COMPOSITE PAL VIDEO ADAPTER *
|
||||||
; * Video generator module *
|
; * Video 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/>.
|
||||||
|
|
||||||
|
|
||||||
; Uses registers X(R27, R26), STATUS (R25), VG_HIGH_ACCUM (r24), LINE_COUNTER (r23)
|
; Uses registers X(R27, R26), STATUS (R25), VG_HIGH_ACCUM (r24), LINE_COUNTER (r23)
|
||||||
|
|
||||||
|
18
pat80-io-devices/keyboard/hardware/keyboard/LICENSE.md
Normal file
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/>.
|
@ -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/>.
|
@ -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
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/>.
|
@ -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)
|
||||||
|
@ -1,4 +1,20 @@
|
|||||||
/**
|
/**
|
||||||
|
* 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.
|
* Composite pal adapter test.
|
||||||
* This sketch makes an Arduino send test data to tha Pat80 composite video pal adapter.
|
* This sketch makes an Arduino send test data to tha Pat80 composite video pal adapter.
|
||||||
* Connect the video adapter directly to Arduino
|
* Connect the video adapter directly to Arduino
|
||||||
|
@ -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,4 +1,23 @@
|
|||||||
/* PS/2 Keyboard controller 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/>.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* PS/2 Keyboard controller debugger
|
||||||
|
* Used to intercept data decoded from Pat80 PS/2 keyboard adapter
|
||||||
|
*/
|
||||||
|
|
||||||
#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,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:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user