diff options
| author | 2024-04-25 21:24:10 +0100 | |
|---|---|---|
| committer | 2024-04-25 22:32:27 +0000 | |
| commit | 2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch) | |
| tree | 80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/CMD/COMP/COMPSM.ASM | |
| parent | Merge pull request #430 from jpbaltazar/typoptbr (diff) | |
| download | ms-dos-main.tar.gz ms-dos-main.tar.xz ms-dos-main.zip | |
Diffstat (limited to 'v4.0/src/CMD/COMP/COMPSM.ASM')
| -rw-r--r-- | v4.0/src/CMD/COMP/COMPSM.ASM | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/v4.0/src/CMD/COMP/COMPSM.ASM b/v4.0/src/CMD/COMP/COMPSM.ASM new file mode 100644 index 0000000..9bf26ab --- /dev/null +++ b/v4.0/src/CMD/COMP/COMPSM.ASM | |||
| @@ -0,0 +1,159 @@ | |||
| 1 | PAGE ,132 ; | ||
| 2 | TITLE COMPSM.SAL - COMP SYSTEM MESSAGES | ||
| 3 | ;****************** START OF SPECIFICATIONS ***************************** | ||
| 4 | ; MODULE NAME: COMPSM.SAL | ||
| 5 | ; | ||
| 6 | ; DESCRIPTIVE NAME: Include the DOS system MESSAGE HANDLER in the SEGMENT | ||
| 7 | ; configuration expected by the modules of COMP. | ||
| 8 | ; | ||
| 9 | ;FUNCTION: The common code of the DOS SYSTEM MESSAGE HANDLER is made a | ||
| 10 | ; part of the COMP module by using INCLUDE to bring in the | ||
| 11 | ; common portion, in SYSMSG.INC. This included code contains | ||
| 12 | ; the routines to initialize for message services, to find | ||
| 13 | ; where a particular message is, and to display a message. | ||
| 14 | ; | ||
| 15 | ; ENTRY POINT: SYSDISPMSG:near | ||
| 16 | ; SYSGETMSG:near | ||
| 17 | ; SYSLOADMSG:near | ||
| 18 | ; | ||
| 19 | ; INPUT: | ||
| 20 | ; AX = MESSAGE NUMBER | ||
| 21 | ; BX = HANDLE TO DISPLAY TO (-1 means use DOS functions 1-12) | ||
| 22 | ; SI = OFFSET IN ES: OF SUBLIST, OR 0 IF NONE | ||
| 23 | ; CX = NUMBER OF %PARMS, 0 IF NONE | ||
| 24 | ; DX = CLASS IN HIGH BYTE, INPUT FUNCTION IN LOW | ||
| 25 | ; CALL SYSDISPMSG ;DISPLAY THE MESSAGE | ||
| 26 | ; | ||
| 27 | ; If carry set, extended error already called: | ||
| 28 | ; AX = EXTENDED MESSAGE NUMBER | ||
| 29 | ; BH = ERROR CLASS | ||
| 30 | ; BL = SUGGESTED ACTION | ||
| 31 | ; CH = LOCUS | ||
| 32 | ; _ _ _ _ _ _ _ _ _ _ _ _ | ||
| 33 | ; | ||
| 34 | ; AX = MESSAGE NUMBER | ||
| 35 | ; DH = MESSAGE CLASS (1=DOS EXTENDED ERROR, 2=PARSE ERROR, -1=UTILITY MSG) | ||
| 36 | ; CALL SYSGETMSG ;FIND WHERE A MSG IS | ||
| 37 | ; | ||
| 38 | ; If carry set, error | ||
| 39 | ; CX = 0, MESSAGE NOT FOUND | ||
| 40 | ; If carry NOT set, ok, and resulting regs are: | ||
| 41 | ; CX = MESSAGE SIZE | ||
| 42 | ; DS:SI = MESSAGE TEXT | ||
| 43 | ; _ _ _ _ _ _ _ _ _ _ _ _ | ||
| 44 | ; | ||
| 45 | ; CALL SYSLOADMSG ;SET ADDRESSABILITY TO MSGS, CHECK DOS VERSION | ||
| 46 | ; If carry not set: | ||
| 47 | ; CX = SIZE OF MSGS LOADED | ||
| 48 | ; | ||
| 49 | ; If carry is set, regs preset up for SYSDISPMSG, as: | ||
| 50 | ; AX = ERROR CODE IF CARRY SET | ||
| 51 | ; AX = 1, INCORRECT DOS VERSION | ||
| 52 | ; DH =-1, (Utility msg) | ||
| 53 | ; OR, | ||
| 54 | ; AX = 1, Error loading messages | ||
| 55 | ; DH = 0, (Message manager error) | ||
| 56 | ; BX = STDERR | ||
| 57 | ; CX = NO_REPLACE | ||
| 58 | ; DL = NO_INPUT | ||
| 59 | ; | ||
| 60 | ; EXIT-NORMAL: CARRY is not set | ||
| 61 | ; | ||
| 62 | ; EXIT-ERROR: CARRY is set | ||
| 63 | ; Call Get Extended Error for reason code, for SYSDISPMSG and | ||
| 64 | ; SYSGETMSG. | ||
| 65 | ; | ||
| 66 | ; INTERNAL REFERENCES: | ||
| 67 | ; ROUTINES: (Generated by the MSG_SERVICES macro) | ||
| 68 | ; SYSLOADMSG | ||
| 69 | ; SYSDISPMSG | ||
| 70 | ; SYSGETMSG | ||
| 71 | ; | ||
| 72 | ; DATA AREAS: | ||
| 73 | ; INCLUDED "COMPMS.INC" - message defining control blocks | ||
| 74 | ; INCLUDED "MSGHAN.INC" - Define STRUCs for msg control blocks | ||
| 75 | ; INCLUDE SYSMSG.INC ;Permit System Message handler definition | ||
| 76 | ; | ||
| 77 | ; EXTERNAL REFERENCES: | ||
| 78 | ; ROUTINES: none | ||
| 79 | ; | ||
| 80 | ; DATA AREAS: control blocks pointed to by input registers. | ||
| 81 | ; | ||
| 82 | ; NOTES: | ||
| 83 | ; This module should be processed with the SALUT preprocessor | ||
| 84 | ; with the re-alignment not requested, as: | ||
| 85 | ; | ||
| 86 | ; SALUT COMPSM,nul,; | ||
| 87 | ; | ||
| 88 | ; To assemble these modules, the alphabetical or sequential | ||
| 89 | ; ordering of segments may be used. | ||
| 90 | ; | ||
| 91 | ; For LINK instructions, refer to the PROLOG of the main module, | ||
| 92 | ; COMP1.ASM. | ||
| 93 | ; | ||
| 94 | ; REVISION HISTORY: A000 Version 4.0 : add PARSER, System Message Handler, | ||
| 95 | ; Add compare of code page extended attribute, if present. | ||
| 96 | ; | ||
| 97 | ; COPYRIGHT: "The DOS COMP Utility" | ||
| 98 | ; "Version 4.0 (C)Copyright 1988 Micorsoft " | ||
| 99 | ; "Licensed Material - Property of Microsoft " | ||
| 100 | ; | ||
| 101 | ;PROGRAM AUTHOR: DOS 3.20 Dave L. | ||
| 102 | ; DOS 3.30 modifications by Russ W. | ||
| 103 | ; DOS 4.0 modifications by Edwin M. K., Bill L. | ||
| 104 | ;****************** END OF SPECIFICATIONS ***************************** | ||
| 105 | ; ;AN000; | ||
| 106 | IF1 ;AN000; | ||
| 107 | %OUT COMPONENT=COMP, MODULE=COMPSM.SAL... ;AN000; | ||
| 108 | ENDIF ;AN000; | ||
| 109 | ; = = = = = = = = = = = = ;AN000; | ||
| 110 | ; ;AN000; | ||
| 111 | HEADER MACRO TEXT ;AN000; | ||
| 112 | .XLIST ;AN000; | ||
| 113 | SUBTTL TEXT ;AN000; | ||
| 114 | .LIST ;AN000; | ||
| 115 | PAGE ;AN000; | ||
| 116 | ENDM ;AN000; | ||
| 117 | ; = = = = = = = = = = = = ;AN000; | ||
| 118 | INCLUDE SYSMSG.INC ;PERMIT SYSTEM MESSAGE HANDLER DEFINITION ;AN000; | ||
| 119 | MSG_UTILNAME <COMP> ;IDENTIFY THE UTILITY ;AN000; | ||
| 120 | ; = = = = = = = = = = = = ;AN000; | ||
| 121 | HEADER <DEFINITION OF MESSAGES> ;AN000; | ||
| 122 | ; $SALUT (4,12,18,36) ;AN000; | ||
| 123 | CSEG SEGMENT PARA PUBLIC 'CODE' ;AN000; | ||
| 124 | ASSUME CS:CSEG,DS:CSEG,ES:CSEG,SS:CSEG ;AN000; | ||
| 125 | ; ;AN000; | ||
| 126 | PUBLIC COPYRIGHT ;AN000; | ||
| 127 | COPYRIGHT DB "The DOS COMP Utility" ;AN000; | ||
| 128 | INCLUDE MSGHAN.INC ;DEFINE THE MESSAGE HANDLER CONTROL BLOCKS ;AN000; | ||
| 129 | INCLUDE COMPMS.INC ;DEFINE THE MESSAGES, AND CONTROL BLOCKS ;AN000; | ||
| 130 | MSG_SERVICES <MSGDATA> ;AN000; | ||
| 131 | ; = = = = = = = = = = = = ;AN000; | ||
| 132 | HEADER <SYSTEM MESSAGE HANDLER> ;AN000; | ||
| 133 | PUBLIC SYSLOADMSG ;AN000; | ||
| 134 | PUBLIC SYSDISPMSG ;AN000; | ||
| 135 | PUBLIC SYSGETMSG ;AN000; | ||
| 136 | ; ;AN000; | ||
| 137 | ; MSG_SERVICES <LOADmsg,GETmsg,DISPLAYmsg,CHARmsg,INPUTmsg,NUMmsg> ;AN000; | ||
| 138 | ;DEFAULT=CHECK DOS VERSION ;AN000; | ||
| 139 | ;DEFAULT=NEARmsg ;AN000; | ||
| 140 | ;DEFAULT=INPUTmsg ;AN000; | ||
| 141 | ;DEFAULT=NUMmsg ;AN000; | ||
| 142 | ;DEFAULT=NO TIMEmsg ;AN000; | ||
| 143 | ;DEFAULT=NO DATEmsg ;AN000; | ||
| 144 | .XLIST ;AN000; | ||
| 145 | .XCREF ;AN000; | ||
| 146 | MSG_SERVICES <LOADmsg> ;AN000; | ||
| 147 | MSG_SERVICES <GETmsg> ;AN000; | ||
| 148 | MSG_SERVICES <DISPLAYmsg,CHARmsg,INPUTmsg,NUMmsg> ;AN000; | ||
| 149 | .LIST ;AN000; | ||
| 150 | .CREF ;AN000; | ||
| 151 | ; ;AN000; | ||
| 152 | MSG_SERVICES <COMP.CLA,COMP.CL1,COMP.CL2> ;TEXTS OF MESSAGES ;AN000; | ||
| 153 | ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ;AN000; | ||
| 154 | CSEG ENDS ;AN000; | ||
| 155 | |||
| 156 | include msgdcl.inc | ||
| 157 | |||
| 158 | END ;AN000; | ||
| 159 | \ No newline at end of file | ||