The Inquirer-Home

BASIC is 50 years old

LET "joy" = "unconfined"
Fri May 02 2014, 17:28
the small basic code listing window

10 LET "date" = "1st May 1964"
20 LET "place" = "Dartmouth College, New Hampshire"
30 PRINT "John G Kemeny and Thomas E. Kurtz designed BASIC"

BASIC was designed to allow users of the Dartmouth college timesharing mainframe to write programs, even if they weren't fluent in the computer programming languages of the day.

Like all good languages it had a diverse derivation, a mixture of Fortran and Algol 60 with a few other influences thrown in. As its popularity grew, a range of dialects emerged, ranging from Sinclair BASIC, where each command was assigned its own key on the keyboard, to Microsoft BASIC, which was installed on many early IBM and IBM compatible personal computers, what we know today as the PC.

BASIC allowed a cohort of computer users to learn to write computer programs. During the 1980s, magazines and books containing BASIC programs sold in millions, allowing users to learn to code as they copied and modified the listings. It was also essential knowledge for gamers, as knowledge of BASIC could allow you to modify the game to give you infinite lives, in the days before the Konami cheat.

Because BASIC had to be translated into 'machine code' and back again, it was slow and clunky. By the late eighties, the value of BASIC had declined and it was considered a disadvantage ever to have programmed in BASIC.

Edsger Dijkstra, one of the godfathers of computing, went so far as to say,  "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

But in 1991, BASIC got a second wind as Microsoft released Visual Basic (VB). You might not think you know Visual Basic but anyone who has ever worked in an office has used elements of it, as it forms the basis of the macros used in Excel and other spreadsheet programs.

In 2001, Microsoft released Visual Basic .NET, and it was estimated in 2006 that 59 percent of developers for Windows were using it. But it's far from the only version. There are many implementations of BASIC still in use today, including Small BASIC, used to teach coding, Smart BASIC, and Petit Computer for Nintendo DS machines.

And so here's to BASIC, on its 50th birthday. It is fair to say a lot of us wouldn't be using computers if it wasn't for BASIC.

In honour of the occasion, we're proud to present "Happy Birthday" written in Commodore BASIC, as it appeared in Compute! Magazine in October 1984. µ

100 PRINT CHR$(147); CHR$(154)
101 READ S : IF S = 0 GOTO 109
102 READ S$ : GOSUB 1000
103 READ X1, Y1, X2, Y2, X3, Y3
104 GOTO 101
109 RESTORE : PRINT CHR$(19); CHR$(5)
110 L1 = 54272 : L2 = 54279: L3 = 54286
120 Hl = Ll + l : H2 = L2 + l : H3 = L3 + l
130 Vl = Ll + 4 : V2 = L2 + 4 : V3 = L3 + 4
140 POKE 54296, 15
150 POKE Vl + l, 9 : POKE Vl + 2, 0
160 POKE V2 + 1, 36 : POKE V2 + 2, 36
170 POKE V3 + 1, 18 : POKE V3 + 2, 170
180 T = TI
200 POKE V1,16 : POKE V2, 32: POKE V3, 16
210 READ S : IF S = 0 GOTO 290
212 READ S$ : GOSUB 1000
220 READ X1, Y1, X2, Y2, X3, Y3
230 IF X1 THEN POKE H1, X1: POKE L1, Yl: POKE V1, 17
240 IF X2 THEN POKE H2, X2: POKE L2, Y2: POKE V2, 33
250 IF X3 THEN POKE H3, X3: POKE L3, Y3: POKE V3, 17
260 T = T + S
270 IF T > TI GOTO 270
280 GOTO 200
290 FOR J = L1 TO 54296 : POKE J, 0: NEXT J
295 PRINT CHR$(154): END
300 DATA 40, "{2 SPACES}HAP", 34, 75, 0, 0, 0, 0
310 DATA 20, " PY ", 34, 75, 0, 0, 0, 0
320 DATA 60, " BIRTH ", 38, 126, 28, 214, 5, 185
330 DATA 60, " DAY ", 34, 75, 28, 214, 0, 0
340 DATA 60, " TO ", 45, 198, 38, 126, 5, 185
350 DATA 60, " YOU ", 43, 52, 30, 141, 4, 73
360 DATA 60, " , " , 0, 0, 0, 0, 0, 0
370 DATA 40, "{2 SPACES}HAP", 34, 75, 0, 0, 0, 0
380 DATA 20, " PY ", 34, 75, 0, 0, 0, 0
390 DATA 60, " BIRTH ", 38, 126, 30, 141, 6, 108
400 DATA 60, " DAY ", 34, 75, 30, 141, 0, 0
410 DATA 60, " TO ", 51, 97, 34, 75, 4, 73
420 DATA 60, " YOU ", 45, 198, 28, 214, 5, 185
430 DATA 60, " , ", 0, 0, 0, 0, 0, 0
440 DATA 40, "{2 SPACES} HAP", 34, 75, 0, 0, 0, 0
450 DATA 20, " PY ", 34, 75, 0, 0, 0, 0
460 DATA 60, " BIRTH ", 68, 149, 22, 227, 5, 185
470 DATA 60, " DAY ", 57, 172, 25, 177, 0, 0
500 DATA 60, " AN " , 21, 154, 30, 141, 7, 163
480 DATA 60, " DEAR ", 45, 198, 28, 214, 7, 53
510 DATA 60, " DREW ", 19, 63, 30, 141, 0, 0
520 DATA 60, " , ", 0, 0, 0, 0, 0, 0
530 DATA 40, "{2 SPACES} HAP", 61, 126, 0, 0, 0, 0
540 DATA 20, " PY ", 61, 126, 0, 0, 0, 0
550 DATA 60, " BIRTH ", 57, 172, 34, 75, 8, 147
560 DATA 60, " DAY ", 45, 198, 28, 214, 0, 0
600 DATA 60, " TO ", 51, 97, 30, 141, 4, 73
610 DATA 60, " YOU. ", 45, 198, 28, 214, 2, 220
620 DATA 0
1000 PRINT S$; : IF RIGHT$(S$, 1) < " 0 " THEN PRINT
1010 RETURN

 

Share this:

blog comments powered by Disqus
Advertisement
Subscribe to INQ newsletters

Sign up for INQbot – a weekly roundup of the best from the INQ

Advertisement
INQ Poll

Dead electronic devices to be banned on US-bound flights

Will the new rules banning uncharged devices be effective?