summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/MODE/MODECPRO.INC
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/CMD/MODE/MODECPRO.INC')
-rw-r--r--v4.0/src/CMD/MODE/MODECPRO.INC88
1 files changed, 88 insertions, 0 deletions
diff --git a/v4.0/src/CMD/MODE/MODECPRO.INC b/v4.0/src/CMD/MODE/MODECPRO.INC
new file mode 100644
index 0000000..3b87113
--- /dev/null
+++ b/v4.0/src/CMD/MODE/MODECPRO.INC
@@ -0,0 +1,88 @@
1; MODECPRO.INC - INCLUDED BY MODECP.SAL 
2;****************** START OF SPECIFICATIONS *****************************
3; MODULE NAME: MODECP
4
5; DESCRIPTIVE NAME: MODE, CODEPAGE HANDLER
6
7;FUNCTION: Manages the codepage file, sending it to the
8; device when a DESIGNATE is requested, telling
9; the device which FONT to select when ACTIVATE
10; is requested, and displaying the font status
11; of the device when QUERY is requested.
12
13; NOTES:
14; This module should be processed with the SALUT pre-processor
15; with re-allignment not requested, as:
16
17; SALUT MODECP,NUL,;
18
19
20; ENTRY POINT: MODECP
21; LINKAGE: CALL MODECP
22
23; INPUT: As defined by the "CODEPAGE_PARMS" STRUC.
24; All four segregs are expected to point to the one common
25; segment, called PRINTF_CODE.
26
27; EXIT-NORMAL: ERRORLEVEL 0 - Successful completion
28
29; EXIT-ERROR: ERRORLEVEL 1 - An error message is also displayed
30
31; EFFECTS:
32
33; INTERNAL REFERENCES:
34; ROUTINES:
35; MODECP - HANDLES ALL PROCESSING FOR THE CODEPAGE SUPPORT IN MODE
36; SET_DEV_TYPE - SCANS LIST OF DEVICES FOR SPECIFIED DEVICE
37; SET_GLOBAL_CODEPAGE - DEVICE IS "*", INVOKE OR QUERY GLOBAL CODEPAGE
38; FUNCTION_SELECT - DETERMINES FUNCTION TO BE PERFORMED, DESIGNATE,QUERY,INVOKE
39; DO_DESIGNATE - PERFORMS START DESIGNATE, DOWNLOAD FONT FILE, DESIGNATE END
40; DES_START - HANDLES DETAILS OF START DESIGNATE FUNCTION
41; DES_START_ERROR - DIAGNOSES ERRORS FROM DESIGNATE START
42; MOVE_FILE - HANDLES DETAILS OF DOWNLOADING THE FONT FILE TO DEVICE
43; DES_END - HANDLES DETAILS OF DESIGNATE END FUNCTION
44; DO_INVOKE - HANDLES DETAILS OF INVOKE FUNCTION
45; DO_STATUS - INTERROGATES DEVICE FOR CODEPAGE STATUS
46; QUERY_ERROR - DISGNOSES ERRORS FROM QUERY REQUEST
47; DISPLAY_CPID - DISPLAYS THE CODEPAGE ID AS PART OF STATUS REPORT
48; SEND_MSG - SET UP ALL ERROR MESSAGES TO BE DISPLAYED
49; QUEUE - HANDLES INTERFACE TO "PRINTF" FOR ALL MESSAGES
50; EX_ERR - DOSCALL RESULTED IN CARRY, SO GO FIND OUT THE EXTENDED ERROR
51; DO_GENERIC_IOCTL - PROCESS ALL GENERIC IOCTL CALLS TO THE DEVICE
52;
53
54; DATA AREAS:
55; WORKAREA - Temporary storage
56
57; EXTERNAL REFERENCES:
58; ROUTINES:
59; PRINTF - Uses the MSG parm lists to construct the messages
60; on STDOUT, on on STDERR.
61
62; DATA AREAS: A large buffer is allocated from free memory, if available.
63
64; COPYRIGHT: The copyright notice is found in the OBJ code generated from
65; the "MAIN.ASM" module of the MODE component of the DOS utility.
66
67;****************** END OF SPECIFICATIONS *****************************
68 IF1
69 %OUT INCLUDE MODECPRO.INC ;MODULE PROLOGUE
70 ENDIF
71
72;ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ P R O L O G ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
73;º º
74
75; AX001 - P3976: Need to have all pieces of messages in MODE.SKL so have to
76; implement the SYSGETMSG method of getting addressability to
77; the pieces. This means that the code does a SYSGETMSG call
78; which returns a pointer (DS:SI) to the message piece. The
79; address is then put in the sublist block for the message
80; being issued.
81
82; AX002 - P4576 Segments were being trashed before calling message services
83; because device type was wrong on IOCTL call because ES was
84; zero when using CMPSB in SET_DEV_TYPE and no match was made.
85
86;º º
87;ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ P R O L O G ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
88