LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   0
Table of contents

    (1)       11        Non-shared data area
    (1)       41        Offset definitions
    (1)      130        Symbol definitions
    (1)      145        ERROR HANDLER
    (1)      173        File block allocation
    (1)      219        File Block deallocation
    (1)      240        File block initialisation
    (1)      379        Input file procedures
    (1)      564        Output file procedures
    (1)      724        Character input routines
    (1)      921        Character output routines
    (1)     1076        General utilities
    (1)     1238        Run time environment initialisation proc.
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   1
V1-01                                                                    15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0000     1 .TITLE LIB77_IOPROCS  IMP77 Basic I/O procedures    7th August 1980
                                     0000     2 
                                     0000     3 .IDENT   /V1-01/
                                     0000     4 
                                     0000     5 ;       Author :  A.Vernon
                                     0000     6 
                                     0000     7 ;           13th May 1980
                                     0000     8 
                                     0000     9 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   2
V1-01                           Non-shared data area                     15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0000    11 .sbttl Non-shared data area
                                     0000    12 
                                 00000000    13 .psect $_glappic,pic,usr,con,rel,lcl,noshr,noexe,rd,wrt,long
                                     0000    14 
                                     0000    15 
                                     0000    16 startskel:
                                     0000    17 fskel: $fab fsz=2,rat=<cr>,rfm=stmlf,dns=4,fop=<sqo>
                                     0050    18 ; 15/4/88 changed rfm from var to stmlf
                                     0050    19 rskel: $rab usz=512,psz=7,rsz=0
                                     0094    20 ;xdskel: $xabdat
                                     0094    21 xpskel: $xabpro
                                     00EC    22 ;xaskel: $xaball
                                     00EC    23 ;xfskel: $xabfhc
                                     00EC    24 ;xrskel: $xabrdt
                                     00EC    25 nskel: $nam ess=127,rss=127
                           000001CB  014C    26 esnam: .blkb 127
                           0000024A  01CB    27 rsnam: .blkb 127
                           000002CA  024A    28 usernam: .blkb 128
                               8D8A  02CA    29 prnrec: .word ^x8D8A
                                 00  02CC    30 prcnt: .byte 0
                               0000  02CD    31 buffpos: .word 0
                               0000  02CF    32 tabcnt: .word 0
               3A 61 74 61 44 0A 0D  02D1    33 promstr: .ascii <13><10>"Data:"
                           000003D0  02D8    34            .blkb 248
                                     03D0    35 endskel:
                                     03D0    36 
                        50 4D 49 2E  03D0    37 imp$_defnam: .ascii /.IMP/
                           00000413  03D4    38 		.blkb 63
                     2A 3B 2A 2E 2A  0413    39 imp$_wild:	.ascii /*.*;*/
                                     0418    40 
                                     0418    41 .SBTTL      Offset definitions
                                     0418    42 
                           000003D0  0418    43 imp$v_fabsz=endskel-startskel
                           00000050  0418    44 imp$o_rab=rskel-fskel
                           000000EC  0418    45 imp$o_nam=nskel-fskel
                                     0418    46 ;imp$o_xdat=xdskel-fskel
                           00000094  0418    47 imp$o_xpro=xpskel-fskel
                                     0418    48 ;imp$o_xall=xaskel-fskel
                                     0418    49 ;imp$o_xfhc=xfskel-fskel
                                     0418    50 ;imp$o_xrdt=xrskel-fskel
                           0000014C  0418    51 imp$o_esa=esnam-fskel
                           000001CB  0418    52 imp$o_rsa=rsnam-fskel
                           0000024A  0418    53 imp$o_fna=usernam-fskel
                           000002CA  0418    54 imp$o_prn=prnrec-fskel
                           000002CC  0418    55 imp$o_ftn=prcnt-fskel
                           000002CD  0418    56 imp$o_pos=buffpos-fskel
                           000002CF  0418    57 imp$o_tabcnt=tabcnt-fskel
                           000002D1  0418    58 imp$o_pmt=promstr-fskel
                                     0418    59 
                                     0418    60 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   3
V1-01                           Offset definitions                       15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0418    62 
                           00000010  0418    63 imp$v_maxstr=16
                                     0418    64 
                           00000458  0418    65 imp$l_ttin: .blkl imp$v_maxstr
                           00000498  0458    66 imp$l_ttout: .blkl imp$v_maxstr
                                     0498    67 
                           00000000  0498    68 imp$l_infab: .long 0
                           00000000  049C    69 imp$a_inaddr: .long 0
                           00000000  04A0    70 imp$l_outfab: .long 0
                           00000000  04A4    71 imp$a_outaddr: .long 0
                                     04A8    72 
                           00000000  04A8    73 imp$l_instream: .long 0
                           00000000  04AC    74 imp$l_outstream: .long 0
                                     04B0    75 
                                 00  04B0    76 imp$b_rdtype: .byte 0
                                     04B1    77 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   4
V1-01                           Offset definitions                       15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                 00000000    79 .psect $_constant,nowrt,con,pic,rel,shr
                                     0000    80 
      54 55 50 4E 49 24 53 59 53 00' 0000    81 imp$s_sysin: .ascic /SYS$INPUT/
                                 09  0000       
   54 55 50 54 55 4F 24 53 59 53 00' 000A    82 imp$s_sysout: .ascic /SYS$OUTPUT/
                                 0A  000A       
                           3A 4C 4E  0015    83 imp$s_sysnl: .ascii /NL:/
      52 4F 52 52 45 24 53 59 53 00' 0018    84 imp$s_syserr: .ascic /SYS$ERROR/
                                 09  0018       
                        54 54 2E 00' 0022    85 imp$s_tt: .ascic /.TT/
                                 03  0022       
                  4C 4C 55 4E 2E 00' 0026    86 imp$s_null1: .ascic /.NULL/
                                 05  0026       
                           4E 2E 00' 002C    87 imp$s_null2: .ascic /.N/
                                 02  002C       
                                     002F    88 
                                 5B  002F    89 imp$_splitsep: .byte ^a/[/
                                 80  0030    90 		.byte nam$m_exp_dev
                                 10  0031    91 		.byte 16
                                 5D  0032    92 		.byte ^a/]/
                                 3D  0033    93 		.byte ^a/=/
                                 2E  0034    94 		.byte ^a/./
                                 40  0035    95 		.byte nam$m_exp_dir
                                 0A  0036    96 		.byte 10
                                 2E  0037    97 		.byte ^a/./
                                 40  0038    98 		.byte nam$m_exp_dir
                                 0A  0039    99 		.byte 10
                                 2E  003A   100 		.byte ^a/./
                                 40  003B   101 		.byte nam$m_exp_dir
                                 0A  003C   102 		.byte 10
                                 2E  003D   103 		.byte ^a/./
                                 40  003E   104 		.byte nam$m_exp_dir
                                 0A  003F   105 		.byte 10
                                 2E  0040   106 		.byte ^a/./
                                 40  0041   107 		.byte nam$m_exp_dir
                                 0A  0042   108 		.byte 10
                                 2E  0043   109 		.byte ^a/./
                                 40  0044   110 		.byte nam$m_exp_dir
                                 0A  0045   111 		.byte 10
                                 2E  0046   112 		.byte ^a/./
                                 40  0047   113 		.byte nam$m_exp_dir
                                 0A  0048   114 		.byte 10
                                 2E  0049   115 		.byte ^a/./
                                 40  004A   116 		.byte nam$m_exp_dir
                                 0A  004B   117 		.byte 10
                                 26  004C   118 		.byte ^a/&/
                                 2E  004D   119 		.byte ^a/./
                                 04  004E   120 		.byte nam$m_exp_name
                                 0A  004F   121 		.byte 10
                                 3B  0050   122 		.byte ^a/;/
                                 02  0051   123 		.byte nam$m_exp_type
                                 04  0052   124 		.byte 4
                                 20  0053   125 		.byte ^a/ /
                                 01  0054   126 		.byte nam$m_exp_ver
                                 06  0055   127 		.byte 6
                                 21  0056   128 		.byte ^a/!/
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   5
V1-01                           Symbol definitions                       15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0057   130 .SBTTL     Symbol definitions
                                     0057   131 
                           0000000A  0057   132 imp$k_lf=10
                           00000002  0057   133 imp$k_stx=2
                           FFFFFFFF  0057   134 imp$k_eof=-1
                           FFFFFFFE  0057   135 imp$k_eor=-2
                           00000009  0057   136 imp$k_tab=9
                           00000002  0057   137 imp$m_exptab=2
                           00000004  0057   138 imp$m_disecho=4
                           FFFFFFFF  0057   139 imp$k_true=-1
                           00000000  0057   140 imp$k_false=0
                                     0057   141 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   6
V1-01                           Symbol definitions                       15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                 00000000   143 .psect $_codearea,nowrt,exe,shr,pic,rel,con
                                     0000   144 
                                     0000   145 .sbttl ERROR HANDLER
                                     0000   146 
                               040C  0000   147 imp$ioerror: .word ^m<r2,r3,r10>
                    5A   04 AC   D0  0002   148         movl 4(ap),r10
                            22   13  0006   149         beql form_mess
                    52   08 AA   D0  0008   150         movl 8(r10),r2
                   00000000'EF   95  000C   151         tstb imp$l_going
                            09   12  0012   152         bneq ok
                            52   DD  0014   153         pushl r2
              00000000'GF   01   FB  0016   154         calls #1,g^lib$signal
                            53   D4  001D   155 ok:	clrl r3
                       01   6A   91  001F   156         cmpb rab$b_bid(r10),#rab$c_bid
                            06   12  0022   157         bneq form_mess
                            53   D6  0024   158 	incl r3
                    5A   3C AA   D0  0026   159         movl rab$l_fab(r10),r10
                                     002A   160 form_mess:
                            5A   DD  002A   161         pushl r10
                   00000000'EF   9F  002C   162         pushab errormessage
              0000025F'EF   02   FB  0032   163         calls #2,imp$getfilnam
                            53   D5  0039   164 	tstl r3
                            09   12  003B   165 	bneq 1$
                            5A   DD  003D   166 	pushl r10
              000000E3'EF   01   FB  003F   167 	calls #1,dumpfab
                       50   09   D0  0046   168 1$:     movl #9,r0
                       51   03   D0  0049   169         movl #3,r1
                   00000000'EF   16  004C   170         jsb $_p
                                     0052   171 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   7
V1-01                           File block allocation                    15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0052   173 .SBTTL  File block allocation
                                     0052   174 
                                     0052   175         .macro get_fab
                                     0052   176                 calls #0,getfab
                                     0052   177         .endm get_fab
                                     0052   178 
                               043C  0052   179 .entry getfab,^m<r2,r3,r4,r5,r10>
                                     0054   180    ; Grab space for file block
                       5E   04   C2  0054   181         subl #4,sp
              7E   000003D0 8F   D0  0057   182         movl #imp$v_fabsz,-(sp)
                         04 AE   DF  005E   183         pushal 4(sp)
                         04 AE   DF  0061   184         pushal 4(sp)
              00000000'GF   02   FB  0064   185         calls #2,g^lib$get_vm
                    5A   04 AE   D0  006B   186         movl 4(sp),r10
                                     006F   187 
                                     006F   188    ;  Copy over skeleton
    6A   00000000'EF   03D0 8F   28  006F   189         movc3 #imp$v_fabsz,startskel,(r10)
                                     0079   190    ;  Initialise block
                                     0079   191         $fab_store fab=r10,nam=imp$o_nam(r10),xab=imp$o_xpro(r10),-
                                     0079   192                 fna=imp$o_fna(r10),dna=imp$_defnam
                                     0093   193         $rab_store rab=imp$o_rab(r10),fab=(r10),rhb=imp$o_prn(r10),-
                                     0093   194                            pbf=imp$o_pmt(r10),rop=pmt
                                     00AF   195 
                                     00AF   196         $nam_store nam=imp$o_nam(r10),rsa=imp$o_rsa(r10),esa=imp$o_esa(r10)
                                     00C0   197         $xabpro_store xab=imp$o_xpro(r10)
                                     00C5   198 ;        $xabpro_store xab=imp$o_xpro(r10),-
                                     00C5   199 ;                         nxt=imp$o_xall(r10)
                                     00C5   200 ;        $xaball_store xab=imp$o_xall(r10),nxt=imp$o_xfhc(r10)
                                     00C5   201 ;        $xabfhc_store xab=imp$o_xfhc(r10)
                                     00C5   202 ;        $xabdat_store xab=imp$o_xdat(r10),nxt=imp$o_xrdt(r10)
                                     00C5   203 ;        $xabrdt_store xab=imp$o_xrdt(r10)
                                     00C5   204 
                                     00C5   205    ; Grab space for buffer
                    7E   70 AA   3C  00C5   206         movzwl imp$o_rab+rab$w_usz(r10),-(sp)
                            6E   D6  00C9   207         incl (sp)
                       50   5E   D0  00CB   208         movl sp,r0
                         74 AA   DF  00CE   209         pushal imp$o_rab+rab$l_ubf(r10)
                            50   DD  00D1   210         pushl r0
              00000000'GF   02   FB  00D3   211         calls #2,g^lib$get_vm
                 78 AA   74 AA   D0  00DA   212         movl imp$o_rab+rab$l_ubf(r10),imp$o_rab+rab$l_rbf(r10)
                                     00DF   213 
                                     00DF   214    ; Return -> start of file block as result
                       50   5A   D0  00DF   215         movl r10,r0
                                 04  00E2   216         ret
                                     00E3   217 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   8
