home *** CD-ROM | disk | FTP | other *** search
/ Amiga Times / AmigaTimes.iso / programme / trionbbs110 / Trion / docs / RIPdoors / ripsupport.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-06  |  1.3 KB  |  68 lines

  1.  
  2.  
  3. /*  Trion BBS 'RIPscrip Clidoor Support' system functions               */
  4. /*                                                                      */
  5. /*  V 1.00   08 - Jan - 1998                                            */
  6. /*                                                                      */
  7. /*  (c) Copyright 1995-98 by Paul Spijkerman                            */
  8.  
  9.  
  10. #include "ripdoor.h"
  11.  
  12.  
  13. UBYTE MakeMegaChar(int n)
  14. {
  15.    UBYTE c = '0';
  16.  
  17.    if (n >= 0 && n <= 9)  c = n + '0';
  18.    if (n >= 10)           c = n + 'A' - 10;
  19.  
  20.    return c;
  21. }
  22.  
  23. void Store1Chars(UBYTE *p, UWORD value)
  24. {
  25.    *p = MakeMegaChar( value );
  26. }
  27.  
  28. void Store2Chars(UBYTE *p, UWORD value)
  29. {
  30.    *p++ = MakeMegaChar( value / 36 );
  31.    *p   = MakeMegaChar( value % 36 );
  32. }
  33.  
  34. void Store3Chars(UBYTE *p, UWORD value)
  35. {
  36.    UWORD hi, mi, lo;
  37.  
  38.    hi = (value / 1296);                /*  1296 = 36*36  */
  39.    mi = (value - (hi * 1296)) / 36;
  40.    lo = (value % 36);                  /* lo = value - (hi * 1296) - (mi * 36);  */
  41.  
  42.    *p++ = MakeMegaChar( hi );
  43.    *p++ = MakeMegaChar( mi );
  44.    *p   = MakeMegaChar( lo );
  45. }
  46.  
  47. void Store4Chars(UBYTE *p, UWORD value)
  48. {
  49.    UWORD hi, lo;
  50.  
  51.    hi = value / 1296;
  52.    lo = value - hi * 1296;
  53.  
  54.    Store2Chars(p,   hi);
  55.    Store2Chars(p+2, lo);
  56. }
  57.  
  58.  
  59.  
  60.  
  61. void endrip(void)
  62. {
  63.    UBYTE *str = "!|#|#|#";         /* RIP_NO_MORE */
  64.  
  65.    printf( "%s%s\r\n" , str);
  66. }
  67.  
  68.