0 MASK=PEEK(16):IF MASK>=128 THEN MASK=MASK-128:POKE 16,MASK:POKE 53774,MASK 10 REM EDITOR CUSTOMIZING MANAGER 20 REM FILENAME "MEDITCM.BAS" 30 REM VERSION 0.0 (06/25/81) 40 REM COPYRIGHT 1981, ATARI 50 REM REQUIRES 32K SYSTEM 60 REM WRITTEN BY MIKE LORENZEN 100 DIM FILENAME$(15) 110 DIM FILECONTENTS(42) 120 DIM ANSWER$(40) 130 DIM KEYSTROKE$(1) 140 DIM EOL$(1) 150 DIM DELETE$(1) 160 DIM SPECIALCHARACTER$(1) 170 DIM LOGICALOR$(16) 180 DIM FINDTAB$(58) 190 DIM TABTABLE$(31) 200 FILESIZE=42 210 CURSORINHIBIT=752 220 CH=764 230 EOL$=CHR$(155) 240 DELETE$=CHR$(126) 250 LOGICALOR$="h(h…Ô(hÔ…Ô©…Õ`" 260 FINDTAB$="hh…Õh…ÔhhH¨)ª©8*Êüª˜JJJ¨ŠÔÑÔðhÉÈ°iÐÞ©…Ô…Õ`h…Ô©…Õ`" 310 POKE CURSORINHIBIT,1:PRINT "}" 320 POSITION 7,3:PRINT "EDITOR CUSTOMIZING MANAGER" 330 POSITION 14,5:PRINT "VERSION 0.0" 340 POSITION 2,13:PRINT "WOULD YOU LIKE INSTRUCTIONS? (Y/N) "; 350 POSITION 10,23:PRINT "COPYRIGHT 1981, ATARI"; 360 GOSUB 24000 370 IF KEYSTROKE$="Y" THEN GOTO 20000 380 IF KEYSTROKE$<>"N" THEN PRINT "ý";:GOTO 360 400 REM WHAT EXTENSION GROUP PROMPT 410 PRINT "}" 420 POSITION 9,10:PRINT "WHAT EXTENSION GROUP" 430 POSITION 9,11:PRINT "(0-3 chars or '?') "; 440 SPECIALCHARACTER$="?":ALPHAFLAG=1:GOSUB 28030 450 IF ANSWER$="?" THEN 20000 460 FILENAME$="D1:MEDIT":FILENAME$(LEN(FILENAME$)+1)=ANSWER$:FILENAME$(LEN(FILENAME$)+1)=".ECF" 500 TRAP 580 510 OPEN #1,4,0,FILENAME$ 520 FOR A=1 TO FILESIZE 530 GET #1,B 540 FILECONTENTS(A)=B 550 NEXT A 560 CLOSE #1 570 GOTO 700 580 TRAP 40000 590 CLOSE #1 600 PRINT "}"; 610 POSITION 9,10:PRINT "ýÕÓÉÎÇ ÉÎÔÅÒÎÁÌ ÄÅÆÁÕÌÔÓ" 620 POSITION 13,14:PRINT "--please wait--" 630 FOR A=1 TO FILESIZE 640 READ B 650 FILECONTENTS(A)=B 660 NEXT A 670 GOSUB 25000 680 DATA 114,128,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0 690 DATA 0,0,0,0,0,0,0,0,0,0,0,64,3,40,128,128,148,10,100,128 700 REM MAIN MENU 710 SETCOLOR 2,INT(FILECONTENTS(39)/16),FILECONTENTS(39)-(INT(FILECONTENTS(39)/16)*16) 720 SETCOLOR 1,0,FILECONTENTS(40)-(INT(FILECONTENTS(40)/16)*16) 730 PRINT "}":POSITION 5,3 740 PRINT "WHAT WOULD YOU LIKE TO DO?" 750 PRINT :PRINT 760 PRINT "A. SAVE PARAMETERS & RETURN TO DOS" 770 PRINT "B. SAVE PARAMETERS & RE-RUN" 780 PRINT "C. FORGET PARAMETERS & RETURN TO DOS" 790 PRINT "D. FORGET PARAMETERS & RE-RUN" 800 PRINT 810 PRINT "E. SET TAB STOPS" 820 PRINT "F. SET MAXIMUM LINE LENGTH" 830 PRINT "G. SET GROWTH FACTOR" 840 PRINT "H. SET DEFAULT MARGINS" 850 PRINT "I. SET COLOR OF SCREEN" 860 PRINT "J. SET MISCELLANEOUS FLAGS" 870 PRINT :PRINT 880 PRINT " Enter letter of choice (A-J)"; 890 LIMIT=10:GOSUB 22000 900 PRINT "}" 910 ON KEYSTROKE GOTO 1000,2000,3000,4000,5000,6000,7000,8000,9000,10000 1000 REM SAVE PARAMETERS & RETURN TO DOS 1010 GOSUB 23000 1020 DOS 2000 REM SAVE PARAMTERS & RE-RUN 2010 GOSUB 23000 2020 RUN 3000 REM FORGET PARAMTERS & RETURN TO DOS 3010 DOS 4000 REM FORGET PARAMTERS & RE-RUN 4010 RUN 5000 REM SET& CLEAR TABSTOPS 5010 PRINT "}":POSITION 9,3:PRINT "SET & CLEAR TABSTOPS" 5020 POSITION 2,6 5030 PRINT "You can set or clear both space tabs" 5040 PRINT "and expanding tabs. The Program-Text" 5050 PRINT "Editor does not allow you to change" 5060 PRINT "tab stops during an editing session." 5070 PRINT "You can set or clear tab stops past" 5080 PRINT "the current maximum line length." 5090 GOSUB 27000 5100 PRINT "}":POSITION 2,6 5110 PRINT "The default tabstops are:" 5120 PRINT "9,17,25,33,41,49,57,65,73,81,89,97," 5130 PRINT "105,113" 5140 POSITION 2,12 5150 PRINT "The current tabstops are:" 5160 FOR TABSTOP=1 TO 31 5170 TABTABLE$(TABSTOP,TABSTOP)=CHR$(FILECONTENTS(2+TABSTOP)) 5180 NEXT TABSTOP 5190 TABSTOP=2 5200 TABSTOP=USR(ADR(FINDTAB$),ADR(TABTABLE$),TABSTOP) 5210 IF TABSTOP=0 THEN 5250 5220 PRINT TABSTOP;","; 5230 TABSTOP=TABSTOP+1 5240 GOTO 5200 5250 POSITION 2,18 5260 PRINT "(Íenu,Óet,Ãlear) Select item "; 5270 GOSUB 24000 5280 IF KEYSTROKE$="M" THEN 700 5290 IF KEYSTROKE$="S" THEN 5400 5300 IF KEYSTROKE$<>"C" THEN PRINT "ý";:GOTO 5270 5310 PRINT "ÃÌÅÁÒ" 5320 POSITION 2,20:PRINT "(2-199 or *) What column to clear "; 5330 SPECIALCHARACTER$="*":GOSUB 28020:IF ANSWER$="" THEN 5100 5340 IF ANSWER$="*" THEN FOR TABSTOP=1 TO 31:FILECONTENTS(2+TABSTOP)=0:NEXT TABSTOP:GOTO 5100 5350 ANSWER=VAL(ANSWER$) 5360 IF ANSWER<2 OR ANSWER>199 THEN GOSUB 21000:GOTO 5330 5370 TABSTOP=ANSWER:GOSUB 26000 5380 FILECONTENTS(3+OFFSET)=TABCBYTE 5390 GOTO 5100 5400 PRINT "ÓÅÔ" 5410 POSITION 2,20:PRINT "(2-199) What column to set "; 5420 GOSUB 28000:IF ANSWER$="" THEN 5100 5430 ANSWER=VAL(ANSWER$) 5440 IF ANSWER<2 OR ANSWER>199 THEN GOSUB 21000:GOTO 5420 5450 TABSTOP=ANSWER:GOSUB 26000 5460 FILECONTENTS(3+OFFSET)=TABSBYTE 5470 GOTO 5100 6000 REM SET MAXIMUM LINE LENGTH 6010 PRINT "}":POSITION 8,3:PRINT "SET MAXIMUM LINE LENGTH" 6020 POSITION 2,6 6030 PRINT "The operating system built-in screen" 6040 PRINT "editor (E:) limits maximum line" 6050 PRINT "length to three physical lines," 6060 PRINT "usually 114 characters. The Editor" 6070 PRINT "allows a 200 character maximum line" 6080 PRINT "length. Take care not to exceed a" 6090 PRINT "114 character line length with a" 6100 PRINT "language system that uses the built" 6110 PRINT "-in screen editor." 6120 PRINT 6130 PRINT "The default value is 114." 6140 PRINT :PRINT 6150 PRINT "The current value is ";FILECONTENTS(1) 6160 PRINT :PRINT "(2-200) The new value is "; 6170 GOSUB 28000:IF ANSWER$="" THEN 700 6180 ANSWER=VAL(ANSWER$) 6190 IF ANSWER<2 OR ANSWER>200 THEN GOSUB 21000:GOTO 6170 6200 FILECONTENTS(1)=ANSWER 6210 GOTO 700 7000 REM SET FILE GROWTH 7010 PRINT "}":POSITION 10,2:PRINT "SET FILE GROWTH FACTOR" 7020 POSITION 2,5 7030 PRINT "Before allowing you to edit a file," 7040 PRINT "the Program-Text Editor checks to see" 7050 PRINT "that there is a reasonable amount of" 7060 PRINT "free space on the destination" 7070 PRINT "diskette. The Program-Text Editor" 7080 PRINT "considers a reasonable amount to be" 7090 PRINT "FILESIZE + GROWTH FACTOR. If there" 7100 PRINT "is not enough room on the diskette" 7110 PRINT "for the edit file and the growth" 7120 PRINT "factor, you may abort the edit or" 7130 PRINT "proceed despite the warning." 7140 PRINT 7150 PRINT "The default value is 100." 7160 PRINT :PRINT 7170 PRINT "The current value is ";FILECONTENTS(41) 7180 PRINT :PRINT "(0-255) The new value is "; 7190 GOSUB 28000:IF ANSWER$="" THEN 700 7200 ANSWER=VAL(ANSWER$) 7210 IF ANSWER>255 THEN GOSUB 21000:GOTO 7190 7220 FILECONTENTS(41)=ANSWER 7230 GOTO 700 8000 REM SET MARGINS 8010 PRINT "}":POSITION 11,2:PRINT "SET DEFAULT MARGINS" 8020 POSITION 2,4 8030 PRINT "You can set left and right margins" 8040 PRINT "during an editing session. Use this" 8050 PRINT "feature if your TV should cut off" 8060 PRINT "columns on the left or right edge." 8070 PRINT "These settings may be overridden by" 8080 PRINT "commands in the Editor. The" 8090 PRINT "following rule must be followed:" 8100 PRINT 8110 PRINT "  ± ¼½ ÌÍ ¼ ÒÍ ¼½ ´° " 8120 PRINT 8130 PRINT "The defaults are LM=3 and RM=40." 8140 PRINT :PRINT 8150 PRINT "The current left margin value is ";FILECONTENTS(35) 8160 PRINT "The current right margin value is ";FILECONTENTS(36) 8170 PRINT 8180 PRINT "(1-RM) The new left margin is "; 8190 GOSUB 28000:IF ANSWER$="" THEN 8230 8200 ANSWER=VAL(ANSWER$) 8210 IF ANSWER>=FILECONTENTS(36) OR ANSWER=0 THEN GOSUB 21000:GOTO 8190 8220 FILECONTENTS(35)=ANSWER 8230 PRINT "(LM-40) The new right margin is "; 8240 GOSUB 28000:IF ANSWER$="" THEN 700 8250 ANSWER=VAL(ANSWER$) 8260 IF ANSWER>40 OR ANSWER<=FILECONTENTS(35) THEN GOSUB 21000:GOTO 8240 8270 FILECONTENTS(36)=ANSWER 8280 GOTO 700 9000 REM SET COLOR OF SCREEN 9010 BCOLOR=INT(FILECONTENTS(39)/16) 9020 BLUM=FILECONTENTS(39)-(INT(FILECONTENTS(39)/16)*16) 9030 CLUM=FILECONTENTS(40)-(INT(FILECONTENTS(40)/16)*16) 9040 A=0 9050 PRINT "}":POSITION 10,3:PRINT "SET COLOR OF SCREEN." 9060 POSITION 2,6 9070 PRINT "You can choose a specific background" 9080 PRINT "color for your editing session. Use" 9090 PRINT "this feature to identify the set of" 9100 PRINT "custom parameters in effect or for" 9110 PRINT "aesthetic value. Three factors" 9120 PRINT "determine the screen color. They" 9130 PRINT "are:" 9140 PRINT 9150 PRINT "1) color of background (color)," 9160 PRINT "2) luminance of background (B LUM), " 9170 PRINT "3) luminance of characters (C LUM)." 9180 PRINT :PRINT "Remember that luminance values must" 9190 PRINT "be even integers." 9200 GOSUB 27000 9210 PRINT "}":POSITION 2,2:PRINT "Certain rules must be followed when" 9220 PRINT "when choosing screen color and" 9230 PRINT "luminance values; for more infor-" 9240 PRINT "mation, consult the Program-Text" 9250 PRINT "Editor manual." 9260 PRINT 9270 PRINT "The default color is 9." 9280 PRINT "The default B LUM is 4." 9290 PRINT "The default C LUM is 10." 9300 PRINT :PRINT 9310 PRINT "The current value for color is ";:PRINT BCOLOR 9320 PRINT "The current value for B LUM is ";:PRINT BLUM 9330 PRINT "The current value for C LUM is ";:PRINT CLUM 9340 PRINT :PRINT 9350 IF A>0 THEN 9410 9360 PRINT "(0-15) The new color is "; 9370 GOSUB 28000:IF ANSWER$="" THEN 9410 9380 ANSWER=VAL(ANSWER$) 9390 IF ANSWER>15 THEN GOSUB 21000:GOTO 9370 9400 BCOLOR=ANSWER 9410 IF A>1 THEN 9490 9420 PRINT "(0-14e) The new B lum is "; 9430 GOSUB 28000:IF ANSWER$="" THEN 9490 9440 ANSWER=VAL(ANSWER$) 9450 A=1 9460 IF ANSWER>14 THEN GOSUB 21000:GOTO 9430 9470 IF INT(ANSWER/2)*2<>ANSWER THEN GOSUB 21000:GOTO 9430 9480 BLUM=ANSWER 9490 PRINT "(0-14e) The new C lum is "; 9500 GOSUB 28000:IF ANSWER$="" THEN 9560 9510 ANSWER=VAL(ANSWER$) 9520 A=2 9530 IF ANSWER>14 THEN GOSUB 21000:GOTO 9490 9540 IF INT(ANSWER/2)*2<>ANSWER THEN GOSUB 21000:GOTO 9490 9550 CLUM=ANSWER 9560 ANSWER$="" 9570 IF BLUM=CLUM THEN ANSWER$=" B lum can not equal C lum" 9580 IF (BLUM-8)=CLUM THEN ANSWER$=" B lum - 8 can not equal C lum" 9590 IF (CLUM-8)=BLUM THEN ANSWER$=" C lum - 8 can not equal B lum" 9600 FILECONTENTS(39)=(BCOLOR*16)+(FILECONTENTS(39)-(INT(FILECONTENTS(39)/16)*16)) 9610 IF ANSWER$<>"" THEN 9650 9620 FILECONTENTS(39)=INT(FILECONTENTS(39)/16)*16+BLUM 9630 FILECONTENTS(40)=CLUM 9640 GOTO 700 9650 PRINT "}":POSITION 5,3:PRINT "ýÉÌÌÅÇÁÌ ÌÕÍÉÎÁÎÃÅ ÃÏÍÂÉÎÁÔÉÏΡ" 9660 POSITION 3,7:PRINT ANSWER$ 9670 POSITION 10,9:PRINT "(see Editor manual)" 9680 GOSUB 25000 9690 A=1 9700 GOTO 9260 10000 REM SET MISCELLANEOUS FLAGS 10010 PRINT "}":POSITION 8,3 10020 PRINT "SET MISCELLANEOUS FLAGS" 10030 POSITION 2,6 10040 PRINT "A. RETURN TO MAIN MENU" 10050 PRINT 10060 PRINT "B. SET SPACE TAB/EXPANDING TAB OPTION" 10070 PRINT "C. SET TAB DISPLAY METHOD" 10080 PRINT "D. SET CARRIAGE RETURN DISPLAY" 10090 PRINT "E. SET AUTO-INDENTION FEATURE" 10100 PRINT "F. SET UPPERCASE/LOWERCASE OPTION" 10110 PRINT :PRINT 10120 PRINT " Enter letter of choice (A-F) " 10130 LIMIT=6:GOSUB 22000 10140 ON KEYSTROKE GOTO 11000,12000,13000,14000,15000,16000 11000 REM RETURN TO MAIN MENU 11010 GOTO 700 12000 REM SET SPACE TAB/EXPANDING TAB OPTION 12010 PRINT "}":POSITION 5,0:PRINT "SET SPACE/EXPANDING TAB OPTION" 12020 PRINT 12030 PRINT "Two types of tabs exist in the" 12040 PRINT "Program-Text Editor: space tabs and" 12050 PRINT "expanding tabs. Space tabs are" 12060 PRINT "exactly as in the screen editor (E:)" 12070 PRINT "in that they insert blanks in all the" 12080 PRINT "unused area between tabstops." 12090 PRINT "Expanding tabs insert an actual tab" 12100 PRINT "character that serves to occupy all" 12110 PRINT "the unused area between tabstops. If" 12120 PRINT "text is added or deleted in front of" 12130 PRINT "an expanding tab character, the" 12140 PRINT "unused occupied area will shrink or" 12150 PRINT "expand. ×áòîéîçº Not all ATARI" 12160 PRINT "software recognizes the expanding tab" 12170 PRINT "feature." 12180 PRINT 12190 PRINT "The default is for space tabs ('S')." 12200 PRINT :PRINT 12210 PRINT "The current value is"; 12220 ANSWER$="'EXPANDING TABS'" 12230 IF FILECONTENTS(2)>127 THEN ANSWER$="'SPACE TABS'" 12240 PRINT ANSWER$ 12250 PRINT :PRINT "(S or E) The new setting is ?"; 12260 GOSUB 24000 12270 IF KEYSTROKE$=EOL$ THEN 10000 12280 IF KEYSTROKE$="S" THEN 12310 12290 IF KEYSTROKE$<>"E" THEN PRINT "ý";:GOTO 12260 12300 FILECONTENTS(2)=0:GOTO 10000 12310 FILECONTENTS(2)=128:GOTO 10000 13000 REM SET MENU - TAB DISPLAY METHOD 13010 PRINT "}":POSITION 11,2:PRINT "TAB DISPLAY METHOD" 13020 POSITION 2,5 13030 PRINT "The Editor displays expanding tabs as" 13040 PRINT "either spaces of right-triangles" 13050 PRINT "followed by periods. For conven-" 13060 PRINT "ience use spaces for viewing text and" 13070 PRINT "the visual display character as an" 13080 PRINT "aid in editing. This setting can be" 13090 PRINT "overridden by an immediate keystroke" 13100 PRINT "in the Editor." 13110 PRINT 13120 PRINT "The default is for right-triangles" 13130 PRINT "('R')." 13140 PRINT :PRINT 13150 PRINT "The current value is "; 13160 ANSWER$="'RIGHT TRIANGLES'" 13170 IF FILECONTENTS(37)<128 THEN ANSWER$="'SPACES'" 13180 PRINT ANSWER$ 13190 PRINT :PRINT "(S or R) The new value is ?"; 13200 GOSUB 24000 13210 IF KEYSTROKE$=EOL$ THEN 10000 13220 IF KEYSTROKE$="S" THEN 13250 13230 IF KEYSTROKE$<>"R" THEN PRINT "ý";:GOTO 13200 13240 FILECONTENTS(37)=128:GOTO 10000 13250 FILECONTENTS(37)=0:GOTO 10000 14000 REM SET MENU - HOW TO DISPLAY CARRAIGE RETURNS 14010 PRINT "}":POSITION 6,3:PRINT "CARRIAGE RETURN DISPLAY METHOD" 14020 POSITION 2,6 14030 PRINT "The Editor displays carriage returns" 14040 PRINT "as either spaces or a down-arrow." 14050 PRINT "For convenience, use spaces for" 14060 PRINT "viewing text and the visual display" 14070 PRINT "character as an aid in editing. This" 14080 PRINT "setting can be overridden by an" 14090 PRINT "immediate keystroke in the Editor." 14100 PRINT 14110 PRINT "The default is for down-arrows ('D')." 14120 PRINT :PRINT 14130 PRINT "The current value is "; 14140 ANSWER$="'DOWN-ARROWS'" 14150 IF FILECONTENTS(38)<128 THEN ANSWER$="'SPACES'" 14160 PRINT ANSWER$ 14170 PRINT :PRINT "(S or D) The new value is ?"; 14180 GOSUB 24000 14190 IF KEYSTROKE$=EOL$ THEN 10000 14200 IF KEYSTROKE$="S" THEN 14230 14210 IF KEYSTROKE$<>"D" THEN PRINT "ý";:GOTO 14180 14220 FILECONTENTS(38)=128:GOTO 10000 14230 FILECONTENTS(38)=0:GOTO 10000 15000 REM SET MENU - AUTO-INDENTATION FEATURE 15010 PRINT "}":POSITION 10,3:PRINT "AUTO-INDENTION FEATURE" 15020 POSITION 2,6 15030 PRINT "The ATARI EDITOR can be set to enable" 15040 PRINT "or disable the auto-indention feature."; 15050 PRINT "Auto-indention is used for languages" 15060 PRINT "such as PASCAL." 15070 PRINT 15080 PRINT "The default is to enable ('E')." 15090 PRINT :PRINT 15100 PRINT "The old setting was "; 15110 ANSWER$="'DISABLE'" 15120 IF FILECONTENTS(42)>127 THEN ANSWER$="'ENABLE'" 15130 PRINT ANSWER$ 15140 PRINT :PRINT "(D or E) The new setting is ?"; 15150 GOSUB 24000 15160 IF KEYSTROKE$=EOL$ THEN 10000 15170 IF KEYSTROKE$="D" THEN 15200 15180 IF KEYSTROKE$<>"E" THEN PRINT "ý";:GOTO 15150 15190 FILECONTENTS(42)=128:GOTO 10000 15200 FILECONTENTS(42)=0:GOTO 10000 16000 REM SET STARTING CASELOCK 16010 PRINT "}":POSITION 11,3:PRINT "STARTING CASELOCK" 16020 POSITION 2,6 16030 PRINT "The ATARI EDITOR can be set to start" 16040 PRINT "the editing session in a shift-lock" 16050 PRINT "(for uppercase) or no-lock (for" 16060 PRINT "upper- and lowercase) condition." 16070 PRINT "This starting selection can be" 16080 PRINT "overridden while editing by using the" 16090 PRINT "CAPS-LOWER key." 16100 PRINT 16110 PRINT "The default is for SHIFT-LOCK ('S')." 16120 PRINT :PRINT 16130 PRINT "The old setting was "; 16140 ANSWER$="SHIFT-LOCK" 16150 IF FILECONTENTS(34)=0 THEN ANSWER$="NO-LOCK" 16160 PRINT ANSWER$ 16170 PRINT :PRINT "(S or N) The new setting is "; 16180 GOSUB 24000 16190 IF KEYSTROKE$=EOL$ THEN 10000 16200 IF KEYSTROKE$="S" THEN 16230 16210 IF KEYSTROKE$<>"N" THEN PRINT "ý";:GOTO 16180 16220 FILECONTENTS(34)=0:GOTO 10000 16230 FILECONTENTS(34)=64:GOTO 10000 20000 REM PRINT INSTRUCTIONS 20010 PRINT "}":POSITION 14,3 20020 PRINT "INSTRUCTIONS" 20030 POSITION 2,6 20040 PRINT "The EDITOR CUSTOMIZING MANAGER allows" 20050 PRINT "you to tailor the Program-Text Editor" 20060 PRINT "to your personal preferences. The" 20070 PRINT "Editor reads special files in the" 20080 PRINT "form 'MEDITxxx.ECF', where xxx is the" 20090 PRINT "file extension designation. Reply to" 20100 PRINT "the 'WHAT EXTENSION GROUP' prompt by" 20110 PRINT "entering the zero to three character" 20120 PRINT "extension 'xxx.'" 20130 GOSUB 27000 20140 PRINT "}" 20150 POSITION 2,4 20160 PRINT "You can change the following items:" 20170 PRINT 20180 PRINT "TABSTOPS - setting or clearing" 20190 PRINT "LINE LENGTH LIMIT (2-200)" 20200 PRINT "FILE GROWTH FACTOR" 20210 PRINT "DEFAULT SCREEN MARGINS" 20220 PRINT "COLOR OF SCREEN" 20230 PRINT "MISCELLANEOUS FLAGS" 20240 PRINT " space tabs/expanding tabs" 20250 PRINT " expanding tabs display" 20260 PRINT " carriage return display" 20270 PRINT " auto-indention" 20280 PRINT " uppercase/lowercase" 20290 GOSUB 27000 20300 PRINT "}" 20310 POSITION 5,9 20320 PRINT "Now that you have read the" 20330 PRINT "instructions, would you still like" 20340 PRINT "to continue this program ? (Y or N)" 20350 GOSUB 24000 20360 IF KEYSTROKE$="N" THEN DOS 20370 IF KEYSTROKE$<>"Y" THEN PRINT "ý";:GOTO 20350 20380 GOTO 400 21000 REM RETRY INPUT SETUP ROUTINE 21010 PRINT "ýý"; 21020 POSITION COLUMN,ROW 21030 RETURN 22000 REM GET MENU KEYSTROKE ROUTINE 22010 GOSUB 24000 22020 IF KEYSTROKE$<"A" OR KEYSTROKE$>"Z" THEN PRINT "ý";:GOTO 22000 22030 KEYSTROKE=ASC(KEYSTROKE$)-64 22040 IF KEYSTROKE>LIMIT THEN PRINT "ý";:GOTO 22010 22050 RETURN 23000 REM SAVE PARAMETERS 23010 TRAP 23090 23020 OPEN #1,8,0,FILENAME$ 23030 FOR A=1 TO FILESIZE 23040 B=FILECONTENTS(A) 23050 PUT #1,B 23060 NEXT A 23070 CLOSE #1 23080 RETURN 23090 TRAP 40000 23100 PRINT "}":POSITION 8,10 23110 PRINT "ýÅÒÒÏÒ ÉΠÓÁÖÉÎÇ ­ ÓÏÒÒÙ" 23120 POSITION 12,14:PRINT "--please wait--" 23130 GOSUB 25000 23140 RETURN 24000 REM GET KEYBOARD CHARACTER 24010 POKE CH,255 24020 TRAP 24120 24030 OPEN #1,4,0,"K:" 24040 GET #1,KEYSTROKE 24050 CLOSE #1 24060 TRAP 40000 24070 KEYSTROKE$=CHR$(KEYSTROKE) 24080 IF KEYSTROKE$=EOL$ OR KEYSTROKE$=DELETE$ THEN RETURN 24090 IF ASC(KEYSTROKE$)>=128 THEN KEYSTROKE$=CHR$(ASC(KEYSTROKE$)-128) 24100 IF KEYSTROKE$>="a" AND KEYSTROKE$<="z" THEN KEYSTROKE$=CHR$(ASC(KEYSTROKE$)-32) 24110 RETURN 24120 CLOSE #1 24130 GOTO 24000 25000 REM DELAY SUBROUTINE 25010 FOR DELAY=1 TO 200 25020 NEXT DELAY 25030 RETURN 26000 REM TAB MAP ROUTINE 26010 OFFSET=INT(TABSTOP/8) 26020 BYTE=FILECONTENTS(3+OFFSET) 26030 BIT=TABSTOP-INT(OFFSET*8) 26040 MASK=INT((2^BIT)+0.5) 26050 TABSBYTE=USR(ADR(LOGICALOR$),BYTE,MASK) 26060 TABCBYTE=BYTE:IF BYTE=TABSBYTE THEN TABCBYTE=TABCBYTE-MASK 26070 FOUNDTAB=0:IF BYTE=TABSBYTE THEN FOUNDTAB=1 26080 RETURN 27000 REM TOUCH SPACE-BAR TO CONTINUE ROUTINE 27010 POSITION 4,22 27020 PRINT "---Touch ÓÐÁÃÅ­ÂÁÒ to continue---" 27030 GOSUB 24000 27040 IF KEYSTROKE$<>" " THEN PRINT "ý";:GOTO 27030 27050 RETURN 28000 REM 3 CHAR INPUT ROUTINE 28010 SPECIALCHARACTER$="" 28020 ALPHAFLAG=0 28030 ROW=PEEK(84) 28040 COLUMN=PEEK(85) 28050 ANSWER$="  " 28060 LENGTH=0 28070 POKE CH,255 28080 POSITION COLUMN,ROW 28090 PRINT ANSWER$; 28100 GOSUB 24020 28110 IF KEYSTROKE$>="0" AND KEYSTROKE$<="9" THEN 28270 28120 IF ALPHAFLAG=1 THEN IF KEYSTROKE$>="A" AND KEYSTROKE$<="Z" THEN 28270 28130 IF KEYSTROKE$=DELETE$ THEN 28180 28140 IF KEYSTROKE$=EOL$ THEN 28240 28150 IF KEYSTROKE$=SPECIALCHARACTER$ THEN 28220 28160 PRINT "ý"; 28170 GOTO 28100 28180 IF LENGTH=0 THEN 28160 28190 ANSWER$(LENGTH,LENGTH+1)="  " 28200 LENGTH=LENGTH-1 28210 GOTO 28080 28220 IF LENGTH=0 THEN ANSWER$=SPECIALCHARACTER$:RETURN 28230 GOTO 28160 28240 POSITION COLUMN,ROW:ANSWER$(LENGTH+1)=" ":PRINT ANSWER$:IF LENGTH=0 THEN ANSWER$="":RETURN 28250 ANSWER$=ANSWER$(1,LENGTH) 28260 RETURN 28270 IF LENGTH=3 THEN 28160 28280 LENGTH=LENGTH+1 28290 ANSWER$(LENGTH,LENGTH)=KEYSTROKE$ 28300 ANSWER$(LENGTH+1,LENGTH+1)=" " 28310 GOTO 28080