OpenCores
URL https://opencores.org/ocsvn/z80soc/z80soc/trunk

Subversion Repositories z80soc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 22 to Rev 23
    Reverse comparison

Rev 22 → Rev 23

/trunk/doc/README-DE1.txt
3,7 → 3,6
Arquitecture
------------
 
 
SW9 - Reserved - Reset
SW8 - Reserved
LEDR9 - Reserved
11,41 → 10,32
 
Memory
------
0000H - 01FFH - ROM (0 - 8191)
2000H - 3FFFH - VIDEO RAM (8192 - 16383)
4000H - FFFFH - RAM (16384 - 65535)
0000H - 3FFFH - ROM (0 - 16383)
4000H - 5FFFH - VIDEO RAM (16384 - 24575)
8000H - FFFFH - RAM memory (32768 - 65535)
 
IO
--
Registers
---------
7FDDH - Z80SOC VERSION (0 = DE1, 1 = S3E)
7FDEH - 7FDFH - STACK ADDRESS (should be loaded with "ld sp,(7FDEh)" in the beginning of program
 
Output Ports
------------
01H - Green Leds (7-0)
02H - Red Leds (7-0)
IO (Ports)
----------
 
10H - HEX1 - HEX0
11H - HEX3 - HEX2
01H - Out - Green Leds (7-0)
02H - Out - Red Leds (7-0)
 
10H - Out - HEX1 - HEX0
11H - Out - HEX3 - HEX2
20H - In - SW(7-0)
30H - In - KEY(3-0)
80H - In - PS/2 keyboard
90H - Out - Video
91H - InOut - Video cursor X
92H - InOut - Video cursor Y
 
 
Inputs
------
20H - SW(7-0)
 
30H - KEY(3-0)
 
Video
-----
2000h - 1FFFH Video RAM Memory
2000h - 24B0H Text Video memory
 
Keyboard
--------
80H - Read Keyboard Ascii code
 
Input/Output
------------
 
GPIO Expansion pins
-------------------
All write operations to GPIO are buffered.
To write the buffered signals to the pins, the Z80 must
write any value to port C0 (GPIO0) or C1 (GPIO1)
80,7 → 70,7
Input push buttons
Input Switches
PS/2 keyboard
Video text out
Video text out (memory mapped and port mapped io)
Leds
7seg display
 
98,12 → 88,14
takes effect after a Z80 reset.
To reset the Z80, use SW9.
 
The looping text inside the box demonstrates how to access the video ram.
To change speed of scrolling, use the switches (SW).
 
Hope you enjoy.
 
TO-DO:
----
 
- Expand the character sets (this versions have only uppercase letters and numbers)
- 80x40 Video display
- Serial communication
- Monitor program to allow download of programs by serial communication
/trunk/doc/README-S3E.txt
7,37 → 7,28
 
Memory
------
0000H - 01FFH - ROM (0 - 8191)
2000H - 3FFFH - VIDEO RAM (8192 - 16383)
4000H - 7FFFH - RAM memory (16384 - 32767)
8000H - 801FH - LCD Video RAM (32768 - 32769)
0000H - 3FFFH - ROM (0 - 16383)
4000H - 5FFFH - VIDEO RAM (16384 - 24575)
7FE0H - 7FFFH - LCD Video RAM (32736 - 32767)
8000H - BFFFH - RAM memory (32768 - 49151)
 
IO
--
Registers
---------
7FDDH - Z80SOC VERSION (0 = DE1, 1 = S3E)
7FDEH - 7FDFH - STACK ADDRESS (should be loaded with "ld sp,(7FDEh)" in the beginning of program
 
Output Ports
------------
01H - Green Leds (7-0)
IO (Ports)
----------
 
Inputs
------
01H - Out - Green Leds (7-0)
20H - In - SW(3-0)
30H - In - KEY(3-0)
70H - In - Rotary control direction
80H - In - PS/2 Keyboard
90H - Out - Video
91H - Out - Video cursor X
92H - Out - Video cursor Y
 
Switches
--------
20H - SW(3-0)
 
Push Buttons
------------
30H - KEY(3-0)
 
Rotary Knob
-----------
70H - Rotary control direction
 
Keyboard
--------
80H - Read Keyboard Ascii code
 
--
 
Reference Sample ROM
52,7 → 43,7
Input push buttons
Input Switches
PS/2 keyboard
Video text out
Video text out (memory mapped and port mapped)
Leds
LCD
Rotary Knob
70,8 → 61,11
 
The Rotary knob can be used at any time to rotate the text in the LCD to the left or to the right.
 
To reset the Z80, use Key West (left push button).
The looping text inside the box demonstrates how to access the video ram.
To change speed of scrolling, use the switches (SW).
 
To reset the Z80, press the Knob Button (rotary).
 
Hope you enjoy.
 
TO-DO:
/trunk/doc/RevisionHistory.txt
1,3 → 1,12
2008/05/24 - Modified RAM layout to support new and future improvements
- Added port 0x90 to write a character to video.
- Cursor x,y automatically updated after writing to port 0x90
- Added port 0x91 for video cursor X
- Added port 0x92 for video cursor Y
- Added suport for reading VRAM (dual port, dual clock vram)
- Updated ROM to demonstrate how to use these new resources
- Changed ROM to support 14 bit addresses (16 Kb)
 
2008/05/14 - Implemented small changes in Rotary knob logic.
- Modified ROM to demonstrate rotary function.
 
/trunk/DE1/ROM/rom.hex
1,3 → 1,12
31, FF, FF, CD, C7, 00, 21, 32, 20, 11, 0E, 01, CD, D7, 00, 21, 5A, 20, 11, 21, 01, CD, D7, 00, CD, E8, 00, 21, 46, 21, 11, 34, 01, CD, D7, 00, 21, 96, 21, 11, 50, 01, CD, D7, 00, 21, E6, 21, 11, 6D, 01, CD, D7, 00, 21, 36, 22, 11, 8A, 01, CD, D7, 00, 21, 5E, 22, 11, 9E, 01, CD, D7, 00, DB, 20, 32, 00, E0, 11, D6, 22, 01, 1E, 00, CD, DF, 00, FE, 41, 28, 0B, D3, 11, 12, 13, 0B, 78, B1, 28, EA, 18, EE, 21, 00, 40, 3E, 00, 77, 23, 3C, 20, FB, 3E, 01, D3, 01, CD, B9, 00, CD, B9, 00, CD, B9, 00, CD, A6, 00, CD, B9, 00, CD, A6, 00, 21, 00, 40, 7C, D3, 11, 7D, D3, 10, 7E, D3, 01, CD, B9, 00, 23, 7E, FE, FF, 20, EE, 3E, 00, D3, 01, D3, 02, CD, A6, 00, C3, 03, 00, CD, B9, 00, DB, 30, D3, 10, FE, 0E, 20, F5, C9, 3A, 00, E0, 3D, 20, FD, C9, 3A, 00, E0, F5, 3E, FF, 3D, 20, FD, F1, 3D, 20, F6, C9, 21, 00, 20, 11, B0, 04, 3E, 20, 77, 23, 1B, 7A, B3, 20, F7, C9, 1A, B7, C8, 77, 23, 13, 18, F8, CD, B9, 00, DB, 80, B7, 28, F8, C9, 11, BD, 01, 21, F5, 20, CD, D7, 00, 21, 1D, 21, 3E, 0A, 11, FF, 01, F5, E5, CD, D7, 00, E1, F1, 01, 28, 00, 09, 3D, 20, EF, 11, DE, 01, CD, D7, 00, C9, 5A, 38, 30, 20, 53, 59, 53, 54, 45, 4D, 20, 4F, 4E, 20, 43, 48, 49, 50, 00, 52, 4F, 4E, 49, 56, 4F, 4E, 20, 43, 4F, 53, 54, 41, 20, 32, 30, 30, 38, 00, 20, 20, 7C, 21, 23, 24, 25, 26, 2F, 28, 29, 3D, 3F, 2A, 60, 2B, B4, E7, 7E, 5E, 2C, 2E, 3B, 3A, 5C, 3C, 3E, 00, 20, 20, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 00, 20, 20, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 00, 20, 20, 20, 20, 20, 20, 20, 20, 20, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 00, 02, 03, 04, 0B, 0C, 0D, 0E, 12, 18, 19, 1A, 1B, E8, E9, EB, BB, BC, 8A, 86, 87, 81, 80, 01, 06, 07, 08, 09, 0A, 1D, 1F, 00, C9, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, BB, 00, C8, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, BC, 00, BA, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, BA, 00
ED, 7B, DE, 7F, 3A, DD, 7F, B7, 28, 03, CD, 96, 01, CD, F4, 00, 11, 34, 40, 21, 12, 02, CD, 07, 01, 11, 5C, 40, 21, 25, 02, CD, 07, 01, CD, 12, 01, 11, 46, 41, 21, 38, 02, CD, 07, 01, 11, 96, 41, 21, 54, 02, CD, 07, 01, 11, E6, 41, 21, 71, 02, CD, 07, 01, 11, 36, 42, 21, 8E, 02, CD, 07, 01, 11, 5E, 42, 21, A2, 02, CD, 07, 01, 21, 45, 03, 3A, DD, 7F, B7, 28, 03, 21, 51, 03, 11, 87, 40, CD, 07, 01, 11, D6, 42, 01, 1E, 00, C5, D5, CD, DF, 00, CD, 3C, 01, 3A, DD, 7F, B7, 28, 03, CD, 6F, 01, CD, 0F, 01, D1, C1, B7, 28, E7, FE, 41, 28, 15, D3, 01, 6F, 3A, DD, 7F, B7, 20, 03, 7D, D3, 11, 12, 13, 0B, 78, B1, 28, CA, 18, CE, 21, 00, 80, 3E, 00, 77, 23, 3C, 20, FB, CD, CA, 00, 21, 00, 80, 3A, DD, 7F, B7, 20, 06, 7C, D3, 11, 7D, D3, 10, 7E, D3, 01, CD, DF, 00, 23, 7E, FE, FF, 20, F4, CD, CA, 00, C3, 04, 00, CD, DF, 00, DB, 30, FE, 01, 20, F7, C9, DB, 20, B7, 20, 02, 3E, 01, 3D, 20, FD, C9, DB, 20, B7, 20, 02, 3E, 01, F5, 01, 88, 13, 0B, 78, B1, 20, FB, F1, 3D, 20, F3, C9, 3E, 00, D3, 91, D3, 92, 01, B0, 04, 3E, 20, D3, 90, 0B, 78, B1, 20, F7, C9, 7E, B7, C8, 12, 23, 13, 18, F8, DB, 80, C9, 21, C1, 02, 11, F5, 40, CD, 07, 01, 11, 1D, 41, 3E, 0A, 21, 03, 03, E5, F5, D5, CD, 07, 01, D1, F1, 21, 28, 00, 19, 54, 5D, E1, 3D, 20, EB, 21, E2, 02, CD, 07, 01, C9, 21, 1E, 41, 11, 00, 90, 01, 1E, 00, ED, B0, 21, 46, 41, 11, 1E, 41, 06, 09, C5, E5, D5, 01, 1E, 00, ED, B0, D1, 21, 28, 00, 19, 54, 5D, E1, 01, 28, 00, 09, C1, 10, E9, 21, 00, 90, 01, 1E, 00, ED, B0, C9, C5, D5, CD, AD, 01, FE, 01, 20, 07, CD, EE, 01, 3E, 01, 18, 09, FE, 02, 20, 10, CD, CA, 01, 3E, 80, D3, 01, 11, E0, 7F, 21, 00, 91, CD, 07, 01, D1, C1, C9, 11, 00, 91, 21, 24, 03, 01, 21, 00, ED, B0, 11, E0, 7F, 21, 00, 91, 01, 20, 00, ED, B0, C9, CD, BE, 01, 3E, 00, C0, DB, 70, C9, 3A, 00, 90, 3D, 32, 00, 90, C9, 3A, 01, 90, 3D, 20, 02, 3E, 10, 32, 01, 90, C9, 3A, 00, 91, 32, 02, 90, 3A, 10, 91, 32, 03, 90, 21, 01, 91, 11, 00, 91, 01, 1F, 00, ED, B0, 3A, 02, 90, 32, 0F, 91, 3A, 03, 90, 32, 1F, 91, C9, 3A, 0F, 91, 32, 02, 90, 3A, 1F, 91, 32, 03, 90, 21, 1E, 91, 11, 1F, 91, 01, 1F, 00, ED, B8, 3A, 02, 90, 32, 00, 91, 3A, 03, 90, 32, 10, 91, C9, 5A, 38, 30, 20, 53, 59, 53, 54, 45, 4D, 20, 4F, 4E, 20, 43, 48, 49, 50, 00, 52, 4F, 4E, 49, 56, 4F, 4E, 20, 43, 4F, 53, 54, 41, 20, 32, 30, 30, 38, 00, 20, 20, 7C, 21, 23, 24, 25, 26, 2F, 28, 29, 3D, 3F, 2A, 60, 2B, B4, E7, 7E, 5E, 2C, 2E, 3B, 3A, 5C, 3C, 3E, 00, 20, 20, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 00, 20, 20, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7A, 00, 20, 20, 20, 20, 20, 20, 20, 20, 20, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 00, 02, 03, 04, 0B, 0C, 0D, 0E, 12, 18, 19, 1A, 1B, E8, E9, EB, BB, BC, 8A, 86, 87, 81, 80, 01, 06, 07, 08, 09, 0A, 1D, 1F, 00, C9, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, BB, 00, C8, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, CD, BC, 00, BA, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, BA, 00, 20, 20, 20, 5A, 38, 30, 20, 53, 59, 53, 54, 45, 4D, 20, 20, 20, 20, 52, 4F, 4E, 49, 56, 4F, 4E, 20, 20, 43, 4F, 53, 54, 41, 20, 00, 44, 45, 31, 20, 56, 65, 72, 73, 69, 6F, 6E, 00, 53, 33, 45, 20, 56, 65, 72, 73, 69, 6F, 6E, 00
/trunk/DE1/ROM/rom.vhd
4,9 → 4,9
 
entity rom is
port(
Clk : in std_logic;
A : in std_logic_vector(15 downto 0);
D : out std_logic_vector(7 downto 0)
Clk : in std_logic;
A : in std_logic_vector(13 downto 0);
D : out std_logic_vector(7 downto 0)
);
end rom;
 
17,551 → 17,868
begin
if Clk'event and Clk = '1' then
case A is
when x"0000" => D <= x"31";
when x"0001" => D <= x"FF";
when x"0002" => D <= x"FF";
when x"0003" => D <= x"CD";
when x"0004" => D <= x"C7";
when x"0005" => D <= x"00";
when x"0006" => D <= x"21";
when x"0007" => D <= x"32";
when x"0008" => D <= x"20";
when x"0009" => D <= x"11";
when x"000A" => D <= x"0E";
when x"000B" => D <= x"01";
when x"000C" => D <= x"CD";
when x"000D" => D <= x"D7";
when x"000E" => D <= x"00";
when x"000F" => D <= x"21";
when x"0010" => D <= x"5A";
when x"0011" => D <= x"20";
when x"0012" => D <= x"11";
when x"0013" => D <= x"21";
when x"0014" => D <= x"01";
when x"0015" => D <= x"CD";
when x"0016" => D <= x"D7";
when x"0017" => D <= x"00";
when x"0018" => D <= x"CD";
when x"0019" => D <= x"E8";
when x"001A" => D <= x"00";
when x"001B" => D <= x"21";
when x"001C" => D <= x"46";
when x"001D" => D <= x"21";
when x"001E" => D <= x"11";
when x"001F" => D <= x"34";
when x"0020" => D <= x"01";
when x"0021" => D <= x"CD";
when x"0022" => D <= x"D7";
when x"0023" => D <= x"00";
when x"0024" => D <= x"21";
when x"0025" => D <= x"96";
when x"0026" => D <= x"21";
when x"0027" => D <= x"11";
when x"0028" => D <= x"50";
when x"0029" => D <= x"01";
when x"002A" => D <= x"CD";
when x"002B" => D <= x"D7";
when x"002C" => D <= x"00";
when x"002D" => D <= x"21";
when x"002E" => D <= x"E6";
when x"002F" => D <= x"21";
when x"0030" => D <= x"11";
when x"0031" => D <= x"6D";
when x"0032" => D <= x"01";
when x"0033" => D <= x"CD";
when x"0034" => D <= x"D7";
when x"0035" => D <= x"00";
when x"0036" => D <= x"21";
when x"0037" => D <= x"36";
when x"0038" => D <= x"22";
when x"0039" => D <= x"11";
when x"003A" => D <= x"8A";
when x"003B" => D <= x"01";
when x"003C" => D <= x"CD";
when x"003D" => D <= x"D7";
when x"003E" => D <= x"00";
when x"003F" => D <= x"21";
when x"0040" => D <= x"5E";
when x"0041" => D <= x"22";
when x"0042" => D <= x"11";
when x"0043" => D <= x"9E";
when x"0044" => D <= x"01";
when x"0045" => D <= x"CD";
when x"0046" => D <= x"D7";
when x"0047" => D <= x"00";
when x"0048" => D <= x"DB";
when x"0049" => D <= x"20";
when x"004A" => D <= x"32";
when x"004B" => D <= x"00";
when x"004C" => D <= x"E0";
when x"004D" => D <= x"11";
when x"004E" => D <= x"D6";
when x"004F" => D <= x"22";
when x"0050" => D <= x"01";
when x"0051" => D <= x"1E";
when x"0052" => D <= x"00";
when x"0053" => D <= x"CD";
when x"0054" => D <= x"DF";
when x"0055" => D <= x"00";
when x"0056" => D <= x"FE";
when x"0057" => D <= x"41";
when x"0058" => D <= x"28";
when x"0059" => D <= x"0B";
when x"005A" => D <= x"D3";
when x"005B" => D <= x"11";
when x"005C" => D <= x"12";
when x"005D" => D <= x"13";
when x"005E" => D <= x"0B";
when x"005F" => D <= x"78";
when x"0060" => D <= x"B1";
when x"0061" => D <= x"28";
when x"0062" => D <= x"EA";
when x"0063" => D <= x"18";
when x"0064" => D <= x"EE";
when x"0065" => D <= x"21";
when x"0066" => D <= x"00";
when x"0067" => D <= x"40";
when x"0068" => D <= x"3E";
when x"0069" => D <= x"00";
when x"006A" => D <= x"77";
when x"006B" => D <= x"23";
when x"006C" => D <= x"3C";
when x"006D" => D <= x"20";
when x"006E" => D <= x"FB";
when x"006F" => D <= x"3E";
when x"0070" => D <= x"01";
when x"0071" => D <= x"D3";
when x"0072" => D <= x"01";
when x"0073" => D <= x"CD";
when x"0074" => D <= x"B9";
when x"0075" => D <= x"00";
when x"0076" => D <= x"CD";
when x"0077" => D <= x"B9";
when x"0078" => D <= x"00";
when x"0079" => D <= x"CD";
when x"007A" => D <= x"B9";
when x"007B" => D <= x"00";
when x"007C" => D <= x"CD";
when x"007D" => D <= x"A6";
when x"007E" => D <= x"00";
when x"007F" => D <= x"CD";
when x"0080" => D <= x"B9";
when x"0081" => D <= x"00";
when x"0082" => D <= x"CD";
when x"0083" => D <= x"A6";
when x"0084" => D <= x"00";
when x"0085" => D <= x"21";
when x"0086" => D <= x"00";
when x"0087" => D <= x"40";
when x"0088" => D <= x"7C";
when x"0089" => D <= x"D3";
when x"008A" => D <= x"11";
when x"008B" => D <= x"7D";
when x"008C" => D <= x"D3";
when x"008D" => D <= x"10";
when x"008E" => D <= x"7E";
when x"008F" => D <= x"D3";
when x"0090" => D <= x"01";
when x"0091" => D <= x"CD";
when x"0092" => D <= x"B9";
when x"0093" => D <= x"00";
when x"0094" => D <= x"23";
when x"0095" => D <= x"7E";
when x"0096" => D <= x"FE";
when x"0097" => D <= x"FF";
when x"0098" => D <= x"20";
when x"0099" => D <= x"EE";
when x"009A" => D <= x"3E";
when x"009B" => D <= x"00";
when x"009C" => D <= x"D3";
when x"009D" => D <= x"01";
when x"009E" => D <= x"D3";
when x"009F" => D <= x"02";
when x"00A0" => D <= x"CD";
when x"00A1" => D <= x"A6";
when x"00A2" => D <= x"00";
when x"00A3" => D <= x"C3";
when x"00A4" => D <= x"03";
when x"00A5" => D <= x"00";
when x"00A6" => D <= x"CD";
when x"00A7" => D <= x"B9";
when x"00A8" => D <= x"00";
when x"00A9" => D <= x"DB";
when x"00AA" => D <= x"30";
when x"00AB" => D <= x"D3";
when x"00AC" => D <= x"10";
when x"00AD" => D <= x"FE";
when x"00AE" => D <= x"0E";
when x"00AF" => D <= x"20";
when x"00B0" => D <= x"F5";
when x"00B1" => D <= x"C9";
when x"00B2" => D <= x"3A";
when x"00B3" => D <= x"00";
when x"00B4" => D <= x"E0";
when x"00B5" => D <= x"3D";
when x"00B6" => D <= x"20";
when x"00B7" => D <= x"FD";
when x"00B8" => D <= x"C9";
when x"00B9" => D <= x"3A";
when x"00BA" => D <= x"00";
when x"00BB" => D <= x"E0";
when x"00BC" => D <= x"F5";
when x"00BD" => D <= x"3E";
when x"00BE" => D <= x"FF";
when x"00BF" => D <= x"3D";
when x"00C0" => D <= x"20";
when x"00C1" => D <= x"FD";
when x"00C2" => D <= x"F1";
when x"00C3" => D <= x"3D";
when x"00C4" => D <= x"20";
when x"00C5" => D <= x"F6";
when x"00C6" => D <= x"C9";
when x"00C7" => D <= x"21";
when x"00C8" => D <= x"00";
when x"00C9" => D <= x"20";
when x"00CA" => D <= x"11";
when x"00CB" => D <= x"B0";
when x"00CC" => D <= x"04";
when x"00CD" => D <= x"3E";
when x"00CE" => D <= x"20";
when x"00CF" => D <= x"77";
when x"00D0" => D <= x"23";
when x"00D1" => D <= x"1B";
when x"00D2" => D <= x"7A";
when x"00D3" => D <= x"B3";
when x"00D4" => D <= x"20";
when x"00D5" => D <= x"F7";
when x"00D6" => D <= x"C9";
when x"00D7" => D <= x"1A";
when x"00D8" => D <= x"B7";
when x"00D9" => D <= x"C8";
when x"00DA" => D <= x"77";
when x"00DB" => D <= x"23";
when x"00DC" => D <= x"13";
when x"00DD" => D <= x"18";
when x"00DE" => D <= x"F8";
when x"00DF" => D <= x"CD";
when x"00E0" => D <= x"B9";
when x"00E1" => D <= x"00";
when x"00E2" => D <= x"DB";
when x"00E3" => D <= x"80";
when x"00E4" => D <= x"B7";
when x"00E5" => D <= x"28";
when x"00E6" => D <= x"F8";
when x"00E7" => D <= x"C9";
when x"00E8" => D <= x"11";
when x"00E9" => D <= x"BD";
when x"00EA" => D <= x"01";
when x"00EB" => D <= x"21";
when x"00EC" => D <= x"F5";
when x"00ED" => D <= x"20";
when x"00EE" => D <= x"CD";
when x"00EF" => D <= x"D7";
when x"00F0" => D <= x"00";
when x"00F1" => D <= x"21";
when x"00F2" => D <= x"1D";
when x"00F3" => D <= x"21";
when x"00F4" => D <= x"3E";
when x"00F5" => D <= x"0A";
when x"00F6" => D <= x"11";
when x"00F7" => D <= x"FF";
when x"00F8" => D <= x"01";
when x"00F9" => D <= x"F5";
when x"00FA" => D <= x"E5";
when x"00FB" => D <= x"CD";
when x"00FC" => D <= x"D7";
when x"00FD" => D <= x"00";
when x"00FE" => D <= x"E1";
when x"00FF" => D <= x"F1";
when x"0100" => D <= x"01";
when x"0101" => D <= x"28";
when x"0102" => D <= x"00";
when x"0103" => D <= x"09";
when x"0104" => D <= x"3D";
when x"0105" => D <= x"20";
when x"0106" => D <= x"EF";
when x"0107" => D <= x"11";
when x"0108" => D <= x"DE";
when x"0109" => D <= x"01";
when x"010A" => D <= x"CD";
when x"010B" => D <= x"D7";
when x"010C" => D <= x"00";
when x"010D" => D <= x"C9";
when x"010E" => D <= x"5A";
when x"010F" => D <= x"38";
when x"0110" => D <= x"30";
when x"0111" => D <= x"20";
when x"0112" => D <= x"53";
when x"0113" => D <= x"59";
when x"0114" => D <= x"53";
when x"0115" => D <= x"54";
when x"0116" => D <= x"45";
when x"0117" => D <= x"4D";
when x"0118" => D <= x"20";
when x"0119" => D <= x"4F";
when x"011A" => D <= x"4E";
when x"011B" => D <= x"20";
when x"011C" => D <= x"43";
when x"011D" => D <= x"48";
when x"011E" => D <= x"49";
when x"011F" => D <= x"50";
when x"0120" => D <= x"00";
when x"0121" => D <= x"52";
when x"0122" => D <= x"4F";
when x"0123" => D <= x"4E";
when x"0124" => D <= x"49";
when x"0125" => D <= x"56";
when x"0126" => D <= x"4F";
when x"0127" => D <= x"4E";
when x"0128" => D <= x"20";
when x"0129" => D <= x"43";
when x"012A" => D <= x"4F";
when x"012B" => D <= x"53";
when x"012C" => D <= x"54";
when x"012D" => D <= x"41";
when x"012E" => D <= x"20";
when x"012F" => D <= x"32";
when x"0130" => D <= x"30";
when x"0131" => D <= x"30";
when x"0132" => D <= x"38";
when x"0133" => D <= x"00";
when x"0134" => D <= x"20";
when x"0135" => D <= x"20";
when x"0136" => D <= x"7C";
when x"0137" => D <= x"21";
when x"0138" => D <= x"23";
when x"0139" => D <= x"24";
when x"013A" => D <= x"25";
when x"013B" => D <= x"26";
when x"013C" => D <= x"2F";
when x"013D" => D <= x"28";
when x"013E" => D <= x"29";
when x"013F" => D <= x"3D";
when x"0140" => D <= x"3F";
when x"0141" => D <= x"2A";
when x"0142" => D <= x"60";
when x"0143" => D <= x"2B";
when x"0144" => D <= x"B4";
when x"0145" => D <= x"E7";
when x"0146" => D <= x"7E";
when x"0147" => D <= x"5E";
when x"0148" => D <= x"2C";
when x"0149" => D <= x"2E";
when x"014A" => D <= x"3B";
when x"014B" => D <= x"3A";
when x"014C" => D <= x"5C";
when x"014D" => D <= x"3C";
when x"014E" => D <= x"3E";
when x"014F" => D <= x"00";
when x"0150" => D <= x"20";
when x"0151" => D <= x"20";
when x"0152" => D <= x"41";
when x"0153" => D <= x"42";
when x"0154" => D <= x"43";
when x"0155" => D <= x"44";
when x"0156" => D <= x"45";
when x"0157" => D <= x"46";
when x"0158" => D <= x"47";
when x"0159" => D <= x"48";
when x"015A" => D <= x"49";
when x"015B" => D <= x"4A";
when x"015C" => D <= x"4B";
when x"015D" => D <= x"4C";
when x"015E" => D <= x"4D";
when x"015F" => D <= x"4E";
when x"0160" => D <= x"4F";
when x"0161" => D <= x"50";
when x"0162" => D <= x"51";
when x"0163" => D <= x"52";
when x"0164" => D <= x"53";
when x"0165" => D <= x"54";
when x"0166" => D <= x"55";
when x"0167" => D <= x"56";
when x"0168" => D <= x"57";
when x"0169" => D <= x"58";
when x"016A" => D <= x"59";
when x"016B" => D <= x"5A";
when x"016C" => D <= x"00";
when x"016D" => D <= x"20";
when x"016E" => D <= x"20";
when x"016F" => D <= x"61";
when x"0170" => D <= x"62";
when x"0171" => D <= x"63";
when x"0172" => D <= x"64";
when x"0173" => D <= x"65";
when x"0174" => D <= x"66";
when x"0175" => D <= x"67";
when x"0176" => D <= x"68";
when x"0177" => D <= x"69";
when x"0178" => D <= x"6A";
when x"0179" => D <= x"6B";
when x"017A" => D <= x"6C";
when x"017B" => D <= x"6D";
when x"017C" => D <= x"6E";
when x"017D" => D <= x"6F";
when x"017E" => D <= x"70";
when x"017F" => D <= x"71";
when x"0180" => D <= x"72";
when x"0181" => D <= x"73";
when x"0182" => D <= x"74";
when x"0183" => D <= x"75";
when x"0184" => D <= x"76";
when x"0185" => D <= x"77";
when x"0186" => D <= x"78";
when x"0187" => D <= x"79";
when x"0188" => D <= x"7A";
when x"0189" => D <= x"00";
when x"018A" => D <= x"20";
when x"018B" => D <= x"20";
when x"018C" => D <= x"20";
when x"018D" => D <= x"20";
when x"018E" => D <= x"20";
when x"018F" => D <= x"20";
when x"0190" => D <= x"20";
when x"0191" => D <= x"20";
when x"0192" => D <= x"20";
when x"0193" => D <= x"30";
when x"0194" => D <= x"31";
when x"0195" => D <= x"32";
when x"0196" => D <= x"33";
when x"0197" => D <= x"34";
when x"0198" => D <= x"35";
when x"0199" => D <= x"36";
when x"019A" => D <= x"37";
when x"019B" => D <= x"38";
when x"019C" => D <= x"39";
when x"019D" => D <= x"00";
when x"019E" => D <= x"02";
when x"019F" => D <= x"03";
when x"01A0" => D <= x"04";
when x"01A1" => D <= x"0B";
when x"01A2" => D <= x"0C";
when x"01A3" => D <= x"0D";
when x"01A4" => D <= x"0E";
when x"01A5" => D <= x"12";
when x"01A6" => D <= x"18";
when x"01A7" => D <= x"19";
when x"01A8" => D <= x"1A";
when x"01A9" => D <= x"1B";
when x"01AA" => D <= x"E8";
when x"01AB" => D <= x"E9";
when x"01AC" => D <= x"EB";
when x"01AD" => D <= x"BB";
when x"01AE" => D <= x"BC";
when x"01AF" => D <= x"8A";
when x"01B0" => D <= x"86";
when x"01B1" => D <= x"87";
when x"01B2" => D <= x"81";
when x"01B3" => D <= x"80";
when x"01B4" => D <= x"01";
when x"01B5" => D <= x"06";
when x"01B6" => D <= x"07";
when x"01B7" => D <= x"08";
when x"01B8" => D <= x"09";
when x"01B9" => D <= x"0A";
when x"01BA" => D <= x"1D";
when x"01BB" => D <= x"1F";
when x"01BC" => D <= x"00";
when x"01BD" => D <= x"C9";
when x"01BE" => D <= x"CD";
when x"01BF" => D <= x"CD";
when x"01C0" => D <= x"CD";
when x"01C1" => D <= x"CD";
when x"01C2" => D <= x"CD";
when x"01C3" => D <= x"CD";
when x"01C4" => D <= x"CD";
when x"01C5" => D <= x"CD";
when x"01C6" => D <= x"CD";
when x"01C7" => D <= x"CD";
when x"01C8" => D <= x"CD";
when x"01C9" => D <= x"CD";
when x"01CA" => D <= x"CD";
when x"01CB" => D <= x"CD";
when x"01CC" => D <= x"CD";
when x"01CD" => D <= x"CD";
when x"01CE" => D <= x"CD";
when x"01CF" => D <= x"CD";
when x"01D0" => D <= x"CD";
when x"01D1" => D <= x"CD";
when x"01D2" => D <= x"CD";
when x"01D3" => D <= x"CD";
when x"01D4" => D <= x"CD";
when x"01D5" => D <= x"CD";
when x"01D6" => D <= x"CD";
when x"01D7" => D <= x"CD";
when x"01D8" => D <= x"CD";
when x"01D9" => D <= x"CD";
when x"01DA" => D <= x"CD";
when x"01DB" => D <= x"CD";
when x"01DC" => D <= x"BB";
when x"01DD" => D <= x"00";
when x"01DE" => D <= x"C8";
when x"01DF" => D <= x"CD";
when x"01E0" => D <= x"CD";
when x"01E1" => D <= x"CD";
when x"01E2" => D <= x"CD";
when x"01E3" => D <= x"CD";
when x"01E4" => D <= x"CD";
when x"01E5" => D <= x"CD";
when x"01E6" => D <= x"CD";
when x"01E7" => D <= x"CD";
when x"01E8" => D <= x"CD";
when x"01E9" => D <= x"CD";
when x"01EA" => D <= x"CD";
when x"01EB" => D <= x"CD";
when x"01EC" => D <= x"CD";
when x"01ED" => D <= x"CD";
when x"01EE" => D <= x"CD";
when x"01EF" => D <= x"CD";
when x"01F0" => D <= x"CD";
when x"01F1" => D <= x"CD";
when x"01F2" => D <= x"CD";
when x"01F3" => D <= x"CD";
when x"01F4" => D <= x"CD";
when x"01F5" => D <= x"CD";
when x"01F6" => D <= x"CD";
when x"01F7" => D <= x"CD";
when x"01F8" => D <= x"CD";
when x"01F9" => D <= x"CD";
when x"01FA" => D <= x"CD";
when x"01FB" => D <= x"CD";
when x"01FC" => D <= x"CD";
when x"01FD" => D <= x"BC";
when x"01FE" => D <= x"00";
when x"01FF" => D <= x"BA";
when x"0200" => D <= x"20";
when x"0201" => D <= x"20";
when x"0202" => D <= x"20";
when x"0203" => D <= x"20";
when x"0204" => D <= x"20";
when x"0205" => D <= x"20";
when x"0206" => D <= x"20";
when x"0207" => D <= x"20";
when x"0208" => D <= x"20";
when x"0209" => D <= x"20";
when x"020A" => D <= x"20";
when x"020B" => D <= x"20";
when x"020C" => D <= x"20";
when x"020D" => D <= x"20";
when x"020E" => D <= x"20";
when x"020F" => D <= x"20";
when x"0210" => D <= x"20";
when x"0211" => D <= x"20";
when x"0212" => D <= x"20";
when x"0213" => D <= x"20";
when x"0214" => D <= x"20";
when x"0215" => D <= x"20";
when x"0216" => D <= x"20";
when x"0217" => D <= x"20";
when x"0218" => D <= x"20";
when x"0219" => D <= x"20";
when x"021A" => D <= x"20";
when x"021B" => D <= x"20";
when x"021C" => D <= x"20";
when x"021D" => D <= x"20";
when x"021E" => D <= x"BA";
when x"021F" => D <= x"00";
when others => D <= x"00";
when "00000000000000" => D <= x"ED";
when "00000000000001" => D <= x"7B";
when "00000000000010" => D <= x"DE";
when "00000000000011" => D <= x"7F";
when "00000000000100" => D <= x"3A";
when "00000000000101" => D <= x"DD";
when "00000000000110" => D <= x"7F";
when "00000000000111" => D <= x"B7";
when "00000000001000" => D <= x"28";
when "00000000001001" => D <= x"03";
when "00000000001010" => D <= x"CD";
when "00000000001011" => D <= x"96";
when "00000000001100" => D <= x"01";
when "00000000001101" => D <= x"CD";
when "00000000001110" => D <= x"F4";
when "00000000001111" => D <= x"00";
when "00000000010000" => D <= x"11";
when "00000000010001" => D <= x"34";
when "00000000010010" => D <= x"40";
when "00000000010011" => D <= x"21";
when "00000000010100" => D <= x"12";
when "00000000010101" => D <= x"02";
when "00000000010110" => D <= x"CD";
when "00000000010111" => D <= x"07";
when "00000000011000" => D <= x"01";
when "00000000011001" => D <= x"11";
when "00000000011010" => D <= x"5C";
when "00000000011011" => D <= x"40";
when "00000000011100" => D <= x"21";
when "00000000011101" => D <= x"25";
when "00000000011110" => D <= x"02";
when "00000000011111" => D <= x"CD";
when "00000000100000" => D <= x"07";
when "00000000100001" => D <= x"01";
when "00000000100010" => D <= x"CD";
when "00000000100011" => D <= x"12";
when "00000000100100" => D <= x"01";
when "00000000100101" => D <= x"11";
when "00000000100110" => D <= x"46";
when "00000000100111" => D <= x"41";
when "00000000101000" => D <= x"21";
when "00000000101001" => D <= x"38";
when "00000000101010" => D <= x"02";
when "00000000101011" => D <= x"CD";
when "00000000101100" => D <= x"07";
when "00000000101101" => D <= x"01";
when "00000000101110" => D <= x"11";
when "00000000101111" => D <= x"96";
when "00000000110000" => D <= x"41";
when "00000000110001" => D <= x"21";
when "00000000110010" => D <= x"54";
when "00000000110011" => D <= x"02";
when "00000000110100" => D <= x"CD";
when "00000000110101" => D <= x"07";
when "00000000110110" => D <= x"01";
when "00000000110111" => D <= x"11";
when "00000000111000" => D <= x"E6";
when "00000000111001" => D <= x"41";
when "00000000111010" => D <= x"21";
when "00000000111011" => D <= x"71";
when "00000000111100" => D <= x"02";
when "00000000111101" => D <= x"CD";
when "00000000111110" => D <= x"07";
when "00000000111111" => D <= x"01";
when "00000001000000" => D <= x"11";
when "00000001000001" => D <= x"36";
when "00000001000010" => D <= x"42";
when "00000001000011" => D <= x"21";
when "00000001000100" => D <= x"8E";
when "00000001000101" => D <= x"02";
when "00000001000110" => D <= x"CD";
when "00000001000111" => D <= x"07";
when "00000001001000" => D <= x"01";
when "00000001001001" => D <= x"11";
when "00000001001010" => D <= x"5E";
when "00000001001011" => D <= x"42";
when "00000001001100" => D <= x"21";
when "00000001001101" => D <= x"A2";
when "00000001001110" => D <= x"02";
when "00000001001111" => D <= x"CD";
when "00000001010000" => D <= x"07";
when "00000001010001" => D <= x"01";
when "00000001010010" => D <= x"21";
when "00000001010011" => D <= x"45";
when "00000001010100" => D <= x"03";
when "00000001010101" => D <= x"3A";
when "00000001010110" => D <= x"DD";
when "00000001010111" => D <= x"7F";
when "00000001011000" => D <= x"B7";
when "00000001011001" => D <= x"28";
when "00000001011010" => D <= x"03";
when "00000001011011" => D <= x"21";
when "00000001011100" => D <= x"51";
when "00000001011101" => D <= x"03";
when "00000001011110" => D <= x"11";
when "00000001011111" => D <= x"87";
when "00000001100000" => D <= x"40";
when "00000001100001" => D <= x"CD";
when "00000001100010" => D <= x"07";
when "00000001100011" => D <= x"01";
when "00000001100100" => D <= x"11";
when "00000001100101" => D <= x"D6";
when "00000001100110" => D <= x"42";
when "00000001100111" => D <= x"01";
when "00000001101000" => D <= x"1E";
when "00000001101001" => D <= x"00";
when "00000001101010" => D <= x"C5";
when "00000001101011" => D <= x"D5";
when "00000001101100" => D <= x"CD";
when "00000001101101" => D <= x"DF";
when "00000001101110" => D <= x"00";
when "00000001101111" => D <= x"CD";
when "00000001110000" => D <= x"3C";
when "00000001110001" => D <= x"01";
when "00000001110010" => D <= x"3A";
when "00000001110011" => D <= x"DD";
when "00000001110100" => D <= x"7F";
when "00000001110101" => D <= x"B7";
when "00000001110110" => D <= x"28";
when "00000001110111" => D <= x"03";
when "00000001111000" => D <= x"CD";
when "00000001111001" => D <= x"6F";
when "00000001111010" => D <= x"01";
when "00000001111011" => D <= x"CD";
when "00000001111100" => D <= x"0F";
when "00000001111101" => D <= x"01";
when "00000001111110" => D <= x"D1";
when "00000001111111" => D <= x"C1";
when "00000010000000" => D <= x"B7";
when "00000010000001" => D <= x"28";
when "00000010000010" => D <= x"E7";
when "00000010000011" => D <= x"FE";
when "00000010000100" => D <= x"41";
when "00000010000101" => D <= x"28";
when "00000010000110" => D <= x"15";
when "00000010000111" => D <= x"D3";
when "00000010001000" => D <= x"01";
when "00000010001001" => D <= x"6F";
when "00000010001010" => D <= x"3A";
when "00000010001011" => D <= x"DD";
when "00000010001100" => D <= x"7F";
when "00000010001101" => D <= x"B7";
when "00000010001110" => D <= x"20";
when "00000010001111" => D <= x"03";
when "00000010010000" => D <= x"7D";
when "00000010010001" => D <= x"D3";
when "00000010010010" => D <= x"11";
when "00000010010011" => D <= x"12";
when "00000010010100" => D <= x"13";
when "00000010010101" => D <= x"0B";
when "00000010010110" => D <= x"78";
when "00000010010111" => D <= x"B1";
when "00000010011000" => D <= x"28";
when "00000010011001" => D <= x"CA";
when "00000010011010" => D <= x"18";
when "00000010011011" => D <= x"CE";
when "00000010011100" => D <= x"21";
when "00000010011101" => D <= x"00";
when "00000010011110" => D <= x"80";
when "00000010011111" => D <= x"3E";
when "00000010100000" => D <= x"00";
when "00000010100001" => D <= x"77";
when "00000010100010" => D <= x"23";
when "00000010100011" => D <= x"3C";
when "00000010100100" => D <= x"20";
when "00000010100101" => D <= x"FB";
when "00000010100110" => D <= x"CD";
when "00000010100111" => D <= x"CA";
when "00000010101000" => D <= x"00";
when "00000010101001" => D <= x"21";
when "00000010101010" => D <= x"00";
when "00000010101011" => D <= x"80";
when "00000010101100" => D <= x"3A";
when "00000010101101" => D <= x"DD";
when "00000010101110" => D <= x"7F";
when "00000010101111" => D <= x"B7";
when "00000010110000" => D <= x"20";
when "00000010110001" => D <= x"06";
when "00000010110010" => D <= x"7C";
when "00000010110011" => D <= x"D3";
when "00000010110100" => D <= x"11";
when "00000010110101" => D <= x"7D";
when "00000010110110" => D <= x"D3";
when "00000010110111" => D <= x"10";
when "00000010111000" => D <= x"7E";
when "00000010111001" => D <= x"D3";
when "00000010111010" => D <= x"01";
when "00000010111011" => D <= x"CD";
when "00000010111100" => D <= x"DF";
when "00000010111101" => D <= x"00";
when "00000010111110" => D <= x"23";
when "00000010111111" => D <= x"7E";
when "00000011000000" => D <= x"FE";
when "00000011000001" => D <= x"FF";
when "00000011000010" => D <= x"20";
when "00000011000011" => D <= x"F4";
when "00000011000100" => D <= x"CD";
when "00000011000101" => D <= x"CA";
when "00000011000110" => D <= x"00";
when "00000011000111" => D <= x"C3";
when "00000011001000" => D <= x"04";
when "00000011001001" => D <= x"00";
when "00000011001010" => D <= x"CD";
when "00000011001011" => D <= x"DF";
when "00000011001100" => D <= x"00";
when "00000011001101" => D <= x"DB";
when "00000011001110" => D <= x"30";
when "00000011001111" => D <= x"FE";
when "00000011010000" => D <= x"01";
when "00000011010001" => D <= x"20";
when "00000011010010" => D <= x"F7";
when "00000011010011" => D <= x"C9";
when "00000011010100" => D <= x"DB";
when "00000011010101" => D <= x"20";
when "00000011010110" => D <= x"B7";
when "00000011010111" => D <= x"20";
when "00000011011000" => D <= x"02";
when "00000011011001" => D <= x"3E";
when "00000011011010" => D <= x"01";
when "00000011011011" => D <= x"3D";
when "00000011011100" => D <= x"20";
when "00000011011101" => D <= x"FD";
when "00000011011110" => D <= x"C9";
when "00000011011111" => D <= x"DB";
when "00000011100000" => D <= x"20";
when "00000011100001" => D <= x"B7";
when "00000011100010" => D <= x"20";
when "00000011100011" => D <= x"02";
when "00000011100100" => D <= x"3E";
when "00000011100101" => D <= x"01";
when "00000011100110" => D <= x"F5";
when "00000011100111" => D <= x"01";
when "00000011101000" => D <= x"88";
when "00000011101001" => D <= x"13";
when "00000011101010" => D <= x"0B";
when "00000011101011" => D <= x"78";
when "00000011101100" => D <= x"B1";
when "00000011101101" => D <= x"20";
when "00000011101110" => D <= x"FB";
when "00000011101111" => D <= x"F1";
when "00000011110000" => D <= x"3D";
when "00000011110001" => D <= x"20";
when "00000011110010" => D <= x"F3";
when "00000011110011" => D <= x"C9";
when "00000011110100" => D <= x"3E";
when "00000011110101" => D <= x"00";
when "00000011110110" => D <= x"D3";
when "00000011110111" => D <= x"91";
when "00000011111000" => D <= x"D3";
when "00000011111001" => D <= x"92";
when "00000011111010" => D <= x"01";
when "00000011111011" => D <= x"B0";
when "00000011111100" => D <= x"04";
when "00000011111101" => D <= x"3E";
when "00000011111110" => D <= x"20";
when "00000011111111" => D <= x"D3";
when "00000100000000" => D <= x"90";
when "00000100000001" => D <= x"0B";
when "00000100000010" => D <= x"78";
when "00000100000011" => D <= x"B1";
when "00000100000100" => D <= x"20";
when "00000100000101" => D <= x"F7";
when "00000100000110" => D <= x"C9";
when "00000100000111" => D <= x"7E";
when "00000100001000" => D <= x"B7";
when "00000100001001" => D <= x"C8";
when "00000100001010" => D <= x"12";
when "00000100001011" => D <= x"23";
when "00000100001100" => D <= x"13";
when "00000100001101" => D <= x"18";
when "00000100001110" => D <= x"F8";
when "00000100001111" => D <= x"DB";
when "00000100010000" => D <= x"80";
when "00000100010001" => D <= x"C9";
when "00000100010010" => D <= x"21";
when "00000100010011" => D <= x"C1";
when "00000100010100" => D <= x"02";
when "00000100010101" => D <= x"11";
when "00000100010110" => D <= x"F5";
when "00000100010111" => D <= x"40";
when "00000100011000" => D <= x"CD";
when "00000100011001" => D <= x"07";
when "00000100011010" => D <= x"01";
when "00000100011011" => D <= x"11";
when "00000100011100" => D <= x"1D";
when "00000100011101" => D <= x"41";
when "00000100011110" => D <= x"3E";
when "00000100011111" => D <= x"0A";
when "00000100100000" => D <= x"21";
when "00000100100001" => D <= x"03";
when "00000100100010" => D <= x"03";
when "00000100100011" => D <= x"E5";
when "00000100100100" => D <= x"F5";
when "00000100100101" => D <= x"D5";
when "00000100100110" => D <= x"CD";
when "00000100100111" => D <= x"07";
when "00000100101000" => D <= x"01";
when "00000100101001" => D <= x"D1";
when "00000100101010" => D <= x"F1";
when "00000100101011" => D <= x"21";
when "00000100101100" => D <= x"28";
when "00000100101101" => D <= x"00";
when "00000100101110" => D <= x"19";
when "00000100101111" => D <= x"54";
when "00000100110000" => D <= x"5D";
when "00000100110001" => D <= x"E1";
when "00000100110010" => D <= x"3D";
when "00000100110011" => D <= x"20";
when "00000100110100" => D <= x"EB";
when "00000100110101" => D <= x"21";
when "00000100110110" => D <= x"E2";
when "00000100110111" => D <= x"02";
when "00000100111000" => D <= x"CD";
when "00000100111001" => D <= x"07";
when "00000100111010" => D <= x"01";
when "00000100111011" => D <= x"C9";
when "00000100111100" => D <= x"21";
when "00000100111101" => D <= x"1E";
when "00000100111110" => D <= x"41";
when "00000100111111" => D <= x"11";
when "00000101000000" => D <= x"00";
when "00000101000001" => D <= x"90";
when "00000101000010" => D <= x"01";
when "00000101000011" => D <= x"1E";
when "00000101000100" => D <= x"00";
when "00000101000101" => D <= x"ED";
when "00000101000110" => D <= x"B0";
when "00000101000111" => D <= x"21";
when "00000101001000" => D <= x"46";
when "00000101001001" => D <= x"41";
when "00000101001010" => D <= x"11";
when "00000101001011" => D <= x"1E";
when "00000101001100" => D <= x"41";
when "00000101001101" => D <= x"06";
when "00000101001110" => D <= x"09";
when "00000101001111" => D <= x"C5";
when "00000101010000" => D <= x"E5";
when "00000101010001" => D <= x"D5";
when "00000101010010" => D <= x"01";
when "00000101010011" => D <= x"1E";
when "00000101010100" => D <= x"00";
when "00000101010101" => D <= x"ED";
when "00000101010110" => D <= x"B0";
when "00000101010111" => D <= x"D1";
when "00000101011000" => D <= x"21";
when "00000101011001" => D <= x"28";
when "00000101011010" => D <= x"00";
when "00000101011011" => D <= x"19";
when "00000101011100" => D <= x"54";
when "00000101011101" => D <= x"5D";
when "00000101011110" => D <= x"E1";
when "00000101011111" => D <= x"01";
when "00000101100000" => D <= x"28";
when "00000101100001" => D <= x"00";
when "00000101100010" => D <= x"09";
when "00000101100011" => D <= x"C1";
when "00000101100100" => D <= x"10";
when "00000101100101" => D <= x"E9";
when "00000101100110" => D <= x"21";
when "00000101100111" => D <= x"00";
when "00000101101000" => D <= x"90";
when "00000101101001" => D <= x"01";
when "00000101101010" => D <= x"1E";
when "00000101101011" => D <= x"00";
when "00000101101100" => D <= x"ED";
when "00000101101101" => D <= x"B0";
when "00000101101110" => D <= x"C9";
when "00000101101111" => D <= x"C5";
when "00000101110000" => D <= x"D5";
when "00000101110001" => D <= x"CD";
when "00000101110010" => D <= x"AD";
when "00000101110011" => D <= x"01";
when "00000101110100" => D <= x"FE";
when "00000101110101" => D <= x"01";
when "00000101110110" => D <= x"20";
when "00000101110111" => D <= x"07";
when "00000101111000" => D <= x"CD";
when "00000101111001" => D <= x"EE";
when "00000101111010" => D <= x"01";
when "00000101111011" => D <= x"3E";
when "00000101111100" => D <= x"01";
when "00000101111101" => D <= x"18";
when "00000101111110" => D <= x"09";
when "00000101111111" => D <= x"FE";
when "00000110000000" => D <= x"02";
when "00000110000001" => D <= x"20";
when "00000110000010" => D <= x"10";
when "00000110000011" => D <= x"CD";
when "00000110000100" => D <= x"CA";
when "00000110000101" => D <= x"01";
when "00000110000110" => D <= x"3E";
when "00000110000111" => D <= x"80";
when "00000110001000" => D <= x"D3";
when "00000110001001" => D <= x"01";
when "00000110001010" => D <= x"11";
when "00000110001011" => D <= x"E0";
when "00000110001100" => D <= x"7F";
when "00000110001101" => D <= x"21";
when "00000110001110" => D <= x"00";
when "00000110001111" => D <= x"91";
when "00000110010000" => D <= x"CD";
when "00000110010001" => D <= x"07";
when "00000110010010" => D <= x"01";
when "00000110010011" => D <= x"D1";
when "00000110010100" => D <= x"C1";
when "00000110010101" => D <= x"C9";
when "00000110010110" => D <= x"11";
when "00000110010111" => D <= x"00";
when "00000110011000" => D <= x"91";
when "00000110011001" => D <= x"21";
when "00000110011010" => D <= x"24";
when "00000110011011" => D <= x"03";
when "00000110011100" => D <= x"01";
when "00000110011101" => D <= x"21";
when "00000110011110" => D <= x"00";
when "00000110011111" => D <= x"ED";
when "00000110100000" => D <= x"B0";
when "00000110100001" => D <= x"11";
when "00000110100010" => D <= x"E0";
when "00000110100011" => D <= x"7F";
when "00000110100100" => D <= x"21";
when "00000110100101" => D <= x"00";
when "00000110100110" => D <= x"91";
when "00000110100111" => D <= x"01";
when "00000110101000" => D <= x"20";
when "00000110101001" => D <= x"00";
when "00000110101010" => D <= x"ED";
when "00000110101011" => D <= x"B0";
when "00000110101100" => D <= x"C9";
when "00000110101101" => D <= x"CD";
when "00000110101110" => D <= x"BE";
when "00000110101111" => D <= x"01";
when "00000110110000" => D <= x"3E";
when "00000110110001" => D <= x"00";
when "00000110110010" => D <= x"C0";
when "00000110110011" => D <= x"DB";
when "00000110110100" => D <= x"70";
when "00000110110101" => D <= x"C9";
when "00000110110110" => D <= x"3A";
when "00000110110111" => D <= x"00";
when "00000110111000" => D <= x"90";
when "00000110111001" => D <= x"3D";
when "00000110111010" => D <= x"32";
when "00000110111011" => D <= x"00";
when "00000110111100" => D <= x"90";
when "00000110111101" => D <= x"C9";
when "00000110111110" => D <= x"3A";
when "00000110111111" => D <= x"01";
when "00000111000000" => D <= x"90";
when "00000111000001" => D <= x"3D";
when "00000111000010" => D <= x"20";
when "00000111000011" => D <= x"02";
when "00000111000100" => D <= x"3E";
when "00000111000101" => D <= x"10";
when "00000111000110" => D <= x"32";
when "00000111000111" => D <= x"01";
when "00000111001000" => D <= x"90";
when "00000111001001" => D <= x"C9";
when "00000111001010" => D <= x"3A";
when "00000111001011" => D <= x"00";
when "00000111001100" => D <= x"91";
when "00000111001101" => D <= x"32";
when "00000111001110" => D <= x"02";
when "00000111001111" => D <= x"90";
when "00000111010000" => D <= x"3A";
when "00000111010001" => D <= x"10";
when "00000111010010" => D <= x"91";
when "00000111010011" => D <= x"32";
when "00000111010100" => D <= x"03";
when "00000111010101" => D <= x"90";
when "00000111010110" => D <= x"21";
when "00000111010111" => D <= x"01";
when "00000111011000" => D <= x"91";
when "00000111011001" => D <= x"11";
when "00000111011010" => D <= x"00";
when "00000111011011" => D <= x"91";
when "00000111011100" => D <= x"01";
when "00000111011101" => D <= x"1F";
when "00000111011110" => D <= x"00";
when "00000111011111" => D <= x"ED";
when "00000111100000" => D <= x"B0";
when "00000111100001" => D <= x"3A";
when "00000111100010" => D <= x"02";
when "00000111100011" => D <= x"90";
when "00000111100100" => D <= x"32";
when "00000111100101" => D <= x"0F";
when "00000111100110" => D <= x"91";
when "00000111100111" => D <= x"3A";
when "00000111101000" => D <= x"03";
when "00000111101001" => D <= x"90";
when "00000111101010" => D <= x"32";
when "00000111101011" => D <= x"1F";
when "00000111101100" => D <= x"91";
when "00000111101101" => D <= x"C9";
when "00000111101110" => D <= x"3A";
when "00000111101111" => D <= x"0F";
when "00000111110000" => D <= x"91";
when "00000111110001" => D <= x"32";
when "00000111110010" => D <= x"02";
when "00000111110011" => D <= x"90";
when "00000111110100" => D <= x"3A";
when "00000111110101" => D <= x"1F";
when "00000111110110" => D <= x"91";
when "00000111110111" => D <= x"32";
when "00000111111000" => D <= x"03";
when "00000111111001" => D <= x"90";
when "00000111111010" => D <= x"21";
when "00000111111011" => D <= x"1E";
when "00000111111100" => D <= x"91";
when "00000111111101" => D <= x"11";
when "00000111111110" => D <= x"1F";
when "00000111111111" => D <= x"91";
when "00001000000000" => D <= x"01";
when "00001000000001" => D <= x"1F";
when "00001000000010" => D <= x"00";
when "00001000000011" => D <= x"ED";
when "00001000000100" => D <= x"B8";
when "00001000000101" => D <= x"3A";
when "00001000000110" => D <= x"02";
when "00001000000111" => D <= x"90";
when "00001000001000" => D <= x"32";
when "00001000001001" => D <= x"00";
when "00001000001010" => D <= x"91";
when "00001000001011" => D <= x"3A";
when "00001000001100" => D <= x"03";
when "00001000001101" => D <= x"90";
when "00001000001110" => D <= x"32";
when "00001000001111" => D <= x"10";
when "00001000010000" => D <= x"91";
when "00001000010001" => D <= x"C9";
when "00001000010010" => D <= x"5A";
when "00001000010011" => D <= x"38";
when "00001000010100" => D <= x"30";
when "00001000010101" => D <= x"20";
when "00001000010110" => D <= x"53";
when "00001000010111" => D <= x"59";
when "00001000011000" => D <= x"53";
when "00001000011001" => D <= x"54";
when "00001000011010" => D <= x"45";
when "00001000011011" => D <= x"4D";
when "00001000011100" => D <= x"20";
when "00001000011101" => D <= x"4F";
when "00001000011110" => D <= x"4E";
when "00001000011111" => D <= x"20";
when "00001000100000" => D <= x"43";
when "00001000100001" => D <= x"48";
when "00001000100010" => D <= x"49";
when "00001000100011" => D <= x"50";
when "00001000100100" => D <= x"00";
when "00001000100101" => D <= x"52";
when "00001000100110" => D <= x"4F";
when "00001000100111" => D <= x"4E";
when "00001000101000" => D <= x"49";
when "00001000101001" => D <= x"56";
when "00001000101010" => D <= x"4F";
when "00001000101011" => D <= x"4E";
when "00001000101100" => D <= x"20";
when "00001000101101" => D <= x"43";
when "00001000101110" => D <= x"4F";
when "00001000101111" => D <= x"53";
when "00001000110000" => D <= x"54";
when "00001000110001" => D <= x"41";
when "00001000110010" => D <= x"20";
when "00001000110011" => D <= x"32";
when "00001000110100" => D <= x"30";
when "00001000110101" => D <= x"30";
when "00001000110110" => D <= x"38";
when "00001000110111" => D <= x"00";
when "00001000111000" => D <= x"20";
when "00001000111001" => D <= x"20";
when "00001000111010" => D <= x"7C";
when "00001000111011" => D <= x"21";
when "00001000111100" => D <= x"23";
when "00001000111101" => D <= x"24";
when "00001000111110" => D <= x"25";
when "00001000111111" => D <= x"26";
when "00001001000000" => D <= x"2F";
when "00001001000001" => D <= x"28";
when "00001001000010" => D <= x"29";
when "00001001000011" => D <= x"3D";
when "00001001000100" => D <= x"3F";
when "00001001000101" => D <= x"2A";
when "00001001000110" => D <= x"60";
when "00001001000111" => D <= x"2B";
when "00001001001000" => D <= x"B4";
when "00001001001001" => D <= x"E7";
when "00001001001010" => D <= x"7E";
when "00001001001011" => D <= x"5E";
when "00001001001100" => D <= x"2C";
when "00001001001101" => D <= x"2E";
when "00001001001110" => D <= x"3B";
when "00001001001111" => D <= x"3A";
when "00001001010000" => D <= x"5C";
when "00001001010001" => D <= x"3C";
when "00001001010010" => D <= x"3E";
when "00001001010011" => D <= x"00";
when "00001001010100" => D <= x"20";
when "00001001010101" => D <= x"20";
when "00001001010110" => D <= x"41";
when "00001001010111" => D <= x"42";
when "00001001011000" => D <= x"43";
when "00001001011001" => D <= x"44";
when "00001001011010" => D <= x"45";
when "00001001011011" => D <= x"46";
when "00001001011100" => D <= x"47";
when "00001001011101" => D <= x"48";
when "00001001011110" => D <= x"49";
when "00001001011111" => D <= x"4A";
when "00001001100000" => D <= x"4B";
when "00001001100001" => D <= x"4C";
when "00001001100010" => D <= x"4D";
when "00001001100011" => D <= x"4E";
when "00001001100100" => D <= x"4F";
when "00001001100101" => D <= x"50";
when "00001001100110" => D <= x"51";
when "00001001100111" => D <= x"52";
when "00001001101000" => D <= x"53";
when "00001001101001" => D <= x"54";
when "00001001101010" => D <= x"55";
when "00001001101011" => D <= x"56";
when "00001001101100" => D <= x"57";
when "00001001101101" => D <= x"58";
when "00001001101110" => D <= x"59";
when "00001001101111" => D <= x"5A";
when "00001001110000" => D <= x"00";
when "00001001110001" => D <= x"20";
when "00001001110010" => D <= x"20";
when "00001001110011" => D <= x"61";
when "00001001110100" => D <= x"62";
when "00001001110101" => D <= x"63";
when "00001001110110" => D <= x"64";
when "00001001110111" => D <= x"65";
when "00001001111000" => D <= x"66";
when "00001001111001" => D <= x"67";
when "00001001111010" => D <= x"68";
when "00001001111011" => D <= x"69";
when "00001001111100" => D <= x"6A";
when "00001001111101" => D <= x"6B";
when "00001001111110" => D <= x"6C";
when "00001001111111" => D <= x"6D";
when "00001010000000" => D <= x"6E";
when "00001010000001" => D <= x"6F";
when "00001010000010" => D <= x"70";
when "00001010000011" => D <= x"71";
when "00001010000100" => D <= x"72";
when "00001010000101" => D <= x"73";
when "00001010000110" => D <= x"74";
when "00001010000111" => D <= x"75";
when "00001010001000" => D <= x"76";
when "00001010001001" => D <= x"77";
when "00001010001010" => D <= x"78";
when "00001010001011" => D <= x"79";
when "00001010001100" => D <= x"7A";
when "00001010001101" => D <= x"00";
when "00001010001110" => D <= x"20";
when "00001010001111" => D <= x"20";
when "00001010010000" => D <= x"20";
when "00001010010001" => D <= x"20";
when "00001010010010" => D <= x"20";
when "00001010010011" => D <= x"20";
when "00001010010100" => D <= x"20";
when "00001010010101" => D <= x"20";
when "00001010010110" => D <= x"20";
when "00001010010111" => D <= x"30";
when "00001010011000" => D <= x"31";
when "00001010011001" => D <= x"32";
when "00001010011010" => D <= x"33";
when "00001010011011" => D <= x"34";
when "00001010011100" => D <= x"35";
when "00001010011101" => D <= x"36";
when "00001010011110" => D <= x"37";
when "00001010011111" => D <= x"38";
when "00001010100000" => D <= x"39";
when "00001010100001" => D <= x"00";
when "00001010100010" => D <= x"02";
when "00001010100011" => D <= x"03";
when "00001010100100" => D <= x"04";
when "00001010100101" => D <= x"0B";
when "00001010100110" => D <= x"0C";
when "00001010100111" => D <= x"0D";
when "00001010101000" => D <= x"0E";
when "00001010101001" => D <= x"12";
when "00001010101010" => D <= x"18";
when "00001010101011" => D <= x"19";
when "00001010101100" => D <= x"1A";
when "00001010101101" => D <= x"1B";
when "00001010101110" => D <= x"E8";
when "00001010101111" => D <= x"E9";
when "00001010110000" => D <= x"EB";
when "00001010110001" => D <= x"BB";
when "00001010110010" => D <= x"BC";
when "00001010110011" => D <= x"8A";
when "00001010110100" => D <= x"86";
when "00001010110101" => D <= x"87";
when "00001010110110" => D <= x"81";
when "00001010110111" => D <= x"80";
when "00001010111000" => D <= x"01";
when "00001010111001" => D <= x"06";
when "00001010111010" => D <= x"07";
when "00001010111011" => D <= x"08";
when "00001010111100" => D <= x"09";
when "00001010111101" => D <= x"0A";
when "00001010111110" => D <= x"1D";
when "00001010111111" => D <= x"1F";
when "00001011000000" => D <= x"00";
when "00001011000001" => D <= x"C9";
when "00001011000010" => D <= x"CD";
when "00001011000011" => D <= x"CD";
when "00001011000100" => D <= x"CD";
when "00001011000101" => D <= x"CD";
when "00001011000110" => D <= x"CD";
when "00001011000111" => D <= x"CD";
when "00001011001000" => D <= x"CD";
when "00001011001001" => D <= x"CD";
when "00001011001010" => D <= x"CD";
when "00001011001011" => D <= x"CD";
when "00001011001100" => D <= x"CD";
when "00001011001101" => D <= x"CD";
when "00001011001110" => D <= x"CD";
when "00001011001111" => D <= x"CD";
when "00001011010000" => D <= x"CD";
when "00001011010001" => D <= x"CD";
when "00001011010010" => D <= x"CD";
when "00001011010011" => D <= x"CD";
when "00001011010100" => D <= x"CD";
when "00001011010101" => D <= x"CD";
when "00001011010110" => D <= x"CD";
when "00001011010111" => D <= x"CD";
when "00001011011000" => D <= x"CD";
when "00001011011001" => D <= x"CD";
when "00001011011010" => D <= x"CD";
when "00001011011011" => D <= x"CD";
when "00001011011100" => D <= x"CD";
when "00001011011101" => D <= x"CD";
when "00001011011110" => D <= x"CD";
when "00001011011111" => D <= x"CD";
when "00001011100000" => D <= x"BB";
when "00001011100001" => D <= x"00";
when "00001011100010" => D <= x"C8";
when "00001011100011" => D <= x"CD";
when "00001011100100" => D <= x"CD";
when "00001011100101" => D <= x"CD";
when "00001011100110" => D <= x"CD";
when "00001011100111" => D <= x"CD";
when "00001011101000" => D <= x"CD";
when "00001011101001" => D <= x"CD";
when "00001011101010" => D <= x"CD";
when "00001011101011" => D <= x"CD";
when "00001011101100" => D <= x"CD";
when "00001011101101" => D <= x"CD";
when "00001011101110" => D <= x"CD";
when "00001011101111" => D <= x"CD";
when "00001011110000" => D <= x"CD";
when "00001011110001" => D <= x"CD";
when "00001011110010" => D <= x"CD";
when "00001011110011" => D <= x"CD";
when "00001011110100" => D <= x"CD";
when "00001011110101" => D <= x"CD";
when "00001011110110" => D <= x"CD";
when "00001011110111" => D <= x"CD";
when "00001011111000" => D <= x"CD";
when "00001011111001" => D <= x"CD";
when "00001011111010" => D <= x"CD";
when "00001011111011" => D <= x"CD";
when "00001011111100" => D <= x"CD";
when "00001011111101" => D <= x"CD";
when "00001011111110" => D <= x"CD";
when "00001011111111" => D <= x"CD";
when "00001100000000" => D <= x"CD";
when "00001100000001" => D <= x"BC";
when "00001100000010" => D <= x"00";
when "00001100000011" => D <= x"BA";
when "00001100000100" => D <= x"20";
when "00001100000101" => D <= x"20";
when "00001100000110" => D <= x"20";
when "00001100000111" => D <= x"20";
when "00001100001000" => D <= x"20";
when "00001100001001" => D <= x"20";
when "00001100001010" => D <= x"20";
when "00001100001011" => D <= x"20";
when "00001100001100" => D <= x"20";
when "00001100001101" => D <= x"20";
when "00001100001110" => D <= x"20";
when "00001100001111" => D <= x"20";
when "00001100010000" => D <= x"20";
when "00001100010001" => D <= x"20";
when "00001100010010" => D <= x"20";
when "00001100010011" => D <= x"20";
when "00001100010100" => D <= x"20";
when "00001100010101" => D <= x"20";
when "00001100010110" => D <= x"20";
when "00001100010111" => D <= x"20";
when "00001100011000" => D <= x"20";
when "00001100011001" => D <= x"20";
when "00001100011010" => D <= x"20";
when "00001100011011" => D <= x"20";
when "00001100011100" => D <= x"20";
when "00001100011101" => D <= x"20";
when "00001100011110" => D <= x"20";
when "00001100011111" => D <= x"20";
when "00001100100000" => D <= x"20";
when "00001100100001" => D <= x"20";
when "00001100100010" => D <= x"BA";
when "00001100100011" => D <= x"00";
when "00001100100100" => D <= x"20";
when "00001100100101" => D <= x"20";
when "00001100100110" => D <= x"20";
when "00001100100111" => D <= x"5A";
when "00001100101000" => D <= x"38";
when "00001100101001" => D <= x"30";
when "00001100101010" => D <= x"20";
when "00001100101011" => D <= x"53";
when "00001100101100" => D <= x"59";
when "00001100101101" => D <= x"53";
when "00001100101110" => D <= x"54";
when "00001100101111" => D <= x"45";
when "00001100110000" => D <= x"4D";
when "00001100110001" => D <= x"20";
when "00001100110010" => D <= x"20";
when "00001100110011" => D <= x"20";
when "00001100110100" => D <= x"20";
when "00001100110101" => D <= x"52";
when "00001100110110" => D <= x"4F";
when "00001100110111" => D <= x"4E";
when "00001100111000" => D <= x"49";
when "00001100111001" => D <= x"56";
when "00001100111010" => D <= x"4F";
when "00001100111011" => D <= x"4E";
when "00001100111100" => D <= x"20";
when "00001100111101" => D <= x"20";
when "00001100111110" => D <= x"43";
when "00001100111111" => D <= x"4F";
when "00001101000000" => D <= x"53";
when "00001101000001" => D <= x"54";
when "00001101000010" => D <= x"41";
when "00001101000011" => D <= x"20";
when "00001101000100" => D <= x"00";
when "00001101000101" => D <= x"44";
when "00001101000110" => D <= x"45";
when "00001101000111" => D <= x"31";
when "00001101001000" => D <= x"20";
when "00001101001001" => D <= x"56";
when "00001101001010" => D <= x"65";
when "00001101001011" => D <= x"72";
when "00001101001100" => D <= x"73";
when "00001101001101" => D <= x"69";
when "00001101001110" => D <= x"6F";
when "00001101001111" => D <= x"6E";
when "00001101010000" => D <= x"00";
when "00001101010001" => D <= x"53";
when "00001101010010" => D <= x"33";
when "00001101010011" => D <= x"45";
when "00001101010100" => D <= x"20";
when "00001101010101" => D <= x"56";
when "00001101010110" => D <= x"65";
when "00001101010111" => D <= x"72";
when "00001101011000" => D <= x"73";
when "00001101011001" => D <= x"69";
when "00001101011010" => D <= x"6F";
when "00001101011011" => D <= x"6E";
when "00001101011100" => D <= x"00";
when others => D <= "ZZZZZZZZ";
end case;
end if;
end process;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.