Dec 282017
 
XLisp-Plus version 2.1d of Lisp language. Includes all the sources, libraries, make files for different platforms, and a lot of sample Lisp programs. This version includes many of the Common Lisp features as well as an o
File XLISP21D.ZIP from The Programmer’s Corner in
Category Miscellaneous Language Source Code
XLisp-Plus version 2.1d of Lisp language. Includes all the sources, libraries, make files for different platforms, and a lot of sample Lisp programs. This version includes many of the Common Lisp features as well as an o
File Name File Size Zip Size Zip Type
BIN 0 0 stored
EMU387 33568 14716 deflated
XLISP.EXE 227774 99378 deflated
XLISPSML.EXE 91273 87767 deflated
DOCS 0 0 stored
CLDOC.PS 519335 82915 deflated
CLDOC.TXT 215905 49436 deflated
CLDOC.WP 252891 60047 deflated
LSP 0 0 stored
ACKERMAN.LSP 120 73 deflated
AKALAH.LSP 10218 2692 deflated
AKAVECT.LSP 10551 2876 deflated
ART.LSP 2455 903 deflated
BACKQUOT.LSP 1739 716 deflated
BLOCKS.LSP 5726 1445 deflated
CHANGE.LSP 613 281 deflated
CLASSES.LSP 6286 2133 deflated
COMMON.LSP 11094 3276 deflated
DRAGON.LSP 1285 597 deflated
EDIT.LSP 1586 520 deflated
EVALENV.LSP 1149 524 deflated
EXAMPLE.LSP 1717 793 deflated
FACT.LSP 77 56 deflated
FIB.LSP 213 111 deflated
GBLOCKS.LSP 11323 2823 deflated
HANOI.LSP 480 233 deflated
HDWR.LSP 9362 2148 deflated
IFTHEN.LSP 7088 1952 deflated
INFIX.LSP 2086 879 deflated
INIT.LSP 2684 1063 deflated
MATCH.LSP 2911 670 deflated
MATRIX.LSP 1213 491 deflated
PP.LSP 16146 4274 deflated
PROLOG.LSP 4405 1150 deflated
QA.LSP 38509 7742 deflated
QUEENS.LSP 1406 610 deflated
QUEENS2.LSP 2110 860 deflated
READ.ME 1839 876 deflated
REPAIR.LSP 16256 4367 deflated
SEARCH.LSP 5027 1114 deflated
SENDMACR.LSP 369 187 deflated
SORT.LSP 1605 684 deflated
STEP.LSP 4745 1525 deflated
STEPPER.DOC 4746 1834 deflated
STEPPER.LSP 9432 2448 deflated
TAK.LSP 177 97 deflated
TCONC.LSP 830 327 deflated
TURTLE.LSP 3886 1423 deflated
TURTLES.LSP 5024 1648 deflated
WILDCARD.LSP 1377 452 deflated
NDMAKE 0 0 stored
MAKE.DOC 53458 15546 deflated
MAKE.INI 2243 994 deflated
MAKE45.EXE 35979 20860 deflated
MAKE45L.EXE 47451 24487 deflated
README 3703 1588 deflated
TOUCH.DOC 1727 706 deflated
TOUCH.EXE 6561 4038 deflated
READ.ME 3515 1780 deflated
README.UPD 2485 1197 deflated
SOURCES 0 0 stored
AMIGASTU.C 8830 3034 deflated
DLDMEM.C 29294 7315 deflated
DLIMAGE.C 15580 4024 deflated
DOSSTUFF.C 28575 7341 deflated
GCCASM.S 5487 1305 deflated
GCCSTUFF.C 26229 7132 deflated
LONGJMP.ASM 1435 604 deflated
MAKEBOR 1221 555 deflated
MAKEBSD 506 310 deflated
MAKEGCC 1262 610 deflated
MAKEMET2 1169 576 deflated
MAKEMETA 1150 561 deflated
MAKEMSC 758 383 deflated
MAKESML 1162 517 deflated
MAKESYSV 504 313 deflated
MAKETURB 942 462 deflated
MAKEZ386 730 371 deflated
MAKEZORT 986 492 deflated
MAKEZX 766 385 deflated
METASTUF.C 25359 6763 deflated
OSDEFS.H 313 185 deflated
OSPTRS.H 483 244 deflated
PUTPATCH.C 8567 1973 deflated
READ.ME 1569 723 deflated
SYSTEM.ASM 2779 1093 deflated
UNIXSTUF.C 16866 5397 deflated
XLBFUN.C 19432 4105 deflated
XLCONT.C 37382 6576 deflated
XLDBUG.C 5423 1799 deflated
XLDMEM.C 22646 5810 deflated
XLDMEM.H 12552 3011 deflated
XLEVAL.C 27621 5160 deflated
XLFIO.C 29756 7355 deflated
XLFTAB.C 18097 4293 deflated
XLFTAB.H 5379 1742 deflated
XLGLOB.C 4590 1575 deflated
XLIMAGE.C 12751 3357 deflated
XLINIT.C 15056 4487 deflated
XLIO.C 6247 1484 deflated
XLISP.C 5810 2014 deflated
XLISP.H 38865 10566 deflated
XLISPTS.PR 815 305 deflated
XLJUMP.C 4476 1359 deflated
XLLIST.C 31315 6061 deflated
XLMATH.C 13246 2490 deflated
XLMATH2.C 45682 8683 deflated
XLOBJ.C 17632 4531 deflated
XLPP.C 3781 1115 deflated
XLPRIN.C 18230 4308 deflated
XLREAD.C 26245 6624 deflated
XLSEQ.C 47188 7765 deflated
XLSTR.C 13253 3031 deflated
XLSTRUCT.C 14166 3129 deflated
XLSUBR.C 10801 2591 deflated
XLSYM.C 8921 2316 deflated
XLSYS.C 18111 4713 deflated
SPAWNO 0 0 stored
MS 0 0 stored
SPAWNC.LIB 7680 4089 deflated
SPAWNL.LIB 7680 4151 deflated
SPAWNM.LIB 7680 4080 deflated
SPAWNS.LIB 7168 4012 deflated
SPAWNT.LIB 7168 3985 deflated
NOTICE 181 99 deflated
RBROWN.TXT 10173 4841 deflated
SPAWNENV.C 1365 632 deflated
SPAWNLE.C 999 456 deflated
SPAWNLO.C 571 277 deflated
SPAWNLPE.C 1328 562 deflated
SPAWNLPO.C 893 393 deflated
SPAWNO.DOC 7582 3144 deflated
SPAWNO.H 3086 992 deflated
SPAWNPTH.ASM 6948 2487 deflated
SPAWNVE.C 776 352 deflated
SPAWNVO.C 579 281 deflated
SPAWNVPE.C 1116 471 deflated
SPAWNVPO.C 889 412 deflated
TC 0 0 stored
SPAWNC.LIB 6656 3417 deflated
SPAWNL.LIB 6656 3472 deflated
SPAWNM.LIB 6656 3403 deflated
SPAWNS.LIB 6144 3340 deflated
SPAWNT.LIB 6144 3313 deflated

