src/mess/video/atarist.c
| r9982 | r9983 | |
| 2 | 2 | |
| 3 | 3 | TODO: |
| 4 | 4 | |
| 5 | | - double screen width to allow for medium resolution |
| 5 | - rewrite shifter |
| 6 | 6 | - STe pixelofs |
| 7 | 7 | - blitter hog |
| 8 | 8 | - high resolution |
| r9982 | r9983 | |
| 235 | 235 | cpu_set_input_line(m_maincpu, M68K_IRQ_2, HOLD_LINE); |
| 236 | 236 | // m_shifter_ofs += (m_shifter_lineofs * 2); // STe |
| 237 | 237 | } |
| 238 | |
| 239 | pen_t pen; |
| 240 | |
| 241 | switch (m_shifter_mode) |
| 242 | { |
| 243 | case 0: |
| 244 | pen = shift_mode_0(); |
| 245 | *BITMAP_ADDR32(machine->generic.tmpbitmap, y, x) = pen; |
| 246 | pen = shift_mode_0(); |
| 247 | *BITMAP_ADDR32(machine->generic.tmpbitmap, y, x+1) = pen; |
| 248 | pen = shift_mode_0(); |
| 249 | *BITMAP_ADDR32(machine->generic.tmpbitmap, y, x+2) = pen; |
| 250 | pen = shift_mode_0(); |
| 251 | *BITMAP_ADDR32(machine->generic.tmpbitmap, y, x+3) = pen; |
| 252 | break; |
| 253 | |
| 254 | case 1: |
| 255 | pen = shift_mode_1(); |
| 256 | break; |
| 257 | |
| 258 | case 2: |
| 259 | pen = shift_mode_2(); |
| 260 | break; |
| 261 | |
| 262 | default: |
| 263 | pen = get_black_pen(machine); |
| 264 | break; |
| 265 | } |
| 238 | 266 | } |
| 239 | 267 | |
| 240 | 268 | |
| r9982 | r9983 | |
| 904 | 932 | { |
| 905 | 933 | case 0: |
| 906 | 934 | m_blitter_src = (data & 0xff) | (m_blitter_src & 0xfffe); |
| 935 | break; |
| 936 | |
| 907 | 937 | case 1: |
| 908 | 938 | m_blitter_src = (m_blitter_src & 0xff0000) | (data & 0xfffe); |
| 939 | break; |
| 909 | 940 | } |
| 910 | 941 | } |
| 911 | 942 | |
| r9982 | r9983 | |
| 920 | 951 | { |
| 921 | 952 | case 0: |
| 922 | 953 | m_blitter_endmask1 = data; |
| 954 | break; |
| 955 | |
| 923 | 956 | case 1: |
| 924 | 957 | m_blitter_endmask2 = data; |
| 958 | break; |
| 959 | |
| 925 | 960 | case 2: |
| 926 | 961 | m_blitter_endmask3 = data; |
| 962 | break; |
| 927 | 963 | } |
| 928 | 964 | } |
| 929 | 965 | |
| r9982 | r9983 | |
| 958 | 994 | { |
| 959 | 995 | case 0: |
| 960 | 996 | m_blitter_dst = (data & 0xff) | (m_blitter_dst & 0xfffe); |
| 997 | break; |
| 998 | |
| 961 | 999 | case 1: |
| 962 | 1000 | m_blitter_dst = (m_blitter_dst & 0xff0000) | (data & 0xfffe); |
| 1001 | break; |
| 963 | 1002 | } |
| 964 | 1003 | } |
| 965 | 1004 | |
| r9982 | r9983 | |
| 1044 | 1083 | m_shifter_timer = timer_alloc(machine, atarist_shifter_tick, NULL); |
| 1045 | 1084 | m_glue_timer = timer_alloc(machine, atarist_glue_tick, NULL); |
| 1046 | 1085 | |
| 1047 | | timer_adjust_periodic(m_shifter_timer, machine->primary_screen->time_until_pos(0,0), 0, ATTOTIME_IN_HZ(Y2/4)); // 125 ns |
| 1086 | // timer_adjust_periodic(m_shifter_timer, machine->primary_screen->time_until_pos(0,0), 0, ATTOTIME_IN_HZ(Y2/4)); // 125 ns |
| 1048 | 1087 | timer_adjust_periodic(m_glue_timer, machine->primary_screen->time_until_pos(0,0), 0, ATTOTIME_IN_HZ(Y2/16)); // 500 ns |
| 1049 | 1088 | |
| 1050 | 1089 | /* register for state saving */ |