⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootrom.vhdl

📁 BurchED B5-X300 Spartan2e using XC2S300e device Top level file for 6809 compatible system on a chi
💻 VHDL
字号:
--         FILE NAME: bootrom.vhdl
--       ENTITY NAME: boot_rom
-- ARCHITECTURE NAME: behave
--          REVISION: A
--
--       DESCRIPTION: 128 byte x 8 bit ROM 
--                    to boot a Monitor program on reset
--
--Written by John Kent for the mc6809 processor

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

library work;
-- use work.memory.all;

entity boot_rom is
  port (
    addr   : in   std_logic_vector(6 downto 0);
    data   : out  std_logic_vector(7 downto 0)
  );
end entity boot_rom;

architecture basic of boot_rom is
  constant width   : integer := 8;
  constant memsize : integer := 128;

  type rom_array is array(0 to memsize-1) of std_logic_vector(width-1 downto 0);

  constant rom_data : rom_array :=
  ( 
"00010000", -- LDS #$F7FE
"11001110",
"11110111",
"11111110",
"10001110", -- LDX #$FF97
"11111111",
"10010111",
"00010000", -- LDY #$F000
"10001110",
"11110000",
"00000000",
"11000110", -- LDB #$61
"01100001",
"10100110", -- LDA ,X+ *** MOVELP
"10000000",
"10100111", -- STA ,Y+
"10100000",
"01011010", -- DECB
"00100110", -- BNE MOVELP
"11111001",
"01111110", -- JMP $F000
"11110000",
"00000000",
"10000110", -- LDA #$E0
"11100000",
"00011111", -- TFR A,DPR
"10001011",
"10001101", -- BSR WAITRDY
"01001001",
"10000110", -- LDA #$E0
"11100000",
"10010111", -- STA <$E016
"00010110",
"10001101", -- BSR WAITRDY
"01000011",
"10000110", -- LDA #$01
"00000001",
"10010111", -- STA <$E011
"00010001",
"10000110", -- LDA #$EF
"11101111",
"10010111", -- STA <$E017
"00010111",
"10001101", -- BSR WAITRDY
"00111001",
"00010000", -- LDY #$F800
"10001110",
"11111000",
"00000000",
"11000110", -- LDB #$7C
"01111100",
"10000110", -- LDA #$01 *** RDLP1
"00000001",
"10010111", -- STA <$E012
"00010010",
"11010111", -- STB <$E013
"00010011",
"10000110", -- LDA #$F4
"11110100",
"10010111", -- STA <$E014
"00010100",
"01001111", -- CLRA
"10010111", -- STA <$E015
"00010101",
"10001110", -- LDX #512
"00000010",
"00000000",
"10000110", -- LDA #$20
"00100000",
"10010111", -- STA <$E017
"00010111",
"10001101", -- BSR WAITRDY
"00011101",
"10001101", -- BSR WAITDRQ *** RDLP2
"00100110",
"10010110", -- LDA <$E010
"00010000",
"10100111", -- STA ,Y+
"10100000",
"00110000", -- LEAX -1,X
"00011111",
"10001100", -- CMPX #$0000
"00000000",
"00000000",
"00100110", -- BNE RDLP2
"11110011",
"10001101", -- BSR WAITRDY
"00001110",
"01011100", -- INCB
"11000001", -- CMPB #$80
"10000000",
"00100110", -- BNE RDLP1
"11010110",
"00001111", -- CLR <$E030 
"00110000",
"01001111", -- CLRA
"00011111", -- TFR A,DPR
"10001011",
"01101110", -- JMP [$FFFE]
"10011111",
"11111111",
"11111110",
"10010110", -- LDA <$E017 *** WAITRDY
"00010111",
"00101011", -- BMI WAITRDY
"11111100",
"10010110", -- LDA <$E017
"00010111",
"10000101", -- BITA #$40
"01000000",
"00100111", -- BNE WAITRQY
"11110110",
"00111001", -- RTS
"10010110", -- LDA <$E017 *** WAITDRQ
"00010111",
"10000101", -- BITA #$08
"00001000",
"00100111", -- BEQ WAITDRQ
"11111010",
"00111001", -- RTS
"11111111", -- FDB $F800
"10000000",
"11111111", -- FDB $F800
"10000000",
"11111111", -- FDB $F800
"10000000",
"11111111", -- FDB $F800
"10000000"
  );
begin
   data <= rom_data(conv_integer(addr)); 
end architecture basic;



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -