mikrocontroller.net

Forum: Compiler & IDEs Turbo Pascal CRT-Bug?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von WIRO (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nur für Freunde alter (Programmier-) Sprachen:
Bei der Korrektur eines Uraltprogrammes in Turbo Pascal 6.0 ist mir ein 
kurioses Problem begegnet.
Der Quellcode:
uses
  crt;
begin
  textcolor(black);      {wichtig: black}
  textbackground(black); {wichtig: black}
  clrscr;
  textbackground(cyan);
  window(10,5,41,5);     {wichtig: Differenz 31 zwischen x1 und x2}
  clrscr;
  end.
Das zweite clrscr löscht einen zu großen Bereich bis eine Zeile tiefer 
(bis x1-1,y1+1).
Vielleicht ist das seit Jahrzehnten bekannt (Fehler in CRT???).
Ich bin auf die Kommentare gespannt.

Gruß,
WIRO

von Clemens L. (c_l)


Bewertung
0 lesenswert
nicht lesenswert
IIRC war der Quellcode der Crt-Unit kostenpflichtig, und erst bei BP7 
dabei. (Und in Assembler.)

WIRO schrieb:
> Ich bin auf die Kommentare gespannt.

Nicht "Lösungsvorschläge"? (Ich hätte auch keine, die über "FreePascal" 
oder "mach's selbst" hinausgehen.)

von Paul P. (kater_karlo)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde direkt hier mal nachfragen.
Ich wette Du bekommst in diesem extrem freundlichen Forum bis heute 
Mittag die Auflösung.
https://forum.lazarus.freepascal.org/index.php/board,61.0.html

Ich mag Pascal:-) und die Hilfsbereitschaft der Community


Anbei der Screenshot aus Lazarus PAscal

oder hier
https://onlinegdb.com/ryEe8_zhB

: Bearbeitet durch User
von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Die CRT hat definitiv einen Bug. Die hatte eine 
Rechnergeschwindigkeitsmessung vor Start durchgeführt. Irgendwann waren 
die Rechner zu schnell und due vorgesehene Variable konnte den 
Zahlenwert nicht mehr aufnehmen und überschrueb andere Variable.

Irgendwo muß ich nich eine gepatschte CRT haben. Hm, die Programme die 
du damit erstellst laufen nur nich in der DOS Bix. Warum bremst du diese 
nicht ein... oder verwendedt FreePascal?

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nimm Delphi.

In der neusten Version gibt es eine Community Edition. Kostet nix.

Jürgen

von WIRO (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
@Paul P.:
Sehr interessant - kannte ich noch nicht, danke!

@Ralph S.:
Ich verwende schon eine korrigierte CRT ohne "Geschwindigkeitsproblem" 
und mit Unterstützung F11+F12.

@Alle:
Andere Pascaldialekte oder Delphi erfordern bei meinem Altprojekt (weit 
über 25k Zeilen) leider zu viele Anpassungen. So lang ist das Leben 
nicht.
Eine minimale Codeänderung hat im speziellen Fall das Problem gelöst.

Danke!

Gruß,
WIRO

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.