 CLEAR 30000&
SCREEN 1,320,256,4,1
WINDOW 2,,,16,1
FOR o=0 TO 7
PALETTE o,0,0,0
NEXT

anfang:
RANDOMIZE TIMER
CLS
DEFLNG a-z
DECLARE FUNCTION opendiskfont() LIBRARY
LIBRARY "diskfont.library"
LIBRARY "graphics.library"
altfont = PEEKL(WINDOW(8)+52)
makefont "bubble.font"
PRINT 
COLOR 5
PRINT 
PRINT 
PRINT 
PRINT "  Ghostdriver" 
makefont "dct.font"
COLOR 6
el =0
PRINT  "          BY MARCUS GESSNER IN 1990 !"
 FOR s= 1 TO 1000
 PSET (35+212*RND,75+20*RND),1
 NEXT

PALETTE 5,0,0,1
PALETTE 6,1,0,0
PALETTE 7,0,1,0
  ON MOUSE GOSUB mausi
  MOUSE ON
modus =1
ts:
RESTORE datas
COLOR 6
FOR a=1 TO 55
READ a$
LOCATE 18,52:PRINT a$
IF modus =2 THEN GOTO nun
FOR i=1 TO 4
SCROLL (0,101)-(320,107),-3,0
NEXT i
NEXT a
GOTO ts

datas:
 DATA "TH","IS"," P","RO","GR","AM","M ","WA","S ","WR","IT","TE","N "
 DATA "BY"," M","AR","CU","S ","GE","SS","NE","R ","IN"," 1","99","0 "
 DATA "!!","  ","TH","IS"," I","S ","PU","BL","IC"," D","OM","AI","N!"
 DATA "PR","ES","S ","MO","US","EB","UT","TO","N ","TO"," C","ON","TI"
 DATA "NU","E ","!!"
nun: 
 biwe:
 FOR i=0 TO 320
 LINE (i,100)-(i,107),0
 NEXT
 
 
 FOR s= 1 TO 1000
 PSET (35+212*RND,75+20*RND),1
 NEXT
 
  FOR i=0 TO 200
 LINE (0,i)-(320,i),0
 NEXT
 
  tempo=1
  ob.load
  PALETTEs 
  feld
ko:  
  COLOR 6,0
  score=0
  cars=4
  LOCATE 4,11 
  PRINT  score$
  LOCATE 7,11 
  PRINT  cars
  x=200
  OBJECT.X 1,200
  OBJECT.Y 1,120
  OBJECT.ON 1
  
starten:
  COLOR 5
  LOCATE 14,3 :PRINT "STATUS:"
  LOCATE 14,11:PRINT "  PLAY"
  
  a= 180+60*RND
  b= 0
  OBJECT.ON 2
  score = score +10
  IF score=100 THEN cars =cars+1:tempo=tempo+1 
  IF score=200 THEN cars =cars+1:tempo=tempo+.5
  IF score=300 THEN cars =cars+1:tempo=tempo+.5
  IF score=400 THEN cars =cars+1:tempo=tempo+1
  IF score=500 THEN cars =cars+1:tempo=tempo+.5
  IF score=600 THEN cars =cars+2:GOSUB bonus
  IF score=700 THEN cars =cars+1:tempo=tempo+1
  IF score=800 THEN cars =cars+1:tempo=tempo+1
  IF score=900 THEN cars =cars+1:tempo=tempo+1
  LOCATE 4,11
  PRINT  score
    LOCATE 7,10
  PRINT cars 

lenken:
  OBJECT.X  1,x
  b=b+tempo
  OBJECT.X 2,a
  OBJECT.Y 2,b
  x=x + STICK(2) 
  IF x>=240 THEN x= 240
  IF x<=180 THEN x= 180
  IF b > 260 THEN GOTO starten
  IF b> 90 AND b< 140 THEN GOTO lenken2
  GOTO lenken
lenken2:
  IF x>a-14 AND x<a+14 THEN GOTO crash
  GOTO lenken
crash:
  BEEP
  cars=cars-1
  LOCATE 7,11
  PRINT  cars
  IF cars = 0 THEN GOTO ende
  FOR p= 8  TO 3000
  NEXT
  GOTO starten
ende:
  tempo=1
  b=0
  COLOR 5
  
  LOCATE 14,11
  PRINT "  OVER"
  
lo:
  LOCATE 18,5
  PRINT "PRESS BUTTON TO"
  LOCATE 19,5
  PRINT "PLAY A NEW GAME"
