1:From dblank@comp.uark.edu  Wed Jul  1 13:17:17 1998
2:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
3:	id AA10324; Wed, 1 Jul 1998 13:17:17 -0400
4:Received: from comp.uark.edu (root@comp.uark.edu [130.184.252.197])
5:	by aleve.media.mit.edu (8.8.7/ML970927) with ESMTP id LAA00083
6:	for <handyboard@media.mit.edu>; Wed, 1 Jul 1998 11:56:44 -0400 (EDT)
7:Received: from comp.uark.edu (IDENT:dblank@dangermouse.uark.edu [130.184.201.233])
8:	by comp.uark.edu (8.9.0/8.9.0) with ESMTP id KAA12202;
9:	Wed, 1 Jul 1998 10:56:30 -0500 (CDT)
10:Sender: dblank@comp.uark.edu
11:Message-Id: <359A5C2E.202B4BA3@comp.uark.edu>
12:Date: Wed, 01 Jul 1998 10:56:30 -0500
13:From: Douglas Blank <dblank@comp.uark.edu>
14:Organization: University of Arkansas, CS
15:X-Mailer: Mozilla 4.04 [en] (X11; I; Linux 2.0.33 i686)
16:Mime-Version: 1.0
17:To: Aaron Edsinger <aarone@sirius.com>
18:Cc: handy <handyboard@media.mit.edu>
19:Subject: Re: Serial Interface
20:References: <199807010601.XAA26862@mail3.sirius.com>
21:Content-Type: text/plain; charset=us-ascii
22:Content-Transfer-Encoding: 7bit
23:
24:Aaron Edsinger wrote:
25: 
26:> Hello,
27:>         I've been having some problems using my HandyBoard to talk directly to my
28:> PC via the serial interface.  I disable Interactive C and then Poke() and
29:> Peek() as has been described on this list.  I  send short character strings
30:> from my PC to the HandyBoard under Windows 95.  If I send strings longer
31:> than 2 characters, it seems that some of the characters get lost. This
32:> behavior seems to be affected by repositioning or slightly modifying the
33:> code, suggesting perhaps a timing issue.
34:
35:Although there is the HEXMON program, I too, have been trying to do what
36:you describe, and encountered the same problems. I found it to be a
37:timing issue, and, through trial and error, have a found some settings
38:that seem to work most of the time.
39:
40:My goal was to make C code that looked the same when compiled and run on
41:the Host is the code that ran under IC. 
42:
43:I am including the host and HB programs here. If anyone knows of a
44:better way of communicating, please let us know.
45:
46:-Doug Blank
47: 
48:=====================================================================
49:dblank@comp.uark.edu            Douglas Blank, University of Arkansas
50:Assistant Professor                                  Computer Science
51:==================== http://www.uark.edu/~dblank ====================
52:
53:This code was written for MS C++4.0 running on Win95.
54:
55://************** BEGIN: serial_HOST.c
56:
57:/* VC++4.0 HandyBoard Host Programming System
58:   Dr. Douglas S. Blank
59:   University of Arkansas, Department of Computer Science
60:   www.uark.edu/~dblank
61:
62:   This code runs on a host PC.
63:*/
64:
65:#include <ctype.h>
66:#include <conio.h>
67:#include <stdlib.h>
68:#include <stdio.h>
69:
70:#include "serial_HOST.h"
71:
72:void main(int argc, char *argv[])
73:{
74:        motor(0, 100);
75:        motor(1, 100);
76:        motor(2, 100);
77:        motor(3, 100);
78:        sleep(1000);
79:        motor(0, -100); 
80:        motor(1, -100);
81:        motor(2, -100);
82:        motor(3, -100);
83:        sleep(1000); 
84:        ao(); 
85:        print("\nThis is a test");
86:        printf("Knob is %d\n", knob() );
87:        printf("Analog(0) is %d\n", analog(0));
88:        printf("Digital(0) is %d\n", digital(0));
89:        printf("Analog(1) is %d\n", analog(1));
90:        printf("Digital(1) is %d\n", digital(1));
91:        printf("Analog(2) is %d\n", analog(2));
92:        printf("Digital(2) is %d\n", digital(2));
93:        printf("Analog(3) is %d\n", analog(3));
94:        printf("Digital(3) is %d\n", digital(3));
95:        printf("Analog(4) is %d\n", analog(4));
96:        printf("Digital(4) is %d\n", digital(4));
97:        printf("Analog(5) is %d\n", analog(5));
98:        printf("Digital(5) is %d\n", digital(5));
99:        printf("Analog(6) is %d\n", analog(6));
100:        printf("Digital(6) is %d\n", digital(6));
101:        printf("Analog(7) is %d\n", analog(7));
102:        printf("Digital(7) is %d\n", digital(7));
103:        printf("Analog(8) is %d\n", analog(8));
104:        printf("Digital(8) is %d\n", digital(8));
105:        printf("Analog(9) is %d\n", analog(9));
106:        printf("Digital(9) is %d\n", digital(9));
107:        printf("Analog(10) is %d\n", analog(10));
108:        printf("Digital(10) is %d\n", digital(10));
109:        printf("Analog(11) is %d\n", analog(11));
110:        printf("Digital(11) is %d\n", digital(11));
111:        printf("Analog(12) is %d\n", analog(12));
112:        printf("Digital(12) is %d\n", digital(12));
113:        printf("Analog(13) is %d\n", analog(13));
114:        printf("Digital(13) is %d\n", digital(13));
115:        printf("Analog(14) is %d\n", analog(14));
116:        printf("Digital(14) is %d\n", digital(14));
117:        printf("Analog(15) is %d\n", analog(15));
118:        printf("Digital(15) is %d\n", digital(15));
119:        beep();
120:        sleep(1000);
121:        while (! stop_button() ) {
122:                sprintf(buffer, "%d.0", (knob() * 10));
123:                tone( buffer, "0.1");
124:        }
125:}
126:
127://************** END: serial_HOST.c
128:
129://************** BEGIN: serial_HOST.h
130:
131:/* VC++4.0 HandyBoard Host Programming System
132:   Dr. Douglas S. Blank
133:   University of Arkansas, Department of Computer Science
134:   www.uark.edu/~dblank
135:*/
136:
137:#define MOTOR     0
138:#define AO        1
139:#define ANALOG    2
140:#define DIGITAL   3
141:#define PRINTF    4
142:#define KNOB      5
143:#define BEEP      6
144:#define TONE      7
145:#define START_BUTTON 8
146:#define STOP_BUTTON  9
147:#define QUIT    113
148:
149:#define sleep(NUM) _sleep(NUM)
150:#define SERIALWAIT  5
151:
152:unsigned short PORT = 0x3f8; // LPT1: 0x378 COM1: 0x3f8
153:
154:int send(int i) {
155:        int retval;
156:        retval = _outp( PORT, i);
157:        _sleep(SERIALWAIT);
158:        return retval;
159:}
160:
161:int receive() {
162:        int retval;
163:        retval = _inp( PORT);
164:        _sleep(SERIALWAIT);
165:        retval = _inp( PORT);
166:        return retval;
167:}
168:
169:void hangup() {
170:        send(QUIT);
171:}
172:
173:void print(char buffer[]) {
174:        int i;
175:        send(PRINTF);
176:        for (i = 0; buffer[i] != 0; i++)
177:                send(buffer[i]);
178:        send('\0');
179:}
180:
181:void motor(int motornum, int power) {
182:        send(MOTOR);
183:        send(motornum);
184:        send(power + 100); // taken off on the other end
185:}
186:
187:int analog(int sensor) {
188:        send(ANALOG);
189:        send(sensor);
190:        return receive();
191:}
192:
193:int digital(int sensor) {
194:        send(DIGITAL);
195:        send(sensor);
196:        return receive();
197:}
198:
199:void ao() {
200:        send(AO);
201:}
202:
203:int knob() {
204:        send(KNOB);
205:        return receive();
206:}
207:
208:void beep() {
209:        send(BEEP);
210:}
211:
212:void tone(char f1[], char f2[]) {
213:        int i;
214:        send(TONE);
215:        for (i = 0; f1[i] != 0; i++)
216:                send(f1[i]);
217:        send('\0');
218:        for (i = 0; f2[i] != 0; i++)
219:                send(f2[i]);
220:        send('\0');
221:        _sleep((unsigned long) (atof(f2) * 1000)); // to keep from
222:overflowing serial line
223:}
224:
225:void interactive()
226:{
227:        char c;
228:        char key = ' ';
229:        while (key != 'q') {
230:                key = getch();
231:                send(key);
232:                printf("Sent %c\n", key);
233:                c = receive();
234:                printf("Got %c as a return value\n", c);
235:        }
236:}
237:
238:int start_button() {
239:        send(START_BUTTON);
240:        return receive();
241:}
242:
243:int stop_button() {
244:        send(STOP_BUTTON);
245:        return receive();
246:}
247://************** END: serial_HOST.h
248:
249://************** BEGIN: serial_HB.c
250:
251:/* VC++4.0 HandyBoard Programming System
252:   (Parts taken from other HB programs)
253:   Dr. Douglas S. Blank
254:   University of Arkansas, Department of Computer Science
255:   www.uark.edu/~dblank
256:
257:   This code runs on the HB
258:*/
259:
260:#define MOTOR     0
261:#define AO        1
262:#define ANALOG    2
263:#define DIGITAL   3
264:#define PRINTF    4
265:#define KNOB      5
266:#define BEEP    6
267:#define TONE    7
268:#define START_BUTTON 8
269:#define STOP_BUTTON  9
270:#define QUIT    113
271:
272:int _isspace(int a)         /* returns 1 for space or tab, 0
273:otherwise     */
274:                            /* internal routine used by atof() and
275:cgets() */
276:
277:{
278:    return ((a == 32) || (a == 9));     /* 32 is space, 9 is tab */
279:}
280:
281:/*****************************************************************************/
282:
283:int _isdigit(int a)         /* returns 1 if a digit 0-9, 0 otherwise */
284:                            /* internal routine used by atof()       */
285:
286:{
287:    return ((a >= 48) && (a <= 57));    /* 48 is '0', 57 is '9' */
288:}
289:
290:float atof(char s[])    /* Convert a string containing a number in
291:ASCII     */
292:                        /* form (integer, float, or exponential float)
293:to a  */
294:                        /* float.  Strips whitespace characters (space
295:and   */
296:                        /* tab) from the front of the string, but
297:stops      */
298:                        /* parsing at the first (unexpected)
299:non-numeric     */
300:                        /* character if the string has garbage at the
301:end.   */
302:                        /* This means that "  34.3foo78" translates to
303:34.3. */
304:                        /* Modified from atof() function in the
305:standard     */
306:                        /* library of the Hi-Tec C compiler for
307:CP/M.        */
308:                        /* Note:  all string literals converted to
309:decimal   */
310:                        /* form because IC can't deal with string
311:literals   */
312:                        /* in math
313:calculations.                             */
314:                        /* Also note:  very ugly code because IC will
315:not    */
316:                        /* allow any math operations on pointers!  Thus,
317:the */
318:                        /* the number string has to be treated as an
319:array!  */
320:                        /* Also also note:  no error handling; assumes
321:that  */
322:                        /* the string is a valid representation of a
323:number! */
324:                        /* Valid range for exponential-format numbers
325:is     */
326:                        /* approximately 2.0e-38 to
327:3.4e+38.                 */
328:
329:{
330:    int     i=0;            /* index into string array */
331:    int     sign=0;         /* mantissa sign flag:  0=positive,
332:1=negative */
333:    int     exp0=0;         /* mantissa exponent counter */
334:    int     eexp=0;         /* E-form exponent counter */
335:    int     expsign=0;      /* exponent sign flag:  0=positive,
336:1=negative */
337:    float   m=0.0;          /* mantissa accumulator */
338:
339:    /* skip any leading whitespace (space, tab) */
340:    while (_isspace(s[i]))
341:        i++;                                /* skip it */
342:
343:    /* check for mantissa sign */
344:    if (s[i] == 45)                         /* 45 is '-' */
345:    {
346:        sign = 1;                           /* flag minus sign */
347:        i++;                                /* point to next */
348:    }
349:    else if (s[i] == 43)                    /* 43 is '+' */
350:        i++;                                /* point to next */
351:
352:    /* now get all digits up to either a decimal point or an e/E */
353:    while (_isdigit(s[i]))
354:    {
355:        m = 10.0*m + (float)(s[i] - 48);    /* 48 is '0' */
356:        i++;                                /* point to next */
357:    }
358:
359:    /* no more digits, so check for decimal point */
360:    if (s[i] == 46)                         /* 46 is '.' */
361:    {
362:        i++;                                /* point to next */
363:        /* get all digits after decimal point */
364:        while (_isdigit(s[i]))
365:        {
366:            exp0--;
367:            m = 10.0*m + (float)(s[i] - 48);    /* 48 is '0' */
368:            i++;                                /* point to next */
369:        }
370:    }
371:
372:    /* check for e/E exponential form */
373:    if ((s[i] == 101) || (s[i] == 69))      /* 101 is 'e', 69 is 'E' */
374:    {
375:        i++;                                /* point to next */
376:        /* check for exponent sign */
377:        if (s[i] == 45)                     /* 45 is '-' */
378:        {
379:            expsign = 1;                    /* flag negative exponent */
380:            i++;                            /* point to next */
381:        }
382:        else if (s[i] == 43)                /* 43 is '+' */
383:            i++;                            /* point to next */
384:
385:        /* now get exponent */
386:        while (_isdigit(s[i]))
387:        {
388:            eexp = eexp*10 + s[i] - 48;     /* 48 is '0' */
389:            i++;                            /* point to next */
390:        }
391:
392:        /* adjust exponent sign */
393:        if (expsign)
394:            eexp = -eexp;                   /* make it negative */
395:    }
396:
397:    /* compute absolute value of final float */
398:    exp0 += eexp;
399:    while (exp0 < 0)                    /* for negative exponents */
400:    {
401:        m = m / 10.0;
402:        exp0++;
403:    }
404:    while (exp0 > 0)                    /* for positive exponents */
405:    {
406:        m = m * 10.0;
407:        exp0--;
408:    }
409:
410:    /* adjust final float sign from mantissa */
411:    if (sign)
412:        return (-m);                    /* negative */
413:    else
414:        return (m);                     /* positive */
415:}
416:
417:void disable_pcode_serial()
418:/* necessary to receive characters using serial_getchar */
419:{
420:   poke(0x3c, 1);
421:}
422:
423:void reenable_pcode_serial()
424:/* necessary for IC to interact with board again */
425:{
426:   poke(0x3c, 0);
427:}
428:
429:/*
430:======================================================================
431:For sending and receiving single bytes, you can use Randy's IC code:
432:*/
433:
434:void serial_putchar(int c)
435:{
436:   while (!(peek(0x102e) & 0x80));  /* wait until serial transmit empty
437:*/
438:   poke(0x102f, c);  /* send character */
439:}
440:
441:int serial_getchar()
442:{
443:   while (!(peek(0x102e) & 0x20)); /* wait for received character */
444:   return peek(0x102f);
445:}
446:
447:void main(void) {
448:        int pos, c = ' ', var1, var2;
449:        float f1, f2;
450:        char buffer[80];
451:        disable_pcode_serial();
452:        beep();
453:        printf("\nSerial IO Mode!");
454:        printf("Listening...");
455:        msleep(500L);
456:        while (c != 'q') {
457:                c = serial_getchar();
458:/*              printf("[%d] ", c); */
459:                if (c == MOTOR) {
460:                        var1 = serial_getchar();
461:                        var2 = serial_getchar() - 100;
462:                        motor(var1, var2);
463:                } else if (c == AO) {
464:                        ao();
465:                } else if (c == ANALOG) {
466:                        var1 = serial_getchar();
467:                        serial_putchar(analog(var1));
468:                } else if (c == DIGITAL) {
469:                        var1 = serial_getchar();
470:                        serial_putchar(digital(var1));
471:                } else if (c == PRINTF) {
472:                        pos = 0;
473:                        while (c != 0) {
474:                                buffer[pos++] = c;
475:                                c = serial_getchar();
476:                        }
477:                        buffer[pos] = '\0';
478:                        printf(buffer);
479:                } else if (c == TONE) {
480:                        pos = 0;
481:                        c = serial_getchar();
482:                        while (c != 0) {
483:                                buffer[pos++] = c;
484:                                c = serial_getchar();
485:                        }
486:                        buffer[pos] = '\0';
487:                        f1 = atof(buffer);
488:                        pos = 0;
489:                        c = serial_getchar();
490:                        while (c != 0) {
491:                                buffer[pos++] = c;
492:                                c = serial_getchar();
493:                        }
494:                        buffer[pos] = '\0';
495:                        f2 = atof(buffer);
496:                        tone(f1, f2);
497:                } else if (c == START_BUTTON) {
498:                        serial_putchar(start_button());
499:                } else if (c == STOP_BUTTON) {
500:                        serial_putchar(stop_button());
501:                } else if (c == BEEP) {
502:                        beep();
503:                } else if (c == KNOB) {
504:                        serial_putchar(knob());
505:                }
506:      }
507:        reenable_pcode_serial();
508:        printf("\nHB Mode!");
509:}
510:
511://************** END: serial_HB.c
512:
791:From aarone@sirius.com  Wed Jul  1 02:44:06 1998
792:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
793:	id AA22669; Wed, 1 Jul 1998 02:44:06 -0400
794:Received: from mail3.sirius.com (mail3.sirius.com [205.134.253.133])
795:	by aleve.media.mit.edu (8.8.7/ML970927) with ESMTP id CAA13214
796:	for <handyboard@media.mit.edu>; Wed, 1 Jul 1998 02:01:55 -0400 (EDT)
797:Received: from edsinger (ppp-asfm03--126.sirius.net [205.134.240.126])
798:	by mail3.sirius.com (8.8.7/Sirius-8.8.7-97.08.12) with ESMTP id XAA26862
799:	for <handyboard@media.mit.edu>; Tue, 30 Jun 1998 23:01:54 -0700 (PDT)
800:Message-Id: <199807010601.XAA26862@mail3.sirius.com>
801:From: "Aaron Edsinger" <aarone@sirius.com>
802:To: "handy" <handyboard@media.mit.edu>
803:Subject: Serial Interface
804:Date: Wed, 1 Jul 1998 02:06:39 +0100
805:X-Msmail-Priority: Normal
806:X-Priority: 3
807:X-Mailer: Microsoft Internet Mail 4.70.1162
808:Mime-Version: 1.0
809:Content-Type: text/plain; charset=ISO-8859-1
810:Content-Transfer-Encoding: 7bit
811:
812:Hello,	
813:	I've been having some problems using my HandyBoard to talk directly to my
814:PC via the serial interface.  I disable Interactive C and then Poke() and
815:Peek() as has been described on this list.  I  send short character strings
816:from my PC to the HandyBoard under Windows 95.  If I send strings longer
817:than 2 characters, it seems that some of the characters get lost. This
818:behavior seems to be affected by repositioning or slightly modifying the
819:code, suggesting perhaps a timing issue.
820: 
821:Why might this be?  Is there any way to check for an error situation?
822:
823:Thanks for any help,
824:		Aaron
825:From cmcmanis@freegate.com  Thu Jul 16 03:13:49 1998
826:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
827:	id AA23518; Thu, 16 Jul 1998 03:13:49 -0400
828:Received: from hq.freegate.com ([208.226.86.1])
829:	by aleve.media.mit.edu (8.8.7/ML970927) with SMTP id CAA18991
830:	for <handyboard@media.mit.edu>; Thu, 16 Jul 1998 02:17:47 -0400 (EDT)
831:Received: (qmail+freegate 6968 invoked by alias); 16 Jul 1998 06:17:38 -0000
832:Received: from dialip-04.hq.freegate.com (HELO freegate.com) (208.226.86.222)
833:  by hq.freegate.com with SMTP; 16 Jul 1998 06:17:38 -0000
834:Message-Id: <35AD9BDA.3A9EC8F7@freegate.com>
835:Date: Wed, 15 Jul 1998 23:21:14 -0700
836:From: Chuck McManis <cmcmanis@freegate.com>
837:Reply-To: cmcmanis@freegate.com
838:Organization: Freegate Corporation
839:X-Mailer: Mozilla 4.04 [en] (Win95; I)
840:Mime-Version: 1.0
841:To: David Rye <rye@mech.eng.usyd.edu.au>
842:Cc: handyboard@media.mit.edu
843:Subject: Re: Handyboard/RWP without p-code
844:References: <3.0.32.19980716151646.00809d20@nemo.mech.eng.usyd.edu.au>
845:Content-Type: text/plain; charset=us-ascii
846:Content-Transfer-Encoding: 7bit
847:
848:Get a copy of icc11 v5.0 or later (from www.imagecraft.com) and use the
849:handyboard library from their site. 
850:
851:--Chuck
852:
853:From Scott.Seaton@Aus.Sun.COM  Thu Jul 16 03:42:38 1998
854:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
855:	id AA24945; Thu, 16 Jul 1998 03:42:38 -0400
856:Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1])
857:	by aleve.media.mit.edu (8.8.7/ML970927) with SMTP id CAA07415
858:	for <handyboard@media.mit.edu>; Thu, 16 Jul 1998 02:44:58 -0400 (EDT)
859:Received: from Aus.Sun.COM ([129.158.80.6]) by mercury.Sun.COM (SMI-8.6/mail.byaddr) with SMTP id XAA29734; Wed, 15 Jul 1998 23:44:52 -0700
860:Received: from war.Aus.Sun.COM by Aus.Sun.COM id QAA03011
861:	(SMI-8.6/SMI-4.1 for <>); Thu, 16 Jul 1998 16:44:50 +1000
862:Received: from drone by war.Aus.Sun.COM (SMI-8.6/SMI-SVR4)
863:	id QAA10921; Thu, 16 Jul 1998 16:44:20 +1000
864:Message-Id: <199807160644.QAA10921@war.Aus.Sun.COM>
865:Date: Thu, 16 Jul 1998 16:41:56 +1000 (EST)
866:From: Scott Seaton - Systems Consultant - ESG <Scott.Seaton@Aus.Sun.COM>
867:Reply-To: Scott Seaton - Systems Consultant - ESG <Scott.Seaton@Aus.Sun.COM>
868:Subject: Re: Handyboard/RWP without p-code
869:To: handyboard@media.mit.edu, rye@mech.eng.usyd.edu.au
870:Mime-Version: 1.0
871:Content-Type: MULTIPART/mixed; BOUNDARY=Troop_of_Baboons_752_000
872:X-Mailer: dtmail 1.2.0 CDE Version 1.2 SunOS 5.6 sun4u sparc 
873:
874:--Troop_of_Baboons_752_000
875:Content-Type: TEXT/plain; charset=us-ascii
876:Content-MD5: i/HKSIa/Vk0mZT5ml+q21A==
877:
878:Hi
879:
880:I suggest that you contact ImageCraft.
881:http://www.imagecraft.com/software/index.html  or  info@imagecraft.com 
882:
883:They have a C compiler for 68HC11 CPU's that will do what you want, including a
884:library for the HandyBoard (see attached e-mail) !
885:
886:I have no affiliation with ImageCraft (other than as a satisfied customer).
887:
888:Hope this helps
889:Scott
890:============================================================================== 
891: ,-_|\       Scott Seaton - Sun Enterprise Services -  Systems Consultant      
892:/     \  Sun Microsystems Australia Pty Ltd  E-mail : scott.seaton@aus.sun.com 
893:\_,-\_+  828 Pacific Highway                  Phone : +61 2 9844 5381          
894:     v   Gordon, N.S.W., 2072, AUSTRALIA        Fax : +61 2 9844 5161          
895:============================================================================== 
896:
897:--Troop_of_Baboons_752_000
898:Content-Type: MESSAGE/rfc822; name=Mailbox
899:Content-Description: Mailbox
900:
901:From someone@imagecraft.com  Fri Jul 10 18:59:26 1998
902:Return-Path: <icc11-list-errors@lists.best.com>
903:Received: from Aus.Sun.COM by war.Aus.Sun.COM (SMI-8.6/SMI-SVR4)
904:	id SAA14426; Fri, 10 Jul 1998 18:59:26 +1000
905:Received: from earth.sun.com by Aus.Sun.COM id SAA24238
906:	(SMI-8.6/SMI-4.1 for <<scott.seaton@aus.sun.com>>); Fri, 10 Jul 1998 18:59:48 +1000
907:Received: from iisesun.iise.CSIRO.AU (iisesun.iise.csiro.au [130.155.5.44])
908:	by earth.sun.com (8.8.8/8.8.8) with SMTP id BAA18609
909:	for <scott.seaton@aus.sun.com>; Fri, 10 Jul 1998 01:59:44 -0700 (PDT)
910:Received: from lists1.best.com (lists1.best.com [206.86.8.15]) by iisesun.iise.CSIRO.AU (SMI-8.6/8.6.12-IISE-SWA) with ESMTP id SAA25847 for <sseaton@iise.csiro.au>; Fri, 10 Jul 1998 18:49:31 +1000
911:Received: (from daemon@localhost) by lists1.best.com (8.9.0/8.8.BEST) id BAA15320 for icc11-list-errors@lists.best.com; Fri, 10 Jul 1998 01:04:34 -0700 (PDT)
912:Message-Id: <199807100804.BAA15320@lists1.best.com>
913:From: Christina Willrich & Richard Man <someone@imagecraft.com>
914:Subject: icc11 Handyboard library available
915:Date: Fri, 10 Jul 1998 00:58:49 -0700
916:BestServHost: lists.best.com
917:MIME-Version: 1.0
918:Content-Type: text/plain; charset="us-ascii"
919:Sender: icc11-list-errors@lists.best.com
920:Errors-To: icc11-list-errors@lists.best.com
921:Reply-To: icc11-list@lists.best.com
922:To: icc11-list@lists.best.com
923:content-length: 399
924:Status: RO
925:X-Status: $$$$
926:X-UID: 0000000001
927:
928:At long last, I dusted off Chuck McManis Handyboard library and ported it
929:to V5. No reason why it can't work with V4.5 either ;-) Anyway, to try it
930:out, point your browser to
931:
932:ftp://ftp.imagecraft.com/pub/libhb.zip
933:
934:Chuck really did a great job with the LCD. There are commands to scroll,
935:move etc. Make sure you try the lcdtest2.c test.
936:
937:// richard
938:someone@imagecraft.com http://www.imagecraft.com
939:
940:
941:--Troop_of_Baboons_752_000--
942:
1142:From wallace@theory.phys.vt.edu  Mon Jul 27 18:34:05 1998
1143:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
1144:	id AA00723; Mon, 27 Jul 1998 18:34:05 -0400
1145:Received: from theory.phys.vt.edu (theory.phys.vt.edu [128.173.176.33])
1146:	by aleve.media.mit.edu (8.8.7/ML970927) with ESMTP id RAA19984
1147:	for <handyboard@media.mit.edu>; Mon, 27 Jul 1998 17:22:26 -0400 (EDT)
1148:Received: from localhost (wallace@localhost)
1149:	by theory.phys.vt.edu (8.8.5/8.8.5) with SMTP id RAA00312
1150:	for <handyboard@media.mit.edu>; Mon, 27 Jul 1998 17:22:24 -0400 (EDT)
1151:Date: Mon, 27 Jul 1998 17:22:24 -0400 (EDT)
1152:From: Mark Wallace <wallace@theory.phys.vt.edu>
1153:To: handyboard@media.mit.edu
1154:Subject: sonar.c for the handyboard
1155:Message-Id: <Pine.SOL.3.92.980727164935.159A-100000@theory.phys.vt.edu>
1156:Mime-Version: 1.0
1157:Content-Type: TEXT/PLAIN; charset=US-ASCII
1158:
1159:Hello,
1160:	I have a handyboard and 6500 series poloroid ultrasonic ranging
1161:system.  I have downloaded the sonar.c programs used to drive the
1162:transducer for distance measurements.  There appears to be a problem, or
1163:atleast I think there is, with it.  The sonar device is supposed to give
1164:distances of up to 35ft but the TCNC time register is 16 bit and in the
1165:program it says "if ((peekwork(0x100e)-start_time) < 0)" too much time has
1166:elapsed and it returns -1.  Therefore as soon as about 32700 counts goes
1167:by, that value will go negative. I believe hex goes from 0 to 32768 then
1168:-32768 to -1. In this case the difference will be < 0 if the object
1169:is greater then about 9 ft.  I have taken this out of the program and can
1170:get accurate measurements up to atleast 30 ft but I have to look at the
1171:value given and add multiples of 2^16 to it to figure out where it is.
1172:Taking this out of the program also can get you stuck if you really are
1173:out of range.
1174:	I have looked on the motorola web pages to see about this clock
1175:and it says that the clock goes till it reachs $ffff and then flags
1176:somewhere that there is an overflow and then starts over.  I don't know
1177:how to find out were in the chip this information might be stored.  I know
1178:the TCNT time register is at 0x100e from the notes on Simplified Sonar for
1179:the Handy Board but I don't know where that overflow flag is stored.  I
1180:thought that maybe by setting this flag and using it in the loop you might
1181:be about to get a greater distance out of you measurement.
1182:	Another question I have is about IC.  I would like to display
1183:numbers greater then 32000 and right now there are several int type
1184:variables and normal C comands don't seem to work to make a "long" or any
1185:other type that are larger then 32000.  How does IC handle larger numbers?
1186:	I am only a student and don't have much experience with this stuff
1187:so I would appreciate any feedback I can get on either of these problems.
1188:Thanks.
1189:
1190:Mark Wallace
1191:
1192: e-mail  mawalla3@vt.edu
1193:         wallace@astro.phys.vt.edu
1194:Web page http://sps1.phys.vt.edu/~mwallace/index.html
1195:
1196:"What a waste it would be after 4 billion tortuous years of evolution if
1197:the dominant organism contrived its own self-destruction"
1198:                                        Carl Sagan
1199:
1200:
1274:From mawalla3@vt.edu  Wed Aug 12 13:10:06 1998
1275:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
1276:	id AA07529; Wed, 12 Aug 1998 13:10:06 -0400
1277:Received: from quackerjack.cc.vt.edu (root@quackerjack.cc.vt.edu [198.82.160.250])
1278:	by aleve.media.mit.edu (8.8.7/ML970927) with ESMTP id MAA05729
1279:	for <Handyboard@media.mit.edu>; Wed, 12 Aug 1998 12:13:53 -0400 (EDT)
1280:Received: from sable.cc.vt.edu (sable.cc.vt.edu [128.173.16.30])
1281:	by quackerjack.cc.vt.edu (8.8.8/8.8.8) with ESMTP id MAA20678
1282:	for <Handyboard@media.mit.edu>; Wed, 12 Aug 1998 12:20:09 -0400 (EDT)
1283:Received: from research10.phys.vt.edu (dhcp9.phys.vt.edu [128.173.176.166])
1284:	by sable.cc.vt.edu (8.8.8/8.8.8) with SMTP id MAA05159
1285:	for <Handyboard@media.mit.edu>; Wed, 12 Aug 1998 12:13:51 -0400 (EDT)
1286:Message-Id: <3.0.5.32.19980812121345.00796960@mail.vt.edu>
1287:X-Sender: mawalla3@mail.vt.edu (Unverified)
1288:X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.5 (32)
1289:Date: Wed, 12 Aug 1998 12:13:45 -0400
1290:To: Handyboard@media.mit.edu
1291:From: Mark Wallace <mawalla3@vt.edu>
1292:Subject: serial library for C++ 
1293:Mime-Version: 1.0
1294:Content-Type: text/plain; charset="us-ascii"
1295:
1296:Hello,
1297:	I have a handy board with poloroid transducers and I am trying use the
1298:results of my distance measurments in a C++ program on the computer.  I
1299:have found programs on the handyboard web page that should alow the
1300:handyboard to transmit information over the serial line.  What I am looking
1301:for is if anyone knows were I could find a serial for Microsofts
1302:Visual C++ 5.0.  I would like to find one that is free or sharware but any
1303:information on any serial that will work would be appreciated.
1304:Thanks.
1305:Mark Wallace
1306:
1307: e-mail  mawalla3@vt.edu
1308:	 mwallace@sps1.phys.vt.edu
1309:web page http://sps1.phys.vt.ede/~mwallace
1310:
1311:"What a waist it would be after 4 billion tortuous years of evolution if
1312:the dominant organism contrived its own self-distruction"
1313:			Carl Sagan
1314:
1315:
1361:From aarone@sirius.com  Wed Aug 12 13:42:19 1998
1362:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
1363:	id AA13439; Wed, 12 Aug 1998 13:42:19 -0400
1364:Received: from mail3.sirius.com (mail3.sirius.com [205.134.253.133])
1365:	by aleve.media.mit.edu (8.8.7/ML970927) with ESMTP id MAA10630
1366:	for <handyboard@media.mit.edu>; Wed, 12 Aug 1998 12:48:27 -0400 (EDT)
1367:Received: from aarone (ppp-asfm05--041.sirius.net [205.134.241.41])
1368:	by mail3.sirius.com (8.8.7/Sirius-8.8.7-97.08.12) with SMTP id JAA20821;
1369:	Wed, 12 Aug 1998 09:48:24 -0700 (PDT)
1370:Message-Id: <004401bdc62a$e8ecc8c0$70f086cd@aarone.sirius.com>
1371:From: "Aaron Edsinger" <aarone@sirius.com>
1372:To: "Mark Wallace" <mawalla3@vt.edu>
1373:Cc: "handy" <handyboard@media.mit.edu>
1374:Subject: Re: serial library for C++ 
1375:Date: Wed, 12 Aug 1998 12:53:41 -0700
1376:Mime-Version: 1.0
1377:Content-Type: text/plain;
1378:	charset="iso-8859-1"
1379:Content-Transfer-Encoding: 7bit
1380:X-Priority: 3
1381:X-Msmail-Priority: Normal
1382:X-Mailer: Microsoft Outlook Express 4.72.2106.4
1383:X-Mimeole: Produced By Microsoft MimeOLE V4.72.2106.4
1384:
1385:
1386:  Check out this site.  It works well.  The only problem I had was timing
1387:issues when trying to read and write to the port too quickly.
1388:
1389:http://www.codeguru.com/show.cgi?general=/misc/misc_toc.shtml
1390:
1391:
1392:-----Original Message-----
1393:From: Mark Wallace <mawalla3@vt.edu>
1394:To: Handyboard@media.mit.edu <Handyboard@media.mit.edu>
1395:Date: Wednesday, August 12, 1998 9:25 AM
1396:Subject: serial library for C++
1397:
1398:
1399:>Hello,
1400:> I have a handy board with poloroid transducers and I am trying use the
1401:>results of my distance measurments in a C++ program on the computer.  I
1402:>have found programs on the handyboard web page that should alow the
1403:>handyboard to transmit information over the serial line.  What I am looking
1404:>for is if anyone knows were I could find a serial library for Microsofts
1405:>Visual C++ 5.0.  I would like to find one that is free or sharware but any
1406:>information on any serial librarys that will work would be appreciated.
1407:>Thanks.
1408:>Mark Wallace
1409:>
1410:> e-mail  mawalla3@vt.edu
1411:> mwallace@sps1.phys.vt.edu
1412:>web page http://sps1.phys.vt.ede/~mwallace
1413:>
1414:>"What a waist it would be after 4 billion tortuous years of evolution if
1415:>the dominant organism contrived its own self-distruction"
1416:> Carl Sagan
1417:>
1418:
1419:From Scott.Seaton@Aus.Sun.COM  Thu Jul 16 03:42:38 1998
1420:Received: from aleve.media.mit.edu by hub.media.mit.edu; (5.65v3.2/1.1/06Jun95-8.2MPM)
1421:	id AA24945; Thu, 16 Jul 1998 03:42:38 -0400
1422:Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1])
1423:	by aleve.media.mit.edu (8.8.7/ML970927) with SMTP id CAA07415
1424:	for <handyboard@media.mit.edu>; Thu, 16 Jul 1998 02:44:58 -0400 (EDT)
1425:Received: from Aus.Sun.COM ([129.158.80.6]) by mercury.Sun.COM (SMI-8.6/mail.byaddr) with SMTP id XAA29734; Wed, 15 Jul 1998 23:44:52 -0700
1426:Received: from war.Aus.Sun.COM by Aus.Sun.COM id QAA03011
1427:	(SMI-8.6/SMI-4.1 for <>); Thu, 16 Jul 1998 16:44:50 +1000
1428:Received: from drone by war.Aus.Sun.COM (SMI-8.6/SMI-SVR4)
1429:	id QAA10921; Thu, 16 Jul 1998 16:44:20 +1000
1430:Message-Id: <199807160644.QAA10921@war.Aus.Sun.COM>
1431:Date: Thu, 16 Jul 1998 16:41:56 +1000 (EST)
1432:From: Scott Seaton - Systems Consultant - ESG <Scott.Seaton@Aus.Sun.COM>
1433:Reply-To: Scott Seaton - Systems Consultant - ESG <Scott.Seaton@Aus.Sun.COM>
1434:Subject: Re: Handyboard/RWP without p-code
1435:To: handyboard@media.mit.edu, rye@mech.eng.usyd.edu.au
1436:Mime-Version: 1.0
1437:Content-Type: MULTIPART/mixed; BOUNDARY=Troop_of_Baboons_752_000
1438:X-Mailer: dtmail 1.2.0 CDE Version 1.2 SunOS 5.6 sun4u sparc 
1439:
1440:--Troop_of_Baboons_752_000
1441:Content-Type: TEXT/plain; charset=us-ascii
1442:Content-MD5: i/HKSIa/Vk0mZT5ml+q21A==
1443:
1444:Hi
1445:
1446:I suggest that you contact ImageCraft.
1447:http://www.imagecraft.com/software/index.html  or  info@imagecraft.com 
1448:
1449:They have a C compiler for 68HC11 CPU's that will do what you want, including a
1450:library for the HandyBoard (see attached e-mail) !
1451:
1452:I have no affiliation with ImageCraft (other than as a satisfied customer).
1453:
1454:Hope this helps
1455:Scott
1456:============================================================================== 
1457: ,-_|\       Scott Seaton - Sun Enterprise Services -  Systems Consultant      
1458:/     \  Sun Microsystems Australia Pty Ltd  E-mail : scott.seaton@aus.sun.com 
1459:\_,-\_+  828 Pacific Highway                  Phone : +61 2 9844 5381          
1460:     v   Gordon, N.S.W., 2072, AUSTRALIA        Fax : +61 2 9844 5161          
1461:============================================================================== 
1462:
1463:--Troop_of_Baboons_752_000
1464:Content-Type: MESSAGE/rfc822; name=Mailbox
1465:Content-Description: Mailbox
1466:
1467:From someone@imagecraft.com  Fri Jul 10 18:59:26 1998
1468:Return-Path: <icc11-list-errors@lists.best.com>
1469:Received: from Aus.Sun.COM by war.Aus.Sun.COM (SMI-8.6/SMI-SVR4)
1470:	id SAA14426; Fri, 10 Jul 1998 18:59:26 +1000
1471:Received: from earth.sun.com by Aus.Sun.COM id SAA24238
1472:	(SMI-8.6/SMI-4.1 for <<scott.seaton@aus.sun.com>>); Fri, 10 Jul 1998 18:59:48 +1000
1473:Received: from iisesun.iise.CSIRO.AU (iisesun.iise.csiro.au [130.155.5.44])
1474:	by earth.sun.com (8.8.8/8.8.8) with SMTP id BAA18609
1475:	for <scott.seaton@aus.sun.com>; Fri, 10 Jul 1998 01:59:44 -0700 (PDT)
1476:Received: from lists1.best.com (lists1.best.com [206.86.8.15]) by iisesun.iise.CSIRO.AU (SMI-8.6/8.6.12-IISE-SWA) with ESMTP id SAA25847 for <sseaton@iise.csiro.au>; Fri, 10 Jul 1998 18:49:31 +1000
1477:Received: (from daemon@localhost) by lists1.best.com (8.9.0/8.8.BEST) id BAA15320 for icc11-list-errors@lists.best.com; Fri, 10 Jul 1998 01:04:34 -0700 (PDT)
1478:Message-Id: <199807100804.BAA15320@lists1.best.com>
1479:From: Christina Willrich & Richard Man <someone@imagecraft.com>
1480:Subject: icc11 Handyboard library available
1481:Date: Fri, 10 Jul 1998 00:58:49 -0700
1482:BestServHost: lists.best.com
1483:MIME-Version: 1.0
1484:Content-Type: text/plain; charset="us-ascii"
1485:Sender: icc11-list-errors@lists.best.com
1486:Errors-To: icc11-list-errors@lists.best.com
1487:Reply-To: icc11-list@lists.best.com
1488:To: icc11-list@lists.best.com
1489:content-length: 399
1490:Status: RO
1491:X-Status: $$$$
1492:X-UID: 0000000001
1493:
1494:At long last, I dusted off Chuck McManis Handyboard library and ported it
1495:to V5. No reason why it can't work with V4.5 either ;-) Anyway, to try it
1496:out, point your browser to
1497:
1498:ftp://ftp.imagecraft.com/pub/libhb.zip
1499:
1500:Chuck really did a great job with the LCD. There are commands to scroll,
1501:move etc. Make sure you try the lcdtest2.c test.
1502:
1503:// richard
1504:someone@imagecraft.com http://www.imagecraft.com
1505:
1506:
1507:--Troop_of_Baboons_752_000--
1508: