Apple1Display/ttl/dm2513.vhd

661 lines
24 KiB
VHDL

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- DM7400 Quad 2-Input NAND Gate
entity dm2513 is
port(
addr: in std_logic_vector(8 downto 0);
output: out std_logic_vector(4 downto 0)
);
end dm2513;
architecture behavior of dm2513 is
begin
output <=
-- @
"00000" when addr = "000000000" else
"01110" when addr = "000000001" else
"10001" when addr = "000000010" else
"10101" when addr = "000000011" else
"10111" when addr = "000000100" else
"10110" when addr = "000000101" else
"10000" when addr = "000000110" else
"01111" when addr = "000000111" else
-- A
"00000" when addr = "000001000" else
"00100" when addr = "000001001" else
"01010" when addr = "000001010" else
"10001" when addr = "000001011" else
"10001" when addr = "000001100" else
"11111" when addr = "000001101" else
"10001" when addr = "000001110" else
"10001" when addr = "000001111" else
-- B
"00000" when addr = "000010000" else
"11110" when addr = "000010001" else
"10001" when addr = "000010010" else
"10001" when addr = "000010011" else
"11110" when addr = "000010100" else
"10001" when addr = "000010101" else
"10001" when addr = "000010110" else
"11110" when addr = "000010111" else
-- C
"00000" when addr = "000011000" else
"01110" when addr = "000011001" else
"10001" when addr = "000011010" else
"10000" when addr = "000011011" else
"10000" when addr = "000011100" else
"10000" when addr = "000011101" else
"10001" when addr = "000011110" else
"01110" when addr = "000011111" else
-- D
"00000" when addr = "000100000" else
"11110" when addr = "000100001" else
"10001" when addr = "000100010" else
"10001" when addr = "000100011" else
"10001" when addr = "000100100" else
"10001" when addr = "000100101" else
"10001" when addr = "000100110" else
"11110" when addr = "000100111" else
-- E
"00000" when addr = "000101000" else
"11111" when addr = "000101001" else
"10000" when addr = "000101010" else
"10000" when addr = "000101011" else
"11110" when addr = "000101100" else
"10000" when addr = "000101101" else
"10000" when addr = "000101110" else
"11111" when addr = "000101111" else
-- F
"00000" when addr = "000110000" else
"11111" when addr = "000110001" else
"10000" when addr = "000110010" else
"10000" when addr = "000110011" else
"11110" when addr = "000110100" else
"10000" when addr = "000110101" else
"10000" when addr = "000110110" else
"10000" when addr = "000110111" else
-- G
"00000" when addr = "000111000" else
"01111" when addr = "000111001" else
"10000" when addr = "000111010" else
"10000" when addr = "000111011" else
"10000" when addr = "000111100" else
"10011" when addr = "000111101" else
"10001" when addr = "000111110" else
"01111" when addr = "000111111" else
-- H
"00000" when addr = "001000000" else
"10001" when addr = "001000001" else
"10001" when addr = "001000010" else
"10001" when addr = "001000011" else
"11111" when addr = "001000100" else
"10001" when addr = "001000101" else
"10001" when addr = "001000110" else
"10001" when addr = "001000111" else
-- I
"00000" when addr = "001001000" else
"01110" when addr = "001001001" else
"00100" when addr = "001001010" else
"00100" when addr = "001001011" else
"00100" when addr = "001001100" else
"00100" when addr = "001001101" else
"00100" when addr = "001001110" else
"01110" when addr = "001001111" else
-- J
"00000" when addr = "001010000" else
"00001" when addr = "001010001" else
"00001" when addr = "001010010" else
"00001" when addr = "001010011" else
"00001" when addr = "001010100" else
"00001" when addr = "001010101" else
"10001" when addr = "001010110" else
"01110" when addr = "001010111" else
-- K
"00000" when addr = "001011000" else
"10001" when addr = "001011001" else
"10010" when addr = "001011010" else
"10100" when addr = "001011011" else
"11000" when addr = "001011100" else
"10100" when addr = "001011101" else
"10010" when addr = "001011110" else
"10001" when addr = "001011111" else
-- L
"00000" when addr = "001100000" else
"10000" when addr = "001100001" else
"10000" when addr = "001100010" else
"10000" when addr = "001100011" else
"10000" when addr = "001100100" else
"10000" when addr = "001100101" else
"10000" when addr = "001100110" else
"11111" when addr = "001100111" else
-- M
"00000" when addr = "001101000" else
"10001" when addr = "001101001" else
"11011" when addr = "001101010" else
"10101" when addr = "001101011" else
"10101" when addr = "001101100" else
"10001" when addr = "001101101" else
"10001" when addr = "001101110" else
"10001" when addr = "001101111" else
-- N
"00000" when addr = "001110000" else
"10001" when addr = "001110001" else
"10001" when addr = "001110010" else
"11001" when addr = "001110011" else
"10101" when addr = "001110100" else
"10011" when addr = "001110101" else
"10001" when addr = "001110110" else
"10001" when addr = "001110111" else
-- O
"00000" when addr = "001111000" else
"01110" when addr = "001111001" else
"10001" when addr = "001111010" else
"10001" when addr = "001111011" else
"10001" when addr = "001111100" else
"10001" when addr = "001111101" else
"10001" when addr = "001111110" else
"01110" when addr = "001111111" else
-- P
"00000" when addr = "010000000" else
"11110" when addr = "010000001" else
"10001" when addr = "010000010" else
"10001" when addr = "010000011" else
"11110" when addr = "010000100" else
"10000" when addr = "010000101" else
"10000" when addr = "010000110" else
"10000" when addr = "010000111" else
-- Q
"00000" when addr = "010001000" else
"01110" when addr = "010001001" else
"10001" when addr = "010001010" else
"10001" when addr = "010001011" else
"10001" when addr = "010001100" else
"10101" when addr = "010001101" else
"10010" when addr = "010001110" else
"01101" when addr = "010001111" else
-- R
"00000" when addr = "010010000" else
"11110" when addr = "010010001" else
"10001" when addr = "010010010" else
"10001" when addr = "010010011" else
"11110" when addr = "010010100" else
"10100" when addr = "010010101" else
"10010" when addr = "010010110" else
"10001" when addr = "010010111" else
-- S
"00000" when addr = "010011000" else
"01110" when addr = "010011001" else
"10001" when addr = "010011010" else
"10000" when addr = "010011011" else
"01110" when addr = "010011100" else
"00001" when addr = "010011101" else
"10001" when addr = "010011110" else
"01110" when addr = "010011111" else
-- T
"00000" when addr = "010100000" else
"11111" when addr = "010100001" else
"00100" when addr = "010100010" else
"00100" when addr = "010100011" else
"00100" when addr = "010100100" else
"00100" when addr = "010100101" else
"00100" when addr = "010100110" else
"00100" when addr = "010100111" else
-- U
"00000" when addr = "010101000" else
"10001" when addr = "010101001" else
"10001" when addr = "010101010" else
"10001" when addr = "010101011" else
"10001" when addr = "010101100" else
"10001" when addr = "010101101" else
"10001" when addr = "010101110" else
"01110" when addr = "010101111" else
-- V
"00000" when addr = "010110000" else
"10001" when addr = "010110001" else
"10001" when addr = "010110010" else
"10001" when addr = "010110011" else
"10001" when addr = "010110100" else
"10001" when addr = "010110101" else
"01010" when addr = "010110110" else
"00100" when addr = "010110111" else
-- W
"00000" when addr = "010111000" else
"10001" when addr = "010111001" else
"10001" when addr = "010111010" else
"10001" when addr = "010111011" else
"10101" when addr = "010111100" else
"10101" when addr = "010111101" else
"11011" when addr = "010111110" else
"10001" when addr = "010111111" else
-- X
"00000" when addr = "011000000" else
"10001" when addr = "011000001" else
"10001" when addr = "011000010" else
"01010" when addr = "011000011" else
"00100" when addr = "011000100" else
"01010" when addr = "011000101" else
"10001" when addr = "011000110" else
"10001" when addr = "011000111" else
-- Y
"00000" when addr = "011001000" else
"10001" when addr = "011001001" else
"10001" when addr = "011001010" else
"01010" when addr = "011001011" else
"00100" when addr = "011001100" else
"00100" when addr = "011001101" else
"00100" when addr = "011001110" else
"00100" when addr = "011001111" else
-- Z
"00000" when addr = "011010000" else
"11111" when addr = "011010001" else
"00001" when addr = "011010010" else
"00010" when addr = "011010011" else
"00100" when addr = "011010100" else
"01000" when addr = "011010101" else
"10000" when addr = "011010110" else
"11111" when addr = "011010111" else
-- [
"00000" when addr = "011011000" else
"11111" when addr = "011011001" else
"11000" when addr = "011011010" else
"11000" when addr = "011011011" else
"11000" when addr = "011011100" else
"11000" when addr = "011011101" else
"11000" when addr = "011011110" else
"11111" when addr = "011011111" else
-- \
"00000" when addr = "011100000" else
"00000" when addr = "011100001" else
"10000" when addr = "011100010" else
"01000" when addr = "011100011" else
"00100" when addr = "011100100" else
"00010" when addr = "011100101" else
"00001" when addr = "011100110" else
"00000" when addr = "011100111" else
-- ]
"00000" when addr = "011101000" else
"11111" when addr = "011101001" else
"00011" when addr = "011101010" else
"00011" when addr = "011101011" else
"00011" when addr = "011101100" else
"00011" when addr = "011101101" else
"00011" when addr = "011101110" else
"11111" when addr = "011101111" else
-- ^
"00000" when addr = "011110000" else
"00000" when addr = "011110001" else
"00000" when addr = "011110010" else
"00100" when addr = "011110011" else
"01010" when addr = "011110100" else
"10001" when addr = "011110101" else
"00000" when addr = "011110110" else
"00000" when addr = "011110111" else
-- _
"00000" when addr = "011111000" else
"00000" when addr = "011111001" else
"00000" when addr = "011111010" else
"00000" when addr = "011111011" else
"00000" when addr = "011111100" else
"00000" when addr = "011111101" else
"00000" when addr = "011111110" else
"11111" when addr = "011111111" else
--
"00000" when addr = "100000000" else
"00000" when addr = "100000001" else
"00000" when addr = "100000010" else
"00000" when addr = "100000011" else
"00000" when addr = "100000100" else
"00000" when addr = "100000101" else
"00000" when addr = "100000110" else
"00000" when addr = "100000111" else
-- !
"00000" when addr = "100001000" else
"00100" when addr = "100001001" else
"00100" when addr = "100001010" else
"00100" when addr = "100001011" else
"00100" when addr = "100001100" else
"00100" when addr = "100001101" else
"00000" when addr = "100001110" else
"00100" when addr = "100001111" else
-- "
"00000" when addr = "100010000" else
"01010" when addr = "100010001" else
"01010" when addr = "100010010" else
"01010" when addr = "100010011" else
"00000" when addr = "100010100" else
"00000" when addr = "100010101" else
"00000" when addr = "100010110" else
"00000" when addr = "100010111" else
-- #
"00000" when addr = "100011000" else
"01010" when addr = "100011001" else
"01010" when addr = "100011010" else
"11111" when addr = "100011011" else
"01010" when addr = "100011100" else
"11111" when addr = "100011101" else
"01010" when addr = "100011110" else
"01010" when addr = "100011111" else
-- $
"00000" when addr = "100100000" else
"00100" when addr = "100100001" else
"01111" when addr = "100100010" else
"10100" when addr = "100100011" else
"01110" when addr = "100100100" else
"00101" when addr = "100100101" else
"11110" when addr = "100100110" else
"00100" when addr = "100100111" else
-- %
"00000" when addr = "100101000" else
"11000" when addr = "100101001" else
"11001" when addr = "100101010" else
"00010" when addr = "100101011" else
"00100" when addr = "100101100" else
"01000" when addr = "100101101" else
"10011" when addr = "100101110" else
"00011" when addr = "100101111" else
-- &
"00000" when addr = "100110000" else
"01000" when addr = "100110001" else
"10100" when addr = "100110010" else
"10100" when addr = "100110011" else
"01000" when addr = "100110100" else
"10101" when addr = "100110101" else
"10010" when addr = "100110110" else
"01101" when addr = "100110111" else
-- '
"00000" when addr = "100111000" else
"00100" when addr = "100111001" else
"00100" when addr = "100111010" else
"00100" when addr = "100111011" else
"00000" when addr = "100111100" else
"00000" when addr = "100111101" else
"00000" when addr = "100111110" else
"00000" when addr = "100111111" else
-- (
"00000" when addr = "101000000" else
"00100" when addr = "101000001" else
"01000" when addr = "101000010" else
"10000" when addr = "101000011" else
"10000" when addr = "101000100" else
"10000" when addr = "101000101" else
"01000" when addr = "101000110" else
"00100" when addr = "101000111" else
-- )
"00000" when addr = "101001000" else
"00100" when addr = "101001001" else
"00010" when addr = "101001010" else
"00001" when addr = "101001011" else
"00001" when addr = "101001100" else
"00001" when addr = "101001101" else
"00010" when addr = "101001110" else
"00100" when addr = "101001111" else
-- *
"00000" when addr = "101010000" else
"00100" when addr = "101010001" else
"10101" when addr = "101010010" else
"01110" when addr = "101010011" else
"00100" when addr = "101010100" else
"01110" when addr = "101010101" else
"10101" when addr = "101010110" else
"00100" when addr = "101010111" else
-- +
"00000" when addr = "101011000" else
"00000" when addr = "101011001" else
"00100" when addr = "101011010" else
"00100" when addr = "101011011" else
"11111" when addr = "101011100" else
"00100" when addr = "101011101" else
"00100" when addr = "101011110" else
"00000" when addr = "101011111" else
-- ,
"00000" when addr = "101100000" else
"00000" when addr = "101100001" else
"00000" when addr = "101100010" else
"00000" when addr = "101100011" else
"00000" when addr = "101100100" else
"00100" when addr = "101100101" else
"00100" when addr = "101100110" else
"01000" when addr = "101100111" else
-- -
"00000" when addr = "101101000" else
"00000" when addr = "101101001" else
"00000" when addr = "101101010" else
"00000" when addr = "101101011" else
"11111" when addr = "101101100" else
"00000" when addr = "101101101" else
"00000" when addr = "101101110" else
"00000" when addr = "101101111" else
-- .
"00000" when addr = "101110000" else
"00000" when addr = "101110001" else
"00000" when addr = "101110010" else
"00000" when addr = "101110011" else
"00000" when addr = "101110100" else
"00000" when addr = "101110101" else
"00000" when addr = "101110110" else
"00100" when addr = "101110111" else
-- /
"00000" when addr = "101111000" else
"00000" when addr = "101111001" else
"00001" when addr = "101111010" else
"00010" when addr = "101111011" else
"00100" when addr = "101111100" else
"01000" when addr = "101111101" else
"10000" when addr = "101111110" else
"00000" when addr = "101111111" else
-- 0
"00000" when addr = "110000000" else
"01110" when addr = "110000001" else
"10001" when addr = "110000010" else
"10011" when addr = "110000011" else
"10101" when addr = "110000100" else
"11001" when addr = "110000101" else
"10001" when addr = "110000110" else
"01110" when addr = "110000111" else
-- 1
"00000" when addr = "110001000" else
"00100" when addr = "110001001" else
"01100" when addr = "110001010" else
"00100" when addr = "110001011" else
"00100" when addr = "110001100" else
"00100" when addr = "110001101" else
"00100" when addr = "110001110" else
"01110" when addr = "110001111" else
-- 2
"00000" when addr = "110010000" else
"01110" when addr = "110010001" else
"10001" when addr = "110010010" else
"00001" when addr = "110010011" else
"00110" when addr = "110010100" else
"01000" when addr = "110010101" else
"10000" when addr = "110010110" else
"11110" when addr = "110010111" else
-- 3
"00000" when addr = "110011000" else
"11111" when addr = "110011001" else
"00001" when addr = "110011010" else
"00010" when addr = "110011011" else
"00110" when addr = "110011100" else
"00001" when addr = "110011101" else
"10001" when addr = "110011110" else
"01110" when addr = "110011111" else
-- 4
"00000" when addr = "110100000" else
"00010" when addr = "110100001" else
"00110" when addr = "110100010" else
"01010" when addr = "110100011" else
"10010" when addr = "110100100" else
"11111" when addr = "110100101" else
"00010" when addr = "110100110" else
"00010" when addr = "110100111" else
-- 5
"00000" when addr = "110101000" else
"11111" when addr = "110101001" else
"10000" when addr = "110101010" else
"11110" when addr = "110101011" else
"00001" when addr = "110101100" else
"00001" when addr = "110101101" else
"10001" when addr = "110101110" else
"01110" when addr = "110101111" else
-- 6
"00000" when addr = "110110000" else
"00111" when addr = "110110001" else
"01000" when addr = "110110010" else
"10000" when addr = "110110011" else
"11110" when addr = "110110100" else
"10001" when addr = "110110101" else
"10001" when addr = "110110110" else
"01110" when addr = "110110111" else
-- 7
"00000" when addr = "110111000" else
"11111" when addr = "110111001" else
"00001" when addr = "110111010" else
"00010" when addr = "110111011" else
"00100" when addr = "110111100" else
"01000" when addr = "110111101" else
"01000" when addr = "110111110" else
"01000" when addr = "110111111" else
-- 8
"00000" when addr = "111000000" else
"01110" when addr = "111000001" else
"10001" when addr = "111000010" else
"10001" when addr = "111000011" else
"01110" when addr = "111000100" else
"10001" when addr = "111000101" else
"10001" when addr = "111000110" else
"01110" when addr = "111000111" else
-- 9
"00000" when addr = "111001000" else
"01110" when addr = "111001001" else
"10001" when addr = "111001010" else
"10001" when addr = "111001011" else
"01111" when addr = "111001100" else
"00001" when addr = "111001101" else
"00010" when addr = "111001110" else
"11100" when addr = "111001111" else
-- :
"00000" when addr = "111010000" else
"00000" when addr = "111010001" else
"00000" when addr = "111010010" else
"00100" when addr = "111010011" else
"00000" when addr = "111010100" else
"00100" when addr = "111010101" else
"00000" when addr = "111010110" else
"00000" when addr = "111010111" else
-- ;
"00000" when addr = "111011000" else
"00000" when addr = "111011001" else
"00000" when addr = "111011010" else
"00100" when addr = "111011011" else
"00000" when addr = "111011100" else
"00100" when addr = "111011101" else
"00100" when addr = "111011110" else
"01000" when addr = "111011111" else
-- <
"00000" when addr = "111100000" else
"00010" when addr = "111100001" else
"00100" when addr = "111100010" else
"01000" when addr = "111100011" else
"10000" when addr = "111100100" else
"01000" when addr = "111100101" else
"00100" when addr = "111100110" else
"00010" when addr = "111100111" else
-- =
"00000" when addr = "111101000" else
"00000" when addr = "111101001" else
"00000" when addr = "111101010" else
"11111" when addr = "111101011" else
"00000" when addr = "111101100" else
"11111" when addr = "111101101" else
"00000" when addr = "111101110" else
"00000" when addr = "111101111" else
-- >
"00000" when addr = "111110000" else
"01000" when addr = "111110001" else
"00100" when addr = "111110010" else
"00010" when addr = "111110011" else
"00001" when addr = "111110100" else
"00010" when addr = "111110101" else
"00100" when addr = "111110110" else
"01000" when addr = "111110111" else
-- ?
"00000" when addr = "111111000" else
"01110" when addr = "111111001" else
"10001" when addr = "111111010" else
"00010" when addr = "111111011" else
"00100" when addr = "111111100" else
"00100" when addr = "111111101" else
"00000" when addr = "111111110" else
"00100" when addr = "111111111";
end architecture;