home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Resources
/
System
/
BoingBag1
/
Contributions
/
Workbench
/
RexxArpLib3p6
/
src
/
dispatch.a
< prev
next >
Wrap
Text File
|
1998-06-19
|
29KB
|
663 lines
SAS AMIGA 680x0OBJ Module Disassembler 6.57
Copyright © 1995 SAS Institute, Inc.
Amiga Object File Loader V1.00
68000 Instruction Set
EXTERNAL DEFINITIONS
_RALDispatch 0000-00 @rxf_null 02F4-00 _ArpBase 0000-01
_AslBase 0004-01 _ScrSharBase 0008-01 _IntuitionBase 000C-01
_GfxBase 0010-01 _DiskfontBase 0014-01 _RexxSysBase 0018-01
_DOSBase 001C-01
SECTION 00 "text" 00000308 BYTES
; 1: /** Dispatch.c
; 2: *
; 3: * DESCRIPTION:
; 4: * ===========
; 5: *
; 6: * This function is called as the "query" entry point from the
; 7: * library. The arguments are contained in a RexxMsg structure, which is
; 8: * used as a parameter block and doesn't need to be unlinked from a port.
; 9: * Dispatch() searches a table to see whether the requested function is
; 10: * contained in this library and calls it if it is found. The "query"
; 11: * function should never alter the message packet, as it must be passed
; 12: * along to other libraries until the function is found.
; 13: *
; 14: * Arguments:
; 15: * Up to 15 arguments may be passed in the rm_Args[] array of the parameter
; 16: * block. Arguments are ALWAYS passed as argstrings and can generally be
; 17: * treated like string pointers in a 'C' program. The called function may
; 18: * need to convert the strings to numeric values if arithmetic operations
; 19: * are to be performed. A NULL value in the argument slot means that the
; 20: * argument was omitted from the function call.
; 21: *
; 22: * The total number of arguments (including the defaulted ones) is available
; 23: * in the low-order byte of the action code field rm_Action.
; 24: * Note that REXX supports function calls with varying numbers of arguments,
; 25: * and that the called function can always determine how many were actually
; 26: * passed.
; 27: *
; 28: * Error reporting:
; 29: * The function must return an integer error code and a result string if no
; 30: * errors were detected. Errors are considered to be ARexx internal error
; 31: * codes, so the function should make use of these values as appropriate.
; 32: * A code of 0 is interpreted to mean that everything worked.
; 33: *
; 34: * Result strings:
; 35: * The result string must be returned as an argstring, a pointer to the
; 36: * string buffer of an RexxArg structure. Argstrings can be created by a
; 37: * call to the ARexx Systems library function CreateArgstring().
; 38: * N.B. Never allocate a result string if the error code is non-zero!
; 39: *
; 40: * THIS VERSION:
; 41: * ============
; 42: *
; 43: * This version is written for Aztec C and implements a basic AmigaREXX
; 44: * ARP library. It is based on the example library by Jim Mackraz who
; 45: * got some stuff from Neil Katin, and the Dispatch() routine by Bill Hawes.
; 46: * All changes and additions by me.
; 47: *
; 48: * AUTHOR/DATE: W.G.J. Langeveld, November 1987.
; 49: * ============
; 50: *
; 51: **/
; 52: #include <functions.h>
; 53: #include "ralprotos.h"
; 54: #include <libraries/MyARP.h>
; 55: #include <intuition/intuitionbase.h>
; 56: #include <proto/rexxsyslib.h> // was rexxsys.h
; 57: #include <stdlib.h>
; 58: #include <string.h>
; 59: #include <ctype.h>
; 60: #include <simpreq.h>
; 61: #include "rexxarplib.h"
; 62:
; 63: /*
; 64: * Library bases
; 65: */
; 66: struct ArpBase *ArpBase = NULL;
; 67: struct Library *AslBase = NULL;
; 68: struct Library *ScrSharBase = NULL;
; 69: struct IntuitionBase *IntuitionBase = NULL;
; 70: struct GfxBase *GfxBase = NULL;
; 71: struct Library *DiskfontBase = NULL;
; 72: struct Library *RexxSysBase = NULL;
; 73: struct DosLibrary *DOSBase = NULL;
; 74:
; 75: #ifdef V35
; 76: #define BASEVER 36
; 77: #else
; 78: #define V36 (IntuitionBase->LibNode.lib_Version >= 36)
; 79: #define BASEVER 0
; 80: #endif
; 81:
; 82: /*
; 83: * The function table
; 84: */
; 85: static struct RXfunc rxfs[] =
; 86: {
; 87: {
; 88: rxf_getfile, "GETFILE" , 11, 0
; 89: }
; 90: ,
; 91: {
; 92: rxf_getsimp, "REQUEST" , 7 , 0
; 93: }
; 94: ,
; 95: {
; 96: rxf_getenv, "GETENV" , 1 , 1
; 97: }
; 98: ,
; 99: {
; 100: rxf_setenv, "SETENV" , 2 , 1
; 101: }
; 102: ,
; 103: {
; 104: rxf_postmsg, "POSTMSG" , 4 , 0
; 105: }
; 106: ,
; 107: {
; 108: rxf_stofront, "SCREENTOFRONT" , 1 , 0
; 109: }
; 110: ,
; 111: {
; 112: rxf_stoback, "SCREENTOBACK" , 1 , 0
; 113: }
; 114: ,
; 115: {
; 116: rxf_srows, "SCREENROWS" , 1 , 0
; 117: }
; 118: ,
; 119: {
; 120: rxf_scols, "SCREENCOLS" , 1 , 0
; 121: }
; 122: ,
; 123: {
; 124: rxf_slace, "SCREENLACE" , 1 , 0
; 125: }
; 126: ,
; 127: {
; 128: rxf_sopen, "OPENSCREEN" , 9 , 5
; 129: }
; 130: ,
; 131: {
; 132: rxf_sclose, "CLOSESCREEN" , 1 , 1
; 133: }
; 134: ,
; 135: {
; 136: rxf_sendp, "SENDPARSED" , 15, 1
; 137: }
; 138: ,
; 139: {
; 140: rxf_createhost,"CREATEHOST" , 3 , 2
; 141: }
; 142: ,
; 143: {
; 144: rxf_filelist, "FILELIST" , 4 , 2
; 145: }
; 146: ,
; 147: {
; 148: rxf_scolor, "SCREENCOLOR" , 5 , 2
; 149: }
; 150: ,
; 151: {
; 152: rxf_showtitle, "SHOWTITLE" , 2 , 2
; 153: }
; 154: ,
; 155: {
; 156: rxf_getfont, "GETFONT" , 14, 0
; 157: }
; 158: ,
; 159: {
; 160: rxf_smove, "MOVESCREEN" , 3 , 1
; 161: }
; 162: ,
; 163: {
; 164: rxf_getlist, "REQUESTLIST" , 10, 3
; 165: }
; 166: ,
; 167: {
; 168: rxf_null, NULL , 1 , 0
; 169: }
; 170: };
; 171:
; 172: /**
; 173: *
; 174: * The dispatcher.
; 175: *
; 176: **/
; 177: long __stdargs __saveds RALDispatch(rmptr, resptr)
; 178: struct RexxMsg *rmptr;
; 179: char **resptr;
| 0000 514F SUBQ.W #8,A7
| 0002 48E7 0F3E MOVEM.L D4-D7/A2-A6,-(A7)
| 0006 266F 0034 MOVEA.L 0034(A7),A3
| 000A 2A6F 0030 MOVEA.L 0030(A7),A5
| 000E 49EE 0000-XX.2 LEA _LinkerDB(A6),A4
; 180: {
; 181: int nargs = 0, ival = 0, done = FALSE;
| 0012 7C00 MOVEQ #00,D6
; 182: long result = 12L;
| 0014 700C MOVEQ #0C,D0
| 0016 2F40 0028 MOVE.L D0,0028(A7)
; 183:
; 184: DOSBase = (struct DosLibrary *) OpenLibrary("dos.library", BASEVER);
| 001A 2F4E 0024 MOVE.L A6,0024(A7)
| 001E 43FA 028A LEA 028A(PC),A1
| 0022 7000 MOVEQ #00,D0
| 0024 2C78 0004 MOVEA.L 0004,A6
| 0028 4EAE FDD8 JSR FDD8(A6)
| 002C 2940 001C-01.2 MOVE.L D0,01.0000001C(A4)
; 185: if (DOSBase == NULL)
| 0030 2C6F 0024 MOVEA.L 0024(A7),A6
| 0034 6700 0118 BEQ.W 014E
; 186: goto cleanup;
; 187:
; 188: ArpBase = (struct ArpBase*) OpenLibrary("arp.library", 0L);
| 0038 43FA 027C LEA 027C(PC),A1
| 003C 7000 MOVEQ #00,D0
| 003E 2C78 0004 MOVEA.L 0004,A6
| 0042 4EAE FDD8 JSR FDD8(A6)
| 0046 2940 0000-01.2 MOVE.L D0,01.00000000(A4)
; 189: if (ArpBase == NULL)
| 004A 2C6F 0024 MOVEA.L 0024(A7),A6
| 004E 6700 00FE BEQ.W 014E
; 190: goto cleanup;
; 191:
; 192: AslBase = OpenLibrary("asl.library", 0L);
| 0052 43FA 026E LEA 026E(PC),A1
| 0056 7000 MOVEQ #00,D0
| 0058 2C78 0004 MOVEA.L 0004,A6
| 005C 4EAE FDD8 JSR FDD8(A6)
| 0060 2940 0004-01.2 MOVE.L D0,01.00000004(A4)
; 193:
; 194: DiskfontBase = (struct Library *) OpenLibrary("diskfont.library", 0L);
| 0064 43FA 0268 LEA 0268(PC),A1
| 0068 7000 MOVEQ #00,D0
| 006A 4EAE FDD8 JSR FDD8(A6)
| 006E 2940 0014-01.2 MOVE.L D0,01.00000014(A4)
; 195:
; 196: RexxSysBase = OpenLibrary("rexxsyslib.library", 0L);
| 0072 43FA 026C LEA 026C(PC),A1
| 0076 7000 MOVEQ #00,D0
| 0078 4EAE FDD8 JSR FDD8(A6)
| 007C 2940 0018-01.2 MOVE.L D0,01.00000018(A4)
; 197: if (RexxSysBase == NULL)
| 0080 2C6F 0024 MOVEA.L 0024(A7),A6
| 0084 6700 00C8 BEQ.W 014E
; 198: goto cleanup;
; 199:
; 200: if (!SReqOpenLibs())
| 0088 6100 0000-XX.1 BSR.W @SReqOpenLibs
| 008C 4A40 TST.W D0
| 008E 6700 00BE BEQ.W 014E
; 201: goto cleanup;
; 202: #ifdef V35
; 203: /*
; 204: * V36 references IntuitionBase! so need to open Intuition first.
; 205: */
; 206: ScrSharBase = (struct Library *) OpenLibrary("screenshare.library", 0L);
; 207: if ((ScrSharBase == NULL) && !V36)
; 208: goto cleanup;
; 209: #endif
; 210:
; 211:
; 212: result = 1L;
| 0092 7001 MOVEQ #01,D0
| 0094 2F40 0028 MOVE.L D0,0028(A7)
; 213: *resptr = NULL;
| 0098 4293 CLR.L (A3)
; 214: /*
; 215: * Get the number of provided arguments.
; 216: */
; 217: nargs = (rmptr->rm_Action) & 0xFF;
| 009A 7000 MOVEQ #00,D0
| 009C 4600 NOT.B D0
| 009E C0AD 001C AND.L 001C(A5),D0
| 00A2 2A00 MOVE.L D0,D5
; 218: /*
; 219: * Get the function index
; 220: */
; 221: ival = rxhtable_index(rmptr->rm_Args[0]);
| 00A4 206D 0028 MOVEA.L 0028(A5),A0
| 00A8 6100 0000-XX.1 BSR.W @rxhtable_index
| 00AC 3800 MOVE.W D0,D4
; 222: if (ival >= 0)
| 00AE 6D72 BLT.B 0122
; 223: {
; 224: /*
; 225: * Got a regular function. Make sure it is an exact match.
; 226: */
; 227: if (strcmpu(rmptr->rm_Args[0], rxfs[ival].rexxname) == 0)
| 00B0 48C4 EXT.L D4
| 00B2 2E04 MOVE.L D4,D7
| 00B4 DE87 ADD.L D7,D7
| 00B6 DE84 ADD.L D4,D7
| 00B8 E587 ASL.L #2,D7
| 00BA 45EC 0020-01.2 LEA 01.00000020(A4),A2
| 00BE D5C7 ADDA.L D7,A2
| 00C0 206D 0028 MOVEA.L 0028(A5),A0
| 00C4 226A 0004 MOVEA.L 0004(A2),A1
| 00C8 6100 0000-XX.1 BSR.W @strcmpu
| 00CC 4A40 TST.W D0
| 00CE 6652 BNE.B 0122
; 228: {
; 229: result = 17L;
| 00D0 7011 MOVEQ #11,D0
| 00D2 2F40 0028 MOVE.L D0,0028(A7)
; 230: /*
; 231: * Check number of arguments
; 232: */
; 233: if (nargs > rxfs[ival].nargs)
| 00D6 BA6A 0008 CMP.W 0008(A2),D5
| 00DA 6E72 BGT.B 014E
; 234: goto cleanup;
; 235: if (nargs < rxfs[ival].nargs_req)
| 00DC 41EC 0020-01.2 LEA 01.00000020(A4),A0
| 00E0 BA70 780A CMP.W 0A(A0,D7.L),D5
| 00E4 6D68 BLT.B 014E
; 236: goto cleanup;
; 237: /*
; 238: * Call the function with the proper number of arguments.
; 239: * 14 is 'filelist'. Sorry 'bout the kludge... ;^)
; 240: * 17 is 'getfont'. Another kludge...
; 241: * 19 is 'requestlist', Another kludge...
; 242: */
; 243: if (ival == 14 || ival == 0 || ival == 17 || ival == 19)
| 00E6 700E MOVEQ #0E,D0
| 00E8 B840 CMP.W D0,D4
| 00EA 6710 BEQ.B 00FC
| 00EC 4A44 TST.W D4
| 00EE 670C BEQ.B 00FC
| 00F0 7011 MOVEQ #11,D0
| 00F2 B840 CMP.W D0,D4
| 00F4 6706 BEQ.B 00FC
| 00F6 7013 MOVEQ #13,D0
| 00F8 B840 CMP.W D0,D4
| 00FA 660E BNE.B 010A
; 244: {
; 245: *resptr = (*rxfs[ival].rexxfunc)(&result, nargs, (char **) rmptr);
| 00FC 2052 MOVEA.L (A2),A0
| 00FE 2208 MOVE.L A0,D1
| 0100 2005 MOVE.L D5,D0
| 0102 41EF 0028 LEA 0028(A7),A0
| 0106 224D MOVEA.L A5,A1
| 0108 600E BRA.B 0118
; 246: }
; 247: else
; 248: {
; 249: *resptr = (*rxfs[ival].rexxfunc)(&result,
| 010A 2052 MOVEA.L (A2),A0
| 010C 43ED 002C LEA 002C(A5),A1
; 250: nargs, &(rmptr->rm_Args[1]));
| 0110 2208 MOVE.L A0,D1
| 0112 2005 MOVE.L D5,D0
| 0114 41EF 0028 LEA 0028(A7),A0
| 0118 9288 SUB.L A0,D1
| 011A 4EB0 1800 JSR 00(A0,D1.L)
| 011E 2680 MOVE.L D0,(A3)
; 251: }
; 252: done = TRUE;
| 0120 7C01 MOVEQ #01,D6
; 253: }
; 254: }
; 255:
; 256: if (!done)
| 0122 4A46 TST.W D6
| 0124 6628 BNE.B 014E
; 257: {
; 258: /*
; 259: * If not a regular function, see if this is a window host function
; 260: */
; 261: ival = whf_find(&result, nargs - 1, rmptr->rm_Args[0]);
| 0126 3005 MOVE.W D5,D0
| 0128 5340 SUBQ.W #1,D0
| 012A 41EF 0028 LEA 0028(A7),A0
| 012E 226D 0028 MOVEA.L 0028(A5),A1
| 0132 6100 0000-XX.1 BSR.W @whf_find
; 262:
; 263: if (ival >= 0)
| 0136 4A40 TST.W D0
| 0138 6B14 BMI.B 014E
; 264: *resptr = whf_sendp(&result, nargs + 1, &(rmptr->rm_Args[0]));
| 013A 3005 MOVE.W D5,D0
| 013C 5240 ADDQ.W #1,D0
| 013E 41ED 0028 LEA 0028(A5),A0
| 0142 2248 MOVEA.L A0,A1
| 0144 41EF 0028 LEA 0028(A7),A0
| 0148 6100 0000-XX.1 BSR.W @whf_sendp
| 014C 2680 MOVE.L D0,(A3)
; 265: }
; 266:
; 267: cleanup:
; 268: SReqCloseLibs();
| 014E 6100 0000-XX.1 BSR.W @SReqCloseLibs
; 269: if (RexxSysBase)
| 0152 202C 0018-01.2 MOVE.L 01.00000018(A4),D0
| 0156 670A BEQ.B 0162
; 270: CloseLibrary( RexxSysBase );
| 0158 2240 MOVEA.L D0,A1
| 015A 2C78 0004 MOVEA.L 0004,A6
| 015E 4EAE FE62 JSR FE62(A6)
| 0162 2C6F 0024 MOVEA.L 0024(A7),A6
; 271: if (ScrSharBase)
| 0166 202C 0008-01.2 MOVE.L 01.00000008(A4),D0
| 016A 670A BEQ.B 0176
; 272: CloseLibrary( ScrSharBase );
| 016C 2240 MOVEA.L D0,A1
| 016E 2C78 0004 MOVEA.L 0004,A6
| 0172 4EAE FE62 JSR FE62(A6)
| 0176 2C6F 0024 MOVEA.L 0024(A7),A6
; 273: if (DiskfontBase)
| 017A 202C 0014-01.2 MOVE.L 01.00000014(A4),D0
| 017E 670A BEQ.B 018A
; 274: CloseLibrary( DiskfontBase );
| 0180 2240 MOVEA.L D0,A1
| 0182 2C78 0004 MOVEA.L 0004,A6
| 0186 4EAE FE62 JSR FE62(A6)
| 018A 2C6F 0024 MOVEA.L 0024(A7),A6
; 275: if (ArpBase)
| 018E 202C 0000-01.2 MOVE.L 01.00000000(A4),D0
| 0192 670A BEQ.B 019E
; 276: CloseLibrary( ( struct Library * ) ArpBase );
| 0194 2240 MOVEA.L D0,A1
| 0196 2C78 0004 MOVEA.L 0004,A6
| 019A 4EAE FE62 JSR FE62(A6)
| 019E 2C6F 0024 MOVEA.L 0024(A7),A6
; 277: if (AslBase)
| 01A2 202C 0004-01.2 MOVE.L 01.00000004(A4),D0
| 01A6 670A BEQ.B 01B2
; 278: CloseLibrary( AslBase );
| 01A8 2240 MOVEA.L D0,A1
| 01AA 2C78 0004 MOVEA.L 0004,A6
| 01AE 4EAE FE62 JSR FE62(A6)
| 01B2 2C6F 0024 MOVEA.L 0024(A7),A6
; 279: if (DOSBase)
| 01B6 202C 001C-01.2 MOVE.L 01.0000001C(A4),D0
| 01BA 670A BEQ.B 01C6
; 280: CloseLibrary( ( struct Library * ) DOSBase );
| 01BC 2240 MOVEA.L D0,A1
| 01BE 2C78 0004 MOVEA.L 0004,A6
| 01C2 4EAE FE62 JSR FE62(A6)
; 281:
; 282: return(result);
| 01C6 202F 0028 MOVE.L 0028(A7),D0
| 01CA 4CDF 7CF0 MOVEM.L (A7)+,D4-D7/A2-A6
| 01CE 504F ADDQ.W #8,A7
| 01D0 4E75 RTS
| 01D2 4745
| 01D4 5446 ADDQ.W #2,D6
| 01D6 494C PEA A4
| 01D8 4500 CHK.L D0,D2
| 01DA 5245 ADDQ.W #1,D5
| 01DC 5155 SUBQ.W #8,(A5)
| 01DE 4553
| 01E0 5400 ADDQ.B #2,D0
| 01E2 4745
| 01E4 5445 ADDQ.W #2,D5
| 01E6 4E56 0000 LINK A6,#0000
| 01EA 5345 SUBQ.W #1,D5
| 01EC 5445 ADDQ.W #2,D5
| 01EE 4E56 0000 LINK A6,#0000
| 01F2 504F ADDQ.W #8,A7
| 01F4 5354 SUBQ.W #1,(A4)
| 01F6 4D53 PEA (A3)
| 01F8 4700 CHK.L D0,D3
| 01FA 5343 SUBQ.W #1,D3
| 01FC 5245 ADDQ.W #1,D5
| 01FE 454E
| 0200 544F ADDQ.W #2,A7
| 0202 4652 NOT.W (A2)
| 0204 4F4E TRAP #0E
| 0206 5400 ADDQ.B #2,D0
| 0208 5343 SUBQ.W #1,D3
| 020A 5245 ADDQ.W #1,D5
| 020C 454E
| 020E 544F ADDQ.W #2,A7
| 0210 4241 CLR.W D1
| 0212 434B
| 0214 0000 5343 ORI.B #43,D0
| 0218 5245 ADDQ.W #1,D5
| 021A 454E
| 021C 524F ADDQ.W #1,A7
| 021E 5753 SUBQ.W #3,(A3)
| 0220 0000 5343 ORI.B #43,D0
| 0224 5245 ADDQ.W #1,D5
| 0226 454E
| 0228 434F
| 022A 4C53 0000 DIVU.L (A3),D0
| 022E 5343 SUBQ.W #1,D3
| 0230 5245 ADDQ.W #1,D5
| 0232 454E
| 0234 4C41 4345 DIVUL.L D1,D5:D4
| 0238 0000 4F50 ORI.B #50,D0
| 023C 454E
| 023E 5343 SUBQ.W #1,D3
| 0240 5245 ADDQ.W #1,D5
| 0242 454E
| 0244 0000 434C ORI.B #4C,D0
| 0248 4F53 4553 LINK A3,#4553
| 024C 4352
| 024E 4545
| 0250 4E00 TRAP #00
| 0252 5345 SUBQ.W #1,D5
| 0254 4E44 TRAP #04
| 0256 5041 ADDQ.W #8,D1
| 0258 5253 ADDQ.W #1,(A3)
| 025A 4544
| 025C 0000 4352 ORI.B #52,D0
| 0260 4541
| 0262 5445 ADDQ.W #2,D5
| 0264 484F BKPT #7
| 0266 5354 SUBQ.W #1,(A4)
| 0268 0000 4649 ORI.B #49,D0
| 026C 4C45 4C49 DIVS.L D5,D1:D4
| 0270 5354 SUBQ.W #1,(A4)
| 0272 0000 5343 ORI.B #43,D0
| 0276 5245 ADDQ.W #1,D5
| 0278 454E
| 027A 434F
| 027C 4C4F 5200 DIVUL.L A7,D0:D5
| 0280 5348 SUBQ.W #1,A0
| 0282 4F57 5449 LINK A7,#5449
| 0286 544C ADDQ.W #2,A4
| 0288 4500 CHK.L D0,D2
| 028A 4745
| 028C 5446 ADDQ.W #2,D6
| 028E 4F4E TRAP #0E
| 0290 5400 ADDQ.B #2,D0
| 0292 4D4F PEA A7
| 0294 5645 ADDQ.W #3,D5
| 0296 5343 SUBQ.W #1,D3
| 0298 5245 ADDQ.W #1,D5
| 029A 454E
| 029C 0000 5245 ORI.B #45,D0
| 02A0 5155 SUBQ.W #8,(A5)
| 02A2 4553
| 02A4 544C ADDQ.W #2,A4
| 02A6 4953 PEA (A3)
| 02A8 5400 ADDQ.B #2,D0
| 02AA 646F BCC.B 031B
| 02AC 732E
| 02AE 6C69 BGE.B 0319
| 02B0 6272 BHI.B 0324
| 02B2 6172 BSR.B 0326
| 02B4 7900
| 02B6 6172 BSR.B 032A
| 02B8 702E MOVEQ #2E,D0
| 02BA 6C69 BGE.B 0325
| 02BC 6272 BHI.B 0330
| 02BE 6172 BSR.B 0332
| 02C0 7900
| 02C2 6173 BSR.B 0337
| 02C4 6C2E BGE.B 02F4
| 02C6 6C69 BGE.B 0331
| 02C8 6272 BHI.B 033C
| 02CA 6172 BSR.B 033E
| 02CC 7900
| 02CE 6469 BCC.B 0339
| 02D0 736B
| 02D2 666F BNE.B 0343
| 02D4 6E74 BGT.B 034A
| 02D6 2E6C 6962 MOVEA.L 6962(A4),A7
| 02DA 7261 MOVEQ #61,D1
| 02DC 7279 MOVEQ #79,D1
| 02DE 0000 7265 ORI.B #65,D0
| 02E2 7878 MOVEQ #78,D4
| 02E4 7379
| 02E6 736C
| 02E8 6962 BVS.B 034C
| 02EA 2E6C 6962 MOVEA.L 6962(A4),A7
| 02EE 7261 MOVEQ #61,D1
| 02F0 7279 MOVEQ #79,D1
| 02F2 0000 9EFC ORI.B #FC,D0
; 283: }
; 284:
; 285:
; 286: /**
; 287: *
; 288: * The null function
; 289: *
; 290: **/
; 291: char *rxf_null(err, n, dummy)
; 292: long *err;
; 293: int n;
; 294: char **dummy;
| 02F6 000C 48D7 ORI.B #D7,A4
| 02FA 0201 7015 ANDI.B #15,D1
; 295: {
; 296: *err = 21L;
| 02FE 2080 MOVE.L D0,(A0)
; 297: return(0L);
| 0300 7000 MOVEQ #00,D0
| 0302 DEFC 000C ADDA.W #000C,A7
| 0306 4E75 RTS
SECTION 01 "__MERGED" 0000011C BYTES
OFFSETS 0000 THROUGH 001F CONTAIN ZERO
0020 00000000-XX @rxf_getfile
0024 000001D2-00 00.000001D2
0028 00 0B 00 00 ....
002C 00000000-XX @rxf_getsimp
0030 000001DA-00 00.000001DA
0034 00 07 00 00 ....
0038 00000000-XX @rxf_getenv
003C 000001E2-00 00.000001E2
0040 00 01 00 01 ....
0044 00000000-XX @rxf_setenv
0048 000001EA-00 00.000001EA
004C 00 02 00 01 ....
0050 00000000-XX @rxf_postmsg
0054 000001F2-00 00.000001F2
0058 00 04 00 00 ....
005C 00000000-XX @rxf_stofront
0060 000001FA-00 00.000001FA
0064 00 01 00 00 ....
0068 00000000-XX @rxf_stoback
006C 00000208-00 00.00000208
0070 00 01 00 00 ....
0074 00000000-XX @rxf_srows
0078 00000216-00 00.00000216
007C 00 01 00 00 ....
0080 00000000-XX @rxf_scols
0084 00000222-00 00.00000222
0088 00 01 00 00 ....
008C 00000000-XX @rxf_slace
0090 0000022E-00 00.0000022E
0094 00 01 00 00 ....
0098 00000000-XX @rxf_sopen
009C 0000023A-00 00.0000023A
00A0 00 09 00 05 ....
00A4 00000000-XX @rxf_sclose
00A8 00000246-00 00.00000246
00AC 00 01 00 01 ....
00B0 00000000-XX @rxf_sendp
00B4 00000252-00 00.00000252
00B8 00 0F 00 01 ....
00BC 00000000-XX @rxf_createhost
00C0 0000025E-00 00.0000025E
00C4 00 03 00 02 ....
00C8 00000000-XX @rxf_filelist
00CC 0000026A-00 00.0000026A
00D0 00 04 00 02 ....
00D4 00000000-XX @rxf_scolor
00D8 00000274-00 00.00000274
00DC 00 05 00 02 ....
00E0 00000000-XX @rxf_showtitle
00E4 00000280-00 00.00000280
00E8 00 02 00 02 ....
00EC 00000000-XX @rxf_getfont
00F0 0000028A-00 00.0000028A
00F4 00 0E 00 00 ....
00F8 00000000-XX @rxf_smove
00FC 00000292-00 00.00000292
0100 00 03 00 01 ....
0104 00000000-XX @rxf_getlist
0108 0000029E-00 00.0000029E
010C 00 0A 00 03 ....
0110 000002F4-00 00.000002F4
0114 00 00 00 00 00 01 00 00 80 47 00 04 .........G..