trunk/src/mess/drivers/coco12.c
| r29366 | r29367 | |
| 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 | | MCFG_BITBANGER_ADD(BITBANGER_TAG, coco_state::coco_bitbanger_config) |
| 296 | |
| 297 | MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL) |
| 298 | // default 600 baud? |
| 299 | |
| 297 | 300 | MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_state::cartridge_config, coco_cart, "pak") |
| 298 | 301 | |
| 299 | 302 | // video hardware |
trunk/src/mess/drivers/coco3.c
| r29366 | r29367 | |
| 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 | | MCFG_BITBANGER_ADD(BITBANGER_TAG, coco_state::coco_bitbanger_config) |
| 265 | |
| 266 | MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL) |
| 267 | // default 600 baud? |
| 268 | |
| 266 | 269 | MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_state::cartridge_config, coco_cart, "fdcv11") |
| 267 | 270 | MCFG_COCO_VHD_ADD(VHD0_TAG) |
| 268 | 271 | MCFG_COCO_VHD_ADD(VHD1_TAG) |
trunk/src/mess/machine/coco.c
| r29366 | r29367 | |
| 88 | 88 | m_cococart(*this, CARTRIDGE_TAG), |
| 89 | 89 | m_ram(*this, RAM_TAG), |
| 90 | 90 | m_cassette(*this, "cassette"), |
| 91 | | m_bitbanger(*this, BITBANGER_TAG), |
| 91 | m_rs232(*this, RS232_TAG), |
| 92 | 92 | m_vhd_0(*this, VHD0_TAG), |
| 93 | 93 | m_vhd_1(*this, VHD1_TAG) |
| 94 | 94 | { |
| r29366 | r29367 | |
| 479 | 479 | || (ram_size >= 0x8000 && (m_pia_0->b_output() & 0x80)); |
| 480 | 480 | |
| 481 | 481 | // serial in (PB0) |
| 482 | | bool serial_in = (m_bitbanger != NULL) && (m_bitbanger->input() ? true : false); |
| 482 | bool serial_in = (m_rs232 != NULL) && (m_rs232->rxd_r() ? true : false); |
| 483 | 483 | |
| 484 | 484 | // composite the results |
| 485 | 485 | return (memory_sense ? 0x04 : 0x00) |
| r29366 | r29367 | |
| 963 | 963 | else |
| 964 | 964 | { |
| 965 | 965 | /* output bitbanger if present (only on CoCos) */ |
| 966 | | if (m_bitbanger != NULL) |
| 966 | if (m_rs232 != NULL) |
| 967 | 967 | { |
| 968 | | m_bitbanger->output(prinout ? 1 : 0); |
| 968 | m_rs232->write_txd(prinout ? 1 : 0); |
| 969 | 969 | } |
| 970 | 970 | } |
| 971 | 971 | } |
| r29366 | r29367 | |
| 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 | | //------------------------------------------------- |
| 1059 | 1023 | // poll_hires_joystick |
| 1060 | 1024 | //------------------------------------------------- |
| 1061 | 1025 | |
trunk/src/mess/includes/coco.h
| r29366 | r29367 | |
| 14 | 14 | |
| 15 | 15 | #include "emu.h" |
| 16 | 16 | #include "imagedev/cassette.h" |
| 17 | | #include "imagedev/bitbngr.h" |
| 17 | #include "bus/rs232/rs232.h" |
| 18 | 18 | #include "machine/6821pia.h" |
| 19 | 19 | #include "bus/coco/cococart.h" |
| 20 | 20 | #include "machine/coco_vhd.h" |
| r29366 | r29367 | |
| 47 | 47 | #define SCREEN_TAG "screen" |
| 48 | 48 | #define DAC_TAG "dac" |
| 49 | 49 | #define CARTRIDGE_TAG "ext" |
| 50 | | #define BITBANGER_TAG "bitbanger" |
| 50 | #define RS232_TAG "rs232" |
| 51 | 51 | #define VHD0_TAG "vhd0" |
| 52 | 52 | #define VHD1_TAG "vhd1" |
| 53 | 53 | |
| r29366 | r29367 | |
| 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<bitbanger_device> m_bitbanger; |
| 95 | optional_device<rs232_port_device> m_rs232; |
| 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; |
| 101 | 100 | static const cassette_interface coco_cassette_interface; |
| 102 | 101 | |
| 103 | 102 | // driver update handlers |
| 104 | 103 | DECLARE_INPUT_CHANGED_MEMBER(keyboard_changed); |
| 105 | 104 | DECLARE_INPUT_CHANGED_MEMBER(joystick_mode_changed); |
| 106 | | static void bitbanger_callback(running_machine &machine, UINT8 bit); |
| 107 | 105 | |
| 108 | 106 | // IO |
| 109 | 107 | virtual DECLARE_READ8_MEMBER( ff00_read ); |
| r29366 | r29367 | |
| 151 | 149 | // changed handlers |
| 152 | 150 | virtual void pia1_pa_changed(void); |
| 153 | 151 | virtual void pia1_pb_changed(void); |
| 154 | | virtual void bitbanger_changed(bool newvalue); |
| 155 | 152 | |
| 156 | 153 | // miscellaneous |
| 157 | 154 | virtual void update_keyboard_input(UINT8 value, UINT8 z); |
| r29366 | r29367 | |
| 214 | 211 | void poll_hires_joystick(void); |
| 215 | 212 | void update_cassout(int cassout); |
| 216 | 213 | void update_prinout(bool prinout); |
| 217 | | DECLARE_WRITE_LINE_MEMBER( bitbanger_callback ); |
| 218 | 214 | void diecom_lightgun_clock(void); |
| 219 | 215 | |
| 220 | 216 | // thin wrappers for PIA output |