diff options
Diffstat (limited to 'v4.0/src/CMD/ASSIGN/ASSGPARM.ASM')
| -rw-r--r-- | v4.0/src/CMD/ASSIGN/ASSGPARM.ASM | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/v4.0/src/CMD/ASSIGN/ASSGPARM.ASM b/v4.0/src/CMD/ASSIGN/ASSGPARM.ASM new file mode 100644 index 0000000..74067bf --- /dev/null +++ b/v4.0/src/CMD/ASSIGN/ASSGPARM.ASM | |||
| @@ -0,0 +1,141 @@ | |||
| 1 | |||
| 2 | PAGE ,132 ; | ||
| 3 | TITLE ASSPARM.SAL - ASSIGN SYSTEM COMMAND LINE PARSER | ||
| 4 | ;****************** START OF SPECIFICATIONS ***************************** | ||
| 5 | ; MODULE NAME: ASSGPARM.SAL | ||
| 6 | ; | ||
| 7 | ; DESCRIPTIVE NAME: Include the DOS system PARSER in the SEGMENT | ||
| 8 | ; configuration expected by the modules of ASSIGN. | ||
| 9 | ; | ||
| 10 | ;FUNCTION: The common code of the DOS command line PARSER is optimized by | ||
| 11 | ; the setting of certain switches that cause the conditional | ||
| 12 | ; assembly of only the required portions of the common PARSER. | ||
| 13 | ; The segment registers are ASSUMED according to the type .EXE. | ||
| 14 | ; | ||
| 15 | ; ENTRY POINT: SYSPARSE, near | ||
| 16 | ; | ||
| 17 | ; INPUT: | ||
| 18 | ; ES - has seg id of the SEGMENT | ||
| 19 | ; that contains the input control blocks, | ||
| 20 | ; defined below. | ||
| 21 | ; | ||
| 22 | ; DI - offset into ES of the PARMS INPUT BLOCK | ||
| 23 | ; | ||
| 24 | ; DS - has seg id of the SEGMENT | ||
| 25 | ; that contains the DOS input COMMAND | ||
| 26 | ; string, which is originally presented at 81h | ||
| 27 | ; in the PSP. | ||
| 28 | ; | ||
| 29 | ; SI - offset into DS of the text of the DOS input COMMAND string | ||
| 30 | ; as originally presented at 81H in the PSP. | ||
| 31 | ; | ||
| 32 | ; DX - zero | ||
| 33 | ; | ||
| 34 | ; CX - ordinal value, intially zero, updated on each subsequent call | ||
| 35 | ; to the value returned in CX on the previous call. | ||
| 36 | ; | ||
| 37 | ; CS - points to the segment containing the | ||
| 38 | ; INCLUDE PARSE.SAL statement | ||
| 39 | ; | ||
| 40 | ; DS - also points to the segment containing the INCLUDE | ||
| 41 | ; PARSE.SAL statement. | ||
| 42 | ; | ||
| 43 | ; EXIT-NORMAL: Output registers: | ||
| 44 | ; AX - return code: | ||
| 45 | ; RC_No_Error equ 0 ; No error | ||
| 46 | ; RC_EOL equ -1 ; End of command line | ||
| 47 | ; | ||
| 48 | ; DX - Offset into ES of the selected RESULT BLOCK. | ||
| 49 | ; BL - terminated delimiter code | ||
| 50 | ; CX - new operand ordinal | ||
| 51 | ; SI - set past scanned operand | ||
| 52 | ; | ||
| 53 | ; EXIT-ERROR: Output registers: | ||
| 54 | ; AX - return code: | ||
| 55 | ; RC_Too_Many equ 1 ; Too many operands | ||
| 56 | ; RC_Op_Missing equ 2 ; Required operand missing | ||
| 57 | ; RC_Not_In_SW equ 3 ; Not in switch list provided | ||
| 58 | ; RC_Not_In_Key equ 4 ; Not in keyword list provided | ||
| 59 | ; RC_Out_Of_Range equ 6 ; Out of range specified | ||
| 60 | ; RC_Not_In_Val equ 7 ; Not in value list provided | ||
| 61 | ; RC_Not_In_Str equ 8 ; Not in string list provided | ||
| 62 | ; RC_Syntax equ 9 ; Syntax error | ||
| 63 | ; | ||
| 64 | ; INTERNAL REFERENCES: | ||
| 65 | ; ROUTINES: SYSPARSE:near (INCLUDEd in PARSE.SAL) | ||
| 66 | ; | ||
| 67 | ; DATA AREAS: none | ||
| 68 | ; | ||
| 69 | ; EXTERNAL REFERENCES: | ||
| 70 | ; ROUTINES: none | ||
| 71 | ; | ||
| 72 | ; DATA AREAS: control blocks pointed to by input registers. | ||
| 73 | ; | ||
| 74 | ; NOTES: | ||
| 75 | ; This module should be processed with the ASMUT preprocessor | ||
| 76 | ; with the re-alignment not requested, as: | ||
| 77 | ; | ||
| 78 | ; SALUT ASSPARM,NUL; | ||
| 79 | ; | ||
| 80 | ; To assemble these modules, the sequential | ||
| 81 | ; ordering of segments may be used. | ||
| 82 | ; | ||
| 83 | ; For LINK instructions, refer to the PROLOG of the main module, | ||
| 84 | ; ASSIGN.SAL | ||
| 85 | ; | ||
| 86 | ; REVISION HISTORY: A000 Version 4.00: add PARSER, System Message Handler, | ||
| 87 | ; | ||
| 88 | ; COPYRIGHT: "Microsoft DOS ASSIGN Utility" | ||
| 89 | ; "Version 4.00 (C)Copyright 1988 Microsoft Corp" | ||
| 90 | ; "Licensed Material - Program Property of Microsoft " | ||
| 91 | ; | ||
| 92 | ;****************** END OF SPECIFICATIONS ***************************** | ||
| 93 | IF1 | ||
| 94 | %OUT COMPONENT=ASSIGN, MODULE=ASSPARM.SAL... | ||
| 95 | ENDIF | ||
| 96 | ; = = = = = = = = = = = = | ||
| 97 | HEADER <MACRO DEFINITION> | ||
| 98 | ; = = = = = = = = = = = = | ||
| 99 | |||
| 100 | HEADER MACRO TEXT | ||
| 101 | .XLIST | ||
| 102 | SUBTTL TEXT | ||
| 103 | .LIST | ||
| 104 | PAGE | ||
| 105 | ENDM | ||
| 106 | |||
| 107 | ; = = = = = = = = = = = = | ||
| 108 | HEADER <SYSPARSE - SYSTEM COMMAND LINE PARSER> ; ;AN000; | ||
| 109 | CODE SEGMENT PARA PUBLIC ; ;AN000; | ||
| 110 | ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE ; ;AN000; | ||
| 111 | |||
| 112 | PUBLIC SYSPARSE ;SUBROUTINE ENTRY POINT ;AN000; | ||
| 113 | |||
| 114 | CAPSW EQU 1 ;SUPPORT FILENAME TBL CAPS | ||
| 115 | FARSW EQU 0 ;PARSER CALL NEAR | ||
| 116 | FILESW EQU 0 ;CHECK FOR FILESPEC | ||
| 117 | DATESW EQU 0 ;SUPPRESS DATE CHECKING | ||
| 118 | TIMESW EQU 0 ;SUPPRESS TIME CHECKING | ||
| 119 | CMPXSW EQU 0 ;SUPPRESS CHECKING COMPLEX LIST | ||
| 120 | NUMSW EQU 0 ;SUPPRESS CHECKING NUMERIC VALUE | ||
| 121 | KEYSW EQU 0 ;SUPPRESS KEYWORD SUPPORT | ||
| 122 | VAL1SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 1 | ||
| 123 | VAL2SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 2 | ||
| 124 | VAL3SW EQU 1 ;SUPPORT OF VALUE DEFINITION 3 | ||
| 125 | DRVSW EQU 0 ;SUPPORT OF DRIVE ONLY FORMAT | ||
| 126 | QUSSW EQU 0 ;SUPPRESS SUPPORT OF QUOTED STRING FORMAT | ||
| 127 | |||
| 128 | IF1 ; ;AN000; | ||
| 129 | %OUT COMPONENT=ASSIGN, SUBCOMPONENT=PARSE, MODULE=PARSE.ASM... | ||
| 130 | %OUT COMPONENT=ASSIGN, SUBCOMPONENT=PARSE, MODULE=PSDATA.INC... | ||
| 131 | ENDIF ; ;AN000; | ||
| 132 | |||
| 133 | ;PARSE WORK AREA & EQUATES | ||
| 134 | |||
| 135 | .xlist | ||
| 136 | INCLUDE PARSE.ASM | ||
| 137 | .list | ||
| 138 | |||
| 139 | CODE ENDS | ||
| 140 | END | ||
| 141 | \ No newline at end of file | ||