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.

Google Online Preview   Download