summaryrefslogtreecommitdiff
path: root/v4.0/src/SELECT/GET_HELP.ASM
blob: 4aacaa5c2667bcb00d19e46a7439d5998d02e410 (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
PAGE 55,132				;AN000;
NAME	SELECT				;AN000;
TITLE	SELECT - GET_HELP_ID		;AN000;
SUBTTL	Get_Help.asm			;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	GET_HELP_ID
;
; Entry:
;
;
;
; Exit:
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SELECT	SEGMENT PARA PUBLIC 'SELECT'    ;AN000;segment for far routine
	ASSUME	CS:SELECT		;AN000;
					;
					;
INP_HELP_ID	DW     12,10,10 	;AN000; help_id  1, row', col'   STR_DOS_LOC
		DW     19,12,15 	;AN000; help_id  2, row', col'   STR_EXT_PARMS
		DW     31,11,20 	;AN000; help_id  3, row', col'   STR_DOS_PATH
		DW     32,11,20 	;AN000; help_id  4, row', col'   STR_DOS_APPEND
		DW     33,11,20 	;AN000; help_id  5, row', col'   STR_DOS_PROMPT
		DW     34,12,20 	;AN000; help_id  6, row', col'   STR_SHELL
		DW     35,12,20 	;AN000; help_id  7, row', col'   STR_KSAM
		DW     35,12,20 	;AN000; help_id  8, row', col'   STR_FASTOPEN
		DW     36,12,20 	;AN000; help_id  9, row', col'   STR_SHARE
		DW     37,12,20 	;AN000; help_id 10, row', col'   STR_GRAPHICS
		DW     38,12,20 	;AN000; help_id 11, row', col'   STR_XMAEM
		DW     39,12,20 	;AN000; help_id 12, row', col'   STR_XMA2EMS
		DW     40,13,20 	;AN000; help_id 13, row', col'   STR_VDISK
		DW     41,12,20 	;AN000; help_id 14, row', col'   STR_BREAK
		DW     42,12,20 	;AN000; help_id 15, row', col'   STR_BUFFERS
		DW     43,11,20 	;AC000; help_id 16, row', col'   STR_DOS_APPEND_P JW
		DW     44, 2,20 	;AN000; help_id 17, row', col'   STR_FCBS
		DW     45, 2,20 	;AN000; help_id 18, row', col'   STR_FILES
		DW     46, 2,20 	;AN000; help_id 19, row', col'   STR_LASTDRIVE
		DW     47, 2,20 	;AN000; help_id 20, row', col'   STR_STACKS
		DW     48, 2,20 	;AN000; help_id 21, row', col'   STR_VERIFY
		DW     13,10,10 	;AN000; help_id 22, row', col'   NUM_PRINTER
		DW     18,10,20 	;AN000; help_id 23, row', col'   NUM_EXT_DISK
		DW     53,12,20 	;AN000; help_id 24, row', col'   NUM_YEAR
		DW     53,12,20 	;AN000; help_id 25, row', col'   NUM_MONTH
		DW     53,12,20 	;AN000; help_id 26, row', col'   NUM_DAY
		DW     53,12,20 	;AN000; help_id 27, row', col'   NUM_HOUR
		DW     53,12,20 	;AN000; help_id 28, row', col'   NUM_MINUTE
		DW     53,11,20 	;AN000; help_id 29, row', col'   NUM_SECOND
INP_HELP_ID_LEN EQU ($-INP_HELP_ID)/6	;AN000;
INP_HELP_ID_ELE EQU 3			;AN000;
					;
SCR_HELP_ID	DW     3		;AN000; scr_id1
		DW     3,12,20		;AN000; help_id1,row1',col1'
		DW     4, 1,20		;AN000;
		DW     5, 3,20		;AN000;
		DW     2		;AN000; scr_id2
		DW     6, 1,20		;AN000;
		DW     7, 3,20		;AN000;
		DW     1		;AN000;
		DW     8, 3,20		;AN000;  SCR_CTY_1
		DW     1		;AN000;
		DW     8, 3,20		;AN000;  SCR_CTY_2
		DW     1		;AN000;
		DW     9,10,20		;AN000;  SCR_KYB_1
		DW     1		;AN000;
		DW     9,10,20		;AN000;  SCR_KYB_2
		DW     1		;AN000;
		DW    10,10,23		;AN000;  SCR_FR_KYB
		DW     1		;AN000;
		DW    10,10,23		;AN000;  SCR_IT_KYB
		DW     1		;AN000;
		DW    10,10,23		;AN000;  SCR_UK_KYB
		DW     1		;AN000;
		DW    11,10,20		;AN111;  SCR_DEST_B_C JW
		DW     1		;AN000;
		DW    14, 1,25		;AN000;  SCR_PRT_TYPE
		DW     1		;AN000;
		DW    15, 9,20		;AN000;  SCR_PARALLEL
		DW     1		;AN000;
		DW    16,10,20		;AN000;  SCR_SERIAL
		DW     1		;AN000;
		DW    17, 8,20		;AN000;  SCR_PRT_REDIR
		DW     2		;AN000;
		DW    20, 6,20		;AN000;  SCR_REVIEW
		DW    21, 6,20		;AN000;  SCR_REVIEW
		DW     9		;AN000;
		DW    22,10,11		;AN000;
		DW    23,11,11		;AN000;
		DW    24,12,11		;AN000;
		DW    25, 1,11		;AN000;
		DW    26, 2,11		;AN000;
		DW    27, 3,11		;AN000;
		DW    28, 4,11		;AN000;
		DW    29, 5,11		;AN000;
		DW    30, 6,11		;AN000;
		DW     6		;AN000;
		DW    22,10,11		;AN000;
		DW    24,11,11		;AN000;
		DW    26,12,11		;AN000;
		DW    27, 1,11		;AN000;
		DW    29, 2,11		;AN000;
		DW    30, 3,11		;AN000;  SCR_FUNC_DISKET
		DW     2		;AN000;
		DW    49, 1,11		;AN000;
		DW    50, 1,11		;AN000;  SCR_FIXED_FIRST
		DW     2		;AN000;
		DW    51, 1,11		;AN000;
		DW    52, 1,11		;AN000;  SCR_FIXED_BOTH
		DW     2		;AN000;
		DW    54, 1,11		;AN000;
		DW    55, 1,11		;AN000;  SCR_FORMAT
		DW     0		;AN000;  SCR_CONTEXT_HLP
		DW     0		;AN000;  SCR_INDEX_HLP
		DW     0		;AN000;  SCR_TITLE_HLP
		DW     0		;AN000;
		DW     0		;AN000;
		DW     2		;AN000;  SCR_COPY_DEST		 JW
		DW    18,10,10		;AC035;  SEH new help text
		DW    19,10,10		;AC035;  SEH new help text
		DW     1		;AN000;
		DW    11,10,20		;AN111;  SCR_DEST_A_C JW
		DW     2		;AN000;
		DW    56, 6,20		;AN000;  SCR_choose_screen
		DW    57, 6,20		;AN000;  SCR_choose_screen
SCR_HELP_ID_LEN EQU    28		;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
;	GET_HELP_ID
;
; Entry:
;	AX = 1	for input field help_id's
;	   BX = field_id
;	AX = 2	for scroll help_id's
;	   BX = scroll_id
;	   CX = index
;
; Exit:
;	AX = help_id
;	DH = row'
;	DL = col'
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
THREE	DW	3			;AN000;
					;
	PUBLIC	GET_HELP_ID		;AN000;
GET_HELP_ID	PROC			;AN000;
	CMP	AX,1			;AN000;
	JNE	GH_8			;AN000;
					;
	CMP	AX,INP_HELP_ID_LEN	;AN000;
	JA	GH_8			;AN000;
					;
	PUSH	BX			;AN000;
	PUSH	CX			;AN000;
	MOV	AX,BX			;AN000;
	DEC	AX			;AN000;
	MOV	BX,INP_HELP_ID_ELE*2	;AN000;
	MUL	BX			;AN000;
	MOV	BX,AX			;AN000;
	MOV	AX,CS:[BX].INP_HELP_ID	;AN000;
	MOV	CX,CS:[BX+2].INP_HELP_ID;AN000;
	MOV	DX,CS:[BX+4].INP_HELP_ID;AN000;
	XCHG	CH,CL			;AN000;
	MOV	DH,CH			;AN000;
	POP	CX			;AN000;
	POP	BX			;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	AX = 2	for scroll help_id's
;	   BX = scroll_id
;	   CX = index
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GH_8:	CMP	AX,2			;AN000;
	JNE	GH_20			;AN000;
					;
	CMP	BX,SCR_HELP_ID_LEN	;AN000;
	JA	GH_20			;AN000;
					;
	OR	CX,CX			;AN000;
	JE	GH_20			;AN000;
					;
	PUSH	CX			;AN000; search for matching scroll_id
	PUSH	SI			;AN000;
	MOV	DX,1			;AN000;
	XOR	SI,SI			;AN000;
					;
GH_9:	CMP	DX,BX			;AN000;
	JE	GH_10			;AN000;
	MOV	AX,CS:[SI]+SCR_HELP_ID	;AN000; get number of help screens
	PUSH	DX			;AN000;
	MUL	THREE			;AN000;
	POP	DX			;AN000;
	ADD	AX,1			;AN000; +additional entries (row',col',count)
	SHL	AX,1			;AN000; account for WORD entries
	ADD	SI,AX			;AN000;
	INC	DX			;AN000;
	CMP	DX,SCR_HELP_ID_LEN	;AN000;
	JBE	GH_9			;AC000; JW Changed to JBE
	JMP	GH_15			;AN000;
					;
GH_10:	CMP	CX,CS:[SI]+SCR_HELP_ID	;AN000; check for index out of range?
	JBE	GH_11			;AN000;  then
	MOV	CX,1			;AN000;  set to first help_id....
					;
GH_11:	MOV	AX,CX			;AN000; scroll_id found!!!!
	DEC	AX			;AN000;
	MUL	THREE			;AN000;
	INC	AX			;AN000;
	SHL	AX,1			;AN000;
	ADD	SI,AX			;AN000;
	MOV	AX,CS:[SI]+SCR_HELP_ID	;AN000;
	MOV	CX,CS:[SI+2].SCR_HELP_ID;AN000;
	MOV	DX,CS:[SI+4].SCR_HELP_ID;AN000;
	XCHG	CH,CL			;AN000;
	MOV	DH,CH			;AN000;
GH_15:	POP	SI			;AN000;
	POP	CX			;AN000;
GH_20:					;AN000;
	RET				;AN000;
GET_HELP_ID	ENDP			;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SELECT	ENDS				;AN000;
	END	GET_HELP_ID		;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;