;
      ;- Demonstration routines clavier et texte - M.MAIGROT,
      ;
              ORG 40000
      nolist
      ;
              CALL #BC11        ;Determiner mode en cours
              LD (OLDMODE),A     ;Et stocker
      ;
              CALL #BB99        ;Idem pour PAPER
              LD (OLDPAPER),A
      ;
              CALL #BB93        ;Et pour PEN
              LD (OLDPEN),A
      ;
              LD A,1            ;Parametre mode ecran
              CALL #BC0E        ;Fixer Mode 1
      ;
              LD A,2            ;Parametre PAPER
              CALL #BB96        ;Fixer PAPER 2
              CALL #BB6C        ;CLS #0
      ;
              LD A,1
              CALL #BB96        ;PAPER 1
              LD A,3
              CALL #BB90        ;PEN 3
      ;
              LD HL,#0618       ;H=6 , L=24
              CALL #BB75        ;LOCATE
      ;
              LD HL,TEXTE1      ;Adresse du texte a afficher dans HL
              CALL PRT          ;Afficher texte.La routine est a la fin du listing
      ;
              LD H,10           ;Parametre colonne gauche fenetre .
              LD L,5            ;Ligne haute
              LD D,29           ;Colonne droite
              LD E,15           ;Ligne bas
              CALL #BB66        ;Fixer fenetre #0
      ;
              CALL #BB6C        ;Effacer canal 0
      ;
              LD HL,TMENU       ;Afficher le menu dans la fenetre .
              CALL PRT
      ;
      TSTKEY  LD A,7            ;Faire BIP (PRINT CHR$(7))
              CALL #BB5A
      NXTST   CALL #BB06        ;Attendre l'appui sur une touche
              AND #DF           ;Forcer les majuscules pour le test
              CP "Q"
              JP Z,QUITTER      ;'Q' ou 'q' enfonce , quitter programme
      ;
              CP "A"            ;Si caractere plus petit que "A"
              JR C,TSTKEY       ;n'est pas valide , faire BIP et retester
              CP "G"            ;Si caractere plus grand que "F"
              JR NC,TSTKEY      ;n'est pas valide non plus , faire BIP et retester
      ;
              PUSH AF           ;A va etre modifie par ce qui suit
              LD HL,TEXTE2      ;Afficher texte 2
              CALL PRT
              POP AF            ;Recuperer le caractere donne par #BB06
              CALL #BB5A        ;Et l'afficher a la suite de TEXTE2
              JR NXTST          ;Et recommencer le test SANS fiare BIP

      QUITTER LD A,(OLDMODE)    ;Restaurer le mode ecran sauve en entree
              CALL #BC0E
              LD A,(OLDPAPER)   ;Idem pour PAPER
              CALL #BB96
              LD A,(OLDPEN)     ;Idem pour PEN
              CALL #BB90
              RET               ;C'est fini .
      ;
      PRT     LD A,(HL)         ;Mettre dans A le caractere pointe par HL
              OR A              ;Tester si c'est 0
              RET Z             ;Si oui on arrete la sortie des caracteres
              CALL #BB5A        ;Si non on affiche
              INC HL            ;On pointe le caractere suivant
              JR PRT            ;Et on retourne tester
      ;
      OLDMODE  DB 0
      OLDPAPER DB 0
      OLDPEN   DB 0
      ;
      TEXTE1  DB " Demo. routines texte/clavier ",0
      TMENU   DB 31,1,2," [A] = Option 1",10,13
              DB " [B] = Option 2",10,13
              DB " [C] = Option 3",10,13
              DB " [D] = Option 4",10,13
              DB " [E] = Option 5",10,13
              DB " [F] = Option 6",10,13
              DB " [Q] = QUITTER DEMO",0
      ;
      TEXTE2  DB 31,1,10," Selection faite: ",0