LOVE

An essay on the BASIC program LOVE
November 2022

Finding LOVE

There is a BASIC program called LOVE that I find fascinating. It's been around at least since the earliest days of microcomputers. The code's output generates a text version of Robert Indiana's (1928–2018) celebrated work. Indiana's original LOVE composition is a surprisingly complex piece, but it's had a wide and lasting popular appeal (somewhat to the artist's consternation). It seems to call to our better selves -- for many it may be a simple and perhaps aspirational declaration that reflects a fundamental human experience or desire -- the need to be loved; the transcendence of love; the ideal of finding our shared humanity rather than dividing into warring tribes. Its origin as a card to Robert Indiana's personal friends (1964), then as a popular MoMA annual Christmas card (1965), screenprint (1966), series of Cor-Ten steel sculptures (1970) and postage stamp (1973), is a testament to its wide recognition and endurance. Indiana explored these different media, and so it seems natural that it was eventually ported to the burgeoning world of computers.

This is the BASIC program output of the LOVE design:

LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE
L            OVELOVELOVELOVELOVELOVELOV         LOVELOVELOVE
LOV        ELOVELOVELOVELOVELOVELOV                 LOVELOVE
LOVE      VELOVELOVELOVELOVELOVEL                     VELOVE
LOVE      VELOVELOVELOVELOVELOVE            LOVEL      ELOVE
LOVE      VELOVELOVELOVELOVELOV           VELOVELO      LOVE
LOVE      VELOVELOVELOVELOVELOV          OVELOVELOV     LOVE
LOVE      VELOVELOVELOVELOVELOV         LOVELOVELOV     LOVE
LOVE      VELOVELOVELOVELOVELOV        ELOVELOVELO      LOVE
LOVE      VELOVELOVELOVELOVELOV       VELOVELOVEL       LOVE
LOVE      VELOVELOVELOVELOVELOV      OVELOVELOVE        LOVE
LOVE      VELOVELOVELOVELOVEL V     LOVELOVELOV         LOVE
LOVE      VELOVELOVELOVELOVEL V     LOVELOVELO          LOVE
LOVE      VELOVELOVELOVELOVE  V      OVELOVEL           LOVE
LOVE      VELOVELOVELOVELOV   V       VELOV             LOVE
LOVE      VELOVELOVELOVEL     VE                       ELOVE
L                             VELOV                 LOVELOVE
L                             VELOVELOV         LOVELOVELOVE
L             VELOV                                        E
L             VELOV                                        E
LOVE      VELOVELOVELOV   VELOVELOVE      VELOVELOVELO     E
LOVEL      ELOVELOVELO   OVELOVELOVE      VELOVELOVELOVE   E
LOVEL      ELOVELOVELO   OVELOVELOVE      VELOVELOVELOVEL  E
LOVELO      LOVELOVEL   LOVELOVELOVE      VELOVELOVELOVELO E
LOVELO      LOVELOVEL   LOVELOVELOVE      VELOVEL VELOVELOVE
LOVELOV      OVELOVE   ELOVELOVELOVE      VELOVE  VELOVELOVE
LOVELOV      OVELOVE   ELOVELOVELOVE              VELOVELOVE
LOVELOVE      VELOV   VELOVELOVELOVE      VELOVE  VELOVELOVE
LOVELOVE      VELOV   VELOVELOVELOVE      VELOVEL VELOVELOVE
LOVELOVEL      ELO   OVELOVELOVELOVE      VELOVELOVELOVELO E
LOVELOVEL      ELO   OVELOVELOVELOVE      VELOVELOVELOVEL  E
LOVELOVELO      L   LOVELOVELOVELOVE      VELOVELOVELOVE   E
LOVELOVELO          LOVELOVELOVELOVE      VELOVELOVELO     E
LOVELOVELOV        ELOVELOVELOVE                           E
LOVELOVELOV        ELOVELOVELOVE                           E
LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE

The text is 60 characters across. On the fixed width text of a typical terminal, it creates a rectangular block with the repeating word, LOVE. The printed characters maintain their horizontal position and align vertically. Indiana's design emerges as negative space of missing letters. On a terminal or modern computer screen, the block of text isn't square. It tends to be longer in the vertical direction due to the display's character width and vertical spacing. When printed with 10 characters per inch horizontally and six rows per inch vertically, which was typical of output on teleprinters and line printers in the 1960's and 70's, the 60 column by 36 row output makes a six inch by six inch square. With proportional fonts more commonly used today in word processing software and websites, the composition loses its structure and becomes jagged and uneven.

