CODINGCHRONIQUE A100% DE RUBI ★ Rubidouille l'Overscan ★

Rubidouille A100% n°18: L'OverscanCoding Chronique A100% De Rubi
Pour ces fins de vacances qui, comme d'habitude, sont d'une tristesse à mourir à la Matt Murdock dans Double Détente, voici un nouveau souffle apporté par le Rubi masqué à vos petites machines. Pendant plusieurs mois il vous fera partager ses connaissances illimitées dans le monde du CPC. Pour commencer en beauté, nous verrons le fonctionnement de l'Overscan ou comment gonfler vos pages de présentation de 16 Ko à 24 Ko, ce qui représente une image plein écran.

Pour dire deux mots sur le fonctionnement de l'Overscan, il faut vous préciser que la petite bête qui se charge de cet exploit n'est autre que notre vieux CRTC, qui, contrairement à ce que l'on pourrait croire, peut gérer un écran de plus de 16 Ko. A vrai dire, le CRTC peut même, si on le lui demande gentiment, prendre sous son aile deux pages écran, donc 32 Ko. Le seul problème que l'on ne pourra pas résoudre, c'est la taille fixe du moniteur. Car même en éclatant le border à fond les gamelles, on obtiendra un écran d'environ 24 Ko visible. Les registres à influencer sont le 1 et 2 pour le nombre total de caractères affichés (dans le cas de notre programme, 92 octets), et les registres 6 et 7 pour le nombre de lignes (264 lignes). Mais le plus important reste les registres 12 et 13 qui déterminent l'offset de départ, avec en prime la taille de l'écran à gérer (soit 16 Ko ou 32). Les valeurs possibles sont &0C pour commencer votre page à l'adresse 0, &1C pour l'avoir en &4000, &2C pour &8000, enfin &3C pour avoir une page commençant en &C000 et ayant comme dernier octet l'adresse &3FFF. On peut faire un petit réajustement en plaçant une valeur allant de 0 à 255 dans le registre 13, ce qui permettra dans notre programme de commencer notre écran à l'adresse &D0.

OVERSCAN, MODE D'EMPLOI

Trois programmes vous sont proposés. Le premier vous sauvera sur une disquette quatre pages écran. C'est dans ces pages que vous dessinerez votre chef-d'œuvre. Le deuxième programme rassemblera ces dessins pour en former une image au format de l'Overscan. Le dernier, pour, s'occupera de l'affichage de cet écran.

Dans le premier programme, vous choisissez le mode dans lequel sera dessiné votre écran en Overscan (de 0 à 2). Donnez ensuite un nom à cet écran. Sous vos yeux ébahis, le CPC dessinera quatre écrans en les numérotant de 1 à 4, qui, sur la disquette, porteront le nom donné au départ avec l'extension "SC1 ,SC2, SC3 et SC4".

Prenez un utilitaire de dessin capable de charger une image n'appartenant pas à son format, puis avec le talent qui vous est propre, remplissez les quatre écrans. Une fois ce travail de graphiste terminé, lancez le deuxième programme. Donnez le nom en commun des écrans. Le CPC les charge un par un et sauve un fichier de 24 kilos avec l'extension "SCA' ; si vous n'avez pas d'autre écran en cours, arrêtez le programme par Esc. Lancez le troisième programme. Répétez pour la dernière fois le nom de vos écrans au CPC, en n'oubliant pas de modifier la ligne 20 dans laquelle le mode écran est donné. Admirez en douceur le résultat et consommez avec modération. Loyer Stan

;
;   RUBI_DOUILLE (c) 1989
;
; ----- AFFICHEUR OVERSCAN -----
;
;
   ORG #8000

   CP  1
   RET NZ
   LD  L,(IX+0)
   LD  H,(IX+1)
   LD  C,(HL)
   INC HL
   LD  E,(HL)
   INC HL
   LD  D,(HL)
   LD  B,0
   LD  A,C
   ADD A,4
   PUSH AF
   LD  HL,NOM
   EX  DE,HL
   LDIR
   EX  DE,HL
