NAMES NAMES ABOD1.MAC ABOD2.MAC ACALLN.MAC ACALLS.MAC ACOMPI.MAC ADEC1.MAC ADEC2.MAC ADEC3.MAC AEXPR.MAC ASTMN1.MAC ASTMN2.MAC ASTMN3.MAC HEAP.MAC TRICK.MAC **** ABOD1.MAC .TITLE ABOD1 ZADDTO:: JMP ADDTOP .GLOBL CALL ZCALL:: JMP CALL ZGENBR:: JMP GENBR ZGENCO:: JMP GENCON ZGENFJ:: JMP GENFJP ZGENSU:: JMP GENSUB ZGENUJ:: JMP GENUJP ZGEN1:: JMP GEN1 ZGEN2:: JMP GEN2 ZGLOBA:: JMP GLOBAL ZINSER:: JMP INSERT ZLDO:: JMP LDO ZLINEN:: JMP LINENO ZLOAD:: JMP LOAD ZLOD:: JMP LOD ZMOVEF:: JMP MOVEFR ZPSECT:: JMP PSECTD ZPUTGS:: JMP PUTGSD ZPUTRL:: JMP PUTRLD ZSTATM:: JMP STATEM ZWRITB:: JMP WRITOB .END **** ABOD2.MAC .TITLE ABOD2 ZEXPRE:: JMP EXPRES ZLARGE:: JMP LARGES ZLOADA:: JMP LOADAD ZMULTI:: JMP MULTIP ZSELEC:: JMP SELECT ZWRITF:: JMP WRITOF .END **** ACALLN.MAC .TITLE ACALLN ZCALNO:: JMP CALLNO ZCALNS:: JMP CALLNS .END **** ACALLS.MAC .TITLE ACALLS ZCALST:: JMP CALLST .END **** ACOMPI.MAC .TITLE ACOMPI ZBLOCK:: JMP BLOCK ZCOMPT:: JMP COMPTY ZCNSTA:: JMP CONSTA ZCPYCT:: JMP COPYCT ZHPMA:: JMP HEAPMA ZHPRE:: JMP HEAPRE ZSKIP:: JMP SKIP ZSTRIN:: JMP STRING .END **** ADEC1.MAC .TITLE ADEC1 ZTYP:: JMP TYP .END **** ADEC2.MAC .TITLE ADEC2 ZCNSTD:: JMP CONSTD ZLABEL:: JMP LABELD ZPROCE:: JMP PROCED ZTYPDE:: JMP TYPEDE ZVARDE:: JMP VARDEC .END **** ADEC3.MAC .TITLE ADEC3 ZPARAM:: JMP PARAMT .END **** AEXPR.MAC .TITLE AEXPR ZSMPLE:: JMP SMPLEE .END **** ASTMN1.MAC .TITLE ATSMN1 ZCASES:: JMP CASEST ZWITHS:: JMP WITHST .END **** ASTMN2.MAC .TITLE ASTMN2 ZCOMPO:: JMP COMPOU ZGOTOS:: JMP GOTOST ZIFSTA:: JMP IFSTAT ZLOOPS:: JMP LOOPST ZREPEA:: JMP REPEAT ZWHILE:: JMP WHILES .END **** ASTMN3.MAC .TITLE ASTMN3 ZASSIG:: JMP ASSIGN ZFORST:: JMP FORSTA .END **** HEAP.MAC .TITLE $HEAP - RUNTIME STACK/HEAP FOR MEM RES OVERLAYED TASKS ; THIS MODULE GENERATES A SPECIAL VERSION THE HEAP SECTION ; THAT IS REQUIRED FOR PROGRAMS USING MEMORY RESIDENT OVERLAYS. ; THE ONLY DIFFERENCE (ASSIDE FROM SIZE) BETWEEN THIS ONE AND ; THE ONE GENERATED BY THE COMPILER IS THAT THIS ONE HAS THE ; READ-ONLY (RO) ATTRIBUTE. ; ; WHEN MEMORY RESIDENT OVERLAYS ARE USED, THE HEAP SECTION MUST ; BE PLACED AT THE END OF THE ROOT SEGMENT BECAUSE OF THE WAY ; THE INITIALIZATION MODULE, P11INIT, PREPARES THE PASCAL STACK. ; HOWEVER, WHEN AUTOLOADING IS IN USE, PSECTS, $$MRKS AND $$RDSG ; ALSO GET LOADED INTO THE ROOT. THESE PSECTS HAVE THE RO ATTRIBUTE ; AND CONSEQUENTLY GET PLACED AFTER ALL RW PSECTS. SO, IF THE HEAP ; SECTION (NAMED 999999) IS RW THEN IT WONT BE THE LAST ONE IN THE ; SEGMENT. THIS WILL CAUSE P11INIT TO CLEAR SECTIONS $$MRKS, $$RDSG ; AND ANY OTHER RO SECTIONS. THIS WILL CAUSE THE TASK TO EVENTUALLY ; CRASH. THUS, THE REASON FOR GIVING RO ATTRIBUTE TO THE HEAP ; SECTION - TO MAKE SURE IT IS THE LAST ONE IN THE SEGMENT. ; ; NOTE: THERE IS NO PROBLEM WRITTING INTO A RO SECTION - AT LEAST ; IN RSX-11M UP TO VERSION 3.1. ; ; NOTE ALSO THAT THE PSECT NAME IS NOT 999999, AS IS THE COMPILER ; GENERATED PSECT. WE HAVE TO CALL IT .99999 BECAUSE THE ASSEMBLER ; DOES'NT LIKE NAMES THAT START WITH NUMBERS! .PSECT .99999 RO $$HEAP:: .BLKW 500. ; MINIMAL SIZE - SET ACTUAL SIZE AT BUILD TIME .END **** TRICK.MAC .TITLE TRICK ADDTOP:: JMP ZADDTO ASSIGN:: JMP ZASSIG BLOCK:: JMP ZBLOCK CALL:: JMP ZCALL CALLNO:: JMP ZCALNO CALLNS:: JMP ZCALNS CALLST:: JMP ZCALST CASEST:: JMP ZCASES COMPOU:: JMP ZCOMPO COMPTY:: JMP ZCOMPT CONSTA:: JMP ZCNSTA CONSTD:: JMP ZCNSTD COPYCT:: JMP ZCPYCT EXPRES:: JMP ZEXPRE FORSTA:: JMP ZFORST GENBR:: JMP ZGENBR GENCON:: JMP ZGENCO GENFJP:: JMP ZGENFJ GENSUB:: JMP ZGENSU GENUJP:: JMP ZGENUJ GEN1:: JMP ZGEN1 GEN2:: JMP ZGEN2 GLOBAL:: JMP ZGLOBA GOTOST:: JMP ZGOTOS HEAPMA:: JMP ZHPMA HEAPRE:: JMP ZHPRE IFSTAT:: JMP ZIFSTA INSERT:: JMP ZINSER LABELD:: JMP ZLABEL LARGES:: JMP ZLARGE LDO:: JMP ZLDO LINENO:: JMP ZLINEN LOAD:: JMP ZLOAD LOADAD:: JMP ZLOADA LOD:: JMP ZLOD LOOPST:: JMP ZLOOPS MOVEFR:: JMP ZMOVEF MULTIP:: JMP ZMULTI PARAMT:: JMP ZPARAM PROCED:: JMP ZPROCE PSECTD:: JMP ZPSECT PUTGSD:: JMP ZPUTGS PUTRLD:: JMP ZPUTRL REPEAT:: JMP ZREPEA SELECT:: JMP ZSELEC SKIP:: JMP ZSKIP SMPLEE:: JMP ZSMPLE STATEM:: JMP ZSTATM STRING:: JMP ZSTRIN TYP:: JMP ZTYP TYPEDE:: JMP ZTYPDE VARDEC:: JMP ZVARDE WHILES:: JMP ZWHILE WITHST:: JMP ZWITHS WRITOB:: JMP ZWRITB WRITOF:: JMP ZWRITF .END ****