V1-01                           File Block deallocation                  15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     00E3   219 .SBTTL File Block deallocation
                                     00E3   220 
                                     00E3   221         .macro dump_fab addr
                                     00E3   222                 pushl addr
                                     00E3   223                 calls #1,dumpfab
                                     00E3   224         .endm dump_fab
                                     00E3   225 
                               0400  00E3   226 .entry dumpfab,^m<r10>
                    5A   04 AC   D0  00E5   227         movl 4(ap),r10
                            27   13  00E9   228 	beql 1$
                    7E   70 AA   3C  00EB   229         movzwl imp$o_rab+rab$w_usz(r10),-(sp)
                            6E   D6  00EF   230         incl (sp)
                         74 AA   DF  00F1   231         pushal imp$o_rab+rab$l_ubf(r10)
                         04 AE   DF  00F4   232         pushal 4(sp)
              00000000'GF   02   FB  00F7   233         calls #2,g^lib$free_vm
              7E   000003D0 8F   D0  00FE   234         movl #imp$v_fabsz,-(sp)
                         04 AC   DF  0105   235         pushal 4(ap)
                         04 AE   DF  0108   236         pushal 4(sp)
              00000000'GF   02   FB  010B   237         calls #2,g^lib$free_vm
                                 04  0112   238 1$:     ret
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page   9
V1-01                           File block initialisation                15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0113   240 .SBTTL  File block initialisation
                                     0113   241 
                                     0113   242         .macro set_fab file,func
                                     0113   243                 pushab file
                                     0113   244                 pushl  func
                                     0113   245                 calls #2,setupfab
                                     0113   246         .endm set_fab
                                     0113   247 
                               07FC  0113   248 .entry setupfab,^m<r2,r3,r4,r5,r6,r7,r8,r9,r10>
                                     0115   249 
                            00   DD  0115   250         pushl #0
                       56   5E   D0  0117   251 	movl sp,r6
                                     011A   252 
                                     011A   253    ;  Set up file name descriptor
                    59   08 AC   D0  011A   254         movl 8(ap),r9
                       58   89   9A  011E   255         movzbl (r9)+,r8
                            09   12  0121   256         bneq 2$
                                     0123   257         get_fab
                         34 A0   94  0128   258         clrb fab$b_fns(r0)
                                 04  012B   259         ret
                                     012C   260 
                                     012C   261 2$:
                                     012C   262    ;  Tranlate name (to deal with .n, .null and .tt)
                       5E   58   C2  012C   263         subl r8,sp
                            5E   DD  012F   264         pushl sp
                            58   DD  0131   265         pushl r8
    00000000'EF   00   69   58   2E  0133   266         movtc r8,(r9),#0,ttable,r8,8(sp)
                    08 AE   58       013C       
                    59   08 AE   DE  013F   267         moval 8(sp),r9
                                     0143   268 
                                     0143   269 trnxt:  
                                     0143   270      ;  Check for [-] type directory spec
               69   58   5D 8F   3A  0143   271 	locc #^a/]/,r8,(r9)
                            08   13  0148   272 	beql 10$
                  61   50   2D   3A  014A   273 	locc #^a/-/,r0,(r1)
                            17   13  014E   274 	beql notype
                            06   11  0150   275 	brb 11$
                  69   58   2D   3A  0152   276 10$:    locc #^a/-/,r8,(r9)
                            0F   13  0156   277         beql notype
                       58   50   82  0158   278 11$:    subb r0,r8
                            66   95  015B   279         tstb (r6)
                            08   12  015D   280         bneq notype
                    56   01 A1   DE  015F   281 	moval 1(r1),r6
                  57   50   02   C3  0163   282 	subl3 #2,r0,r7
                                     0167   283 
                                     0167   284 notype: 
              5E   0000007F 8F   C2  0167   285         subl #127,sp
                            5E   DD  016E   286         pushl sp
                   0000007F 8F   DD  0170   287         pushl #127
                       5A   5E   D0  0176   288         movl sp,r10
                                     0179   289         $trnlog_s -8(r9),(r10),(r10)
              00000000'8F   50   D1  018D   290         cmpl r0,#ss$_notran
                            16   13  0194   291         beql trdone
                    1B   04 BA   91  0196   292         cmpb @4(r10),#^x1B       ;escape?
                            10   13  019A   293         beql trdone
                       58   6A   7D  019C   294         movq (r10),r8
    00000000'EF   00   69   58   2E  019F   295         movtc r8,(r9),#0,ttable,r8,(r9)
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  10
V1-01                           File block initialisation                15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                       69   58       01A8       
                            97   11  01AA   296         brb trnxt
                                     01AC   297 
                                     01AC   298 trdone:
                       79   58   90  01AC   299         movb r8,-(r9)
                                     01AF   300 
      01 A9   00000015'EF   03   29  01AF   301         cmpc3 #3,imp$s_sysnl,1(r9)
                            06   12  01B8   302 	bneq $t1
                   0000025C'EF   17  01BA   303 	jmp null
         69   00000026'EF   58   29  01C0   304 $t1:	cmpc3 r8,imp$s_null1,(r9)
                            06   12  01C8   305 	bneq $t2
                   0000025C'EF   17  01CA   306 	jmp null
         69   0000002C'EF   58   29  01D0   307 $t2:	cmpc3 r8,imp$s_null2,(r9)
                            06   12  01D8   308 	bneq $t3
                   0000025C'EF   17  01DA   309 	jmp null
                                     01E0   310 $t3:
                                     01E0   311         get_fab
                       5A   50   D0  01E5   312         movl r0,r10
                 16 AA   04 AC   90  01E8   313         movb 4(ap),fab$b_fac(r10)
                                     01ED   314 
                    66   46 8F   91  01ED   315 	cmpb #^a/F/,(r6)
                            29   12  01F1   316 	bneq $t4
                            56   D6  01F3   317 	incl r6
                            51   D4  01F5   318 	clrl r1
                            50   D4  01F7   319 	clrl r0
                            57   D5  01F9   320 $f1:	tstl r7
                            0E   15  01FB   321 	bleq $f2
                  50   86   30   83  01FD   322 	subb3 #^a/0/,(r6)+,r0
                       51   0A   C4  0201   323 	mull #10,r1
                       51   50   C0  0204   324 	addl r0,r1
                            57   D7  0207   325 	decl r7
                            EE   11  0209   326 	brb $f1
                                     020B   327 $f2:
                    36 AA   51   B0  020B   328 	movw r1,fab$w_mrs(r10)
                    70 AA   51   B0  020F   329 	movw r1,imp$o_rab+rab$w_usz(r10)
                    1F AA   01   90  0213   330 	movb #fab$c_fix,fab$b_rfm(r10)
                         1E AA   94  0217   331 	clrb fab$b_rat(r10)
                            11   11  021A   332 	brb $t5
                                     021C   333 
                    66   42 8F   91  021C   334 $t4:	cmpb #^a/B/,(r6)
                            0B   12  0220   335         bneq $t5
                         1E AA   B4  0222   336         clrw fab$b_rat(r10)
           54 AA   00000800 8F   C8  0225   337         bisl #rab$m_bio,imp$o_rab+rab$l_rop(r10)
         69   00000022'EF   58   29  022D   338 $t5:     cmpc3 r8,imp$s_tt,(r9)
                            14   12  0235   339         bneq end
              59   0000000A'EF   9E  0237   340         movab imp$s_sysout,r9
                    04 AC   01   93  023E   341         bitb #fab$m_put,4(ap)
                            07   12  0242   342         bneq end
              59   00000000'EF   9E  0244   343         movab imp$s_sysin,r9
                    34 AA   69   90  024B   344 end:    movb (r9),fab$b_fns(r10)
                       58   89   9A  024F   345         movzbl (r9)+,r8
             024A CA   69   58   28  0252   346         movc3 r8,(r9),imp$o_fna(r10)
                       50   5A   D0  0258   347         movl r10,r0
                                 04  025B   348         ret
                                     025C   349 
                            50   D4  025C   350 null:   clrl r0
                                 04  025E   351         ret
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  11
V1-01                           File block initialisation                15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     025F   352 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  12
V1-01                           File block initialisation                15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                               043C  025F   354 .entry imp$getfilnam,^m<r2,r3,r4,r5,r10>
                    5A   08 AC   D0  0261   355         movl 8(ap),r10
                            0C   12  0265   356         bneq 1$
              52   00000015'EF   9E  0267   357         movab imp$s_sysnl,r2
                       51   03   D0  026E   358         movl #3,r1
                            25   11  0271   359         brb get_nam
                  51   00EF CA   9A  0273   360 1$:     movzbl imp$o_nam+nam$b_rsl(r10),r1
                            07   13  0278   361         beql try_es
                  52   01CB CA   9E  027A   362         movab imp$o_rsa(r10),r2
                            17   11  027F   363         brb get_nam
                                     0281   364 try_es:
                  51   00F7 CA   9A  0281   365         movzbl imp$o_nam+nam$b_esl(r10),r1
                            07   13  0286   366         beql try_user
                  52   014C CA   9E  0288   367         movab imp$o_esa(r10),r2
                            09   11  028D   368         brb get_nam
                                     028F   369 try_user:
                    51   34 AA   9A  028F   370         movzbl fab$b_fns(r10),r1
                  52   024A CA   9E  0293   371         movab imp$o_fna(r10),r2
                                     0298   372 get_nam:
                    53   04 AC   D0  0298   373         movl 4(ap),r3
                    04 BC   51   90  029C   374         movb r1,@4(ap)
               01 A3   62   51   28  02A0   375         movc3 r1,(r2),1(r3)
                                 04  02A5   376         ret
                                     02A6   377 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  13
