Jump to content
IGNORED

FujiNet8000? (Z80-CP/M module)


bcombee

Recommended Posts

While brainstorming other features for the FujiNet hardware, I stumbled upon https://github.com/MockbaTheBorg/RunCPM/, a MIT-licensed CP/M 2.2 emulator that already runs on the ESP32.  Given that the FujiNet already does drive emulation, buffers printer output, and acts like a serial port, CP/M mode is the last bit of functionality needed to do everything that the ATR8000 did.

 

I don't know enough yet about the memory usage of the FujiNet core -- RunCPM needs 64K for the CP/M system memory, plus additional RAM for running the Z80 emulation.  The ESP32 port was done using the Arduino support, so it would need to be ported to PlatformIO as well as changed to use SD card code that FujiNet already has internally.

 

Does this seem viable?  Interesting?

  • Like 1
Link to comment
Share on other sites

Seems interesting to me. I’ve wondered why something like the S-Drive Max couldn’t emulate an Indus GT with the SRAM Charger and give us CP/M. Or if if it could be done with a raspberry pi. But I know nothing of such things. Would be a really cool feature of the already really cool Fujinet though.


Sent from my iPhone using Tapatalk

  • Like 1
Link to comment
Share on other sites

On 11/8/2020 at 3:48 PM, bcombee said:

While brainstorming other features for the FujiNet hardware, I stumbled upon https://github.com/MockbaTheBorg/RunCPM/, a MIT-licensed CP/M 2.2 emulator that already runs on the ESP32.  Given that the FujiNet already does drive emulation, buffers printer output, and acts like a serial port, CP/M mode is the last bit of functionality needed to do everything that the ATR8000 did.

 

I don't know enough yet about the memory usage of the FujiNet core -- RunCPM needs 64K for the CP/M system memory, plus additional RAM for running the Z80 emulation.  The ESP32 port was done using the Arduino support, so it would need to be ported to PlatformIO as well as changed to use SD card code that FujiNet already has internally.

 

Does this seem viable?  Interesting?

Yes. This is doable. Go for it :)

-Thom

Link to comment
Share on other sites

  • 2 months later...

I don't know if I should be happy or excited about the CP/M prospect on Fujinet or not! I am still waiting on 3 upgrade boards from tf_hh for my 2 Indus GT's and CA-2001 drives for CP/M ability! They've been delayed for a month too, due to the COVID situation! This project may more or less obsolete my obsolete drives upgraded to run an obsolete system on my obsolete Atari!:o:P

Edited by Gunstar
Link to comment
Share on other sites

Each drive folder on the system looks like an 8 megabyte hard disk.

 

We do need to improve I/O speed (would love some help there, the BIOS and BDOS are implemented in C on the ESP32 in the lib/runcpm folder, and thus can be improved upon, because currently every single I/O operation is ruthlessly atomic, that is, open, do the thing, close. for every single byte. This can be improved upon, and I could really use the help, as I have had to shift back onto N: work)

 

-Thom

 

  • Like 1
Link to comment
Share on other sites

16 minutes ago, Gunstar said:

I don't know if I should be happy or excited about the CP/M prospect on Fujinet or not! I am still waiting on 3 upgrade boards from tf_hh for my 2 Indus GT's and CA-2001 drives for CP/M ability! They've been delayed for a month too, due to the COVID situation! This project may more or less obsolete my obsolete drives upgraded to run an obsolete system on my obsolete Atari!:o:P

It is much easier and quicker to get into CP/M on the Fujinet than the Indus.  I have the SRAM Charger too and though it works great, the emulation on the Fujinet is faster on executing code as well.  Though I haven't been able to break the emulation, its still emulation - the Indus has a Z80 inside it (I believe) and is not emulation per se.  Bottom line though, since the Fujinet version came out, I haven't even turned on the Indus version.

 

 

  • Like 1
Link to comment
Share on other sites

I know how I'm going to die now at least...with Fujinet and other new devices over recent years that  have obsoleted my drives, printers, modems, etc, on an obsolete system as well, I'm going to drown in obsolescence!|:) I still use them all though, right down to my 410 and 1010, so I guess I'm the living epitome of obsolescence too! 

Edited by Gunstar
Link to comment
Share on other sites

I guess I'll have to look into replacing the Z80 CPU's in my drives with a pin-compatible upgrade that runs a lot faster to speed up CP/M with them to be on a par or beat Fujinet CP/M emulation!:evil:

Link to comment
Share on other sites

