PCQ Pascal Compiler Copyright (c) 1989 Patrick Quaid. This is a slow Pascal sub-set compiler that produces assembly language code, which can then be compiled into executable programs. Read Pascal.DOC for details. The rest of the files in this archive are: ReadMe.PCQ This file. Pascal The compiler. PCQ.lib The run time library Pascal.DOC Documentation. Make A simple batch file that compiles, assembles and links a simple program. It uses T:, so you might want to assign T: to something like ram: or rad:. Small.lib The library vector offsets of all the system routines. This was put together by Matt Dillon. The following four files might not have been included in the archive. I hope they were, but in any case all of the rest of the files must be. If some are missing, write to me at the address at the bottom of this file to get a full version. Blink Software Distillery's linker. Blink.DOC Documentation for that A68k Charlie Gibbs' assembler A68k.DOC Documentation for the assembler The following programs ending in .p are examples of various PCQ features. They aren't worth much by themselves, but they show a bit of what PCQ can do. ChopCL.p Uses the command line and separate compilation. ChopTest.p Runs the above through its paces. Copy.p A very simple copy program. MapMaker.p Another scenery generator. Moire.p Shows the use of Intuition, Graphics, and Exec from PCQ. Nests.p Shows nested procedures and scopes. RealIO.p Readin' and writin' real numbers. Snow.p Draws a fractal snowflake, and uses real math. Structures.p Demonstrates (not very) complex data objects. Typer.p Ultra simple type program. WhereFrom.p Demonstrates use of DOS functions. The files ending in .i are include files that define the interfaces to the system. They are explained more fully in the files themselves. Note that the example programs above expect these files to be in a subdirectory called "include". If this is a problem, change the include statements in the example programs. DOS.i All the DOS routines and a couple of structures. Exec.i Exec library and memory routines. ExecIO.i For system IO. You know, DoIO() and that lot. Ports.i The structures and functions for messages and ports. Intuition.i Mainly window and screen stuff so far. Graphics.i Most of the drawing things, but no blitter stuff. StringLib.i Very few routines for using strings in PCQ. As you will see if you look through the include files, they are not at all complete. Perhaps they will be in the next version.... You might find, perhaps in a separate directory, the source code for the compiler. The files have the following names: Main.p The main program, of course. Calls.p A few code generation routines. IO.p Handles input and output of the compiler. Statements.p General statement parsing routines. Declarations.p Variable, constant, and type declarations. Stanprocs.p Handles write(), writeln(), read(), etc. Stanfuncs.p Standard functions like abs(), ord(), etc. Expression.p Parses all expressions. Initialize.p Initializes the various tables. Utilities.p Adds to and searches around the above mentioned tables. Pasvar.i An include file that declares the variables. Pastype.i An include file that declares the types. Pasconst.i An include file that defines the constants. makeall This is a batch file that compiles the above files using Pascal to create a compiler called Pascal2. It takes, roughly speaking, forever. Pas2.w A "with" file for Blink used in makeall. There might also be a directory with the source to the run time library. If so, the files will all end with ".asm", and will include something called Explanation.txt, which describes the layout of the files in general terms. The rest of the files are too numerous to mention, but if you run across about two dozen assembly files, you've found them. The source files all use tab characters rather than spaces. If these tabs are not expanded to eight spaces, as they are with the AmigaDOS "type" command, the indentation of all the programs will look pretty odd. As far as I know, the AmigaDOS editor "Ed" will NOT properly handle the tabs. If you got an incomplete version or have any questions, write to me at: Pat Quaid 8320 E. Redwing Scottsdale, AZ 85253 The documentation, compiler, run time library, and source code for the compiler and run time library are all copyrighted by me, but feel free to distribute complete copies of this archive.