Lattice AMIGA 68000-68020 OBJ Module Disassembler V5.04.039
Copyright  1988, 1989 Lattice Inc.  All Rights Reserved.


Amiga Object File Loader V1.00
68000 Instruction Set

EXTERNAL DEFINITIONS

_main 0000-00    _InitTimer 0446-00    _StartTimer 04B0-00    
_KillTimer 04E2-00    _DeleteTimer 0526-00    _getout 059E-00

SECTION 00 "inetd.c" 000006F0 BYTES
;   1: /* -----------------------------------------------------------------------
;   2:  * inetd.c         2.0 for shared socket library  SAS 5.10
;   3:  *
;   4:  * $Locker:$
;   5:  *
;   6:  * $Id:$
;   7:  *
;   8:  * $Revision:$
;   9:  *
;  10:  * $Log:$
;  11:  *
;  12:  * $Header:$
;  13:  *
;  14:  *------------------------------------------------------------------------
;  15:  */
;  16: 
;  17: 
;  18: #define DEBUG 1
;  19: 
;  20: #ifdef DEBUG
;  21:         #define DB1(x)  VPrintf((x),NULL)
;  22: #else
;  23:         #define DB1(x) ;
;  24: #endif
;  25: 
;  26: #include <exec/types.h>
;  27: #include <ss/socket.h>
;  28: #include <sys/socket.h>
;  29: #include <exec/libraries.h>
;  30: #include <exec/memory.h>
;  31: #include <sys/ioctl.h>
;  32: #include <netdb.h>
;  33: #include <signal.h>
;  34: 
;  35: #include <intuition/intuition.h>
;  36: #include <libraries/dos.h>
;  37: #include <graphics/gfxbase.h>
;  38: #include <graphics/text.h>                                                
;  39: #include <exec/ports.h>              
;  40: #include <ctype.h>
;  41: #include <string.h>
;  42: 
;  43: #include <libraries/gadtools.h>
;  44: #include <utility/tagitem.h>
;  45: 
;  46: #include <clib/dos_protos.h>
;  47: #include <clib/intuition_protos.h>
;  48: #include <clib/exec_protos.h>
;  49: #include <clib/dos_protos.h>
;  50: #include <clib/utility_protos.h>
;  51: 
;  52: #include <pragmas/intuition_pragmas.h>
;  53: 
;  54: 
;  55: #include "inetd_rev.h"
;  56: 
;  57: 
;  58: #ifdef LATTICE
;  59:  #include <ios1.h>
;  60:  #include <proto/all.h>
;  61: #endif
;  62: 
;  63: #ifdef min
;  64:    #undef min
;  65: #endif
;  66: 
;  67: #define MAXSOCKS 3L
;  68: 
;  69: #define OPT_DEBUG  0
;  70: #define OPT_COUNT  1 
;  71: #define TEMPLATE "-D=DEBUG/S"
;  72: 
;  73: #include <stdio.h>   /* after the #undef min */
;  74: #include <errno.h>
;  75:  
;  76: #define OUTPUT(x)  VPrintf((x),NULL)
;  77: #define MEMFLAGS   (MEMF_PUBLIC|MEMF_CLEAR)
;  78: #define PORTNAME   "Inetd_Rendezvous"
;  79: 
;  80: 
;  81: extern struct IOStdReq *CreateStdIO();
;  82: extern struct MsgPort  *CreatePort();
;  83: extern struct Library  *OpenLibrary();
;  84: 
;  85: struct glob {
;  86: 	struct Library  *g_UtilityBase ;
;  87: 	struct Library  *g_SockBase ;
;  88: 	struct Library  *g_IntuitionBase ;
;  89: 	struct MsgPort  *g_TimerPort ;
;  90: 	struct MsgPort  *g_TagPort ;
;  91: 	struct timerequest *g_TimerReq ;
;  92: 	long g_TimerDevOpen ;
;  93: 	long g_timerbit ;
;  94: 	long g_Debug ;
;  95: 	long g_sockets_are_setup ;
;  96: 	int  g_errno ;
;  97: 	} ;
;  98: 
;  99: void getout( struct glob *, unsigned char *) ;
; 100: void main( void ) ;
; 101: void StartTimer( ULONG sec, ULONG micro, struct glob *g) ;
; 102: void KillTimer(struct glob *g) ;
; 103: void DeleteTimer(struct glob *g) ;
; 104: int InitTimer(struct glob *g) ;
; 105: 
; 106: void 
; 107: main( void )
; 108: {
       | 0000  4E55 FFF4                      LINK      A5,#FFF4
       | 0004  48E7 3032                      MOVEM.L   D2-D3/A2-A3/A6,-(A7)
; 109: 	struct glob *glob = AllocVec((long)sizeof(struct glob), MEMFLAGS) ;
       | 0008  702C                           MOVEQ     #2C,D0
       | 000A  223C 0001 0001                 MOVE.L    #00010001,D1
       | 0010  2C78 0004                      MOVEA.L   0004,A6
       | 0014  4EAE FD54                      JSR       FD54(A6)
       | 0018  2640                           MOVEA.L   D0,A3
; 110: 	long opts[OPT_COUNT] ;
; 111: 	struct RDArgs *ra = NULL ;
; 112: /*	extern int Enable_Abort ; */
; 113: 	struct Library *SockBase = NULL, *UtilityBase =NULL ;
; 114: 	UBYTE *version ;
; 115: 
; 116: 	version = VERSTAG ;
; 117: 
; 118: 	if( ! glob )
       | 001A  200B                           MOVE.L    A3,D0
       | 001C  661C                           BNE.B     003A
; 119: 	{
; 120: 		VPrintf("allocVec(glob) failed\n", NULL) ;
       | 001E  41FA 01B0                      LEA       01B0(PC),A0
       | 0022  2208                           MOVE.L    A0,D1
       | 0024  7400                           MOVEQ     #00,D2
       | 0026  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 002C  4EAE FC46                      JSR       FC46(A6)
; 121: 		exit(20) ;
       | 0030  4878 0014                      PEA       0014
       | 0034  4EBA  0000-XX.1                JSR       _exit(PC)
       | 0038  584F                           ADDQ.W    #4,A7
; 122: 	}
; 123: 
; 124: /********
; 125: 	Forbid() ;
; 126: 	glob->g_TagPort = FindPort(PORTNAME) ;
; 127: 	Permit() ;
; 128: 	if( glob->g_TagPort ) 
; 129: 	{
; 130: 		VPrintf("Inetd is already running,\n", NULL) ;
; 131: 		FreeVec(glob) ;
; 132: 		exit(20) ;
; 133: 	}	
; 134: 	glob->g_TagPort = CreatePort(PORTNAME,-128L) ;
; 135: 	if( glob->g_TagPort == NULL) 
; 136: 	{
; 137: 		FreeVec(glob) ;
; 138: 		VPrintf("port creation failed\n", NULL) ;
; 139: 		exit(20) ;
; 140: 	}
; 141: *********/
; 142: 
; 143: 	memset((BYTE *)opts,0,sizeof(opts)) ;
       | 003A  7003                           MOVEQ     #03,D0
       | 003C  7200                           MOVEQ     #00,D1
       | 003E  41ED FFF4                      LEA       FFF4(A5),A0
       | 0042  10C1                           MOVE.B    D1,(A0)+
       | 0044  51C8 FFFC                      DBF       D0,0042
; 144: 	ra = (struct RDArgs *)ReadArgs(TEMPLATE,opts,NULL) ;
       | 0048  41FA 019E                      LEA       019E(PC),A0
       | 004C  2208                           MOVE.L    A0,D1
       | 004E  43ED FFF4                      LEA       FFF4(A5),A1
       | 0052  2409                           MOVE.L    A1,D2
       | 0054  7600                           MOVEQ     #00,D3
       | 0056  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 005C  4EAE FCE2                      JSR       FCE2(A6)
       | 0060  2440                           MOVEA.L   D0,A2
; 145: 	if( ! ra ) 
       | 0062  200A                           MOVE.L    A2,D0
       | 0064  6628                           BNE.B     008E
; 146: 	{
; 147: 		VPrintf("ReadArgs failure\n", NULL) ;
       | 0066  2403                           MOVE.L    D3,D2
       | 0068  41FA 018A                      LEA       018A(PC),A0
       | 006C  2208                           MOVE.L    A0,D1
       | 006E  4EAE FC46                      JSR       FC46(A6)
; 148: 		DeletePort(glob->g_TagPort) ;
       | 0072  2F2B 0010                      MOVE.L    0010(A3),-(A7)
       | 0076  4EBA  0000-XX.1                JSR       _DeletePort(PC)
; 149: 		FreeVec(glob) ;
       | 007A  224B                           MOVEA.L   A3,A1
       | 007C  2C78 0004                      MOVEA.L   0004,A6
       | 0080  4EAE FD4E                      JSR       FD4E(A6)
; 150: 		exit(20) ;
       | 0084  4878 0014                      PEA       0014
       | 0088  4EBA  0000-XX.1                JSR       _exit(PC)
       | 008C  504F                           ADDQ.W    #8,A7
; 151: 	}
; 152: 
; 153: 	if(opts[OPT_DEBUG])
       | 008E  4AAD FFF4                      TST.L     FFF4(A5)
       | 0092  6706                           BEQ.B     009A
; 154: 	{
; 155: 		glob->g_Debug = 1 ;
       | 0094  7001                           MOVEQ     #01,D0
       | 0096  2740 0020                      MOVE.L    D0,0020(A3)
; 156: 	}
; 157: 
; 158: 	FreeArgs(ra) ;
       | 009A  220A                           MOVE.L    A2,D1
       | 009C  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 00A2  4EAE FCA6                      JSR       FCA6(A6)
; 159: /*	Enable_Abort = 0 ;    no control-C aborts allowed */
; 160: 
; 161: 	if( ! InitTimer(glob) )
       | 00A6  2F0B                           MOVE.L    A3,-(A7)
       | 00A8  6100 039C                      BSR.W     0446
       | 00AC  584F                           ADDQ.W    #4,A7
       | 00AE  4A80                           TST.L     D0
       | 00B0  661C                           BNE.B     00CE
; 162: 	{
; 163: 		DeletePort(glob->g_TagPort) ;
       | 00B2  2F2B 0010                      MOVE.L    0010(A3),-(A7)
       | 00B6  4EBA  0000-XX.1                JSR       _DeletePort(PC)
; 164: 		FreeVec(glob) ;
       | 00BA  224B                           MOVEA.L   A3,A1
       | 00BC  2C78 0004                      MOVEA.L   0004,A6
       | 00C0  4EAE FD4E                      JSR       FD4E(A6)
; 165: 		exit(20) ;
       | 00C4  4878 0014                      PEA       0014
       | 00C8  4EBA  0000-XX.1                JSR       _exit(PC)
       | 00CC  504F                           ADDQ.W    #8,A7
; 166: 	}
; 167:     /********************************************************************/
; 168:     /** you can't exit via getout() prior to initializing the timer!!  **/
; 169:     /********************************************************************/
; 170: 
; 171: 			/* init the timer so getout() code is happy !!! */
; 172: 	StartTimer(0,100,glob) ;
       | 00CE  2F0B                           MOVE.L    A3,-(A7)
       | 00D0  4878 0064                      PEA       0064
       | 00D4  42A7                           CLR.L     -(A7)
       | 00D6  6100 03D8                      BSR.W     04B0
       | 00DA  4FEF 000C                      LEA       000C(A7),A7
; 173: 	WaitIO((struct IOrequest *)glob->g_TimerReq) ;
       | 00DE  226B 0014                      MOVEA.L   0014(A3),A1
       | 00E2  2C78 0004                      MOVEA.L   0004,A6
       | 00E6  4EAE FE26                      JSR       FE26(A6)
; 174: 
; 175: 	if((SockBase = OpenLibrary( "inet:libs/socket.library", 0L )) == NULL) 
       | 00EA  43FA 011A                      LEA       011A(PC),A1
       | 00EE  7000                           MOVEQ     #00,D0
       | 00F0  4EAE FDD8                      JSR       FDD8(A6)
       | 00F4  2440                           MOVEA.L   D0,A2
       | 00F6  200A                           MOVE.L    A2,D0
       | 00F8  660C                           BNE.B     0106
; 176: 	{
; 177: 		getout(glob,"cannot open socket.library") ;
       | 00FA  487A 0124                      PEA       0124(PC)
       | 00FE  2F0B                           MOVE.L    A3,-(A7)
       | 0100  6100 049C                      BSR.W     059E
       | 0104  504F                           ADDQ.W    #8,A7
; 178: 	}
; 179: 	setup_sockets( MAXSOCKS, &glob->g_errno );
       | 0106  41EB 0028                      LEA       0028(A3),A0
       | 010A  7203                           MOVEQ     #03,D1
       | 010C  2C4A                           MOVEA.L   A2,A6
       | 010E  4EAE FFE2                      JSR       FFE2(A6)
; 180: 	glob->g_sockets_are_setup = 1L ;
       | 0112  7001                           MOVEQ     #01,D0
       | 0114  2740 0024                      MOVE.L    D0,0024(A3)
; 181: 	glob->g_SockBase = SockBase ;
       | 0118  274A 0004                      MOVE.L    A2,0004(A3)
; 182: 	DB1("sockbase open\n") ;
       | 011C  43FA 011E                      LEA       011E(PC),A1
       | 0120  2209                           MOVE.L    A1,D1
       | 0122  7400                           MOVEQ     #00,D2
       | 0124  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 012A  4EAE FC46                      JSR       FC46(A6)
; 183: 
; 184: 	if((UtilityBase = OpenLibrary( "utility.library", 0L )) == NULL) 
       | 012E  43FA 011C                      LEA       011C(PC),A1
       | 0132  7000                           MOVEQ     #00,D0
       | 0134  2C78 0004                      MOVEA.L   0004,A6
       | 0138  4EAE FDD8                      JSR       FDD8(A6)
       | 013C  2440                           MOVEA.L   D0,A2
       | 013E  200A                           MOVE.L    A2,D0
       | 0140  660C                           BNE.B     014E
; 185: 	{
; 186: 		getout(glob, "cannot open utility library") ;
       | 0142  487A 0118                      PEA       0118(PC)
       | 0146  2F0B                           MOVE.L    A3,-(A7)
       | 0148  6100 0454                      BSR.W     059E
       | 014C  504F                           ADDQ.W    #8,A7
; 187: 	}
; 188: 	glob->g_UtilityBase = UtilityBase ;
       | 014E  268A                           MOVE.L    A2,(A3)
; 189: 	DB1("utilitybase open\n") ;
       | 0150  41FA 0126                      LEA       0126(PC),A0
       | 0154  2208                           MOVE.L    A0,D1
       | 0156  7400                           MOVEQ     #00,D2
       | 0158  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 015E  4EAE FC46                      JSR       FC46(A6)
; 190: 
; 191: 		/*** main loop  ***/
; 192: 
; 193: 	DB1("inetd: Main Loop\n") ;
       | 0162  41FA 0126                      LEA       0126(PC),A0
       | 0166  2208                           MOVE.L    A0,D1
       | 0168  4EAE FC46                      JSR       FC46(A6)
; 194: 
; 195: #ifdef DEBUG
; 196: 	DB1("starting timer delay of 5 seconds\n") ;
       | 016C  41FA 012E                      LEA       012E(PC),A0
       | 0170  2208                           MOVE.L    A0,D1
       | 0172  4EAE FC46                      JSR       FC46(A6)
; 197: 	StartTimer(5L,0L,glob) ;
       | 0176  2F0B                           MOVE.L    A3,-(A7)
       | 0178  42A7                           CLR.L     -(A7)
       | 017A  4878 0005                      PEA       0005
       | 017E  6100 0330                      BSR.W     04B0
; 198: 	WaitIO((struct IOrequest *)glob->g_TimerReq) ;
       | 0182  226B 0014                      MOVEA.L   0014(A3),A1
       | 0186  2C78 0004                      MOVEA.L   0004,A6
       | 018A  4EAE FE26                      JSR       FE26(A6)
; 199: 	DB1("back from 5 sec delay\n") ;
       | 018E  41FA 0130                      LEA       0130(PC),A0
       | 0192  2208                           MOVE.L    A0,D1
       | 0194  7400                           MOVEQ     #00,D2
       | 0196  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 019C  4EAE FC46                      JSR       FC46(A6)
; 200: #endif
; 201: 
; 202: 	getout(glob, "Seems ok") ;
       | 01A0  487A 0136                      PEA       0136(PC)
       | 01A4  2F0B                           MOVE.L    A3,-(A7)
       | 01A6  6100 03F6                      BSR.W     059E
; 203: }
       | 01AA  4CED 4C0C FFE0                 MOVEM.L   FFE0(A5),D2-D3/A2-A3/A6
       | 01B0  4E5D                           UNLK      A5
       | 01B2  4E75                           RTS
       | 01B4  0024 5645                      ORI.B     #45,-(A4)
       | 01B8  523A 2069                      ADDQ.B    #1,2069(PC)
       | 01BC  6E65                           BGT.B     0223
       | 01BE  7464                           MOVEQ     #64,D2
       | 01C0  2033 372E 3120 2832            MOVE.L    ([3120,A3],D3.W*8,2832),D0
       | 01C8  322E 382E                      MOVE.W    382E(A6),D1
       | 01CC  3931 2900                      MOVE.W    (A1,D2.L),-(A4)
       | 01D0  616C                           BSR.B     023E
       | 01D2  6C6F                           BGE.B     0243
       | 01D4  6356                           BLS.B     022C
       | 01D6  6563                           BCS.B     023B
       | 01D8  2867                           MOVEA.L   -(A7),A4
       | 01DA  6C6F                           BGE.B     024B
       | 01DC  6229                           BHI.B     0207
       | 01DE  2066                           MOVEA.L   -(A6),A0
       | 01E0  6169                           BSR.B     024B
       | 01E2  6C65                           BGE.B     0249
       | 01E4  640A                           BCC.B     01F0
       | 01E6  0000 2D44                      ORI.B     #44,D0
       | 01EA  3D44 4542                      MOVE.W    D4,4542(A6)
       | 01EE  5547                           SUBQ.W    #2,D7
       | 01F0  2F53 0000                      MOVE.L    (A3),0000(A7)
       | 01F4  5265                           ADDQ.W    #1,-(A5)
       | 01F6  6164                           BSR.B     025C
       | 01F8  4172                           
       | 01FA  6773                           BEQ.B     026F
       | 01FC  2066                           MOVEA.L   -(A6),A0
       | 01FE  6169                           BSR.B     0269
       | 0200  6C75                           BGE.B     0277
       | 0202  7265                           MOVEQ     #65,D1
       | 0204  0A00 696E                      EORI.B    #6E,D0
       | 0208  6574                           BCS.B     027E
       | 020A  3A6C 6962                      MOVEA.W   6962(A4),A5
       | 020E  732F                           
       | 0210  736F                           
       | 0212  636B                           BLS.B     027F
       | 0214  6574                           BCS.B     028A
       | 0216  2E6C 6962                      MOVEA.L   6962(A4),A7
       | 021A  7261                           MOVEQ     #61,D1
       | 021C  7279                           MOVEQ     #79,D1
       | 021E  0000 6361                      ORI.B     #61,D0
       | 0222  6E6E                           BGT.B     0292
       | 0224  6F74                           BLE.B     029A
       | 0226  206F 7065                      MOVEA.L   7065(A7),A0
       | 022A  6E20                           BGT.B     024C
       | 022C  736F                           
       | 022E  636B                           BLS.B     029B
       | 0230  6574                           BCS.B     02A6
       | 0232  2E6C 6962                      MOVEA.L   6962(A4),A7
       | 0236  7261                           MOVEQ     #61,D1
       | 0238  7279                           MOVEQ     #79,D1
       | 023A  0000 736F                      ORI.B     #6F,D0
       | 023E  636B                           BLS.B     02AB
       | 0240  6261                           BHI.B     02A3
       | 0242  7365                           
       | 0244  206F 7065                      MOVEA.L   7065(A7),A0
       | 0248  6E0A                           BGT.B     0254
       | 024A  0000 7574                      ORI.B     #74,D0
       | 024E  696C                           BVS.B     02BC
       | 0250  6974                           BVS.B     02C6
       | 0252  792E                           
       | 0254  6C69                           BGE.B     02BF
       | 0256  6272                           BHI.B     02CA
       | 0258  6172                           BSR.B     02CC
       | 025A  7900                           
       | 025C  6361                           BLS.B     02BF
       | 025E  6E6E                           BGT.B     02CE
       | 0260  6F74                           BLE.B     02D6
       | 0262  206F 7065                      MOVEA.L   7065(A7),A0
       | 0266  6E20                           BGT.B     0288
       | 0268  7574                           
       | 026A  696C                           BVS.B     02D8
       | 026C  6974                           BVS.B     02E2
       | 026E  7920                           
       | 0270  6C69                           BGE.B     02DB
       | 0272  6272                           BHI.B     02E6
       | 0274  6172                           BSR.B     02E8
       | 0276  7900                           
       | 0278  7574                           
       | 027A  696C                           BVS.B     02E8
       | 027C  6974                           BVS.B     02F2
       | 027E  7962                           
       | 0280  6173                           BSR.B     02F5
       | 0282  6520                           BCS.B     02A4
       | 0284  6F70                           BLE.B     02F6
       | 0286  656E                           BCS.B     02F6
       | 0288  0A00 696E                      EORI.B    #6E,D0
       | 028C  6574                           BCS.B     0302
       | 028E  643A                           BCC.B     02CA
       | 0290  204D                           MOVEA.L   A5,A0
       | 0292  6169                           BSR.B     02FD
       | 0294  6E20                           BGT.B     02B6
       | 0296  4C6F 6F70 0A00                 DIVS.L    0A00(A7),D0:D6
       | 029C  7374                           
       | 029E  6172                           BSR.B     0312
       | 02A0  7469                           MOVEQ     #69,D2
       | 02A2  6E67                           BGT.B     030B
       | 02A4  2074 696D 6572                 MOVEA.L   ([6572,A4]),A0
       | 02AA  2064                           MOVEA.L   -(A4),A0
       | 02AC  656C                           BCS.B     031A
       | 02AE  6179                           BSR.B     0329
       | 02B0  206F 6620                      MOVEA.L   6620(A7),A0
       | 02B4  3520                           MOVE.W    -(A0),-(A2)
       | 02B6  7365                           
       | 02B8  636F                           BLS.B     0329
       | 02BA  6E64                           BGT.B     0320
       | 02BC  730A                           
       | 02BE  0000 6261                      ORI.B     #61,D0
       | 02C2  636B                           BLS.B     032F
       | 02C4  2066                           MOVEA.L   -(A6),A0
       | 02C6  726F                           MOVEQ     #6F,D1
       | 02C8  6D20                           BLT.B     02EA
       | 02CA  3520                           MOVE.W    -(A0),-(A2)
       | 02CC  7365                           
       | 02CE  6320                           BLS.B     02F0
       | 02D0  6465                           BCC.B     0337
       | 02D2  6C61                           BGE.B     0335
       | 02D4  790A                           
       | 02D6  0000 5365                      ORI.B     #65,D0
       | 02DA  656D                           BCS.B     0349
       | 02DC  7320                           
       | 02DE  6F6B                           BLE.B     034B
       | 02E0  0000 7469                      ORI.B     #69,D0
       | 02E4  6D65                           BLT.B     034B
       | 02E6  722E                           MOVEQ     #2E,D1
       | 02E8  6465                           BCC.B     034F
       | 02EA  7669                           MOVEQ     #69,D3
       | 02EC  6365                           BLS.B     0353
       | 02EE  0000 696E                      ORI.B     #6E,D0
       | 02F2  746F                           MOVEQ     #6F,D2
       | 02F4  204B                           MOVEA.L   A3,A0
       | 02F6  696C                           BVS.B     0364
       | 02F8  6C54                           BGE.B     034E
       | 02FA  696D                           BVS.B     0369
       | 02FC  6572                           BCS.B     0370
       | 02FE  2829 0A00                      MOVE.L    0A00(A1),D4
       | 0302  6F75                           BLE.B     0379
       | 0304  7420                           MOVEQ     #20,D2
       | 0306  6F66                           BLE.B     036E
       | 0308  204B                           MOVEA.L   A3,A0
       | 030A  696C                           BVS.B     0378
       | 030C  6C54                           BGE.B     0362
       | 030E  696D                           BVS.B     037D
       | 0310  6572                           BCS.B     0384
       | 0312  2829 0A00                      MOVE.L    0A00(A1),D4
       | 0316  696E                           BVS.B     0386
       | 0318  746F                           MOVEQ     #6F,D2
       | 031A  2044                           MOVEA.L   D4,A0
       | 031C  656C                           BCS.B     038A
       | 031E  6574                           BCS.B     0394
       | 0320  6554                           BCS.B     0376
       | 0322  696D                           BVS.B     0391
       | 0324  6572                           BCS.B     0398
       | 0326  2829 0A00                      MOVE.L    0A00(A1),D4
       | 032A  6F75                           BLE.B     03A1
       | 032C  7420                           MOVEQ     #20,D2
       | 032E  6F66                           BLE.B     0396
       | 0330  2044                           MOVEA.L   D4,A0
       | 0332  656C                           BCS.B     03A0
       | 0334  6574                           BCS.B     03AA
       | 0336  6554                           BCS.B     038C
       | 0338  696D                           BVS.B     03A7
       | 033A  6572                           BCS.B     03AE
       | 033C  2829 0A00                      MOVE.L    0A00(A1),D4
       | 0340  2049                           MOVEA.L   A1,A0
       | 0342  6E65                           BGT.B     03A9
       | 0344  7464                           MOVEQ     #64,D2
       | 0346  2045                           MOVEA.L   D5,A0
       | 0348  7272                           MOVEQ     #72,D1
       | 034A  6F72                           BLE.B     03BE
       | 034C  204D                           MOVEA.L   A5,A0
       | 034E  6573                           BCS.B     03C3
       | 0350  7361                           
       | 0352  6765                           BEQ.B     03B9
       | 0354  3A20                           MOVE.W    -(A0),D5
       | 0356  0000 2049                      ORI.B     #49,D0
       | 035A  6E65                           BGT.B     03C1
       | 035C  7464                           MOVEQ     #64,D2
       | 035E  2045                           MOVEA.L   D5,A0
       | 0360  7272                           MOVEQ     #72,D1
       | 0362  6F72                           BLE.B     03D6
       | 0364  3A20                           MOVE.W    -(A0),D5
       | 0366  2573 0000 2020                 MOVE.L    00(A3,D0.W),2020(A2)
       | 036C  4578                           
       | 036E  6974                           BVS.B     03E4
       | 0370  2020                           MOVE.L    -(A0),D0
       | 0372  0000 6765                      ORI.B     #65,D0
       | 0376  746F                           MOVEQ     #6F,D2
       | 0378  7574                           
       | 037A  3A20                           MOVE.W    -(A0),D5
       | 037C  6465                           BCC.B     03E3
       | 037E  6C65                           BGE.B     03E5
       | 0380  7469                           MOVEQ     #69,D2
       | 0382  6E67                           BGT.B     03EB
       | 0384  2054                           MOVEA.L   (A4),A0
       | 0386  6167                           BSR.B     03EF
       | 0388  506F 7274                      ADDQ.W    #8,7274(A7)
       | 038C  0A00 696E                      EORI.B    #6E,D0
       | 0390  7475                           MOVEQ     #75,D2
       | 0392  6974                           BVS.B     0408
       | 0394  696F                           BVS.B     0405
       | 0396  6E2E                           BGT.B     03C6
       | 0398  6C69                           BGE.B     0403
       | 039A  6272                           BHI.B     040E
       | 039C  6172                           BSR.B     0410
       | 039E  7900                           
       | 03A0  496E 7475                      PEA       7475(A6)
       | 03A4  6974                           BVS.B     041A
       | 03A6  696F                           BVS.B     0417
       | 03A8  6E42                           BGT.B     03EC
       | 03AA  6173                           BSR.B     041F
       | 03AC  6520                           BCS.B     03CE
       | 03AE  3D20                           MOVE.W    -(A0),-(A6)
       | 03B0  2530 386C                      MOVE.L    6C(A0,D3.L),-(A2)
       | 03B4  780A                           MOVEQ     #0A,D4
       | 03B6  0000 6765                      ORI.B     #65,D0
       | 03BA  746F                           MOVEQ     #6F,D2
       | 03BC  7574                           
       | 03BE  3A20                           MOVE.W    -(A0),D5
       | 03C0  646F                           BCC.B     0431
       | 03C2  696E                           BVS.B     0432
       | 03C4  6720                           BEQ.B     03E6
       | 03C6  4561                           
       | 03C8  7379                           
       | 03CA  5265                           ADDQ.W    #1,-(A5)
       | 03CC  7175                           
       | 03CE  6573                           BCS.B     0443
       | 03D0  740A                           MOVEQ     #0A,D2
       | 03D2  0000 6765                      ORI.B     #65,D0
       | 03D6  746F                           MOVEQ     #6F,D2
       | 03D8  7574                           
       | 03DA  3A20                           MOVE.W    -(A0),D5
       | 03DC  636C                           BLS.B     044A
       | 03DE  6F73                           BLE.B     0453
       | 03E0  696E                           BVS.B     0450
       | 03E2  6720                           BEQ.B     0404
       | 03E4  696E                           BVS.B     0454
       | 03E6  7475                           MOVEQ     #75,D2
       | 03E8  6974                           BVS.B     045E
       | 03EA  696F                           BVS.B     045B
       | 03EC  6E62                           BGT.B     0450
       | 03EE  6173                           BSR.B     0463
       | 03F0  650A                           BCS.B     03FC
       | 03F2  0000 6765                      ORI.B     #65,D0
       | 03F6  746F                           MOVEQ     #6F,D2
       | 03F8  7574                           
       | 03FA  3A20                           MOVE.W    -(A0),D5
       | 03FC  636C                           BLS.B     046A
       | 03FE  6F73                           BLE.B     0473
       | 0400  696E                           BVS.B     0470
       | 0402  6720                           BEQ.B     0424
       | 0404  7574                           
       | 0406  696C                           BVS.B     0474
       | 0408  6974                           BVS.B     047E
       | 040A  7962                           
       | 040C  6173                           BSR.B     0481
       | 040E  650A                           BCS.B     041A
       | 0410  0000 6765                      ORI.B     #65,D0
       | 0414  746F                           MOVEQ     #6F,D2
       | 0416  7574                           
       | 0418  3A20                           MOVE.W    -(A0),D5
       | 041A  636C                           BLS.B     0488
       | 041C  6561                           BCS.B     047F
       | 041E  6E75                           BGT.B     0495
       | 0420  705F                           MOVEQ     #5F,D0
       | 0422  736F                           
       | 0424  636B                           BLS.B     0491
       | 0426  6574                           BCS.B     049C
       | 0428  730A                           
       | 042A  0000 6765                      ORI.B     #65,D0
       | 042E  746F                           MOVEQ     #6F,D2
       | 0430  7574                           
       | 0432  3A20                           MOVE.W    -(A0),D5
       | 0434  636C                           BLS.B     04A2
       | 0436  6F73                           BLE.B     04AB
       | 0438  696E                           BVS.B     04A8
       | 043A  6720                           BEQ.B     045C
       | 043C  736F                           
       | 043E  636B                           BLS.B     04AB
       | 0440  6261                           BHI.B     04A3
       | 0442  7365                           
       | 0444  0A00 48E7                      EORI.B    #E7,D0
