o$ALPHA_MACRO64010.AypALPHA_MACRO64010.ABACKUP/NOASSIST/COMMENT=VAX/VMS SPKITBLD Procedure/INTER/LOG/VERIFY DISK$USER2:[ASM.KITBUILD_27600F41_A]*.* DISK$USER2:[ASM.KIT]ALPHA_MACRO64010.A/LABEL=(ALPHA_MACRO6)/SAVE/BLOCK=9000/GROUP=25VAX/VMS SPKITBLD Procedure ASM E-V5.4 _11SRUS::  _$2$DUA2: V5.4 $,)*[ASM.KITBUILD_27600F41_A]HELP_MERGE.EXE;1+,s?./ 4- `0123 KPWO56`lE-7vD.DJ_. "VJJFGG B?F E.REJE>G]]} (0ݤ8@#kGGG.xJ$# WJF>.PJJF\[C,{#@HHDb#__Ӡ.  PJJF|rB.s"UJJFb#L_à#~^^~ (0޴8@H>PGGG GGGG0BG8b?"GtG+tZkL'G(!'H'H?DB!.! Q!J'J FC2 G G.".R""TJVJJJtBFB3B/"XKKG2/R"Y2K'K$G@8!G ;wH`<@[@XkeB éeBé eBé eBé eBé eB 8 E G@BP""HbGGtG0jZkGG]]} (0ݤ8@H=P`#kG#F~^^~ (0޴8@H>P^XGGG TG B("(bjZk4G&bB"IJZkB@""TGbnZkGG tG BC"(biZkTG (" B(biZk&bB"4G+JZkB@""TGbnZkGG tG BC"(biZkTG (" B(biZk&bB"4G JZkB"" TGb{nZkGG tG B C"(biZkTG (" B(biZk&bB"4GIZkGGTGGb# _ HHD tG BCH"(biZk&bB"4GIZkbPBc GGG~Zk#!GGxb#B_Gb?"GBtG)sZk#,"A0H'HX&D C!GGxb#/_GGB~Zk B0""(bGGtGaiZkGb?"GBtG sZk B0""(bGGtGRiZk G GBGb?"GtGrZk:G(I<IE(@.!PJJFC GGq.".1""StJUJgJJSBF5@2fB."WJJF/1"XKKG 8G]@B @G_ B0""(bGGtGiZkG0BG8b4G@ZkGGTGtGb#m_ (IIE0"" BG(bGtGhZkBGb?"GtGrZk B0""(bGGtGhZkGb?"GBtGrZk0BG8b4G@ZkG8b4G0B@ZkG]}4G] (0ݤ8@H=P]X`#k#4G~^ ^(G#G 0B =  >8bWZkb# =_(bG4G BHZkG ]](0#kTTt( @ 0@Pp @DCXSHR@ DEC$FORRTL@DECC$SHR@DPML$SHR@LBRSHR@LIBOTS@LIBRTL@SYS$PUBLIC_VECTORS, HELP_MERGEDEC C T1.1-048H248T TRANSFER$BREAK$GO __iscntrl 88usage8edit8I      ,  t advance_helpp " "       8$ main      $  .  : ; : K        p l< `  p  h __main + u  u   <  (*[ASM.KITBUILD_27600F41_A]KITINSTAL.COM;1+,!#./ 4c- `0123KPWO56@$ VMI$CALLBACK CHECK_VMS_VERSION 'fac'$CHECK 'min_vms_version'$ IF .NOT. 'fac'$CHECK $ THEN SAY ""B$ SAY "This product requires at least version ''min_vms_version'"9$ SAY "of VMS. You are running an unacceptable version." $ SAY ""$ GOTO FINAL_ERROR$ ENDIF$ !2$ ! Check for the number of disk blocks available.$ !A$ VMI$CALLBACK CHECK_NET_UTILIZATION 'fac'$CHECK 'min_sys_blocks'$ IF .NOT. 'fac'$CHECK $ THEN SAY ""I$ SAY "This product requires at least ''min_sys_blocks' of free space"<$ SAY "in order to install on the system. You have too few"$ SAY "free blocks." $ SAY ""$ GOTO FINAL_ERROR$ ENDIF<$ VMI$CALLBACK SET SAFETY CONDITIONAL 'min_sys_blocks'$!=$! Check the number of GLOBAL pages and GLOBAL sections free $!0$ global_pages_required = min_global_pages6$ global_sections_required = min_global_sectionsV$ vmi$callback find_file MACRO64$DCL DCLTABLES.EXE VMI$ROOT:[SYSLIB] S DCL$FOUND.$ if DCL$FOUND .NES. "S" THEN GOTO NODCL<$ dcl_size = f$file_attributes ("MACRO64$DCL", "EOF")@$ global_pages_required = global_pages_required + dcl_size$ goto CHECK_GLOBAL_SIZES$!$NODCL:7$! Assume 1000 if we cannot find the file DCLTABLES.EXE<$ global_pages_required = global_pages_required + 1000$CHECK_GLOBAL_SIZES:L$ VMI$CALLBACK GET_SYSTEM_PARAMETER free_global_pages FREE_GBLPAGESO$ VMI$CALLBACK GET_SYSTEM_PARAMETER free_global_sections FREE_GBLSECTS$ $2$ IF global_pages_required .GT. free_global_pages $ THEN SAY ""H$ SAY "This product requires at least ''global_pages_required'" J$ SAY "free GLOBAL PAGES in order to install on the system.",$ SAY "You have too few free GLOBAL PAGES." $ SAY ""$ GOTO FINAL_ERROR$ ENDIF7$ IF global_sections_required .GT. free_global_sections $ THEN SAY ""K$ SAY "This product requires at least ''global_sections_required'" M$ SAY "free GLOBAL SECTIONS in order to install on the system."/$ SAY "You have too few free GLOBAL SECTIONS." $ SAY ""$ GOTO FINAL_ERROR$ ENDIF$ !*$ ! Ask if they want a PURGE on the files.$ !$ VMI$CALLBACK SET PURGE ASK$$ SAY ""I$ SAY " This kit contains a file summarizing the new features, changes,"D$ SAY " restrictions, and compatibility issues in this release of "O$ SAY " ''name'. This file is named ''ident'''ver'.RELEASE_NOTES and will be"$ SAY " placed in SYS$HELP:."$ SAY ""D$ SAY " The release notes contains information valuable to ''name'"G$ SAY " users. Please inform ''name' users of this file's existence."$ SAY ""$ SAY ""N$ SAY " This kit also contains an Installation Verification Procedure (IVP) "N$ SAY " which can be used at any time to verify the installation of ''name'."O$ SAY " You can invoke the IVP after installation with the following command:"$ SAY ""&$ SAY " $ @SYS$TEST:''ident'$IVP"$ SAY ""G$ SAY " If you wish, you can also run the IVP automatically when the "+$ SAY " installation procedure completes."$ SAY ""$ !E$ ! Find out if they want to run the IVP as part of the installation.$ !$ VMI$CALLBACK SET IVP ASKD$ !!================================================================8$ !! UNCOMMENT FOR LMF SUPPORT -- BEGIN$ !! Check LMF licensing$ B$ vmi$callback confirm_license PAK_VAL MACRO64 DEC 1.0 30-OCT-1992$$ if PAK_VAL then  goto PAK_OK$\$ vmi$callback message W nolicense "IVP will not run. MACRO-64 V1.0 license not installed." $$ VMI$CALLBACK SET IVP NO $ PAK_OK:$ SAY ""-$ SAY " No further questions will be asked. "9$ SAY " Installation will take 2-5 minutes to complete. "$ SAY ""$ SAY ""$ SAY ""$ SAY ""C$!!================================================================7$ !! UNCOMMENT FOR LMF SUPPORT -- END $ !$ ! Provide the files.$ !I$ vmi$callback PROVIDE_IMAGE 'fac'$ 'ident'.EXE vmi$root:[SYSEXE]P$ vmi$callback PROVIDE_IMAGE 'fac'$ 'ident'$MSG.EXE vmi$root:[SYSMSG]P$ vmi$callback PROVIDE_FILE 'fac'$ 'ident''ver'.RELEASE_NOTES vmi$root:[SYSHLP]K$ vmi$callback PROVIDE_FILE 'ident'$IVP 'ident'$IVP.COM VMI$ROOT:[SYSTEST]:$ vmi$callback CREATE_DIRECTORY COMMON SYSTEST.'ident'$IVPV$ vmi$callback PROVIDE_FILE 'fac'$ 'ident'$IVP'intype' VMI$ROOT:[SYSTEST.'ident'$IVP]V$ vmi$callback PROVIDE_FILE 'fac'$ 'ident'$IVP'outype' VMI$ROOT:[SYSTEST.'ident'$IVP]A$ vmi$callback PROVIDE_FILE 'fac'$ 'ident'.MLB VMI$ROOT:[SYSLIB]P$ vmi$callback PROVIDE_FILE 'fac'$ 'ident'$HELLO.M64 VMI$ROOT:[SYSHLP.EXAMPLES]P$ vmi$callback PROVIDE_FILE 'fac'$ 'ident'$WHAMI.M64 VMI$ROOT:[SYSHLP.EXAMPLES]M$ vmi$callback PROVIDE_FILE 'fac'$ 'ident'$PI.M64 VMI$ROOT:[SYSHLP.EXAMPLES]$ $$ !$ ! Provide the DCL command$ !'$ ccv$cld_file = "VMI$KWD:''ident'.CLD"$ gosub ccv$check_cld_version$ if ccv$status .ne. 1$ then?$ say "Error checking DCL's version of the ''command' command"$ goto final_error$ endif$ if ccv$update_needed$ then0$ VMI$CALLBACK PROVIDE_DCL_COMMAND 'ident'.CLD$ endif$ !%$ ! See if LSE is installed on system$ !c$ vmi$callback find_file 'ident'$LSE LSE$SYSTEM_ENVIRONMENT.ENV VMI$ROOT:[SYSLIB] S LSE$FOUND'$if LSE$FOUND .NES. "S" THEN GOTO NOLSE$!!$!,$! Check license of LSE -- dependent product$!A$ VMI$CALLBACK CHECK_LICENSE LSEPAK VAXSET DEC 11.0 07-AUG-1992.$ IF .NOT. LSEPAK THEN GOTO NO_LSE_LICENSE$!!$ !$ ! Do LSE support$ ! $ set noon$ quietA$ lsedit/nodisplay/nosystem_environment/noenvironment/nosection -" /command=(VMI$KWD:'ident'LSE.TPU) $ noquiet$ set on$ !$$ ! Copy new ENV file to system area$ !D$ vmi$callback provide_file 'ident'$lse LSE$SYSTEM_ENVIRONMENT.ENV -- VMI$ROOT:[SYSLIB] ! $GOTO HELP_INS$ !$ ! No LSE support message.$ !$NOLSE:$SAY " "J$say "The ''name' installation procedure cannot install ''name' la}$ALPHA_MACRO64010.A!# `([ASM.KITBUILD_27600F41_A]KITINSTAL.COM;1cnguage "O$say "support for use with the Language Sensitive Editor (LSE) because LSE is "O$say "not installed on your system. If you want ''name' language support for "$say "use with LSE, you must:" $SAY " "$SAY " 1. Install LSE.!$SAY " 2. Re-install ''name'." $SAY " "C$SAY " If you do not use LSE or you do not need ''name' language "D$SAY " support for LSE, there is no problem with your installation "$SAY " of ''name'."$SAY " "$GOTO HELP_INS$ !$ ! No LSE LICENSE message.$ !$NO_LSE_LICENSE: $SAY " ">$SAY " ''name' not being installed with Language-Sensitive" J$SAY " Editor (LSE) support because LSE's license is not installed and "C$SAY " loaded on your system. If you want the MACRO-64 language"$$SAY " support for LSE, you must:" $SAY " "C$SAY " 1. Install and load the Language-Sensitive Editor license"$SAY " 2. Re-install ''name'" $SAY " "B$SAY " If you do not use LSE or do not need MACRO-64 language "F$SAY " support for LSE, there is no problem with your installation "$SAY " of MACRO-64. " $SAY " " $ HELP_INS:$ !%$ ! Provide the DCL COMMAND LINE HELP$ !N$ vmi$callback find_file MACRO64$HELPLIB HELPLIB.HLB VMI$ROOT:[SYSHLP] - S HELP$FOUND8$ if HELP$FOUND .nes. "S" then goto no_master_help/$ master_help = "VMI$KWD:''command'_MASTER.HLP"$ quiet $ set noonF$ library/help MACRO64$HELPLIB/extract='command' /output='master_help'$ set on $ noquiet<$ if f$search(master_help) .eqs. "" then goto no_master_help#$ help_merge := $VMI$KWD:help_merge*H$ help_merge 'master_help' VMI$KWD:'ident'.HLP VMI$KWD:'ident'_MERGE.HLPR$ vmi$callback PROVIDE_DCL_HELP 'ident'_MERGE.HLP ! $ goto help_done$!$no_master_help:+$ vmi$callback PROVIDE_DCL_HELP 'ident'.HLPL$! $help_done:.$ !$ ! Successful completion.$ ! $ ALPHA$RETURN VMI$_SUCCESS$N$ !I$ ! Error completion.A$ !I$ FINAL_ERROR:#$ VMI$CALLBACK MESSAGE E INSTLABT -1 "Aborting installation of ''name' due to error"O$ ALPHA$RETURN VMI$_FAILUREEL$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$ !T$ ! Run the IVPS$ !F $ do_ivp:R$ @'ident'$IVP$ ALPHA$RETURN $status$!$! RO$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++M#$! Subroutine CCV$CHECK_CLD_VERSIONOF$! This subroutine checks for the correct version of the command-lind %$! definition for the specified verb.T$!G$! Inputs: CCV$CLD_FILE- String symbol containing the filespec of the *$! .CLD file to check*$!L$! Outputs: CCV$UPDATE_NEEDED - "F" if the current MACRO verb definition is 9$! at least up to the version found in the specified $! .CLD file, "T" otherwise.7$! CCV$STATUS - 0 if error in .CLD file, 1 otherwise $! $! Linkage:e$! GOSUBO$!-----------------------------------------------------------------------------6$ccv$check_cld_version:"$ ccv$status = 1 ! Assume success@$ ccv$quiet = "set message/nofacility/noseverity/noident/notext"9$ ccv$noquiet = "set message ''f$environment("message")'"$ ccv$bad_verb = %X00038090$ ccv$bad_qual = %X00038240$ ccv$bad_keyword = %X00038060#$ ccv$define_verb = "DEFINE VERB "c1$ ccv$define_verb_len = f$length(ccv$define_verb)e2$ ccv$cmdver_type = "DEFINE TYPE CMDVER_VERSIONS"1$ ccv$cmdver_type_len = f$length(ccv$cmdver_type)M$ ccv$keyword = "KEYWORD " *$ ccv$keyword_len = f$length(ccv$keyword)$!/$ open/read cld 'ccv$cld_file' /error=ccv$error $ ccv$verb = ""e$ ccv$cmdver = ""N$ccv$read_loop: *$ read cld cld_rec /end=ccv$read_loop_exit3$ cld_rec = f$edit(cld_rec, "trim,compress,upcase")eH$ if f$extract (0, ccv$define_verb_len, cld_rec) .nes. ccv$define_verb -$ then goto ccv$check_cmdver_type<$ ccv$verb = f$extract (ccv$define_verb_len, 32767, cld_rec))$ ccv$verb = f$element (0, " ", ccv$verb)a$ goto ccv$read_loop$!$ccv$check_cmdver_type: H$ if f$extract (0, ccv$cmdver_type_len, cld_rec) .nes. ccv$cmdver_type - then goto ccv$read_loop$ccv$cmdver_loop:e*$ read cld cld_rec /end=ccv$read_loop_exit3$ cld_rec = f$edit(cld_rec, "trim,compress,upcase")R@$ if f$extract (0, ccv$keyword_len, cld_rec) .nes. ccv$keyword -% then goto ccv$check_done_looping >$ ccv$new_cmdver = f$extract (ccv$keyword_len, 32767, cld_rec)5$ ccv$new_cmdver = f$element (0, " ", ccv$new_cmdver)IF$ if ccv$cmdver .eqs. "" .or. ccv$cmdver .lts. ccv$new_cmdver then - ccv$cmdver = ccv$new_cmdver$ goto ccv$cmdver_loop$!$ccv$check_done_looping:G$ if ccv$verb .eqs. "" .or. ccv$cmdver .eqs. "" then goto ccv$read_loopt$!$ccv$read_loop_exit: $ close cldSC$ if ccv$verb .eqs. "" .or. ccv$cmdver .eqs. "" then goto ccv$errore $ set noon $ ccv$quiet $ ccv$verb /$CMDVER='ccv$cmdver'$ ccv$verb_status = $statusO $ ccv$noquiets$ set on-$ if ccv$verb_status .eq. ccv$bad_verb -L, .or. ccv$verb_status .eq. ccv$bad_qual -* .or. ccv$verb_status .eq. ccv$bad_keyword$ then$ ccv$update_needed = "T"s$ else$ ccv$update_needed = "F"4$ endifA$ return$! $ccv$error:S/$ ccv$status = 0 ! Failure - error in .CLD fileO$ ccv$update_needed = "F"=$ return,*[ASM.KITBUILD_27600F41_A]MACRO64$HELLO.M64;1+,>#./ 4N- `0123KPWO56  E-7`?ME-89GHJ ;++; MACRO64$HELLO.M64;.; Copyright 1992 Digital Equipment Corporation; All rights reserved. ; H; This software is furnished under a license and may be used and copiedA; only in accordance with the terms of such license and with theH; inclusion of the above copyright notice. This software and any copiesJ; shall not be provided to any other person. No title to or ownership ofH; the software is hereby transferred. The information in this softwareH; is subject to change without notice. DIGITAL assumes no responsibilityI; for the use, functionality or reliability of its software on equipment$; which is not supplied by DIGITAL.;M; This is a complete MACRO-64 program which uses the calling-standard macros H; in MACRO64.MLB. This example is one of three installed with MACRO-64:;?; MACRO64$HELLO.M64 - Simple Hello World program (this program)+; Demonstrates calling standard macros6; MACRO64$WHAMI.M64 - Program that displays WHAMI IPR ; Demonstrates system calls,; MACRO64$PI.M64 - Program that computes PI-; Demonstrates general programming with M; MACRO-64 along with optimization techniques;H; Digital suggests you become familiar with the concepts illustrated in ;; this simple example before you attempt to understand the :; MACRO64$WHAMI.M64 example or the MACRO64$PI.M64 example.;;I; This program calls the DEC C Runtime Library routine, printf, to print ; out the following: ;/; Hello world, from Hudson, New Hampshire, USA!;M; The DEC C Runtime library is available with the OpenVMS AXP (TM) Operating K; System, regardless of whether you have purchased and installed the DEC C ; compiler product.;F; To run this program on OpenVMS AXP (TM), use the following commands:;;; $ macro/alpha_axp/object=hello sys$examples:macro64$hello; $ link hello ; $ run hello;-- ;++= ; The $library_debug macro helps work around a problem that C ; exists between MACRO-64 V1.0 and the V1.0 symbolic debugger ? ; where the debugger fills the screen with messages indicating= ; "no source line available." Invoking $library_debug near > ; the beginning of your module causes these message to occur ? ; at the beginning of your module, rather than interdispersed  ; throughout your routines. ;-- $library_debug> ; About 30 blank lines after the invocation of $library_debug7 ; keeps the "source line not available" messages from > ; overwriting your MACRO-64 statements in tbo$ALPHA_MACRO64010.A># `,[ASM.KITBUILD_27600F41_A]MACRO64$HELLO.M64;1N-he source display ; window.;++L; The $ROUTINE macro invocation below defines a routine named HELLO. HELLO D; is a stack frame procedure that maintains its caller's context on G; the SP stack. It saves and restores only the frame pointer register B; (FP, or R29). Since we do not specify the stack size, $ROUTINE E; computes the minimum size necessary given the values for the other H; arguments we've specified or defaulted. The $ROUTINE macro defines a G; linkage-section psect and code-section psect. By default, these are F; $LINK$ and $CODE$, respectively, and we will use the defaults. The H; $ROUTINE macro also defines the procedure descriptor for HELLO within N; the linkage section. By default, $ROUTINE generates a standard instruction H; prologue sequence that saves the specified or defaulted registers (in G; this case FP) and performs the required stack-frame management. The @; $ROUTINE macro leaves you in the code section when it is done.;-- $routine HELLO, kind=stack;++N; The $LINAKGE_SECTION macro invocation below switches to the linkage-section &; psect of the current routine, HELLO.;-- $linkage_section;++7; The following are the strings to be passed to printf.;-- HELLO_MSG:G .asciz "Hello world, from %s!\x0A" ; \x0A is , or \n in C parlance HUDSON_MSG:$ .asciz "Hudson, New Hampshire, USA";++H; The $CODE_SECTION macro invocation below switches to the code section C; psect of the current routine, HELLO. Note that since we did not E; specify STANDARD_PROLOGUE=FALSE with the invocation of $ROUTINE to C; suppress generation of a standard prologue instruction sequence, A; $ROUTINE has already generated a standard instruction prologue ; sequence for us.;-- $code_section;++K; The $ROUTINE macro call above defined a symbol, $LS, which points to the L; base of the linkage section. We can use this with the .BASE directive to G; simplify our source code for accessing data in the linkage section. H; The following .BASE directive informs the assembler that R27 contains G; the address $LS. With that information, the assembler can then know L; which base register and absolute offset to use when you supply an address E; expression in place of a base register and absolute offset in your ; instruction statements.;-- .base r27, $LS;++5; Perform a call to DECC$GPRINTF with the $CALL macro%; The $CALL macro does the following:C; o allocates stack for arguments if needed (in this case, none is ; needed)C; o loads specified arguments into registers or onto the stack, as ; appropriate/; o sets the argument information register, R25K; o stores a linkage pair for DECC$GPRINTF in HELLO's linkage section9; o loads R26 with the code address of DECC$GPRINTFL; o loads R27 with the address of DECC$GPRINTF's procedure descriptor :; o performs the routine call with a JSR instructionB; o releases argument stack area if any and if the caller doesn't A; return a value on the stack (STACK_RETURN_VALUE=FALSE, which ; is the default);F; Note that access to HELLO's linkage section is achieved relative to B; R27 by virtue of the .BASE directive above. Note also that the G; standard call sequence destroys the values in R26, R27, any argument G; registers used, and any scratch registers used. If we needed access G; to the linkage section after the call, we would normally move R27 to F; another, preserved register and subsequently use that register. In /; this case, we don't. So, we'll just use R27.;--5 $call DECC$GPRINTF, args=;++J; Now we'll set the routine return value to normal, successful completion.;-- MOV #1, R0;++E; Now we can return from HELLO to the operating system. The $RETURN H; macro generates a standard instruction epilogue sequence that restoresH; any saved registers and performs the necessary stack-frame management.;-- $return;++C; We must mark the end of each routine with the $END_ROUTINE macro.;-- $end_routine HELLO;++E; The .END directive takes an optional argument which is used as the I; program entry point. If specified, the argument must be the name of a F; global procedure descriptor that is defined within the module. The G; $ROUTINE macro defined the procedure descriptor for HELLO, so we can E; specify HELLO here to make HELLO be the entry point of our program.;-- .end HELLO**[ASM.KITBUILD_27600F41_A]MACRO64$IVP.COM;1+,/d./ 4y>- `0123KPWO56E-7YSE-89GHJ$!++A$! MACRO-64 for OpenVMS Alpha Installation Verification Procedure$!4$! Copyright 1991,1992 Digital Equipment Corporation$! All rights reserved. $! I$! This software is furnished under a license and may be used and copiedB$! only in accordance with the terms of such license and with theI$! inclusion of the above copyright notice. This software and any copiesK$! shall not be provided to any other person. No title to or ownership ofI$! the software is hereby transferred. The information in this softwareI$! is subject to change without notice. DIGITAL assumes no responsibilityJ$! for the use, functionality or reliability of its software on equipment%$! which is not supplied by DIGITAL.$!--"$ on warning then goto ivp_failure$ pid = f$getjpi ("","pid")$ scratch = "SYS$SCRATCH:"7$!-----------------------------------------------------?$ prod_name = "MACRO-64 Assembler for OpenVMS AXP (TM) Systems"$ prod_id = "MACRO64"$ prod_ver = "V1.0"$ prod_intype = ".M64"$ prod_outype = ".OBJ"$ prod_swtypes = "|VMS|EVMS|"x$ prod_cmd_vms = "macro/alpha ''prod_id'$IVP''prod_intype'/nodebug/object=''scratch'''prod_id'$IVP_''pid'''prod_outype'"y$ prod_cmd_evms = "macro/alpha ''prod_id'$IVP''prod_intype'/nodebug/object=''scratch'''prod_id'$IVP_''pid'''prod_outype'"5$ prod_optfiles = "SYS$HELP:MACRO64010.RELEASE_NOTES"$ prod_reqfiles = ""7$!-----------------------------------------------------$ delete := delete$ difference := difference$ exit := exit$ gosub := gosub$ goto := goto $ if := if$ open := open $ on := on$ read := read$ return := return $ set := set$ write := write$ success = %x10000001$ failure = %x100000046$ complain = "write sys$error ""%''prod_id'$IVP-F-"","6$ augment = "write sys$error ""-''prod_id'$IVP-I-"","3$ say = "write sys$output ""%''prod_id'$IVP-I-"","7$!-----------------------------------------------------E$ msg_ivpfailure = "FAILURE, ''prod_name' ''prod_ver' IVP has FAILED"D$ msg_ivpsuccess = "PASSED, ''prod_name' ''prod_ver' IVP has PASSED"@$ msg_systype = "SYSTYPE, Cannot recognize system software type"J$ msg_ivpdir = "IVPDIR, Cannot access SYS$TEST:[''prod_id'$IVP] directory"]$ msg_ivpsrc = "IVPSRC, File SYS$TEST:[''prod_id'$IVP]''prod_id'$IVP''prod_intype' not found"]$ msg_ivpref = "IVPREF, File SYS$TEST:[''prod_id'$IVP]''prod_id'$IVP''prod_outype' not found"M$ msg_process = "PROCESS, Error processing file ''prod_id'$IVP''prod_intype'"Y$ msg_output = "OBJOUT, ''prod_name' output file ''prod_id'$IVP''prod_outype' not found"P$ msg_difference = "DIFF, Error while differencing ''prod_id'$IVP''prod_outype'"K$ msg_verify = "VERIFY, Error while verifying ''prod_id'$IVP''prod_outype'"S$ msg_refdiff = "REFDIFF, ''prod_id'$IVP''prod_outype' differs from reference copy"2$ msg_optfile = "OPTFILE, Optional file not found"2$ msg_reqfile = "REQFILE, Required file not found"F$ msg_link = "LINK, Error linking ''scratch'''prod_id'$IVP_''pid'.EXE"E$ msg_run = "RUN, Error running ''scratch'''prod_id'$IVP_''pid'.EXE"8$!------------------------------------------------------$ stage = "systype"$!($! Are we on an Alpha or VMS system ??$!$ swtype = "VMS";$ if f$getsyi("HW_MODEL") .EQ. 0 THEN SWTYPE = "EVMS">$ if f$getsyi("HW_MODEL") .GT. 1023 THEN SWTYPE = "EVMS"I$ if f$locate ("|''swtype'|", prod_swtypes) .ge. f$length(prod_swtypes) - then goto ivp_failure$!8$!------------------------------------------------------$ stage = "ivp$ALPHA_MACRO64010.A/d `*[ASM.KITBUILD_27600F41_A]MACRO64$IVP.COM;1yQAdir"$$ defdir = f$environment ("default")1$ ivpd = f$search ("SYS$TEST:''prod_id'$IVP.DIR")$ if ivpd .eqs. "" then -? ivpd = f$search ("SYS$COMMON:[SYSTEST]''prod_id'$IVP.DIR")($ if ivpd .eqs. "" then goto ivp_failure%$ ivpdev = f$parse (ivpd,,,"device")*$ ivpparent = f$parse (ivpd,,,"directory")%$ ivpsubdir = f$parse (ivpd,,,"name")>$ ivpdir = ivpdev + (ivpparent - "]") + "." + ivpsubdir + "]"$ set default 'ivpdir'$ gosub process_'swtype'$ stage = "optfile"$ i = 0$optional_file_loop:*$ file = f$element (i, ",", prod_optfiles) $ i = i + 1/$ if file .eqs. "" then goto optional_file_loop5$ if file .eqs. "," then goto optional_file_loop_exit$ gosub optional_file$ goto optional_file_loop$!$optional_file_loop_exit:$ stage = "reqfile"$ i = 0$required_file_loop:*$ file = f$element (i, ",", prod_reqfiles) $ i = i + 1/$ if file .eqs. "" then goto required_file_loop5$ if file .eqs. "," then goto required_file_loop_exit$ gosub required_file$ goto required_file_loop$!$required_file_loop_exit:$ gosub cleanup$ say msg_ivpsuccess$ exit SUCCESS$! $ivp_failure:$ gosub cleanup$ complain msg_ivpfailure6$ if f$type (stage) .nes. "" then augment msg_'stage'$ exit FAILURE$! $cleanup::$ if f$trnlnm ("DIF_''pid'") .nes. "" then close DIF_'pid'O$ if f$search ("''scratch'''prod_id'$IVP_''pid'''prod_outype'") .nes. "" then -7 delete 'scratch''prod_id'$IVP_'pid''prod_outype';*E$ if f$search ("''scratch'''prod_id'$IVP_''pid'.EXE") .nes. "" then -. delete 'scratch''prod_id'$IVP_'pid'.EXE;*E$ if f$search ("''scratch'''prod_id'$IVP_''pid'.DIF") .nes. "" then -. delete 'scratch''prod_id'$IVP_'pid'.DIF;*7$ if f$type (defdir) .nes. "" then set default 'defdir'$ return$!$optional_file:$ stage = "optfile")$ if f$search (file) .nes. "" then return$ say msg_optfile, ": ", file$ return$!$required_file:$ stage = "reqfile")$ if f$search (file) .nes. "" then return)$ msg_reqfile = msg_reqfile + ": " + file$ goto ivp_failure$ return$! $process_vms:$ stage = "ivpsrc"M$ if f$search ("''prod_id'$IVP''prod_intype'") .eqs. "" then goto ivp_failure$ stage = "ivpref"M$ if f$search ("''prod_id'$IVP''prod_outype'") .eqs. "" then goto ivp_failure$ stage = "process"$ prod_cmd_vms$ stage = "output"O$ if f$search ("''scratch'''prod_id'$IVP_''pid'''prod_outype'") .eqs. "" then - goto ivp_failure$ stage = "difference" $ difference/mode=hex/merged=0 -! 'prod_id'$IVP'prod_outype' -0 'scratch''prod_id'$IVP_'pid''prod_outype' -- /output='scratch''prod_id'$IVP_'pid'.DIF4$ delete 'scratch''prod_id'$IVP_'pid''prod_outype';*$ stage = "verify"6$ open/read DIF_'pid' 'scratch''prod_id'$IVP_'pid'.DIF$ passed = "F" $verify_loop:*$ read DIF_'pid' rec /end=verify_loop_exitL$ if rec .nes. "Number of difference records found: 1" then goto verify_loop$ passed = "T"$!$verify_loop_exit:$ stage = "refdiff"'$ if .not. passed then goto ivp_failure$ return$!$process_evms:$ stage = "ivpsrc"M$ if f$search ("''prod_id'$IVP''prod_intype'") .eqs. "" then goto ivp_failure$ stage = "process"$ prod_cmd_evms$ stage = "link"U$ link 'scratch''prod_id'$IVP_'pid''prod_outype'/exe='scratch''prod_id'$IVP_'pid'.EXE$ stage = "run"&$ run 'scratch''prod_id'$IVP_'pid'.EXE$ return**[ASM.KITBUILD_27600F41_A]MACRO64$IVP.M64;1+,4o./ 4J- `0123KPWO56]E-7ZE-89GHJ;++C; Alpha MACRO-64 Assembler Installation Verification Program (IVP).;3; Copyright 1991,1992 Digital Equipment Corporation; All rights reserved. ; H; This software is furnished under a license and may be used and copiedA; only in accordance with the terms of such license and with theH; inclusion of the above copyright notice. This software and any copiesJ; shall not be provided to any other person. No title to or ownership ofH; the software is hereby transferred. The information in this softwareH; is subject to change without notice. DIGITAL assumes no responsibilityI; for the use, functionality or reliability of its software on equipment$; which is not supplied by DIGITAL.;--! $routine MACRO64$IVP, kind=stack $linkage_section IVP_STATUS: .quad 1 ; Success status3 $code_section ; Switch to the code section psect/ .base r27, $LS ; Tell assembler that r27->$LS% ldq r0, IVP_STATUS ; r0<-IVP_STATUS $return $end_routine.end MACRO64$IVP**[ASM.KITBUILD_27600F41_A]MACRO64$IVP.OBJ;1+,~9C./ 4- `0123KPWO56@"IE-7"dE-89GHJ?? .MAIN. 29-OCT-1992 15:30MACRO-64 V1.0-213 i,$CODE$($LINK$$DATA$ $ABS$0J MACRO64$IVPL L=4,#~^G G #k\ \=0;=    **[ASM.KITBUILD_27600F41_A]MACRO64$MSG.EXE;1+,p?j.$/ 4$$- `0123 KPWO%56NE-7kE-89GHJh*D~p,0@$@D~p,MACRO64$MSG_ALPHAV1.0T10-37$B$J#@؉vSYS$PUBLIC_VECTORS_001ef@(Z@0({PQHQ@QЗQ{0Tfx (08@HPX`8hLp`xt  4 J Ȁ^ Ѐr ؀  耇    ( < T t ( h   8 z   . ЇT ؇  臇 * X   8| (0Z8@H:Pv{X`thp"xh6tNȈЈ8؈l與 >t@ x(08@jHPX`h,p|x<d@*`ȉЉ؉P艇B F (v 0 8 @!HL!{P!X!`l"h"p"x#|#$B$z$$0%p%%,&Ȋ&Њ&؊x''芇(.(p(((0)Z) )()0)86*@v*H*P*XF+`+h+p,x,>--R...h//0Z0ȋ0Ћ61؋13Z$ALPHA_MACRO64010.Ap?j `*[ASM.KITBUILD_27600F41_A]MACRO64$MSG.EXE;1$N"T2苇23p33"4`44 "5(t5058>6@6{H,777788ȏ8Џ&9؏r99菇 :8:;;p<<x`<<=*=X===*>>"?ȗ?З?$TOK0unrecognizable tokenTOK1"&"TOK2"'"TOK3"@"TOK4"\"TOK5":"TOK6"::"TOK7","TOK8"^C"TOK9 directiveTOK10 end of fileTOK11 end of lineTOK12"="TOK13"=="TOK14"!"&TOK15floating point literalTOK16>TOK17"#"TOK18 identifierTOK19"("TOK20<TOK21"-" TOK22integer literalTOK23opcodeTOK24"+"TOK25"?"TOK26 register nameTOK27")"TOK28"/"TOK29"*"TOK30string literal&TOK31local label definitionTOK32keywordTOK33"^"TOK34comment TOK35label definitionTOK36"."&TOK37local label reference COMMANDLINECommand:,TEST0This error has no arguments@INTERR.Internal processing error in the SYN facility.BINTERNAL/Internal assembler error. Please submit an SPR.@ SAVESTACKOVER(Internal SEM PSECT .SAVE stack overflow.> EXPSTACKOVER'Internal SEM expression stack overflow.6 BADSYSCALL Internal error. Bad system call.& BADVMSVERSBad VMS version.2 BADSTREXPRInvalid character expression* BADASCIISTRInvalid ascii stringDUNKENDISOPTION*Unknown .ENABLE/.DISABLE option specified.6TEST1&This message has 1 argument, it is !AF.UNKDIRUnknown directive !AF found.FFOUNDEXP2Found !AF when expecting one of the following: !AF>INVEXP,Found !AF when expecting a valid expression.\ EXPBINEXPTERMDFound !AF when expecting a binary operator or expression terminator.DINVTERM1Found !AF when expecting a valid expression term.> EXPINTPAL*Expected integer expression or PAL opcode.NNOLDQ>No previous LDQ_NOP instruction issued for corresponding CALL.RNOCALLANo CALL instruction issued for corresponding LDQ_NOP instruction.^LNKDATAKLink time optimization instructions are only allowed in an EXE,NOMIX psect.F INVGENMSGEXP/Invalid expression type for a generated message< EXPTOOCMPLX&Expression is too complex to evaluate.< INVBASEEXP'Invalid expression for .BASE directive.b INVBASEREGMInvalid base register specified. Base register must be one of R0 through R30. MODCODLOCCTRRestoring the location counter in the current context causes an illegal modification of the location counter for an EXE, NOMIX psect.N LOCCTRNOTDATA5Location counter cannot be set in an EXE,NOMIX PSECT.`DATANOTINNOEXEGData declarations must be in a psect with the MIX, or NOEXE attribute. F INSNOTINEXE/Instructions cannot be in a NOEXE, NOMIX PSECT.Z INSNOTINPSCCInstructions must be in a MIX, NOEXE; MIX,EXE; or NOMIX,EXE PSECT.: LABNOTINPSECT"Label must be declared in a PSECT.: TOOMANYARGS#Too many arguments for instruction.> NOTENOUGHARGS%Not enough arguments for instruction.> BADINSARG*Argument !SL invalid for this instruction.V DIRNOTINNOEXE>Directive must be in a psect with the MIX, or NOEXE attribute.FDATAALIGNTOBIG,Data requires alignment too large for PSECT.> ALIGNTOBIG(Specified alignment too large for PSECT.> INVEXPRFORDIR&Invalid expression type for directive.< INVEXPRFORSYM#Invalid expression type for symbol.2 LABELNOTDEFUndefined label encountered.4 BADENDARGBad argument to .END directive.6 DUPLEXTERN EXTERN item is multiply defined.4 INVTEMPLABInvalid use of temporary label.4 RESTOREWOSAVEPSECT .RESTORE without .SAVE4 LABELREDECLIllegal redefinition of label.6 SYMBOLREDECLIllegal redefinition of symbol.6 CONPSECTATTRContradictory PSECT attribute.J PSECTATTRCON3PSECT attribute conflicts with earlier declaration.L PSECTALIGNCON3PSECT alignment conflicts with earlier declaration.8 BADOPERAND"Invalid operand type for operator.< ILLOPERANDMIX$Illegal operand mixing for operator.4BADALIGN!Alignment specifier out of range.. UNKNOWNATTRUnknown PSECT attribute.T INVINSQUAL?Instruction qualifier list specified is invalid for the opcode.TNOTAQUALAAn item specified in the qualifier list is not a valid qualifier.HNOQUAL6Instruction qualifiers are not valid with this opcode.INVBRTGT~Invalid branch target. Branch target label must be defined in same psect as the branch instruction which references the label.F DISPTOOLGE0Branch offset is too large for this instruction.N INVSAVEOPT8Invalid option specified with the .SAVE_PSECT directive.P INVLISTOPT;Invalid option specified with the .LIST or .SHOW directive.T INVNLISTOPT>Invalid option specified with the .NLIST or .NOSHOW directive.l INVFPCONSTWInvalid floating point value detected. Check value range for floating point data type.(GENERRORGenerated ERROR: !AF. GENERROREXPGenerated ERROR: !SL !AF~ ILLPROCRETiIllegal procedure return; linkage register (argument 1) must be R31 when software hint (argument 3) is 1.0NOTINSEMMissing functionality in SEM.X LEXOPENDMDIllegal modification of .ENDM directive keyword by lexical operationX LEXOPENDRDIllegal modification of .ENDR directive keyword by lexical operation: EXPMACRONAME"Expected a valid macro name!/\!AF\6 BADPARAMSTRIllegal parameter string!/\!AF\>BADMACPARAMNAME#Illegal macro parameter name!/\!AF\@DUPMACPARAMNAME%Duplicate macro parameter name!/\!AF\rMACPARAMGENDEFYYou may specify a generated label default value, or a default string value, but not both.`MACPARAMSYNTAXGIllegal macro parameter syntax: Found !AF when expecting one of { !AF }4TOOMANYMACPARAMToo many macro parameters.0 BADMACRONAMEIllegal macro name!/\!AF\. MISSINGENDMMissing .ENDM directive.N WRONGMACID8Macro name in .ENDM does not match corresponding .MACRO.&EOLEXPEnd of line expected.2 UNEXPMEXITUnexpected .MEXIT directive.0 UNEXPENDMUnexpected .ENDM directive.. MISSINGENDRMissing .ENDR directive.0 UNEXPENDRUnexpected .ENDR directive.N TOOMANYMACARG5More arguments specified than defined for this macro.(ILLIFOPIllegal .IF operator.0 UNEXPELSEUnexpected .ELSE directive.0 UNEXPENDCUnexpected .ENDC directive.<ILLINCL*Illegal .INCLUDE file specification!/\!AF\8LIBMOD_NOT_FOUNLibrary module !AF not found.LIBMOD_BADFORMALibrary module !AF contains illegal syntax (missing .MACRO or label preceding .MACRO, missing or not matching .ENDM, or other macro syntax error).0BADLIBError opening library file !AF.D NOTINMACRO.This statement must only occur within a macro.<MAXIF+Maximum nesting of .IF directives exceeded.` REDUNDELSEKYou cannot specify more than one .ELSE directive within a single .IF block.VMACELSExYou cannot specify .ELSE in the same .IF block with either .IF_FALSE (.IFF), .IF_TRUE (.IFT), or .IF_TRUE_FALSE (.IFTF).:UNEXPIFF&Unexpected .IF_FALSE (.IFF) directive.8UNEXPIFT%Unexpected .IF_TRUE (.IFT) directive.@ UNEXPIFTF,Unexpected .IF_TRUE_FALSE (.IFTF) directive.v LEXOPSYNTAX_Illegal lexical operator syntax (missing left or right parenthesis, missing comma, etc.)!/\!AF\@ LEXOPEDITSPEC'Unrecognized edit specifier: !AF!/\!AF\Z MACRECURSEDRecursive macro exceeds maximum macro expansion nesting depth!/\!AF\b MACEXPNESTMMacro expansion exceeds maximum nesting depth (macro recursion not detected).bLEXSYMP!AF is already a lexical string symbol name; it cannot also be a numeric symbol.bNUMSYMP!AF is already a numeric symbol name; it cannot also be a lexical string symbol. MACCASEMATCHqLibrary macro name is spelled using different alphabetic case than in .MCALL directive or macro invocation!/\!AF\2INCLOPEN.INCLUDE file open error!/\!AF\X INCLDEPTHD.INCLUDE nest depth exceeds !SL - check fo$ALPHA_MACRO64010.Ap?j `*[ASM.KITBUILD_27600F41_A]MACRO64$MSG.EXE;1$r circular .INCLUDE!/\!AF\,SRCREADError reading source file.BCONTEOF0End of file encountered after line continuation.DCONTLONG0Source line continuation exceeds !SL characters.*ILLASCIIIllegal ascii constant.R ASCIITRUNC=Ascii constant contains too many characters; value truncated.*ILLBINIllegal binary constant.*ILLDECIllegal decimal constant.(ILLOCTIllegal octal constant..ILLHEXIllegal hexadecimal constant.\ILLRADIXIIllegal radix specifier in numeric constant; specify A, B, C, D, O, or X.@ILLEXPON,Illegal exponent in floating point constant.4ILLFLOAT Illegal floating point constant.HHEXSTR6Illegal hexadecimal escape sequence in string literal.TESCAPEBIllegal escape sequence in string literal; expected \, ", x, or X.N MISSQUOTE9Missing closing double-quote character in string literal.< IDTOOLONG(Identifier is longer than 31 characters.INVCAInvalid code address specified with procedure descriptor. Code address must be a non-temporary label defined in a psect with the EXE or MIX attribute after its use with .PROCEDURE_DESCRIPTOR.LUNDCA;Undefined code address specified with procedure descriptor.RNOCACNo code address specified as argument 2 with .PROCEDURE_DESCRIPTOR.WRONGPL~The code address specified in the .PROCEDURE_DESCRIPTOR directive must occur BEFORE its definition as a local or global label.INVOFFrAttempting to specify data intialization with a current psect offset that is outside the range of 0 to 2147483647.D INVOFFLAB0Invalid label specified with .OFFSETx directive.V INVALIGNFILL>Invalid optional fill pattern specified with .ALIGN directive.| EXPRESEXPgArgument !SL invalid. Expected an expression with no forward references resolvable to psect +/- offset.` EXPIDPROCLArgument !SL invalid. Expected an identifier representing a procedure value.F EXPGENREG2Argument !SL invalid. Expected a general register.LEXPFPREG9Argument !SL invalid. Expected a floating point register.j EXPLITVALVArgument !SL invalid. Expected an integer literal value in the inclusive range 0..255.r EXPPALOPLIT[Argument !SL invalid. Expected an integer literal value in the inclusive range 0..67108863.BASEFAILArgument !SL invalid. The assembler failed to find a base register specified with a previous .BASE directive to form a register expression of the form offset(Rn).h EXPREGOFFTArgument !SL invalid. Expected a general register expression of the form offset(Rn).REXPLABAArgument !SL invalid. Expected a label defined in the same psect.l EXPZEROFFWArgument !SL invalid. Expected a general register expression of the form 0(Rn) or (Rn).^BEGEXPSCJ.BEGIN_EXACT is not valid in a psect with the NOEXE and NOMIX attributes. VUNTERMEXB!SL Unterminated .BEGIN_EXACT directive(s) detected in psect !AF. \ENDEXPSCH.END_EXACT is not valid in a psect with the NOEXE and NOMIX attributes. >NOBEGEX+Unmatched .END_EXACT directive encountered. EXP32BITTYPEsExpected an integer in the range 0..(2^32)-1 for unsigned expression OR -(2^31)..+(2^31)-1 for signed expression. 8INVLPD'Invalid procedure descriptor specified.RINVLCAAInvalid or undefined code address found for procedure descriptor.OVERLAPsOverlapping initializers detected at offset !SL. Multiple initial values are specified for the same psect offset. DUNEXPERR0Unexpected error occurred. Please submit an SPR.IDFOUNDFound identifier in the opcode field when expecting one of the following: opcode, directive, macro invocation, or symbol definition.X BYTEALIGNIGNAThe BYTE_ALIGN option has been replaced by the ALIGN_DATA option.Z ALIGNLABELIGNBThe ALIGN_LABEL option has been replaced by the ALIGN_CODE option.BTEST22This message has 2 arguments, they are !SL and !AF4 DUPLGLOBALDuplicate global name detected. EXP32BITTRUNCExpected an integer in the range 0..(2^32)-1 for unsigned expression OR -(2^31)..+(2^31)-1 for signed expression. Data truncation to 32 bits.(GENWARNGenerated WARNING: !AF0 GENWARNEXPGenerated WARNING: !SL !AF, TRUNCDATAData truncation warning.LUNDEFSYM9Undefined symbol or label. Assuming .EXTERNAL definition.4 LIBMOD_EMPTYLibrary module !AF is empty.d LIBMOD_EXTRALLibrary module !AF contains extraneous text after .ENDM; extra text ignored..MISSENDCMissing .ENDC directive(s).ALIGNFILLTRUNCThe value specified for the .ALIGN optional fill pattern should be an integer in the range of 0..255. Data truncation will occur with the currently specified fill pattern in a byte storage location. ALIGNFILLIGNThe optional .ALIGN fill pattern is being ignored. It is only valid for psects which do not possess the EXE and NOMIX attributes. INVREPCOUNTuThe integer value of the .REPEAT expression is not within the inclusive range of 0..65535. A zero value is assumed. $SUCCESSNormal completion.6OPTIGN%VAX MACRO-32 option(s) being ignored.lVAXDIR[VAX MACRO-32 directive(s) or option(s) being ignored. Continuing processing with next line.(GENPRINTGenerated PRINT: !AF. GENPRINTEXPGenerated PRINT: !SL !AFHTEST38This message has 3 arguments, they are !SL, !AF and !AF.RMACZERO?Cannot evaluate expression. A zero expression value is assumed.8INDEB'Inaccurate DEBUG information generated.ADDTRUNCxStoring an address expression into a storage allocation less than the size of an address will result in data truncation.lMISPELMACARGKWRMacro-argument keyword is misspelled; using positional argument association!/\!AF\^SUMMARYKCompleted with !SL error(s), !SL warning(s), and !SL informational messagesh MACAUXMSGSThis condition occurred in the expansion of macro !AF at line !SL of its definitionr MACAUXMSG1\This condition occurred in the expansion of macro !AF at line !SL of its definition. !/\!AF\ MACRO64TTh @SYS$PUBLIC_VECTORSMMMACRO64$MSG_ALPHAV1.028-OCT-1992 17:4028-OCT-1992 17:40Linker T10-37  .$$ABS$$. )*[ASM.KITBUILD_27600F41_A]MACRO64$PI.M64;1+,E?".</ 4N<<- `0123KPWO=56-E-7esE-89GHJ;++K; MACRO64$PI.M64 -- Based on original algorithm and C program by Remy Dube.;.; Copyright 1992 Digital Equipment Corporation; All rights reserved. ; H; This software is furnished under a license and may be used and copiedA; only in accordance with the terms of such license and with theH; inclusion of the above copyright notice. This software and any copiesJ; shall not be provided to any other person. No title to or ownership ofH; the software is hereby transferred. The in$ALPHA_MACRO64010.AE?" `)[ASM.KITBUILD_27600F41_A]MACRO64$PI.M64;1N<."formation in this softwareH; is subject to change without notice. DIGITAL assumes no responsibilityI; for the use, functionality or reliability of its software on equipment$; which is not supplied by DIGITAL.;G; This is a complete MACRO-64 program which computes PI to a specified J; number of digits. This example is one of three installed with MACRO-64:;0; MACRO64$HELLO.M64 - Simple Hello World program+; Demonstrates calling standard macros6; MACRO64$WHAMI.M64 - Program that displays WHAMI IPR ; Demonstrates system calls;; MACRO64$PI.M64 - Program that computes PI (this program)-; Demonstrates general programming with M; MACRO-64 along with optimization techniques;H; Digital suggests you become familiar with the concepts illustrated in I; the MACRO64$HELLO.M64 example and the MACRO64$WHAMI.M64 example before 1; you attempt to understand this example example.;;G; The original algorithm implemented by this program is by Remy Dube. I; This MACRO-64 implementation is adapted from Remy's C implementation. K; While the algorithm and implementation are reasonably fast and accurate, C; the intent of this program is to illustrate MACRO-64 programming K; concepts rather than set world speed or precision records. This program K; illustrates the use of a number of optimization techniques, such as loop H; unrolling and routine inlining. In several instances, the context in J; which these techniques are applied causes the technique to yield only a G; marginal benefit. Furthermore, due to the decreased development and I; maintenance costs and increased portability associated with High Order K; Languages, it would not normally be advisable to write an entire program J; such as this in assembly language. Nonetheless, this program serves to J; illustrate a number of paradigms applicable to efficient programming in ; MACRO-64.;F; This program calls the DEC C Runtime Library to perform I/O and for K; other ancillary tasks. Note that the DEC C Runtime Library is available K; on all OpenVMS AXP systems, regardless of whether you have purchased and '; installed the DEC C compiler product.;K; To run this program on an OpenVMS AXP system, use the following commands:;5; $ macro/alpha_axp/object=pi sys$examples:macro64$pi ; $ link pi ; $ run pi;-- ;++= ; The $library_debug macro helps work around a problem that C ; exists between MACRO-64 V1.0 and the V1.0 symbolic debugger ? ; where the debugger fills the screen with messages indicating= ; "no source line available." Invoking $library_debug near > ; the beginning of your module causes these message to occur ? ; at the beginning of your module, rather than interdispersed  ; throughout your routines. ;-- $library_debug> ; About 30 blank lines after the invocation of $library_debug7 ; keeps the "source line not available" messages from > ; overwriting your MACRO-64 statements in the source display ; window. L;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1; ASSEMBLY-TIME CONSTANTSL;---------------------------------------------------------------------------0; Turn on optimizations and automatic alignment.3 .enable align_code, align_data, peephole, schedule*PRINT_WIDTH = 100 ; Width of output device2BIGINT_BYTES = 8 ; Number of bytes in a quadwordNBIGINT_SHIFTER = 3 ; L-Shift this much to convert array index to byte offsetBIGINT_BITS = BIGINT_BYTES * 8; Integer argument registers.IARG0 = "r16"IARG1 = "r17"IARG2 = "r18"IARG3 = "r19"IARG4 = "r20"IARG5 = "r21"$; Floating-point argument registers.FARG0 = "f16"FARG1 = "f17"FARG2 = "f18"FARG3 = "f19"FARG4 = "f20"FARG5 = "f21" L;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/; MODULE VARIABLE DATAM; --------------------------------------------------------------------------- $data_sectionWEIGHT: .quad 0FILE_VAR: .quad 0LOG_4: .g_floating 0.0PRECISION: .quad 0IMAX: .quad 0CLUSTER_SIZE: .quad 0CLUSTER_VECT: .quad 0CLUSTER_VECT_SIZE: .quad 0ISTOP: .quad 0START: .quad 0FINISH: .quad 0DURATION: .quad 0"SCRATCH: .byte %repeat(99,<0,>)0>CLK_TCK: .g_floating 100.0 ; From DECC$LIBRARY_INCLUDE:TIME.HG1: .g_floating 1.0G4: .g_floating 4.0 L;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'; UTILITY MACROSL;---------------------------------------------------------------------------;++ ; Macro IPOW<; Abstract: Integer power function for assembly-time values.+; Inputs: A - Value to be raised to a power+; B - Power to which to raise value*; Method: Multiply A times itself B times.;-- .macro IPOW A B RESULT% RESULT = %repeat(<>,<*>) 1 .endm IPOW H; The LOOP_UNROLL assembly-time variable is used to control manual loop H; unrolling: Use 0 For no loop unrolling, 1 for normal loop unrolling, ?; or a value greater than 1 for a higher, global unroll factor.LOOP_UNROLL = 1;++; Macro UNROLL ; Abstract:F; Macro UNROLL is used to assist in in manually unrolling a loop. H; It can be beneficial to repeat the body of a loop a number of times C; with branch-outs between each repetition to the loop exit. At I; the least, you gain the benefit of a a branch not taken vs. a branch J; taken. While this effect may not gain very much, when loop unrolling H; is combined with instruction scheduling (.ENABLE SCHEDULE), you may G; be able to schedule portions successive repetitions of the loop in H; parallel. See Appendix B of the MACRO-64 Assembler for OpenVMS AXP G; Systems Reference Manual for more information on this optimization ; technique.;K; To use UNROLL, you must define a macro that expands to the body of the F; loop. Specify the name of this macro with the BODY argument. YouE; must also specify 2 branch instruction statements: 1 that tests aH; condition and branches to the beginning of the loop to continue, andL; another that tests the opposite condition and branches to the end of theD; loop to exit. Specify the loop continuation statement with the F; CONTINUE argument. Specify the loop exit statement with the EXIT G; argument. Specify the target label for the loop-continue statementC; as %%LOOP_START%% and the target for the loop-exit statement asK; %%LOOP_END%%. For instance, the continue statement might be a BNE and L; the end statement would be BEQ, or vice versa. Often, you must precede I; the branch instruction with a comparison instruction. If so, specifyC; the comparison instruction statement with the COMPARE argument.;K; You can use the TEST_FIRST argument to specify the style of the loop. K; Specify 1 to get generate an exit test prior to the first iteration of B; the loop. Specify 0 to always execute the loop at least once.;I; You can experiment with different values for the FACTOR argument. A N; FACTOR of 0 or 1 results in a single copy of the loop body -- that is, no L; loop unrolling. FACTORs greater than 1 can improve runtime performance F; at the expense of increased code size. However, depending on the J; size of the loop body, too large a FACTOR can cause the repeated loop F; body to overflow the instruction cache, thus negatively impacting ; performance.;F; In addition, if the loop body contains a call to another routine, H; it is unlikely that the scheduler (.ENABLE SCHEDULE) will be able toI; concurrently schedule successive repetitions of the loop body. As a C; result, the benefit realized by unrolling the loop will likely I; reduce to the difference in cost between a branch taken and a branch +; not taken times the FACTOR you specify.;G; Thus, the best loops to unroll are those that are in your critical I; performance path, contain a small number of instructions, and do not ; call other routines.; ; Inputs::; BODY - Name of the macro that expands to the loop bodyF; FACTOR - Specific repetition factor to use when unrolling the loopN; CONTINUE - A conditional branch instruction statement to continue the loopF; EXIT - A conditional branch instruction statement to exit the loopN; COMPARE - An optional comparison instruction to use prior to the CONTINUE ; or E i $ALPHA_MACRO64010.AE?" `)[ASM.KITBUILD_27600F41_A]MACRO64$PI.M64;1N<b"XIT instructionI; TEST_FIRST - non-zero means test the exit condition prior to the 1st A; iteration, zero means always execute the loop at least onceM; UNROLL_LOOP (assembly variable) - Controls whether or not to unroll loopsE; or whether to increase the unroll factor for all unrolled loops; ; Outputs:>; The body of the loop is repeated FACTOR*UNROLL_LOOP times.;; Example usage:;); ; First define the loop body as a macro; .macro LOOP_BODY; ldq r0, (r5); lda r5, 8(r5); lda r1, 1(r1); .endm LOOP_BODY;2; ; Now invoke the UNROLL macro to unroll the loop2; UNROLL BODY=LOOP_BODY, FACTOR=3, TEST_FIRST=1, -(; COMPARE = , --; CONTINUE = , -(; EXIT = ;?; ; The above use of UNROLL would result in the following code E; ; being generated (where LOOP_START and LOOP_END are unique labels ); ; for each invocation of UNROLL):;>; cmple r0, r2, r22 ; These 2 instructions are suppressed 6; beq r22, LOOP_END ; if you specify TEST_FIRST=0; LOOP_START:; ldq r0, (r5)s; lda r5, 8(r5); lda r1, 1(r1)i; cmple r0, r2, r22; beq r22, LOOP_END; ldq r0, (r5)d; lda r5, 8(r5) ; lda r1, 1(r1); cmple r0, r2, r22; beq r22, LOOP_END; ldq r0, (r5) ; lda r5, 8(r5); lda r1, 1(r1); cmple r0, r2, r22; bne r22, LOOP_START ; LOOP_END:e;--tA.macro UNROLL BODY, FACTOR, CONTINUE, EXIT, COMPARE, TEST_FIRST=1n! .if not_defined, UNROLL_INDEXn UNROLL_INDEX = 0 .else, UNROLL_INDEX = UNROLL_INDEX + 1 .endce; LOOP_START = "UNROLL_LOOP_START_%integer(UNROLL_INDEX)"h9 LOOP_END = "UNROLL_LOOP_END_%integer(UNROLL_INDEX)"eC UNROLL_HELPER , , <%LOOP_START%>, <%LOOP_END%>, - , , , , .endm UNROLL!; Helper macro for loop unrolling I.macro UNROLL_HELPER BODY, FACTOR, START, END, CONTINUE, EXIT, COMPARE, -  TEST_FIRST .if ne,  COMPARE EXIT .endce START:& .repeat <-1> * LOOP_UNROLL BODYn COMPARE EXIT .endr  BODY COMPAREa CONTINUE END:.endm UNROLL_HELPERi uL;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-; MODULE LOCAL ROUTINES L;---------------------------------------------------------------------------; $routine ASK_NUMBER_OF_DIGITS, kind=stack, local=true, -% data_section_pointer=true, -e saved_regs=a;++ F; Abstract: Inquire from the user terminal who many digits to compute.; Inputs: Terminal I/O2; Outputs: PRECISION - Number of digits to compute;--  $linkage_sectionn610$: .asciz "How many digits do you want to compute? "320$: .asciz "Computing PI with %-d digits \x0A\x0A"hD30$: .asciz "Please specify a positive, non-zero integer value.\x0A" $code_section. .base r27, $ls ; 1st access link sect w/r27- mov r27, r2 ; Later use r2 for link sect n ldq r3, $dp ; Access... # .base r3, $ds ; ...data section , .base r2, $ls ; Now use r2 for link sect9100$: $call DECC$GPRINTF, args=10$/a ; Print "How many?"l- $call DECC$GETS, args=SCRATCH/a ; Get answer 7 $call DECC$ATOL, args=SCRATCH/a ; Convert to longwordg bgt r0, 200$5 $call DECC$GPRINTF, args=30$/a ; Print "be positive"e br 100$)200$: stq r0, PRECISION ; Set precisionc# ; Output "Computing with N digits"f? $call DECC$GPRINTF, args=<20$/a, r0/l>, scratch_regs=u $return" $end_routine ASK_NUMBER_OF_DIGITS s2 $routine INITIALIZE, kind=stack, local=true, -& saved_regs=, - data_section_pointer=true;++p ; Abstract: Start up processing. ; Inputs: ; PRECISION/ ; Outputs:; LOG_4 - log10(4.0)4; IMAX - PRECISION/LOG_45; WEIGHT - Scale factor for various computationsoH; CLUSTER_SIZE - Number of decimal digits represented in a quadword J; CLUSTER_VECT_SIZE - Number of quadwords needed for spec'd precision/; CLUSTER_VECT - Ptr to array of quadwords $,; CLUSTER_VECT[0..last] - Initialized to 0-; FILE_VAR - Opened for output to PI.DATh;--i $linkage_sectione6POWX = "r4" ; r4 holds pow(2,BIGINT_BITS-4)/IMAX*10#W = "r5" ; r5 is temp for WEIGHTo*CS = "r6" ; r6 is temp for CLUSTER_SIZE0CVS = "r7" ; r7 is temp for CLUSTER_VECT_SIZE2 IPOW 2 T ; T=pow(2,BIGINT_BITS-4) 10$: .quad Te20$: .asciz "pi.dat"30$: .asciz "w"240$: .asciz " PI WITH %-d digits \x0A \x0A" $code_section. .base r27, $ls ; 1st access link sect w/r27- mov r27, r2 ; Later use r2 for link sect S ldq r3, $dp ; Access...-# .base r3, $ds ; ...data section-, .base r2, $ls ; Now use r2 for link sect# .base r3, $ds ; ...data section.. $call DECC$GLOG10, args=G4/g ; r0=LOG10(4.0)# stg f0, LOG_4 ; LOG_4=LOG10(4.0)f. ldt f1, PRECISION ; Convert precision to... cvtqg f1, f1 ; ...G floatT' divg f1, f0, f1 ; f1=PRECISION/LOG_4r( cvtgq/c f1, f1 ; Convert to quadword& stt f1, IMAX ; IMAX=PRECISION/LOG_4! ldq %IARG1%, IMAX ; IARG1=IMAX", mulq %IARG1%, #10, %IARG1% ; IARG1=IMAX*10 ;++A ; The OTS$DIV_L routine takes 2 quad word arguments and returns 1D ; in r0 the quadword quotient of the first argument divided by the F ; second argument. OTS$DIV_L is in the sharable library LIBOTS.EXE, C ; which is available at link time by default. A similar routine, IE ; OTS$DIV_I, is available in that same library for longword integer - ; division. ;--$ ; r0=pow(2,BIGINT_BITS-4)/(IMAX*10)* $call OTS$DIV_L, args=<10$/q, %IARG1%/q> & ; POWX=pow(2,BIGINT_BITS-4)/(IMAX*10) mov r0, %POWX%a mov 1, %W% ; WEIGHT=1 mov 0, %CS% ; CLUSTER_SIZE=0) ; Loop computing WEIGHT and CLUSTER_SIZEu- .macro LOOP_BODY ; Loop body for unrollinge+ mulq %W%, #10, %W% ; WEIGHT=WEIGHT*10 6 lda %CS%, 1(%CS%) ; CLUSTER_SIZE=CLUSTER_SIZE+1 .endm LOOP_BODY4 UNROLL BODY=LOOP_BODY, FACTOR=10, TEST_FIRST=1, -- COMPARE = , - . CONTINUE = , -' EXIT = -+ stq %W%, WEIGHT ; Store local copies of 3 stq %CS%, CLUSTER_SIZE ; WEIGHT and CLUSTER_SIZEv* ldq %IARG0%, PRECISION ; IARG0=PRECISION< addq %CS%, %IARG0%, %IARG0% ; IARG0=PRECISION+CLUSTER_SIZE; lda %IARG0%, -1(%IARG0%) ; IARG0=PRECISION+CLUSTER_SIZE-1R- ; r0=(PRECISION+CLUSTER_SIZE-1)/CLUSTER_SIZE) $call OTS$DIV_L, args=<%IARG0%/q,%CS%/q>e1 ; r0=((PRECISION+CLUSTER_SIZE-1)/CLUSTER_SIZE)+1 lda r0, 1(r0)@ ; CLUSTER_VECT_SIZE=((PRECISION+CLUSTER_SIZE-1)/CLUSTER_SIZE)+1 mov r0, %CVS% stq r0, CLUSTER_VECT_SIZE ; Allocate CLUSTER_VECT sll r0, #BIGINT_SHIFTER, r05 $call DECC$MALLOC, args=r0/l, scratch_regs=n stq r0, CLUSTER_VECTo+CCA = "r0" ; r0 is current cluster addre ; Initialize CLUSTER_VECT' mov %CVS%, r1 ; r1=CLUSTER_VECT_SIZE #100$: stq r31, (%CCA%) ; *CCA = 0  lda r1, -1(r1) ; --r1" lda r0, BIGINT_BYTES(R0) ; CCA++% bgt r1, 100$ ; Branch if not done c9 $call DECC$FOPEN, args=<20$/a, 30$/a> ; Open output filei stq r0, FILE_VARn9 $call DECC$GFPRINTF, args=, -h scratch_regs=e $return $end_routine INITIALIZE S/ $routine MULTIPLY_AND_DIVIDE, kind=stack, - 2 saved_regs=, -% data_section_pointer=true, -u local=truee;++L@; Abstract: Walk the CLUSTER_VECTOR array performing a series of+; multiplications and divisions.e ; Inputs:e; IARG0 - NUMERATOR ; IARG1 - DENOMINATORi,; ISTOP - Indicator of how much to compute ; WEIGHT; CLUSTER_VECT; CLUSTER_VECT[0..ISTOP] ; Outputs:; CLUSTER_VECT[0..ISTOP];--o. .base r27, $ls ; 1st access link sect w/r27- mov r27, r2 ; Later use r2 for link sect t ldq r3, $dp ; Access....# .base r3, $ds ; ...data sectionh, .base r2, $ls ; Now use r2 for link sect'TEMP = "r4" ; r4 is variable 'temp' !I = "r5" ; r5 is variable 'i'f!W = "r6" ; r6 is local WEIGHT (CCA = "r7" ; r7 is curr cluster addr(NUM = "r8" ; r8 is local copy of NUM(DEN = "r9" ; r9 is local copy of DEN$CC = "r10" ; r10 is curr cluster clr %TEMP% ; TEMP=0p ldq %I%, ISTOP ; I=ISTOPp lda %I%, 1(%I%) ; I=ISTOP+1. ldq %W%, WEIGHT ; Load local copy of WEIGHT2 ldq %CCA%, CLUSTER_VECT ; CCA = &CLUSTER_VECT[0]- mov %IARG0%, %NUM% ; Get local copy of NUMt- mov %IARG1%, %DEN% ; Get local copy of DENt! .ma @$ALPHA_MACRO64010.AE?" `)[ASM.KITBUILD_27600F41_A]MACRO64$PI.M64;1N<]"$cro LOOP_BODY ; Unroll loopt. mulq %TEMP%, %W%, %TEMP% ; TEMP *= WEIGHT$ ldq %CC%, (%CCA%) ; CC = *CCA+ mulq %NUM%, %CC%, r22 ; r22 = CC * NUMR0 addq %TEMP%, r22, %TEMP% ; TEMP += CC * NUM& $call OTS$DIV_L, - ; r0=TEMP/DEN args=<%TEMP%/q, %DEN%/q>& stq r0, (%CCA%) ; *CCA=TEMP/DEN* mulq %DEN%, r0, r0 ; r0=DEN * (*CCA)3 subq %TEMP%, r0, %TEMP% ; TEMP -= DEN * (*CCA)e= lda %CCA%, BIGINT_BYTES(%CCA%); Advance to next clustere. lda %I%, -1(%I%) ; Decrement loop index .endm LOOP_BODY4 UNROLL BODY=LOOP_BODY, FACTOR=8, TEST_FIRST=1, -. CONTINUE = , -' EXIT = l $return! $end_routine MULTIPLY_AND_DIVIDEp o ;++o ; Macro PROPAGATE_CARRY K ; Abstract: Walk the CLUSTER_VECTOR array in reverse order propagatingiN ; a carry out from one cluster to its predecessor as necessary.. ; (A manually inlined routine.) ; Inputs:e- ; %CA% - register that holds CLUSTER_VECTa ; WEIGHT ; CLUSTER_VECT[0..last]t ; Outputs: ; CLUSTER_VECT[0..last] ;--u .macro PROPAGATE_CARRYt2 CCA = "r0" ; r0 is addr of current cluster) CC = "r1" ; r1 is current clustero. CARRY = "r22" ; r22 is 'CARRY' variable' W = "r23" ; r23 is local WEIGHT  clr %CARRY% ; CARRY=0b2 ldq %W%, WEIGHT ; load local copy of WEIGHT< ldq %CCA%, CLUSTER_VECT_SIZE; CCA=sizeof(CLUSTER_VECT)7 lda %CCA%, -1(%CCA%) ; CCA=sizeof(CLUSTER_VECT)-1n; ; CCA=(sizeof(CLUSTER_VECT)-1)*sizeof(CLUSTER_VECT[0]) ' sll %CCA%, #BIGINT_SHIFTER, %CCA%e3 addq %CA%, %CCA%, %CCA% ; CCA --> last clusterb( .macro LOOP1_BODY ; Unroll loop 1! ldq %CC%, (%CCA%) ; r22 = *CCAt/ addq %CC%, %CARRY%, %CC% ; r22 = *CCA + CARRYu clr %CARRY% ; CARRY=0 % .macro LOOP2_BODY ; Unroll loop 2e) subq %CC%, %W%, %CC% ; CC -= WEIGHTi' lda %CARRY%, 1(%CARRY%); CARRY++O .endm LOOP2_BODY4 UNROLL BODY=LOOP2_BODY, FACTOR=8, TEST_FIRST=1, -, COMPARE = , -0 CONTINUE = , -* EXIT = + stq %CC%, (%CCA%) ; Save current cluster-4 lda %CCA%, -BIGINT_BYTES(%CCA%) ; Backup 1 cluster .endm LOOP1_BODY%8 UNROLL BODY=LOOP1_BODY, FACTOR=2, TEST_FIRST=1, -+ COMPARE = , - - CONTINUE = , -s' EXIT = L .endm PROPAGATE_CARRY 2% $routine COMPUTE, kind=stack, - ; saved_regs=, -  local=true, -% data_section_pointer=true, -d size=$rsa_end+16e;++rM; Abstract: Build up a binary representation of PI in the CLUSTER_VECT array.;l ; Inputs:r ; PRECISION,; CLUSTER_SIZE; IMAX ; LOG_4q; CLUSTER_VECT[0] ;, ; Outputs:; CLUSTER_VECT[0..last]p;r; Notes:G; $ROUTINE defines the assembly-time variable $RSA_END as the offset RH; from the beginning of the stack frame to just beyond the end of the F; the register save area. You can use this variable both to define B; the stack size with $ROUTINE's SIZE argument as above, and in G; referencing the stack beyond the register save area. In this case,LH; we have allocated an additional 16 bytes of stack storage beyond theI; end of the register-save area. Note that the size of the stack frameo#; must be an even multiple of 16.C;--S $linkage_section,!I = "r4" ; r4 is variable 'I'(CS = "r5" ; r5 is local CLUSTER_SIZE%TMP = "r6" ; r6 is variable 'TMP'<,CA = "r7" ; r7 is local &CLUSTER_VECT[0]%PCC = "r8" ; r8 is variable 'PCC'aI2M1 = "r9" ; r9 is 2*I-1 %I4 = "r10" ; r10 is 4*I and 4*I+2+/I.G = "f2" ; f2 is variable 'I.G', G float + ; shadow of I!L4 = "f3" ; f3 is local LOG_4 -ONE.G = "f4" ; f4 holds 1.0 in G floating- $code_section. .base r27, $ls ; 1st access link sect w/r27- mov r27, r2 ; Later use r2 for link sect t ldq r3, $dp ; Access... # .base r3, $ds ; ...data sectiont, .base r2, $ls ; Now use r2 for link sect ldq %I%, IMAX ; I=IMAXe" ldt %I.G%, IMAX ; I.G shadows I+ cvtqg %I.G%, %I.G% ; Convert to G formate% ldg %L4%, LOG_4 ; Load local LOG_4 2 ldq %CS%, CLUSTER_SIZE ; Load local CLUSTER_SIZE& ldq %TMP%, PRECISION ; TMP=PRECISION# mov %TMP%, %PCC% ; PCC=PRECISIONt( lda %TMP%, 2(%TMP%) ; TMP=PRECISION+28 addq %CS%, %TMP%, %TMP% ; TMP=CLUSTER_SIZE+PRECISION+20 ldq %CA%, CLUSTER_VECT ; CA = &CLUSTER_VECT[0]6 addq %PCC%, %CS%, %PCC% ; PCC=PRECISION+CLUSTER_SIZE5 lda %PCC%, -1(%PCC%) ; PCC=PRECISION+CLUSTER_SIZE-1$- ; r0=(PRECISION+CLUSTER_SIZE-1)/CLUSTER_SIZEl' $call OTS$DIV_L, args=<%PCC%/q,%CS%/q>. ; PCC=(PRECISION+CLUSTER_SIZE-1)/CLUSTER_SIZE mov r0, %PCC%( ldg %ONE.G%, G1 ; Load ONE.G with 1.0' .macro LOOP_BODY ?LABEL ; Unroll loopt' mulg %I.G%, %L4%, f0 ; f0=I*LOG_4t* cvtgq/c f0, f0 ; Convert to integer ;++> ; We must store F0 to memory in order to load it into an > ; integer register. Our invocation of the $ROUTINE macro? ; above allocated an additional 16 bytes of stack storage,d< ; 8 of which we will use now for that purpose. We can ? ; reference the stack beyond the end of the register save 49 ; area relative to the frame pointer, FP, using the > ; $RSA_END assembly-time variable that is defined by the  ; $ROUTINE macro. ;--* stt f0, $rsa_end(fp) ; Put to memory4 ldq %IARG0%, $rsa_end(fp) ; Read back to I reg/ ; IARG0=(PRECISION-I*LOG_4+2+CLUSTER_SIZE)_! subq %TMP%, %IARG0%, %IARG0% . $call OTS$DIV_L, args=<%IARG0%/q, %CS%/q>* cmple r0, %PCC%, r1 ; result <= PCC?& bne r1, LABEL ; Yes, branch" mov %PCC%, r0 ; No, use PCC2LABEL: stq r0, ISTOP ; ISTOP=min(result,PCC)' sll %I%, #1, %I2M1% ; I2M1 = 2*II+ lda %I2M1%, -1(%I2M1%) ; I2M1 = 2*I-1-# sll %I%, #2, %I4% ; I4 = 4*Ia: $call MULTIPLY_AND_DIVIDE, args=<%I2M1%/q, %I4%/q>, - local=true# lda %I4%, 2(%I4%) ; I4=4*I+2s: $call MULTIPLY_AND_DIVIDE, args=<%I2M1%/q, %I4%/q>, - local=true* ldq r0, (%CA%) ; r0=CLUSTER_VECT[0]- lda r0, 3(R0) ; r0=CLUSTER_VECT[0] + 3 , stq r0, (%CA%) ; CLUSTER_VECT[0] += 3 lda %I%, -1(%I%) ; I--0/ subg %I.G%, %ONE.G%, %I.G% ; I.G shadows IL .endm LOOP_BODY4 UNROLL BODY=LOOP_BODY, FACTOR=4, TEST_FIRST=1, -. CONTINUE = , -' EXIT = C* PROPAGATE_CARRY ; Inlined routine call $return $end_routine COMPUTE; 1) $routine PRINT_RESULT, kind=stack, -IB saved_regs=,- local=true, -% data_section_pointer=true, -e size=$rsa_end+16s;++ 2; Abstract: Print the results of the computation. ; Inputs:;,; START - seconds at start of computation*; FINISH - seconds at end of computation ; FILE_VAR ; PRECISION ; WEIGHT; CLUSTER_SIZE; CLUSTER_VECT_SIZEI; CLUSTER_VECT[0..last]a; PRINT_WIDTHs;--/ $linkage_sectionP.SECONDS = "f2" ; f2 is variable 'SECONDS' -MINUTES = "r4" ; r4 is variable 'MINUTES'%)HOURS = "r5" ; r5 is variable 'HOURS'E"I = "r6" ; r6 is variable 'I' &CCA = "r7" ; r7 is variable 'CCA' #CC = "r8" ; r8 is variable 'CC'1'CLIM = "r9" ; r9 is variable 'CLIM'Z#J = "r10" ; r10 is variable 'J'U*CS = "r11" ; r11 is local CLUSTER_SIZE#W = "r12" ; r12 is local WEIGHTP)COUNT = "r13" ; r13 is variable COUNT &P = "r14" ; r14 is local PRECISION 10$: .asciz -EI" Calculation time : %-d hours %-d minutes %f seconds \x0A \x0A"S20$: .asciz "%-d."30$: .asciz "%-d"40$: .asciz "\x0A "50$: .asciz "\x0A" $code_section. .base r27, $ls ; 1st access link sect w/r27- mov r27, r2 ; Later use r2 for link sect - ldq r3, $dp ; Access...S# .base r3, $ds ; ...data sectionL, .base r2, $ls ; Now use r2 for link sect ldq r22, FINISH ; r22=FINISH ldq r23, START ; r23=START_( subq r22, r23, r23 ; r23=FINISH-START. stq r23, $rsa_end(fp) ; Convert FINISH-START" ldt f0, $rsa_end(fp) ; ...to... cvtqg f0, f0 ; ...G floating ldg f1, CLK_TCK ; f1=CLK_TCK=9 divg f0, f1, %SECONDS% ; SECONDS=(FINISH-START)/CLK_TCKc% cvtgq/c %SECONDS%, f0 ; Convert...S' stt f0, $rsa_end(fp) ; ...to integerE= $call OTS$DIV_L, args=<$rsa_end(fp)/q, 60/a> ; r0=SECONDS/60 ) mov r0, %MINUTES% ; MINUT m$ALPHA_MACRO64010.AE?" `)[ASM.KITBUILD_27600F41_A]MACRO64$PI.M64;1N<[5ES=SECONDS/60+# mulq r0, #60, r0 ; r0=MINUTES*60e# stq r0, $rsa_end(fp) ; Convert...0! ldt f0, $rsa_end(fp) ; ...to...F cvtqg f0, f0 ; G floating 6 subg %SECONDS%, f0, %SECONDS% ; SECONDS -= MINUTES*60% $call OTS$DIV_L, - ; r0=MINUTES/60T args=<%MINUTES%/q, 60/a>P% mov r0, %HOURS% ; HOURS=MINUTES/60s% mulq %HOURS%, #60, r0 ; r0=HOURS*60,4 subq %MINUTES%, r0, %MINUTES% ; MINUTES -= HOURS*60 $call DECC$GFPRINTF, -tB args=2 ldq %CCA%, CLUSTER_VECT ; CCA = &CLUSTER_VECT[0]: ldq %CLIM%, CLUSTER_VECT_SIZE ; CLIM=sizeof(CLUSTER_VECT)4 ; CLIM=sizeof(CLUSTER_VECT)*sizeof(CLUSTER_VECT[0])% sll %CLIM%, #BIGINT_SHIFTER, %CLIM% p; addq %CCA%, %CLIM%, %CLIM% ; CLIM --> beyond last clusters+ ldq %CC%, (%CCA%) ; CC = CLUSTER_VECT[0]a $call DECC$GFPRINTF, -t% args=r mov 1, %I% ; I=12 ldq %CS%, CLUSTER_SIZE ; Load local cluster size9 lda %CCA%, BIGINT_BYTES(%CCA%) ; Advance to next clusterr0 cmplt %CCA%, %CLIM%, r0 ; Beyond last cluster?, beq r0, 400$ ; Yes, branch to exit loop 1. ldq %W%, WEIGHT ; Load local copy of WEIGHT4 ldq %P%, PRECISION ; Load local copy of PRECISION clr %COUNT% ; COUNT=0%%100$: ldq %CC%, (%CCA%) ; CC = *CCA  mov 1, %J% ; J=1) cmple %J%, %CS%, r1 ; J<=CLUSTER_SIZE?a+ beq r1, 300$ ; No, branch to exit loop 2E'200$: mulq %CC%, #10, %CC% ; CC *= 10%5 $call OTS$DIV_L, args=<%CC%/q, %W%/q> ; r0=CC/WEIGHT $ mov r0, %IARG2% ; IARG2=CC/WEIGHT% mulq %W%, r0, r0 ; r0=IARG2*WEIGHTM+ subq %CC%, r0, %CC% ; CC -= IARG2*WEIGHTC, cmple %COUNT%, %P%, r1 ; COUNT<=PRECISION? beq r1, 210$ ; No, branch. sextl %IARG2%, %IARG2% ; Convert to longword $call DECC$GFPRINTF, -r( args=(210$: lda %COUNT%, 1(%COUNT%) ; COUNT++/ cmplt %I%, #PRINT_WIDTH, r0 ; I>=PRINT_WIDTH?  bne r0, 220$ ; No, branch clr %I% ; I=0l4 $call DECC$GFPRINTF, - ; Print linefeed + 2 spaces args=e220$: lda %I%, 1(%I%) ; I++_ lda %J%, 1(%J%) ; J++) cmple %J%, %CS%, r0 ; J<=CLUSTER_SIZE?I0 bne r0, 200$ ; Yes, branch to continue loop 2>300$: lda %CCA%, BIGINT_BYTES(%CCA%) ; Advance to next cluster0 cmplt %CCA%, %CLIM%, r0 ; Beyond last cluster?/ bne r0, 100$ ; No, branch to continue loop 1R* $call DECC$GFPRINTF, - ; Print linefeed  args= 400$: $returnp $end_routine PRINT_RESULT $ $routine CLEANUP, kind=stack, - local=true, - data_section_pointer=true;++a$; Abstract: Perform shutdown trivia.; Inputs: FILE_VAR:%; Outputs: The output file is closed.u;--a* .base r27, $ls ; Access linkage section ldq r22, $dp ; Access...# .base r22, $ds ; ...data sections# $call DECC$FCLOSE, args=FILE_VAR/qC $return $end_routine CLEANUP  L;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.; EXTERNAL ROUTINESL;---------------------------------------------------------------------------1 $routine PI, kind=stack, saved_regs=, -i data_section_pointer=true;++A"; Abstract: Program entry point. ; Outputs:7; PI.DAT with the specified number of decimal places. ;--r. .base r27, $ls ; 1st access link sect w/r27- mov r27, r2 ; Later use r2 for link sect u ldq r3, $dp ; Access...# .base r3, $ds ; ...data sectione, .base r2, $ls ; Now use r2 for link sect' $call ASK_NUMBER_OF_DIGITS, local=true $call INITIALIZE, local=trueD $call DECC$CLOCKR stq r0, START $call COMPUTE, local=true $call DECC$CLOCK  stq r0, FINISHE $call PRINT_RESULT, local=true- $call CLEANUP, local=true% mov 1, r0 ; Return success status; $return $end_routine PI .end PI,*[ASM.KITBUILD_27600F41_A]MACRO64$WHAMI.M64;1+,?3./ 4O- `0123KPWO56[oE-7yE-89GHJ;++; MACRO64$WHAMI.M64;.; Copyright 1992 Digital Equipment Corporation; All rights reserved. ; H; This software is furnished under a license and may be used and copiedA; only in accordance with the terms of such license and with theH; inclusion of the above copyright notice. This software and any copiesJ; shall not be provided to any other person. No title to or ownership ofH; the software is hereby transferred. The information in this softwareH; is subject to change without notice. DIGITAL assumes no responsibilityI; for the use, functionality or reliability of its software on equipment$; which is not supplied by DIGITAL.;O; This is a complete MACRO-64 program which uses the SYS$CMKRNL OpenVMS System F; Service to change to kernel mode and determine the processor number G; with the MFPR_WHAMI privileged PALcode instruction. This example is '; one of three installed with MACRO-64:;0; MACRO64$HELLO.M64 - Simple Hello World program+; Demonstrates calling standard macrosD; MACRO64$WHAMI.M64 - Program that displays WHAMI IPR (this program) ; Demonstrates system calls,; MACRO64$PI.M64 - Program that computes PI-; Demonstrates general programming with M; MACRO-64 along with optimization techniques;H; Digital suggests you become familiar with the concepts illustrated in I; the simple, MACRO64$HELLO.M64 example before you attempt to understand -; this example or the MACRO64$PI.M64 example.;;N; When this program is executed from a process that has the CMKRNL privilege, I; the main routine, CHMK, calls SYS$CMKRNL (Change Mode to Kernel) which:;<; o Allows the calling process to change its access mode to ; kernel;B; o Executes another routine, WHAMI, which issues the privileged /; CALL_PAL MFPR_WHAMI instruction, and then ;O; o Returns to the access mode in effect before the SYS$CMKRNL call was issued;L; Upon return to the main routine, CHMK, the DEC C Runtime Library routine, "; printf, is called to print out: ;G; o The value which was contained in the Who-Am-I Register when it wasK; copied into the memory location WHAMI_IPR upon completion of executing;; CALL_PAL MFPR_WHAMI instruction in the routine WHAMI. ;D; o The status return value contained in R0 after execution of the ; routine SYS$CMKRNL. ;M; The DEC C Runtime library is available with the OpenVMS AXP (TM) Operating K; System, regardless of whether you have purchased and installed the DEC C ; compiler product.;D; Additionally, the R0 status value which is a status result of the G; SYS$CMKRNL system service call is returned in R0 by the main routine,; CHMK, to DCL.;;G; When this program is run from a process that does not have the CMKRNLH; privilege, the call to SYS$CMKRNL immediately returns an error status (; and the WHAMI routine is not executed.;I; Thus, different results are printed out depending on the privileges of A; the executing process. If the executing process does not have >; the CMKRNL process privilege, the following is displayed : ;>; WHAMI_IPR = FFFFFFFFFFFFFFFF SYS$CMKRNL status = 000000248; %SYSTEM-F-NOPRIV, no privilege for attempted operation;C; Since the main program returns the failure status from SYS$CMKRNLC; in R0 to DCL, the system displays the message "%SYSTEM-F-NOPRIV, E; no privilege for attempted operation". Additionally, no new value E; is placed in the WHAMI_IPR memory location since the WHAMI routine E; does not execute. Thus you see the reserved processor number "-1" ; as the contents of WHAMI_IPR.;>; If the executing process does have the CMKRNL privilege, the3; following is a sample of what might be displayed:;?; WHAMI_IPR = 0000000000000000 SYS$CMKRNL status = 00000001;;F; To run this program on OpenVMS AXP (TM), use the following commands:;;; $ macro/alpha_axp/object=whami sys$examples:macro64$whami; $ link whami ; $ run whami;-- ;++= ; The $library_ $ALPHA_MACRO64010.A?3 `,[ASM.KITBUILD_27600F41_A]MACRO64$WHAMI.M64;1O5  debug macro helps work around a problem that C ; exists between MACRO-64 V1.0 and the V1.0 symbolic debugger ? ; where the debugger fills the screen with messages indicating= ; "no source line available." Invoking $library_debug near > ; the beginning of your module causes these message to occur ? ; at the beginning of your module, rather than interdispersed  ; throughout your routines. ;-- $library_debug> ; About 30 blank lines after the invocation of $library_debug7 ; keeps the "source line not available" messages from > ; overwriting your MACRO-64 statements in the source display ; window. L;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/; MODULE VARIABLE DATAL;---------------------------------------------------------------------------;++B; This is the data section shared by the WHAMI and CHMK routines.;8; The location WHAMI_IPR contains the value returned byE; the CALL_PAL MFPR_WHAMI instruction. CALL_PAL MFPR_WHAMI returns K; the processor number in R0. This location is initialized to -1 because H; -1 is a reserved processor number and should never be returned in R0 K; by the CALL_PAL MFPR_WHAMI instruction. If this location remains at -1,:; it means that the CALL_PAL MFPR_WHAMI instruction never>; executed, and the routine WHAMI did not update the contents$; of the memory location WHAMI_IPR.;-- $data_section WHAMI_IPR:! .quad -1 ; Reserved WHAMI valueL;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; LOCAL ROUTINESL;---------------------------------------------------------------------------6 $routine WHAMI, data_section_pointer=true, local=true;++B; The WHAMI routine is the routine which is called in kernel mode,; by the system service routine SYS$CMKRNL.;@; The WHAMI routine executes the privileged PALcode instructionB; CALL_PAL MFPR_WHAMI. Upon completion of this instruction, the I; value of the Who-Am-I internal processor register is returned in R0. L; The WHAMI routines then stores the Who-Am-I value in the WHAMI_IPR memory5; location with the "stq r0, WHAMI_IPR" instruction.;E; The $ROUTINE macro invocation above defines a routine named WHAMI.J; WHAMI is, by default, declared to be a NULL procedure which executes inF; the context of its caller. The $ROUTINE macro defines, by default,D; a linkage-section psect named $LINK$, a code-section psect named E; $CODE$, and a data-section psect name $DATA$. The macro argument H; data_section_pointer is specified as true. This causes a pointer to K; the data-section psect to be placed WHAMI's linkage section. The local I; argument is also specified as true. This causes the WHAMI routine to H; be visible only within this module; a global symbol for WHAMI is not I; generated. The $ROUTINE macro leaves you in the code-section psect. ;--? .base r27, $ls ; Inform assembler that r27 --> linkage section;++L; When $ROUTINE defines the $DATA$ psect, it defines the $DS (data section) K; symbol as the current address in the $DATA$ psect. Because we specified N; data_section_pointer=true, $ROUTINE also stored that address in the linkage I; section using a .ADDRESS $DS directive. $ROUTINE also defines the $DP K; (data section pointer) symbol as the address of the data section pointer J; that is stored in the linkage section. Since we already have access to N; the linkage section via R27, we can therefore load from the linkage section +; the pointer to the data section into R22.;--$ ldq r22, $dp ; r22 --> data section: .base r22, $ds ; Tell assembler that r22 --> data section;++F; Now we can execute the CALL_PAL MFPR_WHAMI instruction and store theG; Who-Am-I internal processor register in R0. Afterwards, we store theI; result in the WHAMI_IPR memory location in the data section. By virtueF; of the .BASE R22, $DS directive above, the assembler knows that R22 G; contains the base address of the data section. Therefore, it selectsJ; R22 as the base register for the target argument of the STQ instruction :; and computes the correct offset within the data section.;--@ call_pal mfpr_whami ; Issue the CALL_PAL instruction> stq r0, WHAMI_IPR ; Update memory location WHAMI_IPRF ; with the value contained in < ; Who-Am-I Register.;++ >; R0 is used to return a status value. '1' indicates success.;-- mov 1, r0;++I; The WHAMI routine can now return to its caller. Since WHAMI is a null-I; frame routine, it has no prologue or epilogue. Therefore, rather than I; invoking the $RETURN macro as you might with a stack or register-frame H; routine, we simply use the ret instruction. WHAMI's caller will have B; loaded R26 with the return address as part of the call sequence.;-- ret r26 $end_routine WHAMI L;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-; EXTERNAL ROUTINESL;---------------------------------------------------------------------------2 $routine CHMK, kind=stack, saved_regs=, - data_section_pointer=true;++; CHMK is the main routine.;C; The $ROUTINE macro invocation above defines a routine named CHMK.I; CHMK is a stack frame procedure that maintains its caller's context on E; the SP stack. It saves and restores R2 and R13 in addition to the K; frame pointer register (FP, or R29). The standard prologue generated by (; $ROUTINE saves these registers for us.;-;++?; Following is routine CHMK's linkage section. It contains theB; string, MSG, passed as an argument to the DEC C PRINTF routine, A; which prints out the value saved as the Who-Am-I Register valueA; in the memory location WHAMI_IPR, and the status value returned@; after calling the system service routine SYS$CMKRNL to execute; the routine WHAMI.;-- $linkage_section ?MSG: .asciz "WHAMI_IPR = %08X%08X SYS$CMKRNL status = %08X\x0A" ;++f:; Following is the code section for the main routine CHMK.;--  $code_section; mov r27, r13 ; Save the procedure value in R13 > .base r13, $ls ; Tell the assembler to use R13 asG ; the base to the linkage section ;++o2; Perform the system service call. Arguments are:6; o Routine WHAMI to be executed in the kernel mode0; o a terminating argument list element of 0.;--a' $call SYS$CMKRNL, args= q@ mov r0, r2 ; Save SYS$CMKRNL's return status in R2;++MD; Access the data section in the same way as with the WHAMI routine.;--a ldq r24, $dpo .base r24, $dst! P;++M6; CALL DECC$GPRINTF to output the values contained in1; WHAMI_IPR and R0. Arguments to the routine are:6.; o The printf format string contained at MSG.9; o The value contained in the memory location WHAMI_IPR. ; o The value contained in R0.;tH; Additionally, registers R22 and R23 are specified as scratch registersG; to be used in the call. The default scratch registers are R0 and R1. K; In this case it is necessary to specify alternate scratch registers since,; R0 is used as an argument to DECC$GPRINTF.;--c $call DECC$GPRINTF, -i7 args=, -e scratch_regs=h;++6K; Return in r0 the status value from the previous SYS$CMKRNL call that we a; saved; previously in R2.;--a mov r2, r0;++lJ; Now we are ready to return. Unlike the WHAMI routine, CHMK is a stack H; routine and therefore requires an epilogue instruction sequence that M; restores the saved registers and performs necessary stack management. We c3; use the $RETURN macro to generate that sequence. ;--f $return $end_routine CHMK4 .end CHMK ; Routine CHMK is the program entry point&*[ASM.KITBUILD_27600F41_A]MACRO64.CLD;1+,.0/ 4N0/N- `0123KPWO056E-7 E-89GHJ $ALPHA_MACRO64010.A `&[ASM.KITBUILD_27600F41_A]MACRO64.CLD;1N0VM!****************************************************************************!* *B!* Copyright (c) 1978, 1980, 1982, 1984, 1986, 1987, 1992 *A!* Digital Equipment Corporation, Maynard, Massachusetts. *#!* All rights reserved. *!* *M!* This software is furnished under a license and may be used and copied *M!* only in accordance with the terms of such license and with the *M!* inclusion of the above copyright notice. This software or any other *M!* copies thereof may not be provided or otherwise made available to any *M!* other person. No title to and ownership of the software is hereby *!* transferred. *!* *M!* The information in this software is subject to change without notice *M!* and should not be construed as a commitment by Digital Equipment *!* Corporation. *!* *M!* Digital assumes no responsibility for the use or reliability of its *B!* software on equipment which is not supplied by Digital. *!* *M!****************************************************************************!8! MACRO Command Definition for VAX VMS and OpenVMS Alpha!! Version: 'X-5K11'M!******IMPORTANT*****IMPORTANT*****IMPORTANT*****IMPORTANT*****IMPORTANT*****!M! ALWAYS add a new value to cmdver_versions when making a change to this file!M!******IMPORTANT*****IMPORTANT*****IMPORTANT*****IMPORTANT*****IMPORTANT*****!!! MODIFIED BY:!!3! X-5K11 AES Anne Saturnelli, August 20, 19925! Merged in some items from Paul W. that&! got left out last time.!!3! X-5K10 AES Anne Saturnelli, August 19, 19925! Change MACRO-64 SHOW qualifier default! !5! X-5K9 AES Anne Saturnelli, August 11, 1992<! Merged copy with MACRO-32 migration compiler! for FT4.!!!)! X-5K8 PKW Paul K. M. Weiss 23-Jul-1992! Remove /EV4 switch>! Change /OPT=SCHEDULING to /OPT=SCHEDULE for MACRO/MIGRATION.! Fix /MIGRATION/MIGRATION, /ALPHA/ALPHA, etc)! Fix disallow of /ALPHA/MIGRATION, etc.*! Make debug_options a common option type!!2! X-5K7 AES Anne Saturnelli, July 22, 19925! Clean up MACRO-64 syntax for FT3/EFT1!!2! X-5K6 AES Anne Saturnelli, July 22, 1992A! Changed name of MACRO migration compiler image by7! removing the _TV for image name for FT3!3! X-5K5 AES Anne Saturnelli July 16, 1992>! Removed /SHOW=BINARY for MACRO-64 assembler. D! Add /[NO]MACHINE_CODE. For Cross assembler, make the,! MACRO default be VAX MACRO. !)! X-5K4 PKW Paul K. M. Weiss 25-Jun-1992@! Merge VAX/VMS and OpenVMS Alpha so that all that need be doneB! to convert from one to the other is comment/uncomment sections.!%! X-5K3 JDR Jack Raitto 23-JUN-1992B! Updated copyright date. Added name prefixes for VAX MACRO and <! MACRO-11. Added $CMDVER qualifier with V000000 keyword. >! Moved VAX MACRO verb to be together with its types. Added &! /ALIGNMENT=(CODE,DATA) to MACRO-64.!*! X-5 PKW144 Paul K. M. Weiss 18-Jun-1992! Merge in Alpha Assembler!%! X-4K13 TRB Tom Benson 17-Apr-1992<! Added new /opt qualifiers references, addresses, vaxregs.!$! X-4k12 DJJ Dana Joly 03-Mar-19920! Added the /SYMBOLS qualifier for alpha macro.!$! X-4k11 DJJ Dana Joly 06-Jan-19925! Remove /enable=tie and added /tie for alpha macro.5! Remove /enable=ev4 and added /ev4 for alpha macro.!$! X-4k10 SML Sue Lewis 31-Oct-1991<! Add /enable=tie (Synonym for aud). Add gem developer-only! qualifiers.!#! X-4K9 SML Sue Lewis 15-Oct-1991"! Merge in addition from vms 5.5.)! ! X-7 RJT0001 Rick Trowel 29-Apr-1990=! ! Added /NAMES= option. Options to the names qualifier areA! ! /NAMES=UPPER or /NAMES=DEFINITIONS={UPPER|LOWER|BOTH}!! X-4K8 SML005 Sue Lewis/! Added /enable=ev4 on alpha_macro 05-Jun-1991!'! X-4k7 SML004 Sue Lewis 14-May-1991#! Added /enable=aud on alpha_macro'! X-4k6 TRB003 Tom Benson 14-May-1991! Added /DEBUG on alpha_macro'! X-4k5 TRB003 Tom Benson 21-Jan-1991! Added STACK option on /FLAG&! x-4k4 sml001 Sue Lewis 19-Dec-1990#! Added /enable=overflow qualifier(! X-4K3 TRB0002 Tom Benson 17-Nov-1990!! Added /RETRY_COUNT=n qualifier(! X-4K2 TRB0001 Tom Benson 15-Nov-1990,! Merged in ALPHA_MACRO command definition.!)! X-4 DLM0001 Diane L. Mega 18-Jul-1989! Added /ENABLE=VECTOR option!-! V5.0-7 (X-3) JGW0001 John Ward 30-Jul-1987<! Added /DIAGNOSTICS command qualifier for VAX LSE support. ! Added copyright notification.!2! X5.0-4 (X-2) JAW0001 Jim Wooldridge 27-Feb-1987:! Added the /ANALYSIS_DATA qualifier for VAX SCA support.!1! V03-010 RRB0022 Rowland R. Bradley 21-Jun-19846! Remove nonnegatable from /DISABLE, /ENABLE, /UPDATE! and /LIBRARY.!,! V03-009 PCG0001 Peter George 13-Mar-19840! Remove last vestiges of old command inteface..! Remove DEFAULT clause from /SHOW qualifier.!1! V03-008 RRB0015 Rowland R. Bradley 24-Feb-19849! Remove default settings for /DISABLE and /ENABLE since9! these override any switches set by the user w/ .ENABLE3! or .DISABLE. Defaults must be set in MACRO.EXE.!1! V03-007 RRB0014 Rowland R. Bradley 23-Feb-19845! Remove disallow of /LIB and /UPDATE. This must be5! handled by the program since context(position) is ! important.!1! V03-006 RRB0010 Rowland R. Bradley 25-Jan-1984<! Set correct defaults for /DISABLE, /ENABLE, /SHOW, /LIST,@! and /CROSS_REFERENCE. Inserted "nonnegatable" where apropo. !+! V03-005 MTR0003 Mike Rhodes 7-Apr-19838! Correct the default keyword specification for /DEBUG.!+! V03-004 MTR0002 Mike Rhodes 28-Mar-1983C! Modify the OBJECT and LISTING qualifiers to make them positional!+! V03-003 MTR0001 Mike Rhodes 24-Mar-1983A! Modify the NOSHOW qualifier to accept a list of show keywords.A! (This is done because negated qualifiers can't have keywords.)!6! V03-002 PCA1008 Paul C. Anagnostopoulos 10 Feb 1983B! Merge the outputs list for DCL and MCR, as the new CDU does not! support separate lists.!+! V03-001 MTR0001 Mike Rhodes 9-Feb-19830! Add 'label' field to parameter specification.!M!----------------------------------------------------------------------------"! Name prefixes used in this file:!5! Prefix Product Verb! ------ ------- ---- ! VAX VAX MACRO MACRO/VAX ! RSX MACRO-11 MACRO/RSX11>! MIGRATION Alpha MACRO-32 Migration Compiler MACRO/MIGRATION0! ALPHA Alpha MACRO-64 Assembler MACRO/ALPHA!!I! The default is MACRO/VAX on VAX machines, and MACRO/MIGRATION on Alpha.D! To change the default MACRO syntax, search for all occurrences of M! the string ****DEFAULT**** and comment/ uncomment the appropriate sections ! of the file as directed.M!----------------------------------------------------------------------------!H! The following type is used to define the version of this command-line L! definition file. Never delete earier version keywords. Add a new versionH! keyword each time you modify this file. In addition, ensure that all I! modifications to this file are upward compatible. This keyword is usedN! during layered product installation, since several products share this file.define type cmdver_versions keyword v000000!! Common option types!define type debug_options keyword all,default keyword none keyword symbols keyword traceback!! MACRO/VAX command options!define type vax_enable_options keyword ama keyword dbg keyword fpt keyword gbl keyword lsb keyword tbk keyword absolute keyword debug keyword truncation keyword global keyword suppression keyword traceback keyword vectordefine type vax_def_options keyword lower keyword upper, default keyword bothdefine type vax_names_options1 keyword definitions, value(type=vax_def_options)& keyword upper, nonnegatable, defaultdefine type vax_show_options keyword cnd,default keyword mc,default keyword md,default keyword me keyword meb keyword conditionals keyword calls keyword definitions keyword expansions keyword binarydefine type vax_crf_options keyword all keyword directives keyword macros,default keyword opcodes keyword registe$ALPHA_MACRO64010.A `&[ASM.KITBUILD_27600F41_A]MACRO64.CLD;1N0"rs keyword symbols,default!****DEFAULT****>!-------- Uncomment this section to make the default MACRO/VAX!%!define verb MACRO ! syntax VAX_MACRO!.! qualifier migration, syntax=MIGRATION_MACRO,! nonnegatable!$! qualifier rsx11, syntax=RSX_MACRO,! nonnegatable!&! qualifier alpha, syntax=ALPHA_MACRO,! nonnegatable!8! qualifier $cmdver,value(type=cmdver_versions,required)!D!------- Uncomment this section to make the default MACRO/MIGRATION & define syntax VAX_MACRO ! verb MACRO * qualifier migration, ! Define to disallow nonnegatable disallow migration& qualifier rsx11, ! Define to disallow nonnegatable disallow rsx11& qualifier alpha, ! Define to disallow nonnegatable disallow alpha#!------- End default change section!****DEFAULT****, qualifier vax, ! Define so /VAX /VAX works nonnegatable image macro32 parameter p1,label=file, prompt="File",% value(required,list,type=$infile)( qualifier disable, value(required,list, type=vax_enable_options)' qualifier enable, value(required,list, type=vax_enable_options)# qualifier library, placement=local) qualifier listing, placement=positional, value(type=$outfile), batch' qualifier names, placement=positional," value(type=vax_names_options), nonnegatable( qualifier object, placement=positional, value(type=$outfile), default3 qualifier show, value(list,type=vax_show_options)4 qualifier noshow, value(list,type=vax_show_options) qualifier cross_reference,*$ value(list,type=vax_crf_options). qualifier update, value(list),placement=local0 qualifier debug, value(list,type=debug_options) qualifier analysis_data,l placement=positional,  value(type=$outfile)- qualifier diagnostics, placement=positional,m value(type=$outfile)M!---------------------------------------------------------------------------- -! MACRO/RSX11 command definition (MACRO-11): o!a$define syntax RSX_MACRO ! verb MACRO!m<! Since the syntax qualifiers change the entire syntax used,=! within this syntax we need to redefine the /RSX11 qualifier <! (so /RSX11/RSX11 works), and disallow the other qualifiers!*% qualifier vax, ! Define to disallows nonnegatable disallow vax* qualifier migration, ! Define to disallow nonnegatable disallow migration% qualifier rsx11, ! Use RSX11 syntax,  nonnegatable& qualifier alpha, ! Define to disallow nonnegatable disallow alpha image backtransM!----------------------------------------------------------------------------*I! MACRO/MIGRATION command definition (Alpha MACRO-32 Migration Compiler):e!i&define type migration_optimize_options keyword none1 keyword all keyword schedule, negatable keyword peephole, negatable keyword addresses, negatablew keyword references, negatable keyword vaxregs, negatable%define type migration_warning_optionsP keyword all keyword noneR" keyword informationals, negatable keyword warnings, negatable"define type migration_dump_options keyword all keyword none  keyword pass1, negatable keyword pass2, negatable keyword flow1, negatable keyword flow2, negatable keyword flow3, negatable keyword cfa, negatable&define type migration_preserve_options keyword all keyword none  keyword atomicity, negatable  keyword granularity, negatablet"define type migration_flag_options keyword all keyword noneu keyword alignment, negatableR keyword jumps, negatable keyword arglist, negatableE keyword instructions, negatable keyword codegen, negatableL keyword directives, negatable keyword hints, negatable keyword stack, negatable$define type migration_enable_options keyword absolute  keyword debug keyword truncationC keyword globalF keyword suppression keyword traceback keyword flagging2 keyword quadword  keyword overflow keyword ama keyword dbg keyword fpt keyword gbl keyword lsb keyword tbk"define type migration_show_options keyword conditionals9 keyword calls keyword definitions keyword expansionsb keyword binary  keyword library keyword cnd keyword mcl keyword md keyword me keyword meb!****DEFAULT****>!-------- Uncomment this section to make the default MACRO/VAX!O,!define syntax MIGRATION_MACRO ! verb MACRO ! &! qualifier vax, ! Define to disallow! nonnegatable.! disallow vax !c'! qualifier rsx11, ! Define to disallowg! nonnegatablee! disallow rsx11A! '! qualifier alpha, ! Define to disallowe! nonnegatableo! disallow alphaM!OD!-------- Uncomment this section to make the default MACRO/MIGRATION+ define verb MACRO ! syntax MIGRATION_MACROi" qualifier vax, syntax=VAX_MACRO, nonnegatable# qualifier rsx11, syntax=RSX_MACRO,d nonnegatable% qualifier alpha, syntax=ALPHA_MACRO, nonnegatable7 qualifier $cmdver,value(type=cmdver_versions,required)h$!-------- End default change section!****DEFAULT****< qualifier migration, ! Define so /MIGRATION/MIGRATION works nonnegatable image alpha_macro parameter p1, label=file,3 prompt="File",, value(required,concatenate,type=$infile)0 qualifier DEBUG, value(list,type=debug_options)' qualifier LIST, placement=positional,  value(type=$outfile), batchA# qualifier LIBRARY, placement=localt' qualifier SHOW, placement=positional,  nonnegatable,N, value(list,type=migration_show_options),( qualifier NOSHOW, placement=positional, nonnegatable,J+ value(list,type=migration_show_options)M disallowA( (show.conditionals or show.cnd) and( (noshow.conditionals or noshow.cnd) or (show.calls or show.mc) and (noshow.calls or noshow.mc) or& (show.definitions or show.md) and& (noshow.definitions or noshow.md) or% (show.expansions or show.me) and0% (noshow.expansions or noshow.me) or/" (show.binary or show.meb) and" (noshow.binary or noshow.meb) or! show.library and noshow.libraryt% qualifier DISABLE, placement=global,8- value(list,type=migration_enable_options) disallow not disable andW ( disable.absolute or disable.debug or  disable.truncation or disable.global or disable.suppression or1 disable.traceback or7 disable.flagging or disable.quadword or disable.ama or disable.dbg or disable.fpt or disable.gbl or disable.lsb or disable.tbk )$ qualifier ENABLE, placement=global,. value(list,type=migration_enable_options), disallow not enable and ( enable.absolute or. enable.debug or enable.truncation orb enable.global orl enable.suppression or enable.traceback or enable.flagging orb enable.quadword or  enable.overflow oru enable.ama orE enable.dbg or0 enable.fpt ore enable.gbl orm enable.lsb ora enable.tbk  ) disallowb( (enable.absolute or enable.ama) and& (disable.absolute or disable.ama) or% (enable.debug or enable.dbg) andt# (disable.debug or disable.dbg) orL* (enable.truncation or enable.fpt) and( (disable.truncation or disable.fpt) or& (enable.global or enable.gbl) and$ (disable.global or disable.gbl) or+ (enable.suppression or enable.lsb) and0) (disable.suppression or disable.lsb) orh) (enable.traceback or enable.tbk) andm' (disable.traceback or disable.tbk) or , enable.flagging and disable.flagging or, enable.quadword and disable.quadword or) enable.overflow and disable.overflowa# qualifier FLAG, placement=global,14 value(required,list,type=migration_flag_options) disallow flag.all and flag.none disallow not flag andF (flag.alignment or flag.jumps or flag.arglist or flag.instructions or@ flag.codegen or flag.directives or flag.hints or flag.none or  flag.stack or flag.all)-& qualifier PRESERVE, placement=global,8 value(required,list,type=migration_preserve_options)( disallow preserve.none and preserve.all disallow not preserve and3 (preserve.atomicity or preserve.granularity orM preserve.none or preserve.all)- qualifier DIAGNOSTICS, placement=positional,  value(type=$outfile)- qualifier MACHINE_CODE, placement=positionalX* qualifier UNALIGNED, placement=positional( qualifier SYMBOLS, placement=positional& qualifier TIE, placement=positional, default*( qualifier OBJECT, placement=positional, default, f$ALPHA_MACRO64010.A `&[ASM.KITBUILD_27600F41_A]MACRO64.CLD;1N0;%# value(type=$outfile)) qualifier WARNINGS placement=positional,-. value(list,type=migration_warning_options)( disallow warnings.all and warnings.none disallow not warnings and& (warnings.all or warnings.none or3 warnings.warnings or warnings.informationals)o) qualifier OPTIMIZE placement=positional, / value(list,type=migration_optimize_options)b( disallow optimize.all and optimize.none disallow not optimize andE (optimize.schedule or optimize.peephole or optimize.addresses ory. optimize.references or optimize.vaxregs)( qualifier RETRY_COUNT placement=global, nonnegatable, value(type=$number)o ! Developer-only qualifiers' qualifier DUMP, placement=positional,o4 value(required,list,type=migration_dump_options) disallow dump.all and dump.none disallow not dump andK (dump.pass1 or dump.pass2 or dump.flow1 or dump.flow2 or dump.flow3 ork( dump.cfa or dump.all or dump.none). qualifier BREAKPOINTS, label=gem_breakpoints, placement=global,o value(list,required)% qualifier GEMDEBUG, label=gem_debug,a placement=global" qualifier DUMPS, label=gem_dumps, placement=global,a value(list,required)( qualifier SWITCHES, label=gem_switches, placement=global, value(list,required). qualifier TRACEPOINTS, label=gem_tracepoints, placement=global, value(list,required)!p+! MACRO/ALPHA command definition (MACRO-64)r!i!define type alpha_warning_optionsd keyword all, defaults keyword nones" keyword informationals, negatable keyword warnings, negatable#define type alpha_alignment_optionsf keyword data! keyword codeR"define type alpha_optimize_options keyword peephole keyword scheduledefine type alpha_show_options keyword expansionsu keyword conditionalsL keyword include keyword librarydefine type alpha_names_optionse keyword uppercase,default keyword lowercaseo keyword as_is /define type alpha_env_optionsX) keyword float, negatable, defaultn ! Developer-only optionsndefine type alpha_dump_options keyword all keyword none  keyword clp,negatable keyword cod,negatable keyword lex,negatable keyword loc,negatable keyword lof,negatable keyword mac,negatable keyword msg,negatable keyword res,negatable keyword sem,negatable keyword src,negatable keyword syn,negatable keyword tab,negatable keyword tok,negatable keyword utl,negatable keyword exp,negatable'define syntax ALPHA_MACRO ! verb MACRO !v<! Since the syntax qualifiers change the entire syntax used,=! within this syntax we need to redefine the /ALPHA qualifier=<! (so /ALPHA/ALPHA works), and disallow the other qualifiers!y% qualifier vax, ! Define to disallowr nonnegatable disallow vax* qualifier migration, ! Define to disallow nonnegatable disallow migration& qualifier rsx11, ! Define to disallow nonnegatable disallow rsx110 qualifier alpha, ! Define so /ALPHA/ALPHA works nonnegatable image macro64 parameter p1, label=FILE,  prompt="File",% value(required,type=$infile,list)e5 qualifier environment placement=positional,p@ value(type=alpha_env_options,required), nonnegatable,(' default ( qualifier object, placement=positional, value(type=$outfile),- default-' qualifier list, placement=positional,- value(type=$outfile), batch(' qualifier debug, placement=positional, . value(list,default=all,type=debug_options)4 qualifier diagnostics, placement=positional, value(type=$outfile)' qualifier names, placement=positional,s- value(type=alpha_names_options,required),  nonnegatable,o defaultg' qualifier show, placement=positional,iD value(list,type=alpha_show_options), nonnegatable( qualifier noshow, placement=positional,D value(list,type=alpha_show_options), nonnegatable6 disallow noshow.expansions and show.expansions: disallow noshow.conditionals and show.conditionals0 disallow noshow.include and show.include0 disallow noshow.library and show.library# qualifier library, placement=localn1 qualifier optimize, placement=positional,eG value(list,type=alpha_optimize_options)a3 qualifier nooptimize, placement=positional,dG value(list,type=alpha_optimize_options)g: disallow optimize.schedule and nooptimize.schedule: disallow optimize.peephole and nooptimize.peephole3 qualifier alignment, placement=positional, 2H value(list,type=alpha_alignment_options)5 qualifier noalignment, placement=positional, nH value(list,type=alpha_alignment_options)4 disallow alignment.data and noalignment.data4 disallow alignment.code and noalignment.code) qualifier WARNINGS placement=positional,y( default,* value(list,type=alpha_warning_options)/ disallow warnings.all and warnings.nonen disallow not warnings and& (warnings.all or warnings.none or3 warnings.warnings or warnings.informationals)a4 qualifier machine_code, placement=positional ! Developer-only qualifiers qualifier dump_facility, placement=positional,5 value(list,default=none,type=alpha_dump_options),p nonnegatable+ qualifier dump_file, placement=positional, value(type=$outfile),o nonnegatable. qualifier BREAKPOINTS, label=gem_breakpoints, placement=global, value(list,required)% qualifier GEMDEBUG, label=gem_debug,n placement=global" qualifier DUMPS, label=gem_dumps, placement=global,v value(list,required)( qualifier SWITCHES, label=gem_switches, placement=global, value(list,required). qualifier TRACEPOINTS, label=gem_tracepoints, placement=global,e value(list,required)&*[ASM.KITBUILD_27600F41_A]MACRO64.ENV;1+,CVTDGCVTGDCVTGFCVTGQCVTLQCVTQFCVTQGCVTQLCVTQSCVTQTCVTSTCVTTQCVTTS DATA_ADDRESS DATA_SECT DATA_SECTION!DATA_SECTION_PSECT_AND_ATTRIBUTES DATA_SECT_PTRDATA_STORAGE_DIRECTIVESDEFAULT_SIGNATURE DIRECTIVESDISABLE DISPLACEMENTDIVFDIVGDIVSDIVTDRAINADRAINT D_FLOATING EDIT_LEXOP EDIT_OPTION ELEMENT_LEXOPELSE ELSE_OPTIONENABLEENABLE_OPTION_ITEMENCODING ENCODING_INSENDCENDMENDR END_EPILOGUE END_EXACT END_PROLOGUEEND_PROLOGUE_PAR END_ROUTINEEND_ROUTINE_NAME ENTRY_PAR ENTRY_POINTENVIRONMENT_VALUEENV_VALEQVERROR Make location counter value even Make location counter value even.EVENEXCBEXECUTE PSECT ATTRIBUTEEXECUTE PSECT ATTRIBUTEEXE. Display macro expansions in the listing file.%SHOW MACRO EXPANSIONS IN LISTING FILE EXPANSIONSEXTBLEXTERNALEXTLHEXTLLEXTQHEXTQL EXTRACT_LEXOPEXTWHEXTWLFABSFBEQFBGEFBGTFBLEFBLTFBNEFCLRFCMOVEQFCMOVGEFCMOVGTFCMOVLEFCMOVLTFCMOVNEFETCHFETCH_MFMOVFNEGFNOPFORMAT FORMAT_ITEM FP_REGISTER FREGISTERFUNC_RET F_FLOATINGGLOBAL PSECT ATTRIBUTEGLOBAL PSECT ATTRIBUTEGBLGENTRAP>Implicitly treate undefined references as external declarationGLOBAL GLOBAL_SYMBOL G_FLOATINGHALT HANDLER_ADDHANDLER_ADDRESS HANDLER_DATAHANDLER_REINVOKE ID_STRINGIF IF_CONDITIONIF_FALSEIF_TRUE IF_TRUE_FALSEIIFIMB.Display include file text in the listing file.&SHOW INCLUDE FILE TEXT IN LISTING FILEINCLUDEINCLUDE_SOURCEINDIRECTINSBLINSLHINSLLINSQHINSQHILINSQHILRINSQHIQINSQHIQRINSQLINSQTILINSQTILRINSQTIQINSQTIQRINSQUELINSQUEQ INSTRUCTION INSTRUCTIONSINSWHINSWLINS_INTEGER_EXPRESSIONINSQUAL INTEGER_LEXOP IREGISTERIRPIRPCJMPJSR JSR_COROUTINEJUMPLOCAL PSECT ATTRIBUTELOCAL PSECT ATTRIBUTELCLLDALDAHLDFLDGLDLLDL_LLDQLDQPLDQ_ALDQ_LLDQ_NOPLDQ_ULDSLDT LENGTH_LEXOPLEXICAL_ESCAPELEXICAL_OPERATIONSLEXICAL_STRING_SYMBOL LEXICAL_SUB9 Display text for library defined macros in listing file.4SHOW TEXT FOR LIBRARY DEFINED MACROS IN LISTING FILELIBRARYLINKAGE_CONTROL_DIRECTIVES LINKAGE_PAIRLINKAGE_PAIR_MACROLINKAGE_PAIR_NAMELINKAGE_REGISTER_ARG LINKAGE_SECTLINKAGE_SECTIONLINKAGE_SECTION_ADDLINKAGE_SECTION_ADDRESS$LINKAGE_SECTION_PSECT_AND_ATTRIBUTESLINKAGE_SECTION_REGISTERLISTLISTING_CONTROL_DIRECTIVES LISTING_TITLE LIST_OPTIONLITERALEnable a local block scope LOCAL_BLOCKLOCAL_BLOCK_OPTIONLOCAL_CALL_BOOLLOCAL_CODE_ADDRESSLOCAL_LINKAGE_PAIR LOCAL_PARLOCAL_PROCEDURE_DESCRIPTOR LOCAL_SYMBOL LOCATE_LEXOPLOCATION_CONTROL_DIRECTIVESLONGAligned to 2**2 = 4 bytesLONGMACRO MACRO_CALLMACRO_DIRECTIVESMBMDELETEMEMORYMEMORY_FUNCTIONMESSAGE_DISPLAY_DIRECTIVESMEXITMFPR_ASN MFPR_ASTEN MFPR_ASTSRMFPR_ESPMFPR_FENMFPR_IPL MFPR_MCES MFPR_PCBB MFPR_PRBR MFPR_PTBR MFPR_SCBB MFPR_SISRMFPR_SSP MFPR_TBCHKMFPR_USP MFPR_VPTB MFPR_WHAMIMF_FPCRMIX PSECT ATTRIBUTEMIX PSECT ATTRIBUTEMIXMNEMONIC MNEMONIC_NAMEMODULE MODULE_NAMEMOVMSKBLMSKLHMSKLLMSKQHMSKQLMSKWHMSKWL MTPR_ASTEN MTPR_ASTSR MTPR_DATFXMTPR_ESPMTPR_FEN MTPR_IPIRMTPR_IPL MTPR_MCES MTPR_PERFMON MTPR_PRBR MTPR_SCBB MTPR_SIRRMTPR_SSP MTPR_TBIA MTPR_TBIAP MTPR_TBIS MTPR_TBISD MTPR_TBISIMTPR_USP MTPR_VPTBMT_FPCRMULFMULGMULLMULQMULSMULTNARG NARG_USER_IDNCHRNEGFNEGGNEGLNEGQNEGSNEGTNLISTNOT EXECUTABLE PSECT ATTRIBUTENOT EXECUTABLE PSECT ATTRIBUTENOEXENOMIX PSECT ATTRIBUTENOMIX PSECT ATTRIBUTENOMIX NONSTD_BOOLNOP0NON-POSITION-INDEPENDENT CONTENT PSECT ATTRIBUTE0NON-POSITION-INDEPENDENT CONTENT PSECT ATTRIBUTENOPIC6NONREADABLE PSECT ATTRIBUTE -- RESERVED FOR FUTURE USENONREADABLE PSECT ATTRIBUTENORDNOSHOWNO SHARE PSECT ATTRIBUTENO SHARE PSECT ATTRIBUTENOSHRNOTNONWRITEABLE PSECT ATTRIBUTENONWRITEABLE PSECT ATTRIBUTENOWRTnullNullNULLOCTAAligned to 2**4 = 16 bytesOCTAMake location counter value oddMake location counter value odd.ODDOPCODE_ARG_LISTOPDEF!OPDEF_AND_CALLING_STANDARD_MACROSOPTIONAL_INTEGER_EXPRESSIONOPTION_DIRECTIVESOPT_BASE_EXPRESSIONORORNOTOVERRIDE_FLAGSOVERLAY PSECT ATTRIBUTEOVERLAY PSECT ATTRIBUTEOVRO_FLAGSPage ejection directivePage ejection directive.PAGE2Enable peephole optimization for the assembly unitPEEPHOLE,POSITION-INDEPENDENT CONTENT PSECT ATTRIBUTE,POSITION-INDEPENDENT CONTENT PSECT ATTRIBUTEPICPRINTPROBERPROBEWPROCEDURE_DESCRIPTORPROCEDURE_DESCRIPTOR_MACROPROC_DESCRIPTOR_NAMEPROC_VALPROGRAM_SECTIONING_DIRECTIVES PROL_LABELPSECTQUADAligned to 2**3 = 8 bytesQUADRC2READABLE PSECT ATTRIBUTE - RESERVED FOR FUTURE USE1READABLE PSECT ATTRIBUTE- RESERVED FOR FUTURE USERDRD_PSREAD_UNQregisterRegisterREGISTERREI REI_RETURNRELOCATABLE PSECT ATTRIBUTERELOCATABLE PSECT ATTRIBUTERELREMQHILREMQHILRREMQHIQREMQHIQRREMQTILREMQTILRREMQTIQREMQTIQRREMQUELREMQUEQREPEATR REPEAT_LEXOPRESOPC01RESOPC02RESOPC03RESOPC04RESOPC05RESOPC06RESOPC07RESOPC0ARESOPC0CRESOPC0DRESOPC0ERESOPC14RESOPC1CRESPAL19RESPAL1BRESPAL1DRESPAL1ERESPAL1F RESTORE_PSECTRETRETURNRETURN_ADDRESS_RN RETURN_TYPERNROUTINEROUTINE_CALLED ROUTINE_KIND ROUTINE_NAME ROUTINE_TYPERPCCRS RSA_OFFSETRSCCS4ADDLS4ADDQS4SUBLS4SUBQS8ADDLS8ADDQS8SUBLS8SUBQ SAVED_REGSSAVE_FP SAVE_PSECTSAVE_RASAVE_REGISTER_LIST4Enable scheduling optimization for the assembly unitSCHEDULE SCRATCH_REGSSCRATCH_REG_LIST SET_ARG_INFOSEXTLSHOWSHARE PSECT ATTRIBUTESHARE PSECT ATTRIBUTESHR SIGNED_BYTE SIGNED_WORD SIG_BLOCK SIG_BLOCK_ADDSIZESLLSOURCE_INCLUSIONSOURCE_STATEMENTSRASRLstackstackSTACK STACK_RET_VALSTACK_RET_VAL_BOOLSTANDARD_PROLOGUESTFSTGSTLSTL_CSTQSTQPSTQ_CSTQ_U STRING_LEXOP STRING_SYMBOLSTSSTTSUBFSUBGSUBLSUBQSUBSSUBTSUBTITLE SUBTITLE_NAMESWASTENSWPCTXSYMBOL_CONTROL_DIRECTIVESSYMBOL_DEFINITIONfT$ALPHA_MACRO64010.A= arg2?"1 or 2 arguments. Is arg1 >= arg2? GREATER_EQUAL!1 or 2 arguments. Is arg1 > arg2?!1 or 2 arguments. Is arg1 > arg2?GREATERstore floating point dataStore floating point data .G_FLOATING %{floating_list}%... S ;number of arguments per instruction. Uhalt%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type andAddress of exception handlerAddress of exception handler,HANDLER = %{handler_address}%Address of handlerHandler data addressHandler data address ,HANDLER_DATA = %{data_address}%)Boolean value for: Handler is reinvokable*Boolean value for : Handler is reinvokableK,HANDLER_REINVOKABLE = %{boolean_value}% ;TRUE -- Handler is reinvokable42 arguments. Is macro arg1 identical to macro arg 2?42 arguments. Is macro arg1 identical to macro arg 2? IDENTICALObject module identifier%the module, such as a version number.JA 1-31 character string enclosed in double quotation marks that identifiesConditional assemblyConditional assembly ;.ENDC ; END conditionL ; assemble if condition is FALSE.%[ELSE_OPTION]% ; K ; assemble IF condition is TRUEG ; conditional assembly code-.IF %{if_condition}% %{conditional_arg_list}% .IF condition to be met DIFFERENT_IF IDENTICAL_IF NOT_BLANK_IFBLANK_IFNOT_DEFINED_IF DEFINED_IFGREATER_EQUAL_IF LESS_THAN_IF LESS_EQUAL_IF GREATER_IF NOT_EQUAL_IFEQUAL_IF:If the condition of assembly block is FALSE, assemble code9If the condition of assembly block is FALSE,assemble code .IF_FALSE9If the condition of assembly block is TRUE, assemble code8If the condition of assembly block is TRUE,assemble code.IF_TRUE@Regardless of the condition of the assembly block, assemble code@Regardless of the condition of the assembly block, assemble code.IF_TRUE_FALSEImmediate conditional assemblyImmediate conditional assemblyE.IIF %{if_condition}% %{conditional_arg_list}% , %V$ALPHA_MACRO64010.A %Indefinite repeat character directive%Indefinite repeat character directive.ENDR0 ;code to repeat0 ;code to repeat-.IRPC %{irpc_formal_arg}%, <%{irpc_strZK$ALPHA_MACRO64010.A #characters enclosed in irpc_string.@Formal argument that is successively replaced with the specified)expansion of the indefinite repeat range.?A sequence of characters enclosed in angle brackets used in thethe indefinite repeat range.EList of actual arguments enclosed in angle brackets used in expandingIFormal argument which is successively replaced with the actual arguments. S ;number of arguments per instruction. Tjmp%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tjsr%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. ^jsr_coroutine%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tlda%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Uldah%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tldf%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tldg%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tldl%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Vldl_l%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tldq%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Uldqp%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Vldq_a%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Vldq_l%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Xldq_nop%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Vldq_u%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tlds%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type and S ;number of arguments per instruction. Tldt%[ins_qual]% %{opcode_arg_list}%... ;Consult the reference manual for type andlength lexical operatorlength lexical operator%LENGTH(%{string}%)"1 or 2 arguments. Is arg1 <= arg2?"1 or 2 arguments. Is arg1 <= arg2? LESS_EQUAL!1 or 2 arguments. Is arg1 < arg2?!1 or 2 arguments. Is arg1 < arg2? LESS_THANLexical escape operatorLexical escape operator%%{lexical_operations}%Lexical operations LEXICAL_SUBLEXICAL_ESCAPE TYPE_LEXOP TIME_LEXOP STRING_LEXOP REPEAT_LEXOP INTEGER_LEXOP ELEMENT_LEXOP EDIT_LEXOP EXTRACT_LEXOP LOCATE_LEXOP LENGTH_LEXOPLexical string symbolLexical substitution operatorLexical substitution operator%%{lexical_string_symbol}%%LINKAGE CONTROL DIRECTIVESBASELOCAL_PROCEDURE_DESCRIPTORLOCAL_LINKAGE_PAIRPROCEDURE_DESCRIPTOR LINKAGE_PAIRLinkage pair directiveLinkage pair directive.LINKAGE_PAIR %{user_id}%*Define linkage pair in the linkage section*Define linkage pair in the linkage sectionM ; FALSE == store non-local linkage pairJ LOCAL=%{boolean_value}% ; TRUE == store a local linkage pair$$LINKAGE_PAIR %{linkage_pair_name}%,Name of linkage pairLinkage section registerLinkage section register!,RLS=%{linkage_section_register}%linkage sectionLinkage section;,LINKAGE_SECTION = %{linkage_section_psect_and_attributes}%3Switch control to current routine's linkage section3Switch control to current routine's linkage section$LINKAGE_SECTIONLinkage section addressLinkage section address,LS=%{linkage_section_address}%Linkage section address!Linkage psect name and attributesLinkag section register RnControl listing file optionsControl listing file options.LIST %[list_option_item]%...LISTING FILE CONTROL DIRECTIVESNOSHOWSHOWSUBTITLEPAGENLISTLISTSpecified listing file titlelisting file page.>Optional quoted string to appear within the first line of each to be returned.CInteger expression specifying the element number of the main_string-Optional .LIST/.SHOW/.NLIST/.NOSHOW argumentsINCLUDELIBRARY EXPANSIONS CONDITIONALSBINARY,%{list_option}%save temporary label scopeSave temporary label scope LOCAL_BLOCKLocal call boolean value Local call booleanB,LOCAL=%{boolean_value}% ; TRUE == local call, FALSE non-localstore a code addressStore a code address/.LOCAL_CODE_ADDRESS %{data_expression_list}%...Local Linkage pair directiveLocal Linkage pair directive.LOCAL_LINKAGE_PAIR %{user_id}%'Boolean specifying local routine or not'Boolean specifying local routine or not,LOCAL=%{boolean_value}%$local procedure_descriptor directive$Local procedure_descriptor directive<.LOCAL_PROCEDURE_DESCRIPTOR %{user_id}% %{req_code_address}%#%{user_id}% = %{symbol_expression}%locate lexical operatorlocate lexical operator:%LOCATE(%{substring}%, %{main_string}% %[start_position]%)LOCATION CONTROL DIRECTIVESBLKWBLKTBLKSBLKQBLKOBLKLBLKGBLKFBLKDBLKBBLKAODDEVEN END_EXACT BEGIN_EXACTALIGNstore long word of dataStore long word of data!.LONG %{data_expression_list}%...!Change all uppercase to lowercase!Change all uppercase to lowercase LOWERCASEMacro definition directiveMacro definition directive=%{ENDM}% ; end macro definition> ; macro text definition> ; macro text definition> ; macro text definition,.MACRO %{macro_name}% %[formal_arg_list]%... Macro call6Identifier name specifying a call to a defined macro. MACRO DIRECTIVESIRPCIRPNCHRNARGENDRREPEATMEXITMDELETEENDMMACROmacro formal argument@A symbol to be replaced by the actual arguments in a macro call. Macro name8 The name of the macro which can be up to 32 characters.,macro name list%{macro_name}%esl$ALPHA_MACRO64010.AR<&d r3 c!O@4vwJ1D ^^NivRG^'#F$71&F{6fGHiodaKIFp.$F.IW58|G(Β<)M, 6D&J^3`N8g^nSP F_./y-e7ś,~)r{N/s]h("驅dEMほb}p!Q˪T~^Ug{͖I/M. &^L_X{:YTEХ#8N =ue{c7vP:Мj~ ;4/{Juh_[w0\6QpiK0(}jڿcvxp{X  .|{5?[6Ѽ=e牊jv?>ia0LnntRjG^L0Y/LD,O>YoSz''xa:B5_#tSS\P+H"|]0^[x6>e7yBM{AP&rނĂq%ӻI.%H.2rV>(& 3"ьSQ_5uNx>3Ot`ʁ+ߕ*`<,Z[haCmRKs&B+c1 y7p,է|{/,B2\5ax}7 sJO;ky\!2/Y6Ptr;3Yp3Ꮪ+:q[uh۠On,γҖK-OIedKiKA͋D(}/#G%Q}Wsl/A_M}bvG09u_Łr[)Te 9q{ r,":P`'5Xi-mFa83NuIV+mO;6@S 6˗(o-mMoU'nvɯN. J[wSCz{o$iHdHrQ&7_Yי*9q,YϬXZ!LM}EYkA!wht>HDae? !@]*nW)TU]`=o;sz&`x/("uawtr ;' NZJ)2?$UNDKVJ 5t5a_&(RTx^~G)My[[c!wQBPSB* مI˙b.[j͘5 6|Wxd"?l4=KCmpIeD Zf[*N^N/2!?m>IxL)%I*uE$]b?0Z.2BD*9p@}~ XFrBp>vO?NE|nI!+ >Tq%[l]y TD =OiXW|TJztŏ0\U2oxAKn49w@W%MzG;1bxx;MSG 4_XD1?V'T!&}H]Xkħ`jنqfTȪնʈ%M00R;/#eMhI }NY-~h#p~PII-": } erdw14dD .,lO[A_h0"_$_C|<37 j 8Em9Sr]/*A!0ht_W.}|zD0E<8J@yƧOBwVI:y&1iK='/*sAr"A /6y7sp<-1]7ZQPu!v[)=i~4/Xk\6diGky%Aw-TAr2>2:[*4"l ᆋi nh.711DWLQZIPd~}8\Ζ7D ' o gtOY>%sA$ib\Yh5w`db|R{Invgt[O8(?a]t#tqlM g o 4B*6$[X:ariO(B4 kVmnQZiH,"}(MU)6mfn=?SmFiYw[,RR͗PFЗ Cߑ{$a1#jsk7 u*jzcd|]\Q0As XK{ CwNP$!s;>U5g_>(3 + 欟Zy*Ltke ?`ާ&(9ws4f76Mt*2">E3b1 Z c09RϠÀ10l6M <]lpij2wsݶ\/$!j౻!"bE<^xlF\_hBӺ5LK2X{~ $fykrÕ3Nf/Hq&"^DS &o>,>g$0Peo}KD;e~,}NM5I@]X_$|_G&$q\jy, [8A35V =P~8@+0)W3v3yx}Wȁ5{3l3h7)f"|D)x dF<~cTI)8U{8ewQB*W,f"j=/@e]ʷ]$箈}k'v;NhF 7ZP$ w:T N3!Nh)IY 8( zpp3`Xf;NktV~"m#2"h׫/%_byV ISŸk|i)x5WK֭􄲱+8Cr>~Ⱦ'Z}waL6bK[7~Unl-%vI+R`DXP1K$*6?˱b)Er%$ժ[#YՕ[U&rw"hu ؽ̗?!~|"{6tf:6l4 6+<ɮa6N P!˶ʚ1 ܜ^+Q4OyIFpWz,cٖ5b0V?>T?t|.MX~Qd|w&#MXع(nNsE‡ %Ǎm*tx  ;0iaW׹noSSٙ4o:|.4Ҫ_2~-,E=l?IGeB`tyD#E3Ojإt+ a8*(PY`j ؗ˻!Q`k`,y,o">9:wgeaMb'Ʊ(кer\3vWmj4Aa~)^FO"f7X2Ke^z }TA@f%,v[@IՖ _YBug qK u 8eÆ]$Vd4nxȤ"i|{{"2oFz)hf]̔/Dah5oF[OnKS$"x8bgh_tc[C"k|9*C@G/]ښwcrAO[t<l)#4#Y8W\rހ6}1HkQg_{WK%nhX"-Afw[2q2 K{:\Ekï%'\Tϒ\:yî<.` U(|U41)o`(B 3ԽqKqa`ӊ4`oѺbk:V!6!>,ltw g/%@xX;5)GI;FQ?i9 rIrh[$`B&uJspt͎չ+~} iJryICzA":n]}TR,GoݦT^J5`o6z{JѹgY-ad!=Ρ ,N_:̈/jѩ 1瞥oЙ6{J_s\c:#B\R1ilHj4hRU:R AI taS~ >cr;w2F,iHT@_( 67SSQWq=kc7J%{u/\||Wnc| spm5,wo~P<@ނ%/.R6&gk :A .ϠpS(.MHt+ iU{#vN=)6]G[(nV]+Ϻo"bI p)2boDB\b'4$>%dw#FQ ŢeGgԎo2 {=eu:Yy  k0#Q(Mnggqܻzmut^}:} +_eŠ6R%5.>FXžbZnf%ʴ^i͒+RGpp7Vnn m"[dWV2E ~z9ntqH&=|l;)]O?[ w7:#m)HRKa̜a:73Thuy~)J(Rdu{э(݇iQ] ([Q_jE@_U= AO&SotWA>c!YEcUWaGEQ6YZVx,SE" IB@E5EYZÞv#A$ILCͮҝp2Hֵv%~Sr! cQA> iR~. RZo7=J_'< zOџNmUN:ke JbL]H,#X2$RmCqq>=]8A 62XIAnv;Dzf{r[|koG8 KNw z^د$tdr".3u{ީrSa*QEڤPo/ XyC0$JxCĕf'1Y:XG PK7IJ{?~L  UkbRY"seMG\zz7Q]s7rea!) jMG!GF*wZY*m(;cl{K fEkY NqPH(JEaZ/0m)Oqb 7\f$nd" Fy>א;SL|l{ 8Zik/0HBwRW$&Ig/ҲruypKMhDBwIKD4-gF9FK`oxiwDrG]R6ms PJGIJfK`x$9})^y\΢8=8C\YC>wԒ,F$ 0o9__XXe#^ #nט6] LQBYXoE6r2{]8+a ,m%s,tx- 932=ZkB*MNN%.: uM.ʤ9n:gaiHX,. (NAs/N,6/Y,]0HTEڃ>[r9]D{h9r:WF>; UADHU? Y+L2};_FcHqC &iFjc$B\)+ϓ!$K- qc&麯}18 1`GuI$&!_D׶ HŠL^ 58@5>p2s`\hKa&l =BQp Sw,K| T8@r1Տ\64gSy,:1֕.ʌtq3&ӡD(2/{"v[t%h#<${`utLQ^tv/sJD uD{ ЖL0I)qQt2cY]o_ y( NC< ؖ6A˥T.2$e::U|Ⱦxfm>w>Jze!ɉ;o u#.FǏk;lB+o\Y|*LP?HƉvO!09MC=ӤJaJX'6+N=7><\a f :ic%JۼB j~=G5'@y>s(d"ױsէ3Jijny $=^j/彭{ntKX=<.)yib[693(JRVRNyGyU"ʢ_* cRǴh"!u0jBB4 5}4<^srĸEb\`>F[ Ey\0<ދ_pa V98e.SS=(/7)-Ol42<Ӆ qxXatO7M[>XƒHjgR%`u]f'8d/!"Wuk0vF;#1{ݠQy䄝ן y,ȋaYf!C|d b^(3ݫݸZH}%Z~_U4T@?1/B^e<.~Kj J>%RX Hh`?vT_Ɂ  RA S tall ''name' la1= $ALPHA_MACRO64010.AA string specifying the list element delimiter of main_string.String lexical operatorString lexical operator(%STRING( %{symbol_name_as_a_string}% )lexical string assignmentlexical string assignment%{user_id}% = %{string_value}%string sK$ALPHA_MACRO64010.ABGE@GBGT@PBICYBINARY@BIS@BLBC@BLBS@BLE@BLKA@BLKB@BLKD@BLKF@ BLKG@BLKL@BLKO@(BLKQ@2BLKS@<BLKT@FBLKW@PBLT@YBNE@b BOOLEAN_VALUEuBOUND@BPT@BR BRANCH_OFFSET@BSR@BUGCHK@BYTEBYTE_ALIGN_KEY@CALL@  CALL_ARG_LIST@ CALL_MACRO@/ CALL_MAC_NAME@BCALL_PAL@PCFLUSH@\CHME@fCHMK@pCHMS@zCHMU@CLR@CMOVEQ@CMOVGE@CMOVGT@CMOVLBC@CMOVLBS@CMOVLE@CMOVLT@CMOVNE@CMPBGE@CMPEQ@CMPGEQ@CMPGLE@CMPGLT@*CMPLE@5CMPLT@@CMPTEQ@LCMPTLE@XCMPTLT@dCMPTUN@pCMPULE@|CMPULT@ CODE_ADDRESS@CODE_ENTRY_POINT_LABEL@ CODE_SECT@ CODE_SECTION@!CODE_SECTION_PSECT_AND_ATTRIBUTES@ COMMON_BASE CONDITIONALS@XCONDITIONAL_ASSEMBLY_DIRECTIVES}CON_ATT@CPYS@CPYSE@CPYSNCUSTOM@ CVTDG@ CVTGD@ CVTGF@+ CVTGQ@6 CVTLQ@A CVTQF@L CVTQG@W CVTQL@b CVTQS@m CVTQT@x CVTST@ CVTTQ@ CVTTS@ DATA_ADDRESS@ DATA_SECT@ DATA_SECTION@ !DATA_SECTION_PSECT_AND_ATTRIBUTES@ DATA_SECT_PTR@ DATA_STORAGE_DIRECTIVES@# DEFAULT_SIGNATURE@: DIRECTIVES@J DISABLEW DISPLACEMENT@o DIVF@y DIVG@ DIVS@ DIVT@ DRAINA@ DRAINT@ D_FLOATING@ EDIT_LEXOP@ EDIT_OPTION@ ELEMENT_LEXOP@ ELSE@ ELSE_OPTION@ ENABLE@ ENABLE_OPTION_ITEM@2 ENCODING@@ ENCODING_INS@R ENDC@\ ENDM@f ENDR@p END_EPILOGUE@ END_EXACT@ END_PROLOGUE@ END_PROLOGUE_PAR@ EM.$ALPHA_MACRO64010.ABLBSs?BLE:@BLKA@BLKBABLKDxABLKFABLKGXBBLKLBBLKODCBLKQCBLKS*DBLKTDBLKWEBLTEBNEF BOOLEAN_VALUEFBPTGBRpHBRANCHHBSRRIBUGCHKJBYTEvJBYTE_INTEGER_EXPRESSIONJBYTE_INTEGER_EXPRESSION_ITEM)KCALLK CALL_ARG_LISTL CALL_MACROM CALL_MAC_NAMENCALL_PALNCFLUSHOCHMEyPCHMKAQCHMS RCHMURCLRSCMOVEQbTCMOVGE,UCMOVGTUCMOVLBCVCMOVLBSWCMOVLEVXCMOVLT YCMOVNEYCMPBGEZCMPEQ}[CMPGEQG\CMPGLE]CMPGLT]CMPLE^CMPLTm_CMPTEQ7`CMPTLEaCMPTLTaCMPTUNbCMPULE_cCMPULT)d CODE_ADDRESSdCODE_ADDRESS_LABELdCODE_ENTRY_POINT_LABELe CODE_SECT}e CODE_SECTIONe!CODE_SECTION_PSECT_AND_ATTRIBUTES&fCOLLAPSEsf COMMON_BASEfCOMPRESSjgCONDITIONAL_ARG_LIST>hCONDITIONAL_ASSEMBLY_DIRECTIVEShCPYSiCPYSEWjCPYSN k CUSTOM_OP_ARGkCUSTOM_OP_ARG_LISTkCUSTOM_OP_LIST lCVTDGlCVTGDmCVTGFfnCVTGQ/oCVTLQoCVTQFpCVTQGqCVTQLSrCVTQSsCVTQTsCVTSTtCVTTQwuCVTTS@v DATA_ADDRESShvDATA_EXPRESSION_ITEMvDATA_EXPRESSION_LISTv DATA_SECTWw DATA_SECTIONw!DATA_SECTION_PSECT_AND_ATTRIBU$?$ALPHA_MACRO64010.A0OPTIONAL_SEARCH_LIST_STRING0OPTION_DIRECTIVES0OPT_BASE_EXPRESSION1OR1ORNOT2OVERRIDE_FLAGS"3O_FLAGSI3PALa3PRINT3PROBERy4PROBEWC5PROCEDURE_DESCRIPTOR5PROCEDURE_DESCRIPTOR_MACRO8PROC_DESCRIPTOR_NAME8PROC_VALk9PROGRAM_SECTIONING_DIRECTIVES9 PROL_LABEL9PSECTs: PSECT_ARG; PSECT_NAMET<QUAD<RC=RD_PSH>READ_UNQ?REI? REI_RETURN@REMQHIL`AREMQHILR,BREMQHIQBREMQHIQRCREMQTILDREMQTILRZEREMQTIQ%FREMQTIQRFREMQUELGREMQUEQHREPEATJJ REPEAT_LEXOPJREQ_CODE_ADDRESS KRESOPC01KRESOPC02LRESOPC03nMRESOPC04:NRESOPC05ORESOPC06ORESOPC07PRESOPC0AjQRESOPC0C6RRESOPC0DSRESOPC0ESRESOPC14TRESOPC1CfURESPAL192VRESPAL1BVRESPAL1DWRESPAL1EXRESPAL1FbY RESTORE_PSECTYRETyZRETURNZRETURN_ADDRESS_RN[ RETURN_TYPE2[RN~[ROUTINE^ROUTINE_CALLED^ ROUTINE_KIND>_ ROUTINE_NAMEf_ ROUTINE_TYPE_RPCC~`RSDa RSA_OFFSETaRSCCbS4ADDL_cS4ADDQ)dS4SUBLdS4SUBQeS8ADDLfS8ADDQQgS8SUBLhS8SUBQh SAVED_REGSLiSAVE_FPi SAVE_PSECTjSAVE_RAjSAVE_REGISTER_LISTj SCRATCH_REGSkSCRATCH_REG_LISTKkSEARCH_LIST_STRINGk SET_ARG_INFO lSEXTLlSHOWTi̖ז*6BNZfr~˗'<Ncsʘؘ .<IWesřә$8atʚך &3@MZgtԛ1J\k˜ݜ#6D^n˝ߝ "3F_ny̞ܞ%2?KWco{̟۟!-9GZm~̠)=UfpáΡݡ*7FVeuϢޢ=Mbs~Уۣ ,9FUbmx٤1Kdt$ALPHA_MACRO64010.AN_q©թ!.;M_qêת +=N`rƫҫޫ ".:FR^k|̬ڬ5@Wdɭ /;KZguݮ#0<R\jwïү /?N]kϰ߰/?O_oͱ(<Pdpz²в޲);Jdtͳܳ(4?Wozڴ,9Mbmxе#<Ul~Ѷ޶)4@Vgv98Ʒҷ޷2>JarŸи޸)6CWdpȹ۹".:EQ]iuɺԺߺ "0<[ǻ׻  .<JYhvɼ׼ )7EYs߽.Uan{;ھ(5BO\i}ƿڿ7Pbv2GSft)ATl} #0=R_lx&3BRg />Sk} 4DShs~"2AQ`o -8D[n&3@O\gr1E_x%EQs3Dfz"4KUd*;L]m$1>KXer,=N^o ".:NZm  6JVh!D]x&BRw (7GVfu -=M]m}+DWap .<JXfx)5H[l &<GR]ju*6BN^s  2BTam-Qbr}SORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORTI_OWHATEVERMEMORYMEMORY ALLOCATIONSORTI_OWHATEVERSORTI_OWHATEVERSORT :˸$ALPHA_MACRO64010.A.': MACRO-64 .M64P%{}%%{}%...%[]%%[]%...P;;-"F@LRtMACRO64 vTDMSRDUXDEFAULT_KEYWORDS_LISTKEYS&*[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1+,D!./ 4- `0123KPWO56@W E-7@܎E-89GHJLh3(v,0 -v,MACRO-64MACRO64V1.0-213T10-37$ $ h$^! J$0 $ 1$2 $*3J$( 4  DCXSHR_0018 DEC$FORRTL_0018  DECC$SHR_0018`  DPML$SHR_0014"   LBRSHR_0014" LIBOTS_0014 LIBRTL_001@؉vSYS$PUBLIC_VECTORS_001t** ** *3$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1`"     0P0 0 p> &p 0 8r) 000 8r) 0 8r) X0h[ȇ`6p0=p@'H\89 4!P-Hp;  P' (AP?X  0P8r)| z  0z 6@ (k0`kP0@0p2";x/86 .T T0 8r) .MLBPW)hBh  0`0d?   8 h.M640p 0pX 08 @ )`m 0h @ p&0h@ '00 0'0P  )`_0 0x  r r `r p 0x0x0P |V' @'`o 08`q 0 q 0r 0q 000h0 q r @q r q r @r q q 0X p)^s 00 ` `o h )`_ ghf@ 08%x 0%0$ 8r) h0x$ 8r) 0# 8r) F08# 8r) 008r) s )`#xx````0   # 8!` !p"#!!""0`0 00 0x  H0   000@< 00  08  p)^Hp0  )`_0s 0 X0p0'0p%0%  0 @g0p0- 0'P8r) P`x2xКp@0H`?0, 8r) 0, 8r) 0, 8r) 0+08r) 0h+08r) 0*08r) 0*0* 8r) 0*08r) 0'0'0P' 0 . p)^ 0P-     ` @ h )`_`g00 |V' ()0 /P|V'| @  ` )``&0.0.0`.0|V' 0 G|V' ` (p2 @'0G 0F0F 0F 0F 0F` 0F 0PF @ @ (10D @ `)a)` @ P 0B@@  > ף'0,00@@< 00`?P (0(8100>P ( 0(10`= (10<0 0h<0@89 @ ?P  T^@Zh(80P?06@ @ ` @(`104@ 04  p)^0p20  P g)`_0H@ e f 0f X`&Ppx-`&8f 85%Pe 0 0X@< @  .e H`?X8YYYZ Z8ZZ[[[h\0J  `e p pe < 0W0  . 0U@   0HT@=< h< 0R@=< 0Q@=< 0J@=< L`LLL0MHM`MM@NN OO` 0@'P pe 0` e _ @ P, /0^ .&H`?P&0f @` f 0X`` e 0 x-_ %e hP-f _ 0X` ` Xh,%d$`&Pp0  0P]@< 0,0j@| @f 0k@| X90e 0n p   B`04`100 0p@ 0` ` @900@< .IRPC0  .IRP0؂@< .REPEAT .00^  900 P:08  0   p J$,0xwP _ (P:z{|{|z{{{{{|{{{{{{|00 @ ` `&0@  4ֵP$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1U;<;1_* `^dMk9McND(UZ{q`&Ώiu?r<]aF"1أRIg80Жpk|H,2<FeW"Im)]P{J1 z* }筁\&QZ2*n e%?]S OH Gkq]xG/9dY!/>^f)+>|'Dw#QTwe:' 0~5.Ҽ{\h Q!'u(`};g5$fn)Ywx4Uy;p@f# Q/*=ؒmޢ~)y ?ceov:RƬMȴ>7|OY|uT MD) KcrX}\Tͼm*hk^e0ь&==繒[ 4˶F(x-eV3dulxP5n7B\ 8dY@|RK(-̺q=C3\%Ȱl^$mu,i-?d0CaY",s$bFޒ.hiǛ$&dxe_ J:v9׾h)lޏ_qDD+[ǯ$ͥﴔ`wo)S+a8t>[D3f48̌_uH%&ÿc-ޑƚ}5xk"gj Wx"*88(oezwGDo] <_V)et2dՋ-- u-a;(}WS~ '-D*CVnKD$TxNjaHgY+J|oc2Qcv l讎/},tz@\Whw9& ߢm [fGٙ03I) [EB3JC0* DL>>4  ڡ:?Z"S0 ZBG|Kw&5:jv%ԪR_p&KÉZm; ,pq Z{PDbX3#mXh1|!a)qCoEm[/ 0ٞ U9JgrR6Bw^=ᒢgwAcU 1iF6LWO}Ё NՅ6vNnEG;m=x apq%OW(xS,ؿb֓)T<\7/;*H4!ҌX^mQ5dvf_~g<"f#\4+pz2%VCP83.C,99@stHu#~7UH nn +ݢ+1<ZrJr_Iqx7Y1~+8 } `U:v;9@R: 0tp 06}qSPN (rfw3QK2=\ <oq5ojXhYnڪC0 (׍ be0wceΏj(1H3nҿHgjK4g6inO.+j0REXH3U>@aJ*$ߟBd(DjBɾ/ɹ6=̍Dt;u4nJ?SX`,>!E ^CŠU3ܯVr)#<ԋf Lc!Jޮ+@Ŕ J%g=yv>vA9[a5|r/}`]+f'FHfu ]^ _$~))Ai׈l-D,w [^"F(̨sFđ7C`,SIJM!9u/C$pӒi/ëG䙶a`9LO4 T21z㒚B;-:mzD#9K2Mׁ'wL A3F48hKPϟI`\f5ixK{I^xPWt7N *yCrt+1U{ڽ8'YK(aOjϢ$'z ;?ZȮbb&74~ʈ_yršcϮ8:K\|^Wj˷cjЦmo^}pHFD1n&hp$B :#Ja&ra3"tm;Y4.Е3q@1Uh%=&Z4?VN -$6e'M\U|8 ֎ĦF6B\4@ΣYz ?):^VH UfD602g':I^ C52v|\]_ͮ]|y$g#SwsIY 0V Ȟs:j!^v:ƈ<_aFU$pA pҁTW#(6u؄8FiЖWq@'xK|t449;v&G uu3%HpbOu`Ĩv  (wZie\JkH.Ӊق85͛ '>W]98DW&|ء62ENmWxΉi_K˯?t(:5Dʴ [ JQ¹ɞ @* ( v&aLgؤ"!l/ƀsVq~O86eipPNwu}tqygyDw#%{ȢGZWhPCTS=q,OS2J5Hǘ^C iJ`I#HZ0~6cG= }gT]J)V9#E>\/1Dqpz7*lic|nS9sH}GTh`/ !<ߗ|a2GJ*ѻ(o 9a$ P5|I=dŌPB&^mC,W<="PHI196$~A70\.O܆\ze>71%MH^;.7J!4fcm &,1 nZλ&guv EgJ+ en@jm7q~ND=)e[E<3@(X~9lљړJEJk):gUV"tkU_CAPI*ǁͪEU$LZ-m]8Pȫrw?c /h!hk,gáA;1֙1/vDSmچŪǛ:1Uߩap|b+MP0IIILjII|znAkV0Egg: $7mbз0z>ĹnrVZnc=5'9_~)1L7]џЕRn};pg#htV)<+qHT R\, ed٘,;aɡ -4魪[2BVZʥ1_Y -x#Lg{hS[]XalLz%CG2Jt$<;?BkA?k*nXnOHUe]67v&Y'ʼrCZ2[+i:K*'R'QPU\$]aꔹ[ Tj>d,Ƌ]j- /#\l'W6mR;BlX:NxbVƻQoԝ&|(JԴh1+FpL; Zڝ`GUC+W!<1ՍI5`,UcM*h5j)IGϕt6J7h'k(cՋKB< 4yTO0#D }D++> T@.n@*'1(Lx+RfU akh@|g `8ltP3éf%1Sbڑ1+Z{++!)1O4GiO X"v^q]>$sziiw bE-@ gPPBvP4y#ЬTP:I\.z)Cnn~ȋWVM0Y_,(ɘ헠HPcoar'jMsDrZm +"vz ^(߼0mX2D yT\j=Dy͂oZVEx;̱|ac#KkKf/y-q$k'88;Wl4BR~eXp1 ,ij%1o g~l?pbɝsxyPa1DF',< 턵oF4CB?KjoMNLdHhygʑxq:o? @fDҕr3#t]^Eq^ t0K@0kx<)4sH~FrIwDy-QkקڶMbs7rpy8 *V3/X m%w ѭ=lQP#$ܫ.|&]*Oͦ9Jl}%]s}B#K& 5%/ϖF-rn_ͼnfR` .BgIG O5ʳc0?=udXE aH rzŏ% g:=qE)q %oR|(tA4{:CW0s0B/e)>Ǜٟ 4 7E 2)#+CgSzUmeȿ6+Ӱ&y Ƥaψ$ڌGa/NkooҪbO޽_ 4x&uLO+-::hꞭɵU1`rU> 5YMP( ?rCaߤPwGM6QZm[TQWt?%t,)V s8 $cńuS}Q='llʰ"[bEwM$ʺl50#ʲs>O@g%Z5(r_-ow(!?{;Ehx608F;dMH54{Z h@MvgHʠ]x$eMDj.pkYG%9U& mBuv x--_@=Oz<Q!<\xeԧ}DP_U ZP /o/tȭYG/{8 ecL*(Jq#txF/b3yxm2T.B@6}:Ym&K3LO~Xa%}2=hWw9B4N[b7\ةЙ͜^ |r Xz1@WD Ivq_X@fN}4GlH=B}6c#A8^+_R'C.f ^KΝsjsFJ *ހcr!Xre m&dT~F̈́pepjTƚW=NLCg^\3AoH1h[*h,lWe%2(_u2}HMW œ'`kWM'akq&ݖxQ $]1&bsړׯ΀-pR\!JiU$&1rle\_Yqc gq*ct츟&Np;~('Q t| B0܍GZ+1=U:Rǽ6q/;Iy J"&& ף_1wNFR"¿hQaX?){ɘ ".3vL0`8s1pTu.ʄ]8bny-Zgij@{TFЩ"cj>?'ЍLx8څ~_z }Y-L7t_>}x6㔭8s3. o_U>'}yCqԬ9{دxc:b?Bg1n28Z6ypzǗ8fN"+^,2R+'IN(tnr9ܧEdsکm .X^gJ3+I \\ )Pg_@Տnucyc?!bpƤw.aq ROmmuPWl/!#y6]-ےX͈Ay~v~*Vcv%oR籌[*zHȆ<& Ggw>7~RV*b*d bi""G] ̟0l9fbH/N&͆W`.E"՘z$iv`1c%6NPѾ<^K_nBWLM쩏J_ iK.! H`}TeMPs3qmt;>l sA&'|*$K>y'S^=!LTLjF#_e#h7U黔"]^ 8?׼gGˢ^ΎOrV҉Н#.3$pEkϷ)ktρgc_=6*S<(}1薊 }GܻфFe_4W>K'y buVaBRLR3Q~MQRI3 }pDUN)^N_|VokU77$>([lDl6t}o$ Y0pb/ (tǮ&[&=a 㹂&gwf4.ྜcDDϡuyoku-Ei 14tPk.JT2R-HDM/;iyh1t[q\>S)wZov9Xp62kU%F&uyؑ$a/M|L0V:MOmÒ 7#4JDӊd?j긁L)bT&s ݤTEqq#1$ 9#ǀ~3j{m -PN$A UƋrå܇ ģ8CM5'!~ B:Z-|gh}hQu,XckTa^?qhƲ6vPL}el8-#Go悘/Al?I#Ɖ;~HOULH aI_OWHATEVE5WMo$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1+"?p 00_ 0 `)aPf 0X )`0P@< 0P pe P  f H`? P](J$0h@< @e 0(P e f e f 0f `` p00 0h| 0 `<.Hh@(?00lI< @` _ _ hb0  8 0 8 p)^P)p): P > ף)`_ Pe _ p 0e 0 _ @ e 0PX e e @f _ ` 0` ` `e   h P` n':&e 0,B`pi'  P _ e 0f 0@P| `` f  pe @ @e f  ` 04%xК0 P ,H8H`?x-e `e _ _ 0xPx Pe 0 @` P` P:.P,(4Xp'0@@| 0, Pp H`? .P:&Xh,'`e e f 0 _ 0@ P _ @ 0f 0 p x-X`& &`  `&040(0r< f (P:f 00`r<< @` `` _ _ .`HGe >0HPr<| %0@r< e 0@r<< 0 Pr<| 0(@r<< '0@r< 0@r< 0XPr< 00`r< 0r<? 80 Ppp&P:`1f 0f _ f 0H`8r) e H`?,x-xw* jhP-008r) 0x`8r) ` e 0j008r) k0xp` 0@|V'< 0` 0e e f ` t`&Pp0 0` _ _ 0,0P0` 0 _  Y0(  p&Xh,0000``|V' e e 0f f X`&x- .p`gHH`?00|V' 0 |V' g f p)^p>0 |V' f pz h )`_> 0p  0  )` 0@ g f f 0  &+)890Џ 'g 0(  h 8 (>@'p&...UȐ0P  P0 @< x)6x)5(P=)`80@ 0 &0   `)a0HP 0p *00P0((`< hde0@P`%0  p)^0h  "  )`_@ 0 0 0l8 ` @ h 0?0 $ ?hFH$ 0>0X=8 x$P00=PX=8 >0P;pX=8 % 009PX=8 08070X=8 0X70X=8 H`?m 0@6@X=8< LhuXM00P5`X=8< hb0h40X=8 030X=8 0p3 0`3` 0xx1X=8 xUȐ000X=8 P`hc00%T)h* +L*)he00)p| 0'efhp00P'p 0 P `0` 0 00h  0(  000 0@< @ 0H@< p? P`h\(0`H0G 8r) `i@PP'(F0hFP8r) @[H\H`?0E08r) 0E0C08r) @ Yh PTW0A08r) UXh00@P8r) hb 0X؍| H`?` hb0X G0Ix0|0 @ @t ?hFH0`0 h0(0 0؉08P` fh 08P` 0t0(`| ? 0N P`h0@D8| 0X000PD8 0(XpD8 X```(``Ё0 00}@< 8#e0'%0(u`< `t #p8%00u`< 0xt0ht z 0(pqp 0&`rrrr6Եf$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1"+rF08o@< 0pppppppppppHppppppppppppppppppppppppppppp`ppp0o00(kp* cklPmtlkThe00`ip 0((gP 0e0 fe(ff8feeeHfXfe0a0 0_0 0(^0 0\0 0[0  PM0Z@ < pL08hp | 0HV | YYYYYxYYYR0U07 0HL7 ONhNTPTPTPTPTPTPTPTPTPTPTPOHONNNN8STxT`UT@UTTTTNNR 0 RRRxRRpRRR0I@< xJKKKKKKKKKKKKxKKKKKKKKKKKKKKKKKKKKPKKKKK@KKKKKKKKKKJKJJ00 @ ?hFH0h 00 0ظ  0  00 @ H`?0H<8| >eh000<8 P`h0ȳ <8 00<8 FXX(@xXX8F(F@Fp0H0 б80  G0  0X  F0  0x  EЈ 0  0Hp ({{hb`{0P P0p0  s(u0  00P 0  `?0P  >0 00HP XT8p&0  PF0x0 UȐ00 00 00 00(@ 0  xК0@ EE0xD@GG0}`h?PYP~@0  00P ph00` fh0  0P0 00P (zP080 @ @ 000000000000000000000000000000X 0p0, (h(8HȖȖȖȖȖȖXؕ0(P, 0x,  F0@,< %0@| @ H`?%8008r) >008r) h?P0к08r) @ GGhFHE0xD@Y0  `P00 P`h0h0 A 0P0@| H`? 0` v 0 ?t h@H@XH@808 00 00  0  =H0 00p| hb@h@ThH0p  0  00P |V' `)a 0 |V' )`0p@< P&0@< B )``)a&0 P ?6p!`.05)I?4!.p0@< G)Dh 0`P h 8 @''00` &)hLMLB0P0 M64B)pEH`?00 0 p)^0(@0<  )`_pV)xB0P@| *;h@lP8ЁD 00 0(0 00 ,y0`0 0  0  0p0 0  `+ w00 0H :0h0 n00l9 0 0l9 0 0l9 00 0l9 n0 0$9 0 0$9 0 0$9 080$9 =h0 $9 @o009 0 9 0 9 009 0-7}$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1"<*`0@9 H`?0x 9 h+@0p09 3w+ 009 0009 0809 0 9 009 1x0(09 009 009 0H 9 009 009 0 9 0( 9 009 0X 9 81 x@+009 009 0809 009 009 .x0X 9 0P0 00 /x0 0 00 00 0H  00 00 05@ @ *H`?00h@ 0`5 08`+` 0yHP8Ё0h40\9 ;030\9 XE 0030 x=h010L9 0810L9 0H00L9 @xh+@0/0T9 0.@T9< x0 .09 00-09 x0,09 0 ,09 0 *09 08(@9< p)))))))p)))p))p)p)p))p))p))))))))))p)`3`D0'  zX>H0(' Dg9 0H&0Dg9 '&& '&&& '& ' ' ' ' ' '& '& '&&&&&&&&& '0%  %&&,&&&&%&%%%%%%&%&%&&&&&&&&&%0#0 $$$$$$$$$$$$$$$$$$$$0$$$$$$$$$$$$%$$$$$$$$$$$$$$$$$$$$$$$$$P 0"0 70!0 *0 !0 00 00 00P hb00 0(0 xК 0@< P0@00x60x6 06 |V' 80P8@|V' @ *H`?00h@ 0X> |V' 0 =P|V' 0;@|V' 0:@|V' 09@|V' 0 7@|V'< ?0xR 0xQ 0pQ0|V' )` 00`P`|V' ` & MACRO64$%Ho(@R'00Np OOOOO0O8O8O ONNNNNNNNNNNNNNNNxOxOOOOOOOOx00J@ @ 0K0 PMP< ȥ0 pLP< x@0J 0J 0J0 0IP pIxIIIIIIIIIIIIIpIxI0GP hHhHxHxHxHHHHH(H0H8H@H@HDHDHDHDHDHDHDH@H@H(H0H0FP| FFGGGGGGGGGGGGFG0E  @  0 E  0E0xD0h?` X 8w0R>0x0 0YP|V' @ `)a)`0P~0|V' 00}@|V'< 0`{|V' {{{{ | | |p|P|||}0({@ 0{ 0Xz0 0(z@ 0y0Py 0y x0x08w0Pw@ | Xx$P$  P0h  0(up  00sp  0kp 0 0h  0Ho@ < 0mP | 0pP < XqrPrprrr8rrqrrr0i@ 0`jp  00i0  0`g`  0fP < 0hbbbcb@ccc8dcddd0 a` | 0]`  ^ _P_h_______`(`@`X`_8_p`0HV@| 0\P| 0Y0 0 \@ 0@[P| 0X0 0WP< 0U@ 0U0  0T0T0T 0XT  0PT` 0S  0@R` @0 H 088@$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1.M64;1fd"M|V'0H0 0@0|V' 0ȇ |V' p)^ ppP  xD@)`_ P Щ ` @ @ z 00|V' ` )`h?P@R Pȝ0@0|V'  UȐ0@ )`F 0 `)a0@| > ף@8ؒ0'0 0 ! p,؟ȟ P P.`PЛ0`7 00@7| 0PP7  0p@7< @R0@7 H@(?h@00: 0PP: 00P: hb0xP:| 0x 0 : p)^00: h )`_080 UȐ0ȯ00000000000X0000000000000000000000000000008p|V' %`0000 0(((((((((((((((((((((((((((((((((0 0P000HHHHHHHHHHPPPPPP``````0  `)as 0( )`0H@| 8 h NOALIGNMENT`q DUMP_FILENAMESALIGNMENT q SHOWLIBRARY.DIA@q DUMP_FACILITYLISTr .OBJpp r OPTIMIZEr q q @ 00+  pm MACHINE_CODE@r NOOPTIMIZEDEBUGWARNINGSOBJECTp .LISq r r DIAGNOSTICSq NOSHOW`r p ENVIRONMENTq .DMP r 0`0 x `v x y h@v 000@< m @v 0@< `y y y xhhhxhxhh0@| z PPPPPy 0Ƚ@6< @y 00000000000000000000y 0@46< y pppԿpppԿpppԿppԿpppppppy 0X  0 @ P0@00x ` 0x00 |V' hFHhd0D= T p&UȐ IQ8GGxD@(kOR  @ 0PX|V' X 0z )EY E0X7 C>?Sp.MAIN.Y0 @ 0 @ @ EpH 0EoOP(d`gHemH% m 0PX8| H`?`jhbHo(0P 00PX8 hFH0P |V' 0`|V' `&Pp(()`p(` *0P @  + )(T0 @|  000X@| ())`_h('0H0@< + 0P `)a0HP   ( )U0  00 4*)])U )(T)pU0(04P3 z p)^004P3 `@ Ћ X)hN`*`C(@(2(0pȁ jX  ((20z  )pR( 00` 0'p)W)PR  p pz z PGz 3c /gxI((9U$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1C"^p(` ((4 T#0Ȇжp@U`x0@| p@GIC`H\XPSp@z 08)3 'Bxlh|L0[0=(CHD00000x0p0> ,  0,0PQ |<*  p(` )(T   ((0x0Q 0q0P@Q| z 0N0Q`.Q   0`.Q )U (X)TXU80`.Q ( 0@@.Q< 0P.Q| !-0Xp.Q ( ( (((8O0 h@.Q  0z 0P.Q (,()0U ((0p.Q  (( 0`{`.Q (\,p, }d,,  (0rp.Q ( ( 0hP.Q HQ0 $*Q p,0H+(P,z 0p4S ,p,z R pz  ( ( 0 4S ,((/ ( ( (( ((((0@p4S p0@ (0 P9Q į,0L`9Q ((( ( (H , , ,z z 8,,0 *Q -,,,$,z (((z Ph( , , ( 0 0*Q 0P,:Q  xI p)^ ')`_  )pR0jp,'Q p)W )`)PR(@z (( ( 00HhU ` (((( (00xcoL0Pd g)pUX)T %e@ehee0f0feef0f0f0f0f0f0f0f0f0f0f0f0f0f`f`fdffdp0S0`0  0@`0`XU 8V WZW(X(Z(ZZZZZYYZhZZZZZZZZZZZZZZZZZZZZZZt*0 RP# 0(NP# `(`&r(h-@(p&07# @z h, :=X::::<0=p<@;0   ؂*ԍ*,x,0p  ,0 ` | @*00P | 0( ()XV )(T,*ج,d,0`@  0P 8()V)U() W0p  )`)`_0  0xIp  ()0UP D5D5X D5D5 D5D5h!D5D5!`""##D5D5$`$D5D5$D5D5D5D5%D5D5D5D5'D58'D5h''(D5D5D5`((D5(x)D5))D5D58*D5D5****+ 33 ``@*3 3P3333h3x(333**++-H,,, ~ 0x OI @)Vp)^@(+ Ph0` 00 ,P0P\KI 05p\KI 0H@\KI| z 0]P\KI 0S`TaI `008[`PaI 0XP@$`I< 0LP$`I z 0pDp$`I X0B@tUI< z 0h>ptUI Pz ,0 tUI 00 p>*X)T)pU)U() W@)T )(T0( XU80:{Ix$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"o`* Z À x B j 8Ph`8ph(* b : x)6(>0` #)`4x)5(P=)`8" 2 R ۀ p J ˀ Ӏ 00P Q00@| P0p@l3 x00@ 8 00 8 0X v@ `)a0 v@ 00v@ )`00v@ 0@8,0`v@ ,0p<3 0 <3 ج,N8H8O0000 L> 00043 0P3| pz p(` 00`3 + )(T  (( 0XP3 , 0 3 0@3| 00PĮ7 00Į7 /0z 0% )pR0'xI0PĮ7 p)W( 0)PR ((40 Į7 0 Į7 p(` )(T(()0U 0 ` 0 + (()U0.,?  ( ( (((0p.,  ( 0p*,  ( ( (( 0hp*, @z ( ( 0 )PR )pR0X `), p)W0'((4 xI (p(`XU8X)T 0%p' +)U(( )(T)pU (((  (00%0|' @z )PR )pR0;0 0;@+| + p(`  )(T((088p+ 8O@N800X1+  00/@ +< @z )PR )pR0 @p + )(Tp(` ((   0fp @z X)PR00=Pp' )pRHp ()U   )U )(T(((()0U 0` @ 4   @` p(`0v1? @z ( zzzzzzzzPzzS0}p  ( HHH~ ~0P{P |  (|**,ԍ*$, ,@*0؂ ,(`,t*,8,0XP  h,( 0 8  , (,ج,H,0 @ ( ( X@XhhXXXXXXXXXXXXXXXXXXXXXXXXXXXX 0(" (((d, 0pL1 0`L1 z (z z 0 `L1|  ()PR )pR 0S `)a+0HT 0R@< )`08P0 0Q0 0Q@< 08O@ 0N  0M0 0 M0 PG ()0UX)T8,0',)U )(T0`(E 0C` 0C0C0V0 0V ą5 0Pą5 ,p,H0z 08( 8OФ`HTXP% ,p(`  0XW \+ )(T(( 0U0T` 0@`!0t 0k@pr| 80t0L 8O,  p(`   , 0kL 1+ )(T , Q((0H8 D ,$,0K D    0 6 D       P8P8P;%$$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1zp"0H      0J0  @,̰,0SP | 0@Џ      00000؀؀؀0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(((0   000000000000000000000000000000000000000000000000000000000000000000000000 XXXx hȒșXXXІvyXXXxXXXXXX`vyyyyXXX||||||XXXȔȔpȔhzzXXXXXXXXXXXXPy{{{ xp0Xv0" h8  ,  0  N8 0p   0@| 8~Px,`,,Q p2X`,`,8,жp@@z ,0,)`_,d,0PUr ج,,,`,Rx   )pR/`!0@)PR0z  ,,0N8v  8O)U(, =+0p/ )(T((p(` ,HTX p0N0,00`/  0H/ ,,( l,0h`/ 0xp/ p 0PL/ Q0 T2 0PT2 ,, 0Ф 1 00`1 8P00@1| 00`1 ,`,H,  h, 0p01 000p ,,$?+,80@ ,t,,0 < d,@,d, 0 <  , )(Tp(`D,((00< 0(p< , ,08<    ()0U<o,$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1|"()U 000`< ' 08p< ,0`o+,(@XpH,,0S8pX0  ,Xh (,0  , ,0E4z ,0@0xP 8O/ 0p 0@``!0p / ,8Op, )(Tp(`- Ԙ,,p, 0P| Hw+p,p,```pp,(( 0~p HTX00` P ()U  ,0? , (ج,, xp0X ( ,(, (`,~  ,Ф`-0`0T H0z $,d,, ,H,x`W0~ `-H     ()(======x@(HJ ((+HJOO(n(n0WWPh8kWhxWhxPh|؁o؁XhPpX(8|@OOh(@@PhHx`@@@_f f8k@ ( 0@N8(!00x, ( 0P(l, ( ( ( 0pP 8O0 ,,0H+H+0П@P< į,0 P /00`\R, H/,z+0H Q, 0Q, ((   )(T 0Q, X ()Up(`(i+, ((()0U )(T, 08 z+ p(`)U  ( g+8@0hZ+? ( ( ( 08Z+ 82 ( (00`pV+ ( ( ( p, p(`8O p+0P2 )(T(((  )U (( 00`2 ,(( ( `p(        XȽ ppxx   X       =Ѵ$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;11" HPxx X)T0 жF , ((8HXhx hP0 P )` (( )(T, ,, 08 + 0,p(`,  0P5   0` 05 C0Pt5 08@t5 0,D,0`t5    0HPt5  0hPt5 D 0H 5 0hP5 D0 05 (E0 0<5 PE0 $05 xE0$Pd5 E 0&0C 0hPC 0PC  F0 `6 !!!!h!!h!P#P# 0` , F0@D5| 0 0D5 `Gpz (( ( )pUXU80p 5 )UX)T ( ((@H 0@5|  0@5| XI0p|5 I0`5 )`_ 0`C"8,,<>+8,0YP ,0H+,F+,-,0B`&7 08O0'&7 N800 @A@&7 00J`!0C`6 QqK,0PV`4 7 0 ,((p(`p`   0D 4 7 t+ ()0UH )(T 0XP 6 M)U0z 066 J (0PX)0 , '@z )pR d,)PR( 0s  (( X)T 0`0p4O + )pUp(` )(T0H0xPlP| )U0lP ()0US, ((,00lP 0 XplP P 0P  0X@  0X  0  ,h,0X  @)V00  0x  0H  8@hp(`PPPPPPPPPPPpp88 t*, p0`p  ( 0P ( 0xx  ( XHx@hXXXXX 0(xp ( 0` ( 0` ( 0P ( 0? 0Xخ 0`  ( (H`x0 P| ( 0H` ((0@ 0s 0hx< 0`@  ( (0 ( ((2 +( 0((+p)W0^0 z @` ((4@(2ssnhnxnmnns eegghgXg(((()0U()XV)PRP )U( <+0pD' z  ' )(Tp(` )pR)`_X  4z 0H@D'| )8( 0p)^ >Xp 00  pD'  ( >}I$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1" .@H !!!"0$% '(x+X-((X*X* p(`, )(T 0@` `+ ,((     0;08<0N0 p i!P?)U(  p(` 0``P ,x )(T(( 0cp5 8O  (a,a )pR)PR,P 03<6 H,`,p @z `,8P, 0h<`<6  ( 0p[0<6 ,0h\P<6 (  0W`<6 ( 0PSP<6 e0R,,,0OP5 ,0 N 5 08M@5| 0H?p5 Q0z (0pU`5 f0@Ep5 ( q 0hg50I`5 ( p`0 /5  @ H  )(T 0`hp M, p(`(( (08@@    PX`hh Xpx`h   8v@vHvPvxvPv 0zHzPz8z@z hrprxrrrr   8@(0؃  0 n (}@}H}0}8} ؂   sssss ||||o|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||r|||||||||||||v|xy|||||||||||||||||||||||||||||||||||p||||h|||||||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||P||||||||||||||||||||||||||||x||||||||||||||||||||||||||||||||||||||||||||||||||||||||8wPwXw@wHw  (08p8 @HPX`X   H  @HPXX 0lP  mmmm n(n(n,n 0xl0jP  0j (pz (   p(` 0` [, )(T((d,)U  08p /   ( 0@P / ( 0` /  , )`0z 0Ƚ?ix$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"0 / 0p`/ z ( h  00 z p)^0`p+ Ѐ(( RH)`0z p(`,8,)U 8O 08pW+ p _, )(T,  ,(()`_, X)T )U(  p(` 0 ` b, )(T(( 0 0h0< H0``< ( 00`< , 0z 0@P<  ( 0@<|  0P< ( 0``< `!0@)PR 00@`< ( 00< ,,x`0@< 0@<< 0pl< ( ' )pUXU808 l< ,0H`l<  (0l< ( ,0@l<? (0X)T 0Pl< 0Pl< 8O0 `l<|  0Pl<0`l< ( ((( (pz 0Pl< ,z )`  į, ((p)^)`_ 00l<  )pRxI@z ( 0 0p0-@| )`)PR 0z )pR0*A H0@z p`8OhU`p(`(( )(TQ 0(FA p,8 Ф`   0@>@A< 0A? d,,,00 ?pA )U( ( 0 0B` 0" dA D,  0 (2dA ,(,(0(0(#  @z 0/`  (  (( ((( ( (( ( ((0`8J,A ()0U( (( (( ( ( ((( ( ( (0HXx,A - (} ( ( ( ( ((( @*0 H,A S( ( ((( ((( 0!`\A ( 00 )`Є,0x0 0@0 ((   0P| )(Tp(`0@| z   d,, 0\;  D,00\; 0@\;< ,0P@\;<  P@    0`            00x000(@< H,)`_,p,,,̙,ܙ,,p,P,ȗ,p,8,,,,@z ,,\,,T,,,L,0PP D,4,<,,|,d,hؽC0'ܘ,Ԙ,,@,,p,`,,p,,,p,,,0P ''  ' 0p@1< p)^ (H`)U00 1 0 1 0 1 001 0@1 ,0@1|  0`1   xx((p(` 0@@R*$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1Y"< , )(T  0P6.  (   )U)pU0X ( ()0U0X<3 0z `)a)`pz 0` z ( 0P@  0  0    0p   , 0`   0x`     0 0 p   0P0 0 0  @ (( 0xp , )(Tp(` 0 47 -0P047 0 @47| (), P08  ph  0` H `( `08 0 00(XP 0  0P0"P| #X$$#$ 0@   0P % $,0 @  0P 00x HH@@00  00&  0P% ,8+*X+*+*+*+*0, )(8)(`)()()(*p(` >0@' `,@0 )(T (( ~ )`p)^,,,0`/4  )`_0@2 5`9?~ 0-p 8.`.../0-  @`````` (08@HPX```hpx```ȳгس```` (`08`@H`PX``````  )`(( 0``C , )(Tp(` 0xP̛>|   0@̛><  0`̛>    0XP̛>|  000p̛>   0(P̛>   0@̛><  0P̛><  0 P̛>   0@̛><   0p@̛>|   0h@̛>|   0`0̛>  0P̛>   0@̛><  0@̛>|   0 P̛><  0@̛>| ~ 0 PS   0`S    0P@S|   0ЇpS   0@S<  00 NPS<  0G@S| 0h@S| )`_0 S p)^0 S 0h S 0( S 0 PS<  0 PS<  0 PS<  0Ѐ S 0 S 0 PS<  0p~@S<  0yS 0 xPS<  0 wpS   0 uPS<  0(s`S<  0 tPS<  00q`S<   0 8p`S  0(n`S<   0 mPS<  00l`S<  0k S 0 j`S| A$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1B"  0@hPS<   0h S 0g S 0 fPS<  0 ePS<  00cpS|   0 bPS<  0 aPS  0^`S   0 ]PS<  0 \PS<  0@\ S 0\ S 0[0S 0(YpS   0 Y0S 0 XPS<  0(xV`S<   0 PUPS<  0U S 0T S 0T S 0(SPS 0XS0S 0 O`S|    0 HM`S|  0 0LPS<  0HPS|   0xpS ,0G > H- )(Tx,0p@<   ((p(` \-k!?@H h{ 0  P@z  H Hp!D   p)W` r!Ek!AhXpx!pD@ )pR0py) ,)PR0'{ ((4 p0 l!p?!Hj ( 0  00@| `((@"m,"Pm,0 D,pz 0hG? |,!D,,؛"@m,"Pl"l0   )` 0  )`_,X "m0 00 p)^\ 0 0xd,00 00H0  - XXXXX(`X$, )(Tp(`-0  ((- - H0p0 0@0@ 0@< 000XP T-   ()0U )(TX)T("0u"Ў @z ((P p(`T  0p+?  @ D  H )U"@v()0U )(T(  0`  - (()Up(`0P4) (  (P (0)  @z )pR()PR((H^ f (( 0@|  - )(Tp(`0++ 0P @ )U()0U  0p D X)T ()pU (p[( (B1 :$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1`")`_0  )` +(p)^ 04z  +0C` ȯ ` 070 0pB0 Hh0U? l-()0U  X+)U0?07 AAABB B+0P8` 8, (( )(Tp(`  0`+ 4z   '  08!px H"p"#$%x'(`* S LLMM NLLNLOOLPL(PhPPPQ@QQQLL@M OHOpOLHNN08hH $.xJK8KpKJJ(X)T$Н(0p xI0':. (`@ (0f0 p- p(`  )(T((X+ +0H^p h  H8, ȯ 0p[@|     p(`(( 0(iP <- )(T h0؈P   3$ 0p )U X)T (0XtP )pU()0U0 0P ( 0(vp  ( $  0z` )` `)a  (00h  ( ( ( 0k@  0@l @9$ ;$)T /$У0@p4"7 > ף )`^  p)W ((40p8 0'( 0(   xxxxxxxxxxxxxx ) V0fP )`_p)^( 0z 8$p '0` *-X)T  )U )(T,)pU()0U 0x D90(`D9< ( (,p(` 8O00D9 \ ((( (HTX0(x`| H,,   D,0z 0P @((Q, )(T Ф` HTX0 l 0 8O+-H((p(`D,0( 0 0p 0`<0 ,0p<0  00&@ P,- , ,p(`  )(T((0(0p< 00'@D<  0)0D< 0 jP< l,MX0@0\@<< ,,0]P< H8P, N80P+T<    0)PT<  0fpT< ghhghghiih 0:P  ( @,0@hH 0 A 0_` ,, ,0bp  0,,0(8d )` "> (,)U()0U0p<  0z h+(( 0PY 0``<  0p< pz ,0`< B( (((p(` )(T 0kp  D- )U  ()0U 0`> ,0,,, 0P= @0Pt= )pU( (,0@8  $, 0P   0C8ˆ$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;11"}@ 0up> )` ( ( 0pp> p 0rP> 0'8, )PR( 0 0z )`^0>? xI(,(, )pRp)W,((40{@>| )`_8O0h{0> p)^0@ > 0@< 0   )Up(`S  )(T 08 K-(@*)pU((0PPg5 D,0  @x  )`  (0H  (()0U ((0xp XU8( ()XVX)T 0H`   ( (0(ȵ   0`  (   0P  (08?   00` 0@< 0`=  ( (0Hp= p)^)`_ (0`= ( 0 P=  (  00  z d(  )(T ( 0(5 @X| p(`)U_-((0XB < 06 0 09 `   00 0 0 @D 0`; @ 0X@<   0X? p 0X8R  0 A @ 0`U  z 0@I  ,4, 0p*  - - x, . 8. + `. . .  0`7 < 0hY P 8[ Z Z Z [ [ [ [ [ ([ 0[  0/ 0% p  @( x( ) @) ( ( ) ) ) (  0xp  @`)` 0@0 0 0!  z )`_0'p)^xI0p 0 z 0|  `01 @| ( 0X@  03 @< ( 0X  0X    0 0 800 0/K       ( 0 8 @ H P X ` h p x 0X  ( 0 0p    0 0 0p 02K @! H! P! X! `! h! p! x! ! ! ! ! ! ! ! ! ! 0X  ( 0X  ( 0@| 0` )07)8 00`   0P0  0b P| d-Z  p(` )(T((0v @pc<  d( z 0\ @pc< ( )U0`e Ppc ( 0{ @pc 4z 0 ]!`pc|  0~ @pc 0c pc 0 g 0pc 0Xh 0pc 0h^ Ppc 0y Ppc<  00\ 0pc 00} @pc 0g @pc< 0X| 0pc 0i pc P!(J q xs `u `u `u `u `u `u `u `u `u `u `u o `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u `u   0 !#0x!0# 0 `d P#< )`z 0xH!p# &K! P!L!J!I!hO!K!(Q!XP!0  0p  0( p p  p 0 p p p p p 0 @ < 0 0 !P < !!x !x !!! !!!!x !0(~ 0 0( 0  0!` ! !h !h ! !X ! ! ! ! !h !0!P  0 @ < x    x  0P p  Dx'$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1+=" 0 @ | 0h P 0 0  08!P 00p.8/X1 1 H ` 0 p H ` p p p p p p p p H h p p p p p p p  p p p p p p p p p p H p p p p p x p p p p p p p p p p p p p p p p p p p p p p p p  0P PR -. ./ 8081 0,!P 3e .0x(!pf 0X 0f 0P"!pf   0!Pf //p/0P!0LAe /0.!0,f 0!,f 0 p,f 0!P,f 08!@,f 0 ,f 8!`! `!!8!`!`!`! 0 `  X X X X X X X 00 `  0 P  0 0 0Xp2!  ( 0X  ( 0ؒ @ < 0 P  0 P  0p `   0`?! C!pF!D!B!pF!E!C!pF!pF!pF!D!0`5!  (9!7!H;!7!7!"@"xB"E"@!(!!ؾ!G"!`!!!(!(!@!I"K"!N"("!@!Q"R"R"hS"S"8S"`T"!!"!!!!!`!H!!V"X"x["0!!!`!!!!@!!P!P!!!0]"^"x_"X!!p!!_"x`"p!Xd"e"f"g"g"!!!h"H!j"Xk"Ho"o"!!P"p"!!!!q"@t"t"!" "@u""(w""}"" ""@"!!"P""!"!("""""(""""0" !"2"!!!!!!!!p ( ( ( ( (((( ( (( ((( ( &h ( ( ( ( "q (  (X (!C n@m ( ((( (Ț& (( ( ,(Ȍ&  `hxh,(,( ( (( (( &0 @&&!D ( ( 0!p4V @z ( ()0U((( 0"`@ < - )(Tp(` )U  0X"@< )`X T,t*S!D4z ,0" ,<,H ,(, 0@" (  0؛"0"P|I3  0@"0" Fh$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1N"; &p  0&`    "H"@"`"`"Ȼ""("" "" """h"H"p"p"""x"x"x"x""8""   q,p(`(( 0x",/ \- )(Th     H&+   ( (@ ,0uX`p(` -0"`+ \ )(T(()U  T 8, 0"`+ _'0"P+ 0 P ( 0@$()U!DPxH 0#PD#`| . )(T  ((p(` (8O@ (D 0#pf`  !pB( 0$pf` x ( ()0U (0`$@f`<  0$@f`<  ,,0E#P 0$`f` ( h>0@#@f` 8!C0# f` 00H#pf`< (0#@f`< 0@#`f`  d,( 4z  0@#Pf` L -8~{ (d 0(8 $p` ,( 08#`` ,(<, (' ( ( ( j| ( (( (( ( (  ( ( ( ( ((  (  ((Е'  ( ( ( ( (( ((( pz (( ( (' `'( ( ((  ( p(((  (  b#X""t#r#v#y#~##p#$"H#Ȅ##Ј##""""#8##x#x # # # #@#ؑ####X##$"$"ؕ#$"$"$"$"$"#(#8#P###X###8##Ȝ#$"# #x!#"#&#`'#x#(#*#,#.#2#$"## #3#X5#6#h8###9## #$"h##h#;#P#$"<#`### # >##@#$"### ##$"#$"A#K#$"HE##XI#$"$"HM#O#P###8R#R#T#P#P##`W##Y###$"]##_#p"`a#|#p+#0#$"$"$"$"$"$"((( ((( ( ( (( (( ( (((  ( ( ( ((((  ( !CX)T,@z 0"P `hxhGYD$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"L ( ( ( D,(Ў( ( (( ( (( (( (  ( (  ( (  )pU ( (  ( (( (( (  (  ( ( ( ((( (((  ( (   , ,( ((    ( l{( ((n@m d#e#e#i##o#@o#Pn#o## ,( ( {'00-$P|  0($p( !. p(` )(Tȯ(( $$$H$$$`$$ 7 0$? + $P$$$$ $$$$$8$ $ $!$"$8!$!$@($ $@$`$$$$$$ $$$$X$$$$@$p$P#$#$%$'$ 0`I$P PE. p(`+$U$HJ$$U$XL$L$XL$N$`O$N$O$pP$L$L$L$xM$N$L$L$L$L$8Q$R$8Q$R$8Q$S$S$T$T$ ((  )(T0;$p 8H$=$8H$?$`?$?$A$HB$A$(C$C$`?$`?$?$H@$@$?$?$?$?$D$D$D$D$D$E$pF$`G$G$ $ 09$P|    08$h,003$p )pUX)T(+r(h-4$4$4$4$4$(5$5$5$5$5$4$4$(5$(5$(5$(5$(5$(5$(5$6$6$6$6$6$6$6$4$4$0/$` H  X$X$X$0Y$Y$[$\$\$ \$8\$0^$a$a$pX$P\$b$0Z$\$`]$[$(a$`Z$^$, (( 0PU$? V. )(Tp(`   (D @ D @ (( )(T 00c$` Z. p(`  )UH )` (P   ( ( (( ( H ( (( (( (( (( (( (( ,  `hxh (, ( ( ( (( (((  (( ( ( (( D, ( (( (( (( (  @z ()0U0g$  !D,Ha$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1W"]!C0z   (( p ( (( ((( ( (((( X$j$hl$ % %$$($$h$ %$$X$$$n$p$r$t$0$Xv$(y$|$~$$$$$$8$p$ %$$ % % % % % % % % %x% % % % %$$؎$h$$$ %$8$$$($$$؝$8$$$ $ %$$P$$x$$$$$$($ % % % % %h$ % %$ %h$ % %$ %$ % % % % % % % % %P$p$ %$ %$$h%$$$ % %$$h$ % % %$X%P$%P% %$P %`$ %$8$$H$ % % % % % %  (( ( ( (( ((((( (( (,(( (( (( (( (( (( (( (((   (( ( ( ( 0h%` . ` p(`((  )(T0Hg%0: h, @ (X)T()U0 %p: @   ()0U @ ((( 0( \%: |,xIpz (   ( H 0i%: @ ( (( (( }%` (@)V ( ( ` 0+%p: % -, )pU (@   ((((H H 0'%P:|  ( !D ( ((((((0@%:   0%:0%P T.()0U@)VX)T0 }%\ , h,|,)pU)U()XVXU8 (((   )(T0v%p\ ,   p(` ( )U pz ((p(` l.0%P 3 L )(T  (H (( (%0% 3 ( 0 ȗ% 3 ` ,!D,h 8z 0%p 3 @)VxI ( (0P%P 3  4,@ (,@,h%0,0%0d93 +%@ 0ؕ%0d93 \%` ()0U(0`% D,j&P (0`%p  (0@%0Pv& \%`@ 0s&  08@r&p (!D+%  !C4z p(` )(T 0o&` 8 T. ( D,)U((0j&p1Q h @%P(@  0w&01Q 0v&@1Q< @%H 0Xt&P1Q ( ( x"&"&&&f&f&"&f&"& ( (((( (( (ؕ%8( (( (( ( ((( ((I$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1#"n(( ( %P( (l{( (( ( (( (( (((( ((( (`'@ ((( ( (  (( (( ((( ( p ( ( ((( (( (( &%H%p#&|%$&&&*&,&|%|%p-&/&0&82&3&%%h% %5&%%%%0%0%8%08&8&x%9&f&%%|%|%<&|%|%|%|%|%|%g&P<&|%|%=&%%%%>&@&B&%P%%% %x%%%%%%%|%XD&pD&D&% %%8%hE&E&%E&|%|%|%|%|%%|%|%x%G&hH&I&I&%|%p%|%|%J&L&|%M&|%HP&|%%&|%%P&&T&V&&& &|% X& & &` &Y&`[&[&&X]&8&X`& b&|%`&d&8&%&P(&`%%|%|%|%|%|%|% ( (  !CX)T@z L 0p%@ ()0U,`hxh(( ( (()pU( (( (( ( ( ( (( ( ( ( ( ( (  ( ( ( '  %( ( (H ( ( h,(n@m (  ,,    ( %`%@,<, ( (  (( , @ +@ @ @ @ H @ H @ &HH @ `PU$ ((0&`  0x&@ . )(T|p(`h , )U@ ( H @ @ H @ , H 0&P<  p (    0x&`` ȵP( $ p H (@*S0X@&7J ()0U @ 0(H&`7J< 0h&7J   0&07J H @ @ 0HX&7J< ( 0@&7J 0p&7J H @  (@ (0@&7J ( 0&07J , 0 4z  "q0&07J H0H&p7J 0&P7J  `hxh 0&0 h0&0 0&@ 0hȚ& 0&  (0xȌ& ( !AJP#$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1$" (0&0   ,  H )(T 0'P |. p(`(( 0'@.| 0 , 0&@.|  0x&P.| < h )U (0&PS2  ( (L H+( ( +00&S2? P   +x+0&`  0 &P @ ( p(` 0XH'@0| . (( )(T pz  "KH&h`hxhx&@ 0`X' 0&` H&Ț&,&p    0L'0 0I'` 0' @ +@ @ @ @ H @ H @ &HH @ &`PU$p ((0&`  0M'@ . )(T p(`h , )U@ ( H @ @ H @ , H  ,$, ȶ, 8,,D, (( .0(_'  )(T,p(` '$yz'(a'a'0b'b'pc'd'8d'd'd'8e'e'h'i'z'z'@i'i'i'0j'j'8k'hk'l'Xl'@m'm'm'n'Hn'n'ho'(p'`q'@r'r's's'0t't'u'v'pv'v'Xw'z'`x'z'y'0y'`y'y'y'p'o'y'r'l'z'z'z'z'0z 08H P )U((!D .0`'q+ @ p(` )(T#Px((()0U ( H 4z #Pw0({' x 8!C  `hxh  )(T(( p(` 00X'`< . `$y!DP @# { p#Px`hxh@$v$ z0PЕ' @ H#z@#z@ #{H #z(0 ' ( )U 0'0 \ )` )(T((#Pw ,, .08'+ ()0Up(`(@ x )U@)V0'0'p+ ( )`_   0X'00`' @ j&Ps&Pv&`hxh @r&o&0'? 08' @0'P$< h0p' $ 0' $ 00( 8.0 'P )(Tp)e@(4p'0'0''H'0'0'x'''''''''''''''P)\:((%0 'P  ,(%0)Yp(``)a ((0' ; 0h';<  #)`4   8(3  X)cȓ)(X>($0 'D;? Xm)P0(!8''''''''''''p''''''P''''З)WX)b$ 0P(@ | 10! )pU08x( g 0(@ 0(( )`hf00'  0(' 0@'S  0((pS  0(('pS  00 (S   0'@S 0 (pS 0 (X ( ( ( ( ( (H (p ( (0h'`  ''''('@'X'p''' &)hL9 )0P'0    :)HK)D 0'0 0'`A Ky8$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"(0(@H3)IhT)B)^p)^)P)`_)0]?)G`  08'`A   HP)PC)8 )pRp)Xd()PR) ]h)0^ (`:8)d@-)@K0`' A @00'PA 0'0'0'@A<  0&(@| 0+(P 0 0(0 0 @ 0$(P 0 .)`_)`0( 0 0p( 0 0 (`0  )(T 0(( l0 0)(@l0| 0(0( l0 0(0,(0H"(@l0< X)PW0`((@0< 0 #(P0< '0 '(0  08)( 0( 0(@< )W8)P^pH0@( ܮ0 0( ܮ0 0(@ܮ0| 0a(@ 0b(@0 00``( 0 0`(@0|  / p(`(( )(T 0 @(0 % 08h_(p< ()XV()0U ()U 0W( $  0d( x 0c( x #)`4` )a )`_(00(x @ )`( P 0d( x 0pd( x P(0pC(p  (08d(  08V(@< 0xN(?  (  0C(0@(P  ( 0>(P| ( 0:(`  ( p)^@(0,(`  ( (@0`(0@(0 T (( )(T 0o(`p6 ( / p(`pq(Hp(pq(p(pq(Hp(pq(p(x )pU08h(` 0m(P| ' 0p(0ta6 8 0 (   00e(@| )`0(g(P 0((@ 0x|(`   0(H(P 0H(<  0(P(P 0Ph(<  0h(@<  0(؀(@ 0(H(@ 0 (@ 0(~(P 0 {(@< {({({({({({({({( 0 `y(p   0 x(@< )`_0u(P 0,0t( \j6 0Ht(0\j6 p)^0hh(\j6 W( 0 s(@\j6 0( v(p\j6   0@r(`\j6 `(`&0((`\j6 -0n(P6<  0( /0(@pV7|  )(T0( PV7 0(pPV7 )Tp)W  `)aT )`0(` ?x ((@)V 0( 0( 0(0 h(  )pUp(`(( o(& (((8(`(0 (P< x|( ) 0 (P< 0 @(p 00(0(0((`< 0 (P< 0@(P< 0 (@< 0 (@ 0(( 000(` 0 (p  0(@ )Z)U088(p| 0.Xm)P З)W@30((0@(@7< P)\ 0#) 0p!)@p@A< */ )(Tp(` )`(( 0)Pp@A 0)@p@A< W(  0x)@p@A| 0)0p@A 0)@p@A< 0@)@p@A| )X))X)) 0)P 0x)@< 0X)0 )@< 0 )0 (p     0`)H @7 0 (lA >`)a 0)@LA< 0 )PLA )`_ 0)0p(PLA 80(PԗA 0)PԗA| '0(@ԗA| 0(PԗA Ls$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1̱"((p((p( 0 (0 p)^0(@< 0(@< ()0U()XV @)V(( 0(@    x)U0 (P 0(P| 0@`( h<s(,o(&0(PA| 0 (A  x|( )((4(P20(@A< 0(0A 0(0A 0p(A 0(@A< 0(@A< 0X(@A< 0(PA| 0(`A {)N (( 0 (R)P< 8/ )(Tp(`|)N0e) 0(d)P (ԏ )U 0Hi)P  )a  pn)`P 0])p @ hp)O )` ( 0W) ( ( 0W)0V)0T)@S|  )`^ x(+Ht(x,0 S)@S x|( )o(&0HP)@S| )`_ ( 0K)`S `)a 0j)@S| 0 0G)pS    ( w)M0(B)pS    ( `y(+0xl) S n(-0e)pS 0p@)PS|   0?) S 0P>)PS|  p)O0;)PS   0:)@S|   0+)@S<  n)PP0 h)@S< n)P0(05)S  (R)H?#)`4 004)@S  0H3)@S p)^001)@S|   0/)@S<   0@-)@S|  o)O0*)@S<  0))0S  0')pS ( 0( &)`S| u)PO0P#)`S ( 0})0 |>/ p(`  )(T((  X)c0#)`40(w)  `  )a 0(|)P P 0{)P< 0@~) % 08u)P 0 hp)? P 0p)0o)0 0n)0 p)e0n)0pn)  @0Xm)@< 0@m)0X)0)P  PD/)pU)U 0 > ף)]0)`p @)V )(T((4)T0X)`p X)T00)`p ` 0()@p 0 )0p 0)8'S8'pE/8'0)` )Z8'p'h8'0@)@<  )(Tp(`(( ()0U 0 ) P8'0X)? 8'0)@< )Z 0)@< 0)@| 0()p 8'0)p 8'08)  0X)0 0x)0 )`0)P `)a 0 ()P< 0Ȗ)  0()  0)0 0@)0 0p)  0()P 8'0X) 8'0Ȣ) 8'00)p )@[ 00З) h)P\ 0ȓ)P| 0 ( 00P)}5 (()U @)S( 0)` L  p)^@L/p(` )(T0 )P| ()0UX)T() WȢ)W0)@|  0(P)@  0 )P   0)@| 0 )p 0) )`@ )`_ (0@)` )aM~+$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1Q("P 0(0Xh)H #)`4`) V  0P)`H @( 0)0)0 | `0)0)0H)`p) T/)pU)U 0)0 0h)P 08)0)@<  )(T p(`(( 0p)@<    00)%* ` 0)%*   0)P%*   0`)P%*<   ()0U)` p(`   0)5? \/ )(T( ((@)S $ 0 h) W(  0X)0 )0 *8 00 *`< `B@0X)p @ Xm)P()U 0 )` )pU v(- 0p)0 )`_0 )08)0 p)^0 )@< 0p)` ( `)a0*P  ( (0)@| 0| @00 P000 0h 0 00 Alpha/MACRO-64 - CLP Facility-9223372036854775808Alpha/MACRO-64 - LOC FacilityMACRO-64 V1.0-213TRAPB .endm TRAPB .endm .nlist excb .list .endm .nlist EXCB .list .endm .nlist wmb .list .endm .nlist WMB .list .endm .nlist unop .list .endm .nlist UNOP .list .endm .nlist .list .endm .nlist .list .endm .nlist .list .endm .nlist .list .endm .endc .endc .endc JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECMACRO64$ = 1 macro64$ = 1 MACRO64$HOST = "OpenVMS Alpha" macro64$host = "OpenVMS Alpha" MACRO64$TYPE_SYMBOL = 1@0 MACRO64$TYPE_PROC_DESC = 1@1 MACRO64$TYPE_LABEL = 1@2 MACRO64$TYPE_EXTERN = 1@3 MACRO64$TYPE_WEAK = 1@4 MACRO64$TYPE_PSECT = 1@5 MACRO64$TYPE_MACRO = 1@6 MACRO64$TYPE_STRING = 1@7 MACRO64$TYPE_OPCODE = 1@8 MACRO64$TYPE_DIR = 1@9 MACRO64$TYPE_GENREG = 1@10 MACRO64$TYPE_FLTREG = 1@11 macro64$type_symbol = 1@0 macro64$type_proc_desc = 1@1 macro64$type_label = 1@2 macro64$type_extern = 1@3 macro64$type_weak = 1@4 macro64$type_psect = 1@5 macro64$type_macro = 1@6 macro64$type_string = 1@7 macro64$type_opcode = 1@8 macro64$type_dir = 1@9 macro64$type_genreg = 1@10 macro64$type_fltreg = 1@11 .macro draint .error "DRAINT is obsolete. Use TRAPB." .macro DRAINT .error "DRAINT is obsolete. Use TRAPB." .macro excb .macro EXCB .macro wmb .macro WMB .macro unop $OPDEF MNEMONIC=UNOP,FORMAT=CUSTOM, ENCODING=<0:31=^x2FFE0000> .macro UNOP .macro negs arg1 arg2 arg3 arg4 negs .macro NEGS ARG1 ARG2 ARG3 ARG4 NEGS .macro negt arg1 arg2 arg3 arg4 negt .macro NEGT ARG1 ARG2 ARG3 ARG4 NEGT .macro MACRO64$RESOP MNEMONIC OPCODE .macro MNEMONIC ARG .if ne, < & ^xFFFFFFFFFC000000> .if ne, < & ^xFFFFFFFFFC000000>, ^xFFFFFFFFFC000000 .warn "Operand truncation: ARG" .instruction <<@26> ! < & ^x0000000003FFFFFF>> .endm MNEMONIC .endm MACRO64$RESOP MACRO64$RESOP RESOPC01 ^x01 MACRO64$RESOP RESOPC02 ^x02 MACRO64$RESOP RESOPC03 ^x03 MACRO64$RESOP RESOPC04 ^x04 MACRO64$RESOP RESOPC05 ^x05 MACRO64$RESOP RESOPC06 ^x06 MACRO64$RESOP RESOPC07 ^x07 MACRO64$RESOP RESOPC0A ^x0A MACRO64$RESOP RESOPC0C ^x0C MACRO64$RESOP RESOPC0D ^x0D MACRO64$RESOP RESOPC0E ^x0E MACRO64$RESOP RESOPC14 ^x14 MACRO64$RESOP RESOPC1C ^x1C MACRO64$RESOP RESPAL19 ^x19 MACRO64$RESOP RESPAL1B ^x1B MACRO64$RESOP RESPAL1D ^x1D MACRO64$RESOP RESPAL1E ^x1E MACRO64$RESOP RESPAL1F ^x1F MACRO64$RESOP resopc01 ^x01 MACRO64$RESOP resopc02 ^x02 MACRO64$RESOP resopc03 ^x03 MACRO64$RESOP resopc04 ^x04 MACRO64$RESOP resopc05 ^x05 MACRO64$RESOP resopc06 ^x06 MACRO64$RESOP resopc07 ^x07 MACRO64$RESOP resopc0a ^x0A MACRO64$RESOP resopc0c ^x0C MACRO64$RESOP resopc0d ^x0D MACRO64$RESOP resopc0e ^x0E MACRO64$RESOP resopc14 ^x14 MACRO64$RESOP resopc1c ^x1C MACRO64$RESOP respal19 ^x19 MACRO64$RESOP respal1b ^x1B MACRO64$RESOP respal1d ^x1D MACRO64$RESOP respal1e ^x1E MACRO64$RESOP respal1f ^x1F .mdelete MACRO64$RESOP .if ne, <%type(MACRO64$AT_END) & MACRO64$TYPE_MACRO> MACRO64$AT_END .library "STARLET.MLB" "MACRO64$LIBRARY,ALPHA$LIBRARY,SYS$LIBRARY" .library "MACRO64.MLB" "MACRO64$LIBRARY,ALPHA$LIBRARY,SYS$LIBRARY" $OPDEF MNEMONIC=EXCB,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x0400> $OPDEF MNEMONIC=excb,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x0400> $OPDEF MNEMONIC=EXCB,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x0400> $OPDEF MNEMONIC=excb,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x0400> $OPDEF MNEMONIC=WMB,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x4400> $OPDEF MNEMONIC=wmb,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x4400> $OPDEF MNEMONIC=WMB,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x4400> $OPDEF MNEMONIC=wmb,FORMAT=< CUSTOM>, ENCODING=<26:31=^x18, 16:25=^x000, 0:15=^x4400> $OPDEF MNEMONIC=unop,FORMAT= CUSTOM, ENCODING=<0:31=^x2FFE0000> $OPDEF MNEMONIC=UNOP,FORMAT= CUSTOM, ENCODING=<0:31=^x2FFE0000> $OPDEF MNEMONIC=unop,FORMAT= CUSTOM, ENCODING=<0:31=^x2FFE0000> $OPDEF MNEMONIC=NEGS/SUI,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x781,0:4=%OP2> $OPDEF MNEMONIC=negs/sui,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x781,0:4=%OP2> $OPDEF MNEMONIC=NEGS/SU,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x581,0:4=%OP2> $OPDEF MNEMONIC=negs/su,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x581,0:4=%OP2> $OPDEF MNEMONIC=NEGS/SUI,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x781,0:4=%OP2> $OPDEF MNEMONIC=negs/sui,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x781,0:4=%OP2> $OPDEF MNEMONIC=NEGS/SU,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x581,0:4=%OP2> $OPDEF MNEMONIC=negs/su,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x581,0:4=%OP2> $OPDEF MNEMONIC=NEGT/SUI,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, N$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1v4;1K" B" )C dA9 9z)/# W)SsU `Q s94) V)H{)r4` [1)N 93)2q&S x> )P)S5! i8(?, L 3 dij  hZ 9V 6 S<9qBM x]*؁# '!iZs tSh1 [i.> (C vI k 9p v aj ɺ>l S#O) *#9m)W+)A).@ S AW " <, Ղ)/, n, S))4!xw' )%x H0Ė9 - ?l3pi S QK D :8Q) 03 Sl(' 8)c{- x; Q!s)] hofPI)3 Qi:SYq)>41 2*)1 Sb )  PI)S&)A# <_ pPӌS#) ^%( (?xZ m_ v@Z  SlV;d.BSm o)N' B {0P_^wbJ <3 Rl0)))A8 Xor[*.Q?? l0 16 g5).7A)74P)͚|X= % c/f!w 43v A)f} .QR(Sq)3})f<|tf Sr)<` 0 %*T 4=w MB } >7  f!)3r 3Y  P)S Wl)<  83,f# QB;;,f*)<61= s+, aS4  < < ,f\)S/!<,fm d " vR 5* q*)s)0Ϊ Į7`) s6  G)d1; ")eD^)}m@z _)<6q 5 ')l<f/(0tc)<6ms 8)S)L)5[Į7=` 1t5)H S! >)BfS<S) Rp <6Av)'Ϛj l<:))2t8)z)98)g) 7 q)W h [<%) !9+d)D9 Ƞ  ;l]\ SMl<$ #v"z a 5P qd = a* X#$/ ͥ) 61 T9HF):,&:o%l<Q)5I)- .Q7> N4_)$6lL)l<7 p<|n.5g0_,I0x֣):*)h= X)9t )r<)l<$ .Qq vl uR< 8 h405f37+ 5-< 4T { LL =/a F 7-m  xv)q)C6 , *,o πC͠ t Sԓ r< z]b hr< (r {p f` p< 5 6˄$ P\ r 06 r<0!=)! @-)iB/O?)% f`(]!= k)p~&)7 )lH]qAv64 -MP'Fac]}he {154771"6 l  ^qhf/MA+v 64 -OCscCtyH[-64.0-218/QS3,I/uYoKdm [,Mj 8TICt *SKf`4pzp Vm` `p Mlbzt QIdm s`NЩ# QKZLx)ĢMm @st t>Fhzl`9Tdm `'t 5qy Lsx5gMm `&y ZA xdm Bist RS`f*M"h`!~Ist KԾzt *Idyf>b`c#"aDSt ml`ߚ`st cs'A*mUx)Ml`edc m\oqX'FB8Ua 3  8r9Y U $)AF N[$4$Z yr&$E1 [O64$eAYT = "lONVMS baN?b3[o64$k!q"gVMS aa" LRu$ L_SYM}/ Ab1EAUr$ELvETROkMlSC @AyrO64$)rE_LABT@q9 Tt{O64$El08 = 1 jJ{O64$l_WEAӺ 4%k A{O64$TLiE2 n 1@c)E5]RQ$\lXMACm = 1@ J[O64$LXSTR ؿR URO64$dzyE#wCSh)EE1E +0[O64$pE_DIR8)AD n?< lRO64$ NL_GEN*; = 1\z#.[$ N FLTF = 1 4[o64$KeRm˵ ma1e)\Re$ٍO#&UoL{c ,iA E{o64$kjeg/( \gg2) +Zs64$KL_exta1)y؏|l wea>4'1@4x)-pprs64${E_pse " uR4$lEmac ! 1@: D~rh64$|lE_str [)ιJ) KXrh64$4TeUopcqs)n61 3;>Vqzil_dir-)A nY_FILiC{o64$w. 󘚑g_=#MLRRo64$M%_flt2RHoy195 ]w"ro dni c4aa4~qiBsoleHx> Use 6B." !E jBUqDN|'-HmEbRWA@NT inwb Ke s)Use ?BPB." v)ecro e\NR hVCz Eg]/vcro wO$:+C!e){Ehco uhsIMIݧmEF M 7u=X7e x=CUSTsJ[e)LdOn5<0:n%x2FFu10> jro U#V$@vT: 2rg1JJ2 ar =04 { ,'Q[S YFjno N[lARG1ECG!AR/HRG4 n(3=z\jfR; KR'b^Cn nުarg1\@e2 ara) SJ)1Rt  NnC o M`O64$Ry)xI; OPLWCro MA'FNIC =W 7"Z3 )fRG> &dOr7FoJ000d Z8  rX]r? &}oJ$.F]9CD000S$ ^xf\g.F80O0m) (kzhAPd twyjatio;@du;! <<? & ^ 40 0 $f*F<*;Md MN gIC mj MAӦk<$REb#[O64$FlE{cl[^T[д rO64$+|OW RE! Ic|X^$2 '{64$goP RE蜥J^Jy1r) [O64$aQE JdEJXp^~#{64$1BhR{E? c05 ^D? lP UR\$GdEJ06 ^gz{\$>JolEeJle ^H"(r)S[Z $mT RE&]CC ^<-6[g$f)EωQC0C ^$uo k[.$F߭C D ^Ӛ"fSy44$ FcDFCG ^6d* ~Ro44$so!REkc94 ^X#"aj&r<$aO߭DZcA ^x:5tUhOX REx e; ^>*2K{{:$<]X\E|<~L@ ^D6*?RO64$hLKOteEWE*D ^i X=8_#rO64$ F@+REXEG ^W*,љ[O64$yFP RE˛E9F ^MO jߩ[`$ TAO"re2J01 ^G+Hpr`$dfP reijh^$#{O64$RoP reFsc^ "[ $xoP re˱cߡ#P5FR+A$j%6OP reo/ja^* *`5()^RS64$pTZ_ re*$jPoP re1Jx ^ӄDKuZE64$%Df re"uC@` ^^#8ZRE64$o|f [C4^`#0CrE64$vOpJeghCd ^#[rO64$݀F\vUeжVc^XV3X=8 {O64$evO!re}14 ^pir74$Sqⵚ j>c ^sF СvpRO64$jF NebZwLUb ^< XR_64$AfLeeu^a*֕[/$:Tf%]e>EiY^ѽKRcpo$/zoߍ^GLu^ݖ6#L1{XrF64$q'DoߍE1f ^c$ {e6J4QSOP k) 2=ype(MeO64$AUI<&]c2O64^LpBA"W ?s }E4^rCrary`ULRLEEB" "9PR$VE[NRY,aH$LIF[],SYDMiBRARw>SuJBy6oACRO6M6yl*"hqRO64$[ARY,UhE$LItarY,SY?@RAR9)ymRM BAѧEF M]oNIC=&+&b(,RX6 CUfQ]ߺoٴD‹0\¡K9i:zw#c0385=^ :00> cWAF MFLNIC= KhR[sUMDn(EMD5`=!>1=^9:% PU:6# ~000s&n^: 2ND1CMIOqk͹v/BHOM=!3W^ۚ xo6:w~000{4n¡90> EMnOGIC=" ;\M54SGL7, EN?}FING=<:¡!)16:2\p '1iex LmHKM/WjmM,FORM&<$CUSjN@ÌN1=^xMZ42MX#c,/E=x95)mM-FOZ=@],:uM~`St ENmI>^<@ Owx 16:2շyx#c,<J x; OMF MinfIC=%61MPS 7, ENBr5<;udx#*I%i2.z000,8 x_6"mjqMyONIC=q,FOR48zSBM LVCǙkNG=<0f5=Vx2Fh<00> r TMG MfZIC=%{pURCUSɴ%rCo8NK=<0%͹/BB kS0;tiMqjM3Ho} 4PFOR|4[S% ENCgӮ0f F>;0> B= id2MQtFOKtSdIә[{=`EUGMfㄸ[߹+sdGR> |oVIu <p3Q16, 8:U1`?:20=l1\`t:m+vd781L4,P0)4Spb߲vB =JSni$+[qr=TKo)WmI;hiiS$>>zN8G=<6:3^ EA1NXv =0:).^li1 =%OPM, MIF MQnoNIC=CLZ'\,6rO XHtSTOM&FI1_3RsTER> Go_- I]тe'HI-4N3qߞF1X?rQ@=8:zW}s1==%OPr( q+WT[DJMTe=(3|S/SU,DKT=<ւz) 8{ LS*duEAtZ>,+BC+Nz 1YBnByi2<;1,U120=%[I(OfB1Q581,@ܰ͊B()MьM;so=8zZ,VHGn,JFN"2931-P16, 2FG5:t,"0=%z 5:1qhW,w41i2/ |DEF MHO*=]}?I59{YH=(\STOM FREGI>p`r,RpS^ER>`nI| '{3H*Q96, O&$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1h["21:25=31, 16:20=%OP1, 5:15=^x7A1,0:4=%OP2> $OPDEF MNEMONIC=negt/sui,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x7A1,0:4=%OP2> $OPDEF MNEMONIC=NEGT/SU,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x5A1,0:4=%OP2> $OPDEF MNEMONIC=negt/su,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x5A1,0:4=%OP2> $OPDEF MNEMONIC=NEGT/SUI,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x7A1,0:4=%OP2> $OPDEF MNEMONIC=negt/sui,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x7A1,0:4=%OP2> $OPDEF MNEMONIC=NEGT/SU,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x5A1,0:4=%OP2> $OPDEF MNEMONIC=negt/su,FORMAT=< CUSTOM = FREGISTER, FREGISTER>, ENCODING=<26:31=^x16, 21:25=31, 16:20=%OP1, 5:15=^x5A1,0:4=%OP2> Alpha/MACRO-64 - MAC FacilityEDITELEMENTEXTRACTeditelementextractINTEGERintegerLENGTHLOCATElengthlocateREPEATrepeatSTRINGstring TIME TYPE time typeAlpha/MACRO-64 - MSG FacilityMSG - Error in message argument typeToken stack overflow Consistency Check in SEM Alpha/MACRO-64 - SRC FacilityAlpha/MACRO-64 - TOK FacilitywordPAGEtbkCNDgblLIBRARYFPTblanknovecTBKGBLWORDpicnoshrPICndfnomixeqBNDFTRIMconnowrtDFCONUPCASEbtrimincludeNOWRTNOMIXNORDleNOSHRltdbgnordNOVECEQrdBLANKGREATERGLOBALDBGidngerelBYTEwrtIDNgtglobalRELmixmcmegreatermdWRTbyteshrMIXquadusrnopicEQUALSHRvecLEUSRNOEXEBINARYlongdifVECQUADLTbinaryRDDIFupcaseFLOATlsbnbLONGDEFINEDneamaGELSBAMAGTdebugMCMDMEabsdefinedexeINCLUDEnoexesupABSCALLSEXEcallsequalovrNOPICOCTAlclSUPlibraryOVRlibLCLdfpagefloatoctaNBDEBUGNELIBcndfptlowercaseIDENTICALDIFFERENTSUPPRESSIONtruncationbyte_alignabsoluteTRUNCATIONtracebackALIGN_LABELdefinitionsALIGN_DATACOMPRESScompressGREATER_EQUALSCHEDULEpeepholePEEPHOLEsuppressiondifferentidenticalLOWERCASENOT_DEFINEDLOCAL_BLOCKexpansionsEXPANSIONSconditionalsTRACEBACKcollapsenot_blankCOLLAPSEDEFINITIONSscheduleCONDITIONALSNOT_BLANKNOT_EQUALalign_labelnot_definedalign_dataALIGN_CODEless_equalalign_codenot_equalgreater_equalABSOLUTELESS_THANlocal_blockLESS_EQUALless_thanBYTE_ALIGNINCLUDELIBRARYFLOATCODEDATACLPCODLEXLOCLOFMACMSGRESSEMSRCSYNTABTOKUTLEXPSYMBOLSAS_ISEXPANSIONSCONDITIONALSTRACEBACKUPPERCASELOWERCASEPEEPHOLESCHEDULEINFORMATIONALSWARNINGSSYS$LIBRARY:.MLB&&&p''HxP'0'`'pPW(XxXXXYXYYYYYZHZpZZZZH[xggh8h`hhh iHipiiiijHjpjjj@$0P0X0 ` Hp0P h0X  8 P h    (@p  H x  0`0 P0@P&0&h@pX@h0p0X&%"8p0Xp0`H(HhP0h(Ph(Xp& 8h0Hh(@X 8PhPPh8hPj?$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1" PPx0`8ppp"(X(@Xp0P"D(E`ExEEEEF F@F`FFFFFG8GhG0H`(@Xp:0;`;;;;< <@<h<<<<=H=x===AB8BPBhBBBBC(CPCxCCCD8DpDDPPQQQR(RhRRRS(SHSpSSSST8ThT8Pp(@hHx`8p(Px80x---.0.h.../8/h///0@0x000@8p8888989P9h99999:0:X::: `` "$0'%'`  `$ P''? `0%00@@x 'p'@@'` ` P&& &`"  `@&@P11112X222203h3334P4445x55556@6p66666707P7x77770`(X8p0pHxHh(P(X Hp0J0KxKKKK8L`LLLLLM MPMpMMMh0XHxؼ@pн@p@pп0hX X(hQe$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1 "H@x8pH0h@pR!4$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"H(@h`00p8 P(@p( p   `  ( X   ( X     X   PP@(HxHx8xpp0`(@(X@0x `  !X!!!"h"""#P###$@$x$$%% &P&&&& 'P'''' (X((()@)p)))*8*h***+8+p+++0,h,,, -X-01X5 8:>ADGJM0QTW[8_cXgk`kkl@lll(m`mmmm(nXnnn0ooSR>$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;10h"opXpppqHqqqq rXrrrsHsss thtttuHuxuuuvPvvvw8whwwwxHxxxy8yxyyyzHzzzz8{{{(|X|||}0}`}}}~H~~~h0xȀT&P$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1d"(H@hPȆ0xȇ 00H؋H8xHHx@pА0XБ HpP(X0p0`P(pUhѐ$$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1{")ؙ8pК0hț(` XHx P(h(X(Xآ0` ``hȦ(Xȧ(ШX((X(X P@@ h0X@p@pH(`8ȶXط(X @`ع8Xx0Xx8нVM]$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1":hؾH8pXP8` P XH8(P XH hH0hX hP X@x X hXXH```XWd$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1B"KH@ P X@p8h0`0h  P PH`0h(`XoM$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1s"\ X8X x`  x (TT@U`UUUV(VHVpVVVVV WHWxWWNPNNNNOXOOOOOP(PPPxPPPQ@8>p>>>>(?`????@0@`@@@A8AxAGG@H`HHHI(IHI`IIIIIJHJhJJ0P"@h(h(pH@"H0H`x0` Xp 8PhH 8P0H`X Xp @`&&pP0"P &p8x h0X 0`&P(PP@x0XP Ph   @ h    X     8 X p@`8`@ '&'$$8x`؅@cccdHddd ePeeeef0fffg0g`___ `H```a0aPaxaaaab`bbb[\P\x\\\0]`]]]]] ^@^^^^_%p%%p$@P$0$'0TpTT(U`UUUUVp ` X\]h]]]] ^H^x^XXX YpYYYY ZPZ`Hh0Xx0` p(h8P XPh8p8hp`0xHh0PXؙ Ph@x @0`П0H P @Љ PH؍(XȐpYco}*$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1;1V"mؑ(Pl mXmpmmmnn@nXnpnnnnoHoxoo`ggggg(h`hxhhhhhhi(iHipiiwx8xPxhxxxxyy0yHy`yxyyyy(zrrss0s`sssssst(t@t`ttttTTU8UhUUUV0VhVVVWHWWWXHXX??@8@`@@@@A(AXAAAA BPBBBBCCD0D`DDE0E`EEEE(FXFFFGpGGGHXHHHH(IPIxIIIJ@JpJJJK8KhKKKK0L`LLLMPMZ~N%$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1;1G"~MMM0NxNNNO@OxOOOPPPPPxTX[^a@d8gilopruw`z}xH(` Pp@@pЎ@Џx0Hx@X@p[Sb$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1.M64;1o"hؚ8؛8hȜ80`0`0`(XС(XXУ`Ph(h8p(`ЪXȬ(hȭ(`Ȯ8H@xPزHȳط( 8(H@0h0`8(p(`8p`8@p@x\9;nm$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1OM;1"0`(p(`8p hX0` 8 x   H   8 h   0 `   P   Hx H(Px(P@p8h@hXX(]h<$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1XE;1"h(X P8`(P `    8!h!!!"@""""H#x###$0$h$$$%@%%%% &P&&&&'H''''(@(x((()8)p)))*`****8+h+++,@,,,,H-x--H.x...P////0@00^LgN$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1XE;112"01111022223H3x333X445P556@6x66`7778`8888 9P999:X::;`;;<8<`<<<=8=`====>0>`>>>>8????(@h@@@A8ApAAA(BpBBCHCCCD8D`DDDDE0EhEEEE F`FFFFFG G@GhGGGGH0HH(I`IIIPJJJ0KKL8LLL0MhMMMNXNNN OhOOP8P`PPPPXQQRPRRS@S_O&$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1X"xSSS0V0XxZ\^`8aaab`bbb0chccc dXddd0eeefxff gXggh@hxhhh ihiii0jxjj k`kk0lhlllPmmmm0nhnnn0oxoo phpp qqrhrrXss tpttt(upuuu vpvvv(whwwwxXxxxyPyyyz0z`zzzz0{h{{{ |P||||}H}x}}}`Љ$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1>"~@~p~~~@x0HxHx؂@p0Ȅ(X PHpxx0xH0aӰ$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1 "`h8ahaaaabHbhbbbbc(cPccccd[[\ \8\h\\\\\]]0]H]h]]]] Pp0X8h00Px X@(H(Ph8p(`м0HhȽ8`0}`}}}}}0~H~`~x~~~~~~8X0hȂ0H`xȃ( PشP@x X0@> h hh@Ї`P@xȸHxP@Ȼzzz{{H{{{{{{{|(|H|h|||0`Ȁ(@`HHx0PxhHp0`8x8Pp@h p@xHxP ^P^^^^^ _@_`____`(`X````XXY(YHYxYYYYZZ@ZhZZZZ [P[P Q`QQQQ RHRpRRRS0S`SSST@T`dddde0eheeeeee fHfxfffg0u`uuuuu0vHv`vxvvvvvvwHwxwo(p`pxppppq(q@qXqpqqqqqr@rijHj`jjjjk0kHk`kkkkl8lhllH@pP@p@^_h___ `h``@Ћ P H(Xh PИؚ0Hxț`0x8h` 8(Hx8P8h(H@X(Hx8ZZ@[[[[\8\h\PVVV8W`WWWWXp(X$+!~- T_RETURN_OP1$(+~~/p  \/p  \Pzq g*\P!-T_BINOP T_BINOP_INT T_LOGOP_INT T_RELOP_INT T_SHIFTOP_INT T_BINOP_IU32 T_LOGOP_S32 T_LOGOP_L32 T_BINOP_REAL T_LOGOP_LOW T_LOGOP_HIGHT_RELOP_INT_COM$(+~~/p  \/p  \Pzq g*k$*\P!-T_RELOP_COM_INT$(+~~/p  \Pzq g*\P!- T_BINOP_L8_U T_LOGOP_L8_U T_RELOP_L8_U$(+~~/p  \Pzq g*\P!- T_BINOP_R8_U T_LOGOP_R8_U T_RELOP_R8_UT_RELOP_R8_U_COMT_BINOP_IU32_R8_U$(+~~/p  \Pzq g*k$*\P!-T_RELOP_COM_R8_U$(+~s`k}/p  \Pzq $=\P!-T_IAND_COM_R8_U$Q $+~/p  \P/q g ' \\P!- T_ABS_INT0$+~/p  \Pzq g*\P!- T_ABS_REAL0kQQ $+~/p  \P/q  g g? 'x\P!- T_ABS_INT128$(+~~/p  \/p  \Pzq g? *\P!-T_ADD_DL4$(+~~/p  \/p  \Pzq g? *\P!-T_ADD_DR4$(+~~/p  \Pzq $\P!- T_ADD_L16$(+~~/p  \Pzq $\P!- T_ADD_R16b$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;14;1" $(+~~/p  \/p  \Pzq g' \P!- T_ADD_SUB_Ck $(+~~/p  \/p  \ P///q g' \P!- T_ADD_INT1284k $(+~~/p  \/p  \ P///zq g' \P!- T_SUB_INT128?'9'9'99||k'|k|kkW**>, P  $(+k ? ~/p  \~/p  \P z q        ' P/// \ P!- T_MUL_INT128_OVF '| | | $(+~/p  \~/p  \Pzq ' P ' P ' 8 ///\P!-T_MUL_INT128_NOOVF T_MUL_UINT128'| 9 9 $($ $$+k?~ /p   \~$/p$  \P z q  ' x P ' P ' P///\ P!- T_EMUL_INT128' @'$@'| $($ $$+~ /p   \~$/p$  \Pzq ' 8///\P!-T_EMUL_UINT128' @'$@$(+~~/k   \P/k   \P//h&Pk Pz\P!- T_DIV_INT128  $(+~~/p  \/p \Pzq gig' Cg' 4\P!- T_CADD_CSUB_C $+~/p  \Pzq gCgg' \\P!-Xdl T_NEG_CONJG_C $(+~~/p  \/p  \zq g' <\P!-T_CMPLX  $+~/p  \Pzq g' C' \P!-`p| T_IMAG_REAL$(+~~/p  \/p  \Pzq $*\P!- T_EQV_COM$(+~~/   \/p  \  g*g*\P!-T_MAXMIN$(+~j/p  \Pzq $,\P!-T_IAND_BYTE_MASK$(+~/p  \Pzq s\$U\P!-T_MAX01$$+~/p  \Pzq g*\P!-T_NEG$+~/p  \Pzq $\P!- T_NEG_S32 T_NEG_ANY_D1 T_NEG_ANY_D2k $+~/p  \P/zq  gg? '\P!- T_NEG_INT128$+~/p  \Pzq $\P!- T_NOT_ANY T_NOT_ANY_TN T_NOT_ANY_TNC T_NOT_ANY_NZ T_NOT_ANY_NZC T_NOT_ANY_LW T_NOT_ANY_LWC@ T_NOT_ANY_HG T_NOT_ANY_HGC$($ ($+~~ /p  \/p   \Pzq $*\P!- T_BYTESHIFT $Ba@PE  ?a@P  ?a@P  $(+~~/p  \/p  \  /Pzq     '  k8Ck0  '    C'  \ P!-T_SH$(+~~/p  \/p  \Pzq g8 $-C$/C$.*Ck 8Ck 0$ *$ \P!-T_SHR_SI$(+~~/p  \Pzq g8 $-C$/C$.*Ck8Ck0$*$\P!- T_SHR_SI_R8_U$? T_SHRA_SIT_SHRA_SI_R8_U$?T_SHRT_SHRA T_SHR_R8_U$? T_SHRA_R8_U$? T_SHL_R8_U$?$(+~/p  \Pzq  *\P!-T_SHL_1 $(+~/p  \Pzq $\P!- T_SHL_1_S32 $(+~/p  \Pzq  *\P!-T_SHL_2 $(+~/p  \Pzq $\P!- T_SHL_2_S32 $(+~/p  \Pzq  *\P!-T_SHL_3 $(+~/p  \Pzq $\P!- T_SHL_3_S32 $(+~/p  \Pzq  * *\P!-T_SHL_4 $(+~/p  \Pzq $$\P!- T_SHL_4_S32 $(+~/p  \Pzq  * *\PcgK$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1.M64;1|"!-T_SHL_5 $(+~/p  \Pzq $$\P!- T_SHL_5_S32 $(+~/p  \Pzq  **\P!-T_SHL_6 $(+~/p  \Pzq $$\P!- T_SHL_6_S32 $($$( +~~$/p  \/p$  \Pzq g&*\P!- T_ADD_1_SHL4$ $($$( +~~$/p  \Pzq g&*\P!-T_ADD_1_SHL_R8_U4$ $($ ($+~~ /p  \/p   \Pzq g&*\P!- T_ADD_2_SHL4$$$($ ($+~~ /p   \Pzq g&*\P!-T_ADD_2_SHL_L8_U4$$$($$( +~~$/p  \/p$  \Pzq g'*\P!- T_SUB_1_SHL?$ $($$( +~~$/p  \Pzq g'*\P!-T_SUB_1_SHL_R8_U?$ $($$( +~~$/p  \/p$  \Pzq g'*\P!- T_SUB_2_SHL?$ $(+~~/p  \Pzq `$\P!- T_SUB_R16   $(+~~/p  \/p  \      / / Pzq g g g 'H. \P!-T_MUL_C $(+~~/p  \/p \Pzq g' /\P/!- T_CMUL_CDIV_C9;:  $(+~~/p  \q k ' 0\P!-T_REM_INT_P2_LIT8"> $(+~s`k@/p  \Pzq ' 1\P!- T_ROT_LIT?  > $(+~s`/p  \  d$-kC$/kC$.k Pzq 'p2 \P!-Xl T_ROT_LIT_SI?$(+~~/p  \/p  \Pzq $$$$>\P!-T_ROT_TN$(+~~/p  \P/p  \ /Pzq   dk $.Ck $/Ck $-$$9 $9 $$$>\P!- T_ROT_TN_SI$(+!~/p  \P  g*g*P-T_RELOP_IZERO_FLOWT_RELOP_IZERO_FLOW_U$(+!~/p  \P  g*g*P-T_RELOP_RZERO_FLOW$(+~~/p  \/p  \Pzq   k   g*$K g* $K ) \P!- T_RELOP_REAL$(+!~~/p  \/p  \P   g*g*g*P-T_RELOP_REAL_FLOW*P $(+~~/p  \/p  \    P/// / q g8kkjjYY'8  \P!-T_RELOP_INT128*P* $(+~~/p  \/p  \    P/// / q k g kjY'4:   \P!-T_RELOP_COM_INT128T_RELOP_INT128_COM $(+~~/p  \/p  \Pzq   //k k gCk k g  g* $K * ' ; * $K ) \P!- T_EQL_NEQ_C $(+!~~/p  \/p  \P    //  ggC  ggg* * ' = * * P- |T_EQL_NEQ_C_FLOW$(+!~-T_EQL_ZERO_NON_COM$(+~~/p  \Pzq $*\P!-T_EQL_R8_U_NON_COM$(+~~/p  \Pzq `$\P!-T_EQL_R16_NON_COM $(+~~/p  \Pzq `$$Y\P!- T_EQL_R16 $(+~~/p  \/p  \Pzq $*\P!- T_EQL_NON_COM$(+~~/p  \Pzq k`$\P!-tdT_RELOP_R16_HIGH T_RELOP_R16_HIGH_COM $(+~/p  \Pzq I`aCjk*\P!-pT T_GXX_ZERO$(+!~-T_NEQ_ZERO_NONT_NEQ_R8_U_NON T_NEQ_NON$(+~/p  \Pzq $k\P!- T_NEQ_ZERO$(+~~/p  \Pzq $*$k\P!- T_NEQ_R8_U T_NEQ_R16_NON $(+~~/p  \Pzq `$$k\P!- T_NEQ_R16 $(+!~- T_LSS_HIGH$(+!~-T_GEQ_HIGH_COMT_MULHD (D PD A @ 0A xD D pB C B D D E @E M M M N A xb Pb XF O P 0P P XP pQ Q Q R Q @ B 8C Q HQ P Ȑ h S O 0P P XP R `C B C HB `R P P Ȑ h O 0P P XP R `C B C HB P P `R Ȑ h @ XA A B C C A A pG @ XA A B C A A G H H H I (I drT$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"(PI xI I I @ XA A B C A A @ XA A B C A A O 0P P XP P @ 8C 8R Ȑ h S O 0P P XP P @ 8C 8R Ȑ h HG G A @ 0A B C pB N E E E F 0F G G H 8H F `H O P 0P P XP R R xS S (S S B `C HB C Q HQ P P Ȑ h O xb @O hO O O I K K K L HL pL L L L M 8M `M K A I J 0K @J hJ K XK J J A @ 0A B C N E hE (N PN xN +2/P z\P!- T_ACCESS_REG1+$2/P   zg *\P!- T_ACCESS_MEM1$+~/P{03F  \P- T_ARG_REG_01?$+W P{03F  QP- T_ARG_REG_02?G$+P{03F  QP- T_ARG_REG_03?K$+{03F  SP- T_ARG_REG_04?$+P3F  QP-T_ARG_STKFRAME?5$+~/p  \P{003Fg*P- T_ARG_MEM?+Pq  zQ\P!- T_ARGPTR_TNG+!- T_ARGPTR_AMG$+PLnP-,0T_CALLjG$+Wk / QPLnP-PTT_CALL_SYM_ADDRjG$+~/k \PLnP-@D T_CALL_ADDRj+)P-T_ENTRY+PP- T_INITCALL+!- T_LENGTHREF+2P- T_PARMALLOC$+~PO z Q\CP!- LTT_PARMLENGTH_FSL1T_PARMLENGTH_FSTRT_PARMLENGTH_FSUBT_PARMLENGTH_STR T_PARMLENGTH_SUB@T_PARMLENGTH_FSTRAT_PARMLENGTH_FSUBAT_PARMLENGTH_STRAT_PARMLENGTH_SUBA$+~/p  \ P- T_PARMTEMP+2/P z\P!- T_RESULTREG + /P   z\\P!- T_RESULTTMP+P-T_RETURN$+~/P2  \P- T_RETURNREG+/P  Q\P!- T_TEMPREFK+!- T_TEMPREF_AMK+- T_NOP_ACTIONS@T hT XU 0U T T T U U U U V U V W 8W `W W W W X (X Y @Y $+!~- T_RETURN_OP1  $+~/p  \P/ W/zq  kg I* $CID$CK dg * C' U C' U \P!-T_CAST_FIX_FLOATk $+~/p  \PW/ kPzq g7 IKD' WC* dg$1*C$/C$1I`$.\P!-T_CAST_FLOAT_FIXk       $+~/p  \PW/   kP?g7 ` ` *C$$C$$C `' XC*C' XC0 @   ' XC' YC' 8YC' \YC' YP!- P`pT_CAST_FLOAT_FLOATk$+~/p  \Pzq g*\P!- T_CAST_INTk T_CAST_64 T_CAST_64_COM T_CAST_64_NEG T_CAST_64_LOW T_CAST_64_LOW_COM@T_CAST_64_HIGHT_CAST_64_HIGH_COMT_CAST_64_NONZEROT_CAST_64_NONZERO_COM T_CAST_32 T_CAST_32_COM T_CAST_32_NEG T_CAST_32_LOW T_CAST_32_LOW_COM@T_CAST_32_HIGHT_CAST_32_HIGH_COMT_CAST_32_NONZEROT_CAST_32_NONZERO_COM T_CAST_S32_32 T_XCVT_32_32 T_XCVT_S32_32T_XCVT_S32_S32 T_CVT_INTT_CVT_INT_ADDRT_CVT_ADDR_INT$+~/6z Q\P!-T_CVT_ADDR_AM_INT@K? KK $+~/p  \Pzq I@K' _C' `\P!-LhXxT_CVT_INT64_INT128K $+~/p  \Pzq ' `\P!-T_CVT_INT128_INT64$+~/p  \P/zq \P!-T_CVT_INT128_INT128$+~/p  \W/Pzq  $$6g*\P!-T_CVT_INT_REAL$+~/p  \W/P zq  $.$$6g*\P!-T_CVT_UINT32_REAL6B   E $+~/p  \W/Pzq   g   'Tc K@T$ CT$'' c \P!-T_CVT_UINT64_REAL$$+~/62aP18zq g*I $g*\P!-t|T_CVT_INT_REAL_FETCH@#7 $+~/p  \Pzq g *' xe\P!-T_CVT_REAL_CMPLX1 $+~/k0  \Ph&Pk ' fPz\P!-T_CVT_REAL_CMPLX2$+~/zq \\P!-T_CVT_CMPLX_REAL1)$+~/p  \Pzq g*\P!-T_CVT_CMPLX_REAL2$+~/k0 \Ph&Pk Pz\P!-T_CVT_CMPLX_REAL3$+~/p  \Pzq g*\P!- T_CVT_FLOAT $+~/p  \Pzq g' h\P!- T_CVT_CMPLX1   $+~/p  \k 0k  ewu$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1,"9' iPh & P    \ /  ' iPh & P  / ' i Pz\P!- T_CVT_CMPLX2$+~/p  \PK@ C W/g*K@$\P!-4@Ht| T_REAL_INT$$+~/p  \PK@ C g*K@$$g*\P!-DPXtT_REAL_CVT_REAL_INT6T_REAL_ROUND_REAL_INT6xT_REAL_TRUNC_REAL_INTM6xT_ROUND$+~/p  \ TPK@ C W/$lg4 *g *K@$\P!-@LT T_ROUND_IEEE$+~/k0  \Ph&PKk Ck Pz\P!-TH\ T_RTL_A_RV T_RTL_A_CV T_RTL_R_RV$(+~~/Kk 0Ck   \P/Kk 1Ck   \P//h&PKk Ck Pz\P!-,8@`lt T_RTL_A_AV_AV$(+~~/k 0  \P/Kk 2Ck   \P//h&Pk Pz\P!-HT\GEM_CG_T_RTL_C_CV_CVGEM_CG_T_RTL_A_IV_IV$(+~~/p \ W \ P/pKx  C  \W \ Pk     Q Pk     QP/ // / h&PKk Ck Pz\P!-Xl|  T_RTL_A_AR_XR$( $ $$+~~$/6 2  a Pk  Q P/6 2  a Pk  Q P/ / h&PKk Ck Pz\P!-T_RTL_A_AR_M_XR_M@@77 $$+!~- T_XCVT_ADDR6$$( +~/p  \Pzq $\P!- T_XCVT_SHL_1X  $$( +~/p  \Pzq g&*\P!- T_XCVT_SHL_2X$ a a 0Z Y Y Z (] [ [ \ 8\ `\ \ \ \ ] XZ Z Z Z Z [ H[ p[ [ ] ] P] x] ] ^ @^ h^ ^ ^ ^ _ 0_ X_ ` ` 8a a H` b p` ` _ _ _ _ `  0 X a a (b Pb a a xb xb (b Pb `a a a a a a a ` b XZ 0Z P] x] ] b c @c 4 48 4 40 =19 4@ 4>E  44> 44> 44> 44> 44> 4444>>   4N> 4N 4&T> 4T =19&T> @ 4%S>E 4&T> 44%&ST>> 44ST 44OP>> 44OP 44QR>> 44QR    44QR>>44QR>> 44QR44QR /44OP>> 144QR>> 144QR>>144QR>>   $(+~~/p \/p  \Pzq $\P!-T_AMINUS_ADIFF$(+~~/p \/p  \Pzq $\P!- T_APLUS_GEN$(+~~/p \/p  \Pzq $\P!- T_APLUS_32$(+~~/p \Pzq $\P!- T_APLUS_32_R8T_AMINUS_ADIFF_NEGT_APLUS_GEN_NEG $(+~~/6P//6Pzq ' \P!-T_APLUS_AM_GEN=@@$(+~~/6/6 P!-T_APLUS_AM_GEN_AM=@@$(+~/6szq Q\P!- T_APLUS_LIT=@$(+~6sP!-T_APLUS_LIT_AM=@$($$( +~~$/p \/p$ff$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"J  \Pzq g'*\P!- T_AMINUS_SHL$ $($ ($+~~ /p \/p   \Pzq g&*\P!- T_APLUS_SHL$$$($  $$ ((+~~$/p \/p$  \Pzq g&*\P!- T_APLUS_SHL_XX$(T_AMINUS_SHL_NEG$$T_APLUS_SHL_NEG$ $+~/B zq Q\P!-T_BASEDREF_GENV$+~/B P!-T_BASEDREF_ADDRV$+~/BP!-T_BASEDREF_ADDR_AMV@$+18zq F\\P!-<@T_FETCH_MISMATCHEDG4&$+18P!- T_FETCH_AUTOG4&$+18zq F\GgX *\P!-<HXT_FETCH_SI_AUTOG4&$+18P!-T_FETCH_SI_CLEANG4&$+~/62FaP18zq Fg*\P!-,8`p T_FETCH_GEN@#$+~/62FaP18zq F$/\P!-,8`hT_FETCH_GEN_B4_S32@# $+~L,/62FkaP18q Fg' X\P!-<Pt T_FETCH_GEN_CMPLX8@# $+~L,/62FkaP/18q Fg' P\P!-<Px T_FETCH_GEN_OCTA@#$+~18zq P//62F' @w\P!-PdT_UFETCH_UBYTE@T_UFETCH_BYTE_LOW@T_UFETCH_BYTE_Z8@$+~18zq P//62kFk' dw\P!-\xT_UFETCH_SBYTE@$+~18zq P//62F' wJ K$\P!-PtT_DFETCH_UWORD@T_DFETCH_WORD_Z16@$+~18zq P//62kFk' w\P!-\xT_DFETCH_SWORD@$+~L,18 zq    P///62Fk' 8x J K$\P!-t T_PFETCH_UWORD@#$T_PFETCH_WORD_Z16@#$T_PFETCH_SWORD@#$$+~L ,18 q P///62FJ J J ( D k' x$Ck' xCk' y$Ck' yCk' dy\P!-hlx0P T_UFETCH_QUAD@ T_UFETCH_LONG@T_UFETCH_LONG_Z32@T_UFETCH_LONG_S32@T_UFETCH_UWORD@T_UFETCH_WORD_Z16@T_UFETCH_SWORD@$+~L,18   WP/62kP//// k`' yC' zP!- T_UFETCH_FLOAT@$+~L,/62kP18       WP//// /  k'z P!- T_UFETCH_OCTA@$+~L,q P///62kFaP18Fg' L{\P!-dp T_UFETCH_CMPLX8L@#$+~L, zq  P///62kFaP18Fg' t{\P!-ht T_UFETCH_CMPLX16Q@#+ Pz Q\P!- T_LITADDR+! - T_LITADDR_AM+!s-T_LITREF_LIT8_U +!s-T_LITREF_LIT16+z  S\P!- T_LITREF_TN+!P vP-T_LITREF_INT_ZEROKK +zq ' l\P!-T_LITREF_INT128_ZERO+!P v?P-T_LITREF_REAL_ZERO +zq ?' 4\P!-T_LITREF_CMPLX_ZERO+!zq k$K\P-T_LITREF_TRUE_TN+!k-T_LITREF_TRUE_LIT+ PrykP!-T_LITREF_STR_FSA+  rR\kyP!-T_LITREF_STR_SA+88WPG ag7 *P18-L( T_SPLIT_FLUSH2  +88WPG kIkag7 *I' |C' P18-t(DLT_SPLIT_FLUSH_CMPLX2+8818WPG ag *($C$-C$C$/P-,x T_SPLIT_LOAD3  +8818WPG kIkag *I' `C' xP-x,HPT_SPLIT_LOAD_CMPLX3+- T_SPLIT_REG,$(+~/  P18MH\C\\P-X@HP T_STORE_AUTO7G&4/T_STORE_AUTO_S327G&4/$(+~/p  \P18\P-T_STORE_MISMATCHED7G&4$(+~~L,/62kP//p  \ 18' 8P-(,T_USTORE_QUADL7@#$(+~L,P/6218k' lP-$(T_USTORE_QUADL_07@#// $($ +~~ L,L,/62kP/62kP//  1818' |P-04@DT_USTORE_FET_QUADL7@@##7$(+~~/p  \P//62a18g*P- T_STORE_GEN_47@# T_STORE_GEN_87@#$($ +~~ /p   \P  g *K $P//62a18g*P-`hT_STORE_CVT_INT7@#'  $(+~~L,/p  gߨ$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1d"[\P//62ka18g' P-(,T_STORE_GEN_CMPLX87@# $(+~~L,/p  \P//62ka18g' P-(,T_STORE_GEN_OCTA7@# $(+~L,/62kIka18?$I' |P-XP$(T_STORE_CMPLX_ZERO7@#$(+2/P18N\lP-@<T_STORE_ACCESS_REG7G1$(+$2/aP18  Ng *\lP-p\T_STORE_ACCESS_MEM7G1$(+~~L,/p  \P/62aP//  18' {P-(, T_USTORE_BYTE7@$(+~L,/62aP/ 18' {P-$(T_USTORE_BYTE_07@ $(+~~/p  \P/62a18P//  ' (|P- T_DSTORE_WORD7@$(+~/62a18P/ ' |P-T_DSTORE_WORD_07@ $(+~~L,/p  \P/62ka18P//     ',} P-(, T_PSTORE_WORD7@#$$(+~~L ,/p  \P/62( dDkC kC kC ka18P//      ( dD'} C' C'$ C' P-$8L\(, T_USTORE_WORD7@ T_USTORE_LONG7@ T_USTORE_QUAD7@T_USTORE_FIXED_167@$(+~L ,/62( dDkC kC kC kaP/18  ( dD' ~C' C' ЀC' P-dp|$( T_USTORE_07@ T_USTORE_INT128_07@ $(+~~L,/p  \ W\ P/62ka18P          P// / / / / k `' C'p C'( P-(8(,T_USTORE_FLOAT7@$(+~~L,/p  \P//62ka18g' P-(,T_USTORE_CMPLX8L7@#$(+~~L,/p  \P//62ka18g' P-(,T_USTORE_CMPLX16Q7@#+W zq FQ\P!-8< T_SYMREF_ANYG0T_SYMREF_ANY_RPG, +W!P P-T_SYMREF_ADDR_MODEG0T_SYMREF_ADDR_MODE_RPG, +-T_SYMREF_REG_VOIDG,pc d pc d e xe c c c 8d `d d d d (e Pe e e e f #hf @f f f f g 0g Xg g g g g h Hh ph h h h i i j 8i `i i i (j Pj xj j ж H p j j k @k hk k k k l Xl 0l l l ظ ( P x pm l l pm m Hm m m m n n n o (o Po xo o o o p @p hp p p p q n `n 0q Xq 8n q q q q r Hr pr r $+!~- T_RETURN_OP1$+~/p  \Pzq $\P!- T_ALLBITS_INT9$+~/p  \Pzq k$\P!-T_ALLBITS_INT_TN_COM9$+~/p  \Pzq k?$\P!-T_ALLBITS_INT_TN_HIGH9$+~/p  \Pzq k$*\P!-T_ALLBITS_UINT9 OE   $+~Pzq  ' \P!-T_ALLBITS_FLOW_INT9 OE   $+~Pzq  '\P!-T_ALLBITS_FLOW_UINT9 $+~/p  \P \ g*P!- T_ANDSKIP_TN1< T_ANDSKIP_TN2< T_ANDSKIP_TN3<$+~/p  \P g*!-T_ANDSKIP_FLOW1<$+~)!-T_ANDSKIP_FLOW2< $+~/p  \PP/- T_BR_LIST+) nP- T_BR_TARGET+$E-T_BRANCHb$+~/p  \P$B$:$<- T_BRARITH_INTd$+~/p  \P$C$:-T_BRARITH_UINTd$+~/p  \P$$$-T_BRARITH_REALd$+~/p  \Pg*g*- T_BRCOND_TNe$$( +~~ /p  \/p   \P  $=$@$?P-T_BRCOND_LANDUe$H$$( +~~ /p  \/p   \P  $=$@$?P-T_BRCOND_LANDUReH$$+~XX- T_BRCOND_FLOWe $+~/p  \P$(- T_JUMPLOCAL$(+~~/p  \P  g*g*X!- T_LANDC_FLOW1 $(+~~ X XX!- T_LANDC_FLOW2 $(+~~/  \/p  \P$9\)!- T_LANDC_TN1$ T_LANDC_TN2 $ T_LANDC_TN3$+~/p  \Pzq k$9\P!- T_LBSET_TN4$+~/p  \Pzq $a\P!-T_LBSET_TN_TN_HIGH$+~/p  \Pzq $`\P!-T_LBSET_TN_TN_HIGH_C9 $$( ,$+18p \Pzq s k' \P!-T_LBSET_FETCHX_R_NONG4&  $7T_LBSET_FETCHZX_R_NONG4&  $7T_LBSET_TN_LOW4T_LBSET_TN_LOW_COMHT_LBSET_TN_HIGHT_LBSET_TN_HIGH_COM T_LNOT_ANY_TNT_LNOT_ANY_TNC T_LNOT_ANY_NZT_LNOT_ANY_NZC T_LNOT_ANY_LW$T_LNOT_ANY_LWCH T_LNOT_ANY_HGT_LNOT_ANY_HGC$+!~- T_LNOT_FLOWh4Sp$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1OM;1u"5k1)um0gbF;ȩ"2&^rV7x25"u\s{5VR'k.XyA[j @pxi JqSaXB3:]nhd?#H@/yH<*6+t)#7'98c*7{+Y6Dr`@q4#^ueI ide$_]ft<\D01f.;ZM?wUSRQM.K/z 8y @3_vR!T_&M.F^U ,ȝAZw!8)?(`1,;r#4a,)'/N{zCs})fBhTl܏)/!i_7 (%R6\E>Op HR0J^ry4;3Q$Qs13252#36{i.}V=j014dX99hr0Oer " $DCT6 NC= 9zs Wo-g{RL\XzJBTQZL#APA@6L#F*GGBNN<21+ '-oPewx?[qKp}mu:]''[2- 3<$ _;F' apvwGMBEnUfG A@jvkN!%gT5;1,$."fXXJ+$G]TJ:-&UE7UV,!ݔqqd@YOI2b=2n%3)lWrvyovOY983*l%87+1R{FV?6Av8jL=S f~;)Ax~.#- G]8@\f4qq\ 15Tp;EkF3K"PxU^RW:>Y]grueQ-T_K\3HYPVfJse^t1?a/{@S]@3TA eNqH/fKpmDJ?KIWChpQ8uUYfwd*OwzR 7GGn]_/1 =Ut$?M'lT gc S}|ni = *Y$xgJ bfxpjT BhjC.u\\ .rAekG3mwgya9i!`em )6$a&N] DWP  *oG1CKNHl &W4(e ٞ3@:JMx ;Rّx*iH fN8٢  ա\S_P_7Q!* mLYS}0f< GK~RG@`/FN._&*!8b'\(z F_FYV7JO:+A2zg;6'mg^ J)XC_U~t D)LJ08 )_XFu%;_v ΄ `a_k"Q#,N$qC)]dfdEYq`$Z :V=N`:XȚ'1] k;_]j$YU Ef"Mb s  AT奨dfowbi<u.]E dZ_ +,JQ_wd}`\Z_,w\HAf_KTJYe 5-,0T_6FF|GU,q %~@(ǨG!`@%<WGJmCv[ B Y/O*2џ:LF(" /CHG Y=NRmHBKA}]2K[R\YG[Q48uFd_cÌU͠D&l$c?k^]QC}?jq@QWrPЛ0{=79d(TdqgzSL8u@ z G.]iC[KKxDS[5zCP]Y ~quZ}Np]GHA] (qGsKq]E\$iR\h:LPAsZGEH C(v&Jc $w/tTkch}RU)ZCXPADU[~AV(eM< l1 =twf}odFExTB\!4Ε(?n$y_u&PjITP:MVAEFR:&ZO z#m q==]j=h_u;8xjoa`ZXU"Q$IzFgZv~^_.TOM!'^<_XG*=Kf% t xpL[TPZ$H0 T Z$;M\ &K|¿SM ^_-5kɌhS<~_ V$'UAߣDkM:ogs8jSS/}UWW?wn^bG3DZwe_WLOWN_,_T!2H$%>$2j7H3]qUhJ[ng9cF,(=`8XK$ v yl%{I /um HFn;if~+h~Q+mlqzif, kuO+IU‡C~f8yN ]_{, _W1V}nTE| x)ze݁`8!wףJf":*f9I[Lw@T8`fdatR0ta$_ED@3X"dxhvi3QpKP Ld oPU;YRm] -epeqrz-$- sP1 Q[RBEs $9U>koeہDQM\F!U?^`?<1:82T|o C2c`[igfncae4^3 (D["`Svy eMh{GIh1 g .A_jxJH<Wi`wfo ~=E*@{Y$ C-a~&n{;p͙USVV.E Ekf>qgd[X z_&o7yHYfPoUL_7@L>pRDUKFX(woB'9ogn ~DRV|EtBCx_R&\IhOZQeUD #U)Uf!fyS*>^u1!-\n2My$/8T/7#\ YBZ ByT1s=dsq^;{CY'b?ySohRlcCc3`h@_-:U.s>&AKPB$F;xWMWC <³`$|oY6sR8BGq$d-^? & HU? ʽ^Ps e (HLBH2 8d6[XZOMl|t XAgJIfp0<$N8 1S!E(Io1_,L_@Z8Y1j@O4]- '{WDzt Q)2Z}GZH WSL@Cx{'!&(5 UחMZGKQZN?3@x^ D&(Qnh JVCW3 J]m/(y^& A2^7ph KoO9@KqNnB"" T_ru :]\T\_A}sQR7M7Q_ @ ;}nW,L> Na݅ppl{N]G_0KN^"g_QY&(ut8(F_YsN?GJC\TH&)\Mp>\_ANW_Dqd t{EY&B0vU$5m*,Y[J~Sw5O߮~t!RڇJ!%>R[g*VVUϞDpA `&DI%w3;PQBU89\5I[Z|hƒ:jR_fPV8?_bYEK2]tEUS`M_;H]W>Qz[<U 2v^HBb΁(&7^TE4Wh.8 S_X"ttdHWxmSw.]Y TS?G3(%;'7=GPX[PEV_[ :fTfwoX w^%YqQ_dC\MIŨ@{O0jRwE]|D_OWNKPCJS-~zE F_~a 'TDWF&dCw & ^m} С| [1$l0_4+ GP XGZ MBOR[QPCE^TJiLo{Y"EN b>N2_XIQPAQSlNR7\\5S6VEI[HU4> N<]zQY\KQz,OYA7k /X , Lcw]Jr@)o=UpqWJM_t D^JAKN,>PjZYOPEM k D % W_e#^2IQ]OVE]| ZHN<`U[?RDžRJ_]_CLP f%Y%Dz[!B`ZLN I%LKDZZ8 Y)M?KJNZ$ ,$,#˥F ".ҺeTQE_n5.JiV_]AxMHR\uSEBSp%y?'nV</~95 6Dwd;]@]ԡXl_^O.ZT^UTHށ?4M5P(\S,3%d*(9# M'-E4on(  h̑QˋTM 5K-M 7 D=<; G?i GZ4Gz_ū a_P?ru]MZNMAw,^ E8 ],:0 09cgYBMi(ݒg,e%Mm[AWt>T>zTۍk dJ[xRkOm}>@CTD*qGW/xo]aq_I^l)VkY. /" `Q1*C5U^EMBCe[Dt.9FP|G{OG~N/_BWXt2^|O?J^:i>8]Y_cJYX F<P_pЇJtXY8@$ H^"IIMdQI_9}TG_C2#qTUQ{NdA^KRT_^KTYh=qK@xvE y\_fWT f@w'k{TwCG (K3C l }6AuVJ؄cNBXȸVR+0}=6mV* ')s*9KcN5FKlM|KP ^t8wOHY[$?&'J"\L@cXN>& \-PZR]qV[kND YG#&$S((UHWIDXHK!gʎSAlLy%N&4\rҸNFmIGU@=DO%aXU_p`$v#?5Zn& . YHTNRW@O_b)''%36V  \vJVP0;:SYㆂFa^]AɔBZ3[N!~(o+_SJZi- +L]3B?yqDq[0UP{L_ SXqFYteg_GVUFR2<)-a ) :wcj ,:IXO_&7  p +zB^N*R\.}(\L8C _a@r]( D]AWQtYT;y o[US''r8o m$:% 2Lq\B{LQlmLW-1   14`(x$Q ܕf\HNaE_.9 iGgPR\+^6R<w$;Q@WY$`]ZIVYG^N_L~۠_@8~KdVJG8HWy\CEw-Ecu&KD`Xne Yy@gY^P/jR-m X;(.}5x\mYBgOZJYvXFRN^-02S =آ^S [ZZ{2qR̜ F69r@xy^Ya , UYHEj_'S_ Tdv]I SfK_$B֮PXR8KFbS0lQMJWqf@B L$MG]t rWV4"QT_`_@h(Uz\ EVPv]7Q״$Wj(ɗ+HB[JTtC_nNwB`З %Q$@V> [ Σ .c)R+z ^],ӞUnr?5kUKDZUgFP)P_ ITY} JB( S8RKCYw4 ,EA2'VGATI\RDO3\1i$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1}"l $+~/p  \Pzq k$*\P!- T_LNOT_TN$+~/p  \Pzq k$k\P!- T_LNOT_TN_NON$+~/p  \Pzq $k\P!-T_LNOT_TN_NON_COM T_LNOT_TN_LOW $(+~~/  \/p  \P$>\)!- T_LORC_TN1 T_LORC_TN2$$ T_LORC_TN3 T_LORC_TN4$(+~~/p  \P  g*g*X!- T_LORC_FLOW1 $(+~~ XX X!- T_LORC_FLOW2  T_LSBIT_TN$+~/p  \Pzq k$9\P!-T_LSBIT_TN_TN_LOW T_LSBIT_TN_NONT_LSBIT_TN_LOW4T_LSBIT_TN_LOW_COMHT_LSBIT_TN_HIGHT_LSBIT_TN_HIGH_COM OE K  $+~Pzq  ' \P!- T_LSBIT_FLOW $(+~~/p  \/p  \Pzq g*\P!-T_LU_BINOP_TN1$(+~~/p  \/p  \Pzq g*k$9\P!-T_LU_BINOP_TN2$$T_LU_BINOP_TN_LOW$$T_LU_BINOP_TN_HIGH$(+!~~/p  \/p  \P    g*J  J  $@$?C$C$:P-|T_LU_BINOP_FLOW$$$(+~~/p  \/p  \Pzq $>\P!- T_LOR_NONT_LAND_NON_COM T_NONZERO_NONT_NONZERO_NON_8bT_NONZERO_NON_16T_NONZERO_NON_32$+~/p  \Pzq $k\P!- T_NONZERO_TNT_NONZERO_TN_8bT_NONZERO_TN_16T_NONZERO_TN_32$+~/p  \Pzq $Y\P!-T_NONZERO_TN_NZCT_NONZERO_TN_NZC_8bT_NONZERO_TN_NZC_16T_NONZERO_TN_NZC_32$+!~/p  \P  g*g*-T_NONZERO_FLOW$+~/p  \P \ g*P!- T_ORSKIP_TN1 T_ORSKIP_TN2 T_ORSKIP_TN3 T_ORSKIP_TN4$+~/p  \P g*!-T_ORSKIP_FLOW1$+~)!-T_ORSKIP_FLOW2 $(, +~ /p   \P~//u\)~XP!- T_SELC_TN $+P~/p  \P \ $E )P!- T_SELELSE_TN$+~/p  \P g*!-T_SELTHEN_FLOW1$+~)!-T_SELTHEN_FLOW2  $(, +~~~ /   \/p \/p  \g$K' C*\P!-| T_SELU_FIXED$(, +~~~ /p \   /\ g*P/\)\P!- T_SELU_FLOAT$(, +~)~ /zq \P $E)~/\)\/P!- T_SELU_FLOW +- T_VBRANCHQr s 8s `s s s s t (t Pt xt u @u hu u u u v v v v Xv v } | | } 8} `} w Hw pw w w w x 8x `x | } 8} `} x x x y (y Py xy y y y z @z hz z z z { 0{ X{ } | | } 8} `} { { { | H| p| | | | } 8} `} } ~ (~ P~ x~ ~ ~ ~  @ h     0 X Ѐ p   H p  8 ` $+!~- T_RETURN_OP1$+~/p  \ znP!-T_ALLOCATE_DYN:$+sP P!-T_ALLOCATE_FIXED:   E $+~/p  \Pc  2g*' <R' LP- T_ASSERT_TNO   E $+~c2' R' P- T_ASSERT_FLOWO +%- T_BARRIERU   E $(+~~/p  \J /p  \CP g*Pc   2g * '  R'  P!e-@X\ T_CHK_INT   E $(+~~/p  \/p  \P  g*Pc   2g* '  R'  P!e- T_CHK_REAL   E $(+~/p  \Pc  2g*' R' P!e- T_CHK_ZERO   E $(+~~/p  \/p  \   cgg   2 ' '  R '  P!e-T_CHKEQL_NEQ_CMPLXY, $+~/p  \  ' P!e-T_CHKOVF_INT32$+!~-T_CHKOVF_INT64j j , $+~/p  \P  I' C' ' P!e-X<L T_CHKOVF_SIC:   E $(, +~~~ /p  \J /p  \CJ /p   \C   P c  2 g g ' ' R ' (P!e-LdhxT_CHKRANGE_INTB:   E $(, +~~ /p  \J /p   \C Pc   2 g'  '  R '  P!e-H`dT_CHKRANGE_INT_LB0<C   E $(, +~~/p  \J /p  \C cP   2 g'  '  R '  P!e-H`dT_CHKRANGE_INT_UB0    E $(, +~~~ /p  \/p  \/p  j$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"} \    c  2 g g 'D ' R ' P!e-T_CHKRANGE_REAL$+~/p  P M\\P-4<T_CSE_TN T_CSE_TN_S32$+~/P   Q\P- T_CSE_ADDR@$+~U bHSP-(, T_CSE_TN_ROFI$+U bHSP-$( T_CSE_LITREF$+ bW1H QP-0< T_CSE_SYMREFG$+/U ubHH\CSP-08@DT_CSE_CSEREF_LIT$+/ ubHH\C QP-08@LT_CSE_CSEREF_SYM$+// ubHH\C\P-8@HL T_CSE_CSEREF+!- T_CSEREF_TN+/U u  H\CS\P!-,48T_CSEREF_ROFI_LIT+!s-T_CSEREF_ROFI_LIT8_U +!s-T_CSEREF_ROFI_LIT16+/ uq   H\CQ\P!-8@DT_CSEREF_ROFI_SYM+// u  H\C\\P!-4<@ T_CSEREF_ROFI+(-T_FENCE$+~/p  \Pzq 3*\P!- T_MACHOP1$(+~~/p  \/p  \Pzq 3*\P!- T_MACHOP2+18- T_LIFETIME+c2R$P-T_SIGNAL-+!P- T_STKFRAME5+ q  zQ\P!- T_STKFRAME_TN5$+~- T_VOID_TNT$+~))- T_VOID_FLOWT $+~- T_VOID_STRINGT$+- T_VOID_ACCESST1+- T_NOP_ACTIONS+PP- T_PALCALL8 `   P ( x  P (  P (  P (  P (  P ( x  ȃ  @ h h  X Ѕ 0  H p ؇ ( P x $(+18ksyP!- T_FETCHF_FSTRG4,<$(+18k~yP!- T_FETCHF_STRG4,<$(+18~ksy/62aP!-T_FETCHF_FSTR_ADDR@$(+18~~k/62a/yP!-T_FETCHF_STR_ADDR@$(+~sk/62ay y [  P18!-T_FETCHF_MAT_FIXED@$(+~~k/62a/p \y    y k  [   P18!- T_FETCHF_MAT_GEN@$(, +18ss y P!-T_FETCHS_C_FSTRG4,<  $(, +18ss y P!-T_FETCHS_C_FSUBSTRG4,<  $(, +18~s y P!-T_FETCHS_FSUBSTRG4,<  $(, +18~ss y /62akP!-T_FETCHS_C_FSTR8_ADDR@ $(, +18~ss y /62aP!-T_FETCHS_C_FSTR_ADDR@ $(, +18~~s y /62a/6 Pk!-T_FETCHS_FSTR8_ADDR@ $(, +18~~~ y /62aP!-T_FETCHS_SUBSTR_ADDR@$(, +18~~~ /62a/6 y Pk!-T_FETCHS_STR_ADDR@$(, +~ss /62ay  y  k [   P18!- T_FETCHS_MAT_C_FIXED@ $(, +~~s /62ay  y  k [   P18!- T_FETCHS_MAT_FIXED@ $(, +~~~ /62a/p  \y     y k  [   P18!- T_FETCHS_MAT_GEN@$(, 0$+~~~  ~$y/62a/k[  18P- T_STOREF_GEN9@$(, 0$ $( (,+~~~$~( ~, y/62a// k[ 18P-T_STOREF_CONCAT9@$(, 0$ $( (,,$0,(4+~~~$~( ~0 ~4y/62a// /k[ 18P-T_STOREF_CONCAT_29@$(, 0$ $( (,,$0,(44$84(<+~~~$~( ~0 ~8~<y/62a// //k[ 18P-T_STOREF_CONCAT_39@$(, 0$4(+~~~ ~$ ~(y /62a/[  18P- T_STORES_GEN:@$+~ /Wxykk[  P!-GEM_CG_T_CAST_STR8k$(+~~//k     k y  [ P!- T_CONCAT_FIXED$($ ($+~~ ~$ /// k ky [  P!- T_CONCAT_FIXED_2$($ ($$$($(,+~~ ~( ~, /// / k ky [ P!-T_CONCAT_FIXED_3$($ ($$$($(,,$0,(4+~~ ~( ~0 ~4/// / /k ky [ P!-T_CONCAT_FIXED_4$($ ($$$($(,,$0,(44$84(<+~~ ~( ~0 ~8~</// / //k ky [  P!-T_CONCAT_FIXED_5$(+~~ ky // \//  \  $ \     k[w$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"[  P!-  T_CONCAT_GEN$(+!~-T_ELEMENT_FSL1 4 $(+~s/P z/' \P!- T_ELEMENT_CO4 $(+~~//6   P Q P z/' X\P!- T_ELEMENT_GEN$(+~/W kxys y k k  [  P!- T_SCAST_IURCA_FIXED$(+~~/W kxy/  \ y    k k[  P!-  T_SCAST_IURCA_GEN$(+~/O/ \Cs y   k k[  P!- <(@T_SCAST_STR8_FIXED$(+~~/O/ \C/  \ y    k k[  P!-  @,DT_SCAST_STR8_GEN$(+~ ~  \   y Pk \Pk / \ Pk  / Q Pk  /Q P/// / h&P!- T_TRANSLATE_GENL$+!~kky-T_USTRING_FSL1CP$+~/p \Pk zkKk$9kP!-X`T_USTRING_FSL1IP$+~/p \Pkky $P!- T_USTRING_FSAP$+~/p \Pkk y     P///    $ kR\ P!- T_USTRING_SAP$+~ yPk   Q Pk  k R Pk RPk /7 Q Pk RPk RP/ / /////h&kP!- T_BIT_1_FIXED $+~ \P  '     yPk  \ Pk  k R Pk ]Pk /7 Q Pk RPk ]P/ / /////h&kP!-T_BIT_1_STRING`$(+~~V yP k  Q Pk  k R Pk  R Pk /7 Q Pk RPk RPk /7 Q Pk RPk RP/ / / ///////h&kP!- T_BIT_2_FIXEDkKW $(+~~      \ \ P  '    yPk \Pk k]Pk / \ \ Pk /7QPk ]Pk ]Pk /7QPk ]Pk ]P//////////h&kP!-T_BIT_2_STRING``$(+~~  yPk  QPk k R Pk ]Pk /7 Q Pk ]Pk ]P///////w0&kPk  QPk ] Pk k R Pk k R P/////w'&kP!-T_BIT_SINGLE_FIXED$(, +~~ ~  yPk  QPk k R Pk ]Pk /7 Q Pk ]Pk ]P///////w0&kPk  QPk ] Pk ]Pk k R P/////w'&kP!-T_BIT_RANGE_FIXED$+~ yPk   Q Pk  kR Pk  ] P/ / / /w5&kP!-T_BIT_ZEROBITS$(+~ ~ Pk 7 QP/ k ] P/k  ] P/ k  ] P/// / h&Pk Pz\P!- T_MEMBER_GEN$(+!~~   P-GEM_CG_T_SCMP_F_FIXED$(+~~  z \P!-GEM_CG_T_SCMP_R_FIXED$(, +!~~ s    P-T_PADSCMP_F_FIXED $(, +~ ~ s  z \P!-T_PADSCMP_R_FIXED $(+!~~   P-GEM_CG_T_SCMP_F_GEN  $(+~~  z \P!-GEM_CG_T_SCMP_R_GEN  $(, +!~~ s    P-T_PADSCMP_F_CPAD_GEN   $(, +~~ s  z \P!-T_PADSCMP_R_CPAD_GEN   $(, +!~~ ~    P-T_PADSCMP_F_GEN  $(, +~~ ~  z \P!-T_PADSCMP_R_GEN  $(+~ ~P/ k 7 QP/k ]P/k  ] P/k  7Q P/k  ] P/k  ] P/// / / / h&Pk Pz\P!-T_SUPERSET_GEN$(+~ ~P/k 7QP/k ]P/k  ] P/ k  7 Q P/k  ] P/k  ] P/// / / / h&Pk Pz\P!- T_SUBSET_GEN$+~/P!- T_LENGTH_GEN`$(+   z \ P!- T_IS_SINGLE$(+   z \ P!- T_ISV_SINGLE_8_RTN$(+~ ~P/ k Q P/ k \ P/k QP/k  \ P//// h&Pk Pz\P!- T_ISV_GEN_8   E $(+~~P/ \J /p \C P c   4tuqvrs$k$: C $j$: C $j$C C $k$C C $*$C C $*$: k ' $3 R ' 43 P!-D\`, T_CHKLEN_GEN$(, +~  P~    7Q \  // P  ] \ //Pk y)~XP!- GEM_T_SELC_STR $+~P z q  7Q\ /P l$%$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1V"z q  ] \ /Pk y $E )P!- GEM_T_SELELSE_STR$(, +~  P~    7Q \  // P  ] \ //P  ] \ //Py)~XP!-GEM_T_SELC_SUBSTR $+~P z q  7Q\ /P z q  ] \ /P z q  ] \ /Py $E )P!- GEM_T_SELELSE_SUBSTR$(, +zq  zq ~)~ Q /P]/P $E)~ Q / P] / P)\  k\y/ /P!-GEM_T_SELUF_STR $(, +zq zq ~/p \P~ Q / P] / P g*P~  Q/P]/P)\ k\y//P!-GEM_T_SELUB_STR$(, +zq zq zq ~)~ 7 Q /P]/P]/P $E)~ 7 Q/ P] / P] / P)\ \\y///P!-GEM_T_SELUF_SUBSTR $(, +zq zq zq ~/p \P~ 7 Q/ P] / P] / P g*P~  7 Q /P]/P]/P)\ \\y///P!-GEM_T_SELUB_SUBSTR H p  8 ` ؊ ( P x ȋ  @  Ѝ   0 X  H p   8 `  ؏ ؏ ؏ ؏ ؏  @  0  @  0  @  0  @  0  @  0  @  0  E  <E  9?K=?  = 2T&>: +P.  c  'P@' ?P-T_BIF_ADAWI_NOVALUE= 2T&>:9 9>,Y>**=9> +P.   cc   '`A ' ? P|-T_BIF_ADAWI_PSL+P.c   P )$020 $C$9C$>$$: ' ? P|-tT_BIF_ADD_AND_OR_LONG +P.c    P ) $020 $C$9C$>$$: ' ? P|-|T_BIF_AAO_LONG_RETRY +P.c   P )$220 $C$9C$>$$: ' ? P|-tT_BIF_ADD_AND_OR_QUAD  +P.c    P ) $220 $C$9C$>$$: ' ? P|-|T_BIF_AAO_QUAD_RETRY 0Y:8K  +P.c P'8GP|-T_BIF_CMP_STORE_LONG2Y:8K  +P.c P'GP|-T_BIF_CMP_STORE_QUAD+Pc$P|- T_BIF_RPCC+P.kk c  P ' ?$2$9$=$$:$Y' ?P|-T_BIF_TESTBITCC+P.k k c    P ' ?$2$9$=$$:' ? $Y P|-T_BIF_TESTBITCC_RETRY+P.kk c  P ' ?$2$9$>$$:$Y' ?P|-T_BIF_TESTBITCS+P.kc  P ' ?$2$9$=$$:$W' ?P|-T_BIF_TESTBITSC+P.kc  P ' ?$2$9$>$$:$W' ?P|-T_BIF_TESTBITSS+P.k c    P ' ?$2$9$>$$:' ? $W P|-T_BIF_TESTBITSS_RETRY+P$&P- T_BIF_TRAPB+P.cP $K$P|-T_BIF_WRITE_MBX ؔ ( P x ȕ  @ h  0 $(, +18zq F\\P!-HLT_FX_QUAD_NODEFERG4&+   @$(, +18P!- T_FX_QUAD_NOPG4&+   @$(, +!~P-T_EXTV_QUAD_NOP   @T_FX_REG_LOW_LG4&+   T_EXTV_LOW_L$  T_FX_REG_HGH_QHG4&+ ?  T_EXTV_HGH_QH ? T_FX_REG_HGH_LHG4&+  T_EXTV_HGH_LH 9 $(, +18 \Pzq Fss ' Q\P!-XlT_FX_REG_TN_ANDG4&$ 9 $(, +~/p  \Pzq ss ' R\P!- T_EXTV_TN_AND$ T_FX_REG_NON_ANDG4&  T_EXTV_NON_AND   $(, +18 \Pzq Fs k@g' T\P!-X|T_FX_REG_TN_QHG4&   @ $(, +~/p  \Pzq s k@' U\P!- T_EXTV_TN_QH   @ $(, +18 \Pzq Fs k ' V\P!-XpT_FX_REG_TN_LHG4&    $(, +~/p  \Pzq s k ' W\P!- T_EXTV_TN_LH   m$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1˛" $(, +18 \Pzq Fss k@k @'W \P!-XT_FX_REG_TN_ANYG4&  @ $(, +~/p  \Pzq ss k@k @g',Y \P!- T_EXTV_TN_ANY  @$(, +18 \Pzq Fs$\P!-XdT_FX_REG_LOW_ANYG4&$@ $(, +~/p  \Pzq s$\P!-T_EXTV_LOW_ANY $(, +18 \Pzq Fsk?' [\P!-XpT_FX_REG_HIGH_ANYG4&$@  $(, +~/p  \Pzq sk?' \\P!-T_EXTV_HIGH_ANY$@ $(, +~18 \/p  \Pzq F$\P!-pxT_FX_REG_LOW_VARG4&+ $(, +~~/ \/p  \Pzq $\P!-T_EXTV_LOW_VAR 9 $(, +~18 \/p  \Pzq Fks ' _\P!-pT_FX_REG_TN_VAR8UG4&+$ 9 $(, +~~/p  \/p  \Pzq ks ' $`\P!-T_EXTV_TN_VAR8U$ 9 $(, +~18 \/p  \Pzq F' a\P!-p|T_FX_REG_TN_VAR1SG4&+  9 $(, +~~/p  \/p  \Pzq ' 0b\P!-T_EXTV_TN_VAR1S   $(, +~18 \/p  \/P P z q  F s `' c \ P!- T_FX_REG_TN_VARG4&+$ @ $(, +~~/p  \/p  \/P P z q  g s `'xd \ P!- T_EXTV_TN_VAR$ @P $(, +~~ 18 \/p  \/p   \   /// P z q  F 'e \ P!- T_FX_REG_TN_GENG4&+P $(, +~~~ /p  \/p  \/p   \   /// P z q   'g KD$\ P!- T_EXTV_TN_GEN$(, +~/62s5@FaP18zq F$1\P!-LX T_FX_MEM_QUAD@#  @@@@T_FX_MEM_QUAD0_L1@#   @@T_FX_MEM_QUAD0_L8@#   @@T_FX_MEM_QUAD0_L16@#   @@T_FX_MEM_QUAD0_L32@#  @@ 19 $(, +~/62s5@FaP18zq s F' j\P!-LXT_FZX_MEM_QUAD0_M8@#  @@T_FZX_MEM_QUAD0_MI8@#  @@1 $(, +~/62s5@FaP18zq F' k\P!-LXT_FX_MEM_QUAD_L1@#   @@?T_FX_MEM_QUAD_L8@#   @@8T_FX_MEM_QUAD_L16@#   @@0T_FX_MEM_QUAD_L32@#  @@ 19 $(, +~/62s5@FaP18zq F' m\P!-LXT_FX_MEM_QUAD0_S_1@#  @@ $(, +~/62s5@FaP18zq s k @k @gF$1'o \P!-LXT_FX_MEM_QUAD_F@#  @@?@ $(, +~/62s5@FaP18zq kk@k @F$1' \p \P!-LXT_FX_MEM_QUAD_F_Z8@#   @@?@ $(, +~/62s5@FaP18zq kk@k @F$1' q \P!-LXT_FX_MEM_QUAD_F_Z16@#   @@?@ $(, +~/62s5@FaP18zq k k@k @F$1' s \P!-LXT_FX_MEM_QUAD_F_Z32@#  @@?@T_FZX_MEM_QUAD_FB@ #  @@?@$(, +~L,/62s5Fk  aP/q    s F' dy \ 18P!-\p,0T_FX_MEM_UQUAD@  @@@ $(, +~L,/62s5Fk  aP/q    s k@k @gF' dy 'u \ 18P!-\p,0T_FX_MEM_UQUAD_F@  @9@$(, +~/62s5 FaP18zq F$/\P!-LX T_FX_MEM_LONG@#  T_FZX_MEM_LONG_32@#  T_FX_MEM_LONG0_L1@#  T_FX_MEM_LONG0_L8@#  T_FX_MEM_LONG0_L16@#  / $(, +~/62s5 FaP18zq F'  $(, +~L,/62s5FkaPzq  ////F' \18P!-\p,0T_FZX_MEM_UWORD_F@  T_FZX_MEM_UWORD@  T_FX_MEM_UWORD_Z16@  44> $(, +~L,/62s5Fk  azq    P// / /s k@k @gF' \ 18P!-\p,0T_FX_MEM_UWORD_F@   4 $(, +~/62s5FaP18/zq F' p\P!-LXT_FZX_MEM_BYTE@  T_FX_MEM_BYTE_Z8@  48 $(, +~/62s5kFkaP18/zq F' \P!-Xl T_FX_MEM_BYTE@  4 $(, +~/62s5FaP18/zq F' \P!-LXT_FX_MEM_BYTE_L1@  4 $(, +~/62s5FaP18/zq Fk ?'  \P!-LXT_FX_MEM_BYTE_H1@  49 $(, +~/62s5FaP18/zq s F' 8\P!-LXT_FZX_MEM_BYTE_F@  4  $(, +~/62s5FaP18/zq s k @k @gF' t' \P!-LXT_FX_MEM_BYTE_F@  94 $(, +~~/p  \   P/6 2 FQ a  // P/ 18zq F'  \P!-hpT_FX_MEM_VAR_BIT_L1@  949 $(, +~~/p  \   P/6 2 FQ a  // P/ 18zq F' h \P!-hpT_FZX_MEM_VAR_BIT@  949 $(, +~~/p  \   P/6 2 FQ a  // P/ 18zq F'  \P!-hpT_FX_MEM_VAR_BIT@  44> $(, +~s L,/62s5kk#F`aP/    Pq  ^ }  }  k @}  g`F'|  \ 18P!- 04 T_FX_MEM_X8_F@  @?A 99j@: 4E  44>E  KE  $oі$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"(, +~~~ L,/62  FQa/p  \/p   \         // / P18  zq  F'p \ P!-\d48 T_FX_MEM_GEN@@$(, +~~ ~ /62k  Q P/ k  \ P/ k  \ P/ / / 18h&Pk Pg*z\P!- T_FX_MEM_RTN@$(, 0$+~$18/p$  \P g*\P- T_SX_REG_FULLG4& $ @= $(, 0$+18  \/Pss ' L\P-T_SX_REG_LIT8_0G4&  5$ = $(, 0$+~/p  \Pzq ss ' 0\P!- T_INSV_LIT8_0  5$ > $(, 0$+18  \/Pss ' \P-T_SX_REG_LIT8_1G4&  !$ > $(, 0$+~/p  \Pzq ss ' \P!- T_INSV_LIT8_1  !$ =>  $(, 0$+18  \/Pss s$' ܢ\P- T_SX_REG_LIT8G4&  $=>  $(, 0$+~/p  \Pzq ss s$' ܣ\P!- T_INSV_LIT8  $=9> $(, 0$+~$18  \/p$  \/P ss k'\P- T_SX_REG_8G4&  9=> $(, 0$+~~$/p$  \P/p  \ P/ z q  ss k'  \ P!- T_INSV_8  M= $(, 0$+18  \ /Pss ' h\P-T_SX_REG_LIT15_0G4&  5$ M= $(, 0$+~/p  \ Pzq ss ' `\P!-T_INSV_LIT15_0  5$ M> $(, 0$+18  \ /Pss ' \\P-T_SX_REG_LIT15_1G4&  !$ M> $(, 0$+~/p  \ Pzq ss ' T\P!-T_INSV_LIT15_1  !$ M=  $(, 0$+18  \ /Pss s$' P\P-T_SX_REG_LIT15G4&  $M=  $(, 0$+~/p  \ Pzq ss s$'h\P!- T_INSV_LIT15  $M=9> $(, 0$+~$18  \/p$  \  Pss '\P- T_SX_REG_15G4&  M=9> $(, 0$+~~$/p  \/p$  \  P// z q  ss 'Į \ P!- T_INSV_15  L= $(, 0$+18  \ /Pss k' \P-T_SX_REG_LIT15H_0G4&  5$ L= $(, 0$+~/p  \ Pzq ss k' \P!-T_INSV_LIT15H_0  5$ L> $(, 0$+18  \ /Pss k' 4\P-T_SX_REG_LIT15H_1G4&  !$ L> $(, 0$+~/p  \ Pzq ss k'D\P!-T_INSV_LIT15H_1  !$ L=  $(, 0$+18  \ /Pss s$k'X\P-T_SX_REG_LIT15HG4&  $L=  $(, 0$+~/p  \ Pzq ss s$ k' \P!- T_INSV_LIT15H  $L=9> $(, 0$+~$18  \/p$  \  Pss k ' \P- T_SX_REG_15HG4&  L=9> $(, 0$+~~$/p  \/p$  \  P// z q  ss k ' \ P!- T_INSV_15H   $(, 0$+18  \/Ps ' d\P-T_SX_REG_LOW_0G4&   @5$  $(, 0$+~/p  \Pzq s ' L\P!-T_INSV_LOW_0_64   ?5$ T_INSV_LOW_0_32   5$ > $(, 0$+~$18  \/p$  \/P s k@' \P- T_SX_REG_LOWG4& $ @> $(, 0$+~~$/p  \P/p$  \  z q  s k@'Լ\ P!- T_INSV_LOW_64p$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;11" $ ? T_INSV_LOW_32 $  $(, 0$+18  \/Ps ' d\P-T_SX_REG_HIGH_0G4&   @5$  $(, 0$+~/p  \Pzq s ' P\P!- T_INSV_HIGH_0   @5$ > $(, 0$+~$18  \/p$  \/P s k@' <\P- T_SX_REG_HIGHG4&   @> $(, 0$+~~$/p  \P/p$  \  z q  s k@'t\ P!- T_INSV_HIGH   @= $(, 0$+18  \ /Pss ' \P-T_SX_REG_LIT_0G4&  5$ = $(, 0$+~/p  \ Pzq ss ' \P!-T_INSV_LIT_0_64  5$ T_INSV_LIT_0_32  5$ > $(, 0$+18  \ /Pss ' \P-T_SX_REG_LIT_1G4&  !$ > $(, 0$+~/p  \ Pzq ss ' \P!-T_INSV_LIT_1_64  !$ T_INSV_LIT_1_32  !$ = > $(, 0$+18  \ /Pss s$' @\P- T_SX_REG_LITG4&  $= > $(, 0$+~/p  \  P z q  ss s$'`\ P!- T_INSV_LIT_64  $ T_INSV_LIT_32  $=9> $(, 0$+~$18  \/p$  \  Pss '\P- T_SX_REG_FG4&  $(, 0$+~/p  \Pzq ss o$+I d$\P!-| T_INSV_B_0 $?% @5$ $(, 0$+~/p  \  Pzq ss o$ $,  $> I d$\P!- T_INSV_B_1 $?% @!$ +,> $(, 0$+~~$/p  \/p$  \  P z q  ss o '   I d$ \ P!- T_INSV_B $?% @+> $(, 0$+~~$/p  \/p$  \  P z q  ss o k#'h  I d$ \ P!- T_INSV_B_8$?% @  +&> $(, 0$+~~$/p  \/p$  \  P z q  ss o k#'  \ P!- T_INSV_B_16$?% @  +> $(, 0$+~~$/p  \/p$  \  P z q  ss o k#'  I d$ \ P!- T_INSV_B_32$?% @  =9> $(, 0$+~~$/p  \/p$  \  P// z q  ss 'p I d$ \ P!- T_INSV_F  P=9> $(, 0$+~~ ~$  \/p  \/p   \/p$  \P    /P  /// / 18'  \P- T_SX_REG_GENG4&+P=9> $(, 0$+~~~ ~$/p  \/p  \/p   \/p$  \P    /P  //P/ /  z q  '  I d$ \ P!- T_INSV_GEN$(, 0$+~L,/62s5aP/ 18' {P-48T_SX_MEM_BYTE_0@  5$ $(, 0$+~~$L,/62s5aP/p$  \  /18' {P-8< T_SX_MEM_BYTE@  4= $(, 0$+~L,/62s5aP/  18s ' 4P-48T_SX_MEM_BYTE_LIT_0@  5$ 4> $(, 0$+~L,/62s5aP/  18s ' P-48T_SX_MEM_BYTE_LIT_1@  !$ 4= > $(, 0$+~L,/62s5aP/   18s s$ ' P-48T_SX_MEM_BYTE_LIT@  $4=9> $(, 0$+~~$ L,/62s5aP/ p$  \   /18s 'X P-8<T_SX_MEM_BYTE_F@  $(, 0$+~/62s5aP /18' |P-T_SX_MEM_DWORD_0@5$   $(, 0$+qo"3$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;1"~~$/62s5aP/p$  \  /18' (|P-T_SX_MEM_DWORD@  $(, 0$+~~$L,/62s 5  k  aP/p$  \     /18',} P-8<T_SX_MEM_PWORD@#  $(, 0$+~~$L,/62s 5  k  aP/p$  \     /18'} P-8<T_SX_MEM_UWORD@  $(, 0$+~~$/62s5 aP/p$  \/18$P- T_SX_MEM_LONG@#  /= $(, 0$+~L,/62s5 aP/ 18s ' P-48T_SX_MEM_LONG_LIT8_0@#  5$ /> $(, 0$+~L,/62s5 aP/ 18s ' P-48T_SX_MEM_LONG_LIT8_1@#  !$ /=>  $(, 0$+~L,/62s5 aP/ 18s s$' P-48T_SX_MEM_LONG_LIT8@#  $/= $(, 0$+~L,/62s5 aP/  18s ' PP-48T_SX_MEM_LONG_LIT_0@#   5$ /> $(, 0$+~L,/62s5 aP/  18s ' P-48T_SX_MEM_LONG_LIT_1@#   !$ /= > $(, 0$+~L,/62s5 aP/  18s s$'P-48T_SX_MEM_LONG_LIT@#   $/+ $(, 0$+~L,/62s5 aP/ 18s o' P-48T_SX_MEM_LONG_FB_0@ #   5$ /+,> $(, 0$+~~$L,/62s5 aP/p$  \  P  / /18s o 'D P-8<T_SX_MEM_LONG_FB@ #   /+> $(, 0$+~~$L,/62s5 aP/p$  \  P  / /18s o k#' P-8<T_SX_MEM_LONG_FB_8@  #   /+&> $(, 0$+~~$L,/62s5 aP/p$  \  P  / /18s o k#'D P-8<T_SX_MEM_LONG_FB_16@  #   //+,> $(, 0$$$($(,$,0+~~(L,/62s5 aP/62$s,5 $a$P    //181$8s o '  P-PTT_SX_MEM_LONG_FB_FX@@ ,0*,* 0#   #$ ,0  7$T_SX_MEM_LONG_FB_FZX@@ ,0*,* 0#   #$ ,0  7$/=9> $(, 0$+~~$L,/62s5 aP/p$  \    P  / / /18s 'T P-8<T_SX_MEM_LONG_F@#   /=> $(, 0$+~~$L,/62s5 aP/p$  \    P  / / /18s ' P-8<T_SX_MEM_LONG_F_Z8@@  #   T_SX_MEM_LONG_F_Z16@  #   T_SX_MEM_LONG_F_Z32@  #   $(, 0$+~~$L,/62s 5  kaP/p$  \      /18' P-8<T_SX_MEM_ULONG@   $(, 0$+~~$/62s5@aP/p$  \/18$P- T_SX_MEM_QUAD@#  @@@@$(, 0$+~L,/62s5 ka18' lP-48T_SX_MEM_QUADL_0@#  @@@5$ $(, 0$+~~$L,/62s5 kaP//p$  \  18' 8 P-8<T_SX_MEM_QUADL@#  @@@1= $(, 0$+~L,/62s5@aP/ 18s ' P-48T_SX_MEM_QUAD_LIT8_0@#  @@5$ 1> $(, 0$+~L,/62s5@aP/ 18s ' P-48T_SX_MEM_QUAD_LIT8_1@#  @@!$ 1=>  $(, 0$+~L,/62s5@aP/ 18s s$' ,P-48T_SX_MEM_QUAD_LIT8@#  @@$1= $(, 0$+~L,/62s5@aP/  18s ' lP-48T_SX_MEM_QUAD_LIT_0@#  @@5$ 1> $(, 0$+~L,/62s5@aP/  18s ' P-48T_SX_MEM_QUAD_LIT_1@#  @@!$ 1= > $(, 0$+~L,/62s5@aP/  18s s$' P-48T_SX_MEM_QUAD_LITru$ALPHA_MACRO64010.AD! `&[ASM.KITBUILD_27600F41_A]MACRO64.EXE;17B"@#  @@$1+ $(, 0$+~L,/62s5@aP/ 18s o' @ P-48T_SX_MEM_QUAD_FB_0@ #  @@5$ 1+,> $(, 0$+~~$L,/62s5@aP/p$  \  P  / /18s o 'h  P-8<T_SX_MEM_QUAD_FB@ #  @@?@1+> $(, 0$+~~$L,/62s5@aP/p$  \  P  / /18s o k#'  P-8<T_SX_MEM_QUAD_FB_8@  #  @@?@1+&> $(, 0$+~~$L,/62s5@aP/p$  \  P  / /18s o k#'h  P-8<T_SX_MEM_QUAD_FB_16@  #  @@?@1+> $(, 0$+~~$L,/62s5@aP/p$  \  P  / /18s o k#'  P-8<T_SX_MEM_QUAD_FB_32@  #  @@?@11+,> $(, 0$$$($(,$,0+~~(L,/62s5@aP/62$s,5@$a$P    //181$8s o ' p  P-PTT_SX_MEM_QUAD_FB_FX@@ ,0*,* 0#  @@?@#$ ,0@@?@7$T_SX_MEM_QUAD_FB_FZX@@ ,0*,* 0#  @@?@#$ ,0@@?@7$1=9> $(, 0$+~~$L,/62s5@aP/p$  \    P  / / /18s '  P-8<T_SX_MEM_QUAD_F@#  @@$(, 0$+~~$L,/62s 5  kaP/p$  \      /18'$ P-8<T_SX_MEM_UQUAD@  @@@94K= $(, 0$+~~L,/62 Q/p  \ P//         18'  P-8<T_SX_MEM_VAR_BIT_0@@  5$ 94K> $(, 0$+~~L,/62 Q/p  \ P//         18'D  P-8<T_SX_MEM_VAR_BIT_1@@  !$ 94K=9> $(, 0$+~~~$L,/62 Q/p  \/p$  \      P/ / / //     18'  P-<@T_SX_MEM_VAR_BIT@@4  44== $(, 0$+~s L,/62s5kk#k }  aP/        Pk@}}k@}'  18P-8<T_SX_MEM_X8_F_LIT_0@5$  @?44>> $(, 0$+~s L,/62s5kk#k }  aP/        Pk@}}k@}'  18P-8<T_SX_MEM_X8_F_LIT_1@!$  @?44   ==>> $(, 0$+~~$s L,/62s5kk#k}aP//p$  \         Pk @}  }  k @}  '    18P-<@ T_SX_MEM_X8_F@  @?A 99j@ :  4      =      >    E  4    =    >    4        >