• Please review our updated Terms and Rules here

DECUS Tape with DECUS C and other C compilers

@Terri Kennedy see post #31.

Good idea about using VMS...

Dave
Edited: While waiting for a multi-hour disk rebuild...

A rather grueling process to end up as a PDF loses a lot of line formatting. I'm trying to find a better converter, so consider this PDF provisional. I'm also attaching the file in vanilla .txt formatting:
 

Attachments

Last edited:
Here a short update. With great support from Ian I managed to build and install DECUS C as in 11sp68 on RT-11 and I'm able to compile and assemble the RQDX3 sources. In fact, once you now how to do it it is not as complicated as thought at start. And with simh and fast computers nowadays the whole process takes minutes rather than hours. I have been using RT-11 V5.7 and the CPU set in simh was a PDP-11/93. The reason for the latter is simple, when booting RT5.7 it takes date and time from the host here a short list of bullet points
Code:
Short description of DECUS C Installation

1. First all files from the distribution disks are copied to a RL02 volume

    http://www.kpxx.ru/DEC/PDP-11/Software/Langs/C/Decus/11sp68

    11sp68.dsk    is a disk image of diskimages that make the distribution
    
    501.DSK
    502.DSK
    503.DSK
    504.DSK
    505.DSK
    506.DSK
    507.DSK
    601.DSK
    602.DSK
    603.DSK
    604.DSK
    606.DSK

2. All T*.COM RT-11 Build files are copied to the host directory TBUILDORG and
then a copy of them is made in TBUILD where I made changes to them according to
the disk assignements of my emulated PDP-11 and then copy them back to
a dedicated RL02 image (DL3:) from which I invoke them

3. As written in TBUILD.COM we do not use TBUILD.COM but call the command files
individually, but first we edit them to reflect the correct disk assignements

    ASSIGN DL1: SR:
    ASSIGN DL2: OB:
    ASSIGN DL2: LS:
    ASSIGN DL2: MP:
    ASSIGN DL2: OU:

4. They are copied to a dedicated RL02 image in order not to touch the DECUS C
distribution

5. Build C
    @DL3:TMAKCC

6. Build AS
    @DL3:TMAKAS

7. Build LB, as I have some issues with this command file, inline data of nested
command files terminate the command file, I call the sections individually,
assuming the disk assignements have been made we just call the two command files
    @SR:TCLBAS.COM
    @SR:TILBAS.COM
Note we build the libraries without EIS but SXT and SOB support as the goal is to
compile the RQDX3 sources which uses a DCT11 as the processor, we use the original
command files from the distribution, they are agnostic to our environment
and then we execute the rest from TMAKLB manually

8. We do not build the tools and other stuff that follows in TBUILD.COM as we do
not need it

9. Now we can change the environment to rqdx3 and compile the sources

    @DL3:RQDX3
    
10. Currently this will produce some error messages we can ignore for the moment

    ?LINK-W-Multiple definition of MAIN 
    ?LINK-W-Multiple definition of START
    ?LINK-W-Undefined globals:
    $$MAIN
    FORMAT
    T$POWE
 
Here a short update. With great support from Ian I managed to build and install DECUS C as in 11sp68 on RT-11 and I'm able to compile and assemble the RQDX3 sources. In fact, once you now how to do it it is not as complicated as thought at start. And with simh and fast computers nowadays the whole process takes minutes rather than hours. I have been using RT-11 V5.7 and the CPU set in simh was a PDP-11/93. The reason for the latter is simple, when booting RT5.7 it takes date and time from the host here a short list of bullet points
Let me know if you want the rest of the documentation in .txt form (cc.txt is in my reply above). None of the converters I found (after converting from RUNOFF to TeX) could do a decent job. The PDF I posted was the best I could get, but the online TeX to PDF converter didn't understand the blocks of code / command line examples. Other online converters either have worse output or hung. pdfTeX run locally just spewed loads of error messages and didn't generate any PDF output.
 
Let me know if you want the rest of the documentation in .txt form (cc.txt is in my reply above). None of the converters I found (after converting from RUNOFF to TeX) could do a decent job. The PDF I posted was the best I could get, but the online TeX to PDF converter didn't understand the blocks of code / command line examples. Other online converters either have worse output or hung. pdfTeX run locally just spewed loads of error messages and didn't generate any PDF output.
Yes I would love to have documents in txt format. Actually preferring txt over pdf, for me it's much easier to read and the code blocks are preserved, which in this case is very important. And it gives it a nostalgic touch.
 
Yes I would love to have documents in txt format. Actually preferring txt over pdf, for me it's much easier to read and the code blocks are preserved, which in this case is very important. And it gives it a nostalgic touch.
The text files are on-line at https://github.com/rust11/decusc - cc.txt, as.txt, lib1.txt, lib2.txt and runtim.txt.
 
Thanks for those - here are two later but different versions as well for comparison:
Thanks for those as well--I'll put them up on the GitHub site as well, adding dates to each version.

I just hunted through my archive and found a 2002 version of CC.TXT updated by Johhny Billquist (who added I/D support and the void type, among other things). There are other documents as well. I'll try sort the documents out and put them in date-ordered folders. I'm pretty sure Johnny's using the DEC RSX C compiler these days. I don't think the DEC RT-11 C compiler has survived.

The DECUS-C binary release date became important for Peter's project--there were compatibility issues with the DECUS-C DSECT statement (which the RQDX source code used) with later versions. So, it might time to try and get copies of the various versions in one place and sorted.
 
