|
|
| version 1.18, 2003/12/05 09:46:15 | version 1.22, 2003/12/21 16:05:25 |
|---|---|
| Line 4 | Line 4 |
| #include "scrnmng.h" | #include "scrnmng.h" |
| #include "soundmng.h" | #include "soundmng.h" |
| #include "timemng.h" | #include "timemng.h" |
| #include "i286.h" | #include "cpucore.h" |
| #include "memory.h" | |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "cbuscore.h" | #include "cbuscore.h" |
| Line 56 typedef struct { | Line 55 typedef struct { |
| enum { | enum { |
| NP2FLAG_BIN = 0, | NP2FLAG_BIN = 0, |
| NP2FLAG_TERM, | NP2FLAG_TERM, |
| #if defined(CGWND_FONTPTR) | |
| NP2FLAG_CGW, | |
| #endif | |
| NP2FLAG_CLOCK, | NP2FLAG_CLOCK, |
| NP2FLAG_COM, | NP2FLAG_COM, |
| NP2FLAG_DISK, | NP2FLAG_DISK, |
| Line 408 static int flagsave_ext(NP2FFILE f, cons | Line 410 static int flagsave_ext(NP2FFILE f, cons |
| ret = flagsave_create(f, t); | ret = flagsave_create(f, t); |
| if (ret != NP2FLAG_FAILURE) { | if (ret != NP2FLAG_FAILURE) { |
| ret |= flagsave_save(f, &extmem, sizeof(extmem)); | ret |= flagsave_save(f, &extmem, sizeof(extmem)); |
| if (extmemmng_size) { | if (CPU_EXTMEM) { |
| ret |= flagsave_save(f, extmemmng_ptr, extmemmng_size); | ret |= flagsave_save(f, CPU_EXTMEM, CPU_EXTMEMSIZE); |
| } | } |
| ret |= flagsave_close(f); | ret |= flagsave_close(f); |
| } | } |
| Line 429 static int flagload_ext(NP2FFILE f, cons | Line 431 static int flagload_ext(NP2FFILE f, cons |
| } | } |
| if (!extmemmng_realloc(extmem.maxmem - 1)) { | if (!extmemmng_realloc(extmem.maxmem - 1)) { |
| pagemax = (extmem.maxmem - 1) << 8; | pagemax = (extmem.maxmem - 1) << 8; |
| if (extmemmng_size) { | if (CPU_EXTMEM) { |
| ret |= flagload_load(f, extmemmng_ptr, extmemmng_size); | ret |= flagload_load(f, CPU_EXTMEM, CPU_EXTMEMSIZE); |
| } | } |
| } | } |
| else { | else { |
| Line 439 static int flagload_ext(NP2FFILE f, cons | Line 441 static int flagload_ext(NP2FFILE f, cons |
| } | } |
| for (i=0; i<4; i++) { | for (i=0; i<4; i++) { |
| if (extmem.page[i] < pagemax) { | if (extmem.page[i] < pagemax) { |
| extmem.pageptr[i] = extmemmng_ptr + (extmem.page[i] << 12); | extmem.pageptr[i] = CPU_EXTMEM + (extmem.page[i] << 12); |
| } | } |
| else { | else { |
| extmem.pageptr[i] = mem + 0xc0000 + (i << 14); | extmem.pageptr[i] = mem + 0xc0000 + (i << 14); |
| Line 450 static int flagload_ext(NP2FFILE f, cons | Line 452 static int flagload_ext(NP2FFILE f, cons |
| } | } |
| // ---- cg window | |
| #if defined(CGWND_FONTPTR) | |
| static int flagsave_cgwnd(NP2FFILE f, const STENTRY *t) { | |
| int ret; | |
| _CGWINDOW cgwnd; | |
| cgwnd = cgwindow; | |
| cgwnd.fontlow -= (long)fontrom; | |
| cgwnd.fonthigh -= (long)fontrom; | |
| ret = flagsave_create(f, t); | |
| if (ret != NP2FLAG_FAILURE) { | |
| ret |= flagsave_save(f, &cgwindow, sizeof(cgwindow)); | |
| ret |= flagsave_close(f); | |
| } | |
| return(ret); | |
| } | |
| static int flagload_cgwnd(NP2FFILE f, const STENTRY *t) { | |
| int ret; | |
| ret = flagload_load(f, &cgwindow, sizeof(cgwindow)); | |
| cgwindow.fontlow += (long)fontrom; | |
| cgwindow.fonthigh += (long)fontrom; | |
| (void)t; | |
| return(ret); | |
| } | |
| #endif | |
| // ---- dma | // ---- dma |
| static int flagsave_dma(NP2FFILE f, const STENTRY *t) { | static int flagsave_dma(NP2FFILE f, const STENTRY *t) { |
| Line 1267 const STENTRY *tblterm; | Line 1301 const STENTRY *tblterm; |
| ret |= flagsave_term(&f, tbl); | ret |= flagsave_term(&f, tbl); |
| break; | break; |
| #if defined(CGWND_FONTPTR) | |
| case NP2FLAG_CGW: | |
| ret |= flagsave_cgwnd(&f, tbl); | |
| break; | |
| #endif | |
| case NP2FLAG_COM: | case NP2FLAG_COM: |
| ret |= flagsave_com(&f, tbl); | ret |= flagsave_com(&f, tbl); |
| break; | break; |
| Line 1349 const STENTRY *tblterm; | Line 1389 const STENTRY *tblterm; |
| if (tbl < tblterm) { | if (tbl < tblterm) { |
| switch(tbl->type) { | switch(tbl->type) { |
| case NP2FLAG_BIN: | case NP2FLAG_BIN: |
| #if defined(CGWND_FONTPTR) | |
| case NP2FLAG_CGW: | |
| #endif | |
| case NP2FLAG_CLOCK: | case NP2FLAG_CLOCK: |
| case NP2FLAG_MEM: | case NP2FLAG_MEM: |
| ret |= flagcheck_versize(&f, tbl, &e); | ret |= flagcheck_versize(&f, tbl, &e); |
| Line 1434 const STENTRY *tblterm; | Line 1477 const STENTRY *tblterm; |
| done = TRUE; | done = TRUE; |
| break; | break; |
| #if defined(CGWND_FONTPTR) | |
| case NP2FLAG_CGW: | |
| ret |= flagload_cgwnd(&f, tbl); | |
| break; | |
| #endif | |
| case NP2FLAG_CLOCK: | case NP2FLAG_CLOCK: |
| ret |= flagload_clock(&f, tbl); | ret |= flagload_clock(&f, tbl); |
| break; | break; |
| Line 1499 const STENTRY *tblterm; | Line 1548 const STENTRY *tblterm; |
| gdcs.palchange = GDCSCRN_REDRAW; | gdcs.palchange = GDCSCRN_REDRAW; |
| tramflag.renewal = 1; | tramflag.renewal = 1; |
| cgwindow.writable |= 0x80; | cgwindow.writable |= 0x80; |
| #if defined(CPUSTRUC_FONTPTR) | |
| FONTPTR_LOW = fontrom + cgwindow.low; | |
| FONTPTR_HIGH = fontrom + cgwindow.high; | |
| #endif | |
| i286_vram_dispatch(vramop.operate); | i286_vram_dispatch(vramop.operate); |
| soundmng_play(); | soundmng_play(); |