summaryrefslogtreecommitdiff
path: root/v4.0/src/SELECT/VAR.ASM
blob: 0074a8135f56fcdf79ae711e702d6a71333cf453 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
PAGE	60,132				   ;AN000;
NAME	SELECT				   ;AN000;
TITLE	VARIABLES - DOS - SELECT.EXE	   ;AN000;
SUBTTL	var.asm				   ;AN000;
.ALPHA					   ;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	VAR.ASM:  Copyright 1988 Microsoft
;
;	DATE:	 August 8/87
;
;	COMMENTS: Assemble with MASM 3.0 (using the /A option)
;
;		  Module contains variables used by SELECT.
;
;	CHANGE HISTORY:
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
						;
	       INCLUDE	SYSMSG.INC		;AN000;
	       MSG_UTILNAME <SELECT>		;AN000;
						;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATA	SEGMENT BYTE PUBLIC 'DATA'              ;AN000;
		INCLUDE VARSTRUC.INC		;AN000;
		INCLUDE SEL_FILE.INC		;AN000;
						;
		PUBLIC	E_ENTER,E_TAB,E_ESCAPE	;AN000;
						;
ESCAPE		EQU	27			;AN000;
ENTER		EQU	13			;AN000;
TAB		EQU	 9			;AN000;
F1		EQU	59			;AN000;
F3		EQU	61			;AN000;
SPACE		EQU	32			;AN000;
						;
		PUBLIC	DRIVE_A,DRIVE_B 	;AN000;JW
DRIVE_A 	EQU	0			;AN000;JW
DRIVE_B 	EQU	1			;AN000;JW
						;
MSG_SERVICES <MSGDATA>				;AN000;
						;
		PUBLIC	SUPPORT_STATUS		;AN000;
SUPPORT_STATUS	DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
		DW	?			;AN000;
						;
		PUBLIC	I_USER_INDEX		;AN000;
I_USER_INDEX	DW	?			;AN000; Index value for scroll list
						;
		PUBLIC	N_USER_NUMERIC,MIN_INPUT_VAL,MAX_INPUT_VAL;AN000;
N_USER_NUMERIC	DW	?			;AN000; Input value for numeric fields
MIN_INPUT_VAL	DW	?			;AN000; Minimum value of input
MAX_INPUT_VAL	DW	?			;AN000; Maximum value of input
						;
		PUBLIC	S_USER_STRING,P_USER_STRING,M_USER_STRING;AN000;
S_USER_STRING	DW	M_USER_STRING		;AN000; Length of string
P_USER_STRING	DB	120 DUP(?)		;AN000; Actual string
M_USER_STRING	EQU	$ - P_USER_STRING	;AN000;
						;
		PUBLIC	N_VALID_KEYS		;AN000;
N_VALID_KEYS	DW	?			;AN000; Valid keys for current input
						;
		PUBLIC	N_USER_FUNC, E_ENTER, E_ESCAPE, E_TAB, E_F3, E_SPACE ;AN000;
N_USER_FUNC	DW	?			      ;AN000; Function type entered by user
E_ENTER 	=	ENTER			      ;AN000; Enter key
E_ESCAPE	=	ESCAPE			      ;AN000; Escape key
E_TAB		=	TAB			      ;AN000; Tab key
E_F3		=	F3*256			      ;AN000; Function key 3  (F3,0)
E_SPACE 	=	SPACE ;AN000;		      ;
						      ;
		PUBLIC	FK_ENT_F3, FK_ENT_F3_LEN      ;AN000;
FK_ENT_F3	DB	ENTER,0,F3		      ;AN000; Enter, F3
FK_ENT_F3_LEN	EQU	($-FK_ENT_F3)		      ;AN000;
						      ;
		PUBLIC	FK_ENT_ESC, FK_ENT_ESC_LEN    ;AN000;
FK_ENT_ESC	DB	ENTER,ESCAPE		      ;AN000; Enter, Esc
FK_ENT_ESC_LEN	EQU	($-FK_ENT_ESC)		      ;AN000;
						      ;
		PUBLIC	FK_ENT_ESC_F3, FK_ENT_ESC_F3_LEN ;AN000;
FK_ENT_ESC_F3	DB	ENTER,ESCAPE,0,F3	      ;AN000; Enter, Esc
FK_ENT_ESC_F3_LEN  EQU	($-FK_ENT_ESC_F3)	      ;AN000;
						      ;
		PUBLIC	FK_ENT, FK_ENT_LEN	      ;AN000;
FK_ENT		DB	ENTER			      ;AN000; Enter
FK_ENT_LEN	EQU	($-FK_ENT)		      ;AN000;
						      ;
		PUBLIC	FK_TEXT, FK_TEXT_LEN	      ;AN000;
FK_TEXT 	DB	ENTER,ESCAPE,0,F1,0,F3	      ;AN000; Enter, ESC, F1, F3
FK_TEXT_LEN	EQU	($-FK_TEXT)		      ;AN000;
						      ;
		PUBLIC	FK_SCROLL, FK_SCROLL_LEN      ;AN000;
FK_SCROLL	DB	ENTER,ESCAPE,0,F1,0,F3	      ;AN000; Enter,ESC, F1, F3
FK_SCROLL_LEN	EQU	($-FK_SCROLL)		      ;AN000;
						      ;
		PUBLIC	FK_TAB, FK_TAB_LEN	      ;AN000;
FK_TAB		DB	TAB,ENTER,ESCAPE,0,F1,0,F3    ;AN000;Enter, ESC, F1, F3, Tab
FK_TAB_LEN	EQU	($-FK_TAB)		      ;AN000;
						      ;
		PUBLIC	FK_REVIEW, FK_REVIEW_LEN      ;AN000;
FK_REVIEW	DB	ENTER,SPACE,ESCAPE,0,F1,0,F3  ;AN000;Enter,ESC,F1,F3,SPACE
FK_REVIEW_LEN	EQU	($-FK_REVIEW)		      ;AN000;
						      ;
		PUBLIC	FK_DATE, FK_DATE_LEN	      ;AN000;
FK_DATE 	DB	TAB,ENTER,0,F1		      ;AN000; Enter, ESC, F1, Tab
FK_DATE_LEN	EQU	($-FK_DATE)		      ;AN000;
						      ;
		PUBLIC	FK_FORMAT, FK_FORMAT_LEN      ;AN000;
FK_FORMAT	DB	ENTER,0,F1		      ;AN000;
FK_FORMAT_LEN	EQU	($-FK_FORMAT)		      ;AN000;
						      ;
		PUBLIC	FK_REBOOT, FK_REBOOT_LEN      ;AN000;
FK_REBOOT	DB	?			      ;AN000; only CTRL+ALT+DEL keys valid
FK_REBOOT_LEN	EQU	0			      ;AN000;
						      ;
		PUBLIC	ERROR_KEYS,ERROR_KEYS_LEN,E_QUIT,E_RETURN ;AN000;
ERROR_KEYS	DB    0,F3,ENTER		      ;AN000;
ERROR_KEYS_LEN	EQU   $-ERROR_KEYS		      ;AN000;
E_QUIT		EQU	1			      ;AN000;
E_RETURN	EQU	2			      ;AN000;
						      ;
		PUBLIC	E_YES, E_NO, E_NA	      ;AN000;
E_YES		EQU	1			      ;AN000;
E_NO		EQU	2			      ;AN000;
E_NA		EQU	6			      ;AN000;
						      ;
		PUBLIC	N_SELECT_MODE, E_SELECT_MENU, E_SELECT_FDISK, E_SELECT_INV ;AN000;
N_SELECT_MODE	DW	?			      ;AN000; SELECT command line mode
E_SELECT_MENU	EQU	0			      ;AN000; MENU mode
E_SELECT_FDISK	EQU	1			      ;AN000; FDISK mode
E_SELECT_INV	EQU	0FFH			      ;AN000; Invalid parameter
						      ;
		PUBLIC	N_FORMAT_MODE,E_FORMAT_SELECT,E_FORMAT_NEW,E_FORMAT_USED ;AN000;
N_FORMAT_MODE	DW	?			      ;AN000; FORMAT mode specified on command line
E_FORMAT_SELECT EQU	1			      ;AN000; new disk - select to format all partitions
E_FORMAT_NEW	EQU	2			      ;AN000; new disk - user to format all partitions
E_FORMAT_USED	EQU	3			      ;AN000; used disk - user to format all partitions
						      ;
		PUBLIC	S_SPACE 		      ;AN000;
S_SPACE 	DW	M_SPACE 		      ;AN000;
P_SPACE 	DB	' '                           ;AN000;
M_SPACE 	EQU	$ - P_SPACE		      ;AN000;
						      ;
		PUBLIC	S_OFF			      ;AN000;
