DIGITINES N0&cU CD5"'cQ D97E /1a) 5[P (c[ ? ccN(cc ?L 2N8(c wc cccc2222"8 RICKNGRTCHcc%cKPG!cc&c[!cU[cccWccc1c hc>[ #cc,*K[[#!cUccT_<2222) FAIRBELLS cc27cc AXcc'7caH8Gc8 3bb$b8Lc 7cah\c ccJc8 3bb$b8\T__<22222Q( RHOADESORGc9ccc!'5t K$ QWcc\H"N< WQW cc\65<VNW cc\" <ccGB<cT9 JJUFc_:ccccc2222!(TYNSYN 4 .#8cVV9 Q%"@U:C9Hc13"c_\&,:DG!cbZ. H  #ca2TcM ccb'!L! #ca2c W^.322" BOWDSTRINGc,; c`<U c,;Cc`9S^ c6J0c^c Y6%.c`Zc6%'_`9 Sc6Gc^M;c2222 #1SANDYBEACHccc^ ATc&cc_)Ec2cc^9Tc-,ca^ccDcccpQccc0cccqc2cccc2222!CLIKI CLAV@Zc^c@+Zc_pA@'Zc^R@(.ca^Pc2 $^c^pSAcc,cc^hccccc2222 !JUPITER 8 [ccccc:2ZcXR :'2&Ac^[hK*&Ac^^ACS:=Z3 C C&Ac^^8ccccc2222 *H1WINDFLUTE b C]]`_Gc Zcb GC]]*]_Gc cb (C]]R`K_Gc JcC__<2222#bGONG ў `:2ZcXR :'2&Ac^[hK*&Ac^^ACS:=Z3 C C&Ac^^8ccccc2222 *H1WINDFLUTE b C]]`_Gc Zcb GC]]*]_Gc cb (C]]R`K_Gc JcC__<2222#b                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                H  : Q c2R c22BoxCello ccc222@ N I;  K5 c:R c22SoloViolinccc222P I  Q c  c < Rc22HiString 1ccc22202 I U c c< Rc22LowString ccc22282 a T [c9#bc22Pizzicato ccc2220 ; B <Bc:Rc22Harp ccc222! I I c  c < Rc22ReverbStrgccc2221(20D :  D \:R c22SynString ccc222 009  @5c{bc22Voices ccc222 'CM 'O c c6(22HarmoPad ccc222AH18@H Rcc|Jc22FanfarTptsccc2228HI Q c c < Rc22HiString 2ccc2220 02 U  BG  ] Bc C Zc22PercFlute ccc222  ,=  < c c8Oa#2cVV9P&$FU:\cc7cc:c+2@2222/ 0 JACO 1 *8Fc? c0 2c==52 BL2c==?=J) 2c===Oc 2UD`:2F7cVV:cVC_<4222"- BR TRUMPET> "-cc_Bc8W6b2. cCL1cY ;b)bc6c`.cc8a>cccT+cc0cc8'b8&LY.cpJb -cV.cc 9c^C_<3222  00TYNE ORCH _2c_)sO_2c_c_2c_;Y_2c_;c_2#NcK;:`CcKSc^C_<2222!(E.PIANO 1 =&McH'pcc'GcG'pc!L+ccX_'pccccccc'8ca&/cHc'8c\cccXb'8T__<2222%@ OUTRSPCATKc6Gc3B[S<cVQ Tc>V^C_<2222 ! PPG BASS c2c2&RN[*c`ccK c[.cccc ccc3c24<Ac3cc;O\,cc:ccccZ2222  GP RHODES `S1BcZ? [`]1BcZ?7`SCBcZwA `cZ> F`cZO`cZ> a^C_.1222",SYNERGY &RD5! > K!RH>"[( cP;<:c#cU4'c'c '( CXE$ Y #cQ3( ;\cccc2222 9x$GLASSVOICE`9 * +F M]: -Q,9#2_^TS> DDa(\BG 4Y=CE[5P%UUc)D CM1FLN-DZMD`=[. r GK:   YY(RT RANDOMIZER/*25ccc.` (c2@0cUS* B T;3cbZ';R34cZU;cc &cbb'QL/6aaV9cN^B/322%' FIDDLE 19"+cTP7 )%c;2&@ ^%*cV-5IC $*cJ@*(ccG4."S@$c^5bXcc/222c 9 SYNTASTIC 3)c\qb[%$)cc Sc$(c[,Uc[(c^]ccc+%cV<N\1(cYc^C_<2222  ?MULTISYNTH_2c_'cc [U_/c_'(c_T#c.' ;cV7cK';cc.##PK7'cc<c4_/3c\;c^C_<2222"L0"DD  c z!Rc2<*Meanbass1ccc222  ID N cz!Rc2<*Meanbass2ccc222Ppc c c c ?#Rc2<*TX Syn #2ccc222@b@`R > K cx#R c2<*SuBass #1ccc2220 S : D cx#R c2<*SuBass #2ccc222V  < A cx#R c2<*SuBass #3ccc222@@@ c c  c c  R c2<*Biting B3ccc222IBZ c c,R c2<*Pipes #4 ccc222 c c c c Rc2<*Holyorganccc222  S Zcc|#Rc2<*Synthia 1ccc222( cX1 c c|Rc2<*Chime Boxccc222  c  c c c!Rc2<*Phasiwaveccc222fhfh b b c c!8Rc2<*Alphawaveccc222FHPZ c c|#Rc2<*OBX Jump ccc22268&(Fў `b b c c!8Rc2<*Alphawaveccc222FHPZ c c|#Rc2<*OBX Jump ccc22268&(                                                                                                                                                                                                                                                                `ЁC :Q "K  ;6 "] :Rc22Trumpet81Zccc222PQ O ccc=R c22Full Brassccc2220 J ?#D  ^ :Rc22Flugelhornccc222 N Wcc<Rc22ChorusBrasccc22288BGBCC;  Ba 9 J c22FrenchHornccc222 S [ ac 4Rc22AtackBrassccc2228 *R F##H  *c :R c22cSpitBoneBCccc222 "Q"R #c *`=Rc22cHorns BC ccc2223L 4P  cD" c : R c222MelloTenorccc22200 0  BJ CQ  B+ Bc : Z$c212RaspAlto ccc222 T BI CG B: BZ ; ^$c@22Flute ccc2220 B B@P_ ^c2#2Pan Floot ccc222 AD5BNBK [8 ^ c#22Bassoon ccc222 Q#A[  0K Y ^$c(2Oboe ccc222    Q H  CV  Y ^ c22Clarinet ccc222   A> AO  BK   c #^c(P22Harmonica ccc222PPPcN cV  cG c 2 R c22DoubleBassccc222 5P  R   ,I c *R c22BowCello ccc222?Ю:З@100,"PULLING VOICE NAMES FROM DUMP. ONE MOMENT.../VO2│124:ЕLF│4зO2│63/bA│BBлO2/lM$│""/xАI│1е32/Г&АJ│0е9/Щ0M$│M$л Л( Ж(AлJ))/а:ЛJ/┐DN$(I)│M$:M$│"":A│Aл&H80:ЛI/═NЮ:АI│1е16/цXЗ═"##";I;:З" "N$(I);/·bЕI┤▓16зЗ Л(13);0lЛI0 vАI│1е160АP│16л(Iм1)н3208КЗ@P,Iл16;:ЗN$(Iл16);0?ФЛI0WЮАI│1е5000:Л:Ю:Бе1700qиВ XFER VOICE(S) TO DX0╩▓Ю:З@68,"PUT THE LIBRARY DISK IN DRIVE "DD" AND HIT ENTER":З@141," ";:ЙA:SR│10▀╝Бж860:ЕA│0зБе1700ь╞F$│D$(A)1╦FE$│".DX7":Е Ж(&H7804)┤▓0зFE$│".DXL"11╨F$│F$лFE$:╧ DD:╙M F$:╧01C╒LF│ Ж(&H6003)1]┌З@201,"ARE YOU SURE?"1rфK$│ Т:ЕK$│""з7401ГщЕK$┤▓"Y"з1701Чюв XB:ЕCC┤▓0з7801╩°Ю:З@196," ";:З"DUMP IS SENT TO DX":АI│1е1000:Л1╘Бе1701ц :ГERROR CODES1їЕ CC│1з1702Ю:З@69,"ERROR DURING TRANSFER":З:З25 ИCCм1 Бж 820,830,8402H*З:З:ЙA:Ю:Бе1702Ё4З" ERROR CODE 2":З:З" THERE WAS NO $F0 AT THE BEGINNING OF THE BUFFER. IF REPEATED ATTEMPTS TO LOAD THIS FILE FAIL, IT IS INVALID.":Р3Б>З" ERROR CODE 2":З:З" THE PROGRAM FAILED TO DETECT EITHER A SINGLE VOICE DUMP OR A BULK (32 VOICE) DUMP. PLEASE TRY AGAIN.":Р4HЗ" ERROR CODE 3":З:З" THE PROGRAM DETECTED A BAD CHECKSUM AT THE END OF THE DUMP. THE FILE IS INVALID. PLEASE TRY AGAIN.":Р4оRЗ" ERROR CODE 4":З:З" FORMAT ERROR. THE FORMAT BYTE IN THE DUMP WAS NEITHER A '0' NOR A '9'. (1 VOICE OR 32 VOICE). PLEASE TRY AGAIN.":Р4╠\Ю:З@7,"LIBRARIAN FILES":З4╪fАS│3е114¤p▀ DD,17,S,A$,B$:C$│A$л О(B$,127)5zАB│1е255 й 3256FE$│"DX7":Е Ж(&H7804)┤▓0зFE$│"DXL"5VДЕ Р(C$,Bл8,3)┤▓FE$ з Бе 9205qЙЕ  К( Р(C$,B,1))│0з9205╙ОD$(C)│ Р(C$,B,8):З═" ## % % ";C;D$(C);:C│Cл1:ЕC│27▒C│58зЙ" ";EM5▌ШЛ B,S5°ЭЕCо2┤▓ Б(Cо2)зO│0:ДO│16вЕSR│1з9356!жЗ:З" ENTER";:Бе9406,зЕO│1зЗ6PйЗ" ENTER FILE NUMBER TO LOAD";6kмЙA:Ю:ЕSR│1зSR│0:Р:Д1706uLU│1756ОVАV│1024е1055:ТV,U:ЛV6з`АV│1504е1535:ТV,U:ЛV6╩jАV│1055е1503й32:ТV,U:ТVл1,U:ЛV6╓oв&H79AD6▄tР7░Е  Ж(&H7804)│0 з Т &H7804,1:Бе1707║Т &H7804,0:Бе1707╫╨Ю:З@105,"*MODE ERROR*":З@162,"YOU TRIED TO EITHER DOWNLOAD DX7 DATA IN DX100 MODE OR VICE-VERSA. SELECT OPTION 5 ON THE MAIN MENU SCREEN TO CHANGE MODES. THEN TRY AGAIN.7№╒З:Й" HIT ENTER FOR MAIN MENU";A8┌Р║Т &H7804,0:Бе1707╫╨Ю:З@105,"*MODE ERROR*":З@162,"YOU TRIED TO EITHER DOWNLOAD DX7 DATA IN DX100 MODE OR VICE-VERSA. SELECT OPTION 5 ON THE MAIN MENU SCREEN TO CHANGE MODES. THEN TRY AGAIN.7№╒З:Й" HIT ENTER FOR MAIN MENU";A8NT" ENTER FILE NUMBER TO LOAD"; 940 INPUTA:CLS:IFSR=1THENSR=0:RETURNELSE170 1100 U=175 1110 FORV=1024TO1055:POKEV,U:NEXTV 1120 FORV=1504TO1535:POKEV,U:NEXTV 1130 FORV=1055TO1503STEP32:POKEV,U:POKEV+1,U:NEXTV 1135 EXEC&H79AD 1140 RETURN 1200 IF PEEK(&H7804)=0 THEN POKE &H7804,1:GOTO170 1210 POKE &H7804,0:GOTO170 2000 CLS:PRINT@105,"*MODE ERROR*":PRINT@162,"YOU TRIED TO EITHER DOWNLOAD DX7 DATA IN DX100 MODE OR VICE-VERSA. SELECT OPTION 5 ON THE MAIN MENU SCREEN TO CHANGE MODES. THEN TRY AGAIN. 2005 PRINT:INPUT" HIT ENTER FOR MAIN MENU";A 2010 RETURN CLS:PRINT@105,"*MODE ERROR*":PRINT@162,"YOU TRIED TO EITHER DOWNLOAD DX7 DATA IN DX100 MODE OR VICE-VERSA. SELECT OPTION 5 ON THE MAIN MENU SCREEN TO CHANGE MODES. THEN TRY AGx`Аx4╢ #КД¤╖ #Ж╖ n╠x¤5Ж4╢ "╢ oБ■'БЁ& О`┐x╞АўxB╛xМx$зД┐x5;О`OzxО  лА╝x&∙|x@ДбД'╠ ╠О╜┤Ї946О┐_ ┐xО`┐xАxЕЖ╖ @Ж"╖ Ж╖ nЖ╒╖ n╛x0жДБЁ'╞■ў Ў ┴ў&щ +╛x0жДБў'╞■ў Ў ┴ў&щ ┐xМ``%г╞ДўxB╜xI ╠╜┤ЇЖ╖ nЖU╖ n╞ДўxBЖ3╖ 5╢46О`ждБЁ'Аy ╠╜┤ЇЬ1#ждБ& 1йЯ┐x OБ '╠╜┤Ї ~1й┐x 946О`ждБЁ'╠╜┤Ї `1#ждБ& 1иa┐x Б'╠╜┤Ї C1й┐x╜xI|xМ' -Ж╖ @Ж"PyЕ╖ О`Ж╖ nЖU╖ nЎ n┼'∙жА╖ o╝x&яЖ3╖ 5╢╠DX¤╢xБ&╞wў╞пўў ╞qў╠pp¤9 ¤]▄  ╢  &# :Г***************************&*:Г&F:Г COCO DX LIBRARIAN&M(:Г&l2:Г WRITTEN BY TOM WILHELM&s<:Г&ХF:Г***************************&лPА X│&HE00 е &HE16&╞ZН H$:Т X, Й("&H"лH$):Л&фdв &HE00 :ГNOW IN 64K MODE'.nЖ 1A,50,8E,80,0,B7,FF,DE,EC,84,B7,FF,DF,ED,81,8C,DF,FF,25,F1,1C,AF,39'FxЮ:Х200,&H5FFF:Х3000'cВDD│0:C│1:МN$(64):МD$(64)'uГ╙M"DXLIB.BIN"'ВДв &H7805'╛ЦXB│&H78FA:TB│&H7937:ГXB=XMIT TO DX7... TB=XMIT TO DX100'╬а╣ Г0│&H7875(кЮ:N$│"":F$│"":C│1:З@71,"COCO DX LIBRARIAN":З:З:З" ENTER YOUR REQUEST"(▐┤З:З" 1) XFER A VOICE/DUMP TO COCO 2) XFER A VOICE/DUMP TO DX 3) DIRECTORY OF LIBRARY FILES 4) EXAMINE VOICE NAMES FROM BULK DUMP. (MUST BE IN MEM) 5) CHANGE MODES":Бж1100) ╣З@283,"7";:Е Ж(&H7804)┤▓0зЗ@283,"100";)╛З@429," ";:ЙA$)Q╚ЕA$┤▓"1"░A$┤▓"2"░A$┤▓"3"░A$┤▓"4"░A$┤▓"5"зЮ:Бе170)x▄A│ Й(A$):ИA Бе230,680,860,510,1200)Фц:ГUPLOAD A DUMP TO COCO)╜ЁЮ:З" INITIATE THE DUMP FROM THE DX"*F·З:З" TO INITIATE A SINGLE VOICE DUMP, PRESS THE NUMBER ON THE DX CORRESPONDING TO THE VOICE YOU WANT TO SAVE."*№З:З" TO INITIATE A BULK DATA DUMP (32 VOICES) SEE THE DX MANUAL UNDER THE HEADING 'TRANSMITTING 32 (OR 24) VOICES FROM MASTER TO SLAVE"+ З@490,"'X' TO EXIT";+#CC│ Г0(0)+2ЕCC│10з170+A"ЕCC┤▓0з780+W@F│ Ж(&H6003):LF│F+ДAЕ Ж(&H7804)│0░((F│3)▒(F│4))зБж2000:Бе170+▓CЕ Ж(&H7804)┤▓0░((F│0)▒(F│9))зБж2000:Бе170+┴EЕF│3зOS│18+╨FЕF│0зOS│12+яJЕF▓3зB$│"BULK":ДB$│"VOICE",TBE│256н Ж(&H7800)л Ж(&H7801),r^BB│&H6000:ЕF┤4зАI│BEмOS еBEм(OSм10):N$│N$л Л( Ж(I)):ЛI:ГGET VOICE NAME FROM SINGLE VOICE DUMP,║hЮ:З:З:З" "B$" DUMP IS COMPLETE":Е F┤4зЗ:З" NAME--*"N$"*";,╧rЕF│4зN$│"DXDUMP",хwЕF│9зN$│"DX7DUMP"-G|З:З:З" DO YOU WANT TO SAVE":З:З:З" "N$:З:З:Й" TO DISK";A$:A$│ О(A$,1)-АЖЕA$┤▓"Y"з490:ДЮ:З@102,"ENTER THE FILE NAME":ЕF▓3з450-зРN$│"":АI│BEмOS еBEм(OSм8):TS│ Ж(I)-╟ЪЕ(TS┤65▒TS▓90)░TS┤▓32зБе430-▐дQ$│ Л(TS):N$│N$лQ$-хоЛI.%╕З@142,"OR":З@164,"HIT ENTER TO USE THE NAME":З@232,"'"N$"'".8┬З@294," ";:ЙF$.O╠ЕF$│""░F▓3зЮ:Бе380.f╓Е(F┤4)░F$│""зF$│N$.Й█FE$│".DX7":ЕF│3▒F│4зFE$│".DXL".орF$│F$лFE$:╧ DD:╪M F$,BB,BE,BB:╧0.┤ъЮ.┬ЇЕ F┤4з170.ф■:ГPRINT VOICE NAMES FROM BULK.¤ЕLF┤4з170:ДBB│&H6000/  L&А X│&HE00 е &HE16&2Н H$:Т X, Й("&H"лH$):Л&Pв &HE00 :ГNOW IN 64K MODE&ЪЖ 1A,50,8E,80,0,B7,FF,DE,EC,84,B7,FF,DF,ED,81,8C,DF,FF,25,F1,1C,AF,39&═Ю:З"ONE MOMENT...":АI│24576е28688й2:тI,8224:ЛI' Х20,&H5FFF:Х3000:FE$│".LIB":DD│0:C│1:МD$(64):МN$(64)'DЮ:З:З" 1) LOAD A BANK 2) EXAMINE VOICES'aЗ" 3) XFER A VOICE A->B'x(З" 4) SAVE A BANK'Т2Й" ";A:ЕA▓4з50'н<ИA Бе70,1000,2000,3000'╦F:ГLOAD VOICES INTO BANK B($PЮ:З@68,"PUT THE LIBRARY DISK IN DRIVE "DD" AND HIT ENTER":З@141," ";:ЙA:SR│1(8ZБж130:ЕA│0зБе20(EdF$│D$(A)(mxF$│F$лFE$:╧ DD:╙M F$,&H8000:╧0:Бе20(ПВЮ:З@7,"LIBRARIAN FILES":З:C│1(ЫМАS│3е11(└Ц▀ DD,17,S,A$,B$:C$│A$л О(B$,127)(╥аАB│1е255 й 32(фкFL$│ П(FE$,3))┤Е Р(C$,Bл8,3)┤▓FL$ з Бе 210)╛Е  К( Р(C$,B,1))│0з210)Б╚D$(C)│ Р(C$,B,8):З═" ## % % ";C;D$(C);:C│Cл1:ЕC│27▒C│58зЙ" ";EM)Л╥Л B,S)ж▄ЕCо2┤▓ Б(Cо2)зO│0:ДO│1)┤цЕSR│1з250)╧ЁЗ:З" ENTER";:Бе270)┌·ЕO│1зЗ)■З" ENTER FILE NUMBER TO LOAD";*ЙA:Ю:ЕSR│1зSR│0:Р:Д20*:ш:ГPRINT VOICE NAMES FROM BULK*vэЮ:Й" sOURCE OR dESTINATION";A$:ЕA$┤▓"S"░ A$┤▓"D"з1005*ЦЄBB│&H6000:ЕA$│"S"зBB│&HE000*╪№Ю:З@100,"PULLING VOICE NAMES FROM DUMP. ONE MOMENT...*уO2│124*яA│BBлO2*∙M$│""+$АI│1е32+.АJ│0е9+&8M$│M$л Л( Ж(AлJ))+-BЛJ+LLN$(I)│M$:M$│"":A│Aл&H80:ЛI+ZVЮ:АI│1е16+s`З═"##";I;:З" "N$(I);+ЗjЕI┤▓16зЗ Л(13);+ОtЛI+Ъ~АI│1е16+мИP│16л(Iм1)н32+┼ТЗ@P,Iл16;:ЗN$(Iл16);+╠ЬЛI+ужАI│1е2000:Л:Ю:Бе20,╨:ГXFER A VOICE FROM s TO d,l┌Ю:З:З:З" HIT ENTER AFTER VIEWING THE FOLLOWING VOICES AND CHOOSING THE ONE YOU WANT.",zфBB│&HE000,Е°O2│124,СA│BBлO2,Ы M$│"",зАI│1е32,▓ АJ│0е9,╚*M$│M$л Л( Ж(AлJ)),╧4ЛJ,ю>N$(I)│M$:M$│"":A│Aл&H80:ЛI,№HЮ:АI│1е16-RЗ═"##";I;:З" "N$(I);-)\ЕI┤▓16зЗ Л(13);-0fЛI-<pАI│1е16-NzP│16л(Iм1)н32-gДЗ@P,Iл16;:ЗN$(Iл16);-nОЛI-ДШA$│ Т:ЕA$│""з2200-бвЮ:Й"ENTER THE NUMBER";SN-╣м:ГDESTINATION NAMES-╟╢BB│&H6000. └Ю:З:З:З" HIT ENTER AFTER VIEWING THE DESTINATION LIST.".╩O2│124.#╘A│BBлO2.-▐M$│"".9шАI│1е32.DЄАJ│0е9.Z№M$│M$л Л( Ж(AлJ)).a ЛJ.А N$(I)│M$:M$│"":A│Aл&H80:ЛI.О Ю:АI│1е16.з $З═"##";I;:З" "N$(I);.╗ .ЕI┤▓16зЗ Л(13);.┬ 8ЛI.╬ BАI│1е16.р LP│16л(Iм1)н32.∙ VЗ@P,Iл16;:ЗN$(Iл16);/ `ЛI/ jA$│ Т:ЕA$│""з2410/A tЮ:З:Й"ENTER THE DESTINATION NUMBER";DN/l ~Ю:З:З:З" COPYING s "SN" TO d "DN"..."/И ИSA│&HE006л(&H80н(SNм1))/д ТDA│&H6006л(&H80н(DNм1))/╢ ЬАI│SA еSAл127/┬ жP│ Ж(I)/═ ░Т DA,P/┘ ║DA│DAл1/р ─ЛI/щ ╬Бе20/√ ╕З" CHECKSUM"0 ┬EN│&H7005:ST│&H60060" ╠АI│ST е EN01 ╓З@148,ENмI0A рTL│TLл Ж(I)0Y ъЕ TL▓255з TL│TLм2560` ЇЛI0n ■FT│256мTL0Ж ЕFT▓127 з FT│FTм1280▐ Т &H7006,FT:Т&H7007,&HF7:Т&H6000,&HF0:Т&H6001,&H43:Т&H6002,0:Т&H6003,9:т&H6004,40960Ў З"CHECKSUM= " Ь(FT)1 мЙ"FILE NAME W/O EXT";F$1# ╢F$│F$л".DX7"1B └╪M F$,&H6000,&H7007,&H60001K ╩Бе20з TL│TLм2560` ЇЛI0n ■FT│256мTL0Ж ЕFT▓127 з FT│FTм1280▐ Т &H7006,FT:Т&H7007,&HF7:Т&H6000,&HF0:Т&H6001,&H43:Т&H6002,0:Т&H6003,9:т&H6004,40960Ў З"CHECKSUM= " Ь(FT)1 мЙ"FI                                                                                                                                                                                                                                                                                            ┴┬!├#$├                               SWAP BAS ODXLIB ASM "┘DXLIB BINЄDXLIBRY BAS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                00010 ************************** 00013 * UNIVERSAL DX LIBRARIAN 00016 ************************** 00100 ORG $7800 00200 IO EQU $FF6F 00300 CSREG EQU $FF6E 00400 BUFEND FDB 0 00500 BUFR FDB $6000 00550 MODE RMB 1 00600 00700 ************************* 00800 * 00900 * IO : 6850 IO PORT 01000 * CSREG : 6850 STAT & CONTROL REG 01100 * BUFEND : LOCATION OF EOB 01200 * BUFR : BUFFER POINTER 01300 * 01400 ************************* 01500 01600 ************************* 01700 * 01800 * THIS ROUTINE INITIALIZES THE 01900 * 6850 AND SETS THE FIRQ ADDRESS 02000 * 02100 ************************* 02200 02300 INIT PSHS D 02400 LDA $FF23 02500 ORA #1 02600 ANDA #$FD 02700 STA $FF23 02800 02900 LDA #3 03000 STA CSREG 03100 03200 LDD #FIRQ 03300 STD $110 03400 PULS D,PC 03500 03600 ************************* 03700 * 03800 * THIS IS THE FIRQ ROUTINE 03900 * 04000 ************************* 04100 04200 FIRQ PSHS D,X 04300 LDA $FF22 04400 LDA IO READ 6850 IO 04500 CMPA #$FE IS IT ACTIVE SENSING? 04600 BEQ NOMIDI 04700 CMPA #$F0 IS IT BEG OF DUMP? 04800 BNE NOF0 04810 LDX #$6000 04820 STX BUFR 04830 LDB #$80 THIS WILL CHANGE THE INSTRUCTION 04840 STB VARI+1 'VARI' SO IT WILL INC 'X' REG 04900 NOF0 LDX BUFR 05000 CMPX #$7800 CHECK FOR OVERFLOW 05100 BHS NOMIDI 05200 VARI STA ,X 05300 STX BUFR 05400 NOMIDI PULS D,X 05500 RTI 05600 05700 ************************* 05800 * 05900 * THIS ROUTINE CHECKS THE CHECKSUM 06000 * AT THE END OF THE DUMP BEFORE 06100 * SENDING TO THE DX AND AFTER 06200 * RECEIVING FROM THE DX. 06300 * 06400 ************************* 06500 06600 CHKSUM LDX #$6006 BEG OF DATA 06700 CLRA 06800 DEC BUFEND+1 06900 LDY #$FFFF 07000 MORE ADDA ,X+ 07100 CMPX BUFEND 07200 BNE MORE 07300 INC BUFEND+1 07400 NEGA 2'S COMPLEMENT 07500 ANDA #$7F DROP MSB 07600 CMPA ,X 07700 BEQ GOODCC 07800 LDD #3 BAD CHECKSUM 07900 BRA CC3 08000 GOODCC LDD #0 08100 LDY #0 08200 CC3 JSR $B4F4 08300 RTS 08400 08500 ************************* 08600 * 08700 * THIS ROUTINE ACCEPTS A DUMP 08800 * FROM THE DX AND CHECKS 08900 * THE CHECKSUM 09000 * 09100 ************************* 09200 09300 RECINT PSHS X,Y,D 09400 R2 LDX #0 RESET POINTERS 09450 STX $5FFF 09500 STX $7800 09600 LDX #$6000 09700 STX $7802 09800 09900 LDA #0 ENABLE INTERRUPTS 10000 STA $FF40 10100 LDA #$22 10200 STA $FF7F 10300 10400 LDA #3 10500 STA CSREG 10600 LDA #$D5 10700 STA CSREG 10800 10900 CHECK1 LDX BUFR LOOK FOR $F0 10950 LEAX -1,X 11000 LDA ,X 11100 CMPA #$F0 11200 BEQ CHECK2 11300 LDB #$FE IS 'X' KEY PRESSED? 11400 STB $FF02 11500 LDB $FF00 11600 CMPB #$F7 11700 BNE CHECK1 11800 BRA XKEY 11900 12400 CHECK2 LDX BUFR LOOK FOR $F7 (E0X) 12500 LEAX -1,X 12600 LDA ,X 12700 CMPA #$F7 12800 BEQ EXITA 12900 LDB #$FE 13000 STB $FF02 IS 'X' KEY PRESSED? 13100 LDB $FF00 13200 CMPB #$F7 13300 BNE CHECK2 13310 BRA XKEY 13400 13500 EXITA STX BUFEND MAKE SURE IT IS LONG ENOUGH 13600 CMPX #$6060 TO BE A TRUE DUMP 13700 BLO R2 13800 LDB #$84 CHANGE LINE 'VARI' BACK TO NO INCREMENT 13900 STB VARI+1 14100 CNCODE JSR CHKSUM 14200 BRA EXIT 14300 14400 XKEY LDD #1 14500 JSR $B4F4 14600 14700 EXIT LDA #3 DISABLE INTERRUPTS 14800 STA CSREG 14900 LDA #$55 15000 STA CSREG 15100 15200 LDB #$84 15300 STB VARI+1 15400 15500 LDA #$33 15600 STA $FF7F 15700 15800 PULS X,Y,D,PC 15900 16000 ************************* 16100 * 16200 * THIS ROUTINE CHECKS CHECKSUM, 16300 * THEN XMITS THE BUFFER TO DX7 16400 * 16500 ************************* 16600 16700 SENINT PSHS D,X,Y 16800 LDY #$6000 16900 LDA ,Y 17000 CMPA #$F0 IS IT BEG OF BUFFER? 17100 BEQ F0OK 17200 LDD #2 17300 JSR $B4F4 17400 LBRA EXITS 17500 17600 F0OK LEAY 3,Y 17700 LDA ,Y 17800 CMPA #0 IS IT A SINGLE VOICE DUMP? 17900 BNE FORM9 18000 LEAY $9F,Y 18100 STY BUFEND 18200 BRA START 18300 18400 FORM9 CMPA #9 IS IT A BULK DUMP? 18500 BEQ OK9 18600 LDD #4 18700 JSR $B4F4 18800 BRA EXITS 18900 19000 OK9 LEAY $1004,Y 19100 STY BUFEND 19110 BRA START 19111 19114 *** DX100,27,21 SEND INIT*** 19115 SENIN2 PSHS D,X,Y 19118 LDY #$6000 19121 LDA ,Y 19124 CMPA #$F0 IS IT BEG OF BUFFER? 19127 BEQ F0OK2 19130 LDD #2 19133 JSR $B4F4 19136 BRA EXITS 19139 F0OK2 LEAY 3,Y 19142 LDA ,Y 19145 CMPA #3 IS IT SINGLE VOICE? 19148 BNE FORM4 19151 LEAY $61,Y 19154 STY BUFEND 19157 BRA START 19160 19163 FORM4 CMPA #4 IS IT BULK? 19166 BEQ OK4 19169 LDD #4 19172 JSR $B4F4 19175 BRA EXITS 19178 19181 OK4 LEAY $1004,Y 19184 STY BUFEND 19200 19300 START JSR CHKSUM DO CHECKSUM FIRST 19350 INC BUFEND+1 19400 CMPY #0 19500 BEQ SEND 19600 BRA EXITS 19700 19800 SEND LDA #0 ENABLE SLOT 3 19900 STA $FF40 20000 LDA #$22 20100 STA $FF7F 20200 20300 LDX #$6000 20310 LDA #3 20320 STA CSREG 20330 LDA #$55 20340 STA CSREG 20400 NOTDON LDB CSREG SEND THE BUFFER 20500 BITB #2 20600 BEQ NOTDON 20700 LDA ,X+ 20800 STA IO 20900 CMPX BUFEND 21000 BNE NOTDON 21100 21200 LDA #$33 ENABLE SLOT 4 21300 STA $FF7F 21400 21500 EXITS PULS X,Y,D,PC 21600 21701 MODINT LDD #$4458 21702 STD $41B 21710 LDA MODE 21720 CMPA #0 21730 BNE DX100 21740 LDB #$77 21750 STB $41D 21760 LDB #175 21770 STB $41E 21780 STB $41F 21790 BRA OUT 21800 21810 DX100 LDB #$71 21820 STB $41D 21830 LDD #$7070 21840 STD $41E 21850 21860 OUT RTS 21870 21880 END D #$7070 21840 STD $41E 21850 21860 O