Download File XLISP21D.ZIP Here

Contents of the READ.ME file


Brief description of included files:

Utilities:
backquot.lspAdds working nested backquotes
classes.lsp*Useful functions for OOP
common.lsp*More Common Lisp compatible functions.
edit.lspAccess external editor on .lsp files
evalenv.lspEVAL in current lexical context
infix.lspRead macros for Infix to prefix converter (Winston and Horn)
init.lsp*Default initialization file
matrix.lspPoor implementation of multidimensional arrays
pp.lsp*Pretty printer
repair.lsp*Structure Editor
sendmacr.lspRead macros for "send" function
step.lsp*Simple single-step utility
stepper.lspMore advanced single-step utility
stepper.docDocumentation for stepper.lsp
turtle.lspTurtle graphics primitives, from PC-LISP

* Functions documented in manual

Examples:
ackerman.lspAckerman's function
akalah.lsp"Kalah" (stones&pits) game
akavect.lsp(same as akalah.lsp, but uses arrays rather than lists)
art.lspSimple OOP example
blocks.lspWinston & Horn's "Blocks world". Uses classes.lsp.
change.lspChange maker
dragon.lspDragon curve, originally from PC-Lisp. Uses turtle.lsp
example.lspSimple OOP example
fact.lspFactorial function
fib.lspFibinocci function (sorry for spelling)
gblocks.lspblocks.lsp, with graphic display
hanoi.lspTower of hannoi puzzle
hdwr.lspOOP example of hardware simulation
ifthen.lspMini expert system from Winston & Horn
match.lspPattern matcher from Winston & Horn
prolog.lspTiny Prolog interpreter
qa.lspQuestion Answering program
queens.lspQueens puzzle
queens2.lspQueens puzzle -- semi-graphical
search.lspSearching functions from Winston & Horn
sort.lspSorting routines
tak.lspI have no idea. Some non-trivial recursive function.
tconc.lsptconc implementation
turtles.lspOOP turtle graphics example.
wildcard.lspWildcard pattern matcher
This disk contains the XLISP files you requested. The files are in a
self extracting arj archive, xlisp21d.exe.

