Merge branch 'master' into VAX-11-BootBlock-Fixup

This commit is contained in:
Mark Pizzolato 2013-03-24 16:50:26 -07:00
commit 51865b253c

View file

@ -192,7 +192,7 @@ DEVICE abus_dev = {
}; };
/* /*
The 8600/8650 systems can have a max to 260MB of memory. The 8600/8650 systems can have a max of 260MB of memory.
There are three different memory boards that exists: 4MB, 16MB, and 64MB. There are three different memory boards that exists: 4MB, 16MB, and 64MB.
In addition, you can mix different boards. In addition, you can mix different boards.
The rule is to put large boards first, and smaller boards later. The rule is to put large boards first, and smaller boards later.
@ -237,35 +237,46 @@ for (;mem > 0; ) {
mem -= size; mem -= size;
} }
pamm[512] = PAMM_IOA0; for (i=0; i<32; i++)
pamm[512+i] = PAMM_IOA0;
} }
t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc)
{ {
int32 i, size, addr; int32 slot[32];
int32 last_slot = pamm[0]; int32 base[32];
int32 i;
for (i=0; i<32; i++)
slot[i] = base[i] = 0;
for (i=1023; i>=0; i--) {
slot[pamm[i]]++;
base[pamm[i]] = i;
}
for (i=0; i<8; i++) {
if (slot[i] > 0)
fprintf(st, "Memory slot %d (@0x%08x): %d Mbytes.\n", i, base[i] << 20, slot[i]);
}
for (i=8; i<0x18; i++) {
if (slot[i] > 0)
fprintf(st, "Unused code %d (@0x%08x): %d Mbytes.\n", i, base[i] << 20, slot[i]);
}
for (i=0x18; i<0x1c; i++) {
if (slot[i] > 0)
fprintf(st, "I/O adapter %d (@0x%08x): %d Mbytes.\n", i-0x18, base[i] << 20, slot[i]);
}
for (i=0x1c; i<0x1f; i++) {
if (slot[i] > 0)
fprintf(st, "Unused code %d (@0x%08x): %d Mbytes.\n", i, base[i] << 20, slot[i]);
}
fprintf(st, "Ununsed address space: %d Mbytes.\n", slot[0x1f]);
for (i=size=addr=0; i<1024; i++) {
if (last_slot != pamm[i]) {
switch (last_slot) {
case PAMM_NXM:
break;
case PAMM_IOA0:
case PAMM_IOA1:
case PAMM_IOA2:
case PAMM_IOA3:
fprintf (st, "I/O Adapter %d, %2dMB Board, Address: %08X\n", last_slot-PAMM_IOA0, size, addr);
break;
default:
fprintf (st, "Slot:%2d - %2dMB Board, Address: %08X\n", last_slot, size, addr);
break;
}
addr += (size << 20);
size = 0;
last_slot = pamm[i];
}
++size;
}
return SCPE_OK; return SCPE_OK;
} }