Help!!!
- Posted by Luis Campos <lcasoft at TELELINE.ES> Jun 15, 2000
- 486 views
Hi all, here again dealing with peeks and pokes.The following program works fine under Linux but not under Dos.For some reason I'm not able to peek/poke above the lower memory. Please,send me any suggestion ... thanx and regards, Luis ------------------------------------- Buggy code --------------------------------------- include machine.e include get.e include graphics.e include abrir.e include commas.e without profile without type_check without warning object Data_in_RAM, allocation_result, pointer, bar, buffer_size, tecla integer Byte buffer_size = 256 -- bytes sequence progress_bar progress_bar = { '|','/','-','\\' } procedure free_buffer( object memory_address ) -- liberar el buffer free( memory_address ) puts(1,"\nbuffer removed from memory") end procedure function put_buffer( integer buffer_length ) object buffer_address allocation_result = allocate( buffer_length ) if allocation_result = 0 then puts(1,"\nUnable to allocate buffer...") else buffer_address = allocation_result printf(1,"\n%d-byte buffer allocated in address %s", {buffer_size, add_commas(buffer_address,".0")}) end if return buffer_address end function global procedure analizar_memoria( integer Offset_1, integer Offset_2,sequence Pos ) object allocation_address bar = 0 -- posicionar el buffer allocation_address = put_buffer( buffer_size ) -- leer memoria for Offset = Offset_1 to Offset_2 - 1 by 256 do Data_in_RAM = peek( { Offset, 256 } ) -- escribir en el buffer poke(allocation_address,Data_in_RAM) bar += 1 if bar = 5 then bar = 1 end if position(Pos[1],Pos[2]) puts(1, progress_bar[bar]&" " ) puts(1,add_commas(Offset,".0")) puts(1, ":"&Hex(Offset)) end for -- liberar la memoria -- print(1,Data_in_RAM) free_buffer(allocation_address) end procedure ------------------------------- Test procedure ---------------------------------- clear_screen() ---it's suposed to read the whole 32MB ram of my computer -- but it crashes when Offset arrives to 1208319 or similar -- values... ? :-[ analizar_memoria(0,32*1024*1024,{1,1}) -------------------------------- End test ************************************** * Luis Campos - lcampoar8 at far.ub.edu * * LCASOFTWARE S.L * * LCASOFT at teleline.es * **************************************