To differentiate this version from the original David Betz version,
this one is called XLISP-PLUS 2.1d. The alphabetic character will be
increased in future versions.

Go to the directory you wish to install xlisp, and run:

xlisp21d


Directory SOURCES:
Contains all source files. Consult the READ.ME file in that directory
for additional information.

Directory DOCS:
Contains one or more of the following:
CLDOC.WP-- WordPerfect 5.1 source for documentation
CLDOC.PS-- PostScript version of documentation
CLDOC.TXT-- ASCII version of documentation, requires
backspacing printer. For clear text, use an
editor and delete all backspace-underscore pairs.

Directory LSP:
Contains the .LSP files, including init.lsp which XLISP automatically
reads at startup.

Directory BIN:
Contains zero or more of the following executables:
XLISP.EXE-- Requires 80386 or 80486, and at least
1 megabyte of extended memory. Uses DJ Delorie's
port of the Gnu C compiler, and his DOS extender,
go32. Not compatible with DPMI, but is compatible
with VCPI and XMS. The compiler and DOS extender
are available from grape.ecs.clarkson.edu as djgpp.

EMU387-- 80387 emulator for above. To use, set environment
variable "set go32=emu c:/bin/emu387" assuming this
file is in c:\bin directory.

XLISPSML.EXE-- Runs on any generic IBM/PC or Clone. Compiled using
Borland C++ (as a C compiler), Ralf Brown's spawno
version 3.0 for nice SYSTEM function, and Fabrice
Bellard's lzexe to compact the executable.

Directory NDMAKE:
Either empty or contains version 4.5 of Don Kneller's NDMAKE, a shareware
make program. This was used for all the MS-DOS make files.

Directory SPAWNO:
Either empty or contains version 3.0 of Ralf Brown's SPAWNO, a freeware
"virtual memory" spawn function used in creating xlispsml.exe.


**********************

OTHER VERSIONS:

MS DOS: I am no longer building other versions (such as 80286, or
80x87 support for real mode).

MS Windows: There are references hinting of a Windows version. Yes,
that is coming someday. Meanwhile the work in this regard has
resulted in still more obscure bug fixes, some improved code, and
operation in medium memory model which is faster and more compact
than the old large model. Medium model is not available for all
compilers.

OS/2: Don't have this. There is an excellent chance that Microsoft C
will compile this as is if the GRAPHICS option is turned off.

OS/2 PM: Not likely.