V1-01                           Input file procedures                    15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     02A6   379 .SBTTL  Input file procedures
                                     02A6   380 
                               0600  02A6   381 .entry openinput,^m<r9,r10>
          5A   04 AC   04   00   EF  02A8   382         extzv #0,#4,4(ap),r10
                       5A   04   C4  02AE   383         mull #4,r10
              50   00000418'EF   DE  02B1   384         moval imp$l_ttin,r0
                       5A   50   C0  02B8   385         addl r0,r10
                       59   6A   D0  02BB   386         movl (r10),r9
                            14   13  02BE   387         beql 10$
                                     02C0   388         $close fab=(r9),err=imp$ioerror
                                     02CD   389         dump_fab r9
                                     02D4   390 10$:    set_fab @8(ap),#fab$m_get+fab$m_bro
                                     02E2   391 ;        movl r0,(r10)
                       59   50   D0  02E2   392 	movl	r0,r9
                            36   13  02E5   393         beql 11$
                         1E A9   B4  02E7   394         clrw fab$b_rat(r9)          ; clear RAT & RFM
                  02CD C9   01   B0  02EA   395         movw #1,imp$o_pos(r9)
                                     02EF   396         $open fab=(r9)
                         36 50   E9  02F8   397 	blbc r0,operr
                    00   1F A9   91  02FB   398         cmpb fab$b_rfm(r9),#fab$c_udf
                            08   12  02FF   399         bneq 15$
           54 A9   00000800 8F   C8  0301   400         bisl #rab$m_bio,imp$o_rab+rab$l_rop(r9)
                                     0309   401 15$:    $connect rab=imp$o_rab(r9),err=imp$ioerror
                         17 50   E9  0317   402 	blbc r0,operr
                       50   59   D0  031A   403         movl r9,r0
                       6A   50   D0  031D   404 11$:	movl r0,(r10);*********************
              0000049C'EF   5A   D1  0320   405         cmpl r10,imp$a_inaddr
                            07   12  0327   406         bneq 12$
              00000498'EF   6A   D0  0329   407         movl (r10),imp$l_infab
                                 04  0330   408 12$:    ret
                            69   DF  0331   409 operr:	pushal (r9)
                  FCC8 CF   01   FB  0333   410 	calls #1,imp$ioerror
                                 04  0338   411 	ret
                                     0339   412 
                               0400  0339   413 .entry closeinput,^m<r10>
              5A   00000498'EF   D0  033B   414         movl imp$l_infab,r10
                            28   13  0342   415         beql 10$
                   000004A8'EF   D5  0344   416 	tstl imp$l_instream
                            20   13  034A   417 	beql 10$
                                     034C   418         $close fab=(r10),err=imp$ioerror
                                     0359   419         dump_fab r10
                   00000498'EF   D4  0360   420         clrl imp$l_infab
                   0000049C'FF   D4  0366   421         clrl @imp$a_inaddr
                                 04  036C   422 10$:    ret
                                     036D   423 
                               0000  036D   424 .entry resetinput,^m<>
              50   00000498'EF   D0  036F   425         movl imp$l_infab,r0
                            20   13  0376   426         beql 10$
           40 A0   00000000'8F   D3  0378   427         bitl #dev$m_fod,fab$l_dev(r0)
                            16   13  0380   428         beql 10$
                  02CD C0   01   B0  0382   429         movw #1,imp$o_pos(r0)
                         72 A0   B4  0387   430 	clrw imp$o_rab+rab$w_rsz(r0)
                                     038A   431         $rewind rab=imp$o_rab(r0),err=imp$ioerror
                                 04  0398   432 10$:    ret
                                     0399   433 
                               0000  0399   434 .entry selectinput,^m<>
          50   04 AC   04   00   EF  039B   435         extzv #0,#4,4(ap),r0
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  14
V1-01                           Input file procedures                    15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

              000004A8'EF   50   D0  03A1   436         movl r0,imp$l_instream
                       50   04   C4  03A8   437         mull #4,r0
              51   00000418'EF   DE  03AB   438         moval imp$l_ttin,r1
                       50   51   C0  03B2   439         addl r1,r0
              00000498'EF   60   D0  03B5   440         movl (r0),imp$l_infab
              0000049C'EF   50   D0  03BC   441         movl r0,imp$a_inaddr
                                 04  03C3   442         ret
                                     03C4   443 
                               043C  03C4   444 .entry prompt,^m<r2,r3,r4,r5,r10>
              5A   00000498'EF   D0  03C6   445         movl imp$l_infab,r10
                            14   13  03CD   446         beql 10$
                    51   04 AC   D0  03CF   447         movl 4(ap),r1
                       50   81   9A  03D3   448         movzbl (r1)+,r0
             02D3 CA   61   50   28  03D6   449         movc3 r0,(r1),imp$o_pmt+2(r10)
          0084 CA   04 BC   02   81  03DC   450         addb3 #2,@4(ap),imp$o_rab+rab$b_psz(r10)
                                 04  03E3   451 10$:    ret
                                     03E4   452 
                               0000  03E4   453 .entry noprompt,^m<>
              51   00000498'EF   D0  03E6   454 	movl imp$l_infab,r1
                            0C   13  03ED   455 	beql 10$
                       0084 C1   94  03EF   456 	clrb imp$o_rab+rab$b_psz(r1)
           54 A1   40000000 8F   CA  03F3   457 	bicl #rab$m_pmt,imp$o_rab+rab$l_rop(r1)
                                 04  03FB   458 10$:	ret
                                     03FC   459 
                               043C  03FC   460 .entry currentprompt,^m<r2,r3,r4,r5,r10>
                         04 BC   94  03FE   461         clrb @4(ap)
              5A   00000498'EF   D0  0401   462         movl imp$l_infab,r10
                            14   13  0408   463         beql 10$
                    55   04 AC   D0  040A   464         movl 4(ap),r5
             65   0084 CA   02   83  040E   465         subb3 #2,imp$o_rab+rab$b_psz(r10),(r5)
                       54   65   9A  0414   466         movzbl (r5),r4
          01 A5   02D3 CA   54   28  0417   467         movc3 r4,imp$o_pmt+2(r10),1(r5)
                                 04  041E   468 10$:    ret
                                     041F   469 
                               0000  041F   470 .entry disableeof,^m<>
                                 04  0421   471 	ret
                                     0422   472 
                               0000  0422   473 .entry enableeof,^m<>
                                 04  0424   474 	ret
                                     0425   475 
                               0000  0425   476 .entry suppressecho,^m<>
              50   00000498'EF   D0  0427   477         movl imp$l_infab,r0
                            08   13  042E   478         beql 10$
           54 A0   01000000 8F   C8  0430   479         bisl #rab$m_rne,imp$o_rab+rab$l_rop(r0)
                                 04  0438   480 10$:    ret
                                     0439   481 
                               0000  0439   482 .entry enableecho,^m<>
              50   00000498'EF   D0  043B   483         movl imp$l_infab,r0
                            0C   13  0442   484         beql 10$
           54 A0   01000000 8F   CA  0444   485         bicl #rab$m_rne,imp$o_rab+rab$l_rop(r0)
                    54 A0   04   CA  044C   486 	bicl #imp$m_disecho,imp$o_rab+rab$l_rop(r0)
                                 04  0450   487 10$:    ret
                                     0451   488 
                               0000  0451   489 .entry disableecho,^m<>
              50   00000498'EF   D0  0453   490 	movl imp$l_infab,r0
                            0C   13  045A   491 	beql 10$
                    68 A0   04   C8  045C   492 	bisl #imp$m_disecho,imp$o_rab+rab$l_ctx(r0)
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  15
V1-01                           Input file procedures                    15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

           54 A0   01000000 8F   C8  0460   493 	bisl #rab$m_rne,imp$o_rab+rab$l_rop(r0)
                                 04  0468   494 10$:	ret
                                     0469   495 
                               0000  0469   496 .entry expandtabs,^m<>
              51   00000498'EF   D0  046B   497 	movl imp$l_infab,r1
                            09   13  0472   498 	beql 1$
                    68 A1   02   C8  0474   499 	bisl #imp$m_exptab,imp$o_rab+rab$l_ctx(r1)
                  02CF C1   08   B0  0478   500 	movw #8,imp$o_tabcnt(r1)
                                 04  047D   501 1$:	ret
                                     047E   502 
                               0000  047E   503 .entry passtabs,^m<>
              51   00000498'EF   D0  0480   504 	movl imp$l_infab,r1
                            08   13  0487   505 	beql 1$
                    68 A1   02   D3  0489   506 	bitl #imp$m_exptab,imp$o_rab+rab$l_ctx(r1)
                       02CF C1   B4  048D   507 	clrw imp$o_tabcnt(r1)
                                 04  0491   508 1$:	ret
                                     0492   509 
                               0000  0492   510 .entry infilename,^m<>
                   00000498'EF   DD  0494   511         pushl imp$l_infab
                         04 AC   DD  049A   512         pushl 4(ap)
                  FDBD CF   02   FB  049D   513         calls #2,imp$getfilnam
                                 04  04A2   514 1$:     ret
                                     04A3   515 
                               0000  04A3   516 .entry instream,^m<>
              50   000004A8'EF   D0  04A5   517         movl imp$l_instream,r0
                                 04  04AC   518         ret
                               0000  04AD   519 .entry inpos,^m<>
              50   00000498'EF   D0  04AF   520         movl imp$l_infab,r0
                            05   13  04B6   521         beql 10$
                  50   02CD C0   3C  04B8   522         movzwl imp$o_pos(r0),r0
                                 04  04BD   523 10$:    ret
                                     04BE   524 
                               0004  04BE   525 .entry intype,^m<r2>
                            50   D4  04C0   526         clrl r0
              51   00000498'EF   D0  04C2   527         movl imp$l_infab,r1
                            18   13  04C9   528         beql 1$
                    52   40 A1   D0  04CB   529         movl fab$l_dev(r1),r2
              52   00000000'8F   D3  04CF   530         bitl #dev$m_fod,r2
                            0C   13  04D6   531         beql 2$
                       50   01   D0  04D8   532         movl #1,r0
                    00   1F A1   91  04DB   533 	cmpb fab$b_rfm(r1),#fab$c_udf
                            02   12  04DF   534 	bneq 1$
                            50   D6  04E1   535 	incl r0
                                 04  04E3   536 1$:	ret
              50   FFFFFFFF 8F   D0  04E4   537 2$:	movl #-1,r0
              52   00000000'8F   D3  04EB   538 	bitl #dev$m_trm,r2
                            02   12  04F2   539 	bneq 3$
                            50   D7  04F4   540 	decl r0
                                 04  04F6   541 3$:     ret
                                     04F7   542 
                               0000  04F7   543 .entry digit,^m<>
                       50   00   D0  04F9   544 	movl #imp$k_false,r0
                    30   04 AC   D1  04FC   545 	cmpl 4(ap),#^a/0/
                            0D   19  0500   546 	blss 1$
                    39   04 AC   D1  0502   547 	cmpl 4(ap),#^a/9/
                            07   14  0506   548 	bgtr 1$
              50   FFFFFFFF 8F   D0  0508   549 	movl #imp$k_true,r0
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  16
V1-01                           Input file procedures                    15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                 04  050F   550 1$:	ret
                                     0510   551 
                               0000  0510   552 .entry letter,^m<>
                    51   04 AC   D0  0512   553 	movl 4(ap),r1
                       51   10   C8  0516   554 	bisl #16,r1
                       50   00   D0  0519   555 	movl #imp$k_false,r0
              00000061 8F   51   D1  051C   556 	cmpl r1,#^a/a/
                            10   19  0523   557 	blss 1$
              0000007A 8F   51   D1  0525   558 	cmpl r1,#^a/z/
                            07   14  052C   559 	bgtr 1$
              50   FFFFFFFF 8F   D0  052E   560 	movl #imp$k_true,r0
                                 04  0535   561 1$:	ret
                                     0536   562 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  17