; 204: 
; 205: 
; 206: /* ============================================
; 207:  * InitTimer( struct glob *)
; 208:  * ============================================
; 209:  */
; 210: 
; 211: int
; 212: InitTimer(struct glob *g)
; 213: {
       | 0448  2012                           MOVE.L    (A2),D0
       | 044A  266F 0010                      MOVEA.L   0010(A7),A3
; 214: 	if(g->g_TimerPort = CreateMsgPort())
       | 044E  2C78 0004                      MOVEA.L   0004,A6
       | 0452  4EAE FD66                      JSR       FD66(A6)
       | 0456  2740 000C                      MOVE.L    D0,000C(A3)
       | 045A  674C                           BEQ.B     04A8
; 215: 	{
; 216: 		if(g->g_TimerReq = (struct timerequest *)CreateIORequest(g->g_TimerPort, (long)sizeof(struct timerequest)))
       | 045C  2040                           MOVEA.L   D0,A0
       | 045E  7028                           MOVEQ     #28,D0
       | 0460  4EAE FD72                      JSR       FD72(A6)
       | 0464  2740 0014                      MOVE.L    D0,0014(A3)
       | 0468  4A80                           TST.L     D0
       | 046A  6734                           BEQ.B     04A0
; 217: 		{
; 218: 			if(OpenDevice(TIMERNAME,UNIT_VBLANK,(struct IORequest *)g->g_TimerReq,0L) == 0L)
       | 046C  2240                           MOVEA.L   D0,A1
       | 046E  41FA FE72                      LEA       FE72(PC),A0
       | 0472  7001                           MOVEQ     #01,D0
       | 0474  7200                           MOVEQ     #00,D1
       | 0476  4EAE FE44                      JSR       FE44(A6)
       | 047A  4A00                           TST.B     D0
       | 047C  661A                           BNE.B     0498
; 219: 			{
; 220: 				g->g_TimerDevOpen = 1 ;
       | 047E  7001                           MOVEQ     #01,D0
       | 0480  2740 0018                      MOVE.L    D0,0018(A3)
; 221: 				g->g_timerbit = 1L << g->g_TimerPort->mp_SigBit ;
       | 0484  206B 000C                      MOVEA.L   000C(A3),A0
       | 0488  7200                           MOVEQ     #00,D1
       | 048A  1228 000F                      MOVE.B    000F(A0),D1
       | 048E  2400                           MOVE.L    D0,D2
       | 0490  E3A2                           ASL.L     D1,D2
       | 0492  2742 001C                      MOVE.L    D2,001C(A3)
; 222: 				return( 1 ) ;
       | 0496  6012                           BRA.B     04AA
; 223: 			}
; 224: 			DeleteIORequest(g->g_TimerReq) ;
       | 0498  206B 0014                      MOVEA.L   0014(A3),A0
       | 049C  4EAE FD6C                      JSR       FD6C(A6)
; 225: 		}
; 226: 		DeleteMsgPort(g->g_TimerPort) ;
       | 04A0  206B 000C                      MOVEA.L   000C(A3),A0
       | 04A4  4EAE FD60                      JSR       FD60(A6)
; 227: 	}
; 228: 	return(0) ;
       | 04A8  7000                           MOVEQ     #00,D0
; 229: }
       | 04AA  4CDF 4804                      MOVEM.L   (A7)+,D2/A3/A6
       | 04AE  4E75                           RTS