S_OFF		DW	M_OFF			      ;AN000; OFF parameter
P_OFF		DB	'OFF'                         ;AN000;
M_OFF		EQU	$ - P_OFF		      ;AN000;
						      ;
		PUBLIC	S_ON			      ;AN000;
S_ON		DW	M_ON			      ;AN000; ON parameter
P_ON		DB	'ON'                          ;AN000;
M_ON		EQU	$ - P_ON		      ;AN000;
						      ;
		PUBLIC	I_WORKSPACE,N_WORK_PREV,E_WORKSPACE_BAL,E_WORKSPACE_MIN,E_WORKSPACE_MAX ;AN000;
I_WORKSPACE	DW	?			      ;AN000; user workspace option
N_WORK_PREV	DW	?			      ;AN000; previous workspace option
E_WORKSPACE_MIN EQU	1			      ;AN000; minimize DOS functions
E_WORKSPACE_BAL EQU	2			      ;AN000; balance DOS function
E_WORKSPACE_MAX EQU	3			      ;AN000; maximize DOS functions
						      ;
		PUBLIC	S_ANSI,M_ANSI,F_ANSI,E_ANSI_YES,D_ANSI_1,E_ANSI_B,E_ANSI_C,E_ANSI_NO ;AN000;
S_ANSI		DW	M_ANSI			      ;AN000; ANSI command
P_ANSI		DB	2 DUP(?)		      ;AN000;
M_ANSI		EQU	$ - P_ANSI		      ;AN000;
D_ANSI_1	DW	2			      ;AN000;
		DB	'/X'                          ;AN000;
F_ANSI		DW	?			      ;AN000; ANSI support required indicator
E_ANSI_NO	=	E_NO			      ;AN000; ANSI support not required
E_ANSI_YES	=	E_YES			      ;AN000; include ANSI.SYS command
E_ANSI_B	EQU	2			      ;AN000;
E_ANSI_C	EQU	3			      ;AN000;
						      ;
		PUBLIC	S_APPEND, F_APPEND, E_APPEND_YES, E_APPEND_NO, M_APPEND ;AN000;
		PUBLIC	S_APPEND_P, M_APPEND_P	      ;AN000;JW
S_APPEND	DW	M_APPEND		      ;AN000; APPEND command
P_APPEND	DB	120 DUP(?)		      ;AN000;
M_APPEND	EQU	$ - P_APPEND		      ;AN000;
S_APPEND_P	DW	2			      ;AN000; APPEND command paramters	 JW
P_APPEND_P	DB	'/E'                          ;AN000; Default parameter          JW
		DB	38 DUP(' ')                   ;AN000;                            JW
M_APPEND_P	EQU	$ - P_APPEND_P		      ;AN000;			   JW
F_APPEND	DW	?			      ;AN000; APPEND support indicator
E_APPEND_NO	=	E_NO			      ;AN000; APPEND support not required
E_APPEND_YES	=	E_YES			      ;AN000; include APPEND command
						      ;
		PUBLIC	S_BREAK, M_BREAK, ST_BREAK, MT_BREAK ;AN000;
S_BREAK 	DW	M_BREAK 		      ;AN000; BREAK command
P_BREAK 	DB	3 DUP(?)		      ;AN000;
M_BREAK 	EQU	$ - P_BREAK		      ;AN000;
ST_BREAK	DW	MT_BREAK		      ;AN000; temp location for BREAK command
PT_BREAK	DB	M_BREAK DUP(?)		      ;AN000;
MT_BREAK	EQU	$ - PT_BREAK		      ;AN000;
						      ;
		PUBLIC	S_BUFFERS,M_BUFFERS,D_BUFFERS_1,D_BUFFERS_2,ST_BUFFERS,MT_BUFFERS ;AN000;
S_BUFFERS	DW	M_BUFFERS		      ;AN000; BUFFERS command
P_BUFFERS	DB	7 DUP(?)		      ;AN000;
M_BUFFERS	EQU	$ - P_BUFFERS		      ;AN000;
D_BUFFERS_1	DW	2			      ;AN000;
		DB	'20'                          ;AN000;
D_BUFFERS_2	DW	4			      ;AN000;
		DB	'25,8'                        ;AC041;SEH for optimal performance
ST_BUFFERS	DW	MT_BUFFERS		      ;AN000; temp location for BUFFERS parameters
PT_BUFFERS	DB	M_BUFFERS DUP(?)	      ;AN000;
MT_BUFFERS	EQU	$ - PT_BUFFERS		      ;AN000;
						      ;
		PUBLIC	S_CPSW, M_CPSW, F_CPSW, E_CPSW_YES, E_CPSW_NO, E_CPSW_NA ;AN000;
		PUBLIC	E_CPSW_B, E_CPSW_C, ST_CPSW, MT_CPSW ;AN000;
		PUBLIC	N_CPSW, E_CPSW_NOT_VAL, E_CPSW_NOT_REC, E_CPSW_VALID ;AN000;
S_CPSW		DW	M_CPSW			      ;AN000; CPSW command
P_CPSW		DB	3 DUP(?)		      ;AN000;
M_CPSW		EQU	$ - P_CPSW		      ;AN000;
F_CPSW		DW	?			      ;AN000; CPSW support indicator
E_CPSW_NO	=	E_NO			      ;AN000; CPSW support not required
E_CPSW_YES	=	E_YES			      ;AN000; include CPSW command
E_CPSW_NA	=	E_NA			      ;AN000; CPSW not available
E_CPSW_B	EQU	1			      ;AN000;
E_CPSW_C	EQU	1			      ;AN000;
ST_CPSW 	DW	MT_CPSW 		      ;AN000; temp location for CPSW command
PT_CPSW 	DB	M_CPSW DUP(?)		      ;AN000;
MT_CPSW 	EQU	$ - PT_CPSW		      ;AN000;
N_CPSW		DW	?			      ;AN000; code page switching indicator for country
E_CPSW_NOT_VAL	EQU	0			      ;AN000; code page switching not allowed
E_CPSW_NOT_REC	EQU	1			      ;AN000; code page switching not recommended
E_CPSW_VALID	EQU	2			      ;AN000; code page switching recommended
						      ;
		PUBLIC	S_FASTOPEN, M_FASTOPEN, F_FASTOPEN, E_FASTOPEN_YES ;AN000;
		PUBLIC	E_FASTOPEN_NO, D_FASTOPEN_1, D_FASTOPEN_2, E_FASTOPEN_C ;AN000;
S_FASTOPEN	DW	M_FASTOPEN		      ;AN000; FASTOPEN command
P_FASTOPEN	DB	60 DUP(?)		      ;AN000;
M_FASTOPEN	EQU	$ - P_FASTOPEN		      ;AN000;
D_FASTOPEN_1	DW	10			      ;AN000;
		DB	'C:=(50,25)'                  ;AN000;
D_FASTOPEN_2	DW	12			      ;AN000;
		DB	'C:=(150,150)'                ;AC078; SEH changed from 200,200 to 150,150 due to expanded mem problems ;AC041; SEH for optimal performance
F_FASTOPEN	DW	?			      ;AN000; FASTOPEN support indicator
E_FASTOPEN_NO	=	E_NO			      ;AN000; FASTOPEN support not required
E_FASTOPEN_YES	=	E_YES			      ;AN000; include FASTOPEN command
E_FASTOPEN_C	EQU	4			      ;AN000;
						      ;
		PUBLIC	S_FCBS, M_FCBS, D_FCBS_1, ST_FCBS, MT_FCBS ;AN000;
S_FCBS		DW	M_FCBS			      ;AN000; FCBS command
P_FCBS		DB	7 DUP(?)		      ;AN000;
M_FCBS		EQU	$ - P_FCBS		      ;AN000;
D_FCBS_1	DW	4			      ;AN000;
		DB	'20,8'                        ;AN000;
ST_FCBS 	DW	MT_FCBS 		      ;AN000; temp location for FCBS command
PT_FCBS 	DB	M_FCBS DUP(?)		      ;AN000;
MT_FCBS 	EQU	$ - PT_FCBS		      ;AN000;
						      ;
		PUBLIC	S_FILES, M_FILES, D_FILES_1, D_FILES_2, ST_FILES, MT_FILES ;AN000;
S_FILES 	DW	M_FILES 		      ;AN000; FILES command
P_FILES 	DB	3 DUP(?)		      ;AN000;
M_FILES 	EQU	$ - P_FILES		      ;AN000;
D_FILES_1	DW	2			      ;AN000;
		DB	'20'                          ;AN000;
D_FILES_2	DW	1			      ;AN000;
		DB	'8'                           ;AN000;
ST_FILES	DW	MT_FILES		      ;AN000; temp location for FILES command
PT_FILES	DB	M_FILES DUP(?)		      ;AN000;
MT_FILES	EQU	$ - PT_FILES		      ;AN000;
						      ;
		PUBLIC	S_GRAPHICS, M_GRAPHICS, F_GRAPHICS, E_GRAPHICS_YES ;AN000;
		PUBLIC	E_GRAPHICS_NO, E_GRAPHICS_B, E_GRAPHICS_C ;AN000;
