APPLICATIONSDIVERS ★ TIMEOUT (CPC AMSTRAD INTERNATIONAL) ★

Timeout (CPC Amstrad International)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Automatisches Abschalten des Bildschirms bei längerer Nichtbenutzung zur Schonung der Bildröhre

Es gibt eine Reihe von Computeranwendungen, bei denen das System stunden- oder auch tagelang läuft. Das dürfte für viele Anwendungen im Bürobereich zutreffen, aber auch etwa für Mailboxen. Falls nun am System zum Beispiel eine Stunde lang nichts gearbeitet wird (Mittagspause!), zeigt der Bildschirm die ganze Zeit dasselbe an. Das kann, vor allem bei größerer Helligkeit zu Schäden führen, weil sich der Elektronenstrahl »einbrennt«. Professionelle Terminals schalten daher nach einigen Minuten Untätigkeit die Bildröhre ab; bei der ersten Aktivität ist sie aber wieder »voll da«.

Das gleiche Verhalten ist nun auch auf den CPCs verfügbar. Die RSX-Befehlsgruppe TIMEOUT sorgt mit folgenden drei Befehlen dafür:

|TIMEOUT,n
|DARK
|NORMAL

|TIMEOUT,n setzt die Wartezeit, nach der der Bildschirm abzudunkeln ist. Der Bildschirm wird automatisch dunkel, sobald seit dem letzten Tastendruck, seit der letzten Bildschirmausgabe, seit dem letzten TIMEOUT- Befehl sowie seit dem letzten NORMAL- Befehl mindestens n Sekunden verstrichen sind. (1 < = n < =65535. 65535 Sekunden = ca. 18 Stunden), n = 0 stellte den Effekt wieder ab.

Der Bildschirm wird wieder hell durch einen Tastendruck, eine Bildschirmausgabe oder einen TIMEOUT- oder NORMAL- Befehl.

|DARK schaltet den Bildschirm dunkel. Über das Hell werden siehe oben. Falls Sie DARK nicht vom Programm ausfiihren lassen, sondern direkt eingeben, so wird der Befehl zwar durchgeführt, die folgende Ausgabe des »Ready« schaltet aber den Bildschirm sofort wieder hell, so daß keine Wirkung zu erkennen ist. Das läßt sich umgehen durch eine Verzögerungsschleife:

|DARK:FOR i=1 TO 5000:NEXT

|NORMAL schaltet den Bildschirm wieder hell. Die Anwendung von DARK und NORMAL ist wohl nur aus einem Programm heraus sinnvoll, etwa zum verdeckten Zeichnen von Graphiken.

Eingabe des Programms

Tippen Sie das Listing ab und SAVEn Sie es ab.

Starten Sie es mit RUN. Der Maschinencode wird geladen und initialisiert. Ab jetzt sind die Befehle verfügbar. Das Programm löscht sich selbst.

Diese Version legt den Maschinencode unmittelbar unter HIMEM ab. Sie können das ändern, indem Sie die Zeilen 110 und 530 umbauen.

Sie können auch den reinen Maschinencode abspeichern, indem Sie eine Zeile

515 PRINT h+1:SAVE "TIMEOUT.BIN" ,B,h+1,552,h+1

einfügen. Das können Sie dann laden mit

LOAD" TIMEOUT.BIN:CALL h+1,h+1

ist der Wert vom SAVE her. Sie müssen ihn aufschreiben.

Unter der »Bildschirmausgabe« ist jede Ausgabe zu verstehen, die über die Firmware-Indirection TXT WRITE CHAR BDD3) geleitet wird. Aus BASIC ist das vor allem das PRINT-Kommando (ausgenommen reine Steuerzeichensequenzen). Graphik befehle zählen in diesem Zusammenhang n i c h t als Bildschirmausgabe. Sie können also »verdeckt« zwar Linien zeichnen, aber keine Texte ausgeben (außer mit TAG; das zählt dann als Graphik).

Der Bildschirm wird abgedunkelt, indem die derzeit gültigen Werte für die 16 Inks und den Border abgefragt und gespeichert werden. Anschließend werden die Inks auf 0 (schwarz) gesetzt.

Entsprechend wird der Bildschirm hell geschaltet, indem die Ink-Werte aus dem Zwischenspeicher geholt und neu gesetzt werden. Auf diese Art wird der Inhalt des Bildschirmspeichers durch die Abdunklung überhaupt nicht verändert. Auch Hardcopyroutinen arbeiten daher korrekt (Ausnahme: wenn eine Hardcopy routine zur Ermittlung der Grautöne auf die geltenden Ink-Werte zugreift, wird sie nur schwarz in schwarz drucken; in diesem Fall sollten Sie vorher |TIMEOUT,0 setzen).

Falls während einer Dunkelperiode INK- oder BORDER-Kommandos gegeben werden (von einem Programm aus), dann werden die neuen Werte einfach in den Zwischenspeicher geschrieben und beim späteren Hellschalten von dort geholt. Das Kommando wirkt also verdeckt.

