8. Answer

plot_8   bsr.s   calc            ; Get A1 = screen address
         andi.w  #7,d3           ; D3 = 00000000 00000GRB
         lsl.w   #6,d3           ; D3 = 0000000G RB000000
         move.w  d3,d4           ; D4 = 0000000G RB000000
         lsl.w   #7,d4           ; D4 = GRB00000 00000000
         andi.w  #$8000,d4       ; D4 = G0000000 00000000
         andi.w  #$00C0,d3       ; D3 = 00000000 RB000000
         or.w    d4,d3           ; D3 = G000000G RB000000
         move.w  #$7f3f,d2       ; AND mask = 01111111 00111111
         andi.w  #6,d1           ; (x AND 6) in d1
         ror.w   d1,d2           ; Build correct AND mask
         ror.w   d1,d3           ; Build correct OR mask (colour)
         and.w   d2,(a1)         ; AND out the changing pixel
         or.w    d3,(a1)         ; OR in the (new) colour
         moveq   #0,d0           ; No errors
         rts                     ; All done