Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tandem 6530 terminal programming

430 views
Skip to first unread message

Ben Duong

unread,
Jun 8, 2000, 3:00:00 AM6/8/00
to
Hello all,

I am trying to write a TAL block mode terminal program, but the manuals I
have searched so far (Guardian Programmer's Guide, Asynchronous Terminal
Programming guide, AM6520) don't have enough information to help me. The
only I have managed to do so far is writing a screen to the terminal, but
have yet to successfully read from the terminal. One of the above manuals
mentioned another manual entitled "6530 multipage terminal programming
guide", but this manual isn't on the CD-READ's CD.

Does anyone have any sample programs, or does anyone know of any online
documents related to 6530 multipage terminal programming ?

your help is greatly appreciated

Benjamin Duong

Art Rice

unread,
Jun 8, 2000, 3:00:00 AM6/8/00
to
On Thu, 8 Jun 2000 20:50:32 +0800, "Ben Duong" <bend...@ctimail.com>
wrote:

>Hello all,
>
>I am trying to write a TAL block mode terminal program, but the manuals I
>have searched so far (Guardian Programmer's Guide, Asynchronous Terminal
>Programming guide, AM6520) don't have enough information to help me. The
>only I have managed to do so far is writing a screen to the terminal, but
>have yet to successfully read from the terminal. One of the above manuals
>mentioned another manual entitled "6530 multipage terminal programming
>guide", but this manual isn't on the CD-READ's CD.

Most of the manuals refer to the "6530 multipage terminal programming
guide" which has been out of print since before CD-read and thus TIM.
It was never transferred to electronic format.

One manual that can be helpful is the Tandem TS530 Terminal User's
Guide that comes with the consoles and carries part number 066557.


>
>Does anyone have any sample programs, or does anyone know of any online
>documents related to 6530 multipage terminal programming ?

You might also check the "Guardian Programmers Guide". I believe
there are samples in there to read and write to the terminal.

Another manual if you can find it is the "EM6530 PC Terminal Emulator
Programmer's Guide." Even had a TAL programming example in the back.
I think it also had a C example for the UNIX environment. Alas, this
manual also is too old for CD-READ or TIM. The one I saw was Guardian
90 B40 from 1987.

>
>your help is greatly appreciated
>
>Benjamin Duong
>

--
Art Rice **
Special Data Processing Corporation
--------------------------------------
All opinions expressed are mine and do
not reflect the views of my employer.

Larry Kjellberg

unread,
Jun 8, 2000, 3:00:00 AM6/8/00
to
You must be fairly careful in how you write to the terminal if you plan for
your program to work with multiple communications methods. TCP/IP is very
"friendly" and will work with most any code you throw together. It's
actually more difficult to talk to the 6530 terminal correctly in ASYNC.
Once you get the rules correct it will work regardless of which protocol you
are using to communicate. Some of the basics are in the back of the
EM6530PC Terminal Emulator Programmer's Guild if you can find a copy of
that.

Art Rice wrote in message <7ubvjskogtdfat12j...@4ax.com>...

jay_m...@my-deja.com

unread,
Jun 8, 2000, 3:00:00 AM6/8/00
to
Here is the TAL example from the 653X Terminal Emulators Programmers
Guide.
Hope it helps.

-Jay

----start code ----------------
--
************************************************************************
*****
--
*
*
-- * 653X Terminal Emulators Programmer's
Guide *
--
*
*
-- * Part No. 82659
A00 *
--
*
*
-- * May
1986 *
-- * Tandem Computers
Inc. *
-- * 14321 Tandem
Boulevard *
-- * Austin, TX
78728 *
--
*
*
-- * Application Interface Programming
Example *
-- * Chapter 5, page
5. *
--
*
*
--
************************************************************************
*****
?INSPECT, SYMBOLS

LITERAL lf = %H12%D,
cr = %H15%D,
esc = %H1B%D,

set^bufadr = %H11%D, !set buffer address
sf = %H1D%D, !start field

numeric = %B00000100,
alpha = %B00001100,
reverse^vid = %B00100100,
normal^vid = %B01100000,
upshift = %B01000001,
protected = %B01100000,
unprotected = %B01000000,
dim^vid = %B00100001,
blinking^vid = %B00100010,
invisible^vid = %B00101000,
underline^vid = %B00110000;


DEFINE lfcr = esc, lf, esc, cr#,

read^buffer = esc, "<"#,
read^modified = esc, "="#,
status^line = esc, "o"#,
set^protected = esc, "W"#,
sel^page = esc, ":"#,
dspl^page = esc, ";"#,
clear^page = esc, "J"#,
unlock^kb = esc, "b"#,
sfx = esc, "["#, !start field extended

