home *** CD-ROM | disk | FTP | other *** search
- /* PICK_REZ -- a program to select medium or high resolution upon boot */
- /* by Tim Ekdom (72575,1473) */
- /* 4/17/87 #3 */
-
- /* misc taken from OSBIND.H */
-
- extern char bios(); /* I changed the return values */
- extern int gemdos(); /* for my own nefarious purposes */
-
- char get_answer(); /* return value declaration */
-
- #define Bconin(a) bios(2,a) /* character in */
- #define Bconout(a,b) bios(3,a,b) /* character out */
-
- #define Cconws(a) gemdos(0x9, a) /* write a string */
- #define Fopen(a,b) gemdos(0x3d,a,b) /* open a file */
- #define Fclose(a) gemdos(0x3e,a) /* close a file */
- #define Frename(a,b,c) gemdos(0x56,a,b,c) /* rename a file */
-
- /* and a couple of mine */
-
- #define FALSE 0
- #define TRUE 1
- #define READ 0
-
- /* global variables */
-
- short med_flag, low_flag;
- int status;
- char answer;
- char desk_low[] = "DESKTOP.LOW";
- char desk_med[] = "DESKTOP.MED";
- char desk_inf[] = "DESKTOP.INF";
-
- /* main program */
-
- main() {
- Bconout (2, 27); /* clear screen */
- Bconout (2, 69);
- Cconws ("\n\r");
-
- low_flag = med_flag = FALSE; /* init flags */
-
- status = Fopen (desk_low, READ); /* is DESKTOP.LOW here? */
-
- if (status > 0) /* yes, it is, */
- med_flag = TRUE; /* then DESKTOP.INF must be medium rez */
- Fclose (desk_low);
-
- if (! med_flag) { /* if DESKTOP.LOW not found, */
- status = Fopen (desk_med, READ); /* is DESKTOP.MED here? */
- if (status > 0) /* yes, it is, */
- low_flag = TRUE; /* then DESKTOP.INF is low rez */
- Fclose (desk_med);
- }
-
- if (med_flag) { /* if current DESKTOP.INF is for medium rez */
- Cconws (" Currently Medium Resolution.\n\r");
- Cconws (" Switch to Low? "); /* prompt for y/n */
- answer = get_answer(); /* get answer */
- if (answer == 'Y' || answer == 'y') { /* if yes, */
- to_low(); /* set .INF to low rez */
- Cconws (" OK! ");
- }
- }
-
- if (low_flag) { /* if current .INF for low rez */
- Cconws (" Currently Low Resolution.\n\r");
- Cconws (" Switch to Medium? ");
- answer = get_answer(); /* get response */
- if (answer == 'Y' || answer == 'y') { /* if yes, */
- to_medium(); /* set .INF to med rez */
- Cconws (" OK! ");
- }
- }
- }
-
-
- /* get answer, return char Y,y,N,n */
-
- char get_answer() {
-
- short done;
- char key;
- done = FALSE;
- while (! done) {
- key = Bconin (2); /* get a keypress */
- if (key == 'Y' || key == 'y' || key == 'N' || key == 'n')
- done = TRUE; /* if it's Y,y,N,n then done */
- }
- Bconout (2, key);
- return (key);
- }
-
- /* rename DESKTOP.MED to DESKTOP.INF */
-
- to_medium() {
-
- int dummy;
-
- dummy = Frename (0, desk_inf, desk_low); /* .INF to .LOW */
- dummy = Frename (0, desk_med, desk_inf); /* .MED to .INF */
- }
-
- /* rename DESKTOP.LOW to DESKTOP.INF */
-
- to_low() {
-
- int dummy;
-
- dummy = Frename (0, desk_inf, desk_med); /* .INF to .MED */
- dummy = Frename (0, desk_low, desk_inf); /* .LOW to .INF */
- }
-
-
-