| Previous | 15994 Revisions | Next |
| r2170 Sunday 30th March, 2008 at 17:44:20 UTC by Dirk Best |
|---|
| [COUPE] LPEN and HPEN register emulation, fixes ESIStarDemo (and probably others) |
| [src/mess/drivers] | coupe.c |
| [src/mess/includes] | coupe.h |
| [src/mess/video] | coupe.c |
| r2169 | r2170 | |
|---|---|---|
| 43 | 43 | extern UINT8 SOUND_ADDR; /* Current Address in sound registers */ |
| 44 | 44 | extern UINT8 SOUND_REG[32]; /* 32 sound registers */ |
| 45 | 45 | extern UINT8 LINE_INT; /* Line interrupt register */ |
| 46 | extern UINT8 LPEN,HPEN; /* ??? */ | |
| 47 | 46 | extern UINT8 STAT; /* returned when port 249 read */ |
| 48 | 47 | |
| 49 | 48 | void coupe_update_memory(void); |
| r2169 | r2170 | |
|---|---|---|
| 162 | 162 | { |
| 163 | 163 | int scanline = video_screen_get_vpos(screen); |
| 164 | 164 | |
| 165 | HPEN = scanline; | |
| 166 | ||
| 167 | 165 | /* line interrupt? */ |
| 168 | 166 | if (LINE_INT == scanline) coupe_irq(screen->machine, 0x01); |
| 169 | 167 |
| r2169 | r2170 | |
|---|---|---|
| 80 | 80 | return SOUND_ADDR; |
| 81 | 81 | |
| 82 | 82 | if (offset==HPEN_PORT) |
| 83 | return HPEN; | |
| 83 | { | |
| 84 | /* return either the current line or 192 for the vblank area */ | |
| 85 | int line = video_screen_get_vpos(machine->primary_screen); | |
| 86 | return video_screen_get_vblank(machine->primary_screen) ? 192 : line; | |
| 87 | } | |
| 84 | 88 | |
| 85 | 89 | switch (offset & 0xFF) |
| 86 | 90 | { |
| r2169 | r2170 | |
| 101 | 105 | wd17xx_set_side((offset >> 2) & 1); |
| 102 | 106 | return wd17xx_data_r(machine, 0); |
| 103 | 107 | case LPEN_PORT: |
| 104 | return | |
| 108 | return video_screen_get_hpos(machine->primary_screen) & 0xfc; | |
| 105 | 109 | case STAT_PORT: |
| 106 | 110 | return ((getSamKey2((offset >> 8)&0xFF))&0xE0) | STAT; |
| 107 | 111 | case LMPR_PORT: |
| Previous | 15994 Revisions | Next |