HP Forums
Update of Virtual HP-IL devices - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: Update of Virtual HP-IL devices (/thread-5203.html)



Update of Virtual HP-IL devices - Christoph Giesselink - 11-24-2015 06:37 PM

Updates of the Virtual HP-IL devices are available at http://hp.giesselink.com/hpil.htm.

Recently I had a discussion with JFG about the future of ILPer. We fully agreed that most users of virtual devices want to have an integrated solution with direct PIL-Box connection rather than the flexible way with ILPilbox and Virtual HP-IL. But we are in the glad situation that it's not a either ... or decision.

The must have for a new version of ILPer:
  • Same window size like before as respect for the limited desktop size of older machines
  • Direct access-able Scope (sorry, JFG and I are developers which want to know what's happen on the loop)
The above two points are a refusal to all these people which are hoping for a larger printer window.

But we personally wanted to have a 2nd Disk drive and the DOSLINK device. So ILPer v2.0 now contain the
  1. Scope
  2. Generic Printer
  3. Disk Drive 1
  4. Disk Drive 2
  5. DOSLINK device

The Disk Drive 1 has the same ID$ and 80 tracks dimension like before, the 2nd Disk Drive is configured as a high capacity drive when initializing (formatting) a medium. Both disk devices can be configured to custom device ID$ and drive dimensions.

Because of these additional features the configuration place of many option moved from the [Settings] section in ILPer v1.x to another place. Special settings are not imported from the old version. If you're using the ini-file (vil-file) method to save your settings, I suggest to use a new or empty ILPer settings file. By this way you don't get confused by unused options from the old version ILPer v1.x.

Also new, the order of the internal device can be changed. But it's not possible to disable a device.

For all changes have a look at the ILPerAdd.htm file please.

I also provided new versions of:
  • ILPilbox v1.6
  • ILScope v1.5
  • ILDoslink v1.01
  • ILVideo v1.3
  • ILVideo80 v1.2
ILPilbox v1.6 now can enable the better support for managing HP-IL Service Requests in the PIL-Box firmware 1.6. The scope inside ILPer and ILScope got the new feature to disable the IDY frame output for this case.

As JFG noticed, the PIL-Box firmware update to 1.6 is more or less for future virtual HP-IL devices. The only device which already make use of this feature is the Terminal inside pyILPER.

I strongly recommend to make the update to the IPv4/IPv6 dual stack ILProgsIPv6 program versions. Especially the combination of using the HP-IL Service Requests of the PIL-Box in connection with a mixture of virtual devices supporting IPv4 only and IPv4/IPv6 dual stack will fail with a broken loop on the IDY frames.

Christoph


RE: Update of Virtual HP-IL devices - rprosperi - 11-24-2015 09:46 PM

(11-24-2015 06:37 PM)Christoph Giesselink Wrote:  Updates of the Virtual HP-IL devices are available at http://hp.giesselink.com/hpil.htm.

It's not quite Christmas yet, but thanks very much for the nice holiday present!

(11-24-2015 06:37 PM)Christoph Giesselink Wrote:  The must have for a new version of ILPer:
  • Same window size like before as respect for the limited desktop size of older machines
  • Direct access-able Scope (sorry, JFG and I are developers which want to know what's happen on the loop)
The above two points are a refusal to all these people which are hoping for a larger printer window.

But we personally wanted to have a 2nd Disk drive and the DOSLINK device. So ILPer v2.0 now contain the
  1. Scope
  2. Generic Printer
  3. Disk Drive 1
  4. Disk Drive 2
  5. DOSLINK device

While a larger printer window of course would be 'nice to have', as a very frequent user of these tools, I think you have indeed included the most important feature upgrades. Having 2 Drives and DOSLINK in a single instance of ILPer covers 99+% of my reasons for using ILPILBox, so this is a far simpler, and no doubt faster, configuration.

If I copy from Drive1 to Drive2, does the data move only internally within ILPer (=much faster), or does it pass through the entire loop twice (possibly even slower then original)?

Same for copying Drive2 to Drive1?

I look forward to installing it and exploring in the next couple days. I'll report back here with issues and praise.

Thanks Christoph for the advice to start with new config files; I'm sure doing so will save time hunting for issues we would assume the .vil files were controlling. Where is the new config data stored?

My sincere thanks to both of you for taking the time to continually improve these handy and fun tools, that let us continue to use and explore our HP machines.


RE: Update of Virtual HP-IL devices - Christoph Giesselink - 11-25-2015 06:21 PM

(11-25-2015 01:25 AM)Geir Isene Wrote:  A fully updated version for Linux?

When you're using Linux or Mac OS/X you should give pyILPER a try.

I personally installed pyILPER under Win7.

Christoph


RE: Update of Virtual HP-IL devices - charger73 - 11-27-2015 07:25 AM

Thank you Christoph. I like it very much!!

(Kleiner Verbesserungsvorschlag für Video-Emulator: Wenn der Videoemulator im Scope (Aktiv) ist, kann man ihn mit der "ESC" Taste ungewollt beenden. Passiert mir sehr oft.
Ich denke, ich bin im Emu71 drücke die [ON] Taste. (ESC) - dann schliesst ungewollt der Video Monitor.)


Best regards
Tobie


RE: Update of Virtual HP-IL devices - Christoph Giesselink - 12-01-2015 06:28 PM

(11-27-2015 07:25 AM)charger73 Wrote:  (Kleiner Verbesserungsvorschlag für Video-Emulator: Wenn der Videoemulator im Scope (Aktiv) ist, kann man ihn mit der "ESC" Taste ungewollt beenden. Passiert mir sehr oft.
Ich denke, ich bin im Emu71 drücke die [ON] Taste. (ESC) - dann schliesst ungewollt der Video Monitor.)

Hi Tobie,

that's a problem (pressing the ESC key quits application) in general.

All ILxxx programs are so called "Modal Dialogs" (Windows speech) and have a special behavior. The ESC key is hard wired with the IDCANCEL message, the same message called by the [x] button on top right of the window. It's the same type like the "About Emu71..." Dialog inside Emu71. I found no possibilty to disable this behavior because the behavior of the ESC key is part of the design guidelines for dialogs and so cannot be modified easily.

The difference to Emu71/Win is, Emu71/Win is a so called "MainFrame" and not a Dialog Application. In a "MainFrame" Application the ESC isn't hard wired, so I can capture the ESC key event and use it for own purpose.


RE: Update of Virtual HP-IL devices - rprosperi - 12-02-2015 03:51 AM

(12-01-2015 06:28 PM)Christoph Giesselink Wrote:  
(11-27-2015 07:25 AM)charger73 Wrote:  (Kleiner Verbesserungsvorschlag für Video-Emulator: Wenn der Videoemulator im Scope (Aktiv) ist, kann man ihn mit der "ESC" Taste ungewollt beenden. Passiert mir sehr oft.
Ich denke, ich bin im Emu71 drücke die [ON] Taste. (ESC) - dann schliesst ungewollt der Video Monitor.)

Hi Tobie,

that's a problem (pressing the ESC key quits application) in general.

All ILxxx programs are so called "Modal Dialogs" (Windows speech) and have a special behavior. The ESC key is hard wired with the IDCANCEL message, the same message called by the [x] button on top right of the window. It's the same type like the "About Emu71..." Dialog inside Emu71. I found no possibilty to disable this behavior because the behavior of the ESC key is part of the design guidelines for dialogs and so cannot be modified easily.

The difference to Emu71/Win is, Emu71/Win is a so called "MainFrame" and not a Dialog Application. In a "MainFrame" Application the ESC isn't hard wired, so I can capture the ESC key event and use it for own purpose.

Indeed, this is a frustrating aspect (albeit minor) of using ILPer, as we are all used to hitting ESC for the ON key in Emu71/Win, and when focus is on ILPer, it kills it...

I guessed that this is what Tobie had commented on (I could see ESC, but don't read German) but was not sure, thanks for clarifying in English Christoph.

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 have installed ILPer v2.0 and it's a delight to use. Much simpler, and much less screen space, than ILPILBox, and 2 x ILPer, and the other clients. VERY NICE!!

I have not tested exhaustively, but so far have found no serious issues running with both virtual loops and physical loops with the PILBox.

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.

I shall continue testing and report any other issues here.

This new version of ILPer is a significant improvement and will allow many users to more easily use multiple drives.

Many thanks to Christoph and Jean-Francois for raising the bar!!


RE: Update of Virtual HP-IL devices - Christoph Giesselink - 12-02-2015 09:32 PM

(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. :)


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


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

(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.


RE: Update of Virtual HP-IL devices - Jurgen Keller - 12-03-2015 07:15 PM

(11-24-2015 06:37 PM)Christoph Giesselink Wrote:  ...
The above two points are a refusal to all these people which are hoping for a larger printer window.

In my opinion there is an easy solution to make all people happy. Windows allows you to resize windows ;-) So if "Scope" is disabled the printer window could use the whole space. When enabled you have to resize/rearrange the controls. I've attached a screenshot to illustrate my idea.


RE: Update of Virtual HP-IL devices - Christoph Giesselink - 12-04-2015 06:14 PM

(12-03-2015 07:15 PM)Jurgen Keller Wrote:  
(11-24-2015 06:37 PM)Christoph Giesselink Wrote:  ...
The above two points are a refusal to all these people which are hoping for a larger printer window.

In my opinion there is an easy solution to make all people happy. Windows allows you to resize windows ;-) So if "Scope" is disabled the printer window could use the whole space. When enabled you have to resize/rearrange the controls. I've attached a screenshot to illustrate my idea.

Will be included in the next version. TNX Jurgen.


RE: Update of Virtual HP-IL devices - rprosperi - 12-04-2015 11:38 PM

(12-03-2015 07:15 PM)Jurgen Keller Wrote:  In my opinion there is an easy solution to make all people happy. Windows allows you to resize windows ;-) So if "Scope" is disabled the printer window could use the whole space. When enabled you have to resize/rearrange the controls. I've attached a screenshot to illustrate my idea.

Simple, clean, minimal impact. Brilliant!

(12-04-2015 06:14 PM)Christoph Giesselink Wrote:  Will be included in the next version. TNX Jurgen.

See what I mean Smile Smile