开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

DIRECTMAP issue


 

Hello,

When I run DISKMAP again for the USER DIRECT FILE (adding only one new mini-disk (3380 001 for 121), I'm getting the following error:

01:56:39 ? ? ? ? ?PASCAL ? ? ?192 ? ? ?3350 ? 00006 ? ?00025 ? ?00020
01:56:41 ? ? 99 *-* ?start = start + 0 ? ? ? ? ? ? ? /* Suppress leading 0s */
01:56:41 Error 41 running diskmap, line 99: Bad arithmetic conversion
01:56:41 Ready(20041); T=0.87/0.97 01:56:41

The next line in the directory is:

MDISK ? 193 3350 026 060 VM50-8 MR ? ALL ? ? ?WRITE ? ?MULT

Just wondering if anyone else has seen this issue.

Bertram Moshier
WB8ERT


 

>> Just wondering if anyone else has seen this issue.

Yes, I have seen this issue, when using SDL Hercules. My solution to it is to uncomment the line

# ECPSVM ? ? ? ?DISABLE DISP1 DISP2

in the file vm370ce.conf. I don't remember where I learned this (lucky?) "work around". I am not aware of possible side effects of it, as I rarely use SDL Hercules with VM/370 CE.

Cheers,

René FERLAND, Montréal


 

Hello,

What version of Hercules do you use?

Bert


On Tue, May 21, 2024, 05:36 René Ferland via <ferland.rene=[email protected]> wrote:
>> Just wondering if anyone else has seen this issue.

Yes, I have seen this issue, when using SDL Hercules. My solution to it is to uncomment the line

# ECPSVM ? ? ? ?DISABLE DISP1 DISP2

in the file vm370ce.conf. I don't remember where I learned this (lucky?) "work around". I am not aware of possible side effects of it, as I rarely use SDL Hercules with VM/370 CE.

Cheers,

René FERLAND, Montréal


 

On Tue, May 21, 2024 at 04:00 AM, Bertram Moshier wrote:
What version of Hercules do you use?
?
Hercules 3.13.

René FERLAND, Montréal


 

On Tue, May 21, 2024 at 06:36 René Ferland via <ferland.rene=[email protected]> wrote:
>> Just wondering if anyone else has seen this issue.

Yes, I have seen this issue, when using SDL Hercules. My solution to it is to uncomment the line

# ECPSVM ? ? ? ?DISABLE DISP1 DISP2

in the file vm370ce.conf. I don't remember where I learned this (lucky?) "work around".

I believe it is mentioned in the VM/370 Community Edition readme file, specifically citing the DISKMAP command.

I am not aware of possible side effects of it,

Turning off the DISP1 and DISP2 Extended CP Assist instructions makes the process of dispatching a virtual machine slower.? So just about everything in a VM system takes more time to run.? In my opinion, it's not a ?dramatic effect, and my laptop is still faster than and 370 I worked on.

The problem is well documented at ?
, but the summary is that these ECPS instructions damage the vm's floating point registers, that the VM/370CE Rexx implementation uses FPRs heavily, and that DISKMAP is a Rexx program.

Ross


 

贬别濒濒辞?搁别苍é,

I'm wondering what's going on. I'm using version 4.7.0.11119-SDL-gf7d2360a, but the comments say this is for pre-4.4.0.

Did it get broken again by the time 4.7 rolled around?

ECPSVM ? ? ? ? ?YES
# Certain assists need to be disabled on Hercule Hyperion
# release earlier than 4.4.0.xxxxx, which fixes the assist issue.

# Add the statement below, if a pre-4.4.0.xxxxx version of Hyperion
# is being used, without the fix for HERCULES ECPSVM issue #382 (closed).
ECPSVM ? ? ? ?DISABLE DISP1 DISP2?


I'll check how it runs with ECPSVM disabled.

Bertram Moshier of Chicago
WB8ERT



On Tue, May 21, 2024 at 5:36?AM René Ferland via <ferland.rene=[email protected]> wrote:
>> Just wondering if anyone else has seen this issue.

Yes, I have seen this issue, when using SDL Hercules. My solution to it is to uncomment the line

# ECPSVM ? ? ? ?DISABLE DISP1 DISP2

in the file vm370ce.conf. I don't remember where I learned this (lucky?) "work around". I am not aware of possible side effects of it, as I rarely use SDL Hercules with VM/370 CE.

Cheers,

René FERLAND, Montréal


 

On Tue, May 21, 2024 at 17:49 Bertram Moshier via <herc370390vm=[email protected]> wrote:
贬别濒濒辞?搁别苍é,

I'm wondering what's going on. I'm using version 4.7.0.11119-SDL-gf7d2360a, but the comments say this is for pre-4.4.0.

Did it get broken again by the time 4.7 rolled around?

No.? It was still broken - the previous fix was insufficient.? There is a good fix in the current "develop" branch of SDL Hyperion, but it didn't happen in time for 4.7.

I'll check how it runs with ECPSVM disabled.

It should run fine.

Ross


 

On Tue, May 21, 2024 at 05:02 PM, Ross Patterson wrote:
No.? It was still broken - the previous fix was insufficient.? There is a good fix in the current "develop" branch of SDL Hyperion, but it didn't happen in time for 4.7.
Have to admit I am puzzled, as I have run DISKMAP EXEC today, several times without problems, and have the following:

[xmas@vm370dev pdf]$ grep -Ei 'ecpsvm' ~/Hercules/VM/370/CE_V1R1M2_MAS/sixpackv4.conf
# is being used, without the fix for HERCULES ECPSVM issue #382 (closed).
## ECPSVM ? ? ? ?DISABLE DISP1 DISP2
ECPSVM ? ? ? ? ?YES
[xmas@vm370dev pdf]$?

and I am running:

20:13:06 HHC00100I Thread id 00007f4f58acbb80, prio 5, name 'impl_thread' started
20:13:06 HHC00100I Thread id 00007f4f562da700, prio 4, name 'logger_thread' started
20:13:06 HHC01413I Hercules version 4.4.1.10647-SDL-gd0ccfbc9
20:13:06 HHC01414I (C) Copyright 1999-2022 by Roger Bowler, Jan Jaeger, and others
20:13:06 HHC01417I ** The SoftDevLabs version of Hercules **
20:13:06 HHC01415I Build date: May 29 2022 at 16:31:27
20:13:06 HHC01417I Built with: Clang 13.0.1 (Red Hat 13.0.1-1.module+el8.6.0+825+7e27476a)
20:13:06 HHC01417I Build type: GNU/Linux x86_64 host architecture build
...
20:13:06 HHC02204I DIAG8CMD ? ? ? set to DISABLE ?NOECHO
20:13:06 HHC02204I ECPSVM ? ? ? ? set to enabled, trap support enabled
20:13:06 HHC02204I TZOFFSET ? ? ? set to -0000
20:13:06 HHC02204I PORT ? ? ? ? ? set to port=8081 noauth

?... Mark S.


 

On Sat, Jun 1, 2024 at 9:23?PM Mark A. Stevens via <marXtevens=[email protected]> wrote:
On Tue, May 21, 2024 at 05:02 PM, Ross Patterson wrote:
No.? It was still broken - the previous fix was insufficient.? There is a good fix in the current "develop" branch of SDL Hyperion, but it didn't happen in time for 4.7.
Have to admit I am puzzled, as I have run DISKMAP EXEC today, several times without problems, and have the following:

[xmas@vm370dev pdf]$ grep -Ei 'ecpsvm' ~/Hercules/VM/370/CE_V1R1M2_MAS/sixpackv4.conf
# is being used, without the fix for HERCULES ECPSVM issue #382 (closed).
## ECPSVM ? ? ? ?DISABLE DISP1 DISP2
ECPSVM ? ? ? ? ?YES

The negative interaction between BREXX and ECPSVM is extremely timing dependent.? The ECPSVM DISP2 instruction damages certain floating?point registers for the newly-dispatched user every time it runs.? But very little VM software uses the floating point instructions.? The one notable exception is BREXX, because it treats every?number as floating point when comparing or displaying it (among other uses).? But even then, the BREXX code needs to depend upon the value in the damaged register across an un-dispatch/re-dispatch sequence.? If it doesn't happen within that window, everything works fine.? If it does, though, all manner of bad numerical results can occur.? DISKMAP does a lot of arithmetic, and it loops over two different stem arrays, comparing the loop counter to whatever.0, and it displays a lot of numbers.? So it has a higher-than-average likelihood of getting harmed by this bug.

There is nothing you can do to reduce the probability of encountering the DISP2 floating point bug except to disable both DISP1 and DISP2 ECPSVM instructions.? There are things you can do that will increase?the probability.? You can use the victim registers a lot.? You can force your virtual machine to be undispatched during floating point math - for example, use the CP PER command to trace code that uses those registers.? I'm sure there are others.

It took me six weeks of increasingly-intensive diagnostics, and thousands of executions, to pin this down.? My test case was an extremely simple Rexx program:

/* */
Do I = 1 to 170
? ? Say I
End

If you told me when I started that the problem would be an incorrectly-simulated instruction (albeit an extremely complex one), I'd have laughed.

Ross