summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/RECOVER/RECDATA.INC
blob: 4685790f7459277d3fe4c6b523101ad81b778a41 (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
 data	 segment PUBLIC para 'DATA'      ;AC000;bgb
;*****************************************************************************
; Data Area
;*****************************************************************************
;
lastchar      dw 0								;an024;bgb
lastbs	      dw 0								;an024;bgb
fndback       dw 0	    ;point to where backslash found
old_subdir    db 64 dup(0) ;current sub directory
new_subdir    db 64 dup(0) ;new     sub directory
paras_per_64k dw 0
paras_per_fat dw 0
secs_per_64k  dw 0
sec_count     dw 0
sixteen     dw	   16			; mul ax for 32 bytes / fat entry
exit_sw     dw	    ?			; loop exit switch			;AN000;bgb
exit_sw2    dw	    ?			; loop exit switch			;AN000;bgb
old_drive     db 0			;original drive to restore to		;an008;bgb
drvlet	    db	    'A: ',13,10,13,10,0         ;                               ;AN000;
rec_num     dw	    ?				;				;AN000;
x_value_lo  dw	?				;				;AN000;
x_value_hi  dw	?				;				;AN000;
y_value_lo  dw	?				;				;AN000;
y_value_hi  dw	?				;				;AN000;
DRVLET1     db	    "A",0
;
 HEADER  DB	 "Vers 2.00"
;-----------------------------------------------------------------------;
 Prompted db	 0			 ; TRUE => prompt has already been done
 hardch  dd	 ?			 ; saved int 24 vector
 the_root db	 0			 ; root directory flag
 fudge	 db	 0			 ; directory changed flag
 user_drive db	 0
 drive	 db	 0
 dirchar db	 "/",0
 userdir db	 "/",0
	 db	 (dirstrlen) dup(0)
 fname_buffer db 128 dup(0)

found	db	no
done	db	no
PSP_Segment dw	0
ExitStatus db	0			;Errorlevel code		;AN000;

					;
BPB_Buffer A_DeviceParameters <>	;				;AN000;

TranSrc db	"A:\",0                 ;                               ;AN000;

Data_Start_Low dw ?			;				;AN000;
Data_Start_High dw ?			;				;AN000;

INT_23_Old_Off dw ?			;				;AN000;
INT_23_Old_Seg dw ?			;				;AN000;
INT_24_Old_Off dw ?			;				;AN000;
INT_24_Old_Seg dw ?			;				;AN000;


Command_Line_Buffer db 128 dup(0)	;				;AN000;
Fatal_Error db	0			;				;AN000;

Command_Line db NO			;				;AN000;

;These should stay together			;				;an022;bgb
; ---------------------------------------	;  ;				;an022;bgb
ifdef fsexec									;an022;bgb
 FS_String_Buffer db 13 dup(" ")         ;                            ;AN000;    ;an022;bgb
 FS_String_End db "REC.EXE",0            ;                            ;AN000;    ;an022;bgb
;----------------------------------------	;				;an022;bgb
 FS_Not_Fat db	 0			 ;				 ;AN000;;an022;bgb
FAT12_String db "FAT12   "              ;
FAT16_String db "FAT16   "              ;

Media_ID_Buffer Media_ID <>		;				;AN000;
endif										;an022;bgb

Append	db	0			;


dirent	db	'FILE0000REC'
	db	21 dup (00)

fcb_copy db	32 dup (?)

filcnt	dw	0000
fatcnt	db	00
fatnum	db	00
fatsiz	dw	0000
firfat	dw	0000
fatptr	dw	0000
secall	dw	0000			; sectors per cluster
target	dw	0000
maxent	dw	0000
firrec	dw	0000
firdir	dw	0000
bytes_per_sector  dw	  0000
secsiz	dw	0000
siztmp	dw	0000
	dw	0000
filsiz	dw	0000
	dw	0000 ;carry noted here - 2 bytes after filsiz
MaxClus DW	0
lastfat dw	0000
;
dbcs_sw 	    db	    0 ;zero if not dbcs - one if dbcs found	       ;an024;bgb
DBCS_Vector	    db	    0
DBCS_Vector_Off     dw	    0
DBCS_Vector_Seg     dw	    0
Read_Write_Relative Relative_Sector_Buffer  <>
Drive_Letter_Msg db "A:",0                      ;Drive for exec fail message

ifdef fsexec									;an022;bgb
;Exec_Block	 Exec_Block_Parms <>						;an022;bgb
;EXEC_Path	 db    66 dup(0)						;an022;bgb
;These next two should stay together
; ---------------------------------------
;Path_String db  "PATH="                         ;                               ;an022;bgb
;Len_Path_String equ 5			 ; length of path= string   ;AN000;bgb	 ;an022;bgb
endif										;an022;bgb
						;
;----------------------------------------
driveLetter db	"X",":",0


						;				;     ;
;----------------------------------------

;Path_SI dw	 0
;Env_DS  dw	 0
table	dw	offset dg:fattbl	  ;AC000;bgb
data	ends


;*****************************************************************************
; LAST DATA AREA
; this data area writes over ram, so leave it at the very end of the pgm.
;*****************************************************************************
lastseg  segment PUBLIC para 'last'      ;AC000;bgb
	assume	ds:dg
fattbl	db	0			  ;AC000;bgb
lastseg ends			  ;AN000;bgb

;
data	segment public para 'DATA'      ;AC000;bgb
;******************************************************************************
; Public Data
;******************************************************************************
 public header, prompted, hardch, the_root, fudge, user_drive, drive, dirchar	;AN000;bgb
 public userdir, fname_buffer, found, done, driveletter, psp_segment, exitstatus ;AN000;bgb
 public drvlet, bpb_buffer, transrc, data_start_low, data_start_high,		;AN000;bgb
 public int_23_old_off, int_23_old_seg, int_24_old_off, int_24_old_seg, append	;AN000;bgb
 public command_line_buffer, command_line_length, fatal_error, command_line,	;AN000;bgb
ifdef fsexec									;an022;bgb
 public fs_string_buffer, fs_string_end, len_fs_string_end, fs_not_fat, 	;an022;bgb;AN000;bgb
 public fat12_string, fat16_string, len_fs_id_string, media_id_buffer,		;an022;bgb;AN000;bgb
 public exec_block, exec_path, path_string ;AN000;bgb				;an022;bgb
 public len_path_string 							;an022;bgb;AN011;bgb
 endif										;an022;bgb
 public dirent, fcb_copy, filcnt, fatcnt, fatnum, fatsiz, firfat, fatptr ;AN000;bgb
 public secall, target, maxent, firrec, firdir, secsiz, siztmp, filsiz, maxclus ;AN000;bgb
 public lastfat, table, fattbl, dbcs_vector, dbcs_vector_off, dbcs_vector_seg	;AN000;bgb
 public read_write_relative, drive_letter_msg ;AN000;bgb			;an022;bgb
 public drvlet1, rec_num, x_value_lo, x_value_hi, y_value_lo, y_value_hi
 public bytes_per_sector, exit_sw, exit_sw2, paras_per_fat, secs_per_64k
 public sec_count, paras_per_64k
data	ends ;put this 1st so that the recmsg works