; 230: 
; 231: 
; 232: /* ============================================
; 233:  * StartTimer( sec, micro, timermsg
; 234:  * ============================================
; 235:  */
; 236: 
; 237: void
; 238: StartTimer( ULONG sec, ULONG micro, struct glob *g)
; 239: {
       | 04B0  48E7 0312                      MOVEM.L   D6-D7/A3/A6,-(A7)
       | 04B4  2E2F 0014                      MOVE.L    0014(A7),D7
       | 04B8  2C2F 0018                      MOVE.L    0018(A7),D6
       | 04BC  266F 001C                      MOVEA.L   001C(A7),A3
; 240: 	g->g_TimerReq->tr_node.io_Command = TR_ADDREQUEST ;
       | 04C0  206B 0014                      MOVEA.L   0014(A3),A0
       | 04C4  317C 0009 001C                 MOVE.W    #0009,001C(A0)
; 241: 	g->g_TimerReq->tr_time.tv_secs  = sec ;
       | 04CA  2147 0020                      MOVE.L    D7,0020(A0)
; 242: 	g->g_TimerReq->tr_time.tv_micro = micro ;
       | 04CE  2146 0024                      MOVE.L    D6,0024(A0)
; 243: 	SendIO((struct IORequest *)g->g_TimerReq) ;
       | 04D2  2248                           MOVEA.L   A0,A1
       | 04D4  2C78 0004                      MOVEA.L   0004,A6
       | 04D8  4EAE FE32                      JSR       FE32(A6)
; 244: }
       | 04DC  4CDF 48C0                      MOVEM.L   (A7)+,D6-D7/A3/A6
       | 04E0  4E75                           RTS
