LIF disks: I could use some help here...Dan? Guys?



#24

Hi, folks;

sometime ago, I read a post by Dan McDonald about renaming LIF disks formatted in an HP9114 with the HP41 as a controller. Disks formatted this way cannot be read by LIFUTIL because NEWM, the 82106A initialize-media standard function, does not require a "media name", or "media ID name". Both the HP41 and the HP71B (I believe the HP75 as well) can read from and write to these disks, but LIFUTIL doesn't even recognize them.

I remember that Dan also mentioned that the "HP41 renaming program" needed an 82183A Extended IO module. I'm lucky having this ROM and I can use this program.

I read the HP71B documentation and found nothing but the mentioning that INITIALIZE is the only means to rename already formatted disks... but it also erases all of their information.

Today I know that disks formatted by LIFUTIL will be assigned a name (optional to the user) but I was not aware of this fact till I had three disks with some HP41 programs. I cannot read them in a PC because LIFUTIl cannot identify them. And I know I have the option to read each file in each of the three disks to the HP71B RAM so I can write them in another "labeled" disk, but I'd rather renaming the disk and copying all files to the computer at once.

Any clues?

Thanks in advance.

Luiz (Brazil)


#25

Why don't you use Tony Duell's
HP71/75 HP-IL LIF File Utilities (for Linux)
http://www.hpcc.org/hpil/lif_utils.html

**vp


#26

Hey, Vassilis; long time, no see...

Thank you for the valuable tip. I should be asking Tony about these, but maybe you have the answers: instructions included? Say, any readme file with the pack?

I have a workstation running (stand-alone, do MS sharing HD) Linux. I'll unzipp programs there.

thanks again.

Luiz (Brazil)


#27

Yes, I included documentation with the Lif Utilities for Linux. There is a README file (which basically lists the programs and what they do). There are manpages for all the programs. And of course you get the commented source code if you really want to know what's going on.
There may be interesting information in the comments in said source code, by the way -- I think much of it is known to most serious HP calculator hackers, but you might pick up something from reading it.
One thing I've not written yet is lifput(1) -- a program to write a file to a lif disk. You can read disks, extract files, get directories, copy disks to/from image files, etc. You just can't write a new file to a disk -- yet. I must get round to writing that sometime.

#28

Luiz,

When you say you want to change the "name" of a LIF disk, are you referring to the "VOLUME LABEL"? If so, then it can indeed be changed by a HP71. I looked at the documentation for INITIALIZE in the HPIL Owner's Manual for the HP71, and I didn't see where it said that INITIALIZE was the ONLY way to change the volume label. Where (page number) did you see that? If it is the volume label you want to change, I can post a little program to do that.


#29

Hi Luiz,

