home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / misc / zkick_ad.lzh / alloc.c < prev    next >
C/C++ Source or Header  |  1992-01-08  |  2KB  |  50 lines

  1. /******************************************************************/
  2. /*  Alloc --                              */
  3. /*     this program allocates a block of memory, given the      */
  4. /*     address of the block, and the size of the block (in K)     */
  5. /*     desired.  This program was written to allocate (but not    */
  6. /*     clear) a block of memory for zkick (a program that loads   */
  7. /*     a version of kickstart into RAM).  Well, my ADRAM board's  */
  8. /*     software "re-freed" the memory.  As soon as it was used,   */
  9. /*     BOOM went the system.  A sample startup sequence that uses */
  10. /*     both zkick and alloc is included under the file "startup-  */
  11. /*     alloc".                                                    */
  12. /*                                  */
  13. /*     AUTHOR:    Mitchell M. Evans     DATE:  08 Jan 92          */
  14. /******************************************************************/
  15.  
  16. #include <stdio.h>
  17.  
  18. main(argc, argv)
  19. int argc;
  20. char **argv;
  21. {
  22.    char *block;
  23.    int start, size;
  24.    char *startstr, *sizestr;
  25.  
  26.    if (argc != 3) usage();      /* did the user use the correct # of args? */
  27.  
  28.    argv++;            /* first arg is program name - skip it */
  29.    startstr = *(argv++);        /* this is a ptr to the starting block str */
  30.    sizestr = *(argv++);         /* this is a ptr to the size string */
  31.  
  32.    sscanf(startstr, "%x", &start);  /* convert strings to numeric values */
  33.    sscanf(sizestr, "%d", &size);    /* for use in AllocAbs call */
  34.  
  35.    if ((block = (char *)AllocAbs(1024 * size, start))==0)  /* alloc RAM */
  36.       printf("Aalloc failed!  Contact Mitch pronto!\n");
  37.    exit(0);
  38. }
  39.  
  40. /* Remind the user how the program is used. */
  41. usage()
  42. {
  43.    printf("Usage:\n");
  44.    printf("   alloc startloc size(K)\n");
  45.    printf("\n\nstartloc should be in HEX notation (e.g. c000000)\n");
  46.    printf("size should be in K (e.g. 512 for 512K block)\n\n");
  47.    exit(1);
  48. }
  49.  
  50.