|
|
| version 1.2, 2003/10/21 11:22:05 | version 1.5, 2004/02/18 21:58:41 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "memory.h" | #include "cpucore.h" |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "vram.h" | #include "vram.h" |
| Line 21 typedef struct { | Line 21 typedef struct { |
| UINT32 grph_table[4*256*2]; | UINT32 grph_table[4*256*2]; |
| void VRAMCALL makegrph_init(void) { | void makegrph_initialize(void) { |
| int i, j; | int i, j; |
| BYTE bit; | BYTE bit; |
| Line 64 void VRAMCALL makegrph_init(void) { | Line 64 void VRAMCALL makegrph_init(void) { |
| UINT32 grph_table1[256*2]; | UINT32 grph_table1[256*2]; |
| void VRAMCALL makegrph_init(void) { | void makegrph_initialize(void) { |
| int i; | int i; |
| BYTE bit; | BYTE bit; |
| Line 103 void VRAMCALL makegrph_init(void) { | Line 103 void VRAMCALL makegrph_init(void) { |
| UINT32 grph_table0[16]; | UINT32 grph_table0[16]; |
| void VRAMCALL makegrph_init(void) { | void makegrph_initialize(void) { |
| int i; | int i; |
| BYTE bit; | BYTE bit; |
| Line 139 static BOOL grphput_indirty0(MKGRPH mkgr | Line 139 static BOOL grphput_indirty0(MKGRPH mkgr |
| UINT32 *pterm; | UINT32 *pterm; |
| mg = *mkgrph; | mg = *mkgrph; |
| vad = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0) & 0x3fff) << 1; | vad = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0); |
| remain = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2)) >> 4; | vad = LOW15(vad << 1); |
| remain &= 0x3ff; | remain = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2); |
| do { | remain = LOW14(remain) >> 4; |
| mul = mg.lr; | mul = mg.lr; |
| do { | while(1) { |
| if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { | if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { |
| vc = vad; | vc = vad; |
| p = mg.vm; | p = mg.vm; |
| pterm = p + (80 * 2); | pterm = p + (80 * 2); |
| do { | do { |
| if (vramupdate[vc] & 1) { | if (vramupdate[vc] & 1) { |
| renewal_line[mg.liney] |= 1; | renewal_line[mg.liney] |= 1; |
| GRPHDATASET(p, vc); | GRPHDATASET(p, vc); |
| } | } |
| vc = (vc + 1) & 0x7fff; | vc = LOW15(vc + 1); |
| p += 2; | p += 2; |
| } while(p < pterm); | } while(p < pterm); |
| } | } |
| mg.liney++; | mg.liney++; |
| if (mg.liney >= dsync.grphymax) { | if (mg.liney >= dsync.grphymax) { |
| return(TRUE); | return(TRUE); |
| } | } |
| mg.vm += 80*2; | mg.vm += 80*2; |
| } while(--mul); | remain--; |
| vad = (vad + mg.pitch) & 0x7fff; | if (!remain) { |
| } while(--remain); | break; |
| } | |
| mul--; | |
| if (!mul) { | |
| mul = mg.lr; | |
| vad = LOW15(vad + mg.pitch); | |
| } | |
| } | |
| mkgrph->vm = mg.vm; | mkgrph->vm = mg.vm; |
| mkgrph->liney = mg.liney; | mkgrph->liney = mg.liney; |
| return(FALSE); | return(FALSE); |
| Line 182 static BOOL grphput_indirty1(MKGRPH mkgr | Line 189 static BOOL grphput_indirty1(MKGRPH mkgr |
| UINT32 *pterm; | UINT32 *pterm; |
| mg = *mkgrph; | mg = *mkgrph; |
| vad = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0) & 0x3fff) << 1; | vad = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0); |
| remain = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2)) >> 4; | vad = LOW15(vad << 1); |
| remain &= 0x3ff; | remain = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2); |
| do { | remain = LOW14(remain) >> 4; |
| mul = mg.lr; | mul = mg.lr; |
| do { | while(1) { |
| if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { | if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { |
| vc = vad; | vc = vad; |
| p = mg.vm; | p = mg.vm; |
| pterm = p + (80 * 2); | pterm = p + (80 * 2); |
| do { | do { |
| if (vramupdate[vc] & 2) { | if (vramupdate[vc] & 2) { |
| renewal_line[mg.liney] |= 2; | renewal_line[mg.liney] |= 2; |
| GRPHDATASET(p, vc + VRAM_STEP); | GRPHDATASET(p, vc + VRAM_STEP); |
| } | } |
| vc = (vc + 1) & 0x7fff; | vc = LOW15(vc + 1); |
| p += 2; | p += 2; |
| } while(p < pterm); | } while(p < pterm); |
| } | } |
| mg.liney++; | mg.liney++; |
| if (mg.liney >= dsync.grphymax) { | if (mg.liney >= dsync.grphymax) { |
| return(TRUE); | return(TRUE); |
| } | } |
| mg.vm += 80*2; | mg.vm += 80*2; |
| } while(--mul); | remain--; |
| vad = (vad + mg.pitch) & 0x7fff; | if (!remain) { |
| } while(--remain); | break; |
| } | |
| mul--; | |
| if (!mul) { | |
| mul = mg.lr; | |
| vad = LOW15(vad + mg.pitch); | |
| } | |
| } | |
| mkgrph->vm = mg.vm; | mkgrph->vm = mg.vm; |
| mkgrph->liney = mg.liney; | mkgrph->liney = mg.liney; |
| return(FALSE); | return(FALSE); |
| Line 225 static BOOL grphput_all0(MKGRPH mkgrph, | Line 239 static BOOL grphput_all0(MKGRPH mkgrph, |
| UINT32 *pterm; | UINT32 *pterm; |
| mg = *mkgrph; | mg = *mkgrph; |
| vad = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0) & 0x3fff) << 1; | vad = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0); |
| remain = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2)) >> 4; | vad = LOW15(vad << 1); |
| remain &= 0x3ff; | remain = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2); |
| do { | remain = LOW14(remain) >> 4; |
| mul = mg.lr; | mul = mg.lr; |
| do { | while(1) { |
| if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { | if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { |
| vc = vad; | vc = vad; |
| p = mg.vm; | p = mg.vm; |
| pterm = p + (80 * 2); | pterm = p + (80 * 2); |
| do { | do { |
| GRPHDATASET(p, vc); | GRPHDATASET(p, vc); |
| vc = (vc + 1) & 0x7fff; | vc = LOW15(vc + 1); |
| p += 2; | p += 2; |
| } while(p < pterm); | } while(p < pterm); |
| } | } |
| renewal_line[mg.liney] |= 1; | renewal_line[mg.liney] |= 1; |
| mg.liney++; | mg.liney++; |
| if (mg.liney >= dsync.grphymax) { | if (mg.liney >= dsync.grphymax) { |
| return(TRUE); | return(TRUE); |
| } | } |
| mg.vm += 80*2; | mg.vm += 80*2; |
| } while(--mul); | remain--; |
| vad = (vad + mg.pitch) & 0x7fff; | if (!remain) { |
| } while(--remain); | break; |
| } | |
| mul--; | |
| if (!mul) { | |
| mul = mg.lr; | |
| vad = LOW15(vad + mg.pitch); | |
| } | |
| } | |
| mkgrph->vm = mg.vm; | mkgrph->vm = mg.vm; |
| mkgrph->liney = mg.liney; | mkgrph->liney = mg.liney; |
| return(FALSE); | return(FALSE); |
| Line 266 static BOOL grphput_all1(MKGRPH mkgrph, | Line 287 static BOOL grphput_all1(MKGRPH mkgrph, |
| UINT32 *pterm; | UINT32 *pterm; |
| mg = *mkgrph; | mg = *mkgrph; |
| vad = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0) & 0x3fff) << 1; | vad = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 0); |
| remain = (LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2)) >> 4; | vad = LOW15(vad << 1); |
| remain &= 0x3ff; | remain = LOADINTELWORD(gdc.s.para + GDC_SCROLL + gpos + 2); |
| do { | remain = LOW14(remain) >> 4; |
| mul = mg.lr; | mul = mg.lr; |
| do { | while(1) { |
| if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { | if ((!(mg.liney & 1)) || (!(gdc.mode1 & 0x10))) { |
| vc = vad; | vc = vad; |
| p = mg.vm; | p = mg.vm; |
| pterm = p + (80 * 2); | pterm = p + (80 * 2); |
| do { | do { |
| GRPHDATASET(p, vc + VRAM_STEP); | GRPHDATASET(p, vc + VRAM_STEP); |
| vc = (vc + 1) & 0x7fff; | vc = LOW15(vc + 1); |
| p += 2; | p += 2; |
| } while(p < pterm); | } while(p < pterm); |
| } | } |
| renewal_line[mg.liney] |= 2; | renewal_line[mg.liney] |= 2; |
| mg.liney++; | mg.liney++; |
| if (mg.liney >= dsync.grphymax) { | if (mg.liney >= dsync.grphymax) { |
| return(TRUE); | return(TRUE); |
| } | } |
| mg.vm += 80*2; | mg.vm += 80*2; |
| } while(--mul); | remain--; |
| vad = (vad + mg.pitch) & 0x7fff; | if (!remain) { |
| } while(--remain); | break; |
| } | |
| mul--; | |
| if (!mul) { | |
| mul = mg.lr; | |
| vad = LOW15(vad + mg.pitch); | |
| } | |
| } | |
| mkgrph->vm = mg.vm; | mkgrph->vm = mg.vm; |
| mkgrph->liney = mg.liney; | mkgrph->liney = mg.liney; |
| return(FALSE); | return(FALSE); |