home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 493.lha / Cburst_dev / DEVELOP1.DOC.pp / DEVELOP1.DOC
Encoding:
Text File  |  1991-04-06  |  22.9 KB  |  589 lines

  1.  Here is a list of preliminary functions to access and control a ColorBurst 
  2. screen:-
  3.  
  4.  Firstly a list of the routines, then an explanation of thier access and
  5. functions. Please note that this is a *Very* preliminary set of routines 
  6. and a full set of 'MAC Quickdraw' style library of routines is being compiled
  7. at the moment. The new library will be accessable as an Amiga Sytem Intuiton
  8. style library and will support a full set of draw routines including:-
  9. Rectangle, areafills, polygons, elipse and circle and curves. all of the 
  10. ColorBurst library of routines automatically clip if it exceeds screen
  11. boundarys and have relative X,Y offset as well. The total direction of the
  12. ColorBurst routines will eventually be aimed at fully automatic virtual
  13. memory operation as standard capability (allowing you to have for example
  14. an 8000 * 6000 pixel 24 bit screen as a superbitmap allocated to either FAST
  15. memory or the HARD-DRIVE and fully automatically operate on it as though it
  16. was all in memory). I will have a lot more time to thoroughly compile a
  17. large library of routines after the full release of ColorBurst.
  18. I have written the routines in 100% assembly language for compactness and
  19. speed. 'C' progrmmers should find the Interface and linking fairly strait-
  20. forward. If you are unsure about the variable passsing, have a look at the
  21. file "CB_Link_Stuff.i". Source code for the routines are file "CB_Lib.src"
  22. and are assembly language. These routines will be refined and optomised
  23. continually and at present are not neseccarily in their most graceful
  24. state at this moment.
  25.  
  26.  Please note that a few of these routines were written specific to the paint 
  27. program.these are routines that deal with the ColorPalette selector and the 
  28. Amiga Menu. 
  29. Also Direct intuition support will be provided soon to allow use of the 
  30. Intuiton library for Gadgets, reqeusters and IntuiText. Also possibly for 
  31. windowing support.
  32. I will discuss using the Amiga's Blitter and Copper as well as Intuition
  33. interfacing in a later document.
  34.  
  35. Here is the list of current Developers rotuines as of 26-Feb-91:-
  36.  
  37. [1]    OpenScreen24        ;Open a 24 bit ColorBurst screen
  38. [2]    CloseScreen24        ;close a ColorBurst screen
  39. [3]    DrawRGB            ;Draw a pixel at X,Y with RGB value
  40. [4]    ReadRGB            ;Read a pixel at X,Y with RGB value
  41. [5]    SetControl        ;control video modes and output
  42. [6]    SetRGB            ;Setup the 24 bit palette map
  43. [7]    SetData            ;Set CoPRO control data 
  44. [8]    SetCoPRO        ;Set a list of CoPROcessor intructions
  45. [9]    SetLoadAddress        ;Set display load address (scroll & animate)
  46. [10]     Update_Palette_CoPRO    ;select update to palette or coprocessor
  47. [11]    Chng_DataLine        ;change address of data interface
  48. [12]    Chng_NoWrt_DataLine    
  49. [13]    Select_Col_CoPRO
  50. [14]    Set_Control_Bit        ;set a bit in the control register
  51. [15]    Set_Menu_Position    ;Set paint program menu position
  52. [16]    Set_DMA_Ratio        ;Control the screen DMA update speed
  53. [17]    Load_Menu_Palette    ;Set the colors for the Amiga Menu
  54. [18]    Set_Menu_Bitmap        ;Link in Menu bitplanes into copper list
  55.  
  56. Conventions of passing data to or from the calling program:-
  57. Most direct parameters are passed from the stack. These values are not
  58. pushed onto the stack but are placed just below the current stack pointer
  59. (the stack grows downwards) this is the convention used by most 'C' 
  60. compilers. Here is an example
  61.  
  62. from 'C' :-
  63.  
  64. {
  65.     unsigned char ScreenFlags;
  66.     long *CB_Screen;
  67.     ScreenFlags = 3;        /* Open a Hi-res 24 bit screen */
  68.     CB_Screen = OpenScreen24(ScreenFlags);
  69. }
  70.  
  71. in compiled code the values are passed back and forth like this:-
  72.  
  73. Compiled code:-    
  74.     move.l    (sp),a0
  75.     add.l    #4,a0            ;get past stack pointer
  76.     move.b    ScreenFlags,(a0)    ;pass screen flags value
  77.     bsr    _OpenScreen24        ;do it!
  78.     move.l    a0,*CB_Screen        ;return screen structure pointer
  79.     ....
  80.     ....
  81.     ....                ;and so on     
  82.     
  83. some of the parameters for a lot of these rotuines are passed or recieved
  84. from the ColorBurst's screen structure. An example would be the routine
  85. 'DrawRGB'. The X and Y as well as the relative X & Y and RGB values are to be
  86. directly altered in the ColorBurst screen structure. here is a 'C' example
  87. of DrawRGB:-
  88.  
  89. {
  90.     ....                ;Your code goes here
  91.     ....
  92.     CB_Screen.Pen_X = My_X;        /* set the Draw X location */
  93.     CB_Screen.Pen_Y    = My_Y;
  94.     CB_Screen.Rel_X = My_Rel_X;    /* set relative locations */
  95.     CB_Screen.Rel_y = My_Rel_y;
  96.     CB_Screen.Red_Value = My_Red    /* Red value */
  97.     CB_Screen.Red_Value = My_Green    /* Green value */
  98.     CB_Screen.Red_Value = My_Blue    /* Blue value */
  99.     DrawRGB();            /* Plot the pixel */
  100.     ....
  101.     ....
  102. }
  103.     
  104.     This may appear as a bit of an indirect way of accessing the 
  105. rotuine, but I have purposely done this to prevent redundant data from
  106. being passed to increase speed where possible. If I was drawing a line 
  107. in the same color for every pixel, I would not want to pass the R, G & B
  108. value with every 'DrawRGB' call. Another example would be during a brush
  109. paste using 'DrawRGB' I would just want to adjust the Relative X & Y
  110. location before calling my brushpaste function instead of having to pass
  111. it or calculate it with the X & Y values in my Brush Paste routine.
  112. This also gives you the ability to 'see' what was the last values you passed
  113. or to directly pass the values on from one routine to another without having
  114. to pass data. You could do a 'ReadRGB' Then adjust the Relative X & Y and do
  115. a 'DrawRGB' without having to Update the R, G, & B values to retain pixel 
  116. color.
  117.  
  118. Assembly language calls are very straitforward. Just Place the parameters
  119. past the stack pointer and call the routine. Examine the file 
  120. 'CB_Link_Stuff.i' to see how I am passing the data.
  121.  
  122. Here is the explanation and calling parameters of each routine.
  123.  
  124. ____________________________________________________________________________
  125.  
  126. [1] OpenScreen24:    
  127.  
  128. This routine opens up a 24 bit screen in the requested resolution and returns
  129. a long pointer to the ColorBurst screen structure. It returns -1 if failed.
  130. The OpenScreen routine automatically senses if a Genlock is installed.
  131.  
  132. Different screens are required for PAL and NTSC. Bit 3 of the Open flags
  133. specifies PAL or NTSC.
  134.  
  135. Here is a list of the display flags:-
  136.  
  137.     Bit 3    0 = PAL, 1 = NTSC
  138.     Bit 2    0 = Non overscan, 1 = Overscan
  139.     Bit 1     0 = Non Interlaced, 1 = Interlaced
  140.     Bit 0     0 = Lo Resolution, 1 = High Resolution
  141.  
  142. Please keep unused bits 0 for upward compatibility.
  143. Note:- You may not have enough chip memory for some of the display
  144. resolutions. If you don't, It will still go ahead and open the screen as
  145. long as you have at least 50% of the requested memory, You will need to 
  146. examine the Variable in the ColorBurst screens structure called 
  147. 'Actual_Height' to find if you have lost any and how may lines becuase of 
  148. lack of Amiga memory. It is important to remember that 24 bit screens do
  149. require 24 bits of actual memory, which can add up to a lot of memory.
  150. The future Virtual memory handler will take care of this no matter how
  151. much memory you have available. also ColorBurst does have 1.5 megabytes of
  152. Video Ram onboard. Pictures can be 'Loaded' in components.
  153. Each component of the ColorBurst display is 4 actual bitplanes of data.
  154. This means that a full overscan hi-res image could be loaded on an Amiga
  155. 1000 with 256k of chip ram if it was loaded Component by Component (Which
  156. is NO slower in load time). A different Component loader will be available
  157. shortly or you can use some tricks with this routine.
  158.  
  159. to open the screen pass an 8 bit byte value containing your flags.
  160. The ColorBurst screen structure pointer is passed as a long value in 
  161. register A0. a value of -1 is returned here if the screen could not be 
  162. opened.
  163.     Here is the ColorBurst Screen Structure.
  164.  
  165.         ;Struct CBurstScreen:
  166. Screen_Width    dc.w    0    ;Width of current screen
  167. Screen_Height    dc.w    0    ;Requested height of current screen
  168. Actual_Height    dc.w    0    ;Actual Height of current screen
  169. Mode        dc.w    0    ;Screen Modes (Genlock, Interlace)
  170. PAL_NTSC    dc.b    0    ;PAL or NTSC Modes (PAL = 1; NTSC = 0)
  171. Lo_Hi        dc.b    0    ;Lo or Hi-res $ff = Hi-res
  172. Virtual_Mem    dc.l    0    ;Amount of Virtual memory if required
  173. Mouse_X        dc.w    0    ;Current X mouse position (resolution depend)
  174. Mouse_Y        dc.w    0    ;Current Y mouse position (resolution depend)
  175. Raw_Mouse_X    dc.w    0    ;Raw Mouse position (not affected by res)
  176. Raw_Mouse_Y    dc.w    0    ;Raw Mouse position (not affected by res)
  177. Pen_X        dc.w    0    ;Current X position of Pen
  178. Pen_Y        dc.w    0    ;Current X position of Pen
  179. Rel_X        dc.w    0    ;Relative X offset value 
  180. Rel_Y        dc.w    0    ;Relative Y offset value
  181. Red_Value    dc.b    0    ;Red color Data
  182. Green_Value    dc.b    0    ;Green color Data
  183. Blue_Value    dc.b    0    ;Blue color Data
  184. Kluge_Pad    dc.b    0    ;Oh no! a Kludge filler!
  185. Screen_Planes    dc.w    0    ;Number of Amiga Bitplanes in screen (12/24)
  186. BitMaps        dc.l    0    ;Pointer to Bitmap structure
  187. Menu_BitMaps     dc.l    0    ;Amiga Menu Bitmap structure (5 bitplanes)
  188. Color_BitMaps    dc.l    0    ;Color palette bitmap struct
  189. DMA_Ratio    dc.b    0    ;Screen Update Ratio (for greater speed)
  190. DMA_Enable    dc.b    0    ;Bit 0 on enables screen DMA & screen update
  191. ___________________________________________________________________________
  192.  
  193. [2]    CloseScreen24
  194.  
  195. This will close the current ColorBurst screen.
  196. No values are returned or passed.
  197. ___________________________________________________________________________
  198.  
  199. [3]     DrawRGB
  200.  
  201. This will draw a pixel with the RGB values at any X,Y location.
  202. Relative X,Y offsetting is incorporated as well as automatic clipping
  203. if out of screen boundarys. All values are passed and returned in the
  204. ColorBurst Screen Structure. 
  205. The Values that are used or affected in the ColorBurst screen structure are-
  206.  
  207. Pen_X        ;The X position to plot pixel
  208. Pen_Y        ;The Y position to plot pixel
  209. Rel_X        ;Relative offset for X
  210. Rel_Y        ;Relative offset for Y
  211. Red_Value    ;Byte value for Red
  212. Green_Value    ;Byte value for Green
  213. Blue_Value    ;Byte value for Blue
  214.  
  215. Just set the values that you are changing for the pixel operation.
  216. ____________________________________________________________________________
  217.  
  218. [4]     ReadRGB
  219.  
  220. This will Read a pixel with the RGB values at any X,Y location.
  221. Relative X,Y offsetting is incorporated as well as automatic clipping
  222. if out of screen boundarys. All values are passed and returned in the
  223. ColorBurst Screen Structure. 
  224. The Values that are used or affected in the ColorBurst screen structure are-
  225.  
  226. Pen_X        ;The X position to plot pixel
  227. Pen_Y        ;The Y position to plot pixel
  228. Rel_X        ;Relative offset for X
  229. Rel_Y        ;Relative offset for Y
  230. Red_Value    ;returns Byte value for Red
  231. Green_Value    ;returns Byte value for Green
  232. Blue_Value    ;returns Byte value for Blue
  233.  
  234. Just set the values that you are changing for the pixel operation.
  235. ____________________________________________________________________________
  236.  
  237. [5]    SetControl
  238.  
  239. Sets the Video Control registers. I will go into this in more detail later
  240. this does not need to be called for 'Normal' 24 bit screens but has been
  241. included to give greater control over the ColorBurst Hardware.
  242.  
  243. This will be initialised with the correct data for a standard 24 bit screen
  244. update when the screen is opened.
  245. A thorough understanding of how ColorBurst operated will be needed to have 
  246. successful control of this register.
  247.  
  248. usage:
  249.  
  250. (long)    address of control line to modify
  251. (word)    Data to write to that control line
  252.  
  253. Here is a table of the Bit functions anyway -
  254.  
  255.    **** Control Bit    Name        Function
  256.         --------------------------------------------------------------------
  257.     Bit 15        Reserved    Reserved for future expansion (Low)
  258.     Bit 14        BWR2        Active high writes to Blue bank 2
  259.     Bit 13        GWR2        Active high writes to Green bank 2        
  260.     Bit 12        RWR2        Active high writes to Red bank 2        
  261.     Bit 11        FIELD        Odd or Even field display 
  262.     Bit 10        BWR2        Active high writes to Blue bank 1
  263.     Bit 9        GWR2        Active high writes to Green bank 1        
  264.     Bit 8        RWR2        Active high writes to Red bank 1        
  265.     Bit 7        S0        Video Mode Control
  266.     Bit 6        AUTO        Auto display sync when high    
  267.     Bit 5        Col/Cop        Update (0)Palette or (1)Coprocessor        
  268.     Bit 4        WREN        Enable Write to Col/Cop when high    
  269.     Bit 3        VALID3        must be a 1 for a CBurst frame 
  270.     Bit 2        VALID2        must be a 0 for a CBurst frame 
  271.     Bit 1        VALID1        must be a 1 for a CBurst frame 
  272.     Bit 0        VALID0        must be a 0 for a CBurst frame 
  273.         ___________________________________________________________________
  274.  
  275. There can be as many as 14 of these Control lists involved with the functions
  276. of updating and controlling a 24 bit screen.
  277. _____________________________________________________________________________
  278.  
  279. [6]    SetRGB
  280.  
  281. This sets the Color Register Palette table for Red, Green and Blue. Adjusting
  282. the color palette allows you to fade in and out pictures, do complex color
  283. cycling and strobing or other effects such as glow or image intensifying.
  284. You could even smoothly fade from a postive to a negative Image or do
  285. solarized effects on a 24 bit image.
  286. The overall white balance of the picture can easily be adjusted with this 
  287. as well. the Palette has 256 variables each for Red, Green, and Blue.
  288. It operates in 24 bit mode as a Color Lookup table. any output value can
  289. be assigned to a data input value. $20 of screen data for red could 
  290. actually be assigned the value $ff for example. The Red, Green and Blue
  291. values are independant of each other. This routine is not at all optimised
  292. and I will be providing a faster routine shortly.
  293.  
  294. The values are passed directly as follows:-
  295.  
  296. (byte)    Register to modify
  297. (byte)    Red value    
  298. (byte)    Green value    
  299. (byte)    Blue value    
  300.  
  301. No return values.
  302.  
  303. Note 1:    The palette is already initialised with a gray scale (true 24 bit
  304. output scale) when the screen is opened.
  305.  
  306. Note 2: The palette update must be enabled by a call to 'Update_Palette_CoPRO'
  307. becuase only the Palette or the CoPROcessor can be updated within a field
  308. period (1/60th of a second for NTSC or 1/50th for PAL) You must arbitrate
  309. which you would like to update by calling 'Update_Palette_CoPRO'
  310.  
  311. Note 3: for Glitch free palette update we have provided a double buffered
  312. palette update option allowing you to write a new palette whilst displaying 
  313. the old palette. Alternatively you could just enable the update to the 
  314. CoPROcessor whilst updating the palette then enable update to the Palette
  315. with the routine 'Update_Palette_CoPRO'
  316. ____________________________________________________________________________
  317.  
  318. [7]    SetData    
  319.  
  320. Sets some of the Video Control Registers associated with the CoPROcessor
  321. and video curcuitry.
  322.  
  323. here is a list of each of the variables and thier functions
  324.  
  325. (byte)    ColAddress    Sets the palette load address writing the first
  326.             and cosequetive palette data (ideal for easy
  327.             high speed color cycling or palette Special Effects)
  328.             specify an Address of 0 for normal operation.
  329.  
  330. (byte)    PixelMask    Allows you to mask out specific bits of video data
  331.             before they go through the palette. (great for 
  332.             Animation using less colors or hiding menu
  333.             selections etc.) a logic 1 in this register
  334.             allows the corresponding bit to be enabled in 
  335.             the palette lookup. $00 will let no picture show
  336.             at all except backgound color, and $ff will let
  337.             the full picture show in 24 bits.
  338.  
  339. (byte)    ControlReg    The Control register that controls what video mode
  340.             you are operating in. Black level pedistal (0 IRE
  341.             or a 7.5 IRE) and 6 or 8 bit output DAC operation.
  342.             (for compatibility with 6 bit IBM VGA mode)
  343.             I will need to go into more detail in another 
  344.             document later on the video modes.
  345. ____________________________________________________________________________
  346.  
  347. [8]    SetCoPRO
  348.  
  349. This will setup a coprocessor instruction on the specified scan line.
  350.  
  351. The CoPROcessor is a custom VLSI that allows many powerful functions not
  352. available in most 24 bit systems. Some of the capabalitys of the CoPRO-
  353. cessor are Double Buffered Animation in 24 bits, Page flipped Animation,
  354. Smooth fullscreen glitch free realtime scrolling (Horizontal and vertical),
  355. Changing video modes on any scan line, Changing resolutions, Changing the
  356. priority and mixing of Amiga graphics with ColorBurst graphics, Dual
  357. ColorBurst displays, 2 full stencils for control of video Priority 
  358. allowing you to specify regions of ColorBurst to appear over Amiga graphics
  359. with the stencil. All of these functions can be controlled and modified on
  360. any scan line. 
  361.  
  362. The CoPROcessors functions are very powerful, but there is a lot to discuss
  363. in regard to controlling these functions. I will need to go into detail 
  364. in another document. 
  365.  
  366. here is the calling convention:-
  367.  
  368. (word)    scan line to place instruction
  369. (byte)    Instruction data
  370.  
  371. No return value.
  372.  
  373. Here is a list of the bit functions in each instruction byte
  374.  
  375.     Bit #     Name        Function
  376.         -------------------------------------------------------------------
  377.     Bit 7    AddressLoad*    loads the Video Address counters when low
  378.     Bit 6    S1         Video mode control
  379.     Bit 5    LO/HI         Low = Low resolution; High = Hi-res
  380.     Bit 4    PM        Priority Mode, 1 = use stencil for priority
  381.     Bit 3    PR         Video Priority, 0 = Amiga, 1 = ColorBurst    
  382.     Bit 2    DD         Dual display, 0 = active, 1 = single display    
  383.     Bit 1    DCBD         Use stencil for Dual ColorBurst Display (1)
  384.     Bit 0    BNK         Bank to display 0 = Bank 1; 1 = Bank 2
  385.  
  386. Note 1:    The CoPROcessor will be setup with the correct instruction list for
  387. your 24 bit screen when the screen is opened.
  388.  
  389. Note 2: The CoPRO update must be enabled by a call to 'Update_Palette_CoPRO'
  390. becuase only the Palette or the CoPROcessor can be updated within a field
  391. period (1/60th of a second for NTSC or 1/50th for PAL) You must arbitrate
  392. which you would like to update by calling 'Update_Palette_CoPRO'
  393. ____________________________________________________________________________
  394.  
  395. [9]    SetLoadAddress    
  396.     
  397. Sets the ColorBursts Video address counters with this address when a load
  398. instruction is executed by the ColorBurst. This is what is used for vertical
  399. and horizontal scrolling and can be implemented for page flipped animation
  400. or bring up menus etc at a specified scan line.
  401.  
  402. usage 
  403.  
  404. (long)    ColorBurst internal video Load Address
  405.  
  406. No return value.
  407. ____________________________________________________________________________
  408.  
  409. [10]    Update_Palette_CoPRO
  410.  
  411. Selects whether the Palette or the CoPROcessor will be updated.
  412.  
  413. usage:
  414.  
  415. (byte)    0 = Update Palette, 1 = Update CoPROcessor
  416.  
  417. No return value.
  418.  
  419. Note 1:    Only either the palette or the CoPROcessor can be selected for an
  420. update per frame (1/60th sec NTSC or 1/50th sec PAL). This function can be
  421. used to assure that you do not get glitches while updating a list for the
  422. CoPROcessor or Palette. Just enable update to the Palette while you are
  423. setting up your CoPROcessor list or enable update to the CoPROcessor while
  424. you are changing your palette list.
  425.  
  426. more graceful routines will be provided to accomplish this.
  427. ____________________________________________________________________________ 
  428.  
  429. [11]    Chng_DataLine
  430.     
  431. Changes the address of the bitplane data port for sending the instruction list 
  432. of the CoPROcessor and palette data to the ColorBurst.
  433.  
  434. usage:
  435.  
  436. (long)    New data line bitmap address
  437.  
  438. returns no data.
  439.  
  440. More details will be provided later.
  441.  
  442. Note: This does not need to be modified under 'Normal' circumstances.
  443. _____________________________________________________________________________
  444.  
  445. [12]    Chng_NoWrt_DataLine
  446.  
  447. the same in operation as 'Chng_DataLine' but only changes this data port
  448. address for the copper lists that are used when no video update is enabled
  449.  
  450. usage:
  451.  
  452. (long)    New data line bitmap address
  453. No return data.
  454.  
  455. Note: This does not need to be modified under 'Normal' circumstances.
  456. _____________________________________________________________________________
  457.  
  458. [13]    Select_Col_CoPRO    
  459.  
  460. similar in operation to 'Update_Col_CoPRO' but is a lower level interface
  461. and requires use of 'Set_Control_Bit' to give greater control.
  462.  
  463. useage:
  464. (byte)    0 = Update ColorPalette    , 1 = Update CoPROcessor
  465.  
  466. No return data.
  467. ____________________________________________________________________________
  468.  
  469. [14]    Set_Control_Bit
  470.  
  471. Sets or clears a specific bit in a specified Control word.
  472.  
  473. usage:
  474.  
  475. (long)    pointer to Control data bitplane memory
  476. (byte)     status of bit to modify (0 or 1)
  477. (byte)    bit to modify (0 - 15)
  478.  
  479. No return data.
  480. ____________________________________________________________________________
  481.  
  482. [15]    Set_Menu_Position
  483.  
  484. used in the paint program to setup an Amiga 5 bitplane lo-res menu and cut
  485. it any at the specified vertical position or disable the menu entirely.
  486.  
  487. useage:
  488.  
  489. (word)    Menu Vertical position
  490.  
  491. No return data.
  492. ____________________________________________________________________________
  493.  
  494. [16]    Set_DMA_Ratio
  495.  
  496. allows you to control the update speed to ColorBurst for faster screen 
  497. operations. suggested use of this would be during operations such as area
  498. fills. by slowing down the update rate of the ColorBursts display, it gives
  499. the Amiga processor much faster access to chip memory becuase the 68000
  500. will have much less DMA conflict. By slowing down the update rate by a 
  501. ratio of 2 you will be able to get around a 250% increase in screen 
  502. operations including Blitter and processor operations. Most 24 bit cards
  503. are hardwired to full speed DMA use and would not give you the ability to
  504. turn its own DMA off to allow faster access with the 68000 without losing its
  505. picture. You can entirely turn Amiga DMA off but still fully display the
  506. ColorBurst picture if required.
  507.  
  508. No real speed increase is obtained with a DMA ratio of higher value than 2.
  509. a value of 1 still gives about half the update rate but faster access.
  510. a value of 0 would be used for normal painting opertions and full realtime
  511. screen updates. A value of $ff will turn off Amiga DMA totally until it
  512. is changed to another value.
  513.  
  514. useage:
  515.  
  516. (byte)    The DMA ratio setting
  517.  
  518. No return value.
  519.  
  520. Important Note: The greater the DMA ratio, the slower the update will be to
  521. the ColorBurst memory of the changes to the picture. also with higher
  522. DMA ratios you will notice definate 'steps' of updating to the screen.
  523. You need to select the compromise for your situation. for long sets of pixel
  524. updates to the screen I suggest a value of 2. For realtime painting use a
  525. value of 0, for loading a picture use a value of $ff to hold your old picture
  526. until the new one is loaded, then update the ColorBurst display with the new
  527. picture.
  528. ____________________________________________________________________________
  529.  
  530. [17]    Load_Menu_Palette
  531.  
  532. Loads the Menu with the 32 colors that you want for your menu.
  533. This is used in the paint program menu selector.
  534.  
  535. useage:
  536.  
  537. (long)     pointer to your list of palette settings for the Amiga Menu.
  538.  
  539. No return value.
  540.  
  541. Note : You should have your colors in a word format with 4 bits for red,
  542.  Green and Blue. eg $0RGB starting with palette color 0 and the last word 
  543. will be color register 32
  544. ____________________________________________________________________________
  545.  
  546. [18]    Set_Menu_BitMap
  547.  
  548. Loads the address of the Menu Bitplanes into the ColorBurst menu Copper list
  549.  
  550. useage:
  551.  
  552. (long) pointer to list of bitplane pointers
  553.  
  554. No return value.
  555.  
  556. bitplane pointers should be 5 longwords staring with bitplane 0 and ending 
  557. with bitplane 4.
  558.  
  559. Note: The Amiga Menu will not display unless you link your menu bitplane 
  560. pointers into here after opening the ColorBurst screen.
  561. ____________________________________________________________________________
  562.  
  563. This is a very preliminary set of details on the Library. A full set of
  564. documents will cover every aspect of programming ColorBurst at the highest
  565. and lowest levels of control.
  566.  
  567. Full developer support and information is available on the MAST BBS 
  568. at (702) 359 0132.
  569.  
  570. Full kits will be available shortly. All code can be used or be modified
  571. for use in any commercial software.
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.         
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.