Hi,
wenn ich dein "Problem" jetzt richtig verstehe:
Du hast vorher mit AVRs gearbeitet. Bei AVRs kann (muss) man einen
IO-Pin explizit als Ein- bzw. Ausgang schalten.
Ein AT89xxxx ist ein 8052-Derivat. Bei 8052ern ist ein Pin dann als
Eingang geschaltet, wenn man eine 1 auf den Pin schreibt.
Das ist ein "beliebtes" Problem bei Umsteigern 8052 <-> AVR.
Ich rate dir deswegen, dir das Hardware-Manual zu den 8052ern auf der
Atmel Homepage runterzuladen, da ist alles fein säuberlich
beschrieben.
Guck dir den Aufbau der Ports eines 8052 an, dann wird alles klar ;-)
Ob der SDCC automatisch eine 1 auf einen Port-Pin schreibt, wenn du in
C einen Port(pin) lesen willst, wage ich allerdings zu bezweifeln...
Gruß Ralf