home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-09-09 | 10.2 KB | 328 lines |
- 5 DEFINT I-P,X,Y
- 10 DIM P1%(33),P2%(33),P3%(33),P4%(33),P5%(33),P6%(33),P7%(33),P8%(33),P9%(33),P10%(33),P11%(33),P12%(33),P13%(33),C$(100,8),K1(100),K2(100)
- 20 SCREEN 1,0,0,0:COLOR 1:CLS:LINE (0,183)-(319,199),0,BF
- 21 LINE(0,0)-(319,199),0,BF
- 23 LINE(34,38)-(282,82),3,B
- 24 LINE(32,36)-(284,84),3,B
- 25 LOCATE 4,8:PRINT "STRING$USR FNERROR KEY<UNK! {00FA}> CALLKEY NOTOR MOTORWRITE STEPLINE"
- 26 LOCATE 8,6:PRINT " OPENNOTWHILEWHILELOCATEELSETAB(TRONCLOSE<UNK! {00FA}>STRING$USRUSRSOUND OPTION<0xDF!>NOT<0xE5!>WEND<UNK! {FD22}>
- 27 LINE(0,16)-(30,199),0,BF
- 28 V$=INKEY$:IF V$="" THEN GOTO 28
- 30 OPEN "tUJI" AS #1 LEN=68
- 40 FIELD #1,68 AS S$
- 50 GET 1,1
- 60 FOR I%=0 TO 33:P1%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 70 GET 1,2
- 80 FOR I%=0 TO 33:P2%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 90 GET 1,3
- 100 FOR I%=0 TO 33:P3%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 110 GET 1,4
- 120 FOR I%=0 TO 33:P4%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 130 GET 1,5
- 140 FOR I%=0 TO 33:P5%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 150 GET 1,6
- 160 FOR I%=0 TO 33:P6%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 170 GET 1,7
- 180 FOR I%=0 TO 33:P7%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 190 GET 1,8
- 200 FOR I%=0 TO 33:P8%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 210 GET 1,9
- 220 FOR I%=0 TO 33:P9%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 230 GET 1,10
- 240 FOR I%=0 TO 33:P10%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 250 GET 1,11
- 260 FOR I%=0 TO 33:P11%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 270 GET 1,12
- 280 FOR I%=0 TO 33:P12%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 290 GET 1,13
- 300 FOR I%=0 TO 33:P13%(I%)=CVI(MID$(S$,I%*2+1,2)):NEXT
- 301 CLOSE #1
- 302 OPEN "CK" AS #1 LEN=20:FIELD #1,20 AS S$
- 304 MQ=4
- 305 CLS:X=38:Y=16:L=27:K=28:LINE(0,183)-(319,199),0,BF
- 310 PUT (X,Y),P1%,XOR
- 320 PUT (X+L,16),P2%,XOR
- 330 PUT (X+2*L,16),P3%,XOR
- 340 PUT (X+3*L,16),P4%,XOR
- 350 PUT (X+4*L,16),P1%,XOR
- 360 PUT (X+5*L,16),P2%,XOR
- 370 PUT (X+6*L,16),P3%,XOR
- 380 PUT (X+7*L,16),P4%,XOR
- 390 PUT (X+8*L,16),P1%,XOR
- 400 PUT (X+8*L,Y+K),P2%,XOR
- 410 PUT (X+8*L,Y+2*K),P3%,XOR
- 420 PUT (X+8*L,Y+3*K),P4%,XOR
- 430 PUT (X+8*L,Y+4*K),P1%,XOR
- 440 PUT (X+8*L,Y+5*K),P2%,XOR
- 450 'PUT (X+8*L,Y+6*L),P3%,XOR
- 460 PUT (X,Y+K),P2%,XOR
- 470 PUT (X,Y+2*K),P3%,XOR
- 480 PUT (X,Y+3*K),P4%,XOR
- 490 PUT (X,Y+4*K),P1%,XOR
- 500 PUT (X,Y+5*K),P2%,XOR
- 510 'PUT (X,Y+6*L),P3%,XOR
- 520 PUT (X+L,Y+5*K),P3%,XOR
- 530 PUT (X+2*L,Y+5*K),P4%,XOR
- 540 PUT (X+3*L,Y+5*K),P1%,XOR
- 550 PUT (X+4*L,Y+5*K),P2%,XOR
- 560 PUT (X+5*L,Y+5*K),P3%,XOR
- 570 PUT (X+6*L,Y+5*K),P4%,XOR
- 580 PUT (X+7*L,Y+5*K),P1%,XOR
- 600 LOCATE 4,16:PRINT "STRING$<UNK! {00F7}> WEND<0xCB!> <0xB5!>ERASE"
- 610 LOCATE 6,14:PRINT "CALLKEY NOTOR WEND<0xE2!> LOCATEERL TO<0xE2!>"
- 620 LOCATE 7,14:PRINT "CALLKEY NOTOR MOTORWRITE STEPLINE TO<0xE2!>"
- 630 LOCATE 8,14:PRINT "MERGE<0xE1!> LOCATE<UNK! {00F8}>":LINE (0,16)-(7,16),0:LINE (0,160)-(7,160),0:LINE (0,124)-(7,124),0
- 650 II=1:XI=80:YI=90:X0=XI:Y0=YI:LL=18
- 660 WHILE II>0 AND II<4
- 670 PUT (X0,Y0),P1,XOR
- 680 FOR I=1 TO 3000:NEXT
- 700 PUT (X0,Y0),P1,XOR
- 710 FOR I=1 TO 2600:NEXT
- 720 V$=INKEY$:IF V$="" THEN GOTO 830
- 730 IF RIGHT$(V$,1)=CHR$(80) THEN IF II<3 THEN II=II+1:GOTO 800 ELSE II=1:GOTO 800
- 740 IF RIGHT$(V$,1)=CHR$(72) THEN IF II=1 THEN II=3:GOTO 800 ELSE II=II-1:GOTO 800
- 750 IF RIGHT$(V$,1)=CHR$(77) THEN IF II<3 THEN II=II+1:GOTO 800 ELSE II=1:GOTO 800
- 760 IF RIGHT$(V$,1)=CHR$(75) THEN IF II=1 THEN II=3:GOTO 800 ELSE II=II-1:GOTO 800
- 770 IF RIGHT$(V$,1)=CHR$(13) THEN ON II GOTO 900,2000,776:GOTO 20
- 774 GOTO 660
- 776 END
- 800 IF II=1 THEN X0=XI:Y0=YI
- 810 IF II=2 THEN X0=XI:Y0=YI+LL
- 820 IF II=3 THEN X0=XI:Y0=YI+LL*2
- 830 WEND
- 850 A$=INKEY$:IF A$="" THEN GOTO 850
- 900 GOSUB 5000
- 910 MZF=0:X0=240:Y0=2:L=24:MM=4:X3=56:Y3=90:LLL=48:PS=0:PC1=0:KKK=100
- 920 PUT (X0,Y0),P9,XOR:PUT (X0+L,Y0),P9,XOR:PUT (X0+2*L,Y0),P9,XOR
- 930 GOSUB 6000
- 940 K=1
- 950 LOCATE 1,6:PRINT USING "###";K:LOCATE 1,22:PRINT USING "####";MZF
- 952 GOSUB 6200
- 1000 IT=39:IP=1:K0(1)=1:K0(2)=1:K0(3)=1:K0(4)=1:PC0=0:GOSUB 6500
- 1004 IF RIGHT$(A$,1)=CHR$(27) THEN GOTO 305
- 1010 IF MM=0 THEN GOTO 1200
- 1020 IF K<101 THEN GOTO 950
- 1030 LOCATE 1,6:PRINT USING "###";K:LOCATE 1,22:PRINT USING "####";MZF
- 1040 JJ=176
- 1050 GOSUB 6100
- 1090 K=1
- 1095 GOSUB 6200
- 1097 IT=39:IP=1:K0(1)=1:K0(2)=1:K0(3)=1:K0(4)=1:PC0=0:GOSUB 6500
- 1098 IF RIGHT$(A$,1)=CHR$(27) THEN GOTO 305
- 1100 IF MM=0 THEN GOTO 1200
- 1105 IF K=177 THEN GOTO 1200
- 1110 LOCATE 1,6:PRINT USING "###";K+100:LOCATE 1,22:PRINT USING "####";MZF
- 1120 GOTO 1095
- 1200 LINE (0,36)-(319,136),0,BF
- 1205 IF PS=0 THEN PP=0:PP1=0:PC1=0 ELSE PP=(PS-PC1)/PS*100:PP1=PS/K*100
- 1210 LOCATE 3,6:PRINT "SOUND<UNK! {00FA}>USINGPOINTRANDOMIZEWENDUSING<UNK! {00F6}>MOTOR<0xCB!>";K;"<0xB5!>CLSTO<0xE2!>. USINGPOINTWRITESTRING$TAB(AUTO"; MZF
- 1220 LOCATE 4,6:PRINT "USING<UNK! {00F6}><0xB6!>ERL<0xB5!>SOUNDNOTUSR";PS;"<0xB5!>CLSTO<0xE2!>, ERRLOAD";PP1;"%"
- 1230 LOCATE 5,6:PRINT "SPC(CLOSE<0xB4!>TAB(USING<UNK! {00F6}><0xB6!>ERL<0xB5!>SOUNDNOTUSR";PS-PC1;"TO<0xE2!>, ERRLOAD";PP;"%"
- 1240 LOCATE 6,6:PRINT "USING<UNK! {00F6}><0xB4!>^<0xB5!>SOUNDERRLOAD";100-PP1;"%":LINE (0,124)-(7,124),0:LINE (240,106)-(248,106),0
- 1250 A$=INKEY$:IF A$="" THEN GOTO 1250
- 1255 IF MQ<6 THEN MQ=MQ+1 ELSE MQ=1
- 1260 CLS:GOTO 305
- 2000 LINE (64,36)-(220,148),0,BF
- 2010 LOCATE 5,14:PRINT "SOUND<UNK! {00FA}>USINGLOADWHILEOPTIONUSING<UNK! {00F7}>LOADOPTION<0xB5!>CLS"
- 2015 LOCATE 6,14:INPUT "<0xB5!>CLSTO<0xE2!>(6-180)";JJ
- 2020 IF JJ>180 OR JJ<5 THEN GOTO 2010
- 2030 GOSUB 5000
- 2040 MZF=0:X0=240:Y0=2:L=24:MM=2:X3=56:Y3=90:LLL=48:PS=0:PC1=0:KKK=JJ
- 2050 PUT (X0+2*L,Y0),P9,XOR
- 2060 IF KKK>100 THEN KKK=100
- 2070 GOSUB 6000
- 2080 K=1
- 2090 LOCATE 1,6:PRINT USING "###";K:LOCATE 1,22:PRINT USING "####";MZF
- 2100 GOSUB 6200:PUT(X0+L+L,Y0),P9,OR
- 2300 IT=39:IP=1:K0(1)=1:K0(2)=1:K0(3)=1:K0(4)=1:PC0=0:MM=2:GOSUB 6500
- 2310 IF RIGHT$(A$,1)=CHR$(27) THEN GOTO 305
- 2320 IF MM=0 OR IT=0 THEN LOCATE 3,8+K1(K)*4:PRINT C$(K,K2(K)+4);:LINE (72+K1(K)*32,52)-(72+K1(K)*32+7,52),0:FOR S=1 TO 3000:NEXT:IF MM=0 THEN K=K+1
- 2325 GOSUB 8200
- 2330 IF K<=KKK THEN 2090
- 2340 LOCATE 1,6:PRINT USING "###";K:LOCATE 1,22:PRINT USING "####";MZF
- 2350 IF JJ<101 THEN GOTO 2470
- 2360 GOSUB 6100
- 2370 K=1
- 2380 GOSUB 6200
- 2390 IT=39:IP=1:K0(1)=1:K0(2)=1:K0(3)=1:K0(4)=1:PC0=0:GOSUB 6500
- 2400 IF RIGHT$(A$,1)=CHR$(27) THEN GOTO 305
- 2410 IF MM=0 THEN K=K+1:GOSUB 8200
- 2420 IF K=JJ-100 THEN GOTO 2470
- 2450 LOCATE 1,6:PRINT USING "###";K+100:LOCATE 1,22:PRINT USING "####";MZF
- 2460 GOTO 2390
- 2470 LINE (0,36)-(319,136),0,BF:PP=(PS-PC1)/PS*100:PP1=PS/JJ*100
- 2475 IF PS=0 THEN PP=0:PP1=0:PC1=0 ELSE PP=(PS-PC1)/PS*100:PP1=PS/JJ*100
- 2480 LOCATE 3,6:PRINT "SOUND<UNK! {00FA}>USINGPOINTRANDOMIZEWENDUSING<UNK! {00F6}>MOTOR<0xCB!>";JJ ;"<0xB5!>CLSTO<0xE2!>. USINGPOINTWRITESTRING$TAB(AUTO"; MZF
- 2490 LOCATE 4,6:PRINT "USING<UNK! {00F6}><0xB6!>ERL<0xB5!>SOUNDNOTUSR";PS;"<0xB5!>CLSTO<0xE2!>, ERRLOAD";PP1;"%"
- 2500 LOCATE 5,6:PRINT "SPC(CLOSE<0xB4!>TAB(USING<UNK! {00F6}><0xB6!>ERL<0xB5!>SOUNDNOTUSR";PS-PC1;"TO<0xE2!>, ERRLOAD";PP;"%"
- 2510 LOCATE 6,6:PRINT "USING<UNK! {00F6}><0xB4!>^<0xB5!>SOUNDERRLOAD";100-PP1;"%":LINE (0,124)-(7,124),0
- 2520 A$=INKEY$:IF A$="" THEN GOTO 2520
- 2530 IF MQ<6 THEN MQ=MQ+1 ELSE MQ=1
- 2540 CLS:GOTO 305
- 4000 'A$=INKEY$:IF A$="" THEN GOTO 4000
- 5000 CLS:LINE (0,183)-(319,199),0,BF:LOCATE 1,4,0:PRINT "<0xB5!>VARPTR TO<0xE2!> <0xB5!>BLOADWRITESTRING$:"
- 5005 LINE (0,20)-(319,24),2,BF
- 5010 LINE (0,20)-(319,24),3,B
- 5020 FOR I=1 TO 19:PSET(16*I,23),3:NEXT
- 5030 LINE (0,138)-(319,138),1
- 5040 LOCATE 9,4:PRINT " ELSE<UNK! {00FB}> ELSE<UNK! {00FA}> FNELSEERLEQV CLOSEINSTRCALL<0xB5!>LOAD<UNK! {00FC}> DELETEDELETE FNELSE<0xB6!>RESUME"
- 5050 LOCATE 10,10:PRINT " ESC DELETEDELETE THEN<0xCB!>CALL<UNK! {00F6}>";:LINE (0,160)-(7,160),0
- 5060 RETURN
- 6000 FOR I=1 TO KKK
- 6015 L0=(I-1)*7+MQ
- 6017 L0=L0 MOD 180
- 6020 GET #1,((I-1)*7+MQ) MOD 180+1
- 6030 FOR J=1 TO 8:C$(I,J)=MID$(S$,2*J+1,2):NEXT
- 6040 K1(I)=VAL(MID$(S$,19,1)):K2(I)=VAL(MID$(S$,20,1))
- 6050 NEXT I
- 6060 RETURN
- 6100 FOR I=101 TO JJ
- 6120 GET #1,((I-1)*7+MQ) MOD 180+1
- 6130 FOR J=1 TO 8:C$(I-100,J)=MID$(S$,2*J+1,2):NEXT
- 6140 K1(I-100)=VAL(MID$(S$,19,1)):K2(I-100)=VAL(MID$(S$,20,1))
- 6150 NEXT
- 6160 RETURN
- 6200 LOCATE 3,12,0:FOR I=1 TO 4:PRINT C$(K,I)+" ";:NEXT
- 6210 OA=88+(K1(K)-1)*32
- 6220 PUT(OA,36),P9,XOR
- 6230 PUT (X3,Y3),P1,OR:PUT (X3+LLL,Y3),P2,OR
- 6240 PUT (X3+LLL*2,Y3),P3,OR:PUT (X3+LLL*3,Y3),P4,OR
- 6250 LOCATE 6,11:PRINT C$(K,5);:LOCATE 6,17:PRINT C$(K,6);
- 6260 LOCATE 6,23:PRINT C$(K,7);:LOCATE 6,29:PRINT C$(K,8);:LINE (240,106)-(248,106),0:LINE(0,124)-(7,124),0:RETURN
- 6500 A$=INKEY$:IF A$="" THEN GOTO 6550
- 6510 IF RIGHT$(A$,1)=CHR$(77) THEN 7000
- 6520 IF RIGHT$(A$,1)=CHR$(75) THEN 7050
- 6530 IF RIGHT$(A$,1)=CHR$(13) THEN 8000
- 6540 IF RIGHT$(A$,1)=CHR$(27) THEN MQ=MQ+1:RETURN
- 6550 FOR I=1 TO 7000:NEXT
- 6560 ON IP GOTO 6570,6580,6590,6600
- 6570 PUT (X3,Y3),P1,XOR:GOTO 6605
- 6580 PUT (X3+LLL,Y3),P2,XOR:GOTO 6605
- 6590 PUT (X3+LLL*2,Y3),P3,XOR:GOTO 6605
- 6600 PUT (X3+LLL*3,Y3),P4,XOR:GOTO 6605
- 6605 IF IT>19 THEN IT0=IT-20 ELSE IT0=IT
- 6610 LINE (16*IT0+1,21)-(16*IT0+15,23),0,BF
- 6612 LINE (16*IT0,21)-(16*IT0,22),0,BF
- 6620 FOR I=1 TO 2500:NEXT
- 6630 ON IP GOTO 6640,6650,6660,6670
- 6640 PUT (X3,Y3),P1,XOR:GOTO 6675
- 6650 PUT (X3+LLL,Y3),P2,XOR:GOTO 6675
- 6660 PUT (X3+LLL*2,Y3),P3,XOR:GOTO 6675
- 6670 PUT (X3+LLL*3,Y3),P4,XOR
- 6675 IT=IT-1:IF IT=0 THEN GOTO 6720
- 6680 IF IT<>19 THEN GOTO 6500
- 6690 GOSUB 8200:GOTO 6500
- 6720 PUT (OA,36),P9,XOR:SOUND 180,5
- 6730 K=K+1:MM=MM-1
- 6735 FOR I=1 TO 3:PUT (OA,36),P13,OR:SOUND 180,5
- 6740 FOR J=1 TO 3000:NEXT:PUT (OA,36),P13,XOR:FOR J=1 TO 1000:NEXT:NEXT I
- 6745 IF MM=3 THEN PUT(X0,Y0),P9,XOR:GOTO 6770
- 6750 IF MM=2 THEN PUT(X0+L,Y0),P9,XOR:GOTO 6770
- 6755 IF MM=1 THEN PUT(X0+L+L,Y0),P9,XOR:GOTO 6770
- 6760 IF MM=0 THEN IF II=2 THEN PUT(X0+L+L,Y0),P9,XOR:RETURN ELSE RETURN
- 6770 GOSUB 8200:RETURN
- 7000 IF MM=0 THEN RETURN
- 7002 IF K0(1)+K0(2)+K0(3)+K0(4)=2 THEN IF II=1 THEN K=K+1:GOSUB 8200:RETURN ELSE RETRUN
- 7005 IF IP<4 THEN IF K0(IP+1)=1 THEN IP=IP+1:GOTO 6500 ELSE GOTO 7020
- 7010 IF K0(1)=1 THEN IP=1:GOTO 6500 ELSE IP=2:GOTO 6500
- 7020 IF IP<3 THEN IP=IP+2:GOTO 6500 ELSE IP=1:GOTO 6500
- 7050 IF IP>1 THEN IF K0(IP-1)=1 THEN IP=IP-1:GOTO 6500 ELSE GOTO 7070
- 7060 IF K0(4)=1 THEN IP=4:GOTO 6500 ELSE IP=3:GOTO 6500
- 7070 IF IP>2 THEN IP=IP-2:GOTO 6500 ELSE IP=4:GOTO 6500
- 8000 IF IP=K2(K) THEN PS=PS+1:IF PC0=1 THEN PC1=PC1+1:PC0=0:GOTO 8500 ELSE GOTO 8500
- 8010 K0(IP)=0:MM=MM-1:PUT(OA,36),P9,XOR:IF PC0=0 THEN PC0=1 ELSE PC0=0
- 8011 FOR I=1 TO 3:PUT (OA,36),P13,OR:SOUND 180,5
- 8012 FOR J=1 TO 3000:NEXT:PUT (OA,36),P13,XOR:FOR J=1 TO 1000:NEXT:NEXT I
- 8013 IF MM=3 THEN PUT(X0,Y0),P9,XOR:GOTO 8018
- 8014 IF MM=2 THEN PUT(X0+L,Y0),P9,XOR:GOTO 8018
- 8015 IF MM=1 THEN PUT(X0+L+L,Y0),P9,XOR:GOTO 8018
- 8018 ON IP GOTO 8020,8060,8100,8140
- 8020 LINE (X3+18,Y3)-(X3+38,Y3+16),0,BF:SOUND 320,18:PUT (X3,Y3),P1,XOR
- 8030 FOR I=1 TO 32 STEP 2
- 8040 PUT (X3,Y3+I),P1,XOR:FOR J=1 TO 500:NEXT
- 8050 PUT (X3,Y3+I),P1,XOR:NEXT I:PUT(OA,36),P9,XOR:GOTO 7000
- 8060 LINE (X3+LLL+18,Y3)-(X3+LLL+38,Y3+16),0,BF:SOUND 320,18:PUT (X3+LLL,Y3),P2,XOR
- 8070 FOR I=1 TO 32 STEP 2
- 8080 PUT (X3+LLL,Y3+I),P2,XOR:FOR J=1 TO 500:NEXT
- 8090 PUT (X3+LLL,Y3+I),P2,XOR:NEXT I:PUT(OA,36),P9,XOR:GOTO 7000
- 8100 LINE (X3+LLL*2+18,Y3)-(X3+LLL*2+38,Y3+16),0,BF:SOUND 320,18:PUT (X3+LLL*2,Y3),P3,XOR
- 8110 FOR I=1 TO 32 STEP 2
- 8120 PUT (X3+LLL*2,Y3+I),P3,XOR:FOR J=1 TO 500:NEXT
- 8130 PUT (X3+LLL*2,Y3+I),P3,XOR:NEXT I:PUT(OA,36),P9,XOR:GOTO 7000
- 8140 LINE (X3+LLL*3+18,Y3)-(X3+LLL*3+38,Y3+16),0,BF:SOUND 320,18:PUT (X3+LLL*3,Y3),P4,XOR
- 8150 FOR I=1 TO 32 STEP 2
- 8160 PUT (X3+LLL*3,Y3+I),P4,XOR:FOR J=1 TO 500:NEXT
- 8170 PUT (X3+LLL*3,Y3+I),P4,XOR:NEXT I:PUT(OA,36),P9,XOR:GOTO 7000
- 8200 LINE (0,20)-(319,24),2,BF
- 8210 LINE (0,20)-(319,24),3,B
- 8220 FOR I=1 TO 19:PSET(16*I,23),3:NEXT
- 8230 RETURN
- 8500 X4=88+(K1(K)-1)*32:Y4=54:KK=2000:PU1=2:PU2=2:IT1=1:IT2=1
- 8510 IF IP=1 THEN X5=X3:Y5=Y3-12
- 8520 IF IP=2 THEN X5=X3+LLL:Y5=Y3-12
- 8530 IF IP=3 THEN X5=X3+2*LLL:Y5=Y3-12
- 8540 IF IP=4 THEN X5=X3+3*LLL:Y5=Y3-12
- 8550 Y45=INT((Y5+Y4)/2):PUT (X4,36),P9,XOR:IF ABS(X5-X4)>31 THEN PU2=4
- 8555 IF ABS(X5-X4)>47 THEN PU2=6
- 8560 FOR I=0 TO Y45-Y4 STEP 2*PU1
- 8570 PUT(X4,Y4+I),P5,XOR:SOUND 100,IT1
- 8580 FOR J=1 TO KK:NEXT:PUT(X4,Y4+I),P5,XOR
- 8590 PUT(X4,Y4+PU1+I),P6,XOR:SOUND 110,IT2
- 8600 FOR J=1 TO KK:NEXT:PUT(X4,Y4+I+PU1),P6,XOR
- 8610 NEXT
- 8620 IF X5>=X4 THEN GOTO 8690
- 8630 FOR I=0 TO X5-X4 STEP -PU2*2
- 8640 PUT(X4+I,Y45),P11,XOR:SOUND 100,IT1
- 8650 FOR J=1 TO KK:NEXT:PUT(X4+I,Y45),P11,XOR
- 8660 PUT(X4+I-PU2,Y45),P12,XOR:SOUND 110,IT2
- 8670 FOR J=1 TO KK:NEXT:PUT(X4+I-PU2,Y45),P12,XOR
- 8680 NEXT:GOTO 8760
- 8690 IF X5=X4 THEN GOTO 8760
- 8700 FOR I=0 TO X5-X4 STEP 2*PU2
- 8710 PUT(X4+I,Y45),P9,XOR:SOUND 100,IT1
- 8720 FOR J=1 TO KK:NEXT:PUT(X4+I,Y45),P9,XOR
- 8730 PUT(X4+I+PU2,Y45),P10,XOR:SOUND 110,IT2
- 8740 FOR J=1 TO KK:NEXT:PUT(X4+I+PU2,Y45),P10,XOR
- 8750 NEXT
- 8760 FOR I=0 TO Y5-Y45 STEP PU1*2
- 8770 PUT(X5,Y45+I),P5,XOR:SOUND 100,IT1
- 8780 FOR J=1 TO KK:NEXT:PUT(X5,Y45+I),P5,XOR
- 8790 PUT(X5,Y45+I+PU1),P6,XOR:SOUND 110,IT2
- 8800 FOR J=1 TO KK:NEXT:PUT(X5,Y45+I+PU1),P6,XOR
- 8810 NEXT
- 8820 LINE (X5,Y5+12)-(X5+40,Y5+28),0,BF:SOUND 100,1:SOUND 107,1:SOUND 114,1
- 8825 FOR I=1 TO 15000:NEXT
- 8830 FOR I=Y5-Y45 TO 0 STEP -PU1*2
- 8840 PUT(X5,Y5+I),P7,XOR:SOUND 100,IT1
- 8850 FOR J=1 TO KK:NEXT:PUT(X5,Y5+I),P7,XOR
- 8860 PUT(X5,Y5+I-PU1),P8,XOR:SOUND 110,IT2
- 8870 FOR J=1 TO KK:NEXT:PUT(X5,Y5+I-PU1),P8,XOR
- 8880 NEXT
- 8890 IF X5>=X4 THEN GOTO 8960
- 8900 FOR I=0 TO X4-X5 STEP 2*PU2
- 8910 PUT(X5+I,Y45),P9,XOR:SOUND 100,IT1
- 8920 FOR J=1 TO KK:NEXT:PUT(X5+I,Y45),P9,XOR
- 8930 PUT(X5+I+PU2,Y45),P10,XOR:SOUND 110,IT2
- 8940 FOR J=1 TO KK:NEXT:PUT(X5+I+PU2,Y45),P10,XOR
- 8950 NEXT
- 8960 IF X5=X4 THEN GOTO 9030
- 8970 FOR I=0 TO X4-X5 STEP -2*PU2
- 8980 PUT(X5+I,Y45),P11,XOR:SOUND 100,IT1
- 8990 FOR J=1 TO KK:NEXT:PUT(X5+I,Y45),P11,XOR
- 9000 PUT(X5+I-PU2,Y45),P12,XOR:SOUND 110,IT2
- 9010 FOR J=1 TO KK:NEXT:PUT(X5+I-PU2,Y45),P12,XOR
- 9020 NEXT
- 9030 FOR I=Y45-Y4 TO 0 STEP -4
- 9040 PUT(X4,Y45+I-12),P7,XOR:SOUND 100,IT1
- 9050 FOR J=1 TO KK:NEXT:PUT(X4,Y45+I-12),P7,XOR
- 9060 PUT(X4,Y45-14+I),P8,XOR:SOUND 110,IT2
- 9070 FOR J=1 TO KK:NEXT:PUT(X4,Y45+I-14),P8,XOR
- 9080 NEXT
- 9090 LOCATE 3,8+K1(K)*4:PRINT C$(K,IP+4);:LINE (72+K1(K)*32,52)-(72+K1(K)*32+7,52),0
- 9105 FOR ZZ=1 TO 5000:NEXT
- 9110 K=K+1
- 9120 GOSUB 8200
- 9135 PPP=FRI(0)
- 9137 IF II=1 THEN MZF=MZF+INT(IT/4) ELSE MZF=MZF+1
- 9140 RETURN
-