So etwa würde das mit CPEEK aussehen.
Statt "g" ist nun ein WORD-Zeiger "posit".
Ich weiss nicht, ob du in der ausgaberoutine das "G" brauchst ?


Code:
Dim Fontadr As Word                                         'current font base
Dim Posit As Word                                           'sendout pointer

'-------------------- bitmap die 2te -------------------------------------------
bmp:
   X = X1 : Y = Y1                                          ' pos für set cursor


' ---------- Set Font (nur, wenn geändert)  -------------------
   Select Case Bmp
   Case 1
      Fontadr = Loadlabel(logoavr)
   Case 2
      Fontadr = Loadlabel(rahmen)
   End Select




' ---------- Sendout -------------------
   Posit = Fontadr
   Hh = Cpeek(posit)                                        ' dimension horiz
   Incr Posit
   Vv = Cpeek(posit)                                        ' dimension vertik
   Incr Posit                                               '
   For V = 1 To Vv
      Gosub S1d_csr_rw                                      ' mit x, y startpos setzen
      Cmd = &H42                                            ' comando speicher schreiben
      gosub s1d_send_cmd
      For H = 1 To Hh                                       ' eine zeile schreiben
         Par = Cpeek(posit)                                 ' FlashMem lesen
         Gosub S1d_send_par                                 ' das G raus zum s1d
         Incr Posit                                         ' nächste position
      Next H                                                '
      X = X1
      Incr Y
   Next V
return

Ich weiss nicht, wie du die Zeigenauswahl machst. Eigentlich wär besser, statt bmp = "0" oder "1" gleich direkt die fontadresse zu verwenden

also :
Code:
Dim Fontadr As Word                                         'current font base
Dim Posit As Word                                           'sendout pointer


'-------------------------------------------
      Fontadr = Loadlabel(logoavr)  
      gosub send_bmp
'------------------ ODER EBEN ----------
      Fontadr = Loadlabel(rahmen)   ' oder "Rahmen"
      gosub send_bmp


'-------------------- bitmap die 2te -------------------------------------------
send_bmp:
   X = X1 : Y = Y1                                          ' pos für set cursor

' ---------- Sendout -------------------
   Posit = Fontadr
   Hh = Cpeek(posit)                         ' dimension horiz
   Incr Posit                                      ' next
   Vv = Cpeek(posit)                         ' dimension vertik
   Incr Posit                                      ' next
   For V = 1 To Vv
      Gosub S1d_csr_rw                       ' mit x, y startpos setzen
      Cmd = &H42                               ' comando speicher schreiben
      gosub s1d_send_cmd
      For H = 1 To Hh                          ' eine zeile schreiben
         Par = Cpeek(posit)                           ' FlashMem lesen
         Gosub S1d_send_par                        ' das G raus zum s1d
         Incr Posit                                 ' nächste position
      Next H                                        ' schleife
      X = X1
      Incr Y
   Next V
return
Was im Einzelnen besser ist, hängt vom Programm-konzept ab, logo


Die Schleifen schreien eigentlich nach Inline-Assembler, aber das kannst du immer noch machen.