Jump to content
IGNORED

Datasoft INTER-LISP/65


UNIXcoffee928

Recommended Posts

I have been unable to find any reference material for INTER-LISP/65, aside from two mentions in Antic Magazine.

 

Does anyone have the manual and/or any documentation for this language?

 

Between the magazine articles, and the included source examples, I have enough to go on to make a usage document, BUT, I can't figure out how to source the LISP code into the interpreter. Meaning, how do you load a .LIS LISP source file into INTER-LISP/65? It uses a specific syntax that is CLOSE to BASIC, but I can't find any info on it, and the obvious tries failed.

 

Also, how does one escape from the Error Mode, aside from hitting "Reset"?

 

I have found a document that had a history of major LISP revisions over the years. It shows some of the coding differences amongst the variants, & it had enough to go on to get some code to run in the Datasoft INTER-LISP/65. After playing around with it, I thought that it would be fun to try writing some larger programs in it, since, unbelievably, it does support a lot of Atari specific features.

 

Additionally, a lot of the gripes expressed about it in the second Antic review should now be mute points, since the emulator runs way faster, and supports more RAM.

 

The nice thing about LISP is that you can write new commands for it. If it's any good in the emulator, I may do so, and bring it up to a higher compatibility level.

 

EDIT: I have included the separate LISP.COM file which you can drop into any DOS. The REVISED text file is specific to just this file, while the original text file is specific to the whole .atr file. It contains the two Antic Magazine Articles, the beginnings of a command list (from the Antic article & source files), a hex dump of the LISP.COM file, and a disassembly of the file.

 

You will find manuals & other info for the Original implementation of INTER-LISP here.

 

 

Any info is appreciated.

 

 

L8R,

 

UNIXcoffee928

Inter_Lisp_2.1_HEX_DUMP.txt

LISP_Hopl2.pdf

Inter_Lisp_2.1.zip

Inter_Lisp_2.1_HEX_DUMP_REVISED.txt

LISP_COM.zip

Edited by UNIXcoffee928
  • Like 1
Link to comment
Share on other sites

OK...

 

After going through the hex-dumps & comparing keywords to the articles, I've built up a fairly accurate command list for the INTERLISP language on the Atari. I've tested some of the commands, and they are noted in the usage column, with known good invocations.

 

You'll find it listed below, and the same will be in an attached text file. I'll update this as I go along, testing each command. For now, here's something to play around with, if you're curious about the language. The attachment has a nicer format.

 

 