V1-01                           Output file procedures                   15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0536   564 .SBTTL  Output file procedures
                                     0536   565 
                               060C  0536   566 .entry openoutput,^m<r2,r3,r9,r10>
          5A   04 AC   04   00   EF  0538   567         extzv #0,#4,4(ap),r10
                       5A   04   C4  053E   568         mull #4,r10
              50   00000458'EF   DE  0541   569         moval imp$l_ttout,r0
                       5A   50   C0  0548   570         addl r0,r10
              00000458'EF   6A   D1  054B   571 	cmpl (r10),imp$l_ttout
                            05   12  0552   572 	bneq 1$
                       5A   50   D1  0554   573 	cmpl r0,r10
                            26   12  0557   574 	bneq 10$
                       59   6A   D0  0559   575 1$:     movl (r10),r9
                            21   13  055C   576         beql 10$
              50   FFFFFFFF 8F   D0  055E   577         movl #imp$k_eof,r0
                   00000A82'EF   16  0565   578         jsb $_v
                                     056B   579         $close fab=(r9),err=imp$ioerror
                                     0578   580         dump_fab r9
                                     057F   581 10$:    set_fab @8(ap),#fab$m_put+fab$m_bro
                                     058D   582 ;        movl r0,(r10)
                       59   50   D0  058D   583 	movl	r0,r9
                            1C   13  0590   584         beql 11$
                                     0592   585         $create fab=(r9)
                         24 50   E9  059B   586 	blbc r0,opoerr
                                     059E   587         $connect rab=imp$o_rab(r9)
                         17 50   E9  05A8   588 	blbc r0,opoerr
                       50   59   D0  05AB   589         movl r9,r0
                       6A   50   D0  05AE   590 11$:	movl	r0,(r10)
              5A   000004A4'EF   D1  05B1   591         cmpl imp$a_outaddr,r10
                            07   12  05B8   592         bneq 12$
              000004A0'EF   6A   D0  05BA   593         movl (r10),imp$l_outfab
                                 04  05C1   594 12$:    ret
                            69   DF  05C2   595 opoerr:pushal (r9)
                  FA37 CF   01   FB  05C4   596 	calls #1,imp$ioerror
                                 04  05C9   597 	ret
                                     05CA   598 
                               060C  05CA   599 .entry openappend,^m<r2,r3,r9,r10>
          5A   04 AC   04   00   EF  05CC   600         extzv #0,#4,4(ap),r10
                       5A   04   C4  05D2   601         mull #4,r10
              50   00000458'EF   DE  05D5   602         moval imp$l_ttout,r0
                       5A   50   C0  05DC   603         addl r0,r10
              00000458'EF   6A   D1  05DF   604 	cmpl (r10),imp$l_ttout
                            05   12  05E6   605 	bneq 1$
                       5A   50   D1  05E8   606 	cmpl r0,r10
                            26   12  05EB   607 	bneq 10$
                       59   6A   D0  05ED   608 1$:     movl (r10),r9
                            21   13  05F0   609         beql 10$
              50   FFFFFFFF 8F   D0  05F2   610         movl #imp$k_eof,r0
                   00000A82'EF   16  05F9   611         jsb $_v
                                     05FF   612         $close fab=(r9),err=imp$ioerror
                                     060C   613         dump_fab r9
                                     0613   614 10$:    set_fab @8(ap),#fab$m_put+fab$m_bro
                                     0621   615 ;        movl r0,(r10)
                       59   50   D0  0621   616 	movl	r0,r9
                            38   13  0624   617         beql 11$
           04 A9   02000000 8F   C8  0626   618         bisl #fab$m_cif,fab$l_fop(r9)
           54 A9   00000100 8F   C8  062E   619         bisl #rab$m_eof,imp$o_rab+rab$l_rop(r9)
                                     0636   620         $create fab=(r9)
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  18
V1-01                           Output file procedures                   15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                         04 50   E8  063F   621 	blbs r0,29$
                       FF7C CF   17  0642   622 	jmp opoerr
                                     0646   623 29$:    $connect rab=imp$o_rab(r9),err=imp$ioerror
                         04 50   E8  0654   624 	blbs r0,48$
                       FF67 CF   17  0657   625 	jmp opoerr
                       50   59   D0  065B   626 48$:    movl r9,r0
                       6A   50   D0  065E   627 11$:	movl	r0,(r10)
              5A   000004A4'EF   D1  0661   628         cmpl imp$a_outaddr,r10
                            07   12  0668   629         bneq 12$
              000004A0'EF   6A   D0  066A   630         movl (r10),imp$l_outfab
                                 04  0671   631 12$:    ret
                                     0672   632 
                               040C  0672   633 .entry closeoutput,^m<r2,r3,r10>
              5A   000004A0'EF   D0  0674   634         movl imp$l_outfab,r10
                            3E   13  067B   635         beql 10$
              50   FFFFFFFF 8F   D0  067D   636 1$:     movl #imp$k_eof,r0
                   00000A82'EF   16  0684   637         jsb $_v
                   000004AC'EF   D5  068A   638 	tstl imp$l_outstream
                            29   13  0690   639 	beql 10$
              00000458'EF   5A   D1  0692   640 	cmpl r10,imp$l_ttout
                            20   13  0699   641 	beql 10$
                                     069B   642         $close fab=(r10),err=imp$ioerror
                                     06A8   643         dump_fab r10
                   000004A0'EF   D4  06AF   644         clrl imp$l_outfab
                   000004A4'FF   D4  06B5   645         clrl @imp$a_outaddr
                                 04  06BB   646 10$:    ret
                                     06BC   647 
                               0400  06BC   648 .entry abandonoutput,^m<r10>
              5A   000004A0'EF   D0  06BE   649         movl imp$l_outfab,r10
                            30   13  06C5   650         beql 10$
                   000004AC'EF   D5  06C7   651 	tstl imp$l_outstream
                            28   13  06CD   652 	beql 10$
           04 AA   00008000 8F   C8  06CF   653 	bisl #fab$m_dlt,fab$l_fop(r10)
                                     06D7   654         $close fab=(r10),err=imp$ioerror
                                     06E4   655         dump_fab r10
                   000004A0'EF   D4  06EB   656         clrl imp$l_outfab
                   000004A4'FF   D4  06F1   657         clrl @imp$a_outaddr
                                 04  06F7   658 10$:    ret
                               0000  06F8   659 .entry resetoutput,^m<>
              50   000004A0'EF   D0  06FA   660         movl imp$l_outfab,r0
                            1B   13  0701   661         beql 10$
           40 A0   00000000'8F   D3  0703   662         bitl #dev$m_fod,fab$l_dev(r0)
                            11   13  070B   663         beql 10$
                         72 A0   B4  070D   664         clrw imp$o_rab+rab$w_rsz(r0)
                                     0710   665         $rewind rab=imp$o_rab(r0),err=imp$ioerror
                                 04  071E   666 10$:    ret
                                     071F   667 
                               0000  071F   668 .entry setmargin,^m<>
          51   04 AC   04   00   EF  0721   669         extzv #0,#4,4(ap),r1
                       51   04   C4  0727   670         mull #4,r1
              50   00000458'EF   DE  072A   671         moval imp$l_ttout,r0
                       51   50   C0  0731   672         addl r0,r1
                       51   61   D0  0734   673         movl (r1),r1
                            0C   13  0737   674         beql 1$
                 72 A1   08 AC   D1  0739   675         cmpl 8(ap),imp$o_rab+rab$w_rsz(r1)
                            05   14  073E   676         bgtr 1$
                 72 A1   08 AC   F7  0740   677         cvtlw 8(ap),imp$o_rab+rab$w_rsz(r1)
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  19
V1-01                           Output file procedures                   15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                 04  0745   678 1$:     ret
                                     0746   679 
                               0000  0746   680 .entry selectoutput,^m<>
          50   04 AC   04   00   EF  0748   681         extzv #0,#4,4(ap),r0
              000004AC'EF   50   D0  074E   682         movl r0,imp$l_outstream
                       50   04   C4  0755   683         mull #4,r0
              51   00000458'EF   DE  0758   684         moval imp$l_ttout,r1
                       50   51   C0  075F   685         addl r1,r0
              000004A0'EF   60   D0  0762   686         movl (r0),imp$l_outfab
              000004A4'EF   50   D0  0769   687         movl r0,imp$a_outaddr
                                 04  0770   688         ret
                                     0771   689 
                               0000  0771   690 .entry outfilename,^m<>
                   000004A0'EF   DD  0773   691         pushl imp$l_outfab
                         04 AC   DD  0779   692         pushl 4(ap)
                  FADE CF   02   FB  077C   693         calls #2,imp$getfilnam
                                 04  0781   694 1$:     ret
                                     0782   695 
                               0000  0782   696 .entry outstream,^m<>
              50   000004AC'EF   D0  0784   697         movl imp$l_outstream,r0
                                 04  078B   698         ret
                               0000  078C   699 .entry outpos,^m<>
              50   000004A0'EF   D0  078E   700         movl imp$l_outfab,r0
                            04   13  0795   701         beql 10$
                    50   72 A0   3C  0797   702         movzwl imp$o_rab+rab$w_rsz(r0),r0
                                 04  079B   703 10$:    ret
                                     079C   704 
                               0004  079C   705 .entry outtype,^m<r2>
                            50   D4  079E   706         clrl r0
              51   000004A0'EF   D0  07A0   707         movl imp$l_outfab,r1
                            18   13  07A7   708         beql 1$
                    52   40 A1   D0  07A9   709         movl fab$l_dev(r1),r2
              52   00000000'8F   D3  07AD   710         bitl #dev$m_fod,r2
                            0C   13  07B4   711         beql 2$
                       50   01   D0  07B6   712         movl #1,r0
                    00   1F A1   91  07B9   713 	cmpb fab$b_rfm(r1),#fab$c_udf
                            02   12  07BD   714 	bneq 1$
                            50   D6  07BF   715 	incl r0
                                 04  07C1   716 1$:	ret
              50   FFFFFFFF 8F   D0  07C2   717 2$:	movl #-1,r0
              52   00000000'8F   D3  07C9   718 	bitl #dev$m_trm,r2
                            02   12  07D0   719 	bneq 3$
                            50   D7  07D2   720 	decl r0
                                 04  07D4   721 3$:     ret
                                     07D5   722 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  20
