Annotation of hatari/src/misc.c, revision 1.1.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.