[Info-vax] Android development Was Re: OT: Larry Ellison takes retirement as CEO of Oracle
Johnny Billquist
bqt at softjar.se
Sun Sep 21 15:42:03 EDT 2014
On 2014-09-21 19:09, JF Mezei wrote:
> On 14-09-21 11:03, Johnny Billquist wrote:
>
>> Essentially correct, although there are no IO instructions per se, but
>> various system calls, both for loading in dynamic libraries, grabbing
>> memory, and doing I/O.
>
> Gow does an IO actually get done ?
That depends on a lot of details...
> So you "branch" to the driver, driver sets up registers and deposits
> values at the correct physical memory locations and then what ? Does the
> device get the "order" to perform an IO when a certain value is
> deposited at a certain location ? or is there an assembler instruction
> to trigger an IO for the device specified in the argument next to the
> assembler opcode ?
You normally do not branch to a driver. You make a system call. The
system call eventually ends up calling the device driver. The device
driver do whatever is required to get the actual controller to perform
an operation. It might be accesssing device registers in I/O space. It
might be executing special I/O instructions. It might be writing some
magic value to a memory location that the controller polls. It might be
that you download a channel program to the controller, which then
performs I/O. In short, there are almost as many answers as there are
computer architectures and controllers around.
> IBM 360 assembler has the "WTO" instruction (or macro) which is "write
> to operator" (but at Uni, it really meant "write to output" since the OS
> (Music) didn't allow students to send messages to the operator console
> :-) And interssting that it is able to perform differently on different
> operating systems. (on MVS, it really does pop a message up to the
> operator console, but on Music, it goes to the user terminal, even if
> both instances run on smame physical machine over VM)
Classic VAX systems (to talk about something ontopic as opposed to my
traditional PDP-11 ramblings) had controllers on a Unibus. Most
controllers on a Unibus are accessed through the Unibus adapter, and
each controller have a few registers accessible there, which you read
and write to, to manipulate the controller. But normal programs do not
even have this address space accessible in their virtual memory mapping.
But you access any device through the system call $QIO, which eventually
ends up in a call to the device driver activation address.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
More information about the Info-vax
mailing list