5 minutes ago, Gunstar said:

I guess I'll have to look into replacing the Z80 CPU's in my drives with a pin-compatible upgrade that runs a lot faster to speed up CP/M with them to be on a par or beat Fujinet CP/M emulation!:evil:

You’ll need a faster crystal too, plus faster versions of whatever support logic is in there. So good luck. :) 

  • Like 1
Link to comment
Share on other sites

19 minutes ago, DrVenkman said:

You’ll need a faster crystal too, plus faster versions of whatever support logic is in there. So good luck. :) 

Yeah, it's just a pie-in-the-sky idea I said mostly jokingly, I have too many other Atari and Atari related projects on my to-do list already, so I'd probably never get around to it. But yes, I'm aware there's more to it, it was just easier to reference only the CPU.;)

 

CP/M is little more than a curiosity to me anyway, I probably would never use it much, the Atari already has application/productivity software on it as good or better than most of the old CP/M stuff, from what I understand. CP/M just has the 80-column thing going for it, but I'd rather use The Last Word over the old CP/M Wordstar(I'm familiar with the old MS-DOS version), for example, and it has a very acceptable 80-column software anyway, and eventually I'll have a VBXE, so...I just like to max out all my old computer tech because I can, I'm working on the old hardware about 75% of the time and actually using it about 25% as far as this hobby goes. I rarely use most of the upgrades I do to their full extent, I have more fun installing them and taking pride in my accomplishments and show and tell to friends and colleges who have the same interests.

Edited by Gunstar
Link to comment
Share on other sites

2 hours ago, Gunstar said:

CP/M is little more than a curiosity to me anyway, I probably would never use it much, the Atari already has application/productivity software on it as good or better than most of the old CP/M stuff, from what I understand. CP/M just has the 80-column thing going for it, but I'd rather use The Last Word over the old CP/M Wordstar(I'm familiar with the old MS-DOS version)

Agreed on the word processor piece, nothing on CP/M is going to touch TLW.  The A8 lacks a good 80 column spreadsheet though.  There is "Budget" on S.A.M. but it's clunky, I'm not aware of any others.

Link to comment
Share on other sites

4 minutes ago, 8bitguy1 said:

Agreed on the word processor piece, nothing on CP/M is going to touch TLW.  The A8 lacks a good 80 column spreadsheet though.  There is "Budget" on S.A.M. but it's clunky, I'm not aware of any others.

I created, edited, and printed a 31 page document in WordStar 4, and wrote, edited, and printed drafts of large books in WordStar, under CP/M (and later MS-DOS), this is an area where the current Atari word processors fall short (They tend to want to do everything in memory).

 

-Thom

  • Like 2
Link to comment
Share on other sites

2 hours ago, tschak909 said:

I created, edited, and printed a 31 page document in WordStar 4, and wrote, edited, and printed drafts of large books in WordStar, under CP/M (and later MS-DOS), this is an area where the current Atari word processors fall short (They tend to want to do everything in memory).

 

-Thom

Have you looked into The Last word? I'm pretty sure it has such features for large documents not all having to be in memory, though I haven't written anything long enough yet to use such features myself, but I'm sure I read about such features while browsing the manual. I wouldn't make that claim about Atari word processors if you haven't and until you do look into TLW. But also, TLW can use up to 320K of Atari memory (can CP/M WordStar take advantage of more than 64K?) , so it's not like other Atari word processors, even those that took advantage of 128K 130XE's. TLF is very sophisticated way beyond anything from any 8-bit machines, including CP/M's WordStar I've been told. I've only scratched the surface of it's possibilities myself. I've only written reviews for Excel magazine with 1000 words or less, so far on TLW.

Edited by Gunstar
Link to comment
Share on other sites

2 hours ago, 8bitguy1 said:

Agreed on the word processor piece, nothing on CP/M is going to touch TLW.  The A8 lacks a good 80 column spreadsheet though.  There is "Budget" on S.A.M. but it's clunky, I'm not aware of any others.

I really love using Synapse's Syn-series, at least SynCalc and Synfile, but yes, I do wish they had 80 column support, even if it was in software 80 column. Unfortunately at this point they won't work with 80-column software drivers, but I think only because they have areas at the top and bottom of the screen that aren't in high-res so it screws up using them like you can with languages and other programs that use the standard E: device. It would be great if someone could hack them to get those non-high-res screen menu areas so they would work with E: device. But I do know that there is more than just the S.A.M budget program for 80-column spreadsheets, There were productivity software including spreadsheets and word processors and filers that were available for OS's like Omniview. I've no idea how good they are compared to the great Synapse series though.

 

