I B M    M u s i c    D e m o    1 9 8 1 - 8 2
Frank's Humble Abode at frankosite2020.com
Herein is the complete IBM-BASIC Code of the original 1981 (updated 1982) IBM Music Demo Program with
eleven selections. Compiled into a DOS EXE with PowerBasic DOS Version 3.50 in the 1990's.

IBM Music 1981

Download compiled TMUSIC.EXE program, stored in ZIP file IBM-Music-8182.zip. Once extracted,
it can be viewed using a DOS emulator such as Dosbox -OR- DosBox-X.  

frankosite2020.com »»»   Home Page       About Me         E-Mail   and   GuestBook

See Also »»»   Kube-0-Seven   PowerBasic Console Compiler Demonstration Program

and ... Program 8032   Emulation of a Commodore 4.0 Screen using PowerBASIC-DOS 3.50

Visit these PowerBasic Forums »»»   PB Users Site   (NEW, Oct 11th 2025)   and   Forums       "PUMP" Alternative Board


 ' ==========================================================

   REM  PowerBASIC DOS-3.50 Coding

   $Compile exe "TMUSIC.EXE"
   $CPU 80386

   REM  IBM BASIC Coding Hereafter

   REM  The IBM BASIC code was copied exactly as originally written, with
   REM  only minor adjustments. The 4000-and-up lines were added for the
   REM  PowerBASIC 3.50-DOS Compiler version.

   900 CLS:KEY OFF:CLEAR:RESTORE

   1000 REM The IBM Personal Computer Music
   1010 REM Version 1.10 (C)Copyright IBM Corp 1981, 1982
   1020 REM Licensed Material - Program Property of IBM

   1030 DEF SEG
   1040 SAMPLES$ = "NO"
   1050 GOTO 1070
   1060 SAMPLES$ = "YES"

   1070 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19,0:PRINT "IBM"
   1080 LOCATE 7,12:PRINT "Personal Computer"
   1090 COLOR 10,0:LOCATE 10,9:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
   1100 LOCATE 11,9:PRINT CHR$(179)+"        MUSIC        "+CHR$(179)
   1110 LOCATE 12,9:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
   1120 LOCATE 13,9:PRINT CHR$(179)+"    Version 1.10     "+CHR$(179)
   1130 LOCATE 14,9:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
   1140 COLOR 15,0:LOCATE 17,4:PRINT "(C) Copyright IBM Corp 1981, 1982"
   1150 COLOR 14,0:LOCATE 23,7:PRINT "Press space bar to continue"

   1160 IF INKEY$ <> "" THEN  1160
   1170 CMD$ = INKEY$:IF CMD$="" THEN 1170
   1180 IF CMD$ = CHR$(27) THEN GOTO 2000
   1190 IF CMD$ <> " " THEN 1170

   1200 ON ERROR GOTO 1230
   1210 PLAY "mf"
   1220 GOTO 1240
   1230 RESUME 1240

   1240 ON ERROR GOTO 0
   1250 SCREEN 0,1:WIDTH 40:COLOR 15,1,1:CLS:DEFINT A-Z
   1260 LOCATE 15,7:PRINT " ------- selections -------"
   1270 LOCATE 16,7:PRINT " A-MARCH  E-HUMOR  I-SAKURA"
   1280 LOCATE 17,7:PRINT " B-STARS  F-BUG    J-BLUE  "
   1290 LOCATE 18,7:PRINT " C-FORTY  G-POP    K-SCALES"
   1300 LOCATE 19,7:PRINT " D-HAT    H-DANDY  ESC KEY-EXIT"

   1310 COLOR 15,0
   1320 FOR I=0 TO 15:FOR J=0 TO 8
   1330 LOCATE 5+J,5+I*2:PRINT CHR$(219);CHR$(221);
   1340 NEXT:NEXT

   1350 FOR I=0 TO 12:FOR J=0 TO 4
   1360 IF I=2 OR I=6 OR I=9 OR I=13 THEN 1380
   1370 LOCATE 5+J,8+I*2:PRINT CHR$(32);CHR$(222);
   1380 NEXT:NEXT

   1390 FOR J=0 TO 9
   1400 LOCATE 4+J,4:COLOR 4,0:PRINT CHR$(221);:LOCATE 4+J,36:COLOR 15,0
   1410 PRINT CHR$(221);:COLOR 4,1:PRINT CHR$(221);
   1420 NEXT

   1430 COLOR 4,1:LOCATE 4,4
   1440 FOR I=0 TO 32:PRINT CHR$(219);:NEXT
   1450 PRINT CHR$(221);:LOCATE 13,4
   1460 FOR I=0 TO 32:PRINT CHR$(219);:NEXT
   1470 PRINT CHR$(221);:COLOR 0,7:DIM M(88),O(70)
   1480 FOR I=7 TO 88:M(I) =  36.8*(2^(1/12))^(I-6):NEXT
   1490 FOR I=0 TO 6:M(I) = 32767:NEXT

   1500 O(0) = 0
   1510 O(39)=5:O(40)=7:O(41)=8:O(42)=9
   1520 O(43)=10:O(44)=11:O(45)=13:O(46)=14
   1530 O(47)=15:O(48)=16:O(49)=17:O(50)=18
   1540 O(51)=19:O(52)=21:O(53)=22:O(54)=23
   1550 O(55)=24:O(56)=25:O(57)=27:O(58)=28
   1560 O(59)=29:O(60)=30:O(61)=31:O(62)=32
   1570 O(63)=33:O(64)=35:O(65)=36:O(66)=37
   1580 O(67)=38:O(68)=39:O(69)=40:O(70)=42
   1590 GOTO 1750

   1600 READ J,K
   1610 CMD$ = INKEY$:IF CMD$="" THEN 1650
   1620 IF CMD$=CHR$(27) THEN RETURN
   1630 REM
   1640 REM
   1650 IF J = -1 THEN RETURN
   1660 Q = O(J)
   1670 IF J>64 OR J<39 THEN 1700
   1680 IF SCREEN(5,Q)<>32 THEN COLOR 0,7:LOCATE 11,Q:PRINT CHR$(14);:COLOR 15,0:GOTO 1700
   1690 COLOR 15,0:LOCATE 7,Q:PRINT CHR$(14);:COLOR 0,7

   1700 SOUND M(J),K:IF J=0 AND K=1 THEN 1720:'SKIP NEXT FOR STACCATTO
   1710 SOUND 32767,1
   1720 IF J>64 OR J<39 THEN 1600
   1730 IF SCREEN(5,Q) = 32 THEN COLOR 15,0:LOCATE 7,Q:PRINT CHR$(32);:GOTO 1600
   1740 COLOR 15,0:LOCATE 11,Q:PRINT CHR$(219);:GOTO 1600

   1750 LOCATE 21,5:PRINT "                                ";
   1760 LOCATE 21,5:PRINT "ENTER SELECTION ==>";
   1770 IF INKEY$ <> "" THEN 1770
   1780 CMD$=INKEY$:IF CMD$="" THEN 1780
   1790 IF CMD$=CHR$(27) THEN 2000
   1800 IF CMD$="A" OR CMD$="a" THEN S$= "MARCH ":RESTORE 2680:GOTO 1920
   1810 IF CMD$="B" OR CMD$="b" THEN S$= "STARS ":RESTORE 2770:GOTO 1920
   1820 IF CMD$="C" OR CMD$="c" THEN S$= "FORTY ":RESTORE 2460:GOTO 1920
   1830 IF CMD$="D" OR CMD$="d" THEN S$= "HAT   ":RESTORE 2880:GOTO 1920
   1840 IF CMD$="E" OR CMD$="e" THEN S$= "HUMOR ":RESTORE 2300:GOTO 1920
   1850 IF CMD$="F" OR CMD$="f" THEN S$= "BUG   ":RESTORE 2050:GOTO 1920
   1860 IF CMD$="G" OR CMD$="g" THEN S$= "POP   ":RESTORE 2380:GOTO 1920
   1870 IF CMD$="H" OR CMD$="h" THEN S$= "DANDY ":RESTORE 2580:GOTO 1920
   1880 IF CMD$="I" OR CMD$="i" THEN S$= "SAKURA":RESTORE 3040:GOTO 1920
   1890 IF CMD$="J" OR CMD$="j" THEN S$= "BLUE  ":RESTORE 2130:GOTO 1920
   1900 IF CMD$="K" OR CMD$="k" THEN S$= "SCALES":RESTORE 2960:GOTO 1920
   1910 GOTO 1760

   1920 PRINT " ";CMD$;"-";S$
   1925 FOR ZZ=1 TO 250:NEXT ZZ:' CHANGE THE 2nd NUMBER AFTER 1925
   1930 READ D
   1940 READ S$:LOCATE 23,1+(40.5-LEN(S$))/2
   1950 COLOR 15,4:PRINT S$;:COLOR 0,7
   1960 GOSUB 1600
   1970 S$=STRING$(39," "):LOCATE 23,1:COLOR 4,1:PRINT S$:COLOR 0,7
   1980 GOTO 1750
   1990 GOTO 4000

   2000 ' IF SAMPLES$="YES" THEN CHAIN "SAMPLES",1000
   2010 SCREEN 0,1:COLOR 7,0,0:GOTO 4000

   2020 REM The IBM Personal Computer Music Scroll
   2030 REM Version 1.00 (C)Copyright IBM Corp 1981
   2040 REM Licensed Material - Program Property of IBM

   2050 DATA -2,"La Cucaracha - Mexican Folk Song"
   2060 DATA 42,1,0,1,42,1,0,1,42,1,0,1,47,1,0,5,51,1,0,3,42,1,0,1,42,1,0,1
   2070 DATA 42,1,0,1,47,1,0,5,51,1,0,5,30,1,0,1,30,1,0,1,35,1,0,3,47,1,0,1
   2080 DATA 47,1,0,1,46,1,0,1,46,1,0,1,44,1,0,1,44,1,0,1,42,8,0,2,42,1,0,1
   2090 DATA 42,1,0,1,42,1,0,1,46,1,0,5,49,1,0,3,42,1,0,1,42,1,0,1,42,1,0,1
   2100 DATA 46,1,0,5,49,1,0,5,37,1,0,1,37,1,0,1,30,1,0,3,54,2,56,2,54,2,52,2
   2110 DATA 51,2,49,2,47,8
   2120 DATA -1,-1

   2130 DATA -2,"Blue Danube Waltz by J.S.Strauss"
   2140 DATA 42,4,46,4,49,4,49,4,0,4,61,2,0,2,61,2,0,6,58,2,0,2,58,2,0,6,42,4,42,4
   2150 DATA 46,4,49,4
   2160 DATA 49,4,0,4,61,2,0,2,61,2,0,6,59,2,0,2,59,2,0,6,41,4,41,4,44,4,51,4,51,4
   2170 DATA 0,4,63,2,0,2,63,2,0,6,59,2,0,2
   2180 DATA 59,2,0,6,41,4,41,4,44,4,51,4,51,4,0,4,63,2,0,2,63,2,0,6,58,2,0,2,58,2
   2190 DATA 0,6,42,4
   2200 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2,66,2,0,6,61,2,0,2,61,2,0,6,42,4
   2210 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2
   2220 DATA 66,2,0,6,63,2,0,2,63,2,0,6,44,4,44,4,47,4,51,2,0,2,51,14,0,2,48,4
   2230 DATA 49,4,58,16
   2240 DATA 54,4,46,4,46,8,44,4,51,8,49,4,42,4,0,2,42,2,42,4,0,8,49,2,0,2,47,2
   2250 DATA 0,6,49,2,0,2
   2260 DATA 47,2,0,6,49,4,58,16,56,4,49,2,0,2,46,2,0,6,49,2,0,2,46,2,0,6,49,4
   2270 DATA 56,16,54,4,49,2,0,2,47,2,0,6,49,2,0,2,47,2,0,6,49,4,58,16
   2280 DATA 56,4,49,4,54,4,56,4,58,4,61,8,59,4,58,2,58,2,58,4,56,2,0,2,54,4,0,8
   2290 DATA -1,-1

   2300 DATA -2,"Humoresque by Dvorak"
   2310 DATA 47,3,0,2,49,1,47,3,0,2,49,1,51,3,0,2,54,1,56,3,0,2,54,1
   2320 DATA 59,3,0,2,58,1,61,3,0,2,59,1,58,3,0,2,61,1,59,3,0,2,56,1
   2330 DATA 54,3,0,2,54,1,56,3,0,2,54,1,59,3,0,2,56,1,54,3,0,2,51,1
   2340 DATA 49,24,47,3,0,2,49,1,47,3,0,2,49,1,51,3,0,2,54,1,56,3,0,2,54,1
   2350 DATA 56,3,0,2,58,1,61,3,0,2,59,1,58,3,0,2,61,1,59,3,0,2,56,1
   2360 DATA 54,3,0,2,54,1,59,3,0,2,47,1,49,6,54,6,47,18
   2370 DATA -1,-1

   2380 DATA -2,"Pop! Goes the Weasel - Anonymous"
   2390 DATA 47,2,0,2,47,2,49,2,0,2,49,2,51,2,54,2,51,2,47,2,0,2,42,2
   2400 DATA 47,2,0,2,47,2,49,2,0,2,49,2,51,6,47,2,0,2,42,2,47,2,0,2,47,2,49,2
   2410 DATA 0,2,49,2,51,2,54,2,51,2,47,2,0,4,56,2,0,4,49,2,0,2,52,2,51,6,47,2
   2420 DATA 0,4,59,2,0,2,59,2,56,2,0,2,59,2,58,2,61,2,58,2,54,2,0,4,59,2,0,2
   2430 DATA 59,2,56,2,0,2,59,2,58,6,54,2,0,2,51,2,52,2,0,2,51,2,52,2,0,2,54,2
   2440 DATA 56,2,0,2,58,2,59,2,0,4,56,2,0,4,49,2,0,2,52,2,51,6,47,2
   2450 DATA -1,-1

   2460 DATA -2,"Symphony #40 by Mozart"
   2470 DATA 55,2,54,2,54,4,55,2,54,2,54,4,55,2,54,2,54,4,62,4,0,4
   2480 DATA 62,2,61,2,59,4,59,2,57,2,55,4,55,2,54,2
   2490 DATA 52,4,52,4,0,4,54,2,52,2,52,4,54,2,52,2,52,4,54,2,52,2
   2500 DATA 52,4,61,4,0,4,61,2,59,2,58,4,58,2,55,2,54,4,54,2,52,2
   2510 DATA 50,4,50,4,0,4,62,2,61,2,61,4,64,4,58,4,61,4
   2520 DATA 59,4,54,4,0,4,62,2,61,2,61,4,64,4,58,4,61,4
   2530 DATA 59,4,62,4,61,2,59,2,57,2,55,2,54,4,46,4,47,4,49,4
   2540 DATA 50,4,52,2,50,2,49,4,47,4,54,4,0,4,65,8
   2550 DATA 66,2,0,6,65,8,66,2,0,6,65,8
   2560 DATA 66,4,65,4,66,4,65,4,66,4
   2570 DATA -1,-1

   2580 DATA -2,"Yankee Doodle - Anonymous "
   2590 DATA 50,3,50,3,52,3,54,3,50,3,54,3,52,3,45,3,50,3,50,3,52,3,54,3,50,6
   2600 DATA 49,3,0,3
   2610 DATA 50,3,50,3,52,3,54,3,55,3,54,3,52,3,50,3,49,3,45,3,47,3,49,3,50,6
   2620 DATA 50,3,0,3
   2630 DATA 47,5,49,1,47,3,45,3,47,3,49,3,50,3,0,3,45,5,47,1,45,3,43,3,42,6
   2640 DATA 45,3,0,3
   2650 DATA 47,5,49,1,47,3,45,3,47,3,49,3,50,3,47,3,45,3,50,3,49,3,52,3,50,6
   2660 DATA 50,6
   2670 DATA -1,-1

   2680 DATA -2,"FUNERAL MARCH OF A MARIONETTE - GOUNOD"
   2690 DATA 37,1,0,2,30,1,0,5,42,3,42,3,41,3,39,3,41,3,0,3,42,3,44,3,0,3,37,1,0,2
   2700 DATA 30,1,0,5,42,3,42,3,41,3,39,3,41,3,0,3,42,3,44,3,0,3,37,3,42,3,0,3,45,3
   2710 DATA 49,6,47,3,45,3,0,3,49,3,52,6,50,3,49,3,0,3,53,3,56,6,54,3,53,3,50,3
   2720 DATA 49,3,47,3,45,3,44,3,30,1,0,5,42,3,42,3,41,3,39,3,41,3,0,3,42,3,44,3
   2730 DATA 0,3,37,1,0,2,30,1,0,5,42,3,42,3,41,3,39,3,41,3,0,3,42,3,44,3,0,3
   2740 DATA 37,3,45,3,0,3,49,3,52,6,50,3,49,3,47,3,45,3,43,3,47,3,50,3,42,3
   2750 DATA 41,3,42,3,44,3,0,3,45,1,0,2,44,9,42,1
   2760 DATA -1,-1

   2770 DATA -2,"STARS AND STRIPES FOREVER - SOUSA "
   2780 DATA 54,6,54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3
   2790 DATA 51,3,51,6,50,3,51,3
   2800 DATA 54,6,51,3,54,3,52,12,49,6,0,3,49,3,49,6,48,3,49,3
   2810 DATA 49,6,48,3,49,3
   2820 DATA 52,16,0,2,51,3,49,3,51,3,54,9,56,9,56,3,49,16,0,2,54,6
   2830 DATA 54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3,51,3,51,6,50,3 ,51,3
   2840 DATA 52,3,51,3,49,5,46,1,49,12,47,6,0,3,47,3,47,6,46,3,47,3,50,6,49,3,47,3
   2850 DATA 59,15,0,3,47,3,49,3,51,3,54,1,0,2,47,3,49,3,51,3,54,1,0,2,42,3,44,5
   2860 DATA 51,1,49,12,47,1
   2870 DATA -1,-1

   2880 DATA -2,"Mexican Hat Dance - Traditional "
   2890 DATA 52,2,57,2,0,2,52,2,57,2,0,2,52,2,57,6,0,4,52,2,57,2,59,2,57,2,56,4
   2900 DATA 57,2,59,2,0,8,52,2,56,2,0,2,52,2,56,2,0,2,52,2,56,6,0,4,52,2
   2910 DATA 56,2,57,2,56,2,54,4,56,2,57,2,0,6,64,2,63,2,64,2,61,2,60,2,61,2
   2920 DATA 57,2,56,2,57,2,52,2,0,4,49,2,50,2,52,2,54,2,56,2,57,2,59,2,61,2
   2930 DATA 62,2,59,2,0,4,62,2,61,2,62,2,59,2,58,2,59,2,56,2,55,2,56,2,52,2
   2940 DATA 0,4,64,2,63,2,64,2,66,2,64,2,62,2,61,2,59,2,57,2
   2950 DATA -1,-1

   2960 DATA -2,"SCALES"
   2970 DATA 38,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,1
   2980 DATA 48,1,49,1,50,1,51,1,52,1,53,1,54,1,55,1,56,1
   2990 DATA 57,1,58,1,59,1,60,1,61,1,62,1,63,1,64,1,65,8,0,4
   3000 DATA 65,8,64,1,63,1,62,1,61,1,60,1,59,1,58,1,57,1
   3010 DATA 56,1,55,1,54,1,53,1,52,1,51,1,50,1,49,1,48,1
   3020 DATA 47,1,46,1,45,1,44,1,43,1,42,1,41,1,40,1,39,1,38,8
   3030 DATA -1,-1

   3040 DATA -2,"Sakura - Japanese Folk Melody "
   3050 DATA 49,8,49,8,51,12,0,4,49,8,49,8,51,12,0,4,49,8,51,8,52,8,51,8
   3060 DATA 49,8,51,4,49,4,45,16,44,8,40,8,44,8,45,8
   3070 DATA 44,8,44,4,40,4,39,16,49,8,49,8,51,12,0,4,49,8,49,8,51,12,0,4
   3080 DATA 40,8,44,8,45,8,49,8,51,4,49,4,45,8,44,16
   3090 DATA -1,-1

   4000 CLS:WIDTH 40:COLOR 9,7,0:CLS
   4005 LOCATE 5,5:PRINT " Press M for MUSIC "
   4010 ' LOCATE 7,5:PRINT " Press B for BASIC "
   4015 LOCATE 9,5:PRINT " Press D for DOS * "

   4020 ZA$=INKEY$:IF ZA$="" THEN 4020
   4022 IF ZA$="M" OR ZA$="m" THEN 900
   4023 ' IF ZA$="B" OR ZA$="b" THEN 4030
   4024 IF ZA$="D" OR ZA$="d" THEN 4040
   4025 IF ZA$=CHR$(155) THEN 4038 ELSE 4020

   4030 LOCATE 11,5:COLOR 4,7,0:PRINT " BASIC -- Are You Sure (Y/N) ? "
   4032 ZB$=INKEY$:IF ZB$="" THEN 4032
   4033 IF ZB$="Y" OR ZB$="y" THEN 4038
   4034 IF ZB$="N" OR ZB$="n" THEN 4000 ELSE 4032
   4038 COLOR 7,0,0:WIDTH 80:KEY 2,"RUN"+CHR$(13):END

   4040 LOCATE 11,5:COLOR 4,7,0:PRINT " DOS -- Are You Sure (Y/N) ? "
   4042 ZB$=INKEY$:IF ZB$="" THEN 4042
   4043 IF ZB$="Y" OR ZB$="y" THEN 4048
   4044 IF ZB$="N" OR ZB$="n" THEN 4000 ELSE 4042
   4048 COLOR 7,0,0:WIDTH 80:KEY 2,"RUN"+CHR$(13):SYSTEM

 ' ===========================================================

I B M    M u s i c    D e m o    1 9 8 1 - 8 2

Herein is the complete IBM-BASIC Code of the original 1981 (updated 1982) IBM Music Demo Program with
eleven selections. Compiled into a DOS EXE with PowerBasic DOS Version 3.50 in the 1990's.

Download compiled TMUSIC.EXE program, stored in ZIP file IBM-Music-8182.zip. Once extracted,
it can be viewed using a DOS emulator such as Dosbox -OR- DosBox-X.  

frankosite2020.com »»»   Home Page       About Me         E-Mail   and   GuestBook

See Also »»»   Kube-0-Seven   PowerBasic Console Compiler Demonstration Program

and ... Program 8032   Emulation of a Commodore 4.0 Screen using PowerBASIC-DOS 3.50

Visit these PowerBasic Forums »»»   PB Users Site   (NEW, Oct 11th 2025)   and   Forums       "PUMP" Alternative Board


Go Back to the Top of This Page