Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!cam-cl!news From: bdb@cl.cam.ac.uk (Brian Brunswick) Newsgroups: comp.sys.acorn Subject: RISCOS Tiny Source: Write Protect low memory Message-ID: <1991Feb28.232432.9008@cl.cam.ac.uk> Date: 28 Feb 91 23:24:32 GMT Reply-To: bdb@cl.cam.ac.uk (Brian Brunswick) Organization: U of Cambridge Comp Lab, UK Lines: 36 The other day I was trying to debug something with a pointer bug in it, and it was crashing the system totally each time it ran. I whined about the lack of proper memory protection in RiscOs, and my friend suggested that the memory below 32K was only not protected due to ancient compatibility - most of the system would work with it write protected for user mode. So I whipped up a quick proglet to do this, and he was indeed correct - enough of the system works, certainly sufficiently to easily find my bug from the backtrace due to the abort. Here follows the few lines of basic needed. --- cut --- REM>PROT0 REM By Brian.Brunswick@uk.ac.cam.cl SYS"OS_ReadMemMapInfo" TO pagesize,pages DIM p (pages+1)*12 FOR I=0 TO pages-1 p!(I*12)=I NEXT p!(pages*12)=-1 SYS"OS_ReadMemMapEntries",p FOR I=0 TO pages-1 IF p!(I*12+4)=0 THEN p!(I*12+8)=1 NEXT SYS"OS_SetMemMapEntries",p --- cut --- I have since found that printing seems to die with this thing in though. And I would suspect that suspicious applications might well do too. It might be interesting to build up a list of things grungy enough to die, as indications of nasty hackery at work. Now if only we could protect the RMA space too, those system crashes might be a thing of the past.... Brian.Brunswick@uk.ac.cam.cl Disclaimer. Short sig rules!