Difference between revisions of "Pl3 MOUSECOO.S"

From AtariForumWiki2018
Jump to: navigation, search
 
Line 1: Line 1:
 
<pre>
 
<pre>
−
 
−
*** ILLUSTRATION DES OPERATIONS SUR LA RAM VIDEO ET L'ECRAN LOGIQUE ***
 
−
 
  
−
clr.l -(sp) ;super
+
*** 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)
 
move #$20,-(sp)
 
trap #1
 
trap #1
 
addq.l #6,sp
 
addq.l #6,sp
−
move.l d0,ssp
 
 
 
−
* ECRIRE sur PHYS puis LOG et poser LOG sur PHYS *
+
move.l d0,SSP
 +
 +
cmpi #$0e96,$fc001e ;TOS blitter ?
 +
bne NOBLIT
 +
move.l #$2740,KDB
 +
jmp PRINCIPAL
 
 
−
move.l #ecran+256,d0 ;adresse LOG
+
NOBLIT move.l #$26e0,KDB
−
and.l #$ffffff00,d0 ;divisible par 256
 
−
move.l d0,a0 ;a0=LOG
 
−
move.l $44e,a5 ;a5=PHYS
 
  
 +
PRINCIPAL
 +
move.l KDB,a1
 +
move.b 7(a1),d0 ;Gauche=%01
 +
  ;Droite=%10  ,2=%11
 
 
−
+
cmpi.b #%11,d0 ;2 = quitter
−
*** On ecrit sur le PHYS ***
+
beq FIN
−
+
−
move.l #7999,d0 ;clear PHYS SCREEN
+
btst #1,d0 ;diff de %...0. = Bouton DROIT
−
moveq.l #-1,d1
+
beq PRINCIPAL
−
move.l a5,a6
 
−
clear_scr:
 
−
move.l d1,(a6)+
 
−
dbf d0,clear_scr
 
−
 
 
−
move #7,-(sp) ;TOUCHE
 
−
trap #1
 
−
addq.l #2,sp
 
−
 
 
−
 
 
−
*** On ecrit sur le LOG ***
 
−
 
−
move.l #7999,d0 ;Write of LOG
 
−
moveq.l #0,d1
 
−
move.l a0,a6
 
−
cr:
 
−
move.l d1,(a6)+
 
−
dbf d0,cr
 
  
−
move #7,-(sp) ;TOUCHE
+
CCONOUT  #27
−
trap #1
+
          CCONOUT  #'E'
−
addq.l #2,sp
+
         
 +
move (a1),d0
 +
jsr BINAIRE
 
 
 +
move 2(a1),d0
 +
jsr BINAIRE
 
 
−
*** On pose LOG sur PHYS ***
+
jmp PRINCIPAL
−
 
−
move.l a0,d5 ;a0= LOG
 
−
lsr.l #8,d5 ;MMU --> ECHANGE
 
−
move.b d5,$ff8203
 
−
lsr.l #8,d5
 
−
move.b d5,$ff8201
 
−
 
 
−
move #7,-(sp) ;TOUCHE
 
−
trap #1
 
−
addq.l #2,sp
 
 
 
 
 
−
move.l ssp,-(sp) ;USER
+
FIN move.l SSP,-(sp)
 
move #$20,-(sp)
 
move #$20,-(sp)
 
trap #1
 
trap #1
 
addq.l #6,sp
 
addq.l #6,sp
−
+
−
clr.l -(sp) ;PTERM
+
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
 
 
−
SECTION    BSS
+
KDB ds.l 1
 +
SSP ds.l 1
  
−
ecran ds.l 32000 ;PHYS SCREEN
+
END
−
ssp ds.l 1
 
−
log ds.l 1
 
  
−
END
+
</pre>
−
 
−
</pre>
 
 
Back to [[ASM_Tutorial]]
 
Back to [[ASM_Tutorial]]

Revision as of 17: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