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 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
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
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