Do you think that it is feasable and/or possible to port CP/M to the TI-8x series?
Yes
 50%  [ 4 ]
No
 50%  [ 4 ]
Total Votes : 8

I see a lot of new OSs being developed for the TI-8x series these days. Searching back into my memory I remember an OS for the 8080/z80 called CP/M. What was unique about this system was that it could be ported to any system, in the days where OSs were written for one platform, and that platform alone. So I thought: In staid of developing a completely new OS, why not just port CP/M? Besides display restrictions, it has no serious problems with running it on the TI.
Welcome to Cemetech, seana11! You should Introduce Yourself in the relevant topic. I should warn you that of all the OS projects that have been undertaken over the years, including the ones currently active, that I've only seen substantial progress and evidence of potential completion from one modern project (AHelper's GlassOS project) and one old, discontinued project (Michael Vincent's CEPTIC). I see no reason whatsoever not to port CP/M; is the source code available?
I think CP/M is open-source now.
The source is available, it's just hard to find, one site has it, but it's 2.2 (They went up to v3)

***EDIT***

I found this useful web page: http://retrotechnology.com/dri/cpm_features.html

From here I found this: http://www.retroarchive.org/cpm/os/COMPUPRO.ZIP

"This is a huge archive (about 6MB) that contains a goldmine of goodies.
Included are Concurrent CP/M-86, CDOS-816, CP/M-68k, MP/M-816 and more!
There are PAL sources as well as firmware sources for both CompuPro and
Morrow systems.
"

There's even more at this page: http://www.retroarchive.org/cpm/os/os.htm (Descriptions are across from the file)

If anyone wants to sift through all this, please post your results here. Also, I don't know C and don't plan to learn, (Java is the way to go), and some of this seems to be written in C. If anyone knows C, and would like to lose several hours of their time, can you look at that?
There is one major technical problem; CP/M expects programs to run from $0100, which is ROM on the TI-83+ series calculators. The file system is also very disc-orientated, which would be rather clumsy on the flash memory of the calculator. Furthermore, text-based applications expect a display 80 columns wide.

CP/M is a decent enough OS but for quite a different sort of computer to our calculators!

I used the CP/M 3 source code from this site when porting it to my own hardware.
Just include a jump, duh. Secondly, flash rom can be masked as a disc in the BIOS and BDOS. Third, once the OS port is done it will be comparatively easy to convert programs than to rewrite them.
I thought that one of the main reasons to use CP/M would be the ability to run existing software, though if this is not a concern then the program loading address can indeed be changed from $0100.
The main reason that I want to do this is because the OS is already written for me.

***EDIT***

I found several good copies of CP/M in the CPM2-2 dir. There are about 10 different configs, and include docs on how to port (in file).

DRIPAK.zip also has some good stuff.
Aye, the OS is already written for you, but it's not an especially good fit for the calculator.

If you're going to use CP/M you should use CP/M 3 as it has a number of significant improvements over 2: support for banked memory, a real-time clock for file date and time stamping, the ability to move the cursor when entering text and the ability to select a different block size for discs (CP/M 2 is limited to 128 byte blocks; CP/M 3 still uses 128 byte records internally but can perform the deblocking for you, something I found very useful when running CP/M 3 on an SD card as SD cards have a native block size of 512 bytes).

If you missed the link I posted above, the developers [sic] build directory for CP/M 3 has pretty much all you need to get CP/M 3 up and running. It's quite an involved process, so give me a shout if there's anything I can lend a hand with - though I'm still not convinced CP/M would work well on the calculator.
seana11 wrote:
Just include a jump, duh. Secondly, flash rom can be masked as a disc in the BIOS and BDOS. Third, once the OS port is done it will be comparatively easy to convert programs than to rewrite them.
It's not that easy. Because programs expect to be run at $0100, all their internal addresses are organized relative to that starting address, just as TI-OS assembly programs are organized assuming that $9D95 is the beginning of their memory space. As you say, programs would have to be recompiled. You really should learn C, though, it covers a whole different set of possible applications than Java, and as someone who knows a lot of languages including Java and has taught Java and C, I abhor Java. Wink
Die you java hater! C is going the way of the Dinosaurs. To Quote:

Quote:
Fully cross platform APIs including support for Graphics, Windowing and Multimedia. All future APIs will be cross platform. Java has even more APIs than Windows. Look at the current proposals

Mature.

LOTS AND LOTS of libraries available. Many are free and/or open source.

High density of OO design patterns put to practise compared to C#/.NET. This makes developing complex applications much easier (at the cost of making 'my first text editor' type projects slightly more difficult).

Well designed APIs following good OO practise.

The Java Community Process allows people with an investment in Java have a say. New Java features can be proposed, discussed and voted for in a open democratic forum. Microsoft does NOT have anything like this which is unfortunate for anyone investing in .NET.

Apache.

Currently supported by multiple commercial vendors (not one).

Although not recognised by any international standards committee, Java is an open standard governed by Sun and the JCP members (or which there are MANY). C# is an ECMA standard but without support from Microsoft, very few third parties have been willing to implement it. Sun also tends to be less secretive than Microsoft about their products. The C#/CLI ECMA submission is also just a subset of the .NET framework. It has yet to be seen whether any future APIs for .NET will ever be submitted for standardisation (it doesn't look good).

Smallest unit of distribution is a class (.class file). This helps in application development, debugging and deployment. Having a one to one mapping between types and the file system is simpler because file systems are well understood.

Good IDEs are available (Netbeans, Eclipse, Together). Many are free and support more features than VS.NET.

Swing is well designed and utilises the MVC design pattern extensively. Windows Forms pales in comparison.

Swing is more powerful than SWF(System.Windows.Forms). For example, border styles can be plugged into any component using the strategy design pattern. In Windows Forms, components are responsible for supplying and drawing their own borders. Some support borders, some don't, and some only supply a few borders. This is because SWF is a thin wrapper around 7 year old windows controls and doesn't seem to have any improvements over WFC in J++. Infact it's lacking some features that were present in WFC like DHTML support.

Java developers are more likely to be University graduates with a strong understanding of OOP.

Unlike Microsoft, Sun understands and embraces OOP. Microsoft prefers speed over good design (at least some of their employees seem to anyway).


Edit: There's no pointers, so no messing around with that. Java does GCing for you so you don't have to worry about memory leaks (except for infinite loops and that stuff). It is OO from the bottom up, unlike C++ which is C with Object capability. There's also the AMAZING "Head First" series written on it.

Edit by Tanner: Don't double post. Please.
Java isn't completely OO, it's a bit of both, it's just more OO than C++ Wink any language that has support for primitives is by default not following the 'everything is always an object' rule to become a pure OO language. True pure-OO languages are Ruby, Python, and the like.

I personally dislike C++ as well, I think OOP was poorly implemented in it, but I little better to say about Java. C isn't going the way of the dinosaurs, most video games you play are written in C or most likely C++ -- minecraft was written in Java, sure, but that game is incredibly simple compared to others.

Just my 2 cents.
I don't think that it's possible to have an easy to use language with readable syntax without primitives. I know C is used for games, but look elsewhere. Java was not designed with game designing in mind. It was designed for server, database, and other heavy lifting programs. If you look at the government now, they're slowly phasing out C in favor of Java. My brother works for Sybase (Now under a German firm called SAP), and he says that all he uses is Java. In large apps, C is definitely on the losing side.
Well, Java may be designed for many purposes, but who can deny that C is the universal non-assembly language? Smile It can be used even more limitlessly than Java, as it has less overhead, can be molded to do even dirtier low-level jobs, and more.

Though, this is a bit (or rather completely) untrue:

Quote:
I don't think that it's possible to have an easy to use language with readable syntax without primitives.


Ruby and Python have no built in support for primitives, and their syntax is generally considered highly superior to that of Java's very verbose and curly-braced syntax.

And, most business people are now using Python and Ruby instead of Java due to quicker debugging and even more features.
I know it's completely off-topic but I do find it slightly strange that you consider Java well-designed, especially in comparison to C#. C# has learned a lot from Java's mistakes and is a much nicer language to use all around (int/Integer mess, generics through type erasure, lack of operator overloading, anonymous types instead of delegates etc).

In any case, if you're going to deal with CP/M I doubt you'd be using much C or Java - you'll be using assembly, PL/M and maybe some Pascal and BASIC. Smile
Quote:
Though, this is a bit (or rather completely) untrue:

Quote:
I don't think that it's possible to have an easy to use language with readable syntax without primitives.


The verbosity of Java makes it easy to see where methods and blocks are. I just don't see where objects have any advantage over primitives in areas such as arithmetic, which require excessive method calls with confusing parentheses.
seana11 wrote:
The verbosity of Java makes it easy to see where methods and blocks are.


.. and long to type and in many cases, one line might have to be extended to 4 or more lines just to fit everything in. And, if you're after arithmetic speed, you're going back to C and C++ again for speed Smile
No one codes their Java in a text editor on the command line anymore. It's too hard to sort everything out. People use IDEs and that inserts most of the code for you. (I use Eclipse)
seana11 wrote:
No one codes their Java in a text editor on the command line anymore. It's too hard to sort everything out. People use IDEs and that inserts most of the code for you. (I use Eclipse)
That's not true at all, especially as an absolute. I'll give you that a majority of people probably use an IDE, but plenty of people still write in text editors with command-line testing, just as they do for C++, PHP, etc etc etc.
FWIW, I still do that with any language I program in. The exception being C# because Visual C# does a lot of stuff for me. But, for Java, C, C++, ASM, etc; I still do it in a text editor. Not that I have really written much in them, however. I learn the language better if I do it in a text editor.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 3
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement