[comp.sys.hp] cdrom questions

paul@eye.com (Paul B. Booth) (01/24/91)

An hp 600/A cd rom drive appeared at our place last week, bringing with it a
couple of questions.  Maybe someone in this group can help:

1. VERY IMPORTANT:  Is it possible to play "normal" audio cd's with these
   things?  Sure, the drive has headphone jacks and a volume slider, but
   I'm guessing that I need some kind of software to control the drive and
   divert the audio to the jack.  Any ideas where I might find such a
   beastie for s300-s400 machines??

2. On a more serious note, has anyone out there used the HP-LASERROM
   documentation product?  What are your impressions of the X-interface
   of this guy, and do you consider the whole concept useful?  Would you
   say that laserrom is a viable alternative to paper manuals?  My current
   support contracts give me 3 sets of paper manuals which are shared among
   some 20 workstations.  I'd like to replace all this paper with laserrom
   docs on all workstations and maybe 1 set of paper manuals.  Reasonable?

Thanks for any ideas y'all might have.
   

--
Paul B. Booth  (paul@eye.com) (...!hplabs!hpfcla!eye!paul)
-------------------------------------------------------------------------------
3D/EYE, Inc., 2359 N. Triphammer Rd., Ithaca, NY  14850    voice: (607)257-1381
                                                             fax: (607)257-7335

wayne@ledgepc.uucp (Wayne Brown) (01/24/91)

From article <1991Jan23.192953.28335@eye.com>, by paul@eye.com (Paul B. Booth):
> 
> 2. On a more serious note, has anyone out there used the HP-LASERROM
>    documentation product?  What are your impressions of the X-interface
>    of this guy, and do you consider the whole concept useful?  Would you
>    say that laserrom is a viable alternative to paper manuals?  My current
>    support contracts give me 3 sets of paper manuals which are shared among
>    some 20 workstations.  I'd like to replace all this paper with laserrom
>    docs on all workstations and maybe 1 set of paper manuals.  Reasonable?
> 
I've only used the MPE V version of LaserROM runnning under Windows/286
under MS-DOS (shudder!), so I can't tell you anything about the X-interface.
As far as usefulness goes, it makes a great _addition_ to paper manuals, but
not, IMHO, a replacement.  LaserROM is great when you need to find references
to a specific topic but don't know what manual to use, or if the info is
scattered through several different manuals.  (I convinced our management
to renew our subscription by showing them how quickly it could come up with
complete instructions for dealing with system failures.)  But for browsing
through lengthy passages, I prefer hardcopy.  In fact, for longer passages,
I often use LaserROM to identify the correct manual & page, verify that it's
what I want, and then look it up in the hardcopy edition.  This allows us
to keep one copy of each of the paper manuals in a central location, with
LaserROM making it necessary to consult them only occasionally.

My suggestion is to purchase one set of LaserROM docs and try it out for a
couple of weeks.  If you (and your users) like it, you can buy copies for
the other workstations later.
-- 
Wayne Brown	wayne@ledgepc.uucp
		uunet!{loft386,dsuvax}!ledgepc!wayne
		72447.2645@compuserve.com
Warning:  .signature truncated; maximum trivia level exceeded.

neil@yc.estec.nl (Neil Dixon) (01/24/91)

In article <1991Jan23.192953.28335@eye.com>, paul@eye.com (Paul B.
Booth) writes:

|>2. On a more serious note, has anyone out there used the HP-LASERROM
|>   documentation product?  What are your impressions of the X-interface
|>   of this guy, and do you consider the whole concept useful?  Would you
|>   say that laserrom is a viable alternative to paper manuals?  My current
|>   support contracts give me 3 sets of paper manuals which are shared among
|>   some 20 workstations.  I'd like to replace all this paper with laserrom
|>   docs on all workstations and maybe 1 set of paper manuals.  Reasonable?
|>

This get a big recommendation from me, despite my other comments below.
Not only do I now have an extra 3m of shelf space,  but also I can find
information much more quickly, due to the keyword searching features. 
You also get access to docs for products you may not yet have,  which
can be very useful in deciding whether you want them (but no docs for
the 400 series yet?).  

The down-side for me is the X interface itself.  Primarily it tends to
be a bit of a fascist, in dictating where windows are placed, how
they're stacked, etc. All things that I would like to control.  Also the
bloody thing will crash with an X protocol error if you try to run it on
a Turbo SRX, with the server in OVERLAY or COMBINED mode.  Run it on a
monochrome HP machine, and perform some keyword search, and you can see
where the keywords appear in the document, by the subtle use of white
text on a white background :-). I can't find any resource which controls
how keywords are displayed.

(Yes I have reported these two bugs to HP!)

Another minor grumble. It's claimed to be a OSF/MOTIF interface, but the
widgets used look strangely like the old HP widget set.
                      
Neil Dixon <neil@yc.estec.nl> UUCP:...!mcvax!esatst!neil, BITNET: NDIXON@ESTEC
Thermal Control & Life Support Division (YC) 
European Space Research and Technology Centre (ESTEC),
Noordwijk, The Netherlands.

tml@tik.vtt.fi (Tor Lillqvist) (01/24/91)

