summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine
diff options
context:
space:
mode:
author James Wallace <james-wallace-ghub@users.noreply.github.com>2020-08-07 19:45:43 +0100
committer James Wallace <james-wallace-ghub@users.noreply.github.com>2020-08-07 19:46:43 +0100
commit53032d52aa6877b989c3a031314a2ff580a168a6 (patch)
treed614f1d019814892f189dd31d3860f1281caaf5e /src/mame/machine
parent0b3d4ea41873b802f6e0d996d8712f5d2a4c2110 (diff)
-BACTA Datalogger: Moved to shared library, improved message handling
Diffstat (limited to 'src/mame/machine')
-rw-r--r--src/mame/machine/bacta_datalogger.cpp108
-rw-r--r--src/mame/machine/bacta_datalogger.h1
2 files changed, 95 insertions, 14 deletions
diff --git a/src/mame/machine/bacta_datalogger.cpp b/src/mame/machine/bacta_datalogger.cpp
index 6caddd70bf2..c21273222f5 100644
--- a/src/mame/machine/bacta_datalogger.cpp
+++ b/src/mame/machine/bacta_datalogger.cpp
@@ -58,7 +58,7 @@ WRITE_LINE_MEMBER(bacta_datalogger_device::update_serial)
set_rcv_rate(1200);
- output_rxd(1);
+// output_rxd(1);
}
void bacta_datalogger_device::device_reset()
@@ -114,26 +114,108 @@ void bacta_datalogger_device::rcv_complete()
data = get_received_char();
if (!is_receive_parity_error())
{
- if (data == 0x00)//clean up logging
+ if (data != 0x00)
{
if (LOG_DATA)
{
- logerror("Received: %02x () \n",data);
+ switch (data)
+ {
+ case 0x01:
+ logerror("(%c) Prize 1 vend or 0x01\n",data);
+ break;
+ case 0x02:
+ logerror("(%c) Prize 2 vend or 0x02\n",data);
+ break;
+ case 0x03:
+ logerror("(%c) Prize 3 vend or 0x03\n",data);
+ break;
+ case 0x04:
+ logerror("(%c) Prize 4 vend or 0x04\n",data);
+ break;
+ case 0x05:
+ logerror("(%c) Remote Credit or 0x05\n",data);
+ break;
+ case 0x07:
+ logerror("(%c) Idle or 0x07\n",data);
+ break;
+ case 0x08:
+ logerror("(%c) Change or 0x08\n",data);
+ break;
+ case 0x09:
+ case 0x0a:
+ case 0x0b:
+ case 0x0c:
+ case 0x0d:
+ case 0x0e:
+ case 0x0f:
+ logerror("(%c) User defined message or 0x%x\n",data,data);
+ break;
+ case 0x2b:
+ logerror("(%c) Cashbox door open 0x2b\n",data);
+ case 0x2c:
+ logerror("(%c) Cashbox door closed 0x2c\n",data);
+ case 0x2d:
+ logerror("(%c) Service door open 0x2d\n",data);
+ case 0x2e:
+ logerror("(%c) Service door closed 0x2e\n",data);
+ case 0x61:
+ logerror("(%c) Coin Tube / Hopper Levels 0x61 \n",data);
+ break;
+ case 0x62:
+ logerror("(%c) Secondary message (0x%x), next byte is message length\n",data,data);
+ break;
+ case 0x63:
+ logerror("(%c) Critical Fault 0x63\n",data);
+ break;
+ case 0x64:
+ logerror("(%c) Non Critical Fault 0x64\n",data);
+ break;
+ case 0x65:
+ logerror("(%c) Manufacturer Message Header 0x65, next byte is message length\n",data);
+ break;
+ case 0x66:
+ logerror("(%c) Potential Parameter Data request 0x66, not currently supported\n",data);
+ break;
+ case 0x67:
+ logerror("(%c) Potential Parameter Report request 0x67, not currently supported\n",data);
+ break;
+ case 0x68:
+ logerror("(%c) Multi-Stake Multi-Game message 0x68\n",data);
+ break;
+ case 0x69:
+ logerror("(%c) Cashless source 0x69\n",data);
+ break;
+ case 0x70:
+ case 0x71:
+ case 0x72:
+ case 0x73:
+ case 0x74:
+ case 0x75:
+ case 0x76:
+ case 0x77:
+ case 0x78:
+ case 0x79:
+ case 0x7a:
+ case 0x7b:
+ case 0x7c:
+ case 0x7d:
+ case 0x7e:
+ case 0x7f:
+ logerror("(%c) User defined message (0x%x), next byte is message length\n",data,data);
+ break;
+
+ default:
+ logerror("(%c) Received: %02x\n",data, data);
+ break;
+ }
+ m_output_char = 0x06;//ACK
+ queue();
}
-
}
- else
- {
- if (LOG_DATA)
- {
- logerror("Received: %02x (%c) \n",data, data);
- }
- }
- m_output_char = 0x06;//ACK
}
else
{
m_output_char = 0x15;//NAK
+ queue();
}
- queue();
} \ No newline at end of file
diff --git a/src/mame/machine/bacta_datalogger.h b/src/mame/machine/bacta_datalogger.h
index 63a069ff751..ce973c71c7a 100644
--- a/src/mame/machine/bacta_datalogger.h
+++ b/src/mame/machine/bacta_datalogger.h
@@ -35,7 +35,6 @@ private:
void queue();
devcb_write_line m_rxd_handler;
-
uint8_t m_output_char;
emu_timer *m_timer_poll;
};