V1-01                           Character input routines                 15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     07D5   724 .SBTTL Character input routines
                                     07D5   725 
                               000C  07D5   726 .entry readch,^m<r2,r3>
                   000007F8'EF   16  07D7   727         jsb $_t
                    04 BC   50   D0  07DD   728         movl r0,@4(ap)
                                 04  07E1   729         ret
                                     07E2   730 
              000004B0'EF   01   8A  07E2   731 $_u::	bicb #1,imp$b_rdtype
              53   00000498'EF   D0  07E9   732 	movl imp$l_infab,r3
                            1C   12  07F0   733 	bneq rdon
                   0000094E'EF   17  07F2   734 	jmp eofin
              000004B0'EF   01   88  07F8   735 $_t::	bisb #1,imp$b_rdtype
              53   00000498'EF   D0  07FF   736 	movl imp$l_infab,r3
                            06   12  0806   737 	bneq rdon
                   0000094E'EF   17  0808   738 	jmp eofin
                    00   1F A3   91  080E   739 rdon:   cmpb fab$b_rfm(r3),#fab$c_udf
                            0A   13  0812   740         beql bin
           54 A3   00000800 8F   D3  0814   741         bitl #rab$m_bio,imp$o_rab+rab$l_rop(r3)
                            27   13  081C   742         beql chktab
               72 A3   02CD C3   B1  081E   743 bin:    cmpw imp$o_pos(r3),imp$o_rab+rab$w_rsz(r3)
                            06   18  0824   744         bgeq 41$
                   000008B8'EF   17  0826   745 	jmp getch
                                     082C   746 41$:    $read rab=imp$o_rab(r3)
                         06 50   E8  0836   747         blbs r0,3$
                   0000093D'EF   17  0839   748         jmp rderr
                       02CD C3   B4  083F   749 3$:     clrw imp$o_pos(r3)
                            73   11  0843   750         brb getch
                    68 A3   02   D3  0845   751 chktab: bitl #imp$m_exptab,imp$o_rab+rab$l_ctx(r3)
                            06   13  0849   752 	beql chkeor
                   000008E3'EF   17  084B   753 	jmp exptab
               72 A3   02CD C3   B1  0851   754 chkeor:  cmpw imp$o_pos(r3),imp$o_rab+rab$w_rsz(r3)
                            5F   19  0857   755         blss getch
                            06   12  0859   756         bneq 5$
                   000008F6'EF   17  085B   757         jmp eofr
                                     0861   758 5$:     $get rab=imp$o_rab(r3)
              00000000'8F   50   D1  086B   759 	cmpl r0,#rms$_rer
                            ED   13  0872   760 	beql 5$
                    68 A3   04   D3  0874   761 	bitl #imp$m_disecho,imp$o_rab+rab$l_ctx(r3)
                            08   12  0878   762 	bneq 61$
           54 A3   01000000 8F   CA  087A   763         bicl #rab$m_rne,imp$o_rab+rab$l_rop(r3)
                         06 50   E8  0882   764 61$:    blbs r0,4$
                   0000093D'EF   17  0885   765         jmp rderr
                       02CD C3   B4  088B   766 4$:     clrw imp$o_pos(r3)
                    1E A3   01   93  088F   767         bitb #fab$m_ftn,fab$b_rat(r3)
                            1B   13  0893   768         beql 10$
                    52   78 B3   9A  0895   769         movzbl @imp$o_rab+rab$l_rbf(r3),r2
                  02CC C3   52   90  0899   770         movb r2,imp$o_ftn(r3)
                       30   52   91  089E   771         cmpb r2,#^a/0/
                            53   13  08A1   772         beql eofr
                       02CD C3   B6  08A3   773         incw imp$o_pos(r3)
                       31   52   91  08A7   774         cmpb r2,#^a/1/
                            04   12  08AA   775         bneq 10$
                       50   0C   D0  08AC   776         movl #12,r0
                                 05  08AF   777         rsb
               72 A3   02CD C3   B1  08B0   778 10$:    cmpw imp$o_pos(r3),imp$o_rab+rab$w_rsz(r3)
                            3E   13  08B6   779         beql eofr
                  50   02CD C3   3C  08B8   780 getch:     movzwl imp$o_pos(r3),r0
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  21
V1-01                           Character input routines                 15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                    52   78 A3   D0  08BD   781         movl imp$o_rab+rab$l_rbf(r3),r2
                     50   6240   9A  08C1   782         movzbl (r2)[r0],r0
                       02CD C3   B6  08C5   783         incw imp$o_pos(r3)
                       09   50   91  08C9   784 	cmpb r0,#imp$k_tab
                            01   13  08CC   785 	beql tabch
                                 05  08CE   786 	rsb
                    68 A3   02   D3  08CF   787 tabch:	bitl #imp$m_exptab,imp$o_rab+rab$l_ctx(r3)
                            01   12  08D3   788 	bneq 6$
                                 05  08D5   789 	rsb
        02CF C3   02CD C3   01   83  08D6   790 6$:	subb3 #1,imp$o_pos(r3),imp$o_tabcnt(r3)
                  02CF C3   08   CA  08DE   791 	bicl #8,imp$o_tabcnt(r3)
                  02CF C3   08   93  08E3   792 exptab:bitb #8,imp$o_tabcnt(r3)
                            04   13  08E8   793 	beql gensp
                       FF63 CF   17  08EA   794 	jmp chkeor
                       50   20   D0  08EE   795 gensp: movl #^a/ /,r0
                       02CF C3   96  08F1   796 	incb imp$o_tabcnt(r3)
                                 05  08F5   797 	rsb
                                     08F6   798 
                       02CD C3   B6  08F6   799 eofr:    incw imp$o_pos(r3)
                                     08FA   800 ;	clrw imp$o_rab+rab$w_rsz(r3)
           40 A3   00000000'8F   D3  08FA   801         bitl #dev$m_trm,fab$l_dev(r3)
                            24   12  0902   802         bneq er
                         1E A3   95  0904   803         tstb fab$b_rat(r3)
                            04   12  0907   804 	bneq 12$
                       FF44 CF   17  0909   805 	jmp chkeor
                    1E A3   01   93  090D   806 12$:    bitb #fab$m_ftn,fab$b_rat(r3)
                            15   13  0911   807         beql er
                  24   02CC C3   91  0913   808         cmpb imp$o_ftn(r3),#^a/$/
                            04   12  0918   809         bneq 2$
                       FF33 CF   17  091A   810         jmp chkeor
                  2B   02CC C3   91  091E   811 2$:     cmpb imp$o_ftn(r3),#^a/+/
                            03   12  0923   812         bneq er
                                     0925   813 ;        movl #13,r0
                            01   11  0925   814 	BRB ER
                                 05  0927   815         rsb
                       50   0A   D0  0928   816 er:     movl #imp$k_lf,r0
              000004B0'EF   01   93  092B   817 	bitb #1,imp$b_rdtype
                            01   12  0932   818         bneq 15$
                                 05  0934   819         rsb
              50   FFFFFFFE 8F   D0  0935   820 15$:    movl #imp$k_eor,r0
                                 05  093C   821         rsb
                                     093D   822 
              00000000'8F   50   D1  093D   823 rderr: cmpl r0,#rms$_eof
                            08   13  0944   824         beql eofin
                                     0946   825 ;        pushal imp$o_rab(r3)
              0000096E'EF   00   FB  0946   826         calls #0,imp$jsberr
                                 05  094D   827         rsb
                                     094E   828 
                                     094E   829 eofin: 
              000004B0'EF   01   93  094E   830 	bitb #1,imp$b_rdtype
                            08   13  0955   831 	beql sigeof
              50   FFFFFFFF 8F   D0  0957   832 1$:     movl #imp$k_eof,r0
                                 05  095E   833         rsb
                                     095F   834     ; %signal 9,1    
                       50   09   D0  095F   835 sigeof:	movl #9,r0
                       51   01   D0  0962   836         movl #1,r1
                       52   53   D0  0965   837         movl r3,r2
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  22
V1-01                           Character input routines                 15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                   00000000'EF   17  0968   838         jmp $_p
                                     096E   839 
                               0000  096E   840 .entry imp$jsberr,^m<>
                 10 AD   04 AC   D0  0970   841 	movl 4(ap),16(fp)
                         50 A3   DF  0975   842 	pushal imp$o_rab(r3)
                  F683 CF   01   FB  0978   843 	calls #1,imp$ioerror
                                 04  097D   844 	ret
                                     097E   845 
                               0018  097E   846 .entry readrecord,^m<r3,r4>
              000004B0'EF   01   8A  0980   847 	bicb #1,imp$b_rdtype
              53   00000498'EF   D0  0987   848         movl imp$l_infab,r3
                            03   12  098E   849 	bneq 1$
                         CC AF   16  0990   850 	jsb sigeof
                    54   74 A3   D0  0993   851 1$:	movl imp$o_rab+rab$l_ubf(r3),r4
                 74 A3   08 AC   D0  0997   852         movl 8(ap),imp$o_rab+rab$l_ubf(r3)
                                     099C   853         $get rab=imp$o_rab(r3)
                    74 A3   54   D0  09A6   854 	movl r4,imp$o_rab+rab$l_ubf(r3)
                         03 50   E8  09AA   855 	blbs r0,2$
                         8D AF   16  09AD   856 	jsb rderr
                                     09B0   857 2$:
                 04 BC   72 A3   3C  09B0   858         movzwl imp$o_rab+rab$w_rsz(r3),@4(ap)
                  02CD C3   01   B0  09B5   859 	movw #1,imp$o_pos(r3)
                         72 A3   B4  09BA   860 	clrw imp$o_rab+rab$w_rsz(r3)
                                 04  09BD   861         ret
                                     09BE   862 
                               001C  09BE   863 .entry readsq,^m<r2,r3,r4>
              53   00000498'EF   D0  09C0   864 	movl imp$l_infab,r3
                            03   12  09C7   865 	bneq 1$
                         82 AF   16  09C9   866 	jsb eofin
                         74 A3   DD  09CC   867 1$:	pushl imp$o_rab+rab$l_ubf(r3)
                    54   04 AC   D0  09CF   868 	movl 4(ap),r4
                    52   70 A3   3C  09D3   869 	movzwl imp$o_rab+rab$w_usz(r3),r2
                    08 AC   54   D1  09D7   870 sqrep:	cmpl r4,8(ap)
                            1A   18  09DB   871 	bgeq 2$
                    74 A3   54   D0  09DD   872 	movl r4,imp$o_rab+rab$l_ubf(r3)
                                     09E1   873 	$read rab=imp$o_rab(r3)
                         04 50   E8  09EB   874 	blbs r0,3$
                       FF4B CF   16  09EE   875 	jsb rderr
                                     09F2   876 3$:
                       54   52   C0  09F2   877 	addl r2,r4
                            E0   11  09F5   878 	brb sqrep
                    74 A3   8E   D0  09F7   879 2$:	movl (sp)+,imp$o_rab+rab$l_ubf(r3)
                                 04  09FB   880 	ret
                                     09FC   881 
                               000C  09FC   882 .entry nextch,^m<r2,r3>
                       FDF6 CF   16  09FE   883         jsb $_t
              FFFFFFFF 8F   50   D1  0A02   884         cmpl r0,#imp$k_eof
                            0B   13  0A09   885         beql 1$
              51   00000498'EF   D0  0A0B   886         movl imp$l_infab,r1
                       02CD C1   B7  0A12   887         decw imp$o_pos(r1)
                                 04  0A16   888 1$:     ret
                                     0A17   889 
                               000C  0A17   890 .entry nextsymbol,^m<r2,r3>
                       FDC5 CF   16  0A19   891         jsb $_u
              FFFFFFFE 8F   50   D1  0A1D   892         cmpl r0,#imp$k_eor
                            03   12  0A24   893         bneq 1$
                       50   0A   D0  0A26   894         movl #imp$k_lf,r0
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  23
V1-01                           Character input routines                 15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

              51   00000498'EF   D0  0A29   895 1$:     movl imp$l_infab,r1
                       02CD C1   B7  0A30   896         decw imp$o_pos(r1)
                                 04  0A34   897         ret
                                     0A35   898 
                               000C  0A35   899 .entry readsymbol,^m<r2,r3>
                       FDA7 CF   16  0A37   900         jsb $_u
                    04 BC   50   D0  0A3B   901         movl r0,@4(ap)
                                 04  0A3F   902         ret
                                     0A40   903 
                               000C  0A40   904 .entry skipch,^m<r2,r3>
                       FDB2 CF   16  0A42   905         jsb $_t
                                 04  0A46   906         ret
                                     0A47   907 
                               000C  0A47   908 .entry skipsymbol,^m<r2,r3>
                       FD95 CF   16  0A49   909         jsb $_u
                                 04  0A4D   910         ret
                               000C  0A4E   911 .entry endofinput,^m<r2,r3>
                    A8 AF   00   FB  0A50   912 	calls #0,nextch
              FFFFFFFF 8F   50   D1  0A54   913 	cmpl r0,#imp$k_eof
                            04   13  0A5B   914 	beql 1$
                       50   00   D0  0A5D   915 	movl #imp$k_false,r0
                                 04  0A60   916 	ret
              50   FFFFFFFF 8F   D0  0A61   917 1$:	movl #imp$k_true,r0
                                 04  0A68   918 	ret
                                     0A69   919 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  24
