开云体育

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

CP PER and DISPLAY cmd interaction


 

I love that somebody added support in the CP DISPLAY command for base registers (e.g., #CP DISPLAY 8.10;BASE12 to display 16 bytes starting at 8 bytes past wherever?R12 points).? But the CP PER?command also uses ";" to separate commands in its CMD option, and I really wanted to use them together, which makes PER think its?got multiple commands when I use a ;BASE value (e.g.,?#CP PER I R E000.20 CMD D T0.20;BASE11).? So I whipped up a small change to DMKPEC to add a "SEP char" option to PER, to specify a replacement for the command-separator character (e.g.,?#CP PER I R E000.20 SEP $ CMD D T0.20;BASE11).? The default command-separator character is obviously ";".

I can package this up for the next VM/370 release if others would find it useful.? The only odd part is that DMKPEC already uses literally every byte of temporary storage it has, so to parse the?PER?command, I used my favorite hack for temporary work areas? - the CPU fixed logout?area, location X'100' in the PSA.? It works, and the code doesn't expect it to survive beyond the end of command parsing, so it's fine, it's just a little weird.

Ross


 

On Tue, Dec 3, 2024 at 10:16 AM, Ross Patterson wrote:
I can package this up for the next VM/370 release if others would find it useful.? The only odd part is that DMKPEC already uses literally every byte of temporary storage it has, so to parse the?PER?command, I used my favorite hack for temporary work areas? - the CPU fixed logout?area, location X'100' in the PSA.? It works, and the code doesn't expect it to survive beyond the end of command parsing, so it's fine, it's just a little weird.
Sounds good to me. I've needed the ; or similar and fixing it using x'100' or something like that, as you say, is safe, but weird.
?
?... Mark S.


 

Probably too late to suggest an alternate strategy... rather than the ";BASE=" syntax, update the DISPLAY command so the storage target would look more like an Assembler operand.. like this:
?
Rather than:
? ? ?#CP DISPLAY 8.10;BASE12
maybe this:
? ? ?#CP DISPLAY 8(10,12)
?
Rather than:
? ? ?#CP PER I R E000.20 CMD D T0.20;BASE11
maybe this:
? ? ?#CP PER I R E000.20 CMD D T0(20,11)
?
Another way to handle ranges might be...
Rather than:
? ? ?#CP DISPLAY 80-100;BASE12
maybe this:
? ? ?#CP DISPLAY 8-100(12)
?
Just a thought... this is probably what the product design folks would have done if they had thought of it
?
cheers,WIlliam


 

What was I thinking...
?
Should be this:
?? ?#CP DISPLAY 8.10(12)
or
???? #CP PER I R E000.20 CMD D T0.20(11)
or
? ? ?#CP DISPLAY 80-100(12)
?
Just as easy to parse and much more intuitive
?
cheers, William


 

On Mon, Dec 9, 2024 at 6:07?PM Mark A. Stevens via <marXtevens=[email protected]> wrote:
On Tue, Dec 3, 2024 at 10:16 AM, Ross Patterson wrote:
I can package this up for the next VM/370 release if others would find it useful.? The only odd part is that DMKPEC already uses literally every byte of temporary storage it has, so to parse the?PER?command, I used my favorite hack for temporary work areas? - the CPU fixed logout?area, location X'100' in the PSA.? It works, and the code doesn't expect it to survive beyond the end of command parsing, so it's fine, it's just a little weird.
Sounds good to me. I've needed the ; or similar and fixing it using x'100' or something like that, as you say, is safe, but weird.

I've uploaded it to the files area as HRC034DK.VMARC.? Syntax is easy:? add the new "SEP <char>" option to the PER command before the "CMD" option.? For example:

PER I R F3C650-F3C686 SEP ! RUN NOTERM Q T ! D T0.48;BASE13

to display the time and the 18-fullword savearea at every instruction in a subroutine.

Ross


 

On Tue, Dec 10, 2024 at 7:06?PM William Denton via <williamedenton=[email protected]> wrote:
Probably too late to suggest an alternate strategy... rather than the ";BASE=" syntax, update the DISPLAY command?

Yup, that ship sailed when someone else created?HRC452DK, which added the ";BASEnn" syntax.

Ross