Pl3 EX ASS 1.S: Difference between revisions

From Atari Wiki
Jump to navigation Jump to search
No edit summary
 
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
  +
clear_scr:
cr:
 
 
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 16: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