10! THIS PROGRAM WILL PUNCH PAPER TAPES.....BIG DEAL! 20! IT WILL PUNCH A RUBOUT EVERY SO OFTEN (USUALLY EVERY 85 30! CHARACTERS). BY DOING THIS, THE TAPE CAN BE FAN FOLDED 40! ON THE RUBOUTS. ALSO , IF $PUNCH.MAT IS THERE (IT HAD BETTER 50! BE), IT WILL PUNCH THE NAME OF THE PROGRAM IN READABLE 60! PUNCH ALONG WITH THE TIME AND DATE. RESPOND TO THE # WITH A 70! FILE NAME. OTHER COMMANDS ARE /S--STOP, /O--OLD THE PROGRAM 80! /C--CHAIN THE PROGRAM, OR ANOTHER FILENAME. .BAS IS THE 90! DEFAULT (YOUR FAULT TOO) EXTENSION. 99! 100 REM FANNY CLARK BAKER 1/72 C.O.G. 105! 110 REM PUNCH SEGMENT ADDED 3/72 BY CLARK BAKER 115 REM FIXED AGAIN ON 4/72 117 ! PERFECTED 8/72 BY ED BAKER [NOW IT WORKS HOW IT SHOULD] 120 PRINT "FANNY VER 2C" 130 N$=CHR$(0%):N$=N$+N$ UNTIL LEN(N$)>85% 140 OPEN "KB:" AS FILE 1% 150 OPEN "PUNCH.MAT[1,2]" AS FILE 3%:DIM #3%,P%(95%,4%) 160 ON ERROR GO TO 280 170 A$=SYS(CHR$(0%)):PRINT'#'; 175 F%=0% 180 INPUT #1%,F1$:I%=INSTR(1%,F1$,"/") 185 IF INSTR(1%,F1$,"$") OR INSTR(1%,F1$,",") THEN PRINT "PROTECTION VIOLATION":GO TO 300 190 IF I%>1% THEN F$=LEFT(F1$,I%-1%) ELSE IF I%=0% THEN F$=F1$ 195 IF INSTR(1%,F$,".")=0% THEN F$=F$+".BAS" 200 IF I%=0% THEN 300 220 C%=ASCII(MID(F1$,I%+1,1)) 230 IF C%=83% THEN CLOSE 3%:GO TO 650 235 IF C%=78% THEN 300 240 IF C%=79% THEN CHAIN F$ 32767% 250 IF C%=67% THEN CHAIN F$ 260 PRINT "ILL SWI!" 270 GO TO 170 280 PRINT "ERR #";ERR;"ON FILE ";F$ 290 RESUME 170 300 OPEN F$ FOR INPUT AS FILE 2% 310 ON ERROR GO TO 540 314 A$=SYS(CHR$(6%)+CHR$(-7%)) 316 A$=SYS(CHR$(6%)+CHR$(3%)+CHR$(1%)+CHR$(255%)+CHR$(255%)+CHR$(128%) +CHR$(255%)) 320 PRINT "TURN IT ON" 330 SLEEP(3%) 340 PRINT FNN$(11%); 350 SLEEP(5%) 355 IF C%=78% THEN PRINT FNN$(75%);:GO TO 430 360 Z%=(76%-LEN(F$)*6%)/2% 370 PRINT FNN$(Z%);:P$=FNP$(LEFT(F$,13%)):PRINT FNN$(Z%); 380 PRINT CHR$(255%); 390 PRINT FNN$(15%);:P$=FNP$(DATE$(0%)):PRINT FNN$(16%); 410 PRINT CHR$(255%); 420 PRINT FNN$(18%);:P$=FNP$(TIME$(0%)):PRINT FNN$(19%); 430 IF LEN(S$)<85% THEN IF F% THEN 470 ELSE INPUT LINE #2%,I$: S$=S$+I$:GO TO 430 440 PRINT CHR$(255%);LEFT(S$,85%); 450 S$=RIGHT(S$,86%) 460 GO TO 430 470 PRINT CHR$(255%);S$; 480 N%=85%-LEN(S$) 490 PRINT FNN$(N%); 500 PRINT CHR$(255%); 510 PRINT FNN$(85%); 520 SLEEP(10%) 530 GO TO 560 540 IFERR=11%THENRESUME550ELSEIFERR=26%THENRESUME565ELSEPRINT'ERR';ERR :RESUME565 550 F%=-1%:IF INSTR(1%,F$,".BAS") THEN S$=S$+"KEY"+CHR$(13%)+CHR$(10%) ELSE S$=S$+CHR$(26%) 555 GO TO 430 560 PRINT "OFF.":S$="":CLOSE 2% 565 A$=SYS(CHR$(6%)+CHR$(3%)+CHR$(1%)+CHR$(255%)+CHR$(72%)+CHR$(255%)+ CHR$(128%)) 570 GOTO160 580 DEF FNP$(P$):FOR P%=1% TO LEN(P$) 590 P1%=ASCII(MID(P$,P%,1%))-32%:IF P1%<0% OR P1%>95% THEN P1%=0% 600 PRINT CHR$(P%(P1%,P2%)); FOR P2%=0% TO 4% 610 PRINTCHR$(0%); 620 NEXT P%:FNEND 630 DEF FNN$(N%)=LEFT(N$,N%) 640 CLOSE 1%,3% 650 END