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]...")

Revision as of 12:13, 17 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.

  1. ifdef __GNUC__
  2. define GCC_UNUSED __attribute__((__unused__))
  3. define GCC_ALIGN(x) __attribute__((__packed__))
  4. else
  5. define GCC_UNUSED
  6. define GCC_ALIGN(x)
  7. endif
  1. pragma VERSIONID "@(#) NMSSUTIL E.02.03 2009/11/01 HP PArisc SSutil"
  2. define proc
  3. define PRG_VERS "E.02.03"
  4. define SS_MAX 128
  5. define CAP_PM 0x00000040
  6. define PDC_DIAGFILE "/dev/diag/diag2"
  1. ifndef S16
  2. 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;

  1. endif
  1. ifdef __mpexl
  2. pragma HP_ALIGN NOPADDING PUSH
  3. endif
  4. if defined(__HP_cc) || defined(__HP_aCC) /*aCC*/
  5. pragma pack 1
  6. endif

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;

  1. if defined(__HP_cc) || defined(__HP_aCC) /*aCC*/
  2. pragma pack
  3. endif
  4. ifdef __mpexl
  5. pragma HP_ALIGN POP
  6. endif

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