Ejemplo n.º 1
0
int getMemory8(uint8_t * mem_addr) {
	static int kbflag=0;
	static int dflag=0;
	switch (mem_addr-mem) {
		case UCSR0A_IDX:	
#if defined(WIN32)
			if (!kbflag) kbflag=kbhit();
#endif
			if (kbflag) dflag=1;
			return kbflag?0xa0:0x20; 
		case UDR0_IDX:	
			kbflag=0;
			return os_getchar(); // not getchar()!!
		case ADCSRA_IDX:
		//while ((getMemory8(ADCSRA_328P) & (1 << ADIF)) == 0)		// Ende der AD-Wandlung abwarten mit ADF==4
			return mem_addr[0]|(1<<4); 
		default:
#if _DEBUG
			if (mem_addr-mem<0||mem_addr-mem>=MAXMEMORY) {
				showstack("out of range");
				printf("memory8 [0x%04x]->%d;\n", mem_addr-mem, mem_addr[0]);
			} else {
//				printf("memory8 [0x%04x]->%d;\n", top.s1.i, mem[top.s1.i]);
			}
#endif
			return mem_addr[0];
	}
//	if (dflag) showstack("dflag==1");
}
Ejemplo n.º 2
0
void post_op(void)
{
#ifdef DEBUG
    showstack("\0");
#endif
#ifndef IEEE
    if (errno) {
        strlcpy(dispstr, "error", sizeof(dispstr));
        DrawDisplay();
        entered=3;
        errno=0;
        }
#endif
}