[HN Gopher] Dunfield 6809 Portable
___________________________________________________________________
Dunfield 6809 Portable
Author : buescher
Score : 77 points
Date : 2021-02-04 13:02 UTC (1 days ago)
(HTM) web link (dunfield.classiccmp.org)
(TXT) w3m dump (dunfield.classiccmp.org)
| pacaro wrote:
| A friend and I have discussed doing something similar (i.e a
| luggable system in a wooden box) with rPI and a commodity 1080P
| display. We were thinking more of a campaign furniture aesthetic
| though
| tyingq wrote:
| An old Kaypro case would be heavy, but a pretty easy retrofit.
| You could fit a nice LCD in the spot where the 9 inch diagonal
| CRT goes. You could also have someone "chop" the depth of the
| case pretty cheaply at a metal shop.
| korethr wrote:
| The cool thing is, if you were able to source the chips today,
| you could probably build a clone of this system yourself.
| dboreham wrote:
| Good times. So much nicer to code for vs 6502 and Z80.
| jonsen wrote:
| I agree and I can tell, I once ported a 6809 program to Z80.
| tyingq wrote:
| A 6-chip 6809 SBC that runs BASIC:
| http://searle.x10host.com/6809/Simple6809.html
| localhost wrote:
| This reminds me of a brief fling that I had with a SuperPET back
| in the 80s. [1] 96KB RAM and an enormous ROM (48K!) with all the
| Waterloo languages (microAPL, microFORTRAN, microBASIC,
| microPASCAL, microCOBOL) in it!
|
| I never really wrote any ASM for it though, but it inspired me to
| write a p-code based runtime that had 16 bit registers for the
| 6502.
|
| [1] https://en.wikipedia.org/wiki/Commodore_PET#superpet
| microtherion wrote:
| I wrote a FORTH for the SuperPET (sold as a Waterloo "Micro
| Mainframe" here).
|
| The 96KB were done in a rather weird way, because there were
| really only 32KB of contiguous address space available once you
| accounted for ROM, and both the 6502 and 6809 had a 64KB
| address space anyway. So the SuperPET had 32KB contiguous RAM
| in the lower half of the address space, and 64KB of paged RAM
| occupying a 4KB address range somewhere in the upper half of
| the address space. The code for the Waterloo languages
| typically ran in paged RAM, split into 4KB segment, and when it
| needed to jump from one page to another, it used some
| trampoline routine to switch the page and jump back.
|
| For FORTH, I used a simpler scheme: I ran in contiguous RAM and
| used the paged RAM for the FORTH explicit virtual memory
| system, because there you only needed to guarantee access to
| one page at a time so it mapped onto the hardware without much
| sweat.
| Simplicitas wrote:
| I love this story!
| EvanAnderson wrote:
| I love absolutely everything about this. I get the same feeling
| of admiration and envy from this that I get from machinists who
| build tooling and fixtures that they then use to make parts. This
| system feels like a serious tool the author built to do real
| work.
|
| The author's simulator runs fine on a 32-bit Windows machine. I
| would expect it to run under DOSBox just fine.
|
| The simulator's text user interface is also superb. Getting the
| machine running with the full OS was very straightforward (run
| "D6809.COM W=CUBIX.DDI" to start with the OS disk mounted
| read/write).
| anonymousiam wrote:
| Did a lot of embedded 6809 assembly for satellite ground station
| equipment in the 1980s. I really enjoyed coding for that
| platform. Some of the things that set it apart from contemporary
| 8-bit processors:
|
| Multiple stack registers for complex argument passing.
|
| Internal 16-bit registers.
|
| (Integer) Multiply/Divide.
|
| Sign extension (SEX instruction!)
|
| Years later I did some embedded OS/9 (Not the Apple OS, but the
| Microware one.) The target was actually a 68k, but the OS had
| been ported from the original 6809 platform. It was pretty
| powerful for the day and although not completely POSIX compliant,
| it was very POSIX-like.
| jhallenworld wrote:
| I also wrote a lot of 6809 assembly in the 80s- for broadcast
| character generators. I wrote a multi-tasking operating system
| for it at one point- I used the DP register to point to per-
| task local storage (exactly like errno in multi-tasking UNIX).
|
| My co-workers went nuts with the PC-relative capabilities, but
| I didn't bother- those addressing modes were pretty slow.
|
| We had a cool piece of hardware: an in-circuit emulator. The
| 6809 version of this one:
|
| http://www.decadecounter.com/vta/articleview.php?item=1064
|
| That thing was the bomb, because it had trace memory so you
| could watch what led up to an interrupt causing your system to
| crash. Non-symbolic though, you needed the linker map and
| assembly listings by your side to do anything.
| anonymousiam wrote:
| There were some great tools for that platform. I used a
| different brand ICE, but also an HP1630D logic analyzer with
| a processor chip-clip and a built-in disassembler so you
| could see where your code failed. (Worked great for finding
| hardware problems too.)
| jhallenworld wrote:
| So if all you have is a Tek 465 scope, you can make a poor-
| man's logic analyzer by connecting an oscillator to the
| reset pin, and trigger off of this pin on the scope. Then
| use the delayed sweep knob to scan through the bus, one or
| two bits at a time.
| ddingus wrote:
| This is a cool trick! I plan to try it next chance I have
| my Tek 4 channel out for a play.
| buescher wrote:
| That emulator looks amazing. It must have cost a fortune at
| the time!
| jhallenworld wrote:
| Here is another site with links to a price list:
|
| http://www.iobium.com/applied_microsystems_em189_e.htm
|
| $3750 in 1983.. $10,106 in today's money..
| AnimalMuppet wrote:
| > I also wrote a lot of 6809 assembly in the 80s- for
| broadcast character generators.
|
| I got into broadcast character generators in 1989. Mind
| telling me who you worked for, and what you worked on?
| jhallenworld wrote:
| Video Data Systems- a small company in Hauppauge, NY. They
| made titlers "Chyrons", ad machines and community bulletin
| board things, oh and the NY Off Track Betting video stuff.
|
| Oh, I bet you had this experience: 100s of monitors whining
| at near 15734 Hz, damaging your young ears..
| AnimalMuppet wrote:
| I worked for Quanta in Salt Lake. They made the Delta
| character generator, and the Orion, and some others
| before my time.
|
| Yeah, I've heard that whine. Haven't heard it in years,
| though. Both monitors and my ears have changed...
|
| Did you ever go to the National Association of
| Broadcasters trade show? _That_ was loud. Hundreds of
| monitors, but dozens of booths, each trying to play
| catchy audio loud to attract attention.
| LocalH wrote:
| I used to work with a QCG-500 at a local TV station about
| twenty years ago. I can still pick out the way certain
| fonts looked at certain sizes on that thing. It
| eventually got replaced by a Chyron Maxine.
|
| Prosumer and professional character generators are
| woefully underdocumented. Anyone wanna donate any old
| functional ones to me? I'll set up and make a Youtube
| series about them lol. I'd love to see them eventually be
| emulated in the way that classic game consoles and home
| computers have been.
|
| I'm 40 years old and I can _still hear flyback_. I
| actually have a Roku Express+ hooked up to a 27 "
| Trinitron. I miss the days of CRTs, except for their
| weight.
| colejohnson66 wrote:
| > Internal 16-bit registers.
|
| What does this mean? Aren't all registers (for any mainstream
| processor) internal?
| canadian_tired wrote:
| It is really an 8-bit CPU from a bus (external connections)
| perspective...but internally, there were 16 bit registers
| (sort of...) Perhaps this was why he made the distinction.
| jhallenworld wrote:
| It's the link between 8-bit and 16-bit: at least that's
| what Motorola marketing said, look at the cover of this
| book:
|
| https://www.amazon.com/MOTOROLA-MC6809E-MICROPROCESSOR-
| PROGR...
| jacquesm wrote:
| The 6809 and the 6502 had a 'fast register file' page aka the
| 'zero' page on the 6502 which could be relocated anywhere in
| memory in the 6809. These were looked at as an external
| extension of the register set and lots of instructions could
| use the data there as 8 or 16 bit data or pointers.
| jonsen wrote:
| > (Integer) Multiply/Divide.
|
| As I remember it, it had the instruction MUL, which did 8 by 8
| bit unsigned multiply, but no divide.
|
| Maybe the Hitachi CMOS version had it? I know this version had
| undocumented additional instructions.
|
| EDIT: WP says it had hardware division:
|
| https://en.m.wikipedia.org/wiki/Hitachi_6309
| ddingus wrote:
| I just got one of these on a flash sale Color Computer
| upgrade kit. Should be fun to bang around on one of these
| days.
| HeyLaughingBoy wrote:
| Then you need to know POKE 65495,0 :-)
| ddingus wrote:
| Indeed.
|
| I just got a nice, old CRT for use with my retro
| machines. A CoCo upgrade and jam session is in my future.
| jacquesm wrote:
| That is exactly correct. You beat me by 60 seconds, while
| writing up my comment, I saw yours after posting.
| Interesting, I wonder how many neurons I'm wasting on useless
| 8 bit instruction set trivia.
| jonsen wrote:
| Same here :), but a beauty like 6809 is worth remembering.
| Mountain_Skies wrote:
| Wonder how difficult it would have been to get OS/9 or Flex
| running on a custom build like this.
| jacquesm wrote:
| OS/9 should be trivial to port, it was written with that goal
| in mind.
| buescher wrote:
| Probably not too hard. There's a port of NitrOS-9 to this
| crazy thing, for example: https://www.frontiernet.net/~mmarle
| tte/Cloud-9/Hardware/Libe...
|
| I haven't tried his CUBIX on his emulator yet, but there's a
| certain richness to systems that start with a full fledged
| debugger on the bare metal. And he's got his own assembler,
| Forth, BASIC, APL, C compiler...
| Stratoscope wrote:
| > _Sign extension (SEX instruction!)_
|
| We were definitely into SEX in those days.
|
| In the late 1970s I was working at Tymshare, and one of my
| tasks was maintaining the assembler and linker. (I think this
| was on the PDP-10 but it could have been another machine.)
|
| We wanted a "weak external" feature, somewhat akin to a "weak
| reference" in modern languages: instead of failing to build if
| the external symbol was not defined in another object file, it
| would link OK but leave a null value that you would check at
| runtime.
|
| The assembly directive for a regular external was EXTERN. I
| thought of calling the weak external WEXTERN but that looked
| silly. So I decided to call them Secondary Externals, with the
| directive being SEXTERN.
|
| And as far as I know, no one complained!
| jacquesm wrote:
| There is no divide instruction. You had to write a subroutine
| for that, you could mask it as a macro on a half decent
| assembler but the CPU did not have it natively, it did have 8x8
| multiply.
| Mountain_Skies wrote:
| What a nice build though it does look like you might get stabbed
| in the wrist by the latches when typing on it. Good reason to
| wear a sweat shirt while using it.
| ddingus wrote:
| The 6809 is a gem. So much fun to program in assembly.
|
| Someone should do a Ben Eater style kit. I am very tempted!
| Simplicitas wrote:
| that would nice
| tasty_freeze wrote:
| Byte magazine had an article back in the day where one of the
| designers talked about their decision process and intent while
| designing.
|
| Luckily, someone has already scanned that article. In fact, it
| looks like they recreated the article:
|
| https://cdn.hackaday.io/files/460001968064000/byte_6809_arti...
| Narishma wrote:
| Here's the original article, in three parts:
|
| https://archive.org/details/byte-magazine-1979-01/page/n15/m...
|
| https://archive.org/details/byte-magazine-1979-02/page/n33/m...
|
| https://archive.org/details/byte-magazine-1979-03/page/n47/m...
| illys wrote:
| Aside the article, the computers depicted in the ads are
| amazing!
| ezequiel-garzon wrote:
| I remember seeing an ad of an Apple computer, possibly from the
| 80's, that was sold as portable but putting together the whole
| package resulted in a huge cube. Does anybody know the model
| number, or have a link to the add?
| elvis70 wrote:
| For what it's worth, the source code of OmegaSoft Pascal, a
| Pascal cross-compiler with linker/assembler/... for OS9/68000
| targeting the 6809, is available: http://pascal-
| central.com/omega.html
|
| Direct link to the archive:
| http://www.certsoft.com/PXK9_OS9_Source.zip
|
| This seems to have been written in Pascal (Modula?).
___________________________________________________________________
(page generated 2021-02-05 23:01 UTC)