home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
fortran
/
mslang
/
memacces
/
test.for
< prev
Wrap
Text File
|
1993-06-30
|
2KB
|
37 lines
interface to integer*4 function mapmem
+ [stdcall,alias:'_MAPMEM@12']
+ (addr,memsize,physaddr)
integer*4 addr[value]
integer*4 memsize[value]
integer*4 physaddr[value]
end
integer*4 mapmem
integer*4 n
parameter (n=4096*10)
integer*4 addr, memsize, physaddr, err
integer*1 maparray(n)
integer*4 i, offset, size, status
err = 0 ! this value will return error status if any
size = n ! initial size of memory location, multiple of 4096
physaddr = #B8000 ! physical memory to be mapped in
addr = loc(maparray) ! address of application memory
offset = 4096-mod(addr,4096) ! offset to first page
memsize = n - 4096 ! page-aligned memory size, multiple of 4096
print*, ' offset: ', offset
print*, 'memsize: ', memsize
addr = addr + offset ! adjust memory to be page-aligned
status = mapmem(addr, memsize, physaddr) ! map the memory
print*, ' status: ', status
print*, 'about to write to video memory'
read*
do i=offset,1600+offset, 2 ! loop to write to video memory
maparray(i) = i - offset
maparray(i+1) = ichar('a')
end do
read*
end