Bist Du sicher das Du in die Bascom-Hilfe geschaut hast ?
Als Entschuldigung lass ich nur gelten wenn Du der engl. Sprache nicht mächtig bist !

Zu jedem dieser Befehle ist ein Beispiel in der Hilfe, und nur bei einem ist es vorgesehen, das man ein Byte in ein Byte umwandelt, beim Rest brauchts immer einen String auf einer Seite.

Bei diesem einen, bei Dir Beispiel B, kommt genau das raus was rauskommen soll.
Vor allem darf man einen nach BCD gewandelten Wert nicht direkt mit Print/Lcd ausgeben, denn das ergibt käse, wenn der Wert grösser als 9 war !
Dafür ist dann der Befehl BCD() vorgesehen, der wandelt es wieder in was lesbares.

Zum Test kannst Du folgendes machen, eine Dezimalzahl >9, damit sie zwei Stellen hat, mit Makebcd() umwandlen, und mit LCD Hex() ausgeben, dann kommt genau diese Zahl raus

Code:
Dim Z as Byte
Z = 42

Dim B as Byte

B = Makebcd(z)

Print Hex(b); " " ; z
Print Bcd(b); " " ; z
Der Unterschied von Bcd und Hex ist, das es bei Bcd nur die Werte 0-9 gibt.