Pascal 8000


The information on this page is divided into two main sections.  The first section contains the instructions for restoring the compiler libraries and procedures to your system and will allow you to quickly be ready to submit source programs to the compiler.  The second section contains the steps I used to install the source archive (from the H390-MVS group) under Hercules/MVS on my system to build the libraries/procedures for the first section.  You only need to concern yourself with the second section if you wish to rebuild the compiler libraries/procedures from the source archive.

 

Installing the Pre-Generated Compiler Libraries, Procedures, and Test Jobs/Data

The archive containing my installation jobstreams, tape images, and documentation is available from this site by clicking on the link:  pascal8000.tgz [MD5: b10993fd7c551d62e0c59c1463ee27c4].  The archive contains:

pascal8000.het
A tape image created by IEHMOVE containing the datasets required to run the compiler.
pascal8000.pdf 
A formatted copy of the manual included on the original source tape (file #10).
pas8beer
Jobstream to execute both the compile and run and compile/link/go compilers using the
"99 bottles of beer" Pascal program source.
pas8procs
Jobstream to install procedures in SYS2.PROCLIB to execute the compiler.
reload
Jobstream to restore the contents of pascal8000.het MVS DASD.

Uncompress the archive (use the tar xvzf pascal8000.tgz command on Linux, or under CYGWIN; or use WinZip or ZipNAll on Windows/??).  The tape image should go into your tape image subdirectory, and the jobstreams should go into your JCL subdirectory.  In order to view the pdf, you will need a copy of Adobe Acrobat Reader.  The jobstreams were created under Windows, so the lines are terminated with x'0d0a'.

Prior to submitting the RELOAD jobstream, you must edit it and change the value of the VOL=SER= on each card tagged with +VOLSER+ in columns 64-71 to specify the Volume Serial of the target volume to which the datasets are to be restored.  The high level qualifier for the restored datasets is SYS2, but you may change it to better fit your configuration; however, if you change it you will also need to change the high level qualifier for all the dataset references in the procedures before submitting the PAS8PROCS jobstream.

Unless you have decided to change the high level qualifier of the compiler datasets, the PAS8PROCS jobstream should not require editing.  The target library for the procedures is SYS2.PROCLIB.  If you do not have SYS2.PROCLIB defined on your system, you must change the SYSUT2 DD in the PAS8PROCS jobstream to SYS1.PROCLIB.

When you have verified that the two installation jobstreams - reload and pas8procs - conform to your configuration, mount the pascal8000.het tape image on a tape device and submit the jobstreams to MVS for execution.  The reload job should take about one minute to execute and the return code expected for the single step is:

IEF142I IEHMOVE IEHMOVE - STEP WAS EXECUTED - COND CODE 0000

The pas8proc job should take less than one minute to execute and the return code expected for the step is:

IEF142I PAS8000P IEBUPDTE - STEP WAS EXECUTED - COND CODE 0000

There will be four procedures catalogued in your procedure library by the above job:

PAS8PAS Executes the compile and execute compiler (PASCALO from SYS2.PASCAL.PASLIB) and utilizes the two object datasets (SYS2.PASCAL.PASOBJ1, SYS2.PASCAL.PASOBJ2) and message dataset (SYS2.PASCAL.PASMSGS) to compile and immediately execute your Pascal source program.
PAS8C Executes the compile and link compiler (PASCALC from SYS2.PASCAL.PASLIB) and utilizes the message dataset (SYS2.PASCAL.PASMSGS) to compile your Pascal source program and generate a S/370 object code module.
PAS8CL Executes the same compiler as PAS8C, but also invokes the Linkage Editor to link the object module with called routines from SYS2.PASCAL.PASLIB (and SYS1.FORTLIB if certain mathematical functions are utilized in your source program) and produces a S/370 load module.
PAS8CLG Executes the compiler and Linkage Editor identically to PAS8CL, but also includes a step to execute the S/370 load module.

There is also a single card image placed in the Procedure Library under the member name PAS8CLCC that is used by the PAS8CL and PAS8CLG procedures to include a required library during the Linkage Editor step.  

When executing a load module created from a Pascal 8000 source program, there may be a requirement for a DD statement for LOCAL files.  This is described in the manual (pascal8000.pdf).  By using the technique found in the PAS8PAS and PAS8CLG procedures, you can code the JCL in such a way to have the system allocate the dataset without specifying a Volume Serial number:

//$LOCAL DD UNIT=SYSDA,SPACE=(TRK,0)
//LOCAL DD VOL=REF=*.$LOCAL,DISP=SHR

You must not code a Dataset Name parameter on the LOCAL DD!

There was no test job included on the source tape, so I have coded a source program for the "99 bottles of beer" program and the pas8beer jobstream executes both the PAS8PAS and PAS8CLG procedures utilizing that source.

You only need to read the following section if you want to know how I installed the original source tape and generated the Pascal 8000 compiler library and datasets.

 

Contents of the Original Source Tape and Generating the Compiler Libraries

The original source archive (from the Files section of the H390-MVS Yahoo group) contains an AWS tape image, LABEL=(,UL), that contains 21 files.  Files 11 through 20 are a duplication of files 1 through 10; file 21 is a duplicate of file 1.  The contents of files 1 through 10 are:

  1. Installation instructions and jobstream.
  2. PASCAL.PASLIB Partitioned Dataset unloaded with IEHMOVE.
  3. PASCAL.PASOBJ1 in packed format.
  4. PASCAL.PASOBJ2 in packed format.
  5. PASCAL.PASMSGS in packed format.
  6. Assembler source for PASCAL 8000.
  7. Pascal source for the compile-and-execute compiler.
  8. Pascal source for the compile-and-link compiler.
  9. Pascal source for a utility to edit/maintain Pascal source.
  10. Pascal 8000 manual.

I used an IEBGENER jobstream to punch the contents of file #1 - DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000).  I used a second IEBGENER jobstream to print the contents of file #10 - DCB=(RECFM=FBA,LRECL=81,BLKSIZE=2025).  I cleaned up some of the translation errors (ie. vertical bars), merged lines intended to overprint to produce underlining with the adjacent lines above, reformatted inline tables, and printed the resulting file into a PDF file.

I ran both the "Quick Install" jobstream and the "compile and assemble" jobstream to produce two sets of datasets.  Two test compiles using each set of datasets performed identically, although the resulting datasets were not absolutely identical.  The unloaded datasets included in the archive here are from the "compile and assemble" process, so the compiler has been built as much as possible from the source code, virtually ensuring that there have been no translation errors in the transporting of the contents of the source tape.

No changes were made to the installation jobstream, other than high level qualifier used for the datasets and the target Volume Serial number.

I utilized the procedure statements included in file #1 to create the jobstream to catalog the procedures that are included in the PAS8PROCS jobstream.


Updated 07/05/2013 

I recently received an email stating:

=======================================================
PASCAL 8000 - IBM 360/370 VERSION
     LINKAGE EDITOR VERSION

VERSION: 2.0
DATE:    JULY 27, 1980

ORIGINAL AUTHORS: TERUO HIKITA
(HITAC VERSION)   KIYOSHI ISHIHATA
                  (UNIVERSITY OF TOKYO)

CURRENT AUTHORS:  JEFFREY TOBIAS
(IBM VERSION)     GORDON COX
                  (AUSTRALIAN ATOMIC ENERGY COMM.)

CMS MODIFICATIONS: HAL PERKINS
                   (CORNELL UNIVERSITY)

IMPLEMENTATION LANGUAGE:  PASCAL 8000/370

COPYRIGHT (C) 1980, AUSTRALIAN ATOMIC ENERGY COMMISSION

DESCRIPTION:
-----------
THIS IS A PASCAL 8000 COMPILER DESIGNED TO EXECUTE ON
AN IBM SERIES 360 OR 370 COMPUTER (OR EQUIVALENT)
UNDER THE OPERATING SYSTEMS OS/MFT,OS/MVT,VS1,SYS,MVS,
AND CMS.
THE CODE PRODUCED BY THIS VERSION OF THE COMPILER CAN
BE PASSED THROUGH THE STANDARD IBM LINKAGE EDITOR.
=======================================================

I found this listing after my retirement recently. Didn't
want to just throw it away, so I transcribed it into text
file and checked (as much as possible) using pascal p5.
It's previous version (v. 1.2) can be found (an IBM tape
image) at your web site.
I believe someone can find it useful/interesting and at
least learn something of it - it's a nice piece of code
after all.

Regards,
Jan
I have examined the source attached to the email and, although I am far from an expert in knowledge of the Pascal 8000 language
and/or this compiler, the conclusion that I reached is that the source, as submitted, will not compile cleanly with the version
1.2 compiler under MVS 3.8j.  Also, the source is only for the compile-and-link version and does not include the compile-and-
execute version.  However, for the purpose of preserving this source, I am making the archive available for download from my
site at Pascal8k2.zip [MD5: 68f5a68fa393f62241a59b61cfe8558d].

I hope that you have found my instructions useful.  If you have questions that I can answer to help expand upon the information I have included here, please don't hesitate to send them to me:


Return to Site Home Page 


This page was last updated on January 17, 2015.