summaryrefslogtreecommitdiff
path: root/v4.0/src/SELECT/GEN_COMS.ASM
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/SELECT/GEN_COMS.ASM')
-rw-r--r--v4.0/src/SELECT/GEN_COMS.ASM864
1 files changed, 864 insertions, 0 deletions
diff --git a/v4.0/src/SELECT/GEN_COMS.ASM b/v4.0/src/SELECT/GEN_COMS.ASM
new file mode 100644
index 0000000..9655df9
--- /dev/null
+++ b/v4.0/src/SELECT/GEN_COMS.ASM
@@ -0,0 +1,864 @@
1PAGE 55,132 ;AN000;
2NAME SELECT ;AN000;
3TITLE SELECT - SELECT.EXE ;AN000;
4SUBTTL GEN_COMS ;AN000;
5.ALPHA ;AN000;
6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7;
8; GEN_COMS.ASM : Copyright 1988 Microsoft
9;
10; DATE: August 8/87
11;
12; COMMENTS: Assemble with MASM 3.0 (using the -A option)
13;
14; Module contains code for :
15; - creation of AUTOEXEC file
16; - creation of CONFIG file
17; - creation of DOSSHELL.BAT
18;
19; CHANGE HISTORY:
20;
21; ;AN000; for DT
22; ;AN001; for PTM1181 GHG
23;
24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
25;
26; DATA SEGMENT
27;
28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000;
30 ;
31SC_CD DW MC_CD ;AN000;
32PC_CD DB '@CD ' ;AN000;
33MC_CD EQU $ - PC_CD ;AN000;
34 ;
35SC_BREAK DW MC_BREAK ;AN000;
36PC_BREAK DB 'BREAK=' ;AN000;
37MC_BREAK EQU $ - PC_BREAK ;AN000;
38 ;
39SC_CPSW DW MC_CPSW ;AN000;
40PC_CPSW DB 'CPSW=' ;AN000;
41MC_CPSW EQU $ - PC_CPSW ;AN000;
42 ;
43SC_VERIFY DW MC_VERIFY ;AN000;
44PC_VERIFY DB 'VERIFY ' ;AN000;
45MC_VERIFY EQU $ - PC_VERIFY ;AN000;
46 ;
47SC_COUNTRY DW MC_COUNTRY ;AN000;
48PC_COUNTRY DB 'COUNTRY=' ;AN000;
49MC_COUNTRY EQU $ - PC_COUNTRY ;AN000;
50 ;
51SC_COUNTRY_SYS DW MC_COUNTRY_SYS ;AN000;
52PC_COUNTRY_SYS DB 'COUNTRY.SYS' ;AN000;
53MC_COUNTRY_SYS EQU $ - PC_COUNTRY_SYS ;AN000;
54 ;
55SC_BUFFERS DW MC_BUFFERS ;AN000;
56PC_BUFFERS DB 'BUFFERS=' ;AN000;
57MC_BUFFERS EQU $ - PC_BUFFERS ;AN000;
58 ;
59SC_SLASH_X DW MC_SLASH_X ;AC046;SEH changed from /E
60PC_SLASH_X DB ' /X' ;AC046;SEH
61MC_SLASH_X EQU $ - PC_SLASH_X ;AC046;SEH
62 ;
63SC_FCBS DW MC_FCBS ;AN000;
64PC_FCBS DB 'FCBS=' ;AN000;
65MC_FCBS EQU $ - PC_FCBS ;AN000;
66 ;
67SC_FILES DW MC_FILES ;AN000;
68PC_FILES DB 'FILES=' ;AN000;
69MC_FILES EQU $ - PC_FILES ;AN000;
70 ;
71SC_LASTDRIVE DW MC_LASTDRIVE ;AN000;
72PC_LASTDRIVE DB 'LASTDRIVE=' ;AN000;
73MC_LASTDRIVE EQU $ - PC_LASTDRIVE ;AN000;
74 ;
75SC_STACKS DW MC_STACKS ;AN000;
76PC_STACKS DB 'STACKS=' ;AN000;
77MC_STACKS EQU $ - PC_STACKS ;AN000;
78 ;
79SC_SHELL DW MC_SHELL ;AN000;
80PC_SHELL DB 'SHELL=' ;AN000;
81MC_SHELL EQU $ - PC_SHELL ;AN000;
82 ;
83SC_SHELL_1 DW MC_SHELL_1 ;AN000;
84PC_SHELL_1 DB 'COMMAND.COM' ;AC037; SEH Split the original SC_SHELL_1 into
85MC_SHELL_1 EQU $ - PC_SHELL_1 ;AC037; SEH 3 parts
86 ;
87SC_SHELL_2 DW MC_SHELL_2 ;AN037; SEH Used for diskettes only
88PC_SHELL_2 DB ' /MSG' ;AN037; SEH
89MC_SHELL_2 EQU $ - PC_SHELL_2 ;AN037; SEH
90 ;
91SC_SHELL_3 DW MC_SHELL_3 ;AN037; SEH Use for diskettes and hardfile
92PC_SHELL_3 DB ' /P /E:256 ' ;AN037; SEH Two spaces required for CR and LF
93MC_SHELL_3 EQU $ - PC_SHELL_3 - 2 ;AN037; SEH
94 ;
95SC_DEVICE DW MC_DEVICE ;AN000;
96PC_DEVICE DB 'DEVICE=' ;AN000;
97MC_DEVICE EQU $ - PC_DEVICE ;AN000;
98 ;
99SC_XMAEM_SYS DW MC_XMAEM_SYS ;AN000;
100PC_XMAEM_SYS DB 'XMAEM.SYS ' ;AN000;
101MC_XMAEM_SYS EQU $ - PC_XMAEM_SYS ;AN000;
102 ;
103SC_XMA2EMS_SYS DW MC_XMA2EMS_SYS ;AN000;
104PC_XMA2EMS_SYS DB 'XMA2EMS.SYS ' ;AN000;
105MC_XMA2EMS_SYS EQU $ - PC_XMA2EMS_SYS ;AN000;
106 ;
107SC_ANSI_SYS DW MC_ANSI_SYS ;AN000;
108PC_ANSI_SYS DB 'ANSI.SYS ' ;AN000;
109MC_ANSI_SYS EQU $ - PC_ANSI_SYS ;AN000;
110 ;
111SC_VDISK_SYS DW MC_VDISK_SYS ;AN000;
112PC_VDISK_SYS DB 'RAMDRIVE.SYS ' ;AN000;
113MC_VDISK_SYS EQU $ - PC_VDISK_SYS ;AN000;
114 ;
115SC_DISPLAY_SYS DW MC_DISPLAY_SYS ;AN000;
116PC_DISPLAY_SYS DB 'DISPLAY.SYS CON=(' ;AN000;
117MC_DISPLAY_SYS EQU $ - PC_DISPLAY_SYS ;AN000;
118 ;
119 PUBLIC SC_DISPLAY_EGA ;AN000;
120SC_DISPLAY_EGA DW MC_DISPLAY_EGA ;AN000;
121PC_DISPLAY_EGA DB 'EGA.CPI)' ;AN000;
122MC_DISPLAY_EGA EQU $ - PC_DISPLAY_EGA ;AN000;
123 ;
124 PUBLIC SD_DISPLAY_EGA ;AN001;GHG
125SD_DISPLAY_EGA DW MD_DISPLAY_EGA ;AN001;GHG
126PD_DISPLAY_EGA DB 'EGA' ;AN001;GHG
127MD_DISPLAY_EGA EQU $ - PD_DISPLAY_EGA ;AN001;GHG
128 ;
129 PUBLIC SC_DISPLAY_LCD ;AN000;
130SC_DISPLAY_LCD DW MC_DISPLAY_LCD ;AN000;
131PC_DISPLAY_LCD DB 'LCD.CPI)' ;AN000;
132MC_DISPLAY_LCD EQU $ - PC_DISPLAY_LCD ;AN000;
133 ;
134 PUBLIC SD_DISPLAY_LCD ;AN001;GHG
135SD_DISPLAY_LCD DW MD_DISPLAY_LCD ;AN001;GHG
136PD_DISPLAY_LCD DB 'LCD' ;AN001;GHG
137MD_DISPLAY_LCD EQU $ - PD_DISPLAY_LCD ;AN001;GHG
138 ;
139SC_PRINTER_SYS DW MC_PRINTER_SYS ;AN000;
140PC_PRINTER_SYS DB 'PRINTER.SYS ' ;AN000;
141MC_PRINTER_SYS EQU $ - PC_PRINTER_SYS ;AN000;
142 ;
143SC_LPT DW MC_LPT ;AN000;
144PC_LPT DB 'LPT' ;AN000;
145MC_LPT EQU $ - PC_LPT ;AN000;
146 ;
147SC_COM DW MC_COM ;AN011; SEH
148PC_COM DB 'COM' ;AN011; SEH
149MC_COM EQU $ - PC_COM ;AN011; SEH
150 ;
151SC_EQUAL_OPEN DW MC_EQUAL_OPEN ;AN000;
152PC_EQUAL_OPEN DB '=(' ;AN000;
153MC_EQUAL_OPEN EQU $ - PC_EQUAL_OPEN ;AN000;
154 ;
155SC_437 DW MC_437 ;AN000;
156PC_437 DB ',437,' ;AN000;
157MC_437 EQU $ - PC_437 ;AN000;
158 ;
159SC_COMMA DW MC_COMMA ;AN000;
160PC_COMMA DB ',' ;AN000;
161MC_COMMA EQU $ - PC_COMMA ;AN000;
162 ;
163SC_INSTALL DW MC_INSTALL ;AN000;
164PC_INSTALL DB 'INSTALL=' ;AN000;
165MC_INSTALL EQU $ - PC_INSTALL ;AN000;
166 ;
167SC_KEYB_C DW MC_KEYB_C ;AN000;
168PC_KEYB_C DB 'KEYB.COM ' ;AN000;
169MC_KEYB_C EQU $ - PC_KEYB_C ;AN000;
170 ;
171SC_KEYBOARD_SYS DW MC_KEYBOARD_SYS ;AN000;
172PC_KEYBOARD_SYS DB 'KEYBOARD.SYS' ;AN000;
173MC_KEYBOARD_SYS EQU $ - PC_KEYBOARD_SYS ;AN000;
174 ;
175SC_KEYB_SWITCH DW MC_KEYB_SWITCH ;AN002;JW
176PC_KEYB_SWITCH DB ' /ID:' ;AN002;JW
177MC_KEYB_SWITCH EQU $ - PC_KEYB_SWITCH ;AN002;JW
178 ;
179SC_SHARE DW MC_SHARE ;AN000;
180PC_SHARE DB 'SHARE.EXE ' ;AN000;
181MC_SHARE EQU $ - PC_SHARE ;AN000;
182 ;
183SC_FASTOPEN DW MC_FASTOPEN ;AN000;
184PC_FASTOPEN DB 'FASTOPEN.EXE ' ;AN000;
185MC_FASTOPEN EQU $ - PC_FASTOPEN ;AN000;
186 ;
187SC_NLSFUNC DW MC_NLSFUNC ;AN000;
188PC_NLSFUNC DB 'NLSFUNC.EXE ' ;AN000;
189MC_NLSFUNC EQU $ - PC_NLSFUNC ;AN000;
190 ;
191SC_ECHO DW MC_ECHO ;AN000;
192PC_ECHO DB '@ECHO OFF ' ;AN000; TWO SPACES REQUIRED FOR CR,LF
193MC_ECHO EQU $ - PC_ECHO - 2 ;AN000;
194 ;
195SC_PATH DW MC_PATH ;AN000;
196PC_PATH DB 'PATH ' ;AN000;
197MC_PATH EQU $ - PC_PATH ;AN000;
198 ;
199SC_APPEND DW MC_APPEND ;AN000;
200PC_APPEND DB 'APPEND ' ;AN000;
201MC_APPEND EQU $ - PC_APPEND ;AN000;
202 ;
203SC_PROMPT DW MC_PROMPT ;AN000;
204PC_PROMPT DB 'PROMPT ' ;AN000;
205MC_PROMPT EQU $ - PC_PROMPT ;AN000;
206 ;
207SC_SET_COMSPEC DW MC_SET_COMSPEC ;AN000;
208PC_SET_COMSPEC DB 'SET COMSPEC=' ;AN000;
209MC_SET_COMSPEC EQU $ - PC_SET_COMSPEC ;AN000;
210 ;
211SC_COMMAND_COM DW MC_COMMAND_COM ;AN000;
212PC_COMMAND_COM DB 'COMMAND.COM' ;AN000;
213MC_COMMAND_COM EQU $ - PC_COMMAND_COM ;AN000;
214 ;
215SC_GRAPHICS DW MC_GRAPHICS ;AN000;
216PC_GRAPHICS DB 'GRAPHICS ' ;AN000;
217MC_GRAPHICS EQU $ - PC_GRAPHICS ;AN000;
218 ;
219SC_GRAFTABL DW MC_GRAFTABL ;AN000;
220PC_GRAFTABL DB 'GRAFTABL ' ;AN000;
221MC_GRAFTABL EQU $ - PC_GRAFTABL ;AN000;
222 ;
223;SC_DATE DW MC_DATE ;
224;PC_DATE DB 'DATE ' ; TWO SPACES REQUIRED FOR CR,LF
225;MC_DATE EQU $ - PC_DATE - 2 ;
226 ;
227;SC_TIME DW MC_TIME ;
228;PC_TIME DB 'TIME ' ; TWO SPACES REQUIRED FOR CR,LF
229;MC_TIME EQU $ - PC_TIME - 2 ;
230 ;
231SC_VER DW MC_VER ;AN000;
232PC_VER DB 'VER ' ;AN000; TWO SPACES REQUIRED FOR CR,LF
233MC_VER EQU $ - PC_VER - 2 ;AN000;
234 ;
235SC_MODE_CON DW MC_MODE_CON ;AN000;
236PC_MODE_CON DB 'MODE CON CP PREP=((' ;AN000;
237MC_MODE_CON EQU $ - PC_MODE_CON ;AN000;
238 ;
239SC_MODE_COM DW MC_MODE_COM ;AN000;
240PC_MODE_COM DB 'MODE COM' ;AN000;
241MC_MODE_COM EQU $ - PC_MODE_COM ;AN000;
242 ;
243SC_MODE_LPT DW MC_MODE_LPT ;AN000;
244PC_MODE_LPT DB 'MODE LPT' ;AN000;
245MC_MODE_LPT EQU $ - PC_MODE_LPT ;AN000;
246 ;
247SC_EQUAL_COM DW MC_EQUAL_COM ;AN000;
248PC_EQUAL_COM DB '=COM' ;AN000;
249MC_EQUAL_COM EQU $ - PC_EQUAL_COM ;AN000;
250 ;
251SC_PREPARE DW MC_PREPARE ;AN000;
252PC_PREPARE DB ' CP PREP=((' ;AN000;
253MC_PREPARE EQU $ - PC_PREPARE ;AN000;
254 ;
255SC_CLOSE_BRAC DW MC_CLOSE_BRAC ;AN000;
256PC_CLOSE_BRAC DB ') ' ;AN000;
257MC_CLOSE_BRAC EQU $ - PC_CLOSE_BRAC ;AN000;
258 ;
259SC_KEYB_A DW MC_KEYB_A ;AN000;
260PC_KEYB_A DB 'KEYB ' ;AN000;
261MC_KEYB_A EQU $ - PC_KEYB_A ;AN000;
262 ;
263SC_COMMAS DW MC_COMMAS ;AN000;
264PC_COMMAS DB ',,' ;AN000;
265MC_COMMAS EQU $ - PC_COMMAS ;AN000;
266 ;
267SC_CHCP DW MC_CHCP ;AN000;
268PC_CHCP DB 'CHCP ' ;AN000;
269MC_CHCP EQU $ - PC_CHCP ;AN000;
270 ;
271SC_DRIVE_C DW MC_DRIVE_C ;AN013;JW
272PC_DRIVE_C DB '@C: ' ;AN013;JW
273MC_DRIVE_C EQU $ - PC_DRIVE_C - 2 ;AN013;JW
274 ;
275SC_SHELLC_1 DW MC_SHELLC_1 ;AN000;
276PC_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;
279MC_SHELLC_1 EQU $ - PC_SHELLC_1 - 2 ;AN000; 2 SPACES FOR ASCII-Z CONVERSION
280 ;
281SC_SHELLC_2 DW MC_SHELLC_2 ;AN000;
282PC_SHELLC_2 DB ':END ' ;AN000;
283MC_SHELLC_2 EQU $ - PC_SHELLC_2 - 2 ;AN000;
284 ;
285SC_SHELLC DW MC_SHELLC ;AN000;
286PC_SHELLC DB '@SHELLC ' ;AN000;
287MC_SHELLC EQU $ - PC_SHELLC ;AN000;
288 ;
289SC_SHELLP DW MC_SHELLP ;AN000;
290PC_SHELLP DB 'DOSSHELL ' ;AC019;SEH
291MC_SHELLP EQU $ - PC_SHELLP - 2 ;AN000;
292 ;
293SC_PRINT_COM DW MC_PRINT_COM ;AN000;
294PC_PRINT_COM DB 'PRINT /D:' ;AC011; SEH
295MC_PRINT_COM EQU $ - PC_PRINT_COM ;AN011; SEH
296 ;
297SC_AT_SIGN DW MC_AT_SIGN ;AN000;
298PC_AT_SIGN DB '@' ;AN000;
299MC_AT_SIGN EQU $ - PC_AT_SIGN ;AN000;
300 ;
301S_DOS_PATH DW M_DOS_PATH ;AN000;
302P_DOS_PATH DB 50 DUP(?) ;AN000;
303M_DOS_PATH EQU $ - P_DOS_PATH ;AN000;
304 ;
305DATA ENDS ;AN000;DATA
306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
307;
308;
309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
310 INCLUDE EXT.INC ;AN000;
311 INCLUDE STRUC.INC ;AN000;
312 INCLUDE MACROS.INC ;AN000;
313 INCLUDE ROUT_EXT.INC ;AN000;
314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
315;
316;
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318SELECT SEGMENT PARA PUBLIC 'SELECT' ;AN000;segment for far routine
319 ASSUME CS:SELECT,DS:DATA ;AN000;
320 ;
321 PUBLIC CREATE_CONFIG_SYS ;AN000;
322 PUBLIC CREATE_AUTOEXEC_BAT ;AN000;
323 PUBLIC CREATE_SHELL_BAT ;AN000;
324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
325;
326; Create AUTOEXEC.BAT file
327;
328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
329CREATE_AUTOEXEC_BAT PROC ;AN000;
330 ;
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:
335 .THEN ;AN000;
336 INIT_VAR S_DOS_PATH,0 ;AN000; set path = null
337 .ELSE ;AN000; else
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:
340 .THEN ;AN000;
341 APPEND_STRING S_DOS_PATH,M_DOS_PATH,S_SLASH ;AN000; append back slash
342 .ENDIF ;AN000;
343 .ENDIF ;AN000;
344 ;
345 ;;;write @ECHO OFF ;
346 WRITE_LINE SC_ECHO ;AN000; write ECHO OFF command
347 ;
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
356 ;
357 ;;;write VERIFY <parameter> ;
358 .IF < S_VERIFY gt 0 > ;AN000; if field length > zero
359 .THEN ;AN000;
360 MERGE_STRING SC_LINE,MC_LINE,SC_VERIFY,S_VERIFY;AN000;
361 WRITE_LINE SC_LINE ;AN000; write VERIFY command
362 .ENDIF ;AN000;
363 ;
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
367 .THEN ;AN000;
368 MERGE_STRING SC_LINE,MC_LINE,SC_PATH, S_PATH ;AN000;
369 WRITE_LINE SC_LINE ;AN000; write PATH command
370 .ENDIF ;AN000;
371 ;
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
376 .THEN ;AN000; 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
379 .ENDIF ;AN000; JW
380 .IF < S_APPEND gt 0 > ;AN000; and field length > zero
381 .THEN ;AN000;
382 MERGE_STRING SC_LINE,MC_LINE,SC_APPEND,S_APPEND;AN000;
383 WRITE_LINE SC_LINE ;AN000; write APPEND command
384 .ENDIF ;AN000;
385 .ENDIF ;AN000;JW
386 ;
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
390 .THEN ;AN000;
391 MERGE_STRING SC_LINE,MC_LINE,SC_PROMPT,S_PROMPT;AN000;
392 WRITE_LINE SC_LINE ;AN000; write PROMPT command
393 .ENDIF ;AN000;
394 ;
395 ;;;write <path>\GRAPHICS <parameter> ;
396 .IF < F_GRAPHICS eq E_GRAPHICS_YES > ;AN000; if GRAPHICS command is to be included
397 .THEN ;AN000;
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
401 .ENDIF ;AN000;
402 ;
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
407 ;
408 ;;;write <path>\GRAFTABL <primary code page> ;
409 .IF < F_GRAFTABL eq E_GRAFTABL_YES > ;AN000; if GRAFTABL command required
410 .THEN ;AN000;
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
414 .ENDIF ;AN000;
415 ;
416 ;;;write VER ;
417 WRITE_LINE SC_VER ;AN000; write VER command
418 ;
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
426 .ELSE ;AN000; else
427 APPEND_STRING S_STR120_3,M_STR120_3,S_STR120_1;AN000; append code page to cp list
428 .ENDIF ;AN000;
429 ;
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
433 .ELSE ;AN000; else
434 .IF < S_STR120_3 ne 0 > ;AN000; if primary code page is in cp list
435 .THEN ;AN000;
436 APPEND_STRING S_STR120_3, M_STR120_3, S_SPACE ;AN000; append space to cp list
437 .ENDIF ;AN000;
438 APPEND_STRING S_STR120_3,M_STR120_3,S_STR120_2;AN000; append code page to cp list
439 .ENDIF ;AN000;
440 ;
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
444 .THEN ;AN000;
445 .IF < S_STR120_3 ne 0 > near ;AN000; if primary/secondary code pages are not 0 or 437
446 .THEN ;AN000;
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;
452 .THEN ;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;
456 .THEN ;AN000;
457 APPEND_STRING SC_LINE, MC_LINE, SC_DISPLAY_LCD;AN000; append LCD.CPI)
458 .ENDIF ;AN000;
459 WRITE_LINE SC_LINE ;AN000; write MODE CON CODEPAGE command
460 .ENDIF ;AN000;
461 .ENDIF ;AN000;
462 ;
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
470 .THEN ;AN000;
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
477 .THEN ;AN000;
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
488 .ENDIF ;AN000;
489 INC_VAR N_WORD_1 ;AN000; inc printer number
490 .UNTIL < N_WORD_1 gt 3 > near ;AN000; end of repeat block
491 .ENDIF ;AN000;
492 ;
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
504 .THEN ;AN000;
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
512 .THEN ;AN000;
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
520 .ENDIF ;AN000;
521 .ENDIF ;AN000;
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
525 ;
526 ;;;write KEYB <keyboard>,,<path>\KEYBOARD.SYS ;
527 .IF < N_KYBD_VAL eq E_KYBD_VAL_YES > near ;AN000; if kybd id is valid
528 .THEN ;AN000;
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
536 .THEN ;AN002; 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
540 .ENDIF ;AN002; JW
541 WRITE_LINE SC_LINE ;AN000; write KEYB command
542 .ENDIF ;AN000;
543 ;
544 ;;;write CHCP <primary code page> ;
545 .IF < F_CPSW eq E_CPSW_YES > ;AN000; if code page switching required
546 .THEN ;AN000;
547 MERGE_STRING SC_LINE,MC_LINE,SC_CHCP,S_STR120_1;AN000;
548 WRITE_LINE SC_LINE ;AN000; write CHCP command
549 .ENDIF ;AN000;
550 ;
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
579 ;
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
583 .THEN ;AN000;
584 WRITE_LINE SC_SHELLP ;AN000;
585 .ENDIF ;AN000;
586 ;
587 RET ;AN000;
588CREATE_AUTOEXEC_BAT ENDP ;AN000;
589;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
590;
591; Create CONFIG.SYS file
592;
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594CREATE_CONFIG_SYS PROC ;AN000;
595 ;
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:
600 .THEN ;AN000;
601 INIT_VAR S_DOS_PATH,0 ;AN000; set path = null
602 .ELSE ;AN000; else
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:
605 .THEN ;AN000;
606 APPEND_STRING S_DOS_PATH,M_DOS_PATH,S_SLASH ;AN000; append back slash to path
607 .ENDIF ;AN000;
608 .ENDIF ;AN000;
609 ;
610 ;;;write BREAK=<parameter> ;
611 .IF < S_BREAK gt 0 > ;AN000; if field length > zero
612 .THEN ;AN000;
613 MERGE_STRING SC_LINE,MC_LINE,SC_BREAK,S_BREAK;AN000;
614 WRITE_LINE SC_LINE ;AN000; write BREAK command
615 .ENDIF ;AN000;
616 ;
617 ;;;write COUNTRY=<country>,,<path>\COUNTRY.SYS ;
618 .IF < N_COUNTRY eq 1 > ;AN000; if country is US (001)
619 .THEN ;AN000; no action
620 .ELSE ;AN000; else
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
627 .ENDIF ;AN000;
628 ;
629 ;;;write BUFFERS=<parameter> ;
630 ;;;write BUFFERS=<parameter> /E if expanded memory support
631 .IF < S_BUFFERS gt 0 > ;AN000; if field lengh > zero
632 .THEN ;AN000;
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
636 .THEN ;AN000;
637 APPEND_STRING SC_LINE, MC_LINE, SC_SLASH_X ;AC046;SEH append /X to command (formerly /E)
638 .ENDIF ;AN000;
639 WRITE_LINE SC_LINE ;AN000; write BUFFERS command
640 .ENDIF ;AN000;
641 ;
642 ;;;write FCBS=<parameter> ;
643 .IF < S_FCBS gt 0 > ;AN000; if field length > zero
644 .THEN ;AN000;
645 MERGE_STRING SC_LINE,MC_LINE, SC_FCBS,S_FCBS ;AN000;
646 WRITE_LINE SC_LINE ;AN000; write FCBS command
647 .ENDIF ;AN000;
648 ;
649 ;;;write FILES=<parameter> ;
650 .IF < S_FILES gt 0 > ;AN000; if field length > zero
651 .THEN ;AN000;
652 MERGE_STRING SC_LINE,MC_LINE,SC_FILES,S_FILES;AN000;
653 WRITE_LINE SC_LINE ;AN000; write FILES command
654 .ENDIF ;AN000;
655 ;
656 ;;;write LASTDRIVE=<parameter> ;
657 .IF < S_LASTDRIVE gt 0 > ;AN000; if field length > zero
658 .THEN ;AN000;
659 MERGE_STRING SC_LINE,MC_LINE,SC_LASTDRIVE,S_LASTDRIVE;AN000;
660 WRITE_LINE SC_LINE ;AN000; write LASTDRIVE command
661 .ENDIF ;AN000;
662 ;
663 ;;;write STACKS=<parameter> ;
664 .IF < S_STACKS gt 0 > ;AN000; if field length > zero
665 .THEN ;AN000;
666 MERGE_STRING SC_LINE,MC_LINE,SC_STACKS,S_STACKS;AN000;
667 WRITE_LINE SC_LINE ;AN000; write STACKS command
668 .ENDIF ;AN000;
669 ;
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
675 .ELSE ;AN000;JW
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
678 .ENDIF ;AN000;JW
679 APPEND_STRING SC_LINE, MC_LINE, SC_SHELL_3 ;AC037;SEH
680 WRITE_LINE SC_LINE ;AN000; write SHELL command
681 ;
682 ;;;init S_STR120_1 to DEVICE=<path>\ ;
683 MERGE_STRING S_STR120_1,M_STR120_1,SC_DEVICE,S_DOS_PATH;AN000;
684 ;
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
690 .THEN ;AN000;
691 .IF < N_MOD80 eq E_IS_MOD80 > ;AN000;JW
692 .THEN ;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
696 .ENDIF ;AN000;JW
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
700 .ENDIF ;AN000;
701 ;
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
706 .THEN ;AN000;
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
710 .ENDIF ;AN000;
711 ;
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
715 .THEN ;AN000;
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
719 .ENDIF ;AN000;
720 ;
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
723 ;
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
727 .THEN ;AN000;
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;
731 .THEN ;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;
735 .THEN ;AN000;
736 APPEND_STRING SC_LINE, MC_LINE, SD_DISPLAY_LCD;AN001;GHG set display to LCD
737 .ENDIF ;AN000;
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
742 .ENDIF ;AN000;
743 ;
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
754 .THEN ;AN000;
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
761 .THEN ;AN000;
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
771 .ENDIF ;AN000;
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
775 .THEN ;AN000;
776 WRITE_LINE SC_LINE ;AN000; write PRINTER.SYS command
777 .ENDIF ;AN000;
778 .ENDIF ;AN000;
779 ;
780 ;;;init S_STR120_1 to INSTALL=<path>\ ;
781 MERGE_STRING S_STR120_1,M_STR120_1,SC_INSTALL,S_DOS_PATH ;AN000;
782 ;
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
787 .THEN ;AN000;
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
794 .ENDIF ;AN000;
795 ;
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
799 .THEN ;AN000;
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
803 .ENDIF ;AN000;
804 ;
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
808 .THEN ;AN000;
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
812 .ENDIF ;AN000;
813 ;
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
817 .THEN ;AN000;
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
822 .ENDIF ;AN000;
823 ;
824 RET ;AN000;
825CREATE_CONFIG_SYS ENDP ;AN000;
826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
828;
829; Create DOSSHELL.BAT file
830;
831;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
832CREATE_SHELL_BAT PROC ;AN000;DT
833 ;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
840 .ENDIF ;AN000;
841 ;
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
849 ;
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
855 .ENDIF ;AN000;JW
856 ;
857 ;
858 RET ;AN000;DT
859CREATE_SHELL_BAT ENDP ;AN000;DT
860;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
861
862SELECT ENDS ;AN000;
863 END ;AN000;
864 \ No newline at end of file