LOVE is a simple and delightful expression of creative coding. It tells us that, for as long as people have had access to computers, there's been a desire to explore their capabilities in interesting and amusing ways. The joy of creative coding isn't new at all; it's as old as machine computing itself.

Encounters with LOVE

The LOVE program as many people probably encounter it [1] is attributed to David Ahl, the founder of Creative Computing. LOVE appears on page 105 of his book, Basic Computer Games [2]. Notably, it's not included in the earlier 1973 edition 101 BASIC Computer Games, which was a product of his time at Digital Equipment Corporation (DEC) [3]. A similar program was distributed by the CP/M User Group in CPMUG volume 3, "VARIOUS BASIC GAMES AND PROGRAMS." Since volume 5 of CPMUG came out in 1977 (a controversial release due to its inclusion of the 1975 CP/M source code), the LOVE program certainly originated earlier than this. In fact, Ahl published a version for BASIC-PLUS on the DEC RSTS-11 system in the January-February 1975 issue of Creative Computing.

The program as it appears in Ahl's book is listed below. There are four main blocks in the program, which are color-coded here.

2  PRINT TAB(33);"LOVE"
4  PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
6  PRINT: PRINT: PRINT
20 PRINT "A TRIBUTE TO THE GREAT AMERICAN ARTIST, ROBERT INDIANA."
30 PRINT "HIS GREAT WORK WILL BE REPRODUCED WITH A MESSAGE OF"
40 PRINT "YOUR CHOICE UP TO 60 CHARACTERS. IF YOU CAN'T THINK OF"
50 PRINT "A MESSAGE, SIMPLE TYPE THE WORD 'LOVE'": PRINT
60  INPUT "YOUR MESSAGE, PLEASE: ";A$:L =  LEN (A$)
70  DIM T$(120): FOR I = 1 TO 10: PRINT : NEXT I
100  FOR J = 0 TO  INT (60 / L)
110  FOR I = 1 TO L
120  T$(J * L + I) =  MID$ (A$,I,1)
130  NEXT I: NEXT J
140  C = 0
200  A1 = 1:P = 1:C = C + 1: IF C = 37 THEN 999
205  PRINT 
210  READ A:A1 = A1 + A: IF P = 1 THEN 300
240  FOR I = 1 TO A: PRINT " ";: NEXT I:P = 1: GOTO 400
300  FOR I = A1 - A TO A1 - 1: PRINT T$(I);: NEXT I:P = 0
400  IF A1 > 60 THEN 200
410  GOTO 210
600  DATA  60,1,12,26,9,12,3,8,24,17,8,4,6,23,21,6,4,6,22,12,5,6,5
610  DATA  4,6,21,11,8,6,4,4,6,21,10,10,5,4,4,6,21,9,11,5,4
620  DATA  4,6,21,8,11,6,4,4,6,21,7,11,7,4,4,6,21,6,11,8,4
630  DATA  4,6,19,1,1,5,11,9,4,4,6,19,1,1,5,10,10,4,4,6,18,2,1,6,8,11,4
640  DATA  4,6,17,3,1,7,5,13,4,4,6,15,5,2,23,5,1,29,5,17,8
650  DATA  1,29,9,9,12,1,13,5,40,1,1,13,5,40,1,4,6,13,3,10,6,12,5,1
660  DATA  5,6,11,3,11,6,14,3,1,5,6,11,3,11,6,15,2,1
670  DATA  6,6,9,3,12,6,16,1,1,6,6,9,3,12,6,7,1,10
680  DATA  7,6,7,3,13,6,6,2,10,7,6,7,3,13,14,10,8,6,5,3,14,6,6,2,10
690  DATA  8,6,5,3,14,6,7,1,10,9,6,3,3,15,6,16,1,1
700  DATA  9,6,3,3,15,6,15,2,1,10,6,1,3,16,6,14,3,1,10,10,16,6,12,5,1
710  DATA  11,8,13,27,1,11,8,13,27,1,60
999  FOR I = 1 TO 10: PRINT : NEXT I: END 