Yes, the "Volume Label" needs to be changed -- from "nothing" to "something." I came up with a small program for the 41 to do so, based on a program I found in the PPC journals somewhere, but it would be difficult for me to locate it at this time :-(

Rodger, perhaps you could post the program for the HP-71 to change the disk volume label. It seems it is a lot easier for the HP-71 to do things like this to disks than the HP-41.

Tony's programs are an amazing set of very useful utilities, and he has been very kind to share them with the group. I unfortunately remain "linux-impaired" and have not taken the time to either become "linux-enabled" or convert Tony's source code to a less desirable platform.

Luiz, I will look for my 41 program, but I most likely won't find it very quickly.

Best regards,

Dan M


#30

Hello, Dan;

you see, I'm a "newcomer" to the HP71B world and there are some things I did not get yet. The MoHPC CD set has the three volumes of the HP71 internal specs and I looked at some pages briefly; they are heavy reading, no doubts about it, but the fact HP allowed its internals to be known outside its headquarters was something new at the time it happened.

Thank you very much for your help. As I have an HP71B now (Thanks, Doc) and now I know that it's important specifying a "volume label", I'll do it with all disks and I'll probably need to rename only disks I did not handle. I tried to find a way to rename them through DOS LIFUTIL but I did not find a way.

Please, if you do not find the HP41 program to rename disks and there is a way to do it through the HP71, that's fine for me. Of course I'd like to keep the HP41 program listing that does it; it's information and I kinda collect this sort of "piece".

Thanks again. BTW, the HP9114B is working perfectly fine with the HP71B. I now have a set of disks for the HP41 and another for the HP71B.

Best regards.

Luiz (Brazil)

#31

Hello, Rodger;

thank you very much for your reply.

I found the information in the HP82401A HPIL Interface Owner's Manual, p. 28, bottom of the page, where "Volume Label" is explained. It's mentioned that (...) you can't change the volume label unless you initialize the medium again". It's also stated in page 130 (same document) that INITIALIZE erases the entire medium.

As I'm a "newcomer" to the HP71B world, maybe there is a way to overpass the erasure action while renaming the medium; is it possible? If so, I'd like very much to know how to do it. If the program that allows this sort of maneuver is stored in a file and you can send it to my e-mail box, my e-mail address is:

lcvieira@quantica.com.br

I'm thanked if you can do it. Anyway, if you have it already listed in a file and you can share its contents with all Forum contributors, I'd like to see it listed here, too.

Thank you again.

Luiz (Brazil)

P.S. - I was wrongly writing "media", plural of "medium", in my previous posts; please, forgive me folks.


#32

Luiz,
From your post:

"Hello, Rodger;

thank you very much for your reply.

I found the information in the HP82401A HPIL Interface Owner's Manual, p. 28, bottom of the page, where "Volume Label" is explained. It's mentioned that (...)
you can't change the volume label unless you initialize the medium again". It's also stated in page 130 (same document) that INITIALIZE erases the entire
medium."

Here they are describing what INITIALIZE does. I think that they mean to say that you can't change the volume label with INITIALIZE unless you initialize the medium again. I'll list the program to change volume labels in another posting.

#33

10 CALL VOLUMEDT @ SUB VOLUMEDT
20 INPUT "Which drive? ","1";D
30 D=DEVADDR("%16("&STR$(D)&")")
40 IF D=-1 THEN BEEP @ DISP "Not a drive" @ END
50 SEND UNL UNT MTA LISTEN D DDL 4 DATA 0,0 TALK D MLA DDT 2
60 ENTER :D USING "#,8A";U$ @ ON ERROR GOTO 70
70 LINPUT 'VOLUME LABEL :',U$[3];V$ @ V$=(V$&" ")[1,6]
80 OFF ERROR @ IF V$=U$[3] THEN END
90 SEND MTA LISTEN D DDL 4 DATA 0,0 DDL 3 DATA 2 DDL 6 DATA V$ DDL 8 DDL 7 UNL
100 S=SPOLL(D) @ IF BIT(S,5) THEN 100
110 IF S=29 THEN DISP "WRITE PROTECTED!"

This little HP71 program will allow you to change the volume label on a floppy disk. You obviously have to have an HPIL module to talk to the drive. The program first reads the existing volume label, if any, and then allows the user to type over it with a new label. If the disk didn't have a label, then the label the program reads will be all blanks and the new label can just be typed over them.

The CALL VOLUMEDT @ SUB VOLUMEDT sequence in line 10 is just to preserve any variables from other programs that may have been suspended.

I hope my attempt to use the advanced formatting techniques for the board resulted in a readable listing!


#34

Some things I assumed but probably shouldn't have:
Connect your 9114 to the HP71 with the HPIL cables.
Execute RESTOREIO on the HP71.
If you get an error when doing this, execute RESET HPIL and try the RESTOREIO again.

After you have got an error free RESTOREIO to happen, then the volume edit program should work.

A note: Any time you have been doing IO through the HPIL module, you should execute OFFIO when you're done. If you disconnect IO devices like the 9114 without doing this, the HP71 will take a long time to come on when you press the ON button next time. This is because the HPIL module is still active, and it's looking for things on the loop. If the IL loop is not connected, it will take a long time to TIMEOUT. An experiment you can do to see the effect is to connect a single HPIL cable from IN to OUT on the HP71 HPIL module, execute RESTOREIO, turn the HP71 off and back on. It should turn on fairly quickly. Now disconnect the cable and turn the HP71 off and on; there should be a long delay. Now execute OFFIO and turn it off and on; now it should come on much more quickly.


#35

Hello, Rodger;

I have already verified that, thanks, and I use OFF IO everytime I remember to switch the IL module off :)

What I tried to do these days was inserting an HP41 in the loop to see what happens: HP71, HP41 and 9114. I confirmed that the HP41 is a greedy lady: it does not allow other devices to control the loop, as already stated in other sources ("The loop is mine!", it says). It can play no other role except controller!

I was aware of this fact and I tried some "evasive maneuvers" with the HP71; I did not succeed. I changed the order of the elements in the loop, and was not successful. After a few "Loop broken" messages from the HP71 and [TRANSMIT ERR] from the Hp41, both HP41 and HP71 agree with their roles and everything goes fine: HP41 controls, HP71 talk/listen whenever needed. But I could not do anything else (I actually tried random commands...)

