home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / calculat / rpn30src.zip / MKSCREEN.C < prev    next >
Text File  |  1990-05-25  |  3KB  |  111 lines

  1. /**
  2.  ** mkscreen
  3.  **
  4.  ** Build the help screens for static inclusion in a shorter rpn version.
  5.  **/
  6. #include <stdio.h>
  7. #include <conio.h>
  8. #include <stdlib.h>
  9. #define MAIN
  10. #include "rpn.h"
  11. #include "rpnio.h"
  12. #include "display.h"
  13. #include "helps.h"
  14.  
  15. extern char h_frame[];
  16. extern char horiz_bar[];
  17. extern char bottom_bar[];
  18. extern char h1_label[];
  19. extern char h2_label[];
  20. extern help_text help1[];
  21. extern help_text help2[];
  22.  
  23. /*
  24.  * disp_buffer saves the original screen under the display window.
  25.  * h1_buffer saves the original screen under Help window 1.
  26.  * h2_buffer saves the original screen under Help window 2.
  27.  * new_screen is used to build the windows.
  28.  */
  29.  
  30. int C_DECL main(void)
  31. {
  32.     char disp_buffer[ 2 * D_WIDTH * D_DEPTH ];
  33.     char h1_buffer[ 2 * H_WIDTH * H_DEPTH ];
  34.     char new_screen[4096], *endptr;
  35.     unsigned i;
  36.     unsigned x, y;
  37.     FILE *dest;
  38.  
  39.     x = wherex();
  40.     y = wherey();
  41.     fprintf(stderr,"mkscreen @ (%d,%d), TC %X/%d newline\n",
  42.         x, y, __TURBOC__,sizeof(NEWLINE));
  43.  
  44.  
  45.     dest = fopen("dispscrn.h", "wb");
  46.     if (dest == NULL) {
  47.     perror("dispscrn.h");
  48.     exit(1);
  49.     }
  50.     fprintf(dest, "#define FRAME_SIZE  %d\r\n", sizeof(disp_buffer));
  51.  
  52.     gettext(LEFT, TOP, RIGHT, BOTTOM, (void *)disp_buffer);
  53.     make_display(LEFT, TOP, RIGHT, BOTTOM);
  54.  
  55.     /* Mark the end of each line, for fputs() use. */
  56.     endptr = new_screen + (2 * D_WIDTH);
  57.     *endptr = '\0';
  58.     fputs("char frame[] = \"", dest);
  59.     for (i = 0; i < D_DEPTH; i++) {
  60.     fputs("\\\r\n", dest);
  61.     gettext(LEFT, TOP+i, RIGHT, TOP+i, (void *)new_screen);
  62.     fputs(new_screen, dest);
  63.     }
  64.     fputs("\";\r\n\r\n", dest);
  65.     fclose(dest);
  66.     puttext(LEFT, TOP, RIGHT, BOTTOM, disp_buffer);
  67.  
  68.  
  69.     dest = fopen("helpscrn.h", "wb");
  70.     if (dest == NULL) {
  71.     perror("helpscrn.h");
  72.     exit(1);
  73.     }
  74.     fprintf(dest, "#define HELP_SIZE  %d\r\n", sizeof(h1_buffer));
  75.  
  76.     gettext(H_LEFT, H_TOP, H_RIGHT, H_BOTTOM, (void *)h1_buffer);
  77.     make_help(h1_label, help1, version);
  78.  
  79.     /* Mark the end of each line, for fputs() use. */
  80.     endptr = new_screen + (2 * H_WIDTH);
  81.     *endptr = '\0';
  82.     fputs("static char help1[] = \"", dest);
  83.     for (i = 0; i < H_DEPTH; i++) {
  84.     fputs("\\\r\n", dest);
  85.     gettext(H_LEFT, H_TOP+i, H_RIGHT, H_TOP+i, (void *)new_screen);
  86.     fputs(new_screen, dest);
  87.     }
  88.     fputs("\";\r\n\r\n", dest);
  89.     fflush(dest);
  90.  
  91.     keypause();
  92.  
  93.     make_help(h2_label, help2, NULL);
  94.  
  95.     fputs("static char help2[] = \"", dest);
  96.     for (i = 0; i < H_DEPTH; i++) {
  97.     fputs("\\\r\n", dest);
  98.     gettext(H_LEFT, H_TOP+i, H_RIGHT, H_TOP+i, (void *)new_screen);
  99.     fputs(new_screen, dest);
  100.     }
  101.     fputs("\";\r\n\r\n", dest);
  102.  
  103.     fclose(dest);
  104.  
  105.     keypause();
  106.  
  107.     puttext(H_LEFT, H_TOP, H_RIGHT, H_BOTTOM, h1_buffer);
  108.     gotoxy( 1, 25 );
  109.     return 0;
  110. }
  111.