Consider, if you will, the Texas Instruments
TI-84 Plus Silver Edition calculator.
It has:
15 MHz Z80
128K RAM
1.5 MB Flash ROM
96x64 pixel screen
Serial port (TI has a serial keyboard that uses it)
USB Port
Real-time clock
Full support from TI for assembly language programming.
Price in the $75 to $100 range, and the price is dropping.
Now imagine porting CP/M to this system, wiping out the
existing code that makes it a calculator and replacing
it with CP/M. (You could even store the TI code and the
CP/M code, and give each system the ability to load and
run the other system)
I can think of several ways of doing the peripherals:
Input options:
--------------
Serial terminal (could be a PC)
USB terminal (I think this can only be a PC)
TI serial keyboard
Standard USB keyboard
Calculator keyboard
Output options:
---------------
Serial terminal (could be a PC)
USB terminal (I think this can only be a PC)
Calculator screen
Storage options:
----------------
Use the 1.5 MB Flash ROM as a disk drive or drives.
Use the drives on a PC (USB or serial connection)
Use an external USB drive
Are there any flaws in this idea that anyone can see?
References:
http://education.ti.com/us/product/tech/83/features/asm.html
http://education.ti.com/us/product/tech/83/features/asmbas.html
http://education.ti.com/us/product/tech/83/features/asmdis.html
http://education.ti.com/us/product/tech/83/features/asmlnk.html
http://www.ticalc.org/basics/calculators/ti-84plus-se.html
--
Guy Macon <http://www.guymacon.com>
(EE and Commodore C128 CP/M user)
Guy,
I've read that the usable RAM area is only 26 KB, if the rest of the 128
KB is used for the graphics screen (this could be only 1 KB I guess) and
for a mirrored ROM area (because FLASH ROMs are really slow), this is
not enough for a usable CP/M system.
To be sure that this system has enough free, usable RAM, there must be a
really good technical documentation about the system.
But I fear, Texas Instruments are not willing to publish in-depth
information about the system.
So without a detailed system documentation, there is no way to adapt a
CP/M system because you have to write the BIOS for any CP/M first.
Regards
Peter
>I've read that the usable RAM area is only 26 KB, if the
>rest of the 128 KB is used for the graphics screen (this
>could be only 1 KB I guess)
The TI85 and TI86 had memory mapped graphics but the TI82, TI83
and TI84 use a Toshiba T6A04 graphics controller that has its own
internal RAM.
>and for a mirrored ROM area (because FLASH ROMs are really slow),
Nope. The flash runs at full speed. It *writes* slowly as is
typical for flash memory, but you can read/execute as fast as
any other RAM or ROM.
>this is not enough for a usable CP/M system.
>To be sure that this system has enough free, usable RAM, there
>must be a really good technical documentation about the system.
>But I fear, Texas Instruments are not willing to publish in-depth
>information about the system.
>So without a detailed system documentation, there is no way to adapt a
>CP/M system because you have to write the BIOS for any CP/M first.
On the contrary, TI has been *very* open about the internals.
They have a pretty good software development kit at
http://education.ti.com/us/resources/developer/83/hilight/hilight.html
and there is even a full Open-Source TI83 emulator written in C
at [ http://calcem.sourceforge.net/calcem/ ], so I can find out
anything I need to know from studying the source of that.
Also see these great sources of technical information:
[ http://nwps.ws/~dragonfire/Asmin28/lesson/toc.html ]
[ http://www.ticalc.org/pub/text/calcinfo/index.html ]
The reason that everyone thinks that there is only 24K or 27K of
usable RAM is because the Z80 only has 64K of address space, and
the calculator uses 32K to switch that 1.5MB of flash in and
out of 2 16K windows, and it uses a bunch of RAM as well. If you
want to do the "normal" TI83/TI84 assembly language program (which
runs as a menu item on a fully functional calculator), you don't
have enough room left. If, however, you don't care whether you
give it a lobotomy and have to reload the TI routines from the
system upgrade CD when you are done, you can take over the entire
calculator and access the full 128KB of RAM and 1.5MB of flash,
swapping chunks in and out of the 64KB address space at will.
I doubt if I can make it into a CP/M machine and still have it
be a TI graphing calculator, but I am quite confident that I can
make it into a CP/M machine *instead of* being a TI graphing
calculator.
Ok, but you would like to write to the Flash also, or ?
> On the contrary, TI has been *very* open about the internals.
> They have a pretty good software development kit at
> http://education.ti.com/us/resources/developer/83/hilight/hilight.html
> and there is even a full Open-Source TI83 emulator written in C
> at [ http://calcem.sourceforge.net/calcem/ ], so I can find out
> anything I need to know from studying the source of that.
>
> Also see these great sources of technical information:
>
> [ http://nwps.ws/~dragonfire/Asmin28/lesson/toc.html ]
> [ http://www.ticalc.org/pub/text/calcinfo/index.html ]
This sounds good, but ... (see below)
> [...] but I am quite confident that I can
> make it into a CP/M machine *instead of* being a TI graphing
> calculator.
... a CP/M machine with 12 chars for a screen line (with 8 pixel char
width) sounds poor, even with a character matrix with 6 pixel char width
there are only 16 chars per line. So you must use ALWAYS an external
device, and there is no USB monitor yet developed. To see what the
machine displays (even with all problems solved) you have to use always
a PC as a terminal. But if I am using a PC, I can also use a CP/M
emulator like MyZ80...
I think you have to find a "pocket" device with better display capabilities.
I really would like to use a CP/M emulator for Palms for example, but
there is no....
Regards
Peter
>Ok, but you would like to write to the Flash also, or ?
Sure! It would still write faster than a floppy and would read
a *lot* faster than a floppy.
>... a CP/M machine with 12 chars for a screen line (with 8 pixel char
>width) sounds poor, even with a character matrix with 6 pixel char width
>there are only 16 chars per line. So you must use ALWAYS an external
>device, and there is no USB monitor yet developed.
Actually, there are a lot of USB monitors suitable for a CPM system:
http://www.psism.com/u30192.htm
http://shop.store.yahoo.com/shoptronics/smdipiphfrme.html
http://www.vialta.com/vistaframe100.htm
http://www.crystalfontz.com/products/634xe/index.html
>To see what the >machine displays (even with all problems solved)
you have to use always a PC as a terminal. But if I am using a PC,
I can also use a CP/M emulator like MyZ80...
You mean you don't have a serial terminal? <grin>
I was thinking along the lines of making the display a scrolling
window on a virtual 640x480 pixel 80x24 character virtual screen
(not very useful but OK in an emergency, and you could write your
own programs for it) and have an external 640x480 USB monitor
for serious work.
>I think you have to find a "pocket" device with better display capabilities.
>I really would like to use a CP/M emulator for Palms for example, but
>there is no....
Alas, none of the PDAs, etc. that have better screens have
Z80s inside. :(
> I think you have to find a "pocket" device with better display
> capabilities. I really would like to use a CP/M emulator for Palms for
> example, but there is no....
If you have a PDA with Linux with a terminal window you can try Aliados, my
cp/m emulator. I don't have tested it on one, yet, but it probably works.
Is not a complete cp/m emulation but can run many programs.
http://www.arrakis.es/~ninsesabe/aliados/
--
Salu2
That's an excellent idea.
I would imagine that if somebody donated such a PDA to
Julian, he would make sure that Aliados works on it...
It wouldn't cost the $75-$100 that a TI84-plus costs, though.
> I would imagine that if somebody donated such a PDA to
> Julian, he would make sure that Aliados works on it...
I already have a pda with linux, but I have not compiled aliados for it.
Give me a few days...
For other operating systems, the file and directory functions must be
adapted. For that, give some more time... or somenone than send me a patch.
--
Salu2
>> I would imagine that if somebody donated such a PDA to
>> Julian, he would make sure that Aliados works on it...
> I already have a pda with linux, but I have not compiled aliados for it.
> Give me a few days...
Finally I do it. With a cross-gcc for arm processor I compiled Aliados and
It runs fine on my Yopy PDA. The only pproblem is that the terminal window
has only 36 columns and Wordstar, for example, refuses to be configured for
less than 40 columns.
It must run also in a Zaurus, but I don't have one to test it.
--
Salu2