1  REM PROGRAM TO EXTRACT DOCUMENTATION FROM BASIC MACRO FILES
2  REM 15-OCT-76 - LARRY SIMPSON
3  REM READS FROM SOURCE FILES BASIC0-BASIC4(.MAC)
4  REM AND MAKES RUNOFF FILE BASIC.RNO
10 DIM L$[80]V,L1$[80]V,C2$[7]V,S$[40]V(7)
20 DIM N$[40]V(7),M$[40]V,A$[1]
30 C2$=".WC"
35 CF=0
40 M$="----------------------------------------"
50 INPUT "DIABLO OUTPUT (Y/N) ";A$
200					! SET UP SEPERATE CHAPTERS
201 DATA ^^INTRODUCTION\\
210 DATA ^^LOADING/RUNNING/SAVING PROGRAMS\\
220 DATA ^^PROGRAM STATEMENTS\\
230 DATA ^^ARITHMETIC FUNCTIONS\\
232 DATA ^^STRING FUNCTIONS\\
235 DATA ^^I/O _& FILE MANIPULATION\\
240 DATA ^^LOADABLE SUBROUTINES\\
300 FOR I=1 TO 7
310 N$(I)="BASIC"+STR$(I-1)+".RNO"
320 OPEN #3,N$(I)+"/WR"
330 READ S$(I) : S$(I)=LTR$(S$(I))
340 PRINT #3,".CHAPTER ";S$(I)
390 CLOSE 3
400 N$(I)=N$(I)+"/AP"
410 NEXT I
420 F=0
500					! EXTRACT TEXT FROM BASIC
501 FOR I2=1 TO 5
510 N$="BASIC"+STR$(I2-1)+".MAC/RO/EN:600"
520 OPEN #4,N$
530 INPUT LINE #4,L$
540 IF SBS$(L$,1,2) <> ";+" THEN 530
550 GOSUB 3000
560 GOTO 530
600 CLOSE 4
605 PRINT "END FILE";I2-1
610 NEXT I2
620 OPEN #4,"SPAWN.MAC/RO/EN:670"
630 INPUT LINE #4,L$
640 IF SBS$(L$,1,2)<> ";+" THEN 630
650 GOSUB 3000
660 GOTO 630
670 CLOSE 4
1000 CLOSE 3
1001					! SET RNO INITIAL INFO
1010 OPEN #3,"BASIC.1ST/WR"
1020 PRINT #3,".PS 60,79" : PRINT #3,".LS 1"
1030 PRINT #3,".LM 10;.RM 75" : PRINT #3,".TS 15,25"
1045 PRINT #3,".FG 18"
1050 L$=DAT$(0)
1055 PRINT #3,".DT ";L$
1060 PRINT #3,C2$
1070 PRINT #3,"^^BASIC DOCUMENTATION\\"
1080 PRINT #3,C2$
1090 PRINT #3,L$
1095 PRINT #3,".TITLE ^^BASIC DOCUMENTATION\\"
1097 PRINT #3,"@BASIC.TOC"
1099					! MERGE SEPERATE CHAPTERS
1100 FOR I=1 TO 7
1110 OPEN #4,SEG$(N$(I),1,LEN(N$(I))-3)+"/RO/EN:1150"
1120 INPUT LINE #4,L$
1130 PRINT #3,L$
1140 GOTO 1120
1150 CLOSE 4
1155 PRINT "FINISHED ";SEG$(N$(I),1,LEN(N$(I))-3)
1160 NEXT I
1164					! ADD APPENDICES
1165 PRINT #3, ".APPENDIX ^^BASIC ERROR VALUES\\"
1166 PRINT #3,".NOFILL" : PRINT #3, "^^"
1167 CF=1			: ! SHOW CHECK FOR #
1170 OPEN #4, "BSCERRNUM.DOC/RO" : GOSUB 2000
1175 PRINT #3, ".APPENDIX ^^SAMPLE LOADABLE MACRO SUBROUTINE\\"
1176 PRINT #3,".NOFILL" : PRINT #3, "^^"
1177 PRINT #3, ".TS 18,24,32,40,48,56,64"
1180 OPEN #4, "REVSTR.MAC/RO" : GOSUB 2000
1182 PRINT #3," " : PRINT #3," " : PRINT #3, "MACRO COMMAND FILE"
1183 PRINT #3," " : PRINT #3, "REVSTR,REVSTR/-SP=LB:[1,202]LOAMAC/ML,[1,202]REVSTR"
1184 PRINT #3," " : PRINT #3," " : PRINT #3,"TKB COMMAND FILE" : PRINT #3," "
1185 OPEN #4, "REVSTR.CMD/RO" : GOSUB 2000
1186 PRINT #3, ".APPENDIX ^^USEFUL INTERNAL BASIC SUBROUTINE CALLS\\"
1187 PRINT #3,".NOFILL" : PRINT #3, "^^"
1190 OPEN #4, "BASIC.SBS/RO" : GOSUB 2000
1220 PRINT #3,".APPENDIX ^^INDEX\\"
1280 PRINT #3,".PX"
1290 CLOSE 3
1300 EXIT
2000					! SUB TO INPUT OTHER FILES
2005 IF END #4 THEN 2025
2010 INPUT LINE #4,L$
2012 IF CF=1 THEN GOSUB 4000
2015 PRINT #3, L$
2020 GOTO 2010
2025 CLOSE 4
2030 RETURN
3000					! CHANGE CHAPTER IF NECESSARY
3005 F1=VAL(SBS$(L$,2))
3010 IF F1=F THEN 3050
3020 CLOSE 3
3030 F=F1
3040 OPEN #3,N$(F)
3050 INPUT LINE #4,L$
3060 IF SBS$(L$,1,1) <> ";" THEN 3050
3070 IF SBS$(L$,2,1) = "-" THEN RETURN
3071 IF A$="Y" THEN 3080
3072 PP=POS(L$,CHR$(123)) : IF PP<1 THEN 3076
3074 L$=SEG$(L$,1,PP-1)+SEG$(L$,PP+1)
3076 PP=POS(L$,CHR$(125)) : IF PP<1 THEN 3080
3078 L$=SEG$(L$,1,PP-1)+SEG$(L$,PP+1)
3080 PRINT #3,LTR$(SBS$(L$,2))
3090 GOTO 3050
4000					! HANDLE # IN MACRO SOURCE
4001 CP=1
4005 JJ=POS(L$,"#",CP) : IF JJ<1 THEN RETURN
4010 CP=JJ+2 : NC=NC+1
4015 L$=SEG$(L$,1,JJ-1)+"_"+SEG$(L$,JJ,LEN(L$)) : GOTO 4005
5000 END
