UART code for a 16550.
[uccvend-snackrom.git] / ROM2 / helpers.c
1 #include "display_basic.h"
2 #include "vend.h"
3
4 #define DELAY_MAGIC 20 /* FIXME: number of loops for ~ 1 millisecond (< 256) */
5 void delay(u16 ms) {
6         u8 i;
7         for (;ms;ms--) {
8                 for (i=0;i<DELAY_MAGIC; i++)
9                         asm("nop\nnop\nnop\nnop\nnop\n");
10         }
11 }
12
13 void print_amount(u16 amt) {
14         /* take amt and show it on screen with a $ sign */
15         char str[10] = {' ', '$', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '};
16         u8 pos;
17         for (pos = 7; amt; pos--, amt/=10) {
18                 str[pos] = amt%10 + '0';
19         }
20         set_msg(str);
21 }
22
23 void my_strncpy(char* dst, char* src, u8 max_size) {
24         u8 i;
25         for (i = 0; src[i] && i < max_size; i++) dst[i] = src[i];
26         if (src[i] == 0 && i < max_size) dst[i] = 0; /* null terminator */
27 }
28
29 void my_memcpy(char* dst, char* src, u8 size) {
30         u8 i = 0;
31         for (i = 0; i < size; i++) dst[i] = src[i];
32 }

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