• Aucun résultat trouvé

MANUAL INTERRUPT SUBPROGRAMS

Dans le document MANUAL REAL-TIME (Page 36-40)

The manual interrupt processor provides for up to 26 subprograms. These subprograms are called by entering a manual interrupt control statement that begins with an asterisk followed by a letter (A through Z). This letter uniquely identifies the subprogram and is used as an index to a vector table of subprogram entry point addresses.

Manual interrupt (MI) subprograms may be part of the resident system or loaded from the system tape and executed as jobs. If executed as a job and the protect processor is present, the protect switch must be off.

4-2

The vector table contains permanent entries for those manual interrupt subprograms that are included in the resident system. Manual interrupt subprograms loaded as nonresident jobs store their entry point address into the manual interrupt vector table. The subprogram can then be called from the manual interrupt processor as if it were resident. When the job is cancelled, the entry point addresses for the nonresident subprograms are deleted. An attempt to execute a subprogram that is not in core causes interrupt set-up routine at entry point MIENTX.

NAM progrm interrupt processor entry MIENTX, which is used to set up the manual interrupt

TABLE 4-1. JOB CONTROL STATEMENTS

Statement MI Vector

Sub-Function Table Index Program

*ADF,lu,n or *ADR,lu,n 0 POSIT Advance n files/records.

*BSF ,lu,n or *BSR,lu,n 1 POSIT Backspace n files/records.

*C 2 RCMLDC Continue.

*D,start,end,base 3 DUMP Dump core.

*EOF,lu 4 POSIT Write end-of-file.

*F 5

-

User subprogram

*G 6

-

User subprogram

*H 7 - User subprogram

*1 ,start ,hhhh,hhhh, hhhh,hhhh,hhhh 8 INSERT Insert 1 to 5 values.

*J or *JOB 9 RCMLDC Enter job processor.

*K,Ilu.Plu.Llu,Mlu.Clu.Slu 10 ASSIGN Assign logical unit.

*L.lu,file,hhhh 11 RCMLDC Load program.

*M.lu 12 MARKLUt Mark logical unit up.

*N.lu 13 MARKLUt Mark logical unit down.

*O.lu.ec 14 EFLISTt List/set code in engineering file.

*p .start,end.base 15 PUNCHt Punch core.

*Q 16 RSCMEX Execute SCMM.

*REW.lu or *RWU.lu 17

-

Reserved.

*S,start.p 18 RCMLDC Schedule

*T .lu, m ,lu, m ,recs,files 19 COpyt Copy data.

*U 20 RCMCHG Read statement from comment

device.

*V.lu 21 RCMCHG Read statement from input device.

*WRON .lu or *WROF ,lu 22 MAGSIM Turn write ring on or off on magnetic

tape simulator.

*X 23 RCMLDC Execute program.

*y 24

-

Reserved

*Z 25 RCMLDC Cancel job.

tSubprogram is not "resident and must be loaded.

The I register is set to the address of the manual interrupt input buffer upon entry to MIxSUB. The MI subprogram must then decode the ASCII input statement stored in this buffer using the standard conversion routines provided in the manual interrupt subprocessor. The MI subprogram may use the first three words for data storage after initial setup.

Manual interrupt subprograms that require setup of more than one entry are coded as follows: interrupt entry as the calling address plus 2.

On completion, MI subprograms exit to the manual interrupt

If the subprogram has scheduled a job:

JMP- ($EA) Exit to the

The RTOS manual interrupt processor executes subprograms at level 3. ·Jobs level 3 if it is made immediately following a manual interrupt, or at level 0 if made following completion of a job.

LOAD,(· L)

This manual interrupt subprogram is always resident. It is used to load nonresident background and foreground pro-grams. Input must be a single absolutized formatted binary record. The control statement format is:

*L,lu,file,hhhh

ASSIGN LOGICAL UNITS

This manual interrupt subprogram is always resident. The control statement format is:

*K ,Ilu,Plu,Llu, Mlu,Clu,Slu Where:

lu is the logical unit number (decimal).

I is the standard input unit (F9l6).

