Adventures with the Nixdorf 8870 Mini-Computer
Table of Contents
1. Introduction ......................................... 1
1.1 System Components .................................... 1
1.2 Controller and Configuration Components .............. 1
1.3 System Operation ..................................... 2
1.4 Resources ............................................ 2
2 Bootstrap ............................................ 3
2.1 Functional Sequence .................................. 3
2.2 Error Handling ....................................... 4
2.3 Assignment of Memory Space ........................... 4
2.4 Flow Chart ........................................... 5
3 BZUPNEW .............................................. 7
3.1 Functional Sequence .................................. 7
3.2 Error Handling ....................................... 7
3.3 Block Structure ...................................... 8
4 System Loader (XVSYLAR) .............................. 9
4.1 General .............................................. 9
4.2 Block Structure ...................................... 9
4.3 XVSYLAR Function ..................................... 10
4.4 Processor Loader (LOAD) .............................. 10
4.5 Service Module (XVSYLAR) ............................. 11
5 Initial Program Load (IPL) ........................... 11
5.1 General .............................................. 11
5.2 Process .............................................. 12
5.3 Flow Cart “Power On – Start IPL” ..................... 13
5.4 Error Messages during IPL ............................ 14
5.5 Memory Address Allocation in Release 3.3 for SIR ..... 18
6 CONFIG ............................................... 19
6.1 General .............................................. 19
6.2 CONFIG File Structure ................................ 19
6.3 INFO Table ........................................... 22
7 INDEX ................................................ 25
7.1 INDEX Printout ....................................... 25
7.2 Removal of the Entry from Address 650 ................ 25
8 ACCOUNTS ............................................. 27
8.1 General .............................................. 27
8.2 ACCOUNT Data ......................................... 27
9 DMAP .................................................. 29
9.1 General ............................................... 29
9.2 Cartridge Printout (Example) .......................... 29
9.2.1 Storage Module Printout (Example) ..................... 30
10 Formatter ............................................. 31
10.1 Management of Trail Replacement ....................... 31
10.1.1 Physical Pack Structure ............................... 32
11 Port Control Block (PCB) .............................. 33
11.1 FLW Word in Port Control Block ........................ 34
12 Channel Control Block (CCB) ........................... 35
13 Printer Control Block (PRCB) .......................... 37
14 Data File Table (DFT) ................................. 39
15 Partition Control Block (PCT) .......................... 41
16 Logical Unit Variable Information Table (LUVAR) ........ 41
17 Logical Unit Fixed Information Table (LUFIX) ........... 43
18 Processor .............................................. 45
18.1 BYE .................................................... 45
18.2 INSTALL ................................................ 45
18.3 DRIVER ................................................. 45
18.4 SCOPE .................................................. 46
18.5 REMOVE ................................................. 46
18.6 DSP .................................................... 46
18.7 Synopsis ............................................... 46
18.8 Disc Service Processor (DSP) Handling .................. 47
19 NIROS (REX) ............................................ 51
19.1 Device Files in NIROS .................................. 51
19.1.1 NO LOAD FLAGs .......................................... 52
19.2 System Files in NIROS .................................. 53
19.3 Processor Files in NIROS ............................... 54
19.4 Standalone Files in NIROS .............................. 54
19.5 REX .................................................... 55
19.6 Memory Start Address for Various NIROS Components ...... 56
19.7 Memory Assignment ...................................... 58
19.7.1 Memory Assignment Description .......................... 59
19.8 Page Zero Address Content .............................. 61
19.8.1 Processor Page Zero Address Content .................... 63
19.9 Memory Printout Release 3.3 ............................ 64
19.10 Time-Sharing ............................................ 65
19.11 Active File ............................................. 67
19.12 SWAP IN ................................................. 67
19.13 SWAP OUT ................................................ 68
19.14 INPUT/OUTPUT ............................................ 70
19.15 Data Access ............................................. 71
20 IOCS .................................................... 75
20.1 Channelling Concept ..................................... 75
20.2 Task .................................................... 76
20.3 Entries in the Waiting Queue ............................. 77
20.4 Partial Printout of a Task Queue ........................ 78
20.5 Removing an Entry from the Waiting Queue ................. 79
20.6 Task Priorities ......................................... 79
21 Interrupt Handling ...................................... 81
21.1 Parity and Time Error Interrupts ........................ 81
21.2 System Time Interrupt ................................... 81
21.3 Power Failure Interrupt ................................. 82
21.4 Power Start Routine ..................................... 82
21.5 E/A Interrupt ........................................... 82
22 NIROS Block Diagram ..................................... 83
22.1 Flow Chart .............................................. 84
22.1.1 IDLE .................................................... 84
22.1.2 ESCAPE for LOG ON ....................................... 85
22.1.3 LOG ON .................................................. 86
22.1.4 Program Selection ....................................... 87
22.1.5 BUMP .................................................... 89
23 File Label (File Header) ................................. 91
24 DISCSUB .................................................. 99
24.1 General .................................................. 99
24.2 Structure of a DISCSUB ................................... 100
24.3 DISCSUB MAPPING .......................................... 102
24.3.1 Introduction ............................................ 102
24.3.2 SYSMOD Selection ........................................ 103
24.3.3 SYSMOD Memory Assignment List ........................... 104
24.3.4 Memory Assignment with DISCSUB MAPPING .................. 105
24.3.5 Setting Up DISCSUBS ..................................... 106
24.3.6 Calling DISCSUBS ........................................ 107
24.3.7 Further Modifications ................................... 108
25 File Organisation Methods ............................... 109
25.1 Sequential Files ........................................ 109
25.2 Formatted Files ......................................... 109
25.3 Relative Files .......................................... 112
25.4 Index Files ............................................. 112
25.5 Text Files .............................................. 116
25.6 File Definition ......................................... 116
25.7 File Name ............................................... 116
25.8 The Concept of Logical Units ............................ 117
25.9 Record Pointers ......................................... 117
26 Data Security ........................................... 119
27 TAMOS ................................................... 121
27.1 Selectors ............................................... 121
27.2 Data Backup ............................................. 122
27.3 System Monitoring ....................................... 123
27.4 Control Files ........................................... 123
27.5 Spooling ................................................ 125
27.5.1 Supervisor Selector ..................................... 126
27.5.2 System Maintenance ...................................... 126
27.5.3 Setting Up a Selector ................................... 126
27.5.4 Updating a Selector ..................................... 127
27.5.5 Removing a Selector ..................................... 127
27.5.6 Printing a Selector ..................................... 127
27.5.7 Notice Maintenance ...................................... 127
27.5.8 Text Maintenance ........................................ 127
27.5.9 Program List ............................................ 128
27.6 Service Routines ........................................ 128
27.6.1 Start of Day ............................................ 128
27.6.2 End of Day .............................................. 128
27.6.3 Data Backup ............................................. 129
27.6.4 Reconstruction 2nd Generation ............................ 129
27.6.5 Reconstruction 3rd Generation ............................ 129
27.6.6 Setting Up Drives ....................................... 130
27.6.7 Exchanging Drives ....................................... 130
27.6.8 File Print Log .......................................... 130
27.6.9 Formatting .............................................. 130
27.6.10 Setting System Time ..................................... 130
27.6.11 Setting Up Users ........................................ 131
27.6.12 Shutting Down the System ................................ 132
27.7 Spooling ................................................ 132
27.7.1 Displaying Spool File ................................... 132
27.7.2 Starting Spooling ....................................... 132
27.7.3 Cancelling Spooling ..................................... 132
27.7.4 Displaying Log File ..................................... 132
27.8 System Programs ......................................... 133
27.8.1 Printing Archive Files .................................. 133
27.8.2 Displaying Archive Files ................................ 133
27.8.3 Printing Assignment ..................................... 133
27.8.4 System Security ......................................... 133
27.8.5 System Reconstruction ................................... 133
27.8.6 System Commands ......................................... 133
28 Description of SYSMOD ................................... 135
28.1 Calling SYSMOD .......................................... 135
28.2 Main Selectors .......................................... 136
28.3 Change Hardware Specifications .......................... 136
28.3.1 Address MAP Registers ................................... 136
28.3.2 Core Size ............................................... 137
28.3.3 Disc Characteristics .................................... 137
28.3.4 No. of ALM Controllers ................................... 138
28.3.5 Channel Port Connection ................................. 138
28.4 Change Software Specifications .......................... 139
28.4.1 Active File Size ........................................ 139
28.4.2 Drivers ................................................. 140
28.4.3 Size of the Mag Tape Buffer ............................. 141
28.4.4 Port Characteristics .................................... 141
28.4.5 Data Files .............................................. 142
28.4.6 Partitions .............................................. 143
28.4.7 Core Resident DISCSUBS .................................. 144
28.4.8 Queues .................................................. 145
28.4.9 Time Slice .............................................. 146
28.4.10 Decimal Sign ............................................ 146
28.4.11 NCL Buffer Size ......................................... 146
28.5 Core Allocation MAP ..................................... 147
28.6 EXIT .................................................... 151
28.7 DISCSUB List ............................................ 151
28.8 Driver List ............................................. 155
28.9 Swapping/Partitioning ................................... 156
28.10 Memory Assignment ....................................... 158
28.11 Time Slice Size ......................................... 159
1 Introduction
The following system components describe the functional process of the NIROS in its natural order.
1.1 System Components
• Bootstrap
- Performs a memory test
- Determines the system unit
- Loads the system loader
- Displays an error report on the computer’s LED
• System Loader
- Establishes ZE-Master communication
- Loads master board
- Determines and loads the REX and SIR (NIROS) components
- Jumps to the preparation of the system (SIR)
• SIR
- Evaluates the INFO and CONFIG configuration tables
- Correspondingly assigns memory to system components
- Generates buffers and tables
- Creates the disc map
- Jumps to REX
1.2 Controller and Configuration Components
• System Files
- Config File
- Index File
- Accounts File
- Disc Map
• Standard Processors
- BYE
- SCOPE
- DSP
• Tables
- Port Control Block (PCB)
- Channel Control Block (CCB)
- Partition Control Table (PCT)
- Disc Address Table (DAT)
- Starting Address Table (SAT)
- Data File Table (DFT)
- Info
- Printer Control Block (PRCB)
- Mapped Address Table (MAT)
1.3 System Operation
• REX
- Handles interrupts
- Manages time slices
- Manages time
- Manages partitions
- Calls resources (drivers, discsubs)
• Position Management
- Sets position indicators
- Transmits Signal
- Manages the I/O Buffer
- Handles special characters
• Cartridge or Storage Module Drivers
- Runs disc applications
- Processes disc errors
1.4 Resources
• Discsubs
- Subprograms for SIR, REX, processors and drivers
• Driver
- Interface programs between peripherals and the user
2 Bootstrap
A bootstrap is a 1 KB PROM located in 1517.01 computers on the J7 and J8 IC-sockets.
The bootstrap is loaded into the memory address 0 in the following situations.
Situations: Power failure signal (main switch off)
Computer clearing signal
Emergency power supply clearing signal
Adapter removal
2.1 Functional Sequence
The bootstrap routines are performed in the following order:
1. Placing the general interrupt lock and releasing the locks corresponding to time errors, parity errors and power failure.
2. Performing a memory test by writing and reading random memory addresses until 64KB. Moreover, all addresses will also be indicated by a shut down value (400).
3. Determining the magnetic disc drive type
The partitions of the drive types are Cartridge = 0, 40MB Storage Module = 1, 80MB Storage Module = 2, Phoenix Drive = 4 and the bootstrap is located at 20.
4. Processing a 10 seconds long time warp.
5. Determining the system unit starting from unit 0-7 for the Cartridge, unit 0-1 for the 40 MB Storage Module, unit 0-3 for the 80 MB and unit 0-5 for the Phoenix Drive.
6. Loading BZUPNEW from RDA 0 from the determined drive type and writing memory addresses starting from address 26000.
7. Comparing the identification, the first word of the BZUPNEW must be a 403. In case of an error, the bootstrap error routine is called.
A checksum is formed through the BZUPNEW and compared to the 2nd word of the BZUPNEW. If the comparison has a negative result, the bootstrap error routine is called. In case of a positive result, which means that both tests have been positive, the jump to BZUPNEW (address 26000) occurs.
2.2 Error Handling
The next unit (x = x+1) will attempt to be loaded in case of magnetic disc failure, incorrect identification or false checksums.
If all tests are negative, the system will try to load unit 0 once again with consequential error reports on the computer’s LED. It then jumps to the start of the bootstrap routine.
2.3 Assignment of Memory Space
|Memory test KB |
|Interrupt processing stage |
|Search BZUPNEW |
|Load BZUPNEW |
|Jump to BZUPNEW |
|Driver: Cartridge |
|Storage Module |
|Phoenix Drive |
|Disc error report: |
|Cartridge |
|Storage Module |
|Phoenix Drive |
3 BZUPNEW
The Block Zero Utility Package (BZUP), located on block 0 of each disc (LU), is loaded by the bootstrap into memory. BZUPNEW is not a file per say because it has no header and is not listed in any INDEX.
The first 3 words from the BZUPNEW have the following meaning:
Word 0: an identification is listed here = 403
Word 1: check digit for BZUPNEW
Word 2: number of words that build the checksum.
The E/As of various files are recorded in words 26, 26 and 30:
Word 26: RDA of the XVSYLAR or XVSYLAD header
Word 27: RDA of the NIROSR or NIROSD header
Word 30: RDA of the DISCSUBS header
Words 360-377 are reserved for position loader programs.
3.1 Functional Sequence
1. Determining the ALM flags for RAP or DAP
ALM flag = 0 RAP ALM
ALM flag = 1 DAP ALM
2. If the ALM flag = 0, the XVSYLAR file is searched through Find File, if the file is not found or a MP error occurs, an error handling occurs through the BZUPNEW.
3. Loading the XVSYLAR files into memory. The header is saved starting from address 27400 and the XVSYLAR file itself starting from address 30000.
4. If all blocks are in the memory (5), the checksum is built from word 4 until the end of the file, and compared to the content of address 30001. If the comparison is negative, an error handling occurs through BZUPNEW.
5. The Cartridge, Storage Module and Phoenix drivers, as well as the bootstrap error routine (address 252 until 773), are pushed to address 32000 in the memory.
3.2 Error Handling
The system returns to the bootstrap (next unit) in case of disc errors. If the checksum is incorrect or the XSYSLAR file is not found, an error report shows up on the computer’s LED.
3.3 Block Structure
|Word 0 : Identification |
|1 : Check digit |
|2 : Number of words |
| 26 : XVSYLAR RDA |
|27 : NIROSR RDA |
|30 : DISCSUBS |
| |
|360 – 377 : Position loader programs |
4 System Loader (XVSYLAR)
4.1 General
The system loader is saved on five 512 blocks on the magnetic disc.
The last block of the system loader contains the parity and time error handling routines and is loaded into memory in case of a parity or time error. The system loader ensures that the master indicator and operating system are loaded.
The position programs that can be loaded are identified by XB00-XB49 and are only found in 3 XB programs.
The diagnosis segment, which is loaded first, is named XBOA.
4.2 Block Structure
| |
|HEADER |
|Master indicator |
|System unit definition |
|Find operating system |
|Load operating system |
|Load |
|Standalone file |
|Service module |
|ZE-RAP procedure |
|Parity and time error handling routines |
Only blocks 0-3 are resident in the memory during the system loader.
4.3 XVSYLAR Function
The master indicator is polled until a loader wish is recognized. The loader wish is created by switching the indicator on.
The diagnosis segment is loaded by the system disc determined by the bootstrap.
The master indicator is polled once again. The second loader wish is created by entering the program no. If the program no. has already been specified through the SYSMOD, just press the “CR” key.
The position program is now loaded.
If the system loader was unequally loaded by unit 0, the master indicator will reveal the “LOADED FROM UNIT X” text. If it was only loaded by unit 0, “INIT” appears.
The system disc is newly defined through the “CR” confirmation resp. through the entry of the unit no. and the “CR” key. The system loader looks for the DISCSUBS RDA and for the NIROSR header in this entered unit no.
The XVSYLAR header is set at address 26, the NIROSR header at address 27 and that of DISCSUBS at address 30 in block 0 (BZUPNEW).
After the operating system is loaded, the system loader branches out to the system initialization routine (SIR).
4.4 Processor Loader (LOAD)
The master indicator is loaded by the system loader during the system initialization. All other positions must be loaded separately during time-sharing. The configured positions are polled starting from the execution of the time-sharing algorithm. Switching on the position creates a loader wish. The indicator controller of the operating system thereby queues a processor loader task. The XBOA diagnosis segment is transferred to the position. The workplace indicates the text “CR!”. The confirmation through the CR key sets a new loader wish and the process loader is once more added to the queue. The processor loader transfers the position program configured for the corresponding channel. The configured position program number is set starting from address 360 in block 0 for each channel. SIR adds a further PCB with a I/O buffer to the processor loader. Therefore, only one position may be loaded at a time. If the position program is not present, an error report will be issued on keyboard (s. RAP control program).
4.5 Service Module (XVSYLAR)
The service module from XVSYLAR performs the following functions:
Transferring of the calling program parameter in the Channel Control Block (CCB).
The address of the corresponding CCB must be contained in register 2 when calling the service module.
Sending the block to the selected channel of the ALM.
Receiving the acknowledgement block of the position.
Determining the received blocks and data assignment.
Returning to the calling program.
5 Initial Program Load (IPL)
5.1 General
The system initialization (Initial Program Load) of the 8870 system consists of 4 stages.
Stage 1: Loading the bootstrap and memory test, determining the drive type, loading the BZUPNEW from RDA 0.
Stage 2: Loading BZUPNEW, establishing the workplace alternative RAP or DAP, loading the system loader.
Stage 3: Loading the system loader, position programs and operating system. In the case of DAP, the position programs are loaded.
Stage 4: SIR, operating system initialization.
Stages 1, 2 and 3 have already been described, while the description of stage 4 follows.
5.2 Process
An Initial Program Load (IPL) must be performed at restart, a system crash or after the system has run in standalone mode.
The first step of the IPL is loading the BZUPNEW from disc block 0 into memory starting from address LBZUP (26000).
IPL brings a new REX (operating system core) and SIR file, contained in the REX file, into the memory and performs all necessary initialization functions. This occurs through the disc driver within BZUPNEW.
SIR evaluates the CONFIG file in order to load the necessary disc driver routine into memory. The LUFIX and LUVAR tables are generated for each disc.
SIR continues by examining the DISCSUB file in order to build the DAT (disc address table) and the SAT (start address table) containing the absolute disc address resp. the memory address. SIR transfers the SISCSUB corresponding to the flag into memory.
The SCOPE, DSP, DISCSUBS, MESSAGES and BYE files are evaluated in order to enter the disc addresses in the INFO table.
The Port Control Block of each port, the data files table and the input/output buffer are created.
INDEX continues to be evaluated in order to build the DMAP. Moreover, an active file is attached to each port.
The REX start routine initializes the interrupt system.
Only the power failure, parity and time error interrupts are released until you are prompted to HIT ESC.
5.4 Error Messages during IPL
Error Messages
Message SIR Routine
No. Message Number
1 NO CONFIG FILE 7
2 x DISC ADDRESS DOESN’T MATCH INDEX ENTRY 12
3 x FILENAME DOESN’T MATCH INDEX ENTRY 12
4 x “Filename” HAS WRONG NUMBER OF DISC ADDRESS 12
5 x “Filename” USES DISC BLOCK ALREADY MARKED 12
6 x “Filename” IS NOT VALID DEVICE FILE 13
7 x “Filename” REFERS TO AN IN USE DEVICE ADDRESS 13
8 PLEASE WAIT ... 12, 14
9 NOTE: PORT A (XY)’s ACTIVE FILE IS NOT OPTIMIZED 15
10 ONLY (x) FREE NODES (OCTAL) 16
11 TIME RUNS BACKWARDS 17
x These notifications end with the following message:
PRESS SPACE KEY TO DELETE FILE
5.5 Memory Address Allocation in Release 3.3 for SIR
SIR Routine Label Memory Address
3.3
1 START SIR 12000
2 SIR 13001
3 INMAS 15776
4 SKSM 12012
5 DADS + 2 13137
6 DSAT 16456
7 13205
8 13356
9 SIR 1 13414
10 SCRES 13673
11 SIR 1 C 14071
12 HOUS X 12451
13 SRDEV 14555
14 SIRB 15967
15 STRA + 2 16717
16 SIRZ 15510
17 SIRT 15704
18 SMOV (RAP) 14453
6 CONFIG
6.1 General
The CONFIG file contains configuration parameters that may be changed through SYSMOD. An IPL must be run after each update in order to load the newly configured system into memory.
The following table shows the various pieces of information included in the CONFIG file:
6.2 CONFIG File Structure
|System History |
|(not used) |
|General Information |
|Memory-resident discsub list |
|Disc Driver Table |
|Alternate discsub list |
|Disc driver |
|Partition Control Table |
The following parameters of the INFO table or the CONFIG file have the following meaning:
Address Label Parameter
600 SDAT Date of system creation (no. of hours since 1.1.1973).
Do not modify!
601 SPED Average command speed per ms.
Computer 1513/1517
Speed (octal) 653
602 MILU Maximal number of initialized log. units. This entry
should be equal to the number of log. partitions.
603 NDCH Number of data channels per terminal.
Each data channel occupies 8 memory words for a
dialog terminal. NDCH is usually saved on 8 (octal).
604 PLCA Address of the Port Control Area (PCB for port 0).
This address is automatically set for SIR if a driver
attribute table indicates a PCB address and must lie
in the
LBSA + 2000 + ABUF = LBCA = TOPW + 1 – TNAP x 40
range.
605 TNAP Total reports of the dialog terminal; the value is
automatically increased by SIR if it is lower
than the dialog terminal number indicated by the
driver attribute table.
606 AFHA This active file header area cell should be located
in the CONFIG file 0 if no special buffer is reserved
in the memory for the modification of active file
headers. In this case, SIR sets an indicator of the
HBA at this memory address.
If the AFHA is not equal to zero, SIR reserves 256
words of memory after ABA and places an indicator on on this area in the memory assigned to AFHA.
607 DMR DISCSUBS will be mapped in the system if the content
of the DMR word is not equal to zero. The value
present in the DMR word at that time becomes the
first page number of the DISCSUB map range. DMR is a
2K large memory block between SSA and ABA.
610 TOPW Last usable word from the memory. NIROS will ignore
memory areas beyond this address.
The value of TOPW is 77776 octal.
The TOPW is changed in Release 3.3. It has no
constant value, but depends on the generated system.
Address Label Parameter
611 ABUF Size of the auxiliary buffer area (help buffer
measured in words). This area must be at least 1004
words (octal) if index-sequential data is used.
612 TBUF Magnetic tape buffer area. As long as the system
contains no magnetic disc, the content of this cell
is zero. If, however, a magnetic disc exists, it
should indicate the buffer size of the largest
bandwidth.
613 NCQN Number of additional character queue indicators. SIR
reserves two character queues plus the number of
additional character queues for each dialog terminal.
Additional character queues are required in order to
reach maximal entry speed especially in the case of
intensive character handling. Each queue is assigned
two words in the memory; the lowest value is 2.
614 NNOD Lowest number of unoccupied character queues
desired for the use of task chains in the memory.
This value is the only limit of the number of
concurrent tasks in the system. Each character queue
occupies 10 words (decimal) of memory. The value from
this memory address shows available free space in
order to make DISCSUBS memory-resident etc. because
the remaining memory area at the end of an IPL is
reserved for open character queues.
615 NSIG Length of buffer chains for the signal. This is the
greatest total value of signals that may await
reception. Each queue occupies 4 words in the memory.
616 NSUB Maximum number of DISCSUB subprograms. This value
does not need any modifications as long as no disc-
resident subprograms that could increase the total
number of the NSUB value are added. NSUB x 2 memory
words are occupied for the use of indication tables.
617 KTSL This word delivers coefficients in order to determine
a new task start priority and the priority increase
and two coefficients for the calculation of the time
slice length assigned to each user.
620 NPAR Number of partitions
621 SAF Size of the active file
622 CDPF Flag for comma
6.3 INFO Table
Address Label Meaning
600 SDAT SYSTEM CREATION DATA
601 SPED AVERAGE CPU SPEED
602 MILU MAXIMUM = INSTALLED LOGICAL UNITS
603 NDCH NUMBER OF DATA CHANNELS PER PORT
604 LPCA LOCATION OF PORT CONTROL AREA
605 TNAP TOTAL NUMBER OF ACTIVE PORTS
606 AFHA ACTIVE FILE HEADER AREA
607 DMR DISCSUB MAP RANGE
610 TOPW TOP WORD OF CORE
611 ABUF AUXILIARY BUFFER SIZE (NO. OF WORDS)
612 TBUF MAG TAPE BUFFER SIZE (NO. OF WORDS)
613 NCOW NUMBER OF EXTRA CHARACTER QUEUE MODES
614 NWOB MINIMUM NUMBER OF FREE MODES
615 NSIG NUMBER OF SIGNAL BUFFER MODES
616 NSUB MINUMUM NUMBER OF DISCSUB
617 KTSL COEFFICIENTS FOR I/O DONE PER TIME SLICE
620 NPAR NUMBER OF PARTITIONS EXCEPT THE MAIN ONE
621 SAF SIZE OF THE ACTIVE FILE
622 CDPF FLAG FOR COMMA
623 TSA TEMPORARY STORAGE “A” POINTER (6 WORDS)
624 TSB TEMPORARY STORAGE “B” POINTER (6 WORDS)
625 TSQ TEMPORARY STORAGE “Q” (6 WORDS)
626 TSZ TEMPORARY STORAGE “Z” POINTER (6 WORDS)
627 TSC TEMPORARY STORAGE “C” POINTER (6 WORDS)
630 HRS CPU TIME HOURS SINCE
631 TSC PART OF HOUR IN TENTH-SECONDS
632 CPLU CURRENT PROCESSOR LOGICAL UNIT
633 CPDA CURRENT PROCESSOR DISC ADDRESS
634 CPTN CURRENT PROCESSOR TYPE NUMBER
635 SDFT SIZE OF EACH PORT’S DATA FILE TABLE
636 DSCO DISC ADDRESS OF “SCOPE”
637 DBYE DISC ADDRESS OF “BYE”
640 DDSP DISC ADDRESS OF “DSP”
641 DSUB DISC ADDRESS OF “DISCSUBS”
642 DMSG DISC ADDRESS OF “MESSAGE”
643 DSYH DISC ADDRESS OF “SYSTEM HISTORY BLOCK”
644 RFLG RECOVER INHIBIT FLAG
645 MASK INITIAL INTERRUPT MASK
646 STK POINTER TO “CALL” STACK POINTER
647 RGS POINTER TO REGISTER BUFFER FOR “CALL”
650 ASQ POINTER TO “CALL” STACK POINTER
651 DBS POINTER TO (BLOCK IN HSA) CELL
652 RCV POINTER TO RECOVER ROUTINE
Address Label Meaning
653 LUT POINTER TO LOGICAL UNIT TABLE
654 TBA POINTER TO MAGNETIC TAPE BUFFER AREA
655 ELB POINTER TO END OF LAST DISC BUFFER
656 INT POINTER TO INTERRUPT HANDLER TABLE
657 NLCB LINE CONTROLLER BUFFER PTR.
660 DKMR LOC, FOR FLAG
661 RWRTC POINTER TO READ-WRITE RETRY-COUNTER
662 CARE POINTER TO COMMON AREA
663 DRUN DISC ADDRESS OF RUN
664 ISFF INTERRUPT SERVICE FAULT FLAG
665 PFRF POWER FAIL RECOVER FLAG
666 BPSP BEGIN PATCH SPACE (AFTER LAST PATCH TO REX)
667 ENDP END OF PATCH SPACE (SET BY STR)
670 JCBRR POINTER TO AN ICB IN REX (9 WORDS) MAY BE USED BY
DISCSUBS
671 ASBL DISC ADDRESS OF “PRINTER ASSIGNMENT BLOCK”
672 STIF START INPUT RETURN FLAG
673 DLOA DISC ADDRESS OF “LOAD”
674 MPRI BASIS SLICE OF PRIORITY
675 DCOP PRINTER TO DIAGNOSTIC CONTROL BUFFER
676 POC DISC DRIVER COUNT AREA
677 ENCC POINTER TO ENTRY OF COUNTER CODE (DIAG)
700 RWRF READ/WRITE DISC RETRY FLAG
701 DDFL DISC DRIVER FLAG
702 ERDC2 ERROR DISC CONTROLLER ROW 2
703 ERDC3 ERROR DISC CONTROLLER ROW 3
704 ERDC4 ERROR DISC CONTROLLER ROW 4
705 DIWF DIAG WRITE FLAG
706 GERR ADDRESS OF “GENERATE ERROR RECORD”
707 CRRF CONTROL READ RETRY FLAG
7 INDEX
Each logical disc data has its own index file. This file contains all file names and the direct addresses to these disc files (as well as the header block address).
An entry in the index file looks like this:
7 words File name
1 word Header block address
The DMAP update is performed according to the entries in the index file.
7.1. INDEX Printout
|0: |140703 |141717 |152716 |152323 |0 |0 |0 |3 |
|10: |140706 |127320 |140722 |140715 |130260 |130400 |0 |1206 |
|20: |140703 |141717 |152716 |152314 |144723 |152000 |0 |7321 |
|30: |122306 |142000 |0 |0 |0 |0 |0 |7027 |
|40: |140723 |141711 |144656 |142702 |141704 |144703 |0 |606 |
|50: |140723 |141711 |144670 |127301 |151703 |144711 |133400 |610 |
|60: |140723 |141711 |144667 |127301 |151703 |144711 |134000 |612 |
|70: |140723 |141711 |144720 |152716 |141710 |152301 |151314 |620 |
|100: |122301 |142703 |0 |0 |0 |0 |0 |7032 |
|110: |122322 |152303 |0 |0 |0 |0 |0 |7066 |
|120: |140723 |141711 |144722 |142701 |142324 |140702 |146305 |622 |
7.2 Removal of the Entry from Address 650
|610: |122322 |150322 |132000 |0 |0 |0 |0 |7305 |
|620: |122322 |150322 |132400 |0 |0 |0 |0 |7307 |
|630: |122322 |150322 |133000 |0 |0 |0 |0 |7311 |
|640: |122322 |150322 |133400 |0 |0 |0 |0 |7313 |
|650: |0 |147304 |142730 |0 |0 |0 |0 |525 |
|660: |0 |0 |0 |0 |0 |0 |0 |0 |
|670: |0 |0 |0 |0 |0 |0 |0 |0 |
8 ACCOUNTS
8.1 General
All the user’s accesses of the operating system are recorded in the ACCOUNT file. A so-called account is created for each user in this file. The use of disc blocks is managed dynamically which means that the account of a user will only be altered if he creates, removes or extends files. The values of the used CPU and connection time, as well as the maximum number of disc blocks, are updated by the “BYE” processor during the during the log in process. The value of this data is determined independently of the user’s privilege level.
8.2 ACCOUNT File
The entries of the ACCOUNT file have the following structure:
Word Content
1-6 Account identification (name)
7 Assigned priority
8 Assigned logical unit
9 Account number (privilege, group and username)
10 Remaining connection time in minutes (x)
11 Remaining CPU time in seconds (x)
12 Number of max. permitted disc blocks (xx)
13 Number of used disc blocks
14 Top use of disc blocks
15-16 Cost of file use
x The values of the remaining connection and CPU time must both be
positive or 100000 (octal), which means that they must not be
limited. These values are updated when the user logs out. The
user cannot log in anymore if the time has expired.
xx The number of max. permitted disc blocks is not reserved on disc
but may not be surpassed by the user.
9 DMAP
9.1 General
Each logical disc unit has its own DMAP. The recent block assignment list of the magnetic disc is stored in this file, which means that the DMAP will be updated at each IPL.
Each entry of the DMAP consists of 4 words which have the following structure:
1st word = cylinder address
2nd word = number of available blocks per cylinder (max. 24)
3rd word = block assignments bit by bit page 0
Bit = 0 = available block
Bit = 1 = occupied block
4th word = block assignments bit by bit page 1
Bit = 0 = available block
Bit = 1 = occupied block
Block assignment is therefore described bit by bit from right to left.
Since only 12 blocks (sectors) are available for each trail in terms of hardware, the upper 4 bits are set to 1.
9.2 Cartridge Printout (Example)
|0: |
|INFO table |
|CALL routine |
|Channel operation |
|Subprograms of the system |
|BUMP |
|Processor activation (PROCT) |
|QUEUE task |
|DQUEUE task |
|Character processing |
|QUEUE processor task |
|Interrupt handler |
|Read/write block |
|SMD/CA driver |
|BPS |
|BUS |
|BSA – ABA |
|Task QUEUE |
|I/O buffer |
|Drivers |
|Core-resident DISCSUBS |
|Port Control Area |
|Top word of CORE |
|Additional partition area up to physical memory termination |
19.7.1 Memory Assignment Description
NIROS page zero Constants and subprogram addresses required by
the operating system are saved in this memory area.
Processor page zero Texts and subprogram addresses used by the
processors are saved in this memory area.
INFO table System information table; this table contains
essential system information for the IPL.
CALL routine DISCSUBS resp. REX routines are called through
the CALL routine.
CHANNEL operation Various OPEN functions are performed through the
CHANNEL operation, e.g. OPEN DEVICE.
SYSTEM subprograms List of the core-resident subprograms.
BUMP This routine is a jump in the task queue and is
performed through JSR, CALL WONA or STI.
PROCESSOR activation This routine activates a processor within the
task.
QUEUE task This routine adds a task to the queue.
DQUEUE task Remove a task from the queue through these
routines.
CHARACTER processing The character queue is processed through this
routine.
QUEUE processor task A processor task is added to the queue through
this routine.
INTERRUPT table Interrupt Handler Table
READ/WRITE block Disc blocks are written on the disc or read
through these routines.
SMD/CA driver These routines are channel programs for the
storage module or Cartridge.
BPS Processor section
BUS Active file within the 64 K (main partition)
BSA Block Swap Area; blocks are swapped within this
memory area.
HBA Header Block Area; file headers are read in this
memory area.
HXA Header Extended Area; if a second header is
required, it will be found in this area.
SSA Subroutine Swap Area; subroutines are swapped
within this area.
DMR DISCSUBS resident in the BASE CORE are resident
in this area.
ABA Auxiliary Buffer Area; this memory area is used
for index files.
TASK queue Task entries are saved in this memory area, 9
words per task.
I/O buffer The input/output buffers are stored in this
memory area.
Drivers Channel programs are found in this memory area.
Core-resident Memory-resident DISCSUBS corresponding to the
DISCSUBS list are stored in this memory area.
PORT CONTROL Port Control Blocks of active parts are found
Area in this memory area.
TOPW Top word of core; last address occupied by NIROS
within the 64 K.
19.8 Page Zero Address Content
Address Meaning
0 Indirect jump to error routine
1 Start address of the interrupt address table
2 Idle location
3 Constant
4 Parameters for NND (is set in RUN state by OPEN)
5 Currently active user pointer
6 Currently active task pointer
7 Start of BSA
10 Start of HSA
11 Start of HXA These 5 addresses are set by SIR.
12 Start of SSA
13 Start of ABA
14 Address of the Partition Control Table (SET BY SIR)
15 Regnant partition pointer
16
17 Start address for DEBUG and DSP, now available
20 Power fail restart
21-41 Constants
42 Mask bits for file types
43 Size of Port Control Blocks
44-66 Constants
67 Digit mask bits
70 Byte mask bits
71 Port Control Area (set by SIR)
72 Start of processor storage
73 System Information Table
74 Escape flag
75 Run time limiter
76 BSA changed flag
77 Error flag
100 Call to the system subroutine
101 Check or another flag
102 Symbol processing
103 Add task to queue
104 Reset task within queue
105 Perform a channel operation
106 Transfer or release available memory area
107 Error stop
110 COBOL DEC. EXTENSION
111 Reserved partition
112 Clear pointers and flags
113 Byte attempt
114 Attempt to input byte
Address Meaning
115 String byte attempt
116 Binary division
117 Binary multiplication
120 Swap task queue
121 Decimal operation
122 Error in SIR
123 Decimal operation
124 Decimal operation
125 Find logical unit table
126 Is it a digit?
127 Is it a letter?
130 Interrupt in interrupt
131 Decimal arithmetic
132 Message to I/O buffer
133 Output registry content
134 Read disc block
135 SKIP RETURN (NORMAL)
136 Save byte to registry 0
137 Decimal operation
140 Start input
141 Start output
142 Save output byte
143 Start IPL
144 Write disc block
145 Symbol queue processing
146 Save help registry to stack
147 Reset and decrease stack pointer
150
151 Physical disc address
152 Read file
153 Constant 30
154 Core-size flag for page registry
155 Disc address of C dump
156 DSP breakpoint
157 Changed to falt 0 in SIR
160-173 Decimal buffer
174-177
The content of the address corresponding to the SUBROUTINE start address is saved starting from address 100-156
The only exception is address 151, here is the physical address of the logical unit null.
19.8.1 Processor Page Zero Address Content
Address Meaning
200-245 Page zero for program load
260-332 Page zero for SYSL and SIR
260
261 Reserved for INSTALL
262 Load MBA file to a memory address
263 Convert RDA to a logical ADR
264 Generate DMAP scheme
265 Disc block symbol in MAP
266 LUVAR pointer
267 LUFIX pointer
270 Start address of housecleaning subroutine
271 Logical unit number
272
273
274 Config file
275
276
277
300
301 Start system initialization
302
303 Write block during SYSL
304 Search pointer
305 Start address of the bad block routine
306 Start address of the INMAS routine
307 Memory assignment start address
310 Active file assignment start address
311 Start address of the build disc address and system address
tables routine
312 LBZUP
313 LPCA = Port Control Area address
314
315 DEBUG address
316 Number of blocks (DISCSUBS)
317
320 SIR start location minus 400
321-331 Constants
332 LSIR
333-374 Unoccupied
375 Start address of the CALL routine
376
377-404 File history
405-440 Write a message
441-504 Erroneous text
504-577 Unoccupied
|500: |
|Accumulator 1 |
|Accumulator 0 |
|Accumulator 3 |
|Address, carry bit |
|Flag, priority |
|Task pointer |
|TSB pointer |
|Chain pointer |
Registry A2 points to the entry with the next higher priority (or to TASKQ if A2 has the highest priority). The pointer points to cell 0 of the entry. LINK points to the entry with the next lower priority. The pointer of the task with the lowest priority points to the fix, unused entry with priority null.
Cell Meaning
0 – 3 Are used to transfer parameters to the task if they
are created for saving the registry when the task is
interrupted.
4 Contains the start address of the task once it is
created and is used as return address if the task is
interrupted. The address is shifted 1 bit to the left
and the carry bit is saved in bit 0 of the cell.
5 (FLAP) Bits 0 to 9 contain the current priority of the task.
The upper 6 bits are used as flags as follows:
Bit Meaning
15 Possible task conflict
14 Task is a processor
13
12
11
10
6 (TASK) Points to the start address of the task. The task
attribute lies prior of the entry point.
Cell Meaning
7 (TCBP) Points to the Task Control Block (TCB) of the user
for whom the task works or is equal to null for a
system task.
8 (LINK) Points to the task entry with the next lower priority.
This cell is equal to null if the task is unused,
indicating the end of the waiting queue.
20.4 Partial Printout of a Task Queue
|53400: |53357 |0 |0 |0 |
|0 – 6 |7 |Name |File name |ASCII |
|7 |1 |ACNT |Account | |
| | | | | |
| | | ||15,14|13,12,11,10,9,8,7,6|5,4,3,2,1,0| bit | |
| | | | | |
| | | |Account user number | |
| | | | | |
| | | |Account Group Number | |
| | | | | |
| | | |Privilege area | |
|10 |1 |TYPE |File type / File protection |binary |
| | | | | |
| | | ||15|14,13,12|11,10,9|8|7|6|5|4,3,2,1,0| bit | |
| | | | | |
| | | |15 – available | |
| | | |14 – read-protected | |
| | | |13 – read-only | |
| | | |12 – copy-protected | |
| | | |11 – read-protected | |
| | | |10 – read-only | |
| | | |9 – copy-protected | |
| | | |8 – executable processor | |
| | | |7 – load active data if processed | |
| | | |6 - start input of the first storage (SWAP in) | |
| | | |5 – available | |
| | | |4,3,2,1,0 – data type 1 | |
| | | | | |
| | | |Bit 9 – 11 for users in the same privilege area | |
| | | |Bit 12-14 for users in a lower privilege area | |
|Word |Length |Abr. |Content/Structure |Represen-tation |
|Addr. |in | | | |
|(octal) |words | | | |
|11 |1 |NBLK |Number of disc blocks (sectors) incl. labels currently assigned to files |binary |
|12 |1 |STAT |File status |binary |
| | | | | |
| | | ||15|14|13|12|11|10|9,8,7,6,5,4,3,2,1|0| bit | |
| | | | | |
| | | |15 – file is being created, not terminated yet | |
| | | |14 – a file replacing the current one is being created | |
| | | |13 – file is being deleted as soon as it is closed | |
| | | |12 – formatted file | |
| | | |11 – available | |
| | | |10 – file cannot be deleted | |
| | | |9,8,7,6,5,4,3,2,1 – available | |
| | | |0 – expanded file (formatted) | |
|13 |1 |NITM |Number of file words per data sentence (only at formatted files). |binary |
|14 |1 |LRCD |Length of file sentences expressed in words (all data files). |binary |
|15 |1 |NRPB |Number of sentences per block (only formatted files, else = 0). |binary |
|16 |1 |NCRD |Number of assigned sentences for linked files, highest written sentence number|binary |
| | |up to 3.2 |at formatted files, number of data-occupied blocks (sectors) at text files. | |
|17 |1 |COST |File cost = the sum charged to another user when he opens this file. The |BCD |
| | | |number is a multiple of 10, so that the maximum sum remains DM 999,90. |without |
| | | | |VZ |
|Word |Length |Abr. |Content/Structure |Represen-tation |
|Addr. |in | | | |
|(octal) |words | | | |
|20 – 21 |2 |CHGS |The (cumulated) charged sum of other users for access to this file. The |BCD |
| | | |highest value can be DM 99.999.90 before the lowest index is ignored since the|Floating point |
| | | |sum representation is limited to 6 digits. | |
|22 – 23 |2 |LDAT |Date of last access. Is replaced at each “open”. |binary |
| | | |Format: | |
| | | |1st word = hours since 1.1.1973 | |
| | | |2nd word = time until the next full hours in tenths of a second | |
|24 – 25 |2 |CDAT |Creation date of the file. Is set at the creation of the file. |binary |
| | | |Format: as LDAT. | |
|26 |1 |NTAC |Access counter; is incremented with “1” at each file opening. |binary |
|27 |1 |CATR |Catalogue sentence number | |
|30 |2 |CLAS |Catalogue class | |
|31 |1 |DSID |Disc ID | |
|32 |1 |NLF. |Load flag (only for drivers) | |
|33 |1 |SINH |Swap inhibit (index header optimized = -1) |binary |
|34 |1 |SIZE |Number of assigned sentence lengths |binary |
|35 |1 |HASH |Checksum | |
|36 |2 |NRCD |Number of sentences per file | |
|40 |10 |DASA |Decimal Accumulator Saver Area |binary |
|50 |20 |DSPS |Memory for DSP | |
|64 |2 |FFDR |First available data sentence (index file) | |
|66 |2 |NOFRC |Number of available sentences by CHAIN (only index files) | |
|70 |101 |FMAP |Data file format 2 | |
|72 |1 |FRDR |First available data sentence (only index files) 2 | |
|Word |Length |Abr. |Content/Structure |Represen-tation |
|Addr. |in | | | |
|(octal) |words | | | |
|171 |1 |HTEM |Reserved for temporary saves, for the allocate, deallocate and account-look-up|binary |
| | | |system subprograms. | |
|172 |1 |STAD |For files in machine code (autonomous or executable) = start addr. of the |binary |
| | | |program. If bit 15 is set, no start address has been assigned. | |
| | | | | |
| | | |At a peripheral driver file = real memory address of the entry point of the | |
| | | |initialising routine. | |
| | | | | |
| | | |At a system driver file = memory address of the routine for ease of | |
| | | |troubleshooting, bit 15=1. | |
| | | | | |
| | | |In case of any other files are all bits STAD = 1. | |
|173 |1 |DREP |If a file is replaced by another file with the same name, this word is placed |binary |
| | | |onto disc address 3 of the replacing file header. | |
|174 |1 |DSAF |Standard length of active files. Is only used for active files in order to |binary |
| | | |indicate the length of active files (number of blocks), pointed out in the | |
| | | |attribute table of the port driver. This number of blocks is determined by | |
| | | |the active file during the initial program load and, whenever a user logs off,| |
| | | |the length of the active file will be restored to this value. | |
|175 |1 |CORA |This is the core memory address of the first data block, and all further data |binary |
| | | |blocks start at intervals of 400 words (octal) from the first data block. If a| |
| | | |proper block of the core memory address remains available, no disc address | |
| | | |will be assigned to it and the corresponding cell of the disc address list | |
| | | |(starting at 200 octal) is = 0. In case of text files and random linked files | |
| | | |CORA is always 0. | |
|Word |Length |Abr. |Content/Structure |Represen-tation |
|Addr. |in | | | |
|(octal) |words | | | |
|176 |1 |UNIT |Number of log. devices (logical unit) saved in the file. |binary |
|177 |1 |DHDR |Real disc address of the file header (3 for the indicated log. device). |binary |
|200 – 377 |128 | |Disc Address List (disc address list) |binary |
| | | |Cells 200 to 377 contain the real disc addresses (of the log. devices | |
| | | |indicated by UNIT) of each data block of the file, except if the file is | |
| | | |expanded or linked. In case of linked files, this disc address does not point | |
| | | |to data blocks but to header extender blocks, each containing up to 256 disc | |
| | | |addresses of data blocks. | |
| | | | | |
| | | |The first address in this list points to the expansion of the first 256 data | |
| | | |blocks etc. | |
| | | |A linked file has no disc address list; all NBLK-1 data blocks are located on | |
| | | |consecutive disc addresses after the termination of the header. | |
1) Structure of File Types
File types are stored in 5 bits as follows:
|Value (octal) |File type |Abbr. |
|03 |Standalone processor or program |A |
|02 |Basic processor or program |B |
|32 |Linked or indexed data files |C |
|31 |Formatted data files |F |
|00 |Permanent system files |P |
|01 |System processor or file |S |
|30 |Text file |T |
|36 |Peripheral Driver |Crossed S |
|05 |Z 80 assembler |O |
2) Structure/content of FMAP
a) Formatted data files
Each word in the FMAP indicates the format and the relative address of the concerning data element from the sentence.
Word 0 from the FMAP defines element 0 from the sentence, word 1 from the FMAP defines element 1 etc.
Structure of the FMAP word:
|15,14,13,12,11,10,9|8,7,6,5,4,3,2,1,0| bit
15,14,13,12,11,10,9 – format of the data element.
8,7,6,5,4,3,2,1,0 – relative address of the data element (number of words from the beginning of the sentence to the beginning of the data element).
The format of data elements is as follows:
|Value (octal) |Format |
|000 |Termination of format build |
|004 |Floating point – binary number |
|005 |Decimal number (BCD) |
|011 |ASCII character chain |
|012 |Binary number without sign |
|077 |File label |
b) Indexed data files
The following information about the indexes is contained in the
FMAP:
|Addr. (octal) |Content |
|70 |Number of indexes (max. 15) |
|71 |Number of current data sentences located in the chain of available sentences. |
|72 |Sentence number of the first data sentence in the chain of available sentences. |
|73 |Number of the first real data sentence. |
|74 |Label of the field, number of OBs/blocks and length of the OB for index 1. |
| | |
| ||15|14,13,12,11,10,9|8,7,6,5,4,3,2,1,0| bit |
| | |
| |15 – label: 0 = main or large field |
| |1 = discrete field |
| | |
| |14,13,12,11,10,9 – OBs/block |
| |8,7,6,5,4,3,2,1,0 – length of OB |
|75 |Start of index 1 of the discrete field |
|76 |First available block in index 1 of the large field |
|77 |First available block in index 1 of the discrete field |
|78 – 167 |4 words for each of the indexes from 2 to 15, with the same structure as the words from addresses |
| |74 up to 77. |
|170 |Available |
24 DISCSUB
24.1 General
A DISCSUB file exists on each system disc and contains all system subprograms. These subprograms are used as a whole by the operating system and in part by the user. The BASIC (see BASIC manual) contains CALLs which perform the subprogram jumps to corresponding subprograms.
These system subprograms either have a size of 256 words (1 disc block) or a size of 512 words. In order to increase the system’s throughput and to save constant loads of subprograms, certain DISCSUBS must be kept resident in the memory.
If the subprogram has a maximal size of 256 words, it will be loaded after SSA; if it is an extended subprogram, the first block after HXA and the second block after SSA will be loaded. A maximal nesting level of 8 subprogram calls may be programmed in case of subprogram calls.
If a DISCSUB calls another DISCSUB, SSA will be written on disc in order to save all temporary memory cells.
If an extended DISCSUB is called, only SSA will be saved. After the call of an extended subroutine, one must make sure that no further extended subroutines are called and that the first block of the first extended subroutine is not used further.
Disc-resident subprograms are relatively slow, since they require at least one disc access in order to load a subprogram onto memory.
A subprogram call nesting requires 3 disc accesses in order to:
- write the calling subprogram onto disc,
- load the called subprogram onto memory and
- load the calling subprogram once more when the called program is terminated.
Address 0 = DISCSUB number
Address 1 = Start address of the first DISCSUB (4467)
Address 2 = DISCSUB number (13) of the second DISCSUB
Address 3 = Start address of the second DISCSUB (117) within the block
Address 4 = DISCSUB number (47) of the third DISCSUB
Address 5 = Start address of the third DISCSUB (227) within the block
Address 6 = Length of the DISCSUB complement
Address 7 = Begin loading the first DISCSUB, including address 7, onto
memory
If other numbers are located before the DISCSUB number, they will have the following meaning:
2xxx = basecore-resident only
1xxxx = DISC-resident only
2xxxx = load onto memory linked
4xxxx = DISCSUB is extended (larger than a block)
4xxx = alternate version for core residency
Determine, at which memory address the DISCSUB has been loaded. Determine the DAT start address with the SYSMOD processor. Add to this start address the number of the DISCSUB.
The result is the memory address starting from which the DISCSUB is loaded. The content of the corresponding DISCSUB is located at this address, for example, address 7.
Example: SAT start address 75254
DISCSUB no. + 7
Memory address 75263
The content of the memory address is 4467.
One must work with the DSP processor after determining the memory address.
24.3 DISCSUB MAPPING
24.3.1 Introduction
Operating systems (NIROS) up to release 3.3 version 5 saved the core-resident DISCSUBS in a directly addressable memory area (64 KB).
In order to overcome the idea of working directly with the memory through directly addressable memory areas, core-resident DISCSUBS have been saved in the memory extension since release 3.3 version 6.
The DAT (DISC ADDRESS TABLE) and SAT (START ADDRESS TABLE) tables indicate the absolute disc address, as well as its start address in the SSA, if the DISCSUB is disc-resident. If the DISCSUB is core-resident, the RDAs will be represented inverted in the DAT and the SAT will contain the start addresses of this DISCSUB in the memory.
• Memory assignment up to release 3.3, version 5
I---------------------------I
PAGE ZERO
I---------------------------I
NIROS
I---------------------------I
PROCESSOR PARTITION
I---------------------------I
BSA UP TO ABA
I---------------------------I
TABLES, DRIVERS, FREE
NODES, PCT, PCB ...
I---------------------------I
Core-resident DISCSUBS
I---------------------------I
DAT, SAT
I---------------------------I
I---------------------------I
TOPW
I---------------------------I
24.3.2 SYSMOD Selection
The decision, whether DISCSUBS should be mapped and with it organised a new, linked, structure of the memory area, is taken under SYSMOD.
If the physical memory size is equal to 64 KB, which means there is no ADDRESS MAP REGISTER, no DISCSUBS may be mapped.
SYSMOD . 3.3
CHANGE HARDWARE SPECIFICATIONS ........................ 0
CHANGE SOFTWARE SPECIFICATIONS ........................ 1
CORE ALLOCATION MAP ................................... 2
EXIT .................................................. 3
USER: 1
SYSMOD . 3.3
ACTIVE FILE SIZE ...................................... 0
DRIVER ................................................ 1
SIZE OF MAGTAPE BUFFER ................................ 2
PORT CHARACTERISTICS .................................. 3
DATA FILES ............................................ 4
PARTITIONS ............................................ 5
CORE RESIDENT DISCSUBS ................................ 6
QUEUES ................................................ 7
TIME SLICE ............................................ 8
DECIMAL SIGN .......................................... 9
COMMUNICATIONS ........................................ 10
DIAGNOSTIC FILE ....................................... 11
USER: 6
SYSMOD . 3.3
DISPLAY CORE-RESIDENT DISCSUB LIST .................... 0
INSERT A = IN CORE-RESIDENT DISCSUBS LIST ............. 1
REMOVE A = FROM CORE-RESIDENT DISCSUBS LIST ........... 2
MAPPED DISCSUBS ....................................... 3
USER: 3
.CURRENT VALUE: N
MAP DISCSUBS IN EXTENSION IF AVAILABLE (Y OR N): USER: Y
The CORE-RESIDENT DISCSUBS rows always indicate a value different from 0, since not all DISCSUBS may be stored (e.g. REQUEUE).
The SYSMOD list indicates how many KB are occupied by DISCSUBS in the larger than TOPW memory area for memory assignment purposes.
24.3.3 SYSMOD Memory Assignment List
CORE SIZE IN KB ............................. 96 140
UNUSED CORE IN EXTENSION IN KB .............. 0 0 140
MAPPED DISCSUBS ............................. 9 11 127
AREA OF PARTITIONS IN EXTENSION ............. 28 34 73
TOPWORD OF CORE ............................. 72776
COMMON AREA ................................. 1024 2000 70777
PORT CONTROL AREA ........................... 160 240 70537
CALL STACK .................................. 26 32 70505
DISCSUBS ADDRESS TABLES ..................... 384 600 67705
AREA DEPENDING ON LU’S ...................... 359 547 67136
PARTITION CONTROL AREA ...................... 148 224 66712
CORE-RESIDENT DISCSUBS ...................... 688 1260 65432
DRIVERS ..................................... 5028 11644 53566
ALM CHANNEL CONTROL BLOCKS .................. 32 40 53526
I/O BUFFER SIZE ............................. 640 1200 52326
SIGNAL NODE QUEUE ........................... 40 50 52256
DATA FILE TABLES ............................ 760 1370 40666
CHARACTER QUEUE ............................. 36 44 50622
INTERRUPT STACK ............................. 25 31 50571
TASK QUEUE .................................. 145 221 50350
UNUSED CORE ................................. 2203 4233 44114
BLOCK BUFFER AREA (ADDR. IS .BSA) ........... 3148 5114 36000
BASIC USER AREA (ACTIVE FILE SIZE) .......... 7168 16000 20000
24.3.5 Setting Up DISCSUBS
In the case of MAPPED DISCSUBS, a DMR buffer of 2 KB will be created between SSA and ABA at the system initialisation (SIR).
The information of the 1st KB page of the DMR will be stored in word 7 (address 607) of the info table. The content of this address is 0 if no MAPPING has been generated.
“C2MD” will be the first available page, indicated by TOPWORD OF CORE, in word 7 (address 407) of the 2nd CONFIG block.
Setting up core-resident DISCSUBS through SIR is a process performed in the order that the DISCSUB numbers are entered in the CONFIG block.
The process of transferring DISCSUBS onto start addresses is performed for each DISCSUB in the CONFIG block 3 list. If the available area is too small, the DISCSUB will be transferred to the DMD area. If partitions exist, DMD will be located over the additional RUN PARTITIONS.
Each DISCSUB will be entered in the DAT of the RDA.
The start addresses will be saved onto memory during the SAT.
If the DISCSUB is disc-resident, the corresponding entry from the SAT will contain SSA’s start address.
If the DISCSUB is core-resident and may not be saved onto expanded memory (core-resident flag = 2000), the corresponding entry from the SAT will contain its start address from the memory.
If the DISCSUB must be saved onto expanded memory, the corresponding entry from the SAT will contain a start address located in the DMR.
The pages for MAPPED DISCSUBS will be entered in the MAT table.
24.3.6 Calling DISCSUBS
The DISCSUB is checked for core-residency through the entry in the MAT (x) during the DISCSUB call (x). MAT continues to deliver a page number (P) if DISCSUB (x) is MAPPED, which means it is located in the DMD or DMR area.
The page number (P) is written in CALL stack, otherwise, null is written.
Afterwards, the PCT addressed by RPP is modified in such a way that both entries corresponding to DMR are replaced by page numbers (P) and P + 1 and loaded onto ATT.
During the return from a DISCSUB, ATT will be reset according to the stack information if the calling routine has been a MAPPED DISCSUB.
Pointers, flags and tables
A table, flags and pointers have been generated for the DISCSUB MAPPING.
I----------------I----------------------------------------------------I
I INFO and DMR I Page number is the first page of the DMR. I
I (Word 7 of the I It is 0 if no DISCSUB MAPPING is available. I
I info table) I I
I----------------I----------------------------------------------------I
I C2DMD I This address contains the page number of I
I CONFIG block I the DMD. I
I----------------I----------------------------------------------------I
I DAT I The entries for core-resident DISCSUBS are I
I I not complemented anymore. I
I----------------I----------------------------------------------------I
I MAT I MAP ADDRESS TABLE per DISCSUB entry (page no.) I
I I Bit 15 = 0 DISCSUB is disc-resident I
I I 15 = 1 DISCSUB is core-resident I
I I 14 – 0 = N N unequal to 0, where N is the page I
I I no. of the MAPPED DISCSUB. I
I I If N is equal to 0, the DISCSUB is I
I I core-resident, but not MAPPED. I
I----------------I----------------------------------------------------I
I B (2000) I BASE CORE ONLY I
I I A DISCSUB represented by such a number may I
I I not be stored. I
I----------------I----------------------------------------------------I
RIP = Regnant Partition Pointer
24.3.7 Further Modifications
Incorrect HW-parameters: If PARTITIONING or MAPPED DISCSUB is
activated and the phys. memory size is
smaller than allowed by the configuration,
a minimal configuration is loaded after the
PARTITIONING SWITCHED OFF INCORRECT CONFI-
GURATION SPECIFICATION message.
Only the master port will remain active.
Only PARTITIONING has been deactivated until
now.
Buffer overflow: A minimal configuration is loaded for traps
111 and 121 so that the master port may
establish a new configuration through SYSMOD.
TRAPs: The address of CALL for the disc and memory
address has been outputted for core-resident
DISCSUBS until now during TRAPS in
deactivated DISCSUBS.
The FAULT DISCSUB has been modified in such
a way that, instead of the address, the
DISCSUB number is outputted.
25 File Organisation Methods
IOCS (Input Output Control System) is a part of the NIROS operating system that controls and monitors data access. Disc files may be processed properly through time-sharing.
Following data organisation methods are supported by IOCS:
- sequential files,
- formatted files,
- relative files,
- index files and
- text files
25.1 Sequential Files
The sequential file organisation method is mainly used for storage devices that do not allow data access.
These are: Files on magnetic tapes and
Printer files
Since this organisation method allows minimal access time, it may also be used by disc files if these must be processed sequentially.
25.2 Formatted Files
The “formatted” organisation method is generally only usable for files on magnetic discs. Each record in the formatted file has the same format, as defined in the header block of the FMAP words (see structure of header blocks). The data type and addressing of each element within the record is defined in this format map (FMAP). If a formatted file is assigned through the format processor, only 64 field descriptions may be entered for the record structure. The length of a data record may be from 1 up to 256 words, where only an integer record number may exist in a block. This means that no records may surpass the block limits. Usually only the header block is written when assigning formatted data. The physical data blocks on the disc will be dynamically assigned in case of formatted files, so that a file will always occupy as little space as necessary. The data blocks require no predefined, terminated disc area, but are assigned through a list of available disc sectors.
We can now differentiate between the following methods based on header structure and full capacity of the file:
- formatted files or
- expanded formatted files
Headers of formatted files will occupy 127 words and the remaining 128 words will contain the direct addresses of max. 128 data blocks. This file form significantly reduces its capacity, however, it requires only 2 disc attempts in order to read the corresponding data block.
• schematic representation
Attempt Disc Block
1.
For extended formatted files, the header itself occupies 128 words. The remaining 128 contain no data block address, but max. 128 header-extended block addresses. 256 data block addresses are contained in these 128 header-extended block addresses. This organisation form has a 256 times extended capacity, but requires three disc attempts for it.
• schematic representation
Attempt Disc Block
The logical record number of the data record and the logical field number of the field within the record are to be entered in the user program for data access purposes. Based on the information in the FMAP, a plausibility control of the field to process will be taken from IOCS.
25.3 Relative Files
The “relative” organisation method is generally only applied for files stored on magnetic discs.
A relative file consists of a file header block and data blocks for the storage of data records. There is no format map (FMAP) and no list of data block addresses as by formatted files. If the user performs an area assignment for a relative file through FORMAT, this file will occupy a terminated area of the disc in regards to the size specified by the user through the record length and the max. number of expected records. Since the records are concisely linked together, the block limit will be surpassed in the case of this organisation method. The size of this relative file is only limited by the capacity of the logical unit.
The relative record number and the record length suffice for the IOCS to determine the address of the sector to access within the memory (no disc address) for placing the desired record. Usually, only a single disc access is required per record, except if the record exceeds the sector limit. A great disadvantage of this organisation form is that the file is not dynamically assigned, so it disposes very often of blank spaces within the disc.
The logical record number of the data record, the first position of the desired field within the record and the field length must be defined in the user program for file access. Since no logical record format description is available for formatted files, IOCS performs no plausibility control. This requirement must be completed by the user program.
25.4 Index Files
The “index” organisation method is usually only used for files stored on magnetic discs.
An index file occupies a limited area of the magnetic disc. A number of blocks at the beginning of the file contain an address list. Apart from this list, it is also possible to add 14 further record key lists. As opposed to relative files, index files use no logical record numbers for identifying a certain data record, but the concept of ordering, so a certain data record must be placed in order at a time. Up to 15 different criteria of order may be defined for a data record and placed in the record key lists, whereby the key can only point to a single location. The list file is opened and removed without affecting the data records.
Each key list of an index file consists of 3 levels:
- master level (main index)
- coarse level (coarse index)
- fine level (fine index)
The main index (master level) is usually a block (256 words). The size of the coarse and fine indexes does not depend on the maximal number of records of the file. IOCS occupies two words from each block of a key list and each key within the list has a two word long pointer.
The number of keys for each list block is the integer value of:
254 / (L + 1),
where L is the key length expressed in words.
The sector address of the corresponding block within the coarse level is linked to each key of the master level; and the sector address of the corresponding block within the fine level is linked to each key of the coarse level. Each key of the master or coarse level is identical to the greatest (highest value) key of the block from the next lower level, pointed out by the corresponding sector address. The blocks within each level are ordered in a scattered way, however, the keys within each block are sorted in alpha numeric ascending order.
IOCS addresses a specified key by evaluating the first key with an equal or greater value from the master level. That is how a block from the coarse level is selected. The corresponding block from the fine level may be found in the same way, by performing a comparison with the specified key. Each key from the fine level addresses a data record through a relative record sum. This means that a data record may only be read at the 4th access. In order to avoid this, IOCS occupies four buffer areas, so that it can work with the next key in case of consequent disc transports.
In order to establish an approximate number of blocks needed for the list, the following formula may be used:
- SB = 254 / (L + 1)
- GF = AD * 2 / SB + 1
- GC = GF / SB – 1
GS = GF + GC + 1
This formula only determines an approximate value. The number of blocks in the coarse level may not exceed the number of keys per block, otherwise, the master level would exceed its block limit.
• Abbreviations:
SB = Number of keys per block
L = Key length expressed in words
GF = Size of the fine level expressed in blocks
AD = Number of data blocks
GC = Size of the coarse level expressed in blocks
GS = Size of the list expressed in blocks
This formula only determines an approximate value. The number of blocks in the coarse level may not exceed the number of keys per block, otherwise, the master level would exceed its block limit.
Schematic representation of an index file with 2 key lists:
|Header block of file |
|Master level 1 |
|Master level 2 |
|Coarse level 1 |
|Fine level 1 |
|Coarse level 2 |
|Fine level 2 |
|Data blocks |
Each level block of an index file has the following structure:
|F; N; L |
|D |
|P 1 |
|K 1 |
|P 2 |
|K 2 |
|P 3 |
|K 3 |
| |
|P n |
|K n |
| |
25.5 Text Files
The “text” organisation method is usually only used for files stored on magnetic discs.
A text file is not formatted and contains a single chain of characters which can be as long as the available disc capacity. All characters are saved in 7 bit ASCII code, whereby the eighth bit is always set to 1. The text is built from text rows, separated only by RETURN codes from each other, as well as text pages, which are separated by FORM codes from each other. Each data block from the disc can store 512 characters, where each block, except for the first one, may be filled by the file. The chain of characters is terminated by one or more null bytes. For random accesses, a hypothetical data record length of 512 bytes (256 words) is assumed, so that the access method of text files will correspond to that of relative files.
25.6 File Definition
File definitions (record length, organisation method etc.) are not required when programming with Business-Basic.
- The IOCS required data for processing is transferred from file labels for disc files.
- All standard values are used for punchcard files.
- The compulsory parameters from the open no. record are transferred to the IOCS (optional) or standard values are replaced for printer files.
25.7 File Name
In the case of files on magnetic discs, the file name consists of 1 to
14 letters and/or digits. Only the special character “.” is allowed. The first character of the file name must be a letter.
As opposed to file names for magnetic discs, file names for printer and punchcard files are set up by the system because a single file may be opened by a peripheral device. The file name will be the name of the corresponding channel program.
25.8 The Concept of Logical Units
While processing files on magnetic discs, especially at the termination of multiple sessions and the processing of multiple simultaneous issues, it becomes of advantage if the disc packs are not stored on the same physical drive.
This is achieved by assigning logical unit numbers (LU numbers). The LU numbers are assigned by the “INSTALL” processor. At the same time, the operating system learns which physical unit corresponds to which logical unit. The system disc will always correspond to logical unit number 0.
25.9 Record Pointers
IOCS generates a record pointer as soon as a file is opened for magnetic discs and printer files. If several participants try to access the same file simultaneously, an individual pointer is created for each participant.
The record pointer represents the momentary access position of the file, which is the relative record number of recently processed data records within the file.
The record number of recent data blocs (sectors) and the byte position within this block pointing to the most recent processed character are generated for text files.
26 Data Security
The operating system contains a series of data security systems that prevent unpermitted access to files, processors and user programs.
Three methods of data security systems may be differentiated.
• Password Security
Password security is used in order to prevent unauthorised access to processors, programs and files. Passwords are only known by the user who is authorised to access the processors.
• Privilege Security
Privilege security prevents access to data assigned to a higher privilege level than the one of the user. Four privilege levels are managed by the operating system, organised in the following way, starting with the highest priority:
- system level
This privilege level is only available to NCAG specialists and has no system limits.
- manager level
The manager privilege is the highest participant level and allows access to all commands, instructions and functions used for system control. Some commands, depending on the system, may only be performed from the master workstation.
- user level 1
This privilege level allows access to the programs shared by the manager and a subset of available system commands.
- user level 2
This privilege level allows access to the programs shared by the manager and a subset of available system commands.
• Functional access security
The functional access security represents an expansion of the privilege levels since each file may be protected by a combination of the following: read-only, read-protected and copy-protected.
This security can also be applied to equal and lower privilege levels. There is no security measure for higher privilege levels.
27 TAMOS
The TAMOS (Terminal Auto-Operating and Monitoring System) operating system was created as an expansion to the existing operating system, easing the following tasks of the system user.
- data carrier processing,
- data security and reconstruction,
- program structuring and program selection,
- processing and controlling the process of tasks and
- diverse processing functions.
Moreover, the system user is led through the entire disk drive of “his” system by dialog support.
27.1 Selectors
TAMOS offers program structuring in the form of selectors organised in a three-level tree-view. A supervisor selector is offered by TAMOS for this system manager, containing all programs that will help TAMOS reach its aim.
The selector has the following structure:
| | |Supervisor Selector | | |
|Level 1 | | | | |
|Level 2 | | | | |
| |System maintenance |Utility programs |Spooling |System subprograms |
|Level 3 | | | | |
| |- set up selector |- day start |- set up spool file |- print archive file |
| |- update selector |- day termination |- start spooler |- show archive file |
| |- remove selector |- data security |- cancel spooler |- printer assignment |
| |- print selector |- reconstruction 2nd gen. |- show log file |- system security |
| |- message maintenance |- reconstruction 2nd gen. | |- system reconstruction |
| |- text maintenance |- disc setup | |- system commands |
| |- program list |- print log file | | |
| | |- format | | |
| | |- set up clock | | |
| | |- show participant | | |
| | |- turn off system | | |
New selectors may be set up through the supervisor selector. These will be assigned a privilege level of 0. Max. 15 selectors may be created for level 1. 15 level 2 selectors may be created for each selector from level 1 and 15 level 3 selectors may be created for each selector from level 2. In theory, 3375 different programs are made available to each participant in his program sector.
The system manager therefore has the following tasks:
set up participant constants,
assign passwords and
define the corresponding program selectors.
27.2 Data Backup
Data Backup is completed automatically at the end of each work session based on three generator principles. The system manager is required to copy and backup all data carriages where a content update has taken place.
TAMOS allows setting up and processing max. 17 logical disc units, each containing three packs.
These three packs have the following functions:
- work pack 1st generation
- backup pack 1 2nd generation
- backup pack 2 3rd generation
The backup packs are always used when the 1st generation ones prove to be erroneous.
Each logical unit is defined by the following unit number:
0 = system pack
1 = user packs
2 = user packs
.
.
16 = user packs
For the identification of a pack an additional archive label of two characters has been added to the logical unit number.
The archive control file, located on the system disc and managed by TAMOS, contains three packs, each assigned to this system disc.
TAMOS allows the access of several system discs within the setup configuration.
In case of defective works, sources or aim packs, a reconstruction is required by TAMOS in order to establish that all three generation principles have been maintained.
27.3 System Monitoring
All essential system events during the logical day cycle are recorded by TAMOS in a log file and may be called and analysed if needed.
If program interruptions (e.g. power failure) occur during the day cycle, TAMOS continues performance from the point where it was interrupted after establishing the cause and the system manager is notified of the event.
Before a user program may start, TAMOS checks if:
- the manager of today’s cycle has been released (start of day),
- the manager has registered all necessary data carriages (disc registration),
- a standalone processor is active,
- the program may run, for example, only at the master workstation,
- the correct (if required) password has been entered,
- the previous program has been terminated correctly or if a 1st generation reconstruction of the backup generations is required.
27.4 Control Files
TAMOS requires for its operation, data security and reconstruction measures, as well as performance control of tasks, several control files on the system disc.
• Log file
All essential system events during the logical cycle of the day are stored in this file.
• Message file
This file contains all messages that TAMOS shows the user on screen.
• Archive file
Contains archive names (is not checked), logical unit numbers and archive label for all logical disc units created by TAMOS on this system disc.
• Participant and program control file
This file contains a control record for spooling and one for each dialog workstation by setting up a required control parameter from the program selector or from the task waiting queue for monitoring the program performance. Moreover, it serves to controlling and monitoring the required cycles e.g. new formatting or reconstruction of data carriages.
• Spool file
This file contains the waiting queue for tasks running in the background partition. It contains an entry for each task with its name and a task description.
• Program selector file
The participant has been assigned a selector file for each created account, containing the messages on screen, shown as text on screen, and the parameters required for the programs running.
27.5 Spooling
A so-called “phantom port” may be created for each configuration, which will run on the background partition. This “phantom port” disposes neither of the keyboard, nor of the screen. This means that no program interventions may be made by the user through the keyboard and he may not be informed through the screen.
Spooling represents a part of TAMOS that controls the processing of programs and printer processes.
The spooler starts the task contained in the spool file. The processing control is transferred to the task starting, which will then run on the background partition. Once a job ends, whether correctly or not , the processing control returns to the spooler.
Each task within the spool file has a label informing about its present state.
WAITING The task waits for its execution.
BLOCKED The execution of a task has been blocked by a user.
ERROR The execution of a task has been interrupted due to an
error.
ACTIVE The task is being executed at the moment.
STOP The execution of the task has been interrupted due to an
error and the spooler stopped.
If a task has been executed and terminated correctly it will be removed by the spooler from the spooler file. The spooler will afterwards look for the first task at the beginning of the spool file having the “WAITING” status and will try to execute it. If this does not work, because, for example, a disc unit is not available for access, this task will receive the “ERROR” status. The spooler will then check its task description (specified by the programmer), if it contains the word “stop” or if it can start the execution of the next task. If the spooler must be stopped, the task will receive the “stop” status and will await an intervention from the user.
If a task that enables the printing of a text file is found within the spool file, this process will also run according to the above scheme, whereby TAMOS will transfer the processing control from the spooler to the standard printing program.
This program checks prior to the actual printing of the text file with which paper format the printing should take place (contained in the task description). If the format corresponds to the format of the previous task, the printing task will be started directly.
During a format change, the printer is given a new format label and the first page of text is printed as a test.
The system manager may carry out the interventions of the supervisor selector over the spool file and request the printing of the log file.
27.5.1 Supervisor Selector
If the user logs in password-protected as manager, he will dispose of the following options concerning the system control through an area selector:
- system maintenance
- utility programs
- spooling
- system programs
Explanations to these options may be found in the user manual.
27.5.2 System Maintenance
This option allows the manager to process selectors and match system texts to corresponding languages.
27.5.3 Setting Up a Selector
The manager may set up program selectors through this option and create user accounts within the system for new participants. This user account is required by the operating system in order to perform the management and interruptions of participant sessions. The username corresponding to the account identifies the program selector of the participant. The entire program selector is organised and specifications in regards to data security are defined (executable only in standalone mode).
27.5.4 Updating a Selector
This instruction allows specific corrections and expansions of the program selector of a certain user. It is recommended to first print the corresponding selector (executable only in standalone mode).
27.5.5 Removing a Selector
The corresponding user account and the program selector assigned to it will be removed. The participant will not be recognized by the system any more. All user-specific files should already be removed up to this point, since these will not be removed automatically (executable only in standalone mode).
27.5.6 Printing a Selector
This instruction prints the desired selector on the system printer while taking into account the selector structure.
27.5.7 Notice Maintenance
Messages to be outputted in TAMOS, normally offered in German and English, may be attached to the corresponding language through this instruction.
27.5.8 Text Maintenance
Like the “notice maintenance” instruction, this instruction allows matching the texts used by TAMOS to their corresponding language.
27.5.9 Program List
A program saved on the magnetic disc may be listed through this command.
The listing occurs in the following way:
- program area (instructions),
- cross-reference variables,
- cross-reference row numbers.
Before a logical day cycle may begin, the manager must select “day start”. It will be checked if all required data backups have been performed and if formatting resp. reconstruction processes are not necessary. The manager will learn about the state of the magnetic discs through the disc archive print (executable only in standalone mode).
27.6 Service Routines
This group must be called by the manager within the logical day cycle, otherwise it wouldn’t be a logical day cycle.
27.6.1 Start of Day
Before a logical day cycle may begin, the manager must select “day start”. It will be checked if all required data protections have been performed and if formatting resp. reconstruction processes are not necessary. The manager will learn about the state of the magnetic discs through the disc archive print (executable only in standalone mode).
27.6.2 End of Day
This instruction will be performed by the manager at termination of each work session (logical end of day) in order to perform the necessary data backup. Prior to the data backup, the manager will be informed of essential events of the day through the log file printout.
Afterwards, TAMOS will require to backup all magnetic discs that have suffered content updates during the logical day cycle (executable only in standalone mode).
27.6.3 Data Backup
Data backup copies all content-wise updated data carriages (1st generation) on the oldest safety disc (3rd generation). The former 2nd generation – as after the copy during the end of day – and the 3rd generation, and the former 3rd and 2nd generations will be performed within the archive. The day’s work may be continued. The program allows additional data backup for large data amounts and high backup requirements (executable only in standalone mode).
27.6.4 Reconstruction 2nd Generation
Two options must be mentioned.
- defective system disc
Most importantly, a new 1st generation will be created from the 2nd generation in the disc sets performed in the disc archive.
- non-defective system disc
First and foremost, a new 1st generation will be created from the 2nd generation in the disc archive as recently performed disc sets.
Hereby, even after the failure of the work disc, only the most recent data will be lost (executable only in standalone mode).
27.6.5 Reconstruction 3rd Generation
- defective system disc
Most importantly, a new 1st generation will be created from the 3rd generation in the disc sets performed in the disc archive.
- non-defective system disc
First and foremost, a new 1st generation will be created from the 3rd generation in the disc archive as recently performed disc sets.
The 3rd generation reconstruction must be performed by the user if the 2nd generation reconstruction has been terminated successfully (executable only in standalone mode).
27.6.6 Setting Up Drives
All work drives accessed until this point will be set up through this instruction and will hereby be available to the user. Afterwards, all unused magnetic discs will be rejected by the system. After setting up the work drives under their logical unit number, the correspondence between user programs and data files must be set up (executable only in standalone mode).
27.6.7 Exchanging Drives
This instruction is used in order to copy the content of an exchange drive of the second performance disk drive to a random hard drive (not drive 0) (executable only in standalone mode).
27.6.8 File Print Log
All important system events from the log file will be outputted on the central system printer. This instruction is automatically performed at the “end of the day” (executable only in standalone mode).
27.6.9 Formatting
The “formatting” instruction is only used in order to physically check new or defective magnetic discs for availability. Either a new drive set, built from the work disc and one or two security generations, or a physically defective disc from an existing driver set is added. Moreover, a logical unit may be removed by removing it from the drive archive.
After the termination of formatting, a new drive archive is printed (executable only in standalone mode).
27.6.10 Setting System Time
An eventually required system time correction may be performed through this instruction. This may be necessary, for example, after a power failure, in order to correct the system time.
27.6.11 Managing Port Priorities
• Introduction
Port priority management should improve the efficiency of the system. This is only performed through a new time slice algorithm.
• Determining priorities
Individual port priorities are set up under TAMOS.
Select function 2, “UTILITIES” from the system selector. Afterwards select function 12 “port priorities”.
After selecting function 12, a display of the following mask will appear (example):
|PORT |USER |DESCRIPTION |RUNMODE |AGE |STATUS |PRIORITY |
|0 |0,1 |PORT INQUIRY | | | |7 |
|1 |0,0 |LOGGED OFF | | | |5 |
|2 |0,0 |LOGGED OFF | | | |4 |
|3 |0,0 |LOGGED OFF | | | |2 |
If the priority needs to be modified, insert the port number and then the new priority.
The mask will appear anew, so the priority for the corresponding port is already updated.
The value of the priority is set at word 7 of each Port Control Block. 0 up to 8 are possible entries. For priority 0, a “1” is set in PCB and for priority 8 an “11”.
• Description of the algorithm
The time amounts of each port are independent of the sum of amounts for all active ports.
Example 1: All 3 ports are set up with priorities 1, 2, 3, so the
performance within 6 time slices will be the following:
Priority 3, priority 2, priority 3, priority 2, priority
3, priority 1.
The port with priority 3 will be used 3 times, priority 2
2 times and priority 1 only 1 time.
Example 2: 2 ports are set up with priorities 1 and 8, so the
performance within 9 time slices will be the following:
8 times the port with priority 8 and 1 time priority 1.
27.6.12 Shutting Down the System
After the “end of the day” the manager shuts down the system through this instruction. All connected peripheral devices are also shut down.
The manager workstation is shut down by pressing the green button.
27.7 Spooling
The manager is allowed to affect the control of background processing.
27.7.1 Displaying Spool File
All tasks that must be run in the background, including their description, are contained in this file. All task descriptions are displayed on screen through this instruction. The manager has the possibility to modify individual parameters within the task description or the position of tasks within the spool file, whereby he will also change the order in which they will be performed.
27.7.2 Starting Spooling
This instruction starts background processing. It can only be executed if the spooler has been properly set up under TAMOS. The tasks from the spooler file are performed sequentially.
27.7.3 Cancelling Spooling
Spooling may be cancelled either imperatively or after the execution of the current task through this instruction.
27.7.4 Displaying Log File
The log file will be displayed for the manager on screen, showing events liked to all jobs, both running in the background and those being processed. The log file will be analysed at the end of the entries from the background partition.
27.8 System Programs
This group of instructions allows the manager to perform certain operations of the system discs and to branch out from TAMOS to NIROS.
27.8.1 Printing Archive Files
The manager can inform himself at all times about the current status of the archive file through this instruction. This means that all logical units managed by TAMOS, ordered according to their generations, will be printed (including the status label).
27.8.2 Displaying Archive Files
This instruction shows a part of the archive file on screen and allows the manager to mark for backup magnetic discs that have not been modified content-wise.
27.8.3 Printing Assignment
The assignment table for logical printer $LPT may either be created or updated. An entry may be void or only consist of a printer name within the assignment table.
27.8.4 System Security
This instruction may be executed only if “end of day” has been executed prior to it. The hard drive of the first disk drive of the 1st generation exchange pack is copied with the same archive number.
27.8.5 System Construction
The system exchange pack will be copied on the hard drive of the first disk drive.
27.8.6 System Commands
The manager may leave the TAMOS operating system through this instruction and branch out to the SCOPE NIROS command processor. Thereby, the user will have the option to execute all instructions offered by the operating system. These instructions are direct calls to the processor.
28 SYSMOD Description
The “SYSMOD” processor enables modifications of the hard and software specifications with desired parameters within the NIROS operating system. Parameters may be entered in the dialog box on the master workstation. The user may view all parameters that are available for modification.
Parameters are saved in several system files (e.g. CONFIG, NIROS, DRIVER). Parameters may be set no matter the SYSMOD configuration. The IPL procedure checks if the operating system identified by the parameters may or may not be installed.
SYSMOD leads the user with the help of a multi-level function selector.
The input of a parameter is terminated by hitting the “CR” key. If the CURRENT VALUE is kept, “CR” will be hit without prior input. Hitting the “CR” key without prior input causes a return to the selector structure without altering the parameter.
Hitting the “ESC” key causes branching out to the main level.
A gapless protocol may be outputted on a random printer.
Similar tasks, performed on screen, may be terminated by hitting the spacebar.
The task is continued by hitting the “CR” key.
28.1 Calling SYSMOD
The processor runs only on the master workstation. The call is performed under SCOPE.
The processor displays the following text:
PRESS SPACE KEY TO STOP OUTPUT, CR TO CONTINUE
ENTER FILENAME OF YOUR PRINTER’S DRIVER,
CR IF NO PRINTER IS AVAILABLE:
You may enter the name of the printer’s driver here. If a name is entered, a gapless protocol of the SYSMOD processor task will be printed on the specified printer. If the “CR” key is hit without a prior input, the tasks will only be performed on screen.
A printer protocol should be prepared for reconstructing parameter inputs in case of eventual issues that may arise.
28.2 Main Selectors
The following main groups may be chosen:
CHANGE HARDWARE SPECIFICATIONS .............. 0
CHANGE SOFTWARE SPECIFICATIONS .............. 1
CORE ALLOCATION MAP ......................... 2
EXIT ........................................ 3
28.3 CHANGE HARDWARE SPECIFICATIONS
Here the user may set parameters for the hardware equipment of the system to install. E.g. he may enter requirements related to the deployed computer, the memory configuration and the type of the connected magnetic disc.
The following options are listed:
ADDRESS MAP REGISTERS ................ 0
CORE SIZE ............................ 1
DISC CHARACTERISTICS ................. 2
NO OF ALM CONTROLLERS ................ 3
CHANNEL – PORT COLLECTION ............ 4
28.3 ADDRESS MAP REGISTERS
This parameter determines if a new computer (module no. 1517) with basic registers or an old computer (module no. 1513) is installed. Computer 1517 allows partitioning.
After its selection, the current parameter is displayed:
CURRENT VALUE: X
and then the input of a parameter is required.
ADDRESS MAP REGISTERS AVAILABLE? (Y OR N):
Input: Y = computer 1517 will be used
N = computer 1513 will be used
If “N” is entered, a “Swapping System” will be installed because the computer (1513) allows no partitioning.
28.3.2 CORE SIZE
After its selection, the current parameter is displayed:
CURRENT VALUE: XXX
and then the input of a parameter is required.
CORE SIZE IN KB:
The memory configuration of the system, to which the BS will run, will be entered. The entered value will range from 64 to 256 KB. A memory expansion, independent of the available memory modules, is possible by 32 KB (e.g. 64, 96, 128, 160, 192, 224 or 256).
28.3.3 DISC CHARACTERISTICS
This parameter determines which type of disc drive has been connected.
After its selection, the following is displayed:
DISC CAPACITY .................................. 0
0 must be inputted here. Afterwards, the following will be outputted:
ENTER DRIVER NO:
Strictly “0” should be inputted here!
An entry unequal to “0” is only possible in the case of mixed SM and CA disc drives. In this case, “0” will mean storage module and “1” cartridge.
The number of cylinders will be entered as CURRENT VALUE, now configured for the current driver.
The number of cylinders must be entered. The following values are currently available:
403 = 33 million byte storage module
256 = 21 million byte storage module
408 = 5 million byte cartridge
256 = 3 million byte cartridge
128 = 1.5 million byte cartridge
The cylinder input of storage module systems is the number of cylinders without a track area. This area currently consists of 2 cylinders.
28.3.4 NO. OF ALM CONTROLLERS
Only permitted for RAP systems.
Input may be either “1” or “2”, depending on the number of insertions (module no. 1819).
Only the currently configured number of insertions (1819) is displayed as CURRENT VALUE.
28.3.5 CHANNEL PORT CONNECTION
Only permitted for RAP systems.
The number of connected workstations is entered for each ALM channel here.
The input of the ALM channel number is required by the following instruction:
ALM CHANNEL NO
“Y” or “N” may be entered as CURRENT VALUE.
Y = 2 places (MASTER/SLAVE) for this channel
N = 1 place (MASTER) for this channel
The entered channel number corresponds to the following physical ALM channels:
Input: 0 1 2 3 Input: 4 5 6 7
1st ALM: 1 2 3 4 2nd ALM: 1 2 3 4
Note: This input does not correspond to the logical port number.
After the channel number (-1) is entered, the question:
CHANNEL IS CONNECTED WITH TWO PORTS?
will require a “Y” or “N” answer.
Y = MASTER and SLAVE are connected to this ALM channel.
N = only MASTER is connected to this channel.
28.4 CHANGE SOFTWARE SPECIFICATIONS
Software-specific parameters will be set here, mainly required during the IPL process in order to establish and determine an exact memory assignment.
The following options exist:
ACTIVE FILE SIZE ..................... 0
DRIVERS .............................. 1
SIZE OF MAGTAPE BUFFER ............... 2
PORT CHARACTERISTICS ................. 3
DATA FILES ........................... 4
PARTITIONS ........................... 5
CORE-RESIDENT DISCSUBS ............... 6
QUEUES ............................... 7
TIME SLICE ........................... 8
DECIMAL SIGN ......................... 9
NLC BUFFER SIZE ...................... 10
28.4.1 ACTIVE FILE SIZE
The current size of the ACTIVE FILE is provided as CURRENT VALUE.
Input is required by the:
ACTIVE FILE SIZE IN KB:
message.
The ACTIVE FILE must be sufficiently large to accept the largest program (incl. data area). 14 KB will be transferred from PM to master packs. The ACTIVE FILE may not be assigned a lower value than 12 KB, otherwise system components such as TAMOS and D2DUTIL will not be executable anymore.
The size of the ACTIVE FILE also determines the size of the main partition (see chapter 28.4.6).
28.4.2 DRIVERS
The following options are listed:
DISPLAY DRIVERS ........................... 0
SELECT DRIVERS ............................ 1
• DISPLAY DRIVERS
All drivers ($ files) located on the system disc are listed in the following form:
NAME IGNORE DRIVER TYPE IN CORE: SIZE (10) SIZE (8)
NAME : Name of the driver
IGNORE DRIVER : Marks if the driver is made
memory-resident during the IPL process or
not.
Y = driver is not made resident.
N = driver is made resident.
TYPE : Type of driver – SYSTEM
- PERIPHERAL
IN CORE SIZE (10) : Occupied memory space in words (decimal).
SIZE (8) : Occupied memory space in words (octal).
• SELECT DRIVERS
Sets a loading label for random drives or removes them. This means that the driver that will be loaded onto memory during the IPL may be specified here.
Only memory-resident drivers may be used during runtime!
“Y” or “N” will be displayed as CURRENT VALUE.
Y = driver is ignored during IPL, which means it will not be
loaded.
N = driver is not ignored during IPL, which means it will be
loaded.
“Y” or “N” will also be available as input, with the same significance.
28.4.3 Size of Magtape Buffer
The size of the magnetic tape buffer will be inputted in words for the magnetic tape connection. It must be as large as the largest band block to process. The maximal configurable buffer size is 8 KB (4096 words).
The $MTX driver must be activated during the MT connection (see chapter 28.4.2).
The current buffer size will be displayed as CURRENT VALUE.
28.4.4 PORT CHARACTERISTICS
The following options are listed:
NO OF PORTS ................................. 0
PORT NO OF FIRST PORT ....................... 1
SET RWS PROGRAM ID .......................... 2
• NO OF PORTS
Allows setting the number of spaces for the following drivers:
- $AMLD (DAP system)
- $PHAD (DAP system)
- $AMLR (RAP system)
- $PHAR (RAP system)
For $ALMD and $ALMR, the number of connected workstations must be specified additionally to the master workstation.
Example: Connecting 3 BA’s master ports + 2 additional ports.
In the case of $PHAD resp. $PHAR, the real number of required “phantom ports” must be configured.
ATTENTION: The configured number of ports for $PHAR resp. $PHAD
depends on: PORT NO OF FIRST PORT for both the $ALMR
resp. $ALMD drivers.
• PORT NO OF FIRST PORT
This function enables determining the port number of the first additional port connected to the master port for the $ALMD resp. $ALMR drivers. This number is specified as follows:
1 + number of configured ports of the corresponding phantom port drivers.
$ALMD = 1 + number of $PHAD ports
$ALMR = 1 + number of $PHAR ports
The current port number of the first port is listed as CURRENT VALUE. The selection of the desired drives is performed by entering the corresponding driver name.
Attention: No gap may exist in the succession between the port
number of the last configured phantom port and the
number of the first additional workstation.
Example: The input of PORT NO OF FIRST PORT must be 2
for configured phantom ports.
If incorrect information was entered you will be
notified by SYSMOD function 3 (EXIT).
If the entered port number is too low, the following
message appears:
$ALMX TRIES TO ASSIGN MORE THAN ONCE PORT NO X
If the entered port number is too high, the following
message appears:
“HOLE” BETWEEN PORT NUMBER X Y
WASTED CORE MORE THAN DECIMAL OCTAL: XXX YYY
• SET RWS PROGRAM ID (only for RAP systems)
Allows the input of program number assignment for each port (XB file assignment). Only entry “01” is currently available.
28.4.5 Data Files
Here you may specify the number of data channels that may be opened simultaneously per BA.
The current amount is provided as CURRENT VALUE. Input is required by the message:
NO OF CHANNELS PER PORT
28.4.6 PARTITIONS
The user may divide the available main memory into program processing areas. After selecting this function, the current number of existing partitions and their size in KB will be listed.
NO OF PARTITIONS (EXCL. PROCESSOR): CURRENT VALUE: X
PARTITION SIZE IN KB OF 1ST CURRENT VALUE: XX
PARTITION SIZE IN KB OF 2ND CURRENT VALUE: XX
.
.
.
PARTITION SIZE IN KB OF NTH CURRENT VALUE: XX
The number of partitions and the size of existing partitions may be modified afterwards. If possible, as many partitions as the number of ports (see NUMBER OF PORTS), incl. master and phantom port, should be configured.
ATTENTION: The number of partitions specified is additional to the
main partition! The main partition is always reserved. The
size of the main partition always corresponds to the
configured ACTIVE FILE SIZE.
If partitions with a size smaller in KB than the configured
ACTIVE FILE are configured, these partitions will only be
used for programs protected by the SAVE command.
28.4.7 CORE-RESIDENT DISCSUBS
The following options are listed:
DISPLAY CORE-RESIDENT DISCSUB LIST ............. 0
INSERT A NO IN CORE-RESIDENT DISCSUB LIST ...... 1
REMOVE A NO FROM CORE-RESIDENT DISCSUB LIST .... 2
• DISPLAY CORE-RESIDENT DISCSUB LIST
Displays the number of DISCSUBS (system subprograms) made memory-resident during the IPL.
• INSERT A NO IN CORE-RESIDENT DISCSUB LIST
Allows the option of making a DISCSUB memory-resident.
Input is requested by the message:
DISCSUB NO
If the number of a DISCSUB contained in another DISCSUB is inputted, the message:
DISCSUB NO: XXX INCLUDED IN DISCSUB NO: YYY
will appear. DISCSUB XXX is automatically made resident if YYY is resident.
• REMOVE A NO FROM CORE-RESIDENT DISCSUB LIST
Allows the option to remove a DISCSUB from the list of memory-resident DISCSUBS. This DISCSUB will not be memory-resident during a further IPL.
Input will be required by the message:
DISCSUB NO
28.4.8 QUEUES
The following options are listed:
CHARACTER QUEUE .................................. 0
SIGNAL NODE QUEUE ................................ 1
TASK QUEUE ....................................... 2
• CHARACTER QUEUE
The character queue allows saving CONTROL CODES (e.g. CTL, C-CTL, B-CR) and the ESC key. These will later on be processed within the next time slice caused by BA.
The currently configured value is listed as CURRENT VALUE.
Input is requested by the message:
NO OF CHARACTER QUEUE NODES ABOVE TWO PER PORT:
“10” should always be the value configured here. This value depends on the size of the TASK QUEUE for each port.
• SIGNAL NODE QUEUE
All “signal 1” values are saved here. This entry must be at least “1”. The entry specifies the size of the SIGNAL NODE QUEUE of the entire system.
The currently configured value is listed as CURRENT VALUE.
Input is requested by the message:
NO OF SIGNAL BUFFER NODES (MINIMUM IS ONE)
• TASK QUEUE
Waiting queue for the time slice division. 3 entries are reserved for each task. Internally, each entry occupies 9 words.
The currently configured value is listed as CURRENT VALUE.
Input is requested by the message:
NO OF FREE NODES
28.4.9 TIME SLICE
The size of the time slice is specified here. The size of the time slice is defined in tenths of a second (see chapter 27.11).
The current size of the time slice is listed as CURRENT VALUE.
Input is requested by the message:
TIME SLICE (BETWEEN 1 AND 64 TENTH OF A SEC.):
28.4.10 DECIMAL SIGN
The decimal sign, “,” or “.” will be specified here.
The currently configured decimal sign (“,” or “.”) is listed as CURRENT VALUE.
Input is requested by the message:
ENTER DECIMAL SIGN (“.” OR “,”):
28.4.11 NCL BUFFER SIZE
The maximal size of a data transfer block is defined here in words.
The currently configured buffer size is listed as CURRENT VALUE.
Input of the block size is requested by the message:
ENTER NO OF WORDS FOR NCL BUFFER:
The buffer must be configured as large as the largest block that must be transferred.
28.5 CORE ALLOCATION MAP
The memory assignment list is outputted in the following form:
NIROS ................................... SIZE(10) SIZE(80) ADRESS(8)
CORE SIZE IN KB ......................... XXX XXX
AREA OF PARTITIONS (ABOVE TOPW.) IN KB .. XXX XXX XXXXXX
UNUSED CORE IN EXTENSION IN KB .......... XXX XXX XXXXXX
TOPWORD OF CORE ......................... XXXXXX
COMMON AREA ............................. XXX XXX XXXXXX
PORT CONTROL AREA ....................... XXX XXX XXXXXX
CALL STACK .............................. XXX XXX XXXXXX
DAT AND SAT ............................. XXX XXX XXXXXX
AREA DEPENDING ON LU’S .................. XXX XXX XXXXXX
CORE-RESIDENT DISCSUBS .................. XXX XXX XXXXXX
PARTITION CONTROL AREA .................. XXX XXX XXXXXX
DRIVERS ................................. XXX XXX XXXXXX
ALM CHANNEL CONTROL BLOCKS .............. XXX XXX XXXXXX
I/O BUFFER SIZE ......................... XXX XXX XXXXXX
SIGNAL NODE QUEUE ....................... XXX XXX XXXXXX
DATA FILE TABLES ........................ XXX XXX XXXXXX
CHARACTER QUEUE ......................... XXX XXX XXXXXX
INTERRUPT STACK ......................... XXX XXX XXXXXX
TASK QUEUE .............................. XXX XXX XXXXXX
UNUSED CORE (ASSIGNED TO TASK QUEUE) .... XXX XXX XXXXXX
BLOCK BUFFER AREA (ADDR. IS BSA) ........ XXX XXX XXXXXX
BASIC USER AREA (ACTIVE FILE SIZE) ...... XXX XXX XXXXXX
Explanations to the CORE ALLOCATION MAP output:
The table head contains the name of the operating system and the internal version label.
Additional outputs mean:
SIZE(10) = occupied memory in words, decimal
SIZE(8) = occupied memory in words, octal
ADDRESS(8) = address, octal
• CORE SIZE IN KB
The size of the configured memory is displayed in KB (see chapter 28.3.2).
• AREA OF PARTITIONS (ABOVE TOPW.) IN KB
The size of the upper TOPW OF CORE memory area occupied by PARTITIONS.
“ADDRESS(8)” shows the address (word address) of the first partition in the upper “TOPW”.
• UNUSED CORE IN EXTENSION IN KB
The size of the available memory area above “TOPW.” is listed in KB.
The start address of the available area is listed as address. If no available area smaller than 64 KB is found, this address is identical with the AREA OF PARTITIONS address.
• TOPWORD OF CORE
This address specifies the highest address occupied by the operating system. TOPWORD OF CORE’s largest possible value is 77776 octal. TOPW. will only be pushed downwards if additional partitions exist and the reserved memory area is under 64 KB (see chapter 28.10).
• COMMON AREA
Size and start address of common areas of all configured workstations. 256 words are reserved for each workstation (including phantom port). This area lies directly under TOPWORD OF CORE. Its size is expressed in words.
• PORT CONTROL AREA
Size and start address of the PCB (control table for ports). A PCB of 32 words is reserved for each configured workstation. The area of the PCB lies directly under the COMMON AREA.
• CALL STACK
An area used by the operating system to temporary save addresses and accu-content during levelled DISCSUB calls (e.g. a DISCSUB is called from another DISCSUB). This area lies directly under the PCB.
• DAT AND SAT
Address and control table for DISCSUBS in the memory and on the magnetic disc.
The following are set for each DISCSUB:
- start address in the memory for resident DISCSUBS
- disc address for transient DISCSUBS.
The size of this area is expressed in words. The area for DAT AND SAT lies directly under CALL STACK.
• AREA DEPENDING ON LU’S
Size and start address of the LOGICAL UNIT TABLE (LUT). An entry with the following structure has been generated for each existing LU:
Word 1: Pointer to the LUFIX table
Word 2: Pointer to the LUVAR table
Word 3: LU number
This area lies directly under DAT AND SAT.
• CORE-RESIDENT DISCSUBS
Size and start address of the memory address where memory-resident DISCSUBS are loaded during the IPL. This area lies directly under AREA DEPENDING ON LU’S.
• PARTITION CONTROLL AREA
Size and start address of the partition control area. 49 words are reserved per configured partition.
• DRIVERS
Size and start address of the memory address where active drivers ($ files) are loaded during the IPL. This area lies directly under PORT CONTROLL AREA.
• ALM CHANNEL CONTROL BLOCKS (only for RAP systems)
16 words are reserved for each additional RAP connected to the master.
• I/O BUFFER SIZE
Size and start address of the I/O buffer. A buffer of 160 words is reserved for each configured port. This buffer is only used for interactive I/O’s (PRINT, INPUT). The area assigned to the I/O buffer lies directly under the ALM CHANNEL CONTROL BLOCKS.
• SIGNAL NODE QUEUE
Area of the “SIGNAL 1” values. Four words are reserved for each configured entry (see chapter 28.4.8). The SIGNAL NODE QUEUE lies directly under the I/O BUFFER area.
• DATA FILE TABLES
Size and start address of the DATA FILE TABLES. A DFT is created for each port, containing 8 entries for each configured channel. Additionally to the SYSMOD configured channels, each port occupies 5 channels which also reserve DFT entries. The DATA FILE TABLES lie directly under the SIGNAL NODE QUEUE.
• CHARACTER QUEUE
Size and start address of the CHARACTER QUEUE. This area enables saving CONTROL CODES and ESC. The CHARACTER QUEUE lies directly under the DATA FILE TABLES.
• INTERRUPT STACK
Area for the temporary save of interrupts. This area lies directly under the CHARACTER QUEUE.
• TASK QUEUE
Size and start address of the waiting queue for the time slice division. The TASK QUEUE lies directly under the INTERRUPT STACK.
• UNUSED CORE (ASSIGNED TO TASK QUEUE)
Size and start address of the available memory area within the first 64 KB. This area is assigned to the TASK QUEUE.
• BLOCK BUFFER AREA (ADDR. IS .BSA)
Size and start address of the area enabling the buffer area of the system (BSA, HBA, SSA etc.).
• BASIC USER AREA (ACTIVE FILE SIZE)
Size and start address of the main partition. Its size matches the ACTIVE FILE SIZE.
28.6 EXIT
An exit of the SYSMOD processor is only possible by using this function.
In case of configuration alterations, eventual required entries are added that will affect the memory assignment list, driver list and memory-resident DISCSUBS. After the termination of their execution, the processor may be left.
The configured operating system is checked by SYSMOD. A notification will be displayed if configuration errors are found. In this case, SYSMOD will only be exited after the corresponding correction.
If determined that the configured operating system may not be installed in the configured memory, the notification:
OVERFLOW! WORDS REQUIRED ................. XXXX XXXXXX
will be displayed.
The areas which have no available memory space are labelled by “*”.
In order to allow the configuration generated by SYSMOD to take effect, a configuration alteration will run the IPL right before its termination.
28.7 DISCSUB List
DSB No. Name Location XNDMR Function
0 FAULT 6000 D TRAP output, interrupt
1 ALLOC 4400 R Occupy available disc block
2 DALLC 4000 R Release occupied blocks
3 FFILE 3400 R Search file in INDEX
4 EXTEN 24000 Extend file on EXTENDED
5 ALCON 24400 Assign relative file
6 CDTA 26000 Conversion (only LKL 500)
7 CIA 6400 Int to ASCII conversion
10 CSTR 2400 R Compare strings
11 PASSC 400 Compare password
12 ERROR 12400 Basic error routine
13 MESSA 6400 Error message in clear text
14 BREAK 7000 Set DSP breakpoint
15 ACNTL 5400 R ACCOUNT LOOKUP
16 DELET 5000 N Delete file
17 PDELE 5000 N Delete processor
20 BUILD 1000 X Build file
DSB No. Name Location XNDMR Function
21 BILDD 1000 XN Build $ file
22 OPEN 2000 N Open file/device
23 OPENU 2000 N Open update
24 OPENL 2000 N Open with lock
25 OPENR 2000 N Open reference
26 CLOSE 2400 CLOSE
27 CLEAR 2400 Release channel
30 GETRR 27400 X M Read record
31 GETRW 27400 X M Write record
32 IPRE 23000 X CALL 1
33 READI 400 M Read field (formatted)
34 WRITI 400 N M Write field (formatted)
35 WRITN 24000 Enter field in format list
36 READC 25000 X M Read record (relative, text)
37 WRITC 25000 XN M Write record (relative, text)
40 CHARG 5000 XN M Calculate cost for access
41 SYSCO 15000 CALL 98
42 CNVDA 7400 Convert date in ASCII
43 CNVAD 7000 Convert ASCII to DATE
44 CNVDT 7400 CALL 99
45 RDFHI 16000 CALL 97
46 SPECI 13400 R SPC functions
47 RECOV 6400 D Transfer to TRAP
50 PATNF 120000 Arc tangent
51 PLOGF 13000 Natural logarithm
52 PSQRF 12000 Square root
53 PEXPF 13400 X Exponential function
54 PSINF 15000 X Sinus
55 PCOSF 15000 XN Cosine
56 PTANF 14400 Tangent
57 IDIS 21000 CALL 1
60 DIREC 16400 X SEARCH module 0
61 BLDC 3000 BUILD expansion
62 DELQU 62000 SEARCH module 6
63 INKEY 63400 M SEARCH module 4
64 DEKEY 64000 M SEARCH module 5
65 RELEA 34000 Release directory block
66 REQUE 10000 X M TASK-QUEUE manager (***)
67 AFSET 11000 M ACTIVE FILE processing for SWAP
70 SIGPA 10000 M Signal or break
71 MTFIL 32000 X CALL 71 (TAPE VTOC)
72 GATHR 31000 CALL 72
73 MPCHAR 34000 CALL 26
74 CLC 33000 Compare bytes
75 SORT 33000 X CALL 65
76 SCATR 31000 N CALL 73
(***) only for NIROS 3.3 with an initial system loader!
DSB No. Name Location XNDMR Function
77 MTAPE 31000 X CALL 70
100 FDALL 21400 X Floppy disc functions
101 HAZL 16400 CALL 51
102 PACK 30400 CALL 63
103 UNPAC 30400 CALL 61
104 EDITN 17000 CALL 62
105 EDITA 17000 N CALL 63
106 EDITD 17000 N CALL 64
107 REOPT 20000 X REORG directory
110 MTCAS 42400 CALL 82
111
112
113
114 DRCD 35000 Alter DRIVER code table
115 CNDID 11400 CALL 25
116
117
120 MVUP 17400 CALL 2
121 MVDN 17400 N R CALL 3
122 DGID 22400 CALL 4
123 TRANS 43000 Data transmission
124 ALBAS 17400 Assign basic file
125 FFQU 36400 R Search file in resident index
126
127 ASSIGN 37400 Printer assignment
130 BIMAN 35400 CALL 20
131 FPBIN 35400 CALL 21
132 BINFP 35400 CALL 22
133 SUBSTR 36000 CALL 23
134 ISRAEL 36000 CALL 24
135
136
137
140 ICHK 44000 X CALL 1
141 FSGEN 45400 FIMAS/SORBAS
142 FSNAC 46000 FIMAS/SORBAS
143 FSIF 46400 X FIMAS/SORBAS
144 FSDYN 47400 FIMAS/SORBAS
145 FSCON 50000 X FIMAS/SORBAS
146 FSRWC 51000 X FIMAS/SORBAS
147 FSRWF 52000 X FIMAS/SORBAS
150 FSDI 53000 X FIMAS/SORBAS
151 FSDIM 54000 X FIMAS/SORBAS
152 HDGET 43400 D Physical disc access (UT)
153 BLGET 43400 D Physical disc access (UT)
154 BLPUT 43400 ND Physical disc access (UT)
155 STMAN 45000 CALL 90
DSB No. Name Location XNDMR Function
156 FSDI 55000 X FIMAS/SORBAS
157 FSEDI 65000 X FIMAS/SORBAS
160 FSEDT 57000 FIMAS/SORBAS
161 FSLET 57400 FIMAS/SORBAS
162 FSINI 60000 FIMAS/SORBAS
163 FSCHK 60000 FIMAS/SORBAS
164 FSNED 60400 X FIMAS/SORBAS
165 FSRWT 61400 FIMAS/SORBAS
166
167
170
171
172
173
174
175
176 SEARCH 62400 X M SEARCH allocator
177 INVST 40000 CALL 91
Explanation “XND”: X = expanded DISCSUB
N = DISCSUB uses routines of other DISCSUBS. This
DISCSUB becomes memory-resident if memory-
resident DISCSUBS use its routines.
D = DISCSUB may not be memory-resident.
R = If possible, should be made resident.
M = must be resident.
28.8 Driver List
|T |Filename |GR |Version |M/K |DAP |RAP |Comment |
|S |$ALMD |2 |27400 |M |X | |BA control DAP |
|S |$ALMR |2 |18430 |M | |X |BA control RAP |
|$ |$CAS |4 |1841 |M | | |Cassette channel program |
|$ |$CRD |2 |35067 |K | | |LKL 500 CRD/MIN channel program |
|$ |CRD1 |3 |37259 |K | | |LKL 90 CRD/MIN channel program |
|$ |$DEC |8 |3430 |M | | |Floating point arithmetic |
|$ |$FD |3 |50884 |K | | |Floppy disc channel program |
|$ |$JPTR |4 |13562 |K | | |only Japan |
|$ |$SPTR |4 |19638 |K | | |only Japan |
|$ |$LPT |5 |25795 |K | | |NND channel program |
|$ |$LPT1 |5 |30334 |K | | |Record printer channel program |
|$ |$LPTR |4 |60837 |K | | |NND channel program (with $LPT) |
|$ |LPTRS |4 |61057 |K | | |2nd NND channel program |
|$ |$LPTS |5 |27127 |K | | |2nd NND channel program (with $LPTRS) |
|$ |$MTX |5 |108 |K | | |Magnetic tape channel program |
|$ |$NLC |6 |53686 |K | | |DFU channel program |
|$ |$ORDP |4 |1354 |K | | |only USA |
|$ |$PHAD |2 |35096 |M |X | |Phantom port control DAP |
|$ |$PHAR |2 |33988 |M | |X |Phantom port control RAP |
|$ |$RPF0 |2 |27396 |K | |X |BA-ALM-KAN 0 FF channel program |
|$ |$RPF1 |2 |27398 |K | |X |BA-ALM-KAN 1 FF channel program |
|$ |$RPF2 |2 |27400 |K | |X |BA-ALM-KAN 2 FF channel program |
|$ |$RPF3 |2 |27402 |K | |X |BA-ALM-KAN 3 FF channel program |
|$ |$RPF4 |2 |27404 |K | |X |BA-ALM-KAN 4 FF channel program |
|$ |$RPF5 |2 |27406 |K | |X |BA-ALM-KAN 5 FF channel program |
|$ |$RPF6 |2 |27408 |K | |X |BA-ALM-KAN 6 FF channel program |
|$ |$RPF7 |2 |27410 |K | |X |BA-ALM-KAN 7 FF channel program |
|$ |RPL0 |5 |48357 |K | |X |BA-ALM-KAN 0 LL channel program |
|$ |RPL1 |3 |50685 |K | |X |BA-ALM-KAN 1 LL channel program |
|$ |$RPL2 |3 |50691 |K | |X |BA-ALM-KAN 2 LL channel program |
|$ |$RPL3 |3 |50697 |K | |X |BA-ALM-KAN 3 LL channel program |
|$ |$RPL4 |3 |50703 |K | |X |BA-ALM-KAN 4 LL channel program |
|$ |$RPL5 |3 |50709 |K | |X |BA-ALM-KAN 5 LL channel program |
|$ |$RPL6 |3 |50715 |K | |X |BA-ALM-KAN 6 LL channel program |
|$ |$RPL7 |3 |50721 |K | |X |BA-ALM-KAN 7 LL channel program |
|$ |$RPR0 |2 |28066 |K | |X |BA-ALM-KAN 0 RL channel program |
|$ |$RPR1 |2 |28068 |K | |X |BA-ALM-KAN 1 RL channel program |
|$ |$RPR2 |2 |28070 |K | |X |BA-ALM-KAN 2 RL channel program |
|$ |$RPR3 |2 |28072 |K | |X |BA-ALM-KAN 3 RL channel program |
|$ |$RPR4 |2 |28074 |K | |X |BA-ALM-KAN 4 RL channel program |
|$ |$RPR5 |2 |28076 |K | |X |BA-ALM-KAN 5 RL channel program |
|$ |$RPR6 |2 |28078 |K | |X |BA-ALM-KAN 6 RL channel program |
|$ |$RPR7 |2 |28080 |K | |X |BA-ALM-KAN 7 RL channel program |
|$ |$RTC |2 |29059 |M | | |Data transfer for channel programs |
28.9 SWAPPING/PARTITIONING
As recently confirmed, there is still uncertainty related to SWAPPING and PARTITIONING. That is why all aspects must be clearly explained and considered if a PARTITIONING SYSTEM is to be created. SWAPPING SYSTEMS should not be installed for systems with sufficient memory equipment.
• concept definition
PARTITIONING: Division of available memory in program
processing areas. As many tasks as created
partitions may simultaneously be resident.
SWAPPING: Outsourcing and storing of partitions to/from the
magnetic disc, if several tasks have to be run
simultaneously when partitions are available.
If a single partition is available but several tasks have to run simultaneously, a SWAPPING SYSTEM should be installed.
If several partitions are available but a larger number of tasks than the one of partitions should be run, a mixed SWAPPING/PARTITIONS SYSTEM will be installed by NIROS.
Following must be noted when creating a system with SYSMOD in order to avoid SWAPPING:
• CHANGE HARDWARE SPECIFICATIONS ............ 0
- is a computer configured with ADDRESS MAP REGISTER?
0. CURRENT VALUE: Y
ADDRESS MAP REGISTERS AVAILABLE? Y OR N)
“Y” should mainly be entered here.
- Does the configured memory size match the installed memory?
1. CURRENT VALUE: XXX
CORE SIZE IN KB
The entered value may not be greater than the capacity of the
installed memory.
• CHANGE SOFTWARE SPECIFICATIONS ............... 1
- How big is the ACTIVE FILE (main partition)
ACTIVE FILE SIZE .......... 0
Is entered in KB. Must be at least large enough to accept the
largest program (incl. data area). The entry must not be
smaller than 12 KB, or else the system components (e.g. TAMOS
D2DUTIL) will not be executable anymore. This requirement
determines the size of the main partition (see PARTITIONS).
- How many workstations exit?
PORT CHARACTERISTICS ..... 3
NUMBER OF PORTS .......... 0
For the configured drivers ($ALMD or $ALMR)
$ALMD = number of workstations (DAP) minus 1
$PHAD = 1
$ALMR = number of workstations (RAP) minus 1
$PHAR = 1
$ALMR and $ALMD resp. $PHAR and $PHAD may not be activated
simultaneously in the same system.
- How many partitions are configured and how large are the
partitions configured?
PARTITIONS ................... 5
If possible, as many partitions are configured as the total
“NUMBER OF PORTS” workstations (incl. phantom port).
If partitions are configured with a smaller size in KB than
that of the configured ACTIVE FILE, these partitions will only
be used by programs that have been appropriately protected with
the SAVE command.
The SAVE command is described in the basic handbook and in the
user handbook.
28.10 Memory Assignment
The following rules apply to the assignment of available memory:
a) The NIROS core, the processor area and the main partitions are
assigned consecutively starting from address 0.
b) Variable NIROS components such as:
- DISCSUBS
- PCB
- DRIVERS
are assigned consecutively starting from TOPWORD OF CORE.
c) Additional partitions are assigned consecutively starting from the
highest possible memory address.
|NIROS system core: |
|- real time control system |
|- time-sharing management |
|- partitioning management |
|Processor area |
|Main partition |
|Its size matches that of the ACTIVE FILE |
|Eventual available space within the first 64 KB |
|Variable NIROS components: |
|- memory-resident DISCSUBS |
|- port control areas |
|- file control tables |
|- channel programs |
|- port I/O buffer |
|- partition management table |
|- disc buffers (HBA, BSA, HXA etc.) |
|- common areas |
| |
|Additional partitions |
28.11 Determination of a Time Slice Size
Two basic criteria apply to the determination of a time slice size.
a) The number of simultaneously running tasks.
b) The types of the simultaneously running tasks.
Basically, there are two different types of tasks:
a) DIALOG TASK, which uses 50% of the time slice over a longer period
of time.
b) BATCH TASK, which normally uses 100% of the time slice.
The required response time per task should be one second. This means that each task should be refreshed one time per second.
Due to the ranging use of time slices, DIALOG TASKS and BATCH TASKS are rated differently for the calculation of a time slice size.
a) BATCH TASK rating = 2
b) DIALOG TASK rating = 1
The following formula is used for calculating the time slice size:
1,5 / SUM OF THE TASK RATINGS
Example: We are going to calculate the time slice size for a system
with 3 screens + phantom port.
We will assume that the screen runs DIALOG TASKS and the
phantom port a BATCH TASK.
Port 0: DIALOG TASK Rating = 1
Port 1: BATCH TASK Rating = 2
Port 2: DIALOG TASK Rating = 1
Port 3: DIALOG TASK Rating = 1
= 5
Calculation: 1,5 / 5 = 3
This means that the size of a time slice should be 300 ms.
-----------------------
Address 0
254
457
777
Block 0
1
2
3
4
1
2
Error evaluation through bootstrap or BZUPNEW
XB 01 selection
XB 02 transfer
XB 03
INIT
display
UNIT #
input
START INITIAL
PROGRAM LOAD
I
Read config file
Transfer INFO tables parameter and disc buffer parameter from CONFIG
Build the DISC map scheme and DISC ADDRESS and STARTING ADDRESS tables once again
Logical unit table
Driver table
Setup LUVAR table (disc driver tables)
Read memory-resident discsubs
(list located in block 3 of the config file)
Check if the processor configuration meets the minimum requirements
Enter the SCOPE, ACCOUNTS, BYE, MESSAGES, CONFIG, RDA
HOUSECLEANING
System disc reorganization
II
Routine
7
8
9
10
11
12
Message 1
TRAP
101
TRAP
104
TRAP
101
105
123
TRAP
106
107
110
Message
2
3
4
5
8
Routine
13
14
15
16
17
18
II
Load the system and peripheral drivers in the memory and initialize them
Initialize PCB (Port Control Block)
Create active files on the disc (1 file per port)
Create character queue
Build interrupt stack
Create free nodes (memory area)
Display output: HIT, ESC
End of system initialization
Start of time-sharing
MESSAGE
6
7
MESSAGE
6
8
TRAP
101
102
MESSAGE
9
MESSAGE
10
MESSAGE
11
Block No.
1
2
3
4
5
6
7
Cylinder
Head
0
600
766
1301
1466
2130
2255
3440
3552
3731
4221
4633
5343
7640
10200
20000
36000
50704
52634
54072
64150
755537
77776
0
1
2
3
4
FLAP = 5
TASK = 6
TCBP = 7
LINK = 8
Header (128 words)
Data block (max.
256 words)
2.
max. 64 fields
Header block
(256 words)
max. 128 data block
addresses
Header block
(256 words)
max. 128 header-extended
block addresses
Header (128 words)
1.
Data block
(max. 256 words)
Header-extended block
(256 words)
3.
2.
max. 64 fields
max. 256 data
block addresses
F = Flag of the fine level
0 = master and coarse level
1 = fine level
N = number of keys; maximal number of keys per block within the master level, number of active keys per block within the coarse and fine levels.
L = length of key expressed in words
D = sector address of the next block from this level and from this index ( 0 = last block from this level)
K = key word
P = sector address of the block of the next lower level in the master and coarse levels or the relative record number of the data block in the fine level
Up to L words may remain unused at the end of each level block.
ADR 0
ADR BPS
ADR BUS
TOPWORD OF CORE
SMALLER THAN 64 KB
-----------------------
NIROS
NIROS
NIROS
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related searches
- sentence with the word choose
- make a sentence with the word significant
- sentences with the word significance
- find words with the following letters
- words with the following letters
- what is homc with the heart
- words that with the letters
- words with the following letters scrabble
- words with the letters really
- choose the sentence with the correct punctuation
- were the french friendly with the indians
- mini computer pc