pixelpedant Posted April 15, 2022 Share Posted April 15, 2022 Since creating a video on TI Logo and its merits and strengths recently, I've heard back from a couple folks involved with its creation. And I wanted to collect some key information from interactions with these folks, who contributed such a wonderful piece of software to the TI-99. Mark Gross and Ed Hardebeck shared their experiences, and these are some of the gems they had to offer, in recollection of TI Logo's creation. Particularly compelling facts apropos of TI Logo's history are highlighted. Thanks to them for all of this! And thanks to Eric Scharff for getting me in contact with Mark Gross. Reminiscences from Ed Hardebeck: Q: Anything you can tell me about your experience of the project? Did TI provide any specific design requirements? And was it developed on a TI minicomputer, as TI's internal projects tended to be? I'd be delighted to hear anything you can tell me about its creation and your experience with it. A: They didn't really except it had to work on the 99/4, the memory expansion was required of course. Originally it was a big flat black box that sat under the 99/4, bigger than the computer itself. The project was a joint effort with TI, MIT and the Lamplighter School in Dallas. The Logo interpreter itself was first written in Pascal by Gary Drescher. I was an undergrad at MIT when I started on it at the AI Lab Logo Group, later a staff employee. The first part of my job was to rewrite the Pascal interpreter in assembly language. Yes this was done on a TI-990 mini-computer which had the same instruction set, and well before we got an actual 99/4. Mark Gross wrote the turtle graphics, I wrote the sprite stuff and the shape and text editors you showed off. I'm glad you mentioned how the base machine had 256 whole bytes of RAM! (that's bytes kids, not MB or even KB). Even with the expansion we had to swap in and out chunks of the program (like the editors or the disk io routines) from the cartridge EPROM. I understand BASIC stored it's programs in the video memory (read/write was arduous), which left it even less graphics to work with. Another fascinating observation from Ed Hardebeck: After this my next job was working on Logo for the Apple II. I developed Sprite Logo, we made a hardware display board for the Apple II that contained a TMS9918A processor. This guy has one https://www.bluerwhite.org/2014/03/boxing-sprite-logo/ https://www.bluerwhite.org/2014/04/lcsi-sprite-card/ (so do I still), and even got it running https://www.bluerwhite.org/2014/07/running-sprite-logo/ Sprite Logo ("second-system syndrome" aside) I think was much better. All 32 sprites were turtles and could draw, even while moving. You could command them in (more-or-less) parallel with TELL, ALL and EACH commands. For more capabilities with the sprite shapes I made the SNAP command which copied the bitmap under the sprite into its shape, and STAMP which copied the shape to the bitmap underneath. Combined with motion, there were a lot of interesting things that could be done. And yet more reminiscences from Ed Hardebeck: * The first time I went down to Dallas to meet with TI, file transfer consisted of bringing the 990 disk pack on the flight as carry-on. The office was the same one where they had the sound studio for recording for the Speak-and-Spell. When we got there no one was there to meet us, but the door had one of those mechanical push button combination locks. To kill time we started iterating combinations and within half an hour were in. Probably good we didn't get shot. * The TI liason for the project was originally the infamous Al Riccomi, you can google that. I heard he tried to run the project from jail for a time. * TI-Logo had a "demons" feature that ran lists of Logo code asynchronously (I don't remember if it made it into the final product). Mark Gross who implemented it had a PODS (Print Out DemonS) command to list them. So he added a PEAS command that just printed "Work for peace every day". When we got the EPROMS back from TI, the command instead printed out "Work for Reagan every day". A little trolling from a bit more innocent days of red/blue state rivalry. And some reminiscences from Mark Gross: Three of us (mostly) worked on the project at the MIT Logo Lab in ~1979-1980. Seymour Papert had contracted with TI to produce Logo for their home computer — his connection was probably through the Lamplighter School in Dallas, which (must have) had a Logo project in their classrooms. ("A child is not a vessel to be filled but a lamp to be lit.") Gary Drescher wrote the interpreter (Ed may have worked on it too) and Ed and I designed and wrote the graphics system. Danny Hillis, who was part of our community at the time, had thought about sprites earlier and provided some input on the design of the graphics system, although I think mostly we just thought and argued about how we'd like to access the capabilities of the hardware. We were all recent graduates with almost no professional software development experience (I had worked for a brief time on Ray Kurzweil's reading machine for the blind, but that was an undergraduate internship). The essentials of a Logo interpreter was familiar ground based on previous implementations for other hardware, but the graphics system was new territory. Even today I'm a bit surprised we were able to deliver on Seymour's promise to TI. Your video is spot on in pointing out the more sophisticated (and powerful) language design of Logo vs. BASIC (i.e., functional language, lists as data structures, etc.) and highlighting that Logo is (far) more than turtle graphics. For years, as a faculty member, I'd get students who'd experienced Logo in 3d grade, but who'd never gotten past FD 10; RT 90. And, the TI 99/4 hardware indeed had special graphics features; I think we were all frustrated with the way the hardware was packaged in the end. I still find it hard to believe that TI produced a keyboard without a "delete" (rubout) key. No doubt there were reasons. And indeed, three longhaired hippie programmers from MIT meets corporate HQ in Dallas (and for a while Lubbock, where apparently hardware development was actually taking place) was beyond weird. We'd do most of our work in Cambridge but we'd be flown down to Texas for meetings and for testing on their still-under-development hardware in Lubbock. Late night programming in an open-office with armed uniformed security guards ... talk about creativity under constraints. Finally, here's a lovely thing shared by Ed. One of the "I didn't work on the 99/4" buttons done up as an inside joke among TI folks back in the day: We are richer in our TI-99 development tools, thanks to the work of Ed and Mark and others who contributed to the TI Logo project. And we are are richer in our knowledge of its origins today, thanks to their recollections. 18 2 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted April 15, 2022 Share Posted April 15, 2022 That is so cool, thanks for providing these tidbits! I’m also very impressed with your video, you can really tell a lot of work went into that. Thank you for that. Wonder if there are any TI Logo 2 design documents available and/or did the source code survive? Would also be very interested in memory locations used for the interpreter and where in memory logo code is stored. 3 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted April 15, 2022 Share Posted April 15, 2022 5 hours ago, pixelpedant said: Sprite Logo ("second-system syndrome" aside) I think was much better. All 32 sprites were turtles and could draw, even while moving. You could command them in (more-or-less) parallel with TELL, ALL and EACH commands. For more capabilities with the sprite shapes I made the SNAP command which copied the bitmap under the sprite into its shape, and STAMP which copied the shape to the bitmap underneath. Combined with motion, there were a lot of interesting things that could be done. Unbelievable. I'd love to see this! 3 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted April 15, 2022 Share Posted April 15, 2022 Outstanding sleuthing by @pixelpedant Thanks for digging into this for us. 4 Quote Link to comment Share on other sites More sharing options...
pixelpedant Posted April 15, 2022 Author Share Posted April 15, 2022 Another absolutely fantastic TI Logo anecdote shared with me by a TI Legend: From Paul Urbanus: We (Jim Dramis) and I used TI Logo's live tile editor to create the wire-frame tumbling asteroids in Parsec. It was really cool to have a simple Logo procedure flip through the various tumble 'views' of the asteroids while live editing the definitions. This made refining the asteroids' animation shapes easy and fun. I really think if more people gave TI Logo a try, they would have realised how good it is as a tool for designing sprite and tile assets and dumping them to disk, and this would have made it the standard tool for doing that. But evidently Dramis and Urbanus realised this from the get-go! 12 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted April 16, 2022 Share Posted April 16, 2022 I tried LOGO in elementary thanks to an episode of "Mr. Wizard's World." 3 Quote Link to comment Share on other sites More sharing options...
digdugnate Posted April 16, 2022 Share Posted April 16, 2022 I'm a touch younger than most (mid-40s), but Dad had lots of 994A stuff around. I messed with TI LOGO II as a youngster and was one of the first disk packages I reacquired when I got my PEB a few years ago. 6 Quote Link to comment Share on other sites More sharing options...
WhataKowinkydink Posted April 16, 2022 Share Posted April 16, 2022 53 minutes ago, digdugnate said: I'm a touch younger than most (mid-40s) Same. I went to a Montessori school for a year before going to the regular public elementary, and it had probably one of the first computer labs in town, chuck full of TIs. There was even a robotic turtle that we'd have move around. 2 Quote Link to comment Share on other sites More sharing options...
+acadiel Posted April 17, 2022 Share Posted April 17, 2022 Love it,@PixelPedant - thank you for doing this interview! 5 Quote Link to comment Share on other sites More sharing options...
Retrospect Posted April 21, 2022 Share Posted April 21, 2022 Really fascinating stuff here PixelPedant .... so Jim Dramis and Paul Urbanus basically used Logo for the sprites in the same way I and others use Magellan? In a sense? I always did wonder how they got those asteroids to look so lovely. 4 Quote Link to comment Share on other sites More sharing options...
pixelpedant Posted April 21, 2022 Author Share Posted April 21, 2022 Yep, pretty much. Using the sprite/tile editor to design the sprites, then using the sprite data dumped to the Logo file as binary source for use in assembly program development, or so it seems to me. I briefly showed what this kind of "live" editing looks like in my video, here. 7 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted April 23, 2022 Share Posted April 23, 2022 How does LOGO2 differ from LOGO? Is the manual for LOGO applicable to LOGO2? 2 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted April 23, 2022 Share Posted April 23, 2022 Logo II was a bit of a superset of Logo I that added speech, IIRC. I'm pretty sure all Logo I programs would run without modification in Logo II. 3 Quote Link to comment Share on other sites More sharing options...
pixelpedant Posted April 23, 2022 Author Share Posted April 23, 2022 2 hours ago, senior_falcon said: How does LOGO2 differ from LOGO? Is the manual for LOGO applicable to LOGO2? Broadly, yes. With very small exceptions, Logo I programs run identically under Logo II. Logo II's biggest addition is support for constructing, loading, and playing sound lists for the purpose of playing music (where Logo I just has BEEP and NOBEEP). It also adds support for magnified sprites, joystick input, and a collection of other minor expansions on the Logo feature set. 7 1 Quote Link to comment Share on other sites More sharing options...
Reciprocating Bill Posted April 23, 2022 Share Posted April 23, 2022 (edited) The BYTE Magazine review of several Logo implementations found in this issue... https://vintageapple.org/byte/pdf/198208_Byte_Magazine_Vol_07-08_Logo.pdf ...concludes with, “Mr. Bynum also told me about about a second version of TI Logo that will be available before the end of the year. This version will include such enhancements as music capability, double-size sprites, a workspace almost twice as large as that of the first version, more extensive documentation, and the ability to print procedures via the RS-232C port. In addition, the new version will no longer "hang up" when it runs out of workspace, and BUTFIRST of a single-letter word will be an .empty word. (All other criticisms given here will still be valid.) These improvements will correct many of the current faults of TI Logo.” The entire issue is more or less dedicated to Logo, with several informative articles. Interestingly (and apparently coincidentally), Steve Ciarcia's Circuit Cellar article, "High Resolution Sprite-Oriented Color Graphics" describes his design of a board for the Apple II utilizing a 9918a VDP, which he described at great length and in very positive terms (without ever mentioning the 99/4a.) Edited April 23, 2022 by Reciprocating Bill 3 1 Quote Link to comment Share on other sites More sharing options...
Count9929A Posted April 23, 2022 Share Posted April 23, 2022 (edited) 3 hours ago, pixelpedant said: Broadly, yes. With very small exceptions, Logo I programs run identically under Logo II. Logo II's biggest addition is support for constructing, loading, and playing sound lists for the purpose of playing music (where Logo I just has BEEP and NOBEEP). It also adds support for magnified sprites, joystick input, and a collection of other minor expansions on the Logo feature set. my copy of the TI LOGO manual refers to both versions, highlighting some differences. One of the programs in the LOGO Sampler package (probably DESIGN, but I am not sure now), requires a modification (actually to enter a command interactive mode) in order to run in TI LOGO II, while of course runs as-it-is in LOGO I. Edited April 23, 2022 by Count9929A added the possible name of the program 6 2 Quote Link to comment Share on other sites More sharing options...
XLERB Posted April 25, 2022 Share Posted April 25, 2022 On 4/21/2022 at 4:37 PM, pixelpedant said: I briefly showed what this kind of "live" editing looks like in my video, here. I really liked the video, and all your videos (especially the PEB video - I LIKE the fan noise! Although my wife has always said it sounds like a plane taking off). I’m gonna have to pull out Logo again since I haven’t used it since my now-middle-aged kids were in elementary school. I forgot how much it can do, and I guess I never paid attention to how fast and smoothly it handles graphics and sprites. (And you also whetted my appetite to try some XB fancy music programming too). 2 Quote Link to comment Share on other sites More sharing options...
Reciprocating Bill Posted June 17, 2022 Share Posted June 17, 2022 Here's an interesting letter to the editor I encountered in BYTE Magazine, August 1981: 4 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 17, 2022 Share Posted June 17, 2022 It's the golden rule: "Whoever has the gold makes the rules." 2 Quote Link to comment Share on other sites More sharing options...
Golden Child Posted November 3, 2022 Share Posted November 3, 2022 (edited) I was very interested in trying to get Sprite Logo running in Mame's apple2 driver but I think it needs a dump of the 2k 2516 rom on the Sprite Logo board. Studying the Sprite Logo board from pictures on bluerwhite.org it looks very unusual from most apple2 cards in that it doesn't use IOSEL or IOSTB, instead using the INH line as far as I can tell. I was able to get it to do something but it doesn't run properly. It appears to upload the font to the card and sets up screen memory then crashes. I've always been fascinated by Logo, and especially Logos that had sprites. It's surprising how big Logo was back in the early 80s. It's interesting to compare the different versions of LCSI Logo that ran on TMS9918 chips: LCSI Sprite Logo for the Apple II (had a TMS9918 on a Sprite Card) MSX Logo Coleco Adam Smartlogo TI 99 Logo I've been able to run most of these inside MAME. (logo needs a 32k memory expansion in the PEB) ./mame ti99_4a logo2 -ioport peb -ioport:peb:slot2 32kmem ./mame ti99_8 logo2 (the ti99_8 driver runs logo without adding the peb) ./mame adam smartlog (The only msxlogos that I could find are NL and Spanish (Philips)) ./mame nms8245 msxlogo (msx2 running an msx1 cart) ./mame canonv20 msxlogo (msx1 running an msx1 cart) It's a little difficult to use the Spanish MSX-Logo as all the keywords are in Spanish, left = izquierda/iz right = derecha/de setspeed = fvel forward = avanza/av setcolor = fct makeshape = edfi They are all very similar, yet they have slightly different syntax and capabilities. For example, the TI-99 version has tile editing support, but the Adam SmartLOGO doesn't use tiles, instead using the TMS9918 full color mode (no out of ink errors). Edited November 3, 2022 by Golden Child 3 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted November 3, 2022 Share Posted November 3, 2022 11 hours ago, Golden Child said: It's a little difficult to use the Spanish MSX-Logo as all the keywords are in Spanish, left = izquierda/iz right = derecha/de setspeed = fvel forward = avanza/av setcolor = fct makeshape = edfi Note that the TI implementation of TI Logo includes several language variants: Dutch, French, German, Italian, and Argentine Spanish are all known to exist. French, German, and Argentine Spanish exist as Logo I cartridges (I am only missing the French variant) and all five varieties exist in Logo II form (I am only missing the German one here). Several others were planned, but were never implemented. 1 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted November 3, 2022 Share Posted November 3, 2022 11 hours ago, Golden Child said: It's a little difficult to use the Spanish MSX-Logo as all the keywords are in Spanish, left = izquierda/iz right = derecha/de setspeed = fvel forward = avanza/av setcolor = fct makeshape = edfi Seems like the multiple localized implementations of LOGO would make it not a very portable language. I would assume (hope) saved files are tokenized so when saved in Spanish they load up in English as expected. That would only leave printed programs in question. 1 Quote Link to comment Share on other sites More sharing options...
pixelpedant Posted November 3, 2022 Author Share Posted November 3, 2022 At least in TI LOGO, nothing is tokenised. It's all plaintext. The only exception is graphics data, which is stored ready to load directly into VDP. This makes it more or less the precise opposite of TI BASIC. Which stores program code in a format ready to be loaded directly into VDP, but with graphics and sound data usually contained within that as plaintext strings (inasmuch as CALL CHAR patterns are usually quoted strings and CALL SOUND arguments are usually unquoted strings, in TI BASIC). 2 Quote Link to comment Share on other sites More sharing options...
Count9929A Posted November 4, 2022 Share Posted November 4, 2022 16 hours ago, pixelpedant said: At least in TI LOGO, nothing is tokenised. It's all plaintext. The only exception is graphics data, which is stored ready to load directly into VDP. so LOGO programs are not portable between different localized versions, right? Quote Link to comment Share on other sites More sharing options...
Golden Child Posted November 4, 2022 Share Posted November 4, 2022 (edited) For fun, I thought I'd compare the two version of MSX-Logo from NL and ES. Doing a hexdump and writing each to a file: hexdump -C MSXLOGO.ROM > nl.txt hexdump -C MSXLOGO_ES.rom > es.txt then doing a diff: diff --side-by-side --width=170 nl.txt es.txt and what's interesting is that the two files are virtually identical except for a few ranges, basically the error messages and the language keywords. It looks like they actually made the keywords shorter than the english version and left the original English part as well as french that wasn't overwritten in at the end. The last NL keywords before the English keywords (in alpha order) are zetyv and zin. The last keywords in the ES rom before the English keywords are actually french keywords that haven't been overwritten (in alpha order are vit vitesse vitx vity vrai vt). English keywords that aren't overwritten are putsh px quotient random rc) 00007d40 6f 70 7a 65 74 74 65 6b 73 74 7a 65 74 76 7a 65 |opzettekstzetvze| | 00007d40 65 3f 76 69 73 69 62 6c 65 3f 76 69 74 76 69 74 |e?visible?vitvit| 00007d50 74 76 61 61 72 74 7a 65 74 78 7a 65 74 78 76 7a |tvaartzetxzetxvz| | 00007d50 65 73 73 65 76 69 74 78 76 69 74 79 76 72 61 69 |essevitxvityvrai| 00007d60 65 74 79 7a 65 74 79 76 7a 69 6e 68 70 78 71 75 |etyzetyvzinhpxqu| | 00007d60 76 74 75 63 74 70 75 70 75 74 73 68 70 78 71 75 |vtuctpuputshpxqu| 00007d70 6f 74 69 65 6e 74 72 61 6e 64 6f 6d 72 63 72 65 |otientrandomrcre| | 00007d70 6f 74 69 65 6e 74 72 61 6e 64 6f 6d 72 63 72 65 |otientrandomrcre| I was able to translate a bunch of the NL keywords into english, aided by an online translator and finding a keyword that printed out all the primitives in a list, "primitieven". So if you had a translation table, porting to a different language should be just 1:1 replacing keywords. NL --> English achteruit/at = back afstand = distance allemaal = all drukaf = print ding = thing eind = end elk = each ev = edit sprite (edit vormn) (ev 36 will edit first turtle sprite pointing up) eerste = first rechts/re = right links/li = left richting = heading penneer/pn = pen down penop/po = pen up punt = point (draw a dot at a point eg punt [ 10 10 ] kleursp = set sprite color spkleur = get sprite color vooruit/vt = forward vormn = (form for shape, get shape number) wie = who vaart = speed vals = false waar = true wacht = wait zetv = setshape (set vormn) yvaart = yvel zeg = tell zetpk = setpencolor zetvaart = setspeed zetx = setx zety = sety sw = turtle hide ts = turtle show ms = clear graphics tw = clear text (text wipe?) ss = clear text and graphics kleurscherm = background color kleur.over = color of dot under turtle etc: This would actually be a pretty good way to learn a little bit of a foreign language, at least a few words anyway. Edited November 4, 2022 by Golden Child 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.