'=============================================================================
'
' Dieser Tool splittet ein 16 Farben RGB-BMP Bild in eine Datei, die im
' jeweiligen Programm mit Hilfe des 'Load' Tools dargestellt werden können
'
'=============================================================================

Quelle$ = "logo.BMP"
ZIEL$ = "logo.BIN"
SHELL "DEL " + ZIEL$

'=============================================================================
'laden der BMP Datei
'=============================================================================
SCREEN 12
CLS

OPEN Quelle$ FOR BINARY AS #1

BMP$ = "BM": GET #1, , BMP$
SEEK #1, 19: GET #1, , H%
SEEK #1, 23: GET #1, , V%
SEEK #1, 47: GET #1, , F%

IF BMP$ <> "BM" OR H% <> 640 OR V% <> 480 OR F% <> 16 THEN
PRINT "kein lesbares BMP Format."
PRINT "Format muá 640 x 480 x 16 sein."
END
END IF

SEEK #1, 55
FOR i% = 0 TO 15
   B% = INT(ASC(INPUT$(1, 1)) / 4)
   G% = INT(ASC(INPUT$(1, 1)) / 4)
   R% = INT(ASC(INPUT$(1, 1)) / 4)
   L$ = INPUT$(1, 1)
   OUT &H3C8, i%
   OUT &H3C9, R%
   OUT &H3C9, G%
   OUT &H3C9, B%
NEXT

SEEK #1, 119
Y% = 479
DO UNTIL Y% = -1
   L$ = INPUT$(19200, 1)
   X% = 1
   DO UNTIL X% = 19201
      LQ% = ASC(MID$(L$, X%, 1))
      IF LQ% <> 0 THEN
         PSET (XV%, Y%), LQ% \ 16
         PSET (XV% + 1, Y%), LQ% AND 15
      END IF
      XV% = XV% + 2
      IF XV% = 640 THEN XV% = 0: Y% = Y% - 1
      X% = X% + 1
   LOOP
LOOP

CLOSE

'=============================================================================
'konvertieren des Bildes
'=============================================================================

DIM Bild%(25700)
DIM Bild1%(30000)

ZIEL% = 0: Quelle% = 0

FOR O% = 0 TO 2
   GET (0, O% * 160)-(639, O% * 160 + 159), Bild%

Marke:
   IF Bild%(Quelle%) = 0 THEN
      Null% = Null% + 1
      Quelle% = Quelle% + 1
   ELSE
      IF Null% > 0 THEN
         Bild1%(ZIEL%) = 0
         ZIEL% = ZIEL% + 1
         Bild1%(ZIEL%) = Null%
         ZIEL% = ZIEL% + 1
         Null% = 0
      END IF
      Bild1%(ZIEL%) = Bild%(Quelle%)
      ZIEL% = ZIEL% + 1
      Quelle% = Quelle% + 1
   END IF

   IF Quelle% = 25700 THEN
      IF Null% > 0 THEN
         Bild1%(ZIEL%) = 0
         ZIEL% = ZIEL% + 1
         Bild1%(ZIEL%) = Null%
         ZIEL% = ZIEL% + 1
         Null% = 0
      END IF
   ELSE
      GOTO Marke
   END IF

   Quelle% = 0

NEXT

ZIEL = ZIEL%: PRINT ZIEL * 2; "Bytes Daten erzeugt."

DEF SEG = VARSEG(Bild1%(0))
BSAVE ZIEL$, VARPTR(Bild1%(0)), ZIEL * 2
DEF SEG

END

'=============================================================================
' Load-Routine
'=============================================================================

'SCREEN 12

'Datei$ = "logo.BIN"

'---> eventuell >> $Dynamic << Befehl einfügen

'DIM Bild%(25700)
'DIM Bild1%(32000)

'DEF SEG = VARSEG(Bild1%(0))
'BLOAD Datei$, VARPTR(Bild1%(0))
'DEF SEG

'Quelle% = 0
'FOR O% = 0 TO 2
' Ziel% = 0
' WHILE Ziel% < 25700
' IF Bild1%(Quelle%) = 0 THEN
' Quelle% = Quelle% + 1
' FOR I% = 0 TO Bild1%(Quelle%) - 1
' Bild%(Ziel% + I%) = 0
' NEXT
' Quelle% = Quelle% + 1
' Ziel% = Ziel% + I%
' ELSE
' Bild%(Ziel%) = Bild1%(Quelle%)
' Quelle% = Quelle% + 1
' Ziel% = Ziel% + 1
' END IF
' WEND
' PUT (0, O% * 160), Bild%
'NEXT

'ERASE Bild%, Bild1%