File: M8GEN.FT of Disk: V50/Multi8/Multi-1
(Source file text) 

C*DATE 01-02-2023
C FORTRAN IV VERSION OF MULTI8 GENERATOR PROGRAM
C UNIT 4:TERMINAL, UNIT 6: CONFIG.PA, UNIT 7:TEMPLA.PA
	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
	WRITE(4,15) VERS
15	FORMAT(1X,'    --- MULTI8 SYSTEM CONFIGURATOR V',A2,' ---',//,
     1  1X,'ANSWER ALL QUESTIONS WITH "Y", "N", A NUMBER OR "RETURN"',/
     2  1X,'"RETURN" GIVES THE VALUE INDICATED IN SQUARE BRACKETS ([])')
	N=8
	WRITE(6,20)
20	FORMAT(1X,'MULTI8 V7A CONFIGURATION FILE')
	WRITE(4,30)
30	FORMAT(1X,'HOW MUCH MEMORY FOR THE FOREGROUND ? [8K] ',$)
31	READ(4,32) M
32	FORMAT(I2)
35	IF (M) 45,40,45
40	M=8
45	IF (M/M*M-M) 50,60,50
50	WRITE(4,55)
55	FORMAT(1X,'IT MUST BE A MULTIPLE OF 4K, DARLING!',$)
	GOTO 31
60	M=M/4
	IF (M-2) 65,75,75
65	READ(4,70) M
70	FORMAT(1X,'THE FOREGROUNDS NEEDS 8K MINIMUM ! TRY AGAIN.',I2)
	GOTO 35
75	IF (N-M-2) 80,90,90
80	READ(4,85) M
85	FORMAT(1X,'THAT LEAVES TOO FEW FOR THE BACKGROUND !'
     1  ' TRY AGAIN ',I2)
	GOTO 35
90	N=N-M
	WRITE(6,95) M
95	FORMAT('FIELDS=',I1)
	READ(4,100) IA
100	FORMAT(1X,'DO YOU HAVE AN EAE (EXT. ARITHM. ELEMENT) ? [NO] ',A1)
	IF (IA-IYES) 115,105,115
105	WRITE(6,110)
110	FORMAT(1X,'   EAE=1')
115	READ(4,120) N
120	FORMAT(1X,'HOW MANY TERMINALS DO YOU HAVE [1] ?',I1)
	IF (N) 123,123,125
123	N=1
125	NTERM=N
	WRITE(4,135)
135	FORMAT(1X,'DEVICE CODE FOR TERMINAL #1 IS 03')
	IDEV=24
	DO 280 I=1,NTERM
	IF (I-1) 140,170,140
140	WRITE(4,145) I,IDEV,I,
145	FORMAT(1X,'ENTER DEVICE CODE FOR TERMINAL #',I1,' [',O2,'] ',I0)
	N=0
	READ(4,150) N
150	FORMAT(O2)
	IF (N) 155,155,160
155	N=IDEV
160	WRITE(6,165) I,N
165	FORMAT(' KL8E',I1,'=',O2,'0')
	IDEV=N+2
170	CONTINUE
	READ(4,175) IA
175	FORMAT(1X,'   IS THIS A VIDEO TERMINAL ? [YES] ',A1)
	IF (IA-INO) 190,180,190
180	WRITE(6,185) I
185	FORMAT('T',O1,'BACK=334')
	GOTO 210
190	READ(4,195) M
195	FORMAT('   WHAT IS ITS BACKSPACE CODE ? [210] 'O3)
	IF (M) 210,210,200
200	WRITE(6,205) I,M
205	FORMAT('T'O1'BACK='O3)
210	READ(4,215) M
215	FORMAT('   WHAT IS ITS ESCAPE CODE ? [233] 'O3)
	IF (M) 220,230,220
220	WRITE(6,225) I,M
225	FORMAT('T'O1'ESCP='O3)
230	READ(4,235) IA
235	FORMAT('   DOES IT NEED FILLER CHARACTERS ? [NO] 'A1)
	IF (IA-IYES) 275,240,275
240	M=0
	READ(4,245) M
245	FORMAT('      HOW MANY FILLER CHARACTERS ? 'I2)
	WRITE(6,250) I,M
250	FORMAT('T'O1'FILL='O4)
	M=0
	READ(4,255) M
255	FORMAT('      AFTER WHAT CHARACTER CODE ? [212] 'O3)
	IF (M) 265,260,265
260	M=138
265	WRITE(6,270) I,M
270	FORMAT('T'O1'CHAR='O3)
275	CONTINUE
280	CONTINUE
	WRITE(4,285) I,
285	FORMAT('HOW MANY BACKGROUNDS DO YOU NEED. THERE CAN BE'/
C	'MORE BACKGROUNDS THAN TERMINALS, BUT NO MORE THAN 7 'I0)
	READ(4,286) NBG
286	FORMAT(I1)
	WRITE(6,290) NBG
290	FORMAT('BGMAX='O1)
295	WRITE(4,300)
300	FORMAT(/'WHAT TYPE OF SYSTEM DISK DO YOU HAVE ?'/
C	'SELECT ONE OF THE FOLLOWING AND ENTER THE NUMBER:'/
C	'0 = RK8E'/'1 = RF08'/'2 = SYSTEM INDUSTRIES 3040 '
C	'CONTROLER'/'3 = RL01')
305	READ(4,310) N
310	FORMAT('YOUR NUMBER [0(=RK8E)] 'I1)
	IF (N) 315,325,325
