	SUBROUTINE THAW
C*BEGIN COMMON 
      COMMON SNAP,SNAPSHT(247), 
     +   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,NPLANKL,ISATB,BATX,BATY,THINGX,THINGY,
     +   QUAD(10,10),KX(20),KY(20),KPOWER(20),KDIST(20),KSTUF(20),  
     +   FUTURE(10),MESSAGE(5,10),
     +   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),
     +   DEVICE(2,14),IDIDIT,GAMEWON,ALIVE,JUSTIN,RESTING,ALLDONE,
     +   DAMFAC,SHLDCHG,NDEVICE,PLNETX,PLNETY,INORBIT,LANDED,IPLANET,
     +   IMINE,ICRYSTL,INPLAN,NENHERE,ISHERE,NEUTZ,IRHERE,ICRAFT,
     +   IENTESC,ISCRAFT,ISCATE,CRYPROB,ICITE,IPHWHO,
     +   CRACKS(12) 
      INTEGER 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
	+ ,IHSTAR,IHT,IHQUEST,IHNUM
      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(1314),NAME(4)
	DATA NAME /3RDK7,0,0,3RTEK/
	EQUIVALENCE (ICOM,SNAP), (FNAME,NAME(2))
	CALL GETFN(FNAME)
	IDIDIT=0
	IF(NAME(2).EQ.0) GOTO 800
	IF(IASIGN(2,NAME(1),NAME(2)) .NE. 0) GO TO 800
	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(10H REMAINING)
	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(1H.)
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
