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<, C UNIT 7:CONFIG.DA,UNIT 8: MULTI8.BI< DIMENSION ITXT1(30),ISYMB(3) DIMENSION MASK(20) VERS='50' IMASK=1 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 C NOW WRITING TO 6 CONFIG.PA WRITE(6,20) VERS 20 FORMAT(1X,'/MULTI8 V',A2,' CONFIGURATION FILE') C WRITE(4,22) 22 FORMAT(1X,'DO YOU HAVE 128K MEMORY (KT8A) ? [NO] ',$) READ(4,23) IA 23 FORMAT(A1) IF (IA.NE.'Y') GOTO 25 WRITE(6,24) 24 FORMAT(1X,'KT8A=1') 25 WRITE(4,26) 26 FORMAT(1X,'WHAT VERSION OF OS/8 IS INSTALLED ? [50] ',$) READ(4,27) M 27 FORMAT(I2) IF (M) 28,28,30 28 M=50 WRITE(6,29) M 29 FORMAT(1X,'OS8=',I2) 30 WRITE(4,31) 31 FORMAT(1X,'HOW MUCH MEMORY FOR THE FOREGROUND ? [8K] ',$) READ(4,32) M 32 FORMAT(I2) 35 IF (M) 45,40,45 40 M=8 45 IF (AMOD(M,4)) 50,60,50 50 WRITE(4,55) 55 FORMAT(1X,'IT MUST BE A MULTIPLE OF 4K, DARLING!',$) GOTO 30 60 M=M/4 IF (M-2) 65,75,75 65 WRITE(4,70) 70 FORMAT(1X,'THE FOREGROUNDS NEEDS 8K MINIMUM ! TRY AGAIN.',$) GOTO 30 75 IF (N-M-2) 80,90,90 80 WRITE(4,85) 85 FORMAT(1X,'THAT LEAVES TOO FEW FOR THE BACKGROUND !' 1 ' TRY AGAIN ',$) GOTO 31 90 N=N-M WRITE(6,95) M 95 FORMAT(1X,'FIELDS=',I1) WRITE(4,100) 100 FORMAT(1X,'DO YOU HAVE AN EAE (EXT. ARITHM. ELEMENT) ? [NO] ',$) READ(4,101) IA 101 FORMAT(A1) IF (IA.NE.'Y') GOTO 115 105 WRITE(6,110) 110 FORMAT(1X,'EAE=1') 115 WRITE(4,120) 120 FORMAT(1X,'HOW MANY TERMINALS DO YOU HAVE [1] ?',$) 121 READ(4,122) N 122 FORMAT(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 145 FORMAT(1X,'ENTER DEVICE CODE FOR TERMINAL #',I1,' [',I2,'] ',$) N=0 READ(4,150) N 150 FORMAT(I2) IF (N) 155,155,160 155 N=IDEV 160 WRITE(6,165) I,N 165 FORMAT(1X,'KL8E',I1,'=',I2,'0') IDEV=N+2 170 CONTINUE WRITE(4,175) 175 FORMAT(1X,' IS THIS A VIDEO TERMINAL ? [YES] ',$) READ(4,176) IA 176 FORMAT(A1) IF (IA.NE.'N') GOTO 190 180 WRITE(6,185) I 185 FORMAT(1X,'T',I1,'BACK=334') GOTO 210 190 WRITE(4,195) 195 FORMAT(1X,' WHAT IS ITS BACKSPACE CODE ? [210] ',$) READ(4,196) M 196 FORMAT(I3) IF (M) 198,198,200 198 M=210 200 WRITE(6,205) I,M 205 FORMAT(1X,'T'I1,'BACK=',I3) 210 WRITE(4,215) 215 FORMAT(1X,' WHAT IS ITS ESCAPE CODE ? [233] '$) READ(4,196) M IF (M) 216,216,220 216 M=233 220 WRITE(6,225) I,M 225 FORMAT(1X,'T',I1,'ESCP=',I3) WRITE(4,235) 235 FORMAT(1X,' DOES IT NEED FILLER CHARACTERS ? [NO] '$) READ(4,176) IA IF (IA.NE.'Y') GOTO 275 240 M=0 WRITE(4,245) 245 FORMAT(1X,' HOW MANY FILLER CHARACTERS ? ',$) READ(4,246) M 246 FORMAT(I3) WRITE(6,250) I,M 250 FORMAT(1X,'T',I1,'FILL=',I4) M=0 WRITE(4,255) 255 FORMAT(1X,' AFTER WHAT CHARACTER CODE ? [212] ',$) READ(4,256) M 256 FORMAT(I3) IF (M) 260,260,265 260 M=212 265 WRITE(6,270) I,M 270 FORMAT(1X,'T',I1,'CHAR=',I3) 275 CONTINUE 280 CONTINUE WRITE(4,285) 285 FORMAT(1X,'HOW MANY BACKGROUNDS DO YOU NEED. THERE CAN BE'/ 1 1X,'MORE BACKGROUNDS THAN TERMINALS, BUT NO MORE THAN 7 ',$) READ(4,286) NBG 286 FORMAT(I1) WRITE(6,290) NBG 290 FORMAT(1X,'BGMAX=',I1) 295 WRITE(4,300) 300 FORMAT(1X,'WHAT TYPE OF SYSTEM DISK DO YOU HAVE ?'/ 1 1X,'SELECT ONE OF THE FOLLOWING AND ENTER THE NUMBER:'/ 1 1X,'0 = RK8E'/,1X,'1 = RF08'/,1X,'2 = SYSTEM INDUSTRIES 3040 ' 1 'CONTROLLER'/,1X,'3 = RL01') 305 WRITE(4,310) 310 FORMAT(1X,'YOUR NUMBER [0(=RK8E)] ',$) READ(4,311) N 311 FORMAT(I1) IF (N) 315,325,325 315 WRITE(4,320) N 320 FORMAT(21X,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(1X,'SYRK8E=1') GOTO 385 345 WRITE(4,350) N 350 FORMAT(' HOW MANY PLATTERS ? ',$) READ(4,351) N 351 FORMAT(I1) IF (N) 345,345,355 355 WRITE(6,360) N 360 FORMAT(1X,'SYRF08='I1) GOTO 385 365 WRITE(6,370) 370 FORMAT(1X,'SY3040=1') GOTO 385 375 WRITE(6,380) 380 FORMAT(1X,'SYRL01=1') GOTO 385 385 CONTINUE WRITE(4,390) 390 FORMAT(1X,'WHAT TYPE OF (LINE-)CLOCK DO YOU HAVE ?'/ 1 1X,'SPECIFY ONE OF:'/,1X,'0 = DK8EA'/,1X,'1 = DK8EC'/,1X, 1 '2 = DK8EP'/,1X,'3 = DKC8AA') 395 WRITE(4,400) 400 FORMAT(1X,'YOUR NUMBER ? [0(=DK8EA)] :',$) READ(4,401) N 401 FORMAT(I2) 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=110 WRITE(4,430) 430 FORMAT(1X,'DO YOU HAVE A PROGRAMMABLE KLOCK (DK8EP) AS WELL' 1 ' ? [NO] ',$) READ(4,431) IA 431 FORMAT(A1) IF ((IA.NE.'Y')) GOTO 475 435 M=0 WRITE(4,440) 440 FORMAT(1X,'ENTER DEVICE CODE FOR LINE CLOCK [130] ',$) READ(4,441) M 441 FORMAT(I2) IF (M) 450,445,450 445 M=130 450 K=0 WRITE(4,455) 455 FORMAT(1X,'ENTER DEVICE CODE FOR PROG. CLOCK [130] ',$) READ(4,456) K 456 FORMAT(I2) IF (K) 465,460,465 460 K=130 465 WRITE(6,470) K 470 FORMAT(1X,'DK8EP=',I2) 475 GOTO (480,510,520,530),N 480 WRITE(6,485) M 485 FORMAT(1X,'DK8EA=',I2) WRITE(4,490) 490 FORMAT(1X,'WHAT IS THE LINE FREQUENCY HERE ? [50 HERTZ] ',$) READ(4,491) IHERTZ 491 FORMAT(I2) IF (IHERTZ) 500,495,500 495 IHERTZ=50 500 WRITE(6,505) IHERTZ 505 FORMAT(1X,'HWTICK=',I2) GOTO 540 510 WRITE(6,515) M 515 FORMAT(1X,'DK8EC=',I2) GOTO 540 520 WRITE(6,525) 525 FORMAT(1X,'DK8EP=130') GOTO 540 530 WRITE(6,535) M 535 FORMAT(1X,'DKC8AA=',I2) GOTO 540 540 CONTINUE 545 WRITE(4,550) 550 FORMAT(1X,'HOW LARGE SHOULD THE VIRTUAL MEMORY BE ? [16K] ',$) READ(4,551) N 551 FORMAT(I2) 555 IF (N) 560,560,565 560 N=16 565 IF (N/4*4-N) 570,580,570 570 WRITE(4,575) 575 FORMAT(1X,'IT MUST BE A MULTIPLE OF 4K. TRY AGAIN. ') GOTO 545 580 IF (N-8) 585,595,595 585 WRITE(4,590) 590 FORMAT(1X,'MUST BE 8K AT LEAST. TRY AGAIN. ') GOTO 545 595 N=N/4 WRITE(6,600) N 600 FORMAT(1X,'BGCORE='I2) WRITE(4,605) 605 FORMAT(1X,'DO YOU WANT NON-STANDARD DISK ALLOCATION ? [NO] ',$) READ(4,606) IA 606 FORMAT(A1) IF (IA.NE.'Y') GOTO 645 610 DO 640 I=1,NBG WRITE(4,615) I,I 615 FORMAT(1X,'DISK UNIT # FOR BG'I1' ['I1'] ?',$) READ(4,620) IUNIT 620 FORMAT(I1) IF (IUNIT) 621,621,624 621 IUNIT=I 624 WRITE(4,625) 625 FORMAT(1X,'STARTING BLOCK NUMBER (OCTAL) ?',$) READ(4,626) IFROM 626 FORMAT(I5) WRITE(4,630) 630 FORMAT(1X,'LENGTH IN BLOCKS (OCTAL) ?',$) READ(4,631) ISIZE 631 FORMAT(I5) WRITE(6,635) I,IUNIT,I,IFROM,I,ISIZE 635 FORMAT(1X,'UNIT',I1,'=',I1,/, 1 1X,'FROM',I1,'=',I5,/,1X,'SIZE',I1,'=',I5) 640 CONTINUE 645 CONTINUE 650 WRITE(4,655) 655 FORMAT(/,1X,'NOW COMES A LIST OF PERIPHERAL OPTIONS. FOR EACH' 1 /,1X,'DEVICE ANSWER "YES" IF THAT DEVICE IS PRESENT IN ' 1 /,1X,'YOUR CONFIGURATION. JUST "RETURN" MEANS "NO".') WRITE(4,660) 660 FORMAT(1X,' LINEPRINTER ? ',$) READ(4,661) IA 661 FORMAT(A1) IF (IA.NE.'Y') GOTO 740 665 MASK(IMASK)=1 WRITE(4,670) 670 FORMAT(1X,' ENTER NUMBER OF COLUMNS (DECIMAL) [80] ',$) READ(4,671) N 671 FORMAT(I3) IF (N) 674,674,675 674 N=80 675 WRITE(4,676) 676 FORMAT(1X,' DOES IT HAVE LOWER-CASE CHARATERS [YES] ? ',$) READ(4,677) IA 677 FORMAT(A1) 680 IF (IA.EQ.'N') GOTO 685 N=N+2048 685 WRITE(4,686) 686 FORMAT(1X,' DO YOU WANT THE PRINTER SPOOLED [YES] ? ',$) READ(4,687) IA 687 FORMAT(A1) 690 IF (IA.EQ.'N') GOTO 695 N=N+512 695 WRITE(4,696) 696 FORMAT(1X,' IS IT AN LS8E INTERFACE [NO] ? ',$) READ(4,697) IA 697 FORMAT(A1) 700 IF (IA.NE.'Y') GOTO 705 N=N+1024 705 WRITE(4,706) 706 FORMAT(1X,' KL8E [NO] ? ',$) READ(4,707) IA 707 FORMAT(A1) 710 IF (IA.NE.'Y') GOTO 715 N=N+256 715 WRITE(4,717) 717 FORMAT(1X,' DKC8AA [NO] ? ',$) READ(4,718) IA 718 FORMAT(A1) 720 IF (IA.NE.'Y') GOTO 725 N=N+1 725 NO=ICON(N,8) C CONVERT TO OCTAL WRITE(6,735) NO 735 FORMAT(1X,'LE8E=',I4) C READING FROM 7 CONFIG.DA 740 IMASK=IMASK+1 READ(7,745) ITYPE,ISYMB,ITXT1 745 FORMAT(I2,1X,3A2,1X,30A2) IF (ITYPE) 795,795,750 750 WRITE(4,755) ISYMB,ITXT1 755 FORMAT(1X,3A2,1X,30A2,' ?',$) READ(4,760) IA 760 FORMAT(A1) IF (IA.NE.'Y') GOTO 740 765 MASK(IMASK)=1 IF (ITYPE-2) 770,780,770 770 WRITE(6,775) ISYMB 775 FORMAT(1X,2A2,'=1') GOTO 740 780 CONTINUE WRITE(4,785) 785 FORMAT(1X,' DEVICE CODE ? ',$) READ(4,786) N 786 FORMAT(I2) WRITE(6,790) ISYMB,N 790 FORMAT(1X,2A2,'=',I2) GOTO 740 795 MASK(IMASK)=-1 ENDFILE 6 C NOW WRITING TO 8 MULTI8.BI C WRITE(4,799) IMASK,(MASK(I),I=1,20) C799 FORMAT(1X,I3,$) I=0 800 READ(7,805) J,ITXT1 805 FORMAT(I2,30A2) IF (J.NE.1) GOTO 815 810 WRITE(8,811) ITXT1 811 FORMAT(30A2) GOTO 800 815 I=I+1 IF (MASK(I)) 825,820,810 820 READ(7,805) J,ITXT1 IF (J.NE.1) GOTO 815 GOTO 820 825 WRITE(8,830) 830 FORMAT('$END') ENDFILE 8 STOP END