From 35ea24cefbc4c3daa198fddea56e8eeb7edbdf4c Mon Sep 17 00:00:00 2001 From: Curtis F Kaylor Date: Wed, 7 Nov 2018 00:12:05 -0500 Subject: [PATCH] Updated joystick test program --- test/joystick.c02 | 4 -- test/structs.c02 | 115 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 4 deletions(-) create mode 100644 test/structs.c02 diff --git a/test/joystick.c02 b/test/joystick.c02 index 33b2c09..16c254f 100644 --- a/test/joystick.c02 +++ b/test/joystick.c02 @@ -22,10 +22,6 @@ main: setpos(1,r); putchr('J'); prhex(i); putchr(':'); } - for (i=0; i<4; i++) { - setpos(25,i); - prbyte($D0); prbyte(i); - } while() { for(i=0; i<#JYSTKS; i++) { j = joystk(i); diff --git a/test/structs.c02 b/test/structs.c02 new file mode 100644 index 0000000..3ea95a6 --- /dev/null +++ b/test/structs.c02 @@ -0,0 +1,115 @@ +/********************************************** + * STRINGS - Demonstrate string.h02 functions * + **********************************************/ + +//Specify System Header using -H option +#include +#include +#include +#include +#include +#include + +char d, i; +char aa,xx,yy; + +//Define Structure +struct record { + char name[8]; + char index; + data[128]; +}; + +//Declare Structure Variable +struct record srcrec; +struct record dstrec; + +//Struct Containing Structs +struct point { char xpos; char ypos; }; +struct point pnt; +struct rect {struct point toplft; struct point btmrgt; }; +struct rect box; +struct frame {struct rect outer; struct rect inner; }; +struct frame fram; + +main: + +//Set Structure Members +strdst(&srcrec.name); strcpy("RECNAME"); +srcrec.index = 1; +for (i = 0; i<=@srcrec.data; i++) + srcrec.data[i] = i; + +//Clear Destination Record +memclr(@dstrec,&dstrec); +prtdst(); + +//Copy Source Record into Destination Record +memdst(&dstrec); +memcpy(@srcrec, &srcrec); + +prtdst(); + +//Clear Box +memclr(@box, &box); //Clear Box Members +prtbox(); //Print Box Members + +//Set Box Members +box.toplft.xpos=1; box.toplft.ypos=2; +box.btmrgt.xpos=8; box.btmrgt.ypos=9; +prtbox(); +newlin(); + +//Clear Frame +memclr(@fram, &fram); //Clear Frame Members +prtfrm(); //Print Frame Members + +//Set Frame Members +fram.outer.toplft.xpos=10; fram.outer.toplft.ypos=11; +fram.outer.btmrgt.xpos=98; fram.outer.btmrgt.ypos=99; +fram.inner.toplft.xpos=22; fram.inner.toplft.ypos=23; +fram.inner.btmrgt.xpos=86; fram.inner.btmrgt.ypos=87; +prtfrm(); +newlin(); + +goto exit; + +//Print Destination Record +void prtdst() { + puts("REC.NAME="); putln(&dstrec.name); + puts("REC.INDEX="); putdec(dstrec.index); newlin(); + puts("REC.DATA={"); + for (i = 0; i<@dstrec.data; i++) { + if (i) putc(','); + putdec(dstrec.data[i]); + } + putln("}"); + newlin(); +} + +//Print Frame +void prtfrm() { + puts("outer."); cpybox(&fram.outer); prtbox(); + puts("inner."); cpybox(&fram.inner); prtbox(); + newlin(); +} + +void cpybox() { + savrxy(); setdst(&box); + resrxy(); memcpy(@box); +} + +//Print Box +void prtbox() { + puts("toplft."); prtpnt(&box.toplft); + puts("btmrgt."); prtpnt(&box.btmrgt); + newlin(); +} + +//Print Point +void prtpnt() { + savrxy(); setdst(&pnt); + resrxy(); memcpy(@pnt); + printf(pnt.xpos,"xpos=%d,"); + printf(pnt.ypos,"ypos=%d "); +}