Foenix F256 meets its match - the FNX6809 and a port of NitrOS-9 Level 2

Поделиться
HTML-код
  • Опубликовано: 26 май 2024
  • This video provides a first look at the FNX6809 drop-in CPU replacement, which is a FPGA based MC6809 core, designed to replace the stock WDC65C02 CPU in your Foenix F256 Jr. or Foenix F256K.
    As we often do on this channel, we begin with some light history and then delve into some noteworthy features of the original Motorola CPU, including famous use cases and the folks behind the scenes that worked tirelessly to envision and see the product brought to market.
    We then shift gears and talk about NitrOS-9 via a quick look at Boisy Pitre's book "CoCo: The Colorful History of Tandy's Underdog Computer" which documents numerous aspects of Tandy's CoCo systems including the advent of an operating system developed by Microware, named OS-9.
    And finally, we discuss the NitrOS-9 port which has now been extended to support the Foenix F256 system (equipped with the FNX6809).
    Have a look below for additional information including the Motorola papers discussed within, and a link to the time-indexed CoCoTALK #18 which includes a live demo of an advanced version of NitrOS-9 on a CoCo 3 system.
    At this point in time, NitrOS-9 for the Foenix platform supports Level 1 and Level 2, however in character (terminal) mode only. Note that right out of the gate, a bounty of applications are already available and more are on the way, as is development of Foenix specific graphics.
    I anticipate that I will create another one or two videos on this topic as I gain experience with the platform. As mentioned in the video (as disclaimer), I am new to 6809 and OS-9 topics, so please bear with me as I improve my knowledge and experience of this new world. The group of people running the FNX6809 is small but growing. Ultimately, the belief is that robust Foenix support and the benefits of a high performant graphics and sound subsystem embedded within VICKY, combined with a clock speed which is ~3x that of the original 6809, will draw others to the platform. If you've not yet watched this video, you'll be pleased to know that NitrOS-9 is a multi-tasking and multi-user operating systems, quite a different beast from ROM based systems which boot to BASIC or a simple executive shell.
    If you are new to this channel, there is plenty to catch up on, and a backlog of great content on software development and demos in the works, so subscribe and stay tuned!!
    ** The usual stuff
    Constructive feedback and questions are welcome, and clicking the SUBSCRIBE button is much appreciated. We are just getting started, but have big plans for this channel.
    ** Links and/or references mentioned:
    Link to CoCoTALK #18: ruclips.net/user/liveXP0iDTS0...
    Link to the 9 page Motorola document authored by Joel Boney: dl.acm.org/doi/pdf/10.1145/15...
    Link to the "The 6809 - Design Philosophy Part 1" document by Terry Ritter and Joel Boney of Motorola: tlindner.macmess.org/wp-conten...
    Link to Terry Ritter's "bio" page, which is within his personal web site; it documents his eventful 4 1/2 years at Motorola following 2 years as a Fixed Ciphony specialist with the U.S. Army serving in Vietnam: www.ciphersbyritter.com/AUTHOR...
    ... and here is Terry Ritter's "main" page with an absolute encyclopedia of information and related work (and very little, if any hint, of his prior work with Motorola !!): www.ciphersbyritter.com/
    Link to a "Chip Letter" story entitled "Motorola's 6809: The Best 8-Bit?": thechipletter.substack.com/p/...
    Foenix Retro home page: c256foenix.com
    Foenix Rising Newsletter: apps.emwhite.org/foenixmarketp...
  • НаукаНаука

