PARSE_UIC                       , parsing a UIC identifier string to a n 13-AUG-1996 12:58:15  VAX MACRO V5.4-3            Page   1
                                                                         11-JUL-1996 11:04:56  OWN.MAR;3                         (1)

                                     0000     1         .title  PARSE_UIC, parsing a UIC identifier string to a number
                                     0000     2 ;
                                     0000     3 ; This routine is called from another module
                                     0000     4 ;
                                     0000     5 ; Calling Sequence:
                                     0000     6 ;
                                     0000     7 ;       PUSHAL  RETURN_UIC
                                     0000     8 ;       PUSHAL  INPUT_IDENITIFER_STRING_DESCRIPTOR
                                     0000     9 ;       CALLS   #2, PARSE_UIC
                                     0000    10 ;
                                     0000    11 ;
                                     0000    12         $dscdef                                 ; Descriptor offsets
                                     0000    13         $tpadef                                 ; Tparse definitions
                                     0000    14 
                                 00000000    15         .psect  tparse_data, noexe, wrt, rd, long
                                     0000    16 ;
                                     0000    17 ; Set up the parse table to accept an identifier string.
                                     0000    18 ;
                                     0000    19         $init_state     uic_state, uic_key
                                     0000    20         $state
                                     0000    21         $tran   tpa$_ident,,,,converted_uic
                                     0000    22         $state
                                     0000    23         $tran   tpa$_eos,tpa$_exit
                                     0000    24         $end_state
                                     0000    25 
                                     0000    26 .align  long
                                     0000    27 tparse_block:
                           00000024  0000    28         .blkb   tpa$k_length0                           ; Static storage
                                     0024    29 
                                     0024    30 converted_uic:                                          ; Tparse storage
                           00000000  0024    31         .long
                                     0028    32 
                                 00000000    33         .psect  code, exe, rd, nowrt, long
                                     0000    34 ;
                                     0000    35 ; Inputs:
                                     0000    36 ;
                                     0000    37 ;       Address of a string decriptor of the identifier
                                     0000    38 ;
                                     0000    39 ; Outputs:
                                     0000    40 ;
                                     0000    41 ;       Address of a longword to recieve the UIC
                                     0000    42 ;
                                     0000    43 ; Returns:
                                     0000    44 ;
                                     0000    45 ;       values returned are from LIB$TPARSE and $ASCTOID
                                     0000    46 ;
                           00000004  0000    47 identifier = 4
                           00000008  0000    48 uic = 8
                               0004  0000    49         .entry  parse_uic, ^m<r2>
              52   00000000'EF   DE  0002    50         moval   tparse_block, r2
                       62   08   D0  0009    51         movl    #tpa$k_count0, tpa$l_count(r2)          ; Minimal block
                    04 A2   03   C8  000C    52         bisl2   #<tpa$m_blanks!tpa$m_abbrev>, -         ; options
                                     0010    53                 tpa$l_options(r2)
                    50   04 AC   D0  0010    54         movl    identifier(ap), r0                      ; Get user string
                    08 A2   60   3C  0014    55         movzwl  dsc$w_length(r0), tpa$l_stringcnt(r2)   ; Length of string
                 0C A2   04 A0   D0  0018    56         movl    dsc$a_pointer(r0), tpa$l_stringptr(r2)  ; Address of string
                                     001D    57 
PARSE_UIC                       , parsing a UIC identifier string to a n 13-AUG-1996 12:58:15  VAX MACRO V5.4-3            Page   2
                                                                         11-JUL-1996 11:04:56  OWN.MAR;3                         (1)

                   00000000'EF   9F  001D    58         pushab  uic_key
                   00000000'EF   9F  0023    59         pushab  uic_state
                   00000000'EF   9F  0029    60         pushab  tparse_block
              00000000'GF   03   FB  002F    61         calls   #3, g^lib$table_parse                        ; Parse the id
                         08 50   E9  0036    62         blbc    r0, 10$                                 ; Branch on error
           08 BC   00000024'EF   D0  0039    63         movl    converted_uic, @uic(ap)                 ; Set the UIC
                                 04  0041    64 10$:    ret
                                     0042    65         .end
PARSE_UIC                       , parsing a UIC identifier string to a n 13-AUG-1996 12:58:15  VAX MACRO V5.4-3            Page   3
Symbol table                                                             11-JUL-1996 11:04:56  OWN.MAR;3                         (1)

