Previous 199869 Revisions Next

r26389 Sunday 24th November, 2013 at 00:46:47 UTC by Jürgen Buchmüller
Fix mouse buttons. Add fake status line at bottom.
[/branches/alto2/src/emu/cpu/alto2]a2disk.c a2disp.c a2disp.h a2mouse.c alto2cpu.c alto2cpu.h
[/branches/alto2/src/emu/machine]diablo_hd.c
[/branches/alto2/src/mess/drivers]alto2.c

branches/alto2/src/emu/cpu/alto2/alto2cpu.h
r26388r26389
5050#define   ALTO2_CRAM_CONFIG         2           //!< use default CROM/CRAM configuration 2
5151#endif
5252
53#define   ALTO2_FAKE_STATUS_H      12         //!< number of extra scanlines to display some status info
54
5355#define   USE_PRIO_F9318         0         //!< define to 1 to use the F9318 priority encoder code
5456#define   USE_ALU_74181         1         //!< define to 1 to use the SN74181 ALU code
5557#define   DEBUG_DISPLAY_TIMING   0         //!< define to 1 to debug the display timing
r26388r26389
188190   //! register a mouse motion in y direction
189191   DECLARE_INPUT_CHANGED_MEMBER( mouse_motion_y );
190192   //! register a mouse button change
191   DECLARE_INPUT_CHANGED_MEMBER( mouse_buttons );
193   DECLARE_INPUT_CHANGED_MEMBER( mouse_button_0 );
194   DECLARE_INPUT_CHANGED_MEMBER( mouse_button_1 );
195   DECLARE_INPUT_CHANGED_MEMBER( mouse_button_2 );
192196
193197protected:
194198   //! device-level override for start
branches/alto2/src/emu/cpu/alto2/a2mouse.c
r26388r26389
189189/**
190190 * @brief register a mouse button change
191191 *
192 * convert button bits to UTILIN[13-15]
192 * convert button bit to UTILIN[13-15]
193193 *
194194 * @param ioport_field reference to the field
195195 * @param param pointer passed in PORT_CHANGED_MEMBER last parameter
196196 * @param oldval the old ioport_value
197197 * @param newval the new ioport_value
198198 */
199INPUT_CHANGED_MEMBER( alto2_cpu_device::mouse_buttons )
199INPUT_CHANGED_MEMBER( alto2_cpu_device::mouse_button_0 )
200200{
201   mouse_buttons_w(space(AS_IO), 0, newval, 1);
201   X_WRBITS(m_hw.utilin,16,13,13,newval);
202202}
203203
204INPUT_CHANGED_MEMBER( alto2_cpu_device::mouse_button_1 )
205{
206   X_WRBITS(m_hw.utilin,16,14,14,newval);
207}
208
209INPUT_CHANGED_MEMBER( alto2_cpu_device::mouse_button_2 )
210{
211   X_WRBITS(m_hw.utilin,16,15,15,newval);
212}
213
204214static const prom_load_t pl_madr_a32 =
205215{
206216   "madr.a32",
branches/alto2/src/emu/cpu/alto2/a2disk.c
r26388r26389
6363#define   GET_KCOM_SENDADR(kcom)         X_RDBITS(kcom,16,5,5)            //!< get send address flag from controller command (hardware command register)
6464#define   PUT_KCOM_SENDADR(kcom,val)      X_WRBITS(kcom,16,5,5,val)         //!< put send address flag into controller command (hardware command register)
6565
66#define   STATUS_DP0   50
67#define   STATUS_DP1   80
68#define   STATUS_KWRC   0, "%c"
69#define   STATUS_CYL   2, "C%3d"
70#define   STATUS_HEAD   7, "H%d"
71#define   STATUS_SECT   10, "S%2d"
72#define   STATUS_PAGE   14, "[%4d]"
73
6674/** @brief completion codes (only for documentation, since this is microcode defined) */
6775enum {
6876   STATUS_COMPLETION_GOOD,
r26388r26389
843851   diablo_hd_device* dhd = m_drive[unit];
844852   LOG((LOG_DISK,2,"   STROBE #%d restore:%d cylinder:%d dhd:%p\n", unit, restore, cylinder, dhd));
845853
846   //
847854   dhd->set_cylinder(cylinder);
848855   dhd->set_restore(restore);
849856   // This is really monoflop 52a generating a very short 0 pulse
r26388r26389
900907   } else {
901908      m_dsk.strobon_timer->reset();
902909   }
910#if defined(ALTO2_FAKE_STATUS_H) && (ALTO2_FAKE_STATUS_H > 0)
911   int x = unit ? STATUS_DP1 : STATUS_DP0;
912   fake_status_printf(x + STATUS_CYL, dhd->get_cylinder());
913   fake_status_printf(x + STATUS_HEAD, dhd->get_head());
914#endif
903915}
904916
905917/** @brief timer callback to change the READY monoflop 31a */
r26388r26389
11601172      break;
11611173   }
11621174   // TODO: show disk indicator
1175#if defined(ALTO2_FAKE_STATUS_H) && (ALTO2_FAKE_STATUS_H > 0)
1176   int x = m_dsk.drive ? STATUS_DP1 : STATUS_DP0;
1177   fake_status_printf(x + STATUS_KWRC, "HPLD"[m_dsk.krecno]);
1178#endif
11631179}
11641180
11651181/**
r26388r26389
15931609
15941610   LOG((LOG_DISK,1,"   unit #%d sector %d start\n", unit, GET_KSTAT_SECTOR(m_dsk.kstat)));
15951611
1596
15971612#if   USE_BITCLK_TIMER
15981613   // HACK: no command, no bit clock
15991614   if (debug_read_mem(0521))
r26388r26389
16091624      m_bitclk_index = 0;
16101625   }
16111626#endif
1627#if defined(ALTO2_FAKE_STATUS_H) && (ALTO2_FAKE_STATUS_H > 0)
1628   if (debug_read_mem(0521) && unit == GET_KADDR_DRIVE(debug_read_mem(0523)))
1629   {
1630      int x = unit ? STATUS_DP1 : STATUS_DP0;
1631      fake_status_printf(x + STATUS_SECT, dhd->get_sector());
1632      fake_status_printf(x + STATUS_PAGE, dhd->get_page());
1633   }
1634#endif
16121635}
16131636
16141637/**
r26388r26389
17371760   m_dsk.ff_45a = JKFF_0;
17381761   m_dsk.ff_45b = JKFF_0;
17391762
1763#if defined(ALTO2_FAKE_STATUS_H) && (ALTO2_FAKE_STATUS_H > 0)
1764   int x = STATUS_DP0;
1765   for (int i = 0; i < 2; i++) {
1766      fake_status_printf(x + STATUS_KWRC, '-');
1767      fake_status_printf(x + STATUS_CYL, 0);
1768      fake_status_printf(x + STATUS_HEAD, 0);
1769      fake_status_printf(x + STATUS_SECT, 0);
1770      fake_status_printf(x + STATUS_PAGE, 0);
1771      x = STATUS_DP1;
1772   }
1773#endif
17401774}
branches/alto2/src/emu/cpu/alto2/a2disp.c
r26388r26389
515515   m_dsp.hlc = ALTO2_DISPLAY_HLC_START;
516516
517517   m_dsp.raw_bitmap = auto_alloc_array(machine(), UINT16, ALTO2_DISPLAY_HEIGHT * ALTO2_DISPLAY_SCANLINE_WORDS);
518   m_dsp.scanline = auto_alloc_array(machine(), UINT8*, ALTO2_DISPLAY_HEIGHT);
519   for (int y = 0; y < ALTO2_DISPLAY_HEIGHT; y++)
518   m_dsp.scanline = auto_alloc_array(machine(), UINT8*, ALTO2_DISPLAY_HEIGHT + ALTO2_FAKE_STATUS_H);
519   for (int y = 0; y < ALTO2_DISPLAY_HEIGHT + ALTO2_FAKE_STATUS_H; y++)
520520      m_dsp.scanline[y] = auto_alloc_array(machine(), UINT8, ALTO2_DISPLAY_TOTAL_WIDTH);
521521
522   m_dsp.bitmap = auto_bitmap_ind16_alloc(machine(), ALTO2_DISPLAY_WIDTH, ALTO2_DISPLAY_HEIGHT);
522   m_dsp.bitmap = auto_bitmap_ind16_alloc(machine(), ALTO2_DISPLAY_WIDTH, ALTO2_DISPLAY_HEIGHT + ALTO2_FAKE_STATUS_H);
523523   m_dsp.state = 020;
524524}
525525
r26388r26389
573573   for (int y = 0; y < ALTO2_DISPLAY_HEIGHT; y++)
574574      memset(m_dsp.scanline[y], 0, sizeof(UINT8) * ALTO2_DISPLAY_TOTAL_WIDTH);
575575   m_dsp.odd_frame = false;
576
577   for (int y = ALTO2_DISPLAY_HEIGHT; y < ALTO2_DISPLAY_HEIGHT + ALTO2_FAKE_STATUS_H; y++)
578      memset(m_dsp.scanline[y], 1, sizeof(UINT8) * ALTO2_DISPLAY_TOTAL_WIDTH);
579   fake_status_printf(1, "* Fake Status *");
576580}
577581
578582/* Video update */
r26388r26389
584588   // copy even or odd field
585589   for (int y = m_dsp.odd_frame ? 0 : 1; y < ALTO2_DISPLAY_HEIGHT; y += 2)
586590      draw_scanline8(*m_dsp.bitmap, 0, y, ALTO2_DISPLAY_WIDTH, m_dsp.scanline[y], palette_bw);
587
591   // copy fake status scanlines
592   for (int y = ALTO2_DISPLAY_HEIGHT; y < ALTO2_DISPLAY_HEIGHT + ALTO2_FAKE_STATUS_H; y++)
593      draw_scanline8(*m_dsp.bitmap, 0, y, ALTO2_DISPLAY_WIDTH, m_dsp.scanline[y], palette_bw);
588594   // copy bitmap
589595   copybitmap(bitmap, *m_dsp.bitmap, 0, 0, 0, 0, cliprect);
590596   return 0;
r26388r26389
595601   if (state)
596602      m_dsp.odd_frame = !m_dsp.odd_frame;
597603}
604
605/*****************************************************************************
606 *
607 *   FAKE STATUS LINE
608 *
609 *****************************************************************************/
610
611typedef struct {
612   UINT8 code;
613   UINT8 bits[10];
614} bdf_6x10_t;
615
616/**
617 * STARTFONT 2.1
618 * COMMENT "$ucs-fonts: 6x10.bdf,v 1.34 2002-11-10 19:12:30+00 mgk25 Rel $"
619 * COMMENT "Send bug reports to Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>"
620 * FONT -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1
621 * SIZE 10 75 75
622 * FONTBOUNDINGBOX 6 10 0 -2
623 * STARTPROPERTIES 22
624 * FONTNAME_REGISTRY ""
625 * FOUNDRY "Misc"
626 * FAMILY_NAME "Fixed"
627 * WEIGHT_NAME "Medium"
628 * SLANT "R"
629 * SETWIDTH_NAME "Normal"
630 * ADD_STYLE_NAME ""
631 * PIXEL_SIZE 10
632 * POINT_SIZE 100
633 * RESOLUTION_X 75
634 * RESOLUTION_Y 75
635 * SPACING "C"
636 * AVERAGE_WIDTH 60
637 * CHARSET_REGISTRY "ISO10646"
638 * CHARSET_ENCODING "1"
639 * FONT_ASCENT 8
640 * FONT_DESCENT 2
641 * DEFAULT_CHAR 0
642 * COPYRIGHT "Public domain terminal emulator font.  Share and enjoy."
643 * _XMBDFED_INFO "Edited with xmbdfed 4.5."
644 * CAP_HEIGHT 7
645 * X_HEIGHT 5
646 * ENDPROPERTIES
647 * CHARS 1597
648 */
649static const bdf_6x10_t bdf_6x10[] = {
650/* space                */ { 32,   {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
651/* exclam               */ { 33,   {0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x20, 0x00, 0x00 }},
652/* quotedbl             */ { 34,   {0x00, 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
653/* numbersign           */ { 35,   {0x00, 0x50, 0x50, 0xF8, 0x50, 0xF8, 0x50, 0x50, 0x00, 0x00 }},
654/* dollar               */ { 36,   {0x00, 0x20, 0x70, 0xA0, 0x70, 0x28, 0x70, 0x20, 0x00, 0x00 }},
655/* percent              */ { 37,   {0x00, 0x48, 0xA8, 0x50, 0x20, 0x50, 0xA8, 0x90, 0x00, 0x00 }},
656/* ampersand            */ { 38,   {0x00, 0x40, 0xA0, 0xA0, 0x40, 0xA8, 0x90, 0x68, 0x00, 0x00 }},
657/* quotesingle          */ { 39,   {0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
658/* parenleft            */ { 40,   {0x00, 0x10, 0x20, 0x40, 0x40, 0x40, 0x20, 0x10, 0x00, 0x00 }},
659/* parenright           */ { 41,   {0x00, 0x40, 0x20, 0x10, 0x10, 0x10, 0x20, 0x40, 0x00, 0x00 }},
660/* asterisk             */ { 42,   {0x00, 0x00, 0x88, 0x50, 0xF8, 0x50, 0x88, 0x00, 0x00, 0x00 }},
661/* plus                 */ { 43,   {0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, 0x00, 0x00 }},
662/* comma                */ { 44,   {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x20, 0x40, 0x00 }},
663/* hyphen               */ { 45,   {0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00 }},
664/* period               */ { 46,   {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x70, 0x20, 0x00 }},
665/* slash                */ { 47,   {0x00, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00 }},
666/* zero                 */ { 48,   {0x00, 0x20, 0x50, 0x88, 0x88, 0x88, 0x50, 0x20, 0x00, 0x00 }},
667/* one                  */ { 49,   {0x00, 0x20, 0x60, 0xA0, 0x20, 0x20, 0x20, 0xF8, 0x00, 0x00 }},
668/* two                  */ { 50,   {0x00, 0x70, 0x88, 0x08, 0x30, 0x40, 0x80, 0xF8, 0x00, 0x00 }},
669/* three                */ { 51,   {0x00, 0xF8, 0x08, 0x10, 0x30, 0x08, 0x88, 0x70, 0x00, 0x00 }},
670/* four                 */ { 52,   {0x00, 0x10, 0x30, 0x50, 0x90, 0xF8, 0x10, 0x10, 0x00, 0x00 }},
671/* five                 */ { 53,   {0x00, 0xF8, 0x80, 0xB0, 0xC8, 0x08, 0x88, 0x70, 0x00, 0x00 }},
672/* six                  */ { 54,   {0x00, 0x30, 0x40, 0x80, 0xB0, 0xC8, 0x88, 0x70, 0x00, 0x00 }},
673/* seven                */ { 55,   {0x00, 0xF8, 0x08, 0x10, 0x10, 0x20, 0x40, 0x40, 0x00, 0x00 }},
674/* eight                */ { 56,   {0x00, 0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70, 0x00, 0x00 }},
675/* nine                 */ { 57,   {0x00, 0x70, 0x88, 0x98, 0x68, 0x08, 0x10, 0x60, 0x00, 0x00 }},
676/* colon                */ { 58,   {0x00, 0x00, 0x20, 0x70, 0x20, 0x00, 0x20, 0x70, 0x20, 0x00 }},
677/* semicolon            */ { 59,   {0x00, 0x00, 0x20, 0x70, 0x20, 0x00, 0x30, 0x20, 0x40, 0x00 }},
678/* less                 */ { 60,   {0x00, 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x00, 0x00 }},
679/* equal                */ { 61,   {0x00, 0x00, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00 }},
680/* greater              */ { 62,   {0x00, 0x40, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00 }},
681/* question             */ { 63,   {0x00, 0x70, 0x88, 0x10, 0x20, 0x20, 0x00, 0x20, 0x00, 0x00 }},
682/* at                   */ { 64,   {0x00, 0x70, 0x88, 0x98, 0xA8, 0xB0, 0x80, 0x70, 0x00, 0x00 }},
683/* A                    */ { 65,   {0x00, 0x20, 0x50, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00 }},
684/* B                    */ { 66,   {0x00, 0xF0, 0x48, 0x48, 0x70, 0x48, 0x48, 0xF0, 0x00, 0x00 }},
685/* C                    */ { 67,   {0x00, 0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70, 0x00, 0x00 }},
686/* D                    */ { 68,   {0x00, 0xF0, 0x48, 0x48, 0x48, 0x48, 0x48, 0xF0, 0x00, 0x00 }},
687/* E                    */ { 69,   {0x00, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0xF8, 0x00, 0x00 }},
688/* F                    */ { 70,   {0x00, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x00 }},
689/* G                    */ { 71,   {0x00, 0x70, 0x88, 0x80, 0x80, 0x98, 0x88, 0x70, 0x00, 0x00 }},
690/* H                    */ { 72,   {0x00, 0x88, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x88, 0x00, 0x00 }},
691/* I                    */ { 73,   {0x00, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
692/* J                    */ { 74,   {0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x90, 0x60, 0x00, 0x00 }},
693/* K                    */ { 75,   {0x00, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, 0x00, 0x00 }},
694/* L                    */ { 76,   {0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xF8, 0x00, 0x00 }},
695/* M                    */ { 77,   {0x00, 0x88, 0x88, 0xD8, 0xA8, 0x88, 0x88, 0x88, 0x00, 0x00 }},
696/* N                    */ { 78,   {0x00, 0x88, 0x88, 0xC8, 0xA8, 0x98, 0x88, 0x88, 0x00, 0x00 }},
697/* O                    */ { 79,   {0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
698/* P                    */ { 80,   {0x00, 0xF0, 0x88, 0x88, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x00 }},
699/* Q                    */ { 81,   {0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0xA8, 0x70, 0x08, 0x00 }},
700/* R                    */ { 82,   {0x00, 0xF0, 0x88, 0x88, 0xF0, 0xA0, 0x90, 0x88, 0x00, 0x00 }},
701/* S                    */ { 83,   {0x00, 0x70, 0x88, 0x80, 0x70, 0x08, 0x88, 0x70, 0x00, 0x00 }},
702/* T                    */ { 84,   {0x00, 0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00 }},
703/* U                    */ { 85,   {0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
704/* V                    */ { 86,   {0x00, 0x88, 0x88, 0x88, 0x50, 0x50, 0x50, 0x20, 0x00, 0x00 }},
705/* W                    */ { 87,   {0x00, 0x88, 0x88, 0x88, 0xA8, 0xA8, 0xD8, 0x88, 0x00, 0x00 }},
706/* X                    */ { 88,   {0x00, 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, 0x00, 0x00 }},
707/* Y                    */ { 89,   {0x00, 0x88, 0x88, 0x50, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00 }},
708/* Z                    */ { 90,   {0x00, 0xF8, 0x08, 0x10, 0x20, 0x40, 0x80, 0xF8, 0x00, 0x00 }},
709/* bracketleft          */ { 91,   {0x00, 0x70, 0x40, 0x40, 0x40, 0x40, 0x40, 0x70, 0x00, 0x00 }},
710/* backslash            */ { 92,   {0x00, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x08, 0x00, 0x00 }},
711/* bracketright         */ { 93,   {0x00, 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x70, 0x00, 0x00 }},
712/* asciicircum          */ { 94,   {0x00, 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
713/* underscore           */ { 95,   {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00 }},
714/* grave                */ { 96,   {0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
715/* a                    */ { 97,   {0x00, 0x00, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0x00 }},
716/* b                    */ { 98,   {0x00, 0x80, 0x80, 0xB0, 0xC8, 0x88, 0xC8, 0xB0, 0x00, 0x00 }},
717/* c                    */ { 99,   {0x00, 0x00, 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x00, 0x00 }},
718/* d                    */ { 100,   {0x00, 0x08, 0x08, 0x68, 0x98, 0x88, 0x98, 0x68, 0x00, 0x00 }},
719/* e                    */ { 101,   {0x00, 0x00, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, 0x00 }},
720/* f                    */ { 102,   {0x00, 0x30, 0x48, 0x40, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00 }},
721/* g                    */ { 103,   {0x00, 0x00, 0x00, 0x78, 0x88, 0x88, 0x78, 0x08, 0x88, 0x70 }},
722/* h                    */ { 104,   {0x00, 0x80, 0x80, 0xB0, 0xC8, 0x88, 0x88, 0x88, 0x00, 0x00 }},
723/* i                    */ { 105,   {0x00, 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
724/* j                    */ { 106,   {0x00, 0x08, 0x00, 0x18, 0x08, 0x08, 0x08, 0x48, 0x48, 0x30 }},
725/* k                    */ { 107,   {0x00, 0x80, 0x80, 0x88, 0x90, 0xE0, 0x90, 0x88, 0x00, 0x00 }},
726/* l                    */ { 108,   {0x00, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
727/* m                    */ { 109,   {0x00, 0x00, 0x00, 0xD0, 0xA8, 0xA8, 0xA8, 0x88, 0x00, 0x00 }},
728/* n                    */ { 110,   {0x00, 0x00, 0x00, 0xB0, 0xC8, 0x88, 0x88, 0x88, 0x00, 0x00 }},
729/* o                    */ { 111,   {0x00, 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
730/* p                    */ { 112,   {0x00, 0x00, 0x00, 0xB0, 0xC8, 0x88, 0xC8, 0xB0, 0x80, 0x80 }},
731/* q                    */ { 113,   {0x00, 0x00, 0x00, 0x68, 0x98, 0x88, 0x98, 0x68, 0x08, 0x08 }},
732/* r                    */ { 114,   {0x00, 0x00, 0x00, 0xB0, 0xC8, 0x80, 0x80, 0x80, 0x00, 0x00 }},
733/* s                    */ { 115,   {0x00, 0x00, 0x00, 0x70, 0x80, 0x70, 0x08, 0xF0, 0x00, 0x00 }},
734/* t                    */ { 116,   {0x00, 0x40, 0x40, 0xF0, 0x40, 0x40, 0x48, 0x30, 0x00, 0x00 }},
735/* u                    */ { 117,   {0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68, 0x00, 0x00 }},
736/* v                    */ { 118,   {0x00, 0x00, 0x00, 0x88, 0x88, 0x50, 0x50, 0x20, 0x00, 0x00 }},
737/* w                    */ { 119,   {0x00, 0x00, 0x00, 0x88, 0x88, 0xA8, 0xA8, 0x50, 0x00, 0x00 }},
738/* x                    */ { 120,   {0x00, 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x00, 0x00 }},
739/* y                    */ { 121,   {0x00, 0x00, 0x00, 0x88, 0x88, 0x98, 0x68, 0x08, 0x88, 0x70 }},
740/* z                    */ { 122,   {0x00, 0x00, 0x00, 0xF8, 0x10, 0x20, 0x40, 0xF8, 0x00, 0x00 }},
741/* braceleft            */ { 123,   {0x00, 0x18, 0x20, 0x10, 0x60, 0x10, 0x20, 0x18, 0x00, 0x00 }},
742/* bar                  */ { 124,   {0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00 }},
743/* braceright           */ { 125,   {0x00, 0x60, 0x10, 0x20, 0x18, 0x20, 0x10, 0x60, 0x00, 0x00 }},
744/* asciitilde           */ { 126,   {0x00, 0x48, 0xA8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
745/* space                */ { 160,   {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
746/* exclamdown           */ { 161,   {0x00, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00 }},
747/* cent                 */ { 162,   {0x00, 0x00, 0x20, 0x78, 0xA0, 0xA0, 0xA0, 0x78, 0x20, 0x00 }},
748/* sterling             */ { 163,   {0x00, 0x30, 0x48, 0x40, 0xE0, 0x40, 0x48, 0xB0, 0x00, 0x00 }},
749/* currency             */ { 164,   {0x00, 0x00, 0x00, 0x88, 0x70, 0x50, 0x70, 0x88, 0x00, 0x00 }},
750/* yen                  */ { 165,   {0x00, 0x88, 0x88, 0x50, 0x20, 0xF8, 0x20, 0x20, 0x20, 0x00 }},
751/* brokenbar            */ { 166,   {0x00, 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00 }},
752/* section              */ { 167,   {0x00, 0x70, 0x80, 0xE0, 0x90, 0x48, 0x38, 0x08, 0x70, 0x00 }},
753/* dieresis             */ { 168,   {0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
754/* copyright            */ { 169,   {0x00, 0x70, 0x88, 0xA8, 0xC8, 0xA8, 0x88, 0x70, 0x00, 0x00 }},
755/* ordfeminine          */ { 170,   {0x00, 0x38, 0x48, 0x58, 0x28, 0x00, 0x78, 0x00, 0x00, 0x00 }},
756/* guillemotleft        */ { 171,   {0x00, 0x00, 0x00, 0x24, 0x48, 0x90, 0x48, 0x24, 0x00, 0x00 }},
757/* logicalnot           */ { 172,   {0x00, 0x00, 0x00, 0x00, 0x78, 0x08, 0x00, 0x00, 0x00, 0x00 }},
758/* hyphen               */ { 173,   {0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00 }},
759/* registered           */ { 174,   {0x00, 0x70, 0x88, 0xE8, 0xC8, 0xC8, 0x88, 0x70, 0x00, 0x00 }},
760/* macron               */ { 175,   {0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
761/* degree               */ { 176,   {0x00, 0x20, 0x50, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
762/* plusminus            */ { 177,   {0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0xF8, 0x00, 0x00 }},
763/* twosuperior          */ { 178,   {0x30, 0x48, 0x10, 0x20, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00 }},
764/* threesuperior        */ { 179,   {0x70, 0x08, 0x30, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 }},
765/* acute                */ { 180,   {0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }},
766/* mu                   */ { 181,   {0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0xC8, 0xB0, 0x80, 0x00 }},
767/* paragraph            */ { 182,   {0x00, 0x78, 0xE8, 0xE8, 0x68, 0x28, 0x28, 0x28, 0x00, 0x00 }},
768/* periodcentered       */ { 183,   {0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 }},
769/* cedilla              */ { 184,   {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20 }},
770/* onesuperior          */ { 185,   {0x20, 0x60, 0x20, 0x20, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 }},
771/* ordmasculine         */ { 186,   {0x00, 0x30, 0x48, 0x48, 0x30, 0x00, 0x78, 0x00, 0x00, 0x00 }},
772/* guillemotright       */ { 187,   {0x00, 0x00, 0x00, 0x90, 0x48, 0x24, 0x48, 0x90, 0x00, 0x00 }},
773/* onequarter           */ { 188,   {0x40, 0xC0, 0x40, 0x40, 0xE4, 0x0C, 0x14, 0x3C, 0x04, 0x00 }},
774/* onehalf              */ { 189,   {0x40, 0xC0, 0x40, 0x40, 0xE8, 0x14, 0x04, 0x08, 0x1C, 0x00 }},
775/* threequarters        */ { 190,   {0xC0, 0x20, 0x40, 0x20, 0xC8, 0x18, 0x28, 0x78, 0x08, 0x00 }},
776/* questiondown         */ { 191,   {0x00, 0x20, 0x00, 0x20, 0x20, 0x40, 0x88, 0x70, 0x00, 0x00 }},
777/* Agrave               */ { 192,   {0x40, 0x20, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00 }},
778/* Aacute               */ { 193,   {0x10, 0x20, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00 }},
779/* Acircumflex          */ { 194,   {0x20, 0x50, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00 }},
780/* Atilde               */ { 195,   {0x48, 0xB0, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00 }},
781/* Adieresis            */ { 196,   {0x50, 0x00, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00 }},
782/* Aring                */ { 197,   {0x20, 0x50, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00 }},
783/* AE                   */ { 198,   {0x00, 0x3C, 0x50, 0x90, 0x9C, 0xF0, 0x90, 0x9C, 0x00, 0x00 }},
784/* Ccedilla             */ { 199,   {0x00, 0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70, 0x20, 0x40 }},
785/* Egrave               */ { 200,   {0x40, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0xF8, 0x00, 0x00 }},
786/* Eacute               */ { 201,   {0x10, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0xF8, 0x00, 0x00 }},
787/* Ecircumflex          */ { 202,   {0x20, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0xF8, 0x00, 0x00 }},
788/* Edieresis            */ { 203,   {0x50, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0xF8, 0x00, 0x00 }},
789/* Igrave               */ { 204,   {0x40, 0x20, 0x70, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
790/* Iacute               */ { 205,   {0x10, 0x20, 0x70, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
791/* Icircumflex          */ { 206,   {0x20, 0x50, 0x70, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
792/* Idieresis            */ { 207,   {0x50, 0x00, 0x70, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
793/* Eth                  */ { 208,   {0x00, 0xF0, 0x48, 0x48, 0xE8, 0x48, 0x48, 0xF0, 0x00, 0x00 }},
794/* Ntilde               */ { 209,   {0x28, 0x50, 0x88, 0xC8, 0xA8, 0x98, 0x88, 0x88, 0x00, 0x00 }},
795/* Ograve               */ { 210,   {0x40, 0x20, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
796/* Oacute               */ { 211,   {0x10, 0x20, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
797/* Ocircumflex          */ { 212,   {0x20, 0x50, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
798/* Otilde               */ { 213,   {0x28, 0x50, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
799/* Odieresis            */ { 214,   {0x50, 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
800/* multiply             */ { 215,   {0x00, 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x00, 0x00 }},
801/* Oslash               */ { 216,   {0x00, 0x70, 0x98, 0x98, 0xA8, 0xC8, 0xC8, 0x70, 0x00, 0x00 }},
802/* Ugrave               */ { 217,   {0x40, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
803/* Uacute               */ { 218,   {0x10, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
804/* Ucircumflex          */ { 219,   {0x20, 0x50, 0x00, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
805/* Udieresis            */ { 220,   {0x50, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
806/* Yacute               */ { 221,   {0x10, 0x20, 0x88, 0x88, 0x50, 0x20, 0x20, 0x20, 0x00, 0x00 }},
807/* Thorn                */ { 222,   {0x00, 0x80, 0xF0, 0x88, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x00 }},
808/* germandbls           */ { 223,   {0x00, 0x70, 0x88, 0x90, 0xA0, 0x90, 0x88, 0xB0, 0x00, 0x00 }},
809/* agrave               */ { 224,   {0x40, 0x20, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0x00 }},
810/* aacute               */ { 225,   {0x10, 0x20, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0x00 }},
811/* acircumflex          */ { 226,   {0x20, 0x50, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0x00 }},
812/* atilde               */ { 227,   {0x28, 0x50, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0x00 }},
813/* adieresis            */ { 228,   {0x00, 0x50, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0x00 }},
814/* aring                */ { 229,   {0x20, 0x50, 0x20, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0x00 }},
815/* ae                   */ { 230,   {0x00, 0x00, 0x00, 0x78, 0x14, 0x7C, 0x90, 0x7C, 0x00, 0x00 }},
816/* ccedilla             */ { 231,   {0x00, 0x00, 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x20, 0x40 }},
817/* egrave               */ { 232,   {0x40, 0x20, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, 0x00 }},
818/* eacute               */ { 233,   {0x10, 0x20, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, 0x00 }},
819/* ecircumflex          */ { 234,   {0x20, 0x50, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, 0x00 }},
820/* edieresis            */ { 235,   {0x00, 0x50, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, 0x00 }},
821/* igrave               */ { 236,   {0x40, 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
822/* iacute               */ { 237,   {0x20, 0x40, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
823/* icircumflex          */ { 238,   {0x20, 0x50, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
824/* idieresis            */ { 239,   {0x00, 0x50, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, 0x00 }},
825/* eth                  */ { 240,   {0x00, 0xC0, 0x30, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
826/* ntilde               */ { 241,   {0x28, 0x50, 0x00, 0xB0, 0xC8, 0x88, 0x88, 0x88, 0x00, 0x00 }},
827/* ograve               */ { 242,   {0x40, 0x20, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
828/* oacute               */ { 243,   {0x10, 0x20, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
829/* ocircumflex          */ { 244,   {0x20, 0x50, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
830/* otilde               */ { 245,   {0x28, 0x50, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
831/* odieresis            */ { 246,   {0x00, 0x50, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00 }},
832/* divide               */ { 247,   {0x00, 0x00, 0x20, 0x00, 0xF8, 0x00, 0x20, 0x00, 0x00, 0x00 }},
833/* oslash               */ { 248,   {0x00, 0x00, 0x00, 0x78, 0x98, 0xA8, 0xC8, 0xF0, 0x00, 0x00 }},
834/* ugrave               */ { 249,   {0x40, 0x20, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68, 0x00, 0x00 }},
835/* uacute               */ { 250,   {0x10, 0x20, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68, 0x00, 0x00 }},
836/* ucircumflex          */ { 251,   {0x20, 0x50, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68, 0x00, 0x00 }},
837/* udieresis            */ { 252,   {0x00, 0x50, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68, 0x00, 0x00 }},
838/* yacute               */ { 253,   {0x00, 0x10, 0x20, 0x88, 0x88, 0x98, 0x68, 0x08, 0x88, 0x70 }},
839/* thorn                */ { 254,   {0x00, 0x00, 0x80, 0xF0, 0x88, 0x88, 0x88, 0xF0, 0x80, 0x80 }},
840/* ydieresis            */ { 255,   {0x00, 0x50, 0x00, 0x88, 0x88, 0x98, 0x68, 0x08, 0x88, 0x70 }},
841/* char0                */ { 0,      {0x00, 0xA8, 0x00, 0x88, 0x00, 0x88, 0x00, 0xA8, 0x00, 0x00 }}
842};
843
844void alto2_cpu_device::fake_status_putch(int x, UINT8 ch)
845{
846   const bdf_6x10_t* pf = bdf_6x10;
847   while (pf->code != ch && pf->code != 0)
848      pf++;
849   int dx = 6 * x;
850   if (dx >= ALTO2_DISPLAY_WIDTH)
851      return;
852   for (int dy = 0; dy < 10; dy++) {
853      UINT8* pix = m_dsp.scanline[ALTO2_DISPLAY_HEIGHT + 1 + dy] + dx;
854      UINT8 bits = ~pf->bits[dy];
855      pix[0] = (bits >> 7) & 1;
856      pix[1] = (bits >> 6) & 1;
857      pix[2] = (bits >> 5) & 1;
858      pix[3] = (bits >> 4) & 1;
859      pix[4] = (bits >> 3) & 1;
860      pix[5] = (bits >> 2) & 1;
861   }
862
863}
864
865void alto2_cpu_device::fake_status_printf(int x, const char* format, ...)
866{
867   static char buff[256];
868   va_list ap;
869   va_start(ap, format);
870   vsnprintf(buff, sizeof(buff), format, ap);
871   va_end(ap);
872   char* src = buff;
873   while (*src)
874      fake_status_putch(x++, *src++);
875}
branches/alto2/src/emu/cpu/alto2/a2disp.h
r26388r26389
296296void exit_disp();               //!< deinitialize the display context
297297void reset_disp();               //!< reset the display context
298298
299void fake_status_putch(int x, UINT8 ch);
300void fake_status_printf(int x, const char* format, ...);
301
299302#endif   // _A2DISP_H_
300303#endif   // ALTO2_DEFINE_CONSTANTS
branches/alto2/src/emu/cpu/alto2/alto2cpu.c
r26388r26389
11061106      m_ether_id = etherid->read() & 0377;
11071107   // call all sub-devices' reset_...
11081108   reset_memory();
1109   reset_disp();
11091110   reset_disk();
1110   reset_disp();
1111   reset_hw();
11111112   reset_kbd();
11121113   reset_mouse();
1113   reset_hw();
11141114
11151115   reset_emu();
11161116   reset_ksec();
branches/alto2/src/emu/machine/diablo_hd.c
r26388r26389
13271327
13281328   m_packs = 1;      // FIXME: get from configuration?
13291329   m_unit = strstr(m_image->tag(), "diablo0") ? 0 : 1;
1330
13311330   m_timer = timer_alloc(1, 0);
13321331}
13331332
r26388r26389
14291428void diablo_hd_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
14301429{
14311430   LOG_DRIVE((9,"[DHD%u]   TIMER id=%d param=%d ptr=%p @%.0fns\n", m_unit, id, param, ptr, timer.elapsed().as_double() * ATTOSECONDS_PER_NANOSECOND));
1431   if (!m_disk)
1432      return;
14321433
14331434   switch (param) {
14341435   case 0:
branches/alto2/src/mess/drivers/alto2.c
r26388r26389
108108   PORT_KEY(A2_KEY_FL4,        KEYCODE_F4,         0,              0,            "FL4"          )  //!< ADL left function key 4
109109   PORT_KEY(A2_KEY_FR5,        KEYCODE_F9,         0,              0,            "FR5"          )  //!< ADL right function key 5
110110
111   PORT_START("mouseb")   // Mouse buttons
112   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse RED (left)")      PORT_CODE(MOUSECODE_BUTTON1) PORT_CHANGED_MEMBER( ":maincpu", alto2_cpu_device, mouse_buttons, 0 )
113   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Mouse BLUE (right)")    PORT_CODE(MOUSECODE_BUTTON2) PORT_CHANGED_MEMBER( ":maincpu", alto2_cpu_device, mouse_buttons, 0 )
114   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Mouse YELLOW (middel)") PORT_CODE(MOUSECODE_BUTTON3) PORT_CHANGED_MEMBER( ":maincpu", alto2_cpu_device, mouse_buttons, 0 )
111   PORT_START("mouseb0")   // Mouse button 0
112   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Mouse RED (left)")      PORT_PLAYER(1) PORT_CODE(MOUSECODE_BUTTON1) PORT_CHANGED_MEMBER( ":maincpu", alto2_cpu_device, mouse_button_0, 0 )
113   PORT_START("mouseb1")   // Mouse button 1
114   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("Mouse BLUE (right)")    PORT_PLAYER(1) PORT_CODE(MOUSECODE_BUTTON2) PORT_CHANGED_MEMBER( ":maincpu", alto2_cpu_device, mouse_button_1, 0 )
115   PORT_START("mouseb2")   // Mouse button 2
116   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("Mouse YELLOW (middle)") PORT_PLAYER(1) PORT_CODE(MOUSECODE_BUTTON3) PORT_CHANGED_MEMBER( ":maincpu", alto2_cpu_device, mouse_button_2, 0 )
115117
116118   PORT_START("mousex")   // Mouse - X AXIS
117119   PORT_BIT( 0xffff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_CHANGED_MEMBER( ":maincpu", alto2_cpu_device, mouse_motion_x, 0 )
r26388r26389
246248   MCFG_SCREEN_ADD("screen", RASTER)
247249   MCFG_SCREEN_RAW_PARAMS(XTAL_20_16MHz,
248250                     ALTO2_DISPLAY_TOTAL_WIDTH,   0, ALTO2_DISPLAY_WIDTH,
249                     ALTO2_DISPLAY_TOTAL_HEIGHT,  0, ALTO2_DISPLAY_HEIGHT)
251                     ALTO2_DISPLAY_TOTAL_HEIGHT,  0, ALTO2_DISPLAY_HEIGHT + ALTO2_FAKE_STATUS_H)
250252   MCFG_SCREEN_REFRESH_RATE(60)   // two interlaced fields
251253   MCFG_SCREEN_VBLANK_TIME(ALTO2_DISPLAY_VBLANK_TIME)
252254   MCFG_SCREEN_UPDATE_DEVICE("maincpu", alto2_cpu_device, screen_update)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team