Bekanntlich kann am CPC jede Ink als blinkend definiert werden. Tatsächlich aber blinken ständig alle Inks. Normalerweise sind aber beide Blinkfarben gleich, so daß das Blinken nicht auffallt. Nun führt aber die Firmware die Änderung einer Ink nicht sofort durch, sondern erst beim nächsten Blinken. Falls Sie daher die Blinkperiode (mit SPEED INK) verlängert haben, kann sich auch das Abdunkeln bzw. Hellschalten des Bildschirms entsprechend verzögern.

Während Kassettenoperationen ist TIMEOUT lahmgelegt, weil dabei der interne Zeitgeber stillsteht.

Für den Assemblerprogrammierer

TIMEOUT arbeitet mit zwei Ereignissen, EVI und EV2 genannt. Ereignisse sind das Maschinencodeäquivalent zu den BASIC-Befehlen EVERY und AFTER.

EVI wird einmal pro Sekunde aufgerufen und zählt einen Zähler herab. Wenn dieser auf Null kommt, wird der Bildschirm verdunkelt, EVI abgestellt und EV2 gestartet.

EV« läuft immer, wenn der Bildschirm dunkel ist. Die Routine wird zehnmal je Sekunde aufgerufen und fragt die SHIFT-und CTRL-Tasten ab, da diese Tasten von den normalen Firmwarefunktionen KM WAIT CH AR etc. nicht erfaßt werden. Falls eine gedrückt ist, wird der Bildschirm hell geschaltet, EV2 abgestellt und EV1 gestartet.

Zur automatischen Aufhellung werden die Firmwareroutinen KM WAIT CH AR (BB06), KM READ CH AR (BB09), KM WAIT KEY (BB18), KM READ KEY (BB1B) sowie IND TXT WRITE CHAR (BDD3) auf Ersatzroutinen umgeleitet. Die Ersatzroutinen führen die Originalroutine der Firmware durch, hellen den Bildschirm auf, stellen EV2 ab und schalten EVI ein.

Wenn bereits bei der Initialisierung von TIMEOUT eine Ersatzroutine für eine dieser fünf Funktionen vorliegt, dann wird statt der Originalroutine diese aufgerufen.

Damit INK- und BORDER-Befehle auch im abgedunkelten Zustand korrekt durchgeführt werden, sind die Firmwareroutinen SCR SET INK (BC32) und SCR SET BORDER (BC38) ebenfalls umgeleitet. Die Ersatzroutine prüft, ob der Bildschirm gerade dunkel oder hell ist, und führt je nach dem Ergebnis die Original-Firmewareroutine aus oder schreibt die neuen INK-Werte in den Zwischenspeicher, der beim Abdunkeln angelegt wurde. Beim (irgendwann folgenden) Aufhellen werden daher automatisch die neuen Werte verwendet.

Die Firmwareroutinen SCR GET INK und SCR GET BORDER sind nicht auf entsprechende Art umgeleitet. Dadurch liefern sie während einer Abdunklung falsche Werte. Die Implementierung ist zwar leicht, kostet aber Speicherplatz und ist meines Erachtens unnötig, weil es derartige Funktionen, etwa eine Farbe=INK(2), in BASIC ohnehin nicht gibt.

Sie dürfen vor der Initialisierung von TIMEOUT keine Ersatzroutinen für diese vier Firmwarefunktionen eingestellt haben. TIMEOUT geht nämlich davon aus, daß diese Routinen im unteren ROM liegen, was bei einem Ersatz nicht der Fall sein wird.

DARK dunkelt den Bildschirm ab und schaltet EV2 ein sowie EV1 aus.

NORMAL hellt den Bildschirm auf und schaltet EV1 ein sowie EV2 aus.

Bei jedem »Einschalten« von EV1 wird zunächst der Zähler auf den Anlaufwert gesetzt (der mit; TIMEOUT,n übergeben wurde). Falls dieser nicht 0 ist, wird EV1 danach eingeschaltet. Wenn er 0 ist, also TIMEOUT abgestellt ist, wird EV1 ausgeschaltet.

(Georg Beran) , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL-SONDERHEFT
★ AUTHOR: Georg BERAN
 



★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Timeout    (CPC  Amstrad  International-Sonderheft  5)    GERMANDATE: 2024-03-04
DL: 157
TYPE: ZIP
SiZE: 5Ko
NOTE: 40 tracks
.DSK: √

» Timeout    (CPC  Amstrad  International-Sonderheft  5)    LISTING    GERMANDATE: 2024-03-03
DL: 192
TYPE: PDF
SiZE: 1491Ko
NOTE: Supplied by archive.org ; 6 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Multiplan - Initiation (Amstrad Magazine)
» Applications » Multiplan
» Applications » Tilgugsplan (CPC Amstrad International)
» Applications » Cash Planer And Forecaster
» Applications » Project Planner (Amsoft)
» Applications » Personal Tax Planner
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 083 millisecondes et consultée 505 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.