tschak909 Posted January 13, 2021 Share Posted January 13, 2021 This is an insanely portable CP/M emulation. It already runs on ESP32, but it can potentially be folded into #FujiNet and use its device/host slot machinery. Anyone want to take a whack at this? https://github.com/MockbaTheBorg/RunCPM 2 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 13, 2021 Author Share Posted January 13, 2021 Calling @jeffpiep @jamm @mozzwald @TheMontezuma and anyone else who would like to try. Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 14, 2021 Author Share Posted January 14, 2021 This actually looks pretty straightforward, am taking a whack at it... The original developer did a very good job abstracting I/O. Also from what I see here, the CPU emulation runs at the full speed of the host processor, which, given the ESP32...is...a lot faster than a 4MHz Z80. -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 14, 2021 Author Share Posted January 14, 2021 Initially posted this to @coredev, but I think it's publicly relevant: --- @coredev looks like cp/m will be pretty easy to at least do initial bring-up. all I/O functions are abstracted, and an Arduino abstraction was done. Plan is: 1. get it into code base, get it built correctly. 2. write enough of abstractions to get a CCP prompt up and accept input. 3. make enough of atari sio device so that DT80 cartridge can put the FujiNet into CP/M mode and go. 4. Get filesystem working at least on SD card, if not also over TNFS (this is at least ponderable because @Oscar Fowler (jamm) did the time and effort to make consistent filesystem objects. Filesystem I/O is extremely easy, because ABSOLUTELY NO DISK IMAGES ARE INVOLVED. THANK FUCK CHRIST. Everything is done in folders, one folder for each drive, and up to 15 folders in each drive for one of the user areas. Brain dead simple. And from the Atari side, also simple, because all we have to do is send a SIO command to device 0x5A and we can immediately send the main loop into its own thing (like we do for SIO2BT and MidiMaze), where we set the serial baud rate to 9600 baud, and go. (We can also add a command into the modem code that jumps into it as well, ATCPM) The printer and modem code can be integrated as well, and this can serve as a sign-post for what would need to be done for other platforms. I rather like the thought of being able to run WordStar on my Atari again, it was my primary writing implement for a long time. --- 1 Quote Link to comment Share on other sites More sharing options...
Atari8guy Posted January 14, 2021 Share Posted January 14, 2021 I can't code to save my life, but you if need any testing done... Also this project is of significant interest to me, I hope you get it to work. Quote Link to comment Share on other sites More sharing options...
Alfred Posted January 14, 2021 Share Posted January 14, 2021 Don't you need an 80 column display for CP/M ? Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 14, 2021 Author Share Posted January 14, 2021 Yes. this is part of why I am doing the initialization I mention above, it's what the DT80 cartridge does to initiate ATRMON on the ATR8000. I am hoping I can put together a functional 80 column terminal so you don't need a DT80 cart, but this will at least allow me to get it brought up. Building an 80 column display is at least doable enough that the typical trick of putting two characters into a MODE F byte will work here. Going the flickerterm route may be interesting as well, as I understand it, it's using a 5x8 font that is being written to across two mode F pages with even/odd columns slightly overlapping, and using the VBI to flip between the pages... It definitely results in larger text, if a bit flickery. -Thom 1 Quote Link to comment Share on other sites More sharing options...
+DrVenkman Posted January 14, 2021 Share Posted January 14, 2021 *cough* VBXE ...*cough* Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 14, 2021 Author Share Posted January 14, 2021 Since I don't have a VBXE, that will have to be done by someone who...has...a VBXE Good thing, any terminal I put together will have source code. -Thom Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted January 14, 2021 Share Posted January 14, 2021 (edited) any terminal will do, you could even do sliding window 40 column to get by until a proper display is made... I had used a handful of terminals with the atr8000 back in the day. Also with the indus, there's a terminal in recent times rolled out for the indus that might adapt as well.. also consider ice T XE, a possibly custom terminal, could even push it to the XEP80 like bobterm does as a start... rudimentary graphics terminals would be possible, but none of that matters atm until it's alive and breathing on the fujinet and we know what it's like and what you have to deal with... depending on the speed of the actual communication over the sio as well as the methods employed- a vidtex like display might be possible with bursts jamming the data to it. You've got two already established systems between the ATR8000 and the indus but no one says you have to use their protocols, the command to start the connection might be the same but your' own custom display is possible. A TermCap basic terminal display is one thing, but cp/m/s100/et al. machines also had vidtex, proprietary video cards, cga, and vga as time progressed. You can do whatever you like, however, in order use off the shelf software and stuff in the future might require a walk down some of the relevant repositories thus shedding some light on it. Thankfully such changes in cp/m systems aren't a big deal. It will be nice to have some of the old favorites at our fingertips again without causing the lights to dim in the house Last time I moved my old CP/M s100 and drives I need two people to do it, would have been better to have a third ? wow! Edited January 14, 2021 by _The Doctor__ 1 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 14, 2021 Author Share Posted January 14, 2021 42 minutes ago, _The Doctor__ said: any terminal will do, you could even do sliding window 40 column to get by until a proper display is made... I had used a handful of terminals with the atr8000 back in the day. Also with the indus, there's a terminal in recent times rolled out for the indus that might adapt as well.. also consider ice T XE, a possibly custom terminal, could even push it to the XEP80 like bobterm does as a start... rudimentary graphics terminals would be possible, but none of that matters atm until it's alive and breathing on the fujinet and we know what it's like and what you have to deal with... depending on the speed of the actual communication over the sio as well as the methods employed- a vidtex like display might be possible with bursts jamming the data to it. You've got two already established systems between the ATR8000 and the indus but no one says you have to use their protocols, the command to start the connection might be the same but your' own custom display is possible. A TermCap basic terminal display is one thing, but cp/m/s100/et al. machines also had vidtex, proprietary video cards, cga, and vga as time progressed. You can do whatever you like, however, in order use off the shelf software and stuff in the future might require a walk down some of the relevant repositories thus shedding some light on it. Thankfully such changes in cp/m systems aren't a big deal. It will be nice to have some of the old favorites at our fingertips again without causing the lights to dim in the house Last time I moved my old CP/M s100 and drives I need two people to do it, would have been better to have a third ? wow! Yeah, this isn't hard at all, I'm just using DT-80 so I don't have to write one while I bring this damned thing up. -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 15, 2021 Author Share Posted January 15, 2021 When a picture says a thousand words. Stay tuned. 2 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 15, 2021 Author Share Posted January 15, 2021 well, crap Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 15, 2021 Author Share Posted January 15, 2021 Have punted to the ESP-IDF forum to see how this can be diagnosed, I've already tried a few obvious things, and didn't make it budge. Stuff like this is like a hockey puck in the nuts. https://www.esp32.com/viewtopic.php?f=13&t=19025 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 16, 2021 Author Share Posted January 16, 2021 With help from the ESP32 forum, figured out the issue (huge static variable being declared multiple times due to unusual way header was being included), was able to work through the problem. #Atari8bit #FujiNet RunCPM functionality coming along, terminal functions working nominally. Now just need to implement disk abstraction functions. Stay tuned. 6 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 17, 2021 Author Share Posted January 17, 2021 I have been working on folding in #RunCPM in order to add support for running #CPM software on a #FujiNet equipped #Atari8bit, ultimate goal is to integrate printer, modem, and networking functions. 5 1 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 18, 2021 Author Share Posted January 18, 2021 #Atari8bit #FujiNet It is also possible to jump into CP/M via the MODEM emulation. So you can use your favorite terminal program, shown here with ICE-T, which provides VT100 emulation: -Thom 3 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 18, 2021 Author Share Posted January 18, 2021 Printer emulation is coming shortly. I have to fix one naggling bug (the port isn't closing), but anything that goes to the standard list device (LST:) will wind up going to the currently selected #FujiNet printer. -Thom Quote Link to comment Share on other sites More sharing options...
Kyle22 Posted January 18, 2021 Share Posted January 18, 2021 Nice! Please see my topic about GSX. This may be possible over divisor zero SIO. This is how GEM works on the ST. Please check it out. Thanks. Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 18, 2021 Author Share Posted January 18, 2021 #Atari8bit Shown here, WordStar 4 in #FujiNet #RunCPM support, printing a 31 page document to the virtual Epson FX-80 (PDF), picking it up in the web admin, it just works. 5 Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted January 18, 2021 Share Posted January 18, 2021 W00t!! That's the kind of thing we love to see! 2 Quote Link to comment Share on other sites More sharing options...
Kyle22 Posted January 19, 2021 Share Posted January 19, 2021 @tschak909This is beautiful. I love WordStar. My question is (and I may have asked b4 [I am VERY forgetful]): Can I print from WordStar (or an Atari program) to a normal Windows network printer DIRECTLY w/o using .pdf? Example hp OfficeJet Pro 7740 I hope this can be done. Just set a default printer on your network and change if necessary. That would be great. Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 19, 2021 Author Share Posted January 19, 2021 2 minutes ago, Kyle22 said: @tschak909This is beautiful. I love WordStar. My question is (and I may have asked b4 [I am VERY forgetful]): Can I print from WordStar (or an Atari program) to a normal Windows network printer DIRECTLY w/o using .pdf? Example hp OfficeJet Pro 7740 I hope this can be done. Just set a default printer on your network and change if necessary. That would be great. You have asked before, and because direct networking support is an absolute nightmare, it's not going to happen from my side. -Thom Quote Link to comment Share on other sites More sharing options...
tschak909 Posted January 19, 2021 Author Share Posted January 19, 2021 #Atari8bit Documentation for the upcoming #CPM support for #FujiNet is here: https://github.com/FujiNetWIFI/fujinet-platformio/wiki/CP-M-Support 4 Quote Link to comment Share on other sites More sharing options...
Atari8guy Posted January 20, 2021 Share Posted January 20, 2021 Here is me playing Sargon 2.1 on CP/M. I also managed to get a version of EMACS running as well as Supercalc. Very cool. Sent from my iPhone using Tapatalk 6 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.