ÿòa:�ÛCREATOR; WRITTEN ON 1/16/80 BY BRUCE W. TONKIN.b:�ÛADAPTED FOR CP/M AND MICROSOFT BASIC 5.01 ON 5/11/80Øb:�ÛFOR 4.51 ON 3/18/81, AND FOR MODEL III ON 2/20/83, FOR CP/M AND MBASIC 4.51/5.2+ AGAIN ON 3/23/83; FOR 48K CP/M ON 7/2/83 WITH OVERLAYS; THIS IS THE FIRST OVERLAYjc:�ÛTHIS IS PUBLIC DOMAIN SOFTWARE AND MAY NOT BE SOLD OR INCORPORATED IN ANY COMMERCIAL SOFTWARE WITHOUT THE EXPRESS PERMISSION OF THE AUTHORrc:�Û|c‰ ”•cFXð:‹ ÿ’(CV$)ñ Ï Žðc‚ IIð Î ÿ’(CV$):CV%ðÿ•(ÿƒ(CV$,II,)):‹ CV%ð" ÷ FXð Ï FXð::¢ ‹ CV%ð" ÷ FXð Ï FXðd(‹ CV%ïZ ÷ FXð Ï CV%ðCV% ÷ _3d2ÿƒ(CV$,II,)ðÿ–(CV%):ƒ II:Ž|d”‘ CLS$;"Which field is the key field? Input the field number:";:… KFìdž‘ #,"35005 GET 2,1:KP=CVI(KP$):FOR K=1 TO KP:RP=K:GET 1,K":‘ #,"35010 IF F$(";KF;")>CHR$(249) THEN 35990"ve¨‘ #,"35000 PRINT CLS$:INPUT";Q$;"Field number to scan (1-";A;")";Q$;";NS:IF NS<1 OR NS>";A;" THEN 35000":‘ #,"35990 NEXT K:GOTO";SL±e²LNðè:‚ QRð Î KFó:FTðFTòÿ”(F$(QR)):ƒ QR:� ¼:‰ *‚f¼‘ CLS$;"Now we must describe the input prompts the operator will see,":‘"the edits to be performed, and the kind of data for each field.":‘"To do this, we will ask a series of questions about each field."gÆ‘"To the question KIND OF DATA, the possible responses are:":‘"N..............numeric data, not packed, stored as characters."ŒgБ"PH..............packed half-precision, stored as one character.":‘"PI............packed integer data, stored as two characters."hÚ‘"PS........packed single precision data, stored as 4 characters.":‘"PD........packed double precision data, stored as 8 characters." hä‘"C.........................character data, stored as characters.":‘"To the PROMPT question, type the message the operator will see."riî‘"To the BAD INPUT IF question, type as many edits as you wish of":‘"the form: >999 <";Q$;"A";Q$;" NOT NUMERIC NO ENTRY":‘"LENGTH>9 NOT ALPHA CONTAINS";Q$;"Z";Q$;" >=4 <>6"¸iø‘"Note the quotes around alpha edits. Depress any key for more:";ÑiPZ$ðÝ:‹ PZ$ð"" Ï žj ‘ CLS$;"To the question ERROR MESSAGE, type the message the operator":‘"will see if that error is made. You may signal completion of":‘"edits for any field by just depressing the enter key. To repeat"äj‘"these directions, type HELP. NOW DEPRESS ANY KEY TO CONTINUE:";k PZ$ðÝ:‹ PZ$ð"" Ï  ::¢ ‘:ŽJk*‚ Ið Î A:I$ðÿƒ(ÿ“(I),):‘"FIELD #";I;" LENGTH=";:Lðÿ”(F$(I)):‘ L�k4P$ð"":‘"PROMPT:";:± … P$:‹ P$ð"HELP" Ï � ¼:‰ 4÷k>…"Should the prompt and reply be on the same line (Y/N):";NY$:CV$ðNY$:� :NY$ðCV$:‹ CV$ð"Y" Ï NY$ð";"::¢ NY$ð""ulHK$ð"":‘"KIND OF DATA:";:‹ Lñï ÷ Lñï ÷ Lñï ÷ Lñï Ï ‘"C":K$ð"C"::¢ ± … K$:CV$ðK$:� :K$ðCV$:‹ K$ð"HELP" Ï � ¼:‰ H¹lR‹ K$ð"PH" ø K$ð"PI" ø K$ð"PS" ø K$ð"PD" ø K$ð"C" ø K$ð"N" Ï fúl\‘"INVALID DATA TYPE: USE PH, PI, PS, PD, N OR C ONLY!":‰ Hbmf‹ (K$ð"PH" ÷ Lð) ø (K$ð"PI" ÷ Lð) ø (K$ð"PS" ÷ Lð) ø (K$ð"PD" ÷ Lð) ø (K$ð"N") ø (K$ð"C") Ï z“mp‘"INCORRECT LENGTH FOR VARIABLE TYPE!":‰ HnzLNðLNò :‘ #,LN;"PRINT";Q$;P$;Q$;NY$:BLðLN:‹ K$ñï"C" Ï ‘ #,BLò;"IF UF<>0 AND G$=";Q$;Q$;" THEN G$=G$(";I$;")"ƒn„LNðLNò :‘ #,LN;"LINE INPUT G$(";I$;")";:D%(I)ðLN:‹ OO$ð"N" Ï ‘ #," "::¢ ‘ #,":IF G$(";I$;")=";Q$;OT$;Q$;" THEN";SL£nŽ‹ K$ñï"PI" ÷ K$ñï"PH" Ï ¢Ðn˜‘ #,LNò;"IF UF THEN GOSUB 40000":S1%ðån¢‹ K$ñï"PS" Ï ¶o¬‘ #,LNò;"IF UF THEN GOSUB 40500":S2%ð'o¶‹ K$ñï"PD" Ï ÊToÀ‘ #,LNò;"IF UF THEN GOSUB 40500":S2%ðioÊ‹ K$ñï"PI" Ï ÞïoÔLNðLNò :‘ #,LN;"IF ABS(VAL(G$(";I$;")))>32767 THEN PRINT";Q$;"NUMBER OUT OF RANGE. MUST BE FROM -32767 TO 32767.";Q$;":GOTO";BLpÞ‹ K$ñï"PH" Ï ò„pèLNðLNò :‘ #,LN;"IF ABS(VAL(G$(";I$;")))>127 THEN PRINT";Q$;"NUMBER OUT OF RANGE. MUST BE FROM -127 TO 127.";Q$;":GOTO";BLØpò‹ K$ð"PI" ø K$ð"PH" Ï LNðLNò :‘ #,LN;"IF G$(";I$;")=";Q$;"0";Q$;" THEN";LNòøpü‹ K$ñï"PI" ÷ K$ñï"PH" Ï nqLNðLNò :‘ #,LN;"IF INT(VAL(G$(";I$;")))<>VAL(G$(";I$;")) THEN PRINT";Q$;"MUST BE A WHOLE NUMBER.";Q$;":GOTO";BL¸qBI$ð"":‘"Bad input if:";:± … BI$:CV$ðBI$:� :BI$ðCV$:‹ BI$ð"" Ï ìëq‹ Ú(BI$,"LENGHT")ï Ï ‘"MISSPELLED WORD":‰  r$‹ BI$ð"HELP" Ï � ¼:‰ Dr.‘"Error message:";:± … EM$:‹ EM$ð"HELP" Ï � ¼:‰ . s8‘"Is this a fatal error or a non-fatal error? A fatal error":‘"simply means the operator must try inputting this field until":‘"the input is correct; a non fatal error means the error message"´s=‘"will be printed as a warning, but the (possibly) erroneous":‘"input will be accepted. Depress F if the error is FATAL, or any":‘"other key, if not a fatal error: ";tBFE$ðÝ:‹ FE$ð"" Ï B::¢ CV$ðFE$:� :FE$ðCV$:‘ FE$:‹ FE$ð"F" Ï FE$ð":GOTO"òÿ“(BL)::¢ FE$ð" "?tL‹ Ú(BI$,"NOT NUMERIC") Ï S3%ð:‰ jƒtV‹ Ú(BI$,"NOT ALPHA") Ï S4%ð:‰ t :¢ ‹ Ú(BI$,"NO ENTRY") Ï ~Ãt`‹ Ú(BI$,"CONTAINS") Ï ˆ :¢ ‹ Ú(BI$,"LENGTH") Ï ° :¢ ºujLNðLNò :‘ #,LN;"CD$=G$(";I$;"):E=0:GOSUB 30000:IF E=1 THEN PRINT";Q$;EM$;Q$;FE$:‰ {utLNðLNò :‘ #,LN;"CD$=G$(";I$;"):E=0:GOSUB 31000:IF E=1 THEN PRINT";Q$;EM$;Q$;FE$:‰ Æu~LNðLNò :‘ #,LN;"IF LEN(G$(";I$;"))=0 THEN PRINT";Q$;EM$;Q$;FE$:‰ üuˆFHðÚ(BI$,Q$):‹ FHñ Ï ‘"YOU FORGOT QUOTES.":‰  v’‹ FHñ Ï ¦€vœFH$ðÿƒ(BI$,FHò,):LNðLNò :‘ #,LN;"IF INSTR(G$(";I$;"),";Q$;FH$;Q$;")>0 THEN PRINT";Q$;EM$;Q$;FE$:FHð:‰ Åv¦‘"SYNTAX ERROR. CONTAINS should not be set off by quotes.":‰ 6w°FHðÚ(BI$,"LENGTH"):LNðLNò :‘ #,LN;"IF LEN(G$(";I$;"))";ÿƒ(BI$,FHò);" THEN PRINT";Q$;EM$;Q$;FE$:FHð:‰ twº‹ Ú(BI$,"<")ñ ÷ Ú(BI$,">")ñ ÷ Ú(BI$,"=")ñ Ï Ä :¢ ΧwÄ‘"SYNTAX ERROR. Repeat command, please.":‰ ÃwÎCðÚ(BI$,Q$):‹ Cñ Ï âxØLNðLNò :‘ #,LN;"IF G$(";I$;")";BI$;" THEN PRINT";Q$;EM$;Q$;FE$:FHð:‰ hxâLNðLNò :‘ #,LN;"IF VAL(G$(";I$;"))";BI$;" THEN PRINT";Q$;EM$;Q$;FE$:FHð:‰ ¬xìLNðLNò :‹ K$ð"PI" Ï ‘ #,LN;"G$(";I$;")=MKI$(VAL(G$(";I$;")))"èxö‹ K$ð"PH" Ï ‘ #,LN;"G$(";I$;")=FNPH$(VAL(G$(";I$;")))"9y‹ K$ð"PI" Ï ‘ #,|.òI;"IF UF<>";I$;" THEN G$(";I$;")=MKI$(VAL(G$(";I$;")))"‹y ‹ K$ð"PH" Ï ‘ #,|.òI;"IF UF<>";I$;" THEN G$(";I$;")=FNPH$(VAL(G$(";I$;")))"Êy‹ K$ð"PI" Ï ‘ #,`mòRL;"G$(";I$;")=STR$(CVI(F$(";I$;")))" z‹ K$ð"PH" Ï ‘ #,`mòRL;"G$(";I$;")=STR$(FNUH(F$(";I$;")))"Ez(‹ K$ð"PS" Ï ‘ #,LN;"G$(";I$;")=MKS$(VAL(G$(";I$;")))"–z2‹ K$ð"PS" Ï ‘ #,|.òI;"IF UF<>";I$;" THEN G$(";I$;")=MKS$(VAL(G$(";I$;")))"Õz<‹ K$ð"PS" Ï ‘ #,`mòRL;"G$(";I$;")=STR$(CVS(F$(";I$;")))"{F‹ K$ð"PD" Ï ‘ #,LN;"G$(";I$;")=MKD$(VAL(G$(";I$;")))"a{P‹ K$ð"PD" Ï ‘ #,|.òI;"IF UF<>";I$;" THEN G$(";I$;")=MKD$(VAL(G$(";I$;")))" {Z‹ K$ð"PD" Ï ‘ #,`mòRL;"G$(";I$;")=STR$(CVD(F$(";I$;")))"Ü{d‹ K$ð"N" ø K$ð"C" Ï ‘ #,RLò`m;"G$(";I$;")=F$(";I$;")"|nRLðRLò :LNðLNò :‘ #,LN;"RETURN":ƒ:¹"CREATOR.OVL", ,ALL0|Š:�ÛERROR HANDLER\|Æ‘"ERROR NUMBER";×;"AT LINE";Ö:• ¨ ‰ RLðRLò :LNðLNò :‘ #,LN;"RETURN":ƒ:¹"CREATOR.OVL", ,ALL0|Š:�ÛERROR HANDLER\|Æ‘"ERROR