home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / diskmags / shoah_s_iss1.lha / source / Bitplane.s next >
Encoding:
Text File  |  1991-06-13  |  4.4 KB  |  181 lines

  1. ;      _______  ___                    ___        _______
  2. ;     /°-     \/. /    _____   ____   / ./       /°-     \
  3. ;     \   \___//  \___/°    \_/°   \_/   \___    \   \___/
  4. ;    _/\__    \      ~\_  /\  \  /\ ~\      °\_ _/\__    \
  5. ;    \\       /   /\   /  \/. /  \/   \ //\   / \\       /
  6. ;     \______/\__/  \_/\_____/\____/\_/_/  \_/ o \______/ Issue 1
  7.  
  8. ;Simple bitplane display
  9. ;By Squize    9/12/94
  10.  
  11.     opt c-                ;Always set this !
  12.  
  13.     Section    Bitplanes,Code        ;Always put the code in public mem,
  14.                     ;so people with Fast Ram get the
  15.                     ;benefit
  16.  
  17. ;*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
  18.  
  19.     include    SHOAH.s:SHOAH_Libs/Macros.lib
  20.                     ;I've made some nice macros to
  21.                     ;make life that little bit easier
  22.  
  23. ;*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
  24.  
  25. Start:
  26.     bsr.s    TakeSystem        ;Kill the OS
  27.     tst    d0            ;Did we have an error ?
  28.     bne.s    Error            ;Yes, so quit
  29.  
  30.     bsr    Init            ;Run our little example
  31.  
  32.     bsr    RestoreSystem        ;Finished, so restore the OS
  33.  
  34.     moveq.l    #0,d0            ;Keep Mr.CLI happy
  35. Error:
  36.     rts
  37.  
  38. ;*+*+*+*+*+*+*+*+*+*+*+- Library Routines -+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
  39.     
  40.     include    SHOAH.s:SHOAH_Libs/Startup.lib
  41.  
  42. ;*+*+*+*+*+*+*+*+*+*+*+- Start up Routines -+*+*+*+*+*+*+*+*+*+*+*+*+*+*
  43. Init:
  44.     move.l    #Picture,d0        ;Set up all the constants
  45.     move.l    d0,d1
  46.     move.l    #10240,d2        ;Size of the screen ( Remember ? )
  47.     lea    Bplanes,a0        ;Point to the bitplane pointers
  48.  
  49.     move    d1,4(a0)        ;Stuff the lo/hi pointers into the
  50.     swap    d1            ;bitplane pointers in the copperlist
  51.     move    d1,(a0)
  52.         addq.l    #8,a0        ;Next set of bitplane pointers
  53.         add.l    d2,d0        ;Next bitplane
  54.         move.l    d0,d1    
  55.     move    d1,4(a0)        ;Keep on doing all this for all 5
  56.     swap    d1            ;bitplanes
  57.     move    d1,(a0)
  58.         addq.l    #8,a0
  59.         add.l    d2,d0
  60.         move.l    d0,d1    
  61.     move    d1,4(a0)
  62.     swap    d1
  63.     move    d1,(a0)
  64.         addq.l    #8,a0
  65.         add.l    d2,d0
  66.         move.l    d0,d1    
  67.     move    d1,4(a0)
  68.     swap    d1
  69.     move    d1,(a0)
  70.         addq.l    #8,a0
  71.         add.l    d2,d0
  72.     move    d0,4(a0)
  73.     swap    d0
  74.     move    d0,(a0)
  75.  
  76.     lea    Picture+51200,a0        ;Point to the palette data
  77.     lea    Paper,a1            ;Point to the colour regs.
  78.     move    #32-1,d7            ;Number of colours
  79. .palette_loop
  80.     move    (a0)+,(a1)            ;Slap the colours in there
  81.     addq.l    #4,a1    
  82.     dbra    d7,.palette_loop
  83.  
  84.     Copper_Set    Copperlist        ;This is my macro for turning
  85.                         ;on the copperlist
  86.  
  87.     move    #%1000001110000000,$96(a5)    ;DMA:Copper/Bitplane on !
  88.  
  89.     bsr.s    Main                ;Now run the main loop
  90.  
  91.     rts                    ;All done, so go back to
  92.                         ;"RestoreSystem"
  93.  
  94. ;*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
  95. ;*+*+*+*+*+*+*+*+*+*+*+- The Main Loop -+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
  96. ;*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
  97. MAIN:
  98.  
  99. ;*+*+*+    Check for quit
  100.  
  101.     Mouse_button    Main        ;Another macro, if the left mouse
  102.                     ;button is not pressed then it'll
  103.                     ;loop to main
  104.     rts                ;LMB pressed, so return to "Init"
  105.  
  106. ;*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
  107. ;*+*+*+*+*+*+*+*+*+*+*+- Chip-Ram Stuff -+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
  108.  
  109.     section    ChipRam,Code_c        ;All copperlists/bitplanes/sound/
  110.                     ;sprites/bobs etc. MUST be in
  111.                     ;ChipRam !
  112.  
  113. ;*+*+*+*+*+*+*+*+*+*+*+- Copper Lists -+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
  114.  
  115. Copperlist:
  116.     dc.w $00e0        ;Pointers for bitplane 1
  117. Bplanes    dc.w $0000
  118.     dc.l $00e20000
  119.     dc.l $00e40000        ;Pointers for bitplane 2
  120.     dc.l $00e60000
  121.     dc.l $00e80000        ;Pointers for bitplane 3
  122.     dc.l $00ea0000
  123.     dc.l $00ec0000        ;Pointers for bitplane 4
  124.     dc.l $00ee0000
  125.     dc.l $00f00000        ;Pointers for bitplane 5
  126.     dc.l $00f20000
  127.  
  128.     dc.w $0108,$0000    ;Set the modulos
  129.     dc.w $010a,$0000
  130.  
  131.     dc.l $008e2c81,$00902cc1    ;Set the size of the screen
  132.     dc.l $00920038,$009400d0
  133.  
  134.     dc.w $0102,$0000    ;No scrolling
  135.  
  136.     dc.w $0104,$0000    ;Put all the sprites at the back
  137.  
  138.     dc.w $0180            ;The screen colours start
  139. Paper    dc.w $0000            ;here...
  140.     dc.l $01820000
  141.     dc.l $01840000
  142.     dc.l $01860000
  143.     dc.l $01880000
  144.     dc.l $018a0000
  145.     dc.l $018c0000
  146.     dc.l $018e0000
  147.     dc.l $01900000
  148.     dc.l $01920000
  149.     dc.l $01940000
  150.     dc.l $01960000
  151.     dc.l $01980000
  152.     dc.l $019a0000
  153.     dc.l $019c0000
  154.     dc.l $019e0000
  155.     dc.l $01a00000
  156.     dc.l $01a20000
  157.     dc.l $01a40000
  158.     dc.l $01a60000
  159.     dc.l $01a80000
  160.     dc.l $01aa0000
  161.     dc.l $01ac0000
  162.     dc.l $01ae0000
  163.     dc.l $01b00000
  164.     dc.l $01b20000
  165.     dc.l $01b40000
  166.     dc.l $01b60000
  167.     dc.l $01b80000
  168.     dc.l $01ba0000
  169.     dc.l $01bc0000
  170.     dc.l $01be0000            ;...and end here
  171.  
  172.         dc.l $3401fffe    ;Wait 'til at the top of the screen
  173.     dc.w $0100,$5200    ;Turn on 5 bitplanes, ie 32 colour screen
  174.  
  175.         dc.l $fffffffe    ;End the copperlist
  176.         dc.l $fffffffe
  177.  
  178. ;*+*+*+*+*+*+*+*+*+*+*+- Data -+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
  179. Picture:
  180.     incbin    SHOAH.s:data/picture.raw
  181.     even