Advertisement
Guest User

test.c

a guest
Jan 16th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 11.01 KB | None | 0 0
  1. #include <allegro.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int main(void)
  6. {
  7.     //initialize Allegro
  8.     allegro_init();
  9.     set_gfx_mode(GFX_SAFE, 640, 480, 0, 0);
  10.     install_keyboard();
  11.    
  12.     //display version info
  13.     textprintf_ex(screen, font, 0, 0, 15, -1,
  14.         "Allegro version:  %s", allegro_id);
  15.  
  16.     int year = ALLEGRO_DATE / 10000;
  17.     int month = (ALLEGRO_DATE / 100) % 100;
  18.     int day = ALLEGRO_DATE % 100;
  19.     textprintf_ex(screen,font,0,20,15,-1,
  20.         "Revision Date:    %d/%d/%d", month, day, year);
  21.  
  22.     //display operating system
  23.     char os[20];
  24.     switch (os_type) {
  25.         case OSTYPE_UNKNOWN: strcpy(os,"Unknown/DOS");     break;
  26.         case OSTYPE_WIN3:    strcpy(os,"Windows 3.1");     break;
  27.         case OSTYPE_WIN95:   strcpy(os,"Windows 95");      break;
  28.         case OSTYPE_WIN98:   strcpy(os,"Windows 98");      break;
  29.         case OSTYPE_WINME:   strcpy(os,"Windows ME");      break;
  30.         case OSTYPE_WINNT:   strcpy(os,"Windows NT");      break;
  31.         case OSTYPE_WIN2000: strcpy(os,"Windows 2000");    break;
  32.         case OSTYPE_WINXP:   strcpy(os,"Windows XP");      break;
  33.         case OSTYPE_OS2:     strcpy(os,"OS/2");            break;
  34.         case OSTYPE_WARP:    strcpy(os,"OS/2 Warp 3");     break;
  35.         case OSTYPE_DOSEMU:  strcpy(os,"Linux DOSEMU");    break;
  36.         case OSTYPE_OPENDOS: strcpy(os,"Caldera OpenDOS"); break;
  37.         case OSTYPE_LINUX:   strcpy(os,"Linux");           break;
  38.         case OSTYPE_SUNOS:   strcpy(os,"SunOS/Solaris");   break;
  39.         case OSTYPE_FREEBSD: strcpy(os,"FreeBSD");         break;
  40.         case OSTYPE_NETBSD:  strcpy(os,"NetBSD");          break;
  41.         case OSTYPE_IRIX:    strcpy(os,"IRIX");            break;
  42.         case OSTYPE_DARWIN:  strcpy(os,"Darwin");          break;
  43.         case OSTYPE_QNX:     strcpy(os,"QNX");             break;
  44.         case OSTYPE_UNIX:    strcpy(os,"Unix");            break;
  45.         case OSTYPE_BEOS:    strcpy(os,"BeOS");            break;
  46.         case OSTYPE_MACOS:   strcpy(os,"MacOS");           break;
  47.         case OSTYPE_MACOSX:  strcpy(os,"MacOS X");         break;
  48.     }
  49.     //display version tacked onto end of O/S name
  50.     textprintf_ex(screen,font,0,40,15,-1,
  51.         "Operating System: %s %i.%i", os, os_version, os_revision);
  52.  
  53.     if (os_multitasking == 0)
  54.         textout_ex(screen,font,"Multitask:        No",0,60,15,-1);
  55.     else
  56.         textout_ex(screen,font,"Multitask:        Yes",0,60,15,-1);
  57.    
  58.     //display system info
  59.     int width, height;
  60.     if (get_desktop_resolution(&width, &height) != 0)
  61.        textout_ex(screen,font,"Resolution: Unknown",0,80,15,-1);
  62.     else
  63.         textprintf_ex(screen,font,0,80,15,-1,
  64.             "Resolution:       %i x %i", width, height);
  65.  
  66.     textprintf_ex(screen,font,0,100,15,-1,
  67.         "Color Depth:      %i bits", desktop_color_depth());
  68.  
  69.     //display CPU information
  70.     textprintf_ex(screen,font,0,120,15,-1,
  71.         "CPU Vendor:       %s", cpu_vendor);
  72.  
  73.     //for each cpu family, check the specific model number
  74.     char family[40], model[40];
  75.     switch (cpu_family) {
  76.         case CPU_FAMILY_I386:
  77.             strcpy(family, "386");
  78.             sprintf(model, "%i", cpu_model);
  79.             break;
  80.  
  81.         case CPU_FAMILY_I486:
  82.             strcpy(family, "486");
  83.             switch (cpu_model) {
  84.                 case CPU_MODEL_I486DX:  
  85.                     strcpy(model,"486 DX");    
  86.                     break;
  87.                 case CPU_MODEL_I486DX50:
  88.                     strcpy(model,"486 DX/50");
  89.                     break;
  90.                 case CPU_MODEL_I486SX:  
  91.                     strcpy(model,"486 SX");    
  92.                     break;
  93.                 case CPU_MODEL_I487SX:  
  94.                     strcpy(model,"487 SX");    
  95.                     break;
  96.                 case CPU_MODEL_I486SL:  
  97.                     strcpy(model,"486 SL");    
  98.                     break;
  99.                 case CPU_MODEL_I486SX2:  
  100.                     strcpy(model,"486 SX/2");  
  101.                     break;
  102.                 case CPU_MODEL_I486DX2:  
  103.                     strcpy(model,"486 DX/2");  
  104.                     break;
  105.                 case CPU_MODEL_I486DX4:  
  106.                     strcpy(model,"486 DX/4");  
  107.                     break;
  108.             }
  109.             break;
  110.  
  111.         case CPU_FAMILY_I586:
  112.             strcpy(family, "586");
  113.             switch (cpu_model) {
  114.                 case CPU_MODEL_K5:
  115.                     strcpy(model,"AMD K5");
  116.                     break;
  117.                 case CPU_MODEL_PENTIUM:
  118.                     strcpy(model,"Pentium");
  119.                     break;
  120.                 case CPU_MODEL_PENTIUMP54C:
  121.                     strcpy(model,"Pentium Pro");
  122.                     break;
  123.                 case CPU_MODEL_PENTIUMOVERDRIVE:
  124.                     strcpy(model,"Pentium Overdrive");
  125.                     break;
  126.                 case CPU_MODEL_PENTIUMOVERDRIVEDX4:
  127.                     strcpy(model,"Pentium Overdrive DX/4");
  128.                     break;
  129.                 case CPU_MODEL_K6:
  130.                     strcpy(model,"AMD K6");
  131.                     break;
  132.                 case CPU_MODEL_CYRIX:
  133.                     strcpy(model,"Cyrix");
  134.                     break;
  135.                 case CPU_MODEL_UNKNOWN:
  136.                     sprintf(model,"%i",cpu_model);
  137.                     break;
  138.                 default:
  139.                     sprintf(model,"%i",cpu_model);
  140.                     break;
  141.             }
  142.             break;
  143.  
  144.         case CPU_FAMILY_I686:
  145.             strcpy(family, "686");
  146.             switch (cpu_model) {
  147.                 case CPU_MODEL_PENTIUMPROA:
  148.                     strcpy(model,"Pentium Pro/A");
  149.                     break;
  150.                 case CPU_MODEL_PENTIUMPRO:
  151.                     strcpy(model,"Pentium Pro");
  152.                     break;
  153.                 case CPU_MODEL_PENTIUMIIKLAMATH:
  154.                     strcpy(model,"Pentium II/Klamath");
  155.                     break;
  156.                 case CPU_MODEL_PENTIUMII:
  157.                     strcpy(model,"Pentium II");
  158.                     break;
  159.                 case CPU_MODEL_CELERON:
  160.                     strcpy(model,"Celeron");
  161.                     break;
  162.                 case CPU_MODEL_PENTIUMIIIKATMAI:
  163.                     strcpy(model,"Pentium III/Katmai");
  164.                     break;
  165.                 case CPU_MODEL_PENTIUMIIICOPPERMINE:
  166.                     strcpy(model,"Pentium III/Coppermine");
  167.                     break;
  168.                 case CPU_MODEL_PENTIUMIIIMOBILE:
  169.                     strcpy(model,"Pentium III/Mobile");
  170.                     break;
  171.                 case CPU_MODEL_ATHLON:
  172.                     strcpy(model,"Athlon");
  173.                     break;
  174.                 default:
  175.                     sprintf(model,"%i",cpu_model);
  176.                     break;
  177.             }
  178.             break;
  179.  
  180.         case CPU_FAMILY_ITANIUM:
  181.             strcpy(family, "Itanium");
  182.             sprintf(model, "%i", cpu_model);
  183.             break;
  184.  
  185.         case CPU_FAMILY_EXTENDED:
  186.             sprintf(family,"%i (unknown)", cpu_family);
  187.             switch (cpu_model) {
  188.                 case CPU_MODEL_PENTIUMIV:
  189.                     strcpy(model,"Pentium IV");
  190.                     break;
  191.                 case CPU_MODEL_XEON:
  192.                     strcpy(model,"Pentium IV Xeon");
  193.                     break;
  194.                 case CPU_MODEL_ATHLON64:
  195.                     strcpy(model,"AMD Athlon 64");
  196.                     break;
  197.                 case CPU_MODEL_OPTERON:
  198.                     strcpy(model,"AMD Opteron");
  199.                     break;
  200.                 case 14:
  201.                     strcpy(model,"Pentium IV HyperThreading");
  202.                     break;
  203.                 default:
  204.                     sprintf(model,"%i (unknown)", cpu_model);
  205.                     break;
  206.              }
  207.              break;
  208.      
  209.          case CPU_FAMILY_POWERPC:
  210.             strcpy(family, "PowerPC");
  211.              switch(cpu_model) {
  212.                  case CPU_MODEL_POWERPC_601:  
  213.                      strcpy(model,"601");  
  214.                      break;
  215.                  case CPU_MODEL_POWERPC_602:  
  216.                      strcpy(model,"602");  
  217.                      break;
  218.                  case CPU_MODEL_POWERPC_603:  
  219.                      strcpy(model,"603");  
  220.                      break;
  221.                  case CPU_MODEL_POWERPC_603e:  
  222.                      strcpy(model,"603e");  
  223.                      break;
  224.                  case CPU_MODEL_POWERPC_603ev:
  225.                      strcpy(model,"603ev");
  226.                      break;
  227.                  case CPU_MODEL_POWERPC_604:  
  228.                      strcpy(model,"604");  
  229.                      break;
  230.                  case CPU_MODEL_POWERPC_604e:  
  231.                      strcpy(model,"604e");  
  232.                      break;
  233.                  case CPU_MODEL_POWERPC_620:  
  234.                      strcpy(model,"620");  
  235.                      break;
  236.                  case CPU_MODEL_POWERPC_750:  
  237.                      strcpy(model,"750");  
  238.                      break;
  239.                  case CPU_MODEL_POWERPC_7400:  
  240.                      strcpy(model,"7400");  
  241.                      break;
  242.                  case CPU_MODEL_POWERPC_7450:  
  243.                      strcpy(model,"7450");  
  244.                      break;
  245.                 default:
  246.                     sprintf(model,"%i",cpu_model);
  247.                     break;
  248.              break;
  249.              }
  250.         case CPU_FAMILY_UNKNOWN:
  251.             sprintf(family, "%i", cpu_family);
  252.             sprintf(model, "%i", cpu_model);
  253.             break;
  254.     }
  255.  
  256.     textprintf_ex(screen,font,0,140,15,-1,
  257.         "CPU Family:       %s", family);
  258.     textprintf_ex(screen,font,0,160,15,-1,
  259.         "CPU Model:        %s", model);
  260.    
  261.  
  262.     //display processor capabilities
  263.     char caps[40];
  264.     strcpy(caps,"");
  265.     if ((cpu_capabilities & CPU_ID)==CPU_ID)
  266.         strcat(caps,"CPU_ID ");
  267.     if ((cpu_capabilities & CPU_FPU)==CPU_FPU)
  268.         strcat(caps,"FPU ");
  269.     if ((cpu_capabilities & CPU_MMX)==CPU_MMX)
  270.         strcat(caps,"MMX ");
  271.     if ((cpu_capabilities & CPU_MMXPLUS)==CPU_MMXPLUS)
  272.         strcat(caps,"MMX+ ");
  273.     if ((cpu_capabilities & CPU_SSE)==CPU_SSE)
  274.         strcat(caps,"SSE ");
  275.     if ((cpu_capabilities & CPU_SSE2)==CPU_SSE2)
  276.         strcat(caps,"SSE2 ");
  277.     if ((cpu_capabilities & CPU_SSE3)==CPU_SSE3)
  278.         strcat(caps,"SSE3 ");
  279.     if ((cpu_capabilities & CPU_3DNOW)==CPU_3DNOW)
  280.         strcat(caps,"3DNOW ");
  281.     if ((cpu_capabilities & CPU_ENH3DNOW)==CPU_ENH3DNOW)
  282.         strcat(caps,"ENH_3DNOW ");
  283.     if ((cpu_capabilities & CPU_CMOV)==CPU_CMOV)
  284.         strcat(caps,"CMOV ");
  285.     if ((cpu_capabilities & CPU_AMD64)==CPU_AMD64)
  286.         strcat(caps,"AMD64 ");
  287.     if ((cpu_capabilities & CPU_IA64)==CPU_IA64)
  288.         strcat(caps,"IA64 ");
  289.  
  290.     textprintf_ex(screen,font,0,180,15,-1,
  291.         "CPU Capabilities: %s", caps);
  292.  
  293.     while(!keypressed());
  294.     allegro_exit();
  295.     return 0;    
  296. }    
  297. END_OF_MAIN()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement