--- title: "Blank the Screen" type: "article" slug: "blank-the-screen" url: "http://localhost/article/blank-the-screen/" markdown_url: "http://localhost/article/blank-the-screen.md" published_at: "2026-11-11T11:07:31+00:00" modified_at: "2026-11-11T11:07:31+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "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." post_tag: - name: "68000" slug: "68000" taxonomy: "post_tag" url: "http://localhost/tag/68000/" - name: "French language" slug: "french-language" taxonomy: "post_tag" url: "http://localhost/tag/french-language/" - name: "Machine language programming" slug: "machine-language" taxonomy: "post_tag" url: "http://localhost/tag/machine-language/" - name: "QL" slug: "ql" taxonomy: "post_tag" url: "http://localhost/tag/ql/" - name: "Type-in program" slug: "type-in-program" taxonomy: "post_tag" url: "http://localhost/tag/type-in-program/" model: - name: "Sinclair QL" slug: "sinclair-ql" taxonomy: "model" url: "http://localhost/model/sinclair-ql/" indiv: - name: "Real Gagnon" slug: "real-gagnon" taxonomy: "indiv" url: "http://localhost/indiv/real-gagnon/" publication: "QL_DOC" publication_r: id: 52925 title: "QL_DOC" type: "periodical" url: "http://localhost/periodical/ql_doc/" authors: "Réal Gagnon" issue: "1" issues_articles: - id: 76706 title: "QL_DOC n1" type: "issue" url: "http://localhost/issue/ql_doc-n1/" pages: "1-2" pubdate: "January 1988" archive_link: false volumeissue: "n1" --- # Blank the Screen **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 ```