MMHH oder wir ziehen das jetzt einfach so wie es ist durch....
habe jetzt erstmal ein wenig ordnung gemacht...

Die subs move und showdot sind dazugekommen, generell übergebe ich keine variablen an die subs (wenn jemand anders drüber denkt bitte mitteilen)


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

'######### Variablen Hauptprogramm
Dim Xs As Integer
Dim Xe As Integer
Dim Ys As Integer
Dim Ye As Integer


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


'########### Deklarationsteil für Subroutinen
Declare Sub Drawline
Declare Sub Move
Declare Sub Showdot


'########### Deklarationsteil für Ports
X Alias Porta
Y Alias Portd
Z Alias Portf.1                                             'wenn f=0 dann ist der punkt sichtbar, wenn f=1 then ist der punkt aus

Config X = Output
Config Y = Output


'################# Start Hauptprogramm
Z = 1                                                       ' dunkel


Do

Restore Daten:
For N = 1 To 14
Read Xs
Read Ys
Read Xe
Read Ye
Call Drawline

Next

Loop
End
'################# Ende Haputprogramm; beginn subroutinen



'#############################################################################################################
Sub Drawline
'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:
  Temp = Xlen
  Shift Temp , Right , 1
  Do
    Call Move                                               'position setzen
    Call Showdot                                            'punkt zeigen
    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:
  Temp = Ylen
  Shift Temp , Right , 1
  Do
    Call Move                                               'position setzen
    Call Showdot                                            'punkt zeigen
    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:
End Sub

'######################################################################################################################

Sub Move                                                    'Bewegt den punkt gedimmt zu der angegebenen position (xs,ys)
X = Low(xs)                                                 'x setzen
Y = Low(ys)                                                 'y setzen
End Sub

'######################################################################################################################

Sub Showdot                                                 'zeigt den punkt an seiner aktuellen position an
Z = 0                                                       'licht ein
Waitus 2                                                    'kurz warten
Z = 1                                                       'lich wieder aus
End Sub

'#####################################################################################################################




Daten:

Data 0% , 0% , 200% , 0%
Data 200% , 0% , 200% , 200%
Data 200% , 200% , 0% , 200%
Data 0% , 200% , 0% , 0%

Data 20% , 20% , 180% , 80%
Data 180% , 80% , 80% , 180%
Data 80% , 180% , 20% , 20%

Data 100% , 120% , 80% , 120%
Data 80% , 120% , 80% , 100%
Data 80% , 100% , 90% , 100%
Data 90% , 100% , 100% , 90%
Data 100% , 90% , 100% , 80%
Data 100% , 80% , 90% , 70%
Data 90% , 70% , 80% , 70%