180 HOME : PRINT "Exit program to BASIC (Y/N)?";: GOSUB 680: IF K = 89 THEN TEXT : HOME : END
190 GOTO 120
200 HOME : PRINT "Load (N)on-proportional font": PRINT " or (P)roportional font ? ";
210 GOSUB 680: IF K = 27 THEN 120
220 IF K = 78 THEN 260
230 IF K < >80 THEN 210
240 GOSUB 600: IF Z$ < >"" THEN HOME : PRINT : CALL E +3: PRINT D$"BLOAD"Z$",A"P: CALL 782: POKE F,0: CALL E +18: CALL E +6: GOSUB 700:J = 1
250 GOTO 120
260 GOSUB 600: IF Z$ < >"" THEN HOME : PRINT : CALL E +3: PRINT D$"BLOAD"Z$",A"N: GOSUB 700: CALL 782: POKE F,0: CALL E +18:J = 1
270 GOTO 120
280 IF J = 0 THEN GOSUB 780: GOTO 120
290 HOME : PRINT "Save Proportional FontWorks font": GOSUB 600: IF Z$ < >"" THEN HOME : PRINT : PRINT D$"BSAVE"Z$",A"P",L"L
300 GOTO 120
310 IF J = 0 THEN GOSUB 780: GOTO 120
320 HOME : PRINT "Edit (E)ntire set or": PRINT " (C)haracter ? ";
330 GOSUB 680: IF K = 27 THEN 120
340 IF K = 67 THEN V = 0:H = 0:C = 0: GOTO 420
350 IF K < >69 THEN 330
360 HOME : PRINT "(I)nverse, (V)ert scroll, (U)pside down": PRINT "(ESC) for main menu : ";
370 GOSUB 680: IF K = 27 THEN 120
380 IF K = 73 THEN CALL E +12: GOTO 370
390 IF K = 86 THEN CALL E +9: GOTO 370
400 IF K = 85 THEN CALL E +15
410 GOTO 370
420 HOME : PRINT "Arrows and (A) (Z) to select": PRINT "(RETURN) to edit": PRINT "(ESC) for main menu :";
430 POKE 6,C: CALL E +21: POKE 6,8: POKE 768,V: POKE 770,H: CALL E +24: GOSUB 680: IF K = 27 THEN 120
440 IF K = 13 THEN 500
450 IF K = 8 THEN C = C -1: IF C <0 THEN C = 95
460 IF K = 11 OR K = 65 THEN C = C -20: IF C <0 THEN C = C +100: IF C >95 THEN C = C -20
470 IF K = 21 THEN C = C +1: IF C = 96 THEN C = 0
480 IF K = 10 OR K = 90 THEN C = C +20: IF C >95 THEN C = C -100: IF C <0 THEN C = C +20
490 V = INT(C/20) *10:H = (C -V *2) *2: GOTO 420
500 HOME : PRINT "Arrows and (A) (Z) to move": PRINT "(SPACEBAR) to toggle pixel": PRINT "(RETURN) to exit editor": PRINT "(ESC) to restore original character";:V = 0:H = 0
510 K = N +C *8: FOR X = 0 TO 7: POKE 36864 +X, PEEK(K +X): NEXT
520 POKE 768,V *7 +83: POKE 770,H +5: POKE 6,7: CALL E +24: GOSUB 680: IF K = 13 THEN CALL E: CALL E +18: GOSUB 700: GOTO 490
530 IF K = 32 THEN POKE 6,C: POKE 768,V: POKE 770,H: CALL E +27
540 IF K = 8 THEN H = H -1: IF H <0 THEN H = 6
550 IF K = 21 THEN H = H +1: IF H = 7 THEN H = 0
560 IF K = 65 OR K = 11 THEN V = V -1: IF V <0 THEN V = 7
570 IF K = 90 OR K = 10 THEN V = V +1: IF V = 8 THEN V = 0
580 IF K = 27 THEN K = N +C *8: FOR X = 0 TO 7: POKE K +X, PEEK(36864 +X): NEXT : GOTO 490
590 GOTO 520
600 HOME : PRINT "Enter FILENAME or (ESC) to exit:": PRINT "Press (?) for disk selection":Z$ = ""
610 VTAB 24: HTAB 1: PRINT "::> "Z$" " CHR$(8);: GOSUB 680: IF K = 27 THEN Z$ = "": RETURN
620 IF K = 63 THEN 790
630 IF K = 13 THEN RETURN
640 IF K >31 AND K <96 AND LEN(Z$) < >(30 -15 *PF) THEN Z$ = Z$ +K$
650 IF K = 8 AND LEN(Z$) <2 THEN Z$ = "": GOTO 610
660 IF K = 8 THEN Z$ = LEFT$(Z$, LEN(Z$) -1)
670 GOTO 610
680 GET K$:K = PEEK(49200) * PEEK(49200):K = ASC(K$):K = K -32 *(K >96 AND K <123): RETURN
690 POKE F -3,0: POKE F +1,0: POKE F +4,0: VTAB 24: POKE 34,20: RETURN