FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   1
V01-004A                                                         3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000000	      1 	.TITLE	FDHostcry - AXP/VMS VIRT DISK Host Process (crypto disk)
                      00000000	      2 	.IDENT	'V01-004a'
                      00000000	      3 	.enable SUP	;whatever this does
00000001              00000000	      4 evax = 1
00000001              00000000	      5 alpha=1
00000001              00000000	      6 bigpage=1
00000020              00000000	      7 addressbits=32
                      00000000	      8 ; Uncopyright 1988, 1989, 1990 Glenn C. Everhart
                      00000000	      9 ; Public Domain. May be used by all for any purpose.
                      00000000	     10 ; Enjoy!
                      00000000	     11 ; changes :
                      00000000	     12 ; Mods to key generation algorithm to allow for
                      00000000	     13 ;  1. Longer base keys (128 blocks, not 32)
                      00000000	     14 ;  2. Better "confusion propagation" by not using the same CRC
                      00000000	     15 ;	we start with as part of what we XOR everything with.
                      00000000	     16 ;  3. Somewhat better confusion factor added to guard against
                      00000000	     17 ;	someone who tries known plaintext attack by doing a
                      00000000	     18 ;	better job randomizing the block number based part
                      00000000	     19 ;	of messing up the data.
                      00000000	     20 ;
                      00000000	     21 ;  It occurred to me that the fdhostcry2 host had a basic key generated
                      00000000	     22 ; from a known CRC polynomial series, modified by further XORs with
                      00000000	     23 ; other known CRCs and an XOR of the product of block number with
                      00000000	     24 ; part of the generated key, further confused by having the key order
                      00000000	     25 ; picked by yet another blocknumber * part of key product.
                      00000000	     26 ;
                      00000000	     27 ;   The potential codebreaker will know much of the cleartext of a valid
                      00000000	     28 ; ODS2 disk, so can probably figure out the cipher too easily. I don't
                      00000000	     29 ; know how exactly, but suspect this.
                      00000000	     30 ;   Therefore, the algorithm now generates a CRC of the key and uses
                      00000000	     31 ; parts of it for part of the CRC polynomial used to fill in 128 blocks
                      00000000	     32 ; worth of key xor data, and another part for the interval between
                      00000000	     33 ; CRC polynomials used. Thus the potential codebreaker now lacks a priori
                      00000000	     34 ; knowledge of the main CRC polynomial and interval used. By making the
                      00000000	     35 ; block number product larger, he now must handle a far larger block
                      00000000	     36 ; range also. I also have added another byte out of the key to the
                      00000000	     37 ; input block number prior to using it, so block zero is not guaranteed
                      00000000	     38 ; to use the first key block as before, but can use any of them.
                      00000000	     39 ;   This should make a cracker's life more difficult. Since this stuff
                      00000000	     40 ; is mainly done at setup time, the cryptodisk is still reasonably
                      00000000	     41 ; fast. One can of course obtain, say, a DES implementation (the Finnish
                      00000000	     42 ; one and variants of the 1977 ham radio one are widely available on
                      00000000	     43 ; networks and have appeared in the usenet) and use that. It can
                      00000000	     44 ; either replace these algorithms, or be used to re-encrypt the
                      00000000	     45 ; ciphertext. Software DES is quite slow, though, and this is probably
                      00000000	     46 ; NOT a good idea. That's why no special hooks are provided. Remember
                      00000000	     47 ; that a shared machine cannot be totally safe from people with privs
                      00000000	     48 ; and that the essential ingredient to using a cryptodisk is to be
                      00000000	     49 ; watchful of privilege use while data is in use on the cryptodisks.
                      00000000	     50 ;
                      00000000	     51 ; FACILITY:
                      00000000	     52 ; 
                      00000000	     53 ; Host process for FD: unit that uses a disk file as an encrypted virtual
                      00000000	     54 ; disk. The disk file and encryption key must be specified.
                      00000000	     55 ; The file need not be contiguous. 
                      00000000	     56 ;
                      00000000	     57 ; Command format:

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   2
V01-004A                                                         3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000000	     58 ; FDHost/switches VDn: filespec
                      00000000	     59 ;  where a .CLD file is expected so that this can all be parsed by
                      00000000	     60 ;  the CLI. The legal switches will just be /KEY="charstring"
                      00000000	     61 ;  to specify the encryption key to use to encrypt/decrypt the data.
                      00000000	     62 ;  All data will be encrypted on write or decrypted on read from the
                      00000000	     63 ;  file so that the information will be in the clear ONLY where read. Since
                      00000000	     64 ;  this process handles all this operation, the key will reside in this process
                      00000000	     65 ;  and not in some readily-locatable system area. Therefore it will be quite
                      00000000	     66 ;  difficult to find a key even when it is in memory.
                      00000000	     67 ;
                      00000000	     68 ; FDHOST/CLEAR will zero the ref. count only...nothing more.
                      00000000	     69 ; Note deassign normally will NOT be via command (I don't see how a
                      00000000	     70 ; command could ever be read) but via exit AST. We could in principle arrange
                      00000000	     71 ; an I/O that fddrv would store somewhere, so that if this process exited the
                      00000000	     72 ; fddrv driver would be informed of it and could complete the I/O AND set
                      00000000	     73 ; itself offline, but I am uncomfortable with this kind of jiggery-pokery.
                      00000000	     74 ; Better to just let the ref count be zeroed, since that's the only "dirty" trace
                      00000000	     75 ; around. This may allow playing some games later with multiple hosts also.
                      00000000	     76 ;   The expectation is that an fd: unit being assigned will have FDHOST/CLEAR
                      00000000	     77 ; run on the FD: unit before assigning it if the unit was set incorrectly.
                      00000000	     78 ;
                      00000000	     79 ; Note: define VMS$V5 to build for Version 5.x of VMS.
                      00000000	     80 ;
00000000              00000000	     81 vms$v5=0
                      00000000	     82 ; 
                      00000000	     83 ; AUTHOR:
                      00000000	     84 ; 
                      00000000	     85 ; G. EVERHART
                      00000000	     86 ;  5/17/1989 - Added stronger encryption logic. Still not incredibly
                      00000000	     87 ; strong, but at least more resistant to decryption by inspection.
                      00000000	     88 ; Algorithm is now good enough that I can't see any easy way to break it,
                      00000000	     89 ; even given the code, without a very long disk and lots of time. Thus I
                      00000000	     90 ; now consider it adequate for protecting sensitive information.  Remember:
                      00000000	     91 ; your systems guy may be very very GOOD at his job, but it still might not
                      00000000	     92 ; be a good idea for him to be able to print out the payroll file. This
                      00000000	     93 ; device is designed to help you keep him from being tempted. *I* find it
                      00000000	     94 ; good to know that some information on the system is secure and I cannot
                      00000000	     95 ; be blamed for any disclosures of it.
                      00000000	     96 ;
                      00000000	     97 ; 3/29/90 - Longer keys etc.
                      00000000	     98 ;  Resulting cryptodisks are not compatible with the 
                      00000000	     99 ; fdhostcry2 versions, so don't mix them up.  
                      00000000	    100 ;-- .PAGE
                      00000000	    101  .SBTTL	EXTERNAL AND LOCAL DEFINITIONS
                      00000000	    102 
                      00000000	    103 	.LIBRARY /ALPHA$LIBRARY:LIB/
                      00000000	    104 	.nocross	;save trees
                      00000000	    105 ; 
                      00000000	    106 ; EXTERNAL SYMBOLS
                      00000000	    107 ; 
                      00000000	    108 
                      00000000	    291 	$ADPDEF				;DEFINE ADAPTER CONTROL BLOCK
                      00000000	    359 	$CRBDEF				;DEFINE CHANNEL REQUEST BLOCK
                      00000000	    905 	$DCDEF				;DEFINE DEVICE CLASS
                      00000000	    950 	$DDBDEF				;DEFINE DEVICE DATA BLOCK
                      00000000	   1072 	$DEVDEF				;DEFINE DEVICE CHARACTERISTICS
                      00000000	   1182 	$DPTDEF				;DEFINE DRIVER PROLOGUE TABLE

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   3
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000000	   1446 	$EMBDEF				;DEFINE ERROR MESSAGE BUFFER
                      00000000	   1482 	$IDBDEF				;DEFINE INTERRUPT DATA BLOCK
                      00000000	   1960 	$IODEF				;DEFINE I/O FUNCTION CODES
                      00000000	   2204 	$IRPDEF				;DEFINE I/O REQUEST PACKET
                      00000000	   2457 	$PRDEF				;DEFINE PROCESSOR REGISTERS
                      00000000	   2694 	$PCBDEF				;DEFINE PCB OFFSETS
                      00000000	   2771 	$SCSDEF
                      00000000	   2817 	$SBDEF
                      00000000	   2854 	$STSDEF
                      00000000	   2855 	$STSDEF		; Symbols for returned status.
                      00000000	   3037 	$DVIDEF		; Symbols for $GETDVI service.
                      00000000	   3038 	$DCDEF		; Symbols for device type.
                      00000000	   3669 	$SSDEF				;DEFINE SYSTEM STATUS CODES
                      00000000	   4214 	$UCBDEF				;DEFINE UNIT CONTROL BLOCK
                      00000000	   4228 	$VECDEF				;DEFINE INTERRUPT VECTOR BLOCK
                      00000000	   4229 
                      00000000	   4230 ; 
                      00000000	   4261 	$ACBDEF		; Define AST Control Block offsets.
                      00000000	   4725 	$DYNDEF ;define dynamic data types
                      00000000	   4776 	$DDTDEF				; DEFINE DISPATCH TBL...
                      00000000	   4898 	$ptedef
                      00000000	   4911 	$vadef
                      00000000	   4936 	$irpedef
                      00000000	   4970 	$ipldef
                      00000000	   4971 	$pcbdef
                      00000000	   5030 	$jibdef
                      00000000	   5031 
                 ?01T 00000000	   5032 	.IF	DF,VMS$V5	;VMS V5 + LATER ONLY
                 ?01T 00000000	   5417 	$cpudef		;thanks to Chris Ho for V5 fix
                 ?01T 00000000	   5465 	$SPLCODDEF
                 ?01T 00000000	   5466 	.ENDC
                      00000000	   5467 
                      00000000	   5669 	$FIBDEF			; Symbols for file information block.
                      00000000	   5670 	$IODEF			; Symbols for QIO functions.
                      00000000	   5671 	$DVIDEF			; Symbols for $GETDVI calls.
                      00000000	   5699 	$TPADEF			; Symbols for LIB$TPARSE calls.
                      00000000	   5849 	$ATRDEF
                      00000000	   6062 	$FABDEF		; define lotsa' more rubbish we might want...
                      00000000	   6113 	$FATDEF
                      00000000	   6114 	$FIBDEF
                      00000000	   6115 	$IODEF
                      00000000	   6286 	$NAMDEF
                      00000000	   6558 	$RMSDEF
                      00000000	   6579 	$XABDEF
                      00000000	   6580 	.cross
                      00000000	   6581 ; 
                      00000000	   6582 ; UCB OFFSETS WHICH FOLLOW THE STANDARD UCB FIELDS
                      00000000	   6583 ; 
                      00000000	   6584 	$DEFINI	UCB			;START OF UCB DEFINITIONS
                      00000000	   6585 
                      00000000	   6586 ;.=UCB$L_BCR+2				;BEGIN DEFINITIONS AT END OF UCB
                      00000000	   6587 .=UCB$K_LCL_DISK_LENGTH	;v4 def end of ucb
                      0000010C	   6588 ; USE THESE FIELDS TO HOLD OUR LOCAL DATA FOR VIRT DISK.
                      0000010C	   6589 ; Add our stuff at the end to ensure we don't mess some fields up that some
                      0000010C	   6590 ; areas of VMS may want.
                      0000010C	   6591 ;The following must match the same-named data in the ACB extension
                      0000010C	   6592 	.blkl	2	;safety

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   4
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000118	   6593 $DEF	UCB_L_UCB	.BLKL	1	;Save UCB address here
                      0000011C	   6594 $DEF	UCB_L_MEMBUF	.BLKL	1	;Address of buffer for this transfer
                      00000120	   6595 $DEF	UCB_L_NSPTS	.BLKL	1	;Number of SPTs required for buffer
                      00000124	   6596 $DEF	UCB_L_SVPN	.BLKL	1	;Starting system page number
                      00000128	   6597 $DEF	UCB_L_ADRSPT	.BLKL	1	;Address of first SPT used
                      0000012C	   6598 $DEF	UCB_L_SVABUF	.BLKL	1	;System virtual address of user buffer
                      0000012C	   6599 ;
                      00000130	   6600 $DEF	UCB$HPID	.BLKL	1	;ADDRESS OF HOST UCB
                      00000134	   6601 $DEF	UCB$HLBN	.BLKL	1	;LBN OF HOST FILE
                      00000138	   6602 $DEF	UCB$HFSZ	.BLKL	1	;SIZE OF HOST FILE, BLKS
                      0000013C	   6603 $DEF	UCB$PPID	.BLKL	1	;PID OF ORIGINAL PROCESS FROM IRP BLK
                      00000140	   6604 $def	ucb$irps	.BLKL	1	;IRP save area during host proc action
                      00000144	   6605 $def	ucb$smbx	.BLKL	1	;mailbox UCB for work notices
                      00000144	   6606 ; Define save areas for UCB fields needed for I/O copies and used in
                      00000144	   6607 ; driver to process copies here.
                      00000148	   6608 $def	ucb$lsvapte	.blkl 1    ;saves ucb$l_svapte
                      0000014C	   6609 $def	ucb$lsts	.blkl 1     ;saves ucb$l_sts
                      00000150	   6610 $def	ucb$lsvpn	.blkl 1  ; similar
                      00000154	   6611 $def	ucb$wboff	.blkl 1  ; similar
                      00000154	   6612 ;$def	ucb$lmedia	.blkl	1
                      00000158	   6613 $def	ucb$irplmedia	.blkl	1	;irp$l_media save
                      0000015C	   6614 $def	ucb$wdirseq	.blkl	1
                      00000160	   6615 $def	ucb$lbcr	.blkl	1
                      00000160	   6616 ; NOTE: It is important to ENSURE that we never clobber IRP$L_PID twice!
                      00000160	   6617 ; therefore, adopt convention that UCB$PPID is cleared whenever we put
                      00000160	   6618 ; back the old PID value in the IRP. Only clobber the PID where
                      00000160	   6619 ; UCB$PPID is zero!!!
                      00000164	   6620 $DEF	UCB$L_MEMBUF	.BLKL	1	; MEMORY AREA
                      00000168	   6621 $DEF	UCB$L_MEMBF	.BLKL	1	; MEMORY BUFFER FOR CONTROL PROCESS
                      0000016C	   6622 $DEF	UCB$stats	.BLKL	1	;STATUS CODE SAVE AREA
                      00000170	   6623 $def	ucb$jiggery	.blkl	1	;adjust to refcnt to fix up
                      00000170	   6624 ; Since I/O postprocessing on virtual or paging I/O makes lots of
                      00000170	   6625 ; assumptions about location of window blocks, etc., which are
                      00000170	   6626 ; not true here (wrong UCB mainly), we'll bash the function status
                      00000170	   6627 ; we send to the host driver to look like physical I/O is being
                      00000170	   6628 ; done and save the real function code here. Later when FQ: does
                      00000170	   6629 ; I/O completion processing, we'll replace the original function
                      00000170	   6630 ; from here back in the IRP. This will be saved/restored along with
                      00000170	   6631 ; ucb$ppid (irp$l_pid field) and so synchronization will be detected
                      00000170	   6632 ; with ucb$ppid usage.
                      00000170	   6633 ;
                      00000174	   6634 $def    ucb$l_blk	.blkl	1	;block i/o if nonzero
                      00000178	   6635 $DEF	UCB$K_FQ_LEN	.BLKL	1	;LENGTH OF UCB
                      00000178	   6636 ;UCB$K_FQ_LEN=.				;LENGTH OF UCB
                      00000000	   6637 	$DEFEND	UCB			;END OF UCB DEFINITONS
                      00000000	   6638 ;
                      00000000	   6639 ; No need for direct UCB access here; this is done via the driver
                      00000000	   6640 ; itself. We just worry about the files, etc.
                      00000000	   6641 ; 
                      00000000	   6642 ; Macro to check return status of system calls.
                      00000000	   6643 ;
                      00000000	   6644 	.MACRO	ON_ERR	THERE,?HERE
                      00000000	   6645 	BLBS	R0,HERE
                      00000000	   6646 	BRW	THERE
                      00000000	   6647 HERE:	.ENDM	ON_ERR
                      00000000	   6648 
                      00000000	   6649 	.PSECT	FDHostD_DATA,RD,WRT,NOEXE,LONG

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   5
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000000	   6650 
                      00000000	   6651 dvl:	.long	0
                      00000004	   6652 DESBLK:
                      00000004	   6653 	.LONG	0
                      00000008	   6654 	.ADDRESS	XITHDL		;EXIT HANDLER ADDRESS
                      0000000C	   6655 	.long	0
                      00000010	   6656 	.address	dvl
                      00000014	   6657 	.LONG	0,0			;REST OF EXIT HANDLER CONTROL BLK
                      0000001C	   6658 ;
                      0000001C	   6659 DEFAULT_DEVICE:
                      0000001C	   6660 	.ASCID	/SYS$DISK/
                      0000002C	   6661 
                      0000002C	   6662 	.ALIGN LONG
                      0000007C	   6762 DFAB_BLK: $FAB FNM=<FD0.DSK>,XAB=FNXAB,FAC=<BIO,get,put>,rfm=fix,DNM=<FDCONT.DSK>,mrs=512
                      000000C0	   6942 DRAB_BLK: $RAB FAB=DFAB_BLK,BKT=0,RBF=RECBUF,UBF=RECBUF,USZ=512
                      000000C0	   6943 	.align	long
                      000000C0	   6944 RECBUF:	.BLKL	128	;512 BYTES = 128 LONGS
                      000002C0	   6945 	.long	0,0	;safety
                      000002C8	   6946 ;
                      000002F4	   7018 FNXAB:	$XABFHC	; XAB STUFF TO GET LBN, SIZE
                      000002F4	   7019 	.BLKL	20 ;SAFETY
                      00000344	   7020 	.ALIGN LONG
                      00000344	   7021 IOSTATUS: .BLKQ 1
                      0000034C	   7022 ;**
                      0000034C	   7023 VDV_BUF:			; Buffer to hold VDVice name.
                      0000034C	   7024 	.BLKB	40
00000028              00000374	   7025 VDV_BUF_SIZ = . - VDV_BUF
                      00000374	   7026 
                      00000374	   7027 VDV_BUF_DESC:			; Descriptor pointing to VDVice name.
                      00000374	   7028 	.LONG	 VDV_BUF_SIZ
                      00000378	   7029 	.ADDRESS VDV_BUF
                      0000037C	   7030 
                      0000037C	   7031 VPID:				; Owner of VDVice (if any).
                      0000037C	   7032 	.BLKL	1
                      00000380	   7033 
                      00000380	   7034 VDV_ITEM_LIST:			; VDVice list for $GETDVI.
                      00000380	   7035 	.WORD	 VDV_BUF_SIZ	; Make sure we a have a physical device name.
                      00000382	   7036 	.WORD	 DVI$_DEVNAM
                      00000384	   7037 	.ADDRESS VDV_BUF
                      00000388	   7038 	.ADDRESS VDV_BUF_DESC
                      0000038C	   7039 	.WORD	 4		; See if someone has this device allocated.
                      0000038E	   7040 	.WORD	 DVI$_PID
                      00000390	   7041 	.ADDRESS VPID
                      00000394	   7042 	.LONG	 0
                      00000398	   7043 	.WORD	 4
                      0000039A	   7044 	.WORD	 DVI$_DEVCLASS	; Check for a terminal.
                      0000039C	   7045 	.ADDRESS VDV_CLASS
                      000003A0	   7046 	.LONG	 0
                      000003A4	   7047 	.LONG	 0		; End if item list.
                      000003A8	   7048 
                      000003A8	   7049 VDV_CLASS:
                      000003A8	   7050 	.LONG	1
                      000003AC	   7051 ;^^^
                      000003AC	   7052 mbx_BUF:			; Buffer to hold mbxice name.
                      000003AC	   7053 	.BLKB	40
00000028              000003D4	   7054 mbx_BUF_SIZ = . - mbx_BUF
                      000003D4	   7055 

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   6
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      000003D4	   7056 mbx_BUF_DESC:			; Descriptor pointing to mbxice name.
                      000003D4	   7057 	.LONG	 mbx_BUF_SIZ
                      000003D8	   7058 	.ADDRESS mbx_BUF
                      000003DC	   7059 
                      000003DC	   7060 mPID:				; Owner of mbxice (if any).
                      000003DC	   7061 	.BLKL	1
                      000003E0	   7062 
                      000003E0	   7063 mbx_ITEM_LIST:			; mbxice list for $GETDVI.
                      000003E0	   7064 	.WORD	 mbx_BUF_SIZ	; Make sure we a have a physical device name.
                      000003E2	   7065 	.WORD	 DVI$_DEVNAM
                      000003E4	   7066 	.ADDRESS mbx_BUF
                      000003E8	   7067 	.ADDRESS mbx_BUF_DESC
                      000003EC	   7068 	.WORD	 4		; See if someone has this device allocated.
                      000003EE	   7069 	.WORD	 DVI$_PID
                      000003F0	   7070 	.ADDRESS mPID
                      000003F4	   7071 	.LONG	 0
                      000003F8	   7072 	.WORD	 4
                      000003FA	   7073 	.WORD	 DVI$_DEVCLASS	; Check for a terminal.
                      000003FC	   7074 	.ADDRESS mbx_CLASS
                      00000400	   7075 	.LONG	 0
                      00000404	   7076 	.LONG	 0		; End if item list.
                      00000408	   7077 
                      00000408	   7078 mbx_CLASS:
                      00000408	   7079 	.LONG	1
                      0000040C	   7080 ;^^^
                      0000040C	   7081 DEFNAM:
                      0000040C	   7082 
                      0000040C	   7083 WRK:	.BLKL	1	;SCRATCH INTEGER
                      00000410	   7084 ; DESCRIPTOR FOR VDn: "FILENAME"
                      00000410	   7085 	.ALIGN LONG
                      00000410	   7086 VDFNM:	.WORD	 255.	;LENGTH
                      00000412	   7087 VDFTP:	.BYTE	DSC$K_DTYPE_T	;TEXT TYPE
                      00000413	   7088 	.BYTE	1	; STATIC STRING
                      00000414	   7089 	.ADDRESS	VDFNMD
                      00000418	   7090 VDFNMD:	.BLKB	256.	; DATA AREA
                      00000518	   7091 ;
                      00000518	   7092 VDCHN:	.LONG	0	;CHANNEL HOLDERS
                      0000051C	   7093 ;
                      0000051C	   7094 ; FOR initial use, don't bother allocating the file. Assume the
                      0000051C	   7095 ; user can somehow allocate a contiguous file of the size he wants
                      0000051C	   7096 ; for himself.
                      0000051C	   7097 ;
                      0000051C	   7098 MBCHN:	.long	0	; channel for mailbox
                      00000520	   7099 MBUCB:	.long	0	; UCB address for mailbox
                      00000524	   7100 weakflg: .long	0	;1 if "weak" mode used
                      00000528	   7101 CLRDS:	.ASCID	/CLEAR/
                      00000535	   7102 KEYDS:	.ASCID	/KEY/	;CRYPTO KEY
                      00000540	   7103 weakds:	.ascid	/WEAK/	;"weak" keyword ... compatibe with old cryptodisk.
                      0000054C	   7104 ;			; (well, not REALLY compatible. Just cruddier...)
                      0000054C	   7105 ;ASDSC:	.ASCID	/ASSIGN/
                      0000054C	   7106 ;DASDSC:	.ASCID	/DEASSIGN/
                      0000054C	   7107 P1DSC:	.ASCID	/UNIT/
                      00000558	   7108 P2DSC:	.ASCID	/FNAM/
                      00000564	   7109 	.EVEN
                      00000564	   7110 ; DESCRIPTOR FOR DVn:DSKFIL "FILENAME"
                      00000564	   7111 	.ALIGN LONG
                      00000564	   7112 DDFNM:	.WORD	 255.	;LENGTH

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   7
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000566	   7113 DDFTP:	.BYTE	DSC$K_DTYPE_T	;TEXT TYPE
                      00000567	   7114 	.BYTE	1	; STATIC STRING
                      00000568	   7115 DDFNA:	.ADDRESS	DDFNMD
                      0000056C	   7116 DDFNMD:	.BLKB	256.	; DATA AREA
                      0000066C	   7117 DDCHN:	.LONG	0
                      00000670	   7118 ;
                      00000670	   7119 ;key descriptor
                      00000670	   7120 	.ALIGN LONG
                      00000670	   7121 KYFNM:	.WORD	 255.	;LENGTH
                      00000672	   7122 KYFTP:	.BYTE	DSC$K_DTYPE_T	;TEXT TYPE
                      00000673	   7123 	.BYTE	1	; STATIC STRING
                      00000674	   7124 KYFNA:	.ADDRESS	KYFNMD
                      00000678	   7125 KYFNMD:	.BLKB	256.	; DATA AREA
                      00000778	   7126 ;
                      00000778	   7127 ;
                      00000778	   7128 ; Data area for "disk"
                      00000778	   7129 ;
                      00000778	   7130 	.align long
00000005              00000778	   7131 fd_cyl=5		;make it 5 cyls of 64 blocks each
00000140              00000778	   7132 fd_blocks=fd_cyl*64	; blocks...
0000A000              00000778	   7133 fd_longs=fd_blocks*128	; longwords needed
                      00000778	   7134 ;fd_data::
                      00000778	   7135 ;	.BLKL fd_longs
                      00000778	   7136 ;	.blkl	128	;guard area for safety during debug...
                      00000778	   7137 ; ucb data area
                      00000778	   7138 HSTUCB:	.LONG	0	;HOST UCB ADDRESS
                      0000077C	   7139 ourpid:	.long	0	;;;store this locally
                      00000780	   7140 CLRCNT:	.long	0	;1 if clearing ref cnt ucb$w_refc
                      00000784	   7141 iosb:	.long	0,0,0,0	;iosb
                      00000794	   7142 ioprog:	.long	0	; i/o in progress flag if nonzero
                      00000798	   7143 ; BUFFER FOR COPIES OF DRIVR DATA
                      00000798	   7144 BUFHDR:	.LONG	0,0,0,0,0
                      000007AC	   7145 BUF:	.BLKL	8192.	; DATA AREA
                      000087AC	   7146 	.LONG	0,0	;SAFETY BUFFERS
                      000087B4	   7147 SETFD:	.LONG	0	;DECLARE PROCESS
                      000087B8	   7148 	.LONG	0	;PID
                      000087BC	   7149 HSTFZ:	.LONG	1	;DISK SIZE
                      000087C0	   7150 	.LONG	0,0,0,0	;EXTRA STUFF FOR OTHER CALLS
