Pl2 CORRIG 3.DOC: Difference between revisions

From Atari Wiki
Jump to navigation Jump to search
(Olivier.jan moved page Pl2 CORRIG 3.DOC to Pl2 CORRIG 3.DOC/fr: Renaming for language version)
Tag: New redirect
 
(Replacing content of with translated version)
Tag: Removed redirect
Line 1: Line 1:
  +
---------
#REDIRECT [[Pl2 CORRIG 3.DOC/fr]]
 
  +
  +
EXERCISE CORRECTIONS
  +
  +
on LineAs
  +
  +
---------
  +
  +
  +
1) Exercise nr° 1:
  +
--------------
  +
Here is the correction listing.
  +
I think this exercise didn't cause you much trouble,
  +
carefully look at this listing, it doesn't have any difficulty.
  +
  +
  +
TEXT
  +
  +
INCLUDE "LINEQU.L" ;the EQUs
  +
INCLUDE "INIT_TOS.L" ;Setblock
  +
INCLUDE "MACROS.L" ;The macros
  +
  +
SETBLOCK ;Initialization
  +
  +
;We search for the address of the internal Table for the LineAs
  +
  +
DC.W $A000 ;return in a0 of the address
  +
;of the internal table
  +
  +
;We drop the addresses of the VDI array tables in the internal table
  +
  +
move.l #CONTROL,ticontrol(a0)
  +
move.l #INTIN,tiintin(a0)
  +
move.l #PTSIN,tiptsin(a0)
  +
move.l #INTOUT,tiintout(a0)
  +
move.l #PTSOUT,tiptsout(a0)
  +
  +
  +
PRINTLINE MOUSE ;text
  +
WAIT ;waiting
  +
  +
lea INTIN,a6 ;address of INTIN in a6
  +
  +
move #0,6(a6) ;0 in intin+6 (mask color)
  +
move #1,8(a6) ;1 in intin+8 (foreground color)
  +
  +
lea DATA,a5 ;address of 'DATA' in a5
  +
  +
move #31,d0 ;31 in d0
  +
adda.l #10,a6 ;increment a6 by 10 units:
  +
;a6 therefore points on intin+10
  +
  +
LOOP move (a5)+,(a6)+ ;we drop the data in
  +
;the INTIN table pointed by
  +
;a6
  +
dbf d0,LOOP ;we loop 32 times for the
  +
;32 data (16 words for the
  +
;mask and 16 words for the
  +
;foreground)
  +
  +
DC.W $A00B ;TRANSFORM MOUSE
  +
  +
move #0,intin ;counter=0
  +
DC.W $A009 ;SHOW MOUSE
  +
  +
PRINTLINE MESSAGE ;text
  +
WAIT ;waiting
  +
TERM ;end
  +
  +
  +
DATA
  +
  +
MOUSE DC.B 27,'E','I change the shape of the mouse cursor...'
  +
DC.B ' mouse ...',0
  +
  +
MESSAGE DC.B 27,'E','Move the MOUSE please ...',7,0
  +
  +
  +
DATA DC.W %0000001110000000 ;the 16 data (WORDS)
  +
DC.W %0000011111000000 ;of the MASK
  +
[...] (omission of repeated patterns)
  +
DC.W %0000001110000000
  +
  +
DC.W %0000000000000000 ;the 16 data (WORDS)
  +
DC.W %0000001110000000 ;of the FOREGROUND
  +
[...] (omission of repeated patterns)
  +
DC.W %0000000000000000
  +
  +
  +
BSS
  +
  +
INCLUDE "TABLEAU.L" ;the VDI table
  +
  +
END
  +
  +
  +
2) Exercise nr°2:
  +
--------------
  +
Again, no major difficulty...
  +
Just needed to be careful to use graphical coordinates that match the used resolution.
  +
  +
(OX)=640 from 0 to 339
  +
(OY)=200 from 0 to 199 (MEDIUM resolution)
  +
  +
  +
TEXT
  +
  +
INCLUDE "LINEQU.L" ;the EQUs
  +
INCLUDE "INIT_TOS.L" ;Setblock
  +
INCLUDE "MACROS.L" ;The macros
  +
  +
[...]
  +
(Rest following the same logic of translation and code structure)
  +
  +
  +
3) Exercise nr°3:
  +
--------------
  +
Here is the listing of the program that draws a rectangle with a PAT
  +
redefined after having loaded the previous grid program.
  +
  +
  +
[...]
  +
(The rest following the same logic of translation and code structure)
  +
  +
  +
4) Exercise nr° 4:
  +
---------------
  +
  +
[...]
  +
(The rest following the same logic of translation and code structure)
  +
  +
  +
5) Exercise nr°5:
  +
--------------
  +
Here is the listing of the program displaying points of different
  +
colors on the screen.
  +
  +
  +
[...]
  +
(The rest following the same logic of translation and code structure)
  +
  +
  +
6) Exercise nr°6:
  +
--------------
  +
Here is the corrected program that displays diamonds without and then with CLIPPING...
  +
  +
  +
[...]
  +
(The rest following the same logic of translation and code structure)
  +
  +
  +
  +
------------------
  +
  +
That's it for the corrections of the exercises on LineAs...
  +
  +
The listings of these 6 programs as well as the executable programs
  +
are of course on this disk in the files:
  +
  +
