Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File6.19.1 Bindings für copy_raster TOS Pure-C: void copy_raster( void ); /* WARNING: NOT supported ! */ Assembler: movem.l D0-D2/A0-A2,-(A7) ; Register retten move.l pParamblk,A0 ; Zeiger Parameterblock LINEA move.l (4,A0),A1 ; contrl nach A1 move.l s_mfdb,D0 ; Adresse Source MFDB nach D0 move.w D0,(8,A1) ; Unteres Wort Source MFDB nach contrl[8] lsr.l #8,D0 ; Oberes Wort von D0 ... lsr.l #8,D0 ; ... auf unteres Wort schieben move.w D0,(7,A1) ; Oberes Wort Source MFDB nach contrl[7] move.l d_mfdb,D0 ; Adresse Ziel MFDB nach D0 move.w D0,(10,A1) ; Unteres Wort Ziel MFDB nach contrl[10] lsr.l #8,D0 ; Oberes Wort von D0 ... lsr.l #8,D0 ; ... auf unteres Wort schieben move.w D0,(9,A1) ; Oberes Wort Ziel MFDB nach contrl[9] move.l intin,(8,A0) ; contrl in LINEA.contrl move.l (8,A0),-(A7) ; alten Wert des intin Feldes retten move.l intin,(8,A0) ; intin in LINEA.intin move.l (12,A0),-(A7) ; alten Wert des ptsin Feldes retten move.l intin,(8,A0) ; ptsin in LINEA.ptsin move.w patptr,(44,A0) ; Linienmuster in LINEA.patptr move.w multifill,(50,A0) ; Ebenenflag in LINEA.multifill move.w copy_tran,(116,A0) ; Kopiermodus in LINEA.copy_tran dc.w $A00E ; Line-A Opcode move.l pParamblk,A0 ; Zeiger Parameterblock LINEA move.l (A7)+,(12,A0) ; alten Wert des ptsin Feldes restaurieren move.l (A7)+,(8,A0) ; alten Wert des intin Feldes restaurieren movem.l (A7)+,D0-D2/A0-A2 ; Register restaurieren