S_GRAPHICS	DW	M_GRAPHICS		      ;AN000; GRAPHICS command
P_GRAPHICS	DB	80 DUP(?)		      ;AN000;
M_GRAPHICS	EQU	$ - P_GRAPHICS		      ;AN000;
F_GRAPHICS	DW	?			      ;AN000; GRAPHICS support indicator
E_GRAPHICS_NO	=	E_NO			      ;AN000; GRAPHICS support not required
E_GRAPHICS_YES	=	E_YES			      ;AN000; include GRAPHICS command
E_GRAPHICS_B	EQU	4			      ;AN000;
E_GRAPHICS_C	EQU	6			      ;AN000;
						      ;
		PUBLIC	F_GRAFTABL, E_GRAFTABL_YES, E_GRAFTABL_NO, E_GRAFTABL_NA ;AN000;
		PUBLIC	E_GRAFTABL_B, E_GRAFTABL_C ;AN000;
F_GRAFTABL	DW	?			      ;AN000; GRAFTABL support indicator
E_GRAFTABL_NO	=	E_NO			      ;AN000; GRAFTABL support not required
E_GRAFTABL_YES	=	E_YES			      ;AN000; include GRAFTABL command
E_GRAFTABL_NA	=	E_NA			      ;AN000; GRAFTABL not available
E_GRAFTABL_B	EQU	3			      ;AN000;
E_GRAFTABL_C	EQU	5			      ;AN000;
						      ;
		PUBLIC	S_LASTDRIVE,M_LASTDRIVE,D_LASTDRIVE_1,ST_LASTDRIVE,MT_LASTDRIVE ;AN000;
S_LASTDRIVE	DW	M_LASTDRIVE		      ;AN000; LASTDRIVE command
P_LASTDRIVE	DB	1 DUP(?)		      ;AN000;
M_LASTDRIVE	EQU	$ - P_LASTDRIVE 	      ;AN000;
D_LASTDRIVE_1	DW	1			      ;AN000;
		DB	'E'                           ;AN000;
ST_LASTDRIVE	DW	MT_LASTDRIVE		      ;AN000; temp location for LASTDRIVE command
PT_LASTDRIVE	DB	M_LASTDRIVE DUP(?)	      ;AN000;
MT_LASTDRIVE	EQU	$ - PT_LASTDRIVE	      ;AN000;
						      ;
		PUBLIC	S_PATH, M_PATH, F_PATH, E_PATH_YES, E_PATH_NO ;AN000;
S_PATH		DW	M_PATH			      ;AN000; PATH command
P_PATH		DB	120 DUP(?)		      ;AN000;
M_PATH		EQU	$ - P_PATH		      ;AN000;
F_PATH		DW	?			      ;AN000; PATH support indicator
E_PATH_NO	=	E_NO			      ;AN000; PATH support not required
E_PATH_YES	=	E_YES			      ;AN000; include PATH command
						      ;
		PUBLIC	S_PROMPT,M_PROMPT,F_PROMPT,E_PROMPT_YES,E_PROMPT_NO,D_PROMPT_1 ;AN000;
S_PROMPT	DW	M_PROMPT		      ;AN000; PROMPT command
P_PROMPT	DB	120 DUP(?)		      ;AN000;
M_PROMPT	EQU	$ - P_PROMPT		      ;AN000;
D_PROMPT_1	DW	4			      ;AN000;
		DB	'$P$G'                        ;AN000;
F_PROMPT	DW	?			      ;AN000; PROMPT command indicator
E_PROMPT_NO	=	E_NO			      ;AN000; PROMPT command not to be included
E_PROMPT_YES	=	E_YES			      ;AN000; include PROMPT command
						      ;
		PUBLIC	S_SHARE,M_SHARE,F_SHARE,E_SHARE_YES,E_SHARE_NO,E_SHARE_C ;AN000;
S_SHARE 	DW	M_SHARE 		      ;AN000; SHARE command
P_SHARE 	DB	15 DUP(?)		      ;AN000;
M_SHARE 	EQU	$ - P_SHARE		      ;AN000;
F_SHARE 	DW	?			      ;AN000; SHARE support indicator
E_SHARE_NO	=	E_NO			      ;AN000; SHARE support not required
E_SHARE_YES	=	E_YES			      ;AN000; include SHARE command
E_SHARE_C	EQU	7			      ;AN000;
						      ;
		PUBLIC	S_SHELL, M_SHELL, F_SHELL, E_SHELL_YES, E_SHELL_NO ;AN000;
		PUBLIC	D_SHELL_1, D_SHELL_2, E_SHELL_B, E_SHELL_C	   ;AC018;SEH ;AC000;JW
S_SHELL 	DW	M_SHELL 		      ;AN000; SHELL command
P_SHELL 	DB	115 DUP(?)		      ;AN000;
M_SHELL 	EQU	$ - P_SHELL		      ;AN000;
D_SHELL_1	DW	M_SHELL_1		      ;AN000;
P_SHELL_1	DB	'/TRAN/MAINT/MENU/EXIT/SND/PROMPT'  ;AC077;SEH ;AC000;JW
M_SHELL_1	EQU	$ - P_SHELL_1		      ;AN000;
D_SHELL_2	DW	M_SHELL_2		      ;AN000;
P_SHELL_2	DB	'/TRAN/COLOR/DOS/MENU/MUL'                 ;AC071;SEH ;AC016;SEH  ;AC000;JW
		DB	'/SND/MEU:SHELL.MEU/CLR:SHELL.CLR/PROMPT/MAINT/EXIT/SWAP/DATE'  ;AC012;SEH  ;AC000;JW
M_SHELL_2	EQU	$ - P_SHELL_2		      ;AN000;
F_SHELL 	DW	?			      ;AN000; SHELL support indicator
E_SHELL_NO	=	E_NO			      ;AN000; SHELL support not required
E_SHELL_YES	=	E_YES			      ;AN000; include SHELL command
E_SHELL_B	=	5
E_SHELL_C	=	8
						      ;
		PUBLIC	MACHINE_TYPE, PS2_FLAG, MOD25_OR_MOD30	;AN000;JW
MACHINE_TYPE	DB	?			      ;AN000;JW
PS2_FLAG	DB	?			      ;AN000;JW
MOD25_OR_MOD30	EQU	0FAH			      ;AN000;JW
						      ;
		PUBLIC	S_STACKS,M_STACKS,ST_STACKS,MT_STACKS ;AN000;
S_STACKS	DW	M_STACKS		      ;AN000; STACKS command
P_STACKS	DB	6 DUP(?)		      ;AN000;
M_STACKS	EQU	$ - P_STACKS		      ;AN000;
ST_STACKS	DW	MT_STACKS		      ;AN000; temp location for STACKS command
PT_STACKS	DB	M_STACKS DUP(?) 	      ;AN000;
MT_STACKS	EQU	$ - PT_STACKS		      ;AN000;
						      ;
		PUBLIC	S_VDISK,M_VDISK,F_VDISK,E_VDISK_YES,E_VDISK_NO,E_VDISK_B,E_VDISK_C ;AN000;
S_VDISK 	DW	M_VDISK 		      ;AN000; VDISK command
P_VDISK 	DB	20 DUP(?)		      ;AN000;
M_VDISK 	EQU	$ - P_VDISK		      ;AN000;
F_VDISK 	DW	?			      ;AN000; VDISK support indicator
E_VDISK_NO	=	E_NO			      ;AN000; VDISK support not required
E_VDISK_YES	=	E_YES			      ;AN000; include VDISK command
E_VDISK_B	EQU	6			      ;AN000;
E_VDISK_C	EQU	9			      ;AN000;
						      ;
		PUBLIC	S_VERIFY, M_VERIFY, ST_VERIFY, MT_VERIFY ;AN000;
S_VERIFY	DW	M_VERIFY		      ;AN000; VERIFY command
P_VERIFY	DB	3 DUP(?)		      ;AN000;
M_VERIFY	EQU	$ - P_VERIFY		      ;AN000;
ST_VERIFY	DW	MT_VERIFY		      ;AN000; temp location for VERIFY command
PT_VERIFY	DB	M_VERIFY DUP(?) 	      ;AN000;
MT_VERIFY	EQU	$ - PT_VERIFY		      ;AN000;
						      ;
		PUBLIC	S_XMAEM, M_XMAEM	      ;AN000;
S_XMAEM 	DW	M_XMAEM 		      ;AN000; XMAEM command
P_XMAEM 	DB	40 DUP(?)		      ;AN000;
M_XMAEM 	EQU	$ - P_XMAEM		      ;AN000;
						      ;
		PUBLIC	S_XMA2EMS, M_XMA2EMS, D_XMA2EMS_1, F_XMA, E_XMA_NO, E_XMA_NA ;AN000;
		PUBLIC	E_XMA_YES, E_XMA_C, N_XMA, E_XMA_ABSENT, E_XMA_PRESENT ;AN000;
