Hi, danke für die schnelle Antwort,

der Code:
Code:
$regfile = "m16def.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32

Config Porta = Output
Config Portb = Output
Config Portc = Output
Config Portd = Output

Declare Sub Zeilensetzen
Declare Sub Set_pixel(byval X As Byte , Byval Y As Byte)    ' Nullpunkt ist oben links als 0,0
Declare Sub Reset_pixel(byval X As Byte , Byval Y As Byte)

Dim X As Byte , Y As Byte

Dim Bildspeicher(11) As Word , Spalte As Byte , Temp As Word , Zaehler As Word

Spalte = 1

Do
   Select Case Spalte
      Case 1 : Reset Portb.5
               Zeilensetzen
               Set Portb.4

      Case 2 : Reset Portb.4
               Zeilensetzen
               Set Portb.3

      Case 3 : Reset Portb.3
               Zeilensetzen
               Set Portb.2

      Case 4 : Reset Portb.2
               Zeilensetzen
               Set Portb.1

      Case 5 : Reset Portb.1
               Zeilensetzen
               Set Portb.0

      Case 6 : Reset Portb.0
               Zeilensetzen
               Set Porta.7

      Case 7 : Reset Porta.7
               Zeilensetzen
               Set Porta.6

      Case 8 : Reset Porta.6
               Zeilensetzen
               Set Porta.5

      Case 9 : Reset Porta.5
               Zeilensetzen
               Set Portb.5
   End Select

   If Spalte < 9 Then Spalte = Spalte + 1 Else Spalte = 1


   Waitus 100


   Select Case Zaehler
       Case 1000 : For X = 0 To 8                           ' diagonale
                     Set_pixel X , X
                   Next X

       Case 2000 : For X = 0 To 10                          ' waagrecht
                      Set_pixel X , 0
                      Set_pixel X , 8
                    Next X

       Case 3000 : For Y = 0 To 8                           ' senkrecht
                      Set_pixel 0 , Y
                      Set_pixel 10 , Y
                    Next X

       Case 4000 : For X = 1 To 11                          ' alle an
                      Bildspeicher(x) = &B11111111111
                    Next X

       Case 5000 : For X = 1 To 9                           ' Bitmuster
                      Bildspeicher(x) = &B11111111100
                    Next X

       Case 6000 : For X = 1 To 9                           ' alle aus
                      Bildspeicher(x) = 0
                    Next X

                    Zaehler = 0

   End Select

   Zaehler = Zaehler + 1
Loop

End


Sub Set_pixel(byval X As Byte , Byval Y As Byte)
   Bildspeicher(x + 1).y = 1                                ' Bascom startet Arrays mit 1
End Sub

Sub Reset_pixel(byval X As Byte , Byval Y As Byte)
   Bildspeicher(x + 1).y = 0
End Sub

Sub Zeilensetzen
   Temp = Bildspeicher(spalte)
   If Temp.1 = 1 Then Set Portd.2 Else Reset Portd.2
   If Temp.2 = 1 Then Set Portd.1 Else Reset Portd.1
   If Temp.3 = 1 Then Set Portd.0 Else Reset Portd.0
   If Temp.4 = 1 Then Set Portc.7 Else Reset Portc.7
   If Temp.5 = 1 Then Set Portc.6 Else Reset Portc.6
   If Temp.6 = 1 Then Set Portc.5 Else Reset Portc.5
   If Temp.7 = 1 Then Set Portc.4 Else Reset Portc.4
   If Temp.8 = 1 Then Set Portc.3 Else Reset Portc.3
   If Temp.9 = 1 Then Set Portc.2 Else Reset Portc.2
   If Temp.10 = 1 Then Set Portc.1 Else Reset Portc.1
   If Temp.11 = 1 Then Set Portc.0 Else Reset Portc.0
End Sub
Ich habe es zig mal überprüft, alle Zeilen und Spalten belegungen stimmen