0050 L4,C# 26780 'QUARTER NOTE TRIPLET 26790 L6,C 26800 L6,E 26810 L6,A 30000 'HALF NOTE HARMONY 30010 'QUARTER NOTE MELODY 30020 L4,*C,>B% * * * Q COMMAND --------- THIS COMMAND CONSISTS OF JUST THE LETTER Q. IT TERMINATES THE PROGRAM (QUITS). THE PROGRAM WILL GIVE INSTRUCTIONS AS TO HOW TO SAVE THE MACHINE LANGUAGE MUSIC DATA TO TAPE (FOR DISK, SUBSTITUTE SAVEM FOR CSAVEM). * * * IF INPUT IS FROM A FILE AND THE END OF FILE IS REACHED WITHOUT A Q COMMAND, THE PROGRAM WILL ASK YOU IF YOU WANT TO QUIT OR CONTINUE. IF YOU INDICATE C FOR CONTINUE, IT WILL ASK AGAIN IF ENTRY IS FROM KEYBOARD OR FILE. THE SUBSEQUENT INPUT WILL BE CONVERTED TO MACHINE LANGUAGE AND APPENDED TO WHAT IS ALREADY IN MEMORY. THUS YOU CAN CHAIN TWO OR MORE FILES TOGETHER. ONLY THE LAST SHOULD END WITH A Q COMMAND. -------------------------------- VERSION 1.2 OF KOMPOSR WILL RUN ON A 16K COMPUTER WITH EXTENDED COLOR BASIC. IF YOU HAVE 16K AND DISK, THERE IS ALMOST NO ROOM LEFT FOR MODIFICATION. IF YOU HAVE 16K WITHOUT DISK, YOU MAY EITHER CHANGE THE PCLEAR6 TO PCLEAR7 TO GET MORE ROOM FOR THE MUSIC OR ADD A FEW MODIFICAIONS OF YOUR OWN TO KOMPOSR. IF YOU HAVE 32K YOU CAN PCLEAR8 AND ALSO MODIFY KOMPOSR TO YOUR HEART'S CONTENT. IN FACT, 32K USERS COULD "FAKE" A PCLEAR16 WITH THE RIGHT POKES, TAKE THE PCLEAR OUT OF THE PROGRAM, AND HAVE ROOM FOR PERHAPS 8 TO 10 MINUTES OF MUSIC. (I HAVE NOT TRIED THIS.) KOMPOSR DOESN'T TAKE ADVANTAGE OF THE EXTRA RAM IN A 64K COMPUTER. * * * MEMBERS OF THE COLOR COMPUTER SPECIAL INTEREST GROUP MAY MAKE COPIES OF THE PROGRAM AND THIS DOCUMENTATION FOR THEIR OWN USE ONLY. THE COPYRIGHT NOTICE MUST REMAIN INTACT ON ALL COPIES. * * * USERS ARE ENCOURAGED TO MODIFY THEIR OWN COPIES WITH ANY NEW FEATURES OR IMPROVEMENTS THEY FIND USEFUL. IF YOU IMPROVE THE PROGRAM, PLEASE SHARE YOUR WORK WITH OTHER MEMBERS OF THE SIG. IT WILL BE VERY HELPFUL IF YOU NOTE IN YOUR MESSAGES OR FILES WHICH VERSION OF KOMPOSR THE CHANGES ARE FOR. * * * I WOULD LIKE TO BE ABLE TO CONTINUE TO ENHANCE AND SUPPORT THE KOMPOSR PROGRAM. HOWEVER, I HAVE OTHER RESPONSIBILITIES AND LIMITED TIME AT PRESENT. YOUR COMMENTS AND SUGGESTIONS ARE WELCOME, AND I WILL RESPOND IF TIME PERMITS. PLEASE UNDERSTAND, THOUGH, THAT I CANNOT OFFER THE SAME AMOUNT OF SUPPORT FOR THIS FREE OFFERING THAT SHOULD BE EXPECTED FROM AN AUTHOR WHO IS IN THE BUSINESS OF WRITING AND SELLING SOFTWARE. * * * I SINCERELY HOPE YOU WILL FIND THIS PROGRAM USEFUL AND THAT YOU WILL ENJOY THE MUSIC WHICH YOU OR MANY OF THE OTHER MEMBERS OF THE SIG PUT TOGETHER WITH IT. HAVE FUN! BERNIE PLUTH 70003,545 **********************POSR WILL HANDLE NOTES FROM A 32ND TO A WHOLE NOTE IN LENGTH AND WILL PERMIT DOTTED NOTES EXCEPT FOR DOTTED 32NDS. IT WILL ALSO HANDLE HALF NOTE, QUARTER NOTE AND EIGHTH NOTE TRIPLETS. A QUARTER NOTE TRIPLET IS THREE QUARTER NOTES PLAYED IN THE TIME THAT TWO WOULD NORMALLY TAKE. THE SAME CONCEPT EXISTS FOR THE OTHER TRIPLETS, THREE IN THE TIME OF TWO. THERE HAS BEEN SOME DISCUSSION ON THE SIG OF PATCHES TO EARLIER VERSIONS OF KOMPOSR WHICH WOULD HANDLE TRIPLETS. IT IS NOT CERTAIN THAT ALL SUCH PATCHES WERE CORRECT. AT THIS WRITING THERE IS A MUSIC FILE TITLED COF.MUS WHICH CONTAINS MANY COMMAND STRINGS BEGINNING WITH L6 WHICH WERE TO BE EIGHTH NOTE TRIPLETS. THIS FILE IS NOT COMPATIBLE WITH VERSION 1.2 OF KOMPOSER, WHICH EXPECTS L12 FOR AN EIGHTH NOTE TRIPLET. * * * IF YOU HAVE NOT COMPLETELY UNDERSTOOD THE ABOVE CONCEPTS, THEY MAY BECOME CLEARER IN THE DISCUSSION OF THE SPECIFIC COMMAND STRINGS. * * * THE REMAINDER OF THIS DOCUMENT CAN BE FOUND IN KOMPOS.DC2 ON SIG/ACCESS. * * * ******************************** DOCUMENTATION FOR KOMPOS.CC VERSION 1.2 (CONTINUED) ******************************** THE SPECIFIC FORMATS (SYNTAX) OF THE FIVE COMMAND STRINGS USED BY KOMPOSR ARE DESCRIBED BELOW. FOR MORE GENERAL INFORMATION, ALSO SEE KOMPOS.DOC AND THE DOCUMENTATION FOR THE PLAYER PROGRAM. * * * ' COMMAND --------- THIS IS THE COMMENT COMMAND. EVERYTHING FOLLOWING THE ' ON THE LINE IS IGNORED. I RECOMMEND LIBERAL USE OF THIS COMMAND TO MARK MEASURES OR BARS OR TO MARK CODAS OR WHAT HAVE YOU. EXAMPLES: 10000 'HILL STREET BLUES 10010 ' 10020 ' BAR 1 MEASURE 1 * * * K COMMAND --------- THIS COMMAND STRING SETS THE KEY OF THE MUSIC. IT SHOULD BE THE FIRST NON-COMMENT COMMAND. * * * THE COMMAND STRING CONSISTS OF THE LETTER K FOLLOWED BY A COMMA AND THEN FOLLOWED BY ONE OR MORE PAIRS CONSISTING OF A NOTE AND A SHARP OR FLAT SIGN. UPPERCASE 3 (#) IS SHARP. UPPERCASE 5 (%) IS FLAT. SEPARATE THE PAIRS WITH COMMAS. * * * THIS COMMAND SHOULD NORMALLY BE USED ONLY ONCE, UNLESS THE KEY OF THE COMPOSITION CHANGES. EXAMPLES: 10050 K,C%,G% 10050 K,D#,G#,A# * * * R COMMAND --------- THIS COMMAND STRING SPECIFIES A REST. IT CONSISTS OF THE LETTER R FOLLOWED BY THE DURATION. THE DURATION IS SPECIFIED AS THE DENOMINATOR OF A FRACTION WITH NUMBERATOR OF ONE. THUS A HALF NOTE (1/2) REST IS R2 AND AN EIGHTH NOTE REST IS R8 AND SO ON. VALID NUMBERS ARE 1, 2, 4, 8, 16, AND 32 AND ALL BUT 32 CAN BE FOLLOWED BY A DOT (PERIOD). EXAMPLES: 10580 'QUARTER REST 10590 R4 13240 'DOTTED HALF REST 13240 R2. * * * L COMMAND --------- THIS COMMAND SPECIFIES THE NOTE OR CHORD TO BE PLAYED AND ITS LENGTH. IT CONSISTS OF THE LETTER L FOLLOWED BY THE LENGTH FOLLOWED BY A UP TO FOUR SUB- STRINGS WHICH SPECIFY UP TO FOUR NOTES. * * * THE LENGTH IS EXPRESSED THE SAME WAY AS IN THE R COMMAND. THE SAME LENGTHS ARE VALID, AND LENGTHS OF 3, 6, AND 12 ARE ALSO PERMITTED FOR THE INDIVIDUAL NOTES MAKING UP HALF NOTE TRIPLETS, QUARTER NOTE TRIPLETS AND EIGHTH NOTE TRIPLETS RESPECTIVELY. * * * EACH SUBSTRING BEGINS WITH A COMMA, FOLLOWED OPTIONALLY BY A STACATO MARK, FOLLOWED OPTION- ALLY BY AN OCTAVE DESIGNATOR, FOLLOWED BY THE NOTE OF THE SCALE, FOLLOWED OPTIONALLY BY A SHARP, FLAT, OR NATURAL SIGN. THERE MUST BE AT LEAST ONE SUB- STRING. * * * THE STACATO MARK IS AN ASTERISK (*). IT CAUSES THE NOTE MARKED TO BE PLAYED FOR A LITTLE LESS TIME THAN SPECIFIED BY THE LENGTH AND A CORRESPONDING REST TO BE ADDED. IT AFFECTS ONLY THE VOICE MARKED. * * * THE OCTAVE DESIGNATOR CONSISTS OF ONE OR TWO LESS-THAN OR GREATER-THAN SYMBOLS (< OR >). C IS MIDDLE C. D IS THE NEXT NOTE HIGHER, FOLLOWED BY E, F, G, A, AND B. >C IS ONE OCTAVE ABOVE MIDDLE C, AND IS FOLLOWED BY >D, >E, >F, AND SO ON. C >D >E >F >G >A >B >>C THE ABOVE ARE THE WHOLE TONES IN SEQUENCE WITH THE UNDERLINED NOTE BEING MIDDLE C. (THE ENTIRE RANGE IS NOT SHOWN.) * * * AS MENTIONED ABOVE, THE SIGNS FOR SHARP AND FLAT ARE # AND % RESPECTIVELY. THE SIGN FOR NATURAL IS @ (AT-SIGN). EXAMPLES: 12300 'SINGLE NOTE, MIDDLE C 12310 'QUARTER NOTE DURATION 12320 L4,C 12330 'HALF NOTE CHORD 12340 L2,C,E,G 20000 'NEXT TWO NOTES SLUR 20010 L4,C# 20020 L4,C# 20030 'NEXT TWO DON'T 20040 L4,*C# 2 LINE FROM THE FILE. * * * IF YOU HAVE EXTENDED COLOR BASIC YOU MAY WISH TO TYPE THE LINES AS IF THEY WERE A PROGRAM AND TAKE ADVANTAGE OF THE EDITING CAPABILITIES OF BASIC. IF YOU CREATE THE FILES THIS WAY, BE SURE TO SAVE IN ASCII FORM WITH THE COMMAND: CSAVE"FILENAME",A THE COMMA A IS CRUCIAL. IF YOU HAVE DISK, CHANGE THE CSAVE TO SAVE. * * * IF YOU HAVE EDTASM+ YOU MAY WISH TO USE ITS EDITOR. BE SURE TO START WITH LINE 10000 OR HIGHER. THE MOVE AND COPY COMMANDS IN THE EDTASM+ EDITOR MAY BE VERY USEFUL. THE W COMMAND (WRITE) WILL SAVE THE FILE IN THE RIGHT FORM. * * * YOU MAY USE SOME OTHER EDITOR OR WORD PROCESSOR SO LONG AS IT WRITES AN ASCII FILE AND WILL LET YOU USE 5 DIGIT LINENUMBERS. * * * YOU MAY WISH TO USE KOMPOSR TO CONVERT MUSIC FILES AVAILABLE IN SIG/ACCESS TO MACHINE LANGUAGE DATA FOR THE PLAYER. AT THE TIME THE PROGRAM WAS WRITTEN, THERE WERE A DOZEN OR SO FILES WHICH CONTAINED MUSIC COMPATIBLE WITH KOMPOSR. ALL WERE NAMED WITH AN EXTENSION OF .MUS -- FOR EXAMPLE HILSTR.MUS OR COF.MUS AND SO ON. IF YOU HAVE A WAY TO DOWNLOAD THEM AND SAVE TO TAPE OR DISK IN ASCII FORM (REMEMBER COMMA A), I RECOMMEND THEM. * * * KOMPOSR RECOGNIZES FIVE TYPES OF COMMAND STRINGS. THE FIRST NON BLANK CHARACTER AFTER THE LINE NUMBER MUST BE K L R Q OR ' (APOSTROPHE). FOR EACH TYPE OF COMMAND LINE THERE IS A SPECIFIC FORMAT REQUIRED. THE FORMATS ARE DESCRIBED IN THE SECOND PART OF THIS DOCUMENTATION, IN THE FILE NAMED KOMPOS.DC2 IN SIG/ACCESS. * * * A FEW GENERAL CONCEPTS MUST BE EXPLAINED BEFORE THE SPECIFIC COMMANDS ARE PRESENTED. * * * THE PLAYER PROGRAM WILL PLAY UP TO FOUR TONES (VOICES) AT THE SAME TIME. FOR ANY NOTE OR CHORD SPECIFIED IN A SINGLE COMMAND STRING, ALL VOICES ARE PLAYED FOR THE SAME DURATION, EXCEPT AS DISCUSSED BELOW FOR STACATO NOTES. THIS MEANS THAT IF THE MUSIC HAS TWO QUARTER NOTES OF MELODY WITH ONE HALF NOTE OF HARMONY, THE HALF NOTE MUST BE TREATED AS TWO IDENTICAL QUARTER NOTES. * * * UNLESS THEY ARE MARKED AS STACATO, IDENTICAL NOTES IN TWO OR MORE CONSECUTIVE COMMAND STRINGS WILL BE SLURRED TOGETHER AND SOUND LIKE ONE NOTE. * * * IF CONSECUTIVE COMMAND STRINGS CONTAIN IDENTICAL NOTES WHICH ARE NOT TO BE SLURRED TOGETHER, THEY CAN BE MARKED AS STACATO (OR PERHAPS ARTICULATED IS A BETTER TERM). IF ONE COMMAND STRING CONTAINS THE NOTES C, E, AND G WITH THE G MARKED STACATO AND THE NEXT CONTAINS THE NOTES C, E, AND G, THE C AND E WILL BE SLURRED TOGETHER FOR THE COMBINED DURATION OF THE TWO COMMAND STRINGS BUT THERE WILL BE TWO NOTICABLY SEPARATE G'S. * * * MARKING A NOTE AS STACATO CAUSES IT TO BE PLAYED FOR JUST A BIT LESS THAN THE NORMAL DURATION. 32ND NOTES AND 16TH NOTES ARE 1/3 SHORTER. OTHER NOTES ARE SHORTENED BY AN AMOUNT JUST A BIT MORE THAN A 32ND. A REST OF THE APPROPRIATE LENGTH REPLACES THE SMALL AMOUNT OF NOTE CHOPPED OFF, SO THE OVERALL TEMPO IS NOT AFFECTED. * * * MANY COMPOSITIONS ARE NOT IN THE KEY OF C. I AM NOT A MUSICIAN SO I DON'T KNOW WHAT SOMETHING LIKE "KEY OF G" MEANS IN TERMS OF WHICH NOTES SHOULD BE SHARP OR FLAT. THEREFORE, KOMPOSR DOESN'T EITHER. YOU SPECIFY THE KEY BY INDICATING EXACTLY WHICH NOTES OF THE SCALE ARE TO BE SHARP OR FLAT AS THE FIRST COMMAND STRING ENTERED INTO KOMPOSR. IF E AND A ARE TO BE PLAYED FLAT THROUGHOUT YOUR COMPOSITION, YOU INCLUDE E-FLAT AND A-FLAT IN YOUR KEY COMMAND LINE. IF A NOTE IS LATER TO BE PLAYED NATURAL, YOU CAN SO INDICATE. HOWEVER, KOMPOSR DOES NOT FOLLOW THE CONVENTION THAT MAKING AN INDIVIDUAL NOTE WITHIN THE COMPOSITION SHARP OR FLAT OR NATURAL WILL APPLY TO THE END OF THE MEASURE! THIS IS BECAUSE IT HAS NO KNOWLEDGE OF WHERE EACH MEASURE BEGINS AND ENDS. THUS, THE CHANGE APPLIES ONLY TO THE CURRENT NOTE OR CHORD. KOMPOSR ALSO ASSUMES THAT ONLY MARKED NOTES ARE CHANGED. IF YOU HAVE A CHORD OF C, E, AND HIGH C AND BOTH C'S ARE TO BE PLAYED SHARP, YOU MUST MARK THEM BOTH! * * * NORMALLY THE KEY SIGNATURE COMMAND STRING APPEARS ONLY ONE TIME, AT THE BEGINNING OF YOUR COMPOSITION. HOWEVER, KOMPOSER PERMITS YOU TO CHANGE KEY IN THE MIDST OF A COMPOSITION. A NEW KEY SIGNATURE CANCELS THE OLD ONE. * * * KOMPOSR WILL NOT ACCEPT A NOTE LOWER THAN THE C TWO OCTAVES BELOW MIDDLE C OR HIGHER THAN THE A BELOW THE C THREE OCTAVES ABOVE MIDDLE C. THUS ITS RANGE IS FIVE OCTAVES. THERE HAS BEEN SOME EVIDENCE THAT THE C TWO OCTAVES BELOW MIDDLE C AND THE D JUST ABOVE THAT ARE NOT PLAYED PROPERLY BY THE PLAYER PROGRAM, BUT THAT HAS NOT BEEN PROVED. * * * KOM(0@(0>(0,2>>>,2>,2,2@,2(0@(@(0@(0(0H&,N&,NR &,N &,J(0H@H(0X(0V(0,2VVV,2V,2,2X,2(0X(0X(0X(0(0`&,f&,fdfd&2f&2b&2`&2\(0X0H8D`8D`8D`8D:@`0``\``X``V``R``X@:0@:0X@:0V@:0X@:0\@:0VD80RD80VD80XD80R@:0@:0 R@:0 V@:0 X@:0 Z@:0\4,04,0\4,04,0\600600\600600\4:04:0\4:04:0 \6>0`6>0d6>0f6>0d6>0`6>0\6>0X6>0V6>0R6>0N6>0V6>06>0V6>0R6>0V6>0X6>0R4@0N4@0R4@0V4@0 N6>0 R6>0 V6>0 X6>0\J80 \H:0 XH:0 RH:0 NH:0 L,:0 D,:0 N6:0 N::0 >::0 @::0D2 0 D0"0 @0"0 :0"0 60"0 4"0 ,"06>0>0 6>0 4>0 6>0 @0(0@6(0>6(0 >2,0 6>,0 >,0 6>,0 >2,0>6,06@,06,0 @0(0 @6(0 @(0 6@(0 @0(0@6(06H(0 N,&0 6,&0 N&0N6&0R6&0 N,&0 J6&0 H0(0 H6(0 @(0 @6(0 X0(0X6(06V(0 V2,0 V6,0 V,0 6,0 V2,0V6,0X6,06,0 X0(0 X6(0 X(0 6(0 X0(0X6(0`6(0f6(06(0f2&d2&f2&d2&d2&b2&`2&\2&X0(0( 6@,06,0 @0(0 @6(0 @bd7 *********************************** DOCUMENTATION FOR KOMPOS.CC VERSION 1.2 ******************************** KOMPOS.CC IS A FILE STORED IN SIG/ACCESS WHICH CONTAINS THE PROGRAM NAMED KOMPOSR. IT IS WRITTEN IN BASIC. IT CAN BE DOWNLOADED IF YOU HAVE RADIO SHACK VIDTEX OR CERTAIN OTHER TERMINAL PROGRAMS. * * * VERSION 1.2 CONTAINS A NUMBER OF ENHANCEMENTS AND A COUPLE OF BUG FIXES FOR EARLIER VERSIONS. IT INCORPORATES ALL KNOWN PATCHES DISCUSSED ON THE COLOR SIG. ------------------------- ! DO NOT APPLY ANY OF ! ! THE PATCHES MENTIONED ! ! IN ANY FILES DATED ! ! BEFORE 1/15/83. THIS ! ! NEW VERSION DIFFERS ! ! DRAMATICALLY FROM THE ! ! EARLIER ONES, EVEN TO ! ! THE EXTENT OF BEING ! ! RENUMBERED. ! ------------------------- * * * KOMPOSR ENABLES YOU TO CREATE THE MACHINE LANGUAGE DATA NEEDED BY THE PLAYER PROGRAM NAMED PLAYER.CC WHICH IS ALSO IN SIG/ACCESS. FOR DOCUMENTATION ON USING PLAYER, SEE THE FILE NAMED MUSINS.DOC BY STEVE WEGERT [71735,230]. * * * KOMPOSR ACCEPTS INPUT FROM THE KEYBOARD OR FROM AN ASCII FILE STORED ON DISK OR TAPE. IT IS MORE OFTEN USED WITH FILE INPUT. KOMPOSR DOES NOT BY ITSELF WRITE ANYTHING TO ANY FILE. THE ONLY "OUTPUT" IS THE M/L DATA STORED IN THE COMPUTER'S MEMORY. * * * WHEN KOMPOSR IS USED IN KEYBOARD MODE, IT GENERATES LINE NUMBERS AT THE BEGINNING OF EACH LINE. YOU MERELY TYPE THE APPROPRIATE COMMAND STRING. IF YOU MAKE AN ERROR, IT WILL PROMPT YOU TO RE-ENTER THE COMMAND STRING. * * * WHEN KOMPOSR IS USED IN FILE MODE, THE LINE NUMBERS MUST BE INCLUDED IN THE FILE. THE LINE NUMBERS MUST ALWAYS BE FIVE DIGITS -- START WITH 10000 OR HIGHER. SMALLER LINE NUMBERS WILL CAUSE THE PROGRAM TO ABORT. THE LINE NUMBER MAY BE FOLLOWED BY ANY NUMBER OF SPACES OR TABS AND THEN THE COMMAND STRING. (AT LEAST ONE SPACE OR TAB AFTER THE LINE NUMBER IS REQUIRED.) IF KOMPOSR FINDS AN ERROR IN A COMMAND STRING READ FROM A FILE, IT ANNOUNCES THE ERROR AND THEN TELLS YOU TO RE-ENTER THE LINE. SIMPLY TYPE THE CORRECT COMMAND STRING WITHOUT TYPING THE LINE NUMBER. OR IF THE LINE IS ONE THAT DOESN'T BELONG (EXTRANEOUS GARBAGE IN THE FILE FOR EXAMPLE) JUST TYPE THE COMMAND: SKIP AND KOMPOSR WILL READ THE NEXT iD@" >"@">" @" @> :::"> :>: > >: 66 & >&:" 6":"6" :" :6 44 " :"6 464 6 6: >0>0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& R& R"N" H" HD H0H0H$H HHD@" >"@">" @" @> :::"> :>: > >: 66 & >&:" 6":"6" :" :6 44 " :"6 464 6 6: >0>0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& R& R"N" H" HD H0H0H$H HHD@" >"@">" @" @> :::"> :>: > >: 66 & >&:" 6":"6" :" :6 44 " :"6 464 6 6: >0>0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& R& R"N" H" HD H0H0H$H HHD@" >"@">" @" @> :::"> :>: > >: 66 & >&:" 6":"6" :" :6 44 " :"6 464 6 6: >0>0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& R& R"N" H" HD H0H0H$H HHD@" >"@">" @" @> :::"> :>: > >: 66 & >&:" 6":"6" :" :6 44 " :"6 464 6 6: >0>0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& R& R"N" H" HD H0H0H$H HHD@" >"@">" @" @> :::"> :>: > >: 66 & >&:" 6":"6" :" :6 44 " :"6 464 6 6: >0>0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& R& R"N" H" HD H0H0H$H HHD@" >"@">" @" @> :::"> :>: > >: 66 & >&:" 6":"6" :" :6 44 " :"6 464 6 6: >0>0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& R& R"N" H" HD H0H0H$H HHD>DHNR N HD`H 0>>>>DH" D"H"D" H" H$DDH DHD H H$D&D>( D( H( H&N& &Q : ** THIS PROGRAM WILL LIST ALL OF THE FILES WITH A "BIN" EXT ON THE DISK.&: ** IF THEY ARE ALL MUSIC PROGRAMS BY KOMPOS.CC, THEN YOU CAN SELECT&: ** ONE TO BE PLAYED AND THE NUMBER OF TIME THE PEACE WILL REPEAT.'3(: ** THEN YOU CAN SELECT THE NEXT PEACE. THIS PROGRAM COULD BE MODIFIED'i2: ** TO SECECT OTHER POSITION-INDEPENDENT CODES.'z<1000,&H3FFF'FPN$(68)'K20000'P:@72,"MUSIC SELECTION":@142,"BY":@201,"MIKE DZIEDZIC":@235,"70255,472"(Z@325,"FOR USE WITH KOMPOS.CC"("d@424,"PLEASE STAND BY"(6n GET DIRECTORY(@x260(S PRINT PAGE 1(bPG1:410(s NEXT PAGE?(}560( SELECT MUSIC( 490( SELECT NUMBER OF TIMES TO BE PLAYED(ȁ 650(҂ PAY MUSIC PEACE(܁ 770(恥 140):) GET DIRECTORY OF DISK)(IX1)4I311)I 0,17,I,A1$,A2$)T"J18)t,J5K(J1)32:K(J5)32)6J5A1$A2$)@PN$(A1$,K1,8))J((PN$,1))255370)T((PN$,1))0360*^ (A1$,K9,3) "BIN" PN$(IX)PN$:IXIX1* hJ,I*(rIXIX1:PM((IX19)20)*.|*5:*F PRINT PAGE*g:" MUSIC SELECTION":*I(PG1)201 PG20* IIX "##)% % ";I;PN$(I);**… PM1 @416,"PAGE";PG;"OF";PM*̐*:* SELECT MUSIC+;@448,"SELECT MUSIC: ";:@461,"";:PN$:PN(PN$)+RPNIX PN0490+] 840+lM PN$(PN)+ &HFF40,0: : TURN OFF DRIVE++&:+0 PRINT NEXT PAGE?+: PM1 :@448,"DO YOU WANT NEXT PAGE(Y/N)? ";+DA$: A$""580,N A$"N" ,4X A$"Y" PGPG1: PGPM PG1,Ib A$"Y" 410,Tl 570,[v:,x SELECT NUMBER OF TIMES,:6);"INPUT NUMBER OF TIMES":10);"TO BE PLAYED",:6);"NEG NUMBER IS INFINITE ", I$:I(I$): I0 I1,840-:9);"TO BE PLAYED"-U I0 8);" AN INFINITE":8);"NUMBER OF ";: 13);I-gƇ12);"TIMES"-Ї::"PLEASE UNPLUG PRINTER":"AND PRESS ENTER";A$-ڇ@320,(96," ")--:- PLAY MUSIC PEACE- I0 880:770- J1 I.# I1 @488,"THIS IS NUMBER";J;.0 880:.6*.=4:.Q> DISPLAY PEACE.zH:@165,"YOU HAVE SELECTED ";PN$(PN).R.\:.f PLAY MUSIC.p&H120B.z K1 1000:..':.'"PLAY"::(0).N / N4 13, 14, 15, 17, 18, 20, 21, 22, 24, 25/9N> 27, 28, 29, 31, 32, 34, 35, 38, 39, 41/fNH 42, 43, 45, 46, 48, 49, 50, 52, 53, 55/NR 56, 56, 57, 59, 59, 60, 60, 62, 62, 62/N\ 63, 63, 63, 63, 63, 63, 63, 62, 62, 62/Nf 60, 60, 59, 59, 57, 56, 55, 55, 53, 520Np 50, 49, 48, 46, 46, 45, 43, 42, 41, 390GNz 38, 36, 35, 34, 32, 31, 31, 29, 28, 270tN 27, 25, 25, 24, 24, 22, 22, 21, 21, 210N 21, 21, 21, 21, 21, 21, 21, 21, 21, 210N 22, 22, 22, 24, 24, 24, 25, 25, 27, 270N 28, 28, 28, 29, 29, 31, 31, 31, 32, 321(N 34, 34, 34, 34, 34, 35, 35, 35, 35, 351UN 35, 35, 34, 34, 34, 34, 32, 32, 32, 311N 31, 29, 29, 28, 28, 27, 25, 25, 24, 221Nʆ 21, 21, 20, 18, 18, 17, 15, 14, 14, 131NԆ 11, 11, 10, 8, 8, 7, 7, 6, 6, 41Nކ 4, 3, 3, 3, 1, 1, 1, 1, 1, 12N 0, 0, 0, 0, 0, 1, 1, 1, 1, 12>N 1, 1, 3, 3, 3, 3, 3, 4, 4, 42aN 4, 4, 6, 6, 6, 6, 6, 6, 6, 62O 7, 7, 7, 7, 7, 7, 7, 6, 6, 62O 6, 6, 6, 6, 6, 6, 4, 4, 4, 42O 4, 4, 4, 4, 4, 4, 3, 3, 3, 42O$ 4, 4, 4, 4, 4, 6, 6, 6, 7, 73O. 7, 8, 10, 10, 11, 13, 0, 0, 2, 1113AO8 2, 148, 2, 235, 2, 228, 3, 16, 3, 633lOB 3, 113, 3, 165, 3, 220, 4, 23, 4, 863OL 4, 152, 4, 221, 5, 40, 5, 118, 5, 2013OV 6, 33, 6, 127, 6, 226, 7, 74, 7, 1853O` 8, 47, 8, 172, 9, 48, 9, 187, 10, 804Oj 10, 237, 11, 147, 12, 67, 12, 254, 13, 1964NOt 14, 149, 15, 115, 16, 95, 17, 88, 18, 964O~ 19, 119, 20, 160, 21, 218, 23, 38, 24, 1354O 25, 252, 27, 136, 29, 43, 30, 231, 32, 1904O 34, 176, 36, 192, 38, 239, 41, 64, 43, 1805O 46, 77, 49, 14, 51, 249, 55, 16, 58, 875@O 61, 207, 65, 124, 69, 96, 73, 129, 77, 2235oO 82, 129, 87, 105, 92, 155, 98, 29, 22, 05O 132, 26, 16, 134, 63, 183, 255, 35, 48, 1415OĆ 254, 110, 159, 67, 159, 70, 159, 73, 159, 766OΆ 48, 141, 0, 125, 159, 64, 57, 158, 64, 16668O؆ 128, 151, 66, 57, 49, 141, 255, 84, 166, 1286mO 238, 166, 223, 79, 166, 128, 238, 166, 223, 816O 166, 128, 238, 166, 223, 83, 166, 128, 238, 1666O 223, 85, 159, 64, 57, 16, 142, 0, 104, 1667P 159, 0, 67, 171, 159, 0, 70, 169, 159, 074P 73, 169, 159, 0, 76, 183, 255, 32, 220, 687fP 211, 79, 221, 68, 220, 71, 211, 81, 221, 717P 220, 74, 211, 83, 221, 74, 220, 77, 211, 857P( 221, 77, 49, 162, 38, 6, 10, 66, 39, 127P2 32, 199, 166, 132, 32, 0, 32, 0, 32, 08%P< 32, 1!"$& BINsPLAY BAS%oMINUET BININSTRUCTDATPLAYER BAS KOMPOSE BAS#7MASH BINsPLAY BAS%oMINUET BININSTRUCTDAT93, 57, 23, 255, 121, 141, 145, 129, 08RPF 38, 1, 57, 141, 145, 141, 174, 32, 2438PP"PLAYER ROUTINE FOR USE WITH DATA COMPILED WITH KOMPOS.CC NOW LOADING...BE PATIENT!"8PZ X4096 46348Pd A8Pn X,A8Px X8P32, 0, 32, 08%P< 32, 11 'KOMPOSR 1/14/83 VER 1.2 2 'COPYRIGHT (C) 1983 3 'BERNARD J. PLUTH, JR. 4 'MEMBERS OF COMPUSERVE CCSIG 5 'ARE AUTHORIZED TO MAKE COPIES 6 'FOR THEIR PERSONAL USE ONLY. 9 GOTO 1120 10 PCLEAR 6:CLEAR 200 20 DIM KA(7),FQ(7),N(4),ST(4) 30 FOR I=1 TO 7:READ FQ(I) 40 IF I<5 THEN N(I)=0 50 NEXTI:NA=&H121B:SA=NA:CLS:GOTO 980 90 KP=KP+1:IF KP>L THEN CH$="":CH=0:RETURN 100 CH$=MID$(LN$,KP,1):CH=ASC(CH$):RETURN 140 IF DV=0 THEN LN=LN+10:PRINT USING "##### ";LN; ELSE IF EOF(DV) THEN 820 150 LINEINPUT #DV,LN$ 160 IF DV=0 THEN 180 ELSE L=LEN(LN$):IF L=0 THEN 140 170 PRINT LN$:LN=VAL(LEFT$(LN$,5)):LN$=RIGHT$(LN$,LEN(LN$)-6) 180 L=LEN(LN$):C1=0:KP=0 190 IF L=0 THEN 140 200 GOSUB 90:IF CH$=" " OR CH=9 THEN200 210 IF CH=0 THEN 230ELSE IF CH$="'" THEN 140 220 IF CH$="K" THEN 280 ELSE IF CH$="L" THEN 400 ELSE IF CH$="R" THEN 610 ELSE IF CH$="Q" THEN 890 230 PRINT " ?INVALID LINE - REENTER":PRINT USING "##### ";LN;:LINEINPUT LN$ 240 IF LN$="SKIP" THEN 140 ELSE 180 280 FOR I=1 TO 7:KA(I)=0:NEXT I 290 GOSUB 90:IFCH$="," THEN 310 300 IF CH=0 AND C1>0 THEN 140 ELSE 230 310 GOSUB 90:IF CH=0 THEN 230 320 IF CH$<"A" OR CH$>"G" THEN 230 330 I=CH-64 340 GOSUB 90:IF CH=0 THEN 230 350 IF CH$="#" THEN KA(I)=2 ELSE IF CH$="%" THEN KA(I)=-2 ELSE 230 360 C1=C1+1:GOTO 290 400 ST(0)=0:C1=0:GOSUB 650:IF ER<>0 THEN 230 410 C1=C1+1:IF C1>4 THEN 230 420 N(C1)=0:OF=0:ST(C1)=1:GOSUB 90:IF CH$="*" THEN ST(C1)=0:ST(C0)=1:GOSUB90 430 IF CH$>="A" AND CH$<="G" THEN 450 ELSE IF CH$="<" THEN 500 ELSE IF CH$=">" THEN 520 440 GOTO 230 450 J=CH-64:N(C1)=FQ(J)+OF*24 460 GOSUB 90:IF CH$="," OR CH=0 THEN N(C1)=N(C1)+KA(J):GOTO 490 470 IF CH$="#" THEN N(C1)=N(C1)+2 ELSE IF CH$="%" THEN N(C1)=N(C1)-2 ELSE IF CH$<>"@" THEN 230 480 GOSUB 90 490 IF CH=0 THEN 530 ELSE IF CH$="," THEN 410 ELSE 230 500 OF=OF-1 510 IF OF<-2 OR OF>2 THEN 230 ELSE GOSUB90:GOTO 430 520 OF=OF+1:GOTO 510 530 IF ST(0)<>1 THEN 550 ELSEIF N(0)=3 THEN ST(0)=1 ELSEIF N(0)=6 THEN ST(0)=2 ELSE ST(0)=4 540 N(0)=N(0)-ST(0) 550 POKE NA,N(0) 560 FOR I=1TO4:POKE NA+I,N(I):N(I)=N(I)*ST(I):NEXTI:NA=NA+5:IF ST(0)=0 THEN140 570 POKE NA,ST(0):ST(0)=0:GOTO560 610 FOR I=1TO4:N(I)=0:NEXTI:GOSUB 650:IF ER<>2 THEN 230 ELSE 530 650 DT=1:ER=0:GOSUB 90 660 IF CH$>="0" AND CH$<="9" THEN 680 670 ER=1:RETURN 680 D1=CH-48:N(0)=D1:GOSUB 90 690 IF CH$="," THEN 750 700 IFCH$>="0" AND CH$<="9" THEN N(0)=D1*10+CH-48:GOSUB90:IF CH$="," THEN 750 710 IF CH$="." THEN DT=1.5:GOTO 730 720 IF CH=0 THEN 740 ELSE 670 730 GOSUB 90:IF CH$="," THEN 750 ELSE IF CH<>0 THEN 670 740 ER=2:IF N(0)=0 THEN RETURN ELSE IF N(0)=3 OR N(0)=6 OR N(0)=12 THEN 760 750 FOR I=0 TO 5:J=INT(2^I):IF N(0)=J THEN 760 ELSE NEXT I 760 N(0)=96/N(0)*DT:IF N(0)<3 THEN ER=1 770 IF N(0)<>INT(N(0)) THEN ER=1 780 RETURN 820 PRINT:PRINT"END OF FILE" 830 INPUT"ENTER Q TO QUIT, C TO CONTINUE";CH$:IF CH$="Q" THEN890 840 IF CH$<>"C" THEN PRINT"INVALID":GOTO830 850 :CLOSE#DV:GOTO980 890 POKE NA,0:PRINT:PRINT"M/L MUSIC DATA CREATED.":PRINT 900 PRINT"SAVE DATA WITH COMMAND:" 910 PRINT"CSAVEM";CHR$(34);"FILENAME";CHR$(34);","; 920 PRINTUSING"####";SA;:PRINT","; 930 LN$=STR$(NA):L=LEN(LN$):PRINT RIGHT$(LN$,L-1);",4619" 940 END 980 PRINT "INPUT NOTATION FROM" 990 PRINT " 1. CASSETTE FILE" 1000 PRINT " 2. KEYBOARD" 1010 INPUT " 3. DISK FILE";I 1020 DV=I-2:ON I GOTO 1040,1100,1040 1030 INPUT "?INVALID - CHOOSE 1, 2, OR 3";I:GOTO 1020 1040 INPUT "NOTATION FILE NAME";F$ 1050 IF DV=-1 THEN CN=8 ELSE CN=12 1060 IF LEN(F$)=0 THEN 980 1070 IF LEN(F$)>CN THEN PRINT " ?INVALID FILENAME":PRINT:GOTO 1040 1080 OPEN "I",DV,F$:LINEINPUT #DV,LN$ 1090 CLS:IF LEN(LN$)=0 THEN 150 ELSE 160 1100 CLS:GOTO 140 1110 DATA 68,72,50,54,58,60,64 1120 GOTO 10 ******************************* DOCUMENTATION FOR KOMPOS.CC VERSION 1.2 (CONTINUED) ******************************** THE SPECIFIC FORMATS (SYNTAX) OF THE FIVE COMMAND STRINGS USE l&: 2000& 5&D 13, 14, 15, 17, 18, 20, 21, 22, 24, 25&q 27, 28, 29, 31, 32, 34, 35, 38, 39, 41& 42, 43, 45, 46, 48, 49, 50, 52, 53, 55&† 56, 56, 57, 59, 59, 60, 60, 62, 62, 62&̆ 63, 63, 63, 63, 63, 63, 63, 62, 62, 62'%ֆ 60, 60, 59, 59, 57, 56, 55, 55, 53, 52'R 50, 49, 48, 46, 46, 45, 43, 42, 41, 39' 38, 36, 35, 34, 32, 31, 31, 29, 28, 27' 27, 25, 25, 24, 24, 22, 22, 21, 21, 21' 21, 21, 21, 21, 21, 21, 21, 21, 21, 21( 22, 22, 22, 24, 24, 24, 25, 25, 27, 27(3 28, 28, 28, 29, 29, 31, 31, 31, 32, 32(` 34, 34, 34, 34, 34, 35, 35, 35, 35, 35(& 35, 35, 34, 34, 34, 34, 32, 32, 32, 31(0 31, 29, 29, 28, 28, 27, 25, 25, 24, 22(: 21, 21, 20, 18, 18, 17, 15, 14, 14, 13) D 11, 11, 10, 8, 8, 7, 7, 6, 6, 4)0N 4, 3, 3, 3, 1, 1, 1, 1, 1, 1)SX 0, 0, 0, 0, 0, 1, 1, 1, 1, 1)vb 1, 1, 3, 3, 3, 3, 3, 4, 4, 4)l 4, 4, 6, 6, 6, 6, 6, 6, 6, 6)v 7, 7, 7, 7, 7, 7, 7, 6, 6, 6) 6, 6, 6, 6, 6, 6, 4, 4, 4, 4* 4, 4, 4, 4, 4, 4, 3, 3, 3, 4*% 4, 4, 4, 4, 4, 6, 6, 6, 7, 7*N 7, 8, 10, 10, 11, 13, 0, 0, 2, 111*y 2, 148, 2, 235, 2, 228, 3, 16, 3, 63* 3, 113, 3, 165, 3, 220, 4, 23, 4, 86* 4, 152, 4, 221, 5, 40, 5, 118, 5, 201*Ɔ 6, 33, 6, 127, 6, 226, 7, 74, 7, 185+&І 8, 47, 8, 172, 9, 48, 9, 187, 10, 80+Wچ 10, 237, 11, 147, 12, 67, 12, 254, 13, 196+ 14, 149, 15, 115, 16, 95, 17, 88, 18, 96+ 19, 119, 20, 160, 21, 218, 23, 38, 24, 135+ 25, 252, 27, 136, 29, 43, 30, 231, 32, 190, 34, 176, 36, 192, 38, 239, 41, 64, 43, 180,G 46, 77, 49, 14, 51, 249, 55, 16, 58, 87,x 61, 207, 65, 124, 69, 96, 73, 129, 77, 223, 82, 129, 87, 105, 92, 155, 98, 29, 22, 0,* 132, 26, 16, 134, 63, 183, 255, 35, 48, 141- 4 254, 110, 159, 67, 159, 70, 159, 73, 159, 76-=> 48, 141, 0, 125, 159, 64, 57, 158, 64, 166-pH 128, 151, 66, 57, 49, 141, 255, 84, 166, 128-R 238, 166, 223, 79, 166, 128, 238, 166, 223, 81-\ 166, 128, 238, 166, 223, 83, 166, 128, 238, 166. f 223, 85, 159, 64, 57, 16, 142, 0, 104, 166.;p 159, 0, 67, 171, 159, 0, 70, 169, 159, 0.lz 73, 169, 159, 0, 76, 183, 255, 32, 220, 68. 211, 79, 221, 68, 220, 71, 211, 81, 221, 71. 220, 74, 211, 83, 221, 74, 220, 77, 211, 85. 221, 77, 49, 162, 38, 6, 10, 66, 39, 12/+ 32, 199, 166, 132, 32, 0, 32, 0, 32, 0/] 32, 193, 57, 23, 255, 121, 141, 145, 129, 0/ 38, 1, 57, 141, 145, 141, 174, 32, 243/"PLAYER ROUTINE FOR USE WITH DATA COMPILED WITH KOMPOS.CC NOW LOADING...BE PATIENT!"/ X4096 46340 A0 X,A0 X0 ::0[$"LOAD ML FILE CREATED WITH KOMPOS.CC AND EXEC &H120B"0a.0kЁ411 141, 145, 141, 174, 32, 243/"PLAYER ROUTINE FOR USE WITH DATA COMPILED WITH KOMPOS.CC NOW LOADING...BE PATIENT!"/ X4096 46340