home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* DCTURJOY.PAS *)
- (* Maschinen-/Compilerabhaengiger Teil des didaktischen Computers *)
- (* Version: Turbo Pascal & CP/M *)
- (* Die Prozeduren "RevOn", "RevOff", "CrsOn" und "CrsOff" koennen bei an- *)
- (* deren Rechnern z.B. durch die entspr. Escape-Sequenzen realisiert wer- *)
- (* den. Gleiches gilt fuer "GotoXY", z.B. ATARI ST. *)
- (* Hier die Realisierung durch VT52-Terminal-Steuersequenzen: *)
- PROCEDURE GotoXY(x,y: INTEGER);
- BEGIN Write(esc,'Y',chr(31+y),chr(31+x)); end;
-
- PROCEDURE ClrScr;
- BEGIN Write(esc,'E'); END;
-
- PROCEDURE RevOn; (* reverse (inverse) Textdarstellung an *)
- BEGIN write(esc,'p'); END;
-
- PROCEDURE RevOff; (* reverse (inverse) Textdarsetllung aus *)
- BEGIN write(esc,'q'); END;
-
- PROCEDURE CrsOn; (* Cursor einschalten *)
- BEGIN write(esc,'e'); END;
-
- PROCEDURE CrsOff; (* Cursor ausschalten *)
- BEGIN write(esc,'f'); END;
-
- PROCEDURE Bell; (* einen Piepser ertoenen lassen *)
- BEGIN Write(Chr(7)); END;
-
- PROCEDURE Exit_DC; (* alles wieder beim alten, wenn Programm beendet wird *)
- BEGIN ClrScr; GotoXY(1,1); RevOff; CrsOn; END;
-
- FUNCTION ReadKeyboard: CHAR; (* von der Tastatur ohne Bildschirmecho lesen *)
- VAR ch: CHAR;
- BEGIN Read(Kbd, ch); ReadKeyboard := ch; END;
-
- FUNCTION KeyEntered: BOOLEAN; (* wurde eine Taste gedrueckt ? *)
- BEGIN KeyEntered := KeyPressed; END;
-
- (* eine Datei zum Lesen oeffnen. Die I/O-Ueberwachung durch das Laufzeit- *)
- (* system wird dazu kurzzeitig deaktiviert (I- bzw. I+). Konnte die Datei *)
- (* geoeffnet werden, ist "Open_File" = TRUE, sonst FALSE. *)
- FUNCTION Open_File (filename: lines): BOOLEAN;
- BEGIN
- Assign(inp_file, filename);
- (*$I-*) ReSet(inp_file); (*$I+*)
- Open_File := (IOResult = null);
- END;
-
- PROCEDURE Init_Sys;
- begin (* Grafiksymbole, einfache Linien: *)
- ve := chr(149); he := chr(154); (* senkrechter, waagerechter Strich *)
- ce := chr(159); (* Kreuz *)
- dle := chr(153); dre := chr(147); (* rechte untere, linke untere Ecke *)
- ule := chr(156); ure := chr(150); (* rechte obere, linke obere Ecke *)
- uhe := chr(155); (* T-Stueck, kopfstehend, nach oben *)
- dhe := chr(158); (* T-Stueck, normal, nach unten *)
- rve := chr(151); lve := chr(157); (* T-Stueck: nach rechts,nach links *)
- (* Grafiksymbole, doppelte Linien: *)
- vd := chr(133); (* senkrechte, doppelte Linie *)
- bar := chr(149); sl := chr(133); (* senkr. Strich: einfach, doppelt *)
- u_arrow := '^'; d_arrow := esc+chr(9); (* Pfeil nach oben, nach unten *)
- led_on := chr(188); led_off := chr(187); (* voller Kreis, leerer Kreis *)
- time := 1000;
- END;
- (* ----------------------------------------------------------------------- *)
- (* DCTURJOY.PAS *)
-