HP3000-L Archives

July 2000, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Keven Miller <[log in to unmask]>
Reply To:
Keven Miller <[log in to unmask]>
Date:
Thu, 6 Jul 2000 12:06:49 -0600
Content-Type:
text/plain
Parts/Attachments:
text/plain (227 lines)
Thanks for the challenge! This was fun.
Here is C code (MPE/iX not posix)

#pragma list off
#define  _SOCKET_SOURCE 1
#define  _MPEXL_SOURCE  1

#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <types.h>
#include <socket.h>
#include <in.h>

typedef  short          i16;
typedef  unsigned short u16;
typedef  long           i32;
typedef  unsigned long  u32;
typedef  unsigned char  uchar;

/*
:setvar ccopts "-Aa -C +e +w1 -D_SOCKET_SOURCE -D_MPEXL_SOURCE"
:ccxl fakelp.c

:setvar hpc "libcshr.lib.sys,libcansi.lib.sys,&
       libmansi.lib.sys,libcrand.lib.sys,socketrl.net.sys"
:LINKEDIT "LINK FROM=$OLDPASS;RL=!hpc;TO=FAKELP.PUB;SHARE

*/
/*----------------------------------------------------------------*/

int startserv ( int port ) {
   int   err;
   i32   sockc;
   struct   sockaddr_in sockadr;

   err = 0;
   memset ( (char*) &sockadr, 0, sizeof ( sockadr ));
   sockadr.sin_family      = AF_INET;
   sockadr.sin_addr.s_addr = INADDR_ANY;
   sockadr.sin_port        = htons ( port );

   sockc = socket ( AF_INET, SOCK_STREAM, 0 );
   if ( sockc < 0 ) {
      err = errno;
      perror ( "serv-socket" );

   } else if ( bind ( sockc, &sockadr, sizeof ( sockadr ) ) < 0 ) {
      err = errno;
      perror ( "serv-bind" );

   } else if ( listen ( sockc, 20 ) < 0 ) {
      err = errno;
      perror ( "serv-listen" );
   }

   if ( err && sockc >= 0 ) {
      if ( shutdown ( sockc, 2 ) < 0 )
         perror ( "serv-shutdown" );
      if ( sclose ( sockc ) < 0 )
         perror ( "serv-sclose" );
      sockc = -1;
   }

   return   sockc;
}
/*----------------------------------------------------------------*/

int main ( int argc, char* argv [] ){
   i32   port, next, sockc, socki, err, rlen;
   char  *cp, data [4096];
   FILE  *fo;
   struct   sockaddr_in sockadr;

   port  = 9100;
   next  = 1;

   if ( argc > 1 ) port = atoi ( argv [1] );
   if ( argc > 2 ) next = atol ( argv [2] );

   sockc = startserv ( port );
   if ( sockc < 0 )
      exit (1);

   cp = strchr ( argv [0], '.' );
   if ( cp ) *cp = 0;
   fprintf ( stderr, "%s ready on port %d\n", argv [0], port );

/* Accept loop */

   while (1) {
      rlen = sizeof (sockadr);
      socki = accept ( sockc, &sockadr, &rlen );
      if ( socki < 0 ) {
         perror ( "serv-accept" );
         break;
      }

      do {
         sprintf ( data, "F%d", next++ );
         fprintf ( stderr, "Capturing spoolfile to %s ... ", data );

         err = 0;
         fo = fopen ( data, "w" );
         if ( !fo ) {
            err = errno;
            perror ( data );
            break;
         }

         while (1) {
            rlen = recv ( socki, data, sizeof (data), 0 );
            if ( rlen <= 0 ) {
               if ( rlen < 0 )
                  perror ( "conn-recv" );
               break;
            }

            if ( rlen != fwrite ( data, 1, rlen, fo )) {
               err = errno;
               perror ( "fwrite" );
               break;
            }
         }

         if ( fclose ( fo )) {
            err = errno;
            perror ( "fclose" );
         }

         if ( !err )
            fprintf ( stderr, "Done\n" );

      } while (0);

      if ( shutdown ( socki, 2 ) < 0 )
         perror ( "conn-shutdown" );
      if ( sclose ( socki ) < 0 )
         perror ( "conn-sclose" );
   }

   if ( shutdown ( sockc, 2 ) < 0 )
      perror ( "serv-shutdown" );
   if ( sclose ( sockc ) < 0 )
      perror ( "serv-sclose" );

   fprintf ( stderr, "%s Complete\n", argv [0] );
}
/*----------------------------------------------------------------*/


