PDP-10 / its

Incompatible Timesharing System
Other
864 stars 83 forks source link

LISP LOGO versions #1329

Open Alexey-Slyusar opened 6 years ago

Alexey-Slyusar commented 6 years ago

Get these LISP LOGO versions running properly:

And make some versions related documentation.

Also, @larsbrinkhoff wrote:

I see evidence there were links to LLLOGO from SYS and SYS1: TS LLOGO, OLLOGO, NLLOGO, 11LOGO, BLOGO, CLLOGO, ELLOGO.

so some investigations needed in respect of these versions.

Alexey-Slyusar commented 6 years ago

There is the capability in LISP LOGO of using the LISP compiler directly on LOGO programs. LISP LOGO provides an interface to the LISP compiler which should make it unnecessary for the LISP LOGO user to worry about interacting with a separate program.

But it seems that the interface uses NCOMPL as the name for the compiler.

?COMPILE LIB                                                                                      
;FUNCTIONS BEING COMPILED ARE:                                                                    
MAP                                                                                               
MAP1                                                                                              
|PREPARE.TEMPLATE|                                                                                
?                                                                                                 
REDUCE                                                                                            
REDUCE1                                                                                           
|PREPARE.TEMPLATE.2|                                                                              
?1                                                                                                
?2                                                                                                
^V SYS: SYS3; TS NCOMPL - FILE NOT FOUND                                                          
:INPUSH 

@larsbrinkhoff could you please suggest is it necessary to change LISP LOGO source code to use COMPLR instead NCOMPL ? Or maybe is there another solution such as creating hard link / symlink / alias? Thank you!

eswenson1 commented 6 years ago

A link is probably the best solution here. I don’t have access to ITS just now, so can’t provide an exact command, but something like:

:link sys;ts.ncompl,sys;ts complr

Should do the trick. Replace “sys;” with the right directory if TS COMPLR is not in SYS.

larsbrinkhoff commented 6 years ago

Yes, one way is to add a symbolic link. We have done that many times, so it's an option. Changing the source is also an option.

@eswenson1, any preference?

eswenson1 commented 6 years ago

My preference is to add the link. If I remember correctly we had both COMPL and NCOMPL on MC. Eventually they were the same. We probably used a link too.

Alexey-Slyusar commented 6 years ago

Hi Eric! Thank you very much!

ср, 17 окт. 2018 г. в 9:00, Eric Swenson notifications@github.com:

My preference is to add the link. If I remember correctly we had both COMPL and NCOMPL on MC. Eventually they were the same. We probably used a link too.

— 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/1329#issuecomment-430500135, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupNAneuME7aY5Vr8hdRZZ5D7N_xgfks5ulsebgaJpZM4XUl2- .

Alexey-Slyusar commented 6 years ago

Eric, Lars, thank you!

I'll create the link and try things out tonight.

ср, 17 окт. 2018 г. в 9:22, Alexey Slyusar aleksey.slyusar@gmail.com:

Hi Eric! Thank you very much!

ср, 17 окт. 2018 г. в 9:00, Eric Swenson notifications@github.com:

My preference is to add the link. If I remember correctly we had both COMPL and NCOMPL on MC. Eventually they were the same. We probably used a link too.

— 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/1329#issuecomment-430500135, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupNAneuME7aY5Vr8hdRZZ5D7N_xgfks5ulsebgaJpZM4XUl2- .

Alexey-Slyusar commented 6 years ago

The link works, thank you! But the compilation process not completed due to the missing file LLOGO; DECLAR >

?compile lib 4                                                                
;FUNCTIONS BEING COMPILED ARE:                                                  
MAP                                                                             
MAP1                                                                            
|PREPARE.TEMPLATE|                                                              
?                                                                               
REDUCE                                                                          
REDUCE1                                                                         
|PREPARE.TEMPLATE.2|                                                            
?1                                                                              
?2                                                                              

LISP COMPILER 2155 [in LISP 2154]                                               
((DSK LLOGO) DECLAR >) File Not Found - MAKLAP                                  
_
Alexey-Slyusar commented 6 years ago

