Pl3 MOUSECOO.S: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<pre> |
<pre> |
||
− | |||
− | *** ILLUSTRATION DES OPERATIONS SUR LA RAM VIDEO ET L'ECRAN LOGIQUE *** |
||
− | |||
+ | *** Interrogation de la SOURIS *** |
||
− | clr.l -(sp) ;super |
||
− | move #$20,-(sp) |
||
− | trap #1 |
||
− | addq.l #6,sp |
||
− | move.l d0,ssp |
||
− | |||
− | * ECRIRE sur PHYS puis LOG et poser LOG sur PHYS * |
||
− | |||
− | move.l #ecran+256,d0 ;adresse LOG |
||
− | and.l #$ffffff00,d0 ;divisible par 256 |
||
− | move.l d0,a0 ;a0=LOG |
||
− | move.l $44e,a5 ;a5=PHYS |
||
+ | *** DROITE=COORD, 2=QUITTER *** |
||
− | |||
+ | |||
− | |||
+ | |||
− | *** On ecrit sur le PHYS *** |
||
+ | SECTION TEXT |
||
− | |||
− | move.l #7999,d0 ;clear PHYS SCREEN |
||
− | moveq.l #-1,d1 |
||
− | move.l a5,a6 |
||
− | clear_scr: |
||
− | move.l d1,(a6)+ |
||
− | dbf d0,clear_scr |
||
+ | TOUCHE MACRO |
||
− | move #7,-(sp) ;TOUCHE |
||
+ | move #7,-(sp) |
||
trap #1 |
trap #1 |
||
addq.l #2,sp |
addq.l #2,sp |
||
+ | ENDM |
||
− | |||
− | |||
− | *** On ecrit sur le LOG *** |
||
+ | CCONOUT MACRO $\1 |
||
− | move.l #7999,d0 ;Write of LOG |
||
+ | move.w \1,-(sp) ;\1=CaractŠre … afficher |
||
− | moveq.l #0,d1 |
||
− | + | move.w #2,-(sp) |
|
+ | trap #1 |
||
− | cr: |
||
+ | addq.l #4,sp |
||
− | move.l d1,(a6)+ |
||
+ | ENDM |
||
− | dbf d0,cr |
||
− | move # |
+ | move.l #0,-(sp) |
+ | move #$20,-(sp) |
||
trap #1 |
trap #1 |
||
− | addq.l # |
+ | addq.l #6,sp |
+ | move.l d0,SSP |
||
+ | cmpi #$0e96,$fc001e ;TOS blitter ? |
||
− | *** On pose LOG sur PHYS *** |
||
+ | bne NOBLIT |
||
− | |||
− | move.l |
+ | move.l #$2740,KDB |
+ | jmp PRINCIPAL |
||
− | lsr.l #8,d5 ;MMU --> ECHANGE |
||
+ | |||
− | move.b d5,$ff8203 |
||
− | + | NOBLIT move.l #$26e0,KDB |
|
− | move.b d5,$ff8201 |
||
+ | PRINCIPAL |
||
− | move #7,-(sp) ;TOUCHE |
||
+ | move.l KDB,a1 |
||
− | trap #1 |
||
+ | move.b 7(a1),d0 ;Gauche=%01 |
||
− | addq.l #2,sp |
||
+ | ;Droite=%10 ,2=%11 |
||
+ | cmpi.b #%11,d0 ;2 = quitter |
||
+ | beq FIN |
||
+ | |||
+ | btst #1,d0 ;diff de %...0. = Bouton DROIT |
||
+ | beq PRINCIPAL |
||
+ | |||
+ | CCONOUT #27 |
||
+ | CCONOUT #'E' |
||
+ | |||
+ | move (a1),d0 |
||
+ | jsr BINAIRE |
||
− | move |
+ | move 2(a1),d0 |
+ | jsr BINAIRE |
||
+ | |||
+ | jmp PRINCIPAL |
||
+ | |||
+ | |||
+ | FIN move.l SSP,-(sp) |
||
move #$20,-(sp) |
move #$20,-(sp) |
||
trap #1 |
trap #1 |
||
addq.l #6,sp |
addq.l #6,sp |
||
+ | |||
− | |||
− | clr |
+ | clr -(sp) |
trap #1 |
trap #1 |
||
+ | |||
+ | |||
+ | BINAIRE movem.l d0-d7/a0-a6,-(sp) |
||
+ | move d0,d1 |
||
+ | move #31,d3 |
||
+ | |||
+ | LOOK move #'0',d0 |
||
+ | lsl.l #1,d1 |
||
+ | |||
+ | bcc ZERO |
||
+ | move #'1',d0 |
||
+ | ZERO CCONOUT d0 |
||
+ | dbf d3,LOOK |
||
+ | CCONOUT #10 |
||
+ | CCONOUT #13 |
||
+ | movem.l (sp)+,d0-d7/a0-a6 |
||
+ | rts |
||
+ | |||
+ | SECTION BSS |
||
+ | KDB ds.l 1 |
||
− | SECTION BSS |
||
+ | SSP ds.l 1 |
||
+ | END |
||
− | ecran ds.l 32000 ;PHYS SCREEN |
||
− | ssp ds.l 1 |
||
− | log ds.l 1 |
||
+ | </pre> |
||
− | END |
||
− | |||
− | </pre> |
||
Back to [[ASM_Tutorial]] |
Back to [[ASM_Tutorial]] |
Revision as of 16:28, 9 October 2006
*** Interrogation de la SOURIS *** *** DROITE=COORD, 2=QUITTER *** SECTION TEXT TOUCHE MACRO move #7,-(sp) trap #1 addq.l #2,sp ENDM CCONOUT MACRO $\1 move.w \1,-(sp) ;\1=CaractŠre … afficher move.w #2,-(sp) trap #1 addq.l #4,sp ENDM move.l #0,-(sp) move #$20,-(sp) trap #1 addq.l #6,sp move.l d0,SSP cmpi #$0e96,$fc001e ;TOS blitter ? bne NOBLIT move.l #$2740,KDB jmp PRINCIPAL NOBLIT move.l #$26e0,KDB PRINCIPAL move.l KDB,a1 move.b 7(a1),d0 ;Gauche=%01 ;Droite=%10 ,2=%11 cmpi.b #%11,d0 ;2 = quitter beq FIN btst #1,d0 ;diff de %...0. = Bouton DROIT beq PRINCIPAL CCONOUT #27 CCONOUT #'E' move (a1),d0 jsr BINAIRE move 2(a1),d0 jsr BINAIRE jmp PRINCIPAL FIN move.l SSP,-(sp) move #$20,-(sp) trap #1 addq.l #6,sp clr -(sp) trap #1 BINAIRE movem.l d0-d7/a0-a6,-(sp) move d0,d1 move #31,d3 LOOK move #'0',d0 lsl.l #1,d1 bcc ZERO move #'1',d0 ZERO CCONOUT d0 dbf d3,LOOK CCONOUT #10 CCONOUT #13 movem.l (sp)+,d0-d7/a0-a6 rts SECTION BSS KDB ds.l 1 SSP ds.l 1 END
Back to ASM_Tutorial