////////////////////////////////////////////////////////////////////// ; Функция #3D. Выделение блока памяти. ; ; вход: B - размер блока в страницах по 16kB ; выход: A - идентификатор блока памяти, если CF=0 ; A - код ошибки, если CF=1 ////////////////////////////////////////////////////////////////////// GETMEM: LD C,BIOS.GetMem RST ToBIOS LD E,A LD A,DSS_Error.sys.NOT_ENOUGH_MEMORY RET C LD D,#00 ;LD HL,MEMTAB ; массив списка выдел. страниц LD HL,CORE_BUFFERS.MemoryTable ; массив списка выдел. страниц ADD HL,DE LD A,(TASK) ; уровень текущей программы LD (HL),A LD A,E ;AND A RET