I've made an empty LLOGO; DECLAR 1 and got the compilation process finished.

Alexey-Slyusar commented 6 years ago

But it seems that the compiled code isn't work properly.

Alexey-Slyusar commented 6 years ago

Maybe this AIM-307a paragraph may help with purpose for the DECLAR file.

default

larsbrinkhoff commented 6 years ago

For the moment, we don't have this file. But we might get it in the future.

Alexey-Slyusar commented 6 years ago

Hi Lars! Thanks for the comment.

But maybe it is possible to create such file even with my current level of competence.

The 'PRIMIT' LISP LOGO source file says "The file LLOGO;DECLARE > contains declaration for LLOGO primitives"

I am going to create the file containing the declarations and check the things out.

чт, 18 окт. 2018 г. в 8:56, Lars Brinkhoff notifications@github.com:

For the moment, we don't have this file. But we might get it in the future.

— 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/1329#issuecomment-430884369, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupP-HdKttVBYM4R-iClEIJhPxkEgJks5umBgLgaJpZM4XUl2- .

eswenson1 commented 6 years ago

I think that’s a good idea. If we recover the original we can replace yours with it. Until then, feel free to populate with whatever makes compilation work.

Alexey-Slyusar commented 6 years ago

Hi Eric! Thank you!

If I get the things work I'll put my 'DECLARE' in 'alexey/llogo'

чт, 18 окт. 2018 г. в 10:24, Eric Swenson notifications@github.com:

I think that’s a good idea. If we recover the original we can replace yours with it. Until then, feel free to populate with whatever makes compilation work.

— 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/1329#issuecomment-430903112, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupEKfRCAJ34YK7WkiRFSxym8R3hKXks5umCyrgaJpZM4XUl2- .

Alexey-Slyusar commented 6 years ago

Unfortunately, the vast majority of my computing time is on windows platform. So I am trying to get ITS and LLOGO working on windows . I've tried to build ITS under cygwin but unsuccessfuly (there were sim_sock.h and sim_sock.c related errors). Is it possible to build ITS under cygwin without modifying the makefile?

чт, 18 окт. 2018 г. в 12:34, Alexey Slyusar aleksey.slyusar@gmail.com:

Hi Eric! Thank you!

If I get the things work I'll put my 'DECLARE' in 'alexey/llogo'

чт, 18 окт. 2018 г. в 10:24, Eric Swenson notifications@github.com:

I think that’s a good idea. If we recover the original we can replace yours with it. Until then, feel free to populate with whatever makes compilation work.

— 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/1329#issuecomment-430903112, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupEKfRCAJ34YK7WkiRFSxym8R3hKXks5umCyrgaJpZM4XUl2- .

Alexey-Slyusar commented 6 years ago

I've tried simh. And I am going to try klh simulator. Any suggestions will be helpful. Thank you!

пн, 22 окт. 2018 г. в 11:07, Alexey Slyusar aleksey.slyusar@gmail.com:

Unfortunately, the vast majority of my computing time is on windows platform. So I am trying to get ITS and LLOGO working on windows . I've tried to build ITS under cygwin but unsuccessfuly (there were sim_sock.h and sim_sock.c related errors). Is it possible to build ITS under cygwin without modifying the makefile?

чт, 18 окт. 2018 г. в 12:34, Alexey Slyusar aleksey.slyusar@gmail.com:

Hi Eric! Thank you!

If I get the things work I'll put my 'DECLARE' in 'alexey/llogo'

чт, 18 окт. 2018 г. в 10:24, Eric Swenson notifications@github.com:

I think that’s a good idea. If we recover the original we can replace yours with it. Until then, feel free to populate with whatever makes compilation work.

— 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/1329#issuecomment-430903112, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupEKfRCAJ34YK7WkiRFSxym8R3hKXks5umCyrgaJpZM4XUl2- .

larsbrinkhoff commented 6 years ago

As far as I understand, SIMH (including the KA10, aka "sims") should work on Windows. I think you should compile it with some Microsoft tool rather than Cygwin.

However, I'm fairly sure the ITS repository has never been used as is on Windows.

