summaryrefslogtreecommitdiff
path: root/v4.0/src/INC/MSGHAN.INC
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/INC/MSGHAN.INC')
-rw-r--r--v4.0/src/INC/MSGHAN.INC153
1 files changed, 153 insertions, 0 deletions
diff --git a/v4.0/src/INC/MSGHAN.INC b/v4.0/src/INC/MSGHAN.INC
new file mode 100644
index 0000000..1046317
--- /dev/null
+++ b/v4.0/src/INC/MSGHAN.INC
@@ -0,0 +1,153 @@
1 IF1 ;AN000;
2 %OUT INCLUDING MSGHAN.INC...;AN000;
3 ENDIF ;AN000;
4;THIS IS A COMMONLY INCLUDED FILE, USED BY (AT LEAST) THE FOLLOWING COMPONENTS:
5;TREE, GRAFTABL, DISKCOMP, DISKCOPY, COMP - WRITTEN OR Revised BY E.K.
6
7; VALUES FOR THE MSG_DESC CONTROL BLOCK
8ONE_SUBS EQU 1 ;AN000;ONE VARIABLE FIELD IN MESSAGE
9TWO_SUBS EQU 2 ;AN000;TWO VARIABLE FIELDS IN MESSAGE
10THREE_SUBS EQU 3 ;AN000;THREE VARIABLE FIELDS IN MESSAGE
11CLASS_1 EQU EXT_ERR_CLASS ;AN000;CLASS 1 (DOS EXTENDED ERRORS)
12CLASS_2 EQU PARSE_ERR_CLASS ;AN000;CLASS 2 (PARSE ERRORS)
13CLASS_A EQU UTILITY_MSG_CLASS ;AN000;CLASS A TYPE MESSAGE
14
15;THIS MESSAGE DESCRIPTOR CONTROL BLOCK IS GENERATED, ONE PER MESSAGE,
16;TO DEFINE THE SEVERAL PARAMETERS THAT ARE EXPECTED TO BE PASSED IN
17;CERTAIN REGISTERS WHEN THE SYSDISPMSG FUNCTION IS TO BE INVOKED.
18
19MSG_DESC STRUC ;AN000;
20MSG_NUM DW 0 ;AN000;MESSAGE NUMBER (TO AX)
21MSG_HANDLE DW STDOUT ;AN000;HANDLE OF OUTPUT DEVICE (TO BX)
22MSG_SUBLIST DW 0 ;AN000;POINTER TO SUBLIST (TO SI)
23MSG_COUNT DW 0 ;AN000;SUBSTITUTION COUNT (TO CX)
24MSG_CLASS DW CLASS_A SHL 8 ;AN000;MESSAGE CLASS (IN HIGH BYTE, TO DH)
25 ; LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL)
26MSG_DESC ENDS ;AN000;
27
28; VALUES FOR THE SUBLIST CONTROL BLOCK
29PC_ID_0 EQU 0 ;AN000;ID OF " - " TRAILER TO MESSAGE
30PC_ID_1 EQU 1 ;AN000;ID OF PERCENT VARIABLE FIELD
31PC_ID_2 EQU 2 ;AN000;ID OF PERCENT VARIABLE FIELD
32PC_ID_3 EQU 3 ;AN000;ID OF PERCENT VARIABLE FIELD
33MAX_0 EQU 0 ;AN000;MAXIMUM WIDTH OF STRING FIELD (0=NO LIMIT)
34MIN_1 EQU 1 ;AN000;MINIMUM WIDTH OF STRING FIELD
35PAD_BLK EQU " " ;AN000;CHAR FOR PAD FIELD
36FILL_OFF EQU 0 ;AN000;TO BE REPLACED WITH ACTUAL OFFSET
37FILL_SEG EQU 0 ;AN000;TO BE REPLACED WITH ACTUAL SEG ID
38
39;THIS SUBLIST CONTROL BLOCK, POINTED TO BY SI WHEN SYSDISPMSG IS CALLED
40;FURTHER DESCRIBES THE MESSAGE AND THE VARIABLE FIELDS THE MSG MAY CONTAIN.
41;THERE IS ONE OF THESE CONTROL BLOCKS PER VARIABLE FIELD. ADDITIONAL
42;VARIABLE FIELDS ARE DEFINED IN ADDITIONAL "SUBLIST" CONTROL BLOCKS,
43;CONSECUTIVE AND CONTIGUOUS WITH THIS ONE. THE NUMBER OF THESE CONTROL
44;BLOCKS IS THE SUBSTITUTION COUNT, PASSED IN CS TO SYSDISPMSG, AS DEFINED
45;IN THE ABOVE "MSC_DESC" CONTROL BLOCK.
46
47SUBLIST STRUC ;AN000;
48SUB_SIZE DB 11 ;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST)
49SUB_RES DB 0 ;AN000;RESERVED
50 ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD
51SUB_VALUE DW 0 ;AN000;TIME, DATE, OR PTR TO DATA ITEM
52SUB_VALUE_SEG DW 0 ;AN000;SEG ID OF PTR
53 ;(ABOVE FIELD MUST BE FILLED AT EXECUTION TIME
54 ; IF THIS IS A .COM FILE)
55SUB_ID DB 0 ;AN000;N OF %N
56SUB_FLAGS DB 0 ;AN000;DATA TYPE FLAGS
57SUB_MAX_WIDTH DB MAX_0 ;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED)
58SUB_MIN_WIDTH DB 0 ;AN000;MINIMUM FIELD WIDTH
59SUB_PAD_CHAR DB PAD_BLK ;AN000;CHARACTER FOR PAD FIELD
60 ; CAN BE " ", "0" OR ",".
61 ; "," CAUSES INSERTION OF THE ACTIVE
62 ; THOUSANDS SEPARATOR BETWEEN EVERY 3 DIGITS.
63SUBLIST ENDS ;AN000;
64
65; BITS DEFINED FOR SUB_FLAGS ABOVE
66; FORMAT = A0SSTTTT
67; ³³ ³ ÀÄÄÄ FIELD TYPE
68; ³³ ÀÄÄÄ DATA VARIABLE SIZE
69; ³ÀÄÄÄ RESERVED, MUST BE ZERO
70; ÀÄÄÄ ALIGNMENT INDICATOR
71SF_BITS RECORD F_ALIGN:1,F_RES:1=0,F_SIZE:2,F_TYPE:4;AN000;
72
73; F_ALIGN FIELD, ALIGNMENT INDICATOR
74SF_LEFT EQU 0 ;AN000;LEFT ALIGN
75SF_RIGHT EQU 1 ;AN000;RIGHT ALIGN
76
77; F_RES FIELD, RESERVED, SHOULD BE ZERO
78
79; F_TYPE FIELD, FIELD TYPE
80SF_CHAR EQU 0000B ;AN000;TYPE IS CHARACTER
81; F_SIZE FIELD,
82SF_CH EQU 00B ;AN000;SINGLE CHARACTER
83SF_ASCIIZ EQU 01B ;AN000;ASCIIZ STRING
84
85; F_TYPE FIELD, FIELD TYPE
86SF_UN_BD EQU 0001B ;AN000;UNSIGNED BINARY TO DECIMAL CHARACTER
87; F_SIZE FIELD,
88SF_BYTE EQU 01B ;AN000;DATA IS BYTE SIZED
89SF_WORD EQU 10B ;AN000;DATA IS WORD SIZED
90SF_DWORD EQU 11B ;AN000;DATA IS DOUBLE WORD SIZED
91
92; F_TYPE FIELD, FIELD TYPE
93SF_SIN_BD EQU 0010B ;AN000;SIGNED BINARY TO DECIMAL CHARACTER
94; F_SIZE FIELD,
95;SF_BYTE EQU 01B ;DATA IS BYTE SIZED
96;SF_WORD EQU 10B ;DATA IS WORD SIZED
97;SF_DWORD EQU 11B ;DATA IS DOUBLE WORD SIZED
98
99; F_TYPE FIELD, FIELD TYPE
100SF_UN_BH EQU 0011B ;AN000;UNSIGNED BINARY TO HEXADECIMAL CHARACTER
101; F_SIZE FIELD,
102;SF_BYTE EQU 01B ;DATA IS BYTE SIZED
103;SF_WORD EQU 10B ;DATA IS WORD SIZED
104;SF_DWORD EQU 11B ;DATA IS DOUBLE WORD SIZED
105
106; F_TYPE FIELD, FIELD TYPE
107SF_DATE EQU 0100B ;AN000;DATE TO CHARACTER,
108 ; USING CURRENT COUNTRY FORMAT
109 ;SUB_VALUE HIGH=YEAR
110 ;SUB_VALUE LOW=MMDD
111; F_SIZE FIELD,
112SF_MD EQU 01B ;AN000;MONTH AND DAY ONLY
113SF_MDY2 EQU 10B ;AN000;MONTH,DAY AND YEAR (2 DIGITS)
114SF_MDY4 EQU 11B ;AN000;MONTH,DAY AND YEAR (4 DIGITS)
115
116; F_TYPE FIELD, FIELD TYPE
117SF_TIME_12 EQU 0101B ;AN000;TIME TO CHARACTER, 12 HOUR FORMAT
118 ; USING CURRENT COUNTRY FORMAT
119 ;SUB_VALUE HIGH=HHMM
120 ;SUB_VALUE LOW=SSHH
121; F_SIZE FIELD,
122SF_HHMM EQU 00B ;AN000;HH:MM (ACTIVE TIME FORMAT)
123SF_HHMMSS EQU 01B ;AN000;HH:MM:SS (ACTIVE TIME FORMAT)
124SF_HHMMSSHH EQU 10B ;AN000;HH:MM:SS:HH
125
126; F_TYPE FIELD, FIELD TYPE
127SF_TIME_24 EQU 0110B ;AN000;TIME TO CHARACTER, 24 HOUR FORMAT
128 ; USING CURRENT COUNTRY FORMAT
129 ;SUB_VALUE HIGH=HHMM
130 ;SUB_VALUE LOW=SSHH
131; F_SIZE FIELD,
132;SF_HHMM EQU 00B ;HH:MM (ACTIVE TIME FORMAT)
133;SF_HHMMSS EQU 01B ;HH:MM:SS (ACTIVE TIME FORMAT)
134;SF_HHMMSSHH EQU 10B ;HH:MM:SS:HH
135
136; THE NEXT GROUP ARE ALL CLASS "1" MESSAGES
137
138 PUBLIC MSGNUM_EXTERR;AN000;
139MSGNUM_EXTERR MSG_DESC <,STDERR,,,CLASS_1 SHL 8> ;AN000;ALL EXTENDED DOS ERRORS
140 ;ERROR NUMBER WILL NEED TO BE FILLED IN
141
142; THE NEXT GROUP ARE ALL CLASS "2" MESSAGES
143
144 PUBLIC MSGNUM_PARSE ;AN000;SO PARSE DRIVER CAN FIND IT
145MSGNUM_PARSE MSG_DESC <,STDERR,,,CLASS_2 SHL 8> ;AN000;ALL PARSING ERRORS
146 ;ERROR NUMBER WILL NEED TO BE FILLED IN
147
148; THE NEXT GROUP ARE ALL CLASS "A" MESSAGES
149; THESE ARE THE "CANNED" MESSAGES ALWAYS PRESENT
150
151 PUBLIC MSGNUM_VER ;AN000;
152MSGNUM_VER MSG_DESC <1,STDERR> ;AN000;"Incorrect DOS Version"
153;end of MSGHAN.INC