From:	CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 21-NOV-1989 19:41
To:	MRGATE::"ARISIA::EVERHART"
Subj:	xbin 4 of 4

Message-Id:  <8911211843.AA05535@crdgw1.ge.com>
Received: From NWC.NAVY.MIL by CRVAX.SRI.COM with TCP; Tue, 21 NOV 89 07:47:49 PDT
Date: 21 Nov 89 07:25:00 PDT
From: "LEVINE PETER J" <levine%y.mil:amiga-relay-request@louie.udel.edu>
Subject: xbin 4 of 4
To: "info-vax" <info-vax@crvax.sri.com>

-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+
X20$:`009movzwl`009rab$w_rsz(r10), r0
X`009movab`009@rab$l_rbf(r10), r1
X`009movab`009@rab$l_ubf(r10), r5
X`009movzwl`009inlen, r2
X`009subl2`009r2, rab$l_ubf(r10)
X`009movl`009rab$l_ubf(r10), inptr
X`009addw2`009r2, rab$w_usz(r10)
X`009bsbw`009translate_q_line
X`009brw`009get_q_3
X
X;    r0 = string length
X;    r1 = source string addr
X;    r2-r4 = (clobbered)
X;    r5 = destination string addr (input)
Xtranslate_q_line:
X`009movtuc`009r0, (r1), #`094xff, q_translate, r0, (r5)
X`009bvc`00920$
X`009cmpb`009(r1), #c_colon
X`009beql`00910$
X`009incl`009r1
X`009decw`009r0
X`009brb`009translate_q_line
X
X10$:`009movc5`009#0, (sp), #-1, #8, (r5)
X`009movl`009r3, r5
X20$:`009subl2`009inptr, r5
X`009movw`009r5, inlen
X`009rsb
X
X;************************************************************************
X;************************  copy_nothinged_fork  *************************
X;************************************************************************
X
X; Registers & parameters:
X;    r0-r5 = (clobbered)
X;    r10 = addr of input file rab
X;    r11 = addr of output file rab
X
Xcopy_nothinged_fork:
X`009$get`009rab=(r10)
X`009$iferr
X`009cmpc3`009stars, @rab$l_rbf(r10), @<stars+4>
X`009bneq`00910$
X`009movaq`009s_end_of_data, r0
X`009bsbw`009case_blind_prefix
X`009tstl`009r0
X`009bneq`00910$
X`009rsb
X10$:`009movc5`009rab$w_rsz(r10), @rab$l_rbf(r10), #c_space, -
X`009`009#reclen, outbuff
X`009$put`009rab=(r11)
X`009$iferr
X`009brb`009copy_nothinged_fork
X
X;************************************************************************
X;*****************************  copy_fork  ******************************
X;************************************************************************
X
X; Registers & parameters:
X;    r0-r5 = (clobbered)
X;    r10 = addr of temporary file rab
X;    r11 = addr of output file rab
X
Xcopy_fork:
X`009$rewind`009rab=(r10)
X`009$iferr
X`009$rab_store`009rab=(r10), ubf=outbuff, usz=#reclen
X
X10$:`009$get`009rab=(r10)
X`009cmpl`009r0, #rms$_eof
X`009beql`00920$
X`009$iferr
X`009$rab_store`009rab=(r11), rbf=@rab$l_rbf(r11)
X`009$put`009rab=(r11)
X`009$iferr
X`009brb`00910$
X
X20$:`009$disconnect`009rab=(r10)
X`009$iferr
X`009$close`009fab=@rab$l_fab(r10)
X`009$iferr
X`009rsb
X
X;************************************************************************
X;*************************  case_blind_compare  *************************
X;************************************************************************
X
X; Registers & parameters:
X;    r0 = addr of descr to compare input buffer to; returns value here
X
Xcase_blind_prefix:
X`009movzwl`009(r0), descr
X`009cmpw`009rab$w_rsz(r10), descr
X`009bgeq`009cbc_internal
X`009movl`009#-1, r0
X`009rsb
X
Xcase_blind_compare:
X`009movzwl`009rab$w_rsz(r10), descr
X`009brb`009cbc_internal
X
Xcbc_internal:
X`009movab`009@rab$l_rbf(r10), <descr+4>
X`009pushaq`009(r0)
X`009pushaq`009descr
X`009calls`009#2, g`094str$case_blind_compare
X`009rsb
X
X`009.end`009xbin
$ CALL UNPACK XBIN.MAR;1 743080312
$ v=f$verify(v)
$ EXIT


