3 TITLE SELECT
- SELECT
.EXE
;AN000;
4 SUBTTL GEN_COMS
;AN000;
6 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 ; GEN_COMS.ASM : Copyright 1988 Microsoft
12 ; COMMENTS: Assemble with MASM 3.0 (using the -A option)
14 ; Module contains code for :
15 ; - creation of AUTOEXEC file
16 ; - creation of CONFIG file
17 ; - creation of DOSSHELL.BAT
22 ; ;AN001; for PTM1181 GHG
24 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29 DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000;
31 SC_CD
DW MC_CD
;AN000;
32 PC_CD
DB '@CD ' ;AN000;
33 MC_CD EQU
$ - PC_CD
;AN000;
35 SC_BREAK
DW MC_BREAK
;AN000;
36 PC_BREAK
DB 'BREAK=' ;AN000;
37 MC_BREAK EQU
$ - PC_BREAK
;AN000;
39 SC_CPSW
DW MC_CPSW
;AN000;
40 PC_CPSW
DB 'CPSW=' ;AN000;
41 MC_CPSW EQU
$ - PC_CPSW
;AN000;
43 SC_VERIFY
DW MC_VERIFY
;AN000;
44 PC_VERIFY
DB 'VERIFY ' ;AN000;
45 MC_VERIFY EQU
$ - PC_VERIFY
;AN000;
47 SC_COUNTRY
DW MC_COUNTRY
;AN000;
48 PC_COUNTRY
DB 'COUNTRY=' ;AN000;
49 MC_COUNTRY EQU
$ - PC_COUNTRY
;AN000;
51 SC_COUNTRY_SYS
DW MC_COUNTRY_SYS
;AN000;
52 PC_COUNTRY_SYS
DB 'COUNTRY.SYS' ;AN000;
53 MC_COUNTRY_SYS EQU
$ - PC_COUNTRY_SYS
;AN000;
55 SC_BUFFERS
DW MC_BUFFERS
;AN000;
56 PC_BUFFERS
DB 'BUFFERS=' ;AN000;
57 MC_BUFFERS EQU
$ - PC_BUFFERS
;AN000;
59 SC_SLASH_X
DW MC_SLASH_X
;AC046;SEH changed from /E
60 PC_SLASH_X
DB ' /X' ;AC046;SEH
61 MC_SLASH_X EQU
$ - PC_SLASH_X
;AC046;SEH
63 SC_FCBS
DW MC_FCBS
;AN000;
64 PC_FCBS
DB 'FCBS=' ;AN000;
65 MC_FCBS EQU
$ - PC_FCBS
;AN000;
67 SC_FILES
DW MC_FILES
;AN000;
68 PC_FILES
DB 'FILES=' ;AN000;
69 MC_FILES EQU
$ - PC_FILES
;AN000;
71 SC_LASTDRIVE
DW MC_LASTDRIVE
;AN000;
72 PC_LASTDRIVE
DB 'LASTDRIVE=' ;AN000;
73 MC_LASTDRIVE EQU
$ - PC_LASTDRIVE
;AN000;
75 SC_STACKS
DW MC_STACKS
;AN000;
76 PC_STACKS
DB 'STACKS=' ;AN000;
77 MC_STACKS EQU
$ - PC_STACKS
;AN000;
79 SC_SHELL
DW MC_SHELL
;AN000;
80 PC_SHELL
DB 'SHELL=' ;AN000;
81 MC_SHELL EQU
$ - PC_SHELL
;AN000;
83 SC_SHELL_1
DW MC_SHELL_1
;AN000;
84 PC_SHELL_1
DB 'COMMAND.COM' ;AC037; SEH Split the original SC_SHELL_1 into
85 MC_SHELL_1 EQU
$ - PC_SHELL_1
;AC037; SEH 3 parts
87 SC_SHELL_2
DW MC_SHELL_2
;AN037; SEH Used for diskettes only
88 PC_SHELL_2
DB ' /MSG' ;AN037; SEH
89 MC_SHELL_2 EQU
$ - PC_SHELL_2
;AN037; SEH
91 SC_SHELL_3
DW MC_SHELL_3
;AN037; SEH Use for diskettes and hardfile
92 PC_SHELL_3
DB ' /P /E:256 ' ;AN037; SEH Two spaces required for CR and LF
93 MC_SHELL_3 EQU
$ - PC_SHELL_3
- 2 ;AN037; SEH
95 SC_DEVICE
DW MC_DEVICE
;AN000;
96 PC_DEVICE
DB 'DEVICE=' ;AN000;
97 MC_DEVICE EQU
$ - PC_DEVICE
;AN000;
99 SC_XMAEM_SYS
DW MC_XMAEM_SYS
;AN000;
100 PC_XMAEM_SYS
DB 'XMAEM.SYS ' ;AN000;
101 MC_XMAEM_SYS EQU
$ - PC_XMAEM_SYS
;AN000;
103 SC_XMA2EMS_SYS
DW MC_XMA2EMS_SYS
;AN000;
104 PC_XMA2EMS_SYS
DB 'XMA2EMS.SYS ' ;AN000;
105 MC_XMA2EMS_SYS EQU
$ - PC_XMA2EMS_SYS
;AN000;
107 SC_ANSI_SYS
DW MC_ANSI_SYS
;AN000;
108 PC_ANSI_SYS
DB 'ANSI.SYS ' ;AN000;
109 MC_ANSI_SYS EQU
$ - PC_ANSI_SYS
;AN000;
111 SC_VDISK_SYS
DW MC_VDISK_SYS
;AN000;
112 PC_VDISK_SYS
DB 'RAMDRIVE.SYS ' ;AN000;
113 MC_VDISK_SYS EQU
$ - PC_VDISK_SYS
;AN000;
115 SC_DISPLAY_SYS
DW MC_DISPLAY_SYS
;AN000;
116 PC_DISPLAY_SYS
DB 'DISPLAY.SYS CON=(' ;AN000;
117 MC_DISPLAY_SYS EQU
$ - PC_DISPLAY_SYS
;AN000;
119 PUBLIC SC_DISPLAY_EGA
;AN000;
120 SC_DISPLAY_EGA
DW MC_DISPLAY_EGA
;AN000;
121 PC_DISPLAY_EGA
DB 'EGA.CPI)' ;AN000;
122 MC_DISPLAY_EGA EQU
$ - PC_DISPLAY_EGA
;AN000;
124 PUBLIC SD_DISPLAY_EGA
;AN001;GHG
125 SD_DISPLAY_EGA
DW MD_DISPLAY_EGA
;AN001;GHG
126 PD_DISPLAY_EGA
DB 'EGA' ;AN001;GHG
127 MD_DISPLAY_EGA EQU
$ - PD_DISPLAY_EGA
;AN001;GHG
129 PUBLIC SC_DISPLAY_LCD
;AN000;
130 SC_DISPLAY_LCD
DW MC_DISPLAY_LCD
;AN000;
131 PC_DISPLAY_LCD
DB 'LCD.CPI)' ;AN000;
132 MC_DISPLAY_LCD EQU
$ - PC_DISPLAY_LCD
;AN000;
134 PUBLIC SD_DISPLAY_LCD
;AN001;GHG
135 SD_DISPLAY_LCD
DW MD_DISPLAY_LCD
;AN001;GHG
136 PD_DISPLAY_LCD
DB 'LCD' ;AN001;GHG
137 MD_DISPLAY_LCD EQU
$ - PD_DISPLAY_LCD
;AN001;GHG
139 SC_PRINTER_SYS
DW MC_PRINTER_SYS
;AN000;
140 PC_PRINTER_SYS
DB 'PRINTER.SYS ' ;AN000;
141 MC_PRINTER_SYS EQU
$ - PC_PRINTER_SYS
;AN000;
143 SC_LPT
DW MC_LPT
;AN000;
144 PC_LPT
DB 'LPT' ;AN000;
145 MC_LPT EQU
$ - PC_LPT
;AN000;
147 SC_COM
DW MC_COM
;AN011; SEH
148 PC_COM
DB 'COM' ;AN011; SEH
149 MC_COM EQU
$ - PC_COM
;AN011; SEH
151 SC_EQUAL_OPEN
DW MC_EQUAL_OPEN
;AN000;
152 PC_EQUAL_OPEN
DB '=(' ;AN000;
153 MC_EQUAL_OPEN EQU
$ - PC_EQUAL_OPEN
;AN000;
155 SC_437
DW MC_437
;AN000;
156 PC_437
DB ',437,' ;AN000;
157 MC_437 EQU
$ - PC_437
;AN000;
159 SC_COMMA
DW MC_COMMA
;AN000;
160 PC_COMMA
DB ',' ;AN000;
161 MC_COMMA EQU
$ - PC_COMMA
;AN000;
163 SC_INSTALL
DW MC_INSTALL
;AN000;
164 PC_INSTALL
DB 'INSTALL=' ;AN000;
165 MC_INSTALL EQU
$ - PC_INSTALL
;AN000;
167 SC_KEYB_C
DW MC_KEYB_C
;AN000;
168 PC_KEYB_C
DB 'KEYB.COM ' ;AN000;
169 MC_KEYB_C EQU
$ - PC_KEYB_C
;AN000;
171 SC_KEYBOARD_SYS
DW MC_KEYBOARD_SYS
;AN000;
172 PC_KEYBOARD_SYS
DB 'KEYBOARD.SYS' ;AN000;
173 MC_KEYBOARD_SYS EQU
$ - PC_KEYBOARD_SYS
;AN000;
175 SC_KEYB_SWITCH
DW MC_KEYB_SWITCH
;AN002;JW
176 PC_KEYB_SWITCH
DB ' /ID:' ;AN002;JW
177 MC_KEYB_SWITCH EQU
$ - PC_KEYB_SWITCH
;AN002;JW
179 SC_SHARE
DW MC_SHARE
;AN000;
180 PC_SHARE
DB 'SHARE.EXE ' ;AN000;
181 MC_SHARE EQU
$ - PC_SHARE
;AN000;
183 SC_FASTOPEN
DW MC_FASTOPEN
;AN000;
184 PC_FASTOPEN
DB 'FASTOPEN.EXE ' ;AN000;
185 MC_FASTOPEN EQU
$ - PC_FASTOPEN
;AN000;
187 SC_NLSFUNC
DW MC_NLSFUNC
;AN000;
188 PC_NLSFUNC
DB 'NLSFUNC.EXE ' ;AN000;
189 MC_NLSFUNC EQU
$ - PC_NLSFUNC
;AN000;
191 SC_ECHO
DW MC_ECHO
;AN000;
192 PC_ECHO
DB '@ECHO OFF ' ;AN000; TWO SPACES REQUIRED FOR CR,LF
193 MC_ECHO EQU
$ - PC_ECHO
- 2 ;AN000;
195 SC_PATH
DW MC_PATH
;AN000;
196 PC_PATH
DB 'PATH ' ;AN000;
197 MC_PATH EQU
$ - PC_PATH
;AN000;
199 SC_APPEND
DW MC_APPEND
;AN000;
200 PC_APPEND
DB 'APPEND ' ;AN000;
201 MC_APPEND EQU
$ - PC_APPEND
;AN000;
203 SC_PROMPT
DW MC_PROMPT
;AN000;
204 PC_PROMPT
DB 'PROMPT ' ;AN000;
205 MC_PROMPT EQU
$ - PC_PROMPT
;AN000;
207 SC_SET_COMSPEC
DW MC_SET_COMSPEC
;AN000;
208 PC_SET_COMSPEC
DB 'SET COMSPEC=' ;AN000;
209 MC_SET_COMSPEC EQU
$ - PC_SET_COMSPEC
;AN000;
211 SC_COMMAND_COM
DW MC_COMMAND_COM
;AN000;
212 PC_COMMAND_COM
DB 'COMMAND.COM' ;AN000;
213 MC_COMMAND_COM EQU
$ - PC_COMMAND_COM
;AN000;
215 SC_GRAPHICS
DW MC_GRAPHICS
;AN000;
216 PC_GRAPHICS
DB 'GRAPHICS ' ;AN000;
217 MC_GRAPHICS EQU
$ - PC_GRAPHICS
;AN000;
219 SC_GRAFTABL
DW MC_GRAFTABL
;AN000;
220 PC_GRAFTABL
DB 'GRAFTABL ' ;AN000;
221 MC_GRAFTABL EQU
$ - PC_GRAFTABL
;AN000;
223 ;SC_DATE DW MC_DATE ;
224 ;PC_DATE DB 'DATE ' ; TWO SPACES REQUIRED FOR CR,LF
225 ;MC_DATE EQU $ - PC_DATE - 2 ;
227 ;SC_TIME DW MC_TIME ;
228 ;PC_TIME DB 'TIME ' ; TWO SPACES REQUIRED FOR CR,LF
229 ;MC_TIME EQU $ - PC_TIME - 2 ;
231 SC_VER
DW MC_VER
;AN000;
232 PC_VER
DB 'VER ' ;AN000; TWO SPACES REQUIRED FOR CR,LF
233 MC_VER EQU
$ - PC_VER
- 2 ;AN000;
235 SC_MODE_CON
DW MC_MODE_CON
;AN000;
236 PC_MODE_CON
DB 'MODE CON CP PREP=((' ;AN000;
237 MC_MODE_CON EQU
$ - PC_MODE_CON
;AN000;
239 SC_MODE_COM
DW MC_MODE_COM
;AN000;
240 PC_MODE_COM
DB 'MODE COM' ;AN000;
241 MC_MODE_COM EQU
$ - PC_MODE_COM
;AN000;
243 SC_MODE_LPT
DW MC_MODE_LPT
;AN000;
244 PC_MODE_LPT
DB 'MODE LPT' ;AN000;
245 MC_MODE_LPT EQU
$ - PC_MODE_LPT
;AN000;
247 SC_EQUAL_COM
DW MC_EQUAL_COM
;AN000;
248 PC_EQUAL_COM
DB '=COM' ;AN000;
249 MC_EQUAL_COM EQU
$ - PC_EQUAL_COM
;AN000;
251 SC_PREPARE
DW MC_PREPARE
;AN000;
252 PC_PREPARE
DB ' CP PREP=((' ;AN000;
253 MC_PREPARE EQU
$ - PC_PREPARE
;AN000;
255 SC_CLOSE_BRAC
DW MC_CLOSE_BRAC
;AN000;
256 PC_CLOSE_BRAC
DB ') ' ;AN000;
257 MC_CLOSE_BRAC EQU
$ - PC_CLOSE_BRAC
;AN000;
259 SC_KEYB_A
DW MC_KEYB_A
;AN000;
260 PC_KEYB_A
DB 'KEYB ' ;AN000;
261 MC_KEYB_A EQU
$ - PC_KEYB_A
;AN000;
263 SC_COMMAS
DW MC_COMMAS
;AN000;
264 PC_COMMAS
DB ',,' ;AN000;
265 MC_COMMAS EQU
$ - PC_COMMAS
;AN000;
267 SC_CHCP
DW MC_CHCP
;AN000;
268 PC_CHCP
DB 'CHCP ' ;AN000;
269 MC_CHCP EQU
$ - PC_CHCP
;AN000;
271 SC_DRIVE_C
DW MC_DRIVE_C
;AN013;JW
272 PC_DRIVE_C
DB '@C: ' ;AN013;JW
273 MC_DRIVE_C EQU
$ - PC_DRIVE_C
- 2 ;AN013;JW
275 SC_SHELLC_1
DW MC_SHELLC_1
;AN000;
276 PC_SHELLC_1
DB '@SHELLB DOSSHELL',E_CR
,E_LF
;AC019;SEH
277 DB '@IF ERRORLEVEL 255 GOTO END',E_CR
,E_LF
;AN000;
278 DB ':COMMON ' ;AN000;
279 MC_SHELLC_1 EQU
$ - PC_SHELLC_1
- 2 ;AN000; 2 SPACES FOR ASCII-Z CONVERSION
281 SC_SHELLC_2
DW MC_SHELLC_2
;AN000;
282 PC_SHELLC_2
DB ':END ' ;AN000;
283 MC_SHELLC_2 EQU
$ - PC_SHELLC_2
- 2 ;AN000;
285 SC_SHELLC
DW MC_SHELLC
;AN000;
286 PC_SHELLC
DB '@SHELLC ' ;AN000;
287 MC_SHELLC EQU
$ - PC_SHELLC
;AN000;
289 SC_SHELLP
DW MC_SHELLP
;AN000;
290 PC_SHELLP
DB 'DOSSHELL ' ;AC019;SEH
291 MC_SHELLP EQU
$ - PC_SHELLP
- 2 ;AN000;
293 SC_PRINT_COM
DW MC_PRINT_COM
;AN000;
294 PC_PRINT_COM
DB 'PRINT /D:' ;AC011; SEH
295 MC_PRINT_COM EQU
$ - PC_PRINT_COM
;AN011; SEH
297 SC_AT_SIGN
DW MC_AT_SIGN
;AN000;
298 PC_AT_SIGN
DB '@' ;AN000;
299 MC_AT_SIGN EQU
$ - PC_AT_SIGN
;AN000;
301 S_DOS_PATH
DW M_DOS_PATH
;AN000;
302 P_DOS_PATH
DB 50 DUP(?
) ;AN000;
303 M_DOS_PATH EQU
$ - P_DOS_PATH
;AN000;
305 DATA ENDS
;AN000;DATA
306 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
309 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
310 INCLUDE EXT
.INC ;AN000;
311 INCLUDE STRUC.INC ;AN000;
312 INCLUDE MACROS
.INC ;AN000;
313 INCLUDE ROUT_EXT
.INC ;AN000;
314 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
317 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318 SELECT
SEGMENT PARA
PUBLIC 'SELECT' ;AN000;segment for far routine
319 ASSUME
CS:SELECT
,DS:DATA ;AN000;
321 PUBLIC CREATE_CONFIG_SYS
;AN000;
322 PUBLIC CREATE_AUTOEXEC_BAT
;AN000;
323 PUBLIC CREATE_SHELL_BAT
;AN000;
324 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
326 ; Create AUTOEXEC.BAT file
328 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
329 CREATE_AUTOEXEC_BAT PROC
;AN000;
331 ;;;install to B:, install path = null ;
332 ;;;install to root of C:, install path = c:\ ;
333 ;;;install to directory in C:, install path = c:\path\ ;
334 .IF < I_DEST_DRIVE
eq E_DEST_DRIVE_B
> ;AN000; if install to drive B:
336 INIT_VAR S_DOS_PATH
,0 ;AN000; set path = null
338 COPY_STRING S_DOS_PATH
,M_DOS_PATH
,S_INSTALL_PATH
;AN000;set path = user defined path
339 .IF < S_DOS_PATH gt M_DEST_DRIVE
> ;AN000; if install is not to root of drive C:
341 APPEND_STRING S_DOS_PATH
,M_DOS_PATH
,S_SLASH
;AN000; append back slash
346 WRITE_LINE SC_ECHO
;AN000; write ECHO OFF command
348 ;;;write SET COMSPEC=<path>\COMMAND.COM ;
349 .IF < I_DEST_DRIVE ne E_DEST_DRIVE_C
> ;AC043;SEH COMSPEC formerly after PROMPT ;AN111; if install destination is drive B: or A: JW
350 MERGE_STRING SC_LINE
,MC_LINE
,SC_SET_COMSPEC
,S_DRIVE_A
;AC043;SEH ;AN000;JW
351 .ELSE ;AC043;SEH ;AN000;JW
352 MERGE_STRING SC_LINE
,MC_LINE
,SC_SET_COMSPEC
,S_DOS_PATH
;AC043;SEH ;AN000;JW
353 .ENDIF
;AC043;SEH ;AN000;JW
354 APPEND_STRING SC_LINE
,MC_LINE
, SC_COMMAND_COM
;AC043;SEH ;AN000;
355 WRITE_LINE SC_LINE
;AC043;SEH ;AN000; write SET COMSPEC command
357 ;;;write VERIFY <parameter> ;
358 .IF < S_VERIFY gt
0 > ;AN000; if field length > zero
360 MERGE_STRING SC_LINE
,MC_LINE
,SC_VERIFY
,S_VERIFY
;AN000;
361 WRITE_LINE SC_LINE
;AN000; write VERIFY command
364 ;;;write PATH <parameter> ;
365 .IF < F_PATH
eq E_PATH_YES
> and ;AN000; if PATH command required
366 .IF < S_PATH gt
0 > ;AN000; and field length > zero
368 MERGE_STRING SC_LINE
,MC_LINE
,SC_PATH
, S_PATH
;AN000;
369 WRITE_LINE SC_LINE
;AN000; write PATH command
372 ;;;write APPEND <parameter> ;AN000;JW
373 ;;;write APPEND <path> ;
374 .IF < F_APPEND
eq E_APPEND_YES
> ;AN000; if APPEND command required
375 .IF < S_APPEND_P gt
0 > ;AN000; and field length > zero JW
377 MERGE_STRING SC_LINE
,MC_LINE
,SC_APPEND
,S_APPEND_P
;AN000;JW
378 WRITE_LINE SC_LINE
;AN000; write APPEND command JW
380 .IF < S_APPEND gt
0 > ;AN000; and field length > zero
382 MERGE_STRING SC_LINE
,MC_LINE
,SC_APPEND
,S_APPEND
;AN000;
383 WRITE_LINE SC_LINE
;AN000; write APPEND command
387 ;;;write PROMPT <parameter> ;
388 .IF < F_PROMPT
eq E_PROMPT_YES
> and ;AN000; if PROMPT command required
389 .IF < S_PROMPT gt
0 > ;AN000; and field length > zero
391 MERGE_STRING SC_LINE
,MC_LINE
,SC_PROMPT
,S_PROMPT
;AN000;
392 WRITE_LINE SC_LINE
;AN000; write PROMPT command
395 ;;;write <path>\GRAPHICS <parameter> ;
396 .IF < F_GRAPHICS
eq E_GRAPHICS_YES
> ;AN000; if GRAPHICS command is to be included
398 MERGE_STRING SC_LINE
,MC_LINE
,S_DOS_PATH
,SC_GRAPHICS
;AN000;
399 APPEND_STRING SC_LINE
, MC_LINE
, S_GRAPHICS
;AN000;
400 WRITE_LINE SC_LINE
;AN000; write GRAPHICS command
403 ;;;init S_STR120_1 to primary code page ;
404 ;;;init S_STR120_2 to secondary code page ;
405 WORD_TO_CHAR N_CP_PRI
, S_STR120_1
;AN000; primary code page in ASCII-N format
406 WORD_TO_CHAR N_CP_SEC
, S_STR120_2
;AN000; secondary code page in ASCII-N format
408 ;;;write <path>\GRAFTABL <primary code page> ;
409 .IF < F_GRAFTABL
eq E_GRAFTABL_YES
> ;AN000; if GRAFTABL command required
411 MERGE_STRING SC_LINE
,MC_LINE
,S_DOS_PATH
,SC_GRAFTABL
;AN000;
412 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_1
;AN000;
413 WRITE_LINE SC_LINE
;AN000; write GRAFTABL command
417 WRITE_LINE SC_VER
;AN000; write VER command
419 ;;;S_STR120_1 = primary code page ;
420 ;;;S_STR120_2 = secondary code apge ;
421 ;;;init S_STR120_3 to code page list ;
422 INIT_VAR S_STR120_3
, 0 ;AN000;
423 .IF < N_CP_PRI
eq 0 > or ;AN000; if primary code page is 0 or 437
424 .IF < N_CP_PRI
eq 437 > ;AN000;
425 .THEN
;AN000; no action
427 APPEND_STRING S_STR120_3
,M_STR120_3
,S_STR120_1
;AN000; append code page to cp list
430 .IF < N_CP_SEC
eq 0 > or ;AN000; if secondary code page is 0 or 437
431 .IF < N_CP_SEC
eq 437 > ;AN000;
432 .THEN
;AN000; no action
434 .IF < S_STR120_3 ne
0 > ;AN000; if primary code page is in cp list
436 APPEND_STRING S_STR120_3
, M_STR120_3
, S_SPACE
;AN000; append space to cp list
438 APPEND_STRING S_STR120_3
,M_STR120_3
,S_STR120_2
;AN000; append code page to cp list
441 ;;;S_STR120_3 = code page list ;
442 ;;;write MODE CON CODEPAGE PREPARE ((<cp list>) <path>\<display>.CPI
443 .IF < F_CPSW
eq E_CPSW_YES
> near ;AN000; if code page switching required
445 .IF < S_STR120_3 ne
0 > near ;AN000; if primary/secondary code pages are not 0 or 437
447 MERGE_STRING SC_LINE
,MC_LINE
,SC_MODE_CON
,S_STR120_3
;AN000;
448 APPEND_STRING SC_LINE
, MC_LINE
, SC_CLOSE_BRAC
;AN000; append close bracket
449 APPEND_STRING SC_LINE
, MC_LINE
,S_DOS_PATH
;AN000; append path
450 .IF < ACTIVE
eq EGA
> or ;AN000; if EGA adaptor
451 .IF < ALTERNATE
eq EGA
> ;AN000;
453 APPEND_STRING SC_LINE
, MC_LINE
, SC_DISPLAY_EGA
;AN000; append EGA.CPI)
454 .ELSEIF
< ACTIVE
eq LCD
> or ;AN000; if LCD adaptor
455 .IF < ALTERNATE
eq LCD
> ;AN000;
457 APPEND_STRING SC_LINE
, MC_LINE
, SC_DISPLAY_LCD
;AN000; append LCD.CPI)
459 WRITE_LINE SC_LINE
;AN000; write MODE CON CODEPAGE command
463 ;;;S_STR120_3 = cp list ;
464 ;;;write MODE LPT1 CODEPAGE PREPARE=((<cp list>) <path>\<cp paramaeters.CPI>)
465 ;;;write MODE LPT2 CODEPAGE PREPARE=((<cp list>) <path>\<cp paramaeters.CPI>)
466 ;;;write MODE LPT3 CODEPAGE PREPARE=((<cp list>) <path>\<cp paramaeters.CPI>)
467 ;;;N_WORD_1 = parallel port number ;
468 INIT_VAR N_WORD_1
, 1 ;AN000; set port number = 1
469 .IF < F_CPSW
eq E_CPSW_YES
> near ;AN000; if code page switching required
471 .REPEAT ;AN000; repeat code block
472 GET_PRINTER_PARAMS
0, N_WORD_1
, N_RETCODE
;AN000; get printer parameters
473 .IF < N_RETCODE
eq 1 > and near ;AN000; if valid return
474 .IF < N_PRINTER_TYPE
eq E_PARALLEL
> and near ;AN000; and parallel printer
475 .IF < S_CP_DRIVER gt
0 > and near ;AN000; and driver and prepare
476 .IF < S_CP_PREPARE gt
0 > near ;AN000; parameters valid
478 COPY_STRING SC_LINE
, MC_LINE
, SC_MODE_LPT
;AN000; append MODE LPT
479 WORD_TO_CHAR N_WORD_1
, S_STR120_2
;AN000;
480 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_2
;AN000; append lpt number
481 APPEND_STRING SC_LINE
, MC_LINE
, SC_PREPARE
;AN000; append CODEPAGE PREPARE
482 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_3
;AN000; append cp list
483 APPEND_STRING SC_LINE
, MC_LINE
, SC_CLOSE_BRAC
;AN000; append close bracket
484 APPEND_STRING SC_LINE
, MC_LINE
, S_DOS_PATH
;AN000; append path
485 APPEND_STRING SC_LINE
, MC_LINE
, S_CP_PREPARE
;AN000; append driver parameters
486 APPEND_STRING SC_LINE
, MC_LINE
, SC_CLOSE_BRAC
;AN000; append close bracket
487 WRITE_LINE SC_LINE
;AN000; write PRINTER.SYS command
489 INC_VAR N_WORD_1
;AN000; inc printer number
490 .UNTIL
< N_WORD_1 gt
3 > near ;AN000; end of repeat block
493 ;;;write serial printer parameters and redirection command
494 ;;;write MODE COMx:<parameter> ;
495 ;;;write MODE LPTy=COMx ;
496 ;;;N_WORD_1 = serial port number ;
497 INIT_VAR N_WORD_1
, 4 ;AN000; set port number = 4
498 INIT_VAR N_WORD_2
, 1 ;AN000; set serial port number = 1
499 .REPEAT ;AN000; repeat code block
500 GET_PRINTER_PARAMS
0, N_WORD_1
, N_RETCODE
;AN000; get printer parameters
501 .IF < N_RETCODE
eq 1 > and near ;AN000; if valid return
502 .IF < N_PRINTER_TYPE
eq E_SERIAL
> and near ;AN000; and serial printer
503 .IF < S_MODE_PARM gt
0 > near ;AN000; and mode parameters present
505 COPY_STRING SC_LINE
, MC_LINE
, SC_MODE_COM
;AN000; append MODE COM
506 WORD_TO_CHAR N_WORD_2
, S_STR120_3
;AN000; S_STR120_3 = serial port number
507 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_3
;AN000; append serial port number
508 APPEND_STRING SC_LINE
, MC_LINE
, S_COLON
;AN000; append colon
509 APPEND_STRING SC_LINE
, MC_LINE
, S_MODE_PARM
;AN000; append mode parameters
510 WRITE_LINE SC_LINE
;AN000; write MODE COMx command
511 .IF < I_REDIRECT gt
1 > ;AN000; if printer redirection
513 COPY_STRING SC_LINE
,MC_LINE
,SC_MODE_LPT
;AN000; append MODE LPT
514 DEC_VAR I_REDIRECT
;AN000; first item in list is 'None'
515 WORD_TO_CHAR I_REDIRECT
, S_STR120_2
;AN000; convert LPT no to chars
516 APPEND_STRING SC_LINE
,MC_LINE
,S_STR120_2
;AN000; append parallel port
517 APPEND_STRING SC_LINE
,MC_LINE
,SC_EQUAL_COM
;AN000; append =COM
518 APPEND_STRING SC_LINE
,MC_LINE
,S_STR120_3
;AN000; append serial port number
519 WRITE_LINE SC_LINE
;AN000; write MODE LPTx=COMy command
522 INC_VAR N_WORD_1
;AN000; inc printer number
523 INC_VAR N_WORD_2
;AN000; inc serial port number
524 .UNTIL
< N_WORD_1 gt
7 > near ;AN000; end of repeat block
526 ;;;write KEYB <keyboard>,,<path>\KEYBOARD.SYS ;
527 .IF < N_KYBD_VAL
eq E_KYBD_VAL_YES
> near ;AN000; if kybd id is valid
529 COPY_STRING SC_LINE
, MC_LINE
, SC_KEYB_A
;AN000; copy KEYB
530 APPEND_STRING SC_LINE
, MC_LINE
, S_KEYBOARD
;AN000; append kybd id
531 APPEND_STRING SC_LINE
, MC_LINE
, SC_COMMAS
;AN000; append ,,
532 APPEND_STRING SC_LINE
,MC_LINE
, S_DOS_PATH
;AN000; append install path
533 APPEND_STRING SC_LINE
,MC_LINE
,SC_KEYBOARD_SYS
;AN000; append \KEYBOARD.SYS
534 .IF < N_KYBD_ALT ne E_KYBD_ALT_NO
> and ;AN002; if alternate keyboard valid JW
535 .IF < I_KYBD_ALT
eq 2 > ;AN002; and not default setting JW
537 APPEND_STRING SC_LINE
, MC_LINE
,SC_KEYB_SWITCH
;AN002; append keyb id switch '/ID:' JW
538 APPEND_STRING SC_LINE
, MC_LINE
, S_KYBD_ALT
;AN002; append alternate keyboard id JW
539 APPEND_STRING SC_LINE
, MC_LINE
, S_SPACE
;AN090;JPW add space so last char not overwritten
541 WRITE_LINE SC_LINE
;AN000; write KEYB command
544 ;;;write CHCP <primary code page> ;
545 .IF < F_CPSW
eq E_CPSW_YES
> ;AN000; if code page switching required
547 MERGE_STRING SC_LINE
,MC_LINE
,SC_CHCP
,S_STR120_1
;AN000;
548 WRITE_LINE SC_LINE
;AN000; write CHCP command
551 ;;;write 'PRINT /D:LPTx' or 'PRINT /D:COMx' ;AC066;SEH moved print stmt. NOTE: PRINT AND SHELL STMTS MUST BE LAST IN AUTOEXEC.BAT
552 .IF < I_WORKSPACE ne E_WORKSPACE_MIN
> and near ;AC066;SEH ;AN011; SEH
553 .IF < I_DEST_DRIVE
eq E_DEST_DRIVE_C
> and near ;AC066;SEH ;AN015; JW If install to fixed disk
554 .IF < N_NUMPRINT gt
0 > near ;AC066;SEH ;AN011; SEH
555 .THEN
;AC066;SEH ;AN011; SEH
556 GET_PRINTER_PARAMS
1, 0, N_RETCODE
;AC066;SEH ;AN011; SEH get parameters for 1st printer selected
557 .IF < N_RETCODE ne
0 > near ;AC066;SEH ;AN011; SEH if valid return
558 .THEN
;AC066;SEH ;AN011; SEH
559 .IF < N_PRINTER_TYPE
eq E_PARALLEL
> ;AC066;SEH ;AN011; SEH LPT1, LPT2 or LPT3
560 .THEN
;AC066;SEH ;AN011; SEH
561 MERGE_STRING SC_LINE
, MC_LINE
, SC_PRINT_COM
, SC_LPT
;AC066;SEH ;AN011; SEH 'PRINT /D:LPT'
562 COPY_WORD N_WORD_1
, I_PORT
;AC066;SEH ;AN011; SEH get LPT number (1-3)
563 .ELSE ;AC066;SEH ;AN011; SEH serial printer
564 .IF < I_REDIRECT gt
1 > ;AC066;SEH ;AN011; SEH check if redirected to LPT
565 .THEN
;AC066;SEH ;AN011; SEH
566 MERGE_STRING SC_LINE
, MC_LINE
, SC_PRINT_COM
, SC_LPT
;AC066;SEH ;AN011; SEH 'PRINT /D:LPT'
567 COPY_WORD N_WORD_1
, I_REDIRECT
;AC066;SEH ;AN011; SEH gives LPT printer redirected to ---
568 DEC N_WORD_1
;AC066;SEH ;AN011; SEH but must subtract off value 'none' to get port#
569 .ELSE ;AC066;SEH ;AN011; SEH serial port that hasn't been redirected
570 MERGE_STRING SC_LINE
, MC_LINE
, SC_PRINT_COM
, SC_COM
;AC066;SEH ;AN011; SEH 'PRINT /D:COM'
571 COPY_WORD N_WORD_1
, I_PORT
;AC066;SEH ;AN011; SEH value of COM port
572 .ENDIF
;AC066;SEH ;AN011; SEH
573 .ENDIF
;AC066;SEH ;AN011; SEH
574 WORD_TO_CHAR N_WORD_1
, S_STR120_3
;AC066;SEH ;AN011; SEH
575 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_3
;AC066;SEH ;AN011; SEH add on the com or lpt number to the string
576 WRITE_LINE SC_LINE
;AC066;SEH ;AN011; SEH write 'PRINT /D:LPTx' or 'PRINT /D:COMx' x=number
577 .ENDIF
;AC066;SEH ;AN011; SEH
578 .ENDIF
;AC066;SEH ;AN011; SEH
580 ;;;write SHELL <parameter> ;
581 .IF < N_DEST
eq E_DEST_SHELL
> and ;AN000; if preparing for SHELL diskette
582 .IF < F_SHELL
eq E_SHELL_YES
> ;AN000; if SHELL support required
584 WRITE_LINE SC_SHELLP
;AN000;
588 CREATE_AUTOEXEC_BAT ENDP
;AN000;
589 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
591 ; Create CONFIG.SYS file
593 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594 CREATE_CONFIG_SYS PROC
;AN000;
596 ;;;install to B:, install path = null ;
597 ;;;install to root of C:, install path = c:\ ;
598 ;;;install to directory in C:, install path = c:\path\ ;
599 .IF < I_DEST_DRIVE
eq E_DEST_DRIVE_B
> ;AN000; if install to drive B:
601 INIT_VAR S_DOS_PATH
,0 ;AN000; set path = null
603 COPY_STRING S_DOS_PATH
,M_DOS_PATH
,S_INSTALL_PATH
;AN000;set path = user defined path
604 .IF < S_DOS_PATH gt M_DEST_DRIVE
> ;AN000; if install is not under root of C:
606 APPEND_STRING S_DOS_PATH
,M_DOS_PATH
,S_SLASH
;AN000; append back slash to path
610 ;;;write BREAK=<parameter> ;
611 .IF < S_BREAK gt
0 > ;AN000; if field length > zero
613 MERGE_STRING SC_LINE
,MC_LINE
,SC_BREAK
,S_BREAK
;AN000;
614 WRITE_LINE SC_LINE
;AN000; write BREAK command
617 ;;;write COUNTRY=<country>,,<path>\COUNTRY.SYS ;
618 .IF < N_COUNTRY
eq 1 > ;AN000; if country is US (001)
619 .THEN
;AN000; no action
621 WORD_TO_CHAR N_COUNTRY
, S_STR120_1
;AN000; S_STR120_1 = country in ASCII
622 MERGE_STRING SC_LINE
,MC_LINE
,SC_COUNTRY
,S_STR120_1
;AN000;
623 APPEND_STRING SC_LINE
, MC_LINE
, SC_COMMAS
;AN000;
624 APPEND_STRING SC_LINE
, MC_LINE
,S_DOS_PATH
;AN000;
625 APPEND_STRING SC_LINE
, MC_LINE
,SC_COUNTRY_SYS
;AN000;
626 WRITE_LINE SC_LINE
;AN000; write COUNTRY command
629 ;;;write BUFFERS=<parameter> ;
630 ;;;write BUFFERS=<parameter> /E if expanded memory support
631 .IF < S_BUFFERS gt
0 > ;AN000; if field lengh > zero
633 MERGE_STRING SC_LINE
,MC_LINE
,SC_BUFFERS
,S_BUFFERS
;AN000;
634 .IF < N_XMA
eq E_XMA_PRESENT
> and ;AN000; if expanded memory present
635 .IF < F_XMA
eq E_XMA_YES
> ;AN000; and is to be used
637 APPEND_STRING SC_LINE
, MC_LINE
, SC_SLASH_X
;AC046;SEH append /X to command (formerly /E)
639 WRITE_LINE SC_LINE
;AN000; write BUFFERS command
642 ;;;write FCBS=<parameter> ;
643 .IF < S_FCBS gt
0 > ;AN000; if field length > zero
645 MERGE_STRING SC_LINE
,MC_LINE
, SC_FCBS
,S_FCBS
;AN000;
646 WRITE_LINE SC_LINE
;AN000; write FCBS command
649 ;;;write FILES=<parameter> ;
650 .IF < S_FILES gt
0 > ;AN000; if field length > zero
652 MERGE_STRING SC_LINE
,MC_LINE
,SC_FILES
,S_FILES
;AN000;
653 WRITE_LINE SC_LINE
;AN000; write FILES command
656 ;;;write LASTDRIVE=<parameter> ;
657 .IF < S_LASTDRIVE gt
0 > ;AN000; if field length > zero
659 MERGE_STRING SC_LINE
,MC_LINE
,SC_LASTDRIVE
,S_LASTDRIVE
;AN000;
660 WRITE_LINE SC_LINE
;AN000; write LASTDRIVE command
663 ;;;write STACKS=<parameter> ;
664 .IF < S_STACKS gt
0 > ;AN000; if field length > zero
666 MERGE_STRING SC_LINE
,MC_LINE
,SC_STACKS
,S_STACKS
;AN000;
667 WRITE_LINE SC_LINE
;AN000; write STACKS command
670 ;;;write SHELL=<path>\COMMAND.COM /MSG /P /E:256 ;
671 .IF < I_DEST_DRIVE ne E_DEST_DRIVE_C
> ;AN111; if install destination is drive B: or A: JW
672 MERGE_STRING SC_LINE
,MC_LINE
,SC_SHELL
,S_DRIVE_A
;AN000;JW
673 APPEND_STRING SC_LINE
,MC_LINE
,SC_SHELL_1
;AN037;SEH
674 APPEND_STRING SC_LINE
,MC_LINE
,SC_SHELL_2
;AN037;SEH Only diskettes get /MSG in SHELL command
676 MERGE_STRING SC_LINE
,MC_LINE
,SC_SHELL
,S_DOS_PATH
;AN000;JW
677 APPEND_STRING SC_LINE
,MC_LINE
,SC_SHELL_1
;AC037;SEH
679 APPEND_STRING SC_LINE
, MC_LINE
, SC_SHELL_3
;AC037;SEH
680 WRITE_LINE SC_LINE
;AN000; write SHELL command
682 ;;;init S_STR120_1 to DEVICE=<path>\ ;
683 MERGE_STRING S_STR120_1
,M_STR120_1
,SC_DEVICE
,S_DOS_PATH
;AN000;
685 ;;;S_STR120_1 = DEVICE=<path>\ ;
686 ;;;write DEVICE=<path>\XMAEM.SYS<parameter> ;
687 ;;;write DEVICE=<path>\XMA2EMS.SYS<parameter> ;
688 .IF < N_XMA
eq E_XMA_PRESENT
> near and ;AC000; if expanded memory present JW
689 .IF < F_XMA
eq E_XMA_YES
> ;AN000; and support to be included
691 .IF < N_MOD80
eq E_IS_MOD80
> ;AN000;JW
693 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_XMAEM_SYS
;AN000;
694 APPEND_STRING SC_LINE
, MC_LINE
, S_XMAEM
;AN000;
695 WRITE_LINE SC_LINE
;AN000; write XMAEM command
697 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_XMA2EMS_SYS
;AN000;
698 APPEND_STRING SC_LINE
, MC_LINE
, S_XMA2EMS
;AN000;
699 WRITE_LINE SC_LINE
;AN000; write XMA2EMS command
702 ;;;S_STR120_1 = DEVICE=<path>\ ;
703 ;;;write DEVICE=<path>\ANSI.SYS ;
704 ;;;write DEVICE=<path>\ANSI.SYS /X ,additional parameter based on workspace option
705 .IF < F_ANSI
eq E_ANSI_YES
> ;AN000; if ANSI support required
707 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_ANSI_SYS
;AN000;
708 APPEND_STRING SC_LINE
, MC_LINE
, S_ANSI
;AN000;
709 WRITE_LINE SC_LINE
;AN000; write ANSI command
712 ;;;S_STR120_1 = DEVICE=<path>\ ;
713 ;;;write DEVICE=<path>\RAMDRIVE.SYS <parameter> ;
714 .IF < F_VDISK
eq E_VDISK_YES
> ;AN000; if VDISK support required
716 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_VDISK_SYS
;AN000;
717 APPEND_STRING SC_LINE
, MC_LINE
, S_VDISK
;AN000;
718 WRITE_LINE SC_LINE
;AN000; write VDISK command
721 ;;;init S_STR120_2 to number of designates ;
722 WORD_TO_CHAR N_DESIGNATES
, S_STR120_2
;AN000; set S_STR120_2 = no. of designates
724 ;;;S_STR120_1 = DEVICE=<path>\ ;
725 ;;;write DEVICE=<path>\DISPLAY.SYS CON=(<display>,437,<desig>)
726 .IF < F_CPSW
eq E_CPSW_YES
> near ;AN000; if code page switching required
728 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_DISPLAY_SYS
;AN000;
729 .IF < ACTIVE
eq EGA
> or ;AN000; if EGA adaptor
730 .IF < ALTERNATE
eq EGA
> ;AN000;
732 APPEND_STRING SC_LINE
, MC_LINE
, SD_DISPLAY_EGA
;AN001;GHG set display to EGA
733 .ELSEIF
< ACTIVE
eq LCD
> or ;AN000; if LCD adaptor
734 .IF < ALTERNATE
eq LCD
> ;AN000;
736 APPEND_STRING SC_LINE
, MC_LINE
, SD_DISPLAY_LCD
;AN001;GHG set display to LCD
738 APPEND_STRING SC_LINE
, MC_LINE
, SC_437
;AN000; append hardware code page
739 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_2
;AN000; append no of designates
740 APPEND_STRING SC_LINE
, MC_LINE
, SC_CLOSE_BRAC
;AN000;
741 WRITE_LINE SC_LINE
;AN000; write DISPLAY.SYS command
744 ;;;S_STR120_1 = DEVICE=<path>\ ;
745 ;;;S_STR120_2 = number of designates ;
746 ;;;write DEVICE=<path>\PRINTER.SYS LPT1=(<cdp parameters>,437,<desig>)
747 ;;; LPT2=(<cdp parameters>,437,<desig>)
748 ;;; LPT3=(<cdp parameters>,437,<desig>)
749 ;;;N_WORD_1 = parallel port number ;
750 ;;;N_WORD_2 set if driver is prepared ;
751 INIT_VAR N_WORD_1
, 1 ;AN000; set port number = 1
752 INIT_VAR N_WORD_2
, 0 ;AN000; set driver status = false
753 .IF < F_CPSW
eq E_CPSW_YES
> near ;AN000; if code page switching required
755 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_PRINTER_SYS
;AN000;
756 .REPEAT ;AN000; repeat code block
757 GET_PRINTER_PARAMS
0, N_WORD_1
, N_RETCODE
;AN000; get printer parameters
758 .IF < N_RETCODE
eq 1 > and near ;AN000; if valid return
759 .IF < S_CP_DRIVER gt
0 > and near ;AN000; and driver and prepare
760 .IF < S_CP_PREPARE gt
0 > near ;AN000; parameters valid
762 APPEND_STRING SC_LINE
, MC_LINE
, SC_LPT
;AN000; append LPT
763 WORD_TO_CHAR N_WORD_1
, S_STR120_3
;AN000;
764 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_3
;AN000; append lpt number
765 APPEND_STRING SC_LINE
, MC_LINE
, SC_EQUAL_OPEN
;AN000; append =(
766 APPEND_STRING SC_LINE
, MC_LINE
, S_CP_DRIVER
;AN000; append driver parameters
767 APPEND_STRING SC_LINE
, MC_LINE
, SC_COMMA
;AN000; append comma
768 APPEND_STRING SC_LINE
, MC_LINE
, S_STR120_2
;AN000; append no of designates
769 APPEND_STRING SC_LINE
, MC_LINE
, SC_CLOSE_BRAC
;AN000; append close bracket
770 INIT_VAR N_WORD_2
, 1 ;AN000; set driver status = valid
772 INC_VAR N_WORD_1
;AN000; inc printer number
773 .UNTIL
< N_WORD_1 gt
3 > near ;AN000; end of repeat block
774 .IF < N_WORD_2
eq 1 > ;AN000; if driver status is valid
776 WRITE_LINE SC_LINE
;AN000; write PRINTER.SYS command
780 ;;;init S_STR120_1 to INSTALL=<path>\ ;
781 MERGE_STRING S_STR120_1
,M_STR120_1
,SC_INSTALL
,S_DOS_PATH
;AN000;
783 ;;;write INSTALL=<path>\KEYB.COM US,,<path>\KEYBOARD.SYS
784 COMPARE_STRINGS S_KEYBOARD
, S_US
;AN000;
785 .IF < c
> and ;AN000; if keyboard not US (will be handled in autoexec)
786 .IF < N_KYBD_VAL
eq E_KYBD_VAL_YES
> near ;AN000; if keyboard is valid
788 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_KEYB_C
;AN000;
789 APPEND_STRING SC_LINE
, MC_LINE
, S_US
;AN000; append keyboard id = US
790 APPEND_STRING SC_LINE
, MC_LINE
, SC_COMMAS
;AN000; append comma
791 APPEND_STRING SC_LINE
, MC_LINE
,S_DOS_PATH
;AN000; append install path
792 APPEND_STRING SC_LINE
,MC_LINE
,SC_KEYBOARD_SYS
;AN000; append KEYBOARD.SYS
793 WRITE_LINE SC_LINE
;AN000; write KEYB command
796 ;;;S_STR120_1 = INSTALL=<path>\ ;
797 ;;;write INSTALL=<path>\SHARE <parameter> ;
798 .IF < F_SHARE
eq E_SHARE_YES
> ;AN000; if SHARE support required
800 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_SHARE
;AN000;
801 APPEND_STRING SC_LINE
, MC_LINE
, S_SHARE
;AN000;
802 WRITE_LINE SC_LINE
;AN000; write SHARE command
805 ;;;S_STR120_1 = INSTALL=<path>\ ;
806 ;;;write INSTALL=<path>\FASTOPEN <parameter> ;
807 .IF < F_FASTOPEN
eq E_FASTOPEN_YES
> ;AN000; if FASTOPEN support required
809 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_FASTOPEN
;AN000;
810 APPEND_STRING SC_LINE
, MC_LINE
, S_FASTOPEN
;AN000;
811 WRITE_LINE SC_LINE
;AN000; write FASTOPEN command
814 ;;;S_STR120_1 = INSTALL=<path>\ ;
815 ;;;write INSTALL=<path>\NLSFUNC <path>\COUNTRY.SYS ;
816 .IF < F_CPSW
eq E_CPSW_YES
> ;AN000; if code page switching support required
818 MERGE_STRING SC_LINE
,MC_LINE
,S_STR120_1
,SC_NLSFUNC
;AN000;
819 APPEND_STRING SC_LINE
,MC_LINE
,S_DOS_PATH
;AN000;
820 APPEND_STRING SC_LINE
, MC_LINE
,SC_COUNTRY_SYS
;AN000;
821 WRITE_LINE SC_LINE
;AN000; write NLSFUNC command
825 CREATE_CONFIG_SYS ENDP
;AN000;
826 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
827 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
829 ; Create DOSSHELL.BAT file
831 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
832 CREATE_SHELL_BAT PROC
;AN000;DT
834 ;;;write SHELL <parameter> ;AN000;DT
835 .IF < I_DEST_DRIVE
eq E_DEST_DRIVE_C
> ;AN000; If install fixed disk ;AN111;JW
836 WRITE_LINE SC_DRIVE_C
;AN013;JW
837 COPY_STRING SC_LINE
, MC_LINE
, SC_CD
;AN000;
838 APPEND_STRING SC_LINE
, MC_LINE
, S_INSTALL_PATH
;AN000;
839 WRITE_LINE SC_LINE
;AN000; write CD path command
842 WRITE_LINE SC_SHELLC_1
;AN000;DT
843 MERGE_STRING SC_LINE
,MC_LINE
,SC_AT_SIGN
,SC_BREAK
;AN092;SEH break=off
844 APPEND_STRING SC_LINE
,MC_LINE
,S_OFF
;AN092;SEH
845 WRITE_LINE SC_LINE
;AN092;SEH
846 MERGE_STRING SC_LINE
,MC_LINE
,SC_SHELLC
,S_SHELL
;AN000;DT
847 WRITE_LINE SC_LINE
;AN000;DT write SHELL command
848 WRITE_LINE SC_SHELLC_2
;AN000;DT
850 ;;;restore BREAK=<parameter> ;
851 .IF < S_BREAK gt
0 > ;AN000;JW if field length > zero
852 MERGE_STRING SC_LINE
,MC_LINE
,SC_AT_SIGN
,SC_BREAK
;AN000;JW
853 APPEND_STRING SC_LINE
,MC_LINE
,S_BREAK
;AN000;JW
854 WRITE_LINE SC_LINE
;AN000;JW write BREAK command
859 CREATE_SHELL_BAT ENDP
;AN000;DT
860 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;