0000001C              000087D0	   7151 SETFDL=.-SETFD
                      000087D0	   7152 	.LONG	0,0,0,0,0	;SAFETY
                      000087E4	   7153 HSTFSZ:	.LONG	0	;DISK SIZE
                      000087E8	   7154 ;
                      000087E8	   7155 ; KERNEL ARG LIST
                      000087E8	   7156 K_ARG:
                      000087E8	   7157 	.LONG	2	;2 ARGS: fd device name, mb device name
                      000087EC	   7158 	.ADDRESS	VDV_BUF_DESC
                      000087F0	   7159 	.address	mbx_buf_desc
                      000087F4	   7160 	.PSECT	FDHostD_CODE,RD,WRT,EXE,LONG
                      00000000	   7161 	.ENTRY	FDHostD,^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>
                      00000002	   7162 ; only fdn: name on command line
                      00000002	   7163 	PUSHAB	WRK		;PUSH LONGWORD ADDR FOR RETLENGTH
                      00000008	   7164 	PUSHAB	VDFNM		;ADDRESS OF DESCRIPTOR TO RETURN
                      0000000E	   7165 	PUSHAB	P1DSC		; GET P1 (VDn: UNIT)
                      00000014	   7166 	CALLS	#3,G^CLI$GET_VALUE	;GET VALUE OF NAME TO VDFNM
                      00000021	   7167 	ON_ERR	FDHostD_EXIT
                      00000021	   7168 290$:
                      00000021	   7169 	clrl	clrcnt	;flag clear count if 1

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   8
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000027	   7170 	PUSHAB	clrds	; 'CLEAR'
                      0000002D	   7171 	CALLS	#1,G^CLI$PRESENT	; IS /CLEAR USED?
                      00000034	   7172 	CMPL	R0,#CLI$_PRESENT	; IF EQ YES
                      0000003B	   7173 	BNEQ	293$
                      0000003D	   7174 	incl	clrcnt			; FLAG CLEARING USAGE
                      00000043	   7175 	BRW	295$			;ON CLEAR DON'T BOTHER WITH 2ND FILENAME
                      00000046	   7176 293$:
                      00000046	   7177 	PUSHAB	WRK		; GET 2ND FILE (REAL FILE) LONGWORD FOR LEN
                      0000004C	   7178 	PUSHAB	DDFNM		; & ITS DESCRIPTOR
                      00000052	   7179 	PUSHAB	P2DSC		; & PARAMETER NAME 'P2'
                      00000058	   7180 	CALLS	#3,G^CLI$GET_VALUE	; GET FNM
                      00000065	   7181 	ON_ERR	fdhostd_EXIT
                      00000065	   7182 ;	$ASSIGN_S -				; Get a channel to the 
                      00000065	   7183 ;		DEVNAM=DDFNM,-		; device for host file
                      00000065	   7184 ;		CHAN=DDCHN
                      00000065	   7185 ;	ON_ERR	fdhostd_EXIT
                      00000065	   7186 ; OPEN THE FILE, CHECK ITS INITIAL LBN
                      00000065	   7187 ; IF ERROR OR NOT CONTIG, EXIT...
                      00000065	   7188 ; DO VIA OPENING FILE AND READING ITS' STATBLOCK VIA
                      00000065	   7189 ; QIO...
                      00000065	   7190 ; SET UP FOR FILENAME WE REALLY FOUND IN FAB...
                      00000065	   7191 	MOVL	DDFNA,DFAB_BLK+FAB$L_FNA	;SET UP FILENAME ADDR
                      00000070	   7192 	MOVB	DDFNM,DFAB_BLK+FAB$B_FNS	;AND LENGTH
                      0000007B	   7193 	brb	159$
                      0000007D	   7194 149$:	brw	fdhostd_exit
                      00000080	   7195 159$:
                      0000008D	   7244 	$OPEN	FAB=DFAB_BLK
                      0000008D	   7245 	BLBC	R0,149$		; FAILURE IF FILE WON'T OPEN
                      00000090	   7246 ; FNXAB HAS INFO ON LBN, SIZE
                      00000090	   7247 ;	MOVL	FNXAB+XAB$L_SBN,HSTLBN	; GET HOST'S start LBN (0 IF NON CONTIG.)
                      00000090	   7248 	MOVL	FNXAB+XAB$L_HBK,HSTFSZ	; GET FILE SIZE. (CHECK THAT BELOW)
                      0000009B	   7249 ; No need to decrement size, but must make it a multiple of 64
                      0000009B	   7250 ; blocks for a 64-sector geometry.
                      0000009B	   7251 ;	DECL	HSTFSZ		;;;COUNT DOWN 1 TO ACCOUNT FOR BOOT BLOCK
                      0000009B	   7252 	BICL2	#63,HSTFSZ	;;;MAKE A MULTIPLE OF 64 BLKS
                      000000A2	   7253 	MOVL	HSTFSZ,HSTFZ		;FILE SIZE
                      000000BA	   7257 	$CONNECT	RAB=DRAB_BLK	;FINISH OPEN
                      000000BA	   7258 	BLBC	R0,149$		; FAILURE IF FILE WON'T OPEN
                      000000BD	   7259 	PUSHAB	keyds	; 'KEY'
                      000000C3	   7260 	clrl	kyfnmd	;zero out key info initially
                      000000C9	   7261 	clrq	binkey	;null binary key also
                      000000CF	   7262 	clrl	weakflg	;zero "weak" flag
                      000000D5	   7263 	CALLS	#1,G^CLI$PRESENT	; IS /KEY USED?
                      000000DC	   7264 	CMPL	R0,#CLI$_PRESENT	; IF EQ YES
                      000000E3	   7265 	bneq	295$			; if no /key given, ignore
                      000000E5	   7266 	PUSHAB	WRK		; GET LONGWORD FOR LEN of key
                      000000EB	   7267 	PUSHAB	KYFNM		; & ITS DESCRIPTOR
                      000000F1	   7268 	PUSHAB	KEYDS		; & PARAMETER NAME 'KEY'
                      000000F7	   7269 	CALLS	#3,G^CLI$GET_VALUE	; GET FNM
                      00000104	   7270 	ON_ERR	fdhostd_EXIT
                      00000104	   7271 ; now kyfnmd should contain data of key string as text
                      00000104	   7272 	movl	wrk,kyfnm	;store data length of returned string
                      0000010F	   7273 	jsb	keyset		;set up key binary
                      00000115	   7274 ; Now test for possible specified "weak" flag and save the info for our crypt/decrypt
                      00000115	   7275 ; routines.
                      00000115	   7276 	pushab	weakds	;'weak'
                      0000011B	   7277 	calls	#1,g^cli$present	;did user say /weak ?

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page   9
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000122	   7278 	cmpl	r0,#cli$_present	;if neql no
                      00000129	   7279 	bneq	295$			; so branch if no /weak seen
                      0000012B	   7280 	incl	weakflg
                      00000131	   7281 295$:
                      00000131	   7282 ; MUST HAVE ASSIGNMENT TO VD: UNIT IN ANY CASE.
                      00000131	   7283 	$ASSIGN_S -
                      00000131	   7303 		DEVNAM=VDFNM,-	; GET CHANNEL FOR VDn:
                      00000146	   7350 		CHAN=VDCHN
                      0000014C	   7351 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      0000014C	   7352 	$GETDVI_S -
                      0000014C	   7365 		CHAN=vdchn,-	; Command line has device name.
                      0000016A	   7366 		ITMLST=VDV_ITEM_LIST
                      0000016A	   7367 	BLBS	R0,140$
                      0000016D	   7368 	BRW	FDHostd_EXIT
                      00000170	   7369 140$:
                      00000170	   7370 	tstl	clrcnt
                      00000176	   7371 	bneq	162$		;if just clearing ref count, no need for mbx
                      00000178	   7372 ; Set up mailbox channel
                      00000178	   7395 	$crembx_s prmflg=#0,chan=mbchn,maxmsg=#576,bufquo=#5760,-
                      00000197	   7410 		promsk=#0
                      0000019D	   7411 	On_ERR	fdhostd_exit
                      0000019D	   7412 ; need to get UCB address here somehow...
                      0000019D	   7413 	$GETDVI_S -
                      0000019D	   7414 		CHAN=mbchn,-	; Command line has device name.
                      000001BB	   7415 		ITMLST=mbx_item_list
                      000001BB	   7416 	BLBS	R0,176$
                      000001BE	   7417 161$:	BRW	FDHostd_EXIT
                      000001C1	   7418 176$:
                      000001C1	   7419 ; Got now the actual device name of the mailbox
                      000001C1	   7420 ; Let the kernel call perform the UCB lookup for us.
                      000001C1	   7421 ;
                      000001C1	   7422 ; FOUND A UNIT. NOW DECLARE EXIT HANDLER TO CLEAN UP
                      000001C1	   7423 ; IF WE GET A $FORCEX TO TERMINATE THE HOST PROCESS.
                      000001C1	   7424 	PUSHAB	DESBLK		; ADDRESS OF DESBLK
                      000001C7	   7425 	CALLS	#1,G^SYS$DCLEXH	; DECLARE EXIT HANDLER
                      000001CE	   7426 ; NOW GET OUR PID FOR USE LATER
                      000001CE	   7427 ;
                      000001CE	   7428 162$:
                      000001CE	   7429 	$CMKRNL_S -
                      000001E1	   7436 		ROUTIN=BASHUCB,ARGLST=K_ARG
                      000001E1	   7437 ; Now we have the PID for our process in OURPID and are ready to tell
                      000001E1	   7438 ; the driver we're here!
                      000001E1	   7439 	tstl	clrcnt
                      000001E7	   7440 	bneq	161$		;exit now if just zeroing count
                      000001E9	   7441 	MOVL	OURPID,SETFD+4	;STORE PID (IPID!!!)
                      000001F4	   7442 	movl	HSTFSZ,setfd+8	;size of disk (preset also)
                      000001FF	   7443 	movl	mbucb,setfd+12		; Comm mailbox UCB address
                      0000020A	   7444 	CLRL	SETFD		; flag that this is the setup
                      00000210	   7445 	movl	#setfdl,r4	; length of buffer
                      00000213	   7446 ; Note we must modified func code from io$_format to something with
                      00000213	   7447 ; a modifier bit set so FDDRV will treat this as OUR special QIO.
                      00000213	   7462 	$qiow_s efn=#1,chan=vdchn, -
                      0000023C	   7477 	iosb=iosb,func=#<io$_format+128>,p1=setfd,p2=R4
                      00000242	   7478 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      00000242	   7479 	clrl	ioprog		; no i/o in progress yet
                      00000248	   7480 ; now we're ready to await work from the driver
                      00000248	   7481 EVTLOOP:

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  10
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000248	   7482 ; When FDDRV has work, it sends the buffer header it has via a
                      00000248	   7483 ; mailbox message. Read that here to get our indication there
                      00000248	   7484 ; is something to do, and incidentally to get initial info on I/O
                      00000248	   7485 ; direction and size.
                      00000248	   7486 ;
                      00000248	   7487 ; Read the mailbox to get our data
                      00000248	   7488 ; Use QIOW$ to assure that we don't do anything until there is work.
                      00000248	   7489 ; (this also avoids having to use internal routines to control
                      00000248	   7490 ;  host execution.)
                      00000248	   7491 	$qiow_s efn=#10,chan=mbchn,-
                      0000026F	   7492 	iosb=iosb,func=#io$_readlblk,p1=bufhdr,p2=#20
                      00000275	   7493 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      00000275	   7494 ;	$qiow_s efn=#1,chan=vdchn,func=#io$_format,p1=#setfd,p2=#setfdl
                      00000275	   7495 ;SHOULD NOW HAVE HEADER...
                      00000275	   7496 ; Check call is not spurious. Driver sets 255 in buffer header when it
                      00000275	   7497 ; gets done an i/o for client, and puts 0 or 1 there for a real
                      00000275	   7498 ; transfer.
                      00000275	   7499 	cmpl	bufhdr,#2
                      0000027C	   7500 	bgtru	evtloop		;if not really doing i/o, spurious ef
                      0000027E	   7501 				; set, just ignore
                      0000027E	   7502 	MOVL	#1,IOPROG	;FLAG AN I/O IN PROGRESS THAT NEEDS TO
                      00000285	   7503 				;BE COMPLETED
                      00000285	   7504 	CMPL	BUFHDR,#1	;1=WRITE, SOMETHING'S WAITING IN THE DRIVER
                      0000028C	   7505 	beql	writeop
                      0000028E	   7506 	jmp	readop
                      00000294	   7507 ;	BNEQ	READOP
                      00000294	   7508 WRITEOP:
                      00000294	   7509 ; BUFHDR+8 CONTAINS BYTECOUNT FOR DATA PART OF TRANSFER
                      00000294	   7510 	MOVL	#20,SETFD+8	;BUFFER HEADER size
                      0000029B	   7511 	ADDL2	BUFHDR+8,SETFD+8	;SO ADD HEADER SIZE
                      000002A6	   7512 	MOVL	#3,SETFD	;GET DATA
                      000002AD	   7513 	MOVL	#BUFHDR,SETFD+4	;BUFFER HDR ADDRESS
                      000002B8	   7514 	movl	#1,setfd+12	;success indicator
                      000002BF	   7515 	movl	#setfdl,r4
                      000002C2	   7516 	$qiow_s efn=#1,chan=vdchn, -
                      000002EB	   7517 	iosb=iosb,func=#<io$_format+128>,p1=setfd,p2=R4
                      000002F1	   7518 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      000002F1	   7519 ;	$qiow_s efn=#1,chan=vdchn,func=#io$_format,p1=#setfd,p2=#setfdl
                      000002F1	   7520 ; LOADS DATA INTO LOCAL BUFFER FROM DRIVER
                      000002F1	   7521 ; NOW HAVE TO MOVE IT INTO STORAGE HERE
                      000002F1	   7522 	MOVL	BUFHDR+4,R0	;GET BLOCK NUMBER
                      000002F8	   7523 	INCL	R0		;MAP TO VBN
                      000002FA	   7524 	MOVL	R0,DRAB_BLK+RAB$L_BKT	;SET IT UP
                      00000301	   7525 	movw	#512.,drab_blk+rab$w_rsz ;512 byte blks
                      0000030A	   7526 ; LOOP OVER BLKS IN REQUEST
                      0000030A	   7527 	movl	bufhdr+8,r6	;get bytecount to move
                      00000311	   7528 	addl2	#511,r6		;round up
                      00000318	   7529 	ashl	#-9,r6,r6	;convert to blks
                      0000031D	   7530 ; r6 is not messed up by movc3...
                      0000031D	   7531 	movab	buf,r7		;scratch buffer address
                      00000324	   7532 15$:
                      00000324	   7533 	movab	recbuf,r9	;data to here
                      0000032B	   7534 	movl	r7,r8		;data from here
                      0000032E	   7535 	MOVC3	#512,(r8),(R9)	; STORE THE DATA IN OUR SPACE
                      00000334	   7536 	pushl	r6
                      00000336	   7537 	movl	drab_blk+rab$l_bkt,r6	;pass block number to crypt
                      0000033D	   7538 	jsb	crypt		;encrypt recbuf

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  11
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000343	   7539 	popl	r6		;don't bash r6
                      00000353	   7543 	$write rab=drab_blk
                      00000359	   7544 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      00000359	   7545 	addl2	#512,r7		;pass this blk's data
                      00000360	   7546 	incl	drab_blk+rab$l_bkt ;pass this blk in file too
                      00000366	   7547 	decl	r6		;count down blks to do
                      00000368	   7548 	bgtr	15$		;copy all blks
                      0000036A	   7549 	JMP	COMMON
                      00000370	   7550 READOP:
                      00000370	   7551 ; READING DATA TO CLIENT. MUST GET DATA, THEN SEND TO DRIVER.
                      00000370	   7552 	MOVL	BUFHDR+4,R0	;GET BLOCK NUMBER
                      00000377	   7553 	INCL	R0		;MAP TO VBN
                      00000379	   7554 	MOVL	R0,DRAB_BLK+RAB$L_BKT	;SET IT UP
                      00000380	   7555 	movw	#512.,drab_blk+rab$w_rsz ;512 byte blks
                      00000389	   7556 ; LOOP OVER BLKS IN REQUEST
                      00000389	   7557 	movl	bufhdr+8,r6	;get bytecount to move
                      00000390	   7558 	addl2	#511,r6		;round up
                      00000397	   7559 	ashl	#-9,r6,r6		;convert to blks
                      0000039C	   7560 ; r6 is not messed up by movc3...
                      0000039C	   7561 	movab	buf,r7		;scratch buffer address
                      000003A3	   7562 				;(8K + header)
                      000003A3	   7563 16$:
                      000003B0	   7567 	$read	rab=drab_blk
                      000003B6	   7568 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      000003B6	   7569 	pushl	r6
                      000003B8	   7570 	movl	drab_blk+rab$l_bkt,r6	;pass block number to crypt
                      000003BF	   7571 	jsb	decrypt		; decrypt recbuf
                      000003C5	   7572 	popl	r6
                      000003C8	   7573 	movab	recbuf,r9	;data from here
                      000003CF	   7574 	movl	r7,r8		;data to here
                      000003D2	   7575 	MOVC3	#512,(r9),(R8)	; STORE THE DATA IN OUR SPACE
                      000003D8	   7576 	addl2	#512,r7		;pass this blk's data
                      000003DF	   7577 	incl	drab_blk+rab$l_bkt ;pass this blk in file too
                      000003E5	   7578 	decl	r6		;count down blks to do
                      000003E7	   7579 	bgtr	16$		;copy all blks
                      000003E9	   7580 	movab	buf,r2
                      000003F0	   7581 	ADDL3	#20,BUFHDR+8,SETFD+8	; GET LENGTH TO XFER
                      000003FC	   7582 	MOVL	#BUFHDR,SETFD+4	;BUFFER HDR ADDRESS
                      00000407	   7583 	MOVL	#2,SETFD	;HOST TO DRIVER COPY
                      0000040E	   7584 	movl	#setfdl,r4
                      00000411	   7585 	movl	#1,setfd+12	;success...
                      00000418	   7586 	movl	bufhdr+8,setfd+16	;/length sent
                      00000423	   7587 	$qiow_s efn=#1,chan=vdchn, -
                      0000044C	   7588 	iosb=iosb,func=#<io$_format+128>,p1=setfd,p2=R4
                      00000452	   7589 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      00000452	   7590 ; NOW DATA IS IN DRIVER SPACE AS REQUIRED
                      00000452	   7591 COMMON:
                      00000452	   7592 ; NOW TERMINATE THE I/O AND AWAIT MORE WORK.
                      00000452	   7593 	MOVL	#1,SETFD	;TERMINATE I/O PACKET
                      00000459	   7594 	MOVL	BUFHDR,SETFD+4	;SAVE TRANSFER DIRECTION
                      00000464	   7595 	MOVL	BUFHDR+4,SETFD+8	; BLOCK #
                      0000046F	   7596 	MOVL	BUFHDR+8,SETFD+12	; NO. BYTES IN BUFFER
                      0000047A	   7597 	MOVZWL	#SS$_NORMAL,SETFD+16	; IOSB 1
                      00000481	   7598 	CLRL	SETFD+20	; IOSB 2	; ALWAYS SUCCESS
                      00000487	   7599 	movl	#setfdl,r4
                      0000048A	   7600 	$qiow_s efn=#1,chan=vdchn, -
                      000004B3	   7601 	iosb=iosb,func=#<io$_format+128>,p1=setfd,p2=R4

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  12
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      000004B9	   7602 	ON_ERR	FDHostD_EXIT	; SKIP OUT IF ERROR
                      000004B9	   7603 ; NOW DONE TRANSFER
                      000004B9	   7604 	CLRL	IOPROG	; SAY NO I/O IN PROCESS IF WE ARE FORCED TO EXIT
                      000004BF	   7605 	JMP	EVTLOOP
                      000004C3	   7606 ; BE SURE WE DON'T LEAVE THE CHANNELS ASSIGNED TO THE DEVICES
                      000004C3	   7607 ; EITHER...
                      000004C3	   7608 ;	$DASSGN_S CHAN=VDCHN
                      000004C3	   7609 ;	RET
                      000004C3	   7610 FDHostd_exit:
                      000004C3	   7611 	tstl	ioprog		;i/o going on to fd:?
                      000004C9	   7612 	beql	1$		;if not, just return
                      000004CB	   7613 	calls	#0,xithdl	;call exit handler
                      000004D2	   7614 1$:
                      000004D2	   7615 	RET
                      000004D3	   7616 ;
                      000004D3	   7617 
                      000004D3	   7618 ; BASHUCB - AREA TO MESS UP UCB WITH OUR FILE DATA
                      000004D3	   7619 ; BEWARE BEWARE BEWARE
                      000004D3	   7620 ;  runs in KERNEL mode ... HAS to be right.
                      000004D3	   7621 
                      000004D3	   7622 	.ENTRY	BASHUCB,^M<R2,R3,R4,R5,R6,R7,R8>
                      000004D5	   7623 ; TAKEN LOOSELY FROM ZERO.MAR
                      000004D5	   7624 ; Obtains host's PID, and also sets up correct size in driver UCB
                      000004D5	   7625 ; both by cylinder and by block.
                 ?01F 000004D5	   7626 	.if	df,$$xdt
                 ?01F 000004D5	   7627 	jsb	g^ini$brk	;call xdt
                 ?01F 000004D5	   7628 	.endc
                 ?01F 000004D5	   7629 	.if	ndf,vms$v5
                 ?01F 000004D5	   7630 	MOVL	G^SCH$GL_CURPCB,R4	;;; NEED OUR PCB
                 ?01T 000004D5	   7631 	.iff
                 ?01T 000004D5	   7632 	MOVL	G^CTL$GL_PCB,R4		;;; NEED OUR PCB (VMS V5)
                 ?01T 000004DC	   7633 ;;; (gets it in internal form, just as needed)
                 ?01T 000004DC	   7634 	.endc
                      000004DC	   7635 ;;; NEED IPID FOR DRIVER'S CALL TO SCH$POSTEF TO THIS HOST!!
                      000004DC	   7636 	MOVL	PCB$L_PID(R4),OURPID	;;;SAVE OUR PID IN INTERNAL FORM
                      000004E5	   7637 	JSB	G^SCH$IOLOCKW		;;; LOCK I/O DATABASE
                      000004EB	   7638 	CLRL	HSTUCB			;;; ZERO "HOST" UCB
                      000004F1	   7639 	tstl	clrcnt		;;;just zeroing count?
                      000004F7	   7640 	bneq	126$
                      000004F9	   7641 	movl	8(ap),r1		;;;get mailbox info first
                      000004FD	   7642 	jsb	g^ioc$searchdev
                      00000503	   7643 	blbc	r0,59$			;;;on failure, give up
                      00000506	   7644 	movl	r1,mbucb		;;;store away mailbox UCB
                      0000050D	   7645 126$:	MOVL	4(AP),R1		;;; ADDRESS DVC NAME DESCRIPTORS
                      00000511	   7646 	JSB	G^IOC$SEARCHDEV		;;; GET UCB ADDRESS INTO R1
                      00000517	   7647 	BLBS	R0,60$
                      0000051A	   7648 59$:	BRW	BSH_XIT
                      0000051D	   7649 60$:
                      0000051D	   7650 ; BUGGER THE UCB
                      0000051D	   7651 ; ASSUMES FILE LBN AND SIZE ALREADY RECORDED
                      0000051D	   7652 ; ALSO ASSUMES THAT ZERO LBN OR SIZE MEANS THIS ENTRY NEVER CALLED.
                      0000051D	   7653 ; (REALLY ONLY WORRY ABOUT ZERO SIZE; IF WE OVERMAP A REAL DEVICE
                      0000051D	   7654 ; THEN ZERO INITIAL LBN COULD BE OK.)
                      0000051D	   7655 ;
                      0000051D	   7656 ; Set device size. Since this is true of any disk, just use the offsets.
                      0000051D	   7657 ; No need for duplicating the UCB defs here.
                      0000051D	   7658 	tstl	clrcnt		;;;just zeroing use count

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  13
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000523	   7659 	beql	127$		;;;if eql, no, normal ops
                      00000525	   7660 	movl	#1,ucb$l_refc(r1)	;;;zero ref count (in case it got set -1)
                      00000529	   7661 ;;; (note we set it to 1 so it decrements to 0 on our exit.)
                      00000529	   7662 
                      00000529	   7663 ; reset the buffer size so fddriver's internal buffer is matched
