kogden Posted November 26, 2014 Share Posted November 26, 2014 I may have to pick this up and play with it now. I've done some Scheme and Common LISP code but never played with Interlisp/65 yet. I'm assuming it's a real minimal environment. Is it pretty usable? Once I get my FPGA DEC PDP-8 build finished, I'll have to fire up a LISP interpreter on that too LOL Hey... you guys had a lot of PDP-8, PDP-11 and VAX clones in Russia didn't you? Quote Link to comment Share on other sites More sharing options...
576XE Posted November 27, 2014 Share Posted November 27, 2014 This book "THE ELEMENTS OF ARTIFICIAL INTELLIGENSE._______An Introduction Using LISP_______"by Steven Tanimoto, University of Washington presents us a list of commonly provided LISP functions for the times when Interlisp/65 was introduced.I compare it with (OBLIST) and almost all of them are in InterLISP. Moreover I think that the syntax of book and this version of Interlisp mostly the same. I think you are right. Here may be some PDP and VAX. (Although I've never seen them...) Quote Link to comment Share on other sites More sharing options...
576XE Posted November 27, 2014 Share Posted November 27, 2014 As far as it's concerned "Is it useful or not?" You must be on your side only. I only investigate these borders... Please read the book i sent. There are many AI examples in all AI area. If the internals of dialects are the same then we have fulli blown lang. By the way, These boys in Datasoft said ((2.5 manual) - 'find it here in DOC format) that they made %NAME hooks to assembler and even thought about LISP assembler... I see the potential. But now it's my THE BEST GAME only. I play with it for months... Best wishes from cold places! Quote Link to comment Share on other sites More sharing options...
suspicious_milk Posted November 28, 2014 Share Posted November 28, 2014 Hello friends. I tried yesterday to write simple function for reading DIR with any mask needed and without any success. You know that internal LISP (DIR NUM) can't accept file mask and really used in another program. As I remember for reading DIR we must write something like this (OPEN 4 6 'D1:*.*) LOOP (IN# 4) (SETQ LIS (READ)) (PR# 0) (PRINT LIS) (GO LOOP) This code reads nothing.Any help appreciated! (OPEN 4 6 'D:*.DIR) I think. Not at my Atari and my experience is old and limited. Best of luck Quote Link to comment Share on other sites More sharing options...
576XE Posted November 28, 2014 Share Posted November 28, 2014 The DIR program in BASIC looks like this 10 DIM A$(40) 20 TRAP 30:OPEN #1,6,0,"D1:*.*": GOTO 40 30 ? "ERROR ";PEEK(195):END 40 TRAP 70 50 INPUT #1,A$ 60 ? A$:GOTO 50 70 END We remember that DIR listing contains particular strings ending with $9B and Complete DIR listing ends with EOF. As LISP treats EOL and <Space> as delimiter for atoms and lists thus we need some constructive structure for atoms conjunction (for example by 3 in string). Not universal at all. EOF may be treated in LISP by (RETURN) clause. Quote Link to comment Share on other sites More sharing options...
576XE Posted January 16, 2015 Share Posted January 16, 2015 (edited) Here is the Memory Map of Interlisp65. INTER-LISP/65 v.2.5 MEMORY MAP All adresses are in hexadecimal. $BFFF >!-----------------------! ! ! ! DISPLAY LIST ! ! ! !-----------------------! <--- HIMEM : $81,$82 ! ! ! LISTS ! ! ! !-----------------------! <----- TOP : $97,$98 ! ! ! FREE SPACE ! ! ! !-----------------------! <-- BOTTOM : $87,$88 ! ! ! ATOMIC STRINGS ! ! ! !-----------------------! ! ! ! INTER-LISP/65 ! ! ! $2200 >!-----------------------! ! ! ! DOS,SYSTEM ! ! AND LISP ! ! WORK SPACE ! ! ! $0 >!-----------------------! It works only with DOS 2.5 as AUTORUN.SYS and DOS 2.5 CP as CON file. Another thing is that it's hate cartridges... Is it possible to run it with SpartaDOS or MyDOS? - If it's possible then we can use it with HD devices! Edited January 16, 2015 by 130XE Quote Link to comment Share on other sites More sharing options...
kogden Posted January 17, 2015 Share Posted January 17, 2015 With a HDD and some bankswitching support you could almost build a full Common LISP implementation w/ CLOS. Quote Link to comment Share on other sites More sharing options...
576XE Posted February 23, 2015 Share Posted February 23, 2015 Hello, friends. Here is a sample code from Inter-LISP/65 manual: (DEFINEQ REPEAT (LAMBDA (N FN) (PROG (M) (SETQ M N) LOOP (COND ((EQ M 0) (RETURN)) ((APPLY* FN))) (SETQ M (SUB M 1)) (GO LOOP) ))) Does anyone could force it to work? I can't. Quote Link to comment Share on other sites More sharing options...
drac030 Posted April 6, 2016 Share Posted April 6, 2016 (edited) Re this thread: http://atariage.com/forums/topic/222541-mydos-455-question-to-mathy/page-3?do=findComment&comment=3485317 The $02E4 is a variable that holds the number of RAM pages counted at the reset time. $A0 = 160 = 40 KB, which means that there is a cartridge present, probably. SDX was forgetting to update this value when disabling and enabling its ROM. Since the variable is hardly used by anything in the system, it is fairly safe to manually set it to $C0 = 192 = 48 KB and ... LISP runs. The v.2.5 needs rather low MEMLO ($1D80), but even on a 64k machine the MEMLO value here is $1B89 (with X.COM loaded - without it is $14C1), so it should run. Just probably the LISP800.EXE should be used instead of LISPXL.EXE (although it works, just I do not know if there would not be some conflict under the ROM later). On a 130XE or anything bigger (in USE BANKED mode) there should be no problem whatsoever. EDIT: wrong MEMLO values for the default CONFIG.SYS on 64k. To accomplish that one should use own CONFIG.SYS without ATARIDOS.SYS loaded, at least. Edited April 6, 2016 by drac030 3 Quote Link to comment Share on other sites More sharing options...
576XE Posted April 8, 2016 Share Posted April 8, 2016 _https://www.youtube.com/watch?v=t_P0rLQZ3pg SimplyI Can't to show this in frame... 1 Quote Link to comment Share on other sites More sharing options...
drac030 Posted April 8, 2016 Share Posted April 8, 2016 Nice video! LISP is Chinese to me, but I am glad it is working for you. PS. There is one slight error in your CONFIG.SYS, in line 5, instead of DEVICE IDEPLUS it should say DEVICE IDEPTIME. Quote Link to comment Share on other sites More sharing options...
+Stephen Posted April 8, 2016 Share Posted April 8, 2016 _https://www.youtube.com/watch?v=t_P0rLQZ3pg SimplyI Can't to show this in frame... Here ya go: Quote Link to comment Share on other sites More sharing options...
576XE Posted April 9, 2016 Share Posted April 9, 2016 Thank you drac030 I've been in hurry! I lost my IDEPTIME! Really LISP - is not so ierogliphical. Everybody knowing assembler knows that the ability to write sources, fill them with right stanza, load and save programs, even knowledges of some algorythms, all of it - is NOT assembler. At first we MUST know the machine! When I explained to my doughter what is lisp, she understand all. They say bla-bla-bla in very uncommon words, but The Truth is very simple. LISP works with WORDS (some of them KEYWORDS) absolutely in the same manner as assembler works with bits! Both of them can ONLY write bits or words, copy them or move in some specific memory being it Registers, Z-page area, main memory or extended. Only moving bits or only moving words. That's all. Mathimatically, Factorial defined as if n>=0 / 1 , if n=0 n! = | \ n * (n-1)! , if n>0 If you looks how I inputed LISP text you'll see that I only rewrite this definition. Yes, in LISP COND used instead of IF (CONDition) and ' (QUOTE sign) used for excluding evaluation of some data FE 'D:EDIT But you can see that moving WORDS (or bits) we can evaluate Factorial. Hi, Stephen. Many thanks. But HOW TO insert frame in forum theme? Is there some button or something? Quote Link to comment Share on other sites More sharing options...
576XE Posted April 9, 2016 Share Posted April 9, 2016 And another thing: How men invent new words? Simply combining old words (it's meanings) from active vocabulary. It's a real work of LISPer. Quote Link to comment Share on other sites More sharing options...
+Stephen Posted April 10, 2016 Share Posted April 10, 2016 Hi, Stephen. Many thanks. But HOW TO insert frame in forum theme? Is there some button or something? No - I just pasted the link directly, and the forum recognizes it as a youtube link. You can click the quote button for my post, it should show what is there. Quote Link to comment Share on other sites More sharing options...
576XE Posted April 24, 2016 Share Posted April 24, 2016 The FIRST thing we need to know while learning LISP is: The LISP has BINARY-TREE structure! From it's assembly-prepared ROOT i.e. REPL... to EndOfMem... The second - (as any interactive program) LISP is the REPL (Read Evaluate Print Loop) cicle! It means that LISP 1. Reads input from keyboard 2. Evaluates it in Memory and 3. Prints output to Screen. ... So USER-SPACE begins in THE brunch which is really INPUT-STREAM from keyboard!!! After evaluations LISP brings us to ONLY ONE output VALUE! It will be NEW ROOT to further inputs. (And it may be 'War and Peace' of Tolstoy ... for example.) Simplifying all matter we can say that: ROOT of some branch is it's *internal-name* (Explained further) - LEFT branch contains the LIST of available NAMES i.e. ATOMS and LISTS... - RIGHT branch contains the LIST-OF-LISTS of available DEFINITIONS which are strictly bounded with it's names. Thus... When we loading FILE we concatenate REPL *stream-input* with *internal-name* which is exactly FILENAME! Just replacing E: handler by D: handler. In other words we add 'D:NAME to LEFTmost branch of *stream-input* of REPL (as Property NAME (and thus it appears in *(OBLIST)-call*)) and add all-other file data to RIGHTmost branch (as Property DECLARATIONs) LISP FILE STRUCTURE: (List of NAMES) (LIST OF DEFINITIONS CONSEARNING NAMES) NIL (as EOF sign) One of the most disappointing things is the fact that LISP never pays attention to EOL-sign. It means that if you edit your LISP file in any external editor, you have a good chance to trancate LISP records and to kill your program!!! Now I want to present you InterLISP/65 editing session. We want to: 1. Repare LISP BUG 2. Create NEW file, containing changing screen colors and borders etc. Some available Structures-EDITOR commands: T - TOP of list definition (It means SOS when we are lost in parenthesis ...) A - Advancing aross CURRENT list B - Returning BACK in programm. E - Editing CURRENT list. Particularly NAMES! (LEFT-branch) Being it *List-of-NAMES* in file or being it initial *THE-ONLY-ONE-NAME-LIST*. I mean that newly created file MUST have some NON EVALUATED (List-of-NAMES) in it. EF - Edit Function THUS EDITING IT'S DEFINITION!!! (RIGHT-branch) I'll create new file, containing ONLY-ONE "PREP" form and it's definition, thus '(PREP) - Non-Evaluated NAME as '-sign means QUOTE! and LIST of definitions: D:PREP - Just filename... L - loading file L D:PREP S - saving file (NEEDS TWO FILELDS) F.E. ... if we need to create new file... S PROPERTY> '(PREP) FILENAME> D:PREP ... if we need save ALL!!! earlier loaded and edited in session definitions S PROPERTY> D:PREP FILENAME> D:PREP I - Inseart our definition AFTER current! PRE - Inseart our definition BEFORE current. (This command adds one level of parenthesis in our list of definitions!!! We must use RE then...) RE - Removes external parenthesis LI - adds external parenthesis R - Replace current form or ATOM H - HELP Returns the list of all availble commands of STRUCTURES-EDITOR Not working!!! !!! Firstly we must repare it !!! Here is editing session: Quote Link to comment Share on other sites More sharing options...
tschak909 Posted April 24, 2016 Share Posted April 24, 2016 A good LISP, marred by a terrible line editor. (for those wondering, a single quote, is not a delimiter, like in other languages. The ' indicates that the atom (part of the expression) following isn't a variable (or in LISP terminology, that the atom is unbound, isn't a variable, and should be taken literally), you can think of it akin to e.g. Ruby's : for symbols) 'foo is literally equivalent to: (quote foo) -Thom Quote Link to comment Share on other sites More sharing options...
576XE Posted April 25, 2016 Share Posted April 25, 2016 As far as it's concerned QUOTE-form I'm at your side. I'm sorry but regarding EDITor I can say only one thing... In LISP it's VERY DIFFICULT to understand anything staing in 40-columns screen editor... and structured editor help us in some way concentrates on simple forms and in contrary pretty-print all other input. I understand that it's not very impressive but anyway helpful. GOOD LUCK! Quote Link to comment Share on other sites More sharing options...
576XE Posted May 5, 2016 Share Posted May 5, 2016 Here is some movement, friends. As I decided earlier not to use ALL InterLISP/65 DISTRO with the purpose to insert my ... Hm-m-m... LISP finctions (It's even hard to imagine how it's hard to find some definitions from modern iNet. All old PDF's are images and have nothing with iNet search...) and arranged D:PREP file for thease purposes. (I think it MUST contain only very useful functions! And experiments, and nothing more) Only one thing I've changed in distro - added (INIT) function which loads both D:PREP and D: EDIT And the result is here: the content of D:PREPS **** PP2PR (MACRO (F) (CONS (QUOTE PP*) (LIST (LIST (QUOTE GETD) (LIST (QUOTE QUOTE) (CADR F)))))) **** PP* (LAMBDA (S-EXP) (PROGN (CLOSE 7) (OPEN 7 8 (QUOTE P:)) (PR# 7) (PP) (PR# 0) (CLOSE 7))) **** ILOAD (LAMBDA NIL (PROGN (POKE 128 0) (TERPRI) (PRIN1 (QUOTE "Enter FileName to load, please...")) (TERPRI) (PRIN1 (QUOTE "-> ")) (LOAD (READ)))) **** NULL (LAMBDA (L) (EQ L NIL)) **** ZEROP (LAMBDA (N) (EQ N 0)) **** SUB1 (LAMBDA (N) (SUB N 1)) **** ADD1 (LAMBDA (N) (ADD N 1)) **** SETQQ (NLAMBDA (ARGS) (SET (CAR ARGS) (CADR ARGS))) **** DEFMACRO (MACRO (X) (CONS (QUOTE DEFINEQ) (LIST (CADR X) (CONS (QUOTE MACRO) (CDDR X))))) **** PULL (MACRO (L) (LIST (QUOTE SETQ) (CADR L) (CONS (QUOTE CDR) (CDR L)))) Quote Link to comment Share on other sites More sharing options...
576XE Posted July 7, 2016 Share Posted July 7, 2016 I've checked many DOSes and can report that TOP-DOS 1.5 suprisingly is perfectly compartible with InterLISP/65! The second one is DOS 2.5 CP Quote Link to comment Share on other sites More sharing options...
drac030 Posted July 7, 2016 Share Posted July 7, 2016 And where is SpartaDOS X not compatible? Quote Link to comment Share on other sites More sharing options...
576XE Posted July 7, 2016 Share Posted July 7, 2016 Dear Konrad, I mean that I found that there are DOSes compartible from the box... I only said that I suprisingly noted that there are very complicated DOSes like TOP-DOS even with MyDOS type of file structure... (Someone said, but I'm doubt that they can work with MyDOS directories!) SDX is proved usable with your patch (As no one love LISP thus no one love patch!) And SDX, you said, will be patched in next version... Awaiting... Really I love SDX. (I still can't work in proper manner with it (Sorry! (LISP (Vodka...)))) No more powerful then SDX!!! PS I'd like to know your personal opinion about the role of Latinitsa in Polish. My opinion is that it is a very effective CONSERVANT of all Slavianian langs combining of Pronociation and the Writing. Due to this fact I can read (hardly) 'Slovo o Polku Igoreve' Dear 'Gerr Peter' was the first who castrate Russian, then was others. Sorry it's just curious. Good luck., Quote Link to comment Share on other sites More sharing options...
576XE Posted July 20, 2016 Share Posted July 20, 2016 By the way, Konrad, is it possible to add second semicolon after CAR:\; SET PATH=CAR:\;; ... into CARs CONFIG SYS by default in next SDX distributions? It will save a lot of nerves to programmers who needs subdirs for their programming. This trick only adds CURRENT subdir into search path... I think this behavior must be used by default. EZ Quote Link to comment Share on other sites More sharing options...
drac030 Posted July 20, 2016 Share Posted July 20, 2016 Perhaps I do not understand the problem, but the default value of $PATH does not prevent programs from being executed from subdirectories. It is set by default to PATH=CAR: This means that the CAR: directory will be searched before the current one. Quote Link to comment Share on other sites More sharing options...
576XE Posted July 20, 2016 Share Posted July 20, 2016 I just read somewhere in documentation about doubled semicolumns ... You know of course that if the word CAR is here it means that SDX concerned. I only want to say that SDX doesn't behave in the same convenient way as DR-DOS, PD-DOS, MS-DOS while reading PATH. Next again! I don't have any claims to SDX. I loved it for tons of Years. 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.