PROGRAM SPACE BYTE ANS,IBYTE,SGC(4),ASCII(4) IMPLICIT INTEGER(A-Z) REAL RANX, RANY DATA SGC/"33,'(','0',0/ DATA ASCII/"33,'(','B',0/ ISEC=SECNDS(0.) !GET TIME IR1=0 IR2=0 DO 5 I=1,ISEC 5 CALL RANDU(IR1,IR2,RANX) !GET A RANDOM START POSITION IF(IQSET(3).LT.0)PAUSE 'NOT ENOUGH QUEUE ELEMENTS' CALL IPOKE("44,"50100.OR.IPEEK("44)) CALL VTCLR !CLEAR SCREEN CALL VTJUMP !PUT IN JUMP MODE FOR FASTER I/O CALL VTMCUR(5,1) WRITE(7,10) 10 FORMAT(' YOU HAVE BEEN ASKED TO GO ON A MISSION TO DESTROY FIVE',/, 1 ' ENEMY CRAFT THAT THREATEN THE GALAXY......',/, 2 ' YOU MUST POSITION YOUR CRAFT SO THAT THE ENEMY',/, 3 ' IS IN POSITION IN THE CENTER OF YOUR GUN SIGHT IN ORDER',/, 4 ' TO DESTROY THE ENEMY SPACECRAFT.',/, 5 ' USE THE CURSOR CONTROL KEYS TO POSITION THE CRAFT AND THE',/, 6 ' F KEY TO FIRE!!') WRITE(7,11) 11 FORMAT(' ENEMY FIRE WILL GRADUALLY DESTROY YOUR AIMING ABILITY') CALL ISLEEP(0,0,10,0) WRITE(7,12) 12 FORMAT(' TYPE N FOR NOVICE PILOT, E FOR EXPERIENCED OR A FOR ACE: ',$) READ(5,13)ANS 13 FORMAT(A1) IF (ANS.EQ.'E')V8=150 IF (ANS.EQ.'N')V8=300 IF (ANS.EQ.'A')V8=75 CALL VTCLR 230 CALL VTHTXT(0,10,10,'..GOOD LUCK ON YOUR MISSION --- ON INTO BATTLE!') CALL ISLEEP(0,0,2,0) 270 D2=1 D1=1 CALL VTCLR IF(V8.LE.75)CALL VTHTXT(0,2,25,'RATING=ACE PILOT') IF(V8.GE.300)CALL VTHTXT(0,2,25,'RATING=NOVICE PILOT') IF((V8.GT.75).AND.(V8.LT.300))CALL VTHTXT(0,2,25,'RATING=EXPERIENCED') 290 CALL VTMCUR(6,0) CALL OUTSTR(SGC) WRITE(7,291) 291 FORMAT(' ',T27,' qqqqqqqqqwqqqqqqqqq',/,' ',T37,'x',/,' ',T37,'x',/, 3 ' ',T37,'x',/,' ',T17,'x',T57,'x',/, 5 ' x l k x',/, 6 ' tqqqqqqqqqqu tqqqqqqqqqqu',/, 7 ' x m j x',/, 8 ' x x',/, 9 ' ',T37,'x',/,' ',T37,'x',/,' ',T37,'x',/, 2 ' qqqqqqqqqqvqqqqqqqqqq') CALL OUTSTR(ASCII) 300 CALL RANDU(IR1,IR2,RANY) RANY=(10.*RANY+7.) D WRITE(7,301)RANY D301 FORMAT(' ',E13.6) Y5=INT(RANY) CALL RANDU(IR1,IR2,RANX) RANX=(20.*RANX+21.) D WRITE(7,301)RANX X5=INT(RANX) 320 CALL VTHTXT(0,Y5+1,X5+1,'I-O-I') P=Y5 Q=X5 350 CONTINUE DO 351 I=1,175 !HANG LOOP 351 CONTINUE T=T+1 IF (T.GT.V8) GOTO 1110 GOTO 360 1110 IF (X5.GT.36)GOTO 1116 IF (Y5.LT.12)GOTO 1116 1112 X5=X5-1 Y5=Y5+1 1113 CALL VTHTXT(0,P+1,Q+1,' ') CALL VTHTXT(0,Y5+1,X5+1,'I-O-I') P=Y5 Q=X5 CALL VTHOME 1120 IF (Y5.LE.18)GOTO 1122 1121 CALL VTERAS(2) CALL VTHTXT(0,1,1,'YOU ARE SHOT DOWN !!!') GOTO 490 1116 X5=X5+1 Y5=Y5-1 GOTO 1113 1122 IF (Y5.LT.5)GOTO 1121 T=0 360 ICHAR=ITTINR() IF (ICHAR .LT.0)GOTO 350 IBYTE=ICHAR IF (IBYTE.EQ.27)GOTO 360 IF (IBYTE.EQ.'[')GOTO 360 CALL VTMCUR(Y5+1,X5+1) IF (IBYTE .EQ. 'D')X5=X5+1 IF (IBYTE .EQ. 'C')X5=X5-1 IF (IBYTE .EQ. 'A')Y5=Y5+1 IF (IBYTE .EQ. 'B')Y5=Y5-1 IF (IBYTE .EQ. 'F')GOTO 710 IF (IBYTE .EQ. 'Q')GOTO 490 IF (IBYTE .NE. 'M')GOTO 450 CALL VTGCUR(IROW,ICOL) WRITE(7,361)IROW,ICOL,X5,Y5 361 FORMAT(' ',I7,5X,I7,5X,I5,5X,I5) 450 CALL VTHTXT(0,P+1,Q+1,' ') CALL VTHTXT(0,Y5+1,X5+1,'I-O-I') P=Y5 Q=X5 GOTO 350 710 IF((Y5+1).EQ.12)GOTO 740 880 CALL VTMCUR(2,50) WRITE(7,9000)D2 9000 FORMAT(' NUMBER MISSED=',I3) D2=D2+1 CALL VTMCUR(Y5+1,X5+1) GOTO 320 740 IF ((X5+1).EQ.34)GOTO 770 GOTO 880 770 CALL VTHTXT(0,12,30,' POW ') CALL ISLEEP(0,0,1,0) CALL VTHTXT(0,12,30,' ') D CALL VTHTXT(0,22,1,'MAY THE FORCE BE WITH YOU !!!') CALL VTMCUR(1,50) WRITE(7,9001)D1 9001 FORMAT(' ENEMY DESTROYED=',I3) D1=D1+1 IF (D1.EQ.6)GOTO 920 GOTO 300 920 D2=D2-1 GOTO 300 C 490 CALL VTSCRL CALL EXIT END