I used a combination of php, ksh, which I borrowed from an application that was already in use. I used machform.com to generate the html forms and wrote a couple of foxpro programs to generate cobol code from the FD record description. This was about 5 years ago. It took about a week to get the largest program working. Many of the report programs only took an hour or so as I only had to pass the date and report type etc. In all there are about 60 programs (payroll.) There was no issue with acceptance,...
I think what some of you are missing is that we are converting existing programs and have budgetary constraints. I for one have a program using the screen section that has 10 accept statements for 220 fields. Changing the program to have 220 accept statements is a rewrite, not a conversion. In the end, I spent less time converting to html input.
Is it your intention to replicate ADIS ? https://www.microfocus.com/documentation/object-cobol/ocu42/uiuadc.htm
I changed the select line: select print-file assign to '/dev/stdout' and changed the execution to ./testprt |lp -ddestination
Since this is your problem and not mine, have you tried: SELECT PRINT-FILE ASSIGN TO "|lp -dqueue_name". IDENTIFICATION DIVISION. PROGRAM-ID. TESTPRT. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. select print-file assign to printer "|lp -s -dLexmark_MS315dn". DATA DIVISION. FILE SECTION. FD print-file data record is prnt-line . 01 prnt-line pic x(80). WORKING-STORAGE SECTION. PROCEDURE DIVISION. SOJ. open output print-file write prnt-line from "ABBBBBBBBBBBBBBBBBBBBBBBB" close print-file...
The sine calculation program that i posted here [https://sourceforge.net/p/gnucobol/discussion/help/thread/5ef7013474/?limit=25#24e2] works when compiled using separate complies for the mainline and the function, in both Linux an SCO. I thought that the problems with the box program might have to do with the display statements and I moved them around to the subroutine and then calling program, but to no avail. I have not done anything since the middle of January; too many year ends to deal with.
It works as separate programs and compiled separately in this environment: SCO Openserver 6 unix:/u/ledg# cobc --version cobc (GnuCOBOL) 3.1-rc1.0 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Edward Hart...
What I've did was * using the original version (I've mod-edited the split into two sources in) * changed box.cbl to have PROGRAM-ID. box. (lower-case) * compiled and run with cobc -xj testbox.cbl box.cbl I tried this, and while it terminated normally, it did not draw the box. I have made so many changes playing with this, I am going to go back to the original MF code and try again.
jack@VPCL237FD:~$ cobcrun --verbose --version ldd ./testbox ldd $(which cobcrun) cobcrun (GnuCOBOL) 3.1.2.0 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roger While, Simon Sobisch, Brian Tiffin Built Sep 14 2021 19:23:38 Packaged Dec 23 2020 12:04:58 UTC libcob...
Simon, I only changed the source code to match Eugenio. I still used 3.1.2 and 4.0 cobc -x testbox.cbl cobc box.cbl
Still the same problem.
I have tried the changes you made, and still have the same problem. I am using Linux Mint, current version.
I wrote the following programs to generate and erase pop-up windows for MicroFocus cobol 4.1 after testing, I thought about running with Gnucobol. I compiled the programs with both version 3.1.2- and 4.0-early-dev.0. Both versions compiled without error. But running, both gave "attempt to reference unallocated memory (signal SIGSEGV). IDENTIFICATION DIVISION. PROGRAM-ID. TESTBOX. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 lk-data....
Yes. It even compiles and runs in gnucobol. The only change 'FUNCTION' to 'MY-FUNCTION' (reserved word). More depressing than having written it 40 years ago, is that I already had 12 years experience.
Both version 3.1.2-5 or 4.0 are available via apt install gnucobol3 or apt install gnucobol4 Are the files pushed to Linuxmint, or do they pull them from sourceforge?
IDENTIFICATION DIVISION. PROGRAM-ID. SEARCH3. *** *** LIST EMPLOYEES *** VERSION 6.0 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. select print-file assign to s-print-file-id. * see spelling error in file name, should be ws-print-file-id DATA DIVISION. FILE SECTION. fd print-file data record is prnt-line 01 prnt-line pic x(132). WORKING-STORAGE SECTION. 01 ws-print-file-id. 02 filler pic x(6) value 'input/'. 02 ws-print-uniq pic x(8). 01 PRNT-OPEN PIC X VALUE 'N'. * ~ When I compiled...
The problem is that the customer is complaining that the record previous to the one to be deleted is actually being deleted. Also, the production version of this program is running under MF version 4.1
The problem is that the customer is complaining that the record previous to the one to be deleted is actually being deleted.
I see what you did to make the code pretty.
The following code has been in an application I did not write, but have been maintaining. My understanding is that data in a FD record is undefined after a write. WRITE-AP-3-RCRD. WRITE AP-3-RCRD INVALID KEY PERFORM READ-AP-LOCK THRU READ-AP-LOCK-EXIT ADD WK-3-AMNT TO AP-3-AMNT REWRITE AP-3-RCRD UNLOCK AP-FILE. IF LK-IO-STAT = '00' NEXT SENTENCE ELSE MOVE 'APWRIT' TO LK-IO-SRCE CALL 'STAT-RTN' USING LK-DATA GO TO WRITE-AP-3-RCRD. IF AP-3-AMNT = ZERO PERFORM READ-AP-LOCK THRU READ-AP-LOCK-EXIT DELETE...
Not quite. I was assuming that the file is not an executable, but a data file. So rather than force the program by using call system using "adobereader file.pdf", calling system using "explore.exe file.pdf" will start whatever program that has been assigned to open pdf files.
I have been experimenting, and it appears that there is no way to override COB_FILE_PATH once it is set. setting file name even with a leading "/" looks for the file $COB_FILE_PATH/filename. I was hoping to be able to set up an application with: /u/application /data /temp /spool I had set COB_FILE_PATH to ./data, but it seems that I should change it to /u/application, and then change the file names within the program to "data/cust" "temp/work" and "spool/printfile".
I use: CALL SYSTEM USING "explore.exe file.ext" This way, the program that is opened is the one associated with the file extension.
Thanks, I have a work around if necessary: accept cob-path from environment COB_FILE_PATH unstring cob-path delimited by ":" into dir1 dir2 .... if file-exist dir1/file move dir1 to my-path else if file-exist dir2/file move dir2 to my-path ... else display 'file not found'
3.1.2.0
Is COB_FILE_PATH limited to a single directory? COB_FILE_PATH=dir1:dir2; export COB_FILE_PATH does not seem to work if the file is in dir2.
It is closed source. We currently pay about a 1000 employees, small in a country with 10 million workers. The new "owners" will get all my notes and code, and an introduction to the current clients.
Looking for someone to take over maintenance of Canadian Payroll package. The current production version is written in MicroFocus Cobol and runs on SCO Openserver as an 80x25 character application. I have a version using the same data files running in test mode in GNUCobol using a web interface (Linux,Apache, PHP). Maintenance generally only requires subscribing to government publications and adjusting code accordingly.
I left out the ending of SHOW-COMMAND. 03 FILLER PIC XX VALUE " " & x"00". Terminates SHOW-COMMAND with a null.
I keep the pdf document in a separate directory broken down into multiple directories in order to keep the number of entries per directory less than 255. Then only the pdf location and file name is kept in the cobol file. One strategy is to file pdfs by year/month. Another assuming the pdf file name represents the invoice number, file by the low order two digits (mod(invoice_number,100) of the invoice number so you will have 100 directories and able to store 25000 invoices without causing poor seek...
If you are on a Linux system, you might consider using the 'time' command. It gives output like: jack@ps:~$ time date Mon 07 Feb 2022 08:29:44 PM EST real 0m0.002s user 0m0.001s sys 0m0.001s jack@ps:~$
Testsuite for 3.2-dev.
I installed gnucobol-4.0-early-dev. Attached is the testsuite.log I had to cancel tests 850,851,1109 and 1110, as they appeared to be hung (ran for minutes).
Linux users generally start a script with #!/bin/sh assuming that it is a link to /bin/bash. This is not true with SCO, as for backwards compatibility, the original Bourne shell sh is shipped along with ksh93 and bash. Once I changed /bin/sh to be /bin/bash, I was able to install gmp-6.2.1, after which I added /usr/local/lib to LD_LIBRARY_PATH and did configure, make and make test for gnucobol. I edited the testsuite.log and just attached the errors, most of which were expected. @Simon, can you send...
Linux users generally start a script with #!/bin/sh assuming that it is a link to /bin/bash. This is not true with SCO, as for backwards compatibility, the original Bourne shell sh is shipped along with ksh93 and bash. Once I changed /bin/sh to be /bin/bash, I was able to install gmp-6.2.1, after which I just did configure, make and make test for gnucobol. I edited the testsuite.log and just attached the errors, most of which were expected. @Simon, can you send me a private email, I lost your email...
Finally. I have attached the errors from 'make check' . What files are necessary to create a downloadable binary package?
make does not create the .libs directory. When I created it myself, and copied the existing .o files to it, they were not changed by make. When I deleted the .o files in .libs, and also deleted the .o files in the distribution, the associated .c files were not compiled.
Unfortunately SCO is 32bit only. Ran with additional ABI=32 on configure, then had to make a .libs directory and copy all existing .o files to it. Then ended with the same problem: .libs/assert.o: file not recognized: File format not recognized collect2: error: ld returned 1 exit status make[2]: [libgmp.la] Error 1 make[2]: Leaving directory /tmp/gmp621.4' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/tmp/gmp621.4' make: [all] Error 2 unix:/tmp/gmp621.4# partial content of assert.o...
Using: ./configure CFLAGS="-m32" LDFLAGS="-m32" I get the following error: .... checking size of unsigned long... 4 checking size of mp_limb_t... 4 configure: error: Oops, mp_limb_t is 32 bits, but the assembler code in this configuration expects 64 bits. You appear to have set $CFLAGS, perhaps you also need to tell GMP the intended ABI, see "ABI and ISA" in the manual. unix:/tmp/gmp621.4# Some days I wish I had learned to compile C programs, other days I am glad I didn't.
More troubles, does GMP 6.2.1 now require a 64bit system?
I made a change to LD_LIBRARY_PATH and ran configure and make again.
No, it is the gnucobol-3.1.2 that I downloaded today. Environment is gcc 7.3.0 on SCO Unix.
Any help with this error, compiler is gcc version 7.3.0
Thanks, that worked. In retrospect it may have been easier to install Gnucobol2-2 from the software manager, and then upgraded to version 3 as the software manager would have handled all the prerequisites.
I installed libcurses-6.2-20210710 and when I re-run configure and make , I get the following error: /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/libncurses.a(lib_addch.o): relocation R_X86_64_PC32 against symbol `TABSIZE' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: bad value collect2: error: ld returned 1 exit status Should I go back to an older version of ncurses?
This line is missing from the new install: extended screen I/O : ncurses, version 6.1.20180127 (CHTYPE=64, WIDE=1) xterm with 256 colors mouse support : yes Thanks, will do more reading.
Compiled with: cobc -x -std=mf p.cbl
I just created a new system using Linuxmint 20.2 and gnucobol 3.2.1 When I compile the following program, it runs but does not display the screen or wait for input. However if I copy the compiled program to my old machine with Linuxmint 19.3 it does run correctly. jack@ps:/tmp$ cat p.cbl IDENTIFICATION DIVISION. PROGRAM-ID. PY01. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 SC-FUNC PIC 99. 01 LK-PYRL PIC XX. 01 LK-PSWD PIC XXX....
bash-4.3# ./configure --prefix=/usr/local --build=x86 --with-curses=curses LIBS="-pthread" This created a Makefile, then attached is the output of make.
Following are all the libraries installed: Berkeley DB 5.3.28 development libs/includes/man for Berkeley DB 5.3.28 for Definitive on unix as package Curl 7.58.0 development libs/includes/man for Expat 2.2.6 development libs/includes/man for Expat 2.2.6 for Definitive on unix as package GDB 8.1 for Definitive on unix as package instance GNU Bin Utilities 2.30 development libs/includes/man GNU Bin Utilities 2.30 for Definitive on unix as GNU Compiler Collection (Xinuos GCC) 7.3.0 for GNU Gettext Package...
Sorry, I wasn't logged in when I posted the above.
Is there a document to explain the options to configure in order to install gnucobol? I have the following error, and am looking for a workaround or solution: Partial config.log checking for curses define_key function... no checking for curses mouseinterval function... no checking for curses has_mouse function... no configure: Checks for Berkeley DB ... checking db.h usability... yes checking db.h presence... yes checking for db.h... yes configure: db.h reports version "-Berkeley DB 5.3.28: (September...
The error 30 condition appears to be an anomaly, as it hasn't happened again. The WAIT option on file i-o causes a compile error if used on a START statement. I have one more problem, that also occurred when I tried this conversion using Opencobol 1.1 in 2012, and that is in screen handling. Under Microfocus, pressing <enter> moves the cursor to the next field until the last field on the screen when the screen is submitted to the program. With GNU, the screen is submitted when <enter> is pressed....
That was my post about Microfocus function keys. Didn't notice that I hadn't logged in. Also, this is with version 3.0
That was my post about Microfocus function keys. Didn't notice that I hadn't logged in.
I worked on Univac 1100's and 90 series from 1970 to 1990. Changing anything on stuff that old is only going to damage your resume. The constraints that programmers had, meant half the effort was used to program around the hardware limitations rather han the application itself. I remember meetings about the relative merits of storing a date as yyddd as pic 9(5) comp-3 (3 bytes) or yymmdd pic 9(6) comp-3 (4 bytes).
[quote]It would be good to check if the SIGSEGV still occurs with GnuCOBOL 3.0RC1. @Jack: Can you check this please?[/quote] Version 3 compiled all cleanly.
I don't believe that the problem has anything to do with the program. I can compile the program without error if I compile only the one program. I was lazy and tried 'cobc PY??.cbl' and it fails on the 15th out of 24 programs.
Now that I have copied all the needed files to a separate directory and slightly modified the program to remove some sensitive data, it seems to compile ok. Cobol 2.2, Build Feb 5 2018 gcc version 4_3 build 152973
Now that I have copied all the needed files to a separate directory and slightly modified the program to remove some sensitive data, it seems to compile ok.
Think I found the problem. "NOTHING" is a reserved word in GNUCOBOL, but apparently not in Micro Focus version 4.1
Got this message compiling a program. [code] PY23.cbl: 210: error: syntax error, unexpected NOTHING attempt to reference unallocated memory (signal (SIGSEGV) cobc: aborting compile of PY23.cbl at line 257 (PROGRAM-ID: PY23) cobc: Please report this! [/code] Let me know if you want a copy of PY23.cbl
Everything that is old is new again. In 1978 I was writing transaction programs on a Univac 9030. That system used screen files that are similar to html forms. When the screen is submitted only the data and the name of the program to execute is returned to the system, and only the new screen name and its data is sent back to the screen. What connected all this together was a file called the "continuity data area" which stored all the working storage items that needed to be saved between(cobol) invocations,...
I switched from Xplornet satelite to Grey Bruce (gbtel.ca) in Dec. It is still wireless but unlimited GB's for 60/month including static ip, and their new tower is only 1000 ft. We live too far from Chatsworth to get DSL
I switched from Xplornet satelite to Grey Bruce (gbtel.ca) in Dec. It is still wireless but unlimited GB's for 60/month including static ip, and their new tower is only 1000 ft.