S_XMA2EMS	DW	M_XMA2EMS		      ;AN000; XMA2EMS command
P_XMA2EMS	DB	40 DUP(?)		      ;AN000;
M_XMA2EMS	EQU	$ - P_XMA2EMS		      ;AN000;
D_XMA2EMS_1	DW	30			      ;AN000;
		DB	'FRAME=D000 P254=C000 P255=C400'    ;AC044;SEH ;AC040;SEH ;AN000;JW
F_XMA		DW	?			      ;AN000; Expanded Memory support indicator
E_XMA_NO	=	E_NO			      ;AN000; Expanded Memory support not required
E_XMA_YES	=	E_YES			      ;AN000; include XMAEM, XMA2EMS commands
E_XMA_NA	=	E_NA			      ;AN000; Expanded memory not available
E_XMA_C 	EQU	2			      ;AN000;
N_XMA		DW	?			      ;AN000; Expanded memory presence indicator
E_XMA_ABSENT	EQU	0			      ;AN000; expanded memory not present
E_XMA_PRESENT	EQU	1			      ;AN000; expanded memory is present
						      ;
		PUBLIC	N_MOD80, E_IS_MOD80, E_NOT_MOD80 ;AN000;JW
N_MOD80 	DW	?			      ;AN000; Model 80 indicator
E_NOT_MOD80	EQU	0			      ;AN000; is not a model 80
E_IS_MOD80	EQU	1			      ;AN000; is a model 80
						      ;
		PUBLIC	I_DEST_DRIVE, E_DEST_DRIVE_A, E_DEST_DRIVE_B, E_DEST_DRIVE_C ;AN111;JW
I_DEST_DRIVE	DW	?			      ;AN000; Install destination drive - set by CHECK_VALID_MEDIA
E_DEST_DRIVE_C	EQU	1			      ;AN000; drive C:
E_DEST_DRIVE_B	EQU	2			      ;AN000; drive B:
E_DEST_DRIVE_A	EQU	3			      ;AN111; drive A:
						      ;
		PUBLIC	N_DRIVE_OPTION, E_OPTION_B_C, E_OPTION_A_C ;AN111;JW
N_DRIVE_OPTION	DW	?			      ;AN111; Which options to choose from JW
E_OPTION_B_C	EQU	1			      ;AN111; install to B or C 	     JW
E_OPTION_A_C	EQU	2			      ;AN111; install to A or C 	     JW
						      ;
		PUBLIC	N_DEST_DRIVE, E_DEST_SELECT, E_DEST_USER ;AN000;
N_DEST_DRIVE	DB	?			      ;AN000; destination drive determined by user or SELECT
E_DEST_SELECT	EQU	0			      ;AN000; SELECT will determine default drive
E_DEST_USER	EQU	1			      ;AN000; user will select destination drive
						      ;
		PUBLIC	N_DISKETTE_TOT, N_ZERO_DISKETTE, N_DISKETTE_A, N_DISKETTE_B ;AN000;
		PUBLIC	E_DISKETTE_INV, E_DISKETTE_360, E_DISKETTE_720, E_DISKETTE_1200, E_DISKETTE_1440 ;AN000;
N_DISKETTE_TOT	DB	?			      ;AN000; number of diskette drives
N_ZERO_DISKETTE EQU	0			      ;AN000;
N_DISKETTE_A	DB	?			      ;AN000; drive A: diskette status
N_DISKETTE_B	DB	?			      ;AN000; drive B: diskette status
E_DISKETTE_INV	EQU	0FFH			      ;AN000; diskette not present
E_DISKETTE_360	EQU	0			      ;AN000; diskette media is 360K (5.25 inch)
E_DISKETTE_1200 EQU	1			      ;AN000; diskette media is 1.2M (5.25 inch)
E_DISKETTE_720	EQU	2			      ;AN000; diskette media is 720K (3.5 inch)
E_DISKETTE_1440 EQU	7			      ;AN000; diskette media is 1.44M (3.5 inch)
						      ;
		PUBLIC	S_DEST_DRIVE,M_DEST_DRIVE,S_DRIVE_A ;AN000;
S_DEST_DRIVE	DW	M_DEST_DRIVE		      ;AN000; Destination drive to install DOS
P_DEST_DRIVE	DB	'C:\'                         ;AN000;
M_DEST_DRIVE	EQU	$ - P_DEST_DRIVE	      ;AN000;
S_DRIVE_A	DW	M_DRIVE_A		      ;AN000;
P_DRIVE_A	DB	'A:\'                         ;AN000;
M_DRIVE_A	EQU	$ - P_DRIVE_A		      ;AN000;
						      ;
		PUBLIC	S_C_DRIVE,S_A_DRIVE,S_B_DRIVE ;AC039;SEH;AN000;JW
S_C_DRIVE	DW	M_C_DRIVE		      ;AN000; Destination drive w/o backslash JW
P_C_DRIVE	DB	'C:'                          ;AN000;
M_C_DRIVE	EQU	$ - P_C_DRIVE		      ;AN000;
S_A_DRIVE	DW	M_A_DRIVE		      ;AN039;SEH Destination drive w/o backslash
P_A_DRIVE	DB	'A:'                          ;AN039;SEH
M_A_DRIVE	EQU	$ - P_A_DRIVE		      ;AN039;SEH
S_B_DRIVE	DW	M_B_DRIVE		      ;AN039;SEH Destination drive w/o backslash
P_B_DRIVE	DB	'B:'                          ;AN039;SEH
M_B_DRIVE	EQU	$ - P_B_DRIVE		      ;AN039;SEH
						      ;
		PUBLIC	S_DOS_LOC, M_DOS_LOC, D_DOS_LOC_1 ;AN000;
S_DOS_LOC	DW	M_DOS_LOC		      ;AN000; user defined DOS location path for drive C:
P_DOS_LOC	DB	37 DUP(?)		      ;AN000;
M_DOS_LOC	EQU	$ - P_DOS_LOC		      ;AN000;
D_DOS_LOC_1	DW	3			      ;AN000;
		DB	'DOS'                         ;AN000;
						      ;
		PUBLIC	S_INSTALL_PATH, M_INSTALL_PATH ;AN000;
S_INSTALL_PATH	DW	M_INSTALL_PATH		      ;AN000; install path including drive
P_INSTALL_PATH	DB	40 DUP( )		      ;AN000;
M_INSTALL_PATH	EQU	$ - P_INSTALL_PATH	      ;AN000;
						      ;
		PUBLIC	I_CTY_KYBD, E_CTY_KB_PREDEF, E_CTY_KB_USER ;AN000;
I_CTY_KYBD	DW	?			      ;AN000; index for country and keyboard screen
E_CTY_KB_PREDEF EQU	1			      ;AN000; Use predefined country/keyboard
E_CTY_KB_USER	EQU	2			      ;AN000; user specified country/keyboard to be used
						      ;
		PUBLIC	N_CTY_LIST, E_CTY_LIST_1, E_CTY_LIST_2 ;AN000;
N_CTY_LIST	DW	?			      ;AN000; Country code scroll list identifier
E_CTY_LIST_1	EQU	1			      ;AN000; code 001 - 046
E_CTY_LIST_2	EQU	2			      ;AN000; code 047 - 972
						      ;
		PUBLIC	I_COUNTRY, N_COUNTRY	      ;AN000;
I_COUNTRY	DW	?			      ;AN000; Index into country code list
N_COUNTRY	DW	?			      ;AN000; Country Code
						      ;
		PUBLIC	N_KYBD_LIST, E_KYBD_LIST_1, E_KYBD_LIST_2 ;AN000;
N_KYBD_LIST	DW	?			      ;AN000; Keyboard code scroll list identifier
E_KYBD_LIST_1	EQU	1			      ;AN000; code BE - NO
E_KYBD_LIST_2	EQU	2			      ;AN000; code PO - none
						      ;
		PUBLIC	I_KEYBOARD		      ;AN000;
I_KEYBOARD	DW	?			      ;AN000; Index into keyboard code list
						      ;
		PUBLIC	S_KEYBOARD,N_KYBD_VAL,E_KYBD_VAL_YES,E_KYBD_VAL_NO ;AN000;
		PUBLIC	M_KEYBOARD,E_KYBD_VAL_DEF     ;AN000;
