DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T s

⟦8524e1ba8⟧ TextFile

    Length: 1101 (0x44d)
    Types: TextFile
    Names: »set.f«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Empire/set.f« 

TextFile

	FUNCTION SET(XPOS,YPOS,AREA,LS,LIM)

	IMPLICIT INTEGER(A-Z)

	include 'common.h'

	PARAMETER (WIDTH=100,HEIGHT=60)
	character area
	integer		xx, yy
	integer*2 XSTACK(12000)
	integer*2 YSTACK(12000)
	integer*2 CSTACK(12000)
	character LS
	character		MAP(width, height)
	character		owned(width, height)
	INTEGER XADDS(8),YADDS(8)
	EQUIVALENCE (MAP(1,1),OMAP(1)),(OWNED(1,1),RMAP(1))

	DATA XADDS/-1,0,1,-1,1,-1,0,1/
	DATA YADDS/-1,-1,-1,0,0,1,1,1/

	OWNED(XPOS,YPOS)=AREA
	LEVEL=1
	XX=XPOS
	YY=YPOS

100	K=1
200	IF ((XX+XADDS(K).LT.2).OR.(XX+XADDS(K).GT.99)) GOTO 300
	IF ((YY+YADDS(K).LT.2).OR.(YY+YADDS(K).GT.59)) GOTO 300
	IF (MAP(XX+XADDS(K),YY+YADDS(K)).NE.LS) GOTO 300
	IF (OWNED(XX+XADDS(K),YY+YADDS(K)).NE.'\0') GOTO 300
	OWNED(XX+XADDS(K),YY+YADDS(K))=AREA
	XSTACK(LEVEL)=XX
	YSTACK(LEVEL)=YY
	CSTACK(LEVEL)=K
	LEVEL=LEVEL+1
	 IF (LEVEL.GT.LIM) THEN
	   SET=0
	   RETURN
	 ENDIF
	XX=XX+XADDS(K)
    	YY=YY+YADDS(K)
	GOTO 100
300	K=K+1
	IF (K.LE.8) GOTO 200
	LEVEL=LEVEL-1
	 IF (LEVEL.EQ.0) THEN
	   SET=1
	   RETURN
	 ENDIF
	XX=XSTACK(LEVEL)
	YY=YSTACK(LEVEL)
	K=CSTACK(LEVEL)
	GOTO 300

	END