Discussion:
[N8VEM-S100:7343] Propterm-based software for Console IO board
Philippe Elie
2015-06-30 17:58:52 UTC
Permalink
Hi Folks,

I finally had some time to improve the Console IO code, based on Propterm.
Main features are :
- ANSI support
- color support (800x600 VGA output, each character has its own foreground
/ background color coded as 2 bits per R/G/B channel)
- 0x07 (bell) code implemented

Propterm is written in a modular way, ie. most of the modifications consist
in the replacement of the code managing the RS232/USB interface by the
S100IO.spin code that implements the interface with the S100 bus.
Basically, it implements in assembly the code written in Spin in the
original ConsoleIO code and reads from/writes to the input/output buffers
when data from the bus is received or the keyboard is pressed. In CP/M,
color can be changed, screen can be cleared, etc using Escape sequences. I
patched Wordstar 3.0 as per the indications found on
http://jefftranter.blogspot.fr/2014/03/wordstar-30-on-briel-altair-8800.html (I
attached the patched WS.COM for your convenience). Also added CLS.COM as
find it useful to get this command which is included in MSDOS. Turbo Pascal
3.01A works perfectly.

I also modified John's 8086 BIOS to add the following :
- support of Get Cursor function (INT10h, function 03)
- correct row/column starting at 1 so FDISK displays correctly
- support of ClearScreen, using ANSI code (instead of scrolling lines)

I attached the source (please note that a 64K EPROM is necessary, as I had
to locate the additional code at 0000, while John's code starts at 8000. I
can probably optimize things so it can fit into the original 32K) Turbo
Pascal 1.0 for DOS works OK but scrolling is not perfect as apparently TP
manages scrolling for a 25-line terminal while the screen is actually 50
lines. BASICA starts, displays OK but does not read commands. Same for
GWBASIC. Turbo Basic does not even display. I suspect that those programs
access the CGA board directly (memory mapped), in which case I fear this
may be quite hard to have them work correctly on the Propeller board. I was
thinking of adapting the Propeller driver to display pixel graphics, but
considering the above limitations under MSDOS, not sure if this is worh
it...

Your thoughts and advice will be welcome !

BTW, I could not reach the author of the Propterm code unfortunately.
Hopefully, there is no issue with my attempts to reuse and adapt this code
to the ConsoleIO board as the source code can be freely downloaded, please
let me know if you feel otherwise.

cheers
Philippe
--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s100+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
yoda
2015-06-30 18:07:59 UTC
Permalink
Hi Philippe

I think in some ways I may be the original author of the code though it is
hard to tell anymore and I adapted the code from Vince Briel's Pocket Term
and I got ideas from the propeller forums as well. Any ways I think it is
great what you have done. My question is have you implemented ANSI escape
sequences fully? I plan on using this code on the console I/O board as
well as the original board that I designed for N8VEM ECB which I think the
S100 board was somewhat modeled after. I need to also implement the
alternate character set for curses as well. The monitor I have been
working on for the 68XXX boards uses curses for it's display and I would
like to support the propeller board on the S100-68K, mini-68K and
KISS-68030 ECB boards, and the Gryphon 68030 board. I am trying to keep
the code in sync across all 4 boards going forward. Code works great on
serial terminal that supports xterm or ansi escape sequences. I will
probably try to look at the code of this upcoming long holiday weekend.

Dave
Post by Philippe Elie
Hi Folks,
I finally had some time to improve the Console IO code, based on Propterm.
- ANSI support
- color support (800x600 VGA output, each character has its own foreground
/ background color coded as 2 bits per R/G/B channel)
- 0x07 (bell) code implemented
Propterm is written in a modular way, ie. most of the modifications
consist in the replacement of the code managing the RS232/USB interface by
the S100IO.spin code that implements the interface with the S100 bus.
Basically, it implements in assembly the code written in Spin in the
original ConsoleIO code and reads from/writes to the input/output buffers
when data from the bus is received or the keyboard is pressed. In CP/M,
color can be changed, screen can be cleared, etc using Escape sequences. I
patched Wordstar 3.0 as per the indications found on
http://jefftranter.blogspot.fr/2014/03/wordstar-30-on-briel-altair-8800.html (I
attached the patched WS.COM for your convenience). Also added CLS.COM as
find it useful to get this command which is included in MSDOS. Turbo Pascal
3.01A works perfectly.
- support of Get Cursor function (INT10h, function 03)
- correct row/column starting at 1 so FDISK displays correctly
- support of ClearScreen, using ANSI code (instead of scrolling lines)
I attached the source (please note that a 64K EPROM is necessary, as I had
to locate the additional code at 0000, while John's code starts at 8000. I
can probably optimize things so it can fit into the original 32K) Turbo
Pascal 1.0 for DOS works OK but scrolling is not perfect as apparently TP
manages scrolling for a 25-line terminal while the screen is actually 50
lines. BASICA starts, displays OK but does not read commands. Same for
GWBASIC. Turbo Basic does not even display. I suspect that those programs
access the CGA board directly (memory mapped), in which case I fear this
may be quite hard to have them work correctly on the Propeller board. I was
thinking of adapting the Propeller driver to display pixel graphics, but
considering the above limitations under MSDOS, not sure if this is worh
it...
Your thoughts and advice will be welcome !
BTW, I could not reach the author of the Propterm code unfortunately.
Hopefully, there is no issue with my attempts to reuse and adapt this code
to the ConsoleIO board as the source code can be freely downloaded, please
let me know if you feel otherwise.
cheers
Philippe
--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s100+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...