best option for terminal emulation? - CP/M

This is a discussion on best option for terminal emulation? - CP/M ; Hi, I'm teaching myself about microprocessors and microcontrollers. My current project is building an I/O board that will use an ATMEG16 AVR to interface a MicroVGA adaptor ( http://www.dontronics-shop.com/4d- Micro-VGA-320-Core-p-16145.html) and a PS/2 keyboard to an 8-bit data bus. Initially ...

+ Reply to Thread
Results 1 to 11 of 11

Thread: best option for terminal emulation?

  1. best option for terminal emulation?

    Hi,

    I'm teaching myself about microprocessors and microcontrollers. My
    current project is building an I/O board that will use an ATMEG16 AVR
    to interface a MicroVGA adaptor (http://www.dontronics-shop.com/4d-
    Micro-VGA-320-Core-p-16145.html) and a PS/2 keyboard to an 8-bit data
    bus. Initially I'm doing this as an Apple II bus card (so I will be
    able to PEEK to get a keypress, and POKE to send a character to the
    screen. But I've got a vague long term goal of eventually using it as
    the terminal for a Z80 homebrew computer, and if I do build something
    like that, I'd like to get it to the point it can run some flavour of
    CP/M. I'm probably a year or two away from even starting the Z80
    computer, but I'd like to think that the board I build now can be
    usable without too many changes.

    So I need to work out what the command protocol will be betwen the I/O
    board and the computer it interfaces with (i.e. initially an Apple II,
    eventualy the homebrew Z80). I want to avoid having a memory mapped
    interface, since I don't want to have a lot of RAM on my board, and
    also because that will then mean the host computer needs to do all the
    work of maintaining the state of when to scroll the screen, wrap
    lines, etc. And doing it on the host means I have to do it twice. So
    I'd rather have the interface be a stream of commands, all POKEd to
    the same memory location, and have control characters for e.g.
    clearing the screen, moving the cursor to a particular location etc.

    So I have the option of either inventing my own protocol and command
    sequences, or emulating some existing terminal (e.g a VT100).

    So my question is, is there any existing terminal that would be simple
    to emulate, and would make it easy for me later on if I ever do get to
    the point of using this card as the I/O for a homebrew CP/M machine?

    I've done a bit of research, and found this post
    http://209.85.173.104/search?q=cache...bout54711.html
    from which I inferred that there wasn't any standard, and I could just
    as easily invent my own protocol, and as long as it contained commands
    for the following functions, I should be able to get (for example)
    Wordstar to run on it?
    LEVEL (Morrow Terminal Attribute Install Levels)
    CURSOR (Cursor addressing sequence, sends cursor to
    Row,Column on screen)
    CLR (Clear Screen)
    CEOL (Clear to End of Line sequence)
    CEOS (Clear to End of Screen Sequence)
    RIGHT/LEFT/UP (Move Cursor)
    HOME (Send Cursor to Upper Left Corner)
    HI/LO (High-Light Low-Light)

    Regards,

    Jonno

  2. Re: best option for terminal emulation?

    The VT-52 was VERY widely supported. It's a simpler subset
    (predecessor) of the VT-100.

    jonnosan wrote:
    > Hi,
    >
    > I'm teaching myself about microprocessors and microcontrollers. My
    > current project is building an I/O board that will use an ATMEG16 AVR
    > to interface a MicroVGA adaptor (http://www.dontronics-shop.com/4d-
    > Micro-VGA-320-Core-p-16145.html) and a PS/2 keyboard to an 8-bit data
    > bus. Initially I'm doing this as an Apple II bus card (so I will be
    > able to PEEK to get a keypress, and POKE to send a character to the
    > screen. But I've got a vague long term goal of eventually using it as
    > the terminal for a Z80 homebrew computer, and if I do build something
    > like that, I'd like to get it to the point it can run some flavour of
    > CP/M. I'm probably a year or two away from even starting the Z80
    > computer, but I'd like to think that the board I build now can be
    > usable without too many changes.
    >
    > So I need to work out what the command protocol will be betwen the I/O
    > board and the computer it interfaces with (i.e. initially an Apple II,
    > eventualy the homebrew Z80). I want to avoid having a memory mapped
    > interface, since I don't want to have a lot of RAM on my board, and
    > also because that will then mean the host computer needs to do all the
    > work of maintaining the state of when to scroll the screen, wrap
    > lines, etc. And doing it on the host means I have to do it twice. So
    > I'd rather have the interface be a stream of commands, all POKEd to
    > the same memory location, and have control characters for e.g.
    > clearing the screen, moving the cursor to a particular location etc.
    >
    > So I have the option of either inventing my own protocol and command
    > sequences, or emulating some existing terminal (e.g a VT100).
    >
    > So my question is, is there any existing terminal that would be simple
    > to emulate, and would make it easy for me later on if I ever do get to
    > the point of using this card as the I/O for a homebrew CP/M machine?
    >
    > I've done a bit of research, and found this post
    > http://209.85.173.104/search?q=cache...bout54711.html
    > from which I inferred that there wasn't any standard, and I could just
    > as easily invent my own protocol, and as long as it contained commands
    > for the following functions, I should be able to get (for example)
    > Wordstar to run on it?
    > LEVEL (Morrow Terminal Attribute Install Levels)
    > CURSOR (Cursor addressing sequence, sends cursor to
    > Row,Column on screen)
    > CLR (Clear Screen)
    > CEOL (Clear to End of Line sequence)
    > CEOS (Clear to End of Screen Sequence)
    > RIGHT/LEFT/UP (Move Cursor)
    > HOME (Send Cursor to Upper Left Corner)
    > HI/LO (High-Light Low-Light)
    >
    > Regards,
    >
    > Jonno


  3. Re: best option for terminal emulation?

    On May 4, 1:03*pm, Barry Watzman wrote:
    > The VT-52 was VERY widely supported. *It's a simpler subset
    > (predecessor) of the VT-100.
    >


    Barry,

    Looks pretty easy to implement. Thanks for the tip.

    Regards

    Jonno

  4. Re: best option for terminal emulation?



    "jonnosan" wrote in message
    news:4c55f8e7-d083-487c-8791-3be2df4cfd22@w1g2000prd.googlegroups.com...

    > So my question is, is there any existing terminal that would be simple
    > to emulate, and would make it easy for me later on if I ever do get to
    > the point of using this card as the I/O for a homebrew CP/M machine?


    I don't know how simple it is to emulate but much CP/M software used ADM-3
    control codes.

    Tom Lake


  5. Re: best option for terminal emulation?

    On Sat, 3 May 2008 19:14:13 -0700 (PDT), jonnosan
    wrote:

    >Hi,
    >
    >I'm teaching myself about microprocessors and microcontrollers. My
    >current project is building an I/O board that will use an ATMEG16 AVR
    >to interface a MicroVGA adaptor (http://www.dontronics-shop.com/4d-
    >Micro-VGA-320-Core-p-16145.html) and a PS/2 keyboard to an 8-bit data
    >bus. Initially I'm doing this as an Apple II bus card (so I will be
    >able to PEEK to get a keypress, and POKE to send a character to the
    >screen. But I've got a vague long term goal of eventually using it as
    >the terminal for a Z80 homebrew computer, and if I do build something
    >like that, I'd like to get it to the point it can run some flavour of
    >CP/M. I'm probably a year or two away from even starting the Z80
    >computer, but I'd like to think that the board I build now can be
    >usable without too many changes.
    >
    >So I need to work out what the command protocol will be betwen the I/O
    >board and the computer it interfaces with (i.e. initially an Apple II,
    >eventualy the homebrew Z80). I want to avoid having a memory mapped
    >interface, since I don't want to have a lot of RAM on my board, and
    >also because that will then mean the host computer needs to do all the
    >work of maintaining the state of when to scroll the screen, wrap
    >lines, etc. And doing it on the host means I have to do it twice. So
    >I'd rather have the interface be a stream of commands, all POKEd to
    >the same memory location, and have control characters for e.g.
    >clearing the screen, moving the cursor to a particular location etc.
    >
    >So I have the option of either inventing my own protocol and command
    >sequences, or emulating some existing terminal (e.g a VT100).
    >
    >So my question is, is there any existing terminal that would be simple
    >to emulate, and would make it easy for me later on if I ever do get to
    >the point of using this card as the I/O for a homebrew CP/M machine?
    >
    >I've done a bit of research, and found this post
    >http://209.85.173.104/search?q=cache...bout54711.html
    >from which I inferred that there wasn't any standard, and I could just
    >as easily invent my own protocol, and as long as it contained commands
    >for the following functions, I should be able to get (for example)
    >Wordstar to run on it?
    > LEVEL (Morrow Terminal Attribute Install Levels)
    > CURSOR (Cursor addressing sequence, sends cursor to
    >Row,Column on screen)
    > CLR (Clear Screen)
    > CEOL (Clear to End of Line sequence)
    > CEOS (Clear to End of Screen Sequence)
    > RIGHT/LEFT/UP (Move Cursor)
    > HOME (Send Cursor to Upper Left Corner)
    > HI/LO (High-Light Low-Light)
    >
    >Regards,
    >
    >Jonno


    Look at VT52, it's as simple as they com but plenty adaquate.
    It has all the adressing and erase funcitons needed and since the real
    VT52 was a all hardware (no micro at all) the command s were simple
    and effective. I did a minimal VT52 emulation using a VDM-1 (16x64)
    in 256bytes of 8085 code.

    CURSOR (Cursor addressing sequence, sends cursor to
    Row,Column on screen) or gotoxy
    CLR (Clear Screen)
    CEOL (Clear to End of Line sequence)
    CEOS (Clear to End of Screen Sequence)
    RIGHT/LEFT/UP/down (Move Cursor)
    HOME (Send Cursor to Upper Left Corner)

    Thata an adaquate set of functions and most are really simple
    command does action. The only one that has any effort is the
    gotoxy.

    Allison

  6. Re: best option for terminal emulation?

    On Sun, 4 May 2008 06:26:05 -0400, "Tom Lake"
    wrote:

    >
    >
    >"jonnosan" wrote in message
    >news:4c55f8e7-d083-487c-8791-3be2df4cfd22@w1g2000prd.googlegroups.com...
    >
    >> So my question is, is there any existing terminal that would be simple
    >> to emulate, and would make it easy for me later on if I ever do get to
    >> the point of using this card as the I/O for a homebrew CP/M machine?

    >
    >I don't know how simple it is to emulate but much CP/M software used ADM-3
    >control codes.
    >
    >Tom Lake


    Mos tof the software that did ADM-3 also did VT-52, VT100, H19 (both
    ansi and native), and many of the other common terminals. FYI: ANSI
    escapes and VT100 are compatable save for the VT100 adds
    ANSI private sequences. For most CP/M software that did VT100/ANSI
    the full set was rearely used nor needed.

    Allison


  7. Re: best option for terminal emulation?

    --{ jonnosan a plopé ceci: }--

    > So my question is, is there any existing terminal that would be simple
    > to emulate, and would make it easy for me later on if I ever do get to
    > the point of using this card as the I/O for a homebrew CP/M machine?


    The DEC vt52 protocol is very simple. In the past, I've written
    an emulator in less than 100 lines of GWBASIC...


    --
    David Lightman: Is this a game or is it real?
    Joshua: What's the difference?
    David Lightman: Oh, wow.

  8. Re: best option for terminal emulation?

    --{ Barry Watzman a plopé ceci: }--

    > The VT-52 was VERY widely supported. It's a simpler subset
    > (predecessor) of the VT-100.


    Mmmm, If my bio-memory is correct, vt52 was _not_ a subset of
    vt100. And after two minutes of vgrepping /etc/termcap, found
    taht they are very different things...


    [snipped goretquoting]

    --
    | Par le menu mon noyau choisira. | De dépendances absconses
    | Tu ne t'encombrera | Par le menu mes packages mettra.
    | Qui sur le disque dur | Se mettrons dans la joie.
    ----------------------- L'évangile selon St Volkerding -----------------

  9. Re: best option for terminal emulation?

    On Sun, 4 May 2008 21:31:12 +0200, "Thierry B."
    wrote:

    >--{ Barry Watzman a plopé ceci: }--
    >
    >> The VT-52 was VERY widely supported. It's a simpler subset
    >> (predecessor) of the VT-100.

    >
    > Mmmm, If my bio-memory is correct, vt52 was _not_ a subset of
    > vt100. And after two minutes of vgrepping /etc/termcap, found
    > taht they are very different things...
    >
    >
    > [snipped goretquoting]


    Often people think of VT52 as subset of VT100 as the VT100 could and
    did do VT52. However, as you point out the escape sequences are very
    different.


    Allison

  10. Re: best option for terminal emulation?

    I've implemented a VT100-compatible terminal
    into a single 200k-gate Xilinx FPGA. Actually, it
    is a mix of VT100 and VT240, since it supports
    color sequences and scroll regions. I've the design
    files still somewhere, if there is enough interest
    I'll make them available @ p112.sourceforge.net.
    It is not a fully VT100 or VT220/240 emulation,
    I just got the thing working to the point I needed,
    but most things are there: color, underline, bold,
    reverse and blinking attributes, as well as
    double-width and double-height characters. There is
    no alternate international character set, but the pseudo-
    graphics are there. The design uses (guess what!)
    an 8080 core (from opencores.org) just as the original
    VT100, but the software was written from scratch.
    Everything (VGA, RS-232 I/O, PS/2 PC keyboard
    interface, CPU, RAM and emulated ROM) fits inside
    an XC2S200 chip. Add a FDC or IDE interface and
    you'll have a CP/M-machine-on-chip...

    Hector.

  11. Re: best option for terminal emulation?

    hperaza wrote:
    > I've implemented a VT100-compatible terminal
    > into a single 200k-gate Xilinx FPGA. Actually, it
    > is a mix of VT100 and VT240, since it supports
    > color sequences and scroll regions. I've the design
    > files still somewhere, if there is enough interest
    > I'll make them available @ p112.sourceforge.net.
    > It is not a fully VT100 or VT220/240 emulation,
    > I just got the thing working to the point I needed,
    > but most things are there: color, underline, bold,
    > reverse and blinking attributes, as well as
    > double-width and double-height characters. There is
    > no alternate international character set, but the pseudo-
    > graphics are there. The design uses (guess what!)
    > an 8080 core (from opencores.org) just as the original
    > VT100, but the software was written from scratch.
    > Everything (VGA, RS-232 I/O, PS/2 PC keyboard
    > interface, CPU, RAM and emulated ROM) fits inside
    > an XC2S200 chip. Add a FDC or IDE interface and
    > you'll have a CP/M-machine-on-chip...


    It seems that you've implemented my bizarro idea of a gizmo that
    transforms a VGA monitor and a keyboard into a regular terminal without
    all that nasty mucking about with operating systems and terminal
    emulation apps.


    --
    David Griffith
    dgriffi@cs.csbuak.edu <-- Switch the 'b' and 'u'

+ Reply to Thread