PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

BASIC Programs for PC DOS 1.00

Using the PCx86 machine below, you can load any of the BASIC programs distributed with PC DOS 1.00, including featured BASIC program DONKEY.BAS.

The procedure is simple. For example, to capture MUSIC.BAS:

The LIST command is used to list all or part of a program on the screen, by including either a single line number (e.g., LIST 940), a range of line numbers (e.g., LIST 940-960), or no numbers at all. And if you want the listing sent to a different output device, you must append a comma and the name of the device, in quotes. Since this machine has been configured with one serial port (COM1) bound to the text window inside the machine’s Debugger, specifying “COM1” redirects the program listing to that window. One parallel port has been added to the machine and bound to the same window as well, so you can also use “LPT1”.

Except for the Music Samples, IBM stored all the BASIC files on the PC DOS 1.00 diskette as BINARY files, to reduce their size; otherwise, one or more of the samples would have had to be removed, since there wasn’t enough space on a single-sided 160Kb diskette.

NOTE: To save a BASIC program as an ASCII file, save it with the A option; e.g.:

SAVE "MUSIC",A

IBM PC, 64Kb RAM, Dual Floppy Drives, CGA, Color Display (with Debugger)

Color Display
Caps
Num
Scroll
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
Esc
1 !
2 @
3 #
4 $
5 %
6 ^
7 &
8 *
9 (
0 )
- _
= +
Back
-
Num
Scroll
Tab
Q
W
E
R
T
Y
U
I
O
P
[ {
] }
7
↑ 8
9
Ctrl
A
S
D
F
G
H
J
K
L
; :
' "
` ~
← 4
5
→ 6
+
Shift
\ |
Z
X
C
V
B
N
M
, <
. >
/ ?
Shift
PrtSc
1
↓ 2
3
Alt
Space
Caps
Ins 0
Del .
Esc
Tab
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
Num
Scroll
1 !
2 @
3 #
4 $
5 %
6 ^
7 &
8 *
9 (
0 )
- _
= +
Back
-
+
Q
W
E
R
T
Y
U
I
O
P
[ {
] }
7
↑ 8
9
A
S
D
F
G
H
J
K
L
; :
' "
` ~
← 4
5
→ 6
\ |
Z
X
C
V
B
N
M
, <
. >
/ ?
Shift
PrtSc
1
↓ 2
3
Ctrl
Shift
Alt
Space
Caps
Ins 0
Del .
PCjs Debugger
Speed:
Stopped
AX
0000
BX
0000
CX
0000
DX
0000
SP
0000
BP
0000
SI
0000
DI
0000
DS
0000
ES
0000
SS
0000
CS
0000
IP
0000
V
0
D
0
I
0
T
0
S
0
Z
0
A
0
P
0
C
0
SW1
1
2
3
4
5
6
7
8
SW2
1
2
3
4
5
6
7
8
64K, No FPU, Color Monitor, 2 Floppy Drives

ART.BAS

[Download]

940 REM The IBM Personal Computer Art
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
970 REM Author - Glenn Stuart Dardick
975 DEF SEG:  POKE 106,0
980 SAMPLES$ = "NO"
990 GOTO 1010
1000 SAMPLES$ = "YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"         ART         "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$<>"" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = "" THEN GOTO 1110
1130 IF CMD$ = CHR$(27) THEN GOTO 1530
1140 IF CMD$ = " " THEN GOTO 1160
1150 GOTO 1110
1160 DEF SEG=0
1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN GOTO 1300
1180 WIDTH 80:CLS:LOCATE 3,1
1190 PRINT "HOLD IT!"
1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!"
1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER."
1220 PRINT "PRESS THE SPACE BAR TO CONTINUE."
1230 DEF SEG
1240 IF INKEY$<>"" THEN GOTO 1240
1250 CMD$ = INKEY$
1260 IF CMD$ = "" THEN GOTO 1250
1270 IF CMD$ = CHR$(27) THEN GOTO 1530
1280 IF CMD$ = " " THEN GOTO 1530
1290 GOTO 1250
1300 DEF SEG
1301 ON ERROR GOTO 1304
1302 PLAY "mf"
1303 GOTO 1305
1304 RESUME 1305
1305 ON ERROR GOTO 0
1310 SCREEN 1,0:COLOR 8,0:CLS
1320 LINE (1,1)-(320,200),2,BF
1330 LINE (30,30)-(290,170),0,BF
1340 LINE (30,30)-(1,1),1
1350 LINE (290,30)-(320,1),1
1360 LINE (30,170)-(1,200),1
1370 LINE (290,170)-(320,200),1
1380 LINE (100,179)-(216,193),0,BF
1390 LOCATE 24,16
1391 PRINT " The City ";
1392 LOCATE 2,10
1400 PRINT "press ESC key to exit";
1410 IX1=RND*250+35
1420 IX2=RND*250+35
1430 IX2 = (IX1-IX2)/3 + IX2
1440 IY1=RND*110+55
1450 IY2=165
1460 LINE (IX1,IY1)-(IX2,IY2),RND*2+1,BF
1470 LINE (IX1,IY1)-(IX2,IY2),0,B
1480 LINE (IX1+1,IY1+1)-(IX2-1,IY2-1),0,B
1490 IA = ABS((IX1-IX2)*(IY1-IY2))
1500 IS = (36400!-IA)/360 + 37
1510 SOUND IS,2
1520 K$=INKEY$
1522 IF K$ = "" THEN GOTO 1410
1524 IF K$ <> CHR$(27) THEN POKE 106,0:GOTO 1410
1530 SCREEN 0,1:IF SAMPLES$ = "YES" THEN CHAIN "SAMPLES",1000
1540 COLOR 7,0,0:CLS:END

BALL.BAS

[Download]

940 REM The IBM Personal Computer Ball
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
975 DEF SEG: POKE 106,0
980 SAMPLES$="NO"
990 GOTO 1010
1000 SAMPLES$="YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"        BALL         "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$<>"" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = "" THEN GOTO 1110
1130 IF CMD$ = CHR$(27) THEN GOTO 1298
1140 IF CMD$ = " " THEN GOTO 1160
1150 GOTO 1110
1160 DEF SEG=0
1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN DEF SEG:GOTO 1291
1180 WIDTH 80:CLS:LOCATE 3,1
1190 PRINT "HOLD IT!"
1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!"
1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER."
1220 PRINT "PRESS THE SPACE BAR TO CONTINUE."
1230 DEF SEG
1240 IF INKEY$<>"" THEN GOTO 1240
1250 CMD$ = INKEY$
1260 IF CMD$ = "" THEN GOTO 1250
1270 IF CMD$ = CHR$(27) THEN GOTO 1298
1280 IF CMD$ = " " THEN GOTO 1298
1290 GOTO 1250
1291 KEY OFF
1292 ON ERROR GOTO 1295
1293 PLAY "p16"
1294 GOTO 1300
1295 COLOR 31,0,0
1296 PRINT "THIS PROGRAM REQUIRES ADVANCED BASIC -- USE COMMAND 'BASICA'":COLOR 15,0,0:FOR I=1 TO 9000:NEXT: RESUME 1298
1298 ON ERROR GOTO 0
1299 SCREEN 0,1:IF SAMPLES$="YES" THEN CHAIN"samples",1000 ELSE COLOR 7,0,0:CLS:END
1300 REM
1410 PLAY "mfl32t067"
1420 DEFINT A-Z: DIM B(280): DIM A(150)
1430 CLS:SCREEN 1,0:COLOR 8,0:KEY OFF
1440 CIRCLE (160,100),10,2
1450 PAINT (160,100),2,2
1460 GET (150,90)-(170,110),A
1470 CLS:LINE (19,0)-(299,177),,B
1480 LINE (20,1)-(300,178),,B
1490 LOCATE 24,11:PRINT" Press ESC to exit ";
1500 FOR X=20 TO 280 STEP 4
1510 B(X)=159-CINT(ABS(SIN(X*.0785398)*X)\2)
1520 NEXT: L=7: Y2=150
1530 LINE (223,3)-(253,175),3,BF
1540 LINE (191,3)-(222,175),2,BF
1550 LINE (160,3)-(190,175),1,BF
1560 FOR D=0 TO 1
1570 S=20+D*260:E=280-D*260
1580 FOR X=S TO E STEP 4-8*D
1590 Y=B(X): N=(170-Y2)\5:PLAY "L=L;T255;N=N;": IF F THEN PUT (X2,Y2),A
1600 PUT (X,Y),A: X2=X: Y2=Y: F=-1: NEXT
1610 L=(L+7) MOD 64:NEXT
1615 A$=INKEY$:IF A$=CHR$(27) THEN 1298
1620 POKE 106,0:IF A$<>"" THEN 1615 ELSE GOTO 1560

