User Tools

Site Tools


en:ganimedes

GANIMEDES

Info

Author Jorge Perez Barreiro
Computer Amstrad PCW 8256 / 8512 / 9512
Year 1988
Gender Kills martians
Controls Keyboard
Languages Spanish
Status Preserved

Screenshots

Description

Classic arcade killing martians similar to Galaxian game. The successive waves invade us and we have to defend the land with ardor. We must ensure that the aliens do not destroy the fuel drums located under the line of action of your cannon. Courage and to the battle!

Listing

  • Listing - GANIME.BAS
100 REM MARCIANOS (C)12-5-1988 Jorge Perez Barreiro
101 '
102 '
110 cls$=CHR$(27)+"E"+CHR$(27)+"H":REM BORRAR PANTALLA
120 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h):REM CONTROL "AT"
130 inverse1$=CHR$(27)+"p":REM VIDEO INVERSO
140 inverse0$=CHR$(27)+"q":REM VIDEO NORMAL
150 cursor1$=CHR$(27)+"e":REM CON CURSOR
160 cursor0$=CHR$(27)+"f":REM SIN CURSOR
170 scrab$=CHR$(27)+"L"
180 scrar$=CHR$(27)+"M"
190 DEF FN ventana$(a,b,c,d)=CHR$(27)+"X"+CHR$(32+a)+CHR$(32+b)+CHR$(c-1+32)+CHR$(d-1+32)
220 RANDOMIZE PEEK(64504!)
222 re=0
225 PRINT cls$
230 f$="*********************":g$="*                   *":PRINT FN at$(1,35);f$;FN at$(2,35);g$;FN at$(3,35);"* G A N I M E D E S *":PRINT FN at$(4,35);g$;FN at$(5,35);f$
240 PRINT FN at$(7,16);"AMSTRAD PCW 8256-8512-9512 (C)12-5-1988 Jorge Perez Barreiro"
245 PRINT FN at$(8,0);:FOR t=1 TO 90:PRINT "_";:NEXT t
250 PRINT FN at$(11,35);"TECLADO: o=izquierda";FN at$(12,44);"p=derecha";FN at$(13,44);"SPACE=fuego"
260 PRINT FN at$(16,0);"MISION: Destruir las naves enemigas, procurando que no se destruyan todos los bidones de  fuel que tienes en la base."
990 GOSUB 9500
1000 RESTORE 9000:ca=200:GOSUB 9700
1010 RESTORE 9010:ca=201:GOSUB 9700
1020 RESTORE 9020:ca=202:GOSUB 9700
1030 RESTORE 9030:ca=203:GOSUB 9700
1040 RESTORE 9040:ca=204:GOSUB 9700
1050 RESTORE 9050:ca=205:GOSUB 9700
1060 RESTORE 9060:ca=206:GOSUB 9700
1070 RESTORE 9070:ca=207:GOSUB 9700
1080 RESTORE 9080:ca=208:GOSUB 9700
1090 RESTORE 9090:ca=209:GOSUB 9700
1100 RESTORE 9100:ca=210:GOSUB 9700
1110 RESTORE 9110:ca=211:GOSUB 9700
1120 RESTORE 9120:ca=212:GOSUB 9700
1130 RESTORE 9130:ca=213:GOSUB 9700
1140 RESTORE 9140:ca=214:GOSUB 9700
1150 RESTORE 9150:ca=215:GOSUB 9700
1160 RESTORE 9160:ca=216:GOSUB 9700
1170 RESTORE 9170:ca=217:GOSUB 9700
1180 RESTORE 9180:ca=218:GOSUB 9700
1200 PRINT FN at$(28,32);"* Pulsa 's' para comenzar *"
1210 a$=INKEY$:IF a$<>"s" THEN GOTO 260
2000 PRINT cls$
2040 p1=INT(RND*35)+5:p2=INT(RND*40)+5:p3=INT(RND*40)+5
2050 vi=3:pu=0:co=43
2060 fm=0:fb=0:pm=0:pb=0:cm=0:cb=0
2062 pnn=84:nm=0:bd=0
2063 bi$="":FOR t=1 TO 10:bi$=bi$+CHR$(218)+"  ":NEXT T
2065 nn=0
2070 i1=2:IF INT(RND*2)+1=1 THEN i1=-2
2072 i2=1:IF INT(RND*2)+1=1 THEN i2=-1
2075 i3=1:IF INT(RND*2)+1=1 THEN i3=-1
2350 FOR t=0 TO 44:PRINT FN at$(0,t*2);CHR$(214)+CHR$(215);FN at$(3,t*2);CHR$(214);CHR$(215);FN at$(28,t*2);CHR$(216);CHR$(217):NEXT t
2360 FOR t=1 TO 28:PRINT FN at$(t,0);CHR$(214);CHR$(215);FN at$(t,88);CHR$(214);CHR$(215):NEXT t
2370 h1$="":FOR t=1 TO 10:h1$=h1$+CHR$(204)+CHR$(205)+"  ":NEXT t:h1$="   "+h1$
2375 h2$="":FOR t=1 TO 10:h2$=h2$+CHR$(202)+CHR$(203)+"  ":NEXT t:h2$=" "+h2$
2378 h3$="":FOR t=1 TO 10:h3$=h3$+CHR$(200)+CHR$(201)+"  ":NEXT t:h3$=" "+h3$
2400 PRINT FN at$(1,3);"PUNTOS:";pu;FN at$(2,3);"RECORD:";re;FN at$(1,35);"* G A N I M E D E S *";FN at$(1,80);CHR$(210);CHR$(211);":";vi;FN at$(18,co);CHR$(210);CHR$(211)
2410 PRINT FN at$(20,29);bi$
2450 PRINT FN at$(7,p1);h1$
2460 PRINT FN at$(9,p2);h2$
2470 PRINT FN at$(11,p3);h3$
2480 q=INT(RND*41)+1:IF fb=0 AND MID$(h1$,q,1)<>" " THEN fb=1:cb=p1+q-1:pb=6:GOTO 2500
2490 q=INT(RND*41)+1:IF fb=0 AND MID$(h2$,q,1)<>" " THEN fb=1:cb=p2+q-1:pb=8:GOTO 2500
2495 q=INT(RND*41)+1:IF fb=0 AND MID$(h3$,q,1)<>" " THEN fb=1:cb=p3+q-1:pb=10:GOTO 2500
2500 a$=INKEY$:IF a$<>"" THEN GOTO 4000
2510 GOTO 2535
2520 PRINT FN at$(18,co2);"  ";FN at$(18,co);CHR$(210);CHR$(211)
2535 IF fm=1 THEN pm=pm-2:PRINT FN at$(pm+2,cm);" ";FN at$(pm,cm);CHR$(209):IF pm=7 OR pm=9 OR pm=11 THEN GOTO 5000
2536 IF nn=1 THEN PRINT FN at$(5,pnn);"  ":pnn=pnn-3:PRINT FN at$(5,pnn);CHR$(206);CHR$(207):IF fm=1 AND pm=5 AND (cm=pnn OR cm=pnn+1) THEN GOSUB 5400
2537 IF nn=1 AND pnn<=4 THEN nn=0:PRINT FN at$(5,pnn);"  "
2538 IF nn=0 AND INT(RND*100)=1 THEN nn=1:pnn=84
2539 IF pm=5 THEN fm=0:PRINT FN at$(pm,cm);" "
2540 IF fb=1 THEN pb=pb+2:PRINT FN at$(pb-2,cb);" ";FN at$(pb,cb);CHR$(208):IF pb=18 THEN IF (cb=co) OR (cb=co+1) THEN GOTO 5300
2545 IF fb=1 AND pb=20 THEN GOTO 5600
2550 p1=p1+i1:IF p1>=44 THEN i1=-2
2560 IF p1<=6 THEN i1=2
2570 p2=p2+i2:IF p2=47 THEN i2=-1
2580 IF p2=3 THEN i2=1
2590 p3=p3+i3:IF p3=47 THEN i3=-1
2600 IF p3=3 THEN i3=1
3000 GOTO 2450
4000 co2=co:IF a$="p" AND co<85 THEN co=co+2:GOTO 2520
4010 IF a$="o" AND co>3 THEN co=co-2:GOTO 2520
4020 IF ASC(a$)=32 AND fm=0 THEN fm=1:cm=co:pm=19:GOTO 2535
4030 GOTO 2535
5000 IF pm=11 THEN lo=cm-p3+1 ELSE GOTO 5050
5005 IF lo<1 OR lo>41 GOTO 5050
5010 IF MID$(h3$,lo,1)=" " THEN GOTO 5050
5011 pu=pu+20
5015 IF lo/2<>INT (lo/2) THEN lo=lo-1
5017 MID$(h3$,lo,2)="  "
5020 GOTO 5200
5050 IF pm=9 THEN lo=cm-p2+1 ELSE GOTO 5100
5055 IF lo<1 OR lo>41 GOTO 5100
5060 IF MID$(h2$,lo,1)=" " THEN GOTO 5100
5065 pu=pu+50
5070 IF lo/2<>INT (lo/2) THEN lo=lo-1
5072 MID$(h2$,lo,2)="  "
5075 GOTO 5200
5100 IF pm=7 THEN lo=cm-p1+1 ELSE 2536
5102 IF lo<1 OR lo>43 GOTO 2540
5105 IF MID$(h1$,lo,1)=" " THEN GOTO 2536
5110 pu=pu+150
5115 IF lo/2<>INT (lo/2) THEN lo=lo-1
5130 MID$(h1$,lo,2)="  "
5200 fm=0:PRINT FN at$(pm,cm);CHR$(212):OUT(248),11:OUT(248),12
5205 nm=nm+1:IF nm=30 THEN nm=0:GOTO 2370
5210 PRINT FN at$(1,10);pu
5250 GOTO 2536
5300 fb=0:FOR t=1 TO 25:OUT(248),11:OUT(248),12:PRINT FN at$(18,co);CHR$(212);CHR$(213);FN at$(18,co);CHR$(213);CHR$(212):NEXT t
5310 vi=vi-1:PRINT FN at$(1,84);vi
5315 IF vi=0 THEN GOTO 5500
5320 GOTO 2400
5400 PRINT FN at$(5,pnn-1);"*1000*":pu=pu+1000:PRINT FN at$(1,10);pu:nm=0:PRINT FN at$(5,pnn-1);"      ":RETURN
5500 FOR y=1 TO 7:f$="*************":g$="*           *":PRINT FN at$(16,37);f$;FN at$(17,37);g$;FN at$(18,37);"* GAME OVER *";FN at$(19,37);g$;FN at$(20,37);f$
5505 FOR t=1 TO 100:NEXT t
5511 PRINT inverse1$:f$="*************":g$="*           *":PRINT FN at$(16,37);f$;FN at$(17,37);g$;FN at$(18,37);"* GAME OVER *";FN at$(19,37);g$;FN at$(20,37);f$;inverse0$
5515 FOR t=1 TO 30:NEXT t
5530 NEXT y
5550 PRINT FN at$(22,27);"** Pulsa 's' para otra partida **"
5560 IF INKEY$<>"s" THEN GOTO 5560
5562 IF pu>re THEN re=pu
5565 GOTO 2000
5600 pl=cb-28
5601 IF pl<1 OR pl>30 THEN GOTO 5610
5602 IF MID$(bi$,pl,1)<>" " THEN GOTO 5615
5610 PRINT FN at$(20,cb);" ":fb=0:GOTO 2550
5615 MID$(bi$,pl,1)=" ":PRINT FN at$(20,cb);CHR$(213);FN at$(20,cb);" ":bd=bd+1
5620 IF bd=10 THEN GOTO 5500
5630 GOTO 2545
8700 END
8800 FOR t=200 TO 220:PRINT CHR$(t);:NEXT t:STOP
8900 STOP
9000 DATA 129,67,62,119,187,159,137,72
9010 DATA 129,194,124,238,221,249,145,18
9020 DATA 193,231,127,57,27,63,98,196
9030 DATA 131,231,254,156,183,252,70,35
9040 DATA 134,255,165,130,195,195,130,128
9050 DATA 97,255,165,103,195,195,65,1
9060 DATA 0,0,0,7,31,117,255,31
9070 DATA 32,64,64,224,248,174,255,248
9080 DATA 5,2,2,2,7,5,7,2
9090 DATA 2,2,2,7,2,7,7,5
9100 DATA 33,195,199,205,255,197,199,34
9110 DATA 132,195,227,179,255,163,227,68
9120 DATA 62,93,113,239,189,238,55,30
9130 DATA 6,159,243,223,190,110,248,56
9140 DATA 43,87,175,95,175,87,43,0
9150 DATA 248,252,254,254,254,252,248,0
9160 DATA 0,0,16,80,92,122,221,255
9170 DATA 16,80,112,116,180,186,125,255
9180 DATA 94,191,95,191,0,191,95,191
9500 REM GRAPHIC'S CREATOR
9510 MEMORY 62227!
9520 lla=62228!
9530 RESTORE 9610
9540 FOR s=62228! TO 62280!
9550 READ a$:a=VAL("&H"+a$)
9570 POKE s,a
9580 NEXT s
9600 RETURN
9610 DATA 2A,01,00,11,57,00,19,22,3E
9620 DATA F3,01,27,F3,CD,3D,F3,E9,00,C9,2A,40,F3,26,00,29,29,29,11,00,B8,19,11,41,F3
9630 DATA EB,01,08,00,ED,B0,C9,C3,38,00,0B,00,B0,04,87,20,4C,44,49
9650 CLEAR:SAVE "gdu"
9700 POKE 62272!,ca:FOR t=62273! TO 62280!:READ by:POKE t,by:NEXT t:CALL lla:RETURN
9998 STOP
9999 CLEAR:SAVE "ganime"

Controls

       O = LEFT
       P = RIGHT
 SPACE = FIRE

Loading the program

 1.- Insert the CP/M disc on side 2
 2.- Write BASIC and wait for it to load
 3.- Remove the CP/M disk and insert the disk containing the Ganymede game
 4.- Type run "Marci" and press the "ENTER" key

Extras

  • Listing of the program in a large circulation magazine of the time

ganimedes_programa_01.jpg ganimedes_programa_02.jpg ganimedes_programa_03.jpg ganimedes_programa_04.jpg

Download

  • Ganimedes (game in dsk format, compressed with zip)
en/ganimedes.txt · Last modified: 2022/06/30 11:04 by jevicac