16 clear_screen(0,0,24,79);
29 /* Type of DOS partition for create */
30 clear_screen(0,0,24,39);
41 /* Shortcut screen C:*/
42 clear_screen(0,0,24,39);
51 /* Shortcut screen D:*/
52 clear_screen(0,0,24,39);
62 /* Create primary DOS partition screen */
89 /* Create Extended Partition */
90 clear_screen(0,0,24,39);
114 /* Create logical drive screen */
115 clear_screen(0,0,24,39);
117 for (i=0;i < 168;i++)
122 for (i=0;i < 168;i++)
146 /* Change active partition screen */
147 clear_screen(0,0,24,39);
166 /* Delete Partition Screen */
167 clear_screen(0,0,24,39);
178 /* Delete Primary Screen */
179 clear_screen(0,0,24,39);
198 /* Delete Extended Screen */
199 clear_screen(0,0,24,39);
218 /* Delete Logical Drives */
219 clear_screen(0,0,24,39);
236 /* Display Partition Information */
237 clear_screen(0,0,24,39);
255 /* Display Logical Drive Info */
256 clear_screen(0,0,24,39);
272 clear_screen(0,0,24,39);
276 clear_screen(0,0,24,39);
280 clear_screen(0,0,24,39);
284 clear_screen(0,0,24,39);
288 clear_screen(0,0,24,39);
293 clear_screen(0,0,24,39);
297 clear_screen(0,0,24,39);
301 clear_screen(0,0,24,39);
305 clear_screen(0,0,24,39);
309 clear_screen(0,0,24,39);
313 clear_screen(0,0,24,39);
317 clear_screen(0,0,24,39);
321 clear_screen(0,0,24,39);
325 clear_screen(0,0,24,39);
329 clear_screen(0,0,24,39);
333 clear_screen(0,0,24,39);
337 clear_screen(0,0,24,39);
341 clear_screen(0,0,24,39);
345 clear_screen(0,0,24,39);
349 clear_screen(0,0,24,39);
353 clear_screen(0,0,24,39);
357 clear_screen(0,0,24,39);
361 clear_screen(0,0,24,39);
365 clear_screen(0,0,24,39);
369 clear_screen(0,0,24,39);
373 clear_screen(0,0,24,39);
377 clear_screen(0,0,24,39);
381 clear_screen(0,0,24,39);
385 clear_screen(0,0,24,39);
389 clear_screen(0,0,24,39);
393 clear_screen(0,0,24,39);
397 clear_screen(0,0,24,39);
405 clear_screen(0,0,24,39);
409 clear_screen(0,0,24,39);
413 clear_screen(0,0,24,39);
417 clear_screen(0,0,24,39);
421 clear_screen(0,0,24,39);
425 clear_screen(0,0,24,39);
431 clear_screen(0,0,24,39);
436 clear_screen(0,0,24,39);
443 clear_screen(0,0,24,39);
447 clear_screen(0,0,24,39);
453 /******************* START OF SPECIFICATIONS *******************/
455 /* SUBROUTINE NAME: DISPLAY */
457 /* DESCRIPTIVE NAME: Display full screen interface messages */
459 /* FUNCTION: Displays messages and handles control characters */
463 /* Portions of the screen that are handled in the msg are */
464 /* indicated on the listing of the screen with the message */
465 /* name given. If the text message is defined in another */
466 /* screen, then the name is followed by a "#" character */
468 /* NOTE TO TRANSLATORS The characters inside the <> and the [] */
469 /* are control characters and should not be translated. The */
470 /* Control characters are defined as follows: */
472 /* <H> - Highlight the following text */
473 /* <R> - Regular text */
474 /* <B> - Blink the following text */
475 /* <O> - Turn blinking off */
476 /* <Y> - Print YES character, as set by define */
477 /* <N> - Print NO character, as set by define */
478 /* <W> - Sound the beep */
479 /* <S> - Save cursor position for later use */
480 /* <I> - Insert character from insert[] string. This string */
481 /* must be set up prior to displaying the message. The */
482 /* first <I> will insert Insert[0], the second */
483 /* insert[1], etc....This will move the cursor one */
484 /* postition. The insert[] string will be initialized */
486 /* Multiple control characters can be between the <>. */
488 /* The %####%indicates Row and column for the text and has the */
489 /* format of [rrcc] where the numbers are decimal and zero */
490 /* based (first row/col is 00. The numbers are in decimal, */
491 /* and must be 2 characters, which means rows/cols 0-9 should */
492 /* be listed as 00-09. For example, the 5th row, 3rd column */
493 /* on the screen would be listed as %0402%. */
495 /* The column number is always the column desired. The row */
496 /* number is an offset from the previous row. For example, if */
497 /* the text just printed is on row 6, and the next text should */
498 /* be printed 2 rows down in column 0, then the control strin */
499 /* would be %0201%. The first row specified in the message is */
500 /* assumed to be based off of row 0, it would actually specify */
501 /* the actual row for the start of the msg to be printed. */
503 /* ENTRY POINTS: display(*message_name); */
504 /* LINKAGE: Near call */
506 /* INPUT: char *message_name */
513 /* input_row changed if <S> control character in message */
514 /* input_col changed if <S> control character in message */
516 /* INTERNAL REFERENCES: */
519 /* EXTERNAL REFERENCES: */
522 /* viowrtcharstratt(); */
523 /******************** END OF SPECIFICATIONS ********************/
532 char far *attribute_ptr = &attribute;
533 unsigned insert_count;
536 /* Initialize row and col, and index into array */
540 /* check for a request to display a null string */
543 /* Message string error */
549 /* There is data there, lets go handle it */
552 /* Go until end of string */
556 /* Check for any imbedded control strings */
559 /* Check for control characters */
563 while ( (*s != '>') && (*s != '\0') )
567 case 'H': attribute = (attribute & 0x80) | 0x0F;
571 case 'R': attribute = (attribute & 0x80) | 0x07;
574 case 'B': attribute |= 0x80;
577 case 'O': attribute &= 0x7F;
580 case 'W': DOSBEEP(900,400);
585 /* display next element in the array */
586 if (attribute == 0x00)
588 VIOWRTCHARSTRATT(pinsert+insert_count++,1,row,col++,attribute_ptr,0);
595 /* display YES character in next location */
597 if (attribute == 0x00)
599 VIOWRTCHARSTRATT(s++,1,row,col++,attribute_ptr,0);
605 /* display NO character in next location */
607 if (attribute == 0x00)
609 VIOWRTCHARSTRATT(s++,1,row,col++,attribute_ptr,0);
623 /* Clear from current position to end of line */
624 clear_screen(row,col,row,39);
630 /* Message string error - string ended in the middle of control string*/
638 /* Message string error - no valid control char found */
645 /* Get the pointer past the '>' */
648 END /* control characters */
650 /* Check for row,col */
654 /* determine the row to put the message on */
657 /* Message string error */
663 row = row+((unsigned)(((*s++ - '0')*10)));
666 /* Message string error */
672 row = row+((unsigned)(*s++ - '0'));
673 /* determine the col to put the message on */
676 /* Message string error */
682 col = ((unsigned)(*s++ - '0'));
685 /* Message string error */
691 col = ((unsigned)((col* 10) + (*s++ - '0')));
694 /* Message string error */
697 END /* 2nd sq bracket */
698 END /* 2nd digit col */
699 END /* 1st digit col */
700 END /* 2nd digit row */
701 END /* 1st digit row */
704 /* Handle anything else */
709 /* See if attribute set to anything */
710 if (attribute == 0x00)
712 VIOWRTCHARSTRATT(s++,1,row,col++,attribute_ptr,0);
716 END /* End of string check */
717 END /* No characters in string check */
722 void number_in_msg(number,start)
731 /* init the four spots to zero's */
732 for (i = 0; i < 4;i++)
734 insert[start+i] = ' ';
736 /* Divide the space down and get it into decimal */
739 insert[start] = ((char)(number/1000))+'0';
740 insert[start+1] = '0';
741 insert[start+2] = '0';
742 insert[start+3] = '0';
743 number = number%1000;
747 insert[start+1] = ((char)(number/100))+'0';
748 insert[start+2] = '0';
749 insert[start+3] = '0';
754 insert[start+2] = ((char)(number/10))+'0';
755 insert[start+3] = '0';
758 insert[start+3] = ((char)(number +'0'));
764 void clear_screen(TopRow,LeftCol,BotRow,RightCol)
774 char *attribute_ptr = &attribute;
777 VIOSCROLLUP(TopRow,LeftCol,BotRow,RightCol,0,attribute_ptr,0);
790 /* position the cursor at the end of the ESC prompt */
791 VIOSETCURPOS(24,39,0);
795 /*KBDCHARIN(input_data,0,0);*/
796 /*input = input_data->char_code;*/
797 input = ((char)(getch()));