Annotation of hatari/src/misc.c, revision 1.1

1.1     ! root        1: /*
        !             2:   Hatari
        !             3: 
        !             4:   Misc functions
        !             5: */
        !             6: 
        !             7: #include "main.h"
        !             8: #include "debug.h"
        !             9: #include "errlog.h"
        !            10: #include "file.h"
        !            11: #include "m68000.h"
        !            12: #include "memAlloc.h"
        !            13: #include "misc.h"
        !            14: 
        !            15: long RandomNum;
        !            16: 
        !            17: //-----------------------------------------------------------------------
        !            18: /*
        !            19:   Fill end of string out with spaces
        !            20: */
        !            21: void Misc_PadStringWithSpaces(char *pszString,int nChars)
        !            22: {
        !            23:   int i;
        !            24: 
        !            25:   for(i=nChars; i>=(int)strlen(pszString); i--) {
        !            26:     pszString[i] = ' ';
        !            27:   }
        !            28:   pszString[nChars] = '\0';
        !            29: }
        !            30: 
        !            31: //-----------------------------------------------------------------------
        !            32: /*
        !            33:   Remove any spaces from string
        !            34: */
        !            35: void Misc_RemoveSpacesFromString(char *pszSrcString, char *pszDestString)
        !            36: {
        !            37:   int i=0,j=0;
        !            38: 
        !            39:   // Copy string
        !            40:   while(pszSrcString[i]!='\0') {
        !            41:     if (pszSrcString[i]!=' ') {  // Copy character if not a white-space
        !            42:       pszDestString[j] = pszSrcString[i];
        !            43:       j++;
        !            44:     }
        !            45:     i++;
        !            46:   }
        !            47: 
        !            48:   pszDestString[j] = '\0';      // Term
        !            49: }
        !            50: 
        !            51: //-----------------------------------------------------------------------
        !            52: /*
        !            53:   Remove 'white-space' from beginning of text string
        !            54: */
        !            55: void Misc_RemoveWhiteSpace(char *pszString,int Length)
        !            56: {
        !            57:   while( (*pszString==' ') || (*pszString=='\t') ) {
        !            58:     // Copy line left one character
        !            59:     memmove(pszString,pszString+1,Length-1);
        !            60:   }
        !            61: }
        !            62: 
        !            63: //-----------------------------------------------------------------------
        !            64: /*
        !            65:   Find working directory, and store to 'szWorkingDir'
        !            66: */
        !            67: void Misc_FindWorkingDirectory(void)
        !            68: {
        !            69: /* FIXME!!!!*/
        !            70: /*
        !            71:   char szSrcDrive[_MAX_DRIVE],szSrcDir[_MAX_DIR],szSrcName[_MAX_FNAME],szSrcExt[_MAX_EXT];
        !            72: 
        !            73:   // Find name of '.exe'
        !            74:   GetModuleFileName(NULL,szWorkingDir,MAX_FILENAME_LENGTH);
        !            75:   _splitpath(szWorkingDir,szSrcDrive,szSrcDir,szSrcName,szSrcExt);
        !            76:   _makepath(szWorkingDir,szSrcDrive,szSrcDir,"","");
        !            77:   // And remove trailing backslash
        !            78:   if (strlen(szWorkingDir)>0) {
        !            79:     if (szWorkingDir[strlen(szWorkingDir)-1]=='/')
        !            80:       szWorkingDir[strlen(szWorkingDir)-1]='\0';
        !            81:   }
        !            82: */
        !            83: }
        !            84: 
        !            85: //-----------------------------------------------------------------------
        !            86: /*
        !            87:   Limit integer between min/max range
        !            88: */
        !            89: int Misc_LimitInt(int Value, int MinRange, int MaxRange)
        !            90: {
        !            91:   if (Value<MinRange)
        !            92:     Value = MinRange;
        !            93:   else if (Value>MaxRange)
        !            94:     Value = MaxRange;
        !            95: 
        !            96:   return(Value);
        !            97: }
        !            98: 
        !            99: //-----------------------------------------------------------------------
        !           100: /*
        !           101:   Convert value to 2-digit BCD
        !           102: */
        !           103: unsigned char Misc_ConvertToBCD(unsigned short int Value)
        !           104: {
        !           105:   return( ((Value&0xf0)>>4)*10 + (Value&0x0f) );
        !           106: }
        !           107: 
        !           108: //-----------------------------------------------------------------------
        !           109: /*
        !           110:   See own random number(must be !=0)
        !           111: */
        !           112: void Misc_SeedRandom(unsigned long Seed)
        !           113: {
        !           114:   RandomNum = Seed;
        !           115: }
        !           116: 
        !           117: //-----------------------------------------------------------------------
        !           118: /*
        !           119:   Get mext random number
        !           120: */
        !           121: long Misc_NextLongRand(long Seed)
        !           122: {
        !           123:   unsigned long Lo, Hi;
        !           124: 
        !           125:   Lo = 16807 * (long)(Seed & 0xffff);
        !           126:   Hi = 16807 * (long)((unsigned long)Seed >> 16);
        !           127:   Lo += (Hi & 0x7fff) << 16;
        !           128:   if (Lo > 2147483647L) {
        !           129:     Lo &= 2147483647L;
        !           130:     ++Lo;
        !           131:   }
        !           132:   Lo += Hi >> 15;
        !           133:   if (Lo > 2147483647L) {
        !           134:     Lo &= 2147483647L;
        !           135:     ++Lo;
        !           136:   }
        !           137:   return((long)Lo);
        !           138: }
        !           139: 
        !           140: //-----------------------------------------------------------------------
        !           141: /*
        !           142:   Get own random number
        !           143: */
        !           144: long Misc_GetRandom(void)
        !           145: {
        !           146:   RandomNum = Misc_NextLongRand(RandomNum);
        !           147:   return(RandomNum);
        !           148: }
        !           149: 
        !           150: //-----------------------------------------------------------------------
        !           151: /*
        !           152:   Convert Time/Date to DOS format
        !           153: */
        !           154: /*
        !           155: void Misc_TimeDataToDos(FILETIME *pFileTime, WORD *pFatDate, WORD *pFatTime)
        !           156: {
        !           157:   // Convert FILETIME to DOS format(same as GemDOS format)
        !           158:   if (FileTimeToDosDateTime(pFileTime,pFatDate,pFatTime))
        !           159:     return;
        !           160: 
        !           161:   // Ooops, date/time outside range so just NULL
        !           162:   *pFatDate = *pFatTime = 0;
        !           163: }
        !           164: */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.