| Assembler: |
movem.l D0-D2/A0-A2,-(A7) ; Save registers
move.l pParamblk,A0 ; Pointer parameter block LINEA
move.l (4,A0),A1 ; contrl to A1
move.l s_mfdb,D0 ; Address source MFDB to D0
move.w D0,(8,A1) ; Lower WORD source MFDB to contrl[8]
lsr.l #8,D0 ; Move upper WORD of D0 ...
lsr.l #8,D0 ; ... onto lower WORD
move.w D0,(7,A1) ; Upper WORD source MFDB to contrl[7]
move.l d_mfdb,D0 ; Address destination MFDB to D0
move.w D0,(10,A1) ; Lower WORD destination MFDB to contrl[10]
lsr.l #8,D0 ; Move upper WORD of D0 ...
lsr.l #8,D0 ; ... onto lower WORD
move.w D0,(9,A1) ; Upper WORD destination MFDB to contrl[9]
move.l intin,(8,A0) ; contrl in LINEA.contrl
move.l (8,A0),-(A7) ; Save old value of the intin field
move.l intin,(8,A0) ; intin in LINEA.intin
move.l (12,A0),-(A7) ; Save old value of the ptsin field
move.l intin,(8,A0) ; ptsin in LINEA.ptsin
move.w patptr,(44,A0) ; Line pattern in LINEA.patptr
move.w multifill,(50,A0) ; Plane flag in LINEA.multifill
move.w copy_tran,(116,A0) ; Copy mode in LINEA.copy_tran
dc.w $A00E ; Line-A opcode
move.l pParamblk,A0 ; Pointer parameter block LINEA
move.l (A7)+,(12,A0) ; Restore old value of the ptsin field
move.l (A7)+,(8,A0) ; Restore old value of the intin field
movem.l (A7)+,D0-D2/A0-A2 ; Restore registers
|