home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 3.5 KB | 162 lines |
- 2000 '************************************************************
- 2100 '* TAB(SOUNDLOAD<UNK! {FEC3}><UNK! {00FB}>CALLPSET: SG77.BAS *
- 2200 '* CALLTOUSRIMPRANDOMIZEEDITSOUNDPOINT: CLOSEDEFINT<0xB6!>ERLWHILESCREENWRITEMERGECOLOR+THENLOAD *
- 2300 '* WHILE<0xE0!>CALLTOSCREENERRPSETVARPTR: 1987.10 *
- 2400 '************************************************************
- 4000 KEY OFF
- 4001 OPEN "ZBMC.TXT" FOR INPUT AS #1
- 4002 INPUT #1,GN$,XS$,YS$,T1$,T2$,T3$
- 4003 CLOSE #1
- 4004 K=0
- 4005 DIM X(15),Y1(15),Y2(15),Y3(15)
- 4006 OPEN "ZBSZ77.TXT" FOR INPUT AS #1
- 4007 IF EOF(1)=-1 THEN CLOSE #1 : GOTO 4010
- 4008 K=K+1 : INPUT #1,X(K),Y1(K),Y2(K),Y3(K) : GOTO 4007
- 4010 GOSUB 4030
- 4011 L%=LEN(GN$)
- 4012 LOCATE 10,(40-L%)/2,0
- 4013 PRINT GN$; ' or LINE<0xB4!>CLOSEINSTRCALL<0xB5!>LOAD<UNK! {00FC}>THEN<0xCB!>CALL<UNK! {00F6}>
- 4014 IF INKEY$=CHR$(13) THEN GOTO 4016
- 4015 GOTO 4014
- 4016 SYSTEM
- 4018 '
- 4019 '
- 4030 SCREEN 1,0 : COLOR 9,0 : CLS
- 4031 MAX=0
- 4032 FOR I=1 TO K
- 4033 IF Y1(I)>MAX THEN MAX=Y1(I)
- 4034 IF Y2(I)>MAX THEN MAX=Y2(I)
- 4035 IF Y3(I)>MAX THEN MAX=Y3(I)
- 4038 NEXT I
- 4040 M0=INT(MAX) : M1=LEN(STR$(M0))
- 4042 M2=VAL(MID$(STR$(M0),2,1))
- 4045 MAX=(M2+1)*10^(M1-2)
- 4046 SY=100/MAX
- 4050 GOSUB 4080
- 4052 GOSUB 4200
- 4055 GOSUB 4500
- 4057 RETURN
- 4058 '
- 4059 '
- 4080 LINE (38,140)-(310,140)
- 4084 LINE (310,140)-STEP(-8,2)
- 4085 LINE (310,140)-STEP(-8,-2)
- 4087 LINE (38,140)-(38,1)
- 4088 LINE (38,1)-STEP(2,6)
- 4089 LINE (38,1)-STEP(-2,6)
- 4090 FOR I=1 TO K
- 4095 X1=40+I*200/K-(200/K-4)/2
- 4097 LINE (X1,138)-STEP(0,4)
- 4100 CN=X(I) : GOSUB 5002
- 4105 NEXT I
- 4110 L%=LEN(XS$)
- 4115 LOCATE 9,40-L%
- 4120 PRINT XS$
- 4125 L%=LEN(YS$)
- 4130 FOR I=1 TO L% STEP 2
- 4135 LOCATE 1+I\2,3
- 4136 SUB$=MID$(YS$,I,2)
- 4138 PRINT SUB$
- 4140 NEXT I
- 4142 YM=MAX/5
- 4143 FOR I=120 TO 40 STEP -20
- 4145 IF I<80 THEN GOTO 4150
- 4146 L%=LEN(STR$(YM))
- 4147 LOCATE I*6/100,5-L%
- 4148 PRINT STR$(YM)
- 4149 YM=YM+MAX/5
- 4150 LINE (36,I)-(40,I)
- 4155 NEXT I
- 4160 RETURN
- 4180 '
- 4190 '
- 4200 XL=200/K-4
- 4205 FOR I=1 TO K
- 4220 LINE (40+(I-1)*200/K+4,140)-STEP(XL/3,-Y1(I)*SY),1,B
- 4225 LINE (40+(I-1)*200/K+4+XL/3,140)-STEP(XL/3,-Y2(I)*SY),2,B
- 4230 LINE (40+I*200/K-XL/3,140)-STEP(XL/3,-Y3(I)*SY),3,B
- 4240 X1=40+(I-1)*200/K+4 : Z1=140
- 4242 X2=X1+XL/3 : Z2=140-Y1(I)*SY
- 4245 GOSUB 4700
- 4248 X1=X2
- 4250 X2=X1+XL/3 : Z2=140-Y2(I)*SY
- 4252 GOSUB 4800
- 4255 X1=X2
- 4258 X2=X1+XL/3 : Z2=140-Y3(I)*SY
- 4260 GOSUB 4900
- 4265 LINE (40+I*200/K-XL/3,140)-STEP(0,-Y2(I)*SY),2
- 4270 NEXT I
- 4430 LINE (38,140)-(310,140)
- 4435 LINE (38,140)-(38,1)
- 4440 FOR I=1 TO K
- 4445 LINE (40+I*200/K-(200/K-2)/2,138)-STEP(0,4)
- 4450 NEXT I
- 4460 RETURN
- 4470 '
- 4480 '
- 4500 LOCATE 1,25,0
- 4510 PRINT "THENLOAD CLS<UNK! {FD22}>
- 4520 LINE (140,20)-STEP(10,10),1,B
- 4525 LINE (140,25)-STEP(5,-5),1
- 4530 LINE (140,30)-STEP(10,-10),1
- 4535 LINE (145,30)-STEP(5,-5),1
- 4540 LOCATE 2,20,0
- 4550 PRINT T1$
- 4560 LINE (200,20)-STEP(10,10),2,B
- 4565 LINE (200,23)-STEP(10,0),2
- 4570 LINE (200,27)-STEP(10,0),2
- 4580 LOCATE 2,28,0
- 4590 PRINT T2$
- 4600 LINE (260,20)-STEP(10,10),3,B
- 4605 LINE (260,25)-STEP(5,5),3
- 4610 LINE (260,20)-STEP(10,10),3
- 4615 LINE (265,20)-STEP(5,5),3
- 4620 LOCATE 2,35,0
- 4630 PRINT T3$
- 4640 RETURN
- 4650 '
- 4660 '
- 4700 FOR Y=Z1+(X2-X1)-5 TO Z2 STEP -5
- 4704 X0=X1 : Y0=Y
- 4708 XE=X2 : YE=Y0-ABS(XE-X0)
- 4710 IF Y>140 THEN Y0=Z1 : X0=X1+ABS(Y-140)
- 4720 IF Y<Z2+(X2-X1) THEN XE=X1+ABS(Y-Z2) : YE=Z2
- 4730 LINE (X0,Y0)-(XE,YE),1
- 4740 NEXT Y
- 4745 RETURN
- 4750 '
- 4760 '
- 4800 FOR Y=Z1-5 TO Z2 STEP -5
- 4810 LINE (X1,Y)-(X2,Y),2
- 4820 NEXT Y
- 4825 RETURN
- 4830 '
- 4840 '
- 4900 FOR Y=Z2-(X2-X1)+5 TO Z1 STEP 5
- 4904 X0=X1 : Y0=Y
- 4908 XE=X2 : YE=Y0+ABS(XE-X0)
- 4910 IF Y<Z2 THEN Y0=Z2 : X0=X1+ABS(Y-Z2)
- 4920 IF Y+(X2-X1)>140 THEN XE=X1+ABS(Z1-Y) : YE=Z1
- 4930 LINE (X0,Y0)-(XE,YE),3
- 4940 NEXT Y
- 4945 RETURN
- 5000 '
- 5001 '
- 5002 L=LEN(STR$(CN))-1
- 5004 FOR II=1 TO L
- 5005 X0=X1+4*(II-L/2-1) : Y0=148
- 5006 V=VAL(MID$(STR$(CN),II+1,1))
- 5008 IF V=0 THEN PSET(X0,Y0) : DRAW "R4 D6 L4 U6" : GOTO 5030
- 5010 ON V GOTO 5012,5014,5016,5018,5020,5022,5024,5026,5028
- 5012 PSET(X0+2,Y0) : DRAW "D6" : GOTO 5030
- 5014 PSET(X0,Y0) : DRAW "R4 D3 L4 D3 R4" : GOTO 5030
- 5016 PSET(X0,Y0) : DRAW "R4 D3 L4 R4 D3 L4" : GOTO 5030
- 5018 PSET(X0,Y0) : DRAW "D4 R4 L1 U4 D6" : GOTO 5030
- 5020 PSET(X0+4,Y0) : DRAW "L4 D3 R4 D3 L4" : GOTO 5030
- 5022 PSET(X0+4,Y0) : DRAW "L4 D6 R4 U3 L4" : GOTO 5030
- 5024 PSET(X0,Y0) : DRAW "R4 D6" : GOTO 5030
- 5026 PSET(X0,Y0+3) : DRAW "R4 U3 L4 D6 R4 U3" : GOTO 5030
- 5028 PSET(X0+4,Y0+3) : DRAW "L4 U3 R4 D6 L4"
- 5030 NEXT
- 5040 RETURN
-