home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / INC_MAG / INC_3.MSA / TEXT_LINE_A.TXT < prev    next >
Text File  |  1990-03-17  |  5KB  |  128 lines

  1.            Gla
  2.  
  3.  
  4.  
  5.  
  6. This one won't be especially deep or hevy but I think it might be 
  7. useful,  yeas all the information in this article can be found in 
  8. "Internals" and "Concise" but,  their chapters about Line-A don't 
  9. feature  the  experience and trouble shooting that  only  can  be 
  10. experienced  by "trial and error".  Therefor read careful  caurse 
  11. this article will feature several extreamly well (modesy,  what's 
  12. that?  is  it  a new pizza?) documented sources as well  as  some 
  13. plain raw facts.  But why waste time let's get right on with  the 
  14. stuff,  by the way it's good if you have some previous experience 
  15. about  the bit mapped grapics (see the previous issue of the  Inc 
  16. for that).  This article is splitted up into two parts, why? Well 
  17. thatre is some utterly extreame calls that requires a deeper look, 
  18. they will be described in the Part two while the more normal ones 
  19. is  found  in Part one  article in this  issue.  One  more  thing 
  20. before  I'll  get on with it,  there is something  utterly  badly 
  21. documented  thing called "Line-F" I'll comeback in a later  issue 
  22. (hopefully in the next one) with a deep description of what  that 
  23. is. The Line-F are called with DC.W $F00x instead of the line-A's 
  24. DC.W $A00x.
  25.  
  26.                     Line-A grapics, part one.
  27.  
  28. Before I'll describe an DC.W $A000
  29. ything in the deep I'll start with a brief 
  30. overview  of  the  commands and  what  Line-A  actually  is.  The 
  31. commands are:
  32.      
  33. $A000 The "initzialiation" of Line-A it returnes some values.
  34. $A001 The dot plotting routine
  35. $A002 This one get's the color of a dot on screen.
  36. $A003 Draw line, the most intresting.
  37. $A004 Draw horizontal line (like above but only horizontal)
  38. $A005 Draw a filled Rectangle/box.
  39. $A006 Draw a filled polygon (slow!)
  40. $A007 Bit block transfer (see the other Line-A article)
  41. $A008 Text block transfer (see above)
  42. $A009 Mouse on 
  43. $A00A Mouse off, it don't removes the interrupt just the pointer.
  44. $A00B Change mouse style "look".
  45. $A00C Remove sprite (software, slow)
  46. $A00D Draw sprite (above!)
  47. $A00E Copy raster form, haves nothing to bo with raster bars.
  48. $A00F Fill
  49.  
  50. The  line-A  isn't very user friendly it's rather a  bit  hostile 
  51. against  the  user  since  if you  pass  a  completly  messed  up 
  52. coordinate  to  $A006 it won't return a error  message  like  the 
  53. GEMDOS  and BIOS/XBIOS traps does it  will crash of mess up  your 
  54. poor  ST/STE  compleately.  I guess it's not included as  a  trap 
  55. caurse it dosen't have anything to do with GEMDOS nor  BIOS/XBIOS 
  56. in case you didn't know it,  the BIOS and Xbios are both  calling 
  57. the  GEMDOS and the otherway around,  but Line-A is Atari's  idea 
  58. and  have  nothing to do with the IBM-PC,  from where  Gemdos  is 
  59. originaly).  Though the Xbios is ST specific.  Let's now continue 
  60. with  explaining the most important Line-A  variables.  The  most 
  61. anoying ones must be the X1,Y1 and X2,Y2 pairs.  They are used in 
  62. most calls though they arent used in $A001 (plot) where one could 
  63. expect to find a such command. Do keep in mind that the registers 
  64. D0-D2 and A0-A2 will be thrashed. Save them away with this line.
  65.  
  66.    MOVEM.L D0-D2/A0-A2,-(SP)
  67.  
  68. And recover them with:
  69.  
  70.    MOVEM.L (SP)+,D0-D2/A0-A2
  71.  
  72. The  usage of line A is very easy as soon as one gets a  hang  of 
  73. the build up of it.  To draw a horizontal line for  example,  one 
  74. will have to do like this:
  75.  
  76.    * Call line A to get the start of the line-A calls.
  77.    * Pass the required values to line A.
  78.    * Call the function with DC.W $A004
  79.  
  80. In  "The Consice Atari St" is the parameters required to be  sent 
  81. organized like this.
  82.  
  83.    $26 X1 coordinate
  84.    $28 Y1 coordinate
  85.    $2A X2 coordinate
  86.  
  87. What  is  the  hex value written before the  description  of  the 
  88. parameter?  Well,  it's the offset from the start of Line-A where 
  89. the values should be passed into.  With this example I hope  that 
  90. you'll understand.
  91.  
  92.    DC.W  $A000
  93.    MOVE.W 10,$26(A0)
  94.    MOVE.W 10,$28(A0)
  95.    MOVE.W 300,$2A(A0)
  96.    MOVE.W 120,$2C(A0)
  97.  
  98. Since A0 contains the base address of the line-A parameter  table 
  99. is  it that simple to do it.  Another way to do that and  perhaps 
  100. easyer to understand is like this:
  101.    
  102.    DC.W  $A000
  103.    ADD.W #$26,A0
  104.    MOVE.W #10,(A0)
  105.  
  106. I hope you'll understand what the "offset" is now.  Now wont this 
  107. article feature any more,  now load the Part one article and read 
  108. about the first 7 calls in that one.  In Part two (allso in  this 
  109. issue)  is the last 9 calls featuerd.  The reason why  I  devided 
  110. them  up  was becurse the first 7 are user  friendly  and  "easy" 
  111. while the last 9 is lousy documented (with a few exceptions  such 
  112. as  $A00A and $A009) and don't have any source examples.  But  if 
  113. you  reads the blitter article then will ya understand  that  you 
  114. don't need Line-A for most of those 9 calls since all of them can 
  115. be  done  with some rather easy blitter calls and they  are  done 
  116. much faster in that way.  Any questions?  If so send me a  letter 
  117. (or two) to:
  118.  
  119. Kent Johansson
  120. Mariehmsvägen 37a
  121. S-902 36 Umeå
  122. Sweden.
  123.  
  124. Or give me a call:
  125. 090-139994 
  126. +46(0)90139994 
  127.  
  128.