Skip to content

Commit

Permalink
WD1793: adjust write protect flag.
Browse files Browse the repository at this point in the history
  • Loading branch information
sorgelig committed Aug 26, 2017
1 parent ae7cbee commit eb83c64
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
11 changes: 9 additions & 2 deletions wd1793.sv
Expand Up @@ -206,6 +206,9 @@ reg s_lostdata, s_wrfault; // mode 2,3
// Command mode 0/1 for status register
reg cmd_mode;

// allow write protect flag
reg s_wpe;

// DRQ/BUSY are always going together
reg [1:0] s_drq_busy;
wire s_drq = s_drq_busy[1];
Expand All @@ -216,8 +219,8 @@ reg [7:0] wdreg_track;
reg [7:0] wdreg_sector;
reg [7:0] wdreg_data;
wire [7:0] wdreg_status = cmd_mode == 0 ?
{~ready, s_readonly, s_headloaded, s_seekerr | ~ready, s_crcerr, !disk_track, s_index, s_busy}:
{~ready, s_readonly, s_wrfault, s_seekerr | ~ready, s_crcerr, s_lostdata, s_drq, s_busy};
{~ready, s_readonly & s_wpe, s_headloaded, s_seekerr | ~ready, s_crcerr, !disk_track, s_index, s_busy}:
{~ready, s_readonly & s_wpe, s_wrfault, s_seekerr | ~ready, s_crcerr, s_lostdata, s_drq, s_busy};

reg [7:0] read_addr[6];
reg [7:0] q;
Expand Down Expand Up @@ -323,6 +326,7 @@ always @(posedge clk_sys) begin
if(RWMODE) buff_wr <= 0;
state <= STATE_IDLE;
cmd_mode <= 0;
s_wpe <= 1;
{s_headloaded, s_seekerr, s_crcerr, s_intrq} <= 0;
{s_wrfault, s_lostdata} <= 0;
s_drq_busy <= 0;
Expand Down Expand Up @@ -606,6 +610,7 @@ always @(posedge clk_sys) begin
s_intrq <= 0;
if((state == STATE_IDLE) | (din[7:4] == 'hD)) begin
cmd_mode <= din[7];
s_wpe <= ~din[7];
case (din[7:4])
'h0: // RESTORE
begin
Expand Down Expand Up @@ -677,6 +682,7 @@ always @(posedge clk_sys) begin
edsk_start <= 0;
edsk_addr <= 0;
state <= STATE_SEARCH;
s_wpe <= din[5];

if(s_readonly & din[5]) begin
s_wrfault <= 1;
Expand Down Expand Up @@ -718,6 +724,7 @@ always @(posedge clk_sys) begin
end
'hF: // WRITE TRACK
begin
s_wpe <= din[5];
{s_wrfault,s_seekerr,s_crcerr,s_lostdata} <= 0;
s_drq_busy <= 2'b01;
state <= STATE_WAIT;
Expand Down
4 changes: 2 additions & 2 deletions zxspectrum-lite.qsf
Expand Up @@ -349,7 +349,6 @@ set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE OFF
set_global_assignment -name SEED 1

set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:sys/build_id.tcl"
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
set_global_assignment -name CDF_FILE jtag_lite.cdf
set_global_assignment -name QIP_FILE sys/sys.qip
set_global_assignment -name QIP_FILE sys/sysmem.qip
Expand All @@ -361,4 +360,5 @@ set_global_assignment -name SYSTEMVERILOG_FILE video.sv
set_global_assignment -name SYSTEMVERILOG_FILE tape.sv
set_global_assignment -name VERILOG_FILE mouse.v
set_global_assignment -name SYSTEMVERILOG_FILE keyboard.sv
set_global_assignment -name SYSTEMVERILOG_FILE zxspectrum.sv
set_global_assignment -name SYSTEMVERILOG_FILE zxspectrum.sv
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

0 comments on commit eb83c64

Please sign in to comment.