CODING ★ BIDOUILLES PAS BIDON ★

Bidouilles ACPC n°13 - Bidouilles pas bidon - MODE 1 en 13 couleurs
Comme nous vous l'avions (à réaction) annoncé il y a déjà quelque temps, voici un programme très attendu par tous. Un mode 1 en douze couleurs, qui nous a été offert gracieusement par Rubi, que tous peuvent remercier pour sa technique et ses compétences fabuleuses.

C'est que je commence déjà à en avoir plein le système d'exploitation (...le dos. quoi !) qu'un jeune et talentueux garçon, au demeurant fort sympathique, vienne piétiner mes plates-bandes décimées. C'est vrai, qui d'autre aurait bien pu venir détrôner notre bon vieux petit barbare de service, si ce n'est un mégapro du CPC qui connaît cette machine presque aussi bien que les génies qui l'ont conçue. Chaque fois que je le vois, je me prends une bonne vieille claque dans la tronche du genre à vous faire manger de la purée à la paille jusqu'à la fin de vos jours. Faudrait peut-être que je commence à me défoncer un petit peu l'oignon, sans quoi je ne ferai bientôt plus que pâle figure devant ce joli minois qu'est le visage ô combien sensuel et attachant de notre cher et illustre Rubi (tiens mon gars, ça fera cent balles pour toutes ces fleurs que je t'envoie, non mais). Pour continuer à parler des copains, pensons encore une fois, de façon quotidienne et non pas mensuelle (faites votre petite prière tous les soirs au pied de votre lit froid et trop petit), a ce pauvre Robby. qui doit se les geler (les pieds) au fin fond d'un pays autant inhospitalier que lointain. Bref, salut mon petit Robby et sache que. du haut de Cent Pour Cent, des milliers de lecteurs te contemplent (je crois que j'ai déjà entendu ce truc-là quelque part, mais je ne peux pas m'cnpêcher de le reprendre à mon compte). Si tes yeux passent sur ces phrases aussi banales que sincères, je t'en supplie à un genou, donne-nous de tes nouvelles car le vide créé par ton absence nous engloutit jour après jour dans une longue agonie romantique. Amen ! D'ailleurs, si Robby devait dire une phrase au sujet de Rubi (ne vous inquiétez pas. mois aussi je m'y perds), 0 dirait : "Rubi le beau ? Que !" Car il va sans dire que c'est Robby le plus beau et non Rubi... a moins que cela ne soit l'inverse de l'opposé du contraire... Oh et puis zut ! Après tout, c'est vous que cela regarde. Dans ces pages, j'aimerais aussi m'excuser auprès de notre leader du New Celtic Gang, partisan hautement attaché au CACA pour la faute que j'ai commise à moult reprises dans le nom de son organisation nationale. En effet, ce n'est pas un k mais bien un c qui finit le second nom de son emblème. Bref, encore pardon. Vitre (Bref Vitre, elle est propre cette vanne, non?), pour la millième fois, et j'en dépose le copyright, trêve de plaisanteries et passons aux choses sérieuses.

DOUZE COULEURS MONDAINES

Pas mal pour introduire le mode I en douze couleurs. On peut mieux faire mais dehors, il fait froid, et te moral ainsi que la vivacité d'esprit en prennent un sacré coup dans le cornet. On se sent un tant soit peu le cerveau figé par les temps qui courent. M'enfin, plus que quelques petits mois de souffrance et nous pourrons enfin jouir et profiter de nos douloureux coups de soleil sans oublier nos cloques purulentes subtilement développées par cet astre rayonnant qui éclaire notre chère planète. Comment marche la routine ? C'est aussi simple qu'un fil à couper le beurre fonctionnant par l'aide d'un laser avec protection par bombardement de particules radioactives contrôlées. Bref, du "comme on l'aime à Cent Pour Cent". Que fait notre brave maître Rubi pour obtenir un si bel effet ? Il détourne les interruptions , en mettant le Kernel aux fraises pour quelques instants , et s'amuse à les gérer avant que le brave CPC ne batifole en perdant bêtement du temps. En parlant de temps, ce petit programme en perd un peu, mais on n'a jamais rien sans rien. Rubi, donc, suit l'évolution du balayage et du rafraîchissement de l'écran, et change les Inks à l'écran en fonction de celles du bon vieux Basic, chaque fois que le CRTC 6845 émet une interruption. En clair, le CRTC dit : "Eh toi. le Zaidkatrevin, viens par ici, j'ai un truc pour toi." Et c'est alors que Rubi dit. je cite : "Par ici la bonne soupe et les poireaux seront bien gardés, je vais te mouliner tout ça pour obtenir l'effet souhaité." En plus, il cause avec des rimes, l'animal..

ORG #BE80
INT EQU #B941 ; POUR 464 #B939
LD HL,NEWMOD
LD (INT+1),HL
LD A,#C3
LD (INT),A
RET
NEWMOD DI
PUSH AF
PUSH HL
PUSH BC
PUSH DE
LD BC,#F5E0
IN A,( C)
AND #01
JP Z,POS
LD A,#FF
LD (POS+1),A
POS LD A,#00
INC A
LD (POS+1),A
JR NZ, TEMPO
DEC A
TEMPO LD B,#6
BOUC NOP
DJNZ BOUC
LD HL,TABINK
LD C,A
LD B,0
ADD HL,BC
LD DE,REGLA
LD C,#01
CHGINK LD A, (DE)
LD B,A
WAIT DJNZ WAIT
WORK LD B,#7F
LD A,(HL)
SET 6,A
OUT (C),C
OUT (C),A
INC HL
INC HL
INC HL
INC HL
INC DE
INC C
LD A,4
CP C
JR NZ,CHGINK
TSAW POP DE
POP BC
POP HL
POP AF
EX AF,AF'
JP C,#B978 ; POUR 464 #B970
JP #B945 ; POUR 464 #B93D
REGLA DEFB 1,#7,#B
TABINK EQU #B7D5 ; POUR 464 #B1DA

En termes simples et concis, pour réconforter le commun des mortels, sans y perdre son latin (bien vu les termes latins), voici l'explication du petit listing de multicolor-mode-ouane.

  • INT : détournement des interruptions systèmes pour agir sans perdre de temps et avant le Kernel.
  • NEWMOD : sauvegarde des registres utilisés et contrôle du balayage. On vérifie ici si c'est le Frame Back (le moment où le faisceau de balayage remonte sans faire le boulot pour lequel il est payé), pour être toujours sûr d'être bien synchronisé après des accès disques ou ce genre de turcs à prise de tête. Dans tous les cas, si une perturbation survient lors des interruptions, le témoin de position se réinitialisera automatiquemenl.
  • POS : à ce moment précis, il est temps de savoir sur quelle interruption nous sommes tombés, et en la modifiant pour le prochain passage. en affectant directement l'opérande de l'instruction LD A.octet. Si le compteur contient la valeur cinq, on le décrémente pour utiliser les mêmes Inks que lors de la quatrième bande, sans quoi on aurait un petit espace riquiqui dans le bas de l'écran pour quatre pauvres encres bien solitaires, non gérables sous Basic.
  • TEMPO : on attend un petit peu, histoire de laisser le faisceau se déplacer peinardement Ensuite, il est temps de calculer l'adresse des encres à afficher en fonction de la position du balai (non, restez encore un peu. j'ai pas fini !), en additionnant à HL, qui pointe sur la table des encres, le déplacement contenu dans A. DE est forcé sur une table de temporisations, et C est positionné sur l'encre 1.
  • CHGINK : c'est le début de la routine qui change les Inks. Avant tout on attend un peu, histoire de passer le temps et de ne pas obtenir des mer-douilles à l'écran.
  • WAIT : Douillou se pique les fesses (voir les informations sus-citées).
  • WORK : B pointe sur le Gate-array. C contient l'encre et l'ordre de sélection d'encre, et A est chargé avec la valeur d'encre désirée. Tout est envoyé délicatement au CRTC. et on avance de quatre encres dans la table pour ce que vous verrez plus tard. On incrémente Le Pen. et on regarde si l'opération a bien été réalisée quatre fois, c'est-à-dire autant qu'il y a d'encres, sans quoi on boucle.
  • TSAW : restitue des registres préalablement préservés, et rend la main, passez-moi l'expression, au Kernel en recopiant plus ou moins ce qu'il commence à faire normalement c'est-à-dire dans le cas où il n'est pas détourné.

FONCTIONNEMENT DU BIDULE A TRUCS INTERRUPTES

Je trouve cela marranl de dire des choses simples avec des mots simples en se débrouillant pour que le tout devienne une espèce d'embrouillimini à tendance Shadok, du style pourquoi faire simple quand on peut faire compliqué. Voici donc l'organisation des encres.
Si les pens sont dans Tordre croissant en partant de 1, la première bande contiendra les encres 1 , 5. et 9. La seconde, les encres 2 , 6 et 10. La troisième, les encres 3 , 7 et 11. Pour finir, la quatrième bande contiendra les encres 4 , 8 et 12 pour des pens respectivement de 1 à 3. Le papier, l'encre du fond ne changent pas et ont été largués par Rubi. Vous avez dorénavant un petit machin qui montre que le CPC est une foudre de guerre en bandes.

A LA PROCHAINE INTERRUPTION

Comme chaque mois, il faut bien qu'à un moment ou à un autre nous nous quittions pour vaquer chacun de notre coté à nos occupations propres, voire sales. C'est ici que je vous laisse là, las itou. Bonnes routines et gaffe aux buggos, qu'ils soient machinos ou basicos.

Sined le Balayeur , A100% n°13

Page précédente : Bidouilles ACPC n°12 - Création de RSX
DL=UtilsAdvert|zip,13COLORS|asm13b]

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

Lien(s):
» Coding » Assembleur ACPC n°15 - La mémoire écran
» Coding » Assembleur ACPC n°08 - Initiation : Les CALL / JR
» Coding » Assembleur ACPC n°29 - On assemble ensemble
» Coding » Bidouilles ACPC n°48 - Les vecteurs system (6/6)
» Coding » Assembleur ACPC n°40 - Le CARRY
» Coding » Bidouilles ACPC n°31 - RSX
Je participe au site:

» 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.7-desktop/c
Page créée en 347 millisecondes et consultée 1980 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.