Ce source ce compile sans problème sous l'assembleur de WinAPE. ORG #1000 ; ; 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,#4Ahttps://CPCrulez.fr
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser... |
CPCrulez[Content Management System] v8.7-desktop Page créée en 002 millisecondes et consultée 2413 foisL'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. |
|
|