home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / tutorial / asmlehrg / schnecke.doc < prev   
Text File  |  1993-07-29  |  4KB  |  72 lines

  1. Kurzbeschreibung:
  2.  
  3. Name: Schnecke.asm
  4. Sprache: Assembler MASM 4.0 und 5.0, TASM
  5. Autor: Jürgen Altfeld
  6. Grafikkarte: Jede
  7. Funktion: Verlangsamen und Anhalten von Programmen jeder Art
  8. Besonderheiten: Führt bei manchen Programmen zum Absturz. Ganz wenige
  9.                 Programme stürzen bei der Pausen-Funktion ab.
  10.  
  11.  
  12. Das Programm bremst die Arbeitsgeschwindigkeit eines PC XT/AT oder
  13. kompatiblen. Dabei läßt sich der Grad der Verzögerung jederzeit vom
  14. Anwender einstellen.
  15. Bei praktisch jedem PC der AT-Klasse, aber auch bei den mit 8 MHZ oder
  16. schneller getakteten Maschinen, ergibt sich oft das Problem, daß Programme
  17. einfach zu schnell laufen. Meist tritt dieses Problem bei Spielen auf,
  18. welche für XT's mit 4,77 MHZ und 8088-Prozessor geschrieben wurden. Aber
  19. auch MS-DOS Befehle wie TYPE oder DIR arbeiten so schnell, daß ein
  20. vernünftiges Arbeiten manchmal nicht möglich ist.
  21. Genauso ist die normale Arbeitsgeschwindigkeit eines Computers für Kinder
  22. zu schnell.
  23. Nicht zuletzt lassen sich auch (Action-) Spiele viel besser spielen, wenn
  24. man sie verlangsamt.
  25. Bei manchen Programmen ist es außerdem wünschenswert, nur an bestimmten
  26. Stellen des Programms den Rechner zu bremsen (z. B. bei Echtzeitsimulationen,
  27. komplexen Berechnungen etc.).
  28. All diese Funktionen bietet Schnecke. Nach dem Starten gibt Schnecke eine
  29. eine kurze Meldung aus und bleibt resistent im Arbeitsspeicher. Es belegt
  30. nur ca. 400 Byte und läßt sich durch einen Warm- (CTRL-ALT-DEL) oder
  31. Kaltstart (Aus- und Einschalten) wieder entfernen. Der Grad der Verzögerung
  32. wird durch gleichzeitiges Drücken der ALT-Taste und einer Ziffern-Taste
  33. eingestellt. Die Verzögerungsdauer liegt zwischen minimal (ALT-1) und
  34. rießig (ALT-9). Durch Drücken von ALT-0 (ALT und Null) wird die Verzögerung
  35. wieder ausgeschaltet. Ist die Verzögerung so groß, daß der Rechner nur
  36. noch damit beschäftigt ist, die Verzögerungsschleifen zu durchlaufen, so
  37. wird das momentan laufende Programm unterbrochen (Pause-Funktion, normaler-
  38. weise ALT-9). Durch Anwählen eines anderen Verzögerungswertes (z. B. ALT-4)
  39. oder ausschalten der Verzögerung (ALT-0) wird das unterbrochene Programm
  40. wieder fortgesetzt.
  41.  
  42. Schnecke arbeitet auch in Verbindung mit anderen speicherresistenten
  43. Programmen (z. B. CGA-Emulatoren), sollte jedoch immer als letztes Programm
  44. installiert werden. Dadurch vermeidet man Inkompatiblitäten.
  45. Probleme ergeben sich lediglich bei Programmen, die den Zeitgeberbaustein
  46. 8253 umprogrammieren oder die Interrupts permanent sperren.
  47. Schnecke arbeitet mit ca. 90% aller Public-Domain-Programmen bzw. 60-70%
  48. aller kommerziellen Programme einwandfrei. Bei einigen dieser Programmen
  49. (max. 5-10%) führt die Pausenfunktion jedoch zum Absturz.
  50.  
  51. Nach dem Aufruf von Schnecke biegt es die Interrupt-Vektoren 8 (Systemzeit-
  52. geber = Timer) und 9 (Tastatur) des BIOS auf eigene Routinen um und erklärt
  53. sich selbst als speicherresistent. Bei jedem Tastendruck wird nun geprüft,
  54. ob eine Hotkey-Taste gedrückt wurde. Wenn dies der Fall ist, werden
  55. entsprechende Werte für die Verzögerungsroutine gesetzt (Dauer der
  56. Verzögerung, Verzögerung ein/aus). Die Verzögerungsroutine selbst wird
  57. 18,2 mal pro Sekunde durchlaufen. Sie ruft zuerst die ursprüngliche
  58. Interrupt-Routine des Interrupts 8 auf, dann den Interrupt 1Ch (Timer).
  59. Danach führt sie die Verzögerungsschleife aus, wenn diese aktiviert worden
  60. ist. Die Verzögerungsroutine verwendet den Interrupt 8 anstelle des
  61. Interrupts 1Ch deshalb, weil manche Spiele den Interrupt 1Ch für eigene
  62. Zwecke benötigen und dadurch Schnecke deaktiviert werden könnte.
  63. Sollten Sie sich zu den glücklichen Besitzern eines besonders schnellen
  64. Rechners zählen (40 MHZ 80486 AT???), so können Sie die Dauer der
  65. Verzögerungsschleife zusätzlich erhöhen. Sie finden den Wert im
  66. Assembler-Listing beim Label "GO0". Er beträgt standardmäßig 100.
  67. Bei AT's empfiehlt sich ein Wert zwischen 200 und 800.
  68.  
  69. Bitte vergessen Sie nicht, daß Programm nach dem erfolgreichen Assemblieren
  70. und Linken in eine COM-Datei umzuwandeln, es läuft sonst nicht einwandfrei.
  71. Dies wird übrigens mit dem MS-DOS-Dienstprogramm EXE2BIN durchgeführt.
  72.