Assembler: |
; Register retten
movem.l D0-D2/A0-A2,-(A7)
; Zeiger Parameterblock LINEA
move.l pParamblk,A0
; contrl nach A1
move.l (4,A0),A1
; Adresse Source MFDB nach D0
move.l s_mfdb,D0
; Unteres Wort Source MFDB nach contrl[8]
move.w D0,(8,A1)
; Oberes Wort von D0 ...
lsr.l #8,D0
; ... auf unteres Wort schieben
lsr.l #8,D0
; Oberes Wort Source MFDB nach contrl[7]
move.w D0,(7,A1)
; Adresse Ziel MFDB nach D0
move.l d_mfdb,D0
; Unteres Wort Ziel MFDB nach contrl[10]
move.w D0,(10,A1)
; Oberes Wort von D0 ...
lsr.l #8,D0
; ... auf unteres Wort schieben
lsr.l #8,D0
; Oberes Wort Ziel MFDB nach contrl[9]
move.w D0,(9,A1)
; contrl in LINEA.contrl
move.l intin,(8,A0)
; alten Wert des intin Feldes retten
move.l (8,A0),-(A7)
; intin in LINEA.intin
move.l intin,(8,A0)
; alten Wert des ptsin Feldes retten
move.l (12,A0),-(A7)
; ptsin in LINEA.ptsin
move.l intin,(8,A0)
; Linienmuster in LINEA.patptr
move.w patptr,(44,A0)
; Ebenenflag in LINEA.multifill
move.w multifill,(50,A0)
; Kopiermodus in LINEA.copy_tran
move.w copy_tran,(116,A0)
; Line-A Opcode
dc.w $A00E
; Zeiger Parameterblock LINEA
move.l pParamblk,A0
; alten Wert des ptsin Feldes restaurieren
move.l (A7)+,(12,A0)
; alten Wert des intin Feldes restaurieren
move.l (A7)+,(8,A0)
; Register restaurieren
movem.l (A7)+,D0-D2/A0-A2
|