Well, maybe, hardly, but not quite "Digital C".

The compiler is a fork of early Unix (V6 or V7), but with C0, C1 and C2 rebuilt as overlays instead of separate apps.

It seems to also include CPP.

The assembler is DECUS-C AS, and perhaps some of the runtime libraries come from DECUS as well.

Here's a translation of command line and library descriptions:

Code:
============================
Section 4.2: Command Line
============================

Command line syntax:
    [-CEFJKLMNPRSTXZ] [-IDEV] [-DSYM[=VAL]] [-USYM] [-O OUTFILE] INFILE

    -C     Suppresses the compiler stage (only preprocessing + assembling).
    -E     Sets file length for temp/output to [-1] if not specified.
    -F     Includes FPU emulator even if not needed.
    -J     Disables FPU emulator even if floating point is used.
    -K     Suppresses processor initialization code.
    -L     Prints stage-completion messages (CPP, C0, C1, C2, AS).
    -M     Skips preprocessing.
    -N     Keeps temporary files.
    -P     Embeds diagnostics in code.
    -R     Enables preprocessor recursion.
    -S     Skips assembling.
    -T     Enables optimization statistics (requires -X).
    -X     Enables optimizer (C2).
    -Z     Omits floating-point formatting functions.

    -IDEV  Adds device to include search path (no colon).
    -D     Defines macro symbol: -DSYM or -DSYM=VAL (VAL defaults to 1).
    -U     Undefines macro symbol (overrides -D if both given).
    -O     Specifies output filename (can omit parts, defaults provided).
    INFILE Required input file (.C or .S guessed based on flags).

Examples:
    MYPROG                  → translates MYPROG.C to MYPROG.OBJ
    -LXTO RK3: BBB          → translates BBB.C to RK3:BBB.OBJ with optimization.
    -LX BBB -O RK3: -T      → same as above, flags rearranged.

============================
Appendix 3: Supplied Files
============================

  File         Size   Date        Description
  ------------ ------ ----------- -----------------------------------------------
  CC.SAV         226  15-Jun-89   C Compiler
  CCNHD.SAV      227  15-Jun-89   Compiler for CPUs without EIS
  AS.SAV          65  15-Jun-89   Assembler
  STDIO.H          4  15-Jun-89   I/O definitions
  ERRNO.H          2  15-Jun-89   Error code definitions
  CTYPE.H          5  15-Jun-89   Character classification functions
  TIME.H           1  15-Jun-89   Time functions
  SETJMP.H         1  15-Jun-89   Setjmp/longjmp
  MATH.H           1  15-Jun-89   Math functions
  RDIR.H           1  15-Jun-89   RDIR module
  RT11.H           6  15-Jun-89   CRLIB definitions
  TS41.H           5  15-Jun-89   CTLIB definitions
  CURSES.H         7  15-Jun-89   Screen handling
  SPEIS.OBJ        2  15-Jun-89   Main module (with EIS)
  SPNHD.OBJ        2  15-Jun-89   Main module (no EIS)
  INITNF.OBJ       1  15-Jun-89   Init module (no UNIX start seq)
  NFTIO.OBJ        1  15-Jun-89   Terminal I/O
  ASPEIS.OBJ       3  15-Jun-89   Standalone main (with EIS)
  ASPNHD.OBJ       3  15-Jun-89   Standalone main (no EIS)
  ANTIO.OBJ        1  15-Jun-89   Terminal I/O shutdown
  CXLIB.OBJ      103  15-Jun-89   Standard C library
  CRLIB.OBJ       21  15-Jun-89   System call library (RAFOS)
  CTLIB.OBJ        2  15-Jun-89   TS monitor support library
  CALIB.OBJ       71  15-Jun-89   Standalone support
  CDIO.OBJ         5  15-Jun-89   Direct file access
  CMLIB.OBJ       29  15-Jun-89   Math library
  CSLIB.OBJ       44  15-Jun-89   Screen function library
  FORSUP.OBJ       1  15-Jun-89   FORTRAN IV support

Assembly Sources:
  SPNHD.MAC        1  15-Jun-89   Main (no EIS)
  HEAD.MAC         1  15-Jun-89   Local macros
  ANTIO.MAC        1  15-Jun-89   Terminal I/O shutdown
  NOSYS.MAC        1  15-Jun-89   Standalone definitions
  INIT.MAC        10  15-Jun-89   System initialization
  TRAPS.MAC        6  15-Jun-89   Interrupt handling
  NFTIO.MAC        4  15-Jun-89   Terminal I/O
  CSV.MAC          5  15-Jun-89   Register save/restore
  ATIMER.MAC       3  15-Jun-89   Hardware timer support
  SUPORT.MAC      14  15-Jun-89   Init (with EIS)
  NOFL.MAC         1  15-Jun-89   Init (no UNIX sequence)
 
There is an images of tapes on bitsaver, created with an error - swapped blocks. Somewhere I came across information - due to an error in the image creation program, which occurs during repeated readings on faulty parts of the tape.

Some time ago, the idea was maturing - to write a program that helps to restore such images - was embodied in the alpha version 0.0 of the ImageUtils program.

So far, all the program can do is open a tape image, show the contents, swap blocks and save the image after editing.

Restored (95 percent - its help) the DEC RSX C 1.2 distribution

Enough functionality - rearrangement of blocks

Lacked functionality - it was necessary to create an EOF2 block (at the end of the tape image) - FAR came to the rescue and knowledge - what is in EOF2

Here

Assistant :) and one of the changes
 
Back
Top