home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 12 / dc / dcturjoy.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-09-21  |  3.3 KB  |  68 lines

  1. (* ----------------------------------------------------------------------- *)
  2. (*                               DCTURJOY.PAS                              *)
  3. (*     Maschinen-/Compilerabhaengiger Teil des didaktischen Computers      *)
  4. (*                     Version: Turbo Pascal & CP/M                        *)
  5. (* Die Prozeduren "RevOn", "RevOff", "CrsOn" und "CrsOff" koennen bei an-  *)
  6. (* deren Rechnern z.B. durch die entspr. Escape-Sequenzen realisiert wer-  *)
  7. (* den. Gleiches gilt fuer "GotoXY", z.B. ATARI ST.                        *)
  8. (* Hier die Realisierung durch VT52-Terminal-Steuersequenzen:              *)
  9. PROCEDURE GotoXY(x,y: INTEGER);
  10. BEGIN  Write(esc,'Y',chr(31+y),chr(31+x));  end;
  11.  
  12. PROCEDURE ClrScr;
  13. BEGIN  Write(esc,'E');  END;
  14.  
  15. PROCEDURE RevOn;                   (* reverse (inverse) Textdarstellung an *)
  16. BEGIN  write(esc,'p');  END;
  17.  
  18. PROCEDURE RevOff;                 (* reverse (inverse) Textdarsetllung aus *)
  19. BEGIN  write(esc,'q');  END;
  20.  
  21. PROCEDURE CrsOn;                                     (* Cursor einschalten *)
  22. BEGIN  write(esc,'e');  END;
  23.  
  24. PROCEDURE CrsOff;                                    (* Cursor ausschalten *)
  25. BEGIN  write(esc,'f');  END;
  26.  
  27. PROCEDURE Bell;                           (* einen Piepser ertoenen lassen *)
  28. BEGIN  Write(Chr(7));  END;
  29.  
  30. PROCEDURE Exit_DC;  (* alles wieder beim alten, wenn Programm beendet wird *)
  31. BEGIN  ClrScr;  GotoXY(1,1);  RevOff;  CrsOn;  END;
  32.  
  33. FUNCTION ReadKeyboard: CHAR; (* von der Tastatur ohne Bildschirmecho lesen *)
  34. VAR  ch: CHAR;
  35. BEGIN  Read(Kbd, ch);  ReadKeyboard := ch;  END;
  36.  
  37. FUNCTION KeyEntered: BOOLEAN;              (* wurde eine Taste gedrueckt ? *)
  38. BEGIN  KeyEntered := KeyPressed;  END;
  39.  
  40. (* eine Datei zum Lesen oeffnen. Die I/O-Ueberwachung durch das Laufzeit-  *)
  41. (* system wird dazu kurzzeitig deaktiviert (I- bzw. I+). Konnte die Datei  *)
  42. (* geoeffnet werden, ist "Open_File" = TRUE, sonst FALSE.                  *)
  43. FUNCTION Open_File (filename: lines): BOOLEAN;
  44. BEGIN
  45.   Assign(inp_file, filename);
  46.   (*$I-*)  ReSet(inp_file);  (*$I+*)
  47.   Open_File := (IOResult = null);
  48. END;
  49.  
  50. PROCEDURE Init_Sys;
  51. begin                                   (* Grafiksymbole, einfache Linien: *)
  52.   ve := chr(149);   he := chr(154);    (* senkrechter, waagerechter Strich *)
  53.   ce := chr(159);                                                 (* Kreuz *)
  54.   dle := chr(153);  dre := chr(147);   (* rechte untere, linke untere Ecke *)
  55.   ule := chr(156);  ure := chr(150);   (* rechte obere, linke obere Ecke   *)
  56.   uhe := chr(155);                     (* T-Stueck, kopfstehend, nach oben *)
  57.   dhe := chr(158);                     (* T-Stueck, normal, nach unten     *)
  58.   rve := chr(151);  lve := chr(157);   (* T-Stueck: nach rechts,nach links *)
  59.                                         (* Grafiksymbole, doppelte Linien: *)
  60.   vd := chr(133);                         (* senkrechte, doppelte Linie    *)
  61.   bar := chr(149);  sl := chr(133);     (* senkr. Strich: einfach, doppelt *)
  62.   u_arrow := '^';   d_arrow := esc+chr(9);  (* Pfeil nach oben, nach unten *)
  63.   led_on := chr(188);  led_off := chr(187);  (* voller Kreis, leerer Kreis *)
  64.   time := 1000;
  65. END;
  66. (* ----------------------------------------------------------------------- *)
  67. (*                               DCTURJOY.PAS                              *)
  68.