home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Programming / DOpus4-GPL / Program / about.c next >
C/C++ Source or Header  |  2000-01-27  |  5KB  |  167 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31. #include "DOpus.h"
  32.  
  33. void about()
  34. {
  35.     simplerequest(
  36.         "Directory Opus 4\n"
  37.         "Original GPL release version 4.12\n"
  38.         "Copyright 1993-2000 Jonathan Potter\n"
  39.         "\n"
  40.         "This program is free software; you can redistribute it and/or\n"
  41.         "modify it under the terms of the GNU General Public License\n"
  42.         "as published by the Free Software Foundation; either version 2\n"
  43.         "of the License, or (at your option) any later version.\n"
  44.         "\n"
  45.         "This program is distributed in the hope that it will be useful,\n"
  46.         "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
  47.         "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
  48.         "GNU General Public License for more details.\n"
  49.         "\n"
  50.         "All users of Directory Opus 4 (including versions distributed\n"
  51.         "under the GPL) are entitled to upgrade to the latest version of\n"
  52.         "Directory Opus version 5 at a reduced price. Please see\n"
  53.         "http://www.gpsoft.com.au for more information.",
  54.         globstring[STR_CONTINUE],NULL);
  55. }
  56.  
  57.  
  58. char *comp_date=__DATE__,*comp_time=__TIME__;
  59.  
  60. void give_version_info()
  61. {
  62.     char buf[700];
  63.     char
  64.         prog_ver_buf[20],
  65.         lib_ver_buf[20],
  66.         kick_ver_buf[20],
  67.         wb_ver_buf[20],
  68.         proc_buf[10],
  69.         coproc_buf[10];
  70.     UWORD ver,rev;
  71.     int proc;
  72.  
  73.     lsprintf(prog_ver_buf,"v%s",str_version_string);
  74.     lsprintf(lib_ver_buf,"v%ld.%ld",
  75.         DOpusBase->LibNode.lib_Version,DOpusBase->LibNode.lib_Revision);
  76.  
  77.     if (DOSBase->dl_lib.lib_Version<36 ||
  78.         (GetVar("Kickstart",&kick_ver_buf[1],19,GVF_GLOBAL_ONLY))<1) {
  79.  
  80.         char *ptr3;
  81.         ULONG ptr,*ptr2;
  82.         
  83.         ptr2=(ULONG *)0xffffec;
  84.         ptr=0x1000000-(*ptr2);
  85.         ptr3=(char *)ptr+12;
  86.         ptr2=(ULONG *)ptr3;
  87.         ptr=*ptr2;
  88.  
  89.         ver=ptr>>16;
  90.         rev=ptr&(((1<<32)-(1<<16))-1);
  91.  
  92.         lsprintf(kick_ver_buf,"v%ld.%ld",ver,rev);
  93.     }
  94.     else kick_ver_buf[0]='v';
  95.  
  96.     if (DOSBase->dl_lib.lib_Version<36 ||
  97.         (GetVar("Workbench",&wb_ver_buf[1],19,GVF_GLOBAL_ONLY))<1) {
  98.  
  99.         struct Library *VersionBase;
  100.  
  101.         if (VersionBase=OpenLibrary("version.library",0)) {
  102.             ver=VersionBase->lib_Version;
  103.             rev=VersionBase->lib_Revision;
  104.             CloseLibrary(VersionBase);
  105.         }
  106.         else ver=rev=0;
  107.  
  108.         lsprintf(wb_ver_buf,"v%ld.%ld",ver,rev);
  109.     }
  110.     else wb_ver_buf[0]='v';
  111.  
  112.     if (SysBase->AttnFlags&AFF_68010) {
  113.         if (SysBase->AttnFlags&AFF_68020) {
  114.             if (SysBase->AttnFlags&AFF_68030) {
  115.                 if (SysBase->AttnFlags&AFF_68040) {
  116.                     proc=40;
  117.                 }
  118.                 else proc=30;
  119.             }
  120.             else proc=20;
  121.         }
  122.         else proc=10;
  123.     }
  124.     else proc=0;
  125.  
  126.     lsprintf(proc_buf,"680%02ld",proc);
  127.  
  128.     if (SysBase->AttnFlags&AFF_68040 && SysBase->AttnFlags&AFF_FPU40) {
  129.         strcpy(coproc_buf,"68040 FPU");
  130.     }
  131.     else if (SysBase->AttnFlags&AFF_68881) {
  132.         if (SysBase->AttnFlags&AFF_68882) {
  133.             strcpy(coproc_buf,"68882");
  134.         }
  135.         else strcpy(coproc_buf,"68881");
  136.     }
  137.     else strcpy(coproc_buf,"None");
  138.  
  139.     lsprintf(buf,
  140.         "%-42s\n\n"
  141.         "  Directory Opus%24s  \n"
  142.         "  DOpus Library%25s  \n\n"
  143.         "  Compile time%26s  \n"
  144.         "  Compile date%26s  \n\n"
  145.         "  Port/screen name%22s  \n\n"
  146.         "  Kickstart%29s  \n"
  147.         "  Workbench%29s  \n\n"
  148.         "  Processor%29s  \n"
  149.         "  Math co-processor%21s  \n"
  150.         "  Graphics chipset%22s  \n"
  151.         "  Video system%26s  ",
  152.         "Version information...",
  153.         prog_ver_buf,
  154.         lib_ver_buf,
  155.         comp_time,comp_date,
  156.         str_arexx_portname,
  157.         kick_ver_buf,
  158.         wb_ver_buf,
  159.         proc_buf,
  160.         coproc_buf,
  161.         (GfxBase->ChipRevBits0&GFXF_AA_ALICE)?"AGA":
  162.             ((GfxBase->ChipRevBits0&GFXF_HR_AGNUS)?"ECS":"OLD"),
  163.         (scrdata_is_pal)?"PAL":"NTSC");
  164.  
  165.     simplerequest(buf,globstring[STR_CONTINUE],NULL);
  166. }
  167.