In article <1991Jan23.192953.28335@eye.com> paul@eye.com (Paul B. Booth) writes:
   2. On a more serious note, has anyone out there used the HP-LASERROM
      documentation product?  What are your impressions of the X-interface
      of this guy, and do you consider the whole concept useful?  Would you
      say that laserrom is a viable alternative to paper manuals?  My current
      support contracts give me 3 sets of paper manuals which are shared among
      some 20 workstations.  I'd like to replace all this paper with laserrom
      docs on all workstations and maybe 1 set of paper manuals.  Reasonable?

We have a subscription to LaserROM/UX.  Some impressions:

	o The X interface is a little crude.  The look-and-feel is a
	  bit like Motif, but without colours and 3d look.

	o On a monochrome display the highlighted keywords in the
	  result of a keyword search are invisible.

	o One of the most common things people ask me is "how do I
	  print out a paper copy of this manual".  So much for
	  replacing printed manuals :-)

	o It seems rather silly to keep simple pictures in scanned
	  form.  (And some of them are very badly scanned, with lots
	  of noise.)  Why not store such pictures in vector form?  OK,
	  I guess these pictures have been originally drawn by hand,
	  so scanning is the only way to get them into LaserROM.

	o (Dreaming...) Why does it use typewriter (fixed-spacing)
	  fonts?  Real (proportional) text fonts would look much
	  nicer.  But then of course the character mode version
	  wouldn't work.  Maybe it should do the paragraph formatting
	  at run time.  Then you could resize the windows and the text
	  would re-format itself automatically.

I would not want to replace all paper manuals with LaserROM.  After
all, you cannot read LaserROM in the bus.  And at home, you don't want
to use the character interface on a slow modem line.
--
Tor Lillqvist,
working, but not speaking, for the Technical Research Centre of Finland

j_adams@hpfcbig.SDE.HP.COM (John Adams) (01/25/91)

> 1. VERY IMPORTANT:  Is it possible to play "normal" audio cd's with these
>    things?

     Yes, as long as the audio CD is fitted into the sleeve

	     Sure, the drive has headphone jacks and a volume slider, but
>    I'm guessing that I need some kind of software to control the drive and
>    divert the audio to the jack.  Any ideas where I might find such a
>    beastie for s300-s400 machines??

     No software needed, it will play the entire disk.  It would be nice
     to control the unit for selection of tracks etc.  I am not aware of
     any software for this purpose.


     John Adams

jeff@hpcuhc.cup.hp.com (Jeff Marinchak) (01/25/91)

>1. VERY IMPORTANT:  Is it possible to play "normal" audio cd's with these
>   things?  Sure, the drive has headphone jacks and a volume slider, but
>   I'm guessing that I need some kind of software to control the drive and
>   divert the audio to the jack.  Any ideas where I might find such a
>   beastie for s300-s400 machines??
>

Yes, I've done this.  No software is needed, I just put my favorite CD
in one of the CD sleeves in which the normal laserrom CD's are usually 
shipped, inserted my CD, plugged in my headphones, and MUSIC!!!!!!

Jeff Marinchak
----

Of course these are my own opinions.......

pshah@hpcupt1.cup.hp.com (Pankaj Shah) (01/25/91)

> 1. VERY IMPORTANT:  Is it possible to play "normal" audio cd's with these
>    things?
Yup!  Just stick your audio CD into a caddy and slap it in.  The CD-ROM readers
detect whether the digital bits are encoded audio or data.  In case of the
600/A, it automatically diverts the audio output to the headphones.

Pankaj Shah;   (408)-447-4658.

aaronf@hpfcbig.SDE.HP.COM (Aaron Friesen) (01/26/91)

tml@tik.vtt.fi (Tor Lillqvist) /  8:43 am  Jan 24, 1991 / writes:
> We have a subscription to LaserROM/UX.  Some impressions:
> 
  [ some stuff deleted... ]
> 
> 	o On a monochrome display the highlighted keywords in the
> 	  result of a keyword search are invisible.

I am currently using a monochrome display.  Try using the following
resource definitions and see if it helps.

LAserrom*Background:	Black
LAserrom*Foreground:	White
LAserrom*LBox*background:	Black
LAserrom*Pulldown*Background:	Black
LAserrom*ShadowThickness:	2
LAserrom*XmDrawingArea.background:	Black
LAserrom*XmList*Background:	Black
LAserrom*XmText*Background:	Black
LAserrom*bottomShadowColor:	White
LAserrom*displayHeight:	500
LAserrom*displayWidth:	750
LAserrom*font:	iso1.13
LAserrom*fontList:	iso1.13
LAserrom*menubar*background:	Black
LAserrom*menubar*bottomShadowColor:	White
LAserrom*topShadowColor:	White

Aaron Friesen

----------
Disclaimer:  (The normal stuff...)

kinsell@hpfcdj.HP.COM (Dave Kinsell) (01/31/91)

>1. VERY IMPORTANT:  Is it possible to play "normal" audio cd's with these
>   things?  


>Paul B. Booth  (paul@eye.com) (...!hplabs!hpfcla!eye!paul)

