I am trying to figure out to perform a clear screen form a "GCC C" program.? I am using the wc3270 program on WIndows to talk to Hercules VM370.? I have tried several different hex codes with no luck.? Has anyone using "GCC C VM370 CMS" sent a command to clear the screen.
Hope this is clear.
Thank You Tom c
|
Tom, You need to use a DIAG 58 ?call. There are no character sequences that clear the screen. I think the simplest solution is to create a “clrscrn” module that loads in the transient area and run that with the system command. Dvae ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Tom Chandler Sent: 23 January 2021 20:31 To: [email protected] Subject: [h390-vm] GCC under VM370 CMS? I am trying to figure out to perform a clear screen form a "GCC C" program.? I am using the wc3270 program on WIndows to talk to Hercules VM370.? I have tried several different hex codes with no luck.? Has anyone using "GCC C VM370 CMS" sent a command to clear the screen.
Hope this is clear.
Thank You Tom c
|
Thank you.? I will investigate and see what I can do.
Again, Thank You
Tom c
toggle quoted message
Show quoted text
Tom, You need to use a DIAG 58 ?call. There are no character sequences that clear the screen. I think the simplest solution is to create a “clrscrn” module that loads in the transient area and run that with the system command. Dvae ? ? I am trying to figure out to perform a clear screen form a "GCC C" program.? I am using the wc3270 program on WIndows to talk to Hercules VM370.? I have tried several different hex codes with no luck.? Has anyone using "GCC C VM370 CMS" sent a command to clear the screen.
Hope this is clear.
Thank You Tom c
|
I remember a VMFCLEAR module and another VMFCLR module. I do not
remember what level of VM or if they were transient modules.
Neither one would have been too large to get the text and
load/genmod as transient.
/Tom
On 2021-01-23 18:05, Tom Chandler
wrote:
toggle quoted message
Show quoted text
Thank you.? I will investigate and see what I can do.
Again, Thank You
Tom c
Tom,
You need to use a
DIAG 58 ?call. There are no character sequences that
clear the screen. I think the simplest solution is to
create a “clrscrn” module that loads in the transient
area and run that with the system command.
Dvae
?
?
I am trying to figure out to
perform a clear screen form a "GCC C" program.? I am
using
the wc3270 program on WIndows to talk to Hercules
VM370.? I have tried several
different hex codes with no luck.? Has anyone using
"GCC C VM370 CMS" sent a command to
clear the screen.
Hope this is clear.
Thank You
Tom c
|

Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury
|
Hi Tom Have a look round this?https://github.com/devhawala/mecaff
The home of the brilliant EE editor etc.? Somewhere in there is the c source for low level diag58 stuff and 3270 datastream err... more stuff!
Adrian
|
I see a CLRSCRN MODULE on the Sixpack 1.3 beta 3 Y-disk. Bob Bolch
|
There are lots of incarnations. It was late and I was rushing. What I should have said is that there is the source of a CLRSCRN module on the MAINT CMS mods disk but the module on the ?“Y” disk but it GENMODed to load into the user area. So you can’t run it using “system()”.? A “CLRTPA” module could be made by just loading it elsewhere. It could be made into a subroutine quite simply, you might need some calls to flush the IO before it. You can see the source by logging onto MAINT and doing CMSACC to access the CMS mods disk and it will be on the “B” drive. ? Dave ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Thomas Kern via groups.io Sent: 24 January 2021 00:32 To: [email protected] Subject: Re: [h390-vm] GCC under VM370 CMS? I remember a VMFCLEAR module and another VMFCLR module. I do not remember what level of VM or if they were transient modules. Neither one would have been too large to get the text and load/genmod as transient. /Tom On 2021-01-23 18:05, Tom Chandler wrote: Thank you.? I will investigate and see what I can do. ? Tom, You need to use a DIAG 58 ?call. There are no character sequences that clear the screen. I think the simplest solution is to create a “clrscrn” module that loads in the transient area and run that with the system command. Dvae ? ? I am trying to figure out to perform a clear screen form a "GCC C" program.? I am using the wc3270 program on WIndows to talk to Hercules VM370.? I have tried several different hex codes with no luck.? Has anyone using "GCC C VM370 CMS" sent a command to clear the screen.
Hope this is clear.
Thank You Tom c
|
The actual code you want is ?x'1140403C40400013'.
In 3270 data stream, that means:
x'11': Set Buffer Address x'4040': Row 1, Column 1 x'3c': Repeat to ?Address x'4040: Row 1, Column 1 x'00': Character to write x'13': Insert Cursor
So, ?starting at ?Row 1, Column 1, write hex 00 and repeat until Row 1, Column 1, then Insert the Cursor.
IOW, write hex '00' to every buffer location and put the cursor at row 1, column ?1. Note that ?because this starts and ends at R1C1 it ?is size independent, and so works on any size of screen.
Joe
toggle quoted message
Show quoted text
|
? |
? |
? |
? |
? |
Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury
|
|
Joe, ? Thats fine but in ?VM ?the console is not a 3270…. … if you use that code you will sometimes generate a wait. Look at the source of the CLRSCRN module. ? Dave ? ? ? ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Joe Monk Sent: 24 January 2021 12:27 To: [email protected] Subject: Re: [h390-vm] GCC under VM370 CMS? The actual code you want is ?x'1140403C40400013'. In 3270 data stream, that means: x'11': Set Buffer Address x'3c': Repeat to ?Address x'00': Character to write So, ?starting at ?Row 1, Column 1, write hex 00 and repeat until Row 1, Column 1, then Insert the Cursor. IOW, write hex '00' to every buffer location and put the cursor at row 1, column ?1. Note that ?because this starts and ends at R1C1 it ?is size independent, and so works on any size of screen. ? | ? | ? | ? | ? | ? | Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury | | |
|
Dave,
I thought we were talking about ?a diag 58 call? Doesnt diag 58 do 3270 full screen IO?
Joe
toggle quoted message
Show quoted text
Joe, ? Thats fine but in ?VM ?the console is not a 3270…. … if you use that code you will sometimes generate a wait. Look at the source of the CLRSCRN module. ? Dave ? ? ? ? ? The actual code you want is ?x'1140403C40400013'. In 3270 data stream, that means: x'11': Set Buffer Address x'3c': Repeat to ?Address x'00': Character to write So, ?starting at ?Row 1, Column 1, write hex 00 and repeat until Row 1, Column 1, then Insert the Cursor. IOW, write hex '00' to every buffer location and put the cursor at row 1, column ?1. Note that ?because this starts and ends at R1C1 it ?is size independent, and so works on any size of screen. ? | ? | ? | ? | ? | ? | Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury | | |
|
My bad. DIAG 58 does full screen IO but if all you want to do is clear the screen there are simple IO sequences that do that without flipping to 3270 mode. ? Dave ? ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Joe Monk Sent: 24 January 2021 13:24 To: [email protected] Subject: Re: [h390-vm] GCC under VM370 CMS? Dave, I thought we were talking about ?a diag 58 call? Doesnt diag 58 do 3270 full screen IO? ? Joe, ? Thats fine but in ?VM ?the console is not a 3270…. … if you use that code you will sometimes generate a wait. Look at the source of the CLRSCRN module. ? Dave ? ? ? ? ? The actual code you want is ?x'1140403C40400013'. In 3270 data stream, that means: x'11': Set Buffer Address x'3c': Repeat to ?Address x'00': Character to write So, ?starting at ?Row 1, Column 1, write hex 00 and repeat until Row 1, Column 1, then Insert the Cursor. IOW, write hex '00' to every buffer location and put the cursor at row 1, column ?1. Note that ?because this starts and ends at R1C1 it ?is size independent, and so works on any size of screen. ? | ? | ? | ? | ? | ? | Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury | | |
|
? ? ? ?Here is a sample sequence: ? CLR? CSECT ? ? ? ? ? USING NUCON,0 ? ? ? ? ? STM? R14,R12,12(R13) ? ? ? ? ? LR? ?R12,R15 ? ? ? ? ? USING CLR,R12 ? ? ? ? ?WAITT , ? ? ? ? ? ? ?WAIT FOR TERMINAL ACTIVITY TO STOP. ? ? ? ? ?L ? ? R3,ADEVTAB ? ? GET ADDRESS OF DEVICE TBL IN NUCON ? ? ? ? ?LH ? ?R2,0(R3) ? ? ? GET THE CONSOLE ADDRESS. ? ? ? ? ? ? ? ? ? ?LA ? ?R1,CCWCLEAR ? ?GET ADDRESS OF THE CLEARING CCW. ? ? ? ? ? ?DIAG ?R1,R2,X'58' ? ?ISSUE THE DIAGNOSE FOR CLEARING. ? ? ? ? ? ? LM? ?R14,R12,12(R13)
? ? ? ? ? SR? ?R15,R15? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?BR ? ?14 ? ? ? ? ? ? RETURN TO THE CALLER. ? ? ? ? ? ? ? CCWCLEAR DC ? ?0D'0',X'19',AL3(0),XL2'20FF',AL2(1)?? ? ? ? ? ? ?NUCON , ? ? ? ? ? ?REGEQU?, ? ? ? ? ? ?END? ? ? ? ? ? ?
toggle quoted message
Show quoted text
My bad. DIAG 58 does full screen IO but if all you want to do is clear the screen there are simple IO sequences that do that without flipping to 3270 mode. ? Dave ? ? ? Dave, I thought we were talking about ?a diag 58 call? Doesnt diag 58 do 3270 full screen IO? ? Joe, ? Thats fine but in ?VM ?the console is not a 3270…. … if you use that code you will sometimes generate a wait. Look at the source of the CLRSCRN module. ? Dave ? ? ? ? ? The actual code you want is ?x'1140403C40400013'. In 3270 data stream, that means: x'11': Set Buffer Address x'3c': Repeat to ?Address x'00': Character to write So, ?starting at ?Row 1, Column 1, write hex 00 and repeat until Row 1, Column 1, then Insert the Cursor. IOW, write hex '00' to every buffer location and put the cursor at row 1, column ?1. Note that ?because this starts and ends at R1C1 it ?is size independent, and so works on any size of screen. ? | ? | ? | ? | ? | ? | Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury | | |
|
If you look at the source for CLRSCRN it does not use DIAG 58 and works on systems without the DIAG 58 updates…. ? Dave ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Bob Bolch Sent: 24 January 2021 14:09 To: [email protected] Subject: Re: [h390-vm] GCC under VM370 CMS? ? ? ? ?Here is a sample sequence: ? ? ? ? ? ? STM? R14,R12,12(R13) ? ? ? ? ?WAITT , ? ? ? ? ? ? ?WAIT FOR TERMINAL ACTIVITY TO STOP. ? ? ? ? ?L ? ? R3,ADEVTAB ? ? GET ADDRESS OF DEVICE TBL IN NUCON ? ? ? ? ?LH ? ?R2,0(R3) ? ? ? GET THE CONSOLE ADDRESS. ? ? ? ? ? ? ? ? ? ?LA ? ?R1,CCWCLEAR ? ?GET ADDRESS OF THE CLEARING CCW. ? ? ? ? ? ?DIAG ?R1,R2,X'58' ? ?ISSUE THE DIAGNOSE FOR CLEARING. ? ? ? ? ? ? LM? ?R14,R12,12(R13) ? ? ? ? ? SR? ?R15,R15? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?BR ? ?14 ? ? ? ? ? ? RETURN TO THE CALLER. ? ? ? ? ? ? ? CCWCLEAR DC ? ?0D'0',X'19',AL3(0),XL2'20FF',AL2(1)?? ? ? ? ? ? ?END? ? ? ? ? ? ? ? My bad. DIAG 58 does full screen IO but if all you want to do is clear the screen there are simple IO sequences that do that without flipping to 3270 mode. ? Dave ? ? ? Dave, I thought we were talking about ?a diag 58 call? Doesnt diag 58 do 3270 full screen IO? ? Joe, ? Thats fine but in ?VM ?the console is not a 3270…. … if you use that code you will sometimes generate a wait. Look at the source of the CLRSCRN module. ? Dave ? ? ? ? ? The actual code you want is ?x'1140403C40400013'. In 3270 data stream, that means: x'11': Set Buffer Address x'3c': Repeat to ?Address x'00': Character to write So, ?starting at ?Row 1, Column 1, write hex 00 and repeat until Row 1, Column 1, then Insert the Cursor. IOW, write hex '00' to every buffer location and put the cursor at row 1, column ?1. Note that ?because this starts and ends at R1C1 it ?is size independent, and so works on any size of screen. ? | ? | ? | ? | ? | ? | Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury | | |
|
Diagnose 58 is in the base VM/370. The base version only supports the X'19' CCW which is not a fullscreen interface. CLRSCRN, and my example program use Diagnose 5 with a X'19' CCW. That works fine on a VM system without the fullscreen CCW support in the Diagnose 58 Sixpack modifications.
Bob
toggle quoted message
Show quoted text
If you look at the source for CLRSCRN it does not use DIAG 58 and works on systems without the DIAG 58 updates…. ? Dave ? ? ? ? ? ?Here is a sample sequence: ? ? ? ? ? ? STM? R14,R12,12(R13) ? ? ? ? ?WAITT , ? ? ? ? ? ? ?WAIT FOR TERMINAL ACTIVITY TO STOP. ? ? ? ? ?L ? ? R3,ADEVTAB ? ? GET ADDRESS OF DEVICE TBL IN NUCON ? ? ? ? ?LH ? ?R2,0(R3) ? ? ? GET THE CONSOLE ADDRESS. ? ? ? ? ? ? ? ? ? ?LA ? ?R1,CCWCLEAR ? ?GET ADDRESS OF THE CLEARING CCW. ? ? ? ? ? ?DIAG ?R1,R2,X'58' ? ?ISSUE THE DIAGNOSE FOR CLEARING. ? ? ? ? ? ? LM? ?R14,R12,12(R13) ? ? ? ? ? SR? ?R15,R15? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?BR ? ?14 ? ? ? ? ? ? RETURN TO THE CALLER. ? ? ? ? ? ? ? CCWCLEAR DC ? ?0D'0',X'19',AL3(0),XL2'20FF',AL2(1)?? ? ? ? ? ? ?END? ? ? ? ? ? ? ? My bad. DIAG 58 does full screen IO but if all you want to do is clear the screen there are simple IO sequences that do that without flipping to 3270 mode. ? Dave ? ? ? Dave, I thought we were talking about ?a diag 58 call? Doesnt diag 58 do 3270 full screen IO? ? Joe, ? Thats fine but in ?VM ?the console is not a 3270…. … if you use that code you will sometimes generate a wait. Look at the source of the CLRSCRN module. ? Dave ? ? ? ? ? The actual code you want is ?x'1140403C40400013'. In 3270 data stream, that means: x'11': Set Buffer Address x'3c': Repeat to ?Address x'00': Character to write So, ?starting at ?Row 1, Column 1, write hex 00 and repeat until Row 1, Column 1, then Insert the Cursor. IOW, write hex '00' to every buffer location and put the cursor at row 1, column ?1. Note that ?because this starts and ends at R1C1 it ?is size independent, and so works on any size of screen. ? | ? | ? | ? | ? | ? | Hi, again, Tom,
The first thing to understand is that in VM, with CMS, the "console" when it is a 3270 operates in two "modes" -- a line-at-a-time mode where it is emulating a keyboard printer (3215) type of console, and you can also use the CP DIAG x'58' facility to perform full-screen 3270 I/O.
When you use DIAG x'58' you must supply the actual 3270 data stream.? You can find relevant manuals on bitsavers.? Let me know if you need more specific pointers on that.
Tommy Sprinkle has created a nice tutorial on 3270 data streams here: ? ?? ?
It was written for MVS, but the data streams part is the same; you will just be using DIAG x'58' vs. TSO TPUT/TGET ...
The main feature you are looking for is called "Erase Write".? That's how you clear the screen.
Note that, once you put the console into full-screen mode, CP expects all further interactions to remain "full-screen"...? you may want to revert to line-at-a-time mode, depending on your needs.
Hope this helps (somewhat) ...
All the best,
Mark S. Waterbury | | |
|