home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / lang / c / 11419 < prev    next >
Encoding:
Text File  |  1992-07-21  |  1.8 KB  |  70 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!uwm.edu!csd4.csd.uwm.edu!pegasus
  3. From: pegasus@csd4.csd.uwm.edu (David R Hucke)
  4. Subject: Curious bug...
  5. Message-ID: <1992Jul22.050021.3974@uwm.edu>
  6. Originator: pegasus@csd4.csd.uwm.edu
  7. Sender: news@uwm.edu (USENET News System)
  8. Organization: Computing Services Division, University of Wisconsin - Milwaukee
  9. Date: Wed, 22 Jul 1992 05:00:21 GMT
  10. Lines: 58
  11.  
  12. Hello everybody!
  13.  
  14. I have a program that I have written in Quick C 2.5 that doesn't work right and
  15. I am stumped.
  16.  
  17. I use a program called "TheDraw" to create menus which are saved as binary
  18. screen dumps to a disk file.   This program below reads the file in and
  19. puts it into an array.  Then the array is put in the screen.
  20.  
  21. What happens is this:  When I run the program in the QC Environment it
  22. works fine.  The characters are correct, and the colors are not correct.
  23.  
  24. When I run the program from DOS (outside of the QC Environment) the characters
  25. are correct but the colors are not correct.
  26.  
  27. Can somebody tell me what is wrong here?
  28.  
  29.  
  30. #include <stdio.h>
  31.  
  32. main()
  33. {
  34.  
  35.    short far *SCREEN = (short far *) 0xB8000000;
  36.    short menu[8][20];
  37.    short x,y;
  38.    FILE *file;
  39.    int i,j,z;
  40.  
  41.    if(!(file = fopen("c:\\test.scn","r"))){
  42.     printf("Unable to open file!\n");
  43.     exit(99);
  44.     }
  45.     for(j=0;j<8;j++)
  46.     for(i=0;i<20;i++){
  47.            fscanf(file,"%c%c",&x,&y);    /* reading in attribute and
  48.                          character bytes */
  49.         menu[j][i] = (short)((y<<8)+x);  /* putting together screen
  50.                         character ---> attribute
  51.                         and character.  Shifting
  52.                         one of the bytes. */
  53.     }
  54.     fclose(file);
  55.     for(j=0;j<8;j++)
  56.         for(i=0;i<20;i++)
  57.         *(SCREEN+((j+5)*80)+(30+i)) = (int)menu[j][i];
  58. }
  59.  
  60.  
  61. Thank you for the help.
  62.  
  63. ===
  64. pegasus@csd4.csd.uwm.edu
  65.  
  66. -- 
  67. pegasus@csd4.csd.uwm.edu                David R. Hucke
  68.                                         UW-Milwaukee Film Major
  69. --
  70.