If, like me, you must design screens in the S/36E, you may run into trouble when windowing. Yesterday I was working on a program that sent and received a screen and called another program which, in turn, overlaid a screen on top of the first. I couldn't get the second screen to overlay on top of the first without clearing it. In S/36 SDA, this is accomplished by entering zeros in the lines to clear parameter of the screen attributes.
What took a day to determine is that the two formats used in the programs had different display size values. One had DSPSIZ(*DS4 *DS3) [27 x 132 primary, 24 x 80 secondary] and the other had DSPSIZ(*DS3 *DS4) [the opposite]. Yes, this does make a difference, even when both screens were 24 x 80! The format that had DSPSIZ(*DS4 *DS3) had only one screen that was 27 x 132! The S/36E screen precompiler apparently assumes that if one screen is 27 x 132, the primary should be as well.
There are two ways to solve this problem. The first and easiest is to keep screens with different sizes in different display files. If, like me, you have gone too far to make such a change, here are the steps you should follow.
First, compile with the CRT-S36DSPF command using a TOMBR value other than *NONE. This will create a DDS member in a source file of your choice. Then, the minor adjustments may be made to the DDS to give the format the DSPSIZ that you choose. Don't forget to enter the DSPMOD parameter that may have defaulted. Finally, compile the DDS member to create the new display file.
LATEST COMMENTS
MC Press Online