]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/CMD/RESTORE/RT2.H

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / CMD / RESTORE / RT2.H
1 /* \ f \e0 */
2 /*---------------------------------------------------------
3 /*-
4 /*- RESTORE Utility include file RT2.H
5 /*-
6 /*---------------------------------------------------------*/
7
8
9
10 /*------------------------------------*/
11 /* MESSAGE DEFINITIONS */
12 /*------------------------------------*/
13 #define INVPARM 10 /* Parse class */ /*;AN000;6*/
14
15 #define INVALID_DOS_VER 1 /*;AN000;6*/
16 #define SOURCE_TARGET_SAME 2 /*;AN000;6*/
17 #define INVALID_NUM_PARM 3 /*;AN000;6*/
18 #define PATH_NOT_FOUND 5 /*;AN000;6*/
19 #define INVALID_DRIVE 6 /*;AN000;6*/
20 #define NO_FILE_TO_RESTORE 7 /*;AN000;6*/
21 #define INSERT_SOURCE_DISK 8 /*;AN000;6*/
22 #define INSERT_TARGET_DISK 9 /*;AN000;6*/
23 #define PRESS_ANY_KEY 10 /*;AN000;6*/
24 #define DISK_OUT_OF_SEQUENCE 11 /*;AN000;6*/
25 #define LAST_FILE_NOT_RESTORED 12 /*;AN000;6*/
26 #define FILES_WERE_BACKUP_ON 13 /*;AN000;6*/
27 #define SOURCE_NO_BACKUP_FILE 14 /*;AN000;6*/
28 #define INSUFFICIENT_MEMORY 15 /*;AN000;6*/
29 #define FILE_IS_READONLY 16 /*;AN000;6*/
30 #define FILE_SEQUENCE_ERROR 17 /*;AN000;6*/
31 #define FILE_CREATION_ERROR 18 /*;AN000;6*/
32 #define TARGET_IS_FULL 19 /*;AN000;6*/
33 #define NOT_ABLE_TO_RESTORE_FILE 20 /*;AN000;6*/
34 #define RESTORE_FILE_FROM_DRIVE 21 /*;AN000;6*/
35 #define FILE_WAS_CHANGED 22 /*;AN000;6*/
36 #define DISKETTE_NUM 23 /*;AN000;6*/
37
38 #define INV_DATE 27 /*;AN000;6*/
39 #define INV_TIME 28 /*;AN000;6*/
40 #define NO_SOURCE 29 /*;AN000;6*/
41 #define NO_TARGET 30 /*;AN000;6*/
42 #define CRLF 31 /*;AN000;6*/
43
44 #define FILE_TO_BE_RESTORED 99 /*;AN000;6*/
45
46 /*------------------------------------*/
47 /*- MESSAGE CLASSES -*/
48 /*------------------------------------*/
49 #define EXTENDED 1 /*;AN000;6*/
50 #define PARSEERR 2 /*;AN000;6*/
51 #define UTILMSG -1 /*;AN000;6*/
52
53 /*\ f \e0*/
54 /*----------------------------------*/
55 /*- SUBROUTINE DECLARATIONS */
56 /*----------------------------------*/
57 void main(int ,char *[0]);
58 void set_input_switches(WORD,BYTE * *,WORD *,struct timedate *);
59 void verify_input_switches(BYTE *,struct timedate *);
60 int set_reset_test_flag(BYTE *,BYTE ,int );
61 void separate(BYTE *,BYTE *,BYTE *,BYTE *,BYTE *);
62 void initbuf(DWORD *);
63 void init_control_buf(unsigned long ,unsigned int *);
64 void usererror(WORD );
65 void unexperror(WORD );
66 void exit_routine(WORD );
67 void pascal far signal_handler_routine(void );
68 extern unsigned far pascal set_int24_vector(void); /*;AN000;*/
69 void com_msg(WORD );
70 int checkdosver(void );
71 void dorestore(BYTE ,BYTE ,BYTE *,BYTE *,BYTE *,BYTE *,struct timedate *);
72 void check_bkdisk_old(struct disk_header_old *, struct disk_info *,BYTE,unsigned int *);
73 void check_bkdisk_new(struct disk_header_new far *,struct disk_info *,BYTE,unsigned int *,unsigned int *);
74 void print_info(int ,int ,int);
75 WORD pathmatch(BYTE *,BYTE *);
76 WORD switchmatch(struct file_info *,BYTE,BYTE,struct timedate *);
77
78 int check_flheader_old(struct file_info *,unsigned char *,unsigned int ,
79 unsigned int ,unsigned int ,unsigned long ,unsigned int ,unsigned char ,
80 unsigned char ,unsigned char *,unsigned char *,unsigned int *);
81
82 int readonly_or_changed(unsigned int ,unsigned char ,unsigned char *, unsigned char *);
83 int fspecmatch(char *,char *);
84 WORD open_dest_file(struct file_info *,BYTE );
85 void build_path_create_file(BYTE *,BYTE,BYTE,DWORD); /*;AC000;3*/
86 int set_attributes_and_close(struct file_info *, BYTE);
87 int dos_write_error(DWORD ,BYTE );
88 int findfile_new(struct file_info *,WORD *,unsigned int *,BYTE *,BYTE *,WORD far * *,WORD far * *,unsigned int *,BYTE *);
89 int findnew_new(struct file_info *,WORD *,WORD *,BYTE *,BYTE *, WORD far * *,WORD far * *,WORD *,BYTE *);
90
91 void search_src_disk_old(struct disk_info *,struct file_info *,struct disk_header_old *,
92 struct disk_header_new far *,struct file_header_new far *,
93 unsigned char,unsigned char,unsigned long,unsigned int *,unsigned char *,unsigned char *,
94 unsigned char *,unsigned char *,struct timedate *);
95
96 void search_src_disk_new(struct disk_info *,struct file_info *,struct disk_header_old *,
97 struct disk_header_new far *,struct file_header_new far *,
98 unsigned char,unsigned char,unsigned int *,unsigned long,unsigned char *,unsigned char *,
99 unsigned char *,unsigned int *,struct timedate *);
100
101 int findfirst_new(struct file_info *,WORD *,unsigned int *,BYTE *,BYTE *,WORD far**,WORD far**,unsigned int *,BYTE *);
102 int findnext_new (struct file_info *,WORD *,unsigned int *,BYTE *,BYTE *,WORD far**,WORD far**,unsigned int *,BYTE *);
103
104 void restore_a_file(struct file_info *,struct disk_info *,unsigned long,unsigned int *,
105 struct file_header_new far *,struct disk_header_old *,struct disk_header_new far *,unsigned char,unsigned char,
106 unsigned char *,unsigned char *,unsigned char *,unsigned int *,unsigned int *);
107
108 /*----------------------------------------
109 /*- ADDED FOR DOS 4.00
110 /*----------------------------------------*/
111 int cdecl sprintf(char *,const char *, ...);
112 int cdecl printf(const char *,...);
113 void check_time(BYTE,BYTE,BYTE,BYTE); /*;AN000;4*//*;AC002;*/
114 void check_date(WORD,BYTE,BYTE); /*;AN000;4*//*;AC002;*/
115 void parse_error(WORD,BYTE); /*;AN000;4*//*;AC002;*/
116 void parse_init(void); /*;AN000;4*/
117 void process_switch(unsigned,char *); /*;AN000;4*//*;AC002;*/
118 void check_source_drive(int,char * []); /*;AN000;4*/
119 void check_target_filespec(int,char * []); /*;AN000;4*/
120 void display_it(WORD,WORD,WORD,WORD,BYTE); /*;AN000;6*/
121 void parse_command_line(int, char * []); /*;AN000;4*/
122 void check_appendX(void); /*;AN000;2*/
123 void read_in_first_dirblock(void); /* !wrw */
124 void read_in_a_fileheader(void); /* !wrw */
125 void read_in_next_dirblock(void); /* !wrw */
126 void get_fileheader_length(void); /*;AN000;3*/
127 WORD create_the_file(BYTE,DWORD); /*;AN000;3*/
128 void read_the_extended_attributes(DWORD); /*;AN000;3*/
129 void check_for_device_names(char * []); /*;AN000;p2591*/
130 WORD chek_DBCS(char *,WORD,char); /*;AN005;*/
131 void Get_DBCS_vector(void); /*;AN005;*/
132
133 extern void sysloadmsg(union REGS *, union REGS *); /*_msgret *//*;AN000;6 */
134 extern void sysdispmsg(union REGS *, union REGS *); /*_msgret *//*;AN000;6 */
135 extern void parse (union REGS *, union REGS *); /* _parse *//*;AN000;4 */
136