Open Alexey-Slyusar opened 5 years ago
Great, thanks!
The files named ORDER are usually brief lists of commands. Your document is more comprehensive. I'd say .INFO.; CLOGO MANUAL or similar would be in order. In the Unix file system, that would be doc/_info_/clogo.manual.
I will follow the convention :-) I've made the alexey/CLOGO branch and put draft to doc/_info_/clogo.manual. Thank you!
Hi, Lars,
I am working on part 2.5 "Filing". There are SAVE and GET procedures in the CLOGO vocabulary that serve, respectively, to save and retrieve an entry from a file. As far as I am understand, the procedures accept two argument: directory name and file name. I did some try and error iterations, but I still cannot figure out how to provide right form of the arguments to the procedures.
Here is short session: ?SAVE TWO FILE NAMES NEEDED. ?SAVE "ALEXEY;" "LOGO" THERE IS NO FILE DIRECTORY. ?SAVE "HQM;" "LOGO" THERE IS NO FILE DIRECTORY.
Do you have any ideas how to provide right form of the arguments to the procedures? Thanks in advance!
I assume you tried to specify a directory without the ";"? For example:
SAVE HQM LOGO
Also, do you have a home directory? If not, perhaps the "THERE IS NO FILE DIRECTORY" is saying that it can't write to
Try doing a
:CWD .TEMP.;
before starting CLOGO. That will ensure that the default directory used by CLOGO will be (should be) .TEMP.;, which, of course, we know exists.
Then, try:
SAVE FOO BAR
And see if a) it works and b) if it wrote the file .temp.;foo bar.
@eswenson1, thank you!
I've tried things out, but unsuccessfully. Here is result:
:CWD .TEMP.; *:СLOGO
LOGO.44
?SAVE FOO BAR
THERE IS NO FILE DIRECTORY.
?SAVE "FOO" "BAR"
THERE IS NO FILE DIRECTORY.
?SAVE ".TEMP." "FOO.BAR"
THERE IS NO FILE DIRECTORY.
?SAVE ".TEMP.;" "FOO.BAR"
THERE IS NO FILE DIRECTORY.
?GB
AND A PLEASANT DAY TO YOU!
:listf
DB .TEMP. FREE BLOCKS #0=19739
I'll do more exploration in the evening.
Thanks again!
Maybe the directory name is hard coded, but doesn’t exist? Where is the source for CLOGO?
-- Eric
On Sep 12, 2018, at 22:29, Alexey-Slyusar notifications@github.com wrote:
@eswenson1, thank you!
I've tried things out, but unsuccessfully. Here is result:
:CWD .TEMP.; *:СLOGO
LOGO.44 ?SAVE FOO BAR THERE IS NO FILE DIRECTORY. ?SAVE "FOO" "BAR" THERE IS NO FILE DIRECTORY. ?SAVE ".TEMP." "FOO.BAR" THERE IS NO FILE DIRECTORY. ?SAVE ".TEMP.;" "FOO.BAR" THERE IS NO FILE DIRECTORY. ?GB
AND A PLEASANT DAY TO YOU! :listf
DB .TEMP. FREE BLOCKS #0=19739
I'll do more exploration in the evening.
Thanks again!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
We have no source code. And not even a clue where the program comes from; whether it's a port or originally by MIT.
The sintax and general behaviour of the CLOGO are almost identical with BBN LOGO. Thus, I think CLOGO is probably the MIT port of the BBN LOGO and the earliest MIT Logo System implementation. But it is only my humble opinion.
P.S. There are no the DISPLAY TURTLE related procedures in CLOGO, only floor turtle routines are presented. So, in any case, it is an earlier implementation than MIT 11LOGO and MIT LISP LOGO. But we have very stable CLOGO binary version, circa 1975 or so if I am not mistaken.
чт, 13 сент. 2018 г. в 9:01, Lars Brinkhoff notifications@github.com:
We have no source code. And not even a clue where the program comes from; whether it's a port or originally by MIT.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1197#issuecomment-420893247, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupAiX3EFMucHjSPMDxKaDAJQHCLAdks5uafSqgaJpZM4WWLcn .
I compared CLOGO disassembly with some kind of "BBN Logo", but they were not similar at all.
Our current version of CLOGO is from 1975. There are also files going back to 1972.
My humble opinion about the similarity between CLOGO and BBN LOGO is based on the BBN reports which descibe the BBN LOGO language and system and my own experience with our current version of CLOGO. Perhaps CLOGO is not a direct port, but an implementation written from scratch that functionally repeats the BBN LOGO. Therefore they are disassembly different but functionally and syntactically similar. But this is only my guess :-)
чт, 13 сент. 2018 г. в 11:10, Lars Brinkhoff notifications@github.com:
I compared CLOGO disassembly with some kind of "BBN Logo", but they were not similar at all.
Our current version of CLOGO is from 1975. There are also files going back to 1972.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1197#issuecomment-420921630, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupEXLbE5Kb-tz3uN8Gbq4S31_1Bqiks5uahMNgaJpZM4WWLcn .
I'm going to try out whether the directory name is hard coded. Maybe I will be lucky enough to guess the name of the hard coded directory.To do that I'm going to create directories named like "LOGO", "CLOGO" etc. and try to save a file in. Lars, you said that there are also files going back to 1972. Are these files stored in directories? If so, what are the names of the directories? I learned that the command for creating directory in ITS is :print dir;..new. (udir), but I cannot figure out how to use it properly. Could you please provide the exact command syntax for creating, for example, DSK:LOGO; directory? Thank you very much for your help and sorry for such silly question.
If you want to create a directory called FOO, do this:
:print foo;..new. (udir)
or:
^R foo; ..new. (udir)
You will get an error message when you do this. Just ignore the error message. Type FOO^F to see if the (empty) directory got created. Note: if you don't put anything in the directory, when the system is rebooted, the empty directory will get automatically deleted.
You could read the binary file into emacs (on ITS) and look for "interesting strings". You might be able to spot any hardcoded directory names. Alternatively, you could try to find where the file i/o is happening and use DDT to debug the file i/o calls. Of course, trying to find where to put the breakpoint is difficult when you have no sources and when the binary is large.
Eric, thank you very much!
The binaries were in SYS and SYSBIN, so that's no clue unfortunately.
Where can I find this binary?
I'll try to read the binary file using emacs on ITS. I am just a logo fan, so using DDT to debug the file i/o calls is too complicated for me now. But I am going to develop my skill further :-) The most straightforward way, I think, is to transform myself from a logo programmer to a lisp / scheme programmer. The excellent medium to do that is LISP LOGO environment. I believe that we can get it up and running on ITS sooner or later :-)
Thank you!
I'm all for you transforming yourself into a Lisp / Scheme programmer! If you want a nice development environment for Scheme, try https://racket-lang.org/
Thank you!
I am using DrRacket already in accompany with the wonderful Simply Scheme book by Dr. Brian Harvey. It is a prequel for SICP by Abelson and Sussman. To be honest I tried SCIP but it is to complicated for me and I plan to read it after I will absorb all Simply Scheme ideas.
But at the same time I am huge logo fan. I very like logo and I think that the idea to have Logo and Lisp environment simultaneously is just amazing. So Lisp Logo is very interesting for me.
Thanks again, Eric! I am happy to join ITS community there are many interesting people here and interesting things to play with :-)
Eric, the binary file is HQM; CLOGO BIN, and it's purified to SYS; TS CLOGO.
It's strange that we have a set of binaries in the period 1972-1976, but no source. Maybe it's just because the source wasn't called CLOGO?
The most obvious guesses for the hard coded directory name did not work. I loaded the binary file to emacs and looking for "interesting strings". There is no result yet.
I get back with the result in the evening and I want to quote a CLOGO message here: "AND A PLEASANT DAY TO YOU!"
EMACS will only display 7-bit ASCII text. The directory names are likely to be a ASCII subset stored as 6-bit characters.
I have a disassembler that runs in Unix. It will display most information inside a binary, including symbol table and possible 7-bit and 6-bit strings.
Running it on HQM; CLOGO BIN, I see:
Some possible directory or file names:
Interesting uses of .SUSET:
From this, I tracked down some more information:
RJL = Ron Lebel, a major force in the MIT Logo group.
From https://logothings.github.io/logothings/The80s.html:
Our first full year Logo class was in 1968-69 with seventh graders at Muzzey Junior High School. We were at BBN at the time. In the fall of 1969 I became a member of the AI Lab and we started our Logo work there.
The first graphics turtle and a floor turtle were built and running by
The graphics turtle was not portable. Its display was driven by a Digital PDP-6 connected to a Logo running on the lab’s PDP-10. First programs were written by Bill Gosper and other lab hackers. The yellow turtle was assembled by Tom Callahan.
(Note the turtle lamp.)
Again looking inside CLOGO BIN, I see there's a PDP6O symbol pointing to ['USR ? 0 ? SIXBIT /PDP6/]. In other words, this program is using the attached PDP-6 computer. So it looks like this is the version mentioned in the quote.
@natgoodman, we have found some more information about CLOGO. If you look at the comment above this one, does it ring any bells? Thank you!
IPG could be Ian P. Goulden. Was he involved with Logo?
Another picture of the yellow turtle:
And a video:
http://youtu.be/KeFhFPNO8hc
Oh Lars, it's just fantastic brainstorm session, thank you for the information! And thanks for nice pictures, of course :-) I'll try out the names of the direcrories you mentioned.
пт, 14 сент. 2018 г. в 10:23, Lars Brinkhoff notifications@github.com:
Another picture of the yellow turtle: [image: Yellow Turtle] https://user-images.githubusercontent.com/775050/45535720-c685c880-b7ff-11e8-9fe5-ef6da0ab0184.jpg
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1197#issuecomment-421256332, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupNhx5amyZI11qjxGnQ1TI1P6ZPL0ks5ua1l4gaJpZM4WWLcn .
Hi Lars
I looked at the thread. You’re making impressive progress! The comment jogged my memory a tad. I remember the Muzzy Junior High effort - not sure I ever went out there, it may have been just as I was joining the project. I vaguely remember the yellow turtle. By my time we had started the move to the little plexiglass dome covered beastie. I don’t remember running the turtle from the PDP-6. Again, perhaps before my time or just as I was joining the project.
I also checked out Cynthia Solomon’s website. A trove of LOGO history!
All the best, Nat
On Sep 13, 2018, at 11:34 PM, Lars Brinkhoff <notifications@github.com mailto:notifications@github.com> wrote:
@natgoodman https://github.com/natgoodman, we have found some more information about CLOGO. If you look at the comment above this one, does it ring any bells? Thank you!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1197#issuecomment-421246033, or mute the thread https://github.com/notifications/unsubscribe-auth/ALpP_nrYNYBQLvntf3KIcrdz9oktAnuyks5ua03YgaJpZM4WWLcn.
@Alexey-Slyusar I took Sussman's course back in 1976 and really like the SICP book. And yes, my kids, who took a functional programming class in Scheme at their high school said that they used a book that followed SICP, but was modernized and geared to DrScheme use. I suppose we shoudn't burden readers of this issue thread with off-topic stuff. Feel free to write me at eric at swenson.org if you want to chat further about this kind of stuff. I'm currently a FP developer who uses Scala!
Eric, it is just amazing! I really appreciate such opportunity and will definitely write to you to chat further! Thank you very much!
The SAVE command doesn't accept the LOGO, .LOGO., LESSON directory names as an argument. But there is interesting behavior:
:CWD .LOGO.; *:LOGO
LOGO.44
?TO HELLO
10 PRINT "HELLO" END HELLO DEFINED ?SAVE .LOGO. HELLO THERE IS NO FILE DIRECTORY. ?SAVE ".LOGO." "HELLO" THERE IS NO FILE DIRECTORY. ?SAVE .LOGO.; HELLO ERROR AT 15357 ?
Please note that there is ERROR AT 15357 message appeared when SAVE evaluated with a semicolon at the end of the .LOGO. argument. Any ideas?
It seems that not only .LOGO. actually, but in case of any argument with semicolon at the end: SAVE FOO; BAR
And does it make any difference whether the directory exists or not?
I have found something that may be CLOGO sources in the LOGO directory. But it'll be a while before we can see them.
No, there is no difference whether the directory exist or not. The error is appeared in both cases.
Oh, I just saw the message from Lars! So there is a hope to get CLOGO sources :-)
In connection with the yellow turtle turtle lamp, there are LAMPON and LAMPOFF commands in the CLOGO vocabulary :-)
LOGO.44
?LAMPON
YOU HAVE TO DO A SETTURTLE
?SETTURTLE T00
?LAMPON
ci"hb?
?LAMPOFF
ci!hb?
The terminal line is exposed outside the PDP-10 emulator as a TELNET port. It would be possible to attach an external program which listens to the commands sent out to the line. Maybe write it in a modern Logo! :-)
Great idea, Lars, I must say :-)
To make a step further, there is Brian Silverman's LogoChip project. The LogoChip is programmable and inexpensive embedded microcontroller (Microchip PIC18F2320 microcontroller that has LogoChip firmware installed). http://www.playfulinvention.com/portfolio/logo/?doing_wp_cron=1537000645.8897709846496582031250
Potentially, we can interface CLOGO with LogoChip and recreate the Yellow Turtle controlled by CLOGO :-)
By the way, what the number of the TELNET port that used by PDP-10 emulator?
P.S. Brian Silverman is a Consulting Scientist to the MIT Media Lab and notable Logo developer and cited by Brian Harvey as one of the contributors to the development of Logo at MIT.
The TELNET port is number 10000 with the KA10 simulator, and 10004 with SIMH.
I have tried to contact Brian Silverman a few times, but so far without success.
Lars, thank you! I think that your great idea to interface CLOGO with an external program deserve a separate issue, so I've created it. #1227 I hope you agree. :-)
I tried the mentioned directories once again (except for LOGO BUGS and LOGO NEWS**), but unsuccessful.
I still don't figure out how SAVE works.
** I got LOGO B and LOGO N instead.
^R LOGO.BUGS;..NEW. (UDIR)
DSK: LOGO.B; ..NEW. (UDIR) - FILE NOT FOUND
DSK: DIR LOGO.B CREATED BY ALEXEY HACTRN 20:52:57
^R LOGO.NEWS;..NEW. (UDIR)
DSK: LOGO.N; ..NEW. (UDIR) - FILE NOT FOUND
DSK: DIR LOGO.N CREATED BY ALEXEY HACTRN 20:53:29
You did it right, but ITS directory names can only be six characters.
AIM 307a says that proper syntax for SAVE
command is:
SAVE FOO BAR DSK HENRY
We assume that the directory name is hard coded in CLOGO. But all of the attempts to find the proper name for the directory felled.
But maybe the disk name (I mean DSK
) is hardcoded too?
What is possible variants for the disk name?
Doesn’t “save foo bar dsk henry” imply that these four arguments are FN1, FN2, DEVICE, DIRECTORY? “DSK” is a standard device name, and the use of four components suggests a full ITS file name spec.
There are some new files. I beleve these are much of the source code for CLOGO, though not complete enough to assemble them. Maybe these can answer how SAVE is to be used.
Yes, Eric, it is imply four arguments exactly. But I thought that DSK
may have different from the standard device name.
Thank you for the link, Lars! I'll check the source files for possible SAVE
usage hints.
Here is a link to a relatively comprehensive description of the CLOGO Language and System This is a very early draft of the document and a lot are missing. I am working to get it finished.
A Description of the LOGO Language and System
I'm going to make a new branch alexey/CLOGO to add the document. @larsbrinkhoff, could you please suggest a name for the document. Is "doc/info/clogo.order" name in line with the ITS practice?