@@ -15253,49 +15253,79 @@ AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [1.2345E-5 1.2345E-5], [])
15253
15253
AT_CLEANUP
15254
15254
15255
15255
15256
- AT_SETUP([display all characters of COMP-X])
15257
- # AT_KEYWORDS([display comp-x ])
15256
+ AT_SETUP([PICTURE COMP-X])
15257
+ AT_KEYWORDS([Numeric ])
15258
15258
15259
15259
AT_DATA([prog.cob], [
15260
15260
IDENTIFICATION DIVISION.
15261
15261
PROGRAM-ID. prog.
15262
-
15263
- DATA DIVISION.
15262
+ DATA DIVISION.
15264
15263
WORKING-STORAGE SECTION.
15265
-
15266
- 01 W-X PIC X COMP-X VALUE 99.
15267
- 01 W-Y PIC X COMP-X VALUE 128.
15268
- 01 W-Z PIC X VALUE "z".
15269
- 01 W-ZR REDEFINES W-Z PIC X COMP-X.
15270
- 01 W-A PIC XX COMP-X VALUE 256.
15271
- 01 W-B PIC XX COMP-X VALUE 64046.
15264
+ 01 TST.
15265
+ 05 BVAL PIC 9999 BINARY VALUE 512.
15266
+ 05 XVAL PIC XX COMP-X VALUE 512.
15267
+ 88 XLOW VALUE 0 THRU 256.
15268
+ 88 XHIGH VALUE 257 THRU 65536.
15269
+ 05 VAL9 PIC 99999 COMP-X VALUE 1024.
15270
+ 88 LOW9 VALUE 0 THRU 256.
15271
+ 88 HIGH9 VALUE 257 THRU 65536.
15272
+ 05 XVAL2 PIC XX COMP-X VALUE 16706.
15273
+ 05 XVALX REDEFINES XVAL2 PIC XX.
15274
+ 05 YVALX PIC XX VALUE 'A '.
15275
+ 05 YVAL2 REDEFINES YVALX PIC XX COMP-X.
15272
15276
15273
15277
PROCEDURE DIVISION.
15274
- MAIN.
15275
- DISPLAY FUNCTION BYTE-LENGTH (W-X).
15276
- DISPLAY FUNCTION BYTE-LENGTH (W-Y).
15277
- DISPLAY FUNCTION BYTE-LENGTH (W-ZR).
15278
- DISPLAY FUNCTION BYTE-LENGTH (W-A).
15279
- DISPLAY FUNCTION BYTE-LENGTH (W-B).
15280
- DISPLAY W-X.
15281
- DISPLAY W-Y.
15282
- DISPLAY W-ZR.
15283
- DISPLAY W-A.
15284
- DISPLAY W-B.
15278
+ DISPLAY " XVAL is " XVAL "; Length is " LENGTH OF XVAL.
15279
+ DISPLAY " VAL9 is " VAL9 "; Length is " LENGTH OF VAL9.
15280
+ MOVE 10240 TO XVAL.
15281
+ DISPLAY " XVAL is " XVAL "; Length is " LENGTH OF XVAL.
15282
+ DISPLAY "XVAL2 is " XVAL2 "; Length is " LENGTH OF XVAL2.
15283
+ DISPLAY "XVALX is " XVALX "; Length is " LENGTH OF XVALX.
15284
+ ADD 1 TO XVAL2.
15285
+ DISPLAY "XVALX is " XVALX " after +1;".
15286
+ COMPUTE XVAL2 = XVAL2 / 256 + 8192.
15287
+ DISPLAY "XVALX is " XVALX " after / 256 + 8192;".
15288
+ MOVE 'DE' TO XVALX.
15289
+ DISPLAY "Numeric: " XVAL2 " is char " XVALX.
15290
+ MOVE ZERO TO YVAL2.
15291
+ MOVE 'D' TO YVALX (1:1)
15292
+ MOVE LOW-VALUES TO YVALX (2:1)
15293
+ SUBTRACT YVAL2 FROM XVAL2.
15294
+ MOVE ' ' TO YVALX (1:1)
15295
+ MOVE LOW-VALUES TO YVALX (2:1)
15296
+ ADD YVAL2 TO XVAL2.
15297
+ DISPLAY "Numeric: " XVAL2 " is char " XVALX.
15298
+ MOVE 0 TO XVAL.
15299
+ ADD 10240 TO XVAL.
15300
+ IF XVAL = 10240
15301
+ DISPLAY "XVAL is " XVAL
15302
+ ELSE
15303
+ DISPLAY "XVAL is not 10240 but " XVAL
15304
+ END-IF.
15305
+ MOVE 0 TO BVAL.
15306
+ ADD 10240 TO BVAL.
15307
+ IF BVAL = 0240
15308
+ DISPLAY "BVAL is " BVAL
15309
+ ELSE
15310
+ DISPLAY "BVAL is not 0240 but " BVAL
15311
+ END-IF.
15285
15312
STOP RUN.
15286
15313
])
15287
15314
15288
- AT_CHECK([$COMPILE prog.cob])
15289
- AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [1
15290
- 1
15291
- 1
15292
- 2
15293
- 2
15294
- 099
15295
- 128
15296
- 122
15297
- 00256
15298
- 64046
15315
+ AT_CHECK([$COMPILE prog.cob], [0], [], [])
15316
+
15317
+ AT_CHECK([./prog], [0], [ XVAL is 00512; Length is 2
15318
+ VAL9 is 01024; Length is 3
15319
+ XVAL is 10240; Length is 2
15320
+ XVAL2 is 16706; Length is 2
15321
+ XVALX is AB; Length is 2
15322
+ XVALX is AC after +1;
15323
+ XVALX is A after / 256 + 8192;
15324
+ Numeric: 17477 is char DE
15325
+ Numeric: 08261 is char E
15326
+ XVAL is 10240
15327
+ BVAL is 0240
15299
15328
], [])
15300
15329
15301
15330
AT_CLEANUP
15331
+
0 commit comments