t69_crt.pas 1.1 KB

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