1
/* TN5250 - An implementation of the 5250 telnet protocol.
2
* Copyright (C) 1997,1998,1999 Michael Madore
4
* This file is part of TN5250.
6
* TN5250 is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation; either version 2.1, or (at your option)
11
* TN5250 is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this software; see the file COPYING. If not, write to
18
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19
* Boston, MA 02111-1307 USA
25
/* These are defined in Chapter 16 Data Streams Non-IPDS Mode with AS/400
26
* of the IPDS and SCS Technical Reference (IPDS_Tech_Ref.pdf)
28
#define SCS_NOOP 0x00 /* Null */
29
#define SCS_RPT 0x0A /* Repeat */
30
#define SCS_SW 0x2A /* Switch */
31
#define SCS_TRANSPARENT 0x03 /* ASCII transparency */
32
#define SCS_BELL 0x2F /* Bell/stop */
34
#define SCS_FF 0x0C /* Form Feed/page end */
35
#define SCS_RFF 0x3A /* Required Form Feed/required page end */
37
#define SCS_PP 0x34 /* Presentation Position */
38
#define SCS_RDPP 0x4C /* Relative move Down */
39
#define SCS_AHPP 0xC0 /* Absolute Horizontal move */
40
#define SCS_AVPP 0xC4 /* Absolute Vertical move */
41
#define SCS_RRPP 0xC8 /* Relative move to the Right */
42
#define SCS_SBS 0x38 /* subscript */
43
#define SCS_SPS 0x09 /* superscript */
44
#define SCS_NL 0x15 /* New Line */
45
#define SCS_IRS 0x1E /* Interchange Record Separator */
46
#define SCS_RNL 0x06 /* Required New Line */
47
#define SCS_HT 0x05 /* Horizontal Tab */
48
#define SCS_IT 0x39 /* Indent Tab */
49
#define SCS_LF 0x25 /* Line Feed */
56
/* This struct holds the callback functions and data used by scs_main ()
60
struct _Tn5250SCSPrivate *data;
62
void (*sic) (struct _Tn5250SCS * This);
63
void (*sea) (struct _Tn5250SCS * This);
64
void (*noop) (struct _Tn5250SCS * This);
65
void (*transparent) (struct _Tn5250SCS * This);
66
void (*spsu) (struct _Tn5250SCS * This);
67
void (*ppm) (struct _Tn5250SCS * This);
68
void (*spps) (struct _Tn5250SCS * This);
69
void (*shf) (struct _Tn5250SCS * This);
70
void (*svf) (struct _Tn5250SCS * This);
71
void (*ff) (struct _Tn5250SCS * This);
72
void (*rff) (struct _Tn5250SCS * This);
73
void (*sto) (struct _Tn5250SCS * This);
74
void (*shm) (struct _Tn5250SCS * This);
75
void (*svm) (struct _Tn5250SCS * This);
76
void (*sffc) (struct _Tn5250SCS * This);
77
void (*scgl) (struct _Tn5250SCS * This);
78
void (*scg) (struct _Tn5250SCS * This);
79
void (*sfg) (struct _Tn5250SCS * This);
80
void (*scd) (int *cpi);
81
void (*pp) (struct _Tn5250SCS * This);
82
void (*sbs) (struct _Tn5250SCS * This);
83
void (*sps) (struct _Tn5250SCS * This);
84
void (*nl) (struct _Tn5250SCS * This);
85
void (*irs) (struct _Tn5250SCS * This);
86
void (*rnl) (struct _Tn5250SCS * This);
87
void (*irt) (struct _Tn5250SCS * This);
88
void (*stab) (struct _Tn5250SCS * This);
89
void (*ht) (struct _Tn5250SCS * This);
90
void (*it) (struct _Tn5250SCS * This);
91
void (*sil) (struct _Tn5250SCS * This);
92
void (*lf) (struct _Tn5250SCS * This);
93
void (*cr) (struct _Tn5250SCS * This);
94
void (*ssld) (struct _Tn5250SCS * This);
95
void (*sls) (struct _Tn5250SCS * This);
96
void (*sgea) (struct _Tn5250SCS * This);
97
void (*process2b) (struct _Tn5250SCS * This);
98
void (*scsdefault) (struct _Tn5250SCS * This);
104
unsigned char curchar;
107
typedef struct _Tn5250SCS Tn5250SCS;
110
Tn5250SCS *tn5250_scs_new ();