diff options
Diffstat (limited to 'v4.0/src/CMD/DISKCOMP/DCOMPP.ASM')
| -rw-r--r-- | v4.0/src/CMD/DISKCOMP/DCOMPP.ASM | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/v4.0/src/CMD/DISKCOMP/DCOMPP.ASM b/v4.0/src/CMD/DISKCOMP/DCOMPP.ASM new file mode 100644 index 0000000..369434b --- /dev/null +++ b/v4.0/src/CMD/DISKCOMP/DCOMPP.ASM | |||
| @@ -0,0 +1,123 @@ | |||
| 1 | PAGE 90,132 ;AN000;A2 | ||
| 2 | TITLE DCOMPP.SAL - DISKCOMP SYSTEM COMMAND LINE PARSER | ||
| 3 | ;****************** START OF SPECIFICATIONS ***************************** | ||
| 4 | ; MODULE NAME: DCOMPP.SAL | ||
| 5 | ; | ||
| 6 | ; DESCRIPTIVE NAME: Include the DOS system PARSER in the SEGMENT | ||
| 7 | ; configuration expected by the modules of DISKCOMP. | ||
| 8 | ; | ||
| 9 | ;FUNCTION: The common code of the DOS command line PARSER is optimized by | ||
| 10 | ; the setting of certain switches that cause the conditional | ||
| 11 | ; assembly of only the required portions of the common PARSER. | ||
| 12 | ; The segment registers are ASSUMED according to the type .COM. | ||
| 13 | ; The Common PARSER is then INCLUDEd. | ||
| 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.ASM statement | ||
| 39 | ; | ||
| 40 | ; DS - also points to the segment containing the INCLUDE | ||
| 41 | ; PARSE.ASM 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.ASM) | ||
| 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 SALUT preprocessor | ||
| 76 | ; with the re-alignment not requested, as: | ||
| 77 | ; | ||
| 78 | ; SALUT DCOMPP,NUL,; | ||
| 79 | ; | ||
| 80 | ; To assemble these modules, the alphabetical or sequential | ||
| 81 | ; ordering of segments may be used. | ||
| 82 | ; | ||
| 83 | ; For LINK instructions, refer to the PROLOG of the main module, | ||
| 84 | ; DISKCOMP.SAL. | ||
| 85 | ; | ||
| 86 | ;****************** END OF SPECIFICATIONS ***************************** | ||
| 87 | IF1 ;AN000; | ||
| 88 | %OUT COMPONENT=DISKCOMP, MODULE=DCOMPP.SAL... ;AN000; | ||
| 89 | ENDIF ;AN000; | ||
| 90 | ; = = = = = = = = = = = = | ||
| 91 | INCLUDE PATHMAC.INC ;AN013; | ||
| 92 | CSEG SEGMENT PARA PUBLIC 'CODE' ;AN000; | ||
| 93 | ASSUME CS:CSEG,DS:CSEG,ES:CSEG,SS:CSEG ;AN000; | ||
| 94 | |||
| 95 | PUBLIC SYSPARSE ;AN000;SUBROUTINE ENTRY POINT | ||
| 96 | |||
| 97 | INCSW EQU 0 ;AC013;DO NOT INCLUDE PSDATA.INC | ||
| 98 | FARSW EQU 0 ;AN000;CALL THE PARSER BY NEAR CALL | ||
| 99 | DATESW EQU 0 ;AN000;SUPPRESS DATE CHECKING | ||
| 100 | TIMESW EQU 0 ;AN000;SUPPRESS TIME CHECKING | ||
| 101 | FILESW EQU 0 ;AN000;SUPPRESS CHECK FILE SPECIFICATION | ||
| 102 | CAPSW EQU 0 ;AN000;SUPPRESS FILE TABLE CAPS | ||
| 103 | CMPXSW EQU 0 ;AN000;SUPPRESS CHECKING COMPLEX LIST | ||
| 104 | DRVSW EQU 1 ;AN000;DO SUPPORT DRIVE ONLY FORMAT | ||
| 105 | QUSSW EQU 0 ;AN000;SUPPRESS SUPPORT OF QUOTED STRING FORMAT | ||
| 106 | NUMSW EQU 0 ;AN000;SUPPRESS CHECKING NUMERIC VALUE | ||
| 107 | KEYSW EQU 0 ;AN000;SUPPRESS KEYWORD SUPPORT | ||
| 108 | SWSW EQU 1 ;AN000;DO SUPPORT SWITCHES | ||
| 109 | VAL1SW EQU 0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 1 | ||
| 110 | VAL2SW EQU 0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 2 | ||
| 111 | VAL3SW EQU 0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 3 | ||
| 112 | BASESW EQU 1 ;AN012;SPECIFY, PSDATA POINTED TO BY "DS" | ||
| 113 | INCLUDE PSDATA.INC ;AN013;PARSER DATA AREA | ||
| 114 | PATHLABL DCOMPP ;AN013; | ||
| 115 | ;.XLIST ;AN000; | ||
| 116 | ;.XCREF ;AN000; | ||
| 117 | INCLUDE PARSE.ASM ;AN000; | ||
| 118 | .LIST ;AN000; | ||
| 119 | .CREF ;AN000; | ||
| 120 | PATHLABL DCOMPP ;AN013; | ||
| 121 | CSEG ENDS ;AN000; | ||
| 122 | END ;AN000; | ||
| 123 | \ No newline at end of file | ||