File:
[RetroPC.NET] /
np2 /
x11 /
debug /
viewmem.c
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Fri Dec 12 00:11:56 2003 JST (21 years, 10 months ago) by
monaka
Branches:
MAIN
CVS tags:
VER_0_82_x64,
VER_0_82,
VER_0_81A,
VER_0_81,
VER_0_80,
VER_0_79,
VER_0_78,
VER_0_77,
VER_0_76,
VER_0_75,
VER_0_74,
VER_0_73,
HEAD
revolve conflict filename.
(add viewer, but disable. viewer isn't fully function yet.)
#include "compiler.h"
#if defined(SUPPORT_VIEWER)
#include "np2.h"
#include "viewer.h"
#include "viewmem.h"
#include "memory.h"
void viewmem_read(VIEWMEM_T *cfg, UINT32 adrs, BYTE *buf, UINT32 size) {
if (!size) {
return;
}
// Main Memory
if (adrs < 0xa4000) {
if ((adrs + size) <= 0xa4000) {
CopyMemory(buf, mem + adrs, size);
return;
}
else {
UINT32 len;
len = 0xa4000 - adrs;
CopyMemory(buf, mem + adrs, len);
buf += len;
size -= len;
adrs = 0xa4000;
}
}
// CG-Window‚Í–³Ž‹
if (adrs < 0xa5000) {
if ((adrs + size) <= 0xa5000) {
ZeroMemory(buf, size);
return;
}
else {
UINT32 len;
len = 0xa5000 - adrs;
ZeroMemory(buf, len);
buf += len;
size -= len;
adrs = 0xa5000;
}
}
// Main Memory
if (adrs < 0xa8000) {
if ((adrs + size) <= 0xa8000) {
CopyMemory(buf, mem + adrs, size);
return;
}
else {
UINT32 len;
len = 0xa8000 - adrs;
CopyMemory(buf, mem + adrs, len);
buf += len;
size -= len;
adrs = 0xa8000;
}
}
// Video Memory
if (adrs < 0xc0000) {
UINT32 page;
page = ((cfg->vram)?VRAM_STEP:0);
if ((adrs + size) <= 0xc0000) {
CopyMemory(buf, mem + page + adrs, size);
return;
}
else {
UINT32 len;
len = 0xc0000 - adrs;
CopyMemory(buf, mem + page + adrs, len);
buf += len;
size -= len;
adrs = 0xc0000;
}
}
// Main Memory
if (adrs < 0xe0000) {
if ((adrs + size) <= 0xe0000) {
CopyMemory(buf, mem + adrs, size);
return;
}
else {
UINT32 len;
len = 0xe0000 - adrs;
CopyMemory(buf, mem + adrs, len);
buf += len;
size -= len;
adrs = 0xe0000;
}
}
// Video Memory
if (adrs < 0xe8000) {
UINT32 page;
page = ((cfg->vram)?VRAM_STEP:0);
if ((adrs + size) <= 0xe8000) {
CopyMemory(buf, mem + page + adrs, size);
return;
}
else {
UINT32 len;
len = 0xe8000 - adrs;
CopyMemory(buf, mem + page + adrs, len);
buf += len;
size -= len;
adrs = 0xe8000;
}
}
// BIOS
if (adrs < 0x0f8000) {
if ((adrs + size) <= 0x0f8000) {
CopyMemory(buf, mem + adrs, size);
return;
}
else {
UINT32 len;
len = 0x0f8000 - adrs;
CopyMemory(buf, mem + adrs, len);
buf += len;
size -= len;
adrs = 0x0f8000;
}
}
// BIOS/ITF
if (adrs < 0x100000) {
UINT32 page;
page = ((cfg->itf)?VRAM_STEP:0);
if ((adrs + size) <= 0x100000) {
CopyMemory(buf, mem + page + adrs, size);
return;
}
else {
UINT32 len;
len = 0x100000 - adrs;
CopyMemory(buf, mem + page + adrs, len);
buf += len;
size -= len;
adrs = 0x100000;
}
}
// HMA
if (adrs < 0x10fff0) {
UINT32 adrs2;
adrs2 = adrs & 0xffff;
adrs2 += ((cfg->A20)?VRAM_STEP:0);
if ((adrs + size) <= 0x10fff0) {
CopyMemory(buf, mem + adrs2, size);
return;
}
else {
UINT32 len;
len = 0x10fff0 - adrs;
CopyMemory(buf, mem + adrs2, len);
buf += len;
size -= len;
adrs = 0x10fff0;
}
}
}
#endif
RetroPC.NET-CVS <cvs@retropc.net>