SUBROUTINE THAW C*BEGIN COMMON COMMON SNAP,SNAPSHT(226), + DATE,REMKL,REMCOM,REMBASE,REMRES,REMTIME,STARKL,BASEKL, + KILLK,KILLC,GALAXY(8,8),CX(10),CY(10),BASEQX(5),BASEQY(5), + NEWSTUF(8,8),PLNETS(10,5),ISX,ISY,NSCREM,NROMKL,NROMREM, + NSCKILL,ICRYSTL,NPLANKL, + QUAD(10,10),KX(20),KY(20),KPOWER(20),KDIST(20),KSTUF(20), + INKLING,INBASE,INRESOR,INCOM,INTIME,INSTAR,INENRG,INSHLD, + INTORPS,INLSR,INDATE,ENERGY,SHLD,SHLDUP,CONDIT,TORPS,SHIP, + QUADX,QUADY,SECTX,SECTY,WARPFAC,WFACSQ,LSUPRES,DAMAGE(20), + LENGTH,SKILL,PASSWD,DIST,DIREC,TIME,BASEX,BASEY,DOCKFAC, + KLHERE,COMHERE,CASUAL,NHELP,NKINKS,STARCH(8,8),FUTURE(10), + DEVICE(2,14),IDIDIT,GAMEWON,ALIVE,JUSTIN,RESTING,ALLDONE, + DAMFAC,SHLDCHG,THINGX,THINGY,NDEVICE,PLNETX,PLNETY,INORBIT, + LANDED,IPLANET,IMINE,INPLAN,NENHERE,ISHERE,NEUTZ,IRHERE,ICRAFT, + IENTESC,ISCRAFT,ISATB,ISCATE,CRYPROB,ICITE,IPHWHO,BATX,BATY, + CRACKS(12) INTEGER CF,CI,SHLDUP,CONDIT,QUADX,QUADY,SECTX,SECTY,TORPS, + REMKL,REMBASE,SKILL,REMCOM,GALAXY,STARCH,CX,CY, + SHIP,ALLDONE,BASEQX,BASEQY,BASEX,BASEY,GAMEWON, + ALIVE,STARKL,BASEKL,CASUAL,COMHERE,RESTING,SNAP,SHLDCHG, + THINGX,THINGY,BATX,BATY,PLNETX,PLNETY,PLNETS REAL KDIST,KPOWER,LSUPRES,INTIME,INRESOR,INDATE,INSHLD, + INENRG,INLSR BYTE QUAD REAL*8 DEVICE,PASSWD C*END COMMON LOGICAL*1 IHS,IHR,IHC,IHK,IHE,IHF,IHBLANK,IHDOT,IHP,IHB 1 ,IHSTAR,IHT,IHQUEST,IHNUM,NAME(30) COMMON/HOLLER/IHEOL,IHREAL,IHALPHA,IHS,IHR,IHC,IHK,IHGREEN,IHRED, +IHYELLO,IHDOCKD,IHE,IHF,IHBLANK,IHDOT,IHQUEST,IHP,IHSTAR,IHB +,IHT,IHNUM DIMENSION ICOM(1222) EQUIVALENCE (ICOM,SNAP) CALL GETFN(NAME) IDIDIT=0 IF(NAME(1).EQ.0) GOTO 800 CALL CLOSE(2) C OPEN(UNIT=2,NAME=NAME,TYPE='OLD',FORM='UNFORMATTED', C 1 ERR=800) CALL ASSIGN(2,NAME) CALL FDBSET(2,'OLD') READ(2,ERR=800) N,(ICOM(K),K=1,N) CALL CLOSE(2) IDIDIT=1 C*--TELL HIM WHAT KIND OF GAME HE GOT HIMSELF INTO... CALL SKIP(1) CALL CRAM(22HYOU ARE NOW PLAYING A ) IF(LENGTH.EQ.1) CALL CRAM(5HSHORT) IF(LENGTH.EQ.2) CALL CRAM(6HMEDIUM) IF(LENGTH.EQ.4) CALL CRAM(4HLONG) IF(SKILL.EQ.1) CALL CRAM(7H NOVICE) IF(SKILL.EQ.2) CALL CRAM(5H FAIR) IF(SKILL.EQ.3) CALL CRAM(5H GOOD) IF(SKILL.EQ.4) CALL CRAM(7H EXPERT) IF(SKILL.EQ.5) CALL CRAM(9H EMERITUS) CALL CRAMDMP(6H GAME.) CALL CRAM(25HYOUR SECRET PASSWORD IS ) CALL CRAMS(PASSWD,8) CALL CRAMDMP(1H.) CALL CRAMI(KILLK+KILLC+NSCKILL,0) CALL CRAM(4H OF ) CALL CRAMI(INKLING,0) CALL CRAM(38H KLINGONS HAVE BEEN KILLED, INCLUDING ) CALL CRAMI(KILLC,0) CALL CRAMDMP(12H COMMANDERS. ) IF(SKILL.LE.2) GOTO 200 CALL CRAM(24HTHE SUPER-COMMANDER HAS ) IF(NSCREM.EQ.1) CALL CRAM(4HNOT ) CALL CRAMDMP(15HBEEN DESTROYED.) 200 IF(REMBASE.EQ.INBASE) GOTO 210 CALL CRAMI(INBASE-REMBASE,0) CALL CRAM(18H BASES DESTROYED, ) 210 CALL CRAMI(REMBASE,0) IF(REMBASE.NE.INBASE) CALL CRAM(11HREMAINING ) CALL CRAMDMP(7H BASES. ) IF(FUTURE(5).GE. 1.E38) GOTO 240 CALL CRAM(11HSTARBASE IN ) CALL CRAMLOC(1,BATX,BATY) CALL CRAMDMP(27H IS CURRENTLY UNDER ATTACK.) CALL CRAM(31HIT CAN HOLD OUT UNTIL STARDATE ) CALL CRAMF(FUTURE(5),0,1) CALL CRAMDMP(1H.) 240 IF(ISATB.NE.1) GOTO 245 CALL CRAM(11HSTARBASE IN ) CALL CRAMLOC(1,ISX,ISY) CALL CRAMDMP(33H IS UNDER SUPER-COMMANDER ATTACK. ) CALL CRAM(31HIT CAN HOLD OUT UNTIL STARDATE ) CALL CRAMF(FUTURE(7),0,1) CALL CRAMDMP(IHDOT) 245 IF(CASUAL.EQ.0) GOTO 250 CALL CRAMI(CASUAL,0) CALL CRAMDMP(28H CASUALTIES SUFFERED SO FAR. ) 250 IF(NHELP.EQ.0) GOTO 260 CALL CRAMI(NHELP,0) CALL CRAMDMP(16H CALLS FOR HELP. ) 260 CALL SKIP(1) C*--AND LET HIM PLAY IT RETURN C*--THAT WAS A BAD FREEZE OR FILE NOT OPENED 800 CALL PROUT(17H GAME NOT FROZEN. ,17) C*--TELL CHOOSE THAT WE DIDN'T GET ANYTHING PASSWD=0.D0 RETURN END