From 1fd361a1ea06e44286c213ca1f814f49306fdc43 Mon Sep 17 00:00:00 2001 From: giraffedata Date: Sat, 19 Aug 2006 03:12:28 +0000 Subject: Create Subversion repository git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@1 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- urt/vaxshort.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 urt/vaxshort.c (limited to 'urt/vaxshort.c') diff --git a/urt/vaxshort.c b/urt/vaxshort.c new file mode 100644 index 00000000..4b57b516 --- /dev/null +++ b/urt/vaxshort.c @@ -0,0 +1,50 @@ +/* + * V A X S H O R T + * + * Code to manipulate 16-bit integers in VAX order in a + * machine independent manner. + * + * (VAX is a trademark of Digital Equipment Corporation) + * + * Author - + * Michael John Muuss + * + * Source - + * SECAD/VLD Computing Consortium, Bldg 394 + * The U. S. Army Ballistic Research Laboratory + * Aberdeen Proving Ground, Maryland 21005-5066 + * + * Distribution Status - + * Public Domain, Distribution Unlimitied. + */ + +#include "vaxshort.h" + +/* + * V A X _ G S H O R T + * + * Obtain a 16-bit signed integer from two adjacent characters, + * stored in VAX order, regardless of word alignment. + */ +int +vax_gshort(char *msgp) +{ + register unsigned char *p = (unsigned char *) msgp; + register int i; + + if( (i = (p[1] << 8) | p[0]) & 0x8000 ) + return(i | ~0xFFFF); /* Sign extend */ + return(i); +} + +/* + * V A X _ P S H O R T + */ +char * +vax_pshort(char *msgp, unsigned short s) +{ + + msgp[0] = s & 0xFF; + msgp[1] = s >> 8; + return(msgp+2); +} -- cgit 1.4.1