summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/CHKDSK/CHKDISP.ASM
blob: e4d6ebcb7637c4a797658abe593f243894b49132 (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
page	,132	;								;an000;bgb
;*****************************************************************************	;an000;bgb
;*****************************************************************************	;an000;bgb
;UTILITY NAME: FORMAT.COM							;an000;bgb
;										;an000;bgb
;MODULE NAME: DISPLAY.ASM							;an000;bgb
;										;an000;bgb
;										;an000;bgb
; Designed:  Mark T.	 							;an000;bgb
;										;an000;bgb
; Change List: AN000 - New code DOS 3.3 spec additions				;an000;bgb
;	       AC000 - Changed code DOS 3.3 spec additions			;an000;bgb
;*****************************************************************************	;an000;bgb
										;an000;bgb
	EXTRN	command_line_buffer:byte					;an000;bgb;an005;bgb
;*****************************************************************************	;an000;bgb
; Include Files 								;an000;bgb
;*****************************************************************************	;an000;bgb
.xlist										;an000;bgb
include pathmac.inc								;an040;bgb
include chkseg.inc								;an000;bgb
INCLUDE CPMFCB.INC								;an000;bgb
INCLUDE CHKEQU.INC								;an000;bgb
.list										;an000;bgb
INCLUDE CHKMSG.INC								;an000;bgb
.xlist										;an000;bgb
INCLUDE SYSMSG.INC								;an000;bgb
.list										;an000;bgb
      ; 									;an000;bgb
cstack	 segment para stack 'STACK'                                             ;an000;bgb
	db	62 dup ("-Stack!-")      ; (362-80h) is the additional IBM ROM  ;an000;bgb
cstack	 ends									;an000;bgb
										;an000;bgb
										;an000;bgb
;*****************************************************************************	;an000;bgb
; Message Services								;an000;bgb
;*****************************************************************************	;an000;bgb
MSG_UTILNAME  <CHKDSK>								;an000;bgb
										;an000;bgb
;.xlist 									 ;an000;bgb
data	segment public para 'DATA'                                              ;an000;bgb
Msg_Services	<MSGDATA>							;an000;bgb
data	ends									;an000;bgb
										;an000;bgb
code	segment public para 'CODE'                                              ;an000;bgb
pathlabl	msgret								;an040;bgb
Msg_Services	<NEARmsg>							;an000;bgb
Msg_Services	<LOADmsg>							;an000;bgb
Msg_Services	<DISPLAYmsg,CHARmsg,NUMmsg,TIMEmsg,DATEmsg>			;an000;bgb
pathlabl	msgret								;an040;bgb
Msg_Services	<CHKDSK.CLA,CHKDSK.CLB,CHKDSK.CLC,CHKDSK.CLD,CHKDSK.CL1,CHKDSK.CL2,CHKDSK.CTL> ;an037;bgb
code	ends									;an000;bgb
.list										;an000;bgb
										;an000;bgb
;										;an000;bgb
;*****************************************************************************	;an000;bgb
; Public Declarations								;an000;bgb
;*****************************************************************************	;an000;bgb
	Public	SysLoadMsg							;an000;bgb
	Public	SysDispMsg							;an000;bgb
										;an000;bgb
										;an000;bgb
;										;an000;bgb
;***************************************************************************	;an000;bgb
; Message Structures								;an000;bgb
;***************************************************************************	;an000;bgb
Message_Table struc				;				;an000;bgb;AN000;
Entry1	dw	0				;				;an000;bgb;AN000;
Entry2	dw	0				;				;an000;bgb;AN000;
Entry3	dw	0				;				;an000;bgb;AN000;
Entry4	dw	0				;				;an000;bgb;AN000;
Entry5	db	0				;				;an000;bgb;AN000;
Entry6	db	0				;				;an000;bgb;AN000;
Entry7	dw	0				;				;an000;bgb;AN000;
Message_Table ends				;				;an000;bgb;AN000;
										;an000;bgb
code	segment public para 'CODE'              ;                               ;an000;bgb;AN000;
;*****************************************************************************	;an000;bgb
;Routine name&gml Display_Interface						;an000;bgb
;*****************************************************************************	;an000;bgb
;										;an000;bgb
;DescriptioN&gml Save all registers, set up registers required for SysDispMsg	;an000;bgb
;	      routine. This information is contained in a message description	;an000;bgb
;	      table pointed to by the DX register. Call SysDispMsg, then	;an000;bgb
;	      restore registers. This routine assumes that the only time an	;an000;bgb
;	      error will be returned is if an extended error message was	;an000;bgb
;	      requested, so it will ignore error returns			;an000;bgb
;										;an000;bgb
;Called Procedures: Message (macro)						;an000;bgb
;										;an000;bgb
;Change History&gml Created	   4/22/87	   MT				;an000;bgb
;										;an000;bgb
;Input&gml ES&gmlDX = pointer to message description				;an000;bgb
;										;an000;bgb
;Output&gml None								;an000;bgb
;										;an000;bgb
;Psuedocode									;an000;bgb
;----------									;an000;bgb
;										;an000;bgb
;	Save all registers							;an000;bgb
;	Setup registers for SysDispMsg from Message Description Tables		;an000;bgb
;	CALL SysDispMsg 							;an000;bgb
;	Restore registers							;an000;bgb
;	ret									;an000;bgb
;*****************************************************************************	;an000;bgb
Public	Display_Interface							;an000;bgb
Display_Interface   proc			;				;an000;bgb;AN000;
	push	ds								;an000;bgb
	push	ax								;an000;bgb
	push	bx								;an000;bgb
	push	cx								;an000;bgb
	push	dx								;an000;bgb
	push	si								;an000;bgb
	push	di								;an000;bgb
	mov	di,dx				;Change pointer to table	;an000;bgb;AN000;
	mov	dx,dg				;Point to group 		;an000;bgb
	mov	ds,dx				;				;an000;bgb
	mov	ax,[di].Entry1			;Message number 		;an000;bgb;AN000;
	mov	bx,[di].Entry2			;Handle 			;an000;bgb;AN000;
	mov	si,[di].Entry3			;Sublist			;an000;bgb;AN000;
	mov	cx,[di].Entry4			;Count				;an000;bgb;AN000;
	mov	dh,[di].Entry5			;Class				;an000;bgb;AN000;
	mov	dl,[di].Entry6			;Function			;an000;bgb;AN000;
	mov	di,[di].Entry7			;Input				;an000;bgb;AN000;
	call	SysDispMsg			;Display the message		;an000;bgb;AN000;
	pop	di								;an000;bgb
	pop	si								;an000;bgb
	pop	dx								;an000;bgb
	pop	cx								;an000;bgb
	pop	bx								;an000;bgb
	pop	ax								;an000;bgb
	pop	ds								;an000;bgb
	ret					;All done			;an000;bgb;AN000;
Display_Interface      endp			;				;an000;bgb;AN000;
										;an000;bgb
include msgdcl.inc

code	ends									;an000;bgb
	end									;an000;bgb