Previous 15994 Revisions Next

r4745 Tuesday 19th May, 2009 at 12:00:46 UTC by Robbbert
[XEROX820] Connected video display, loaded roms correctly.
[src/mess/drivers]xerox820.c

src/mess/drivers/xerox820.c
r4744r4745
44
55        12/05/2009 Skeleton driver.
66
7   The incoming key is expected to be placed at FF30 (might be interrupt driven)
8
79****************************************************************************/
810
911#include "driver.h"
1012#include "cpu/z80/z80.h"
1113
14static const UINT8 *FNT;
15
16static READ8_HANDLER( xerox820_videoram_r )
17{
18   return videoram[offset];
19}
20
21static WRITE8_HANDLER( xerox820_videoram_w )
22{
23   videoram[offset] = data;
24}
25
1226static ADDRESS_MAP_START(xerox820_mem, ADDRESS_SPACE_PROGRAM, 8)
1327   ADDRESS_MAP_UNMAP_HIGH
28   AM_RANGE( 0x0000, 0x0fff ) AM_ROM
29   AM_RANGE( 0x1000, 0x2fff ) AM_RAM
30   AM_RANGE( 0x3000, 0x3bff ) AM_READWRITE(xerox820_videoram_r,xerox820_videoram_w) AM_SIZE(&videoram_size) AM_BASE(&videoram)
31   AM_RANGE( 0x3c00, 0xffff ) AM_RAM
1432ADDRESS_MAP_END
1533
1634static ADDRESS_MAP_START( xerox820_io , ADDRESS_SPACE_IO, 8)
1735   ADDRESS_MAP_UNMAP_HIGH
36   ADDRESS_MAP_GLOBAL_MASK(0xff)
37/* IN 1C, OUT 7,C,14,18,1A,1B,1C,1D,1F */
1838ADDRESS_MAP_END
1939
2040/* Input ports */
r4744r4745
2848
2949static VIDEO_START( xerox820 )
3050{
51   FNT = memory_region(machine, "gfx1");
3152}
3253
3354static VIDEO_UPDATE( xerox820 )
3455{
35    return 0;
56   static UINT8 framecnt=0;
57   UINT8 y,ra,chr,gfx;
58   UINT16 sy=0,ma=0,x;
59
60   framecnt++;
61
62   for (y = 0; y < 24; y++)
63   {
64      for (ra = 0; ra < 10; ra++)
65      {
66         UINT16  *p = BITMAP_ADDR16(bitmap, sy++, 0);
67
68         for (x = ma; x < ma + 80; x++)
69         {
70            if (ra < 8)
71            {
72               chr = videoram[x]^0x80;
73
74               /* Take care of flashing characters */
75               if ((chr < 0x80) && (framecnt & 0x08))
76                  chr |= 0x80;
77
78               /* get pattern of pixels for that character scanline */
79               gfx = FNT[(chr<<3) | ra ];
80            }
81            else
82               gfx = 0xff;
83
84            /* Display a scanline of a character (7 pixels) */
85            *p = 0; p++;
86            *p = ( gfx & 0x10 ) ? 0 : 1; p++;
87            *p = ( gfx & 0x08 ) ? 0 : 1; p++;
88            *p = ( gfx & 0x04 ) ? 0 : 1; p++;
89            *p = ( gfx & 0x02 ) ? 0 : 1; p++;
90            *p = ( gfx & 0x01 ) ? 0 : 1; p++;
91            *p = 0; p++;
92         }
93      }
94      ma+=128;
95   }
96   return 0;
3697}
3798
3899static MACHINE_DRIVER_START( xerox820 )
r4744r4745
48109    MDRV_SCREEN_REFRESH_RATE(50)
49110    MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
50111    MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
51    MDRV_SCREEN_SIZE(640, 480)
52    MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
112   MDRV_SCREEN_SIZE(80*7, 24*10)
113   MDRV_SCREEN_VISIBLE_AREA(0,80*7-1,0,24*10-1)
53114    MDRV_PALETTE_LENGTH(2)
54115    MDRV_PALETTE_INIT(black_and_white)
55116
r4744r4745
62123
63124/* ROM definition */
64125ROM_START( xerox820 )
65    ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
66  ROM_LOAD( "x820_u63.bin", 0x0000, 0x0800, CRC(bc11f834) SHA1(4fd2b209a6e6ff9b0c41800eb5228c34a0d7f7ef))
67  ROM_LOAD( "x820_u64.bin", 0x0000, 0x0800, CRC(2fc227e2) SHA1(b4ea0ae23d281a687956e8a514cb364a1372678e))
68  ROM_LOAD( "x820_u92.bin", 0x0000, 0x0800, CRC(b823fa98) SHA1(ad0ea346aa257a53ad5701f4201896a2b3a0f928))
126   ROM_REGION( 0x10000, "maincpu", 0 )
127   ROM_LOAD( "x820_u64.bin", 0x0000, 0x0800, CRC(2fc227e2) SHA1(b4ea0ae23d281a687956e8a514cb364a1372678e))
128   ROM_LOAD( "x820_u63.bin", 0x0800, 0x0800, CRC(bc11f834) SHA1(4fd2b209a6e6ff9b0c41800eb5228c34a0d7f7ef))
69129
130   ROM_REGION( 0x800, "gfx1", 0 )
131   ROM_LOAD( "x820_u92.bin", 0x0000, 0x0800, CRC(b823fa98) SHA1(ad0ea346aa257a53ad5701f4201896a2b3a0f928))
70132ROM_END
71133
72134/* Driver */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team