BCT 0214

TODAYS-DATE (00, 01)

TIME (10)

MEMORY-SIZE (20)

GROW (21)

INTERROGATE-DISK (3x)

DATE (40)

ARM (5x)

The ARM BCT is used to enable a program to handle processor or program exceptions which may be experienced during the course of execution.

The format of this BCT is:

      BCT 0214
      BUN
P1.   CNST 6 UN      (filler)
P2.   CNST 1 UN = 5  (flag indicating ARM)
P3.   CNST 1 UN = 0  (Complement current settings)
                = 1  (disable)
                = 2  (enable)

When a program is ARMed (that is, ARM is enabled), a program error causes the MCP to store

  1. the base relative value of the program counter at address 63 for seven digits, relative to memory area zero
  2. The program size in kilodigits at address 70 for six digits, relative to memory area zero
  3. A result code in hex indicating the cause of the error in the four digits beginning at address 80 relative to memory area zero. Refer to Result Codes for a list of result codes and their meanings.

If address 94 for six digits relative to memory area zero contains a valid program address, the MCP transfers control of the program to the address contained in the field. If the field does not contain a valid program address, the MCP will suspend the program pending a DS or DP.

If a program is not armed, a program or processor error causes the MCP to terminate the job. Therefore, only an armed program can recover from hardware exceptions and program errors.

A program is no longer armed after the ARM branch has been taken. The program must be rearmed to handle a subsequent error.

In BPL syntax, the format of the data stored when the ARM branch is taken is as follows:

  INTEGER program_address  (7) = BASE.+63,
          program_size_kd  (6),
                           (4),
          result_code      (4),
                          (10),
          user_arm_address (6);

MIXTBL (6x)

TODAYS-NAME (7x)

TIME-60 (8x)

INTERROGATE-PACK (9x)

PROCESSOR-ID (A0)

bct/0214.txt · Last modified: 2013/01/26 10:17 by scott
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki