star/star.c
/***************************************************************************/
/*
** Group 1 and 2 exceptions
** Exception address is passed in EDX
**
** Does not fix the new PC!
*/
Group 1 and 2 exceptions
Exception address is passed in EDX

Does not fix the new PC!
Group 1 and 2 exceptions Exception address is passed in EDX Does not fix the new PC!
static void gen_group_12_exception(void) {
	align(16);
	emit("group_1_exception:\n");
	emit("group_2_exception:\n");
	emit("and byte[__interrupts],0FEh\n"); 
	if(cputype == 68010) {
		emit("mov byte[__loopmode],0\n");
	}
	if(cputype >= 68010) {
		emit("push edx\n");
		emit("add edx,[__vbr]\n");
	}
	emit("call readmemorydword\n");
	if(cputype >= 68010) {
		emit("pop edx\n");
	}
	emit("push ecx\n");
	sr2cx();
	emit("push ecx\n");
	supervisor();
	emit("and byte[__sr+1],27h\n");
	emit("mov byte[__trace_trickybit],0\n");
	emit("mov ecx,esi\n");
	emit("sub ecx,ebp\n");
	if(cputype >= 68010) {
		emit("push ecx\n");
		emit("mov ecx,edx\n");
	}
	emit("mov edx,[__a7]\n");
	if(cputype >= 68010) {
		emit("and ecx,0FFCh\n");
		emit("sub edx,byte 2\n");
		emit("call writememoryword\n");
		emit("pop ecx\n");
	}
	emit("sub edx,byte 4\n");
	emit("call writememorydword\n");
	emit("pop ecx\n");
	emit("sub edx,byte 2\n");
	emit("call writememoryword\n");
	emit("mov [__a7],edx\n");
	emit("pop esi\n");
	emit("ret\n");
}
static void gen_group_12_exception ( void ) { align ( 16 ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; if ( cputype == 68010 ) { emit ( " \n " ) ; } if ( cputype >= 68010 ) { emit ( " \n " ) ; emit ( " \n " ) ; } emit ( " \n " ) ; if ( cputype >= 68010 ) { emit ( " \n " ) ; } emit ( " \n " ) ; sr2cx ( ) ; emit ( " \n " ) ; supervisor ( ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; if ( cputype >= 68010 ) { emit ( " \n " ) ; emit ( " \n " ) ; } emit ( " \n " ) ; if ( cputype >= 68010 ) { emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; } emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; emit ( " \n " ) ; }
Group 1 and 2 exceptions
Exception address is passed in EDX
Group 1 and 2 exceptions Exception address is passed in EDX
/* first thing's first */ /* dest. PC */ /* old SR */ /*
	** Exception handlers do not like being traced, so clear the SR trace
	** flag as well as the trace tricky bit.
	**
	** Leave the cycle leftover count alone, in case we still need to
	** call attention to other unrelated tricky bits.
	*/ /* old PC */ /* Format code */ /* old SR */ /* dest. PC */