;; BLTCON? configuration ;; http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node011C.html ;; blitter logic function minterm truth table ;; fill in D column for desired function ;; A(mask) B(bob) C(bg) D(dest) ;; - - - - ;; 0 0 0 0 ;; 0 0 1 1 ;; 0 1 0 0 ;; 0 1 1 1 ;; 1 0 0 0 ;; 1 0 1 0 ;; 1 1 0 1 ;; 1 1 1 1 ;; read D column from bottom up = 11001010 = $ca ;; this is used in the LF? bits BLIT_LF_MASK_MINTERM equ $ca BLIT_DEST equ $100 BLIT_SRCC equ $200 BLIT_SRCB equ $400 BLIT_SRCA equ $800 BLIT_ASHIFTSHIFT equ 12 ;Bit index of ASH? bits BLIT_BOB_WIDTH64 equ 64+16 ; Must blit extra word to allow shifting BLIT_BOB_HEIGHT64 equ 64 BLIT_BOB_WIDTH64_BYTES equ BLIT_BOB_WIDTH64/8 BLIT_BOB_WIDTH64_WORDS equ BLIT_BOB_WIDTH64/16 blitWait: tst DMACONR(a6) ;for compatibility .waitblit: btst #6,DMACONR(a6) bne.s .waitblit rts ;; blitMaskedObject64 ;; a3 - xpos ;; a4 - ypos ;; a0 - display ;; a1 - object ;; a2 - mask blitMaskedObject64: movem.l d0-a6,-(sp) move.l (a3),d0 move.l (a4),d1 bsr blitWait ;; d0 = XPOS ;; d1 = YPOS ;; d4 = XPOS_BYTES move.w d0,d4 ; d4 = XPOS lsr.w #3,d4 ; d4 = XPOS_BYTES ;; this shift will give us the bits to shift (bits 0-3) in bits (12-15) of d0 lsl.w #8,d0 ; BLIT_SOURCE_SHIFT<