1000,"R:    A TUTORIAL PROGRAM IN PILOT ABOUT PILOT",1010,"R:",1020,"R:  PACIFIC UNION COLLEGE,  L. TURNER, MAY 73",1030,"R:",1040,"R:       PROGRAM NUMBER 1,  EMPHASIS ON TYPE AND ANSWER",1050,"R:",1060,"R:***********************************************************",1070,"R:",1080,"R:              INTRODUCTION",1090,"R:",1100,"T:",1110,"T:THIS IS THE FIRST IN A SERIES OF TUTORIAL PROGRAMS TO TEACH +",1120,"T:YOU ALL ABOUT 'PILOT'!!"
1130,"T:",1140,"T:FIRST, WHAT IS YOUR NAME +",1150,"A:$NAME",1160,"T:",1170,"T:OK, $NAME+, DOWN TO BUSINESS!  HAVE YOU EVER USED THE PILOT +",1180,"T:LANGUAGE BEFORE +",1190,"A:",1200,"M:YES,ONCE,I HAV,CORRECT,OF COUR,CERT,AFF,RIGHT",1210,"Y:GOOD!",1220,"JY:*QUES1",1230,"T:YOU HAVE COME TO THE RIGHT PLACE!  WHAT ABOUT OTHER CAI",1240,"T:LANGUAGES +",1250,"A:$LANG"
1260,"M:YES,OF COURS,RIGHT,MANY,OFTEN,LOT,ALL",1270,"JY:*MORELAN",1280,"M:NO,NEV,DON'T,WHAT",1290,"JY:*WHATISCAI",1300,"*LESSLAN M:PILOT,PYL,NYL,SNOB,IDF",1310,"N:WELL, PERHAPS $LANG CAN BE USED FOR CAI, BUT +",1320,"Y:WELL, +",1330,"T:I THINK 'PILOT' IS JUST ABOUT THE BEST!",1340,"J:*QUES1A",1350,"*MORELAN T:WHAT ARE SOME +",1360,"A:$LANG",1370,"J:*LESSLAN",1380,"*WHATISCAI T:WHAT DOES CAI MEAN +"
1390,"A:",1400,".M:[COM*[ASS*[INS,[COMP*[AID*[INS",1410,"Y:A VERY GOOD START $NAME+.",1420,"N:SORRY, CAI STANDS FOR 'COMPUTER ASSISTED INSTRUCTION'.",1430,"*QUES1A T:",1440,"T:AS YOU PROGRESS THOUGH THIS MATERIAL DO NOT BE DISMAYED IF YOU +",1450,"T:DO NOT KNOW THE ANSWER OR DO NOT EVEN UNDERSTAND THE QUESTION, +",1460,"T:JUST RESPOND NATURALLY.  THIS PROGRAM IS DESIGNED TO BE A +",1470,"T:LEARNING EXPERIENCE.  YOU WILL NOT BE 'GRADED' AND THE COMPUTER +",1480,"T:WILL NOT HOLD IT AGAINST YOU FOR A WRONG ANSWER!"
1490,"J:*QUES1BP",1500,"*QUES1 T:",1510,"T:SINCE YOU HAVE PREVIOUSLY USED 'PILOT', YOU MAY WISH TO SKIP +",1520,"T:OVER THE FIRST PART OF THIS PROGRAM THAT DEALS WITH THE TYPE +",1530,"T:AND ANSWER STATEMENTS AND PROCEED TO THE SECTION THAT DESCRIBES +",1540,"T:HOW TO ENTER A PILOT PROGRAM.",1550,"T:WOULD YOU LIKE TO GO DIRECTLY THERE +",1560,"A:",1570,".M:[Y],YES,PLS,OF COURS,RIGH,[GO",1580,"JY:*SECONDPART",1590,"R:",1600,"R:               NEW MATERIAL",1610,"R:"
1620,"*QUES1BP T:",1630,"T:AN IMPORTANT ASPECT OF CAI IS TO ESTABLISH A DIALOG BETWEEN +",1640,"T:THE COMPUTER AND THE STUDENT.  THIS FORCES THE STUDENT TO +",1650,"T:INTERACT AND ACTIVELY PARTICIPATE.  THE PILOT LANGUAGE IS +",1660,"T:ESPECIALLY DESIGNED FOR THIS.",1670,"T:",1680,"T:IN ORDER TO ESTABLISH A DIALOG WHAT MUST THE COMPUTER BE ABLE",1690,"T:TO DO +",1700,"A:",1710,"M:TYPE,PRINT,OUTPUT,DISPLAY,ASK,REQUES",1720,"Y:THAT'S RIGHT $NAME+, +",1730,"T:THE COMPUTER MUST PRINT OUT INFORMATION AND ASK QUESTIONS OF +"
1740,"T:THE STUDENT.",1750,"T:",1760,"T:THIS IS ACCOMPLISHED IN PILOT BY A 'TYPE' STATEMENT DESIGNATED +",1770,"T:BY A 'T'.  TYPICAL TYPE STATEMENTS WOULD APPEAR AS:",1780,"T:",1790,"T:             1000 T:HI THERE!",1800,"T:             1010 T:I DO LIKE YOU.",1810,"T:             1020 T:",1820,"T:             1030 T:THAT IS VERY GOOD FOR YOU TO KNOW!!",1830,"T:",1840,"T:APART FROM THE 'T' THESE STATEMENTS HAVE TWO COMMON FEATURES.  +",1850,"T:WHAT ARE THEY +",1860,"A:"
1870,"M:NUMBER,INTEGER",1880,"M:COLON,:",1890,".D:2",1900,"Y:ABSOLUTELY CORRECT!  +",1910,"T:ALL PILOT STATEMENTS BEGIN WITH A LINE NUMBER (OR STATEMENT +",1920,"T:NUMBER), AND ALL PILOT STATEMENTS CONTAIN A COLON.",1930,"T:",1940,"T:WHAT PURPOSE DOES THE LINE NUMBER SERVE??",1950,"A:",1960,"M:SEQUEN,ORDER,EDIT,INSERT,MODIF,REPLA,DELET,ARRANG,ARANG",1970,"Y:RIGHT ON, $NAME+!",1980,"JY:*QUES2",1990,"T:ACTUALLY, THE LINE NUMBERS SERVE ONLY TO SEQUENCE THE PILOT +"
2000,"T:STATEMENTS.  THE STATEMENTS ARE ARRANGED IN ORDER OF +",2010,"T:INCREASING LINE NUMBERS.  THUS THEY MAY BE ENTERED IN ANY +",2020,"T:ORDER.  THIS ALLOWS FOR INSERTION, REPLACEMENT, OR DELETION +",2030,"T:OF STATEMENTS.",2040,"T:",2050,"T:IF YOU WANTED TO INSERT A STATEMENT BETWEEN THE STATEMENTS +",2060,"T:1000 AND 1010 ABOVE, WHAT WOULD BE THE NUMBER OF THE NEW +",2070,"T:STATEMENT +",2080,"*NEWNUM A:#N",2090,"TB:TRY A NUMBER PLEASE+",2100,"JB:*NEWNUM",2110,"T(N=1000):NO, YOU JUST MODIFIED THE FIRST ONE!"
2120,"T(N=1010):NO, YOU JUST MODIFIED THE SECOND ONE!",2130,"M:1001,1002,1003,1004,1005,1006,1007,1008,1009",2140,"Y:VERY GOOD!  +",2150,"N:WRONG, SIGH!  +",2160,"T:ANY INTEGER BETWEEN 1000 AND 1010 WOULD DO JUST FINE.",2170,"T:",2180,"T:TO MODIFY ONE OF THESE STATEMENTS JUST USE THE SAME NUMBER +",2190,"T:AND RETYPE THE STATEMENT CORRECTLY.  THE COMPUTER WILL USE +",2200,"T:ONLY THE LAST ONE TYPED IN IF YOU TYPE IN TWO STATEMENTS WITH +",2210,"T:THE SAME NUMBER.",2220,"T:TO DELETE A NUMBER JUST TYPE ONLY THE NUMBER!"
2230,"T:",2240,"*QUES2 T:WHAT IS THE SMALLEST STATEMENT NUMBER ALLOWED +",2250,"C:N=0",2260,"A:#N",2270,"T(N#1):NOT QUITE $NAME+!  +",2280,"T(N=1):YES, +",2290,"T:THE SMALLEST ALLOWED STATEMENT NUMBER IS 1, AND THE LARGEST +",2300,"T:IS 9999.",2310,"T:",2320,"T:WHAT WOULD STATEMENT 1000 ACTUALLY PRINT IF THE PROGRAM ABOVE +",2330,"T:WERE EXECUTED??  (REMEMBER,   1000 T:HI THERE!).",2340,"A:",2350,".M:[HI THERE!"
2360,"T:",2370,"Y:FINE!  +",2380,"N:NO, ONLY THE PART TO THE RIGHT OF THE COLON IS PRINTED.  +",2390,"T:THE COLON SEPARATES THE STATEMENT INTO TWO PARTS.  TO THE +",2400,"T:LEFT IS THE LINE NUMBER AND THE INSTRUCTION (IN THIS CASE +",2410,"T:'T') AND TO THE RIGHT IS THE OBJECT.",2420,"T:WHAT IS THE PURPOSE OF THE INSTRUCTION??",2430,"A:",2440,".M:KIND OF STAT,TYPE OF STAT,WHAT TO DO,TELL*[COMP",2450,"T:",2460,"Y:I AM PROUD OF YOU $NAME+!  +",2470,"N:NOT QUITE, $NAME+!  +"
2480,"T:THE INSTRUCTION TELLS THE COMPUTER WHAT KIND OF STATEMENT IT +",2490,"T:IS.  THIS DECIDES WHAT THE COMPUTER IS TO DO WITH THE OBJECT.  +",2500,"T:IN THE CASE OF THE TYPE STATEMENT (T), THE OBJECT IS PRINTED +",2510,"T:ON THE TERMINAL.",2520,"T:",2530,"T:NOW, BACK TO THE DIALOG QUESTION.  THE COMPUTER CAN PRINT OUT +",2540,"T:INFORMATION AND ASK QUESTIONS.  IT MUST ALSO ACCEPT A RESPONSE +",2550,"T:FROM THE STUDENT.",2560,"T:HOW DOES IT DO THIS +",2570,"A:",2580,"M:QUESTION MARK,?,WAIT"
2590,"Y:YES, IT DOES PRINT A QUESTION MARK!",2600,".M:[AN*[STAT,[ANSWER],[A STAT",2610,"Y:VERY GOOD, $NAME+!  +",2620,"N:I AM AFRAID THAT IS NOT QUITE RIGHT $NAME+.  +",2630,"T:A RESPONSE IS INDICATED BY AN ANSWER STATEMENT (DESIGNATED BY +",2640,"T:AN 'A').  THE COMPUTER TYPES OUT A QUESTION MARK (?) AND WAITS +",2650,"T:FOR SOME INPUT.",2660,"T:",2670,"T:AN ANSWER STATEMENT CAN LOOK LIKE THIS:",2680,"T:",2690,".T:         2000 A:",2700,".T:         2040 A:$FIRSTNAME12",2710,".T:         2060 A:#X"
2720,"T:",2730,"T:WE WILL DISCUSS THE OBJECT OF THE ANSWER STATEMENT LATER ON.  +",2740,"T:BUT FIRST LET'S COMBINE THE TWO PILOT STATEMENTS WE NOW KNOW.  +",2750,"T:WHAT ARE THESE TWO TYPES +",2760,"A:",2770,".M:[AN*[STAT,[ANSWER],[A STAT,[A]",2780,".M:[TY*[STAT,[TYPE],[T STAT,[T]",2790,".D:2",2800,"Y:BEAUTIFULL, $NAME+!",2810,"JY:*OVERR23",2820,".D:1",2830,"Y:WELL, PERHAPS YOU SHOULD REVIEW, YOU MISSED ONE. +",2840,"N:NOT EVEN ONE RIGHT!  TSK, TSK!  +"
2850,"T:THE TWO KINDS YOU SHOULD KNOW ARE:  TYPE (T) AND ANSWER (A).",2860,"*OVERR23 T:",2870,"T:HERE IS A PROGRAM TO ASK A QUESTION:",2880,"T:",2890,"T:             100  T:DO YOU LIKE COMPUTERS",2900,"T:             200  A:",2910,"T:",2920,"T:IF THIS IS EXECUTED IT WILL LOOK LIKE:",2930,"T:",2940,"T:    DO YOU LIKE COMPUTERS",2950,"T:    +",2960,"A:",2970,"T:"
2980,"T:NOTICE THAT THE ANSWER STATEMENT AUTOMATICALLY PRODUCES A +",2990,"T:QUESTION MARK (?) AND WAITS FOR A RESPONSE.",3000,"T:HOW WOULD YOU CAUSE THE QUESTION MARK TO BE PRINTED RIGHT AFTER +",3010,"T:THE WORD 'COMPUTERS' +",3020,"A:",3030,"M:CONCATEN,PLUS,+",3040,"Y:OF COURSE, I CAN'T FOOL YOU!  +",3050,"N:WELL, THAT'S NOT QUITE RIGHT.  +",3060,"T:A PLUS SIGN (+) AS THE LAST CHARACTER OF A TYPE OBJECT WILL NOT +",3070,"T:ALLOW THE COMPUTER TO DO A NORMAL CARRIAGE RETURN-LINE FEED AT +"
3080,"T:THE END, RATHER THE CARRIAGE WILL JUST SIT THERE UNTIL THE NEXT +",3090,"T:OUTPUT IS DONE (INCLUDING THE QUESTION MARK).",3100,"JY:*QUES3",3110,"T:",3120,"T:LET'S TRY IT ON OUR EXAMPLE ABOVE.  THE PROGRAM NOW READS:",3130,"T:",3140,"T:             100  T:DO YOU LIKE COMPUTERS+  ",3150,"T:             200  A:",3160,"T:",3170,"T:NOW WHAT WILL BE PRINTED IF THE PROGRAM IS RUN??",3180,"A:",3190,"M:DO YOU LIKE COMPUTERS?",3200,"Y:THAT IS ABSOLUTELY CORRECT!  +"
3210,"T:THE PLUS SIGN IS NOT PRINTED, IT MERELY TELLS THE COMPUTER TO +",3220,"T:SIT THERE UNTIL THE NEXT POSSIBLE CHARACTER IS PRINTED.",3230,"T:",3240,"T:LET'S EXECUTE THE ABOVE PROGRAM.",3250,"T:",3260,"T:     DO YOU LIKE COMPUTERS+",3270,"A:",3280,"T:",3290,"*QUES3 T:",3300,"T:ANOTHER FEATURE OF TYPE AND ANSWER STATEMENTS IS THE ABILITY TO +",3310,"T:'REMEMBER' A RESPONSE AND PRINT IT OUT LATER.  AS AN EXAMPLE:",3320,"T:YOUR NAME IS:  $NAME",3330,"T:"
3340,"T:WHAT PART OF THE ANSWER STATEMENT DO YOU THINK CAUSES THE +",3350,"T:COMPUTER TO 'REMEMBER' A RESPONSE +",3360,"A:",3370,".M:OBJECT,[ST*[VAR,[VARIABLE]",3380,"Y:RIGHT, +",3390,"N:NO, +",3400,"T:THE OBJECT OF AN ANSWER STATEMENT (IF PRESENT) TELLS THE +",3410,"T:COMPUTER TO STORE THE RESPONSE.  THUS AT A LATER TIME THIS MAY +",3420,"T:BE REFERENCED.  CONSIDER SOME EXAMPLES:",3430,"T:",3440,".T:            1400 A:$NAME",3450,".T:            1500 A:$RESPNSE37",3460,".T:            1600 A:$P"
3470,".T:            1700 A:$3",3480,".T:            1800 A:$A37BY16",3490,"T:",3500,"T:WHAT DO THESE OBJECTS HAVE IN COMMON +",3510,"A:",3520,"M:DOLLAR SIGN,$",3530,"M:LETTER",3540,"M:NUMBER,DIGIT",3550,"M:CONTIG",3560,".D:4",3570,"Y:EXCELLENT, $NAME+!  +",3580,"CY:M=1",3590,"JY:*OVERA2"
3600,"C:M=0",3610,".D:3",3620,"Y:VERY GOOD, $NAME+!  +",3630,"JY:*OVERA2",3640,".D:2",3650,"Y:PRETTY GOOD, $NAME+, I THINK YOU COULD DO BETTER.  +",3660,"JY:*OVERA2",3670,".D:1",3680,"Y:SO, SO, $NAME+.  +",3690,"N:I AM AFRAID THAT IS NOT QUITE CORRECT.  +",3700,"*OVERA2 T:THE OBJECT BEGINS WITH A DOLLAR SIGN ($) AND IS +",3710,"T:COMPOSED OF A CONTIGUOUS (NO BLANKS) STRING OF LETTERS AND +",3720,"T:DIGITS.  THE MAXIMUM LENGTH IS 50 CHARACTERS."
3730,"T:SUCH AN OBJECT IS TERMED A 'STRING VARIABLE' AND IT STORES THE +",3740,"T:ENTIRE RESPONSE TYPED IN BY THE STUDENT AND ASSOCIATES IT WITH +",3750,"T:THE NAME OF THE STRING VARIABLE.",3760,"J(M):*QUES4",3770,"T:WHICH OF THE FOLLOWING ARE ILLEGAL STRING VARIABLES:",3780,"T:",3790,".T:            1.  $NAME                  5.  $JOHN C",3800,".T:            2.  $JOHNHENRYTHEFIRST     6.  $19END",3810,".T:            3.  $3.79                  7.  $ROCKY!",3820,".T:            4.  $C                     8.  $190",3830,"T:"
3840,"A:",3850,"M:1,JOHNH,4,C,6,19E,8,190,19O",3860,"JY:*ERROR",3870,"M:3",3880,"M:5,JOHN C",3890,"M:7,ROCKY",3900,".D:3",3910,"Y:ALL RIGHT!",3920,"JY:*QUES4",3930,"*ERROR T:WELL YOU MISSED AT LEAST ONE!  THE ILLEGAL ONES ARE:  +",3940,"T:3, 5, AND 7 BECAUSE THEY CONTAIN A CHARACTER WHICH IS NOT A +",3950,"T:LETTER OR A DIGIT.  THE OTHERS ARE PERFECTLY GOOD!",3960,"*QUES4 T:"
3970,"T:NOW THAT YOU HAVE A RESPONSE STORED, HOW CAN YOU CAUSE THE +",3980,"T:COMPUTER TO PRINT IT OUT +",3990,"A:",4000,".M:[T*STA,[REFE",4010,"Y:OK, +",4020,"N:WELL, +",4030,"T:ONE MUST REFERENCE THE STRING VARIABLE IN A TYPE STATEMENT.  +",4040,"T:TO DO THIS SIMPLY ENTER THE STRING VARIABLE WHERE YOU WANT THE +",4050,"T:REFERENCED RESPONSE TO APPEAR.  AN EXAMPLE WILL ILLUSTRATE:",4060,"T:",4070,".T:           100  T:WHAT IS YOUR SEX +  ",4080,".T:           120  A:$GENDER"
4090,".T:           130  T:YOU ARE A $GENDER MY FRIEND!",4100,"T:",4110,"T:LET'S RUN THIS PROGRAM.",4120,"T:",4130,"T:     WHAT IS YOUR SEX +",4140,"A:$SEX",4150,"T:     YOU ARE A $SEX MY FRIEND!",4160,"T:",4170,".T:NOTICE THAT THE ENTIRE REFERENCE '$GENDER' WAS REPLACED BY +",4180,"T:'$SEX+'.",4190,"T:",4200,".T:NOW, THE STRING VARIABLE BEGINS WITH A '$', WHAT SIGNALS THE +",4210,"T:END OF THE STRING VARIABLE +"
4220,"A:",4230,"C:M=0",4240,".M:[BLA,[SPAC",4250,"M:PLUS,+",4260,".M:[END OF*[STAT,[END OF*[LIN,[EOL]",4270,".D:3",4280,"CY:M=1",4290,".D:1",4300,"Y:YES, +",4310,"T:IN THE EXAMPLE ABOVE A BLANK SIGNALS THE END OF THE STRING +",4320,"T:VARIABLE REFERENCE.  THE BLANK IS PRINTED.  THIS PERMITS HAVING +",4330,"T:TWO SIMILAR LOOKING STRING VARIABLES AS IN:",4340,"T:"
4350,".T:          100  T:WHAT IS YOUR FIRST NAME +  ",4360,".T:          110  A:$NAME",4370,".T:          120  T:WHAT IS YOUR LAST NAME +  ",4380,".T:          130  A:$NAMEA",4390,".T:          140  T:FIRST:  $NAME AND LAST:  $NAMEA",4400,"T:",4410,".T:THE FIRST REFERENCE WILL BE TO '$NAME' AND THE SECOND TO +",4420,".T:'$NAMEA'.",4430,"J(M):*QUES5",4440,"T:",4450,"T:SOMETIMES IT IS DESIRED TO IMMEDIATELY FOLLOW THE RESPONSE WITH +",4460,"T:SOME CHARACTER OTHER THAN A BLANK.  HOW COULD ONE CAUSE THE +"
4470,"T:COMPUTER TO DO THIS +",4480,"A:",4490,"M:PLUS,+",4500,"Y:VERY GOOD $NAME+!  +",4510,"T:AGAIN THE PLUS SIGN (+) TO THE RESCUE!  A REFERENCE MAY ALSO BE +",4520,"T:TERMINATED WITH A '+', WHICH IS NOT PRINTED.  CONSIDER:",4530,"T:",4540,".T:        5000 T:WHAT IS YOUR SEX +  ",4550,".T:        5010 A:$SEXY",4560,".T:        5020 T:ARE YOU REALLY A '$SEXY+'!!",4570,"T:",4580,"T:IF YOU TYPE IN THE WORD ''NEUTER'' AS A RESPONSE, WHAT WILL BE +",4590,"T:PRINTED BY STATEMENT 5020 +"
4600,"A:",4610,"M:'NEUTER'",4620,"Y:QUITE RIGHT, $NAME+.  +",4630,"N:NO, THE + IS NOT PRINTED.  IT SHOULD PRINT:   . . . 'NEUTER'!!  +",4640,"T:TRY IT!",4650,"T:",4660,"T:    WHAT IS YOUR SEX +",4670,"A:$SEXED",4680,"T:    ARE YOU REALLY A '$SEXED+'!!",4690,"T:",4700,"*QUES5 T:",4710,"T:THUS WE HAVE THREE POSSIBLE WAYS TO TERMINATE A STRING VARIABLE +",4720,"T:REFERENCE:  1. BLANK, 2. +, AND 3. END OF THE STATEMENT."
4730,"T:ONLY ONE MORE POINT AND YOU WILL KNOW EVERYTHING THERE IS TO +",4740,"T:KNOW ABOUT STRING REFERENCES!",4750,"T:",4760,"T:CONSIDER THIS PROGRAM:",4770,"T:",4780,".T:           1    T:HI '$NAME+', WHO ARE YOU +  ",4790,".T:           2    A:",4800,"T:",4810,"T:WHAT WOULD BE PRINTED +",4820,"A:",4830,".M:['$NAME+'",4840,"Y:OF COURSE!  +",4850,"N:WELL, +"
4860,".T:SINCE THE REFERENCE $NAME DOES NOT APPEAR AS AN OBJECT TO AN +",4870,"T:ANSWER STATEMENT, THE COMPUTER WILL JUST PRINT IT AS IS!",4880,".TN:SO IT PRINTS:  HI '$NAME+', WHO ARE YOU ?",4890,"T:HOW ABOUT THIS:",4900,"T:",4910,".T:           1    T:HI '$NAME+', WHO ARE YOU +  ",4920,".T:           2    A:$NAME",4930,".T:           3    T:THANK YOU $NAME+!",4940,"T:",4950,"T:NOW WHAT WILL BE PRINTED BY LINE 1 +",4960,"A:",4970,"M:''",4980,"Y:I CAN'T FOOL YOU!  +"
4990,"N:THIS IS A BIT TRICKY.  +",5000,".T:HERE THE REFERENCE $NAME DOES APPEAR AS THE OBJECT OF AN +",5010,"T:ANSWER STATEMENT BUT ONLY AFTER IT IS TO BE PRINTED IN LINE +",5020,"T:1.  IN THIS CASE A NULL (NO CHARACTERS) IS PRINTED, THUSLY:",5030,"T:",5040,"T:    HI '', WHO ARE YOU +",5050,"A:$NAMED",5060,"T:    THANK YOU $NAMED+!",5070,"T:",5080,"T:NOTE THAT IN STATEMENT 3 THE REFERENCE WORKS AS ADVERTISED.",5090,"T:",5100,"T:THAT JUST ABOUT WRAPS UP STRING VARIABLES.  THE LAST POSSIBLE +"
5110,"T:ANSWER OBJECT IS A NUMERIC VARIABLE.  WHAT SPECIAL CHARACTER +",5120,"T:DO YOU THINK DESIGNATES THIS +",5130,"A:",5140,"M:#,NUMBER SIGN,POUND SIGN",5150,"Y:YOU'RE BEAUTIFUL $NAME+!  +",5160,"N:WELL, +",5170,"T:THE NUMERIC VARIABLE IS DESIGNATED BY A NUMBER SIGN (#).  THE +",5180,"T:VARIABLE ITSELF IS A SINGLE LETTER (A THRU Z).  CONSIDER:",5190,"T:",5200,".T:          7030 T:HOW OLD ARE YOU +  ",5210,".T:          7100 A:#Y",5220,"T:",5230,"T:THE NUMERIC VARIABLE TELLS THE COMPUTER TO LOOK ALL THROUGH THE +"
5240,"T:RESPONSE FOR A VALID NUMBER.  THE FIRST ONE IT FINDS IS STORED +",5250,"T:IN THE NUMERIC VARIABLE.  IT MAY BE REFERENCED IN A TYPE +",5260,"T:STATEMENT IN LIKE MANNER TO THE STRING VARIABLE.  NAMELY:",5270,"T:",5280,".T:          7200 T:YOU ARE #Y YEARS OLD!",5290,"T:",5300,"T:TRY IT!  PLEASE DO TYPE IN SOME DIGITS EVEN IF YOU ARE A BIT +",5310,"T:SELF-CONSCIOUS OF YOUR AGE!",5320,"T:",5330,"T:    HOW OLD ARE YOU +",5340,"A:#Y",5350,"T:    YOU ARE #Y YEARS OLD!",5360,"T:"
5370,"T:NOTE THAT EXTRA SPACES SURROUND THE VALUE PRINTED.  THIS IS DUE +",5380,"T:TO LETTING BASIC PRINT THE NUMBER.  YOU CAN DELETE AT LEAST ONE +",5390,"T:BLANK FOLLOWING THE VALUE BY TERMINATING THE NUMERIC VARIABLE +",5400,"T:REFERENCE WITH A +.",5410,"T:",5420,"T:REMEMBER THAT LEGITIMATE STRING VARIABLES ARE INITIALIZED TO +",5430,"T:'NULL' (NO CHARACTERS).  WHAT DO YOU SUPPOSE NUMERIC VARIABLES +",5440,"T:ARE INITIALIZED TO $NAME +",5450,"C:N=1",5460,"A:#N",5470,"T:",5480,"T(N=0):EXACTLY!  +",5490,"M:ZERO"
5500,"Y:EXACTLY!  +",5510,"T:NUMERIC VARIABLES ARE INITIALIZED TO ZERO.  THERE IS ONE SMALL +",5520,"T:DIFFERENCE BETWEEN NUMERIC AND STRING VARIABLES.  TO BE VALID, +",5530,"T:A STRING VARIABLE MUST APPEAR AS THE OBJECT OF AN ANSWER +",5540,"T:STATEMENT (THIS IS THE ONLY WAY TO ALTER THE CONTENTS OF A +",5550,"T:STRING VARIABLE.); HOWEVER, ALL SINGLE LETTERS ARE POSSIBLE +",5560,"T:VALID NUMERIC VARIABLES (AND THEY CAN ALSO BE MODIFIED BY OTHER +",5570,"T:KINDS OF STATEMENTS).  SO THE QUESTION IS HOW TO PRINT +"
5580,"T:SOMETHING LIKE:",5590,"T:",5600,".T:           #A  #B  #C  #D+  ETC.",5610,"T:",5620,"T:OK, $NAME+, WHY WAS '#A' PRINTED RATHER THAN THE NUMBER STORED +",5630,"T:IN THE VARIABLE 'A' +",5640,"A:",5650,"T:",5660,".M:[EXT*[TYP,.T,[MOD*[TYP,[UNREF*[TYP",5670,"Y:YOU ARE AN EXPERT!!",5680,"JY:*QUES6",5690,".T:DON'T FEEL BADLY!  THIS IS A TRICKY ONE.  TO PRINT #A RATHER +",5700,"T:THAN THE VALUE TAKES A NEW KIND OF STATEMENT.  ACTUALLY, IT IS +"
5710,"T:A TYPE STATEMENT BUT A MODIFIED ONE CALLED AN 'UNREFERENCED +",5720,"T:TYPE' STATEMENT AND IS DESIGNATED BY THE INSTRUCTION '.T' AS IN:",5730,"T:",5740,".T:           1000 .T:     #A   #B   #C+  AND SO FORTH.",5750,"T:",5760,"*QUES6 T:THE UNREFERENCED TYPE (.T) IGNORES ALL REFERENCES.  +",5770,"T:HOWEVER, THE CONCATENATION SYMBOL (+ AT THE END OF THE LINE) +",5780,"T:STILL WORKS AS IS DOES IN THE REGULAR TYPE (T).  THE +",5790,"T:UNREFERENCED TYPE IS NOT OFTEN NEEDED BUT IS OCCASIONALLY +",5800,"T:NECESSARY."
5810,"T:",5820,"T:SO, $NAME+, NOW YOU KNOW ABOUT THREE DIFFERENT KINDS OF PILOT +",5830,"T:STATEMENTS (INCLUDING THE UNREFERENCED TYPE)!  BY THE WAY, WHY +",5840,"T:WOULD ONE WANT TO USE A TYPE STATEMENT WITH NO OBJECT?  LIKE IN:",5850,"T:",5860,"T:             4068 T:",5870,"T:",5880,"A:",5890,".M:LINE FEED,BLAN*[LINE,[SPACE",5900,"Y:FINE!  +",5910,"N:UH-UH, +",5920,"T:A TYPE STATEMENT WITH NO OBJECT PRODUCES A BLANK LINE (A LINE +",5930,"T:FEED) ON THE TERMINAL."
5940,"T:",5950,"T:I MIGHT ADD THAT THE CONCATENATION SYMBOL (+) AT THE END OF A +",5960,"T:TYPE OBJECT IS QUITE GENERAL ABOUT LEAVING THE CARRIAGE WHERE +",5970,"T:IT IS AND PREVENTING THE NORMAL CARRIAGE RETURN-LINE FEED.  IN +",5980,"T:THE PREVIOUS EXAMPLES IT WAS USED IN CONNECTION WITH AN ANSWER +",5990,"T:STATEMENT.  HOWEVER, CONSIDER:",6000,"T:",6010,"T:            1000 T:HI +  ",6020,"T:            1010 T:THERE!",6030,"T:",6040,"T:NOW, $NAME+, WHAT WILL BE PRINTED IF THIS PROGRAM IS EXECUTED??",6050,"A:",6060,"M:HI THE"
6070,"Y:I CAN'T FOOL YOU!  IT IS A PLEASURE TO CONVERSE WITH YOU.  +",6080,"N:NO, THE TWO WORDS WILL BE PRINTED ON THE SAME LINE:  HI THERE!",6090,"T:",6100,"T:WELL $NAME+, YOU HAVE A GOOD START IN LEARNING ABOUT THE PILOT +",6110,"T:LANGUAGE.  YOU CAN NOW DO SEVERAL CUTE THINGS, BUT THE MOST +",6120,"T:INTERESTING CONCEPTS ARE STILL AHEAD.",6130,"T:",6140,"T:ONE POSSIBLY USEFUL THING YOU NEED TO KNOW IS HOW TO EXIT FROM +",6150,"T:A PILOT PROGRAM, SUCH AS THIS ONE.  YOU CAN DO THIS QUITE +"
6160,"T:EASILY BY ENTERING A SINGLE SHIFT 'P' (@) AS A RESPONSE TO ANY +",6170,"T:ANSWER STATEMENT.  THE PROGRAM WILL AUTOMATICALLY SKIP TO THE +",6180,"T:END, AND ASK YOU IF YOU WOULD LIKE TO RUN IT AGAIN.",6190,"T:",6200,"T:THE REST OF THIS PROGRAM IS DEVOTED TO THE METHOD OF ENTERING +",6210,"T:A PILOT PROGRAM INTO THE COMPUTER.  IF YOU ARE FAMILIAR WITH +",6220,"T:THIS YOU CAN END THIS PROGRAM BY USING A '@'.  I HOPE YOU WILL +",6230,"T:FINISH IT OUT THOUGH.",6240,"T:"
6250,"T:IN THE NEXT PROGRAM IN THIS SERIES YOU WILL LEARN HOW TO MAKE +",6260,"T:THE COMPUTER RECOGNIZE WHAT IS TYPED IN, (WHICH IS A LOT MORE +",6270,"T:FUN THAN SIMPLE REGURGITATION!), TO USE CONDITIONS, AND MANY +",6280,"T:OTHER INTERESTING THINGS!.",6290,"R:",6300,"R:               HOW TO ENTER A PILOT PROGRAM",6310,"R:",6320,"*SECONDPART T:",6330,"T:OK, $NAME+, ON TO ENTERING THE PILOT PROGRAM!",6340,"T:",6350,"T:AT THIS POINT I NEED TO KNOW IF YOU WILL BE USING A 2000E OR A +"
6360,"T:OR A 2000F (INCLUDING 2000C) SYSTEM.  THERE ARE SLIGHT +",6370,"T:DIFFERENCES IN HOW ONE ENTERS A PILOT PROGRAM (BUT NOT IN THE +",6380,"T:STRUCTURE OF THE LANGUAGE).",6390,"*SYS T:WHAT SYSTEM DO YOU HAVE +",6400,"A:",6410,"C:E=F=0",6420,".M:[E],[F],[C]",6430,"N:I REALLY DO NEED TO KNOW (E OR F).  +",6440,"JN:*SYS",6450,".M:[E]",6460,"CY:E=1",6470,".M:[F],[C]",6480,"CY:F=1"
6490,"C:G=E+F",6500,"T(G=2):PLEASE STATE ONLY ONE!  +",6510,"J(G=2):*SYS",6520,"T:",6530,"T:THE PILOT LANGUAGE IS IMPLEMENTED IN AN INTERPETIVE MODE.  THE +",6540,"T:PILOT STATEMENTS ARE STORED IN +",6550,"T(E):FILES +",6560,"T(F):A FILE +",6570,"T:IN THE FORM THEY ARE TYPED +",6580,"T:IN.  AT EXECUTION TIME EACH PILOT STATEMENT IS EXAMINED AND THE +",6590,"T:ACTION TAKEN.  HOW DO YOU SUPPOSE THEY ARE ENTERED INTO THE +",6600,"T(E):FILES??",6610,"T(F):FILE??"
6620,"A:",6630,".M:[PILOTE],BASIC PROG,[PILOTF]",6640,"Y:VERY GOOD, $NAME+!  +",6650,".MN:TYPE*IN,TERMIN,KEYBOARD",6660,"N:NO, BUT THAT IS WHY YOU ARE RUNNING THIS PROGRAM.  ACTUALLY +",6670,"T:A PROGRAM WRITTEN IN BASIC CALLED 'PILOT+",6680,"T(E):E+",6690,"T(F):F+",6700,"T:' ALLOWS THE ENTRY OF +",6710,"T:THE PILOT STATEMENTS.  DO YOU REMEMBER THE PURPOSE OF THE +",6720,"T:STATEMENT NUMBERS FOR EACH PILOT STATEMENT??",6730,"A:",6740,".M:YES,I THINK,OF COURS,CERT,I REMEM,[Y],RIGH"
6750,"Y:GOOD, WHAT IS THE PURPOSE +",6760,"AY:",6770,"M:EDIT,SEQUE,ORDER,INSER,MODIF,REPLA,DELET,ARRANG,ARANG",6780,"Y:EXCELLENT, $NAME+!",6790,"N:I CAN'T QUITE ACCEPT THAT ANSWER.  THE STATEMENT NUMBERS SERVE +",6800,"N:ONLY TO ORDER THE STATEMENTS.  THIS ALLOWS THE PILOT STATEMENTS +",6810,"N:TO BE ENTERED IN ANY ORDER AND FOR CORRECTIONS TO BE MADE (SUCH +",6820,"N:AS REPLACEMENT, DELETION, OR INSERTION).",6830,"T:",6840,"T:BY THE WAY, $NAME+, IN ORDER TO INSERT FURTHER STATEMENTS IT IS +"
6850,"T:A GOOD IDEA TO NUMBER THE STATEMENTS IN MULTIPLES OF 10 OR 20.  +",6860,"T:THIS WAY YOU CAN EASILY INSERT SEVERAL STATEMENTS IF NEED BE.",6870,"T:",6880,"T:A VERY IMPORTANT POINT IN STORING A PROGRAM IS TO DECLARE THE +",6890,"T:FILES.  THIS IS DONE BY USING THE BASIC SYSTEM COMMAND:",6900,"T:",6910,"T:  OPEN-'FILE NAME','NUMBER OF RECORDS'.",6920,"T:",6930,"T:THE 'FILE NAME' MAY BE UP TO SIX CHARACTERS, AND 'NUMBER OF +",6940,"T:RECORDS' MUST BE AN INTEGER AT LEAST +",6950,"T(E):2 AND LESS THAN OR EQUAL TO 48."
7090,"T(X=288):EXACTLY!  +",7100,"T(X<288):THAT'S A BIT LOW.  +",7110,"T(X>288):THAT'S TOO HIGH.  +",7120,"J:*ENUM",7130,"*FNUM T(X=624):EXACTLY!  +",7140,"T(X<624):THAT'S A BIT LOW.  +",7150,"T(X>624):THAT'S TOO HIGH.  +",7160,"*ENUM T:THE MAXIMUM IS +",7170,"T(E):288 +",7180,"T(F):624 +",7190,"T:STATEMENTS.  +",7200,"J(F):*ENEXT",7210,"T:IN REALITY THERE IS AN AVERAGE OF ABOUT 5.5 STATEMENTS PER +"
7220,"T:RECORD SO ONE COULD +",7230,"T:REASONABLY EXPECT AROUND 250-260 STATEMENTS.  FURTHER THREE +",7240,"T:SUCH FILES MUST BE DECLARED, SO THE MAXIMUM STORAGE IS +",7250,"T:3*48 = 144 RECORDS OR ABOUT 800 STATEMENTS!  +",7260,"*ENEXT T:",7270,"T:OK, WHAT IS THE SMALLEST NUMBER OF RECORDS ALLOWED +",7280,"*ANUMPLS A:#X",7290,"TB:A NUMBER PLEASE +",7300,"JB:*ANUMPLS",7310,"C:X=X+.5",7320,".I:X",7330,"J(F):*FGIG",7340,"T(X=6):THAT'S RIGHT, $NAME+!  +"
7350,"T(X=2):I REALLY MEANT FOR ALL THREE FILES, NOT JUST ONE.  +",7360,"T(X#6):SINCE ONE MUST DECLARE THREE PROGRAM FILES, THE SMALLEST +",7370,"T(X#6):NUMBER OF RECORDS AVAILABLE IS SIX.  +",7380,"J:*ERIG",7390,"*FGIG T(X=2):THAT'S RIGHT, $NAME+!  +",7400,"T(X#2):THE PROGRAM FILE MUST BE AT LEAST 2 RECORDS LONG.  +",7410,"*ERIG T:OF COURSE, THE SHORTEST POSSIBLE PILOT PROGRAM CONSISTS +",7420,"T:OF ONLY ONE STATEMENT!  AND THAT EASILY FITS INTO ONE RECORD.",7430,"T:",7440,"J(F):*FOVER"
7450,"T:I MIGHT ADD THAT THE ENTIRE PILOT PROGRAM MAY EASILY FIT ONTO +",7460,"T:ONE FILE.  THIS HAS AN ADVANTAGE WHEN EXECUTING THE PILOT +",7470,"T:PROGRAM AS ONLY THAT ONE PROGRAM FILE PLUS A SCRATCH FILE NEED +",7480,"T:BE DECLARED.  BUT DURING THE SYNTAX AND EDITING PHASE, THREE +",7490,"T:PROGRAM FILES MUST BE DECLARED SINCE THE COMPUTER DOES NOT KNOW +",7500,"T:AHEAD OF TIME JUST HOW LONG YOUR PROGRAM MAY BE.",7510,"*FOVER R:",7520,"T:ONE OTHER FILE IS NECESSARY.  THIS IS A SCRATCH FILE AND MUST +"
7530,"T:ALSO BE AT LEAST 2 RECORDS LONG.  (IT MAY BE LONGER, BUT IN ANY +",7540,"T:CASE ONLY THE FIRST TWO ARE USED.)",7550,"T:",7560,"T:YOU ARE NOW READY TO ENTER YOUR PILOT PROGRAM.  THE FIRST STEP +",7570,"T:IS TO OPEN THE NECESSARY FILES.  IF THE PROGRAM +",7580,"T(E):FILES ARE TO BE NAMED:  PFILA, PFILB, AND PFILC, +",7590,"T(F):FILE IS TO BE NAMED:  PFILA, +",7600,"T:WHAT WOULD YOU TYPE TO OPEN +",7610,"T(E):THE FIRST ONE??",7620,"T(F):IT??",7630,"C:M=.2",7640,"A:#M",7650,".M:[OPE*-"
7660,".M:[PFILA]",7670,".D:2",7680,"C:N=M",7690,".I:N",7700,"T(N#M):YOU MUST USE AN INTEGER FOR THE NUMBER OF RECORDS.",7710,"T(M<2):IT MUST CONTAIN AT LEAST 2 RECORDS.",7720,"J(F):*FNO",7730,"T(M>48):THE MAXIMUM NUMBER OF RECORDS IS 48.",7740,"*FNO N:THAT'S NOT QUITE RIGHT.  +",7750,"T:HERE'S HOW TO OPEN +",7760,"T(F):IT +",7770,"T(E):ALL THREE +",7780,"T:PLUS A SCRATCH FILE:"
7790,"T:",7800,"T:      OPEN-PFILA,48",7810,"T(E):      OPEN-PFILB,2",7820,"T(E):      OPEN-PFILC,2",7830,"T:      OPEN-SCRTCH,2",7840,"T:",7850,"T:NOW HOW WOULD YOU RETRIEVE THE PROGRAM 'PILOT+",7860,"T(E):E+",7870,"T(F):F+",7880,"T:' FROM THE SYSTEM LIBRARY??",7890,"A:",7900,"M(E):GET-$PILOTE",7910,"M(F):GET-$PILOTF"
7920,"Y:RIGHT ON, $NAME+!",7930,"JY:*NEXTTHING",7940,"T:NOT EXACTLY, THE PROPER COMMAND IS:  GET-$PILOT+",7950,"T(E):E",7960,"T(F):F",7970,"*NEXTTHING J(F):*COMMANDS",7980,"T:",7990,"T:THE NEXT THING IS TO TELL THE PROGRAM 'PILOTE', WHICH WILL +",8000,"T:ALLOW THE ENTRY OF THE PILOT LANGUAGE STATEMENTS, EXACTLY WHICH +",8010,"T:FILES YOU WISH TO USE.  HOW DO YOU YOU DO THIS??",8020,"A:",8030,".M:1*FILES*PFILA*PFILB*PFILC*SCRTCH",8040,"Y:THAT IS ABSOLUTELY CORRECT, $NAME+!"
8050,"JY:*COMMANDS",8060,"M:FILES",8070,"Y:YOU ARE GETTING WARM, +",8080,"N:I WILL TELL YOU, +",8090,"T:ONE MUST PUT A 'FILES' STATEMENT AS THE FIRST BASIC STATEMENT +",8100,"T:NUMBER OF 'PILOTE'.  THIS IS DONE AS:",8110,"T:",8120,"T:    1 FILES PFILA,PFILB,PFILC,SCRTCH",8130,"T:",8140,"T:THE THREE PROGRAM FILES COME FIRST (IN ORDER), THE SCRATCH FILE +",8150,"T:COMES LAST AS THE FOURTH FILE.",8160,"*COMMANDS T:",8170,"T(E):'PILOTE' +"
8180,"T(F):'PILOTF' +",8190,"T:IS NOW READY TO EXECUTE.  HOW DO YOU DO THIS +",8200,"A:",8210,".M:[RUN]",8220,"Y:RIGHT!  +",8230,"N:YOU MERELY TYPE IN 'RUN'!  +",8240,"T(E):'PILOTE' +",8250,"T(F):'PILOTF' THEN ASKS THE NAME OF THE PILOT PROGRAM AND THE +",8260,"T(F):NAME OF THE SCRATCH FILE.  AFTER THIS IT +",8270,"T:RESPONDS WITH A QUESTION MARK AND YOU ARE READY TO +",8280,"T:ENTER YOUR PILOT LANGUAGE PROGRAM!",8290,"T:",8300,"T:IN ADDITION TO ENTERING PILOT STATEMENTS, YOU MIGHT ALSO WANT +"
8310,"T:TO LIST YOUR PROGRAM.  'PILOT+",8320,"T(E):E' +",8330,"T(F):F' +",8340,"T:WILL ALSO RECOGNIZE CERTAIN +",8350,"T:COMMANDS. TO LIST YOUR PROGRAM, DO THIS:",8360,"T:",8370,"T:       LIS      OR     LIS-1000      OR     LIS-2000,2090",8380,"T:",8390,"T:THE OPTIONAL PARAMETERS SPECIFY THAT ONLY A PART OF THE PROGRAM +",8400,"T:IS TO BE LISTED (IF YOU SO DESIRE!).  THE FIRST NUMBER GIVES +",8410,"T:THE BEGINNING STATEMENT NUMBER TO BE LISTED, THE SECOND GIVES +",8420,"T:THE LAST.",8430,"T:"
8440,"T:OTHER COMMANDS THAT 'PILOT+",8450,"T(E):E' RECOGNIZES ARE:",8460,"T(F):F' RECOGNIZES ARE:",8470,"T:",8480,"T:        NUMBER   OR    NUMBER-100     OR    NUMBER-1000,20",8490,"T:        SIZE",8500,"T:        PURGE",8510,"T:        STOP",8520,"T(F):        RUN",8530,"T:",8540,"T:ONLY THE FIRST THREE CHARACTERS OF THE COMMAND ARE NECESSARY.  +",8550,"T:WHAT DO YOU SUPPOSE 'PUR' DOES +",8560,"A:"
8570,"M:CLEARS,SCRATCH,KILL,WIPES,REMOV,DESTR,CLEAN,FLUSH",8580,"Y:THAT'S RIGHT, +",8590,"N:NO, +",8600,"T:IT COMPLETELY CLEARS OUT ANY EXISTING PILOT PROGRAM!",8610,"T:WHAT ABOUT 'SIZ' +",8620,"A:",8630,".M:LENGT,NUMB,LAS*STAT,BIG,HOW MANY",8640,"Y:VERY GOOD.  +",8650,"N:NOT QUITE.  +",8660,"T:IT GIVES THE LENGTH OF THE PILOT PROGRAM IN NUMBER OF +",8670,"T:STATEMENTS, NUMBER OF RECORDS USED, AND THE LAST STATEMENT +",8680,"T:NUMBER USED.",8690,"T:"
8700,"T:'STO' HALTS EXECUTION OF 'PILOT+",8710,"T(E):E'.  THE +",8720,"T(F):F'.  THE +",8730,"T:PILOT LANGUAGE PROGRAM IS SAFELY STORED ON THE DISK FILE(S).",8740,"T:I WILL LET YOU FIGURE OUT WHAT 'NUM' DOES!  IT'S NOT HARD AND +",8750,"T:SHOULD BECOME FAMILIAR WITH THE REFERENCE MANUAL ANYWAY!",8760,"T:",8770,"T:THAT JUST ABOUT WRAPS IT UP (AT LEAST FOR TYPE AND ANSWER +",8780,"T:STATEMENTS AND HOW TO ENTER A PILOT PROGRAM).  I HOPE YOUR +",8790,"T:INTEREST IS AROUSED.  IN THE NEXT PROGRAM IN THIS SERIES YOU +"
8800,"T:LEARN HOW TO MAKE THE COMPUTER RECOGNIZE WHAT IS TYPED IN, +",8810,"T:(WHICH IS A LOT BETTER THAN SIMPLE REGURGITATION!), AND MANY +",8820,"T:OTHER FUN THINGS!",8830,"T:I HOPE YOU WILL HAVE A CHANCE TO PRACTICE SOME OF THE CONCEPTS +",8840,"T:PRESENTED IN THIS PROGRAM.",8850,"T:",8860,"T:BYE FOR NOW $NAME+, IT CERTAINLY HAS BEEN A PLEASURE TO GET TO +",8870,"T:KNOW YOU.  SEE YOU SOON.",8880,"T:",8890,"E:         THIS IS THE END, SIGH!"
