Shop OBEX P1 Docs P2 Docs Learn Events
PropTerm ANSI Terminal project — Parallax Forums

PropTerm ANSI Terminal project

ShaelShael Posts: 17
edited 2009-04-07 01:20 in Propeller 1
About a year ago I started a project to develop an ANSI/TTY terminal using the Parallax Propeller Proto board. I recieved a lot of help from members of this forum in completing the project so I·would like to·make the project available to others.

The PropTerm ANSI Terminal supports the most commonly used ANSI control, escape, and sequence codes. The terminal will display all the printable ANSI characters (ANSI codes 32..127, 160..255). Each character cell has a 6 bit text color and a 6 bit background color (00RRGGBB). The default terminal software can be altered to support up to 100 characters on a line with up to 50 display lines. The font size is 8 pixels wide and 12 pixels height. Communication between the host and the terminal is handled by a Propeller chip COG reserved for that task. This allows the hardware data connection to the host to be changed without any changes to the terminal parser or the display rasterizer software.

The PropTerm prototype was built using Parallax's " Propeller Proto Board" and accessory kit. The only hardware added to the board was an RS232 driver, required support capacitors, and a DB9M connector. The terminal requires four propeller chip pin connections for the host RS232 interface; TX Data, RX DATA, RTS, and CTS. The first version of the software used an external serial eeprom connected to pins A0 and A1. Once I realized that there was a 64K serial eeprom on the Propeller Proto Board I changed the software to use the 32K of the on-board eeprom not used by the Propeller chip. The four pins used for serial communications are set in the "ComHelper.spin" project·file as constants.

The PropTerm has a built in setup dialog used to set the default terminal settings. To invoke the setup dialog press the WIN+F12 key combination. To exit the setup dialog without saving changes press the ESC key.

I have not had time to pack up all the documentation for the project. For now my personal web site has a number of usefull documents for this project www.shaels.net.

Comments

  • ShaelShael Posts: 17
    edited 2009-04-06 09:47
    I have added this example of how to upload a font set to the PropTerm ANSI terminal. The zip file contains a number of sample ANSI font load files for use with the PropTerm ANSI terminal project. The ANSI font load files have a file extension of ".AFL'. Each line of an ANSI font file contains an ANSI escape sequence to load a single font glyph. To load a font file into the PropTerm font memory table simply transfer the file to the terminal. See the readme.txt file in the zip file for more information.
  • ForrestForrest Posts: 1,341
    edited 2009-04-06 13:13
    PropTerm ANSI Terminal looks impressive. Have you tried displaying scrolling ANSI graphics? www.parallax.com/tabid/657/Default.aspx was shown last year and the ANSI graphics are accessed from an SD card. The hardware looks relatively simple, but the code was never posted.
  • ShaelShael Posts: 17
    edited 2009-04-06 15:10
    Most ANSI art was created using the 256 color mapping from the MSDOS ANSI.SYS driver, PropTerm only supports 64 colors and the DOS color mapping·do not follow the ANSI standard. The colors could be mapped but that would be required of every file displayed. Since an ANSI art file contains ANSI escape sequence along with the character data all that you need to do is transfer the file to the terminal. PropTerm can perform vertical scrolling using the scroll up and down, or insert and delete line·escape sequences. Horizontal scrolling can only be done one·row at a time using the insert and delete character escape sequences.

    PropTerm uses most of the memory and COGs available on the Propeller chip so you would need a second Propeller chip to drive the terminal as the project stands. To create a stand alone ANSI art display you could strip down the current project by removing the ComHelper.spin, FullSerialDuplex.spin, Keyboard.spin and then provide a new main spin object. The ANSI parser/rasterizer can work independently of the other spin objects. I would also remove support for the GetXY and ENQ commands as they are the only ANSI commands that generate a responce from the terminal. Depending on the size of the code to implement the SD/File system I think this would work without a lot of effort. I would also reduce the screen to 80 columns by 25 rows to make existing artwork display. Sounds like a good use for the project. One last note I included as many ANSI control sequences as would fit in the resources of the Propeller chip who knows which ANSI control sequences are used in·existing art work.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-04-06 23:20
    Sounds like interesting code for the TriBladeProp (Blade#1) PCB. The terminal is meant to be self-contained on one propeller. May work well with the ZiCog (Z80 emulator running CPM)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • ForrestForrest Posts: 1,341
    edited 2009-04-07 01:20
    Thanks for the update - looks like a fun project.
  • This stuff is EXCELLENT!

    You can also test the ANSI sequences with a serial port or WX device and PUTTY.
    https://forums.parallax.com/discussion/comment/1434744/#Comment_1434744

    Transition.gif
    665 x 1403 - 85K
Sign In or Register to comment.