DEX32_DDL_INFO *Dex32CreateDDL(){ DEX32_DDL_INFO *dev = (DEX32_DDL_INFO *)malloc(sizeof(DEX32_DDL_INFO)); memset(dev, 0, sizeof(DEX32_DDL_INFO)); dev->size = sizeof(DEX32_DDL_INFO); totalDDL++; dev->handle = totalDDL; dev->buf_size = 80*25*2*sizeof(char); dev->mem_ptr = (char *)malloc(80*25*2*sizeof(char)); memset(dev->mem_ptr, 0, 80*25*2*sizeof(char)); dev->buf_ptr = dev->mem_ptr; dev->hdw_ptr = (char *)0xB8000; dev->type = DDL_CGA; dev->active = 0; dev->locked = 0; dev->lines = 0; dev->scroll = 1; Dex32SetTextColor(dev, WHITE); Dex32SetTextBackground(dev, BLACK); dev->curx = 0; dev->cury = 0; if(ActiveDDL == 0) { Dex32SetActiveDDL(dev); } return dev; }
int fg_setforeground(int num) { DWORD cpuflags; int ret = -1; dex32_stopints(&cpuflags); if (num < FG_MAXCONSOLE) { if (fg_vconsoles[num]!=0) { DEX32_DDL_INFO *fgDDL= fg_vconsoles[num]->screen; int ret = fg_current; Dex32SetActiveDDL(fgDDL); fg_current = num; }; }; dex32_restoreints(cpuflags); return ret; };