Ich habe es mal getestet mit einem ATMega644 und Bascom 1.11.9.3 und hatte folgende Ergebnisse:

das 1.
! = 129 (mit =Const)
? <> 129 (mit =Const)
das 2.
! = 129 (mit =129)
? <> 129 (mit =129)



Mit interne Pullups:
11110011?? <--Hierfür habe ich keine erklärung das beim ersten auslesen nicht &HFF kommt
11111111??
10000001!!
10000001!!

Code:
Config Portb = Input
Inputport Alias Pinb
Portb = &B11111111

const buffer = 129
dim inputbuffer as byte

Inputbuffer = Inputport
Print Bin(inputbuffer);
if inputbuffer = buffer then
    Print "!";
else
    Print "?";
endif
If Inputbuffer = 129 Then
    Print "!"
else
    Print "?"
endif

Ohne interne Pullups:
11100011?? <-- Undefinierter zustand
10100000?? <-- Undefinierter zustand
11110011?? <-- Undefinierter zustand
10000001!! <-- Alle auf Ground oder 5V
10000001!! <-- Alle auf Ground oder 5V


Code:
Config Portb = Input
Inputport Alias Pinb
Portb = &B00000000

const buffer = 129
dim inputbuffer as byte

Inputbuffer = Inputport
Print Bin(inputbuffer);
if inputbuffer = buffer then
    Print "!";
else
    Print "?";
endif
If Inputbuffer = 129 Then
    Print "!"
else
    Print "?"
endif

versuch es mal mit den Pullups oder so, vielleicht hilft das? und lass dir auch den Wert ausgeben