Information about IBM IBSYS
IBSYS was the primary operating system for the IBM 7090/7094. It started out as a program called BESYS developed for the 709 by GE and was later enhanced by IBM to become IBSYS. It was also modifed to run on the IBM 7040/44 when that machine came out. IBSYS required a 32K machine with at least one channel, but ran better with at least two channels. It could be placed on disk for quicker loading. But all input and temporary files were primarialy on tape. Disk areas could be assigned to jobs for storage, but IBSYS itself never use the disk other then to store itself.
For system tape image go here
For sample jobs go here
Manuals
From Bitsavers you may wish to download the following PDF manuals to assist in using IBSYS. The version we seem to have recovered in version 13.IBM 7090 Assembly Programming Information.
GA22-6703-4_7094princOps | General CPU instruction set | |
Saxon-ProgrammingThe7090 | Programming class manual | |
Sherman-ProgrammingThe7090 | Programming class manual |
Manuals You will probably need:
C28-6355-4_7090oper_Jun65 | General IBSYS operators guide | |
C28-6248-7_v13_IBSYS_Dec66 | General operating instructions for IBSYS | |
C28-6389-1_v13_IBJOB_Jun65 | IBJOB users manual | |
GC28-6393-2_ibjobDbgPkg | Debuging IBJOB programs | |
C28-6390-3_v13_F4_Apr66 | FORTRAN IV IBFTC users manual | |
C28-6391-0_v13_COBOL | COBOL IBCBC users manual | |
C28-6392-4_MAP_Dec66 | MAP IBMAP users manual | |
C28-6386-1_symbUpdPgm_Jan65 | UPDATE users manual | |
C28-6364-5_v13_Utils_Jul65 | Disk utilities manual | |
C28-6054-5_FORTRANII_Apr64 | Fortran II language manual | |
J28-6190-3_FORTRAN_II_IOPkg_Apr66 | ||
C28-6066-6_FORTRANII_oper | Fortran II operators guide | |
C28-6235-5_FAP_Apr65 | Information on FAP language | |
C28-6365-1_genSort_Sep64 | Sort manual | |
C28-6345-4_v13_IOCS_Apr65 | Information about IOCS for V13 | |
J28-6169-1_CommercialTranslator_Jan62 | CT manuals | |
F28-8043_CommercialTranslatorGenInfMan_Ju60 | ||
J28-6166_9PAC_Part1_1961 | 9PAC manuals | |
J28-6167_9PAC_Part2_1961 | ||
J28-6168_9PAC_Part3_1961 | ||
J28-6211-1_9PAC_Upd_1962 | ||
Manuals You might need if you have problems:
SBC_usersGuide_Jan66 | General guide to IBSYS | |
C28-6299_IBSYS_PgSyAn_Feb63 | Might be usefull to understand IBSYS | |
C28-6100-2_7090_IOCS | Not needed but gives good info on IOCS |
IBSYS Basic Job Control
These are the basic IBSYS control cards. If input is from tape, each card must be placed in it's own record (mkbcdtape does this automaticaly).
$JOBcard splits multiple jobs on one input tape. Always remember to and all decks with
$IBSYSfollowed by
$STOPcard or the IBSYS will hang in wait loop waiting for next record.
COL | COL | ||
1 | 16 | ||
$AS | SYSUNI,HI | ASSIGN LAST ATTACH UNIT TO NAME | |
$ATTACH | UNI,II | ATTACH SPECIFIED UNIT | |
$CARDS | NEXT IBSYS CONTROL CARD ON SYSCRD | ||
$DATE | MMDDYY | ENTER DATE | |
$DETACH | UNI | DETACH SPECIFIED UNIT | |
$ENDFILE | SYSUNI | WRITE EOF ON SPEC. SYSTEM UNIT | |
$EXECUTE | SYSTEM | LOAD AND EXECUTE SPECIFIED SYSTEM | |
$IBSYS | RELOAD'IBSUP' | ||
$JOB | FIRST CARD OF A NEW JOB | ||
$IBEDT | CALL SYSTEM EDITOR | ||
$ID | CALL INSTALLATION ACCOUNTING ROUTINE | ||
$UNITS | PRINT STATUS OF ATTACHED UNITS | ||
$PAUSE | PAUSE FOR OPERATOR | ||
$PROTECT | SYSUNI | FILE PROTECT UNIT (HYPER) | |
$RELEASE | SYSUNI | RELEASE UNIT FROM SPEC. SYSUNI | |
$REMOVE | SYSUNI | REW-UNLOAD SPEC. SYSTEM UNIT | |
$RESTORE | RELOAD 'IBNUC' EXCEPT TAPE POSITIONS | ||
$REWIND | SYSUNI | REWIND SPECIFIED SYSTEM UNIT | |
$STOP | STOP | ||
$SWITCH | SYSUNI,SYSUNI | SWITCH UNITS FOR SPEC. SYS. FUNCTIONS | |
$TAPE | NEXT IBSYS CONTROL CARD ON SYSIN1 | ||
$LIST | LIST IBSYS CONTROL CARDS | ||
$UNLIST | SUPPRESS LISTING CONTROL CARDS | ||
$UNLOAD | SYSUNI | UNLOAD UNIT (HYPER) WITHOUT REWIND | |
$RESET | REASSIGN RELEASED SYSUNI FUNCTIONS | ||
$RESTART | N | RESTART A JOB ON A SYSIN1 STACK | |
$*..COMMENT...... | COMMENT CARD (NO ACTION) |
Where....
  |
