Previous 15994 Revisions Next

r11580 Wednesday 18th May, 2011 at 05:43:03 UTC by Wilbert Pol
Missed this one
[src/mess/video]pc_aga.c

src/mess/video/pc_aga.c
r11579r11580
489489   UINT8 data = 0xFF;
490490
491491   if ( aga.mode == AGA_MONO ) {
492      device_t *devconf = space->machine().device(AGA_MC6845_NAME);
492      mc6845_device *mc6845 = space->machine().device<mc6845_device>(AGA_MC6845_NAME);
493493      switch( offset )
494494      {
495495      case 0: case 2: case 4: case 6:
496496         /* return last written mc6845 address value here? */
497497         break;
498498      case 1: case 3: case 5: case 7:
499         data = mc6845_register_r( devconf, offset );
499         data = mc6845->register_r(*space, offset);
500500         break;
501501      case 10:
502502         data = (input_port_read(space->machine(), "IN0") & 0x80 ) | 0x08 | aga.mda_status;
r11579r11580
511511static WRITE8_HANDLER ( pc_aga_mda_w )
512512{
513513   if ( aga.mode == AGA_MONO ) {
514      device_t *devconf = space->machine().device(AGA_MC6845_NAME);
514      mc6845_device *mc6845 = space->machine().device<mc6845_device>(AGA_MC6845_NAME);
515515      switch( offset )
516516      {
517517         case 0: case 2: case 4: case 6:
518            mc6845_address_w( devconf, offset, data );
518            mc6845->address_w( *space, offset, data );
519519            break;
520520         case 1: case 3: case 5: case 7:
521            mc6845_register_w( devconf, offset, data );
521            mc6845->register_w( *space, offset, data );
522522            break;
523523         case 8:
524524            aga.mda_mode_control = data;
r11579r11580
544544   UINT8 data = 0xFF;
545545
546546   if ( aga.mode == AGA_COLOR ) {
547      device_t *devconf = space->machine().device(AGA_MC6845_NAME);
547      mc6845_device *mc6845 = space->machine().device<mc6845_device>(AGA_MC6845_NAME);
548548      switch( offset ) {
549549      case 0: case 2: case 4: case 6:
550550         /* return last written mc6845 address value here? */
551551         break;
552552      case 1: case 3: case 5: case 7:
553         data = mc6845_register_r( devconf, offset );
553         data = mc6845->register_r( *space, offset);
554554         break;
555555      case 10:
556556         data = aga.vsync | ( ( data & 0x40 ) >> 4 ) | aga.hsync;
r11579r11580
590590static WRITE8_HANDLER ( pc_aga_cga_w )
591591{
592592   if ( aga.mode == AGA_COLOR ) {
593      device_t *devconf = space->machine().device(AGA_MC6845_NAME);
593      mc6845_device *mc6845 = space->machine().device<mc6845_device>(AGA_MC6845_NAME);
594594
595595      switch(offset) {
596596      case 0: case 2: case 4: case 6:
597         mc6845_address_w( devconf, offset, data );
597         mc6845->address_w( *space, offset, data );
598598         break;
599599      case 1: case 3: case 5: case 7:
600         mc6845_register_w( devconf, offset, data );
600         mc6845->register_w( *space, offset, data );
601601         break;
602602      case 8:
603603         aga.cga_mode_control = data;
r11579r11580
605605         //logerror("mode set to %02X\n", aga.cga_mode_control & 0x3F );
606606         switch ( aga.cga_mode_control & 0x3F ) {
607607         case 0x08: case 0x09: case 0x0C: case 0x0D:
608            mc6845_set_hpixels_per_column( devconf, 8 );
608            mc6845->set_hpixels_per_column( 8 );
609609            aga.update_row = cga_text_inten_update_row;
610610            break;
611611         case 0x0A: case 0x0B: case 0x2A: case 0x2B:
612            mc6845_set_hpixels_per_column( devconf, 8 );
612            mc6845->set_hpixels_per_column( 8 );
613613            if ( CGA_MONITOR == CGA_MONITOR_COMPOSITE ) {
614614               aga.update_row = cga_gfx_4bppl_update_row;
615615            } else {
r11579r11580
617617            }
618618            break;
619619         case 0x0E: case 0x0F: case 0x2E: case 0x2F:
620            mc6845_set_hpixels_per_column( devconf, 8 );
620            mc6845->set_hpixels_per_column( 8 );
621621            aga.update_row = cga_gfx_2bpp_update_row;
622622            break;
623623         case 0x18: case 0x19: case 0x1C: case 0x1D:
624            mc6845_set_hpixels_per_column( devconf, 8 );
624            mc6845->set_hpixels_per_column( 8 );
625625            aga.update_row = cga_text_inten_alt_update_row;
626626            break;
627627         case 0x1A: case 0x1B: case 0x3A: case 0x3B:
628            mc6845_set_hpixels_per_column( devconf, 8 );
628            mc6845->set_hpixels_per_column( 8 );
629629            if ( CGA_MONITOR == CGA_MONITOR_COMPOSITE ) {
630630               aga.update_row = cga_gfx_4bpph_update_row;
631631            } else {
r11579r11580
633633            }
634634            break;
635635         case 0x1E: case 0x1F: case 0x3E: case 0x3F:
636            mc6845_set_hpixels_per_column( devconf, 16 );
636            mc6845->set_hpixels_per_column( 16 );
637637            aga.update_row = cga_gfx_1bpp_update_row;
638638            break;
639639         case 0x28: case 0x29: case 0x2C: case 0x2D:
640            mc6845_set_hpixels_per_column( devconf, 8 );
640            mc6845->set_hpixels_per_column( 8 );
641641            aga.update_row = cga_text_blink_update_row;
642642            break;
643643         case 0x38: case 0x39: case 0x3C: case 0x3D:
644            mc6845_set_hpixels_per_column( devconf, 8 );
644            mc6845->set_hpixels_per_column( 8 );
645645            aga.update_row = cga_text_blink_alt_update_row;
646646            break;
647647         default:
r11579r11580
671671
672672void pc_aga_set_mode(running_machine &machine, AGA_MODE mode)
673673{
674   device_t *devconf = machine.device(AGA_MC6845_NAME);
674   mc6845_device *mc6845 = machine.device<mc6845_device>(AGA_MC6845_NAME);
675675
676676   aga.mode = mode;
677677
678678   switch (aga.mode) {
679679   case AGA_COLOR:
680      mc6845_set_clock( devconf, XTAL_14_31818MHz/8 );
680      mc6845->set_clock( XTAL_14_31818MHz/8 );
681681      break;
682682   case AGA_MONO:
683      mc6845_set_clock( devconf, 16257000/9 );
683      mc6845->set_clock( 16257000/9 );
684684      break;
685685   case AGA_OFF:
686686      break;
r11579r11580
756756
757757static SCREEN_UPDATE( mc6845_aga )
758758{
759   device_t *devconf = screen->machine().device(AGA_MC6845_NAME);
760   mc6845_update( devconf, bitmap, cliprect);
759   mc6845_device *mc6845 = screen->machine().device<mc6845_device>(AGA_MC6845_NAME);
760   mc6845->update(bitmap, cliprect);
761761
762762   return 0;
763763}

Previous 15994 Revisions Next


© 1998-2018 The MESS Team