File tree Expand file tree Collapse file tree 3 files changed +27
-12
lines changed
Expand file tree Collapse file tree 3 files changed +27
-12
lines changed Original file line number Diff line number Diff line change @@ -34,7 +34,7 @@ ram<> pages[RAM_PAGES];
3434void reset (void ) {
3535 bool disk = hardware_reset ();
3636
37- kbd .reset ();
37+ io .reset ();
3838
3939 unsigned i;
4040 for (i = 0 ; i < sizeof (cpm22); i++)
@@ -57,6 +57,8 @@ void reset(void) {
5757void function_key (uint8_t fn) {
5858 if (fn == 1 )
5959 reset ();
60+ else if (fn == 10 )
61+ hardware_debug_cpu ();
6062}
6163
6264void setup (void ) {
Original file line number Diff line number Diff line change 1212#include " io.h"
1313
1414void IO::reset () {
15- dsk_reset ();
1615 _kbd.reset ();
1716 scr_reset ();
17+ dsk_reset ();
1818 _brk = true ;
1919}
2020
@@ -33,13 +33,13 @@ uint8_t IO::kbd_poll() {
3333uint8_t IO::in (uint16_t port, i8080 *cpu) {
3434
3535 switch (port & 0xff ) {
36- case 4 :
37- return kbd_poll ();
38- case 2 :
36+ case CON_ST:
3937 return _kbd.available ()? 0xff : 0x00 ;
40- case 14 :
38+ case CON_IN:
39+ return kbd_poll ();
40+ case FDC_IN:
4141 return dsk_read ();
42- case 15 :
42+ case FDC_OUT :
4343 return dsk_write ();
4444 default :
4545 DBG (printf (" IO: unhandled input port: %x\r\n " , port));
@@ -50,19 +50,19 @@ uint8_t IO::in(uint16_t port, i8080 *cpu) {
5050void IO::out (uint16_t port, uint8_t a, i8080 *cpu) {
5151
5252 switch (port & 0xff ) {
53- case 4 :
53+ case CON_OUT :
5454 scr_display (a);
5555 break ;
56- case 20 :
56+ case FDC_SELDSK :
5757 dsk_select (a);
5858 break ;
59- case 21 :
59+ case FDC_SETTRK :
6060 settrk = a;
6161 break ;
62- case 22 :
62+ case FDC_SETSEC :
6363 setsec = a;
6464 break ;
65- case 23 :
65+ case FDC_SETDMA :
6666 setdma = cpu->hl ();
6767 break ;
6868 default :
Original file line number Diff line number Diff line change 33
44class serial_kbd ;
55
6+ // input ports (see CBIOS.ASM)
7+ #define CON_ST 2
8+ #define CON_IN 4
9+ #define FDC_IN 14
10+ #define FDC_OUT 15
11+
12+ // output ports
13+ #define CON_OUT 4
14+ #define FDC_SELDSK 20
15+ #define FDC_SETTRK 21
16+ #define FDC_SETSEC 22
17+ #define FDC_SETDMA 23
18+
619class IO : public PortDevice <i8080>, public Display {
720public:
821 IO (Memory &mem, serial_kbd &kbd): _mem(mem), _kbd(kbd) {}
You can’t perform that action at this time.
0 commit comments