e:
  IF STRIG(3)=-1 THEN GOSUB b:GOTO ko
  GOTO e
b:
  LINE (7,101)-(136,118),0,bf
  RETURN
bonus:
  FOR T = 0 TO 5
  COLOR 10
  SOUND 300,2,255,1
  LOCATE 19,8:PRINT  "EXTRABONUS" 
  FOR z= 1 TO 1000 
  NEXT z 
  LINE (7,101)-(136,118),0,bf
  FOR h= 1 TO 1000 
  NEXT h
  NEXT T
  COLOR 7
  RETURN


mausi:
   IF modus = 1 THEN modus =2:RETURN
  
   dumm=MOUSE(0)
   xz=MOUSE(3)   
   yz=MOUSE(4)
   IF xz>50 AND xz<90 AND yz>167 AND yz<187 THEN GOTO ede
   IF xz>50 AND xz<90 AND yz>137 AND yz<157 THEN
    WINDOW 3,,(70,100)-(240,180),0,1
    
    COLOR 6
    PRINT " Info zu Ghostdriver "
    PRINT "                     "
    PRINT "Ihre  Aufgabe ist es,"
    PRINT "den entgegenkommenden"
    PRINT "Autos zu entweichen !"
    PRINT    
    PRINT 
    PRINT 
    PRINT "     Viel Spass !    "
    
    FOR d=7 TO 20000
    NEXT d
    WINDOW 2
    END IF 
   RETURN
ede:
              
    
    OBJECT.OFF 1
    OBJECT.OFF 2
     
    FOR i=0 TO 250
 LINE (0,i)-(320,i),0
 NEXT

  SYSTEM


            
SUB ob.load STATIC
  OPEN "AUTO1" FOR INPUT AS 1
  OBJECT.SHAPE 1,INPUT$(LOF(1),1)
  CLOSE 1
  OPEN "Auto2" FOR INPUT AS 2
  OBJECT.SHAPE 2,INPUT$(LOF(2),2)
  CLOSE 2
  OBJECT.SHAPE 3,2
  CLOSE 3
  OBJECT.SHAPE 4,2
  CLOSE 4
END SUB
SUB PALETTEs STATIC
  PALETTE 0,0,0,0
  PALETTE 1,0,0,0
  PALETTE 2,1,1,1
  PALETTE 3,0,.5,1
  PALETTE 6,0,.6,0!
  PALETTE 10,1,0,0
  PALETTE 7,.5,.5,.5
  PALETTE 9,1,0,0
  PALETTE 11,0,0,1
  PALETTE 13,0,0,1
END SUB
SUB feld STATIC
  LINE (0,0)-(310,250),7 ,b
  LINE (3,3)-(307,247),7,b
  LINE (140,6)-(304,244),7 ,b
  LINE (6,100)-(137,119),7,b
  LINE (141,7)-(180,244),6,bf
  LINE (255,7)-(303,244),6,bf
  LINE (180,7)-(255,244),7,bf
  LINE (180,7)-(181,244),1,bf
  LINE (255,7)-(256,244),1,bf
  COLOR 5
  LOCATE 14,3
  PRINT "Status:"
  LOCATE 4,3
  PRINT "SCORE:"
  LOCATE 7,3
  PRINT "CARS:"
  LINE (50,167)-(90,187),13,bf
  LINE (50,137)-(90,157),13,bf
  LINE (48,135)-(92,159),7,b
  LINE (48,165)-(92,189),7,b
  LINE (46,133)-(94,191),7,b
  LINE (44,131)-(96,193),7,b
  LINE (42,129)-(98,195),7,b
  LINE (40,127)-(100,197),7,b
  
  COLOR 9,13
  LOCATE 25,11:PRINT "INFO"
  LOCATE 30,11:PRINT "QUIT"
  COLOR 11,9
  LOCATE 36,3:PRINT "                     " 
  LOCATE 37,3:PRINT "   THIS PROGRAM IS   "
  LOCATE 38,3:PRINT "                     "
  LOCATE 39,3:PRINT "    PUBLIC DOMAIN    "
  LOCATE 40,3:PRINT "                     "
END SUB
SUB makefont (nf$) STATIC
neufont$ =nf$+CHR$(0)
hoehe=19
pref= 89
text(0) = SADD(neufont$)
text(1) = (2^16)*hoehe+pref 
font = opendiskfont (VARPTR(text(0)))
IF font <>0 THEN CALL setfont(WINDOW(8),font)
END SUB