S_KEYBOARD	DW	M_KEYBOARD		      ;AN000;
P_KEYBOARD	DB	2 DUP(?)		      ;AN000; Keyboard code
M_KEYBOARD	EQU	$ - P_KEYBOARD		      ;AN000;
N_KYBD_VAL	DB	?			      ;AN000; Keyboard code valid indicator
E_KYBD_VAL_NO	EQU	0			      ;AN000; Keyboard code is not valid
E_KYBD_VAL_YES	EQU	1			      ;AN000; Keyboard code is valid
E_KYBD_VAL_DEF	EQU	2			      ;AN000; Default keyboard (US) is to be used
						      ;       This state is defined so that keyboard screen
						      ;       will be displayed with "None" option
						      ;
		PUBLIC	N_DESIGNATES, N_CP_PRI, N_CP_SEC, N_CTY_RES ;AN000;
N_DESIGNATES	DW	?			      ;AN000; number of designates
N_CP_PRI	DW	?			      ;AN000; Primary code page
N_CP_SEC	DW	?			      ;AN000; Secondary code page
N_CTY_RES	DB	?			      ;AN000; reserved byte from country table
						      ;
		PUBLIC	I_KYBD_ALT, S_KYBD_ALT, M_KYBD_ALT, N_KYBD_ALT ;AN000;
		PUBLIC	E_KYBD_ALT_NO, E_KYBD_ALT_YES ;AN000;
I_KYBD_ALT	DW	?			      ;AN000; Index into alternate keyboard code list
S_KYBD_ALT	DW	M_KYBD_ALT		      ;AN000;
P_KYBD_ALT	DB	2 DUP(?)		      ;AN000; Keyboard code
M_KYBD_ALT	EQU	$ - P_KYBD_ALT		      ;AN000;
N_KYBD_ALT	DB	?			      ;AN000; Alternate keyboards present indicator
E_KYBD_ALT_NO	EQU	0			      ;AN000; no alternate keyboards
E_KYBD_ALT_YES	EQU	1			      ;AN000; are alternate keyboards are present
						      ;
		PUBLIC	N_KYB_LOAD,E_KYB_LOAD_SUC,E_KYB_LOAD_ERR,E_KYB_LOAD_US,E_KYB_LOAD_UND ;AN000;
N_KYB_LOAD	DW	?			      ;AN000; KEYB load status
E_KYB_LOAD_SUC	EQU	1			      ;AN000; no error from KEYB
E_KYB_LOAD_ERR	EQU	2			      ;AN000; error from KEYB
E_KYB_LOAD_US	EQU	3			      ;AN000; US keyboard loaded
E_KYB_LOAD_UND	EQU	4			      ;AN000; undefined keyboard loaded
						      ;
;	Country code association with Keyboard code & Code Page
		PUBLIC	CTY_TAB_A,CTY_TAB_A_1,CTY_A_ITEMS ;AN000;
CTY_TAB_A	DB	CTY_A_ITEMS		      ;AN000; no of entries in table
CTY_TAB_A_1	CTY_DEF < 001,E_KYBD_VAL_DEF,'  ',437,850,1,E_CPSW_NOT_REC,0> ;AN000; (01) United States
		CTY_DEF < 002,E_KYBD_VAL_YES,'CF',863,850,2,E_CPSW_VALID  ,0> ;AN000; (02) Canada (French)
		CTY_DEF < 003,E_KYBD_VAL_YES,'LA',850,437,1,E_CPSW_VALID  ,0> ;AC070;SEH ;AN000; (03) Latin America
		CTY_DEF < 031,E_KYBD_VAL_YES,'NL',437,850,1,E_CPSW_VALID  ,0> ;AN000; (04) Netherlands
		CTY_DEF < 032,E_KYBD_VAL_YES,'BE',850,437,1,E_CPSW_VALID  ,0> ;AN000; (05) Belgium
		CTY_DEF < 033,E_KYBD_VAL_YES,'FR',437,850,1,E_CPSW_VALID  ,1> ;AN000; (06) France
		CTY_DEF < 034,E_KYBD_VAL_YES,'SP',850,437,1,E_CPSW_VALID  ,0> ;AN000; (07) Spain
		CTY_DEF < 039,E_KYBD_VAL_YES,'IT',437,850,1,E_CPSW_VALID  ,2> ;AN000; (08) Italy
		CTY_DEF < 041,E_KYBD_VAL_YES,'SF',850,437,1,E_CPSW_VALID  ,0> ;AN000; (09) Switzerland
		CTY_DEF < 044,E_KYBD_VAL_YES,'UK',437,850,1,E_CPSW_VALID  ,3> ;AN000; (10) United Kingdom
		CTY_DEF < 045,E_KYBD_VAL_YES,'DK',850,865,2,E_CPSW_VALID  ,0> ;AN000; (11) Denmark
		CTY_DEF < 046,E_KYBD_VAL_YES,'SV',437,850,1,E_CPSW_VALID  ,0> ;AN000; (12) Sweden
CTY_A_ITEMS	EQU	($ - CTY_TAB_A_1) / TYPE CTY_DEF ;AN000; no of items
						      ;
		PUBLIC	CTY_TAB_B,CTY_TAB_B_1,CTY_B_ITEMS ;AN000;
CTY_TAB_B	DB	CTY_B_ITEMS		      ;AN000; no of entries in table
CTY_TAB_B_1	CTY_DEF < 047,E_KYBD_VAL_YES,'NO',850,865,2,E_CPSW_VALID  ,0 > ;AN000; (01) Norway
		CTY_DEF < 049,E_KYBD_VAL_YES,'GR',437,850,1,E_CPSW_VALID  ,0 > ;AN000; (02) Germany
		CTY_DEF < 061,E_KYBD_VAL_YES,'US',437,850,1,E_CPSW_VALID  ,0 > ;AN000; (03) Australia
		CTY_DEF < 081,E_KYBD_VAL_NO ,'  ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (04) Japan
		CTY_DEF < 082,E_KYBD_VAL_NO ,'  ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (05) Korea
		CTY_DEF < 086,E_KYBD_VAL_NO ,'  ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (06) Republic of China
		CTY_DEF < 088,E_KYBD_VAL_NO ,'  ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (07) Taiwan
		CTY_DEF < 351,E_KYBD_VAL_YES,'PO',850,860,2,E_CPSW_VALID  ,0 > ;AN000; (08) Portugal
		CTY_DEF < 358,E_KYBD_VAL_YES,'SU',850,437,1,E_CPSW_VALID  ,0 > ;AN000; (09) Finland
		CTY_DEF < 785,E_KYBD_VAL_NO ,'  ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (10) Arabic Speaking
		CTY_DEF < 972,E_KYBD_VAL_NO ,'  ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (11) Hebrew Speaking
CTY_B_ITEMS	EQU	($ - CTY_TAB_B_1) / TYPE CTY_DEF  ;AN000; no of items
						      ;
;		Keyboard Codes supported
		PUBLIC	KYBD_TAB_A,KYBD_TAB_A_1,KYBD_A_ITEMS ;AN000;
KYBD_TAB_A	DB	KYBD_A_ITEMS	;AN000; no of entries in table
KYBD_TAB_A_1	KYB_DEF < 'BE', E_KYBD_ALT_NO >       ;AN000; (01) Flemish
		KYB_DEF < 'CF', E_KYBD_ALT_NO >       ;AN000; (02) Canadian French
		KYB_DEF < 'DK', E_KYBD_ALT_NO >       ;AN000; (03) Danish
		KYB_DEF < 'FR', E_KYBD_ALT_YES>       ;AN000; (04) French
		KYB_DEF < 'GR', E_KYBD_ALT_NO >       ;AN000; (05) German
		KYB_DEF < 'IT', E_KYBD_ALT_YES>       ;AN000; (06) Italian
		KYB_DEF < 'LA', E_KYBD_ALT_NO >       ;AN000; (07) Latin American (Spanish)
		KYB_DEF < 'NL', E_KYBD_ALT_NO >       ;AN000; (08) Dutch
		KYB_DEF < 'NO', E_KYBD_ALT_NO >       ;AN000; (09) Norwegian
KYBD_A_ITEMS	EQU	($ - KYBD_TAB_A_1) / TYPE KYB_DEF ;AN000; no of items in table
						      ;
		PUBLIC	KYBD_TAB_B,KYBD_TAB_B_1,KYBD_B_ITEMS ;AN000;
KYBD_TAB_B	DB	KYBD_B_ITEMS		      ;AN000; no of entries in table
KYBD_TAB_B_1	KYB_DEF < 'PO', E_KYBD_ALT_NO >       ;AN000; (01) Portuguese
		KYB_DEF < 'SF', E_KYBD_ALT_NO >       ;AN000; (02) Swiss (French)
		KYB_DEF < 'SG', E_KYBD_ALT_NO >       ;AN000; (03) Swiss (German)
		KYB_DEF < 'SP', E_KYBD_ALT_NO >       ;AN000; (04) Spanish
		KYB_DEF < 'SU', E_KYBD_ALT_NO >       ;AN000; (05) Finnish
		KYB_DEF < 'SV', E_KYBD_ALT_NO >       ;AN000; (06) Swedish
		KYB_DEF < 'UK', E_KYBD_ALT_YES>       ;AN000; (07) UK English
		KYB_DEF < 'US', E_KYBD_ALT_NO >       ;AN000; (08) US English
		KYB_DEF < '  ', E_KYBD_ALT_NO >       ;AN000; (09) none of the above
