1570 IF EX >= 59 AND EX <= 68 THEN B$ = K$(EX - 58): GOTO 535
1575 IF EX >= 104 AND EX <= 113 THEN B$ = K$(EX - 93): GOTO 535
1580 IF EX >= 84 AND EX <= 103 THEN B$ = K$(EX - 63): GOTO 535
1585 IF EX >= 120 AND EX <= 129 THEN B$ = ALT$(EX - 119): GOTO 535
1590 IF EX = 131 THEN : BEEP: LOCATE 25, 1: PRINT " set Alt-(1-0): "; CHR$(181); : ALTSET = -1: GOTO 1000
1595 '-echo/message/print
1600 IF EX = 18 THEN BEEP: PRINT : IF ECH = 0 THEN ECH = -1: PRINT "===ECHO ON===": GOTO 515 ELSE ECH = 0: PRINT "===ECHO OFF===": GOTO 515'alt-e
1605 IF EX = 50 THEN BEEP: PRINT : IF MSG = 0 THEN MSG = -1: PRINT "===MESSAGES ON===": GOTO 515 ELSE MSG = 0: PRINT "===MESSAGES OFF===": GOTO 515' alt-m
1610 IF EX = 114 OR EX = 132 THEN BEEP: PRINT : IF PR = 0 THEN PR = -1: PRINT "===PRINTOUT ON===": CLOSE #3: OPEN PRNTPORT$ FOR RANDOM AS #3: PRINT #3, PRNTINIT$; : GOTO 515 ELSE PR = 0: CLOSE #3: PRINT "===PRINTOUT OFF===": GOSUB 2715: GOTO 515 _
1625 IF EX = 16 THEN IF DIAL$ <> "" THEN 8000 ELSE BEEP: PRINT "(nothing to redial)": PRINT GO$: GOTO 515' alt-q
1630 IF EX = 31 THEN 3800' alt-s
1635 IF EX = 33 THEN 5200' alt-f
1640 IF EX = 45 THEN BEEP: CLS : PRINT "===EXIT TO DOS===": PRINT : PRINT "WARNING! If you proceed you will terminate the program.": PRINT "Do you want to do this (y/n)?"; : Q$ = INPUT$(1): GOSUB 2555: IF Q$ <> "Y" THEN PRINT : PRINT GO$: GOTO 515 _
3540 IF FIL$ = "" THEN BEEP: PRINT "===CANCELLED===": GOTO 515
3545 IF LEFT$(FIL$, 1) = "?" THEN GOSUB 3625: GOTO 3510
3550 P = INSTR(FIL$, ":"): IF P = 0 THEN FIL$ = DRIV$ + FIL$
3555 IF EX = 19 THEN RCVX$ = FIL$ ELSE IF EX = 20 THEN TRNX$ = FIL$ ELSE IF EX = 47 THEN VEWX$ = FIL$
3560 P = INSTR(FIL$, "="): IF P = 0 THEN IF EX <> 20 OR PC$ = "" OR QUIT = -1 THEN 3595 ELSE QUIT = -1: Q$ = FIL$ + PC$: LOCATE CSRLIN - 1, 18: BEEP: GOTO 3525
3575 IF Q$ = "X" THEN IF EX = 19 THEN RC$ = "X" ELSE IF EX = 20 THEN TR$ = "X"
3580 IF LEFT$(Q$, 1) = "P" THEN TR$ = "P": PROMPT$ = RIGHT$(Q$, LEN(Q$) - 1): DEL! = VAL(PROMPT$)
3585 IF TR$ = "B" OR TR$ = "X" OR RC$ = "X" THEN IF DTA$ <> "8" THEN BEEP: PRINT "*** You must communicate at 8 DATA BITS for binary or XMODEM ***": GOTO 5015
3590 IF TR$ = "X" OR RC$ = "X" THEN IF NS <> 0 THEN BEEP: PRINT "*** Stripping disabled for XMODEM ***": NS = 0
3595 IF EX = 19 THEN CLOSE #2: OPEN FIL$ FOR APPEND AS #2 ELSE CLOSE #3: OPEN FIL$ FOR INPUT AS #3
3600 PRINT STRING$(18 + LEN(FIL$), 61): IF EX = 19 THEN RCV$ = FIL$: GOTO 3020
3605 IF EX = 20 THEN TRN$ = FIL$: GOTO 3225
3610 IF EX = 47 THEN VEW$ = FIL$: GOTO 3415
3615 IF EX = 21 THEN 3915
3620 '-file directory subrout
3625 IF LEN(FIL$) = 1 THEN FIL$ = DRIV$ + "*.*": GOTO 3640 ELSE FIL$ = RIGHT$(FIL$, LEN(FIL$) - 1): IF LEFT$(FIL$, 1) = " " THEN FIL$ = RIGHT$(FIL$, LEN(FIL$) - 1)
3630 P = INSTR(FIL$, ":"): IF P = 0 THEN FIL$ = DRIV$ + FIL$
3635 IF LEN(FIL$) = P THEN FIL$ = FIL$ + "*.*"
3640 PRINT : FILES FIL$: PRINT
3645 RETURN
3650 '
3800 ' Screendump
3805 '
3810 SOUND 440, 2: CLOSE #2: OPEN DUMP$ FOR APPEND AS #2: MSG$ = " Appending to " + DUMP$ + " at " + TIME$: GOSUB 2600
3815 FOR I = 1 TO 24: Y$ = "": FOR J = 1 TO 79: X = SCREEN(I, J): Y$ = Y$ + CHR$(X): NEXT J: PRINT #2, Y$: NEXT I: PRINT #2, STRING$(79, 45); CR$; LF$; "*** PC-TALK III SCREENDUMP - "; DATE$; " at "; TIME$; " ***"; CR$; LF$; STRING$(79, 61): CLOSE # _
5100 COLOR BG, FG: PRINT MID$(COMM$, 6, 10); : COLOR FG, BG: PRINT : PRINT
5105 PRINT "Echo-"; : IF ECH = -1 THEN PRINT "Y"; ELSE PRINT "N";
5110 PRINT " Mesg-"; : IF MSG = -1 THEN PRINT "Y"; ELSE PRINT "N";
5115 PRINT " Strip-"; : IF NS = 0 THEN PRINT "N"; ELSE PRINT USING "#"; NS;
5120 PRINT " Pace-"; : IF PC$ = "" THEN PRINT "N" ELSE PRINT PC$
5125 IF NS = 0 THEN PRINT : RETURN ELSE FOR I = 1 TO NS: PRINT "Strip #"; : PRINT USING "#"; I; : PRINT " - /"; : PRINT USING "###"; ASC(S$(I)); : PRINT "/"; : IF R$(I) = "" THEN PRINT "000"; ELSE PRINT USING "###"; ASC(R$(I));
5130 PRINT "/": NEXT: PRINT : RETURN
5135 '
5200 ' New Defaults
5205 '
5210 CLS : BEEP: PRINT "===SET NEW DEFAULTS===": PRINT : COLOR BG, FG: PRINT " Present program defaults:"; SPACE$(53); : COLOR FG, BG: QUIT = 0
5215 FOR I = 1 TO DFNUM: J = I + 4: P = 1: IF I > 15 THEN J = I - 11: P = 32
5220 LOCATE J, P, 0: PRINT DP$(I); : LOCATE J, P + 16: IF D$(I) >= " " THEN PRINT D$(I); ELSE IF D$(I) = "" THEN PRINT "''"; ELSE IF D$(I) = CHR$(0) THEN PRINT "0"; ELSE COLOR HI, BG: PRINT CHR$(ASC(D$(I)) + 64); : COLOR FG, BG
5225 IF I < 15 THEN PRINT SPACE$(12 - LEN(D$(I))); ELSE PRINT SPACE$(30 - LEN(D$(I)));
5230 NEXT: LOCATE , , 1: IF QUIT THEN 5280 ELSE FOR I = 1 TO DFNUM: DT$(I) = D$(I): NEXT
5235 LOCATE 21, 1: COLOR BG, FG: PRINT " Enter "; ENT$; " to leave unchanged - <space>"; ENT$; " for 'null' value - <ESC>"; ENT$; " to quit ": COLOR FG, BG
5240 PRINT "*** Enter new values": ABORT = 0: FOR I = 1 TO DFNUM: J = I + 4: P = 1: IF I > 15 THEN J = I - 11: P = 32
5245 IF ABORT THEN 5265
5250 IF D$(I) <> "" THEN LOCATE J, P + 17 + LEN(D$(I)) ELSE LOCATE J, P + 19
5255 IF I > 15 THEN QL = 16 ELSE QL = 4
5260 GOSUB 2500: IF Q$ = CHR$(27) THEN GOSUB 2655: GOSUB 2655: ABORT = -1 ELSE IF Q$ <> "" THEN DT$(I) = Q$: IF DT$(I) = " " THEN DT$(I) = ""
5265 NEXT
5270 GOSUB 5295: PRINT "*** New values ok (y/n)?"; : Q$ = INPUT$(1): PRINT Q$: GOSUB 2555: IF Q$ = "N" THEN GOSUB 5295: LOCATE 21, 1: PRINT SPACE$(79); : LOCATE 21, 1: PRINT "(default routine cancelled)": GOTO 5290 ELSE FOR I = 1 TO DFNUM: D$(I) = _
DT$(I): NEXT
5275 QUIT = -1: GOSUB 5295: PRINT "*** Make these changes permanent (y/n)?"; : Q$ = INPUT$(1): PRINT Q$ + " ...wait"; : GOSUB 2555: IF Q$ = "Y" THEN GOSUB 5440: GOTO 5215 ELSE GOSUB 5600: GOTO 5215
5280 GOSUB 5815: CLOSE #1: OPEN COMM$ FOR RANDOM AS #1
7040 LOCATE I + 4, 39, 0: PRINT VL$; : PRINT USING "##"; I; : PRINT " = ";
7045 K = LEN(K$(P)): IF K > 33 THEN K = 33
7050 FOR J = 1 TO K: Q = ASC(MID$(K$(P), J, 1)): IF Q > 31 THEN PRINT CHR$(Q); ELSE IF Q = 13 THEN PRINT XCR$; ELSE COLOR HI, BG: PRINT CHR$(Q + 64); : COLOR FG, BG
7055 NEXT J: PRINT SPACE$(33 - K) + VL$ + " "; : NEXT I
9100 IF ERR = 67 OR ERR = 70 OR ERR = 71 THEN BEEP: PRINT "*** Can't read/write file in the default drive.": PRINT "Correct and hit any key to resume..": Q$ = INPUT$(1): IF ERL < 400 THEN RESUME 215 ELSE CLS : RESUME 400
9105 IF ERR = 68 THEN GOTO 8910
9115 IF ERR = 62 AND ERL = 3420 THEN RESUME 3425
9900 '-if not trapped
9905 CLOSE : BEEP: MSG$ = " Sorry, NON-RECOVERABLE ERROR " + STR$(ERR) + " at line" + STR$(ERL): GOSUB 2600: ON ERROR GOTO 0