Hallo Sebastian,
ich habe deinen Code noch mal überarbeitet.
Sollte jetzt funktionieren.
Hauptproblem war das Bascom die Byte-Variablen nicht
als vorzeichenbehaftete Zahlen betrachten kann.
Deshalb habe ich es auf Integer umgeändert.
Probier es doch mal aus,und gib Bescheid, was passiert.
Müsste ein Dreieck angezeigt werden.

Gruß Jan

Code:
$regfile = "m128def.dat"
$crystal = 16000000

'#########Variablen Line Funktion
Dim Xlen As Integer
Dim Ylen As Integer
Dim Xa As Integer
Dim Ya As Integer
Dim Temp As Integer
'#################################

Declare Sub Drawline(byval Xs As Integer , Byval Ys As Integer , Byval Xe As Integer , Byval Ye As Integer)


Config Porta = Output
Config Portc = Output
Config Portf = Output

Z Alias Portf.1

Z = 1                                                       ' dunkel


Do
Call Drawline(0 , 0 , 100 , 80 )
Call Drawline(100 , 80 , 22 , 33)
Call Drawline(22 , 33 , 0 , 0)
Waitms 1


Loop

End




Sub Drawline(xs As Integer , Ys As Integer , Xe As Integer , Ye As Integer)

';Längen für x und y ausrechnen
Xlen = Xe - Xs
Ylen = Ye - Ys

';Schrittrichtung für x und Y festlegen
If Xlen >= 0 Then Xa = 1 Else Xa = 255
If Ylen >= 0 Then Ya = 1 Else Ya = 255

';wenn xlänge grösser ist, dann laufen wir an der X-Achse entlang
';  ansonsten an der Y-Achse
If Xlen < 0 Then Xlen = Xlen * -1
If Ylen < 0 Then Ylen = Ylen * -1
If Xlen < Ylen Then Goto Walky


Walkx:
 Z = 0                                                      'licht einschalten
  Temp = Xlen
  Do
    Porta = Low(xs)
    Portc = Low(ys)
    Waitus 1
    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
    End If
    Loop Until Low(xs) = Low(xe)                            ';Wiederholen bis Ende der Linie
Goto Endofsub

Walky:
 Z = 0
  Temp = Ylen
  Do
    Porta = Low(xs)
    Portc = Low(ys)
    Waitus 1
    Ys = Ys + Ya
    Temp = Temp - xlen
    If Temp < 0 Then
      Temp = Temp + Ylen
      Xs = Xs + Xa
    End If
  Loop Until Low(ys) = Low(ye)

Endofsub:
 Z = 1                                                      'und wieder aus
 End Sub