git.ucc.asn.au
/
uccvend-snackrom.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Magic support for simulator.
[uccvend-snackrom.git]
/
ROM2
/
coinmech.c
diff --git
a/ROM2/coinmech.c
b/ROM2/coinmech.c
index
a6c0e51
..
124c835
100644
(file)
--- a/
ROM2/coinmech.c
+++ b/
ROM2/coinmech.c
@@
-4,14
+4,14
@@
#define COINMECH_ID 0x20
volatile u8 last_byte;
#define COINMECH_ID 0x20
volatile u8 last_byte;
-volatile u8 packet_pos
= 0
;
-volatile u16 value_1
= 0
;
-volatile u8 value_2
= 0
;
-volatile u8 dec_point
= 0;
+volatile u8 packet_pos;
+volatile u16 value_1;
+volatile u8 value_2;
+volatile u8 dec_point
;
-volatile u16 coin_value
= 0
;
-u8 item_cost
= 0
;
-volatile bool have_change
= 0
;
+volatile u16 coin_value;
+u8 item_cost;
+volatile bool have_change;
u8 parity_test(u8 c) {
u8 parity = 0;
u8 parity_test(u8 c) {
u8 parity = 0;
@@
-51,7
+51,7
@@
void send_byte(u8 c) {
}
#define IS_CTRL(x) (x & 0x10) /* true if this packet is a control packet */
}
#define IS_CTRL(x) (x & 0x10) /* true if this packet is a control packet */
-void sci_interrupt() {
+void sci_interrupt
_coinmech
() {
u8 in;
in = _io_ports[M6811_SCDR];
u8 in;
in = _io_ports[M6811_SCDR];
@@
-72,7
+72,7
@@
void sci_interrupt() {
return;
}
return;
}
- if (packet_pos != 0 || IS_CTRL(in
&0x10
)) {
+ if (packet_pos != 0 || IS_CTRL(in)) {
in &= 0x0f;
switch (in) {
case 0x01:
in &= 0x0f;
switch (in) {
case 0x01:
@@
-130,3
+130,16
@@
void coin_cost(u16 cost) {
item_cost = cost;
while(coin_value); /* wait until coin mech cleared */
}
item_cost = cost;
while(coin_value); /* wait until coin mech cleared */
}
+
+void coinmech_init() {
+ packet_pos = 0;
+ value_1 = value_2 = 0;
+ dec_point = 0;
+ coin_value = 0;
+ item_cost = 0;
+ have_change = 0;
+ _io_ports[M6811_SCCR1] = 0x10;
+ _io_ports[M6811_SCCR2] = 0x2e;
+ _io_ports[M6811_BAUD] = 0x03;
+ send_byte(0xff);
+}
UCC
git Repository :: git.ucc.asn.au