KYBD_B_ITEMS	EQU	($ - KYBD_TAB_B_1) / TYPE KYB_DEF ;AN000; no of items in table
						      ;
		PUBLIC	ALT_TAB_PTR		      ;AN000;
ALT_TAB_PTR	DW	?			      ;AN000; pointer keyboard table
						      ;
		PUBLIC	ALT_KYB_ID, ALT_FRENCH, ALT_ITALIAN, ALT_UK, ALT_KYB_ID_PREV ;AN000;
ALT_KYB_ID	DB	?			      ;AN000; keyboard code identifier
ALT_KYB_ID_PREV DB	?			      ;AN000; previous keyboard code identifier
ALT_FRENCH	EQU	1			      ;AN000; French keyboard
ALT_ITALIAN	EQU	2			      ;AN000; Italian keyboard
ALT_UK		EQU	3			      ;AN000; UK English keyboard
						      ;
		PUBLIC	ALT_KYB_TABLE, ALT_KYB_TAB_1, ALT_KYB_ITEMS ;AN000;
ALT_KYB_TABLE	DB	ALT_KYB_ITEMS				    ;AN000; no of items in table
ALT_KYB_TAB_1	ALT_KYB_DEF  < 'FR', ALT_KYBD_FR, ALT_FRENCH  >     ;AN000; French keyboard
		ALT_KYB_DEF  < 'IT', ALT_KYBD_IT, ALT_ITALIAN >     ;AN000; Italian keyboard
		ALT_KYB_DEF  < 'UK', ALT_KYBD_UK, ALT_UK      >     ;AN000; UK English
ALT_KYB_ITEMS	EQU	($ - ALT_KYB_TAB_1) / TYPE ALT_KYB_DEF	    ;AN000; no of items
						      ;
		PUBLIC	ALT_KYBD_FR, ALT_KYBD_FR_1, ALT_FR_ITEMS ;AN000;
ALT_KYBD_FR	DB	ALT_FR_ITEMS		      ;AN000; Alternate French Keyboard-no of entries in table
ALT_KYBD_FR_1	FR_STRUC  <'120'>                     ;AN000;
		FR_STRUC  <'189'>                     ;AC000;JW
ALT_FR_ITEMS	EQU	($ - ALT_KYBD_FR_1) / TYPE FR_STRUC ;AN000;
						      ;
		PUBLIC	ALT_KYBD_IT, ALT_KYBD_IT_1, ALT_IT_ITEMS ;AN000;
ALT_KYBD_IT	DB	ALT_IT_ITEMS		      ;AN000; Alternate Italian keyboard-no of entries in table
ALT_KYBD_IT_1	IT_STRUC  <'142'>                     ;AC090;JW Switched with '141
		IT_STRUC  <'141'>                     ;AC090;JW
ALT_IT_ITEMS	EQU	($ - ALT_KYBD_IT_1) / TYPE IT_STRUC ;AN000;
						      ;
		PUBLIC	ALT_KYBD_UK, ALT_KYBD_UK_1, ALT_UK_ITEMS ;AN000;
ALT_KYBD_UK	DB	ALT_UK_ITEMS		      ;AN000; no of entries in table
ALT_KYBD_UK_1	UK_STRUC  <'168'>                     ;AN000;
		UK_STRUC  <'166'>                     ;AC000;JW
ALT_UK_ITEMS	EQU	($ - ALT_KYBD_UK_1) / TYPE UK_STRUC ;AN000;
						      ;
		PUBLIC	ALT_ID_DEF		      ;AN000;
ALT_ID_DEF	DB	0			      ;AN000;DT
						      ;
		PUBLIC	S_US			      ;AN000;
S_US		DW	M_US			      ;AN000;
P_US		DB	'US'                          ;AN000;
M_US		EQU	$ - P_US		      ;AN000;
						      ;
		PUBLIC	S_SWISS 		      ;AN000;
S_SWISS 	DW	M_SWISS 		      ;AN000;
P_SWISS 	DB	'SF'                          ;AN000;
M_SWISS 	EQU	$ - P_SWISS		      ;AN000;
						      ;
		PUBLIC	PRINTER_TABLES		      ;AN000;
PRINTER_TABLES	EQU	$			      ;AN000;
		PRINTER_DEF < > 		      ;AN000; LPT1
		PRINTER_DEF < > 		      ;AN000; LPT2
		PRINTER_DEF < > 		      ;AN000; LPT3
		PRINTER_DEF < > 		      ;AN000; COM1
		PRINTER_DEF < > 		      ;AN000; COM2
		PRINTER_DEF < > 		      ;AN000; COM3
		PRINTER_DEF < > 		      ;AN000; COM4
						      ;
		PUBLIC	N_NUMPRINT, MIN_NUMPRINT, MAX_NUMPRINT ;AN000;
N_NUMPRINT	DW	?			      ;AN000; No. of printers to install
MIN_NUMPRINT	EQU	0			      ;AN000;
MAX_NUMPRINT	EQU	7			      ;AN000;
						      ;
		PUBLIC	N_SERIAL, N_PARALLEL	      ;AN000;
N_PARALLEL	DW	?			      ;AN000;
N_SERIAL	DW	?			      ;AN000;
						      ;
		PUBLIC	I_PORT, I_REDIRECT, I_PRINTER ;AN000;
I_PORT		DW	?			      ;AN000; port number
I_REDIRECT	DW	?			      ;AN000; serial port redirection
I_PRINTER	DW	?			      ;AN000; index into printer list
						      ;
		PUBLIC	N_PRINTER_TYPE, E_SERIAL, E_PARALLEL ;AN000;
N_PRINTER_TYPE	DB	?			      ;AN000; printer type
E_SERIAL	EQU	53H			      ;AN000; Serial 'S'
E_PARALLEL	EQU	50H			      ;AN000; Parallel 'P'
						      ;
		PUBLIC	S_MODE_PARM, M_MODE_PARM      ;AN000;
S_MODE_PARM	DW	M_MODE_PARM		      ;AN000;
P_MODE_PARM	DB	40 DUP(?)		      ;AN000;
M_MODE_PARM	EQU	$ - P_MODE_PARM 	      ;AN000;
						      ;
		PUBLIC	S_CP_DRIVER, M_CP_DRIVER      ;AN000;
S_CP_DRIVER	DW	M_CP_DRIVER		      ;AN000;
P_CP_DRIVER	DB	22 DUP(?)		      ;AN000;
M_CP_DRIVER	EQU	$ - P_CP_DRIVER 	      ;AN000;
						      ;
		PUBLIC	S_CP_PREPARE, M_CP_PREPARE    ;AN000;
S_CP_PREPARE	DW	M_CP_PREPARE		      ;AN000;
P_CP_PREPARE	DB	12 DUP(?)		      ;AN000;
M_CP_PREPARE	EQU	$ - P_CP_PREPARE	      ;AN000;
						      ;
		PUBLIC	S_GRAPH_PARM, M_GRAPH_PARM    ;AN000;
S_GRAPH_PARM	DW	M_GRAPH_PARM		      ;AN000;
P_GRAPH_PARM	DB	20 DUP(?)		      ;AN000;
M_GRAPH_PARM	EQU	$ - P_GRAPH_PARM	      ;AN000;
						      ;
		PUBLIC	F_REVIEW, E_REVIEW_ACCEPT, E_REVIEW_VIEW ;AN000;
F_REVIEW	DW	?			      ;AN000; Review selection screen index
E_REVIEW_ACCEPT EQU	1			      ;AN000; user will accept selections made by SELECT
E_REVIEW_VIEW	EQU	2			      ;AN000; user wants to view/change selections made by SELECT
						      ;
		PUBLIC	N_DISPLAY, E_CPSW_DISP, E_NOCPSW_DISP ;AN000;
N_DISPLAY	DB	?			      ;AN000; display type indicator
E_CPSW_DISP	EQU	0			      ;AN000; display type will support CPSW
E_NOCPSW_DISP	EQU	1			      ;AN000; display type will not support CPSW
						      ;
		PUBLIC	N_YEAR, MIN_YEAR, MAX_YEAR    ;AN000;
N_YEAR		DW	?			      ;AN000; calender year
MIN_YEAR	EQU	1980			      ;AN000;
MAX_YEAR	EQU	2079			      ;AN000;
						      ;
		PUBLIC	N_MONTH, MIN_MONTH, MAX_MONTH ;AN000;
N_MONTH 	DW	?			      ;AN000; calender month
MIN_MONTH	EQU	1			      ;AN000;
MAX_MONTH	EQU	12			      ;AN000;
						      ;
		PUBLIC	N_DAY, MIN_DAY, MAX_DAY       ;AN000;
