; Exemple de rupture ligne-@-ligne ; par OffseT le 25/08/95 ; pour ; Quasar CPC num{ro 9 Org &8000 ; On commence ici ! Nolist ; ou @ l'adresse ; que vous voulez... ; ; Initialisations ; ld bc,&bc01 ; On d{finit la out (c),c ; largeur de notre ld bc,&bd00+48 ; {cran en la fixant out (c),c ; @ 48 words. ld bc,&bc02 ; On positionne notre out (c),c ; {cran pour qu'il ld bc,&bd00+50 ; soit bien centr{ out (c),c ; sur le moniteur. di ; On coupe les inters ld hl,(&38) ; du syst}me apr}s ld (inter+1),hl ; les avoir sauv{es en ld hl,&c9fb ; fin de programme par ld (&38),hl ; une auto-modif. ei ; Et hop l@ ! ; ; Programme principal ; Prog ld b,&f5 ; Attente de la synchro Synchro in a,(c) ; {cran, classique quand rra ; on fait des ruptures jr nc,synchro ; ou des rasters. ld b,255 ; Boucle d'attente pour Loop djnz loop ; la compatibilit{ CRTC ld bc,&bc07 ; Mise en overflow du out (c),c ; registre 7 pour ne ld bc,&bdff ; pas avoir de VBL out (c),c ; entre nos ruptures ld bc,&bc04 ; La premi}re rupture out (c),c ; est classique et fait ld bc,&bd06 ; 7 caract}res de haut out (c),c ; Voil@... halt ; Attente de la fin de ld b,2 ; la rupture. Puis Loop1 ds 60 ; positionnement pr{cis djnz loop1 ; avec une boucle @ ; adapter suivant ; votre CRTC. ld bc,&bc04 ; Nos {crans feront 1 out (c),c ; ligne de caract}re ld bc,&bd00 ; de haut (reg4=0) out (c),c ld bc,&bc09 ; Et nos caract}res out (c),c ; feront 1 ligne pixel ld bc,&bd00 ; de haut seulement ! out (c),c ; C'est parti ! halt ; On laisse se faire la halt ; rupture un petit brin halt ; de temps pour bien la halt ; voir... ld b,20 ; Derni}re petite attente Loop2 ds 60 ; pour tomber exactement djnz loop2 ; o| on veut... ld bc,&bc09 ; STOP ! Plus de rupture out (c),c ; ligne-@-ligne ! On ld bc,&bd07 ; reprogramme une rupture out (c),c ; classique... ld bc,&bc04 ; Vu o| on se trouve sur out (c),c ; l'{cran, celle-ci doit ld bc,&bd03 ; faire 4 lignes de haut out (c),c ; pour tourner @ 50Hz... ds 64*8 ; On attend que notre ; rupture ait commenc{ ld bc,&bc07 ; puis on met le registre out (c),c ; 7 @ 0 pour envoyer ld bc,&bd00 ; la VBL et synchroniser out (c),c ; le tout ! ; ; Test clavier ; ld bc,&f40e ; On tripote un out (c),c ; petit peu le ld bc,&f6c0 ; PPI pour se out (c),c ; faire un test xor a ; clavier de la out (c),a ; toutouche ld bc,&f792 ; espace... out (c),c ; Pfiou ! Que ld bc,&f645 ; c'est long... out (c),c ; Courage, la fin ld b,&f4 ; est proche ! in a,(c) ; On saisit l'{tat ld bc,&f782 ; de la ligne 5 out (c),c ; et on remet le ld bc,&f600 ; PPI dans son {tat out (c),c ; normal. rla ; On teste ladite jp c,prog ; toutouche... ; Et on boucle ! ; ; Quit ; ld bc,&bc07 ; On remet tous les out (c),c ; petits registres ld bc,&bd00+30 ; du CRTC auxquels out (c),c ; on a touch{ @ ld bc,&bc04 ; leur {tat normal out (c),c ; pour que le CPC ld bc,&bd00+38 ; n'ait pas le out (c),c ; mal de mer au ld bc,&bc01 ; retour... out (c),c ; Que c'est laborieux ! ld bc,&bd00+40 ; Largeur standard... out (c),c ; OK ! ld bc,&bc02 ; Position standard out (c),c ; de l'{cran... ld bc,&bd00+46 ; OK ! out (c),c ; Ouf ! di ; On r{cup}re les inters Inter ld hl,0 ; du d{but et on revient ld (&38),hl ; au BASIC... ei ; Attention... ret ; Et voil@ !