Lines 10-60 (blue) print a message to the user and ask for a string of characters or a word. These will be the printed letters in the output. Lines 70-130 (green) fill an array T$ with these characters. The third block, lines 140-410 (red) is the main routine that generates the output using the DATA statements that are the fourth block (purple). Each number in the DATA statement corresponds to a number of characters or spaces to print. The variable P alternates between P=1 and P=0, which indicates whether a character from the array T$ is to be printed or, instead, a space. After 60 characters, the program generates a new line, and after 36 rows it stops by jumping to line 999 (which, logically, is part of the third block, although it appears at the end of the program). This final line issues 10 new lines and ends the program. This program was written to be compatible with Microsoft BASIC version 3 [2].

Incidentally, the program does effectively compress the LOVE image. The program is 1598 characters (including the user input and program message), while the printed output of the LOVE design has 2196 characters.

The version in CPMUG is different, partly due to the different dialects of the BASIC language that are used (see the listings at the end of the page). Aside from a few changes that make the program more readable, the CPMUG version omits the dedication to Robert Indiana and doesn't have the ability to change the letters in the composition like the program from Creative Computing. Both programs have identical DATA statements that underlie the algorithm generating the negative space image. Another version from an HP Access BASIC timeshare system, also listed below, states in a commented line that it is a rewrite of Ahl's Creative Computing program (presumably the BASIC-PLUS version). The HP Access BASIC dialect lacks multiple commands on a line, unlike BASIC-PLUS and Microsoft BASIC.

In fact, LOVE has been around for longer than 1978 or even 1975 -- it dates to the very origin of BASIC and the Dartmouth Time Share System.

IMG 8999 IMG 9137 IMG 9009 IMG 9008 IMG 9002 IMG 9004

Images: The HP ACCESS BASIC program listing and output printed on a Teletype Model 33 ASR (in addition to a paper tape punched copy)

DTSS and BASIC

BASIC (Beginners All-Purpose Instruction Code) is a programming language developed by John G. Kemeny and Thomas E. Kurtz. Many early microcomputer users and those familiar with David Ahl's Creative Computing magazine and BASIC computer games books no doubt used the language because of its prevalence with microcomputers. Tandy, Atari, Commodore, Apple, Sinclair, and others in the first wave of "appliance computers" defaulted to a BASIC prompt and invited the user to simply start entering a program.

But Kemeny and Kurtz originally developed BASIC for an earlier era of computing. During the mid-1960's, they were in the process of building the Dartmouth Time-Shared System (DTSS). DTSS enabled many users -- at first dozens, then hundreds as the system developed -- to share a General Electric mainframe in a real-time operating mode. Their vision was to give students and faculty easy access to a useful computer system. They recognized that understanding computation required writing programs, but the majority of students (indeed, the greater public) did not have the background or patience to learn multiple-pass, slow-turnaround languages like FORTRAN (or assembly) in a batch processing environment. Kurtz, a mathematics professor, knew these shortcomings first-hand. For more than a year he commuted from Dartmouth to MIT by train to use the IBM 704 there, which lacked an operating system or high-level language [4,5]. His turn-around time to debug, edit, and retry his programs was two weeks.

The result of Kemeny and Kurtz's efforts was a system with which students could program and solve problems of interest, homework exercises, or simply use the computer as a creative or entertaining tool. BASIC came out of Kemeny and Kurtz's plan to provide a language with a low barrier to entry for new users. It compiled in one pass [6], required only knowledge of the source language, avoided unnecessarily complicated or obtuse command names by using short English words, and didn't distinguish between variables referencing integers and floating point numbers. BASIC had predecessors at Dartmouth that helped to define its objectives and implementation -- languages called DARSIMCO, Algol 30, SCALP, and DOPE [5].

The first DTSS system came online in 1964. Improvements and new equipment were added until hundreds of users could connect to the system simultaneously, both on campus and remotely. BASIC evolved along with it. Like later microcomputers, the user typed programs in, albeit on a teletype machine operating at 110 baud. But the computer responded immediately. Programs could be entered, run, and edited on the teletype, heralding a new era of access and approaches to computation and its uses.

By 1967, high schools in New Hampshire, Massachusetts, and Vermont, and later, Maine, Connecticut, and New York, were able to connect to DTSS in what became known as the Kiewit Network. The network spawned a vibrant community of coders who shared their programs both through the computer itself and network newsletters (still paper at this point), teacher and student workshops, and programming competitions. Joy Lisi Rankin writes [5]:

Time-sharing and BASIC together were intended to bring computing power to the people, and BASIC amplified that power by enabling users to easily share, swap, tweak, and build on one another's programs. Both time-sharing and BASIC created social communities around computing.