I realize you're asking about the HP-IB version of the player, but I'll
post a program for the SCSI version in case other people would be interested.
This *really* is unsupported software, and I regretfully am not in a position
to dribble out information from the 120 page OEM manual.   There has never
been an intent to document the audio commands on this device. 

Regards
Dave Kinsell


------------------------------------------------------------------------------
/*
Program scsi_play, used for playing selected tracks from
an audio CD-ROM on Hewlett-Packard Series 300 and 400 computers.

Specify starting track number with -t option (default is 1).
Specify number of tracks to play with -n option (default is 0).
If 0 tracks are chosen, entire disc is played.
Use -h to halt playing.
Not all audio CDs start at track 1!
Requires character device as a parameter.
Requires root privilege to run.
Works only with Toshiba XM-3201 SCSI CD-ROM player.
Tested with S300/S400 HP-UX, rev 7.0
Supplied without warranty or support of any kind.
*/


#include <stdio.h>
#include <sys/scsi.h>
	

struct scsi_cmd_parms track_search = {
	10, 1, 500,
	0xc0, 0x00, 0x01, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x80
	};

struct scsi_cmd_parms play_audio = {
	10, 1, 500,
	0xc1, 0x03, 0x02, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x80
	};

struct scsi_cmd_parms read_disc_info = {
	10, 1, 500,
	0xc7, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00
	};

struct scsi_cmd_parms stop = {
	6, 1, 500,
	0x1b, 0x00, 0x00, 0x00, 0x00, 0x00
	};

struct scsi_cmd_parms status = {		/* not used */
	10, 1, 500,
	0xc6, 0x0a, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00
	};


main(argc,argv)
int argc;
char *argv[];
{
int fd, c, ret, first_track= 1, last_track, halt=0,
		num_tracks=0;
int first_avail, last_avail;
unsigned char buf[256];
char    *name, *begin = NULL, *num = NULL;

extern  int opterr, optind;
extern  char	*optarg;
opterr=0;
while (( c = getopt(argc, argv, "Hht:T:n:N:")) != EOF) {
       	switch (c) {
	case 'T':
	case 't': begin = optarg;
		  sscanf(begin,"%d",&first_track);
	  	  break;
       	case 'N':
	case 'n': num = optarg;
		  sscanf(num,"%d",&num_tracks);
	  	  break;
	case 'H':
	case 'h': halt=1; break;
       	default:  usage(argv[0]);
	}
    }

if ((name = argv[optind++])==NULL || argv[optind] != NULL)
	usage(argv[0]);
if ((fd=open(name, 0))<0)	{
	perror("play: error in open");
	exit(1);
	}

if(halt==1)  {
	set_command(fd);
	ioctl(fd, SIOC_SET_CMD, &stop);		/* stop playing */
	ret = read(fd, buf, 0xff);
	close(fd);
	exit(0);
	}


set_command(fd);
ioctl(fd, SIOC_SET_CMD, &read_disc_info);	/* find first,last */
ret = read(fd, buf, 0xff);

clear_command(fd);
ret = read(fd, buf, 0xff);

first_avail = convy(buf[0]);		/* comes out in bcd */
last_avail = convy(buf[1]);
printf("first track available =%4i   last track available = %4i\n", first_avail, last_avail);

last_track = first_track + num_tracks-1;
if(num_tracks == 0)  last_track = last_avail;
printf("first track selected  =%4i   last track selected  = %4i\n",first_track,last_track);

if(first_track < first_avail) {
	printf("Starting track out of range\n");
	exit(1);
	}
if(last_track > last_avail) {
	printf("Ending track out of range\n");
	exit(1);
	}

track_search.command[2]  = (unsigned char)(convx(first_track) );
						 /* requires bcd */
play_audio.command[2] = (unsigned char)(convx(last_track+1) );

if(last_track == last_avail) 	play_audio.command[2] = 0  ;
						/* play to end */

set_command(fd);
ioctl(fd, SIOC_SET_CMD, &track_search);		/* seek to track */
ret = read(fd, buf, 0xff);
ioctl(fd, SIOC_SET_CMD, &play_audio);		/* and play */
ret = read(fd, buf, 0xff);

close(fd);
exit(0);
}  


usage(name)
char *name;
{
fprintf(stderr,"usage: %s [-h ] [-t <first track>] [-n <number of tracks>] raw_device_file\n",name);
    exit(1);
}

int convx(number)	 /* do an integer to bcd conversion */
int number;
{
return (number+6*(number/10)) & 0xff ;
}

int convy(number)	 /* do a bcd to integer conversion */
int number;
{
return (number/16)*10 + number%16;
}


int set_command(fd)	/* set command mode */
int fd;
{
int flag=1, ret;
if((ret = ioctl(fd, SIOC_CMD_MODE, &flag))<0)	{
	perror("error in ioctl setup CMD MODE");
	exit(1);
	}
}

int clear_command(fd)	/* clear command mode */
int fd;
{
int flag=0, ret;
if((ret = ioctl(fd, SIOC_CMD_MODE, &flag))<0)	{
	perror("error in ioctl setup CMD MODE");
	exit(1);
	}
}