jesup@cbmvax.commodore.com (Randell Jesup) (07/04/90)
In article <90171.212424LEEK@QUCDN.BITNET> LEEK@QUCDN.QueensU.CA writes: >It would be nice to be able (to use the MMU) to run a VM session (coexisting >with Amiga DOS) on a developement machine as a "protected" testing site. >Illegal memory access and other things could be monitored and traced. Even if >the stuff inside VM guru, one do not have to reboot the whole machine. Due to >the additional overhead, VM might not be a suitable for real life usage (on the >Amiga), but it is a variable tool for debugging & program developement work. >Once the debugging is done, the resulting program can be run under (non-VM) >Amiga DOS. The problem is that you must write special "VM" versions of every library and device (or close to), which make traps to the "master" evironment (and which, BTW, requires a lot of smarts on the other side to handle things which must be atomic, or require ownblitter's, etc.) The other option is to trap every hardware access, and interpret them in software, with large amounts of error checking. We're talking (random wild guess) about 5-30 (most likely 10-20) man-years of time by people (us) working from the source code (and doing nothing else). And then, it probably would be so slow as to be unusuable for most testing, do to all the extra overhead (especially for the second idea). IBM mainframes are usually more divorced from using hardware directly, plus 10 or 20 (or even 100) man-years doesn't really faze them (drop in the bucket). Commodore engineering staff is a little smaller than IBM's. (Understatement of the year...) However, we're using the MMU more and more, especially for debugging utilities for developers. Debugging utilities are important for us. One idea (which to some degree developers could do for themselves, put on fish disks, etc) is to add code at the beginning of each library entry to check all the parameters, and destroy d1/a0/a1 (and d0 for VOID rtns) in most cases (some Dos routines must return d0/d1 the same for old overlays to work). Combine this with the new memwall/memmung and enforcer/cpu trap, and you've got a pretty good stress-test of an application. This could be done a library at a time, it isn't even hard to do in a simple way. Who's first? -- Randell Jesup, Keeper of AmigaDos, Commodore Engineering. {uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com BIX: rjesup Common phrase heard at Amiga Devcon '89: "It's in there!"