|
|
1.1 ! root 1: C GDT- GAME DEBUGGING TOOL ! 2: C ! 3: C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142 ! 4: C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED ! 5: C WRITTEN BY R. M. SUPNIK ! 6: C ! 7: C DECLARATIONS ! 8: C ! 9: SUBROUTINE GDT ! 10: IMPLICIT INTEGER (A-Z) ! 11: #ifdef PDP ! 12: C ! 13: C no debugging tool available in pdp version ! 14: C ! 15: call nogdt ! 16: return ! 17: #else ! 18: CHARACTER*2 DBGCMD(38),CMD ! 19: INTEGER ARGTYP(38) ! 20: LOGICAL VALID1,VALID2,VALID3 ! 21: character*2 ldbgcm(38) ! 22: #include "parser.h" ! 23: #include "gamestate.h" ! 24: #include "state.h" ! 25: #include "screen.h" ! 26: #include "puzzle.h" ! 27: C ! 28: C MISCELLANEOUS VARIABLES ! 29: C ! 30: COMMON /STAR/ MBASE,STRBIT ! 31: #include "io.h" ! 32: #include "mindex.h" ! 33: #include "debug.h" ! 34: #include "rooms.h" ! 35: #include "rindex.h" ! 36: #include "exits.h" ! 37: #include "objects.h" ! 38: #include "oindex.h" ! 39: #include "clock.h" ! 40: #include "villians.h" ! 41: #include "advers.h" ! 42: #include "flags.h" ! 43: C ! 44: C FUNCTIONS AND DATA ! 45: C ! 46: VALID1(A1,L1)=(A1.GT.0).AND.(A1.LE.L1) ! 47: VALID2(A1,A2,L1)=VALID1(A1,L1).AND.VALID1(A2,L1).AND. ! 48: & (A1.LE.A2) ! 49: VALID3(A1,L1,A2,L2)=VALID1(A1,L1).AND.VALID1(A2,L2) ! 50: DATA CMDMAX/38/ ! 51: DATA DBGCMD/'DR','DO','DA','DC','DX','DH','DL','DV','DF','DS', ! 52: & 'AF','HE','NR','NT','NC','ND','RR','RT','RC','RD', ! 53: & 'TK','EX','AR','AO','AA','AC','AX','AV','D2','DN', ! 54: & 'AN','DM','DT','AH','DP','PD','DZ','AZ'/ ! 55: DATA ldbgcm/'dr','do','da','dc','dx','dh','dl','dv','df','ds', ! 56: & 'af','he','nr','nt','nc','nd','rr','rt','rc','rd', ! 57: & 'tk','ex','ar','ao','aa','ac','ax','av','d2','dn', ! 58: & 'an','dm','dt','ah','dp','pd','dz','az'/ ! 59: DATA ARGTYP/ 2 , 2 , 2 , 2 , 2 , 0 , 0 , 2 , 2 , 0 , ! 60: & 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , ! 61: & 1 , 0 , 3 , 3 , 3 , 3 , 1 , 3 , 2 , 2 , ! 62: & 1 , 2 , 1 , 0 , 0 , 0 , 0 , 1 / ! 63: C GDT, PAGE 2 ! 64: C ! 65: C FIRST, VALIDATE THAT THE CALLER IS AN IMPLEMENTER. ! 66: C ! 67: FMAX=46 ! 68: C !SET ARRAY LIMITS. ! 69: SMAX=22 ! 70: C ! 71: IF(GDTFLG.NE.0) GO TO 2000 ! 72: C !IF OK, SKIP. ! 73: WRITE(OUTCH,100) ! 74: C !NOT AN IMPLEMENTER. ! 75: RETURN ! 76: C !BOOT HIM OFF ! 77: C ! 78: #ifdef NOCC ! 79: 100 FORMAT('You are not an authorized user.') ! 80: #else NOCC ! 81: 100 FORMAT(' You are not an authorized user.') ! 82: #endif NOCC ! 83: c GDT, PAGE 2A ! 84: C ! 85: C HERE TO GET NEXT COMMAND ! 86: C ! 87: 2000 WRITE(OUTCH,200) ! 88: C !OUTPUT PROMPT. ! 89: READ(INPCH,210) CMD ! 90: C !GET COMMAND. ! 91: IF(CMD.EQ.' ') GO TO 2000 ! 92: C !IGNORE BLANKS. ! 93: DO 2100 I=1,CMDMAX ! 94: C !LOOK IT UP. ! 95: IF(CMD.EQ.DBGCMD(I)) GO TO 2300 ! 96: C !FOUND? ! 97: C check for lower case command, as well ! 98: if(cmd .eq. ldbgcm(i)) go to 2300 ! 99: 2100 CONTINUE ! 100: 2200 WRITE(OUTCH,220) ! 101: C !NO, LOSE. ! 102: GO TO 2000 ! 103: C ! 104: #ifdef NOCC ! 105: 200 FORMAT('GDT>',$) ! 106: #else NOCC ! 107: 200 FORMAT(' GDT>',$) ! 108: #endif NOCC ! 109: 210 FORMAT(A2) ! 110: #ifdef NOCC ! 111: 220 FORMAT('?') ! 112: #else NOCC ! 113: 220 FORMAT(' ?') ! 114: #endif NOCC ! 115: 230 FORMAT(2I6) ! 116: 240 FORMAT(I6) ! 117: #ifdef NOCC ! 118: 225 FORMAT('Limits: ',$) ! 119: 235 FORMAT('Entry: ',$) ! 120: 245 FORMAT('Idx,Ary: ',$) ! 121: #else NOCC ! 122: 225 FORMAT(' Limits: ',$) ! 123: 235 FORMAT(' Entry: ',$) ! 124: 245 FORMAT(' Idx,Ary: ',$) ! 125: #endif NOCC ! 126: c ! 127: 2300 GO TO (2400,2500,2600,2700),ARGTYP(I)+1 ! 128: C !BRANCH ON ARG TYPE. ! 129: GO TO 2200 ! 130: C !ILLEGAL TYPE. ! 131: C ! 132: 2700 WRITE(OUTCH,245) ! 133: C !TYPE 3, REQUEST ARRAY COORDS. ! 134: READ(INPCH,230) J,K ! 135: GO TO 2400 ! 136: C ! 137: 2600 WRITE(OUTCH,225) ! 138: C !TYPE 2, READ BOUNDS. ! 139: READ(INPCH,230) J,K ! 140: IF(K.EQ.0) K=J ! 141: GO TO 2400 ! 142: C ! 143: 2500 WRITE(OUTCH,235) ! 144: C !TYPE 1, READ ENTRY NO. ! 145: READ(INPCH,240) J ! 146: 2400 GO TO (10000,11000,12000,13000,14000,15000,16000,17000,18000, ! 147: & 19000,20000,21000,22000,23000,24000,25000,26000,27000,28000, ! 148: & 29000,30000,31000,32000,33000,34000,35000,36000,37000,38000, ! 149: & 39000,40000,41000,42000,43000,44000,45000,46000,47000),I ! 150: GO TO 2200 ! 151: C !WHAT??? ! 152: C GDT, PAGE 3 ! 153: C ! 154: C DR-- DISPLAY ROOMS ! 155: C ! 156: 10000 IF(.NOT.VALID2(J,K,RLNT)) GO TO 2200 ! 157: C !ARGS VALID? ! 158: WRITE(OUTCH,300) ! 159: C !COL HDRS. ! 160: DO 10100 I=J,K ! 161: WRITE(OUTCH,310) I,(EQR(I,L),L=1,5) ! 162: 10100 CONTINUE ! 163: GO TO 2000 ! 164: C ! 165: #ifdef NOCC ! 166: 300 FORMAT('RM# DESC1 EXITS ACTION VALUE FLAGS') ! 167: 310 FORMAT(I3,4(1X,I6),1X,I6) ! 168: #else NOCC ! 169: 300 FORMAT(' RM# DESC1 EXITS ACTION VALUE FLAGS') ! 170: 310 FORMAT(1X,I3,4(1X,I6),1X,I6) ! 171: #endif NOCC ! 172: C ! 173: C DO-- DISPLAY OBJECTS ! 174: C ! 175: 11000 IF(.NOT.VALID2(J,K,OLNT)) GO TO 2200 ! 176: C !ARGS VALID? ! 177: WRITE(OUTCH,320) ! 178: C !COL HDRS ! 179: DO 11100 I=J,K ! 180: WRITE(OUTCH,330) I,(EQO(I,L),L=1,14) ! 181: 11100 CONTINUE ! 182: GO TO 2000 ! 183: C ! 184: #ifdef NOCC ! 185: 320 FORMAT('OB# DESC1 DESC2 DESCO ACT FLAGS1 FLAGS2 FVL TVL ! 186: & SIZE CAPAC ROOM ADV CON READ') ! 187: 330 FORMAT(I3,3I6,I4,2I7,2I4,2I6,1X,3I4,I6) ! 188: #else NOCC ! 189: 320 FORMAT(' OB# DESC1 DESC2 DESCO ACT FLAGS1 FLAGS2 FVL TVL ! 190: & SIZE CAPAC ROOM ADV CON READ') ! 191: 330 FORMAT(1X,I3,3I6,I4,2I7,2I4,2I6,1X,3I4,I6) ! 192: #endif NOCC ! 193: C ! 194: C DA-- DISPLAY ADVENTURERS ! 195: C ! 196: 12000 IF(.NOT.VALID2(J,K,ALNT)) GO TO 2200 ! 197: C !ARGS VALID? ! 198: WRITE(OUTCH,340) ! 199: DO 12100 I=J,K ! 200: WRITE(OUTCH,350) I,(EQA(I,L),L=1,7) ! 201: 12100 CONTINUE ! 202: GO TO 2000 ! 203: C ! 204: #ifdef NOCC ! 205: 340 FORMAT('AD# ROOM SCORE VEHIC OBJECT ACTION STREN FLAGS') ! 206: 350 FORMAT(I3,6(1X,I6),1X,I6) ! 207: #else NOCC ! 208: 340 FORMAT(' AD# ROOM SCORE VEHIC OBJECT ACTION STREN FLAGS') ! 209: 350 FORMAT(1X,I3,6(1X,I6),1X,I6) ! 210: #endif NOCC ! 211: C ! 212: C DC-- DISPLAY CLOCK EVENTS ! 213: C ! 214: 13000 IF(.NOT.VALID2(J,K,CLNT)) GO TO 2200 ! 215: C !ARGS VALID? ! 216: WRITE(OUTCH,360) ! 217: DO 13100 I=J,K ! 218: WRITE(OUTCH,370) I,(EQC(I,L),L=1,2),CFLAG(I) ! 219: 13100 CONTINUE ! 220: GO TO 2000 ! 221: C ! 222: #ifdef NOCC ! 223: 360 FORMAT('CL# TICK ACTION FLAG') ! 224: 370 FORMAT(I3,1X,I6,1X,I6,5X,L1) ! 225: #else NOCC ! 226: 360 FORMAT(' CL# TICK ACTION FLAG') ! 227: 370 FORMAT(1X,I3,1X,I6,1X,I6,5X,L1) ! 228: #endif NOCC ! 229: C ! 230: C DX-- DISPLAY EXITS ! 231: C ! 232: 14000 IF(.NOT.VALID2(J,K,XLNT)) GO TO 2200 ! 233: C !ARGS VALID? ! 234: WRITE(OUTCH,380) ! 235: C !COL HDRS. ! 236: DO 14100 I=J,K,10 ! 237: C !TEN PER LINE. ! 238: L=MIN0(I+9,K) ! 239: C !COMPUTE END OF LINE. ! 240: WRITE(OUTCH,390) I,L,(TRAVEL(L1),L1=I,L) ! 241: 14100 CONTINUE ! 242: GO TO 2000 ! 243: C ! 244: #ifdef NOCC ! 245: 380 FORMAT(' RANGE CONTENTS') ! 246: 390 FORMAT(I3,'-',I3,3X,10I7) ! 247: #else NOCC ! 248: 380 FORMAT(' RANGE CONTENTS') ! 249: 390 FORMAT(1X,I3,'-',I3,3X,10I7) ! 250: #endif NOCC ! 251: C ! 252: C DH-- DISPLAY HACKS ! 253: C ! 254: 15000 WRITE(OUTCH,400) THFPOS,THFFLG,THFACT,SWDACT,SWDSTA ! 255: GO TO 2000 ! 256: C ! 257: #ifdef NOCC ! 258: 400 FORMAT('THFPOS=',I6,', THFFLG=',L2,',THFACT=',L2/ ! 259: & ' SWDACT=',L2,', SWDSTA=',I2) ! 260: #else NOCC ! 261: 400 FORMAT(' THFPOS=',I6,', THFFLG=',L2,',THFACT=',L2/ ! 262: & ' SWDACT=',L2,', SWDSTA=',I2) ! 263: #endif NOCC ! 264: C ! 265: C DL-- DISPLAY LENGTHS ! 266: C ! 267: 16000 WRITE(OUTCH,410) RLNT,XLNT,OLNT,CLNT,VLNT,ALNT,MLNT,R2LNT, ! 268: & MBASE,STRBIT ! 269: GO TO 2000 ! 270: C ! 271: #ifdef NOCC ! 272: 410 FORMAT('R=',I6,', X=',I6,', O=',I6,', C=',I6/ ! 273: & 'V=',I6,', A=',I6,', M=',I6,', R2=',I5/ ! 274: & 'MBASE=',I6,', STRBIT=',I6) ! 275: #else NOCC ! 276: 410 FORMAT(' R=',I6,', X=',I6,', O=',I6,', C=',I6/ ! 277: & ' V=',I6,', A=',I6,', M=',I6,', R2=',I5/ ! 278: & ' MBASE=',I6,', STRBIT=',I6) ! 279: #endif NOCC ! 280: C ! 281: C DV-- DISPLAY VILLAINS ! 282: C ! 283: 17000 IF(.NOT.VALID2(J,K,VLNT)) GO TO 2200 ! 284: C !ARGS VALID? ! 285: WRITE(OUTCH,420) ! 286: C !COL HDRS ! 287: DO 17100 I=J,K ! 288: WRITE(OUTCH,430) I,(EQV(I,L),L=1,5) ! 289: 17100 CONTINUE ! 290: GO TO 2000 ! 291: C ! 292: #ifdef NOCC ! 293: 420 FORMAT('VL# OBJECT PROB OPPS BEST MELEE') ! 294: 430 FORMAT(I3,5(1X,I6)) ! 295: #else NOCC ! 296: 420 FORMAT(' VL# OBJECT PROB OPPS BEST MELEE') ! 297: 430 FORMAT(1X,I3,5(1X,I6)) ! 298: #endif NOCC ! 299: C ! 300: C DF-- DISPLAY FLAGS ! 301: C ! 302: 18000 IF(.NOT.VALID2(J,K,FMAX)) GO TO 2200 ! 303: C !ARGS VALID? ! 304: DO 18100 I=J,K ! 305: WRITE(OUTCH,440) I,FLAGS(I) ! 306: 18100 CONTINUE ! 307: GO TO 2000 ! 308: C ! 309: #ifdef NOCC ! 310: 440 FORMAT('Flag #',I2,' = ',L1) ! 311: #else NOCC ! 312: 440 FORMAT(' Flag #',I2,' = ',L1) ! 313: #endif NOCC ! 314: C ! 315: C DS-- DISPLAY STATE ! 316: C ! 317: 19000 WRITE(OUTCH,450) PRSA,PRSO,PRSI,PRSWON,PRSCON ! 318: WRITE(OUTCH,460) WINNER,HERE,TELFLG ! 319: WRITE(OUTCH,470) MOVES,DEATHS,RWSCOR,MXSCOR,MXLOAD,LTSHFT,BLOC, ! 320: & MUNGRM,HS,EGSCOR,EGMXSC ! 321: WRITE(OUTCH,475) FROMDR,SCOLRM,SCOLAC ! 322: GO TO 2000 ! 323: C ! 324: #ifdef NOCC ! 325: 450 FORMAT('Parse vector=',3(1X,I6),1X,L6,1X,I6) ! 326: 460 FORMAT('Play vector= ',2(1X,I6),1X,L6) ! 327: 470 FORMAT('State vector=',9(1X,I6)/14X,2(1X,I6)) ! 328: 475 FORMAT('Scol vector= ',1X,I6,2(1X,I6)) ! 329: #else NOCC ! 330: 450 FORMAT(' Parse vector=',3(1X,I6),1X,L6,1X,I6) ! 331: 460 FORMAT(' Play vector= ',2(1X,I6),1X,L6) ! 332: 470 FORMAT(' State vector=',9(1X,I6)/14X,2(1X,I6)) ! 333: 475 FORMAT(' Scol vector= ',1X,I6,2(1X,I6)) ! 334: #endif NOCC ! 335: C GDT, PAGE 4 ! 336: C ! 337: C AF-- ALTER FLAGS ! 338: C ! 339: 20000 IF(.NOT.VALID1(J,FMAX)) GO TO 2200 ! 340: C !ENTRY NO VALID? ! 341: WRITE(OUTCH,480) FLAGS(J) ! 342: C !TYPE OLD, GET NEW. ! 343: READ(INPCH,490) FLAGS(J) ! 344: GO TO 2000 ! 345: C ! 346: #ifdef NOCC ! 347: 480 FORMAT('Old=',L2,6X,'New= ',$) ! 348: #else NOCC ! 349: 480 FORMAT(' Old=',L2,6X,'New= ',$) ! 350: #endif NOCC ! 351: 490 FORMAT(L1) ! 352: C ! 353: C 21000-- HELP ! 354: C ! 355: 21000 WRITE(OUTCH,900) ! 356: GO TO 2000 ! 357: C ! 358: #ifdef NOCC ! 359: 900 FORMAT('Valid commands are:'/'AA- Alter ADVS'/ ! 360: & 'AC- Alter CEVENT'/'AF- Alter FINDEX'/'AH- Alter HERE'/ ! 361: & 'AN- Alter switches'/'AO- Alter OBJCTS'/'AR- Alter ROOMS'/ ! 362: & 'AV- Alter VILLS'/'AX- Alter EXITS'/ ! 363: & 'AZ- Alter PUZZLE'/'DA- Display ADVS'/ ! 364: & 'DC- Display CEVENT'/'DF- Display FINDEX'/'DH- Display HACKS'/ ! 365: & 'DL- Display lengths'/'DM- Display RTEXT'/ ! 366: & 'DN- Display switches'/ ! 367: & 'DO- Display OBJCTS'/'DP- Display parser'/ ! 368: & 'DR- Display ROOMS'/'DS- Display state'/'DT- Display text'/ ! 369: & 'DV- Display VILLS'/'DX- Display EXITS'/'DZ- Display PUZZLE'/ ! 370: & 'D2- Display ROOM2'/'EX- Exit'/'HE- Type this message'/ ! 371: & 'NC- No cyclops'/'ND- No deaths'/'NR- No robber'/ ! 372: & 'NT- No troll'/'PD- Program detail'/ ! 373: & 'RC- Restore cyclops'/'RD- Restore deaths'/ ! 374: & 'RR- Restore robber'/'RT- Restore troll'/'TK- Take.') ! 375: #else NOCC ! 376: 900 FORMAT(' Valid commands are:'/' AA- Alter ADVS'/ ! 377: & ' AC- Alter CEVENT'/' AF- Alter FINDEX'/' AH- Alter HERE'/ ! 378: & ' AN- Alter switches'/' AO- Alter OBJCTS'/' AR- Alter ROOMS'/ ! 379: & ' AV- Alter VILLS'/' AX- Alter EXITS'/ ! 380: & ' AZ- Alter PUZZLE'/' DA- Display ADVS'/ ! 381: & ' DC- Display CEVENT'/' DF- Display FINDEX'/' DH- Display HACKS'/ ! 382: & ' DL- Display lengths'/' DM- Display RTEXT'/ ! 383: & ' DN- Display switches'/ ! 384: & ' DO- Display OBJCTS'/' DP- Display parser'/ ! 385: & ' DR- Display ROOMS'/' DS- Display state'/' DT- Display text'/ ! 386: & ' DV- Display VILLS'/' DX- Display EXITS'/' DZ- Display PUZZLE'/ ! 387: & ' D2- Display ROOM2'/' EX- Exit'/' HE- Type this message'/ ! 388: & ' NC- No cyclops'/' ND- No deaths'/' NR- No robber'/ ! 389: & ' NT- No troll'/' PD- Program detail'/ ! 390: & ' RC- Restore cyclops'/' RD- Restore deaths'/ ! 391: & ' RR- Restore robber'/' RT- Restore troll'/' TK- Take.') ! 392: #endif NOCC ! 393: C ! 394: C NR-- NO ROBBER ! 395: C ! 396: 22000 THFFLG=.FALSE. ! 397: C !DISABLE ROBBER. ! 398: THFACT=.FALSE. ! 399: CALL NEWSTA(THIEF,0,0,0,0) ! 400: C !VANISH THIEF. ! 401: WRITE(OUTCH,500) ! 402: GO TO 2000 ! 403: C ! 404: #ifdef NOCC ! 405: 500 FORMAT('No robber.') ! 406: #else NOCC ! 407: 500 FORMAT(' No robber.') ! 408: #endif NOCC ! 409: C ! 410: C NT-- NO TROLL ! 411: C ! 412: 23000 TROLLF=.TRUE. ! 413: CALL NEWSTA(TROLL,0,0,0,0) ! 414: WRITE(OUTCH,510) ! 415: GO TO 2000 ! 416: C ! 417: #ifdef NOCC ! 418: 510 FORMAT('No troll.') ! 419: #else NOCC ! 420: 510 FORMAT(' No troll.') ! 421: #endif NOCC ! 422: C ! 423: C NC-- NO CYCLOPS ! 424: C ! 425: 24000 CYCLOF=.TRUE. ! 426: CALL NEWSTA(CYCLO,0,0,0,0) ! 427: WRITE(OUTCH,520) ! 428: GO TO 2000 ! 429: C ! 430: #ifdef NOCC ! 431: 520 FORMAT('No cyclops.') ! 432: #else NOCC ! 433: 520 FORMAT(' No cyclops.') ! 434: #endif NOCC ! 435: C ! 436: C ND-- IMMORTALITY MODE ! 437: C ! 438: 25000 DBGFLG=1 ! 439: WRITE(OUTCH,530) ! 440: GO TO 2000 ! 441: C ! 442: #ifdef NOCC ! 443: 530 FORMAT('No deaths.') ! 444: #else NOCC ! 445: 530 FORMAT(' No deaths.') ! 446: #endif NOCC ! 447: C ! 448: C RR-- RESTORE ROBBER ! 449: C ! 450: 26000 THFACT=.TRUE. ! 451: WRITE(OUTCH,540) ! 452: GO TO 2000 ! 453: C ! 454: #ifdef NOCC ! 455: 540 FORMAT('Restored robber.') ! 456: #else NOCC ! 457: 540 FORMAT(' Restored robber.') ! 458: #endif NOCC ! 459: C ! 460: C RT-- RESTORE TROLL ! 461: C ! 462: 27000 TROLLF=.FALSE. ! 463: CALL NEWSTA(TROLL,0,MTROL,0,0) ! 464: WRITE(OUTCH,550) ! 465: GO TO 2000 ! 466: C ! 467: #ifdef NOCC ! 468: 550 FORMAT('Restored troll.') ! 469: #else NOCC ! 470: 550 FORMAT(' Restored troll.') ! 471: #endif NOCC ! 472: C ! 473: C RC-- RESTORE CYCLOPS ! 474: C ! 475: 28000 CYCLOF=.FALSE. ! 476: MAGICF=.FALSE. ! 477: CALL NEWSTA(CYCLO,0,MCYCL,0,0) ! 478: WRITE(OUTCH,560) ! 479: GO TO 2000 ! 480: C ! 481: #ifdef NOCC ! 482: 560 FORMAT('Restored cyclops.') ! 483: #else NOCC ! 484: 560 FORMAT(' Restored cyclops.') ! 485: #endif NOCC ! 486: C ! 487: C RD-- MORTAL MODE ! 488: C ! 489: 29000 DBGFLG=0 ! 490: WRITE(OUTCH,570) ! 491: GO TO 2000 ! 492: C ! 493: #ifdef NOCC ! 494: 570 FORMAT('Restored deaths.') ! 495: #else NOCC ! 496: 570 FORMAT(' Restored deaths.') ! 497: #endif NOCC ! 498: C GDT, PAGE 5 ! 499: C ! 500: C TK-- TAKE ! 501: C ! 502: 30000 IF(.NOT.VALID1(J,OLNT)) GO TO 2200 ! 503: C !VALID OBJECT? ! 504: CALL NEWSTA(J,0,0,0,WINNER) ! 505: C !YES, TAKE OBJECT. ! 506: WRITE(OUTCH,580) ! 507: C !TELL. ! 508: GO TO 2000 ! 509: C ! 510: #ifdef NOCC ! 511: 580 FORMAT('Taken.') ! 512: #else NOCC ! 513: 580 FORMAT(' Taken.') ! 514: #endif NOCC ! 515: C ! 516: C EX-- GOODBYE ! 517: C ! 518: 31000 PRSCON=1 ! 519: RETURN ! 520: C ! 521: C AR-- ALTER ROOM ENTRY ! 522: C ! 523: 32000 IF(.NOT.VALID3(J,RLNT,K,5)) GO TO 2200 ! 524: C !INDICES VALID? ! 525: WRITE(OUTCH,590) EQR(J,K) ! 526: C !TYPE OLD, GET NEW. ! 527: READ(INPCH,600) EQR(J,K) ! 528: GO TO 2000 ! 529: C ! 530: #ifdef NOCC ! 531: 590 FORMAT('Old= ',I6,6X,'New= ',$) ! 532: #else NOCC ! 533: 590 FORMAT(' Old= ',I6,6X,'New= ',$) ! 534: #endif NOCC ! 535: 600 FORMAT(I6) ! 536: C ! 537: C AO-- ALTER OBJECT ENTRY ! 538: C ! 539: 33000 IF(.NOT.VALID3(J,OLNT,K,14)) GO TO 2200 ! 540: C !INDICES VALID? ! 541: WRITE(OUTCH,590) EQO(J,K) ! 542: READ(INPCH,600) EQO(J,K) ! 543: GO TO 2000 ! 544: C ! 545: C AA-- ALTER ADVS ENTRY ! 546: C ! 547: 34000 IF(.NOT.VALID3(J,ALNT,K,7)) GO TO 2200 ! 548: C !INDICES VALID? ! 549: WRITE(OUTCH,590) EQA(J,K) ! 550: READ(INPCH,600) EQA(J,K) ! 551: GO TO 2000 ! 552: C ! 553: C AC-- ALTER CLOCK EVENTS ! 554: C ! 555: 35000 IF(.NOT.VALID3(J,CLNT,K,3)) GO TO 2200 ! 556: C !INDICES VALID? ! 557: IF(K.EQ.3) GO TO 35500 ! 558: C !FLAGS ENTRY? ! 559: WRITE(OUTCH,590) EQC(J,K) ! 560: READ(INPCH,600) EQC(J,K) ! 561: GO TO 2000 ! 562: C ! 563: 35500 WRITE(OUTCH,480) CFLAG(J) ! 564: READ(INPCH,490) CFLAG(J) ! 565: GO TO 2000 ! 566: C GDT, PAGE 6 ! 567: C ! 568: C AX-- ALTER EXITS ! 569: C ! 570: 36000 IF(.NOT.VALID1(J,XLNT)) GO TO 2200 ! 571: C !ENTRY NO VALID? ! 572: WRITE(OUTCH,610) TRAVEL(J) ! 573: READ(INPCH,620) TRAVEL(J) ! 574: GO TO 2000 ! 575: C ! 576: #ifdef NOCC ! 577: 610 FORMAT('Old= ',I6,6X,'New= ',$) ! 578: #else NOCC ! 579: 610 FORMAT(' Old= ',I6,6X,'New= ',$) ! 580: #endif NOCC ! 581: 620 FORMAT(I6) ! 582: C ! 583: C AV-- ALTER VILLAINS ! 584: C ! 585: 37000 IF(.NOT.VALID3(J,VLNT,K,5)) GO TO 2200 ! 586: C !INDICES VALID? ! 587: WRITE(OUTCH,590) EQV(J,K) ! 588: READ(INPCH,600) EQV(J,K) ! 589: GO TO 2000 ! 590: C ! 591: C D2-- DISPLAY ROOM2 LIST ! 592: C ! 593: 38000 IF(.NOT.VALID2(J,K,R2LNT)) GO TO 2200 ! 594: DO 38100 I=J,K ! 595: WRITE(OUTCH,630) I,RROOM2(I),OROOM2(I) ! 596: 38100 CONTINUE ! 597: GO TO 2000 ! 598: C ! 599: #ifdef NOCC ! 600: 630 FORMAT('#',I2,' Room=',I6,' Obj=',I6) ! 601: #else NOCC ! 602: 630 FORMAT(' #',I2,' Room=',I6,' Obj=',I6) ! 603: #endif NOCC ! 604: C ! 605: C DN-- DISPLAY SWITCHES ! 606: C ! 607: 39000 IF(.NOT.VALID2(J,K,SMAX)) GO TO 2200 ! 608: C !VALID? ! 609: DO 39100 I=J,K ! 610: WRITE(OUTCH,640) I,SWITCH(I) ! 611: 39100 CONTINUE ! 612: GO TO 2000 ! 613: C ! 614: #ifdef NOCC ! 615: 640 FORMAT('Switch #',I2,' = ',I6) ! 616: #else NOCC ! 617: 640 FORMAT(' Switch #',I2,' = ',I6) ! 618: #endif NOCC ! 619: C ! 620: C AN-- ALTER SWITCHES ! 621: C ! 622: 40000 IF(.NOT.VALID1(J,SMAX)) GO TO 2200 ! 623: C !VALID ENTRY? ! 624: WRITE(OUTCH,590) SWITCH(J) ! 625: READ(INPCH,600) SWITCH(J) ! 626: GO TO 2000 ! 627: C ! 628: C DM-- DISPLAY MESSAGES ! 629: C ! 630: 41000 IF(.NOT.VALID2(J,K,MLNT)) GO TO 2200 ! 631: C !VALID LIMITS? ! 632: WRITE(OUTCH,380) ! 633: DO 41100 I=J,K,10 ! 634: L=MIN0(I+9,K) ! 635: WRITE(OUTCH,650) I,L,(RTEXT(L1),L1=I,L) ! 636: 41100 CONTINUE ! 637: GO TO 2000 ! 638: C ! 639: #ifdef NOCC ! 640: 650 FORMAT(I3,'-',I3,3X,10(1X,I6)) ! 641: #else NOCC ! 642: 650 FORMAT(1X,I3,'-',I3,3X,10(1X,I6)) ! 643: #endif NOCC ! 644: C ! 645: C DT-- DISPLAY TEXT ! 646: C ! 647: 42000 CALL RSPEAK(J) ! 648: GO TO 2000 ! 649: C ! 650: C AH-- ALTER HERE ! 651: C ! 652: 43000 WRITE(OUTCH,590) HERE ! 653: READ(INPCH,600) HERE ! 654: EQA(1,1)=HERE ! 655: GO TO 2000 ! 656: C ! 657: C DP-- DISPLAY PARSER STATE ! 658: C ! 659: 44000 WRITE(OUTCH,660) ORP,LASTIT,PVEC,SYN ! 660: GO TO 2000 ! 661: C ! 662: #ifdef NOCC ! 663: 660 FORMAT('ORPHS= ',I7,I7,4I7/ ! 664: & 'PV= ',I7,4I7/'SYN= ',6I7/15X,5I7) ! 665: #else NOCC ! 666: 660 FORMAT(' ORPHS= ',I7,I7,4I7/ ! 667: & ' PV= ',I7,4I7/' SYN= ',6I7/15X,5I7) ! 668: #endif NOCC ! 669: C ! 670: C PD-- PROGRAM DETAIL DEBUG ! 671: C ! 672: 45000 WRITE(OUTCH,610) PRSFLG ! 673: C !TYPE OLD, GET NEW. ! 674: READ(INPCH,620) PRSFLG ! 675: GO TO 2000 ! 676: C ! 677: C DZ-- DISPLAY PUZZLE ROOM ! 678: C ! 679: 46000 DO 46100 I=1,64,8 ! 680: C !DISPLAY PUZZLE ! 681: WRITE(OUTCH,670) (CPVEC(J),J=I,I+7) ! 682: 46100 CONTINUE ! 683: GO TO 2000 ! 684: C ! 685: #ifdef NOCC ! 686: 670 FORMAT(1X,8I3) ! 687: #else NOCC ! 688: 670 FORMAT(2X,8I3) ! 689: #endif NOCC ! 690: C ! 691: C AZ-- ALTER PUZZLE ROOM ! 692: C ! 693: 47000 IF(.NOT.VALID1(J,64)) GO TO 2200 ! 694: C !VALID ENTRY? ! 695: WRITE(OUTCH,590) CPVEC(J) ! 696: C !OUTPUT OLD, ! 697: READ(INPCH,600) CPVEC(J) ! 698: GO TO 2000 ! 699: C ! 700: #endif PDP ! 701: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.