stevepoole wrote:
First you mention corruption : Do you get the MIStake keyword inserted, and if so on which lines ?
No, I mean corrupts memory where part of the loaded code becomes gobbledygook.
If I save the basic code after running it, here is what it looks like:
Code: Select all
100 ::
110 CLEAR: main: ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAR 7: QUIT: REMark fireworks2_bas by S.Poole, v20apr20
115 REMark Change line 560 to 'wait *.5' to speed up screen output on Qemu.
120 :
130 DEFine PROCedure main
140 LOCal p,ik,ct,loop,a,time,x,y,ring,dia,Rink,b,inc,fil
150 LOCal yes,nbr,lng,ov,dwn,i$(1): p=5: ik=255: ct=0
170 ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADL 512,256,0,0: SCALE 100,-75,-50: FILL 0: ÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAROPEN_INOPEN_NEWCLSCALLRECOL RANDOMISEPAUSEPOK 0: ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAROPEN_INOP 0: CLS
180 REPeat loop
190 FOR a=3 TO 3+RND(5)
200 time=2+RND(3): biz: x=RND(-55 TO 55): y=RND(-25 TO 40)
210 dia=RND(1 TO 80/time): Rink=RND(1 TO 7): ring=RND(6)
220 IF ring: zap x,y,dia: zap x,y,dia: rays x,y,dia
230 FOR b=1 TO 1+RND(12)
240 inc=RND(255): fil=RND(0,1): yes=RND(0,1)
250 nbr=RND(10 TO 19): lng=RND(10 TO 19)
260 IF ring: FOR ov=-1,-1: burst x,y,lng/3,yes,ov,inc: paws 77777
270 spark x,y,lng,inc: i$=INKEY$: IF i$<>"": EXIT loop
280 END FOR b: FOR dwn=1 TO 7: ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAROPEN_INOPEN_NEWCLSCALL dwn
290 END FOR a: END REPeat loop: END DEFine
300 :
310 DEFine PROCedure zap(xx,yy,rd)
320 LOCal f: ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAR 7,0,3
330 FOR f=-1,-1: ÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAROPEN_INOPEN_NEWCLSCALLRECOL RANDOMISEPAUSEPOK f: FILL 1: CIRCLE xx,yy,rd: FILL 0: paws 9999
340 ÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAROPEN_INOPEN_NEWCLSCALLRECOL RANDOMISEPAUSEPOK 0: END DEFine
350 :
360 DEFine PROCedure biz
370 FOR f=0 TO 98 STEP time: BEEP 1024,f: paws 22222
380 FOR f=0 TO 64 STEP time: BEEP 1024,f: paws 999
390 END DEFine
400 :
410 DEFine PROCedure spark(xx,yy,rd,ik)
420 LOCal tn,e: PENUP: ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAR ik,ik+4,3: rd=rd/2: FOR tn=5 TO RND(30)
430 e=RND(rd): TURNTO RND(360): MOVE e: CIRCLE_R 0,0,.6: MOVE -e: BEEP 256,255
440 END FOR tn: END DEFine
450 :
460 DEFine PROCedure rays(xx,yy,rd)
470 LOCal tn,e: ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAR Rink: POINT xx,yy: PENDOWN
480 FOR tn=1 TO 19+RND(40): e=RND(rd): TURNTO RND(360): MOVE e: MOVE -e
490 PENUP: END DEFine
500 :
510 DEFine PROCedure burst(xx,yy,rd,ys,ov,ik)
520 IF ys: ÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAROPEN_INOPEN_NEWCLSCALLRECOL RANDOMISEPAUSEPOK ov: ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVERCURSORATSCALEPOINTLINEELLIPSECIRCLEARCPOINT_RTURNTURNTOPENUPPENDOWNMOVELISTOPENCLOSEFORMATCOPYCOPY_NDELETEDIREXECEXEC_WLBYTESSEXECSBYTESSAVEMERGEMRUNLOADLRUNNEWCLEAR ik: CIRCLE xx,yy,rd: paws 300
530 END DEFine
540 :
550 DEFine PROCedure paws(wait)
560 LOCal p,dud: FOR p=1 TO wait*1: dud=1
570 END DEFine
...and this is how it went in...
Code: Select all
100 ::
110 CLEAR: main: INK 7: QUIT: REMark fireworks2_bas by S.Poole, v20apr20
115 REMark Change line 560 to 'wait *.5' to speed up screen output on Qemu.
120 :
130 DEFine PROCedure main
140 LOCal p,ik,ct,loop,a,time,x,y,ring,dia,Rink,b,inc,fil
150 LOCal yes,nbr,lng,ov,dwn,i$(1): p=5: ik=255: ct=0
170 WINDOW 512,256,0,0: SCALE 100,-75,-50: FILL 0: OVER 0: PAPER 0: CLS
180 REPeat loop
190 FOR a=3 TO 3+RND(5)
200 time=2+RND(3): biz: x=RND(-55 TO 55): y=RND(-25 TO 40)
210 dia=RND(1 TO 80/time): Rink=RND(1 TO 7): ring=RND(6)
220 IF ring: zap x,y,dia: zap x,y,dia: rays x,y,dia
230 FOR b=1 TO 1+RND(12)
240 inc=RND(255): fil=RND(0,1): yes=RND(0,1)
250 nbr=RND(10 TO 19): lng=RND(10 TO 19)
260 IF ring: FOR ov=-1,-1: burst x,y,lng/3,yes,ov,inc: paws 77777
270 spark x,y,lng,inc: i$=INKEY$: IF i$<>"": EXIT loop
280 END FOR b: FOR dwn=1 TO 7: SCROLL dwn
290 END FOR a: END REPeat loop: END DEFine
300 :
310 DEFine PROCedure zap(xx,yy,rd)
320 LOCal f: INK 7,0,3
330 FOR f=-1,-1: OVER f: FILL 1: CIRCLE xx,yy,rd: FILL 0: paws 9999
340 OVER 0: END DEFine
350 :
360 DEFine PROCedure biz
370 FOR f=0 TO 98 STEP time: BEEP 1024,f: paws 22222
380 FOR f=0 TO 64 STEP time: BEEP 1024,f: paws 999
390 END DEFine
400 :
410 DEFine PROCedure spark(xx,yy,rd,ik)
420 LOCal tn,e: PENUP: INK ik,ik+4,3: rd=rd/2: FOR tn=5 TO RND(30)
430 e=RND(rd): TURNTO RND(360): MOVE e: CIRCLE_R 0,0,.6: MOVE -e: BEEP 256,255
440 END FOR tn: END DEFine
450 :
460 DEFine PROCedure rays(xx,yy,rd)
470 LOCal tn,e: INK Rink: POINT xx,yy: PENDOWN
480 FOR tn=1 TO 19+RND(40): e=RND(rd): TURNTO RND(360): MOVE e: MOVE -e
490 PENUP: END DEFine
500 :
510 DEFine PROCedure burst(xx,yy,rd,ys,ov,ik)
520 IF ys: OVER ov: INK ik: CIRCLE xx,yy,rd: paws 300
530 END DEFine
540 :
550 DEFine PROCedure paws(wait)
560 LOCal p,dud: FOR p=1 TO wait*1: dud=1
570 END DEFine
580 ::::