src/mess/video/kyocera.c
| r4753 | r4754 | |
| 116 | 116 | state->hd61830 = devtag_get_device(machine, HD61830_TAG); |
| 117 | 117 | |
| 118 | 118 | /* allocate video memory */ |
| 119 | | state->video_ram = auto_alloc_array(machine, UINT8, TRSM200_VIDEORAM_SIZE); |
| 119 | state->video_ram = auto_alloc_array(machine, UINT8, TANDY200_VIDEORAM_SIZE); |
| 120 | 120 | |
| 121 | 121 | /* register for state saving */ |
| 122 | | state_save_register_global_pointer(machine, state->video_ram, TRSM200_VIDEORAM_SIZE); |
| 122 | state_save_register_global_pointer(machine, state->video_ram, TANDY200_VIDEORAM_SIZE); |
| 123 | 123 | } |
| 124 | 124 | |
| 125 | 125 | static VIDEO_UPDATE( tandy200 ) |
| r4753 | r4754 | |
| 135 | 135 | { |
| 136 | 136 | tandy200_state *state = space->machine->driver_data; |
| 137 | 137 | |
| 138 | | return state->video_ram[offset & TRSM200_VIDEORAM_MASK]; |
| 138 | return state->video_ram[offset & TANDY200_VIDEORAM_MASK]; |
| 139 | 139 | } |
| 140 | 140 | |
| 141 | 141 | static WRITE8_HANDLER( tandy200_rd_w ) |
| 142 | 142 | { |
| 143 | 143 | tandy200_state *state = space->machine->driver_data; |
| 144 | 144 | |
| 145 | | state->video_ram[offset & TRSM200_VIDEORAM_MASK] = data; |
| 145 | state->video_ram[offset & TANDY200_VIDEORAM_MASK] = data; |
| 146 | 146 | } |
| 147 | 147 | |
| 148 | 148 | static HD61830_INTERFACE( tandy200_hd61830_intf ) |
| r4753 | r4754 | |
| 197 | 197 | MDRV_VIDEO_START(tandy200) |
| 198 | 198 | MDRV_VIDEO_UPDATE(tandy200) |
| 199 | 199 | |
| 200 | | MDRV_HD61830_ADD(HD61830_TAG, XTAL_2_4576MHz/2, tandy200_hd61830_intf) |
| 200 | MDRV_HD61830_ADD(HD61830_TAG, XTAL_4_9152MHz/2/2, tandy200_hd61830_intf) |
| 201 | 201 | MACHINE_DRIVER_END |
src/mess/includes/kyocera.h
| r4753 | r4754 | |
| 2 | 2 | #define __KYOCERA__ |
| 3 | 3 | |
| 4 | 4 | #define SCREEN_TAG "screen" |
| 5 | | #define I8085_TAG "i8085" |
| 6 | | #define PIO8155_TAG "pio8155" |
| 7 | | #define UPD1990A_TAG "upd1990a" |
| 8 | | #define RP5C01A_TAG "rp5c01a" |
| 9 | | #define TCM5089_TAG "tcm5089" |
| 10 | | #define HD61830_TAG "hd61830b" |
| 11 | 5 | |
| 12 | | #define TRSM200_VIDEORAM_SIZE 0x2000 |
| 13 | | #define TRSM200_VIDEORAM_MASK 0x1fff |
| 6 | #define I8085_TAG "m19" |
| 7 | #define PIO8155_TAG "m25" |
| 8 | #define UPD1990A_TAG "m18" |
| 9 | #define IM6402_TAG "m22" |
| 10 | #define MC14412_TAG "m31" |
| 14 | 11 | |
| 12 | //#define I8085_TAG "m19" |
| 13 | //#define PIO8155_TAG "m12" |
| 14 | //#define MC14412_TAG "m8" |
| 15 | #define RP5C01A_TAG "m301" |
| 16 | #define TCM5089_TAG "m11" |
| 17 | #define HD61830_TAG "m18" |
| 18 | #define UART8251_TAG "m20" |
| 19 | |
| 20 | #define TANDY200_VIDEORAM_SIZE 0x2000 |
| 21 | #define TANDY200_VIDEORAM_MASK 0x1fff |
| 22 | |
| 15 | 23 | typedef struct _kc85_state kc85_state; |
| 16 | 24 | struct _kc85_state |
| 17 | 25 | { |
src/mess/drivers/kyocera.c
| r4753 | r4754 | |
| 20 | 20 | * Olivetti M10 Modem (US) (diff BIOS than the European version) |
| 21 | 21 | * NEC PC-8201 (original Japanese version of PC-8201A) |
| 22 | 22 | * NEC PC-8300 (similar hardware to PC-8201) |
| 23 | * NEC PC-8300 w/BradyWriter II ROMs |
| 23 | 24 | |
| 24 | 25 | ******************************************************************************************/ |
| 25 | 26 | |
| r4753 | r4754 | |
| 32 | 33 | - soft power on/off |
| 33 | 34 | - IM6042 UART |
| 34 | 35 | - pc8201 48K RAM option |
| 35 | | - pc8201 video interface |
| 36 | - pc8201 NEC PC-8241A video interface (TMS9918, 16K videoRAM, 8K ROM) |
| 36 | 37 | - pc8201 128K ROM cartridge |
| 37 | 38 | - pc8201 NEC PC-8233 floppy controller |
| 38 | 39 | - pc8201 NEC floppy disc drives (PC-8031-1W, PC-8031-2W, PC-80S31) |
| r4753 | r4754 | |
| 361 | 362 | upd1990a_stb_w(state->upd1990a, BIT(data, 2)); |
| 362 | 363 | |
| 363 | 364 | /* cassette motor */ |
| 364 | | cassette_change_state(cassette_device_image(space->machine), BIT(data, 3) ? CASSETTE_MOTOR_DISABLED : CASSETTE_MOTOR_ENABLED, CASSETTE_MASK_MOTOR); |
| 365 | cassette_change_state(cassette_device_image(space->machine), BIT(data, 3) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR); |
| 365 | 366 | } |
| 366 | 367 | |
| 367 | 368 | static UINT8 read_keyboard(running_machine *machine, UINT16 keylatch) |
| r4753 | r4754 | |
| 1295 | 1296 | /* devices */ |
| 1296 | 1297 | MDRV_PIO8155_ADD(PIO8155_TAG, XTAL_4_9152MHz/2, kc85_8155_intf) |
| 1297 | 1298 | MDRV_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, kc85_upd1990a_intf) |
| 1299 | // MDRV_MC14412_ADD(MC14412_TAG, XTAL_1MHz) |
| 1298 | 1300 | |
| 1299 | 1301 | /* printer */ |
| 1300 | 1302 | MDRV_CENTRONICS_ADD("centronics", standard_centronics) |
| r4753 | r4754 | |
| 1364 | 1366 | MDRV_IMPORT_FROM(tandy200_video) |
| 1365 | 1367 | |
| 1366 | 1368 | /* TP timer */ |
| 1367 | | MDRV_TIMER_ADD_PERIODIC("tp", tandy200_tp_tick, USEC(3300)) // 3.3 ms |
| 1369 | MDRV_TIMER_ADD_PERIODIC("tp", tandy200_tp_tick, HZ(XTAL_4_9152MHz/2/8192)) |
| 1368 | 1370 | |
| 1369 | 1371 | /* sound hardware */ |
| 1370 | | // MDRV_TCM5089_ADD(TCM5089_TAG, XTAL_3_579545MHz) |
| 1371 | | |
| 1372 | 1372 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 1373 | 1373 | MDRV_SOUND_ADD("speaker", SPEAKER, 0) |
| 1374 | 1374 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 1375 | // MDRV_TCM5089_ADD(TCM5089_TAG, XTAL_3_579545MHz) |
| 1375 | 1376 | |
| 1376 | 1377 | /* devices */ |
| 1377 | 1378 | MDRV_PIO8155_ADD(PIO8155_TAG, XTAL_4_9152MHz/2, tandy200_8155_intf) |
| 1378 | 1379 | MDRV_RP5C01A_ADD(RP5C01A_TAG, XTAL_32_768kHz, tandy200_rp5c01a_intf) |
| 1380 | // MDRV_MC14412_ADD(MC14412_TAG, XTAL_1MHz) |
| 1379 | 1381 | |
| 1380 | 1382 | /* printer */ |
| 1381 | 1383 | MDRV_CENTRONICS_ADD("centronics", standard_centronics) |
| r4753 | r4754 | |
| 1408 | 1410 | ROM_END |
| 1409 | 1411 | |
| 1410 | 1412 | ROM_START( trsm100 ) |
| 1413 | /* |
| 1414 | Board Code ROM type ROM Code Comment |
| 1415 | ------------------------------------------------------------------- |
| 1416 | PLX110CH1X custom LH535618 early North America |
| 1417 | PLX110EH1X 27C256 compatible 3256C07-3J1/11US late North America |
| 1418 | PLX120CH1X 27C256 compatible 3256C05-3E1/11EP European/Italian |
| 1419 | */ |
| 1411 | 1420 | ROM_REGION( 0x8000, I8085_TAG, 0 ) |
| 1412 | | ROM_LOAD( "m100rom.bin", 0x0000, 0x8000, CRC(730a3611) SHA1(094dbc4ac5a4ea5cdf51a1ac581a40a9622bb25d) ) |
| 1421 | ROM_LOAD( "m100rom.m12", 0x0000, 0x8000, CRC(730a3611) SHA1(094dbc4ac5a4ea5cdf51a1ac581a40a9622bb25d) ) |
| 1413 | 1422 | |
| 1414 | 1423 | ROM_REGION( 0x8000, "option", ROMREGION_ERASEFF ) |
| 1415 | 1424 | ROM_CART_LOAD("cart", 0x0000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) |
| 1416 | 1425 | ROM_END |
| 1417 | 1426 | |
| 1418 | 1427 | ROM_START( olivm10 ) |
| 1428 | // 3256C02-4B3/I Italian |
| 1419 | 1429 | ROM_REGION( 0x8010, I8085_TAG, 0 ) |
| 1420 | | ROM_LOAD( "m10rom.bin", 0x0000, 0x8010, CRC(0be02b58) SHA1(56f2087a658efd0323663d15afcd4f5f27c68664) ) |
| 1430 | ROM_LOAD( "m10rom.m12", 0x0000, 0x8000, CRC(f0e8447a) SHA1(d58867276213116a79f7074109b7d7ce02e8a3af) ) |
| 1421 | 1431 | |
| 1422 | 1432 | ROM_REGION( 0x8000, "option", ROMREGION_ERASEFF ) |
| 1423 | 1433 | ROM_CART_LOAD("cart", 0x0000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) |
| r4753 | r4754 | |
| 1425 | 1435 | |
| 1426 | 1436 | ROM_START( tandy102 ) |
| 1427 | 1437 | ROM_REGION( 0x8000, I8085_TAG, 0 ) |
| 1428 | | ROM_LOAD( "m102rom.bin", 0x0000, 0x8000, CRC(08e9f89c) SHA1(b6ede7735a361c80419f4c9c0e36e7d480c36d11) ) |
| 1438 | ROM_LOAD( "m102rom.m12", 0x0000, 0x8000, CRC(08e9f89c) SHA1(b6ede7735a361c80419f4c9c0e36e7d480c36d11) ) |
| 1429 | 1439 | |
| 1430 | 1440 | ROM_REGION( 0x8000, "option", ROMREGION_ERASEFF ) |
| 1431 | 1441 | ROM_CART_LOAD("cart", 0x0000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) |
| r4753 | r4754 | |
| 1433 | 1443 | |
| 1434 | 1444 | ROM_START( tandy200 ) |
| 1435 | 1445 | ROM_REGION( 0x18000, I8085_TAG, 0 ) |
| 1446 | ROM_LOAD( "rom #1-1.m15", 0x00000, 0x8000, NO_DUMP ) |
| 1447 | ROM_LOAD( "rom #1-2.m13", 0x08000, 0x2000, NO_DUMP ) |
| 1448 | ROM_LOAD( "rom #2.m14", 0x10000, 0x8000, NO_DUMP ) |
| 1436 | 1449 | ROM_LOAD( "t200rom.bin", 0x0000, 0xa000, BAD_DUMP CRC(e3358b38) SHA1(35d4e6a5fb8fc584419f57ec12b423f6021c0991) ) /* Y2K hacked */ |
| 1437 | 1450 | ROM_CONTINUE( 0x10000, 0x8000 ) |
| 1438 | 1451 | |