; 245: 
; 246: 
; 247: /* ============================================
; 248:  * KillTimer( glob )
; 249:  * ============================================
; 250:  */
; 251: 
; 252: 
; 253: void 
; 254: KillTimer(struct glob *g)
; 255: {
       | 04E2  48E7 2012                      MOVEM.L   D2/A3/A6,-(A7)
       | 04E6  266F 0010                      MOVEA.L   0010(A7),A3
; 256: 	DB1("into KillTimer()\n") ;
       | 04EA  41FA FE04                      LEA       FE04(PC),A0
       | 04EE  2208                           MOVE.L    A0,D1
       | 04F0  7400                           MOVEQ     #00,D2
       | 04F2  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 04F8  4EAE FC46                      JSR       FC46(A6)
; 257: 	AbortIO((struct IORequest *)g->g_TimerReq) ;
       | 04FC  226B 0014                      MOVEA.L   0014(A3),A1
       | 0500  2C78 0004                      MOVEA.L   0004,A6
       | 0504  4EAE FE20                      JSR       FE20(A6)
; 258: 	WaitIO((struct IORequest *)g->g_TimerReq) ;
       | 0508  226B 0014                      MOVEA.L   0014(A3),A1
       | 050C  4EAE FE26                      JSR       FE26(A6)
; 259: 	DB1("out of KillTimer()\n") ;
       | 0510  41FA FDF0                      LEA       FDF0(PC),A0
       | 0514  2208                           MOVE.L    A0,D1
       | 0516  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 051C  4EAE FC46                      JSR       FC46(A6)
; 260: }
       | 0520  4CDF 4804                      MOVEM.L   (A7)+,D2/A3/A6
       | 0524  4E75                           RTS
