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

  1. (* ----------------------------------------------------------------------- *)
  2. (*                                DCTURMS.PAS                              *)
  3. (*     Maschinen-/Compilerabhaengiger Teil des didaktischen Computers      *)
  4. (*                     Version: Turbo Pascal & MS-DOS                      *)
  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. VAR Regs: RECORD AX, BX, CX, DX, BP, SI, DI, DS, ES, FL: INTEGER; END;
  9.  
  10. PROCEDURE RevOn;                   (* reverse (inverse) Textdarstellung an *)
  11. BEGIN  TextColor(Black);  TextBackGround(White);  END;
  12.  
  13. PROCEDURE RevOff;                 (* reverse (inverse) Textdarsetllung aus *)
  14. BEGIN  TextColor(White);  TextBackGround(Black);  END;
  15.  
  16. PROCEDURE CrsOn;                                     (* Cursor einschalten *)
  17. BEGIN  Regs.AX := $100;  Regs.CX := 1543;  Intr($10,Regs);  END;
  18.  
  19. PROCEDURE CrsOff;                                    (* Cursor ausschalten *)
  20. BEGIN  Regs.AX := $100;  Regs.CX := 128 SHL 8;  Intr($10,Regs);  END;
  21.  
  22. PROCEDURE Bell;                           (* einen Piepser ertoenen lassen *)
  23. BEGIN  Write(Chr(7));  END;
  24.  
  25. PROCEDURE Exit_DC;  (* alles wieder beim alten, wenn Programm beendet wird *)
  26. BEGIN  ClrScr;  GotoXY(1,1);  RevOff;  CrsOn;  END;
  27.  
  28. FUNCTION ReadKeyboard: CHAR; (* von der Tastatur ohne Bildschirmecho lesen *)
  29. VAR  ch: CHAR;
  30. BEGIN  Read(Kbd, ch);  ReadKeyboard := ch;  END;
  31.  
  32. FUNCTION KeyEntered: BOOLEAN;              (* wurde eine Taste gedrueckt ? *)
  33. BEGIN  KeyEntered := KeyPressed;  END;
  34.  
  35. (* eine Datei zum Lesen oeffnen. Die I/O-Ueberwachung durch das Laufzeit-  *)
  36. (* system wird dazu kurzzeitig deaktiviert (I- bzw. I+). Konnte die Datei  *)
  37. (* geoeffnet werden, ist "Open_File" = TRUE, sonst FALSE.                  *)
  38. FUNCTION Open_File (filename: lines): BOOLEAN;
  39. BEGIN
  40.   Assign(inp_file, filename);  (*$I-*)  ReSet(inp_file);  (*$I+*)
  41.   Open_File := (IOResult = null);
  42. END;
  43.  
  44. PROCEDURE Init_Sys;
  45. (*  hier notfalls die entsprechenden ASCII-Codes Ihres Systems einsetzen:  *)
  46. BEGIN                                   (* Grafiksymbole, einfache Linien: *)
  47.   ve := Chr(179);   he := Chr(196);    (* senkrechter, waagerechter Strich *)
  48.   ce := Chr(197);                                                 (* Kreuz *)
  49.   dle := Chr(217);  dre := Chr(192);   (* rechte untere, linke untere Ecke *)
  50.   ule := Chr(191);  ure := Chr(218);   (* rechte obere, linke obere Ecke   *)
  51.   uhe := Chr(193);  dhe := Chr(194);   (* T-Stueck: nach oben, nach unten  *)
  52.   rve := Chr(195);  lve := Chr(180);   (* T-Stueck: nach rechts,nach links *)
  53.   vd := Chr(186);                      (* senkrechte, doppelte Linie       *)
  54.   bar := Chr(179);  sl := Chr(186);     (* senkr. Strich: einfach, doppelt *)
  55.   u_arrow := Chr(24);  d_arrow := Chr(25);  (* Pfeil nach oben, nach unten *)
  56.   led_on := Chr(2);    led_off := Chr(1);    (* voller Kreis, leerer Kreis *)
  57.   time := 1000;    (* Zeitverzoegerung bei Prog-Ausfuehrung im Delay-Modus *)
  58. END;
  59. (* ----------------------------------------------------------------------- *)
  60. (*                                DCTURMS.PAS                              *)
  61.