add credit, add 013 debug timer message on keypress
[uccvend-snackrom.git] / ROM2 / main_basic.c
index 381db9c..0f9d3ea 100644 (file)
@@ -4,8 +4,7 @@
  * and snacks.
  */
 
-#define VERSION_STRING "X 20040625"
-
+#include "version.h"
 #include "display_basic.h"
 #include "keypad.h"
 #include "chime.h"
@@ -176,6 +175,20 @@ void send_keypress(u8 key) {
        send_string(" key." CRLF);
 }
 
+void send_timer() {
+       /* send a packet of the form KX with X being the key, or R for reset */
+       unsigned int t=get_timer_counter();
+
+       send_string("013 ");
+       sci_tx_buf[0] = '0'+(t/10000)%10;
+       sci_tx_buf[1] = '0'+(t/1000)%10;
+       sci_tx_buf[2] = '0'+(t/100)%10;
+       sci_tx_buf[3] = '0'+(t/10)%10;
+       sci_tx_buf[4] = '0'+t%10;
+       sci_tx_buf[5] = 0;
+       send_buffer(1);
+}
+
 void send_door_msg(bool open) {
        if (is_standalone()) return;
        sci_tx_buf[0] = '4';
@@ -355,19 +368,18 @@ void about() {
                return;
        }
        send_string(
-               "-----------------------------------------------------------------" CRLF
-               "    ROM2 (C) 2004 Bernard Blackham <[email protected]>" CRLF
-               "-----------------------------------------------------------------" CRLF
-               "                                        Revision " VERSION_STRING CRLF
-               "" CRLF
+               CRLF
+               " ROM2 (C) 2004 Bernard Blackham <[email protected]>" CRLF
+               " Revision: " VERSION_STRING "  Built: " DATEBUILT_STRING CRLF "" CRLF CRLF
                "   This snack machine was brought to you by " CRLF
                "    Bernard Blackham" CRLF
-               "    Mark Tearle" CRLF
                "    Harry McNally" CRLF
+               "    Mark Tearle" CRLF
                "    Michal Gornisiewicz" CRLF
+               "    Nick Bannon" CRLF
                "    and others." CRLF
                "" CRLF
-               " Another UCC project in action.         http://www.ucc.asn.au/" CRLF
+               " Another UCC project in action.      http://www.ucc.asn.au/" CRLF
        );
 }
 
@@ -407,6 +419,12 @@ void moo() {
        );
 }
 
+void identify() {
+       send_string(
+               "086 ROM " VERSION_STRING " " DATEBUILT_STRING CRLF
+       );
+}
+
 void help() {
        send_string(
                "Valid commands are:" CRLF
@@ -417,6 +435,7 @@ void help() {
                " ECHO {ON|OFF} turn echo on or off" CRLF
                " GETROM        download the ROM source code using xmodem" CRLF
                " H[...]        this help screen" CRLF
+               " IDENTIFY      report ROM version" CRLF
                "*JUMPxxxx      jumps to a subroutine at location xxxx" CRLF
                "*PEEKxxxx      returns the value of the byte at location xxxx" CRLF
                "*POKExxxxyy    sets the value of location xxxx to yy" CRLF
@@ -443,19 +462,23 @@ void getrom() {
                return;
        }
        char s[4];
+       
+       u16 rom_addr;
+       rom_addr = (u16)(&_rom_src_data);
+
        send_string("Writing to serial port (maybe). Size is 0x");
        send_string(u82hex(_rom_src_len >> 8));
        send_string(u82hex(_rom_src_len & 0xff));
        send_string("@0x");
-       send_string(u82hex((u16)(&_rom_src_data) >> 8));
-       send_string(u82hex((u16)(&_rom_src_data) & 0xff));
+       send_string(u82hex(rom_addr >> 8));
+       send_string(u82hex(rom_addr & 0xff));
        send_string(" with signature ");
        s[0] = _rom_src_data[0];
        s[1] = _rom_src_data[1];
        s[2] = _rom_src_data[2];
        s[3] = '\0';
        send_string(s);
-       send_string(CRLF " Type YES to download rom.tar.bz2 via XMODEM: ");
+       send_string(CRLF " Type YES to download rom.tar.lz via XMODEM: ");
        msg_clr();
        while (!sci_have_packet); /* spin */
        if (!my_strncmp("YES", (char*)sci_rx_buf, 3)) {
@@ -610,6 +633,9 @@ int main() {
                                case 'H':
                                        help();
                                        break;
+                               case 'I':
+                                       identify();
+                                       break;
                                case 'M':
                                        moo();
                                        break;
@@ -690,6 +716,7 @@ int main() {
                                }
                        } else
                                send_keypress(last_key);
+                               send_timer();
                }
 
                /*

UCC git Repository :: git.ucc.asn.au