Rysiu przyjrzałem się dzisiaj Twoju programowi i mam uwagę.
Nie do samego działanie programu tylko bardziej do braku kilku linii które utrudniają kompilację innym, a ktoś mało doświadczony może w ogóle nie wiedzieć dlaczego u niego nie działa.
Powinieneś zawrzeć na początku programu takie :
$regfile - plik z danymi o rodzaju procesora
$crystal - częstotliwość kwarcu oscylatora
$baud - szybko transmisji szeregowej
te linie oczywiście odpowiadają odpowiednim pozycją w menu Options, ale jeśli przekazujesz tylko sam listing programu lub plik bas, trochę tego brakuje.
Brak tych linie jeszcze nie jest tak kłopotliwy jak tych poniżej:
$hwstack - wielkość stosu sprzętowego
$swstack - wielkość stosu programowego
$framesize - wielkość ramki
Dlaczego o tym mówię?
Przy standardowych ustawieniach kompilatora jest to odpowiednio 32, 8 i 24 bajty, co razem procesorowi 90S2313 który ma 128 bajtów RAM-u,
zabiera połowę pamięci, dzięki czeku pozostaje tylko 63 bajty. Natomiast zmienne w twoim programie potrzebują 97 bajty, co oczywiście podczas kompilacji powoduje wystąpienie błędu.
Można również dołożyć do projektu plik .CFG który zawiera informacje o konfiguracja z menu Options.
To samo tyczy się konfiguracji pinów LCD, o których już wspomniał Heniek-Dipol
Nie wiem jakie masz doświadczenie w pisaniu, ale nawet nieźle Ci Ten wyszedł. Oczywiście można poprawić go tak, że oszczędziło by to z 10-20% pamięci ma program, ale ważne że się zmieścił Tobie i działa
PS. Ja planuje też zrobienie pewnego urządzenia do APRS-u, a wymaga to trochę większego procesora i zewnętrznej pamięci RAM.