; 261: 
; 262: /* ============================================
; 263:  * DeleteTimer( glob )
; 264:  * ============================================
; 265:  */
; 266: 
; 267: void 
; 268: DeleteTimer(struct glob *g)
; 269: {
       | 0526  48E7 2012                      MOVEM.L   D2/A3/A6,-(A7)
       | 052A  266F 0010                      MOVEA.L   0010(A7),A3
; 270: 	DB1("into DeleteTimer()\n") ;
       | 052E  41FA FDE6                      LEA       FDE6(PC),A0
       | 0532  2208                           MOVE.L    A0,D1
       | 0534  7400                           MOVEQ     #00,D2
       | 0536  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 053C  4EAE FC46                      JSR       FC46(A6)
; 271: 	KillTimer(g) ;
       | 0540  2F0B                           MOVE.L    A3,-(A7)
       | 0542  619E                           BSR.B     04E2
       | 0544  584F                           ADDQ.W    #4,A7
; 272: 	if( g->g_TimerDevOpen )
       | 0546  4AAB 0018                      TST.L     0018(A3)
       | 054A  6710                           BEQ.B     055C
; 273: 	{
; 274: 		CloseDevice((struct IORequest *)g->g_TimerReq) ;
       | 054C  226B 0014                      MOVEA.L   0014(A3),A1
       | 0550  2C78 0004                      MOVEA.L   0004,A6
       | 0554  4EAE FE3E                      JSR       FE3E(A6)
; 275: 		g->g_TimerDevOpen = 0 ;
       | 0558  42AB 0018                      CLR.L     0018(A3)
; 276: 	}
; 277: 	if(g->g_TimerReq)
       | 055C  4AAB 0014                      TST.L     0014(A3)
       | 0560  6710                           BEQ.B     0572
; 278: 	{
; 279: 		DeleteIORequest((struct IORequest *)g->g_TimerReq) ;
       | 0562  206B 0014                      MOVEA.L   0014(A3),A0
       | 0566  2C78 0004                      MOVEA.L   0004,A6
       | 056A  4EAE FD6C                      JSR       FD6C(A6)
; 280: 		g->g_TimerReq = NULL ;
       | 056E  42AB 0014                      CLR.L     0014(A3)
; 281: 	}
; 282: 	if(g->g_TimerPort)
       | 0572  202B 000C                      MOVE.L    000C(A3),D0
       | 0576  670E                           BEQ.B     0586
; 283: 	{
; 284: 		DeleteMsgPort(g->g_TimerPort) ;
       | 0578  2040                           MOVEA.L   D0,A0
       | 057A  2C78 0004                      MOVEA.L   0004,A6
       | 057E  4EAE FD60                      JSR       FD60(A6)
; 285: 		g->g_TimerPort = NULL ;
       | 0582  42AB 000C                      CLR.L     000C(A3)
; 286: 	}
; 287: 	DB1("out of DeleteTimer()\n") ;
       | 0586  41FA FDA2                      LEA       FDA2(PC),A0
       | 058A  2208                           MOVE.L    A0,D1
       | 058C  7400                           MOVEQ     #00,D2
       | 058E  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 0594  4EAE FC46                      JSR       FC46(A6)
; 288: }
       | 0598  4CDF 4804                      MOVEM.L   (A7)+,D2/A3/A6
       | 059C  4E75                           RTS
