diff options
Diffstat (limited to 'v4.0/src/INC/MSGHAN.INC')
| -rw-r--r-- | v4.0/src/INC/MSGHAN.INC | 153 |
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 | ||
| 8 | ONE_SUBS EQU 1 ;AN000;ONE VARIABLE FIELD IN MESSAGE | ||
| 9 | TWO_SUBS EQU 2 ;AN000;TWO VARIABLE FIELDS IN MESSAGE | ||
| 10 | THREE_SUBS EQU 3 ;AN000;THREE VARIABLE FIELDS IN MESSAGE | ||
| 11 | CLASS_1 EQU EXT_ERR_CLASS ;AN000;CLASS 1 (DOS EXTENDED ERRORS) | ||
| 12 | CLASS_2 EQU PARSE_ERR_CLASS ;AN000;CLASS 2 (PARSE ERRORS) | ||
| 13 | CLASS_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 | |||
| 19 | MSG_DESC STRUC ;AN000; | ||
| 20 | MSG_NUM DW 0 ;AN000;MESSAGE NUMBER (TO AX) | ||
| 21 | MSG_HANDLE DW STDOUT ;AN000;HANDLE OF OUTPUT DEVICE (TO BX) | ||
| 22 | MSG_SUBLIST DW 0 ;AN000;POINTER TO SUBLIST (TO SI) | ||
| 23 | MSG_COUNT DW 0 ;AN000;SUBSTITUTION COUNT (TO CX) | ||
| 24 | MSG_CLASS DW CLASS_A SHL 8 ;AN000;MESSAGE CLASS (IN HIGH BYTE, TO DH) | ||
| 25 | ; LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL) | ||
| 26 | MSG_DESC ENDS ;AN000; | ||
| 27 | |||
| 28 | ; VALUES FOR THE SUBLIST CONTROL BLOCK | ||
| 29 | PC_ID_0 EQU 0 ;AN000;ID OF " - " TRAILER TO MESSAGE | ||
| 30 | PC_ID_1 EQU 1 ;AN000;ID OF PERCENT VARIABLE FIELD | ||
| 31 | PC_ID_2 EQU 2 ;AN000;ID OF PERCENT VARIABLE FIELD | ||
| 32 | PC_ID_3 EQU 3 ;AN000;ID OF PERCENT VARIABLE FIELD | ||
| 33 | MAX_0 EQU 0 ;AN000;MAXIMUM WIDTH OF STRING FIELD (0=NO LIMIT) | ||
| 34 | MIN_1 EQU 1 ;AN000;MINIMUM WIDTH OF STRING FIELD | ||
| 35 | PAD_BLK EQU " " ;AN000;CHAR FOR PAD FIELD | ||
| 36 | FILL_OFF EQU 0 ;AN000;TO BE REPLACED WITH ACTUAL OFFSET | ||
| 37 | FILL_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 | |||
| 47 | SUBLIST STRUC ;AN000; | ||
| 48 | SUB_SIZE DB 11 ;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST) | ||
| 49 | SUB_RES DB 0 ;AN000;RESERVED | ||
| 50 | ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD | ||
| 51 | SUB_VALUE DW 0 ;AN000;TIME, DATE, OR PTR TO DATA ITEM | ||
| 52 | SUB_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) | ||
| 55 | SUB_ID DB 0 ;AN000;N OF %N | ||
| 56 | SUB_FLAGS DB 0 ;AN000;DATA TYPE FLAGS | ||
| 57 | SUB_MAX_WIDTH DB MAX_0 ;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED) | ||
| 58 | SUB_MIN_WIDTH DB 0 ;AN000;MINIMUM FIELD WIDTH | ||
| 59 | SUB_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. | ||
| 63 | SUBLIST 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 | ||
| 71 | SF_BITS RECORD F_ALIGN:1,F_RES:1=0,F_SIZE:2,F_TYPE:4;AN000; | ||
| 72 | |||
| 73 | ; F_ALIGN FIELD, ALIGNMENT INDICATOR | ||
| 74 | SF_LEFT EQU 0 ;AN000;LEFT ALIGN | ||
| 75 | SF_RIGHT EQU 1 ;AN000;RIGHT ALIGN | ||
| 76 | |||
| 77 | ; F_RES FIELD, RESERVED, SHOULD BE ZERO | ||
| 78 | |||
| 79 | ; F_TYPE FIELD, FIELD TYPE | ||
| 80 | SF_CHAR EQU 0000B ;AN000;TYPE IS CHARACTER | ||
| 81 | ; F_SIZE FIELD, | ||
| 82 | SF_CH EQU 00B ;AN000;SINGLE CHARACTER | ||
| 83 | SF_ASCIIZ EQU 01B ;AN000;ASCIIZ STRING | ||
| 84 | |||
| 85 | ; F_TYPE FIELD, FIELD TYPE | ||
| 86 | SF_UN_BD EQU 0001B ;AN000;UNSIGNED BINARY TO DECIMAL CHARACTER | ||
| 87 | ; F_SIZE FIELD, | ||
| 88 | SF_BYTE EQU 01B ;AN000;DATA IS BYTE SIZED | ||
| 89 | SF_WORD EQU 10B ;AN000;DATA IS WORD SIZED | ||
| 90 | SF_DWORD EQU 11B ;AN000;DATA IS DOUBLE WORD SIZED | ||
| 91 | |||
| 92 | ; F_TYPE FIELD, FIELD TYPE | ||
| 93 | SF_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 | ||
| 100 | SF_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 | ||
| 107 | SF_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, | ||
| 112 | SF_MD EQU 01B ;AN000;MONTH AND DAY ONLY | ||
| 113 | SF_MDY2 EQU 10B ;AN000;MONTH,DAY AND YEAR (2 DIGITS) | ||
| 114 | SF_MDY4 EQU 11B ;AN000;MONTH,DAY AND YEAR (4 DIGITS) | ||
| 115 | |||
| 116 | ; F_TYPE FIELD, FIELD TYPE | ||
| 117 | SF_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, | ||
| 122 | SF_HHMM EQU 00B ;AN000;HH:MM (ACTIVE TIME FORMAT) | ||
| 123 | SF_HHMMSS EQU 01B ;AN000;HH:MM:SS (ACTIVE TIME FORMAT) | ||
| 124 | SF_HHMMSSHH EQU 10B ;AN000;HH:MM:SS:HH | ||
| 125 | |||
| 126 | ; F_TYPE FIELD, FIELD TYPE | ||
| 127 | SF_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; | ||
| 139 | MSGNUM_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 | ||
| 145 | MSGNUM_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; | ||
| 152 | MSGNUM_VER MSG_DESC <1,STDERR> ;AN000;"Incorrect DOS Version" | ||
| 153 | ;end of MSGHAN.INC | ||