Jump to content
IGNORED

Problem with type-in


Trooper

Recommended Posts

I've typed this game in for use on Atarimania.com. As you can see when you try to run it it hangs when you get caught by a "demon". I can't find the problem in the code so I thought I'd ask you guys to take a look at it:

 

I suspect the problem should be somewhere around here since line 3200 is where it jumps when you get snapped by a demon. I decided to include the rest for you also if I should be wrong and also attached a disk image for you to try it out and see the crap-out for yourselves :)

 

Thanks in advance for any assistance!!

 

/T

 

3200 LVS=LVS-1:IF Z=BANK OR Z=BANK+128 THEN 3500
3220 FOR Q=1 TO 10:SOUND 0,150,10,10:POSITION MX,MY:? CHR$(DEMON):POSITION MNX,MNY:? CHR$(MAN)
3230 FOR W=1 TO 10:NEXT W:SOUND 0,250,10,10:POSITION MX,MY:? CHR$(MAN):POSITION MNX,MNY:? CHR$(DEMON)
3240 FOR W=1 TO 10:NEXT W:NEXT Q:SOUND 0,0,0,0:GOTO 3050
3500 FOR Q=1 TO 10:SOUND 0,50,10,10:POSITION DX,DY:? CHR$(DEMON):POSITION DX(A),DY(A):? CHR$(BANK)
3510 FOR W=1 TO 10:NEXT W:SOUND 0,150,10,10:POSITION DX,DY:? CHR$(BANK):POSITION DX(A),DY(A):? CHR$(DEMON)
3520 FOR W=1 TO 10:NEXT W:NEXT Q:SOUND 0,0,0,0

 

 

0 REM ******************
1 REM **			  **
2 REM ** THE GOLD RUN **
3 REM **	 -by-	 **
4 REM **  David Ryan  **
5 REM **			  **
6 REM **  N. IRELAND  **
7 REM **   20/08/83   **
8 REM **			  **
9 REM ******************
10 GRAPHICS 0:TOT=0:LVS=3:GOSUB 32000:POKE 752,1:SETCOLOR 3,0,15
20 SETCOLOR 0,2,10:SETCOLOR 1,12,14:SETCOLOR 2,8,2:SETCOLOR 4,2,6
100 REM SET UP VARIABLES
110 DIM DX(3),DY(3):L=1:HOME=0:BARS=5
120 MAN=33:CACTUS=34:DEMON=35:BANK=36:GOLD=37:HI=0
200 REM SET UP DISPLAY
210 FOR A=1 TO 3:DX(A)=0:DY(A)=0:NEXT A
220 REM CACTUS
230 FOR A=1 TO 225-L*25:CX=INT(RND(0)*38)+1:CY=INT(RND(0)*21)+1:LOCATE CX,CY,Z:IF Z<>32 THEN 250
240 SOUND 0,100,10,10:POSITION CX,CY:? CHR$(CACTUS):SOUND 0,0,0,0
250 NEXT A
260 REM BANK
270 BX=INT(RND(0)*38)+1:BY=INT(RND(0)*2)+19:LOCATE BX,BY,Z:IF Z<>32 THEN 270
280 FOR E=1 TO 200 STEP 10:SOUND 0,E,10,10:POSITION BX,BY:? CHR$(BANK):NEXT E:SOUND 0,0,0,0
290 REM MAN
300 MX=INT(RND(0)*38)+1:MY=INT(RND(0)*6)+1:LOCATE MX,MY,Z:IF Z<>32 THEN 300
310 FOR E=200 TO 1 STEP -10:SOUND 0,E,10,10:POSITION MX,MY:? CHR$(MAN):NEXT E:SOUND 0,0,0,0
320 REM DEMONS
330 MAX=2-INT(L/4):IF MAX<1 THEN MAX=1
340 FOR A=1 TO MAX
350 DX(A)=INT(RND(0)*38)+1:DY(A)=INT(RND(0)*11)+10:LOCATE DX(A),DY(A),Z:IF Z<>32 THEN 350
360 POSITION DX(A),DY(A):? CHR$(DEMON)
370 FOR Q=15 TO 0 STEP -1:SOUND 0,Q,10,Q:SOUND 0,Q,8,Q:NEXT Q:SOUND 0,0,0,0
380 POSITION DX(A),DY(A):? CHR$(DEMON):SOUND 0,0,0,0:NEXT A
390 REM GOLD
400 FOR A=1 TO BARS
410 GX=INT(RND(0)*38)+1:GY=INT(RND(0)*21)+1:LOCATE GX,GY,Z:IF Z<>32 THEN 410
420 FOR E=1 TO 250 STEP 20:SOUND 0,E,12,10:POSITION GX,GY:? CHR$(GOLD):NEXT E:SOUND 0,0,0,0:NEXT A
430 POKE 87,1:POSITION 0,1:? #6;CHR$(156):POSITION 0,1:? #6;"_PRESS_FIRE___HI:   ":POSITION 17,1:? #6;HI
440 IF STRIG(0)=0 THEN POSITION 0,1:? #6;CHR$(156):GOSUB 32540:GOTO 500
450 GOTO 440
500 REM MAN MOVEMENT
510 POKE 77,0:POKE 764,255:GOSUB 1000:IF STRIG(0)=0 THEN 7000
515 IF PEEK(764)<>255 THEN POKE 764,255:GOTO 6000
520 JS=STICK(0):IF JS<>14 AND JS<>11 AND JS<>13 AND JS<>7 THEN 500
530 MNX=MX+(JS=7)-(JS=11):MNY=MY+(JS=13)-(JS=14)
532 IF MNX<1 THEN MNX=38
534 IF MNX>38 THEN MNX=1
536 IF MNY>21 THEN MNY=1
538 IF MNY<1 THEN MNY=21
540 LOCATE MNX,MNY,Z
550 IF Z=DEMON OR Z=DEMON+128 THEN 3200:REM END OF GAME
560 IF Z=CACTUR OR Z=CACTUS+128 THEN 4000:REM REM MOVE CACTUS
570 IF Z=BANK OR Z=BANK+128 THEN FOR E=15 TO 0 STEP -1:SOUND 0,10,8,E:MNX=MX:MNY=MY:NEXT E:SOUND 0,0,0,0:GOTO 500
580 IF Z=GOLD OR Z=GOLD+128 THEN 5000:REM MOVE GOLD
590 SOUND 0,10,10,10:POSITION MNX,MNY:? CHR$(MAN):POSITION MX,MY:? " ":MX=MNX:MY=MNY:SOUND 0,0,0,0
600 POSITION BX,BY:? CHR$(BANK):GOTO 500
1000 REM DEMON MOVEMENT
1010 FOR A=1 TO MAX
1020 IF DX(A)>MX THEN DX=DX(A)-1
1030 IF DX(A)<MX THEN DX=DX(A)+1
1040 IF DY(A)<MY THEN DY=DY(A)+1
1050 IF DY(A)>MY THEN DY=DY(A)-1
1060 LOCATE DX,DY,Z
1070 IF Z=CACTUS OR Z=CACTUS+128 THEN 2000
1080 IF Z=BANK OR Z=BANK+128 THEN 3000:REM END OF GAME
1090 IF Z=GOLD OR Z=GOLD+128 THEN DX=DX(A):DY=DY(A)
1100 IF Z=MAN OR Z=MAN+128 THEN 3000:REM END OF GAME
1110 IF Z=DEMON OR Z=DEMON+128 THEN 2000
1120 IF DX(A)=DX AND DY(A)=DY THEN 1140
1130 POSITION DX,DY:? CHR$(DEMON):POSITION DX(A),DY(A):? " ":DX(A)=DX:DY(A)=DY
1140 NEXT A:RETURN 
2000 REM DEMON BUMPS INTO CACTII
2010 RESTORE 2990:FOR W=1 TO INT(RND(0)*8)+1:READ QX,QY:NEXT W
2020 DQX=DX(A)+QX:DQY=DY(A)+QY
2030 IF DQX<1 THEN DQX=1
2040 IF DQX>38 THEN DQX=38
2050 IF DQY<1 THEN DQY=1
2060 IF DQY>21 THEN DQY=21
2070 LOCATE DQX,DQY,Z
2080 IF Z=BANK OR Z=BANK+128 THEN 3000:REM END OF GAME
2090 IF Z=GOLD OR Z=GOLD+128 OR Z=DEMON OR Z=DEMON+128 THEN 1140
2100 IF Z=MAN OR Z=MAN+128 THEN 3000:REM END OF GAME
2110 IF Z=CACTUS OR Z=CACTUS+128 THEN 1140
2120 DX=DQX:DY=DQY:GOTO 1130
2990 DATA -1,-1,0,-1,1,-1,-1,0,1,0,-1,1,0,1,1,1
3000 REM END OF GAME
3010 LVS=LVS-1:IF Z=BANK OR Z=BANK+128 THEN 3500
3020 FOR Q=1 TO 10:SOUND 0,150,10,10:POSITION DX,DY:? CHR$(DEMON):POSITION DX(A),DY(A):? CHR$(MAN)
3030 FOR W=1 TO 10:NEXT W:SOUND 0,250,10,10:POSITION DX,DY:? CHR$(MAN):POSITION DX(A),DY(A):? CHR$(DEMON)
3040 FOR W=1 TO 10:NEXT W:NEXT Q:SOUND 0,0,0,0
3050 FOR Q=250 TO 0 STEP -10:POKE 87,1:POSITION 13,1:? #6;"lives:";LVS:SOUND 0,Q,10,10:SOUND 1,Q,8,10
3060 POSITION 13,1:? #6;"	  ":SOUND 0,Q,10,10:SOUND 1,0,0,0
3070 IF LVS=0 THEN 3750
3080 BARS=BARS-HOME:POSITION 0,0:GOSUB 32540:POSITION MX,MY:? " "
3090 MX=INT(RND(0)*38)+1:MY=INT(RND(0)*6)+1:LOCATE MX,MY,X:IF Z<>32 THEN 3090
3100 FOR E=200 TO 1 STEP -10:SOUND 0,E,10,10:POSITION MX,MY:? CHR$(MAN):NEXT E:SOUND 0,0,0,0
3110 POSITION MNX,MNY:? " ":POSITION DX,DY:? " ":POSITION BX,BY:? CHR$(BANK):GOTO 430
3200 LVS=LVS-1:IF Z=BANK OR Z=BANK+128 THEN 3500
3220 FOR Q=1 TO 10:SOUND 0,150,10,10:POSITION MX,MY:? CHR$(DEMON):POSITION MNX,MNY:? CHR$(MAN)
3230 FOR W=1 TO 10:NEXT W:SOUND 0,250,10,10:POSITION MX,MY:? CHR$(MAN):POSITION MNX,MNY:? CHR$(DEMON)
3240 FOR W=1 TO 10:NEXT W:NEXT Q:SOUND 0,0,0,0:GOTO 3050
3500 FOR Q=1 TO 10:SOUND 0,50,10,10:POSITION DX,DY:? CHR$(DEMON):POSITION DX(A),DY(A):? CHR$(BANK)
3510 FOR W=1 TO 10:NEXT W:SOUND 0,150,10,10:POSITION DX,DY:? CHR$(BANK):POSITION DX(A),DY(A):? CHR$(DEMON)
3520 FOR W=1 TO 10:NEXT W:NEXT Q:SOUND 0,0,0,0
3530 GOTO 3050
3750 REM NEW GAME ?
3760 POKE 87,1:POSITION 0,0:? #6;"	game over  ":POSITION 0,1:? #6;" ANOTHER GO ? (Y/N)"
3770 POKE 764,255
3780 PZ=PEEK(764)
3790 IF PZ=43 THEN 3820
3800 IF PZ=35 THEN NEW 
3810 GOTO 3780
3820 LVS=3:L=1:HOME=0:BARS=5:POKE 764,255:? #6;CHR$(125):POKE 559,0:GOSUB 32400
3830 SETCOLOR 0,2,10:SETCOLOR 1,12,14:SETCOLOR 2,8,2:SETCOLOR 4,2,6
3840 IF TOT>HI THEN HI=TOT
3850 TOT=0:GOTO 200
4000 REM MOVE CACTUS
4010 CX=MNX:CY=MNY
4020 CNY=CY-(JS=14)+(JS=13):CNX=CX+(JS=7)-(JS=11)
4030 IF CNX<1 THEN CNX=38
4040 IF CNX>38 THEN CNX=1
4050 IF CNY<1 THEN CNY=21
4060 IF CNY>21 THEN CNY=1
4070 LOCATE CNX,CNY,Z
4080 IF Z<>32 THEN MNX=MX:MNY=MY:FOR E=15 TO 0 STEP -1:SOUND 0,150,10,E:SOUND 1,10,8,E:NEXT E:GOTO 500
4090 POSITION CNX,CNY:? CHR$(CACTUS):GOTO 590
5000 REM MOVE GOLD
5010 GX=MNX:GY=MNY
5020 GNY=GY-(JS=14)+(JS=13):GNX=GX+(JS=7)-(JS=11)
5030 IF GNX<1 THEN GNX=38
5040 IF GNX>38 THEN GNX=1
5050 IF GNY<1 THEN GNY=21
5060 IF GNY>21 THEN GNY=1
5070 LOCATE GNX,GNY,Z
5080 IF Z=BANK OR Z=BAN+128 THEN 5200
5090 IF Z<>32 THEN MNX=MX:MNY=MY:FOR E=15 TO 0 STEP -1:SOUND 0,150,10,E:SOUND 1,10,8,E:NEXT E:GOTO 500
5100 POSITION GNX,GNY:? CHR$(GOLD):GOTO 590
5200 FOR Q=1 TO 3:FOR W=1 TO 250 STEP 20:SOUND 0,W,10,10:SOUND 1,W,8,10:NEXT W:NEXT Q
5210 FOR W=15 TO 0 STEP -1:SOUND 0,50,10,W:SOUND 1,50,12,W:NEXT W:SOUND 0,0,0,0:SOUND 1,0,0,0:HOME=HOME+1
5220 TOT=TOT+1:IF HOME=5 THEN HOME=0:GOTO 6000:REM NEW LEVEL
5230 POKE 87,1:POSITION 0,1:? #6;"bars home:";TOT:POKE 87,0
5240 GNX=GX:GNY=GY:GOTO 590
6000 REM NEW LEVEL
6010 FOR R=1 TO 2:FOR S=1 TO 4:FOR E=15 TO 0 STEP -2:SOUND 0,(250/R)/S,10,E:SOUND 1,(50)*S,10,E-1
6020 NEXT E:NEXT S:NEXT R:SOUND 0,0,0,0:SOUND 1,0,0,0
6030 POKE 87,1:POSITION 0,0:? #6;CHR$(156):POSITION 0,0:? #6;"   A NEW  LEVEL":FOR Q=1 TO 1000:NEXT Q
6040 L=L+1:BARS=5
6050 ? #6;CH$(125):GOSUB 32540
6060 SETCOLOR 0,2,10:SETCOLOR 1,12,14:SETCOLOR 2,8,2:SETCOLOR 4,2,6:GOTO 200
7000 REM CUT DOWN CACTUS
7010 RESTORE 2990:FOR Q=1 TO INT(RND(0)*8)+1:READ CX,CY:NEXT Q:CX=MX+CX:CY=MY+CY
7015 IF CX<1 OR CX>38 OR CY<1 OR CY>21 THEN 500
7020 LOCATE CX,CY,Z
7030 IF Z=CACTUS OR Z=CACTUS=128 THEN 7050
7040 FOR E=15 TO 0 STEP -1:SOUND 0,100,12,E:NEXT E:SOUND 0,0,0,0:GOTO 500
7050 FOR Q=100 TO 0 STEP -5:SOUND 0,Q,6,10:SOUND 1,Q,8,10:POSITION CX,CY:? " ":POSITION CX,CY:? CHR$(CACTUS)
7060 NEXT Q:POSITION CX,CY:? " ":SOUND 0,0,0,0:SOUND 1,0,0,0:GOTO 500
31999 REM REDEFINE CHARACTER SET
32000 POKE 106,PEEK(106)-5:GRAPHICS 0:ST=(PEEK(106)+1)*256:POKE 751,1:POKE 756,ST/256
32010 DIM XFR$(38):RESTORE 32050:FOR A=1 TO 38:READ C:XFR$(A,A)=CHR$(C):NEXT A
32020 Z=USR(ADR(XFR$)):RESTORE 32100
32030 READ X:IF X=-1 THEN RESTORE :GOTO 32400
32040 FOR Y=0 TO 7:READ Z:POKE Y+X+ST,Z:NEXT Y:GOTO 32030
32050 DATA 104,169,0,133,203,133,205,169,224,133,206,165,106,24,105,1,133,204,160,0,177,205,145,203,200,208,249
32060 DATA 230,204,230,206,165,206,201,228,208,237,96
32090 REM MAN
32100 DATA 8,48,32,48,48,184,48,48,204
32110 REM CACTUS
32120 DATA 16,0,32,34,34,42,32,32,32
32130 REM DEMON
32140 DATA 24,0,60,235,215,215,60,0,0
32150 REM BANK
32160 DATA 32,0,64,255,255,150,150,150,150
32170 REM GOLD
32180 DATA 40,102,102,102,102,102,102,102,102,-1
32400 REM SET UP KEY DISPLAY LIST
32410 RESTORE 32495
32420 FOR A=1536 TO 2000:READ D:IF D=-1 THEN 32435
32430 POKE A,D:NEXT A
32435 POKE 559,0:POKE 1540,PEEK(88):POKE 1541,PEEK(89):POKE 560,0:POKE 561,6:POKE 559,34
32440 SETCOLOR 0,2,10:SETCOLOR 1,12,14:SETCOLOR 2,8,2:SETCOLOR 4,2,6
32442 POKE 87,2:POSITION 5,0:? #6;"THE KEY":POSITION 5,1:? #6;"---  ---"
32444 POKE 87,1:POSITION 4,3:? #6;"the MAN is":POKE 87,0:POSITION 19,2:? CHR$(33)
32446 POKE 87,1:POSITION 4,7:? #6;"a DEMON is":POKE 87,0:POSITION 19,4:? CHR$(35)
32448 POKE 87,1:POSITION 4,11:? #6;"a CACTUS is":POKE 87,0:POSITION 19,6:? CHR$(34)
32450 POKE 87,1:POSITION 4,15:? #6;"the BANK is":POKE 87,0:POSITION 19,8:? CHR$(36)
32452 POKE 87,1:POSITION 3,19:? #6;"a GOLD BAR is":POKE 87,0:POSITION 19,10:? CHR$(37)
32460 POSITION 0,0:FOR A=1 TO 11:? #6;" ":NEXT A
32470 ? #6;"  HIT any KEY":POKE 764,255
32480 FOR A=1 TO 255:SOUND 0,A,10,10:SOUND 1,255-A,12,10:SOUND 2,A/10,8,10
32485 SETCOLOR 4,INT(RND(0)*16),INT(RND(0)*16)+1:IF PEEK(764)=255 THEN NEXT A:GOTO 32480
32490 SOUND 0,0,0,0:SOUND 1,0,0,0:SOUND 2,0,0,0:POKE 764,255:? CHR$(125):POKE 559,0
32495 DATA 112,112,112,71,0,0,7,6,6,4,6,6,4,6,6,4,6,6,4,6,6,4,7,7,4,65,0,0,-1
32500 REM SET UP GAME DISPLAY LIST
32510 RESTORE 32600:FOR A=1536 TO 2000:READ D:IF D=-1 THEN 32530
32520 POKE A,D:NEXT A
32530 POKE 559,0:POKE 1540,PEEK(88):POKE 1541,PEEK(89):POKE 560,0:POKE 561,6:POKE 559,34
32540 POKE 87,1:POSITION 4,0:? #6;"the gold run":POSITION 0,1:? #6;"bars home";TOT
32550 POSITION 13,1:? #6;"lives:";LVS:POKE 87,0:RETURN 
32600 DATA 112,112,112,70,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,65,0,6,-1

goldrun.zip

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...