N_DAY		DW	?			      ;AN000; calender day
MIN_DAY 	EQU	1			      ;AN000;
MAX_DAY 	EQU	31			      ;AN000;
						      ;
		PUBLIC	N_HOUR, MIN_HOUR, MAX_HOUR    ;AN000;
N_HOUR		DW	?			      ;AN000; hour
MIN_HOUR	EQU	0			      ;AN000;
MAX_HOUR	EQU	23			      ;AN000;
						      ;
		PUBLIC	N_MINUTE, MIN_MINUTE, MAX_MINUTE ;AN000;
N_MINUTE	DW	?			      ;AN000; minute
MIN_MINUTE	EQU	0			      ;AN000;
MAX_MINUTE	EQU	59			      ;AN000;
						      ;
		PUBLIC	N_SECOND, MIN_SECOND, MAX_SECOND ;AN000;
N_SECOND	DW	?			      ;AN000; second
MIN_SECOND	EQU	0			      ;AN000;
MAX_SECOND	EQU	59			      ;AN000;
						      ;
		PUBLIC	PARM_BLOCK, CMD_BUFF	      ;AN000;
PARM_BLOCK	LABEL	WORD			      ;AN000; parameter block for EXEC_PROGRAM
		DW	0			      ;AN000; use parent environment
		DW	OFFSET CMD_BUFF 	      ;AN000; pointer to commnad line
		DW	?			      ;AN000; segment for command line
		DW	5CH			      ;AN000; default FCB
		DW	?			      ;AN000; segment for FCB
		DW	6CH			      ;AN000; default FCB
		DW	?			      ;AN000; segment for FCB
PARM_BLOCK_END	EQU	$			      ;AN000;
						      ;
CMD_BUFF	LABEL	BYTE			      ;AN000; command line passed to EXEC_PROGRAM
		DB	?			      ;AN000; length of command line - excluding carrier return
		DB	80 DUP(?)		      ;AN000;
CMD_BUFF_END	EQU	$			      ;AN000;
						      ;
		PUBLIC	S_STR40, P_STR40, M_STR40     ;AN000;JW
S_STR40 	DW	M_STR40 		      ;AN000; Temporary variable for string field
P_STR40 	DB	40 DUP(?)		      ;AN000;JW
M_STR40 	EQU	$ - P_STR40		      ;AN000;JW
						      ;
		PUBLIC	S_STR120_1, P_STR120_1, M_STR120_1 ;AN000;
S_STR120_1	DW	M_STR120_1		      ;AN000; Temporary variable for string field
P_STR120_1	DB	120 DUP(?)		      ;AN000;
M_STR120_1	EQU	$ - P_STR120_1		      ;AN000;
						      ;
		PUBLIC	S_STR120_2, M_STR120_2	      ;AN000;
S_STR120_2	DW	M_STR120_2		      ;AN000; Temporary variable for string field
P_STR120_2	DB	120 DUP(?)		      ;AN000;
M_STR120_2	EQU	$ - P_STR120_2		      ;AN000;
						      ;
		PUBLIC	S_STR120_3, M_STR120_3	      ;AN000;
S_STR120_3	DW	M_STR120_3		      ;AN000; Temporary variable for string field
P_STR120_3	DB	120 DUP(?)		      ;AN000;
M_STR120_3	EQU	$ - P_STR120_3		      ;AN000;
						      ;
		PUBLIC	S_STR120_4, M_STR120_4	      ;AN039;SEH
S_STR120_4	DW	M_STR120_4		      ;AN039;SEH  Temporary variable for string field
P_STR120_4	DB	120 DUP(?)		      ;AN039;SEH
M_STR120_4	EQU	$ - P_STR120_4		      ;AN039;SEH
						      ;
		PUBLIC	SC_LINE, MC_LINE	      ;AN000;
SC_LINE 	DW	MC_LINE 		      ;AN000; Temporary variable for string field
PC_LINE 	DB	130 DUP(?)		      ;AN000;
MC_LINE 	EQU	$ - PC_LINE - 2 	      ;AN000;
						      ;
		PUBLIC	N_HANDLE		      ;AN000;
N_HANDLE	DW	?			      ;AN000; save location for file handle
						      ;
		PUBLIC	N_WRITE_HANDLE, N_WRITE_ERR_CODE ;AN000;
N_WRITE_HANDLE	DW	?			      ;AN000; File handle for prepared file
N_WRITE_ERR_CODE DW	?			      ;AN000; error code for prepared file
						      ;
		PUBLIC	N_RETCODE, N_COUNTER	      ;AN000;
N_RETCODE	DW	?			      ;AN000; Return code if execution not a success
N_COUNTER	DW	?			      ;AN000; Loop counter
						      ;
		PUBLIC	N_WORD_1, N_WORD_2, N_WORD_3, N_WORD_4, N_WORD_5, N_WORD_6,N_BYTE_1 ;AN000;
N_WORD_1	DW	?			      ;AN000; temp variable
N_WORD_2	DW	?			      ;AN000; temp variable
N_WORD_3	DW	?			      ;AN000; temp variable
N_WORD_4	DW	?			      ;AN000; temp variable
N_WORD_5	DW	?			      ;AN000; temp variable
N_WORD_6	DW	?			      ;AN000; temp variable
N_BYTE_1	DB	?			      ;AN025; temp variable
						      ;
		PUBLIC	SAVE_AREA		      ;AN000;
SAVE_AREA	DB	4 DUP(?)		      ;AN000; save area for stack pointer before EXEC program
						      ;
		PUBLIC	N_HOUSE_CLEAN,E_CLEAN_YES,E_CLEAN_NO ;AN000;
N_HOUSE_CLEAN	DB	?			      ;AN000;
E_CLEAN_YES	EQU	1			      ;AN000; erase temp files
E_CLEAN_NO	EQU	0			      ;AN000; no temp files to erase
						      ;
		PUBLIC	N_DSKCPY_ERR,E_DSKCPY_RETRY,E_DSKCPY_OK  ;AN000;JW
N_DSKCPY_ERR	DB	0			      ;AN000;JW
E_DSKCPY_RETRY	EQU	1			      ;AN000; retry diskcopy
E_DSKCPY_OK	EQU	0			      ;AN000; diskcopy successful
						      ;
		PUBLIC	E_CR, E_LF		      ;AN000;
E_CR		EQU	0DH			      ;AN000;
E_LF		EQU	0AH			      ;AN000;
						      ;
;		EQUATES FOR FIELD TYPES DEFINED IN DISK STATUS STRUCTURE
;		EQUATES FOR N_PART_NAME ; Partition name
		PUBLIC	E_PART_PRI_DOS, E_PART_EXT_DOS, E_PART_LOG_DRI ;AN000;
		PUBLIC	E_FREE_MEM_EDOS, E_FREE_MEM_DISK, E_PART_OTHER ;AN000;
E_PART_PRI_DOS	EQU	1			      ;AN000; Primary DOS partition
E_PART_EXT_DOS	EQU	2			      ;AN000; Extended DOS partition
E_PART_LOG_DRI	EQU	3			      ;AN000; Logical Drive
E_FREE_MEM_EDOS EQU	4			      ;AN000; Free space in Extended DOS partition
E_FREE_MEM_DISK EQU	5			      ;AN000; Free disk space - undefined partition
E_PART_OTHER	EQU	6			      ;AN000; other partition types i.e not DOS or EDOS

;		EQUATES FOR N_PART_STATUS ; Partition status
		PUBLIC	E_PART_UNFORMAT, E_PART_FORMAT ;AN000;
E_PART_UNFORMAT EQU	0			      ;AN000; partition is unformatted
E_PART_FORMAT	EQU	1			      ;AN000; partition is formatted
						      ;
;		EQUATES FOR N_PART_TYPE ; Partition type
		PUBLIC	E_PART_FAT, E_PART_KSAM, E_PART_UNDEF, E_PART_IGNORE ;AN000;
E_PART_FAT	EQU	1			      ;AN000; FAT
E_PART_KSAM	EQU	2			      ;AN000; KSAM
E_PART_UNDEF	EQU	3			      ;AN000; not assigned
E_PART_IGNORE	EQU	4			      ;AN000; other partition types i.e not FAT or KSAM
						      ;
		PUBLIC	N_DISK_1, E_DISK_1, N_DISK_2, E_DISK_2 ;AN000;
		PUBLIC	E_DISK_INV, E_DISK_NO_PART, E_DISK_VAL_PART ;AN000;
