Compucolor.org – Virtual Media

Listing of file='CMND.FOR;02' on disk='vmedia/fortrek-sector.ccvf'

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
	SUBROUTINE MOVE(ENERGY)

	INTEGER EGYREQ,GALAXY(8,8)
	BYTE QUDRNT(8,8)
	BYTE SPD,CRS
	BYTE DEV(9),P,Q,U,V,X,Y
	BYTE NK,NB,NS
	BYTE OBJECT
	BYTE BLK,RED,GRN,YEL,BLU,MGN,CYN,WHT
	LOGICAL OUT

	COMMON /MAP/GALAXY,U,V,QUDRNT,X,Y
	COMMON /STAT/DEV
	COMMON /COLOR/BLK,RED,GRN,YEL,BLU,MGN,CYN,WHT

   10	CALL SCLCLR
	WRITE(3,20)YEL,GRN
   20	FORMAT('+',A1,'COURSE: ',A1)
	CALL INPUT(COURSE,1)
	IF(COURSE.LT.0.0) RETURN
	IF(COURSE.GT.360.0) GOTO 10
	COURSE = COURSE/45.0+1.0
	IF(COURSE.GE.9.0) COURSE = 1.0
	CRS = INT(COURSE)

   30	CALL SCLCLR
	WRITE(3,40)YEL,GRN
   40	FORMAT('+',A1,'WARP FACTOR: ',A1)
	CALL INPUT(WARP,1)
	IF((WARP.LT.0.0).OR.(WARP.GT.8.0)) GOTO 10
	IF(.NOT.(D(1).LT.0.AND.WARP.GT.0.125) GOTO 60
	   CALL SCLCLR
	   CALL SCLCLR
	   WRITE(3,10)RED,WHT,GRN
   50	   FORMAT('+',A1,'MAXIMUM SPEED = WARP ',A1,'0.125',A1)
	   GOTO 30

   60	CALL OUT(8,247)
	SPD = INT(8.0*WARP+0.5)
	IF(SPD.EQ.0) SPD = 1
	EGYREQ = INT(5.0+3*R+0.05*R*R)
	IF(EGYREQ.LE.ENERGY) GOTO 80
	   CALL SCLCLR
	   WRITE(3,80)RED,CYN,EGYREQ,RED,GRN
   70	   FORMAT('+',A1,'MOVE REQUIRES',I5,' ENERGY UNITS',A1)
	   RETURN
   80	CALL GETMAP(NK,NB,NS)
	IF(NK.GT.0) CALL KLGFIR
	CALL DEVST
	IF(WARP.GE.1.0) CALL SOUND(100,2,95,255,0)
	CALL SRPLOT(0,X,Y)
	CALL VECTOR(SPD,CRS,P,Q,OUT,OBJECT)
	IF(OUT) GOTO 500


	CALL SOUND(900,10,10,254,2)
	CALL SCLCLR
	CALL SCLCLR
	WRITE(3,110)

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
	SUBROUTINE VECTOR(SPD,CRS,P,Q,OUT,OBJECT)
	BYTE SPD,CRS,P,Q,OBJECT
	LOGICAL OUT