[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: device driver source code



In article <GOadnQ-QfaifpJzfRVn-ig@comcast.com>, willy46pa@comcast.net 
says...
>
><aiiadict@gmail.com> wrote in message
>1107375994.852034.59440@l41g2000cwc.googlegroups.com">news:1107375994.852034.59440@l41g2000cwc.googlegroups.com...
>:
>: GarberStreet wrote:
>:
>:> I need some source to learn about device drivers from.
>:> Got any of those???
>:
>: device drivers for what?
>:
>: IIgs?   I have code somewhere.
>
>Yes, IIgs drivers.
>
>: IIe?  Prodos?  Dos3.3?  the only
>: I'd be able to help with is
>: 6502 without any interface
>: to prodos.  I've coded many
>: hardware drivers, but these
>: are for my own playing with
>: and don't follow any standards
>: besides interfacing software
>: with hardware.
>
> If you don't mind someone else seeing them, ok.
> I just need to see something with labels so I know
> what is happening. IIe code would be ok, even in
> DOS. Figured you'd be the most likely to have
> some that would help me with my own code, being
> you've built the robot and all.  Anything you don't
> mind letting out. I will keep it confidential.
>
> Apple II Forever, and Apple II Together,
> Bill @ GarberStreet Enterprizez };-)
> Web Site - http://garberstreet.netfirms.com
> Email - willy46pa@comcast.net

Apple DOS didn't have much support for device drivers (i.e.
logically separate pieces of code which matched a hardware
interface to a software interface).  The best examples of
"device drivers" in Apple DOS are probably the code in those
256 byte ROM's on the peripheral cards for the Apple II,
mostly I/O cards of various kinds.  The DOS RWTS can also
be considered a device driver (there is equivalent code
in all other Apple II OS'es (Apple Pascal, Apple CP/M,
Prodos, Apple OS/9, ....), and so can the monitor ROM
routines for writing to the Apple II screen memory.

Another OS, which was contemporary to Apple DOS but which
provided much better support for device drivers as well
as mapping logical devices to physical devices, was
CP/M.  All flavors of CP/M had a BIOS (Basic Input-Output
System) where all the drivers for the I/O devices was supposed
to reside.  The software interface of the BIOS was public.
CP/M had two kinds of devices: character devices (keyboard,
screen, printer, and an auxiliary device which often was a
paper reader/punch in the early days of CP/M but which later
became a serial port), and block devices (i.e. disk drives
-- floppy disks, hard disks, RAM disks).  The character devices
could be mapped onto one another by putting appropriate values
in the IOBYTE.  Each block device had a "disk parameter table",
which allowed using disks of widely varying formats and sizes.

So if you want a good example on how to implement device
drivers, Apple CP/M is a better example than Apple DOS.
By today's standards, both Apple DOS and CP/M are of course
quite primitive -- but that's also an advantage because they're
also simple and much easier to understand.