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