The Software Control Word is a Tag 6 Word which is used as a Block Marker.
The Algol Compiler defines the fields below with the BE.. prefix at 10083362,
| Tag 6 - SWCW | ||
|---|---|---|
| Field | Name | Description |
| [47:2] | SWCW_TypeF | SW_MarkerV = 2. (BSET 47) |
| [45:1] | SW_MarkerF | Block_MarkerV = 0 |
| [42:1] | Block_MarkerF | Block_ExitV = 0 |
| [44:1] | BEOnGoPastF | Exception Procedure. |
| [43:1] | BEGoPastNoDSF | DMAlgol Protected Exception Procedure. |
| [26:1] | BEIsolatedF | Isolated Procedure |
| [24:1] | BECheckPointF | CheckPoint |
| [22:1] | BECBTogF | Structure or Connection Block Declaration |
| [21:1] | BEEpilProcF | Epilog Procedure |
| [20:1] | BELastChanceF | Processing after being DSED |
| [19:1] | BELibTemplateF | Library Template or Directory |
| [17:1] | BEBadGoToF | Non Local GOTO |
| [16:1] | BEDirectArrayF | Direct Array Declaration |
| [15:1] | BEEventF | Event or InterLock Declaration |
| [14:1] | BEInterruptF | Interrupt Declaration |
| [13:1] | BEFileF | File Declaration |
| [12:1] | BE2DimF | Multi Dimension Arrays (ArrayDec Calls) |
| [11:1] | BE1DimF | Single Dimension Arrays (Non ArrayDec Calls) |
These Flags are used by BlockExit to determine what types of Objects are included in the Block and therefore should be deallocated.
The MCP Defines these fields in Struct_SWCW at 1022500 and Struct_Block_Exit_Marker at 24502948,
| Tag 6 - SWCW | ||
|---|---|---|
| Field | Name | Description |
| 47:2] | SWCW_TypeF | SW_MarkerV = 2. (BSET 47) |
| 45:1] | SW_MarkerF | Block_MarkerV = 0 |
| 42:1] | Block_MarkerF | Block_ExitV = 0 |
| [44:1] | OnGoPastF | On GoPast Procedure in Block. |
| [43:1] | GoPastNoDSF | Give Kangaroo protection to GoPast. |
| 41:1] | DefunctBlockF | Block being BlockExited |
| 40:13] | BlockStartF | MSCW relative start of partial block. |
| [26:1] | IsolatedF | Isolated environment. |
| 25:1] | CheapBlockF | Cheap Block, Don't turn off RCW BlockExit bit in BlockExit. |
| [24:1] | NoCPBitF | Compiler says can't checkpoint. |
| 23:24] | BlockSearchF | BlockSearch uses these Bits |
| 23:1] | DBSBlockF | Top DBS Block of ACR Task |
| [22:1] | CBTogF | Connection Block Declaration |
| 21:1] | DBSBlockF | Top DBS Block of ACR Task |
| [21:1] | AlgolEpiF | AlgolEpiF = 1 Call Epilog Algol |
| [20:1] | PLIEpiF | PLIEpiF = 1 Call Epilog (PL & Statistics) |
| [19:1] | LibTemplTogF | Library Template or Directory |
| 18:1] | FmtBTogF | Format Pseudo Buffer FIB-Locked. |
| [17:1] | LabelF | Non Local GOTO |
| [16:1] | DirTogF | Direct Array Declaration |
| [15:1] | EventTogF | Event Declaration |
| [14:1] | IntTogF | Interrupt Declaration |
| [13:1] | FileF | File Declaration |
| [12:1] | MDTogF | Multi Dimension Array Declaration |
| [11:1] | SDTogF | Single Dimension Array Declaration |
| 10:1] | ProcRefF | Procedure Reference Provider or Owner |
| 9:1] | ProcessFlagF | Critical Block has Dependent Tasks |
| 9:10] | LoWorderF | Used by BlockExit |