Home » Personal collection » Commodore disks » disk64c_odus_eclipse.d64 » worm of bemer
worm of bemer
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Personal collection » Commodore disks » disk64c_odus_eclipse.d64 |
| Filename: | worm of bemer |
| Read OK: | ✔ |
| File size: | 1802 bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
File contents
0 REM--COMPUTE--APRIL ISSUE--WORM OF BEMER--PROG PAGE 74
1 POKE52,48:POKE56,48:CLR
2 POKE53270,PEEK(53270)AND15
5 POKE53280,0:POKE53281,0
10 GOTO5000
100 S=PEEK(56320)AND15:FORD=1TOSP:NEXT
110 IFS=7ORS=6ORS=5THENDX=1:DY=0:DI=1:IFOD=2THENDX=-1:DY=0:DI=2
120 IFS=11ORS=10ORS=9THENDX=-1:DY=0:DI=2:IFOD=1THENDX=1:DY=0:DI=1
130 IFS=14THENDY=-1:DX=0:DI=4:IFOD=3THENDI=3:DY=1:DX=0
140 IFS=13THENDY=1:DX=0:DI=3:IFOD=4THENDI=4:DY=-1:DX=0
145 PO=1024+XA+YA*40:OD=DI:POKEPO,42:POKEPO+SO,L1
150 XA=XA+DX:YA=YA+DY:L=LEN(XA$):XA$=XA$+CHR$(XA):YA$=YA$+CHR$(YA)
155 Z=PEEK(1024+XA+YA*40):IFZ<>32THEN200
161 POKESO+1,40:POKESO+4,17
162 PO=1024+XA+YA*40:POKEPO,42:POKEPO+SO,10:POKESO+4,16:IFL<WOTHEN100
190 PO=1024+ASC(XA$)+40*ASC(YA$):LL=LEN(XA$)-1:XA$=RIGHT$(XA$,LL)
191 POKEPO,32:POKEPO+SO,0
195 YA$=RIGHT$(YA$,LL):GOTO100
200 POKESO+1,20:POKESO+4,17:POKESO+4,16
201 PO=1024+XA+40*YA:POKEPO,42:POKEPO+SO,10:GOSUB6600:IFZ<>BUTHEN260
210 WO=WO+15+3*LO:IFWO>240THENWO=240
220 XX=INT(RND(1)*36+2):X=INT(RND(1)*18+3):IFPEEK(1024+XX+40*X)<>32THEN220
221 SC=SC+100+LO*7:POKESO+4,55:POKESO+4,17
225 HI=HI-1:GOSUB6600:IFHI>0THEN229
226 PO=1024+20+40*2:POKEPO,160:POKEPO+SO,0:PO=1024+20+21*40:POKEPO,160
227 POKEPO+SO,0:PO=1024+40*12:POKEPO,160:POKEPO+SO,0:POKESO+1,100:POKESO+4,17
228 PO=1024+40*12+39:POKEPO,160:POKEPO+SO,0:GOTO100
229 PO=1024+XX+X*40:POKEPO,BUG:POKEPO+SO,13
230 GOTO100
260 IFZ<>160ANDLI>1THENGOSUB7500:GOTO290
265 IFZ<>160THEN7500
270 POKESO+1,90:POKESO+4,17
271 GOSUB7000:PRINT"<home><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down>"
275 FORDE=1TO24:PRINT:POKESO+1,DEL:POKESO+4,17:NEXT:POKESO+4,16
280 LO=LO+1:WO=5:IFLO=12THEN1200
281 L1=L1+1:IFL1>15THENL1=11
285 IFLO>EXTHENGOSUB9100
287 PRINT"<clr>":GOSUB4100
290 GOSUB6600
300 ONLO GOTO5020,400,500,550,600,700,800,450,550,1000,1100,1200
399 GOTO5015
400 REM SECOND SCREEN
410 FORI=1024+5+10*40TO1024+35+10*40:POKEI,35:POKEI+SO,9:NEXT
420 GOTO5020
450 REM SCREEN
460 FORI=1024+5+10*40TO1024+35+10*40:POKEI,35:POKEI+SO,9:NEXT
465 FORI=1024+18+5*40TO1024+18+20*40STEP40:POKEI,35:POKEI+SO,9:NEXT
470 GOTO5020
500 REM THE FOURTH SCREEN
510 FORI=1024+5+5*40TO1024+35+5*40:POKEI,35:POKEI+SO,9:NEXT
520 FORI=1024+5+18*40TO1024+35+18*40:POKEI,35:POKEI+SO,9:NEXT
530 GOTO5020
550 REM FRAME 5
560 FORI=1024+7+6*40TO1024+33+6*40:POKEI,35:POKEI+SO,9:NEXT
575 FORI=1024+18+7*40TO1024+18+20*40STEP40:POKEI,35:POKEI+SO,9:NEXT
580 GOTO5020
600 REM FRAME 6
610 FORI=1024+1+10*40TO1024+18+10*40:POKEI,35:POKEI+SO,9:NEXT
615 FORI=1024+22+10*40TO1024+38+10*40:POKEI,35:POKEI+SO,9:NEXT
620 GOTO5020
700 REM FRAME 7
710 FORJ=6TO14:FORI=1024+6+J*40TO1024+12+J*40:POKEI,35:POKEI+SO,9:NEXT
715 FORI=1024+20+J*40TO1024+32+J*40:POKEI,35:POKEI+SO,9:NEXT:NEXT
720 GOTO5020
800 REM FRAME 8
811 FORI=1024+1+8*40TO1024+18+8*40:POKEI,35:POKEI+SO,9:NEXT
812 FORI=1024+1+15*40TO1024+18+15*40:POKEI,35:POKEI+SO,9:NEXT
813 FORI=1024+15+12*40TO1024+38+12*40:POKEI,35:POKEI+SO,9:NEXT
890 GOTO5020
1000 FORJ=4TO19:FORI=1024+1+J*40TO1024+37+J*40:POKEI,35:POKEI+SO,9:NEXT:NEXT
1005 FORJ=4TO19:FORI=1024+1+J*40TO1024+22+J*40:POKEI,32:POKEI+SO,9:NEXT:NEXT
1010 GOTO5020
1100 FORJ=4TO19:FORI=1024+1+J*40TO1024+37+J*40:POKEI,35:POKEI+SO,9:NEXT:NEXT
1105 FORJ=4TO19:FORI=1024+1+J*40TO1024+30+J*40:POKEI,32:POKEI+SO,9:NEXT:NEXT
1110 GOTO400
1200 REM YOU WIN
1205 FORZZ=1TO3
1210 PRINT"<clr><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>NERM'S HOME"
1212 PRINT"<cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>THANK YOU"
1215 FORG=1TO5
1220 FORI=1TO10
1229 POKESO+1,I+6:POKESO+4,17
1240 NEXT:NEXT
1245 FORI=1TO200:POKESO+1,I:POKESO+4,17:NEXT
1250 NEXT:GOTO7700
4100 FORI=56216TO56295:POKEI,L1:POKEI-SO,36:NEXT:RETURN
5000 REM UP THE GAME
5005 GOSUB10000:GOSUB11100:BUG=33
5011 SP=35:LI=4:SC=0:LO=1:GOSUB5500:HI=5:WO=5:EX=2:L1=11
5012 POKE53270,PEEK(53270)OR16
5015 PRINT"<clr>":GOSUB6500
5020 XA$="":YA$="":XB$="":YB$="":XA=20:YA=19:DX=0
5021 IFLO=3THENYA=18
5025 DY=-1:T=0:IFHI<0THENHI=0
5030 DI=4:IFHI>5THENHI=5
5050 FORI=1024+40*2TO1024+39+40*2:POKEI,35:POKEI+19*40,35:POKEI+SO,9
5051 POKEI+SO+19*40,9:NEXT
5055 FORI=1024+40*2TO1024+40*20STEP40:POKEI,35:POKEI+39,35:POKEI+SO,9
5056 POKEI+SO+39,9:NEXT:IFHI>0THEN5060
5057 I=1024+20+40*2:POKEI,160:POKEI+SO,0:I=1024+20+21*40:POKEI,160:POKEI+SO,0
5058 POKE1024+12*40,160:POKE1024+12*40+SO,0
5059 POKE1024+12*40+39,160:POKE1024+12*40+SO+39,0:GOSUB4100:GOTO150
5060 XX=RND(1)*36+2:X=RND(1)*18+3:IFPEEK(1024+XX+X*40)<>32THEN5060
5065 POKE1024+XX+X*40,BU:POKE1024+XX+X*40+SO,13
5070 GOSUB4100
5085 GOTO150
5500 PRINT"<clr>"
5510 PRINT"<cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>GET READY"
5540 FORX=1TO14:POKESO+1,NN(X):POKESO+4,17:FORD=1TO120:NEXT:NEXT
5545 POKESO+4,16
5550 RETURN
6500 REM REDEFINING SCREEN
6510 POKESO+4,16
6575 GOSUB6600
6580 RETURN
6600 REM PRINT SCORE
6605 PRINT"<yellow><home>SCORE ";SC
6606 PRINT"<home><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>ROOM ";LO
6610 PRINT"MUSHROOMS ";HI;" LIVES ";LI
6620 RETURN
7000 REM CLEAN UP THE CENTIPEDE
7002 SP=SP-5
7004 GOSUB 6600:HI=5
7005 L=LEN(XA$)
7010 FORI=1TOL-1
7020 POKESO+1,I:POKESO+4,17:FORQQ=1TO10:NEXT
7190 PO=1024+ASC(XA$)+40*ASC(YA$):LL=LEN(XA$)-1:XA$=RIGHT$(XA$,LL)
7195 YA$=RIGHT$(YA$,LL):POKEPO,32:POKEPO+SO,1
7200 NEXT:POKESO+4,16
7210 RETURN
7500 REM OOPS
7510 PRINT"<clr><purple>"
7515 SP=SP-5
7520 PRINT"<cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>OOPS"
7521 LI=LI-1
7525 FORDE=1TO20:NEXT
7530 FORDE=1TO10:POKESO+1,DE*20:POKESO+4,17:FORQQ=1TO10:NEXT:NEXT:POKESO+4,16
7550 FORDE=1TO20:NEXT
7560 IFLI<1THEN7700
7599 PRINT"<clr>":RETURN
7700 REM THE GAMES OVER
7705 POKESO+4,16
7710 PRINT"<clr>":POKE53270,PEEK(53270)AND15
7715 IF SC>HSTHENHS=SC:GOSUB9000:PRINT" <clr><light gray>"
7718 PRINT"<cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>NERM"
7720 PRINT"<yellow><cursor down><cursor down><cursor down><cursor down>YOUR SCORE ";SC
7730 PRINT"<light green><cursor down><cursor down><cursor down><cursor down>HIGH SCORE ";HS
7735 GOSUB7800
7736 PRINT"<white><cursor down><cursor down>PRESS THE TRIGGER TO PLAY AGAIN, Q=QUIT"
7740 FORX=1TO15:POKESO+1,PN(X):POKESO+4,17:FORD=1TO100:NEXT:NEXT
7745 POKESO+4,16
7780 S=PEEK(56320)AND16:IFS=0THEN5011
7783 IFPEEK(197)=62THENPOKE198,0:SYS2048
7785 GOTO7780
7800 REM RANK THE GAMER
7810 PRINT"<cyan><cursor down><cursor down> YOUR NEW RANK IS ";
7820 IFLO=1THENPRINT"ZERO"
7830 IFLO=2THENPRINT"ROOKIE"
7840 IFLO=3THENPRINT"NOVICE"
7850 IFLO=4THENPRINT"AVERAGE"
7860 IFLO=5THENPRINT"MASTER"
7870 IFLO=6THENPRINT"GRAND MASTER"
7880 IFLO=7THENPRINT"WIZARD"
7890 IFLO=8THENPRINT"GRAND WIZARD"
7900 IFLO=9THENPRINT"SUPER STAR"
7910 IFLO>9THENPRINT"HALL OF FAME"
7920 RETURN
9000 REM NEW HIGH SCORE
9002 PRINT"<clr>"
9003 PRINT"<cyan><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>NEW HIGH"
9004 PRINT"<cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>SCORE"
9005 FORY=1TO3
9010 FORN=1TO5
9020 FORD=1TO5:POKESO+1,D*20:POKESO+4,17:NEXT
9030 POKESO+1,N*30:POKESO+4,17
9050 NEXT
9060 NEXT
9065 FORD=1TO30:NEXT
9070 RETURN
9100 REM EXTRA LIFE
9110 PRINT"<clr>"
9115 PRINT"<cyan><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>BONUS LIFE"
9120 FORJ=100TO200
9140 POKESO+1,J:POKESO+4,17
9150 NEXT
9160 POKESO+4,16
9170 EX=EX+3
9180 LI=LI+1
9190 RETURN
10000 DIM PN(15),NN(18):PRINT"<clr><light gray>"
10005 SO=54272:POKESO+24,15:POKESO+5,17:POKESO+6,241:POKESO,100
10010 PRINT"<cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>WELCOME TO"
10020 PRINT"<cyan><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right> WORM OF BEMER"
10025 PRINT"<orange><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>USE JOYSTICK #2"
10030 PRINT"<light green><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>HIT TRIGGER TO START"
10045 S=PEEK(56320)AND16:IFS=0THENRETURN
10060 GOTO10045
11100 PRINT"<clr><cyan><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right><cursor right>REDEFINING CHARACTERS"
11109 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251
11110 FORI=12288TO12288+64*8:POKEI,PEEK(I+40960):NEXTI
11120 POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1
11180 FORI=0TO39:READA:POKE12288+I+32*8,A:NEXT
11185 FORI=0TO7:READA:POKE12288+I+42*8,A:NEXT
11190 POKE53272,(PEEK(53272)AND240)+12
11200 FORI=1TO18:READNN(I):NEXT
11210 FORI=1TO15:READPN(I):NEXT
11240 DATA 0,0,0,0,0,0,0,0
11250 DATA 0,20,85,85,255,40,40,0
11260 DATA 85,85,85,85,85,85,85,85
11261 DATA 170,190,190,190,190,190,170,170
11262 DATA 255,255,255,255,255,255,255,255
11263 DATA 0,20,255,255,255,255,20,0
11270 RETURN
12000 DATA 33,44,0,44,50,0,50,56,67,56,67,56,44,0,33,44,0,44
12100 DATA 44,0,0,33,31,33,37,37,33,0,0,0,42,42,44
: �--COMPUTE--APRIL ISSUE--WORM OF BEMER--PROG PAGE 74 N �52,48:�56,48:� e �53270,�(53270)�15 { �53280,0:�53281,0 �
�5000 �d S��(56320)�15:�D�1�SP:� �n �S�7�S�6�S�5�DX�1:DY�0:DI�1:�OD�2�DX��1:DY�0:DI�2 x �S�11�S�10�S�9�DX��1:DY�0:DI�2:�OD�1�DX�1:DY�0:DI�1 > � �S�14�DY��1:DX�0:DI�4:�OD�3�DI�3:DY�1:DX�0 m � �S�13�DY�1:DX�0:DI�3:�OD�4�DI�4:DY��1:DX�0 � � PO�1024�XA�YA�40:OD�DI:�PO,42:�PO�SO,L1 � � XA�XA�DX:YA�YA�DY:L��(XA$):XA$�XA$��(XA):YA$�YA$��(YA) � � Z��(1024�XA�YA�40):�Z��32�200
� �SO�1,40:�SO�4,17 E
� PO�1024�XA�YA�40:�PO,42:�PO�SO,10:�SO�4,16:�L�WO�100 |
� PO�1024��(XA$)�40��(YA$):LL��(XA$)�1:XA$��(XA$,LL) �
� �PO,32:�PO�SO,0 �
� YA$��(YA$,LL):�100 �
� �SO�1,20:�SO�4,17:�SO�4,16 �
� PO�1024�XA�40�YA:�PO,42:�PO�SO,10:�6600:�Z��BU�260 � WO�WO�15�3�LO:�WO�240�WO�240 Z� XX��(�(1)�36�2):X��(�(1)�18�3):��(1024�XX�40�X)��32�220 � SC�SC�100�LO�7:�SO�4,55:�SO�4,17 �� HI�HI�1:�6600:�HI�0�229 �� PO�1024�20�40�2:�PO,160:�PO�SO,0:PO�1024�20�21�40:�PO,160 � �PO�SO,0:PO�1024�40�12:�PO,160:�PO�SO,0:�SO�1,100:�SO�4,17 C� PO�1024�40�12�39:�PO,160:�PO�SO,0:�100 i� PO�1024�XX�X�40:�PO,BUG:�PO�SO,13 r� �100 ��Z��160�LI�1��7500:�290 � �Z��160�7500 ��SO�1,90:�SO�4,17 ��7000:�""