Here is NPCONFIG with dev 205 back to HP.
#==========================================================================
# File: NPCONFIG
#==========================================================================

global (
         message_interval = 60               # Repeat msgs every >= 60 secs
         banner_trailer = FALSE              # Only need a header page.
         pjl_supported = FALSE               # LJ4Si is a full PJL device.
         jam_recovery = TRUE                 # Reprints jammed pages
      )
200   (
         network_address = 192.168.20.18  # IP
         pjl_supported = TRUE                # LJ4Si is a full PJL device.
         setup_file = PCLELITE.HPENV.SYS     # Portrait
      )
201   (
         network_address = 192.168.20.18  # IP
         pjl_supported = TRUE                # LJ4Si is a full PJL device.
         setup_file = PCLELITD.HPENV.SYS     # Duplex Portrait
      )
202   (
         network_address = 192.168.20.18   # IP
         pjl_supported = TRUE                # LJ4Si is a full PJL device.
         setup_file = PCLLP.HPENV.SYS        # Landscape
      )
203   (
         network_address = 192.168.20.18   # IP
         pjl_supported = TRUE
         setup_file = PCLLPD.HPENV.SYS       # Duplex Landscape
      )
204   (
         network_address = 192.168.20.18  # IP
         pjl_supported = TRUE
         setup_file = PCLLPD.HPENV.SYS      # Postscript
      )
205   (
         network_address = 192.168.20.54   # IP to FAKELP
         snmp_enabled    = false
         jam_recovery    = false
         banner_header   = false
      )


Now I see the spooler problem. So far, I cannot find a setting that will
turn off all PCL initialization.
Here is FCOPY CHAR;HEX dump of 1st 2 records in captured file. Rest of file
is good capture.

F1 RECORD 0 (%0, #0)

0000: 1B25 2D31 3233 3435 581B 5A1B 451B 266C .%-12345X.Z.E.&l
0008: 3056 1B5A 1B45 1B26 6C31 581B 266C 2D32 0V.Z.E.&l1X.&l-2
0010: 322E 3530 752D 3333 2E37 355A 1B26 6C31 2.50u-33.75Z.&l1
0018: 4F1B 266C 3241 1B26 6C36 2E31 3843 1B26 O.&l2A.&l6.18C.&
0020: 6C33 451B 266C 3630 461B 2661 324C 1B26 l3E.&l60F.&a2L.&
0028: 6C31 4C1B 266B 3247 1B28 3855 1B28 7330 l1L.&k2G.(8U.(s0
0030: 501B 2873 3133 481B 2873 3053 1B28 7330 P.(s13H.(s0S.(s0
0038: 421B 2873 3430 3939 541B 2664 4046 414B B.(s4099T.&d@FAK
0040: 454C 502E 582E 4B45 5645 4E4D 2028 5465 ELP.X.KEVENM (Te
0048: 7874 2920 2020 2020 2020 2020 2020 2020 xt)
0050: 2020 2054 4855 2C20 4A55 4C20 2036 2C20    THU, JUL  6,
0058: 3230 3030 2C20 3131 3A35 3520 414D 2020 2000, 11:55 AM
0060: 2020 2020 2020 2020 2020 310D 2020 2020           1.
0068: SAME: TO 0080-1

F1 RECORD 1 (%1, #1)

0000: 200D 2020 2020 2020 2020 2020 2020 2020  .
0008: SAME: TO 0080-1

> _____________________________________________________________
> Keven Miller   mailto:[log in to unmask]   http://www.exegesys.com
>
>

ATOM RSS1 RSS2