File: M8GEN.FT of Disk: Disks/Build-2007/Copy-of-m8-rka0-rkb0
(Source file text) 

C*			**RENUMB-V9**    DATE 4/19/1979 TIME 12:08
C FORTRAN II VERSION OF MULTI8 GENERATOR PROGRAM
	DIMENSION ITXT1(20),ITXT2(20),ISYMB(3)
	DIMENSION MASK(20)
	VERS='1 '
	IMASK=1
	IYES=1632
	INO=928
	DO 10 I=1,20
10	MASK(I)=0
	CALL IOPEN('DSK','CONFIG')
S	TAD (2001	/PA
	CALL IEXT
	CALL OOPEN('DSK','CONFIG')
	WRITE(1,15) VERS
15	FORMAT('            --- MULTI8 SYSTEM CONFIGURATOR V'A2' ---'//
	1'ANSWER ALL QUESTIONS WITH "Y", "N", A NUMBER OR "RETURN"'/
	2'"RETURN GIVES THE VALUE INDICATED IN SQUARE BRACKETS ([])')
	N=8
	WRITE(4,20)
20	FORMAT('/MULTI8 V7A CONFIGURATION FILE')
25	READ(1,30) M
30	FORMAT('HOW MUCH MEMORY DO YOU NEED FOR THE FOREGROUND'
	1' ? [8K] 'I2)
35	IF (M) 45,40,45
40	M=8
45	IF (M/M*M-M) 50,60,50
50	READ(1,55) M
55	FORMAT('IT MUST BE A MULTIPLE OF 4K, DARLING!'I2)
	GOTO 35
60	M=M/4
	IF (M-2) 65,75,75
65	READ(1,70) M
70	FORMAT('THE FOREGROUNDS NEEDS 8K MINIMUM ! TRY AGAIN.'I2)
	GOTO 35
75	IF (N-M-2) 80,90,90
80	READ(1,85) M
85	FORMAT('THAT LEAVES TOO FEW FOR THE BACKGROUND !'
	1' TRY AGAIN 'I2)
	GOTO 35
90	N=N-M
	WRITE(4,95) M
95	FORMAT('FIELDS='I1)
	READ(1,100) IA
100	FORMAT('DO YOU HAVE AN EAE (EXT. ARITHM. ELEMENT) ? [NO]  'A1)
	IF (IA-IYES) 115,105,115
105	WRITE(4,110)
110	FORMAT('   EAE=1')
115	READ(1,120) N
120	FORMAT('HOW MANY TERMINALS DO YOU HAVE [1] ?'I1)
	IF (N) 123,123,125
123	N=1
125	NTERM=N
	WRITE(1,135)
135	FORMAT('DEVICE CODE FOR TERMINAL #1 IS 03')
	IDEV=24
	DO 280 I=1,NTERM
	IF (I-1) 140,170,140
140	WRITE(1,145) I,IDEV,I,
145	FORMAT('ENTER DEVICE CODE FOR TERMINAL #'I1' ['O2'] 'I0)
	N=0
	READ(1,150) N
150	FORMAT(O2)
	IF (N) 155,155,160
155	N=IDEV
160	WRITE(4,165) I,N
165	FORMAT(' KL8E'I1'='O2'0')
	IDEV=N+2
170	CONTINUE
	READ(1,175) IA
175	FORMAT('   IS THIS A VIDEO TERMINAL ? [YES] 'A1)
	IF (IA-INO) 190,180,190
180	WRITE(4,185) I
185	FORMAT('T'O1'BACK=334')
	GOTO 210
190	READ(1,195) M
195	FORMAT('   WHAT IS ITS BACKSPACE CODE ? [210] 'O3)
	IF (M) 210,210,200
200	WRITE(4,205) I,M
205	FORMAT('T'O1'BACK='O3)
210	READ(1,215) M
215	FORMAT('   WHAT IS ITS ESCAPE CODE ? [233] 'O3)
	IF (M) 220,230,220
220	WRITE(4,225) I,M
225	FORMAT('T'O1'ESCP='O3)
230	READ(1,235) IA
235	FORMAT('   DOES IT NEED FILLER CHARACTERS ? [NO] 'A1)
	IF (IA-IYES) 275,240,275
240	M=0
	READ(1,245) M
245	FORMAT('      HOW MANY FILLER CHARACTERS ? 'I2)
	WRITE(4,250) I,M
250	FORMAT('T'O1'FILL='O4)
	M=0
	READ(1,255) M
255	FORMAT('      AFTER WHAT CHARACTER CODE ? [212] 'O3)
	IF (M) 265,260,265
260	M=138
265	WRITE(4,270) I,M
270	FORMAT('T'O1'CHAR='O3)
275	CONTINUE
280	CONTINUE
	WRITE(1,285) I,
285	FORMAT('HOW MANY BACKGROUNDS DO YOU NEED. THERE CAN BE'/
	1'MORE BACKGROUNDS THAN TERMINALS, BUT NO MORE THAN 7 'I0)
	READ(1,286) NBG
286	FORMAT(I1)
	WRITE(4,290) NBG
290	FORMAT('BGMAX='O1)
295	WRITE(1,300)
300	FORMAT(/'WHAT TYPE OF SYSTEM DISK DO YOU HAVE ?'/
	1'SELECT ONE OF THE FOLLOWING AND ENTER THE NUMBER:'/
	2'0 = RK8E'/'1 = RF08'/'2 = SYSTEM INDUSTRIES 3040 '
	3'CONTROLER'/'3 = RL01')
305	READ(1,310) N
310	FORMAT('YOUR NUMBER [0(=RK8E)] 'I1)
	IF (N) 315,325,325
315	WRITE(1,320) N
320	FORMAT(I2' IS AN ILLEGAL ANSWER')
	GOTO 305
325	IF (N-3) 330,330,315
330	N=N+1
	GOTO (335,345,365,375),N

335	WRITE(4,340)
340	FORMAT('SYRK8E=1')
	GOTO 385

345	READ(1,350) N
350	FORMAT('   HOW MANY PLATTERS ? 'I1)
	IF (N) 345,345,355
355	WRITE(4,360) N
360	FORMAT('SYRF08='I1)
	GOTO 385

365	WRITE(4,370)
370	FORMAT('SY3040=1')
	GOTO 385

375	WRITE(4,380)
380	FORMAT('SYRL01=1')
	GOTO 385

385	CONTINUE
	WRITE(1,390)
390	FORMAT(/'WHAT TYPE OF (LINE-)CLOCK DO YOU HAVE ?'/
	1'SPECIFY ONE OF:'/'0 = DK8EA'/'1 = DK8EC'/'2 = DK8EP'
	2/'3 = DKC8AA')
395	READ(1,400) N
400	FORMAT('YOUR NUMBER ? [0(=DK8EA)] 'I1)
	IF (N) 405,415,415
405	WRITE(1,410) N
410	FORMAT(I1' IS OUT OF RANGE.')
	GOTO 395
415	IF (N-3) 420,420,405
420	N=N+1
	IF (N-3) 425,475,425
425	M=11
	READ(1,430) IA
430	FORMAT('DO YOU HAVE A PROGRAMMABLE KLOCK (DK8EP) AS WELL'
	1' ? [NO] 'A1)
	IF (IA-IYES) 475,435,475
435	M=0
	READ(1,440) M
440	FORMAT('ENTER DEVICE CODE FOR LINE CLOCK [13] 'O2)
	IF (M) 450,445,450
445	M=11
450	K=0
	READ(1,455) K
455	FORMAT('ENTER DEVICE CODE FOR PROG. CLOCK [13] 'O2)
	IF (K) 465,460,465
460	K=11
465	WRITE(4,470) K
470	FORMAT(' DK8EP='O2'0')
475	GOTO (480,510,520,530),N
480	WRITE(4,485) M
485	FORMAT(' DK8EA='O2'0')
	READ(1,490) IHERTZ
490	FORMAT(' WHAT IS THE LINE FREQUENCY HERE ? [50 HERTZ] 'I2)
	IF (IHERTZ) 500,495,500
495	IHERTZ=50
500	WRITE(4,505) IHERTZ
505	FORMAT('HWTICK='O2)
	GOTO 540
510	WRITE(4,515) M
515	FORMAT(' DK8EC='O2'0')
	GOTO 540
520	WRITE(4,525)
525	FORMAT(' DK8EP=130')
	GOTO 540
530	WRITE(4,535) M
535	FORMAT('DKC8AA='O2'0)
	GOTO 540

540	CONTINUE
545	READ(1,550) N
550	FORMAT('HOW LARGE SHOULD THE VIRTUAL MEMORY BE ? [16K] 'I2)
555	IF (N) 560,560,565
560	N=16
565	IF (N/4*4-N) 570,580,570
570	READ(1,575) N
575	FORMAT('IT MUST BE A MULTIPLE OF 4K. TRY AGAIN. 'I2)
	GOTO 555
580	IF (N-8) 585,595,595
585	READ(1,590) N
590	FORMAT('MUST BE 8K AT LEAST. TRY AGAIN. 'I2)
	GOTO 555
595	N=N/4
	WRITE(4,600) N
600	FORMAT('BGCORE='O2)
	READ(1,605) IA
605	FORMAT('DO YOU WANT NON-STANDARD DISK ALLOCATION ? [NO] 'A1)
	IF (IA-IYES) 645,610,645
610	DO 640 I=1,NBG
	WRITE(1,615) I,I,
615	FORMAT('DISK UNIT # FOR BG'I1' ['I1'] 'I0)
	READ(1,620) IUNIT
620	FORMAT(I1)
	IF (IUNIT) 621,621,624
621	INUIT=I
624	READ(1,625) IFROM
625	FORMAT('STARTING BLOCK NUMBER (OCTAL) 'O5)
	READ(1,630) ISIZE
630	FORMAT('LENGTH IN BLOCKS (OCTAL) 'O5)
	WRITE(4,635) I,IUNT,I,IFROM,I,ISIZE
635	FORMAT('UNIT'I1'='I1/'FROM'I1'='O5/'SIZE'I1'='O5)
640	CONTINUE
645	CONTINUE
650	WRITE(1,655)
655	FORMAT(/'NOW COMES A LIST OF PERIPHERAL OPTIONS. FOR EACH'
	1/'DEVICE ANSWER "YES" IF THAT DEVICE IS PRESENT IN '
	2/'YOUR CONFIGURATION. JUST "RETURN" MEANS "NO".')
	READ(1,660) IA
660	FORMAT('  LINEPRINTER ? 'A1)
	IF (IA-IYES) 740,665,740
665	MASK(IMASK)=1
	READ(1,670) N,IA,IA1,IA2,IA3,IA4
670	FORMAT('  ENTER NUMBER OF COLLUMS (DECIMAL) [80] 'I3/
	1'  DOES IT HAVE LOWER-CASE CHARATERS [YES] ? 'A1/
	2'  DO YOU WANT THE PRINTER SPOOLED [YES] ? 'A1/
	3'  IS IT AN LS8E INTERFACE [NO] ? 'A1/
	4'  KL8E [NO] ? 'A1/
	5'  DKC8AA [NO] ? 'A1)
	IF (N) 680,675,680
675	N=80
680	IF (IA-INO) 685,690,685
685	N=N-1024-1024
690	IF (IA1-IYES) 700,695,700
695	N=N+512
700	IF (IA2-IYES) 710,705,710
705	N=N+1024
710	IF (IA3-INO) 720,715,720
715	N=N+256
720	IF (IA4-INO) 730,725,730
725	N=N+1
730	WRITE(4,735) N
735	FORMAT('  LE8E='O5)

740	IMASK=IMASK+1
	READ(4,745) ITYPE,ISYMB,ITXT1
745	FORMAT(I1,X,3A2,X,20A2)
	IF (ITYPE) 795,795,750
750	WRITE(1,755) ISYMB,ITXT1
755	FORMAT(3A2,X,20A2)
	READ(1,760) IA
760	FORMAT(' ? 'A1)
	IF (IA-IYES) 740,765,740
765	MASK(IMASK)=1
	IF (ITYPE-2) 770,780,770
770	WRITE(4,775) ISYMB
775	FORMAT(3A2,'=1')
	GOTO 740
780	CONTINUE
	READ(1,785) N
785	FORMAT('        DEVICE CODE ? 'O2)
	WRITE(4,790) ISYMB,N
790	FORMAT(3A2'='O2'0')
	GOTO 740
795	MASK(IMASK)=-1
	CALL OCLOSE
S	TAD (0211	/BI
	CALL IEXT
	CALL OOPEN('DSK','MULTI8')
	I=0
800	READ(4,805) ITXT1
	IF (ITXT1) 810,815,810
805	FORMAT(20A2)
810	WRITE(4,805) ITXT1
	GOTO 800
815	I=I+1
	IF (MASK(I)) 825,820,810
820	READ(4,805) ITXT1
	IF (ITXT1) 820,815,820
825	WRITE(4,830)
830	FORMAT('$END')
	CALL OCLOSE
	END