CALENDAR.BAS

[Download]

940 REM The IBM Personal Computer Calendar
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
975 DEF SEG: POKE 106,0
980 SAMPLES$="NO"
990 GOTO 1010
1000 SAMPLES$ = "YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"      CALENDAR       "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$ <> "" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = " " THEN GOTO 1150
1130 IF CMD$ = CHR$(27) THEN GOTO 2290
1140 GOTO 1110
1150 COLOR 15,0:CLS
1160 DIM M$(19),MONTH$(2,19),MNAME$(12),DAYS(12)
1190 MNAME$(1) = " JANUARY " : MNAME$(2) = "FEBRUARY "
1210 MNAME$(3) = "  MARCH  " : MNAME$(4) = "  APRIL  "
1230 MNAME$(5) = "   MAY   " : MNAME$(6) = "  JUNE   "
1250 MNAME$(7) = "  JULY   " : MNAME$(8) = " AUGUST  "
1270 MNAME$(9) = "SEPTEMBER" : MNAME$(10)= " OCTOBER "
1290 MNAME$(11)= " NOVEMBER" : MNAME$(12)= "DECEMBER "
1320 DAYS ( 1) = 31 : DAYS ( 2) = 28 : DAYS ( 3) = 31 : DAYS ( 4) = 30
1340 DAYS ( 5) = 31 : DAYS ( 6) = 30 : DAYS ( 7) = 31 : DAYS ( 8) = 31
1360 DAYS ( 9) = 30 : DAYS (10) = 31 : DAYS (11) = 30 : DAYS (12) = 31
1380 DIM YEARS(20)
1390 YEARS ( 1) = 4 : YEARS ( 2) = 5 : YEARS ( 3) = 6 : YEARS ( 4) = 0
1410 YEARS ( 5) = 2 : YEARS ( 6) = 3 : YEARS ( 7) = 4 : YEARS ( 8) = 5
1430 YEARS ( 9) = 0
1440 M$(1) = CHR$(192)+STRING$(35,208)
1450 T$ = "    "+CHR$(202) : M$(2)=CHR$(202)+T$+T$+T$+T$+T$+T$+T$:M$(3)=M$(2)
1480 T$ = STRING$(4,208)+CHR$(218) : M$(4)=CHR$(202)+T$+T$+T$+T$+T$+T$+T$
1500 FOR I = 5 TO 19:M$(I) = M$(I-3):NEXT I
1527 LOCATE 3,1
1528 PRINT "ENTER 0 TO END"
1529 PRINT "THE PROGRAM.":LOCATE 1,1
1530 LINE INPUT "ENTER YEAR (1981-1989) ==> ";YR$
1540 IF YR$="0"    THEN      GOTO 2290
1550 IF YR$="1981" THEN YR=1:GOTO 1730
1560 IF YR$="1982" THEN YR=2:GOTO 1730
1570 IF YR$="1983" THEN YR=3:GOTO 1730
1580 IF YR$="1984" THEN YR=4:GOTO 1730
1590 IF YR$="1985" THEN YR=5:GOTO 1730
1600 IF YR$="1986" THEN YR=6:GOTO 1730
1610 IF YR$="1987" THEN YR=7:GOTO 1730
1620 IF YR$="1988" THEN YR=8:GOTO 1730
1630 IF YR$="1989" THEN YR=9:GOTO 1730
1640 PRINT ""
1650 PRINT "YEAR MUST BE A NUMBER"
1660 PRINT "FROM 1981 TO 1989."
1670 PRINT ""
1680 PRINT "ENTER 0 TO END"
1690 PRINT "THE PROGRAM."
1700 PRINT ""
1710 PRINT ""
1720 GOTO 1530
1730 Y = YEARS(YR)
1740 IF YR = 1984 THEN DAYS(2)=29
1750 IF YR = 1988 THEN DAYS(2)=29
1770 PRINT ""
1780 PRINT "POSITION PAPER AND PRESS SPACE BAR"
1790 PRINT "WHEN THE IBM PERSONAL COMPUTER"
1800 PRINT "PRINTER IS READY"
1810 PRINT ""
1820 PRINT ""
1830 IF INKEY$ <> "" THEN GOTO 1830
1840 CMD$ = INKEY$
1850 IF CMD$ = " " THEN GOTO 1880
1860 IF CMD$ = CHR$(27) THEN GOTO 2290
1870 GOTO 1840
1880 PRINT "PRINTING CALENDAR FOR THE YEAR, ";YR$;","
1890 PRINT "PRESS THE ESC KEY TO EXIT."
1900 FOR P = 0 TO 2
1910 LPRINT CHR$(15);
1920 LPRINT "        (C) COPYRIGHT IBM CORPORATION 1981"
1930 LPRINT CHR$(18);
1940 FOR SKIP=1 TO 1:LPRINT"":NEXT SKIP
1950 LPRINT CHR$(14);CHR$(27);CHR$(69);
1960 LPRINT "    THE IBM PERSONAL COMPUTER CALENDAR"
1970 LPRINT CHR$(14);CHR$(27);CHR$(69);
1980 LPRINT "                  ";1980+YR
1990 FOR SKIP=1 TO 2:LPRINT"":NEXT SKIP
2000 FOR M = (1+P*4) TO (3+P*4) STEP 2
2010 FOR SKIP=1 TO 2:LPRINT"":NEXT SKIP
2020 LPRINT CHR$(14);CHR$(27);CHR$(69);
2030 LPRINT "       ";MNAME$(M);"          ";MNAME$(M+1)
2040 LPRINT CHR$(27);CHR$(70);
2050 FOR I = 1 TO 19
2060 MONTH$(1,I) = M$(I)
2070 MONTH$(2,I) = M$(I)
2080 NEXT I
2090 FOR SKIP=1 TO 1:LPRINT"":NEXT SKIP
2100 FOR J = 1 TO DAYS(M)
2110 K = (Y+J-1) MOD 7:L = INT((Y+J-1)/7)
2120 MID$(MONTH$(1,2+L*3),2+K*5) = MID$(STR$(J),2,2)
2130 NEXT J
2140 Y = (Y+(DAYS(M) MOD 7)) MOD 7
2150 FOR J = 1 TO DAYS(M+1)
2160 K = (Y+J-1) MOD 7:L = INT((Y+J-1)/7)
2170 MID$(MONTH$(2,2+L*3),2+K*5) = MID$(STR$(J),2,2)
2180 NEXT J
2190 Y = (Y+(DAYS(M+1) MOD 7)) MOD 7
2200 LPRINT "      SUN  MON  TUE  WED  THU  FRI  SAT      SUN  MON  TUE  WED  THU  FRI  SAT"
2210 FOR I = 1 TO 19:LPRINT "    ";MONTH$(1,I);"   ";MONTH$(2,I)
2230 IF INKEY$ = CHR$(27) THEN GOTO 2290
2240 NEXT I
2250 FOR SKIP=1 TO 4:LPRINT"":NEXT SKIP : NEXT M
2270 FOR SKIP=1 TO 4:LPRINT"":NEXT SKIP : NEXT P
2290 IF SAMPLES$ = "YES" THEN CHAIN "SAMPLES",1000
2300 SCREEN 0:COLOR 7,0:CLS

CIRCLE.BAS

[Download]

940 REM The IBM Personal Computer Circle
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
975 DEF SEG: POKE 106,0
980 CLEAR,,8000:SAMPLES$="NO"
990 GOTO 1010
1000 CLEAR,,8000:SAMPLES$="YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"       CIRCLE        "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$<>"" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = "" THEN GOTO 1110
1130 IF CMD$ = CHR$(27) THEN GOTO 1312
1140 IF CMD$ = " " THEN GOTO 1160
1150 GOTO 1110
1160 DEF SEG=0
1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN DEF SEG:GOTO 1300
1180 WIDTH 80:CLS:LOCATE 3,1
1190 PRINT "HOLD IT!"
1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!"
1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER."
1220 PRINT "PRESS THE SPACE BAR TO CONTINUE."
1230 DEF SEG
1240 IF INKEY$<>"" THEN GOTO 1240
1250 CMD$ = INKEY$
1260 IF CMD$ = "" THEN GOTO 1250
1270 IF CMD$ = CHR$(27) THEN GOTO 1312
1280 IF CMD$ = " " THEN GOTO 1312
1290 GOTO 1250
1300 KEY OFF
1301 ON ERROR GOTO 1310
1302 PLAY "p16"
1303 GOTO 1320
1310 COLOR 31,0,0
1311 PRINT "THIS PROGRAM REQUIRES ADVANCED BASIC -- USE COMMAND 'BASICA'":COLOR 15,0,0:FOR I=1 TO 9000:NEXT: RESUME 1312
1312 ON ERROR GOTO 0
1313 SCREEN 0,1:IF SAMPLES$="YES" THEN CHAIN"samples",1000
1314 COLOR 7,0,0:CLS:END
1320 REM
1340 SCREEN 1,0:COLOR 8,0
1350 S1=.5+RND*5:S2=RND*2
1360 CLS
1365 LOCATE 25,1:PRINT"Press ESC to exit"
1370 FOR R=5 TO 100 STEP 2
1380 A2=A+S1:IF A2>6.28 THEN A2=A2-6.28
1390 CIRCLE(160,100),R,2,A,A2,5/6
1400 A=A+S2:IF A>6.28 THEN A=A-6.28
1410 NEXT
1420 PAINT(160,100),3,2
1430 FOR I=0 TO 1000:NEXT
1431 A$=INKEY$:IF A$=CHR$(27) THEN 1313
1440 GOTO 1350

