- GOTO SCREEN begin *>SCREEN begin - POWER RESUME ON - GET NUMBER BACKGROUND STYLE SETUP: 2 dim pbox%(250) - PUT LARGE TEXT AT (3,4): "EASON TECHNOLOGY" - PUT LARGE TEXT AT (10,3): "TO" - PUT HUGE TEXT AT (2,1): "WELCOME!" - DELAY 1500 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (1,1): "You are about to see a demonstration of" - PUT TEXT AT (1,2): "Eason Technology's Model 1100 Industrial" - PUT TEXT AT (1,3): "Controller/Operator Interface. To begin" - PUT TEXT AT (1,4): "the demonstration, press 'DEMO' (F1)." - SOFTKEY (1) "DEMO" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " MAIN MENU SELECTION " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN main - PUT TEXT AT (1,3): "PRESS 'MOTOR' FOR MOTION CONTROL DEMO" - PUT TEXT AT (1,4): "PRESS 'ANLOG' FOR AN ANALOG I/O DEMO" - PUT TEXT AT (1,5): "PRESS 'SHOW' FOR A SELF RUNNING DEMO" - PUT LARGE TEXT AT (6,1): "MAIN MENU" - SOFTKEY (1) "MOTOR" GOTO SCREEN mtrbegin - SOFTKEY (2) "ANLOG" GOTO SCREEN analog - SOFTKEY (3) "SHOW" GOTO SCREEN showscrn - SOFTKEY (9) "" GOTO SCREEN byebye help = 0 - HOT KEY (9) DISABLE - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " MOTOR CONTROLLER SECTION " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN mtrbegin - PUT TEXT AT (1,5): "This program is specifically designed to" - PUT TEXT AT (4,6): "control the Parker Compumotor SX" - PUT TEXT AT (14,7): "Motor-Driver." - PUT LARGE TEXT AT (2,1): "PARKER COMPUMOTOR" - PUT LARGE TEXT AT (3,2): "SX DEMO PROGRAM" - DELAY 2000 - GOTO SCREEN testsx - LABEL initunit - COMMENT "Initialize units for DRIVE" pitch=5 dd&=onerev dscale=1 dlbl$="STEPS" vd%=10 vscale=1 vlbl$="REVS/SECOND" ascale=1 ad%=100 albl$="REVS/SEC^2" - RETURN - TITLE:::::::::: "INITIALIZE SX" :::::::::::: *>SCREEN testsx - PUT TEXT AT (2,1): "ATTEMPTING TO ESTABLISH COMMUNICATION" - PUT TEXT AT (8,2): "WITH THE SX MOTOR/DRIVE." - PUT LARGE TEXT AT (2,3): "PLEASE STAND BY..." onerev=25000 drtype=1 - GOSUB LABEL initunit - COM: INIT COM 1 ECHO 1 BAUD 96 HANDSHAKE 0 TIMEOUT 250 STRIP 1 - DELAY 750 n = 1 - LABEL comtests - COM: PUT COM 1 TEXT "1E 1K 1MN 1R" - COM: GET COM 1 TEXT stat$ if stat$ = "*R" or stat$ = "*S" then goto runsx if n = 11 then goto notalksx - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT LARGE TEXT AT (1,1): "DRIVE NOT RESPONDING" - PUT TEXT AT (4,4): "RETRYING CHECK-OUT TEN MORE TIMES" - PUT TEXT AT (14,6): "ATTEMPT #" - PUT NUMBER n AT (24,6) USING "##" n = n+1 - GOTO LABEL comtests - LABEL notalksx - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (3,1): "CANNOT ESTABLISH COMMUNICATIONS WITH" - PUT TEXT AT (15,2): "MOTOR/DRIVE" - PUT TEXT AT (8,5): "RETURNING TO BASIC..." - DELAY 1000 - GOTO SCREEN errexit - LABEL runsx - COM: INIT COM 1 ECHO 1 BAUD 96 HANDSHAKE 0 TIMEOUT 1000 STRIP 1 - COM: PUT COM 1 TEXT "1SSI1 1LD3 1A100 1V10 1D25000" - COM: PUT COM 1 TEXT "1DPE1" - COM: GET COM 1 TEXT ps$ ps$=right$(ps$,11):pzero&=val(ps$) - CLEAR GRAPHICS SCREEN - GOTO SCREEN mmain - TITLE:::::::::: ":::::::::::::" :::::::::::: - TITLE:::::::::: "MAIN RUN LOOP" :::::::::::: - TITLE:::::::::: ":::::::::::::" :::::::::::: *>SCREEN mmain - PUT TEXT AT (1,3): "A-V-D CHANGE ACCEL,VEL, AND DISTANCE" - PUT TEXT AT (1,4): "UNITS CHANGE UNITS" - PUT TEXT AT (1,5): "RUN PERFORM MOVES, VIEW STATUS" - PUT TEXT AT (1,6): "SEQ DOWNLOAD AND EXECUTE A SEQUENCE" - PUT TEXT AT (1,7): "GO MAKE A MOVE" - PUT LARGE TEXT AT (2,1): "SELECT A FUNCTION:" - SOFTKEY (1) "A-V-D" GOTO SCREEN avdset - SOFTKEY (2) "UNITS" GOTO SCREEN units - SOFTKEY (3) " RUN" GOTO SCREEN runscr - SOFTKEY (4) " SEQ" GOTO SCREEN sequence - SOFTKEY (5) "MOVE" GOTO SCREEN start - SOFTKEY (6) "EXIT" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "SET ACCELERATION, VELOCITY, DISTANCE, AND PITCH" :::::::::::: *>SCREEN QUICK avdset - CLEAR SCREEN - PUT TEXT AT (1,3): "ACCEL CHANGE ACCELERATION" - PUT TEXT AT (1,4): "VEL CHANGE VELOCITY" - PUT TEXT AT (1,5): "DIST CHANGE DISTANCE" - PUT TEXT AT (1,6): "PITCH CHANGE SCREW PITCH" - PUT TEXT AT (1,7): "DEFLT RESTORE SYSTEM DEFAULTS" - PUT LARGE TEXT AT (1,1): "MOTION PARAMETERS: " - SOFTKEY (1) "ACCEL" GOTO SCREEN accelset - SOFTKEY (2) " VEL" GOTO SCREEN velset - SOFTKEY (3) "DIST" GOTO SCREEN distset - SOFTKEY (4) "PITCH" GOTO SCREEN pitchset - SOFTKEY (5) "DEFLT" GOTO SCREEN defltscr - SOFTKEY (6) "EXIT" GOTO SCREEN mmain - SOFTKEY WAIT - TITLE:::::::::: "SET UP ACCELERATION" :::::::::::: *>SCREEN accelset - PUT TEXT AT (1,2): "ACCELERATION IN" - PUT TEXT AT (1,4): "ENTER ACCELERATION:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - PUT TEXT AT (17,2): albl$ ad% = ad% / ascale - GET NUMBER ad% AT (21,4) USING "###.##" DEFAULT ad% ad% = ad% * ascale a$="1A"+str$(ad%) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN avdset - TITLE:::::::::: "SET UP VELOCITY" :::::::::::: *>SCREEN velset - PUT TEXT AT (1,2): "VELOCITY IN" - PUT TEXT AT (1,4): "ENTER VELOCITY:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - PUT TEXT AT (13,2): vlbl$ vd% = vd% / vscale - GET NUMBER vd% AT (21,4) USING "###.##" DEFAULT vd% vd% = vd% * vscale a$="1V"+str$(vd%) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN avdset - TITLE:::::::::: "SET UP DISTANCE" :::::::::::: *>SCREEN distset - PUT TEXT AT (1,2): "DISTANCE IN" - PUT TEXT AT (1,4): "ENTER DISTANCE:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - PUT TEXT AT (13,2): dlbl$ td = dd& / dscale - GET NUMBER td AT (18,4) USING "-#########.##" DEFAULT td dd& = td * dscale a$="1D"+str$(dd&) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN avdset - TITLE:::::::::: "SET UP SCREW PITCH" :::::::::::: *>SCREEN pitchset - PUT TEXT AT (1,1): "Enter a screw pitch which will provide" - PUT TEXT AT (1,2): "translation between motor rotation and" - PUT TEXT AT (1,3): "linear travel." - PUT TEXT AT (1,5): "ENTER SCREW PITCH:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - GET NUMBER pitch AT (20,5) USING "##.###" DEFAULT pitch - COM: PUT COM 1 TEXT a$ - GOTO SCREEN units - TITLE:::::::::: "RESTORE SYSTEM DEFAULTS" :::::::::::: *>SCREEN defltscr - GOSUB LABEL initunit - COM: PUT COM 1 TEXT "1S 1V10 1A100 1D25000" - GOTO SCREEN avdset - TITLE:::::::::: "SET DISPLAY / ENTRY UNITS" :::::::::::: *>SCREEN units - PUT TEXT AT (2,4): "LINEAR MEASURE ASSUMES A PITCH" - PUT TEXT AT (2,5): "LEAD SCREW ON A LINEAR TRANSLATION" - PUT TEXT AT (2,6): "DEVICE." - PUT LARGE TEXT AT (1,1): "SELECT MOTION UNITS-" - PUT NUMBER pitch AT (27,4) USING "##.###" - SOFTKEY (1) "STEPS" GOTO SCREEN steps - SOFTKEY (2) "MILS" GOTO SCREEN mils - SOFTKEY (3) "INCH" GOTO SCREEN inch - SOFTKEY (4) " MM" GOTO SCREEN mms - SOFTKEY (5) " UM" GOTO SCREEN ums - SOFTKEY (6) "EXIT" GOTO SCREEN mmain - SOFTKEY WAIT - TITLE:::::::::: "SCALE UNITS IN STEPS" :::::::::::: *>SCREEN steps - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (3,2): "STEPS" dscale = 1 dlbl$ = "STEPS" vscale = 1 vlbl$ = "REVS/SECOND" ascale = 1 albl$ = "REVS/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN MILS" :::::::::::: *>SCREEN mils - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (4,2): "MILS" dscale = onerev*pitch/1000 dlbl$ = "MILS" vscale = pitch vlbl$ = "INCHES/SECOND" ascale = pitch albl$ = "INCHES/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN INCHES" :::::::::::: *>SCREEN inch - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (10,2): "IN" - PUT HUGE TEXT AT (3,2): "INCHES" dscale = onerev*pitch dlbl$ = "INCHES" vscale = pitch vlbl$ = "INCHES/SECOND" ascale = pitch albl$ = "INCHES/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN MILLIMETERS" :::::::::::: *>SCREEN mms - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (10,2): "IN" - PUT HUGE TEXT AT (1,2): "MILLIMETER" dscale = onerev*pitch/25.4 dlbl$ = "MM" vscale = 25.4*pitch vlbl$ = "MM/SECOND" ascale = 25.4*pitch albl$ = "MM/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN MICRONS" :::::::::::: *>SCREEN ums - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (2,2): "MICRONS" dscale = onerev*pitch/25400 dlbl$ = "MICRONS" vscale = 25400*pitch vlbl$ = "MICRONS/SECOND" ascale = 25400*pitch albl$ = "MICRONS/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "STATUS AND MOVE SYSTEM" :::::::::::: *>SCREEN runscr - CLEAR SCREEN - PUT TEXT AT (2,4): "POSITION:" - PUT TEXT AT (4,5): "STATUS:" - PUT TEXT AT (4,6): "LIMITS:" - PUT TEXT AT (4,7): "INPUTS:" - PUT LARGE TEXT AT (2,1): "RUN SX MOTOR/DRIVE" - PUT TEXT AT (24,4): dlbl$ gostr$="1S 1A"+str$(ad%)+" 1V"+str$(vd%)+" 1D"+str$(dd&) - COM: PUT COM 1 TEXT gostr$ - SOFTKEY (1) "ZERO" GOTO SCREEN zeroscr - SOFTKEY (2) "MOVE" GOTO SCREEN starts - SOFTKEY (3) "STOP" GOTO SCREEN stops - SOFTKEY (4) "EDIT" GOTO SCREEN editscr - SOFTKEY (6) "EXIT" GOTO SCREEN mmain 'hard coded for improved speed... - LABEL statloop print#1,"1DPE1":line input#1,e$:line input#1,ps$:ps$=right$(ps$,11) px&=val(ps$)-pzero&:p=px&:px&=px&/dscale:p=p/dscale if dscale= 1 then pos11,4:print using"-###########";px&; if dscale<>1 then pos11,4:print using"-#######.###";p; print#1,"1R":line input#1,e$:line input#1,stat$ pos12,5:if stat$="*R"then print"READY "; if stat$="*S"then print"READY, ATTENTION NEEDED"; if stat$="*B"then print"BUSY "; if stat$="*C"then print"BUSY, ATTENTION NEEDED "; if stat$="*Z"then print"BUSY, AUTORUN MODE "; print#1,"1IS":line input#1,e$:line input#1,iostat$ lim$="" if mid$(iostat$,4,1)="1" then lim$="CW" if mid$(iostat$,5,1)="1" then lim$=lim$+"CCW" if lim$<>"" then lim$="LIMIT(S) ACITIVE: "+lim$ if lim$="" then lim$= "NO LIMITS ACTIVE " pos12,6:print lim$; iobits$=mid$(iostat$,7,4)+mid$(iostat$,12,4) pos12,7:print iobits$; skey%=inkey():if skey%=0then goto statloop if skey%=15104then goto zeroscr if skey%=15360then goto starts if skey%=15616then goto stops if skey%=15872then goto editscr if skey%=16384then goto mmain - GOTO LABEL statloop - LABEL zeroscr print#1,"1DPE1":line input#1,e$:line input#1,ps$:ps$=right$(ps$,11) pzero&=val(ps$) - GOTO LABEL statloop - TITLE:::::::::: "START MOTION" :::::::::::: - LABEL starts print#1,"1G":line input#1,e$ - GOTO LABEL statloop - TITLE:::::::::: "STOP MOTION" :::::::::::: - LABEL stops print#1,"1S":line input#1,e$ - GOTO LABEL statloop - TITLE:::::::::: "EDIT MOVE DATA" :::::::::::: *>SCREEN QUICK editscr - PUT LARGE TEXT AT (1,1): " EDIT-PRESS ENTER " - CLEAR SCREEN - PUT TEXT AT (1,4): "MOVE DIST:" - PUT TEXT AT (2,5): "VELOCITY:" - PUT TEXT AT (5,6): "ACCEL:" - PUT TEXT AT (26,4): dlbl$ - PUT TEXT AT (26,5): vlbl$ - PUT TEXT AT (26,6): albl$ td = dd& / dscale - PUT NUMBER td AT (12,4) USING "-#########.##" dd& = td * dscale a$="1D"+str$(dd&) - COM: PUT COM 1 TEXT a$ vd% = vd% / vscale - PUT NUMBER vd% AT (19,5) USING "###.##" vd% = vd% * vscale a$="1V"+str$(vd%) - COM: PUT COM 1 TEXT a$ ad% = ad% / ascale - PUT NUMBER ad% AT (19,6) USING "###.##" ad% = ad% * ascale a$="1A"+str$(ad%) - COM: PUT COM 1 TEXT a$ td = dd& / dscale - GET NUMBER td AT (12,4) USING "-#########.##" DEFAULT td dd& = td * dscale a$="1D"+str$(dd&) - COM: PUT COM 1 TEXT a$ vd% = vd% / vscale - GET NUMBER vd% AT (19,5) USING "###.##" DEFAULT vd% vd% = vd% * vscale a$="1V"+str$(vd%) - COM: PUT COM 1 TEXT a$ ad% = ad% / ascale - GET NUMBER ad% AT (19,6) USING "###.##" DEFAULT ad% ad% = ad% * ascale a$="1A"+str$(ad%) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN runscr - TITLE:::::::::: "DOWNLOAD AND RUN A SEQUENCE" :::::::::::: *>SCREEN QUICK sequence - CLEAR SCREEN - PUT TEXT AT (3,3): "A SEQUENCE TO THE MOTION CONTROLLER" - PUT LARGE TEXT AT (1,1): " TRANSMITTING... " i=1 - LABEL seq1 - COM: PUT COM 1 TEXT "1R" - COM: GET COM 1 TEXT stat$ if i=2 then goto seqerr i=i+1 if stat$ <> "*R" and stat$ <> "*S" then goto seq1 seq$="1A100 1V20 1D25000 1G 1H+ 1G 1V5 1H- 1G 1V10 1H+ 1G" - COM: PUT COM 1 TEXT "1XE1 1XD1" - COM: PUT COM 1 TEXT seq$ - COM: PUT COM 1 TEXT "1XT" n=1 - LABEL sxseq1 - COM: PUT COM 1 TEXT "1R" - COM: GET COM 1 TEXT stat$ delay 10 if n=10 then goto seqerr n=n+1 if stat$ <> "*R" then goto sxseq1 - PUT TEXT AT (11,4): "SEQUENCE CONTENTS:" - PUT TEXT AT (2,5): seq$ - PUT TEXT AT (3,7): "RUNNING SEQUENCE TEN TIMES...." - COM: PUT COM 1 TEXT "1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1" i=1 - LABEL seqdone - COM: PUT COM 1 TEXT "1R" - COM: GET COM 1 TEXT stat$ if stat$ <> "*R" and stat$ <> "*S" then goto seqdone - GOTO SCREEN mmain - TITLE:::::::::: "SEQUENCE ERROR" :::::::::::: - LABEL seqerr - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - KEY OFF - PUT LARGE TEXT AT (1,1): "CAN'T SEND SEQUENCE" - PUT TEXT AT (2,5): "RETURNING TO MOTION SELECTION MENU...." - DELAY 1500 - CLEAR GRAPHICS SCREEN - GOTO SCREEN mmain - TITLE:::::::::: "START MOTION" :::::::::::: *>SCREEN QUICK start - CLEAR SCREEN - PUT LARGE TEXT AT (1,1): " MOTION HAS BEGUN " - COM: PUT COM 1 TEXT "1G" - DELAY 250 - GOTO SCREEN mmain - TITLE:::::::::: "KILL MOTION" :::::::::::: *>SCREEN QUICK kill - CLEAR SCREEN - PUT LARGE TEXT AT (1,1): " STOPPING MOTION " - COM: PUT COM 1 TEXT "1S" - DELAY 500 - GOTO SCREEN mmain *>SCREEN errexit - PUT TEXT AT (1,1): "The Model 1000 was unable to communicate" - PUT TEXT AT (1,2): "with the Parker Compumotor SX Motor-" - PUT TEXT AT (1,3): "Drive. Check your connections. Do you" - PUT TEXT AT (1,4): "have the demo cable (9-pin to bare wire)" - PUT TEXT AT (1,5): "connected to COM1 on the Model 1000 and" - PUT TEXT AT (1,6): "the SX Motor-Driver RS232 connector? If" - PUT TEXT AT (1,7): "you have questions about connections," - SOFTKEY (1) "MORE" GOTO SCREEN errmore - SOFTKEY WAIT *>SCREEN errmore - PUT TEXT AT (1,1): "refer to Section 5.6.1 of the Model 1000" - PUT TEXT AT (1,2): "manual. If you need further assistance" - PUT TEXT AT (1,3): "contact Eason Technology at:" - PUT TEXT AT (9,5): "PHONE: (707) 433-2854" - PUT TEXT AT (11,6): "FAX: (707) 433-3706" - SOFTKEY (1) "MORE" GOTO SCREEN mmain - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " SIMULATED ANALOG DEMONSTRATION SCREENS " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN analog - PUT TEXT AT (1,3): "If this Model 1100 had an A03 analog" - PUT TEXT AT (1,4): "option installed, it would have 8 12-bit" - PUT TEXT AT (1,5): "inputs and 2, 12-bit outputs. All" - PUT TEXT AT (1,6): "analog I/O is optically isolated." - PUT TEXT AT (1,7): "Press to continue." - PUT LARGE TEXT AT (1,1): "ANALOG DEMONSTRATION" - SOFTKEY (1) "MORE" GOTO SCREEN anascr1 help = 5 - SOFTKEY WAIT *>SCREEN anascr1 - PUT TEXT AT (7,3): "(SIMULATED BAR GRAPH DATA)" - PUT TEXT AT (1,6): "| | | | |" - PUT TEXT AT (1,7): "0V 2.5V 5.0V 7.5V 10V" - PUT LARGE TEXT AT (4,1): "ANALOG INPUTS:" - SOFTKEY (1) "CONT" GOTO SCREEN anascr2 xvalold%=0 - BAR GRAPH UPPER LEFT (0,28) LOWER RIGHT (239,39) ORIENT: 0 - BAR GRAPH SCALE LOWER LIMIT 0 UPPER LIMIT 240 X%=0:INCR%=1 - LABEL anasc1a if X%>240 then INCR%=-1 if X%<0 then INCR%=1 xval%=X%+INCR%; - BAR GRAPH DISPLAY: xval% - SOFTKEY CHECK - GOTO LABEL anasc1a *>SCREEN anascr2 - PUT TEXT AT (2,3): "The MODEL 1100 can have up to FOUR" - PUT TEXT AT (2,4): "analog outputs installed. These are" - PUT TEXT AT (2,5): "+/- 10V, 12-bit D/A converters." - PUT TEXT AT (1,7): "Press to return to the main menu" - PUT LARGE TEXT AT (4,1): "ANALOG OUTPUT:" - SOFTKEY (1) "CONT" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " FREE RUNNING SHOW DEMONSTRATION " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN showscrn - HOT KEY (9) "a" INTERRUPT: GOSUB LABEL main help=4 - LABEL showstar ' - CURSOR 0 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN call box(1,1,20,20,1) call getimage(0,0,21,21,pbox%(1)) for n=1 to 150 x=rnd(219):y=rnd(43) call putimage(x,y,pbox%(1)) next - PUT REVERSE LARGE TEXT AT (8,1): "EASON" - PUT REVERSE TEXT AT (15,3): "TECHNOLOGY" CALL BANNER(5,3,"MODEL 1100",2,,1) - DELAY 2500 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN ' ' plot some random lines ( looks good! ) ' pos 3,8 print "The 1100 comes ready to do graphics"; pos 40,8 call line( 239,25,0,25,1 ) x% = 0 : y% = 1 label show3 y% = rnd(25) * sgn(y%) * (-1) call line( ,,x%,y%+25,1 ) x% = x% + 1 + rnd(4) if x%<240 then goto show3 delay 500 : cls : call gcls() ' ' ' show off the i/o possibilities by drawing the back side of the ' MODEL 1100 and pointing to the different connectors ' gosub soiback pos 1,1 print "The MODEL 1100 has a" print "large variety of I/O" print " possibilities" print print " Standard" print " features" print " include..." pos 40,8 : delay 2000 ' ' tell viewer about the two rs-232 ports ' cls print print "Two RS-232/422 or 485" print " ports that can be" print " independently" print " configured!" ' call banner( 4,4,"COM1",0 ): ' point to the COM1 connector call line( 83, 55, 106, 55, 1 ) call line( 106, 55, 177, 27, 1 ) pos 40,8 : delay 3000 call line( 83, 55, 106, 55, 0 ) call line( 106, 55, 177, 27, 0 ) call banner( 4,4," ",0 ) gosub drawopt ' call banner( 4,4,"COM2",0 ): ' point to the COM2 connector call line( 87, 55, 106, 55, 1 ) call line( 106, 55, 193, 27, 1 ) pos 40,8 : delay 2000 call line( 87, 55, 106, 55, 0 ) call line( 106, 55, 193, 27, 0 ) call banner( 4,4," ",0 ) - DELAY 1000 - GOSUB LABEL showserl ' ' tell viewer about the keyboard and printer interface ' cls print print "One IBM keyboard and" print " printer interface!" ' call banner( 4,3," KB",0 ): ' point to the KB and PRT connectors call banner( 4,4,"PRT",0 ) call line( 79, 39, 106, 39, 1 ) call line( 106, 39, 189, 11, 1 ) call line( 79, 55, 168, 47, 1 ) pos 40,8 : delay 3000 call banner( 4,3," ",0 ) call banner( 4,4," ",0 ) call line( 79, 39, 106, 39, 0 ) call line( 106, 39, 189, 11, 0 ) call line( 79, 55, 168, 47, 0 ) gosub drawopt ' ' tell viewer about the option boards ' cls print " Two internal slots" print " for option boards," print " for example:" print print " quadrature counter" print " or" print " 12 bit D/A and A/D" for x = 1 to 4 pos 23,3 : print"OPT 1"; : pos 40,8 delay 1000 pos 23,3 : print" "; pos 23,6 : print"OPT 2"; : pos 40,8 delay 1000 pos 23,6 : print" "; next - GOSUB LABEL showopt ' ' tell about the 24 bit i/o bus and point to the connector ' print print "24 bit parallel I/O" print "that is internally" print "optically isolated" call banner( 4,4,"IO24",0 ) call line( 85,55, 191,55, 1) delay 3000 - GOSUB LABEL showio ' ' ' scroll ending message from left to right and ' cls : call gcls() a$ = "you have just seen a brief demonstration of the MODEL 1100" a$ = " " + a$ + " " for n=1 to 59 delay 100 call banner( 1,2,left$(a$,20),0 ) a$ = right$( a$, len(a$)-1 ) next call gcls():cls - SOFTKEY CHECK goto showstar ' draw the back side of the MODEL 1100 ' label soiback call gcls() label drawopt col% = 126 ox% = col%+53:oy% = 3: gosub drawpin ox% = col%+69:oy% = 3: gosub drawpin ox% = col%+45:oy% = 36:gosub drawpin call box( col%+69, 31, col%+75, 60, 1 ) call box( col%, 0, col%+84, 63, 1 ) call box( col%+4, 4, col%+38, 29, 1 ) call box( col%+4, 34, col%+38, 59, 1 ) call line( 190, 5, 191, 5, 1 ) call line( 189, 6, 192, 6, 1 ) call line( 189, 7, 192, 7, 1 ) call line( 190, 8, 191, 8, 1 ) return ' ' draw a 25 pin RS-232 connector ' label drawpin for y% = oy%+3 to oy%+17 step 2 : ' draw the pins of the connector call set( ox%+2, y%, 1 ) call set( ox%+4, y%+1, 1 ) next call set( ox%+2, y%, 1): ' draw the very last pin call line( ox%, oy%, ox%, oy%+22, 1 ): 'draw the frame call line( ox%+6, oy%+2, ox%+6, oy%+20, 1 ): ' of the connector call line( ox%, oy%, ox%+6, oy%+2, 1 ) call line( ox%, oy%+22, ox%+6, oy%+20, 1) return - LABEL showserl - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (1,3): "CAN BE USED TO SEND DATA TO DEVICES THAT" - PUT TEXT AT (1,4): "USE RS232, RS422, OR RS485, SUCH AS:" - PUT LARGE TEXT AT (1,1): "SERIAL COMMUNICATION" - PUT LARGE TEXT AT (1,3): "OTHER COMPUTERS..." - DELAY 1000 - PUT LARGE TEXT AT (16,3): " AND" - PUT LARGE TEXT AT (1,4): "MOTION CONTROLLERS." - COM: PUT COM 1 TEXT "1E 1K MN 1LD3 A100 V10 D25600" - COM: PUT COM 1 TEXT "L5 G H T.2 N D1280 L10 G T.1 N" - DELAY 1500 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN gosub drawopt - RETURN - LABEL showopt - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (1,5): "CURRENT" - PUT TEXT AT (1,6): "POSITION" - PUT TEXT AT (35,6): "COUNTS" - PUT TEXT AT (14,7): "(SIMULATED DATA)" - PUT LARGE TEXT AT (1,1): "ENCODERS CAN BE USED" - PUT LARGE TEXT AT (1,2): "FOR CONTROL/DISPLAY:" count&=0 - PUT LARGE TEXT AT (5,3): ":" for i = 1 to 20 count&=count&+123 - PUT LARGE NUMBER count& AT (7,3) USING "-#########" - DELAY 150 next i - PUT LARGE TEXT AT (6,3): " " - PUT TEXT AT (1,6): "VOLTAGE " - PUT TEXT AT (35,6): "VOLTS " - PUT TEXT AT (14,7): "(SIMULATED DATA)" - PUT LARGE TEXT AT (1,1): " ANALOG DATA CAN BE " - PUT LARGE TEXT AT (1,2): "BROUGHT IN & PUT OUT" - PUT LARGE TEXT AT (5,3): ":" anashow = 0 for i = 1 to 20 anashow = anashow+1.126 - PUT LARGE NUMBER anashow AT (9,3) USING "##.###" - DELAY 150 next i - CLEAR GRAPHICS SCREEN - CLEAR SCREEN gosub drawopt - RETURN - LABEL showio - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (2,3): "CAN BE USED TO LOOK AT PUSHBUTTONS AND" - PUT TEXT AT (2,4): "SENSORS OF MANY TYPES AND TO ACTIVATE" - PUT LARGE TEXT AT (2,1): "INPUTS AND OUTPUTS" - PUT LARGE TEXT AT (6,3): "LIGHTS..." for i = 1 to 4 - I/O: PUT I/O BIT PATTERN "XX000XXXX" - DELAY 300 - I/O: PUT I/O BIT PATTERN "XX111XXXX" - DELAY 150 next i - PUT LARGE TEXT AT (3,3): "RELAYS AND VALVES" for i = 1 to 4 - I/O: PUT I/O BIT PATTERN "X0XXXXXXX" - DELAY 300 - I/O: PUT I/O BIT PATTERN "X1XXXXXXX" - DELAY 150 next i - PUT LARGE TEXT AT (3,3): " AND MUCH MORE! " for i = 1 to 8 - I/O: PUT I/O BIT PATTERN "XXX0XXXXX" - DELAY 200 - I/O: PUT I/O BIT PATTERN "XXX10XXXX" - DELAY 200 - I/O: PUT I/O BIT PATTERN "XX0X1XXXX" - DELAY 200 if i/2 = fix(i/2) then flg=1 else flg=0 if flg=1 then goto roll - I/O: PUT I/O BIT PATTERN "X01XXXXXX" next i - GOTO LABEL roll2 - LABEL roll - I/O: PUT I/O BIT PATTERN "X11XXXXXX" next i - LABEL roll2 - RETURN - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " EXIT DEMONSTRATION PROGRAM " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN byebye - PUT HUGE TEXT AT (1,1): "THANK YOU!" - PUT LARGE TEXT AT (3,3): "FOR WORKING WITH" - PUT LARGE TEXT AT (2,4): "EASON TECHNOLOGY!!" - CURSOR 0 - DELAY 3000 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - END OF PSEUDOCODE