@asman, post #1
@Krashan, post #2
@Krashan, post #2
void OsStore(void) { Forbid(); oldView = GfxBase->ActiView; OsOwnBlitter(); OsViewLoad(0); IoFlush(); custom = ((struct Custom*)0xdff000); OsStoreHardwareRegs(); HwStopDmaAndInts(); }
@asman, post #1
@asman, post #4
@asman, post #1
1. Każdy moduł ma funkcję init i kill - i tam odpowiednio przydzielam i zwalniam pamięć. Dodatkowo tam wystawiam adresy jako funkcję typu: ULONG TilesGetData(void).
2. Moduł Memory odpowiada za wszystko co jest związane z pamięcią. przydział i zwalnianie i udostępnianie.
Ja bym nie zabijał całego systemu i użył alokatora systemowego
Na pamiec typu mandatory uzywalem hunkow BSS i BSS_C. Potem wyliczalem ile potrzeba fastu/chipu na opcjonalne dane. I alokowalem 1 duzy blok fastu i 1 czipu.
Ale to ma byc w C, wiec sorry, to nie dotyczy, choc moze da sie tez zrobic.
@teh_KaiN, post #8
Brzmi bardzo mocno jak ACE. ;)
Z tym że ACE umie na chwilę "od-ubić" niezbędny kawałek systemu jak nagle potrzebujesz coś doalokować.
A co do lowlevel.library - to tylko OS3.0+. A myślę że Asman z przyzwyczajenia ciśnie ks1.3.
@asman, post #9
Ja jakoś chyba opacznie rozumiem statyczną alokację, bo dla mnie to jest obszar pamięci tworzony na stosie. A to może powodować bardzo śmieszne błędy gdy nagle przekroczymy granicę.
@asman, post #9
@asman, post #9
ACE dla mnie jest deczko za ciężkie.
A co jak doalokacje się nie powiedzie ? Rozumiem że programista musi to ogarnąć jakoś wtedy.
@Don_Adan, post #11
@teh_KaiN, post #12
@asman, post #13
@Don_Adan, post #16
@Krashan, post #17