COMM.BAS

[Download]

1 REM The IBM Personal Computer Comm
2 REM Version 1.00 (C)Copyright IBM Corp 1981
3 REM Licensed Material - Program Property of IBM
4 REM Author - M. C. Rojas
10 KEY OFF: SCREEN 0,0: WIDTH 40: COLOR 7,0: CLS:POKE 106,0
11 FOR I=1 TO 10:KEY I,"":NEXT
12 CLOSE: DEFINT A-Z: FALSE=0: TRUE=NOT FALSE: XOFF$=CHR$(19): XON$=CHR$(17):ON ERROR GOTO 460:T=0:ECH$=""
15 DEF SEG=0: IF (PEEK(&H410) AND &H30)=&H30 THEN WIDTH 80:T=20:MODE$="b":DEF SEG:GOTO 30
16 FOR I=1 TO 10:KEY I,"":NEXT
17 LOCATE 25,10+T/2:PRINT"F1 = 40 COLUMN         F2 = 80 COLUMN"
18 DEF SEG
30 WIDTH "com1:",255:DEF SEG
40 LOCATE 2: PRINT TAB(10+T) "COMMUNICATIONS MENU"
50 LOCATE 6,3+T: PRINT "Choose one of the following:"
60 LOCATE 9,10+T: PRINT "1 Description of program"
70 PRINT TAB(10+T) "2 Dow Jones/News Retrieval"
80 PRINT TAB(10+T) "3 IBM Personal Computer"
90 PRINT TAB(10+T) "4 Series/1"
100 PRINT TAB(10+T) "5 THE SOURCE"
110 PRINT TAB(10+T) "6 Other service"
115 PRINT TAB(10+T) "7 End program"
120 LOCATE 18: PRINT SPACE$(40+T): LOCATE 18,3+T,1:PRINT "choice";
122 A$=INKEY$:IF A$="" THEN 122
123 IF LEN(A$)=1 THEN LT=VAL(A$):GOTO 130
124 IF MODE$="b" THEN LT=0:GOTO 130
125 B$=MID$(A$,2,1)
126 IF ASC(B$)=59 THEN WIDTH 40:T=0:CLS:GOTO 17 ELSE IF ASC(B$)=60 THEN WIDTH 80:T=20:CLS:GOTO 17 ELSE LT=0:GOTO 130
127 GOTO 122
130 IF LT=7 THEN CLS: PRINT TAB(10+T) "- COMMUNICATION ENDED -": END ELSE IF (LT=2 OR LT=4 OR LT=5) THEN 230 ELSE IF LT=1 THEN GOSUB 530:GOTO 10:ELSE IF (LT<1 OR LT>7) THEN FL=1: PRINT: PRINT TAB(3+T) "Invalid choice, try again"
140 IF FL=1 THEN FOR I=1 TO 2500: NEXT: LOCATE 19: PRINT SPACE$(40+T):FL=0: GOTO 120
145 CLS: LOCATE 1,10+T: PRINT "USER DEFINED LINK":IF LT=3 THEN LOCATE ,3+T: PRINT "TO ANOTHER IBM PERSONAL COMPUTER"
150 LOCATE 4,3+T,1:PRINT "BAUD RATE ";:GOSUB 465: SPEED$=B$
160 LOCATE 5,3+T,1:PRINT "PARITY ";:GOSUB 465: PARITY$=B$
170 LOCATE 6,3+T,1:PRINT "NUMBER OF BITS PER CHARACTER ";:GOSUB 465:BITS$=B$
180 LOCATE 7,3+T,1:PRINT "NUMBER OF STOP BITS ";:GOSUB 465: STP$=B$
185 LOCATE 8,3+T,1:PRINT "CHARACTERS ECHOED TO SCREEN (Y/N) ";:GOSUB 465: ECH$=B$
190 LOCATE 10,3+T,1: PRINT "Data entered correctly (Y/N) ";:GOSUB 465:CR$=B$
200 IF CR$="N" OR CR$="n" THEN 145 ELSE GOSUB 480
210 LOCATE 21,3:COMFIL$="COM1:"+SPEED$+","+PARITY$+","+BITS$+","+STP$
220 OPEN COMFIL$ AS #1
230 IF LT=4 THEN NM$="Series/1":GOSUB 470:OPEN "com1:300,e,7,2" AS 1
240 IF LT=2 THEN NM$="Dow Jones News/Retrieval":GOSUB 470:OPEN "com1:300,e,7" AS 1
250 IF LT=5 THEN NM$="THE SOURCE":GOSUB 470:OPEN "com1:300,e,7" AS 1
260 OPEN "SCRN:" FOR OUTPUT AS #2
270 LOCATE ,,1
280 PAUSE=FALSE:ON ERROR GOTO 460
290 B$=INKEY$:IF B$="" THEN 320
300 IF LEN(B$)>1 THEN IF ASC(MID$(B$,2,1))=68 THEN 450 ELSE 320 ELSE IF B$=CHR$(8) THEN LOCATE ,POS(0)-1,1:PRINT " ";:LOCATE ,POS(0)-1,1
310 PRINT #1,B$;: IF ECH$="Y" OR ECH$="y" THEN PRINT#2,B$;
320 IF EOF(1) THEN 290
330 IF LOC(1)>128 THEN PAUSE=TRUE:PRINT#1,XOFF$;
340 A$=INPUT$(LOC(1),#1)
360 FOR I=1 TO LEN(A$)
370 IF (ASC(MID$(A$,I,1))<31 AND MID$(A$,I,1)<>CHR$(13)) OR MID$(A$,I,1)=CHR$(127) THEN 410
380 IF MID$(A$,I,1)=CHR$(10) THEN MID$(A$,I,1)=" "
400 PRINT MID$(A$,I,1);
410 NEXT I
420 IF LOC(1)>0 THEN 290
430 IF PAUSE THEN PAUSE=FALSE:PRINT#1,XON$;
440 GOTO 290
450 POKE 106,0: CLOSE: ON ERROR GOTO 0: GOTO 10
460 IF ERR=68 THEN CLS: LOCATE 12,8+T: PRINT "THIS PROGRAM REQUIRES THE":PRINT TAB(3+T) "ASYNCHRONOUS COMMUNICATIONS ADAPTER.": END
461 IF ERR=24 THEN CLS: LOCATE 12,,1:PRINT "A DEVICE TIMEOUT ERROR HAS OCCURRED.":PRINT "MAKE SURE THE HARDWARE IS CORRECTLY":PRINT "SET UP, THEN PRESS ENTER.";:GOSUB 465: CLS:RESUME
462 RESUME
465 A$="":B$="":CR$="": WHILE A$<>CHR$(13)
466 A$=INKEY$: IF A$="" THEN 466 ELSE IF LEN(A$)>1 THEN IF ASC(MID$(A$,2,1))=68 THEN 450 ELSE 466: ELSE IF A$<>CHR$(8) THEN PRINT A$;: ELSE LOCATE ,POS(0)-1,1:PRINT " ";:LOCATE ,POS(0)-1,1:B$=MID$(B$,1,LEN(B$)-1)
467 IF A$<>CHR$(13) AND A$<>CHR$(8) THEN B$=B$+A$
468 WEND:RETURN
470 CLS: LOCATE 1,12+T: PRINT NM$:PRINT
480 PRINT:PRINT:PRINT TAB(3+T) "- Place your call, and insert the"
490 PRINT TAB(3+T) "  phone receiver into the modem, or"
495 PRINT TAB(3+T) "  switch your data set from talk to"
500 PRINT TAB(3+T) "  data. Then press ENTER to begin.   ": PRINT: PRINT
510 PRINT TAB(3+T) "- PRESS F10 TO GO TO MENU":PRINT
512 GOSUB 465
515 RETURN
530 CLS: LOCATE 1,15+T: PRINT "DESCRIPTION"
540 LOCATE 4,3+T: PRINT "An asynchronous communication link"
550 PRINT TAB(3+T) "will be established between the"
560 PRINT TAB(3+T) "selected service and the"
570 PRINT TAB(3+T) "IBM PERSONAL COMPUTER, as follows:"
580 LOCATE 9,3+T: PRINT "Baud rate";TAB(13+T)"300"
590 PRINT TAB(3+T) "Parity";TAB(14+T)"E"
600 PRINT TAB(3+T) "Data bits";TAB(14+T);"7
610 PRINT TAB(3+T) "Stop bits";TAB(14+T);"1  Dow Jones, THE SOURCE"
620 PRINT TAB(14+T) "2  Series/1"
630 LOCATE 15,3+T: PRINT "Options 3 and 6 allow for the above"
640 PRINT TAB(3+T) "characteristics to be supplied by"
650 PRINT TAB(3+T) "the user to define a communication"
660 PRINT TAB(3+T) "link to other services or computers."
661 IF MODE$="b" THEN 670
665 LOCATE 20,3+T: PRINT "You can select 40 column display or"
666 PRINT TAB(3+T) "80 column display by pressing F1 or"
667 PRINT TAB(3+T) "F2 before selecting menu choice."
670 LOCATE 24,3+T: PRINT "PRESS ANY KEY TO GO TO MENU";
671 CR$=INKEY$:IF CR$="" THEN 671 ELSE RETURN

DONKEY.BAS

[Download]


940 REM The IBM Personal Computer Donkey
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
975 DEF SEG: POKE 106,0
980 SAMPLES$="NO"
990 GOTO 1010
1000 SAMPLES$="YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"       DONKEY        "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$<>"" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = "" THEN GOTO 1110
1130 IF CMD$ = CHR$(27) THEN GOTO 1298
1140 IF CMD$ = " " THEN GOTO 1160
1150 GOTO 1110
1160 DEF SEG=0
1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN DEF SEG:GOTO 1291
1180 WIDTH 80:CLS:LOCATE 3,1
1190 PRINT "HOLD IT!"
1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!"
1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER."
1220 PRINT "PRESS THE SPACE BAR TO CONTINUE."
1230 DEF SEG
1240 IF INKEY$<>"" THEN GOTO 1240
1250 CMD$ = INKEY$
1260 IF CMD$ = "" THEN GOTO 1250
1270 IF CMD$ = CHR$(27) THEN GOTO 1298
1280 IF CMD$ = " " THEN GOTO 1298
1290 GOTO 1250
1291 KEY OFF
1292 ON ERROR GOTO 1295
1293 PLAY "p16"
1294 GOTO 1300
1295 COLOR 31,0,0
1296 PRINT "THIS PROGRAM REQUIRES ADVANCED BASIC -- USE COMMAND 'BASICA'":COLOR 15,0,0:FOR I=1 TO 9000:NEXT: RESUME 1298
1298 ON ERROR GOTO 0
1299 SCREEN 0,1:IF SAMPLES$="YES" THEN CHAIN"samples",1000 ELSE COLOR 7,0,0:CLS:END
1300 REM
1410 COLOR 0
1420 DEFINT A-Y
1440 SCREEN 1,0:COLOR 8,1
1450 DIM Q%(500)
1460 DIM D1%(150),D2%(150),C1%(200),C2%(200)
1470 DIM DNK%(300)
1480 GOSUB 1940
1490 GOSUB 1780
1500 CLS
1510 DIM B%(300)
1520 FOR I=2 TO 300:B%(I)=-16384+192:NEXT
1530 B%(0)=2:B%(1)=193
1540 REM
1550 CX=110:CLS
1590 LINE (0,0)-(305,199),,B
1600 LINE (6,6)-(97,195),1,BF
1610 LINE (183,6)-(305,195),1,BF
1620 LOCATE 3,5:PRINT "Donkey"
1630 LOCATE 3,29:PRINT "Driver"
1631 LOCATE 19,25:PRINT"Press Space  ";
1632 LOCATE 20,25:PRINT"Bar to switch";
1633 LOCATE 21,25:PRINT"lanes        ";
1635 LOCATE 23,25:PRINT"Press ESC    ";
1636 LOCATE 24,25:PRINT"to exit      ";
1640 FOR Y=4 TO 199 STEP 20:LINE(140,Y)-(140,Y+10):NEXT
1650 CY=105:CX=105
1660 LINE (100,0)-(100,199):LINE(180,0)-(180,199)
1670 LOCATE 5,6:PRINT SD:LOCATE 5,31:PRINT SM
1680 CY=CY-4:IF CY<60 THEN 2230
1690 PUT (CX,CY),CAR%,PRESET
1700 DX=105+42*INT(RND*2)
1710 FOR Y=(RND*-4)*8 TO 124 STEP 6
1720 SOUND 20000,1
1730 A$=INKEY$:IF A$=CHR$(27) THEN 1298 ELSE POKE 106,0:IF LEN(A$)>0 THEN LINE (CX,CY)-(CX+28,CY+44),0,BF:CX=252-CX:PUT (CX,CY),CAR%,PRESET:SOUND 200,1
1740 IF Y=>3 THEN PUT (DX,Y),DNK%,PSET
1750 IF CX=DX AND Y+25>=CY THEN 2060
1760 IF Y AND 3 THEN PUT (140,6),B%
1770 NEXT:LINE (DX,124)-(DX+32,149),0,BF:GOTO 1670
1780 CLS
1790 DRAW "S8C3"
1800 DRAW"BM12,1r3m+1,3d2R1ND2u1r2d4l2u1l1"
1810 DRAW"d7R1nd2u2r3d6l3u2l1d3m-1,1l3"
1820 DRAW"m-1,-1u3l1d2l3u6r3d2nd2r1u7l1d1l2"
1830 DRAW"u4r2d1nd2R1U2"
1840 DRAW"M+1,-3"
1850 DRAW"BD10D2R3U2M-1,-1L1M-1,1"
1860 DRAW"BD3D1R1U1L1BR2R1D1L1U1
1870 DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1
1880 DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1
1890 LINE(0,0)-(40,60),,B
1900 PAINT (1,1)
1910 DIM CAR%(900)
1920 GET(1,1)-(29,45),CAR%
1930 RETURN
1940 CLS
1950 DRAW"S08"
1960 DRAW "BM14,18"
1970 DRAW"M+2,-4R8M+1,-1U1M+1,+1M+2,-1
1980 DRAW"M-1,1M+1,3M-1,1M-1,-2M-1,2"
1990 DRAW"D3L1U3M-1,1D2L1U2L3D2L1U2M-1,-1"
2000 DRAW"D3L1U5M-2,3U1"
2010 PAINT (21,14),3
2020 PRESET (37,10):PRESET (40,10)
2030 PRESET (37,11):PRESET (40,11)
2040 GET (13,0)-(45,25),DNK%
2050 RETURN
2060 SD=SD+1:LOCATE 14,6:PRINT "BOOM!"
2070 GET (DX,Y)-(DX+16,Y+25),D1%
2080 D1X=DX:D1Y=Y:D2X=DX+17
2090 GET (DX+17,Y)-(DX+31,Y+25),D2%
2100 GET (CX,CY)-(CX+14,CY+44),C1%
2110 GET (CX+15,CY)-(CX+28,CY+44),C2%
2120 C1X=CX:C1Y=CY:C2X=CX+15
2130 FOR P=6 TO 0 STEP -1:Z=1/(2^P):Z1=1-Z
2140 PUT (C1X,C1Y),C1%:PUT(C2X,C1Y),C2%
2150 PUT (D1X,D1Y),D1%:PUT(D2X,D1Y),D2%
2160 C1X=CX*Z1:D1Y=Y*Z1:C2X=C2X+(291-C2X)*Z
2170 D1X=DX*Z1:C1Y=C1Y+(155-C1Y)*Z:D2X=D2X+(294-D2X)*Z
2180 PUT (C1X,C1Y),C1%:PUT(C2X,C1Y),C2%
2190 PUT (D1X,D1Y),D1%:PUT(D2X,D1Y),D2%
2200 SOUND 37+RND*200,4:NEXT
2210 FOR Y=1 TO 2000:NEXT
2220 CLS:GOTO 1540
2230 SM=SM+1:LOCATE 7,25:PRINT "Donkey loses!"
2240 FOR Y=1 TO 1000:NEXT
2250 CLS:GOTO 1540

MORTGAGE.BAS

[Download]

940 REM The IBM Personal Computer Mortgage
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
970 REM Author - Glenn Stuart Dardick
975 DEF SEG: POKE 106,0
980 SAMPLES$="NO"
990 GOTO 1010
1000 SAMPLES$="YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"      MORTGAGE       "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$ <> "" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = " " THEN GOTO 1150
1130 IF CMD$ =CHR$(27) THEN GOTO 1210
1140 GOTO 1110
1150 COLOR 15,0:CLS:DEFDBL P:DIM AMORT(500,2):SCREEN 0
1154 DEF SEG=0
1155 IF (PEEK(&H410) AND &H30)<>&H30 THEN COLS = 3:GOTO 1158
1156 WIDTH 80:COLS=8
1158 DEF SEG
1160 GOSUB 1240
1170 IF ASC(I$)=27 THEN 1210
1180 IF MID$(I$,1,1)="2" THEN GOTO 2010
1190 IF MID$(I$,1,1)="1" THEN GOTO 1490
1200 GOTO 1160
1210 IF SAMPLES$ <> "YES" THEN GOTO 1220
1215 CHAIN "SAMPLES",1000
1220 GOSUB 1470
1230 END
1240 REM - MAIN OPTION MENU
1250 COLOR 15,0:CLS:COLOR 0,7:PRINT " MORTGAGE ANALYSIS "
1260 COLOR 15,0:LOCATE 3,1:PRINT "OPTIONS - "
1270 PRINT "1 - MORTGAGE PAYMENT COMPARISONS "
1280 PRINT "2 - MORTGAGE AMORTIZATION"
1290 PRINT "ESC KEY - EXIT"
1300 PRINT " "
1310 PRINT "OPTION NUMBER (1,2, OR ESC) =====>"
1320 PRINT "NOTE: PRESS THE ENTER KEY WHEN DONE"
1330 PRINT " "
1340 COLOR 15,0
1350 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
1360 PRINT CHR$(179)+"  MORTGAGE PAYMENT COMPARISONS       "+CHR$(179)
1370 PRINT CHR$(179)+"    - USE THIS OPTION TO COMPARE     "+CHR$(179)
1380 PRINT CHR$(179)+"      THE MONTHLY PAYMENTS OF        "+CHR$(179)
1390 PRINT CHR$(179)+"      MORTGAGES AT VARIOUS RATES     "+CHR$(179)
1400 PRINT CHR$(179)+"      AND PRINCIPAL AMOUNTS.         "+CHR$(179)
1410 PRINT CHR$(179)+"  MORTGAGE AMORTIZATION              "+CHR$(179)
1420 PRINT CHR$(179)+"    - USE THIS OPTION TO CALCULATE   "+CHR$(179)
1430 PRINT CHR$(179)+"      THE PRINCIPAL AND INTEREST     "+CHR$(179)
1440 PRINT CHR$(179)+"      PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
1450 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
1460 COLOR 0,7:LOCATE 8,37:PRINT " ":LOCATE 8,37
1461 I$=INKEY$:IF I$="" THEN 1461 ELSE PRINT I$;:RETURN
1470 COLOR 15,0:CLS:END
1480 PF = AF*(RF/(1#-(1#/((1#+RF)^NF)))):RETURN
1490 REM - mortgage comparisons
1500 COLOR 15,0:CLS:COLOR 0,7:PRINT " MORTGAGE PAYMENT COMPARISON PROGRAM "
1510 LOCATE 10,1:COLOR 15,0
1520 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
1530 PRINT CHR$(179)+"  MORTGAGE PAYMENT COMPARISONS       "+CHR$(179)
1540 PRINT CHR$(179)+"    - USE THIS OPTION TO COMPARE     "+CHR$(179)
1550 PRINT CHR$(179)+"      THE MONTHLY PAYMENTS OF        "+CHR$(179)
1560 PRINT CHR$(179)+"      MORTGAGES AT VARIOUS RATES     "+CHR$(179)
1570 PRINT CHR$(179)+"      AND PRINCIPAL AMOUNTS.         "+CHR$(179)
1580 PRINT CHR$(179)+"                                     "+CHR$(179)
1590 PRINT CHR$(179)+"  NOTE: TO SELECT A VALUE OR AMOUNT  "+CHR$(179)
1600 PRINT CHR$(179)+"      ENTER THE APPROPRIATE VALUE    "+CHR$(179)
1610 PRINT CHR$(179)+"      AND PRESS THE ENTER KEY.       "+CHR$(179)
1620 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
1630 LOCATE 3,1:LINE INPUT "ENTER BASE MORTGAGE AMOUNT ===> ";A$
1640 A = VAL(A$):IF A <= 0 THEN GOTO 1600
1650 AINC = 2000
1660 LOCATE 4,1:PRINT SPC(38);
1670 LOCATE 5,1:PRINT "(1 TO 35 PERCENT)";
1680 LOCATE 4,1:LINE INPUT "ENTER BASE INTEREST RATE =====> ";IR$
1690 IR = VAL(IR$):IF IR>35 OR IR<1 THEN GOTO 1660
1700 R = IR/1200:RINC = .0025/12
1710 LOCATE 5,1:PRINT SPC(38);
1720 LOCATE 6,1:PRINT "(1 TO 35 YEARS)";
1730 LOCATE 5,1:LINE INPUT "ENTER NUMBER OF YEARS IN MTG => ";Y$
1740 Y = VAL(Y$)
1750 N = Y * 12
1760 NF = N
1770 IF NF>420 OR NF<1 THEN GOTO 1710
1780 CLS
1790 COLOR 0,7:PRINT " MONTHLY MORTGAGE PAYMENT COMPARISONS "
1800 COLOR 15,0:LOCATE 3,10:PRINT Y$+"-YEAR MORTGAGE LOAN AMOUNTS";
1810 LOCATE 5,2:PRINT "RATES";:COLOR 0,7
1820 FOR I = 0 TO COLS
1830 LOCATE 4,9+I*8:PRINT SPC(7):LOCATE 4,9+I*8:PRINT A+I*AINC
1840 NEXT I
1850 FOR I = 0 TO 14
1860 LOCATE 6+I,1:PRINT SPC(7):LOCATE 6+I,2
1870 PRINT USING "##.##";INT(((R+(I*RINC))*120000!)+.5)/100
1880 NEXT I
1890 COLOR 15,0
1900 FOR I = 0 TO 14
1910 RF = R+I*RINC:AF=1:GOSUB 1480
1920 FOR J = 0 TO COLS
1930 P = PF*(A+J*AINC):P = INT((P+5.000001E-03)*100)/100
1935 IF P>10000 THEN LOCATE 22,1:PRINT "PAYMENTS TOO LARGE TO DISPLAY":GOTO 1980
1940 LOCATE 6+I,9+J*8:PRINT USING "####.##";P;
1950 NEXT J
1960 NEXT I
1970 PRINT " "
1980 PRINT "PRESS SPACE BAR TO CONTINUE";
1990 IF INKEY$ <> " " THEN GOTO 1990
2000 GOTO 1160
2010 REM - mortgage amortization
2020 COLOR 7,0
2030 CLS
2040 COLOR 0,7
2050 LOCATE 1,1
2060 PRINT " MORTGAGE AMORTIZATION PROGRAM "
2070 LOCATE 10,1:COLOR 15,0
2080 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
2090 PRINT CHR$(179)+"  MORTGAGE AMORTIZATION              "+CHR$(179)
2100 PRINT CHR$(179)+"    - USE THIS OPTION TO CALCULATE   "+CHR$(179)
2110 PRINT CHR$(179)+"      THE PRINCIPAL AND INTEREST     "+CHR$(179)
2120 PRINT CHR$(179)+"      PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
2130 PRINT CHR$(179)+"                                     "+CHR$(179)
2140 PRINT CHR$(179)+"  NOTE: TO SELECT A VALUE OR AMOUNT  "+CHR$(179)
2150 PRINT CHR$(179)+"      ENTER THE APPROPRIATE VALUE    "+CHR$(179)
2160 PRINT CHR$(179)+"      AND PRESS THE ENTER KEY.       "+CHR$(179)
2170 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
2180 LOCATE 3,1
2190 LINE INPUT "ENTER MORTGAGE AMOUNT ===> ";A$
2200 AF = VAL(A$)
2210 LOCATE 4,1
2220 PRINT "                                      ";
2230 LOCATE 5,1
2240 PRINT "(1 TO 35 PERCENT)";
2250 LOCATE 4,1
2260 LINE INPUT "ENTER INTEREST RATE =====> ";IR$
2270 IR = VAL(IR$)
2280 IF IR>35 THEN GOTO 2210
2290 IF IR<1 THEN GOTO 2210
2300 RF = IR/1200
2310 LOCATE 5,1
2320 PRINT "                                      ";
2330 LOCATE 6,1
2340 PRINT "(1 TO 35 YEARS)";
2350 LOCATE 5,1
2360 LINE INPUT "ENTER NUMBER OF YEARS ===> ";Y$
2370 Y = VAL(Y$)
2380 NF = Y * 12
2390 IF NF>420 THEN GOTO 2310
2400 IF NF<1 THEN GOTO 2310
2410 GOSUB 1480
2420 PF = INT((PF+5.000001E-03)*100)/100
2430 PRINT "MONTHLY PAYMENTS ARE ====>";PF
2435 COLOR 23,0
2440 PRINT "CALCULATING AMORTIZATION"
2445 COLOR 15,0
2450 IF NF>36 THEN GOTO 2470
2460 FOR I = 1 TO 1000:NEXT I
2470 AMORT(0,1) = AF
2480 FOR I = 1 TO NF
2490 AMORT(I,2) = INT((AMORT(I-1,1)*RF+5.000001E-03)*100)/100
2500 AMORT(I,1) = AMORT(I-1,1)-PF+AMORT(I,2)
2510 NEXT I
2520 FOR I = 7 TO 25:LOCATE I,1:PRINT SPC(39);:NEXT I
2530 LOCATE 9,1
2540 PRINT " - 1 TO"+STR$(NF)
2550 PRINT " - 0 TO END AMORTIZATION";
2560 LOCATE 7,1
2570 PRINT "ENTER BEGINNING PAYMENT NUMBER"
2580 LINE INPUT "OF 12 MONTH PERIOD ======> ";PERIOD$
2590 PD= VAL(PERIOD$)
2600 IF PD <> 0 THEN GOTO 2620
2610 IF PERIOD$ <> "0" THEN GOTO 2560
2620 IF PD=0 THEN GOTO 1160
2630 IF PD>NF THEN GOTO 2560
2640 IF PD<0 THEN GOTO 2560
2650 LOCATE 7,1
2660 PRINT SPC(39)
2670 PRINT SPC(39)
2680 LOCATE 9,1
2690 PRINT "PYMNT PRINCIPAL   INTEREST    BALANCE"
2700 TINT = 0
2710 FOR I = PD TO PD+11
2711 IF I> NF THEN GOTO 2750
2720 TINT = TINT + AMORT(I,2)
2730 PRINT USING "### ";I;
2740 PRINT USING "  ######.##";PF-AMORT(I,2);AMORT(I,2);AMORT(I,1)
2750 NEXT I
2760 PRINT " "
2770 PRINT "INTEREST FOR 12 PERIODS =";
2780 PRINT USING "######.## ";TINT
2790 LOCATE 25,1
2800 PRINT "PRESS SPACE BAR TO CONTINUE";
2810 LOCATE ,,0
2820 IF INKEY$ <> "" THEN GOTO 2820
2830 CMD$ = INKEY$
2840 IF CMD$ = " " THEN GOTO 2520
2850 IF CMD$ =CHR$(27) THEN GOTO 1210
2860 GOTO 2830

MUSIC.BAS

[Download]

940 REM The IBM Personal Computer Music
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
975 DEF SEG: POKE 106,0
980 SAMPLES$ = "NO"
990 GOTO 1010
1000 SAMPLES$ = "YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"        MUSIC        "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$ <> "" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = "" THEN GOTO 1110
1130 IF CMD$ = CHR$(27) THEN GOTO 1850
1140 IF CMD$ <> " " THEN GOTO 1110
1141 ON ERROR GOTO 1148
1142 PLAY "mf"
1143 GOTO 1149
1148 RESUME 1149
1149 ON ERROR GOTO 0
1150 SCREEN 0,1:WIDTH 40:COLOR 15,1,1:CLS
1160 LOCATE 15,7,0:PRINT " ------- selections -------"
1170 LOCATE 16,7,0:PRINT " A-MARCH  E-HUMOR  I-SAKURA"
1180 LOCATE 17,7,0:PRINT " B-STARS  F-BUG    J-BLUE  "
1190 LOCATE 18,7,0:PRINT " C-FORTY  G-POP    K-SCALES"
1191 LOCATE 19,7,0:PRINT " D-HAT    H-DANDY  ESC KEY-EXIT"
1200 COLOR 15,0
1210 FOR I=0 TO 15:FOR J=0 TO 8
1220 LOCATE 5+J,5+I*2,0:PRINT CHR$(219);CHR$(221);
1230 NEXT J:NEXT I
1240 FOR I=0 TO 12:FOR J=0 TO 4
1250 IF I=2 OR I=6 OR I=9 OR I=13 THEN GOTO 1270
1260 LOCATE 5+J,8+I*2:PRINT CHR$(32);CHR$(222);
1270 NEXT J:NEXT I
1280 FOR J=0 TO 9
1290 LOCATE 4+J,4:COLOR 4,0:PRINT CHR$(221);:LOCATE 4+J,36:COLOR 15,0
1300 PRINT CHR$(221);:COLOR 4,1:PRINT CHR$(221);
1310 NEXT J
1320 COLOR 4,1:LOCATE 4,4
1330 FOR I=0 TO 32:PRINT CHR$(219);:NEXT I
1340 PRINT CHR$(221);:LOCATE 13,4
1350 FOR I=0 TO 32:PRINT CHR$(219);:NEXT I
1360 PRINT CHR$(221);:COLOR 0,7:DEFINT M,N,O,P:DIM M(88),O(70)
1370 FOR I=7 TO 88:M(I) =  36.8*(2^(1/12))^(I-6):NEXT I
1380 FOR I=0 TO 6:M(I) = 32767:NEXT I
1390 O(0) = 0
1400 O(39)=5:O(40)=7:O(41)=8:O(42)=9
1410 O(43)=10:O(44)=11:O(45)=13:O(46)=14
1420 O(47)=15:O(48)=16:O(49)=17:O(50)=18
1430 O(51)=19:O(52)=21:O(53)=22:O(54)=23
1440 O(55)=24:O(56)=25:O(57)=27:O(58)=28
1450 O(59)=29:O(60)=30:O(61)=31:O(62)=32
1460 O(63)=33:O(64)=35:O(65)=36:O(66)=37
1470 O(67)=38:O(68)=39:O(69)=40:O(70)=42
1480 GOTO 1630
1490 READ J,K
1500 CMD$ = INKEY$:IF CMD$="" THEN GOTO 1540
1510 IF CMD$=CHR$(27) THEN RETURN
1520 POKE 106,0
1530 REM
1540 IF J = -1  THEN RETURN
1550 Q = O(J)
1560 IF J>64 OR J<39 THEN GOTO 1590
1570 IF SCREEN(5,Q)<>32 THEN COLOR 0,7:LOCATE 11,Q:PRINT CHR$(14);:COLOR 15,0:GOTO 1590
1580 COLOR 15,0:LOCATE 7,Q:PRINT CHR$(14);:COLOR 0,7
1590 SOUND M(J),K:IF J=0 AND K=1 THEN GOTO 1600:'SKIP NEXT FOR STACCATTO
1595 SOUND 32767,1
1600 IF J>64 OR J<39 THEN GOTO 1490
1610 IF SCREEN(5,Q) = 32 THEN COLOR 15,0:LOCATE 7,Q:PRINT CHR$(32);:GOTO 1490
1620 COLOR 15,0:LOCATE 11,Q:PRINT CHR$(219);:GOTO 1490
1630 LOCATE 21,5:PRINT "                                ";
1640 LOCATE 21,5:PRINT "ENTER SELECTION ==>";
1650 IF INKEY$ <> "" THEN GOTO 1650
1660 CMD$=INKEY$:IF CMD$="" THEN GOTO 1660
1670 IF CMD$=CHR$(27)  THEN GOTO 1850
1680 IF CMD$="A" THEN S$= "MARCH ":GOTO 1770
1681 IF CMD$="a" THEN S$= "MARCH ":GOTO 1770
1690 IF CMD$="B" THEN S$= "STARS ":GOTO 1770
1691 IF CMD$="b" THEN S$= "STARS ":GOTO 1770
1700 IF CMD$="C" THEN S$= "FORTY ":GOTO 1770
1701 IF CMD$="c" THEN S$= "FORTY ":GOTO 1770
1710 IF CMD$="D" THEN S$= "HAT   ":GOTO 1770
1711 IF CMD$="d" THEN S$= "HAT   ":GOTO 1770
1720 IF CMD$="E" THEN S$= "HUMOR ":GOTO 1770
1721 IF CMD$="e" THEN S$= "HUMOR ":GOTO 1770
1730 IF CMD$="F" THEN S$= "BUG   ":GOTO 1770
1731 IF CMD$="f" THEN S$= "BUG   ":GOTO 1770
1740 IF CMD$="G" THEN S$= "POP   ":GOTO 1770
1741 IF CMD$="g" THEN S$= "POP   ":GOTO 1770
1750 IF CMD$="H" THEN S$= "DANDY ":GOTO 1770
1751 IF CMD$="h" THEN S$= "DANDY ":GOTO 1770
1755 IF CMD$="I" THEN S$= "SAKURA":GOTO 1770
1756 IF CMD$="i" THEN S$= "SAKURA":GOTO 1770
1757 IF CMD$="J" THEN S$= "BLUE  ":GOTO 1770
1758 IF CMD$="j" THEN S$= "BLUE  ":GOTO 1770
1761 IF CMD$="K" THEN S$= "SCALES":GOTO 1770
1762 IF CMD$="k" THEN S$= "SCALES":GOTO 1770
1769 GOTO 1640
1770 PRINT " ";CMD$;"-";S$:CHAIN MERGE S$,1780,ALL
1780 RESTORE:READ D
1790 IF D<>-2 THEN RESTORE:GOTO 1810
1800 READ S$:LOCATE 23,1+(40.5-LEN(S$))/2
1805 COLOR 15,4:PRINT S$;:COLOR 0,7
1810 GOSUB 1490
1820 S$=STRING$(39," "):LOCATE 23,1:COLOR 4,1:PRINT S$:COLOR 0,7
1830 GOTO 1630
1840 END
1850 IF SAMPLES$="YES" THEN CHAIN "SAMPLES",1000
1860 SCREEN 0,1:COLOR 7,0,0:CLS:END
3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"FUNERAL MARCH OF A MARIONETTE - GOUNOD"
3040 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
3050 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
3060 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
3070 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
3080 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
3090 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
3100 DATA 41,3,42,3,44,3,0,3,45,1,0,2,44,9,42,1
3110 DATA -1,-1

PIECHART.BAS

[Download]

940 REM The IBM Personal Computer Piechart
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
975 DEF SEG: POKE 106,0
980 SAMPLES$="NO"
990 GOTO 1010
1000 SAMPLES$="YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"      PIECHART       "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$<>"" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = "" THEN GOTO 1110
1130 IF CMD$ = CHR$(27) THEN GOTO 1298
1140 IF CMD$ = " " THEN GOTO 1160
1150 GOTO 1110
1160 DEF SEG=0
1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN DEF SEG:GOTO 1291
1180 WIDTH 80:CLS:LOCATE 3,1
1190 PRINT "HOLD IT!"
1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!"
1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER."
1220 PRINT "PRESS THE SPACE BAR TO CONTINUE."
1230 DEF SEG
1240 IF INKEY$<>"" THEN GOTO 1240
1250 CMD$ = INKEY$
1260 IF CMD$ = "" THEN GOTO 1250
1270 IF CMD$ = CHR$(27) THEN GOTO 1298
1280 IF CMD$ = " " THEN GOTO 1298
1290 GOTO 1250
1291 KEY OFF
1292 ON ERROR GOTO 1295
1293 PLAY "p16"
1294 GOTO 1300
1295 COLOR 31,0,0
1296 PRINT "THIS PROGRAM REQUIRES ADVANCED BASIC -- USE COMMAND 'BASICA'":COLOR 15,0,0:FOR I=1 TO 9000:NEXT: RESUME 1298
1298 ON ERROR GOTO 0
1299 SCREEN 0,1:IF SAMPLES$="YES" THEN CHAIN"samples",1000 ELSE COLOR 7,0,0:CLS:END
1300 DIM R(100),A$(100)
1400 CLS
1420 SCREEN 1,0:COLOR 8,0
1440 LR=50:SR=44
1450 INPUT "title of chart";T$
1460 INPUT "how many items in chart";N
1470 S=0
1480 FOR I=1 TO N
1490 INPUT "numeric value ,name";R(I),A$(I)
1500 S=S+R(I)
1510 NEXT
1520 FOR I=1 TO N:R(I)=R(I)/S:NEXT
1530 A2=0
1540 CLS
1550 LOCATE 2,20-LEN(T$)/2:PRINT T$
1560 LINE (8*(19.5-LEN(T$)/2)-8,7)-(8*(19.5+LEN(T$)/2)  ,16),3,B
1570 FOR C=1 TO N
1580 A1=A2:A2=A2+R(C)*2*3.1415926#
1590 AA=(A1+A2)/2
1600 CX=160+COS(AA)*(LR-SR)
1610 CY=100-SIN(AA)*(LR-SR)
1620 CIRCLE (CX,CY),SR,1,-A1-.001,-A2,5/6
1630 PAINT (CX+COS(AA)*.8*SR,CY-SIN(AA)*.8*SR),C MOD 4,1
1640 LX=CX+COS(AA)*(16+SR)-4*LEN(A$(C)):LY=CY-SIN(AA)*(SR+16)
1650 LOCATE 1+(LY\8),1+(LX\8):PRINT A$(C);
1660 LINE ((LX\8)*8,8*((LY\8)+1))-((LX\8)*8+8*LEN(A$(C)),8*((LY\8)+1)),1
1670 NEXT C
1680 LOCATE 23,1
1700 PRINT"Another Chart? (Y or N)";
1710 A$=INKEY$:IF A$="" THEN 1710
1730 IF A$="N" OR A$="n" THEN 1298
1740 IF A$="Y" OR A$="y" THEN 1400
1750 GOTO 1680

SAMPLES.BAS

[Download]

10 REM The IBM Personal Computer Samples
20 REM Version 1.00 (C)Copyright IBM Corp 1981
30 REM Licensed Material - Program Property of IBM
40 REM Author - Glenn Stuart Dardick
50 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
60 LOCATE 7,12,0:PRINT "Personal Computer"
70 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
80 LOCATE 11,9,0:PRINT CHR$(179)+"       SAMPLES       "+CHR$(179)
90 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
100 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
110 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
120 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
130 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
140 POKE 106,0 'CLEAR KYBD BUFFER
150 CMD$ = INKEY$
160 IF CMD$="" THEN GOTO 150
170 IF CMD$ = CHR$(27) THEN GOTO 360
180 IF CMD$ = " " THEN GOTO 200
190 GOTO 140
200 SCREEN 0,1:COLOR 15,0,0:CLS:LOCATE 5,3:PRINT "SAMPLE PROGRAMS"
210 LOCATE 7,3,0:PRINT  "A - MUSIC    (32k)"
220 LOCATE 8,3,0:PRINT  "B - ART      (32k-Color/Graphics)"
230 LOCATE 9,3,0:PRINT  "C - MORTGAGE (48k)"
240 LOCATE 10,3,0:PRINT "D - CIRCLE   (BASICA-Color/Graphics)"
250 LOCATE 11,3,0:PRINT "E - DONKEY   (BASICA-Color/Graphics)"
251 LOCATE 12,3,0:PRINT "F - PIECHART (BASICA-Color/Graphics)"
252 LOCATE 13,3,0:PRINT "G - BALL     (BASICA-Color/Graphics)"
253 LOCATE 14,3,0:PRINT "H - COLORBAR (32k)"
254 LOCATE 15,3,0:PRINT "I - CALENDAR (32k)"
255 LOCATE 16,3,0:PRINT "J - SPACE    (BASICA-Color/Graphics)"
256 LOCATE 17,3,0:PRINT "ESC KEY - EXIT"
260 LOCATE 19,3,0:PRINT "ENTER LETTER OF PROGRAM"
262 LOCATE 21,3,0:PRINT "NOTE: All of the above programs"
263 LOCATE 22,3,0:PRINT "      require 48k if using BASICA"
270 POKE 106,0 'CLEAR KYBD BUFFER
272 K$ = INKEY$:IF K$ <> "" THEN GOTO 270
275 K$ = INKEY$:IF K$ = "" THEN GOTO 275
280 IF MID$(K$,1,1) = "A" THEN CHAIN "MUSIC",1000
290 IF MID$(K$,1,1) = "B" THEN CHAIN "ART",1000
300 IF MID$(K$,1,1) = "C" THEN CHAIN "MORTGAGE",1000
310 IF MID$(K$,1,1) = "D" THEN CHAIN "CIRCLE",1000
311 IF MID$(K$,1,1) = "E" THEN CHAIN "DONKEY",1000
312 IF MID$(K$,1,1) = "F" THEN CHAIN "PIECHART",1000
313 IF MID$(K$,1,1) = "G" THEN CHAIN "BALL",1000
314 IF MID$(K$,1,1) = "H" THEN CHAIN "COLORBAR",1000
315 IF MID$(K$,1,1) = "I" THEN CHAIN "CALENDAR",1000
316 IF MID$(K$,1,1) = "J" THEN CHAIN "SPACE",1000
318 IF MID$(K$,1,1) = "a" THEN CHAIN "MUSIC",1000
319 IF MID$(K$,1,1) = "b" THEN CHAIN "ART",1000
320 IF MID$(K$,1,1) = "c" THEN CHAIN "MORTGAGE",1000
321 IF MID$(K$,1,1) = "d" THEN CHAIN "CIRCLE",1000
322 IF MID$(K$,1,1) = "e" THEN CHAIN "DONKEY",1000
323 IF MID$(K$,1,1) = "f" THEN CHAIN "PIECHART",1000
324 IF MID$(K$,1,1) = "g" THEN CHAIN "BALL",1000
325 IF MID$(K$,1,1) = "h" THEN CHAIN "COLORBAR",1000
326 IF MID$(K$,1,1) = "i" THEN CHAIN "CALENDAR",1000
327 IF MID$(K$,1,1) = "j" THEN CHAIN "SPACE",1000
340 IF MID$(K$,1,1) = CHR$(27) THEN GOTO 360
350 GOTO 200
360 SCREEN 0,1:COLOR 7,0:CLS:END
1000 GOTO 200

SPACE.BAS

[Download]

940 REM The IBM Personal Computer Space
950 REM Version 1.00 (C)Copyright IBM Corp 1981
960 REM Licensed Material - Program Property of IBM
970 REM Author - R. Heiney & M. Hallerman
975 DEF SEG: POKE 106,0
980 SAMPLES$="NO"
990 GOTO 1010
1000 SAMPLES$="YES"
1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+"       SPACE         "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+"    Version 1.00     "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1080 COLOR 15,0:LOCATE 17,7,0:PRINT "(C) Copyright IBM Corp 1981"
1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$<>"" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = "" THEN GOTO 1110
1130 IF CMD$ = CHR$(27) THEN GOTO 1298
1140 IF CMD$ = " " THEN GOTO 1160
1150 GOTO 1110
1160 DEF SEG=0
1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN DEF SEG:GOTO 1291
1180 WIDTH 80:CLS:LOCATE 3,1
1190 PRINT "HOLD IT!"
1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!"
1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER."
1220 PRINT "PRESS THE SPACE BAR TO CONTINUE."
1230 DEF SEG
1240 IF INKEY$<>"" THEN GOTO 1240
1250 CMD$ = INKEY$
1260 IF CMD$ = "" THEN GOTO 1250
1270 IF CMD$ = CHR$(27) THEN GOTO 1298
1280 IF CMD$ = " " THEN GOTO 1298
1290 GOTO 1250
1291 KEY OFF
1292 ON ERROR GOTO 1295
1293 PLAY "p16"
1294 GOTO 1300
1295 COLOR 31,0,0
1296 PRINT "THIS PROGRAM REQUIRES ADVANCED BASIC -- USE COMMAND 'BASICA'":COLOR 15,0,0:FOR I=1 TO 9000:NEXT: RESUME 1298
1298 ON ERROR GOTO 0
1299 SCREEN 0,1:IF SAMPLES$="YES" THEN CHAIN"samples",1000 ELSE COLOR 7,0,0:CLS:END
1300 REM
1400 KEY OFF
1410 DEFINT I-N:DIM I(800)
1420 SCREEN 1,0:COLOR 8,0
1430 CLS:CIRCLE(160,100),30,1,,,.45:PAINT(160,100),1,1:DRAW"bm160,100e30bm160,100h30":LINE (130,100)-(190,100),2:GET(130,70)-(190,130),I
1440 LINE (0,0)-(100,199),0,BF:LINE(101,0)-(200,199),2,BF:LINE(201,0)-(300,199),3,BF
1450 LOCATE 23,2: PRINT"Press ESC ";
1460 LOCATE 24,2:PRINT"to exit";
1470 FOR J=2 TO 6:FOR I=1 TO 2:PLAY "mbl64t255o=j;cc#dd#eff#gg#aa#b":NEXT
1480 K1=RND*259:K2=RND*138:PUT(K1,K2),I,XOR:FOR I1=1 TO 150:NEXT:PUT(K1,K2),I,XOR:NEXT
1490 A$=INKEY$:IF A$=CHR$(27) THEN 1298
1500 POKE 106,0:IF A$<>"" THEN 1490 ELSE 1470


MUSIC Samples

The rest of the BASIC Samples are not stand-alone programs; they are collections of DATA statements loaded by MUSIC.BAS using the CHAIN command.

BLUE.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"Blue Danube Waltz by J.S.Strauss"
3040 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
3050 DATA 46,4,49,4
3060 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
3070 DATA 0,4,63,2,0,2,63,2,0,6,59,2,0,2
3080 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
3090 DATA 0,6,42,4
3100 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
3110 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2
3120 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
3130 DATA 49,4,58,16
3140 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
3150 DATA 0,6,49,2,0,2
3160 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
3170 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
3180 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
3190 DATA -1,-1

BUG.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"La Cucaracha - Mexican Folk Song"
3040 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
3050 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
3060 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
3070 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
3080 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
3090 DATA 51,2,49,2,47,8
3100 DATA -1,-1

DANDY.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"Yankee Doodle - Anonymous "
3040 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
3050 DATA 49,3,0,3
3060 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
3070 DATA 50,3,0,3
3080 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
3090 DATA 45,3,0,3
3100 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
3110 DATA 50,6
3120 DATA -1,-1

FORTY.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030    DATA -2,"Symphony #40 by Mozart"
3040 DATA 55,2,54,2,54,4,55,2,54,2,54,4,55,2,54,2,54,4,62,4,0,4
3050 DATA 62,2,61,2,59,4,59,2,57,2,55,4,55,2,54,2
3060 DATA 52,4,52,4,0,4,54,2,52,2,52,4,54,2,52,2,52,4,54,2,52,2
3070 DATA 52,4,61,4,0,4,61,2,59,2,58,4,58,2,55,2,54,4,54,2,52,2
3080 DATA 50,4,50,4,0,4,62,2,61,2,61,4,64,4,58,4,61,4
3090 DATA 59,4,54,4,0,4,62,2,61,2,61,4,64,4,58,4,61,4
3100 DATA 59,4,62,4,61,2,59,2,57,2,55,2,54,4,46,4,47,4,49,4
3110 DATA 50,4,52,2,50,2,49,4,47,4,54,4,0,4,64,8
3120 DATA 65,2,0,6,64,8,65,2,0,6,64,8
3130 DATA 65,4,64,4,65,4,64,4,65,4
3140 DATA -1,-1

HAT.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"Mexican Hat Dance - Traditional "
3040 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
3050 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
3060 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
3070 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
3080 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
3090 DATA 0,4,64,2,63,2,64,2,66,2,64,2,62,2,61,2,59,2,57,2
3100 DATA -1,-1

HUMOR.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"Humoresque by Dvorak"
3040 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
3050 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
3060 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
3070 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
3080 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
3090 DATA 54,3,0,2,54,1,59,3,0,2,47,1,49,6,54,6,47,18
3100 DATA -1,-1

MARCH.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"FUNERAL MARCH OF A MARIONETTE - GOUNOD"
3040 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
3050 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
3060 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
3070 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
3080 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
3090 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
3100 DATA 41,3,42,3,44,3,0,3,45,1,0,2,44,9,42,1
3110 DATA -1,-1

POP.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"Pop! Goes the Weasle - Anonymous"
3040 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
3050 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
3060 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
3070 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
3080 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
3090 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
3100 DATA -1,-1

SAKURA.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"Sakura - Japanese Folk Melody "
3040 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
3050 DATA 49,8,51,4,49,4,45,16,44,8,40,8,44,8,45,8
3060 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
3070 DATA 40,8,44,8,45,8,49,8,51,4,49,4,45,8,44,16
3080 DATA -1,-1

SCALES.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"SCALES                          "
3040 DATA 38,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,1
3050 DATA 48,1,49,1,50,1,51,1,52,1,53,1,54,1,55,1,56,1
3060 DATA 57,1,58,1,59,1,60,1,61,1,62,1,63,1,64,1,65,8,0,4
3070 DATA 65,8,64,1,63,1,62,1,61,1,60,1,59,1,58,1,57,1
3080 DATA 56,1,55,1,54,1,53,1,52,1,51,1,50,1,49,1,48,1
3090 DATA 47,1,46,1,45,1,44,1,43,1,42,1,41,1,40,1,39,1,38,8
3100 DATA -1,-1

STARS.BAS

[Download]

3000 REM The IBM Personal Computer Music Scroll
3010 REM Version 1.00 (C)Copyright IBM Corp 1981
3020 REM Licensed Material - Program Property of IBM
3030 DATA -2,"STARS AND STRIPES FOREVER - SOUSA "
3040 DATA 54,6,54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3
3050 DATA 51,3,51,6,50,3,51,3
3060 DATA 54,6,51,3,54,3,52,12,49,6,0,3,49,3,49,6,48,3,49,3
3070 DATA 49,6,48,3,49,3
3080 DATA 52,16,0,2,51,3,49,3,51,3,54,9,56,9,56,3,49,16,0,2,54,6
3090 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
3100 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
3110 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
3120 DATA 51,1,49,12,47,1
3130 DATA -1,-1