home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* DCCPMV52.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 := '|'; he := '-'; (* senkrechter, waagerechter Strich *)
- ce := '+'; (* Kreuz *)
- dle := '+'; dre := '+'; (* rechte untere, linke untere Ecke *)
- ule := '+'; ure := '+'; (* rechte obere, linke obere Ecke *)
- uhe := '+'; (* T-Stueck, kopfstehend, nach oben *)
- dhe := '+'; (* T-Stueck, normal, nach unten *)
- rve := '+'; lve := '+'; (* T-Stueck: nach rechts,nach links *)
- (* Grafiksymbole, doppelte Linien: *)
- vd := '|'; (* senkrechte, doppelte Linie *)
- bar := '|'; sl := '!'; (* senkr. Strich: einfach, doppelt *)
- u_arrow := '^'; d_arrow := 'v'; (* Pfeil nach oben, nach unten *)
- led_on := 'X'; led_off := 'O'; (* voller Kreis, leerer Kreis *)
- time := 1000;
- END;
- (* ----------------------------------------------------------------------- *)
- (* DCCPMV52.PAS *)
-