[#2]
Re: VBCC a kompilowanie .device
@teh_KaiN,
post #1
Zainspirowałeś mnie bym zajrzał do konstrukcji amigowego Device'a i Biblioteki (które są bardzo podobne do siebie).
Ja na Twoim miejscu, jeżeli VBCC nie ma odpowiednika
-ramiga-dev po prostu zbudowałbym plik według zasad znajdujących się w ROM Kernel Reference Manualu:
Tutaj masz dokładną konstrukcję amigowego Device na prostym przykładzie. Jest sporo objaśnień, więc nie powinno być to aż tak skomplikowane. Wiem, jest asembler, ale gwarantuje on nam, że rozmiar naszego pliku będzie jak najmniejszy.
Możesz dać odwołania do tych funkcji w C.
This appendix contains source code for a sample device. The example code
is an excellent starting point for those who want to create a custom
device and add it to the Amiga's system software.
W telegraficznym skrócie:
1. Na początku kodu powinna być funkcja zwracająca błąd. To na wypadek wywołania device'a jako programu.
2. Następnie zamieszczasz tzw. "ROMTag". Zaczyna się od stałej RTC_MATCHWORD, a następnie:
- Wskaźnik na początek ROMTaga (czyli na powyższe pole),
- Adres końca kodu (musi być za ROMTagiem i nie na przecięciu sekcji kodu),
- Flagi,
- Wersję,
- Typ (NT_DEVICE),
- Priorytet,
- Wskaźnik na nazwę (np. blabla.device),
- Wskaźnik do identyfikatora,
- Wskaźnik do struktury inicjującej.
3. Struktura inicjująca (Init). Jeżeli we flagach dałeś RTF_AUTOINIT tutaj powinno się znaleźć:
- Rozmiar przestrzeni z danymi,
- Adres tablicy wskaźników do funkcji,
- Wskaźnik do tablicy z danymi,
- Wskaźnik do procedury inicjującej.
4. Funkcje.
Sam skorzystam z tego, bo planuję zrobić biblioteczkę przydatnych funkcji.
To tylko z pozoru wygląda tak skomplikowanie. Jak się człowiek wgryzie, to to opanuje.
Ja bym tak wybrnął z tej sytuacji, jeśli chcesz znać moje zdanie. Ja lubię takie sprawy techniczne i nic na to nie mogę poradzić.
Życzę Ci powodzenia.