src/memory.c

changeset 151
b63a3999e2e7
parent 150
c19afa2c81db
     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