[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