示例#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");
}
示例#2
0
文件: gesave.c 项目: Refandler/gentee
uint  STDCALL gesave_bwdc( uint val )
{
   if ( val >= KERNEL_COUNT && !gecodes[ val ] )
   {
      print("GESAVE ERROR %i\n", val );
      os_getchar();
   }
   return gesave_bwdi( val >= KERNEL_COUNT ? gecodes[ val ] : val );
}
示例#3
0
文件: gesave.c 项目: Refandler/gentee
uint  STDCALL gesave_cmdflag( uint val )
{
   uint flag = val & 0xFF000000;
   val &= 0xFFFFFF;
   if ( val >= KERNEL_COUNT )
   {
      if ( !gecodes[ val ] )
      {
         print("GESAVE ERROR %i\n", val );
         os_getchar();
      }
      else
         val = gecodes[ val ];
   }
   gesave_adduint( val | flag );
   return val | flag;
}