Random game
Random software
Random game
  • Entry name:
     Hopper 
  • Category:
    Games
  • Publisher/Developer:
    BELLCOM - Public Domain Library
  • Code:
    Rich Bouchard,Alan Zett
  • Controllers:
    Joystick
  • Maximum players:
    1
  • Programming language:
    Atari BASIC
Hopper Hopper Hopper Hopper Hopper Hopper Hopper Hopper Hopper
Listing 1
10GOSUB10000:GOSUB11000:GOSUB12000:GOSUB13000:GOSUB30000:GOSUB15000
100GOSUB2300
110GOSUB2400
120A9=STICK(N0):A1=N0:A2=N0
130U=USR(ADR(MOVE$)):ONA9GOTO200,200,200,200,200,200,140,200,200,200,150,200,160,170,200
140A1=N2:GOTO200
150A1=-N2:GOTO200
160A2=UP(YP+N1):GOTO200
170A2=-UP(YP)
200XP=XP+A1+SP(YP)*(A2=N0):YP=YP+A2:IFXP<N2ORXP>37THEN1200
203IFA1ORA2THENSOUNDN0,210,10,10
205A=PEEK(SC+YP*40+XP):A3=PEEK(SC+YP*40+XP+N1)
210IFA2<N0THENU=USR(ADR(UP$),PM+528):IFA2=-N2THENU=USR(ADR(UP$),PM+528)
220IFA2>N0THENU=USR(ADR(DOWN$),PM+528):IFA2=N2THENU=USR(ADR(DOWN$),PM+528)
225IFA1ORA2THENSOUNDN0,120,N10,10
230IFYP>=13ANDYP<=19AND(A<>90ORA3<>90)THENSOUNDN0,N0,N0,N0:GOTO1200
240SOUNDN0,N0,N0,N0:IFYP>=N3ANDYP<=9AND(A=90ORA3=90ORA=80ORA3=80ORA=83ORA3=83)THEN1200
250IFYP<FPTHENFP=YP:S=S+20:POSITIONN9,N0:?S;:IFYP=N2THEN1000
260POKEPX,47+XP*N4:SOUNDN3,S(YP),S1(YP),N2
270M1=M1-N1:IFM1<>N0THEN120
280SOUNDN2,200-150*(M<5),12,N8+N6*(M<N5):M1=M2:POKESC+917-M,N0:M=M-N1:SOUNDN2,N0,N0,N0:IFM<>N0THEN120
285SOUNDN2,200,12,14:FORJ=N1TO250:NEXTJ:SOUNDN2,N0,N0,N0
290GOTO1400
1000SOUNDN3,N0,N0,N0:IFA<>113ORA3<>113THEN1200
1010POKEPX,N0:XP=INT((XP+N3)/N7)*N7-N1:POSITIONXP,YP:?"uv";
1020S=S+250+M*N10:GOSUB2480
1030H=H+N1
1040FORT=40TON10STEP-10:SOUNDN3,T,N10,N10:SOUNDN3,N0,N0,N0:FORI=N1TO15:NEXTI:NEXTT
1050IFH<>N5THENFORI=N1TO100:NEXTI:GOTO110
1100POSITIONN2,N0:?"":FORJ=N1TO400:NEXTJ
1110FORJ=N1TON5:POSITIONJ*7-N1,N2:?"qq";:S=S+400:GOSUB2480
1120FORJ1=N0TON8STEP1.2:SOUNDN0,20-J1,N10,N8-J1:SOUNDN0,80-J1,N10,N8-J1:NEXTJ1:SOUNDN0,N0,N0,N0
1130FORJ1=N0TO20:NEXTJ1:SOUNDN0,20,N2,N4:SOUNDN1,80,N10,N4:FORJ1=N1TO20:NEXTJ1
1140SOUNDN0,N0,N0,N0:SOUNDN1,N0,N0,N0:NEXTJ:FORJ=N1TO200:NEXTJ:H=N0:IFB<MBTHENB=B+N1:GOSUB2500
1150GOTO110
1200IFYP>N9AND(XP<N2ORXP>37)THENSOUNDN3,200,14,N10:XP=XP-A1:SOUNDN3,N0,N0,N0:GOTO205
1202IFYP=N2THEN1400
1205IFYP>11THEN1300
1210A1=N1:IFXP>=N2ANDXP<=36ANDA<>80ANDA3<>80ANDA<>83ANDA3<>83THENA1=N0
1220POKEPX,N0:FORJ=N1TON4
1225SOUNDN3,N3,N8,12-J*N2
1230IFXP<N2THENXP=37
1240IFXP>37THENXP=N2
1250A=PEEK(SC+YP*40+XP):A3=PEEK(SC+YP*40+XP+N1):POSITIONXP,YP:?DEATH$(J*N2-N1,J*N2)
1260FORI=N1TO30:NEXTI
1270SOUNDN3,N0,N0,N0:POKESC+YP*40+XP,A:POKESC+YP*40+XP+N1,A3:U=USR(ADR(MOVE$))
1280XP=XP+SP(YP)*A1:NEXTJ
1290GOTO1500
1300FORJ=N0TON4:SOUNDN3,200,N4,N10-J*N2:IFJ<>N2ANDJ<>N4THENPOKE53256,J:POKEPX,47+XP*N4-J*N4
1310FORJ1=N0TO23:IFJ1/N8=INT(J1/N8)THENU=USR(ADR(MOVE$))
1320NEXTJ1:NEXTJ:POKEPX,N0:POKE53256,N0:SOUNDN3,N0,N0,N0:GOTO1500
1400FORJ=40TO245STEPN5:FORJ1=N0TON8STEPN2:SOUNDN3,J+J1,N10,N10:POKE704,J+J1:NEXTJ1:NEXTJ
1410SOUNDN3,N0,N0,N0:POKE704,24:FORJ=N1TO200:NEXTJ:POKEPX,N0
1500FR=FR-N1:POSITIONN4+FR*N2,22:?"";
1510IFFR>N0THEN110
1520GOSUB2200:POSITIONN1,N0:?SP$(N1,20);
1525POSITION5-INT(LOG(S+N1)/LOG(N10)/N2),N0:?"SCORE:";S;SP$(N1,N10);
1530?:?:FORA=N1TON5:IFS<=HS(A)THENNEXTA:GOTO1600
1540?"CONGRATULATIONS!YOURSCOREISTHE";RA$(A*N3-N2,A*N3);"HIGHESTSCORETODAY.":?:TRAP1520
1550?"PLEASEENTERYOURNAME,":?"(UPTOEIGHTCHARACTERSLONG).":?">";:INPUTA$
1560TRAPN0:A1$=SP$
1570IFA=N1THENA1$(N1,N8)=A$:A1$(N9,40)=HS$(N1,32):GOTO1590
1580A1$(N1,A*N8-N8)=HS$(N1,A*N8-N8):A1$(A*N8-N7,A*N8)=A$:IFA<>N5THENA1$(A*N8+N1,40)=HS$(A*N8-N7,32)
1590HS$=A1$:FORJ=N5TOA+N1STEP-N1:HS(J)=HS(J-N1):NEXTJ:HS(A)=S
1600GOSUB2200:POSITION14,N2:?""
1610FORJ=N1TON5:IFHS(J)>N0THENPOSITION11,N3+J:?J;".";HS(J);:POSITION21,N3+J:?HS$(J*N8-N7,J*N8)
1620NEXTJ
1630POSITIONN6,14:?"MOVEJOYSTICKTOEXITGAME,":?"ORPRESSBUTTONTOPLAYAGAIN."
1640IFSTICK(N0)<>15THEN1700
1650IFSTRIG(N0)=N1THEN1640
1660POSITIONN2,N0:?SP$(N1,20);:GOSUB2200:GOTO100
1700TRAP1600
1710POSITIONN4,17:?"AREYOUSUREYOUWISHTOEXIT";:INPUTA$
1720TRAPN0:IFA$(N1,N1)<>"Y"THEN1600
1730GRAPHICS0:STOP
2000READBYTE$:A1=ASC(BYTE$)-48:IFA1>N10THENA1=A1-N7
2010A2=ASC(BYTE$(N2,N2))-48:IFA2>10THENA2=A2-N7
2020A$=CHR$(A1*16+A2):RETURN
2100FORJ=N0TON3:A2=INT(A1/256):A3=A1-A2*256:POKEA,A2:POKEA+N1,A3
2120A=A+N3:A1=A1+80:NEXTJ:RETURN
2200COLOR32:FORJ=N1TO23:PLOTN1,J:DRAWTO39,J:NEXTJ:PLOTN0,N0:RETURN
2300POSITIONN2,N1:?"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrqqqqrrrqqqqrrrqqqqrrrqqqqrrrqqqqrrr"
2310FORJ=14TO18STEPN2:POSITIONN2,J:?"oooooooooooooooooooooooooo";:NEXTJ
2320POSITIONN2,21:?"abbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbc"
2330?"sst":?"deeeeeeeeeeeedeeeeeeeeeeeeeeeeeeeeeef";
2340POSITIONN4,22:?F$;F$;F$;F$;F$:FR=5
2350B=N1:S=N0:H=N0
2360GOSUB2500
2390RETURN
2400XP=14+INT(RND(N0)*N10):YP=20:FP=YP:GOSUB12030
2410POSITION17,22:?"rrrrrrrrrrrrrrrrrrrrq";:M=20:M2=INT(3.5+B/N2):M1=M2
2430RESTORE14000+B*100
2440COLOR26:FORJ=N3TO19STEPN2
2445IFJ<>11THENPLOTN0,J:DRAWTO39,J:READA$:A=37-LEN(A$):POSITIONN2+INT(RND(N0)*A),J:?A$;
2450POKESC+J*40+39,90:NEXTJ
2460SOUNDN3,50,N10,N10:FORJ=N1TON5:NEXTJ:SOUNDN3,N0,N0,N0
2480POSITIONN2,N0:PRINT"SCORE:";S;SP$(N1,20)
2490POKE77,N0:RETURN
2500RESTORE14900+B*N10
2520FORJ=N1TON8:READA:POKE1663+J*N3,A:NEXTJ
2530IFB=N1THENSP(N3)=N1:SP(N9)=-N1
2540IFB=N4THENSP(N9)=-N2
2550IFB=N5THENSP(N3)=N2
2590RETURN
10000N0=0:N1=1:N2=2:N3=3:N4=4:N5=5:N6=6:N7=7:N8=8:N9=9:N10=10
10010DIMBYTE$(2),MOVE$(200),A$(40),UP$(28),DOWN$(28),SP$(40),F$(N2),DEATH$(8),HS$(40),RA$(15),A1$(40)
10020DIMSP(24),UP(24),HS(5),S(24),S1(24)
10030SP$="":HS$=SP$:A1$=SP$
10040RESTORE
10050F$=CHR$(10):F$(N2,N2)=CHR$(11):DEATH$="ghijklmn":RA$="1ST2ND3RD4TH5TH"
10060PX=53248:MB=N5
10070FORJ=N1TO24:S(J)=N0:S1(J)=N1:NEXTJ:FORJ=N3TON9STEPN2:S(J)=N3+INT(J/N2):S1(J)=N8:NEXTJ
10080FORJ=13TO19STEPN2:S(J)=93+INT(J/N2):S1(J)=N2:NEXTJ
10100FORJ=N1TO24:SP(J)=N0:NEXTJ
10110SP(N3)=N1:SP(N5)=-N1:SP(7)=N1:SP(9)=-N1
10120FORJ=N4TO19:UP(J)=N2:NEXTJ:UP(20)=N1:UP(21)=N0:UP(N3)=N1
10130FORJ=N1TON5:HS(J)=N0:NEXTJ
10990RETURN
11000GRAPHICS21:POKE752,N1:C=N0:POKE87,N0
11010DL=PEEK(560)+PEEK(561)*256+N4
11020MEM=PEEK(DL)+PEEK(DL+1)*256+40
11030MH=INT(MEM/256):ML=MEM-MH*256
11040POKE559,N0:POKEDL-N1,198
11050POKEDL+N2,66:POKEDL+N3,ML
11060POKEDL+N4,MH
11070FORJ=N5TO26:POKEDL+J,N2:NEXTJ
11080POKEDL+12,130:POKEDL+15,130
11090POKEDL+22,130:POKEDL+27,65
11100POKEDL+28,PEEK(560)
11110POKEDL+29,PEEK(561)
11120READA:IFA=999THEN11140
11130POKE1744+C,A:C=C+N1:GOTO11120
11140POKE512,208:POKE513,N6
11150POKE1774,176:POKE1775,180
11160POKE1776,N0:POKE1777,144
11170POKE1778,N0:POKE54286,192
11180POKE559,34
11190DATA72,138,72,174,242,6,189,238,6,141,10,212,141,24,208,232
11200DATA224,4,144,2,162,0,138,141
11210DATA242,6,104,170,104,64,999
11220POKE710,0:POSITIONN2,N0:?"INITIALIZING..."
11990RETURN
12000A=PEEK(106)-N8:POKE54279,A:PM=256*A:POKE106,A:XP=-N10:POKE623,0
12020POKE559,46:POKE53277,N3
12025POKE704,24
12030FORI=PM+512TOPM+640:POKEI,N0:NEXTI
12040RESTORE12050:FORJ=PM+608TOPM+611:READA:POKEJ,A:NEXTJ
12050DATA8,93,62,93
12060POKEPX,47+XP*N4
12070RETURN
13000FORJ=N1TO171:GOSUB2000:MOVE$(J,J)=A$:NEXTJ
13010SC=PEEK(88)+PEEK(89)*256:A=1664
13020A1=SC+N2+40*N3:GOSUB2100
13030A1=SC+N2+40*13:GOSUB2100
13040POKEA,N0
13045DATAD8,A9,80,85,CD,A9,06,85,CE
13050DATA38,B0,3D,60,A0,00,B1,CB
13055DATA48,A2,25,C8,B1,CB,88,91
13060DATACB,C8,CA,D0,F6,68,A0,25
13065DATA91,CB,38,B0,27,A0,00,B1
13070DATACB,48,C8,B1,CB,48,A2,24
13075DATAC8,B1,CB,88,88,91,CB,C8
13080DATAC8,CA,D0,F4,68,A0,25,91
13085DATACB,68,88,91,CB,38,B0,04
13090DATAD8,68,C6,CD,E6,CD,A0,00
13095DATAB1,CD,F0,B7,85,CC,E6,CD
13100DATAB1,CD,85,CB,E6,CD,B1,CD,F0,0C
13105DATAC9,01,EA,F0,20,C9,02,EA
13110DATAF0,A0,D0,B7,A0,25,B1,CB
13115DATA48,A2,25,88,B1,CB,C8,91
13120DATACB,88,CA,D0,F6,68,A0,00
13125DATA91,CB,38,B0,C5,A0,25,B1
13130DATACB,48,88,B1,CB,48,A2,24
13140DATA88,B1,CB,C8,C8,91,CB,88,88,CA
13145DATAD0,F4,68,A0,00,91,CB,68
13150DATAC8,91,CB,38,B0,A2
13200FORJ=N1TO28:GOSUB2000:UP$(J,J)=A$:NEXTJ
13210DATA68,68,85,CC,68,85,CB,A2
13220DATA60,A0,00,C8,C8,C8,C8,B1
13230DATACB,88,88,88,88,91,CB,C8
13240DATACA,D0,F0,60
13300DOWN$=UP$
13310DOWN$(11,11)=CHR$(94):FORJ=12TO15:DOWN$(J,J)=CHR$(136):NEXTJ
13320FORJ=18TO21:DOWN$(J,J)=CHR$(200):NEXTJ:DOWN$(24,24)=CHR$(136)
13990RETURN
14100DATA
14110DATA
14120DATA
14130DATA
14140DATA
14150DATA
14160DATA
14170DATA
14200DATA
14210DATA
14220DATA
14230DATA
14240DATA
14250DATA
14260DATA
14270DATA
14300DATA
14310DATA
14320DATA
14330DATA
14340DATA
14350DATA
14360DATA
14370DATA
14400DATA
14410DATA
14420DATA
14430DATA
14440DATA
14450DATA
14460DATA
14470DATA
14500DATA
14510DATA
14520DATA
14530DATA
14540DATA
14550DATA
14560DATA
14570DATA
14910DATA0,2,0,2,0,2,0,2
14920DATA0,2,0,2,0,2,0,2
14930DATA0,2,0,2,0,3,0,2
14940DATA0,2,0,3,0,3,0,2
14950DATA1,2,0,3,0,3,1,2
15000POSITIONN2,N0:?"HOPPER";SP$(N1,9);
15010POSITION12,N2:?"AGAMEOFSKILL.":POSITIONN5,N5:?"MOVEJOYSTICKFORINSTRUCTIONS"
15020?"ORPRESSBUTTONTOSTARTGAME."
15030POSITIONN1,21:?"WRITTENBYRICHBOUCHARDANDALANZETT"
15050IFSTRIG(N0)=N0THENGOSUB2200:RETURN
15060IFSTICK(N0)=15THEN15050
15070GOSUB2200
15100POSITIONN2,N3:?"YOURMISSION:MOVEFROGSINTOBUNKERS":?:?
15110?"MOVEONTOLOGS"
15120?:?"AVOIDSNAKEHEADS,USEBODIES"
15130POSITIONN10,15:?"AVOIDCARS"
15140?:?"WATCHOUTFORFASTERCARS"
15150POSITIONN8,21:?"MOVEJOYSTICKTOCONTINUE"
15160IFSTICK(N0)=15THEN15160
15170GOSUB2200
15180POSITIONN2,N5:?"THEJOYSTICKISUSEDTOMOVETHEFROGS.ATIMEBARISDISPLAYEDAT"
15190?"THEBOTTOMOFTHESCREEN.WHENTHISRUNSOUT,YOURFROGEXPIRES."
15200POSITION16,13:?"SCORING":?:?"EACHFORWARDHOP:20":?"REACHINGABUNKER:250"
15210?"+BONUSFORREMAININGTIME":?"5FROGSREACHINGBUNKERS:2000"
15220POSITIONN7,21:?"PRESSBUTTONTOSTARTGAME"
15230IFSTRIG(N0)=N1THEN15230
15240GOSUB2200:RETURN
30000POKE106,PEEK(106)-5:START=(PEEK(106)+1)*256:POKE756,START/256:POKE752,1
30010DIMXFR$(38):XFR$="hji`"
30020Z=USR(ADR(XFR$)):RESTORE30100
30030READX:IFX=-1THENRESTORE:RETURN
30040FORY=0TO7:READZ:POKEX+Y+START,Z:NEXTY:GOTO30030
30100DATA512,0,0,0,127,127,127,20,20
30101DATA520,31,17,17,255,255,85,1,1
30102DATA528,0,0,192,252,250,252,64,64
30103DATA536,0,0,2,42,58,42,3,3
30104DATA544,168,136,136,170,170,170,128,128
30105DATA552,0,0,0,170,170,170,56,56
30106DATA560,10,34,168,168,168,168,34,10
30107DATA568,170,170,138,168,170,162,138,170
30108DATA576,170,170,42,168,170,162,138,170
30109DATA584,168,168,42,170,170,138,40,168
30110DATA592,1,17,17,5,5,5,17,17
30111DATA600,192,196,68,80,80,80,68,68
30112DATA608,42,42,168,170,170,162,40,42
30113DATA616,170,170,168,42,170,138,162,170
30114DATA624,170,170,162,42,170,138,162,170
30115DATA632,128,136,42,42,42,42,136,160
30116DATA640,248,220,252,28,24,48,103,254
30117DATA648,0,0,0,0,0,248,155,31
30118DATA656,0,0,0,0,0,31,217,248
30119DATA664,31,59,63,56,24,12,230,127
30120DATA672,0,0,0,85,170,170,10,10
30121DATA680,0,8,2,84,170,170,2,2
30122DATA688,0,0,0,160,168,168,128,128
30123DATA696,0,0,0,21,85,85,5,5
30124DATA704,0,16,64,42,85,85,0,0
30125DATA712,0,0,0,170,85,85,80,80
30126DATA720,0,0,0,0,0,0,0,0
30127DATA776,0,0,0,170,170,170,160,160
30128DATA784,0,0,0,170,170,170,0,0
30129DATA792,0,0,0,170,170,170,10,10
30130DATA800,160,160,170,170,170,0,0,0
30131DATA808,0,0,170,170,170,0,0,0
30132DATA816,10,10,170,170,170,0,0,0
30133DATA824,0,0,0,1,1,0,0,0
30134DATA832,0,0,0,128,128,0,0,0
30135DATA840,0,0,48,5,5,48,0,0
30136DATA848,0,0,48,64,64,48,0,0
30137DATA856,25,13,0,229,5,0,13,25
30138DATA864,140,152,0,92,64,0,152,140
30139DATA872,25,13,0,224,0,0,13,25
30140DATA880,140,152,0,28,0,0,152,140
30141DATA888,0,0,0,255,0,0,0,0
30142DATA896,170,170,170,170,170,170,170,170
30143DATA904,255,255,255,255,255,255,255,255
30144DATA912,85,85,85,85,85,85,85,85
30145DATA920,160,160,160,160,160,160,160,160
30146DATA928,10,10,10,10,10,10,10,10
30147DATA936,17,17,5,5,5,17,17,1
30148DATA944,68,68,80,80,80,68,196,192
30149DATA-1	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!