6 lines
1.6 KiB
HTML
6 lines
1.6 KiB
HTML
<!doctype html><html lang="en"><meta charset="utf-8"><title>A language feature worth understanding</title><h1>A language feature worth understanding</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Use the language note below to explain this example’s state changes. Identify what is copied, what is shared, what can fail, and what is released. Only some of those questions apply to this particular program: say which ones. Make one deliberate change, predict the effect, and compare it with the actual result. A familiar-looking operator in another language may obey a different rule.</p><p>Line numbers describe program order. <code>GOSUB</code> visits a subroutine and <code>RETURN</code> resumes the caller. <code>SYSTEM</code> exits this interpreter. BASIC dialects differ: a 6502 or Z80 computer does not automatically run this exact dialect.</p><p>The MOD expression deliberately models an unsigned 8-bit wrap: 255 + 1 becomes 0 modulo 256. It does not change the BASIC interpreter’s numeric representation or emulate a 6502 CPU.</p><pre><code class="language-basic">10 REM An 8-bit unsigned wrap is modeled explicitly
|
||
20 LET VALUE=255
|
||
30 LET WRAPPED=(VALUE+1) MOD 256
|
||
40 PRINT WRAPPED
|
||
50 SYSTEM
|
||
</code></pre><p><strong>Expected result:</strong> <code>0</code></p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://packages.ubuntu.com/noble/bwbasic">Language reference</a></p></html> |