linux-l: Free Pascal Compiler

Mario Thaten trinity at vossnet.de
Fr Apr 23 08:33:31 CEST 1999


Wolfgang Metze wrote:
> Ja Moment, New ist in Standard Pascal eine Prozedur und keine Funktion (dies ist
> bei Borland auch erst durch die erweiterte Syntax möglich).
> Der Code muß also folgendermaßen lauten:
> 
> IF zkopf=NIL THEN
>   New(zaktuell)
> ELSE
>   new(zaktuell^.next)
> 
> Wenn ich dies so sehe, habe ich aber meine Bedenken, das diese Befehlsfolge frei
> von logischen Fehlern ist. Was willst Du an dieser Stelle eigentlich machen?

Hallo Wolfgang,
ja, das wars!

Vielen Dank an die vielen Antwortenden, dieses Problem ist gelöst.
Leider habe ich gleich noch eins. Zur transparenten Eingabeabfrage habe
ich unter
Borland Pascal folgende Prozedur geschrieben:

uses crt,dos;
var extended_code:byte;

{Transparente Eingabeabfrage}
function BIOSReadkey(var extended:byte):byte;
         var regs:registers;
         label raus;
         begin
         repeat
         regs.ah:=$11;
         intr($16,regs); {nachschauen ob eine Taste gedrückt wurde}
         if (regs.flags and 64)=64 then goto raus; {wenn nicht, dann
raus}
         regs.ah:=$10; {ansonsten abholen}
         intr($16,regs);
         extended:=regs.ah;
         BIOSReadkey:=regs.al;
         gotoxy(1,25); write('Ascii: ',regs.al,' Biosflag: ',regs.ah);
         raus:
	 until regs.al=13; {Warten auf Return}

begin
BIOSReadkey(extended_code);
end.

Das funktioniert unter Dos hervorragend. Nun dachte ich, daß bis $1A die
Register bei Linux dieselben wie bei Dos sind. Aber offensichtlich habe
ich mich geirrt, denn er gibt mir nach dem Programmstart dauerhaft
"regs.al=0; regs.ah=16" aus, obwohl keine Taste gedrückt wurde und er
dort gar nicht ankommen dürfte. Ebensowenig reagiert er aber, wenn ich
nun wirklich mal eine Taste drücke.
Könnt Ihr mir da bitte nochmal helfen?

Danke, Mario
-- 
  .~.    
  /V\    Mario Thaten
 // \\   trinity at vossnet.de
/(   )\  Linux 2.2.3
 ^ ~ ^   "The freedom of choice..."

Mathematische Begründung von Murphys Gesetz:
	1) In der EDV gilt unverrückbar der Satz 1+1=2.
	2) Beim Einsatz eines Pentium-Prozessors gilt 1+1=2.00000094274679643.
	3) In allen anderen Fällen ist "=" ein Symbol mit der 
	   Bedeutung "selten, wenn überhaupt"



Mehr Informationen über die Mailingliste linux-l