r7248 Wednesday 3rd February, 2010 at 14:06:11 UTC by Miodrag Milanović
New System Drivers Supported:
-----------------------------
- Iskra-1031 [Miodrag Milanovic] (need proper CGA ROM dump)
- EC-1841 [Miodrag Milanovic]
[docs]messnew.txt
[src/mess]messdriv.c
[src/mess/drivers]pc.c
[src/mess/video]pc_cga.c

src/mess/video/pc_cga.c
r7247r7248
233233   UINT8   palette_lut_2bpp[4];
234234   UINT8   vsync;
235235   UINT8   hsync;
236   UINT8   p3df;
236237} cga;
237238
238239
r7247r7248
11791180 *
11801181 *************************************************************************/
11811182
1183WRITE8_HANDLER ( char_ram_w )
1184{
1185   UINT8 *gfx = memory_region(space->machine, "gfx1");   
1186   logerror("write char ram %04x %02x\n",offset,data);
1187   gfx[offset + 0x0000] = data;
1188   gfx[offset + 0x0800] = data;
1189   gfx[offset + 0x1000] = data;
1190   gfx[offset + 0x1800] = data;
1191}
1192
1193WRITE16_HANDLER( char_ram_16le_w ) { write16le_with_write8_handler(char_ram_w, space, offset, data, mem_mask); }
1194WRITE32_HANDLER( char_ram_32_w )   { write32le_with_write8_handler(char_ram_w, space, offset, data, mem_mask); }
1195
1196READ8_HANDLER ( char_ram_r )
1197{
1198   UINT8 *gfx = memory_region(space->machine, "gfx1");   
1199   return gfx[offset];
1200}
1201
1202READ16_HANDLER( char_ram_16le_r ) { return read16le_with_read8_handler(char_ram_r, space, offset, mem_mask); }
1203READ32_HANDLER( char_ram_32_r )   { return read32le_with_read8_handler(char_ram_r, space, offset, mem_mask); }
1204
11821205static READ8_HANDLER( pc_cga8_r )
11831206{
11841207   running_device *devconf = devtag_get_device(space->machine, CGA_MC6845_NAME);
r7247r7248
11931216         break;
11941217      case 10:
11951218         data = cga.vsync | ( ( data & 0x40 ) >> 4 ) | cga.hsync;
1219         break;         
1220      case 0x0f:
1221         data = cga.p3df;
11961222         break;
11971223    }
11981224   return data;
r7247r7248
12221248   case 0x0d:
12231249      pc_cga_plantronics_w(space->machine, data);
12241250      break;
1251   case 0x0f:
1252      // Not sure if some all CGA cards have ability to upload char definition
1253      UINT8 buswidth = space->machine->firstcpu->databus_width(AS_PROGRAM);
1254      const address_space *space_prg = cpu_get_address_space(space->machine->firstcpu, ADDRESS_SPACE_PROGRAM);
1255      cga.p3df = data;
1256      if (data & 1) {   
1257         switch(buswidth)
1258         {
1259            case 8:
1260               memory_install_readwrite8_handler(space_prg, 0xb8000, 0xb87ff, 0, 0, char_ram_r,char_ram_w );
1261               break;
1262
1263            case 16:
1264               memory_install_readwrite16_handler(space_prg, 0xb8000, 0xb87ff, 0, 0, char_ram_16le_r,char_ram_16le_w );
1265               break;
1266
1267            case 32:
1268               memory_install_readwrite32_handler(space_prg, 0xb8000, 0xb87ff, 0, 0, char_ram_32_r,char_ram_32_w );
1269               break;
1270
1271            default:
1272               fatalerror("CGA:  Bus width %d not supported\n", buswidth);
1273               break;
1274         }           
1275      } else {         
1276         memory_install_read_bank(space_prg, 0xb8000, 0xbbfff, 0, 0x04000, "bank11" );
1277         switch(buswidth)
1278         {
1279            case 8:
1280               memory_install_write8_handler(space_prg, 0xb8000, 0xbbfff, 0, 0x04000, pc_video_videoram_w );
1281               break;
1282
1283            case 16:
1284               memory_install_write16_handler(space_prg, 0xb8000, 0xbbfff, 0, 0x04000, pc_video_videoram16le_w );
1285               break;
1286
1287            case 32:
1288               memory_install_write32_handler(space_prg, 0xb8000, 0xbbfff, 0, 0x04000, pc_video_videoram32_w );
1289               break;
1290
1291            default:
1292               fatalerror("CGA:  Bus width %d not supported\n", buswidth);
1293               break;
1294         }
1295     
1296      }
1297      break;
1298     
12251299   }
12261300}
12271301
src/mess/messdriv.c
r7247r7248
586586   DRIVER( pc1640 )   /* 1987 Amstrad PC1640 (EGA compatible)    */
587587
588588   DRIVER( xtvga )    /* 198? PC-XT (VGA, MF2 Keyboard)      */
589
589   DRIVER( iskr1031 )
590   DRIVER( ec1841 )
590591   /* AT */
591592   DRIVER( ibm5170 )   /* 1984 IBM PC/AT 5170, original 6 MHz model   */
592593   DRIVER( ibm5170a )  /* 1985 IBM PC/AT 5170, enhanced 8 MHz model   */
src/mess/drivers/pc.c
r7247r7248
281281#endif
282282   AM_RANGE(0x0240, 0x0257) AM_READWRITE(pc16le_rtc_r,            pc16le_rtc_w)
283283   AM_RANGE(0x0278, 0x027b) AM_DEVREADWRITE8("lpt_2", pc_lpt_r, pc_lpt_w, 0x00ff)
284   AM_RANGE(0x02b0, 0x02bf) AM_RAM
284285   AM_RANGE(0x02e8, 0x02ef) AM_DEVREADWRITE8("ins8250_3", ins8250_r, ins8250_w, 0xffff)
285286   AM_RANGE(0x02f8, 0x02ff) AM_DEVREADWRITE8("ins8250_1", ins8250_r, ins8250_w, 0xffff)
286287   AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc16le_HDC1_r,         pc16le_HDC1_w)
r7247r7248
24012402   MDRV_RAM_DEFAULT_SIZE("640K")
24022403MACHINE_DRIVER_END
24032404
2405static MACHINE_DRIVER_START( iskr1031 )
2406   MDRV_DRIVER_DATA(pc_state)
2407   /* basic machine hardware */
2408   MDRV_CPU_PC(pc16, pc16, I8086, 4772720, pc_frame_interrupt)
2409
2410   MDRV_QUANTUM_TIME(HZ(60))
2411
2412   MDRV_MACHINE_START(pc)
2413   MDRV_MACHINE_RESET(pc)
2414
2415   MDRV_PIT8253_ADD( "pit8253", ibm5150_pit8253_config )
2416
2417   MDRV_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
2418
2419   MDRV_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
2420
2421   MDRV_I8255A_ADD( "ppi8255", ibm5160_ppi8255_interface )
2422
2423   MDRV_INS8250_ADD( "ins8250_0", ibm5150_com_interface[0] )         /* TODO: Verify model */
2424   MDRV_INS8250_ADD( "ins8250_1", ibm5150_com_interface[1] )         /* TODO: Verify model */
2425   MDRV_INS8250_ADD( "ins8250_2", ibm5150_com_interface[2] )         /* TODO: Verify model */
2426   MDRV_INS8250_ADD( "ins8250_3", ibm5150_com_interface[3] )         /* TODO: Verify model */
2427
2428   /* video hardware */
2429   MDRV_IMPORT_FROM( pcvideo_cga )
2430   MDRV_GFXDECODE(ibm5150)
2431
2432   /* sound hardware */
2433   MDRV_SPEAKER_STANDARD_MONO("mono")
2434   MDRV_SOUND_ADD("speaker", SPEAKER, 0)
2435   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
2436#ifdef ADLIB
2437   MDRV_SOUND_ADD("ym3812", YM3812, ym3812_StdClock)
2438   MDRV_SOUND_CONFIG(pc_ym3812_interface)
2439   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
2440#endif
2441#ifdef GAMEBLASTER
2442   MDRV_SOUND_ADD("saa1099.1", SAA1099, 4772720)
2443   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
2444   MDRV_SOUND_ADD("saa1099.2", SAA1099, 4772720)
2445   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
2446#endif
2447
2448   /* keyboard */
2449   MDRV_KB_KEYTRONIC_ADD("keyboard", pc_keytronic_intf)
2450
2451   /* printer */
2452   MDRV_PC_LPT_ADD("lpt_0", pc_lpt_config)
2453   MDRV_PC_LPT_ADD("lpt_1", pc_lpt_config)
2454   MDRV_PC_LPT_ADD("lpt_2", pc_lpt_config)
2455
2456   /* harddisk */
2457   MDRV_IMPORT_FROM( pc_hdc )
2458
2459   MDRV_UPD765A_ADD("upd765", pc_fdc_upd765_not_connected_interface)
2460
2461   MDRV_FLOPPY_2_DRIVES_ADD(ibmpc_floppy_config)
2462
2463   /* internal ram */
2464   MDRV_RAM_ADD("messram")
2465   MDRV_RAM_DEFAULT_SIZE("640K")
2466MACHINE_DRIVER_END
2467
2468
2469
24042470#if 0
24052471   //pcjr roms? (incomplete dump, most likely 64 kbyte)
24062472   // basic c1.20
r7247r7248
29453011   ROM_LOAD("5788005.u33", 0x00000, 0x2000, CRC(0bf56d70) SHA1(c2a8b10808bf51a3c123ba3eb1e9dd608231916f)) /* "AMI 8412PI // 5788005 // (C) IBM CORP. 1981 // KOREA" */
29463012ROM_END
29473013
3014ROM_START( iskr1031 )
3015   ROM_REGION16_LE(0x100000,"maincpu", 0)
3016   ROM_SYSTEM_BIOS(0, "v1", "v1")
3017   ROMX_LOAD( "150-02.bin", 0xfc000, 0x2000, CRC(e33fb974) SHA1(f5f3ece67c025c0033716ff516e1a34fbeb32749), ROM_SKIP(1) | ROM_BIOS(1))
3018   ROMX_LOAD( "150-03.bin", 0xfc001, 0x2000, CRC(8c482258) SHA1(90ef48955e0df556dc06a000a797ef42ccf430c5), ROM_SKIP(1) | ROM_BIOS(1))
3019   ROM_SYSTEM_BIOS(1, "v2", "v2")
3020   ROMX_LOAD( "150-06.bin", 0xfc000, 0x2000, CRC(1adbf969) SHA1(08c0a0fc50a75e6207b1987bae389cca60893eac), ROM_SKIP(1) | ROM_BIOS(2))
3021   ROMX_LOAD( "150-07.bin", 0xfc001, 0x2000, CRC(0dc4b65a) SHA1(c96f066251a7343eac8113ea9dcb2cb12d0334d5), ROM_SKIP(1) | ROM_BIOS(2))
3022   
3023   ROM_REGION(0x2000,"gfx1", 0)   
3024   // Here CGA rom with cyrillic support should be added
3025   ROM_LOAD( "rus_cga.bin", 0x0000, 0x2000, BAD_DUMP CRC(f23c2425) SHA1(fd40daf0aa629f479b40ca9ac7aea369fa020af6))
3026ROM_END
29483027
3028ROM_START( ec1841 )
3029   ROM_REGION16_LE(0x100000,"maincpu", 0)
3030   ROM_SYSTEM_BIOS(0, "v1", "v1")
3031   ROMX_LOAD( "18410112.bin", 0xfc000, 0x0800, CRC(77957396) SHA1(785f1dceb6e2b4618f5c5f0af15eb74a8c951448), ROM_SKIP(1) | ROM_BIOS(1))
3032   ROMX_LOAD( "18410113.bin", 0xfc001, 0x0800, CRC(768bd3d5) SHA1(2e948f2ad262de306d889b7964c3f1aad45ff5bc), ROM_SKIP(1) | ROM_BIOS(1))
3033   ROMX_LOAD( "18410114.bin", 0xfd000, 0x0800, CRC(47722b58) SHA1(a6339ee8af516f834826b7828a5cf79cb650480c), ROM_SKIP(1) | ROM_BIOS(1))
3034   ROMX_LOAD( "18410115.bin", 0xfd001, 0x0800, CRC(b585b5ea) SHA1(d0ebed586eb13031477c2e071c50416682f80489), ROM_SKIP(1) | ROM_BIOS(1))
3035   ROMX_LOAD( "18410116.bin", 0xfe000, 0x0800, CRC(28a07db4) SHA1(17fbcd60dacd1d3f8d8355db429f97e4d1d1ac88), ROM_SKIP(1) | ROM_BIOS(1))
3036   ROMX_LOAD( "18410117.bin", 0xfe001, 0x0800, CRC(928bda26) SHA1(ee889184067e2680b29a8ef1c3a76cf5afd4c78d), ROM_SKIP(1) | ROM_BIOS(1))
3037   ROMX_LOAD( "18410118.bin", 0xff000, 0x0800, CRC(75ca7d7e) SHA1(6356426820c5326a7893a437d54b02f250ef8609), ROM_SKIP(1) | ROM_BIOS(1))
3038   ROMX_LOAD( "18410119.bin", 0xff001, 0x0800, CRC(8a9d593e) SHA1(f3936d2cb4e6d130dd732973f126c3aa20612463), ROM_SKIP(1) | ROM_BIOS(1))   
3039   ROM_SYSTEM_BIOS(1, "v2", "v2")
3040   ROMX_LOAD( "18410212.bin", 0xfc000, 0x0800, CRC(619dbdcf) SHA1(ece1943569b44b1b81246f9d47d62b9b11680a52), ROM_SKIP(1) | ROM_BIOS(2))
3041   ROMX_LOAD( "18410213.bin", 0xfc001, 0x0800, CRC(e3c10128) SHA1(d6ed743ebe9c130925c9f17aad1a45db9194c967), ROM_SKIP(1) | ROM_BIOS(2))
3042   ROMX_LOAD( "18410214.bin", 0xfd000, 0x0800, CRC(f8517e5e) SHA1(8034cd6ff5778365dc9daa494524f1753a74f1ed), ROM_SKIP(1) | ROM_BIOS(2))
3043   ROMX_LOAD( "18410215.bin", 0xfd001, 0x0800, CRC(8538c52a) SHA1(ee981ce90870b6546a18f2a2e64d71b0038ce0dd), ROM_SKIP(1) | ROM_BIOS(2))
3044   ROMX_LOAD( "18410216.bin", 0xfe000, 0x0800, CRC(3d1d1e67) SHA1(c527e29796537787c0f6c329f3c203f6131ca77f), ROM_SKIP(1) | ROM_BIOS(2))
3045   ROMX_LOAD( "18410217.bin", 0xfe001, 0x0800, CRC(1b985264) SHA1(5ddcb9c13564be208c5068c105444a87159c67ee), ROM_SKIP(1) | ROM_BIOS(2))
3046   ROMX_LOAD( "18410218.bin", 0xff000, 0x0800, CRC(75ca7d7e) SHA1(6356426820c5326a7893a437d54b02f250ef8609), ROM_SKIP(1) | ROM_BIOS(2))
3047   ROMX_LOAD( "18410219.bin", 0xff001, 0x0800, CRC(61aae23d) SHA1(7b3aa24a63ee31b194297eb1e61c3827edfcb95a), ROM_SKIP(1) | ROM_BIOS(2))   
3048   ROM_REGION(0x2000,"gfx1", 0)   
3049   // On real machine looks like RAM is here, since it is owerwritten during runtime
3050ROM_END
3051
3052
29493053/***************************************************************************
29503054
29513055  Game driver(s)
r7247r7248
29813085COMP ( 1987,    pcherc,      ibm5150,   0,   pcherc,     pcmda,      ibm5150,    "Generic",  "PC (Hercules)" , 0)
29823086COMP ( 1987,   xtvga,      ibm5150,   0,   xtvga,      xtvga,   pc_vga,       "Generic",  "PC/XT (VGA, MF2 Keyboard)" , GAME_NOT_WORKING)
29833087
3088COMP ( 1987,   iskr1031,   ibm5150,   0,   iskr1031,      pccga,   pccga,       "",  "Iskra-1031" , GAME_NOT_WORKING)
3089COMP ( 1987,   ec1841,      ibm5150,   0,   iskr1031,      pccga,   pccga,       "",  "EC-1841" , GAME_NOT_WORKING)
3090
docs/messnew.txt
r7247r7248
44-----------------------------
55- Casio PV-1000  [Wilbert Pol, plgDavid]
66- Research Machines Nimbus [Phill Harvey-Smith]
7- Iskra-1031 [Miodrag Milanovic]
8- EC-1841 [Miodrag Milanovic]
79
810
9
1011Systems Promoted from GAME_NOT_WORKING:
1112---------------------------------------
1213- Victory MPT-02 and clones [Curt Coder]

Previous 509078 RevisionsNext 50


© 1998-2010 The MESS Team