★ CODING ★ SOURCES ★ Rasters pour Noix De Croco #5 ★ |
Rasters (Duffy / NDC) | Coding Sources |
ENT $ ; ; Rasters (c) 1990 Pour Noix De Croco No 5... Par DUFFY ; ; Attention, revenir sous basic pour faire le CALL &A000 et presser la petite ; touche ENTER pour executer car si sous basic ou sous dams, vous pressez ; la grosse touche ENTER (ou RETURN), vous aurrez pas le temps de voir.... ; init ;met les rasters sous interruption CALL #bd19 ;pause pour pression de touche CALL #bd19 CALL #bd19 DI LD hl,(#39) LD (saut+1),hl ;met l'adresse de la routine a la LD hl,tub ;place du RST #38 qui est appele tous LD (#39),hl ;les 300e de seconde EI ;(le balayage écran se fait tous le 50e bcl ;attente de touche EI HALT ;attend proch'interruption (les rasters DI ; clav ;ENTER/RETURN presse PUSH AF PUSH BC PUSH HL LD HL,stock LD BC,#F40E OUT (C),C LD B,#F6 IN A,(C) AND #30 LD C,A OR #C0 OUT (C),A OUT (C),C INC B LD A,#92 OUT (C),A PUSH BC SET 6,C clavlp LD B,#F6 OUT (C),C LD B,#F4 IN A,(C) LD (HL),A INC HL INC C LD A,C AND #0F CP #0A JR NZ,clavlp POP BC LD A,#82 OUT (C),A DEC B OUT (C),C POP HL POP BC POP AF ; LD a,(stock+2) CP #ff JP z,bcl ;si pas presse, continu rasters JP denit ;sinon fin ; stock DEFS 9,0 denit DI ;enleve la routine du rst #38 LD hl,(saut+1) ;et remet ancienne adresse LD (#39),hl EI RET ;retour basic ; adrtub1 DEFW tbtub1 ;pointe sur le tube couleur rouge adrtub2 DEFW tbtub2 ;couleur bleue adrtub3 DEFW tbtub3 ;en changeant les numéros, on adrtub4 DEFW tbtub4 ;change les couleurs de chaque tube adrtub5 DEFW tbtub2 adrtub6 DEFW tbtub5 adrtub7 DEFW tbtub5 adrtub8 DEFW tbtub2 adrtub9 DEFW tbtub4 adrtub10 DEFW tbtub3 adrtub11 DEFW tbtub2 adrtub12 DEFW tbtub1 ; notub1 DEFB 0 ;tube No 1 -> Locate vertical a 0 cotub1 DEFB 0 ;sens (0=descend, 1=monte) notub2 DEFB 10 ;locate sur hauter écran cotub2 DEFB 0 ;descend notub3 DEFB 20 cotub3 DEFB 0 notub4 DEFB 30 cotub4 DEFB 0 notub5 DEFB 40 cotub5 DEFB 0 notub6 DEFB 50 cotub6 DEFB 0 notub7 DEFB 60 cotub7 DEFB 0 notub8 DEFB 70 cotub8 DEFB 0 notub9 DEFB 80 cotub9 DEFB 0 notub10 DEFB 90 cotub10 DEFB 0 notub11 DEFB 100 cotub11 DEFB 0 notub12 DEFB 110 cotub12 DEFB 0 notub13 DEFB 110 cotub13 DEFB 0 ; tub DI ; PUSH af ;bd19 PUSH bc LD b,#f5 ;balayage écran en haut ? IN a,(c) RRA JP c,tuba ;si oui commence routine POP bc POP af JP saut ;si non alors fin tuba POP bc POP af ; PUSH hl ;sauve registres PUSH bc ;(sauf ix et iy mais c'est pas grave) PUSH af ; LD iy,adrtub1 ;iy pointe sur 1er tube LD ix,notub1 ;ix pointe sur sens du 1er tube LD b,12 ;nombre de tubes a afficher CALL tub1 ;met les dans table DEFS 59,0 ;pause pour demarrer bien a gauche ; LD hl,table-1 ;hl pointe sur table a mettre sur écran LD bc,#7f10 ;#10 = tub dans border (ink 16) tubloop INC hl ;augmente sur table LD a,(hl) ;prend couleur de la table OR a ;= 0 ? JP z,fin ;alors fin, tout est affiche ; OUT (c),c ;choisi ink OUT (c),a ;met couleur dans ink (ici ink=border) LD c,0 ;couleur 0 (paper) OUT (c),c OUT (c),a ;met-z-y couleur aussi LD c,#10 ;rechoisi border pour la prochaine fois DEFS 97,0 ;tub=2 lignes de haut (33 pour une) ; ; JP tubloop ;ligne suivante sur écran fin POP af ;retire les registres sauves au debut POP bc POP hl ; saut JP #b941 ;saute a l'adresse normale du RST #38 ; tbtub2 DEFB #54,#44,#55,#5d,#5f,#53 ;couleurs tube rouge DEFB #5f,#55,#44,#54,#54 ; tbtub1 DEFB #54,#5c,#4c,#4e,#4a,#4a ;couleurs tube bleu DEFB #4e,#4c,#5c,#54,#54 tbtub3 DEFB #54,#56,#52,#42,#59,#59 ;couleurs tube vert DEFB #42,#52,#56,#54,#54 tbtub4 DEFB #54,#58,#45,#4d,#4f,#4f ;couleurs tube violet DEFB #4d,#45,#58,#54,#54 tbtub5 DEFB #54,#4e,#4a,#43,#4b,#4b ;couleurs tube jaune DEFB #43,#4a,#4e,#54,#54 ; table ;ici la table a afficher sur l'ecran DEFS 132,#54 ;nb lignes de haut DEFW 0 ;fin par 2 zeros par securite ; tub1 ;affiche tube dans la table ci-dessus LD a,(ix+1) ;sens de deplacement tube ? OR a ;descend ? LD a,(ix+0) ;met position vertical dans A JP nz,tub1m ;si non (descend?), va a monte ! ; tub1d ;routine qui fait descendre le tube act INC a CP 121 ;tube sur derniere ligne ? (130+11) JP nz,tub1ds ;non alors continu LD (ix+1),a ;sinon met valeur dans sens LD hl,table ;debut table dans HL LD d,0 LD e,a ;position locate dans DE ADD hl,de ;additionne le tout EX de,hl ;et on a le position absolue dans DE LD h,(iy+01) LD l,(iy+00) ;hl=adresse couleurs du tube actuel JP trans ;transfert sur table ; tub1ds ;descend LD (ix+0),a ;stocke position actuelle tub1ds2 LD hl,table ;meme scenario que 11 ligne + haut LD d,0 LD e,a ADD hl,de EX de,hl LD h,(iy+01) LD l,(iy+00) JP trans ; tub1m ;fait monter tubular DEC a ;tube tout en haut ? CP 0 ;(pas OR A, faut meme duree que CP 130) JP nz,tub1ms ;si non continu LD (ix+1),a ;si oui, stocke sens LD hl,table ;et rememe scenario LD d,0 ;(transfert sur table) LD e,a ADD hl,de EX de,hl LD h,(iy+01) LD l,(iy+00) JP trans tub1ms LD (ix+0),a tub1msx LD hl,table LD d,0 LD e,a ADD hl,de EX de,hl LD h,(iy+01) LD l,(iy+00) JP trans ;oui, je sais, le Jp ci-dessus va juste en dessous, mais c'est pour avoir ;toujours la meme duree d'execution par sens... trans PUSH bc ;sauve compteur de tube LDI ;transfert des 11 lignes de couleurs LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI POP bc INC ix ;pointeur sur position du tube suivant INC ix INC iy ;pointeur sur sens du tube suivant INC iy DEC b ;compteur de tube a zero ? JP nz,tub1 ;si non, on affiche un autre tube ; RET ;retour a l'affichage sur écran. |
|
L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous! |
CPCrulez[Content Management System] v8.7-desktop/cache 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. |