AMIGA: Now supported (but I can't test it).

UNIX: Seems to work on BSD style systems, at least. Those with
ancient compilers may require some code/include file touchups.

Macintosh: Someone, somewhere has the *STUFF.C file for this. With
that file (which will need some hacking) there is no reason for it
not to work.

Others computers: I've tried to make the code as portable as
possible. You'll need to write a *STUFF.C file for your system. Also
read XLISP.H closely. All the 80x86'isms are, thank God,
conditionally included, so these won't get in the way.

C++: It won't compile, but you should be able to hack on the code a while
and get it to go. The ANSI C conversion work I've done should help you,
although I've only converted function headers as necessary to keep the
C compilers happy.


Tom Almy
[email protected]
This directory contains all the source files. All source files are used for
all compilers except as follows:

Metaware High-C 386:
METASTUF.Ccompiler dependent module
SYSTEM.ASMassembler routines
MAKEMETAmakefile V1.6
MAKEMET2Same but uses DLDMEM and DLIMAGE

Microsoft C:
DOSSTUFF.Ccompiler dependent module
MAKEMSCmakefile

Turbo C:
DOSSTUFF.Ccompiler dependent module
MAKETURBmakefile
MAKEBORmakefile for "Borland C++"
MAKESMLmakefile for distribution (medium model)

JPI TopSpeed C:
DOSSTUFF.Ccompiler dependent module
XLISPTS.PRproject file (medium model)

Zortech C:
DOSSTUFF.Ccompiler dependent module
ZTCSTUFF.Ccompiler dependent module -- 80386 protected mode
MAKEZORTmakefile
MAKEZXmakefile -- 80286 protected mode, uses DLDMEM and DLIMAGE
MAKEZ386makefile -- 80386 protected mode

UNIX:
UNIXSTUF.Ccompiler dependent module
MAKEBSDmakefile for BSD systems
MAKESYSVmakefile for SYS V systems

GNU C Compiler for MSDOS (DJ Delorie port)
GCCSTUFF.Ccompiler dependent module (see for limitations/bugs)
GCCASM.Sassembler routines
MAKEGCCmakefile

"Experimental" Dynamic Array Allocation (stolen from xscheme):
You can substitute these in any compilation. The medium model DOS
compilations require them.
DLDMEM.Creplacement for XLDMEM.C
DLIMAGE.Creplacement for XLIMAGE.C


Patching facility by Jeff Prothero
PUTPATCH.C


See XLISP.H for compilation options. In particular, all extensions that
I have added can be turned off.

Tom Almy
[email protected]
(503) 627-6188


Contents of the README file


Brief description of included files:

Utilities:
backquot.lspAdds working nested backquotes
classes.lsp*Useful functions for OOP
common.lsp*More Common Lisp compatible functions.
edit.lspAccess external editor on .lsp files
evalenv.lspEVAL in current lexical context
infix.lspRead macros for Infix to prefix converter (Winston and Horn)
init.lsp*Default initialization file
matrix.lspPoor implementation of multidimensional arrays
pp.lsp*Pretty printer
repair.lsp*Structure Editor
sendmacr.lspRead macros for "send" function
step.lsp*Simple single-step utility
stepper.lspMore advanced single-step utility
stepper.docDocumentation for stepper.lsp
turtle.lspTurtle graphics primitives, from PC-LISP

* Functions documented in manual

Examples:
ackerman.lspAckerman's function
akalah.lsp"Kalah" (stones&pits) game
akavect.lsp(same as akalah.lsp, but uses arrays rather than lists)
art.lspSimple OOP example
blocks.lspWinston & Horn's "Blocks world". Uses classes.lsp.
change.lspChange maker
dragon.lspDragon curve, originally from PC-Lisp. Uses turtle.lsp
example.lspSimple OOP example
fact.lspFactorial function
fib.lspFibinocci function (sorry for spelling)
gblocks.lspblocks.lsp, with graphic display
hanoi.lspTower of hannoi puzzle
hdwr.lspOOP example of hardware simulation
ifthen.lspMini expert system from Winston & Horn
match.lspPattern matcher from Winston & Horn
prolog.lspTiny Prolog interpreter
qa.lspQuestion Answering program
queens.lspQueens puzzle
queens2.lspQueens puzzle -- semi-graphical
search.lspSearching functions from Winston & Horn
sort.lspSorting routines
tak.lspI have no idea. Some non-trivial recursive function.
tconc.lsptconc implementation
turtles.lspOOP turtle graphics example.
wildcard.lspWildcard pattern matcher
This disk contains the XLISP files you requested. The files are in a
self extracting arj archive, xlisp21d.exe.

To differentiate this version from the original David Betz version,
this one is called XLISP-PLUS 2.1d. The alphabetic character will be
increased in future versions.

Go to the directory you wish to install xlisp, and run:

xlisp21d


Directory SOURCES:
Contains all source files. Consult the READ.ME file in that directory
for additional information.

Directory DOCS:
Contains one or more of the following:
CLDOC.WP-- WordPerfect 5.1 source for documentation
CLDOC.PS-- PostScript version of documentation
CLDOC.TXT-- ASCII version of documentation, requires
backspacing printer. For clear text, use an
editor and delete all backspace-underscore pairs.

Directory LSP:
Contains the .LSP files, including init.lsp which XLISP automatically
reads at startup.

Directory BIN:
Contains zero or more of the following executables:
XLISP.EXE-- Requires 80386 or 80486, and at least
1 megabyte of extended memory. Uses DJ Delorie's
port of the Gnu C compiler, and his DOS extender,
go32. Not compatible with DPMI, but is compatible
with VCPI and XMS. The compiler and DOS extender
are available from grape.ecs.clarkson.edu as djgpp.

EMU387-- 80387 emulator for above. To use, set environment
variable "set go32=emu c:/bin/emu387" assuming this
file is in c:\bin directory.

XLISPSML.EXE-- Runs on any generic IBM/PC or Clone. Compiled using
Borland C++ (as a C compiler), Ralf Brown's spawno
version 3.0 for nice SYSTEM function, and Fabrice
Bellard's lzexe to compact the executable.

Directory NDMAKE:
Either empty or contains version 4.5 of Don Kneller's NDMAKE, a shareware
make program. This was used for all the MS-DOS make files.

Directory SPAWNO:
Either empty or contains version 3.0 of Ralf Brown's SPAWNO, a freeware
"virtual memory" spawn function used in creating xlispsml.exe.


**********************

OTHER VERSIONS:

MS DOS: I am no longer building other versions (such as 80286, or
80x87 support for real mode).

MS Windows: There are references hinting of a Windows version. Yes,
that is coming someday. Meanwhile the work in this regard has
resulted in still more obscure bug fixes, some improved code, and
operation in medium memory model which is faster and more compact
than the old large model. Medium model is not available for all
compilers.

OS/2: Don't have this. There is an excellent chance that Microsoft C
will compile this as is if the GRAPHICS option is turned off.

OS/2 PM: Not likely.

AMIGA: Now supported (but I can't test it).

UNIX: Seems to work on BSD style systems, at least. Those with
ancient compilers may require some code/include file touchups.

Macintosh: Someone, somewhere has the *STUFF.C file for this. With
that file (which will need some hacking) there is no reason for it
not to work.

Others computers: I've tried to make the code as portable as
possible. You'll need to write a *STUFF.C file for your system. Also
read XLISP.H closely. All the 80x86'isms are, thank God,
conditionally included, so these won't get in the way.

C++: It won't compile, but you should be able to hack on the code a while
and get it to go. The ANSI C conversion work I've done should help you,
although I've only converted function headers as necessary to keep the
C compilers happy.


Tom Almy
[email protected]
This directory contains all the source files. All source files are used for
all compilers except as follows:

Metaware High-C 386:
METASTUF.Ccompiler dependent module
SYSTEM.ASMassembler routines
MAKEMETAmakefile V1.6
MAKEMET2Same but uses DLDMEM and DLIMAGE

Microsoft C:
DOSSTUFF.Ccompiler dependent module
MAKEMSCmakefile

Turbo C:
DOSSTUFF.Ccompiler dependent module
MAKETURBmakefile
MAKEBORmakefile for "Borland C++"
MAKESMLmakefile for distribution (medium model)

JPI TopSpeed C:
DOSSTUFF.Ccompiler dependent module
XLISPTS.PRproject file (medium model)

Zortech C:
DOSSTUFF.Ccompiler dependent module
ZTCSTUFF.Ccompiler dependent module -- 80386 protected mode
MAKEZORTmakefile
MAKEZXmakefile -- 80286 protected mode, uses DLDMEM and DLIMAGE
MAKEZ386makefile -- 80386 protected mode

UNIX:
UNIXSTUF.Ccompiler dependent module
MAKEBSDmakefile for BSD systems
MAKESYSVmakefile for SYS V systems

GNU C Compiler for MSDOS (DJ Delorie port)
GCCSTUFF.Ccompiler dependent module (see for limitations/bugs)
GCCASM.Sassembler routines
MAKEGCCmakefile

"Experimental" Dynamic Array Allocation (stolen from xscheme):
You can substitute these in any compilation. The medium model DOS
compilations require them.
DLDMEM.Creplacement for XLDMEM.C
DLIMAGE.Creplacement for XLIMAGE.C


Patching facility by Jeff Prothero
PUTPATCH.C


See XLISP.H for compilation options. In particular, all extensions that
I have added can be turned off.

Tom Almy
[email protected]
(503) 627-6188
NDMAKE version 4.5
------------------
Copyright (C) 1985, 1986 D. G. Kneller
All rights reserved.



This README file describes the differences between NDMAKE 4.3 (which
has been documented in MAKE.DOC) and NDMAKE 4.5, which is the newer
version but has not been completely documented.

Here are several NDMAKE executables, each slightly different. The release
version of NDMAKE is version 4.5. The executable is MAKE45.EXE.
A large model (1 Meg of data space) version of 4.5 has also been included
and is called MAKE45L.EXE. As the 4.5 version is relatively new and
involved a complete rewrite of NDMAKE's internals, the older version 4.3
is also included in case 4.5 turns out to be buggy.

In MAKE.DOC there are some references to a demo version of NDMAKE 4.3
called MAKE43D. This version no longer exists and the documentation
pretaining to it (marked with a | in the right column) can be ignored.



Changes from 4.3 to 4.5
------------------------
1) total rewrite of internals for 30 - 50 % more speed.
2) new features to macros:
- recursively defined macro *names*. For example:
LOBJS = Lmain.obj Lsub.obj
SOBJS = Smain.obj Ssub.obj
MODEL = L
OBJS = ${$(MODEL)OBJS}

