Difference between revisions of "Pl3 EX ASS 1.S"

From AtariForumWiki2018
Jump to: navigation, search
 
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

Revision as of 17:28, 9 October 2006

	
*** 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