X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fmemory.c;h=4abb35a167304b672ea36876c0929b28dcd262f4;hb=HEAD;hp=af93fa6f7b00a2af6d1a9d5bacd6d0a028e3ee00;hpb=e5c2eddc151a59db4e611a77901732d7c15fde90;p=flatwaifu.git diff --git a/src/memory.c b/src/memory.c index af93fa6..9019586 100644 --- a/src/memory.c +++ b/src/memory.c @@ -1,102 +1,35 @@ -/* - Copyright (C) Prikol Software 1996-1997 - Copyright (C) Aleksey Volynskov 1996-1997 +/* Copyright (C) 1996-1997 Aleksey Volynskov + * Copyright (C) 2011 Rambo + * Copyright (C) 2020 SovietPony + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License ONLY. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ - This file is part of the Doom2D:Rembo project. - - Doom2D:Rembo is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation. - - Doom2D:Rembo is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see or - write to the Free Software Foundation, Inc., - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "glob.h" -#include -#include -#include -#include "error.h" -#include "files.h" #include "memory.h" +#include "common/wadres.h" -dword dpmi_memavl(void); - -extern int d_start,d_end; - -extern mwad_t wad[]; - -static byte m_active=FALSE; - -static void *resp[MAX_WAD]; -static short resl[MAX_WAD]; - -void M_startup(void) { - if(m_active) return; - logo("M_startup: настройка памяти\n"); - memset(resp,0,sizeof(resp)); - memset(resl,0,sizeof(resl)); - // logo(" свободно DPMI-памяти: %uK\n",dpmi_memavl()>>10); - m_active=TRUE; +void *M_lock (int id) { + return WADRES_lock(id); } -void M_shutdown(void) { - - if(!m_active) return; - m_active=FALSE; -} - -static void allocres(int h) { - int *p,s; - - if(h>d_start && h=MAX_WAD) ERR_fatal("M_lock: странный номер ресурса"); - if(!resl[h]) if(!resp[h]) allocres(h); - ++resl[h]; - return resp[h]; -} - -void M_unlock(void *p) { - int h; - - if(!p) return; - h=((int*)p)[-1]; - if(h>=MAX_WAD) ERR_fatal("M_unlock: странный номер ресурса"); - if(!resl[h]) return; - --resl[h]; +void M_unlock (void *p) { + WADRES_unlock(p); } -int M_locked (int h) { - h&=-1-0x8000; - return (h != -1) && (h != 0xFFFF) && (resl[h] != 0); +int M_locked (int id) { + return WADRES_locked(id); } -int M_was_locked (int h) { - h&=-1-0x8000; - return (h != -1) && (h != 0xFFFF) && (resp[h] != NULL); +int M_was_locked (int id) { + return WADRES_was_locked(id); }