Rev 284 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 284 | Rev 287 | ||
|---|---|---|---|
| Line 39... | Line 39... | ||
| 39 | 39 | ||
| 40 | input wire [ 4:0] keys_in, // keys (port FE) |
40 | input wire [ 4:0] keys_in, // keys (port FE) |
| 41 | input wire [ 7:0] mus_in, // mouse (xxDF) |
41 | input wire [ 7:0] mus_in, // mouse (xxDF) |
| 42 | input wire [ 4:0] kj_in, |
42 | input wire [ 4:0] kj_in, |
| 43 | 43 | ||
| 44 | output reg [ 2:0] border, |
44 | output reg [ 3:0] border, |
| 45 | 45 | ||
| 46 | output reg beeper, |
46 | output reg beeper, |
| 47 | output reg tapeout, |
47 | output reg tapeout, |
| 48 | 48 | ||
| 49 | input wire dos, |
49 | input wire dos, |
| Line 105... | Line 105... | ||
| 105 | 105 | ||
| 106 | reg rstsync1,rstsync2; |
106 | reg rstsync1,rstsync2; |
| 107 | 107 | ||
| 108 | 108 | ||
| 109 | localparam PORTFE = 8'hFE; |
109 | localparam PORTFE = 8'hFE; |
| - | 110 | localparam PORTF6 = 8'hF6; |
|
| 110 | localparam PORTF7 = 8'hF7; |
111 | localparam PORTF7 = 8'hF7; |
| 111 | 112 | ||
| 112 | localparam NIDE10 = 8'h10; |
113 | localparam NIDE10 = 8'h10; |
| 113 | localparam NIDE11 = 8'h11; |
114 | localparam NIDE11 = 8'h11; |
| 114 | localparam NIDE30 = 8'h30; |
115 | localparam NIDE30 = 8'h30; |
| Line 210... | Line 211... | ||
| 210 | 211 | ||
| 211 | assign loa=a[7:0]; |
212 | assign loa=a[7:0]; |
| 212 | 213 | ||
| 213 | always @* |
214 | always @* |
| 214 | begin |
215 | begin |
| 215 | if( (loa==PORTFE) || |
216 | if( (loa==PORTFE) || (loa==PORTF6) || |
| 216 | (loa==PORTFD) || |
217 | (loa==PORTFD) || |
| 217 | 218 | ||
| 218 | (loa==NIDE10) || (loa==NIDE11) || (loa==NIDE30) || (loa==NIDE50) || (loa==NIDE70) || |
219 | (loa==NIDE10) || (loa==NIDE11) || (loa==NIDE30) || (loa==NIDE50) || (loa==NIDE70) || |
| 219 | (loa==NIDE90) || (loa==NIDEB0) || (loa==NIDED0) || (loa==NIDEF0) || (loa==NIDEC8) || |
220 | (loa==NIDE90) || (loa==NIDEB0) || (loa==NIDED0) || (loa==NIDEF0) || (loa==NIDEC8) || |
| 220 | 221 | ||
| Line 299... | Line 300... | ||
| 299 | always @* |
300 | always @* |
| 300 | begin |
301 | begin |
| 301 | case( loa ) |
302 | case( loa ) |
| 302 | PORTFE: |
303 | PORTFE: |
| 303 | dout = { 1'b1, tape_read, 1'b0, keys_in }; |
304 | dout = { 1'b1, tape_read, 1'b0, keys_in }; |
| - | 305 | PORTF6: |
|
| - | 306 | dout = { 1'b1, tape_read, 1'b0, keys_in }; |
|
| 304 | 307 | ||
| 305 | 308 | ||
| 306 | NIDE10,NIDE30,NIDE50,NIDE70,NIDE90,NIDEB0,NIDED0,NIDEF0,NIDEC8: |
309 | NIDE10,NIDE30,NIDE50,NIDE70,NIDE90,NIDEB0,NIDED0,NIDEF0,NIDEC8: |
| 307 | dout = iderdeven; |
310 | dout = iderdeven; |
| 308 | NIDE11: |
311 | NIDE11: |
| Line 343... | Line 346... | ||
| 343 | endcase |
346 | endcase |
| 344 | end |
347 | end |
| 345 | 348 | ||
| 346 | 349 | ||
| 347 | 350 | ||
| 348 | assign portfe_wr = ( (loa==PORTFE) && port_wr); |
351 | assign portfe_wr = (((loa==PORTFE) || (loa==PORTF6)) && port_wr); |
| 349 | assign portfd_wr = ( (loa==PORTFD) && port_wr); |
352 | assign portfd_wr = ( (loa==PORTFD) && port_wr); |
| 350 | 353 | ||
| 351 | // F7 ports (like EFF7) are accessible in shadow mode but at addresses like EEF7, DEF7, BEF7 so that |
354 | // F7 ports (like EFF7) are accessible in shadow mode but at addresses like EEF7, DEF7, BEF7 so that |
| 352 | // there are no conflicts in shadow mode with ATM xFF7 and x7F7 ports |
355 | // there are no conflicts in shadow mode with ATM xFF7 and x7F7 ports |
| 353 | assign portf7_wr = ( (loa==PORTF7) && (a[8]==1'b1) && port_wr && (!shadow) ) || |
356 | assign portf7_wr = ( (loa==PORTF7) && (a[8]==1'b1) && port_wr && (!shadow) ) || |
| Line 368... | Line 371... | ||
| 368 | begin |
371 | begin |
| 369 | if( portfe_wr ) |
372 | if( portfe_wr ) |
| 370 | begin |
373 | begin |
| 371 | tapeout <= din[3]; |
374 | tapeout <= din[3]; |
| 372 | beeper <= din[4]; |
375 | beeper <= din[4]; |
| 373 | border <= din[2:0]; |
376 | border <= { ~a[3], din[2:0] }; |
| 374 | end |
377 | end |
| 375 | end |
378 | end |
| 376 | 379 | ||
| 377 | 380 | ||
| 378 | 381 | ||