The program LOVE dates to this early period of creative and community-based coding.

LOVE's author

While often attributed to David Ahl, the earliest documented LOVE program was written by Joshua Spahn when he was a 10th grade student at Mt. Hermon School in Massachusetts, a partner in the Kiewit network. A sample of the program's output appears in the NSF-Dartmouth Secondary School Project Monthly Bulletin 3, no. 2, dated December 11, 1969 [5]. The bulletin is reprinted in Nevison's final report to the NSF [7]. (Image of report cover)

The output of the program on the DTSS system states the program name, date (11/11/69) and time (16:12). The output starts with centered text, which was preserved in some form in several later versions:

       A TRIBUTE TO THE GREAT ARTISTROBERT INDIANA  --
         A COMPUTERIZED COPY OF HIS GREATEST WORK

The LOVE "image" follows after two line feeds. It is interesting that the text does not align into columns. Instead, the world "LOVE" picks up with the next character in the word after each group of spaces that create the negative image. Existing LOVE programs apparently do not capture the logic of Spahn's version. Two pages from the Dartmouth bulletin are reproduced below. The accompanying text describes the variation from the characters' shifting pattern and compares this with Indiana's original color scheme.

The history of LOVE

LOVE's published date of 1969 in the monthly bulletin predates the program's microcomputer versions available on the CPMUG vol 3 disk, in Ahl's 1978 Creative Computing book, or Ahl's earlier 1975 version for DEC's BASIC-PLUS published in Creative Computing. While the idea and basic structure of the LOVE program survived, its attribution to Spahn did not. It leaves me curious as to why. Most likely the code itself did not include Spahn's name. As the program was run and shared throughout the time-share BASIC community, there was no way of knowing its author, aside from the network's monthly bulletin. We can imagine that the program would be stored centrally for a time on the DTSS machines, and that users would have likely made copies for later use by sending the listing to a paper punch -- a simple task on teletype machines.

But what would justify Ahl claiming authorship of LOVE in his book? ("The love program was created by David Ahl" is stated above the listing.) Moreover, BASIC Computer Games clearly exerts a copyright on all of the content, but at least acknowledges the original program authors in other cases. My sense is that authors like Ahl spent time and effort writing new versions of programs that appeared other BASIC dialects -- not always a straightforward job -- and would have been using code that was (presumably) in the public domain. Copyrighting (or copylefting) code wasn't an established practice at the time, but a published book distributing the code could be copyrighted. We can also suppose that Ahl was inspired when he saw the output of Spahn's program, but wrote a new version from scratch.

These are among the wonderful layers of ownership, attribution, cultural remixing, and repurposing in the story of LOVE. After all, Indiana's design was co-opted by a young high school fan. In a sense, Spahn's LOVE program produces a digital sample of an iconic visual work. It's lack of attribution (or eventual mis-attribution) calls attention to the enormous changes in the concepts and attitudes of authorship and open sharing that digital works have gone through since 1969, but LOVE's story also highlights the deep roots of creative coding. The history of LOVE is a surprising journey to the early days of community-based computing, creative coding, time-sharing, and the BASIC programming language.


Notes and references

  1. Do people still encounter it? Perhaps it is more appropriate to say "as many people encountered it in the 1970s and 80s," especially a generation raised on microcomputers and ROM-based BASIC interpreters.
  2. Ahl, David H., Basic Computer Games Microcomputer Edition. Workman Publishing: New York, 1978.
  3. 101 Basic Computer Games. Digital Electronics Corporation: Maynard, Massachusetts, 1973.
  4. Kurtz, Thomas E., BASIC, in History of Programming Languages, Richard L. Wexelblat, ed. Association for Computing Machinery: New York, 1981.
  5. Rankin, Joy Lisi, A People's History of Computing in the United States. Harvard University Press: Cambridge, Massachusetts, 2018.
  6. It's interesting to note that BASIC was never intended by its inventors to be an interpreted language [4], while most popular microcomputer implementations were interpreted.
  7. Nevison, John, M. The Computer as Pupil: The Dartmouth Secondary School Project, Final Report, October 1970.

LOVE program listings

DEC BASIC-PLUS, 1975

