5 CLS::'PROG 'KEY DEFINER' from PORTABLE 6 '100 MAGAZINE 11/84 P 26 7 ' 8 'Screen designed with Prog 'SCR-DE or Screen Designer Portable 100 10/84. 10 CLS:PRINT 15 PRINT TAB(11)"################### " 20 PRINT TAB(11)"## ## " 25 PRINT TAB(11)"## KEY DEFINER ## " 30 PRINT TAB(11)"## ## " 35 PRINT TAB(11)"## 'KEYDEF' ## " 40 PRINT TAB(11)"################### " 45 PRINT TAB(17)" "; 50 A$=INKEY$:IF A$="" GOTO 50 60 DIM D$(15) 70 SP$=SPACE$(35) 80 S2$=SPACE$(20) 90 REV$=CHR$(27)+CHR$(112):' 6/88 CAN BE REPLACED BY: CALL 17001 100 FF$=CHR$(27)+CHR$(113):' 6/88 CAN BE REPLACED BY: CALL 17006 S.KENDALL 110 CLS:BEEP 120 PRINT:PRINT" RESTORE DEFAULT KEY VALUES? (Y/N)" 130 A$=INKEY$:IF A$=""THEN 130 140 IF A$="Y"ORA$="y"THEN CALL 23164,0,23366:CALL 27795 150 CLS 160 K$="" 170 PRINT@2,"Which Key to define (1-8)?" 190 PRINT@282,"Hit ESC to finish definitions."; 200 D$="" 210 PRINT@44," DEFINE KEY # ";:PRINT REV$ 220 K$=INKEY$:IF K$=""GOTO 220 230 IF K$=CHR$(27)GOTO 760 240 IF K$<"0" OR K$>"8"THEN BEEP:GOTO 250ELSE GOTO 300 250 BEEP:PRINT REV$:PRINT@60,"Number 1-8 Please !!"; 260 BEEP 270 FOR N=1 TO 1000:NEXT N 280 PRINT@60,S2$; 290 GOTO 160 300 PRINT K$;FF$; 310 K=VAL(K$) 320 FOR N=80 TO200 STEP 40 330 PRINT@N,SP$; 340 NEXT N 350 IF K<1 OR K>8 THEN GOTO 150 360 PRINT@282," Hit ESC to finish definitions." 370 PRINT@2,SP$; 380 PRINT@42,"Type definition F";MID$(STR$(K),2);", then "; 390 PRINT@122,"==>"; 400 A$=INKEY$:IF A$=""THEN 400 410 IF A$=CHR$(8) AND D$<>"" OR A$=CHR$(29) AND D$<>""THEN D$=LEFT$(D$,LEN(D$)-1):PRINT@125,S2$:GOTO 520ELSE IF A$=CHR$(8) AND D$=""THEN GOTO 520 420 D$=D$+A$ 430 IF A$=CHR$(13)GOTO 570 440 IF LEN(D$)<16 THEN GOTO 520 450 BEEP 460 PRINT@282,SP$; 470 PRINT@282,"ONLY 15 CHARACTERWS PLEASE!!"; 480 FOR N=1TO 1000:NEXT N 490 PRINT@125,S2$; 500 D$="" 510 GOTO 360 520 PRINT@125,D$; 530 PRINT@240," LENGTH : "; 540 PRINT LEN(D$); 550 PRINTTAB(20)"REMAINING : ";15-LEN(D$); 560 GOTO 400 570 CU=CU+1 580 D$=LEFT$(D$,LEN(D$)-1) 590 PRINT@280,SP$; 600 BEEP 610 PRINT@283,"End with carrage return? (Y/N)"; 620 A$=INKEY$:IF A$=""THEN GOTO 620 630 IF A$="Y"ORA$="y"THEN GOTO 640ELSE M$="":GOTO 730 640 IF LEN(D$)<>15 GOTO 720 650 BEEP:PRINT@282,SP$; 660 PRINT@283,"Too long for C/R. Re-enter."; 670 FORN=1TO1000:NEXT 680 D$="" 690 PRINT@283,SP$; 700 PRINT@125,S2$; 710 GOTO 380 720 M$=CHR$(13) 730 D$(K)=D$+M$ 740 KEY K,D$(K) 750 GOTO 150 760 CLS 770 PRINT@60,REV$;" Writing File ";FF$; 780 OPEN "keydef.do" FOR OUTPUT AS1 790 C=C+1 800 FOR N=1 TO 10 810 IF D$(N)=""GOTO 890 820 C=C+1 830 M$="" 840 IF RIGHT$(D$(N),1)<>CHR$(13)THEN 870 850 M$="+CHR$(13)" 860 D$(N)=LEFT$(D$(N),LEN(D$(N))-1) 870 L$=STR$(C)+" KEY"+STR$(N)+","+CHR$(34)+D$(N)+CHR$(34)+M$ 880 PRINT #1,L$ 890 NEXT N 900 C=C+1 910 PRINT #1,STR$(C)+"NEW" 920 CLOSE 1 930 RUN "keydef.do" 940 END 1000 CLS:BEEP:CALL17001:PRINT@44,"IS THIS DARK"