ZX Spectrum+ User Guide Companion Cassette: games.B

Is a part of release: ZX Spectrum+ User Guide Companion Cassette
File size: 8091
md5: 52257944ffceaa33bc74ee16d038229c
  1 REM                           ***************************     * MAZE GAME + UDG DEFINER *     ***************************  
  10 LET nooflives=3
  20 LET noofchasers=1
  30 LET startscreen=1
  40 POKE 23658,8
  50 REM **set up the variables**
  60 REM **plus caps on**
  70 BRIGHT 0: INVERSE 0: OVER 0: FLASH 0
  80 GO TO 9000
  90 REM  title page
  100 REM ** maze menu**
  110 BORDER 1: PAPER 1: INK 7: CLS 
  120 PRINT AT 0,8;: LET Z$="** MAZE CHASE **": LET V=USR 64500
  130 PRINT AT 3,6;"Anfangsbildschirm ";startscreen
  140 PRINT AT 5,6;"Anzahl Jaeger     ";noofchasers
  150 PRINT AT 7,6;"Anzahl Leben      ";nooflives
  160 PRINT AT 8,0;"________________________________"
  170 PRINT AT 10,1;"Druecken Sie ..."
  180 PRINT AT 12,1;"S..Um den Anfangsbildschirm zu     aendern"
  190 PRINT AT 14,1;"C..Fuer mehr bzw weniger Jaeger"
  200 PRINT AT 16,1;"L..Fuer mehr bzw weniger Leben"
  210 PRINT AT 18,1;"G..Um die Graphik zu aendern"
  220 PRINT AT 20,1;"P..Um spielen anzufangen "
  230 PRINT #1;AT 0,1;"M..Zurueck zum MENU"
  240 IF INKEY$<>"" THEN  GO TO 240
  250 LET Z$=INKEY$: IF Z$="" THEN  GO TO 250
  260 IF Z$="S" THEN  GO SUB 340
  270 IF Z$="C" THEN  GO SUB 360
  280 IF Z$="L" THEN  GO SUB 380
  290 POKE 58997,nooflives: POKE 58998,noofchasers: POKE 58999,startscreen
  300 IF z$="M" THEN  GO TO 9000
  310 IF z$="G" THEN  GO SUB 2000: GO TO 100
  320 IF z$="P" THEN  GO TO 1000
  330 GO TO 240
  340 LET startscreen=startscreen+1: IF startscreen=6 THEN  LET startscreen=1
  350 BEEP .2 TO ,20: PRINT  FLASH 1;AT 3,24;startscreen: RETURN 
  360 LET noofchasers=noofchasers+1: IF noofchasers>=4 THEN  LET noofchasers=1
  370 BEEP .2 TO ,30: PRINT  FLASH 1;AT 5,24;noofchasers: RETURN 
  380 LET nooflives=nooflives+1: IF nooflives>=6 THEN  LET nooflives=1
  390 BEEP .2 TO ,30: PRINT  FLASH 1;AT 7,24;nooflives: RETURN 
  1000 REM **run the game**
  1010 PAPER 1: BORDER 1: INK 9: CLS : LET Z$="        ** MAZE GAME **": LET V=USR 64500
  1015 PRINT '''"        von   PETE COOKE"
  1020 PRINT '" Steuern Sie um den Bildschirm  "
  1030 PRINT " herum und malen Sie die Kaest- "
  1040 PRINT " chen an, aber passen Sie an den"
  1050 PRINT " Jaegern gut auf!"
  1060 PRINT  INK 6;"________________________________"
  1070 PRINT '" Gesteuert wird mit..."
  1075 POKE 23676,254
  1080 PRINT AT 13,10;"[A] ... Links"
  1090 PRINT AT 15,10;"[B] ... Nach unten"
  1100 PRINT AT 17,10;"[C] ... Nach oben"
  1110 PRINT AT 19,10;"[D] ... Rechts"
  1115 POKE 23676,255
  1120 PRINT #1;" Taste 'Q' quittiert, irgendeine andere bringt Sie zum Start"
  1130 IF INKEY$<>"" THEN  GO TO 1130
  1140 LET z$=INKEY$: IF z$="" THEN  GO TO 1140
  1150 IF z$="Q" THEN  GO TO 9000
  1200 RANDOMIZE USR 59000
  1210 REM **PLAY IT THROUGH**
  1220 GO TO 1000
  2000 BORDER 1: PAPER 1: INK 9: CLS : LET z$="       * UDG GENERATOR *": RESTORE USR 64500
  2005 PRINT ''''"Am Anfang sind die UDGs dem     Maze-Chase-Spiel geeignet."''"Dieses Programm erlaubt Ihnen,  sie zu veraendern, um das Spiel mit eigenen Grafikzeichen zu    spielen. Ihre selbstentworfenen Grafikzeichen sind auch auf Kas-sette aufbewahrbar."
  2010 PRINT '"Sie koennen die urspruenglichen Spielzeichen jederzeit zurueck- rufen, haben Sie also keine     Angst zu experimentieren!": PRINT #1;"Irgendeine Taste fuehrt weiter": PAUSE 1: PAUSE 0
  2020 GO SUB 8000
  2030 LET flag=USR 63000
  2040 REM actual program returns
  2050 REM 0 for exit
  2060 REM 1 for save
  2070 REM 2 for load
  2080 IF flag=0 THEN  RETURN 
  2090 REM  end of UDG section
  2100 IF flag=1 THEN  SAVE "UDG"CODE USR "a",168
  2110 IF flag=2 THEN  LOAD "UDG"CODE USR "a",168
  2200 GO TO 2000
  2210 REM continue with editor
  3000 REM DEMOLITION
  3010 BORDER 1: PAPER 1: INK 9: CLS 
  3020 LET Z$="          DEMOLITION": LET V=USR 64500
  3030 PRINT '''"       von JOSEPH DUFFY"
  3040 PRINT ''"Zerstoeren Sie die Mauer, aber  schuetzen Sie die Fenster!      Bricht die letzte Scheibe, so   sind Sie erledigt!"''"Der Schlaeger wird nach oben    bewegt mit einer Taste aus der  Reihe QWERTYUIOP."''"Der Schlaeger wird nach unten   bewegt mit einer Taste aus der  Reihe ASDFGHJKL"
  3050 PRINT #1;"Irgendeine Taste, um zu starten"
  3070 IF INKEY$<>"" THEN  GO TO 3070
  3080 IF INKEY$="" THEN  GO TO 3080
  3090 LET V=USR 56550: GO TO 9000
  4000 PAPER 1: INK 7: BORDER 1: CLS 
  4005 PRINT " FOLGENDES BITTE AUFSCHREIBEN!  "
  4010 PRINT '"Um eine Liste dieses Programms  zu sehen, druecken Sie:"''TAB 5;"1. BREAK"'TAB 5;"2. 'K'(dass LIST erscheint)"'TAB 5;"3. ENTER"''"Sie sehen jetzt einen Teil der  Liste. Um mehr zu sehen,        druecken Sie nocheinmal ENTER."
  4015 PRINT '"Um zum MENU zurueckzukehren,    druecken Sie:"''TAB 5;"1. BREAK"'TAB 5;"2. 'G'(dass GOTO erscheint)"'TAB 5;"3. '10'"'TAB 5;"4. ENTER"''TAB 5;"RUN nicht gebrauchen!"
  4020 PRINT #1;" Irgendeine Taste fuehrt weiter"
  4030 PAUSE 1: PAUSE 0: GO TO 9000
  8000 REM ** PRINT UDG SCREEN **
  8020 PAPER 0: BORDER 0: INK 6
  8030 CLS 
  8040 POKE 23676,254
  8050 REM FOR ARROW UDG'S
  8060 PRINT "       * UDG-GENERATOR *"
  8070 PRINT AT 2,0; INVERSE 1;"Buchstaben"; INVERSE 0;" ABCDEFGHIJKLMNOPQRSTU"
  8080 PRINT AT 4,0; INVERSE 1;"Grafik    "; INVERSE 0
  8090 PRINT AT 5,0;"Zur Zeit: "
  8100 PRINT AT 7,0;"[A][B][C][D] verschieben"
  8120 PRINT AT 9,0;"ENTER einfuellen"
  8130 PRINT AT 10,0;"DELETE ein Bit frei"
  8140 PRINT AT 11,0;"V Ganze UDG frei"
  8150 PRINT AT 12,0;"I Negativ"
  8160 PRINT AT 13,0;"M Spiegel L/R"
  8170 PRINT AT 14,0;"N Spiegel O/U"
  8180 PRINT AT 15,0;"T Nach rechts drehen"
  8190 PRINT AT 16,0;"X Ausgang"
  8200 PRINT AT 17,0;"Q Spielzeichen wieder laden"
  8210 PRINT AT 18,0;"S UDGs auf Kassette aufbewahren"
  8220 PRINT AT 19,0;"L UDGs von Kassette laden"
  8230 PRINT AT 21,0;"SPACE fuehrt zum naechsten UDG"
  8240 PRINT AT 7,22;"12345678"
  8250 FOR n=1 TO 8
  8260 PRINT AT 8+n,20;n;" "; PAPER 1; INK 7;"[E][E][E][E][E][E][E][E]"
  8270 NEXT n
  8280 RETURN 
  9000 REM **TITLE PAGE**
  9010 PAPER 0: INK 5: BORDER 0: CLS : PRINT AT 0,10;: LET Z$="  MENU": LET V=USR 64500
  9015 PRINT '''TAB 8; INK 7;"Druecken Sie:"
  9020 PRINT '''"M MAZE-CHASE                    "
  9030 PRINT ''"U UDG-GENERATOR                 "
  9035 PRINT ''"D DEMOLITION                    "
  9036 PRINT ''"H WIE MAN DAS PROGRAMM AUFLISTET"
  9050 IF INKEY$<>"" THEN  GO TO 9050
  9060 LET Z$=INKEY$: IF Z$="" THEN  GO TO 9060
  9070 IF Z$="M" THEN  GO TO 100
  9080 IF Z$="U" THEN  GO SUB 2000: GO TO 9000
  9090 IF Z$="D" THEN  GO TO 3000
  9092 IF Z$="H" THEN  GO TO 4000
  9095 GO TO 9050
  9800 PRINT AT 18,0: LOAD "gamecode"CODE 
  9810 RESTORE USR 3438: PRINT #1; INK 6;"    Irgendeine Taste druecken   "
  9820 RESTORE USR 58000: PAUSE 40: RESTORE USR 58000: IF INKEY$="" THEN  PAUSE 40: GO TO 9820
  9830 RESTORE USR 3438: IF INKEY$="`" THEN  PAUSE 1: PAUSE 0: IF INKEY$="$" THEN  GO TO 9999
  9850 FOR I=1 TO 16: RESTORE USR 3582: BEEP .1 TO ,I: NEXT I
  9860 PRINT  INK 6;AT 3,12;"SOFTWARE"'''"   Maze Chase und UDG Definer"'"        von Pete Cooke"''"  Demolition von Joseph Duffy"'''"   © 1984  Dorling Kindersley"'"        Software Limited"
  9870 RESTORE USR 3438: PRINT #1; INK 6;"  Irgendeine Taste druecken": PAUSE 1: PAUSE 0: GO TO 1
  9997 REM  auto save routine
  9998 REM GET HERE BY PRESSING ` THEN $ WHEN THE TITLE PAGE IS FLASHING
  9999 SAVE "SCREEN$ "SCREEN$ : SAVE "games" LINE 9800: SAVE "gamecode"CODE 54000,11536
  65535 COPY  COPY  COPY  CLEAR  RETURN J PRINT lf```1 GO TO [H] LIST D REM >= DEF FN  NEW E_DCHR$ DXblpP( CIRCLE b`<INT  IF ldrrr/ GO TO u FOR XjXjvD[I] OVER CHR$ >= ERASE  BRIGHT  DEF FN @ PAPER CHR$  AND  FORMAT  ERASE  BRIGHT  LINE @ AND  OVER >= LINE /DwXnvD[Q] CIRCLE  LINE CHR$  NEW  LINE @ INPUT CHR$  ERASE  CONTINUE Du OVER DE^u INPUT P/ LIST DSCREEN$ ▖▙E[E]f`<u LIST D REM >= DEF FN E^lf```1 GO TO Xdjfj DEF FN >=t STOP TAN HzDDu VERIFY [M]zlhj`` DIM  PLOT  [I]lhj`` DIM  PLOT  Vjdju STOP TAN HzTAN HW|[M]u NEW [M]>j FOR X`X`vDT@SCREEN$  NEW  LINE  DATA @▖ LINE  TO  ERASE  BRIGHT  LINE >=@▙ DATA CHR$  LPRINT  FORMAT  ERASE  AND  NEW @>= ERASE  CONTINUE  OVER  DATA @TD>[E][E] FOR XdX`wINT bvD▙ DATA CHR$  LPRINT  FORMAT  ERASE  AND  NEW DwINT `vD@@@▘▗▚▖▙[A][C][E][G][I][K][M][O][Q][S][U]INKEY$FN SCREEN$ D>FN < FOR XhX`vDINKEY$ LINE  CONTINUE @CHR$  NEW @//D>SGN > FOR XjX`vDVAL$  OVER  DATA  VERIFY  ERASE  BRIGHT  DEF FN @ OVER  BRIGHT D> FORMAT B FOR XnvE!#%&@ CONTINUE  OVER @ PAPER  OVER  GO TO  LINE D> DATA 8 FOR XpX`vD LPRINT  OVER  ERASE  BRIGHT  CONTINUE  LINE  DATA D> SAVE L FOR XrX`vD BRIGHT  CONTINUE  LINE  DATA @ CONTINUE  OVER @ TO  ERASE  CIRCLE  CIRCLE @BIN  ERASE  CONTINUE D?@ FOR Xb`X`vD`@FN  OVER @ AND  CIRCLE  LINE CHR$  DATA D? N FOR XbbX`vDAT @▚ CIRCLE  LINE CHR$  DATA @ INPUT  FORMAT  OVER  CIRCLE  LINE @SCREEN$ ▖▙D?4< FOR XbdX`vD[C]@[C] BRIGHT  GO TO  LINE  DATA  CONTINUE D?HR FOR XbfX`vD[K]@[K] ERASE  DATA  DATA  OVER  DATA @ CIRCLE  LINE  TO  CONTINUE ^ DATA  ERASE  DEF FN  FORMAT  CONTINUE D?/L FOR XbhX`vD[M]@[K] ERASE  DATA  DATA  OVER  DATA @ REM  LPRINT @>= OVER  INPUT  BRIGHT D?pL FOR XbjX`vDFN @FN  REM  DATA  BRIGHT @ AND  CIRCLE  OVER  AND  VERIFY  INPUT  ERASE  NEW  LINE D?▗8 FOR Xbl X`vDVAL @ LIST  ERASE  CONTINUE D?[I]T FOR Xbn"X`vD[S]@[U] LINE  CIRCLE  OVER CHR$ >=@ DEF FN CHR$  PAPER  PAPER  LINE @ AND  FORMAT CHR$  DATA  NEW D?AT d FOR Xbp$X`vDINKEY$@INKEY$CHR$  GO TO  LINE @ CONTINUE  FORMAT  LINE  NEW  LINE @SCREEN$ /▖/▙N NEW @ CONTINUE  OVER @FN ▘[Q]D?USR j FOR Xbr&X`vD[I]@[I] OVER CHR$ >=@ NEW  LINE  CONTINUE @ OVER  TO @SCREEN$ /▖/▙N NEW @ TO  DATA  OVER  PAPER @FN ▘[Q]D? CLOSE #l FOR Xdb*X`vD[Q] DATA  LINE  NEW  NEW @INKEY$[Q]▘▚@ CONTINUE  OVER @ DEF FN  OVER @ CONTINUE  OVER @ BRIGHT  LINE  LIST  CONTINUE @SCREEN$ /▖/▙/D? CONTINUE < FOR Xnd,vDbdfhjlnpD? DRAW & VERIFY  BRIGHT zb[I]p@p FOR XpV BRIGHT Xd`(v BRIGHT vD@DwTAN bwSIN n)))))))(D@$VAL$ ooflive NEXT VAL$ oofchaser NEXT COS tartscree INPUT v DIM z& INPUT : INKEY$la BORDER Z