diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/report/build.cmd | 4 | ||||
-rw-r--r-- | doc/report/build/notes.pdf | bin | 39689 -> 47404 bytes | |||
-rw-r--r-- | doc/report/build/z80uPC.pdf | bin | 29047 -> 970520 bytes | |||
-rw-r--r-- | doc/report/res/addrspace.pdf | bin | 6465 -> 7208 bytes | |||
-rw-r--r-- | doc/report/res/addrspace.svg | 83 | ||||
-rw-r--r-- | doc/report/res/block_diagram.pdf | bin | 0 -> 23233 bytes | |||
-rw-r--r-- | doc/report/res/block_diagram.svg | 639 | ||||
-rw-r--r-- | doc/report/res/bus_displays.png | bin | 0 -> 7776 bytes | |||
-rw-r--r-- | doc/report/res/iospace.pdf | bin | 0 -> 6118 bytes | |||
-rw-r--r-- | doc/report/res/iospace.svg | 102 | ||||
-rwxr-xr-x | doc/report/res/logo_sam.pdf | bin | 0 -> 891254 bytes | |||
-rw-r--r-- | doc/report/z80uPC.tex | 290 |
12 files changed, 1022 insertions, 96 deletions
diff --git a/doc/report/build.cmd b/doc/report/build.cmd deleted file mode 100644 index 3b4e8cd..0000000 --- a/doc/report/build.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@echo off - - lualatex --output-directory=build notes.tex -pause
\ No newline at end of file diff --git a/doc/report/build/notes.pdf b/doc/report/build/notes.pdf Binary files differindex b0f0ec4..6a70bd5 100644 --- a/doc/report/build/notes.pdf +++ b/doc/report/build/notes.pdf diff --git a/doc/report/build/z80uPC.pdf b/doc/report/build/z80uPC.pdf Binary files differindex 38b7bcd..6c5dd23 100644 --- a/doc/report/build/z80uPC.pdf +++ b/doc/report/build/z80uPC.pdf diff --git a/doc/report/res/addrspace.pdf b/doc/report/res/addrspace.pdf Binary files differindex 2689fca..96ac657 100644 --- a/doc/report/res/addrspace.pdf +++ b/doc/report/res/addrspace.pdf diff --git a/doc/report/res/addrspace.svg b/doc/report/res/addrspace.svg index 6af7e7f..0f73784 100644 --- a/doc/report/res/addrspace.svg +++ b/doc/report/res/addrspace.svg @@ -9,12 +9,12 @@ 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" + width="180.64061mm" + height="257.56342mm" + viewBox="0 0 180.64061 257.56342" version="1.1" id="svg8" - inkscape:version="0.92.0 r" + inkscape:version="0.92.1 r" sodipodi:docname="addrspace.svg"> <defs id="defs2" /> @@ -25,18 +25,22 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.47482464" - inkscape:cx="396.85039" - inkscape:cy="477.01822" + inkscape:zoom="0.33575172" + inkscape:cx="902.43963" + inkscape:cy="551.46623" 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" /> + inkscape:window-width="1266" + inkscape:window-height="763" + inkscape:window-x="5" + inkscape:window-y="28" + inkscape:window-maximized="0" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> <metadata id="metadata5"> <rdf:RDF> @@ -52,7 +56,8 @@ <g inkscape:label="Layer 1" inkscape:groupmode="layer" - id="layer1"> + id="layer1" + transform="translate(52.640604,-39.436588)"> <g id="g4712" transform="matrix(0.71111091,0,0,1.0012581,0,-0.3734815)"> @@ -82,78 +87,80 @@ </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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:middle;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> + y="44.92416" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332" /></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" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-30.085047" y="48.85014" id="text4549"><tspan sodipodi:role="line" id="tspan4547" - x="-45.687298" + x="-30.085047" 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> + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332">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" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-30.085047" y="80.850136" id="text4549-7"><tspan sodipodi:role="line" id="tspan4617" - x="-45.687298" + x="-30.085047" 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" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-30.085047" y="112.85014" id="text4549-9"><tspan sodipodi:role="line" id="tspan4615" - x="-45.687298" + x="-30.085047" 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" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-30.085047" y="176.85014" id="text4549-70"><tspan sodipodi:role="line" id="tspan4613" - x="-45.687298" + x="-30.085047" 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" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-30.085047" y="296.85013" id="text4549-0"><tspan sodipodi:role="line" - id="tspan4611">0xFFFF</tspan></text> + id="tspan4611" + x="-30.085047" + y="296.85013">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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:15px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:15px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:15px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" x="64.185799" y="132.85966" id="text4621-8"><tspan @@ -167,7 +174,7 @@ 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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:15px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;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 @@ -177,11 +184,11 @@ 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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;line-height:15px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.05277824px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332" sodipodi:role="line" id="tspan4688-5" x="64.02317" diff --git a/doc/report/res/block_diagram.pdf b/doc/report/res/block_diagram.pdf Binary files differnew file mode 100644 index 0000000..204a22e --- /dev/null +++ b/doc/report/res/block_diagram.pdf diff --git a/doc/report/res/block_diagram.svg b/doc/report/res/block_diagram.svg new file mode 100644 index 0000000..b78bf97 --- /dev/null +++ b/doc/report/res/block_diagram.svg @@ -0,0 +1,639 @@ +<?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:xlink="http://www.w3.org/1999/xlink" + 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.1 r" + sodipodi:docname="block_diagram.svg"> + <defs + id="defs2"> + <linearGradient + inkscape:collect="always" + id="linearGradient4718"> + <stop + style="stop-color:#040000;stop-opacity:1;" + offset="0" + id="stop4714" /> + <stop + style="stop-color:#040000;stop-opacity:0;" + offset="1" + id="stop4716" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4718" + id="linearGradient4720" + x1="15.50473" + y1="231.3285" + x2="30.223607" + y2="231.3285" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.36157024" + inkscape:cx="246.0141" + inkscape:cy="-135.97287" + inkscape:document-units="mm" + inkscape:current-layer="g4691-3" + showgrid="false" + showborder="false" + inkscape:snap-global="true" + inkscape:window-width="1266" + inkscape:window-height="763" + inkscape:window-x="5" + inkscape:window-y="28" + inkscape:window-maximized="0"> + <inkscape:grid + type="xygrid" + id="grid3680" /> + </sodipodi:namedview> + <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 /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g4516" + transform="translate(0,-3.0398368e-6)"> + <rect + y="247.49963" + x="0.4996292" + height="49.00074" + width="99.00074" + id="rect3682" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.9992584;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + id="text3686" + y="278.29111" + x="19.777945" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332" + y="278.29111" + x="19.777945" + id="tspan3684" + sodipodi:role="line">Z80CPU</tspan></text> + </g> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688" + width="98.993126" + height="48.99313" + x="0.50343531" + y="147.50343" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="8.6604137" + y="178.47581" + id="text3686-2"><tspan + sodipodi:role="line" + id="tspan3684-9" + x="8.6604137" + y="178.47581" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">ROM HIGH</tspan></text> + <g + id="g4571" + transform="translate(44.983675,9.169298)"> + <rect + y="138.33414" + x="105.51976" + height="48.99313" + width="98.993126" + id="rect3688-4" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + id="text3686-2-3" + y="168.23744" + x="120.09121" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332" + y="168.23744" + x="120.09121" + id="tspan3684-9-5" + sodipodi:role="line">ROM LOW</tspan></text> + </g> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688-4-1" + width="98.993126" + height="48.99313" + x="300.50345" + y="147.50343" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="327.90381" + y="179.01036" + id="text3686-2-3-4"><tspan + sodipodi:role="line" + id="tspan3684-9-5-6" + x="327.90381" + y="179.01036" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">RAM</tspan></text> + <path + sodipodi:nodetypes="cccccccccccccccc" + inkscape:connector-curvature="0" + id="path4583" + d="M -75,247 V 232 H 50 v 15 -50 35 h 150 v -35 50 -15 h 150 v -35 150 -35 l -150,0 v 35" + style="fill:none;stroke:#009d00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <flowRoot + xml:space="preserve" + id="flowRoot4544" + style="fill:black;fill-opacity:1;stroke:none;font-family:'Roboto Mono';font-style:normal;font-weight:normal;font-size:53.33333333px;line-height:25px;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'Roboto Mono';font-stretch:normal;font-variant:normal"><flowRegion + id="flowRegion4546"><rect + id="rect4548" + width="468.71078" + height="301.02545" + x="359.61432" + y="441.67688" /></flowRegion><flowPara + id="flowPara4550" /></flowRoot> <path + sodipodi:nodetypes="cccccccccccccccc" + inkscape:connector-curvature="0" + id="path4583-7" + d="M -100,247 V 212 H 25 v 35 -50 15 h 150 v -15 50 -35 l 150,0 V 197 347 332 H 175 v 15" + style="fill:none;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 19.669271,242.82083 10,-5" + id="path4703" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.46666667px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Light';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:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.26458332;stroke-opacity:1;" + x="-2.5545583" + y="243.20735" + id="text4707"><tspan + sodipodi:role="line" + id="tspan4663" + x="-2.5545583" + y="243.20735">D0-8</tspan></text> + <g + id="g4691"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path4703-5" + d="m 45.577762,243.13654 10,-5" + style="fill:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + id="text4707-1" + y="242.57951" + x="57.320847" + style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.46666667px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Light';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:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:0.26458332;stroke-opacity:1;" + xml:space="preserve"><tspan + y="242.57951" + x="57.320847" + id="tspan4661" + sodipodi:role="line">A0-11</tspan></text> + </g> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688-3" + width="98.993126" + height="48.99313" + x="150.50343" + y="247.50343" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="182.18013" + y="279.01038" + id="text3686-2-8"><tspan + sodipodi:role="line" + id="tspan4624" + x="182.18013" + y="279.01038">MMU</tspan></text> + <path + style="fill:none;stroke:#009d8b;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + d="m 100,271.86771 h 50" + id="path4626" + inkscape:connector-curvature="0" /> + <path + style="fill:#009d00;fill-opacity:1;stroke:#009d8b;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 107.15877,275.7273 7.52238,-8.27126" + id="path4703-5-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.46666667px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Light';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:#009d8b;fill-opacity:1;stroke:#009d8b;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;" + x="109.25587" + y="264.45767" + id="text4707-1-8"><tspan + sodipodi:role="line" + id="tspan4665" + x="109.25587" + y="264.45767">A12-15</tspan></text> + <path + style="fill:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 195.1591,243.55279 10,-5" + id="path4703-5-8" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.46666667px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Light';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:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:0.26458332;stroke-opacity:1;" + x="206.90219" + y="242.99577" + id="text4707-1-9"><tspan + sodipodi:role="line" + id="tspan4701">A12-15</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688-7" + width="98.993126" + height="48.99313" + x="0.50343531" + y="347.50345" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="49.177593" + y="378.24994" + id="text4752"><tspan + sodipodi:role="line" + id="tspan4750" + x="49.177593" + y="378.24994" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332" + dy="-8.4700012">CLK</tspan><tspan + sodipodi:role="line" + x="49.177593" + y="384.86453" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332" + id="tspan4754">Generators</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:1.95363188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 26.055948,347 V 296.50597" + id="path4756" + inkscape:connector-curvature="0" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688-4-0" + width="98.993126" + height="48.99313" + x="150.50343" + y="347.50345" /> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688-4-3" + width="98.993126" + height="48.99313" + x="300.50345" + y="347.50345" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="330.16299" + y="381.37689" + id="text3686-2-3-4-6"><tspan + sodipodi:role="line" + id="tspan3684-9-5-6-9" + x="330.16299" + y="381.37689" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">PIO</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="176.70467" + y="379.86499" + id="text3686-2-3-4-4"><tspan + sodipodi:role="line" + id="tspan3684-9-5-6-2" + x="176.70467" + y="379.86499" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">CTC</tspan></text> + <g + id="g4922"> + <path + inkscape:connector-curvature="0" + id="path4756-2" + d="m 161,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 171,422.062 v -25" + id="path4894" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4896" + d="m 181,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 191,422.062 v -25" + id="path4898" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4900" + d="m 201,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 201,422.062 v -25" + id="path4902" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4904" + d="m 221,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 211,422.062 v -25" + id="path4906" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4908" + d="m 231,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 241,422.062 v -25" + id="path4910" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(150,-0.062)" + id="g4922-6"> + <path + inkscape:connector-curvature="0" + id="path4756-2-4" + d="m 161,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 171,422.062 v -25" + id="path4894-1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4896-2" + d="m 181,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 191,422.062 v -25" + id="path4898-8" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4900-8" + d="m 201,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 201,422.062 v -25" + id="path4902-9" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4904-2" + d="m 221,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 211,422.062 v -25" + id="path4906-8" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4908-8" + d="m 231,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 241,422.062 v -25" + id="path4910-8" + inkscape:connector-curvature="0" /> + </g> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688-6" + width="98.993126" + height="48.99313" + x="-149.49657" + y="247.50343" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-125.9726" + y="279.20761" + id="text3686-2-83"><tspan + sodipodi:role="line" + id="tspan3684-9-8" + x="-125.9726" + y="279.20761" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">USART</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.00687063;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3688-4-0-3" + width="98.993126" + height="48.99313" + x="-149.49657" + y="347.44144" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-132.09169" + y="379.28555" + id="text3686-2-3-4-4-3"><tspan + sodipodi:role="line" + id="tspan3684-9-5-6-2-3" + x="-132.09169" + y="379.28555" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.93333244px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">MAX214</tspan></text> + <g + transform="translate(-300,-0.062)" + id="g4922-8"> + <path + inkscape:connector-curvature="0" + id="path4756-2-0" + d="m 161,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 171,422.062 v -25" + id="path4894-4" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4896-7" + d="m 181,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 191,422.062 v -25" + id="path4898-6" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4900-89" + d="m 201,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 201,422.062 v -25" + id="path4902-0" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4904-6" + d="m 221,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 211,422.062 v -25" + id="path4906-87" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4908-9" + d="m 231,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 241,422.062 v -25" + id="path4910-0" + inkscape:connector-curvature="0" /> + </g> + <g + transform="matrix(1,0,0,1.9934729,-300,-494.53234)" + id="g4922-8-3"> + <path + inkscape:connector-curvature="0" + id="path4756-2-0-3" + d="m 161,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 171,422.062 v -25" + id="path4894-4-3" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4896-7-7" + d="m 181,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 191,422.062 v -25" + id="path4898-6-3" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4900-89-2" + d="m 201,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 201,422.062 v -25" + id="path4902-0-6" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4904-6-5" + d="m 221,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 211,422.062 v -25" + id="path4906-87-2" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4908-9-6" + d="m 231,422.062 v -25" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 241,422.062 v -25" + id="path4910-0-5" + inkscape:connector-curvature="0" /> + </g> + <path + style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 170.24434,242.96618 10,-5" + id="path4703-2" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.46666667px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Light';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:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.26458332;stroke-opacity:1;" + x="148.02051" + y="243.35269" + id="text4707-5"><tspan + sodipodi:role="line" + id="tspan5110">D0-3</tspan></text> + <g + transform="translate(149.30752,100.76071)" + id="g4691-3"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path4703-5-7" + d="m 45.577762,243.13654 10,-5" + style="fill:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + id="text4707-1-7" + y="242.57951" + x="57.320847" + style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.46666667px;line-height:6.61458302px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Light';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:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:0.26458332;stroke-opacity:1;" + xml:space="preserve"><tspan + sodipodi:role="line" + id="tspan5160">A0-1</tspan></text> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path4703-5-7-9" + d="m 195.32603,243.65398 10,-5" + style="fill:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + id="text4707-1-7-4" + y="243.09695" + x="207.06911" + style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.46666622px;line-height:6.61458349px;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Light';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-tb;text-anchor:start;fill:#009d00;fill-opacity:1;stroke:#009d00;stroke-width:0.26458332;stroke-opacity:1" + xml:space="preserve"><tspan + style="stroke-width:0.26458332" + y="243.09695" + x="207.06911" + sodipodi:role="line" + id="tspan5160-5">A0-1</tspan></text> + </g> + </g> +</svg> diff --git a/doc/report/res/bus_displays.png b/doc/report/res/bus_displays.png Binary files differnew file mode 100644 index 0000000..941fa4f --- /dev/null +++ b/doc/report/res/bus_displays.png diff --git a/doc/report/res/iospace.pdf b/doc/report/res/iospace.pdf Binary files differnew file mode 100644 index 0000000..c1773fd --- /dev/null +++ b/doc/report/res/iospace.pdf diff --git a/doc/report/res/iospace.svg b/doc/report/res/iospace.svg index 750c51c..4438ed0 100644 --- a/doc/report/res/iospace.svg +++ b/doc/report/res/iospace.svg @@ -9,12 +9,12 @@ 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" + width="152.99294mm" + height="262.63849mm" + viewBox="0 0 152.99294 262.63849" version="1.1" id="svg8" - inkscape:version="0.91 r13725" + inkscape:version="0.92.1 r" sodipodi:docname="iospace.svg"> <defs id="defs2" /> @@ -25,18 +25,22 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.6860138" - inkscape:cx="135.42682" - inkscape:cy="112.15076" + inkscape:zoom="0.67150345" + inkscape:cx="420.75058" + inkscape:cy="512.06936" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" showborder="false" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" /> + inkscape:window-width="1266" + inkscape:window-height="763" + inkscape:window-x="5" + inkscape:window-y="28" + inkscape:window-maximized="0" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> <metadata id="metadata5"> <rdf:RDF> @@ -45,14 +49,15 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> + <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Layer 1" inkscape:groupmode="layer" - id="layer1"> + id="layer1" + transform="translate(24.867916,-38.353672)"> <rect id="rect10" width="127.4551" @@ -63,91 +68,84 @@ transform="scale(-1,1)" /> <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:6.3499999px;line-height:661.00001335%;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:0%;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" x="-25.317501" y="236.93015" - id="text4549-9" - sodipodi:linespacing="661.00001%"><tspan + id="text4549-9"><tspan sodipodi:role="line" id="tspan4615" x="-25.317501" - y="236.93015">0x4000</tspan></text> + y="236.93015" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61000013;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">0x4000</tspan></text> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:661.00001335%;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:0%;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" x="-25.317501" y="300.93015" - id="text4549-0" - sodipodi:linespacing="661.00001%"><tspan + id="text4549-0"><tspan sodipodi:role="line" id="tspan4163" x="-25.317501" - y="300.93015">0x8000</tspan></text> + y="300.93015" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61000013;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">0x8000</tspan></text> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 0,264.85889 127.64128,0" + d="M 0,264.85889 H 127.64128" id="path4165" inkscape:connector-curvature="0" /> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35000004px;line-height:661%;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, 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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:0%;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" x="-25.317501" y="268.93015" - id="text4549-9-7" - sodipodi:linespacing="661%"><tspan + id="text4549-9-7"><tspan sodipodi:role="line" - id="tspan4159">0x6000</tspan></text> + id="tspan4159" + x="-25.317501" + y="268.93015" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61000013;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">0x6000</tspan></text> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 0,280.85889 127.64128,0" + d="M 0,280.85889 H 127.64128" id="path4165-1" inkscape:connector-curvature="0" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 0,248.85889 127.64128,0" + d="M 0,248.85889 H 127.64128" id="path4165-1-9" inkscape:connector-curvature="0" /> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:661.00001335%;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:0%;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" x="-25.317501" y="252.93015" - id="text4549-9-0" - sodipodi:linespacing="661.00001%"><tspan + id="text4549-9-0"><tspan sodipodi:role="line" id="tspan4615-8" x="-25.317501" - y="252.93015">0x5000</tspan></text> + y="252.93015" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61000013;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">0x5000</tspan></text> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35000004px;line-height:661%;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, 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;" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:0%;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" x="-25.317501" y="284.93015" - id="text4549-9-0-2" - sodipodi:linespacing="661%"><tspan + id="text4549-9-0-2"><tspan sodipodi:role="line" - id="tspan4227">0x7000</tspan></text> + id="tspan4227" + x="-25.317501" + y="284.93015" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61000013;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">0x7000</tspan></text> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:661.00001335%;font-family:'Latin Modern Mono';-inkscape-font-specification:'Latin Modern Mono, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:0%;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto 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-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" x="10.484573" y="243.46561" - id="text4549-9-02" - sodipodi:linespacing="661.00001%"><tspan + id="text4549-9-02"><tspan sodipodi:role="line" x="10.484573" y="243.46561" - id="tspan4167">SERIAL</tspan></text> + id="tspan4167" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61000013;font-family:'Roboto Mono';-inkscape-font-specification:'Roboto Mono, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">SERIAL</tspan></text> </g> </svg> diff --git a/doc/report/res/logo_sam.pdf b/doc/report/res/logo_sam.pdf Binary files differnew file mode 100755 index 0000000..b621307 --- /dev/null +++ b/doc/report/res/logo_sam.pdf diff --git a/doc/report/z80uPC.tex b/doc/report/z80uPC.tex index aa5d13c..5a4ec64 100644 --- a/doc/report/z80uPC.tex +++ b/doc/report/z80uPC.tex @@ -1,10 +1,296 @@ \documentclass[a4paper, 11pt, twoside]{article} +\usepackage{array} +\usepackage{float} +\usepackage{wrapfig} +% source code +\usepackage{listings} -\title{Z80 Single Board Computer Development} +% set correct hypenation +\usepackage[italian]{babel} + +% set margins +\usepackage[ + inner=2.5cm, + outer=2.5cm, + top=3cm, + bottom=3.75cm +]{geometry} + +% set headers +\usepackage{fancyhdr} +\pagestyle{fancyplain} +\fancyhf{} +\setlength{\headheight}{1.3cm} +\rhead{\includegraphics[height=1.25cm]{res/logo_sam}} +\lfoot{SAM 3E - Naoki Pross} +\rfoot{\thepage} + +% set font +\usepackage{fontspec} +\setmainfont{Roboto} +\setmonofont{Roboto Mono} + +% to fix macros +\usepackage{xspace} +% commands +% macro for project name +\newcommand{\prj}{Z80μPC\xspace} + +% invert signal (not, active low) +\newcommand{\inv}[1]{$\overline{\mbox{#1}}$} + +% metadata +\title{\vspace{-1cm}\texttt{\prj} Single Board \\ Computer Development } \author{Naoki Pross} +% document \begin{document} - \maketitle + +\maketitle +\begin{abstract} + Lo Zilog Z80 \`e un processore a 8 bit che fu introdotto nel 1976 che ebbe + un grandissimo successo nel mondo dell'elettronica e dell'informatica + nella fine del 20esimo secolo. In memoria di questo processore pioniere + dell'industria di sistemi embedded ho deciso di costruire un computer a + scopo generico intorno a questa piattaforma. L'obiettivo \`e di realizzare + una scheda programmabile con tutti i componenti necessari come ROM, RAM e + timers per far funzionare del software programmato se possibile sul + dispositivo stesso. +\end{abstract} + +\section{Specifiche tecniche dello Z80} +Lo Z80 \`e un processore molto minimalistico se paragonato a ci\`o che si +trova oggi sul mercato dei microcontrollori. Per il mio progetto ho deciso di +utilizzare il modello originale \texttt{Zilog Z8400} che non dispone di +sistemi integrati come i modelli SoC odierni. Le specifiche pi\`u importanti +sono elencate a seguire. + +\begin{itemize} + \item Architettura a 8 bit con bus a 16 bit con 64K indirizzi indirizzabili + \item Registri a 16 bit per {\tt SP,PC} e registri di utilizzo generico a + 8 bit {\tt A..F} combinabili a coppie {\tt AF,BC,..} per utilizzare + valori a 16 bit + \item Clock fino a 8 MHz + \item Segnali di controllo tra cui \texttt{\inv{RD}, \inv{WR}, + \inv{IOREQ}, \inv{MREQ}} e \texttt{\inv{RST}} + \item Interrupts mascherabili e non con vettore a 8 bit +\end{itemize} + +\section{Architettura di base} +Il minimo necessario per far funzionare un computer con lo Z80 sono una ROM e +una RAM, ma per il mio progetto ho scelto di aggiungere dell'hardware +aggiuntivo per lo sviluppo si sistemi pi\`u complessi per apprendere +conoscenze sia nel mondo dell'elettronica che dell'informatica. Per questa +ragione lo \prj possiede i seguienti componenti: + +\begin{center} +\begin{tabular}{ >{\tt}l >{\tt\bfseries}l p{.7\linewidth} } + % \hline \\ + ROM & M28C64 & EEPROM da 8KB x 8 bit (64K) per il BIOS / Bootloader / + OS installata doppia per avere 16KB \\ + RAM & HM62256B & SRAM da 32KB x 8bit (256K) \\ + CTC & Z8430 & Counter timer circuit ufficiale di Zilog a 4 canali che + permette di essere programmato \\ + PIO & Z8420 & Parallel input/output controller di Zilog per avere un + intefaccia digitale con due porte da 8 bit \\ + MMU & M4-32/32-15JC & CPLD programmabile che implementa una memory + management unit semplificata in grado di gestire i 5 + bit pi\`u significativi della linea di indirizzi \\ + USART & TL16C550C & Interfaccia USART per poter comunicare utilizzando il + protocollo RS232 +\end{tabular} +\end{center} + +Oltre a tutto ci\`o per uno scopo formativo lo \prj dispone anche di strumenti +da debug e analisi per comprendere ogni operazione del processore. Il modello +di Z80 scelto \`e in grado di utilizzare un clock fino a 8MHz, ma non +definisce un minimo dunque sono presenti 3 circuiti che generano 3 clock di +velocit\`a differenti. + +\begin{center} +\begin{tabular}{ >{\bfseries}r p{.8\linewidth} } + 0Hz & Questo clock \`e un bottone che permette di creare + manualmente le pulsazioni del clock, per poter analizzare + ogni istruzione \\ + 200Hz & Mediante un classico circuito con un LM555 si ha un clock da + 200Hz per eseguire i programmi a velocit\`a rallentata \\ + 4MHz & Clock per esecuzione a velocit\`a piena (normale) +\end{tabular} +\end{center} + +Una seconda disposizione per aiutare la comprensione del funzionamento del +processore \`e data da 6 display a 7 segmenti che durante l'esecuzione +rallentata o a step (bottone) visualizzano i bytes presenti sulla bus di +indirizzi a 16 bit e sul bus di dati a 8 bit. + +\begin{figure}[!h] \centering + \includegraphics[width=\linewidth]{res/bus_displays} + \caption{Display a 7 segmenti per visualizzare il flusso di dati della + CPU} +\end{figure} + +\section{Memory Management Unit} + +Alcuni modelli successori dello Z8400 implementavano una MMU SoC che +permetteva di indirizzare un address space di dimensione maggiore. Per lo \prj +non necessito di un indirizzamento pi\`u grande ma piuttosto sono interessato +dalle operazioni di gestione della memoria di una MMU simile a ci\`o che +accade nelle architetture X86. Nelle architetture odierne basate sull'X86/64 +\`e presente un sistema di traslazione di indirizzi di memoria da virtuale a +fisica. Con lo scopo di trarne solamente i vantaggi pi\`u fondamentali lo \prj +implementa nella CPLD MMU un sistema basilare di gestione di pagine di memoria +con traslazione di indirizzi in modo da poter allocare pi\`u programmi nella +RAM anche se il sistema non implementa il multitasking. + +% TODO: write about this in more details + +\subsection{Address Space} + +\begin{wrapfigure}{r}{.4\linewidth} \centering + \vspace{8mm} + \includegraphics[width=.9\linewidth]{res/addrspace} + \vspace{4mm} + \caption{Address space dello \prj} +\end{wrapfigure} +La funzione primaria della MMU \`e di mappare i dispositivi I/O e le memorie +nell'address space. Nell'implementazione reale la MMU controlla i segnali {\tt +\inv{CS}} seguendo una logica combinatoria molto semplice che controlla se +l'indirizzo sul bus si trova in una zona definita per un dispositivo. +L'address space si presenta dunque nella seguente maniera, per cui la ROM +occupa il primo quarto, i dispositivi mappabili il secondo quarto e la RAM la +met\`a restante. Essendo un progetto pensato per essere esteso 16KB sono +liberi per mappare dispositivi esterni collegati attraverso il connettore +DIN41612. + +% \begin{wrapfigure}{l}{.4\linewidth} \centering +% \includegraphics[width=.8\linewidth]{res/iospace} +% \end{wrapfigure} + +\subsection{Page Table} + +Per poter controllare la traslazione degli indirizzi la MMU dispone di una +Page Table a cui \`e possibile accedere attraversso un certo indirizzo +nell'I/O space. La page table di 5 bit permette la gestione delle regioni di +memoria da impostare per dei determinati processi. Questa funzione \`e +importante perch\`e permette la separazione dello stack e della memoria della +kernel dai programmi normali. Per lo \prj potrebbe sembrare eccessivo ma +essendo uno strumento per apprendere le fondamenta dell'elettronica e +dell'informatica \`e interessante implementare questa funzionalit\`a che +comunque se necessario pu\`o essere disabilitata. + +\section{Schema a blocchi} + +\begin{figure}[!h] \centering + \includegraphics[width=.85\linewidth]{res/block_diagram} +\end{figure} + +\section{Software / Sistema operativo} + +Negli sviluppi pi\`u recenti intorno allo Z80 esso veniva utilizzato come un +microcontrollore anzich\`e come processore da computer, per questa ragione non +sono presenti molti sistemi operativi per questa piattaforma. Dunque per lo +\prj il progetti implementa un sistema operativo soprannominato {\tt +HelvetiOS} con le funzioni minime necessarie come un interfaccia seriale a +comandi e un meccanismo per caricare i programmi. + +\subsection{Componenti di base} + +Per garantire un funzionamento minimo il sistema {\tt HelvetiOS} deve offrire +drivers e utility di base quali: + +\begin{center} +\begin{minipage}[t]{.4\linewidth} + \begin{itemize} + \item USART driver and API + \item PIO driver and API + \item CTC driver and API + \end{itemize} +\end{minipage}% +\begin{minipage}[t]{.4\linewidth} + \begin{itemize} + \item Bootloader + \item Program launcher + \item Shell-like interface + \end{itemize} +\end{minipage} +\end{center} + +\subsection{Interfacce dell'API} + +\subsubsection{USART} +\begin{lstlisting}[language=C, basicstyle=\ttfamily] +void usart_set_baudrate(uint16_t baudrate); +void usart_set_parity(int mode); +void usart_set_stop_bits(int count); +void usart_set_word_length(int length); +void usart_set_autoflow(int mode); + +inline void usart_init(uint16_t baudrate, int parity, int stop_bits); + +void usart_transmit(uint8_t data); +uint8_t usart_receive(); + +int usart_write(uint8_t *data, size_t size); +int usart_read(uint8_t *buffer, size_t count); +\end{lstlisting} + +% \subsection{PIO} + +\subsection{Toolchain per la compilazione} + +Per compilare il software del progetto si utilizza SDCC, un progetto +open-source che supporta la compilazione di binari per l'architettura dello +Z80. Nella mia configurazione utilizzo GNU make con il seguente makefile. + +\newpage +\begin{lstlisting}[language=make, numbers=left, basicstyle=\ttfamily] +#### +# Source code settings +# +OSNAME := helvetiOS + +CSOURCES := $(wildcard kernel/*.c) $(wildcard libc/*.c) +OBJECTS := $(patsubst %.c,build/%.rel,$(CSOURCES)) +HEXFILE := build/$(OSNAME).hex +BINARY := build/$(OSNAME).bin + +### +# Compiler settings + +CC := sdcc + +CFLAGS := -mz80 \ + -I kernel/include -I libc/include -DDEBUG + +LDFLAGS := -mz80 --no-std-crt0 crt0.rel \ + --code-loc 0x0800 --data-loc 0x8000 + +.PHONY: dirs dis clean +all: $(BINARY) + +# build binary +$(BINARY): $(OBJECTS) dirs + $(CC) $(LDFLAGS) $(OBJECTS) -o $(HEXFILE) + xxd -r -p $(HEXFILE) $(BINARY) + +$(OBJECTS): build/%.rel : %.c $(CSOURCES) dirs crt0.rel + $(CC) $(CFLAGS) -c $< -o $@ + +crt0.rel: crt0.s + sdasz80 -o $< + +dirs: + mkdir -p build build/kernel build/libc + +dis: $(BINARY) + z80dasm -a -g 0h $< -o $(OSNAME).s + +clean: + - rm -rd build/* + - rm $(OSNAME).s + - rm crt0.rel +\end{lstlisting} + \end{document} |