Annotation of sbbs/sbbs2/sdk/xsdkdefs.h, revision 1.1

1.1     ! root        1: /* XSDKDEFS.H */
        !             2: 
        !             3: #ifndef _XSDKDEFS_H
        !             4: #define _XSDKDEFS_H
        !             5: 
        !             6: /**********/
        !             7: /* Macros */
        !             8: /**********/
        !             9:                                                                        /* Control characters */
        !            10: #define STX    0x02                            /* Start of text                        ^B      */
        !            11: #define ETX    0x03                            /* End of text                          ^C      */
        !            12: #define BS             0x08                            /* Back space                           ^H      */
        !            13: #define TAB    0x09                            /* Horizontal tabulation        ^I      */
        !            14: #define LF             0x0a                            /* Line feed                            ^J      */
        !            15: #define FF             0x0c                            /* Form feed                            ^L      */
        !            16: #define CR             0x0d                            /* Carriage return                      ^M      */
        !            17: #define ESC    0x1b                            /* Escape                                       ^[      */
        !            18: #define SP      0x20                /* Space                        */
        !            19: 
        !            20: 
        !            21: #define DCD    0x8000          /* Data carrier detect bit in msr                       */
        !            22: 
        !            23: #define TABSIZE        4               /* Tabs will expand to 4 chars upon input       */
        !            24: 
        !            25: #define SAVE_LINES      4              /* Maximum number of lines to save                      */
        !            26: #define LINE_BUFSIZE 512    /* Size of line output buffer               */
        !            27: 
        !            28: #define HIGH 8                         /* High intensity attribute bit */
        !            29: 
        !            30:                                                        /* user_misc bits */
        !            31: #define ANSI   (1<<0)          /* user has ANSI capability */
        !            32: #define COLOR  (1<<1)          /* user has monochrome ANSI display */
        !            33: #define RIP    (1<<2)          /* RIP compatible terminal detected */
        !            34: #define WIP    (1<<3)          /* WIP compatible terminal detected */
        !            35: 
        !            36: #ifndef uchar                          /* Short-hand for unsigned data types */
        !            37: #define uchar unsigned char
        !            38: #endif
        !            39: #ifndef uint
        !            40: #define uint unsigned int
        !            41: #endif
        !            42: #ifndef ushort
        !            43: #define ushort unsigned short
        !            44: #endif
        !            45: #ifndef ulong
        !            46: #define ulong unsigned long
        !            47: #endif
        !            48: 
        !            49:                                                        /* Bits in 'mode' for getkey and getstr     */
        !            50: #define K_UPPER                (1<<0)  /* Converts all letters to upper case           */
        !            51: #define K_UPRLWR    (1<<1)  /* Upper/Lower case automatically           */
        !            52: #define K_NUMBER    (1<<2)  /* Allow numbers only                       */
        !            53: #define K_WRAP     (1<<3)  /* Allows word wrap                                                 */
        !            54: #define K_MSG          (1<<4)  /* Allows ANSI, ^N ^A ^G                                        */
        !            55: #define K_SPIN      (1<<5)  /* Spinning cursor (same as SPIN)           */
        !            56: #define K_LINE      (1<<6)  /* Input line (inverse color)               */
        !            57: #define K_EDIT      (1<<7)  /* Edit string passed                       */
        !            58: #define K_CHAT         (1<<8)  /* In chat multi-chat                                           */
        !            59: #define K_NOCRLF    (1<<9)     /* Don't print CRLF after string input      */
        !            60: #define K_ALPHA     (1<<10) /* Only allow alphabetic characters         */
        !            61: #define K_AUTODEL      (1<<11) /* Auto-delete text (used with K_EDIT)          */
        !            62: #define K_LOWPRIO      (1<<12) /* Low priority getstr() operation                      */
        !            63: #define K_GETSTR       (1<<13) /* getkey() called from getstr()                        */
        !            64: 
        !            65:                                                        /* Miscellaneous Modem Settings (mdm_misc)      */
        !            66: #define MDM_FLOWCTRL (1<<0)    /* Use flow control with modem                          */
        !            67: #define MDM_STAYHIGH (1<<1) /* Stay at highest DTE rate                 */
        !            68: 
        !            69: #define LOOP_NOPEN   50        /* Retries before file access denied        */
        !            70: #define LOOP_NODEDAB 100       /* Retries on NODE.DAB locking/unlocking        */
        !            71: 
        !            72: #define MAX_NODES      250     /* Maximum number of nodes                                      */
        !            73: 
        !            74: enum {                                                         /* Node Status */
        !            75:         NODE_WFC                                       /* Waiting for Call */
        !            76:        ,NODE_LOGON                     /* at logon prompt */
        !            77:        ,NODE_NEWUSER                           /* New user applying */
        !            78:        ,NODE_INUSE                                             /* In Use */
        !            79:        ,NODE_QUIET                                             /* In Use - quiet mode */
        !            80:        ,NODE_OFFLINE                                   /* Offline */
        !            81:        ,NODE_NETTING                                   /* Networking */
        !            82:        ,NODE_EVENT_WAITING                             /* Waiting for all nodes to be inactive */
        !            83:        ,NODE_EVENT_RUNNING                             /* Running an external event */
        !            84:        ,NODE_EVENT_LIMBO                               /* Allowing another node to run an event */
        !            85:        };
        !            86: 
        !            87:                                                                        /* Bit values for node.misc */
        !            88: #define        NODE_ANON       (1<<0)                  /* Anonymous User */
        !            89: #define        NODE_LOCK       (1<<1)                  /* Locked for sysops only */
        !            90: #define        NODE_INTR       (1<<2)                  /* Interrupted - hang up */
        !            91: #define NODE_MSGW   (1<<3)                     /* Message is waiting */
        !            92: #define NODE_POFF   (1<<4)             /* Page disabled */
        !            93: #define NODE_AOFF      (1<<5)                  /* Activity Alert disabled */
        !            94: #define NODE_UDAT      (1<<6)                  /* User data has been updated */
        !            95: #define NODE_RRUN      (1<<7)                  /* Re-run this node when log off */
        !            96: #define NODE_EVENT     (1<<8)                  /* Must run node event after log off */
        !            97: #define NODE_DOWN      (1<<9)                  /* Down this node after logoff */
        !            98: #define NODE_RPCHT     (1<<10)                 /* Reset private chat */
        !            99: #define NODE_NMSG   (1<<11)         /* Node message waiting (new way) */
        !           100: 
        !           101: 
        !           102: enum {                                                         /* Node Action */
        !           103:         NODE_MAIN                                              /* Main Prompt */
        !           104:        ,NODE_RMSG                                              /* Reading Messages */
        !           105:        ,NODE_RMAL                                              /* Reading Mail */
        !           106:        ,NODE_SMAL                                              /* Sending Mail */
        !           107:        ,NODE_RTXT                                              /* Reading G-Files */
        !           108:        ,NODE_RSML                                              /* Reading Sent Mail */
        !           109:        ,NODE_PMSG                                              /* Posting Message */
        !           110:        ,NODE_AMSG                                              /* Auto-message */
        !           111:        ,NODE_XTRN                                              /* Running External Program */
        !           112:        ,NODE_DFLT                                              /* Main Defaults Section */
        !           113:        ,NODE_XFER                                              /* Transfer Prompt */
        !           114:        ,NODE_DLNG                                      /* Downloading File */
        !           115:        ,NODE_ULNG                                      /* Uploading File */
        !           116:        ,NODE_BXFR                                              /* Bidirectional Transfer */
        !           117:        ,NODE_LFIL                                      /* Listing Files */
        !           118:        ,NODE_LOGN                                      /* Logging on */
        !           119:        ,NODE_LCHT                                      /* In Local Chat with Sysop */
        !           120:        ,NODE_MCHT                                      /* In Multi-Chat with Other Nodes */
        !           121:        ,NODE_GCHT                                              /* In Local Chat with Guru */
        !           122:        ,NODE_CHAT                                              /* In Chat Section */
        !           123:        ,NODE_SYSP                                      /* Sysop Activity */
        !           124:        ,NODE_TQWK                                              /* Transferring QWK packet */
        !           125:        ,NODE_PCHT                                              /* Private node-to-node chat */
        !           126:        ,NODE_PAGE                                              /* Paging node for Private Chat */
        !           127:        ,NODE_RFSD                                              /* Retrieving file from sequential dev */
        !           128:        };
        !           129: 
        !           130:                                                        /* Different bits in node_misc                          */
        !           131: #define NM_ANSALARM (1<<0)     /* Alarm locally on answer                                      */
        !           132: #define NM_WFCSCRN  (1<<1)     /* Wait for call screen                     */
        !           133: #define NM_WFCMSGS     (1<<2)  /* Include total messages/files on WFC          */
        !           134: #define NM_LCL_EDIT (1<<3)     /* Use local editor to create messages          */
        !           135: #define NM_EMSOVL      (1<<4)  /* Use expanded memory of overlays                      */
        !           136: #define NM_WINOS2      (1<<5)  /* Use Windows/OS2 time slice API call          */
        !           137: #define NM_INT28       (1<<6)  /* Make int 28 DOS idle calls                           */
        !           138: #define NM_NODV        (1<<7)  /* Don't detect and use DESQview API        */
        !           139: #define NM_NO_NUM      (1<<8)  /* Don't allow logons by user number        */
        !           140: #define NM_LOGON_R     (1<<9)  /* Allow logons by user real name                       */
        !           141: #define NM_LOGON_P     (1<<10) /* Secure logons (always ask for password)      */
        !           142: #define NM_NO_LKBRD (1<<11) /* No local keyboard (at all)                              */
        !           143: #define NM_SYSPW       (1<<12) /* Protect WFC keys and Alt keys with SY:       */
        !           144: #define NM_NO_INACT (1<<13) /* No local inactivity alert/logoff                */
        !           145: #define NM_NOBEEP      (1<<14) /* Don't beep locally                       */
        !           146: #define NM_LOWPRIO     (1<<15) /* Always use low priority input                        */
        !           147: #define NM_7BITONLY (1L<<16) /* Except 7-bit input only (E71 terminals)  */
        !           148: 
        !           149: #ifdef __WATCOMC__
        !           150: 
        !           151:        #if !defined(__COLORS)
        !           152:        #define __COLORS
        !           153: 
        !           154:        enum COLORS {
        !           155:                BLACK,                  /* dark colors */
        !           156:                BLUE,
        !           157:                GREEN,
        !           158:                CYAN,
        !           159:                RED,
        !           160:                MAGENTA,
        !           161:                BROWN,
        !           162:                LIGHTGRAY,
        !           163:                DARKGRAY,               /* light colors */
        !           164:                LIGHTBLUE,
        !           165:                LIGHTGREEN,
        !           166:                LIGHTCYAN,
        !           167:                LIGHTRED,
        !           168:                LIGHTMAGENTA,
        !           169:                YELLOW,
        !           170:                WHITE
        !           171:        };
        !           172:        #endif
        !           173: 
        !           174:        #define BLINK           128 /* blink bit */
        !           175: 
        !           176:        #define ffblk find_t
        !           177:     #define findfirst(x,y,z) _dos_findfirst(x,z,y)
        !           178:        #define findnext(x) _dos_findnext(x)
        !           179:        #pragma aux mswait "_*"
        !           180: #endif
        !           181: 
        !           182: /****************************************************************************/
        !           183: /* MALLOC/FREE Macros for various compilers and environments                           */
        !           184: /* MALLOC is used for allocations of 64k or less                                                       */
        !           185: /* FREE is used to free buffers allocated with MALLOC                                          */
        !           186: /* LMALLOC is used for allocations of possibly larger than 64k                         */
        !           187: /* LFREE is used to free buffers allocated with LMALLOC                                        */
        !           188: /* REALLOC is used to re-size a previously MALLOCed or LMALLOCed buffer        */
        !           189: /****************************************************************************/
        !           190: #if defined(__COMPACT__) || defined(__LARGE__) || defined(__HUGE__)
        !           191:        #if defined(__TURBOC__)
        !           192:                #define REALLOC(x,y) farrealloc(x,y)
        !           193:                #define LMALLOC(x) farmalloc(x)
        !           194:                #define MALLOC(x) farmalloc(x)
        !           195:                #define LFREE(x) farfree(x)
        !           196:                #define FREE(x) farfree(x)
        !           197:        #elif defined(__WATCOMC__)
        !           198:                #define REALLOC realloc
        !           199:                #define LMALLOC(x) halloc(x,1)  /* far heap, but slow */
        !           200:                #define MALLOC malloc                   /* far heap, but 64k max */
        !           201:                #define LFREE hfree
        !           202:                #define FREE free
        !           203:        #else   /* Other 16-bit Compiler */
        !           204:                #define REALLOC realloc
        !           205:                #define LMALLOC malloc
        !           206:                #define MALLOC malloc
        !           207:                #define LFREE free
        !           208:                #define FREE free
        !           209:        #endif
        !           210: #else          /* 32-bit Compiler or Small Memory Model */
        !           211:        #define REALLOC realloc
        !           212:        #define LMALLOC malloc
        !           213:        #define MALLOC malloc
        !           214:        #define LFREE free
        !           215:        #define FREE free
        !           216: #endif
        !           217: 
        !           218: #define KEY_BUFSIZE 256
        !           219: 
        !           220: #define CRLF  { outchar(CR); outchar(LF); }
        !           221: 
        !           222: #define SYSOP (user_level>=sysop_level) /* Is current user sysop t/f macro      */
        !           223: 
        !           224: #define bgotoxy(x,y)   printf("\x1b[%d;%dH",y,x)   /* place the cursor at   */
        !           225:                                                                                                        /* location x,y via ANSI */
        !           226: 
        !           227: #define SAVELINE               { slatr[slcnt]=latr; \
        !           228:                                                        sprintf(slbuf[slcnt<SAVE_LINES ? slcnt++ : slcnt] \
        !           229:                                                        ,"%.*s",lbuflen,lbuf); \
        !           230:                                                        lbuflen=0; }
        !           231: #define RESTORELINE    { lbuflen=0; attr(slatr[--slcnt]); \
        !           232:                                                        bputs(slbuf[slcnt]); }
        !           233: 
        !           234: /************/
        !           235: /* Typedefs */
        !           236: /************/
        !           237: 
        !           238: typedef struct {                                               /* Node information kept in NODE.DAB */
        !           239:        uchar   status,                                         /* Current Status of Node */
        !           240:                        errors,                                         /* Number of Critical Errors */
        !           241:                        action;                                         /* Action User is doing on Node */
        !           242:        uint    useron,                                         /* User on Node */
        !           243:                        connection,                                     /* Connection rate of Node */
        !           244:                        misc,                                           /* Miscellaneous bits for node */
        !           245:                        aux;                                            /* Auxillary word for node */
        !           246:        ulong   extaux;                                         /* Extended aux dword for node */
        !           247:             } node_t;
        !           248: 
        !           249: #endif /* Don't add anything after this endif */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.