Initial port to Linux (using Allegro).

64-bit fixes.
Some changes to aid portability.
A few other tweaks.
This commit is contained in:
TomW 2014-09-04 21:07:24 +01:00
commit 56b455844e
70 changed files with 12702 additions and 282 deletions

View file

@ -42,20 +42,20 @@ void writememll(uint32_t seg, uint32_t addr, uint32_t val);
uint8_t readmemb(uint32_t a)
{
if (a!=(cs+pc)) memcycs+=4;
if (readlookup2[(a)>>12]==0xFFFFFFFF) return readmembl(a);
if (readlookup2[(a)>>12]==-1) return readmembl(a);
else return *(uint8_t *)(readlookup2[(a) >> 12] + (a));
}
uint8_t readmembf(uint32_t a)
{
if (readlookup2[(a)>>12]==0xFFFFFFFF) return readmembl(a);
if (readlookup2[(a)>>12]==-1) return readmembl(a);
else return *(uint8_t *)(readlookup2[(a) >> 12] + (a));
}
uint16_t readmemw(uint32_t s, uint16_t a)
{
if (a!=(cs+pc)) memcycs+=(8>>is8086);
if ((readlookup2[((s)+(a))>>12]==0xFFFFFFFF || (s)==0xFFFFFFFF)) return readmemwl(s,a);
if ((readlookup2[((s)+(a))>>12]==-1 || (s)==0xFFFFFFFF)) return readmemwl(s,a);
else return *(uint16_t *)(readlookup2[(s + a) >> 12] + s + a);
}
@ -72,20 +72,20 @@ void writemembl(uint32_t addr, uint8_t val);
void writememb(uint32_t a, uint8_t v)
{
memcycs+=4;
if (writelookup2[(a)>>12]==0xFFFFFFFF) writemembl(a,v);
if (writelookup2[(a)>>12]==-1) writemembl(a,v);
else *(uint8_t *)(writelookup2[a >> 12] + a) = v;
}
void writememwl(uint32_t seg, uint32_t addr, uint16_t val);
void writememw(uint32_t s, uint32_t a, uint16_t v)
{
memcycs+=(8>>is8086);
if (writelookup2[((s)+(a))>>12]==0xFFFFFFFF || (s)==0xFFFFFFFF) writememwl(s,a,v);
if (writelookup2[((s)+(a))>>12]==-1 || (s)==0xFFFFFFFF) writememwl(s,a,v);
else *(uint16_t *)(writelookup2[(s + a) >> 12] + s + a) = v;
}
void writememll(uint32_t seg, uint32_t addr, uint32_t val);
void writememl(uint32_t s, uint32_t a, uint32_t v)
{
if (writelookup2[((s)+(a))>>12]==0xFFFFFFFF || (s)==0xFFFFFFFF) writememll(s,a,v);
if (writelookup2[((s)+(a))>>12]==-1 || (s)==0xFFFFFFFF) writememll(s,a,v);
else *(uint32_t *)(writelookup2[(s + a) >> 12] + s + a) = v;
}