Pl3 EX ASS 1.S: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
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 *** |
||
⚫ | |||
− | |||
− | |||
⚫ | |||
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, |
+ | 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 # |
+ | moveq.l #0,d1 |
move.l a0,a6 |
move.l a0,a6 |
||
− | + | cr: |
|
move.l d1,(a6)+ |
move.l d1,(a6)+ |
||
− | dbf d0, |
+ | 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 |
+ | move.l a0,d5 ;a0= LOG |
− | lsr.l #8,d5 ;MMU |
+ | lsr.l #8,d5 ;MMU --> ECHANGE |
− | move.b d5,$ff8203 |
+ | move.b d5,$ff8203 |
− | lsr.l #8,d5 |
+ | 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. |
+ | 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 |
||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
ssp ds.l 1 |
ssp ds.l 1 |
||
⚫ | |||
− | |||
END |
END |
Revision as of 16: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