;
   LD  (HL),"." ; Rajouter extension
   INC HL
   LD  (HL),"S"
   INC HL
   LD  (HL),"C"
   INC HL
   LD  (HL),"A"
   INC HL
   POP BC
   LD  HL,NOM
   LD  DE,#680  ; Chargement d'un
   CALL #BC77   ; sprite de 24Ko ( 92*264)
   RET NC    ; Test si ok
   LD  HL,#D0   ; Sauvegarde du Basic
   LD  DE,#8200
   LD  BC,#1200
   LDIR
   LD  BC,#BC01 ; On Cache l'ecran
   OUT (C),C
   DEC C
   INC B
   OUT (C),C
   LD  HL,#680  ; On charge
   CALL #BC83
   CALL #BC7A
;
   LD  HL,#4000 ; On deplace le sprite
         ; pour l'afficher
   PUSH HL
   PUSH HL
   PUSH HL
   LD  DE,#C000
   LD  B,H
   LD  C,L
   LDIR
   LD  HL,#680
   POP DE
   LD  BC,#3980
   LDIR
   POP DE    ; On affiche le haut
   LD  HL,#D0
   LD  B,160
   LD  C,#C0
   CALL ENVOIE
   LD  DE,#C000 ; On affiche le bas
   POP HL
   LD  B,104
   LD  C,#80
   CALL ENVOIE
   LD  HL,ECR1  ; On active l'overscan
   CALL OUTT   ;
   LD  HL,#C000 ; On vide l'ancien écran
   LD  D,H
   LD  E,1
   LD  BC,#4000
   LD  (HL),0
   LDIR
   CALL #BB06
   LD  HL,ECR2  ; Ecran AMSTRAD demande
   CALL OUTT
   LD  HL,#8200
   LD  DE,#D0
   LD  BC,#1E00
   LDIR
   RET
ENVOIE: PUSH BC    ; C5
   PUSH HL    ; E5
   EX  DE,HL   ; EB
   LD  BC,92   ;
   LDIR     ;
   EX  DE,HL   ; EB
   POP HL    ; E1
   POP BC    ; C1
   PUSH DE    ; D5
   LD  A,H   ; 7C
   ADD A,8   ;
   LD  H,A   ; 67
   AND C    ; A1
   JR  Z,ENVOIE_1 ;
   LD  DE,#C000+92 ;
   ADD HL,DE   ; 19
ENVOIE_1:
   POP DE    ; D1
   DJNZ ENVOIE   ;
   RET     ; C9
OUTT:          ; Dressage du CRTC
   LD  C,6   ;
   LD  B,#BD   ;
OUT1:
   DEC B    ; 05
   LD  A,(HL)   ; 7E
   OUT (C),A   ;
   INC B    ; 04
   INC HL    ; 23
   LD  A,(HL)   ; 7E
   OUT (C),A   ;
   INC HL    ; 23
   DEC C    ; 0D
   JR  NZ,OUT1  ;
   RET     ; C9
ECR1:   DB &01,&2E
   DB &02,&31
   DB &06,&21
   DB &07,&22
   DB &0c,&0C
   DB &0d,&68
ECR2:   DB &01,&28,&02,&2e,&06,&19
   DB &07,&1e,&0c,&30,&0d,&00

Lover Stan, ACPC n°18 Septembre 1989, p70-71

★ ANNÉE: 1989
★ AUTEUR: RUBI

★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tool:
» rubi18  overscanDATE: 2019-03-12
DL: 331
TYPE: text
SiZE: 5Ko
NOTE:

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

Lien(s):
» Coding » Rubidouille A100% n°22: 1400 couleurs en mode 2
» Coding » Rubidouille A100% n°23 : Le dompteur de clavier
» Coding » Rubidouille A100% n°24: The Rubiraster
» Coding » Rubidouille A100% n°26: Rubi Fluide
» Coding » Rubidouille A100% n°25: Scroll Hard
» Coding » Rubidouille A100% n°19: Scrolling en diagonale
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.73-desktop/c
Page créée en 286 millisecondes et consultée 3099 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.