line(a) = a + %H1F#,
col(a) = a + %H1F#,
page(a) = a + %H20#,
place(r,c) = set^bufadr, line(r), col(c)#;

INT .buf[0:1023],
terminal^num,
recv^num;

STRING .sp,
.sbuf := @buf '<<' 1;

STRING .emp^num[0:6] := 7*[" "],
.emp^name[0:29] := 30*[" "],
.description[0:221] := 222*[" "];

STRUCT startup^msg(*);
BEGIN
INT msgcode;
STRUCT default;
BEGIN
INT volume[0:3],
subvol[0:3];
END;
STRUCT infile;
BEGIN
INT volume[0:3],
subvol[0:3],
dname [0:3];
END;
STRUCT outfile;
BEGIN
INT volume[0:3],
subvol[0:3],
dname [0:3];
END;
STRING param [0:228];
END;


STRUCT .ci^start^up(startup^msg);

?NOLIST
?SOURCE $SYSTEM.SYSTEM.EXTDECS(MYTERM,OPEN,READ,WRITE,
? DEBUG, AWAITIO,
? WRITEREAD,
? SETMODE)
?LIST

PROC wait^for^F1;
!================
BEGIN
sbuf := 0;
WHILE sbuf[0] <> %H40 DO !ignore any key except the F1 key
CALL READ(terminal^num, buf, 20);
END;

PROC m MAIN;
!===========
BEGIN
sbuf ':=' "$RECEIVE ";
CALL OPEN(buf, recv^num, %040001);
gitit:
CALL READ(recv^num, ci^start^up, $len(ci^start^up));
IF < THEN CALL DEBUG;
CALL AWAITIO(recv^num);
IF ci^start^up.msgcode <> -1 THEN GOTO gitit;

CALL OPEN(ci^start^up.outfile, terminal^num);
!
! ask the user to enter their name and employee number. This is
! done while the teminal is in "conversational mode".
!
sbuf ':=' ["TYPE YOUR NAME PLEASE: "] -> @sp;
CALL WRITEREAD(terminal^num, buf, @sp'-'@sbuf, 30);
! .
! .save the contents of buf in variable "emp^name"
! .
sbuf ':=' ["TYPE YOUR EMPLOYEE NUMBER: "] -> @sp;
CALL WRITEREAD(terminal^num, buf, @sp'-'@sbuf, 7);
! .
! .save the contents of buf in variable "emp^num"
! .
! put the terminal in block mode and put mesage on "status line"
! asking the user to enter their job description
!
CALL SETMODE(terminal^num, 8, 1, 20); !put teminal in blockmode
!
! clear the screen and display page 1
sbuf ':=' [clear^page, unlock^kb,
status^line,
"ENTER JOB DESCRIPTION AND PRESS F1 WHEN DONE", cr] -> @sp;
CALL WRITE(terminal^num, buf, @sp'-'@sbuf);

call wait^for^F1;

sbuf ':=' [read^buffer]; !read the page
CALL WRITEREAD(terminal^num, buf, 2, 256);
! .
! . save the desription in varibale "description"
! .
! put the teminal into block protect mode and display a menu
! that has name, address, city, state, zip, emp. num, and job
! description fields. Ask the user to modify o rfill in any
! missing information.
sbuf ':=' [set^protected, dspl^page, page(0), !blank screen
sel^page, page(1)] -> @sp; !while painting fields
CALL WRITE(terminal^num, buf, @sp'-'@sbuf); !on page 1

sbuf ':=' ["EMPLOYEE INFORMATION",
place(3,1), "Employee Name: ",
sf, reverse^vid, unprotected, place(3,50),
sf, normal^vid, protected,

place(5,1), "Address: ",
sf, reverse^vid, unprotected, place(5,50),
sf, normal^vid, protected,

place(7,1), "City: ",
sf, reverse^vid, unprotected+alpha, place(7,34),
sf, normal^vid, protected,

" State: ",
sfx, reverse^vid, unprotected+alpha, upshift, place(7,46),
sf, normal^vid, protected,

" Zip: ",
sf, reverse^vid, unprotected+numeric, place(7,59),
sf, normal^vid, protected,

place(9,1), "Employee Number: ",
sf, reverse^vid, unprotected+numeric, place(9,27),
sf, normal^vid, protected,

place(11,1), "Job Description: ",
sf, reverse^vid, unprotected, place(14,1),
sf, normal^vid, protected] -> @sp;

CALL WRITE(terminal^num, buf, @sp'-'@sbuf); !write menu to terminal
!
! Fill in the data that was already entered and then display the menu
!
sbuf ':=' [place(3, 19)] -> @sp;
sp ':=' emp^name FOR 30 -> @sp;

sbuf ':=' [place(11, 19)] -> @sp;
sp ':=' emp^num FOR 7 -> @sp;

