1. allocation of memory
- Posted by Bernie Ryan <bwryan at PCOM.NET> Jan 17, 1999
- 571 views
Is their a way to allocate a specific memory address in Eu ? Can it be determined what address space is free to use in Eu ? Thasnks Bernie Ryan
2. Re: allocation of memory
- Posted by Irv Mullins <irv at ELLIJAY.COM> Jan 17, 1999
- 554 views
On Sun, 17 Jan 1999 12:02:11 -0500, Bernie Ryan <bwryan at PCOM.NET> wrote: >Is their a way to allocate a specific memory address in Eu ? > >Can it be determined what address space is free to use in Eu ? > >Thasnks Bernie Ryan p = allocate(100) will return an address pointing to 100 bytes of free memory. The will be available until you do a free() You can poke machine code into that memory, and call() the code. I don't think there is any way to control exactly where that memory starts, however. Euphoria finds some unused space and tells you where it is. Irv
3. Re: allocation of memory
- Posted by Bernie Ryan <bwryan at PCOM.NET> Jan 17, 1999
- 545 views
No I was looking for a way to allocate a specificate location thanks irv Bernie Ryan
4. Re: allocation of memory
- Posted by Pete Eberlein <xseal at HARBORSIDE.COM> Jan 17, 1999
- 563 views
- Last edited Jan 18, 1999
> No I was looking for a way to allocate a specificate location > > thanks irv > > Bernie Ryan Perhaps you mean to convert a Physical Base Pointer into a Linear mapped address... (isnt Protected Mode fun?) (not!) lemme throw some machine code at ya... (this basically just calls an interrupt, but using dos_interrupt absolutely will not work (dpmi service calls don't seem to be available using that (Jacques Deschenes might know more about this))) constant linaddr = allocate(46) poke(linaddr, { #60, -- 0: pusha #BB,#00,#00,#00,#00, -- 1: mov ebx, PhysBasePtr (2) #89,#D9, -- 6: mov ecx, ebx #C1,#EB,#10, -- 8: shr ebx, 16 #BE,#00,#00,#00,#00, -- B: mov esi, Size (12) #89,#F7, -- 10: mov edi, esi #C1,#EE,#10, -- 12: shr esi, 16 #B8,#00,#08,#00,#00, -- 15: mov eax, #800 #CD,#31, -- 1A: int #31 #C1,#E3,#10, -- 1C: shl ebx, 16 #66,#89,#CB, -- 1F: mov bx, cx #89,#1D,#E2,#AF,#E4,#82,-- 22: mov [@linear], ebx #61, -- 28: popa #C3, -- 29: ret #00,#00,#00,#00}) -- 2A: linear: dd 0 (42) poke4(linaddr + 36, linaddr + 42) -- @linear poke4(linaddr + 2, PhysBasePtr) ---- you supply these poke4(linaddr + 12, Size) -- (size in bytes) call(linaddr) your linear address = peek4(linaddr + 42) What is this good for? I've used it to get the VESA linear frame buffer, perhaps it can be used to access other memory mapped devices... Later dudez, _______ ______ _______ ______ [ _ \[ _ ][ _ _ ][ _ ] [/| [_] |[/| [_\][/ | | \][/| [_\] | ___/ | _] | | | _] [\| [/] [\| [_/] [\| |/] [\| [_/] [_____] [______] [_____] [______] xseal at harborside.com ICQ:13466657 http://www.harborside.com/home/x/xseal/euphoria/
5. Re: allocation of memory
- Posted by Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL> Jan 18, 1999
- 554 views
>No I was looking for a way to allocate a specificate location You *can* however, specify wether or not you want to allocate *low* or high* memory. And if you already know the exact memory addres, this means, some other program/part does too. In which case, you dont need to allocate, you can just poke & peek in that piece of memory. Euphoria off course, doesnt 'allocate' memory already allocated by another program. Ralf
6. Re: allocation of memory
- Posted by Bernie Ryan <bwryan at PCOM.NET> Jan 18, 1999
- 542 views
Thank You for information