trunk/src/mess/drivers/mbee.c
| r243482 | r243483 | |
| 65 | 65 | This rom can be replaced with the Dreamdisk Chip-8 rom. |
| 66 | 66 | Note that Telcom 3.21 is 8k, it uses a rombank switch |
| 67 | 67 | (by reading port 0A) to swap between the two halves. |
| 68 | | Most parts of NET can be called up from Basic, e.g. |
| 69 | | NET CLOCK will turn on the clock, NET CLOCKD will remove |
| 70 | | the resultant status bar, NET TIME hhmm to set the time, etc. |
| 71 | | Further, after doing a NET command, the 80x24 mode becomes |
| 72 | | available to Basic. OUT#7 to turn it on, OUT#0 for 64x16. |
| 68 | See Telcom notes below. |
| 73 | 69 | |
| 74 | | EDASM - Jump to C000, usually the editor/Assembler package. |
| 70 | EDASM - Jump to C000, usually the Editor/Assembler package. |
| 75 | 71 | |
| 76 | 72 | MENU - Do a rombank switch to bank 5 and jump to C000 to start the Shell |
| 77 | 73 | |
| r243482 | r243483 | |
| 85 | 81 | - Change it to parallel by entering OUTL#1 |
| 86 | 82 | - After you mount/create a printfile, you can LPRINT and LLIST. |
| 87 | 83 | |
| 84 | Notes about Telcom: |
| 85 | - On the older models, Telcom is called up by entering NET from within Basic. Models |
| 86 | from the pc85 onwards have it as a menu option. |
| 87 | - To exit, press Enter without any input. Disk versions, enter CPM or press ^C. |
| 88 | - After being used, version 3 and up will enable the use of OUT#7 in Basic, which |
| 89 | changes the screen to 80x24. Enter OUT#0 to revert to normal. |
| 90 | - Most versions of Telcom can have their parameters adjusted directly from Basic, |
| 91 | without needing to enter the Telcom program. |
| 92 | - Most versions of Telcom have an optional clock. In older models firstly select VS |
| 93 | from the MESS config menu, then enter NET CLOCK to enable it. NET TIME hhmm to set |
| 94 | the time (24hour format). NET CLOCKD is supposed to remove the status line, but it |
| 95 | doesn't, although the clock stops updating. NET CLOCK and NET CLOCKD are toggles. |
| 96 | - Telcom 1.2 (used in mbeeic) has a bug. If you enter NET CLOCK, the status line is |
| 97 | filled with inverse K. You can fix this from Basic by doing NET CLOCK 3 times. |
| 88 | 98 | |
| 89 | 99 | *************************************************************************** |
| 90 | 100 | |
| 91 | 101 | TODO/not working: |
| 92 | 102 | |
| 93 | 103 | - Printer needs to be understood and fixed. |
| 94 | | |
| 104 | - Keyboard loses characters if you type at a normal rate. |
| 95 | 105 | - Fix Paste (it loses most of the characters) |
| 96 | 106 | |
| 97 | | - all except 256tc: RTC is optional, but it is being totally ignored. |
| 98 | | |
| 99 | | - Most early models have a clock in Telcom, and in the menu. It doesn't |
| 100 | | work. |
| 101 | | |
| 102 | 107 | - various fdc issues: |
| 103 | 108 | - B drive doesn't work. |
| 104 | 109 | - some disks cause MESS to freeze. |
| r243482 | r243483 | |
| 113 | 118 | - 128k: GOLD PAL needs to be dumped for the bankswitching. |
| 114 | 119 | - 64k: RED PAL needs to be dumped for the bankswitching. |
| 115 | 120 | |
| 116 | | - Teleterm: keyboard is problematic, and cursor doesn't show. Also, the |
| 117 | | schematic shows it using the old-style keyboard, however this |
| 118 | | must be wrong since the computer has function keys, which are |
| 119 | | only available on the new keyboard. |
| 121 | - Teleterm: keyboard has multiple severe problems. Also, the schematic shows |
| 122 | it using the old-style keyboard, however this must be wrong since |
| 123 | the computer has function keys, which are only available on the |
| 124 | new keyboard. |
| 120 | 125 | |
| 121 | 126 | - Mouse: a few programs support the use of a serial mouse which interfaced |
| 122 | 127 | directly to the Z80PIO. However there's little info to be found. |
| r243482 | r243483 | |
| 287 | 292 | AM_RANGE(0x000b, 0x000b) AM_MIRROR(0xff10) AM_READWRITE(mbee_0b_r, mbee_0b_w) |
| 288 | 293 | AM_RANGE(0x000c, 0x000c) AM_MIRROR(0xff00) AM_READWRITE(m6545_status_r, m6545_index_w) |
| 289 | 294 | AM_RANGE(0x000d, 0x000d) AM_MIRROR(0xff10) AM_READWRITE(m6545_data_r, m6545_data_w) |
| 290 | | AM_RANGE(0x001c, 0x001c) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r,mbeeppc_1c_w) |
| 295 | AM_RANGE(0x001c, 0x001c) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r, mbeeppc_1c_w) |
| 291 | 296 | AM_RANGE(0x010a, 0x010a) AM_MIRROR(0xfe10) AM_READWRITE(mbeepc_telcom_high_r, mbeeic_0a_w) |
| 292 | 297 | ADDRESS_MAP_END |
| 293 | 298 | |
| r243482 | r243483 | |
| 311 | 316 | AM_RANGE(0x0b, 0x0b) AM_READWRITE(mbee_0b_r, mbee_0b_w) |
| 312 | 317 | AM_RANGE(0x0c, 0x0c) AM_READWRITE(m6545_status_r, m6545_index_w) |
| 313 | 318 | AM_RANGE(0x0d, 0x0d) AM_READWRITE(m6545_data_r, m6545_data_w) |
| 314 | | AM_RANGE(0x1c, 0x1f) AM_READWRITE(mbeeppc_1c_r,mbee256_1c_w) |
| 319 | AM_RANGE(0x1c, 0x1f) AM_READWRITE(mbeeppc_1c_r, mbee256_1c_w) |
| 315 | 320 | AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write) |
| 316 | 321 | AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w) |
| 317 | 322 | AM_RANGE(0x50, 0x57) AM_WRITE(mbee128_50_w) |
| r243482 | r243483 | |
| 331 | 336 | AM_RANGE(0x000d, 0x000d) AM_MIRROR(0xff00) AM_READWRITE(m6545_data_r, m6545_data_w) |
| 332 | 337 | // AM_RANGE(0x0010, 0x0013) AM_MIRROR(0xff00) Optional SN76489AN audio chip |
| 333 | 338 | AM_RANGE(0x0018, 0x001b) AM_MIRROR(0xff00) AM_READ(mbee256_18_r) |
| 334 | | AM_RANGE(0x001c, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r,mbee256_1c_w) |
| 339 | AM_RANGE(0x001c, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r, mbee256_1c_w) |
| 335 | 340 | AM_RANGE(0x0044, 0x0047) AM_MIRROR(0xff00) AM_DEVREADWRITE("fdc", wd2793_t, read, write) |
| 336 | 341 | AM_RANGE(0x0048, 0x004f) AM_MIRROR(0xff00) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w) |
| 337 | 342 | AM_RANGE(0x0050, 0x0057) AM_MIRROR(0xff00) AM_WRITE(mbee256_50_w) |
| r243482 | r243483 | |
| 446 | 451 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("(Insert)") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) |
| 447 | 452 | PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 448 | 453 | |
| 449 | | /* Enhanced options not available on real hardware */ |
| 454 | // Autorun on quickload |
| 450 | 455 | PORT_START("CONFIG") |
| 451 | 456 | PORT_CONFNAME( 0x01, 0x01, "Autorun on Quickload") |
| 452 | 457 | PORT_CONFSETTING( 0x00, DEF_STR(No)) |
| 453 | 458 | PORT_CONFSETTING( 0x01, DEF_STR(Yes)) |
| 459 | // Wire links on motherboard |
| 460 | PORT_CONFNAME( 0xc0, 0x80, "PIO B7") |
| 461 | PORT_CONFSETTING( 0x00, "VS") // sync pulse to enable telcom clock |
| 462 | PORT_CONFSETTING( 0x40, "RTC") // optional board usually not fitted |
| 463 | PORT_CONFSETTING( 0x80, "Not used") // default resistor to vcc |
| 464 | PORT_CONFSETTING( 0xc0, "Centronics") // busy line |
| 454 | 465 | INPUT_PORTS_END |
| 455 | 466 | |
| 456 | 467 | static INPUT_PORTS_START( mbee256 ) |
| r243482 | r243483 | |
| 574 | 585 | |
| 575 | 586 | PORT_START("X14") /* IN6 KEY ROW 6 [+70] */ |
| 576 | 587 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Alt") PORT_CODE(KEYCODE_LALT) PORT_CODE(KEYCODE_RALT) |
| 588 | |
| 589 | // Autorun on quickload |
| 590 | PORT_START("CONFIG") |
| 591 | PORT_CONFNAME( 0x01, 0x01, "Autorun on Quickload") |
| 592 | PORT_CONFSETTING( 0x00, DEF_STR(No)) |
| 593 | PORT_CONFSETTING( 0x01, DEF_STR(Yes)) |
| 594 | // Wire links on motherboard |
| 595 | PORT_CONFNAME( 0xc0, 0x80, "PIO B7") // default - do nothing |
| 596 | PORT_CONFSETTING( 0x00, "VS") // sync pulse to enable telcom clock |
| 597 | PORT_CONFSETTING( 0x40, "RTC") // optional board usually not fitted |
| 598 | PORT_CONFSETTING( 0x80, "Not used") // default resistor to vcc |
| 599 | PORT_CONFSETTING( 0xc0, "Centronics") // busy line |
| 577 | 600 | INPUT_PORTS_END |
| 578 | 601 | |
| 579 | 602 | static const z80_daisy_config mbee_daisy_chain[] = |
| r243482 | r243483 | |
| 657 | 680 | MCFG_MC6845_CHAR_WIDTH(8) |
| 658 | 681 | MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbee_update_row) |
| 659 | 682 | MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr) |
| 683 | MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs)) |
| 660 | 684 | |
| 661 | 685 | MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2) |
| 662 | 686 | MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2) |
| r243482 | r243483 | |
| 677 | 701 | MCFG_CPU_PROGRAM_MAP(mbeeic_mem) |
| 678 | 702 | MCFG_CPU_IO_MAP(mbeeic_io) |
| 679 | 703 | MCFG_CPU_CONFIG(mbee_daisy_chain) |
| 680 | | //MCFG_CPU_VBLANK_INT_DRIVER("screen", mbee_state, mbee_interrupt) |
| 681 | 704 | |
| 682 | 705 | MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee) |
| 683 | 706 | |
| r243482 | r243483 | |
| 698 | 721 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", mbeeic) |
| 699 | 722 | |
| 700 | 723 | MCFG_PALETTE_ADD("palette", 96) |
| 701 | | MCFG_PALETTE_INIT_OWNER(mbee_state,mbeeic) |
| 724 | MCFG_PALETTE_INIT_OWNER(mbee_state, mbeeic) |
| 702 | 725 | |
| 703 | | MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeic) |
| 726 | MCFG_VIDEO_START_OVERRIDE(mbee_state, mbeeic) |
| 704 | 727 | |
| 705 | 728 | /* sound hardware */ |
| 706 | 729 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r243482 | r243483 | |
| 715 | 738 | MCFG_MC6845_CHAR_WIDTH(8) |
| 716 | 739 | MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeic_update_row) |
| 717 | 740 | MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr) |
| 741 | MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs)) |
| 718 | 742 | |
| 719 | 743 | MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2) |
| 720 | 744 | MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2) |
| r243482 | r243483 | |
| 742 | 766 | |
| 743 | 767 | static MACHINE_CONFIG_DERIVED( mbeepc85b, mbeepc85 ) |
| 744 | 768 | MCFG_PALETTE_MODIFY("palette") |
| 745 | | MCFG_PALETTE_INIT_OWNER(mbee_state,mbeepc85b) |
| 769 | MCFG_PALETTE_INIT_OWNER(mbee_state, mbeepc85b) |
| 746 | 770 | MACHINE_CONFIG_END |
| 747 | 771 | |
| 748 | 772 | static MACHINE_CONFIG_DERIVED( mbeeppc, mbeeic ) |
| 749 | 773 | MCFG_CPU_MODIFY( "maincpu" ) |
| 750 | 774 | MCFG_CPU_PROGRAM_MAP(mbeeppc_mem) |
| 751 | 775 | MCFG_CPU_IO_MAP(mbeeppc_io) |
| 752 | | MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeppc) |
| 776 | MCFG_VIDEO_START_OVERRIDE(mbee_state, mbeeppc) |
| 753 | 777 | MCFG_GFXDECODE_MODIFY("gfxdecode", mbeeppc) |
| 754 | 778 | MCFG_PALETTE_MODIFY("palette") |
| 755 | 779 | MCFG_PALETTE_ENTRIES(16) |
| 756 | | MCFG_PALETTE_INIT_OWNER(mbee_state,mbeeppc) |
| 780 | MCFG_PALETTE_INIT_OWNER(mbee_state, mbeeppc) |
| 757 | 781 | |
| 758 | 782 | MCFG_DEVICE_REMOVE("crtc") |
| 759 | 783 | MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8) |
| r243482 | r243483 | |
| 761 | 785 | MCFG_MC6845_CHAR_WIDTH(8) |
| 762 | 786 | MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeppc_update_row) |
| 763 | 787 | MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr) |
| 788 | MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs)) |
| 764 | 789 | MACHINE_CONFIG_END |
| 765 | 790 | |
| 766 | 791 | static MACHINE_CONFIG_DERIVED( mbee56, mbeeic ) |
| r243482 | r243483 | |
| 775 | 800 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats) |
| 776 | 801 | MACHINE_CONFIG_END |
| 777 | 802 | |
| 803 | static MACHINE_CONFIG_DERIVED( mbee128, mbee56 ) |
| 804 | MCFG_CPU_MODIFY( "maincpu" ) |
| 805 | MCFG_CPU_PROGRAM_MAP(mbee256_mem) |
| 806 | MCFG_CPU_IO_MAP(mbee128_io) |
| 807 | MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee128) |
| 808 | MACHINE_CONFIG_END |
| 809 | |
| 778 | 810 | static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc ) |
| 779 | 811 | MCFG_CPU_MODIFY( "maincpu" ) |
| 780 | 812 | MCFG_CPU_PROGRAM_MAP(mbee256_mem) |
| r243482 | r243483 | |
| 787 | 819 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats) |
| 788 | 820 | MACHINE_CONFIG_END |
| 789 | 821 | |
| 790 | | static MACHINE_CONFIG_DERIVED( mbee128, mbee128p ) |
| 791 | | MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeic) |
| 792 | | MACHINE_CONFIG_END |
| 793 | | |
| 794 | 822 | static MACHINE_CONFIG_DERIVED( mbee256, mbee128p ) |
| 795 | 823 | MCFG_CPU_MODIFY( "maincpu" ) |
| 796 | 824 | MCFG_CPU_PROGRAM_MAP(mbee256_mem) |
| r243482 | r243483 | |
| 1077 | 1105 | ROM_END |
| 1078 | 1106 | |
| 1079 | 1107 | ROM_START( mbee128 ) // Standard 128k (CIAB is the same thing with half the ram) |
| 1080 | | ROM_REGION(0x10000, "rams", ROMREGION_ERASEFF) |
| 1108 | ROM_REGION(0x20000, "rams", ROMREGION_ERASEFF) |
| 1081 | 1109 | |
| 1082 | | ROM_REGION(0x7000, "roms", ROMREGION_ERASEFF) |
| 1110 | ROM_REGION(0x8000, "roms", 0) |
| 1083 | 1111 | ROM_LOAD("bn54.bin", 0x0000, 0x2000, CRC(995c53db) SHA1(46e1a5cfd5795b8cf528bacf9dc79398ff7d64af) ) |
| 1084 | 1112 | |
| 1085 | 1113 | ROM_REGION(0x2000, "gfx", 0) |
trunk/src/mess/includes/mbee.h
| r243482 | r243483 | |
| 72 | 72 | , m_screen(*this, "screen") |
| 73 | 73 | { } |
| 74 | 74 | |
| 75 | | DECLARE_WRITE8_MEMBER( mbee_04_w ); |
| 76 | | DECLARE_WRITE8_MEMBER( mbee_06_w ); |
| 77 | | DECLARE_READ8_MEMBER( mbee_07_r ); |
| 78 | | DECLARE_READ8_MEMBER( mbeeic_0a_r ); |
| 79 | | DECLARE_WRITE8_MEMBER( mbeeic_0a_w ); |
| 80 | | DECLARE_READ8_MEMBER( mbeepc_telcom_low_r ); |
| 81 | | DECLARE_READ8_MEMBER( mbeepc_telcom_high_r ); |
| 82 | | DECLARE_READ8_MEMBER( mbee256_speed_low_r ); |
| 83 | | DECLARE_READ8_MEMBER( mbee256_speed_high_r ); |
| 84 | | DECLARE_READ8_MEMBER( mbee256_18_r ); |
| 85 | | DECLARE_WRITE8_MEMBER( mbee64_50_w ); |
| 86 | | DECLARE_WRITE8_MEMBER( mbee128_50_w ); |
| 87 | | DECLARE_WRITE8_MEMBER( mbee256_50_w ); |
| 88 | | DECLARE_READ8_MEMBER( m6545_status_r ); |
| 89 | | DECLARE_WRITE8_MEMBER( m6545_index_w ); |
| 90 | | DECLARE_READ8_MEMBER( m6545_data_r ); |
| 91 | | DECLARE_WRITE8_MEMBER( m6545_data_w ); |
| 92 | | DECLARE_READ8_MEMBER( mbee_low_r ); |
| 93 | | DECLARE_READ8_MEMBER( mbee_high_r ); |
| 94 | | DECLARE_READ8_MEMBER( mbeeic_high_r ); |
| 95 | | DECLARE_WRITE8_MEMBER( mbeeic_high_w ); |
| 96 | | DECLARE_WRITE8_MEMBER( mbee_low_w ); |
| 97 | | DECLARE_WRITE8_MEMBER( mbee_high_w ); |
| 98 | | DECLARE_READ8_MEMBER( mbeeic_08_r ); |
| 99 | | DECLARE_WRITE8_MEMBER( mbeeic_08_w ); |
| 100 | | DECLARE_READ8_MEMBER( mbee_0b_r ); |
| 101 | | DECLARE_WRITE8_MEMBER( mbee_0b_w ); |
| 102 | | DECLARE_READ8_MEMBER( mbeeppc_1c_r ); |
| 103 | | DECLARE_WRITE8_MEMBER( mbeeppc_1c_w ); |
| 104 | | DECLARE_WRITE8_MEMBER( mbee256_1c_w ); |
| 105 | | DECLARE_READ8_MEMBER( mbeeppc_low_r ); |
| 106 | | DECLARE_READ8_MEMBER( mbeeppc_high_r ); |
| 107 | | DECLARE_WRITE8_MEMBER( mbeeppc_high_w ); |
| 108 | | DECLARE_WRITE8_MEMBER( mbeeppc_low_w ); |
| 109 | | DECLARE_WRITE8_MEMBER( pio_port_a_w ); |
| 110 | | DECLARE_WRITE8_MEMBER( pio_port_b_w ); |
| 111 | | DECLARE_READ8_MEMBER( pio_port_b_r ); |
| 112 | | DECLARE_WRITE_LINE_MEMBER( pio_ardy ); |
| 75 | DECLARE_WRITE8_MEMBER(mbee_04_w); |
| 76 | DECLARE_WRITE8_MEMBER(mbee_06_w); |
| 77 | DECLARE_READ8_MEMBER(mbee_07_r); |
| 78 | DECLARE_READ8_MEMBER(mbeeic_0a_r); |
| 79 | DECLARE_WRITE8_MEMBER(mbeeic_0a_w); |
| 80 | DECLARE_READ8_MEMBER(mbeepc_telcom_low_r); |
| 81 | DECLARE_READ8_MEMBER(mbeepc_telcom_high_r); |
| 82 | DECLARE_READ8_MEMBER(mbee256_speed_low_r); |
| 83 | DECLARE_READ8_MEMBER(mbee256_speed_high_r); |
| 84 | DECLARE_READ8_MEMBER(mbee256_18_r); |
| 85 | DECLARE_WRITE8_MEMBER(mbee64_50_w); |
| 86 | DECLARE_WRITE8_MEMBER(mbee128_50_w); |
| 87 | DECLARE_WRITE8_MEMBER(mbee256_50_w); |
| 88 | DECLARE_READ8_MEMBER(m6545_status_r); |
| 89 | DECLARE_WRITE8_MEMBER(m6545_index_w); |
| 90 | DECLARE_READ8_MEMBER(m6545_data_r); |
| 91 | DECLARE_WRITE8_MEMBER(m6545_data_w); |
| 92 | DECLARE_READ8_MEMBER(mbee_low_r); |
| 93 | DECLARE_READ8_MEMBER(mbee_high_r); |
| 94 | DECLARE_READ8_MEMBER(mbeeic_high_r); |
| 95 | DECLARE_WRITE8_MEMBER(mbeeic_high_w); |
| 96 | DECLARE_WRITE8_MEMBER(mbee_low_w); |
| 97 | DECLARE_WRITE8_MEMBER(mbee_high_w); |
| 98 | DECLARE_READ8_MEMBER(mbeeic_08_r); |
| 99 | DECLARE_WRITE8_MEMBER(mbeeic_08_w); |
| 100 | DECLARE_READ8_MEMBER(mbee_0b_r); |
| 101 | DECLARE_WRITE8_MEMBER(mbee_0b_w); |
| 102 | DECLARE_READ8_MEMBER(mbeeppc_1c_r); |
| 103 | DECLARE_WRITE8_MEMBER(mbeeppc_1c_w); |
| 104 | DECLARE_WRITE8_MEMBER(mbee256_1c_w); |
| 105 | DECLARE_READ8_MEMBER(mbeeppc_low_r); |
| 106 | DECLARE_READ8_MEMBER(mbeeppc_high_r); |
| 107 | DECLARE_WRITE8_MEMBER(mbeeppc_high_w); |
| 108 | DECLARE_WRITE8_MEMBER(mbeeppc_low_w); |
| 109 | DECLARE_WRITE8_MEMBER(pio_port_a_w); |
| 110 | DECLARE_WRITE8_MEMBER(pio_port_b_w); |
| 111 | DECLARE_READ8_MEMBER(pio_port_b_r); |
| 112 | DECLARE_WRITE_LINE_MEMBER(pio_ardy); |
| 113 | DECLARE_WRITE_LINE_MEMBER(crtc_vs); |
| 113 | 114 | DECLARE_READ8_MEMBER(mbee_fdc_status_r); |
| 114 | 115 | DECLARE_WRITE8_MEMBER(mbee_fdc_motor_w); |
| 115 | 116 | DECLARE_DRIVER_INIT(mbeepc85); |
| r243482 | r243483 | |
| 161 | 162 | private: |
| 162 | 163 | bool m_is_premium; |
| 163 | 164 | size_t m_size; |
| 164 | | UINT8 m_clock_pulse; |
| 165 | bool m_b7_rtc; |
| 166 | bool m_b7_vs; |
| 165 | 167 | UINT8 m_mbee256_key_available; |
| 166 | 168 | UINT8 m_mbee256_was_pressed[15]; |
| 167 | 169 | UINT8 m_mbee256_q[20]; |
trunk/src/mess/video/mbee.c
| r243482 | r243483 | |
| 28 | 28 | |
| 29 | 29 | #include "includes/mbee.h" |
| 30 | 30 | |
| 31 | WRITE_LINE_MEMBER( mbee_state::crtc_vs ) |
| 32 | { |
| 33 | m_b7_vs = state; |
| 34 | if ((m_io_config->read() & 0xc0) == 0) // VS selected in config menu |
| 35 | m_pio->port_b_write(pio_port_b_r(generic_space(),0,0xff)); |
| 36 | } |
| 31 | 37 | |
| 32 | 38 | /*********************************************************** |
| 33 | 39 | |
| r243482 | r243483 | |
| 314 | 320 | m_sy6545_status &= 0x80; // turn off lpen_strobe |
| 315 | 321 | break; |
| 316 | 322 | case 31: |
| 317 | | /* This firstly pushes the contents of the transparent registers onto the MA lines, |
| 318 | | then increments the address, then sets update strobe on. */ |
| 323 | // This firstly pushes the contents of the transparent registers onto the MA lines, |
| 324 | // then increments the address, then sets update strobe on. |
| 319 | 325 | addr = (m_sy6545_reg[18] << 8) | m_sy6545_reg[19]; |
| 320 | 326 | keyboard_matrix_r(addr); |
| 321 | 327 | m_sy6545_reg[19]++; |
| r243482 | r243483 | |
| 346 | 352 | memcpy(m_p_gfxram, memregion("gfx")->base() + (((data & 0x30) == 0x20) << 11), 0x800); |
| 347 | 353 | break; |
| 348 | 354 | case 31: |
| 349 | | /* This firstly pushes the contents of the transparent registers onto the MA lines, |
| 350 | | then increments the address, then sets update strobe on. */ |
| 355 | // This firstly pushes the contents of the transparent registers onto the MA lines, |
| 356 | // then increments the address, then sets update strobe on. |
| 351 | 357 | addr = (m_sy6545_reg[18] << 8) | m_sy6545_reg[19]; |
| 352 | 358 | keyboard_matrix_r(addr); |
| 353 | 359 | m_sy6545_reg[19]++; |
| r243482 | r243483 | |
| 369 | 375 | |
| 370 | 376 | ************************************************************/ |
| 371 | 377 | |
| 372 | | VIDEO_START_MEMBER(mbee_state,mbee) |
| 378 | VIDEO_START_MEMBER( mbee_state, mbee ) |
| 373 | 379 | { |
| 374 | 380 | m_p_videoram = memregion("videoram")->base(); |
| 375 | 381 | m_p_gfxram = memregion("gfx")->base()+0x1000; |
| 376 | 382 | m_is_premium = 0; |
| 377 | 383 | } |
| 378 | 384 | |
| 379 | | VIDEO_START_MEMBER(mbee_state,mbeeic) |
| 385 | VIDEO_START_MEMBER( mbee_state, mbeeic ) |
| 380 | 386 | { |
| 381 | 387 | m_p_videoram = memregion("videoram")->base(); |
| 382 | 388 | m_p_colorram = memregion("colorram")->base(); |
| r243482 | r243483 | |
| 384 | 390 | m_is_premium = 0; |
| 385 | 391 | } |
| 386 | 392 | |
| 387 | | VIDEO_START_MEMBER(mbee_state,mbeeppc) |
| 393 | VIDEO_START_MEMBER( mbee_state, mbeeppc ) |
| 388 | 394 | { |
| 389 | 395 | m_p_videoram = memregion("videoram")->base(); |
| 390 | 396 | m_p_colorram = memregion("colorram")->base(); |
| r243482 | r243483 | |
| 546 | 552 | |
| 547 | 553 | ************************************************************/ |
| 548 | 554 | |
| 549 | | PALETTE_INIT_MEMBER(mbee_state,mbeeic) |
| 555 | PALETTE_INIT_MEMBER( mbee_state, mbeeic ) |
| 550 | 556 | { |
| 551 | 557 | const UINT8 *color_prom = memregion("proms")->base(); |
| 552 | 558 | UINT16 i; |
| r243482 | r243483 | |
| 574 | 580 | } |
| 575 | 581 | |
| 576 | 582 | |
| 577 | | PALETTE_INIT_MEMBER(mbee_state,mbeepc85b) |
| 583 | PALETTE_INIT_MEMBER( mbee_state, mbeepc85b ) |
| 578 | 584 | { |
| 579 | 585 | const UINT8 *color_prom = memregion("proms")->base(); |
| 580 | 586 | UINT16 i; |
| r243482 | r243483 | |
| 604 | 610 | } |
| 605 | 611 | |
| 606 | 612 | |
| 607 | | PALETTE_INIT_MEMBER(mbee_state,mbeeppc) |
| 613 | PALETTE_INIT_MEMBER( mbee_state, mbeeppc ) |
| 608 | 614 | { |
| 609 | 615 | UINT16 i; |
| 610 | 616 | UINT8 r, b, g; |