diff options
| -rw-r--r-- | asm/bootstrap.atk16 | 4 | ||||
| -rw-r--r-- | asm/text_mode.atk16 | 28 | ||||
| -rw-r--r-- | charset.txt | 8 | ||||
| -rw-r--r-- | digital/atk16.dig | 97 | ||||
| -rw-r--r-- | digital/atk16_mem.dig | 8 | ||||
| -rw-r--r-- | digital/atk16_tpu.dig | 472 |
6 files changed, 280 insertions, 337 deletions
diff --git a/asm/bootstrap.atk16 b/asm/bootstrap.atk16 index 47f411e..9d69872 100644 --- a/asm/bootstrap.atk16 +++ b/asm/bootstrap.atk16 @@ -8,6 +8,8 @@ @let vt_term_pp_addr 0x15 ; Terminal peripheral address @let vt_kb_pp_addr 0x16 ; Keyboard peripheral address @let vt_gr_mode_addr 0x17 ; Graphics mode setting address +@let vt_sprite_mem 0x18 ; Sprite memory address +@let vt_text_mem 0x19 ; Text memory buffer address ; memory segments @let stack_segment 0x8000 @@ -34,6 +36,8 @@ terminal_addr ; 0x15 keyboard_addr ; 0x16 gr_mode_addr ; 0x17 + sprite_mem ; 0x18 + text_mem ; 0x19 @label hlt_isr ldi 0x55 RE diff --git a/asm/text_mode.atk16 b/asm/text_mode.atk16 index 8fbdb83..f560c68 100644 --- a/asm/text_mode.atk16 +++ b/asm/text_mode.atk16 @@ -2,11 +2,37 @@ @opt csr_scratch RH @use ext_std:* -; bootstrap code (must be called to setup mandatory data) +; bootstrap code (must be called to set up mandatory data) ; will jump to label main @include bootstrap @label main + ldi vt_text_mem RA + ldr RA RA + ldi 4 RB ; letter D + str RB RA + addi RA 1 RA + ldi 5 RB ; letter E + str RB RA + addi RA 1 RA + ldi 1 RB ; letter A + str RB RA + addi RA 1 RA + ldi 4 RB ; letter D + str RB RA + addi RA 1 RA + ldi 2 RB ; letter B + str RB RA + addi RA 1 RA + ldi 5 RB ; letter E + str RB RA + addi RA 1 RA + ldi 5 RB ; letter E + str RB RA + addi RA 1 RA + ldi 6 RB ; letter F + str RB RA + ; set graphics mode to sprite mode ; set_graphics_mode gr_sprite_mode set_graphics_mode gr_text_mode diff --git a/charset.txt b/charset.txt index 57ea48c..d3336e5 100644 --- a/charset.txt +++ b/charset.txt @@ -6,6 +6,14 @@ + + + + + + + + ██ ████ ██ ██ diff --git a/digital/atk16.dig b/digital/atk16.dig index 37530a8..c028bd7 100644 --- a/digital/atk16.dig +++ b/digital/atk16.dig @@ -1593,48 +1593,6 @@ </entry> <entry> <string>NetName</string> - <string>DBUS</string> - </entry> - </elementAttributes> - <pos x="680" y="1000"/> - </visualElement> - <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation rotation="2"/> - </entry> - <entry> - <string>NetName</string> - <string>CLK</string> - </entry> - </elementAttributes> - <pos x="680" y="980"/> - </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="680" y="960"/> - </visualElement> - <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation rotation="2"/> - </entry> - <entry> - <string>NetName</string> <string>MMIO_IE</string> </entry> </elementAttributes> @@ -1782,6 +1740,39 @@ <elementAttributes/> <pos x="400" y="740"/> </visualElement> + <visualElement> + <elementName>Break</elementName> + <elementAttributes/> + <pos x="880" y="280"/> + </visualElement> + <visualElement> + <elementName>Tunnel</elementName> + <elementAttributes> + <entry> + <string>rotation</string> + <rotation rotation="2"/> + </entry> + <entry> + <string>NetName</string> + <string>DBUS</string> + </entry> + </elementAttributes> + <pos x="680" y="960"/> + </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="680" y="1020"/> + </visualElement> </visualElements> <wires> <wire> @@ -1913,10 +1904,6 @@ <p2 x="-160" y="400"/> </wire> <wire> - <p1 x="580" y="1040"/> - <p2 x="700" y="1040"/> - </wire> - <wire> <p1 x="-280" y="-20"/> <p2 x="-260" y="-20"/> </wire> @@ -1973,6 +1960,10 @@ <p2 x="700" y="280"/> </wire> <wire> + <p1 x="860" y="280"/> + <p2 x="880" y="280"/> + </wire> + <wire> <p1 x="680" y="920"/> <p2 x="700" y="920"/> </wire> @@ -2317,7 +2308,7 @@ <p2 x="-20" y="340"/> </wire> <wire> - <p1 x="680" y="980"/> + <p1 x="560" y="980"/> <p2 x="700" y="980"/> </wire> <wire> @@ -2449,7 +2440,7 @@ <p2 x="-160" y="360"/> </wire> <wire> - <p1 x="680" y="1000"/> + <p1 x="580" y="1000"/> <p2 x="700" y="1000"/> </wire> <wire> @@ -2541,7 +2532,7 @@ <p2 x="-160" y="380"/> </wire> <wire> - <p1 x="560" y="1020"/> + <p1 x="680" y="1020"/> <p2 x="700" y="1020"/> </wire> <wire> @@ -2574,7 +2565,7 @@ </wire> <wire> <p1 x="580" y="860"/> - <p2 x="580" y="1040"/> + <p2 x="580" y="1000"/> </wire> <wire> <p1 x="900" y="600"/> @@ -2641,6 +2632,10 @@ <p2 x="280" y="-100"/> </wire> <wire> + <p1 x="860" y="220"/> + <p2 x="860" y="280"/> + </wire> + <wire> <p1 x="-160" y="220"/> <p2 x="-160" y="240"/> </wire> @@ -2714,7 +2709,7 @@ </wire> <wire> <p1 x="560" y="840"/> - <p2 x="560" y="1020"/> + <p2 x="560" y="980"/> </wire> <wire> <p1 x="880" y="500"/> diff --git a/digital/atk16_mem.dig b/digital/atk16_mem.dig index c3f000a..ed686e6 100644 --- a/digital/atk16_mem.dig +++ b/digital/atk16_mem.dig @@ -35,9 +35,11 @@ </entry> <entry> <string>Data</string> - <data>4014,2a00,6027,13*8000,1a,18,18,18,8000,e000,e001,e002,4855,f000 -,3140,1b48,3148,1b48,4016,2000,2000,4215,2240,3040,1800,3148,1b48 -,3140,1b48,e000,4017,2000,4200,3008,6000,4017,2000,4201,3008,61ff</data> + <data>4014,2a00,6029,13*8000,1c,1a,1a,1a,8000,e000,e001,e002,e800,f800 +,4855,f000,3140,1b48,3148,1b48,4016,2000,2000,4215,2240,3040,1800 +,3148,1b48,3140,1b48,e000,4017,2000,4200,3008,6000,4019,2000,4204 +,3008,1008,4205,3008,1008,4201,3008,1008,4204,3008,1008,4202,3008 +,1008,4205,3008,1008,4205,3008,1008,4206,3008,4017,2000,4201,3008,61ff</data> </entry> </elementAttributes> <pos x="740" y="100"/> diff --git a/digital/atk16_tpu.dig b/digital/atk16_tpu.dig index 9f006b3..5126eea 100644 --- a/digital/atk16_tpu.dig +++ b/digital/atk16_tpu.dig @@ -129,54 +129,6 @@ <elementAttributes> <entry> <string>Description</string> - <string>Pixel clock</string> - </entry> - <entry> - <string>Label</string> - <string>PCLK</string> - </entry> - </elementAttributes> - <pos x="320" y="520"/> - </visualElement> - <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>NetName</string> - <string>PCLK</string> - </entry> - </elementAttributes> - <pos x="340" y="520"/> - </visualElement> - <visualElement> - <elementName>In</elementName> - <elementAttributes> - <entry> - <string>Description</string> - <string>CPU clock</string> - </entry> - <entry> - <string>Label</string> - <string>CLK</string> - </entry> - </elementAttributes> - <pos x="320" y="560"/> - </visualElement> - <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>NetName</string> - <string>CLK</string> - </entry> - </elementAttributes> - <pos x="340" y="560"/> - </visualElement> - <visualElement> - <elementName>In</elementName> - <elementAttributes> - <entry> - <string>Description</string> <string>Data bus</string> </entry> <entry> @@ -361,109 +313,6 @@ <pos x="580" y="700"/> </visualElement> <visualElement> - <elementName>Counter</elementName> - <elementAttributes> - <entry> - <string>Bits</string> - <int>3</int> - </entry> - </elementAttributes> - <pos x="480" y="900"/> - </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="460" y="920"/> - </visualElement> - <visualElement> - <elementName>VDD</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation rotation="1"/> - </entry> - </elementAttributes> - <pos x="460" y="900"/> - </visualElement> - <visualElement> - <elementName>Counter</elementName> - <elementAttributes> - <entry> - <string>Bits</string> - <int>6</int> - </entry> - </elementAttributes> - <pos x="480" y="1040"/> - </visualElement> - <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>NetName</string> - <string>CX</string> - </entry> - </elementAttributes> - <pos x="580" y="860"/> - </visualElement> - <visualElement> - <elementName>VDD</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation reference="../../../../visualElement[30]/elementAttributes/entry/rotation"/> - </entry> - </elementAttributes> - <pos x="440" y="1040"/> - </visualElement> - <visualElement> - <elementName>Ground</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation rotation="1"/> - </entry> - </elementAttributes> - <pos x="460" y="1080"/> - </visualElement> - <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>NetName</string> - <string>TX</string> - </entry> - </elementAttributes> - <pos x="560" y="1040"/> - </visualElement> - <visualElement> - <elementName>Not</elementName> - <elementAttributes/> - <pos x="380" y="400"/> - </visualElement> - <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation rotation="2"/> - </entry> - <entry> - <string>NetName</string> - <string>COVF</string> - </entry> - </elementAttributes> - <pos x="360" y="400"/> - </visualElement> - <visualElement> <elementName>Probe</elementName> <elementAttributes> <entry> @@ -490,9 +339,9 @@ </entry> <entry> <string>Data</string> - <data>c,1e,33,33,3f,33,33,0,3f,66,66,3e,66,66,3f,0,3c,66,3,3,3,66,3c -,0,1f,36,66,66,66,36,1f,0,7f,46,16,1e,16,46,7f,0,7f,46,16,1e,16 -,6,f,0,3c,66,3,3,73,66,7c,0,33,33,33,3f,33,33,33,0,1e,5*c,1e</data> + <data>8*0,c,1e,33,33,3f,33,33,0,3f,66,66,3e,66,66,3f,0,3c,66,3,3,3,66 +,3c,0,1f,36,66,66,66,36,1f,0,7f,46,16,1e,16,46,7f,0,7f,46,16,1e +,16,6,f,0,3c,66,3,3,73,66,7c,0,33,33,33,3f,33,33,33,0,1e,5*c,1e</data> </entry> <entry> <string>intFormat</string> @@ -526,7 +375,7 @@ <elementAttributes> <entry> <string>rotation</string> - <rotation reference="../../../../visualElement[41]/elementAttributes/entry/rotation"/> + <rotation reference="../../../../visualElement[27]/elementAttributes/entry/rotation"/> </entry> </elementAttributes> <pos x="700" y="700"/> @@ -624,26 +473,6 @@ <pos x="1040" y="660"/> </visualElement> <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>NetName</string> - <string>COVF</string> - </entry> - </elementAttributes> - <pos x="600" y="920"/> - </visualElement> - <visualElement> - <elementName>Ground</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation rotation="1"/> - </entry> - </elementAttributes> - <pos x="460" y="940"/> - </visualElement> - <visualElement> <elementName>Multiplexer</elementName> <elementAttributes> <entry> @@ -654,20 +483,6 @@ <pos x="280" y="300"/> </visualElement> <visualElement> - <elementName>Splitter</elementName> - <elementAttributes> - <entry> - <string>Input Splitting</string> - <string>5,6</string> - </entry> - <entry> - <string>Output Splitting</string> - <string>11</string> - </entry> - </elementAttributes> - <pos x="140" y="300"/> - </visualElement> - <visualElement> <elementName>Tunnel</elementName> <elementAttributes> <entry> @@ -682,20 +497,6 @@ <pos x="100" y="300"/> </visualElement> <visualElement> - <elementName>Tunnel</elementName> - <elementAttributes> - <entry> - <string>rotation</string> - <rotation rotation="2"/> - </entry> - <entry> - <string>NetName</string> - <string>TX</string> - </entry> - </elementAttributes> - <pos x="100" y="340"/> - </visualElement> - <visualElement> <elementName>And</elementName> <elementAttributes> <entry> @@ -833,6 +634,145 @@ </elementAttributes> <pos x="-20" y="580"/> </visualElement> + <visualElement> + <elementName>Counter</elementName> + <elementAttributes> + <entry> + <string>Label</string> + <string>CLK divider /4</string> + </entry> + </elementAttributes> + <pos x="40" y="860"/> + </visualElement> + <visualElement> + <elementName>VDD</elementName> + <elementAttributes> + <entry> + <string>rotation</string> + <rotation rotation="1"/> + </entry> + </elementAttributes> + <pos x="0" y="860"/> + </visualElement> + <visualElement> + <elementName>Ground</elementName> + <elementAttributes/> + <pos x="20" y="920"/> + </visualElement> + <visualElement> + <elementName>In</elementName> + <elementAttributes> + <entry> + <string>Description</string> + <string>Pixel clock</string> + </entry> + <entry> + <string>Label</string> + <string>PCLK</string> + </entry> + </elementAttributes> + <pos x="-60" y="880"/> + </visualElement> + <visualElement> + <elementName>Tunnel</elementName> + <elementAttributes> + <entry> + <string>NetName</string> + <string>CLK</string> + </entry> + </elementAttributes> + <pos x="200" y="880"/> + </visualElement> + <visualElement> + <elementName>Tunnel</elementName> + <elementAttributes> + <entry> + <string>rotation</string> + <rotation rotation="2"/> + </entry> + <entry> + <string>NetName</string> + <string>X</string> + </entry> + </elementAttributes> + <pos x="480" y="820"/> + </visualElement> + <visualElement> + <elementName>Splitter</elementName> + <elementAttributes> + <entry> + <string>Input Splitting</string> + <string>9</string> + </entry> + <entry> + <string>Output Splitting</string> + <string>3,6</string> + </entry> + </elementAttributes> + <pos x="520" y="820"/> + </visualElement> + <visualElement> + <elementName>Tunnel</elementName> + <elementAttributes> + <entry> + <string>NetName</string> + <string>TX</string> + </entry> + </elementAttributes> + <pos x="580" y="840"/> + </visualElement> + <visualElement> + <elementName>Tunnel</elementName> + <elementAttributes> + <entry> + <string>NetName</string> + <string>CX</string> + </entry> + </elementAttributes> + <pos x="580" y="800"/> + </visualElement> + <visualElement> + <elementName>Tunnel</elementName> + <elementAttributes> + <entry> + <string>rotation</string> + <rotation rotation="2"/> + </entry> + <entry> + <string>NetName</string> + <string>CLK</string> + </entry> + </elementAttributes> + <pos x="440" y="380"/> + </visualElement> + <visualElement> + <elementName>Tunnel</elementName> + <elementAttributes> + <entry> + <string>rotation</string> + <rotation rotation="2"/> + </entry> + <entry> + <string>NetName</string> + <string>TX</string> + </entry> + </elementAttributes> + <pos x="100" y="260"/> + </visualElement> + <visualElement> + <elementName>Splitter</elementName> + <elementAttributes> + <entry> + <string>Input Splitting</string> + <string>6,5</string> + </entry> + <entry> + <string>Output Splitting</string> + <string>11</string> + </entry> + </elementAttributes> + <pos x="160" y="280"/> + </visualElement> </visualElements> <wires> <wire> @@ -848,10 +788,6 @@ <p2 x="600" y="320"/> </wire> <wire> - <p1 x="120" y="320"/> - <p2 x="140" y="320"/> - </wire> - <wire> <p1 x="320" y="320"/> <p2 x="480" y="320"/> </wire> @@ -868,26 +804,26 @@ <p2 x="1040" y="640"/> </wire> <wire> - <p1 x="540" y="900"/> - <p2 x="560" y="900"/> - </wire> - <wire> - <p1 x="460" y="900"/> - <p2 x="480" y="900"/> + <p1 x="20" y="900"/> + <p2 x="40" y="900"/> </wire> <wire> <p1 x="-20" y="580"/> <p2 x="20" y="580"/> </wire> <wire> - <p1 x="320" y="520"/> - <p2 x="340" y="520"/> + <p1 x="100" y="260"/> + <p2 x="120" y="260"/> </wire> <wire> <p1 x="-20" y="520"/> <p2 x="0" y="520"/> </wire> <wire> + <p1 x="540" y="840"/> + <p2 x="580" y="840"/> + </wire> + <wire> <p1 x="880" y="400"/> <p2 x="900" y="400"/> </wire> @@ -896,14 +832,6 @@ <p2 x="480" y="400"/> </wire> <wire> - <p1 x="360" y="400"/> - <p2 x="380" y="400"/> - </wire> - <wire> - <p1 x="420" y="400"/> - <p2 x="440" y="400"/> - </wire> - <wire> <p1 x="480" y="720"/> <p2 x="520" y="720"/> </wire> @@ -920,22 +848,10 @@ <p2 x="860" y="720"/> </wire> <wire> - <p1 x="440" y="1040"/> - <p2 x="480" y="1040"/> - </wire> - <wire> - <p1 x="540" y="1040"/> - <p2 x="560" y="1040"/> - </wire> - <wire> <p1 x="840" y="340"/> <p2 x="860" y="340"/> </wire> <wire> - <p1 x="100" y="340"/> - <p2 x="120" y="340"/> - </wire> - <wire> <p1 x="260" y="340"/> <p2 x="280" y="340"/> </wire> @@ -956,24 +872,20 @@ <p2 x="820" y="660"/> </wire> <wire> - <p1 x="540" y="920"/> - <p2 x="580" y="920"/> - </wire> - <wire> - <p1 x="460" y="920"/> - <p2 x="480" y="920"/> + <p1 x="180" y="280"/> + <p2 x="220" y="280"/> </wire> <wire> - <p1 x="580" y="920"/> - <p2 x="600" y="920"/> + <p1 x="120" y="280"/> + <p2 x="160" y="280"/> </wire> <wire> <p1 x="320" y="220"/> <p2 x="340" y="220"/> </wire> <wire> - <p1 x="560" y="860"/> - <p2 x="580" y="860"/> + <p1 x="0" y="860"/> + <p2 x="40" y="860"/> </wire> <wire> <p1 x="0" y="540"/> @@ -992,12 +904,12 @@ <p2 x="360" y="480"/> </wire> <wire> - <p1 x="540" y="740"/> - <p2 x="580" y="740"/> + <p1 x="560" y="800"/> + <p2 x="580" y="800"/> </wire> <wire> - <p1 x="460" y="1060"/> - <p2 x="480" y="1060"/> + <p1 x="540" y="740"/> + <p2 x="580" y="740"/> </wire> <wire> <p1 x="880" y="360"/> @@ -1020,10 +932,6 @@ <p2 x="720" y="680"/> </wire> <wire> - <p1 x="460" y="1000"/> - <p2 x="580" y="1000"/> - </wire> - <wire> <p1 x="600" y="620"/> <p2 x="640" y="620"/> </wire> @@ -1036,20 +944,12 @@ <p2 x="860" y="620"/> </wire> <wire> - <p1 x="460" y="940"/> - <p2 x="480" y="940"/> - </wire> - <wire> - <p1 x="100" y="300"/> - <p2 x="140" y="300"/> - </wire> - <wire> - <p1 x="160" y="300"/> + <p1 x="220" y="300"/> <p2 x="280" y="300"/> </wire> <wire> - <p1 x="320" y="560"/> - <p2 x="340" y="560"/> + <p1 x="100" y="300"/> + <p2 x="160" y="300"/> </wire> <wire> <p1 x="80" y="560"/> @@ -1060,6 +960,14 @@ <p2 x="20" y="560"/> </wire> <wire> + <p1 x="-60" y="880"/> + <p2 x="40" y="880"/> + </wire> + <wire> + <p1 x="100" y="880"/> + <p2 x="200" y="880"/> + </wire> + <wire> <p1 x="-80" y="500"/> <p2 x="-40" y="500"/> </wire> @@ -1068,12 +976,16 @@ <p2 x="20" y="500"/> </wire> <wire> - <p1 x="320" y="120"/> - <p2 x="340" y="120"/> + <p1 x="480" y="820"/> + <p2 x="520" y="820"/> </wire> <wire> - <p1 x="460" y="1080"/> - <p2 x="480" y="1080"/> + <p1 x="540" y="820"/> + <p2 x="560" y="820"/> + </wire> + <wire> + <p1 x="320" y="120"/> + <p2 x="340" y="120"/> </wire> <wire> <p1 x="840" y="760"/> @@ -1108,10 +1020,6 @@ <p2 x="580" y="360"/> </wire> <wire> - <p1 x="580" y="920"/> - <p2 x="580" y="1000"/> - </wire> - <wire> <p1 x="900" y="640"/> <p2 x="900" y="660"/> </wire> @@ -1128,10 +1036,6 @@ <p2 x="840" y="760"/> </wire> <wire> - <p1 x="460" y="1000"/> - <p2 x="460" y="1060"/> - </wire> - <wire> <p1 x="300" y="340"/> <p2 x="300" y="360"/> </wire> @@ -1152,8 +1056,8 @@ <p2 x="560" y="720"/> </wire> <wire> - <p1 x="560" y="860"/> - <p2 x="560" y="900"/> + <p1 x="560" y="800"/> + <p2 x="560" y="820"/> </wire> <wire> <p1 x="1040" y="640"/> @@ -1164,12 +1068,16 @@ <p2 x="-20" y="560"/> </wire> <wire> - <p1 x="440" y="380"/> - <p2 x="440" y="400"/> + <p1 x="20" y="900"/> + <p2 x="20" y="920"/> + </wire> + <wire> + <p1 x="120" y="260"/> + <p2 x="120" y="280"/> </wire> <wire> - <p1 x="120" y="320"/> - <p2 x="120" y="340"/> + <p1 x="220" y="280"/> + <p2 x="220" y="300"/> </wire> </wires> <measurementOrdering/> |
