1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-02-04 14:30:19 +00:00

Advance to the missing PIC.

This commit is contained in:
Thomas Harte 2023-11-20 12:21:37 -05:00
parent 7eed254de9
commit a3066fc040

View File

@ -27,13 +27,34 @@ namespace PCCompatible {
class i8255PortHandler : public Intel::i8255::PortHandler {
public:
void set_value(int port, uint8_t value) {
switch(port) {
case 1:
break;
}
printf("PPI: %02x to %d\n", value, port);
}
uint8_t get_value(int port) {
switch(port) {
case 2:
// b7: 1 => memory parity error; 0 => none;
// b6: 1 => IO channel error; 0 => none;
// b5: timer 2 output; [TODO]
// b4: cassette data input; [TODO]
// b3, b2: RAM on motherboard (64 * bit pattern)
// b1: 1 => FPU present; 0 => absent;
// b0: 1 => floppy drive present; 0 => absent.
return 0b0000'1100;
break;
}
printf("PPI: from %d\n", port);
return 0;
};
// Provisionally, possibly:
//
// port 0 = keyboard data output buffer;
//
};
using PPI = Intel::i8255::i8255<i8255PortHandler>;
@ -578,6 +599,13 @@ class IO {
case 0x000d: dma_.master_reset(); break;
case 0x000e: dma_.mask_reset(); break;
case 0x0020: case 0x0021: case 0x0022: case 0x0023:
case 0x0024: case 0x0025: case 0x0026: case 0x0027:
case 0x0028: case 0x0029: case 0x002a: case 0x002b:
case 0x002c: case 0x002d: case 0x002e: case 0x002f:
printf("TODO: PIC write of %02x at %04x\n", value, port);
break;
case 0x0060: case 0x0061: case 0x0062: case 0x0063:
case 0x0064: case 0x0065: case 0x0066: case 0x0067:
case 0x0068: case 0x0069: case 0x006a: case 0x006b: