Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!nike!ucbcad!ucbvax!DDATHD21.BITNET!XBR4D76H From: XBR4D76H@DDATHD21.BITNET Newsgroups: net.micro.atari16 Subject: Re: Questions on BITBLIT, Malloc .... Message-ID: <8609181744.AA10051@ucbvax.Berkeley.EDU> Date: Thu, 18-Sep-86 23:05:55 EDT Article-I.D.: ucbvax.8609181744.AA10051 Posted: Thu Sep 18 23:05:55 1986 Date-Received: Sat, 20-Sep-86 00:08:03 EDT Sender: philip@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 25 Maybe I found a reason for some system crashs. GEMDOS uses a 3000 word memory area starting at 0x29dc for system purposes (memory descriptors, root process descriptor, directory entries, ... ). Memory of this area is allocated in blocks sized in multiples of 8 words. Released blocks are collected in free lists for each blocksize. Now it comes: A block once created with a particular size has this size forever !!!! I could'nt find any routine to split or combine blocks. The blocks for directory entries and memory descriptors differ in size. If your first program after boot extensively uses Malloc() and Mfree() the system memory will be fragmented into 8 word blocks (actually 9 words because of 1 additional word for blocksize information). After that any request for blocks of other size will fail. I have no idea, why system memory is limited to such a small area, nor why this management scheme is used. Any comments on that ? Konrad Hahn Techn. University Darmstadt Dept. of Computer Science (Datentechnik) Merckstr. 25, D-6100 Darmstadt, W.-Germany BITNET: XBR4D76H@DDATHD21 ....... a voice from good old Germany ........