summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/sg1000_exp/sk1100.h
blob: 4845fe09e1ca1d009dcc9f196c375657a1066c4a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// license:BSD-3-Clause
// copyright-holders:Curt Coder
/**********************************************************************

    Sega SK-1100 keyboard emulation

**********************************************************************/

#ifndef MAME_BUS_SG1000_EXP_SK1100_H
#define MAME_BUS_SG1000_EXP_SK1100_H

#pragma once


#include "sg1000exp.h"
#include "formats/sc3000_bit.h"
#include "imagedev/cassette.h"
#include "imagedev/printer.h"
#include "machine/i8255.h"


#define UPD9255_0_TAG   "upd9255_0" // "upd9255_1" is being used by the SF-7000 driver


//**************************************************************************
//  TYPE DEFINITIONS
//**************************************************************************

// ======================> sega_sk1100_device

class sega_sk1100_device : public device_t,
							public device_sg1000_expansion_slot_interface
{
public:
	// construction/destruction
	sega_sk1100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

	// optional information overrides
	virtual ioport_constructor device_input_ports() const override;

protected:
	// device-level overrides
	virtual void device_start() override;
	virtual void device_add_mconfig(machine_config &config) override;

	// device_sg1000_expansion_slot_interface overrides
	virtual DECLARE_READ8_MEMBER(peripheral_r) override;
	virtual DECLARE_WRITE8_MEMBER(peripheral_w) override;
	virtual bool is_readable(uint8_t offset) override;

private:
	DECLARE_READ8_MEMBER( ppi_pa_r );
	DECLARE_READ8_MEMBER( ppi_pb_r );
	DECLARE_WRITE8_MEMBER( ppi_pc_w );

	required_device<cassette_image_device> m_cassette;
	required_device<i8255_device> m_ppi;
	required_ioport_array<8> m_pa;
	required_ioport_array<8> m_pb;

	/* keyboard state */
	uint8_t m_keylatch;
};


// device type definition
DECLARE_DEVICE_TYPE(SEGA_SK1100, sega_sk1100_device)


#endif // MAME_BUS_SG1000_EXP_SK1100_H
pan>"7002701.td0" size="324012" crc="0fb01c13" sha1="f0ef74e6ef3927e6ef213131accb94ec73c4aa88" offset="0"/> </dataarea> </part> </software> <software name="msdos211"> <description>MS-DOS v2.11</description> <year>198?</year> <publisher>&lt;unknown&gt;</publisher> <part name="flop1" interface="floppy_5_25"> <dataarea name="flop" size="360426"> <rom name="dos21102.td0" size="360426" crc="1b6def2a" sha1="322289ff80e767031255187dc4268dd8cf6b750f" offset="0"/> </dataarea> </part> <part name="flop2" interface="floppy_5_25"> <dataarea name="flop" size="479504"> <rom name="dos21103.td0" size="479504" crc="692fc4b3" sha1="8482f7b299f0ed9097e9361a5f8974de9bbb8b75" offset="0"/> </dataarea> </part> </software> <software name="multipln"> <description>Multiplan v1.05</description> <year>198?</year> <publisher>Microsoft</publisher> <part name="flop1" interface="floppy_5_25"> <dataarea name="flop" size="68466"> <rom name="mplan2.td0" size="68466" crc="0ddb4831" sha1="43966cb8f818cf1f343a874f932ee3c8e43114ae" offset="0"/> </dataarea> </part> </software> <software name="pfs"> <description>pfs</description> <year>198?</year> <publisher>&lt;unknown&gt;</publisher> <part name="flop1" interface="floppy_5_25"> <dataarea name="flop" size="153125"> <rom name="pfs-file.td0" size="153125" crc="95694a79" sha1="92877d1cc2053d37ac6ec3a7a0ca4b2180c7e7e4" offset="0"/> </dataarea> </part> <part name="flop2" interface="floppy_5_25"> <dataarea name="flop" size="152989"> <rom name="pfs-rept.td0" size="152989" crc="7c99d32e" sha1="afea3acb1f962f45d1c6e164982235b2700f9d01" offset="0"/> </dataarea> </part> <part name="flop3" interface="floppy_5_25"> <dataarea name="flop" size="153125"> <rom name="pfsfile1.td0" size="153125" crc="95694a79" sha1="92877d1cc2053d37ac6ec3a7a0ca4b2180c7e7e4" offset="0"/> </dataarea> </part> </software> <software name="t2kdos"> <description>t2kdos</description> <year>198?</year> <publisher>&lt;unknown&gt;</publisher> <part name="flop1" interface="floppy_5_25"> <dataarea name="flop" size="479504"> <rom name="t2kdos.td0" size="479504" crc="002a5e90" sha1="e000f946f1c45cdbefe1fb96a504a4f711b12ddd" offset="0"/> </dataarea> </part> </software> <software name="wordstar"> <description>WordStar v3.31</description> <year>1984</year> <publisher>MicroPro</publisher> <part name="flop1" interface="floppy_5_25"> <dataarea name="flop" size="202652"> <rom name="wdstar1.td0" size="202652" crc="9e918646" sha1="de05c2fb50e1a12ee87a40b37954c6eabc2e21df" offset="0"/> </dataarea> </part> <part name="flop2" interface="floppy_5_25"> <dataarea name="flop" size="200916"> <rom name="wdstar2.td0" size="200916" crc="77140e37" sha1="24d84e69b2bbb7e91f26000fa36b5e77adcd0293" offset="0"/> </dataarea> </part> <part name="flop3" interface="floppy_5_25"> <dataarea name="flop" size="181782"> <rom name="wdstar3.td0" size="181782" crc="4068c73e" sha1="2dbbcef9aee6bff6d47e06416b652a97365d75d8" offset="0"/> </dataarea> </part> </software> </softwarelist>