Prev: I need a new compiler...
Next: COBOL versions Mainframe
From: William M. Klein on 16 Dec 2008 20:39 Following is another test program that I want to know if it passes on all systems or if/when it fails. This program may NOT get a clean compile with all compilers. The '02 Standard lets you do an IF NUMERIC test on PACKED=DECIMAL data items, but this was not allowed by the '85 Standard. I think that many (possibly most) compilers DID allow it, but some tests might get compile time errors (or at least warnings). After this, I may try one more test with binary data-items. Please just let me know if this passes. Only if it fails do I need/want to see the results. Thanks to all in advance. *** Identification Division. Program-ID. OVERLAP3. Data Division. Working-Storage Section. 01 Group1. 05 Num1 Pic S9(05) Packed-Decimal. 05 Num1-Dec redefines Num1 Pic S99V999 Packed-Decimal. 05 Pic X(01). 01 Group2 redefines Group1. 05 Num3 Pic S9(01) Sign is Leading. 05 Num3-Dec Redefines Num3 Pic SV9 Sign is Leading. 05 Num2 Pic S9(03) Packed-Decimal. 05 Num2-Dec Redefines Num2 Pic SVpp9(03) Packed-Decimal. 05 Pic X(01). 01 Temp. 05 NE Pic +9(01).9(05). Procedure Division. Mainline. Perform Add-Test Perform Subtract-Test Perform Multiply-Test Perform Divide-Test-1 Perform Divide-Test-2 Stop Run . Add-Test. Display " --> Start ADD test" Move Zero to Num2 Move +123 to Num1 Evaluate Num1 Numeric Also Num2 Numeric When False also False Display "Neither Numeric" When False also True Display "Num1 not numeric" When True also False Display "Num2 not numeric" When Other Add Num1 to Num2 On Size Error Display "Size Error" End-ADD If Num2 Numeric If Num2 = +246 Display "ADD Test passed, Num2=" Num2 Else Display "ADD Test Failed, Num2=" Num2 End-If Else Display "ADD Test Failed, Num2=" Group2 (2:) End-IF End-Evaluate Display " --> End ADD test" . Subtract-Test. Display " --> Start Subtract test" Move zero to Num2 Move -23456 to Num1 Evaluate Num1 Numeric Also Num2 Numeric When False also False Display "Neither Numeric" When False also True Display "Num1 not numeric" When True also False Display "Num2 not numeric" When Other Subtract Num2 from Num1 On Size Error Display "Size Error" End-Subtract If Num2 Numeric If Num1 = -23000 Display "SUBTRACT Test passed, Num2=" Num1 Else Display "SUBTRACT Test Failed, Num2=" Num1 End-If Else Display "SUBTRACT Test Failed, Num2=" Group2 (2:) End-IF End-Evaluate Display " --> End Subtract test" . Multiply-Test. Display " --> Start Multiply test" Move zero to Num2 Move +21 to Num1 Evaluate Num1 Numeric Also Num2 Numeric When False also False Display "Neither Numeric" When False also True Display "Num1 not numeric" When True also False Display "Num2 not numeric" When Other Multiply Num1 by Num2 On Size Error Display "Size Error" End-Multiply If Num2 Numeric If Num2 = +441 Display "MULTIPLY Test passed, Num2=" Num2 Else Display "MULTIPLY Test Failed, Num2=" Num2 End-If Else Display "MULTIPLY Test Failed, Num2=" Group2 (2:) End-IF End-Evaluate Display " --> End MULTIPLY test" . Divide-Test-1. Display " --> Start DIVIDE test 1" Move zero to Num2 Move -45678 to Num1 Evaluate Num1 Numeric Also Num2 Numeric When False also False Display "Neither Numeric" When False also True Display "Num1 not numeric" When True also False Display "Num2 not numeric" When Other Divide Num2 into Num1-Dec On Size Error Display "Size Error" End-DIVIDE If Num1-Dec Numeric If Num1-Dec = +0.067 Move Num1-Dec to NE Display "DIVIDE Test passed, Num1=" NE Else Move Num1-Dec to NE Display "DIVIDE Test Failed, Num1=" NE End-If Else Display "DIVIDE Test Failed, Num1=" Group1 End-IF End-Evaluate Display " --> End DIVIDE test 1" . Divide-Test-2. Display " --> Start DIVIDE test 2" Move zero to Num2 Move -98765 to Num1 Evaluate Num1 Numeric Also Num2 Numeric When False also False Display "Neither Numeric" When False also True Display "Num1 not numeric" When True also False Display "Num2 not numeric" When Other Divide Num1 into Num2 Giving Num2-Dec Remainder Num3-Dec On Size Error Display "Size Error" End-DIVIDE If Num2 Numeric If Num2-Dec = +0.00774 And Num3-Dec = -0.5 Move Num2-Dec to NE Display "DIVIDE Test passed, Num2-Dec=" NE Move Num3-Dec to NE DIsplay " Num3-Dec=" NE Else Move Num2-Dec to NE Display "DIVIDE Test Failed, Num2-N1=" NE Move Num3-Dec to NE Display " Num3-N2=" NE End-If Else Display "DIVIDE Test Failed, Num2=" Group2 (2:) End-IF End-Evaluate Display " --> End DIVIDE test 2" . * * * End of sample source code -- Bill Klein wmklein <at> ix.netcom.com
From: Karl Kiesel on 17 Dec 2008 04:12 "William M. Klein" <wmklein(a)nospam.ix.netcom.com> schrieb im Newsbeitrag news:bLY1l.352867$6p1.52192(a)en-nntp-07.dc1.easynews.com... > Following is another test program that I want to know if it passes on all > systems or if/when it fails. This program may NOT get a clean compile > with all compilers. The '02 Standard lets you do an IF NUMERIC test on > PACKED=DECIMAL data items, but this was not allowed by the '85 Standard. > I think that many (possibly most) compilers DID allow it, but some tests > might get compile time errors (or at least warnings). > > After this, I may try one more test with binary data-items. > > Please just let me know if this passes. Only if it fails do I need/want > to see the results. > > Thanks to all in advance. > All tests passed using Fujitsu Siemens Compiler COBOL2000 V1.4B and operating system BS2000 OSD V8.0 (during compilation 2 warnings for lines 147 and 150: possible truncation of high order digits) Karl Kiesel Fujitsu Siemens Computers, M�nchen
From: Roger While on 17 Dec 2008 14:18 OK on OpenCOBOL development branch. Info below. Roger # cobc -V cobc (OpenCOBOL) 1.1.0 Copyright (C) 2001-2008 Keisuke Nishida / Roger While Built Dec 17 2008 16:13:29 Packaged Dec 16 2008 21:26:36 CET # cobc -x OVERLAP3.cob # ./OVERLAP3 --> Start ADD test ADD Test passed, Num2=+246 --> End ADD test --> Start Subtract test SUBTRACT Test passed, Num2=-23000 --> End Subtract test --> Start Multiply test MULTIPLY Test passed, Num2=+441 --> End MULTIPLY test --> Start DIVIDE test 1 DIVIDE Test passed, Num1=+0.06700 --> End DIVIDE test 1 --> Start DIVIDE test 2 DIVIDE Test passed, Num2-Dec=+0.00774 Num3-Dec=-0.50000 --> End DIVIDE test 2
From: Arnold Trembley on 17 Dec 2008 22:59 Roger While wrote: > OK on OpenCOBOL development branch. > Info below. And also OK on z/OS PP 5655-G53 IBM Enterprise COBOL for z/OS 3.4.1 Invocation parameters: --> Start ADD test ADD Test passed, Num2=246 --> End ADD test --> Start Subtract test SUBTRACT Test passed, Num2=2300} --> End Subtract test --> Start Multiply test MULTIPLY Test passed, Num2=441 --> End MULTIPLY test --> Start DIVIDE test 1 DIVIDE Test passed, Num1=+0.06700 --> End DIVIDE test 1 --> Start DIVIDE test 2 DIVIDE Test passed, Num2-Dec=+0.00774 Num3-Dec=-0.50000 --> End DIVIDE test 2 Options Report for Enclave OVERLAP3 12/17/08 3:41:27 PM Language Environment V01 R08.00 > > Roger > > # cobc -V > cobc (OpenCOBOL) 1.1.0 > Copyright (C) 2001-2008 Keisuke Nishida / Roger While > Built Dec 17 2008 16:13:29 > Packaged Dec 16 2008 21:26:36 CET > > # cobc -x OVERLAP3.cob > # ./OVERLAP3 > > --> Start ADD test > ADD Test passed, Num2=+246 > --> End ADD test > --> Start Subtract test > SUBTRACT Test passed, Num2=-23000 > --> End Subtract test > --> Start Multiply test > MULTIPLY Test passed, Num2=+441 > --> End MULTIPLY test > --> Start DIVIDE test 1 > DIVIDE Test passed, Num1=+0.06700 > --> End DIVIDE test 1 > --> Start DIVIDE test 2 > DIVIDE Test passed, Num2-Dec=+0.00774 > Num3-Dec=-0.50000 > --> End DIVIDE test 2 > > -- http://arnold.trembley.home.att.net/
From: Jeff Campbell on 22 Dec 2008 23:22
William M. Klein wrote: > Following is another test program that I want to know if it passes on all > systems or if/when it fails. This program may NOT get a clean compile with all > compilers. The '02 Standard lets you do an IF NUMERIC test on PACKED=DECIMAL > data items, but this was not allowed by the '85 Standard. I think that many > (possibly most) compilers DID allow it, but some tests might get compile time > errors (or at least warnings). > > After this, I may try one more test with binary data-items. > > Please just let me know if this passes. Only if it fails do I need/want to see > the results. > All 5 passed: OpenVMS (TM) Alpha Operating System, Version V8.3 Compaq COBOL V2.8-1286 Jeff ----== Posted via Pronews.Com - Unlimited-Unrestricted-Secure Usenet News==---- http://www.pronews.com The #1 Newsgroup Service in the World! >100,000 Newsgroups ---= - Total Privacy via Encryption =--- |