Skip to content

Commit ec6e3ae

Browse files
committed
cleanup
1 parent c6255d5 commit ec6e3ae

File tree

3 files changed

+27
-12
lines changed

3 files changed

+27
-12
lines changed

cpm80.ino

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ ram<> pages[RAM_PAGES];
3434
void 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) {
5757
void function_key(uint8_t fn) {
5858
if (fn == 1)
5959
reset();
60+
else if (fn == 10)
61+
hardware_debug_cpu();
6062
}
6163

6264
void setup(void) {

io.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
#include "io.h"
1313

1414
void 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() {
3333
uint8_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) {
5050
void 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:

io.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@
33

44
class 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+
619
class IO: public PortDevice<i8080>, public Display {
720
public:
821
IO(Memory &mem, serial_kbd &kbd): _mem(mem), _kbd(kbd) {}

0 commit comments

Comments
 (0)