An Epilog Procedure is a procedure which is executed before the Block in which it is located is exited.
It must be an Untyped Procedure with No Parameters.
A Block which contains an Epilog Procedure must have a Software Control Word with the AlgolEpiF flag set, and immediately below the SCW there must be the PCW for the Epilog Procedure.
0041 (02,002B) 6 800000 681800 SCW: Blockexit marker: Connection/Structure Blocks, Epilog Procedure, Library Templates, Multi-dim Arrays, Single-dim Arrays 0040 (02,002A) 7 800024 301D4D PCW: ASD=00EA6C, LL=3, Segment @ 0006:0001:1, Normal state 003F (02,0029) 0 FFFFFF FFFFFF TOS (Real) Dec: -7.006492321611341-46 003E (02,0028) 7 800024 301D4D BLOCKCLEANUP (Epilog procedure) ASD=00EA6C, LL=3, Segment @ 0006:0001:1, Normal state
The Algol Compiler recreates the PCW for the Epilog Procedure before storing the SCW, so there are 2 copies of the PCW, the other one being at the point of declaration.