IBM System/34, 36 System Support Program
System Support Program (SSP) was an operating system for the IBM System/34 and System/36 minicomputers. SSP was a command-based operating system released in 1977.
History
SSP originally contained 60 or so commands that were implemented on the System/34 from 1977 to 1983 in different versions called releases. Release 1 was issued with the original S/34 in 1977. Release 9 was issued in 1981. In 1983, IBM repackaged SSP on a new computer called the IBM System/36, which was not object-code compatible with the S/34. In 1994, IBM repackaged SSP on an updated model of the S/36 called the Advanced/36. The A/36 was an IBM AS/400 which had the SSP implemented as a "virtual machine".
Major releases of SSP include:
- S/34 Release 1.0 - this was apparently shipped with the first S/34 in 1977.
- S/34 Release 8.0 - this seems to have been issued about 1980.
- S/34 Release 9.0 - this was the last release for the S/34 c.1980.
- S/36 Release 1.0 - this was apparently shipped with the first S/36 in 1983.
- S/36 Release 2.0 - this release supported the 8809 tape drive.
- S/36 Release 4.0 - this was the release where S/36 was given 5 job queues.
- S/36 Release 5.1 - this 1988 release was the last major change on 536X platforms.
- S/36 Release 6.0 - also known as the VASP or Value-Added Support Product, this release added functionality that allowed program calls in RPG, and it also provided software to calculate the size AS/400 that the user would need when upgrading. The VASP was controversial. Rumors circulated in the industry papers that the customer could not go back to 5.1 if 6.0 did not function adequately. Program calls with RPG CALL/PARM were inferior to RPGIII designs and inferior to customer add-on products.
- S/36 Release 7.1 - this 1994 release was shipped with the Advanced/36 (9402-236 models). The first A/36 machines would not function on a lower release and were also incompatible with 7.5 (while technically, true, program object code from a 7.1 machine would run on a 7.5 and vice versa, plus many 9402-236's were upgraded to 9402-436, which they changed out the motherboard and installed some new LIC code and you restored on a copy of your files and voila, it all worked). Rumors circulated that stated prior release compilers would not function on the Advanced/36, but they proved unfounded. There were reasons a programmer would rather use the 5.1 RPGII compiler instead of the presumably more advanced 7.x compiler.
- S/36 Release 7.5 - this 1995 release was shipped with the second and final wave of the Advanced/36 (9402-436). Functions like WRKSYSVL allowed the operator to change the system time on the fly, which was interesting because customer add-ons to do this through assembler subroutines did not function on the Advanced/36. However assembler routines to do things like open/close files, retrieve the VTOC, etc. functioned just fine on 7.1 and 7.5
- Guest/36, this is Release 7.5, but you could set up an M36 (a guest) on an as/400 (running os/400 V3R6 thru V4R4), and it would function just like the 9402-436, except that in addition to having this guest "partition", you also had os/400 if you wanted it. So if the 9402-436 which came in 3 speeds 2102, 2104 and 2106 (which the latter was about 2.7X faster than the base) wasn't fast enough, you could get a 9406-xxx machine and install a "guest/36" on such. And actually you could install more than one guest/36. There was some limitations of number of attached workstations, but having two guest/36's running on an as/400, and setting up DDM (distributed data management) between them and even with os/400 to host large files, could easily be done. While the S/36 and A/36 for the most part worked only with twinax attached terminals, on a Guest/36 (or M/36), you could have all your terminals be on a LAN running tcp/ip and be virtual devices in the Guest/36 environment.
- S36EE, which is S/36 execution environment was supported native on the as/400 and its follow on (iseries, ibm i), which allows a user to continue to run their s/36 programs and procedures without having to convert them. Many of the system procs also work with such. While it was typically "slower" since it has to go through additional steps, however today with such fast machines, the speed of an S36EE is many times faster than the A/36 execution speed. Example, one job took 12 minutes to run on an Adv/36, took 20 seconds to run in S36EE mode. The object code however is NOT compatible with the previous s/36 and a/36, meaning that one had to recompile all programs and menus. However one advantage is that you can not only run s36ee but you can harness the power of i5/os (the follow on (or rename) of os/400). You can access database tables in your S/36 programs, you can call rpg/400 and RPGIV programs from with a S/36 program. So while technically not SSP, it looks like SSP, it acts like SSP and it will run your S/36 programs/procs.
Limitations on S/36 and A/36 and M/36 operating system: The maximum amount of disk space that a system could utilize was 4 gb (per occurrence of the operating system, so a machine running two M36 "partitions" could have 4 gb in each. Another limitation was the program size, could not exceed 64kb (not 64mb, but 64KB). If you had a program that was larger than that, you had to become creative in the later years when call/parm came into place, as you would move code into a called program, because if the base program was 63kb for example, you could easily call a 20kb called program. You also could not have more than around 8,000+ files on the machine. There were also restrictions on the number of files you could bring into a program (again, you could get around by putting files in called programs and passing the result back in. The maximum number of records you could initially load was about 8 million and the maximum a file could hold was about 16 million. None of these limitations exist in S36EE (there are a few maximum number of files in a program, but much larger# than in native SSP).
Functions and components
Using SSP, the operator can create, delete, and manage S/34-36 objects such as libraries, data files, menus, procedures, source members, and security files.
SSP contains modules such as DFU, SEU, SDA, and WSU that permit operators to build libraries and files, enter information into those files, produce simple reports, and maintain a menu structure that simplifies access to the information. The Advanced/36 does not support WSU. Password and resource security are also implemented through SSP, as are remote communications, which today is similar to dial-up networking.
SSP is a disk-based operating system. Computer programs can be run from the fixed disk, but not from diskette or tape. The complement of a System/34 5340, or System/36 5360/5362 is a fixed disk array of one to four fixed disks, at least one computer terminal, and an 8" diskette drive, optionally fitted with two magazine units that can contain 10 diskettes each and three diskette slots.. A S/36 5363/5364 has a 5-1/4" diskette drive. S/36 computers can be configured with an 8809 reel-to-reel tape drive (800/1600 bpi) or a 6157 1/4" cartridge (QIC) tape drive. A/36 computers have a high-density QIC drive but the 5.25" or 8" diskette drive (single) was optional as was a 9348-001 9 track (reel to reel) 1600/6250 bpi tape drive.
Basic SSP procedures include:
- HELP, to request an online form to assist with command entry.
- MENU, to display a user-created menu of commands, procedures, or OCL.
- ALTERBSC, to change the binary synchronous communications profile.
- ALOCFLDR(*), to reallocate a folder.
- HISTORY, to report and optionally reset the system history file.
- BLDLIBR, to create a user library.
- BLDFILE, to create a file.
- KEYSORT, to reorganize an indexed file, rebuilding the key index area for greater efficiency.
- CATALOG, to report the disk VTOC or media VTOC.
- INIT, to initialize diskette media.
- TAPEINIT, to initialize tape media.
- COPYDATA(*), to create a new file using records from an existing file.
- LISTDATA(*), to print unformatted records from an existing file.
- LISTLIBR, to print members within a library.
- LIBRLIBR, to copy members within a library.
- REMOVE, to remove members within a library.
- ALOCLIBR(*), to change the size or directory size of a library.
- DELETE, to remove files.
- DFU, to start the interactive Data File Utility.
- ENTER, to enter new records into a defined file.
- UPDATE, to change records in a defined file.
- INQUIRY, to display records in a defined file.
- LIST, to report records from a defined file.
- SEU, to start the interactive Source Entry Utility.
- SDA, to start the interactive Screen Design Aid.
- BLDMENU, to create a menu.
- CREATE, to create a message member.
- FORMAT, to create a display format member.
- WSU (**), to start the interactive Work Station Utility.
- SECDEF(*), to define security.
- SECEDIT(*), to change security.
- SECLIST(*), to report security.
- SECSAVE(*), to copy security from disk to media.
- SECREST(*), to copy security from media to disk.
- SECDROP(*), to remove security.
- PROF(**), to edit password security.
- PRSRCID(**), to edit resource security.
- PRLIST (**), to print password or resource security.
- HISTORY, to print or manage the System History file.
- HISTCOPY (*), to copy the System History file to a disk file.
- CNFIGSSP, to configure the system support product.
- IPL, to restart the system.
- SAVE, to copy a disk file to media.
- SAVELIBR, to copy a library to media.
- RESTORE, to copy a file from media to disk.
- RESTLIBR, to copy a library from media to disk.
- SAVEFLDR(*), to save a folder to media.
- RESTFLDR(*), to restore a folder from media.
- COMPRESS, to reorganize the disk for maximum space availability.
- CONDENSE, to reorganize a library, or (*) a folder, for maximum space availability.
- WRKSYSVL(****), to view/change system values such as date and time.
- CSALL (*), to cancel inactive sessions.
Basic SSP commands include:
- ASSIGN (A), to temporarily switch workstation IDs.
- CHANGE (G), to change the parameters of a spooled report.
- CANCEL (C), to cancel a spooled report, or a session, or the job queue(***), or a user program.
- STOP (P), to stop a printer, or a session, or the job queue(***), or the system.
- START (S), to start a printer, or a session, or the job queue(***), or the system.
- STATUS (D), to see the status of a printer, or sessions, or communications.
- HOLD (H), to place a spooled report on hold.
- RELEASE (L), to release a spooled report from hold.
- RESTART (T), to restart a stopped report from the beginning.
- REPLY (R), to reply to a message sent to the System Console, or to a subconsole, or to all informational messages, or to clear messages from the console or subconsole.
- CONSOLE GIVE, to surrender the System Console to alternate consoles.
- CONSOLE TAKE, to cause an alternate console to become System Console.
- COMMAND, to return to command mode from console/subconsole mode.
- INFOMSG (I), to set the suppression of informational console messages.
- VARY (V), to set the online state of a device.
- TIME, to request the current time and date.
- OFF, to end the current session.
- DATE, to set the session date (not the system date).
- MSG, to send or retrieve messages.
- POWER, to power off the system.
(*) These functions were created for the System/36. CSALL was created for the VASP.
(**) These functions were discontinued on the System/36.
(***) The System/34 was created with a single job queue. The System/36 was created with five job queues; therefore, where "job queue" is written above, the action can refer to a single job queue or all of them.
(****) This function was added on the Advanced/36.
System utility programs
SSP procedures utilize utility programs, which can in some cases be more useful to the computer programmer than the SSP procedures themselves. $MAINT is the library utility, used in ALOCLIBR, BLDLIBR, FROMLIBR, LIBRLIBR, REMOVE, CONDENSE, LISTLIBR, and TOLIBR. $COPY is the file utility used in SAVE, RESTORE, COPYDATA, and LISTDATA. There are many other utilities, including $FBLD, $LABEL, $DUPRD, $INIT, $DELET, $HIST, $CNFIG, #GSORT, $PACK, and $PROF, which are more flexible at the program level than associated SSP procedures can be.
Operational Control Language (OCL)
High-level language programs require OCL to be activated. OCL is used to load programs into the system's memory and start them (a process called execution) and assign resources such as disk files, printers, message members, memory, and disk space to those programs. Other abilities, such as displaying text on the screen, pause messages, and so forth, make OCL more powerful.
Related operating systems
The System/3 (1969) ran a disk-based batch operating system called SCP (5702-SC1). IBM introduced for the S/3 an online program called CCP ("Communications Control Program.") which was started as a batch program. The IBM System/32 (1975) ran a disk-based operating system called SCP ("System Control Program.") The IBM System/38 (1978) ran an operating system called CPF ("Control Program Facility") that was much more advanced than SSP and not particularly similar.
Sources
- IBM Publication SC21-8299, General Information for SSP Operating System.