What bothered me was the fact that I could not restore I/O activities in the hP71B later. It did not talk to the 9114B till I initialize in with INIT: 3. Whatever I did - RESTORE IO, OFF IO, RESET HPIL and some other I/O commands I found - was not enough to "wake up" the HPIL. I think that after the so many commands I typed in the HP71B the resident O.S. concluded that there was an insane guy at the steering wheel so it decided to lock the HPIL till some confident driver was assigned... I think I set some internal flag or conflicting condition in the 82401A and it could not restore normal operation.

Question: is there a way to override the HP41 control while it is inserted in the loop?

Best regards and thank you again.

Luiz (Brazil)


#36

Are you saying that when you:

"What bothered me was the fact that I could not restore I/O activities in the hP71B later. It did not talk to the 9114B till I initialize in with INIT: 3. Whatever I did -
RESTORE IO, OFF IO, RESET HPIL and some other I/O commands I found - was not enough to "wake up" the HPIL"

you still had the 9114 and HP41 on the loop? A good thing to do if the HP71 seems locked up is to connect the IN and OUT on the HPIL module with a single cable and nothing else on the loop. Then try RESET HPIL, RESTOREIO and OFF IO, etc. Something should wake it up at this point. Also, some commands in progress on the HP71 need TWO pushes of the ATTN button to stop then; this is especially true of IO operations. (Maybe SEVERAL pushes, doncha know. :-) )

I don't know if it is possible to override the HP41 control on the loop.

This kind of thing is why I like the HP71 so much. It has the most powerful and easiest to use HPIL controller HP ever made. The HP71 can be powered down and connected in an HPIL loop with other devices; some other device can send IL commands, and the HPIL will wake up and not lose anything that was sent. I don't think any of the other calculator/computer devices can do that.

#37

Hello, Rodger;

thank you very much! Your listing is completely readable for me, even the number of spaces contained in the string in line # 70. When you use [pre], a monospaced font is used, what means all characters use the same length.

I'll type in my HP71B and run it. Even better, I'll copy the listing, paste it as-is to another file and save it as an ASCII text to a LIF disk (with a non-empty "volume label" field) using LIFUTIL. I'll load the text as LEX and TRANSFORM it to BASIC in the HP71B. Am I hallucinating or my assumptions are correct? I'm reading the HP71B Owner's Manual and swallowing whatever I read. Will it work fine?

Thanks again.

Luiz (Brazil)


#38

Don't load the text as LEX; load it as TEXT. I don't think you could load it a LEX anyway. It would alread be a TEXT file.

If you just type the program into a file called VOLUMEDT on the HP71, you could then transform it into a text file by typing TRANSFORM VOLUMEDT INTO TEXT VOLTEXT, for instance. You would then have a LIF (TEXT) file of the program, while preserving your original file. If you simply typed TRANSFORM INTO TEXT while VOLUMEDT was the current file, then VOLUMEDT would be converted into a TEXT file itself, and you would lose the BASIC version.

#39

This might not have any bearing on changing the volume label, but have you read the information in the 9114 manual (in an addendum for the HP41) about initializing disks for 630K capacity instead of the 128K capacity that the 41C HPIL normally intializes (emulating the tape drive, I guess)? It includes a 41C program that issues HPIL commands to the 9114 - maybe it will be interesting to you.


#40

Hello, Ellis;

thank you for your mentioning this program. I have already used it, but I believe it would be better having it in ROM instead of main memory. It uses a big "slice" of main RAM, and this fact may void using it to record long programs.

In time: I remember it was possible to run programs saved in X-memory without copying them to main RAM, mostly because I remember that when I bought my HP41CX (80's) I was already hacking X-secrets, and when inspecting a program in X-Memory I switched the calculator to RUN mode and inadvertently I pressed [R/S] key. The program ran perfectly fine, but gave a [NONEXISTENT] message when attempting to execute a [GTO] somewhere. The same program executed error-free in main memory. Does anyone remember the tricks to run programs directly in X-memory?

About the full 630K-bytes for the HP41: I "dried-out" the program so it fits in regular X-memory (124 registers). The original is too big it does not fit in regular X-functions or 41CX: you need an extra X-memory. I replaced all ALPHA labels and related GTO/XEQ for numerical ones, reducing program size. Not necessary to mention, but all global ALPHA labels that replicate HPIL mass storage functions were kept.

Thank you again.

Luiz (Brazil)

#41

I know how I'd do it. I'd use the HP71 (which has the best HPIL implementation of any handheld). I'd use a DDT command (look in the _tape_ drive manual for details) to read block 0 into a string on the HP71. Then modify the appropriate bytes (look in the back of the HP71 HPIL user manual for details of what's in block 0) to give
the disk a volume label. Then use a DDL command to write it back. Not a difficult program to write IMHO.


#42

Thank you all;

