1 ; MODECPRO.INC - INCLUDED BY MODECP.SAL
\ f
2 ;****************** START OF SPECIFICATIONS *****************************
5 ; DESCRIPTIVE NAME: MODE, CODEPAGE HANDLER
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.
14 ; This module should be processed with the SALUT pre-processor
15 ; with re-allignment not requested, as:
21 ; LINKAGE: CALL MODECP
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.
27 ; EXIT-NORMAL: ERRORLEVEL 0 - Successful completion
29 ; EXIT-ERROR: ERRORLEVEL 1 - An error message is also displayed
33 ; INTERNAL REFERENCES:
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
55 ; WORKAREA - Temporary storage
57 ; EXTERNAL REFERENCES:
59 ; PRINTF - Uses the MSG parm lists to construct the messages
60 ; on STDOUT, on on STDERR.
62 ; DATA AREAS: A large buffer is allocated from free memory, if available.
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.
67 ;****************** END OF SPECIFICATIONS *****************************
69 %OUT INCLUDE MODECPRO.INC ;MODULE PROLOGUE
72 ;ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ P R O L O G ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
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
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.
87 ;ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ P R O L O G ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