10 REMARKABLE PROGRAM BY DAVE AHL
20 PRINT "A TRIBUTE TO THE GREAT AMERICAN ARTIST, ROBERT INDIANA.
30 PRINT "HIS GREATEST WORK WILL BE REPRODUCED WITH A MESSAGE OF
40 PRINT "YOUR CHOICE UP TO 60 CHARACTERS, IF YOU CAN'T THINK OF
50 PRINT "A MESSAGE, SIMPLY TYPE THE WORD 'LOVE'" \ PRINT
60 INPUT "YOUR MESSAGE PLEASE"A$ \ L=LEN(A$)
65 INPUT "OUTPUT OEVICE (LP: OR KB:)";B$
66 IF B$="LP:" OR B$="KB:" THEN 67 ELSE PRINT "AGAIN" \ GOTO 65
67 OPEN B$ FOR OUTPUT A$ FILE 1
70 DIM T$(120) \ PRINT #1 FOR I=1 TO 10
100 FOR J=0 TO INT(60/L)
110 FOR I=1 TO L
120 T$(J*L+I))=MID(A$,I,1)
130 NEXT I \ NEXT J
140 C=0
200 A1=1 \ P=1 \ C=C+1 \ IF C=37 THEN 999
205 PRINT #1
210 READ A \ A=A1+A \ IF P=1 THEN 300
240 PRINT #1," "; FOR I=1 TO A \ P=1 \ GOTO 400
300 PRINT #1,T$(I); FOR I=A1-A TO A1-1 \ P=0
400 IF Al>60 THEN 200 ELSE 210
600 DATA 60,1,12,26,9,12,3,8,24,17,8,4,6,23,21,6,4,6,22,12,5,6,5
610 DATA 4,6,21,11,8,6,4,4,6,21,10,10,5,4,4,6,21,9,11,5,4
620 DATA 4,6,21,8,11,6,4,4,6,21,7,11,7,4,4,6,21,6,11,8,4
630 DATA 4,6,19,1,1,5,11,9,4,4,6,19,1,1,5,10,10,4,4,6,18,2,1,6,8,11,4
640 DATA 4,6,17,3,1,7,5,13,4,4,6,15,5,2,23,5,1,29,5,17,8
650 DATA 1,29,9,9,12,1,13,5,40,1,1,13,5,40,1,4,6,13,3,10,6,12,5,1
660 DATA 5,6,11,3,11,6,14,3,1,5,6,11,3,11,6,15,2,1
670 DATA 6,6,9,3,12,6,16,1,1,6,6,9,3,12,6,7,1,10
680 DATA 7,6,7,3,13,6,6,2,10,7,6,7,3,13,14,10,8,6,5,3,14,6,6,2,10
690 DATA 8,6,5,3,14,6,7,1,10,9,6,3,3,15,6,16,1,1
700 DATA 9,6,3,3,15,6,15,2,1,10,6,1,3,16,6,14,3,1,10,10,16,6,12,5,1
710 DATA 11,8,13,27,1,11,8,13,27,1,60
999 PRINT #1 FOR I=1 TO 10 \ CLOSE 1 \ END
LOVE CC JAN75

LOVE in the Jan/Feb 1975 issue of Creative Computing

CPMUG vol. 3, 1978

120 T$="LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE"
121 T$=T$+"LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE"
122 T$=T$+"LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE"
128 REM
130 GOSUB 800
135 PRINT:PRINT:PRINT
140 C=0
200 A1=1:P=1:C=C+1
202 IF C=37 THEN 999
205 PRINT
210 READ A:A1=A1+A
212 IF P=1 THEN 300
230 FOR I = 1 TO A:PRINT " ";:NEXT I
240 P=1:GOTO 400
300 FOR I=A1-A TO A1-1:PRINT MID$(T$,I,1);:NEXT I
310 P=0
400 IF A1>60 THEN 200
410 GOTO 210
600 DATA 60,1,12,26,9,12,3,8,24,17,8,4,6,23,21,6,4,6,22,12,5,6,5
610 DATA 4,6,21,11,8,6,4,4,6,21,10,10,5,4,4,6,21,9,11,5,4
620 DATA 4,6,21,8,11,6,4,4,6,21,7,11,7,4,4,6,21,6,11,8,4
630 DATA 4,6,19,1,1,5,11,9,4,4,6,19,1,1,5,10,10,4,4,6,18,2,1,6,8,11,4
640 DATA 4,6,17,3,1,7,5,13,4,4,6,15,5,2,23,5,1,29,5,17,8
650 DATA 1,29,9,9,12,1,13,5,40,1,1,13,5,40,1,4,6,13,3,10,6,12,5,1
660 DATA 5,6,11,3,11,6,14,3,1,5,6,11,3,11,6,15,2,1
670 DATA 6,6,9,3,12,6,16,1,1,6,6,9,3,12,6,7,1,10
680 DATA 7,6,7,3,13,6,6,2,10,7,6,7,3,13,14,10,8,6,5,3,14,6,6,2,10
690 DATA 8,6,5,3,14,6,7,1,10,9,6,3,3,15,6,16,1,1
700 DATA 9,6,3,3,15,6,15,2,1,10,6,1,3,16,6,14,3,1,10,10,16,6,12,5,1
710 DATA 11,8,13,27,1,11,8,13,27,1,60
720 GOTO 999
800 PRINT CHR$(12);CHR$(127);CHR$(127);CHR$(127);CHR$(127)
810 RETURN
999 REM
1000 END

