%endoflist
%external %routine %spec SELECT INPUT(%integer STREAM)
%external %routine %spec SELECT OUTPUT(%integer STREAM)
%external %routine %spec NEWLINE
%external %routine %spec SPACE
%external %routine %spec SKIP SYMBOL
%external %routine %spec READ STRING(%string %name S)
%external %routine %spec NEWLINES(%integer N)
%external %routine %spec SPACES(%integer N)
%external %integer %fn %spec NEXT SYMBOL
%external %routine %spec PRINT SYMBOL(%integer SYMBOL)
%external %routine %spec READ SYMBOL(%name SYMBOL)
%external %routine %spec READ(%name NUMBER)
%external %routine %spec WRITE(%integer VALUE,PLACES)
%external %routine %spec NEWPAGE
%external %integer %fn %spec ADDR(%name VARIABLE)
%external %long %real %fn %spec ARCSIN(%long %real X)
%external %integer %fn %spec INT(%long %real X)
%external %integer %fn %spec INTPT(%long %real X)
%external %long %real %fn %spec FRACPT(%long %real X)
%external %routine %spec PRINT(%long %real NUMBER,%integer BEFORE,AFTER)
%external %routine %spec PRINTFL(%long %real NUMBER,%integer PLACES)
%external %real %map %spec REAL(%integer VAR ADDR)
%external %integer %map %spec INTEGER(%integer VAR ADDR)
%external %long %real %fn %spec MOD(%long %real X)
%external %long %real %fn %spec ARCCOS(%long %real X)
%external %long %real %fn %spec SQRT(%long %real X)
%external %long %real %fn %spec LOG(%long %real X)
%external %long %real %fn %spec SIN(%long %real X)
%external %long %real %fn %spec COS(%long %real X)
%external %long %real %fn %spec TAN(%long %real X)
%external %long %real %fn %spec EXP(%long %real X)
%external %routine %spec CLOSE STREAM(%integer STREAM)
%external %byte %integer %map %spec BYTE INTEGER(%integer VAR ADDR)
%external %integer %fn %spec EVENTINF
%external %long %real %fn %spec RADIUS(%long %real X,Y)
%external %long %real %fn %spec ARCTAN(%long %real X,Y)
%external %byte %integer %map %spec LENGTH(%string %name  S)
%external %routine %spec PRINT STRING(%string(255) STR)
%external %integer %fn %spec NL
%external %long %real %map %spec LONG REAL(%integer VAR ADDR)
%external %routine %spec PRINT CH(%integer CHARACTER)
%external %routine %spec READ CH(%name CHARACTER)
%external %string %map %spec STRING(%integer VAR ADDR)
%external %routine %spec READ ITEM(%string %name ITEM)
%external %string (1) %fn %spec NEXT ITEM
%external %byte %integer %map %spec CHARNO(%string %name STR,%integer CHAR REQD)
%external %string (1) %fn %spec TO STRING(%integer ch)
%external %string (255) %fn %spec SUB STRING(%string(255) STR, %integer FIRST, LAST)
!%external %record (*) %map %spec RECORD(%integer REC ADDR)
!%external %array %map %spec ARRAY(%integer A1ADDR,%array %name FORMAT)
%external %integer %fn %spec SIZEOF(%name X)
%external %integer %fn %spec IMOD(%integer VALUE)
%external %long %real %fn %spec PI
%external %integer %fn %spec EVENTLINE
%external %long %integer %map %spec LONGINTEGER(%integer ADR)
%external %long %long %real %map %spec LONGLONGREAL(%integer ADR)
%external %long %integer %fn %spec LENGTHENI(%integer VAL)
%external %long %long %real %fn %spec LENGTHENR(%long %real VAL)
%external %integer %fn %spec SHORTENI(%long %integer VAL)
%external %long %real %fn %spec SHORTENR(%long %long %real VAL)
%external %integer %fn %spec NEXTCH
%external %half %integer %map %spec HALFINTEGER(%integer ADDR)
%external %routine %spec PPROFILE
%external %long %real %fn %spec FLOAT(%integer VALUE)
%external %long %integer %fn %spec LINT(%long %long %real X)
%external %long %integer %fn %spec LINTPT(%long %long %real X)
%external %short %integer %map %spec SHORTINTEGER(%integer N)
%external %integer %fn %spec TRUNC(%long %real X)
!%endoffile
%list
%BEGIN
%ROUTINE A
%EXTERNALBYTEINTEGER BYTE=99
%EXTERNALHALFINTEGER NUTS=100
%EXTERNALINTEGER WORD=101
%EXTERNALREAL RIEE=2
%EXTERNALLONGREAL LIEE=3
%EXTERNALLONGLONGREAL QIEE=4
%EXTERNALSTRING(20) STR="AABBCCDDEEFF"
%END
%ROUTINE B
%EXTERNALBYTEINTEGERSPEC BYTE
%EXTERNALHALFINTEGERSPEC NUTS
%EXTERNALINTEGERSPEC WORD
%EXTERNALREALSPEC RIEE
%EXTERNALLONGREALSPEC LIEE
%EXTERNALLONGLONGREALSPEC QIEE
%EXTERNALSTRING(20)%SPEC STR
      %IF BYTE=99 %AND NUTS=100 %AND WORD=101 %AND RIEE=2 %AND LIEE=3 %C
         %AND QIEE=4 %AND STR="AABBCCDDEEFF" %THEN PRINTSTRING("TEST OK") %C
         %ELSE %START
         PRINTSTRING("WRONG ANSWERS")
         WRITE(BYTE,5)
         WRITE(NUTS,5)
         WRITE(WORD,5)
         NEWLINE
         PRINT FL(RIEE,2)
         PRINT FL(LIEE,2)
         PRINT FL(QIEE,2)
         SPACE
         PRINTSTRING(STR)
      %FINISH
%END
B
%ENDOFPROGRAM
