HP3000

From Linux PARISC Wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "Craig Lalley <mr_lalley@yahoo.com> HP3000 918 LX (changed the name to "928LX 3kranger Fox") Stable storage 256 bytes, then Nvolatile storage 256 bytes. NMSSUTIL [E.02.03]...")
 
m
Line 1: Line 1:
 
Craig Lalley <mr_lalley@yahoo.com>
 
Craig Lalley <mr_lalley@yahoo.com>
  
HP3000 918 LX (changed the name to "928LX 3kranger Fox")
+
HP3000 918 LX (changed the name to "928LX 3kranger Fox")
 
   
 
   
Stable storage 256 bytes, then Nvolatile storage 256 bytes.
+
Stable storage 256 bytes, then Nvolatile storage 256 bytes.
 
   
 
   
NMSSUTIL [E.02.03]
+
NMSSUTIL [E.02.03]
SSsize 64 (256)
+
SSsize 64 (256)
H-SSsize 64 (256)
+
H-SSsize 64 (256)
00000000: 80 FF FF FF FF FF 38 34 00 00 00 06 00 00 00 00 ......84........
+
00000000: 80 FF FF FF FF FF 38 34 00 00 00 06 00 00 00 00 ......84........
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000040: 00 02 00 00 FF FF FF FA 21 F6 84 00 00 00 00 00 ........!.......
+
00000040: 00 02 00 00 FF FF FF FA 21 F6 84 00 00 00 00 00 ........!.......
00000050: 00 00 00 00 00 00 00 00 7B 3A 00 00 00 00 01 0F ........{:......
+
00000050: 00 00 00 00 00 00 00 00 7B 3A 00 00 00 00 01 0F ........{:......
00000060: 00 FF FF FF FF FF 38 38 00 00 00 00 00 00 00 00 ......88........
+
00000060: 00 FF FF FF FF FF 38 38 00 00 00 00 00 00 00 00 ......88........
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 00 FF FF FF FF FF 38 34 00 00 00 00 00 00 00 00 ......84........
+
00000080: 00 FF FF FF FF FF 38 34 00 00 00 00 00 00 00 00 ......84........
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Path:  Primary  56/52.6.0.0.0.0.0  AutoBoot  ON AutoSrch OFF
+
Path:  Primary  56/52.6.0.0.0.0.0  AutoBoot  ON AutoSrch OFF
Path: Alternate  56/52.0.0.0.0.0.0
+
Path: Alternate  56/52.0.0.0.0.0.0
Path:  Console  56/56.0.0.0.0.0.0
+
Path:  Console  56/56.0.0.0.0.0.0
Path:  Keyboard  0
+
Path:  Keyboard  0
 
   
 
   
    OS: 2  MPE    Diag 0x7B3A  FastSize F  OSdep2 1
+
OS: 2  MPE    Diag 0x7B3A  FastSize F  OSdep2 1
OSdep1: 0000 FFFF FFFA 21F6 8400 0000 0000 0000 0000 0000 0000
+
OSdep1: 0000 FFFF FFFA 21F6 8400 0000 0000 0000 0000 0000 0000
 
   
 
   
00000000: 00 00 48 00 00 00 04 81 00 00 00 00 00 00 00 00 ..H.............
+
00000000: 00 00 48 00 00 00 04 81 00 00 00 00 00 00 00 00 ..H.............
00000010: 44 14 3A 73 10 00 00 01 00 00 00 00 00 00 00 00 D.:s............
+
00000010: 44 14 3A 73 10 00 00 01 00 00 00 00 00 00 00 00 D.:s............
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5E F0 ..............^.
+
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5E F0 ..............^.
00000040: 40 48 00 09 F6 23 07 6C 80 00 00 00 80 00 00 00 @H...#.l........
+
00000040: 40 48 00 09 F6 23 07 6C 80 00 00 00 80 00 00 00 @H...#.l........
00000050: 00 07 53 03 00 00 00 00 00 00 00 00 00 00 00 00 ..S.............
+
00000050: 00 07 53 03 00 00 00 00 00 00 00 00 00 00 00 00 ..S.............
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 39 32 38 4C 58 20 33 6B 52 61 6E 67 65 72 20 46 928LX 3kRanger F
+
00000080: 39 32 38 4C 58 20 33 6B 52 61 6E 67 65 72 20 46 928LX 3kRanger F
00000090: 6F 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ox..............
+
00000090: 6F 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ox..............
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000F0: 55 53 41 2D 33 6B 52 61 6E 67 65 72 2D 31 30 00 USA-3kRanger-10.
+
000000F0: 55 53 41 2D 33 6B 52 61 6E 67 65 72 2D 31 30 00 USA-3kRanger-10.
 
  Product:  Serial USA-3kRanger-10
 
  Product:  Serial USA-3kRanger-10
    MPE: 928LX 3kRanger Fox
+
MPE: 928LX 3kRanger Fox
HVersion: 0x4800  SVersion 0x0481  HV 0  swID 0x44143A73 1142176371
+
HVersion: 0x4800  SVersion 0x0481  HV 0  swID 0x44143A73 1142176371
    Cap: 0x10000001  BootID 0  Arch 0  Potkey 0  Curkey 0  Width 0
+
Cap: 0x10000001  BootID 0  Arch 0  Potkey 0  Curkey 0  Width 0
  SysClock 48.000304  RTClock 32768  Res2    5ef0 24304
+
SysClock 48.000304  RTClock 32768  Res2    5ef0 24304
   
+
  Res3 data
  Res3 data
+
 
+
 
===================================================================
 
===================================================================
Code extract of NMSSUTIL
+
<code>
Structures are as I discovered.
+
Code extract of NMSSUTIL
                                                                           
+
Structures are as I discovered.
#ifdef  __GNUC__
+
#  define  GCC_UNUSED        __attribute__((__unused__))
+
#  define  GCC_ALIGN(x)      __attribute__((__packed__))
+
#else
+
#  define  GCC_UNUSED
+
#  define  GCC_ALIGN(x)
+
#endif
+
 
   
 
   
#pragma VERSIONID "@(#) NMSSUTIL  E.02.03  2009/11/01 HP PArisc SSutil"
+
#pragma VERSIONID "@(#) NMSSUTIL  E.02.03  2009/11/01 HP PArisc SSutil"
#define  proc
+
#define  proc
#define  PRG_VERS      "E.02.03"
+
#define  PRG_VERS      "E.02.03"
#define  SS_MAX        128
+
#define  SS_MAX        128
#define  CAP_PM        0x00000040
+
#define  CAP_PM        0x00000040
#define  PDC_DIAGFILE  "/dev/diag/diag2"
+
#define  PDC_DIAGFILE  "/dev/diag/diag2"
 
   
 
   
#ifndef  S16
 
#define  S16
 
typedef    signed short s16;
 
typedef  unsigned short u16;
 
typedef    signed int  s32;
 
typedef  unsigned int  u32;
 
typedef  unsigned char  uchar;
 
typedef          float f32;
 
typedef          double f64;
 
#endif
 
 
   
 
   
#ifdef  __mpexl
+
  typedef struct GCC_ALIGN(1) path_s {
#pragma HP_ALIGN NOPADDING PUSH
+
#endif
+
#if defined(__HP_cc) || defined(__HP_aCC)    /*aCC*/
+
#pragma pack 1
+
#endif
+
   
+
typedef struct GCC_ALIGN(1) path_s {
+
 
   struct {
 
   struct {
 
       u32  autoboot    :1;
 
       u32  autoboot    :1;
Line 103: Line 78:
 
   u32  mod        :8;
 
   u32  mod        :8;
 
   u32  layer[6];
 
   u32  layer[6];
} path_t;
+
} path_t;
 
   
 
   
typedef struct GCC_ALIGN(1) os_s {
+
typedef struct GCC_ALIGN(1) os_s {
 
   u16  osid;
 
   u16  osid;
 
   u16  osdep1 [11];
 
   u16  osdep1 [11];
Line 114: Line 89:
 
   u32  res3    :4;
 
   u32  res3    :4;
 
   u32  fastsize :4;
 
   u32  fastsize :4;
} os_t;
+
} os_t;
+
    
#if defined(__HP_cc) || defined(__HP_aCC)    /*aCC*/
+
  typedef struct arch_stable_s {
#pragma pack
+
#endif
+
#ifdef   __mpexl
+
#pragma HP_ALIGN POP
+
#endif
+
   
+
typedef struct arch_stable_s {
+
 
   path_t  pri;    /*  0 $00*/
 
   path_t  pri;    /*  0 $00*/
 
   path_t  res1;    /* 32 $20*/
 
   path_t  res1;    /* 32 $20*/
Line 132: Line 100:
 
   path_t  res2;    /*192 $C0*/
 
   path_t  res2;    /*192 $C0*/
 
   u32  osdep3 [8]; /*224 $E0*/
 
   u32  osdep3 [8]; /*224 $E0*/
} arch_stable_t;    /*256 $100*/
+
} arch_stable_t;    /*256 $100*/
 
   
 
   
typedef struct unarch_stable_s {
+
typedef struct unarch_stable_s {
 
   u32  hvers;
 
   u32  hvers;
 
   u32  svers;
 
   u32  svers;
Line 157: Line 125:
 
   char  prod2 [8];
 
   char  prod2 [8];
 
   char  sernum [16];
 
   char  sernum [16];
} unarch_stable_t;
+
} unarch_stable_t;
 
   
 
   
int  wizard;
+
int  wizard;
 
   
 
   
/*----------------------------------------------------------------*/
+
/*----------------------------------------------------------------*/
 
   
 
   
proc static void zzz_fmtunarch (u32 *ss)
+
proc static void zzz_fmtunarch (u32 *ss)
{
+
{
 
   int  x;
 
   int  x;
 
   unarch_stable_t  *un;
 
   unarch_stable_t  *un;
Line 197: Line 165:
 
   if (! zzz_iszero (un->res3, sizeof (un->res3)))
 
   if (! zzz_iszero (un->res3, sizeof (un->res3)))
 
       printf ("  Res3 data\n");
 
       printf ("  Res3 data\n");
}
+
}
/*----------------------------------------------------------------*/
+
</code>

Revision as of 20:05, 19 October 2022

Craig Lalley <mr_lalley@yahoo.com>

HP3000 918 LX (changed the name to "928LX 3kranger Fox")

Stable storage 256 bytes, then Nvolatile storage 256 bytes.

NMSSUTIL [E.02.03]
SSsize 64 (256)
H-SSsize 64 (256)
00000000: 80 FF FF FF FF FF 38 34 00 00 00 06 00 00 00 00 ......84........
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000040: 00 02 00 00 FF FF FF FA 21 F6 84 00 00 00 00 00 ........!.......
00000050: 00 00 00 00 00 00 00 00 7B 3A 00 00 00 00 01 0F ........{:......
00000060: 00 FF FF FF FF FF 38 38 00 00 00 00 00 00 00 00 ......88........
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 00 FF FF FF FF FF 38 34 00 00 00 00 00 00 00 00 ......84........
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Path:   Primary  56/52.6.0.0.0.0.0  AutoBoot  ON AutoSrch OFF
Path: Alternate  56/52.0.0.0.0.0.0
Path:   Console  56/56.0.0.0.0.0.0
Path:  Keyboard  0

OS: 2  MPE    Diag 0x7B3A  FastSize F  OSdep2 1
OSdep1: 0000 FFFF FFFA 21F6 8400 0000 0000 0000 0000 0000 0000

00000000: 00 00 48 00 00 00 04 81 00 00 00 00 00 00 00 00 ..H.............
00000010: 44 14 3A 73 10 00 00 01 00 00 00 00 00 00 00 00 D.:s............
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5E F0 ..............^.
00000040: 40 48 00 09 F6 23 07 6C 80 00 00 00 80 00 00 00 @H...#.l........
00000050: 00 07 53 03 00 00 00 00 00 00 00 00 00 00 00 00 ..S.............
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 39 32 38 4C 58 20 33 6B 52 61 6E 67 65 72 20 46 928LX 3kRanger F
00000090: 6F 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ox..............
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000F0: 55 53 41 2D 33 6B 52 61 6E 67 65 72 2D 31 30 00 USA-3kRanger-10.
Product:   Serial USA-3kRanger-10
MPE: 928LX 3kRanger Fox
HVersion: 0x4800  SVersion 0x0481  HV 0  swID 0x44143A73 1142176371
Cap: 0x10000001  BootID 0  Arch 0  Potkey 0  Curkey 0  Width 0
SysClock 48.000304  RTClock 32768  Res2    5ef0 24304
Res3 data
=======================================================

Code extract of NMSSUTIL
Structures are as I discovered.

#pragma VERSIONID "@(#) NMSSUTIL   E.02.03  2009/11/01 HP PArisc SSutil"
#define  proc
#define  PRG_VERS       "E.02.03"
#define  SS_MAX         128
#define  CAP_PM         0x00000040
#define  PDC_DIAGFILE   "/dev/diag/diag2"


typedef struct GCC_ALIGN(1) path_s {
  struct {
     u32   autoboot    :1;
     u32   autosearch  :1;
     u32   res1        :2;
     u32   timer       :4;
  } attr;
  uchar bc [6];
  u32   mod         :8;
  u32   layer[6];
} path_t;

typedef struct GCC_ALIGN(1) os_s {
  u16   osid;
  u16   osdep1 [11];
  u16   diag;
  u16   res1;
  u32   res2     :8;
  u32   osdep2   :16;
  u32   res3     :4;
  u32   fastsize :4;
} os_t;
 
typedef struct arch_stable_s {
  path_t   pri;     /*  0 $00*/
  path_t   res1;    /* 32 $20*/
  os_t     os;      /* 64 $40*/
  path_t   cons;    /* 96 $60*/
  path_t   alt;     /*128 $80*/
  path_t   key;     /*160 $A0*/
  path_t   res2;    /*192 $C0*/
  u32   osdep3 [8]; /*224 $E0*/
} arch_stable_t;     /*256 $100*/

typedef struct unarch_stable_s {
  u32   hvers;
  u32   svers;
  u32   hv;
  u32   bootid;
  u32   swid;
  u32   swcap;
  u32   archrev;
  u32   potkey;
  u32   curkey;
  u32   width;
  u16   res1 [11];
  u16   res2;
  f64   sysclock_mhz;
  u16   rtclock_hz;
  u16   res3 [11];
  char  hpuxname [32];
  char  mpename [32];
  char  alt1name [32];
  char  alt2name [32];
  char  prod1 [8];
  char  prod2 [8];
  char  sernum [16];
} unarch_stable_t;

int   wizard;

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

proc static void zzz_fmtunarch (u32 *ss)
{
  int   x;
  unarch_stable_t   *un;

  un = (unarch_stable_t*) ss;
  if (*un->prod1 || *un->prod2 || *un->sernum)
     printf (" Product: %s %s Serial %-.*s\n",
        un->prod1, un->prod2, sizeof (un->sernum), un->sernum);
  if (*un->hpuxname)
     printf ("    HPUX: %s\n", un->hpuxname);
  if (*un->mpename)
     printf ("     MPE: %s\n", un->mpename);
  printf ("HVersion: 0x%4.4X", un->hvers);
  printf ("  SVersion 0x%4.4X", un->svers);
  printf ("  HV %d", un->hv);
  printf ("  swID 0x%X %d", un->swid, un->swid);
  printf ("\n");
  printf ("     Cap: 0x%X", un->swcap);
  printf ("  BootID %d", un->bootid);
  printf ("  Arch %d", un->archrev);
  printf ("  Potkey %d", un->potkey);
  printf ("  Curkey %d", un->curkey);
  printf ("  Width %d", un->width);
  printf ("\n");
  printf ("  SysClock %f", un->sysclock_mhz);
  printf ("  RTClock %d",  un->rtclock_hz);
  printf ("  Res2    %x %d\n", un->res2, un->res2);
  printf ("\n");

  if (! zzz_iszero (un->res1, sizeof (un->res1)))
     printf ("  Res1 data\n");
  if (! zzz_iszero (un->res3, sizeof (un->res3)))
     printf ("  Res3 data\n");
}

Personal tools