1.1 diff -r c19afa2c81db -r b63a3999e2e7 src/memory.c 1.2 --- a/src/memory.c Fri Apr 18 01:26:01 2014 -0600 1.3 +++ b/src/memory.c Fri Apr 18 01:34:20 2014 -0600 1.4 @@ -377,6 +377,13 @@ 1.5 case 0x070000: // Line Printer Status Register 1.6 break; 1.7 case 0x080000: // Real Time Clock 1.8 + ENFORCE_SIZE_W(bits, address, 16, "RTCWRITE"); 1.9 + /*printf("IoWrite RTCWRITE %x\n", data);*/ 1.10 + tc8250_set_chip_enable(&state.rtc_ctx, data & 0x8000); 1.11 + tc8250_set_address_latch_enable(&state.rtc_ctx, data & 0x4000); 1.12 + tc8250_set_write_enable(&state.rtc_ctx, data & 0x2000); 1.13 + tc8250_write_reg(&state.rtc_ctx, (data & 0x0F00) >> 8); 1.14 + handled = true; 1.15 break; 1.16 case 0x090000: // Phone registers 1.17 switch (address & 0x0FF000) { 1.18 @@ -693,7 +700,7 @@ 1.19 case 0x020000: // [ef][2a]xxxx ==> Miscellaneous Control Register 2 1.20 break; 1.21 case 0x030000: // [ef][3b]xxxx ==> Real Time Clock data bits 1.22 - break; 1.23 + return (tc8250_read_reg(&state.rtc_ctx)); 1.24 case 0x040000: // [ef][4c]xxxx ==> General Control Register 1.25 switch (address & 0x077000) { 1.26 case 0x040000: // [ef][4c][08]xxx ==> EE