···11<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
22 <channel>
33- <title>nerdypepper's μblog</title>
33+ <title>oppiliappan's μblog</title>
44 <link>https://oppi.li</link>
55 <description>programming, design, software</description>
66 <atom:link href="https://oppi.li/index.xml" rel="self" type="application/rss+xml" />
···2121that I had the (dis)pleasure of working with, I saw some wonderful hacks
2222to get around the limitations of the system. Mainframes are also chock
2323full of history.</p>
2424-<h3 id="base-2-numerics">Base-2 numerics</h3>
2424+<h3 id="base-10-numerics">Base-10 numerics</h3>
2525<p>This is the first thing that stood out to me when I looked at COBOL
2626code, a data-definition (the phrase for “variable”) in COBOL is declared
2727like so:</p>
···3535 `- level number </code></pre>
3636<p>That statement declares a variable called <code>HEIGHT</code> with
3737type <code>9(3)</code>, which is shorthand for <code>999</code>, which
3838-indicates “3-digit number”. Similarly <code>A(5)</code> indicates
3939-5-character alphabetic string.</p>
3838+indicates “3-digit number”. The possible values for this variable are
3939+<code>0</code> to <code>999</code>!</p>
4040<h3 id="internationalisation">Internationalisation</h3>
4141<p>Below is another data-definition in COBOL, declaring 3 variables:</p>
4242<pre class="cobol"><code>01 FOO-PERSON.
···8787<pre class="cobol"><code> 01 DATE.
8888 05 DD PIC 9(2).
8989 05 FILLER PIC X.
9090- 05 MM PIC 9(2).
9090+ 05 MMM PIC A(3).
9191 05 FILLER PIC X.
9292 05 YYYY PIC 9(4).
9393···9595 .
9696 .
97979898- MOVE &quot;03/04/2025&quot; TO DATE.
9898+ MOVE &quot;03 MAR 2025&quot; TO DATE.
9999 DISPLAY &quot;DAY: &quot; DD. *&gt; DAY: 03
100100- DISPLAY &quot;MONTH: &quot; MM. *&gt; MONTH: 04
100100+ DISPLAY &quot;MONTH: &quot; MMM. *&gt; MONTH: MAR
101101 DISPLAY &quot;YEAR: &quot; YYYY. *&gt; YEAR: 2025
102102103103 *&gt; also works:
104104- MOVE &quot;03.04.2025&quot; TO DATE.</code></pre>
104104+ MOVE &quot;03-MAR-2025&quot; TO DATE.</code></pre>
105105<h3 id="early-exit">Early exit</h3>
106106<p>I’d see this peppered around in a few places; which I later realized
107107was a way to trigger an abnormal end to a batch job (possibly triggering
···127127 .
128128 .
129129 01 TC0800 X(5) &quot;00800&quot;.</code></pre>
130130+<p>The file was definitely not generated, and I can’t imagine text
131131+editors on the mainframe were all that advanced either.</p>
130132<h3 id="dd---disk-destroyer"><code>dd</code> - disk destroyer</h3>
131133<p>The <code>DD</code> statement in the JCL subsystem stands for “data
132134definition”, which is largely used to describe files and IO streams used
···144146</ol>
145147</section></description>
146148<link>https://oppi.li/posts/tales_from_mainframe_modernization/</link>
147147-<pubDate>Wed, 21 May 2025 21:54:00 +0000</pubDate>
149149+<pubDate>Wed, 21 May 2025 22:17:00 +0000</pubDate>
148150<guid>https://oppi.li/posts/tales_from_mainframe_modernization/</guid>
149151</item>
150152<item>
···2121 <a href="/posts" class="post-end-link">Posts</a>
2222 <span>/</span>
2323 <a class="post-end-link">Tales From Mainframe Modernization</a>
2424- <a class="stats post-end-link" href="https://tangled.sh/@oppi.li/site/raw/master/posts/tales_from_mainframe_modernization.md
2424+ <a class="stats post-end-link" href="https://tangled.sh/@oppi.li/site/raw/main/posts/tales_from_mainframe_modernization.md
2525">View Raw</a>
2626 <div class="separator"></div>
2727 <div class="date">
2828 21/05 — 2025
2929 <div class="stats">
3030 <span class="stats-number">
3131- 64.74
3131+ 65.93
3232 </span>
3333 <span class="stats-unit">cm</span>
3434  
3535 <span class="stats-number">
3636- 3.8
3636+ 3.9
3737 </span>
3838 <span class="stats-unit">min</span>
3939 </div>
···5050that I had the (dis)pleasure of working with, I saw some wonderful hacks
5151to get around the limitations of the system. Mainframes are also chock
5252full of history.</p>
5353-<h3 id="base-2-numerics">Base-2 numerics</h3>
5353+<h3 id="base-10-numerics">Base-10 numerics</h3>
5454<p>This is the first thing that stood out to me when I looked at COBOL
5555code, a data-definition (the phrase for “variable”) in COBOL is declared
5656like so:</p>
···6464 `- level number </code></pre>
6565<p>That statement declares a variable called <code>HEIGHT</code> with
6666type <code>9(3)</code>, which is shorthand for <code>999</code>, which
6767-indicates “3-digit number”. Similarly <code>A(5)</code> indicates
6868-5-character alphabetic string.</p>
6767+indicates “3-digit number”. The possible values for this variable are
6868+<code>0</code> to <code>999</code>!</p>
6969<h3 id="internationalisation">Internationalisation</h3>
7070<p>Below is another data-definition in COBOL, declaring 3 variables:</p>
7171<pre class="cobol"><code>01 FOO-PERSON.
···116116<pre class="cobol"><code> 01 DATE.
117117 05 DD PIC 9(2).
118118 05 FILLER PIC X.
119119- 05 MM PIC 9(2).
119119+ 05 MMM PIC A(3).
120120 05 FILLER PIC X.
121121 05 YYYY PIC 9(4).
122122···124124 .
125125 .
126126127127- MOVE "03/04/2025" TO DATE.
127127+ MOVE "03 MAR 2025" TO DATE.
128128 DISPLAY "DAY: " DD. *> DAY: 03
129129- DISPLAY "MONTH: " MM. *> MONTH: 04
129129+ DISPLAY "MONTH: " MMM. *> MONTH: MAR
130130 DISPLAY "YEAR: " YYYY. *> YEAR: 2025
131131132132 *> also works:
133133- MOVE "03.04.2025" TO DATE.</code></pre>
133133+ MOVE "03-MAR-2025" TO DATE.</code></pre>
134134<h3 id="early-exit">Early exit</h3>
135135<p>I’d see this peppered around in a few places; which I later realized
136136was a way to trigger an abnormal end to a batch job (possibly triggering
···156156 .
157157 .
158158 01 TC0800 X(5) "00800".</code></pre>
159159+<p>The file was definitely not generated, and I can’t imagine text
160160+editors on the mainframe were all that advanced either.</p>
159161<h3 id="dd---disk-destroyer"><code>dd</code> - disk destroyer</h3>
160162<p>The <code>DD</code> statement in the JCL subsystem stands for “data
161163definition”, which is largely used to describe files and IO streams used
···190192 <a href="/posts" class="post-end-link">Posts</a>
191193 <span>/</span>
192194 <a class="post-end-link">Tales From Mainframe Modernization</a>
193193- <a class="stats post-end-link" href="https://tangled.sh/@oppi.li/site/raw/master/posts/tales_from_mainframe_modernization.md
195195+ <a class="stats post-end-link" href="https://tangled.sh/@oppi.li/site/raw/main/posts/tales_from_mainframe_modernization.md
194196">View Raw</a>
195197 </div>
196198 </div>