On Sat, 2013-10-26 at 14:49 +0200, Timo Sintonen wrote:
[…]
> A little bit sad that the honored leader of the language still 
> thinks that the right way to go is what we did with Commodore 
> 64...

Not a good style of argument, since the way of the Commodore 64 might be
a good one. It isn't, but it might have been.

The core problem with peek and poke for writing device drivers is that
hardware controllers do not just use byte structured memory for things,
they use bit structures.

So for data I/O, 

        device->buffer = value
        value = device->buffer

can be replaced easily with:

        poke(device->buffer, value)
        value = peek(device->buffer)

but this doesn't work when you are using bitfields, you end up having to
do all the ugly bit mask manipulation explicitly. Thus, what the
equivalent of:

        device->csw.enable = 1
        status = device->csw.ready

is, is left to the imagination.

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:[email protected]
41 Buckmaster Road    m: +44 7770 465 077   xmpp: [email protected]
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:[email protected]
41 Buckmaster Road    m: +44 7770 465 077   xmpp: [email protected]
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

Reply via email to