src/mess/drivers/pocketc.c
| r6593 | r6594 | |
| 82 | 82 | |
| 83 | 83 | static ADDRESS_MAP_START( pc1401_mem , ADDRESS_SPACE_PROGRAM, 8) |
| 84 | 84 | AM_RANGE( 0x0000, 0x1fff) AM_ROM |
| 85 | | AM_RANGE( 0x2000, 0x47ff) AM_READ( SMH_RAM ) |
| 86 | | /* { 0x2000, 0x3fff, SMH_RAM }, // done in pc1401_machine_init */ |
| 87 | | /* { 0x5000, 0x57ff, ? }, */ |
| 85 | AM_RANGE( 0x3800, 0x47ff) AM_RAM |
| 88 | 86 | AM_RANGE( 0x6000, 0x67ff) AM_READWRITE( pc1401_lcd_read, pc1401_lcd_write ) AM_MIRROR(0x1000) |
| 89 | 87 | AM_RANGE( 0x8000, 0xffff) AM_ROM |
| 90 | 88 | ADDRESS_MAP_END |
| 91 | 89 | |
| 90 | static ADDRESS_MAP_START( pc1402_mem , ADDRESS_SPACE_PROGRAM, 8) |
| 91 | AM_RANGE( 0x0000, 0x1fff) AM_ROM |
| 92 | AM_RANGE( 0x2000, 0x47ff) AM_RAM |
| 93 | AM_RANGE( 0x6000, 0x67ff) AM_READWRITE( pc1401_lcd_read, pc1401_lcd_write ) AM_MIRROR(0x1000) |
| 94 | AM_RANGE( 0x8000, 0xffff) AM_ROM |
| 95 | ADDRESS_MAP_END |
| 96 | |
| 92 | 97 | static ADDRESS_MAP_START( pc1250_mem , ADDRESS_SPACE_PROGRAM, 8) |
| 93 | 98 | AM_RANGE( 0x0000, 0x1fff) AM_ROM |
| 94 | 99 | AM_RANGE( 0x4000, 0x7fff) AM_ROM |
| r6593 | r6594 | |
| 141 | 146 | AM_RANGE( 0xe000, 0xffff) AM_RAM |
| 142 | 147 | ADDRESS_MAP_END |
| 143 | 148 | |
| 149 | static ADDRESS_MAP_START( pc1403h_mem , ADDRESS_SPACE_PROGRAM, 8) |
| 150 | AM_RANGE( 0x0000, 0x1fff) AM_ROM |
| 151 | AM_RANGE( 0x3000, 0x30bf) AM_READWRITE( pc1403_lcd_read, pc1403_lcd_write ) |
| 152 | AM_RANGE( 0x3800, 0x3fff) AM_READWRITE( pc1403_asic_read, pc1403_asic_write ) |
| 153 | AM_RANGE( 0x4000, 0x7fff) AM_ROMBANK(1) |
| 154 | AM_RANGE( 0x8000, 0xffff) AM_RAM |
| 155 | ADDRESS_MAP_END |
| 144 | 156 | |
| 157 | |
| 145 | 158 | #if 0 |
| 146 | 159 | static ADDRESS_MAP_START( pc1421_readmem , ADDRESS_SPACE_PROGRAM, 8) |
| 147 | 160 | AM_RANGE( 0x0000, 0x1fff) AM_READ( SMH_ROM ) |
| r6593 | r6594 | |
| 160 | 173 | |
| 161 | 174 | /* 2008-05 FP: the following input ports are based on the way ports are read, but I would like |
| 162 | 175 | to have confirmation from technical docs before considering these correct. |
| 176 | If they need to be changed, you must also update the clickable artwork. |
| 163 | 177 | */ |
| 164 | 178 | |
| 165 | 179 | static INPUT_PORTS_START( pc1401 ) |
| r6593 | r6594 | |
| 280 | 294 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 281 | 295 | |
| 282 | 296 | PORT_START("DSW0") |
| 283 | | PORT_DIPNAME( 0xc0, 0x40, "RAM") |
| 284 | | PORT_DIPSETTING( 0x00, "2KB" ) |
| 285 | | PORT_DIPSETTING( 0x40, "PC1401 (4KB)" ) |
| 286 | | PORT_DIPSETTING( 0x80, "PC1402 (10KB)" ) |
| 287 | | PORT_DIPNAME( 0x07, 0x02, "Contrast") |
| 297 | PORT_DIPNAME( 0x07, 0x01, "Contrast") |
| 288 | 298 | PORT_DIPSETTING( 0x00, "0/Low" ) |
| 289 | 299 | PORT_DIPSETTING( 0x01, "1" ) |
| 290 | 300 | PORT_DIPSETTING( 0x02, "2" ) |
| r6593 | r6594 | |
| 295 | 305 | PORT_DIPSETTING( 0x07, "7/High" ) |
| 296 | 306 | INPUT_PORTS_END |
| 297 | 307 | |
| 298 | | static INPUT_PORTS_START( pc1402 ) |
| 299 | | PORT_INCLUDE( pc1401 ) |
| 300 | | |
| 301 | | PORT_MODIFY("DSW0") |
| 302 | | PORT_DIPNAME( 0xc0, 0x80, "RAM") |
| 303 | | PORT_DIPSETTING( 0x00, "2KB" ) |
| 304 | | PORT_DIPSETTING( 0x40, "PC1401 (4KB)" ) |
| 305 | | PORT_DIPSETTING( 0x80, "PC1402 (10KB)" ) |
| 306 | | INPUT_PORTS_END |
| 307 | | |
| 308 | 308 | static INPUT_PORTS_START( pc1403 ) |
| 309 | 309 | PORT_START("KEY0") |
| 310 | 310 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 y mean") PORT_CODE(KEYCODE_7_PAD) |
| r6593 | r6594 | |
| 430 | 430 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F3) |
| 431 | 431 | |
| 432 | 432 | PORT_START("DSW0") |
| 433 | | PORT_DIPNAME( 0x80, 0x00, "RAM") |
| 434 | | PORT_DIPSETTING( 0x00, "PC1403 (8KB)" ) |
| 435 | | PORT_DIPSETTING( 0x80, "PC1403H (32KB)" ) |
| 436 | 433 | // normally no contrast control! |
| 437 | | PORT_DIPNAME( 0x07, 0x02, "Contrast") |
| 434 | PORT_DIPNAME( 0x07, 0x01, "Contrast") |
| 438 | 435 | PORT_DIPSETTING( 0x00, "0/Low" ) |
| 439 | 436 | PORT_DIPSETTING( 0x01, "1" ) |
| 440 | 437 | PORT_DIPSETTING( 0x02, "2" ) |
| r6593 | r6594 | |
| 449 | 446 | PORT_INCLUDE( pc1403 ) |
| 450 | 447 | |
| 451 | 448 | PORT_MODIFY("DSW0") |
| 452 | | PORT_DIPNAME( 0x80, 0x80, "RAM") |
| 449 | PORT_DIPNAME( 0x80, 0x80, "RAM") |
| 453 | 450 | PORT_DIPSETTING( 0x00, "PC1403 (8KB)" ) |
| 454 | 451 | PORT_DIPSETTING( 0x80, "PC1403H (32KB)" ) |
| 455 | 452 | INPUT_PORTS_END |
| r6593 | r6594 | |
| 539 | 536 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F3) |
| 540 | 537 | |
| 541 | 538 | PORT_START("MODE") |
| 542 | | PORT_DIPNAME( 0x07, 0x00, "Mode") |
| 539 | PORT_DIPNAME( 0x07, 0x00, "Mode") |
| 543 | 540 | PORT_DIPSETTING( 0x04, DEF_STR(Off) ) |
| 544 | 541 | PORT_DIPSETTING( 0x00, "On/RUN" ) |
| 545 | 542 | PORT_DIPSETTING( 0x02, "On/PRO" ) |
| 546 | 543 | PORT_DIPSETTING( 0x01, "On/RSV" ) |
| 547 | 544 | |
| 548 | 545 | PORT_START("DSW0") |
| 549 | | PORT_DIPNAME( 0x07, 0x02, "Contrast") |
| 546 | PORT_DIPNAME( 0x07, 0x01, "Contrast") |
| 550 | 547 | PORT_DIPSETTING( 0x00, "0/Low" ) |
| 551 | 548 | PORT_DIPSETTING( 0x01, "1" ) |
| 552 | 549 | PORT_DIPSETTING( 0x02, "2" ) |
| r6593 | r6594 | |
| 648 | 645 | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P Alpha") PORT_CODE(KEYCODE_P) |
| 649 | 646 | |
| 650 | 647 | PORT_START("KEY11") |
| 651 | | PORT_DIPNAME( 0xc0, 0x00, "Power") |
| 648 | PORT_DIPNAME( 0xc0, 0x00, "Power") |
| 652 | 649 | PORT_DIPSETTING( 0xc0, DEF_STR( Off ) ) |
| 653 | 650 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 654 | 651 | |
| r6593 | r6594 | |
| 657 | 654 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) // temporarily here, but not read... |
| 658 | 655 | |
| 659 | 656 | PORT_START("DSW0") |
| 660 | | PORT_DIPNAME( 0x07, 0x02, "Contrast") |
| 657 | PORT_DIPNAME( 0x07, 0x07, "Contrast") |
| 661 | 658 | PORT_DIPSETTING( 0x00, "0/Low" ) |
| 662 | 659 | PORT_DIPSETTING( 0x01, "1" ) |
| 663 | 660 | PORT_DIPSETTING( 0x02, "2" ) |
| r6593 | r6594 | |
| 721 | 718 | |
| 722 | 719 | static const sc61860_cpu_core config = |
| 723 | 720 | { |
| 724 | | pc1401_reset, pc1401_brk, NULL, |
| 725 | | pc1401_ina, pc1401_outa, |
| 726 | | pc1401_inb, pc1401_outb, |
| 727 | | pc1401_outc |
| 721 | pc1401_reset, pc1401_brk, NULL, |
| 722 | pc1401_ina, pc1401_outa, |
| 723 | pc1401_inb, pc1401_outb, |
| 724 | pc1401_outc |
| 728 | 725 | }; |
| 729 | 726 | |
| 730 | 727 | static MACHINE_DRIVER_START( pc1401 ) |
| r6593 | r6594 | |
| 741 | 738 | aim: show sharp with keyboard |
| 742 | 739 | resolution depends on the dots of the lcd |
| 743 | 740 | (lcd dot displayed as 2x3 pixel) |
| 744 | | it seams to have 3/4 ratio in the real pc1401 */ |
| 745 | | /* video hardware */ |
| 741 | it seems to have 3/4 ratio in the real pc1401 */ |
| 742 | /* video hardware */ |
| 746 | 743 | MDRV_SCREEN_ADD("screen", LCD) |
| 747 | 744 | MDRV_SCREEN_REFRESH_RATE(20) /* very early and slow lcd */ |
| 748 | 745 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| r6593 | r6594 | |
| 762 | 759 | /*MDRV_SOUND_ADD("dac", DAC, pocketc_sound_interface)*/ |
| 763 | 760 | MACHINE_DRIVER_END |
| 764 | 761 | |
| 762 | static MACHINE_DRIVER_START( pc1402 ) |
| 763 | MDRV_IMPORT_FROM( pc1401) |
| 764 | MDRV_CPU_MODIFY( "maincpu" ) |
| 765 | MDRV_CPU_PROGRAM_MAP( pc1402_mem) |
| 766 | MACHINE_DRIVER_END |
| 765 | 767 | |
| 766 | 768 | static const sc61860_cpu_core pc1251_config = |
| 767 | 769 | { |
| r6593 | r6594 | |
| 902 | 904 | MDRV_VIDEO_UPDATE( pc1403 ) |
| 903 | 905 | MACHINE_DRIVER_END |
| 904 | 906 | |
| 907 | static MACHINE_DRIVER_START( pc1403h ) |
| 908 | MDRV_IMPORT_FROM( pc1403) |
| 909 | MDRV_CPU_MODIFY( "maincpu" ) |
| 910 | MDRV_CPU_PROGRAM_MAP( pc1403h_mem) |
| 911 | MACHINE_DRIVER_END |
| 905 | 912 | |
| 913 | |
| 906 | 914 | ROM_START(pc1401) |
| 907 | 915 | ROM_REGION(0x10000,"maincpu",0) |
| 908 | 916 | /* SC61860A08 5H 13LD cpu with integrated rom*/ |
| r6593 | r6594 | |
| 954 | 962 | |
| 955 | 963 | ROM_START(pc1403) |
| 956 | 964 | ROM_REGION(0x10000,"maincpu",0) |
| 957 | | ROM_LOAD("introm.bin", 0x0000, 0x2000, CRC(588c500b) SHA1(2fed9ebede27e20a8ee4b4b03b9f8cd7808ada5c)) |
| 965 | ROM_LOAD("introm.bin", 0x0000, 0x2000, CRC(588c500b) SHA1(2fed9ebede27e20a8ee4b4b03b9f8cd7808ada5c)) |
| 958 | 966 | ROM_REGION(0x10000,"user1",0) |
| 959 | | ROM_LOAD("extrom08.bin", 0x0000, 0x4000, CRC(1fa65140) SHA1(f22a9f114486f69733fc43dfec26fb210643aeff)) |
| 960 | | ROM_LOAD("extrom09.bin", 0x4000, 0x4000, CRC(4a7da6ab) SHA1(b50fe8a4ca821244c119147b3ff04cee0fd6ad5c)) |
| 961 | | ROM_LOAD("extrom0a.bin", 0x8000, 0x4000, CRC(9925174f) SHA1(793a79142cd170ed7ac3f7ecb1b6e6f92c8fa4e0)) |
| 962 | | ROM_LOAD("extrom0b.bin", 0xc000, 0x4000, CRC(fa5df9ec) SHA1(6ff62c215f510a3a652d61823f54cd4018d6a771)) |
| 967 | ROM_LOAD("extrom08.bin", 0x0000, 0x4000, CRC(1fa65140) SHA1(f22a9f114486f69733fc43dfec26fb210643aeff)) |
| 968 | ROM_LOAD("extrom09.bin", 0x4000, 0x4000, CRC(4a7da6ab) SHA1(b50fe8a4ca821244c119147b3ff04cee0fd6ad5c)) |
| 969 | ROM_LOAD("extrom0a.bin", 0x8000, 0x4000, CRC(9925174f) SHA1(793a79142cd170ed7ac3f7ecb1b6e6f92c8fa4e0)) |
| 970 | ROM_LOAD("extrom0b.bin", 0xc000, 0x4000, CRC(fa5df9ec) SHA1(6ff62c215f510a3a652d61823f54cd4018d6a771)) |
| 963 | 971 | ROM_REGION(0x100,"gfx1",ROMREGION_ERASEFF) |
| 964 | 972 | ROM_END |
| 965 | 973 | |
| r6593 | r6594 | |
| 984 | 992 | pc1600 |
| 985 | 993 | */ |
| 986 | 994 | |
| 987 | | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ |
| 995 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ |
| 988 | 996 | /* cpu sc61860 */ |
| 989 | | COMP( 1982, pc1245, 0, 0, pc1250, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1245", GAME_NOT_WORKING ) |
| 990 | | COMP( 1982, pc1250, 0, 0, pc1250, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1250", 0 ) |
| 997 | COMP( 1982, pc1245, 0, 0, pc1250, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1245", GAME_NOT_WORKING ) |
| 998 | COMP( 1982, pc1250, 0, 0, pc1250, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1250", 0 ) |
| 991 | 999 | COMP( 1982, pc1251, pc1250, 0, pc1251, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1251", 0 ) |
| 992 | 1000 | COMP( 1982, pc1255, pc1250, 0, pc1255, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1255", 0 ) |
| 993 | | COMP( 198?, trs80pc3,pc1250,0, pc1251, pc1251, pc1251, 0, "Tandy", "TRS80 PC-3", 0 ) |
| 1001 | COMP( 198?, trs80pc3, pc1250, 0, pc1251, pc1251, pc1251, 0, "Tandy", "TRS80 PC-3", 0 ) |
| 994 | 1002 | |
| 995 | | COMP( 1982, pc1260, 0, 0, pc1260, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1260", GAME_NOT_WORKING ) |
| 1003 | COMP( 1982, pc1260, 0, 0, pc1260, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1260", GAME_NOT_WORKING ) |
| 996 | 1004 | COMP( 1982, pc1261, pc1260, 0, pc1261, pc1251, pc1251, 0, "Sharp", "Pocket Computer 1261/1262", GAME_NOT_WORKING ) |
| 997 | 1005 | |
| 998 | 1006 | /* pc1261/pc1262 */ |
| 999 | | COMP( 1984, pc1350, 0, 0, pc1350, pc1350, 0, 0, "Sharp", "Pocket Computer 1350", 0 ) |
| 1007 | COMP( 1984, pc1350, 0, 0, pc1350, pc1350, 0, 0, "Sharp", "Pocket Computer 1350", 0 ) |
| 1000 | 1008 | |
| 1001 | | COMP( 1983, pc1401, 0, 0, pc1401, pc1401, pc1401, 0, "Sharp", "Pocket Computer 1401", 0 ) |
| 1002 | | COMP( 1984, pc1402, pc1401, 0, pc1401, pc1402, pc1401, 0, "Sharp", "Pocket Computer 1402", 0 ) |
| 1009 | COMP( 1983, pc1401, 0, 0, pc1401, pc1401, pc1401, 0, "Sharp", "Pocket Computer 1401", 0 ) |
| 1010 | COMP( 1984, pc1402, pc1401, 0, pc1402, pc1401, pc1401, 0, "Sharp", "Pocket Computer 1402", 0 ) |
| 1003 | 1011 | |
| 1004 | 1012 | /* 72kb rom, 32kb ram, cpu? pc1360 */ |
| 1005 | | COMP( 198?, pc1403, 0, 0, pc1403, pc1403, pc1403, 0, "Sharp", "Pocket Computer 1403", GAME_NOT_WORKING) |
| 1006 | | COMP( 198?, pc1403h, pc1403, 0, pc1403, pc1403h,pc1403, 0, "Sharp", "Pocket Computer 1403H", GAME_NOT_WORKING) |
| 1013 | COMP( 198?, pc1403, 0, 0, pc1403, pc1403, pc1403, 0, "Sharp", "Pocket Computer 1403", GAME_NOT_WORKING ) |
| 1014 | COMP( 198?, pc1403h, pc1403, 0, pc1403h,pc1403, pc1403, 0, "Sharp", "Pocket Computer 1403H", GAME_NOT_WORKING ) |