Random demo
Random game
Random demo
Entry name:
 Monkeys 
Publisher/Developer:

BELLCOM - Public Domain Library
(Software library)
  • Category:

    Games
  • Code:

    John Weber
  • Controllers:

    Joystick
  • Maximum players:

    1
  • Programming language:

    Atari BASIC
Monkeys Monkeys Monkeys Monkeys Monkeys Monkeys Monkeys Monkeys
Listing 1
10REMMONKEYS
20REMBYJOHNWEBER
30REMWRITTENFORANTICMAGAZINE
80GOSUB1050
100REM***MAINLOOP***
105ST=STICK(0):POKEMONK,1+64
110IFPEEK(MONK+20)=0THENPOKEMONK,0:MONK=MONK+20:POKEMONK,2+64
115NMONK=MONK+(ST=7)-(ST=11)
120IFSTRIG(0)=0THENNMONK=NMONK+1
125IFNMONK<SCTHEN100
130IFPEEK(NMONK)=0THENPOKEMONK,0:MONK=NMONK
135LOOK=PEEK(MONK+20)
145IFLOOK=5+128THENGOSUB200
150IFLOOK=199THENGOSUB800:GOTO100
155IFPEEK(MONK-20)=70THENGOSUB700
160IFLOOK<>0THEN185
165POKEMONK,0:MONK=MONK+20
170IFPEEK(MONK+20)<>68THEN185
175POKE53761,170:FORA=254TO253STEP-1:POKE53760,A:NEXTA:POKE53760,0:POKE53761,0
185IFRND(0)*10>8.5THENGOSUB400
190IFPEEK(SC+421)=5+128THENGOSUB500
195POSITION1,5:?#6;SCORE
198IFDROP=5THENGOSUB1000
199GOTO100
200REM***BOUNCEMONKEY***
201IFNOW=1THENGOSUB250:GOTO247
202POKE53761,170:FORA=A54TO253STEP-1:POKE53760,A:NEXTA:POKE53761,0:POKE53760,0
205IFPEEK(MONK+19)=0THENPOKEMONK+20,0:POKEMONK+19,5+128:GOTO215
210IFPEEK(MONK+21)=0THENPOKEMONK+20,0:POKEMONK+21,5+128
215IFPEEK(MONK-19)<>3+64THEN235
220POKEMONK-19,0:POKE53761,170:FORA=100TO75STEP-2:POKE53760,A:NEXTA:POKE53760,0:POKE53761,0
225CATCH=CATCH+1:SCORE=SCORE+1:GOSUB300
230IFCATCH=8THENGOSUB600
235IFNOW=1THENGOSUB250:GOTO247
240IFMONK-20<SCORPEEK(MONK-20)<>0THEN248
245POKEMONK,0:POKEMONK-20,2+64:MONK=MONK-20
247GOTO215
248IFHARD=2THENGOSUB550
249RETURN
250REM***STARTUPBOUNCING***
255SLOW=40
258FORA=20TOSLOWSTEP20
260POKEMONK,0:POKEMONK-20,2+64:MONK=MONK-20:POKEMONK,2+64:FORX=1TO5:NEXTX:NEXTA
270IFPEEK(MONK+20)=0THENPOKEMONK,0:MONK=MONK+20:POKEMONK,2+64:FORX=1TO5:NEXTX:GOTO270
280SLOW=SLOW+20:IFSLOW>200THENNOW=0:RETURN
282POKE53761,170:FORA=A54TO253STEP-1:POKE53760,A:NEXTA:POKE53761,0:POKE53760,0
285GOTO258
300REM***FINDWHICHBANANAHIT***
310X=0:FORI=SCTOSC+12:IFX=BXTHENY=1:GOTO330
320X=X+1:NEXTI
330IFPEEK(I+19)=2+64THEN360
340I=I+1:Y=Y+1:IFY>19THEN370
350GOTO330
360BAN$(Y,Y)=CHR$(0)
370RETURN
400REM***MOVEBANANAS***
410POSITIONBX,0:?#6;""
420IFWW=-1THEN440
430BX=BX+1:IFBX>11THENWW=-1:GOTO449
435GOTO449
440BX=BX-1:IFBX<1THENWW=1:GOTO430
449POSITIONBX,0:?#6;BAN$;:RETURN
500REM***BALLROLLOVER***
510FORI=SC+438TOSC+422STEP-1:IFPEEK(I)=0THENPOKEI,5+128:POKESC+421,0:RETURN
520NEXTI:RETURN
550REM***MOVEBALLSRANDOMLY***
560M=INT(RND(0)*9)+425:IFRND(0)*10>4THEN575
565IFPEEK(SC+M)=5+128ANDPEEK(SC+M-1)=0THENPOKESC+M,0:POKESC+M-1,5+128
570RETURN
575IFPEEK(SC+M)=5+128ANDPEEK(SC+M+1)=0THENPOKESC+M,0:POKESC+M+1,5+128
580RETURN
600REM***LOSEABALL***
610EXTRA=EXTRA+1:IFEXTRA=3THENGOSUB900:EXTRA=0:GOTO640
620FORI=SC+421TOSC+438:IFPEEK(I)=5+128THENPOKEI,0:GOTO640
630NEXTI
640FORI=1TO8:BAN$(I)=CHR$(3):NEXTI
650POSITION8,0:?#6;BAN$;:BX=8
660CATCH=0:LOST=0
662IFSCORE>150THENFORI=SC+181TOSC+221STEP40:POKEI,0:POKEI+20,0:NEXTI:RETURN
665IFHARD=1THENFORI=SC+181TOSC+221STEP40:POKEI,1+64:POKEI+20,4:NEXTI:RETURN
670POKESC+181,1+64:POKESC+201,4:POKESC+221,0:POKESC+241,0
680RETURN
700REM***FALL&CLIMBLADDER***
710FORI=SC+221TOSC+141STEP-40:IFPEEK(I)=1+64THENPOKEI+20,0:MONK=I:GOTO725
720NEXTI
725POKE53761,168:A=20:FORI=MONKTOSC+421STEP20:POKE53760,A:POKEI,0:POKEI+20,2+64:A=A+15
730FORX=1TO5:NEXTX:NEXTI
735POKESC+421,0:POKESC+441,7+192:POKE53760,0:POKE53761,0
740FORI=SC+400TOSC+60STEP-20
750POKEI,2+64:POKEI+20,6:FORA=1TO20:NEXTA:NEXTI:POKEI+20,6
760MONK=SC+41:NOW=1:RETURN
800REM***GETWASHEDAWAY***
810POKEMONK,0:MONK=MONK+20:POKEMONK,2+64
820POKE53761,138:FORI=MONKTOSC+440STEP-1:POKEI,2+64:POKEI+1,7+192:POKE53760,18:FORA=1TO20:NEXTA
830NEXTI:POKE53760,0:POKE53761,0:POKESC+440,7+192
840LOST=LOST+1
845IFSCORE>150ANDLOST=1THENPOP:GOTO4000
850IFHARD=1THENIFLOST=3THENPOP:GOTO4000
855IFHARD=2THENIFLOST=2THENPOP:GOTO4000
860GOSUB700:RETURN
900REM***EXTRABALL***
902IFSCORE=48THENBALL=2:HARD=2
905POKE77,0
910FORI=SC+258TOSC+98STEP-40
920IFPEEK(I)=8+128THENGOSUB940:GOTO932
930NEXTI
932IFX=-1THENX=0:RETURN
934IFBALL=2THENX=-1:GOTO910
935RETURN
940DROP=DROP+1:POKEI+20,0:POKE53761,168:FORA=0TO138STEP6:POKE53660,A
950POKE53761,170:FORA=0TO140STEP4:POKE53760,A
955IFPEEK(I+20)=0THENPOKEI+20,8+128:POKEI,0:I=I+20:NEXTA:GOTO950
960IFPEEK(I+20)=5+128THENPOKEI,0:I=SC+438:GOTO970
965IFI=SC+438THENPOKEI,0:POKEI,5+128:GOTO980
970FORA=ITOI-5STEP-1:IFPEEK(A)=0THENPOKEA,5+128:GOTO980
975NEXTA:GOTO950
980POKE53760,0:POKE53761,0:RETURN
1000REM***FRESHSUPPLYOFBALLS
1005DROP=0:IFA=-1THENRETURN
1010FORI=SC+98TOSC+258STEP40:POKEI,8+128:POKEI+20,4:POKE53761,170
1015FORX=250TO100STEP-15:POKE53760,X:NEXTX:POKE53760,0:POKE53761,0:FORA=1TO20:NEXTA:NEXTI
1018IFSCORE<100THENA=-1:RETURN
1020FORX=SC+438TOSC+435STEP-1:IFPEEK(X)=0THENPOKEX,5+128:A=-1:RETURN
1025NEXTX:RETURN
1050REM***ENTERLEVEL***
1055GRAPHICS0:?"":POKE712,72:POKE752,1:POKE710,0
1060POSITION15,2:?""
1065POSITION2,5:?"WHICHLEVELDOYOUWANTTOSTARTAT:":POSITION11,8:?"BEGINNERS(1)":POKE752,0
1070TRAP1070:POSITION8,10:?"ORADVANCED(2)";:INPUTHARD
1075IFHARD<1ORHARD>2THENGOTO1070
1080GRAPHICS0:?"RUNNING...."
2000REM***REDEFINECHARACTERSET
2005DIMAN$(1),BAN$(8),CH$(32):RESTORE2015:FORI=1TO32:READA:CH$(I)=CHR$(A):NEXTI
2015DATA104,104,133,204,104,133,203,104,133,206,104,133,205,162,4,160,0
2020DATA177,203,145,205,136,208,249,230,204,230,206,202,208,240,96
2025POKE106,PEEK(106)-5:GRAPHICS0:BEGIN=(PEEK(106)+1)*256:POKE756,BEGIN/256
2030A=USR(ADR(CH$),57344,BEGIN):RESTORE2080:FORI=BEGIN+8TOBEGIN+79:READA:POKEI,A:NEXTI
2050GRAPHICS17:POKE756,BEGIN/256:POKE712,200:POKE710,70:POKE709,28:POKE711,132:POKE708,18
2055SC=PEEK(88)+256*PEEK(89)
2060SCORE=0:BX=8:MONK=SC+43:LOST=0:CATCH=0:EXTRA=0:NOW=1:SLOW=0:BALL=0:DROP=0
2075REM***DATAFORNEWCHARACTERS
2080DATA195,163,38,46,46,47,46,63
2082DATA73,79,92,92,92,52,26,11
2084DATA128,64,96,96,96,96,64,128
2086DATA255,255,0,0,0,0,0,0
2088DATA0,0,0,0,24,60,126,126
2090DATA66,66,126,66,66,126,66,66
2092DATA124,83,170,80,170,85,83,255
2094DATA24,60,60,126,126,60,60,24
2096DATA255,100,255,100,255,100,255,100
3000REM***DRAWSCREEN
3010FORI=SC+61TOSC+63:POKEI,4:NEXTI:FORI=SC+427TOSC+435STEP2:POKEI,5+128:NEXTI
3020FORI=SC+79TOSC+449STEP20:POKEI,6:NEXTI:POKESC+78,4
3030FORI=SC+98TOSC+258STEP40:POKEI,8+128:POKEI+20,4:NEXTI
3040POKESC+181,1+64:POKESC+201,4
3045IFHARD=1THENPOKESC+221,1+64:POKESC+241,4
3050FORI=1TO8:BAN$(I)=CHR$(3):NEXTI:FORI=SC+60TOSC+420STEP20:POKEI,6:NEXTI
3055FORI=SC+440TOSC+459:POKEI,7+192:NEXTI
3060FORI=SC+460TOSC+479:POKEI,9:NEXTI:POSITIONBX,0:?#6;BAN$;
3099RETURN
4000REM***GAMEOVER***
4005FORX=1TO100:NEXTX
4010GRAPHICS0:?"":POKE710,100
4020POSITION5,5:?"YOURFINALSCOREWAS";SCORE;:POSITION5,10:?"DOYOUWANTTOPLAYAGAIN?";
4030TRAP4030:POSITION18,12:?"ENTERYORN";:INPUTAN$
4040IFAN$="Y"THENGOSUB2050:GOTO100
4050GRAPHICS0:END	

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!