100 ! *****OUTPUT.BAS**********************************************
110 ! *
120 ! * PROGRAM TO OUTPUT DOCUMENTED PROGRAM LISTINGS
130 ! *
140 ! * AUTOMATED PROFESSIONAL SYSTEMS, INC.
150 ! * PETER R. JAX
160 ! * 10/2/78 VER 2.2 AMOS 3.4
170 ! *
180 ! *************************************************************
400 MAP1 CALDATE'HOLD
410 MAP2 H'MN,S,2
420 MAP2 H'DA,S,2
430 MAP2 H'YR,S,2
440 MAP1 JULDATE'HOLD
450 MAP2 JULYR,S,2
460 MAP2 JULDAY,S,3
600 MAP1 DUMMYS
610 MAP2 FF,S,1
612 MAP2 CDATE,S,8
620 MAP2 N,F
630 MAP2 IBUF,S,133
1000 start:
1205 FF=CHR(12)
1210 NAME$=" "
1270 NPAGE = 0
1272 CALL calget
1273 CDATE=H'MN+"/"+H'DA+"/"+H'YR
1274 IF D'FLG=1 THEN CALL dat
1280 ? TAB(-1,0);TAB(5,1);
1400 INPUT "DO YOU NEED INSTRUCTIONS? ", NAME$
1405 ? TAB(-1,0);TAB(5,1);
1410 IF NAME$[1;1]= "N" THEN GOTO namin
1420 ? "THIS COMMAND OUTPUTS BASIC PROGRAM SOURCE LISTINGS OR"
1430 ? "LISTINGS OF SEQUENTIAL FILES TO A PRINTER WITH"
1440 ? "APPROPRIATE HEADERS TO HELP DOCUMENT THE SOURCE OF THE"
1450 ? "LISTING AT SOME LATER DATE"
1500 namin:
1501 INPUT "ENTER NAME OF PROGRAM OR FILE: ", NAME$
1502 IF NAME$="QUIT" THEN GOTO fini
1510 LOOKUP NAME$,RECS
1520 IF RECS>0 THEN GOTO namok
1530 ? "CAN NOT OUTPUT THAT FILE - MISSING OR NOT SEQUENTIAL"
1540 ? "TYPE 'QUIT' TO TERMINATE OUTPUT"
1550 GOTO namin
1560 namok:
1570 GOSUB timget
1600 NOUT$=NAME$[1,-4]
1601 OPEN #1, NOUT$+"OUT", OUTPUT
1610 OPEN #2, NAME$,INPUT
1620 N=100
1630 loop:
1632 INPUT LINE #2, IBUF
1640 IF EOF(2) = 1 THEN GOTO wrapup
1650 N=N+1
1660 IF N>50 THEN GOSUB header
1670 ? #1, IBUF
1680 GOTO loop
2000 wrapup:
2002 ? #1:? #1:? #1, TAB(11);"END OF PRINT"
2010 ? #1, TAB(4);NAME$;TAB(29);CDATE;TAB(39);TZ$+"M";TAB(55);"PAGE ";NPAGE
2020 CLOSE #1
2030 CLOSE #2
2040 NPAGE = 0
2050 GOTO namin
3300 dat:
3310 ? TAB(-1,0);TAB(10,10);"SYSTEM DATE IS NOT SET - PROGRAM ABORTED";
3320 ? TAB(20,1);
3330 GOTO term
4000 header:
4002 N=0
4005 IF NPAGE=0 THEN GOTO init
4008 ? #1: ? #1
4010 ? #1, TAB(4);NAME$;TAB(29);CDATE;TAB(39);TZ$+"M";TAB(55);"PAGE ";NPAGE
4015 init:
4017 NPAGE = NPAGE + 1
4020 ? #1, FF,TAB(4);NAME$;TAB(29);CDATE;TAB(39);TZ$+"M";TAB(55);"PAGE ";NPAGE
4030 ? #1: ? #1
4999 RETURN
23000 calget:
23001 IF DATE=0 THEN D'FLG=1 ELSE D'FLG=0
23010 H'YR=INT(DATE/65536)
23011 H'YR=("0"+H'YR)[-2;2]
23020 Z=DATE-(H'YR*65536)
23030 H'DA=INT(Z/256)
23031 H'DA=("0"+H'DA)[-2;2]
23040 H'MN=Z-(H'DA*256)
23041 H'MN=("0"+H'MN)[-2;2]
23050 RETURN
50000 !***** CALCULATE TIME OF DAY
50004 timget:
50008 STRSIZ 11
50010 IF TIME>5184000 THEN TIME = TIME - 5184000
50012 SZ = INT(TIME /60)
50016 MZ = INT( SZ / 60 )
50020 SZ = SZ - (MZ * 60)
50024 HZ = INT( MZ /60 )
50028 MZ = MZ - (HZ * 60)
50032 AP$="PM"
50036 IF HZ < 12 THEN AP$="AM"
50040 IF HZ > 12 THEN HZ = HZ - 12
50044 TZ$=("0"+SZ)[-2;2]+" "+AP$
50048 TZ$=("0"+MZ)[-2;2]+":"+TZ$
50052 TZ$=(" "+HZ)[-2;2]+":"+TZ$
50056 RETURN
65500 REM *** TERMINATION SEGMENT
65501 fini:
65534 term: END