; 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()››››››››