; 289: 
; 290: 
; 291: /* ==========================================
; 292:  * getout(message) 
; 293:  * ==========================================
; 294:  */
; 295: 
; 296: void
; 297: getout( struct glob *g, UBYTE *msg )
; 298: {
       | 059E  4E55 FFE4                      LINK      A5,#FFE4
       | 05A2  48E7 2032                      MOVEM.L   D2/A2-A3/A6,-(A7)
       | 05A6  266D 0008                      MOVEA.L   0008(A5),A3
       | 05AA  246D 000C                      MOVEA.L   000C(A5),A2
; 299: 
; 300: 	struct IntuitionBase *IntuitionBase ;
; 301: 	struct Library *SockBase = g->g_SockBase ;
       | 05AE  206B 0004                      MOVEA.L   0004(A3),A0
; 302: 
; 303: 	struct EasyStruct es = {
; 304: 		(LONG)sizeof(struct EasyStruct),
; 305: 		0L,
; 306: 		(UBYTE *)" Inetd Error Message: ",
; 307: 		(UBYTE *)" Inetd Error: %s",
; 308: 		(UBYTE *)"  Exit  "
; 309: 	} ;
       | 05B2  2F48 0014                      MOVE.L    A0,0014(A7)
       | 05B6  43F9  0000 0000-01             LEA       01.00000000,A1
       | 05BC  4DED FFEC                      LEA       FFEC(A5),A6
       | 05C0  7004                           MOVEQ     #04,D0
       | 05C2  2CD9                           MOVE.L    (A1)+,(A6)+
       | 05C4  51C8 FFFC                      DBF       D0,05C2
; 310: 
; 311: 
; 312: 
; 313: 	KillTimer(g) ;
       | 05C8  2F0B                           MOVE.L    A3,-(A7)
       | 05CA  6100 FF16                      BSR.W     04E2
; 314: 	DeleteTimer(g) ;
       | 05CE  2E8B                           MOVE.L    A3,(A7)
       | 05D0  6100 FF54                      BSR.W     0526
       | 05D4  584F                           ADDQ.W    #4,A7
; 315: 	if( g->g_TagPort)
       | 05D6  4AAB 0010                      TST.L     0010(A3)
       | 05DA  671C                           BEQ.B     05F8
; 316: 	{
; 317: 		DB1("getout: deleting TagPort\n") ;
       | 05DC  41FA FD96                      LEA       FD96(PC),A0
       | 05E0  2208                           MOVE.L    A0,D1
       | 05E2  7400                           MOVEQ     #00,D2
       | 05E4  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 05EA  4EAE FC46                      JSR       FC46(A6)
; 318: 		DeletePort(g->g_TagPort) ;	
       | 05EE  2F2B 0010                      MOVE.L    0010(A3),-(A7)
       | 05F2  4EBA  0000-XX.1                JSR       _DeletePort(PC)
       | 05F6  584F                           ADDQ.W    #4,A7
; 319: 	}
; 320: 
; 321: 	if( msg )
       | 05F8  200A                           MOVE.L    A2,D0
       | 05FA  676C                           BEQ.B     0668
; 322: 	{
; 323: 
; 324: 		IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",37L) ;
       | 05FC  43FA FD90                      LEA       FD90(PC),A1
       | 0600  7025                           MOVEQ     #25,D0
       | 0602  2C78 0004                      MOVEA.L   0004,A6
       | 0606  4EAE FDD8                      JSR       FDD8(A6)
; 325: 		if( IntuitionBase )
       | 060A  2F40 0010                      MOVE.L    D0,0010(A7)
       | 060E  4A80                           TST.L     D0
       | 0610  6756                           BEQ.B     0668
; 326: 		{
; 327: 			printf("IntuitionBase = %08lx\n", IntuitionBase ) ;
       | 0612  2F00                           MOVE.L    D0,-(A7)
       | 0614  487A FD8A                      PEA       FD8A(PC)
       | 0618  4EBA  0000-XX.1                JSR       _printf(PC)
       | 061C  504F                           ADDQ.W    #8,A7
; 328: 			DB1("getout: doing EasyRequest\n") ;
       | 061E  41FA FD98                      LEA       FD98(PC),A0
       | 0622  2208                           MOVE.L    A0,D1
       | 0624  7400                           MOVEQ     #00,D2
       | 0626  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 062C  4EAE FC46                      JSR       FC46(A6)
; 329: 			EasyRequestArgs( NULL, &es, NULL, (APTR) msg) ; 
       | 0630  48E7 0030                      MOVEM.L   A2-A3,-(A7)
       | 0634  2042                           MOVEA.L   D2,A0
       | 0636  C58A                           EXG       D2,A2
       | 0638  43ED FFEC                      LEA       FFEC(A5),A1
       | 063C  2642                           MOVEA.L   D2,A3
       | 063E  2C6F 0018                      MOVEA.L   0018(A7),A6
       | 0642  4EAE FDB4                      JSR       FDB4(A6)
       | 0646  4CDF 0C00                      MOVEM.L   (A7)+,A2-A3
; 330: 			DB1("getout: closing intuitionbase\n") ;
       | 064A  41FA FD88                      LEA       FD88(PC),A0
       | 064E  2208                           MOVE.L    A0,D1
       | 0650  7400                           MOVEQ     #00,D2
       | 0652  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 0658  4EAE FC46                      JSR       FC46(A6)
; 331: 			CloseLibrary((struct Library *)IntuitionBase ) ;
       | 065C  226F 0010                      MOVEA.L   0010(A7),A1
       | 0660  2C78 0004                      MOVEA.L   0004,A6
       | 0664  4EAE FE62                      JSR       FE62(A6)
; 332: 		}
; 333: 	}
; 334: 
; 335: 	if( g->g_UtilityBase )
       | 0668  4A93                           TST.L     (A3)
       | 066A  671C                           BEQ.B     0688
; 336: 	{
; 337: 		DB1("getout: closing utilitybase\n") ;
       | 066C  41FA FD86                      LEA       FD86(PC),A0
       | 0670  2208                           MOVE.L    A0,D1
       | 0672  7400                           MOVEQ     #00,D2
       | 0674  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 067A  4EAE FC46                      JSR       FC46(A6)
; 338: 		CloseLibrary(g->g_UtilityBase) ;
       | 067E  2253                           MOVEA.L   (A3),A1
       | 0680  2C78 0004                      MOVEA.L   0004,A6
       | 0684  4EAE FE62                      JSR       FE62(A6)
; 339: 	}
; 340: 
; 341: 	if( g->g_sockets_are_setup)
       | 0688  4AAB 0024                      TST.L     0024(A3)
       | 068C  671A                           BEQ.B     06A8
; 342: 	{
; 343: 		DB1("getout: cleanup_sockets\n") ;
       | 068E  41FA FD82                      LEA       FD82(PC),A0
       | 0692  2208                           MOVE.L    A0,D1
       | 0694  7400                           MOVEQ     #00,D2
       | 0696  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 069C  4EAE FC46                      JSR       FC46(A6)
; 344: 		cleanup_sockets() ;
       | 06A0  2C6F 0014                      MOVEA.L   0014(A7),A6
       | 06A4  4EAE FFDC                      JSR       FFDC(A6)
; 345: 	}
; 346: 
; 347: 	if( g->g_SockBase )
       | 06A8  4AAB 0004                      TST.L     0004(A3)
       | 06AC  671E                           BEQ.B     06CC
; 348: 	{
; 349: 		DB1("getout: closing sockbase\n") ;
       | 06AE  41FA FD7C                      LEA       FD7C(PC),A0
       | 06B2  2208                           MOVE.L    A0,D1
       | 06B4  7400                           MOVEQ     #00,D2
       | 06B6  2C79  0000 0000-XX             MOVEA.L   _DOSBase,A6
       | 06BC  4EAE FC46                      JSR       FC46(A6)
; 350: 		CloseLibrary(g->g_SockBase) ;
       | 06C0  226B 0004                      MOVEA.L   0004(A3),A1
       | 06C4  2C78 0004                      MOVEA.L   0004,A6
       | 06C8  4EAE FE62                      JSR       FE62(A6)
; 351: 	}
; 352: 
; 353: 	FreeVec(g) ;
       | 06CC  224B                           MOVEA.L   A3,A1
       | 06CE  2C78 0004                      MOVEA.L   0004,A6
       | 06D2  4EAE FD4E                      JSR       FD4E(A6)
; 354: 
; 355: 	exit(msg ? 20 : 0 ) ;
       | 06D6  200A                           MOVE.L    A2,D0
       | 06D8  6704                           BEQ.B     06DE
       | 06DA  7014                           MOVEQ     #14,D0
       | 06DC  6002                           BRA.B     06E0
       | 06DE  7000                           MOVEQ     #00,D0
       | 06E0  2F00                           MOVE.L    D0,-(A7)
       | 06E2  4EBA  0000-XX.1                JSR       _exit(PC)
; 356: }
       | 06E6  4CED 4C04 FFD4                 MOVEM.L   FFD4(A5),D2/A2-A3/A6
       | 06EC  4E5D                           UNLK      A5
       | 06EE  4E75                           RTS

SECTION 01 " " 00000014 BYTES
0000 00 00 00 14 00 00 00 00 ........
0008 00000340-00 00.00000340
000C 00000358-00 00.00000358
0010 0000036A-00 00.0000036A
