eZ80 Single-Board Computer - CP/M

This is a discussion on eZ80 Single-Board Computer - CP/M ; I've finally put one on-line, for people to test-drive. It runs CP/M 3, and is running at a clock rate of 50MHz. The instructions on how to access it are on www.ez80sbc.com . Basically you need an SSH client, and ...

+ Reply to Thread
Results 1 to 20 of 20

Thread: eZ80 Single-Board Computer

  1. eZ80 Single-Board Computer

    I've finally put one on-line, for people to test-drive. It runs CP/M
    3, and is running at a clock rate of 50MHz. The instructions on how
    to access it are on www.ez80sbc.com.

    Basically you need an SSH client, and then you can connect to my
    server, which then connects to the eZ80SBC's console serial port via a
    COM port.
    When you connect to my server, it will power-up the eZ80SBC, and then
    run Minicom (Linux comm program) to connect to the eZ80SBC. Type ^A-X
    to exit, which will power-down the eZ80SBC and log you out. If after
    connecting, you are immediately logged out, then there is someone else
    using the eZ80SBC at that time.

    All of the interesting programs are on drive C:. Drive A: is a 128K
    FLASH
    (read-only) drive with some essential utilities. Drive C: has a bunch
    of other programs in different user areas, and is actually a DOS disk
    image file (compatible with SIMH/AltairZ80) called cpm3_c.dsk stored
    on a 64MB SD Memory card. Some programs in user area 0 are marked as
    SYSTEM files, so you will need to do DIR [ALL] to see them.

    If you run the memory test program (MEMR.COM) you will get an idea of
    how fast this system is. Use the default starting address, and end at
    C000h (in order not to overwrite the CBIOS). On a typical 4MHz Z80,
    this program takes a couple minutes to go through a single test
    series.

    -Howard


  2. Re: eZ80 Single-Board Computer

    Hello Howard,

    schrieb:

    >I've finally put one on-line, for people to test-drive. It runs CP/M
    >3, and is running at a clock rate of 50MHz. The instructions on how
    >to access it are on www.ez80sbc.com.


    Your ez80sbc is a great work.
    I already tested yours and it am super fast.
    Your Howard's Blog is interesting and many Info's.

    Sincerely,

    Rolf


  3. Re: eZ80 Single-Board Computer

    hi Howard

    Had a look at the ez80....b e a u t i f u l....

    I recently came back to CP/M as a step up from microcontrollers
    (PIC, 8051 etc) and down from DOS/Win. My house is
    rudimentary solar, so power useage is my major concern.

    What sort of power does your ez80 use @ 50 MHz?

    regards
    Allen





  4. Re: eZ80 Single-Board Computer

    On Aug 16, 6:04 am, allenjbr...@gmail.com wrote:
    > hi Howard
    >
    > Had a look at the ez80....b e a u t i f u l....
    >
    > I recently came back to CP/M as a step up from microcontrollers
    > (PIC, 8051 etc) and down from DOS/Win. My house is
    > rudimentary solar, so power useage is my major concern.
    >
    > What sort of power does your ez80 use @ 50 MHz?
    >
    > regards
    > Allen


    The whole system is powered from a USB port, so max is 500ma @ 5V.
    With a memory card inserted, the whole thing draws about 350mA, so
    about 1.6 watts. I'd say it's solar friendly. The USB controller is a
    48MHz 8051, so programming is a mix of Z80 and 8051, but all of the
    8051 code is written in C using the SDCC compiler.

    -Howard


  5. Re: eZ80 Single-Board Computer

    Is this project a "definite go" or is purchase demand still being
    measured to determine feasability?


  6. Re: eZ80 Single-Board Computer

    Hello, Howard!

    Too bad you are so far away: Even if you don't seem to do much CP/M
    work, I feel that you could do some fascinating "up to date" CP/M
    systems.

    I just had a quick view of your Web page.

    3 remarks:

    1) Your SBC would be much more useful if you could implement CP/NET
    Version 1.2 for it (as I wrote, 2 other persons managed to implement
    it for their systems).

    2) The ultimate version of 8-bit CP/M was MP/M II... So, your SBC
    would be really impressive if you could fit 4 terminals to it.

    3) By the way, I saw that you are still using MBASIC 5.21... The last
    version for 8-bit CP/M was 5.29. Someone found it and uploaded it to
    the Retroarchive Web site.

    Yours Sincerely,
    Mr Emmanuel Roche



  7. Re: eZ80 Single-Board Computer

    Hello Emmanuel,

    schrieb:

    >3) By the way, I saw that you are still using MBASIC 5.21... The last
    >version for 8-bit CP/M was 5.29. Someone found it and uploaded it to
    >the Retroarchive Web site.


    Everyone can take its suitable Software.
    I take C-Compilers instead of MBASIC.

    Rolf


  8. Re: eZ80 Single-Board Computer

    On 2007-08-17, roche182@laposte.net wrote:
    > 2) The ultimate version of 8-bit CP/M was MP/M II... So, your SBC
    > would be really impressive if you could fit 4 terminals to it.


    The eZ80 is not friendly to MP/M-II. In banked configurations, MP/M
    wants a chunk of memory that is shared at the top of each bank. The eZ80
    switches banks by appending an 8-bit register to the 16-bit Z80 address;
    there is no way that I see offhand to make a shared chunk.

    There are a few tricks you could use, though. For example, you could
    copy the shared chunk between banks when you switch banks. That makes
    switching banks a fairly expensive operation.

    Or maybe you could have a non-shared kernel that has proxy tasks; when a
    proxy task runs, it switches into a Z80 context residing in a separate
    eZ80 bank. The Z80 context would do system calls by sending messages to
    its proxy task. The proxy task would collect the parameters from the Z80
    context, issue the call, then distribute results; to the non-banked MP/M
    kernel, it would look like the proxy task was making the calls.

    You could, of course, also build traditional bank-switched memory
    outside the CPU...
    --
    roger ivie
    rivie@ridgenet.net

  9. Re: eZ80 Single-Board Computer

    On 2007-08-17, Roger Ivie wrote:
    >
    > The eZ80 is not friendly to MP/M-II. In banked configurations, MP/M
    > wants a chunk of memory that is shared at the top of each bank. The eZ80
    > switches banks by appending an 8-bit register to the 16-bit Z80 address;
    > there is no way that I see offhand to make a shared chunk.


    I forgot about the 16K internal RAM (8K single-ported, 8K shared with
    the Ethernet). It can be placed at the top of any 64K chunk, so you'd
    just need a bank switching routine that updated MBASE and moved that
    chunk to be able to treat it like common memory.
    --
    roger ivie
    rivie@ridgenet.net

  10. Re: eZ80 Single-Board Computer

    Hello, Roger!

    > The eZ80 is not friendly to MP/M-II. In banked configurations, MP/M
    > wants a chunk of memory that is shared at the top of each bank. The eZ80
    > switches banks by appending an 8-bit register to the 16-bit Z80 address;
    > there is no way that I see offhand to make a shared chunk.


    If CP/M Plus (the single-user version of MP/M II) is running on the
    SBC of Howard, that means (as far as I understand) that MP/M II can be
    done on the same hardware.

    Yours Sincerely,
    Mr Emmanuel Roche



  11. Re: eZ80 Single-Board Computer

    wrote in message
    news:1187437174.143606.131380@w3g2000hsg.googlegro ups.com...
    > Hello, Roger!
    >
    > > The eZ80 is not friendly to MP/M-II. In banked configurations, MP/M
    > > wants a chunk of memory that is shared at the top of each bank. The eZ80
    > > switches banks by appending an 8-bit register to the 16-bit Z80 address;
    > > there is no way that I see offhand to make a shared chunk.

    >
    > If CP/M Plus (the single-user version of MP/M II) is running on the
    > SBC of Howard, that means (as far as I understand) that MP/M II can be
    > done on the same hardware.
    >
    > Yours Sincerely,
    > Mr Emmanuel Roche
    >
    >


    Whilst that is true (partially), because of the way the eZ80 memory
    management works, (ie. 64k Banks) you couldn't easily run the banked version
    of either. That is not such an issue with CP/M Plus but it is a big deal
    with MP/M II. The TPA would be very small and you could only run one
    program at a time negating the value of using MP/M II.

    What would be interesting would be to port UZI to the native eZ80 and then
    run CP/M applications under the emulator using a 64k bank for each instance.



  12. Re: eZ80 Single-Board Computer

    On 2007-08-19, Max Scane wrote:
    >
    > Whilst that is true (partially), because of the way the eZ80 memory
    > management works, (ie. 64k Banks) you couldn't easily run the banked version
    > of either. That is not such an issue with CP/M Plus but it is a big deal
    > with MP/M II. The TPA would be very small and you could only run one
    > program at a time negating the value of using MP/M II.


    As I mentioned in another posting, the banked memory problem isn't that
    big after all, since parts such as the eZ80F91 include a chunk of built-in
    RAM that can be placed at the top of any 64K bank; it would just be a
    matter of moving that chunk when you switch banks.

    A larger problem would be the extra registers that need to be saved on a
    task switch and management of the dual stacks. For example, when the
    eZ80 takes an interrupt in long addressing mode while running in Z80
    mode, sixteen bits of return address are stored on the "short stack" and
    a code is stored on the "long stack" to indicate the processor was
    running in Z80 mode when the interrupt was taken. When the interrupt
    service routine returns, it picks up the pieces of the return address
    from *both* stacks. Calling between modes similarly uses both stacks.

    Additionally, the registers have been stretched to 24 bits in eZ80 mode.
    The kernel would need to save these extra registers somewhere on a task
    switch, and the task context would have to become larger to accomodate
    them. This wouldn't be a problem for CP/M 3.0 because it doesn't ever
    switch tasks (AFAIK; I have *very* limited experience with 3.0).

    With care, it should be possible to treat an eZ80 as simply a very fast
    Z80. It looks to me like interrupts can be taken in Z80 mode, and if you
    drop the ISR in the 16K chunk of memory that can be moved around to the
    top of each Z80 bank, it should be able to handle an interrupt in Z80
    mode no matter which bank was active.

    Switching banks could be done by code living at a fixed 24-bit absolute
    address; it would have to be outside the 16K "common" bank because that
    bank moves around. So to switch banks, something like this would have to
    happen:

    - Bank switch code starts within the 16K "common" bank in Z80 mode.
    - Disable interrupts. This prevents an interrupt from being taken while
    the processor is running in eZ80 mode, so you don't have to deal with
    the processor trying to store stuff on the long stack.
    - Jump to the bank switch code, changing to eZ80 mode in the jump. This
    has to be a jump, because a call would want to use *both* stacks.
    - Update MBASE, the register that controls in which bank Z80 addresses
    are generated.
    - Move the 16K "common" memory to the top of the new bank.
    - Jump back to the bank switch code in "common" memory at its new address,
    switching modes back to Z80 mode. This has be a jump because a return
    would want to pull info from *both* stacks.
    - Interrupts can now be enabled because the processor is back in Z80
    mode.
    - The bank switch code could now return.

    It should be possible to do the rest of the system strictly in Z80 mode.

    Doing it this way, you can make the system appear to be a fast Z80 with
    MP/M friendly banked memory. Of course, none of the programs you run
    could take advantage of the new stuff because the MP/M kernel doesn't
    know how to save the extra registers and doesn't have anyplace to put
    them.

    Anyway, I *think* this would work. I've only started looking at the eZ80
    recently, and given my history of not finishing things it'll probably be
    quite some time before I do anything useful with the development kit I
    bought...
    --
    roger ivie
    rivie@ridgenet.net

  13. Re: eZ80 Single-Board Computer

    Hello Howard,

    schrieb:

    >I've finally put one on-line, for people to test-drive. It runs CP/M
    >3, and is running at a clock rate of 50MHz. The instructions on how
    >to access it are on www.ez80sbc.com.


    Today the 20.08.2007 I have a eZ80SBC and this run very fast.

    Many thanks

    Rolf


  14. Re: eZ80 Single-Board Computer

    On Aug 20, 6:52 am, Rolf Harrmann
    wrote:
    > Hello Howard,
    >
    > schrieb:
    >
    > >I've finally put one on-line, for people to test-drive. It runs CP/M
    > >3, and is running at a clock rate of 50MHz. The instructions on how
    > >to access it are onwww.ez80sbc.com.

    >
    > Today the 20.08.2007 I have a eZ80SBC and this run very fast.
    >
    > Many thanks
    >
    > Rolf


    Glad to hear it. Please keep me informed as to what you're doing with
    the eZ80SBC, and check the eZ80SBC Downloads page for updates.

    I think Roger has the right idea about the eZ80 and banked CP/M 3 as
    well as MP/M. The CP/M 3.1 (as I call it) that I generate for the
    eZ80SBC is built completely with Zilog's ZDS-II IDE. This allows me
    to set breakpoints anywhere within CP/M (CBIOS, BDOS, CCP) and have
    source-level debugging. But, since I'm using ZDS-II to assemble and
    link the entire CP/M image, there is no CPMGEN process as such. The
    BIOS, BDOS, and CCP are sewed together at link time by the Zilog
    linker. This means that all of the parameters in the SCB have to be
    configured properly before linking CP/M. After getting this to work,
    I verified the generated CP/M memory image with a known-good running
    CP/M and they are byte-for-byte the same.

    Someday I'd like to support MP/M by using the eZ80's on-chip RAM, but
    I think a better approach would be to run CP/M as a task under Zilog's
    real-time kernel. Then Zilog's TCP/IP stack could also be leveraged.

    For now though, I'm concentrating on developing firmware for the 8051
    USB controller to support more peripherals in addition to USB Parallel
    ports and USB Hubs. A few months ago, I came across some usenet
    postings that said that writing a USB Host Stack for an 8051-based
    microcontroller would be impossible. I'm glad I read those postings
    after I already had my driver stack working...

    -Howard


  15. Re: eZ80 Single-Board Computer

    Hello Howard,

    schrieb:

    >Glad to hear it. Please keep me informed as to what you're doing with
    >the eZ80SBC, and check the eZ80SBC Downloads page for updates.


    I am a CP/M Fan, CP/M-80 for Z80 and Z80180 and HD64180.
    I try for my HD64180 also a new BIOS u.s.w. to write with my assembler
    ASide on a Windows 2000 or Windows XY.

    I am a Z-System Fan, NZCOM and Z3PLUS.

    My private Homepage with Pictures of the ez80sbc.

    http://www.ez80sbc.de/index.html

    http://www.ez80sbc.de/html/pictures.html

    Rolf


  16. Re: eZ80 Single-Board Computer

    On Tue, 21 Aug 2007 13:46:40 +0200, Rolf Harrmann
    wrote:

    >Hello Howard,
    >
    >schrieb:
    >
    >>Glad to hear it. Please keep me informed as to what you're doing with
    >>the eZ80SBC, and check the eZ80SBC Downloads page for updates.

    >
    >I am a CP/M Fan, CP/M-80 for Z80 and Z80180 and HD64180.
    >I try for my HD64180 also a new BIOS u.s.w. to write with my assembler
    >ASide on a Windows 2000 or Windows XY.
    >
    >I am a Z-System Fan, NZCOM and Z3PLUS.
    >
    >My private Homepage with Pictures of the ez80sbc.
    >
    >http://www.ez80sbc.de/index.html
    >
    >http://www.ez80sbc.de/html/pictures.html
    >
    >Rolf


    You want to try somthing try a Z280. One of those with 8mb ram
    running at 12.5mhz is nice and zippy. What makes the 280 interesting
    is scatter/gather paged memory mapping, cache, 16bit external bus
    and I&D space mapping. The latter is not used by CP/M but does
    apply to the BIOS as it allows larger bios buffers.

    You can get faster Z80s and the ez80 is plenty fast but non of the
    other has the memory management or other featres of Z280. Shame
    that one got away.

    Allison



  17. Re: eZ80 Single-Board Computer

    Hello Allison,

    schrieb:

    >You want to try somthing try a Z280. One of those with 8mb ram
    >running at 12.5mhz is nice and zippy. What makes the 280 interesting
    >is scatter/gather paged memory mapping, cache, 16bit external bus
    >and I&D space mapping. The latter is not used by CP/M but does
    >apply to the BIOS as it allows larger bios buffers.
    >
    >You can get faster Z80s and the ez80 is plenty fast but non of the
    >other has the memory management or other featres of Z280. Shame
    >that one got away.


    My Friend Tilmann Reh of the Z-Fest in Germany has a CP/M Computer
    with a Z280.

    I stand more on the Z180 or HD64180 and to Board with
    ECB 160 x 100 mm.

    My private Homepage with Pictures of a CP/M 2.2 Computer
    with a HD64180.

    http://www.cpm-z80z180.de/computer.html

    Rolf


  18. Re: eZ80 Single-Board Computer

    \On Tue, 21 Aug 2007 20:22:43 +0200, Rolf Harrmann
    wrote:

    >Hello Allison,
    >
    >schrieb:
    >
    >>You want to try somthing try a Z280. One of those with 8mb ram
    >>running at 12.5mhz is nice and zippy. What makes the 280 interesting
    >>is scatter/gather paged memory mapping, cache, 16bit external bus
    >>and I&D space mapping. The latter is not used by CP/M but does
    >>apply to the BIOS as it allows larger bios buffers.
    >>
    >>You can get faster Z80s and the ez80 is plenty fast but non of the
    >>other has the memory management or other featres of Z280. Shame
    >>that one got away.

    >
    >My Friend Tilmann Reh of the Z-Fest in Germany has a CP/M Computer
    >with a Z280.


    Yes I know that one, it was published in TCJ.

    Mine is different. I got the chips from Tim Olmstead that are late
    design (fewer bugs) and faster.

    >I stand more on the Z180 or HD64180 and to Board with
    >ECB 160 x 100 mm.


    Nice too.

    >My private Homepage with Pictures of a CP/M 2.2 Computer
    >with a HD64180.


    Current lIst of machines..

    Z80 group:
    various S100 systems: Northstar, Compupro, CCS
    AmproLB+
    DEC Vt180 (have several).
    Visual 1050
    Kaypro 4/.84 with turborom and a KayproII
    Several Z80 hombrewed systems of various flavors
    speeds from 4 to 20mhz.

    HD64180 based:
    SB180 with SCSI board
    Z180 on S100 via modified SB880 board.

    Z180 based:
    Homebrew 10mhz, 1mb ram, IDE

    Z280 based:
    Z280 on ISA, uses a 16bit ISA bus and IO, FDC and Video.
    Z280 stand alone, 8mb ram, 1mb eprom, IDE serial IO (x4) 12.5mhz

    They all run CP/M or it's upgrade replacements. However one of the
    S100 crates and the z280 run a varient of CP/M with added task
    switching software for background work and other multitasking
    experiments.


    Allison


    >http://www.cpm-z80z180.de/computer.html
    >
    >Rolf



  19. Re: eZ80 Single-Board Computer

    >
    > HD64180 based:
    > SB180 with SCSI board
    > Z180 on S100 via modified SB880 board.
    >
    > Z180 based:
    > Homebrew 10mhz, 1mb ram, IDE
    >
    > Z280 based:
    > Z280 on ISA, uses a 16bit ISA bus and IO, FDC and Video.
    > Z280 stand alone, 8mb ram, 1mb eprom, IDE serial IO (x4) 12.5mhz
    >
    > They all run CP/M or it's upgrade replacements. However one of the
    > S100 crates and the z280 run a varient of CP/M with added task
    > switching software for background work and other multitasking
    > experiments.
    >
    > Allison
    >


    Would you be interested in an S-100 CPU card with an eZ80 on it? I'm
    planning on an S-100 base-board that the eZ80SBC can plug into. This
    would allow the eZ80SBC to run the S-100 crate and access S-100
    peripherals.

    What the eZ80 lacks in memory management, it makes up for in I/O
    flexibility. It has really nice programmable wait-state generators
    and bus timing to allow the 50MHz CPU to access slow I/O or memory.

    -Howard


  20. Re: eZ80 Single-Board Computer

    On Thu, 23 Aug 2007 00:37:07 -0700, "hharte@hartetec.com"
    wrote:

    >>
    >> HD64180 based:
    >> SB180 with SCSI board
    >> Z180 on S100 via modified SB880 board.
    >>
    >> Z180 based:
    >> Homebrew 10mhz, 1mb ram, IDE
    >>
    >> Z280 based:
    >> Z280 on ISA, uses a 16bit ISA bus and IO, FDC and Video.
    >> Z280 stand alone, 8mb ram, 1mb eprom, IDE serial IO (x4) 12.5mhz
    >>
    >> They all run CP/M or it's upgrade replacements. However one of the
    >> S100 crates and the z280 run a varient of CP/M with added task
    >> switching software for background work and other multitasking
    >> experiments.
    >>
    >> Allison
    >>

    >
    >Would you be interested in an S-100 CPU card with an eZ80 on it? I'm
    >planning on an S-100 base-board that the eZ80SBC can plug into. This
    >would allow the eZ80SBC to run the S-100 crate and access S-100
    >peripherals.


    Not really, I have many S100 Z80 boards like:

    NS* (cpu with Z80)
    one modded for a 10mhz z84c50 (see below)
    two are stock
    CCS (CPU with Z80)
    Compupro (CPUwith Z80)
    SBC880 a second one, (CPU with z80)

    2 SBC type z80 s100 systems on a board (z80, 128k, FDC, 2serial,
    Parallel printer)
    2 SBC type Z80 S100 systems on a board as slaves (Z80, 128k, 2 serial)

    >What the eZ80 lacks in memory management, it makes up for in I/O
    >flexibility.


    That is a serious flaw as memory management in a z80 (64k) environment
    means you need efficient ways to change memory context becuase you
    will likely have to do it often.

    > It has really nice programmable wait-state generators
    >and bus timing to allow the 50MHz CPU to access slow I/O or memory.


    The Z80 (84c50 flavor), Z180 and Z280 all had programable wait state
    control logic. the Z180S00 is available in fast (33mhz) or at least
    it was.

    You missed out on the 84C50, pin compatable CMOS Z80 available
    to 10mhz (I have a few) internal wait state controls and 1k of
    internal ram. the nice part is you can drop it in a standard Z80
    socket.

    The internal wait state controller allow adding waits on Instruction
    fetch, regular memory IO and IO cycles independently.

    The 1k memory is relocateable and can be used anywhere in the
    memory map and has faster access than external memory. It makes
    a 64k bank mapped system nice as it gives the needed small amount
    of common memory.

    I've been actively using CP/M since first system back before '77ish
    and when I moved to V.2.2 in early '80 I started exploring
    multiprocessors and multitasking to expand and enhance. Along
    the way I built a few systems and aquired a few some of which I had
    more than one of and so the second was always "enhanced" in some
    way to explore hardware and software beyond the usual stuff.


    Allison
    >
    >-Howard



+ Reply to Thread