1) TRANSMOU.L & TRANSMOU.PRG
  +
2) CADRE .L & CADRE .PRG
  +
3) RECTANGL.L & RECTANGL.PRG
  +
4) SPRITE .L & SPRITE .PRG
  +
5) POINT .L & POINT .PRG
  +
6) POLYGONE.L & POLYGONE.PRG
  +
  +
  +
  +
Laurent PIECHOCKI
  +
8,Impasse Bellevue Continue in the file: INTERRUP.DOC
  +
57980 TENTELING ------------
  +
  +
  +
Back to [[ASM_Tutorial]]
  +
[[Category: ASSEMBLER 68000 on ATARI ST Part 2]]

Revision as of 15:05, 17 December 2023


                        EXERCISE CORRECTIONS
                             on LineAs
                        ---------


1) Exercise nr° 1:

  --------------
  Here is the correction listing.
  I think this exercise didn't cause you much trouble,
  carefully look at this listing, it doesn't have any difficulty.
  
              TEXT
              INCLUDE       "LINEQU.L"      ;the EQUs
              INCLUDE       "INIT_TOS.L"    ;Setblock
              INCLUDE       "MACROS.L"      ;The macros
              SETBLOCK                      ;Initialization
We search for the address of the internal Table for the LineAs
              DC.W          $A000           ;return in a0 of the address
                                            ;of the internal table
We drop the addresses of the VDI array tables in the internal table
              move.l        #CONTROL,ticontrol(a0)
              move.l        #INTIN,tiintin(a0)
              move.l        #PTSIN,tiptsin(a0)
              move.l        #INTOUT,tiintout(a0)
              move.l        #PTSOUT,tiptsout(a0)


              PRINTLINE     MOUSE     ;text
              WAIT                     ;waiting
              lea           INTIN,a6   ;address of INTIN in a6
              move          #0,6(a6)   ;0 in intin+6 (mask color)
              move          #1,8(a6)   ;1 in intin+8 (foreground color)
              lea           DATA,a5    ;address of 'DATA' in a5
              move          #31,d0     ;31 in d0
              adda.l        #10,a6     ;increment a6 by 10 units:
                                       ;a6 therefore points on intin+10

LOOP move (a5)+,(a6)+ ;we drop the data in

                                        ;the INTIN table pointed by
                                        ;a6
              dbf           d0,LOOP     ;we loop 32 times for the
                                        ;32 data (16 words for the
                                        ;mask and 16 words for the
                                        ;foreground)
              DC.W          $A00B       ;TRANSFORM MOUSE 
              move          #0,intin    ;counter=0
              DC.W          $A009       ;SHOW MOUSE         
              PRINTLINE     MESSAGE    ;text
              WAIT                     ;waiting 
              TERM                     ;end


              DATA

MOUSE DC.B 27,'E','I change the shape of the mouse cursor...'

              DC.B          ' mouse ...',0

MESSAGE DC.B 27,'E','Move the MOUSE please ...',7,0


DATA DC.W %0000001110000000 ;the 16 data (WORDS)

              DC.W          %0000011111000000    ;of the MASK
              [...] (omission of repeated patterns)
              DC.W          %0000001110000000
              DC.W          %0000000000000000    ;the 16 data (WORDS)
              DC.W          %0000001110000000    ;of the FOREGROUND
              [...] (omission of repeated patterns)
              DC.W          %0000000000000000


              BSS
              INCLUDE       "TABLEAU.L"          ;the VDI table               
              END


2) Exercise nr°2:

  --------------
   Again, no major difficulty...
   Just needed to be careful to use graphical coordinates that match the used resolution.
   (OX)=640 from 0 to 339
   (OY)=200 from 0 to 199  (MEDIUM resolution)


              TEXT
              INCLUDE       "LINEQU.L"      ;the EQUs
              INCLUDE       "INIT_TOS.L"    ;Setblock
              INCLUDE       "MACROS.L"      ;The macros
              [...]
              (Rest following the same logic of translation and code structure)


3) Exercise nr°3:

  --------------
  Here is the listing of the program that draws a rectangle with a PAT
  redefined after having loaded the previous grid program.


              [...]
              (The rest following the same logic of translation and code structure)


4) Exercise nr° 4:

  ---------------
              [...]
              (The rest following the same logic of translation and code structure)


5) Exercise nr°5:

  --------------
 Here is the listing of the program displaying points of different
 colors on the screen.


              [...]
              (The rest following the same logic of translation and code structure)


6) Exercise nr°6:

  --------------
  Here is the corrected program that displays diamonds without and then with CLIPPING...


              [...]
              (The rest following the same logic of translation and code structure)


                             ------------------
That's it for the corrections of the exercises on LineAs...
The listings of these 6 programs as well as the executable programs
are of course on this disk in the files:
     1)   TRANSMOU.L   &  TRANSMOU.PRG
     2)   CADRE   .L   &  CADRE   .PRG
     3)   RECTANGL.L   &  RECTANGL.PRG
     4)   SPRITE  .L   &  SPRITE  .PRG
     5)   POINT   .L   &  POINT   .PRG
     6)   POLYGONE.L   &  POLYGONE.PRG


 Laurent PIECHOCKI
 8,Impasse Bellevue              Continue in the file: INTERRUP.DOC
 57980  TENTELING                                        ------------


Back to ASM_Tutorial