more verbose bus error logging

Fri, 04 Mar 2011 00:44:36 +0000

author
Philip Pemberton <philpem@philpem.me.uk>
date
Fri, 04 Mar 2011 00:44:36 +0000
changeset 103
b749a3356e8d
parent 102
4e1c29899aca
child 104
b12651d8a0ab

more verbose bus error logging

src/memory.c file | annotate | diff | revisions
     1.1 diff -r 4e1c29899aca -r b749a3356e8d src/memory.c
     1.2 --- a/src/memory.c	Fri Mar 04 00:44:06 2011 +0000
     1.3 +++ b/src/memory.c	Fri Mar 04 00:44:36 2011 +0000
     1.4 @@ -117,8 +117,8 @@
     1.5  #define ACCESS_CHECK_WR(address, bits)								\
     1.6  	do {															\
     1.7  		bool fault = false;											\
     1.8 -		/* MEM_STATUS st; */										\
     1.9 -		switch (checkMemoryAccess(address, true)) {					\
    1.10 +		MEM_STATUS st;												\
    1.11 +		switch (st = checkMemoryAccess(address, true)) {			\
    1.12  			case MEM_ALLOWED:										\
    1.13  				/* Access allowed */								\
    1.14  				break;												\
    1.15 @@ -147,8 +147,8 @@
    1.16  				state.bsr0 = (address & 1) ? 0x7D00 : 0x7E00;		\
    1.17  			state.bsr0 |= (address >> 16);							\
    1.18  			state.bsr1 = address & 0xffff;							\
    1.19 -			printf("ERR: BusError WR\n");							\
    1.20 -			m68k_pulse_bus_error();									\
    1.21 +			LOG("Bus Error while writing, addr %08X, statcode %d", address, st);		\
    1.22 +			if (state.ee) m68k_pulse_bus_error();					\
    1.23  			return;													\
    1.24  		}															\
    1.25  	} while (0)
    1.26 @@ -167,8 +167,8 @@
    1.27  #define ACCESS_CHECK_RD(address, bits)								\
    1.28  	do {															\
    1.29  		bool fault = false;											\
    1.30 -		/* MEM_STATUS st; */										\
    1.31 -		switch (checkMemoryAccess(address, false)) {				\
    1.32 +		MEM_STATUS st;												\
    1.33 +		switch (st = checkMemoryAccess(address, false)) {			\
    1.34  			case MEM_ALLOWED:										\
    1.35  				/* Access allowed */								\
    1.36  				break;												\
    1.37 @@ -197,8 +197,8 @@
    1.38  				state.bsr0 = (address & 1) ? 0x7D00 : 0x7E00;		\
    1.39  			state.bsr0 |= (address >> 16);							\
    1.40  			state.bsr1 = address & 0xffff;							\
    1.41 -			printf("ERR: BusError RD\n");							\
    1.42 -			m68k_pulse_bus_error();									\
    1.43 +			LOG("Bus Error while reading, addr %08X, statcode %d", address, st);		\
    1.44 +			if (state.ee) m68k_pulse_bus_error();					\
    1.45  			return 0xFFFFFFFF;										\
    1.46  		}															\
    1.47  	} while (0)