Can anyone tell me how to determine why I am getting different results from the same program in 8.1.1 vs 10.3.1 when I accept a font value from standard objects and W$FONT? I'm migrating from 2003 to 2016 and the results of these statements is causing my screen handling to give strange results. I have looked everywhere trying to understand the values being returned by these commands without success.
Can anyone tell me how to determine why I am getting different results from the same program in 8.1.1 vs 10.3.1 when I accept a font value from standard objects and W$FONT? I'm migrating from 2003 to 2016 and the results of these statements is causing my screen handling to give strange results. I have looked everywhere trying to understand the values being returned by these commands without success.
Is your Accept from Standard Object looking for Default-font / Fixed-Font/ small-font / medium-font / large-font ?
W$FONT allows you to set a font like arial / new-courier , size and other font attributes.
If you are stating that using W$FONT 8.1.1 succeeds to get a specific font and that same statement fails with 10.3.1 then you should contact customer care.
There is a lot involved in FONTs, it is possible that the runtime configuration file you used with 8.1.1 has some values pertaining to fonts. Are you using a similar or same configuration file with 10.3.1?
If you have an example working using 8.1.1 and doesn't work using 10.3.1 you should contact Customer Care.
Is your Accept from Standard Object looking for Default-font / Fixed-Font/ small-font / medium-font / large-font ?
W$FONT allows you to set a font like arial / new-courier , size and other font attributes.
If you are stating that using W$FONT 8.1.1 succeeds to get a specific font and that same statement fails with 10.3.1 then you should contact customer care.
There is a lot involved in FONTs, it is possible that the runtime configuration file you used with 8.1.1 has some values pertaining to fonts. Are you using a similar or same configuration file with 10.3.1?
If you have an example working using 8.1.1 and doesn't work using 10.3.1 you should contact Customer Care.
Here's the funny thing - I opened a help desk case and they suggested I come here.
MF Response:
Microsoft has been known to change the default font used in their operating systems. Thus, the "fixed-font" may be different from one operating system to the next. That being the case, rather than relying on the "fixed-font" to be the same on each operating system, it may need to select a specific font, if possible.
W$FONT is likewise dependent upon on the fonts that are installed on the operating system and thereby the fonts themselves may be operating system or machine specific.
As you are experiencing, migrating an application from one operating system to another should be thoroughly tested and may require program modifications.
Here's some additional information:
CONFIG FILE: DEFAULT_FONT TRADITIONAL, USE_FONT=12
PROGRAM: accept SF from standard object "fixed-font"
PROGRAM: MOVE 11 TO FONT-TO-USE-9.
MOVE FONT-TO-USE-9 TO WFONT-SIZE.
MOVE "Courier New" TO WFONT-NAME.
CALL "W$FONT" USING WFONT-GET-CLOSEST-FONT
SCREEN-FONT
WFONT-DATA GIVING WFONT-STATUS.
Here's the funny thing - I opened a help desk case and they suggested I come here.
MF Response:
Microsoft has been known to change the default font used in their operating systems. Thus, the "fixed-font" may be different from one operating system to the next. That being the case, rather than relying on the "fixed-font" to be the same on each operating system, it may need to select a specific font, if possible.
W$FONT is likewise dependent upon on the fonts that are installed on the operating system and thereby the fonts themselves may be operating system or machine specific.
As you are experiencing, migrating an application from one operating system to another should be thoroughly tested and may require program modifications.
Here's some additional information:
CONFIG FILE: DEFAULT_FONT TRADITIONAL, USE_FONT=12
PROGRAM: accept SF from standard object "fixed-font"
PROGRAM: MOVE 11 TO FONT-TO-USE-9.
MOVE FONT-TO-USE-9 TO WFONT-SIZE.
MOVE "Courier New" TO WFONT-NAME.
CALL "W$FONT" USING WFONT-GET-CLOSEST-FONT
SCREEN-FONT
WFONT-DATA GIVING WFONT-STATUS.
TRADITIONAL-FONT -a fixed-size font. This font uses the standard character set associated with the host hardware (as opposed to the host graphical system). On many systems, this font is the same as FIXED-FONT. Under Microsoft Windows, this font is Windows' OEM-FIXED-FONT and uses the "OEM" character set instead of the ANSI character set.
FIXED-FONT - The host system's default fixed-size font. This is the default font used for textual displays. Under Microsoft Windows, this font is Windows' SYSTEM-FIXED-FONT.
USE_FONT is not a runtime configuration variable. Typically this means someone sets a environment variable, and then in the program gets values from the environment variable, and based on the value (USE_FONT) the program decides what font to use.
The Program portion below should provide the same font in 8..1.1 and 10.3.1 Courier New 11
MOVE 11 TO FONT-TO-USE-9.
MOVE FONT-TO-USE-9 TO WFONT-SIZE.
MOVE "Courier New" TO WFONT-NAME.
CALL "W$FONT" USING WFONT-GET-CLOSEST-FONT
SCREEN-FONT
WFONT-DATA GIVING WFONT-STATUS.
Are you testing your program with 10.3.1 on the same machine that is running 8.1.1?
If not, can you set up that sort of test?
Also there are some Microsoft articles detailing with font scaling on Windows 10 https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/windowsfile-explorer-fonttext-size-settings-no/eecaaf81-d250-45ff-a9b8-4f99d614e033
I don't know if that applies to what you're experiencing.
TRADITIONAL-FONT -a fixed-size font. This font uses the standard character set associated with the host hardware (as opposed to the host graphical system). On many systems, this font is the same as FIXED-FONT. Under Microsoft Windows, this font is Windows' OEM-FIXED-FONT and uses the "OEM" character set instead of the ANSI character set.
FIXED-FONT - The host system's default fixed-size font. This is the default font used for textual displays. Under Microsoft Windows, this font is Windows' SYSTEM-FIXED-FONT.
USE_FONT is not a runtime configuration variable. Typically this means someone sets a environment variable, and then in the program gets values from the environment variable, and based on the value (USE_FONT) the program decides what font to use.
The Program portion below should provide the same font in 8..1.1 and 10.3.1 Courier New 11
MOVE 11 TO FONT-TO-USE-9.
MOVE FONT-TO-USE-9 TO WFONT-SIZE.
MOVE "Courier New" TO WFONT-NAME.
CALL "W$FONT" USING WFONT-GET-CLOSEST-FONT
SCREEN-FONT
WFONT-DATA GIVING WFONT-STATUS.
Are you testing your program with 10.3.1 on the same machine that is running 8.1.1?
If not, can you set up that sort of test?
Also there are some Microsoft articles detailing with font scaling on Windows 10 https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/windowsfile-explorer-fonttext-size-settings-no/eecaaf81-d250-45ff-a9b8-4f99d614e033
I don't know if that applies to what you're experiencing.
I cannot test 10.3.1 on the old platform - it was installed on a windows 2016 platform. 8.1.1 is running on windows 2003. The ACCEPT SF command returns a different value on each machine. 1243 on 8.1.1 , 1420 on 2016. SF is defined as HANDLE OF FONT. Therefore, when my screen display looks like this
05 LABEL FONT SF FROM PD01 LINE 02 COL 05
COLOR CC
It returns a layout that is a little different in 2016 than 2003
ON a related note, the COLOR command is hard coded in the program and it is also returning a different color between the 2 systems.
01 CC PIC 9(9) VALUE 8192.
I'm not a FONT expert by any means. Can you tell me where you find the values of SYSTEM-FIXED-FONT and OEM-FIXED-FONT? Are those registry settings?
I cannot test 10.3.1 on the old platform - it was installed on a windows 2016 platform. 8.1.1 is running on windows 2003. The ACCEPT SF command returns a different value on each machine. 1243 on 8.1.1 , 1420 on 2016. SF is defined as HANDLE OF FONT. Therefore, when my screen display looks like this
05 LABEL FONT SF FROM PD01 LINE 02 COL 05
COLOR CC
It returns a layout that is a little different in 2016 than 2003
ON a related note, the COLOR command is hard coded in the program and it is also returning a different color between the 2 systems.
01 CC PIC 9(9) VALUE 8192.
I'm not a FONT expert by any means. Can you tell me where you find the values of SYSTEM-FIXED-FONT and OEM-FIXED-FONT? Are those registry settings?
Let's tackle this first 1243 on 8.1.1 , 1420 on 2016. SF is defined as HANDLE OF FONT.
The handle is a way for the runtime to make a piece of memory and attach something to that memory. These values will change, almost every time you run the program.
On windows SYSTEM-FIXED-FONT is Segoe
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts
OEM seems to be the family of fonts that provide Courier New / New Times Roman.
Yes, color is another dark art - similar to fonts, colors are typically additive - look at the acucobol.def file, you add values background / foreground to get a color, or you could in your program - display window user-colors - where the colors are inherited from what the user set in their control panel.
I cannot test 10.3.1 on the old platform - it was installed on a windows 2016 platform. 8.1.1 is running on windows 2003. The ACCEPT SF command returns a different value on each machine. 1243 on 8.1.1 , 1420 on 2016. SF is defined as HANDLE OF FONT. Therefore, when my screen display looks like this
05 LABEL FONT SF FROM PD01 LINE 02 COL 05
COLOR CC
It returns a layout that is a little different in 2016 than 2003
ON a related note, the COLOR command is hard coded in the program and it is also returning a different color between the 2 systems.
01 CC PIC 9(9) VALUE 8192.
I'm not a FONT expert by any means. Can you tell me where you find the values of SYSTEM-FIXED-FONT and OEM-FIXED-FONT? Are those registry settings?
Let's tackle this first 1243 on 8.1.1 , 1420 on 2016. SF is defined as HANDLE OF FONT.
The handle is a way for the runtime to make a piece of memory and attach something to that memory. These values will change, almost every time you run the program.
On windows SYSTEM-FIXED-FONT is Segoe
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts
OEM seems to be the family of fonts that provide Courier New / New Times Roman.
Yes, color is another dark art - similar to fonts, colors are typically additive - look at the acucobol.def file, you add values background / foreground to get a color, or you could in your program - display window user-colors - where the colors are inherited from what the user set in their control panel.
If I run the program, exit, and rerun the program again, I do get the same value for the HANDLE. I understand what you are saying if the value changes - just something in the memory that has an attachment.
I do see all of the fonts in the registry on both machines and they look the same. Not sure what I should be looking for to see the differences between the systems that causes one system to display something differently or if those variables SYSTEM_FIXED_FONT are defined differently between the 2 servers.
Here's the funny thing - I opened a help desk case and they suggested I come here.
MF Response:
Microsoft has been known to change the default font used in their operating systems. Thus, the "fixed-font" may be different from one operating system to the next. That being the case, rather than relying on the "fixed-font" to be the same on each operating system, it may need to select a specific font, if possible.
W$FONT is likewise dependent upon on the fonts that are installed on the operating system and thereby the fonts themselves may be operating system or machine specific.
As you are experiencing, migrating an application from one operating system to another should be thoroughly tested and may require program modifications.
Here's some additional information:
CONFIG FILE: DEFAULT_FONT TRADITIONAL, USE_FONT=12
PROGRAM: accept SF from standard object "fixed-font"
PROGRAM: MOVE 11 TO FONT-TO-USE-9.
MOVE FONT-TO-USE-9 TO WFONT-SIZE.
MOVE "Courier New" TO WFONT-NAME.
CALL "W$FONT" USING WFONT-GET-CLOSEST-FONT
SCREEN-FONT
WFONT-DATA GIVING WFONT-STATUS.
DEFAULT_FONT MEDIUM or DEFAULT_FONT FIXED or DEFAULT_FONT SMALL and see if any of these matches what 8.1.1 looked like
If I run the program, exit, and rerun the program again, I do get the same value for the HANDLE. I understand what you are saying if the value changes - just something in the memory that has an attachment.
I do see all of the fonts in the registry on both machines and they look the same. Not sure what I should be looking for to see the differences between the systems that causes one system to display something differently or if those variables SYSTEM_FIXED_FONT are defined differently between the 2 servers.
No batch files are being called. Running the ACUTHIN/ACUSERVE client locally. Pointing to the config file. The config file is basically the same - copied from one server to the other, except for pointing at a different server. In the case of the program, I'm not sure how the DEFAULT FONT or USE FONT come into play when the ACCEPT statement is asking for FIXED-FONT or when the W$FONT is called since it is providing the font size and font name on the call. Unless 8.1.1 treats the ACCEPT differently than 10.3.1, but I'm not seeing that in the documentation
No batch files are being called. Running the ACUTHIN/ACUSERVE client locally. Pointing to the config file. The config file is basically the same - copied from one server to the other, except for pointing at a different server. In the case of the program, I'm not sure how the DEFAULT FONT or USE FONT come into play when the ACCEPT statement is asking for FIXED-FONT or when the W$FONT is called since it is providing the font size and font name on the call. Unless 8.1.1 treats the ACCEPT differently than 10.3.1, but I'm not seeing that in the documentation
Nice knowing thin client is involved. You are correct, we should focus on the
accept sf from standard object "fixed-font".
I would try
accept sf from standard object "small-font".
and accept sf from standard object "medium-font".
and see if either of these gets it closer to where it was when using Windows 2003.
Nice knowing thin client is involved. You are correct, we should focus on the
accept sf from standard object "fixed-font".
I would try
accept sf from standard object "small-font".
and accept sf from standard object "medium-font".
and see if either of these gets it closer to where it was when using Windows 2003.
Sounds like a plan. As you can imagine, I have been searching everywhere for anything that might be different. I also just found this: In 10.3.1 there is an a_termcap file in the C:\\Program Files (x86)\\Micro Focus\\extend 10.3.1\\AcuGT\\etc directory (also in the 32 bit directory as well). I am not seeing this file in the 2003 server. I am going to move it out of that directory to see if that has any effect. ANd if it doesn't, I will try the medium and small fonts.
Thanks for bearing with me and providing me with your expertise!
Nice knowing thin client is involved. You are correct, we should focus on the
accept sf from standard object "fixed-font".
I would try
accept sf from standard object "small-font".
and accept sf from standard object "medium-font".
and see if either of these gets it closer to where it was when using Windows 2003.
I will try changing the fonts. As you can tell, I have been searching everywhere for anything that can point me in the right direction. I also found that in the new version, in the etc directory, there is an a_termcap file. I do not have one of those on the production server. Not sure if this is causing any issues, but I am considering renaming it and seeing if that changes anything,
Sounds like a plan. As you can imagine, I have been searching everywhere for anything that might be different. I also just found this: In 10.3.1 there is an a_termcap file in the C:\\Program Files (x86)\\Micro Focus\\extend 10.3.1\\AcuGT\\etc directory (also in the 32 bit directory as well). I am not seeing this file in the 2003 server. I am going to move it out of that directory to see if that has any effect. ANd if it doesn't, I will try the medium and small fonts.
Thanks for bearing with me and providing me with your expertise!
Nice knowing thin client is involved. You are correct, we should focus on the
accept sf from standard object "fixed-font".
I would try
accept sf from standard object "small-font".
and accept sf from standard object "medium-font".
and see if either of these gets it closer to where it was when using Windows 2003.
OK - I think we are going to put this one to bed. I have discovered that due that in version 10.3.1, if the wfont-data is not initialize, it performs differently that in 8.1.1. The programmer did not initialize the variable, but wfont-data variables were set to 0 in 8.1.1. That is not the case in 10.3.1. The values were set to 32 which caused all kinds of issues.
I was also able to change the font to small and medium and that is working now as well.
Thanks for the support!
Now if I can just get someone here or at support to figure out why my program performs differently in ACUSERVER vs ACUTHIN from the same client, I can really move forward on my upgrade. I have to believe that something is different in how the programs use the network connectivity but I'm am by no means an expert there!
OK - I think we are going to put this one to bed. I have discovered that due that in version 10.3.1, if the wfont-data is not initialize, it performs differently that in 8.1.1. The programmer did not initialize the variable, but wfont-data variables were set to 0 in 8.1.1. That is not the case in 10.3.1. The values were set to 32 which caused all kinds of issues.
I was also able to change the font to small and medium and that is working now as well.
Thanks for the support!
Now if I can just get someone here or at support to figure out why my program performs differently in ACUSERVER vs ACUTHIN from the same client, I can really move forward on my upgrade. I have to believe that something is different in how the programs use the network connectivity but I'm am by no means an expert there!
Hi Keith,
You may want to start a new thread about Acuthin / AcuServer. Can you specify what differently means? Each use different IP ports - is there a chance there is some anti-virus software that might e monitoring network traffic? Thin client uses the network while the program executes on the server. AcuServer has the program executing on the client and using the network to get file data from the server. They're pretty different so let's confirm what you are doing. Using Acuthin, your command line or bat file does
acuthin ip-address (or server-name) alias-name
AcuServer command line would be wrun32 -c myconfig main-program-name
For acuthin the alias-name points to a config file on the server and the program-name to start your application. It is likely that there will be some differences between the config settings the ones for the alias-name and the ones in myconfig. Some of the differences are intention - file name or FILE_PREFIX in myconfig is going to have @ to specify where on the server your data lives. The alias config file will have file naming or FILE_PREFIX pointing to directories on the server not needing to use the @ - do the directories seem to mirror each other?
Hi Keith,
You may want to start a new thread about Acuthin / AcuServer. Can you specify what differently means? Each use different IP ports - is there a chance there is some anti-virus software that might e monitoring network traffic? Thin client uses the network while the program executes on the server. AcuServer has the program executing on the client and using the network to get file data from the server. They're pretty different so let's confirm what you are doing. Using Acuthin, your command line or bat file does
acuthin ip-address (or server-name) alias-name
AcuServer command line would be wrun32 -c myconfig main-program-name
For acuthin the alias-name points to a config file on the server and the program-name to start your application. It is likely that there will be some differences between the config settings the ones for the alias-name and the ones in myconfig. Some of the differences are intention - file name or FILE_PREFIX in myconfig is going to have @ to specify where on the server your data lives. The alias config file will have file naming or FILE_PREFIX pointing to directories on the server not needing to use the @ - do the directories seem to mirror each other?
Hi Keith,
You may want to start a new thread about Acuthin / AcuServer. Can you specify what differently means? Each use different IP ports - is there a chance there is some anti-virus software that might e monitoring network traffic? Thin client uses the network while the program executes on the server. AcuServer has the program executing on the client and using the network to get file data from the server. They're pretty different so let's confirm what you are doing. Using Acuthin, your command line or bat file does
acuthin ip-address (or server-name) alias-name
AcuServer command line would be wrun32 -c myconfig main-program-name
For acuthin the alias-name points to a config file on the server and the program-name to start your application. It is likely that there will be some differences between the config settings the ones for the alias-name and the ones in myconfig. Some of the differences are intention - file name or FILE_PREFIX in myconfig is going to have @ to specify where on the server your data lives. The alias config file will have file naming or FILE_PREFIX pointing to directories on the server not needing to use the @ - do the directories seem to mirror each other?
I do have another thread started on the board.....I finally did get a response this morning - but they thought I was running the 10.3.1 on same server as 8.1.1
I have installed ACUTHIN v10.3.1 on a brand new server running 2016. The old ACUTHIN 8.1.1 was installed on Windows 2003. SUpport indicated that my issue was related to 32/64 bit. I was running the 64 bit service, but running the 32 bit executable on the client PC. However, I have since deleted the 64 bit service running on port 5632 and started the 32 bit service on the same port.
CLIENT PC call for ACUTHIN
"C:\\Program Files (x86)\\Micro Focus\\extend 10.3.1\\AcuGT\\bin\\acuthin.exe" nd0acuwtv01:5632 utilmenu
<Alias>
<rcl:Alias-Name>utilmenu</rcl:Alias-Name>
<rcl:Cobol-Program>utilmenu</rcl:Cobol-Program>
<rcl:Configuration-File>d:\\cobolcfg\\cblconfi.srv</rcl:Configuration-File>
<rcl:Working-Directory>d:\\ThinWorkDir</rcl:Working-Directory>
</Alias>
I have no issues with I/O or Screen displays - those statements execute immediately, but as soon as I "CALL" another COBOL program, the delay kicks in. I actually see a bit of a lag when the first program is started as well.
CLIENT PC call for ACUSERVE
"C:\\Program Files\\Micro Focus\\extend 10.3.1\\AcuGT\\bin\\wrun32.exe" -c \\\\nd0acuwtv01\\CobolCfg$\\cblconfi.srv \\\\nd0acuwtv01\\object$\\utilmenu.acu
First couple of lines from cblconfi.srv
ACUSERVER-PORT 6523
CODE_PREFIX \\\\nd0acuwtv01\\Object$
FILE_PREFIX @ND0acuwtv01:D:\\DATA\\PREMIUMCYCLE\\DATACOLLECT;@ND0acuwtv01:D:\\DATA\\MASTERFILES;@ND0acuwtv01:D:\\DATA\\AGENCYFILE;@ND0acuwtv01:D:\\DATA\\REFERENCEFILE;@ND0acuwtv01:D:\\DATA\\CLAIMSCYCLE\\DATACOLLECT
Both processes appear to be using the same config file.
Sign up
Already have an account? Login
Welcome to the Rocket Forum!
Please log in or register:
Employee Login | Registration Member Login | RegistrationEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.