★ CODING ★ SOURCES ★ CODING Source &029 - ROUTINE DE SPLIT-CRTC ★ |
Scrolling en rasters (Ramlaid) | Coding Sources |
Ce source ce compile sans problème sous l'assembleur de WinAPE.; ; ROUTINE DE SPLIT-CRTC, OU LA METHODE DU COMMENT FAIRE ; UN SPLIT-RASTER SUR 16 COULEURS EN MODE 0 ? ; ; MARCHE INITIALEMENT SUR CRTC 0 ET 4 ; POUR ADAPTER SUR CRTC 1, VOIR LE COURS ! ; ; (C) RAMLAID FROM MORTEL ; FOR DRACULA FANZ' 5 ; LD A,0 CALL #BC0E ; LD (SAUVESP),SP LD HL,(#38) LD (SAUVE),HL LD HL,#C9FB LD (#38),HL LD SP,#FFF ; LD HL,#4000 LD DE,#C000 LD BC,#3FFF LDIR ; LD BC,#7F10 OUT (C),C LD A,76 OUT (C),A ; LD BC,#BC01 ;REFORMATAGE D'ECRAN OUT (C),C LD BC,#BD00+48 OUT (C),C LD BC,#BC02 OUT (C),C LD BC,#BD00+49 OUT (C),C ; SYNC LD B,#F5 SYNC2 IN A,(C) RRA JR NC,SYNC2 ; EI HALT CALL GERSPLOT ;GESTION DE L'ANIMATION HALT HALT DI DEFS 6+64,0 ; CALL RASTBUF ;"AFFICHAGE" DU SPLIT-CRTC ; TOUCHE ;TEST DE TOUCHE LD D,5 LD BC,#F782 OUT (C),C LD BC,#F40E OUT (C),C LD BC,#F6C0 OUT (C),C LD BC,#F600 OUT (C),C LD BC,#F792 OUT (C),C LD A,D AND %00001111 OR %01000000 LD B,#F6 OUT (C),A LD B,#F4 IN A,(C) LD BC,#F782 OUT (C),C LD BC,#F600 OUT (C),C CP #7F JR Z,SORT JP SYNC ; SORT LD HL,(SAUVE) ;ON RECUPERE TOUT LD (#38),HL LD SP,(SAUVESP) LD BC,#7F10 OUT (C),C LD A,#54 OUT (C),A LD BC,#BC01 ;ON REFORMATE L'ECRAN OUT (C),C LD BC,#BD00+40 OUT (C),C LD BC,#BC02 OUT (C),C LD BC,#BD00+46 OUT (C),C LD BC,#BC06 OUT (C),C LD BC,#BD00+25 OUT (C),C LD BC,#BC08 OUT (C),C LD BC,#BD00 OUT (C),C RET ; GERSPLOT LD HL,RASTBUF ;ON EFFACE LA ZONE QUI PERMET LD (HL),0 ;L'ANIMATION AU NOPS PRES LD DE,RASTBUF+1 LD BC,RASTSUI-RASTBUF-1 LDIR ; POSX LD A,0 ;VALEUR DU DECALAGE LD HL,RASTBUF LD E,A LD D,0 ADD HL,DE ;ON L'AJOUTE A L'ADRESSE DE RASTBUF ; LD (HL),#C3 ;ON POKE UN P'TIT 'JP' INC HL LD DE,RASTSUI ;PUIS ON POKE 'RASTSUI' LD A,E ;ON OBTIENT AINSI A L'ADRESSE LD (HL),A ;RASTBUF+DECALAGE LA COMMANDE : INC HL ; 'JP RASTSUI' LD A,D ; DONC LA ROUTINE PEUT CONTINUER ! LD (HL),A RET ; RASTBUF JP RASTSUI ;ZONE DE 50+3 NOP DANS LEQUEL ON FAIT DEFS 50,0 ;BOUGER L'INSTRUCTION 'JP RASTSUI' ; RASTSUI ;ON CONTINU LA ROUTINE LD HL,TABLE ;TABLE DE COULEUR 1ER BLOC LD A,19 ;NOMBRE DE LIGNE 1ER BLOC RASTON LD D,48 ;VALEUR CRTC POUR VOIR BORDER RASTOFF LD E,0 ;VALEUR CRTC POUR VOIR ECRAN VALCRTC LD BC,#BC08 ;REGISTRE CRTC A CHANGER OUT (C),C ;POUR ADAPTER, CF COURS INC B LD BC,#7F10 OUT (C),C ;ON INITIALISE LE BORDER ; RASTBOU LD B,#7F ;ON PREND LA VALEUR DE LA TABLE OUTI ;POUR LE RASTER DANS LE BORDER LD B,#BD OUT (C),D ; 'ALLUME' OUT (C),D OUT (C),E ; 'ETEINDS' OUT (C),E OUT (C),D OUT (C),D OUT (C),D OUT (C),E OUT (C),D OUT (C),D OUT (C),D OUT (C),E DEFS 3,0 ;P'TITE SYNCHRO POUR LES 64 NOPS DEC A JR NZ,RASTBOU DEFS 60,0 ;ON ATTENDS UNE LIGNE ; LD A,19 ;NOUVELLE HAUTEUR LD HL,TABLE2 ;NOUVELLE TABLE DE COULEUR ; RASTBOU2 ;ON FAIT LA 2EME LIGNE LD B,#7F OUTI LD B,#BD OUT (C),D OUT (C),E OUT (C),D OUT (C),E OUT (C),D OUT (C),E OUT (C),E OUT (C),E OUT (C),E OUT (C),E OUT (C),D OUT (C),E DEFS 3,0 DEC A JR NZ,RASTBOU2 ; DEFS 60,0 ; LD A,19 LD HL,TABLE RASTBOU3 ;3EME LIGNE ; LD B,#7F OUTI LD B,#BD OUT (C),D OUT (C),E OUT (C),D OUT (C),E OUT (C),D OUT (C),D OUT (C),E OUT (C),E OUT (C),E OUT (C),D OUT (C),E OUT (C),E DEFS 3,0 DEC A JR NZ,RASTBOU3 ; DEFS 60,0 ; LD A,19 LD HL,TABLE2 RASTBOU4 ;4EME LIGNE ; LD B,#7F OUTI LD B,#BD OUT (C),D OUT (C),E OUT (C),D OUT (C),E OUT (C),D OUT (C),E OUT (C),E OUT (C),E OUT (C),D OUT (C),E OUT (C),E OUT (C),E DEFS 3,0 DEC A JR NZ,RASTBOU4 DEFS 60,0 ; LD A,19 LD HL,TABLE RASTBOU5 ;5EME ET DERNIERE LIGNE ; LD B,#7F OUTI LD B,#BD OUT (C),D OUT (C),D OUT (C),E OUT (C),E OUT (C),D OUT (C),E OUT (C),E OUT (C),E OUT (C),D OUT (C),D OUT (C),D OUT (C),E DEFS 3,0 DEC A JR NZ,RASTBOU5 ; LD A,(POSX+1) ;ON MODIFIE LA VALEUR DE LA POSITION X MODIF INC A ; SENS (INCREMENTE OU DECREMENTE) LD (POSX+1),A OR A JR Z,MODIF2 ;EGAL A ZERO ? CP 34 RET NZ ;EGAL A 34 ? MODIF2 LD HL,MODIF LD A,(HL) XOR 1 ; MAGIC ! CHANGE UN 'INC A' EN 'DEC A' LD (HL),A ; ET INVERSEMENT ! RET ; SAUVE DEFW #0000 SAUVESP DEFW #0000 TABLE ;TABLE DE COULEUR 1 POUR RASTER DEFB #44,#44,#55,#44,#55,#55 DEFB #55,#53,#55,#55,#53,#55 DEFB #53,#55,#53,#53,#53,#53 DEFB #4B,#53,#53,#4B,#53,#53 DEFB #4B,#53,#4B,#4B,#4B,#4B ; TABLE2 ;TABLE DE COULEUR 2 DEFB #5C,#5C,#4C,#5C,#4C,#4C DEFB #4C,#4E,#4C,#4C,#4E,#4C DEFB #4E,#4C,#4E,#4E,#4E,#4E DEFB #4A,#4E,#4E,#4A,#4E,#4E DEFB #4A,#4E,#4A,#4A,#4A,#4A |
|