#include "aai86.h"
#include "aascreen.h"
Vscreen *
aa_alloc_mem_cel(int x, int y, int w, int h)
{
Vscreen *vs;
if ((vs = aa_malloc(sizeof(*vs))) != NULL)
{
i86_bzero(vs, sizeof(*vs) );
vs->x = x;
vs->y = y;
vs->bpr = vs->w = w;
vs->h = h;
vs->psize = (long)w*h;
if ((vs->allocedp = aa_malloc((unsigned)vs->psize+16)) == NULL)
{
aa_free(vs);
return(NULL);
}
if ((vs->cmap = aa_malloc(AA_COLORS*3)) == NULL)
{
aa_free_mem_screen(vs);
return(NULL);
}
/* force even paragraph allignment */
vs->p = i86_make_ptr(0, i86_ptr_seg(vs->allocedp)+1);
}
return(vs);
}
Vscreen *
aa_alloc_mem_screen()
{
return(aa_alloc_mem_cel(0, 0, AA_XMAX, AA_YMAX));
}
void aa_free_mem_screen(Vscreen *vs)
{
if (vs)
{
if (vs->cmap)
aa_free(vs->cmap);
if (vs->allocedp)
aa_free(vs->allocedp);
aa_free(vs);
}
}