!! PERMS FOR DEC-10 IMP !!*** DO NOT ALTER THE FOLLOWING ORDER **** %PERMINTEGERFNSPEC ADDR(%NAME N) %PERMINTEGERMAPSPEC INTEGER(%INTEGER N) %PERMSHORTINTEGERMAPSPEC SHORTINTEGER(%INTEGER N) %PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER N) %PERMSTRING(255)%MAPSPEC STRING(%INTEGER N) %RECORDFORMAT OO0(%INTEGER OO0) %PERMRECORD(OO0)%MAPSPEC RECORD(%INTEGER N) %PERMREALMAPSPEC REAL(%INTEGER N) %PERMINTEGERFNSPEC LENGTH(%STRING(1)%NAME S) %PERMINTEGERFNSPEC REM(%INTEGER N, M) %PERMREALFNSPEC FLOAT(%INTEGER N) !!*** DO NOT ALTER THE ABOVE *** %CONSTINTEGER NL = 10, FF=12, TAB=9, SP=32, ESC=27 %EXTERNALROUTINESPEC READSYMBOL(%INTEGERNAME N) %EXTERNALINTEGERFNSPEC NEXTSYMBOL %EXTERNALROUTINESPEC SKIPSYMBOL %EXTERNALROUTINESPEC PRINTSYMBOL(%INTEGER S) %EXTERNALROUTINESPEC READ ITEM(%STRING(1)%NAME S) %EXTERNALROUTINESPEC READ STRING(%STRING(1)%NAME S) %EXTERNALROUTINESPEC READ TEXT(%STRING(1)%NAME S,%INTEGER DELIM) %EXTERNALROUTINESPEC NEWLINE %ROUTINE NEWLINES(%INTEGER N) %RETURN %IF N<=0 NEWLINES(N-1) NEWLINE %END %EXTERNALROUTINESPEC NEWPAGE %EXTERNALROUTINESPEC SPACE %EXTERNALROUTINESPEC SPACES(%INTEGER N) %EXTERNALROUTINESPEC READ(%NAME A) %EXTERNALROUTINESPEC WRITE(%INTEGER N,S) %EXTERNALROUTINESPEC PRINT(%REAL R, %INTEGER N,M) %EXTERNALROUTINESPEC PRINTFL(%REAL R, %INTEGER N,M) %ROUTINE PRINTSTRING(%STRING(255) S) %EXTERNALROUTINESPEC PSTR PSTR; !USE THE PARAMETERS GIVEN TO PRINTSTRING %END %ROUTINE SELECTINPUT(%INTEGER N) %EXTERNALROUTINESPEC SELINPUT SELINPUT; !USE PARAMETER PASSED TO SELECT INPUT %END %ROUTINE SELECTOUTPUT(%INTEGER N) %EXTERNALROUTINESPEC SELOUT SELOUT; !USE PARAMETERS PASSED TO SELECT OUTPUT %END %ROUTINE DEFINE INPUT(%INTEGER I,%STRING(255) SPEC) %EXTERNALROUTINESPEC DEFINPUT DEFINPUT; !ACTUALLY USE THE PARAMETRS GIVEN FOR DEFINE INPUT %END %ROUTINE DEFINE OUTPUT(%INTEGER I,%STRING(255) SPEC) %EXTERNALROUTINESPEC DEFOUTPUT DEFOUTPUT; !USE THE PARAMETERS GIVEN FOR DEFINE OUTPUT %END %EXTERNALROUTINESPEC CLOSE INPUT %EXTERNALROUTINESPEC CLOSE OUTPUT %EXTERNALINTEGERFNSPEC INSTREAM %EXTERNALINTEGERFNSPEC OUTSTREAM %EXTERNALINTEGERFNSPEC CHARNO(%STRING(1)%NAME S, %INTEGER N) %EXTERNALSTRING(1)%FNSPEC TOSTRING(%INTEGER S) %EXTERNALSTRING(255)%FNSPEC SUBSTRING(%STRING(1)%NAME S, %INTEGER N,M) %EXTERNALSTRING(1)%FNSPEC NEXT ITEM %CONSTINTEGER MAX SFDS=5 %RECORDFORMAT FILESPEC( %C %STRING(6) DEV, %C %STRING(6) FILE, %C %STRING(3) EXT, %C %INTEGER PPN, %C %STRING(6)%ARRAY SFDS(1:MAX SFDS), %C %INTEGER PROT, %C %STRING(39) SWITCHES) %ROUTINE XDEFINE INPUT(%INTEGER I,%RECORD(FILESPEC)%NAME FS) %EXTERNALROUTINESPEC XDEFINPUT XDEFINPUT; !USE XDEFINE INPUT PARAMETERS %END %ROUTINE XDEFINE OUTPUT(%INTEGER I,%RECORD(FILESPEC)%NAME FS) %EXTERNALROUTINESPEC XDEFOUTPUT XDEFOUTPUT; !USE XDEFINE OUTPUT PARAMETERS %END !EVENT INFORMATION %EXTERNALINTEGERFNSPEC EVENT %EXTERNALINTEGERFNSPEC SUB EVENT %EXTERNALINTEGERFNSPEC EVENT INFO !MATHEMATICAL FUNCTIONS %EXTERNALINTEGERFNSPEC IMOD(%INTEGER I) %EXTERNALINTEGERFNSPEC INT(%LONGREAL A) %EXTERNALINTEGERFNSPEC INT PT(%LONGREAL A) %EXTERNALLONGREALFNSPEC FRAC PT(%LONGREAL A) %EXTERNALLONGREALFNSPEC MOD(%LONGREAL A) %CONSTLONGREAL PI=3.141592653589793238462 %CONSTINTEGERARRAYNAME AC=0 %CONSTINTEGERNAME VERSION=8_137 %CONSTINTEGER ARG1=6; !AC FOR FIRST ARGUMENT %CONSTINTEGER BASE1=16; !AC OF FIRST BASE REGISTER %ENDOFPERM !+ !.LC !.NF.NAP.FLAG CAP ! <%NAME WORD COMPRISES:- ! ^BITS (0-8) - ITEM LENGTH ! ^BITS (9-12) - NAME TYPE ! ^BIT (13-17)- 0 ! ^BITS(18-35) - ADDRESS !^WHERE '^NAME TYPE' HAS THE VALUES ! 1 - <%INTEGER ! 2 - <%SHORTINTEGER ! 3 - <%BYTEINTEGER ! 4 - <%STRING ! 5 - <%RECORD ! 6 - <%REAL ! 7 - <%LONGREAL !- !+ !.NF !.LC !.NAP !.FLAG CAP !.S 2 !^DEFINITION OF THE FILE SPECIFICATION RECORD !.S 1 !<%RECORDFORMAT