Name: | »Arbitrary line«
| ||||||||||||||||||||||||||||||||||
Line-A Nummer: | $A003
| ||||||||||||||||||||||||||||||||||
Binding: | Bindings für draw_line
| ||||||||||||||||||||||||||||||||||
Beschreibung: | Diese Line-A Funktion zeichnet eine Line von links oben nach
rechts unten. Die folgenden Line-A Variablen werden benutzt:
Hinweis: Unabhängig von der Reihenfolge der Koordinaten wird die Linie immer von links oben nach rechts unten gezeichnet. Für eine horizontale Linie steht die schnellere Funktion $A004 Horizontal line zur Verfügung. Das Bindings von TC übergibt Linienmaske, Schreibmodus und Farbe nicht an die draw_line Funktion sonder benutzt separate Funktionen set_fg_bp(), set_ln_mask() und set_wrt_mode() zum Setzen der Parameter in dem Line-A Paramterblock. | ||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis. Das Feld ln_mask des Line-A
Paramterblocks ist durch den Ausgabealgorithmus geshiftet.
| ||||||||||||||||||||||||||||||||||
Verfügbar: | Alle TOS-Versionen.
| ||||||||||||||||||||||||||||||||||
Querverweis: | Binding LINEA Horizontal line
|
Pure-C: | void draw_line(int16_t x1, int16_t y1, int16_t x2, int16_t y2);
|
Assembler: |
; Register retten movem.l D0-D2/A0-A2,-(A7) ; Zeiger Parameterblock LINEA move.l pParamblk,A0 ; erste X-Koordinate in LINEA.x1 move.w x1,(38,A0) ; erste Y-Koordinate in LINEA.y1 move.w y1,(40,A0) ; zweite X-Koordinate in LINEA.x2 move.w x2,(42,A0) ; zweite Y-Koordinate in LINEA.y2 move.w y2,(44,A0) ; Bit für erste Plane in LINEA.fg_bp_1 move.w colbit0,(24,A0) ; Bit für erste Plane in LINEA.fg_bp_2 move.w colbit1,(26,A0) ; Bit für erste Plane in LINEA.fg_bp_3 move.w colbit2,(28,A0) ; Bit für erste Plane in LINEA.fg_bp_4 move.w colbit3,(30,A0) ; Linestyle in LINEA.ln_mask move.w lnmask,(34,A0) ; Writemode in LINEA.wrt_mode move.w wmode,(36,A0) ; Linestyle in LINEA.lstlin move.w lstlin,(32,A0) ; Line-A Opcode dc.w $A003 ; Register restaurieren movem.l (A7)+,D0-D2/A0-A2 |