and $(OBJS) will evaluate to $(LOBJS).

- string replacement in macros
For string replacement, the syntax for the macro is
"${name:s1=s2)". The macro "name" is evaluated and
occurrences of string "s1" are replaced with string
"s2". As an example:

XXOBJS = XXmain.obj XXsub.obj
MODEL = S
OBJS = $(XXOBJS:XX=${MODEL})

When $(OBJS) are referenced, the XX string will be
replaced with the ${MODEL} string. In this case
$(OBJS) will be "Smain.obj Ssub.obj".

Or you could have:

OBJS = main.obj sub.obj
SRCS = $(OBJS:.obj=.c)

In which case SRCS are "main.c sub.c".


Currently, the string replacement only works properly on
"simple" macro names, not on recursively defined names.

3) additional names are supported for automatic response files. Previously
NDMAKE would generate response files automatically only for commands
that were named "link" and "lib". Now it is possible to add other names
to the list of acceptable names. The special targets .RESPONSE_LINK and
.RESPONSE_LIB are a list of acceptable names for link and lib response
files, respectively. For example:

.RESPONSE_LINK:tlink link4
.RESPONSE_LIB:tlib

will cause NDMAKE to generate link response files for "link", "tlink"
and "link4", and lib response files for "lib" and "tlib". The response
files are formated for Microsoft "link" and "lib".

4) the comment character `#' is treated as does UNIX make -- in a
shell line, the comment character is passed. So:

target:
echo ### This will be echoed

Will produce:
### This will be echoed

To comment out a shell line, the comment character has to be the first
character in the line:

target:
#The next shell line has been commented out
#chmod +w target.exe
echo This is a command.

produces:
This is a command.

5) a longstanding bug in how command line macros are handled has been
fixed so something like:

MODEL = S

$(MODEL)main.obj: main.c
cl -A$(MODEL) -c main.c -Fo$(MODEL)main.obj

will compile main.c into Lmain.obj if make is invoked with:
C> make45 MODEL=L


PS. Please excuse my not having merged this readme into the general
MAKE.DOC. I have been working on MAKE50 which will have all the current
features and more as well as having new documentation.

Don


 December 28, 2017  Add comments

Leave a Reply