V1-01                           Character output routines                15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0A69   921 .SBTTL  Character output routines
                                     0A69   922 
                               000C  0A69   923 .entry printch,^m<r2,r3>
                    50   04 AC   D0  0A6B   924         movl 4(ap),r0
                   00000A82'EF   16  0A6F   925         jsb $_v
                                 04  0A75   926         ret
                                     0A76   927 
                       0A   50   D1  0A76   928 $_w::   cmpl r0,#imp$k_lf
                            07   12  0A79   929         bneq $_v
              50   FFFFFFFE 8F   D0  0A7B   930         movl #imp$k_eor,r0
                                     0A82   931 
              53   000004A0'EF   D0  0A82   932 $_v::   movl imp$l_outfab,r3
                            43   13  0A89   933         beql prsb
                         1F A3   95  0A8B   934         tstb fab$b_rfm(r3)         ; Check if record format
                            0A   13  0A8E   935         beql rbin
           54 A3   00000800 8F   D3  0A90   936         bitl #rab$m_bio,imp$o_rab+rab$l_rop(r3)
                            4A   13  0A98   937         beql rchar
              FFFFFFFE 8F   50   D1  0A9A   938 rbin:   cmpl r0,#imp$k_eor
                            03   12  0AA1   939         bneq 1$
                       50   0A   D0  0AA3   940         movl #imp$k_lf,r0
                    52   74 A3   D0  0AA6   941 1$:     movl imp$o_rab+rab$l_ubf(r3),r2
                    51   72 A3   3C  0AAA   942         movzwl imp$o_rab+rab$w_rsz(r3),r1
                     6241   50   90  0AAE   943         movb r0,(r2)[r1]
                         72 A3   B6  0AB2   944         incw imp$o_rab+rab$w_rsz(r3)
              FFFFFFFF 8F   50   D1  0AB5   945         cmpl r0,#imp$k_eof
                            09   12  0ABC   946         bneq 4$
                          6241   94  0ABE   947         clrb (r2)[r1]
                    72 A3   01   CA  0AC1   948         bicl #1,imp$o_rab+rab$w_rsz(r3)
                            08   11  0AC5   949         brb pwr
                 70 A3   72 A3   B1  0AC7   950 4$:     cmpw imp$o_rab+rab$w_rsz(r3),imp$o_rab+rab$w_usz(r3)
                            01   18  0ACC   951         bgeq pwr
                                 05  0ACE   952 prsb:   rsb
                                     0ACF   953 pwr:    $write rab=imp$o_rab(r3)
                         04 50   E8  0AD9   954 	blbs r0,5$
                       FE90 CF   16  0ADC   955 	jsb imp$jsberr+2
                         72 A3   B4  0AE0   956 5$:     clrw imp$o_rab+rab$w_rsz(r3)
                                 05  0AE3   957         rsb
                                     0AE4   958 
           40 A3   00000000'8F   D3  0AE4   959 rchar:  bitl #dev$m_trm,fab$l_dev(r3)
                            0E   13  0AEC   960         beql 20$
                       02   50   D1  0AEE   961         cmpl r0,#imp$k_stx
                            09   12  0AF1   962         bneq 20$
           54 A3   80000000 8F   C8  0AF3   963         bisl #rab$m_cco,imp$o_rab+rab$l_rop(r3)
                                 05  0AFB   964         rsb
              FFFFFFFF 8F   50   D1  0AFC   965 20$:    cmpl r0,#imp$k_eof
                            07   12  0B03   966         bneq 11$
                         72 A3   B5  0B05   967         tstw imp$o_rab+rab$w_rsz(r3)
                            4F   13  0B08   968         beql 16$
                            20   11  0B0A   969         brb 13$
              FFFFFFFE 8F   50   D1  0B0C   970 11$:    cmpl r0,#imp$k_eor
                            17   13  0B13   971         beql 13$
                    52   74 A3   D0  0B15   972         movl imp$o_rab+rab$l_ubf(r3),r2
                    51   72 A3   3C  0B19   973         movzwl imp$o_rab+rab$w_rsz(r3),r1
                     6241   50   90  0B1D   974         movb r0,(r2)[r1]
                         72 A3   B6  0B21   975         incw imp$o_rab+rab$w_rsz(r3)
                 70 A3   72 A3   B1  0B24   976         cmpw imp$o_rab+rab$w_rsz(r3),imp$o_rab+rab$w_usz(r3)
                            01   18  0B29   977         bgeq 13$
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  25
V1-01                           Character output routines                15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                 05  0B2B   978         rsb
                    01   1F A3   91  0B2C   979 13$:	cmpb fab$b_rfm(r3),#fab$c_fix
                            05   12  0B30   980 	bneq 15$
                 72 A3   36 A3   B0  0B32   981 	movw fab$w_mrs(r3),imp$o_rab+rab$w_rsz(r3)
                                     0B37   982 15$:    $put rab=imp$o_rab(r3)
                         04 50   E8  0B41   983 	blbs r0,6$
                       FE28 CF   16  0B44   984 	jsb imp$jsberr+2
                         72 A3   B4  0B48   985 6$:     clrw imp$o_rab+rab$w_rsz(r3)
                    01   1F A3   91  0B4B   986 	cmpb fab$b_rfm(r3),#fab$c_fix
                            08   12  0B4F   987 	bneq 16$
  74 B3   70 A3   20   6D   00   2C  0B51   988 	movc5 #0,(fp),#^a/ /,imp$o_rab+rab$w_usz(r3),@imp$o_rab+rab$l_ubf(r3)
                                 05  0B59   989 16$:    rsb
                                     0B5A   990 
                               0018  0B5A   991 .entry printrecord,^m<r3,r4>
              53   000004A0'EF   D0  0B5C   992         movl imp$l_outfab,r3
                            23   13  0B63   993         beql 2$
                    54   78 A3   D0  0B65   994 	movl imp$o_rab+rab$l_rbf(r3),r4
                 78 A3   08 AC   D0  0B69   995         movl 8(ap),imp$o_rab+rab$l_rbf(r3)
                 72 A3   04 AC   B0  0B6E   996         movw 4(ap),imp$o_rab+rab$w_rsz(r3)
                                     0B73   997         $put rab=imp$o_rab(r3),err=imp$ioerror
                    78 A3   54   D0  0B81   998 	movl r4,imp$o_rab+rab$l_rbf(r3)
                         72 A3   B4  0B85   999         clrw imp$o_rab+rab$w_rsz(r3)
                                 04  0B88  1000 2$:     ret
                                     0B89  1001 
                               001C  0B89  1002 .entry writesq,^m<r2,r3,r4>
              53   000004A0'EF   D0  0B8B  1003 	movl imp$l_outfab,r3
                            01   12  0B92  1004 	bneq 1$
                                 04  0B94  1005 	ret
                 72 A3   70 A3   B0  0B95  1006 1$:	movw imp$o_rab+rab$w_usz(r3),imp$o_rab+rab$w_rsz(r3)
                         78 A3   DD  0B9A  1007 	pushl imp$o_rab+rab$l_rbf(r3)
                    54   04 AC   D0  0B9D  1008 	movl 4(ap),r4
                    52   70 A3   3C  0BA1  1009 	movzwl imp$o_rab+rab$w_usz(r3),r2
                    08 AC   54   D1  0BA5  1010 sqwep:	cmpl r4,8(ap)
                            17   18  0BA9  1011 	bgeq 2$
                    78 A3   54   D0  0BAB  1012 	movl r4,imp$o_rab+rab$l_rbf(r3)
                                     0BAF  1013 	$write rab=imp$o_rab(r3),err=imp$ioerror
                       54   52   C0  0BBD  1014 	addl r2,r4
                            E3   11  0BC0  1015 	brb sqwep
                    78 A3   8E   D0  0BC2  1016 2$:	movl (sp)+,imp$o_rab+rab$l_rbf(r3)
                                 04  0BC6  1017         ret
                                     0BC7  1018 
                               000C  0BC7  1019 .entry printsymbol,^m<r2,r3>
                    50   04 AC   D0  0BC9  1020         movl 4(ap),r0
                       FEA5 CF   16  0BCD  1021         jsb $_w
                                 04  0BD1  1022         ret
                                     0BD2  1023 
                               000C  0BD2  1024 .entry newline,^m<r2,r3>
              50   FFFFFFFE 8F   D0  0BD4  1025 	movl #imp$k_eor,r0
                       FEA3 CF   16  0BDB  1026 	jsb $_v
                                 04  0BDF  1027 	ret
                                     0BE0  1028 
                               001C  0BE0  1029 .entry newlines,^m<r2,r3,r4>
                         04 AC   D5  0BE2  1030 	tstl 4(ap)
                            01   14  0BE5  1031 	bgtr 2$
                                 04  0BE7  1032 	ret
                            54   D4  0BE8  1033 2$:	clrl r4
              50   FFFFFFFE 8F   D0  0BEA  1034 1$:	movl #imp$k_eor,r0
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  26
V1-01                           Character output routines                15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                       FE8D CF   16  0BF1  1035 	jsb $_v
                 F0 54   04 AC   F2  0BF5  1036 	aoblss 4(ap),r4,1$
                                 04  0BFA  1037 	ret
                                     0BFB  1038 
                               000C  0BFB  1039 .entry space,^m<r2,r3>
                       50   20   D0  0BFD  1040 	movl #^a/ /,r0
                       FE7E CF   16  0C00  1041 	jsb $_v
                                 04  0C04  1042 	ret
                                     0C05  1043 
                               001C  0C05  1044 .entry spaces,^m<r2,r3,r4>
                         04 AC   D5  0C07  1045 	tstl 4(ap)
                            01   14  0C0A  1046 	bgtr 2$
                                 04  0C0C  1047 	ret
                            54   D4  0C0D  1048 2$:     clrl r4
                       50   20   D0  0C0F  1049 1$:	movl #^a/ /,r0
                       FE6C CF   16  0C12  1050 	jsb $_v
                 F4 54   04 AC   F2  0C16  1051 	aoblss 4(ap),r4,1$
                                 04  0C1B  1052 	ret
                                     0C1C  1053 
                               000C  0C1C  1054 .entry newpage,^m<r2,r3>
                       50   0C   D0  0C1E  1055 	movl #12,r0
                       FE5D CF   16  0C21  1056 	jsb $_v
                                 04  0C25  1057 	ret
                                     0C26  1058 
                               063C  0C26  1059 .entry tab,^m<r2,r3,r4,r5,r9,r10>
              5A   000004A0'EF   D0  0C28  1060 	movl imp$l_outfab,r10
                            28   13  0C2F  1061        beql tabend
                    59   04 AC   D0  0C31  1062        movl 4(ap),r9
                            59   D7  0C35  1063        decl r9
                    70 AA   59   B1  0C37  1064        cmpw r9,imp$o_rab+rab$w_usz(r10)
                            04   15  0C3B  1065        bleq 1$
                    59   70 AA   3C  0C3D  1066        movzwl imp$o_rab+rab$w_usz(r10),r9
                    59   72 AA   A2  0C41  1067 1$:    subw imp$o_rab+rab$w_rsz(r10),r9
                            12   15  0C45  1068        bleq tabend
                    51   72 AA   3C  0C47  1069       movzwl imp$o_rab+rab$w_rsz(r10),r1
                    51   74 AA   C0  0C4B  1070       addl imp$o_rab+rab$l_ubf(r10),r1
        61   59   20   6A   00   2C  0C4F  1071        movc5 #0,(r10),#^a/ /,r9,(r1)
                    72 AA   59   A0  0C55  1072        addw r9,imp$o_rab+rab$w_rsz(r10)
                                 04  0C59  1073 tabend:ret
                                     0C5A  1074 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  27
V1-01                           General utilities                        15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0C5A  1076 .SBTTL General utilities
                                     0C5A  1077 
                               0008  0C5A  1078 .entry delete,^m<r3>
                                     0C5C  1079         set_fab @4(ap),#0
                            1D   13  0C66  1080         beql 10$
                       53   50   D0  0C68  1081         movl r0,r3
                                     0C6B  1082         $erase fab=(r3)
                         07 50   E8  0C74  1083 	blbs r0,1$
                            53   DD  0C77  1084 	pushl r3
                  F382 CF   01   FB  0C79  1085 	calls #1,imp$ioerror
                                     0C7E  1086 1$:     dump_fab r3
                                 04  0C85  1087 10$:    ret
                                     0C86  1088 
                               001C  0C86  1089 .entry purge,^m<r2,r3,r4>
                                     0C88  1090 	set_fab @4(ap),#0
                            74   13  0C92  1091 	beql 3$
                       53   50   D0  0C94  1092 	movl r0,r3
                    35 A3   05   90  0C97  1093 	movb	#5,fab$b_dns(r3)
           30 A3   00000413'EF   DE  0C9B  1094 	moval	imp$_wild,fab$l_dna(r3)
           04 A3   01000000 8F   C8  0CA3  1095 	bisl #fab$m_nam,fab$l_fop(r3)
                                     0CAB  1096 	$parse fab=(r3)
                         38 50   E9  0CB4  1097 	blbc r0,2$
           40 A3   00000000'8F   D3  0CB7  1098 	bitl #dev$m_rec,fab$l_dev(r3)
                            2E   12  0CBF  1099 	bneq 2$
                    52   08 AC   D0  0CC1  1100 	movl 8(ap),r2
                                     0CC5  1101 5$:	$search fab=(r3)
                         1E 50   E9  0CCE  1102 	blbc r0,2$
                         F1 52   F5  0CD1  1103 	sobgtr r2,5$
                                     0CD4  1104 
                                     0CD4  1105 4$:	$search fab=(r3)
                         0F 50   E9  0CDD  1106 	blbc r0,2$
                                     0CE0  1107 	$erase fab=(r3)
                         03 50   E9  0CE9  1108 	blbc r0,2$
                          FFE5   31  0CEC  1109 	brw 4$
                       54   50   D0  0CEF  1110 2$:	movl r0,r4
                                     0CF2  1111 	dump_fab r3
                       50   54   D0  0CF9  1112 	movl r4,r0
              00000000'8F   50   D1  0CFC  1113 	cmpl r0,#rms$_nmf
                            03   12  0D03  1114 	bneq 3$
                       50   01   D0  0D05  1115 	movl #1,r0
                                 04  0D08  1116 3$:	ret
                                     0D09  1117 
                               000C  0D09  1118 .entry rename,^m<r2,r3>
                                     0D0B  1119 	set_fab @4(ap),#0
                       52   50   D0  0D15  1120 	movl	r0,r2
                                     0D18  1121 	set_fab @8(ap),#0
                       53   50   D0  0D22  1122 	movl	r0,r3
                                     0D25  1123 	$rename oldfab=(r2),newfab=(r3)
                            50   DD  0D34  1124 	pushl	r0
                                     0D36  1125 	dump_fab r2
                                     0D3D  1126 	dump_fab r3
                            50 8ED0  0D44  1127 	popl	r0
                                 04  0D47  1128 	ret
                                     0D48  1129 
                               0008  0D48  1130 .entry exists,^m<r3>
                                     0D4A  1131 	set_fab @4(ap),#0
                            3B   13  0D54  1132 	beql 3$
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  28
V1-01                           General utilities                        15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                       53   50   D0  0D56  1133 	movl r0,r3
                                     0D59  1134 	$parse fab=(r3)
                         25 50   E9  0D62  1135 	blbc r0,2$
           40 A3   00000000'8F   D3  0D65  1136 	bitl #dev$m_rec,fab$l_dev(r3)
                            0C   12  0D6D  1137 	bneq 1$
                                     0D6F  1138 	$search fab=(r3)
                         0F 50   E9  0D78  1139 	blbc r0,2$
                                     0D7B  1140 1$:	dump_fab r3
              50   FFFFFFFF 8F   D0  0D82  1141 	movl #imp$k_true,r0
                                 04  0D89  1142 	ret
                                     0D8A  1143 2$:	dump_fab r3
                       50   00   D0  0D91  1144 3$:	movl #imp$k_false,r0
                                 04  0D94  1145 	ret
                                     0D95  1146 
                               0000  0D95  1147 .entry currentprotection,^m<>
              50   0000009C'EF   3C  0D97  1148 	movzwl xpskel+xab$w_pro,r0
                                 04  0D9E  1149 	ret
                                     0D9F  1150 
                               0000  0D9F  1151 .entry setdefaultprotection,^m<>
           0000009C'EF   04 AC   B0  0DA1  1152 	movw	4(ap),xpskel+xab$w_pro
                                 04  0DA9  1153 	ret
                                     0DAA  1154 
                               003C  0DAA  1155 .entry setdefault,^m<r2,r3,r4,r5>
                    53   04 AC   D0  0DAC  1156         movl 4(ap),r3
                       52   83   9A  0DB0  1157         movzbl (r3)+,r2
              00000035'EF   52   90  0DB3  1158         movb r2,startskel+fab$b_dns
         000003D0'EF   63   52   28  0DBA  1159         movc3 r2,(r3),imp$_defnam
                                 04  0DC2  1160         ret
                                     0DC3  1161 
                               003C  0DC3  1162 .entry currentdefault,^m<r2,r3,r4,r5>
                    51   04 AC   D0  0DC5  1163 	movl 4(ap),r1
              52   00000035'EF   9A  0DC9  1164 	movzbl startskel+fab$b_dns,r2
                       81   52   90  0DD0  1165 	movb r2,(r1)+
         61   000003D0'EF   52   28  0DD3  1166 	movc3 r2,imp$_defnam,(r1)
                                 04  0DDB  1167 	ret
                                     0DDC  1168 
                               0600  0DDC  1169 .entry defstream,^m<r9,r10>
                                     0DDE  1170         set_fab @8(ap),#0
                       5A   50   D0  0DE8  1171         movl r0,r10
                    51   0C AC   D0  0DEB  1172         movl 12(ap),r1
                    35 AA   61   90  0DEF  1173         movb (r1),fab$b_dns(r10)
                 30 AA   01 A1   9E  0DF3  1174         movab 1(r1),fab$l_dna(r10)
                                     0DF8  1175         $parse fab=(r10),err=imp$ioerror
                            5A   DD  0E05  1176         pushl r10
                         04 AC   DD  0E07  1177         pushl 4(ap)
                  F450 CF   02   FB  0E0A  1178         calls #2,imp$getfilnam
                                     0E0F  1179         dump_fab r10
                                 04  0E16  1180         ret
                                     0E17  1181 
                               0600  0E17  1182 .entry expand,^m<r9,r10>
                                     0E19  1183         set_fab @8(ap),#0
                       5A   50   D0  0E23  1184         movl r0,r10
                            0D   13  0E26  1185 	beql 1$
                                     0E28  1186         $parse fab=(r10),err=imp$ioerror
                            5A   DD  0E35  1187 1$:     pushl r10
                         04 AC   DD  0E37  1188         pushl 4(ap)
                  F420 CF   02   FB  0E3A  1189         calls #2,imp$getfilnam
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  29
V1-01                           General utilities                        15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0E3F  1190         dump_fab r10
                                 04  0E46  1191         ret
                                     0E47  1192 
                               0FFC  0E47  1193 .entry explode,^m<r2,r3,r4,r5,r6,r7,r8,r9,r10,r11>
     0074 8F   00   04 BC   00   2C  0E49  1194 	movc5 #0,@4(ap),#0,#116,@4(ap)
                         04 BC       0E51       
                                     0E53  1195 	set_fab @8(ap),#0
                       5A   50   D0  0E5D  1196 	movl r0,r10
                                     0E60  1197 	$parse fab=(r10)
              5E   00000080 8F   C2  0E69  1198 	subl #128,sp
                       57   5E   D0  0E70  1199 	movl sp,r7
                            5A   DD  0E73  1200 	pushl r10
                            57   DD  0E75  1201 	pushl r7
                  F3E3 CF   02   FB  0E77  1202 	calls #2,imp$getfilnam
                       56   87   9A  0E7C  1203 	movzbl (r7)+,r6
                  5B   0120 CA   D0  0E7F  1204 	movl imp$o_nam+nam$l_fnb(r10),r11
                                     0E84  1205 	dump_fab r10
              5A   0000002F'EF   DE  0E8B  1206 	moval imp$_splitsep,r10
                    58   04 AC   D0  0E92  1207 	movl 4(ap),r8
                  67   56   8A   3A  0E96  1208 nxt:	locc (r10)+,r6,(r7)
                            03   BB  0E9A  1209 	pushr #^m<r0,r1>
                       3D   6A   91  0E9C  1210 	cmpb (r10),#^a/=/
                            07   12  0E9F  1211 	bneq 3$
                            5A   D6  0EA1  1212 	incl r10
                       56   50   C2  0EA3  1213 	subl r0,r6
                            EE   11  0EA6  1214 	brb nxt
                       5B   8A   93  0EA8  1215 3$:	bitb (r10)+,r11
                            03   12  0EAB  1216 	bneq 1$
                       56   50   D0  0EAD  1217 	movl r0,r6
                                     0EB0  1218 1$:
                       56   50   C2  0EB0  1219 	subl r0,r6
               01 A8   67   56   28  0EB3  1220 	movc3 r6,(r7),1(r8)
                       68   56   90  0EB8  1221 	movb r6,(r8)
                       58   8A   80  0EBB  1222 	addb (r10)+,r8
                       00C0 8F   BA  0EBE  1223 	popr #^m<r6,r7>
                       26   6A   91  0EC2  1224 	cmpb (r10),#^a/&/
                            06   12  0EC5  1225 	bneq 4$
                       00C0 8F   BA  0EC7  1226 	popr #^m<r6,r7>
                            5A   D6  0ECB  1227 	incl r10
                            56   D5  0ECD  1228 4$:	tstl r6
                            04   13  0ECF  1229 	beql chen
                            56   D7  0ED1  1230 	decl r6
                            57   D6  0ED3  1231 	incl r7
                       21   6A   91  0ED5  1232 chen:	cmpb (r10),#^a/!/
                            02   13  0ED8  1233 	beql spdone
                            BA   11  0EDA  1234 	brb nxt
                                 04  0EDC  1235 spdone:ret
                                     0EDD  1236 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  30
