According to Orlando Llanes:
According to myself (Peter Gerwinski):
No way.
Bummer :(
Well ... you can use the `/dev/mem' device to directly access memory,
(* Linux lo-level file system access (here: memory access) *)
Function mmap ( addr: Pointer; len: Word; prot, flags, fd, off: Integer ): Word; C;
(* In fact it returns a pointer. But we convert it to Word. *)
Function open ( filename: CString; Flags: Integer; ... ): Integer; C;
Procedure InitTools;
Var Dummy: Word;
Function Allocate ( address, length: Word ): Pointer;
Var segMem: Pointer; result: Word;
begin (* Allocate *) segMem:= GetMem ( length + $FFF ); if Word ( segMem ) and $FFF <> 0 then inc ( Word ( segMem ), $1000 - Word ( segMem ) and $FFF ); if segMem = Nil then FatalError ( 'Linux drivers: cannot allocate video memory' ); result:= mmap ( segMem, length, $03, $11, MemoryHandle, address ); if Integer ( result ) <= 0 then FatalError ( 'Linux drivers: cannot mmap video memory' ); Allocate:= Pointer ( result ); end (* Allocate *);
...
MemA0000:= Allocate ( $A0000, $10000 );
but then the program needs to be "suid root" to be executed.
(In fact this is how `svgalib' accesses video memory.)
I plan to put it in the license where it's Copyrighted Freeware :) Hopefully it's what the LGPL stands for. I will release the source code, but I do want to retain the copyright, I won't charge for it's use tho.
^^(corrected)
That's what the LGPL stands for, *and* it allowes to link the library with non-free software. The ordinary GPL would stand for the same, too, but would only allow to link the library with other free software.
I saw it, but nothing about memory access,
It's a good example how to use existing GCC libraries from GPC.
besides, I don't see why Borland's BGI should live on.
For compatibility's sake. Nothing else.
Greetings,
Peter
Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201] maintainer GNU Pascal [970714] - http://home.pages.de/~gnu-pascal/ [970125]