4 POKE56,88:POKE55,0:CLR:TL=88*256 5 DV=PEEK(186):IFDV<8THENDV=8 10 IFPEEK(44)<>27THENSTOP 11 DIMW$(100),W(20),TL(20),NX(9),N(9),TP(20):TL(0)=TL 12 DEFFNL(X)=X-FNH(X)*256:DEFFNH(X)=INT(X/256):DEFFNI(X)=PEEK(X)+256*PEEK(X+1) 20 SYS57812"TOOLBOX C000A",DV,0:POKE780,0:POKE781,0:POKE782,192:SYS65493 22 SYS57812"CONCERT FONT",DV,0:POKE780,0:POKE781,0:POKE782,8:SYS65493 24 POKE53272,19 26 PRINT""; 30 DM=49152:RD=DM+3:BN=DM+6:IN=DM+9 31 GI=DM+12:BL=DM+30:BX=DM+15:SS=DM+18 32 SR=DM+21:PA=DM+24:CT=DM+27:SH=DM+72 33 BR=DM+45:MU=DM+48:CM=DM+54:SW=DM+57 34 GW=DM+66:FI=DM+63 35 SYSBL,"CONCERT SCREEN",DV,40960:SYSSR,160:POKE53280,14:POKE53281,1 37 SYSSS,208:SYSSS,216 40 LO=4096:SYSBL,"CPLAY.ML",DV,LO 42 FORX=0TO33:POKE6622+X,0:NEXT 45 CM=0:CM$(0)="CUE MODE OFF":CM$(1)="CUE MODE ON " 46 X=56832:POKEX+14,255:POKEX+24,128:POKEX+19,0:POKEX+20,240:POKEX+18,129 47 M9=0:Y=PEEK(X+28)ANDPEEK(X+28):IFY=255THENM9=3:POKEX+18,0 48 A$(0)="MIDI & SID MODE":A$(1)="STEREO SID MODE" 49 SYSSS,208 50 POKE53281,1:SYSSR,208:WI=20:CO=6:CR=160:CH=1:GOSUB10020 51 SYSPA,XP+1,YP+1,"CHOOSE:" 53 SYSCT,YP+2,"QUICK PLAY" 54 SYSCT,YP+3,"CREATE CONCERT":SYSCT,YP+4,"_ TO EXIT" 55 CH=2:GOSUB10100 56 IFF%=0THEN600 57 IFF%=2THEN2000 90 SYSSR,208:XP=21:YP=20:XW=LEN(A$(0))+2:YW=3:CR=160:CO=2+M9+ABS(CM-1)*8 91 GOSUB10000 92 SYSPA,XP+1,YP+1,A$(M9/3) 96 SYSPA,XP+1,YP+2,CM$(CM) 100 XP=0:YP=18:XW=14:YW=5:CR=160:CO=10:GOSUB10000 110 SYSPA,XP+1,YP+1,"CHOOSE:" 120 SYSPA,XP+2,YP+2,"GET SONG" 130 SYSPA,XP+2,YP+3,"CHANGE MODE" 135 SYSPA,XP+2,YP+4,"DISK ACCESS" 136 SYSPA,XP+3,YP+5,"_ TO EXIT" 140 SYSMU,YP+2,XP+2,XP+12,3,CO,0,95 150 IFF%=0THEN50 160 ONF%GOTO200,300,390 200 SYSSS,216:SYSDM,"$:P?.*",DV,57344,20,3,12,0,6 201 SYSSR,216:IFF$=""THEN235 202 IFLEFT$(F$,3)="PC."THEN260 203 IFLEFT$(F$,3)="PD."THENCLOSE15:OPEN15,DV,15,"CD:"+F$:CLOSE15:CD=CD+1:GOTO200 204 CO=7:MS$="LOADING: "+F$:GOSUB7400 206 SYS6088:REM UPLOAD TOOLS 210 SYSBL,F$,DV,40560 220 POKE163,112:POKE164,158:POKE165,2:POKE166,160 223 IFCM=1THENCO=5:MS$=F$+" CUED":POKE198,0:GOSUB7400 224 IFCM=1THENGETZ$:IFZ$=""THEN224 225 CO=6:MS$="PLAYING: "+F$:GOSUB7400 230 SYSLO+M9:SYS6121:REM DOWNLOAD TOOLS 235 IFCD>0THENCLOSE15:OPEN15,DV,15,"CD:_":CD=CD-1:CLOSE15:GOTO235 240 GOTO90 260 SYSFI,F$,DV,0:N=F%:GOSUB7100:GOTO235 299 STOP 300 CM=ABS(CM-1) 305 IFCM>0THEN320 310 M9=ABS(M9-3) 320 SYSSR,208:GOTO90 390 GOSUB400:GOTO90 400 SYSSR,208:CO=0:CR=160:WI=20:CH=1:GOSUB10020:SYSCT,YP+1,"DISK ACCESS: " 401 DQ=0:SYSCT,YP+2,"SEND COMMAND TO "+STR$(DV):SYSCT,YP+3,"CHANGE DEVICE" 402 SYSMU,YP+2,XP+1,XP+XW-1,2,0,12,95:IFF%=0THENRETURN 403 ONF%GOTO404,500 404 SYSPA,0,0,"[146][144]@ " 405 SYSPA,1,0,"" 410 SYSGW,0,2,38 415 IFW$=""THEN450 420 CLOSE15:OPEN15,DV,15,W$:INPUT#15,E,EN$,N,F:CLOSE15 430 SYSSR,216:SYSPA,0,0,"[154]":PRINTE"[157] ";N"[157] ";EN$;" ";F 440 FORX=1TO3000:NEXT 450 RETURN 500 K=0:FORI=8TO15:CLOSE2:OPEN2,I,2:CLOSE2:IFSTTHEN510 505 I(K)=I:K=K+1 510 NEXT:SYSSR,216:CR=160:CO=9:WI=8:CH=K:GOSUB10020 520 SYSCT,YP+1,"DRIVE: " 530 FORX=0TOK-1:SYSCT,YP+3+X,STR$(I(X)):NEXT:POKE186,DV 540 SYSMU,YP+3,XP+1,XP+XW-1,K,CO,0,95 550 IFF%=0THENRETURN 560 DV=I(F%-1):POKE186,DV:RETURN 600 CR=160:CO=8:WI=25:CH=0:GOSUB10020 610 SYSCT,YP+1,"LEAVING PRESTO CONCERT?" 620 SYSCT,YP+2,"(Y/N)":POKE198,0 630 GETZ$:IFZ$=""THEN630 640 IFZ$="Y"THEN40000 650 GOTO50 1000 POKE53281,0:SYSBX,0,39,0,24,160,14:MODE=0:NN=0:V$="MAKE":N=0 1001 QD=0:IFNN=99THENGOSUB2500:POKE53281,1:SYSSR,208:GOTO2000 1002 XP=0:XW=14:YP=0:YW=12:CR=160:CO=3:IFN=099THENF%=8:GOTO1025 1003 GOSUB10000:SYSPA,XP+1,YP+1,V$+" CONCERT:" 1004 SYSPA,XP+2,YP+3,"BEGIN" 1005 SYSPA,XP+2,YP+4,"LOAD" 1006 SYSPA,XP+2,YP+5,"CUE" 1007 SYSPA,XP+2,YP+6,"PLAY":SYSPA,XP+2,YP+7,"PAUSE" 1008 SYSPA,XP+2,YP+8,"CONTINUE":SYSPA,XP+2,YP+9,"REMOVE" 1009 SYSPA,XP+2,YP+10,"END":SYSSS,216:SYSPA,30,0,""+STR$(53248-TL) 1010 SYSMU,YP+3,XP+1,XP+XW-1,8,CO,1,95 1011 IFF%=0THENSYSSR,208:GOTO2000 1012 IFMODE=1THEN1025 1015 IFMODE=0THENIF(F%=1)OR(F%=8)THEN1020 1016 GOTO1010 1020 IFF%=8THENF%=0:GOTO1011 1021 MODE=1:N=0:GOSUB1100:GOTO1010 1025 ONF%GOTO1100,1200,1300,1400,1500,1600,1700,1900 1100 W$(N)="BEGIN":KN=0:TL=88*256:GOTO1800 1200 IFDQ=1THENSYSDM+3,20,3,12,1,7:SYSSR,216:GOTO1202 1201 SYSDM,"$:PR.*,P1.*,P2.*,P3.*,PC.*",DV,57344,20,3,12,1,7:SYSSR,216:DQ=1 1202 IFF$=""THEN1801 1203 IFLEFT$(F$,3)="PC."THENW$(N)="CONCERT:"+F$:N=N+1:GOTO1100 1204 KN=KN+1:W(KN)=N:OT=TL 1205 SYS57812(F$),DV,0:POKE780,1:POKE781,FNL(TL):POKE782,FNH(TL):SYS65493:TL=FNI(781) 1206 IFTL>53248THEN1210 1207 TL(KN)=TL 1208 W$(N)=RIGHT$("0"+MID$(STR$(KN),2),2)+"LOAD:"+F$:GOTO1800 1210 SYSPA,20,0,"[150]NOT ENOUGH MEMORY" 1212 FORX=1TO5000:NEXT:KN=KN-1:TL=OT:GOTO1801 1300 W$(N)=" CUE...":GOTO1800 1400 GOSUB1998:IFKN=0THENSYSSR,216:GOSUB1999:GOTO1801 1401 GOSUB1450 1406 IFF%=0THEN1801 1408 W$(N)="PLAY"+LEFT$(W$(W(F%)),2)+":"+MID$(W$(W(F%)),8):GOTO1800 1450 XP=20:YP=0:XW=18:YW=KN+1:CO=1:CR=160:GOSUB10000 1451 FORX=1TOKN:SYSPA,XP+1,YP+X,MID$(W$(W(X)),8):NEXT 1452 SYSMU,YP+1,XP+1,XP+XW-1,KN,1,1,95:SYSSR,216:GOTO1999 1500 W$(N)="@ PAUSE...":GOTO1800 1600 GOSUB1998:IFKN>0THEN1602 1601 SYSSR,216:GOSUB1999:GOTO1801 1602 W$=LEFT$(W$(N-1),2):IF(W$<>"PL")AND(W$<>"C0")THEN1601 1604 GOSUB1450 1606 IFF%=0THEN1801 1608 W$(N)="C0NT"+LEFT$(W$(W(F%)),2)+":"+MID$(W$(W(F%)),8):GOTO1800 1700 IFN=1THEN1801 1701 N=N-1:IFVAL(W$(N))>0THENKN=KN-1:TL=TL(KN) 1702 IFW$(N)="BEGIN"THENNX=N-1:GOSUB7001 1719 GOTO1801 1800 N=N+1 1801 IFN>13THEN1820 1802 GOSUB1998:CH=N-1:CO=13:WI=24:SYSBX,0,39,0,24,160,14 1805 GOSUB10020:FORX=0TON-1:SYSPA,XP+2,YP+1+X,W$(X):NEXT 1806 SYSPA,XP+1,YP+1+X,">" 1809 GOSUB1999 1810 GOTO1001 1820 GOSUB1998:CH=12:CO=13:WI=24 1821 SYSBX,0,39,0,24,160,14:GOSUB10020:Q=0:FORX=N-13TON-1 1822 SYSPA,XP+2,YP+1+Q,W$(X):Q=Q+1:NEXT 1824 SYSPA,XP+1,YP+1+Q,">":GOTO1809 1900 W$(N)="X END":NN=099:GOTO1800 1998 C0=CO:X1=XP:X2=XW:Y1=YP:Y2=YW:RETURN 1999 CO=C0:XP=X1:XW=X2:YP=Y1:YW=Y2:RETURN 2000 POKE53281,1:SYSSR,208:CH=4:WI=20:CR=160:CO=5:GOSUB10020 2010 SYSCT,YP+1,"MAKE CONCERT" 2020 SYSCT,YP+2,"EDIT CONCERT" 2030 SYSCT,YP+3,"SAVE CONCERT" 2035 SYSCT,YP+4,"LOAD CONCERT" 2036 SYSCT,YP+5,"PLAY CONCERT" 2037 SYSCT,YP+6,"DISK ACCESS ":SYSCT,YP+7,"_ TO EXIT" 2040 SYSMU,YP+1,XP+1,XP+XW-1,6,CO,0,95 2050 IFF%=0THEN50 2060 ONF%GOTO1000,3000,4000,5000,5500,6000 2500 SYSBX,14,24,4,6,160,6:SYSBX,13,23,3,5,160,2:SYSPA,14,4,"PRESS KEY" 2501 POKE198,0:WAIT198,1:POKE198,0:RETURN 3000 POKE53281,0:SYSBX,0,39,0,34,160,14:NN=0:V$="EDIT" 3001 MODE=0:IFN>0THENMODE=1 3002 GOTO1801 4000 IFN=0THEN2000 4005 WI=18:CR=160:CO=2:CH=0:SYSSR,208:GOSUB10020 4010 SYSPA,XP+1,YP+1,"SAVE:" 4020 SYSPA,XP+1,YP+2,"[146][144]PC. ":SYSPA,XP+4,YP+2,"" 4030 SYSGW,0,15,13:IFW$=""THEN2000 4031 W$="PC."+W$ 4035 CLOSE15:OPEN15,DV,15,"S0:"+W$:CLOSE15 4040 CLOSE4:OPEN4,DV,4,W$+",S,W" 4050 FORX=0TON-1:PRINT#4,W$(X):NEXT:CLOSE4 4080 GOTO2000 5000 IFN=0THEN5020 5010 WI=18:CR=160:CO=2:CH=1:SYSSR,208:GOSUB10020 5012 SYSPA,XP+1,YP+1,"LOAD:" 5013 SYSCT,YP+2,"NEW CONCERT" 5014 SYSCT,YP+3,"APPEND" 5015 SYSMU,YP+2,XP+1,XP+XW-1,2,CO,0,95 5016 IFF%=0THEN2000 5017 IFF%=1THENN=0:KN=0:GOTO5020 5018 N=N-1 5020 SYSSR,208:SYSDM,"$:PC.*",DV,57344,20,3,12,0,6 5030 SYSFI,F$,DV,N:N=F% 5040 GOSUB7000:GOTO2000 5500 GOSUB7100:GOTO2000 6000 SYSSS,216:GOSUB400:GOTO2000 7000 NX=N 7001 TL=88*256:TL(0)=TL:KN=0 7002 IFNX<0THENRETURN 7003 IFW$(NX)<>"BEGIN"THENNX=NX-1:GOTO7002 7004 IFNX=NTHENRETURN 7005 NX=NX+1:IFVAL(W$(NX))=0THEN7004 7006 SYS57812(W$(NX)),DV,0:POKE780,1:POKE781,FNL(TL):POKE782,FNH(TL):SYS65493 7007 KN=KN+1:W(KN)=VAL(W$(NX)):TL=FNI(781):TL(KN)=TL:GOTO7004 7100 SYS6088:DQ=0:SYSSR,208:NX=0:SP=0:GOTO7102 7101 NX=NX+1:IFNX>100THENW$="X ":GOTO7114 7102 W$=LEFT$(W$(NX),2):W=VAL(W$(NX)) 7104 IFW$="BE"THENTP=88*256:GOTO7101 7106 IFW>0THENTP(W)=TP:GOSUB7300:GOTO7101 7108 IFW$=" "THENGOSUB7200:GOTO7101 7110 IFW$="PL"THENGOSUB7210:GOTO7101 7112 IFW$="@ "THENGOSUB7700:GOTO7101 7114 IFW$="X "THEN7250 7116 IFW$="CO"THENGOSUB7260:GOTO7101 7200 SYSSS,216:CO=5 7202 MS$=MID$(W$(NX+1),8)+" CUED":GOSUB7400 7204 POKE198,0:WAIT198,1:POKE198,0:RETURN 7210 KX=0:W=VAL(MID$(W$(NX),5)):POKE163,FNL(TP(W)):POKE164,FNH(TP(W)) 7212 POKE165,FNL(TP(W)+402):POKE166,FNH(TP(W)+402):POKE829,0 7214 IFLEFT$(W$(NX+1),2)="C0"THENGOSUB7500 7215 CO=4:MS$="PLAYING "+MID$(W$(NX),8):GOSUB7400 7216 SYSLO+M9:POKE198,0:RETURN 7250 IFSP=0THENSYS6121:RETURN 7252 SP=SP-1:NX=NX(SP):N=N(SP):W$="BE":GOTO7104 7260 IF(SP>7)OR(N>85)THENW$(N)="X END":RETURN 7261 IFTL>49152THENPRINT"ERROR!":W$(N)="X END":RETURN 7262 NX(SP)=NX:N(SP)=N:NX=N:SYSFI,MID$(W$(NX(SP)),9),DV,N:N=F%:SP=SP+1:RETURN 7300 CO=7:MS$="LOADING: "+MID$(W$(NX),8):GOSUB7400 7301 SYS57812(MID$(W$(NX),8)),DV,0:POKE780,0:POKE781,FNL(TP):POKE782,FNH(TP) 7302 SYS65493:TP=FNI(781):RETURN 7400 IF(TL>49152)OR(TP>49152)THEN7410 7401 SYSBX,4,33,0,4,160,2:SYSSS,216 7402 XP=6:XW=25:YP=1:YW=2:CR=160:GOSUB10000 7403 SYSPA,XP+1,YP+1,MS$:RETURN 7410 POKE646,CO 7411 PRINT" " 7412 PRINT" " 7413 PRINT" " 7414 PRINT"[145][145]"MS$ 7415 RETURN 7500 NX=NX+1:IFLEFT$(W$(NX),2)<>"C0"THENNX=NX-1:RETURN 7502 W=VAL(MID$(W$(NX),5)):POKE6164+KX,FNL(TP(W)):POKE6165+KX,FNH(TP(W)) 7504 KX=KX+2:GOTO7500 7700 SYSBX,4,33,0,4,160,2:T=TI+120 7701 IFTI29ORDV=8THEN40030 40020 A=PEEK(828):B=PEEK(828+DV-8):POKE828,B:POKE828+DV-8,A 40030 A$="HELLO CONNECT":FORJ=8TO29:I=PEEK(828+J-8):IFI=14THENNEXT 40040 CLOSE2:OPEN2,I,2:CLOSE2:IFSTTHEN40060 40050 CLOSE15:OPEN15,I,15,"R0:"+A$+"="+A$:INPUT#15,ER:CLOSE15:IFER=63THEN40070 40060 NEXT:PRINT"[147]":POKE53272,23:POKE186,8:END 40070 Q$=CHR$(34):POKE646,PEEK(53281):PRINT"[147]":POKE53272,23 40080 PRINT"[147][146]P[207]2048,0:P[207]44,8:P[207]43,1:P[207]56,160:P[207]55,0:CLR:L[207]"Q$A$Q$","I 40090 PRINT"RUN:":POKE631,13:POKE632,13:POKE198,2:END 60000 CLOSE15:OPEN15,8,15,"S0:CONCERT":CLOSE15:SAVE"CONCERT",8:END