QBREAK allows you to assemble, immediately create break points based on the listing and the labels you select, and run a Z390 test with break points set at those labels. And you can stop and restart the test immediately. Several times if you like. I was able to: Test, test again, update a code error, reassemble, recreate changed break point locations, and test a couple more times, all in less than a minute. For those of us that use test, it's amazing. It was made possible by an update to Z390 test to set break points from a file, and then execute. THANK YOU Abe Kornelis !!! And QBREAK that creates the break point commands, from the listing, nearly instantly. (That's the QBREAK and Z390 TEST(ddname) commercial.)
QBREAK creates a file of break point commands that can be input to Z390 TEST.
When using Z390 test, you can set several break points and then start execution. You can use QBREAK to create the break point commands (and some list commands, only to the screen). The QBREAK output is written both to the screen, via WTO and also to the BREAK file, that is used as direct input to Z390. The sysprint file contains everything, and is just to see what's going on. The QBREAK SYSIN file looks like:
COMMAND=C:\USERS\LIN\DOCUMENTS\Z390CODE\QBREAK
LOADLOC=FF000 or LOADLOC=(9), (R12), (any register)
LABEL=DW 24 these 3 lines create List commands.
LABEL=LOADLOC 8 makes it easy to see what's in
LABEL=LINE 120 various data fields.
LABEL=Q*,NORM These are the labels for AT commands.
LABEL=BADSIN+6 When there's an *, anything with that
LABEL=PUTSYS-6 prefix is used.
LABEL=WTO +6 or -6 will modify the break command loc.
LABEL=GOTSYSIN+0C. +0c. is a hex modify +6 is a decimal modify
LABEL=PLUSMINU
COMMAND=C:\USERS\LIN\DOCUMENTS\Z390CODE\QBREAK
The QBREAK output file looks like this. Z390 is nice enough to show you the break point command, and comment on the command, at each break point. EG:
A FF000.+00016. Q3
A FF000.+00020. Q4
A FF000.+00116.+6 BADSIN
A FF000.+00132.-6 PUTSYS
A FF000.+00176.+0C. GOTSYSIN
A FF000.+00252. QPLUSM
A FF000.+00282. PLUSMINU
A FF000.+002EE. QLOADLOC
A FF000.+00450. QLBL
INTERACTIVE
A break point might look like:
test cmd: g
test break on A FF000.+007F0. QPARM
800FF7F0 1 5090D7EC ST R9=800FF188 S2(000FF7EC)=00000000
These are BAT file samples I use while testing. Generally, if I'm working with pgm=name then I'll create 3-4 BAT files.
name.BAT ASMLG name (assemble, link, and go)
nameB.BAT QBREAK create the break point file
nameT.BAT EZ390 test with break points set
nameR.BAT EZ390 just run
This is the BAT file I used for testing a NEWFIND program using QBREAK:
SET G=C:\USERS\LIN\DOCUMENTS\Z390CODE\NEWFIND
SET BREAK=%G%.BREAK.BREAK.TXT
SET SYSUT1=%G%.PRN
SET SYSUT2=%G%.OUT.TXT
SET SYSIN=%G%.SYSIN.TXT
SET SYSPRINT=%G%.SYSPRINT.TXT
BAT\EZ390 %G%.MLC TEST(BREAK)
And this is the BAT file I used to create break points after running ASMLG
SET G=C:\USERS\LIN\DOCUMENTS\Z390CODE\NEWFIND
SET LISTING=%G%.PRN
SET SYSPRINT=%G%.BREAK.SYSPRINT.TXT
SET BREAK=%G%.BREAK.BREAK.TXT <== this will be the break point file
SET SYSIN=%G%.BREAK.SYSIN.TXT <== this is the file that specifies labels
BAT\EZ390 C:\USERS\LIN\DOCUMENTS\Z390CODE\QBREAK.MLC
-----------------------------------------------------------
https://sites.google.com/site/linlyons/qbreak-code contains the source.
https://sites.google.com/site/linlyons/qbreak-description is similar to this.
A