$$$FLG                         = FFFFFFFF                 
$$$KEY                         = FFFFFFFF                 
$$$KFG                         = FFFFFFFF                 
$$$MOD                         = 00000000                 
$$KEYTAB                       = 00000000 R     04        
CONVERTED_UIC                    00000024 R     02        
DSC$A_POINTER                  = 00000004                 
DSC$W_LENGTH                   = 00000000                 
IDENTIFIER                     = 00000004                 
LIB$TABLE_PARSE                  ********   X   06        
PARSE_UIC                        00000000 RG    06        
TPA$K_COUNT0                   = 00000008                 
TPA$K_LENGTH0                  = 00000024                 
TPA$L_COUNT                    = 00000000                 
TPA$L_OPTIONS                  = 00000004                 
TPA$L_STRINGCNT                = 00000008                 
TPA$L_STRINGPTR                = 0000000C                 
TPA$M_ABBREV                   = 00000002                 
TPA$M_BLANKS                   = 00000001                 
TPA$_ALPHA                     = 000001EE                 
TPA$_ANY                       = 000001ED                 
TPA$_BLANK                     = 000001F2                 
TPA$_DECIMAL                   = 000001F3                 
TPA$_DIGIT                     = 000001EF                 
TPA$_EOS                       = 000001F7                 
TPA$_EXIT                      = FFFFFFFF                 
TPA$_FAIL                      = FFFFFFFE                 
TPA$_FILESPEC                  = 000001EA                 
TPA$_HEX                       = 000001F5                 
TPA$_IDENT                     = 000001EC                 
TPA$_KEYWORD                   = 00000100                 
TPA$_LAMBDA                    = 000001F6                 
TPA$_MAXKEY                    = 000000DC                 
TPA$_NODE                      = 000001E9                 
TPA$_NODE_ACS                  = 000001E7                 
TPA$_NODE_PRIMARY              = 000001E8                 
TPA$_OCTAL                     = 000001F4                 
TPA$_STRING                    = 000001F0                 
TPA$_SUBXPR                    = 000001F8                 
TPA$_SYMBOL                    = 000001F1                 
TPA$_UIC                       = 000001EB                 
TPARSE_BLOCK                     00000000 R     02        
UIC                            = 00000008                 
UIC_KEY                          00000000 RG    04        
UIC_STATE                        00000000 RG    03        
PARSE_UIC                       , parsing a UIC identifier string to a n 13-AUG-1996 12:58:15  VAX MACRO V5.4-3            Page   4
Psect synopsis                                                           11-JUL-1996 11:04:56  OWN.MAR;3                         (1)


                                                +----------------+
                                                ! Psect synopsis !
                                                +----------------+

PSECT name                      Allocation          PSECT No.  Attributes     
----------                      ----------          ---------  ----------     
.  ABS  .                       00000000  (    0.)  00 (  0.)  NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT NOVEC BYTE  
$ABS$                           00000000  (    0.)  01 (  1.)  NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT NOVEC BYTE  
TPARSE_DATA                     00000028  (   40.)  02 (  2.)  NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT NOVEC LONG  
_LIB$STATE$                     0000000A  (   10.)  03 (  3.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC BYTE  
_LIB$KEY0$                      00000000  (    0.)  04 (  4.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC WORD  
_LIB$KEY1$                      00000000  (    0.)  05 (  5.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC WORD  
CODE                            00000042  (   66.)  06 (  6.)  NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT NOVEC LONG  

                                             +------------------------+
                                             ! Performance indicators !
                                             +------------------------+

Phase                    Page faults    CPU Time       Elapsed Time   
-----                    -----------    --------       ------------   
Initialization                   34     00:00:00.01    00:00:00.09
Command processing              919     00:00:00.04    00:00:00.23
Pass 1                          136     00:00:00.14    00:00:00.54
Symbol table sort                 0     00:00:00.01    00:00:00.01
Pass 2                            3     00:00:00.01    00:00:00.09
Symbol table output               0     00:00:00.01    00:00:00.01
Psect synopsis output             0     00:00:00.00    00:00:00.00
Cross-reference output            0     00:00:00.00    00:00:00.00
Assembler run totals           1095     00:00:00.22    00:00:00.98

The working set limit was 2498 pages.
13405 bytes (27 pages) of virtual memory were used to buffer the intermediate code.
There were 20 pages of symbol table space allocated to hold 196 non-local and 1 local symbols.
65 source lines were read in Pass 1, producing 25 object records in Pass 2.
25 pages of virtual memory were used to define 19 macros.

                                            +--------------------------+
                                            ! Macro library statistics !
                                            +--------------------------+

Macro library name                           Macros defined      
------------------                           --------------      
SYS$COMMON:[SYSLIB]STARLET.MLB;2                       10        

506 GETS were required to define 10 macros.

There were no errors, warnings or information messages.

MAC/LIS OWN
