diff options
| author | Ian C <ianc@noddybox.co.uk> | 2006-09-16 00:41:11 +0000 | 
|---|---|---|
| committer | Ian C <ianc@noddybox.co.uk> | 2006-09-16 00:41:11 +0000 | 
| commit | 61b364c3dfeb99579304d83273c06846ed2e75f8 (patch) | |
| tree | 6e03adb159494a94954c3409d6a6657627f968c4 /emma.c | |
| parent | 6ff1cd8b1cb250130e4196178c90f7efadc620f6 (diff) | |
Added a config header that controls inclusion of disassembly and memory model.
Diffstat (limited to 'emma.c')
| -rw-r--r-- | emma.c | 52 | 
1 files changed, 29 insertions, 23 deletions
| @@ -49,7 +49,7 @@ static const char id[]="$Id$";  /* ---------------------------------------- GLOBALS  */  static Z80		*z80; -static Z80Byte		mem[0x10000]; +Z80Byte			Z80_MEMORY[0x10000];  static sig_atomic_t	stop=FALSE;  static int		quit=FALSE; @@ -87,20 +87,21 @@ static void	SigInt(int sig)  /* ---------------------------------------- MEMORY  */ +#ifndef ENABLE_ARRAY_MEMORY  static Z80Byte Peek(Z80 *cpu, Z80Word addr)  {      if (mem_trace)      { -    	Log("Read  %2.2x from %4.4x\n",mem[addr],addr); +    	Log("Read  %2.2x from %4.4x\n",Z80_MEMORY[addr],addr);      } -    return mem[addr]; +    return Z80_MEMORY[addr];  }  static Z80Byte DisPeek(Z80 *cpu, Z80Word addr)  { -    return mem[addr]; +    return Z80_MEMORY[addr];  } @@ -113,9 +114,10 @@ static void Poke(Z80 *cpu, Z80Word addr, Z80Byte b)  	    Log("Wrote %2.2x to   %4.4x\n",b,addr);  	} -	mem[addr]=b; +	Z80_MEMORY[addr]=b;      }  } +#endif  /* ---------------------------------------- COMMANDS AND ASSOC UTILS @@ -310,14 +312,14 @@ static int Expand(void *client, const char *p, long *res)  	Z80Word n;  	n=Address(p+1); -	*res=mem[n]; +	*res=Z80_MEMORY[n];      }      else if (p[0]=='#')      {  	Z80Word n;  	n=Address(p+1); -	*res=MK(mem[n+1],mem[n]); +	*res=MK(Z80_MEMORY[n+1],Z80_MEMORY[n]);      }      else        /* Check for labels */      { @@ -470,7 +472,7 @@ static void DoLoad(int no, const char *arg[])      while((c=getc(fp))!=EOF)      { -    	mem[addr++]=(Z80Byte)c; +    	Z80_MEMORY[addr++]=(Z80Byte)c;  	total++;      } @@ -536,7 +538,7 @@ static void DoIntel(int no, const char *arg[])  	    	Z80Byte b;  		b=ToHex(buff[f*2+9])<<4|ToHex(buff[f*2+10]); -		mem[addr++]=b; +		Z80_MEMORY[addr++]=b;  	    }  	}      } @@ -604,10 +606,10 @@ static void DoDump(int no, const char *arg[])  	if ((count%8)==0)  	    Log("0x%4.4x: ",addr); -	Log("  0x%2.2x",mem[addr]); +	Log("  0x%2.2x",Z80_MEMORY[addr]); -	if (isprint(mem[addr])) -	    asc[count%8]=mem[addr]; +	if (isprint(Z80_MEMORY[addr])) +	    asc[count%8]=Z80_MEMORY[addr];  	else  	    asc[count%8]='.'; @@ -713,7 +715,7 @@ static void DoSetPC(int no, const char *arg[])      if (no<2)      { -    	s.PC=MK(mem[s.SP+1],mem[s.SP]); +    	s.PC=MK(Z80_MEMORY[s.SP+1],Z80_MEMORY[s.SP]);  	s.SP+=2;  	DisplayState();      } @@ -983,12 +985,12 @@ static Z80Byte ReadPort(Z80 *z80, Z80Word addr)      switch(addr&0xff)      {      	case 0x80: -	    ptr=MK(mem[1],mem[0]); +	    ptr=MK(Z80_MEMORY[1],Z80_MEMORY[0]);  	    p=expr; -	    while(mem[ptr]) -	    	*p++=mem[ptr++]; +	    while(Z80_MEMORY[ptr]) +	    	*p++=Z80_MEMORY[ptr++];  	    *p=0; @@ -1003,8 +1005,8 @@ static Z80Byte ReadPort(Z80 *z80, Z80Word addr)  	    p=expr; -	    while(mem[ptr]) -	    	*p++=mem[ptr++]; +	    while(Z80_MEMORY[ptr]) +	    	*p++=Z80_MEMORY[ptr++];  	    *p=0; @@ -1040,10 +1042,10 @@ static void WritePort(Z80 *z80, Z80Word addr, Z80Byte val)  	    break;      	case 0x82: -	    while(mem[s.DE]!='$') +	    while(Z80_MEMORY[s.DE]!='$')  	    { -		if (isspace(mem[s.DE]) || isprint(mem[s.DE])) -		    Log("%c",mem[s.DE]); +		if (isspace(Z80_MEMORY[s.DE]) || isprint(Z80_MEMORY[s.DE])) +		    Log("%c",Z80_MEMORY[s.DE]);  		s.DE++;  	    } @@ -1051,9 +1053,9 @@ static void WritePort(Z80 *z80, Z80Word addr, Z80Byte val)  	    break;      	case 0x83: -	    while(mem[s.DE]) +	    while(Z80_MEMORY[s.DE])  	    { -		Log("%c",mem[s.DE]); +		Log("%c",Z80_MEMORY[s.DE]);  		s.DE++;  	    }  	    fflush(stdout); @@ -1109,7 +1111,11 @@ int main(int argc, char *argv[])  {      const char *autoarg[2]={".","auto"}; +#ifndef ENABLE_ARRAY_MEMORY      z80=Z80Init(Peek,Poke,ReadPort,WritePort,DisPeek); +#else +    z80=Z80Init(ReadPort,WritePort); +#endif      if (!z80)      { | 
