Hallo,
ich hab in der Mittagspause mal schnell in Pseudocode skizziert,
wie ich mir so eine Line-Routine vorstelle.
Müsste eigentlich funktionieren.

Die Linien sind allerdings noch nicht balanciert,
da war noch ein Trick nötig, der mir jetzt auf
die Schnelle nicht einfällt.


Code:
;Drawline in Pseudocode.
;-----------------------

;Übergeben werden die Start- und Endpunkte der Linie xs,ys und ys,ye

;Die Routine braucht nur Addition /Subtrktion, kommt ohne Multiplikation / Division aus.
;Alle Variable könne Byte sein.
;Kann problemlos und einfach in Assembler kodiert werden.



Drawline(xs,ys,ys,ye)

;Längen für x und y ausrechnen
xlen=xs-xe
ylen=ys-ye

;Schrittrichtung für x und Y festlegen
if xlen>=0 then xa=1 else xa=-1 
if ylen>=0 then ya=1 else ya=-1

;wenn xlänge grösser ist, dann laufen wir an der X-Achse entlang
;  ansonsten an der Y-Achse
if abs(xlen) < abs(ylen) then goto walky


walkx:
  temp=xlen
  do
    portx=xs
    porty=ys
    xs=xs+xa         :immer einen Schritt in x-Richtung weiter
    temp=temp-ylen   ;Schritt in Y-Richtung nötig ?
    if temp<=0 then  ;wenn <=0 dann ja
      temp=temp+xlen ;
      ys=ys+ya       ;Schritt in Y-Richtung
    endif 
  loop until xs=xe   ;Wiederholen bis Ende der Linie

  Return  ;Ende sub



WalkY:
  temp=ylen
  do
    portx=xs
    porty=ys
    ys=ys+ya
    temp=temp-xlen
    if temp<0 then
      temp=temp+ylen 
      xs=xs+xa
    endif 
  loop until ys=ye
  return
Schau dirs halt mal an...

Ich denke immer noch über die Hardwarelösung nach,
wo die Linie auf dem Scope mittels zweier Integratoren
automatisch gezogen wird.

Gruß Jan