Цитата(torik @ Jan 30 2007, 12:51)

В доке написано, что надо состряпать переменную
xdata volatile BYTE D5ON _at_ 0xB000;
а далее когда надо светодиод врубить:
BYTE dum;
dum = Diod5ON; //включение светодиоды
Блин, люди - не врубаюсь!!!! Нихрена не работает
Цитата(torik @ Jan 30 2007, 13:12)

ах да - и через ассемблерную вставку
#pragma asm
mov dptr,#8000h
movx a,@dptr
#pragma endasm
все работает... Вопрос в том как это на СИ кейловском записать правильно?
По-моему ты просто ошибся в адресации: в Си адрес "0xB000", а в ассемблере "0x8000". Кроме того, в объявлении указано имя переменной "D5ON", а в теле программы ты используешь "Diod5ON". С этим нужно разобраться, чтобы не было варнингов. Уточни этот момент в каком-нибудь из их многочисленных примеров. С учетом этих замечаний оба варианта абсолютно идентичны.
P.S. Да, еще. Попробуй объявить "dum" вне функции (т.е. сделай эту переменную глобальной), т.к. если она дальше не используется, то компилятор вполне мог соптимизировать это место и вообще выбросить оператор присваивания. Кстати, очень полезно включить генерацию ассемблерного листинга и смотреть прямо в коде проблемные места.