示例#1
0
        public ReadOnlySpan <byte> Invoke(ushort ordinal, bool offsetsOnly = false)
        {
            switch (ordinal)
            {
            case 248:
                return(_txtlen);
            }

            if (offsetsOnly)
            {
                var methodPointer = new IntPtr16(0xFFFC, ordinal);
#if DEBUG
                //_logger.Info($"Returning Method Offset {methodPointer.Segment:X4}:{methodPointer.Offset:X4}");
#endif
                return(methodPointer.ToSpan());
            }

            switch (ordinal)
            {
            case 30:
                oldsend();
                break;

            case 123:
                simpsnd();
                break;

            default:
                throw new ArgumentOutOfRangeException($"Unknown Exported Function Ordinal in GALME: {ordinal}");
            }

            return(null);
        }
示例#2
0
        public ReadOnlySpan <byte> Invoke(ushort ordinal, bool offsetsOnly = false)
        {
            if (offsetsOnly)
            {
                var methodPointer = new IntPtr16(0xFFFC, ordinal);
#if DEBUG
                //_logger.Info($"Returning Method Offset {methodPointer.Segment:X4}:{methodPointer.Offset:X4}");
#endif
                return(methodPointer.ToSpan());
            }

            switch (ordinal)
            {
            default:
                throw new ArgumentOutOfRangeException($"Unknown Exported Function Ordinal in GALMSG: {ordinal}");
            }
        }
示例#3
0
        public ReadOnlySpan <byte> Invoke(ushort ordinal, bool onlyProperties = false)
        {
            switch (ordinal)
            {
            case 89:
                return(dossetvec);
            }

            if (onlyProperties)
            {
                var methodPointer = new IntPtr16(Segment, ordinal);
#if DEBUG
                //_logger.Info($"Returning Method Offset {methodPointer.Segment:X4}:{methodPointer.Offset:X4}");
#endif
                return(methodPointer.ToSpan());
            }

            switch (ordinal)
            {
            case 34:
                DosAllocSeg();
                break;

            case 44:
                DosLoadModule();
                break;

            case 45:
                DosGetProcAddr();
                break;

            case 47:
                DosGetModHandle();
                break;

            case 48:
                DosGetModName();
                break;

            default:
                throw new ArgumentOutOfRangeException($"Unknown Exported Function Ordinal in DOSCALLS: {ordinal}");
            }

            return(null);
        }
示例#4
0
文件: Galgsbl.cs 项目: Tamerz/MBBSEmu
        public ReadOnlySpan <byte> Invoke(ushort ordinal, bool offsetsOnly = false)
        {
            switch (ordinal)
            {
            case 72:
                return(bturno());

            case 65:
                return(ticker);
            }

            if (offsetsOnly)
            {
                var methodPointer = new IntPtr16(0xFFFE, ordinal);
#if DEBUG
                //_logger.Info($"Returning Method Offset {methodPointer.Segment:X4}:{methodPointer.Offset:X4}");
#endif
                return(methodPointer.ToSpan());
            }

            switch (ordinal)
            {
            case 36:
                btuoba();
                break;

            case 49:
                btutrg();
                break;

            case 21:
                btuinj();
                break;

            case 60:
                btuxnf();
                break;

            case 39:
                btupbc();
                break;

            case 87:
                btuica();
                break;

            case 6:
                btucli();
                break;

            case 4:
                btuchi();
                break;

            case 63:
                chious();
                break;

            case 83:
                btueba();
                break;

            case 19:
                btuibw();
                break;

            case 59:
                btuxmt();
                break;

            case 7:
                btuclo();
                break;

            case 30:
                btumil();
                break;

            case 3:
                btuche();
                break;

            case 5:
                btuclc();
                break;

            case 8:
                btucls();
                break;

            case 52:
                btutru();
                break;

            case 37:
                btuoes();
                break;

            case 11:
                btuech();
                break;

            case 53:
                btutsw();
                break;

            case 58:
                btuxmn();
                break;

            case 34:
                btumon2();
                break;

            case 32:
                btumks2();
                break;

            case 48:
                btusts();
                break;

            case 29:
                btumds2();
                break;

            case 41:
                bturst();
                break;

            case 40:
                btupmt();
                break;

            case 9:
                btucmd();
                break;

            case 56:
                btuxct();
                break;

            case 64:
                chiout();
                break;

            case 61:
                chiinj();
                break;

            case 15:
                btuhcr();
                break;

            case 44:
                btuscr();
                break;

            case 26:
                btulok();
                break;

            default:
                throw new ArgumentOutOfRangeException($"Unknown Exported Function Ordinal in GALGSBL: {ordinal}");
            }

            return(null);
        }