Panowie, czy ktoś wie czemu nie mogę skompilować następującego programu (mniej więcej coś takiego w dużym uproszczeniu):
10 DUPA=PEEK(54017) 20 DUPA=INT(DUPA/2) 30 IF DUPA MOD 2 <> 0 40 ... 50 DO:LOOP 60 ENDIF 70 IF DUPA MOD 2 = 0 80 ... 90 DO:LOOP 100 ENDIF
Nawet zajrzałem do manuala żeby sprawdzić czy przypadkiem nie użyłem jakiejś zakazanej instrukcji itd., ale wszystko wydaje się być ok. Naturalnie kod jest dużo bardziej zamotany w oryginale, ale doprowadziłem go do takiej schematycznej wersji jak powyżej żeby sprawdzić co się kompiluje, a co nie. Pomożecie?
Generalnie, to co chcesz zrobić z komórką 54017? Po skompilowaniu Turbo BASIC zakłada, że wszystkie jego biblioteki (runtime) będą znajdowały się pod ROMem. Kombinując bezpośrednio z programu z PORTB (właśnie 54017), możesz spowodować, że te biblioteki staną się nieosiągalne dla skompilowanego programu. Chyba, że nie o to chodzi w tym momencie...
faktycznie! Ale jaja, nie wiedziałem. Faktycznie z innym bajtem się kompiluje. Da się to jakoś obejść czy muszę napisać to w koniecznie w ASM? Może w liniach DATA? Chciałem wykrywać basic. Mam zamiar linkować runtime.