File: M8GEN.FT of Disk: V50/Multi8/Multi-Test1
(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