Create an object at a given address: Difference between revisions

→‎{{header|COBOL}}: record restructure for simplicity
m (syntax highlighting fixup automation)
imported>Acediast
(→‎{{header|COBOL}}: record restructure for simplicity)
Line 360:
 
=={{header|COBOL}}==
{{works with|COBOL| 2002}}
{{trans|PicoLisp}}
<syntaxhighlight lang="cobolcobolfree"> IDENTIFICATION DIVISION.
{{works with|COBOL|2002}}
PROGRAM-ID. object-address-test.
{{works with|OpenCOBOL|1.1}}
DATA DIVISION.
<syntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
LOCAL-STORAGE SECTION.
PROGRAM-ID. object-address-test.
77 int-space PICTURE IS 9(5) VALUE IS 12345.
DATA DIVISION.
77 addr PICTURE 05 val PICTUREIS 9(5) BASED VALUE IS ZERO.
LOCAL-STORAGE SECTION.
77 point 01 int-space USAGE IS POINTER.
PROCEDURE DIVISION.
05 val PICTURE 9(5) VALUE 12345.
DISPLAY "Value of integer object : " int-space
01 addr BASED.
SET point TO ADDRESS OF int-space
05 val PICTURE 9(5) VALUE ZERO.
DISPLAY "Machine address of object : " point
01 point USAGE POINTER.
SET ADDRESS OF PROCEDUREaddr DIVISION.TO point
DISPLAY "Value of referent object : " addr
DISPLAY val OF int-space END-DISPLAY
MOVE SET point65535 TO ADDRESS OF int-space
DISPLAY "New value of original : " addr
DISPLAY point END-DISPLAY
DISPLAY "New value of reference SET ADDRESS OF addr: TO" pointint-space
GOBACK.
DISPLAY val OF addr END-DISPLAY
END PROGRAM object-address-test.</syntaxhighlight>
MOVE 65535 TO val OF addr
DISPLAY val OF addr END-DISPLAY
DISPLAY val OF int-space END-DISPLAY
STOP RUN.
END PROGRAM object-address-test.
</syntaxhighlight>
 
Output:
<pre>
Value of integer object : 12345
12345
Machine address of object : 0x0000563e11e77fd0
3215227472
Value of referent object : 12345
12345
New value of original : 65535
65535
New value of reference : 65535
65535
</pre>
 
=={{header|Commodore BASIC}}==
The <code>PEEK</code> and <code>POKE</code> commands allow the [[Commodore BASIC]] user to perform limited [[6502 Assembly]] operations.
Anonymous user