| Previous | 199869 Revisions | Next |
| r26449 Saturday 30th November, 2013 at 06:00:28 UTC by Jürgen Buchmüller |
|---|
| Calculate the cursor position and shift registers when the cursor task is activated. Add MCFG_DEFAULT_LAYOUT() for vertical layout. |
| [/branches/alto2/src/emu/cpu/alto2] | a2curt.c a2disk.c a2disp.c |
| [/branches/alto2/src/mess/drivers] | alto2.c |
| [/branches/alto2/src/mess/includes] | alto2.h |
| r26448 | r26449 | |
|---|---|---|
| 10 | 10 | #include "alto2cpu.h" |
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | * @brief | |
| 13 | * @brief disable the cursor task and set the curt_blocks flag | |
| 14 | 14 | */ |
| 15 | 15 | void alto2_cpu_device::f1_early_curt_block() |
| 16 | 16 | { |
| r26448 | r26449 | |
| 49 | 49 | { |
| 50 | 50 | m_dsp.csr = m_bus; |
| 51 | 51 | LOG((LOG_CURT, m_dsp.csr ? 2 : 9," CSR← BUS (%#o)\n", m_dsp.csr)); |
| 52 | int x = 01777 - m_dsp.xpreg; | |
| 53 | UINT32 bits = m_bus; | |
| 54 | m_dsp.cursor0 = static_cast<UINT16>((bits << (16 - (x & 15))) >> 16); | |
| 55 | m_dsp.cursor1 = static_cast<UINT16>(bits << (16 - (x & 15))); | |
| 56 | m_dsp.curxpos = x / 16; | |
| 57 | 52 | } |
| 58 | 53 | |
| 59 | 54 | /** |
| r26448 | r26449 | |
| 63 | 58 | { |
| 64 | 59 | m_task_wakeup &= ~(1 << m_task); |
| 65 | 60 | m_dsp.curt_wakeup = false; |
| 61 | ||
| 62 | int x = 01777 - m_dsp.xpreg; | |
| 63 | UINT32 bits = m_dsp.csr << (16 - (x & 15)); | |
| 64 | m_dsp.cursor0 = static_cast<UINT16>(bits >> 16); | |
| 65 | m_dsp.cursor1 = static_cast<UINT16>(bits); | |
| 66 | m_dsp.curxpos = x / 16; | |
| 66 | 67 | } |
| 67 | 68 | |
| 68 | 69 | /** @brief initialize the cursor task F1 and F2 functions */ |
| r26448 | r26449 | |
|---|---|---|
| 1372 | 1372 | if (WDALLOW) |
| 1373 | 1373 | s1 |= JKFF_C; |
| 1374 | 1374 | m_dsk.ff_43a = update_jkff(s0, s1, "43a KWD "); |
| 1375 | ||
| 1376 | m_dsk.wdtskena = 1; | |
| 1377 | m_task_wakeup &= ~(1 << task_kwd); | |
| 1378 | 1375 | } |
| 1379 | 1376 | } |
| 1380 | 1377 | // TODO: show disk indicator in the GUI? |
| r26448 | r26449 | |
|---|---|---|
| 539 | 539 | m_dsp.scanline[y] = auto_alloc_array(machine(), UINT8, ALTO2_DISPLAY_TOTAL_WIDTH); |
| 540 | 540 | |
| 541 | 541 | m_dsp.bitmap = auto_bitmap_ind16_alloc(machine(), ALTO2_DISPLAY_WIDTH, ALTO2_DISPLAY_HEIGHT + ALTO2_FAKE_STATUS_H); |
| 542 | m_dsp.state = 0 | |
| 542 | m_dsp.state = 0; | |
| 543 | 543 | } |
| 544 | 544 | |
| 545 | 545 | void alto2_cpu_device::exit_disp() |
| r26448 | r26449 | |
| 549 | 549 | |
| 550 | 550 | void alto2_cpu_device::reset_disp() |
| 551 | 551 | { |
| 552 | m_dsp.state = 0 | |
| 552 | m_dsp.state = 0; | |
| 553 | 553 | m_dsp.hlc = ALTO2_DISPLAY_HLC_START; |
| 554 | 554 | m_dsp.a63 = 0; |
| 555 | 555 | m_dsp.a66 = 0; |
| r26448 | r26449 | |
|---|---|---|
| 253 | 253 | MCFG_SCREEN_VBLANK_TIME(ALTO2_DISPLAY_VBLANK_TIME) |
| 254 | 254 | MCFG_SCREEN_UPDATE_DEVICE("maincpu", alto2_cpu_device, screen_update) |
| 255 | 255 | MCFG_SCREEN_VBLANK_DEVICE("maincpu", alto2_cpu_device, screen_eof) |
| 256 | MCFG_DEFAULT_LAYOUT( layout_vertical ) | |
| 256 | 257 | |
| 257 | 258 | MCFG_PALETTE_LENGTH(2) |
| 258 | 259 |
| r26448 | r26449 | |
|---|---|---|
| 8 | 8 | #define _INCLUDES_ALTO2_H_ |
| 9 | 9 | |
| 10 | 10 | #include "emu.h" |
| 11 | #include "rendlay.h" | |
| 11 | 12 | #include "cpu/alto2/alto2cpu.h" |
| 12 | 13 | #include "machine/diablo_hd.h" |
| 13 | 14 |
| Previous | 199869 Revisions | Next |