P is the standard binary output unit (F A 16).

L is the standard list unit (FB 16).

M is the output comment unit (FC 16).

C is the input comment unit (FD 16).

S is the system libr~ry unit (C2 l6).

*K is used to assign specific logical units to the low-core cells reserved for the standard system functional units.

The parameters are not ordered but must be separated by commas. Invalid logical unit numbers and attempts to assign read-only units for output or write-only units for input are rejected.

MARK LOGICAL UNITS UP/DOWN I*M, *N)

This manual interrupt subprogram is loaded from the system library by pressing manual interrupt and entering:

MARKLU

The control statement format is:

*M,lu Mark the logical unit up.

*N,lu Mark the logical unit down.

where lu is the logical unit number (decimal).

This statement is used to make an input/output logical unit available (up) or unavailable (down) for. requests. When a logical unit is marked down, all requests for it are completed immediately with error indication and without attempting to process the request.

MAGNETIC TAPE CONTROL

This manual interrupt subprogram is resident.

The control statement formats are:

*REW,Iu Rewind.

*EOF,lu Write end-of-file mark.

*AOF ,lu,n Advance n files.

*BSF ,lu,n Backspace n files.

* AOR,lu,n Advance n records.

*BSR,lu,n Backspace n records.

*RWU,lu Rewind and unload.

Where:

Iu is the logical unit number (decimal).

n is the number of files or records (decimal).

Requests for invalid logical unit numbers are rejected.

DUMP CORE (*0)

This manual interrupt subprogram is resident.

The control statement format is:

*D,start,end,base Where:

start is the starting core address.

end is the ending core address.

base is the base core address.

All addresses and values dumped are in hexadecimal.

*0 is used to dump the contents of the system output device from the starting to ending address specified. If a base address is specified, it is added to both the starting and ending addresses. If the ending address is not specified, one location is dumped.

The comma preceding the starting address is optional.

INSERT VALUE INTO CORE (*1)

This manual interrupt subprogram is resident.

The control statement format is:

*I,start,hhhh,hhhh,hhhh,hhhh,hhhh Where:

start is the starting core address.

hhhh is the hexadecimal value to be entered.

*1 is used to enter one to five hexadecimal values starting at a specified address.

The comma preceding the start address is optional.

PUNCH CORE (*P)

This manual interrupt subprogram is nonresident and may be loaded from the system library by pressing manual interrupt and entering:

PUNCH

The control statement format is:

* P .start.end.base Where:

start is the starting core address.

end is the ending core address.

base is the base core address.

It is used to output a formatted binary record to the standard punch unit from the buffer specified by the starting and ending addresses. If a base address is specified, it is added to both the starting and ending addresses. If the ending address is not specified. the request is rejected.

The comma preceding the starting address is optional.

COpy AND CONVERT DA TA (*T)

This manual interrupt subprogram is nonresident and may be loaded from the system library by pressing manual interrupt and entering:

COpy

The control statement format is:

*T .ilu.imode.olu.omode.nr .nf Where:

ilu is the input logical unit number.

imode is the A. B. E input mode.

olu is the output logical unit number.

omode is the A. B. E output mode.

nr is the number of records (decimal) nf is the number of files (decimaI).

The mode is specified as:

A Data is converted from internal ASCII to external BCD or vice versa (seven-track units only).

B Data is tra~sferred in binary mode.

E Data is converted from internal ASCII to EBCDIC or vice versa (nine-track units only).

4-6

The mode is used to copy data from the standard input logical unit to the standard punch output logical unit until the number of records or the number of files specified is reached or an error occurs. The number of records and files copied is typed on the standard list device.

SCHEDULE CORE ADDRESS (*S)

. This manual interrupt subprogram is always resident. The control statement format is:

*S,hhhh,p Where:

hhhh is the starting address.

P is the priority level, 0 to F. If blank. it is level

o.

The specified address is scheduled at the specified level. and control returns to the manual interrupt processor.

NOTE

No reasonability checks are made on this statement.

Dans le document MANUAL REAL-TIME (Page 36-40)

Documents relatifs