Post Reply 
Update of Virtual HP-IL devices
12-03-2015, 01:46 AM
Post: #8
RE: Update of Virtual HP-IL devices
(12-02-2015 09:32 PM)Christoph Giesselink Wrote:  
(12-02-2015 03:51 AM)rprosperi Wrote:  I've seen this issue with many other small utilities built using the same framework, and I've also consistently seen the same comments that there is no way to change it, without reworking the entire app.

I found a way to deactivate the ESC key. When you find the right place for your source code change, you haven't to rework the entire app. Just a few lines, and you get what you want.

(12-02-2015 03:51 AM)rprosperi Wrote:  One minor difference I've noted, is if I close ILPer but leave my 71B (connected via PILBox) on, then restart ILPer, and attempt to do a CAT :TAPE, it reports there is no media installed. Doing RESTORE IO corrects the problem.

If I power down the 71B, close ILPer, restart ILPer, then power-on the 71B and do CAT :TAPE, it works fine. I'm not 100% certain this is different from V1.52, but I believe it is.

ILPer v1.52 and v2.0 behave in the same manner, both return "HPIL ERR:Device Not Found"

The reason is very simple to explain. When you close ILPer or any other virtual device the program loose his device address.

Example:
  • execute ILPer and press start
  • exceute Emu71/Win

At this time the devices in ILPer are not addressed. With a trick since Emu71/Win v1.07 I fource a readdressing of all devices at first HPIL usage after Emu71 restart.

So lets do a CAT :TAPE on Emu71/Win:

Look at the first two commands in the scope:

AAU AAD 01

AAU - Auto-Address Unconfigure - device should quit his current address assignment
AAD 01 - Auto-Address - if device has no address assignment, use the given address and incr. address

After this sequence the
  • Generic Printer has address 1
  • Disk 1 has address 2
  • Disk 2 has address 3
  • DOSLINK has address 4

In the next step the HP71 wants to know the device address of the first device with a tape device ID. Here we are:

UNL TAD 01 SAI DAB 2E TAD 02 SAI DAB 10

UNL - Unlisten - deactivate all listeners
TAD 01 - Talk Addess - device with address 1 is talker
SAI - Send Accessory ID - in our case the printer return the ID frame DAB 2E
DAB 2E - data byte - the printer return ETO
TAD 02 - Talk Addess - device with address 2 is talker
SAI - Send Accessory ID - in our case Disk 1 return the ID frame DAB 10
DAB 10 - data byte - Disk 1 return ETO

That's it, the device at address 2 has a valid Accessory ID for :TAPE.

...

When I close ILPer and start ist again, what's happen?

At start of ILPer all devices inside ILPer have no address assignment so:

CAT :TAPE

UNL TAD 01 SAI TAD 02 SAI TAD 03 SAI TAD 04 SAI UNT

UNL - Unlisten - deactivate all listeners
TAD 01 - Talk Addess - device with address 1 is talker
SAI - Send Accessory ID - in our case no device has address 1 so return SAI
TAD 02 - Talk Addess - device with address 2 is talker
SAI - Send Accessory ID - in our case no device has address 2 so return SAI
TAD 03 - Talk Addess - device with address 3 is talker
SAI - Send Accessory ID - in our case no device has address 3 so return SAI
TAD 04 - Talk Addess - device with address 4 is talker
SAI - Send Accessory ID - in our case no device has address 4 so return SAI
UNT - Untalk - deactivate talker

And what's happen on RESTORE IO, tataa...

IFC AAU AAD 01

After a interface clear, readdressing of all devices.

Now some of you may understand, why JFG and I love the scope inside ILPer and don't want to miss it. Smile


And now a trick how to restore a HPIL connection. This works with a real HP71 and even with Emu71/Win v1.07 or later.

Imagine, you just typed in a long command with many arguments like ROMCOPY and get the error message "HPIL ERR:Device Not Found" or something similar. You know, a RESTORE IO will solve the problem, but then you have to type in the whole command again, because the command buffer will be overwritten by the last command. But just power cycle the calculator (even the emulated one) over the on key, this readdress all connected devices and then recall the last command with <g> <CMDS>. In many cases this will work.

Christoph

Christoph:

Wow, thanks for the extended explanation; I need to spend some time going through this in more detail with the scope.

In my case, I was getting "no media installed" or something close to that, not the normal Device not found, but the difference could be because my old setup included ILPILBox, 2 instances of ILPer, and ILDOSLINK on the virtual loop, and a 9914B and 2225B on the physical loop via PILBox.

But doesn't matter, once I go through your explanation above, I'm sure it will become more clear; in any case, by always starting the Loop prior to the 71, it seems things work fine.

Will let you know once I've digested your notes.

Thanks again for taking so much time and care to provide the detailed explanation, it's truly appreciated.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Update of Virtual HP-IL devices - rprosperi - 12-03-2015 01:46 AM



User(s) browsing this thread: 2 Guest(s)