summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNao Pross <naopross@thearcway.org>2017-03-05 22:26:57 +0100
committerNao Pross <naopross@thearcway.org>2017-03-05 22:26:57 +0100
commit5ee822c3eb28d0fe1081e4c7b2f49d5584d9e608 (patch)
treedd8152238d1d43036e4a3b00397ad3428986e3f1
parentdoc: added L7805ACV datasheet; hw: updated scheme (diff)
parentMerge branch 'master' of ssh://git.thearcway.org:2222/naopross/z80uPC (diff)
downloadz80uPC-5ee822c3eb28d0fe1081e4c7b2f49d5584d9e608.tar.gz
z80uPC-5ee822c3eb28d0fe1081e4c7b2f49d5584d9e608.zip
Merge branch 'master' of https://git.thearcway.org/git/naopross/z80uPC
-rw-r--r--AUTHORS1
-rw-r--r--LICENSE21
-rw-r--r--TODO28
-rw-r--r--doc/datasheets/DM9368_7SEG_DRIVER.pdfbin0 -> 212585 bytes
-rw-r--r--doc/datasheets/TL16C550C_UART.pdfbin0 -> 1056499 bytes
-rw-r--r--doc/report/build/notes.pdfbin0 -> 28265 bytes
-rw-r--r--doc/report/build/z80uPC.pdfbin0 -> 29047 bytes
-rw-r--r--doc/report/makefile29
-rw-r--r--doc/report/notes.tex90
-rw-r--r--doc/report/res/addrspace.pdfbin0 -> 6465 bytes
-rw-r--r--doc/report/res/addrspace.svg190
-rw-r--r--doc/report/z80uPC.tex10
-rw-r--r--sw/linux/config.h26
-rw-r--r--sw/linux/src/serial.c20
-rwxr-xr-xsw/linux/src/z80progbin0 -> 34688 bytes
15 files changed, 415 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..f3ab365
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+nao pross
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..0076984
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Nao Pross
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..87a131d
--- /dev/null
+++ b/TODO
@@ -0,0 +1,28 @@
+STRUCTURE
+---------
+[*] address space
+[ ] pcb size (standard)
+[ ] ram pages
+
+HARDWARE
+--------
+[ ] bus buffering
+[*] ROM
+[*] RAM
+[*] clock circuit
+[ ] reset circuit
+[ ] digital port interface
+[ ] serial terminal
+[ ] extension connector
+[ ] keyboard driver
+[ ] display driver
+[ ] PCB layout
+
+SOFTWARE
+--------
+[ ] bootloader
+[ ] command interpreter
+[ ] program loader
+[ ] address editor
+[ ] NVRAM eraser
+[ ] data dump/copy
diff --git a/doc/datasheets/DM9368_7SEG_DRIVER.pdf b/doc/datasheets/DM9368_7SEG_DRIVER.pdf
new file mode 100644
index 0000000..1b2c216
--- /dev/null
+++ b/doc/datasheets/DM9368_7SEG_DRIVER.pdf
Binary files differ
diff --git a/doc/datasheets/TL16C550C_UART.pdf b/doc/datasheets/TL16C550C_UART.pdf
new file mode 100644
index 0000000..54017c9
--- /dev/null
+++ b/doc/datasheets/TL16C550C_UART.pdf
Binary files differ
diff --git a/doc/report/build/notes.pdf b/doc/report/build/notes.pdf
new file mode 100644
index 0000000..d895c04
--- /dev/null
+++ b/doc/report/build/notes.pdf
Binary files differ
diff --git a/doc/report/build/z80uPC.pdf b/doc/report/build/z80uPC.pdf
new file mode 100644
index 0000000..38b7bcd
--- /dev/null
+++ b/doc/report/build/z80uPC.pdf
Binary files differ
diff --git a/doc/report/makefile b/doc/report/makefile
new file mode 100644
index 0000000..e10c0b9
--- /dev/null
+++ b/doc/report/makefile
@@ -0,0 +1,29 @@
+# documents
+BUILD_DIR := build
+RES_DIR := res
+
+SOURCES := z80uPC.tex notes.tex
+DOCUMENTS := $(patsubst %.tex,$(BUILD_DIR)/%.pdf,$(SOURCES))
+
+RES_SRC := $(wildcard $(RES_DIR)/*.svg)
+RES := $(patsubst %.svg,%.pdf,$(RES_SRC))
+
+# compiler settings
+TEX := texfot lualatex
+
+# recipes
+.PHONY: all dir clean
+all: $(DOCUMENTS)
+
+$(DOCUMENTS): $(BUILD_DIR)/%.pdf: %.tex $(SOURCES) $(RES) dir
+ @printf "\nBuilding $< \n\n"
+ $(TEX) --output-directory=$(BUILD_DIR) $<
+
+$(RES): $(RES_DIR)/%.pdf: $(RES_DIR)/%.svg $(RES_SRC) dir
+ inkscape -z -D --file=$< --export-pdf=$@
+
+dir:
+ mkdir -p $(BUILD_DIR)
+
+clean:
+ rm $(BUILD_DIR)/*
diff --git a/doc/report/notes.tex b/doc/report/notes.tex
new file mode 100644
index 0000000..971d85b
--- /dev/null
+++ b/doc/report/notes.tex
@@ -0,0 +1,90 @@
+\documentclass[final, ms, a4paper, 11pt]{memoir}
+
+\usepackage[a4paper, inner=3cm, outer=3cm, marginpar=0pt]{geometry}
+\usepackage[explicit]{titlesec}
+\usepackage{wrapfig}
+\usepackage{graphicx}
+\usepackage{xcolor} %
+
+% set line height
+\renewcommand{\baselinestretch}{1}
+% font hyphenation
+\usepackage{everysel}
+\EverySelectfont{%
+\fontdimen2\font=0.6em % interword space
+\fontdimen3\font=0.2em % interword stretch
+\fontdimen4\font=0.1em % interword shrink
+\fontdimen7\font=0.9em % extra space
+\hyphenchar\font=`\-% to allow hyphenation
+}
+
+
+% set section style
+% \newcommand{\secstyle}[2]{[ #2 ] \textcolor{red!50!black}{\MakeUppercase{#1}}}
+% \renewcommand*\thesection{\arabic{section}} % hide chapter
+
+\newcommand\ddate{01.01.1970}
+\titleformat{\section}
+ {\normalfont}{- \ddate{}:}{1em}
+ {\textcolor{red!50!black}{\MakeUppercase{#1}} -}
+% monochrome
+% \titleformat{\section}
+% {\normalfont}{\thesection}{1em}{\MakeUppercase{#1}}
+
+\begin{document}
+\noindent {\Large Z80 Single Board Computer: Note e Diario di Lavoro} \\\\
+\noindent SAM Bellinzona 2016/2017 \\
+\noindent REF: Daniele Kamm \\
+\noindent PIF: Naoki Pross \\
+\vspace{5mm}
+
+\renewcommand\ddate{30.01.2017}
+\section{Perch\`e uno Z80?}
+Originariamente questo progetto era un esperimento per costruire una
+cartridge per il GameBoy Classic (DMZ-01) che conteneva dell'hardware
+aggiuntivo che avrebbe potuto interfacciare dell'hardware esterno con la CPU
+del GameBoy. Successivamente per\`o il progetto si \`e rivelato pi\`u
+complicato del previsto a causa della complessa struttura del GB (GameBoy) e
+la difficolt\`a per ritrovare l'hardware stesso. Quindi sotto consiglio del
+docente ho cambiato il progetto in un Single Board Computer dato che sono
+interessato in informatica di basso livello e la CPU del GB era basata sul
+processore Z80 con un instruction set e assembly simile.
+
+\renewcommand\ddate{09.02.2017}
+\section{Hardware}
+Dopo una ricerca abbastanza intensiva dal magazzino della scuola abbiamo trovato
+i seguenti componenti principali del che utilizzer\`o per costruire il computer.
+\begin{table}[h!] \centering
+\begin{tabular}{ l l l l }
+ Z8400AB1 (Z80ACPU) & Zilog & x1 & CPU \\
+ Z8420AB1 (Z80APIO) & Zilog & x1 & Port Interface \\
+ Z8430AB1 (Z80ACTC) & Zilog & x1 & Timer Clock \\
+ M28C64 & ST & x2 & EEPROM \\
+ HM62256B & HITACHI & x1 & SRAM \\
+ TL16C550C & TI & x1 & Seriale (UART / RS232) \\
+\end{tabular}
+\end{table}
+
+Tutti gli altri componenti secondati come porte logiche e circuiti combinatori
+integrati saranno indicati in una lista finale nella documentazione riassuntiva.
+
+\renewcommand\ddate{13.02.2017}
+\section{Address space}
+\begin{wrapfigure}{R}{.35\linewidth} \centering
+ \includegraphics[width=.9\linewidth]{res/addrspace.pdf}
+\end{wrapfigure}
+Come prima cosa dopo aver deciso il processore (Z80) \`e necessario definire
+l'address space per decidere come collegare l'hardware. Si vede chiaramente che
+la RAM usa la maggior parte dell'address space mentre la rom \`e solamente di
+16KB, ma questo non \`e un problema perch\`e ho intenzione di aggiungere delle
+interfacce esterne per poter collegare dispositivi di memoria come per esempio
+le uSD. Dunque questa EEPROM vicina al processore sar\`a utilizzata unicamente
+per il bootloader e per un sistema operativo molto basilare.
+
+\renewcommand\ddate{23.02.2017}
+\section{Banchi di memoria}
+
+\renewcommand\ddate{04.03.2017}
+\section{Standards e Norme}
+
+\end{document}
diff --git a/doc/report/res/addrspace.pdf b/doc/report/res/addrspace.pdf
new file mode 100644
index 0000000..2689fca
--- /dev/null
+++ b/doc/report/res/addrspace.pdf
Binary files differ
diff --git a/doc/report/res/addrspace.svg b/doc/report/res/addrspace.svg
new file mode 100644
index 0000000..6af7e7f
--- /dev/null
+++ b/doc/report/res/addrspace.svg
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="addrspace.svg">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.47482464"
+ inkscape:cx="396.85039"
+ inkscape:cy="477.01822"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ showborder="false"
+ inkscape:window-width="1246"
+ inkscape:window-height="743"
+ inkscape:window-x="15"
+ inkscape:window-y="38"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g4712"
+ transform="matrix(0.71111091,0,0,1.0012581,0,-0.3734815)">
+ <rect
+ transform="scale(-1,1)"
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.88413537;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="41.941898"
+ x="-179.05798"
+ height="254.11586"
+ width="178.11586"
+ id="rect10" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4511"
+ d="M 0,168.5 H 180"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4511-3"
+ d="M 0,104.5 H 180"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4511-3-6"
+ d="M 0,72.5 H 180"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87777778px;line-height:6.61458302px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="-22.715445"
+ y="38.353672"
+ id="text4545"><tspan
+ sodipodi:role="line"
+ id="tspan4543"
+ x="-22.715445"
+ y="44.410149"
+ style="stroke-width:0.26458332;font-size:9.87777778px;" /></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:6.61458302px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;"
+ x="-45.687298"
+ y="48.85014"
+ id="text4549"><tspan
+ sodipodi:role="line"
+ id="tspan4547"
+ x="-45.687298"
+ y="48.85014"
+ style="stroke-width:0.26458332;-inkscape-font-specification:'Latin Modern Mono, Normal';font-family:'Latin Modern Mono';font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:13.40555556px;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;">0x0000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:6.61458349px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="-45.687298"
+ y="80.850136"
+ id="text4549-7"><tspan
+ sodipodi:role="line"
+ id="tspan4617"
+ x="-45.687298"
+ y="80.850136">0x2000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:6.61458349px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="-45.687298"
+ y="112.85014"
+ id="text4549-9"><tspan
+ sodipodi:role="line"
+ id="tspan4615"
+ x="-45.687298"
+ y="112.85014">0x4000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:6.61458349px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="-45.687298"
+ y="176.85014"
+ id="text4549-70"><tspan
+ sodipodi:role="line"
+ id="tspan4613"
+ x="-45.687298"
+ y="176.85014">0x8000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:6.61458349px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;"
+ x="-45.687298"
+ y="296.85013"
+ id="text4549-0"><tspan
+ sodipodi:role="line"
+ id="tspan4611">0xFFFF</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:15px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="64.149452"
+ y="236.76022"
+ id="text4621"><tspan
+ sodipodi:role="line"
+ x="64.149452"
+ y="236.76022"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:15px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr;text-anchor:middle;stroke-width:0.26458332;"
+ id="tspan4631">32KB RAM</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:15px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="64.185799"
+ y="132.85966"
+ id="text4621-8"><tspan
+ sodipodi:role="line"
+ id="tspan4663"
+ x="64.185799"
+ y="132.85966">16KB I/O</tspan><tspan
+ sodipodi:role="line"
+ id="tspan4665"
+ x="64.185799"
+ y="147.85966">SPACE</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:15px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="63.628578"
+ y="94.760223"
+ id="text4621-8-1"><tspan
+ sodipodi:role="line"
+ id="tspan4688"
+ x="63.628578"
+ y="94.760223">8KB ROM</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.40555556px;line-height:15px;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+ x="64.02317"
+ y="62.76022"
+ id="text4621-8-1-8"><tspan
+ style="stroke-width:0.26458332;-inkscape-font-specification:'Latin Modern Mono, Normal';font-family:'Latin Modern Mono';font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:13.40555556px;text-anchor:middle;text-align:center;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;"
+ sodipodi:role="line"
+ id="tspan4688-5"
+ x="64.02317"
+ y="62.76022">8KB ROM</tspan></text>
+ </g>
+</svg>
diff --git a/doc/report/z80uPC.tex b/doc/report/z80uPC.tex
new file mode 100644
index 0000000..aa5d13c
--- /dev/null
+++ b/doc/report/z80uPC.tex
@@ -0,0 +1,10 @@
+\documentclass[a4paper, 11pt, twoside]{article}
+
+
+
+\title{Z80 Single Board Computer Development}
+\author{Naoki Pross}
+
+\begin{document}
+ \maketitle
+\end{document}
diff --git a/sw/linux/config.h b/sw/linux/config.h
new file mode 100644
index 0000000..d319f43
--- /dev/null
+++ b/sw/linux/config.h
@@ -0,0 +1,26 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Name of package */
+#define PACKAGE "z80prog"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "naopross@tharcway.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "z80prog"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "z80prog 0.1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "z80prog"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "0.1"
+
+/* Version number of package */
+#define VERSION "0.1"
diff --git a/sw/linux/src/serial.c b/sw/linux/src/serial.c
index a13ef45..564676b 100644
--- a/sw/linux/src/serial.c
+++ b/sw/linux/src/serial.c
@@ -16,7 +16,27 @@ int serial_connect(const char *devpath, long baudrate)
return -1;
}
+ // TODO: update UI or add support for custom baudrate
// cfsetospeed(&tty,
+ // cfsetispeed(&tty,
+
+ tty.c_cflag &= ~PARENB; // no parity
+ tty.c_cflag &= ~CSTOPB; // no stop bit
+ tty.c_cflag |= CS8; // 8 bit data
+ tty.c_cflag &= ~CRTSCTS; // no flow control
+
+ tty.c_lflag = 0; // no signaling chars, no echo, no canonical processing
+ tty.c_oflag = 0; // no remapping, no delays
+ tty.c_cc[VMIN] = 0; // no block read
+ tty.c_cc[VTIME] = .5; // .5 seconds read timeout
+
+ tty.c_cflag |= CREAD | CLOCAL; // turn on read and ignore ctrl lines
+ tty.c_iflag &= ~(IXON | IXOFF | IXANY); // turn off s/w flow ctrl
+ tty.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // make raw
+ tty.c_oflag &= ~OPOST; // make raw
+
+ tcflush(fd , TCIFLUSH);
+ // if (tcsetaddr(
return fd;
}
diff --git a/sw/linux/src/z80prog b/sw/linux/src/z80prog
new file mode 100755
index 0000000..878683b
--- /dev/null
+++ b/sw/linux/src/z80prog
Binary files differ