start tok64 d64-T0jYKv 100 REM{reverse on}{ct n} lower top of basic pointer : 110 POKE56,29965/256:POKE55,29965-256*PEEK(56) 120 REM{reverse on} check for first or later pass : 125 ON ABS(be<>0)+1 GOSUB 930, 1100 126 : 130 REM{reverse on} check whether music is playing: 140 IF PEEK(789) <> 234 THEN GOSUB 1130 150 : 160 GOSUB 650:REM{reverse on} print header : 170 : 180 REM{reverse on} print menu : 190 FOR i = 1 TO mn 200 PRINT"{space*10}"; mu$(i) 210 NEXT 220 PRINT "{down}"hb$ 230 PRINT "{space*7}select with up/down cursor 240 PRINT "{space*12} to load"; 250 i = 1 260 POKE214,7+(i-1):PRINT 270 PRINT CHR$(13)"{space*10}{reverse on}"; "{left} ";mu$(i); " "; 280 : 290 REM{reverse on} check for up/down cursor : 300 REM{reverse on} or return : 310 GET a$: IF a$ = "" THEN 310 320 IF a$ = CHR$(13) AND i < mn THEN GOTO 420 330 IF a$ = CHR$(13) THEN i = PEEK(254): GOSUB 1100: GOTO 160 340 IF a$ = "{up}" AND i = 1 THEN 260 350 IF a$ = "{down}" AND i = mn THEN 260 360 IF a$ <> "{down}" AND a$<> "{up}" THEN 260 370 PRINTCHR$(13)"{up}{reverse off}{space*10}"; "{left} ";mu$(i); " "; 380 IF a$ = "{down}" THEN i = i + 1: GOTO 260 390 IF a$ = "{up}" THEN i = i - 1:GOTO260 400 : 410 REM{reverse on} erase menu (except selection) : 420 FOR i1 = 1 TO mn 430 IF i1 <> i THEN POKE214,7+(i1):PRINT:PRINTsp$ 440 NEXT 450 : 460 REM{reverse on} check for start address : 470 OPEN 15,8,15,"i" 480 uu$=mu$(i)+".p": OPEN 8,8,8,uu$ 490 INPUT#15, e, e$ 500 IF e THEN GOSUB 790: GOSUB650: GOTO 190 510 GET#8,a$, b$ 520 CLOSE 8:CLOSE15 530 be = ASC(a$)+256* ASC(b$) 540 IF (be<>ma)AND (be<>mc) THEN be=0: GOSUB 860: GOSUB 760: GOSUB650: GOTO 190 550 POKE 254,i 560 IF be THEN POKE 253, ABS(be=ma)+1 570 LOAD uu$, 8, 1 580 END 590 REM{reverse on}{return} {reverse on} start of subroutines {return} 600 : 610 REM{reverse on} print centred string : 620 PRINT SPC((40-LEN(ct$))/2); ct$: RETURN 630 : 640 REM{reverse on} clear screen and print header : 650 PRINT CHR$(142);"{reverse off}{clear}{light gray}{space*22}{cm g} 660 PRINT "{cm @*14}Q{cm @}Q{cm @}Q{cm @*3}{cm g}{cm @*2}{cm g}{cm @*13} 670 PRINT "{space*14}{cm g} {cm g} {cm g}{space*2}Q{space*3}{cm g} 680 PRINT "{space*14}{cm g} {cm g} {cm g}{space*5}Q 690 PRINT "{space*14}{cm t*4} 700 PRINT hb$ 710 PRINT hd$; "{light gray}{space*3}music loader{.*5}by chris johnson{down} 720 PRINT hb$ 730 RETURN 740 : 750 REM{reverse on} wait for user to press space : 760 FORi=0TO1:GETa$:a=(a+1)AND31:PRINTr$(ABS(a>7));:i=ABS(a$=u$):NEXT:PRINTr$(0);:RETURN 770 : 780 REM{reverse on} print disk error message : 790 IF e = 62 THEN GOSUB 650: PRINT cl$;: ct$ = mu$(i)+nd$: GOSUB 620: GOTO 810 800 GOSUB 650: PRINT cl$;: ct$ = de$ + e$: GOSUB 620 810 CLOSE 8: CLOSE 15 820 GOTO 760 830 RETURN 840 : 850 REM{reverse on} print 'not a music file' : 860 GOSUB 650: REM{reverse on} print header : 870 PRINT cl$; 880 ct$ = mu$(i) + nm$ 890 GOSUB 620: REM{reverse on} centre message : 900 RETURN 910 : 920 REM{reverse on} title screen : 930 PRINT CHR$(142) 940 c=53280:POKEc,0:POKEc+1,0 950 GOSUB 1220:REM{reverse on} initialize variables: 960 GOSUB 650: REM{reverse on} print header : 970 PRINT "{down}{space*3}this program will load and play 980 PRINT "{down}{space*3}object files created with 990 PRINT "{down}{space*3}music assembler 64 1000 PRINT "{down}{space*3}or master composer 1010 PRINT "{down} 1020 PRINT "{down}{space*3}(c) 1985, chris johnson 1030 PRINT "{down}{space*3}permission granted to copy not sell 1040 PRINT "{space*29}" 1050 GOSUB1390:REM{reverse on} set up name array : 1060 GOSUB 760 :REM{reverse on} space to continue : 1070 RETURN 1080 : 1090 REM{reverse on} play music : 1100 b = PEEK(253): IF b > 2 THEN RETURN 1105 be = b(b) 1110 IF be = ma THEN SYS 40194 1120 IF be = mc THEN SYS 30120 1130 GOSUB 650: REM{reverse on} print header : 1140 i = PEEK(254) 1150 ct$ = mu$(i):GOSUB 620:PRINT "{down}"; hb$ 1160 : 1170 REM{reverse on} check interrupt vector : 1180 IF PEEK(789)<>234 THEN 1180 1190 RETURN 1200 : 1210 REM{reverse on} initialize variables : 1220 sp$= "{space*38}" 1230 ma= 40194:REM music assembler start 1240 mc= 29965:REM{reverse on} master comp. start : 1250 b(1)=mc: b(2)=ma 1260 hb$ = "{cm t*39}" 1270 hd$ = "{reverse off}{home}{down*6}" 1280 d$ = "{home}{down*24}" 1290 r$(1)=d$+"{space*6}{reverse on} press spacebar to continue {reverse off} 1300 r$(0)=d$+"{space*34}" 1310 nd$ = " is not on this disk" 1320 nm$ = " is not a music file" 1330 de$ = "disk error: " 1340 u$ = " " 1350 cl$ = hd$ + sp$ + hd$ 1360 RETURN 1370 : 1380 REM{reverse on} set up array of selections : 1390 i = i + 1: READ m$: IF m$ <> "end" THEN 1390 1400 RESTORE:IF be = 0 THEN DIM mu$(i) 1410 mn=1 1420 READ mu$(mn):IF mu$(mn)<>"end"THEN mn=mn+1:GOTO1420 1430 mn = mn - 1 1440 IF PEEK(254) > mn-1 THEN POKE 254, 1 1450 RETURN 1460 REM{reverse on}{ct n} 1470 REM{reverse on} "{f1}nter file names{space*13} 1480 REM{reverse on} as data statements 1490 REM{reverse on} in lines 1530 - 1630 1500 REM{reverse on} 1510 REM{reverse on} maximum of 11 files 1520 REM{reverse on} 1530 DATA koko 1540 DATA p&f 3/1 1550 DATA italiana 1560 DATA solfeggietto 1570 DATA ragtime dance 1580 DATA hungarian 1590 DATA kv576 1600 DATA cascades 1610 DATA sinfonia 5 1620 DATA henery 1630 DATA euphony 1640 DATA song already loaded,end stop tok64 (bastext 1.0)