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=,XAB=FNXAB,FAC=,rfm=fix,DNM=,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 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=#,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=#,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=#,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=#,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 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 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=#,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=#,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 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 0000016F 7916 rsb 00000170 7917 ; at entry to crypt, block number is in r6 00000170 7918 Crypt: .jsb_entry 00000170 7919 pushr #^M 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 0000023D 7973 rsb 0000023E 7974 ; at entry to decrypt, block number is in r6 0000023E 7975 Decrypt: .jsb_entry 0000023E 7976 pushr #^M 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 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