Annotation of sbbs/sbbs2/cmdshell.h, revision 1.1.1.1

1.1       root        1: /* CMDSHELL.H */
                      2: 
                      3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
                      4: 
                      5: #include "gen_defs.h"
                      6: 
                      7: /******************************/
                      8: /* Instructions and Functions */
                      9: /******************************/
                     10: enum {
                     11: 
                     12: /* Single byte instructions */
                     13: 
                     14:         CS_IF_TRUE=0                   // Same as IF_EQUAL
                     15:        ,CS_IF_FALSE                    // Same as IF_NOT_EQUAL
                     16:        ,CS_ELSE
                     17:        ,CS_ENDIF
                     18:        ,CS_CMD_HOME
                     19:        ,CS_CMD_POP
                     20:        ,CS_END_CMD
                     21:        ,CS_RETURN
                     22:        ,CS_GETKEY
                     23:        ,CS_GETKEYE
                     24:        ,CS_UNGETKEY
                     25:        ,CS_UNGETSTR
                     26:        ,CS_PRINTKEY
                     27:        ,CS_PRINTSTR
                     28:        ,CS_HANGUP
                     29:        ,CS_SYNC
                     30:        ,CS_ASYNC
                     31:        ,CS_CHKSYSPASS
                     32:        ,CS_LOGKEY
                     33:        ,CS_LOGKEY_COMMA
                     34:        ,CS_LOGSTR
                     35:        ,CS_CLS
                     36:        ,CS_CRLF
                     37:        ,CS_PAUSE
                     38:        ,CS_PAUSE_RESET
                     39:        ,CS_GETLINES
                     40:        ,CS_GETFILESPEC
                     41:        ,CS_FINDUSER
                     42:        ,CS_CLEAR_ABORT
                     43:        ,CS_SELECT_SHELL
                     44:        ,CS_SET_SHELL
                     45:        ,CS_SELECT_EDITOR
                     46:        ,CS_SET_EDITOR                  // 0x20
                     47:        ,CS_INKEY
                     48:        ,CS_RIOSYNC
                     49:        ,CS_GETTIMELEFT
                     50:        ,CS_SAVELINE
                     51:        ,CS_RESTORELINE
                     52:        ,CS_IF_GREATER
                     53:        ,CS_IF_GREATER_OR_EQUAL
                     54:        ,CS_IF_LESS
                     55:        ,CS_IF_LESS_OR_EQUAL
                     56:        ,CS_DEFAULT                     // 0x2a
                     57:        ,CS_END_SWITCH
                     58:        ,CS_END_CASE
                     59:        ,CS_PUT_NODE
                     60:        ,CS_ONE_MORE_BYTE=0x2f
                     61: 
                     62: /* Two byte instructions */
                     63: 
                     64:        ,CS_CMDKEY=0x30
                     65:        ,CS_NODE_ACTION
                     66:        ,CS_GETSTR
                     67:        ,CS_GETNAME
                     68:        ,CS_GETSTRUPR
                     69:        ,CS_SHIFT_STR
                     70:        ,CS_COMPARE_KEY
                     71:        ,CS_SETLOGIC
                     72:        ,CS_SET_USER_LEVEL
                     73:        ,CS_SET_USER_STRING
                     74:        ,CS_GETLINE                     // 0x3a
                     75:        ,CS_NODE_STATUS
                     76:        ,CS_TWO_MORE_BYTES=0x3f
                     77: 
                     78: /* Three byte instructions */
                     79: 
                     80:        ,CS_GOTO=0x40
                     81:        ,CS_CALL
                     82:        ,CS_TOGGLE_NODE_MISC
                     83:        ,CS_ADJUST_USER_CREDITS
                     84:        ,CS_TOGGLE_USER_FLAG
                     85:        ,CS_GETNUM
                     86:        ,CS_COMPARE_NODE_MISC
                     87:        ,CS_MSWAIT
                     88:        ,CS_ADJUST_USER_MINUTES
                     89:        ,CS_REVERT_TEXT
                     90:        ,CS_THREE_MORE_BYTES=0x4f
                     91: 
                     92: /* String arg instructions */
                     93: 
                     94:        ,CS_MENU=0x50
                     95:        ,CS_PRINT
                     96:        ,CS_PRINT_LOCAL
                     97:        ,CS_PRINT_REMOTE
                     98:        ,CS_PRINTFILE
                     99:        ,CS_PRINTFILE_LOCAL
                    100:        ,CS_PRINTFILE_REMOTE
                    101:        ,CS_YES_NO
                    102:     ,CS_NO_YES
                    103:        ,CS_COMPARE_STR
                    104:        ,CS_COMPARE_WORD                // 0x5a
                    105:        ,CS_EXEC
                    106:        ,CS_EXEC_INT
                    107:        ,CS_EXEC_BIN
                    108:        ,CS_EXEC_XTRN
                    109:        ,CS_GETCMD
                    110:        ,CS_LOG                                 // 0x60
                    111:        ,CS_MNEMONICS
                    112:        ,CS_SETSTR
                    113:        ,CS_SET_MENU_DIR
                    114:        ,CS_SET_MENU_FILE
                    115:        ,CS_CMDSTR
                    116:        ,CS_CHKFILE
                    117:        ,CS_GET_TEMPLATE
                    118:        ,CS_TRASHCAN
                    119:        ,CS_CREATE_SIF
                    120:        ,CS_READ_SIF                    // 0x6a
                    121:        ,CS_CMDKEYS
                    122:        ,CS_COMPARE_KEYS
                    123:        ,CS_STR_FUNCTION=0x6f
                    124: 
                    125: /* Var length instructions */
                    126: 
                    127:        ,CS_COMPARE_ARS=0x70
                    128:        ,CS_TOGGLE_USER_MISC
                    129:        ,CS_COMPARE_USER_MISC
                    130:        ,CS_REPLACE_TEXT
                    131:        ,CS_TOGGLE_USER_CHAT
                    132:        ,CS_COMPARE_USER_CHAT
                    133:        ,CS_TOGGLE_USER_QWK
                    134:        ,CS_COMPARE_USER_QWK
                    135:        ,CS_SWITCH
                    136:        ,CS_CASE
                    137:        ,CS_USE_INT_VAR                 // 0x7a
                    138: 
                    139: /* File I/O Functions */
                    140: 
                    141:        ,CS_FIO_FUNCTION=0x7e
                    142: 
                    143: /* Variable instruction sub-ops */
                    144: 
                    145:        ,CS_VAR_INSTRUCTION=0x7f
                    146: 
                    147: /* Functions */
                    148: 
                    149:        ,CS_MAIL_READ=0x80
                    150:        ,CS_MAIL_READ_SENT
                    151:        ,CS_MAIL_READ_ALL
                    152:        ,CS_MAIL_SEND
                    153:        ,CS_MAIL_SEND_BULK
                    154:        ,CS_MAIL_SEND_FILE
                    155:        ,CS_MAIL_SEND_FEEDBACK
                    156:        ,CS_MAIL_SEND_NETMAIL
                    157:        ,CS_MAIL_SEND_NETFILE
                    158:        ,CS_LOGOFF
                    159:     ,CS_LOGOFF_FAST
                    160:        ,CS_AUTO_MESSAGE
                    161:        ,CS_MSG_SET_AREA
                    162:        ,CS_MSG_SELECT_AREA
                    163:        ,CS_MSG_SHOW_GROUPS
                    164:     ,CS_MSG_SHOW_SUBBOARDS
                    165:        ,CS_MSG_GROUP_UP                        // 0x90
                    166:     ,CS_MSG_GROUP_DOWN
                    167:     ,CS_MSG_SUBBOARD_UP
                    168:     ,CS_MSG_SUBBOARD_DOWN
                    169:        ,CS_MSG_GET_SUB_NUM
                    170:        ,CS_MSG_GET_GRP_NUM
                    171:        ,CS_MSG_READ
                    172:        ,CS_MSG_POST
                    173:        ,CS_MSG_QWK
                    174:        ,CS_MSG_PTRS_CFG
                    175:        ,CS_MSG_PTRS_REINIT
                    176:        ,CS_MSG_NEW_SCAN_CFG
                    177:        ,CS_MSG_NEW_SCAN
                    178:        ,CS_MSG_NEW_SCAN_ALL
                    179:        ,CS_MSG_CONT_SCAN
                    180:        ,CS_MSG_CONT_SCAN_ALL
                    181:        ,CS_MSG_BROWSE_SCAN             // 0xA0
                    182:        ,CS_MSG_BROWSE_SCAN_ALL
                    183:        ,CS_MSG_FIND_TEXT
                    184:        ,CS_MSG_FIND_TEXT_ALL
                    185:        ,CS_MSG_YOUR_SCAN_CFG
                    186:        ,CS_MSG_YOUR_SCAN
                    187:        ,CS_MSG_YOUR_SCAN_ALL
                    188:        ,CS_MSG_NEW_SCAN_SUB
                    189:        ,CS_MSG_SET_GROUP
                    190:        ,CS_MSG_UNUSED4
                    191:        ,CS_MSG_UNUSED3
                    192:        ,CS_MSG_UNUSED2
                    193:        ,CS_MSG_UNUSED1
                    194:        ,CS_FILE_SET_AREA
                    195:        ,CS_FILE_SELECT_AREA
                    196:        ,CS_FILE_SHOW_LIBRARIES
                    197:        ,CS_FILE_SHOW_DIRECTORIES       // 0xB0
                    198:        ,CS_FILE_LIBRARY_UP
                    199:        ,CS_FILE_LIBRARY_DOWN
                    200:        ,CS_FILE_DIRECTORY_UP
                    201:        ,CS_FILE_DIRECTORY_DOWN
                    202:        ,CS_FILE_GET_DIR_NUM
                    203:        ,CS_FILE_GET_LIB_NUM
                    204:        ,CS_FILE_LIST
                    205:        ,CS_FILE_LIST_EXTENDED
                    206:        ,CS_FILE_VIEW
                    207:        ,CS_FILE_UPLOAD
                    208:        ,CS_FILE_UPLOAD_USER
                    209:        ,CS_FILE_UPLOAD_SYSOP
                    210:        ,CS_FILE_DOWNLOAD
                    211:        ,CS_FILE_DOWNLOAD_USER
                    212:        ,CS_FILE_DOWNLOAD_BATCH
                    213:        ,CS_FILE_REMOVE                         //0xC0
                    214:        ,CS_FILE_BATCH_SECTION
                    215:        ,CS_FILE_TEMP_SECTION
                    216:        ,CS_FILE_NEW_SCAN_CFG
                    217:        ,CS_FILE_NEW_SCAN
                    218:        ,CS_FILE_NEW_SCAN_ALL
                    219:        ,CS_FILE_FIND_TEXT
                    220:        ,CS_FILE_FIND_TEXT_ALL
                    221:        ,CS_FILE_FIND_NAME
                    222:        ,CS_FILE_FIND_NAME_ALL
                    223:        ,CS_FILE_PTRS_CFG
                    224:        ,CS_FILE_BATCH_ADD
                    225:        ,CS_FILE_BATCH_CLEAR
                    226:        ,CS_FILE_SET_LIBRARY
                    227:        ,CS_FILE_SEND                           //Like file_get, but no password needed
                    228:        ,CS_FILE_BATCH_ADD_LIST
                    229:        ,CS_FILE_UNUSED1                        //0xD0
                    230:        ,CS_NODELIST_ALL
                    231:        ,CS_NODELIST_USERS
                    232:        ,CS_CHAT_SECTION
                    233:        ,CS_USER_DEFAULTS
                    234:        ,CS_USER_EDIT
                    235:        ,CS_TEXT_FILE_SECTION
                    236:        ,CS_INFO_SYSTEM
                    237:        ,CS_INFO_SUBBOARD
                    238:        ,CS_INFO_DIRECTORY
                    239:        ,CS_INFO_USER
                    240:        ,CS_INFO_VERSION
                    241:        ,CS_INFO_XFER_POLICY
                    242:        ,CS_XTRN_EXEC
                    243:        ,CS_XTRN_SECTION
                    244:        ,CS_USERLIST_SUB
                    245:        ,CS_USERLIST_DIR                        //0xE0
                    246:        ,CS_USERLIST_ALL
                    247:     ,CS_USERLIST_LOGONS
                    248:        ,CS_PAGE_SYSOP
                    249:     ,CS_PRIVATE_CHAT
                    250:     ,CS_PRIVATE_MESSAGE
                    251:        ,CS_MINUTE_BANK
                    252:        ,CS_GURU_LOG
                    253:        ,CS_ERROR_LOG
                    254:        ,CS_SYSTEM_LOG
                    255:        ,CS_SYSTEM_YLOG
                    256:        ,CS_SYSTEM_STATS
                    257:        ,CS_NODE_STATS
                    258:        ,CS_SHOW_MEM
                    259:        ,CS_CHANGE_USER
                    260:        ,CS_ANSI_CAPTURE
                    261:        ,CS_LIST_TEXT_FILE                      //0xF0
                    262:        ,CS_EDIT_TEXT_FILE
                    263:        ,CS_FILE_SET_ALT_PATH
                    264:        ,CS_FILE_RESORT_DIRECTORY
                    265:        ,CS_FILE_GET
                    266:        ,CS_FILE_PUT
                    267:        ,CS_FILE_UPLOAD_BULK
                    268:        ,CS_FILE_FIND_OLD
                    269:        ,CS_FILE_FIND_OPEN
                    270:        ,CS_FILE_FIND_OFFLINE
                    271:        ,CS_FILE_FIND_OLD_UPLOADS
                    272:        ,CS_INC_MAIN_CMDS
                    273:        ,CS_INC_FILE_CMDS
                    274:        ,CS_PRINTFILE_STR
                    275:        ,CS_PAGE_GURU                           //0xFE
                    276:        
                    277:        };
                    278: 
                    279:        /* Variable instructions (sub-op-code) */
                    280: 
                    281: enum {
                    282: 
                    283:         SHOW_VARS                                              // Show all variables
                    284:        ,PRINT_VAR                                              // Print a single variable
                    285:        ,VAR_PRINTF                                     // Print a formated line of text
                    286:        ,VAR_RESERVED_4
                    287:        ,VAR_RESERVED_3
                    288:        ,VAR_RESERVED_2
                    289:        ,VAR_RESERVED_1
                    290:        ,DEFINE_STR_VAR                                 // Define Local Variable
                    291:        ,DEFINE_INT_VAR
                    292:        ,VAR_RESERVED_A4
                    293:        ,VAR_RESERVED_A3
                    294:        ,VAR_RESERVED_A2
                    295:        ,VAR_RESERVED_A1
                    296:        ,DEFINE_GLOBAL_STR_VAR                  // Define Global Variable
                    297:        ,DEFINE_GLOBAL_INT_VAR
                    298:        ,VAR_RESERVED_B4
                    299:        ,VAR_RESERVED_B3        // 0x10
                    300:        ,VAR_RESERVED_B2
                    301:        ,VAR_RESERVED_B1
                    302:        ,SET_STR_VAR                                    // Set string variable
                    303:        ,SET_INT_VAR                                    // Set integer variable
                    304:        ,VAR_RESERVED_C4
                    305:        ,VAR_RESERVED_C3
                    306:        ,VAR_RESERVED_C2
                    307:        ,VAR_RESERVED_C1
                    308:        ,COMPARE_STR_VAR                                // Compare string variable (static)
                    309:        ,COMPARE_INT_VAR                                // Compare integer variable (static)
                    310:        ,STRNCMP_VAR                                    // Compare n chars of str var (static)
                    311:        ,STRSTR_VAR                                     // Sub-string compare of str var (static)
                    312:        ,VAR_RESERVED_D2
                    313:        ,VAR_RESERVED_D1
                    314:        ,COMPARE_VARS                                   // Compare two variables
                    315:        ,STRNCMP_VARS           // 0x20         // Compare n chars of str vars (dynamic)
                    316:        ,STRSTR_VARS                                    // Sub-string compare between two str vars
                    317:        ,VAR_RESERVED_E2
                    318:        ,VAR_RESERVED_E1
                    319:        ,COPY_VAR                                               // Copy from one variable to another
                    320:        ,VAR_RESERVED_F4
                    321:        ,VAR_RESERVED_F3
                    322:        ,VAR_RESERVED_F2
                    323:        ,VAR_RESERVED_F1
                    324:        ,SWAP_VARS                                              // Swap two variables
                    325:        ,VAR_RESERVED_G4
                    326:        ,VAR_RESERVED_G3
                    327:        ,VAR_RESERVED_G2
                    328:        ,VAR_RESERVED_G1
                    329:        ,CAT_STR_VAR                                    // Concatenate string variable (static)
                    330:     ,CAT_STR_VARS                   // Concatenate strint variable (dynamic)
                    331:        ,FORMAT_STR_VAR         // 0x30         // Format string variable
                    332:        ,TIME_STR                                               // Write formated date/time to string
                    333:        ,DATE_STR                                               // Write MM/DD/YY to string
                    334:        ,FORMAT_TIME_STR                                // Create custom date/time string
                    335:        ,SECOND_STR                                     // Create a string in format hh:mm:ss
                    336:        ,STRUPR_VAR                                     // Convert string to upper case
                    337:        ,STRLWR_VAR                                     // Convert string to lower case
                    338:        ,ADD_INT_VAR                                    // Add to int variable (static)
                    339:        ,ADD_INT_VARS                                   // Add to int variable (dynamic)
                    340:        ,VAR_RESERVED_I4
                    341:        ,VAR_RESERVED_I3
                    342:        ,VAR_RESERVED_I2
                    343:        ,VAR_RESERVED_I1
                    344:        ,SUB_INT_VAR                                    // Subtract from int variable (static)
                    345:        ,SUB_INT_VARS                                   // Subtract from int variable (dynamic)
                    346:        ,VAR_RESERVED_J4
                    347:        ,VAR_RESERVED_J3        // 0x40
                    348:        ,VAR_RESERVED_J2
                    349:        ,VAR_RESERVED_J1
                    350:        ,MUL_INT_VAR                                    // Multiply int variable (static)
                    351:        ,MUL_INT_VARS                                   // Multiply int variable (dynamic)
                    352:        ,VAR_RESERVED_K4
                    353:        ,VAR_RESERVED_K3
                    354:        ,VAR_RESERVED_K2
                    355:        ,VAR_RESERVED_K1
                    356:        ,DIV_INT_VAR                                    // Divide int variable (static)
                    357:        ,DIV_INT_VARS                                   // Divide int variable (dynamic)
                    358:        ,MOD_INT_VAR
                    359:        ,MOD_INT_VARS
                    360:        ,VAR_RESERVED_L2
                    361:        ,VAR_RESERVED_L1
                    362:        ,AND_INT_VAR                                    // Bit-wise AND int variable (static)
                    363:        ,AND_INT_VARS           // 0x50         // Bit-wise AND int variable (dynamic)
                    364:        ,VAR_RESERVED_M4
                    365:        ,VAR_RESERVED_M3
                    366:        ,VAR_RESERVED_M2
                    367:        ,VAR_RESERVED_M1
                    368:        ,OR_INT_VAR                                     // Bit-wise OR int variable (static)
                    369:        ,OR_INT_VARS                                    // Bit-wise OR int variable (dynamic)
                    370:        ,VAR_RESERVED_N4
                    371:        ,VAR_RESERVED_N3
                    372:        ,VAR_RESERVED_N2
                    373:        ,VAR_RESERVED_N1
                    374:        ,NOT_INT_VAR                                    // Bit-wise NOT int variable (static)
                    375:        ,NOT_INT_VARS                                   // Bit-wise NOT int variable (dynamic)
                    376:        ,VAR_RESERVED_O4
                    377:        ,VAR_RESERVED_O3
                    378:        ,VAR_RESERVED_O2
                    379:        ,VAR_RESERVED_O1        // 0x60
                    380:        ,XOR_INT_VAR                                    // XOR int variable (static)
                    381:        ,XOR_INT_VARS                                   // XOR int variable (dynamic)
                    382:        ,VAR_RESERVED_P4
                    383:        ,VAR_RESERVED_P3
                    384:        ,VAR_RESERVED_P2
                    385:        ,VAR_RESERVED_P1
                    386:        ,RANDOM_INT_VAR                                 // Set integer to random number
                    387:        ,TIME_INT_VAR                                   // Set integer to current time/date
                    388:        ,DATE_STR_TO_INT                                // Convert a date string to integer
                    389:        ,STRLEN_INT_VAR                                 // Set integer to length of str
                    390:        ,CRC16_TO_INT                                   // Get CRC-16 of str var
                    391:        ,CRC32_TO_INT                                   // Get CRC-32 of str var
                    392:        ,FLENGTH_TO_INT                                 // Put length of str var file into int
                    393:        ,CHARVAL_TO_INT                                 // Put character val of str var into int
                    394:        ,GETNUM_VAR                                     // Get number
                    395:        ,GETSTR_VAR             // 0x70         // Get string
                    396:        ,GETNAME_VAR                                    // Get string (upper/lower)
                    397:        ,GETSTRUPR_VAR                                  // Get string (upper)
                    398:        ,GETLINE_VAR                                    // Get string (input bar/line)
                    399:        ,SHIFT_STR_VAR                                  // Shift str in variable
                    400:        ,GETSTR_MODE                                    // Get string with various modes
                    401:        ,TRUNCSP_STR_VAR                                // Truncate space off end of str var
                    402:        ,CHKFILE_VAR
                    403:        ,PRINTFILE_VAR_MODE                     // Printfile str var with mode
                    404:        ,PRINTTAIL_VAR_MODE                     // Print tail-end of str var with mode
                    405:        ,CHKSUM_TO_INT                                  // Get CHKSUM of str var
                    406:        ,STRIP_CTRL_STR_VAR                     // Strip ctrl chars from str var
                    407:        ,SEND_FILE_VIA                                  // Send file (static) via protocol
                    408:        ,SEND_FILE_VIA_VAR                              // Send file (dynamic) via protocol
                    409:        ,FTIME_TO_INT                                   // Put time of str var file into int
                    410:        ,RECEIVE_FILE_VIA                               // Receive file (static) via protocol
                    411:        ,RECEIVE_FILE_VIA_VAR                   // Receive file (dynamic) via protocol
                    412:        };
                    413: 
                    414:                                                                        // More string arg functions
                    415: enum {
                    416:         CS_LOGIN                                               // Login/password prompt
                    417:        ,CS_LOAD_TEXT                                   // Load alternative TEXT.DAT
                    418:        };
                    419: 
                    420: enum {                                                         // More single byte instructions
                    421:         CS_ONLINE                                              // Online execution only
                    422:        ,CS_OFFLINE                                     // Offline execution allowed
                    423:        ,CS_NEWUSER                                     // New user procedure
                    424:        ,CS_LOGON                                               // Logon procedure
                    425:        ,CS_LOGOUT                                              // Logout procedure
                    426:        ,CS_EXIT                                                // Exit current module immediately
                    427:        };
                    428: 
                    429: enum {                                                         // More two byte instructions
                    430:         CS_USER_EVENT                                  // External user event
                    431:        };
                    432: 
                    433: enum {
                    434:         FIO_OPEN                                               // Open file (static filename)
                    435:        ,FIO_CLOSE                                              // Close file
                    436:        ,FIO_READ                                               // Read from file
                    437:        ,FIO_READ_VAR                                   // Read from file, variable # of bytes
                    438:        ,FIO_WRITE                                              // Write to file
                    439:        ,FIO_WRITE_VAR                                  // Write to file, variable # of bytes
                    440:        ,FIO_GET_LENGTH                                 // Get length
                    441:        ,FIO_EOF                                                // Set logic to TRUE if eof
                    442:        ,FIO_GET_POS                                    // Get current file position
                    443:        ,FIO_SEEK                                               // Seek within file
                    444:        ,FIO_SEEK_VAR                                   // Seek within file, variable offset
                    445:        ,FIO_LOCK                                               // Lock a region
                    446:        ,FIO_LOCK_VAR                                   // Lock a region, variable length
                    447:        ,FIO_UNLOCK                                     // Unlock a region
                    448:        ,FIO_UNLOCK_VAR                                 // Unlock a region, variable length
                    449:        ,FIO_SET_LENGTH                                 // Change size
                    450:        ,FIO_SET_LENGTH_VAR                     // Change size, variable length
                    451:        ,FIO_PRINTF                                     // Write formated string to file
                    452:        ,FIO_SET_ETX                                    // Set end-of-text character
                    453:        ,FIO_GET_TIME                                   // Gets the current date/time of file
                    454:        ,FIO_SET_TIME                                   // Sets the current date/time of file
                    455:        ,FIO_OPEN_VAR                                   // Open a file (dynamic filename)
                    456:        ,FIO_READ_LINE                                  // Read a single line from file
                    457:        ,FIO_FLUSH                                              // Flush buffered output to disk
                    458:        ,FIO_UNUSED8
                    459:        ,FIO_UNUSED7
                    460:        ,FIO_UNUSED6
                    461:        ,FIO_UNUSED5
                    462:        ,FIO_UNUSED4
                    463:        ,FIO_UNUSED3
                    464:        ,FIO_UNUSED2
                    465:        ,FIO_UNUSED1
                    466:        ,REMOVE_FILE                                    // Remove a file
                    467:        ,RENAME_FILE                                    // Rename a file
                    468:        ,COPY_FILE                                              // Copy a file to another file
                    469:        ,MOVE_FILE                                              // Move a file to another file
                    470:        ,GET_FILE_ATTRIB                                // Get file attributes
                    471:        ,SET_FILE_ATTRIB                                // Set file attributes
                    472:        ,MAKE_DIR                                               // Make directory
                    473:        ,CHANGE_DIR                                     // Change current directory
                    474:        ,REMOVE_DIR                                     // Remove directory
                    475:        ,OPEN_DIR                                               // Open a directory
                    476:        ,READ_DIR                                               // Read a directory entry
                    477:        ,REWIND_DIR                                     // Rewind an open directory
                    478:        ,CLOSE_DIR                                              // Close an open directory
                    479:        };
                    480: 
                    481: enum {
                    482:         USER_STRING_ALIAS
                    483:        ,USER_STRING_REALNAME
                    484:        ,USER_STRING_HANDLE
                    485:        ,USER_STRING_COMPUTER
                    486:        ,USER_STRING_NOTE
                    487:        ,USER_STRING_ADDRESS
                    488:        ,USER_STRING_LOCATION
                    489:        ,USER_STRING_ZIPCODE
                    490:        ,USER_STRING_PASSWORD
                    491:        ,USER_STRING_BIRTHDAY
                    492:        ,USER_STRING_PHONE
                    493:        ,USER_STRING_MODEM
                    494:        ,USER_STRING_COMMENT
                    495: 
                    496:        };
                    497: 
                    498: #define CS_ONE_BYTE    CS_IF_TRUE
                    499: #define CS_TWO_BYTE    CS_CMDKEY
                    500: #define CS_THREE_BYTE  CS_GOTO
                    501: #define CS_ASCIIZ              CS_MENU
                    502: #define CS_MISC                CS_COMPARE_ARS
                    503: #define CS_FUNCTIONS   CS_MAIL_READ
                    504: #define CS_ELSEORENDIF 0xff
                    505: #define CS_NEXTCASE    0xfe
                    506: 
                    507: #define CS_DIGIT               0xff
                    508: #define CS_EDIGIT              0xfe
                    509: 
                    510:                                                                        /* Bits for csi_t.misc */
                    511: #define CS_IN_SWITCH   (1L<<0)         /* Inside active switch statement */
                    512: #define CS_OFFLINE_EXEC (1L<<1)        /* Offline execution */
                    513: 
                    514: #define MAX_RETS       50      /* maximum nested call depth */
                    515: #define MAX_CMDRETS 50 /* maximum nested cmd depth */
                    516: #define MAX_STRVARS 26
                    517: #define MAX_INTVARS 26
                    518: #define MAX_STRLEN     81
                    519: #define MAX_FOPENS     10      /* maximum open files */
                    520: #define MAX_SYSVARS 16 /* maximum system variable saves */
                    521: 
                    522: #define LOGIC_LESS             -1
                    523: #define LOGIC_EQUAL    0
                    524: #define LOGIC_GREATER  1
                    525: #define LOGIC_TRUE             LOGIC_EQUAL
                    526: #define LOGIC_FALSE    LOGIC_LESS
                    527: 
                    528: typedef struct {                                       /* Command shell image */
                    529: 
                    530:        uchar   *cs,                                    /* Command shell image */
                    531:                        *ip,                                    /* Instruction pointer */
                    532:                        cmd,                                    /* Current command key */
                    533:                        etx,                                    /* End-of-text character */
                    534:                        *str,                                   /* Current string */
                    535:                        *ret[MAX_RETS],                 /* Return address stack */
                    536:                        rets,                                   /* Returns on stack */
                    537:                        *cmdret[MAX_CMDRETS],   /* Command return address stack */
                    538:                        cmdrets,                                /* Command returns on stack */
                    539:                        **str_var;                              /* String variables */
                    540: 
                    541: 
                    542:        int     logic,                                  /* Current logic */
                    543:                        files;                                  /* Open files */
                    544: 
                    545:        FILE    *file[MAX_FOPENS];              /* Each file ptr */
                    546: 
                    547:        uint    str_vars,                               /* Total number of string variables */
                    548:                        int_vars;                               /* Total number of integer variables */
                    549: 
                    550:        long    retval,                                 /* Return value */
                    551:                        misc,                                   /* Misc bits */
                    552:                        switch_val,                     /* Current switch value */
                    553:                        *int_var,                               /* Integer variables */
                    554:                        *str_var_name,                  /* String variable names (CRC-32) */
                    555:                        *int_var_name;                  /* Integer variable names (CRC-32) */
                    556: 
                    557:        ulong   length;                                 /* Length of image */
                    558: 
                    559:        } csi_t;
                    560: 
                    561: extern uint global_str_vars;
                    562: extern char **global_str_var;
                    563: extern long *global_str_var_name;
                    564: extern uint global_int_vars;
                    565: extern long *global_int_var;
                    566: extern long *global_int_var_name;
                    567: extern csi_t main_csi;
                    568: extern char *sysvar_p[MAX_SYSVARS];
                    569: extern int sysvar_pi;
                    570: extern long sysvar_l[MAX_SYSVARS];
                    571: extern int sysvar_li;
                    572: 
                    573: int exec(csi_t *csi);
                    574: int exec_function(csi_t *csi);
                    575: int exec_misc(csi_t *csi, uchar *path);
                    576: int execmsg(csi_t *csi);
                    577: int execfile(csi_t *csi);
                    578: long exec_bin(uchar *mod, csi_t *csi);
                    579: void clearvars(csi_t *bin);
                    580: void freevars(csi_t *bin);
                    581: char **getstrvar(csi_t *bin, long name);
                    582: long *getintvar(csi_t *bin, long name);
                    583: char *copystrvar(csi_t *csi, char *p, char *str);
                    584: void skipto(csi_t *csi, uchar inst);
                    585: 
                    586: /* End of CMDSHELL.H */

unix.superglobalmegacorp.com

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