|
To find out tape drive assignments for a system use the following job on card reader:
$UNITS $PAUSE And use as follows: i7090 IBM 7090 simulator V3.5-2 sim> at mta1 ../t8_sys.tp <--using tape t8_sys.tp here> sim> dep sw1 1 <--read job from cards sim> at cdr0 u.job <--file is $UNITS/$PAUSE> sim> set lp0 echo <--echo console printer sim> at mtb1 junk.tp <--If you get access attempts sim> bo mta1 $UNITS FUNCTION UNIT SYSLB1 A1 HI DEN SYSLB2 NONE SYSLB3 NONE SYSLB4 NONE SYSCRD RDA SYSPRT PRA SYSPCH PUA SYSOU1 B1 HI DEN SYSOU2 B1 HI DEN SYSIN1 A2 HI DEN SYSIN2 A2 HI DEN SYSPP1 B2 HI DEN SYSPP2 B4 HI DEN SYSCK1 NONE SYSCK2 A5 HI DEN SYSUT1 A3 HI DEN SYSUT2 B3 HI DEN SYSUT3 A4 HI DEN SYSUT4 B4 HI DEN SYSUT5 NONE SYSUT6 NONE SYSUT7 NONE SYSUT8 NONE SYSUT9 NONE ATTACHED UNITS NOT ASSIGNED OR RESERVED. A6 A7 A8 B5 B6 B7 B8 INTER SYSTEM RESERVE UNITS. NONE $PAUSE OPER. ACTION PAUSE HALT instruction, IC: 02416 ( 007400402163 TSX 02163,4) sim> quit Goodbye |
After you have list of units. Prepare a configuration file to attach tape virtual tapes to each unit listed.
set cpu 7090 set cpu 32k at mta1 system.tp <-- system tape. set mta1 locked <-- keep it from being changed. at mta2 sysin.tp <-- Input job stream tape. set mta2 locked at mta3 sysut1.tp <-- Note subtract one from tape number at mtb3 sysut2.tp at mta4 sysut3.tp at mtb4 sysut4.tp at mtb1 sysou1.tp at mta5 sysck2.tp at mtb2 syspp1.tp at lp0 sys.log at cdp0 syspun.crd dep sw1 0 <-- input on SYSIN1 |
The create a file with the following cards:
$JOB LIST CONFIGURATION OF SYSTEM $UNITS $IBSYS $IBEDT *EDIT MAP ~ $IBSYS $EXECUTE IBJOB $IBJOB IBLIB NOGO,LOGIC,MAP $EDIT LOGIC ~ $IBSYS $STOP |
Run mkbcdtape -o sysin.tp job to create a input tape. Then run simulator with configuration file and use listtape to examine the output. The output will be a list of System names and for IBJOB a list of library routines included in system.
mkbcdtape -o sysin.tp your.job Runing ibsys
i7090 base_sys.ini IBM 7090 simulator V3.5-0 MTA: creating new file MTB: creating new file MTA: creating new file MTB: creating new file MTB: creating new file MTA: creating new file MTB: creating new file LP: creating new file CP: creating new file sim> boot mta1 ... Job runs with operator actions or whatever. ... $STOP PERIPHERAL UNIT POSITIONS AT END OF JOBS SYSPP1 IS B2 REC. 00000, FILE 00000 SYSOU1 IS B1 REC. 01033, FILE 00000 SYSIN1 IS A2 REC. 00003, FILE 00002 END OF JOBS HALT instruction, IC: 05370 ( -077400200144 AXC 00144,2) sim> quit To show how your job ran use: listtape sysou1.tp |
I have provided .ini files for some of the system images. These files hook up the tape drives and other peripherals to specific files. You can also do this manually or modify them to match the system tape(s) you are using. And set some basic switches to run jobs. Base_sys.ini is generic, and works with 1D, stage11. To submit a job via card reader (Note cols 72-80 are dropped!).
sim> attach cdr0 cardjob.job sim> dep sw1 1 sim> boot mta1 or continue
To switch back to tape:
sim> dep sw1 0 sim> boot mta1 or continue
IBJOB Subsystem
Notes on some things I have found while playing with IBSYS:
- IBSFAP
- requires that there is a COUNT card in the first block of input. Also there can't be any comment cards before this. IBSFAP and FORTRANII can not take input from cards, only from tape. IBSFAP prefer a blocking of 16 cards (1344 bytes) per record rather then the 10 cards of other IBSYS programs. Also IBSFAP can only assemble, use FORTRAN if you want to have your FAP program run.
- FORTRAN
- Blocking should be one record per line.
- IBEDT
- requires that the input be unblocked. Place EOF card or mark after last card of IBEDT deck.
- UPDATE
- UPDATE xx,xxx,U does not set to unblocked output, user
UPDATE xx,xxx,1
Units for update:
UNIT NAME 1 SYSLB1 2 SYSUT3 3 SYSUT4 4 SYSUT1 5 SYSIN1 6 SYSOU1 7 SYSPP1 8 SYSUT2 9 SYSCK1 10 SYSCK2