src/mess/video/kc.c
| r2136 | r2137 | |
| 111 | 111 | /* set new blink state - record blink state in event list */ |
| 112 | 112 | void kc85_video_set_blink_state(running_machine *machine, int data) |
| 113 | 113 | { |
| 114 | | EventList_AddItemOffset(KC85_VIDEO_EVENT_SET_BLINK_STATE, ((data & 0x01)<<7), ATTOTIME_TO_CYCLES(0, attotime_mul(video_screen_get_scan_period(machine->primary_screen), video_screen_get_vpos(machine->primary_screen)))); |
| 114 | EventList_AddItemOffset(machine, KC85_VIDEO_EVENT_SET_BLINK_STATE, ((data & 0x01)<<7), ATTOTIME_TO_CYCLES(0, attotime_mul(video_screen_get_scan_period(machine->primary_screen), video_screen_get_vpos(machine->primary_screen)))); |
| 115 | 115 | } |
| 116 | 116 | |
| 117 | 117 | |
src/mess/eventlst.c
| r2136 | r2137 | |
| 1 | 1 | #include "driver.h" |
| 2 | | #include "deprecat.h" |
| 3 | 2 | #include "eventlst.h" |
| 4 | 3 | |
| 5 | 4 | /* current item */ |
| r2136 | r2137 | |
| 63 | 62 | } |
| 64 | 63 | |
| 65 | 64 | /* add an event to the buffer with a time index offset from a specified time */ |
| 66 | | void EventList_AddItemOffset(int ID, int Data, int Time) |
| 65 | void EventList_AddItemOffset(running_machine *machine, int ID, int Data, int Time) |
| 67 | 66 | { |
| 68 | 67 | |
| 69 | 68 | if (!CyclesPerFrame) |
| 70 | | CyclesPerFrame = (int)(cpunum_get_clock(0) / video_screen_get_frame_period(Machine->primary_screen).attoseconds); //totalcycles(); //_(int)(cpunum_get_clock(0) / Machine->config->frames_per_second); |
| 69 | CyclesPerFrame = (int)(cpunum_get_clock(0) / video_screen_get_frame_period(machine->primary_screen).attoseconds); //totalcycles(); //_(int)(cpunum_get_clock(0) / machine->config->frames_per_second); |
| 71 | 70 | |
| 72 | 71 | if (NumEvents < TotalEvents) |
| 73 | 72 | { |
src/mess/eventlst.h
| r2136 | r2137 | |
| 12 | 12 | void EventList_Reset(void); |
| 13 | 13 | void EventList_AddItem(int ID, int Data,int Time); |
| 14 | 14 | void EventList_SetOffsetStartTime(int StartTime); |
| 15 | | void EventList_AddItemOffset(int ID, int Data,int Time); |
| 15 | void EventList_AddItemOffset(running_machine *machine, int ID, int Data,int Time); |
| 16 | 16 | int EventList_NumEvents(void); |
| 17 | 17 | EVENT_LIST_ITEM *EventList_GetFirstItem(void); |
src/mess/drivers/amstrad.c
| r2136 | r2137 | |
| 1009 | 1009 | 0 x |*/ |
| 1010 | 1010 | case 0x01: { |
| 1011 | 1011 | #ifdef AMSTRAD_VIDEO_EVENT_LIST |
| 1012 | | EventList_AddItemOffset((EVENT_LIST_CODE_GA_COLOUR<<6) | PenIndex, AmstradCPC_PenColours[PenIndex], TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1012 | EventList_AddItemOffset(machine, (EVENT_LIST_CODE_GA_COLOUR<<6) | PenIndex, AmstradCPC_PenColours[PenIndex], TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1013 | 1013 | #else |
| 1014 | 1014 | amstrad_vh_update_colour(amstrad_GateArray_PenSelected, (dataToGateArray & 0x1F)); |
| 1015 | 1015 | #endif |
| r2136 | r2137 | |
| 1080 | 1080 | /* b1b0 mode change? */ |
| 1081 | 1081 | if (((amstrad_GateArray_ModeAndRomConfiguration & 0x03)^(Previous_GateArray_ModeAndRomConfiguration & 0x03)) != 0) { |
| 1082 | 1082 | #ifdef AMSTRAD_VIDEO_EVENT_LIST |
| 1083 | | EventList_AddItemOffset((EVENT_LIST_CODE_GA_MODE<<6) , amstrad_GateArray_ModeAndRomConfiguration & 0x03, TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1083 | EventList_AddItemOffset(machine, (EVENT_LIST_CODE_GA_MODE<<6) , amstrad_GateArray_ModeAndRomConfiguration & 0x03, TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1084 | 1084 | #else |
| 1085 | 1085 | amstrad_vh_update_mode(amstrad_GateArray_ModeAndRomConfiguration & 0x03); |
| 1086 | 1086 | #endif |
| r2136 | r2137 | |
| 1357 | 1357 | switch ((offset & 0x0300) >> 8) { // r1r0 |
| 1358 | 1358 | case 0x00: {/* Select internal 6845 register Write Only */ |
| 1359 | 1359 | #ifdef AMSTRAD_VIDEO_EVENT_LIST |
| 1360 | | EventList_AddItemOffset((EVENT_LIST_CODE_CRTC_INDEX_WRITE<<6), data, TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1360 | EventList_AddItemOffset(machine, (EVENT_LIST_CODE_CRTC_INDEX_WRITE<<6), data, TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1361 | 1361 | #endif |
| 1362 | 1362 | m6845_address_w(0,data); |
| 1363 | 1363 | if(amstrad_system_type != SYSTEM_CPC) |
| r2136 | r2137 | |
| 1366 | 1366 | } break; |
| 1367 | 1367 | case 0x01: {/* Write to selected internal 6845 register Write Only */ |
| 1368 | 1368 | #ifdef AMSTRAD_VIDEO_EVENT_LIST |
| 1369 | | EventList_AddItemOffset((EVENT_LIST_CODE_CRTC_WRITE<<6), data, TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1369 | EventList_AddItemOffset(machine, (EVENT_LIST_CODE_CRTC_WRITE<<6), data, TIME_TO_CYCLES(0,video_screen_get_vpos(machine->primary_screen)*video_screen_get_scan_period(machine->primary_screen))); |
| 1370 | 1370 | #endif |
| 1371 | 1371 | // logerror("m6845 register (%02d : %04x)\n", selected_m6845_address, (data&0x3F)); |
| 1372 | 1372 | m6845_register_w(0,data); |