А вот гляньте на следующий код! Та же программа, что демонстрировал вначале, была слегка модернизирована. Компилятор, правда, 9.70. Но, думаю, дело не в нем, а неком "стечении обстоятельств", позволяющих компилятору решить, что биты выбора страниц "ператрахивать" не надо.
Код
Out = 0; Delay10K(Time); // 0.05 .. 0.4 s
036 1105 BCF 0x5, 0x2
037 0825 MOVF 0x25, W
038 23F2 CALL 0x3f2
95: Out = 1; Delay10K(30); // 0.3 s
039 1505 BSF 0x5, 0x2
03A 301E MOVLW 0x1e
03B 23F2 CALL 0x3f2
96: // Out = 0; Delay10K(20); // 0.2 s
97: Out = 0; Delay10K(Time); // 0.05 .. 0.4 s
03C 1105 BCF 0x5, 0x2
03D 0825 MOVF 0x25, W
03E 23F2 CALL 0x3f2
98: Out = 1; Delay10K(30); // 0.3 s
03F 1505 BSF 0x5, 0x2
040 301E MOVLW 0x1e
041 23F2 CALL 0x3f2
99: // Out = 0; Delay10K(20); // 0.2 s
100: Out = 0; Delay10K(Time); // 0.05 .. 0.4 s
042 1105 BCF 0x5, 0x2
043 0825 MOVF 0x25, W
044 23F2 CALL 0x3f2
101: Out = 1; Delay10K(30); // 0.3 s
045 1505 BSF 0x5, 0x2
046 301E MOVLW 0x1e
047 23F2 CALL 0x3f2
В-общем, все не так просто. Найти бы эти "обстоятельства"...