INTEGER ARG(128) INTEGER GETARG IF((GETARG(1,ARG,128).NE.-1))GOTO 10000 CALL GENER0 GOTO 10001 10000 CALL INTER0(ARG) 10001 CALL SWT END SUBROUTINE GENER0 INTEGER DTYPE,CONTR0,UNIT,HEADO0,NHEADS,DNUM,PACKS0,MAXHE0,I INTEGER EQUAL,INPUT,STRBSR LOGICAL ISCMD INTEGER STR(102) INTEGER POS(9) INTEGER TEXT(54) INTEGER AAAAA0(13) INTEGER AAAAB0(4) INTEGER AAAAC0(6) INTEGER AAAAD0(10) INTEGER AAAAE0 INTEGER AAAAF0(4) INTEGER AAAAG0(7) INTEGER AAAAH0 INTEGER AAAAI0(34) INTEGER AAAAJ0(32) INTEGER AAAAK0(27) INTEGER AAAAL0(22) INTEGER AAAAM0 INTEGER AAAAN0(8) DATA TEXT/22,227,237,228,0,4,230,232,228,0,1,230,232,228,180,176,1 *76,176,0,2,230,236,239,240,240,249,0,5,237,232,228,179,178,0,0,237 *,232,228,180,176,176,176,0,3,237,232,228,184,0,6,243,237,228,0/ DATA POS/8,1,6,11,20,28,35,44,50/ DATA AAAAA0/212,249,240,229,243,160,225,242,229,186,170,238,0/ DATA AAAAB0/160,170,243,0/ DATA AAAAC0/230,233,248,229,228,0/ DATA AAAAD0/242,229,237,239,246,225,226,236,229,0/ DATA AAAAF0/244,239,240,0/ DATA AAAAG0/226,239,244,244,239,237,0/ DATA AAAAI0/232,229,225,228,160,238,245,237,226,229,242,243,160,23 *7,245,243,244,160,226,229,160,238,239,238,173,238,229,231,225,244, *233,246,229,0/ DATA AAAAJ0/227,225,238,167,244,160,232,225,246,229,160,237,239,24 *2,229,160,244,232,225,238,160,170,233,160,232,229,225,228,243,170, *238,0/ DATA AAAAK0/243,244,225,242,244,233,238,231,160,232,229,225,228,16 *0,237,245,243,244,160,226,229,160,229,246,229,238,0/ DATA AAAAL0/239,228,228,160,232,229,225,228,160,237,245,243,244,16 *0,226,229,160,236,225,243,244,0/ DATA AAAAN0/170,172,173,184,233,170,238,0/ HEADO0=0 NHEADS=0 DTYPE=-1 10002 IF((INPUT(-10,'Disk type: *s.',STR).NE.-1))GOTO 10003 RETURN 10003 CALL MAPSTR(STR,1) I=STRBSR(POS,TEXT,1,STR) IF((I.NE.-1))GOTO 10004 CALL PRINT(-15,AAAAA0) I=1 GOTO 10007 10005 I=I+(1) 10007 IF((I.GT.POS(1)))GOTO 10006 CALL PRINT(-15,AAAAB0,TEXT(POS(I+1)+1)) GOTO 10005 10006 CALL PUTCH(138,-15) GOTO 10008 10004 DTYPE=TEXT(POS(I)) 10008 CONTINUE IF((DTYPE.EQ.-1))GOTO 10002 IF((DTYPE.NE.22))GOTO 10009 ISCMD=.TRUE. 10010 IF((INPUT(-10,'Fixed or removable part? *s.',STR).NE.-1))GOTO *10011 RETURN 10011 CALL MAPSTR(STR,1) GOTO 10012 10013 DTYPE=6 GOTO 10014 10015 NHEADS=1 GOTO 10014 10014 GOTO 10016 10012 IF((EQUAL(STR,AAAAC0).EQ.1))GOTO 10013 IF((EQUAL(STR,AAAAD0).EQ.1))GOTO 10015 GOTO 10010 10016 GOTO 10017 10009 ISCMD=.FALSE. 10017 AAAAE0=DTYPE GOTO 10018 10019 NHEADS=-1 10020 IF((INPUT(-10,'Top or bottom surface: *s.',STR).NE.-1))GOTO 10 *021 RETURN 10021 CALL MAPSTR(STR,1) IF((EQUAL(STR,AAAAF0).NE.1))GOTO 10022 NHEADS=0 GOTO 10023 10022 IF((EQUAL(STR,AAAAG0).NE.1))GOTO 10024 NHEADS=1 10024 CONTINUE 10023 CONTINUE IF((NHEADS.EQ.-1))GOTO 10020 GOTO 10025 10026 IF((.NOT.ISCMD))GOTO 10027 10028 IF((INPUT(-10,'32, 64 or 96 MB: *i.',PACKS0).NE.-1))GOTO 100 *29 RETURN 10029 CONTINUE IF((PACKS0.EQ.32))GOTO 10030 IF((PACKS0.EQ.64))GOTO 10030 IF((PACKS0.EQ.96))GOTO 10030 GOTO 10028 10030 CONTINUE PACKS0=PACKS0-(16) GOTO 10031 10027 CONTINUE 10032 IF((INPUT(-10,'80 or 300 MB: *i.',PACKS0).NE.-1))GOTO 10033 RETURN 10033 CONTINUE IF((PACKS0.EQ.80))GOTO 10034 IF((PACKS0.EQ.300))GOTO 10034 GOTO 10032 10034 CONTINUE 10031 AAAAH0=PACKS0 GOTO 10035 10036 MAXHE0=1 GOTO 10037 10038 MAXHE0=3 GOTO 10037 10039 MAXHE0=5 GOTO 10037 10040 MAXHE0=19 GOTO 10037 10035 IF(AAAAH0.EQ.16)GOTO 10036 IF(AAAAH0.EQ.48)GOTO 10038 IF(AAAAH0.EQ.80)GOTO 10039 IF(AAAAH0.EQ.300)GOTO 10040 10037 CONTINUE 10041 IF((INPUT(-10,'First head (0- ): *i.',HEADO0).EQ.-1))GOTO 1004 *3 IF((INPUT(-10,'Number of heads: *i.',NHEADS).EQ.-1))GOTO 10043 GOTO 10042 10043 RETURN 10042 IF((HEADO0.LT.0))GOTO 10045 IF((NHEADS.LT.0))GOTO 10045 GOTO 10044 10045 CALL REMARK(AAAAI0) GOTO 10046 10044 IF((HEADO0+NHEADS.LE.MAXHE0))GOTO 10047 CALL PRINT(-15,AAAAJ0,MAXHE0) GOTO 10048 10047 IF((AND(HEADO0,1).EQ.0))GOTO 10049 CALL REMARK(AAAAK0) GOTO 10050 10049 IF((HEADO0+NHEADS.GE.MAXHE0))GOTO 10051 IF((AND(NHEADS,1).EQ.0))GOTO 10051 CALL REMARK(AAAAL0) GOTO 10052 10051 GOTO 10053 10052 CONTINUE 10050 CONTINUE 10048 CONTINUE 10046 CONTINUE GOTO 10041 10053 IF((.NOT.ISCMD))GOTO 10054 HEADO0=HEADO0+(16) 10054 GOTO 10025 10018 AAAAM0=AAAAE0-2 GOTO(10019,10019,10019,10026),AAAAM0 10025 CONTINUE 10055 IF((INPUT(-10,'Controller (0 or 1): *i.',CONTR0).NE.-1))GOTO 100 *56 RETURN 10056 CONTINUE IF((0.GT.CONTR0))GOTO 10055 IF((CONTR0.GT.1))GOTO 10055 10057 IF((INPUT(-11,'Unit (0-3): *i.',UNIT).NE.-1))GOTO 10058 RETURN 10058 CONTINUE IF((0.GT.UNIT))GOTO 10057 IF((UNIT.GT.3))GOTO 10057 DNUM=AND(LS(HEADO0,11),:170000)+AND(LS(NHEADS,7),:7400)+AND(LS(CON *TR0,7),:200)+AND(LS(DTYPE,3),:170)+AND(NHEADS,:1) IF((DTYPE.NE.2))GOTO 10059 DNUM=DNUM+(UNIT) GOTO 10060 10059 DNUM=DNUM+(AND(LS(UNIT,1),6)) 10060 CALL PRINT(-11,AAAAN0,DNUM) RETURN END SUBROUTINE INTER0(STR) INTEGER STR(1) INTEGER DNUM,HEADO0,NHEADS,CONTR0,DTYPE,UNIT,I INTEGER GCTOI,GETARG INTEGER AAAAO0 INTEGER AAAAP0(35) INTEGER AAAAQ0(34) INTEGER AAAAR0(14) INTEGER AAAAS0(52) INTEGER AAAAT0(34) INTEGER AAAAU0(53) INTEGER AAAAV0(17) INTEGER AAAAW0(23) INTEGER AAAAX0(15) INTEGER AAAAY0(19) INTEGER AAAAZ0(22) INTEGER AAABA0 INTEGER AAABB0(25) INTEGER AAABC0(28) INTEGER AAABD0(41) DATA AAAAP0/195,239,238,244,242,239,236,236,229,242,160,180,176,17 *6,176,160,237,239,246,233,238,231,160,232,229,225,228,160,228,233, *243,235,170,238,0/ DATA AAAAQ0/195,239,238,244,242,239,236,236,229,242,160,180,176,17 *6,176,160,230,233,248,229,228,160,232,229,225,228,160,228,233,243, *235,170,238,0/ DATA AAAAR0/198,236,239,240,240,249,160,228,233,243,235,170,238,0/ DATA AAAAS0/195,239,238,244,242,239,236,236,229,242,160,180,176,17 *6,179,160,237,239,246,233,238,231,160,232,229,225,228,160,228,233, *243,235,160,168,184,160,243,229,227,244,239,242,175,244,242,225,22 *7,235,169,170,238,0/ DATA AAAAT0/195,239,238,244,242,239,236,236,229,242,160,180,176,17 *6,179,160,230,233,248,229,228,160,232,229,225,228,160,228,233,243, *235,170,238,0/ DATA AAAAU0/195,239,238,244,242,239,236,236,229,242,160,180,176,17 *6,179,160,237,239,246,233,238,231,160,232,229,225,228,160,228,233, *243,235,160,168,179,178,160,243,229,227,244,239,242,175,244,242,22 *5,227,235,169,170,238,0/ DATA AAAAV0/195,239,238,244,242,239,236,236,229,242,160,180,176,17 *6,180,160,0/ DATA AAAAW0/227,225,242,244,242,233,228,231,229,160,237,239,228,24 *5,236,229,160,228,233,243,235,160,0/ DATA AAAAX0/168,230,233,248,229,228,160,240,225,242,244,169,170,23 *8,0/ DATA AAAAY0/168,242,229,237,239,246,225,226,236,229,160,240,225,24 *2,244,169,170,238,0/ DATA AAAAZ0/243,244,239,242,225,231,229,160,237,239,228,245,236,22 *9,160,228,233,243,235,170,238,0/ DATA AAABB0/245,238,242,229,227,239,231,238,233,250,225,226,236,22 *9,160,228,233,243,235,160,244,249,240,229,0/ DATA AAABC0/160,160,160,227,239,238,244,242,239,236,236,229,242,16 *0,170,233,172,160,245,238,233,244,160,170,233,170,238,0/ DATA AAABD0/160,160,160,230,233,242,243,244,160,232,229,225,228,18 *6,160,170,233,172,160,238,245,237,226,229,242,160,239,230,160,232, *229,225,228,243,186,160,170,233,170,238,0/ I=1 DNUM=GCTOI(STR,I,8) IF((STR(I).EQ.0))GOTO 10061 CALL PRINT(-15,'*s: can''t recognize a disk number*n.',STR) RETURN 10061 HEADO0=RS(AND(DNUM,:170000),11) NHEADS=RS(AND(DNUM,:7400),7)+AND(DNUM,1) CONTR0=RS(AND(DNUM,:200),7) DTYPE=RS(AND(DNUM,:170),3) IF((DTYPE.NE.2))GOTO 10062 UNIT=AND(DNUM,:7) GOTO 10063 10062 UNIT=RS(AND(DNUM,:6),1) 10063 AAAAO0=DTYPE GOTO 10064 10065 CALL PRINT(-11,AAAAP0) GOTO 10066 10067 CALL PRINT(-11,AAAAQ0) GOTO 10066 10068 CALL PRINT(-11,AAAAR0) GOTO 10066 10069 CALL PRINT(-11,AAAAS0) GOTO 10066 10070 CALL PRINT(-11,AAAAT0) GOTO 10066 10071 CALL PRINT(-11,AAAAU0) GOTO 10066 10072 CALL PRINT(-11,AAAAV0) IF((GETARG(2,I,1).EQ.-1))GOTO 10073 CALL PRINT(-11,AAAAW0) IF((AND(DNUM,:100000).EQ.0))GOTO 10074 CALL PRINT(-11,AAAAX0) HEADO0=HEADO0-(16) GOTO 10075 10074 CALL PRINT(-11,AAAAY0) 10075 GOTO 10076 10073 CALL PRINT(-11,AAAAZ0) 10076 GOTO 10066 10064 AAABA0=AAAAO0+1 GOTO(10065,10067,10068,10069,10070,10071,10072),AAABA0 CALL REMARK(AAABB0) RETURN 10066 CALL PRINT(-11,AAABC0,CONTR0,UNIT) IF((DTYPE.LT.2))GOTO 10078 IF((DTYPE.GT.5))GOTO 10078 GOTO 10077 10078 CALL PRINT(-11,AAABD0,HEADO0,NHEADS) 10077 RETURN END C ---- Long Name Map ---- C controller contr0 C generatenumber gener0 C maxheads maxhe0 C headoff heado0 C interpretnumber inter0 C packsize packs0