Tony, I was somewhat lost because of both: never used the HP82183 X-mass before having the HPIL, neither the 9114B; now I have an HP71B and I felt myself interested on going further. Anyway I could understand what you mean and I'll try the procedure in an empty disk and see what happens. I'll need to read a bit more to go further, but now I have a starting point.

Thanks again. (and you mentioned once you're not an SW man...)

Luiz (Brazil)

Edited: 10 July 2003, 1:28 a.m.

#43

Hello Luiz, my friend...

My filing system has worked and I found the program.

To make a long story short, here is the program I can use with the HP-41, Extended I/O Module, HP-IL Module, and 9114 disk drive to add a Volume Label to an existing LIF disk.

I have forgotten exactly how it works, but it somehow reaches into the disk header block and inserts the alpha name you input, byte-by-byte.

This listing has been hand-typed by me, as I am not currently PC-LIF-enabled, for various reasons. The program is short enough that you can enter it easily. Ask if you have questions about the listing, I can answer them.

Dan M


01 LBL 'LBLVOL

02 2.006

03 SF 05

04 STO 00

05 'VOL NAM:

06 AON

07 PROMPT

08 ASTO 01

09 AOFF

10 16

11 FINDAID

12 SELECT

13 ID

14 CLRDEV

15 CLA

16 ARCL 01

17 LBL 01

18 3

19 DEVL

20 RCL 00

21 INT

22 OUTXB

23 6

24 DEVL

25 ATOX

26 OUTXB

27 8

28 DEVL

29 ISG 00

30 GTO 01

31 FC? 05

32 GTO 02

33 CF 05

34 7

35 STO 00

36 '

37 GTO 01

38 LBL 02

39 CLRDEV

40 END


#44

Hello, Dan;

thank you very, very much.

I think other users will use it as well.

There is more in the e-mail I sent you, but the only doubt I have about the listing (I did not try to understand it so far, just a "spell checking") is related to step # 36: the single ' means a space character, an empty-ALPHA line or other "command"? If it is an empty-ALPHA line (but it is more likely not to be), would CLA do the same?

Thanks a lot, Dan; this is gold!

Best regards.

Luiz (Brazil)

#45

Hello Luiz,

I believe that program line 36 is a "space" and not a "clear alpha" register. One character of the alpha register after line 36 is written to the disk header, and I seem to recall that there must be something in the header after the volume label to mark the end of the volume label.

I am currently unable to get this program from a disk to a PC for further examination, so I can't be 100% sure right now but I can do it tomorrow if necessary.

ATOX gives "-1" if the alpha register is empty, and "32" if alpha register has a space. I don't know what OUTXB will do with "-1", so I think it should be a space and not a CLA

Again, credit for this program really belongs to the person who submitted the original version to the PPC Journal, I don't remember the name or the issue number. I revised that program by sticking on the prompt for "VOL NAM" at the start.

I also don't know/remember what the device-dependent-commands for the 9114B are (3, 6, 8 in this program). I think 3 is for "prepare to move to byte location, which will be sent next" and 6 is for "write the next byte sent to the current position" and 8 is for "move to home location" or "close device" or something like that.

This has been a useful program in the past. I will try to find the original author's name sometime and give due credit to him (or her!).

Best regards,

dan


#46


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP-41 Clonix&NoV's SW Update. (For the non-Primer's guys out there... :-) Diego Diaz 21 1,840 11-13-2013, 09:00 AM
Last Post: Ángel Martin
  OT: Old windows and ms/dos on 3.5 disks Ethan Conner 7 720 05-20-2012, 02:20 AM
Last Post: Marcus von Cube, Germany
  HP-41 Memory chips info (for those HW guys out there :-) Diego Diaz 3 476 03-24-2012, 08:06 PM
Last Post: Diego Diaz
  About HP71 swap disks Olivier De Smet 5 541 03-17-2012, 07:42 PM
Last Post: Olivier De Smet
  HP 41 / 71 SWAP Disks Richard Wagoner 4 540 03-17-2012, 01:53 PM
Last Post: Richard Wagoner
  The OTHER guys calculators Earl Kubaskie 3 420 08-13-2011, 11:50 AM
Last Post: Lode
  LIF Utilities for linux Christoph Giesselink 7 624 02-24-2011, 03:46 PM
Last Post: Juergen Keller
  RPN for Kids and Poor Guys Joerg Woerner 2 382 12-05-2010, 12:03 PM
Last Post: John Stark
  LIF file viewer for windows ? John Robinson 5 537 06-21-2010, 04:24 PM
Last Post: Juergen Keller
  Reading and writing text files from/to LIF-files: Two new scripts Geir Isene 1 294 03-08-2010, 06:14 PM
Last Post: Egan Ford

Forum Jump: