diff options
Diffstat (limited to '')
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | LICENSE | 21 | ||||
-rw-r--r-- | TODO | 28 | ||||
-rw-r--r-- | doc/datasheets/DM9368_7SEG_DRIVER.pdf | bin | 0 -> 212585 bytes | |||
-rw-r--r-- | doc/datasheets/TL16C550C_UART.pdf | bin | 0 -> 1056499 bytes | |||
-rw-r--r-- | doc/report/build/notes.pdf | bin | 0 -> 28265 bytes | |||
-rw-r--r-- | doc/report/build/z80uPC.pdf | bin | 0 -> 29047 bytes | |||
-rw-r--r-- | doc/report/makefile | 29 | ||||
-rw-r--r-- | doc/report/notes.tex | 90 | ||||
-rw-r--r-- | doc/report/res/addrspace.pdf | bin | 0 -> 6465 bytes | |||
-rw-r--r-- | doc/report/res/addrspace.svg | 190 | ||||
-rw-r--r-- | doc/report/z80uPC.tex | 10 |
12 files changed, 369 insertions, 0 deletions
@@ -0,0 +1 @@ +nao pross @@ -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. @@ -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 Binary files differnew file mode 100644 index 0000000..1b2c216 --- /dev/null +++ b/doc/datasheets/DM9368_7SEG_DRIVER.pdf diff --git a/doc/datasheets/TL16C550C_UART.pdf b/doc/datasheets/TL16C550C_UART.pdf Binary files differnew file mode 100644 index 0000000..54017c9 --- /dev/null +++ b/doc/datasheets/TL16C550C_UART.pdf diff --git a/doc/report/build/notes.pdf b/doc/report/build/notes.pdf Binary files differnew file mode 100644 index 0000000..d895c04 --- /dev/null +++ b/doc/report/build/notes.pdf diff --git a/doc/report/build/z80uPC.pdf b/doc/report/build/z80uPC.pdf Binary files differnew file mode 100644 index 0000000..38b7bcd --- /dev/null +++ b/doc/report/build/z80uPC.pdf 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 Binary files differnew file mode 100644 index 0000000..2689fca --- /dev/null +++ b/doc/report/res/addrspace.pdf 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} |