07/04/94: OS9000 by Delphi, | Category: Delphi - Programmers Den | 5 comments - (Comments are closed)


88387 4-JUL 16:35 Programmers Den

Does anyone know how to do some simple graphics stuff on OS9000 like change
screen colors ?? Any help is appreciated!

5 comments to OS9000

  • pucc_unknown

    88389 4-JUL 19:22 Programmers Den
    RE: OS9000 (Re: Msg 88387)

    Well, this is a guess, and for the record I dont even have OS-9000
    but here goes..

    For the most part, I’d say you need G-windows for OS-9000 to do any
    real heavy graphics stuff..but for simple stuff, I think all you would
    need is a C lib. function to do it, if Mware hasnt included such a thing
    then I would be willing to say that they havent included provisions for
    it with OS-9000, they do offer a package called QD Menu Maker or some
    such thing, that will allow you to make color text based GUI’s that
    you see painted on the face of many DOS apps…I suppose the best way
    to do graphics stuff with OS-9000 would be to get Gwindows, the next best
    would be to launch a DOS session and use a DOS based programming language

    -* Mike

    BTW, have you checked the manual for any kinds of screen codes that could
    be sent like on the CoCo ? I doubt it is possible without some external
    stuff like QD menu maker or Gwindows, although, you COULD probably write
    routines to manipulate the video card yourself…

  • pucc_unknown

    88391 4-JUL 19:27 Programmers Den
    RE: OS9000 (Re: Msg 88387)

    > Does anyone know how to do some simple graphics stuff on OS9000 like
    > change screen colors ?? Any help is appreciated!

    The /term device in OS9K is an ANSI device. So the ANSI codes to
    change the colors are what you need to use.

    Lessee, I got that info around here somewhere, let me go looking …

    Here is a file you might want to capture and save:

    Villanova University
    Campus Computing – Terminal Emulation
    Includes VT100 and VT52 Terminal and Control Codes

    This file contains control and terminal codes for the VT100 terminals,
    ANSI terminals, and VT52 terminals. Many of the codes were derived from PC -
    INTERCOMM, from Mark of the Unicorn Software. I have researched some of them
    and added some of my own.

    Thank you,
    Jim Mc Ree (209507097 [at] VUVAXCOM [dot] BITNET)

    (* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)


    * For additional information on the DEC VT100 and VT102 terminals, please
    consult the VT100 USER GUIDE and VT102 USER GUIDE, published by Digital
    Equipment Corporation as part numbers EK-VT100-UG and EK-VT102-UG.


    Name Decimal Action Taken
    NUL 0 Fill character; ignored on input.
    ENQ 5 Transmit answerback message.
    BEL 7 Ring the bell.
    BS 8 Move cursor left.
    HT 9 Move cursor to next tab stop.
    LF 10 Line feed; causes print if in autoprint.
    VT 11 Same as LF.
    FF 12 Same as LF.
    CR 13 Move cursor to left margin or newline.
    SO 14 Invoke G1 character set.
    SI 15 Invoke G0 character set.
    XON 17 Resume transmission.
    XOFF 19 Halt transmission.
    CAN 24 Cancel escape sequence and display checkerboard.
    SUB 26 Same as CAN.
    ESC 27 Introduce a control sequence.
    DEL 127 Fill character; ignored on input.

    * All characters less than 32 decimal which are not listed above are ignored.

    (* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)


    *In ANSI sequences, parameters are given as a string of ASCII digits
    (’0′ – ’9′) seperated by semicolons. Pn refers to a number whose value
    used directly. Ps refers to a number used as a selector.


    Cursor Up: Esc ( Pn A
    Cursor Down: Esc ( Pn B
    Cursor Left: Esc ( Pn C
    Cursor Right: Esc ( Pn D

    Direct Addressing : Esc ( Pn(row);Pn(col);H or
    Esc ( Pn(row);Pn(col);f

    ie. (Pascal)
    Writeln (Esc,’(‘,Row:1,’;',col:1,’;',’H');

    Index: Esc D
    New Line: Esc E
    Reverse Line: Esc M

    Save cursor & Attributes: Esc 7
    Restore cursor & attributes: Esc 8


    Cursor to end of line Esc ( K
    Beginning of line to cursor Esc ( 1 K
    Entire line Esc ( 2 K
    Cursor to end of screen Esc ( J
    Beginning of screen to cursor Esc ( 1 J
    Entire screen Esc ( 2 J


    Set with Esc ( Ps h
    Reset with Esc ( Ps l

    Mode name Ps Set Reset
    Keyboard action 2 Locked Unlocked
    Insertion 4 Insert Overwrite
    Send – Receive 12 Full Echo
    Line feed/New line 20 New line Line feed
    Cursor key ?1 Application Cursor
    ANSI/VT52 ?2 ANSI VT52
    Column ?3 132 80
    Scrolling ?4 Smooth Jump
    Screen ?5 Reverse Normal
    Origin ?6 Relative Absolute
    Wraparound ?7 Wrap Truncate
    Auto key repeat ?8 Repeating No repeat
    Print form feed ?18 Yes No
    Print extent ?19 Full screen Scrolling region

    Keypad application Esc =
    Keypad numeric mode Esc >


    Insert line Esc ( Pn L
    Delete line Esc ( Pn M
    Delete character Esc ( Pn P
    Scrolling region Esc ( Pn(top);Pn(bot) r


    Print screen or region Esc ( i
    Print cursor line Esc ( ? 1 i
    Enter auto print Esc ( ? 5 i
    Exit auto print Esc ( ? 4 i
    Enter print controller Esc ( 5 i
    Exit print controller Esc ( 4 i


    The following is a list of the available styles of printing on the
    screen. “Yes” in any column means that the option is supported by the escape
    code on that line. “No” means that the option is not supported by the escape
    code on that line; however, it may, and almost certainly is, supported by
    another escape sequence. Double height and double width double the size of the
    characters in their respective ways (ie. Double height is twice as tall as
    usual). _Line designates underlining. Blink is for blinking characters. Side
    is the orientation of the character. Normal means that there is no orientation.

    Top and bottom refers to the position of the character in order to make a
    complete character. The top and bottom sequences will be important if you use
    the double height option. You will need to print the line twice to get a
    complete line. The first printing will print the top part of the characters and

    the second printing will print the bottom part. Inverse refers to the condition

    of the character. “No” indicates that the character will be printed in the
    color it normally is printed in with its usual backround. “Yes” means that the
    character will be printed in the backround color and the character’s backround
    will be the color it is usually printed in. Shade refers to the brightness of
    the character. Normal is the standard brightness of the character. Bright is
    bold type. Dark is a darker brightness than usual. The escape code is the
    command you would type before the text you want to print to get the indicated
    effects. This section was greatly expanded in version 1.1 of this file.

    Double Double
    Height Width _Line Blink Side Inverse Shade Escape Code
    No No No No Normal No Normal (0m
    Yes Yes No No Top No Bright
    Yes Yes No No Bottom No Bright
    Yes Yes No No Top No Dark
    Yes Yes No No Bottom No Dark
    Yes Yes No No Top No Normal
    Yes Yes No No Bottom No Normal
    Yes Yes Yes No Top No Normal
    Yes Yes Yes No Bottom No Normal
    Yes Yes No Yes Top
    No Normal
    Yes Yes No Yes Bottom No Normal
    Yes Yes No No Top Yes Normal
    Yes Yes No No Bottom Yes Normal
    No Yes No No Normal No Normal
    No Yes No No Normal No Bright
    No Yes No No Normal No Dark
    No Yes Yes No Normal No Normal
    No Yes No Yes Normal No Normal
    No Yes No No Normal Yes Normal
    No No No No Normal No Bright
    No No No No Normal No Dark
    No No Yes No Normal No Normal
    No No No Yes Normal No Normal
    No No No No Normal Yes Normal

    * Some codes have been eliminated due to a repitition of effects. To the best
    of my knowledge, these codes are complete and correct. If you should find
    any errors, or you find some new sequences/effects, please inform me.

    * #3 and #4 behave in the same way as #3(3m and #4(4m.


    Character set G0 G1
    United Kingdom (UK) Esc ( A Esc ) A
    United States (US) Esc ( B Esc ) B
    Graphics Esc ( 0 Esc ) 0
    Default ROM Esc ( 1 Esc ) 1
    Alternate ROM Esc ( 2 Esc ) 2

    Switch to G0/G1 Esc O Esc N


    Set tab at current column Esc H
    Clear tab at current column Esc ( g
    Clear all tabs Esc ( 3 g


    Reset Esc c

    Character attributes Esc ( Ps m
    0 – All attributes off
    1 – Bold on (also high intensity for colors)
    4 – Underscore on
    5 – Blink on
    7 – Reverse on
    30 – Black/Gray (normal/high intensity)
    31 – Red/Bright Red
    32 – Green/Bright Green
    33 – Brown/Yellow
    34 – Blue/Bright Blue
    35 – Magenta/Bright Magenta
    36 – Cyan/Bright Cyan
    37 – White/Bright White
    40 – Black
    41 – Red
    42 – Green
    43 – Brown
    44 – Blue
    45 – Magenta
    46 – Cyan
    47 – White

    Programmable LEDs Esc ( Ps q
    0 – All LEDs off
    (1 – 4) – Turn respective LED on

    Fill screen with “E”s Esc # 8

    (* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)


    *Some VT100 terminal programs also understand a few other escape
    sequences than the standard VT100. I cannot guarantee any of these
    non – standard codes will work with any particular terminal, but they
    may be useful if they do work.

    Transmit a file Esc { T filenameCR —> CR = Carriage Return
    Receive a file Esc { R filenameCR —> CR = Carriage Return
    Append to a file Esc { A filenameCR —> CR = Carriage Return
    Save collected text Esc { S
    Save collected text Esc S

    * These sequences will probably be most useful in developing a micro
    version of a VT100 emulator or in adapting an existing one.

    (* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)


    Cursor up Esc A
    Cursor down Esc B
    Cursor right Esc C
    Cursor left Esc D
    Graphics character set Esc F
    ASCII character set Esc G
    Home cursor Esc H
    Reverse line feed Esc I
    Erase to end of screen Esc J
    Erase to end of line Esc K
    Print cursor line Esc V
    Enter print controller Esc W
    Exit print controller Esc X
    Cursor address Esc Y row col
    Identify Esc Z
    Print screen Esc )
    Enter auto print Esc ^
    Exit auto print Esc -
    Alternate ke�)�*5��j$H� Numeric keypad Esc >
    Enter ANSI mode Esc < * Row and column numbers are single characters with a bias of 31.
    E.g., “$” means row/column 5.)


    Vt52 ANSI and Cursor Key modes
    Arrow Key Mode Reset Set
    Up Esc A Esc ( A Esc O A
    Down Esc B Esc ( B Esc O B
    Right Esc C Esc ( C Esc O C
    Left Esc D Esc ( D Esc O D


    VT52 Mode ANSI Mode
    Key Numeric Application Numeric Application
    0 0 Esc ? p 0 Esc O p
    1 1 Esc ? q 1 Esc O q
    2 2 Esc ? r 2 Esc O r
    3 3 Esc ? s 3 Esc O s
    4 4 Esc ? t 4 Esc O t
    5 5 Esc ? u 5 Esc O u
    6 6 Esc ? v 6 Esc O v
    7 7 Esc ? w 7 Esc O w
    8 8 Esc ? x 8 Esc O x
    9 9 Esc ? y 9 Esc O y
    – – Esc ? m – Esc O m
    , , Esc ? l , Esc O l
    . . Esc ? n . Esc O n
    ENTER ^M Esc ? M ^M Esc O M
    PF1 Esc P Esc P Esc O P Esc O P
    PF2 Esc Q Esc Q Esc O Q Esc O Q
    PF3 Esc R Esc R Esc O R Esc O R
    PF4 Esc S Esc S Esc O S Esc O S


    Esc ( c DA:Device Attributes


    Esc Z DECID:Identify Terminal (ANSI mode)

    * Irrespective of the parameter(s) present, the
    response is always

    Esc ( ? 6 c
    ie. a VT102.

    Esc Z Identify (VT52 mode)

    * The sequence Esc / Z is always returned.

    Esc ( x DECREQTPARM: Request Terminal Parameters

    * values other than 1 are ignored.
    receipt of a
    value of 1, the following
    response is sent:

    Esc(3; ;;;;1;0x

    * Where , , , and
    are as for VT100s with the following

    Values of 5 and 6 bits per
    character are sent as 7 bits.

    These two numbers will always
    be the same. 9600 baud is
    sent for 7200 baud.

    Esc ( Ps n DSR: Device Status Report

    * Parameter values other than 5, 6, are ignored.
    If the parameter value is 5, the sequence
    Esc ( O n is returned. If the parameter value is
    6, the CPR: Cursor Position Report sequence
    Esc ( Pn ; Pn R is returned with the Pn set to
    cursor row and column numbers.

    Zack C Sessions

    They say, “Money talks”. But all mine ever says is, “Goodbye”.

  • pucc_unknown

    88393 4-JUL 20:36 Programmers Den
    RE: OS9000 (Re: Msg 88391)

    >Here is a file you might want to capture and save.

    Zack, here is a file you might want to upload to the databases.

    No offense.


  • pucc_unknown

    88441 6-JUL 18:14 Programmers Den
    RE: OS9000 (Re: Msg 88391)

    Thanks a lot for the great info file Zack–I feel like I did when I first
    started learning OS9 on the Coco years ago!

  • pucc_unknown

    88440 6-JUL 18:07 Programmers Den
    RE: OS9000 (Re: Msg 88389)

    Thanks for the reply Mike–I’m sure it has the capability because the
    config menus spout color. There just isn’t anything like cgfx yet or any
    window descriptors like the Coco. I’ll keep diggin. I’m sure there’s a way
    since the MW folks do it and OS9000 is written in C.