DECLARE SUB MakeBoxes () DECLARE SUB box (lmar%, trow%, brow%, wide%) DECLARE FUNCTION readctr& CDECL (BYVAL xbadd%, BYVAL xcopy%, BYVAL xaxis%) DECLARE SUB screenmaker () x& = 0 y& = 0 z& = 0 ' ' The readctr& function is an assembly language function xbadd% = 816 xcopy% = 1 xaxis% = 0 ' name the function keys KEY 2, "@": KEY 10, ")" ' set the system colors to white text, black background and border ' make the screen CALL screenmaker LOCATE 25, 10 CALL MakeBoxes DO DO xcopy% = 1 'set copy on xaxis% = 1: x& = readctr&(BYVAL xbadd%, BYVAL xcopy%, BYVAL xaxis%) xcopy% = 0 'dont copy now xaxis% = 2: y& = readctr&(BYVAL xbadd%, BYVAL xcopy%, BYVAL xaxis%) xaxis% = 3: z& = readctr&(BYVAL xbadd%, BYVAL xcopy%, BYVAL xaxis%) LOCATE 16, 12 PRINT USING "##########"; x& LOCATE 16, 35 PRINT USING "##########"; y& LOCATE 16, 58 PRINT USING "##########"; z& v$ = INKEY$ LOOP UNTIL v$ = "@" OR v$ = ")" 'THESE ARE FUNCTION KEY VALUES SELECT CASE v$ CASE ")" 'F10 EXIT DO CASE "@" 'F2 OUT xbadd%, 0 CASE ELSE BEEP END SELECT LOOP CLS SYSTEM END SUB box (lmar%, trow%, brow%, wide%) STATIC LOCATE trow%, lmar% PRINT CHR$(201); STRING$(wide% - 2, 205); CHR$(187); FOR I% = trow% + 1 TO brow% - 1 LOCATE I%, lmar% PRINT CHR$(186); STRING$(wide% - 2, 32); CHR$(186); NEXT I% LOCATE brow%, lmar% PRINT CHR$(200); STRING$(wide% - 2, 205); CHR$(188); END SUB SUB MakeBoxes STATIC FOR I% = 1 TO 3 toprow% = 15 botrow% = 17 wide% = 14 SELECT CASE I% CASE 1 leftmar% = 10 CASE 2 leftmar% = 33 CASE 3 leftmar% = 56 CASE ELSE END SELECT CALL box(leftmar%, toprow%, botrow%, wide%) NEXT I% LOCATE 15, 15 PRINT CHR$(190); " X "; CHR$(212); LOCATE 15, 38 PRINT CHR$(190); " Y "; CHR$(212); LOCATE 15, 61 PRINT CHR$(190); " Z "; CHR$(212); END SUB SUB screenmaker CLS LOCATE 2, 1 PRINT CHR$(201); STRING$(78, 205); CHR$(187); FOR I% = 3 TO 23 LOCATE I%, 1 PRINT CHR$(186); STRING$(78, 32); CHR$(186); NEXT I% LOCATE 24, 1 PRINT CHR$(200); STRING$(78, 205); CHR$(188); LOCATE 1, 12 PRINT CHR$(201); STRING$(55, 205); CHR$(187); LOCATE 2, 12 PRINT CHR$(185); PRINT " Fisher Computer Systems shaft encoder interface demo. "; PRINT CHR$(204) LOCATE 3, 12 PRINT CHR$(200); STRING$(55, 205); CHR$(188); LOCATE 22, 1 PRINT CHR$(204); STRING$(78, 205); CHR$(185); LOCATE 22, 40 PRINT CHR$(203); LOCATE 23, 40 PRINT CHR$(186); LOCATE 24, 40 PRINT CHR$(202); LOCATE 23, 6 PRINT " F2 "; PRINT " Zeros the count values"; LOCATE 23, 54 PRINT " F10 "; PRINT " Exit"; END SUB