aboutsummaryrefslogtreecommitdiffstats
path: root/digital/atk16_ppu.dig
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-04-16 23:14:45 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-07-14 10:44:26 +0300
commiteb71154cb32e3a567d825f36d63266cae60b0099 (patch)
treeec0a5ca57be189295592eded5d01c3ffba4ae70a /digital/atk16_ppu.dig
parentf6dc1ad1f894f7617477d09d87ad7bbd03acff8f (diff)
WIP ppu
Diffstat (limited to 'digital/atk16_ppu.dig')
-rw-r--r--digital/atk16_ppu.dig373
1 files changed, 217 insertions, 156 deletions
diff --git a/digital/atk16_ppu.dig b/digital/atk16_ppu.dig
index 8f373a3..d9064dd 100644
--- a/digital/atk16_ppu.dig
+++ b/digital/atk16_ppu.dig
@@ -200,7 +200,7 @@
<elementAttributes>
<entry>
<string>AddrBits</string>
- <int>11</int>
+ <int>7</int>
</entry>
<entry>
<string>Label</string>
@@ -218,19 +218,26 @@
<elementAttributes>
<entry>
<string>Description</string>
- <string>(8 pixels wide x 8 pixels tall + 12 bit X + 12 bit Y + 8 bit priority)
-x 21 sprites
-&lt; 2**11 = 2048 words</string>
+ <string>8 bits tile pattern index
+10 bits Y position
+10 bits X position
+1 bit H flip
+1 bit V flip
+1 bit behind background? (priority)
+1 bit palette select
+= total 4 bytes per sprite
+x 64 sprites
+= 128 words</string>
</entry>
</elementAttributes>
- <pos x="-500" y="-320"/>
+ <pos x="-500" y="-540"/>
</visualElement>
<visualElement>
<elementName>Text</elementName>
<elementAttributes>
<entry>
<string>Description</string>
- <string>2**11 selector addresses for
+ <string>2**7 selector addresses for
sprite mem, starting from 0x0800</string>
</entry>
</elementAttributes>
@@ -374,40 +381,6 @@ sprite mem, starting from 0x0800</string>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>SMEMBUS</string>
- </entry>
- </elementAttributes>
- <pos x="-120" y="40"/>
- </visualElement>
- <visualElement>
- <elementName>Multiplexer</elementName>
- <elementAttributes>
- <entry>
- <string>Bits</string>
- <int>11</int>
- </entry>
- </elementAttributes>
- <pos x="-180" y="20"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>SM_QUERY</string>
- </entry>
- </elementAttributes>
- <pos x="-200" y="20"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
@@ -711,22 +684,12 @@ sprite mem, starting from 0x0800</string>
</entry>
<entry>
<string>Output Splitting</string>
- <string>9,1</string>
+ <string>1,9</string>
</entry>
</elementAttributes>
<pos x="640" y="460"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>Y</string>
- </entry>
- </elementAttributes>
- <pos x="700" y="460"/>
- </visualElement>
- <visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
@@ -735,22 +698,12 @@ sprite mem, starting from 0x0800</string>
</entry>
<entry>
<string>Output Splitting</string>
- <string>9,1</string>
+ <string>1,9</string>
</entry>
</elementAttributes>
<pos x="640" y="140"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>X</string>
- </entry>
- </elementAttributes>
- <pos x="700" y="140"/>
- </visualElement>
- <visualElement>
<elementName>Text</elementName>
<elementAttributes>
<entry>
@@ -803,31 +756,6 @@ sprite mem, starting from 0x0800</string>
<pos x="60" y="-180"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>Bits</string>
- <int>4</int>
- </entry>
- </elementAttributes>
- <pos x="0" y="-140"/>
- </visualElement>
- <visualElement>
- <elementName>Ground</elementName>
- <elementAttributes/>
- <pos x="20" y="-120"/>
- </visualElement>
- <visualElement>
- <elementName>Ground</elementName>
- <elementAttributes/>
- <pos x="40" y="-100"/>
- </visualElement>
- <visualElement>
- <elementName>Ground</elementName>
- <elementAttributes/>
- <pos x="60" y="-80"/>
- </visualElement>
- <visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
@@ -922,6 +850,147 @@ sprite mem, starting from 0x0800</string>
</elementAttributes>
<pos x="420" y="-120"/>
</visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-20" y="-160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="-140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Counter</elementName>
+ <elementAttributes/>
+ <pos x="-60" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>PCLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-60" y="-80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes/>
+ <pos x="-80" y="-120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes/>
+ <pos x="-80" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Text</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>TODO</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-280" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>SMEMBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>7</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-80" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>X</string>
+ </entry>
+ </elementAttributes>
+ <pos x="680" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y</string>
+ </entry>
+ </elementAttributes>
+ <pos x="680" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Text</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>TODO: 8x8x4 tile pattern memory</string>
+ </entry>
+ </elementAttributes>
+ <pos x="80" y="-460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="60" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Probe</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>SCAN BUF</string>
+ </entry>
+ </elementAttributes>
+ <pos x="160" y="-40"/>
+ </visualElement>
</visualElements>
<wires>
<wire>
@@ -977,24 +1046,24 @@ sprite mem, starting from 0x0800</string>
<p2 x="-220" y="-140"/>
</wire>
<wire>
- <p1 x="20" y="-140"/>
- <p2 x="80" y="-140"/>
- </wire>
- <wire>
<p1 x="140" y="-140"/>
- <p2 x="180" y="-140"/>
+ <p2 x="160" y="-140"/>
</wire>
<wire>
<p1 x="200" y="-140"/>
<p2 x="260" y="-140"/>
</wire>
<wire>
- <p1 x="-60" y="460"/>
- <p2 x="-40" y="460"/>
+ <p1 x="0" y="-140"/>
+ <p2 x="80" y="-140"/>
</wire>
<wire>
- <p1 x="660" y="460"/>
- <p2 x="700" y="460"/>
+ <p1 x="160" y="-140"/>
+ <p2 x="180" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="460"/>
+ <p2 x="-40" y="460"/>
</wire>
<wire>
<p1 x="600" y="460"/>
@@ -1009,10 +1078,6 @@ sprite mem, starting from 0x0800</string>
<p2 x="540" y="140"/>
</wire>
<wire>
- <p1 x="660" y="140"/>
- <p2 x="700" y="140"/>
- </wire>
- <wire>
<p1 x="600" y="140"/>
<p2 x="640" y="140"/>
</wire>
@@ -1021,12 +1086,12 @@ sprite mem, starting from 0x0800</string>
<p2 x="-220" y="-80"/>
</wire>
<wire>
- <p1 x="520" y="80"/>
- <p2 x="540" y="80"/>
+ <p1 x="0" y="-80"/>
+ <p2 x="20" y="-80"/>
</wire>
<wire>
- <p1 x="-220" y="80"/>
- <p2 x="-160" y="80"/>
+ <p1 x="520" y="80"/>
+ <p2 x="540" y="80"/>
</wire>
<wire>
<p1 x="520" y="400"/>
@@ -1053,10 +1118,6 @@ sprite mem, starting from 0x0800</string>
<p2 x="640" y="20"/>
</wire>
<wire>
- <p1 x="-200" y="20"/>
- <p2 x="-180" y="20"/>
- </wire>
- <wire>
<p1 x="160" y="340"/>
<p2 x="180" y="340"/>
</wire>
@@ -1077,10 +1138,6 @@ sprite mem, starting from 0x0800</string>
<p2 x="-100" y="540"/>
</wire>
<wire>
- <p1 x="0" y="-160"/>
- <p2 x="80" y="-160"/>
- </wire>
- <wire>
<p1 x="200" y="-160"/>
<p2 x="260" y="-160"/>
</wire>
@@ -1089,14 +1146,26 @@ sprite mem, starting from 0x0800</string>
<p2 x="420" y="-160"/>
</wire>
<wire>
+ <p1 x="-20" y="-160"/>
+ <p2 x="80" y="-160"/>
+ </wire>
+ <wire>
<p1 x="520" y="160"/>
<p2 x="540" y="160"/>
</wire>
<wire>
+ <p1 x="660" y="160"/>
+ <p2 x="680" y="160"/>
+ </wire>
+ <wire>
<p1 x="520" y="480"/>
<p2 x="540" y="480"/>
</wire>
<wire>
+ <p1 x="660" y="480"/>
+ <p2 x="680" y="480"/>
+ </wire>
+ <wire>
<p1 x="-380" y="-100"/>
<p2 x="-220" y="-100"/>
</wire>
@@ -1105,6 +1174,10 @@ sprite mem, starting from 0x0800</string>
<p2 x="80" y="-100"/>
</wire>
<wire>
+ <p1 x="-80" y="-100"/>
+ <p2 x="-60" y="-100"/>
+ </wire>
+ <wire>
<p1 x="600" y="100"/>
<p2 x="620" y="100"/>
</wire>
@@ -1137,14 +1210,6 @@ sprite mem, starting from 0x0800</string>
<p2 x="-340" y="40"/>
</wire>
<wire>
- <p1 x="-320" y="40"/>
- <p2 x="-200" y="40"/>
- </wire>
- <wire>
- <p1 x="-140" y="40"/>
- <p2 x="-120" y="40"/>
- </wire>
- <wire>
<p1 x="160" y="40"/>
<p2 x="180" y="40"/>
</wire>
@@ -1201,18 +1266,22 @@ sprite mem, starting from 0x0800</string>
<p2 x="-220" y="-120"/>
</wire>
<wire>
- <p1 x="40" y="-120"/>
- <p2 x="80" y="-120"/>
- </wire>
- <wire>
<p1 x="400" y="-120"/>
<p2 x="420" y="-120"/>
</wire>
<wire>
+ <p1 x="20" y="-120"/>
+ <p2 x="80" y="-120"/>
+ </wire>
+ <wire>
<p1 x="-380" y="-60"/>
<p2 x="-220" y="-60"/>
</wire>
<wire>
+ <p1 x="-80" y="-60"/>
+ <p2 x="-60" y="-60"/>
+ </wire>
+ <wire>
<p1 x="-60" y="380"/>
<p2 x="-40" y="380"/>
</wire>
@@ -1241,8 +1310,8 @@ sprite mem, starting from 0x0800</string>
<p2 x="-280" y="60"/>
</wire>
<wire>
- <p1 x="-200" y="60"/>
- <p2 x="-180" y="60"/>
+ <p1 x="-100" y="60"/>
+ <p2 x="-80" y="60"/>
</wire>
<wire>
<p1 x="440" y="60"/>
@@ -1257,8 +1326,8 @@ sprite mem, starting from 0x0800</string>
<p2 x="160" y="340"/>
</wire>
<wire>
- <p1 x="0" y="-160"/>
- <p2 x="0" y="-140"/>
+ <p1 x="160" y="-140"/>
+ <p2 x="160" y="-40"/>
</wire>
<wire>
<p1 x="-100" y="280"/>
@@ -1285,8 +1354,8 @@ sprite mem, starting from 0x0800</string>
<p2 x="260" y="60"/>
</wire>
<wire>
- <p1 x="-200" y="40"/>
- <p2 x="-200" y="60"/>
+ <p1 x="20" y="-120"/>
+ <p2 x="20" y="-80"/>
</wire>
<wire>
<p1 x="520" y="180"/>
@@ -1297,8 +1366,20 @@ sprite mem, starting from 0x0800</string>
<p2 x="520" y="520"/>
</wire>
<wire>
- <p1 x="40" y="-120"/>
- <p2 x="40" y="-100"/>
+ <p1 x="440" y="-20"/>
+ <p2 x="440" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="300"/>
+ <p2 x="440" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="60"/>
+ <p2 x="440" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="380"/>
+ <p2 x="440" y="460"/>
</wire>
<wire>
<p1 x="620" y="60"/>
@@ -1317,37 +1398,17 @@ sprite mem, starting from 0x0800</string>
<p2 x="620" y="340"/>
</wire>
<wire>
- <p1 x="20" y="-140"/>
- <p2 x="20" y="-120"/>
+ <p1 x="-80" y="-120"/>
+ <p2 x="-80" y="-100"/>
</wire>
<wire>
- <p1 x="440" y="-20"/>
- <p2 x="440" y="60"/>
- </wire>
- <wire>
- <p1 x="440" y="300"/>
- <p2 x="440" y="380"/>
- </wire>
- <wire>
- <p1 x="440" y="60"/>
- <p2 x="440" y="140"/>
- </wire>
- <wire>
- <p1 x="440" y="380"/>
- <p2 x="440" y="460"/>
- </wire>
- <wire>
- <p1 x="60" y="-100"/>
- <p2 x="60" y="-80"/>
+ <p1 x="-80" y="-60"/>
+ <p2 x="-80" y="-40"/>
</wire>
<wire>
<p1 x="-320" y="80"/>
<p2 x="-320" y="100"/>
</wire>
- <wire>
- <p1 x="-160" y="60"/>
- <p2 x="-160" y="80"/>
- </wire>
</wires>
<measurementOrdering/>
</circuit> \ No newline at end of file