[Coco] How can you make permanent directory changes in OS-9 ml programs?

John Kent jekent at optusnet.com.au
Mon Sep 5 09:13:17 EDT 2011

OS9 does not provide a protected environment for different users does it ?
Is it possible in any way to add DMA to the CoCo ?

It's possible on the FPGA version because you have control of the 
hardware. On the PC you can set a bit in the registry that clears the 
page RAM file on shutdown (I assume that is a process shutdown rather 
than a PC shutdown). This means that the content of page file RAM can't 
be scanned by malicious software for things like credit card numbers, 
passwords etc. from RAM that has been released from one process and 
assigned to another.

Strictly speaking a process should be run in a protected environment so 
that no other process has access to it's memory. OS9 should really clear 
RAM when a process is terminated and memory is released. The fastest way 
to do that is with DMA writing a constant value through RAM such as $00 
or $FF or NOPs. The intel DMA controller used in the original PC 
performs a read into a temporary register followed by a write so it can 
transfer memory. You use two DMA channels and tell each channel if you 
want the address counter to increment or have a fixed address for a 
peripheral device. The 6844 on the other hand enables the I/O data bus 
of the peripheral and reads or writes the peripheral data directly to 
memory. If the peripheral is a constant value, then it can write that 
value through a memory block.

If you clear process memory on exit of the process, then it needs to 
done as quickly as possible so that the CPU isn't hung up.

The 6809 does not have a user and supervisor mode for protected 
instructions like the 68000. The 68000 does not support virtual memory 
because it can't rerun bus cycles on page faults generated by a MMU. The 
68010 was designed to fix that problem. Page faults in a 6809 would have 
to use MRDY to stop the processor and you's need external hardware to 
resolve the memory management.

I presume protected OS9 system calls are some how determined by the 
address range they occur in.

Anyway perhaps that is all off topic.


On 5/09/2011 7:37 AM, Boisy G. Pitre wrote:
> Sorry, I was looking at the wrong system call.
> F$GProcP is a privileged system call, so it, like F$Move, cannot be called from a user process.
> Best Regards,
> Boisy G. Pitre
> Join our forums at http://www.tee-boy.com/forums/ to exchange ideas and join other WeatherSnoop enthusiasts.


More information about the Coco mailing list