|
|
| version 1.5, 2004/02/13 08:01:12 | version 1.8, 2005/05/13 05:47:25 |
|---|---|
| Line 103 const DLLPROC *dterm; | Line 103 const DLLPROC *dterm; |
| } | } |
| romeo.mod = mod; | romeo.mod = mod; |
| d = dllproc; | d = dllproc; |
| dterm = d + sizeof(dllproc)/sizeof(DLLPROC); | dterm = d + NELEMENTS(dllproc); |
| while(d < dterm) { | while(d < dterm) { |
| proc = (long)GetProcAddress(mod, d->symbol); | proc = (long)GetProcAddress(mod, d->symbol); |
| if (proc == (long)NULL) { | if (proc == (long)NULL) { |
| MessageBox(NULL, "0", "?", MB_OK); | |
| goto jini_err2; | goto jini_err2; |
| } | } |
| *(long *)(((BYTE *)&romeo) + (d->addr)) = proc; | *(long *)(((UINT8 *)&romeo) + (d->addr)) = proc; |
| d++; | d++; |
| } | } |
| Line 222 BOOL juliet_YMF288IsBusy(void) { | Line 221 BOOL juliet_YMF288IsBusy(void) { |
| ((romeo.in8(romeo.addr + ROMEO_YMF288ADDR1) & 0x80) != 0)); | ((romeo.in8(romeo.addr + ROMEO_YMF288ADDR1) & 0x80) != 0)); |
| } | } |
| void juliet_YMF288A(UINT8 addr, UINT8 data) { | void juliet_YMF288A(UINT addr, UINT8 data) { |
| if (romeo.avail & ROMEO_YMF288) { | if (romeo.avail & ROMEO_YMF288) { |
| if (addr == 0x07) { // psg mix | if (addr == 0x07) { // psg mix |
| romeo.psgmix = data; | romeo.psgmix = data; |
| } | } |
| else if ((addr & 0xf0) == 0x40) { // ttl | else if ((addr & (~15)) == 0x40) { // ttl |
| romeo.ttl[addr & 0x0f] = data; | romeo.ttl[addr & 15] = data; |
| } | } |
| else if ((addr & 0xfc) == 0xb0) { // algorithm | else if ((addr & (~3)) == 0xb0) { // algorithm |
| romeo.algo[addr & 3] = data; | romeo.algo[addr & 3] = data; |
| } | } |
| YMF288A(addr, data); | YMF288A(addr, data); |
| } | } |
| } | } |
| void juliet_YMF288B(UINT8 addr, UINT8 data) { | void juliet_YMF288B(UINT addr, UINT8 data) { |
| if (romeo.avail & ROMEO_YMF288) { | if (romeo.avail & ROMEO_YMF288) { |
| if ((addr & 0xf0) == 0x40) { // ttl | if ((addr & (~15)) == 0x40) { // ttl |
| romeo.ttl[0x10 + (addr & 0x0f)] = data; | romeo.ttl[0x10 + (addr & 15)] = data; |
| } | } |
| else if ((addr & 0xfc) == 0xb0) { // algorithm | else if ((addr & (~3)) == 0xb0) { // algorithm |
| romeo.algo[4 + (addr & 3)] = data; | romeo.algo[4 + (addr & 3)] = data; |
| } | } |
| YMF288B(addr, data); | YMF288B(addr, data); |