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