315	WRITE(4,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(6,340)
340	FORMAT('SYRK8E=1')
	GOTO 385
345	READ(4,350) N
350	FORMAT('   HOW MANY PLATTERS ? 'I1)
	IF (N) 345,345,355
355	WRITE(6,360) N
360	FORMAT('SYRF08='I1)
	GOTO 385
365	WRITE(6,370)
370	FORMAT('SY3040=1')
	GOTO 385
375	WRITE(6,380)
380	FORMAT('SYRL01=1')
	GOTO 385
385	CONTINUE
	WRITE(4,390)
390	FORMAT(/'WHAT TYPE OF (LINE-)CLOCK DO YOU HAVE ?'/
     1  'SPECIFY ONE OF:'/'0 = DK8EA'/'1 = DK8EC'/'2 = DK8EP'
     1  /'3 = DKC8AA')
395	READ(4,400) N
400	FORMAT('YOUR NUMBER ? [0(=DK8EA)] 'I1)
	IF (N) 405,415,415
405	WRITE(4,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(4,430) IA
430	FORMAT('DO YOU HAVE A PROGRAMMABLE KLOCK (DK8EP) AS WELL'
C	' ? [NO] 'A1)
	IF (IA-IYES) 475,435,475
435	M=0
	READ(4,440) M
440	FORMAT('ENTER DEVICE CODE FOR LINE CLOCK [13] 'O2)
	IF (M) 450,445,450
445	M=11
450	K=0
	READ(4,455) K
455	FORMAT('ENTER DEVICE CODE FOR PROG. CLOCK [13] 'O2)
	IF (K) 465,460,465
460	K=11
465	WRITE(6,470) K
470	FORMAT(' DK8EP='O2'0')
475	GOTO (480,510,520,530),N
480	WRITE(6,485) M
485	FORMAT(' DK8EA='O2'0')
	READ(4,490) IHERTZ
490	FORMAT(' WHAT IS THE LINE FREQUENCY HERE ? [50 HERTZ] 'I2)
	IF (IHERTZ) 500,495,500
495	IHERTZ=50
500	WRITE(6,505) IHERTZ
505	FORMAT('HWTICK='O2)
	GOTO 540
510	WRITE(6,515) M
515	FORMAT(' DK8EC='O2'0')
	GOTO 540
520	WRITE(6,525)
525	FORMAT(' DK8EP=130')
	GOTO 540
530	WRITE(6,535) M
535	FORMAT('DKC8AA='O2'0)
	GOTO 540
540	CONTINUE
545	READ(4,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(4,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(4,590) N
590	FORMAT('MUST BE 8K AT LEAST. TRY AGAIN. 'I2)
	GOTO 555
595	N=N/4
	WRITE(6,600) N
600	FORMAT('BGCORE='O2)
	READ(4,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(4,615) I,I,
615	FORMAT('DISK UNIT # FOR BG'I1' ['I1'] 'I0)
	READ(4,620) IUNIT
620	FORMAT(I1)
	IF (IUNIT) 621,621,624
621	INUIT=I
624	READ(4,625) IFROM
625	FORMAT('STARTING BLOCK NUMBER (OCTAL) 'O5)
	READ(4,630) ISIZE
630	FORMAT('LENGTH IN BLOCKS (OCTAL) 'O5)
	WRITE(6,635) I,IUNT,I,IFROM,I,ISIZE
635	FORMAT('UNIT'I1'='I1/'FROM'I1'='O5/'SIZE'I1'='O5)
640	CONTINUE
645	CONTINUE
650	WRITE(4,655)
655	FORMAT(/'NOW COMES A LIST OF PERIPHERAL OPTIONS. FOR EACH'
C	/'DEVICE ANSWER "YES" IF THAT DEVICE IS PRESENT IN '
C	/'YOUR CONFIGURATION. JUST "RETURN" MEANS "NO".')
	READ(4,660) IA
660	FORMAT('  LINEPRINTER ? 'A1)
	IF (IA-IYES) 740,665,740
665	MASK(IMASK)=1
	READ(4,670) N,IA,IA1,IA2,IA3,IA4
670	FORMAT('  ENTER NUMBER OF COLLUMS (DECIMAL) [80] 'I3/
C	'  DOES IT HAVE LOWER-CASE CHARATERS [YES] ? 'A1/
C	'  DO YOU WANT THE PRINTER SPOOLED [YES] ? 'A1/
C	'  IS IT AN LS8E INTERFACE [NO] ? 'A1/
C	'  KL8E [NO] ? 'A1/
C	'  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(6,735) N
735	FORMAT('  LE8E='O5)
740	IMASK=IMASK+1
	READ(7,745) ITYPE,ISYMB,ITXT1
745	FORMAT(I1,X,3A2,X,20A2)
	IF (ITYPE) 795,795,750
750	WRITE(4,755) ISYMB,ITXT1,
755	FORMAT(3A2,X,20A2)
	READ(4,760) IA
760	FORMAT(' ? 'A1)
	IF (IA-IYES) 740,765,740
765	MASK(IMASK)=1
	IF (ITYPE-2) 770,780,770
770	WRITE(6,775) ISYMB
775	FORMAT(3A2,'=1')
	GOTO 740
780	CONTINUE
	READ(4,785) N
785	FORMAT('        DEVICE CODE ? 'O2)
	WRITE(6,790) ISYMB,N
790	FORMAT(3A2'='O2'0')
	GOTO 740
795	MASK(IMASK)=-1
	I=0
800	READ(7,805) ITXT1
	IF (ITXT1) 810,815,810
805	FORMAT(20A2)
810	WRITE(6,805) ITXT1
	GOTO 800
815	I=I+1
	IF (MASK(I)) 825,820,810
820	READ(7,805) ITXT1
	IF (ITXT1) 820,815,820
825	WRITE(6,830)
830	FORMAT('$END')
	ENDFILE(6)
	END