6809E vs 6809: this question has been raised before. There are
significant differences between the two chips. The E and Q signals that
need to be generated for the 6809E are generated with one 74LS74. Not a
problem. However, except for the address and data lines, the 6809E has
significantly different signals from the 6809. In interfacing to the
ECB bus for DMA, the 6809 has a more friendly set of signals. Hence,
the choice.
512K of SRAM and 512K of ROM. It sounds like NitrOS9 could easily use
more than 512K -- from your descriptions. But the current board is
a Eurocard 6U (233mm x 160mm) drilled to fit in an ATX case. It will
case. This is _not_ a VME board.
circuitry: 6502, 6802, and 6809. This is a legacy requirement, and the
first two chips do not need the MMU. Whether any s/w will be written
for them to use it remains to be seen. The MMU, constructed from
board space. It was added specifically for the 6809 to run NitrOS9 L2.
The big difference will be adapting to the 4K page size.
board and I hope you will be involved in the effort from the beginning.
Post by Kip KoonHi Everybody!
My congratulations on redesigning the 6x0x 3-PCB Mezzanine project. I am so
pleased the new 6x0x board project design team is taking such a serious
interest in making the 6809 portion as good as it can be and suitable for
running NitrOS-9. Also that there is concern to make sure Hitachi's HD63C09
will work in place of Motorola's MC68B09.
Coco 3 users have been upgrading from the MC68B09EP to the HD63C09EP for
years with absolutely no motherboard changes required so I suspect the same
is probably true for upgrading from MC68B09Ps to HD63C09Ps. After all,
Hitachi was a second source for a pin for pin compatible 6809 chips to
Motorola's MC68B09(E)P chips for years.
Now I know what you are thinking. The new 6x0x board project is intended for
the MC68B09P and not the MC68B09EP. Well you are right, but how about this
idea. Could a minor change be made to allow either an MC68B09P or an
MC68B09EP MPU to be run on the new 6x0x board with some jumpers nearby to
switch between outputting from the MPU the E & Q clock signals to the ECB
BUS and inputting to the MPU the E & Q clock signals from the ECB BUS? I
need to check the datasheets, but come to think of it jumpers may not be
needed for the E & Q clocks although I imagine there are a few other signals
between the 'non-E' and 'E' versions that might require minor changes to
accommodate them. I just don't know at this point. I'll need to take a
look.
These changes make it possible to have multiple 6x0x boards in the same
system since this new 6x0x board is a single board computer anyway. The
chips connecting the CPU's buses to the ECB BUS could be removed to prevent
conflicts on the ECB BUS.
The now master MC68B09P PCB outputs its E & Q clock signals to the ECB BUS
already since all slave PCBs need these two signals to sync up and function
correctly. The slave MC68B09EP PCBs could use the master clock signals from
the ECB BUS and therefore would automatically be in sync with the master CPU
PCB.
Obviously I'm exploring the possibility of running multiple 6x09s in the
same system and eventually I would need to add several more 6x0x boards with
HD63C09EPs in them so I'm trying to lay some of the ground work now. The
first 6x0x board will have the HD63C09P in it to start my multiprocessor
project off with. Of course that requires inter-processor communications as
well. Maybe some version of this inter-processor communication is already
defined on the ECB Bus since the Z80 use to talk to the 6809 PCB in the
3-PCB Mezzanine setup using a 6522 if memory serves. Maybe this former
inter-processor communication definition could be repurposed and utilized
for this new function or it could go off board with a ribbon cable to make
the inter-processor communications connections with one or more slave
boards. More thought on this is needed.
I've been waiting a long time for the 6x0x board project to get to the point
to where it could run a capable disk based operating system such as NitrOS-9
6x09 L2 and to make it a true single board computer.
I've heard of Flex2 and Flex9, but I have no experience with them nor do I
have anything to run them on similar in nature to the original SWTPC's
computer line. My version of Color Flex is unusable. How much ram could
Flex2 and Flex9 use anyway?
Just a very quick history for those who are not so familiar with NitrOS-9
and its history. After Tandy dropped support for the OS-9 Operating System,
some learned individuals in the Coco community took it upon themselves to
disassemble the entire OS-9 Operating System - boot files, drivers,
descriptors, commands, the whole works. Eventually OS-9 was renamed
NitrOS-9 which is very appropriate since so much has been added to the
original OS-9 Operating System since its inception. These new additions to
OS-9 turning it into NitrOS-9 pretty much made it a requirement that a
minimum of 512KB of ram was essential to make proper use of NitrOS-9 6x09
L2. With new drivers and appropriately formatted descriptors, literally
anything can be interfaced into and operated by NitrOS-9 including all the
features of the new 6x0x board. Heck the original OS-9 system was
originally designed with this capability as a mandatory design feature.
Various versions of OS-9 have been used as an embedded OS in many products
over the years.
An interesting fact about NitrOS-9 6x09 L2 is the current version will
automatically detect and make use of up to 2MB of RAM using the MMU in the
Color Computer 3 with the appropriate memory upgrades! Hopefully the new
MMU in the 6x0x project can be used in a similar way.
When NitrOS-9 is booted in 128KB of ram on the basic unmodified Coco 3,
there is only 3 - 8KB blocks of ram left to run programs. Obviously the
"Out of Memory" error rears its ugly head a lot in this configuration, so
512KB of RAM is now quite necessary. 512KB (I don't remember whether it is
ram, eprom, or a combination of both) have been available for at least some
of the Zilog based N8VEM CPU boards for quite a while now, so you can
imagine how happy I was when talks began towards creating a single board
version of the 3-Board 6x0x Mezzanine setup with 512KB of RAM and 512KB of
eprom included in the new design.
Maybe a subset of the entire NitrOS-9 6x09 L2 80 track DSDD Boot Mini-Disk
will fit into 512KB of Eprom. I imagine that the NITROS9 folder containing
all the routines required to create a new custom boot disk would not be
needed in EPROM and could be included on the SD card instead. Better yet,
since the SD card is present in the new 6x0x design and new drivers would be
needed anyway, the entire complement of the NitrOS-9 software collection
could be stored on the SD Card. 32GB of storage for all of NitrOS-9 is more
than enough including all the plethora of applications! Speaking of the SD
card, WOW! That SD card will add so much more capability to the 6x0x board.
That SD card will make it possible to have multiple OSs and configurations
to be made available for this board. New extensions to Flex2, Flex9 and
UniFlex will be needed as well I imagine. The addition of the SD card is
definitely a great move.
How about including enough pin headers to accommodate two more 512KB Static
RAM chips on a daughter board? A daughter board containing the two
additional 512KB Static RAM chips plus the one that use to be in the socket
which the daughter board now plugs into could easily be designed with female
pin headers to plug into the chip select pin headers on the 6x0x motherboard
and pin headers to plug into the 512KB Static Ram socket. Could this be
done and not affect the MMU design much? Only one more address line would
be needed - ma20. The user would then have options of 512KB, 1MB, 1.5MB or
2MB of ram if the 512KB of eprom is populated with the 512KB static ram chip
as well.
This leads me to my next idea. Can the 512KB of EPROM portion be populated
with a 512KB ram chip and have a much smaller eprom containing smaller
programs like the one in SiMon6809 or Coco 3's DECB 1.1 on a daughter board
since including the much smaller eprom in the current design at this late
stage of the project would require a layout change? This would not
necessitate any design change in the MMU. The logic to deactivate the
portion of the 512KB of address space used for the ram chip which is needed
by the smaller eprom would be on the daughter board. Come to think of it,
all the additional 512KB Static Ram chips, the smaller eprom and the needed
logic could be all on one big daughter board. This would upgrade the new
6x0x board from a 512KB RAM and 512KB EPROM system to a 2MB RAM and 16KB to
32KB Boot EPROM system. Gee, this daughter board is getting kind a big and
the new 6x0x board is still being designed. Cool! That is what all our
collaboration is all about anyway! Maybe I could design this daughter
board. I can now handle 100mm x 160mm PCBs. Isn't that the size of the
EuroCards you all use for all your various ECB Bus computers anyway?
The 16KB to 32KB eprom would be big enough to hold SiMon6809's monitor
program or some modified version of Disk Extended Color Basic with HDB-DOS
or anything else for that matter. In this way, NitrOS-9 6x09 L2, Flex2,
Flex9 or maybe even 6809 UniFlex could be run and have from 512KB -2MB of
RAM in place to make use of depending on whether the 2MB RAM Memory Daughter
Board is present.
Speaking of FLEX2, FLEX9, and UniFlex I noticed in the documentation file
for the new 6x0x board that there is 4KB of address space set aside for I/O.
How much of this I/O address space is actually used for chip addressing?
Couldn't it be reduced to 240 bytes and still accomplish the same functions?
This would give 63.75KB of logical address space for RAM, Eprom and 256
bytes for all the other features and functions including the interrupt
vectors too. I'm sure your MMU takes up a lot less address space than the
Coco 3 version does with the same capabilities of course. I'll have to
reread the new 6x0x docs on that to make sure though.
Couldn't the Flex and UniFlex source code be modified for the new chip
addresses to keep precious logical memory map addressing space used for I/O
at a minimum? I expect the Flex source code would need to be modified
anyway. Couldn't the size of the I/O space be made adjustable to allow for
the bigger address space needed for Flex2, Flex9 and UniFlex and smaller to
allow for other applications like modifying the Coco roms to run on this
platform which only uses 256 bytes or 1/4 of a KB of address space at the
$FF00-$FFEF range for all its I/O including the interrupt vectors?
Earlier I mentioned SiMon6809, for further information on SiMon6809, the
link follows.
http://www.8bitforce.com/simon6809/
In earlier emails I remember someone mentioning that the !FIRQ interrupt
input is not used for much of anything on the new 6x0x board. Relating to
running the SiMon6809 monitor program on this new 6x0x board and one of the
biggest reasons I can see for including the SiMon6809 monitor code into the
design aspects of the new 6x0x board project are three-fold.
First, the SiMon6809 monitor program has a one line assembler source code
entry capability in it. This means you can enter assembly source code into
the monitor program and assembled machine language binary code would be
entered directly into ram. Cool huh!
Second, it can also list the machine language program in memory as assembler
source code since it has an on-the-fly disassembler as well. Perfect for
people like me who have been away from assembling 6809 source code and
disassembling 6809 machine language code for so many years.
Third point is SiMon6809 communicates using a slave Ethernet port and the
!FIRQ interrupt line of the mpu is used in the handshaking process with the
FTDI ethernet chip. This means that 6809 based single board computers need
not be limited to serial I/O any more. FTDI has an excellent prototype
module in a standard 24 pin DIP PCB footprint. This opens up the possibility
of using PC or MAC based file servers at decent data rates. Presently there
are at least two file servers in the Coco community being used that could
possibly be adapted to this board.
I have not looked closely at the schematics yet, so I don't know if a
similar FTDI based slave Ethernet port like what SiMon6809 uses has been
included in the new 6x0x design or not, but if an ethernet port has not been
included, the old code to communicate with the MC6850 ACIA is still there as
comments. I'm sure someone could revamp the old code to communicate with
the 6551 instead. This brings me to another point of concern.
Since the new 6x0x board project does not include a Floppy Drive nor Hard
Drive controllers on board since they are available on other boards via the
ECB Bus, then the top speed for communications of 19,200 Baud is not enough
to use a PC or MAC as a file server. Once I build one of these boards, I
intend to put SiMon6809 on it then to encourage the modification of Disk
Extended Color Basic 1.1 with HDB-DOS 1.4 running out of a portion of the
512KB or smaller eprom so this board will truly have virtual floppy drives
and virtual hard drives for online storage in addition to the utilization of
the SD card until people can afford to upgrade to the full ECB Bus system -
like myself for instance.
In an effort to plan for building one of these new 6x0x boards, I tried to
print out the schematics and look over them, but my laser printer dithers
the colors into black dots to the point that I can't read anything. I have
a Canon LBP-860 which emulates the HP LaserJet Series II printer, so my
Windows 7 systems are printing to an HP LaserJet Series II driver in B/W
only. Is there a way I can convert the pdf version of the color schematics
into a B/W pdf format? No I don't have Adobe's PDF creation software,
though I do have MS Office 2010 which has WORD that can. Maybe the pdfs for
the new 6x0x board project could also be created in all B/W as well?
Please excuse the long email. I tend to think in paragraphs at a time
instead of little bullet points, so please don't flame me. I started out
with just one idea to suggest and to congratulate you all on a job well done
and my mind came up with at least one more idea each time I proof read this
email. After about 7 hours, I'm finally finished. Again, I apologize if
it's too long.
Keep up all the great work all you guys that on all the N8VEM PCB and
Software design teams are doing. I for one am eagerly waiting for the end
result to come to fruition so I can build one. If possible, I'd like to be
included in on the test build team. If you have read this far, thank you.
I certainly enjoyed writing it. Take care my friends.
Kip