@ 10 REM UNSAP C 20 INPUT 'INPUT FROM';F1$,'OUTPUT TO';F2$ 30 OPEN F1$ AS FILE 1 40 OPEN F2$ AS FILE 2 50 ON ERROR GOTO 1000 60 INPUT LINE #1,L$ 70 L=LEN(L$) 80 FOR N=L-2 TO 1 STEP -1 90 IFMID(L$,N,1)<>' ' THEN 120 100 NEXT N 120 C$=MID(L$,1,N) 130 PRINT #2,C$ 140 GOTO 60 1000 IF ERR=11 THEN RESUME 10 ELSE ON ERROR GOTO 0 >>>> @10 ! P A P T A P -- PAPER TAPE PROGRAM BY M@ARK ARNOLD 9/74, REVISED 2/ 75 20 DIM L$(50%),C1$(10%) 30 X$='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'+"'"+':.,"-=+;' 40 X$=X$+' ' 50 OPEN 'KB:' AS FILE 1% 60 FOR J%=1 TO46:READN9%:FORI%=1TON9%:READC1%:L$(J%)=L$(J%)+CHR$(C1%):NE XTI%:NEXTJ% 70 INPUT #1,'INPUT FILE>';F$,'OUTPUT FILE>';F1$ 80 ON ERROR GOTO 230 85 S1$=SYS(CHR$(6%)+CHR$(-7%)) 90 PRINT 'OPTIONS:';:INPUT LINE#1,O$ 100 IF INSTR(1%,O$,'HELP')<>0 THEN GOSUB 610:GOTO 90 10 IF INSTR(1%,O$,"NTTL")=0% THEN PRINT"TITLE?";:INPUTLINE#1,T1$ 120 OPEN F1$ AS FILE 1 UNLESS F1$='' 130 N0$=CHR$(0)+N0$ FOR N%=1% TO 20% !NULL FILL 140 IF INSTR(1,O$,"NDAT")>0 THEN PRINT#1 CHR$(18)+N0$+FNL$(T1$)+N0$:GOTO 180 150 PRINT#1 CHR$(18)+N0$+FNL$(T1$)+N0$ 160 PRINT#1 FNL$(' '+TIME$(0)+' ') 170 PRINT #1 FNL$(' '+DATE$(0)+' ') 180 OPEN F$ FOR INPUT AS FILE 2% 190 INPUT LINE #2%,I$ 200 PRINT#1 I$; 210 X$='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890:.,' 220 GOTO 190 230 !ERROR ROUTINES 240 IF ERR <> 28% THEN 290 !RUNNING OUT OF PAPER TAPE? 250 PRINT#1 N0$+CHR$(20) 260 INPUTLINE #1,L$ 270 PRINT#1 CHR$(18)+N0$ 280 RESUME 200 290 IF ERR <>11% THEN 330 !END OF FILE? 300 PRINT#1 N0$+CHR$(20%):PRINT:PRINT 310 PRINT'DELETE FILE? (Y OR N)';:INPUTQ$:IFQ$='Y' THEN KILL F$ 320 CLOSE 1,2:GOTO 850 330 IF ERR=10%THEN PRINT CHR$(20%);'PROTECTION VIOLATION':GOTO 850 340 IF ERR=5%THEN PRINTCHR$(20%);'NO SUCH FILE':GOTO850 345 IF ERR=8% THEN PRINT 'DEVICE NOT AVAILABLE':GOTO 850 350 DATA 6,0,254,5,5,254,0,6,0,127,73,73,54,0,6,0,62,65,65,34 360 DATA 0,6,0,127,65,65,62,0,6,0,127,73,73,65,0,6,0,127,5,5,1,0 370 DATA 6,0,62,65,81,50,0,5,0,127,8,127,0,5,0,65,127,65,0 380 DATA 6,0,32,64,64,63,0,6,0,127,24,36,66,0,6,0,127,64,64,64,0 390 DATA 6,0,127,2,2,127,0,6,0,127,6,48,127,0,6,0,127,65,65,127,0 400 DATA 6,0,1,5,5,2,0,6,0,127,65,97,255,0,6,0,127,25,41,70,0 410 DATA 6,0,38,73,73,50,0,5,0,1,127,1,0,6,0,127,64,64,127,0 420 DATA 6,0,63,64,64,63,0,6,0,127,32,32,127,0,5,0,115,1,115,0 430 DATA 5,0,7,120,7,0,5,0,97,85,67,0,5,0,66,127,64,0,6,0,98,81,73,70 440 DATA 0,6,0,34,65,73,54,0,6,0,15,8,127,8,0,6,0,47,73,73,41,0 450 DATA 6,0,62,73,73,48,0,5,0,1,121,7,0,6,54,73,73,54,0 460 DATA 0,6,0,2,5,5,126,0,6,0,62,65,65,62,0 470 DATA 30,7,0,4,0,54,54,0,4,0,48,48,0,4,0,176,112,0,5,0,7,0,7,0 480 DATA 5,0,8,8,8,0,5,0,20,20,20,0,5,0,8,30,8,0,4,0,182,118,0 490 DATA 6,0,0,0,0,0,0,0,0 500 ON ERROR GOTO 0 510 DEF FNL$(S$): !FUNCTION TO RETURN BLOCK LETTERS 520 R$='' 530 FOR J9%=1% TO LEN(S$) 540 FOR J8%=1% TO 46% 550 IF MID(S$,J9%,1%)=MID(X$,J8%,1%) THEN R$=R$+L$(J8%):GOTO 580 560 IF MID(S$,J9%,1%)=CHR$(ASCII(MID(X$,J8%,1%))+32) THEN R$=R$+L$(J8%): GOTO 580 570 NEXT J8% 580 NEXT J9% 590 FNL$=R$ 600 FNEND 610 PRINT ' THIS IS A PROGRAM TO PUNCH PAPER TAPES OF PROGRAMS' 620 PRINT 'ASCII FILES. IT CAN PUNCH A TITLE AND/OR THE' 630 PRINT'DATE IN BLOCK LETTER FORM.' 640 PRINT 650 PRINT ' CALL PAPTAP BY TYPING ':PRINT' RUN $PAPTAP' 660 PRINT 'INPUT FILE IS THE DISK OR MAGTAPE FILE THAT IS ' 670 PRINT 'TO BE PUNCHED. OUTPUT FILE IS THE DEVICE THAT IT WILL' 680 PRINT'BE OUTPUT ON. A BLANK OUTPUT DEVICE IMPLIED KB:.' 690 PRINT 700 PRINT 'LEGAL OPTIONS ARE:' 710 PRINT ,'NTTL','TO SUPPRESS THE PUNCHING OF A TITLE' 720 PRINT ,'NDAT','TO SUPRESS THE PUNCHING OF THE DATE' 730 PRINT ,'HELP' 740 PRINT 'OPTIONS ARE SEPERATED BY COMMAS.' 750 PRINT 'IN RESPONCE TO THE "DELETE FILE" AT THE END OF THE RUN' 760 PRINT 'TYPE Y OR N' 770 PRINT 780 PRINT ' IF YOU ARE RUNNING OUT OF PAPER TAPE, TYPE A 790 PRINT 'CTRL-C AND THE MACHINE WILL STOP PUNCHING. YOU THEN 800 PRINT 'WILL HAVE CONTROL OF THE KEYBOARD UNTIL YOU TYPE 810 PRINT 'CR OR LF. THE MACHINE WILL RESUME WITH THE PUNCHING AT 820 PRINT 'THE LAST LINE THAT WAS PUNCHED. 830 RETURN 840 PRINT 850 END 8