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:�""