Aha.

Aber ich verstehe dann den Source nicht:
"BSET SDA,DIR" (etc) ist doch identisch
"BSET SDA1,DIR" (etc), oder nicht?
(SDA ist ja identisch SDA1 = 0 = SDA)

Müsste das also nicht heissen
"BSET SDA,DIR" (etc) und
"BSET SDA1,DIR1" (etc) ?
Und dieses DIR1 / PORT1 könntest Du ja dann per Param übergeben.

Falls doch nicht:
Den Bit-Wert vom BSET kann man m.E. nur per OpCode-Modifikation "parametrieren".
Oder halt den BSET / BCLR ersetzen durch OR / AND:
LDA Port
ORA param
STA Port

PS: (siehe Thread "255 Byte Assemblerprogramm zu lang?")
Mein Problem ist: Ich kann kein Assembler-Programm laden, das genau 255 Bytes lang ist; 254 Bytes gehen.
Kann Du 255 Bytes laden, oder ist das Limit tatsächlich 254 Bytes?