sbuf ':=' [place(13, 19)] -> @sp;
sp ':=' description FOR 221 -> @sp;

sbuf ':=' [dspl^page, page(1), unlock^kb] -> @sp;
CALL WRITE(terminal^num, buf, @sp'-'@sbuf);
!
! display msg asking the user to fill in menu and then press F1
!
sbuf ':=' [status^line,
"Fill in or modify fields. Press F1 when done ", cr] -> @sp;
CALL WRITE(terminal^num, buf, @sp'-'@sbuf);

call wait^for^F1;
!
! read the modifed fileds
!
sbuf ':=' [read^modified, line(1), col(1), line(13), col(80)] -> @sp;
CALL WRITEREAD(terminal^num, buf, @sp'-'@sbuf, 1000);
!
! using the row and column information in the returned data
! update the modified fields
!
@sp := @sbuf[1]; !set sp to point to the row of teh first entry
IF sp = line(3) THEN
BEGIN
! update the employee name data
END
ELSE
IF sp = line(5) THEN
BEGIN
! update the address data
END;
! .
! .check the rest of the fields...
! .
!
! reset the teminal to conversational mode and exit
!
CALL SETMODE(terminal^num, 8, 0);
END;
-----end code-----------------

In article <7ubvjskogtdfat12j...@4ax.com>,
arice....@ue.itug.org wrote:
> .


> .
> Another manual if you can find it is the "EM6530 PC Terminal Emulator
> Programmer's Guide." Even had a TAL programming example in the back.
> I think it also had a C example for the UNIX environment. Alas, this
> manual also is too old for CD-READ or TIM. The one I saw was Guardian
> 90 B40 from 1987.

> .
> .


> Art Rice **
> Special Data Processing Corporation
> --------------------------------------
> All opinions expressed are mine and do
> not reflect the views of my employer.
>


Sent via Deja.com http://www.deja.com/
Before you buy.

MSage

unread,
Jun 9, 2000, 3:00:00 AM6/9/00
to
You can probably talk to your sales rep. Ours managed to find a copy
and sent me a copy of it (I, in turn, have copied the copy and have
stored it in a "nice safe place" :-).

QjoeW.Ep...@tmindspring.ycom

unread,
Jun 9, 2000, 3:00:00 AM6/9/00
to
On Fri, 09 Jun 2000 16:14:36 GMT, MSage <michae...@my-deja.com>
spewed forth:

>You can probably talk to your sales rep. Ours managed to find a copy
>and sent me a copy of it (I, in turn, have copied the copy and have
>stored it in a "nice safe place" :-).

