File: M8GEN.BK 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