Alexey-Slyusar commented 6 years ago

Lars, thank you!

I am obligatory to use windows for work / office duties. As a computer hobbyist I use linux machine. I know nothing about ms developers tools (except VBA) and I don't want to learn about, because there is no fun in it (it is just my humble opinion).

Despite I have some success with cygwin (I've built some apps from source) I don't get ITS working under cygwin.

Currently I don't have enough time to continue. Maybe I get back to this idea later.

Thanks again!

пн, 22 окт. 2018 г. в 20:44, Lars Brinkhoff notifications@github.com:

As far as I understand, SIMH (including the KA10, aka "sims") should work on Windows. I think you should compile it with some Microsoft tool rather than Cygwin.

However, I'm fairly sure the ITS repository has never been used as is on Windows.

— 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/1329#issuecomment-431911444, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupO4WbRXxosyZISNPg9EtHcVxPeFEks5ungQSgaJpZM4XUl2- .

larsbrinkhoff commented 6 years ago

@Alexey-Slyusar, we have DECLAR now, so compilation should work.

Alexey-Slyusar commented 6 years ago

It's just great news!

I wrote my own DECLAR and got .LOGO. OUTPUT generated by LLOGO during compilation, but the process hung up on "I WILL LET YOU KNOW WHEN IT'S READY." stage, and I never got "YOUR COMPILATION IS FINISHED." message from the system.

With kind help of Eric, I was going to continue the compilation efforts in December (currently I have some kind of busy season at my work).

But now we have original DECLAR so compilation should just work. I'll test things out when I'm at home (I am at work now).

Thank you!

сб, 10 нояб. 2018 г. в 0:13, Lars Brinkhoff notifications@github.com:

@Alexey-Slyusar https://github.com/Alexey-Slyusar, we have DECLAR now, so compilation should work.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1329#issuecomment-437497049, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupJ9nK2QAOA3QJf0pByOo2j6uSajkks5utfAUgaJpZM4XUl2- .

larsbrinkhoff commented 6 years ago

Well, maybe something still not right. I tested it:

?to foo
>10 print "foo
"
>end
;FOO DEFINED

?compile 'foo
;FUNCTIONS BEING COMPILED ARE:
FOO 

LISP COMPILER 2155 [in LISP 2154]
;YOUR WORKSPACE WILL BE COMPILED AS LLOGO FASL DSK LLOGO
;I WILL LET YOU KNOW WHEN IT'S READY.

It never told me it was ready.

Alexey-Slyusar commented 6 years ago

The same behavior as I got with my own DECLARE file.

If I remember correctly, there should be "YOUR COMPILATION IS FINISHED." message if all goes well with the compilation. It is described in the PRIMIT

source file, where the COMPILE routine are defined.

Do you have the FOO FASL / UNFA files or the .LOGO. OUTPUT or all the files in the working directory?

сб, 10 нояб. 2018 г. в 16:24, Lars Brinkhoff notifications@github.com:

Well, maybe something still not right. I tested it:

?to foo

10 print "foo " end ;FOO DEFINED

?compile 'foo ;FUNCTIONS BEING COMPILED ARE: FOO

LISP COMPILER 2155 [in LISP 2154] ;YOUR WORKSPACE WILL BE COMPILED AS LLOGO FASL DSK LLOGO ;I WILL LET YOU KNOW WHEN IT'S READY.

It never told me it was ready.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1329#issuecomment-437583640, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupJt2Ubgz0BWztSUDrJSylijXeRMkks5uttOTgaJpZM4XUl2- .

larsbrinkhoff commented 6 years ago

I did get YOUR COMPILATION IS FINISHED. eventually. Seems Logo waits 60 seconds to check that the output FASL file was created.

Alexey-Slyusar commented 6 years ago

It seems that the COMPILE procedure works fine with DECLAR 67!

*:llogo
LISP 2154
LLOGO 1700
DO YOU WANT TO USE THE DISPLAY TURTLE? 
<QUIT

?to hi
>10 op [hello there]
>end
;HI DEFINED

?compile hi0001
;FUNCTIONS BEING COMPILED ARE:
HI 

LISP COMPILER 2155 [in LISP 2154]
;YOUR WORKSPACE WILL BE COMPILED AS HI0001 FASL DSK LLOGO
;I WILL LET YOU KNOW WHEN IT'S READY.
;YOUR COMPILATION IS FINISHED.

The process is not so fast. It takes about one minute to compile such simple procedure as HI.

After that I exited LLOGO and ran LLOGO again to check things:

*:llogo
LISP 2154
LLOGO 1700
DO YOU WANT TO USE THE DISPLAY TURTLE? 
<QUIT

?readfile hi0001 fasl
;FASLOADING HI0001 FASL DSK LLOGO
?hi
HELLO THERE
?

Here is HI0001 UNFASL:

*:print hi0001 unfasl

'(THIS IS THE UNFASL FOR ((DSK LLOGO) DECLAR /67))
'(ASSEMBLED BY FASLAP /392)
'(COMPILED BY LISP COMPILER /936 COMAUX /25 PHAS1 /86 MAKLAP /80 INITIA /120)

'(THIS IS THE UNFASL FOR ((DSK LLOGO) |.LOGO.| OUTPUT))
'(ASSEMBLED BY FASLAP /392)
'(COMPILED BY LISP COMPILER /936 COMAUX /25 PHAS1 /86 MAKLAP /80 INITIA /120)

        (COMMENT **FASL** 0. (LAP HI SUBR))
        (COMMENT **FASL** TOTAL =  2. WORDS) 
*

Thank you, Lars!

Alexey-Slyusar commented 6 years ago

Oh, Lars, It seems that we commented at about the same time! :-) Yes I was wrong. The process is not so time consuming. There is the (ALARMCLOCK 'TIME 60.)) in the PRIMIT > file sets 60 seconds to check that the output FASL file was created.

larsbrinkhoff commented 5 years ago

Good news! There's a new complication.

It seems LLOGO can be used with the "color TV". TVRTLE has conditionals for "COLOR" and it will write Unibus hardware registers directly from Lisp.

Maybe CLLOGO means color LLOGO, and BLLOGO means B/W LLOGO.

larsbrinkhoff commented 5 years ago

This defines the hardware interface.


(DEFUN INITIALIZE-COLOR-TURTLE NIL
       (SETQ
             ;;Color data.
             COLORD-ADDRESS 764102
             ;;Video switch.
             VIDSW-ADDRESS 764104
             ;;Color address.
             COLORA-ADDRESS 764106
             ;;The increment register for the tv's.
             TVINCR-ADDRESS 764140
             ;;The mask for the increment.
             TVINC-MASK 77
             ;;Mask to handle overflow correctly in increment register.
             TVOFLO-MASK 1000
             ;;The reset bit mask.
             TVRSET-MASK 100000
             ;;The color write bit mask.
             TVCLRW-MASK 400
             ;;The console select register.
             TVSEL-ADDRESS 764142
             ;;The console number mask.
             TVRCNS-MASK 77
             ;;The regular write mode mask.
             TVRWMD-MASK 300
             ;;No shift write mode.
             TVNSH 0
             ;;The inclusive or mode.
             TVINOR 100
             IOR 100
             ;;The xor mode.
             TVXOR 200
             XOR 200
             ;;The move function.
             TVMOV 300
             SET 300
             ;;The regular address register.
             :DRAWMODE SET
             TVRADR-ADDRESS 764144
             ;;The word count for the block write.
             TVWC-ADDRESS 764146
             ;;Mask for word count.
             TVWC-MASK 777
             ;;The shift register.
             TVSHR-ADDRESS 764152
             ;;The shift count mask.
             TVSHCN-MASK 17
             ;;The start of the 16k page (in 4k blocks).
             TVMAP 17400
             ;;The activate tvmap bit.
             TVAMAP 20000
             ;;The mask register.
             TVMSK-ADDRESS 764154
             ;;The window for regular transfers.
             TVRWIN-ADDRESS 764160
             ;;The console register for the memory.
             TVCNSL-ADDRESS 764162
             ;;The color number mask.
             TVCLR-MASK 160000
larsbrinkhoff commented 5 years ago

Unfortunately, this file seems missing.


;;;Constants for video control registers. [see BEE;CLRTST >].
Alexey-Slyusar commented 5 years ago

Maybe CLLOGO means color LLOGO, and BLLOGO means B/W LLOGO.

Very Interesting assumption, Lars! And it is very possibly that BLLOGO means B/W LLOGO.

But AIM-307 says that CLLOGO stands for CLOGO compatible version of LISP LOGO. default

larsbrinkhoff commented 5 years ago

Thanks, I forgot about that.

OLLOGO is most likely an old version. That leaves ELLOGO unexplained.

eswenson1 commented 5 years ago

Well, the common prefixes for programs were N:new, O:old, and E:experimental.

Alexey-Slyusar commented 5 years ago

Eric, thank you! So, basically, we have figured out the meaning for all of this LISP LOGO plethora. Lars wrote:

I see evidence there were links to LLLOGO from SYS and SYS1: TS LLOGO, OLLOGO, >NLLOGO, 11LOGO, BLOGO, CLLOGO, ELLOGO.

Alexey-Slyusar commented 5 years ago

During working on the logo guide #1496 I encountered AIM-361 (June 1976) "The TV Turtle. A Logo Graphics System for Raster Displays" by Henry Lieberman. The documents describes in some depth Logo Graphics for Knight TV system. Among other things, memo contains the following: "Hardware for the black and white system was designed by Tom Knight, for the color system by Ron Lebel". It is interesting also, that AIM 307A (March 1975) doesn't mentioned colour capabilities at all. So colour capabilities were added to LISP LOGO between March 1975 and June 1976.

larsbrinkhoff commented 5 years ago

I have taken this to mean there was a B/W system for the Logo PDP-11/45. But now I see maybe I interpreted it wrong, and it's just the Knight TV system.

Alexey-Slyusar commented 5 years ago

One more quote from the AIM-361: "The TV Turtle is a package of functions written in the MacLisp dialect of Lisp for the PDP10. It can be used either directly from Lisp or from our Lisp implementation of Logo." The TVRTLE LLOGO package that we have contains colour related source code, so it was written after march 1975 obviously.

larsbrinkhoff commented 5 years ago

Timestamps for the TVRTLE file versions in the five hundreds are from 1978-1979. We don't have anything earlier.

Alexey-Slyusar commented 5 years ago

Thank you for the information, Lars! I'll add it to the ITS group logo guide.

пн, 28 янв. 2019 г. в 9:46, Lars Brinkhoff notifications@github.com:

Timestamps for the TVRTLE file versions in the five hundreds are from 1978-1979. We don't have anything earlier.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1329#issuecomment-458015526, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupGF6tATAhP94idiY0JDab-9fpEggks5vHpzRgaJpZM4XUl2- .

larsbrinkhoff commented 5 years ago

I think this has been mostly resolved with the addition of the logo.md file. Can we close this?

Alexey-Slyusar commented 5 years ago

Hi Lars!

I agree. So if there are no any other thoughts/facts about the variants, we can close the issue.

Regarding LISP LOGO as a whole, GERMLAND package doesn't work properly, but it is a separate issue from this one.

I close the issue this night.

Thank you!

ср, 20 марта 2019 г. в 9:43, Lars Brinkhoff notifications@github.com:

I think this has been mostly resolved with the addition of the logo.md file. Can we close this?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1329#issuecomment-474706566, or mute the thread https://github.com/notifications/unsubscribe-auth/AoaupGpSXzXBdrNyMqq6LlK2EOJt3qXpks5vYdh2gaJpZM4XUl2- .

Alexey-Slyusar commented 5 years ago

Lars, I reread the issue and it seems to me that it should't be closed yet. I think so because we still don't have CLLOGO version of LISP LOGO running on ITS. What do you think?

I am experimenting to get CLLOGO running properly from time to time, but have not had success yet.

larsbrinkhoff commented 5 years ago

Yes, you are right. There still is no working CLLOGO.