home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / mslang / memacces / test.for < prev   
Text File  |  1993-06-30  |  2KB  |  37 lines

  1.       interface to integer*4 function mapmem
  2.      +                       [stdcall,alias:'_MAPMEM@12']
  3.      +                       (addr,memsize,physaddr)
  4.       integer*4 addr[value]
  5.       integer*4 memsize[value]
  6.       integer*4 physaddr[value]                           
  7.       end
  8.  
  9.       integer*4 mapmem
  10.       integer*4 n
  11.       parameter (n=4096*10)
  12.       integer*4 addr, memsize, physaddr, err
  13.       integer*1 maparray(n)
  14.       integer*4 i, offset, size, status
  15.                                           
  16.       err      = 0        ! this value will return error status if any
  17.       size     = n        ! initial size of memory location, multiple of 4096
  18.       physaddr = #B8000   ! physical memory to be mapped in
  19.       
  20.       addr     = loc(maparray)       ! address of application memory
  21.       offset   = 4096-mod(addr,4096) ! offset to first page
  22.       memsize  = n - 4096            ! page-aligned memory size, multiple of 4096
  23.       print*,    ' offset: ', offset
  24.       print*,    'memsize: ', memsize
  25.       addr     = addr + offset       ! adjust memory to be page-aligned
  26.       status   = mapmem(addr, memsize, physaddr) ! map the memory
  27.       print*,    ' status: ', status
  28.       print*,    'about to write to video memory'
  29.       read*          
  30.       do i=offset,1600+offset, 2     ! loop to write to video memory
  31.         maparray(i)   = i - offset
  32.         maparray(i+1) = ichar('a')
  33.       end do                      
  34.       read*
  35.                                           
  36.       end
  37.