CODINGCHRONIQUE A100% DE RUBI ★ Rubidouille, la vague ★

Rubidouille A100% n°20: Scroll en vagueCoding Chronique A100% De Rubi

Le maître Rubi nous donne, comme promis le mois passé, son scrolling en vague. J'ai bien l'impression que plus rien ne peut l'arrêter. Alors, si ça continue de ne plus l'appeler "maître" , mais "Dieu".

;
; Source compatible avec l'assembleur de WinAPE
;
    ORG &9000
T_CARAC equ &7000
T_TABLE equ &7800
;
; Prendre les fontes des caracteres
;
    JP QON  ; scrolling active
    JP QOFF ; scrolling desactive
QON: XOR A
    CALL &BBA5
    CALL &B906
    PUSH AF
    LD DE,T_CARAC
    LD BC,8*256
    LDIR
    POP AF
    CALL &B90C
;
NB   EQU 15
LI   EQU 110
; Calcul d'une vague
    LD HL, &C000+12
    LD B,LI
BO1: CALL RBC26
    DJNZ BO1
    CALL VAGUE
    LD HL,NB-1*2+T_TABLE
    LD A, (HL)
    INC HL
    LD H, (HL)
    LD L,A
    LD (OFSET) ,HL
    LD HL,NOM    ; Le message au debut svp
    LD (OFNOM),HL
;
; On recconfigure les interuptions du CPC
;
D_INT:  DI
    LD HL, (&39)
    INC HL
    LD (QINT) ,HL
    LD (HL),&C3
    LD DE, INT
    INC HL
    LD (HL),E
    INC HL
    LD (HL),D
    INC HL
    LD (D_INT3+1) ,HL
    LD DE,&33
    ADD HL,DE
    LD (D_INT2+1),HL
    RET
;
VAGUE:  LD B,8
    LD IX,T_TABLE
VAGUE1: PUSH HL
    LD C,NB
VAGUE2: LD (IX+0),L
    LD (IX+1),H
    INC IX
    INC IX
    INC HL
    CALL VAGUE3
    DEC C
    JR NZ,VAGUE2
    POP HL
    CALL RBC26
    DJNZ VAGUE1
    RET
VAGUE3: BIT 3,L
    JP Z,RBC26
    JP #BC29
;
INT: PUSH AF
    PUSH BC
    PUSH HL
    PUSH DE
    LD BC,#7F8D
    OUT (C),C
    CALL INTA
    POP DE
    POP HL
    POP BC
    POP AF
    EX AF,AF'
D_INT2: JP C,0
D_INT3: JP 0
;
INTA:   LD B,&F5
    IN A, (C)
    RRA
    JR C,INTE0
KL:  LD A, 7
    INC A
    LD (KL+1),A
    CP 4
    JR C,INTE1
    JR Z,INTE2
    RET
;
INTE0:  XOR A
    LD (KL+1) ,A
    LD HL,T_TABLE
    JR SPRG1
INTE1:  LD HL, (THL)
SPRG1:   LD B,2
SPRG1_1: LD C,NB-1
  LD E, (HL)
  INC HL
  LD D, (HL)
  INC HL
SPRG1_2: PUSH HL
  LD A, (HL)
  INC HL
  LD H, (HL)
  LD L,A
  LD A, (HL)
  LD (DE), A
  EX DE ,HL
  POP HL
  INC HL
  INC HL
  DEC C
  JR NZ,SPRG1_2
  DJNZ SPRG1_1
  LD (THL) ,HL
  RET
;
INTE2:
SPRG2: ; Envoie du caractere
  LD HL, (OFNOM)
  LD A, (HL)
  OR A
  JR NZ,SPRG2_1
  LD HL ,NOM
  LD A, (HL)
SPRG2_1: LD C,A
  LD A, (FLAG)
  XOR &FF
  LD (FLAG) ,A
  CALL NZ,SPRG2_4
  LD DE, (FLAG1)
  LD HL, (OFSET)
  LD B,8
SPRG2_2: LD A, (DE)
  LD C,A
  LD A, (FLAG)
  OR A
  LD A,&0F
  JP Z,SPRG2_3
  LD A,&F0
SPRG2_3: AND C
  LD (HL) ,A
  INC DE
    CALL RBC26
  DJNZ SPRG2_2
  RET
;
SPRG2_4: INC HL
  LD (OFNOM) ,HL
  LD L,C
  LD H,0
  ADD HL ,HL
  ADD HL ,HL
  ADD HL ,HL
  LD DE,T_CARAC
  ADD HL ,DE
  LD (FLAG1) ,HL
  RET
;
QOFF: DI
  LD HL, (QINT)
  LD (HL), &08
  INC HL
  LD (HL), #38
  INC HL
  LD (HL),#33
  RET
;
RBC26:
  LD A,H
  ADD A,#08
  LD H,A
  AND #38
  RET NZ
  PUSH DE
  LD DE,&C050
  ADD HL ,DE
  POP DE
  RET
;
;
FLAG DEFB 0
FLAG1   DEFW 0
OFSET   DEFW 0
OFNOM   DEFW 0
THL  DEFW 0
QINT DEFW 0
;
NOM  DB "BONJOUR, A TOI DEFM ,LISEZ 100%"
    DB 0
 

Rubi, ACPC  n°20 , Novembre  1989, p89-91

★ ANNÉE: 1989
★ AUTEUR: RUBI

Page précédente : Rubidouille A100% n°19: Scrolling en diagonale
★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tools:
» rubi20  en  vagueDATE: 2019-03-12
DL: 462
TYPE: text
SiZE: 4Ko
NOTE:

» SCRWAVEDATE: 1970-01-01
DL: 170
TYPE: text
SiZE: 3Ko
NOTE:

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

Lien(s):
» Coding » Rubidouille A100% n°23 : Le dompteur de clavier
» Coding » Rubidouille A100% n°18: L'Overscan
» Coding » Rubidouille A100% n°25: Scroll Hard
» Coding » A100%: Les RUBI bidouilles
» Coding » Rubidouille A100% n°24: The Rubiraster
» Coding » Rubidouille A100% n°22: 1400 couleurs en mode 2
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.732-desktop/c
Page créée en 274 millisecondes et consultée 2768 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.