I wonder why Tandem doesn't make the 6530 programming documentation
more readily available for customers and s/w vendors? Maybe, someday,
if that project I've heard rumors of to build a GUI-supportive
terminal controller (ala some X-windows sort of setup) ever becomes a
real product, they can expect customer to stop needing 6530 info. But
in the meantime ... ??
```
Joe
(remove "q.w.e.r.t.y" to reply by email)
===
"The optimist proclaims that we live in the best
of all possible worlds; and the pessimist fears
this is true."
Irving Caesar

Richard S. Pope

unread,
Jun 9, 2000, 3:00:00 AM6/9/00
to
Ben,

Not too much out there. The TS530 terminal manual has a summary of
escape sequences. Try asking GCSC for the manual; I have an internal
copy of a manual released a couple of years ago which has a good amount
of detail (but not perfect) whiuch they *might* be able to send to you.
If you get "we never heard of this" response, email me privately.

Rich

Ben Duong wrote:
>
> Hello all,
>
> I am trying to write a TAL block mode terminal program, but the manuals I
> have searched so far (Guardian Programmer's Guide, Asynchronous Terminal
> Programming guide, AM6520) don't have enough information to help me. The
> only I have managed to do so far is writing a screen to the terminal, but
> have yet to successfully read from the terminal. One of the above manuals
> mentioned another manual entitled "6530 multipage terminal programming
> guide", but this manual isn't on the CD-READ's CD.
>

> Does anyone have any sample programs, or does anyone know of any online
> documents related to 6530 multipage terminal programming ?
>

> your help is greatly appreciated
>
> Benjamin Duong

--
Richard S. Pope - Gemini Communications Inc.
847-428-3299 - r...@geminic.com

Ben Duong

unread,
Jun 10, 2000, 3:00:00 AM6/10/00
to
Hello all,

Thank you all for your replies. The sample program that Jay sent me had
helped me a lot. I can now write to and read from the terminal in block
mode. Which is a big step.

I need to ask one more question. Does anyone know whether this block mode
I/O can be NOWAITED? If so, can someone give me some tips. I tried nowaited
I/O, but the screen would not display.

I am trying to use NOWAITED I/O because my program has to monitor a log file
for new events, and then send it to the terminal as it arrives. If the
terminal I/O is waited, my application must wait for the function key to
pressed, to complete the READ before it can go on to check for newly
inserted records on the log file.

Thanking you for your help.
Benjamin

Richard S. Pope wrote in message <39417894...@geminic.com>...

WOLF_LI

unread,
Jun 10, 2000, 3:00:00 AM6/10/00
to
I know it support the nowaited I/O, because I wrote a similar program like
VIEWSYS, which was written in 6530 Terminal Programming.

I think you can call Tandem HQ at Cupertino, ask their support people to
send you a copy. I know they still have the hard copy over there. Since I am
working in Unix and NT world, I have not kept all my Tandem manuals.

And that manual is a very good text book about how to write a 6530 program,
you can even write a multithreaded program with NOWAITED I/O in it, such as
refresh screen for every predefined seconds, using different video
attributes, even screen some part of the screen, etc.

Do not be shy about asking, give Tandem HQ a call.

As for the performance or reliability's concern, I think this 6530 is one of
the best out there, though presentation is not at lovely as X windows Motif,
but it does not have much overhead. And it works 6530 simulators, so Asynch
is out of the question.

Good luck ...


"Ben Duong" <bend...@ctimail.com> wrote in message
news:8hs0t7$6e5$1...@news.ctimail.com...

Art Rice

unread,
Jun 13, 2000, 3:00:00 AM6/13/00
to
On Sat, 10 Jun 2000 08:13:37 +0800, "Ben Duong" <bend...@ctimail.com>
wrote:

>Hello all,


>
>Thank you all for your replies. The sample program that Jay sent me had
>helped me a lot. I can now write to and read from the terminal in block
>mode. Which is a big step.
>
>I need to ask one more question. Does anyone know whether this block mode
>I/O can be NOWAITED? If so, can someone give me some tips. I tried nowaited
>I/O, but the screen would not display.
>
>I am trying to use NOWAITED I/O because my program has to monitor a log file
>for new events, and then send it to the terminal as it arrives. If the
>terminal I/O is waited, my application must wait for the function key to
>pressed, to complete the READ before it can go on to check for newly
>inserted records on the log file.
>
>Thanking you for your help.
>Benjamin

I'm sure it does. Otherwise VIEWPOINT would have a difficult time
displaying new events.

>
>Richard S. Pope wrote in message <39417894...@geminic.com>...
>>Ben,
>>
>>Not too much out there. The TS530 terminal manual has a summary of
>>escape sequences. Try asking GCSC for the manual; I have an internal
>>copy of a manual released a couple of years ago which has a good amount
>>of detail (but not perfect) whiuch they *might* be able to send to you.
>>If you get "we never heard of this" response, email me privately.
>>
>>Rich
>>
>>
>>
>>Ben Duong wrote:
>>>
>>> Hello all,
>>>
>>> I am trying to write a TAL block mode terminal program, but the manuals I
>>> have searched so far (Guardian Programmer's Guide, Asynchronous Terminal
>>> Programming guide, AM6520) don't have enough information to help me. The
>>> only I have managed to do so far is writing a screen to the terminal, but
>>> have yet to successfully read from the terminal. One of the above manuals
>>> mentioned another manual entitled "6530 multipage terminal programming
>>> guide", but this manual isn't on the CD-READ's CD.
>>>
>>> Does anyone have any sample programs, or does anyone know of any online
>>> documents related to 6530 multipage terminal programming ?
>>>
>>> your help is greatly appreciated
>>>
>>> Benjamin Duong
>>
>>--
>>Richard S. Pope - Gemini Communications Inc.
>>847-428-3299 - r...@geminic.com
>

--

Art Rice

unread,
Jun 13, 2000, 3:00:00 AM6/13/00
to
On Fri, 09 Jun 2000 19:05:06 -0400, QjoeW.Ep...@Tmindspring.Ycom
wrote:

>On Fri, 09 Jun 2000 16:14:36 GMT, MSage <michae...@my-deja.com>
>spewed forth:
>
>>You can probably talk to your sales rep. Ours managed to find a copy
>>and sent me a copy of it (I, in turn, have copied the copy and have
>>stored it in a "nice safe place" :-).
>
>I wonder why Tandem doesn't make the 6530 programming documentation
>more readily available for customers and s/w vendors? Maybe, someday,
>if that project I've heard rumors of to build a GUI-supportive
>terminal controller (ala some X-windows sort of setup) ever becomes a
>real product, they can expect customer to stop needing 6530 info. But
>in the meantime ... ??
>```
>Joe

They do make it available to Alliance Partners.

Crystal Point, Future Soft, Cail, Casemaker, ACI, among others all
have the specs and signed "Non-Disclosure" documents.

0 new messages