Home

logic

image

Contents

1. CSECT LTOPRS 1 2 ALL LITERAL TABLE OPERATIONS ENTRY LTDMP1 1 DUMP LITERALS ON FINDING LTORG AND END LTDMP1 IS CALLED BY IBASM1 TO FIND LENGTH OF THE CURRENT ITERRAL POOL AND AVANCE THE CURRENT POOL PTR TO THE NEXT 1 EXIT CONDITIONS RA TOTAL LENGTH REQUIRED FOR THE LITERAL BLOCK CALLS MOSTOP USES DSECTS AVWXTABL LTBASETB LTLENTRY USES MACROS S ALIGN ALLOCH CALL GLOC SRETURN SAVE gt ENTRY LTDMP2 2 DUMP LITERALS IN PASS 2 PC ied LTDMP2 IS CALLED BY IDASM2 DURING PASS 2 WHENEVER A LTORG OR END STMT IS FOUND TO PRODUCE THE OBJECT CODE AND LISTING OF ANY LITERALS IN THE CURRENT LITERAL POOL THE CURREN POOL BASE POINTER IS ADVANCED TO THE NEXT LTBASETB CALLS CNDTL2 USES DSECTS AVWXTABL LTBASETB LTLENTRY USES MACROS CALL GLOC RETURN SAVE SLOC gt ENTRY
2. ASPLM640 32 CSECT ACLEX THIS PROCEDURE SCANS A MCRO STATEMENT AND W CONVERTS IT INTO BSU S ALSO CHECKS FOR SUCH ERRORS AS TWO TERMS OR TWO OPERATORS IN A ROW WHERE NECESSARY IT INSERTS x CATENATION OPERATORS WHERE CATENATION IS IMPLICIT X ENTRY CONDITIONS W RA OF FIRST CHARACTER OF EXPRESSION x RC ON NEXT AVAILABLE BSU IN WORKSPACE EXIT CONDITIONS W RA OF DELIM PAST EXPRESSION IF NO ERROR OF ERROR IF ERROR PRESENT x RB 0 IF OKAY X SERMSSGE IF ERROR RC OF NEXT AVAILABLE SPACE FOR BSU CALLS MCGTST MCDTRM SDBCDX MCSYSR MCATRM MCGTST USES DSECTS AVWXTABL MCBSU MCPARENT MCGLBDCT MCLCLDPV USES MACROS SSAVE SRETURN SALLOCL SCOF SCPT CALL SETRT x REGISTER USAGE A WORK REGS RO R1 R2 RY RZ RB RC RE A USED FOR TRT R1 R2 A S RW BASE REG FOR BSU A R13 BASE REG FOR THIS CSECT A W RAT BASE REGISTER FOR MAIN TABLE A RX UNUSED A x RD A A KKK kk Ck Ck Ck Ck XK XK XK XK XK k k kk ck XK kk kk kk XxX XxX kk kk XxX XxX kk INSUB MCLXBMP INSUB MCLXCATI BUMP POINTI n R ROUTINE TO INSI ER CONCATINATION wn
3. MACRO SSERR SET ERROR CODE MESSAGES AND EQU SYMBOLS CALLED 2 TIMES FOR EACH ERROR EQU 1 TIME TO SET UP EQU 1 TIME TO CREATE ERROR MESSAGE DC S IN CSECT OUTPUT OF ASMBLER amp ERR IS LAST 5 CHARACTERS OF ERROR MESSAGE EQU SYMBOL amp MSG IS THE ERROR MESSAGE ASSOCIATED WITH THE EQU amp NM IS THE ERROR CODE FOR EXTERNAL USE AS Ze aku RR e de e Kn e de e Je e de Ze de e Ze CAS KL O Je ge e e de RR Ze Ze kr e Je e ASPLM630 6 MACRO SSETRT SET UP TRT TABLE FOR SCANNING IN ASSEMLBER e USED INSIDE ASSIST ASSEMBLER TO CREATE TEMPORARY TRT TABLE IN en COMMON AREA AWTZTAB WHICH CONTAINS 256 HEX O S amp LIST IS LIST OF CHARACTER VALUE PAIRS WITH CHARACTERS K d ENCLOSED IN QUOTES CORRESPONDONG VALUES ARE MOVED INTO Rae CORRESPON ING LOCATIONS IN 256 BYTE TABLE OF ZEROS E g IF VALUE IS OMITTED ZERO IS ASSUMED QE CX k k k k KOK KOK amp amp X X X RRA X Kk X X MACRO SLOC SET LOCATION COUNTER TO REGISTER VALUE VU SET LOCATION COUNTER MACRO SETS amp RG AS LOCCNTR VALU EJ La EP MD E Re E EE ME OE M ML ME
4. ASPLM640 33 gt CSECT MACRO1 CALLED BY MAIN CONTROL WHEN MACRO OPCODE ENCOUNTERED AT PRESENT DEC 31 1971 ONLY MACRO DEFINITIONS ARE ALLOWED NO CONDITIONAL ASSEMBLY MACROl CREATES ENTRY IN MACLIB FOR FUTURE EXPANSION BY MEXPND ENTRY CONDITIONS RA SCAN POINTER OF OPERAND RC OPCODTB ENTRY FOR OPERATION CALLS MACSCN OUTPT2 MACFND ERRTAG ERRLAB MCVSCN MCSCOP MCBODY USES MACROS SAVE SRETURN CALL SALLOCL S USES DSECTS RSBLOCK OPCODTB AVWXTABL MACLIB MCPARENT REGISTER USAGE S WORK REGS RO R1 R2 RA RB RD RE S BASE REGS RAT RW RX RY R13 RC S UNUSED RZ 5 S INSUB MACRORD MACRO READER x ES ESA SES de e aus ASPLM640 34 CSECT MACSCN SCANS MACRO INSTRUCTION STATEMENT IDENTIFIES ABEL OPCODE OPERAND AND COMMENT IF ANY FIELDS LOCATION OF EACH FIELD STORED IN AVMFID ENGTH OF EACH FIELD STORED IN AVMFLDL IYPE OF EACH FIELD PLACED IN AVMFLDT FIEL
5. INSUB MACSCBLN SCAN FOR NON BLANK CHAR 4 S INSUB MACSCHEK CHECK FOR NON STD COND CARD S INSUB MACSCMMT SCAN COMMENT FIELD d S gt INSUB MACSCOPR FIND AND SCAN OPERAND S gt INSUB MACSCSTR SCAN ARBITRARY STRING E se Er S ASPLM641 35 CSECT MCATR THIS ROUTINE SCANS A TERM AND DETERMINES X WHETHER IT IS A VALID ATTRIBUTE IE I K L N S OR T HE LENGTH L SCALE S AND INTEGER 1 ATTRIBUTES ARE NOT IMPLEMENTED AND ARE SO FLAGGED ENTRY CONDITIONS hi RA OF FIRST CHAR OF TERM EXIT CONDITIONS RA OF DELIM PAST QUOTE IF VALID ATTRIBUTE ELSE SAME AS ENTRY RB 0 IF ATTRIBUTE 4 IF NOT ATTRIBUTE KT SERMESSAGE IF NOT IMPLEMENTED RC TYPE OF ATTRIBUTE x USES MACROS SSAVE SRETURN USES DSECTS AVWXTABL
6. gt DSECT MCOPQUAD FORMAT OF ONE OP ENTRY MACRO DEFINITIONS ARE TRANSLATED INTO ONE OPS FOR SUBSEQUENT INTERPRETATION X zk kk kk kk kk XK k kk k XK XK kk XK XK XK XK XK XK k XK k XK kk kk kk gt DSECT MCPARENT FORMAT FOR SYMBOLIC PARAMETER ENTRY gt DSECT MCPAROPR FORMAT FOR SYMBOLIC PARAMETER DICTIONARY iS e ENTRY ONE ENTRY FOR EACH SYM PARAM ON ENTRY TO MEXPND Ak kk kk kk kk kk E EE EE Ek kk kk kk kk kk kk kk k ko ASPLM620 6 gt DSECT MCPARSUB FORMAT FOR DICT ENTRY FOR SUBLIST OPRNDS ei bar ONE ENTRY FOR EACH ELEMENT OF SUBLIST OF SYM PARAM ENTRY Ak kk kk kk kk kk E EE EE Ek OK kk kk kk kk E Err 3 DSECT MCSEQ FORMAT OF SEQUENCE SYMBOL ENTRY X X Kk X K Kk Kk Kk X Kk K X X X Kk Kk Kk Kk Kk Kk
7. gt INSUB MCSET MODIFY TRT TABLE AWTZTAB t x 4 4 4 4 4 5 ASPLM641 41 CSECT MCSYSR SCANS SUSPECTED VARIABLE SYMBOL FOR LEGALITY Ei IF VARIABLE SYMBOL THEN PLACES IN AVMSYMBL THEN SEARCHES GLOBAL LOCAL AND SYMBOLIC PARAMETER DICTIONARIES FOR SYMBOL I ENTRY CONDITIONS RA OF FIRST CHARACTER OF SYMBOL EXIT CONDITIONS RA OF DELIMITER PAST VARIABLE SYMBOL IF OKAY SAME AS ENTRY IF NOT VARIABLE SYMBOL OR IF NOT FOUND RB DEF IF SYMBOL IS NOT FOUND RB 0 SYMBOL IS FOUND IN ONE OF THE DICTIONARIES S O 4 IF RA DOES NOT POINT AT VARIABLE SYMBOL RC POINTER TO SYMBOL ENTRY IF FOUND RD BAL IF SYMBOL PRESENT IN GLOBAL DICTIONARY OCAL IF SYMBOL FOUND IN LOCAL DICTIONARY PAR IF SYMBOL IS SYMBOLIC PARAMETER TEM IF SYMBOL IS SYTEM VARIABL Il Uu o K Ed ACROS SCALL SAVE SRETURN DSECTS MCGLBDCT MACLIB AVWXTABL CALLS MCVSCN MACFND REGISTER USAGE R13 BASE REGISTER AND SAVEAREA POINT RC BASE REGISTER FOR GLOBAL DSECT RX BASE REGISER FOR MACRO DICTIONARY td Ke T
8. w o DO hi Ho H IONAL PERIPHERAL GEAR A SEPARATE 360 50 512K PROCESSOR GABYTE LCS SYSTEMS RESIDENCE ON 2319 DISK IS AVAILABLE R 7 AT SOME TIMES FOR THE RMINAL HANDLING DESCRIBED BELOW BRIEFLY WHILE RUNS MAY BE SUBMITTED AT THE COMPUTER CENTER ITSEL THE SYSTEM APPEARS ORIENTED TO THE HANDLING OF REMOTE BATCH TERMINALS A EAST 13 ADER PRINTER PUNCH TERMINALS SUCH AS IBM 2780 OR DCS CP 4 TYPE DEVICES ARE LOCATED E ER AT THI AIN CAMPUS OR AT COMMONWEALT EAD R H LS P E mo O P ITH 3 CAMPUSES SPREAD ACROSS THE STATE OF PENNSYLVANIA IN ADDITION TO SIX 360 20 S OF VARYING CAPACITIES IN PARTICUALR FOUR OF THESE ARE DEDICATED TO SHORT JOB FAST TURNAROUND REMOTE STATIONS ON CAMPUS WHERI STUDENTS SUBMIT THEIR OWN JOBS AND OBTAIN THE OUTPUT ALMOST IMMEDIATE GENERALLY BEING HELD UP ONLY BY THE PRINTER SPEED THE SIZE OF THE JO IS LIMITED TO 600 OUTPUT RECORDS AND EITHER 5 SECONDS TOTAL TIME ON THI 67 OR 20 SECONDS ON THE 50 LT D K nr HOME
9. ASPLM641 36 CSECT MCBODY PROCESSES THE BODY OF MACRO DEFINITION CALLED FOR ACRO1 AFTRR PROTOTYPE STATEMENT PROCESSED INITIALIZES LOCAL DICTIONARY FOR CURRENT DEFINITION PROCESSES EACH STATEMENT TILL MEND STATEMENT ENCOUNTERED TERMINATES AND RETURNS AT THAT POINT E IN OPEN CODE MODE MCOCFL1 ON IN MCLBFLG2 MCBODY ONLY PROCESSES STMT IN RSBLOCK IF AVPRSAVE IS SET IN AVPRINT1 IT CALL MXMVSR TO SAVE STMT IN HIGH AREA ELSE IT PRINTS IT IMMEDIATELY ENTRY CONDITIONS RC OF MACLIB ENTRY OF CURRENT MACRO DEFINITION USES MACROS SSAVE SRETURN CALL SALLOCL SALLOCH SCOF SSETRT USES DSECTS AVWXTABL MACLIB MCLCLDPV OPCODTB RSBLOCK MCBSU CSEQ MCGLBDCT MCOPQUAD CALLS INCARD ERRTAG MACSCN ERRLAB MCVSCN MACFND SDDTRM MCSYSR MACLEX MCGTST OUTPT2 MCGNCD REGISTER USAGE R13 BASE REGISTER AND SAVEAREA POINTER RAT MAIN TABLE DSECT USING RX MACLIB DSECT USING RY LOCAL DICTIONARY DSECT UING RZ OPCODE TABLE DSECT USING RB RE RA WORK REGISTERS R1 R2
10. NORMAL JOB ON MEDIUM TO LARGE SYSTEM ASSIST MAY SIMPLY BE ADDED TO A SYSTEM LIBRARY AND USED EITHER TO PROCESS SEPARATELY SUBMITTED INDIVIDUAL JOBS OR TO PROCESS COLLECTED BATCHS OF RUNS IF 100 200K OF STORAGE IS AVAILABLE ALMOST ANY STUDENT TYPE PROGRAM CAN BE RUN AND A NUMBER OF THE OPTIONAL FACILITIES CAN BE INCLUDED THUS EXTENDING THE RANGE OF PROGRAM TYPES WHICH CAN USE ASSIST EVEN IF RUN AS A PROCESSOR FOR SINGLE JOBS ASSIST S LOW OVERHEAD COMPARED WITH THE SYSTEM ASSEMBLERS CAN SAVE PROCESSING TIME BESIDES PRINTING MUCH L ESS OUTPUT AND GIVING BETTER DIAGNOSTICS ASPLM670 7 LARGE SYSTEM FAST TURNAROUND PROCESSOR UNDER A SWAPPING MONITOR ASSIST S SMALL SIZE AND HIGH SPEED MAKE IT USEFUL FOR PROCESSING LARGE NUMBERS OF JOBS AS ONE OF SEVERAL PROCESSORS WHICH ARE SWAPPED IN AND OUT OF A DEDICATED REGION IN A LARGE COMPUTER THUS GIVING STUDENT PROGRAMMERS VERY FAST TURNAROUND AT A LOW COST RUN THIS TYPE OF USAGE ACCOUNTS FOR THE BULK OF ASSIST UTILIZATION AT PENN STATE WE GIVE AN OVERVIEW OF THE SYSTEM AT PENN STATE AS OF 08 23 71 AIN COMPUTER SYSTEM USED IS A 360 67 POSSESSING 1 MEGABYTE SOR STORAGE WITH 2 MEGABYTES OF 8 MICROSECOND CYCLE LCS WITH UMS FOR RESIDENCE OF HEAVILY USED PROGRAMS INCLUDING ASSIST T LS
11. DSECT MSGBLOCK ERROR MESSAGE BLOCK r We ooo E US DSECT MXPNTSAV CONTROL FOR LEVEL OF MACRO EXPANSION 85 si ONE IS ALLOCATED FOR EACH LEVEL OF MACRO CALL A sa NAMES MXP A FF XK ok X XK XK XX Kk UT XK YY 4 XX x kk ok XX gt DSECT OPCODTB DESCRIBES 1 ENTRY IN OPOCDE TABLE fe LOCATION ELEMENTS OF TABLE IN CSECT OPCOD1 OF ASSEMLBER X GENERATION 1 CALL TO MACRO OPG CREATES AN ELEMENT 2 Lm SECTIONS OPCTYPE OPCHEX OPCMASK CORRESPOND TO SIMILARLY NAMED Si SECTIONS OF DUMMY SECTION RCODBLK SEE CSECT OPCODI bor NAMES OPC DSECT OUCMPRSD CONTROL BLOCK FOR OUTPUT CMPRS OPTION THIS BLOCK DESCRIBES AREA USED BY OUTPT2 WHEN DOING THE CMPRS LISTING OPTION 2 STMTS LINE IT CONTAINS VARIABLI FLAGS AND SPACE FOR SOU NORM PARTIAL CARD IMAGES WHICH ARE SAVED AND USED FOR THE LEFT HAND SIDE OF THE PAGE THIS BLOCK IS ALLOCATED SPACE ONLY IF THE CMPRS PARM IS USED THE OUCMPRSD IS STORED IN OUCMPRAD VARIABLE LOCATION IN DYNAMIC AREA ACQUIRED BY SALLOCH IN OUINT1 NAMES OUCM E A Xx A A F DSECT OUSTMTIM STATEMENT IMAGE USED IN OUTPUT Sas As USED IN CMPRS OPTION HANDLER
12. gt ENTRY UTEND2 2 CLEANUP AFTER PHASE 2 DONE Hr UTEND2 IS CALLED AT THE END OF ASSEMBLY PASS 2 IT ASSURES Ta THAT ANY DS STATEMENTS ENDING THE PROGRAM WILL BE FILLED IN x WITH 5 S LIKE ANY OTHER DS S FOLLOWED BY CODE THE VERY LAST A STRING OF DS S MAY NOT BE CAUGHT BY UTPUT2 IT DOES THIS BY Ed CALLING UTPUT2 WITH SOME NONEXISTENT OBJECT CODE e CALLS UTPUT2 us USES DSECTS AVWXTABL 2 USES MACROS SSAVE L xx gt ENTRY UTGET2 2 GET FROM UTILITY DUIRNG PASS 2 UTGET2 IS CALLED DURING PASS 2 TO RETRIEVE THE ADDRESSES OF Lun THE SET OF RECORD BLOCKS BELONGING TO THE NEXT STATEMENT A E CHECK IS REQUIRED FOR ANY OFFSET ADJUSTMENT MADE BY UTPUTI kr WHICH MADE SURE THAT NO RECORD BLOCK COULD BE OVERLAID BY Es ITS OWN CODE e EXIT CONDITIONS RC RSBLOCK THE ONLY BLOCK DEFINITELY PRESENT RE 0 NORMAL RETURN RE 4 gt END FO FILE QUIT AVRSBPT AVRCBPT AVRSCPT NOW POINT TO THEIR BLOCKS IF THEY EXIST AVREBLK HAS HAD THE REBLK MOVED INTO IT IF THERE WAS ONE AVREBPT IS NOT CHANGED STILL POINTS AT AVREBLK AS ALWAYS gt ENT
13. AOBJDK 05098480 3 APARMS 04577050 5 ASSIST 03751000 6 BROPS2 08566000 E CACONS 08738000 8 CBCONS 08846000 9 CCCONS 08992000 10 CDECNS 09156000 11 CFHCNS 09406000 12 CNDTL2 09584000 13 CODTL1 09886000 14 CPCONS 10388000 15 CVCONS 10586000 16 CXCONS 10712000 17 CZCONS 10858000 18 ERRORS 11044000 19 ESDOPRS 11138000 20 EVALUT 11520000 21 EXECU 05102440 22 IAMOP1 12316000 23 IBASMI 12466000 24 ICMOP2 13414000 25 IDASM2 14844000 26 INPUT1 15418000 27 LTOPRS 15678000 28 ACF ND 46210000 30 ACINT 41655000 31 ACLEX 52520000 32 21 42025000 33 ACSCN 43945000 34 CATR 47620000 35 CBODY 47910000 36 CDTR 47020000 37 CGNCD 55805000 38 CGTST 47255000 39 CSCOP 45330000 40 CSYSR 46655000 41 CVSCN 46405000 42 EXPND 57695000 43 OCONI 16346000 44 PCONO 16714000 45 TCON2 16962000 46 XERRM 66130000 47 XINST 60535100 48 XMVSR 66690000 49 OPCODI 17070000 50 OUTPUT 17754000 DI REMONI 30144000 52 RESYSMS 32790000 54 SCANRS 18752000 55 SDTERM 18880100 56 SYMOPS 19196000 57 UTOPRS 19492000 58 VWXTABL 20008100 60 XDDGET E XDDTABLE XXDDFINI XXXXDECI XXXXDECO XXXXHEXI XXXXHEXO XXXXIOCO XXXXSNAP XXXXSPIE 071 071 071 071 071 071 071 071 52012 51958 52220 50020 50750 51220 51670 64000 07674050 08562505 61 62 63 64 65 66 67 68 72 73 ASPLM640 2 ASPLM640 3 T xx gt CSECT AOBJDK OBJECT DECK HANDLING M
14. OHH Lu B 0 N P MACRO PSEUDO INSTRUCTIONS XDUMP XLIMD PNCH XPRNT XREA AY BE DECODED TO THE POINT OF RUCTION HANDLERS BUT THEY ARE ERRUPT AT PRESENT AND ARE NOT PRETED FURTHER HE CODE PRESENT IS FOR FUTURE USE A THE SVC INSTRUCTION IS CURRENTLY FLAGGED WITH AN 0C2 IF USED BUT CODE EXISTS TO HANDLE ALL SVC CALLS IN A TABLE E DRIVEN WAY USING THE OF AN SVC CONTROL TABLE PASSED IN THE ECSVCADS IN ECONTROL AS OF 8 2 70 THERE ARE NOT SVC ROUTINES BUT THE CODE EXISTS FOR FUTURE USE GENERAL CODE IS ALSO PROVIDED FOR ANY ADDITIONAL NEW INSTRUCTIONS OR I O SIMULATORS BY THE SECTION EXCALL WHICH ALLOWS CALLS TO EXTERNAL ROUTINES WHICH WOULD BE USED BY ANY SVC CALLS IF THERE ARE ANY NTRY CONDITIONS R10 ECONTROL EXECUTION CONTROL BLOCK ECONTROL CONTAINS ALL INITIAL VALUES FOR REGS LIMITS ETC XIT CONDITIONS ECINTCOD CONTAINS INTERRRUPT CODE IF PROGRAM INTERRUP ECFLAG1 CONTAINS SPECIAL COMPLETION CODE IF ANY ECERRAD ADDRESS OF AN ERCOMPCD ERROR COMPLETION CODE BLOCK ECONTROL CONTAINS ALL OTHER VALUES NEEDED FOR A COMPLETION DUMP USES DSECTS ECONTROL ECSTACKD USES MACROS SAL2 SERCGN PNCH PRNT SREAD SRETURN SSAV USES MACROS SPIE XDECI XDECO XSNAP U po LO lt H S D E E EGED OPERATIONS M ANCHING TO INDIVIDUAL INS E I C E A
15. amp OVRFL IS BRANCH IF OVERFLOW OCCURS de Ck e e Je R Klo e ke A Je de Ze RO AN Je e k RMS RD Je ko AS Ck Ze RA E T MACRO amp MALLOCL GET CORE IN LOW FREEAREA SAME AS amp ALLOCL CEPT USES AVGEN2CD AS POINTER TO FREE HIGH AREA USED IN H A 0X X X Fl XPND H H H H OVRFL IS TO BE BRANCHED TO IF OVERFLOW ENG IS THE LENGTH TO BE ALLOCATED hi H amp amp amp amp R GIVES REGISTER CONTAINING LENGTH DESIRED a H H R GIVES REGISTER WHERE ADDRESS OF NEW USEABLE AREA APPEARS S H k kk kk kk kk kk Kk XK Kk Kk kk kk XK XK kk kk kk kk kk Kk Kk X H MACRO SALIGN GET ALIGN RESTORE UPDATED LOCATION COUNTER USED TO ALIGN LOCATION COUNTER TO H F OR D BOUNDARIES amp R WILL CONTAIN ALIGNED VALUE OF LOCATION COUNTER amp A GIVES ALIGNMENT REQUIRED IF IN PARENTHESES GIVES REG IF NOT GIVES DECIMAL NUMBER 1 3 7 FOR H F D ALIGN amp TAG IF CODED MEANS THAT LOCATION COUNTER IS ALREADY IN amp R USES MACROS SALIGR GLOC SLOC W de RO kr e Je e Klo e de Ok ES PR RR RR e R Je e 2 e de e R RL E I
16. HE FOLLOWING ALGORITHM IS FROM THE ART OF COMPUTI 1 FUNDAMENTAL ALGORITHMS BY DONALD KNUTH E D IN POSTORDER DR HE FIRST NODE IN THE TREE FROM AD IF IT IS 0 PRINT A MESSAGE THAT NO SYMBOLS R E LO D T H 0 D lt D We i ENCED IF IT IS NOT 0 FOLLOW THE LEFT LINKS UNTIL IT IS 0 THEN PRINT THE SYMBOL FROM THE NODE AND ALL ITS REFERENCES NOTE A NEGATIVE REFERENCE IS A MODIFY AND A POSITIVE REFERENCE IS A FETCH IT IS PRINTED ACCORDING TO THE FORMAT DESCRIBED ABOVE HEN THE RIGHT LINK IS CHECKED IF IT IS 1 WE AR AT THE END OF HE TREE AND RETURN TO ASSIST IF IT IS LESS THAN 1 IT IS A THREAD BACK TO A NOD GET HE POSITIVE ADDRESS OF THE NODE PRINT THE SYMBOL AND ITS REFERENCES CHECK THE RIGHT LINK AGAIN IF IT IS POSITIVE IT IS THE ADDRESS OF THE NEXT NODE GO TO THAT NODE AND CHECK ITS LEFT LINK AS ABOVE J Di E ACA OX 0 F KE F E OO OX FF OX F OX Ro Xo Ro X o F xo Xo s wo boob cx oboe e ASPLM580 5 REGISTER USAGE
17. HPWH N H AGGED WITH AN 002 IN t bi el ACA OX 0 E KE F KE F OX A ACA OX 0X F KE OX OR F OX X KE OR X A X F X xoxo HF OF O A tJ ASPLM640 23 CSECT IAMOP1 1 MACHINE OPERATIONS PASS 1 Ss HIS IS 1 OF 2 PASS 1 LEVEL 2 PROGRAMS IT PERFORMS ALL ASS 1 MACHINE INSTRUCTION PROCESSING INCLUDING ALIGNMENT THE LOCATION COUNTER SCANNING FOR LITERAL CONSTANTS D BUILDING AN RCODBLK FOR THE STATEMENT THE RCODBLK CLUDES THE INSTRUCTION FORMAT TYPE THE MACHINE CODE FOR E GIVEN INSTRUCTION MASK EXTENDED MNEMONICS FLAGS A R R Hj a T a D ALIGNMENT VALUES NEEDED THE LENGTH ATTRIBUTE 1 FOR TH UCTION AND THE ADDRESS OF A LITERAL CONSTANT IN THE AL TABLE IF THERE IS ONE USED CONDITIONS POINTER AD DDRESS OF OPCOD XIT CONDITIONS NO ERRORS WERE ENCOUNTERED 0 ERRORS WERE FOUND IN STATEMEN ECO
18. ASPLM641 56 CSECT SDTER SELF DEFINING TERM CONVERSIONS M E NM s SDTERM INCLUDES AN ENTRY POINT FOR CONVERTING EACH TYPE OF A SELF DEFINING TERM AND AN ENTRY POINT WHICH FIRST DECIDES e WHICH TYPE IF ANY THE SCAN POINTER IS POINTING AT THEN BRANCHES TO THE CORRECT SECTION TO CONVER HE TERM E USES DSECTS AVWXTABL Ka USES MACROS SRETURN SAVE gt ENTRY SDBCDX 1 2 DETERMINE TYPE OF SELF DEFINING TERM CHECK Fe DECIDE TYPE OF SELF DEFINING TERM BRANCH TO RIGHT SECTION Ges ENTRY CONDITIONS Iu RA SCAN POINTER TO BEGINNING OF TERM TO C B X OR 1ST DIGIT c EXIT CONDITIONS RA SCAN POINTER TO DELIMITER BEYOND TERM NOT ENDING B C X RB 0 SELF DEFINING TERM WAS LEGAL EB 0 ERROR CODE ILLEGAL TER SERSDINV ur RB 4 gt SCAN POINTER DID NOT POINT AT SELF DEFINING TERM a RC VALUE OF SELF DEFINING TERM FROM 0 TO 2 24 1 gt ENTRY SDBTRM 1 2 SCAN COMPUTE BINARY SELF DEFINING TERM D ENTRY EXIT CONDITONS SAME AS SDBCDX EXCEPT RB gt 0 ON EXIT gt ENTRY SDCTRM 1 2 SCAN COMPUTE CHARACTER SELF DEFINING TERM Hr ENTRY EXIT CONDITONS SAME AS SDBCDX EXCEPT RB gt 0 ON EXIT
19. MACRO ASPRNT PRINT LINE INSIDE MAIN PROG ASSIST p ASPRNT SETS UP RO LINE R1 LENG CLLS INSUB ASASPRNT OF ASSIST MODIFIES REGS RO R1 R14 Sa amp XAREA XNUM SAME AS THOSE FOR SPRNT LENGTH TO PRINT KOK Ok kk kk kk XK k kk kk XK XK k XK XK XK XK XK XK k XK xk XK kk kk kk MACRO ASRECL INK TO RECORD LIMIT CONTROL CODE amp CODE IS TWO DIGIT NUMBER GIVING SECTION OF ASRECL CALLED MACRO ASTIME UPDATE TIMER PRINT TIMING MESSAGES ASSIST amp ASH NAME OF MESSAGE IF OMIITED UPDATE TIMER ONLY amp VALUE NAME OF VALUE TO BE CONVERTED OMITTED NO 2ND PART se NOTE ONLY USABLE INSIDE MAIN PROGRAM ASSIST zk kk kk kk kk Kk k kk XK Kk XK XK k XK XK XK XK XK XK kk XK kk kk kk MACRO ASTIMR LINK TO TIMER ROUTINES IN MAIN PROGRAM ASSIST ASTIMR ALLOWS FOR CONDITIONAL GENERATION OF CALLS TO VARIOUS TIMING MODULES INSIDE ASSIST MAIN PROGRAM DEPENDING E ON THE DESIRED TIMING METHOD BEING USED amp CODE IS 2 DIGIT CODE GIVING SECTION OF ASTIMR TO BE CALLED amp TLEVEL IS 0 1 2 NO CODE IS CREATED IF amp TIMER lt amp TLEVEL kk kk kk Kk Kk k XK XK XK XK XK XK k XK XK XK XK kk kk xk XK kk kk kk MACRO CONG GENERATE CONSTANT CODE TABLE CSECT CODTL1 USED IN CODTL1 OF ASSEMBLER TO PRODUCE 1 ENTRY IN CONSTANT DESCRIPTION BLOCK SEE CONBLK DSECT IN CODTL1
20. ENTRY SDDTRM 1 2 CHECK O A ENTRY EXIT CONDITONS SAM CONVERT DECIMAL SELF DEFINING TERM AS SDBCDX EXCEPT RB gt 0 ON EXIT Gl 9 gt ENTRY SDXTRM 1 2 SCAN COMPUTE HEXADECIMAL SELF DEFINING TERM Ka ENTRY EXIT CONDITONS SAME AS SDBCDX EXCEPT RB gt 0 ON EXIT Ke CSE gt ed k D X D 7 x ES X c x ENT D E gt ENT N RA RB o RA RB zi KA ENT x D RA RB RA RB Li gt ENT CTS SYMO TAB S P nah YMOPS S BUIL OF THI DS 1 2 ALL MAINTAINS ASSIST ASSE NORMA A E B ASPLM641 57 TABLE EVES F SYMBO OP RO ERATIONS THE SYMBOL TABLE IS A VIR RI HE SYMBO ND RE ER E E SCATT ALL S ACH SYMBO SYMBO Dp E ER TAB YMBOLS E sE y WI H IH C ASHI 0 HAIN 3 PO ED INT 7 ARE T HIN WORD IN E OR LS HAS I iS ARE O HE n B RIMARY TA RDERING BY A SI A SMALL PRIMA BLE POINTS ECONDARY HASH CO RY POIN A LINKE F ER TABLE IST OF ER THAT LOC HO 0 V
21. Dp E UMP ECINSTAC IN DS E AS P E INSIDE F EC ECONTROL CONTROL CHARACTI E P NA RS E RROR MESSAGE BLOCK ON CODE MESSAGE BLOCK FOR SUBROUTINE XXXXSNAP TH PLETION CO OF 1 COMPL COMPLETION D F FO ER n E I D SS OF E Lu D THE APPROPRIATE IS PLACED INTO WORD ECER DSEC P NFORMA E RAT ES EN AM Z OK H H gt qd H ION IN THE OCATION ION CON H K EN BY XXXXSNAP TO PRIN E E TROL AND IS ERCOMPC EXECUT W LOCK CREAT E INSIDE E E P ILL ELS ED BY 1 CALL EWHERE FUTUR TO SERCGN ACRO k gt DS P GT A A F X X n DS o xXx D xx gt DSI xo x 5 E gt DSI iC EVCTDSCT EVALUT TRANSITION E RY THIS D ESCRIBE ABLE ENT THE GEN ENTRY IN 1 ERAL EXPRESSION ROW OF EVALUA EITHER TO R A NI EVAL EXT AND GIVES ROW IN A SEC ABL n ION OFFS TO USI AND 7 Dp p p P
22. ci We ti n D Ke O n Q o AR X X ASPLM642 71 USES DSECTS AJOBCON XIOBLOCK RY XXXXSORC READ A CARD DURING ASSEMBLY TIME CALLED BY MACRO SORC TO READ CARD FOR ASSEMBLER USING ALREADY OPEN DCB DDNAME SYSIN ENTRY CONDITIONS SAME AS THOSE FOR ENTRY XXXXREAD EXIT CONDITIONS SAME AS THOSE FOR ENTRY XXXXREAD USES DSECTS AJOBCON XIOBLOCK USES MACROS GET G E RNa mS OSE V ob ACA ACA OX TZ Xo X Xo Xo F Xx Xx xo F x Pp 5 R D Pa PU DO pi SO RI X EB NA CTS HIS MO UGGING A XSNAP SE S P RO XSNAE XXXXSNAP DULE P PUR ROG XDU A POS USE R P D PRODUCES CIFI U PE RY CONDITIONS CONTROL BLOC IF SPECIAL D IN XXS RGSAV WHE D ROVI p UGGING O ES ALL UTPUT REGIS I ES RAMS USE ED A RI D R DU PSEU BINARY VA K AN BOTH RING FOR IN EXECU I ION COMPLE R AND 5 ERNAL ASSIST IT IS CALLE AS ION ORAGI DU E GI UV D PLM642 72 PING FOR UGGING AND D BY THE DO INSTR P OR DEB DUM UCTION FOR USER UGGING OUPUT IF T UE FOR D POINTERS ON E P
23. m E RUNNING UNDER THE OP Lr RATING SYSTEM OS MVT WITH A HIGHLY MODIFIED VERSION OF HASP AS ONE LONG JOB IS A SPECIAL MONITOR PROGRAM THE RPSS MONITOR THIS PROGRAM WRITTEN BY ROYCE JONES OF THE PSU COMPUTER CENTER STAFF ALLOWS EACH JOB SUBMITTED TO BE PROCESSED BY THE APPROPRIATE ONE OF APPROXIMATELY HALF A DOZEN PROGRAMS WHICH ARE LOADED INTO MEMORY WHEN NEEDED TYPICALLY 75 TO 80 PER CENT OF THE JOBS A C E A LE RE RUN BY A PSU MODIFIED VERSION OF WATERLOO UNIVERSITY S WATFIV ILER 10 TO 15 PER CENT ARE FOR ASSIST 5 TO 10 PER CENT FOR R D o U ORNELL S PL C AND THE REMAINDER FOR VARIOUS OF THE OTHE PROCESSORS VAILABLE WHICH INCLUDE A LARGE STATISTICAL PACKAGE STATPAC A LISP INTERPRETER A TURING MACHINE SIMULATOR UTOR AND SEVERAL OTHERS DUE TO THE LOW OVERHEAD METHOD OF HANDLING PRODUCED LARGE NUMBERS OF JOBS CAN BE RUN AT RELATIVELY LOW COST PER JOB AND ENOUGH PROCE ARE OFFERED TO HANDLE A GREAT DEAL OF COMPUTER INSTRUCTION THE TURNAROUND JOB CATEGORY APPEARS VALUABLE NOT ONLY FOR INSTRUCITON BU FOR RESEARCH AND HAS COME TO BE USED QUITE HEAVILY FOR EXAMPLE A TOTAL OF 5000 7000 JOBS RUN IN A DAY IS PROBABLY TYPICAL WITH 8000 9000 OR MORE JOBS OCCURRING DURING BUSY PERIODS O
24. o Hj ER FU Kei O 0 E 10 G H b 4 z Q 7 E MACRO PROCESSOR EXISTS amp MACROS 1 INCARD ALSO HANDLES RECOVERY OF GENERATED STMTS CREATED BY MEXPND IN THE DYNAMIC HIGH AREA IF A MACRO LIBRARY FACILITY EXISTS amp SMACSLB 1 INCARD CAN BE SWITCHED TO READ FROM IT INSTEAD OF SORC EXIT CONDITIONS RA SCAN PTR TO ERROR ONLY IF RB 0 NO MEANING IF RB 0 RB 0 NO ERRORS FOUND IN STATEMENT BY INCARD RB ERROR CODE NONZERO OF ERROR RA HAS SCAN PTR OF IT AVSOLAST BLANK I DIATELY BEFORE IN THE 4 BYTE FIELDWHICH INCARD PLACES AFTER THE SOURCE STMT TO STOP SCANNING OVERRUN USES DSECTS AVWXTABL RSBLOCK RSCBLK RSOURCE USES MACROS SRETURN SAVE SORC LT I Lr I F ACA F OX F KE A F O6 ACA F TZ Ro F TZ 4 F Xo Xo X INSUB INCRSMV SAVE CON SEQNO INTO RSCBLK Pot do od e A ASPLM640 28
25. z CALLS MODULE XXXXHEXI TO DO THE ACTUAL CONVERSIONS MACRO XHEXO HEXADECIMAL OUTPUT CONVERSION MACRO WRITTEN BY ALAN ARTZ 4 17 72 Mia THIS MACRO TAKES THE VALUE IN amp REG AND CONVERTS IT TO PRINTABLE FORM Q IT PUTS THE CONVERTED VALUE IN AN EIGHT BYTE AREA STARTING AT THE ADDRESS GIVEN IN amp ADDR m THE CONDITION CODE IS NOT CHANGED AND NETHER ARE THE REGISTERS Q CALLS MODULE XXXXHEXO TO DO THE ACTUAL CONVERSIONS MACRO XIDENT IDENTIFY ENTRY POINT FOR XSAVE SSAVE MACRO USED BY XSAVE TO PRODUCE ID AT AN ENTRY POINT WILL Ix USE THE FIRST NON NULL OPERAND PASSED TO IT AS THE ID k XK kk kk kk XK KK XK XK XK XK XK XK kk kk ck ck X
26. CSEC MASK HEX TRACE MODE OUTPUT LABEL LOCATION OUTPUT PRODUCED PURPOSE for interior XSNAP s BROPS2 AO SNAP all entries exits CACONS AO SNAP all entries exits CBCONS AO SNAP all entries exits CCCONS AO SNAP all entries exits CDECNS AO SNAP all entries exits CFHCNS AO SNAP all entries exits CNDTL2 AO SNAP entry exit CODTL1 A0 SNAP entry exit CSECT T CPCONS CVCONS CXCONS CZCONS ERRORS ESDOPRS EVALUT MASK HI T Gl X TRACE MOD LE A0 SNAP A0 SNAP A0 SNAP A0 SNAP 80 SNAP SU 2 BO SNAP BO BO BO ASPLM660 6 OUTPUT LABEL LOCATION OUTPUT PRODUCI PURPOSE for interior XSNAP s ti Jg N all entries exits all entries exits all entries exits all entries exits at entry point ERRTAG only others none all entries exits entry exit EVCNEXTA just after label EVCNEXTA prints registers internal variable storage from EVOPRS to EVALO which includes operator term and sign code id stacks plus paren count and number of terms remaining allowed This is used to obtain the complete status of the expression evaluation just after the current row in the transition table has been set but before the next character s are examined EVDJUMP just before label EVDJUMP prints contents of GP registers address of code
27. o ACA F F F F F Xo X woo e Ve colmo x E T U e S O uos 8 V E Es H RY ESENXI ENTRY CONDITIONS SCAN POINTER gt ENTRY bi NTRY AND EXTRN STATEMENTS PASS 1 RA RB CAN POINTER TO BLANK FOLLOWING OPERAND FIELD OR ERROR gt NO ERRORS 0 gt ERROR CODE TO BE SET RB NONZERO VALUE ERROR CODE SERINVDM SERINVSY ALL LABEL S IN ST HAVE SYMSECTS FLAGGED APPROPRIATELY USES MACROS SCALL SGTAD SRETURN SAV Fl A co o ACA Xo o F Xx KR 2 Wo od N ee ee ee ENTRY ESENX2 ENTRY AND EXTRN STATEMENTS PASS 2 CHECKS ENTRY EXTRN STATEMENTS FOR CONFLICTS ERRORS a ENTRY AND EXIT CONDITIONS EXACTLY SAME AS ESENX1 Lun EXCEPT EXIT VALUE OF RB MEANS NOTHING CALLS ERRTAG SYENT1 USES MACROS SCALL GTAD SRETURN SAV Gl gt ENTRY ESINTI INITIALIZATION PASS 1 THIS SECTION FOR COMPLETENESS FUTURE USE DOES NOTHING 8 70 Kal ASPLM640 21 xx gt CSI LT CT EVALUT 1 2 GENERAL EXPRESSION EVALUATION ROUTIN ENTRY CONDITIONS SCAN POINTER ADDRESS OF 1ST CHARACTER OF EXPRESSION EXIT CONDITIONS RA SCAN POINTER TO DELIM
28. LD Q o ERS I E XPL LATER VERSIONS OF THE LOADER MAY PERMIT RE COMPLEX OBJECT DECKS BUT AS OF 9 01 71 THE ONLY TYPES OF OBJECT DECK CARDS RECOGNIZED ARE TXT AND END CARDS NAMES AO REFERENCE ASSEMBLER F PROGRAMMER S GUIDE GC26 3756 4 lt O A X A A F F X gt DSECT APCBLK APARMS PARM CODE BLOCK PR M THIS BLOCK DESCRIBES A PARM OPTION TABLE GIVING THE NAME OF HE PARM A FLAG BYTE AND AN OFFSET ADDRESS TO A PROCESSING SECTION OF CODE IN CSECT APARMS IT IS USED ONLY IN APARMS LOCATION INSIDE TABLE APBPARMA IN CSECT APARMS GENERATION EACH APCBLK IS CREATED BY 1 CALL TO APCGN MACRO NAMES APC LT Xx A Xx F DSECT AVWXTABL MAIN CONTROL TABLE FOR THE ASSEMBLER HIS DSECT IS USED BY ALMOST ALL SUBROUTINES OF THE ASSEMBLER OR COMMUNICATION COMMON CONSTANTS AND WORKAREAS AND IS SO USED SOMEWHAT BY THE MAIN PROGRAM ASSIST AND THE EPLACE MONITOR REMONI OCATION CSECT VWXTABL WITH SAME NAMES PREFIXED WITH A AMES AX AW AV DEPENDS ON SECTION HIS DSECT CONTAINS THE FOLLOWING SECTIONS
29. 0 al Z El A CACA X X A A Xo F F KO REA COMMON VALUES OF R11 AJOBCON AND R12 CONSTANT OMMON EXIT CODE SORC AND READ SHARE SOME COMMON CODE G ND PNCH AND PRNT SHARE SOME COMMON CODE PUT HESE ROUTINES ARE DESIGNED TO ACCEPT THE XIOBLOCK SET UP BY XIONR MACRO SREAD SPRNT SPNCH SORC LOCATE MODE IS D TO MINIMIZE MOVEMENT OF CARD AND LINE IMAGES EMOTE OPEN CLOSE PARM LISTS ARE USED TO SAVE SPACE ER A DOS SYSTEM NO SUCH LIST EXISTS DUE TO THE NON E OF MACRO EXECUTE FORMS FOR THE CLOSING OF DTF S ACROS DCB DCBD OS OR DTF DOS OVERALL USE Hb T B OH E H 1 D nad H E E Q A OX ACA F F X OR X Xo ACA Xo F F F OF INSUB XXFIXUP UPDAT Di BCB POINTERS TO NEXT BUFFER E gt INSUB XXIOPENO OPEN OPTIONAL DATA SET FIX FLAGS E V E H D K Ka Ka Ka Ka y N E pa Q O PLETE PASS1 PROCESSING SET UP FOR PASS 2 XXXXDKE1 IS CALLED FROM UTEND1 XXXXDKE1 WRITES LAST BUFFER OR IF NO PREVIOUS WRITES WERE PERFORMED PASSES
30. ep ES e SP oe ee ee ew Me V V A X A X F X F V Xx Xx x X V A X 0 X F 6 xo Xo F X ASPLM642 70 DOS GENERATIONS HAVE NO OPEN CLOSE LIST SO A CHECK MUST BI ADE TO SEE WHICH DCB S MUST BE CLOSED ENTRY CONDITIONS R11 AJOBCON DUMMY SECTION EXIT CONDITIONS AJIO FLAGS ARE ALL ZEROED OUT USES DSECTS AJOBCON USES MACROS SRETURN SAVE CLOS LT E T E T Kal ENTRY XXXXINIT INITIAL OPEN FOR READER PRINTER OPENS PRINTER SOURCE CARD RDR INITIALIZES XXIOCPTR WHICH ALWAYS HAS BEGINNING OF OPEN CLOSE PARM LIST OS GEN ONLY ENTRY CONDITIONS R11 AJOBCON DUMMY SECTION AJIO FLAGS IN AJOBCON ARE ALL EXIT CONDITIONS AJIOSO AJIOPR FLAGGED WITH AJIOPEN IF DCB S OPEN D PROPERLY USES MACROS SRETURN SAVE OPEN USES DSECT AJOBCON N EROS ENTRY XXXXPNCH PUNCH A CARD OPENING IF REQUIRED CALLED BY PNCH MACRO TO PUNCH A CARD DDNAME FT07F001 IF THE DCB XXPNDCB CANNOT BE OPENED OR IF NOPUNCH WAS USED IN THE USER PARM FIELD HE CARD IS PRINTED DDNAME FT06F001 WITH CARD gt PRECEDING IT TO NOTE USAGE ENTRY CONDITIONS SAME AS ENTRY XXXXREAD EXIT CONDITIONS CC 0 NORMAL RETURN CARD WAS PU
31. A AR A F HF x MACRO SALIGR ALIGN VALUE IN REGISTER USUALLY LOCCNTR oe ALIGN REGISTER MACRO ALIGN REGISTER amp R TO BOUNDARY GIVEN ST BY VALUE IN REG amp A WHICH HAS 1 3 7 ETC IN IT kk Ok Ok XK XK kk XK Ok kk kk kk ok ok ok ok ok ok ok ok ok ok ok ok xk ok xk xk X EX XX x MACRO SALLOCH GET CORE IN FREEAREA HIGH END ASSEMLBER oe amp R IS REGISTER NEW USABLE ADDRESS APPEARS IN amp L GIVES REGISTER LENGTH DESIRED IS IN md amp OVRFL IS ADDRESS TO BE BRANCHED TO IF OVERFLOW OCCURS X X Ck Kk XK Ok XK XK XK XK XK XK k XK XK XK ck ck ck ck ck ko ko ko ko ok ok ok ok ok ok xk X X LE Xx MACRO SALLOCL GET CORE IN LOW FREEAREA IN ASSEMBLER ae ER GIVES REGISTER WHERE ADDRESS OF NEW USABLE AREA APPEARS amp L GIVES REGISTER CONTAINING THE LENGTH DESIRED ae amp OVRFL IS ADDRESS TO BE BRANCHED TO IF OVERFLOW OCCURS A F x V MACRO AL2 CREATE HALFWORD ADDRESS OFFSET TABLE USED TO GENERATE LIST OF AL2 ADDRESS CONSTANTS WHICH D H F A F X CONTAIN THE RELATIVE ADDRESS OF EACH ITEM IN amp LIST FROM amp BAS SOFSET GIVES A NUMBER TO BE ADDED OR SUBTRACTED WHEN SETTING UP THE EQU
32. ASPLM641 63 gt CSECTs XXDDFINI CLOSES XGEI XPUT PIBES Xo oss e ROR TR oos He oce Ze LIKE XXXXFINI CALLED AT SAME TIME BUT CLOSES ONLY THE FILES NANDLED BY XGET XPUT SEARCH TABLE XDDTABLE FOR FILES THAT ARE OPEN AND ARE HANDLED BY XGET XPUT WHEN FOUND CLOSE THEM THROUGH XGET XPUT BLANK OUT FIRST BYTE OF NAME IN TABLE IF NOY PERMANENT AND NOT OPEN JUST WIPR OOT FIRST BYEE 3 Ck Ok X Ck X X X X X X X X X X X X X X X X X X X k X X X k k k ASPLM641 64 CSECT XXXXDECI EXTENDED DECIMAL INPUT CONVERSION MODULE XXXXDECI IS CALLED BY MACRO XDECI TO PERFORM SCANNING AND CONVERSION OF DECIMAL STRINGS ENTRY CONDITIONS R14 ADDRESS OF XDECIB DSECT CREAT R15 ENTRY POINT ADDRESS V XXXXDI DITIONS ECIRV VALUES ARE FILLED IN FOR RE ET ACCORDING TO SIGN OF RESULT OR 3 IF ERROR DSECTS XDECIB ES XXDI Ed D BY CALLING XDECI CI LE CACA OX F X Kal x E F4 H Q o z gt gt CSECI ASPLM6 A A AX A F F X UT CONV
33. THE FOLLOWING MANNER 1 IF HE PTR TO THE BLOCK OF REFERENCES IS NULL I E FIRST REFERENCE A BLOCK MUST BE ALLOCATED AND THE ADDRESS PLACED IN THE POINTER OF THE XREFTAB 2 IF IT IS NOT NULL THE POINTER IS AN ADDRESS AND THE BLOCK CAN BE LOCATED 3 HE FIRST FULLWORD OF THE REFERENCE BLOC CONTAINS EITHER A HE NUMBER OF SLOTS LEF IN THE BLOCK HE REFERENCE MAY BE ENTERED IN T N UJ E 9 Q A H d ti RECEDING BLOCK TO IT NEGATIVE ADDRESS THEN MAY BE FOLLOWED NUMBER OF SLOTS IS DECREMENTED BY 1 B NEGATIVE ADDRESS OF AN ADDITIONAL BLOCK C ZERO MEANING A NEW BLOCK MUST BE ALLOCATED ALLOCATE A NEW BLOCK AND SE HE POINTER IN P A Oo TZ TZ F F KE F E E 0X ZZ F DP KE F E F F F 0X F KE FF F FF 0X X F KE F Oo F 0X OO OX F XK Ro X X X o Xo F Xo F OF ok A CA CA X X x SE ASPLM580 4 XK k REGISTER U
34. I Di D LO D USES MACROS R Gl AD CHECK CA OX OX X X X OX OX OX OR X X X X X po V LEI Es H 9 K Ke Ke Ke Ke DKWT WRITE A FULL BUFFER TO DISK AM DKWT IS CALLED FROM UTPUTI WHEN PASS1 HAS FILLED A ER XXXXDKWT WRITEESTHE BUFFER TO DISK AND UPDATES HE BUFFER MANAGEMENT TABLE WHICH RETURNS THE ADDRESS OF NEXT AVAILABLE BUFFER TO UTPUTI I REGISTER ASSIGNMENTS R13 gt BASE REGISTER AND SAVE AREA POINTER R14 gt XIOBLOCK POINTER REGISTER R15 gt TEMP BASE REGISTER R3 POIN U R4 BUFF R5 BUFFE R6 POIN ral POIN LENG OO Ha A A EI me 6 We ED ACCUMULATOR ECB E G USES DSECTS AVWXTABL XXIOBLOCK USES MACROS WRITE CHECK OR ok ACA F TZ F Xo Xo KF X ENTRY XXXXFINI CLOSE ALL DCB S WHICH ARE OPEN wy XXXXFINI USES THE OPEN CLOSE PARM LIST BUILT DURING EXECUTION Bg TO CLOSE ALL DCB S CURRENTLY OPEN USES 1 EXECUTE TYPE OPEN LT o A X o A F F xo F A Xx A A F sg ec Tee E ux VOT
35. E RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB ENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED Ag EXIT CONDITIONS RA SCAN POINTER TO DELIMITER ENDING SCAN RE ADDRESS OF PROPERLY ASSEMBLED CONSTANT ES USES MACROS SRETURN SAVE SSETRT AA OSO E V xo A A X A X RA RA RB RB V A A A A X A CA Xo Xo Xx RA RA RB RC E t ASPLM640 16 CVCONS 1 2 PROCESS V TYPE ADCONS NTRY CVCON1 1 SCAN V TYPE CONST NO ASSEMBLE ENTRY CONDITIONS SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER 0 CONSTANT WAS LEGAL NO ERRORS NONZERO VALUE ILLEGAL SYMBOL SERINVSY USES DSECTS AVWXTABL USES MACROS SRETURN SAVE NTRY CVCON2 2 SCAN amp ASSEMBLE VCON ENTRY CONDITIONS SCAN POINTER TO FIRST CHARACTER OF VCON EXIT CONDITIONS SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR 0 gt NO ERRORS NONZERO gt ERROR CODE NONZERO ERROR CODE SERUNRV OR SERRELOC ADDRESS OF PROPERLY ASSEMBLED CONSTANT CALLS SYFIND CALLS RESYMB ONLY IF amp SREPL 2 AND EXTRN
36. E HE H E POOL IN ADDITION TO ALSO CONTAINS THE LIST HEADS FOR 4 LISTS TRIES LTLENTRY BLOCKS USED ONLY IN LTOPRS E E END OF DYNAMIC AREA SALLOCH MACRO ASPLM620 5 gt DSECT LTLENTRY sITERAL TABLE ENTRY FOR EACH LITERAL 1 LTLENTRY BLOCK IS CREATED BY LTENT1 FOR EACH UNIQUE sITERAL IN A GIVEN LITERAL POOL THE LTLENTRY BLOCKS ARE RGANIZED IN 4 LINKED LISTS WITH LIST HEADS IN THE CURRENT TBASETB BLOCK EACH LTLENTRY INCLUDES EGINNING OF THE CURREN LITERAL POOL COMPLETE CNCBLOCK DESCRIBING THE LITE ONSTANT IN CHARACTER FORM LTGET2 USES THESE BLOCKS TO ERMINE THE USER PROGRAM ADDRESS FOR ANY DESIRED LITERAL 1 THEM TO PRIN LITERAL POOL LISTING AND AVE THE CODE ASSEMBLED FOR THE POOL USED ONLY IN LTOPRS END OF DYNAMIC AREA SALLOC Kal T O 0 Dag Q O We H D Es H Di z 0 H mr Gis rO Bl Zomupvarwe 51 H A A CACA X X F HF X OCATION HIGH EN H MACRO AMES LIL
37. I i C O Eb A WRITTEN FOR ASSIST TO BE RUN UNDER OS 360 DIRECTLY SEE ASSIST USER MANUAL FOR USAGE INSTRUCTIONS KOK OK Kk Xk XK Kk Kk Kk Kk Kk Kk k XK Kk Kk Kk Kk Kk XK Kk Kk k Kk Kk Kk Kk Kk Kk Kk Kk kk I A Xx A Xx F X MACRO XGET GET RECORD OFF OF amp DDNAME FILE X RICHARD FOWLER AUG 1972 V 5 0 N ACRO FOR EASY READING OFF OF ANY DD FILE READS amp XNUM i CHARACTERS CONDITION CODE SET TO 0 NORMALLY OR TO 1 ON 7 END OF FILE GENERATION CONTROLLED BY amp XGETST I ti EJ XECUTION ASSUMES REG 1 POINTS TO DD NA KOK k Kk KK Kk kk kk kk Kk Kk kk kk kk kk Hob x b c he E XK kk XK K kk Kk kk x MACRO XHEXI HEXADECIMAL INPUT CONVERSION MACRO WRITTEN BY ALAN ARTZ 4 17 72 Mia THIS MACRO TAKES THE VALUE STARTING AT THE ADDRESS GIVEN BY amp ADDR AND CONVERTS IT AND PUTS THE HEXADECIMAL VALUE IN REG IF THERE ARE MORE THAN 8 DIGITS R1 POINTS TO THE 9TH AND THE FIRST 8 ARE CONVERTED IF THERE IS A NON BLANK NON HEX DIGIT FOUND R1 POINTS TO THAT CHARACTER AND THE CC 3 OTHERWISE CC SET BY VALUE IN REG
38. NAMES MCSY CA OX E KE OO F OO OX FF ACA F 0X F Ro OX FF XK X O6 Xo XR X Xo KF X D De D om m m 2 FF oo ob X X X X X A We uk RT RRE Gee gk OK Ue IR MAS A deo Aes RR RI SAR SR Gs e e en enke e RR RK A CS RA RA RB REGISTE RAT R1 R2 RB S A U T bi NAME S X OX ACA F F oo OR X ACA 4 XK 4 X XK ASPLM641 42 CT MCVSCN THIS ROUTINE SCANS A STRING AND CHECKS FOR A LEGAL VARIABLE SYMBOL IF OKAY SYMBOL IS MOVED INTO AVMSYMBL IN AVWXTABL WHERE IT WILL BE UTILIZED IN SEARCHE SE ENTRY CONDITIONS i OF FIRST CHARACTER OF STRING EXIT CONDITIONS i OF DELIMITER PAST SYMBOL IF LEGAL SAME AS ENTRY IF NOT VARIABLE SYMBOL 0 IF OKAY 0 IF NOT VARIABLE SYMBOL SER MESSAGE IF ILLEGAL SYMBOL USES MACROS SSAVE SRETURN USES DSECTS AVWXTABL R USAGE A IN TABLE DSECT USING A SED IN TRT S A AS IN EXIT CONDITIONS ABOVE A A CVS A A ASPLM641 43 CSECT MEXPND EXPANDS MACRO
39. USER STORAGE BEFORE EXEC FAKE ADDR after ECONTROL section has been completed just after just previous output code prints all of user storage giving the addresses as they are in the assembly listing This is used to make sure the assembler has done assembly and loading the user program properly CSECT MASK VALU APARMS APARMS eu The CSECT ASSIST APARMS XXXXSNAP 01 01 ADDII LT ASPLM660 4 DEC OUTPUT LABEL LOCATION OUTPUT PRODUCED PURPOSE APMSCAN after label APMSCAN i e just before scanning of next option in the PARM field is done prints registers section of AJOBCON from AJOPARMA to AJIOFLAG sufficient to get flags set here This is used to check scanning and conversion code inside APARMS APFOUND after label APFOUND i e after an option has bee Scanned and found in the table of legal options prints registers and the APCBLK of the option found APCBLK contains the option name and flags This is used to check table lookup and make sure all registers are set correctly TIONAL DEBUG CODE PRODUCES NO OUTPUT fol lowing lists code which is conditional on amp DEBUG but produces no output Note that some of this code may be absolutely necessary to allow setting of debug flags PURPOSE LOCATION DESCRIPTION Zero memory b al just before label ASJINIT after th
40. A X CACA Xo F oo X Xo F Xo Xo Xx AA AA AR F HK e ASPLM640 13 gt CSECT CNDTL2 2 CONSTANT PROCESSOR CONTROL PASS 2 ENTRY CONDITIONS NUMBER OF CONSTANT CONTROL BLOCKS TO BE PROCESSED ADDRESS OF FIRST OR ONLY CNCBLOCK TO BE DONE CALLS CACON2 CBCON2 CCCON2 CDECN2 CFHCN2 CPCON2 CVCON2 CXCON2 CALLS CZCON2 ERRTAG OUTPT2 UTPUT2 USES DSECTS AVWXTABL CNCBLOCK USES MACROS SALIGR SCALL 5610 SGTAD SR USES MACROS SCPT SLOC DO Y Q Gl TURN SSAVI G Xx Xx A A x xo COS E RB RB RA xo o ACA ZZ F F F CA X F X Xo SE F OF e E RA RB RB RB RC ENTR SCAN 0 0 NONZ ADDRI TOTAL CALL CALL ASPLM640 14 CODTLI 1 SCAN DUPFAC TYPE LENGTH CALL C ROUTINES Y CONDITIONS POINTER TO DUPLICATION FACTOR OR CONSTANT TYPE CONSTANT IS IN A DEFINE STORAGE STMT CONSTANT IS IN A DC STATEMENT CONSTANT IS A LITERAL I E DUPLFAC 0 DECIMALS CONDITIONS POINTER TO DELIMITER FOLLOWING CONSTANT LEGAL SPECIFICATION OF ERO VALUE ERROR CODE CONSTANT ILLEGAL ENGTH OF OPERAND INCL ACON1 CBCON1 CCCON1 C ZCON1 EVALUT SDDTR USE DSECTS AVWXTABL CONBLK
41. DSECT MACLIB THIS DSECT GIVES THE FORMAT OF A MACRO Ka LIBRARY ENTRY gt DSECT MCBOPRST FORMAT OF OPERATOR STACK ENTRY gt DSECT MCBSTRMS FORMAT OF TWO BSU S FOR EASE Hz OF MANIPULATION IN TERM STACK E Kk ok Ok Ck Ok Ok CX Ok Ok Ck Ok Ck Ck Ok Ck Ok Ok Ck Ok Ok CX Ok Ck Ck Ok Ck Ck Ok ko ko k X k k X X DSECT MCBSU FORMAT OF BASIC SYNTACTIC UNIT KOK OK Kk KK Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk XK Kk Kk XK Kk Kk Kk Kk Kk k X Kk kk X DSECT MCGLBDCT FORMAT FOR GLOBAL DICTIONARY ENTRY gt DSECT MCLCLDPV FORMAT FOR LOCAL DICTIONARY DOPE VECTOR
42. deese A A E eg 400 1 2 OU E EE EE de nat 400 2 3 OVERALL CONTROL LOGIC SUMMARY erfeiert n de 400 3 4 ENTRY POINT HIERARCHY TABLE lastes hiya Sq CSB s aos ee SUC ns 400 3 B ROUTINE SUBROUTINE LOGIC aR RR ee eta a ia 400 4 1 EXECUT S 360 object code interpreter eee 400 4 Es OPTIONAL EXTENDED INTERPRETER 0 ee d eer rn a 400 5 PART IV THE REPLACE MONITOR A SOVERALL CONTROL LOGEC Duro dus ela al Pat 500 1 qz INPUT Lea es MEAE A Na e jay E ne E 3 OVERALLS CONTROL LOGIC SUMMARY vi a ae 4 ENTRY POINT HIERARCHY TABLE ile es d EA ere EN A UNE ire Bi ROUT ENE SUBROUTINE LOGTE S sto end ae EE ir 1 REMONI Replace monitor control eeeeeeeeeeeee Cw TABLE CONTROL SECTIONS adr put uwa pu E pe debas gs led e Ee 1 RFSYMS Replacable entry point names PART V THE MACRO PROCESSOR BART VI THE CROSS REFERENCE FACILITY uu saio Dn ee taa ae 580 1 ASPLMO10 7 APPENDIX I GENERAL CONVENTIONS AND INFORMATION 600 1 A PROGRAM DOCUMENTATION aaee a
43. zip 3 7 1 ADDRESS CONSTANTS NAMES AX FOLLOWED BY ENTRY NA HIS SECTION CONTAINS 1 ADDRESS CONSTANT FOR EVERY CALLABLE ENTRY POINT IN THE ASSIST ASSEMBLER HESE ARE READ ONLY EXCEPT DURING A REPLACE RUN IN WHICH THE ADCONS FOR A GLE CSECT ARE TEMPORARILY MODIFIED THE LABEL AXSBASE IS ED AS A BASE ADDRESS FOR THE CALCULATION OF OFFSETS TO IVIDUAL ADCONS FOR THOSE ROUTINES REQUIRING TABLE DRIVEN I 0 Lr td bi bi LD Z CJ E D H z LM G ING SEQUENCES CNDTL2 CODTL1 MPCON0 RI NI NOTE THAT ENTRY POINTS HAVE 6 CHARACTER NAMES THE MACRO SCALL IS USED IN CONJUNCTION WITH THIS PART OF AVWXTABL t 2 CONSTANT VALUES NAMES AW THIS SECTION CONTAINS USEFUL CONSTANT VALUES SUCH AS ZEROES BLANKS MASK VALUES TRANSLATE TABLES EDIT PATTERNS ALL VALUES ARE READ ONLY EXCEPT THAT ANY ROUTINE MAY T CACA OX 0 X X F KE OX Ro CA ZZ Xo F Xo Xo Xo F KF Xx ASPLM620 3 MODIFY PART OF THIS SECTION IF IT RESTORES IT BEFORE ALLOWING ANOTHER SUBROUTINE TO GAIN CONTROL TRANSLATE TABLES INCLUDE ONES FOR SC
44. usually o swapping control monitor TOR or the WA limit and de since the particular l values ar d RPSS MONI case the set high additiona any user PARM f additional cont PARM hand fault val ER A BATCH ASSIST may ues u t xcept th ED ser program in which case records MONITOR be desired to be able to 1 batch jobs and from specially submitted ru e and outpu such as the Penn State Computer a ERLOO Computing Centre s XMONIT inside ASSIS values very In this case the limit and lly coded since this will unless it loops whil limits can stop it be e D of APP run ona see section ENDIX ns nder a Center s In this nerally be nd possible running u TOR ld ge shoul desired ie individual rol the monitor ling module APARMS monitor calling it can pass If the extra val user programs cannot chooses to perform it whatever ncatenated to whatever he nature of lues are co scap do to t Several of the possible changes are particularly easy to make ALLOW USI to zero ER DUMPS TO B then change the very large values in the remaining counters p 120 EX BEGIN USER ASPAGE16 and AS PAGI ECUTION OR USI E20 do not res ER DU tE AS LONG AS D parts of t ESIRED Set all the D values he INSUBs included to place
45. A RM I TA CANNO Y BE USED R MORE EQU TION GENER ATIO ASSE N B Y OF BE PLACED I SYMBOLS AS S NONSTANDARD AND A RO ALUE TYPE BE LIS NTO AE T UTINI m P D n CFLAG IS SKIE PAR D EM THIS UST BE CALLED PARMS IHE GIVEN ANOTHE S PARM DEC SPECIAI R VA ROUTIN U E CALL APCCALL I E ONCE BY ANY PAR IMAL VALUE CA IF LL TYPE THE TO A YES VALUE HE VALUE CONV IVEN VARIABLE IF PA ER PA RM I 1B RM I OC AT ERTED IS TO BE TION IN A T STORED AS A JOBCON S D S A YES NO IT MEANS ECIMAL N INCREMENTED AF M 1 0 0 AN PARM OF SO DENOTES WHIC TER SED PARTICULA po Y 1 IE H E PA E S IT HAS FOR TI RM IS A ORT H OF TH VALUE FOR TH EANINGS AS FOL E GIVEN PAR 00 CAN BE ET B OW TYPE T H N IT IS ASS FULLWORD AT APCD TYPE AND 1BIT ON O OTHERWISE PARM AND MAY N B EN SET BUT M APCNRSI IS IS APCYES 1B EVER BE E AY B T DECREASED S
46. set of eguates is provided mai but they may also be used by ot he assembler nly for use inside the her parts of the EQU R3 GENERAL WORK REGISTER 1 EQU R4 GENERAL WORK REGISTER 2 EQU R6 GENERAL WORK REGISTER 3 EQU R6 GENERAL WORK REGISTER 4 EQU R7 PARAMETER REGISTER 1 This register is commonly used as a scan pointer register inside the assembler EQU R8 PARAMETER REGISTER 2 This register is commonly used to pass a control value to subroutine n error code R9 Hp o lO q a 24 bit value EQU R10 EQU R11 Registers RD and RE than two or three arguments and on return or a zero to show PARA ETE PARAMETER REGIS PARAMETER REGIS work temporary work registers almost always contains either no errors R REGIST This register is most often used in the assembler for passing such as the result of an expression or a self defining term ER 3 ER 4 ER 5 may be used for subroutines needing more but are more commonly used as ASPLM600 4 RAT EQU R12 ASSEMBLER TABLE POINTER READ ONLY This register points the main assembler table VWXTABL csect AVWXTABL dsect during an assembly No subroutine in the assembler may modify this register RSA EQU R13 SAVE AREA POINTER BASE REG FOR SOM This register is used to point to an OS
47. ERSION MODULE 41 65 CONVERT A REGIS TER AREA WITH SIGN ENT STORED AT ADDR XXXXDECO EXT DED DECIMAL OUTP XXXXDECO IS CALLED BY MACRO XDECO TO VALUE TO EDITED DE AL IN A 12 BYTE ENTRY CONDITIONS R14 ADDRESS OF XDECOB DSECT CREATED BY XD R15 ENTRY POINT ADDRI V XXXDECO EXIT CONDITIONS EDITED 12 BYTE RESULT OF REGISTER ARGUM USES DSECTS XDECOB NAMES XXDO ESS ARG CSE CA oo X o X ACA Xo Xo Xx AND CONVE R14 R15 RO VAL STOR R1 CC A CE XXX ENT DD R RE XXXX EXI XH E EXIEXTEND D HEXADE CIMAL IS CALLED BY RT RY ESS X CON POINT I O HEXADECI AL DITIONS A STORAGE OF ARI ADDRESS DRI ESS OF EXIT CON STRING TO BE DITIONS a OF IN CONVE 16 DING AD T R PASSE OF STRING E SE T 3 US P IE S DSI RESS RROR x HEXIB NA ES XXHI SCANNI ID STRING IN STO D R14 OR IN XH co AS ACRO XH I Hi NPUT XI D m I P INPUT CONV EXI TO SCAN T EA WITH R14 R1 STOR V XXXX an D RAGE AR EA PO XINUM FIRST NON H G INT E ASPLM641 66 RSION MODULE E INPUT STRING D TO BY R14 EXA ECI
48. G EXIT CONDITIONS RB 0 gt OK RB 4 gt STORAGE OVERFLOW CAUSED MESSAGE SELECTED IS PLACED IN RSBLOCK THEN MOVED OUT TO HIGH AREA BY MXMVSR Lr USES MACROS CALL SAL2 SAVE RETURN CALLS MXMVSR o ck CA ACA TZ ZZ Ro X Ro X F F TZ US ES DSECTS RSBI LOCK MXPNTSAV MCOPQUAD AVWXTABL Ae AD SA RT SR AA e e ek Se EE Wen SA e er ERA RR RR RR ok ok DDD DD P E 4 A A A A F F X xo OSCE RC RB INSUB INSUB INSUB MXINST DO he SN oo gt O EXECUTE ENTRY CONDITIONS MXPNTSAV EXIT CONDITIONS ME IN KILL KILL AC HIS iL R MEXIT FOUND RO CALL ACRO NEST ACROS STORAG E OVERFLOW MXADDR THIS ROUTINE ACCEP MXARITH MXARITH PRODUCES ARITH MXINERRM CALLS MXERRM TO AS INSTRUCTIONS IN MACRO DI PLM641 48 EF XS S ES AS e O S S uo S x KEKS TS A ONE OP Ec vss se obo ge sl SRS ONE OP A HANDLE ERROR MESSAGES S ASPLM641 49 gt CSECT MXMVSR MOVES GENER
49. MACRO TO FIND AND RETURN POSTION OF ARGUMENT IN A SUBLIST amp ARG1 ARGUMENT TO BE SEARCHED FOR amp ARGL LIST OF ARGUMENTS FOR amp ARG1 TO BE CHECKED FOR IN amp XXLOOK THE FIRST POSITION IN amp ARGL IN WHICH amp ARG1 IS FOUND IF ANY IF amp ARG1 IS NOT IN amp ARGL amp XXLOOK 0 X Kk kk kk XK XK XK k XK XK XK XK XK XK k XK XK XK XK XK XK k kk XK kk kk kk MACRO XMUSE BASE REGISTER SETUP MACRO FOR XSAVE ZA JOHN R MASHEY FEB 1970 V 4 0 e THIS MACRO IS CALLED BY XSAVE TO HANDLE BR AND AD OPERANDS AND PRODUCE APPROPRIATE USINGS amp BR AND amp AD ARE FROM XSAVE X Ok kk kk XK XK XK k kk XK XK XK kk XK k XK XK XK XK kk kk kk kk xk kx MACRO XPUT PUT A RECORD ONTO FILE amp DDNAME RICHARD FOWLER AUG 1972 V 5 0 ACRO FOR EASY PRINTING ONTO ANY DD FILE RECORD LENGTH amp XNUM IF PRINT FILE THE FIRST CHARACTER IS USED AS CARRIAGE CONTROL GENERATION CONTROLLED BY amp XPUST E EXECUTION ASSUMES REG 1 POINTS TO DD NAME sk XK X X XK X X XK X kk X XK XK KK kk kk kk K X X X X X X X X X X KK MACRO XRETURN GENERAL RETURN MACRO OS LINKAGE JOHN R MASHEY FEB 1970 V 4 0 EXTENDED RETURN MACRO SEE PSU CC WRITEUP XSAVE XRETURN FOR EXPLANATION AND USE OF OPERANDS E USES MACROS FREEMAIN XCHAR XSRNR PR KR X xk k X kk KK X KK X XK XK XK XK ko k ko kk kk k kk X X MACRO XSAVE EXTENDED SAVE MACRO OS L
50. OPGT REPRNT RE SGN WCONG XCALL XCHAR XDECI XDECO XGET XHEXI HE XHEXO HE XIDENT ENDIX IV MACRO INSTRUCTIONS 1628240 1628040 1433000 1477000 1578000 1604000 1325000 1268400 1495000 1633000 1305000 1189500 1196000 1511000 1778000 1789000 1210530 1217500 1231000 1244500 1280400 1292400 1535000 1557000 1663000 1680400 1717000 1523000 1257000 01362230 01817000 02061000 02102120 02156200 02120060 02156750 02125000 02158300 01833000 01853000 01880200 01915000 01929000 01999000 02028080 02028340 02035000 02163000 00009000 00034080 00034640 01262056 00035080 00035360 00041500 OO DO DO OD O CO OO O O O OO CO OO OO DD O O DO ASPLM630 01 31 73 2 1 A KA O XO XO AQ AO O KO AO 00 00 00000000 00 d s JJJ lt J Gy OY 0 01 01 01 OD Or OQ D D D 01 As SI ds ds ds GG ds ds vs VG GA C C GA CO y CO CO CO 1 XI XL XM XP XRE XSAV ON 00 US UT mm P XSNA XS XS XX RN RT DK DIN XN G RN A VT D EDCB 00077000 00145000 00185000 01262090 00339000 00507000 00787000 01089000 01371000 01189060 FS ASPLM630 2 ASPLM630 3 MACRO amp MALLOCH GET CORE IN HIGH FREEA EXCEPT USES AVGEN2CD AS HIGH END POINT R IS REG NEW USEABLE APPEARS IN amp L GIVES REGISTER DESIRED LENGTH ISIN A EA SAME AS amp ALLOCH R USED IN MEXPND bi gj
51. PAGE CONTROL CODE FOR PAGE MODE LIMITS RECORD LIMIT CONTROL E amet do bd UPDATE TIMER PRINT ELAPSED TIME MESSAGE TIMING SERVICES IN ASSIST MAIN PROGRAM B ASTIMER B ASTIMR E B ASTIMSET B ASTRP16 SET INTERVAL TIMER ROUTINE aie oes pi COMPUTE VALUES FOR BEFORE EXECUTION Xx x A F x V t x xo xo xXx CT BROPS2 ADDRESS VAL USES DSECTS USES MACROS RY BRDISP ENTRY CONDITIONS ALL BASI AVWXTABL SRETURN SAV GIVEN VAL Gl O BE DECO ESDID OF ADD VALUE IS F EXIT CONDITIONS BASE DISPL ESS TO BE DECO 1 255 0 CAN ASPLM640 7 ALL PASS 2 ETURN BASE DISPLACEMENT POSI ACEMENT 24 BITS BYTE ED TO MARK NONUSABLE 0 NORMA ZO ADDR ENT FORM OF ESSABLE ETURN ADDR IBILITY ERROR NO RI T ESS WAS DECOMPOSABL R DISP TOO LARG ER FROM USING 0 THE EXIT CONDITIONS RY BRDROF DROP A REGIST ENTRY CONDITIONS NUMBER OF EGISTER TO BE D CJ D FROM USING 0 HE RY BRINIT RY BRUSIN DITIONS EGISTER FOR WHICH USIN
52. a Registers RO R6 or RO R2 RW RZ are protected across any calling sequence and must be restored if changed R14 RET must also be restored if changed before returning b Register R12 RAT may not be changed by any routine c Registers R7 R11 RA RE are used for parameters and temporary work registers and are not protected at all across calls No routine ver requires more than five arguments so these five registers ar sufficient d Except for the above all normal 05 360 conventions are followed regarding save area linkage requirements and usage In general most routine only save as many registers as required Lowest level routines use R15 as a base and do not perfrom save area linkage other routines usually use R13 as a base and save area pointer Many of the lowest level routines save no more than one or two registers ASPLM600 5 C NAMING CONVENTIONS T 1 CONTROL SECTIONS All labels in a control section begin with the first two characters of the control section name The single exception to this rule is the csect VWXTABL which contains names beginning with V W and X All normal csect and entry point names are six characters long except for those in the intrinsic routines which are only callable by macro expansions These are all eight characters long and begin with the characters XXXX such as XXXXSNAP XXXXIOCO etc In the assembler portion of ASSIS
53. FRO RECUSE WHERE Ze kr Ze ek CAO Sk zk Ze AS 1 GEN K FO R PARM OPT ION SCANNING CONT RACT D F THE REQUIRE D OP PCBL E amp PARM amp AJOF amp BITS S I amp G amp GC amp C amp N amp D amp I1 amp Y amp LK I amp C ASI SECT A HER IN OR FU E FOR OF GEE THE OF VARI TION DOES K AND CSEC ATION ON HANDLING OF B PARM OPTION ERISTICS O E HE PARM Di ABLE IN AJ NOT EXIST I T APARMS FR We OR oR MAY PAR TICULAR 0 AB ERATE 1 APCBLK ELEMENT IN APARMS RO AA e 2 OKK PEND TROL DE SKIP GI ENERAT EL APF LOCK C REATED ACA ook ox F X X Xo E F F F X X ING ION SYS OUND BY OBCON TO BE SET E US ED R N N V R F PA AND N OFC O SET E AG ALL TYPE FOR YES NO SHOULD BE GI TYPE VEN VA BY THIS P ARMS UE 0 Lu D TO amp GC R R D T A A A M S Q ti c F amp G C TH ORRE RU amp Y GIV SPONDS TO 1 IF PA PPLIES ONLY T EEN SET ONCE 1 IF PA AND PARM IS NO E NAMED APA amp PAR 1 IF VAL CON THUS ROL GENERA ALLOWING CONDITIONAL E TY PE BETS TO 1 40 RM I O V T F Un
54. ILLEGAL CU OR AN ERROR CODE FOR AN VALUE COMBINATION U S T RREN E CURREN LOCA GEN a E TION RATION TW Dt O D E ABLE E 1 ROW VCTAB IN CS EVCTDSC ECT EVALUT S IS GENERATI OF Ea D BY 1 EVCG MACRO NAMES P CT ICBI THIS DSI OUTPT2 VC LOCK ECT IS FOR PRINTING MACHIN a MACHIN US INSTRUCTION OBJECT COD ED TO TRANSMIT DATA FROM ICMO INSTRUCTIONS P BLOC P2 CSE K CT TO Ei LOCA NAM CT IHAD DCB DSI ION CB ECT US E TABLI ICYBLOCK IN CSECT ICMOP2 OF ASSEMB ER DATA CONTROL BLOCK DSI ED BY PARTS OF XXXXIOCO GENI NAMES ERATION LOCATION XXSODCB XXR DCBD MACRO EDCB XXPNDCB XX PRDCB POOL BASE TABL 1 FOR EACH POO E L A A A A A A F xo F 3 D FOR EAC LITERAL POOL BY LTINT1 OR H LTORGS CREATED 2 WHICH INCLUDES dous HH o D 1 EXT E SIMPLIFICATION RA 1 FOR COD iS IN THE SE WILL BE ASSEMBLED OFFSET VALUES FRO IT FIL CTION ID OF TH HE BEGINNING OF BEGINNING TO ADDRESS AND SECTION E E
55. S USES MACROS CALL SGTAD SRE NO RESTRICTIONS DUPLICAT BOTH THAN BE ABLE TO FIT IN HALFW ESS OF A CONSTANT CONTROL BLOCK DI ION FACTOR AND TOTAL ORD EACH TURN SAVE SCOF CONG UDING MULTIPLE OPERANDS IF ANY ECN1 CFHCN1 CPCON1 CVCONI CXCON1 ENGT LENGTH MAY 256 FOR A DS BUT LENGTH ATTRIBUTE BE H MUST EATER WILL NOT B E COR R ECT ASPLM640 15 CSECT CPCONS 1 2 PROCESS PACKED CONSTANTS E USES DSECTS AVWXTABL gt ENTRY CPCONL 1 SCAN DO NOT ASSEMBLE PACKED CONSTATNT ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT SERINVCN RC NUMBER OF BYTES REQUIRED FOR CONSTANT USES MACROS SRETURN SAVE V E ENTRY CPCON2 1 2 SCAN AND ASS ENTRY CONDITIONS LJ BLE P TYPE CONSTANT
56. EXIT CONDITIONS TO CHARACT T ESI R AFT IN WHICH PROGRAM 1 Xx A x O ENGTH AVWXTABL R EROS 151 THE 1 DDRESS FOR LISTING P TBAS ETURN SAVE LITI INITIALIZE IF NEE ERA POO K POINTE ES MACROS AVWX SALLOCH RE TO 15 TBAS AS B T URN SAV E INITS 1ST AND ASPLM640 ERS INDTR ASPLM640 30 CSECT MACFND THIS ROUTINE IS GENERAL SEARCH PROCEDURE WHICH CAN SCAN THE MACRO LIBRARY GLOBAL AND LOCAL DICTIONARIES AND THE SYMBOLIC PARAMETER LIST THE CALLING ROUTINE DETERMINES WHICH LIBRARY BY PLACING THE APPROPRIATI POINTER IN RC EJ ENTRY CONDITIONS RC OF FIRST ENTRY OF LIST TO BE T 1 n EARCHED EXIT CONDITIONS RB 0 IF ENTRY IS FOUND SERUNDEF IF ENTRY IS NOT FOUND RG OF ENTRY IF FOUND ELSE OF FINAL ENTRY IF NOT FOUND USES MACROS SSAVE SRETURN USES DSECTS MACLIB AVWXTABL uJ E ti c T T RC MACLIB BASE REGISTER LIST TO BE SEARCHED RAT MAIN TABLE DSECT USING RB
57. iN R i b C RO CONT LO INA D BY T ION y HE TAINS T AP WAS CIAL O D SN AP STO E AD DRES E T E Lr RAGE RAL IS CREA HE EXAC CALLED A TIONS TH OPER S CONSTAN BITS T 5 E T VE E EJ Ed H A R N S CE SA S SUCH AS UPPLIED U B NING ON E THE GP OR amp XS RINTING XSNAP R EGI D P E EV R RY SPI ESTORATION NA ST IN DDRI UGG LY WHEN SION OF D ERATION C DPHUKUGAD THE CS XSNAP D EQ ING OU DICA n ING SS P ESS PAIRS P D SI T AN AIR S E HE BY ESTING SE PUT E RAND 3 D EC AND AN E ASSIS T ANY TYPI WIT HD ECIAL ASSIST UT ST OR STORE APP amp MALLOCH amp MALLOCL SALIGN SALIGR SALLOCH SALLOCL SAL2 SCALL SCKALN SDALLOCH DBG DISK ERCGN GLOC GTAD LV MS Q SSORC SSPIE SSTV STIRC APCGN ASPAGE ASPRNT ASRECL ASTI ASTI CONG EVCG IBPRTAB ICT
58. ASPLM660 9 T PRODUCES NO OUTPUT following lists code sections of the assembler which only exist if amp SDEBUG 0 but produce no output PURPOSE LOCATION DESCRIPTION Provide execution of DEBUG opcode during Pass I Code section between sections IBDROP and IBDC Jump table entry after IBAJUMP in constant area The code section saves the pass used in the DEBUG command evaluates the self defining term and saves it also If the pass 1 it stores the value into AVDEBUG Provide execution of DEBUG opcode during Pass Il Code section between sections IDDC and IDDS jump table entry after IDAJUMP in constant area The code section sets AVDEBUG to the value given if the DEBUG opcode used a pass of 2 Zero record blocks Immediately after entry to INCARD Zeroes 256 bytes in AVWXTABL which will contain all the record blocks for next statement except for RCODBLK This aids debugging of INCARD and other sections of code which set values in record blocks Provide debug commands In opcode table two places after label OP4D DIAG after label OP5D DEBUG These permit the assembler to recognize two commands for debugging DEBUG is used to set in the assembler DIAG is used to set a flag during user program execution These are absolutely necessary for doing debug work on the assembler and interpreter since no other ways exist to set the flags
59. REGS R OR WR D IS ONLY LK INT BY MACRO XIONR USED IN CS F ERRUPT COM 4 R2 XXXXHI OCK FOR INP R ANY I O MACRO BY ESIRE FO 1 IT EC OR SRI E N CONTAINS DLING TH n EXIT ADDR 15 PROGRA E TENDED TO K IS EX A FULLWOR L G N C T E X S X I INTERR OC RESS IS ATION ENI LT RA A T HI ON SN P P EXPANS D XXSNAE S BLOCK ION UPTS THA WERE DESI ESS d AND THE EXO R THE R15 ED BY XHI AND UT O E D P CO P E XO ASPLM620 9 NTAINS TH LACE TO R E UTP AC INN 1 0 ROS ER MACRO ENTRYPT RO D 1 EXC P ION AND XXXXIOCO EAD SORC UNICATIONS CON ES AN P Dp E NT S E LENGTH FOR RNT PNCH ROL BLOCK UPT MASKS FOR HE INTERRUP RR D FOR FASE E OF STING AGAINST F F RED TO BE T OF ENG INSIDE ERE H FOR CH SPIE MACRO ONE XS 3 PIEBLK IS ION EP ANGING EX PANSION H E D RAPP PSW D E EXIT THE ON LY 3 BYT P F G ERAT F 110 iB I LINKAG
60. X Ok kk kk kk XK k XK XK k XK XK kk XK XK XK XK XK XK kk kk kk kk kk MACRO EVCG CREATE ROW OF TRANSITION TABLE CSECT EVALUT amp L LIST OF PAIRS JUMP LABEL ERROR CODE OR STATE CREATES 1 ROW OF TABLE EVCTAB IN GENERAL EXPRESSION EVALUATOR CSECT EVALUT SEE EVCTDSCT DSECT FOR ENTRIES IN EACH ROW KOK Kk kk kk kk Kk k XK XK XK XK XK kk XK XK XK XK XK XK k XK k XK kk kk kk gt MACRO IBPRTAB GENERATE 1 BLOCK FOR PRINT SCAN LIST USED ONLY IN IBASM1 CREATES 1 BLOCK DSECT IBPSCECT E amp OP OPERAND NAME ON OFF ETC A Rr amp VO VALUE TO BE OR D INTO PRINT BYTE BIT TO SET ON OFF amp VX VALUE TO BE XOR D INTO PRINT CONTROL EITHER 0 IF BIT ON amp VX OMITTED OR SAME AS amp VO IF CODED MACRO ICT CREATE CONTROL CODES ICYFLAG VALUES ICMOP2 amp TYPE TYPE OF INSTRUCTION FORMAT SRR RX ETC amp VALUE VALUE OF CODE REQUIRED FOR TABLE KOK Kk kk kk kk XK k XK XK XK XK XK XK kk XK XK XK XK XK k kk XK kk XK k xk kx MACRO OPG CREATE 1 ENTRY IN ASM OPCODE TABLE OPCOD1 E THE GENERATED ENTRY IS DESCRIBED BY DSECT OPCODTB A GENERATES THE 4 FIELDS OF AN OPCODTB ENTRY OPCTYPE OPCHEX OPCMASK AND OPCMNEM IF amp HEX OR amp MASK ARE OMITTED THEY oe e 6 6 6 6 CDL A X A x X X X F X A X X E X X TZ X H H H H H H H H H H H H H
61. c Some routines use the knowledge of the order of variables to move values around with less instructions particularly LM and STM The order dependencies are always noted where the variables are defined d In general excessively optimized or tricky code is confined within a single control section with its interface to remaining sections defined in a simple way ASPLM610 1 APPENDIX II SET VARIABLES AND CONDITIONAL ASSEMBLY In order to to make possible the creation of ASSIST programs with differing sets of options at a minimum cost in memory conditional assembly is heavily used throughout the ASSIST source program The following lists the set variables which are used to control conditional assembly and includes their types and meanings of their possible values VARIABLE YPE VALUES AND DESCRIPTIONS amp SACCT GBLB 0 no accounting discrimination is possible 1 accounting discrimination is possible This option is a future use option which can be used to include code to discriminate between different account numbers thus allowing different classes differing program capabilities and options NOTE LOCALLY WRITTEN CODE MUST BE ADDED FOR THIS OPTION amp SALIGN GBLB 0 Model provides data alignment 360 s 1 does not require alignment 360 85 amp 370 s amp SASMLVL GBLB 0 ASSIST is being assembled for a DOS system
62. ASSIST O ER EG UTPUT IS DESIR CS D OPI ENT RAND T 3 E I E T 3 ISTER R10 WAS R S ESS OF T EXIT CON HE ECON DITIONS po EGISTE RS AND CON AFTE EXE R14 R15 ENT USE RO ia DITION CO D UMMY SECTION WH AVED MUST IC RY TO XSNA IS USE CONTAIN SUPPLIES VA ROGRAMS HE CALLING P CO UE E DE ARE REST ORED CUTION OF TH DSECTS NA BAT USE EY CALLI rc R RE G U ACROS SP XXXXSNIN ECON RN E INSTRUC RO TION AT THE R L XXSNAPC IF amp SD D OE ES ADDED FO EBUG 1 1 NAMI HED RUNS ARE USI tr Lr Y CONDITIONS RN ADDRESS XXXXSNIN XXXXSNAP INITIALIZATION D TO INITIALIZI XSNAP D CALL O ORIGINAL ETURN POINT VALUE EN PU R ASSIST ENTRY NUMBER TO 1 IF amp SDEBUG 0 XXAS DI e IN CAS ASPLM642 73 CSECT XXXXSPII ES INTERRUPT CONTROL amp COMMUNICATIONS SCOTT A SMITH FALL 1971 THIS IS CALLED ONLY FROM THE MACRO EXPANSION OF SSPIE IT CONTAINS THE ONLY MACROS THAT CAUSE LINKAGE TO BE SET BETWEEN THE SUPERVISOR AND THE EXIT ROUTINE FOR INT HANDLING THE
63. This option allows module to be replaced as long as they need not call other modules 2 as for 1 except that the extra code is added to permit a replacement program to make calls to existing ASSIST assembler modules amp SRXDF GBLA amp SRXMX amp SSPECIO GBLB As of 9 15 70 simulate I O operations in core using QSAM type commands At this time th the code paper of amp SSYHASH GBLA T of amp SO SYMOPS ASPLM610 7 default and maximum values of RX option total output records allowed for user execution plus dump together 0 no special I O operations are recognized 1 special I O operations are recognized by the assembler opcode type SIS this is a future use option for including code to assembler part of this code does not exist although some of for scanning JCL and building control tables does S thesis Harry McGuire PSU number of fullwords in the initial pointer table used by symbol table handler SYMOPS csect and allocated in the high end of the dynamic workarea his value varies from 8 to 64 and is set depending on the value PTMS depending on space requirements See beginning of csect for details on how this value is set amp SSYSTI As of 9 15 70 or OS MVT or DOS amp S370 EM GBLC GBLA amp SS370A GBLB amp STDF GBLC amp TMX amp STDDF GBLC amp STDMX amp STIMER GBLA operating system being used This v
64. L WAS NO 2 ENTRY CONDITIONS E CT SY E L FOR INITIAL ADDRESS OF TH ENTER A SY IRST CHA ERS IN T RA H BOL TAB 3 17 LOCATION OF EA IT ALSO PERMITS A VERY FAST SEARCH LOOP WHICH STILL GIVES A SMALL INITIAL POINTER TABLE 35 p F Li Li CT SRETURN SAV El END OF PASS 2 DECHE TE SYMBOL TABLE STATISTICS p Du I MBOL INTO TAB ETURN ADDRI CTER OF T SYMBO H L E Lr SYMBOL IS EADY e ENT IN THE ABL ALR gt s PRESENT IN THE TABL D LOOK UP SY IRST C ERS IN HARA TH B BOL IN TH S IN THE E ADDRE BOL PORT PRES ENC CTI SY ER OF BO bi SYMBOL Li Ps SYMBO ABLE TABL E IF IT IS THE d S NOT IN Co F INITIALIZE TAB Ab SYMBO P TAB ER TABLE ZEROES IT POINTER TABLE OINT INITIAL e n ASPLM641 58 43 CSECE UTO RS 1 2 UTILITY DATA SET ROUTINES IS MODULE PERFORMS ALL THE HANDLING WHICH WOULD BE DONE USING SECONDARY STORAGE FOR INTERMEDIATE DS AND FOR OBJECT CODE IT USES THE LOWER END x YNAMIC CORE AREA TO STORE THE RECORD BLOCKS RSB
65. LTENDL 1 CLEANUP AFTER PHASE 1 PREPARE FOR PHASE 2 THIS ENTRY SETS UP FOR ASSEMBLER PASS 2 LITERAL PROCESSING USES MACROS RETURN SAVE gt ENTRY LTENTL 1 ENTER A LITERAL INTO THE TABLE THIS ENTRY IS CALLED DURING PASS 1 TO SCAN A LITERAL BY IAMOP1 THE LITERAL IS SCANNED BY CODTL1 AND IT IS ENTERED IF IT IS NOT ALREADY PRESENT NOTE THAT NO DUPLICATES ARE EVER KEPT IN THE SAME POOL EVEN FOR A TYPE CONSTANTS WITH LOCATION COUNTER REFERENCES x ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF IN LITERAL EXIT CONDITIONS RA SCAN POINTER ADDRESS OF ERROR OR DELIMETER RB 0 IF LITERAL LEGAL ERROR CODE OTHER WISE RC ADDRESS OF LITERAL TABLE ENTRY CALLS CODTL1 MOSTOP USES DSECTS AVWXTABL CNCBLOCK LTBASETB LTLENTRY RSBLOCK USES MACROS SALLOCH CALL RETURN SAVE SCPT gt ENTRY LTGET2 2 GET ADDRESS OF LITERAL IN ASSEMBLY LTGET2 IS CALLED BY ICMOP2 EACH TIME A LITERAL IS FOUND IN x SCANNING MACHINE INST OPERANDS DURING PASS 2 IT RETURNS THE ATTRIBUTES OF THE LITERAL INCLUDING THE USER PROGRAM FOR THE LITERAL THE SECTION ID OF THE LITERAL AND THE LENGTH ATTRIBUTE OF THE LITERAL ICMOP2 SUPPLIES A POINTER TO THE TLENTRY OF THE LITERAL WHICH HAD BEEN SAVED IN THE STATEMENT S RCODBLK ENTRY CONDITIONS RA SCAN POINTER TO 1ST CHAR OF LITERAL RC LITERAL TABLE ENTRY IN LITERAL TABLE WAS SAVED IN RCB
66. SYINT1 UTINT1 O SRETURN SSAVE SE AND IS ICS NOTE H ACTUA SSPII HA LLY LT PROG ED BY ASSIST UINT1 MOCON1 ASPLM641 46 xx gt CSI E a H Q O ES N N AIN CONTROL ASSEMBLER PASS 2 Ge Randi MTCON2 IS THE CONTROL PROGRAM FOR THE 2ND PASS OF THE ASSIST T ASSEMBLER IT IS RELATIVELY SMALL SINCE MOST OF THE WORK HAS BEEN DONE IN PASS 1 IT PERFORMS OR HE FOLLOWING ACTIONS FOR EACH SOURCE STMT ETRIEVES POINTERS TO THE RECORD BLOCKS UTGET2 J D HE LOCATION COUNTER AND OPERAND SCAN POINTER EVEL INSTRUCTION PROCESSORS ICMOP2 IDASM2 INTS ANY STATEMENT WITH NO RCODBLK OUTPT2 BY ROUNDING UP LENGTH OF PROG TO DOUBLEWORD BOUNDARY CALLS ICMOP2 IDASM2 OUTPT2 UTGET2 USES DSECTS AVWXTABL RCODBLK RSBLOCK USES MACROS SCALL RETURN SSAVE SSLOC A X E X FF X F F xo F LA ASPLM641 47 CSECT MXER RROR M po CALLED DURING MACRO GENERATION TO GENERATE SSAGES NOT HANDLED BY ERRTAG LT t NTRY CONDITIONS SCAN PTR RB ERROR TYPE OPERAND VALUE OR LOCATION RD LENGTH OF STRING IF CHAR VALU RE MXPNTSACV
67. XRPRNT kk kk xk xk X xk kk k ox k RW H CURRENT XREFTAB ENTRY PROCESSED RO LAST RT ST COMPRESSED OUTPUT R22 1 DE ND OF TREE RA LAST TO ART A SYMBOL COMPRESSED OUTPUT RB XREFBLK BEING PROCESSED RC RD RZ WORK REGISTERS RE OF 1ST ELEMENT BASE FROM WHICH OFFSETS GIVEN KOK k Kk KK Kk Kk KK Kk Kk XK XK Kk Kk Kk Kk Kk Kk Kk Kk Kk k Kk Kk Kk Kk Kk Kk Kk kk zk Di p Z 3 E J WN I E A A F F Xx X gt INSUB XRPRLINE PRINTS A LINE OF REFERENCES SETS RZ TO POINT TO THE BEGINNING OF THE LINE CLEAR OUTPUT LINE TO ALL BLANKS INSUB XRPNUMSL gU ae eo aa NS LA Se bah fu cte Ao cc retour ter rto is GETS INDEX TO 1ST REFERENCE OF BLOCK INDEX TO LAST REFERENCE TO PRINT AND VALUE FROM XRBLKNUM TO USE AS FLAG FOR TEST FOR ADDITIONAL BLOCKS LATER IN MAIN SECTION OF CODE RX INDEX TO 1ST REFERENCE TO BE PRINTED EX TO LAST REFERENCE TO BE PRINTED RY FLAG USED LATER IF THERE IS AN ADD o X F X X ASPLM600 2 a CSECT Each of the different types of blocks may contain certain specific kinds of information in
68. with RB 4 thus allowing MOCON1 to treat the current statement as the one just read NOTE if an end of file is encountered by INCARD it will generate an END card automatically and will do this every time that it is called after an end file occurs Thus MACRO1 may just flag the END card with an appropriate message ERRTAG and return normally RB 4 This message may be omitted since it might be obvious what has occurred t 4 STATE MENT WITH POSSIBLE SUBSTITUTION OF SI In this scanned and the original should be pas creating a ne marked SRSBGE n ASPLM550 8 T VARIABLE case RC OPCODTB ptr 0 The statement should be substitution performed if needed 1 any is actually done statement should have its RSBFLAG marked SRSBNPNN and sed to UTPUT1 to save it Then it can be expanded thus w RSBLOCK overlaying the previous one which should be NR not only to show that it is generated but also to Return is made with stop macro ty pe statements from being generated RB 4 so that the generated statement is scanned and processed appropriately MEXPND This module is called by called under the following circumstances 1 An unknown opcode is encountered 2 It is not already a generated statement already set on in RSBFLAG 3 AVTAGSM is flagged with AJOMACRO i e ASPLM550 9 OCON1 to expand macro
69. 360 save area for any subroutine which may call another Almost all subroutines use this as a base register if they are not lowest level routines RET EQU R14 RETURN ADDRESS USED IN CALLS This is used in subroutine linkage for the return address to a calling program This symbol is generally used whenever subroutine linkage is being set up while R14 is used when the register is being used as a temporary work register REP EQU R15 ENTRY POINT ADDRESS OFTEN USED BASE This register is used to hold the entry point address for all subroutines in the assembler Lowest level routines usually use this as a base register In other routines this may be used as a local work register in which case the symbol R15 is normally coded GIJ C OTHER REGISTER EQUATE SYMBOLS In addition to the two main sets of equates mentioned above the ASSIST interpreter EXECUT has a local set of equates and several routines of the assembler have a few register equates also These sets are not currently used outside the control sections to which they belong 2 LINKAGE CONVENTIONS THE ASSEMBLER The linkage conventions inside the ASSIST assembler consist of a few modifications to the standard 0S 360 linkage conventions which have been changed mainly to save time and space The differences ar as follows
70. A 4 This section is included only for possible future use with SVC routines or special 0 routines which may be added ASPLM400 5 C OPTIONAL EXTENDED INTERPRETER 1 OVERVIEW The ASSIST Optional Extended Interpreter EXECUT was designed with two important ideas in mind This interpreter would be more table driven in nature than the original interpreter The flow of program logic would center around one large decoding table This table although e m nlarging and slowing down the interpreter slightly would ake program logic easier to follow and update The Optional Interpreter would support more s 360 S 370 nstructions as well as a new pseudo instruction XOPC p Overall program speed and program size were considered secondary in this design MACRO USAGE SSAVE Used to save registers SRETURN Used to restore registers SSPIE Catch execution time interrupts EIXTAB Create a secondary displacement table entry EITAB Create a main table entry DSECT USAGE ECONTROL Main interpreter interface with ASSIST system ECSTACKD Structure of instructions executed stack ECBRSTAK Structure of stack of branch instructions DECODING TABLE S ASPLM400 6 The logic of EXECUT new EIOPCDTB and EICONTAB The firs secondary control table ordered ac table contains an i of the secondary co entries pointing
71. A Xo AX X Xo X xXx ASPLM642 69 REGISTER ASSIGNMENTS R13 gt SAVE AREA POINTER R14 gt XIOBLOCK POINTER REGISTER R15 gt TEMP BASE REGISTER RO gt HOLDS LOW END POINTER TO BUFFER AREA R1 gt WORK REGISTER R3 gt HOLDS NUMBER OF BUFFERS FOR LOOP CONTROL R7 BASE REGISTER FOR AVWXTABL Lr E USES MACROS POINT 05 POINTS DOS USES DSECTS AVWXTABL XXIOBLOCK A ACA X F F TZ F F V E z H po K XXXXDKR RETURN A SET OF RECORD BLOCKS TO UTGET2 XXXXDKRD IS CALLED BY UTGET2 WHEN IT HAS COMPLETED PROCESSING A SET OF RECORD BLOCKS XXXXDKRD RETURNS THE ADDRESS OF THE NEXT BUFFER TO BE PROCESSD VIA THE BUFFER CONTROL BLOCK AND RE FILLS THE BUFFER WHICH WAS JUST P K T D El PROCESSED WHEN ALL BLOCKS HAVE BEEN READ XXXXDKRD CON INUES TO ACCEPT CALLS UNTIL ALL BUFFERS HAVE BEEN PROCESSED AT WHICH TIME AN END OF FILE INDICATION CC 1 IS RETURNED Lr EGISTI LT R ASSIGNMENTS R13 gt BASE REGISTER AND SAVE AREA POINTER R14 gt XIOBLOCK POINTER REGISTER R15 gt TEMP BASE REGISTER R2 WORK REGISTER FOR COUNT R3 gt DECB POINTE R4 gt BUFFER POINT ral
72. ABLE H CAN BE REP AC ED ENT IS ORE E OMITTED CALL OTH Hz CSE IS TO CREA E CALLAB RY FOR 2ND SE TRY POIN NAMES CTION IN amp CSE ONLY CTS O TAE E ENT RY ELE F p F KATE OFF SE S TO CONSTANT SUB IN VWX E DRIV I IN CONSTANT ABL FOR L ENTRY NAME SUB OF LIST OF CONSTANT Ok k k k ko k k k X ROUTINE kK kk k CALL YPES ALLO USE PROCESSING CA OF WED OS LI E N RA CODT L EN DCONS VWX 1 AND CNDTL2 iL z LIT D 1 TIME A B C Ok Ck ok X X ok kk X ERAL ETC FORM Lr R THIS MACRO R BLOWING UP IE HE RIGHT EN D OF E TURNS G RN SAFE IN amp XXC B H NTRYPOINT TO BE EE RIGHT HA CHARACTI CALL ED x END JOHN R R THE TH ERE ARE LE b THIS MACRO IS USI ED BY XSAV E XR ET SUBST ASH amp NUM CHA ER STRING amp STRING SS THAN amp NUM CHA URN AND XSRNR d EY J ULY RING OF A STRING 1969 360 67 RACTERS WITHOUT AKEN FROM RS IN 51 TRING KOK OK Kk KK KK
73. ASSEMBLER USER s MANUAL part III regarding the NOPUNCH option in the user PARM field c VALUES IN THE EXECUTION CONTROL BLOCK ECONTROL The interpreter sets various flags and values in the execution control block These values may then be tested by the calling program to determine the reason for completion and are used by the completion dump program to produce its output Most of the variables wer noted above in section A l a of this part Others include the following Special error flag byte which notes either a normal termination by a return to the address originally supplied to the user program as a return address or else a code indicating one of several special completion codes such as exceeding time or records branch out of range and others of type COMPLETION CODE ASSIST The address of a completion code error message block which may be used by the completion dump routine ASPLM400 3 3 OVERALL CONTROL LOGIC SUMMARY The interpreter begins by initializing various values in the execution control block ECONTROL and setting registers for its own use After all initialization is complete the actual interpretation begins The next instruction to be executed is fetched from user storage nd placed in the next instruction stack entry ECSTACKD along with he address of the instruction condition code and program mask Some reliminary decoding is done which i
74. ASSIST should read these sections INTRODUCTION Section A of PARTs I II III and possibly IV These sections describe the overall control logic of each major division of the system INTRODUCTION ASSIST Assembler System for Student Instruction and Systems Teaching is a small high speed low overhead assembler interpreter system especially suitable for student use It consists of five main components which are as follows I Main control and service programs This includes a job monitor input output routines scanning and conversion modules and a debugging dumping program It may include object deck punch and loader routines II Assembler for a subset of S 360 Assembler Langugage This component of the system assembles user source program and creates resulting object program in memory III Interpreter for S 360 object code This module interpretively executes user object programs permitting complete control of the user program in addition to execution of special debugging instructions IV Replace monitor V Macro Processor Supports inline macros open code conditional assembly ASPLMO10 4 TABLE OF CONTENTS NOTE certain portions of this manual are not currently available such as 110 210 and 500 In general these deal with program logic inside individual modules The reader should consult the comments in Appendix V or the source program itself which contains fairly heavy docu
75. Both assembly output and completion dumps require no more than 121 bytes C CARD PUNCH or equivalent device optional d INTERMEDIATE DISK UTILITY I O Allows the assembly of much larger programs Set amp SBUFNO to 3 or 4 and amp SBLEN to 3524 or 7044 half or full track buffers 4 for most efficient operation 3 OPERATING SYSTEM SERVICES ASSIST has been written mainly for use on IBM S 360 computer Systems under OS 360 However the system services dependent on 05 360 have in general been utilized only in a few sections of code inside ASSIST so that only a few sections of code need be changed in order to run ASSIST under a different operating system The following sections describe the system services used and what substitutes could be used instead if necessary a STORAGE ALLOCATION DEALLOCATION ASSIST acquires storage using the GETMAIN macro and deallocates it using the FREEMAIN macro If these or their equivalents are not available a large workarea on a doubleword boundary may be added at the end of the csect ASSIST and code in two places in that csect modified to just use this static workarea instead of acquiring it dynamically Only 1 each of FREEMAIN and GETMAIN are used I b INPUT OUTPUT SERVICES I ASSIST uses QSAM GET PUT logic with the following macros OPEN CLOSE GET PUT DCB All input output code is cont
76. DEFINITION RECURSIVE ACQUIRES STORAGE FROM LOW DYNAMIC AREA FOR STANDARD SAVE AREA AND LOCAL VARIABLES RELEASES STORAGE ON EXIT PUTS GENERATED STATEMENTS IN HIGH STORAGE AVGENICD POINTS TO FIRST BYTE AFTER FIRST STATEMENT AVGENICD POINTS TO 1ST BYTE OF LAST EMENT GENERATED I USES MACROS MALLOCL SMALLOCH SCALL SSAVE SRETURN SAL2 USES DSECTS MACLIB MCGLBDCT MCOPQUAD MCPAROPR MCPARSUB AVWXTABL MXPNTSAV MCPARENT RSBLOCK CALLS ERRTAG MCSCOP MXMVSR MACSCN MACFND MXMVSR MXERRM RRTAG MEXPND DECTRM t A ox TZ TZ TZ Xo Xo Xx We er oK CAL OK A e E TA NS Ke A E E RA cS SAK GA AL Soke E NE RR RK ok ok X X X X E E F F ox HF FH INSUB MXPNOSYM DE H ERMINS 1F STRING 15 ORDINARY INSUB MXPNRDR t INSUB MXPNSBSC INSUB MXPOPKPR INSUB MXPOPSCN ASPLM641 44 CSECT MOCONI 1 AIN CONTROL ASSEMBLER PASS 1 MOCON1 PROVIDES OVERALL CONTROL FOR PA
77. DR obo obcxe Ob X e e e ee 6 o ee 6 6 e ee b s T ee e e ee 6 ee T obo 3 cob gb 0v OOo 2E 70b OC 2 ES E SAN SI ONE SE La E I BIO E OR OS OE ob Oo E ESOS RS SE e CO D D B O STIRC THIS MAC GET TIME RECO ESULT IS RETU RNED NITS OF 26 04 TYPE CAN ALSO MIC RDS DATA FROM OPI n ASPLM630 RATING SYST IN RO amp TYPE IN ROSECOND IS TIMREM TI DESTROYS RO USE RO USES PSU SVC CALL 250 TO OBTAIN ECORDS INFORMATION TIME OR 7 Sal EITHER RECORDS BI TEN FOR LOCAL CO BE X TYPE ADDRES YTES 13 32 HIS FORM NEED NOTE MAY HAVE TO BE REWRIT OF FOR S AT WHICH TH ACCO JOB PROG ED O UNT NU NAME B E R NAME ADDR E MACRO PLAC R N WHERE F 1 D 0 RECREM R IN TIMER DI ITONS ADDR IS AN ES T HE F RAMMER NAME E NLY IF O PSU CC THU ROR We Xo Oe OKA SKE EK oK MACRO APCGN G 0 1 ENERATES BLOC N DESI CHA LT S MU xk Xx amp SA ST BE REWR CCT 1 INFO FROM JOB CARD AND IS CO ITTEN IF USE D ELSE R ATION PLETELY LOCAL FOLLOWING
78. DSECT DESCRIBE E RECORRAD AN ENTRY POINT IS K IS CREATED FOR AND FILLED WITH VALUE POINT S RFSYMBLK ENTRY ADDRESS OF THE ROM THE SYMBOL E WHICH STILL EXISTS THE RECFPSW D OR A PLACED COULD NOT D IN THE USER PROG D FIELD WHICH 5 TS TO THE ADCON IN ROUTINE H REAL N IS SAVE IN RECAD BY HE AD ESS EFAKE A CODE IS R BYTE OF THE WORD IN AVWXTABL WHIC IDENTIFY WHICH ENTRY IS CALLED AT THE END OF A RE DCONS ARE MOVED BACK TO THEIR PROPER P HE RECAXAD ELD OF EACH RECORBLK 1 ABLE TION CS ES REC RESYMBLK REPLACE RY IN TABLE CSECT RFSYMS EACH SECTION OE EPLACABLE NAME OR ONE OF ITS THE ENTRY ELEMENTS CONTAIN VA HICH ARE USED TO OFFSET ADDRESSES FO ESS CONSTANTS O VARIOUS CHECKING CODI ONITOR E THIS DSECT IS SAMI ECORBLK DSECT ERATION 1 CALL TO RFSGN CREATS 1 CSECT ELEMENT BY INCARD UCH AS 1 3 ENT ASPLM620 8 gt DSE
79. DUMP may request that cards be punched during its execution If possible cards are actually punched using the DDNAME FTO7F001 If a DCB cannot be opened to this DDNAME or if the NOPUNCH PARM option is used any card images produced will not be punched but will be printed instead deletes all punching be generated possessing the ability to punch object decks also It is also possible to create an ASSIST which code thus saving space A version of ASSIST can The reader should refer to the following writeup for a detailed description of the output produced by ASSIST including the effects of various PARM options ASSIST INTRODUCI he reader shoul TORY USI ld also ER S MANUAL PART III PART IV refer to APPENDIX VII of this manual which details the system resources and job control language required to use ASSIST Briefly ASSIST can function effectively with one card reader one line printer less than 30K bytes of memory for program and a variable amount of storage for workareas and user program approximately 50 90 bytes per source statement No intermediate storage is required if all possible options are allowed as of version 2 1 A the assist program requires approximately 62K bytes This is larger thean almost any version which would actually be run since few installations would use all options ASPLM100 3 3 OVERALL CONTROL LOGIC SUMMARY The following su
80. DUMP If user execution terminated properly a message is printed to this effect Otherwise XXXXSNAP csect is called using a special type of call to the XSNAP macro which produces a user completion dump instead of normal XSNAP output Depending on options supplied by the user XXXXSNAP prints either a full dump Program Status Word Completion Completion Code Instruction Trace User Registers and User Storage or a short dump all parts of a full dump except User Storage ASPLM100 5 f BATCH RUN TESTING ASSIST prints a message if the user has exceeded either a time or record limit If the run is not a BATCH run ASSIST terminates see section g ASSIST now returns to section b to search for the next SJOB card If ASSIST ever encounters either a real end file or a STOP card while searching for a JOB or SENTRY card the run is terminated at that point H ERMINATION g ASSIST calls XXXXFINI entry of XXXXIOCO which closes all DCB s which have been OPENed The return code is set to 0 to indicate a successful run and all acquired storage is returned to the operating system ASSIST then returns control to the calling program h TIMER RUNOUT PROCESSING If ASSIST is generated with one of the options providing timing for a user program an STIMER exit routine may be executed If this occurs the exit routine tests a flag to determine if the system is currently executing a user p
81. ENTRY CZCONL 1 SCAN BUT DO NOT ASSEMBLE ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER x EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT SERINVCN RC NUMBER OF BYTES REQUIRED FOR CONSTANT USES MACROS SRETURN SAVE V GI ENTRY CZCON2 1 2 SCAN AND ASSEMBLE Z TYPE CONSTANT ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB LENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED XIT CONDITIONS CAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR DDRESS OF PROPERLY ASSEMBLED CONSTANT SES MACROS SRETURN SSAVE SSETRT RA RE tr CPUN Xx X X X gt CSE gt RA K K RA x la gt D 7 D RB Lr RB US R RRORS CON POINT COD CONDITIONS Bi 1 2 DITIONS ER TO CA UNCHANGED BY RROR FLAGG USE OF ERRTAG OR DSECTS RRLAB R C ERRTAG ES EY ENTRY ES ACROS RRTAG ACROS SR SCAL AVWXTABL RSBLOC FLAG ER 1 SRETU COND
82. FOR THE LABEL SO THAT INDEXING MAY START ANYWHERE amp L IS CODED IF THE OFFSET LIST SHOULD BE PRECEDED BY LENGTH SET UP FOR BXLE Ck Ck Ok Ck k Ok kk Ck Ck kk Ek Ck k Ck ko X Ck kk kk kk Ak kk kr X G A A A F HF X H H E 0 H E H ZE H H ASPLM630 4 MACRO SCALL SUBROUTINE CALL INSIDE ASSIST ASSEMBLER Mia amp ENTRY ENTRY POINT NAME TO BE CALLED OS LINKAGE Q NOTE GENERATES NAME WITH AX PREFIX SO CAN ONLY BE USED Q INSIDE ASSEMBLER WHERE AVWXTABL USING HOLDS amp ko ck k XK XK Ck Ck XK XK XK k XK XK XK k XK XK k XK XK XK XK ck XK kk xk xk XxX k XxX ko X MACRO CKALN CHECK LOC COUNTER ALIGNMENT BRANCH IF SO USED TO CHECK ALIGNMENT amp MASK IS 1 3 7 amp B IS BRANCH LOC IF L
83. KK HI UO m E ox ox xXx SUPPLIES EXTRA DEBUGGING CONTROL AND DEFAULTS TO XSAVE MACRO USES MACROS XSAVE Ck ok Ck Ck Ck ok I xoxo x KOK k Kk KK Kk Kk XK Kk k Kk k Kk Kk Kk Kk Kk Kk X X I SCAN POINTER OFFSET MACRO PLACE SCAN POINTER REGISTER amp SC INTO WORK REGISTER amp RG FIND OFFSET AND STORE IT INTO amp BY I IF amp BYTE SPECIFIED amp AD WORD GIVING BEGINNING FOR OFFSET Ck Ck Ck Ok Ck Ck Ck Ck k k k k k ko k k k k k k k k k k k k k k TU p Uo E I F F GET SCAN POINTER ADDRESS FROM OFFSET OFFSET IS IN amp BYTE ADDR IS CREATED IN amp RG SAD GIVES BEGINNING OF FIELD Ck amp Ck Ck Ck kk kk kk kk kk kk kk kk XK kk kk kk A F ox MACRO SSDEF STORE VALUES IN SYMBOL TABLE ENTRY FLAG DEFN amp RVAL REGISTER CONTAINING SYMBOL VALUE 7 amp RESD REGISTER CONTAINING SECTION ID OF SYMBOL N amp RLENG REGISTER CONTAINING LENGTH ATTRIBUTE 1 FOR SYMBOL NOTE SYMSECT DSECT MUST HAVE VALID USING AT TIME OF CALL i KOK k Kk OK Kk Kk XK Kk Kk Kk Kk XK Kk Kk Kk Kk Kk Kk Kk Kk Kk k Kk Kk Kk Kk Kk Kk Kk Kk k Kk X
84. OF THE VARIOUS WAYS ASSIST CAN BE RUN IN ORDER OF INCREASING RESOURCE REQUIREMENTS FINISHING WITH A DESCRIPTION OF ITS USAGE AT PENN STATE UNIVERSITY AND SOME OF OUR EXPERIENCES WITH IT 9 Di gt Z n UP n E Di t I I MINIMAL SYSTEM SUCH AS A 360 30 WITH 64K BYTES UN OR A 360 40 OR 50 RUNNING UNDER 0S 360 PCP NOT VERSION OF ASSIST IS IN PREPARATION AS OF 08 23 71 AND ULD AVAILABLE IN A FEW MONTHS FOR THIS CASE ASSIST SHOU BE STRIPPED DOWN TO A MINIMAL SIZE PROGRAM WHICH CAN ASSEMBLE AND INTERPRE STUDENT PROGRAMS USING 1 CARD READER AND 1 PRINTER WITH SJOB BATCH CONTROL CARDS TYPICALLY A NUMBER OF JOBS WOULD BE COLLECTED THEN FED TO ASSIST IN A BATCH AT DESIRED INTERVALS ALL OF THE MORE EXOTIC FACILITIES CAN BE OMITTED THUS SAVING SPACE IT MAY EVEN BE ADVISABLE TO OMIT FLOATING POINT INSTRUCTIONS FROM THE ASSEMBLER IF SPACE IS REALLY CRITICAL ER DOS 360 A DOS Outi 9 Wa O LT
85. RETURN REGISTER NAME S MACFN REGISTER USAGE A A A A A A A Oo ACA KE F F Oo ACA F TZ CA F TZ Xo F Xx CSECT MACINT PHASE OF ASSIST ALLOCATION AND SI HIS RO UTINE IS CALL n ASPLM640 D IN INITIALIZATION OVERFLOW MESSAGE USES MACROS A TZ TZ F F x INSUB MCINITOV USES DSECTS REGISTER USAGE WORK R LS FOR G OV IT PERFORMS CERTAIN RE ETS POINTERS AVGENICD AND ENERAL USE IS T G M CAMPB SALLOCL SAVE SRETU AVWXTABL RA RB ERE LOW ROUTINI AH Di S S
86. UTPUT1 4 SYENT1 5 ERRLAB 6 ERRTAG M SPRNT XXXXPRNT MTCON2 Pass II main control program 2 ICMOP2 IDASM2 UTGET2 5 OUTPT2 OPINIT initialize opcode table processor OUEND2 end of assembly for output formatting processor SPRNT XXXXPRNT OUINT1 pre pass I output processor initialization SYEND2 end of assembly for symbol table processor SYINT1 pre pass I symbol table initialization UTEND2 end of assembly for utilities module code production 5 UTPUT2 UTEND1 terminate pass I initiate pass II for storage utilities 3 XXXXDKE1 UTINT1 pass I initialize utilities routines 3 XXXXDKOP ASPLM200 6 EVEL 2 ENTRIES IAMOP1 Pass I machine instruction scanning 3 sTENT1 SCANEQ 6 ERRTAG IBASM1 Pass II assembler instruction scanning and processing 3 ESCSEC ESENX1 LTDMP1 4 CODTLI 5 CCCON1 ERRLAB 6 ERRTAG EVALUT 7 SDBCDX SYFIND 8 SDDTRM ICMOP2 Pass II machine instructions operand scanning assembly 3 BRDISP LTGET2 5 OUTPT2 UTPUT2 6 ERRTAG EVALUT 7 SDBCDX SYFIND 8 SDDTRM IDASM2 Pass II assembler instructions scanning and assembly 3 BRDROP BRUSIN ESENX2 LTDMP2 4 CNDTL2 5 CCCON2 OUTPT2 UTPUT2 6 ERRT
87. a macro type command GBLx LCLx ACTR SETx AIF AGO etc is discovered in open code MACRO1 may be called to scan it and perform desired action which may include having a number of cards read for a forward branch of an AGO or AIF 4 If a statement is discovered containing a SET symbol MACRO1 can be called to have it scanned and appropriately expanded Ej NTRY CONDITIONS REGISTERS RA scan pointer to first byte of OPERAND field if any If no operand is present 2nd blank beyond the opcode RC OPCODTB entry for the statement if any exists i e for cases 1 2 3 but not 4 AVWXTABL VARIABLES AVREBPT 8 REBLK for stmt if errors exist in it already AVRSBPT 8 RSBLOCK for the statement which includes various flags and the source statement itself AVRSCPT RSCBLK for the statement if it is continued or has Sequence numbers AVSOLAST last blank before the afterquot AVOULNCN 3 byte packed decimal number of CURRENT statement not next statement can be used for diagnostics AVPRINTI gives current print conditions maybe tested to check on allowability of MACRO definition TM AVPRINT1 AVPRSAV BO NOTALLOWED E ASPLM550 4 AVTAGSM contains various flag bits of interest to macro proc lag AJOMACRO is definitely on else MACRO1 will never be called lag AJOMACRG is on if Assembler G options allowed FUTURE USE
88. addition to general descriptive text These are also coded in specific ways to facilitate future production of lists and indices The individual types are described as follows The information in a CSECT block generally describes overall properties of the control section In some cases the text may be very short if the control section has a large number of entry points with a fair amount of comments If all of the entry points of a csect call the same subroutines use the same set of dummy sections or use the same set of macros these will be noted in the block for the csect If the csect is itself an entry point the block may contain any of the information described below under ENTRY b DSECT In addition to descriptive text a DSECT block may contain any of the following types of comments cards LOCATION where in the program the data described by the dsect resides such as in a specific table of a csect EA NAMES notes the first 2 3 characters which begin all names belonging to the dsect pon GENERATION if this dummy section describes a data block which is generated all or in part by a specific macro the macro name s used are noted her C ENTRY In addition to descriptive information giving the purpose of the subroutine and possibly when it is called any or all of the following may appear if appropriate 2 ENTRY CONDITIONS Following this statement is a
89. and RX options only 2 record limit processing may involve the use of the TIRC macro RECREM operand This option should only be used if there is a way to obtain the actual number of records remaining for a job during execution The STIRC macro may have to be modified to accomplish this at a particular installation This variable affects only csect ASSIST ELOC GBLB This option is Monitor cannot hand The only csect a 0 assembler will not contain code to relocat a program to actual location in memory 1 assembler will contain code to relocate user program to the area in memory where it actually is The program can be run with store only protection required to l if amp REPL gt 0 since the Replac le programs unless they are relocated ffected is UTOPRS Code is added to test for the replace option being used in which case flags are set to simulate the existence of a STAR program will be amp SRI EPL GBLB card with the address in memory where the user loaded which permits relocation to be done with no other extra code in ASSIST 0 ASSIST will not contain code for the replace process 1 ASSIST will recognize the REPL option and will contain the code csects REMONI RFSYMS and modifications to ASSIST csect to perform dynamic replacement of control sections in the ASSIST assembler See PART IV of this manual
90. b xceeded regardless of the other values IF amp S TIMER 2 the actual time remaining will be obtained from the operating system and used if it is less than a user supplied T option or if no T value was given on either the invoking PARM field or JOB card A similar action can be done for record counting if amp RECORD 2 The lines remaining count is set to 0 in order to trigger a new page for the ASSIST header An STIMER if available is set to the given value NOTE these actions are coded as the 04 entries of the INSUBs 3 PRINT HEADERS AND DO INITIAL PHASE The ASSIST header is printed with a PARM field or 5308 card then either assembly begins or a user object deck is loaded Any timer runout or output excession quickly terminates processing by the module in control the main program ASSIST obtains control fairly soon and either terminates completely or flushes to the next SJOB 4 SET VALUE FOR USER EXECUTION Assuming that the user program is permitted to execute limits are set for it INSUB entries 16 First temporary values are computed by taking the minimum of the value remaining from the previous setting T etc and the value specified for execution plus dump TX RX PX For each existing remaining counter the value is then set to the temporary value minus the dump valu TD RD PD and execution initiated This process in effect allows the user
91. bytes interpret S 370 privileged operation codes in addition to that for amp SPRIVOP 57 bytes assembly of S 370 privileged operations in addition to that for amp SPRIVOP 170 bytes beyond other options 70 bytes allows RELOC optio D OC 1 OC 1 3600 bytes also requires amp R 4000 bytes also requires amp R Lr n 308 bytes interpret S 370 s with 370 hardware 788 bytes interpret S 370 s with only 360 instructions 85 bytes assembly of S 370 non privileged instructions 570 bytes allows T TD TX options 660 bytes extra flexibility in timing E the value of amp SOPTMS can also be set and should be set to O if there is a lack of storage or perhaps 3 in medium cases ASPLM670 5 D USING ASSIST EFFECTIVELY IN DIFFERENT ENVIRONMENTS ASSIST HAS Bl QUITE DIFFERE STUDENT PROG Lr EN DESIGNED TO FACILITATE ITS USAGE IN A NUMBER OF INVIRONMENTS RANGING FROM RUNNING A BATCH OF SMALL THE ONLY PROBLEM PROGRAM IN A SMALL COMPUTER TO RUNNING LARGE RS OF RUNS AS ONE OF A GROUP OF PROCESSORS OPERATING UNDER A SWAPPING MONITOR IN A DEDICATED REGION OF A LARGE MACHINE IN GENERAL ASSIST CAN BE USED EFFECTIVELY USING VERY MINIMAL RESOURCES SUCH AS 40K OF STORAGE IN A 65K MACHINE WITH ON LINE CARD READER AND PRINTER BUT CAN TAKE ADVANTAGE OF EXTRA SPACE AND I O DEVICES TO OFFER MANY USEFUL OPTIONAL FACILITIES THIS SECTION BRIEFLY DESCRIBES SOME
92. e E vee ale REGE a Sees 600 1 B REGISTER AND SUBROUTINE LINKAGE CONVENTIONS 600 3 Es NAMING CONVENTIONS Z ee oku a AS eo eos e eos E er dE Rees eno 600 5 D CODING CONVENTIONS AND TYPICAL TECHNIQUES ooooooooooo 600 6 APPENDIX II SET VARIABLES AND CONDITIONAL ASSEMBLY 610 1 APPENDIX III DUMMY SECTIONS AND TABLES ese dle ecos 620 1 APPENDIX IV MACRO INSTRUCTIONS sete pa ta eres em deal EN e hua q 630 1 APPENDIX V ENTRY AND EXIT CONDITIONS cocido ee 640 1 APPENDIX VI INTERNAL DEBUGGING AlDS o oooooooooooooooooooo 660 1 Ai GENERATION SF DEBUG CODE 00 ue De eer t Us ers 660 1 B SET SYMBOLS AND MACROS USED IN DEBUGGING eee ees 660 2 C INDIVIDUAL SECTIONS DEBUGGING CODE DESCRIPTION 660 3 1 MAIN CONTROL AND SERVICE SUBPROGRAMS 660 3 2e PHEZASSEMBEER ee den ecd esee iss 660 5 S THE INTERPRETER tea a a ole ile Eu RES 662 1 4 THE REPLACE MONITOR no co ie a ee ene d 662 2 APPENDIX VII SYSTEM RESOURCE REQUIREMENTS JOB CONTROL LANGUAGE 670 1 A SYSTEM RESOURCE REQUIREMENTS ooooooooooooooooooooonoo 670 1 Be JOB CONTROL LANGUAGE 0 223 296 as erue e RR esr Row Pos Peg a ere Due 670 3 C OPTIONAL FACILITY STORAGE REQUIREMENTS o o oooooooooo o 670 4 D USING ASSIST EFFECTIVELY IN DIFFERENT ENVIRONMENTS 670 5 APPENDIX VIII TIME RECORDS PAGES CONTROL 0 6
93. is possible to use OVERLAY techniques to reduce the size to approx 20 22K although this is not recommended A list of the preallocated storage and data required by various facilities is listed in part C B I O MODUL G S ASSIST uses GET PUT locate for unit record devices see Appendix II amp SIOUNIT c DYNAMIC STORAGE AREA During initialization ASSIST acquires the largest single block of storage remaining in its region up to a given limit 512K and then returns the FREE value to the operating system The size of this block determines the size of the largest program which can be run under ASSIST The limiting factor is the quantity of storage used in this dynamic work area during assembly For the symbol table literal constant table and temporary storage of record blocks between Pass I and Pass II of assembly an average of 50 90 bytes per statement is required d TOTAL MEMORY Reasonable programs of several hundred statements should easily run in a total memory space of 64K For most beginning student programs 44K should suffice even with a 30K ASSIST system ASPLM670 2 2 INPUT OUTPUT DEVICES Lr a CARD READER or equivalent device b LINE PRINTER or equivalent device A width of 133 characters including carriage control is desirable but a 121 character width is sufficient for all output except a few headings and messages
94. o ACA SS Ro xo F Xo F D gt INSUB po EXCON3 CONVERT 3 BYTES OF REGISTER R7 TO HEX gt INSUB 0 EXPRINT PRINT ESSAGE 4 bit at INSUB RGENTS CHECK USER VALUES IN PARAMETER REGISTERS INSUB RGRAADDR CHECK LEGITAMACY OF SCAN PTR RA CS INSUB RGRCADDR CHECK RC FOR INSIDE USER PROG gt INSUB RHENTS CHECK PARM REGS PASSED TO CALLED PROGRAM gt INSUB RHRAADDR CHECK RA FOR REASONABLE 4 xx gt CSI OX 0 E OX F OX Oo OX OO ACA OX FF F CA X Ro X 4 F Xx Y F RFSYSMS RFYSMS SE DYNAMMICALLY T ABLE ET 1 OF CS REPLAC ECT E ED BY A HAS AN ELE ENT FOR AS RY NAMES REPLACE PLM641 54 E LO ACH CS ECT WHICH CAN USER WRITTEN ROUTI NE EACH ELEM EN OFFS CON AINS 9 ETS TO WHIC HE NAME ENTRY POINTS IN IT AN HEIR THE 2ND SE ENTRYPOINTS CTION H CAN BE OFFS SECT REGI ET ION STE HAS NOT EACH RS P THE 3 LABE ONLY CA RS TO OF D A LIST OF E DCONS IN AVWXT HE NUMB ER OF 0 FH IS
95. progr Effective only if amp millisecond accurac version and le amp STXDF GBLC amp TXMX amp SVERSLV GBLC This detection of errors amp SXIOS GBLB 0 asas of 2 1 73 thi the x macro ps assembled by the AS 1 the x macro in interpreted This value affects the following i XHEXI XHEXO XLIMD structions by ASSIST As of 9 15 70 perform i in the csect OPCOD1 this 0 EXECUT amp SXXIOS GBLB amp XSDDMOR GBLB amp DEBUG GBLC amp ID GBLC amp TRACE GBLC See nput output at this time XPNCH XPRNT and are macro i value should be 1 Thi nning code in I XREA ns sca XGI XGI XPU XPU are not allowed standard ddnames allow user s own only if amp XXIOS 0 certain names liste hexadecimal va testing See macro VI for full explant value to be us point in a control case all entry points have identifications NO in which case depending on value APPENDIX VI for exp control value for SRETURN macros at e NO no trac ASPLM610 8 ximum values of TX option i e am execution dump together STIMER gt 0 and can be specified to y if desired vel of ASSIST being generated value is printed by ASSIST to identify itself and aid in S has the value 2 1 A eudo instructions are not SIST assembler structions are assembled and nstructions XDECI XDECO XDU
96. two counters of its own A lines remaining in the current page counter is decremented by XXXXPRNT every time a line is printed and when it becomes zero ta pages left counter is decremented When the latter becomes zero the same action is taken as when the record count becomes negative The Number of lines per page is given by the L parameter which is set by APARMS The values of lines remaining and pages remaining are set by sections of ASSIST csect INSUB ASPAGE The actions required at any stage of the program are thus done by appropriate sections of the INSUBs ASTIMR ASRECL and ASPAGE some or all of which may exist depending on local requirements In general at any place in the main control part of csect ASSIST at which a change of status is required 1 to 3 calls are made to the sections of the three INSUBs having corresponding numbers The organization lends itself to easy modification since the value setting code is definitely isolated and well marked ASPLM680 3 he basic algorithm common to all three areas may now be outlined as follows COMPUTE VALUES FOR INDIVIDUAL PARAMETERS This is done as described in PART III of the USER S GUIDE and the computation done by APARMS 2 SET INITIAL LIMIT VALUES CORRESPONDING TO T R and P The limits thus set hold for the entire run or JOB run if BATCH and Cannot
97. 1 ASSIST is being assembled for an OS system As of 08 20 71 version 1 2 A1S1 the DOS modifications are being added but are not yet available for distribution amp SBLEN GBLA set to length of buffer in bytes amp SBUFNO GBLA set to number of buffers gt 0 amp SBLEN and amp BUFNO are required for a disk utility version of ASSIST Can never be set to 0 Must be present if amp SDISKU gt 0 amp SCMPRS GBLB 0 the CMPRS listing option is not provided 1 code is provided for the CMPRS listing option which allows printing two columns of statements per page reducing the assembly listing by 50 If it 1 code is added to csects APARMS and OUTPUT amp SCOMNT GBLA 0 no COMNT option is available the COMNT option is available and if coded or if amp SACCT 1 and a given account number is used will count the number of comments on machine instructions User execution is not allowed if less than per cent have comments on them If gt 0 code is added to APARMS IAMOP1 and OUTPUT csects amp SDATARD 8 0 only 1 card reader SYSIN exists 1 2 card readers exist user program can read cards from different DDNAME than assembler source or object program This option adds code to XXXXIOCO ASPLM610 2 amp SDEBUG GBLB 0 debugging code is allowed to be generated in ASSIST modules 1 debugging code is not generated inside ASSIST This set variable interacts with other varia
98. 550 7 3 MACRO TYPE COMMAND IN OPEN CODE MACRO1 is called when anything identified as a conditional assembly statement is found The actions taken are as follows NOTE RSBFLAG should be marked SRSBNP for all stmts a GBLx LCLx ACTR Check for proper order flag if incorrect using ERRTAG and set RSBFLAG with SRSBNP so that the statement will be numbered but will not be processed except to be printed during Pass 2 Return with RB 8 so that MOCONI will call UTPUT1 and then get next statement If statement order is acceptable perform required actions Storage maybe allocated using SALLOCL from dynamic low or if desired using SALLOCH from dynamic high with low being much preferred When the statement is processed it should be passed to OUTPT2 and printed RB SOUCOMM b SETx The statement is scanned and the indicated action performed If any errors exist they may be flagged using ERRTAG and return should be made with RB 8 and also the RSBFLAG should be flagged RSBNP C AIF AGO The statement is scanned and indicated action performed AIF s which fail are treated exactly as are SETx AGO s and successful AIF s cause the following actions to occur First UTPUTI is called to save the current AIF AGO stmt whose RSBFLAG should be marked SRSBNP Next INCARD is called until the desired sequence symbol is discovered at which point return should be made
99. 80 1 A TIME RECORDS PAGES CONTROL ALGORITHM o oooooooooooooo 680 2 B RECOMMENDED OPTIONS AND MODIFICATION METHODS 680 4 ASPLM100 1 PART I MAIN CONTROL AND SERVICE PROGRAMS This part of the ASSIST Program Logic Manual describes both the overall flow of control and structure of the ASSIST system and details of various service programs which may be used during execution The service subprograms noted include both those which are normally only called from the main program and those which are available for use by any other module in the ASSIST system The following sections detail the input to and output from the entire ASSIST system the overall logic of the main program ASSIST and a hierarchy chart showing calling relationships between entry points in the system Following these sections are given more detailed descriptions of each module in the control and service program group A OVERALL CONTROL LOGIC 1 INPUT a USER SOURCE PROGRAM OBJECT PROGRAM The user source program written in assembler language is read from a card reader using a DDNAME of SYSIN This is the only required input to ASSIST Some versions of ASSIST may contain a module used to load object decks AOBJIN in which case an object deck takes the place of a source deck b USER DATA OPTIONAL Optional data is read during user program execution from a car
100. 8748900 6 RCODBLK 02776100 6 REBLK 02801000 6 RECORBLK 30004000 6 RFSYMBLK 30082000 7 RSBLOCK 02811500 7 RSCBLK 02848100 E RSOURCE 02864100 7 SYMSECT 02689100 7 XS SLOTFO 02317244 7 XDECIB 07150600 7 XDECOB 07151080 8 XHEXIB 07151590 8 XHEXOB 07151845 8 XIOBLOCK 07540000 8 XSPIEBLK 08563175 8 XXSNAPC 07556200 8 ASPLM620 2 DSECT AJOBCON MAIN JOB CONTROL TABLE x THIS DSECT PROVIDES THE PRIMARY COMMUNICATION TABLE USED BY THE MAIN PROGRAM ASSIST THE I O ROUTINES XXXXIOCO THE PARM FIELD ANALYZER APARMS THE MAIN PROGRAM OF THE ASSEMBLER MPCONO AND THE REPLACE MONITOR REMONI IT PROVIDES FOR GLOBAL FLAG VALUES DEALING WITH THE OVERAL A JOB IN PROGRESS PARM FIELD VALUES USEFUL CONSTANTS BLANKS ZEROES WORKAREAS AND DYNAMIC STORAGE AREA LIMITS x LOCATION IN TABLE ASJOBCON OF CSECT ASSIST x NAMES AJ V DSECT AOBJCARD IMAGE OF OBJECT DECK CARD 2 T Tc toe HIS DSECT DESCRIBES 1 CARD OF AN ASSIST OBJECT DECK TH ORMAT IS COMPATIBLE WITH NORMAL S 360 OBJECT DECKS SO THAT AN BE USED UNDER SOME CIRCUMSTANCES HEY ARE HOWEVER R IN ORDER TO ALLOW FOR PRODUCTION OF THI FROM STUDENT He Og H HE b H A K D T F C
101. AB SALIG ES OBJECT CODI IE WAYS A H EY EXIST L RS K R SCALL iL EE REA DED A RSCBI NOTI sIGNED TO FU OC SRE NEE FOR THE S OV EAR TL F F Al RE P P AC Li LLW ER LOCATION FA ASSIST INT C RT TOR A T HI S E RP CARD USE iR B D DONE E R a U C E E A SO F IL RI H E WI ETION HC T RY OG INC RAM E IVE HA DU Y COND PS IN A ITIONS LOCATION CO DU ASS EMBL E D CODE E IN M ENGT H 1 OF OBJ ES DS ECTS ES ACROS PLICATION FACTOR FO AVWXTABL ECT CO CO K D OR TURN D IN THIS WITH TH b OF OR ORDER B BLOCKS RS BOUNDARY SSAVE ELOCAT ES OBJECT C BLOCK ODE a NT OCKS AND O IT ED B ROG RAM Y 7 THE E ASSEMBL ER I APPLYING D UPLICATION EC AUSE OF T B E R IT CAUSE OF NO RE FAST AND OBJ P D CT PROGRAM H E WAY E HE THE E
102. AG EVALUT INCARD input ofsource cards construction of record blocks 6 ERRTAG M S SORC XXXXSORC OPFIND look up opcode in opcode table UTGET2 Pass II retrieval of record block addresses 3 XXXXDKRD UTPUT1 Pass I saving of record blocks in dynamic workarea 3 XXXXDKWT EVEL 3 ENTRIES BRDISP decode address into base displacement form BRDROP drop a register from base register availability BRUSIN allow a given register to be used as a base register ESCSEC external symbol manipulation START CSECT DSECT ESENX1 ENTRY EXTRN processing during Pass I 4 SYENT1 ESENX2 ENTRY EXTRN processing during Pass II 4 SYENT1 6 ERRTAG LTDMP1 calculate literal pool length during Pass I LTDMP2 have a literal pool assembled and printed during Pass II 4 CNDTL2 ASPLM200 7 TGET2 retrieve program address of a given literal Pass II TENT1 scan literal during Pass I enter into literal table 4 CODTLI TGET2 retrieve program address of a given literal Pass II SCANEQ scan expression until or blank found 7 SDBCDX XXXXDKEl terminate write phase initiate read phase during disk utility run XXXXDKOP initialize disk utility during disk utility run XXXXDKRD read a buffer from disk during disk utility run XXXXDKWT write a buffer to disk during disk utility run Ij ENTRIES CNDTL2 assemble code for DC or literal constant hav
103. ALU POINT THO p OF A S ER POIN CO N Hd Hd E D ry a D ON T ATION IN T LIST IN DESC WHICH IS KI P EN D BLE THI R BY TH s INK ED RIMARY TA DING ORDE IN THE P HASH COD TO THE SY CAUSE MAK a P D IS US S td ND OF THE Hy N ES FRO H R FA D iS I D I T RUC ST INS E ACN PERFOR ED D OSTOE DSECTS RY S F Ra S SCAN NUMBI EXIT ADDRI 0 4 n RYS S SCAN NUMBI EXIT ADDRI 0 4 Pp n RX S OBTAI ALSO ACROS 2 USE a YEND2 UTURE I AHA o TO WHICH 11 NO ASSUMPTIONS BO S BELONGS THIS E SYMBOL TA E ABOUT THE FINAL BL PERMITTING A DYNAMIC A ONS MAJO EVEN WITH R T AVWXTAB SALLOC LONG LISTS OF SYMBOLS E 1 SYMS H SCALL CL WI EANUP AT COMPU YENT1 1 POINTER TO R OF CHARA CONDITIONS SS IN TH HE SYMBOI THE SYMBOI p an ra D YFIND 1 POINTER TO R OF CHARA CONDITIONS SS OF TH HE SYMBOI THE SYMBOI P Li E m n Li YINTI NS SPACI SAVES T 1 E HE ENTRY CONDITIONS E CT SY L WAS ALR
104. ANNING DECIMAL NUMBERS AND MACHIN INPUT CONVERSION HEX TO BINARY SCANNING SYMBOLS AND INSTRUCTION OPERANDS SCANNING HEXADECIMAL CONSTANTS DOING GENE 3 6 G Z U T ERAL EXPRESSIONS CONVERTING BINARY TO OUPUT HEXADECIMAL ENERATION SECTION AWCONADS IS CREATED BY MACRO WCONG E 3 VARIABLES NA HIS SECTION CONTAINS ALL VARIABLE AREAS USED FOR OMMUNICATION INSIDE THE ASSIST ASSEMBLER IN ADDITION TO US WORKAREAS WHICH MAY BE OVERLAPPED TO SAVE SPACE HE AREAS PROVIDED INCLUDE THE RECORD BLOCKS LOCATION ER VALUES CURRENT SECTION ID CURRENT DYNAMIC STORAGI REA LIMITS AND VARIOUS FLAGS TEMPORARY WORKAREAS ARE PPLIED ALL WITH WORK INCLUDED IN THEIR NAMES WHICH AN BE USED BY ANY ROUTINE BUT ARE NOT SAFE ACROSS A BROUTINE CALL NOTE THAT THIS SECTION REQUIRES EQU SYMBOLS ROM CNCBLOCK AND THE RECORD BLOCKS TO ASSEMBLE CORRECTLY bi We pi lt Kal El CA ACA ACA F F F TZ Ro 4 Xo X Xo Xo Xx gt DSECT CNCBLOCK CONSTANT CODE BLOCK DC S LI LOCATION EACH CNCBLOCK IS CREATED IN AR 1 OR MORE CNCBLOCKS MAY BECOME PART O
105. APCNI NCR E R Y E CORDS LIMIT S NO TYPE OTH T RWISE I Y LI ET F S 10 CAN BE S 01 CAN BE S E B THIS MAC RO U Y USER SED ON IT OR DEFAULT VA ROM THE PARM FIELD FROM SJOB CARD UE Y IN APARMS CSECT APCSE APCSE APCSE APCYI E POSSIBLE CALLS IS ALLOWI CONSISTS OF 3 BITS S Fl FI T IS NO D TO SI WI iD P U CORRESPONDS TH ASPLM630 8 gt MACRO ASPAGE sINK TO SECTION OF PAGE CONTROL CODE LT amp CODE IS TWO DIGIT GIVING DESIRED SECTION OF PAGE CONTROL oy CALL IS GENERATED ONLY IF amp PAGE 1
106. ASPLM662 1 special AVDEBUG INTERPRETE xj D al E Bie E instructi field of can be ge version of opcode ca version 0 in a debu LAG BYTE ECFLAG2 in ECONTROL dsect AG SE T on i the i e nstruction is moved to nerated by use of the DIAG mnemonic assembled by a debug TING ECFLAG2 is set an SI instruction by executing a Diagnose with opcode X 83 The immediate ECFLAG2 Note that this opcode th g L assembler n be coded in hexadecimal and obtained without using a debug f the assembler version of the interpreter s section C 2 e of this Appendix or the However the flag setting code only exists GE flag d AG T ES e g EBUG OUTPUT LOCATIONS the XSNAP operand used is ING various XSNAP s use a TM instruction to test the IF ECFLAG2 0 mask TM the following lists all debug output locations in the current version of the interpreter CS ECT EX ECUT MASK VALUE T D PURPOSI EX OUTPUT LABEL LOCATION OUTPUT PRODUC F E 20 80 40 SPIE just after SPIE exit label EXSPIEXT prints GP registers 32 bytes of the PIE Program Interrrupt Element supplied to the exit routine by the operating system This is used in debugging the interpreter to make sure that interrupts are handled prope
107. ASPLMO10 1 3 0 B March 1974 ASSIST SYSTEM PROGRAM LOGIC MANUAL Program amp Documentation John R Mashey Project Supervision Graham Campbell PSU Computer Science Department This manual contains various information describing the internal structure and techniques used in the ASSIST system It includes details required for maintenance and extension of the system describes th purposes and methods of all the modules in the system and in general is required reading for any person performing modification of the system Depending on the intentions of the reader certain sections of this manual should be consulted All readers should begin by reading the following section GUIDES TO EFFECTIVE USE and also the section INTRODUCTION GUIDES TO EFFECTIVE USE This section essentially describes how to use this manual properly nd should be consulted before reading any other section or examining the ASSIST source program o A WHO is to use this manual This manual is definitely required reading for any person desiring modifications to the ASSIST source program for any reason This category includes maintenance of ASSIST extensions and additional features to be added to ASSIST and modifications for handling programs for a given installation in a different manner than provided for already It also includes improvements in the code used internally and any modifications needed to
108. ASSIST assembler should contain code to process user written macros NO asmg h v FOR FUTURE USE address of byte 1 byte beyond maximum address of the computer ONLY REQUIRED IN NON OS 360 systems since ASSIST obtains this information from 0 CVT 1 Macro library search implemented 0 No macro library search Type of machine for header only model number of S 360 for which the system is being assembled This variable is used to identify output and is also provided for future us i n generating code optimized for different models and for modified versions for use with S 370 rather than S 360 amp SOBJIN GB LB 0 ASSIST cannot load object decks 1 object decks can be loaded This option adds code to ASSIST and creates entry AOBJIN of csect AOBJDK amp SOPTMS GBLA value from 0 to 9 indicating the degreee of space versus speed optimization in the code generated for ASSIST Lower values generate smaller but slower versions of ASSIST This variable mainly affects sections of code in ICMOP2 and IDASM2 A small value causes the code in these sections to be generated to be general and small rather than special case oriented and larger If amp SOPTMS is less than 3 error codes only are printed saving about 1K of memory devoted to error messages in csect OUTPUT SOPTMS is also used to set the value of amp SSYHASH for symbol table Also if amp SOPTMS lt 3 err
109. ASSIST has any kind of timer these values should be set very high so that the timing control variables are used to stop loops instead ASPLM610 4 amp SIOUNIT GBLC Specifies the ddname or file names used for standard I O not including XGET XPUT US OS DEFAULT DOS DEFAULT ih Primary Card Input SYSIN QSAM GM SYSIPT DTFCD 2 Secondary Input FT05f001 OSAM GM SYSRDS DTFCD 3 Printer FTO6F001 QSAM PL SYSLST DTFPR 4 Punch FTO7F001 QSAM PL SYSPCH DTFCD 5 Disk Intermediate FTO8F001 BSAM SYS001 DTFSD 6 Macro Library SYSLIB BPAM N A 7 FOR FUTURE USE 8 FOR FUTURE USE Denotes Required Dataset Access Method DTF amp SKP26 amp SLDF amp LMX amp SMACOPC amp SMACROS GBLB GBLA GBLB GBLB amp SMACROG H V amp SMACSIZ GBLA amp SMACSLB GBLB amp SMCHNE GBLC amp SMODEL GBLA GBLB 0 only 029 keypunch decks can be accepted 1 ASSIST responds to the KP 26 option and can translate incoming 026 keypunch decks correctly default and maximum possible values of the L parameter only meaningful if SPAGE 1 These are normally set to the maximum possible number of lines on an actual page usually 63 1 Open code conditional assembly allowed if amp MACROS 1 0 No open code allowed 0 the assembler part of ASSIST should not contain code for processing user written macro instructions 1 the
110. ATED STMT FROM RSBLOCK TO HIGH FREE x AREA AVGEN2CD POINTS TO BEGINNING OF STMT EXIT CONDITIONS RB ZERO IF OKAY ELSE 4 IF OVERFLOW USES MACROS SAVE SRETURN MALLOCH USES DSECTS RSBLOCK REBLK AVGEN1CD AVGEN2CD REGISTER USAGES RAT MAIN TABLE USING S RW SOURCE BLK USING RX ERROR BLK USING R1 RB BYTE REGISTERS RA WORK REGISTER KOK OK Kk KK Kk Kk Kk kk Kk Kk Kk Kk XK Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk Kk KK zm pp D pp DD AD x ASPLM641 50 gt CSECT OPCODL 1 OPCODE TABLES AND LOOKUP CODE THIS MODULE CONTAINS THE CODE TABLES TO IDENTIFY OPCODES gt ENTRY OPFIND 1 LOOK UP AN OPCODE ENTRY CONDITIONS RA SCAN POINTER TO 1ST CHARACTER OF OPCODE EXIT CONDITIONS RA SCAN POINTER TO 1ST BLANK FOLLOWING LEGAL OPCODE OR SAME AS O ENTRY IF OPCODE WAS NOT RECOGNIZED RB 0 IF THE OPCODE WAS FOUND IN OPCODE TABLE RB NONZERO VALUE ERROR CODE FOR ILLEGAL OPCODE SERIVOPC RC ADDRESS OF OPCODTB ENTRY FOR THE OPCODE IF IT WAS FOUND USES DSECTS AVWXTABL OPCODTB USES MACROS RETURN SAVE OPG OPGT gt ENTRY OPINIT 1 INITILIAZE OPCODE ROUTIN
111. CAN POINTER ADDRESS OF 1ST CHARACTER OF OPERAND FIELD RC ADDRESS OF OPCODE CONTROL TABLE ENTRY FOR OPCODE USED EXIT CONDITIONS RB 0 NO ERRORS WERE ENCOUNTERED 0 ERRORS WERE FOUND IN STATEMEN RC ADDRESS OF RECORD CODE BLOCK RCB RD LENGTH OF CODE TO BE ADDED AFTER ALIGNMENT DONE CALLS CCCON1 CODTL1 ERRLAB ERRTAG ESCSEC ESENX1 CALLS EVALUT LTDMP1 SDBCDX SDDTR USES DSECTS AVWXTABL CNCBLOCK IBPSECT OPCODTB SYMSECT USES MACROS SAL2 SALIGR SCALL SCKALN GLOC SRETURN SAVE USES MACROS SDEF SLOC IBPRTAB ASPLM640 25 gt CSECT ICMOP2 2 MACHINE OPERATIONS PASS 2 EE THIS MODULE IS 1 OF THE 2 PASS 2 LEVEL 2 ROUTINES IN THE ASSIST ASSEMBLER IT PROCESSES ALL MACHINE INSTRUCTIONS IN HE SECOND PASS SCANNING ALL THE OPERAND FIELDS AND CREATING THE OBJECT CODE FOR THEM IT ALSO DOES THE SETUP REQUIREED FOR OUTPT2 TO PRODUCE THE PRINTED LISTING THIS ROUTINE HAS ANY SPECIAL CASE SECTIONS WHICH ARE USED FOR SPEED AND S HICH COULD USE LESS SPACE IF CALLS TO THE GENERAL EXPRESSION VALUATOR EVALUT WERE USED INSTEAD NTRY CONDITIONS 1 RA SCAN POINTER ADDRESS OF 1ST CHARACTER OF OPERAND FIEL
112. CT RSCBLK RECORD SOURCE CONTINUATIONS SEQUENCE S x CREATED BY INCARD FOR ANY STATEMENT HAVING EITHER SEQUENCE NUMBERS OR CONTINUATION PUNCHES LOCATION CREATED BY INCARD IN AVRSCBLK AVWXTABL DURING ASSEMBLY PASS 1 MOVED TO LOW END OF DYNAMIC AREA BY UTPUTI FOLLOWING CORRESPONDING REBLK IF ONE EXISTS REMAINS IN THAT AREA FOR REST OF PROCESSING x NAMES RSC gt DSECT RSOURCE DESCRIPTION OF A SINGLE SOURCE CARD USED FOR INPUT PROCESSING BY SUBROUTINE INCARD LOCATION AVRSBLOC AVWXTABL DURING CREATION OF RSBLOCK NAMES RSO gt DSECT SYMSECT ASSEMBLER SYMBOL TABLE ENTRY P PME Await og CREATED BY ENTRY SYENT1 OF CSECT SYMOPS AND HAS VALUES ADDED BY MOCON1 IBASM1 FOR VALUE SECTION ID LENGTH ATTRIBUTE x AND BY ESDOPRS FOR SPECIAL ATTRIBUTES CSECT ETC LOCATION FREEAREA HIGH END SALLOCH D NAMES SY gt DSECT X SLOTFORMAT FOR XGET XPUT MONITOR TABLE USED IN XDDGET AND XDDPUT TO CONTROL USE OF CERTAIN DD NAMES BY USER WITH XGET XPUT PERMITTED gt DSECT XDECIB CONTROL BLOCK CREATED BY XDECI MACRO Ka AN XDECIB IS CREATED BY EACH CALL TO THE XDECI MACRO AND CONTAINS THE 8 XXXXDECI SAVEWORDS FOR REGS R14 R15 R0 AND x WORDS FOR RETURN VALUES FOR REGISTER R1 AND THE ARGUMENT REG THIS DSECT IS USED ONLY IN MODULE XXXXDECI GENERATION XDECI NAMES XDECI x D gt DSECT XDECOB CONTROL BLOCK CREAT
113. D RC ADDRESS OF RECORD CODE BLOCK RCODBLK FOR STATEMENT E ADDRESS OF RECORD SOURCE BLOCK RSBLOCK FOR STATEMENT ALLS BRDISP ERRTAG EVALUT LTGET2 SDBCDX SDDTR ALLS SDBCDX SYFIND OUTPT2 UTPT2 SES MACROS SAL2 SCALL SGLOC SRETURN SAVE ICT 5 q Goarrouk CACA OX 6 X F F FF Xo Ro Ro Xo F Xx ASPLM640 26 gt CSECT IDASM2 2 ASSE HIS MODULE IS 1 OF TH ER INSTRUCTIONS PASS 2 2 PASS 2 LEVEL 2 ROUTINES IN TH RFORMS ALL PROCESSING OF ASSEMBLER NSTRUCTIONS IN THE SECOND PASS IT PRODUCES SOME OBJECT OR PRINTING OST OF THE WORK HAS E CORREPONDING PASS 1 MODULE IBASMI Bm rg Di UJ bi RA RC N POINTER ADDRESS OF 1ST CHARACTER OF OPERAND FIELD ESS OF RECORD CODE BLOCK RCODBLK FOR STATEMENT ESS OF RECORD SOURCE BLOCK RSBLOCK FOR STATEMENT DROP BRUSIN CCCON2 CNDTL2 ERRTAG ESENX2 EVALUT LTDMP2 TPT2 UTPUT2 ECTS AVWXTABL RCODBLK RSBLOCK SYMSECT ACROS SAL2 SCALL GLOC SRETURN SAVE SDEF STV 2 E Il Lr RE RERUM E a Rams e 3 uj K O Z LI A H H O n D We O JG A C n 1 USE A ACA X TZ Xo X
114. DS ARE SET TO ZERO IF NOT PRESENT AVMFLDT1 CONTAINS amp IF VARIABLE SYMBOL AND IF B P I E EQUENCE SYMBOL ELSE ZERO AVMFLDT2 CONTAINS I IF OPCODE SUS D MACRO INSTRUCTION M IF MACRO OPCODE AIF AGO SETA ETC O IF OPCODE IS REGULAR ASSEMBLER OR MACHINE INSTRUCION AND X 00 IF ANYTHING ELSE SCANS NON STND CONTINUATION FILDS AND PLACES VALUES IN AVMFLD5 THRU AVMFLD8 ENTRY CONDITIONS RA OF FIRST CAHARACTER OF STATEMENT EXIT CONDITIONS RA SAME AS ENTRY CONDITIONS RB 4 IF COMMENT STATEMENT 8 IF MACRO COMMENT ELSE ZERO RC OF OPCODTB ENTRY IF OPCODE M OR O I USES MACROS CALL SAVE SRETURN SSETRT USES DSECTS AVWXTABL OPCODTB CALLS ERRTAG MCATRM OPFIND n oko X oo o F X X ko XX AC X X X X xXx F F OF NAMES MAC OR MC BASE REGS R13 RAT RX RC ge WORK REGS R1 R2 RA RB RW RZ ge OR ACA F 0X OX E OX FF FF F F F OR F FF X F X Xo F HF OF
115. E P ON NEW PAGE he entries giving th two p reset lines remaining counter hases should begin on new pages n user the benefit of the doubt on partial pages lines remaining counter thus If these the desired section may just AJOLREM to zero
116. E AS OF 8 12 70 THIS PROGRAM IS MORE GENERAL THAN CURRENTLY NEEDED TO ALLOW FOR FUTURE NEW PARM OPTIONS A X X F X Xo F xo F INSUB APDECON CONVERT DECIMAL PARM VALUE los Eo dou gt CSE E Rl 6 v E x X E d gt INS INS gt INS gt INS gt INS gt INS gt INS gt INS gt INS gt INS E E C C U T ASSIST NTRY CONDITIONS POINTER AL SES DSECTS SES MACROS SES MACROS SES MACROS B ASASPRNT B ASFLUSH B ASMSFINI B ASMSINIT B ASPAGE B ASRECL O OS LENGTH PARM FIELD AREA ALLS AOBJIN AODECK APARMS EXECUT MPCONO REENDA REINTA S XXXXFINI XXXXINIT AJ SD AS ASPLM640 6 MONITOR CONTROL PROGRAM FOR THE ASSIST SYSTEM T OBCON AVWXTABL ECONTROL BG SPRNT SRETURN SSAVE SORC STIRC PAGE ASPRNT ASRECL ASTIME ASTIMR FR FRI REMAIN GETMAIN STIMER TTIMER XCALL XSNAP WTL CALL t D BY ASPRNT MACRO TO PRINT A LINE FLUSH CARD RDR UNTIL NEXT COMMAND CARD LT E CURRENT DYNAMIC STORAGE AREA I I AIN STORAGE INITIALIZATION 4
117. E IF NEEDED AS OF 8 17 70 THIS ENTRY DOES NOTHING IT IS INCLUDED FOR COMPLETENESS POSSIBLE MODIFICATION REQUIRING INITIALIZATION ASPLM641 51 CSECTE OUTPUT PRINTED LISTING ROUTINE x Sa OUTPUT HANDLES THE FORMATTING AND PRINTING OF THE ASSEMBLY ES LISTING FOR THE ASSIST ASSEMBLER G RD 1 OF BYTES OF OBJECT CODE OR TITL RE SECONDARY CODE OR ADDRESS SECONDARY CODE FOR LISTING CONTROL OPERATIONS 0 SPACE OR EJECT 2 PRINT 4 TITLE USES DSECTS AVWXTABL ICBLOCK RCODBLK RSBLOCK RSCBLK REBLK USES MACROS SAL2 SPRNT SRETURN SAVE SSERR gt ENTRY OUEND2 2 PRINT ENDING STATISTICS FOR ASSMBLY OUEND2 IS CALLED AT THE END OF THE ASSEMBLY TO PRINT SUMMARY e OF ERRORS AND WARNINGS ISSUED FIRST LINE PRINTED GIVES Bi TOTAL OF STMTS FLAGGED TOTAL
118. E NUMBER amp MSSG ERROR MESSAGE TO BE PRINTED amp TYPE TYPE OF COMPLETION CODE SYSTEM ASSIST OR USER NOTE IF amp SOPTMS 0 NO MESSAGE WILL BE GENED ONLY CODE k XK ck ok XK Ck Ck Ck ck XK XK XK XK XK k kk X XK ck XK XK ck ck XK kk XxX XxX xk XxX k ko X MACRO GLOC GET LOCATION COUNTER INTO REGISTER Q GET LOCATION COUNTER MACRO PUTS LOCCNTR VALUE IN amp RG KOOK kk Kk XK kk Kk Kk Kk k Kk Kk XK Kk Kk Kk Kk Kk Kk XK Kk Kk k Kk Kk Kk Kk Kk Kk Kk XK k Kk X MACRO SGTAD LOAD ADCON INTO REGISTER FORM AVWXTABL Ok Ck Kk Ok XK XK Ck XK XK XK k ck XK ck XK ck ck ck ck ko Ok ok ok ok ok ok ok ok xk ok xk xk X MACRO SLV LOAD VARIABLE LENGTH VALUE INTO REGISTER ASMB Vu LOAD VARIABLE PLACES amp L BYTES IN amp RG FROM amp AD QUE HIGH ORDER BYTES ARE ZEROED USES AVFWORK1 T a 0k Ck K Ck kk kk KK XK kk XK XK kk kk kk kk kk kk XX X X X X gt MACRO SMSG USED TO GENERATE LINE IN MSG TABLE A amp NMBR IS MESSAGE 3 DIGITS S amp MSG IS QUOTED STRING OF MESSAGE A amp FLAG IS FLAG BYTE A ASPLM630 5 MACRO RETURN MACRO SAVE SUBROUTINE ENTRY SETUP OS LINKAGE MACRO SSCOF CONVERT REGISTER SCAN POINTER TO OFFSET VALUE MACRO SCPT CONVERT OFF
119. EBUG 0 Debugging code is generated in many sections of ASSIST depending on local requirements All debugging output is done using the macro XSNAP which includes performing tests on data flags before actually producing output This macro is used by itself in some places and is also called to perform tracing functions on entry and exit to some subroutines The usage of this macro is described in a separate writeup Briefly it prints labeled output which can show the registers any number of storage areas and information such as the PSW where it was called from without destroying any registers or the condition code If needed it can make execution time tests to determine whether or not output should be printed It is suggested that any additional debugging code added to ASSIST should be made conditional on the value of amp SDEBUG or at least upon another SET variable in order to maintain a source program with large quantities of debugging code in it which can be completely suppressed for creation of a production system ASPLM660 2 B SET SYMBOLS AND MACROS USED IN DEBUGGING This section describes debugging SET symbols macros and the interactions among them 1 SET SYMBOLS he following are also listed in Appendix II 7 a amp DEBUG This symbol is set by the macro DBG and always contains a character string which is a hexadecimal self defining term It is used by the XSNAP ma
120. ED JUST AN ANALYSIS OF THE TATUS OF THE ACTIVE CONTROL BLOCK XSPIEBLK BY THE COMMON RRUPT EXIT ROUTINE ROS SPIE OS OR STXIT DOS SSAVE SRETURN Y CONDITIONS RN ADDRESS ENTRY POINT I ca E G JW DH H D Q G R14 R R15 ACA Xo F F Xo X ASPLM660 1 APPENDIX VI INTERNAL DEBUGGING AIDS ASSIST contains various debugging facilities to be used by any programmer making modifications to the ASSIST source program A macro is provided for dumping registers and storage conditional on flags set at execution time Program tracing may be performed again depending on execution time flag settings Debugging flags may be set by supplying a value to the DEBUG option of the user PARM field during either pass of the assembly or during user program execution This appendix supplies the programmer with the information needed to create a debug version of ASSIST make use of the debug code already in the ASSIST program and possibly write additional debugging code of his own A GENERATION OF DEBUG COD E All debug code currently provided in ASSIST is controlled by a single SET symbol amp SDEBUG as follows amp SDEBUG 1 No debugging code is generated anywhere in ASSIST amp SD
121. ED BY XDECO 5 AN XDECOB IS CREATED FOR EACH XDECO CALL AND CONTAINS THE x XXXXDECO MODULE SAVE WORDS FOR REGS R14 R15 RO AND A WORD FOR THE VALUE TO BE CONVERTED TO DECIMAL XDECOB IS USED ONLY IN CSECT XXXXDECO GENERATION XDECO NAMES XDECO K D gt DSECT XHEXIB CONTROL BLOCK CREATE BY XHEXI AN XHEXIB IS CREATED FOR XHEXI CALL AND CONTAINS THE E XXXXHEXI MODULE SAVE WORDS R14 R15 RO AND A WORD VALUE THAT HAS BEEN CONVERTED XHEXI IS USED ONLY IN CSECT XXXXHEXI GENERATION XHEXI NAMES XHEXI gt DS A XXXX Ra gt DS A ds DSI x Lar DS A oo X Ro X F F Xo F F n EXOB XOB DU E 1 ROL BLOC K CR P CONT IS CREAT SAVE E bi DD N H P XIOBLO HIS BLOCK IS CR XIONR AND CONTAINS SAV n WO I O AR S DSECT ERATION RDS HI Dp Ri ES XSPIEB S BLOCK IN HAN Ir ON USED ON XXXXHI XO a CK CONT WORDS FO Y IN CSI XO D FOR XHEX EAT O CAL R RI ECT B EA FO P ADCON FOR MODE EA TO BE IE RE
122. EE ME ER M NR EC MEL M a E MEL ME So EC sS E Se MACRO SORC READ ASSEMBLER SOURCE CARD BRANCH IF EOF E amp XAREA amp XNUM SEE XIONR MACRO FOR EXPLANATION OR XREAD WRITUP E amp EOF LABEL TO BE BRANCHED TO IF END FILE OCCURS eX USES MACROS XIONR QE CX k k k k k 4 0k X X X amp X X X OX X X XK RR X MACRO SSPIE INTERRUPT COMMUNICATIONS RI TA RO SP c o ec tec co d SCOTT A SMITH FALL 1971 x e AY BE USED BY OS OR DOS SYSTEMS TO SPECIFY THE ADDRESS ai Dy OF AN INTERRUPTION EXIT ROUTINE AND TO SPECIFY THE PROGRAM k Ad INTERRUPT TYPES THAT ARE TO CAUSE THE EXIT ROUTINE TO BE K Pd GIVEN CONTROL 5 KE amp EXIT ABEL TO BE BRANCHED TO FOR THE INTERRUPTION 5 Eid EXIT ADDRESS MAY BE IN A REGISTER m amp TYPES A LIST OF INTERRUPTION TYPES TO CATCH IF THIS G ped IS NOT SPECIFIED A DE
123. ERRORS TOTAL WARNINGS IF MAXIMUM ERRORS IS EXCEEDED ANOTHER LINE IS PRINTED USES DSECTS AVWXTABL S USES MACROS PRNT RETURN SAVE gt ENTRY OUINT1 1 INITIALIZATION ENTRY CALLED BEFORE PASS 1 OUINT1 IS CALLED TO INITIALIZE FLAG VALUES AND COUNTERS x USED IN OUTPUT INCLUDING LISTING CONTROL STATEMENT PAGE COUNT WITHIN PAGE LINE COUNT AND TITLE AREA USES DSECTS AVWXTABL USES MACROS RETURN SAVE gt INSUB OUTLNSA PRINT 1 LINE WITH HEADING IF NEEDED gt ENTRY OUTPUT2 PRINT 1 STATEMENT WITH CODE AS NEEDED ERROR OUTPT2 PRINTS 1 STATEMENT WITH ANY ERROR MESSAGES NEEDED PRINTS TITLES AND HEADINGS WHEN REQUIRED PERFORMS PAGE AND gt INE COUNTING MAINTAINS LISTING CONTROL STATUS AND KEEPS COUNTS OF NUMBER OF STATEMENTS FLAGGED TOTAL ERRORS TOTAL WARNING MESSAGES x ENTRY CONDITIONS RB PRIMARY CALL TYPE CODE 0 SOUMACH MACHINE INSTRUCTIONS i 2 SOUCONS CONSTANTS CNOPS ETC PRINT LOCATION COUNTER CO 4 SOULIST LISTING CONTROL EJECT SPACE PRINT TITLE 6 SOUCOMM COMMENTS ETC DO NOT HAVE LOCATION COUNTER RC AN INFORMATION ADDRESS OF SOME TYPE OBJECT CODE RB 0 2 LINES TO SPACE RB 4 RE 0 PRINT CONTROL CODE BYTE RB 4 RE 2 I E PRINT ut Q TITLE CODE RB 4 RE 4 k x K E x x D INSUB OUXCMINT ENTRY POINT FOR CMP
124. EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RC ADDRESS OF PROPERLY ASSEMBLED CONSTANT ASPLM640 10 gt CSECT CCCONS 1 2 PROCESS CHARACTER TYPE CONSTANTS gt USES DSECTS AVWXTABL USES MACROS RETURN SAVE gt ENTRY CCCONL 1 SCAN RETURN LENGTH DO NOT ASSEMBLE ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT SERINVCN RC NUMBER OF BYTES REQUIRED FOR CONSTANT gt ENTRY CCCON2 2 SCAN ASSEMBLE ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB LENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RC ADDRESS OF PROPERLY ASSEMBLED CONSTANT ASPLM640 11 gt CSECT CDECNS 1 2 PROCESS D am
125. F T IN AREA IBRCB BY IBASM1 AND 1 CNCBLOCK ENTRY FOR EACH DISTINCT LITERAL SEE LTLE CSECT NAMES CNC Lr TERARhS seca ox 3 A COBLK OF CODTL1 RCODBLK CREATED ECOMES PART OF THI TRY DSECT LTOPRS E e GD mt Xx Xx E F DSECT CONBLK CONSTANT DESCRIPTOR CODES BLOCK CODTL1 THIS BLOCK CONTAINS DATA FOR A GIVEN CONSTANT TYPE AND IS USED BY ASSEMBLER SUBR CODTL1 IN SCANNING CONSTANTS AND BUILDING CNCBLOCKS DURING ASSEMBLY PASS 1 HE DATA GIVEN INCLUDES A FLAG BYTE DEFAULT LENGTH 1 LEFT AND RIGHT DELIMITER CHARACTERS REQUIRED FOR THE CONSTANT AND AND MAXIMUM VALUES FOR THE LENGTH 1 OF THE CONSTANT THE FLAG BYTE WITH MODIFICATIONS BECOME E CNCTYPE BYTE 0 HE CNCBLOCK CREATED FOR EACH CONSTANT OPERAND LOCATION TABLE CONTABL OF CSECT CODTL1 GENERATION 1 CALL TO MACRO CONG CREATES A CONBLK ENTRY Wei 4 d Hj H E LS A Xx Xx Xx Xx A Xx Xx F F FX lt H Z H G T xx gt DSE ECONTROL EXECUTION CONTROL BLOCK RE HIS BLOCK CONTAINS ALL DATA REQUIRED TO DESCRIBE A USER ROGRAM TO BE EXECUTED BY THE ASSIST INTERPRETER EXECUT ED USER REGISTER
126. F THSE USUALLY ALL BUT ABOUT 2000 PER DAY ARE OF THE FAST TURNAROUND JOB CATEGORY TYPE ASPLM670 6 IN ADDITION TO THE FAST TURNAROUND MODE OF RUNNING ASSIST 15 OF COURSE AVAILAB E AS A SEPARATE PROGRAM FOR USE WHEN A PROGRAM EXCEEDS THE LIMITS DESC RIBED ABOVE IN GENERAL WE FIND THAT STUDENTS WILL PUT IN MUCH EFFOR THEY CANNOT NORMALLY ASSEMBLE AN TO DO SO BY ASS RNAROUND FACILITIES FOR EXAMPLE RUN A 1200 CARD PROGRAM BUT MANAGE PRS OR RUNNING TWO ASSEMBLIES EACH TO KEEP USING THE FAST TU WITH HALF OF H E LISTING OFF THEN RUNNING THE PROGRAM WITH THE ENTIRE LISTING TURNED POSSIBLE TO RUN D EMBLING IT UNDER C H OFF SAVING ALL RECORDS FOR EXE A PROGRAM THIS SIZE IN THE GIV UTION IT IS THUS STILL N LIMITS Hd O E HAVE ALSO MADE IN ADDI
127. FAULT VALUE OF 1 15 oe IS ASSUMED THE FORM OF THIS OPERAND IS A LIST x ae OF OPERANDS SEPARATED BY COMMAS THE LIST ITSELF NS IS ENCLOSED IN PARENTHESES WITH EACH OPERAND s Mii SPECIFYING A GROUP OF INTERRUPT TYPES TO CATCH E EACH OF HESE IS EITHER A SINGLE INTEGER BETWEEN mE 1 AND 15 OR A PAIR OF INTEGERS BETWEEN 1 15 5 s REPRESENTING AN INCLUSIVE RANGE OF INTERRUPTS se EACH PAIR IS ENCLOSED IN PARENTHESES VU amp ACTION SPECIFIES THE ACTION THIS MACRO IS TO TAKE m z INIT IDENTIFIES THIS AS AN INITIAL SSPIE CALL K SS AND INITIALIZATION IS TO BE PERFORMED A ae CR CREATE A NEW SPIE COMMUNICATION BUT DO ad se NOT REINITIALIZE Du RS REG RESTORE A PREVIOUS SPIE COMMUNICATION Se on LINK USING THE XSPIEBLK AT HE ADDRESS IN THE zd Ped REGISTER ALL OTHER PARAMETERS ARE IGNORED 5 d DEFAULT INIT y amp CE THIS SPECIFIES AN OPTIONAL CALLABLE EXIT WHICH SCH AY RECEIVE TEMPORARY CONTROL IMMEDIATELY FOLLOW ned ING AN INTERRUPT THIS EXIT MUST RETURN Qu REGISTERS 14 15 0 1 ARE DESTROYED BY THIS MACRO Ei KOK k Kk KK Kk kk kk kk Kk Kk kk kk XK XK kk kk Kk Kk Kk Kk Kk Kk kk PK MACRO SSTV STORE VARIABLE LENGTH VALUE FROM REGISTER AS Ed STORE VARIABLE MACRO STORES amp L BYTES FROM LOW ORDER END OE E REGISTER amp RG INTO ADDRESS AD MACR ee e e ee e 6 e ee e BRs 2 2 obo o o XS
128. G TO ENTRY CON NUMBER OF ADDRESS D ED IN ESDID OF TH INITIALIZE ER WAS CURR ER WAS NOT CURR Di E 0 15 ER TABLES ENTER A RI USING VALUE USING FOR GIV IN LOW ORDE UP 0 15 02 24 31 1 255 ASPLM640 8 gt CSECT CACONS 1 2 PROCESS A TYPE ADDRESS CONSTANTS gt USES DSECTS AVWXTABL USES MACROS SCALL RETURN SAVE gt ENTRY CACONI SCAN ACON BUT DO NOT ASSEMBLE VALUE x ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO ILLEGAL CONSTANT SERINVCN CALLS SCANCO NOTE EXPRESSION ENDING IN INSIDE MULTIPLE CONSTANT WILL BE PROCESSED IMPROPERLY SUCH AS DC A B C D THE CHARACTERS C ARE TREATED AS END OF THE ACON gt ENTRY CACON2 1 2 SCAN ACON ASSEMBLE VALUE RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB LENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED EXIT CO
129. HIH lowest used byt When exgenerating statements so far always on fullword boundary AVGENICD will then remain unchanged Macro call is scanned 2 For each statement generated appropriate information is placed starting at the address described below should contain the address of the saved i e th process AVADDHIH should NOT be modified create a dummy first block temporally lowest address of usable information AVGEN2CD 1 and working backwards as At the end of processing for each statement AVGEN2CD last byte of information During this It may also be desirable to in order to allow for symbol table literal table expansion from AVADDHIH downward without running over generated statements ASPLM550 10 3 ERROR HANDLING if the MACTR MNEST or MNEST counters are overrrun during expansion an appropriate message should be generated and placed as a generated statement withe flags SRSBNPNN SRSBMERR or at least SRSBNPNN with latter case used if it is not to be counted as an actual error If storage overflow occurs MEXPND should cancel th ntire nest of genrated code and place an appropriate message as a generated stmt so that the user will be informed It should also set the AVOVERFL bit on in AVTAGS3 s that a message will be printed at the end of the assembly NTRY CONDITIONS REGISTERS RA scan pointer to first cha
130. INITIAL COMMUNICATIONS ARE NEVER MADE AT LEAST ONE SPIE IS EXPANDED ONLY ONE ACTUAL SU CALL IS NECESSARY ALL OTHER SPIE EXPANSIONS JUST MANI PULATE THE CONTROL BLOCKS GENERATED BY THAT EXPANSION NOTE XXXXSPIE CONTAINS THE ONLY OCCURENCES OF THE ACROS SPIE OS OR STXI DOS Lr I rJ tr po Kal G FU 4 UNLESS ERVISOR TU td E HIS ENTRY HANDLES THE UPDATING OF THE POINTER TO THE E XSPIEBLK NTRY CONDITIONS REATED ACTIVE XSPIEBLK OR RESTORED XSPIEBLK RESS NT TIONS EVIOUS ACTIVE XSPIEBLK PREVIOUS XSPIEBLK S EXISTED DH a H lt R1 R14 R15 c d c J c E H H Q o zZ H D PO dE R1 CACA 22 F X X 4 X X Z D td o x Wei FU gt INSUB XXXXSPEX INTERRUPT EXIT ROUTIN E E V ENTRY XXXXSPIN INITIALIZATION OF INTERRUPT COMMUNICATIONS HE ONLY NECESSARY SPIE OS OR STXIT DOS IS EXECUTED HERE TO CATCH ALL INTERRUPTS AND TO REQUEST THE RETURN OF CONTROL TO THE SAME EXIT ROUTINE HANDLER AS SUBSEQUENT SSPIE S RE ISSUED NO SVC IS NEED
131. INKAGE JOHN R MASHEY FEB 1970 V 4 0 EXTENDED SAVE MACRO SEE PSU CC WRITEUP XSAVE XRETURN E FOR DESCRIPTION OF ARGUMENTS FOR THIS MACRO USES MACROS GETMAIN XCHAR XIDENT XLOOK XMUSE XSRNT XSRTR KK XK XK xk KK kk KK X X KK X kk kk k kk k X kk KK k s kk X X MACRO XSNAP EXTENDED SNAP MACRO DEBUGGING DUMPING JOHN R MASHEY FEB 1970 V 4 0 XSNAP IS USED FOR STORING PRINTING OF REGISTERS AND ANY OTHER ADDRESSIBLE AREAS XSNAP HARMS NO REGISTERS CAN BE USED IN ANY NUMBER OF CSECTS IN 1 ASSEMBLY AND PRINTS REGISTERS A EXACTLY AS THEY ARE WHEN THE XSNAP IS CALLED XSNAP ACTION MAY BE MADE CONDITIONAL EITHER AT ASSEMBLY TIME OR ASPLM630 12 SS DURING EXECUTE TIME S USES MACROS XLOOK de Cue u e dude cues EAS Xe Coe E E QR E Oe FO we cA de Co we Ces wk E cues uk Lr E WRITEUP FOR OPERAND DESCRIPTION MACRO XSRNR SAVE RESTORE REGISTERS FOR XSAVE XRETURN JOHN R MASHEY FEB 1970 V 4 0 D BY XSAVE AND XRETURN TO SET UP RATION THIS MACRO IS USE EGISTER SAVING AND RESTO OP IS THE OPCODE TO BE USED Lg Bie EITHE RG IS 1 OPERAND FRO H po LE Q RL OR ST E amp RGS OPERAND USED BY XSAVE AND XRETURN IT IS EITHER 1 REGISTER OR A PAIR OF REGS SEPARA
132. INS 1 OR MORE TXT CARDS AND RD AND FOLLOWS S 360 DECK FORMAT FAIRLY CLOSELY OTE THIS FACILITY IS VERY PRIMITIVE AND THE DECKS CANNO EALLY BE USED FOR ANYTHING BUT INPUT TO ASSIST ERE IS N HER EXTERNAL SYMBOL DICTIONARY NOR RELOCATION I D E EN Fe Lr Lr g D bi Q A SL LI 0 xQ D Z CJ E Q H pi TU E UJ H gt Fj no T a D P I RY PRODUC LSO SINCE T NTIRE USER PROGRAM IS OBJECT CA E E UCED R SPACE CONTAINING ONLY DS IN SO ES THIS COU CAUSE HUGE DECKS TO BE IF A BETTER SETUP 15 DESIRED ASSEMBLER MODULE UTOPRS E CHANGED TO PRODUCE SMALLER DECKS ALTHOUGH RLD ENTRIES TILL BE DIFFICULT TO PRODUCE NOTE THE MOST LIKELY USE FOR THIS OPTION IS TO PRODUCE OBJECT DECKS TO BE USED AS UTILITY PROGRAMS FROM RJE TERMINALS ENTRY CONDITIONS R12 RAT ASSEMBLER CONTROL TABLE AVWXTABL ES MACROS SPNCH SRETURN SAV UU Ww uy mH E AHO O Ein m un zo Wei O RO zo D DO G Wei r A D Q Kal REGISTER USAGE FOR AODECK x kk x ok X C
133. ITER STOPPING SCAN OR ERROR RB 0 gt EXPRESSION GOOD NONZERO VALUE gt ERROR CODE RC VALUE OF EXPRESSION IF IT WAS GOOD LEI RA Lr LT IG RD 0 gt EXPRESSION WAS AN ABSOLUTE EXPRESSION ESDID FOR A RELOCATABLE EXPRESSION 1 255 ENGTH ATTRIBUTE 1 OF EXPRESSION CALLS SDBCDX SYFIND USES DSECTS AVWXTABL EVCTDSCT RCODBLK RSBLOCK SYMSECT USES MACROS SCALL GLOC SRETURN SAVE EVCG I NOTE SEE IBM PLM Y26 3700 0 PP 45 47 EVALUT SOMEWHAT RESEMBLES IEUF7V EXPRESSION EVALUATION ROUTINE NOTE EVALUT HAS 1 LESS STATE SETTING SINCE IEUF7V COND 0 IS UNNEEDED OR X OX X tt X X X F tt 4 po T Il ASPLM640 22 T CSECT EXECUT 3 INTERPRETER SECTION a Al meh Tet Sa aes A EXECUT PERFORMS ALL 360 INSTRUCTION SIMULATION DURING NTERPRETIVE EXECUTION OF THE USER PROGRAM ALL CONTROL ALUES FOR THIS MODULE ARE CONTAINED IN DSECT ECONTROL WHICH S ED TO EXECUT BY THE CALLING PROGRAM THE INSTRUCTION ET SIMULATED INCLUDES THE FOLLOWING STANDARD INSTRUCTION SET DECIMAL INSTRUCTION SE IF PRESENT ON MACHIN FLOATING POINT INSTRUCTIONS OPTIONAL X D
134. ITIONS ET FLAG ER EXIT CON ROR FOR A LABEL ONDITIONS EXIT CONDIT E RN SAVE ROR AT SCAN DITIONS URN SSAVE SCOF ASPLM640 19 ING ROUTIN E ERROR ERRLAB K IONS SEE ECT ERRORS POINTER POSITION CSECT ERRORS D D S P ASPLM640 20 2 Q H T gt CSE ESDOPRS 1 2 EXTERNAL SYMBOL DICTIONARY amp ESDID OPERATIONS s THIS MODULE HANDLES ALL FLAGGING AND CHECKING OF SECTION AND EXTERNAL ATTRIBUTES INCLUDING FLAGGING SYMBOL TABLE ENTRIES AND MANIPULATING LOCATION COUNTERS AND SECTION IDS USES DSECTS AVWXTABL SYSMSECT Xx V Es Es H 9 K n Q n EC DECLARE A CONTROL SECTION OR DUMMY SECTION ENTRY CONDITIONS po gt START RC VALUE TO BE USED TO SET LOCATION COUNTER START ONLY RB 4 T CONDITIONS RB 0 gt NO ERRORS 0 gt AN ERROR CODE TO BE SET RB NONZERO VALUE ERROR CODE SERDPCSE AVCESDID IS INCREMENTED BY 1 OR 2 FOR NEXT VALUE OF REQUIRED TYPE I E CSECTS HAVE EVEN VALUES DSECTS ODD ONES LOCATION COUNTERS ARE MODIFIED AVLOCHIH AVLOCNTR USES MACROS SALIGR AL2 SGLOC SRETURN SAVE SLOC
135. K Kk Kk kk kk kk XK XK XK Kk Kk k Kk Kk Kk Kk XK Kk Kk Kk kk A ok F F F X Xo F xoxo ox E RESYMS CD s ED IF NOT TABL ONLY ASPLM630 10 MACRO XDECI EXTENDED DECIMAL INPUT CONVERSION EXTENDED DECIMAL INPUT MACRO ENABLES PROGRAMS RITTEN FOR ASSIS O BE RUN UNDER 057 360 DIRECTLY SES MODULE XXXXDECI TO SCAN DECIMAL STRING BEGINNING AT ADDRESS CONVERT ITS VALUE INTO REGISTER amp REG AND SET GISTER RI AS SCAN POINTI HE DELIMITER FOLLOWING TH TRING OF DECI DIGITS THE CONDITION CODE IS SET BY THE ALUE IN amp REG NLESS AN ERROR OCCURRS IN WHICH CASE CC 3 EE ASSIST USER MANUAL FOR USAGE INSTRUCTIONS Ad kk ko SAO We RT e de RT skS ce RR KOK kk Kk Kk k Kk Kk Kk Kk Kk k Kk kk k H A A Xx A H H H H H Qi om D D Se T H GW ds 7 td H GI A A A X X CA F ox H MACRO XDECO EXTENDED DECIMAL OUTPUT CONVERSION x USES DULE XXXXDECO TO CONVERT VALUE IN REGISTER amp REG TO AN EDITED 12 BYTE FIELD WITH SIGN AT LOCATION amp ADDRESS s EXTENDED DECI OUTPUT MACRO ENABLES PROGRAMS
136. K XK XK XK XK XK xk XxX XxX xk ko xk X ASPLM630 11 MACRO XIONR INNER MACRO SREAD PNCH PRNT SORC E ALSO XGET XPUT GET ANDSPUT JOHN R MASHEY FEB 1970 V 4 0 XIONR IS USED BY XIOPAK MACROS XREAD XPRNT XPNCH TO SET UP THE REQUIRED CODE FOR CALLING THEIR RESPECTIVE SUBROUTINES E ARGUMENTS XNAME HE NAME OF THE I O ROUTINE TO BE CALLED XNU HE LENGTH OF XAREA TO BE PRINTED PUNCHED ETC XAREA HE AREA ON WHICH I O OPERATION TO BE PERFORMED MAY BE SPECIFIED BY 0 OR RO E XDEFT DEFAULT VALUE OF XNUM TO BE USED IF IT IS OMITTED KOK Ok kk kk kk XK k kk XK XK XK XK k XK XK XK XK XK XK k XK kk kk kk kk MACRO XLOOK FIND POSITION OF ELEMENT IN LIST JOHN R MASHEY FEB 1970 V 4 0
137. LAG ACCORDINGLY D gt ENTRY XRINT1 PASS ONE INITIALIAZATION 2 010 dd de et Xx F Xx THIS IS CALLED FROM MPCONO ONLY ONCE MODULE DESCRIPTION INITIALIZES AVXRLNCT HE ADDITIONAL LINE COUNTER TO 1 AND AVXRCNT COUNTER FOR THE NUMBER OF REFERENCES FOUND TO 0 ASPLM580 2 gt ENTRY XRINT2 PASS TWO ENTTTALIZATION eee ee E Eet A Sa THIS IS CALLED FROM MPCONO ONLY ONCE ha MODULE DESCRIPTION Es ALLOCATES A BLOCK OF SPACE USING SALLOCH WHERE THE SIZE Ts IS AVXRCNT XRSIZE IT SET AVXRLAVS TO THE ADDRESS OF HE T BEGINNING OF THE BLOCK OR FIRST FREE NODE AS RETURNED BY EN SALLOCH IT ALSO SETS AVXRHEAD THE HEADER POINTING TO THE fs FIRST ENTRY IN THE TREE EQUAL TO 0 ENTRY XRSCAN CARD SCANNING ROUTINE nine ess Keele THIS IS CALLED FROM MOCON1 AND MTCON2 TO SCANN THE XREF CARD ENTRY CONDITIONS RA TO BEGIN XREF PARM SCAN RD IDX TO SET FLAGS 0 PASS 1 8 PASS 2 ODULE DESCRIPTION CHECK TO SEE WHICH PASS IT IS IN DEPENDING ON WHICH PASS IT IS THE XREF CARD IS SCANNED AND THE FLAGS SET IF IT IS
138. LOCK EBLK RESULTING FROM THE SOURCE PROGRAM AND PLACING THEM ING PASS 1 SO THAT THE OBJECT CODE CAN BE OVERLAID INTO 1 SAME AREA I E IN NO CASE WILL THE RECORDS BLOCKS FOR A SOURCE STATEMENT BE PLACED NEARER THE BEGINNING OF THE AREA THAN THE OBJECT CODE RESULTING FROM THE STATEMENT NORMALL SOURCE OF THI RSCBL DA ti J ZU UO J lt TU Q O DO 7 CODE FOR THIS MODULE DEPENDS HEAVILY ON amp SDISKU WHICH CAN ALLOW UTOPRS TO USE DISK FOR INTERMEDIATE STORAGE K amp SDISKU 0 gt EVERYTHING IN CORE NORMAL ASSIST amp SDISKU 1 gt USER HAS INCROEE DISK OPTION DISKU NODISKU amp SDISKU 2 gt ALWAYS GO TO DISK NO INCORE CODE EXISTS USES MACROS SDISK SRETURN SAVE CALLS XXXXDKOP XXXXDKRD XXXXDKE1 XXXXDKWT USES DSECTS AVWXTABL A OX ACA F F AECA CACA X F Xo TZ HF OF gt ENTRY UTENDI 1 END PASS 1 PREPARE FOR PASS 2 OF ASSEMBLER Ze UTEND1 RESETS CORE POINTERS AND CALCULATES RELOCATION FACTOR
139. M GBLB 0 machine on floating point o perform extended floating point he hardware to perform them which ASSIST is to run does not have instructions set 1 machine do The only part of the ASSIST as instructions is csect CDECNS Float section could be rewritten using on es have floating point insructions sembler using floating point ing point constant processor This ly fixed point operations depending on the value of amp SFLOTM for machines not having floating point but with users wanting to use D and E c amp SFLOTMX GBLB 0 machine on onstants which ASSIST is to run does not have extended floating point instruction set 1 machine do s hav xtended floating point instructions amp SFREE GBLA default value of FREE parameter should be set to the minimum value which releases enough space for operating system for buffers and modules to support whatever i o devices are allowed amp SGENDAT GBLC date given version of ASSIST generated in form mo dy yr Becomes part of ASSIST header line amp SHEXI GBLB 0 ASSIST interpreter EXECUT will not execute the XHEXI instruction 1 The XHEXI instruction will be executed amp SHEXO GBLB 0 ASSIST interpreter EXECUT will not execute the XHEXO instruction amp SIDF GBLA default and maximum possible values of I option amp SIMX If desired
140. MAL DIGIT ASPLM641 67 gt CSECT XXXXHEXOEXTENDED HEXADECIMAL OUTPUT CONVERSION MODULE D de XXXXHEXO IS CALLED BY MACRO XHEXO TO CONVERT A REGISTER VALUE TO EDITED HEXADECIMAL IN AN 8 BYTE AREA A ENTRY CONDITIONS DDRESS OF SAVEAREA FOR CALLING MACRO NTRY POINT ADDRESS RO A ESS OF AREA WHERE CONVERTE STRING GOI REGIST IN XHEXOREG EXIT CONDITIONS 8 BYTE CONVERTED NUMB ARGUMENT USES DSECT XHEXOB NAMES XXHO R14 O E E CO el lt pi c xj R OF REGISTER ARGUMENT STORED AT ADDRESS CACA o ACA X Xo F F F xXx ASPLM641 68 CSECT XXXXIOCO ASSIST INPUT OUTPUT CONTROL PROCESSING XXXXIOCO CONTAINS ALL ACTUAL INPUT OUTPUT OPERATIONS XXXXINIT AND XXXXFINI ARE USUALLY CALLED ONCE EACH TO PERFORM INITIALIZATION AND TERMINATION RESPECTIVELY HE ENTRIES XXXXSORC XXXXREAD XXXXPNCH XXXXPRNT ARE CALL TO READ SOURCE CARDS READ DATA CARDS PUNCH CARDS OR PRINT LINES DURING EXECUTION THE DCB S FOR READ AND PNCH ARE 0 ED UNLESS THEY ARE USED AND IF USED WITHOUT WORKABLE OPI IHEY DEFAULT BACK TO SORC AND PRNT RESPECTIVELY THESE 4 ENTIRES SHARE A COMMON BASE REGISTER R13 ALSO 8 SAV A U C A
141. MARY OF POSSIBLE RETURN CODES FOR THE CASES CASE 0 4 8 T NORMAL NO ORDER ERROR 2 NORMAL NO ORDER ERROR 3 NORMAL NORMAL AIF AGO ORDER ERROR OTHER ERROR 4 NO NORMAL NO GENERAL NOTES ON MACROI overlaid with object code ASPLM550 5 MACRO1 should allocate space when needed from the low end of the dynamic area using SALLOCL so that this space may eventually be When scanning a macro definition opcodes may be discovered which are not defined These should be added to the list of macro names but marked as not yet defined It is expected that they will either turn up later in the user program or else if SYSLIB option exists be probably found in the library When a macro prototype is scanned the name of the macro might already be in the macro table so that a new block should not be gotten for the macro but he existing one used instead Doubl of a macro occurs only when a prototype is found actually defined not just present in the table and it is al le defn lready ASPLM550 6 INDIVIDUAL CASES FOR CALLING MACRO1 1 MACRO STATEMENT FOUND IN INPUT MACRO1 identifies the opcode as MACRO by checking the OPCTYPE flag in the OPCODTB passed to it It should check to make sure that MACRO is allowed at that point If not it should return immediately noting that the statement is out of order Assuming the MACRO statement is accepted it should be printed via OUT
142. MP D which are all handled as in trcuctions under 057 360 assembl since there is no other way to S value affects the opcode tabl CMOP2 and execution code in SE e allowed only ddnames d in XDDTABL G lue used by XSRTR macro for flag s SDBG and XSRTR and APPENDIX ion ed for identification at an entry section Has value in which or value This is set See macro SSAVE and none of them do of amp SDEBUG anations nd Lu snaps generated by SAV ntry and exit points code is generated at all a trace m SNAP GP registers are printed essage is printed with message also Appendix VI for a full explanation of usage ASPLM620 1 APPENDIX III DUMMY SECTIONS AND TABLES 01 31 73 2 1 A AJOBCON 03440100 2 AOBJCARD 05098030 2 APCBLK 04552200 2 AVWXTABL 02878020 2 CNCBLOCK 02721000 3 CONBLK 10366100 3 ECONTROL 03572100 3 ECSTACKD 03712200 3 ERCOMPCD 03420100 4 EVCTDSCT 11486100 4 ICBLOCK 02663100 4 IHADCB 07552100 4 TBASETB 16288050 4 TLENTRY 16310100 4 ACLIB 02876250 5 CBOPRST 41335000 5 CBSTRMS 41250000 5 CBSU 41025000 5 CGLBDCT 40785000 5 CLCLDPV 40875000 5 COPQUA 41160000 5 CPARENT 40940000 5 CPAROPR 41500000 5 CPARSUB 41570000 5 CSEQ 41095000 5 SGBLOCK 02877300 5 XPNTSAV 41385000 5 OPCODTB 02269100 5 OUCMPRSD 18748060 6 OUSTMTI 1
143. NCHED OR RPINTED cc 1 RECORD LIMIT HAS BEEN EXCEEDED CARD PUNCHED ANYWAY USES DSECTS AJOBCON IHADCB XIOBLOCK USES MACROS OPEN PUT t FJ ENTRY XXXXPRNT PRINT ONE LINE OF OUTPUT CALLED BY SPRNT MACRO TO PRINT 1 LINE USING DDNAME FT06F001 NTRY CONDITIONS SAME AS ENTRY XXXXREAD XIT CONDITIONS SAME AS XXXXPNCH USES DSECTS AJOBCON IHADCB XIOBLOCK USES MACROS PUT ENTRY XXXXR 0 EAD 1 CARD AT USER EXECUTION TIME ER DDNAME FTO5F001 IF NOT ALREADY OPEN OR ADER DDNA FTOOF001 TO GET 1 CARD USING THI COMMON CODE SECTION XXIOGET IF NODATA WAS SPECIFIED IN T ELD NO OPEN WILL BE DONE FOR FTO5F001 BUT SYSIN WILL BE US TN UU L i Om Qij UO ay Gi bi LI E T iD INSTEAD CALLED BY SREAD MACRO E 15 RO HERE DATA TO BE READ WRITTEN R14 REATED BY THE CALLING XIONR MACRO R15 ENTRY POINT ADDRESS E ONS 0 E 1 CC ETURN CARD WAS READ AND TRANSFERRED TO USER ENDFILE ON READER IF ASSIST JCL SAVED IN AJOBCON ET OPEN
144. NDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE ERROR CODE FROM EVALUT SERRELOC IF SECTION ID IS A DSECT WHICH IS NOT ALLOWED RC ADDRESS OF PROPERLY ASSEMBLED CONSTANT RD ESDID OF CONSTANT IF 0 gt ABSOLUTE EXPRESSION CALLS EVALUT oo Xx Xx F d n Re Lu ASPLM640 9 gt CSECT CBCONS 1 2 PROCESS BINARY CONSTANTS USES DSECTS AVWXTABL USES MACROS SRETURN SAVE gt ENTRY CBCONL 1 SCAN B CONSTANT DO NOT ASSEMBLE ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT SERINVCN RC NUMBER OF BYTES REQUIRED FOR CONSTANT x gt ENTRY CBCON2 1 2 ASSEMBLE BINARY CONSTANT x ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB ENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED
145. O INITIA PIE SK UB MANNE ZZ TZ ZZ TZ FF Xo Xo Ro Xo F Xx 5 p R L THE PCON0 TS OG A SS RAM A s ROUTINI R 0 I AIN IZES AVWXTABL 0 TO INT ONLY ES RE ERC EPT HAVE PROGRAM CONTROL INIT SI DS ECT VALU ES FO SOME TYP ES rJ o T WHOLE ASPLM641 UP TABLE ASSE OF INTE FIXED OVE RELOW INT D RE PCONO IS THE ASS EMB EN RE URNS FI LE RS TO EN R12 RAT AVAJOBP CAL CAL CAL US US RY CONDI T AVECONP HE ON USING Y IS CONTR Y CSE A QUIRED LIST PLETE CO OL OF FOR AN ASSEMBLY POINTE RS TO A IT D E O THI ASSIST PRIN VWXTABL AJOBCON ALT TIONS CT HOU T IN TH G I ASSE BI H OTHERS USE RRUPTS RPTS IN A TABLI DDRESS CONSTNATS S VARIOUS STA ONITOR ER WHIC EQU FLAGS FRO CSE CT INI IALIZI BEEN iS ESIN iS LTEND S OU ES DSE ES MAC Lr CTS Lr ROS Lya UTEND1 BRINI ND2 SYEND2 UTEND2 AVWXTABL SCAL SAL2 1 0P INITIALI ZED D BY ASSIST CONTROL IF NEED INI bg T MTCON2 SPRNT
146. OCATION COUNTER IS PROPERLY ALIGNED k ko ck k ck XK XK Ck ck XK XK kk kk kk ok ck ck XK ck ck XK k kk xk xk xk xk kk MACRO SDALLOCH RETURN CORE HIGH FREEAREA IN ASSEMBLER NOTE THIS IS A STACK POP TO BE USED WITH SALLOCH PUSH FOR FUTURE USE IN MACRO ASSEMBLER AS OF 8 9 70 IT IS UNUSED amp R IS A WORK REGISTER WHICH WILL BE DESTROYED Q amp L REPRESENTS THE LENGTH IF 1ST CHAR IS WILL BE TAKEN AS REGISTER CONTAINING THE LENGTH OTHER WISE TO Mia BE AN ACTUAL LENGTH TO BE ADDED X ko ck ck XK XK Ck XK ck XK XK XK XK XK XK XxX xk XK XK XK XK XK ck XK XK kk xk XxX xk xk kk MACRO SDBG SET TRACE DEBUGGING SET VARIABLES FOR ASM Mii amp D HEX FLAG BYTE FOR USE IN TM INSTRUCTION Q amp T IS TRACE MODE FOR AN XSNAP NO SNAP Z SEE MACROS SRETURN SSAVE XSRTR FOR GENERATION OF TRACE CODE ON ROUTINE ENTRY EXIT SEE ALSO ASSIST PROGRAM LOGIC MANUAL PES k ko ck ck XK XK Ck Ck XK XK XK kk kk XxX XK ck ck XK XK XK kk kk XxX XxX xk XxX ko Xx X MACRO SDISK CALL DISK UTILITY x X ox x SDISK CALLS MACRO XIONR TO SET UP A BRANCH TO A DISK UTILITY ROUTINE USES MACRO XIONR X XK ck kk Ck XK XK XK XK XK XK XK XK XK XxX ck XK XK XK XK XK ck kk kk xk XxX xk XxX kk MACRO SERCGN GENERATE COMPLETION CODE BLOCK FOR XXXXSNAP Mia EACH CALL CREATES 1 ENTRY DESCRIBED BY DSECT ERCOMPCD amp CODE CHARACTER VALUE OF ERROR COD
147. ODULE JOHN R MASHEY 09 01 71 THE TWO ENTRIES OF AOBJDK ARE USED TO LOAD OR PUNCH OBJECT DECKS WHICH ARE SUBSETS OF NORMAL S 360 DECKS THE TWO ENTRIES MAY OR MAY NOT EXIST DEPENDING ON FLAGS amp DECK AND amp SOBJIN USES DSECTS AOBJCARD AVWXTABL USES MACROS SRETURN SSAVE E T x A F F gt INSUB AOBDUMP DUMP CURRENT USER CARDIMAG Ed INSUB AOBHEXCO CONVERT VALUES TO EDITED HEXADECIMAL gt ENTRY AOBJIN LOAD OBJECT DECK ENTRY CONDITIONS R12 RAT ASSEMBLER CONTROL TABLE AVWXTABL EXIT CONDITIONS AVRADL AVRADH AVRELOC AVFENTER AVLOCLOW AVLOCHIH ARE SET UP AS THEY WOULD HAVE BEEN HAD THE PROGRAM BEEN ASSEMBLED AVTAGS1 IS FLAGGED WITH AJNLOAD IF SOME ERROR OCCURRED NAMES AOB USES MACROS SPRNT SRETURN SSAVE SSORC XSNAP T Lr mW box oo ss s INSUB AOBPRINT PRINT 1 LINE OF OUTPUT MESSAG LT V ENTRY AODECK PUNCH OBJECT DECK FOLLOWING ASSE AODECK IS CALLED FOLLOWING A SUCCESSFUL ASS IF THE DECK OPTION IS SPECIFIED AODECK IS CALLED FOLLOWING CCESSFULL ASSEMBLY TO PUNCH THE USER PROGRAM OUT IN OBJECT FORM THE DECK PUNCHED CONTA
148. OF OUTPT2 TO ACCESS PORTIONS Se OF INCOMING STATEMENTS TO BE SAVED X NAMES OUST DSECT RCODBLK RECORD CODE BLOCK VARIABLE DATA FOR STMT N RCODBLK IS CREATED BY EITHER IAMOP1 OR IBASM1 DURING SEMBLER PASS 1 FOR EVERY STATEMENT WITH AN ACCEPTABLE ERATION CODE IT CONTAINS VARI E INFORMATION WHICH PENDS ON THE TYPE OF INSTRUCTION AND MAY INCLUDE HEX AND MASKS ALIGNMENT INFORMATION LITERAL SYMBOL ADDRESSES AND 1 10 CNCBLOCKS FOR DC E MOST COMMON LENGTHS ARE 8 AND 12 ATED IN AREA IARCB IN IAMOP1 OR IBRCB IN IBASM1 STORED IN LOW AREA AFTER ITS RSBLOCK BY UTPUTI E INSTRUCTIONS MOVED TO ICRCB IN ICMOP2 IN PASS 2 Gi EH HINE CODE DDRESSES LH E im O Gq A A A X FF X Xo F xXx DSE REBLK LOCATION AV ED INTO LOW AR SCAN POINTE EBLK AVWXTAB EA FOL ASPLM620 PAIR BLOCK E ONLY GET2 BAC K INTO AVRE EXIST FOR STAT xo xo A F xx gt DSE 7 ERRTAG SUBR ESP
149. ONDING RCODBLK MOV EA IN AVWXTABL D S HAVING 1 OR MORE ERRORS OR ED URING PASS 2 LOCA EH PIRST SI xk F ACA ACA TZ TZ Ro X F F F F xo ox DSI ECTION OF DS ECT REMONI ECT RESYMBLK A A X A X Xo F F xx gt DSI BLOCKS LOCATION CR AND 1 TO RECSMAX TION CS RSBLOCK RCE CARD IMAGES FLAGS FO ONLY RECORD BLOCK N ECT RFSYMS Bod R S RECORD SOURCE i RAGGI RSBLOCK IS CREATED FOR CONTAINS DATA COMMON TO ENT EATED IN AVRSBLOC ck Xx A A Xo Xo x ODIFICATION BY FREEAREA BY UTPUT1 ER RECORD ESSARY FOR RCE STATEMI ERRTAG E BY INCARD ED TO LOW EN WARNING ESSAGES ATTACH ES REB RECORBLK REPLACE REPLACE PAIR THIS
150. PASS ONE THE CARD IS SCANNED FOR SD Zb EE NOT THERE AVXRFLAG IS NOT CHANGED IF IT IS CHECK FOR EGAL VALUES OF 0 OR 1 IF IT IS NONE OF THESE THREE THE STATEMENT IS FLAGGED WITH A SYNTAX ERROR IF IT IS A EGAL VALUE THE AVXRFLAG IS SET ACCORDINGLY IF IT IS PASS TWO THE CARD IS SCANNED SR AND IS PROCESSED SIMILARLY TO SD ABOVE ACA ACA F ACA KE F Xo Xo Xo X gt CSECT XRCOLL COLLECTION ROUTINE S eae eegne EE ee E te THIS IS CALLED BY SYFIND AFTER IT IS FOUND THAT THE SYMBOL IS DEFINED AND THE REFERENCE IS TO BE COLLECTED ENTRY CONDITIONS RA HAS THE ADDRESS OF HE SYMBOL IN TH SYMBOL TABLE G ODULE DESCRIPTION AVXRHEAD HAS THE ADDRESS OF AVXRLAVS HAS THE ADDRESS OF E FIRST NODE IN THE TREE E FIRST AVAILABEL FREE NODE a HE FOLLOWING ALGORITHM IS FROM THE ART OF COMPU PROGRAMMING VOL 1 FUNDAMENTAL ALGORITHMS BY DONAL CHECK HEADER AVXRHEAD FOR EMPTY TREE EXECUTE INSUB XRCLAVS TO GET FREE NODE FOR PROCESSIN XRCLAVS INSERTS SYMBOL AND INITIALIZES LINKS IN NODES EFT LINK 0 RIGHT KINK 1 ODD DISPLACEMENT IMPOSSIBLE NEGA SIMPLIFY CHECKS IN XRPRNT ROUTIN ERMINE WHETHER OR NOT A NODE HAS ALRE HE PRESENT SYMBOL BY COMPARING THE ADDRE
151. PRESEN CA LED ONI THIS ISO IE FRO COD amp SR A U E 15 EPL 2 I S Hi D NT NAMES AND EY CAN BE CHANGED PROGRAM WITH R ADCONS IN AVWXTABL AND T T LISTS ALL O CODE IN US bi D TO HE USER TO TS A THE CAL RI amp CSECT ELE SUBR OUTI NE FOLO WED BY REPLACED A A HALFWORD ES WHICH THIS BUT CSEC CAN A WIT ISO ED PROGRA PRESENT ONLY IF amp WITH amp CSECT BEI CHECK THE REPL 2 IT NG ONE WHICH CALL OTHE H TH E NUMBER R ROUTINES OF DIFFERENT IS PERMITTED TO CALL OFF SET VA UES SEC ION OF ENTRIES OFFS ET RO TO VALU HAT E SAVE CSE I O NAME NAME S RF S RI DSECT RFSY USES MACROS BLK IS USI SAL2 RFSGN NOTE S TO RI amp CSI IF A CSI REA CAN TO THE ELEMENTS CAL 1 REMONI OB IN SI ECT F ECT CAN CA ROM THE ECTION 3 IF amp RE RFSYMBLK IN THE 2ND TAINS AN BELONGING jb NO OTH ER THE PL 2 ED TO D ESCRIBE EACH ENTRY IN SECTS 1
152. PSE E LOCATION ALL S HAVI ED UCE THE S IZE OF X EGAL ESE SEL SS D Kal SRI Gl ETURN SAV 1 OR CO GREATE SHOWS DO ED TH NG NO ANY UP NI INSTRUCTION ASPLM641 60 CSECT VWXTABL MAIN ASSEMBLER COMMUNICATION TABLE s THIS IS ACTUAL TABLE THAT AVWXTABL DSECT CORREPSONDS TO SEE AVWXTABL COMMENTS FOR DESCRIPTION USES MACROS WCONG NAMES X DOW pt Xx xXx ASPLM641 61 gt CSECT XDDGET ENTRY XDDPUT k k k k xo Xx X A X X XGET XPUT MONITOR USES TABLE XDDTABDE TO CONTROL I O THROUGH USER CALLS TO XGET amp XPUT CALLS SREAD SPRNT PNCH XGET XPUT MACROES E E x THE MONITOR WILL NOT PERMIT A USER TO XGET A SREAD FILE INSTEAD THE MONITOR WILL CALL SREAD AND THE USER WILL NOT KNOW ABOUT IT X X X k X X X X X X E X k E X X k X X X X X X A AC A X X X 2 ASPLM641 62 gt CSECT XDDTABLE zs K A Sr SS A e kk Je Se U e ARR K Ze e P i CONTAINS INFORMATION ON EACH FILE FOR THE MONITOR E Ck Ck Ck Ok Ck Ok Ck Ck Ck Ck k k k k k ko k k k k k k k k k k k k k k k k k k X
153. PT2 and the prototype statement obtained via INCARD and Scanned Three cases exist for the name of the macro a It may not have been encountered before at all In this case it should be added to the list of macros marked as DEFINED and the appropriate control block filled in as scanning the definition continues b It may have been previously defined An error message should be issued and rest of the macro scanned C It may be present in the macro list but NOT defined This would occur when an undefined opcode is encountered during a previous macro definition and so is added to the list but marked undefined The control block for the macro should be then marked defined and processing continued as though the name had not yet been seen After scanning the prototype and printing it via OUTPT2 MACRO1 should call INCARD repeatedly to obtailthe rest of the definition allocating storage for control blocks as needed from dynamic low using SALLOCL Note when calling OUTPT2 the following setup is appropriate RB SOUCOMM notes that no location counter etc is needed RSBFLAG actual statements do not modify special error messages SRSBNPNN SRSBMERR rj 2 MACRO FROM SYSLIB This situation is handled exactly as is a macro from the input stream The only difference is that the PRINT is turned OFF by the macro library processor so that the macro definitions do not get printed by OUTPT2 ASPLM
154. R BEYOND CONSTANT SAME AS ENTRY IF ERROR O IF CONSTANT WAS LEGAL SER MSSGE IF ILLEGAL TERM RC VALUE OF CONSTANT 0 TO 2 31 1 I RB USES DSECTS AVWXTABL USES MACROS SSAVE SR EGISTER USAGE 12 BASE REG AT MAIN TABLE DSECT USING D SCAN POINTER Ea URN R R R R NAMES MCD cx Ob OR OX O6 OX F F FF OX OR FF F X Xo Ro Xo Xo KF X RR dM OK KS AA E e ke ke Je e zk e ere e Ze Je Je RM KOOK 2 DD D DP CHE X Xo x F x RNa mS OSE ACA OX 0 E KE F CACA OX TZ ZZ FF F Ro X Ro X 4 Xo Xx gt gt gt CT MCGNCD CONVERTS STRING OF BSU IN ONE OP FORM ONE OPS ARE QUADRUP OPRNDS AND RESULT FIELD ADDRESS O IS IN AVMCRINS GEERATED CODE IS PO FIELD IN MACLIB BSU STRING LOCATED ENTRY CONDITIONS RC OF CURRENT MACLIB ENTRY USES MACROS SCALL SSAVE SR USES DSECTS AVWXTABL ACLIB MCSEQ CALLS MACFND ERRTAG REGISTER USAGE WORK REGS RO R1 RA RB RC RE RT BYTE REG R2 RW BASE REG FOR BSU RX BASE REG FOR OPRND STACK RY BASE REG FOR OPRTR STACK RZ BASE REG FOR ONE OP ENTRY
155. RAT BASE REG FOR MAIN TABLE Rl BASE REG FOR MACLIB RD UNUSED Xx Xx Xx Xx Xx Xx xk INSUB INSUB INSUB MC MC MC POKS i o Ze SS Ro vk GNALLO MVTRMS SEOSCN S TO INTI AS ERNAL LM641 CODE LE FC H OP RTR ENT G IN IN AV Wo Ze ce CAS ck CAO AS KK KK O BY WRK1 ETURN SSCOF SCPT SALLOCL SALLOCH CBSU MCBSTRMS MCBOPRST MCOPQUAD ENERATED INST CCODLNK tNNNNANNNANNNMN x x x x ox x ALLOCATE LOW CORE E ES S CREATE ONE BINARY ONE OP S ENTER SEO SYMBOL IN DICT S ASPLM641 39 CSECT MCGTST THIS ROUTINE TAKES A STRING AS DELINEATED BY BEGINNING AND END POINTERS OBTAINS STORAGE DYNAMICALLY AND OVES THE STING IF INSIDE QUOTES DOUBLE QUOTES WILL BE CRUNCHED TO ONE QUOTE I ENTRY CONDITIONS RA OF FIRST CAHRACTER OF STRING RB OF DELIMITER PAST STRING EXIT CONDITIONS RA OF DELIMITER PAST STRING RC OF STRING IN NEW STORAGE RD LENGTH OF STRING USES MACROS SSAVE SRETURN SALLOCL USES DSECTS AVWXTABL LT REGISTER USAGE RAT MAIN TABLE USING RA RB RC RD AS IN ENTR EXIT CONDITIONS RE R1 R3 WORK REGISTERS KKK KK Kk XK XK Kk Kk XK Kk Kk Kk K
156. RD CODE BLOCK RCODBLK FOR THE STATEMENT RCODBLK HAS ALL VALUES FILLED IN EXCEPT RCLOC IARCLOC GTH OF CODE TO BE ADDED AFTER ALIGNMENT DONE ALLS ERRTAG LTENT1 SCANEQ SES DSECTS AVWXTABL OPCODTB SES MACROS CALL SCKALN GLOC SLTENT1 SRETURN SAVE SLOC E H b H Pp O H Z z po K RA RC Q D z I RESS OF 1ST CHARACTER OF OPERAND FIELD CONTROL TABLE ENTRY FOR OPCODE USED m UO I RB RC RD I q q OFE de v O t gt m k o ok F FF F TZ TZ X Ro Xo o Xo xoxo sS ASPLM640 24 gt CSECT IBASMI 1 ASSEMBLER INSTRUCTIONS PASS 1 A THIS MODULE IS 1 OF THE 2 PASS 1 LEVEL 2 ROUTINES OF THE ASSIST ASSEMBLER IT PERFORMS ALL PROCESSING FOR ASSEMBLER INSTRUCTIONS DURING PASS 1 INCLUDING SCANNING MODIFYING LOCATION COUNTERS AND BUILDING AN RCODBLK FOR THE STMT ENTRY CONDITIONS RA S
157. RIBED LATER HIS ROUTINE CONTROLS ALL THE CROSS REFERENCE FACILITY IF IT IS TO E GENERATED HE FIRST PASS THE FLAGS AND LOCATION COUNTER ARE NITIALIZED XRINTI SPACE IS ALLOCATED FOR THE CROSS REFERENCE NTRIES AND NECESSARY FLAGS ARE SET FOR THE SECOND PASS XRINT2 HE XREF CARD WILL BE SCANNED BY XRSCAN LT J F4 UJ H H XRINT1 PAS un ONE INITIALIZATION CALLED FROM MPCONO 1 INITIALIZE THE ADDITIONAL LOCATION COUNTER AVXRLNCN TO 1 2 INITIALIZE THE COUNTER AVXRCNT FOR THE NUMBER OF REFERENCES TO 0 XRINT2 PASS TWO INITIALIZATION CALLED FRO TCON2 1 ALLOCATE SPACE USING THE MACRO SALLOCH TO THE DSECT XREFTAB SIZE THE NUMBER OF REFERENCES TO BE COLLECTED AND INITIALIZE ALL SPACE TO 0 2 SET AVXRLAVS TO FIRST FREE NODE 3 SET HEADER NODE FOR THE TREE STRUCTRUE EQUAL TO 0 XRSCAN CARD SCANNING ROUTINE A FLAG IS PASSED IN A REGISTER TO DETERMINE WHICH 3 PASS IS BEING PROCESSED FOR THE FIRST PASS SCAN TH CARD AND SET THE SD FLAG ACCORDINGLY FOR THE SECOND PASS SCAN THE CARD AND SET THE SR F
158. RS HANDLING LOST dp 29 INSUB OUXPRNT OW LEVEL PRINT ROUTINE 121 BYTE LINE ASPLM641 52 CSECT REMONI REPLACE MONITOR CONTROL PROGRAM e EMONI HANDLES MOST OF THE DETIALS REQUIRED FOR A STUDENT TO WRITE AN ASSIST CSECT HAVE IT ASSEMBLED BY ASSIST AND THE EST PROGRAM THE ENTRYPOINTS OF HIS PROGRAM ARE CALLED ALONG WITH THE ORIGINALS AND HIS RESULTS CHECKED FOR ACCURACY WHILE ADDRESS CONSTANT MODIFCATION IS PERFORMED THE ENTIRE PROCESS IS STILL A SERIALLY RESUABLE PROGRAM SEE THE ASSIST REPLACE USER S GUIDE FOR DETAILS ON USING THE REPLACE MONITOR NAMES RE AIN CODE BODY AND INSUBS NAMES RG CHECKING CODE FOR RETURN VALUES NAMES RH EXTERNAL CALL CHECKING amp SREPL 2 CALLS SYFIND USE US T c n 1j ECTS AJOBCON AVWXTABL ECONTROL RECORBLK RFSYMBLK MACROS CALL PRNT SRETURN SAVE REPRNT XDECO XSNAP S S OVERALL REGISTER CONVENTIONS AND USAGE RO R1 R2 R3 R4 R15 WORK REGISTERS R5 RECORBLK ELEMENT FOR CURRENT ENTRY BEING PROCESSED R6 BASE REGISTER FOR MAIN CODE OF EACH REMONI ENTRY POINT R7 R8 US
159. RY UTINTI 1 INITIALIZE UTILITY ROUTINES INITIALIZES UT POINTER TO BEGINNING OF RECORD BLOCK AREA USES DSECTS AVWXTABL USES MACROS SRETURN SAV x E gt INS gt CACA ACA ACA Xo Ro Xo F F Xx V ck ob ACA ACA F TZ TZ ZZ F F Xx RA RC Ho O UTI LI ING E O M Q AC OS DYNA DU E B T ANY OBJI HI m nm WHI RI EC TE RING EGINNING OE CH S SAE I N JE EC R R 0 ECOR E OV E RALL TY ORD CO PA CO U IN P A RI BLOC P AS ECORD BLOCK INTO DYNAMIC AR DURING PASS 1 KS FOR A H AREA AT T SS 1 THE B D 8 E THE RECO OC PL 641 59 EA STAT EME E END KS R A D BLOC xt E PRODUCE ASS D BY 2 TO JUST WITH NO OCKS STI E iR US US RCODBLK CAL jS LOCK STATE E PLAC ARE RC iN DBLK S OCKS EBLK I E 0 D A MOSTOE ES DS EC ENT UT PR EYs U P OP UT2 MOV TPUT2 D Ot ES MACROS AVWXT
160. S AND PROGRAM STATUS WORD POINTERS TO THE USER PROGRAM CODE ESCRIBING THE RUNNING MODE AND OPTIONS LOWED TO THE USER PROGRAM IT IS CREATED FROM INFORMATION ROM THE ASSEMBLER THE USER PARM FIELD AND FROM THE PTIONS IN ASSIST AND IS MODIFIED BY EXECUT IT ALSO ROVIDES ALL DATA NEEDED BY XXXXSNAP TO DO A USI END OF DYNAMIC CORE AREA Di HQ o D H Z We We H E D H z zi Wel kel c Q H H O i Wel H D Q X Hi D Jg q 0 p O Q Di H H O H I H Q EG LO A A A A A F XX Xo HF X E gt DSI E Ta Xx X X X E DSI ICTs ECSTACKD E THE WHIC ECON INTER E E PRE P IS US OF A ED US BY ER COMPLE LOCATION NAMES ERCO x Xx A A A IN A GIV D ROL INS H ALWAYS CON PC US AS 620 4 SINGLI RUC TAINS D DURING EXE XXXXSNAP TO TION AREA TRY IN STACK TA ON ION ROVIDE D ECONTROL INSTRUCTION STACK IS A CIRCULAR LINKED LIS UP TO THE LAST 10 INSTRUC IT IS FILLED IN BY EXECUT IHE INSTRUCTION TRACE PART E n TIONS AND
161. S FOR THE JOBS T D 7 SECON ASPLM680 1 TIME RECORDS AND PAGES CONTROL The ability to set limits on and monitor time usage and output is especially nece ssary for any program intended for student usage ASSIST provides a large number of different ways to handle such control in order to allow system planners the maximum possiblity for tailoring a version of ASSIST to local requirements ASSIST can be generated to maintain complete control over the time used in any part of a user s run over the number of output lines lines printed a nd cards punched and over the number of pages printed Flexibility is provided in three major ways SYSTEM GEN ERATION OPTIONS allow the planner to select only those types of control he desires Thr separate levels of timer control are allowed amp STIMER 0 1 2 In the first case no timing is done at all thus saving space and execution time In this case the I option can be used to limit the number of instructions executed by a user program thus limiting loops at a very low cost in facilities needed The second option provides complete timer control over each separat phase of a job and third option adds even more flexibility when running under another control program which is already performing timing checks In essence this allows the user to get as much time as he actually has without requ
162. SAGE XRCOLL KOK kk kk kk kk kk k XK kk kk xk RO X 0000FFFF USED TO INITIALIZE NODE LINKS RW NODE IN XREF LIST BEING CHECKED 8 XREFTAB RX Q SYMSECT OF SYMBOL ALREADY IN XREF TABLE RA 6 SYMSECT OF SYMBOL TO BE CHECKED IN XREFTAB RB 6 BEGIN OF XREF TABLE FROM WHICH OFFSETS COMPUTED RC RD RE RY RZ WORK REGISTERS R14 INTERNAL LINKAGE R15 BASE REGISTER Xd C ko ck o Ck zk ik Ck Ze Ck Ck e ko CK Ck Sk Ck Ck o co Ze Ck je Ck kk e X kk ck ko e KOOK INSUB XRCLAVS a PE IR EM NE GET THE FIRST FREE NODE FROM THE LIST OF AVAILABLE SPACE AVXRLAVS SETS AVXRLAVS TO POINT TO THE NEW FIRST FREE NODE STORES THE ADDRESS OF THE SUMBOL S SYMSECT ENTRY IN THE NEW NODE RW HAS THE ADDRESS OF THE NEW NODE RX HAS ADDRESS OF OLD NODE LEFT LINK INITIALIZED TO ZERO RIGHT LINK TO 1 NOTE IT IS POSSIBLE TO HAVE THREAD OF A NODE POINT BACK TO ROOT NODE WHICH HAS INDEX DISPLACEMENT OF ZERO SINCE 0 IS NOT DISTINGUISHABLE FROM 0 THE END OF THE TREE IS DENOTED BY 1 VICE CSECT XRPRNT PRINT ROUTTNE 5 pis ia aka tini Roe a Bo Roe AVEC Ne CALLED FRO PCONO TO PRINT OUT THE CROSS REFERENCE E COMPRESS BIT OF AVXRFLAG IS TESTED BY AVXRCOMP TO DETERMINE WHICH FORMAT TO USE FOR PRINTING IF IT IS OFF EACH REFERENCE SYMBOL IS PRINTED ON A NEW LINE IF IT IS ON THE REFERENCED LABELS ARE PRINTED MORE THAN ONE PER LINE IF
163. SET TO A SCAN POINTER INTO REG ENERATES LENGTH 1 OF MSG U BYTE 3 FOR LENGTH OF MSG A FLAG BYTE 1 BYTE 5 CHAR FORM OF NMBR 3 BYTES S MACRO PNCH PUNCH A CARD BRANCH IF RECORD OVERFLOW amp XAREA amp XNUM SEE XIONR MACRO FOR EXPLANATION OR XPNCH WRTUP amp OVER IS LABEL TO BE BRANCHED TO IF RECORDS EXCEED LIMIT USES MACROS XIONR X Kk kk kk kk XK k XK XK XK XK XK kk XK XK XK XK XK XK XK XK kk kk kk xk kx MACRO SPRNT PRINT A LINE BRANCH IF RECORD OVERFLOWE amp XAREA amp XNUM SEE XIONR MACRO FOR EXPLANATION OR XPRNT WRITUP amp OVER IS LABEL TO BE BRANCHED TO IF RECORDS EXCEED LIMIT USES MACROS XIONR KOK Kk kk kk kk kk kk XK XK XK XK k XK XK XK XK XK XK k XK xk XK kk kk kk MACRO SREAD READ CARD DURING EXECUTION BRANCH IF EOF amp XAREA amp XNUM SEE XIONR MACRO FOR EXPLANATION OR XREAD WRITUP amp EOF LABEL TO BE BRANCHED TO IF END FILE OCCURS bi USES MACROS XIONR Di Re RO e e Uk RO RRE A RO e RA O ROSA RR A S en GO UA OS RR A UK ETURN FROM SUBROUTINE OS LINKAGE UGGING CONTROL AND DEFAULTS TO XRETURN TURN k Ck k k Ck Ck ko k k ko k ko ko k k k k k k k k SUPPLIES EXTRA USES MACROS XR KOK k Kk k kk kk k
164. SS 1 OF THE ASSIST ASSEMBLER AND SUPERVISES OR PERFORMS THE FOLLOWING 1 READING INPUT CARDS CREATING RECORD BLOCKS INCARD 2 SCANNING LABELS ENTERING THEM IN SYMBOL TABLE SYENT1 3 SCANNING CARD FOR THE OPCODE IF ANY 4 FINDING OPCODE IN OPCODE TABLE OPFIND 5 SCANNING FOR OPERAND FIELD SAVING SCAN POINTER 6 2ND LEVEL INSTRUCTION PROCESSING IAMOP1 IBASM1 7 DEFINING ATTRIBUTES VALUE OF LABEL IF REQUIRED 8 UPDATING LOCATION COUNTER TO NEXT LOCATION 9 STORING RECORD BLOCKS FOR STMT UTPUT1 NOTE PRINT CONTROL COMMENTS STMTS ARE PROCESSED COMPLETELY DURING PASS 1 AND NOT SAVED IF POSSIBLE CAL ERRLAB ERRTAG 1211021 IBASM1 INCARD OPFIND SYENT1 UTPUTI CAL OUTPT2 USES DSECTS AVWXTABL OPCODTB RCODBLK RSBLOCK USES MACROS SCALL GLOC SGTAD SPRNT SRETURN SAV USES MACROS SCOF SDEF SLOC CALLS ERRLAB ERRTAG IAMOP1 IBASM1 INCARD OPFIND 1 jS jS Gl T X Ro OX OR F F F FF OR X FF X F Xo CACA gt INSUB MOOPAMPC CHECK STATEMENT FOR SET VARIABLE SUBSTITUTION J gt ENTRY MOSTOP CALLED IF DISASTROUS ERROR OCCURS IN PASS 1 e RESTORES CONDITIONS FOR MOCON1 NOTE OVERFLOW OCCURRENCE s ENDS EXECUTION FOR PASS 1 FLAGGING PROGRAM NONEXECUTABLE gt gt CSHCI PCON
165. SS OF THE SY EG RA TO THE ADDRESSES OF SYMBOLS ALREADY IN H lt ab o gt pm Jg K UJ i z Q Jj 7j gt J Jg FOR 1 O E En io Di ki TI T S IF EQUAL PROCESS THE REFERENCE RWISE COMPARE TUAL SYMBOLS THE NEWLY CREATED NODE SHOULD SYMBOL IS SMALLER IN VALUE THAN TH E 3 COMPARISON CONT UES WITH IT S LEE SUBTREE IF LARGER COM PARISON CONTINUES WITH RIGHT SUBTREE WHEN A ZERO LEE INK IS FOUND OR NEGATIVE RIGHT LINK HE LINK IS CHANGED POINT TO THE NODE WHICH WILL CONTAIN THE INFO FOR THE SYMBOL NODE FETCHED AND INITIALIZED BY XRCLAVS E EJ to Q Kal D R A T N Ka pj z Q PROCESSING THE REFERENCES ONCE THE SYMBOL IS PLACED IN T UST BE ENTE D x 4 0 Er T i IHE REFERENCE ERED IN A BLOCK OF REFERENCES THIS IS DONE
166. SSAG E MAC OPCODE RO FOR RI ING POINT OPCO D 5 370 O D S 370 O PT PG MACRO CALLE R TABLE EMONI PCODESS PCODES KOK OK KK Kk kk kk Kk KK S ET HI AND T El OPCOD1 I D 1 x US TIME kK Xx x GIVES RX T YPE ADDRESS OF M ESSAGE TO PRIN F BE GIVES LENG ODIFIES REGIST UB REX ERS PRINT TH OF THE M ESSAGE TO BE R7 R8 RF SGN G ENERATE 1 RFSGN ECT NA PLACEME IF amp SRE ECOND SE POINT IN N PL ACRO ES AND T T AND C CTION OF EA ED R KING IS HEI HEC D Lr n ENTRY OF TO GENI NTRY R14 RI EPLACE PRINTE D TE NAME TABL E ERA THE POIN NAMES PRIMARY TABLE WHICH IS USED TO 7 OF STUDE 2 AN YPE RFSY 1 ASSIST NA YP Is TYPE 2 1 IF 2 IF CALL Dp da EATE A CRI WCONADS TABLE CSECT W NAM IST OF 10 THIS ONE amp CSECT R AY 2 S RO HIC ES A CALLABLE RE SGN WHICH UTINES D N C WRI EA TT EN CSECTS T P S AN EI EM ENT IN D DO H SC RIBES A CAL
167. SYMBOL USED USES DSECTS AVWXTABL SYMSECT USES MACROS SCALL SRETURN SAVE ASPLM640 17 gt CSECT CXCONS 1 2 PROCESS HEXADECIMAL CONSTANTS USES DSECTS AVWXTABL USES MACROS SRETURN SAVE gt ENTRY CXCONL 1 SCAN HEX CONST DO NOT ASSEMBLE ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT SERINVCN RC NUMBER OF BYTES REQUIRED FOR CONSTANT x gt ENTRY CXCON2 1 2 ASSEMBLE HEX CONSTANT x ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB ENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RC ADDRESS OF PROPERLY ASSEMBLED CONSTANT ASPLM640 18 CSECT CZCONS 1 2 PROCESS ZONED CONSTS USES DSECTS AVWXTABL
168. T entry points used only in the first or second assembly pass end either with a 1 or 2 respectively 2 DUMMY SECTIONS All labels in a dummy section begin with the first two three characters of the dummy section name Dummy sections used only inside one control section normally use the first two characters of its name followed by a third character to distinguish the dummy section The single exception to this rule is the dsect AVWXTABL which contains symbols beginning with AV AW and AX 3 MACROS In general macro names beginning with the character are global macros and are liable to be used in more than one control section A macro used only in one control section begins with the first two characters of the control section name In addition all the X macros XSNAP XSAVE XIDENT etc are also global macros and do not follow the above conventions because they already existed before ASSIST was written Any macro which calls an intrinsic routine ends with the same four characters as the entry point which it calls such as XSNAP XXXXSNAP SREAD XXXXREAD XDECI XXXXDECI etc 4 SET SYMBOLS Set symbols used in ASSIST are of two kinds the first are directly given values to indicate the options desired for an ASSIST generation Their names all begin amp The second kind are for internal usage and may be indirectly set from values given by the first type There are no restrictions
169. TABL USES MACROS RETURN SAVE ENTRY CFHCNL 1 SCAN CONST DO NOT ASSEMBLE ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB O CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT SERINVCN V GI ENTRY CFHCN2 2 ASSEMBLE F OR H CONST ENTRY CONDITIONS RA POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB LENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB ZERO VALUE FOR ERROR CODE INVALID CONSTANT RC RESS OF PROPERLY ASSEMBLED CONSTANT NOTE THIS ROUTINE WILL ASSEMBLE VALUES INTO F OR H STANTS OF LENGTH 1 8 BUT THE VALUE OF ANY CONSTANT MUST OF SIZE TO FIT INTO 1 FULLWORD I E THE OTHER FULLWORD T EITHER BE ALL 0 S OR ALL 1 S BINARY NOTE IT IS POSSIBLE FOR THIS ROUTINE TO CAUSE A FIXED PT OVERFLOW WHICH WILL CAUGHT AND LAGGED BY SPIE MONITOR IN MAIN PROGRAM MPCONO n E Q D Kal E Il o z t RINVCN
170. TED BY A DASH Q A A Xx A X x x amp NO15 0 STATES THAT A RETURN CODE IS CURRENTLY IN REG 15 AN HOULD NOT BE DISTURBED EGARDLESS OF HOW THE REGS ARI PECIFIED 5 USES MACROS XCHAR Kk ck Ok kk kk kk kk kk kk XK Kk kk kk kk kk kk ACC po DI U S S gt MACRO XSRTR CREATE SPECIAL ASSIST ENTRY EXIT TRACE CODE JOHN R MASHEY JULY 1969 360 67 THIS MACRO IS USED BY XSAVE AND XRETURN TO GENERATE THE Mia TRACE CODE CALLS TO XPRNT OR XSNAP IF THE TR OPERAND IS USED I Ra T NOTE THIS IS MODIFIED VERSION FOR USE IN ASSIST ONLY USES MACROS XSNAP k X X k k k X X X X X k X k X k X X k X X k X X X k k MACRO XXDKEDCB GENERATE TABLE OF DECBS FOR DISK UTILITY e THIS MACRO GENERATES A LINKED TABLE OF DECBS 2 HE BUFFER ADDRESSES ARE PLACED IN THE DECB BY XXXXDKOP E oe USES MACRO WRITE zz Ck ooo kk CK Ck o Ck Ck Ul e e CO CARO kk kk CAO kk e e A RO kk E A OK ASPLM640 1 APPENDIX V ENTRY AND EXIT CONDITIONS 01 31 73 2 1 A THE ENTRY POINTS ARE LISTED ALPHABETICALLY BY CSECT NAME
171. TELY INITIALIZED BY MAIN PROGRAM ASSIST IHIS PERMITS REINTA TO MODIFY ASSEMBLER CONTROL FLAGS IF NEEDED TO MAKE ASSEMBLER PERFORM REQUIRED ACTIONS USES DSECTS AJOBCON AVWXTABL po CACA A A A X Xo Ro Xo F x gt INSUB REREAL REPLACE REAL ADCONS IN VWXTABL IF NOT THERE INSUB REREGS FORMAT PARAMETER REGS AND PRINT THEM GER ENTRY RESYMB ENTER CODE IN SYMBOL TABLE OF CALLABLE ENTRY RESYMB IS CALLED FROM CVCON2 IF A SYMBOL FLAGGED EXTRN IS USED IN A VCON IT PLACES A CODE INTO THE SYVALUE ENTRY OF TH SECT THIS CODE THE OFFSET TO A CALLABLE ENTRY ELEMENT IN THE SECOND SECTION OF RFSYMS IS USED FOR CHECKING R PROGRAM ACTUALLY CALLS THE ROUTINE ENTRY CONDITIONS RA SYMSECT FOR THE EXTRN SYMBOL OTHER REGS SAME AS ASSEMBLER REGISTER CONVENTIONS EXIT CONDITIONS SAME SYMSECT BUT CODE HAS RB 0 IF SYMBOL WAS LEGITAMA 4 IF SYMBOL WAS NOT LEGI NAMES RES USES DSECTS RFSYMBLK SYMSEC t E E 7 EN ENTERED IN SYVALUE gt 9 0 ETE ENTRY TO BE CALLED CA ck
172. TION TO ACCOUNTING FOR 95 PER CENT OR MORE OF THE RUNS MADE IN OUR FIRST ASSEMBLER COURSE ASSIST IS USED FOR A FAIR AMOUNT OF DEBUGGING IN THE SYSTEMS COURSE WHICH FOLLOWS AND IS ALSO USED IN THE DATA STRUCTURES COURSE WHEN APPROPRIATE THE SYSTEMS COURSE ALSO MAKES USE OE HE REPLACE MONITOR FACILITY FOR AN ASSIGNMENT OR TWO AND THE OBJECT DECK LOADER HAS EVEN BEEN USED BY A GRADUATE LEVEL COMPILER COURSE TO EXECUTE OBJECT CODE FROM STUDENT WRITTEN COMPILERS CREATED USING THE XPL SYSTE VARIOUS PROJECTS IN THE CMPSC DEPARTMENT U SE OF ASSIST INCLUDING A FAIRLY EXTENSIVE THEOREM wn UNEXPECTED USE HAVE BEEN FOUND FOR ASSIST S DEBUGGING FEATURES PROBABLY THE MO DDRESSING CHEC wn UNUSUAL PROGRA RUN WAS ONE WHICH REQUIRED COMPLETE DRI ESULTED IN A T ASSIST WAS A E KING AND WAS THUS RUN UNDER ASSIST EVEN THOUGH IT THUS OTAL EXEC OF 2000 SECONDS ON THE 67 Ci H H O H E FIRST USED BEGINNING SPRING TERM 1970 AND SINCE THEN HAS PROCESSED A LT RANGE OF 1 TO 2 APPENDIX VIII FOR THE BEGINNING COMPU ER SCIENCE COURSES HAVE GENERALLY BEEN IN THE S OF CPU TIME 67 S T LEAST 50000 JOBS THE AVERAGE RUN TIME
173. UAL PARAMETER REGS FOR INTERNAL SUBROUTINES R9 LINK REGISTER FOR INSUBS WHICH MUST CALL OTHERS WITH R14 R10 ECONTROL EXECUTION CONTROL ER PSEUDO REGISTERS R11 AJOBCON DSECT MAIN JOB CONTROL TABLE R12 RAT VWXTABL CSECT AVWXTABL DSECT R13 SAVE AREA ADDRESS BASE REGISTER FOR DATA INTERNAL SUBRS bo UJ 5 Q A d Wei ZZ OX 0 OX KE F TZ TT OX F F OR Xo Xo X o X Xo 4 X x R14 INTERNAL LINK REGISTER LOCAL WORK REGISTER gt ENTRY REENDA REPLACE MODULE POST ASSEMBLY PROCESSING REENDA IS CALLED JUST AFTER AN ASSEMBLY IS COMPLETED x IF THE RUN IS NOT A REPLACE RUN NOTHING IS DONE x IF IT IS REPLACE PHASE A THE ASSEMBLED PROGRAM WAS A REPLACE VERSION OF AN ASSIST MODULE SO CHECK AND MODIFY ASSEMBLER ADCONS IF THE RUN IS IN PHASE B THE ASSEMBLY JUST FINISHED WAS A TEST PROGRAM SO PRINT PERFORMANCE STATISTICS FOR THE MODULE ENTRY CONDITIONS R11 AJOBCON MAIN JOB CONTROL BLOCK R12 RAT VWXTABL CSECT AVWXTABL DSECT CALLS SYFIND
174. URRENT BLOCK OF CODE TO BE PUNCHED INIT AVRADL R EN ENGTH OF CODE REMAINING INIT AVRADH AVRADL E REGISTER AOBJCARD OBJECT CARD OUTPUT IMAGE RENT OF CODE TO PUNCHED USER PROGRAM RELATIVE AOTCODE LENGTH OF NORMAL ALL BUT LAST CODE ON CARD ASSEMBLER CONTROL TABLE AVWXTABL T CACA ACA OX KE OX F OO Oo KE OX F OX Ok OX KE OX Xo X X OR TZ Xo F KF X A A F SE ASPLM640 R13 CALLING PROGRAM S SAVE AREA UNCHANGED R14 INTERNAL LINK REGISTER ALL OTHERS ARE UNUSED X X X X X k X K X X X X X X X X X X E k k Ax x F INSUB AODPUNCH PUNCH 1 OBJECT CARD FOR AODECK 4 ASPLM640 5 CSECT APARMS USER PARM FIELD PROCESSING CSECT SCANS USER PARM FIELD SETS VALUES IN AJOBCON DSECT ENTRY CONDITIONS OF ACTUAL PARM FIELD CHARACTER STRING R10 LENGTH OF PARM FIELD AT O R9 a to pd R11 ADDRESS OF AJOBCON DUMMY SECTION AREA EXIT CONDITIONS AJOPARM IN AJOBCON NOW HAS USER PARM FIELD RIGHT PADDED WITH VARIOUS FLAGS IN AJOBCON ARE NOW SET SEE CODE STARTING AT APAJUMP USES DSECTS AJOBCON APCBLK USES MACROS SDBG RETURN SAVE STIRC APCGN XDECI NOT
175. USED IN TRT S RET RETURN REGISTER USED FOR INSUBS KOK k Kk OK kk Kk Kk Kk Kk Kk Kk Kk XK Kk Kk Kk Kk Kk Kk Kk Kk Kk k Kk Kk Kk Kk Kk Kk Kk kk X G TZ ACA ZZ KE Ok OX Oo OX A 0X Oo KE OX Ro DE F F X Ro Xo Xo KF X INSUB MCBDBMP BUMPS BSU POINTER De m m Ug om 2 s D D ob ob HF X 0X 0X 0X FF Ro X oko X X X INSUB MCBDCATI CREATE CONCOT BSU p gt INSUB MCBDFLD CREATES A PRINT BSU INSUB MCBDPR PRINT STATEMENTS gt INSUB MCBDSCAN SCANS STATEMENTS IN A MOCOR DEFINITION INSUB MCBDSCFN LOOKS FOR FIELDS Frost Pecas aku S od gt INSUB MCBO1 CHECK LCLX BLX FOR LABEL OPCODE INSUB MCB02 OBTAIN DIMENSION OF GBLX OR LCLX STM gt INSUB MCB03 CHECK DIMENSION SIZE FOR GBLX LCLX ASPLM641 37 CSECT MCDTR ECIMAL CONSTANT CONVERSION CDTRM DECIDES SCAN POINTER IS POINTING AT LEGAL DECIAMAL TERM AND IF SO CONVERTS TO BINARY FORM HANDLES VALUES UP TO 2 31 1 y ENTRY CONDITIONS RA OF FIRST CHAR OF TERM EXIT CONDITIONS RA OF DELIMITE
176. USES DSECTS AJOBCON AVWXTABL RECORBLK RFSYMBLK SYMSECT gt INSUB REEXDECO CONVERT NUMBER TO DECIMAL P 4 4 gt ENTRY REFAKE INTERCEPT REPLACED CALLS CHECK REAL USER ENTRY CONDITIONS R15 BITS 0 7 OFFSET CODE 4 FOR SPECIFIC ENTRY BEING CALLED RO R14 ARE AS DESCRIBED IN ASSEMBLER CALLING CONVENTIONS gt INSUB REFRFC TEST ECRFLAG AND PRINT NEEDED INFOR 4 gt INSUB REGCRARE USING RERGEFLG FLAG AND PRINT REG MSG gt INSUB REGC1213 CHECK USER REGS 12 13 FLAG RERGEFLG 4 gt ENTRY REINTA INITIALZE BEFORE ASSEMBLER CALLED AS TU LM641 53 THIS ENTRY IS CALLED 1 TIME BEFORE ASSIST ASSEMBLER IS CALLED IT CHECKS FOR PRESENCE OF REAL ADDRESS CONSTANTS IN VWXTABL AND REPLACES THEM IF THEY HAVE BEEN MODIFIED IN PREVIOUS REPLACE RUN T ALSO MAY SET FLAGS IN AVWXTABL IF THE SYSTEM IS IN EPLACE PHASE A ASSEMBLE REPLACEMENT PROGRAM AND LINK IT NTRY CONDITIONS R11 AJOBCON MAIN JOB CONTROL BLOCK R12 RAT VWXTABL CSECT AVWXTABL DSECT Ed WH rj AVWXTABL HAS BEEN COMPLE
177. UTGET2 THE INITIALE ADDRESS OF THE ONLY BUFFER USED IF AT LEAST 1 WRITE TO DISK WAS DONE XXXXDKE1POINTS THE DISK TO STAR AND READS N 1 BUFFERS FROM THE DISK AND SETS UP FOR P E ASSIST ASSEMBLER L1 DO zj Q H o H zj DO D Wei Wei H Q a E ENTS R14 gt XIOBLOCK POINTER REGISTER P BASE REGISTE ER WORK REGIST POINTER ER POINT REGISTE po J A po 55 V UJ q nj al LO Lp USES DSECTS XX USES MACROS R OBLOCK AVWXTABL AD WRITE POINT CHECK FH T o ACA ACA F F X Xo Xo Xo X F F x V ENTRY XXXXDKOP INITIALIZES FOR DISK UTILITY RUN ALL XXXXDK ENTRIES BY RICHARD FORD PAUL WEISSER XXXXDKOPIS CALLED FROM UTINT1 IF THE DISK UTILITY OPTION IS ENABLED IT PERFORMS A STANDARD FORM OP UTILITY DCB INITIALIZES ANY VARIABLES USE UTILITY ROUTINES XXXXDKOP ALSO COMPLETES T FOR BUFFER POOL MANAGEMENT BY FILLING IN THE BUFFER ADDRESS IN BATCH MODE XXXXDKOP RESETS THE DISK DATA SET WITH A POINT MACRO INSTRUCTION wo mut UJ K t H En E UO H LO N A
178. XGET Input module for XGET 13 XXXXPUT Output module for XPUT ASPLMO10 5 PART TI THE ASSEMBLER Ses oe Dr A eee A OVERALL CONTROL LOGI Cire a id ad tai ete Ges ohne ee AA de INPUT tede due eus o S DUE a ease ste 2 OUTPUTS St al g d tados dece Ma erai dou Tees rasa 3 OVERALL CONTROL LOGIC SUMMARY cre e sei Ie ead te eee Sie ew LEE A We ENTRY POINT HIBRARGHY TABBE e steel ace dB Moke Odie ele e eas Ba ROUTINEZSUBROUTINE LOGIC ry 1 BROPS2 Base register processind 2 CACONS A type constant processing n y S ee 3 CBCONS B type constant ProC ssIinNng ee ee eee ee ee eee 4 CCCONS C type constant proceSSing ee eee eee ee eee 5 CDECNS D amp E type constant processing eee eee 6 CFHCNS F amp H type constant processing eee eee eee 7 CNDTL2 PASS II constant processing control 8 CODTL1 PASS I constant processing control 9 CPCONS P type constant processing ra o Ree 10 CVCONS V type constant processing eeeeeeeeeeee Tl CXCONS X type constant processing s spani es 12 CZCONS Z type constant proceSSing cee eee eee ee eee 13 ERRORS Error code scan pointer flagging 14 ESDOPR Ext
179. Xx 2 ARE MAY NOT OPI THI OPCO amp CO amp CO amp CO amp CO ASSUMED O BE 0 amp COD Es F IS US BE GEN ERAT ED IF US F FOR FLOATING E b D POIN INSTR UC D D IONS IF OPRIATE D D D TO FU Kei THE SP ECIFI IONS YPE ED GLOBAL to E NTRY WI Y FO D R MACRO OE VARIABLE WILL ED FOR INSTR IT IS ED AND ASPLM630 FOR P 1 D FOR UCTIONS W 9 HICH ECIMAL INSTS PR IVILEGED IS NOT TO BE G EN ERATED HAVE BE EN LL NOT BE CR EATED D COD D D D EX FOR S370 F PSOE Ed Ed Dd d O KOK k XK k kk Kk k KK gt V V MAC xk Xx MAC CALLS INS MAC Q H m FU td MACRO WCONG CRI IN DOING TABL amp C MACRO XCALL amp l k k X MACRO XCHAR RO OPGT US NOTE RO amp MSG amp MSGL RO C ia ES MACROS SA amp OPNGN VALU EXTENDED F i OAI 0 0 R NON P R PRIVILE EG E REATE 2ND L kK EVEL 2 Co F ES WERE SET kk kK k kk k R Gl PRNT P eoe RI ROK BY RINT ME
180. a FLAG BYTE AJODEBUG in AJOBCON dsect b FLAG S ETTING supply the following option in the PARM field on the EXEC card of a user program A debug versio DEBUG decimal n of APARMS accepts this option and stores the last byte of the number s value into the byte AJODEBUG for later use c FLAG TI ESTING various XSNAP calls perform Test under Mask instructions referencing AJODEBUG to determine if output should be produced or not i e use operand IF AJODEBUG O mask TM d DEBUG OUTPUT LOCATIONS the following lists all debug output code in this section of ASSIST describing locations test values used and output produced CSECT MASK VALUE HEX OUTPUT LABEL LOCATION OUTPUT PRODUCED PURPOSI Lj ASSIST 08 ASSIST 02 ASSIST 04 AFTER TIME RECORDS SET immediately after PARM field has been printed near label ASPNP prints registers all of AJOBCON control block This is used to show the status of all overall job control values after time and records limits have been set and PARM field scanned ECONTROL BEFORE EXECUT after ECONTROL section has been completely filled in before user program is executed between labels ASEXECAL and ASDUMPCL prints registers all of ECONTROL dummy section This is used to show complete status of user program just before execution
181. acro ASPLM200 1 PART II THE ASSEMBLER The assembler section of ASSIST is a high speed two pass assembler which produces an object program directly in memory ready to be interpretively executed For the assembler language accepted by this assembler s the ASSIST INTRODUCTORY USER S MANUAL This section of the manual gives first an overview of the internal workings of the assembler then descriptions of the logic for each separate control section in the assembler A OV Gl RALL CONTROL LOGIC 1 INPUT a Address of primary assembler table AVWXTABL DSECT The calling program passes to the main program of the assembler th address of a table which contains all communications areas address constants useful constants and some workareas The calling program fills in some values before calling the assembler These values include the following Two words are given the values of low and high limits of a single large workarea which may be used by the assembler Two bytes are given values of various bit flags which determine exactly what running mode the assembler will use and what options will be in effect A halfword is given the value of the maximum number of errors which can occur and still permit execution b Deck of assembly language source cards The assembler source deck is read using the SSORC macro This deck is terminated by an END card end
182. ained in the control section XXXXIOCO so any modifications required can be made there without affecting any other code c TIMING SERVICES ASSIST may use the STIMER and TTIMER macros both for computing time interval statistics and for controlling user program execution time All such uses are in one section ASTIMR ASTIMER of the control section ASSIST and can be changed if needed If no timing is desired or if none is available ASSIST can be generated to use none i e amp STIMER 0 See Appendix VIII for details d PROGRAM INTERRUPT SERVICES The assembler part of ASSIST csect MPCONO uses the SPIE macro to trap certain rare interrupts The interpreter csect EXECUT definitely requires the use of a SPIE or equivalent to trap any interrupt occurring during program interpretation and its program logic depends very much on this service being available It is a definite requirement that it be possible to trap an interrupt and be able to change the location where execution is resumed afterwards After version 1 2 A1 only 1 SPIE will exist thus easing conversion ASPLM670 3 B JOB CONTROL LANGUAG Gl To use ASSIST as described in the Introductory User s Manual the following catalogued procedure should be added to the PROCLIB of an OS 360 system DATA EXEC PGM ASSIST ETO5F001 DD DDNAME INPUT omit if run
183. alue is noted on the printed output from ASSIST It is also used to set the value of amp SASMLVL depending on whether the first two characters of amp SYSTEM are OS or not this should have one of the values OS PCP OS MFT 0 the ASSIST interpreter EXECUT will not execute IBM S 370 instructions 1 the ASSIST interpreter will interpret S 370 instructions making free use of the S 370 instruction set 2 the ASSIST interpreter will interpret S 370 instructions using only standard S 360 instructions 0 the ASSIST assembler will not include code for the S 370 instruction set 1 the ASSIST assembler will recognize and assemble standard S 370 instructions default and maximum possible values which can be used as the T option i e total time for 1 SJOB Specified to millisec if desired Effective only if amp TIMER gt 0 default and maximum possible values of TD option time in seconds saved for execution dump Can be specified to millisecond accuracy and is meaningful only if amp TIMER gt 0 0 no timing is done at all 1 timing is done using only the IBM STIMER and TTIMER macros 2 timing is done using a local macro to find at execution time the remaining time left for a job This option affects code in APARMS ASSIST and EXECUT It also nables us of T TD and TX option values default and ma time for user
184. amp 2 ASPLM641 55 CSECT SCANRS 1 2 SCANNING ROUTINES x SCANRS CONTAINS VARIOUS UTILITY SCANNING ROUTINES ALL 3 ENTRIES TERMINATE SCANNING ON FINDING A BLANK 1 ENTRY ALSO STOPS FOR A COMMA AND THE OTHER STOPS FOR AN EQUALS SIGN NOTE THIS ROUTINE MODIFIES TABLE AWTZTAB IN AVWXTABL IT MAY THEN CALL SDBCDX WITHOUT RESETTING THE TABLE THIS IS AN EXCEPTION TO THE RULE OF NOT PERMITTING MODIFICATION x TO AV SECTIONS WHEN CALLING ANOTHER MODULE CALLS SDBCDX USES DSECTS AVWXTABL USES MACROS SCALL SRETURN SSAVE SSETRT NAMES SCAN gt ENTRY SCANBL SCAN TO BLANK ONLY ENTRY AND EXIT CONDITIONS SAME AS SCANEQ gt ENTRY SCANCO SCAN TO COMMA OR BLANK USED BY A TYPE ADCON it ENTRY AND EXIT CONDITIONS SAME AS SCANEQ gt ENTRY SCANEQ SCAN TO OR BLANK USED BY IAMOP1 FOR LITERA ENTRY CONDITIONS RA SCAN POINTER EXIT CONDITIONS RA SCAN POINTER TO OR BLANK OR ERROR IF ANY RB 0 IF SCAN OK ERROR CODE IF ERROR FOUND IN SELF DEF TRM AR Xx F
185. being used he user to see t TD machine dependent permit t ASS this case large values values Thus EMBLY U INFORMATION AVAILABL set all t will use limits obtained from the operating system In this case ASSISI defaul the only execution lim producing outpu RUNNING ASSIST UND In some cases system both from norma limited tim VII values ENDIX II for t modification procedure and the defaults to appropriate values for the model ne E PORTANT VALU values to the deisred maximum values values equal to the corresponding total ET variables h can be obtained without changing the ES In this case set the set the default values involved and the ASSYSGEN Set the D limit values to the W SAGI the NO TIMING AVAILABL lt settings for I should be careful t he at suggest that reasonabl first part of a dump least for defaul hich D 1 values are thos i e RD 20 25 lt values w P p UNIMPOR he X total E FROM n ANT the total limits and default val and only t and limits are in essence ignored values US ER P ECUTION TO BE MONITORED In EXI OPI Yo ERATING SYST Lues should be set to very options given appropriate EM ED OPTION TYPES 2 high since n OR DI ESIRI it on the
186. bles and macros to control generation of conditional debugging code See set variables amp DEBUG amp ID and amp TRACE and macros DBG and XSRTR APPENDIX VI gives full details on ASSIST internal debugging aids amp SDECK GBLB 0 no object decks can be produced 1 an object deck can be punched entrypoint AODECK in AOBJDK exists Adds code in ASSIST AOBJDK amp SDECSA GBLB 0 assembler does not include code for decimal instruction set 1 assembler recognizes and assembles decimal instructions amp SDECSM GBLB 0 the machine on which ASSIST is to run does not have the decimal instruction set option 1 the machine on which ASSIST is to run does have the decimal option As of 9 15 70 ASSIST requires the decimal instruction set Some sections of code particularly csects ASSIST and OUTPUT use decimal instructions for convenience This set variable is provided for future use in adding alternate code to let ASSIST run without this feature amp SDISKU GBLA 0 no intermediate disk code generated zm becomes user option DISKU NODISKU 2 always disk intermediate storage if gt 0 code is added to XXXXIOCO and UTOPRS amp SDSKDV GBLC Device Number for DISKU option only used when amp DISKU 0 and DOS system default 2314 amp SERNUM GBLA value of highest numbered error equate symbol normally 2 number of different equate symbols This variable is use
187. calls and is only SRSBGENR is not When called MEXPND may check for the opcode being a defined macro immediately and return with RB SERIVOPC if it is not MOCON1 flags it using ERRTAG and continues shown by RB 0 on return If it is set Possible expansion is If desired MEXPND may set RB 0 always and always show the outer level macro as a generated statement If the call is for a defined macro EXPND expands it as follows 1 Workareas and stack space are allocated as desired from the dynamic low area with no restrictions on boundary alignment of the pointer AVADDLOW 2 Space is reserved for an error messag below the current address in AVADDHIH expansion causes an overflow statement immediately This may be used if macro 3 Initialization is done as desired for the entire macro nest expansion This includes initializing a variable to O0 a counter for macro nest level to be compared to AVMMN to be used as as a limit This counter is incremented by 1 every time a macro is called and decremented for each MEND or MEXIT 4 Processing of the outer macro and any inner macros begins MEXPND places generated statements in the dynamic high area with the first generated statement at the highest actual memory address working lower as statements are generated MEXPND does the following 1 Sets AVGENICD AVGEN2CD AVADD
188. code filling 6 ENTRIES CDECN2 pass II D and E type constant processor 8 SDDTRM RRTAG create and save a scan pointer error EVALUT general expression evaluator routine 7 SDBCDX SYFIND SCANCO scan expression until comma or blank found 7 SDBCDX 7 ENTRIES SDBCDX determine type of self defining term call right processor 8 SDBTRM SDCTRM SDDTRM SDXTRM SYFIND find symbol in symbol table return table entry 8 ENTRIES SDBTRM evaluate binary self defining term SDCTRM evaluate character self defining term SDDTRM evaluate decimal self defining term SDXTRM evaluate hexadecimal self defining term ASPLM400 1 PART III THE INTERPRE 1 H ER The interpreter section of ASSIST is a program which interpretively executes S 360 object code It can perform all of the standard instruction set and may permit decimal and floating point operations if these are desired Although privileged operations and SVC calls are not performed at the current time conditional code exists in the program for decoding them and branching to individual sections of code to do each individual instruction The interpreter also allows a number of simple I O debugging and conversion pseudo instructions which can be handled as macro instructions by regular 5 360 assemblers thus main
189. cro called by the XSRTR macro in a TM instruction b amp TRACE This symbol gives the type of tracing to be performed at subroutine entry exit It is set by DBG macro and contains one of the following three values NO no trace code will be generated by an XSRTR macro 5 the XSNAP called by XSRTR will do nothing but print a message noting entry exit of the given routine SNAP the XSNAP will not only print the message as above but will also print out the GP registers 2 MACROS a SDBG This macro is called to set the values of amp DEBUG and amp TRACE which will be used as set by all SSAVE and SRETURN macro calls until the next DBG call is made In most cases DBG is called one time at the beginning of each control section to set the debugging output desired during that section b SRETURN This is the extended RETURN macro for exiting from a subroutine It calls macro XRETURN supplying certain defaults XRETURN calls XSRTR macro which generates any tracing code required c SSAVE This is an extended SAVE macro which calls XSAVE macro which then calls XSRTR to generate any trace code required d XSNAP This is the primary debugging macro and is a slightly modified version of the XSNAP macro which can be used by anyone writing in assembler It is used both by itself and as an inner macro for XSRTR to generate all debugging code It generat
190. d reader using a DDNAME of FT05F001 if possible For jobs using the BATCH option or if two readers are not available as in an OS PCP system any data cards provided must follow the user source program prefixed by a SENTRY card Any number of user jobs may be batched c USER PARM FIELD OPTIONAL ASSIST expects the operating system to provide to it the contents of the PARM field from the user EXEC card following standard 0S 360 conventions for accessing PARM fields The user may request various options through the use of this field he reader is directed to the following writeup for a listing of the available options ASSIST INTRODUCTORY USER S MANUAL PART III If ASSIST is generated to provide the replacement feature i e amp REPL gt 0 the following should be consulted for additional options ASSIST ASSEMBLER REPLACEMENT USER S GUIDI E 2 OUTPUT a PRINTED OUTPUT ASSIST prints al ASPLM100 2 l output on a line printer using a DDNAME of FT06F001 The printed output may require up to 133 characters including carriage control 121 characters The 1 US 2 USE 3 USE 4 VAR R PROGRAM ASS R PROGRAM PRINTED OUTPUT R PROGRAM COM IOUS HEADINGS AND STATISTICAL INFORMATION b PUNCHED OUTPU The user program although most output requires no more than Following output may be printed EMBLY LISTING PLETION
191. d by macro SSERR to creat quate values at first and later to generate space for a pointer table in OUTPUT csect amp SFLOTA GBLB 0 the ASSIST and tables for 1 the ASSIST assemble the f ASPLM610 3 assembler does not include code the floating point instructions assembler will recognize and oating point instructions amp SFLOTAX GBLB 0 the ASSIST and tables for instruction set 1 the ASSIST assembler does not include code the extended floating point assembler will recognize and assembl xtended floating point instructions T amp SFLOTE GBLB 0 ASSIST int floating point p erpreter EXECUT will not execute instructions 1 ASSIST int point instructi amp SFLOTE is set to 0 if either i e the interpreter will not cont operations unless the assembler acc p erpreter will execute floating ons amp SFLOTA or amp SFLOTM have that value ain code to perform floating point pts the opcodes for them and the computer has the hardware to perform them amp SFLOTEX GBLB 0 the ASSIST extended floati interpreter EXECUT will not execute 1 the ASSIST ng point instructions interpreter will execut xtended instructions floating point amp SFLOTEX is set to 0 if amp SFLOTMX has that value i e the interpreter will not contain code t operations unless the machine has t amp SFLOT
192. d to scan optional parameters see PART III of USER S MANUAL The first call supplies default values and absolute limits on numerical options and the second call processes the invoking PARM field if any exists If this is the first time through this process the actions described above in a are performed to initialize memory and i o modules This is done in the order given in order to allow optional parameters to influence this initialization At this point ASSIST determines whether a BATCH run is in progress If so it reads cards until a JOB card is found INSUB ASFLUSH and calls APARMS with the parameters on the first such card encountered thus allowing user s in BATCH mode to supply options APARMS is called a third time NOBATCH or fourth time BATCH to supply default values for any numerical options As described in APPENDIX VIII time records and pages limits are calculated the ASSIST header line printed on a new page and either the invoking PARM field NOBATCH or JOB card BATCH added c ASSEMBLY OF USER PROGRAM OR LOAD OF OBJECT DECK ASSIST then sets up the assembler control table VWXTABL csect AVWXTABL dsect for use by the assembler component of the system This includes setting limits on the memory available to the assembler placing the address of the table control section into the appropriate register R12 and initializing any flag values which may have been pr
193. dcon modification 2 RESYMB amp SREPL 2 SSORC XXXXSORC 3 SPRNT XXXXPRNT D 3 SPRNT XXXXPRNT ENDA Post Assembly Replace Monitor ASPLM100 7 only if amp SREPL gt 0 7 SYFIND entry point inside csect SYMOPS of the assembler 2 XDECO XXXXDECO XSNAP XXXXSNAP 3 SPRNT XXXXPRNT REINTA Pre Assembly Replace Monitor XXXXFINI Finish up input output control CLOS XXXXINIT Initialize input output control OP REFAKE Replace Monitor Call Interception only if amp SREPL gt 0 only if amp SREPL gt 0 Di DCB s Eri a DCB s XXXXSNIN Initialize XXXXSNAP modul N rj ENTRIES XXXXDECI Decimal Input Service Program XXXXDECO Decimal Output Service Program XXXXHEXI Hexadecimal Input Service Program XXXXHEXO Hexadecimal Output Service Program XXXXPNCH Punch card service program XXXXREAD Read data card service program XXXXSNAP Create debugging output 3 SPRNT XXXXPRNT XXXXSO 3 ENTRIES XXXXPRNT Print a line service program ESYMB Replace Monitor Call Allowed Lookup RC Read source card service program user execution only if amp SREPL 2 ECI macro ECO macro XHEXI macro XHEXO macro SPNCH macro EAD macro completion dump XSNAP macro SSORC macro SPRNT m
194. do instruction ASPLM400 2 A block of six addresses originally created by the ASSIST assembler which describe the storage limits both real and as given in the assembly listing entry point address and execution time relocation factor for the user program An instruction stack actually a circular linked list in which is kept the last ten instructions done with their addresses This is used by the completion dump routine to produce an instruction trace Various other work words and execution time values ar also kept in ECONTROL b DECK OF DATA CARDS An optional deck of data cards may be read by th interpreter for the user program An XREAD pseudo instruction in a user program causes execution of th cod generated by a SREAD macro in the interpreter which obtains the next card or gives an end of file indication Under no circumstances is it possible for the user program to read beyond th nd of fil 2 OUtPUT a PRINTED OUTPUT I The interpreter may have output printed either using a SPRNT macro in response to an XPRNT insruction in the user program or using an XSNAP macro to perform services requested by an XDUMP instruction b PUNCHED OUTPUT The interpreter may have cards punched using an PNCH macro when the user program contains an XPNCH pseudo instruction Note that in some circumstances the cards to be punched may be listed on the printer instead See the INTRODUCTORY
195. e entry has been saved correctly and that LTGET2 is retrieving literal information properly entry exit no particular label between labels MONOLB2 and MOPUT i e just before UTPUT record blocks for statement 1 is called to save all the current source prints two blocks of storage 12 bytes of the RCODBLK cr ated by either IAMOP1 or IBASM1 and the section of the assembler control table from AVLOCNTR to AVDWORK1 This XSNAP disp lays the most important pass I variables of the assembler and also all record b saved As such locks before they ar it checks many sections of pass I processing code for correctness CSECT T MPCONO MTCON2 OPCO OUTP SCAN SDT t SYMO UTOP D1 UT RS RM PS RS MASK H bi X TRACE MODE NO BEE 90 CO SNAP CD note this module IO 90 SNAP BEI CO SNAP CO OUTPUT LABEL LOCATION OUTPUT PRODUCI ASPLM660 8 Eri Jg N PURPOSE for interior XSNAP s no tracing is done at all entry exit entry exit entry exit of OUINT1 entry of OUTPT2 all SPI all all other entries exits should have some XSNAP s added entries exits entries exits entries exits exit from UTGET2 entry to UTPUT2 a 11 other entries exits e ADDI The IBASM1 IDASM2 INPUT1 OPCODI TIONAL DEBUG CODE
196. e it printed 5 CACON2 CBCON2 CCCON2 CFHCN2 CPCON2 CVCON2 CXCON2 5 CZCON2 OUTPT2 UTPUT2 6 CDECN2 ERRTAG CODTL1 scan DS DC literal constant build CNCBLOCK for it 5 CACONI CBCON1 CCCON1 CDECN1 CFHCN1 CPCON1 CVCON1 5 CXCON1 CZCON1 6 ERRTAG EVALUT 8 SDDTRM SYENT1 enter symbol in symbol table return table entry for it 5 ENTRIES CACONI Pass I A type constant processor 6 SCANCO CACON2 pass II A type constant processor CBCON1 pass I B type constant processor CBCON2 pass II B type constant processor CCCON1 pass I C type constant processor CCCON2 pass II C type constant processor CDECNI pass I D and E type constant processor 6 CDECN2 CFHCN1 pass I F and H type constant processor CFHCN2 pass II F and H type constant processor CPCON1 pass I P type constant processor ASPLM200 8 CPCON2 pass II P type constant processor CVCON1 pass I V type constant processor CVCON2 pass II V type constant processor 7 SYFIND CXCON1 pass I X type constant processor CXCON2 pass I X type constant processor CZCON1 pass I Z type constant processor CZCON2 pass II Z type constant processor ERRLAB flag a label error saving scan pointer 6 ERRTAG OUTPT2 format and print a statement with M SPRNT XXXXPRNT UTPUT2 load and duplicate object
197. e nature is such to Special consideration or treatment independent of the rest of the manual The information in the Appendices should be especially useful to any person performing modifcation to the ASSIST source program C WHEN should this manual be used This manual may be consulted before generation of an ASSIST system is performed in order to insure that the desired options are present This manual definitely should b xamined before reading the source program of ASSIST While the source program contains extensive internal documentation overall structure is detailed in this manual and provides th asiest method of locating anything in the source program D WHERE does this manual fit into the literature he documentation for the ASSIST system consists of the following ASSIST INTRODUCTORY ASSEMBLER USER S MANUAL This manual gives all necessary information required to run jobs under ASSIST describes the subset of S 360 Assembler Language accepted by ASSIST and describes the output produced by ASSIST THE USER S MANUAL SHOULD BE EXAMINED BEFORE ANY OTHER DOCUMENTATION ASSIST ASSEMBLER REPLACEMENT USER S GUIDE This manual gives the information required to run a replacement program for a module of ASSIST It shows deck setup debugging aids register conventions and error messages It should be examined by any instructor mak
198. e single large ock of memory has been obtained for a workarea Zeroes workarea which is useful for debugging and so minimizes size of any dump caused Decode DEBUG PARM option in individual parameter field analysis section between labels APADUMP and APAI stores value given by DEBUG into AJODEBUG byte NOTE this section is required since this is the only code which sets flag AJODEBUG Produce separate debug mode output consists of the following sections just before XXOPENOK opens a DCB after XXPRINT performs PUT of a line after XXCOUNT provides separate DCB for XXXXSNAP The extra code here permits the programmer to obtain internal debugging code on a separate output device if he so desires If amp S DEBUG 1 i e production mode XXXXSNAP uses the SPRNT macro XXXXPRNT csect to produce its output which means that its output will be interspersed with any output produced by the rest of the System If this is not desired a separate DD card and DCB can thus be used to provide separate output ASPLM660 5 2 THE ASSEMBLER a FLAG BYTE AVDEBUG in AVWXTABL dummy section b FLAG SETTING this flag is given a value when a special opcode is encountered in the user program during either the first or second pass of the assembly This opcode is as follows DEBUG passt self defining term pass is either 1 or 2 signify
199. e time looking it up again SRSBNP 5RI td D x ASPLM600 1 APPENDIX I GEN LT RAL CONVENTIONS AND INFORMATION A PROGRAM DOCUMENTATION 1 PHILOSOPHY AND GENERAL DESCRIPTION In general the documentation philosphy followed inside ASSIST is to put as much documentation as possible inside the source program to keep it from being separated from the program and to keep it in machine readable form Commments cards are set up in such a way that comments of a global nature e g subroutine entry exit conventions dummy section descriptions etc can easily be extracted from the Source program and printed in summary form ASSIST documentation is reasonably heavy Approximately 20 of all source cards in the system are comments cards At least 95 of all machine instructions and macro calls have comments with them Many assembler instructions and conditional assembly instructions also have comments In addition to comments program readability is aided by liberal use of SPACE EJECT and TITLE cards to block off logical parts of the program Every control section and most macros and dummy sections are titled 2 INTERNAL DOCUMENTATION FOR SUMMARY USI El Certain sections of the system have comments cards which are not only useful for understanding the sections to which they belong but which may be required as part of a
200. ed This checks illegal opcode for being X 83 If it is control passes to EXDIAG which executes the instruction Execute Diagnose instruction after section labeled EXSI i e after other SI instruction interpretation code Moves immediate field of the instruction to ECFLAG2 Note that this and the code just described make up the only way to set ECFLAG2 at the current time and so are required for debugging usage 4 THE REPLACE MONITOR The Replace Monitor currently contains no embedded debug code gt lt NUMBER SEQ1 67000000 NEW1 67000100 INCR 100 INSERT YES ASPLM670 1 APPENDIX VII SYSTEM RESOURCE REQUIREMENTS JOB CONTROL LANGUAG G A SYSTEM RESOURCE REQUIREM Lr NTS This section describes the system resource requirements needed to run ASSIST 1 1 Certain of these requirements may be necessary only to supply particular facilities inside ASSIST 1 MEMORY a PROGRAM CODE AND PREALLOCATED DATA AREAS A full ASSIST supporting all possible options allowed requires less than 64K bytes and generally would require less since many options are provided which would not be used at a particular installation A reasonably useful version can be generated to use 28K bytes or less if the large options are omitted and amp SOPTMS 0 for instance Under 0S 360 it
201. ent If one is found it calls OPFIND to determine whether the opcode is legal and if so which one it is OPFIND returns the address of an opcode control table entry OPCODTB which contains various flag values 3 bytes Among other things the first two bits of one of the bytes determines what type of instruction has been found MOCONI now scans for an operand field setting the scan pointer to the address of the first blank after the opcode if there is no operand ASPLM200 4 The type of instruction is determined and the proper second level subroutine is called to process the statement IAMOP1 for machine operations IBASM1 for assembler statements Each second level program performs any location counter alignment required for the statement performs some scanning of the statement depending on its type and determines the total length of the statement to be added to the location counter Each creates a record code block for variable data RCODBLK and returns the address of it to MOCONL MOC ONT completes the RCODBLK by placing the beginning location counter value for the statement in the block and also places this value in the symbol table entry for the statement label if there was one The location counter is incremented and UTPUT1 is ccalled to save all o the record blocks which exist for the statement If the statement was an END statement MOCON1 returns control to MPCONO otherwise it repeats
202. ernal symbol dictionary operations 15 EVALUT General expression evaluation 16 IAMOP1 Pass I machine operations processing 17 IBASM1 Pass I assembler operations processing 18 ICMOP2 Pass II machine operations processing 19 IDASM2 Pass II assembler operations processing 20 INPUT1 Read source cards construct record blocks 21 LTOPRS Literal constant table operations 22 MOCONI Pass I main control program i e eee a 23 MPCONO Assembler overall main control program 24 MTCON2 Pass II main control program leen 25 OPCOD1 Mnemonic operation code lookup 26 OUTPUT Format and print assembly listing 21 SCANRS Scanning utility Programs mese ase eE rh nt 28 SDTERM Self defining term evaluation 29 SYMOPS Symbol table operations x iE ee i ads 30 UTOPRS Utility data set simulation Co TABLE CONTROL SECTIONS s erette a pret s RR hom ER ca G EN eve ai 1 VWXTABL Assembler main communication table ASPLMO10 6 PARI ELL PEERY INIERERETER Siue eS Ee ei rate ata deg 400 1 A OVERALI CONTROL LOGIC ig dere a ERA A RUE 400 1 ENEE we Sa Ws at e SERE A
203. es a call to the module XXXXSNAP to perform any output formatting and printing All XSNAP calls in a section of code can be nullified by setting the GBLB variable amp XSNAPST to 1 with the exception of the XSNAP calls which have a value in the third position of the T operand These calls are always generated since they are used to produce completion dumps or user execution time debugging dumps e XSRTR This macro is called to create trace code for SSAVE or SRETURN and is a modified version of the normal one No trace code is created if amp SDEBUG 1 or if amp TRACE NO The XSNAP call it creates performs a TM AVDEBUG amp DEBUG so it is currently used only in the assembler C INDIVIDUAL SECTION DEBUGGING CODI ASPLM660 3 LT DESCRIPTION For each major portion of the ASSIST program this section notes the debug flags used the methods by which they are set how they are tested and every place in each control section where debugging output may be produced It also notes any other debugging code present Please recall that none of the code mentioned below is generated if amp SDEBUG is set amp SDEBUG can be to l i e a pure production program If necessary changed at various places in order to produce debug code in some sections but not in others However the current version does not do this anywhere 1 MAIN CONTROL AND SERVICE SUBPROGRAMS
204. have new entries added such as the PARM field table in csect APARMS or the opcode table in csect OPCOD1 One table macro which is used very heavily is the AL2 macro which generates a list of halfword offset values of labels from a given base label Jumps are then taken by selecting one of the offset values using codes which are multiples of two then taking an indexed branch to the base label This technique is used instead of the more common multiple of four codes and branch table method because it is at worse only slightly slower and uses only half the space 3 NONOBVIOUS CODI G In general the code is written in a reasonably straight forward fashion However in order to fulfill all the conflicting goals of ASSIST high speed small space replacibility of assembler modules linkage conventions close to 0S 360 ones and provision for future I O simulators requiring large space some sections of code are now optimized in a nonobvious way a Some instructions are modified during execution As mentioned above under SYMBOLIC CODING all modified instructions use the symbols S or SCHN to make this fact clear b Most routines save and restore only those registers required and some routines have every single register allocated at some points in their execution The register allocation comments at the beginning of such routines describes this however so that free registers can be found if needed
205. ield is given relative to the ORIGINAL value of AVGEN2CD before the cod was generated ADDRESS NAME if any description 1 RSBSCAN reserved for future use 2 RSBNUM length 1 of REBLK if exists i e will become REBLN 8 RSBFLAG flag byte for RSBLOCK see notes below 4 RSBLENG length 1 of generated statement This value RSB L will become the actual RSBLENG for the generated statement D last byte of generated statement 5 RSBLENG first byte of generated statement 5 RSBLENG 1 last byte of REBLK if exists 5 RSBLENG 1 RSBNUM first byte of error code scan ptr part of REBLK RSBNUM will become REBLN NOTE this setup assumes RSBSL 4 length of RSBLOCK fixed section NOTES ON RSBLFAG the following are possible combinations of flags in RSBFLAG with what they are used for SRSBGENR normal generated statements with no local ERRTAG errors attached already No REBLK exists inthis case SRSBNP a macro call will not be further processed but will be numbered Also COMMENTS cards SRSBNPNN SRSBMERR a special error message will not be further processed expcet for printing but is printed specially as error message SRSBGENR SREBX like SRSBGEBR except some normal errors are are already attached for any illegal statment such as illega opcode so that MOCON1 doesn t wast
206. ing during which pass AVDEBUG should be set It will have no effect on the other pass self defining term is the value to which AVDEBUG is set The actual setting of AVDEBUG is done either in IBASM1 or in IDASM2 for pass 1 or 2 respectively and takes effect immediately Note that this requires code in IBASM1 IDASM2 and OPCOD1 to be created as debug version modules as noted in section e c FLAG TESTING various XSNAP macros perform Test under Mask instructions referencing AVDEBUG In addition many of the SSAVE and SRETURN macros used eventually generate XSNAP calls also In most cases each csect uses only one or two masks for testing The XSNAP operand used in this case is TF AVDEBUG O mask TM d DEBUG OUTPUT LOCATIONS the following lists the control sections of the assembler which may produce debugging output Two types of ntries are given If a mask and mode are given this means that each entry and exit point in that csect uses the given mask to test AVDEBUG and produces the output described s amp DEBUG and amp TRACE If the information given applies only to certain entry exit points this is noted and it is assumed that entries exits not mentioned print nothing The second type of description gives the mask used in an XSNAP interior to the control section The information here is similar to that given in section C 1 d of this Appendix
207. ing use of ASSIST for replacement assignments ASSIST SYSTEM DISTRIBUTION WRITEUP This manual supplies the procedures required for generating an ASSIST system for given options and requirements Concerning options available for generation it briefly notes the most likely combinations which may be used For unusual circumstances the reader is referrred to the ASSIST PROGRAM LOGIC MANUAL for further details on options ASPLMO10 3 HOW should this manual be used by various groups of people The reader intending to examine the ASSIST source program should consult the following INTRODUCTION APPENDIX I GENERAL CONVENTIONS AND INFORMATION PART I MAIN CONTROL AND SERVICE PROGRAMS Section A Depending on area of interest any of PARTs I IV and any of the Appendices ASSIST source listing should include at least an assembly listing and possibly a utility listing of the complete source The reader desiring more detailed information about generation options than supplied by the ASSIST SYSTEM GENERATION MANUAL should examine the following sections INTRODUCTION APPENDIX II SET VARIABLES AND CONDITIONAL ASSEMBLY APPENDIX VII SYSTEM RESOURCE REQUIREMENTS JOB CONTROL LANGUAGI APPENDIX VIII IME AND RECORDS PROCESSING El he reader desiring only a general idea of the internal workings of
208. iring him to specify a value Two distinct versions of output record control are available i e amp SRECORD 0 or 1 or 2 ASSIST always counts output records and never will exceed the amp STIMER 2 which limits given but the last option allows a function like permits ASSIST to query the operating system to determine the actual remianing records again removing a value which must be supplied by the user otherwis Page con desirable at the number of MULTIPLE perform contr associated wi effects depe trol amp SPAG E 1 permits complete control over the number of pages of output allowed by any phase of a run and is of course any installation which performs accounting and control on pages OPTIONS al ol tht nding on th MULTIPLE is most conve many provisio default valu OP ns ION SOURCI nient to do so parameter analysis routine area and ca or limit valu S ar es values given APARMS for numerical options ES permit values to b allowing for both is completel for future modifications and additions gathered in one place in the program n be easily modified to run with different default values making BATCH the default low flexiblity in specifying the values used to Each of the three areas has at least 3 parameters and are set up in such a way as to allow various Specified wherever it limits and defa
209. k Kk Kk XK Kk XK Kk XK Kk Kk k XK Kk Kk Kk Kk Kk Kk TE kk Ob ACA X KE F OX F o FF X F Xo F Xo Xo KF X D D D D 32 OR OX OX OX X X X X X ASPLM641 40 CSECT MCSCOP THIS ROUTINE SCANS A MACRO INSTRUCTION OPERAND THE OPERAND MUST CONFORM TO A STANDARD VALUE AS LAID DOWN IN SECTION 8 OF IBM GC28 2514 ENTRY CONDITIONS AVMBYTE1 FLAG SMSBLIST EXPECTED SET IF ALREADY INSIDE SUBLIS S EXIT CONDITIONS RA DELIM PAST OPRND IF STND VALUE ELSE POINTS AT ERROR RB 0 IF STANDARD VALUE ELSE SER MESSAGE RC LENGTH OF OPERAND IF OKAY S S rj Ur RD TYPE OF OPERAND IN THIS CASE TYPE WILL BE ONE OF O NULL N SELF DEFINING TERM OR U ALL OTHERS L S CAN BE S AFTER SCANNING 1ST SUBPOPERAND RE VALUE OF SELF DEFINING TER AVMBYTE1 FLAG MINQUOT HAS INDETERMINATE VALUE USES MACROS SSAVE SRETURN SSETRT SCALL USES DSECTS AVWXTABL CALLS SDBCDX Ob OX F F F F F F Xo X F Xo Xo F HF ox
210. lag AJOMACRH is on if Assembler H options allowed FUTURE USE lag AJOMACSL is on if user desired to obtain macros from library mj nj nj EXIT CONDITIONS REGISTERS RB return code showing action to be taken by MOCON1 0 gt MOCON1 should call INCARD to obtain the next source cardimage fromthe card reader This requires that MACRO1 has totally disposed of the current source card residing in RSBLOCK etc This is normal return for 1 2 and 3 except AIF AGO branches 4 gt the current statement exists in the usual record block area is probably a generated statement or the statement found when doing a forward read for open code AIF AGO It should essentially be processed as though it had just been read via INCARD altough the processing may differ slightly for the two cases given i e the stmt may or may not be a generated statement This return would be a normal return for case 3 AIF AGO and case 4 8 gt a statement exists in the usual record block position but UTPUTI should be called immediately to store it away i e it probably has appropriate errors attached This could occur for any macro type statement found out of order MACRO GBL LCL etc or perhaps for error messages caused by errors in AIF AGOing in open code This would be an abnormal return from cases 1 2 3 SUM
211. list of the entry conditions for the entry point usually consisting of a list of the parameter registers for the entry point and their usage X EXIT CONDITIONS This statement precedes a list of the exit conditions for the entry which is normally a list of parameter registers and their usage GE CALLS list of entry point names separated by commas A CALLS statement gives an alphabetical list of all entry points which may be called by this subroutine when entered form the entry point associated with the block with the exception of the special subroutines which can only be called by macro expansions and thus do not necessarily follow normal linkage conventions These include the input output and debugging modules XXXXREAD XXXXSNAP etc One or more CALLS statements may be needed to complete the list us USES DSECTS list of dummy sections referenced inside the section of code in alphabetical order C Wei ES MACROS list of highest level macros used by the section of code in alphabetical order Rus NAMES description of any additonal restrictions on the labels used in this section of code d IN of the sec CONDITIONS Note follow the was only s SUB tion s purpose as of 9 1 70 standard format tarted recently e MACRO Macro documentation includes a brief statement of the purpose and using INternal SUBroutine Internal subroutine comment
212. mentation 28 per cent comment cards GUIDES IQ EBRECTIVE USE lea A A ae s aY 010 1 TNTRODUCTION ea a A xeu eee ta EMS are 010 3 TABLE QR CONTENTS SO sald ter ear ania a a ea ene ah len ahaa el 010 4 PART I MAIN CONTROL AND SERVICE PROGRAMS o ooooooooooo 100 1 A OVERALL CONTROL LOGIO ire NR TR ia alee cat Bete A Slee Wr hice day wear Sk Ye 100 1 l5 ENE UM esc penser oben dred te e State ss Roads Shenae E Ru bu doe She ts 100 1 2 AOU PUT qn uade iN tur agg o aerea 100 2 3 OVERALL CONTROL LOGIC SUMMARY oooooooooooooonooooooooo 100 3 4 5 ENTRY POINT HTERARCHY TABLE oi E ad serie a 100 6 B ROUTINE SUBROUTINE LOGIC iene ee eae uud e RU RV dein 110 1 1 ASSIST ASSIST System Main Control Program 2 AOBJDK Punch and Load Object Decka oo 3 APARMS ASSIST PARM Field Analysis Routine 4 XXXXDECI Decimal Input Conversion ees 5 XXXXDECO Decimal Output Conversion eee 6 XXXXIOCO c Tnput Output Control sag 304 45 4 eni dos que e bte o ue Tess 7 XXXXSNAP Debugging Output Completion Dump 8 XXXXHEXI Hexadecimal input conversion 9 XXXXHEXO Hexadecimal output conversion 10 XXXXSPIE SPIE handeling module 11 XDDGET XDDPUT monitor for XGET XPUT 12 XXX
213. mmarizes the overall flow of control in the entire ASSIST system Since overall control resides entirely in the control section ASSIST this section is essentially a brief summary of the later section B 1 of this part This section can be used to get a quick overview while the later section describes the ASSIST control section in more detail I a ENTIRE RUN INITIALIZATION After receiving control from the operating system ASSIST first sets initial values for any flags which may be required to be set at this time Certain operations occur only 1 time for an entire ASSIST run and are thus described here although they occur after the first case of the processing described in b below These include calling INSUB ASMSINIT which obtains the largest single block of free storage available then returns some to the operating system for buffers modules etc The value returned can be controlled by the PARM field FREE option ASSIST then calls entry XXXXINIT of csect XXXXIOCO This entry OPENs the DCB s for the source reader SYSIN and line printer FTO6F001 and sets flags in AJOBCON denoting the success or failure of OPENing the two DCB s If either fails ASSIST writes a message to that effect on the system log then terminates with a condition code of 16 b ASSE I BLY EXECUTION DUMP CYCLE 1 JOB ASSIST now makes 3 or 4 calls to routine APARMS which is use
214. ncrements the location counter by he length of the instruction and sets up registers with several codes ndicating actions to be performed for the instruction A four way ranch is taken to separate the instructions into the following types R RX SI RS SS each of which has a primary decoding section J DW TO rt D At the primary decoding section for each type common processing for all instructions of that type is performed This includes decoding register addresses some fetching of simulated register values decoding operand addresses and checking of storage addresses for legality After this has been done each primary decoding section branches to one of a number of secondary decoding sections belonging to it Each of these sections completes the interpretation for a single instruction or for a group of instructions which can be handled in the same way After this has been done control passes back to code for checking legality of a successful branch or to code for checking instruction count limit excession The next instruction is fetched and the cycle repeats Certain instructions can cause a call to an external routine These include all the X macro pseudo instructions and any SVC calls 4 ENTRY POINT HIERARCHY TABLI E As of 11 30 70 the interpeter consists of only one control section and has no other internal modules External module calls are shown by the overall hierarchy chart Part I
215. ning only BATCH jobs FTO6G6FO001 DD SYSOUT A FTO7F001 DD SYSOUT B FTO8F001 DD UNIT SYSDA SPACE CYL 10 1 DISP NEW DELE STEPLIB DD DSN library UNIT unit VOL SER vol DISP SHR Gl Sal H eu where library unit and vol describe the library containing the ASSIST load module if not located in LINKLIB he ddnames above were chosen for compatibility with FORTRAN and especially with WATFOR If different ones are desired the ddnames in the DCB s in the control section XXXXIOCO of ASSIST must be changed In addition the BATCH control cards JOB SENTRY were chosen for compatibility with WATFIV BATCH cards ASPLM670 4 C OPTIONAL FACILITY STORAGE REQUIREMENTS The following list gives the approximate storage requirements of a number of the optional facilities provided by ASSIST If possible experiments should be done with the distribution version of the ASSIST program to see the effects of the various options allowed and then any of those not desired can be removed thus saving time and probably more important storage In some cases the presence or absence of various options interacts but the differences in storage are minor The options are listed in alphabetical order by the set variable value used to include the given option amp SCMPRS 1 330 bytes also requires 4048 bytes in dynamic area if CMPRS option actually
216. o Xx INSUB IDEVAL EVALUATE RELOCATABLE EXPRESSION 4 gt INSUB IDREGET CONVERT REGISTER CHECK VALIDITY ASPLM640 27 CSECT INPUTI 1 INPUT AND MANIPULATION OF SOURCE CARDS V ENTRY INCARD CALLED TO GET CARD AND CREATE RSBLOCK HIS ENTRY READS 1 STATEMENT 1 3 CARDS AND SETS UP TH RECORD BLOCKS RSBLOCK AND RSCBLK IF CONTINUATIONS OR SEQUENCE NUMBERS ARE USED IT IS CALLED DURING PASS 1 OF HE ASSEMBLY IF AN ENDFILE INDICATION IS ENCOUNTERED IT CREATES A PSEUDO ENDCARD SINCE THE MAIN PROGRAM OF PASS 1 MOCON1 ONLY STOPS AFTER AN END CARD IS FOUND AS OF 8 17 70 INCARD IS THE ONLY ASSEMBLER ENTRY DOING CARD READING I O F EJ N SETTING UP THE RSBLOCK INCARD CONCATENATES THE SECTIONS F A CONTINUED STATEMENT AND REMOVES BLANKS TO SOME DEGREE ROM THE TRAILING EDGE OF HE STATEMENT IT ALSO INSERTS HE 3 CHARACTERS BLANK APOSTROPHE BLANK AFTER THE LAST NONBLANK CHARACTER IN THE SOURCE STATEMENT HIS IS CRUCIAL RR SCANNING OF HE SOURCE STATEMENT WITHOU ENGTHS TO BE CARRIED FROM ROUTINE TO ROUTINE
217. ode of the instruction being interpreted is moved into an instruction of the same format where ever possible and is actually executed A spie is used to catch the user interrupts possible which were not already checked for After each instruction back to the top of the main is repeated possible regard is entire control this is interpreted decoding loop and passed process ASPLM550 1 ASSIST MACRO PROCESSOR INTERFACE SPECIFICATIONS This section specifies the interfaces between the macro processsor modules and the remainder of the ASSIST assembler also noting variables which may be of use to the macro processor or are needed for various communications The following items are given ODULES SET VARIABLES VARIABLES PARAMETERS INDEX TO THIS SECTION MODULES MACINT 1502 MACRO1 1 HS MEXPND 1 09 ASPLM550 2 MODUL G un MACINT MACINT is called 1 time by MPCONO before Pass 1 of the assembly is begun Any required initialization can be performed at this time Internal initialization should be omitted if ASSIST is not in MACRO mode and such code should be omitted particularly any which obtains working storage The following te
218. of of in the first the same instruction checking for as an index byte value decoding of t which of the table entry are active to do checking not performed in of these and a short description he instruction entails checking Several subr decodi internal the main follow ag bits outines ar ng loop xecuted names The EICHKST U sed when a privileged operation is found to check if the interpreter is in the Supervisor State sed to provide the instruction trace if and count instructions for the Instruction xecution Count Facility if enabled sed to calculate an address from the base displacement found in the instruction Used to check fetch and store they are in the program area EITRIC U enabled Dp E EIBASDSP U EIMSFCHK addresses to see if 7 and 8 into a of the register Following the common decoding process table entry for a given instruction are bytes loaded main R1 A branch on this displacement is made to execut th passed program ver label EISPEJMP special routine associated with each instruction wher with The instructions were grouped to the special routines i e 1 special routine may be used to interpret many instructions Register usage in EXECUT remains the same no matter what the instruction The opc
219. of file indicator or ASSIST internal control card SJOB SENTRY or STOP card used in BATCH run ASPLM200 2 2 OUTPUT a Source listing The ASSIST source listing resembles the standard assembler listing very closely but may be omitted if the NOLIST option is specified All statements which are flagged are always printed regardless of the status of print control The assembler prints various statistics at the end of the listing which note the numbers of errors and warnings and describe the amount of core storage required to perform the assembly b Object program The object program is produced at the beginning of the dynamic workarea and is ready for execution at the end of the assembly The object program is not created if NOLOAD is specified in the user PARM field The assembler also stops producing code if the number of errors exceeds the limit at any time c Values in main assembler table The assembler sets various flags and values in the main assembler table whose address was passed to it originally These values are then used by the calling program and include the following Two bytes of flag bits same as those passed in but with more bits possibly set One bit notes whether the assembled program should be permitted to be interpreted Two words give the real low and high limits of the assembled program in memory Two words give the low and high limits of the program as assembled i e the addresse
220. on the names of these symbols 5 REGISTERS Register equate symbols normally begin with R but a few routines have some local equates which begin with the first two characters of the control section in which they are used 6 MISCELLANEOUS INFORMATION In general symbols beginning with are of a global nature In addition no symbols contain the characters or which are reserved for future expansions of ASSIST ASPLM600 6 el Wei D CODING CONVENTIONS AND TYPICAL TECHNIQU 1 SYMBOLIC CODING Symbolic programming is used heavily in ASSIST Register equates are always used and equate symbols are provided for most lengths Very few nonsymbolic lengths are used anwhere in the code Since code modifcation is used in ASSIST to save time and space the following rules are followed to make the code readabl a All instructions modified during execution contain either of the symbols or CHN in the fields modified If an opcode is modified ne of these symbols is added to the first operand field b All modified instructions are labeled if they are modified by ny instructions other than the ones immediately preceding or following the modified instruction 0 2 TABLE MACROS In order to facilitate changes in forms of large tables almost all tables hav ntries generated macros instructions This is especially useful for tables which often
221. or messages are not printed just the error numbers and this change saves approximately 1K by itself Ed amp SPAGI GBLB ASPLM610 5 0 no page control code exists 1 page control code exists and various options are added CPAGE L P PD PX SS SSD SSX This option adds code to ASSIST XXXXIOCO amp SPDF GBLA amp SPMX amp SPDDF GBLA amp SPDMX amp SPRIVOP GBLB default and maximum possible values of P option i e total number of pages allowed for 1 SJOB run in a BATCH or whole run otherwise Only meaningful if amp SPAGE 1 default and maximum possible values for the PD option number of pages saved for user completion dump Only meaningful if amp SPAGE 1 0 privileged operation codes are not accepted 1 privileged operation codes are assembled and recognized by the interpreter EXECUT This variable affects the opcode tables in OPCOD1 and a few lines of code in ICMOP2 devoted to analysis of the operand forms needed only by privileged operations It also affects code in the interpreter EXECUT amp SPUNCH GBLB 0 no real card punch exists in ASSIST This adds code amp SPXDF GBLA Attempted punching will be simulated 1 real card punch exists to XXXXIOCO default and maximum possible values for the PX amp SPXMX option number of pages allowed for user execution plus comple
222. ovided by the user PARM field In addition an STIMER macro may be set to interrupt if the user overruns his time limit The assembler main program MPCONO is then called to assemble the user program and load the resulting object code into the beginning of the single large workarea used by the system ASPLM100 4 If the user specified the OBJIN option thus showing that an object deck is supplied in place of the source deck ASSIST skips the actions described above and calls AOBJIN to load the object deck assuming that ASSIST has been generated to allow this option After the user program has been assembled ASSIST tests to see if the user did not desire execution of his program or if the program has become unexecutable because it contained too many errors In this case execution and completion dumping are skipped and section f is done d USER PROGRAM EXECUTION If a BATCH run is in progress ASSIST requires that a SENTRY card be supplied after the user program to initiate execution so it reads cards until one is found If a JOB card is found first it returns to section b and begins processing of next run Using various values from the assembler control table AVWXTABL ASSIST creates an execution control block ECONTROL which contains all necessary information for describing the user program and how it should be treated This table is actually located in a part of the assembler control table
223. p E TYPE CONSTS gt ENTRY CDECN1 1 SCAN BUT DO NOT ASSEMBLE D OR E TYPE CONSTS ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT ERINVCN E CALLS CDECN2 USES DSECTS AVWXTABL USES MACROS SRETURN SAVE V E Es H po K Q DECN2 1 2 SCAN ASSEMBLE D amp E TYPE CONSTANTS ENTRY CONDITIONS RA SCAN POINTER ADDRESS OF 1ST CHAR AFTER PREVIOUS DELIMETER RB LENGTH 1 OF 1 CONSTANT OF 1 OPERAND TO BE ASSEMBLED EXIT CONDITIONS RA SCAN POINTER ADDRESS OF DELIMITER STOPPING SCAN OR ERROR RB 0 CONSTANT WAS LEGAL NO ERRORS RB NONZERO VALUE FOR ERROR CODE INVALID CONSTANT S RC ADDRESS OF PROPERLY ASSEMBLED CONSTANT CALLS SDDTR DSECTS AVWXTABL ACROS SCALL SRETURN SSAV E bi RINVCN CP D e T GS LO Eu x A X TZ TZ F F F ASPLM640 12 gt CSECT CFHCNS 1 2 PROCESS FULLWORD HALFWORD CONSTANTS gt USES DSECTS AVWX
224. racter of the opocde VARIABLES AVSOLAST is set appropriately as limit to scanning required EXIT CONDITIONS RB 0 gt 0 or more generated statements exist in dynamic high and MOCON1 should call INCARD continue calling INCARD to obtain them RB nonzero value gt error in macro call statement which prevents it from being expanded such as being an undefined or invalid opocde or any other reason which prevents expansion In this case RB error code to be supplied to ERRTAG and RA scan pointer to the error MOCON1 will flag the statement immediately and call UTPUTI to save it Also the RSBFLAG should be set to show RSBNP tt ASPLM550 11 FORMAT OF GENERATED STATEMENT BLOCKS The following describes the layout of generated statements AVGEN1CD contains the address of the first byte following the last byte generated for the first statement generated while AVGEN2CD has the address of the first byte of the last statement generated so that AVGEN2CD lt AVGEN1CD Essentially an information block for a generated statement consists in descending order of addresses of the fixed part of an RSBLOCK slightly modified the variable part of one source stmt and optionally the error code scan pointer sections of a REBLK if there are any such errors in the statement The following gives the layout of the block The ADDRESS f
225. rly and are occurring where they should PRIMARY FETCH after common code to fetch next instruction and do preliminary decoding i e between labels EXFEXENT and EXEXLEN prints GP registers contents of new ECSTACKD lock for instruction just fetched and section of CONTROL from ECFPREGS to ECILIMP which shows imulated user registers and most execution flag lag variables This XSNAP essentially displays the complete status of the simulated user machine with the exception of the user storage area mun wo USER AREA just before label EXEXLEN i e before th instruction which has just been fetched is executed prints entire contents of user s simulated storage area with real memory addresses which are not normally the ones shown on the user assembly listing This XSNAP is used for debugging instructions which modify memory in any way For instance this can be useful if new SVC routines or 1 0 routines are added to the interpreter ASPLM662 2 T e ADDITIONAL DEBUG CODE PRODUCES NO OUTPUT The following sections of code while not producing output are required for use in debug mode and are conditional on amp SDEBUG CSECT PURPOSE LOCATION DESCRIPTION EXECUT Test for Diagnose instruction just after label EX0C1 which is label taken when an illegal operation code is discover
226. rogram If so a flag is set in the execution control block ECONTROL The interpreter EXECUT tests this flag after every successful branch by a user program and terminates user program execution if the flag has been set If the user program was still being assembled ASSIST sets the STOP flag in the assembler control table which terminates assembly when the next statement is encountered during either assembly passes ASSIST also sets the RECORDS EXCEEDED flag which is tested by the printer punch i o modules This is sufficient to terminate the user dump if it is being produced See APPENDIX VIII for a complete description of timer records pages control as a number of different effects can be obtained by using various combinations of generation options and PARM values ENTRY POINT HIERARCHY TABLI Fl The following lists all entry n the course of an entire ASSIST run assembler section of ASSIST which h section A 4 Th ntries are list level is the maximum number of modul given module i e ASSIST has a lev program Th ntries are listed fir within each level Under each entry first by level then in alphabetical be called by use of certain macro in names are also given Any entry whi ASPLM100 6 ames which may be called duirng excluding internal modules of the as its own table see PART II d in order by level where th es in a calling chain above the el of 0 beca
227. rogram label EI of register specification needed The sixth table byte is flag he length of storage being 8 of the tabl represent a halfword SPEJMP This displacement is used a in branching to the special routi instruction These two tables The secondary control to the EIXTAB macro repeated calls to the are located table EIOPC The main con EITAB macro ne which actually interprets each the bottom of th is created using EICONTAB at DTB trol table interpreter repeated calls is created using ASPLM400 7 OV Lu RALL PROGRAM LOGIC FLOW Execut is called from the main control At entry to Execut register 10 has the address Two base registers are used R13 first then R12 the instruction stacks is performed along with of the fake user registers and some work areas After initialization decoding and interpretation instruction begins Each instruction is interpreted manner as follows The instruction is inserted into the stack and the ASSIST instruction counter is decremented a timer run out The opcode of the instruction is used into the secondary control table EIOPCDTB The one in this table is multiplied by 8 and is used as an index into the main table EICONTAB The main table entry for the instruction being interpreted is moved into an 8 byte work area EICTNTRY The program the ASSIST ECONTROL block Initialization of other initialization
228. run ASSIST in an operating system environment not currently allowed Some sections of this manual may be useful to the system administrator as they can aid him in determining the system resourc requirements needed to mak ffective use of ASSIST and in deciding which of the available options should be included in a given generation of ASSIST for his installation The more general sections of this manual should be useful to the instructor of computer science who wishes to provide his students with an example of a system for discussion or with possible programming projects for them to do ASPLMO10 2 B WHAT does this manual contain Each major part of this manual describes one major division of the ASSIST program Section A of each part gives a general summary of the input output and overall control logic for the modules of that part Entry point hierarchy tables included here show the structure and calling relationships among the various program components Section B of each part then gives more detailed information about each module in the given part of system In general the information is presented in each section in order from most general to most specific to facilitate easy location of any given module or any code performing any particular function The Appendices present detailed information which either concerns many of the program modules in ASSIST or whos
229. s appearing in the user assembly listing One word gives the relocation factor applied to the user program addresses to obtain the corresponding real addresses in memory One word gives the entry point address in the user program which is either the first byte of the user program or an address given ona user END card A halfword gives the number of statements in the assembly for possible use in calculating assembly rates The assembler does not return a return code in register 15 all information to be returned is placed in the main assembler table ASPLM200 3 3 OVERALL CONTROL LOGIC SUMMARY a MPCONO ASSEMBLER MAIN PROGRAM The main program initializes some areas of the main assembler table AVWXTABL sets a SPIE to trap interrupts initializes the program mask and then calls the remaining subroutines After printing the storage usage it returns control to the calling program MPCONO calls all entry points in the assembler which are required to be called in a fixed order The entry points then fall into the following groups 1 PASS I initialization entries 2 PASS I main control MOCON1 csect 3 PASS I ending PASS II initialization entries 4 PASS II main control MTCON2 csect 5 PASS II ending entries b MOCONI PASS I MAIN CONTROL PROGRAM MOCON1 receives control after all initialization has been done both for the overall assembly and for each subroutine req
230. s have been processed MTCON2 aligns the highest location counter value to a doubleword boundary then returns control to MPCONO ASPLM200 5 4 ENTRY POINT HIERARCHY TABLI Lj The following table lists all entry points called during the course of an assembly Th ntries are listed in order by level where th level of a module is defined to be the maximum number of modules in a calling chain above the given module i e the main program has a level Gf Th ntries are listed first by level then in alphabetical order within each level Under each module are listed th ntries that it may call by level then by alphabetical order Names preceded by M instead of a level number are names of macros which call intrinsic modules whose names are also given For ease of use any entry which calls no others in the assembler is flagged with an asterisk LEVEL 0 ENTRIES MPCONO assembler main control program 1 BRINIT ESINT1 LTINT1 LTEND1 MOCON1 MTCON2 OPINIT 1 OUEND OUINT SYEND2 SYINT1 UTEND2 UTINT1 UTEND1 6 ERRTAG M SPRNT XXXXPRNT LEVEL 1 ENTRIES ESINT1 pre pass I external symbol module initialization TEND1 end of pass I for literal table processor LTINT1 pre pass I literal table processor initialization MOCON1 Pass I main control program 2 IAMOPI IBASM1 INCARD OPFIND
231. s normal followed by specified similar to those of many internal subroutines do not completely signs as delimiters an T LT ASPLM600 3 ly include a brief explanation ENTRY CONDITIONS and ENTRY EXI since this usage of the macro with a list of the macro parameters If the macro uses other macros the following is included DE USES MACROS list of all macros directly called B REGISTER AND SUBROUTINE LINKAGE CONVENTIONS 1 REGISTER EQUATE SYMBOLS program different as follows a AB registers symbolic registers are always used inside ASSIST sets of register quat SOLUTE REGISTER EQUAT ES 0 15 and th registers symbolic equates are not approriate used for r The f ASSIST ass system whi RW RX RY RZ RA RB RC HO 0 6 are included and these symbols ar For instance symbols are provided In order to facilitiate debugging and comprehensibility of the A number of and they are The standard set of equates of RO R15 for general purpose set of quates FO F6 for the floating point sinc used they hav EQUAT whenever mor these are always special properties ES MAINLY FOR THE ASSEMBLER egisters 0 1 and 2 b SYMBOLIC REGISTER ollowing embler ch communicate with t
232. section to b xecuted next This is done just before a jump is done to an individual processing code section or error routine depending on the current state row of transition table and the type of symbol or delimiter just found EVFRCOEX just after label EVFRCOEX in arithmetic computation section prints GP registers This shows all results of a single evaluation of two term values and the single operator for them CSECT T IAMOE IBAS ICMOF IDAS INCA LTOP MOCON1 MASK HI Lu 907 905 HU 90 H AO 84 84 90 88 LT T OUTPUT LABEL LOCATION OUTPUT PRODUCI ASPLM660 7 ti 0 N PURPOSE for interior XSNAP s entry exit entry exit entry exit entry exit entry exit all entries exit no particular label in section LTDM LTD1E Pl just after label prints GP registers contents of 1 ENTRY literal entry LT locations are bei all literals int It can be used to LTENT1 and LTDMP1 This occurs during pass 1 when the ng assigned in order to he current literal pool make sure sections are working correctly no particular label in middle of section LTGET2 prints registers contents of the literal table entry LTLENTRY which has just been requested by calling program This is used to make sure that the address of each literal tabl
233. st can be used TM AVTAGSM AJOMACRO BZ NOINIT skip initialiation Even if no macro processing is done in a given run the following nitialization is REQUIRED if the macro processor is generated at all H 1 The fullwords AVGENICD and AVGEN2CD should be set AVADDHIH This is required for checking purposes in INCARD and UTPUT1 During processing of macro expansions AVGEN2CD contains the address of the first byte of the last temporally generated statement blocks from M EXPND while AVGEN1CD contains the address of the byte Dbeyond the first ne created so that INCARD works backwards until AVGEN1CD lt AVGEN2CD 2 Any global translate tables modified by any macro code must be set to their correct values with exception of 64 bytes of AWZEROS beginning at AWZEROS C This allows for possiblity of interrupt for time or space during a BATCH run ASPLM550 3 MACRO1 MACRO1 can be called under any of the following circumstances 1 When a MACRO command is encountered in the input source program MACRO1 is called to read and process th ntire macro definition which follows 2 If ASSIST is generated with the macro library facility MACRO1 may be called to scan a macro definition which is obtained from a macro library MACRO1 s processing is essentially the same as for 1 This type of processing is caused by finding an SYSLIB card 3 When
234. summary These sections include control sections dummy sections entry points internal subroutines and macro instruction definitions In general the most important comments for a section immediately precede it and are completely blocked off by special characters in order to make them stand out The general form of summary documentation is as follows atype objectnam brief statement of purpose x descriptive information x delimiter lin GEMS Ge ues O FUSI atype gives the type of object described and is one of the following CSECT DSECT ENTRY INSUB or MACRO objectname gives the name of the section being described Each of the different types uses certain character combinations to flag the information in the block and make it easy to pick out the comments cards containing important information of a given sort The differences are as follows atype first 2 characters delimiter cards margins CSECT DSEC ENTRY x i INSUB AE ACRO Ei e OX 0o 0X 06 F F F TZ F O6 KE F OX CA CACA OX ZZ TZ Ro X Xo F F OF gt CSECT XREFA CROSS REFERENCE CONTROL SECTION WRITTEN BY ALICE FELTE ALAN ARTZ AND RICH LONG SPRING SUM LO D to CO I THIS CSECT IS THE MAIN CONTROL SECTION FOR THE CROSS REFERENCE E FOR ASSIST IT HAS THREE ENTRY POINTS WHICH WILL BE DESC
235. taining compatibility A OVERALL CONTROL LOGIC 1 INPUT a ADDRESS OF EXECUTION CONTROL BLOCK ECONTROL All execution parameters and workareas are contained in one block which is passed to the interpreter by the calling program This design makes for flexible use of th interpreter for several differing purposes and keeps the interface between the interpreter and the rest of the system at a minimum This table contains the following items of Special importance in addition to other things A block of four simulated floating point registers The values here are used to initialize the real floating point registers and the registers are stored back here when execution is completed A block of 16 simulated general purpose registers These contain the initial values of the user registers on input contain the contents of the user registers during execution and are used to produce the completion dump after execution terminates A simulated Program Status Word Various byte flags for execution mode special error codes debug control and completion dump condtrol Two instruction count limits the first giving the maximum number of instructions to be executed and the second for decrementing and testing Two addresses giving the lower and upper limits for a storage to be printed in a completion dump These addresses may be changed during user program execution by execution of an XLIMD pseu
236. the above process for the next statement See part V for MACRO Processing description in MOCON1 c MTCON2 PASS II MAIN CONTROL PROGRAM MTCON2 is called after all of the PASS I ending routines and PASS II initialization routines have been called After brief initialization of its own it enters a loop one time for each statement MTCON2 first calls UTGET2 which returns either an indication that no statements are left to assembler or the addresses of all existing record blocks for the next statement UTGET2 also restores the record error block REBLK to its place in AVWXTABL AVREBLK if the REBLK already exists MTCON2 tests for the existence of a record code block RCODBLK If none exists the statement was either a comment or had an unknown opcode so MTCON2 just calls OUTPT2 to format and print the statement since no further processing can be done for it If an RCDOBLK exists MTCON2 sets the location counter form the value saved in it sets the scan pointer to the scan pointer saved in the RSBLOCK and then calls the appropriate second level routine to process the statement The second level routine ICMOP2 for machine instructions IDASM2 for assembler instructions performs any required operand processing then calls UTPUT2 to load any assembled object code and OUTPT2 to format and print the statement with any error messages required After all statement
237. tion dump Meaningful if amp SPAGE 1 amp P370 GBLB 0 the ASSIST interpreter EXECUT will not allow 5 370 privileged operations 1 the ASSIST interpreter will recognize S 370 privileged operation codes This variable affects only code in the interpreter Its value is set depending upon the value of amp PRIVOP and amp S370 If amp SPRIVOP 1 i e the user wants privileged operations and amp S370 O i e the user wants some type of S 370 interpretation then amp P370 is set to 1 amp SP370A GBLB Else it is set to 0 0 the ASSIST assembler will not permit s 370 privileged operation codes 1 the ASSIST assembler will recognize and assemble S 370 privileged operations This variable affects the opcode table in OPCODI and a few lines of code in ICMOP2 needed only for S 370 privileged operation codes It is set to 1 if the values of amp PRIVOP and 70 are both 1 i e the user wants privileged operation codes and also wants S 370 operation codes p se it is set to 0 amp SR amp SR amp SR amp SR amp SR amp SRI DF GBLA X DDF GBLA DMX ECORD GBLA ASPLM610 6 default and maximum values of R option total output lines and cards during 1 JOB run default and maximum values of RD option number of output records to be reserved to provide a user completion dump 0 or 1 record limit handling is done using the values of R RD
238. to reserve some portion of his time and output to be saved for a dump without exceeding either the total limit or limit for execution plus dump together If any limit is exceeded during user execution it is terminated immediately 5 SET VALUES FOR DUMP LIMITS After user execution terminates for any reason the values reserved by the D parameters are added back to the remaining counters Thus if a user consumed all of the time up to the temporary limit he still will have the TD value saved for a dump On the other hand if he still had time left he will be able to use it for his dump if he needs it If TD or RD or PD 0 he can use all of the X option values for his execution useful fora debugged program desiring maximum ouput and running time These actions are accomplished by INSUB sections labeled 20 ECOMM END In general the default and be satisfactory r ED OPTIONS AND MODIFICA nstall TION M ation ASPLM680 4 ETHODS there probably exists some combination of values for limit values for all for a given i values which will lowing describes a of the control The fol number of possible goals whic ASSIST program logic TOTAL LIMITS ARE ONLY IM total limit as desired th t the X ns Pp values S APP writeup for total limit computer
239. to save space After initializing such values as the pseudo registers Program Status Word etc in ECONTROL ASSIST calls entry XXXXSNIN of csect XXXXSNAP which performs any needed initialization for this csect which is used to perform execution time register and storage dumping ASSIST tests to make sure that neither the time limit nor the record limit have already been exceeded during assembly If so user program execution is skipped and section f is done ASSIST flags the user program in execution and calls EXECUT which is an interpreter for S 360 object code The user program is then interpretively executed The interpreter may call entries XXXXREAD XXXXPNCH and XXXXPRNT of csect XXXXIOCO to read cards punch cards and print lines for the executing user program EXECUT may also call csects XXXXDECI and XXXXDECO to perform decimal conversions for the user and may call XXXXSNAP csect to supply execution time dumps of registers and storage Interpretation of the user object program continues until some error occurs or until the program branches to the location originally given to it as a return address Errors include program interrupts overrrun of instruction count limit overrun of record limit and possibly overrun of time limit See section H for this After setting appropriate condition flags EXECUT returns control to ASSIST e USER PROGRAM COMPLETION
240. to special table This allows for easy The main contol table EI nstruction grouped or singularly ntrol table cor ndex into the main EICONTAB entries in tables byte the Bytes contain the main exceptions for every xtended centers around two t table EIOPCDTB is a 256 cording to opcodes Each byte of control table EICONTAB responding to invalid opcodes the top of of operation contains entries are used in the decoding of checking CONTAB which ach individual interpreted instruction hich ytes in length nstructio nstructio The first byte contains hines the instruction is all n have an extended opcode is mac t Each main table entry is 8 miscellaneous decoding flags lowed to run on does the he instruction a privileged n The second byte of each tab le entry contains the length of he given instruction a nd is used in updating the ASSIST PSW The third yte of each table entry contains torage checking to be performed o nstruction The fourth byte of e storage alignment needed by the gi i e b w i i t b S i flags telling about the kind of n the first and second operands of the ach table entry describes the typ of ven instruction The fifth byte of each table entry describes the typ by the instruction even or odd telling where in the instruction t modified is located Bytes 7 and displacement past p
241. uiring it It then controls the first pass of the assembly causing source cards to be read and scanned until an END card is found after which it returns control to the main program MPCONO MOCONI begins the cycle for each source statement by calling the entry INCARD which reads a source statement and builds the required record blocks for the statement The record blocks include a block for the source image and required flags RSBLOCK an optional block for continuations and sequence numbers RSCBLK an optional block for error code scan pointer pairs REBLK and an optional block for information depending on the type of operation code RCODBLK The RSBLOCK for a statement includes bit flags which note th xistence of any other blocks for a statement INCARD builds an RSBLOCK and possibly an RSCBLK if required If it encounters an end of file indication while reading it creates a dummy END card since MOCON1 executes until it finds an END card MOCONI now checks the current statement for being a comment card and scans for a label on the statement If a legal label is found it calls SYENTI to enter the label into the symbol table but does not define the symbol at this time The address of a label in the symbol table is saved in the main assembler table where it can be accessed by other modules MOCON1 now scans for an operation code in the statem
242. ults y table driven The and has ex The limit and ASSIST data ASPLM680 2 A TIME RECORDS PAGES CONTROL ALGORITHM E The reader should be familiar with PART III of the USER S GUID which describes th ffects to the user of the algorithms used In addition to the instruction count remaining counter used by EXECUT while interpreting a user program up to three other counters are maintained by the program one for each of the three areas A time remaining value is maintained using the hardware timer and the STIMER and TTIMER macos or equivalent The timer is manipulated only in csect ASSIST in the internal subroutine INSUB ASTIMR which is composed of a number of processing code sections one for each point during a job where the timer must be set or tested A records remaining count is always kept regardless of the option used to generate ASSIST For each phase of the program it is set by a particular one of several sections of an ASSIST csect INSUB called ASRECL It is then decremented by 1 every time a line is printed or a card punched csect XXXXIOCO entries XXXXPRNT XXXXPNCH If the count becomes negative the module stops producing output and returns this indication to the calling program which is sufficient to make any of the existing modules stop their execution at that point The page control code actually has
243. use it is the main st by level then alphabetically are listed th ntries it may call order Certain entries may only structions in which case the macro ch calls no others is flagged with an asterisk for ease of use in tracing calling chains LEVEL 0 ENTRIES ASSIST ASSIST system main control program 1 AOBJIN AODECK APARMS EXECUT MPCONO XXXXFINI XXXXINIT XXXXSNIN SSORC XXXXSORC XSNAP XXXXSNAP 3 SPRNT XXXXPRNT LEVEL 1 ENTRIES AOBJIN Object Deck Input only if amp SOBJIN 1 2 SSORC XXXXSORC XSNAP XXXXSNAP 3 SPRNT XXXXPRNT AODECK Object Deck Punch only if SDECK 1 2 SPNCH XXXPNCH 2 SREAD XXXXREAD XSNAP XXXXSNAP APARMS ASSIST PARM field analysis routine 2 XDECI XXXXDECI EXECUT ASSIST S 360 object code interpreter 2 XDECI XXXXDECI XDECO XXXXDECO XHEXI XXXXHEXI 2 XHEXO XXXXHEXO SPNCH XXXXPNCH XSNAP XXXXSNAP 2 XSNAP XXXXSNAP 3 SPRNT XXXXPRNT MPCONO ASSIST assembler main control program Note the following list includes any entries called by any sections of the ASSIST assembler S assembler hierarchy table in Part II section A 4 for details 1 REFAKE only if amp REPL gt 0 Also note that this call only occurs during a replace run and does not appear in the actual call sequence due to a
244. used amp SCOMNT gt 0 300 bytes approx comment counting option COMNT amp SDATARD 1 250 bytes allows 2nd card reader for data only amp SDECSA 1 42 bytes assembly of decimal instructions amp SDECK 1 250 bytes object deck punch DECK amp SDISKU 600 bytes disk utility intermediate storage amp SFLOTA 1 600 bytes assembly of floating point instructions amp SFLOTAX 1 21 bytes assembl xtended floating point instructions in addition to 600 bytes for amp SFLOTA 1 amp SFLOTE 1 150 bytes execution of floating point instructions amp SHEXI 1 600 bytes approx allows execution of XHEXI amp SHEXO 1 160 bytes approx allows exectuion of XHEXO amp SKP26 1 420 bytes allows 026 keypunch option KP 26 amp SMACROS 1 approximately 15 16K macro processor amp SOBJIN 1 1100 bytes object deck loading OBJIN amp SPAGI amp SPRIVOP 1 amp SPUNCH 1 amp P37 amp P37 0 21 0A 1 amp SRECORD 2 amp SRELOC 1 amp SR amp SR amp 537 amp 537 amp 537 0 21 0 2 02 1 amp STIM amp STIM NOTI ASPLM670 4A 380 bytes page counting control 100 bytes more code to be written this amount allows privileged operations to be assembled not executed 220 bytes unless amp DATARD 1 in which case only requires 160 bytes beyond that given above allows PUNCH 12

Download Pdf Manuals

image

Related Search

Related Contents

Untitled  平成4年横審第127号 漁船第一正徳丸機関損傷事件 言渡年月日 平成  "取扱説明書"  EMU-1 User Manual Issue 1.03  - TP-Link  Severin RG 2617  User Manual  Artículo en Attitudes    User`s guide ML6300  

Copyright © All rights reserved.
Failed to retrieve file