HP TIMESHARE BASIC, unknown date

LIST
LOVE  

10  REMARKABLE  PROGRAM BY DAVID AHL, ADAPTED AND REVISED BY ELGIN LEE
12  DIM T$[120]
20  PRINT "A TRIBUTE TO THE GREAT AMERICAN ARTIST, ROBERT INDIANA."
30  PRINT "HIS GREATEST WORK WILL BE REPRODUCED WITH A MESSAGE OF"
40  PRINT "YOUR CHOICE UP TO 60 CHARECTORS, IF YOU CAN'T THINK OF"
50  PRINT "A MESSAGE,SIMPLY TYPE THE WORD 'LOVE'"
60  PRINT "YOUR MESSAGE PLEASE"
61  DIM A$[60]
62  INPUT A$
63  PRINT LIN(5)
65  L=LEN(A$)
90  I=1
100  FOR J=1 TO INT(60/L)
110  T$[I,I+L-1]=A$
120  I=I+L
130  NEXT J
131  IF I>60 THEN 140
135  T$[I,60]=A$[1,60-I-1]
140  C=0
200  A1=1
201  P=1
202  C=C+1
203  IF C=37 THEN 999
210  READ A
211  A1=A1+A
212  IF P=1 THEN 300
240  FOR I=1 TO A
241  PRINT " ";
242  NEXT I
243  P=1
244  GOTO 400
300  PRINT T$[A1-A,A1-1];
301  P=0
320  IF A1 <= 60 THEN 210
330  PRINT ""
340  GOTO 200
400  IF A1>60 THEN 200
405  GOTO 210
600  DATA 60,1,12,26,9,12,3,8,24,17,8,4,6,23,21,6,4,6,22,12,5,6,5
610  DATA 4,6,21,11,8,6,4,4,6,21,10,10,5,4,4,6,21,9,11,5,4
620  DATA 4,6,21,8,11,6,4,4,6,21,7,11,7,4,4,6,21,6,11,8,4
630  DATA 4,6,19,1,1,5,11,9,4,4,6,19,1,1,5,10,10,4,4,6,18,2,1,6,8,11,4
640  DATA 4,6,17,3,1,7,5,13,4,4,6,15,5,2,23,5,1,29,5,17,8
650  DATA 1,29,9,9,12,1,13,5,40,1,1,13,5,40,1,4,6,13,3,10,6,12,5,1
660  DATA 5,6,11,3,11,6,14,3,1,5,6,11,3,11,6,15,2,1
670  DATA 6,6,9,3,12,6,16,1,1,6,6,9,3,12,6,7,1,10
680  DATA 7,6,7,3,13,6,6,2,10,7,6,7,3,13,14,10,8,6,5,3,14,6,6,2,10
690  DATA 8,6,5,3,14,6,7,1,10,9,6,3,3,15,6,16,1,1
700  DATA 9,6,3,3,15,6,15,2,1,10,6,1,3,16,6,14,3,1,10,10,16,6,12,5,1
710  DATA 11,8,13,27,1,11,8,13,27,1,60
999  PRINT LIN(5)
1000  END 

Some additional questions

  • Does an archival copy of Spahn's program exist?
  • Is it possible to reconstruct Spahn's earlier version of LOVE using a construction grammar approach?

TESTLOVE


Hello, world

The first published BASIC program was:

10 LET X = (7+8)/3
20 PRINT X
30 END

Kemeny, J. G. and Kurtz, T. E., BASIC instruction manual. Dartmouth College: Hanover, New Hampshire, 1964.