////////////////////////////////////////////////////////////////////// ; Функция #3E. Освобождение блока памяти. ; ; вход: A - идентификатор блока памяти ; выход: A - код ошибки, если CF=1 ////////////////////////////////////////////////////////////////////// RETMEM: LD E,A LD D,#00 ;LD HL,MEMTAB ; массив списка выдел. страниц LD HL,CORE_BUFFERS.MemoryTable ; массив списка выдел. страниц ADD HL,DE LD A,(TASK) ; уровень текущей программы CP (HL) LD A,DSS_Error.sys.INVALID_MEMORY_HND SCF RET NZ ;PUSH DE LD A,E LD C,BIOS.FreeMem RST ToBIOS ;POP DE LD A,DSS_Error.sys.INVALID_MEMORY_HND RET C ;LD HL,MEMTAB LD HL,CORE_BUFFERS.MemoryTable ADD HL,DE XOR A LD (HL),A RET