===============================================================================
INTERLISP LANGUAGE  USAGE
===============================================================================
#                   (equivalent to NUMBERP)
>                   (GREATERP)
'                   (cons ’a ’b) --->produces (A . B) the syntactic abbreviation (quote x)
(
)                   
*                   (* 8 4)
/                   (/ 8 4)
+                   (+ 8 4)  or (+ a (+ b (+ c)))
AND                 (AND T T) or (AND 1 1) for true
APPEND
APPLY
ASSOC
ATOM
BACKTRACE           (BAKTRACE) Used in error mode
BREAK
CAR
CDR
CLOSE
COL
COND
CONS                (cons (quote a) (quote b)) --->produces (A . B)
DEFINE
DEFINEQ
DIR                 (DIR) or (DIR . D1:)
DRAW
EQ
EVAL                To call a value set with SETQ (EVAL X)
EXP
GET
GO
GR
IN#
INT
LAMBDA
LAST
LENGTH
LIST
LOAD
LOG
MACRO
MEM                 (MEM) reports 16022 with all RAM settings... not good.
MEMBER
NEW
NIL
NLAMBDA
NOTE
NSUBR
OBLIST
OPEN
OR                  (OR F F) or (OR 0 0) for false
PACK
PAGE
PEEK
PLOT                (PLOT 7 7)
POINT
POKE                (POKE 77 127)
PR#
PRIN1
PRIN2
PRINT
PROG
PROGN
QUOTE               (QUOTE "HELLO WORLD")
READ
READA
READC
RESET               (RESET) clears whatever was set with SETQ
RETURN
RPLACA
RPLACD
SAVE
SET
SETCOL              
SETQ                (SETQ X '10) sets X as 10, to call it in immediatte mode type X on a line, to call it in a program: (EVAL X)
SOUND
STICK               (STICK)
STRIG
SUB                 (SUB 8 4)
SUBR
T
TAB                 (TAB 10)
TERPRI
UNPACK
XIO

===============================================================================
Edit Commands: NOTE: Editor must be loaded to use these commands.
===============================================================================
EDIT 
E 
EF 
H 
L 
S 
C 
X 
PASTE 
EQUAL 
GETCMD 
MAPCAR 
COMMANDS 
PSET 
SETP 
R 
A 
D 
B 
LI 
RE 
CONZ 
PRE 
I 
DEL 
G 
PP 
P 
PPRINT 
PPAUX 
MULTARGS 
PPARGS 
TABRET 
FORMATS 
LPAR 
BLANK 
RPAR 
LINE-WIDTH 
NCONC 
PU 
LOCK 
UNLOCK 
GETLST

===============================================================================
MACLISP add-on Commands: NOTE: MACLISP must be loaded to use these commands.
===============================================================================
FUNCALL 
DEFPROP 
PUTPROP 
NCONC 
GET 
MAPCAR 
EQUAL
DELETE 
SUBST
REVERSE
REMPROP 
CONZ
GENSYM 
DEFUN 
MACFNS



===============================================================================
CLISP add-on Commands: NOTE: CLISP must be loaded to use these commands.
===============================================================================
CLISP 
TRANSLATE 
WEIGHT 
OPCODE






 

 

 

INTERLISP_Commands.txt

Edited by UNIXcoffee928
Link to comment
Share on other sites

I remember messing with Interlisp a long time ago. I had found a book on Lisp somewhere, and was trying to teach myself the language... but I didn't have any docs for Interlisp, and couldn't make it past about chapter 2 or 3 of the book because Interlisp doesn't have "defun" (define function). Years later, someone told me it was possible to define "defun" in terms of lower-level operations (I think he mentioned "lambda", which I see in your list).

 

Have you gotten any of the Atari-specific graphics stuff working yet? Would be curious to know whether they're faster than BASIC's graphics commands...

Link to comment
Share on other sites

I've documented Datasoft InterLISP for Atari in the old AtariWiki. The Articles have not been migrated to the new server so far. I also have scans of the original INTERLISP Manuals. I'll see that I upload this stuff later this week.

 

Carsten

  • Like 1
Link to comment
Share on other sites

That would be great if you could post all of the documentation, including the scans!

 

From what I have seen, it seems at least as fast as ATARI BASIC. If anyone has suggestions about making a POKED M/L benchmark program, that would be cool (since it would be easily ported between the two languages... I'd say that it should test each command while consulting a system timer, and write a log file, appending each command test with a start & stop timestamp, or total amount of units of a second. After the benchmark was run in both LISP & BASIC, comparisons could be drawn from the elapsed time in the timestamps. This would be a pretty good generic benchmarking program for the Atari for any language, actually.).

 

The ATARI specific commands that I've gotten to work are noted. If there's a description under 'USAGE', then you will see a known good invocation of the command.

 

Take a look at DEFINEQ to make new commands.

 

Well, it's been fun hacking away at INTERLISP to discover it's secrets. For the mean time, until we can get some real documentation, here's the current results of my testing:

 

 

===============================================================================
INTERLISP LANGUAGE  USAGE
===============================================================================
#                   (equivalent to NUMBERP)
>                   (GREATERP)
'                   (cons ’a ’b) --->produces (A . B) the syntactic abbreviation (quote x)
(                   OPEN PARENS
)                   CLOSE PARENS
*                   (* 8 4)
/                   (/ 8 4)
+                   (+ 8 4)  or (+ a (+ b (+ c)))
AND                 (AND T T) or (AND 1 1) for true
APPEND
APPLY
ASSOC
ATOM
BACKTRACE           (BAKTRACE) Used in error mode to trace
BREAK
CAR
CDR
CLOSE
COL
COND
CONS                (cons (quote a) (quote b)) --->produces (A . B)
DEFINE
DEFINEQ             (DEFINEQ LS '(LAMBDA NIL (DIR)))   ---> creates the command 'ls' to be used as (LS), thus providing a disk directory for the default drive.
DIR                 (DIR) or (DIR . D1:)
DRAW                (DRAW 10 10)
EQ                  (EQ 3 3) --> TRUE  (EQ 3 3.0)  --> FALSE  NOTE: (EQ 3 3.0)  --> TRUE (does not distinguish floating point difference)
EVAL                To call a value set with SETQ (EVAL X)
EXP
GET
GO
GR
IN#
INT                 (INT -4.5) --> -5  Rounds to integer
LAMBDA
LAST
LENGTH
LIST
LOAD
LOG                 (LOG 100)
MACRO
MEM                 (MEM) reports 16022 with all RAM settings... not good... can someone get around this?
MEMBER
NEW
NIL
NLAMBDA
NOTE                BASIC I/O
NSUBR
OBLIST
OPEN                BASIC I/O
OR                  (OR F F) or (OR 0 0) for false
PACK
PAGE
PEEK                (PEEK 755)
PLOT                (PLOT 7 7)
POINT               BASIC I/O (POINT 0 0) --->  146 *WHAT DOES THIS DO?*
POKE                (POKE 77 127)
PR#
PRIN1
PRIN2
PRINT
PROG
PROGN
QUOTE               (QUOTE "HELLO WORLD")
READ
READA
READC
RESET               (RESET) clears whatever was set with SETQ
RETURN
RPLACA
RPLACD
SAVE
SET
SETCOL              (SETCOL 1 15 15)
SETQ                (SETQ X '10) sets X as 10, to call it in immediate mode type X on a line, to call it in a program: (EVAL X)
SOUND               (SOUND 0 0 0 0)
STICK               (STICK)
STRIG               (STRIG 0)
SUB                 (SUB 8 4)
SUBR
T
TAB                 (TAB 10)
TERPRI              (TERPRI) TERminate PRInt line. To output a newline. The TERPRI function prints a new-line to the specified <destination>. This will terminate the current print line for <destination>. NIL is always returned as the result. The <destination> may be a file pointer or a stream. If there is no <destination>, *STANDARD-OUTPUT* is the default.
UNPACK
XIO



===============================================================================
Edit Commands: NOTE: Editor must be loaded to use these commands.
===============================================================================
EDIT 
E 
EF 
H 
L 
S 
C 
X 
PASTE 
EQUAL 
GETCMD 
MAPCAR 
COMMANDS 
PSET 
SETP 
R 
A 
D 
B 
LI 
RE 
CONZ 
PRE 
I 
DEL 
G 
PP 
P 
PPRINT 
PPAUX 
MULTARGS 
PPARGS 
TABRET 
FORMATS 
LPAR 
BLANK 
RPAR 
LINE-WIDTH 
NCONC 
PU 
LOCK 
UNLOCK 
GETLST

===============================================================================
MACLISP add-on Commands: NOTE: MACLISP must be loaded to use these commands.
===============================================================================
FUNCALL 
DEFPROP 
PUTPROP 
NCONC 
GET 
MAPCAR 
EQUAL
DELETE 
SUBST
REVERSE
REMPROP
CONZ
GENSYM 
DEFUN 
MACFNS



===============================================================================
CLISP add-on Commands: NOTE: CLISP must be loaded to use these commands.
===============================================================================
CLISP 
TRANSLATE 
WEIGHT 
OPCODE

INTERLISP_Commands.txt

Link to comment
Share on other sites

I still have not been able to suss out how to LOAD or SAVE a file. I have tried A LOT of different combinations to no avail.

 

Judging from the example source of EDIT.LIS it seems that it should be just:

 

(LOAD filename)

 

 

Based on this code snippet:


(DEFINEQ L 
          '(LAMBDA NIL
          ((LAMBDA (FILE)
				 (PROGN (LOAD FILE)
				 (PRIN1 (QUOTE "Loaded--> ")) 
				 (PRINT (EVAL FILE)))) 
				 (GETCMD (QUOTE "File> "))))


)

 

 

Soooo... it either uses some very twisted syntax other than this, or it may be possible that the two dists of the software (version 2.1) that are floating around on the web are LOAD & SAVE disabled demos...

 

!!!

 

Which would really piss me off after trying a lot of combinations....

 

Anyone have an .atr that they have made from a known good disk, just to be sure that this isn't the case?

 

Current INTERLISP Command List:

===============================================================================
INTERLISP LANGUAGE  USAGE
===============================================================================
#                   (equivalent to LISP NUMBERP)
>                   (equivalent to LISP GREATERP)
'                   (cons ’a ’b) ---> produces (A . B) the syntactic abbreviation (quote x)
(                   OPEN PARENS
)                   CLOSE PARENS
*                   (* 8 4)
/                   (/ 8 4)
+                   (+ 8 4)  or (+ a (+ b (+ c)))
AND                 (AND T T) or (AND 1 1) for true
APPEND              ****************** probably adds to an existing file, if not adds to an existing list
APPLY               ******************
ASSOC               ******************
ATOM                ******************
BACKTRACE           (BAKTRACE) Used in error mode to trace
BREAK               ******************
CAR                 ******************
CDR                 ******************
CLOSE               ****************** BASIC I/O
COL                 ****************** BASIC COLOR - To set the color # for PLOT or DRAW
COND                ****************** Sets up a conditional statement, like if-then-else
CONS                (cons (quote a) (quote b)) ---> produces (A . B)
DEFINE              ******************
DEFINEQ             (DEFINEQ LS '(LAMBDA NIL (DIR)))   ---> creates the command 'ls' to be used as (LS), thus providing a disk directory for the default drive.
DIR                 (DIR) or (DIR . D1:)
DRAW                (DRAW 10 10)
EQ                  (EQ 3 3) --> TRUE  (EQ 3 3.0)  --> FALSE  NOTE: (EQ 3 3.0)  --> TRUE (does not distinguish floating point difference)
EVAL                To call a value set with SETQ (EVAL X)
EXP                 (EXP 3) --> 20.0855365 same as BASIC
GET                 ******************
GO                  ******************
GR                  (GR 23)
IN#                 ******************
INT                 (INT -4.5) --> -5  Rounds to integer
LAMBDA              ******************
LAST                ******************
LENGTH              ******************
LIST                ******************
LOAD                ****************** to load a file. can't figure out syntax of command yet
LOG                 (LOG 100)
MACRO
MEM                 (MEM) reports 16022 with all RAM settings... not good.
MEMBER              ****************** probably member of a list
NEW                 ****************** not the same as BASIC
NIL                 FALSE
NLAMBDA             ******************
NOTE                ****************** BASIC I/O
NSUBR               ******************
OBLIST              ****************** guessing object list
OPEN                ****************** BASIC I/O
OR                  (OR F F) or (OR 0 0) for false
PACK                ****************** think its pack all of the atoms, check
PAGE                ******************
PEEK                (PEEK 755)
PLOT                (PLOT 7 7)
POINT               ****************** BASIC I/O (POINT 0 0) --->  146  (might be the error # fro undefined handler function)
POKE                (POKE 77 127)
PR#                 ****************** might be BASIC PRINT# command like ?#7
PRIN1               ******************
PRIN2               ******************
PRINT               ******************
PROG                ******************
PROGN               ****************** Seems to execute a command, as in  (PROGN (DIR))
QUOTE               (QUOTE "HELLO WORLD") ---> HELLO WORLD   same as '
READ                ******************
READA               ******************
READC               ******************
RESET               (RESET) clears whatever was set with SETQ
RETURN              ****************** seems to b used to return from a subroutine, maybe like gosub
RPLACA              ******************
RPLACD              ******************
SAVE                ****************** to save a file. can't figure out syntax of command yet
SET                 ******************
SETCOL              (SETCOL 1 15 15)
SETQ                (SETQ X '10) sets X as 10, to call it in immediate mode type X on a line, to call it in a program: (EVAL X)
SOUND               (SOUND 0 0 0 0)
STICK               (STICK)
STRIG               (STRIG 0)
SUB                 (SUB 8 4)
SUBR                ****************** probably initiatiates a subroutine
T                   TRUE
TAB                 (TAB 10)
TERPRI              (TERPRI) TERminate PRInt line. To output a newline. The TERPRI function prints a new-line to the specified <destination>. This will terminate the current print line for <destination>. NIL is always returned as the result. The <destination> may be a file pointer or a stream. If there is no <destination>, *STANDARD-OUTPUT* is the default.
UNPACK              ****************** think its unpack all of the atoms, check
XIO                 ****************** BASIC I/O



===============================================================================
Edit Commands: NOTE: Editor must be loaded to use these commands.
===============================================================================
EDIT 
E 
EF 
H 
L 
S 
C 
X 
PASTE 
EQUAL 
GETCMD 
MAPCAR 
COMMANDS 
PSET 
SETP 
R 
A 
D 
B 
LI 
RE 
CONZ 
PRE 
I 
DEL 
G 
PP 
P 
PPRINT 
PPAUX 
MULTARGS 
PPARGS 
TABRET 
FORMATS 
LPAR 
BLANK 
RPAR 
LINE-WIDTH 
NCONC 
PU 
LOCK 
UNLOCK 
GETLST

===============================================================================
MACLISP add-on Commands: NOTE: MACLISP must be loaded to use these commands.
===============================================================================
FUNCALL 
DEFPROP 
PUTPROP 
NCONC 
GET 
MAPCAR 
EQUAL
DELETE 
SUBST
REVERSE
REMPROP
CONZ
GENSYM 
DEFUN 
MACFNS



===============================================================================
CLISP add-on Commands: NOTE: CLISP must be loaded to use these commands.
===============================================================================
CLISP 
TRANSLATE 
WEIGHT 
OPCODE






 

 

 

Looking forward to the docs on this one.

 

 

L8R,

 

UNIXcoffee928

INTERLISP_Commands.txt

Link to comment
Share on other sites

Ha, I found out why it's called "INTER-LISP/65"... Going through some ancient manuals, I ran across a reference to INTERLISP-10...

 

"INTERLISP-10, the original implementation for the DEC PDP-10" (under the TENEX OS).

 

So, I would gather that the /65 is a reference to 6502, as it is certainly not 1965, since the LISP variant 'INTERLISP' (AKA "INTER-LISP") first debuted in 1967. It's heritage is from BBNLISP.

 

This leads me to presume that there may have been very similar ports to APPLE or other 6502 based systems from this company.

 

There is some neat history on this wiki talk page.

 

It is very cool to know that this was a major part of the early Xerox PARC workstations, and interesting to find out that it came from BBN, initially.

 

Up until I had embarked on this INTERLISP project, I had been under the impression that the Infocom Z-machine had been the first virtual machine. Great history of Zork here. As it seems, INTERLISP had the Z-machine beat by a few years* in the VM department.

 

*[MOO79]Moore II, J.S.: The InterLISP Virtual Machine Specification, Xerox PARC, Comp. Sc. Lab., CSL 76-5, Palo lto, Sep. 1976, rvsd. March 1979

 

It seems that INTERLISP was hugely utilized, judging from a find search in this bibliography.

 

I ran across the manual for the minicomputer versions of INTERLISP in HTML form, I'll make it into a .pdf & post it. Datasoft's INTER-LISP/65 variant is a tiny microcosm of what the language specs for the larger machines covered. As mentioned, though, any command can be created at will, so it is completely possible to write code libraries that could use any of the info in the manual.

 

 

L8R,

 

UNIXcoffee928

Link to comment
Share on other sites

I still have not been able to suss out how to LOAD or SAVE a file. I have tried A LOT of different combinations to no avail.

 

Judging from the example source of EDIT.LIS it seems that it should be just:

 

(LOAD filename)

 

I have now uploaded my previous wiki content to the new Wiki at http://atariwiki.strotmann.de/xwiki/bin/view/APG/InterLisp65

 

I uploaded laso your Command Overview, because it is already much more complete then my was.

 

Loading a file should work with

 

(LOAD 'D:filename)

 

for literal filenames or

 

(LOAD filename)

 

of filename is a variable.

 

You are invited to help documenting InterLISP/65 in the Wiki, if you like.

 

Best regards

 

Carsten

Link to comment
Share on other sites

Thank you sooo much, Cas!!!

 

Well, the ' char was one thing that I didn't try!

 

 

Now I can REALLY start hacking this thing.

 

I didn't see the manual scans on the wiki... really looking forward to going through those.

 

 

As for now, though, I'm incredibly psyched that I can finally LOAD & SAVE!

 

Cool. I'll report my findings on the editor, now that I can use it.

 

Oh, yeah, you should note on your page that the .LIS extension is not used when LOADING, that it's just the straight filename in the LOAD command.

 

 

L8R,

 

UNIXcoffee928

Link to comment
Share on other sites

  • 3 years later...

Nice! Thank you very much!

 

The manual refers to compatibility with the 2nd Edition Winston & Horn LISP book, stating that the examples in the book will work. The 3rd edition of the book is available here.

 

There is also a surprising amount of INTERLISPstuff on Amazon.

 

Finally, if you ever wondered what it was like to use a PDP-10, running TOPS-20, you can get an account on one, here. This particular machine has the infamous MDL programming language! That's right, the language that Zork was originally programmed in is supposed to be there! The PDP-10 was a very popular machine in the classical years of AI, and was the system where some of the biggest advances in Artificial Intelligence, Robotics, and Human-Computer Interaction happened. There is a short wait period, to be approved for an account... I just got my account, & will be trying it out shortly... It will be so cool, like a Time-Machine, to be logging into a system like that! I'm pretty stoked.

Edited by UNIXcoffee928
Link to comment
Share on other sites

The manual refers to compatibility with the 2nd Edition Winston & Horn LISP book, stating that the examples in the book will work.

I'm sorry,UNIXcoffee928

 

As I remember 1-st edition of "W & H LISP" concearned MACLISP, 2-nd - don't remember, something about ANSI LISP and the third concearned CommonLISP.

I have pdf from rare 1st Edition Winston & Horn LISP, but it's size about 13 Mb and so it can't be uploaded as attachment, so sorry.

Also very impressive book is onLISP by Paul Graham.

 

Regards

Link to comment
Share on other sites

This is a sample of 80-col output of prettyprinting in iLisp. (Omniview in emulator.)

 

So sorry that it's impossible to have a structured LISP editing in our Atari-8.

Good news: I found that ver 2.1 works in Sparta 3.3 environment.

post-20208-0-54848900-1314124594_thumb.png

  • Like 1
Link to comment
Share on other sites

The manual refers to compatibility with the 2nd Edition Winston & Horn LISP book, stating that the examples in the book will work.

I'm sorry,UNIXcoffee928

 

As I remember 1-st edition of "W & H LISP" concearned MACLISP, 2-nd - don't remember, something about ANSI LISP and the third concearned CommonLISP.

I have pdf from rare 1st Edition Winston & Horn LISP, but it's size about 13 Mb and so it can't be uploaded as attachment, so sorry.

Also very impressive book is onLISP by Paul Graham.

 

Regards

 

Oh, that's easy, just host it at www.megaupload.com, then post the download link here.

 

After going through the manual, I've got to say that INTER-LISP has the best ERROR message that I've ever seen, in fact it is so good that the ERROR message should be ported to all languages, lol, it reads:

 

ERROR 6: "ATOMIC ERROR"

 

hahaha!

 

 

Edited by UNIXcoffee928
Link to comment
Share on other sites

I have a copy of the ultrarare Inter-LISP issued by Datasoft in 1981 with manual (sorry, I won't scan the manual) and folder. Whoever is interested in purchasing this gem pm me with a good money offer.

I'm sure that you didn't mean to be insulting by posting this, right?

 

First of all, it's the 1981 version. Second of all, you saw all of the work that I did to try to provide the commands to the Atari community... for free. Really, the least you could do is to scan the manual, and post it for the community. The phrase "a good money offer", and the use of "ultrarare" really are not very appropriate in a LISP-oriented thread... Do you know why this is?

 

 

  • Like 2
Link to comment
Share on other sites

This is a sample of 80-col output of prettyprinting in iLisp. (Omniview in emulator.)

 

So sorry that it's impossible to have a structured LISP editing in our Atari-8.

Good news: I found that ver 2.1 works in Sparta 3.3 environment.

Looks good... I'm wondering if it will do that with the Bit3 Fullview 80 card on the 800, but it states that the language needs 48K in the INTER-LISP manual, and I haven't upped the RAM in my 800 since I added the 80 column card, so I'm at 32K, temporarily, and can't test it right now.

 

 

 

Link to comment
Share on other sites

2UNIXcoffee928

Thank you for instructions.

 

About ATOMIC ERROR ... :cool:

It's about accidental nuclear attack.

This is footprints of Cold War of course ... :)

 

May be someone find this useful: LISP books

It's little collection of famous LISP books.

 

I'v tried investigating 80-cols mode in VBXE and AustinFranklin 80 emulation, but still unsuccessfully. So pity. These sweet color letters...

Link to comment
Share on other sites

Really, the least you could do is to scan the manual, and post it for the community.

 

Really?

 

In case you didn't notice: The manual contains a statement that explicitly forbids reproduction and spreading. You got the point?

 

well, alot of this stuff has 'do not copy' statements, and other implications of such on them.

 

maybe trying to contact DataSoft, and ask permission to make a scan of it? you should have their contact info on the manual.

 

 

sloopy.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...