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

Subversion Repositories system05

[/] [system05/] [trunk/] [rtl/] [vhdl/] [bootrom.vhd] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dilbert57
--         FILE NAME: bootrom.vhdl
2
--       ENTITY NAME: boot_rom
3
-- ARCHITECTURE NAME: behave
4
--          REVISION: A
5
--
6
--       DESCRIPTION: 64 byte x 8 bit ROM to down a Monitor
7
--                    program on reset
8
--
9
--Written by John Kent for the micro8 processor
10
 
11
library ieee;
12
use ieee.std_logic_1164.all;
13
use ieee.std_logic_arith.all;
14
use ieee.std_logic_unsigned.all;
15
 
16
library work;
17
-- use work.memory.all;
18
 
19
entity boot_rom is
20
  port (
21
    addr   : in   std_logic_vector(5 downto 0);
22
    data   : out  std_logic_vector(7 downto 0)
23
  );
24
end entity boot_rom;
25
 
26
architecture basic of boot_rom is
27
  constant width   : integer := 8;
28
  constant memsize : integer := 64;
29
 
30
  type rom_array is array(0 to memsize-1) of std_logic_vector(width-1 downto 0);
31
 
32
  constant rom_data : rom_array :=
33
  ( "10011100",                                      -- $FFC0 - 9C       RESET RSP
34
    "10100110", "00010001",             -- $FFC1 - A6 11          LDA #$11
35
         "10110111", "00010000",             -- $FFC3 - B7 10          STA ACIACS
36
    "10101110", "00000000",             -- $FFC5 - AE 00          LDX #$00
37
         "11010110", "11111111", "11100010", -- $FFC7 - D6 FFE2  LOOP0 LDA $FFE0,X
38
         "00100111", "00001000",             -- $FFCA - 27 08          BEQ INPUT
39
         "00000011", "00010000", "11111101", -- $FFCC - 03 10 FD LOOP1 BRCLR 1,$10,LOOP1
40
         "10110111", "00010001",             -- $FFCF - B7 11          STA ACIADA
41
         "01011100",                         -- $FFD1 - 5C             INCX
42
         "00100000", "11110011",             -- $FFD3 - 20 F3          BRA LOOP0
43
         "00000001", "00010000", "11111101", -- $FFD5 - 01 10 FD INPUT BRCLR 0,$10,INPUT
44
         "10110110", "00010001",             -- $FFD7 - B6 11          LDA ACIADA
45
         "11001101", "11111111", "11011111", -- $FFD9 - CD FFDF        JSR SUBR
46
         "11001100", "11111111", "11000000", -- $FFDC - CC FFC0        JMP RESET
47
         "10110111", "00010001",             -- $FFDF - B7 11    SUBR  STA ACIADA
48
         "10000001",                         -- $FFE1 - 81             RTS
49
    "01001000", "01100101", "01101100", -- $FFE2 - 48 65 6c MSG   FCC "Hel"
50
         "01101100", "01101111", "00100000", -- $FFE5 - 6c 6f 20       FCC "lo "
51
         "01010111", "01101111", "01110010", -- $FFE8 - 57 6f 72       FCC "Wor"
52
    "01101100", "01100100",             -- $FFEB - 6c 64          FCC "ld"
53
    "00001010", "00001101", "00000000", -- $FFED - 0a 0d 00       FCB LF,CR,NULL
54
         "11111111", "11000000",             -- $FFF0 - FF C0          FDB RESET           
55
         "11111111", "11000000",             -- $FFF2 - FF C0          FDB RESET           
56
         "11111111", "11000000",             -- $FFF4 - FF C0          FDB RESET           
57
         "11111111", "11000000",             -- $FFF6 - FF C0          FDB RESET           
58
         "11111111", "11000000",             -- $FFF8 - FF C0          FDB RESET           
59
         "11111111", "11000000",             -- $FFFA - FF C0          FDB RESET           
60
         "11111111", "11000000",             -- $FFFC - FF C0          FDB RESET           
61
         "11111111", "11000000"              -- $FFFE - FF C0          FDB RESET           
62
);
63
begin
64
   data <= rom_data(conv_integer(addr));
65
end architecture basic;
66
 
67
 

powered by: WebSVN 2.1.0

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