Pl3 EX ASS 1.S: Difference between revisions

From AtariForumWiki
Jump to navigation Jump to search
>Zorro 2
No edit summary
 
>Wongck
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 3: Line 3:
*** ILLUSTRATION DES OPERATIONS SUR LA RAM VIDEO ET L'ECRAN LOGIQUE ***
*** ILLUSTRATION DES OPERATIONS SUR LA RAM VIDEO ET L'ECRAN LOGIQUE ***
          move.l    a7,a5 ;Initialise le TOS
          lea        pile,a7
          move.l    4(a5),a5   
          move.l    $c(a5),d0   
          add.l      $14(a5),d0
          add.l      $1c(a5),d0
          add.l      #$100,d0
          move.l    d0,-(sp)
          move.l    a5,-(sp)
          move      #0,-(sp)
          move      #$4a,-(sp) ;SETBLOCK
          trap      #1
          add.l      #12,sp


clr.l -(sp) ;super
clr.l -(sp) ;super
Line 24: Line 9:
addq.l #6,sp
addq.l #6,sp
move.l d0,ssp
move.l d0,ssp
* ECRIRE sur PHYS puis LOG et poser LOG sur PHYS *
* ECRIRE sur PHYS puis LOG et poser LOG sur PHYS *
move.l #INTRO,-(sp) ;Texte sur PHYS
move.w #$09,-(sp)
trap #1
addq.l #6,sp
move #7,-(sp) ;TOUCHE
trap #1
addq.l #2,sp
move.l #ecran+256,d0 ;adresse LOG
move.l #ecran+256,d0 ;adresse LOG
Line 46: Line 21:
*** On ecrit sur le PHYS ***
*** On ecrit sur le PHYS ***
 
move.l #7999,d0 ;clear PHYS SCREEN
move.l #7999,d0 ;Write of PHYS
moveq.l #-1,d1
moveq.l #-1,d1
move.l a5,a6
move.l a5,a6
cr:
clear_scr:
move.l d1,(a6)+
move.l d1,(a6)+
dbf d0,cr
dbf d0,clear_scr
 


move.l #TEXTE,-(sp) ;Texte sur PHYS
move.w #$09,-(sp)
trap #1
addq.l #6,sp
move #7,-(sp) ;TOUCHE
move #7,-(sp) ;TOUCHE
trap #1
trap #1
Line 67: Line 34:


*** On ecrit sur le LOG ***
*** On ecrit sur le LOG ***
move.l #7999,d0 ;Write of LOG
move.l #7999,d0 ;Write of LOG
moveq.l #-1,d1
moveq.l #0,d1
move.l a0,a6
move.l a0,a6
acr:
cr:
move.l d1,(a6)+
move.l d1,(a6)+
dbf d0,acr
dbf d0,cr
 
move.l a0,d5 ;a0= LOG
lsr.l #8,d5 ;MMU -->  PHYS devient LOG
move.b d5,$ff8203 ;on travaille sur LOG
lsr.l #8,d5 ;(On change le PHYS sous LOG)
move.b d5,$ff8201 ;¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹
move #7,-(sp) ;TOUCHE
move #7,-(sp) ;TOUCHE
trap #1
trap #1
addq.l #2,sp
addq.l #2,sp
*** On pose LOG sur PHYS ***
*** On pose LOG sur PHYS ***
move.l a5,d5 ;a5= PHYS
move.l a0,d5 ;a0= LOG
lsr.l #8,d5 ;MMU --> LOG devient PHYS
lsr.l #8,d5 ;MMU --> ECHANGE
move.b d5,$ff8203 ;on d‚pose le LOG sur PHYS
move.b d5,$ff8203
lsr.l #8,d5 ;(le PHYS chang‚ revient)
lsr.l #8,d5
move.b d5,$ff8201 ;¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹
move.b d5,$ff8201


move #7,-(sp) ;TOUCHE
move #7,-(sp) ;TOUCHE
Line 108: Line 65:
addq.l #6,sp
addq.l #6,sp
clr.w -(sp) ;PTERM
clr.l -(sp) ;PTERM
trap #1
trap #1
SECTION    DATA
TEXTE DC.B 27,'Y',32,32,' TEXTE ‚crit sur l',39,'‚cran LOGIQUE et pos‚ sur',10,13
DC.B ' l',39,'‚cran PHYSIQUE  ... blablabla :',10,13
REPT 22
DC.B 'textetextetextetextetextetextetextetextetexte',10,13
ENDR
DC.B      0
INTRO DC.B 27,'E','Compare l',39,'affichage normal avec celui'
DC.B ' LOG sur PHYS  (L-P, 1/89)',0
SECTION    BSS
SECTION    BSS
ds.b 500 ;USP
pile ds.b 1
ecran ds.b 32256 ;LOG SCREEN (1*32000+256)


ecran ds.l 32000 ;PHYS SCREEN
ssp ds.l 1
ssp ds.l 1
 
log ds.l 1


END
END
Line 141: Line 79:
</pre>
</pre>
Back to [[ASM_Tutorial]]
Back to [[ASM_Tutorial]]
[[Category : ASSEMBLER on ATARI ST 68000 Part 3]]

Latest revision as of 11:22, 12 October 2011

	
*** ILLUSTRATION DES OPERATIONS SUR LA RAM VIDEO ET L'ECRAN LOGIQUE ***
	

	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

	
	
	*** On ecrit sur le PHYS ***
	
	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

	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
	trap	#1
	addq.l	#2,sp
	
	
	*** On pose LOG sur PHYS ***
		
	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
	move	#$20,-(sp)
	trap	#1
	addq.l	#6,sp
		
	clr.l	-(sp)		;PTERM
	trap	#1
	
	
	SECTION    BSS

ecran	ds.l	32000		;PHYS SCREEN
ssp	ds.l	1
log	ds.l	1

	END
	
		

Back to ASM_Tutorial