| 12345678910111213141516171819202122232425262728293031323334 |
- program t69_crt;
- { t69 -- the CRT identifiers, first two real ones. CALC.INC:32-46 is
- ClrScr;
- GotoXY(1,9);
- ...
- GotoXY(40,12);
- There is no unit system, so these are builtins. ClrScr and GotoXY emit real
- INT 10h code (clear the window and home the cursor; set the cursor from a
- 1-based x,y). LowVideo/NormVideo/ClrEol/Delay are registered but REFUSED
- with ENoLib - loud, not a silent no-op (CALC-COMPILE.md Stage 14: a compiling
- CALC needs them to resolve, a running one needs them right, which is a later
- question; emitting nothing would be the §7 bug).
- COMPILE AND EXECUTE. The BIOS calls produce no console bytes, so under qemu
- the printed `crt' is exactly what the .out asserts; and Exec86 now provides
- INT 10h with a cursor and no display model, so the SAME image runs there and
- must agree byte for byte. That is the second oracle's job: if the INT 10h
- no-op ever grows a side effect, or the emitted sequence breaks, one of the
- two disagrees. }
- begin
- ClrScr;
- GotoXY (1, 1);
- GotoXY (40, 12);
- ClrEol;
- NormVideo;
- LowVideo;
- NormVideo;
- Delay (1);
- writeln ('crt')
- end.
|