0 ME$ = "PIANOKEY.BAS":PP$ = "": REM YOU CAN CHANGE PP$ TO THE PATH WHERE THIS PROGRAM IS INSTALLED
1 IF PEEK(104) < >16 THEN POKE 4096,0: POKE 104,16: PRINT CHR$(4)"RUN "PP$;ME$
2 GD = 0: REM PIANO DISPLAY
3 TEXT : HOME : PRINT "*** REALTIME PIANO DISPLAY ***": PRINT : PRINT "THIS OPTION WORKS BEST FOR SIMPLE MIDI": PRINT "SEQUENCES OR HANDS-ON MUSIC LESSONS.": PRINT : PRINT
5 PRINT : INPUT "SEND MIDI IN TO MIDI OUT? :";Y$
6 PRINT : INPUT "USE MOCKINGBOARD AS TONE GENERATOR? :";TG$
7 IF LEFT$(Y$,1) = "Y" THEN THRU = 1
9 IF GD < >1 THEN 1000
10 TEXT : HOME
15 PRINT "C # D # E F # G # A # B "
20 FOR Y = 0 TO 10
30 FOR X = 0 TO 11
35 IF Y = 0 THEN PRINT "===";: GOTO 50
40 PRINT "--|";
50 NEXT X
60 PRINT
70 FOR X = 0 TO 11
80 PRINT " |";
90 NEXT X
95 PRINT " ";8 -Y
110 NEXT Y
130 PRINT "====================================";
133 PRINT "===";
140 VTAB 1
145 IF LEFT$(Y$,1) = "Y" OR LEFT$(Y$,1) = "y" THEN PRINT CHR$(4)"BRUN MIDITHRU": GOTO 200
150 PRINT CHR$(4)"BRUN REALTIME"
200 GOTO 9000
1000 PRINT :
1010 PRINT CHR$(4)"BRUN "PP$"PIANO.SCREEN"
1015 IF LEFT$(TG$,1) = "Y" THEN PRINT CHR$(4)"BLOAD TONEGEN": GOTO 1030
1020 PRINT CHR$(4)"BLOAD "PP$"GRID.DRIVER"
1030 AD = 11 *256 +11 *16 +14
1035 IF LEFT$(TG$,1) = "Y" THEN AD = AD +3
1040 IF THRU THEN POKE AD,8 *16 +13: POKE AD +1,10 *16 +9: POKE AD +2,12 *16 +0
1050 REM ASSUMES PASSPORT IN SLOT 2
1055 VTAB 23: HTAB 1: IF THRU = 1 THEN PRINT "MIDI THRU MODE IS ACTIVATED": GOTO 1058
1057 PRINT "MIDI DISPLAY MODE IS ACTIVATED"
1058 VTAB 24: HTAB 1: PRINT "PRESS ANY KEY TO TERMINATE PROGRAM";