V1-01                           Run time environment initialisation proc 15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     0EDD  1238 .SBTTL    Run time environment initialisation proc.
                                     0EDD  1239 
                               0700  0EDD  1240 .entry imp$ioinit,^m<r8,r9,r10>
                   00000000'EF   D5  0EDF  1241         tstl imp$l_going
                            01   13  0EE5  1242         beql 5$
                                 04  0EE7  1243         ret
                   00001057'EF   DF  0EE8  1244 5$:     pushal imp$ioclose
                            5E   DD  0EEE  1245 	pushl sp
              00000000'EF   01   FB  0EF0  1246 	calls #1,dclexh
                                     0EF7  1247 10$:
                                     0EF7  1248 	; Check that SYS$INPUT and SYS$OUTPUT have been defined.
                                     0EF7  1249 	; Euivalence to NL: if not
                   00000015'EF   9F  0EF7  1250 	pushab imp$s_sysnl
                            03   DD  0EFD  1251 	pushl #3
                       5A   5E   D0  0EFF  1252 	movl sp,r10
                                     0F02  1253 
              5E   0000007F 8F   C2  0F02  1254 	subl #127,sp
                            5E   DD  0F09  1255 	pushl sp
                   0000007F 8F   DD  0F0B  1256 	pushl #127
                       59   5E   D0  0F11  1257 	movl sp,r9
                                     0F14  1258 
                   00000001'EF   9F  0F14  1259 	pushab imp$s_sysin+1
                            09   DD  0F1A  1260 	pushl #9
                       58   5E   D0  0F1C  1261 	movl sp,r8
                                     0F1F  1262 	$trnlog_s (r8),,(r9)
              00000000'8F   50   D1  0F32  1263 	cmpl r0,#ss$_notran
                            0F   12  0F39  1264 	bneq 21$
                                     0F3B  1265 	$crelog_s #2,(r8),(r10)
                                     0F4A  1266 
              68   00000019'EF   9E  0F4A  1267 21$:	movab imp$s_syserr+1,(r8)
                                     0F51  1268 	$trnlog_s (r8),,(r9)
              00000000'8F   50   D1  0F64  1269 	cmpl r0,#ss$_notran
                            0F   12  0F6B  1270 	bneq 22$
                                     0F6D  1271 	$crelog_s #2,(r8),(r10)
                                     0F7C  1272 
              68   0000000B'EF   9E  0F7C  1273 22$:	movab imp$s_sysout+1,(r8)
              68   0000005E 8F   D0  0F83  1274 	movl #94,(r8)
                                     0F8A  1275 	$trnlog_s (r8),,(r9)
              00000000'8F   50   D1  0F9D  1276 	cmpl r0,#ss$_notran
                            0F   12  0FA4  1277 	bneq 23$
                                     0FA6  1278 	$crelog_s #2,(r8),(r10)
                                     0FB5  1279 
                                     0FB5  1280 23$:    set_fab imp$s_sysin,#fab$m_get+fab$m_bro
              00000418'EF   50   D0  0FC6  1281         movl r0,imp$l_ttin
                            26   13  0FCD  1282 	beql 24$
                       5A   50   D0  0FCF  1283         movl r0,r10
                         1E AA   B4  0FD2  1284         clrw fab$b_rat(r10)              ; clear RFM & RAT
                  02CD CA   01   B0  0FD5  1285         movw #1,imp$o_pos(r10)
                                     0FDA  1286         $open fab=(r10),err=imp$ioerror
                                     0FE7  1287         $connect rab=imp$o_rab(r10),err=imp$ioerror
                                     0FF5  1288 24$:    set_fab imp$s_sysout,#fab$m_put+fab$m_bro
              00000458'EF   50   D0  1006  1289          movl r0,imp$l_ttout
              0000045C'EF   50   D0  100D  1290 	movl r0,imp$l_ttout+4
                            1E   13  1014  1291 	beql 25$
                       5A   50   D0  1016  1292         movl r0,r10
                                     1019  1293 ;        bisl #fab$m_cif,fab$l_fop(r10)
                                     1019  1294         $create fab=(r10),err=imp$ioerror
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  31
V1-01                           Run time environment initialisation proc 15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

                                     1026  1295         $connect rab=imp$o_rab(r10),err=imp$ioerror
                                     1034  1296 
                   00000000'EF   9F  1034  1297 25$:    pushab imp$s_sysin
                            01   DD  103A  1298         pushl #1
                  F265 CF   02   FB  103C  1299         calls #2,openinput
                                     1041  1300 
                            01   DD  1041  1301         pushl #1
                  F351 CF   01   FB  1043  1302         calls #1,selectinput
                            01   DD  1048  1303         pushl #1
                  F6F7 CF   01   FB  104A  1304         calls #1,selectoutput
              00000000'EF   01   90  104F  1305         movb #1,imp$l_going
                                 04  1056  1306         ret
                                     1057  1307 
                               0008  1057  1308 .entry imp$ioclose,^m<r3>
               0000'8F   04 BC   B1  1059  1309 	cmpw @4(ap),#ss$_clifrcext
                            01   12  105F  1310 	bneq 1$
                                 04  1061  1311 	ret
                            53   D4  1062  1312 1$:     clrl r3
                            53   DD  1064  1313 clsin: pushl r3
                  F32E CF   01   FB  1066  1314         calls #1,selectinput
                  F2C9 CF   00   FB  106B  1315         calls #0,closeinput
                    F0 53   10   F3  1070  1316         aobleq #imp$v_maxstr,r3,clsin
                                     1074  1317 
                            53   D4  1074  1318         clrl r3
                            53   DD  1076  1319 clsout: pushl r3
                  F6C9 CF   01   FB  1078  1320         calls #1,selectoutput
                  F5F0 CF   00   FB  107D  1321         calls #0,closeoutput
                    F0 53   10   F3  1082  1322         aobleq #imp$v_maxstr,r3,clsout
                                     1086  1323 
                                 04  1086  1324         ret
                                     1087  1325 .END
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  32
Symbol table                                                             15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

