Category : C Source Code
Archive   : GCOOPE10.ZIP
Filename : LONGINT.C

 
Output of file : LONGINT.C contained in archive : GCOOPE10.ZIP

/*

LongInt class definition 7/13/94 by Brian Lee Price

Compatible with experimental strong typing option.

Released as Public Domain July, 1994.

*/

#define CLASS LongInt

#include "gcoope10.h"

#include

object CLASS;

extern object String;
extern object Char;
extern object ShortInt;
extern object Unsigned;
extern object Pointer;

USEGEN(changeVal);
USEGEN(valueOf);
USEGEN(asString);
USEGEN(asHexStr);
USEGEN(asChar);
USEGEN(asShortInt);
USEGEN(asUnsigned);
USEGEN(asPointer);
USEGEN(asLongInt);

cmethod object m4New(object instance, long initVal)
{
long * ivptr;

if(NULL==(ivptr=makeInst(&instance))) return 0;
*ivptr=initVal;

return instance;
}


imethod object m4changeVal(object instance, long newVal)
{
long * ivptr;

if(NULL==(ivptr=getIVptr(instance))) return FUNCFAIL;
*ivptr=newVal;

return FUNCOKAY;
}


imethod long m4valueOf(object instance)
{
return *((long *) getIVptr(instance));
}


imethod object m4asString(object instance)
{
char strBuf[16];
long a;

a=*((long *) getIVptr(instance));
sprintf(strBuf,"%ld", a);
return g(New)(String,strBuf);
}


imethod object m4asHexStr(object instance)
{
char strBuf[16];
long a;

a=*((long *) getIVptr(instance));
sprintf(strBuf, "%lx", (unsigned long) a);
return g(New)(String,strBuf);
}


imethod object m4asChar(object instance)
{
long a;

a=*((long *) getIVptr(instance));
return g(New)(Char,(char) a);
}


imethod object m4asShortInt(object instance)
{
long a;

a=*((long *) getIVptr(instance));
return g(New)(ShortInt,(short) a);
}


imethod object m4asUnsigned(object instance)
{
long a;

a=*((long *) getIVptr(instance));
return g(New)(Unsigned,(unsigned short) a);
}


imethod object m4asPointer(object instance)
{
long a;

a=*((long *) getIVptr(instance));
return g(New)(Pointer,(void *) a);
}




CLASS_INSTALL
{
stat x=FUNCFAIL;

if(END==(CLASS=g(New)(Class, 0, sizeof(long), END)))
goto end;
if(addGMthd(CLASS, New, (method) m4New)) goto end;
if(addGMthd(CLASS, GEN(changeVal), (method) m4changeVal)) goto end;
if(addGMthd(CLASS, GEN(valueOf), (method) m4valueOf)) goto end;
if(addGMthd(CLASS, GEN(asString), (method) m4asString)) goto end;
if(addGMthd(CLASS, GEN(asHexStr), (method) m4asHexStr)) goto end;
if(addGMthd(CLASS, GEN(asChar), (method) m4asChar)) goto end;
if(addGMthd(CLASS, GEN(asShortInt), (method) m4asShortInt)) goto end;
if(addGMthd(CLASS, GEN(asUnsigned), (method) m4asUnsigned)) goto end;
if(addGMthd(CLASS, GEN(asPointer), (method) m4asPointer)) goto end;
if(addGMthd(CLASS, GEN(asLongInt), bounceBack)) goto end;

x=FUNCOKAY;

end:
return x;
}


  3 Responses to “Category : C Source Code
Archive   : GCOOPE10.ZIP
Filename : LONGINT.C

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/