; DARKSTAR, LISTING 1¢; BY MICHAEL MITCHELL¢; (c) 1985, ANTIC PUBLISHING¢¢BYTE WSYNC=54282,VCOUNT=54283,¢ CLR=53274,CTR,CLR1=53270,¢ CHGCLR=[0],INCCLR1,S,INCCLR, ¢ CLR2=53271,A,B¢CARD ML,SC,SP,Q,I¢¢PROC WAIT(CARD N); MAIN DELAY¢ FOR I=0 TO N+N¢ DO OD ¢RETURN¢ ¢PROC TITLE() ; PRINT TITLE AND ¢SC=0 ML=0 ; SCROLL THE COLORS¢GRAPHICS(2+16)¢POSITION(5,2)¢ PRINTDE(6,"dArKsTaR")¢POSITION(8,4)¢ PRINTDE(6,"By")¢POSITION(1,6)¢ PRINTDE(6," MiChAeL mItChElL") ¢POSITION(0,09) ¢ PRINTDE(6,"pReSs FiRe To BeGiN!")¢DO¢ FOR CTR=1 TO 10 ¢ DO¢ INCCLR=CHGCLR INCCLR1=CHGCLR¢ DO¢ S=STRIG(0)¢ IF S=0 THEN RETURN FI¢ WSYNC=0¢ CLR=INCCLR CLR1=INCCLR1¢ CLR2=INCCLR+10¢ INCCLR==+1 INCCLR1==-1¢ UNTIL VCOUNT&128¢ OD¢ OD ¢ CHGCLR==+1¢OD ¢¢PROC BOX() ; DRAWS THE ENEMY¢A=RAND(150)+3 B=RAND(74)+3 COLOR=1¢PLOT(A,B)¢DRAWTO(A+2,B) DRAWTO(A+2,B+2)¢DRAWTO(A,B+2) DRAWTO(A,B)¢RETURN¢¢PROC MAIN() ; THE MAIN ROUTINE¢INT XX=[1],YY=[0],SS,X,Y,Q¢BYTE Z,E,E1,A1,B1,D,C=[0]¢BYTE A,B ¢X=50 Y=50¢ ¢GRAPHICS(7) COLOR=2 ; DRAW BORDER¢SNDRST() ¢PLOT(1,1)¢DRAWTO(158,1) DRAWTO(158,79)¢DRAWTO(1,79) DRAWTO(1,1)¢BOX()¢ ; LOOK FOR COLLISION¢DO¢ Z=LOCATE(X,Y)¢ IF Z=1 THEN ; ENEMY HAS BEEN HIT¢ FOR E=1 TO 20¢ DO WAIT(50) SOUND(0,E,08,10)¢ SETCOLOR(2,E,10) ¢ OD¢ SNDRST() BOX()¢ SC==+10 SETCOLOR(2,0,0)¢ FI¢ IF Z=2 THEN ; YOU HAVE BEEN HIT¢ FOR D=1 TO 35¢ DO COLOR=C¢ SOUND(0,D,8,10) C==+1¢ SETCOLOR(2,D,C) SETCOLOR(0,C,D)¢ SETCOLOR(1,A1,B1)¢ IF C=4 THEN C=1 FI¢ A1=RAND(153) B1=RAND(78) PLOT(X,Y)¢ DRAWTO(A1,B1)¢ OD¢ ML==+1 SNDRST()¢ IF ML>2 THEN ; CHECK FOR MEN LEFT¢ ML=0 GRAPHICS(2+16)¢ POSITION(4,4)¢ PRINTD(6,"GAME OVER")¢ POSITION(4,5)¢ PRINTD(6,"SCORE: ") PRINTBDE(6,SC)¢ FOR X=0 TO 242 STEP 2¢ DO¢ WAIT(500) SOUND(0,X+1,10,10)¢ SOUND(1,X+2,10,10)¢ SOUND(2,X+3,10,10)¢ SOUND(3,X+4,10,10)¢ SETCOLOR(0,X,10)¢ OD¢ WAIT(32000) ; DELAY¢ SC=0 TITLE()¢ FI¢ MAIN()¢ FI¢¢ Q==+1 SETCOLOR(1,Q,14)¢ COLOR=2 PLOT(X,Y)¢ SS=STICK(0) ; READ THE JOYSTICK¢ IF SS=14 THEN XX=0 YY=-1¢ ELSEIF SS=13 THEN XX=0 YY=1¢ ELSEIF SS=11 THEN XX=-1 YY=0¢ ELSEIF SS=7 THEN XX=1 YY=0¢ FI ¢ WAIT(350) ; CHANGE WAIT VALUE FOR¢ ; FASTER OR SLOWER SPEEDS¢ X==+XX Y==+YY¢ POKE(53279,5) ; KEYBOARD SOUND ¢OD¢RETURN¢¢PROC START() ¢ TITLE()¢ MAIN()¢¢¢¢¢¢¢¢