trunk/src/mess/drivers/coco3.c
| r29372 | r29373 | |
| 262 | 262 | MCFG_PIA_IRQB_HANDLER(WRITELINE(coco_state, pia1_firq_b)) |
| 263 | 263 | |
| 264 | 264 | MCFG_CASSETTE_ADD("cassette", coco_state::coco_cassette_interface) |
| 265 | | |
| 266 | | MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL) |
| 267 | | // default 600 baud? |
| 268 | | |
| 265 | MCFG_BITBANGER_ADD(BITBANGER_TAG, coco_state::coco_bitbanger_config) |
| 269 | 266 | MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_state::cartridge_config, coco_cart, "fdcv11") |
| 270 | 267 | MCFG_COCO_VHD_ADD(VHD0_TAG) |
| 271 | 268 | MCFG_COCO_VHD_ADD(VHD1_TAG) |
trunk/src/mess/drivers/coco12.c
| r29372 | r29373 | |
| 293 | 293 | MCFG_SAM6883_ADD(SAM_TAG, XTAL_3_579545MHz, coco12_state::sam6883_config) |
| 294 | 294 | MCFG_SAM6883_RES_CALLBACK(READ8(coco12_state, sam_read)) |
| 295 | 295 | MCFG_CASSETTE_ADD("cassette", coco_state::coco_cassette_interface) |
| 296 | | |
| 297 | | MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL) |
| 298 | | // default 600 baud? |
| 299 | | |
| 296 | MCFG_BITBANGER_ADD(BITBANGER_TAG, coco_state::coco_bitbanger_config) |
| 300 | 297 | MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_state::cartridge_config, coco_cart, "pak") |
| 301 | 298 | |
| 302 | 299 | // video hardware |
trunk/src/mess/machine/coco.c
| r29372 | r29373 | |
| 88 | 88 | m_cococart(*this, CARTRIDGE_TAG), |
| 89 | 89 | m_ram(*this, RAM_TAG), |
| 90 | 90 | m_cassette(*this, "cassette"), |
| 91 | | m_rs232(*this, RS232_TAG), |
| 91 | m_bitbanger(*this, BITBANGER_TAG), |
| 92 | 92 | m_vhd_0(*this, VHD0_TAG), |
| 93 | 93 | m_vhd_1(*this, VHD1_TAG) |
| 94 | 94 | { |
| r29372 | r29373 | |
| 479 | 479 | || (ram_size >= 0x8000 && (m_pia_0->b_output() & 0x80)); |
| 480 | 480 | |
| 481 | 481 | // serial in (PB0) |
| 482 | | bool serial_in = (m_rs232 != NULL) && (m_rs232->rxd_r() ? true : false); |
| 482 | bool serial_in = (m_bitbanger != NULL) && (m_bitbanger->input() ? true : false); |
| 483 | 483 | |
| 484 | 484 | // composite the results |
| 485 | 485 | return (memory_sense ? 0x04 : 0x00) |
| r29372 | r29373 | |
| 963 | 963 | else |
| 964 | 964 | { |
| 965 | 965 | /* output bitbanger if present (only on CoCos) */ |
| 966 | | if (m_rs232 != NULL) |
| 966 | if (m_bitbanger != NULL) |
| 967 | 967 | { |
| 968 | | m_rs232->write_txd(prinout ? 1 : 0); |
| 968 | m_bitbanger->output(prinout ? 1 : 0); |
| 969 | 969 | } |
| 970 | 970 | } |
| 971 | 971 | } |
| r29372 | r29373 | |
| 1020 | 1020 | |
| 1021 | 1021 | |
| 1022 | 1022 | //------------------------------------------------- |
| 1023 | // bitbanger_changed |
| 1024 | //------------------------------------------------- |
| 1025 | |
| 1026 | void coco_state::bitbanger_changed(bool newvalue) |
| 1027 | { |
| 1028 | // do nothing |
| 1029 | } |
| 1030 | |
| 1031 | |
| 1032 | |
| 1033 | //------------------------------------------------- |
| 1034 | // bitbanger_callback |
| 1035 | //------------------------------------------------- |
| 1036 | |
| 1037 | WRITE_LINE_MEMBER( coco_state::bitbanger_callback ) |
| 1038 | { |
| 1039 | bitbanger_changed(state ? true : false); |
| 1040 | } |
| 1041 | |
| 1042 | |
| 1043 | |
| 1044 | //------------------------------------------------- |
| 1045 | // bitbanger_config |
| 1046 | //------------------------------------------------- |
| 1047 | |
| 1048 | const bitbanger_config coco_state::coco_bitbanger_config = |
| 1049 | { |
| 1050 | DEVCB_DRIVER_LINE_MEMBER(coco_state, bitbanger_callback), /* callback */ |
| 1051 | BITBANGER_PRINTER, /* default mode */ |
| 1052 | BITBANGER_600, /* default output baud */ |
| 1053 | BITBANGER_0PERCENT /* default fine tune adjustment */ |
| 1054 | }; |
| 1055 | |
| 1056 | |
| 1057 | |
| 1058 | //------------------------------------------------- |
| 1023 | 1059 | // poll_hires_joystick |
| 1024 | 1060 | //------------------------------------------------- |
| 1025 | 1061 | |
trunk/src/mess/includes/coco.h
| r29372 | r29373 | |
| 14 | 14 | |
| 15 | 15 | #include "emu.h" |
| 16 | 16 | #include "imagedev/cassette.h" |
| 17 | | #include "bus/rs232/rs232.h" |
| 17 | #include "imagedev/bitbngr.h" |
| 18 | 18 | #include "machine/6821pia.h" |
| 19 | 19 | #include "bus/coco/cococart.h" |
| 20 | 20 | #include "machine/coco_vhd.h" |
| r29372 | r29373 | |
| 47 | 47 | #define SCREEN_TAG "screen" |
| 48 | 48 | #define DAC_TAG "dac" |
| 49 | 49 | #define CARTRIDGE_TAG "ext" |
| 50 | | #define RS232_TAG "rs232" |
| 50 | #define BITBANGER_TAG "bitbanger" |
| 51 | 51 | #define VHD0_TAG "vhd0" |
| 52 | 52 | #define VHD1_TAG "vhd1" |
| 53 | 53 | |
| r29372 | r29373 | |
| 92 | 92 | required_device<cococart_slot_device> m_cococart; |
| 93 | 93 | required_device<ram_device> m_ram; |
| 94 | 94 | required_device<cassette_image_device> m_cassette; |
| 95 | | optional_device<rs232_port_device> m_rs232; |
| 95 | optional_device<bitbanger_device> m_bitbanger; |
| 96 | 96 | optional_device<coco_vhd_image_device> m_vhd_0; |
| 97 | 97 | optional_device<coco_vhd_image_device> m_vhd_1; |
| 98 | 98 | |
| 99 | 99 | static const cococart_interface cartridge_config; |
| 100 | static const bitbanger_config coco_bitbanger_config; |
| 100 | 101 | static const cassette_interface coco_cassette_interface; |
| 101 | 102 | |
| 102 | 103 | // driver update handlers |
| 103 | 104 | DECLARE_INPUT_CHANGED_MEMBER(keyboard_changed); |
| 104 | 105 | DECLARE_INPUT_CHANGED_MEMBER(joystick_mode_changed); |
| 106 | static void bitbanger_callback(running_machine &machine, UINT8 bit); |
| 105 | 107 | |
| 106 | 108 | // IO |
| 107 | 109 | virtual DECLARE_READ8_MEMBER( ff00_read ); |
| r29372 | r29373 | |
| 149 | 151 | // changed handlers |
| 150 | 152 | virtual void pia1_pa_changed(void); |
| 151 | 153 | virtual void pia1_pb_changed(void); |
| 154 | virtual void bitbanger_changed(bool newvalue); |
| 152 | 155 | |
| 153 | 156 | // miscellaneous |
| 154 | 157 | virtual void update_keyboard_input(UINT8 value, UINT8 z); |
| r29372 | r29373 | |
| 211 | 214 | void poll_hires_joystick(void); |
| 212 | 215 | void update_cassout(int cassout); |
| 213 | 216 | void update_prinout(bool prinout); |
| 217 | DECLARE_WRITE_LINE_MEMBER( bitbanger_callback ); |
| 214 | 218 | void diecom_lightgun_clock(void); |
| 215 | 219 | |
| 216 | 220 | // thin wrappers for PIA output |