Previous 15994 Revisions Next

r1925 Tuesday 11th March, 2008 at 20:55:39 UTC by Wilbert Pol
Removed deprecat.h dependency from video/thomson.c
[src/mess/video]thomson.c

src/mess/video/thomson.c
r1924r1925
88
99#include <math.h>
1010#include "driver.h"
11#include "deprecat.h"
1211#include "includes/thomson.h"
1312#include "cpu/m6809/m6809.h"
1413#include "machine/6821pia.h"
r1924r1925
5554
5655
5756
58static int thom_update_screen_size( void )
57static int thom_update_screen_size( running_machine *machine )
5958{
6059   UINT8 p = readinputport( THOM_INPUT_VCONFIG );
6160   int new_w, new_h, changed = 0;
r1924r1925
7675
7776   new_w = ( 320 + thom_bwidth * 2 ) * ( thom_hires + 1 ) - 1;
7877   new_h = ( 200 + thom_bheight * 2 ) /** (thom_hires + 1 )*/ - 1;
79   if ( ( Machine->screen[0].visarea.max_x != new_w ) || ( Machine->screen[0].visarea.max_y != new_h ) )
78   if ( ( machine->screen[0].visarea.max_x != new_w ) || ( machine->screen[0].visarea.max_y != new_h ) )
8079   {
8180      changed = 1;
8281      video_screen_set_visarea( 0, 0, new_w, 0, new_h );
r1924r1925
415414
416415
417416
418typedef void ( *thom_scandraw ) ( UINT8* vram, UINT16* dst, UINT16* pal,
417typedef void ( *thom_scandraw ) ( running_machine *machine, UINT8* vram, UINT16* dst, UINT16* pal,
419418              int org, int len );
420419
421420
422421
423422#define UPDATE( name, res )                  \
424   static void name##_scandraw_##res ( UINT8* vram, UINT16* dst,   UINT16* pal, \
423   static void name##_scandraw_##res ( running_machine *machine, UINT8* vram, UINT16* dst,   UINT16* pal, \
425424                   int org, int len )      \
426425   {                        \
427426      unsigned gpl;                  \
r1924r1925
445444{
446445   int i;
447446   pen_t c[2];
448   c[0] = Machine->pens[ pal[ ((ramb & 7) | ((ramb>>4) & 8)) ^ 8 ] ];
449   c[1] = Machine->pens[ pal[ ((ramb >> 3) & 15) ^ 8 ] ];
447   c[0] = machine->pens[ pal[ ((ramb & 7) | ((ramb>>4) & 8)) ^ 8 ] ];
448   c[1] = machine->pens[ pal[ ((ramb >> 3) & 15) ^ 8 ] ];
450449   for ( i = 0; i < 16; i += 2, rama >>= 1 )
451450      dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ];
452451}
r1924r1925
456455{
457456   int i;
458457   pen_t c[2];
459   c[0] = Machine->pens[ pal[ ((ramb & 7) | ((ramb>>4) & 8)) ^ 8 ] ];
460   c[1] = Machine->pens[ pal[ ((ramb >> 3) & 15) ^ 8 ] ];
458   c[0] = machine->pens[ pal[ ((ramb & 7) | ((ramb>>4) & 8)) ^ 8 ] ];
459   c[1] = machine->pens[ pal[ ((ramb >> 3) & 15) ^ 8 ] ];
461460   for ( i = 0; i < 8; i++, rama >>= 1 )
462461      dst[ 7 - i ] = c[ rama & 1 ];
463462}
r1924r1925
471470{
472471   int i;
473472   pen_t c[2];
474   c[0] = Machine->pens[ pal[ ramb & 15 ] ];
475   c[1] = Machine->pens[ pal[ ramb >> 4 ] ];
473   c[0] = machine->pens[ pal[ ramb & 15 ] ];
474   c[1] = machine->pens[ pal[ ramb >> 4 ] ];
476475   for ( i = 0; i < 16; i += 2, rama >>= 1 )
477476      dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ];
478477}
r1924r1925
482481{
483482   int i;
484483   pen_t c[2];
485   c[0] = Machine->pens[ pal[ ramb & 15 ] ];
486   c[1] = Machine->pens[ pal[ ramb >> 4 ] ];
484   c[0] = machine->pens[ pal[ ramb & 15 ] ];
485   c[1] = machine->pens[ pal[ ramb >> 4 ] ];
487486   for ( i = 0; i < 8; i++, rama >>= 1 )
488487      dst[ 7 - i ] = c[ rama & 1 ];
489488}
r1924r1925
497496{
498497   int i;
499498   pen_t c[2];
500   c[0] = Machine->pens[ pal[ (ramb & 7) | ((ramb>>4) & 8) ] ];
501   c[1] = Machine->pens[ pal[ (ramb >> 3) & 15 ] ];
499   c[0] = machine->pens[ pal[ (ramb & 7) | ((ramb>>4) & 8) ] ];
500   c[1] = machine->pens[ pal[ (ramb >> 3) & 15 ] ];
502501   for ( i = 0; i < 16; i += 2, rama >>= 1 )
503502      dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ];
504503}
r1924r1925
508507{
509508   int i;
510509   pen_t c[2];
511   c[0] = Machine->pens[ pal[ (ramb & 7) | ((ramb>>4) & 8) ] ];
512   c[1] = Machine->pens[ pal[ (ramb >> 3) & 15 ] ];
510   c[0] = machine->pens[ pal[ (ramb & 7) | ((ramb>>4) & 8) ] ];
511   c[1] = machine->pens[ pal[ (ramb >> 3) & 15 ] ];
513512   for ( i = 0; i < 8; i++, rama >>= 1 )
514513      dst[ 7 - i ] = c[ rama & 1 ];
515514}
r1924r1925
523522{
524523   int i;
525524   pen_t c[2][2];
526   c[0][0] = Machine->pens[ pal[ 0 ] ];
527   c[0][1] = Machine->pens[ pal[ 1 ] ];
528   c[1][0] = Machine->pens[ pal[ 2 ] ];
529   c[1][1] = Machine->pens[ pal[ 3 ] ];
525   c[0][0] = machine->pens[ pal[ 0 ] ];
526   c[0][1] = machine->pens[ pal[ 1 ] ];
527   c[1][0] = machine->pens[ pal[ 2 ] ];
528   c[1][1] = machine->pens[ pal[ 3 ] ];
530529   for ( i = 0; i < 16; i += 2, rama >>= 1, ramb >>= 1 )
531530      dst[ 15 - i ] =  dst[ 14 - i ] = c[ rama & 1 ] [ ramb & 1 ];
532531}
r1924r1925
536535{
537536   int i;
538537   pen_t c[2][2];
539   c[0][0] = Machine->pens[ pal[ 0 ] ];
540   c[0][1] = Machine->pens[ pal[ 1 ] ];
541   c[1][0] = Machine->pens[ pal[ 2 ] ];
542   c[1][1] = Machine->pens[ pal[ 3 ] ];
538   c[0][0] = machine->pens[ pal[ 0 ] ];
539   c[0][1] = machine->pens[ pal[ 1 ] ];
540   c[1][0] = machine->pens[ pal[ 2 ] ];
541   c[1][1] = machine->pens[ pal[ 3 ] ];
543542   for ( i = 0; i < 8; i++, rama >>= 1, ramb >>= 1 )
544543      dst[ 7 - i ] = c[ rama & 1 ] [ ramb & 1 ];
545544}
r1924r1925
553552{
554553   int i;
555554   pen_t c[4];
556   c[0] = Machine->pens[ pal[ 0 ] ];
557   c[1] = Machine->pens[ pal[ 1 ] ];
558   c[2] = Machine->pens[ pal[ 2 ] ];
559   c[3] = Machine->pens[ pal[ 3 ] ];
555   c[0] = machine->pens[ pal[ 0 ] ];
556   c[1] = machine->pens[ pal[ 1 ] ];
557   c[2] = machine->pens[ pal[ 2 ] ];
558   c[3] = machine->pens[ pal[ 3 ] ];
560559   for ( i = 0; i < 8; i += 2, ramb >>= 2 )
561560      dst[ 15 - i ] = dst[ 14 - i ] = c[ ramb & 3 ];
562561   for ( i = 0; i < 8; i += 2, rama >>= 2 )
r1924r1925
568567{
569568   int i;
570569   pen_t c[4];
571   c[0] = Machine->pens[ pal[ 0 ] ];
572   c[1] = Machine->pens[ pal[ 1 ] ];
573   c[2] = Machine->pens[ pal[ 2 ] ];
574   c[3] = Machine->pens[ pal[ 3 ] ];
570   c[0] = machine->pens[ pal[ 0 ] ];
571   c[1] = machine->pens[ pal[ 1 ] ];
572   c[2] = machine->pens[ pal[ 2 ] ];
573   c[3] = machine->pens[ pal[ 3 ] ];
575574   for ( i = 0; i < 4; i++, ramb >>= 2 )
576575      dst[ 7 - i ] = c[ ramb & 3 ];
577576   for ( i = 0; i < 4; i++, rama >>= 2 )
r1924r1925
585584
586585UPDATE_HI( bitmap16 )
587586{
588   dst[ 0] = dst[ 1] = dst[ 2] = dst[ 3] = Machine->pens[ pal[ rama >> 4 ] ];
589   dst[ 4] = dst[ 5] = dst[ 6] = dst[ 7] = Machine->pens[ pal[ rama & 15 ] ];
590   dst[ 8] = dst[ 9] = dst[10] = dst[11] = Machine->pens[ pal[ ramb >> 4 ] ];
591   dst[12] = dst[13] = dst[14] = dst[15] = Machine->pens[ pal[ ramb & 15 ] ];
587   dst[ 0] = dst[ 1] = dst[ 2] = dst[ 3] = machine->pens[ pal[ rama >> 4 ] ];
588   dst[ 4] = dst[ 5] = dst[ 6] = dst[ 7] = machine->pens[ pal[ rama & 15 ] ];
589   dst[ 8] = dst[ 9] = dst[10] = dst[11] = machine->pens[ pal[ ramb >> 4 ] ];
590   dst[12] = dst[13] = dst[14] = dst[15] = machine->pens[ pal[ ramb & 15 ] ];
592591}
593592END_UPDATE
594593
595594UPDATE_LOW( bitmap16 )
596595{
597   dst[0] = dst[1] = Machine->pens[ pal[ rama >> 4 ] ];
598   dst[2] = dst[3] = Machine->pens[ pal[ rama & 15 ] ];
599   dst[4] = dst[5] = Machine->pens[ pal[ ramb >> 4 ] ];
600   dst[6] = dst[7] = Machine->pens[ pal[ ramb & 15 ] ];
596   dst[0] = dst[1] = machine->pens[ pal[ rama >> 4 ] ];
597   dst[2] = dst[3] = machine->pens[ pal[ rama & 15 ] ];
598   dst[4] = dst[5] = machine->pens[ pal[ ramb >> 4 ] ];
599   dst[6] = dst[7] = machine->pens[ pal[ ramb & 15 ] ];
601600}
602601END_UPDATE
603602
r1924r1925
609608{
610609   int i;
611610   pen_t c[2];
612   c[0] = Machine->pens[ pal[ 0 ] ];
613   c[1] = Machine->pens[ pal[ 1 ] ];
611   c[0] = machine->pens[ pal[ 0 ] ];
612   c[1] = machine->pens[ pal[ 1 ] ];
614613   for ( i = 0; i < 8; i++, ramb >>= 1 )
615614      dst[ 15 - i ] = c[ ramb & 1 ];
616615   for ( i = 0; i < 8; i++, rama >>= 1 )
r1924r1925
623622   /* 640-pixel mode but 320 pixels emulated => we merge pixels */
624623   int i;
625624   pen_t c[4];
626   c[0] = Machine->pens[ pal[ 0 ] ];
627   c[1] = c[2] = c[3] = Machine->pens[ pal[ 1 ] ];
625   c[0] = machine->pens[ pal[ 0 ] ];
626   c[1] = c[2] = c[3] = machine->pens[ pal[ 1 ] ];
628627   for ( i = 0; i < 4; i++, ramb >>= 2 )
629628      dst[ 7 - i ] = c[ ramb & 3 ];
630629   for ( i = 0; i < 4; i++, rama >>= 2 )
r1924r1925
640639{
641640   int i;
642641   pen_t c[2];
643   c[0] = Machine->pens[ pal[ 0 ] ];
644   c[1] = Machine->pens[ pal[ 6 ] ];
642   c[0] = machine->pens[ pal[ 0 ] ];
643   c[1] = machine->pens[ pal[ 6 ] ];
645644   for ( i = 0; i < 8; i++, ramb >>= 1 )
646645      dst[ 15 - i ] = c[ ramb & 1 ];
647646   for ( i = 0; i < 8; i++, rama >>= 1 )
r1924r1925
653652{
654653   int i;
655654   pen_t c[4];
656   c[0] = Machine->pens[ pal[ 0 ] ];
657   c[1] = c[2] = c[3] = Machine->pens[ pal[ 6 ] ];
655   c[0] = machine->pens[ pal[ 0 ] ];
656   c[1] = c[2] = c[3] = machine->pens[ pal[ 6 ] ];
658657   for ( i = 0; i < 4; i++, ramb >>= 2 )
659658      dst[ 7 - i ] = c[ ramb & 3 ];
660659   for ( i = 0; i < 4; i++, rama >>= 2 )
r1924r1925
670669{
671670   int i;
672671   pen_t c[2];
673   c[0] = Machine->pens[ pal[ 0 ] ];
674   c[1] = Machine->pens[ pal[ 1 ] ];
672   c[0] = machine->pens[ pal[ 0 ] ];
673   c[1] = machine->pens[ pal[ 1 ] ];
675674   for ( i = 0; i < 16; i += 2, rama >>= 1 )
676675      dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ];
677676   (void)ramb;
r1924r1925
682681{
683682   int i;
684683   pen_t c[2];
685   c[0] = Machine->pens[ pal[ 0 ] ];
686   c[1] = Machine->pens[ pal[ 1 ] ];
684   c[0] = machine->pens[ pal[ 0 ] ];
685   c[1] = machine->pens[ pal[ 1 ] ];
687686   for ( i = 0; i < 8; i++, rama >>= 1 )
688687      dst[ 7 - i ] = c[ rama & 1 ];
689688   (void)ramb;
r1924r1925
694693{
695694   int i;
696695   pen_t c[2];
697   c[0] = Machine->pens[ pal[ 0 ] ];
698   c[1] = Machine->pens[ pal[ 2 ] ];
696   c[0] = machine->pens[ pal[ 0 ] ];
697   c[1] = machine->pens[ pal[ 2 ] ];
699698   for ( i = 0; i < 16; i += 2, ramb >>= 1 )
700699      dst[ 15 - i ] = dst[ 14 - i ] = c[ ramb & 1 ];
701700   (void)rama;
r1924r1925
706705{
707706   int i;
708707   pen_t c[2];
709   c[0] = Machine->pens[ pal[ 0 ] ];
710   c[1] = Machine->pens[ pal[ 2 ] ];
708   c[0] = machine->pens[ pal[ 0 ] ];
709   c[1] = machine->pens[ pal[ 2 ] ];
711710   for ( i = 0; i < 8; i++, ramb >>= 1 )
712711      dst[ 7 - i ] = c[ ramb & 1 ];
713712   (void)rama;
r1924r1925
722721{
723722   int i;
724723   pen_t c[2][2];
725   c[0][0] = Machine->pens[ pal[ 0 ] ];
726   c[0][1] = c[1][1] = Machine->pens[ pal[ 1 ] ];
727   c[1][0] = Machine->pens[ pal[ 2 ] ];
724   c[0][0] = machine->pens[ pal[ 0 ] ];
725   c[0][1] = c[1][1] = machine->pens[ pal[ 1 ] ];
726   c[1][0] = machine->pens[ pal[ 2 ] ];
728727   for ( i = 0; i < 16; i += 2, rama >>= 1, ramb >>= 1 )
729728      dst[ 15 - i ] =  dst[ 14 - i ] = c[ ramb & 1 ] [ rama & 1 ];
730729}
r1924r1925
734733{
735734   int i;
736735   pen_t c[2][2];
737   c[0][0] = Machine->pens[ pal[ 0 ] ];
738   c[0][1] = c[1][1] = Machine->pens[ pal[ 1 ] ];
739   c[1][0] = Machine->pens[ pal[ 2 ] ];
736   c[0][0] = machine->pens[ pal[ 0 ] ];
737   c[0][1] = c[1][1] = machine->pens[ pal[ 1 ] ];
738   c[1][0] = machine->pens[ pal[ 2 ] ];
740739   for ( i = 0; i < 8; i++, rama >>= 1, ramb >>= 1 )
741740      dst[ 7 - i ] = c[ ramb & 1 ] [ rama & 1 ];
742741}
r1924r1925
754753   int i;
755754   for ( i = 0; i < 16; i += 4, rama >>= 1, ramb >>= 1 )
756755      dst[ 15 - i ] = dst[ 14 - i ] = dst[ 13 - i ] = dst[ 12 - i ] =
757         Machine->pens[ pal[ p[ ramb & 1 ] [ (ramb >> 4) & 1 ]
756         machine->pens[ pal[ p[ ramb & 1 ] [ (ramb >> 4) & 1 ]
758757                   [ rama & 1 ] [ (rama >> 4) & 1 ] ] ];
759758}
760759END_UPDATE
r1924r1925
767766   int i;
768767   for ( i = 0; i < 8; i += 2, rama >>= 1, ramb >>= 1 )
769768      dst[ 7 - i ] = dst[ 6 - i ] =
770         Machine->pens[ pal[ p[ ramb & 1 ] [ (ramb >> 4) & 1 ]
769         machine->pens[ pal[ p[ ramb & 1 ] [ (ramb >> 4) & 1 ]
771770                   [ rama & 1 ] [ (rama >> 4) & 1 ] ] ];
772771}
773772END_UPDATE
r1924r1925
809808            xx++;
810809         } while ( xx < 40 && thom_vmodepage[xx] == -1 );
811810         thom_scandraw_funcs[ mode ][ thom_hires ]
812            ( thom_vram + y * 40 + page * 0x4000,
811            ( machine, thom_vram + y * 40 + page * 0x4000,
813812              thom_vbody + y * 320 * (thom_hires+1),
814813              thom_last_pal, x, xx-x );
815814         x = xx;
r1924r1925
10791078   timer_adjust_oneshot(thom_video_timer, attotime_zero, 0);
10801079
10811080   /* update screen size according to user options */
1082   if ( thom_update_screen_size() )
1081   if ( thom_update_screen_size( machine ) )
10831082      thom_vstate_dirty = 1;
10841083
10851084   /* hi-res automatic */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team