add fontset
This commit is contained in:
parent
b4b1a91f9f
commit
6bd5af390f
27
yayacemu.sv
27
yayacemu.sv
|
@ -20,6 +20,8 @@ module yayacemu (
|
||||||
logic rom_ready;
|
logic rom_ready;
|
||||||
logic [15:0] program_counter;
|
logic [15:0] program_counter;
|
||||||
|
|
||||||
|
bit [7:0] fontset [79:0];
|
||||||
|
|
||||||
randomizer randy(clk_in, program_counter, keyboard, cycle_counter, rand_num);
|
randomizer randy(clk_in, program_counter, keyboard, cycle_counter, rand_num);
|
||||||
keyboard kb(clk_in, keyboard);
|
keyboard kb(clk_in, keyboard);
|
||||||
rom_loader rl (memory, rom_ready);
|
rom_loader rl (memory, rom_ready);
|
||||||
|
@ -28,8 +30,29 @@ module yayacemu (
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
initial begin
|
initial begin
|
||||||
|
fontset = {
|
||||||
|
8'hF0, 8'h90, 8'h90, 8'h90, 8'hF0, // 0
|
||||||
|
8'h20, 8'h60, 8'h20, 8'h20, 8'h70, // 1
|
||||||
|
8'hF0, 8'h10, 8'hF0, 8'h80, 8'hF0, // 2
|
||||||
|
8'hF0, 8'h10, 8'hF0, 8'h10, 8'hF0, // 3
|
||||||
|
8'h90, 8'h90, 8'hF0, 8'h10, 8'h10, // 4
|
||||||
|
8'hF0, 8'h80, 8'hF0, 8'h10, 8'hF0, // 5
|
||||||
|
8'hF0, 8'h80, 8'hF0, 8'h90, 8'hF0, // 6
|
||||||
|
8'hF0, 8'h10, 8'h20, 8'h40, 8'h40, // 7
|
||||||
|
8'hF0, 8'h90, 8'hF0, 8'h90, 8'hF0, // 8
|
||||||
|
8'hF0, 8'h90, 8'hF0, 8'h10, 8'hF0, // 9
|
||||||
|
8'hF0, 8'h90, 8'hF0, 8'h90, 8'h90, // A
|
||||||
|
8'hE0, 8'h90, 8'hE0, 8'h90, 8'hE0, // B
|
||||||
|
8'hF0, 8'h80, 8'h80, 8'h80, 8'hF0, // C
|
||||||
|
8'hE0, 8'h90, 8'h90, 8'h90, 8'hE0, // D
|
||||||
|
8'hF0, 8'h80, 8'hF0, 8'h80, 8'hF0, // E
|
||||||
|
8'hF0, 8'h80, 8'hF0, 8'h80, 8'h80 // F
|
||||||
|
};
|
||||||
watch_key = 255;
|
watch_key = 255;
|
||||||
halt = 0;
|
halt = 0;
|
||||||
|
for(i = 0; i < 80; i++) begin
|
||||||
|
memory[i] = fontset[i];
|
||||||
|
end
|
||||||
for(i = 0; i < 15; i++) begin
|
for(i = 0; i < 15; i++) begin
|
||||||
keyboard[i] = 0;
|
keyboard[i] = 0;
|
||||||
end
|
end
|
||||||
|
@ -310,6 +333,10 @@ module chip8_cpu(
|
||||||
$display("HW : INSTR ADD I, Vx");
|
$display("HW : INSTR ADD I, Vx");
|
||||||
index_reg = index_reg + {8'h00, registers[(opcode & 'h0F00) >> 8]};
|
index_reg = index_reg + {8'h00, registers[(opcode & 'h0F00) >> 8]};
|
||||||
end
|
end
|
||||||
|
'hF?29: begin
|
||||||
|
$display("HW : INSTR LDL F, Vx");
|
||||||
|
index_reg = registers[(opcode & 'h0F00) >> 8] * 5;
|
||||||
|
end
|
||||||
'hF?33: begin
|
'hF?33: begin
|
||||||
$display("HW : INSTR LD B, Vx");
|
$display("HW : INSTR LD B, Vx");
|
||||||
scratch = {8'h00, registers[(opcode & 'h0F00) >> 8]};
|
scratch = {8'h00, registers[(opcode & 'h0F00) >> 8]};
|
||||||
|
|
Loading…
Reference in a new issue