N_DISK_1	DW	?			      ;AN000; first fixed disk status
N_DISK_2	DW	?			      ;AN000; second fixed disk status
E_DISK_1	EQU	1			      ;AN000;
E_DISK_2	EQU	2			      ;AN000;
E_DISK_INV	EQU	0			      ;AN000; fixed disk not present
E_DISK_NO_PART	EQU	1			      ;AN000; fixed disk present : no DOS or EDOS partitions
E_DISK_VAL_PART EQU	2			      ;AN000; fixed disk present : DOS or EDOS partitions exist
						      ;
		PUBLIC	N_DISK_1_S1,N_DISK_2_S1,E_DISK_PRI,E_DISK_EXT_DOS ;AN000;
		PUBLIC	E_DISK_LOG_DRI,E_DISK_EDOS_MEM,E_DISK_FREE_MEM ;AN000;
N_DISK_1_S1	DW	?			      ;AN000; detailed status of first fixed drive
N_DISK_2_S1	DW	?			      ;AN000; detailed status or second fixed drive
E_DISK_PRI	EQU	01H			      ;AN000; Primary DOS partition exists
E_DISK_EXT_DOS	EQU	02H			      ;AN000; Extended DOS partitions exists
E_DISK_LOG_DRI	EQU	04H			      ;AN000; Logical drives exist in Extended Dos partitions
E_DISK_EDOS_MEM EQU	08H			      ;AN000; Free space exists in Extended DOS partition
E_DISK_FREE_MEM EQU	10H			      ;AN000; Free disk space exists
						      ;
		PUBLIC	N_DISK_1_S2, N_DISK_2_S2,E_SPACE_NONE,E_SPACE_EDOS,E_SPACE_DISK ;AN000;
N_DISK_1_S2	DW	0			      ;AN000;
N_DISK_2_S2	DW	0			      ;AN000;
E_SPACE_NONE	EQU	0			      ;AN000; no free space in EDOS and DISK
E_SPACE_EDOS	EQU	1			      ;AN000; free space in EDOS
E_SPACE_DISK	EQU	2			      ;AN000; no EDOS but free space in disk
						      ;
		PUBLIC	F_PARTITION, E_PART_DEFAULT, E_PART_USER ;AN000;
F_PARTITION	DW	1			      ;AN000; partition size division option
E_PART_DEFAULT	EQU	1			      ;AN000; default partition sizes are to be used
E_PART_USER	EQU	2			      ;AN000; user will define partition sizes
						      ;
		PUBLIC	I_DESTINATION, E_ENTIRE_DISK, E_PATH_ONLY ;AN000;JW
I_DESTINATION	DW	1			      ;AN000; destination on c: disk option	   JW
E_ENTIRE_DISK	EQU	1			      ;AN000; replace files across entire disk	   JW
E_PATH_ONLY	EQU	2			      ;AN000; replace files in dos path only	   JW
						      ;
		PUBLIC	F_FORMAT, E_FORMAT_FAT, E_FORMAT_NO ;AN000;
F_FORMAT	DW	?			      ;AN000;
E_FORMAT_FAT	EQU	1			      ;AN000; format partition with FAT
E_FORMAT_NO	EQU	2			      ;AN000; do not format partition
						      ;
		PUBLIC	N_DISK1_MODE, E_DISK1_INSTALL, E_DISK1_REPLACE ;AN000;
N_DISK1_MODE	DW	?			      ;AN000; install mode for fixed disk
E_DISK1_INSTALL EQU	1			      ;AN000; install DOS-no partitions
E_DISK1_REPLACE EQU	2			      ;AN000; replace DOS-partitions exist
						      ;
		PUBLIC	DISK_1_TABLE,DISK_1_VAL_ITEM,DISK_1_START,M_DISK_1_ITEMS ;AN000;
DISK_1_TABLE	DB	M_DISK_1_ITEMS		      ;AN000; maximum no of items in table
DISK_1_VAL_ITEM DB	0			      ;AN000; number of valid entries in table
DISK_1_START	DB	(100*TYPE DISK_STATUS) DUP (0) ;AN000;
M_DISK_1_ITEMS	EQU	($ - DISK_1_START) / TYPE DISK_STATUS ;AN000;
						      ;
		PUBLIC	DISK_2_TABLE,DISK_2_VAL_ITEM,DISK_2_START,M_DISK_2_ITEMS ;AN000;
DISK_2_TABLE	DB	M_DISK_2_ITEMS		      ;AN000; maximum no of items in table
DISK_2_VAL_ITEM DB	0			      ;AN000; number of valid entries in table
DISK_2_START	DB	(100*TYPE DISK_STATUS) DUP (0) ;AN000;
M_DISK_2_ITEMS	EQU	($ - DISK_2_START) / TYPE DISK_STATUS ;AN000;
						      ;
		PUBLIC	N_NAME_PART,N_SIZE_PART,N_STATUS_PART,P_DRIVE_PART,N_TYPE_PART,N_LEVEL1_PART,N_LEVEL2_PART,N_LEVEL3_PART,N_LEVEL4_PART ;AC065;SEH add check for version number ;AN000;
N_NAME_PART	DB	0			      ;AN000; partition name
N_SIZE_PART	DW	0			      ;AN000; partition size
N_STATUS_PART	DB	0			      ;AN000; partition status
N_TYPE_PART	DB	0			      ;AN000; partition type
P_DRIVE_PART	DB	' '                           ;AN000; drive letter assigned
N_LEVEL1_PART	DB	0			      ;AN065; SEH version number (1st part) for DOS 4.00 1st part = blank
N_LEVEL2_PART	DB	0			      ;AN065; SEH version number (2nd part) for DOS 4.00 2nd part = 4
N_LEVEL3_PART	DB	0			      ;AN065; SEH version number (3rd part) for DOS 4.00 3rd part = .
N_LEVEL4_PART	DB	0			      ;AN065; SEH version number (4th part) for DOS 4.00 4th part = 0
						      ;
		PUBLIC	N_DISK_NUM,E_DISK_ROW,E_DISK_COL,E_DRIVE_ROW,E_DRIVE_COL ;AN000;
N_DISK_NUM	DB	?			      ;AN000; holder for ascii disk number
E_DISK_ROW	EQU	0			      ;AN000; row for fixed disk number   (0 based)
E_DISK_COL	EQU	19			      ;AN000; column for fixed disk number
E_DRIVE_ROW	EQU	0			      ;AN000; row for logical drive letter    (0 based)
E_DRIVE_COL	EQU	19			      ;AN000; column for logical drive letter
						      ;
		PUBLIC	STACK_INDEX, SELECT_STACK, STACK_SIZE ;AN000;
STACK_INDEX	DB	00H			      ;AN000; no. of entries in stack
SELECT_STACK	DW	50  DUP(?)		      ;AN000; stack entries
STACK_SIZE	EQU	$ - SELECT_STACK	      ;AN000; size of SELECT stack
						      ;
		PUBLIC	N_DEST,E_DEST_DOS,E_DEST_SHELL ;AN000;
N_DEST		DB	?			      ;AN000;
E_DEST_DOS	EQU	1			      ;AN000;
E_DEST_SHELL	EQU	2			      ;AN000;
						      ;
; Variables which return information if a critical error occurs.
; INT_24_ERROR returns the error code from the critical error routine
; INT_24_FLAG is set if a critical error occurs.  It is not enough
; to check if INT_24_ERROR is non-zero, since a value of zero is a critical error.
PUBLIC	INT_24_ERROR, INT_24_FLAG		      ;AN000;
INT_24_ERROR	   DW	     0			      ;AN000;
INT_24_FLAG	   DB	     0			      ;AN000;
						      ;
; Area to save the old interrupt 23h vector for restoration when the program is done.
PUBLIC	OLD_INT_23				      ;AN074;SEH ctrl-break
OLD_INT_23	   DD	     0			      ;AN074;SEH
; Area to save the old interrupt 24h vector for restoration when the program is done.
PUBLIC	OLD_INT_24				      ;AN000;
OLD_INT_24	   DD	     0			      ;AN000;
; Area to save the old interrupt 2Fh vector for restoration when the program is done.
PUBLIC	OLD_INT_2F				      ;AN000;
OLD_INT_2F	   DD	     0			      ;AN000;
						      ;
PUBLIC MEM_SIZE 				      ;AN000;
MEM_SIZE	   DW	     0			      ;AN000;DT installed memory in machine
						      ;
	PUBLIC FORMAT_WHICH, STARTUP, SHELL	      ;AN000;
FORMAT_WHICH	DB	?			      ;AN111; indicator for which disk (720) to format JW
STARTUP 	EQU	0			      ;AN111; format startup
SHELL		EQU	1			      ;AN111; format shell
						      ;
	PUBLIC DISK_PANEL, SEARCH_FILE		      ;AN000;JW
DISK_PANEL	DW	?			      ;AN000;JW Holds panel number for INSERT_DISK
SEARCH_FILE	DW	?			      ;AN000;JW Holds offset of file to search for

	PUBLIC	SUB_ERROR			      ;AN000;JW Holds error code of sub process
SUB_ERROR	DB	?			      ;AN000;JW

include msgdcl.inc
						      ;
DATA	ENDS					      ;AN000;
	END					      ;AN000;