DEFINITION MODULE labels;

FROM SYSTEM IMPORT ADDRESS;

EXPORT QUALIFIED InsertNewLabel, 
        StepLabelPointers, MarkCurrentByte, 
        CurrentLabel, CurrentExitLabel, 
        FindExitLabel, InitialisePointers,
        CurrentByteNo, CurrentInstrByteNo,
        NewLabel, PushLabelStack, PopLabelStack,
        SetUpPermanentLabelTable, GetPermanentLabelTable,
        DecCurrentLabelUseCount,
        none; 

VAR CurrentByteNo, CurrentInstrByteNo : CARDINAL;

CONST none = 0;

PROCEDURE InsertNewLabel (ByteNo : CARDINAL) : CARDINAL;
PROCEDURE StepLabelPointers (NoOfBytes : CARDINAL);
PROCEDURE MarkCurrentByte (label : CARDINAL);
PROCEDURE CurrentLabel () : CARDINAL;
PROCEDURE CurrentExitLabel () : CARDINAL;
PROCEDURE FindExitLabel (ByteNo : CARDINAL) : CARDINAL;
PROCEDURE InitialisePointers ();
PROCEDURE NewLabel () : CARDINAL;
PROCEDURE PushLabelStack (lab : CARDINAL);
PROCEDURE PopLabelStack () : CARDINAL;
PROCEDURE SetUpPermanentLabelTable;
PROCEDURE GetPermanentLabelTable (VAR a : ADDRESS) : CARDINAL;
PROCEDURE DecCurrentLabelUseCount (amount : CARDINAL) : CARDINAL;
END labels.





