1000 REM ----------------------------›1010 REM This is a demonstration›1020 REM program for the ChalkBoard›1030 REM PowerPad. It will scan the›1040 REM pad, and report the contact›1050 REM area to the screen.›1060 REM ----------------------------›1070 REM Entered and modified by:›1080 REM Chuck Steinman›1090 REM DataQue Software›1100 REM ----------------------------›1110 REM Some information has been›1120 REM provided by ChalkBoard, Inc.›1130 REM›1140 REM ----------------------------›1150 REM SAVE "D:CBPPPRG2.LST"›1160 REM ----------------------------›1170 PRINT CHR$(125) : REM clear screen›1180 PRINT:PRINT "Power Pad Test Program-2"›1190 GOSUB 1290 : REM set up m.l.›1200 GOSUB 1450 : REM init pad›1210 GOSUB 1580 : GET SENSE›1220 GOSUB 1660 : GET X/Y›1230 IF X = 0 AND Y = 0 THEN 1210›1240 PRINT "X = ";X;" Y = ";Y›1250 GOTO 1210›1260 REM ----------------------------›1270 REM install machine code›1280 REM ----------------------------›1290 PRINT:PRINT"Please wait while I load M.L. code";›1300 DIM BYTE$(2),IP$(45),GS$(28),GY$(56),GX$(54)›1310 IP = ADR(IP$): REM set numric var›1320 GS = ADR(GS$): REM to addr of first›1330 GY = ADR(GY$): REM char in string›1340 GX = ADR(GX$): REM›1350 ADDR = IP : N = 45 : GOSUB 1720›1360 ADDR = GS : N = 28 : GOSUB 1720›1370 ADDR = GY : N = 52 : GOSUB 1720›1380 ADDR = GX : N = 52 : GOSUB 1720›1390 IC = 0 : REM counts init calls›1400 PRINT:PRINT "Done Installing M.L. code"›1410 RETURN›1420 REM -----------------------------›1430 REM initialize pad›1440 REM -----------------------------›1450 IC = IC + 1: IF IC = 5 THEN 1510›1460 L = USR(IP)›1470 RETURN›1480 REM -----------------------------›1490 REM error status›1500 REM -----------------------------›1510 PRINT:PRINT "Unable to talk to PowerPad. Did"›1520 PRINT "you plug pad into joysick port #1?"›1530 PRINT:PRINT›1540 END›1550 REM -----------------------------›1560 REM get sense›1570 REM -----------------------------›1580 SENSE = USR(GS)›1590 IF SENSE = 1 THEN 1610 : REM not there›1600 IC = 0 : RETURN›1610 GOSUB 1450 : REM re-init›1620 GOTO 1580›1630 REM -----------------------------›1640 REM get x and y values›1650 REM -----------------------------›1660 Y = USR(GY)›1670 X = USR(GX)›1680 RETURN›1690 REM ------------------------------›1700 REM store ML routine›1710 REM ------------------------------›1720 PRINT "."›1730 FOR L = ADDR TO ADDR+N-1›1740 READ BYTE$›1750 K = ASC(BYTE$(1,1))-48›1760 IF K > 9 THEN K = K - 7›1770 BYTE = K * 16›1780 K = ASC(BYTE$(1,1))-48›1790 IF K > 9 THEN K = K - 7›1800 BYTE = BYTE + K›1810 POKE L,BYTE : NEXT L›1820 RETURN›1830 REM ------------------------------›1840 REM data for M.L. routines›1850 REM -----------------------------›1860 DATA 68,AD,02,D3,29,FB,8D,02›1870 DATA D3,A9,06,8D,00,D3,AD,02›1880 DATA D3,09,04,8D,02,D3,A9,00›1890 DATA 8D,00,D3,EA,EA,A9,02,8D›1900 DATA 00,D3,A2,14,CA,D0,FD,8E›1910 DATA 00,D3,EA,EA,60›1920 DATA 68,A2,FF,A0,FF,AD,00,D3›1930 DATA 29,08,F0,09,CA,D0,F6,88›1940 DATA D0,F3,4A,4A,4A,85,D4,A9›1950 DATA 00,85,D5,60›1960 DATA 68,A9,04,8D,00,D3,A2,14›1970 DATA CA,D0,FD,8E,00,D3,EA,EA›1980 DATA A0,07,A9,04,8D,00,D3,A2›1990 DATA 14,CA,D0,FD,8E,00,D3,EA›2000 DATA EA,AD,00,D3,4A,66,D4,88›2010 DATA D0,E8,A5,D4,49,FF,4A,85›2020 DATA D4,84,D5,60›2030 DATA 68,A0,07,A9,04,8D,00,D3›2040 DATA A2,14,CA,D0,FD,8E,00,D3›2050 DATA EA,EA,AD,00,D3,4A,66,D4›2060 DATA 88,D0,E8,A5,D4,49,FF,4A›2070 DATA 85,D4,84,D5,A9,02,8D,00›2080 DATA D3,A2,14,CA,D0,FD,8E,00›2090 DATA D3,EA,EA,60›