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