In English: A 68000 assembler program, BLANK_EXE, that blanks the QL's screen after about three minutes without a keypress, to keep a static image from burning into the monitor's phosphor; pressing the space bar brings the screen back. The full commented source is listed, and the author offers the ready-to-use program to readers without an assembler.
The article below is in French, as printed in QL_DOC n1 (January 1988).
Voici un programme qui éteint l’écran après un certain temps d’inactivité du clavier. Ceci est fait pour protéger le phosphore du tube-écran de votre moniteur, en effet si une image reste trop longtemps à l’écran, il se peut que celle-çi brûle le phosphore donnant ainsi naissance à une image fantôme.
Pour démarrer, le programme il faut faire EXEC xxxx_BLANK_EXE . Voilà après environ 3 minutes d’inactivité, l’écran s’éteindra par lui-même, et pour retrouver l’écran, appuyez sur barre d’espace. Si vous ne possédez pas d’ASSEMBLER, envoyez-moi un µdrive/disquette plus 1$ et vous recevrez par le retour du courrier le programme BLANK_ASM prêt à être utilisé.
******************************
* BLANK_EXE v 0.5 *
* début AOUT87 *
* par Réal Gagnon *
******************************
MT_PRIOR $B Routine QDOS qui "set" la priorité
KEY_STATE $2808A Système-variable pour le clavier
BRA.S BLANK_INIT
DC.L 4
DC.W $4AFB
DC.W 20
DC.B "BLANK_screen by RG87"
BLANK_INIT MOVEQ #-1,D1 La priorité de cette job
MOVEQ #1,D2 à "1"
MOVEQ #MT_PRIOR,D0
TRAP #1 La trap qui le fait
LEA.L OLD_KEY,A1 Dernière touche pressée
MOVE.W (KEY_STATE),D0 La met dans le buffer
MOVE.W D0,(A1)
BLANK_LOOP MOVE.W OLD_KEY,D0 Dernière touche
MOVE.W KEY_STATE,D1 Touche nouvelle
CMP.W D0,D1 Pareil?
BNE RESET_OLD_KEY Si non, on "update"
LEA.L TEMPS_KEY,A1
ADDQ.L #1,(A1) Si oui, +1
MOVE.L #$250000,D0
CMP.L (TEMPS_KEY),D0 A la limite?
BEQ BLANK_SCR
BRA BLANK_LOOP
RESET_OLD_KEY LEA.L OLD_KEY,A1
MOVE.W D1,(A1) Nouvelle touche->Ancienne touche
LEA.L TEMPS_KEY,A1
MOVEQ.L #0,D0
MOVE.L D0,(A1) Compteur à zéro
BRA BLANK_LOOP On recommence
BLANK_SCR MOVEA.L #98403,A1 Eteint l'écran
MOVEQ.L #2,D0
MOVE.B D0,(A1)
BLANK_SCR_LOOP MOVE.W (KEY_STATE),D0
CMP.W #32,D0
BEQ UNBLANK_SCR
BRA BLANK_SCR_LOOP
UNBLANK_SCR MOVEA.L #98403,A1
MOVEQ.L #0,D0
MOVE.B D0,(A1)
BRA RESET_OLD_KEY
OLD_KEY DC.W 0
TEMPS_KEY DC.L 0
END
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.