10 GOSUB60100 :CLR 30 POKE53280,0:POKE53281,0:PRINTCHR$(14):PRINT"[147][158]" 40 DIMKY(90) 50 FORI=1TO90:KY(I)=0:NEXT 60 FORI=60TO85:READJ:KY(J)=I:IFI>72THENKY(J)=I-1 70 NEXT 80 DATA90,83,88,68,67,86,71,66,72,78,74,77,44 90 DATA81,50,87,51,69,82,53,84,54,89,55,85,73 100 FLAG=0 110 PRINT"[147]" 120 PRINTTAB(2)"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 130 PRINTTAB(2)"[221] [221]" 140 PRINTTAB(2)"[221] [205][201][196][201] [208]LAYBACK [212]EST [208]ROGRAM [221]" 150 PRINTTAB(2)"[221] WITH [221]" 160 PRINTTAB(2)"[221] [211]EQUENTIAL OR [208]ASSPORT [201]NTERFACE [221]" 170 PRINTTAB(2)"[221] [221]" 180 PRINTTAB(2)"[221] [196]AVID [210]. [194]ROOKS [221]" 190 PRINTTAB(2)"[221] [202]UNE 1986 [221]" 200 PRINTTAB(2)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]" 210 TX=2:REM TRANSMIT READY FLAG 220 VN=64:REM VELOCITY BYTE FOR NOTE ON 230 VO=0:REM VELOCITY BYTE FOR NOTE OFF 240 DD=20:REM DELAY TIME 250 IFFLAG<>0THENPRINT:GOTO360 260 PRINT:PRINTTAB(10)"[215]HICH INTERFACE?" 270 PRINTTAB(10)"[211][146]EQUENTIAL" 280 PRINTTAB(10)"[208][146]ASSPORT":POKE198,. 290 GETZ$:IFZ$=""THEN290 300 IFZ$="S"ORZ$="[211]" THENGOSUB1060:PRINT"[145][145][145][145]":GOTO350 310 IFZ$="P"ORZ$="[208]" THENGOSUB1120:PRINT"[145][145][145][145]":GOTO350 340 GOTO290 350 FLAG=1 360 : 370 PRINTTAB(10)"[208][146] - [208]LAY [211]CALE " 380 PRINTTAB(10)"[206][146] - [208]LAY [206]OTES [198]ROM [203]EYBOARD" 390 PRINTTAB(10)"[195][146] - [195]HANGE [208]ROGRAM " 400 PRINTTAB(10)"[209][146] - [209]UIT " 405 PRINT 410 PRINT" [197]NTER [211]ELECTION: "; 420 GETJ$:IFJ$=""THEN420 430 IFJ$="[208]"ORJ$="P"THEN 470 431 IFJ$="[206]"ORJ$="N"THEN 720 433 IFJ$="[195]"ORJ$="C"THEN 620 437 IFJ$="[209]"ORJ$="Q"THEN 1040 440 GOTO 420 450 : 460 REM *** PLAY ASCENDING SCALE 470 WAITSR,TX:REM READY TO TRANSMIT? 480 POKETR,144:REM IF SO, SEND STATUS BYTE FOR NOTE ON/NOTE OFF 490 FORN=60TO88 500 WAITSR,TX 510 POKETR,N:REM SEND NOTE NUMBER 520 WAITSR,TX 530 POKETR,VN:REM SEND VELOCITY BYTE 540 FORK=1TODD:NEXT:REM DO-NOTHING DELAY LOOP 550 WAITSR,TX 560 POKETR,N:REM SEND NOTE NUMBER 570 WAITSR,TX 580 POKETR,VO:REM SEND 0 BYTE FOR NOTE OFF 590 FORK=1TO10:NEXT:REM DO-NOTHING BREAK BETWEEN NOTES 600 NEXT 610 GOTO110 620 PRINT"[147][211]END PROGRAM CHANGES...":PRINT 630 WAITSR,TX:REM READY TO TRANSMIT? 640 POKETR,192:REM PROGRAM CHANGE STATUS BYTE 650 INPUT"[208]ROGRAM NUMBER";PN 660 WAITSR,TX 670 POKETR,PN 680 PRINT"[193]GAIN (Y/N)?" 690 GETJ$:IFJ$=""THEN690 700 IFJ$="Y"THEN620 710 GOTO110 720 PRINT"[147]PLAY FROM KEYBOARD..." 730 PRINTCHR$(142) 740 PRINT" 2 3 4 5 6" 750 PRINT" Q W E R T Y U I" 760 PRINT"[167] [146]  [146]  [194] [146]  [146]  [146]  [194] [146][165]" 770 PRINT"[167] [146]  [146]  [194] [146]  [146]  [146]  [194] [146][165]" 780 PRINT"[167] [146]  [146]  [194] [146]  [146]  [146]  [194] [146][165] (UPPER OCTAVE)" 790 PRINT"[167] [194] [194] [194] [194] [194] [194] [194] [146][165]" 800 PRINT"[167] [194] [194] [194] [194] [194] [194] [194] [146][165]" 810 PRINT: 820 PRINT" S D G H J" 830 PRINT" Z X C V B N M ," 840 PRINT"[167] [146]  [146]  [194] [146]  [146]  [146]  [194] [146][165]" 850 PRINT"[167] [146]  [146]  [194] [146]  [146]  [146]  [194] [146][165]" 860 PRINT"[167] [146]  [146]  [194] [146]  [146]  [146]  [194] [146][165] (LOWER OCTAVE)" 870 PRINT"[167] [194] [194] [194] [194] [194] [194] [194] [146][165]" 880 PRINT"[167] [194] [194] [194] [194] [194] [194] [194] [146][165]" 890 PRINT:PRINT"PRESS SPACEBAR TO QUIT..." 900 WAITSR,TX 910 POKETR,144 920 GETK$:IFK$=""THEN920 930 IFASC(K$)=32THENPRINTCHR$(14):GOTO110 940 WAITSR,TX 950 POKETR,KY(ASC(K$)) 960 WAITSR,TX 970 POKETR,VN 980 FORI=1TODD:NEXT 990 WAITSR,TX 1000 POKETR,KY(ASC(K$)) 1010 WAITSR,TX 1020 POKETR,VO 1030 GOTO920 1040 PRINT"[145] [193]RE [217]OU [211]URE? ([217]/[206]) "; 1041 GETA$:IFA$="" THEN 1041 1042 IFA$="Y"ORA$="[217]"THEN1045 1043 IFA$="N"ORA$="[206]"THEN PRINT"[145]";:GOTO 410 1044 GOTO 1041 1045 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 1046 IFER<>63THENEND 1047 LOAD"HELLO CONNECT",8 1050 REM *** SEQUENTIAL INITIALIZATION 1060 CR=56832:REM ACIA CONTROL REGISTER 1070 TR=CR+1:SR=CR+2:REM TRANSMIT AND STATUS REGISTERS 1080 POKECR,3:REM ACIA MASTER RESET 1090 POKECR,21:REM DISABLE ACIA INTERRUPT 1100 RETURN 1110 REM *** PASSPORT INITIALIZATION 1120 CR=56840:REM ACIA CONTROL REGISTER 1130 TR=CR+1:SR=CR:REM TRANSMIT AND STATUS REGISTERS 1140 POKECR,19:REM ACIA MASTER RESET 1150 POKECR,17:REM DISABLE ACIA INTERRUPT 1160 RETURN 60100 POKE53280,1:POKE53281,1 60110 PRINT"[147][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"; 60120 FORA=1TO23:PRINT"[221]"SPC(38)"[221]";:NEXT 60130 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][157][148][192]" 60140 FORA=217TO242:POKEA,PEEK(A)OR128:NEXT 60150 PRINT" [204][207][193][196][211][212][193][210] [208]RESENTS:" 60160 PRINT"  " 60170 PRINT"  [205][201][196][201] [211]END [155] " 60180 PRINT"  [155] " 60190 PRINT"  [194]Y [196]AVID [194]ROOKS [155] " 60200 PRINT"  [155] " 60210 PRINT"  [195]OPYRIGHT 1987 [155] " 60220 PRINT"  [155] " 60230 PRINT"  " 60240 PRINT" [208]RESS [211][208][193][195][197] TO CONTINUE" 60250 IFPEEK(203)<>60THEN60250 60260 RETURN