1 ' RENAME/BAS 2 ' Rename all disk files with 3 ' chosen extension to another 4 ' extension. 5 ' By: Wm. A. Van Nest "Van" 6 ' 76703,467 7 CLEAR 5000 8 CLS:LINEINPUT"Old extension (eg., BIN): ";O$:IF O$="" THEN 8 9 LINEINPUT"New extension (eg., MUS): ";N$:IF N$="" THEN 9 10 CLS:PRINT"Renaming all '.";O$;"' files on" 11 PRINT"disk to '.";N$;"'..." 12 PRINT@165,"Is that OK? (Y,N)"; 13 Z$=INKEY$:IF Z$="" THEN 13 14 Z$=CHR$(ASC(Z$)AND95) 15 IF Z$="Y" THEN 16 ELSE IF Z$="N" THEN 7 ELSE 12 16 PRINT@224,"Working...":DIM C$(11),D$(68) 17 FOR X = 3 TO 11 18 DSKI$ 0,17,X,A$,B$ 19 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 22 20 C$(X)=A$+LEFT$(B$,127) 21 NEXT X 22 X=X-1:C=0 23 FOR Y = 3 TO X 24 FOR Z = 0 TO 7 25 IF MID$(C$(Y),Z*32+9,3)<>O$ THEN 30 26 D$(C)=MID$(C$(Y),Z*32+1,8) 27 OK$=LEFT$(D$(C),1) 28 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 30 29 C=C+1 30 NEXT Z:NEXT Y 31 IF C=0 THEN PRINT@224,"No '.";O$;"' files on disk!":GOTO 36 32 C=C-1 33 FOR D = 0 TO C:PRINT@288,"Renaming: ";D$(D); 34 RENAME D$(D)+"/"+O$ TO D$(D)+"/"+N$ 35 NEXT D 36 PRINT@288,"Done!":PRINT:END 37 ' *** End of program *** +1 30 NEXT Z:NEXT Y 31 IF C=0 THEN PRINT@224,"No '.";O$;"' files on disk!":GOTO 36 32 C=C-1 33 FOR D = 0 TO C:PRINT@288,"Renaming: ";D$(D); 34 RENAME D$(D)+"/"+O$ TO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  1 ' EDTITL/BAS 2 ' Edits title lines of all 3 ' "/MUS" Musica files on disk. 4 ' By: Wm. A. Van Nest "Van" 5 ' 76703,467 6 CLS:GOTO66 7 PRINT"ll files or ingle file?"; 8 X$=INKEY$:IF X$="" THEN 8 ELSE X$=CHR$(ASC(X$)AND95) 9 IF X$="A" THEN 13 ELSE IF X$<>"S" THEN SOUND 100,2:GOTO 8 10 CLS:PRINT"Filename (w/o /MUS extension):" 11 LINEINPUT D$(0):IF D$(0)="" THEN 10 12 C=0:CLS:GOTO 31 13 CLS:PRINT@5,"Reading directory..." 14 DIM M$(11),D$(68) 15 FOR X = 3 TO 11 16 DSKI$ 0,17,X,A$,B$ 17 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 20 18 M$(X)=A$+LEFT$(B$,127) 19 NEXT X 20 X=X-1:C=0 21 FOR Y = 3 TO X 22 FOR Z = 0 TO 7 23 IF MID$(M$(Y),Z*32+9,3)<>"MUS" THEN 28 24 D$(C)=MID$(M$(Y),Z*32+1,8) 25 OK$=LEFT$(D$(C),1) 26 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 28 27 C=C+1 28 NEXT Z:NEXT Y 29 IF C=0 THEN PRINT@224,"No '.MUS' files on disk!":GOTO 54 30 C=C-1 31 FOR D = 0 TO C 32 CLS:PRINT@5,"Loading: ";D$(D):LOADM D$(D)+"/MUS" 33 GOSUB 55 34 O$="":N$="" 35 CLS:PRINT@5,"Editing: ";D$(D); 36 FOR P=E-&H40 TO E 37 O$=O$+CHR$(PEEK(P)):NEXT P 38 PRINT@64,"Old title:":PRINT@128,O$ 39 PRINT@224,"Enter 2 lines for new title, to end:"; 40 PRINT@288,"";:LINEINPUT N1$:IF N1$="" THEN N1$=MID$(O$,1,32) ELSE N1$=N1$+STRING$(32," ") 41 LINEINPUT N2$:IF N2$="" THEN N2$=MID$(O$,33,32) ELSE N2$=N2$+STRING$(32," ") 42 N$="":N$=MID$(N1$,1,32)+MID$(N2$,1,32) 43 PRINT@224,"New title will be:":PRINT:PRINTN$:PRINT 44 PRINT"Is this correct? (Y,N)" 45 Z$=INKEY$:IF Z$="" THEN 45 46 Z$=CHR$(ASC(Z$)AND95) 47 IF Z$="Y" THEN 48 ELSE IF Z$="N" THEN 34 ELSE 45 48 PRINT@5,"Saving: "D$(D) 49 CH=1:FOR P=E-&H40 TO E-1 50 POKE P,ASC(MID$(N$,CH,1)) 51 CH=CH+1:NEXT P 52 SAVEM D$(D)+"/MUS",&H4000,E,E 53 NEXT D:IF X$="S" THEN RUN 54 CLS:PRINT@5,"Disk is complete!":PRINT:END 55 OPEN"D",1,D$(D)+"/MUS",1:FIELD1,1 AS C$:R=1 56 GET#1,R:IF ASC(C$)=255 THEN 62 57 GET#1,R+1:L=256*ASC(C$) 58 GET#1,R+2:L=L+ASC(C$) 59 GET#1,R+3:A=256*ASC(C$) 60 GET#1,R+4:A=A+ASC(C$) 61 R=R+L+5:GOTO 56 62 GET#1,R+3:E=256*ASC(C$) 63 GET#1,R+4:E=E+ASC(C$) 64 E=A+L-1:CLOSE #1 65 RETURN 66 PCLEAR1:CLEAR 5000,&H3F50:GOTO 7 67 ' *** End of program *** ET#1,R+3:E=256*ASC(C$) 63 GET#1,R+4:E=E+ASC(C$) 64 E=A+L-1:CLOSE #1 6 1 ' ADDPLA/BAS 2 ' This will add the ML player 3 ' routine to Musica files, 4 ' whether or not it already 5 ' exists. It won't hurt if 6 ' it already has one. Used 7 ' to make Musica files into 8 ' stand-alone executable. 9 ' By: Wm. A. Van Nest 10 ' 76703,467 11 CLS:PRINT"This will add the player routineto all '.MUS' files on disk." 12 PRINT:PRINT"It will not hurt if any already contain the player." 13 PRINT@192,"Is this what you want (Y,N)"; 14 Z$=INKEY$:IF Z$="" THEN 14 15 Z$=CHR$(ASC(Z$)AND95) 16 IF Z$="Y" THEN 17 ELSE IF Z$="N" THEN 44 ELSE 14 17 GOTO 56 18 PRINT@256,"Poking ML data..." 19 FOR X=&H3F00 TO &H3FBF:PRINT@273,X; 20 READ V$:POKE X,VAL("&H"+V$):NEXT X 21 PRINT@256,"Working... " 22 DIM M$(11),D$(68) 23 FOR X = 3 TO 11 24 DSKI$ 0,17,X,A$,B$ 25 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 28 26 M$(X)=A$+LEFT$(B$,127) 27 NEXT X 28 X=X-1:C=0 29 FOR Y = 3 TO X 30 FOR Z = 0 TO 7 31 IF MID$(M$(Y),Z*32+9,3)<>"MUS" THEN 36 32 D$(C)=MID$(M$(Y),Z*32+1,8) 33 OK$=LEFT$(D$(C),1) 34 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 36 35 C=C+1 36 NEXT Z:NEXT Y 37 IF C=0 THEN PRINT@320,"No '.MUS' files on disk!":GOTO 44 38 C=C-1 39 FOR D = 0 TO C:PRINT@384,"Massaging: ";D$(D) 40 LOADM D$(D)+"/MUS" 41 GOSUB 45 42 SAVEM D$(D)+"/MUS",&H3F00,E,&H3F00 43 NEXT D 44 PRINT@384,"Done! ":PRINT:END 45 OPEN"D",1,D$(D)+"/MUS",1:FIELD1,1 AS C$:R=1 46 GET#1,R:IF ASC(C$)=255 THEN 52 47 GET#1,R+1:L=256*ASC(C$) 48 GET#1,R+2:L=L+ASC(C$) 49 GET#1,R+3:A=256*ASC(C$) 50 GET#1,R+4:A=A+ASC(C$) 51 R=R+L+5:GOTO 46 52 GET#1,R+3:E=256*ASC(C$) 53 GET#1,R+4:E=E+ASC(C$) 54 E=A+L-1:CLOSE #1 55 RETURN 56 PCLEAR1:CLEAR 5000,&H3EFF:GOTO 18 57 DATA 20,2,20,E,8E,40,0,EC,84,44,54,ED,81,8C,43,FE,2F,F5,86,3F,1F,8B,B6 58 DATA FF,1,84,F7,B7,FF,1,B6,FF,3,84,F7,B7,FF,3,86,3C,B7,FF,23,34,1,1A 59 DATA 50,8E,44,0,A6,80,B7,3F,CD,EC,81,97,C0,D7,C3,EC,81,97,C6,D7,C9,20 60 DATA 16,81,FE,26,10,EC,84,97,C0,D7,C3,EC,2,97,C6,D7,C9,A6,4,97,CD,30 61 DATA 8,A6,80,2B,E6,27,4C,97,CC,D6,CD,D7,CE,A6,9F,3F,C0,AB,9F,3F,C3,A9 62 DATA 9F,3F,C6,A9,9F,3F,C9,B7,FF,20,DC,C1,E3,84,DD,C1,DC,C4,E3,2,DD,C4 63 DATA DC,C7,E3,4,DD,C7,DC,CA,E3,6,DD,CA,A,CE,26,A,A,CC,27,BF,D6,CD,D7 64 DATA CE,20,C7,30,84,30,84,B6,0,0,8A,0,81,0,20,BA,4F,1F,8B,8E,40,0,EC 65 DATA 84,48,58,ED,81,8C,43,FE,2F,F5,35,81 66 ' *** End of program *** 6,DD,CA,A,CE,26,A,A,CC,27,BF,D6,CD,D7 64 DATA CE,20,C7,30,84,30,84,B6,0,0,8A,0,81,0,20,BA,4F,1F,8B,8E,40,0,EC 65 DATA 84,48,58,ED,81,8C,43,FE,2F,F5,35,81 66 ' *** End of program ***                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  1 ' SPMENU/BAS FOR Stereo Pack!! 2 ' MUSICA Song selector with ML player built into the program. 3 ' By: Wm. A. Van Nest "Van" 4 ' 76703,467 5 GOTO 42 6 CLS:LINEINPUT"Place a Musica disk in drive 0, press when ready: ";A$ 7 CLS:PRINT" Turn the printer OFF!!":PRINT@389,"FOR Stereo Pack!!!" 8 PRINT:PRINT"GOTO 27 to restart after Reset" 9 PRINT@160,"Poking ML data..."; 10 FOR X=&H3F00 TO &H3FA3 11 READ V$:PRINT@178,V$;:POKEX,VAL("&H"+V$):NEXT X 12 DIM C$(11),D$(68):PRINT@160,"Reading directory... "; 13 FOR X = 3 TO 11 14 DSKI$ 0,17,X,A$,B$ 15 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 17 16 C$(X)=A$+LEFT$(B$,127):NEXT X 17 POKE&HFF40,0:X=X+1:C=1 18 FOR Y = 3 TO X:FOR Z=0 TO 7 19 IF MID$(C$(Y),Z*32+9,3)<>"MUS" THEN 24 20 D$(C)=MID$(C$(Y),Z*32+1,8) 21 OK$=LEFT$(D$(C),1) 22 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 24 23 C=C+1 24 NEXT Z:NEXT Y 25 M=INT(C/2):C=C-1 26 IF C=0 THEN CLS:PRINT"There are no /MUS files on this disk!!":PRINT:END 27 CLS:PL=0:' Menu display 28 FOR D = 1 TO C 29 PRINT@PL,USING"##";D;:PRINT" - ";D$(D); 30 PL=PL+32:IF D=M THEN PL=16 31 NEXT D:PRINT@PL,"99 - End"; 32 PRINT@450,STRING$(30," ");:PRINT@450,"Enter selection #: ";:LINEINPUT S$:S=VAL(S$) 33 IF S$="99" THEN POKE113,0:EXEC 40999 34 IF S>0 AND S<=C THEN 36 ELSE PRINT@450,STRING$(30," "); 35 PRINT@450,"No such selection!";:SOUND 100,2:FOR I=1 TO 200:NEXTI:GOTO 32 36 PRINT@450,STRING$(30," ");:PRINT@450,"Loading: ";D$(S); 37 F$=D$(S)+"/MUS":LOADM F$:GOSUB 44:T$="" 38 FOR PD = E TO E+&H40 39 T$=T$+CHR$(PEEK(PD)):NEXT PD 40 PRINT@416,T$;:EXEC &H3F00 41 PRINT@416,STRING$(60," ");:GOTO 32 42 PCLEAR1:CLEAR 8000,&H3EFF:GOTO 6 43 ' Get END address routine 44 OPEN "D",#1,F$,1 45 FIELD #1,1 AS B$:GET #1,1 46 FOR L=2 TO 5:GET #1,L:BY(L)=ASC(B$):NEXTL 47 E=BY(4)*256+BY(5):E=E+(BY(2)*256+BY(3))-1 48 E=E-&H40:CLOSE#1:POKE &HFF40,0:RETURN 49 DATA 86,3F,1F,8B,7F,FF,71,7F,FF,73,86,FF,B7,FF,70,B7,FF,72,86,4,B7,FF 50 DATA 71,B7,FF,73,34,1,1A,50,8E,44,0,A6,80,B7,3F,B1,EC,81,97,A4,D7,A7 51 DATA EC,81,97,AA,D7,AD,20,16,81,FE,26,10,EC,84,97,A4,D7,A7,EC,2,97,AA 52 DATA D7,AD,A6,4,97,B1,30,8,A6,80,2B,E6,27,4F,97,B0,D6,B1,D7,B2,A6,9F 53 DATA 3F,A4,AB,9F,3F,AA,B7,FF,70,A6,9F,3F,A7,AB,9F,3F,AD,B7,FF,72,DC,A5 54 DATA E3,84,DD,A5,DC,A8,E3,2,DD,A8,DC,AB,E3,4,DD,AB,DC,AE,E3,6,DD,AE,A 55 DATA B2,26,A,A,B0,27,BC,D6,B1,D7,B2,20,C4,30,84,30,84,B6,0,0,8A,0,81 56 DATA 0,20,B7,4F,1F,8B,35,81 57 ' *** End of program *** ,A8,DC,AB,E3,4,DD,AB,DC,AE,E3,6,DD,AE,A 55 DATA B2,26,A,A,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Musica II Utilities Instructions Page 1 ================================ ====== By: Wm. A. Van Nest "Van" 76703,467 It is no longer necessary to have the player routine tacked onto your Musica files!!! These utilities will help you strip the player routine so you may mantain your Musica library in a format compatible with, and always loadable into Musica! Note: Be sure to run DELPLA on any new files you add to strip off the player routine. All play utilities generate the routine, so it is not needed on each file. If you keep your files without the Player routine, you will be able to use the same copy for playing AND loading directly into Musica. Related files: ============== PLMENU.BAS SPMENU.BAS PLGPLA.BAS SLGPLA.BAS ADDPLA.BAS APPEND.BAS DELPLA.BAS RENAME.BAS EDTITL.BAS PRTITL.BAS Program instructions: ===================== PLMENU.BAS: =========== Select any song to play by number. Program generates player routine and plays through CoCo Speaker. SPMENU.BAS ========== Select any song to play by number. Program generates player routine and plays through STEREO PACK! PLGPLA.BAS ========== Plays every song on disk in directory order. Program generates player routine and plays through CoCo Speaker. SLGPLA.BAS ========== Plays every song on disk in directory order. Program generates player routine and plays through STEREO PACK! ^kN Musica II Utilities Instructions Page 2 ================================ ====== By: Wm. A. Van Nest "Van" 76703,467 ADDPLA.BAS ========== Adds CoCo speaker PLAYER routine to files for "export" to someone without these utilities, ie., creates a "stand-alone" music file. APPEND.BAS ========== Stolen from Mike Ward, this program will append one, or the same, Musica file to another. DELPLA.BAS ========== Strips the PLAYER routine from all /MUS files on a disk. RENAME.BAS ========== Renames all files of one extension on disk to another extension. This is useful if you have a disk of .BIN Musica files to change to .MUS prior to DELPLA, etc. EDTITL.BAS ========== This utility will edit the title lines in a Musica II file. NOTE: The file MUST have been created or edited with Musica II before running this or there will be no title in the file and you will overwrite music data instead!!! PRTITL.BAS ========== This will print a nice listing of all .MUS files on disk, with filename, Title, and Author (extracted from the Music Data). The files MUST have titles created by Musica II! overwrite music data instead!!! PRTITL.BAS ========== This will print a nice listing of all                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ┼╔┴┴!┬#┬╔╚╞╞╟*┬                         MUTILS DOC  аPLMENU BAS "ESPMENU BAS ╞PLGPLA BAS $NSLGPLA BAS %╧ADDPLA BAS <DELPLA BAS &MAPPEND BAS 'PRENAME BAS YEDTITL BAS ╗PRTITLE BAS (MTEST BAS)'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 1 ' PLMENU/BAS w/o Stereo Pack 2 ' MUSICA Song selector with ML player built into the program. 3 ' By: Wm. A. Van Nest "Van" 4 ' 76703,467 5 GOTO 42 6 CLS:LINEINPUT"Place a Musica disk in drive 0, press when ready: ";A$ 7 CLS:PRINT" Turn the printer OFF!!":PRINT@386,"Without STEREO PACK!!!" 8 PRINT:PRINT"GOTO 27 to restart after Reset" 9 PRINT@160,"Poking ML data..."; 10 FOR X=&H3F00 TO &H3FBF 11 READ V$:PRINT@178,V$;:POKEX,VAL("&H"+V$):NEXT X 12 DIM C$(11),D$(68):PRINT@160,"Reading directory... "; 13 FOR X = 3 TO 11 14 DSKI$ 0,17,X,A$,B$ 15 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 17 16 C$(X)=A$+LEFT$(B$,127):NEXT X 17 POKE&HFF40,0:X=X+1:C=1 18 FOR Y = 3 TO X:FOR Z=0 TO 7 19 IF MID$(C$(Y),Z*32+9,3)<>"MUS" THEN 24 20 D$(C)=MID$(C$(Y),Z*32+1,8) 21 OK$=LEFT$(D$(C),1) 22 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 24 23 C=C+1 24 NEXT Z:NEXT Y 25 M=INT(C/2):C=C-1 26 IF C=0 THEN CLS:PRINT"There are no /MUS files on this disk!!!":PRINT:END 27 CLS:PL=0:' Menu display 28 FOR D = 1 TO C 29 PRINT@PL,USING"##";D;:PRINT" - ";D$(D); 30 PL=PL+32:IF D=M THEN PL=16 31 NEXT D:PRINT@PL,"99 - End"; 32 PRINT@450,STRING$(30," ");:PRINT@450,"Enter selection #: ";:LINEINPUT S$:S=VAL(S$) 33 IF S$="99" THEN POKE113,0:EXEC 40999 34 IF S>0 AND S<=C THEN 36 ELSE PRINT@450,STRING$(30," "); 35 PRINT@450,"No such selection!";:SOUND 100,2:FOR I=1 TO 200:NEXTI:GOTO 32 36 PRINT@450,STRING$(30," ");:PRINT@450,"Loading: ";D$(S); 37 F$=D$(S)+"/MUS":LOADM F$:GOSUB 44:T$="" 38 FOR PD = E TO E+&H40 39 T$=T$+CHR$(PEEK(PD)):NEXT PD 40 PRINT@416,T$;:EXEC &H3F00 41 PRINT@416,STRING$(60," ");:GOTO 32 42 PCLEAR1:CLEAR 8000,&H3EFF:GOTO 6 43 ' Get END address routine 44 OPEN "D",#1,F$,1 45 FIELD #1,1 AS B$:GET #1,1 46 FOR L=2 TO 5:GET #1,L:BY(L)=ASC(B$):NEXTL 47 E=BY(4)*256+BY(5):E=E+(BY(2)*256+BY(3))-1 48 E=E-&H40:CLOSE#1:POKE &HFF40,0:RETURN 49 DATA 20,2,20,E,8E,40,0,EC,84,44,54,ED,81,8C,43,FE,2F,F5,86,3F,1F,8B,B6 50 DATA FF,1,84,F7,B7,FF,1,B6,FF,3,84,F7,B7,FF,3,86,3C,B7,FF,23,34,1,1A 51 DATA 50,8E,44,0,A6,80,B7,3F,CD,EC,81,97,C0,D7,C3,EC,81,97,C6,D7,C9,20 52 DATA 16,81,FE,26,10,EC,84,97,C0,D7,C3,EC,2,97,C6,D7,C9,A6,4,97,CD,30 53 DATA 8,A6,80,2B,E6,27,4C,97,CC,D6,CD,D7,CE,A6,9F,3F,C0,AB,9F,3F,C3,A9 54 DATA 9F,3F,C6,A9,9F,3F,C9,B7,FF,20,DC,C1,E3,84,DD,C1,DC,C4,E3,2,DD,C4 55 DATA DC,C7,E3,4,DD,C7,DC,CA,E3,6,DD,CA,A,CE,26,A,A,CC,27,BF,D6,CD,D7 56 DATA CE,20,C7,30,84,30,84,B6,0,0,8A,0,81,0,20,BA,4F,1F,8B,8E,40,0,EC 57 DATA 84,48,58,ED,81,8C,43,FE,2F,F5,35,81 58 ' *** End of program *** 0,C7,30,84,30,84,B6,0,0,8A,0,81,0,20,BA,4F,1F,8B,8E,40,0,EC 57 DATA 84,48,58,ED,81,8C,43,FE,2F,F5,35,81 58 ' *** End of program ***                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  1 ' PLGPLA/BAS w/o Stereo Pack 2 ' Musica continuous song 3 ' player with ML player 4 ' routine built in. 5 ' By: Wm. A. Van Nest "Van" 6 ' 76703,467 7 GOTO 33 8 CLS:LINEINPUT"Place a Musica disk in drive 0, press when ready: ";A$ 9 CLS:PRINT@4,"Turn the printer OFF!!":PRINT@230,"Without Stereo Pack!!!" 10 PRINT@100,"Poking ML data..."; 11 FOR X=&H3F00 TO &H3FBF 12 READ V$:POKEX,VAL("&H"+V$):NEXT X 13 DIM C$(11),D$(68):PRINT@100,"Reading directory..." 14 FOR X = 3 TO 11 15 DSKI$ 0,17,X,A$,B$ 16 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 18 17 C$(X)=A$+LEFT$(B$,127):NEXT X 18 POKE&HFF40,0:X=X+1:C=0 19 FOR Y = 3 TO X:FOR Z=0 TO 7 20 IF MID$(C$(Y),Z*32+9,3)<>"MUS" THEN 25 21 D$(C)=MID$(C$(Y),Z*32+1,8) 22 OK$=LEFT$(D$(C),1) 23 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 25 24 C=C+1 25 NEXT Z:NEXT Y:PRINT@4," Musica Longplay" 26 IF C=0 THEN CLS:PRINT"There are no /MUS files on this disk!!!":PRINT:END 27 FOR D=0 TO C-1:PRINT@100,"Loading ";D$(D);"..." 28 F$=D$(D)+"/MUS":LOADM F$:GOSUB 35:T$="" 29 FOR PD = E TO E+&H40 30 T$=T$+CHR$(PEEK(PD)):NEXT PD 31 PRINT@416,T$;:EXEC &H3F00 32 PRINT@416,STRING$(60," ");:NEXT D:GOTO27 33 PCLEAR1:CLEAR 8000,&H3EFF:GOTO 8 34 ' Get END address routine 35 OPEN "D",#1,F$,1 36 FIELD #1,1 AS B$:GET #1,1 37 FOR L=2 TO 5:GET #1,L:BY(L)=ASC(B$):NEXTL 38 E=BY(4)*256+BY(5):E=E+(BY(2)*256+BY(3))-1 39 E=E-&H40:CLOSE#1:POKE &HFF40,0:RETURN 40 DATA 20,2,20,E,8E,40,0,EC,84,44,54,ED,81,8C,43,FE,2F,F5,86,3F,1F,8B,B6 41 DATA FF,1,84,F7,B7,FF,1,B6,FF,3,84,F7,B7,FF,3,86,3C,B7,FF,23,34,1,1A 42 DATA 50,8E,44,0,A6,80,B7,3F,CD,EC,81,97,C0,D7,C3,EC,81,97,C6,D7,C9,20 43 DATA 16,81,FE,26,10,EC,84,97,C0,D7,C3,EC,2,97,C6,D7,C9,A6,4,97,CD,30 44 DATA 8,A6,80,2B,E6,27,4C,97,CC,D6,CD,D7,CE,A6,9F,3F,C0,AB,9F,3F,C3,A9 45 DATA 9F,3F,C6,A9,9F,3F,C9,B7,FF,20,DC,C1,E3,84,DD,C1,DC,C4,E3,2,DD,C4 46 DATA DC,C7,E3,4,DD,C7,DC,CA,E3,6,DD,CA,A,CE,26,A,A,CC,27,BF,D6,CD,D7 47 DATA CE,20,C7,30,84,30,84,B6,0,0,8A,0,81,0,20,BA,4F,1F,8B,8E,40,0,EC 48 DATA 84,48,58,ED,81,8C,43,FE,2F,F5,35,81 49 ' *** End of program *** CC,27,BF,D6,CD,D7 47 DATA CE,20,C7,30,84,30,84,B6,0,0,8A,0,81,0,20,BA,4F,1F,8B,8E,40,0,EC 48 DATA 84,48,58,ED,81,8C,43,FE,2F,F5,35,81 49 ' *** End of program *** 1 ' SLGPLA/BAS for Stereo Pack 2 ' Musica continuous song 3 ' player with ML player 4 ' routine built in. 5 ' By: Wm. A. Van Nest "Van" 6 ' 76703,467 7 GOTO 33 8 CLS:LINEINPUT"Place a Musica disk in drive 0, press when ready: ";A$ 9 CLS:PRINT@4,"Turn the printer OFF!!":PRINT@230,"For Stereo Pack!!!" 10 PRINT@100,"Poking ML data..."; 11 FOR X=&H3F00 TO &H3FA3 12 READ V$:POKEX,VAL("&H"+V$):NEXT X 13 DIM C$(11),D$(68):PRINT@100,"Reading directory..." 14 FOR X = 3 TO 11 15 DSKI$ 0,17,X,A$,B$ 16 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 18 17 C$(X)=A$+LEFT$(B$,127):NEXT X 18 POKE&HFF40,0:X=X+1:C=0 19 FOR Y = 3 TO X:FOR Z=0 TO 7 20 IF MID$(C$(Y),Z*32+9,3)<>"MUS" THEN 25 21 D$(C)=MID$(C$(Y),Z*32+1,8) 22 OK$=LEFT$(D$(C),1) 23 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 25 24 C=C+1 25 NEXT Z:NEXT Y:PRINT@4," Musica Longplay" 26 IF C=0 THEN CLS:PRINT"There are no /MUS files on this disk!!!":PRINT:END 27 FOR D=0 TO C-1:PRINT@100,"Loading ";D$(D);"..." 28 F$=D$(D)+"/MUS":LOADM F$:GOSUB 35:T$="" 29 FOR PD = E TO E+&H40 30 T$=T$+CHR$(PEEK(PD)):NEXT PD 31 PRINT@416,T$;:EXEC &H3F00 32 PRINT@416,STRING$(60," ");:NEXT D:GOTO 27 33 PCLEAR1:CLEAR 8000,&H3EFF:GOTO 8 34 ' Get END address routine 35 OPEN "D",#1,F$,1 36 FIELD #1,1 AS B$:GET #1,1 37 FOR L=2 TO 5:GET #1,L:BY(L)=ASC(B$):NEXTL 38 E=BY(4)*256+BY(5):E=E+(BY(2)*256+BY(3))-1 39 E=E-&H40:CLOSE#1:POKE &HFF40,0:RETURN 40 DATA 86,3F,1F,8B,7F,FF,71,7F,FF,73,86,FF,B7,FF,70,B7,FF,72,86,4,B7,FF 41 DATA 71,B7,FF,73,34,1,1A,50,8E,44,0,A6,80,B7,3F,B1,EC,81,97,A4,D7,A7 42 DATA EC,81,97,AA,D7,AD,20,16,81,FE,26,10,EC,84,97,A4,D7,A7,EC,2,97,AA 43 DATA D7,AD,A6,4,97,B1,30,8,A6,80,2B,E6,27,4F,97,B0,D6,B1,D7,B2,A6,9F 44 DATA 3F,A4,AB,9F,3F,AA,B7,FF,70,A6,9F,3F,A7,AB,9F,3F,AD,B7,FF,72,DC,A5 45 DATA E3,84,DD,A5,DC,A8,E3,2,DD,A8,DC,AB,E3,4,DD,AB,DC,AE,E3,6,DD,AE,A 46 DATA B2,26,A,A,B0,27,BC,D6,B1,D7,B2,20,C4,30,84,30,84,B6,0,0,8A,0,81 47 DATA 0,20,B7,4F,1F,8B,35,81 48 ' *** End of program *** DATA E3,84,DD,A5,DC,A8,E3,2,DD,A8,DC,AB,E3,4,DD,A                                                                                                                                                                                                                                                                 1 ' DELPLA/BAS 2 ' Strips ML player routine 3 ' from all '/MUS" Musica 4 ' files on disk. 5 ' By: Wm. A. Van Nest "Van" 6 ' 76703,467 7 CLS:PRINT"This will strip the ML player" 8 PRINT"routine off all '.MUS' files on disk." 9 PRINT@160,"Is this what you want? (Y,N)"; 10 Z$=INKEY$:IF Z$="" THEN 10 11 Z$=CHR$(ASC(Z$)AND95) 12 IF Z$="Y" THEN 13 ELSE IF Z$="N" THEN 36 ELSE 10 13 PRINT@224,"Working...":GOTO 48 14 DIM M$(11),D$(68) 15 FOR X = 3 TO 11 16 DSKI$ 0,17,X,A$,B$ 17 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 20 18 M$(X)=A$+LEFT$(B$,127) 19 NEXT X 20 X=X-1:C=0 21 FOR Y = 3 TO X 22 FOR Z = 0 TO 7 23 IF MID$(M$(Y),Z*32+9,3)<>"MUS" THEN 28 24 D$(C)=MID$(M$(Y),Z*32+1,8) 25 OK$=LEFT$(D$(C),1) 26 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 28 27 C=C+1 28 NEXT Z:NEXT Y 29 IF C=0 THEN PRINT@224,"No '.MUS' files on disk!":GOTO 36 30 C=C-1 31 FOR D = 0 TO C:PRINT@288,"Massaging: ";D$(D); 32 LOADM D$(D)+"/MUS" 33 GOSUB 37 34 SAVEM D$(D)+"/MUS",&H4000,E,E 35 NEXT D 36 PRINT@288,"Done!":PRINT:END 37 OPEN"D",1,D$(D)+"/MUS",1:FIELD1,1 AS C$:R=1 38 GET#1,R:IF ASC(C$)=255 THEN 44 39 GET#1,R+1:L=256*ASC(C$) 40 GET#1,R+2:L=L+ASC(C$) 41 GET#1,R+3:A=256*ASC(C$) 42 GET#1,R+4:A=A+ASC(C$) 43 R=R+L+5:GOTO 38 44 GET#1,R+3:E=256*ASC(C$) 45 GET#1,R+4:E=E+ASC(C$) 46 E=A+L-1:CLOSE #1 47 RETURN 48 PCLEAR1:CLEAR 5000,&H3F50:GOTO 14 49 ' *** End of program *** ASC(C$) 40 GET#1,R+2:L=L+ASC(C$) 41 GET#1,R+3:A=256*ASC(C$) 42 GET#1,R+4:A=A+ASC(C$) 43 R=R+L+5:GOTO 38 44 GET#1,R+3:E=256*ASC(C$) 45 GET#1,R+4:E=E+ASC(C$) 46 E=A+L-1:CLOSE #1 47                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  1 ' APPEND/BAS 2 ' By Mike Ward 70007,1742 3 ' Prettied up and submitted 4 ' as Musica Utility Set by 5 ' Wm. A. Van Nest "Van" 6 ' 76703,467 7 GOTO45 8 CLS:FOR X=&HE00 TO &HE1A 9 READ H$:POKE X,VAL("&H"+H$):NEXT 10 DATA BE,E,1B,10,BE,E,1D,FE,E,1F,A6,80,A7,C0,BC,E,1D,23 11 DATA F7,33,5F,1F,30,BD,B4,F4,39 12 DEFUSR0=&HE00 13 PRINT@128," Base file -> "; 14 LINEINPUT FI$ 15 F$=FI$:GOSUB38 16 BF$=FI$:B1=SA:B2=EA 17 IF SA<>&H4000 THEN37 18 PRINT@192,"Append file -> "; 19 LINEINPUT FI$ 20 F$=FI$:GOSUB38 21 AF$=FI$:A1=EA-SA:A2=EA-&H2000 22 IF SA<>&H4000 THEN37 23 IF A2=>&H4000 THEN PRINT@256,"Append file is too long":END 24 IF A1+B2>&H7E00 THEN PRINT@256,"Finished file will be too long":END 25 LOADM BF$ 26 LOADM AF$,&HE000 27 POKE&HE1B,&H24:POKE&HE1C,5 28 AD=A2:GOSUB44 29 POKE&HE1D,MS:POKE&HE1E,LS 30 AD=B2:GOSUB44 31 POKE&HE1F,MS:POKE&HE20,LS 32 FE=USR0(0) 33 PRINT@256,"File name to save -> "; 34 LINEINPUT FI$ 35 SAVEM FI$,B1,FE,FE 36 END 37 PRINT"Not a Musica file":END 38 OPEN "D", #1, F$, 1 39 FIELD #1,1 AS B$ 40 GET #1, 1 41 FOR L=2 TO 5:GET #1,L:BY(L)=ASC(B$):NEXT 42 SA=BY(4)*256+BY(5):EA=SA+(BY(2)*256+BY(3))-1 43 CLOSE:RETURN 44 MS=INT(AD/256):LS=AD-256*MS:RETURN 45 PCLEAR1:CLEAR1000,&H2000:GOTO8 46 ' *** End of program *** 5):EA=SA+(BY(2)*256+BY(3))-1 43 CLOSE:RETURN 44 MS=INT(AD/256):LS=AD-256*MS:RETURN 45 PCLEAR1:CLEAR1000,&H2000:GOTO8 46 ' *** End of program ***                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  1 ' PRTITL/BAS 2 ' Prints titles of all /MUS 3 ' Musica files on disk. 4 ' By: Wm. A. Van Nest "Van" 5 ' 76703,467 6 CLS:GOTO48 7 PRINT@5,"Reading directory..." 8 DIM M$(11),D$(68) 9 FOR X = 3 TO 11 10 DSKI$ 0,17,X,A$,B$ 11 IF (LEFT$(A$,1)=CHR$(&HFF)) THEN 14 12 M$(X)=A$+LEFT$(B$,127) 13 NEXT X 14 X=X-1:C=0 15 FOR Y = 3 TO X 16 FOR Z = 0 TO 7 17 IF MID$(M$(Y),Z*32+9,3)<>"MUS" THEN 22 18 D$(C)=MID$(M$(Y),Z*32+1,8) 19 OK$=LEFT$(D$(C),1) 20 IF (OK$=CHR$(0) OR OK$=CHR$(&HFF)) THEN 22 21 C=C+1 22 NEXT Z:NEXT Y 23 IF C=0 THEN PRINT@224,"No '.MUS' files on disk!":GOTO 36 24 CLS:PRINT"Enter Listing Title:":PRINT 25 LINEINPUT T$:PRINT#-2,CHR$(10);CHR$(10):PRINT#-2,TAB(10);CHR$(14);T$:PRINT#-2,CHR$(10);CHR$(10) 26 PRINT#-2,"Filename";TAB(13);"Title";TAB(47);"Author" 27 PRINT#-2,"========";TAB(13);STRING$(32,"=");TAB(47);STRING$(32,"=");CHR$(10);CHR$(10) 28 C=C-1 29 FOR D = 0 TO C 30 CLS:PRINT@5,"Reading: ";D$(D):LOADM D$(D)+"/MUS" 31 GOSUB 37 32 O$="":FOR P=E-&H40 TO E 33 O$=O$+CHR$(PEEK(P)):NEXT P 34 PRINT#-2,D$(D);TAB(13);MID$(O$,1,32);TAB(47);MID$(O$,33,32) 35 NEXT D:PRINT#-2,CHR$(12) 36 CLS:PRINT@5,"Disk is complete!":PRINT:END 37 OPEN"D",1,D$(D)+"/MUS",1:FIELD1,1 AS C$:R=1 38 GET#1,R:IF ASC(C$)=255 THEN 44 39 GET#1,R+1:L=256*ASC(C$) 40 GET#1,R+2:L=L+ASC(C$) 41 GET#1,R+3:A=256*ASC(C$) 42 GET#1,R+4:A=A+ASC(C$) 43 R=R+L+5:GOTO 38 44 GET#1,R+3:E=256*ASC(C$) 45 GET#1,R+4:E=E+ASC(C$) 46 E=A+L-1:CLOSE #1 47 RETURN 48 PCLEAR1:CLEAR 5000,&H3F50:GOTO 7 49 ' *** End of program *** 8 44 GET#1,R+3:E=256*ASC(C$) 45 GET#1,R+4:E=E+ASC(C$) 46 E=A+L-1:CLOSE #1 47 RETURN 48 PCLEAR1:CLEAR 5000,&H3F50:GOTO 7 49 ' *** End of program ***                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   $:Г PRTITL/BAS;:Г Prints titles of all /MUSX:Г Musica files on disk.z:Г By: Wm. A. Van Nest "Van"Р:Г 76703,467ЫЮ:Бе48║З@5,"Reading directory..."╬М M$(11),D$(68)▀ А X │ 3 е 11Є ▀ 0,17,X,A$,B$ Е ( О(A$,1)│ Л(&HFF)) з 14) M$(X)│A$л О(B$,127)1 Л X?X│Xм1:C│0OА Y │ 3 е X_А Z │ 0 е 7ДЕ  Р(M$(Y),Zн32л9,3)┤▓"MUS" з 22бD$(C)│ Р(M$(Y),Zн32л1,8)╡OK$│ О(D$(C),1)█Е (OK$│ Л(0) ▒ OK$│ Л(&HFF)) з 22хC│Cл1ёЛ Z:Л Y$Е C│0 з З@224,"No '.MUS' files on disk!":Бе 36DЮ:З"Enter Listing Title:":ЗИ╗Й T$:З#м2, Л(10); Л(10):З#м2,д10); Л(14);T$:З#м2, Л(10); Л(10)╖З#м2,"Filename";д13);"Title";д47);"Author"∙З#м2,"========";д13); б(32,"=");д47); б(32,"="); Л(10); Л(10)C│Cм1А D │ 0 е C@Ю:З@5,"Reading: ";D$(D):╙M D$(D)л"/MUS"JБж 37c O$│"":А P│Eм&H40 е E{!O$│O$л Л( Ж(P)):Л Pн"З#м2,D$(D);д13); Р(O$,1,32);д47); Р(O$,33,32)┴#Л D:З#м2, Л(12)╦$Бе 50Ї%Щ"D",1,D$(D)л"/MUS",1:╨1,1  з C$:R│1&─#1,R:Е  К(C$)│255 з 44)'─#1,Rл1:L│256н К(C$)@(─#1,Rл2:L│Lл К(C$)Y)─#1,Rл3:A│256н К(C$)p*─#1,Rл4:A│Aл К(C$)В+R│RлLл5:Бе 38Ы,─#1,Rл3:E│256н К(C$)▓-─#1,Rл4:E│Eл К(C$)├.E│AлLм1:Ъ #1╔/Ру0└1:Х 5000,&H3F50:Бе 71:Г *** End of program ***2╧2!<:Г PRTITL/BASB=:Г Prints titles of all /MUS_>:Г Musica files on disk.Б?:Г By: Wm. A. Van Nest "Van"Ч@:Г 76703,467гAЮ:Бе107┬BЗ@5,"Reading directory..."╓CМ M$(11),D$(68)чDА X │ 3 е 11·E▀ 2,17,X,A$,B$FЕ ( О(A$,1)│ Л(&HFF)) з 731GM$(X)│A$л О(B$,127)9HЛ XGIX│Xм1:C│0WJА Y │ 3 е XgKА Z │ 0 е 7МLЕ  Р(M$(Y),Zн32л9,3)┤▓"MUS" з 81йMD$(C)│ Р(M$(Y),Zн32л1,8)╜NOK$│ О(D$(C),1)уOЕ (OK$│ Л(0) ▒ OK$│ Л(&HFF)) з 81эPC│Cл1∙QЛ Z:Л Y,RЕ C│0 з З@224,"No '.MUS' files on disk!":Бе 95LSЮ:З"Enter Listing Title:":ЗРT╗Й T$:З#м2, Л(10); Л(10):З#м2,д10); Л(14);T$:З#м2, Л(10); Л(10)┐UЗ#м2,"Filename";д13);"Title";д47);"Author"VЗ#м2,"========";д13); б(32,"=");д47); б(32,"="); Л(10); Л(10) WC│Cм1XА D │ 0 е CHYЮ:З@5,"Reading: ";D$(D):╙M D$(D)л"/MUS"RZБж 96k[O$│"":А P│Eм&H40 е EГ\O$│O$л Л( Ж(P)):Л P╡]З#м2,D$(D);д13); Р(O$,1,32);д47); Р(O$,33,32)╔^Л D:З#м2, Л(12)ы_Ю:З@5,"Disk is complete!":З:К`Щ"D",1,D$(D)л"/MUS",1:╨1,1  з C$:R│11a─#1,R:Е  К(C$)│255 з 103Jb─#1,Rл1:L│256н К(C$)ac─#1,Rл2:L│Lл К(C$)zd─#1,Rл3:A│256н К(C$)Сe─#1,Rл4:A│Aл К(C$)гfR│RлLл5:Бе 97╝g─#1,Rл3:E│256н К(C$)╙h─#1,Rл4:E│Eл К(C$)фiE│AлLм1:Ъ #1ъjРk└1:Х 5000,&H3F50:Бе 66#l:Г *** End of program ***)│255 з 103Jb─#1,Rл1:L│256н К(C$)ac─#1,Rл2:L│Lл К(C$)zd─#1,Rл3:A│256н К(C$)Сe─#1,Rл4:A│Aл К(C$)гfR│RлLл5:Бе 97╝g─#1,Rл3:E│256н К(C$)╙h─#1,Rл4:E│Eл К(C$)фiE│AлLм1:Ъ #1ъjРk└1:Х 5000,&H3F50