But speaking of 80 columns and CP/M emulated through Fujinet, isn't that going to have to be emulated software 80-columns since it's emulated CP/M? Whereas with the Indus GT's CP/M you get true 80-column support from the real Z80 processor, from what I'm told. Not that I mind software 80-column, I use it all the time with TLW processor and with SpartaDOS X and it looks good to me on my systems with upgraded video. But of course hardware 80-column is better.

Edited by Gunstar
Link to comment
Share on other sites

I would think that developers who used their cp/m systems to make software for the Atari and any number of other platforms may enjoy this as they return to the Atari/Apple/TI world in their retirement and twilight years... who cares if there are competing products? We may just want to do what we know again and ease our way into all the new stuff later.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Gunstar said:

I really love using Synapse's Syn-series, at least SynCalc and Synfile, but yes, I do wish they had 80 column support, even if it was in software 80 column. Unfortunately at this point they won't work with 80-column software drivers, but I think only because they have areas at the top and bottom of the screen that aren't in high-res so it screws up using them like you can with languages and other programs that use the standard E: device. It would be great if someone could hack them to get those non-high-res screen menu areas so they would work with E: device. But I do know that there is more than just the S.A.M budget program for 80-column spreadsheets, There were productivity software including spreadsheets and word processors and filers that were available for OS's like Omniview. I've no idea how good they are compared to the great Synapse series though.

 

But speaking of 80 columns and CP/M emulated through Fujinet, isn't that going to have to be emulated software 80-columns since it's emulated CP/M? Whereas with the Indus GT's CP/M you get true 80-column support from the real Z80 processor, from what I'm told. Not that I mind software 80-column, I use it all the time with TLW processor and with SpartaDOS X and it looks good to me on my systems with upgraded video. But of course hardware 80-column is better.

How can a device over SIO that doesn't have its own video output have "hardware 80 columns?" I think you're misunderstanding that the Indus is doing precisely the same thing the FujiNet is doing, the FujiNet is just doing it with an emulated Z80 core (ironically much faster)

 

-Thom

  • Like 3
Link to comment
Share on other sites

Good job folks. I'm so out of it, just a couple days ago I heard about cp/m for the Indus!  Let alone, to find out it is available for fujinet.

 

I guess I now have too many cp/m choices.  So I gather since trub term vbxe is working with indus cp/m, it'd be desirable to have some kind of vbxe based term to work with fujinet - because that'd make the text look a bit crisper, and this is still an "opportunity"?

 

Or has someone already solved that as well?

Link to comment
Share on other sites

Correct the indus is using the Atari in the exact same way, trub term uses a higher sio divisor to speak to the indus over the stock software... in both cases we are seeing the Atari in software 80 column mode unless we use the XEP 80 or a vbxe/bit3 then you are seeing the output handed off to hardware... but in all cases the information from the cp/m machine is passed through the sio port... you could design an on board display to the bus on the indus but I haven't seen that. You can hook a stand alone terminal to an ATR8000, but why would you since the Atari does a fine job of that as well...

Edited by _The Doctor__
  • Like 1
Link to comment
Share on other sites

  • 11 months later...
On 1/5/2022 at 9:24 PM, Kyle22 said:

I have been using DT80 to access FN CP/M, and I can run MKZCM, but the NZCOM it creates never runs. HOW do we get this set up to run ZCPR3?

 

You have to modify the siocpm.cpp in lib/devices/sio/ to load the ZCPR3 into memory.

void sioCPM::sio_handle_cpm()
{
    _puts(CCPHEAD);
    _PatchCPM();
    Status = 0;
#ifdef CCP_INTERNAL
    _ccp();
#else
    if (!_sys_exists((uint8 *)CCPname))
    {
        _puts("Unable to load CP/M CCP.\r\nCPU halted.\r\n");
        break;
    }
    _RamLoad((uint8 *)CCPname, CCPaddr);    // Loads the CCP binary file into memory
    Z80reset();                             // Resets the Z80 CPU
    SET_LOW_REGISTER(BC, _RamRead(0x0004)); // Sets C to the current drive/user
    PC = CCPaddr;                           // Sets CP/M application jump point
    Z80run();                               // Starts simulation
#endif
    if (Status == 1) // This is set by a call to BIOS 0 - ends CP/M
    {
        cpmActive = false;
        free(RAM);
    }
}

-Thom

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...