Комментарии • 33

  • @1BitFeverDreams
    @1BitFeverDreams Месяц назад +2

    I'm glad you're doing more videos. I appreciate the grounded view in computing history.

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      Thank you for the comment, I like your channel as well!
      I'll take this opportunity to add two edit missteps, and a note on Terry Ritter that I neglected to include in the video description. The first is a text callout which I inadvertently removed during final edit which annotated the 'killer feature' of the 6809, that being two stacks. In addition to a 'hardware' stack (used for branch, branch long and return aka JSR and RTS for 6502 bods), the 6809 has a 'user' stack which is intended for parameter passing. An efficiency gain is enjoyed by removing the need for the developer to perform stack 'maintenance', whereby a called subroutine needs to juggle stack values, ultimately re-stacking potential return value data and the processor return address.
      Secondly, in the F256, the FNX6809 can be used as a no-kernal/no-OS machine in similar fashion to the F256 Jr. in RAM mode, leveraging a reset vector at $FFFE-$FFFF, quite similar to the 6502.
      FInally, here is a link to Terry Ritter's "bio" page; see the updated video comments for more: www.ciphersbyritter.com/AUTHOR.HTM#Addr

  • @MK-ge2mh
    @MK-ge2mh Месяц назад +3

    6809 used to be my favorite 8-bit microprocessor. Then I got my hands on the HD63C09. What a difference! Way, way better implementation, more registers, more instructions, higher clock rates which can be way overclocked. The 16-bit x 16-bit multiplication uses less than half the clock cycles of the 68000, and the 32-bit by 16-bit signed division is less than a quarter the number of cycles. I can do 3D graphics with it no other 8-bit CPU of the era could ever possibly fake.

  • @TheTechDungeon
    @TheTechDungeon Месяц назад +1

    Was nice seeing you at VCF East. This video has got me interested in the F256 now! Just got back from CocoFest a few weeks ago, so I have been interested in learning more about the Coco systems and OS-9/NitrOS-9. Boise had high praise for the F256 in a few talks I had with him at CocoFest when it came up. I see there is going to be a new F256K2 now. Would love to hear your thoughts on it.
    Looking forward to more videos!
    Michael @ Tech Dungeon

  • @CurtisBoyle
    @CurtisBoyle Месяц назад +2

    Nice video! If you have any questions about NitrOS9 / OS9 in general, feel free to ask both Boisy and myself.

  • @RussTanner
    @RussTanner Месяц назад +1

    I did much assembly programming on the 6800 and 6809E using masm on the CoCo II. It was a surprisingly capable computer with a good implementation of BASIC. We developed a system for the Cummins assembly line for testing their diesel engines in their big plant outside Jamestown, NY. We made them using a CoCo II motherboard. Worked wonderfully. I liked the simplicity of the 6800/6809. I think the 6809 had the multiply capability and the 6809E had a faster clock (2 MHz). Good times.

    • @kevincozens6837
      @kevincozens6837 Месяц назад

      There are three basic versions of the 6809 related to its clock speed. The top rated speed of the 6809 is 1MHz. The 68A09 raises that to 1.5MHz. The 68B09 can be clocked at 2MHz.

  • @ganswijk
    @ganswijk 16 дней назад

    Well our system was a big improvement on the CS-system (CS=Cees Schoenmaker) which was a local copy of the SWTPC system, which was also bus-based. We put everything on a single board to make it much more reliable. Our 'leader' believed very much in SCSI so it has two SCSI-chips. I had to program for them and that was quite easy...

  • @kevincozens6837
    @kevincozens6837 Месяц назад +1

    This video doesn't mentioned the 6809's two 16-bit stack pointers or its two 16-bit index registers. It has 44 base instructions but there are variants. The base instruction LSL, for e.g., has LSLA and LSLB. There are 15 branch instructions that use an 8-bit offset. There are also the $10 and $11 set of instructions that add things like relative branch instructions that can be used for position independent code. The 6809 is considered the best 8-bit processor by many. It is unfortunate it wasn't more popular.

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      Oh yes. I botched an edit just before publish that identified the two stacks as a killer feature (see the description for that callout) but as for your other points, noted, and thank you. I’ll be porting some of my code to this platform across the summer and will highlight the efficiency; at this point in time, there is plenty I do not know. I do know 6502/65816, and ARM but nothing in between… yet. Thank you for the comment.

    • @gregclare
      @gregclare Месяц назад +1

      Thanks for noting this. I worked with the 6809 after starting out on 6800, and thoroughly enjoyed the power of the 6809 ISA. So much so that it remains my favourite retro CPU to code for, and when I eventually got introduced to 6502 in the 80’s, I found it quite frustrating to code for, having been first spoilt by the 6809. The 6502 distracts your focus on the functionality you’re coding, by the need to focus on coding work-arounds because of its cost saving design limitations. Whereas with the 6809 you have a relatively clean, complete, and powerful instruction set and addressing modes. Not to mention 16 bit registers. It’s just a shame that the 6809 arrived a little late, when manufacturers were moving on to full 16 bit processors.

    • @kevincozens6837
      @kevincozens6837 17 дней назад

      @@8-bitwallofdoom np. It is a lot of work putting together YT videos. I'll get in touch via the Foenix Dicord channel in case you need any assistance.

  • @AppliedCryogenics
    @AppliedCryogenics Месяц назад +1

    I wonder if there's enough spare gates in the 6809 fpga to upgrade it to an HD6309.

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад +1

      I believe the FNX6809 is set in stone; it runs at the system clock of 6.29 Mhz., the system FPGA (VICKY) includes plenty of graphics, audio, timer, and associated utility including a Math 'block' which old school bods will call a co-processor however it was developed to accompany the 8-bit 65C02 so in essence, it's a 1/2 step behind the 6809. I does however offer 16-bit unsigned division; you just have to plug values in as low/high bytes. It returns a result in 1 cycle aka before you need it. Also, the current VICKY support DMA transfer and a well-capable MMU which was developed in the spirit of the CoCo 3, but offers four MLUTs instead of two. As for the future, I'm aware that Stefany is working on the F256K2 system which will have a boot model (I believe) that offers 6809 embedded; whether it's based on the Hitachi CPU is yet to be determined. Thank you for the comment.

    • @kevincozens6837
      @kevincozens6837 Месяц назад +1

      I already inquired about this. Yes, it is possible. The problem is the lack of a good FPGA implementation of the 6309.

  • @JamesJones-zt2yx
    @JamesJones-zt2yx Месяц назад

    BASIC09 I-code isn't quite like JVM code or Pascal P-code, because it has to preserve BASIC09 statements so you can edit your code, list it, and debug it. So it doesn't just have a conditional branch instruction, it has statements corresponding to each of the control flow statements of the language. basic09 turns the source code you enter, load, or edit into I-code as soon as it can and when you list your code it regenerates and prettyprints it. That immediate conversion means, among other things, that when it runs code it doesn't have to endlessly reparse expressions and statements, reconvert constants to internal format, or do tedious linear symbol table lookups of the sort that lead to all those articles telling you how to make your BASIC programs unmaintainable and illegible to get rid of a small portion of interpreter overhead.

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      Thanks for that. I've yet to spend any time with it but am getting close. If you know the history, would you consider it a 'clean room' BASIC, aka not a derivative of the Microsoft versions that made it to most platforms? I've heard it compared to BBC Basic (at least in terms of functionality, for its time).

    • @JamesJones-zt2yx
      @JamesJones-zt2yx Месяц назад

      @@8-bitwallofdoom I was not with Microware when BASIC09 was being developed, but given the big differences in how it works, I am very sure it was not based on any of the Microsoft BASIC interpreters, or any other BASIC interpreters for that matter. BASIC09 had procedures with local variables, with call by reference parameters, but doesn't provide for user-defined functions. BASIC09 PRINT USING formats are like FORTRAN formats rather than the BASIC PRINT USING formats that are more like COBOL PICTUREs. BASIC09 has TYPEs, which are like Pascal records or C structs, but doesn't have pointers (though you can store the result of ADDR() in an INTEGER). BASIC09 won't let you assign to MID$(foo$,i,j), and doesn't have a STRING() function (which can prove useful sometimes).

  • @mnoxman
    @mnoxman Месяц назад

    Does this have a virtual MMU for the 6809?
    Basic09 is like a cross between COMAL and Pascal. It could be "compiled" to a B(P)-Code that used RUNB which is not unlike Java Virtual machine but circa 1978.

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      Thanks for the note on Basic09. As for the MMU, it's within the Altera FPGA which is onboard the F256 system. It's designed to be 'like' the CoCo 3's MMU, however has four memory LUTs at the programmers disposal. Simply, set the MMU to enable changes, then land any one or more (up to 8) page/bank IDs into designated registers (again, these are VICKY registers in the Altera Cyclone FPGA), and VICKY will bank these 8K banks into the CPUs view of $0000-$FFFF. The memory map is slightly different on the FNX6809 build as compared to what I've been working on to date (in 65C02 land), but have a look at this article which introduces and exercises the MMU in a bitmap graphics use-case: apps.emwhite.org/shared-files/759/?Foenix-Rising-Issue-5-2023-FLASH_1.pdf&download=1 NOTE that this is from an insecure http site so you may need to 'accept' based on a browser config, but I wrote the article, created the .pdf, and host the site where it's served from, so no worries.

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      Apologies, I just realized that I created a video on this topic well over a year ago. Have a watch if interested: ruclips.net/video/t65-ZpngoFw/видео.html

  • @NorthWay_no
    @NorthWay_no Месяц назад

    I've been pondering getting the 6809 replacement for the Atari 8-bit line. Just because you can, you know. This nearly sounds like it could be compatible.

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      If all of the ATARI features are available to a 6809 CPU in that machine, that would be cool; I believe the 1.79 clock is held in common but I'm not an ATARI expert; I just have an 800XL that I use for some vintage games and FujiNet. The FNX6809 (which, as mentioned, requires an updated FPGA) has a slightly different memory map [but all of the same features] as the 'normal' 65C02 based F256, but it's reorganized as to provide NitrOS9 with a large block of contiguous space. Boisy worked closely with Stefany to ensure that this accomodation was taken in to consideration. But as for the ATARI, if you are writing straight 6809 and leveraging ATARI registers without something like an OS-9 port, you'll be golden. I'm just getting here but it appears to be an amazing chip and underrepresented in the annals of history.

    • @AlexEvans1
      @AlexEvans1 Месяц назад +1

      ​@@8-bitwallofdoom the Liber809 serves as a drop-in replacement for the 6502. It only works for certain Atari 8-bit models. It has access to all the features of the machine and there is (in spite of memory map issues) a version of NitrOS9 for it.

  • @lezanderson1236
    @lezanderson1236 Месяц назад

    Is there a 6309 (HD63x09) version ??

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      Not that I'm aware of. There is a new core in development at the moment and my understanding is, it's also MC6809 based; but some features (math ops) are possibly on the list to be integrated into the accompanying [system board based] FPGA. I'll see if I can provoke somebody I know to provide additional details or a better answer.

  • @TheTechDungeon
    @TheTechDungeon Месяц назад

    p.s. Do I see a shelf leg of ours in this video!

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      Oh yes; you'll see it in my 'tour' video which I'll be publishing this week. I ended up jointing some maple from an old drawer and finishing the edge to organize my keyboards on my benchtop (I don't have a lot of room here so a precise width was called for). And yes, it doubles as a 'stand' for materials I'm presenting on the channel, bringing items closer to the top mounted camera. Will see you at Midwest in a few mos. and will reach out to pick up another pair, thank you!

    • @TheTechDungeon
      @TheTechDungeon Месяц назад

      @@8-bitwallofdoom Looking forward to the tour video. Always love seeing setups. Also looking forward to future Foenix videos in whatever form.
      I forgot the Foenix had the actual 65C816 in it. For some reason I thought it was just an FPGA 6502 or 6809 in it.
      I saw the old F256K is being obsoleted for the new K2. Any highlights on it? You planning to do a video about it?

    • @8-bitwallofdoom
      @8-bitwallofdoom  Месяц назад

      The F256 Jr. and 'K' shipped with an actual WDC 65c02, though iirc, for a short while Stefany had an option to purchase with a WDC 65816 instead. She did not, however, release a flat memory model version of VICKY for the *816 until just this week, but previously, you could still leverage 16 bit registers and extended opcodes, but had to futz with the MMU to access extended memory.
      As for the F256K2, I have no immediate plans to review or feature one on this channel because I'm absolutely swimming in gear with an A2560K that I need to spend some more time with, and an A2560X that Stefany has yet to ship me. I will certainly reconsider sometime next year. I'm sure others will jump to provide reviews including some famous RUclips'rs so stay tuned for those. Meanwhile, if you would like to view some WIP videos, check the Patreon channel on the Foenix Discord. There is quite a bit in flux/development and to do's but it's coming along nicely.

  • @ganswijk
    @ganswijk 17 дней назад

    I wrote an on-topic comment some hours ago. Where did it go?

    • @8-bitwallofdoom
      @8-bitwallofdoom  17 дней назад

      Nothing popped up and not 'held for review'; not sure, but this comment posted so you should be good if you want to re-enter.

    • @ganswijk
      @ganswijk 16 дней назад

      @@8-bitwallofdoom Ok, thanks. I may still remember what I wrote... ;-)