Previous 15994 Revisions Next

r7449 Tuesday 23rd February, 2010 at 17:58:38 UTC by Curt Coder
Added skeleton driver for Victor 9000.
[docs]messnew.txt
[src/mess]mess.mak messdriv.c
[src/mess/drivers]victor9k.c*
[src/mess/includes]victor9k.h*

src/mess/includes/victor9k.h
r0r7449
1#ifndef __VICTOR9K__
2#define __VICTOR9K__
3 
4#define SCREEN_TAG      "screen"
5#define I8088_TAG      "i8088"
6#define I8253_TAG      "i8253"
7#define I8259A_TAG      "i8259"
8#define UPD7201_TAG      "upd7201"
9#define HD46505S_TAG   "hd46505s"
10#define M6852_TAG      "m6852"
11#define M6522_1_TAG      "m6522_1"
12#define M6522_2_TAG      "m6522_2"
13#define M6522_3_TAG      "m6522_3"
14#define M6522_4_TAG      "m6522_4"
15#define M6522_5_TAG      "m6522_5"
16#define M6522_6_TAG      "m6522_6"
17#define SPEAKER_TAG      "speaker"
18#define CENTRONICS_TAG   "centronics"
19#define IEEE488_TAG      "ieee488"
20 
21typedef struct _victor9k_state victor9k_state;
22struct _victor9k_state
23{
24   /* devices */
25   running_device *crt;
26   running_device *ieee488;
27};
28 
29#endif
src/mess/messdriv.c
r7448r7449
16691669   DRIVER( codata )
16701670   DRIVER( rvoicepc )
16711671   DRIVER( vcc )
1672   DRIVER( victor9k )
16721673
16731674#endif /* DRIVER_RECURSIVE */
src/mess/mess.mak
r7448r7449
16111611   $(MESS_DRIVERS)/eti660.o   \
16121612   $(MESS_DRIVERS)/rvoice.o   \
16131613   $(MESS_DRIVERS)/fidelz80.o   \
1614   $(MESS_DRIVERS)/victor9k.o   \
16141615
16151616
16161617
src/mess/drivers/victor9k.c
r0r7449
1/***************************************************************************
2 
3    Victor 9000
4 
5   - very exciting hardware, disk controller is a direct descendant
6     of the Commodore drives (designed by Chuck Peddle)
7 
8    Skeleton driver
9 
10***************************************************************************/
11 
12#include "emu.h"
13#include "includes/victor9k.h"
14#include "cpu/i86/i86.h"
15#include "devices/flopdrv.h"
16#include "devices/messram.h"
17#include "machine/ctronics.h"
18#include "machine/6522via.h"
19#include "machine/ieee488.h"
20#include "machine/pit8253.h"
21#include "machine/pic8259.h"
22#include "machine/upd7201.h"
23#include "video/mc6845.h"
24 
25/* Memory Maps */
26 
27static ADDRESS_MAP_START( victor9k_mem, ADDRESS_SPACE_PROGRAM, 8 )
28   AM_RANGE(0x00000, 0x1ffff) AM_RAM
29/*   AM_RANGE(0xe0000, 0xe0001) AM_DEVREADWRITE(I8259A_TAG, pic8259_r, pic8259_w)
30   AM_RANGE(0xe0020, 0xe0023) AM_DEVREADWRITE(I8253_TAG, pit8253_r, pit8253_w)
31   AM_RANGE(0xe0040, 0xe0043) AM_DEVREADWRITE(UPD7201_TAG, upd7201_cd_ba_r, upd7201_cd_ba_w)*/
32   AM_RANGE(0xe8000, 0xe8000) AM_DEVREADWRITE(HD46505S_TAG, mc6845_register_r, mc6845_register_w)
33   AM_RANGE(0xe8001, 0xe8001) AM_DEVREADWRITE(HD46505S_TAG, mc6845_status_r, mc6845_address_w)
34/*   AM_RANGE(0xe8020, 0xe802f) AM_DEVREADWRITE(M6522_1_TAG, via_r, via_w)
35   AM_RANGE(0xe8040, 0xe804f) AM_DEVREADWRITE(M6522_2_TAG, via_r, via_w)
36   AM_RANGE(0xe8060, 0xe806f) AM_DEVREADWRITE(M6852_TAG, m6852_r, m6852_w)
37   AM_RANGE(0xe8080, 0xe808f) AM_DEVREADWRITE(M6522_3_TAG, via_r, via_w)
38   AM_RANGE(0xe80a0, 0xe80af) AM_DEVREADWRITE(M6522_4_TAG, via_r, via_w)
39   AM_RANGE(0xe80c0, 0xe80cf) AM_DEVREADWRITE(M6522_6_TAG, via_r, via_w)
40   AM_RANGE(0xe80e0, 0xe80ef) AM_DEVREADWRITE(M6522_5_TAG, via_r, via_w)*/
41   AM_RANGE(0xf0000, 0xf0fff) AM_RAM
42   AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0)
43ADDRESS_MAP_END
44 
45/* Input Ports */
46 
47static INPUT_PORTS_START( victor9k )
48INPUT_PORTS_END
49 
50/* Video */
51 
52static MC6845_UPDATE_ROW( victor9k_update_row )
53{
54}
55 
56static const mc6845_interface hd46505s_intf = 
57{
58   SCREEN_TAG,
59   8,
60   NULL,
61   victor9k_update_row,
62   NULL,
63   DEVCB_NULL,
64   DEVCB_NULL,
65   DEVCB_NULL,
66   DEVCB_NULL,
67   NULL
68};
69 
70static VIDEO_START( victor9k )
71{
72   victor9k_state *state = (victor9k_state *)machine->driver_data;
73 
74   /* find devices */
75   state->crt = devtag_get_device(machine, HD46505S_TAG);
76}
77 
78static VIDEO_UPDATE( victor9k )
79{
80   victor9k_state *state = (victor9k_state *)screen->machine->driver_data;
81 
82   mc6845_update(state->crt, bitmap, cliprect);
83 
84   return 0;
85}
86 
87/* Floppy Configuration */
88 
89static const floppy_config victor9k_floppy_config =
90{
91   DEVCB_NULL,
92   DEVCB_NULL,
93   DEVCB_NULL,
94   DEVCB_NULL,
95   DEVCB_NULL,
96   FLOPPY_DRIVE_DS_80,
97   FLOPPY_OPTIONS_NAME(default),
98   DO_NOT_KEEP_GEOMETRY
99};
100 
101/* IEEE-488 Interface */
102 
103static IEEE488_DAISY( ieee488_daisy )
104{
105//   { M6522_1_TAG },
106   { NULL }
107};
108 
109/* Machine Initialization */
110 
111static MACHINE_START( victor9k )
112{
113   victor9k_state *state = (victor9k_state *)machine->driver_data;
114 
115   /* find devices */
116   state->ieee488 = devtag_get_device(machine, IEEE488_TAG);
117}
118 
119/* Machine Driver */
120 
121static MACHINE_DRIVER_START( victor9k )
122   MDRV_DRIVER_DATA(victor9k_state)
123 
124   /* basic machine hardware */
125   MDRV_CPU_ADD(I8088_TAG, I8088, 5000000)
126   MDRV_CPU_PROGRAM_MAP(victor9k_mem)
127 
128   MDRV_MACHINE_START(victor9k)
129 
130    /* video hardware */
131    MDRV_SCREEN_ADD(SCREEN_TAG, RASTER)
132    MDRV_SCREEN_REFRESH_RATE(50)
133    MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
134    MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
135    MDRV_SCREEN_SIZE(640, 480)
136    MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
137 
138   MDRV_PALETTE_LENGTH(2)
139   MDRV_PALETTE_INIT(monochrome_green)
140 
141   MDRV_VIDEO_START(victor9k)
142   MDRV_VIDEO_UPDATE(victor9k)
143 
144   MDRV_MC6845_ADD(HD46505S_TAG, H46505, 1000000, hd46505s_intf)
145 
146   /* sound hardware */
147   MDRV_SPEAKER_STANDARD_MONO("mono")
148//   MDRV_M6852_ADD(M6852_TAG, 0, m6852_intf)
149//   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
150 
151   /* devices */
152   MDRV_IEEE488_ADD(IEEE488_TAG, ieee488_daisy)
153//   MDRV_PIC8259_ADD(I8259A_TAG, i8259_intf)
154//   MDRV_PIT8253_ADD(I8253_TAG, i8253_intf)
155//   MDRV_UPD7201_ADD(UPD7201_TAG, 0, upd7201_intf)
156//   MDRV_VIA6522_ADD(M6522_1_TAG, 0, m6522_1_intf)
157//   MDRV_VIA6522_ADD(M6522_2_TAG, 0, m6522_2_intf)
158//   MDRV_VIA6522_ADD(M6522_3_TAG, 0, m6522_3_intf)
159//   MDRV_VIA6522_ADD(M6522_4_TAG, 0, m6522_4_intf)
160//   MDRV_VIA6522_ADD(M6522_5_TAG, 0, m6522_5_intf)
161//   MDRV_VIA6522_ADD(M6522_6_TAG, 0, m6522_6_intf)
162   MDRV_FLOPPY_2_DRIVES_ADD(victor9k_floppy_config)
163 
164   /* internal ram */
165   MDRV_RAM_ADD("messram")
166   MDRV_RAM_DEFAULT_SIZE("128K")
167   MDRV_RAM_EXTRA_OPTIONS("512K")
168MACHINE_DRIVER_END
169 
170/* ROMs */
171 
172ROM_START( victor9k )
173   ROM_REGION( 0x2000, I8088_TAG, 0 )
174   ROM_LOAD( "102320.7j", 0x0000, 0x1000, CRC(3d615fd7) SHA1(b22f7e5d66404185395d8effbf57efded0079a92) )
175   ROM_LOAD( "102322.8j", 0x1000, 0x1000, CRC(9209df0e) SHA1(3ee8e0c15186bbd5768b550ecc1fa3b6b1dbb928) )
176   ROM_LOAD( "v9000_univ._fe_f3f7_13db.7j", 0x0000, 0x1000, CRC(25c7a59f) SHA1(8784e9aa7eb9439f81e18b8e223c94714e033911) )
177   ROM_LOAD( "v9000_univ._ff_f3f7_39fe.8j", 0x1000, 0x1000, CRC(496c7467) SHA1(eccf428f62ef94ab85f4a43ba59ae6a066244a66) )
178 
179   ROM_REGION( 0x800, "gcr", 0 )
180   ROM_LOAD( "100836-01.4k", 0x000, 0x800, CRC(adc601bd) SHA1(6eeff3d2063ae2d97452101aa61e27ef83a467e5) )
181 
182   ROM_REGION( 0x800, "motor", 0)
183   ROM_LOAD( "disk spindle motor control i8048", 0x000, 0x800, NO_DUMP )
184 
185   ROM_REGION( 0x800, "keyboard", 0)
186   ROM_LOAD( "keyboard controller i8048", 0x000, 0x800, NO_DUMP )
187ROM_END
188 
189/* System Drivers */
190 
191/*    YEAR  NAME      PARENT  COMPAT  MACHINE   INPUT     INIT  COMPANY                  FULLNAME      FLAGS */
192COMP( 1982, victor9k, 0,      0,      victor9k, victor9k, 0,    "Victor Business Products", "Victor 9000",   GAME_NOT_WORKING | GAME_NO_SOUND )
docs/messnew.txt
r7448r7449
3434- Tandy 2000 [Curt Coder]
3535- TRS-80 Model II [Curt Coder]
3636- TRS-80 Model II/16 [Curt Coder]
37- Victor 9000 [Curt Coder]
3738- Xerox 820-II [Curt Coder]
3839- Xerox 16/8 [Curt Coder]
3940

Previous 15994 Revisions Next


© 1998-2018 The MESS Team