$$.TAB                         = 000000EC R     01        EXISTS                           00000D48 RG    04        
$$.TABEND                      = 0000014C R     01        EXPAND                           00000E17 RG    04        
$$.TMP                         = 40000000                 EXPANDTABS                       00000469 RG    04        
$$.TMP1                        = 00000002                 EXPLODE                          00000E47 RG    04        
$$.TMP2                        = 000000AA                 EXPTAB                           000008E3 R     04        
$$T1                           = 00000000                 FAB$B_DNS                      = 00000035                 
$F1                              000001F9 R     04        FAB$B_FAC                      = 00000016                 
$F2                              0000020B R     04        FAB$B_FNS                      = 00000034                 
$T1                              000001C0 R     04        FAB$B_RAT                      = 0000001E                 
$T2                              000001D0 R     04        FAB$B_RFM                      = 0000001F                 
$T3                              000001E0 R     04        FAB$C_BID                      = 00000003                 
$T4                              0000021C R     04        FAB$C_BLN                      = 00000050                 
$T5                              0000022D R     04        FAB$C_FIX                      = 00000001                 
$_P                              ********   X   04        FAB$C_SEQ                      = 00000000                 
$_T                              000007F8 RG    04        FAB$C_STMLF                    = 00000005                 
$_U                              000007E2 RG    04        FAB$C_UDF                      = 00000000                 
$_V                              00000A82 RG    04        FAB$L_ALQ                      = 00000010                 
$_W                              00000A76 RG    04        FAB$L_DEV                      = 00000040                 
..AFLG                         = 00000000                 FAB$L_DNA                      = 00000030                 
..FLG                          = 00000001                 FAB$L_FNA                      = 0000002C                 
..MOD                          = 00000001                 FAB$L_FOP                      = 00000004                 
..N                            = 00000001                 FAB$L_NAM                      = 00000028                 
..TYP                          = 000000CA                 FAB$L_XAB                      = 00000024                 
.LEN                           = 00000004                 FAB$M_BRO                      = 00000040                 
ABANDONOUTPUT                    000006BC RG    04        FAB$M_CIF                      = 02000000                 
BIN                              0000081E R     04        FAB$M_DLT                      = 00008000                 
BUFFPOS                          000002CD R     01        FAB$M_FTN                      = 00000001                 
CHEN                             00000ED5 R     04        FAB$M_GET                      = 00000002                 
CHKEOR                           00000851 R     04        FAB$M_NAM                      = 01000000                 
CHKTAB                           00000845 R     04        FAB$M_PUT                      = 00000001                 
CLOSEINPUT                       00000339 RG    04        FAB$V_CHAN_MODE                = 00000002                 
CLOSEOUTPUT                      00000672 RG    04        FAB$V_CR                       = 00000001                 
CLSIN                            00001064 R     04        FAB$V_FILE_MODE                = 00000004                 
CLSOUT                           00001076 R     04        FAB$V_LNM_MODE                 = 00000000                 
CURRENTDEFAULT                   00000DC3 RG    04        FAB$V_SQO                      = 00000006                 
CURRENTPROMPT                    000003FC RG    04        FAB$W_GBC                      = 00000048                 
CURRENTPROTECTION                00000D95 RG    04        FAB$W_MRS                      = 00000036                 
DCLEXH                           ********   X   04        FORM_MESS                        0000002A R     04        
DEFSTREAM                        00000DDC RG    04        FSKEL                            00000000 R     01        
DELETE                           00000C5A RG    04        GENSP                            000008EE R     04        
DEV$M_FOD                        ********   X   04        GETCH                            000008B8 R     04        
DEV$M_REC                        ********   X   04        GETFAB                           00000052 RG    04        
DEV$M_TRM                        ********   X   04        GET_NAM                          00000298 R     04        
DIGIT                            000004F7 RG    04        IMP$A_INADDR                     0000049C R     01        
DISABLEECHO                      00000451 RG    04        IMP$A_OUTADDR                    000004A4 R     01        
DISABLEEOF                       0000041F RG    04        IMP$B_RDTYPE                     000004B0 R     01        
DUMPFAB                          000000E3 RG    04        IMP$GETFILNAM                    0000025F RG    04        
ENABLEECHO                       00000439 RG    04        IMP$IOCLOSE                      00001057 RG    04        
ENABLEEOF                        00000422 RG    04        IMP$IOERROR                      00000000 R     04        
END                              0000024B R     04        IMP$IOINIT                       00000EDD RG    04        
ENDOFINPUT                       00000A4E RG    04        IMP$JSBERR                       0000096E RG    04        
ENDSKEL                          000003D0 R     01        IMP$K_EOF                      = FFFFFFFF                 
EOFIN                            0000094E R     04        IMP$K_EOR                      = FFFFFFFE                 
EOFR                             000008F6 R     04        IMP$K_FALSE                    = 00000000                 
ER                               00000928 R     04        IMP$K_LF                       = 0000000A                 
ERRORMESSAGE                     ********   X   04        IMP$K_STX                      = 00000002                 
ESNAM                            0000014C R     01        IMP$K_TAB                      = 00000009                 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  33
Symbol table                                                             15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

IMP$K_TRUE                     = FFFFFFFF                 NEWLINES                         00000BE0 RG    04        
IMP$L_GOING                      ********   X   04        NEWPAGE                          00000C1C RG    04        
IMP$L_INFAB                      00000498 R     01        NEXTCH                           000009FC RG    04        
IMP$L_INSTREAM                   000004A8 R     01        NEXTSYMBOL                       00000A17 RG    04        
IMP$L_OUTFAB                     000004A0 R     01        NOPROMPT                         000003E4 RG    04        
IMP$L_OUTSTREAM                  000004AC R     01        NOTYPE                           00000167 R     04        
IMP$L_TTIN                       00000418 R     01        NSKEL                            000000EC R     01        
IMP$L_TTOUT                      00000458 R     01        NULL                             0000025C R     04        
IMP$M_DISECHO                  = 00000004                 NXT                              00000E96 R     04        
IMP$M_EXPTAB                   = 00000002                 OK                               0000001D R     04        
IMP$O_ESA                      = 0000014C                 OPENAPPEND                       000005CA RG    04        
IMP$O_FNA                      = 0000024A                 OPENINPUT                        000002A6 RG    04        
IMP$O_FTN                      = 000002CC                 OPENOUTPUT                       00000536 RG    04        
IMP$O_NAM                      = 000000EC                 OPERR                            00000331 R     04        
IMP$O_PMT                      = 000002D1                 OPOERR                           000005C2 R     04        
IMP$O_POS                      = 000002CD                 OUTFILENAME                      00000771 RG    04        
IMP$O_PRN                      = 000002CA                 OUTPOS                           0000078C RG    04        
IMP$O_RAB                      = 00000050                 OUTSTREAM                        00000782 RG    04        
IMP$O_RSA                      = 000001CB                 OUTTYPE                          0000079C RG    04        
IMP$O_TABCNT                   = 000002CF                 PASSTABS                         0000047E RG    04        
IMP$O_XPRO                     = 00000094                 PRCNT                            000002CC R     01        
IMP$S_NULL1                      00000026 R     03        PRINTCH                          00000A69 RG    04        
IMP$S_NULL2                      0000002C R     03        PRINTRECORD                      00000B5A RG    04        
IMP$S_SYSERR                     00000018 R     03        PRINTSYMBOL                      00000BC7 RG    04        
IMP$S_SYSIN                      00000000 R     03        PRNREC                           000002CA R     01        
IMP$S_SYSNL                      00000015 R     03        PROMPT                           000003C4 RG    04        
IMP$S_SYSOUT                     0000000A R     03        PROMSTR                          000002D1 R     01        
IMP$S_TT                         00000022 R     03        PRSB                             00000ACE R     04        
IMP$V_FABSZ                    = 000003D0                 PURGE                            00000C86 RG    04        
IMP$V_MAXSTR                   = 00000010                 PWR                              00000ACF R     04        
IMP$_DEFNAM                      000003D0 R     01        RAB$B_BID                      = 00000000                 
IMP$_SPLITSEP                    0000002F R     03        RAB$B_PSZ                      = 00000034                 
IMP$_WILD                        00000413 R     01        RAB$B_RAC                      = 0000001E                 
INFILENAME                       00000492 RG    04        RAB$C_BID                      = 00000001                 
INPOS                            000004AD RG    04        RAB$C_BLN                      = 00000044                 
INSTREAM                         000004A3 RG    04        RAB$C_SEQ                      = 00000000                 
INTYPE                           000004BE RG    04        RAB$L_CTX                      = 00000018                 
LETTER                           00000510 RG    04        RAB$L_FAB                      = 0000003C                 
LIB$FREE_VM                      ********   X   04        RAB$L_PBF                      = 00000030                 
LIB$GET_VM                       ********   X   04        RAB$L_RBF                      = 00000028                 
LIB$SIGNAL                       ********   X   04        RAB$L_RHB                      = 0000002C                 
NAM$B_ESL                      = 0000000B                 RAB$L_ROP                      = 00000004                 
NAM$B_ESS                      = 0000000A                 RAB$L_UBF                      = 00000024                 
NAM$B_NOP                      = 00000008                 RAB$M_BIO                      = 00000800                 
NAM$B_RSL                      = 00000003                 RAB$M_CCO                      = 80000000                 
NAM$B_RSS                      = 00000002                 RAB$M_EOF                      = 00000100                 
NAM$C_BID                      = 00000002                 RAB$M_PMT                      = 40000000                 
NAM$C_BLN                      = 00000060                 RAB$M_RNE                      = 01000000                 
NAM$L_ESA                      = 0000000C                 RAB$V_PMT                      = 0000001E                 
NAM$L_FNB                      = 00000034                 RAB$W_RSZ                      = 00000022                 
NAM$L_RSA                      = 00000004                 RAB$W_USZ                      = 00000020                 
NAM$M_EXP_DEV                  = 00000080                 RBIN                             00000A9A R     04        
NAM$M_EXP_DIR                  = 00000040                 RCHAR                            00000AE4 R     04        
NAM$M_EXP_NAME                 = 00000004                 RDERR                            0000093D R     04        
NAM$M_EXP_TYPE                 = 00000002                 RDON                             0000080E R     04        
NAM$M_EXP_VER                  = 00000001                 READCH                           000007D5 RG    04        
NEWLINE                          00000BD2 RG    04        READRECORD                       0000097E RG    04        
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  34
Symbol table                                                             15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (1)

READSQ                           000009BE RG    04        XAB$C_PRO                      = 00000013                 
READSYMBOL                       00000A35 RG    04        XAB$C_PROLEN                   = 00000058                 
RENAME                           00000D09 RG    04        XAB$L_ACLBUF                   = 00000018                 
RESETINPUT                       0000036D RG    04        XAB$L_ACLCTX                   = 00000020                 
RESETOUTPUT                      000006F8 RG    04        XAB$L_NXT                      = 00000004                 
RMS$_EOF                         ********   X   04        XAB$W_ACLSIZ                   = 0000001C                 
RMS$_NMF                         ********   X   04        XAB$W_GRP                      = 0000000E                 
RMS$_RER                         ********   X   04        XAB$W_MBM                      = 0000000C                 
RSKEL                            00000050 R     01        XAB$W_PRO                      = 00000008                 
RSNAM                            000001CB R     01        XPSKEL                           00000094 R     01        
SELECTINPUT                      00000399 RG    04        
SELECTOUTPUT                     00000746 RG    04        
SETDEFAULT                       00000DAA RG    04        
SETDEFAULTPROTECTION             00000D9F RG    04        
SETMARGIN                        0000071F RG    04        
SETUPFAB                         00000113 RG    04        
SIGEOF                           0000095F R     04        
SKIPCH                           00000A40 RG    04        
SKIPSYMBOL                       00000A47 RG    04        
SPACE                            00000BFB RG    04        
SPACES                           00000C05 RG    04        
SPDONE                           00000EDC R     04        
SQREP                            000009D7 R     04        
SQWEP                            00000BA5 R     04        
SS$_CLIFRCEXT                    ********   X   04        
SS$_NOTRAN                       ********   X   04        
STARTSKEL                        00000000 R     01        
SUPPRESSECHO                     00000425 RG    04        
SYS$CLOSE                        ********  GX   04        
SYS$CONNECT                      ********  GX   04        
SYS$CREATE                       ********  GX   04        
SYS$CRELOG                       ********  GX   04        
SYS$ERASE                        ********  GX   04        
SYS$GET                          ********  GX   04        
SYS$OPEN                         ********  GX   04        
SYS$PARSE                        ********  GX   04        
SYS$PUT                          ********  GX   04        
SYS$READ                         ********  GX   04        
SYS$RENAME                       ********  GX   04        
SYS$REWIND                       ********  GX   04        
SYS$SEARCH                       ********  GX   04        
SYS$TRNLOG                       ********  GX   04        
SYS$WRITE                        ********  GX   04        
TAB                              00000C26 RG    04        
TABCH                            000008CF R     04        
TABCNT                           000002CF R     01        
TABEND                           00000C59 R     04        
TRDONE                           000001AC R     04        
TRNXT                            00000143 R     04        
TRY_ES                           00000281 R     04        
TRY_USER                         0000028F R     04        
TTABLE                           ********   X   04        
USERNAM                          0000024A R     01        
WRITESQ                          00000B89 RG    04        
XAB$B_MTACC                    = 0000000A                 
XAB$B_PROT_MODE                = 00000010                 
XAB$B_PROT_OPT                 = 0000000B                 
LIB77_IOPROCS                   IMP77 Basic I/O procedures    7th August 31-AUG-1988 15:35:36  VAX/VMS Macro V04-00        Page  35
Psect synopsis                                                           15-APR-1988 16:22:37  [IMP.LIB]IOFUNCS.MAR;38           (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  
$_GLAPPIC                       000004B1  ( 1201.)  01 (  1.)    PIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT NOVEC LONG  
$ABS$                           00000000  (    0.)  02 (  2.)  NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT NOVEC BYTE  
$_CONSTANT                      00000057  (   87.)  03 (  3.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC BYTE  
$_CODEAREA                      00001087  ( 4231.)  04 (  4.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC BYTE  

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

Phase                    Page faults    CPU Time       Elapsed Time   
-----                    -----------    --------       ------------   
Initialization                   25     00:00:00.16    00:00:00.50
Command processing              832     00:00:00.85    00:00:01.19
Pass 1                          478     00:00:24.39    00:00:28.28
Symbol table sort                 0     00:00:04.21    00:00:04.48
Pass 2                           27     00:00:04.68    00:00:05.92
Symbol table output               2     00:00:00.21    00:00:00.33
Psect synopsis output             2     00:00:00.04    00:00:00.04
Cross-reference output            0     00:00:00.00    00:00:00.00
Assembler run totals           1368     00:00:34.54    00:00:40.75

The working set limit was 2048 pages.
87510 bytes (171 pages) of virtual memory were used to buffer the intermediate code.
There were 50 pages of symbol table space allocated to hold 765 non-local and 104 local symbols.
1325 source lines were read in Pass 1, producing 227 object records in Pass 2.
83 pages of virtual memory were used to define 56 macros.

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

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

1383 GETS were required to define 50 macros.

There were no errors, warnings or information messages.

MAC/LIS IOFUNCS