00002000              00000529	   7664 fdbuf=8192.
                      00000529	   7665 	movl	#fdbuf,ucb$l_maxbcnt(r1)	;;;reset max byte cnt
                      00000532	   7666 	tstl	ucb$irps(r1)	;;;is an I/O hanging and uncompleted?
                      00000536	   7667 	beql	159$		;;;if eql no
                      00000538	   7668 	incl	ioprog		;;;flag cleanup needed
                      0000053E	   7669 	BISL	#UCB$M_ONLINE,UCB$L_STS(R1) ;;; FLAG ONLINE
                      00000543	   7670 	BISL	#UCB$M_VALID,UCB$L_STS(R1) ;;; AND VOL VALID
                      0000054C	   7671 	brb	128$		;;; and do NOT leave offline yet
                      0000054E	   7672 159$:	BICL	#UCB$M_ONLINE,UCB$L_STS(R1) ;;; FLAG OFFLINE
                      00000553	   7673 	BICL	#UCB$M_VALID,UCB$L_STS(R1) ;;; AND VOL INVALID
                      0000055C	   7674 	brb	128$		;;;exit, success
                      0000055E	   7675 127$:
                      0000055E	   7676 ;
                      0000055E	   7677 	tstl	ucb$l_refc(r1)	;;;fix up stray ref counts
                      00000561	   7678 	bneq	140$		;;;
                      00000563	   7679 142$:	movl	#1,ucb$l_refc(r1)	;;;if it was 0, keep from getting 65535
                      00000567	   7680 	brb	141$
                      00000569	   7681 140$:
                      00000569	   7682 	cmpl	ucb$l_refc(r1),#^xFFFFFF00	;;;small neg numbers also look bogus
                      00000571	   7683 	bgtru	142$			;;;so fix these up also
                      00000573	   7684 141$:
                      00000573	   7685 	MOVL	HSTFSZ,UCB$L_MAXBLOCK(R1) ;;; (SAVE SIZE TWICE, FOR RMS
                      0000057C	   7686 	MOVL	HSTFSZ,R0		;;; GET HOST SIZE IN CYLINDERS
                      00000583	   7687 	ASHL	#-6,R0,R0		;;; GET # CYLINDERS IN SIZE NOW
                      00000588	   7688 	MOVW	R0,UCB$W_CYLINDERS(R1)	;;; SAVE IN UCB FOR REST OF VMS
                      0000058C	   7689 ; This computation is redone in fddrv itself, but do it here also.
                      0000058C	   7690 ; It assumes in fddrv that there are 64 sectors/cylinder.
                      0000058C	   7691 	BISL	#UCB$M_ONLINE,UCB$L_STS(R1) ;;; FLAG ONLINE NOW
                      00000591	   7692 	BISL	#UCB$M_VALID,UCB$L_STS(R1) ;;; AND VOL VALID
                      0000059A	   7693 ;;; THAT'S IT... SHOULD BE OK NOW.
                      0000059A	   7694 128$:	MOVL	#SS$_NORMAL,R0
                      0000059D	   7695 BSH_XIT:
                      0000059D	   7696 	PUSHL	R0
                      0000059F	   7697 	JSB	G^SCH$IOUNLOCK		;;; UNLOCK I/O DATABASE (DROP IPL)
                      000005A5	   7698 	POPL	R0			;;; REMEMBER R0
                      000005A8	   7699 	RET	;;; BACK TO USER MODE NOW
                      000005A9	   7700 ;;;(avoid paging problems in kernel)
                      000005A9	   7701 ; EXIT HANDLER
                      000005A9	   7702 ; CLEARS I/O ASSIGNMENT TO FD: UNIT
                      000005A9	   7703 ;
                      000005A9	   7704 	.ENTRY	XITHDL,^M<R2,R3,R4,R5,R6>
                      000005AB	   7705 ioxit:	TSTL	IOPROG
                      000005B1	   7706 ; Clean out any existing pending I/O with special call to FDdrv to
                      000005B1	   7707 ; finish it off.
                      000005B1	   7708 	BEQL	1$
                      000005B3	   7709 	MOVL	#1,SETFD	;TERMINATE I/O PACKET
                      000005BA	   7710 	MOVL	BUFHDR,SETFD+4	;SAVE TRANSFER DIRECTION
                      000005C5	   7711 	MOVL	BUFHDR+4,SETFD+8	; BLOCK #
                      000005D0	   7712 	MOVL	BUFHDR+8,SETFD+12	; NO. BYTES IN BUFFER
                      000005DB	   7713 	MOVZWL	#SS$_ACCVIO,SETFD+16	; IOSB 1
                      000005E2	   7714 	CLRL	SETFD+20	; IOSB 2	; FAILURE
                      000005E8	   7715 	movl	#setfdl,r4

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  14
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      000005EB	   7716 	$qiow_s efn=#1,chan=vdchn, -
                      00000614	   7717 	iosb=iosb,func=#<io$_format+128>,p1=setfd,p2=R4
                      00000614	   7718 1$:
                      00000614	   7719 	CLRL	SETFD	;DECLARE/UNDECLARE
                      0000061A	   7720 	PUSHAB	DESBLK		; ADDRESS OF DESBLK
                      00000620	   7721 	CALLS	#1,G^SYS$CANEXH	; CANCEL EXIT HANDLER
                      00000627	   7722 	clrl	setfd+4	;FLAG NOBODY HOME NOW
                      0000062D	   7723 	clrl	setfd+8
                      00000633	   7724 	movl	#setfdl,r4
                      00000636	   7725 	$qiow_s efn=#1,chan=vdchn, -
                      0000065F	   7726 	iosb=iosb,func=#<io$_format+128>,p1=setfd,p2=R4
                      0000065F	   7727 ; declare host no longer is home.
                      0000065F	   7728 	RET			; FINISH EXIT
                      00000660	   7729 	.PSECT	CRY_DATA,RD,WRT,NOEXE,LONG
                      00000000	   7730 
                      00000000	   7731 ;
                      00000000	   7732 ; Encrypt / Decrypt routines
                      00000000	   7733 ; Inputs:
                      00000000	   7734 ;  Key string in KYFNMD, length in KYFNM
                      00000000	   7735 ;  3 entries:
                      00000000	   7736 ;
                      00000000	   7737 ; KEYSET builds a binary key from the data entered
                      00000000	   7738 ; Crypt encrypts 512 byte RECBUF in place
                      00000000	   7739 ; Decrypt decrypts 512 byte RECBUF in place
                      00000000	   7740 ;
                      00000000	   7741 ; All are called by JSB and assume registers saved/restored as used.
                      00000000	   7742 ; Data for encrypt/decrypt routines.
                      00000000	   7743 polygw:	.long	2	;2 args
                      00000004	   7744 	.address	polyw
                      00000008	   7745 wta:	.address	crcwrk
                      0000000C	   7746 polyw:	.long	0		;scratch copy of crc poly
                      00000010	   7747 crcwrk:	.blkl	16		;crc working table
                      00000050	   7748 binkey:	.long	0,0
                      00000058	   7749 jkkey:	.long	0	;junk key
                      0000005C	   7750 jkadd:	.long	0	;amt to add to polynomials
                      00000060	   7751 ; The 3 random polynomials here are the starting point of making the
                      00000060	   7752 ; collection of hopefully-random junk bits we XOR with. Since I'm no
                      00000060	   7753 ; cryptographer, I just pulled out a couple random ones, plus the
                      00000060	   7754 ; autodin polynomial that seems to be widespread. There might be
                      00000060	   7755 ; zillions of mathematical backdoor attacks on this stuff...I don't know...
                      00000060	   7756 ; and the whole transform might even be affine. However, the use here is
                      00000060	   7757 ; to keep data secure from a priv'd user who might decide to come in
                      00000060	   7758 ; at night or on a weekend & try to view or tamper with, say, the
                      00000060	   7759 ; payroll file, customer list, etc. These folks are very seldom
                      00000060	   7760 ; cryptographers. (Besides, the FILES can be encrypted on top of this
                      00000060	   7761 ; if desired.)
                      00000060	   7762 crcjk:	.long ^XDE683251	; random poly
                      00000064	   7763 crcpo:	.long ^XEDB88320	;AUTODIN POLY
                      00000068	   7764 ;crcta:	.address	crcpo
                      00000068	   7765 crcp1:	.long ^XBACC8010	;yet another random poly, pulled out of my
                      0000006C	   7766 				;navel.
                      0000006C	   7767 ;CRCTB:	.ADDRESS	CRCP1
                      0000006C	   7768 crck:	.long ^xf03ba241	;random crc
                      00000070	   7769 crcv:	.long ^xf03ba200
                      00000074	   7770 ;crcvt:	.address	crcv
                      00000074	   7771 ; Following is our block of "junk" data. The larger it is, the more work
                      00000074	   7772 ; one imagines should be needed to decode the disk, but it costs essentially

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  15
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000074	   7773 ; nothing more to us to handle the data save at setup.
                      00000074	   7774 ;
                      00000074	   7775 ; Mind, this xor with long-string-of-stuff is full of data that's hard
                      00000074	   7776 ; to predict unless one has the key, but since it's composed of a bunch
                      00000074	   7777 ; of CRCs and a few other bits, it may not be that hard for a real
                      00000074	   7778 ; cryptographer to analyze. However, this transform is NOT (yes, NOT)
                      00000074	   7779 ; meant to foil a cryptographer. Instead it's meant to make it hard for
                      00000074	   7780 ; J. Random privileged user, who generally is not a cryptographer, to
                      00000074	   7781 ; decode the data, even given this algorithm. There are probably attacks
                      00000074	   7782 ; on a cipher that's this fast to compute, so if you want your data to
                      00000074	   7783 ; be NSA proof, you'd better add your very own favorite real crypto
                      00000074	   7784 ; algorithm (which will of course make the disk images incompatible with
                      00000074	   7785 ; any other cryptodisk driver). Also, using a long keystring instead of
                      00000074	   7786 ; a short one seems like it ought to be a good idea.
                      00000074	   7787 crctab:	.blkl	128	;storage for "variable" crc xor
                      00000274	   7788 	.blkl	3968	;total 4096 longs = 32 blocks
                      00004074	   7789 	.blkl	12288	;another 96 blocks worth (total 128)
                      00010074	   7790 	.long	0	;safety
                      00010078	   7791 crcblk:	.long	0
                      0001007C	   7792 keyblk:	.long	0
                      00010080	   7793 	.PSECT	Cry_CODE,RD,WRT,EXE,LONG
                      00000000	   7814 Keyset: .jsb_entry
                      00000000	   7815 	pushr	#^M<r0,r1,r2,r3,r4,r5,r6,r7,r8,r11>
                      00000004	   7816 	clrq	binkey
                      0000000A	   7817 ;just for now, assume data's numeric ascii & convert to
                      0000000A	   7818 ;CRC
                      0000000A	   7819 ; Use autodin CRC and another random CRC to get 64 bits from the key
                      0000000A	   7820 ; entered. This allows a fairly fast crypt/decrypt operation though
                      0000000A	   7821 ; security is not high. Nevertheless, it should keep random browsers
                      0000000A	   7822 ; out, even with privs, unless they enjoy lots of decrypting.
                      0000000A	   7823 ; If the user specified "/WEAK", the algorithm will use a simple XOR
                      0000000A	   7824 ; derived from the key. However, if not, this routine will compute another
                      0000000A	   7825 ; 512 bytes of random CRCs of the key and the crypt and decrypt routines
                      0000000A	   7826 ; will XOR with these also. This will mean that in general the same data
                      0000000A	   7827 ; quadword in the data buffer will crypt to something different. To further
                      0000000A	   7828 ; prevent decryption-by-inspection, the block number will be passed to the
                      0000000A	   7829 ; crypt and decrypt routines in r6. This will be multiplied by a constant (that
                      0000000A	   7830 ; depends on the key so that the pattern will be obscured a bit) and the data will
                      0000000A	   7831 ; again be XORed with the (block # * const) product. This means that identical
                      0000000A	   7832 ; blocks will NOT have identical ciphertext. The resulting cipher should be
                      0000000A	   7833 ; adequate against folks who don't know the algorithm. Given the algorithm and
                      0000000A	   7834 ; enough time, one could probably figure out the key to the file, but it will
                      0000000A	   7835 ; be quite difficult. To make matters even harder, the key table will be made
                      0000000A	   7836 ; 32 blocks long and the block used on each disk block will derive from the disk
                      0000000A	   7837 ; block number times ANOTHER constant which depends on the key.
                      0000000A	   7838 ;
                      0000000A	   7839 	movab	crcwrk,r11
                      00000011	   7840 	clrl	binkey
                      00000017	   7841 	clrl	binkey+4
                      0000001D	   7842 	movl	crcjk,polyw	;set up 1st poly
                      00000028	   7843 	callg	g^polygw,g^lib$crc_table
                      00000033	   7844 	movl	kyfnm,r5
                      0000003A	   7845 	beql	1$
                      0000003C	   7846 	movab	kyfnmd,r6	;data addr
                      00000043	   7847 	crc	(r11),#-1,r5,(r6)
                      0000004C	   7848 	movl	r0,jkkey	;save crc from nonstd poly.
                      00000053	   7849 	movl	crcpo,polyw	;set up 1st poly

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  16
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      0000005E	   7850 	callg	g^polygw,g^lib$crc_table
                      00000069	   7851 	movl	kyfnm,r5
                      00000070	   7852 	beql	1$
                      00000072	   7853 	movab	kyfnmd,r6	;data addr
                      00000079	   7854 	crc	(r11),#-1,r5,(r6)
                      00000082	   7855 	movl	r0,binkey
                      00000089	   7856 	movl	crcp1,polyw	;next poly to make tbl for
                      00000094	   7857 	callg	g^polygw,g^lib$crc_table
                      0000009F	   7858 	crc	(r11),#-1,r5,(r6)	;another crc
                      000000A8	   7859 	movl	r0,binkey+4
                      000000AF	   7860 1$:
                      000000AF	   7861 	movab	crctab,r6
                      000000B6	   7862 	addl2	#32768,r6
                      000000BD	   7863 	clrl	r7
                      000000BF	   7864 	clrl	(r6)
                      000000C1	   7865 	movc5	#0,(r6),r7,#32768,(r6)	;zero xor key area out
                      000000C9	   7866 	movab	crctab,r6
                      000000D0	   7867 	clrl	r7
                      000000D2	   7868 	clrl	(r6)
                      000000D4	   7869 	movc5	#0,(r6),r7,#32768,(r6)	;zero xor key area out
                      000000DC	   7870 	tstl	weakflg		;/weak key?
                      000000E2	   7871 	bneq	4$		;if so use weak algorithm
                      000000E4	   7872 	movl	#16384,r7
                      000000EB	   7873 	movab	crctab,r6		;fill in tbl of crc's
                      000000F2	   7874 ; It is barely conceivable someone might be able to find and filter
                      000000F2	   7875 ; out the "weak" key CRCs and filter that stuff out of the data here.
                      000000F2	   7876 ; The 32 block values all derive from the same initial CRC polynomial,
                      000000F2	   7877 ; so this seems like a possible weakness. Therefore, we generated a
                      000000F2	   7878 ; CRC which is never used in the actual XOR'd pattern, but parts of the
                      000000F2	   7879 ; result are used to generate some of the CRC polynomial that IS used
                      000000F2	   7880 ; to produce each CRC, and another bit of it is used to generate the
                      000000F2	   7881 ; interval between these generating polynomials. Thus an error in the
                      000000F2	   7882 ; initial CRC cascades in uncertainty faster than if the CRCs here
                      000000F2	   7883 ; all were made from a known polynomial series. Not being a cryptologist,
                      000000F2	   7884 ; I have no idea how one might penetrate even the old cipher, but
                      000000F2	   7885 ; it seems good to deny a code cracker even the knowledge of the
                      000000F2	   7886 ; initial polynomials being used.
                      000000F2	   7887 	movl	crck,crcv		;init crc tbl
                      000000FD	   7888 	movw	jkkey+1,crcv+1		;replace middle 16 bits of
                      00000108	   7889 				; crc polynomial with 16 bits of CRC from
                      00000108	   7890 				; our key, so the new polynomials all depend
                      00000108	   7891 				; on the key also.
                      00000108	   7892 	movzbl	jkkey,jkadd	; get amount to add to our next CRC polynomial
                      00000113	   7893 	addl2	#5,jkadd	; and make sure it is never zero
                      0000011A	   7894 2$:	movl	crcv,polyw		;make next crctbl
                      00000125	   7895 	callg	g^polygw,g^lib$crc_table
                      00000130	   7896 ;now wrk tbl reflects this polynomial
                      00000130	   7897 	movl	kyfnm,r5
                      00000137	   7898 	beql	4$
                      00000139	   7899 	movab	kyfnmd,r8
                      00000140	   7900 	crc	(r11),#-1,r5,(r8)
                      00000149	   7901 	movl	r0,(r6)+
                      0000014C	   7902 	addl2	jkadd,crcv		;bump crc polynomial by some amount
                      00000157	   7903 				; derived from original key.
                      00000157	   7904 	sobgtr	r7,2$		;do 4096 of them (32 blocks altogether)
                      0000015A	   7905 ; now have 512 bytes of crc.
                      0000015A	   7906 4$:

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  17
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      0000015A	   7907 	;v004a mod
                      0000015A	   7908 ; NOW for safety zero out the key area
                      0000015A	   7909 ; that way nobody can peer into our address space and find the originally
                      0000015A	   7910 ; entered key.
                      0000015A	   7911 	clrl	r7
                      0000015C	   7912 	movab	kyfnmd,r6
                      00000163	   7913 	movc5	#0,(r6),r7,#255,(r6)	; zero 255 bytes of key
                      0000016B	   7914 	;end v004a mod
                      0000016B	   7915 	popr	#^M<r0,r1,r2,r3,r4,r5,r6,r7,r8,r11>
                      0000016F	   7916 	rsb
                      00000170	   7917 ; at entry to crypt, block number is in r6
                      00000170	   7918 Crypt:	.jsb_entry
                      00000170	   7919 	pushr	#^M<r0,r1,r2,r3,r4,r5,r6>
                      00000174	   7920 ; sneaky... don't use blk number, but multiply it first. Ignore overflow
                      00000174	   7921 	movzbl	crctab+184,r5
                      0000017B	   7922 	addl2	r5,r6		; add something to blk # first so blk 0 is
                      0000017E	   7923 				; not known either
                      0000017E	   7924 	movzbl	crctab,r5	;get byte out of keytbl
                      00000185	   7925 	bneq	7$
                      00000187	   7926 	movl	#211,r5
                      0000018E	   7927 7$:
                      0000018E	   7928 	mull3	r6,r5,crcblk
                      00000196	   7929 ; get some multiple of the block
                      00000196	   7930 ; now extract a bit of it and xor the block with the CRC code so
                      00000196	   7931 ; that we are not doing anything affine and hence readily
                      00000196	   7932 ; invertible.
                      00000196	   7933 	movl	crcblk,r5
                      0000019D	   7934 	bicl2	#^xffff0003,r5	;make a longword offset
                      000001A4	   7935 ; get crctab
                      000001A4	   7936 	movl	crctab(r5),r5	;get crc table info
                      000001A9	   7937 	xorl3	r5,crctab+202,r5	;xor with something
                      000001B1	   7938 	xorl3	crcblk,r5,crcblk	;xor crcblk with both
                      000001BD	   7939 ; now crcblk is not just const + n*blk number
                      000001BD	   7940 ; (WHICH is affine). Rather it is fairly well randomized. The
                      000001BD	   7941 ; xor with a constant here is to scramble the result so that
                      000001BD	   7942 ; the whole transform won't be affine and therefore it'll be harder
                      000001BD	   7943 ; even with known plaintext to figure out the working key (i.e., the
                      000001BD	   7944 ; 128 blocks worth of key).
                      000001BD	   7945 	movzbl	crctab+514,r5
                      000001C4	   7946 	bneq	8$	;don't mult by zero
                      000001C6	   7947 	movl	#51,r5
                      000001C9	   7948 8$:
                      000001C9	   7949 	mull3	r6,r5,r5	;convert blk# to hashcode
                      000001CD	   7950 	bicl2	#^xffffff80,r5	;zero all but low 7 bits (now 0-127)
                      000001D4	   7951 	ashl	#9,r5,r5	;convert to byte offset in long table (now 0-15872 in 512 in
                      000001D4	   7951 cr.)
                      000001D8	   7952 	movl	r5,keyblk	;store offset into crctab here
                      000001DF	   7953 	tstl	weakflg		;/weak algorithm?
                      000001E5	   7954 	beql	5$		;if eql no
                      000001E7	   7955 	clrl	crcblk		;if weak, noblock number dependency
                      000001ED	   7956 5$:
                      000001ED	   7957 	movl	#64,r6		;64 * 8 = 512 bytes
                      000001F4	   7958 	movab	recbuf,r1	;address to start with
                      000001FB	   7959 	movl	binkey,r2	;1st half of key
                      00000202	   7960 	movl	binkey+4,r3	;2nd half of key
                      00000209	   7961 	movab	crctab,r4	;variable crc tbl (or 0's)
                      00000210	   7962 	addl2	keyblk,r4	;add offset to block of keys to use

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  18
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      00000217	   7963 	movl	crcblk,r5	;get blk*const which serves to obscure what's going on
                      0000021E	   7964 2$:	xorl3	(r1),(r4)+,(r1)
                      00000222	   7965 	xorl3	(r1),r5,(r1)
                      00000226	   7966 	xorl3	(r1),r2,(r1)+	;xor 1st half
                      0000022A	   7967 	xorl3	(r1),(r4)+,(r1)
                      0000022E	   7968 	xorl3	(r1),r5,(r1)
                      00000232	   7969 	xorl3	(r1),r3,(r1)+
                      00000236	   7970 	sobgtr	r6,2$
                      00000239	   7971 ; buffer now transformed.
                      00000239	   7972 	popr	#^M<r0,r1,r2,r3,r4,r5,r6>
                      0000023D	   7973 	rsb
                      0000023E	   7974 ; at entry to decrypt, block number is in r6
                      0000023E	   7975 Decrypt: .jsb_entry
                      0000023E	   7976 	pushr	#^M<r0,r1,r2,r3,r4,r5,r6>
                      00000242	   7977 	movzbl	crctab+184,r5
                      00000249	   7978 	addl2	r5,r6		; add something to blk # first so blk 0 is
                      0000024C	   7979 				; not known either
                      0000024C	   7980 	movzbl	crctab,r5
                      00000253	   7981 	bneq	7$
                      00000255	   7982 	movl	#211,r5		;ensure we don't multiply blk# by 0
                      0000025C	   7983 ;211 is prime.
                      0000025C	   7984 7$:
                      0000025C	   7985 	mull3	r6,r5,crcblk
                      00000264	   7986 ; get some multiple of the block
                      00000264	   7987 ; now extract a bit of it and xor the block with the CRC code so
                      00000264	   7988 ; that we are not doing anything affine and hence readily
                      00000264	   7989 ; invertible.
                      00000264	   7990 	movl	crcblk,r5
                      0000026B	   7991 	bicl2	#^xffff0003,r5	;make a longword offset
                      00000272	   7992 ; get crctab
                      00000272	   7993 	movl	crctab(r5),r5	;get crc table info
                      00000277	   7994 	xorl3	r5,crctab+202,r5	;xor with something
                      0000027F	   7995 ; Notice the crctab+202 is a halfword (16 bit) offset, not a
                      0000027F	   7996 ; longword aligned offset. This increases randomness a bit
                      0000027F	   7997 ; when we xor this with the crctab(r5) offset.
                      0000027F	   7998 	xorl3	crcblk,r5,crcblk	;xor crcblk with both
                      0000028B	   7999 ; now crcblk is not just const + n*blk number
                      0000028B	   8000 ; (WHICH is affine). Rather it is fairly well randomized. The
                      0000028B	   8001 ; xor with a constant here is to scramble the result so that
                      0000028B	   8002 ; the whole transform won't be affine and therefore it'll be harder
                      0000028B	   8003 ; even with known plaintext to figure out the working key (i.e., the
                      0000028B	   8004 ; 128 blocks worth of key).
                      0000028B	   8005 	movzbl	crctab+514,r5
                      00000292	   8006 	bneq	8$	;don't mult by zero
                      00000294	   8007 	movl	#51,r5
                      00000297	   8008 8$:
                      00000297	   8009 	mull3	r6,r5,r5	;convert blk# to hashcode
                      0000029B	   8010 	bicl2	#^xffffff80,r5	;zero all but low 7 bits (now 0-127)
                      000002A2	   8011 	ashl	#9,r5,r5	;convert to byte offset in long table (now 0-15872 in 512 in
                      000002A2	   8011 cr.)
                      000002A6	   8012 	movl	r5,keyblk	;store offset into crctab here
                      000002AD	   8013 	tstl	weakflg		;/weak algorithm?
                      000002B3	   8014 	beql	5$		;if eql no
                      000002B5	   8015 	clrl	crcblk
                      000002BB	   8016 5$:
                      000002BB	   8017 	movl	#64,r6		;64 * 8 = 512 bytes
                      000002C2	   8018 	movab	recbuf,r1	;address to start with

FDHOSTCRY                       - AXP/VMS VIRT DISK Host Proces  3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  19
V01-004A                        EXTERNAL AND LOCAL DEFINITIONS   3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

                      000002C9	   8019 	movl	binkey,r2	;1st half of key
                      000002D0	   8020 	movl	binkey+4,r3	;2nd half of key
                      000002D7	   8021 	movab	crctab,r4	;variable crc tbl (or 0's)
                      000002DE	   8022 	addl2	keyblk,r4	;add offset to block of keys to use
                      000002E5	   8023 	movl	crcblk,r5
                      000002EC	   8024 3$:	xorl3	(r1),(r4)+,(r1)
                      000002F0	   8025 	xorl3	(r1),r5,(r1)
                      000002F4	   8026 	xorl3	(r1),r2,(r1)+	;xor 1st half
                      000002F8	   8027 	xorl3	(r1),(r4)+,(r1)
                      000002FC	   8028 	xorl3	(r1),r5,(r1)
                      00000300	   8029 	xorl3	(r1),r3,(r1)+
                      00000304	   8030 	sobgtr	r6,3$
                      00000307	   8031 ; buffer now transformed.
                      00000307	   8032 ;note this is (for now) identical to crypt logic. Keep the routine
                      00000307	   8033 ;separate however in case we decide to alter this later.
                      00000307	   8034 ; (1st cut would be to add something to the buffer on encrypt and
                      00000307	   8035 ; subtract it again on decrypt. If we added yet another CRC of the
                      00000307	   8036 ; key, it would make decoding a cryptodisk noticeably harder.)
                      00000307	   8037 	popr	#^M<r0,r1,r2,r3,r4,r5,r6>
                      0000030B	   8038 	rsb
                      0000030C	   8039 	.END FDHostD

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  20
V01-004A                        KEYSET                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

				.PSECT	CRY_CODE, LONG, NOPIC, CON, REL, LCL,-
					NOSHR, EXE, RD, WRT
	     0000	KEYSET:												    ; 007814
43CC153E     0000		SUBQ	SP, 96, SP				; SP, 96, SP
B75E0000     0004		STQ	R26, (SP)				; R26, (SP)
B45E0008     0008		STQ	R2, 8(SP)				; R2, 8(SP)
B47E0010     000C		STQ	R3, 16(SP)				; R3, 16(SP)
B49E0018     0010		STQ	R4, 24(SP)				; R4, 24(SP)
B4BE0020     0014		STQ	R5, 32(SP)				; R5, 32(SP)
B4DE0028     0018		STQ	R6, 40(SP)				; R6, 40(SP)
B4FE0030     001C		STQ	R7, 48(SP)				; R7, 48(SP)
B51E0038     0020		STQ	R8, 56(SP)				; R8, 56(SP)
B57E0040     0024		STQ	R11, 64(SP)				; R11, 64(SP)
B5BE0048     0028		STQ	R13, 72(SP)				; R13, 72(SP)
47FB040D     002C		MOV	R27, R13				; R27, R13
B5DE0050     0030		STQ	R14, 80(SP)				; R14, 80(SP)
B5FE0058     0034		STQ	R15, 88(SP)				; R15, 88(SP)
A5EDFEF0     0038		LDQ	R15, -272(R13)				; R15, -272(R13)			    ; 007816
	     003C	$L7:												    ; 007814
43C1153E     003C		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007815
A6CD0010     0040		LDQ	R22, 16(R13)				; R22, 16(R13)				    ; 007843
A76D0028     0044		LDQ	R27, 40(R13)				; R27, 40(R13)
41E2140B     0048		ADDQ	R15, 16, R11				; R15, 16, R11				    ; 007839
B03E0004     004C		STL	R1, 4(SP)				; R1, 4(SP)				    ; 007815
41E09410     0050		ADDQ	R15, 4, R16				; R15, 4, R16				    ; 007843
B01E0000     0054		STL	R0, (SP)				; R0, (SP)				    ; 007815
47F60411     0058		MOV	R22, R17				; R22, R17				    ; 007843
B3EF0050     005C		STL	R31, 80(R15)				; R31, 80(R15)				    ; 007816
B3EF0054     0060		STL	R31, 84(R15)				; R31, 84(R15)
B3EF0050     0064		STL	R31, 80(R15)				; R31, 80(R15)				    ; 007840
B3EF0054     0068		STL	R31, 84(R15)				; R31, 84(R15)				    ; 007841
A34F0060     006C		LDL	R26, 96(R15)				; R26, 96(R15)				    ; 007842
B34F000C     0070		STL	R26, 12(R15)				; R26, 12(R15)
A74D0020     0074		LDQ	R26, 32(R13)				; R26, 32(R13)				    ; 007843
43C1153E     0078		SUBQ	SP, 8, SP				; SP, 8, SP
A32F0000     007C		LDL	R25, (R15)				; R25, (R15)
6B5A4000     0080		JSR	R26, R26				; R26, R26
A78DFEA8     0084		LDQ	R28, -344(R13)				; R28, -344(R13)			    ; 007844
43C1141E     0088		ADDQ	SP, 8, SP				; SP, 8, SP				    ; 007843
A5EDFEF0     008C		LDQ	R15, -272(R13)				; R15, -272(R13)			    ; 007861
A0BC0670     0090		LDL	R5, 1648(R28)				; R5, 1648(R28)				    ; 007844
E4A0003A     0094		BEQ	R5, 110_1$				; R5, 110_1$				    ; 007845
47EB0401     0098		MOV	R11, R1					; R11, R1				    ; 007847
A76DFEA8     009C		LDQ	R27, -344(R13)				; R27, -344(R13)			    ; 007846
43E03520     00A0		SUBQ	R31, 1, R0				; R31, 1, R0				    ; 007847
A74D0030     00A4		LDQ	R26, 48(R13)				; R26, 48(R13)
48A012C2     00A8		EXTWL	R5, 0, R2				; R5, 0, R2
20DB0678     00AC		LDA	R6, 1656(R27)				; R6, 1656(R27)				    ; 007846
A76D0038     00B0		LDQ	R27, 56(R13)				; R27, 56(R13)				    ; 007847
47E60403     00B4		MOV	R6, R3					; R6, R3
6B5A4000     00B8		JSR	R26, R26				; R26, R26
B00F0058     00BC		STL	R0, 88(R15)				; R0, 88(R15)				    ; 007848
41E09410     00C0		ADDQ	R15, 4, R16				; R15, 4, R16				    ; 007850
A6CD0010     00C4		LDQ	R22, 16(R13)				; R22, 16(R13)
A34F0064     00C8		LDL	R26, 100(R15)				; R26, 100(R15)				    ; 007849
A76D0028     00CC		LDQ	R27, 40(R13)				; R27, 40(R13)				    ; 007850
47F60411     00D0		MOV	R22, R17				; R22, R17

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  21
V01-004A                        KEYSET                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

B34F000C     00D4		STL	R26, 12(R15)				; R26, 12(R15)				    ; 007849
43C1153E     00D8		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007850
A74D0020     00DC		LDQ	R26, 32(R13)				; R26, 32(R13)
A32F0000     00E0		LDL	R25, (R15)				; R25, (R15)
6B5A4000     00E4		JSR	R26, R26				; R26, R26
43C1141E     00E8		ADDQ	SP, 8, SP				; SP, 8, SP
A78DFEA8     00EC		LDQ	R28, -344(R13)				; R28, -344(R13)			    ; 007851
A0BC0670     00F0		LDL	R5, 1648(R28)				; R5, 1648(R28)
E4A00022     00F4		BEQ	R5, 110_1$				; R5, 110_1$				    ; 007852
47EB0401     00F8		MOV	R11, R1					; R11, R1				    ; 007854
A76DFEA8     00FC		LDQ	R27, -344(R13)				; R27, -344(R13)			    ; 007853
43E03520     0100		SUBQ	R31, 1, R0				; R31, 1, R0				    ; 007854
A74D0030     0104		LDQ	R26, 48(R13)				; R26, 48(R13)
48A012C2     0108		EXTWL	R5, 0, R2				; R5, 0, R2
20DB0678     010C		LDA	R6, 1656(R27)				; R6, 1656(R27)				    ; 007853
A76D0038     0110		LDQ	R27, 56(R13)				; R27, 56(R13)				    ; 007854
47E60403     0114		MOV	R6, R3					; R6, R3
6B5A4000     0118		JSR	R26, R26				; R26, R26
A72DFEF0     011C		LDQ	R25, -272(R13)				; R25, -272(R13)			    ; 007856
A6EDFEF0     0120		LDQ	R23, -272(R13)				; R23, -272(R13)
A74DFEF0     0124		LDQ	R26, -272(R13)				; R26, -272(R13)			    ; 007855
A6CDFEF0     0128		LDQ	R22, -272(R13)				; R22, -272(R13)			    ; 007857
A78D0010     012C		LDQ	R28, 16(R13)				; R28, 16(R13)
B01A0050     0130		STL	R0, 80(R26)				; R0, 80(R26)				    ; 007855
A3190068     0134		LDL	R24, 104(R25)				; R24, 104(R25)				    ; 007856
42C09410     0138		ADDQ	R22, 4, R16				; R22, 4, R16				    ; 007857
A74D0020     013C		LDQ	R26, 32(R13)				; R26, 32(R13)
47FC0411     0140		MOV	R28, R17				; R28, R17
A76D0028     0144		LDQ	R27, 40(R13)				; R27, 40(R13)
B317000C     0148		STL	R24, 12(R23)				; R24, 12(R23)				    ; 007856
43C1153E     014C		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007857
A3360000     0150		LDL	R25, (R22)				; R25, (R22)
6B5A4000     0154		JSR	R26, R26				; R26, R26
43C1141E     0158		ADDQ	SP, 8, SP				; SP, 8, SP
A76D0038     015C		LDQ	R27, 56(R13)				; R27, 56(R13)				    ; 007858
47EB0401     0160		MOV	R11, R1					; R11, R1
43E03520     0164		SUBQ	R31, 1, R0				; R31, 1, R0
A74D0030     0168		LDQ	R26, 48(R13)				; R26, 48(R13)
48A012C2     016C		EXTWL	R5, 0, R2				; R5, 0, R2
47E60403     0170		MOV	R6, R3					; R6, R3
6B5A4000     0174		JSR	R26, R26				; R26, R26
A76DFEF0     0178		LDQ	R27, -272(R13)				; R27, -272(R13)			    ; 007859
B01B0054     017C		STL	R0, 84(R27)				; R0, 84(R27)
	     0180	110_1$:												    ; 007860
47FF0407     0180		CLR	R7					; R7					    ; 007863
44FFF005     0184		AND	R7, 255, R5				; R7, 255, R5				    ; 007865
48A11724     0188		SLL	R5, 8, R4				; R5, 8, R4
273F0001     018C		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007862
44850405     0190		BIS	R4, R5, R5				; R4, R5, R5				    ; 007865
48A21724     0194		SLL	R5, 16, R4				; R5, 16, R4
41EE9406     0198		ADDQ	R15, 116, R6				; R15, 116, R6				    ; 007861
44A40405     019C		BIS	R5, R4, R5				; R5, R4, R5				    ; 007865
23398000     01A0		LDA	R25, -32768(R25)			; R25, -32768(R25)			    ; 007862
48A41724     01A4		SLL	R5, 32, R4				; R5, 32, R4				    ; 007865
40D90006     01A8		ADDL	R6, R25, R6				; R6, R25, R6				    ; 007862
47E60418     01AC		MOV	R6, R24					; R6, R24				    ; 007865
44A40405     01B0		BIS	R5, R4, R5				; R5, R4, R5

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  22
V01-004A                        KEYSET                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

B3E60000     01B4		STL	R31, (R6)				; R31, (R6)				    ; 007864
4700F004     01B8		AND	R24, 7, R4				; R24, 7, R4				    ; 007865
2DD80000     01BC		LDQ_U	R14, (R24)				; R14, (R24)
47FFF417     01C0		BIS	R31, 255, R23				; R31, 255, R23
4AE40724     01C4		SLL	R23, R4, R4				; R23, R4, R4
49C4060E     01C8		ZAP	R14, R4, R14				; R14, R4, R14
48A40637     01CC		ZAPNOT	R5, R4, R23				; R5, R4, R23
45D7040E     01D0		BIS	R14, R23, R14				; R14, R23, R14
3DD80000     01D4		STQ_U	R14, (R24)				; R14, (R24)
22FF0333     01D8		LDA	R23, 819(R31)				; R23, 819(R31)
2FFE0000     01DC		LNOP						; 
	     01E0	$L19:
3CB80008     01E0		STQ_U	R5, 8(R24)				; R5, 8(R24)
42E03537     01E4		SUBQ	R23, 1, R23				; R23, 1, R23
3CB80010     01E8		STQ_U	R5, 16(R24)				; R5, 16(R24)
3CB80018     01EC		STQ_U	R5, 24(R24)				; R5, 24(R24)
3CB80020     01F0		STQ_U	R5, 32(R24)				; R5, 32(R24)
3CB80028     01F4		STQ_U	R5, 40(R24)				; R5, 40(R24)
43051418     01F8		ADDQ	R24, 40, R24				; R24, 40, R24
F6FFFFF8     01FC		BNE	R23, $L19				; R23, $L19
48811684     0200		SRL	R4, 8, R4				; R4, 8, R4
E4800005     0204		BEQ	R4, $L20				; R4, $L20
2DD80008     0208		LDQ_U	R14, 8(R24)				; R14, 8(R24)
48A40637     020C		ZAPNOT	R5, R4, R23				; R5, R4, R23
49C4060E     0210		ZAP	R14, R4, R14				; R14, R4, R14
45D7040E     0214		BIS	R14, R23, R14				; R14, R23, R14
3DD80008     0218		STQ_U	R14, 8(R24)				; R14, 8(R24)
	     021C	$L20:
47FF0407     021C		CLR	R7					; R7					    ; 007867
44FFF005     0220		AND	R7, 255, R5				; R7, 255, R5				    ; 007869
48A11724     0224		SLL	R5, 8, R4				; R5, 8, R4
41EE9406     0228		ADDQ	R15, 116, R6				; R15, 116, R6				    ; 007866
44850405     022C		BIS	R4, R5, R5				; R4, R5, R5				    ; 007869
48A21724     0230		SLL	R5, 16, R4				; R5, 16, R4
B3E60000     0234		STL	R31, (R6)				; R31, (R6)				    ; 007868
47E60419     0238		MOV	R6, R25					; R6, R25				    ; 007869
44A40405     023C		BIS	R5, R4, R5				; R5, R4, R5
48A41724     0240		SLL	R5, 32, R4				; R5, 32, R4
2DD90000     0244		LDQ_U	R14, (R25)				; R14, (R25)
47FFF417     0248		BIS	R31, 255, R23				; R31, 255, R23
44A40405     024C		BIS	R5, R4, R5				; R5, R4, R5
4720F004     0250		AND	R25, 7, R4				; R25, 7, R4
271F0001     0254		LDAH	R24, 1(R31)				; R24, 1(R31)
4AE40724     0258		SLL	R23, R4, R4				; R23, R4, R4
23188000     025C		LDA	R24, -32768(R24)			; R24, -32768(R24)
49C4060E     0260		ZAP	R14, R4, R14				; R14, R4, R14
48A40637     0264		ZAPNOT	R5, R4, R23				; R5, R4, R23
43380418     0268		ADDQ	R25, R24, R24				; R25, R24, R24
45D7040E     026C		BIS	R14, R23, R14				; R14, R23, R14
3DD90000     0270		STQ_U	R14, (R25)				; R14, (R25)
47FF0400     0274		CLR	R0					; R0
47E60401     0278		MOV	R6, R1					; R6, R1
47F80403     027C		MOV	R24, R3					; R24, R3
22FF0333     0280		LDA	R23, 819(R31)				; R23, 819(R31)
2FFE0000     0284		LNOP						; 
	     0288	$L21:
3CB90008     0288		STQ_U	R5, 8(R25)				; R5, 8(R25)

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  23
V01-004A                        KEYSET                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

42E03537     028C		SUBQ	R23, 1, R23				; R23, 1, R23
3CB90010     0290		STQ_U	R5, 16(R25)				; R5, 16(R25)
3CB90018     0294		STQ_U	R5, 24(R25)				; R5, 24(R25)
3CB90020     0298		STQ_U	R5, 32(R25)				; R5, 32(R25)
3CB90028     029C		STQ_U	R5, 40(R25)				; R5, 40(R25)
43251419     02A0		ADDQ	R25, 40, R25				; R25, 40, R25
F6FFFFF8     02A4		BNE	R23, $L21				; R23, $L21
48811684     02A8		SRL	R4, 8, R4				; R4, 8, R4
E4800005     02AC		BEQ	R4, $L22				; R4, $L22
2DD90008     02B0		LDQ_U	R14, 8(R25)				; R14, 8(R25)
48A40637     02B4		ZAPNOT	R5, R4, R23				; R5, R4, R23
49C4060E     02B8		ZAP	R14, R4, R14				; R14, R4, R14
45D7040E     02BC		BIS	R14, R23, R14				; R14, R23, R14
3DD90008     02C0		STQ_U	R14, 8(R25)				; R14, 8(R25)
	     02C4	$L22:
A74DFEA8     02C4		LDQ	R26, -344(R13)				; R26, -344(R13)			    ; 007870
47FF0402     02C8		CLR	R2					; R2					    ; 007869
47FF0404     02CC		CLR	R4					; R4
47FF0405     02D0		CLR	R5					; R5
A33A0524     02D4		LDL	R25, 1316(R26)				; R25, 1316(R26)			    ; 007870
F7200034     02D8		BNE	R25, 110_4$				; R25, 110_4$				    ; 007871
A2EF006C     02DC		LDL	R23, 108(R15)				; R23, 108(R15)				    ; 007887
20FF4000     02E0		LDA	R7, 16384(R31)				; R7, 16384(R31)			    ; 007872
41EE9406     02E4		ADDQ	R15, 116, R6				; R15, 116, R6				    ; 007873
B2EF0070     02E8		STL	R23, 112(R15)				; R23, 112(R15)				    ; 007887
A38F0058     02EC		LDL	R28, 88(R15)				; R28, 88(R15)				    ; 007888
A36F0070     02F0		LDL	R27, 112(R15)				; R27, 112(R15)
4B8032DC     02F4		EXTWL	R28, 1, R28				; R28, 1, R28
4B60325B     02F8		MSKWL	R27, 1, R27				; R27, 1, R27
4B80337A     02FC		INSWL	R28, 1, R26				; R28, 1, R26
477A041B     0300		BIS	R27, R26, R27				; R27, R26, R27
B36F0070     0304		STL	R27, 112(R15)				; R27, 112(R15)
A32F0058     0308		LDL	R25, 88(R15)				; R25, 88(R15)				    ; 007892
473FF019     030C		AND	R25, 255, R25				; R25, 255, R25
B32F005C     0310		STL	R25, 92(R15)				; R25, 92(R15)
4320B017     0314		ADDL	R25, 5, R23				; R25, 5, R23				    ; 007893
B2EF005C     0318		STL	R23, 92(R15)				; R23, 92(R15)
2FFE0000     031C		LNOP						; 
	     0320	110_2$:												    ; 007894
A5EDFEF0     0320		LDQ	R15, -272(R13)				; R15, -272(R13)
A78D0010     0324		LDQ	R28, 16(R13)				; R28, 16(R13)				    ; 007895
A74D0020     0328		LDQ	R26, 32(R13)				; R26, 32(R13)
A2CF0070     032C		LDL	R22, 112(R15)				; R22, 112(R15)				    ; 007894
A76D0028     0330		LDQ	R27, 40(R13)				; R27, 40(R13)				    ; 007895
41E09410     0334		ADDQ	R15, 4, R16				; R15, 4, R16
47FC0411     0338		MOV	R28, R17				; R28, R17
B2CF000C     033C		STL	R22, 12(R15)				; R22, 12(R15)				    ; 007894
43C1153E     0340		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007895
A32F0000     0344		LDL	R25, (R15)				; R25, (R15)
6B5A4000     0348		JSR	R26, R26				; R26, R26
43C1141E     034C		ADDQ	SP, 8, SP				; SP, 8, SP
A5EDFEA8     0350		LDQ	R15, -344(R13)				; R15, -344(R13)			    ; 007897
A0AF0670     0354		LDL	R5, 1648(R15)				; R5, 1648(R15)
E4A00014     0358		BEQ	R5, 110_4$				; R5, 110_4$				    ; 007898
210F0678     035C		LDA	R8, 1656(R15)				; R8, 1656(R15)				    ; 007899
A74D0030     0360		LDQ	R26, 48(R13)				; R26, 48(R13)				    ; 007900
47EB0401     0364		MOV	R11, R1					; R11, R1

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  24
V01-004A                        KEYSET                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

A76D0038     0368		LDQ	R27, 56(R13)				; R27, 56(R13)
43E03520     036C		SUBQ	R31, 1, R0				; R31, 1, R0
48A012C2     0370		EXTWL	R5, 0, R2				; R5, 0, R2
47E80403     0374		MOV	R8, R3					; R8, R3
6B5A4000     0378		JSR	R26, R26				; R26, R26
40E03127     037C		SUBL	R7, 1, R7				; R7, 1, R7				    ; 007904
A72DFEF0     0380		LDQ	R25, -272(R13)				; R25, -272(R13)			    ; 007902
A6EDFEF0     0384		LDQ	R23, -272(R13)				; R23, -272(R13)
47E6041A     0388		MOV	R6, R26					; R6, R26				    ; 007901
40C09406     038C		ADDQ	R6, 4, R6				; R6, 4, R6
B01A0000     0390		STL	R0, (R26)				; R0, (R26)
A319005C     0394		LDL	R24, 92(R25)				; R24, 92(R25)				    ; 007902
A3970070     0398		LDL	R28, 112(R23)				; R28, 112(R23)
42EE1417     039C		ADDQ	R23, 112, R23				; R23, 112, R23
4398001C     03A0		ADDL	R28, R24, R28				; R28, R24, R28
B3970000     03A4		STL	R28, (R23)				; R28, (R23)
FCFFFFDD     03A8		BGT	R7, 110_2$				; R7, 110_2$				    ; 007904
	     03AC	110_4$:												    ; 007906
47FF0407     03AC		CLR	R7					; R7					    ; 007911
A74DFEA8     03B0		LDQ	R26, -344(R13)				; R26, -344(R13)			    ; 007912
44FFF005     03B4		AND	R7, 255, R5				; R7, 255, R5				    ; 007913
48A11724     03B8		SLL	R5, 8, R4				; R5, 8, R4
231F7FFF     03BC		LDA	R24, 32767(R31)				; R24, 32767(R31)
44850405     03C0		BIS	R4, R5, R5				; R4, R5, R5
48A21724     03C4		SLL	R5, 16, R4				; R5, 16, R4
20DA0678     03C8		LDA	R6, 1656(R26)				; R6, 1656(R26)				    ; 007912
44A40405     03CC		BIS	R5, R4, R5				; R5, R4, R5				    ; 007913
48A41724     03D0		SLL	R5, 32, R4				; R5, 32, R4
47E60419     03D4		MOV	R6, R25					; R6, R25
44A40405     03D8		BIS	R5, R4, R5				; R5, R4, R5
4720F004     03DC		AND	R25, 7, R4				; R25, 7, R4
2EF90000     03E0		LDQ_U	R23, (R25)				; R23, (R25)
4B040724     03E4		SLL	R24, R4, R4				; R24, R4, R4
47FF0400     03E8		CLR	R0					; R0
4AE40617     03EC		ZAP	R23, R4, R23				; R23, R4, R23
48A40638     03F0		ZAPNOT	R5, R4, R24				; R5, R4, R24
47E60401     03F4		MOV	R6, R1					; R6, R1
46F80417     03F8		BIS	R23, R24, R23				; R23, R24, R23
433FF403     03FC		ADDQ	R25, 255, R3				; R25, 255, R3
3EF90000     0400		STQ_U	R23, (R25)				; R23, (R25)
47E0D418     0404		BIS	R31, 6, R24				; R31, 6, R24
	     0408	$L23:
3CB90008     0408		STQ_U	R5, 8(R25)				; R5, 8(R25)
43003538     040C		SUBQ	R24, 1, R24				; R24, 1, R24
3CB90010     0410		STQ_U	R5, 16(R25)				; R5, 16(R25)
3CB90018     0414		STQ_U	R5, 24(R25)				; R5, 24(R25)
3CB90020     0418		STQ_U	R5, 32(R25)				; R5, 32(R25)
3CB90028     041C		STQ_U	R5, 40(R25)				; R5, 40(R25)
43251419     0420		ADDQ	R25, 40, R25				; R25, 40, R25
F71FFFF8     0424		BNE	R24, $L23				; R24, $L23
48811684     0428		SRL	R4, 8, R4				; R4, 8, R4
E480000C     042C		BEQ	R4, $L24				; R4, $L24
2EF90008     0430		LDQ_U	R23, 8(R25)				; R23, 8(R25)
48A40638     0434		ZAPNOT	R5, R4, R24				; R5, R4, R24
4AE40617     0438		ZAP	R23, R4, R23				; R23, R4, R23
48811684     043C		SRL	R4, 8, R4				; R4, 8, R4
46F80417     0440		BIS	R23, R24, R23				; R23, R24, R23

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  25
V01-004A                        KEYSET                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

3EF90008     0444		STQ_U	R23, 8(R25)				; R23, 8(R25)
E4800005     0448		BEQ	R4, $L24				; R4, $L24
48A40638     044C		ZAPNOT	R5, R4, R24				; R5, R4, R24
2EF90010     0450		LDQ_U	R23, 16(R25)				; R23, 16(R25)
4AE40617     0454		ZAP	R23, R4, R23				; R23, R4, R23
46F80417     0458		BIS	R23, R24, R23				; R23, R24, R23
3EF90010     045C		STQ_U	R23, 16(R25)				; R23, 16(R25)
	     0460	$L24:
A01E0000     0460		LDL	R0, (SP)				; R0, (SP)				    ; 007915
47FF0402     0464		CLR	R2					; R2					    ; 007913
A03E0004     0468		LDL	R1, 4(SP)				; R1, 4(SP)				    ; 007915
47FF0404     046C		CLR	R4					; R4					    ; 007913
47FF0405     0470		CLR	R5					; R5
43C1141E     0474		ADDQ	SP, 8, SP				; SP, 8, SP				    ; 007915
	     0478	$L8:												    ; 007916
A79E0000     0478		LDQ	R28, (SP)				; R28, (SP)
A45E0008     047C		LDQ	R2, 8(SP)				; R2, 8(SP)
A47E0010     0480		LDQ	R3, 16(SP)				; R3, 16(SP)
A49E0018     0484		LDQ	R4, 24(SP)				; R4, 24(SP)
A4BE0020     0488		LDQ	R5, 32(SP)				; R5, 32(SP)
A4DE0028     048C		LDQ	R6, 40(SP)				; R6, 40(SP)
A4FE0030     0490		LDQ	R7, 48(SP)				; R7, 48(SP)
A51E0038     0494		LDQ	R8, 56(SP)				; R8, 56(SP)
A57E0040     0498		LDQ	R11, 64(SP)				; R11, 64(SP)
A5BE0048     049C		LDQ	R13, 72(SP)				; R13, 72(SP)
A5DE0050     04A0		LDQ	R14, 80(SP)				; R14, 80(SP)
A5FE0058     04A4		LDQ	R15, 88(SP)				; R15, 88(SP)
43CC141E     04A8		ADDQ	SP, 96, SP				; SP, 96, SP
6BFC8001     04AC		RET	R28					; R28

Routine Size: 1200 bytes,    Routine Base: CRY_CODE + 0000

	     04B0	CRYPT:												    ; 007918
43C6153E     04B0		SUBQ	SP, 48, SP				; SP, 48, SP
A65BFE60     04B4		LDQ	R18, -416(R27)				; R18, -416(R27)			    ; 007953
A63BFEA8     04B8		LDQ	R17, -344(R27)				; R17, -344(R27)			    ; 007921
B45E0008     04BC		STQ	R2, 8(SP)				; R2, 8(SP)				    ; 007918
B47E0010     04C0		STQ	R3, 16(SP)				; R3, 16(SP)
B49E0018     04C4		STQ	R4, 24(SP)				; R4, 24(SP)
B4BE0020     04C8		STQ	R5, 32(SP)				; R5, 32(SP)
B4DE0028     04CC		STQ	R6, 40(SP)				; R6, 40(SP)
	     04D0	$L9:
43C1153E     04D0		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007919
B03E0004     04D4		STL	R1, 4(SP)				; R1, 4(SP)
B01E0000     04D8		STL	R0, (SP)				; R0, (SP)
A0B1012C     04DC		LDL	R5, 300(R17)				; R5, 300(R17)				    ; 007921
44BFF005     04E0		AND	R5, 255, R5				; R5, 255, R5
40C50006     04E4		ADDL	R6, R5, R6				; R6, R5, R6				    ; 007922
A0B10074     04E8		LDL	R5, 116(R17)				; R5, 116(R17)				    ; 007924
44BFF005     04EC		AND	R5, 255, R5				; R5, 255, R5
F4A00001     04F0		BNE	R5, 111_7$				; R5, 111_7$				    ; 007925
47FA7405     04F4		BIS	R31, 211, R5				; R31, 211, R5				    ; 007926
	     04F8	111_7$:												    ; 007927
4CC5001C     04F8		MULL	R6, R5, R28				; R6, R5, R28				    ; 007928
273F0001     04FC		LDAH	R25, 1(R31)				; R25, 1(R31)
271F0001     0500		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007933
432F1419     0504		ADDQ	R25, 120, R25				; R25, 120, R25				    ; 007928

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  26
V01-004A                        CRYPT                            3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

430F1418     0508		ADDQ	R24, 120, R24				; R24, 120, R24				    ; 007933
42390419     050C		ADDQ	R17, R25, R25				; R17, R25, R25				    ; 007928
42380418     0510		ADDQ	R17, R24, R24				; R17, R24, R24				    ; 007933
26FFFFFF     0514		LDAH	R23, -1(R31)				; R23, -1(R31)				    ; 007934
42E07417     0518		ADDQ	R23, 3, R23				; R23, 3, R23
422E9416     051C		ADDQ	R17, 116, R22				; R17, 116, R22				    ; 007936
B3990000     0520		STL	R28, (R25)				; R28, (R25)				    ; 007928
2331013E     0524		LDA	R25, 318(R17)				; R25, 318(R17)				    ; 007937
A0B80000     0528		LDL	R5, (R24)				; R5, (R24)				    ; 007933
2F91013E     052C		LDQ_U	R28, 318(R17)				; R28, 318(R17)				    ; 007937
44B70105     0530		BIC	R5, R23, R5				; R5, R23, R5				    ; 007934
2EF10141     0534		LDQ_U	R23, 321(R17)				; R23, 321(R17)				    ; 007937
43E50005     0538		SEXTL	R5, R5					; R5, R5				    ; 007934
4B9904DC     053C		EXTLL	R28, R25, R28				; R28, R25, R28				    ; 007937
4AF90D58     0540		EXTLH	R23, R25, R24				; R23, R25, R24
42C50016     0544		ADDL	R22, R5, R22				; R22, R5, R22				    ; 007936
4798041C     0548		BIS	R28, R24, R28				; R28, R24, R28				    ; 007937
A0B60000     054C		LDL	R5, (R22)				; R5, (R22)				    ; 007936
43FC001C     0550		SEXTL	R28, R28				; R28, R28				    ; 007937
271F0001     0554		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007938
47850805     0558		XOR	R28, R5, R5				; R28, R5, R5				    ; 007937
279F0001     055C		LDAH	R28, 1(R31)				; R28, 1(R31)				    ; 007938
438F141C     0560		ADDQ	R28, 120, R28				; R28, 120, R28
423C041C     0564		ADDQ	R17, R28, R28				; R17, R28, R28
430F1418     0568		ADDQ	R24, 120, R24				; R24, 120, R24
A2DC0000     056C		LDL	R22, (R28)				; R22, (R28)
43E50005     0570		SEXTL	R5, R5					; R5, R5				    ; 007937
42380418     0574		ADDQ	R17, R24, R24				; R17, R24, R24				    ; 007938
44B60819     0578		XOR	R5, R22, R25				; R5, R22, R25
B3380000     057C		STL	R25, (R24)				; R25, (R24)
A0B10274     0580		LDL	R5, 628(R17)				; R5, 628(R17)				    ; 007945
48A050C5     0584		EXTBL	R5, 2, R5				; R5, 2, R5
F4A00001     0588		BNE	R5, 111_8$				; R5, 111_8$				    ; 007946
47E67405     058C		BIS	R31, 51, R5				; R31, 51, R5				    ; 007947
	     0590	111_8$:												    ; 007948
4CC50005     0590		MULL	R6, R5, R5				; R6, R5, R5				    ; 007949
26DF0001     0594		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007952
42CF9416     0598		ADDQ	R22, 124, R22				; R22, 124, R22
42360416     059C		ADDQ	R17, R22, R22				; R17, R22, R22
44AFF005     05A0		AND	R5, 127, R5				; R5, 127, R5				    ; 007950
43E50005     05A4		SEXTL	R5, R5					; R5, R5
48A13725     05A8		SLL	R5, 9, R5				; R5, 9, R5				    ; 007951
43E50005     05AC		SEXTL	R5, R5					; R5, R5
B0B60000     05B0		STL	R5, (R22)				; R5, (R22)				    ; 007952
A3920524     05B4		LDL	R28, 1316(R18)				; R28, 1316(R18)			    ; 007953
E7800004     05B8		BEQ	R28, 111_5$				; R28, 111_5$				    ; 007954
273F0001     05BC		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007955
432F1419     05C0		ADDQ	R25, 120, R25				; R25, 120, R25
42390419     05C4		ADDQ	R17, R25, R25				; R17, R25, R25
B3F90000     05C8		STL	R31, (R25)				; R31, (R25)
	     05CC	111_5$:												    ; 007956
279F0001     05CC		LDAH	R28, 1(R31)				; R28, 1(R31)				    ; 007962
A0510050     05D0		LDL	R2, 80(R17)				; R2, 80(R17)				    ; 007959
438F941C     05D4		ADDQ	R28, 124, R28				; R28, 124, R28				    ; 007962
A0710054     05D8		LDL	R3, 84(R17)				; R3, 84(R17)				    ; 007960
273F0001     05DC		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007963
423C041C     05E0		ADDQ	R17, R28, R28				; R17, R28, R28				    ; 007962

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  27
V01-004A                        CRYPT                            3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

432F1419     05E4		ADDQ	R25, 120, R25				; R25, 120, R25				    ; 007963
A2DC0000     05E8		LDL	R22, (R28)				; R22, (R28)				    ; 007962
422E9404     05EC		ADDQ	R17, 116, R4				; R17, 116, R4				    ; 007961
42390419     05F0		ADDQ	R17, R25, R25				; R17, R25, R25				    ; 007963
47E81406     05F4		BIS	R31, 64, R6				; R31, 64, R6				    ; 007957
A0B90000     05F8		LDL	R5, (R25)				; R5, (R25)				    ; 007963
42581401     05FC		ADDQ	R18, 192, R1				; R18, 192, R1				    ; 007958
40960004     0600		ADDL	R4, R22, R4				; R4, R22, R4				    ; 007962
2FFE0000     0604		LNOP						; 
	     0608	111_2$:												    ; 007964
A3010000     0608		LDL	R24, (R1)				; R24, (R1)
40C03126     060C		SUBL	R6, 1, R6				; R6, 1, R6				    ; 007970
A2E40000     0610		LDL	R23, (R4)				; R23, (R4)				    ; 007964
40809404     0614		ADDQ	R4, 4, R4				; R4, 4, R4
46F80816     0618		XOR	R23, R24, R22				; R23, R24, R22
B2C10000     061C		STL	R22, (R1)				; R22, (R1)
43F6001C     0620		SEXTL	R22, R28				; R22, R28				    ; 007965
44BC0819     0624		XOR	R5, R28, R25				; R5, R28, R25
B3210000     0628		STL	R25, (R1)				; R25, (R1)
47E10417     062C		MOV	R1, R23					; R1, R23				    ; 007966
43F90018     0630		SEXTL	R25, R24				; R25, R24
40209401     0634		ADDQ	R1, 4, R1				; R1, 4, R1
44580816     0638		XOR	R2, R24, R22				; R2, R24, R22
B2D70000     063C		STL	R22, (R23)				; R22, (R23)
A3810000     0640		LDL	R28, (R1)				; R28, (R1)				    ; 007967
A3240000     0644		LDL	R25, (R4)				; R25, (R4)
40809404     0648		ADDQ	R4, 4, R4				; R4, 4, R4
473C0818     064C		XOR	R25, R28, R24				; R25, R28, R24
43F80017     0650		SEXTL	R24, R23				; R24, R23				    ; 007968
B3010000     0654		STL	R24, (R1)				; R24, (R1)				    ; 007967
44B70816     0658		XOR	R5, R23, R22				; R5, R23, R22				    ; 007968
B2C10000     065C		STL	R22, (R1)				; R22, (R1)
47E10419     0660		MOV	R1, R25					; R1, R25				    ; 007969
43F6001C     0664		SEXTL	R22, R28				; R22, R28
40209401     0668		ADDQ	R1, 4, R1				; R1, 4, R1
447C0818     066C		XOR	R3, R28, R24				; R3, R28, R24
B3190000     0670		STL	R24, (R25)				; R24, (R25)
FCDFFFE4     0674		BGT	R6, 111_2$				; R6, 111_2$				    ; 007970
A01E0000     0678		LDL	R0, (SP)				; R0, (SP)				    ; 007972
A03E0004     067C		LDL	R1, 4(SP)				; R1, 4(SP)
43C1141E     0680		ADDQ	SP, 8, SP				; SP, 8, SP
	     0684	$L10:												    ; 007973
A45E0008     0684		LDQ	R2, 8(SP)				; R2, 8(SP)
A47E0010     0688		LDQ	R3, 16(SP)				; R3, 16(SP)
A49E0018     068C		LDQ	R4, 24(SP)				; R4, 24(SP)
A4BE0020     0690		LDQ	R5, 32(SP)				; R5, 32(SP)
A4DE0028     0694		LDQ	R6, 40(SP)				; R6, 40(SP)
43C6141E     0698		ADDQ	SP, 48, SP				; SP, 48, SP
6BFA8001     069C		RET	R26					; R26

Routine Size: 496 bytes,    Routine Base: CRY_CODE + 04B0

	     06A0	DECRYPT:											    ; 007975
43C6153E     06A0		SUBQ	SP, 48, SP				; SP, 48, SP
A65BFE40     06A4		LDQ	R18, -448(R27)				; R18, -448(R27)			    ; 008013
A63BFE88     06A8		LDQ	R17, -376(R27)				; R17, -376(R27)			    ; 007977
B45E0008     06AC		STQ	R2, 8(SP)				; R2, 8(SP)				    ; 007975

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  28
V01-004A                        DECRYPT                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

B47E0010     06B0		STQ	R3, 16(SP)				; R3, 16(SP)
B49E0018     06B4		STQ	R4, 24(SP)				; R4, 24(SP)
B4BE0020     06B8		STQ	R5, 32(SP)				; R5, 32(SP)
B4DE0028     06BC		STQ	R6, 40(SP)				; R6, 40(SP)
	     06C0	$L11:
43C1153E     06C0		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007976
B03E0004     06C4		STL	R1, 4(SP)				; R1, 4(SP)
B01E0000     06C8		STL	R0, (SP)				; R0, (SP)
A0B1012C     06CC		LDL	R5, 300(R17)				; R5, 300(R17)				    ; 007977
44BFF005     06D0		AND	R5, 255, R5				; R5, 255, R5
40C50006     06D4		ADDL	R6, R5, R6				; R6, R5, R6				    ; 007978
A0B10074     06D8		LDL	R5, 116(R17)				; R5, 116(R17)				    ; 007980
44BFF005     06DC		AND	R5, 255, R5				; R5, 255, R5
F4A00001     06E0		BNE	R5, 112_7$				; R5, 112_7$				    ; 007981
47FA7405     06E4		BIS	R31, 211, R5				; R31, 211, R5				    ; 007982
	     06E8	112_7$:												    ; 007984
4CC5001C     06E8		MULL	R6, R5, R28				; R6, R5, R28				    ; 007985
273F0001     06EC		LDAH	R25, 1(R31)				; R25, 1(R31)
271F0001     06F0		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007990
432F1419     06F4		ADDQ	R25, 120, R25				; R25, 120, R25				    ; 007985
430F1418     06F8		ADDQ	R24, 120, R24				; R24, 120, R24				    ; 007990
42390419     06FC		ADDQ	R17, R25, R25				; R17, R25, R25				    ; 007985
42380418     0700		ADDQ	R17, R24, R24				; R17, R24, R24				    ; 007990
26FFFFFF     0704		LDAH	R23, -1(R31)				; R23, -1(R31)				    ; 007991
42E07417     0708		ADDQ	R23, 3, R23				; R23, 3, R23
422E9416     070C		ADDQ	R17, 116, R22				; R17, 116, R22				    ; 007993
B3990000     0710		STL	R28, (R25)				; R28, (R25)				    ; 007985
2331013E     0714		LDA	R25, 318(R17)				; R25, 318(R17)				    ; 007994
A0B80000     0718		LDL	R5, (R24)				; R5, (R24)				    ; 007990
2F91013E     071C		LDQ_U	R28, 318(R17)				; R28, 318(R17)				    ; 007994
44B70105     0720		BIC	R5, R23, R5				; R5, R23, R5				    ; 007991
2EF10141     0724		LDQ_U	R23, 321(R17)				; R23, 321(R17)				    ; 007994
43E50005     0728		SEXTL	R5, R5					; R5, R5				    ; 007991
4B9904DC     072C		EXTLL	R28, R25, R28				; R28, R25, R28				    ; 007994
4AF90D58     0730		EXTLH	R23, R25, R24				; R23, R25, R24
42C50016     0734		ADDL	R22, R5, R22				; R22, R5, R22				    ; 007993
4798041C     0738		BIS	R28, R24, R28				; R28, R24, R28				    ; 007994
A0B60000     073C		LDL	R5, (R22)				; R5, (R22)				    ; 007993
43FC001C     0740		SEXTL	R28, R28				; R28, R28				    ; 007994
271F0001     0744		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007998
47850805     0748		XOR	R28, R5, R5				; R28, R5, R5				    ; 007994
279F0001     074C		LDAH	R28, 1(R31)				; R28, 1(R31)				    ; 007998
438F141C     0750		ADDQ	R28, 120, R28				; R28, 120, R28
423C041C     0754		ADDQ	R17, R28, R28				; R17, R28, R28
430F1418     0758		ADDQ	R24, 120, R24				; R24, 120, R24
A2DC0000     075C		LDL	R22, (R28)				; R22, (R28)
43E50005     0760		SEXTL	R5, R5					; R5, R5				    ; 007994
42380418     0764		ADDQ	R17, R24, R24				; R17, R24, R24				    ; 007998
44B60819     0768		XOR	R5, R22, R25				; R5, R22, R25
B3380000     076C		STL	R25, (R24)				; R25, (R24)
A0B10274     0770		LDL	R5, 628(R17)				; R5, 628(R17)				    ; 008005
48A050C5     0774		EXTBL	R5, 2, R5				; R5, 2, R5
F4A00001     0778		BNE	R5, 112_8$				; R5, 112_8$				    ; 008006
47E67405     077C		BIS	R31, 51, R5				; R31, 51, R5				    ; 008007
	     0780	112_8$:												    ; 008008
4CC50005     0780		MULL	R6, R5, R5				; R6, R5, R5				    ; 008009
26DF0001     0784		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 008012

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  29
V01-004A                        DECRYPT                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

42CF9416     0788		ADDQ	R22, 124, R22				; R22, 124, R22
42360416     078C		ADDQ	R17, R22, R22				; R17, R22, R22
44AFF005     0790		AND	R5, 127, R5				; R5, 127, R5				    ; 008010
43E50005     0794		SEXTL	R5, R5					; R5, R5
48A13725     0798		SLL	R5, 9, R5				; R5, 9, R5				    ; 008011
43E50005     079C		SEXTL	R5, R5					; R5, R5
B0B60000     07A0		STL	R5, (R22)				; R5, (R22)				    ; 008012
A3920524     07A4		LDL	R28, 1316(R18)				; R28, 1316(R18)			    ; 008013
E7800004     07A8		BEQ	R28, 112_5$				; R28, 112_5$				    ; 008014
273F0001     07AC		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 008015
432F1419     07B0		ADDQ	R25, 120, R25				; R25, 120, R25
42390419     07B4		ADDQ	R17, R25, R25				; R17, R25, R25
B3F90000     07B8		STL	R31, (R25)				; R31, (R25)
	     07BC	112_5$:												    ; 008016
279F0001     07BC		LDAH	R28, 1(R31)				; R28, 1(R31)				    ; 008022
A0510050     07C0		LDL	R2, 80(R17)				; R2, 80(R17)				    ; 008019
438F941C     07C4		ADDQ	R28, 124, R28				; R28, 124, R28				    ; 008022
A0710054     07C8		LDL	R3, 84(R17)				; R3, 84(R17)				    ; 008020
273F0001     07CC		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 008023
423C041C     07D0		ADDQ	R17, R28, R28				; R17, R28, R28				    ; 008022
432F1419     07D4		ADDQ	R25, 120, R25				; R25, 120, R25				    ; 008023
A2DC0000     07D8		LDL	R22, (R28)				; R22, (R28)				    ; 008022
422E9404     07DC		ADDQ	R17, 116, R4				; R17, 116, R4				    ; 008021
42390419     07E0		ADDQ	R17, R25, R25				; R17, R25, R25				    ; 008023
47E81406     07E4		BIS	R31, 64, R6				; R31, 64, R6				    ; 008017
A0B90000     07E8		LDL	R5, (R25)				; R5, (R25)				    ; 008023
42581401     07EC		ADDQ	R18, 192, R1				; R18, 192, R1				    ; 008018
40960004     07F0		ADDL	R4, R22, R4				; R4, R22, R4				    ; 008022
2FFE0000     07F4		LNOP						; 
	     07F8	112_3$:												    ; 008024
A3010000     07F8		LDL	R24, (R1)				; R24, (R1)
40C03126     07FC		SUBL	R6, 1, R6				; R6, 1, R6				    ; 008030
A2E40000     0800		LDL	R23, (R4)				; R23, (R4)				    ; 008024
40809404     0804		ADDQ	R4, 4, R4				; R4, 4, R4
46F80816     0808		XOR	R23, R24, R22				; R23, R24, R22
B2C10000     080C		STL	R22, (R1)				; R22, (R1)
43F6001C     0810		SEXTL	R22, R28				; R22, R28				    ; 008025
44BC0819     0814		XOR	R5, R28, R25				; R5, R28, R25
B3210000     0818		STL	R25, (R1)				; R25, (R1)
47E10417     081C		MOV	R1, R23					; R1, R23				    ; 008026
43F90018     0820		SEXTL	R25, R24				; R25, R24
40209401     0824		ADDQ	R1, 4, R1				; R1, 4, R1
44580816     0828		XOR	R2, R24, R22				; R2, R24, R22
B2D70000     082C		STL	R22, (R23)				; R22, (R23)
A3810000     0830		LDL	R28, (R1)				; R28, (R1)				    ; 008027
A3240000     0834		LDL	R25, (R4)				; R25, (R4)
40809404     0838		ADDQ	R4, 4, R4				; R4, 4, R4
473C0818     083C		XOR	R25, R28, R24				; R25, R28, R24
43F80017     0840		SEXTL	R24, R23				; R24, R23				    ; 008028
B3010000     0844		STL	R24, (R1)				; R24, (R1)				    ; 008027
44B70816     0848		XOR	R5, R23, R22				; R5, R23, R22				    ; 008028
B2C10000     084C		STL	R22, (R1)				; R22, (R1)
47E10419     0850		MOV	R1, R25					; R1, R25				    ; 008029
43F6001C     0854		SEXTL	R22, R28				; R22, R28
40209401     0858		ADDQ	R1, 4, R1				; R1, 4, R1
447C0818     085C		XOR	R3, R28, R24				; R3, R28, R24
B3190000     0860		STL	R24, (R25)				; R24, (R25)

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  30
V01-004A                        DECRYPT                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

FCDFFFE4     0864		BGT	R6, 112_3$				; R6, 112_3$				    ; 008030
A01E0000     0868		LDL	R0, (SP)				; R0, (SP)				    ; 008037
A03E0004     086C		LDL	R1, 4(SP)				; R1, 4(SP)
43C1141E     0870		ADDQ	SP, 8, SP				; SP, 8, SP
	     0874	$L12:												    ; 008038
A45E0008     0874		LDQ	R2, 8(SP)				; R2, 8(SP)
A47E0010     0878		LDQ	R3, 16(SP)				; R3, 16(SP)
A49E0018     087C		LDQ	R4, 24(SP)				; R4, 24(SP)
A4BE0020     0880		LDQ	R5, 32(SP)				; R5, 32(SP)
A4DE0028     0884		LDQ	R6, 40(SP)				; R6, 40(SP)
43C6141E     0888		ADDQ	SP, 48, SP				; SP, 48, SP
6BFA8001     088C		RET	R26					; R26

Routine Size: 496 bytes,    Routine Base: CRY_CODE + 06A0


				.PSECT	FDHOSTD_CODE, LONG, NOPIC, CON, REL, LCL,-
					NOSHR, EXE, RD, WRT
	     0000	FDHOSTD::											    ; 007161
43D2153E     0000		SUBQ	SP, 144, SP				; SP, 144, SP
B77E0000     0004		STQ	R27, (SP)				; R27, (SP)
B75E0018     0008		STQ	R26, 24(SP)				; R26, 24(SP)
B45E0020     000C		STQ	R2, 32(SP)				; R2, 32(SP)
B47E0028     0010		STQ	R3, 40(SP)				; R3, 40(SP)
B49E0030     0014		STQ	R4, 48(SP)				; R4, 48(SP)
B4BE0038     0018		STQ	R5, 56(SP)				; R5, 56(SP)
B4DE0040     001C		STQ	R6, 64(SP)				; R6, 64(SP)
B4FE0048     0020		STQ	R7, 72(SP)				; R7, 72(SP)
B51E0050     0024		STQ	R8, 80(SP)				; R8, 80(SP)
B53E0058     0028		STQ	R9, 88(SP)				; R9, 88(SP)
B55E0060     002C		STQ	R10, 96(SP)				; R10, 96(SP)
B57E0068     0030		STQ	R11, 104(SP)				; R11, 104(SP)
B5BE0070     0034		STQ	R13, 112(SP)				; R13, 112(SP)
B5DE0078     0038		STQ	R14, 120(SP)				; R14, 120(SP)
47FB040D     003C		MOV	R27, R13				; R27, R13
B5FE0080     0040		STQ	R15, 128(SP)				; R15, 128(SP)
B7BE0088     0044		STQ	FP, 136(SP)				; FP, 136(SP)
A66D0028     0048		LDQ	R19, 40(R13)				; R19, 40(R13)				    ; 007163
47FE041D     004C		MOV	SP, FP					; SP, FP				    ; 007161
B7FE0008     0050		STQ	R31, 8(SP)				; R31, 8(SP)
	     0054	$L1:
A74D0060     0054		LDQ	R26, 96(R13)				; R26, 96(R13)				    ; 007166
2253040C     0058		LDA	R18, 1036(R19)				; R18, 1036(R19)			    ; 007163
A76D0068     005C		LDQ	R27, 104(R13)				; R27, 104(R13)				    ; 007166
22330410     0060		LDA	R17, 1040(R19)				; R17, 1040(R19)			    ; 007164
2213054C     0064		LDA	R16, 1356(R19)				; R16, 1356(R19)			    ; 007165
47E07419     0068		BIS	R31, 3, R25				; R31, 3, R25				    ; 007166
6B5A4000     006C		JSR	R26, R26				; R26, R26
E0000015     0070		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007167
	     0074	83_30000$:
A72D0028     0074		LDQ	R25, 40(R13)				; R25, 40(R13)				    ; 007169
A70D0028     0078		LDQ	R24, 40(R13)				; R24, 40(R13)				    ; 007170
A74DFFE0     007C		LDQ	R26, -32(R13)				; R26, -32(R13)				    ; 007171
B3F90780     0080		STL	R31, 1920(R25)				; R31, 1920(R25)			    ; 007169
A76DFFE8     0084		LDQ	R27, -24(R13)				; R27, -24(R13)				    ; 007171
22180528     0088		LDA	R16, 1320(R24)				; R16, 1320(R24)			    ; 007170
47E03419     008C		BIS	R31, 1, R25				; R31, 1, R25				    ; 007171

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  31
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

6B5A4000     0090		JSR	R26, R26				; R26, R26
A6ED0058     0094		LDQ	R23, 88(R13)				; R23, 88(R13)				    ; 007172
A5ED0028     0098		LDQ	R15, 40(R13)				; R15, 40(R13)				    ; 007350
40170530     009C		SUBQ	R0, R23, R16				; R0, R23, R16				    ; 007172
E6000023     00A0		BEQ	R16, $L16				; R16, $L16				    ; 007173
	     00A4	83_293$:											    ; 007176
A74D0060     00A4		LDQ	R26, 96(R13)				; R26, 96(R13)				    ; 007180
224F040C     00A8		LDA	R18, 1036(R15)				; R18, 1036(R15)			    ; 007177
A76D0068     00AC		LDQ	R27, 104(R13)				; R27, 104(R13)				    ; 007180
222F0564     00B0		LDA	R17, 1380(R15)				; R17, 1380(R15)			    ; 007178
220F0558     00B4		LDA	R16, 1368(R15)				; R16, 1368(R15)			    ; 007179
47E07419     00B8		BIS	R31, 3, R25				; R31, 3, R25				    ; 007180
6B5A4000     00BC		JSR	R26, R26				; R26, R26
A62D0028     00C0		LDQ	R17, 40(R13)				; R17, 40(R13)				    ; 007191
F000002A     00C4		BLBS	R0, 83_30001$				; R0, 83_30001$				    ; 007181
	     00C8	FDHOSTD_EXIT:											    ; 007610
A74D0028     00C8		LDQ	R26, 40(R13)				; R26, 40(R13)				    ; 007611
A33A0794     00CC		LDL	R25, 1940(R26)				; R25, 1940(R26)
E7200003     00D0		BEQ	R25, 88_1$				; R25, 88_1$				    ; 007612
47FF0419     00D4		CLR	R25					; R25					    ; 007613
236D0150     00D8		LDA	R27, 336(R13)				; R27, 336(R13)
D34002EC     00DC		BSR	R26, XITHDL				; R26, XITHDL
	     00E0	88_1$:												    ; 007614
47FD041E     00E0		MOV	FP, SP					; FP, SP				    ; 007615
A79E0018     00E4		LDQ	R28, 24(SP)				; R28, 24(SP)
A45E0020     00E8		LDQ	R2, 32(SP)				; R2, 32(SP)
A47E0028     00EC		LDQ	R3, 40(SP)				; R3, 40(SP)
A49E0030     00F0		LDQ	R4, 48(SP)				; R4, 48(SP)
A4BE0038     00F4		LDQ	R5, 56(SP)				; R5, 56(SP)
A4DE0040     00F8		LDQ	R6, 64(SP)				; R6, 64(SP)
A4FE0048     00FC		LDQ	R7, 72(SP)				; R7, 72(SP)
A51E0050     0100		LDQ	R8, 80(SP)				; R8, 80(SP)
A53E0058     0104		LDQ	R9, 88(SP)				; R9, 88(SP)
A55E0060     0108		LDQ	R10, 96(SP)				; R10, 96(SP)
A57E0068     010C		LDQ	R11, 104(SP)				; R11, 104(SP)
A5BE0070     0110		LDQ	R13, 112(SP)				; R13, 112(SP)
A5DE0078     0114		LDQ	R14, 120(SP)				; R14, 120(SP)
A5FE0080     0118		LDQ	R15, 128(SP)				; R15, 128(SP)
A7BE0088     011C		LDQ	FP, 136(SP)				; FP, 136(SP)
43D2141E     0120		ADDQ	SP, 144, SP				; SP, 144, SP
6BFC8001     0124		RET	R28					; R28
	     0128	$L15:												    ; 007167
C3FFFFE7     0128		BR	FDHOSTD_EXIT				; FDHOSTD_EXIT
47FF041F     012C		NOP						; 
	     0130	$L16:												    ; 007174
A2EF0780     0130		LDL	R23, 1920(R15)				; R23, 1920(R15)
42E03017     0134		ADDL	R23, 1, R23				; R23, 1, R23
B2EF0780     0138		STL	R23, 1920(R15)				; R23, 1920(R15)
47FF041F     013C		NOP						; 
	     0140	83_295$:											    ; 007281
A74D00D0     0140		LDQ	R26, 208(R13)				; R26, 208(R13)				    ; 007350
47FF0412     0144		CLR	R18					; R18
A76D00D8     0148		LDQ	R27, 216(R13)				; R27, 216(R13)
47FF0413     014C		CLR	R19					; R19
222F0518     0150		LDA	R17, 1304(R15)				; R17, 1304(R15)
220F0410     0154		LDA	R16, 1040(R15)				; R16, 1040(R15)
47E09419     0158		BIS	R31, 4, R25				; R31, 4, R25

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  32
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

6B5A4000     015C		JSR	R26, R26				; R26, R26
A70D0028     0160		LDQ	R24, 40(R13)				; R24, 40(R13)				    ; 007366
E01FFFD8     0164		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007351
C3E0005D     0168		BR	83_30003$				; 83_30003$
47FF041F     016C		NOP						; 
	     0170	83_30001$:											    ; 007181
A3710568     0170		LDL	R27, 1384(R17)				; R27, 1384(R17)			    ; 007191
B3710058     0174		STL	R27, 88(R17)				; R27, 88(R17)
A3110060     0178		LDL	R24, 96(R17)				; R24, 96(R17)				    ; 007192
A3310564     017C		LDL	R25, 1380(R17)				; R25, 1380(R17)
471FF118     0180		BIC	R24, 255, R24				; R24, 255, R24
473FF017     0184		AND	R25, 255, R23				; R25, 255, R23
47170418     0188		BIS	R24, R23, R24				; R24, R23, R24
B3110060     018C		STL	R24, 96(R17)				; R24, 96(R17)
	     0190	83_159$:											    ; 007195
A74DFFA0     0190		LDQ	R26, -96(R13)				; R26, -96(R13)				    ; 007244
47E03419     0194		BIS	R31, 1, R25				; R31, 1, R25
A76DFFA8     0198		LDQ	R27, -88(R13)				; R27, -88(R13)
42259410     019C		ADDQ	R17, 44, R16				; R17, 44, R16
6B5A4000     01A0		JSR	R26, R26				; R26, R26
A62D0028     01A4		LDQ	R17, 40(R13)				; R17, 40(R13)				    ; 007248
E01FFFC7     01A8		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007245
277F0001     01AC		LDAH	R27, 1(R31)				; R27, 1(R31)				    ; 007248
237B87E4     01B0		LDA	R27, -30748(R27)			; R27, -30748(R27)
A74D0090     01B4		LDQ	R26, 144(R13)				; R26, 144(R13)				    ; 007257
A39102D4     01B8		LDL	R28, 724(R17)				; R28, 724(R17)				    ; 007248
271F0001     01BC		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007252
423B041B     01C0		ADDQ	R17, R27, R27				; R17, R27, R27				    ; 007248
231887E4     01C4		LDA	R24, -30748(R24)			; R24, -30748(R24)			    ; 007252
B39B0000     01C8		STL	R28, (R27)				; R28, (R27)				    ; 007248
26FF0001     01CC		LDAH	R23, 1(R31)				; R23, 1(R31)				    ; 007252
42380418     01D0		ADDQ	R17, R24, R24				; R17, R24, R24
279F0001     01D4		LDAH	R28, 1(R31)				; R28, 1(R31)				    ; 007253
22F787E4     01D8		LDA	R23, -30748(R23)			; R23, -30748(R23)			    ; 007252
A3380000     01DC		LDL	R25, (R24)				; R25, (R24)
277F0001     01E0		LDAH	R27, 1(R31)				; R27, 1(R31)				    ; 007253
239C87E4     01E4		LDA	R28, -30748(R28)			; R28, -30748(R28)
42370417     01E8		ADDQ	R17, R23, R23				; R17, R23, R23				    ; 007252
237B87BC     01EC		LDA	R27, -30788(R27)			; R27, -30788(R27)			    ; 007253
423C041C     01F0		ADDQ	R17, R28, R28				; R17, R28, R28
4727F119     01F4		BIC	R25, 63, R25				; R25, 63, R25				    ; 007252
B3370000     01F8		STL	R25, (R23)				; R25, (R23)
423B041B     01FC		ADDQ	R17, R27, R27				; R17, R27, R27				    ; 007253
A2DC0000     0200		LDL	R22, (R28)				; R22, (R28)
47E03419     0204		BIS	R31, 1, R25				; R31, 1, R25				    ; 007257
422F9410     0208		ADDQ	R17, 124, R16				; R17, 124, R16
B2DB0000     020C		STL	R22, (R27)				; R22, (R27)				    ; 007253
A76D0098     0210		LDQ	R27, 152(R13)				; R27, 152(R13)				    ; 007257
6B5A4000     0214		JSR	R26, R26				; R26, R26
A62D0028     0218		LDQ	R17, 40(R13)				; R17, 40(R13)				    ; 007259
E01FFFAA     021C		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007258
A70D0070     0220		LDQ	R24, 112(R13)				; R24, 112(R13)				    ; 007261
47E03419     0224		BIS	R31, 1, R25				; R31, 1, R25				    ; 007263
B3F10678     0228		STL	R31, 1656(R17)				; R31, 1656(R17)			    ; 007260
22110535     022C		LDA	R16, 1333(R17)				; R16, 1333(R17)			    ; 007259
A74DFFE0     0230		LDQ	R26, -32(R13)				; R26, -32(R13)				    ; 007263
B3F80050     0234		STL	R31, 80(R24)				; R31, 80(R24)				    ; 007261

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  33
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

B3F80054     0238		STL	R31, 84(R24)				; R31, 84(R24)
430A1418     023C		ADDQ	R24, 80, R24				; R24, 80, R24
A76DFFE8     0240		LDQ	R27, -24(R13)				; R27, -24(R13)				    ; 007263
B3F10524     0244		STL	R31, 1316(R17)				; R31, 1316(R17)			    ; 007262
6B5A4000     0248		JSR	R26, R26				; R26, R26				    ; 007263
A6CD0058     024C		LDQ	R22, 88(R13)				; R22, 88(R13)				    ; 007264
A66D0028     0250		LDQ	R19, 40(R13)				; R19, 40(R13)				    ; 007266
40160530     0254		SUBQ	R0, R22, R16				; R0, R22, R16				    ; 007264
F61FFFB9     0258		BNE	R16, 83_295$				; R16, 83_295$				    ; 007265
2253040C     025C		LDA	R18, 1036(R19)				; R18, 1036(R19)			    ; 007266
A74D0060     0260		LDQ	R26, 96(R13)				; R26, 96(R13)				    ; 007269
22330670     0264		LDA	R17, 1648(R19)				; R17, 1648(R19)			    ; 007267
A76D0068     0268		LDQ	R27, 104(R13)				; R27, 104(R13)				    ; 007269
22130535     026C		LDA	R16, 1333(R19)				; R16, 1333(R19)			    ; 007268
47E07419     0270		BIS	R31, 3, R25				; R31, 3, R25				    ; 007269
6B5A4000     0274		JSR	R26, R26				; R26, R26
A5CD0028     0278		LDQ	R14, 40(R13)				; R14, 40(R13)				    ; 007272
E01FFF92     027C		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007270
C3E00003     0280		BR	83_30002$				; 83_30002$
47FF041F     0284		NOP						; 
	     0288	83_149$:											    ; 007194
C3FFFF8F     0288		BR	FDHOSTD_EXIT				; FDHOSTD_EXIT
47FF041F     028C		NOP						; 
	     0290	83_30002$:											    ; 007270
A74D0080     0290		LDQ	R26, 128(R13)				; R26, 128(R13)				    ; 007273
A32E040C     0294		LDL	R25, 1036(R14)				; R25, 1036(R14)			    ; 007272
A76D0088     0298		LDQ	R27, 136(R13)				; R27, 136(R13)				    ; 007273
B32E0670     029C		STL	R25, 1648(R14)				; R25, 1648(R14)			    ; 007272
6B5A4000     02A0		JSR	R26, R26				; R26, R26				    ; 007273
47E03419     02A4		BIS	R31, 1, R25				; R31, 1, R25				    ; 007277
A70D0028     02A8		LDQ	R24, 40(R13)				; R24, 40(R13)				    ; 007276
A76DFFE8     02AC		LDQ	R27, -24(R13)				; R27, -24(R13)				    ; 007277
A74DFFE0     02B0		LDQ	R26, -32(R13)				; R26, -32(R13)
22180540     02B4		LDA	R16, 1344(R24)				; R16, 1344(R24)			    ; 007276
6B5A4000     02B8		JSR	R26, R26				; R26, R26				    ; 007277
A6ED0058     02BC		LDQ	R23, 88(R13)				; R23, 88(R13)				    ; 007278
40170530     02C0		SUBQ	R0, R23, R16				; R0, R23, R16
F61FFF9E     02C4		BNE	R16, 83_295$				; R16, 83_295$				    ; 007279
A6CD0028     02C8		LDQ	R22, 40(R13)				; R22, 40(R13)				    ; 007280
22D60524     02CC		LDA	R22, 1316(R22)				; R22, 1316(R22)
A3760000     02D0		LDL	R27, (R22)				; R27, (R22)
4360301B     02D4		ADDL	R27, 1, R27				; R27, 1, R27
B3760000     02D8		STL	R27, (R22)				; R27, (R22)
C3FFFF98     02DC		BR	83_295$					; 83_295$				    ; 007281
	     02E0	83_30003$:											    ; 007351
43C1153E     02E0		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007366
A74DFFD0     02E4		LDQ	R26, -48(R13)				; R26, -48(R13)
A76DFFD8     02E8		LDQ	R27, -40(R13)				; R27, -40(R13)
47FF0415     02EC		CLR	R21					; R21
B7FE0000     02F0		STQ	R31, (SP)				; R31, (SP)
47FF0414     02F4		CLR	R20					; R20
A2380518     02F8		LDL	R17, 1304(R24)				; R17, 1304(R24)
43C3153E     02FC		SUBQ	SP, 24, SP				; SP, 24, SP
22780380     0300		LDA	R19, 896(R24)				; R19, 896(R24)
A2DE0018     0304		LDL	R22, 24(SP)				; R22, 24(SP)
A39E001C     0308		LDL	R28, 28(SP)				; R28, 28(SP)
47FF0412     030C		CLR	R18					; R18

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  34
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

4A2012D1     0310		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0000     0314		STQ	R22, (SP)				; R22, (SP)
47FF0410     0318		CLR	R16					; R16
B79E0008     031C		STQ	R28, 8(SP)				; R28, 8(SP)
47E11419     0320		BIS	R31, 8, R25				; R31, 8, R25
6B5A4000     0324		JSR	R26, R26				; R26, R26
A5ED0028     0328		LDQ	R15, 40(R13)				; R15, 40(R13)				    ; 007370
43C4141E     032C		ADDQ	SP, 32, SP				; SP, 32, SP				    ; 007366
E01FFF65     0330		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007368
	     0334	83_140$:											    ; 007369
A36F0780     0334		LDL	R27, 1920(R15)				; R27, 1920(R15)			    ; 007370
F7600013     0338		BNE	R27, 83_162$				; R27, 83_162$				    ; 007371
43C1153E     033C		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007410
A74DFF50     0340		LDQ	R26, -176(R13)				; R26, -176(R13)
A76DFF58     0344		LDQ	R27, -168(R13)				; R27, -168(R13)
47FF0414     0348		CLR	R20					; R20
B7FE0000     034C		STQ	R31, (SP)				; R31, (SP)
43C1153E     0350		SUBQ	SP, 8, SP				; SP, 8, SP
227F1680     0354		LDA	R19, 5760(R31)				; R19, 5760(R31)
A2BE0008     0358		LDL	R21, 8(SP)				; R21, 8(SP)
A2DE000C     035C		LDL	R22, 12(SP)				; R22, 12(SP)
225F0240     0360		LDA	R18, 576(R31)				; R18, 576(R31)
222F051C     0364		LDA	R17, 1308(R15)				; R17, 1308(R15)
47FF0410     0368		CLR	R16					; R16
B6DE0000     036C		STQ	R22, (SP)				; R22, (SP)
47E0F419     0370		BIS	R31, 7, R25				; R31, 7, R25
6B5A4000     0374		JSR	R26, R26				; R26, R26
43C2141E     0378		ADDQ	SP, 16, SP				; SP, 16, SP
A70D0028     037C		LDQ	R24, 40(R13)				; R24, 40(R13)				    ; 007415
E01FFF51     0380		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007411
C3E00042     0384		BR	83_30004$				; 83_30004$
	     0388	83_162$:											    ; 007428
275F0001     0388		LDAH	R26, 1(R31)				; R26, 1(R31)				    ; 007436
A60DFF60     038C		LDQ	R16, -160(R13)				; R16, -160(R13)
235A87E8     0390		LDA	R26, -30744(R26)			; R26, -30744(R26)
A76D00C8     0394		LDQ	R27, 200(R13)				; R27, 200(R13)
41FA041A     0398		ADDQ	R15, R26, R26				; R15, R26, R26
47FA0411     039C		MOV	R26, R17				; R26, R17
A74D00C0     03A0		LDQ	R26, 192(R13)				; R26, 192(R13)
47E05419     03A4		BIS	R31, 2, R25				; R31, 2, R25
6B5A4000     03A8		JSR	R26, R26				; R26, R26
A78D0028     03AC		LDQ	R28, 40(R13)				; R28, 40(R13)				    ; 007439
A31C0780     03B0		LDL	R24, 1920(R28)				; R24, 1920(R28)
F71FFF44     03B4		BNE	R24, FDHOSTD_EXIT			; R24, FDHOSTD_EXIT			    ; 007440
26DF0001     03B8		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007441
A2FC077C     03BC		LDL	R23, 1916(R28)				; R23, 1916(R28)
22D687B8     03C0		LDA	R22, -30792(R22)			; R22, -30792(R22)
275F0001     03C4		LDAH	R26, 1(R31)				; R26, 1(R31)				    ; 007442
43960416     03C8		ADDQ	R28, R22, R22				; R28, R22, R22				    ; 007441
273F0001     03CC		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007442
235A87E4     03D0		LDA	R26, -30748(R26)			; R26, -30748(R26)
B2F60000     03D4		STL	R23, (R22)				; R23, (R22)				    ; 007441
233987BC     03D8		LDA	R25, -30788(R25)			; R25, -30788(R25)			    ; 007442
439A041A     03DC		ADDQ	R28, R26, R26				; R28, R26, R26
26FF0001     03E0		LDAH	R23, 1(R31)				; R23, 1(R31)				    ; 007443
43990419     03E4		ADDQ	R28, R25, R25				; R28, R25, R25				    ; 007442
26DF0001     03E8		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007444

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  35
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

A37A0000     03EC		LDL	R27, (R26)				; R27, (R26)				    ; 007442
22F787C0     03F0		LDA	R23, -30784(R23)			; R23, -30784(R23)			    ; 007443
A74D0040     03F4		LDQ	R26, 64(R13)				; R26, 64(R13)				    ; 007477
22D687B4     03F8		LDA	R22, -30796(R22)			; R22, -30796(R22)			    ; 007444
B3790000     03FC		STL	R27, (R25)				; R27, (R25)				    ; 007442
A31C0520     0400		LDL	R24, 1312(R28)				; R24, 1312(R28)			    ; 007443
43970417     0404		ADDQ	R28, R23, R23				; R28, R23, R23
43960416     0408		ADDQ	R28, R22, R22				; R28, R22, R22				    ; 007444
47E39404     040C		BIS	R31, 28, R4				; R31, 28, R4				    ; 007445
B3170000     0410		STL	R24, (R23)				; R24, (R23)				    ; 007443
271F0001     0414		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007477
B3F60000     0418		STL	R31, (R22)				; R31, (R22)				    ; 007444
43C8153E     041C		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 007477
231887B4     0420		LDA	R24, -30796(R24)			; R24, -30796(R24)
B7FE0038     0424		STQ	R31, 56(SP)				; R31, 56(SP)
B7FE0030     0428		STQ	R31, 48(SP)				; R31, 48(SP)
43980418     042C		ADDQ	R28, R24, R24				; R28, R24, R24
B49E0008     0430		STQ	R4, 8(SP)				; R4, 8(SP)
47F80419     0434		MOV	R24, R25				; R24, R25
B73E0000     0438		STQ	R25, (SP)				; R25, (SP)
47FF0414     043C		CLR	R20					; R20
A23C0518     0440		LDL	R17, 1304(R28)				; R17, 1304(R28)
47FF0415     0444		CLR	R21					; R21
A2DE0030     0448		LDL	R22, 48(SP)				; R22, 48(SP)
227C0784     044C		LDA	R19, 1924(R28)				; R19, 1924(R28)
A37E0034     0450		LDL	R27, 52(SP)				; R27, 52(SP)
47F3D412     0454		BIS	R31, 158, R18				; R31, 158, R18
4A2012D1     0458		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0010     045C		STQ	R22, 16(SP)				; R22, 16(SP)
B77E0018     0460		STQ	R27, 24(SP)				; R27, 24(SP)
47E03410     0464		BIS	R31, 1, R16				; R31, 1, R16
A37E003C     0468		LDL	R27, 60(SP)				; R27, 60(SP)
47E19419     046C		BIS	R31, 12, R25				; R31, 12, R25
A2DE0038     0470		LDL	R22, 56(SP)				; R22, 56(SP)
B6DE0020     0474		STQ	R22, 32(SP)				; R22, 32(SP)
B77E0028     0478		STQ	R27, 40(SP)				; R27, 40(SP)
A76D0048     047C		LDQ	R27, 72(R13)				; R27, 72(R13)
6B5A4000     0480		JSR	R26, R26				; R26, R26
43C8141E     0484		ADDQ	SP, 64, SP				; SP, 64, SP
E01FFF0F     0488		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007478
C3E0001E     048C		BR	83_30005$				; 83_30005$
	     0490	83_30004$:											    ; 007411
43C1153E     0490		SUBQ	SP, 8, SP				; SP, 8, SP				    ; 007415
A74DFFD0     0494		LDQ	R26, -48(R13)				; R26, -48(R13)
A76DFFD8     0498		LDQ	R27, -40(R13)				; R27, -40(R13)
47FF0415     049C		CLR	R21					; R21
B7FE0000     04A0		STQ	R31, (SP)				; R31, (SP)
47FF0414     04A4		CLR	R20					; R20
A238051C     04A8		LDL	R17, 1308(R24)				; R17, 1308(R24)
43C3153E     04AC		SUBQ	SP, 24, SP				; SP, 24, SP
227803E0     04B0		LDA	R19, 992(R24)				; R19, 992(R24)
A2DE0018     04B4		LDL	R22, 24(SP)				; R22, 24(SP)
A39E001C     04B8		LDL	R28, 28(SP)				; R28, 28(SP)
47FF0412     04BC		CLR	R18					; R18
4A2012D1     04C0		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0000     04C4		STQ	R22, (SP)				; R22, (SP)
47FF0410     04C8		CLR	R16					; R16

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  36
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

B79E0008     04CC		STQ	R28, 8(SP)				; R28, 8(SP)
47E11419     04D0		BIS	R31, 8, R25				; R31, 8, R25
6B5A4000     04D4		JSR	R26, R26				; R26, R26
43C4141E     04D8		ADDQ	SP, 32, SP				; SP, 32, SP
F0000002     04DC		BLBS	R0, 83_176$				; R0, 83_176$				    ; 007416
	     04E0	83_161$:											    ; 007417
C3FFFEF9     04E0		BR	FDHOSTD_EXIT				; FDHOSTD_EXIT
47FF041F     04E4		NOP						; 
	     04E8	83_176$:											    ; 007418
A76D0028     04E8		LDQ	R27, 40(R13)				; R27, 40(R13)				    ; 007424
47E03419     04EC		BIS	R31, 1, R25				; R31, 1, R25				    ; 007425
A74DFF40     04F0		LDQ	R26, -192(R13)				; R26, -192(R13)
43609410     04F4		ADDQ	R27, 4, R16				; R27, 4, R16				    ; 007424
A76DFF48     04F8		LDQ	R27, -184(R13)				; R27, -184(R13)			    ; 007425
6B5A4000     04FC		JSR	R26, R26				; R26, R26
C3FFFFA1     0500		BR	83_162$					; 83_162$				    ; 007428
47FF041F     0504		NOP						; 
	     0508	83_30005$:											    ; 007478
A74D0028     0508		LDQ	R26, 40(R13)				; R26, 40(R13)				    ; 007479
B3FA0794     050C		STL	R31, 1940(R26)				; R31, 1940(R26)
	     0510	EVTLOOP:											    ; 007481
43C8153E     0510		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 007492
A78D0028     0514		LDQ	R28, 40(R13)				; R28, 40(R13)
47E29417     0518		BIS	R31, 20, R23				; R31, 20, R23
A76D0048     051C		LDQ	R27, 72(R13)				; R27, 72(R13)
B7FE0038     0520		STQ	R31, 56(SP)				; R31, 56(SP)
47FF0414     0524		CLR	R20					; R20
B7FE0030     0528		STQ	R31, 48(SP)				; R31, 48(SP)
22DC0798     052C		LDA	R22, 1944(R28)				; R22, 1944(R28)
B6FE0008     0530		STQ	R23, 8(SP)				; R23, 8(SP)
47FF0415     0534		CLR	R21					; R21
B6DE0000     0538		STQ	R22, (SP)				; R22, (SP)
227C0784     053C		LDA	R19, 1924(R28)				; R19, 1924(R28)
A35E0030     0540		LDL	R26, 48(SP)				; R26, 48(SP)
47E43412     0544		BIS	R31, 33, R18				; R31, 33, R18
A23C051C     0548		LDL	R17, 1308(R28)				; R17, 1308(R28)
47E15410     054C		BIS	R31, 10, R16				; R31, 10, R16
A2DE0034     0550		LDL	R22, 52(SP)				; R22, 52(SP)
47E19419     0554		BIS	R31, 12, R25				; R31, 12, R25
B75E0010     0558		STQ	R26, 16(SP)				; R26, 16(SP)
4A2012D1     055C		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0018     0560		STQ	R22, 24(SP)				; R22, 24(SP)
A35E0038     0564		LDL	R26, 56(SP)				; R26, 56(SP)
A2DE003C     0568		LDL	R22, 60(SP)				; R22, 60(SP)
B75E0020     056C		STQ	R26, 32(SP)				; R26, 32(SP)
A74D0040     0570		LDQ	R26, 64(R13)				; R26, 64(R13)
B6DE0028     0574		STQ	R22, 40(SP)				; R22, 40(SP)
6B5A4000     0578		JSR	R26, R26				; R26, R26
43C8141E     057C		ADDQ	SP, 64, SP				; SP, 64, SP
E01FFED1     0580		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007493
	     0584	84_30006$:
A78D0028     0584		LDQ	R28, 40(R13)				; R28, 40(R13)				    ; 007499
47E0341A     0588		BIS	R31, 1, R26				; R31, 1, R26				    ; 007500
A37C0798     058C		LDL	R27, 1944(R28)				; R27, 1944(R28)			    ; 007499
43605530     0590		SUBQ	R27, 2, R16				; R27, 2, R16
436053B1     0594		CMPULT	R27, 2, R17				; R27, 2, R17
461F04DA     0598		CMOVNE	R16, R31, R26				; R16, R31, R26				    ; 007500

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  37
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

4751041A     059C		BIS	R26, R17, R26				; R26, R17, R26
E35FFFDB     05A0		BLBC	R26, EVTLOOP				; R26, EVTLOOP
A5ED0028     05A4		LDQ	R15, 40(R13)				; R15, 40(R13)				    ; 007502
47E03419     05A8		BIS	R31, 1, R25				; R31, 1, R25
B32F0794     05AC		STL	R25, 1940(R15)				; R25, 1940(R15)
A30F0798     05B0		LDL	R24, 1944(R15)				; R24, 1944(R15)			    ; 007504
43003530     05B4		SUBQ	R24, 1, R16				; R24, 1, R16
F600003F     05B8		BNE	R16, $L17				; R16, $L17				    ; 007505
	     05BC	WRITEOP:											    ; 007508
26DF0001     05BC		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007510
22D687BC     05C0		LDA	R22, -30788(R22)			; R22, -30788(R22)
273F0001     05C4		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007511
41F60416     05C8		ADDQ	R15, R22, R22				; R15, R22, R22				    ; 007510
233987BC     05CC		LDA	R25, -30788(R25)			; R25, -30788(R25)			    ; 007511
47E29417     05D0		BIS	R31, 20, R23				; R31, 20, R23				    ; 007510
B2F60000     05D4		STL	R23, (R22)				; R23, (R22)
41F90419     05D8		ADDQ	R15, R25, R25				; R15, R25, R25				    ; 007511
271F0001     05DC		LDAH	R24, 1(R31)				; R24, 1(R31)
A38F07A0     05E0		LDL	R28, 1952(R15)				; R28, 1952(R15)
26DF0001     05E4		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007512
A3590000     05E8		LDL	R26, (R25)				; R26, (R25)				    ; 007511
231887BC     05EC		LDA	R24, -30788(R24)			; R24, -30788(R24)
277F0001     05F0		LDAH	R27, 1(R31)				; R27, 1(R31)				    ; 007513
22D687B4     05F4		LDA	R22, -30796(R22)			; R22, -30796(R22)			    ; 007512
273F0001     05F8		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007514
41F80418     05FC		ADDQ	R15, R24, R24				; R15, R24, R24				    ; 007511
237B87B8     0600		LDA	R27, -30792(R27)			; R27, -30792(R27)			    ; 007513
435C001A     0604		ADDL	R26, R28, R26				; R26, R28, R26				    ; 007511
A78D0078     0608		LDQ	R28, 120(R13)				; R28, 120(R13)				    ; 007513
41F60416     060C		ADDQ	R15, R22, R22				; R15, R22, R22				    ; 007512
B3580000     0610		STL	R26, (R24)				; R26, (R24)				    ; 007511
233987C0     0614		LDA	R25, -30784(R25)			; R25, -30784(R25)			    ; 007514
41FB041B     0618		ADDQ	R15, R27, R27				; R15, R27, R27				    ; 007513
47E07417     061C		BIS	R31, 3, R23				; R31, 3, R23				    ; 007512
B2F60000     0620		STL	R23, (R22)				; R23, (R22)
41F90419     0624		ADDQ	R15, R25, R25				; R15, R25, R25				    ; 007514
B39B0000     0628		STL	R28, (R27)				; R28, (R27)				    ; 007513
47E0341A     062C		BIS	R31, 1, R26				; R31, 1, R26				    ; 007514
A76D0048     0630		LDQ	R27, 72(R13)				; R27, 72(R13)				    ; 007517
B3590000     0634		STL	R26, (R25)				; R26, (R25)				    ; 007514
43C8153E     0638		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 007517
279F0001     063C		LDAH	R28, 1(R31)				; R28, 1(R31)
B7FE0038     0640		STQ	R31, 56(SP)				; R31, 56(SP)
239C87B4     0644		LDA	R28, -30796(R28)			; R28, -30796(R28)
B7FE0030     0648		STQ	R31, 48(SP)				; R31, 48(SP)
47E39404     064C		BIS	R31, 28, R4				; R31, 28, R4				    ; 007515
B49E0008     0650		STQ	R4, 8(SP)				; R4, 8(SP)				    ; 007517
41FC041C     0654		ADDQ	R15, R28, R28				; R15, R28, R28
47FC0416     0658		MOV	R28, R22				; R28, R22
B6DE0000     065C		STQ	R22, (SP)				; R22, (SP)
47FF0414     0660		CLR	R20					; R20
A35E0030     0664		LDL	R26, 48(SP)				; R26, 48(SP)
47FF0415     0668		CLR	R21					; R21
A22F0518     066C		LDL	R17, 1304(R15)				; R17, 1304(R15)
226F0784     0670		LDA	R19, 1924(R15)				; R19, 1924(R15)
A2DE0034     0674		LDL	R22, 52(SP)				; R22, 52(SP)
47F3D412     0678		BIS	R31, 158, R18				; R31, 158, R18

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  38
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

B75E0010     067C		STQ	R26, 16(SP)				; R26, 16(SP)
47E03410     0680		BIS	R31, 1, R16				; R31, 1, R16
4A2012D1     0684		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0018     0688		STQ	R22, 24(SP)				; R22, 24(SP)
A35E0038     068C		LDL	R26, 56(SP)				; R26, 56(SP)
47E19419     0690		BIS	R31, 12, R25				; R31, 12, R25
A2DE003C     0694		LDL	R22, 60(SP)				; R22, 60(SP)
B75E0020     0698		STQ	R26, 32(SP)				; R26, 32(SP)
A74D0040     069C		LDQ	R26, 64(R13)				; R26, 64(R13)
B6DE0028     06A0		STQ	R22, 40(SP)				; R22, 40(SP)
6B5A4000     06A4		JSR	R26, R26				; R26, R26
43C8141E     06A8		ADDQ	SP, 64, SP				; SP, 64, SP
A60D0028     06AC		LDQ	R16, 40(R13)				; R16, 40(R13)				    ; 007522
E01FFE85     06B0		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007518
C3E00018     06B4		BR	85_30007$				; 85_30007$
	     06B8	$L17:												    ; 007506
A00F079C     06B8		LDL	R0, 1948(R15)				; R0, 1948(R15)				    ; 007552
237F0200     06BC		LDA	R27, 512(R31)				; R27, 512(R31)				    ; 007555
4B605379     06C0		INSWL	R27, 2, R25				; R27, 2, R25
231F01FF     06C4		LDA	R24, 511(R31)				; R24, 511(R31)				    ; 007558
40003000     06C8		ADDL	R0, 1, R0				; R0, 1, R0				    ; 007553
B00F00B4     06CC		STL	R0, 180(R15)				; R0, 180(R15)				    ; 007554
A34F009C     06D0		LDL	R26, 156(R15)				; R26, 156(R15)				    ; 007555
20EF07AC     06D4		LDA	R7, 1964(R15)				; R7, 1964(R15)				    ; 007561
4B40525A     06D8		MSKWL	R26, 2, R26				; R26, 2, R26				    ; 007555
4759041A     06DC		BIS	R26, R25, R26				; R26, R25, R26
B34F009C     06E0		STL	R26, 156(R15)				; R26, 156(R15)
A0CF07A0     06E4		LDL	R6, 1952(R15)				; R6, 1952(R15)				    ; 007557
40D80006     06E8		ADDL	R6, R24, R6				; R6, R24, R6				    ; 007558
43E60016     06EC		SEXTL	R6, R22					; R6, R22				    ; 007559
4AC13786     06F0		SRA	R22, 9, R6				; R22, 9, R6
2FFE0000     06F4		LNOP						; 
	     06F8	86_16$:												    ; 007563
A76D0028     06F8		LDQ	R27, 40(R13)				; R27, 40(R13)				    ; 007567
47E03419     06FC		BIS	R31, 1, R25				; R31, 1, R25
A74DFF70     0700		LDQ	R26, -144(R13)				; R26, -144(R13)
436F9410     0704		ADDQ	R27, 124, R16				; R27, 124, R16
A76DFF78     0708		LDQ	R27, -136(R13)				; R27, -136(R13)
6B5A4000     070C		JSR	R26, R26				; R26, R26
E01FFE6D     0710		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007568
C3E00078     0714		BR	86_30009$				; 86_30009$
	     0718	85_30007$:											    ; 007518
A010079C     0718		LDL	R0, 1948(R16)				; R0, 1948(R16)				    ; 007522
233F0200     071C		LDA	R25, 512(R31)				; R25, 512(R31)				    ; 007525
4B205377     0720		INSWL	R25, 2, R23				; R25, 2, R23
22DF01FF     0724		LDA	R22, 511(R31)				; R22, 511(R31)				    ; 007528
40003000     0728		ADDL	R0, 1, R0				; R0, 1, R0				    ; 007523
B01000B4     072C		STL	R0, 180(R16)				; R0, 180(R16)				    ; 007524
A310009C     0730		LDL	R24, 156(R16)				; R24, 156(R16)				    ; 007525
20F007AC     0734		LDA	R7, 1964(R16)				; R7, 1964(R16)				    ; 007531
4B005258     0738		MSKWL	R24, 2, R24				; R24, 2, R24				    ; 007525
47170418     073C		BIS	R24, R23, R24				; R24, R23, R24
B310009C     0740		STL	R24, 156(R16)				; R24, 156(R16)
A0D007A0     0744		LDL	R6, 1952(R16)				; R6, 1952(R16)				    ; 007527
40D60006     0748		ADDL	R6, R22, R6				; R6, R22, R6				    ; 007528
43E6001B     074C		SEXTL	R6, R27					; R6, R27				    ; 007529
4B613786     0750		SRA	R27, 9, R6				; R27, 9, R6

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  39
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

2FFE0000     0754		LNOP						; 
	     0758	85_15$:												    ; 007532
A5CD0028     0758		LDQ	R14, 40(R13)				; R14, 40(R13)				    ; 007533
43E70008     075C		SEXTL	R7, R8					; R7, R8				    ; 007534
A74DFFC0     0760		LDQ	R26, -64(R13)				; R26, -64(R13)				    ; 007535
47E80412     0764		MOV	R8, R18					; R8, R18
223F0200     0768		LDA	R17, 512(R31)				; R17, 512(R31)
41D81409     076C		ADDQ	R14, 192, R9				; R14, 192, R9				    ; 007533
47E90410     0770		MOV	R9, R16					; R9, R16				    ; 007535
20320200     0774		LDA	R1, 512(R18)				; R1, 512(R18)
6B5A4000     0778		JSR	R26, R26				; R26, R26
43C0953E     077C		SUBQ	SP, 4, SP				; SP, 4, SP				    ; 007536
A76D00A8     0780		LDQ	R27, 168(R13)				; R27, 168(R13)				    ; 007538
47FF0400     0784		CLR	R0					; R0					    ; 007535
B0DE0000     0788		STL	R6, (SP)				; R6, (SP)				    ; 007536
47FF0402     078C		CLR	R2					; R2					    ; 007535
A74D00A0     0790		LDQ	R26, 160(R13)				; R26, 160(R13)				    ; 007538
47F00403     0794		MOV	R16, R3					; R16, R3				    ; 007535
A0CE00B4     0798		LDL	R6, 180(R14)				; R6, 180(R14)				    ; 007537
47FF0404     079C		CLR	R4					; R4					    ; 007535
47FF0405     07A0		CLR	R5					; R5
43C1953E     07A4		SUBQ	SP, 12, SP				; SP, 12, SP				    ; 007538
6B5A4000     07A8		JSR	R26, R26				; R26, R26
47E03419     07AC		BIS	R31, 1, R25				; R31, 1, R25				    ; 007543
A70D0028     07B0		LDQ	R24, 40(R13)				; R24, 40(R13)
A0DE000C     07B4		LDL	R6, 12(SP)				; R6, 12(SP)				    ; 007539
A74DFF90     07B8		LDQ	R26, -112(R13)				; R26, -112(R13)			    ; 007543
43C2141E     07BC		ADDQ	SP, 16, SP				; SP, 16, SP				    ; 007539
A76DFF98     07C0		LDQ	R27, -104(R13)				; R27, -104(R13)			    ; 007543
430F9410     07C4		ADDQ	R24, 124, R16				; R24, 124, R16
6B5A4000     07C8		JSR	R26, R26				; R26, R26
E01FFE3E     07CC		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007544
	     07D0	85_30008$:
A6CD0028     07D0		LDQ	R22, 40(R13)				; R22, 40(R13)				    ; 007546
22FF0200     07D4		LDA	R23, 512(R31)				; R23, 512(R31)				    ; 007545
40C03126     07D8		SUBL	R6, 1, R6				; R6, 1, R6				    ; 007547
40F70007     07DC		ADDL	R7, R23, R7				; R7, R23, R7				    ; 007545
A37600B4     07E0		LDL	R27, 180(R22)				; R27, 180(R22)				    ; 007546
4360301B     07E4		ADDL	R27, 1, R27				; R27, 1, R27
B37600B4     07E8		STL	R27, 180(R22)				; R27, 180(R22)
42D69416     07EC		ADDQ	R22, 180, R22				; R22, 180, R22
FCDFFFD9     07F0		BGT	R6, 85_15$				; R6, 85_15$				    ; 007548
47FF041F     07F4		NOP						; 
	     07F8	COMMON:												    ; 007591
273F0001     07F8		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007593
233987B4     07FC		LDA	R25, -30796(R25)			; R25, -30796(R25)
41F90419     0800		ADDQ	R15, R25, R25				; R15, R25, R25
26FF0001     0804		LDAH	R23, 1(R31)				; R23, 1(R31)				    ; 007594
47E0341A     0808		BIS	R31, 1, R26				; R31, 1, R26				    ; 007593
B3590000     080C		STL	R26, (R25)				; R26, (R25)
22F787B8     0810		LDA	R23, -30792(R23)			; R23, -30792(R23)			    ; 007594
A30F0798     0814		LDL	R24, 1944(R15)				; R24, 1944(R15)
41F70417     0818		ADDQ	R15, R23, R23				; R15, R23, R23
279F0001     081C		LDAH	R28, 1(R31)				; R28, 1(R31)				    ; 007595
B3170000     0820		STL	R24, (R23)				; R24, (R23)				    ; 007594
239C87BC     0824		LDA	R28, -30788(R28)			; R28, -30788(R28)			    ; 007595
275F0001     0828		LDAH	R26, 1(R31)				; R26, 1(R31)				    ; 007596

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  40
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

A2CF079C     082C		LDL	R22, 1948(R15)				; R22, 1948(R15)			    ; 007595
271F0001     0830		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007597
41FC041C     0834		ADDQ	R15, R28, R28				; R15, R28, R28				    ; 007595
235A87C0     0838		LDA	R26, -30784(R26)			; R26, -30784(R26)			    ; 007596
26FF0001     083C		LDAH	R23, 1(R31)				; R23, 1(R31)				    ; 007598
231887C4     0840		LDA	R24, -30780(R24)			; R24, -30780(R24)			    ; 007597
B2DC0000     0844		STL	R22, (R28)				; R22, (R28)				    ; 007595
41FA041A     0848		ADDQ	R15, R26, R26				; R15, R26, R26				    ; 007596
A36F07A0     084C		LDL	R27, 1952(R15)				; R27, 1952(R15)
22F787C8     0850		LDA	R23, -30776(R23)			; R23, -30776(R23)			    ; 007598
41F80418     0854		ADDQ	R15, R24, R24				; R15, R24, R24				    ; 007597
B37A0000     0858		STL	R27, (R26)				; R27, (R26)				    ; 007596
41F70417     085C		ADDQ	R15, R23, R23				; R15, R23, R23				    ; 007598
47E03419     0860		BIS	R31, 1, R25				; R31, 1, R25				    ; 007597
B3380000     0864		STL	R25, (R24)				; R25, (R24)
B3F70000     0868		STL	R31, (R23)				; R31, (R23)				    ; 007598
43C8153E     086C		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 007601
275F0001     0870		LDAH	R26, 1(R31)				; R26, 1(R31)
B7FE0038     0874		STQ	R31, 56(SP)				; R31, 56(SP)
235A87B4     0878		LDA	R26, -30796(R26)			; R26, -30796(R26)
B7FE0030     087C		STQ	R31, 48(SP)				; R31, 48(SP)
47E39404     0880		BIS	R31, 28, R4				; R31, 28, R4				    ; 007599
B49E0008     0884		STQ	R4, 8(SP)				; R4, 8(SP)				    ; 007601
41FA041A     0888		ADDQ	R15, R26, R26				; R15, R26, R26
47FA041B     088C		MOV	R26, R27				; R26, R27
B77E0000     0890		STQ	R27, (SP)				; R27, (SP)
47FF0414     0894		CLR	R20					; R20
A22F0518     0898		LDL	R17, 1304(R15)				; R17, 1304(R15)
47FF0415     089C		CLR	R21					; R21
A2DE0030     08A0		LDL	R22, 48(SP)				; R22, 48(SP)
226F0784     08A4		LDA	R19, 1924(R15)				; R19, 1924(R15)
A39E0034     08A8		LDL	R28, 52(SP)				; R28, 52(SP)
47F3D412     08AC		BIS	R31, 158, R18				; R31, 158, R18
A74D0040     08B0		LDQ	R26, 64(R13)				; R26, 64(R13)
4A2012D1     08B4		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0010     08B8		STQ	R22, 16(SP)				; R22, 16(SP)
47E03410     08BC		BIS	R31, 1, R16				; R31, 1, R16
B79E0018     08C0		STQ	R28, 24(SP)				; R28, 24(SP)
47E19419     08C4		BIS	R31, 12, R25				; R31, 12, R25
A2DE0038     08C8		LDL	R22, 56(SP)				; R22, 56(SP)
A39E003C     08CC		LDL	R28, 60(SP)				; R28, 60(SP)
A76D0048     08D0		LDQ	R27, 72(R13)				; R27, 72(R13)
B6DE0020     08D4		STQ	R22, 32(SP)				; R22, 32(SP)
B79E0028     08D8		STQ	R28, 40(SP)				; R28, 40(SP)
6B5A4000     08DC		JSR	R26, R26				; R26, R26
43C8141E     08E0		ADDQ	SP, 64, SP				; SP, 64, SP
E01FFDF8     08E4		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007602
	     08E8	87_30011$:
A76D0028     08E8		LDQ	R27, 40(R13)				; R27, 40(R13)				    ; 007604
B3FB0794     08EC		STL	R31, 1940(R27)				; R31, 1940(R27)
C3FFFF07     08F0		BR	EVTLOOP					; EVTLOOP				    ; 007605
47FF041F     08F4		NOP						; 
	     08F8	86_30009$:											    ; 007568
A74D0028     08F8		LDQ	R26, 40(R13)				; R26, 40(R13)				    ; 007570
43C0953E     08FC		SUBQ	SP, 4, SP				; SP, 4, SP				    ; 007569
A76D00B8     0900		LDQ	R27, 184(R13)				; R27, 184(R13)				    ; 007571
B0DE0000     0904		STL	R6, (SP)				; R6, (SP)				    ; 007569

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  41
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

A0DA00B4     0908		LDL	R6, 180(R26)				; R6, 180(R26)				    ; 007570
43C1953E     090C		SUBQ	SP, 12, SP				; SP, 12, SP				    ; 007571
A74D00B0     0910		LDQ	R26, 176(R13)				; R26, 176(R13)
6B5A4000     0914		JSR	R26, R26				; R26, R26
A5CD0028     0918		LDQ	R14, 40(R13)				; R14, 40(R13)				    ; 007573
43E70008     091C		SEXTL	R7, R8					; R7, R8				    ; 007574
A0DE000C     0920		LDL	R6, 12(SP)				; R6, 12(SP)				    ; 007572
43C2141E     0924		ADDQ	SP, 16, SP				; SP, 16, SP
A74DFFC0     0928		LDQ	R26, -64(R13)				; R26, -64(R13)				    ; 007575
223F0200     092C		LDA	R17, 512(R31)				; R17, 512(R31)
41D81409     0930		ADDQ	R14, 192, R9				; R14, 192, R9				    ; 007573
47E90412     0934		MOV	R9, R18					; R9, R18				    ; 007575
47E80410     0938		MOV	R8, R16					; R8, R16
20320200     093C		LDA	R1, 512(R18)				; R1, 512(R18)
6B5A4000     0940		JSR	R26, R26				; R26, R26
231F0200     0944		LDA	R24, 512(R31)				; R24, 512(R31)				    ; 007576
40C03126     0948		SUBL	R6, 1, R6				; R6, 1, R6				    ; 007578
47FF0400     094C		CLR	R0					; R0					    ; 007575
A34E00B4     0950		LDL	R26, 180(R14)				; R26, 180(R14)				    ; 007577
47FF0402     0954		CLR	R2					; R2					    ; 007575
47F00403     0958		MOV	R16, R3					; R16, R3
47FF0404     095C		CLR	R4					; R4
47FF0405     0960		CLR	R5					; R5
40F80007     0964		ADDL	R7, R24, R7				; R7, R24, R7				    ; 007576
4340301A     0968		ADDL	R26, 1, R26				; R26, 1, R26				    ; 007577
B34E00B4     096C		STL	R26, 180(R14)				; R26, 180(R14)
FCDFFF61     0970		BGT	R6, 86_16$				; R6, 86_16$				    ; 007579
26DF0001     0974		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007581
22D687BC     0978		LDA	R22, -30788(R22)			; R22, -30788(R22)
A76D0078     097C		LDQ	R27, 120(R13)				; R27, 120(R13)				    ; 007582
275F0001     0980		LDAH	R26, 1(R31)				; R26, 1(R31)
A78D0028     0984		LDQ	R28, 40(R13)				; R28, 40(R13)				    ; 007580
235A87B8     0988		LDA	R26, -30792(R26)			; R26, -30792(R26)			    ; 007582
47E05419     098C		BIS	R31, 2, R25				; R31, 2, R25				    ; 007583
A31C07A0     0990		LDL	R24, 1952(R28)				; R24, 1952(R28)			    ; 007581
43960416     0994		ADDQ	R28, R22, R22				; R28, R22, R22
439A041A     0998		ADDQ	R28, R26, R26				; R28, R26, R26				    ; 007582
47E39404     099C		BIS	R31, 28, R4				; R31, 28, R4				    ; 007584
43029017     09A0		ADDL	R24, 20, R23				; R24, 20, R23				    ; 007581
B2F60000     09A4		STL	R23, (R22)				; R23, (R22)
271F0001     09A8		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007583
B37A0000     09AC		STL	R27, (R26)				; R27, (R26)				    ; 007582
26DF0001     09B0		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007585
231887B4     09B4		LDA	R24, -30796(R24)			; R24, -30796(R24)			    ; 007583
22D687C0     09B8		LDA	R22, -30784(R22)			; R22, -30784(R22)			    ; 007585
275F0001     09BC		LDAH	R26, 1(R31)				; R26, 1(R31)				    ; 007586
43980418     09C0		ADDQ	R28, R24, R24				; R28, R24, R24				    ; 007583
43960416     09C4		ADDQ	R28, R22, R22				; R28, R22, R22				    ; 007585
235A87C4     09C8		LDA	R26, -30780(R26)			; R26, -30780(R26)			    ; 007586
B3380000     09CC		STL	R25, (R24)				; R25, (R24)				    ; 007583
47E03417     09D0		BIS	R31, 1, R23				; R31, 1, R23				    ; 007585
B2F60000     09D4		STL	R23, (R22)				; R23, (R22)
439A041A     09D8		ADDQ	R28, R26, R26				; R28, R26, R26				    ; 007586
A37C07A0     09DC		LDL	R27, 1952(R28)				; R27, 1952(R28)
26DF0001     09E0		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007588
22D687B4     09E4		LDA	R22, -30796(R22)			; R22, -30796(R22)
B37A0000     09E8		STL	R27, (R26)				; R27, (R26)				    ; 007586

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  42
V01-004A                        FDHOSTD                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

43C8153E     09EC		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 007588
43960416     09F0		ADDQ	R28, R22, R22				; R28, R22, R22
A76D0048     09F4		LDQ	R27, 72(R13)				; R27, 72(R13)
B7FE0038     09F8		STQ	R31, 56(SP)				; R31, 56(SP)
47F60417     09FC		MOV	R22, R23				; R22, R23
B7FE0030     0A00		STQ	R31, 48(SP)				; R31, 48(SP)
205C07AC     0A04		LDA	R2, 1964(R28)				; R2, 1964(R28)				    ; 007580
B49E0008     0A08		STQ	R4, 8(SP)				; R4, 8(SP)				    ; 007588
47FF0414     0A0C		CLR	R20					; R20
B6FE0000     0A10		STQ	R23, (SP)				; R23, (SP)
47FF0415     0A14		CLR	R21					; R21
A35E0030     0A18		LDL	R26, 48(SP)				; R26, 48(SP)
227C0784     0A1C		LDA	R19, 1924(R28)				; R19, 1924(R28)
A23C0518     0A20		LDL	R17, 1304(R28)				; R17, 1304(R28)
47F3D412     0A24		BIS	R31, 158, R18				; R31, 158, R18
A2DE0034     0A28		LDL	R22, 52(SP)				; R22, 52(SP)
47E03410     0A2C		BIS	R31, 1, R16				; R31, 1, R16
B75E0010     0A30		STQ	R26, 16(SP)				; R26, 16(SP)
47E19419     0A34		BIS	R31, 12, R25				; R31, 12, R25
4A2012D1     0A38		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0018     0A3C		STQ	R22, 24(SP)				; R22, 24(SP)
A35E0038     0A40		LDL	R26, 56(SP)				; R26, 56(SP)
A2DE003C     0A44		LDL	R22, 60(SP)				; R22, 60(SP)
B75E0020     0A48		STQ	R26, 32(SP)				; R26, 32(SP)
A74D0040     0A4C		LDQ	R26, 64(R13)				; R26, 64(R13)
B6DE0028     0A50		STQ	R22, 40(SP)				; R22, 40(SP)
6B5A4000     0A54		JSR	R26, R26				; R26, R26
43C8141E     0A58		ADDQ	SP, 64, SP				; SP, 64, SP
E01FFD9A     0A5C		BLBC	R0, FDHOSTD_EXIT			; R0, FDHOSTD_EXIT			    ; 007589
	     0A60	86_30010$:
C3FFFF65     0A60		BR	COMMON					; COMMON				    ; 007591
47FF041F     0A64		NOP						; 
47FF041F     0A68		NOP						; 
47FF041F     0A6C		NOP						; 

Routine Size: 2672 bytes,    Routine Base: FDHOSTD_CODE + 0000

	     0A70	BASHUCB::											    ; 007622
43D0153E     0A70		SUBQ	SP, 128, SP				; SP, 128, SP
B77E0000     0A74		STQ	R27, (SP)				; R27, (SP)
B75E0030     0A78		STQ	R26, 48(SP)				; R26, 48(SP)
B45E0038     0A7C		STQ	R2, 56(SP)				; R2, 56(SP)
B47E0040     0A80		STQ	R3, 64(SP)				; R3, 64(SP)
B49E0048     0A84		STQ	R4, 72(SP)				; R4, 72(SP)
B4BE0050     0A88		STQ	R5, 80(SP)				; R5, 80(SP)
B4DE0058     0A8C		STQ	R6, 88(SP)				; R6, 88(SP)
B4FE0060     0A90		STQ	R7, 96(SP)				; R7, 96(SP)
B51E0068     0A94		STQ	R8, 104(SP)				; R8, 104(SP)
B5BE0070     0A98		STQ	R13, 112(SP)				; R13, 112(SP)
47FB040D     0A9C		MOV	R27, R13				; R27, R13
B7BE0078     0AA0		STQ	FP, 120(SP)				; FP, 120(SP)
47FE041D     0AA4		MOV	SP, FP					; SP, FP
B7FE0008     0AA8		STQ	R31, 8(SP)				; R31, 8(SP)
	     0AAC	$L3:
A78D0038     0AAC		LDQ	R28, 56(R13)				; R28, 56(R13)				    ; 007632
A74DFF40     0AB0		LDQ	R26, -192(R13)				; R26, -192(R13)			    ; 007636
A09C0000     0AB4		LDL	R4, (R28)				; R4, (R28)				    ; 007632

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  43
V01-004A                        BASHUCB                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

A36400D4     0AB8		LDL	R27, 212(R4)				; R27, 212(R4)				    ; 007636
B37A077C     0ABC		STL	R27, 1916(R26)				; R27, 1916(R26)
A74D0048     0AC0		LDQ	R26, 72(R13)				; R26, 72(R13)				    ; 007637
B61D0018     0AC4		STQ	R16, 24(FP)				; R16, 24(FP)
A76D0050     0AC8		LDQ	R27, 80(R13)				; R27, 80(R13)
B63D0020     0ACC		STQ	R17, 32(FP)				; R17, 32(FP)
6B5A4000     0AD0		JSR	R26, R26				; R26, R26
A72DFF40     0AD4		LDQ	R25, -192(R13)				; R25, -192(R13)			    ; 007638
A70DFF40     0AD8		LDQ	R24, -192(R13)				; R24, -192(R13)			    ; 007639
A61D0018     0ADC		LDQ	R16, 24(FP)				; R16, 24(FP)				    ; 007637
A63D0020     0AE0		LDQ	R17, 32(FP)				; R17, 32(FP)
B3F90778     0AE4		STL	R31, 1912(R25)				; R31, 1912(R25)			    ; 007638
A2F80780     0AE8		LDL	R23, 1920(R24)				; R23, 1920(R24)			    ; 007639
F6E00009     0AEC		BNE	R23, 89_126$				; R23, 89_126$				    ; 007640
43F10001     0AF0		SEXTL	R17, R1					; R17, R1				    ; 007641
A74D0028     0AF4		LDQ	R26, 40(R13)				; R26, 40(R13)				    ; 007642
A76D0030     0AF8		LDQ	R27, 48(R13)				; R27, 48(R13)
B61D0018     0AFC		STQ	R16, 24(FP)				; R16, 24(FP)
6B5A4000     0B00		JSR	R26, R26				; R26, R26
A61D0018     0B04		LDQ	R16, 24(FP)				; R16, 24(FP)
E0000019     0B08		BLBC	R0, BSH_XIT				; R0, BSH_XIT				    ; 007643
A6CDFF40     0B0C		LDQ	R22, -192(R13)				; R22, -192(R13)			    ; 007644
B0360520     0B10		STL	R1, 1312(R22)				; R1, 1312(R22)
	     0B14	89_126$:											    ; 007645
A74D0028     0B14		LDQ	R26, 40(R13)				; R26, 40(R13)				    ; 007646
43F00001     0B18		SEXTL	R16, R1					; R16, R1				    ; 007645
A76D0030     0B1C		LDQ	R27, 48(R13)				; R27, 48(R13)				    ; 007646
6B5A4000     0B20		JSR	R26, R26				; R26, R26
E0000012     0B24		BLBC	R0, BSH_XIT				; R0, BSH_XIT				    ; 007647
	     0B28	89_60$:												    ; 007649
A68DFF40     0B28		LDQ	R20, -192(R13)				; R20, -192(R13)			    ; 007658
A3940780     0B2C		LDL	R28, 1920(R20)				; R28, 1920(R20)
E7800025     0B30		BEQ	R28, 89_127$				; R28, 89_127$				    ; 007659
47E0341B     0B34		BIS	R31, 1, R27				; R31, 1, R27				    ; 007660
B361007C     0B38		STL	R27, 124(R1)				; R27, 124(R1)
235F2000     0B3C		LDA	R26, 8192(R31)				; R26, 8192(R31)			    ; 007665
B3410100     0B40		STL	R26, 256(R1)				; R26, 256(R1)
A321013C     0B44		LDL	R25, 316(R1)				; R25, 316(R1)				    ; 007666
F7200041     0B48		BNE	R25, $L18				; R25, $L18				    ; 007667
	     0B4C	89_159$:											    ; 007672
A2E10088     0B4C		LDL	R23, 136(R1)				; R23, 136(R1)
237F0800     0B50		LDA	R27, 2048(R31)				; R27, 2048(R31)			    ; 007673
46E21117     0B54		BIC	R23, 16, R23				; R23, 16, R23				    ; 007672
B2E10088     0B58		STL	R23, 136(R1)				; R23, 136(R1)
43F7001C     0B5C		SEXTL	R23, R28				; R23, R28				    ; 007673
479B011C     0B60		BIC	R28, R27, R28				; R28, R27, R28
B3810088     0B64		STL	R28, 136(R1)				; R28, 136(R1)
	     0B68	89_128$:											    ; 007694
47E03400     0B68		BIS	R31, 1, R0				; R31, 1, R0
2FFE0000     0B6C		LNOP						; 
	     0B70	BSH_XIT:											    ; 007695
A74D0058     0B70		LDQ	R26, 88(R13)				; R26, 88(R13)				    ; 007697
43C2153E     0B74		SUBQ	SP, 16, SP				; SP, 16, SP
A76D0060     0B78		LDQ	R27, 96(R13)				; R27, 96(R13)
B01E000C     0B7C		STL	R0, 12(SP)				; R0, 12(SP)				    ; 007696
6B5A4000     0B80		JSR	R26, R26				; R26, R26				    ; 007697
A01E000C     0B84		LDL	R0, 12(SP)				; R0, 12(SP)				    ; 007698

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  44
V01-004A                        BASHUCB                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

43C2141E     0B88		ADDQ	SP, 16, SP				; SP, 16, SP
	     0B8C	$L4:												    ; 007699
47FD041E     0B8C		MOV	FP, SP					; FP, SP
A79E0030     0B90		LDQ	R28, 48(SP)				; R28, 48(SP)
A45E0038     0B94		LDQ	R2, 56(SP)				; R2, 56(SP)
A47E0040     0B98		LDQ	R3, 64(SP)				; R3, 64(SP)
A49E0048     0B9C		LDQ	R4, 72(SP)				; R4, 72(SP)
A4BE0050     0BA0		LDQ	R5, 80(SP)				; R5, 80(SP)
A4DE0058     0BA4		LDQ	R6, 88(SP)				; R6, 88(SP)
A4FE0060     0BA8		LDQ	R7, 96(SP)				; R7, 96(SP)
A51E0068     0BAC		LDQ	R8, 104(SP)				; R8, 104(SP)
A5BE0070     0BB0		LDQ	R13, 112(SP)				; R13, 112(SP)
A7BE0078     0BB4		LDQ	FP, 120(SP)				; FP, 120(SP)
43D0141E     0BB8		ADDQ	SP, 128, SP				; SP, 128, SP
6BFC8001     0BBC		RET	R28					; R28
	     0BC0	89_59$:												    ; 007648
C3FFFFEB     0BC0		BR	BSH_XIT					; BSH_XIT
47FF041F     0BC4		NOP						; 
	     0BC8	89_127$:											    ; 007675
A341007C     0BC8		LDL	R26, 124(R1)				; R26, 124(R1)				    ; 007677
E740002C     0BCC		BEQ	R26, 89_142$				; R26, 89_142$				    ; 007678
	     0BD0	89_140$:											    ; 007681
A321007C     0BD0		LDL	R25, 124(R1)				; R25, 124(R1)				    ; 007682
231FFF00     0BD4		LDA	R24, -256(R31)				; R24, -256(R31)
47E03417     0BD8		BIS	R31, 1, R23				; R31, 1, R23				    ; 007683
43380532     0BDC		SUBQ	R25, R24, R18				; R25, R24, R18				    ; 007682
433803B3     0BE0		CMPULT	R25, R24, R19				; R25, R24, R19
465F04D7     0BE4		CMOVNE	R18, R31, R23				; R18, R31, R23				    ; 007683
46F30417     0BE8		BIS	R23, R19, R23				; R23, R19, R23
E2E00024     0BEC		BLBC	R23, 89_142$				; R23, 89_142$
	     0BF0	89_141$:											    ; 007684
279F0001     0BF0		LDAH	R28, 1(R31)				; R28, 1(R31)				    ; 007685
239C87E4     0BF4		LDA	R28, -30748(R28)			; R28, -30748(R28)
277F0001     0BF8		LDAH	R27, 1(R31)				; R27, 1(R31)				    ; 007686
429C041C     0BFC		ADDQ	R20, R28, R28				; R20, R28, R28				    ; 007685
237B87E4     0C00		LDA	R27, -30748(R27)			; R27, -30748(R27)			    ; 007686
A2DC0000     0C04		LDL	R22, (R28)				; R22, (R28)				    ; 007685
429B041B     0C08		ADDQ	R20, R27, R27				; R20, R27, R27				    ; 007686
235F0800     0C0C		LDA	R26, 2048(R31)				; R26, 2048(R31)			    ; 007692
B2C100FC     0C10		STL	R22, 252(R1)				; R22, 252(R1)				    ; 007685
A01B0000     0C14		LDL	R0, (R27)				; R0, (R27)				    ; 007686
A2E1005C     0C18		LDL	R23, 92(R1)				; R23, 92(R1)				    ; 007688
43E00019     0C1C		SEXTL	R0, R25					; R0, R25				    ; 007687
4B20D780     0C20		SRA	R25, 6, R0				; R25, 6, R0
4AE05257     0C24		MSKWL	R23, 2, R23				; R23, 2, R23				    ; 007688
48005376     0C28		INSWL	R0, 2, R22				; R0, 2, R22
46F60417     0C2C		BIS	R23, R22, R23				; R23, R22, R23
B2E1005C     0C30		STL	R23, 92(R1)				; R23, 92(R1)
A3610088     0C34		LDL	R27, 136(R1)				; R27, 136(R1)				    ; 007691
4762141B     0C38		BIS	R27, 16, R27				; R27, 16, R27
B3610088     0C3C		STL	R27, 136(R1)				; R27, 136(R1)
A3010088     0C40		LDL	R24, 136(R1)				; R24, 136(R1)				    ; 007692
471A0418     0C44		BIS	R24, R26, R24				; R24, R26, R24
B3010088     0C48		STL	R24, 136(R1)				; R24, 136(R1)
C3FFFFC6     0C4C		BR	89_128$					; 89_128$				    ; 007694
	     0C50	$L18:												    ; 007668
A2D40794     0C50		LDL	R22, 1940(R20)				; R22, 1940(R20)

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  45
V01-004A                        BASHUCB                          3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

235F0800     0C54		LDA	R26, 2048(R31)				; R26, 2048(R31)			    ; 007670
42C03016     0C58		ADDL	R22, 1, R22				; R22, 1, R22				    ; 007668
B2D40794     0C5C		STL	R22, 1940(R20)				; R22, 1940(R20)
A3610088     0C60		LDL	R27, 136(R1)				; R27, 136(R1)				    ; 007669
4762141B     0C64		BIS	R27, 16, R27				; R27, 16, R27
B3610088     0C68		STL	R27, 136(R1)				; R27, 136(R1)
A3010088     0C6C		LDL	R24, 136(R1)				; R24, 136(R1)				    ; 007670
471A0418     0C70		BIS	R24, R26, R24				; R24, R26, R24
B3010088     0C74		STL	R24, 136(R1)				; R24, 136(R1)
C3FFFFBB     0C78		BR	89_128$					; 89_128$				    ; 007671
47FF041F     0C7C		NOP						; 
	     0C80	89_142$:											    ; 007679
47E03417     0C80		BIS	R31, 1, R23				; R31, 1, R23
B2E1007C     0C84		STL	R23, 124(R1)				; R23, 124(R1)
C3FFFFD9     0C88		BR	89_141$					; 89_141$				    ; 007680
47FF041F     0C8C		NOP						; 

Routine Size: 544 bytes,    Routine Base: FDHOSTD_CODE + 0A70

	     0C90	XITHDL::											    ; 007704
43CA153E     0C90		SUBQ	SP, 80, SP				; SP, 80, SP
B77E0000     0C94		STQ	R27, (SP)				; R27, (SP)
B75E0008     0C98		STQ	R26, 8(SP)				; R26, 8(SP)
B45E0010     0C9C		STQ	R2, 16(SP)				; R2, 16(SP)
B47E0018     0CA0		STQ	R3, 24(SP)				; R3, 24(SP)
B49E0020     0CA4		STQ	R4, 32(SP)				; R4, 32(SP)
B4BE0028     0CA8		STQ	R5, 40(SP)				; R5, 40(SP)
B4DE0030     0CAC		STQ	R6, 48(SP)				; R6, 48(SP)
B5BE0038     0CB0		STQ	R13, 56(SP)				; R13, 56(SP)
47FB040D     0CB4		MOV	R27, R13				; R27, R13
B5FE0040     0CB8		STQ	R15, 64(SP)				; R15, 64(SP)
B7BE0048     0CBC		STQ	FP, 72(SP)				; FP, 72(SP)
A5EDFED8     0CC0		LDQ	R15, -296(R13)				; R15, -296(R13)			    ; 007705
47FE041D     0CC4		MOV	SP, FP					; SP, FP				    ; 007704
	     0CC8	$L5:
A38F0794     0CC8		LDL	R28, 1940(R15)				; R28, 1940(R15)			    ; 007705
E780003B     0CCC		BEQ	R28, 92_1$				; R28, 92_1$				    ; 007708
275F0001     0CD0		LDAH	R26, 1(R31)				; R26, 1(R31)				    ; 007709
235A87B4     0CD4		LDA	R26, -30796(R26)			; R26, -30796(R26)
41FA041A     0CD8		ADDQ	R15, R26, R26				; R15, R26, R26
271F0001     0CDC		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007710
47E0341B     0CE0		BIS	R31, 1, R27				; R31, 1, R27				    ; 007709
B37A0000     0CE4		STL	R27, (R26)				; R27, (R26)
231887B8     0CE8		LDA	R24, -30792(R24)			; R24, -30792(R24)			    ; 007710
A32F0798     0CEC		LDL	R25, 1944(R15)				; R25, 1944(R15)
41F80418     0CF0		ADDQ	R15, R24, R24				; R15, R24, R24
26DF0001     0CF4		LDAH	R22, 1(R31)				; R22, 1(R31)				    ; 007711
B3380000     0CF8		STL	R25, (R24)				; R25, (R24)				    ; 007710
22D687BC     0CFC		LDA	R22, -30788(R22)			; R22, -30788(R22)			    ; 007711
277F0001     0D00		LDAH	R27, 1(R31)				; R27, 1(R31)				    ; 007712
A2EF079C     0D04		LDL	R23, 1948(R15)				; R23, 1948(R15)			    ; 007711
273F0001     0D08		LDAH	R25, 1(R31)				; R25, 1(R31)				    ; 007713
41F60416     0D0C		ADDQ	R15, R22, R22				; R15, R22, R22				    ; 007711
237B87C0     0D10		LDA	R27, -30784(R27)			; R27, -30784(R27)			    ; 007712
271F0001     0D14		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007714
233987C4     0D18		LDA	R25, -30780(R25)			; R25, -30780(R25)			    ; 007713
B2F60000     0D1C		STL	R23, (R22)				; R23, (R22)				    ; 007711

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  46
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

41FB041B     0D20		ADDQ	R15, R27, R27				; R15, R27, R27				    ; 007712
A38F07A0     0D24		LDL	R28, 1952(R15)				; R28, 1952(R15)
231887C8     0D28		LDA	R24, -30776(R24)			; R24, -30776(R24)			    ; 007714
41F90419     0D2C		ADDQ	R15, R25, R25				; R15, R25, R25				    ; 007713
B39B0000     0D30		STL	R28, (R27)				; R28, (R27)				    ; 007712
41F80418     0D34		ADDQ	R15, R24, R24				; R15, R24, R24				    ; 007714
47E1941A     0D38		BIS	R31, 12, R26				; R31, 12, R26				    ; 007713
B3590000     0D3C		STL	R26, (R25)				; R26, (R25)
B3F80000     0D40		STL	R31, (R24)				; R31, (R24)				    ; 007714
43C8153E     0D44		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 007717
277F0001     0D48		LDAH	R27, 1(R31)				; R27, 1(R31)
A74DFEF0     0D4C		LDQ	R26, -272(R13)				; R26, -272(R13)
B7FE0038     0D50		STQ	R31, 56(SP)				; R31, 56(SP)
237B87B4     0D54		LDA	R27, -30796(R27)			; R27, -30796(R27)
B7FE0030     0D58		STQ	R31, 48(SP)				; R31, 48(SP)
47E39404     0D5C		BIS	R31, 28, R4				; R31, 28, R4				    ; 007715
B49E0008     0D60		STQ	R4, 8(SP)				; R4, 8(SP)				    ; 007717
41FB041B     0D64		ADDQ	R15, R27, R27				; R15, R27, R27
47FB041C     0D68		MOV	R27, R28				; R27, R28
B79E0000     0D6C		STQ	R28, (SP)				; R28, (SP)
A22F0518     0D70		LDL	R17, 1304(R15)				; R17, 1304(R15)
47FF0414     0D74		CLR	R20					; R20
A2DE0030     0D78		LDL	R22, 48(SP)				; R22, 48(SP)
47FF0415     0D7C		CLR	R21					; R21
A39E0034     0D80		LDL	R28, 52(SP)				; R28, 52(SP)
226F0784     0D84		LDA	R19, 1924(R15)				; R19, 1924(R15)
A76DFEF8     0D88		LDQ	R27, -264(R13)				; R27, -264(R13)
47F3D412     0D8C		BIS	R31, 158, R18				; R31, 158, R18
B6DE0010     0D90		STQ	R22, 16(SP)				; R22, 16(SP)
4A2012D1     0D94		EXTWL	R17, 0, R17				; R17, 0, R17
B79E0018     0D98		STQ	R28, 24(SP)				; R28, 24(SP)
47E03410     0D9C		BIS	R31, 1, R16				; R31, 1, R16
A2DE0038     0DA0		LDL	R22, 56(SP)				; R22, 56(SP)
47E19419     0DA4		BIS	R31, 12, R25				; R31, 12, R25
A39E003C     0DA8		LDL	R28, 60(SP)				; R28, 60(SP)
B6DE0020     0DAC		STQ	R22, 32(SP)				; R22, 32(SP)
B79E0028     0DB0		STQ	R28, 40(SP)				; R28, 40(SP)
6B5A4000     0DB4		JSR	R26, R26				; R26, R26
43C8141E     0DB8		ADDQ	SP, 64, SP				; SP, 64, SP
	     0DBC	92_1$:												    ; 007718
277F0001     0DBC		LDAH	R27, 1(R31)				; R27, 1(R31)				    ; 007719
A74D0020     0DC0		LDQ	R26, 32(R13)				; R26, 32(R13)				    ; 007721
237B87B4     0DC4		LDA	R27, -30796(R27)			; R27, -30796(R27)			    ; 007719
41FB041B     0DC8		ADDQ	R15, R27, R27				; R15, R27, R27
47E03419     0DCC		BIS	R31, 1, R25				; R31, 1, R25				    ; 007721
B3FB0000     0DD0		STL	R31, (R27)				; R31, (R27)				    ; 007719
A76D0028     0DD4		LDQ	R27, 40(R13)				; R27, 40(R13)				    ; 007721
41E09410     0DD8		ADDQ	R15, 4, R16				; R15, 4, R16				    ; 007720
6B5A4000     0DDC		JSR	R26, R26				; R26, R26				    ; 007721
271F0001     0DE0		LDAH	R24, 1(R31)				; R24, 1(R31)				    ; 007722
A78DFED8     0DE4		LDQ	R28, -296(R13)				; R28, -296(R13)
231887B8     0DE8		LDA	R24, -30792(R24)			; R24, -30792(R24)
26FF0001     0DEC		LDAH	R23, 1(R31)				; R23, 1(R31)				    ; 007723
22F787BC     0DF0		LDA	R23, -30788(R23)			; R23, -30788(R23)
43980418     0DF4		ADDQ	R28, R24, R24				; R28, R24, R24				    ; 007722
47F80419     0DF8		MOV	R24, R25				; R24, R25
43970417     0DFC		ADDQ	R28, R23, R23				; R28, R23, R23				    ; 007723

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  47
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

B3F90000     0E00		STL	R31, (R25)				; R31, (R25)				    ; 007722
B3F70000     0E04		STL	R31, (R23)				; R31, (R23)				    ; 007723
43C8153E     0E08		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 007726
273F0001     0E0C		LDAH	R25, 1(R31)				; R25, 1(R31)
B7FE0038     0E10		STQ	R31, 56(SP)				; R31, 56(SP)
233987B4     0E14		LDA	R25, -30796(R25)			; R25, -30796(R25)
B7FE0030     0E18		STQ	R31, 48(SP)				; R31, 48(SP)
47E39404     0E1C		BIS	R31, 28, R4				; R31, 28, R4				    ; 007724
B49E0008     0E20		STQ	R4, 8(SP)				; R4, 8(SP)				    ; 007726
43990419     0E24		ADDQ	R28, R25, R25				; R28, R25, R25
47F9041A     0E28		MOV	R25, R26				; R25, R26
B75E0000     0E2C		STQ	R26, (SP)				; R26, (SP)
47FF0414     0E30		CLR	R20					; R20
A23C0518     0E34		LDL	R17, 1304(R28)				; R17, 1304(R28)
47FF0415     0E38		CLR	R21					; R21
A2DE0030     0E3C		LDL	R22, 48(SP)				; R22, 48(SP)
227C0784     0E40		LDA	R19, 1924(R28)				; R19, 1924(R28)
A37E0034     0E44		LDL	R27, 52(SP)				; R27, 52(SP)
47F3D412     0E48		BIS	R31, 158, R18				; R31, 158, R18
A74DFEF0     0E4C		LDQ	R26, -272(R13)				; R26, -272(R13)
4A2012D1     0E50		EXTWL	R17, 0, R17				; R17, 0, R17
B6DE0010     0E54		STQ	R22, 16(SP)				; R22, 16(SP)
47E03410     0E58		BIS	R31, 1, R16				; R31, 1, R16
B77E0018     0E5C		STQ	R27, 24(SP)				; R27, 24(SP)
47E19419     0E60		BIS	R31, 12, R25				; R31, 12, R25
A37E003C     0E64		LDL	R27, 60(SP)				; R27, 60(SP)
A2DE0038     0E68		LDL	R22, 56(SP)				; R22, 56(SP)
B6DE0020     0E6C		STQ	R22, 32(SP)				; R22, 32(SP)
B77E0028     0E70		STQ	R27, 40(SP)				; R27, 40(SP)
A76DFEF8     0E74		LDQ	R27, -264(R13)				; R27, -264(R13)
6B5A4000     0E78		JSR	R26, R26				; R26, R26
43C8141E     0E7C		ADDQ	SP, 64, SP				; SP, 64, SP
	     0E80	$L6:												    ; 007728
47FD041E     0E80		MOV	FP, SP					; FP, SP
A79E0008     0E84		LDQ	R28, 8(SP)				; R28, 8(SP)
A45E0010     0E88		LDQ	R2, 16(SP)				; R2, 16(SP)
A47E0018     0E8C		LDQ	R3, 24(SP)				; R3, 24(SP)
A49E0020     0E90		LDQ	R4, 32(SP)				; R4, 32(SP)
A4BE0028     0E94		LDQ	R5, 40(SP)				; R5, 40(SP)
A4DE0030     0E98		LDQ	R6, 48(SP)				; R6, 48(SP)
A5BE0038     0E9C		LDQ	R13, 56(SP)				; R13, 56(SP)
A5FE0040     0EA0		LDQ	R15, 64(SP)				; R15, 64(SP)
A7BE0048     0EA4		LDQ	FP, 72(SP)				; FP, 72(SP)
43CA141E     0EA8		ADDQ	SP, 80, SP				; SP, 80, SP
6BFC8001     0EAC		RET	R28					; R28

Routine Size: 544 bytes,    Routine Base: FDHOSTD_CODE + 0C90


				.PSECT	$LINKAGE, OCTA, NOPIC, CON, REL, LCL,-
					NOSHR, NOEXE, RD, NOWRT
	     0000		.LINKAGE  SYS$DCLEXH
					; Call signature for Linkage Pair:
					;   10000022
					;   00000001
	     0010		.LINKAGE  SYS$CREMBX
					; Call signature for Linkage Pair:

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  48
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

					;   12222222
					;   00000207
00000000     0020		.ADDRESS  BASHUCB
	     0030		.LINKAGE  SYS$READ
					; Call signature for Linkage Pair:
					;   10000022
					;   00000001
000087C8     0040		.LONG	34760
	     0050		.LINKAGE  SYS$WRITE
					; Call signature for Linkage Pair:
					;   10000022
					;   00000001
	     0060		.LINKAGE  SYS$OPEN
					; Call signature for Linkage Pair:
					;   10000022
					;   00000001
000087C4     0070		.LONG	34756
	     0080		.LINKAGE  OTS$MOVE
	     0090		.LINKAGE  SYS$GETDVI
					; Call signature for Linkage Pair:
					;   12222222
					;   00000A08
	     00A0		.LINKAGE  CLI$PRESENT
					; Call signature for Linkage Pair:
					;   10000022
					;   00000001
000087B8     00B0		.LONG	34744
000087C0     00B4		.LONG	34752
000087BC     00B8		.LONG	34748
000087B4     00BC		.LONG	34740

	     00C0		; Heavyweight Frame invocation descriptor
				Entry point:	       FDHOSTD
				Registers saved:       R2-R11, R13-R15, FP
				Fixed Stack Size:      144
				Call Signature:        0020

	     00E0		.CALL_SIGNATURE 
10000002     00E0			(Summary: I32, Function Value: I32)
00000000				(Argument Count:  0)
00000000     00E8		.ADDRESS  $PSECT_BASE13
0000FFF0     00F0		.LONG	65520
	     0100		.LINKAGE  SYS$QIOW
					; Call signature for Linkage Pair:
					;   12222222
					;   000AAA0C
000087E4     0110		.LONG	34788
00000000     0118		.ADDRESS  CLI$_PRESENT
	     0120		.LINKAGE  CLI$GET_VALUE
					; Call signature for Linkage Pair:
					;   10002222
					;   00000003
00000000     0130		.ADDRESS  $PSECT_BASE14
00000000     0138		.ADDRESS  BUFHDR
	     0140		.LINKAGE  KEYSET
	     0150		.LINKAGE  SYS$CONNECT
					; Call signature for Linkage Pair:

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  49
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

					;   10000022
					;   00000001
	     0160		.LINKAGE  CRYPT
	     0170		.LINKAGE  DECRYPT
	     0180		.LINKAGE  SYS$CMKRNL
					; Call signature for Linkage Pair:
					;   10000222
					;   00000002
	     0190		.LINKAGE  SYS$ASSIGN
					; Call signature for Linkage Pair:
					;   10022222
					;   00000004
000087E8     01A0		.LONG	34792

	     01A8		; Heavyweight Frame invocation descriptor
				Entry point:	       BASHUCB
				Registers saved:       R2-R8, R13, FP
				Fixed Stack Size:      128
				Call Signature:        0020

	     01C8		.CALL_SIGNATURE 
10000222     01C8			(Summary: I32, Function Value: I32)
00000002				(Argument Count:  2)
	     01D0		.LINKAGE  IOC$SEARCHDEV
					; Call signature for Linkage Pair:
					;   00000002
					;   00000000
00000000     01E0		.ADDRESS  CTL$GL_PCB
	     01F0		.LINKAGE  SCH$IOLOCKW
					; Call signature for Linkage Pair:
					;   00000002
					;   00000000
	     0200		.LINKAGE  SCH$IOUNLOCK
					; Call signature for Linkage Pair:
					;   00000002
					;   00000000

	     0210		; Heavyweight Frame invocation descriptor
				Entry point:	       XITHDL
				Registers saved:       R2-R6, R13, R15, FP
				Fixed Stack Size:      80
				Call Signature:        FED0

	     0230		.LINKAGE  SYS$CANEXH
					; Call signature for Linkage Pair:
					;   10000022
					;   00000001

	     0240		; Null-Frame invocation descriptor
				Entry point:	       KEYSET
				Registers saved:       R2-R8, R11, R13-R15
				Fixed Stack Size:      96

00000000     0250		.ADDRESS  LIB$CRC_TABLE
	     0260		.LINKAGE  AMAC$EMUL_CALL
	     0270		.LINKAGE  AMAC$EMUL_CRC
00008000     0280		.LONG	32768

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  50
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

	     0288		; Null-Frame invocation descriptor
				Entry point:	       CRYPT
				Registers saved:       R2-R6
				Fixed Stack Size:      48

00010078     0298		.LONG	65656
0001007C     029C		.LONG	65660
FFFF0003     02A0		.LONG	-65533

	     02A8		; Null-Frame invocation descriptor
				Entry point:	       DECRYPT
				Registers saved:       R2-R6
				Fixed Stack Size:      48


				.PSECT	CRY_DATA, LONG, NOPIC, CON, REL, LCL,-
					NOSHR, NOEXE, RD, WRT
00000002     0000		.LONG	2
00000000     0004		.ADDRESS  POLYW
00000000     0008		.ADDRESS  CRCWRK
00000000     000C		.LONG	0
      00     0010		.SIGNED_BYTE  0 [64]
00000000     0050		.LONG	0
00000000     0054		.LONG	0
00000000     0058		.LONG	0
00000000     005C		.LONG	0
DE683251     0060		.LONG	3731370577
EDB88320     0064		.LONG	3988292384
BACC8010     0068		.LONG	3133964304
F03BA241     006C		.LONG	4030440001
F03BA200     0070		.LONG	4030439936
      00     0074		.SIGNED_BYTE  0 [65536]
00000000 00010074		.LONG	0
00000000 00010078		.LONG	0
00000000 0001007C		.LONG	0

				.PSECT	$RMSNAM, OCTA, NOPIC, CON, REL, LCL,-
					NOSHR, EXE, RD, WRT
2E304446     0000		.ASCII	\FD0.DSK\
  4B5344     0004			
4F434446     0007		.ASCII	\FDCONT.DSK\
442E544E     000B			
    4B53     000F			

				.PSECT	FDHOSTD_DATA, LONG, NOPIC, CON, REL, LCL,-
					NOSHR, NOEXE, RD, WRT
00000000     0000		.LONG	0
00000000     0004		.LONG	0
00000000     0008		.ADDRESS  XITHDL
00000000     000C		.LONG	0
00000000     0010		.ADDRESS  DVL
00000000     0014		.LONG	0
00000000     0018		.LONG	0
    0008     001C		.WORD	8
      0E     001E		.BYTE	14
      01     001F		.BYTE	1
00000000     0020		.ADDRESS  0_0$

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  51
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

24535953     0024		.ASCII	\SYS$DISK\
4B534944     0028			
      03     002C		.BYTE	3
      50     002D		.BYTE	80
      00     002E		.SIGNED_BYTE  0 [2]
00000000     0030		.LONG	X^00000000
      00     0034		.SIGNED_BYTE  0 [8]
00000000     003C		.LONG	X^00000000
    0000     0040		.WORD	0
      23     0042		.BYTE	35
      00     0043		.BYTE	0
00000000     0044		.LONG	X^00000000
      00     0048		.BYTE	0
      00     0049		.BYTE	0
      00     004A		.BYTE	0
      01     004B		.BYTE	1
      00     004C		.BYTE	0
      00     004D		.BYTE	0
    0000     004E		.WORD	0
00000000     0050		.ADDRESS  FNXAB
00000000     0054		.LONG	X^00000000
00000000     0058		.ADDRESS  0_4$
00000000     005C		.ADDRESS  0_6$
      07     0060		.BYTE	7
      0A     0061		.BYTE	10
    0200     0062		.WORD	512
00000000     0064		.LONG	X^00000000
    0000     0068		.WORD	0
      00     006A		.BYTE	0
      00     006B		.BYTE	0
      00     006C		.SIGNED_BYTE  0 [8]
    0000     0074		.WORD	0
      00     0076		.BYTE	0
      00     0077		.SIGNED_BYTE  0 [5]
      01     007C		.BYTE	1
      44     007D		.BYTE	68
      00     007E		.SIGNED_BYTE  0 [2]
00000000     0080		.LONG	X^00000000
      00     0084		.SIGNED_BYTE  0 [16]
00000000     0094		.LONG	X^00000000
      00     0098		.SIGNED_BYTE  0 [2]
      00     009A		.BYTE	0
      00     009B		.BYTE	0
    0200     009C		.WORD	512
    0000     009E		.WORD	0
00000000     00A0		.ADDRESS  RECBUF
00000000     00A4		.ADDRESS  RECBUF
00000000     00A8		.LONG	X^00000000
00000000     00AC		.LONG	X^00000000
      00     00B0		.BYTE	0
      00     00B1		.BYTE	0
      00     00B2		.BYTE	0
      00     00B3		.BYTE	0
00000000     00B4		.LONG	X^00000000
00000000     00B8		.ADDRESS  DFAB_BLK
00000000     00BC		.LONG	X^00000000
      00     00C0		.SIGNED_BYTE  0 [512]

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  52
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

00000000     02C0		.LONG	0
00000000     02C4		.LONG	0
      1D     02C8		.BYTE	29
      2C     02C9		.BYTE	44
      00     02CA		.SIGNED_BYTE  0 [2]
00000000     02CC		.LONG	X^00000000
      00     02D0		.SIGNED_BYTE  0 [164]
00000028     0374		.LONG	40
00000000     0378		.ADDRESS  VDV_BUF
      00     037C		.SIGNED_BYTE  0 [4]
    0028     0380		.WORD	40
    0020     0382		.WORD	32
00000000     0384		.ADDRESS  VDV_BUF
00000000     0388		.ADDRESS  VDV_BUF_DESC
    0004     038C		.WORD	4
    000E     038E		.WORD	14
00000000     0390		.ADDRESS  VPID
00000000     0394		.LONG	0
    0004     0398		.WORD	4
    0004     039A		.WORD	4
00000000     039C		.ADDRESS  VDV_CLASS
00000000     03A0		.LONG	0
00000000     03A4		.LONG	0
00000001     03A8		.LONG	1
      00     03AC		.SIGNED_BYTE  0 [40]
00000028     03D4		.LONG	40
00000000     03D8		.ADDRESS  MBX_BUF
      00     03DC		.SIGNED_BYTE  0 [4]
    0028     03E0		.WORD	40
    0020     03E2		.WORD	32
00000000     03E4		.ADDRESS  MBX_BUF
00000000     03E8		.ADDRESS  MBX_BUF_DESC
    0004     03EC		.WORD	4
    000E     03EE		.WORD	14
00000000     03F0		.ADDRESS  MPID
00000000     03F4		.LONG	0
    0004     03F8		.WORD	4
    0004     03FA		.WORD	4
00000000     03FC		.ADDRESS  MBX_CLASS
00000000     0400		.LONG	0
00000000     0404		.LONG	0
00000001     0408		.LONG	1
      00     040C		.SIGNED_BYTE  0 [4]
    00FF     0410		.WORD	255
      00     0412		.ADDRESS  DSC$K_DTYPE_T
      01     0413		.BYTE	1
00000000     0414		.ADDRESS  VDFNMD
      00     0418		.SIGNED_BYTE  0 [256]
00000000     0518		.LONG	0
00000000     051C		.LONG	0
00000000     0520		.LONG	0
00000000     0524		.LONG	0
    0005     0528		.WORD	5
      0E     052A		.BYTE	14
      01     052B		.BYTE	1
00000000     052C		.ADDRESS  0_25$
41454C43     0530		.ASCII	\CLEAR\

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  53
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

      52     0534			
    0003     0535		.WORD	3
      0E     0537		.BYTE	14
      01     0538		.BYTE	1
00000000     0539		.ADDRESS  0_26$
  59454B     053D		.ASCII	\KEY\
    0004     0540		.WORD	4
      0E     0542		.BYTE	14
      01     0543		.BYTE	1
00000000     0544		.ADDRESS  0_27$
4B414557     0548		.ASCII	\WEAK\
    0004     054C		.WORD	4
      0E     054E		.BYTE	14
      01     054F		.BYTE	1
00000000     0550		.ADDRESS  0_28$
54494E55     0554		.ASCII	\UNIT\
    0004     0558		.WORD	4
      0E     055A		.BYTE	14
      01     055B		.BYTE	1
00000000     055C		.ADDRESS  0_29$
4D414E46     0560		.ASCII	\FNAM\
    00FF     0564		.WORD	255
      00     0566		.ADDRESS  DSC$K_DTYPE_T
      01     0567		.BYTE	1
00000000     0568		.ADDRESS  DDFNMD
      00     056C		.SIGNED_BYTE  0 [256]
00000000     066C		.LONG	0
    00FF     0670		.WORD	255
      00     0672		.ADDRESS  DSC$K_DTYPE_T
      01     0673		.BYTE	1
00000000     0674		.ADDRESS  KYFNMD
      00     0678		.SIGNED_BYTE  0 [256]
00000000     0778		.LONG	0
00000000     077C		.LONG	0
00000000     0780		.LONG	0
00000000     0784		.LONG	0
00000000     0788		.LONG	0
00000000     078C		.LONG	0
00000000     0790		.LONG	0
00000000     0794		.LONG	0
00000000     0798		.LONG	0
00000000     079C		.LONG	0
00000000     07A0		.LONG	0
00000000     07A4		.LONG	0
00000000     07A8		.LONG	0
      00     07AC		.SIGNED_BYTE  0 [32768]
00000000     87AC		.LONG	0
00000000     87B0		.LONG	0
00000000     87B4		.LONG	0
00000000     87B8		.LONG	0
00000001     87BC		.LONG	1
00000000     87C0		.LONG	0
00000000     87C4		.LONG	0
00000000     87C8		.LONG	0
00000000     87CC		.LONG	0
00000000     87D0		.LONG	0
00000000     87D4		.LONG	0

FDHOSTCRY                       Machine Code Listing             3-SEP-1993 11:46:04    AMAC V1.8-17-251J                   Page  54
V01-004A                        XITHDL                           3-SEP-1993 11:45:18    RD$USER:[GLEEVE.VDD]FDHOSTCRY5.MAR;4

00000000     87D8		.LONG	0
00000000     87DC		.LONG	0
00000000     87E0		.LONG	0
00000000     87E4		.LONG	0
00000002     87E8		.LONG	2
00000000     87EC		.ADDRESS  VDV_BUF_DESC
00000000     87F0		.ADDRESS  MBX_BUF_DESC
