'=============================================================================
'
' 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%