TN5250SB

TN5250SB (RPGLE)



  X * SESSION1 BEGSR TN5250SB 13  
  X * RECVSEND1 BEGSR TN5250SB 78  
  X * SERVER BEGSR TN5250SB 232  
  X * SECUREENV BEGSR TN5250SB 2  
  X * SECURESSN BEGSR TN5250SB 2  
  X * SECUREGET BEGSR TN5250SB 2  
  X * SECURECLOSE BEGSR TN5250SB 2  
  X * RECVREAD BEGSR TN5250SB 7  
  X * SENDWRITE BEGSR TN5250SB 9  
  X * SENDWRITE2 BEGSR TN5250SB 9  
  X * COUNTRC BEGSR TN5250SB 7  
  X * OPTIONTEXT BEGSR TN5250SB 55  
  X * RECV#TN BEGSR TN5250SB 6  
  X * SEND#TN BEGSR TN5250SB 6  
  X * RECVSEND#TN BEGSR TN5250SB 6  
  X * SEND3 BEGSR TN5250SB 30  
  X * EOR BEGSR TN5250SB 7  
  X * SE BEGSR TN5250SB 123  
  X * SB BEGSR TN5250SB 15  
  X * WILL BEGSR TN5250SB 17  
  X * WONT BEGSR TN5250SB 9  
  X * DO BEGSR TN5250SB 17  
  X * DONT BEGSR TN5250SB 9  
  X * IAC BEGSR TN5250SB 22  
  X * RECEIVE BEGSR TN5250SB 32  
  X * PUTCHAR BEGSR TN5250SB 7  
  X * GETCHAR BEGSR TN5250SB 7  
  X * ROWCOL BEGSR TN5250SB 17  
  X * ROWCOLX BEGSR TN5250SB 10  
  X * SOHSR BEGSR TN5250SB 94  
  X * SOHSRX BEGSR TN5250SB 26  
  X * FFW BEGSR TN5250SB 16  
  X * FCW BEGSR TN5250SB 12  
  X * FCWWARN BEGSR TN5250SB 14  
  X * ATR BEGSR TN5250SB 8  
  X * POSLEN BEGSR TN5250SB 13  
  X * POSLEN2 BEGSR TN5250SB 12  
  X * CC1 BEGSR TN5250SB 64  
  X * CC2 BEGSR TN5250SB 21  
  X * ORDERS BEGSR TN5250SB 252  
  X * ORDERSWARN BEGSR TN5250SB 11  
  X * ORDERSWARN2 BEGSR TN5250SB 14  
  X * COMMANDS BEGSR TN5250SB 427  
  X * COMMANDSWARN BEGSR TN5250SB 11  
  X * COMMANDSWARN2 BEGSR TN5250SB 14  
  X * OPCODES BEGSR TN5250SB 123  
  X * OPCODESWARN BEGSR TN5250SB 11  
  X * RECORD BEGSR TN5250SB 40  
  X * RECORDWARN BEGSR TN5250SB 14  
  X * RECORDROUND BEGSR TN5250SB 21  
  X * CLEARERRCODE BEGSR TN5250SB 13  
  X * ADDMSGX BEGSR TN5250SB 225  
  X * RMVMSGX BEGSR TN5250SB 11  
  X * ADDFMTX BEGSR TN5250SB 31  
  X * RMVFMTX BEGSR TN5250SB 10  
  X * BUFFERHEX BEGSR TN5250SB 8  
  X * BUF2HEX BEGSR TN5250SB 8  
  X * HEXFILL BEGSR TN5250SB 40  
  X * HEXFILL8 BEGSR TN5250SB 4  
  X * HEXFILL9 BEGSR TN5250SB 4  
  X * HEXLEN BEGSR TN5250SB 8  
  X * NAMES BEGSR TN5250SB 8  
  X * NAMESX BEGSR TN5250SB 8  
  X * CREATE BEGSR TN5250SB 7  
  X * DELETE BEGSR TN5250SB 7  
  X * DELETEX BEGSR TN5250SB 7  
  X * SNDINPUT BEGSR TN5250SB 10  
  X * RCVINPUT BEGSR TN5250SB 31  
  X * SNDSCREEN BEGSR TN5250SB 59  
  X * RCVSCREEN BEGSR TN5250SB 123  
  X * TIMEOUTX BEGSR TN5250SB 24  
  X * INPUTALL BEGSR TN5250SB 27  
  X * INPUT1 BEGSR TN5250SB 25  
  X * INPUT2 BEGSR TN5250SB 32  
  X * INPUT3 BEGSR TN5250SB 32  
  X * INPUT4 BEGSR TN5250SB 114  
  X * INPUT5 BEGSR TN5250SB 95  
  X * SOHFXX BEGSR TN5250SB 76  
  X * FMTFIELDS BEGSR TN5250SB 57  
  X * FMTFIELDS2 BEGSR TN5250SB 56  
  X * SENDNONE BEGSR TN5250SB 4  
  X * SENDBUF2 BEGSR TN5250SB 15  
  X * SENDBUF3 BEGSR TN5250SB 18  
  X * WRSTOUT BEGSR TN5250SB 8  
  X * COLORS BEGSR TN5250SB 62  
  X * COLTAP BEGSR TN5250SB 15  
  X * SENDHTML BEGSR TN5250SB 618  
  X * SENDHTML2 BEGSR TN5250SB 922  
  X * REPLACE BEGSR TN5250SB 432  
  X * BUFVFORM BEGSR TN5250SB 79  
  X * BUFVFORMJS BEGSR TN5250SB 31  
  X * FMTIDX BEGSR TN5250SB 13  
  X * FMTIDXBYPASSX BEGSR TN5250SB 16  
  X * FMTIDXSCREENX BEGSR TN5250SB 43  
  X * SCREEN# BEGSR TN5250SB 614  
  X * SCREEN#DBCS BEGSR TN5250SB 416  
  X * SCREEN#DBCSX BEGSR TN5250SB 33  
  X * SCREEN#CMD BEGSR TN5250SB 98  
  X * SCREEN#CMDX BEGSR TN5250SB 31  
  X * SCREEN#PARM BEGSR TN5250SB 277  
  X * SCREEN#LABEL BEGSR TN5250SB 98  
  X * SCREEN#LABEL$ BEGSR TN5250SB 163  
  X * SCREEN#FKEY BEGSR TN5250SB 18  
  X * SCREEN#OPT BEGSR TN5250SB 418  
  X * SCREEN#OPTX BEGSR TN5250SB 8  
  X * SCREEN#MENUOPT BEGSR TN5250SB 157  
  X * SCREEN#SPECIAL BEGSR TN5250SB 240  
  X * SCREEN#MAILTO BEGSR TN5250SB 18  
  X * SCREEN#MAIL BEGSR TN5250SB 41  
  X * SCREEN#HTTP BEGSR TN5250SB 19  
  X * SCREEN#WWW BEGSR TN5250SB 25  
  X * SCREEN#LINK BEGSR TN5250SB 73  
  X * SCREEN#STOP BEGSR TN5250SB 209  
  X * SCREEN#STOPX BEGSR TN5250SB 7  
  X * KEYBOARD# BEGSR TN5250SB 243  
  X * KEYBOARD#KEYS BEGSR TN5250SB 53  
  X * KEYBOARD#CLOSE BEGSR TN5250SB 6  
  X * KEYS#F6 BEGSR TN5250SB 27  
  X * KEYS#F12 BEGSR TN5250SB 27  
  X * KEYS#PAGE BEGSR TN5250SB 15  
  X * KEYS#F18 BEGSR TN5250SB 27  
  X * KEYS#F24 BEGSR TN5250SB 27  
  X * KEYS#DUP BEGSR TN5250SB 24  
  X * KEYS#NEXT BEGSR TN5250SB 9  
  X * KEYS#PREV BEGSR TN5250SB 9  
  X * KEYS#SYSREQ BEGSR TN5250SB 8  
  X * KEYS#ATTN BEGSR TN5250SB 8  
  X * KEYS#ENTER BEGSR TN5250SB 20  
  X * KEYS#HELP BEGSR TN5250SB 24  
  X * KEYS#DIGITS BEGSR TN5250SB 65  
  X * KEYS#SPACE BEGSR TN5250SB 9  
  X * KEYS#WAIT BEGSR TN5250SB 40  
  X * KEYS#CLOSE BEGSR TN5250SB 9  
  X * KEYS#ROW BEGSR TN5250SB 4  
  X * KEYS#INPUT BEGSR TN5250SB 110  
  X * SUBMIT BEGSR TN5250SB 8  
  X * BUTTON BEGSR TN5250SB 10  
  X * DATA BEGSR TN5250SB 253  
  X * STRNUM BEGSR TN5250SB 27  
  X * *PSSR BEGSR TN5250SB 5  
  X  
  X * QSNDINPUTPARM PLIST TN5250SB 5  
  X * QRCVINPUTPARM PLIST TN5250SB 6  
  X * QSNDSCREENPARM PLIST TN5250SB 5  
  X * QRCVSCREENPARM PLIST TN5250SB 6  
  X * QCMDPARM PLIST TN5250SB 3  
  X * *ENTRY PLIST TN5250SB 3  
  X  
C          
C *COPYRIGHT JÜRGEN REULE 2019-2024
C          
C          
C       CLEAR   TN5250DS            
C          
C       MOVEL(P) NAMEADD SESSIONADD            
C       MOVEL(P) NAMEADDX SESSIONADDX            
C          
C *     --------------------------------------
C *     Sonderzeichen
C *     --------------------------------------
C       CLEAR   SRC1            
C       CLEAR   SRC2            
C       DO SRCLEN SRCNUM            
C       CAT SRCCHAR:0 SRC1            
C       ENDDO                
C          
C     *ZERO ADD 80 COLS            
C     *ZERO ADD 1 CURSOR            
C       CLEAR   RECVSEND            
C          
C       EXSR DATA              
C     *BLANKS IFNE METHOD              
C          
C *     --------------------------------------
C *     Smartphone (Kleiner Bildschirm)
C *     --------------------------------------
C     'Mobile' SCAN AGENT       77 66  
C   66 'Android' SCAN AGENT       77 66  
C   N66 'NetFront/' SCAN AGENT       77 66  
C   N66 'Opera Mobi' SCAN AGENT       77 66  
C   N66 'Opera Mini' SCAN AGENT       77 66  
C   N66 'IEMobile' SCAN AGENT       77 66  
C   N66 'Phone' SCAN AGENT       77 66  
C   N66 'iPhone' SCAN AGENT       77 66  
C   N66 'iPod' SCAN AGENT       77 66  
C     'iPad' SCAN AGENT       77 78  
C   78   SETOFF         66  
C   78   SETON         66  
C          
C *     --------------------------------------
C *     Anfrage melden
C *     --------------------------------------
C     'Web Explorer' SCAN AGENT       77 78  
C     *IN78 IFEQ *ON              
C       EVAL CMD        = 'MAIL SUBJECT(''+
C          Web Explorer'')'
C       CALL QCMDEXC QCMDPARM     77  
C       ENDIF                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     UPPER:LOWER XLATE SCRIPT SCRIPT            
C          
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     *ZERO IFEQ REMOTE              
C     '/.html' ANDEQ SCRIPT              
C       EVAL SCRIPT = '/i.html'
C       ENDIF                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     '/' IFEQ SCRIPT              
C       EVAL SCRIPT = '/.html'
C       ENDIF                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     '/.html' IFEQ SCRIPT              
C     *BLANKS ANDEQ PATH              
C       EVAL PATH = '/'
C       ENDIF                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     '/.html' IFNE SCRIPT              
C     '/' ANDEQ PATH              
C       EVAL PATH = ''
C       ENDIF                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     ' ' CHECKR '.html' LEN2            
C     ' ' CHECKR SCRIPT LEN3            
C     ' ' CHECKR PATH POSX            
C     LEN3 SUB LEN2 POS1            
C       ADD 1 POS1            
C       ADD 1 POSX            
C     '/' SCAN SCRIPT:POSX POS2     77 78  
C   N78 '.html' SCAN SCRIPT:POS1 POS2     77 78  
C   N78 1 ADD LEN3 POS2            
C     '.html' SCAN SCRIPT:POS1 POS3     77 78  
C   N78 1 ADD LEN3 POS3            
C     POS3 SUB POS2 SESSIONLENX            
C     *ZERO ADD POS2 SESSIONPOSX            
C          
C       SELECT    
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     SESSIONLENX WHENGE 1              
C     SESSIONLENX SUB 1 LEN3            
C     SESSIONPOSX ADD 1 POS3            
C     LEN3 COMP SESSION8LEN       72 72  
C   N72 LEN3 SUBST(P) SCRIPT:POS3 SESSION8     72  
C   72   CLEAR   SESSION8            
C          
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     *IN72 IFEQ *OFF              
C       EXSR NAMES              
C       EXSR SNDINPUT              
C   N72   EXSR RCVSCREEN              
C   N72 *ZERO COMP DTALEN       72  
C   72   EXSR DELETE              
C       ENDIF                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     *IN72 IFEQ *ON              
C       MOVEL(P) 'X' REDIRECT            
C       CLEAR   SESSION8            
C       MOVEL(P) '/' SESSIONADDXX            
C     PATH IFNE '/'              
C     PATH ANDNE *BLANKS              
C     SCRIPT OREQ '/.html'              
C       CLEAR   SESSIONADDXX            
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C     *ZERO WHENNE REMOTE              
C       MOVEL(P) 'X' REDIRECT            
C       CLEAR   SESSIONLENX            
C     *OFF DOUEQ ERR              
C       EXSR SESSION1              
C       MOVEL(P) '/' SESSIONADDXX            
C     SCRIPT IFEQ '/.html'              
C       CLEAR   SESSIONADDXX            
C       ENDIF                
C       EXSR NAMES              
C       EXSR CREATE              
C       ENDDO                
C *     --------------------------------------
C *     Session
C *     --------------------------------------
C       OTHER                
C       MOVEL(P) 'X' REDIRECT            
C       MOVEL(P) 'X' REDIRECTX            
C       ENDSL                
C *     --------------------------------------
C *     Ausgeben
C *     --------------------------------------
C     UPPER:LOWER XLATE SESSION8 SESSION8            
C       EXSR SENDHTML              
C       ELSE                
C *     --------------------------------------
C *     Server
C *     --------------------------------------
C       OPEN TN5250P       77  
C     REMOTEX CHAIN TN5250P       72 72  
C       CLOSE TN5250P       77  
C     *BLANKS COMP RMTDEBUG       73 73  
C     *BLANKS COMP RMTDEBUG2       74 74  
C       EXSR NAMESX              
C   N72   EXSR SERVER              
C       EXSR DELETEX              
C       ENDIF                
C       SETON         LR  
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     SESSION1 BEGSR                
C       CLEAR   SESSION8            
C *     --------------------------------------
C *     Neue Session erzeugen
C *     --------------------------------------
C       DO SESSION8LEN              
C       CALLP(E) RANDOM ( SEED:RANDNUM:FEEDBACK)
C     RANDCHARSLEN MULT RANDNUM RAND            
C       ADD 1 RAND            
C     1 SUBST RANDCHARS:RAND CHAR            
C       CAT CHAR:0 SESSION8            
C       ENDDO                
C       ENDSR                
C          
  X * SERVER EXSR TN5250SB    
  X * SERVER EXSR TN5250SB    
  X  
C     RECVSEND1 BEGSR                
C       EXSR SOHSRX              
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C     *ZERO ADD 1 POS            
C       MOVEL(P) NULL$ READWAIT            
C       TIME   DATETIME3            
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C     INPUTWAIT2 COMP INPUTWAIT       78  
C   78 *ZERO ADD INPUTWAIT INPUTWAITX            
C   N78 *ZERO ADD INPUTWAIT2 INPUTWAITX            
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       EXSR RCVINPUT              
C       EXSR RMVFMTX              
C       EXSR RMVMSGX              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C     *IN72 DOWEQ *OFF              
C       EXSR INPUTALL              
C       EXSR RECVREAD              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       TIME   DATETIME            
C   N71   MOVE DATETIME DATETIME3            
C     DATETIME3 ADDDUR INPUTWAIT2:*S DATETIME2            
C     DATETIME2 COMP DATETIME       78 78  
C   N78 DATETIME2 SUBDUR DATETIME INPUTWAITX:*S     78  
C   78   SETON         72  
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C     INPUTWAITX COMP INPUTWAIT       78  
C   78 *ZERO ADD INPUTWAIT INPUTWAITX            
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       EXSR TIMEOUTX              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       EXSR CLEARERRCODE              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C     *IN71 DOWEQ *OFF              
C       EXSR RECEIVE              
C   N71   EXSR RECVREAD              
C       ENDDO                
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C   N72   EXSR COUNTRC              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       EXSR ADDMSGX              
C       EXSR ADDFMTX              
C       EXSR SNDSCREEN              
C   N72   EXSR RCVINPUT              
C       EXSR RMVFMTX              
C       EXSR RMVMSGX              
C       ENDDO                
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     SERVER BEGSR                
C          
C /IF DEFINED(*V5R2M0)
C          
C     *BLANKS COMP RMTSECURE       11 11  
C       EVAL RC = OK
C          
C *     --------------------------------------
C *     Werte initialisieren
C *     --------------------------------------
C     *ZERO ADD -1 SD            
C       MOVE *NULL RESX            
C          
C *     --------------------------------------
C *     Hinweise einstellen
C *     --------------------------------------
C     *ZERO ADD AINUMERICSERV HINTSFLAGS            
C     *ZERO ADD AFUNSPEC HINTSFAMILY            
C     *ZERO ADD SOCKSTREAM HINTSSOCKTYPE            
C     *ZERO ADD IPPROTOIP HINTSPROTOCOL            
C          
C *     --------------------------------------
C *     Hinweise einstellen
C *     --------------------------------------
C       CLEAR   HINTSADDRLEN            
C       CLEAR   HINTSCANONNAME            
C       CLEAR   HINTSADDR            
C       CLEAR   HINTSNEXT            
C          
C *     --------------------------------------
C *     Adresse im IPv4-Format?
C *     --------------------------------------
C       IF INETPTON(AFINET:RMTHOST:SERVERADDR) = 1
C          
C       ADD AINUMERICHOST HINTSFLAGS            
C     *ZERO ADD AFINET HINTSFAMILY            
C          
C       ELSE                
C *     --------------------------------------
C *     Adresse im IPv6-Format?
C *     --------------------------------------
C       IF INETPTON(AFINET6:RMTHOST:SERVERADDR6) = 1
C          
C       ADD AINUMERICHOST HINTSFLAGS            
C     *ZERO ADD AFINET6 HINTSFAMILY            
C          
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Adreßinformationen abrufen
C *     --------------------------------------
C       IF GETADDRINFO(RMTHOST:
C             %CHAR(RMTPORT):
C                   HINTS:RESX) = *ZERO
C          
C *     --------------------------------------
C *     Sichere Umgebung initialisieren
C *     --------------------------------------
C       EXSR SECUREENV              
C     OK IFEQ RC              
C          
C *     --------------------------------------
C *     Socket erstellen
C *     --------------------------------------
C       EVAL SD = SOCKET(RESFAMILY:
C                   RESSOCKTYPE:
C                   RESPROTOCOL)
C     *ZERO IFLE SD              
C *     --------------------------------------
C *     Verbinden
C *     --------------------------------------
C       IF CONNECT(SD:RESADDR:RESADDRLEN) >= *ZERO
C          
C *     --------------------------------------
C *     Nicht blockieren
C *     --------------------------------------
C       EVAL FLAGS = FCNTL ( SD:GETFL)
C     *ZERO IFLE FLAGS              
C       ADD NONBLOCK FLAGS            
C       IF FCNTL(SD:SETFL:FLAGS) >= *ZERO
C          
C *     --------------------------------------
C *     Sichere Session initialisieren
C *     --------------------------------------
C       EXSR SECURESSN              
C     OK IFEQ RC              
C          
C *     --------------------------------------
C *     Sichere Werte ermitteln
C *     --------------------------------------
C       EXSR SECUREGET              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       SELECT    
C     RESFAMILY WHENEQ AFINET              
C       MOVEL(P) '4' ADDRFAMILY            
C     RESFAMILY WHENEQ AFINET6              
C       MOVEL(P) '6' ADDRFAMILY            
C       OTHER                
C       MOVEL(P) '?' ADDRFAMILY            
C       ENDSL                
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       EXSR RECVSEND1              
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Sichere Session und Umgebung schließen
C *     --------------------------------------
C       EXSR SECURECLOSE              
C          
C *     --------------------------------------
C *     Socket schließen
C *     --------------------------------------
C     -1 IFNE SD              
C       EVAL RC = CLOSE(SD)
C       ENDIF                
C          
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Adreßinformationen freigeben
C *     --------------------------------------
C     *NULL IFNE RESX              
C       CALLP(E) FREEADDRINFO(RESX)
C       ENDIF                
C          
C /ELSE
C          
C     *BLANKS COMP RMTSECURE       11 11  
C       EVAL RC = OK
C          
C *     --------------------------------------
C *     Werte initialisieren
C *     --------------------------------------
C     *ZERO ADD -1 SD            
C          
C *     --------------------------------------
C *     Host-Adresse ermitteln
C *     --------------------------------------
C       EVAL ADDRX = INETADDR(RMTHOST)
C     INADDRNONE IFEQ ADDRX              
C       EVAL HOSTX = GETHOSTBYNAME(RMTHOST)
C     *NULL IFNE HOSTX              
C       EVAL ADDRX = HOSTADDRENTRY
C       ENDIF                
C       ENDIF                
C          
C     INADDRNONE IFNE ADDRX              
C *     --------------------------------------
C *     Sichere Umgebung initialisieren
C *     --------------------------------------
C       EXSR SECUREENV              
C     OK IFEQ RC              
C          
C *     --------------------------------------
C *     Socket erstellen
C *     --------------------------------------
C       EVAL SD = SOCKET(AFINET:SOCKSTREAM:IPPROTOIP)
C     *ZERO IFLE SD              
C          
C       EVAL SOCKADDR = SINPTR
C          
C     *ZERO ADD AFINET SINFAMILY            
C     *ZERO ADD RMTPORT SINPORT            
C     *ZERO ADD ADDRX SINADDR            
C       MOVEL(P) *ALLX'00' SINZERO            
C          
C *     --------------------------------------
C *     Verbinden
C *     --------------------------------------
C       IF CONNECT(SD:SOCKADDR:SOCKADDRINLEN) >= *ZERO
C          
C *     --------------------------------------
C *     Nicht blockieren
C *     --------------------------------------
C       EVAL FLAGS = FCNTL ( SD:GETFL)
C     *ZERO IFLE FLAGS              
C       ADD NONBLOCK FLAGS            
C       IF FCNTL(SD:SETFL:FLAGS) >= *ZERO
C          
C *     --------------------------------------
C *     Sichere Session initialisieren
C *     --------------------------------------
C       EXSR SECURESSN              
C     OK IFEQ RC              
C          
C *     --------------------------------------
C *     Sichere Werte ermitteln
C *     --------------------------------------
C       EXSR SECUREGET              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       MOVEL(P) '4' ADDRFAMILY            
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       EXSR RECVSEND1              
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Sichere Session und Umgebung schließen
C *     --------------------------------------
C       EXSR SECURECLOSE              
C          
C *     --------------------------------------
C *     Socket schließen
C *     --------------------------------------
C     -1 IFNE SD              
C       EVAL RC = CLOSE(SD)
C       ENDIF                
C          
C       ENDIF                
C       ENDIF                
C          
C /ENDIF
C          
C       ENDSR                
C          
C /IF DEFINED(TN5250SNO)
C          
  X * SERVER EXSR TN5250SB    
  X * SERVER EXSR TN5250SB    
  X  
C     SECUREENV BEGSR                
C       ENDSR                
C          
  X * SERVER EXSR TN5250SB    
  X * SERVER EXSR TN5250SB    
  X  
C     SECURESSN BEGSR                
C       ENDSR                
C          
  X * SERVER EXSR TN5250SB    
  X * SERVER EXSR TN5250SB    
  X  
C     SECUREGET BEGSR                
C       ENDSR                
C          
  X * SERVER EXSR TN5250SB    
  X * SERVER EXSR TN5250SB    
  X  
C     SECURECLOSE BEGSR                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     RECVREAD BEGSR                
C *     --------------------------------------
C *     Lesen
C *     --------------------------------------
C       EVAL COUNT = RECV  (SD:CHARPTR:1:0)
C     *ZERO COMP COUNT       71 71  
C       ENDSR                
C          
  X * SEND3 EXSR TN5250SB    
  X  
C     SENDWRITE BEGSR                
C *     --------------------------------------
C *     Schreiben
C *     --------------------------------------
C       EVAL COUNT = SEND  (SD:CHARDSPTR:3:0)
C     3 IFGT COUNT              
C     'SENDWRITE' DSPLY                
C       ENDIF                
C       ENDSR                
C          
  X * SE EXSR TN5250SB    
  X * SE EXSR TN5250SB    
  X * SENDBUF3 EXSR TN5250SB    
  X  
C     SENDWRITE2 BEGSR                
C *     --------------------------------------
C *     Schreiben
C *     --------------------------------------
C       EVAL COUNT = SEND  (SD:BUF2TEXTPTR:BUF2LEN:0)
C     BUF2LEN IFGT COUNT              
C     'SENDWRITE2' DSPLY                
C       ENDIF                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     COUNTRC BEGSR                
C *     --------------------------------------
C *     Anzahl
C *     --------------------------------------
C     *ZERO COMP COUNT       77  
C   77   SETON         72  
C       ENDSR                
C          
C /ENDIF
C          
  X * SEND3 EXSR TN5250SB    
  X * SB EXSR TN5250SB    
  X  
C     OPTIONTEXT BEGSR                
C *     --------------------------------------
C *     Option als Text
C *     --------------------------------------
C       SELECT    
C     CHAR WHENEQ BINARY$              
C       MOVEL(P) BINARY# OPTION#            
C     CHAR WHENEQ TERMTYPE$              
C       MOVEL(P) TERMTYPE# OPTION#            
C     CHAR WHENEQ ENDOFRECORD$              
C       MOVEL(P) ENDOFRECORD# OPTION#            
C     CHAR WHENEQ NEWENVIRON$              
C       MOVEL(P) NEWENVIRON# OPTION#            
C          
C     CHAR WHENEQ TIMINGMARK$              
C       MOVEL(P) TIMINGMARK# OPTION#            
C          
C     CHAR WHENEQ ECHO$              
C       MOVEL(P) ECHO# OPTION#            
C     CHAR WHENEQ SUPPRESSGA$              
C       MOVEL(P) SUPPRESSGA# OPTION#            
C     CHAR WHENEQ STATUSX$              
C       MOVEL(P) STATUSX# OPTION#            
C     CHAR WHENEQ WINDSIZE$              
C       MOVEL(P) WINDSIZE# OPTION#            
C     CHAR WHENEQ TERMSPEED$              
C       MOVEL(P) TERMSPEED# OPTION#            
C     CHAR WHENEQ REMOTEFLCTRL$              
C       MOVEL(P) REMOTEFLCTRL# OPTION#            
C     CHAR WHENEQ LINEMODE$              
C       MOVEL(P) LINEMODE# OPTION#            
C     CHAR WHENEQ XDISPLOC$              
C       MOVEL(P) XDISPLOC# OPTION#            
C     CHAR WHENEQ ENVIRON$              
C       MOVEL(P) ENVIRON# OPTION#            
C          
C     CHAR WHENEQ AUTHENTIC$              
C       MOVEL(P) AUTHENTIC# OPTION#            
C     CHAR WHENEQ ENCRYPT$              
C       MOVEL(P) ENCRYPT# OPTION#            
C     CHAR WHENEQ COMPORT$              
C       MOVEL(P) COMPORT# OPTION#            
C          
C     CHAR WHENEQ EXOPL$              
C       MOVEL(P) EXOPL# OPTION#            
C       OTHER                
C       MOVEL(P) CHAR LENCHAR            
C       EVAL OPTION# = %CHAR(LENNUM)
C       ENDSL                
C     *OFF IFNE *OFF              
C       MOVEL(P) CHAR LENCHAR            
C       EVAL OPTION# = %TRIM(OPTION#)+
C            ' ('+%CHAR(LENNUM)+')'
C       ENDIF                
C       ENDSR                
C          
  X * SEND3 EXSR TN5250SB    
  X * SE EXSR TN5250SB    
  X  
C     RECV#TN BEGSR                
C     *ZERO ADD 40 COLORNUM            
C       EXSR RECVSEND#TN              
C       EVAL RECVSEND    = BUF3 + '<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * SEND3 EXSR TN5250SB    
  X * SE EXSR TN5250SB    
  X * SE EXSR TN5250SB    
  X  
C     SEND#TN BEGSR                
C     *ZERO ADD 50 COLORNUM            
C       EXSR RECVSEND#TN              
C       EVAL RECVSEND    = BUF3 + '<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * RECV#TN EXSR TN5250SB    
  X * SEND#TN EXSR TN5250SB    
  X  
C     RECVSEND#TN BEGSR                
C       EVAL BUF3 = %REPLACE(
C          '<b class="c'+%CHAR(COLORNUM)+'">'+
C                %SUBST(BUF3:1:BUF3LEN)+'</b>':
C           BUF3:1:BUF3LEN)
C       ENDSR                
C          
  X * WILL EXSR TN5250SB    
  X * WONT EXSR TN5250SB    
  X * DO EXSR TN5250SB    
  X * DONT EXSR TN5250SB    
  X  
C     SEND3 BEGSR                
C       EXSR OPTIONTEXT              
C *     --------------------------------------
C *     Bytes senden
C *     --------------------------------------
C       EVAL RECVTEXT = IAC#+' '+%TRIMR(COMMAND#)+
C           ' '+%TRIMR(OPTION#)
C          
C       EVAL SENDTEXT = IAC#+' '+%TRIMR(COMMAND2#)+
C           ' '+%TRIMR(OPTION#)
C          
C       EVAL BUF3 = %TRIMR ( RECVMSG)
C   73   EXSR RECV#TN              
C          
C       EVAL BUF3 = %TRIMR ( SENDMSG)
C   73   EXSR SEND#TN              
C          
C *     --------------------------------------
C *     Bytes senden
C *     --------------------------------------
C       MOVEL(P) IAC$ CHAR1            
C       MOVEL(P) ACTION CHAR21            
C       MOVEL(P) CHAR CHAR22            
C       EXSR SENDWRITE              
C          
C *     --------------------------------------
C *     Bytes senden
C *     --------------------------------------
C       CLEAR   MODE            
C       ENDSR                
C          
  X * IAC EXSR TN5250SB    
  X  
C     EOR BEGSR                
C       CLEAR   MODE            
C *     --------------------------------------
C *     EOR
C *     --------------------------------------
C       EXSR RECORD              
C       ENDSR                
C          
  X * IAC EXSR TN5250SB    
  X  
C     SE BEGSR                
C       MOVEL(P) CHARX CHAR            
C *     --------------------------------------
C *     SE
C *     --------------------------------------
C     POS2 IFLT POS              
C     BUFFER(POS2) IFEQ SEND$              
C       EVAL RECVTEXT =          %TRIMR(RECVTEXT)+
C           ' '+%TRIMR(SEND#)
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     SE
C *     --------------------------------------
C       SUB 1 POS            
C     POS2 DO POS POSX            
C       MOVEL(P) BUFFER(POSX) CHARX            
C       SELECT    
C     CHARX WHENEQ VAR$              
C       MOVEL(P) VAR# OPTION2#            
C     CHARX WHENEQ ESC$              
C       MOVEL(P) ESC# OPTION2#            
C     CHARX WHENEQ USERVAR$              
C       MOVEL(P) USERVAR# OPTION2#            
C     CHARX WHENEQ VALUE$              
C       MOVEL(P) VALUE# OPTION2#            
C       OTHER                
C     *BLANKS IFNE OPTION2#              
C     '...' ANDNE OPTION2#              
C       MOVEL(P) '...' OPTION2#            
C       EVAL RECVTEXT =          %TRIMR(RECVTEXT)+' '+
C               %TRIMR(OPTION2#)
C       CLEAR   OPTION2#            
C       ENDIF                
C       ENDSL                
C       EVAL RECVTEXT =          %TRIMR(RECVTEXT)+' '+
C               %TRIMR(OPTION2#)
C       ENDDO                
C       EVAL RECVTEXT =          %TRIMR(RECVTEXT)+' '+
C                  IAC#+' '+%TRIMR(SE#)
C          
C       EVAL BUF3 = %TRIMR ( RECVMSG)
C   73   EXSR RECV#TN              
C          
C       SELECT    
C *     --------------------------------------
C *     TERMINAL-TYPE
C *     --------------------------------------
C     TERMTYPE$ WHENEQ CHAR              
C       EVAL BUF2 = %TRIMR ( RMTTYPE)
C          
C     *BLANKS IFEQ BUF2              
C       EVAL BUF2 = IBM3179#
C       ENDIF                
C          
C       EVAL SENDTEXT = IAC#+' '+%TRIMR(SB#)+
C           ' '+%TRIMR(OPTION#)+
C           ' '+%TRIMR(IS#)+
C           ' '+%TRIMR(BUF2)+' '+
C                  IAC#+' '+%TRIMR(SE#)
C          
C       EVAL BUF3 = %TRIMR ( SENDMSG)
C   73   EXSR SEND#TN              
C          
C *     --------------------------------------
C *     Daten in ASCII umsetzen
C *     --------------------------------------
C       CALLP(E) QTQCVRT ( EBCDIC:0:
C         BUF2TEXT:BUF2LEN:
C         ASCII:0:0:BUF2LEN:
C         BUF2TEXT:RCVLEN:
C         DUMMY:FB)
C          
C       EVAL BUF2 = IAC$+SB$+CHAR+IS$+BUF2+
C              IAC$+SE$
C          
C       EXSR SENDWRITE2              
C          
C *     --------------------------------------
C *     NEW-ENVIRON
C *     --------------------------------------
C     NEWENVIRON$ WHENEQ CHAR              
C       EVAL BUF2 = %TRIMR ( RMTDEVNAME)
C     DEVNAMEX COMP 1       78  
C       ADD 1 DEVNAMEX            
C   N78   EVAL BUF2 =
C       BUF2 + %CHAR(DEVNAMEX)
C          
C       EVAL SENDTEXT = IAC#+' '+%TRIMR(SB#)+
C           ' '+%TRIMR(OPTION#)+
C           ' '+%TRIMR(IS#)+
C           ' '+%TRIMR(USERVAR#)+
C           ' '+%TRIMR(DEVNAME#)+
C           ' '+%TRIMR(VALUE#)+
C           ' '+%TRIMR(BUF2)+' '+
C                  IAC#+' '+%TRIMR(SE#)
C          
C       EVAL BUF3 = %TRIMR ( SENDMSG)
C   73   EXSR SEND#TN              
C          
C *     --------------------------------------
C *     Daten in ASCII umsetzen
C *     --------------------------------------
C       CALLP(E) QTQCVRT ( EBCDIC:0:
C         BUF2TEXT:BUF2LEN:
C         ASCII:0:0:BUF2LEN:
C         BUF2TEXT:RCVLEN:
C         DUMMY:FB)
C          
C       EVAL BUF2 = IAC$+SB$+CHAR+IS$+
C **        D E V N A M E
C          USERVAR$+X'4445564E414D45'+
C            VALUE$+BUF2+
C              IAC$+SE$
C          
C       EXSR SENDWRITE2              
C       ENDSL                
C *     --------------------------------------
C *     Position zurücksetzen
C *     --------------------------------------
C       CLEAR   MODE            
C     *ZERO ADD POS2 POS            
C       ENDSR                
C          
  X * RECEIVE EXSR TN5250SB    
  X  
C     SB BEGSR                
C       MOVEL(P) SB# COMMAND#            
C *     --------------------------------------
C *     SB
C *     --------------------------------------
C       EXSR OPTIONTEXT              
C       EVAL RECVTEXT = IAC#+' '+%TRIMR(COMMAND#)+
C           ' '+%TRIMR(OPTION#)
C *     --------------------------------------
C *     Position sichern
C *     --------------------------------------
C       CLEAR   MODE            
C     *ZERO ADD POS POS2            
C       MOVEL(P) CHAR CHARX            
C       ENDSR                
C          
  X * RECEIVE EXSR TN5250SB    
  X  
C     WILL BEGSR                
C       MOVEL(P) WILL# COMMAND#            
C *     --------------------------------------
C *     WILL
C *     --------------------------------------
C     BINARY$ IFEQ CHAR              
C     TERMTYPE$ OREQ CHAR              
C     ENDOFRECORD$ OREQ CHAR              
C     NEWENVIRON$ OREQ CHAR              
C       MOVEL(P) DO$ ACTION            
C       MOVEL(P) DO# COMMAND2#            
C       ELSE                
C       MOVEL(P) DONT$ ACTION            
C       MOVEL(P) DONT# COMMAND2#            
C       ENDIF                
C       EXSR SEND3              
C       ENDSR                
C          
  X * RECEIVE EXSR TN5250SB    
  X  
C     WONT BEGSR                
C       MOVEL(P) WONT# COMMAND#            
C *     --------------------------------------
C *     WONT
C *     --------------------------------------
C       MOVEL(P) DONT$ ACTION            
C       MOVEL(P) DONT# COMMAND2#            
C       EXSR SEND3              
C       ENDSR                
C          
  X * RECEIVE EXSR TN5250SB    
  X  
C     DO BEGSR                
C       MOVEL(P) DO# COMMAND#            
C *     --------------------------------------
C *     DO
C *     --------------------------------------
C     BINARY$ IFEQ CHAR              
C     TERMTYPE$ OREQ CHAR              
C     ENDOFRECORD$ OREQ CHAR              
C     NEWENVIRON$ OREQ CHAR              
C       MOVEL(P) WILL$ ACTION            
C       MOVEL(P) WILL# COMMAND2#            
C       ELSE                
C       MOVEL(P) WONT$ ACTION            
C       MOVEL(P) WONT# COMMAND2#            
C       ENDIF                
C       EXSR SEND3              
C       ENDSR                
C          
  X * RECEIVE EXSR TN5250SB    
  X  
C     DONT BEGSR                
C       MOVEL(P) DONT# COMMAND#            
C *     --------------------------------------
C *     WONT
C *     --------------------------------------
C       MOVEL(P) WONT$ ACTION            
C       MOVEL(P) WONT# COMMAND2#            
C       EXSR SEND3              
C       ENDSR                
C          
  X * RECEIVE EXSR TN5250SB    
  X  
C     IAC BEGSR                
C *     --------------------------------------
C *     IAC
C *     --------------------------------------
C       SELECT    
C     CHAR WHENEQ EOR$              
C       EXSR EOR              
C     CHAR WHENEQ SE$              
C       EXSR SE              
C          
C     CHAR WHENEQ SB$              
C     CHAR OREQ WILL$              
C     CHAR OREQ WONT$              
C     CHAR OREQ DO$              
C     CHAR OREQ DONT$              
C       MOVEL(P) CHAR MODE            
C          
C     CHAR WHENEQ IAC$              
C       EXSR PUTCHAR              
C       CLEAR   MODE            
C       ENDSL                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     RECEIVE BEGSR                
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       SELECT    
C     MODE WHENEQ SB$              
C       EXSR SB              
C     MODE WHENEQ WILL$              
C       EXSR WILL              
C     MODE WHENEQ WONT$              
C       EXSR WONT              
C     MODE WHENEQ DO$              
C       EXSR DO              
C     MODE WHENEQ DONT$              
C       EXSR DONT              
C          
C     MODE WHENEQ IAC$              
C       EXSR IAC              
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C     CHAR WHENEQ IAC$              
C       MOVEL(P) IAC$ MODE            
C          
C *     --------------------------------------
C *     Empfangen
C *     --------------------------------------
C       OTHER                
C       EXSR PUTCHAR              
C       ENDSL                
C       ENDSR                
C          
  X * IAC EXSR TN5250SB    
  X * RECEIVE EXSR TN5250SB    
  X  
C     PUTCHAR BEGSR                
C *     --------------------------------------
C *     Zeichen aufnehmen
C *     --------------------------------------
C       MOVEL(P) CHAR BUFFER(POS)            
C       ADD 1 POS            
C       ENDSR                
C          
  X * ROWCOL EXSR TN5250SB    
  X * ROWCOL EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X * FFW EXSR TN5250SB    
  X * FFW EXSR TN5250SB    
  X * FCW EXSR TN5250SB    
  X * FCW EXSR TN5250SB    
  X * ATR EXSR TN5250SB    
  X * POSLEN EXSR TN5250SB    
  X * POSLEN EXSR TN5250SB    
  X * CC1 EXSR TN5250SB    
  X * CC1 EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X * RCVSCREEN EXSR TN5250SB    
  X  
C     GETCHAR BEGSR                
C *     --------------------------------------
C *     Zeichen holen
C *     --------------------------------------
C       MOVEL(P) BUFFER(POS) CHAR            
C       ADD 1 POS            
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X  
C     ROWCOL BEGSR                
C *     --------------------------------------
C *     Zeile und Spalte lesen
C *     --------------------------------------
C       MOVEL(P) CHAR LENCHAR            
C     LENNUM MULT COLS SCNPOS2            
C       SUB COLS SCNPOS2            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Zeile und Spalte lesen
C *     --------------------------------------
C       MOVEL(P) CHAR LENCHAR            
C       ADD LENNUM SCNPOS2            
C       EXSR GETCHAR              
C          
C       ENDSR                
C          
  X * FMTFIELDS EXSR TN5250SB    
  X * FMTFIELDS EXSR TN5250SB    
  X  
C     ROWCOLX BEGSR                
C *     --------------------------------------
C *     Zeile und Spalte ermitteln
C *     --------------------------------------
C       SUB 1 SCNPOS2            
C       ADD COLS SCNPOS2            
C     SCNPOS2 DIV COLS ROW            
C       MVR   COL            
C       ADD 1 COL            
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X  
C     SOHSR BEGSR                
C       SUB LENNUM POS            
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C       EXSR SOHSRX              
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 1              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 2              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 3              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 4              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 5              
C       EXSR GETCHAR              
C          
C       TESTB SOHF24$ CHAR     64  
C       TESTB SOHF23$ CHAR     63  
C       TESTB SOHF22$ CHAR     62  
C       TESTB SOHF21$ CHAR     61  
C       TESTB SOHF20$ CHAR     60  
C       TESTB SOHF19$ CHAR     59  
C       TESTB SOHF18$ CHAR     58  
C       TESTB SOHF17$ CHAR     57  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 6              
C       EXSR GETCHAR              
C          
C       TESTB SOHF16$ CHAR     56  
C       TESTB SOHF15$ CHAR     55  
C       TESTB SOHF14$ CHAR     54  
C       TESTB SOHF13$ CHAR     53  
C       TESTB SOHF12$ CHAR     52  
C       TESTB SOHF11$ CHAR     51  
C       TESTB SOHF10$ CHAR     50  
C       TESTB SOHF9$ CHAR     49  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 7              
C       EXSR GETCHAR              
C          
C       TESTB SOHF8$ CHAR     48  
C       TESTB SOHF7$ CHAR     47  
C       TESTB SOHF6$ CHAR     46  
C       TESTB SOHF5$ CHAR     45  
C       TESTB SOHF4$ CHAR     44  
C       TESTB SOHF3$ CHAR     43  
C       TESTB SOHF2$ CHAR     42  
C       TESTB SOHF1$ CHAR     41  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     LENNUM IFGE 8              
C       SUB 8 POS            
C       ADD 1 POS            
C       ADD LENNUM POS            
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X * SOHSR EXSR TN5250SB    
  X  
C     SOHSRX BEGSR                
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C       SETOFF         64 63  
C       SETOFF         62 61  
C       SETOFF         60 59  
C       SETOFF         58 57  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C       SETOFF         56 55  
C       SETOFF         54 53  
C       SETOFF         52 51  
C       SETOFF         50 49  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C       SETOFF         48 47  
C       SETOFF         46 45  
C       SETOFF         44 43  
C       SETOFF         42 41  
C          
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X  
C     FFW BEGSR                
C *     --------------------------------------
C *     FFW
C *     --------------------------------------
C     CHAR IFGE FFW$              
C     CHAR ANDLT FCW$              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       EXSR GETCHAR              
C       MOVEL(P) LENCHAR2 FMTFFW(FMTX)            
C       TESTB FFW1MDT FMTFFW1(FMTX)     78  
C   78   MOVEL(P) 'X' MDTX            
C       CLEAR   FFWX            
C       ENDIF                
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X  
C     FCW BEGSR                
C *     --------------------------------------
C *     FCW FCW ...
C *     --------------------------------------
C     CHAR DOWGE FCW$              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       EXSR GETCHAR              
C       EXSR FCWWARN              
C       ENDDO                
C       ENDSR                
C          
  X * FCW EXSR TN5250SB    
  X  
C     FCWWARN BEGSR                
C     LENCHAR2 IFNE X'8100'              
C     LENCHAR2 ANDNE X'8280'              
C *     --------------------------------------
C *     Warnen
C *     --------------------------------------
C   74   EVAL RECVSEND =  '****FCW****'+
C            ' ' + %CHAR(POS-3)+
C            ' ' +%TRIMR(FCW#)+
C            ' ' + %CHAR(LENNUM21)+
C            ' ' + %CHAR(LENNUM22)+'<br>§'+
C       RECVSEND
C       ENDIF                
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X  
C     ATR BEGSR                
C *     --------------------------------------
C *     Attribut
C *     --------------------------------------
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X  
C     POSLEN BEGSR                
C *     --------------------------------------
C *     Position und Länge
C *     --------------------------------------
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       EXSR GETCHAR              
C     *ZERO ADD SCNPOS FMTPOS(FMTX)            
C     *ZERO ADD LENNUM2 FMTLEN(FMTX)            
C     SCNPOS ADD LENNUM2 POS2            
C       SUBST(P) ATR$ SCREEN(POS2)     77  
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X  
C     POSLEN2 BEGSR                
C     FMTX SUB 1 IDX2            
C *     --------------------------------------
C *     Position belegt?
C *     --------------------------------------
C       DO IDX2 IDX            
C     FMTPOS(IDX) IFEQ FMTPOS(FMTX)              
C       MOVEL(P) FMTTAB(FMTX) FMTTAB(IDX)            
C     *ZERO ADD 1 FFWX            
C       ENDIF                
C       ENDDO                
C       ENDSR                
C          
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X  
C     CC1 BEGSR                
C *     --------------------------------------
C *     CC1
C *     --------------------------------------
C       MOVEL(P) CC1# CC#            
C       MOVEL(P) CHAR CC1SAVE            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     CC2
C *     --------------------------------------
C       MOVEL(P) CC2# CC#            
C       MOVEL(P) CHAR CC2SAVE            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     CC1
C *     --------------------------------------
C **     842    0   1            
C **     1-1 CLRALL --  A0     35  
C **     1-0 CLRMOD 20  80     34 34  
C **     -11 MDTALL --  60     33  
C **     -10 MDTNBY 20  40     32 32  
C **     101 MDTNBY 40  A0     32 32  
C **     *** LOCKCC --  E0     31  
C          
C *     --------------------------------------
C *     CC1
C *     --------------------------------------
C       TESTB CLRALL CC1SAVE     35  
C       TESTB CLRMOD1 CC1SAVE     34  
C   34   TESTB CLRMOD0 CC1SAVE     34  
C          
C       TESTB MDTALL CC1SAVE     33  
C       TESTB MDTNBY1 CC1SAVE     32  
C   32   TESTB MDTNBY0 CC1SAVE     32  
C   35   TESTB MDTNBY5 CC1SAVE     32  
C          
C       TESTB LOCKCC CC1SAVE     31 31  
C          
C       DO FMTX IDX            
C *     --------------------------------------
C *     CC1
C *     --------------------------------------
C       TESTB FFW1BYPASS FMTFFW1(IDX)     78  
C   N78 *IN33 COMP *ON       78  
C     *IN78 IFEQ *ON              
C   32   BITOFF FFW1MDT FMTFFW1(IDX)            
C   33   BITOFF FFW1MDT FMTFFW1(IDX)            
C       TESTB FFW1MDT FMTFFW1(IDX)     78  
C   N78 *IN35 COMP *ON       78  
C     *IN78 IFEQ *ON              
C   34   EVAL %SUBST(SCREENX:FMTPOS(IDX):
C          FMTLEN(IDX)) = *ALLX'00'
C   35   EVAL %SUBST(SCREENX:FMTPOS(IDX):
C          FMTLEN(IDX)) = *ALLX'00'
C   34   MOVEL(P) 'X' MDTX            
C   35   MOVEL(P) 'X' MDTX            
C       ENDIF                
C       ENDIF                
C       ENDDO                
C   32   CLEAR   MDTX            
C   33   CLEAR   MDTX            
C       ENDSR                
C          
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X  
C     CC2 BEGSR                
C *     --------------------------------------
C *     CC2
C *     --------------------------------------
C       TESTB RESCC$ CC2SAVE     78  
C   78   MOVEL(P) 'X' RESCC            
C       TESTB NOIC$ CC2SAVE     78  
C   78   MOVEL(P) 'X' NOIC            
C       TESTB BLINKOFF$ CC2SAVE     78  
C   78   MOVEL(P) ' ' BLINK            
C       TESTB BLINKON$ CC2SAVE     78  
C   78   MOVEL(P) 'B' BLINK            
C       TESTB UNLOCK$ CC2SAVE     78  
C   78   MOVEL(P) 'X' UNLOCK            
C       TESTB ALARM$ CC2SAVE     78  
C   78   MOVEL(P) 'A' ALARM            
C       TESTB MESSAGEOFF$ CC2SAVE     78  
C   78   MOVEL(P) ' ' MESSAGE            
C       TESTB MESSAGEON$ CC2SAVE     78  
C   78   MOVEL(P) 'M' MESSAGE            
C       ENDSR                
C          
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X  
C     ORDERS BEGSR                
C *     --------------------------------------
C *     Orders bearbeiten
C *     --------------------------------------
C     POS DOWLE LENGTH2              
C     CHAR ANDNE CMD$              
C          
C       SELECT    
C *     --------------------------------------
C *     Zeichen
C *     --------------------------------------
C     CHAR WHENGE ' '              
C       MOVEL(P) ' ' ORDER#            
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Attribut
C *     --------------------------------------
C     CHAR WHENGE ATR$              
C       MOVEL(P) ATR# ORDER#            
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     CHAR WHENEQ SOH$              
C       MOVEL(P) SOH# ORDER#            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR            
C       ADD LENNUM POS            
C       EXSR SOHSR              
C       EXSR GETCHAR              
C       CLEAR   FMTTABX            
C       CLEAR   FMTX            
C       CLEAR   MDTX            
C          
C *     --------------------------------------
C *     Repeat to Address
C *     --------------------------------------
C     CHAR WHENEQ RA$              
C       MOVEL(P) RA# ORDER#            
C       EXSR GETCHAR              
C       EXSR ROWCOL              
C     SCNPOS DOWLE SCNPOS2              
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       ENDDO                
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Erase to Address
C *     --------------------------------------
C     CHAR WHENEQ EA$              
C       MOVEL(P) EA# ORDER#            
C       EXSR ORDERSWARN              
C       EXSR GETCHAR              
C       EXSR ROWCOL              
C       MOVEL(P) CHAR LENCHAR            
C     1 ADD SCNPOS2 SCNPOS            
C       ADD LENNUM POS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Command
C *     --------------------------------------
C     CHAR WHENEQ CMD$              
C       MOVEL(P) CMD# ORDER#            
C          
C *     --------------------------------------
C *     Transparent Data
C *     --------------------------------------
C     CHAR WHENEQ TD$              
C       MOVEL(P) TD# ORDER#            
C       EXSR ORDERSWARN              
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       ADD LENNUM2 POS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Set Buffer Address
C *     --------------------------------------
C     CHAR WHENEQ SBA$              
C       MOVEL(P) SBA# ORDER#            
C       EXSR GETCHAR              
C       EXSR ROWCOL              
C     *ZERO ADD SCNPOS2 SCNPOS            
C          
C *     --------------------------------------
C *     Write Extended Attribute
C *     --------------------------------------
C     CHAR WHENEQ WEA$              
C       MOVEL(P) WEA# ORDER#            
C       EXSR ORDERSWARN              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Insert Cursor
C *     --------------------------------------
C     CHAR WHENEQ IC$              
C       MOVEL(P) IC# ORDER#            
C       EXSR GETCHAR              
C       EXSR ROWCOL              
C     *ZERO ADD SCNPOS2 HOME            
C     *ZERO ADD SCNPOS2 CURSOR            
C          
C *     --------------------------------------
C *     Move Cursor
C *     --------------------------------------
C     CHAR WHENEQ MC$              
C       MOVEL(P) MC# ORDER#            
C       EXSR GETCHAR              
C       EXSR ROWCOL              
C     *ZERO ADD SCNPOS2 CURSOR            
C          
C *     --------------------------------------
C *     Write to Display Structured Field
C *     --------------------------------------
C     CHAR WHENEQ WDSF$              
C       MOVEL(P) WDSF# ORDER#            
C       MOVEL(P) CHAR CHARX            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       EXSR GETCHAR              
C     *ZERO ADD POS POS3            
C       EVAL BUF2 = ''
C     3 DO LENNUM2              
C       EVAL BUF2 = BUF2 + CHAR
C       EXSR GETCHAR              
C       ENDDO                
C       MOVEL(P) BUF2 CHAR2            
C       EXSR ORDERSWARN2              
C          
C *     --------------------------------------
C *     Start of Field
C *     --------------------------------------
C     CHAR WHENEQ SF$              
C       MOVEL(P) SF# ORDER#            
C       EXSR GETCHAR              
C     *ZERO ADD 1 FFWX            
C       ADD 1 FMTX            
C       EXSR FFW              
C       EXSR FCW              
C       EXSR ATR              
C       EXSR POSLEN              
C       EXSR POSLEN2              
C       SUB FFWX FMTX            
C          
C *     --------------------------------------
C *     NULL
C *     --------------------------------------
C     CHAR WHENEQ NULL$              
C       MOVEL(P) NULL# ORDER#            
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Shift Out
C *     --------------------------------------
C     CHAR WHENEQ SO$              
C       MOVEL(P) SO# ORDER#            
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Shift In
C *     --------------------------------------
C     CHAR WHENEQ SI$              
C       MOVEL(P) SI# ORDER#            
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Dup
C *     --------------------------------------
C     CHAR WHENEQ DU$              
C       MOVEL(P) DU# ORDER#            
C       SUBST(P) DU$X SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Field Mark
C *     --------------------------------------
C     CHAR WHENEQ FM$              
C       MOVEL(P) FM# ORDER#            
C       SUBST(P) FM$X SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C       OTHER                
C *     --------------------------------------
C *     Andere
C *     --------------------------------------
C       SELECT    
C     CHAR WHENEQ X05$              
C       MOVEL(P) X05# ORDER#            
C     CHAR WHENEQ X06$              
C       MOVEL(P) X06# ORDER#            
C     CHAR WHENEQ X07$              
C       MOVEL(P) X07# ORDER#            
C     CHAR WHENEQ X08$              
C       MOVEL(P) X08# ORDER#            
C     CHAR WHENEQ X09$              
C       MOVEL(P) X09# ORDER#            
C     CHAR WHENEQ X0A$              
C       MOVEL(P) X0A# ORDER#            
C     CHAR WHENEQ X0B$              
C       MOVEL(P) X0B# ORDER#            
C     CHAR WHENEQ X0C$              
C       MOVEL(P) X0C# ORDER#            
C     CHAR WHENEQ X0D$              
C       MOVEL(P) X0D# ORDER#            
C          
C     CHAR WHENEQ X16$              
C       MOVEL(P) X16# ORDER#            
C     CHAR WHENEQ X17$              
C       MOVEL(P) X17# ORDER#            
C     CHAR WHENEQ X18$              
C       MOVEL(P) X18# ORDER#            
C     CHAR WHENEQ X19$              
C       MOVEL(P) X19# ORDER#            
C     CHAR WHENEQ X1A$              
C       MOVEL(P) X1A# ORDER#            
C     CHAR WHENEQ X1B$              
C       MOVEL(P) X1B# ORDER#            
C          
C     CHAR WHENEQ X1F$              
C       MOVEL(P) X1F# ORDER#            
C          
C     CHAR WHENEQ X3F$              
C       MOVEL(P) X3F# ORDER#            
C          
C       ENDSL                
C       SUBST(P) CHAR SCREEN(SCNPOS)     77  
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C       ENDSL                
C       ENDDO                
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X * ORDERS EXSR TN5250SB    
  X  
C     ORDERSWARN BEGSR                
C       MOVEL(P) CHAR LENCHAR            
C *     --------------------------------------
C *     Warnen
C *     --------------------------------------
C   74   EVAL RECVSEND =  '****ORDER****'+
C            ' ' + %CHAR(POS-1)+
C            ' ' + %CHAR(LENNUM)+
C            ' ' +%TRIMR(ORDER#)+'<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * ORDERS EXSR TN5250SB    
  X  
C     ORDERSWARN2 BEGSR                
C       MOVEL(P) CHARX LENCHAR            
C       MOVEL(P) CHAR2 LENCHAR2            
C *     --------------------------------------
C *     Warnen
C *     --------------------------------------
C   74   EVAL RECVSEND =  '****ORDER****'+
C            ' ' + %CHAR(POS3-4)+
C            ' ' + %CHAR(LENNUM)+
C            ' ' +%TRIMR(ORDER#)+
C            ' ' + %CHAR(LENNUM21)+
C            ' ' + %CHAR(LENNUM22)+'<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X  
C     COMMANDS BEGSR                
C *     --------------------------------------
C *     Befehle bearbeiten
C *     --------------------------------------
C     POS DOWLE LENGTH2              
C          
C *     --------------------------------------
C *     Befehle bearbeiten
C *     --------------------------------------
C     CHAR IFEQ CMD$              
C       MOVEL(P) CMD# COMMAND#            
C       EXSR GETCHAR              
C          
C       SELECT    
C *     --------------------------------------
C *     Clear Unit
C *     --------------------------------------
C     CHAR WHENEQ CLEARUNIT$              
C       MOVEL(P) CLEARUNIT# COMMAND#            
C       MOVEL(P) *ALLX'00' SCREENX            
C       CLEAR   FMTTABX            
C       CLEAR   FMTX            
C       CLEAR   MDTX            
C     *ZERO ADD 24 ROWS            
C     *ZERO ADD 80 COLS            
C     *ZERO ADD 1 HOME            
C     *ZERO ADD 1 CURSOR            
C     *ZERO ADD 1 SCNPOS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Clear Unit Alternate
C *     --------------------------------------
C     CHAR WHENEQ CLEARUNITALT$              
C       MOVEL(P) CLEARUNITALT# COMMAND#            
C       MOVEL(P) *ALLX'00' SCREENX            
C       CLEAR   FMTTABX            
C       CLEAR   FMTX            
C       CLEAR   MDTX            
C     *ZERO ADD 27 ROWS            
C     *ZERO ADD 132 COLS            
C     *ZERO ADD 1 HOME            
C     *ZERO ADD 1 CURSOR            
C     *ZERO ADD 1 SCNPOS            
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Clear Format Table
C *     --------------------------------------
C     CHAR WHENEQ CLEARFMTTABLE$              
C       MOVEL(P) CLEARFMTTABLE# COMMAND#            
C       CLEAR   FMTTABX            
C       CLEAR   FMTX            
C       CLEAR   MDTX            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Write to Display
C *     --------------------------------------
C     CHAR WHENEQ WRITETODISPLY$              
C       MOVEL(P) WRITETODISPLY# COMMAND#            
C       EXSR GETCHAR              
C       EXSR CC1              
C       EXSR ORDERS              
C       EXSR CC2              
C          
C *     --------------------------------------
C *     Write Error Code
C *     --------------------------------------
C     CHAR WHENEQ WRITEERRCODE$              
C       MOVEL(P) WRITEERRCODE# COMMAND#            
C **     EXSR COMMANDSWARN              
C     SCREENLEN MULT ROWS SCNPOS            
C       MULT COLS SCNPOS            
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C       EXSR ORDERS              
C          
C *     --------------------------------------
C *     Write Error Code to Window
C *     --------------------------------------
C     CHAR WHENEQ WRITEERRCODEW$              
C       MOVEL(P) WRITEERRCODEW# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C     SCREENLEN MULT ROWS SCNPOS            
C       MULT COLS SCNPOS            
C       ADD 1 SCNPOS            
C       EXSR GETCHAR              
C       EXSR ORDERS              
C          
C *     --------------------------------------
C *     Read Input Fields
C *     --------------------------------------
C     CHAR WHENEQ READINPUTFLDS$              
C       MOVEL(P) READINPUTFLDS# COMMAND#            
C       MOVEL(P) READINPUTFLDS$ READWAIT            
C       EXSR GETCHAR              
C       EXSR CC1              
C       EXSR CC2              
C          
C *     --------------------------------------
C *     Read Modified Fields
C *     --------------------------------------
C     CHAR WHENEQ READMDTFLDS$              
C       MOVEL(P) READMDTFLDS# COMMAND#            
C       MOVEL(P) READMDTFLDS$ READWAIT            
C       EXSR GETCHAR              
C       EXSR CC1              
C       EXSR CC2              
C          
C *     --------------------------------------
C *     Read Modified Alternate
C *     --------------------------------------
C     CHAR WHENEQ READMDTALT$              
C       MOVEL(P) READMDTALT# COMMAND#            
C       MOVEL(P) READMDTALT$ READWAIT            
C       EXSR GETCHAR              
C       EXSR CC1              
C       EXSR CC2              
C          
C *     --------------------------------------
C *     Read Screen
C *     --------------------------------------
C     CHAR WHENEQ READSCREEN$              
C       MOVEL(P) READSCREEN# COMMAND#            
C       MOVEL(P) READSCREENX OPCODEX            
C     SCREENLEN MULT ROWS LEN            
C       MULT COLS LEN            
C       EVAL BUF2 = %SUBST ( SCREENX:1:LEN)
C       EXSR SENDBUF2              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Read Screen with Extended Attributes
C *     --------------------------------------
C     CHAR WHENEQ READSCREENA$              
C       MOVEL(P) READSCREENA# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Read Screen to Print
C *     --------------------------------------
C     CHAR WHENEQ READSCREENPR$              
C       MOVEL(P) READSCREENPR# COMMAND#            
C       MOVEL(P) READSCREENX OPCODEX            
C     SCREENLEN MULT ROWS LEN            
C       MULT COLS LEN            
C       EVAL BUF2 = %SUBST ( SCREENX:1:LEN)
C       EXSR SENDBUF2              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Read Screen to Print with Extended Atr
C *     --------------------------------------
C     CHAR WHENEQ READSCREENPRA$              
C       MOVEL(P) READSCREENPRA# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Read Screen to Print with Gridlines
C *     --------------------------------------
C     CHAR WHENEQ READSCREENPRL$              
C       MOVEL(P) READSCREENPRL# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Read Screen to Print with Ext Atr Grid
C *     --------------------------------------
C     CHAR WHENEQ READSCREENPRX$              
C       MOVEL(P) READSCREENPRX# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Read Immediate
C *     --------------------------------------
C     CHAR WHENEQ READIMMED$              
C       MOVEL(P) READIMMED# COMMAND#            
C       MOVEL(P) READIMMED$ READWAIT            
C       MOVEL(P) READIMMEDX OPCODEX            
C       EXSR FMTFIELDS              
C       EXSR SENDBUF2              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Read Modified Immediate Alternate
C *     --------------------------------------
C     CHAR WHENEQ READMDTIMMALT$              
C       MOVEL(P) READMDTIMMALT# COMMAND#            
C       MOVEL(P) READMDTIMMALT$ READWAIT            
C       MOVEL(P) READIMMEDX OPCODEX            
C       EXSR FMTFIELDS              
C       EXSR SENDBUF2              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Save Screen
C *     --------------------------------------
C     CHAR WHENEQ SAVESCREEN$              
C       MOVEL(P) SAVESCREEN# COMMAND#            
C       MOVEL(P) SAVESCREENX OPCODEX            
C       EVAL BUF2 = CMD$ + RESTSCREEN$
C     *ZERO ADD HOME LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD CURSOR LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD ROWS LENNUM21            
C     *ZERO ADD COLS LENNUM22            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD FMTX LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD MSGX LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C       MOVEL(P) MDTX LENCHAR21            
C       MOVEL(P) READWAIT LENCHAR22            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     SCREENLEN MULT ROWS LEN            
C       MULT COLS LEN            
C       ADD COLS LEN            
C       EVAL BUF2 = BUF2 + %SUBST(SCREENX:1:LEN)
C     FMTTABLEN MULT FMTX LEN            
C       EVAL BUF2 = BUF2 + %SUBST(FMTTABX:1:LEN)
C       EXSR SENDBUF2              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Save Partial Screen
C *     --------------------------------------
C     CHAR WHENEQ SAVESCREENPAR$              
C       MOVEL(P) SAVESCREENPAR# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Restore Screen
C *     --------------------------------------
C     CHAR WHENEQ RESTSCREEN$              
C       MOVEL(P) RESTSCREEN# COMMAND#            
C       MOVEL(P) *ALLX'00' SCREENX            
C       CLEAR   FMTTABX            
C     *ZERO ADD 1 SCNPOS            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 HOME            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 CURSOR            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM21 ROWS            
C     *ZERO ADD LENNUM22 COLS            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 FMTX            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 MSGX            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       MOVEL(P) LENCHAR21 MDTX            
C       MOVEL(P) LENCHAR22 READWAIT            
C          
C     SCREENLEN MULT ROWS LEN            
C       MULT COLS LEN            
C       ADD COLS LEN            
C       EVAL %SUBST(SCREENX:  1:LEN) =
C       %SUBST(BUFFERX:POS:LEN)
C       ADD LEN POS            
C          
C     FMTTABLEN MULT FMTX LEN            
C       EVAL %SUBST(FMTTABX:  1:LEN) =
C       %SUBST(BUFFERX:POS:LEN)
C       ADD LEN POS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Restore Partial Screen
C *     --------------------------------------
C     CHAR WHENEQ RESTSCREENPAR$              
C       MOVEL(P) RESTSCREENPAR# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       SUB 2 LENNUM2            
C       ADD LENNUM2 POS            
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Roll
C *     --------------------------------------
C     CHAR WHENEQ ROLL$              
C       MOVEL(P) ROLL# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Write Structured Field
C *     --------------------------------------
C     CHAR WHENEQ WRITESTRFLD$              
C       MOVEL(P) WRITESTRFLD# COMMAND#            
C       MOVEL(P) CHAR CHARX            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       EXSR GETCHAR              
C     *ZERO ADD POS POS3            
C       EVAL BUF2 = ''
C     3 DO LENNUM2              
C       EVAL BUF2 = BUF2 + CHAR
C       EXSR GETCHAR              
C       ENDDO                
C       MOVEL(P) BUF2 CHAR2            
C     CHAR21 IFEQ STRFLD$              
C          
C       SELECT    
C     CHAR22 WHENEQ QUERY$              
C       EVAL BUF2  = X'000088'+
C               X'003A'+
C                 STRFLD$+
C                 QUERY$+
C               X'80'+
C               X'0600+
C                 010300+
C                 0000000000000000+
C                 0000000000000000+
C                 01'+
C                '3180002'+
C               X'020000+
C                 00615000+
C                 0100+
C                 000000+
C                 1811000000+
C                 00000000000000'
C          
C       MOVEL(P) PUTGETX OPCODEX            
C       EXSR SENDBUF2              
C          
C     CHAR22 WHENEQ QUERYSTATION$              
C       EVAL BUF2  = X'000088'+
C               X'0006'+
C                 STRFLD$+
C                 QUERYSTATION$+
C               X'8000'
C          
C       MOVEL(P) PUTGETX OPCODEX            
C       EXSR SENDBUF2              
C          
C       EXSR COMMANDSWARN2              
C       OTHER                
C       EXSR COMMANDSWARN2              
C       ENDSL                
C       ELSE                
C       EXSR COMMANDSWARN2              
C       ENDIF                
C *     --------------------------------------
C *     Write Single Structured Field
C *     --------------------------------------
C     CHAR WHENEQ WRITESISTRFLD$              
C       MOVEL(P) WRITESISTRFLD# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Copy-to-Printer
C *     --------------------------------------
C     CHAR WHENEQ COPYTOPRINTER$              
C       MOVEL(P) COPYTOPRINTER# COMMAND#            
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C       EXSR GETCHAR              
C          
C *     --------------------------------------
C *     Andere
C *     --------------------------------------
C       OTHER                
C       MOVEL(P) CHAR LENCHAR            
C       EVAL COMMAND# = %CHAR(LENNUM)
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C       ENDSL                
C *     --------------------------------------
C *     Andere
C *     --------------------------------------
C       ELSE                
C       MOVEL(P) CHAR LENCHAR            
C       EVAL COMMAND# = %CHAR(LENNUM)
C       EXSR COMMANDSWARN              
C       EXSR GETCHAR              
C       ENDIF                
C       ENDDO                
C       ENDSR                
C          
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X  
C     COMMANDSWARN BEGSR                
C       MOVEL(P) CHAR LENCHAR            
C *     --------------------------------------
C *     Warnen
C *     --------------------------------------
C   74   EVAL RECVSEND =  '****COMMAND****'+
C            ' ' + %CHAR(POS-1)+
C            ' ' + %CHAR(LENNUM)+
C            ' ' +%TRIMR(COMMAND#)+'<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X  
C     COMMANDSWARN2 BEGSR                
C       MOVEL(P) CHARX LENCHAR            
C       MOVEL(P) CHAR2 LENCHAR2            
C *     --------------------------------------
C *     Warnen
C *     --------------------------------------
C   74   EVAL RECVSEND =  '****COMMAND****'+
C            ' ' + %CHAR(POS3-4)+
C            ' ' + %CHAR(LENNUM)+
C            ' ' +%TRIMR(COMMAND#)+
C            ' ' + %CHAR(LENNUM21)+
C            ' ' + %CHAR(LENNUM22)+'<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * RECORD EXSR TN5250SB    
  X  
C     OPCODES BEGSR                
C *     --------------------------------------
C *     Opcodes bearbeiten
C *     --------------------------------------
C          
C       SELECT    
C *     --------------------------------------
C *     No Operation
C *     --------------------------------------
C     OPCODE WHENEQ NOOPX              
C       MOVEL(P) NOOPX# OPCODE#            
C       EXSR OPCODESWARN              
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Invite
C *     --------------------------------------
C     OPCODE WHENEQ INVITEX              
C       MOVEL(P) INVITEX# OPCODE#            
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Output Only
C *     --------------------------------------
C     OPCODE WHENEQ OUTPUTX              
C       MOVEL(P) OUTPUTX# OPCODE#            
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Put/Get
C *     --------------------------------------
C     OPCODE WHENEQ PUTGETX              
C       MOVEL(P) PUTGETX# OPCODE#            
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Save Screen
C *     --------------------------------------
C     OPCODE WHENEQ SAVESCREENX              
C       MOVEL(P) SAVESCREENX# OPCODE#            
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Restore Screen
C *     --------------------------------------
C     OPCODE WHENEQ RESTSCREENX              
C       MOVEL(P) RESTSCREENX# OPCODE#            
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Read Immediate
C *     --------------------------------------
C     OPCODE WHENEQ READIMMEDX              
C       MOVEL(P) READIMMEDX# OPCODE#            
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Reserved 1
C *     --------------------------------------
C     OPCODE WHENEQ RESERVED1X              
C       MOVEL(P) RESERVED1X# OPCODE#            
C       EXSR OPCODESWARN              
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Read Screen
C *     --------------------------------------
C     OPCODE WHENEQ READSCREENX              
C       MOVEL(P) READSCREENX# OPCODE#            
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Reserved 2
C *     --------------------------------------
C     OPCODE WHENEQ RESERVED2X              
C       MOVEL(P) RESERVED2X# OPCODE#            
C       EXSR OPCODESWARN              
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C          
C *     --------------------------------------
C *     Cancel Invite
C *     --------------------------------------
C     OPCODE WHENEQ CANCELINVITEX              
C       MOVEL(P) CANCELINVITEX# OPCODE#            
C       MOVEL(P) CANCELINVITEX OPCODEX            
C       EXSR SENDNONE              
C       MOVEL(P) SAVE$ READWAIT            
C          
C *     --------------------------------------
C *     Set Message Light On
C *     --------------------------------------
C     OPCODE WHENEQ MESSAGEONX              
C       MOVEL(P) MESSAGEONX# OPCODE#            
C       MOVEL(P) 'M' MESSAGE            
C          
C *     --------------------------------------
C *     Set Message Light Off
C *     --------------------------------------
C     OPCODE WHENEQ MESSAGEOFFX              
C       MOVEL(P) MESSAGEOFFX# OPCODE#            
C       MOVEL(P) ' ' MESSAGE            
C          
C *     --------------------------------------
C *     Andere
C *     --------------------------------------
C       OTHER                
C       MOVEL(P) OPCODE LENCHAR            
C       EVAL OPCODE# = %CHAR(LENNUM)
C       EXSR OPCODESWARN              
C       EXSR GETCHAR              
C       EXSR COMMANDS              
C       ENDSL                
C       ENDSR                
C          
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X * OPCODES EXSR TN5250SB    
  X  
C     OPCODESWARN BEGSR                
C       MOVEL(P) OPCODE LENCHAR            
C *     --------------------------------------
C *     Warnen
C *     --------------------------------------
C   74   EVAL RECVSEND =  '****OPCODE****'+
C            ' ' + %CHAR(POS-1)+
C            ' ' + %CHAR(LENNUM)+
C            ' ' +%TRIMR(OPCODE#)+'<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * EOR EXSR TN5250SB    
  X  
C     RECORD BEGSR                
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C       MOVEL(P) NULL$ AID            
C       MOVEL(P) NULL$ FLAGS1            
C       MOVEL(P) NULL$ FLAGS2            
C     1 ADD LENGTH LENGTH2            
C          
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C   74   EXSR BUFFERHEX              
C          
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C     LENGTH2 IFEQ POS              
C     RECORDTYPE ANDEQ GDS              
C     VARYLENGTH ANDEQ VARYLEN              
C     1 ADD HEADERLEN POS            
C          
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C       EXSR OPCODES              
C          
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C       ELSE                
C       EXSR RECORDWARN              
C       ENDIF                
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C       EXSR RECORDROUND              
C          
C     *ZERO ADD 1 POS            
C       ENDSR                
C          
  X * RECORD EXSR TN5250SB    
  X  
C     RECORDWARN BEGSR                
C       MOVEL(P) OPCODE LENCHAR            
C *     --------------------------------------
C *     Warnen
C *     --------------------------------------
C   74   EVAL RECVSEND =  '****RECORD****'+
C            ' ' + %CHAR(POS-1)+
C            ' ' + %CHAR(LENGTH)+
C            ' ' + %CHAR(VARYLEN)+
C            ' ' + %CHAR(VARYLENGTH)+
C            ' ' + %CHAR(LENNUM)+
C            ' ' +%TRIMR(RECORD#)+'<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * RECORD EXSR TN5250SB    
  X  
C     RECORDROUND BEGSR                
C       SELECT    
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C     READWAIT WHENNE NULL$              
C       CLEAR   ROUND            
C       CLEAR   ROUND2            
C       SETON         71  
C     ROUND2 WHENGE ROUND22              
C       CLEAR   ROUND2            
C       SETON         71  
C     ROUND WHENLT ROUND21              
C       SETON         71  
C       ENDSL                
C *     --------------------------------------
C *     Satz bearbeiten
C *     --------------------------------------
C       ADD 1 ROUND            
C       ADD 1 ROUND2            
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     CLEARERRCODE BEGSR                
C *     --------------------------------------
C *     Fehler entfernen
C *     --------------------------------------
C     ROWS IFGE 1              
C     TIMEOUT IFGE TIMEOUT2              
C     SCREENLEN MULT ROWS POSN            
C       MULT COLS POSN            
C       ADD 1 POSN            
C       EVAL %SUBST(SCREENX:POSN:COLS) = *ALLX'00'
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     ADDMSGX BEGSR                
C     ROWS IFGE 1              
C     FMTX IFLE 1              
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT 3 POSN            
C       MULT COLS POSN            
C       SUB 1 POSN            
C       SUB 8 POSN            
C       SUBST(P) SCREENX:POSN CHARS8     77  
C     NULL$:' ' XLATE CHARS8 CHARS8            
C     *BLANKS IFNE CHARS8              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT ROWS POSN            
C       MULT COLS POSN            
C       SUB COLS POSN            
C       SUB COLS POSN            
C       SUB COLS POSN            
C       ADD 1 POSN            
C     COLS SUBST(P) SCREENX:POSN LINE     77  
C     'F3' SCAN LINE POSN     77 78  
C   78 'F5' SCAN LINE:POSN POSN     77 78  
C   78 'F12' SCAN LINE:POSN POSN     77 78  
C   78 'F17' SCAN LINE:POSN POSN     77 78  
C   78 'F18' SCAN LINE:POSN POSN     77 78  
C     *IN78 IFEQ *ON              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT 5 POSN            
C       MULT COLS POSN            
C       SUB COLS POSN            
C       ADD 6 POSN            
C     COLS SUB 6 LENN            
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT ROWS POSX            
C       MULT COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     POSN DOWLT POSX              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       ADD 1 FMTX            
C       ADD 1 MSGX            
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     *ZERO ADD POSN FMTPOS(FMTX)            
C     *ZERO ADD LENN FMTLEN(FMTX)            
C       BITON FFW1BYPASS FMTFFW1(FMTX)            
C       ADD COLS POSN            
C          
C       ENDDO                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     ROWS IFGE 1              
C     FMTX IFEQ 1              
C     FMTLEN(FMTX) IFLT 1200              
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT 5 POSN            
C       MULT COLS POSN            
C       SUB COLS POSN            
C       ADD 4 POSN            
C       SUBST(P) SCREENX:POSN CHAR     77  
C     CHAR IFNE '('              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT ROWS POSN            
C       MULT COLS POSN            
C       SUB COLS POSN            
C       SUB COLS POSN            
C       SUB COLS POSN            
C       SUB COLS POSN            
C       SUB COLS POSN            
C       SUB 1 POSN            
C       SUBST(P) SCREENX:POSN CHAR2     77  
C     CHAR21 IFNE ':'              
C     CHAR22 ORNE ATR$              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       SUB COLS POSN            
C       SUBST(P) SCREENX:POSN CHAR2     77  
C     CHAR21 IFNE ':'              
C     CHAR22 ORNE ATR$              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       SUB COLS POSN            
C       SUBST(P) SCREENX:POSN CHAR2     77  
C     CHAR21 IFNE ':'              
C     CHAR22 ORNE ATR$              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT 2 POSN            
C       MULT COLS POSN            
C       SUB 4 POSN            
C       SUBST(P) SCREENX:POSN CHAR     77  
C     CHAR IFEQ ATR$              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       ADD 1 POSN            
C       SUBST(P) SCREENX:POSN CHAR     77  
C     CHAR IFGE '1'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '+'              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       ADD 1 POSN            
C       SUBST(P) SCREENX:POSN CHAR     77  
C     CHAR IFGE '0'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '+'              
C     CHAR OREQ NULL$              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       ADD 1 POSN            
C       SUBST(P) SCREENX:POSN CHAR     77  
C     CHAR IFGE '0'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '+'              
C     CHAR OREQ NULL$              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       ADD 1 POSN            
C       SUBST(P) SCREENX:POSN CHAR     77  
C     CHAR IFEQ ATR$              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT 4 POSN            
C       MULT COLS POSN            
C       SUB COLS POSN            
C       ADD 7 POSN            
C     COLS SUB 7 LENN            
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     SCREENLEN MULT ROWS POSX            
C       MULT COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C       SUB COLS POSX            
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     POSN DOWLT POSX              
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C       ADD 1 FMTX            
C       ADD 1 MSGX            
C          
C *     --------------------------------------
C *     Neue Felder eintragen
C *     --------------------------------------
C     *ZERO ADD POSN FMTPOS(FMTX)            
C     *ZERO ADD LENN FMTLEN(FMTX)            
C       BITON FFW1BYPASS FMTFFW1(FMTX)            
C       ADD COLS POSN            
C          
C       ENDDO                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     RMVMSGX BEGSR                
C     ROWS IFGE 1              
C     MSGX IFGE 1              
C *     --------------------------------------
C *     Neue Felder entfernen
C *     --------------------------------------
C       SUB MSGX FMTX            
C       SUB MSGX MSGX            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     ADDFMTX BEGSR                
C     ROWS IFGE 1              
C       ADD 1 FMTX            
C *     --------------------------------------
C *     Neues Feld in Statuszeile eintragen
C *     --------------------------------------
C     SCREENLEN MULT ROWS POSN            
C       MULT COLS POSN            
C       SUB 1 POSN            
C       SUBST(P) SCREENX:POSN CHAR            
C          
C *     --------------------------------------
C *     Neues Feld in Statuszeile eintragen
C *     --------------------------------------
C     CHAR IFEQ ':'              
C       SUB COLS POSN            
C       SUB 3 POSN            
C       ENDIF                
C *     --------------------------------------
C *     Neues Feld in Statuszeile eintragen
C *     --------------------------------------
C     *ZERO ADD 1 LENN            
C          
C *     --------------------------------------
C *     Neues Feld in Statuszeile eintragen
C *     --------------------------------------
C     *ZERO ADD POSN FMTPOS(FMTX)            
C     *ZERO ADD LENN FMTLEN(FMTX)            
C       BITON FFW1BYPASS FMTFFW1(FMTX)            
C       ENDIF                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     RMVFMTX BEGSR                
C     ROWS IFGE 1              
C     FMTX IFGE 1              
C *     --------------------------------------
C *     Neues Feld aus Statuszeile entfernen
C *     --------------------------------------
C       SUB 1 FMTX            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RECORD EXSR TN5250SB    
  X  
C     BUFFERHEX BEGSR                
C       EXSR HEXLEN              
C       CALLP(E) CVTHC ( BUF3TEXT:BUFFERX:BUF3LEN)
C     *ZERO ADD 40 COLORNUM            
C       EXSR HEXFILL              
C       EVAL RECVSEND    = BUF3 + '<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * SENDBUF2 EXSR TN5250SB    
  X  
C     BUF2HEX BEGSR                
C       EXSR HEXLEN              
C       CALLP(E) CVTHC ( BUF3TEXT:BUF2TEXT:BUF3LEN)
C     *ZERO ADD 50 COLORNUM            
C       EXSR HEXFILL              
C       EVAL RECVSEND    = BUF3 + '<br>§'+
C       RECVSEND
C       ENDSR                
C          
  X * BUFFERHEX EXSR TN5250SB    
  X * BUF2HEX EXSR TN5250SB    
  X  
C     HEXFILL BEGSR                
C       SETON         78  
C       SETON         79  
C       CLEAR   LEN3            
C     1 ADD 8 POS3            
C     POS3 DOWLE BUF3LEN              
C     *IN78 COMP *OFF       78  
C       EXSR HEXFILL8              
C       EVAL BUF3 = %SUBST ( BUF3:1:POS3-1)+BUF4+
C              %SUBST ( BUF3:  POS3)
C       ADD 1 LEN3            
C       ADD BUF4LEN POS3            
C          
C     LEN3 IFGE 4              
C     *IN79 COMP *OFF       79  
C       EXSR HEXFILL9              
C       EVAL BUF3 = %SUBST ( BUF3:1:POS3-2)+BUF4+'§'+
C              %SUBST ( BUF3:  POS3)
C       CLEAR   LEN3            
C       ADD BUF4LEN POS3            
C       ENDIF                
C          
C       ADD 8 POS3            
C       ENDDO                
C          
C       SETON         78  
C       EXSR HEXFILL8              
C     20 ADD BUF4LEN POS3            
C          
C       SETOFF         78  
C       EXSR HEXFILL8              
C       ADD BUF4LEN POS3            
C          
C     POS3 IFLE BUF3LEN              
C       EVAL BUF3 = %REPLACE(%SUBST(BUF3:1:4)+
C          '<b class="c'+%CHAR(COLORNUM)+'">'+
C           %SUBST(BUF3:5:POS3-4)+'</b>':
C                  BUF3:1:POS3)
C       ENDIF                
C       ENDSR                
C          
  X * HEXFILL EXSR TN5250SB    
  X * HEXFILL EXSR TN5250SB    
  X * HEXFILL EXSR TN5250SB    
  X  
C     HEXFILL8 BEGSR                
C   78   EVAL BUF4 = ' '
C   N78   EVAL BUF4 = '<b class="c40">|</b>'
C       ENDSR                
C          
  X * HEXFILL EXSR TN5250SB    
  X  
C     HEXFILL9 BEGSR                
C   79   EVAL BUF4 = '<br>'
C   N79   EVAL BUF4 = '<bb>'
C       ENDSR                
C          
  X * BUFFERHEX EXSR TN5250SB    
  X * BUF2HEX EXSR TN5250SB    
  X  
C     HEXLEN BEGSR                
C     LENGTH MULT 2 BUF3LEN            
C     BUF3LEN IFGT BUF3TEXTLEN              
C     *ZERO ADD BUF3TEXTLEN BUF3LEN            
C       DIV 2 BUF3LEN            
C       MULT 2 BUF3LEN            
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X * *MAIN* EXSR TN5250SB    
  X  
C     NAMES BEGSR                
C     LOWER:UPPER XLATE SESSION8 SESSION8            
C       MOVEL(P) INPUTADDX SESSIONADDX            
C       MOVEL(P) SESSION INPUTQ            
C       MOVEL(P) SCREENADDX SESSIONADDX            
C       MOVEL(P) SESSION SCREENQ            
C       MOVEL(P) NAMEADDX SESSIONADDX            
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     NAMESX BEGSR                
C     LOWER:UPPER XLATE SESSIONX8 SESSIONX8            
C       MOVEL(P) INPUTADDX SESSIONXADDX            
C       MOVEL(P) SESSIONX INPUTQ            
C       MOVEL(P) SCREENADDX SESSIONXADDX            
C       MOVEL(P) SESSIONX SCREENQ            
C       MOVEL(P) NAMEADDX SESSIONXADDX            
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     CREATE BEGSR                
C       CALL 'TN5250'       77  
C       PARM   SESSION            
C       PARM   REMOTE            
C       PARM *ON SET            
C       PARM *OFF ERR            
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     DELETE BEGSR                
C       CALL 'TN5250'       77  
C       PARM   SESSION            
C       PARM   REMOTE            
C       PARM *OFF SET            
C       PARM *OFF ERR            
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     DELETEX BEGSR                
C       CALL 'TN5250'       77  
C       PARM   SESSIONX            
C       PARM   REMOTEX            
C       PARM *OFF SET            
C       PARM *OFF ERR            
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     SNDINPUT BEGSR                
C       SETOFF         72  
C       EVAL BUF2        = METHOD + INPUT
C     BUF2LEN IFGT INPUTMAXLEN              
C     *ZERO ADD INPUTMAXLEN BUF2LEN            
C       ENDIF                
C       CALL QSNDDTAQ QSNDINPUTPARM     77  
C   77   CLEAR   DTALEN            
C   77   SETON         72  
C       ENDSR                
C          
  X * SNDINPUT CALL TN5250SB    
  X  
C     QSNDINPUTPARM PLIST                
C       PARM   INPUTQ            
C       PARM   INPUTQLIB            
C       PARM BUF2LEN DTALEN            
C       PARM   BUF2TEXT            
C          
  X * RECVSEND1 EXSR TN5250SB    
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     RCVINPUT BEGSR                
C       MOVEL(P) NULL$ AID            
C       MOVEL(P) NULL$ FLAGS1            
C       MOVEL(P) NULL$ FLAGS2            
C       CLEAR   CURSOR2            
C       CLEAR   CURSOR3            
C       CLEAR   RELOAD            
C       CLEAR   REMOTE            
C       CLEAR   METHOD            
C       CLEAR   INPUT            
C       SETOFF         72  
C          
C       CALL QRCVDTAQ QRCVINPUTPARM     77  
C   77   CLEAR   DTALEN            
C   77   SETON         72  
C          
C     *ZERO IFNE DTALEN              
C     DTALEN IFGT BUF2TEXTLEN              
C     *ZERO ADD BUF2TEXTLEN DTALEN            
C       ENDIF                
C       EVAL BUF2       = %SUBST(BUF2TEXT:1:DTALEN)
C          
C     BUF2LEN IFGT *ZERO              
C       EVAL METHOD     = %SUBST(BUF2:1)
C       ENDIF                
C     BUF2LEN IFGT METHODLEN              
C       EVAL INPUT      = %SUBST(BUF2:1+METHODLEN)
C       EXSR INPUT1              
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RCVINPUT CALL TN5250SB    
  X  
C     QRCVINPUTPARM PLIST                
C       PARM   INPUTQ            
C       PARM   INPUTQLIB            
C       PARM   DTALEN            
C       PARM   BUF2TEXT            
C       PARM   INPUTWAITX            
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     SNDSCREEN BEGSR                
C     *ZERO IFNE DTALEN              
C       EVAL BUF2 = ''
C     *ZERO ADD HOME LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD CURSOR LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD ROWS LENNUM21            
C     *ZERO ADD COLS LENNUM22            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD FMTX LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     *ZERO ADD MSGX LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C       MOVEL(P) MDTX LENCHAR21            
C       MOVEL(P) READWAIT LENCHAR22            
C       EVAL BUF2 = BUF2 + LENCHAR2
C     SCREENLEN MULT ROWS LEN            
C       MULT COLS LEN            
C       ADD COLS LEN            
C       EVAL BUF2 = BUF2 + %SUBST(SCREENX:1:LEN)
C     FMTTABLEN MULT FMTX LEN            
C       EVAL BUF2 = BUF2 + %SUBST(FMTTABX:1:LEN)
C          
C       EVAL BUF2 = BUF2 + RESCC
C       EVAL BUF2 = BUF2 + NOIC
C       EVAL BUF2 = BUF2 + BLINK
C       EVAL BUF2 = BUF2 + UNLOCK
C       EVAL BUF2 = BUF2 + ALARM
C       EVAL BUF2 = BUF2 + MESSAGE
C       EVAL BUF2 = BUF2 + ADDRFAMILY
C          
C     *ZERO ADD TIMEOUT LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C          
C     *ZERO ADD PTRLEN LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C       EVAL BUF2 = BUF2 + %SUBST(PTRBUF:1:PTRLEN)
C          
C     *ZERO ADD TN5250DSLEN LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C       EVAL BUF2 = BUF2 + TN5250DS
C          
C     *ZERO ADD RECVSENDLEN LENNUM2            
C       EVAL BUF2 = BUF2 + LENCHAR2
C       EVAL BUF2 = BUF2 + RECVSEND
C          
C     BUF2LEN IFGT SCREENMAXLEN              
C     *ZERO ADD SCREENMAXLEN BUF2LEN            
C       ENDIF                
C       CALL QSNDDTAQ QSNDSCREENPARM     77  
C   77   CLEAR   DTALEN            
C   77   SETON         72  
C       CLEAR   RESCC            
C       CLEAR   NOIC            
C       CLEAR   UNLOCK            
C       CLEAR   ALARM            
C       ENDIF                
C       ENDSR                
C          
  X * SNDSCREEN CALL TN5250SB    
  X  
C     QSNDSCREENPARM PLIST                
C       PARM   SCREENQ            
C       PARM   SCREENQLIB            
C       PARM BUF2LEN DTALEN            
C       PARM   BUF2TEXT            
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     RCVSCREEN BEGSR                
C     *ZERO IFNE DTALEN              
C       CALL QRCVDTAQ QRCVSCREENPARM     77  
C **   DTALEN DSPLY                
C   77   CLEAR   DTALEN            
C   77   SETON         72  
C          
C     *ZERO IFNE DTALEN              
C     DTALEN IFGT BUF2TEXTLEN              
C     *ZERO ADD BUF2TEXTLEN DTALEN            
C       ENDIF                
C       EVAL BUFFERX    = %SUBST(BUF2TEXT:1:DTALEN)
C     *ZERO ADD 1 POS            
C          
C       MOVEL(P) *ALLX'00' SCREENX            
C       CLEAR   FMTTABX            
C     *ZERO ADD 1 SCNPOS            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 HOME            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 CURSOR            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM21 ROWS            
C     *ZERO ADD LENNUM22 COLS            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 FMTX            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 MSGX            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C       MOVEL(P) LENCHAR21 MDTX            
C       MOVEL(P) LENCHAR22 READWAIT            
C          
C     SCREENLEN MULT ROWS LEN            
C       MULT COLS LEN            
C       ADD COLS LEN            
C       EVAL %SUBST(SCREENX:  1:LEN) =
C       %SUBST(BUFFERX:POS:LEN)
C       ADD LEN POS            
C          
C     FMTTABLEN MULT FMTX LEN            
C       EVAL %SUBST(FMTTABX:  1:LEN) =
C       %SUBST(BUFFERX:POS:LEN)
C       ADD LEN POS            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR RESCC            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR NOIC            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR BLINK            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR UNLOCK            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR ALARM            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR MESSAGE            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR ADDRFAMILY            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C     *ZERO ADD LENNUM2 TIMEOUT            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C          
C       EVAL SECTELNET  = %SUBST(BUFFERX:POS:LENNUM2)
C       ADD LENNUM2 POS            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C          
C       EVAL TN5250DS   = %SUBST(BUFFERX:POS:LENNUM2)
C       ADD LENNUM2 POS            
C          
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR21            
C       EXSR GETCHAR              
C       MOVEL(P) CHAR LENCHAR22            
C          
C     POS ADD LENNUM2 LENX            
C **   POS DSPLY                
C **   LENNUM2 DSPLY                
C     BUFFERXLEN IFLT LENX              
C     BUFFERXLEN SUB POS LENNUM2            
C       ENDIF                
C **   LENNUM2 DSPLY                
C          
C       EVAL RECVSEND   = %SUBST(BUFFERX:POS:LENNUM2)
C       ADD LENNUM2 POS            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RCVSCREEN CALL TN5250SB    
  X  
C     QRCVSCREENPARM PLIST                
C       PARM   SCREENQ            
C       PARM   SCREENQLIB            
C       PARM   DTALEN            
C       PARM   BUF2TEXT            
C       PARM SCREENWAIT SCREENWAITX            
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     TIMEOUTX BEGSR                
C       TIME   DATETIME            
C     *ZERO ADD TIMEOUT5 TIMEOUT            
C     DATETIME SUBDUR TIMEOUT5:*S DATETIME2            
C     DATETIME3 IFGT DATETIME2              
C     *ZERO ADD TIMEOUT4 TIMEOUT            
C     DATETIME SUBDUR TIMEOUT4:*S DATETIME2            
C     DATETIME3 IFGT DATETIME2              
C     *ZERO ADD TIMEOUT3 TIMEOUT            
C     DATETIME SUBDUR TIMEOUT3:*S DATETIME2            
C     DATETIME3 IFGT DATETIME2              
C     *ZERO ADD TIMEOUT2 TIMEOUT            
C     DATETIME SUBDUR TIMEOUT2:*S DATETIME2            
C     DATETIME3 IFGT DATETIME2              
C     *ZERO ADD TIMEOUT1 TIMEOUT            
C     DATETIME SUBDUR TIMEOUT1:*S DATETIME2            
C     DATETIME3 IFGT DATETIME2              
C     *ZERO ADD TIMEOUT0 TIMEOUT            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * RECVSEND1 EXSR TN5250SB    
  X  
C     INPUTALL BEGSR                
C       SELECT    
C     AID WHENEQ RESTART$              
C       TIME   DATETIME3            
C          
C     AID WHENEQ CLOSE2$              
C       TIME   DATETIME3            
C       SETON         72  
C          
C     AID WHENNE NULL$              
C       MOVEL(P) PUTGETX OPCODEX            
C       EXSR FMTFIELDS              
C       EXSR SENDBUF2              
C          
C     READWAIT WHENEQ SAVE$              
C       MOVEL(P) NULL$ READWAIT            
C          
C     FLAGS1 WHENEQ ATTN$              
C     FLAGS1 OREQ SYSREQ$              
C     FLAGS1 OREQ TESTREQ$              
C       MOVEL(P) NULL$ OPCODEX            
C       EXSR SENDNONE              
C       ENDSL                
C       MOVEL(P) NULL$ FLAGS1            
C       MOVEL(P) NULL$ FLAGS2            
C          
C       ENDSR                
C          
  X * RCVINPUT EXSR TN5250SB    
  X * DATA EXSR TN5250SB    
  X * DATA EXSR TN5250SB    
  X  
C     INPUT1 BEGSR                
C     *ZERO ADD 1 POSN            
C       EVAL BUF        =  INPUT
C          
C     POSN DOWLE BUFLEN              
C          
C     '=' SCAN BUF:POSN POS2     77 78  
C   N78 1 ADD BUFLEN POS2            
C       EXSR INPUT2              
C          
C     UPPER:LOWER XLATE BUF2 BUF2            
C       MOVEL(P) BUF2 NAME            
C       ADD 1 POS2            
C          
C     '&' SCAN BUF:POS2 POS3     77 78  
C   N78 1 ADD BUFLEN POS3            
C       EXSR INPUT5              
C          
C     POS3 ADD 1 POSN            
C       ENDDO                
C          
C     *ZERO IFNE CURSOR2              
C     CURSOR3 ADD CURSOR2 CURSOR            
C       ENDIF                
C       ENDSR                
C          
  X * INPUT1 EXSR TN5250SB    
  X  
C     INPUT2 BEGSR                
C     POS2 SUB POSN LEN            
C          
C     LEN IFGE 1              
C       EVAL BUF2 = %SUBST ( BUF:POSN:LEN)
C       ELSE                
C       EVAL BUF2 = ''
C       ENDIF                
C *     --------------------------------------
C *     Zeichen + durch Leerzeichen ersetzen
C *     --------------------------------------
C     '+':' ' XLATE BUF2 BUF2            
C          
C *     --------------------------------------
C *     Zeichen %XX durch X ersetzen
C *     --------------------------------------
C     *BLANKS IFNE BUF2              
C     '%' SCAN BUF2 POSN     77 78  
C     *IN78 DOWEQ *ON              
C       SUBST(P) BUF2:POSN CHARDS     77  
C   77   CLEAR   CHARDS            
C     HEXCHARS CHECK CHAR2       77 78  
C     *IN78 IFEQ *OFF              
C     LOWER:UPPER XLATE CHAR2 CHAR2            
C       CALLP(E) CVTCH ( CHAR:CHAR2:2)
C       EVAL BUF2 = %REPLACE(CHAR:BUF2:POSN:3)
C       ENDIF                
C       ADD 1 POSN            
C     '%' SCAN BUF2:POSN POSN     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * INPUT4 EXSR TN5250SB    
  X * INPUT4 EXSR TN5250SB    
  X * INPUT4 EXSR TN5250SB    
  X * INPUT4 EXSR TN5250SB    
  X * INPUT4 EXSR TN5250SB    
  X  
C     INPUT3 BEGSR                
C     POS3 SUB POS2 LEN            
C          
C     LEN IFGE 1              
C       EVAL BUF3 = %SUBST ( BUF:POS2:LEN)
C       ELSE                
C       EVAL BUF3 = ''
C       ENDIF                
C *     --------------------------------------
C *     Zeichen + durch Leerzeichen ersetzen
C *     --------------------------------------
C     '+':' ' XLATE BUF3 BUF3            
C          
C *     --------------------------------------
C *     Zeichen %XX durch X ersetzen
C *     --------------------------------------
C     *BLANKS IFNE BUF3              
C     '%' SCAN BUF3 POSN     77 78  
C     *IN78 DOWEQ *ON              
C       SUBST(P) BUF3:POSN CHARDS     77  
C   77   CLEAR   CHARDS            
C     HEXCHARS CHECK CHAR2       77 78  
C     *IN78 IFEQ *OFF              
C     LOWER:UPPER XLATE CHAR2 CHAR2            
C       CALLP(E) CVTCH ( CHAR:CHAR2:2)
C       EVAL BUF3 = %REPLACE(CHAR:BUF3:POSN:3)
C       ENDIF                
C       ADD 1 POSN            
C     '%' SCAN BUF3:POSN POSN     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * INPUT5 EXSR TN5250SB    
  X  
C     INPUT4 BEGSR                
C       SELECT    
C     NAME WHENEQ IFRAME              
C       EXSR INPUT3              
C     '0':' ' XLATE BUF3 BUF3            
C     *BLANKS IFNE BUF3              
C       MOVEL(P) 'X' RELOAD            
C       ENDIF                
C          
C     NAME WHENEQ SELECT              
C       EXSR INPUT3              
C     BUF3LEN IFGE 1              
C       SUBST(P) BUF3 STR     77  
C       EXSR STRNUM              
C     *ZERO ADD NUM REMOTE            
C       ENDIF                
C          
C     NAME WHENEQ CARET              
C       EXSR INPUT3              
C     BUF3LEN IFGE 1              
C       SUBST(P) BUF3 STR     77  
C       EXSR STRNUM              
C     *ZERO ADD NUM CURSOR3            
C       ENDIF                
C          
C     NAME WHENEQ FOCUS              
C       EXSR INPUT3              
C       MOVEL(P) BUF3 CHAR            
C     'p' IFEQ CHAR              
C     BUF3LEN IFGE 2              
C       SUBST(P) BUF3:2 STR     77  
C       EXSR STRNUM              
C     *ZERO ADD NUM IDX            
C     IDX IFGE 1              
C     IDX ANDLE FMTX              
C     *ZERO ADD FMTPOS(IDX) CURSOR2            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C          
C       OTHER                
C       MOVEL(P) NAME CHAR            
C     'p' IFEQ CHAR              
C     BUF2LEN IFGE 2              
C       SUBST(P) BUF2:2 STR     77  
C       EXSR STRNUM              
C     *ZERO ADD NUM IDX            
C     IDX IFGE 1              
C     IDX ANDLE FMTX              
C     FMTPOS(IDX) ADD FMTLEN(IDX) LEN            
C     LEN IFLE SCREENXLEN              
C       EXSR INPUT3              
C          
C       EVAL BUFV = %SUBST ( SCREENX:FMTPOS(IDX):
C                 FMTLEN(IDX))
C     NULL$:NBSP$ XLATE BUF3 BUF3            
C     NULL$:NBSP$ XLATE BUFV BUFV            
C          
C     SRC1:SRC2 XLATE BUF3 BUF3            
C     SRC1:SRC2 XLATE BUFV BUFV            
C          
C     FMTSTEP(IDX) IFEQ 1              
C     NBSP$ CHECKR BUFV POSN            
C       ADD 1 POSN            
C     NBSP$:' ' XLATE BUFV:POSN BUFV     77  
C       EVAL BUFV = %TRIMR ( BUFV)
C       ENDIF                
C          
C       TESTB FFW1BYPASS FMTFFW1(IDX)     78  
C     *IN78 IFEQ *ON              
C          
C     BUFV IFNE BUF3              
C     BUFVLEN ORNE BUF3LEN              
C          
C     FMTLEN(IDX) SUB BUF3LEN LEN     77  
C   77   EVAL %SUBST(BUF3TEXT:BUF3LEN+1:LEN) = *ALLX'00'
C     *ZERO ADD FMTLEN(IDX) BUF3LEN            
C          
C       EVAL BUFV = %SUBST ( SCREENX:FMTPOS(IDX):
C                 FMTLEN(IDX))
C     NULL$:NBSP$ XLATE BUF3 BUF3            
C     NULL$:NBSP$ XLATE BUFV BUFV            
C          
C     SRC1:SRC2 XLATE BUF3 BUF3            
C     SRC1:SRC2 XLATE BUFV BUFV            
C          
C     NBSP$:NULL$ XLATE BUF3 BUF3            
C     NBSP$:NULL$ XLATE BUFV BUFV            
C          
C     BUFV IFNE BUF3              
C     BUFVLEN ORNE BUF3LEN              
C          
C       DO FMTLEN(IDX) LEN            
C          
C       SUBST BUF3:LEN CHAR     77  
C       SUBST BUFV:LEN CHARX     77  
C          
C     CHARX IFNE CHAR              
C       EVAL %SUBST(SCREENX:FMTPOS(IDX)+LEN-1:1) = CHAR
C          
C       BITON FFW1MDT FMTFFW1(IDX)            
C       MOVEL(P) 'X' MDTX            
C          
C       ENDIF                
C       ENDDO                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSL                
C       ENDSR                
C          
  X * INPUT1 EXSR TN5250SB    
  X  
C     INPUT5 BEGSR                
C       SELECT    
C     NAME WHENEQ F1              
C       MOVEL(P) F1$ AID            
C     NAME WHENEQ F2              
C       MOVEL(P) F2$ AID            
C     NAME WHENEQ F3              
C       MOVEL(P) F3$ AID            
C     NAME WHENEQ F4              
C       MOVEL(P) F4$ AID            
C     NAME WHENEQ F5              
C       MOVEL(P) F5$ AID            
C     NAME WHENEQ F6              
C       MOVEL(P) F6$ AID            
C     NAME WHENEQ F7              
C       MOVEL(P) F7$ AID            
C     NAME WHENEQ F8              
C       MOVEL(P) F8$ AID            
C     NAME WHENEQ F9              
C       MOVEL(P) F9$ AID            
C     NAME WHENEQ F10              
C       MOVEL(P) F10$ AID            
C     NAME WHENEQ F11              
C       MOVEL(P) F11$ AID            
C     NAME WHENEQ F12              
C       MOVEL(P) F12$ AID            
C     NAME WHENEQ F13              
C       MOVEL(P) F13$ AID            
C     NAME WHENEQ F14              
C       MOVEL(P) F14$ AID            
C     NAME WHENEQ F15              
C       MOVEL(P) F15$ AID            
C     NAME WHENEQ F16              
C       MOVEL(P) F16$ AID            
C     NAME WHENEQ F17              
C       MOVEL(P) F17$ AID            
C     NAME WHENEQ F18              
C       MOVEL(P) F18$ AID            
C     NAME WHENEQ F19              
C       MOVEL(P) F19$ AID            
C     NAME WHENEQ F20              
C       MOVEL(P) F20$ AID            
C     NAME WHENEQ F21              
C       MOVEL(P) F21$ AID            
C     NAME WHENEQ F22              
C       MOVEL(P) F22$ AID            
C     NAME WHENEQ F23              
C       MOVEL(P) F23$ AID            
C     NAME WHENEQ F24              
C       MOVEL(P) F24$ AID            
C     NAME WHENEQ CLEAR              
C       MOVEL(P) CLEAR$ AID            
C     NAME WHENEQ ENTER              
C       MOVEL(P) ENTER$ AID            
C     NAME WHENEQ HELP              
C       MOVEL(P) HELP$ AID            
C     NAME WHENEQ PAGEUP              
C       MOVEL(P) PAGEUP$ AID            
C     NAME WHENEQ PAGEDOWN              
C       MOVEL(P) PAGEDOWN$ AID            
C     NAME WHENEQ PAGERIGHT              
C       MOVEL(P) PAGERIGHT$ AID            
C     NAME WHENEQ PAGELEFT              
C       MOVEL(P) PAGELEFT$ AID            
C     NAME WHENEQ ROLLUP              
C       MOVEL(P) ROLLUP$ AID            
C     NAME WHENEQ ROLLDOWN              
C       MOVEL(P) ROLLDOWN$ AID            
C     NAME WHENEQ ROLLRIGHT              
C       MOVEL(P) ROLLRIGHT$ AID            
C     NAME WHENEQ ROLLLEFT              
C       MOVEL(P) ROLLLEFT$ AID            
C     NAME WHENEQ PRINT              
C       MOVEL(P) PRINT$ AID            
C     NAME WHENEQ RECORDBACKSP              
C       MOVEL(P) RECORDBACKSP$ AID            
C     NAME WHENEQ AUTOENTERFET              
C       MOVEL(P) AUTOENTERFET$ AID            
C     NAME WHENEQ AUTOENTER              
C       MOVEL(P) AUTOENTER$ AID            
C     NAME WHENEQ RESTART              
C       MOVEL(P) RESTART$ AID            
C     NAME WHENEQ CLOSE2              
C       MOVEL(P) CLOSE2$ AID            
C          
C     NAME WHENEQ ATTN              
C       MOVEL(P) ATTN$ FLAGS1            
C     NAME WHENEQ SYSREQ              
C       MOVEL(P) SYSREQ$ FLAGS1            
C     NAME WHENEQ TESTREQ              
C       MOVEL(P) TESTREQ$ FLAGS1            
C       OTHER                
C       EXSR INPUT4              
C       ENDSL                
C       ENDSR                
C          
  X * FMTFIELDS EXSR TN5250SB    
  X  
C     SOHFXX BEGSR                
C          
C       SELECT    
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     AID WHENEQ F24$              
C     *IN64 COMP *ON       12  
C     AID WHENEQ F23$              
C     *IN63 COMP *ON       12  
C     AID WHENEQ F22$              
C     *IN62 COMP *ON       12  
C     AID WHENEQ F21$              
C     *IN61 COMP *ON       12  
C     AID WHENEQ F20$              
C     *IN60 COMP *ON       12  
C     AID WHENEQ F19$              
C     *IN59 COMP *ON       12  
C     AID WHENEQ F18$              
C     *IN58 COMP *ON       12  
C     AID WHENEQ F17$              
C     *IN57 COMP *ON       12  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     AID WHENEQ F16$              
C     *IN56 COMP *ON       12  
C     AID WHENEQ F15$              
C     *IN55 COMP *ON       12  
C     AID WHENEQ F14$              
C     *IN54 COMP *ON       12  
C     AID WHENEQ F13$              
C     *IN53 COMP *ON       12  
C     AID WHENEQ F12$              
C     *IN52 COMP *ON       12  
C     AID WHENEQ F11$              
C     *IN51 COMP *ON       12  
C     AID WHENEQ F10$              
C     *IN50 COMP *ON       12  
C     AID WHENEQ F9$              
C     *IN49 COMP *ON       12  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C     AID WHENEQ F8$              
C     *IN48 COMP *ON       12  
C     AID WHENEQ F7$              
C     *IN47 COMP *ON       12  
C     AID WHENEQ F6$              
C     *IN46 COMP *ON       12  
C     AID WHENEQ F5$              
C     *IN45 COMP *ON       12  
C     AID WHENEQ F4$              
C     *IN44 COMP *ON       12  
C     AID WHENEQ F3$              
C     *IN43 COMP *ON       12  
C     AID WHENEQ F2$              
C     *IN42 COMP *ON       12  
C     AID WHENEQ F1$              
C     *IN41 COMP *ON       12  
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C       OTHER                
C       SETOFF         12  
C       ENDSL                
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C   12   MOVEL(P) 'X' SOHX            
C   N12   CLEAR   SOHX            
C          
C       ENDSR                
C          
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * INPUTALL EXSR TN5250SB    
  X  
C     FMTFIELDS BEGSR                
C *     --------------------------------------
C *     Felder lesen
C *     --------------------------------------
C     *ZERO ADD CURSOR SCNPOS2            
C       EXSR ROWCOLX              
C     *ZERO ADD ROW LENNUM21            
C     *ZERO ADD COL LENNUM22            
C       EVAL BUF2 =        LENCHAR2 + AID
C          
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C       EXSR SOHFXX              
C          
C     *BLANKS IFEQ SOHX              
C *     --------------------------------------
C *     Start of Header
C *     --------------------------------------
C          
C     *BLANKS IFNE MDTX              
C *     --------------------------------------
C *     Felder lesen
C *     --------------------------------------
C       DO FMTX IDX            
C          
C       SELECT    
C *     --------------------------------------
C *     Felder lesen
C *     --------------------------------------
C     READWAIT WHENEQ READINPUTFLDS$              
C     READWAIT OREQ READIMMED$              
C       EXSR FMTFIELDS2              
C          
C *     --------------------------------------
C *     Felder lesen
C *     --------------------------------------
C     READWAIT WHENEQ READMDTFLDS$              
C     READWAIT OREQ READMDTALT$              
C     READWAIT OREQ READMDTIMMALT$              
C          
C       TESTB FFW1MDT FMTFFW1(IDX)     78  
C     *IN78 IFEQ *ON              
C       EVAL BUF2 = BUF2 + SBA$
C     *ZERO ADD FMTPOS(IDX) SCNPOS2            
C       EXSR ROWCOLX              
C     *ZERO ADD ROW LENNUM21            
C     *ZERO ADD COL LENNUM22            
C       EVAL BUF2 = BUF2 + LENCHAR2
C       EXSR FMTFIELDS2              
C       ENDIF                
C       ENDSL                
C       ENDDO                
C       ENDIF                
C       ENDIF                
C       MOVEL(P) NULL$ READWAIT            
C       ENDSR                
C          
  X * FMTFIELDS EXSR TN5250SB    
  X * FMTFIELDS EXSR TN5250SB    
  X  
C     FMTFIELDS2 BEGSR                
C *     --------------------------------------
C *     Felder lesen
C *     --------------------------------------
C       EVAL BUF3 = %SUBST ( SCREENX:
C         FMTPOS(IDX):
C         FMTLEN(IDX))
C          
C *     --------------------------------------
C *     Dup
C *     --------------------------------------
C     DU$X:DU$ XLATE BUF3 BUF3            
C          
C *     --------------------------------------
C *     Field Mark
C *     --------------------------------------
C     FM$X:FM$ XLATE BUF3 BUF3            
C          
C *     --------------------------------------
C *     Numerisch
C *     --------------------------------------
C       TESTB FFW1NUMSIGN FMTFFW1(IDX)     78  
C     *IN78 IFEQ *ON              
C     *ZERO ADD FMTLEN(IDX) LEN3            
C     LEN3 IFGT 1              
C     LEN3 SUB 1 POS3            
C       SUBST(P) BUF3:LEN3 CHAR1            
C       SUBST(P) BUF3:POS3 CHAR            
C     '-' IFEQ CHAR1              
C       BITOFF NUMSIGNDF CHAR            
C       ENDIF                
C       EVAL BUF3 = %SUBST ( BUF3:1:LEN3-2) + CHAR + ' '
C       ENDIF                
C       ENDIF                
C          
C       SELECT    
C *     --------------------------------------
C *     Felder lesen
C *     --------------------------------------
C     READWAIT WHENEQ READINPUTFLDS$              
C     READWAIT OREQ READIMMED$              
C     NULL$:' ' XLATE BUF3 BUF3            
C          
C     READWAIT WHENEQ READMDTFLDS$              
C     NULL$:' ' XLATE BUF3 BUF3            
C       EVAL BUF3 = %TRIMR ( BUF3)
C          
C     READWAIT WHENEQ READMDTALT$              
C     READWAIT OREQ READMDTIMMALT$              
C     NULL$ CHECKR BUF3 POS            
C       ADD 1 POS            
C     NULL$:' ' XLATE BUF3:POS BUF3     77  
C       EVAL BUF3 = %TRIMR ( BUF3)
C       ENDSL                
C       EVAL BUF2 = BUF2 + BUF3
C       ENDSR                
C          
  X * OPCODES EXSR TN5250SB    
  X * INPUTALL EXSR TN5250SB    
  X  
C     SENDNONE BEGSR                
C       CLEAR   BUF2            
C       EXSR SENDBUF2              
C       ENDSR                
C          
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * COMMANDS EXSR TN5250SB    
  X * INPUTALL EXSR TN5250SB    
  X * SENDNONE EXSR TN5250SB    
  X  
C     SENDBUF2 BEGSR                
C       MOVEL(P) HEADER HEADERSAVE            
C     BUF2LEN ADD HEADERLEN LENGTH            
C       MOVEL(P) GDS RECORDTYPE            
C       MOVEL(P) *ALLX'00' RESERVED            
C     *ZERO ADD VARYLEN VARYLENGTH            
C       MOVEL(P) FLAGS1 SYSFLAGS1            
C       MOVEL(P) FLAGS2 SYSFLAGS2            
C       MOVEL(P) OPCODEX OPCODE            
C          
C       EVAL BUF2       =  HEADER + BUF2
C   74   EXSR BUF2HEX              
C       EXSR SENDBUF3              
C       MOVEL(P) HEADERSAVE HEADER            
C       ENDSR                
C          
  X * SENDBUF2 EXSR TN5250SB    
  X  
C     SENDBUF3 BEGSR                
C     *BLANKS IFNE BUF2              
C       TIME   DATETIME3            
C *     --------------------------------------
C *     Zeichen IAC durch IAC IAC ersetzen
C *     --------------------------------------
C     IAC$ SCAN BUF2 POSN     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUF2 = %REPLACE(IAC$+IAC$:BUF2:POSN:1)
C       ADD 2 POSN            
C     IAC$ SCAN BUF2:POSN POSN     77 78  
C       ENDDO                
C       ENDIF                
C          
C       EVAL BUF2 = BUF2 + IAC$+EOR$
C          
C       EXSR SENDWRITE2              
C       ENDSR                
C          
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X  
C     WRSTOUT BEGSR                
C *     --------------------------------------
C *     Inhalt von BUF ausgeben
C *     --------------------------------------
C     '§':NL XLATE BUF BUF            
C       CALLP(E) STOUT ( BUFTEXT:BUFLEN:QUSEC)
C       CLEAR   BUF            
C       ENDSR                
C          
  X * SENDHTML EXSR TN5250SB    
  X  
C     COLORS BEGSR                
C *     --------------------------------------
C *     Farben festlegen
C *     --------------------------------------
C       MOVEL(P) '#000000' COLTEXT            
C       MOVEL(P) '#ff9900' COLLINK            
C       MOVEL(P) '#ff9900' COLVLINK            
C       MOVEL(P) '#ff9900' COLALINK            
C       MOVEL(P) '#ffee77' COLBGCOLOR            
C       MOVEL(P) '#ffffbb' COLIMG            
C       MOVEL(P) '#ffdd66' COLTOP            
C       MOVEL(P) '#006600' COLGRN            
C       MOVEL(P) '#ff0099' COLWHT            
C       MOVEL(P) '#ff0000' COLRED            
C       MOVEL(P) '#ff0000' COLREDBL            
C       MOVEL(P) '#9900ff' COLTRQ            
C       MOVEL(P) '#ff9900' COLYLW            
C       MOVEL(P) '#ff0099' COLPNK            
C       MOVEL(P) '#0099ff' COLBLU            
C          
C *     --------------------------------------
C *     Farben festlegen
C *     --------------------------------------
C       MOVEL(P) '#ffffff' COLBGCOLOR            
C       MOVEL(P) '#ffee77' COLBGCOLOR            
C          
C     *OFF IFNE *OFF              
C *     --------------------------------------
C *     Farben festlegen
C *     --------------------------------------
C       MOVEL(P) '#00ff00' COLTEXT            
C       MOVEL(P) '#ffffff' COLLINK            
C       MOVEL(P) '#ffffff' COLVLINK            
C       MOVEL(P) '#ffffff' COLALINK            
C       MOVEL(P) '#000000' COLBGCOLOR            
C       MOVEL(P) '#333333' COLIMG            
C       MOVEL(P) '#000000' COLTOP            
C       MOVEL(P) '#00ff00' COLGRN            
C       MOVEL(P) '#ffffff' COLWHT            
C       MOVEL(P) '#ff0000' COLRED            
C       MOVEL(P) '#ff0000' COLREDBL            
C       MOVEL(P) '#00ffff' COLTRQ            
C       MOVEL(P) '#ffff00' COLYLW            
C       MOVEL(P) '#ff0099' COLPNK            
C       MOVEL(P) '#0099ff' COLBLU            
C          
C     *OFF IFNE *OFF              
C *     --------------------------------------
C *     Farben festlegen
C *     --------------------------------------
C       MOVEL(P) '#ff9900' COLTEXT            
C       MOVEL(P) '#ff9900' COLGRN            
C       ENDIF                
C          
C *     --------------------------------------
C *     Farben festlegen
C *     --------------------------------------
C       MOVEL(P) '#000000' COLBGCOLOR            
C       MOVEL(P) '#000000' COLBGCOLOR            
C       ENDIF                
C          
C       ENDSR                
C          
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X  
C     COLTAP BEGSR                
C       CLEAR   TAPX            
C *     --------------------------------------
C *     Webkit Tap Highlight Color
C *     --------------------------------------
C     *BLANKS IFNE COLX              
C       SUBST(P) COLX:2 RGB6            
C     LOWER:UPPER XLATE RGB6 RGB6            
C       CALLP(E) CVTCH ( RGB3:RGB6:6)
C       EVAL TAPX   =     'rgba('+%CHAR(R)+','+
C                %CHAR(G)+','+
C                %CHAR(B)+','+
C                 ALPHA4 +')'
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     SENDHTML BEGSR                
C     *OFF IFNE *OFF              
C       ENDIF                
C       EVAL SO = NBSP
C       EVAL SI = NBSP
C          
C       EVAL ATR1 = NBSP
C       EVAL ATR2 = NBSP
C       EVAL ATR3 = NBSP
C       EVAL ATRX = NBSP
C          
C       MOVEL(P) DATEMIN DATE            
C     *ZERO ADD STATUS200 STATUS            
C       MOVEL(P) VIEWPORTMAX VIEWPORT            
C          
C *     --------------------------------------
C *     Informationen für Suchmaschinen
C *     --------------------------------------
C     *BLANKS COMP RELOAD       78  
C   78 *BLANKS COMP RMTNAME       78 78  
C   78   MOVEL(P) NOINDEXFOLLOW ROBOTS            
C   N78   MOVEL(P) INDEXFOLLOW ROBOTS            
C          
C *     --------------------------------------
C *     Organisation und Copyright ermitteln
C *     --------------------------------------
C       MOVEL(P) GENERATOR ORGANIZATION            
C       MOVEL(P) GENERATOR COPYRIGHT            
C       CAT COPY :1 COPYRIGHT            
C       CAT COPYRIGHTX :1 COPYRIGHT            
C          
C *     --------------------------------------
C *     Cache-Zeiten einstellen
C *     --------------------------------------
C     CACHE# CAT(P) CACHEMIN# :1 CACHE            
C          
C       CAT PRAGMA# :0 CACHE            
C       CAT NOCACHE# :1 CACHE            
C          
C       CAT EXPIRES# :0 CACHE            
C       CAT DATEMIN :1 CACHE            
C       CAT '§' :0 CACHE            
C          
C *     --------------------------------------
C *     Titel aufbauen
C *     --------------------------------------
C     *BLANKS COMP RMTNAME       78  
C   78   EVAL BUFV = 'TN5250'
C   N78   EVAL BUFV = %TRIMR ( RMTNAME)
C       MOVEL(P) BUFV TITLE            
C          
C *     --------------------------------------
C *     Titel aufbauen
C *     --------------------------------------
C     *BLANKS COMP SECHTTP       78  
C   78   EVAL SECHTTP     = NONEX
C          
C     *BLANKS COMP SECTELNET       78  
C   78   EVAL SECTELNET   = NONEX
C          
C *     --------------------------------------
C *     Automatisches Weiterleiten einstellen
C *     --------------------------------------
C     *BLANKS IFEQ RELOAD              
C     *BLANKS ANDNE REDIRECT              
C     *BLANKS ANDEQ REDIRECTX              
C     *ZERO ADD STATUS302 STATUS            
C       EVAL BUFV = %REPLACE(%TRIMR(SESSIONADDXX)+
C           %TRIMR(SESSION8):SCRIPT:
C                  SESSIONPOSX:
C                  SESSIONLENX)
C     '/.html' IFEQ BUFV              
C       EVAL BUFV = '/'
C       ENDIF                
C       EVAL LOCATION  =
C       LOCATION# + ' ' +
C         SCHEME  +'://'+ HOST + BUFV+'§'
C       ENDIF                
C *     --------------------------------------
C *     Webseite ausgeben
C *     --------------------------------------
C       EVAL BUF = %TRIM(CACHE)+
C             %TRIM(TITLE#)+' '+
C             %TRIM(TITLE) +'§'+
C             %TRIM(STATUS#)+' '+
C             %CHAR(STATUS) +'§'+
C             %TRIM(ROBOTS#)+' '+
C             %TRIM(ROBOTS) +'§'+
C             %TRIM(LOCATION)+
C             %TRIM(CONTENT#)+' '+
C             %TRIM(MIMEHTML)+'§§'
C          
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Titel aufbauen
C *     --------------------------------------
C       EVAL BUFV = %TRIMR ( TITLE)
C       EXSR BUFVFORM              
C       MOVEL(P) BUFV TITLE            
C          
C *     --------------------------------------
C *     Titel aufbauen
C *     --------------------------------------
C     *BLANKS COMP REDIRECT       78  
C   N78 *BLANKS COMP REDIRECTX       78  
C   N78   EVAL BUFV =   '('+%TRIMR(SECHTTP)  +')'
C   78   EVAL BUFV =   '('+%TRIMR(SECHTTP)  +
C                '/'+%TRIMR(SECTELNET)+')'
C   78   EVAL BUFV =
C       BUFV +       %TRIMR(
C                ' '+%TRIMR(ADDRFAMILY))
C       EXSR BUFVFORM              
C       MOVEL(P) BUFV TITLEX            
C          
C *     --------------------------------------
C *     Beschreibung aufbauen
C *     --------------------------------------
C     *BLANKS COMP RMTNAME2       78  
C   78   EVAL BUFV = %TRIMR ( DESCRIPTION#)
C   N78   EVAL BUFV = %TRIMR ( RMTNAME2)
C       EXSR BUFVFORM              
C          
C *     --------------------------------------
C *     Farben ermitteln
C *     --------------------------------------
C       EXSR COLORS              
C          
C *     --------------------------------------
C *     Dokumententyp bestimmen
C *     --------------------------------------
C     *BLANKS COMP REDIRECT       78  
C   78 *BLANKS COMP REDIRECTX       78  
C   78   EVAL DOCTYPE = HTML32
C   N78   EVAL DOCTYPE = HTML5
C          
C *     --------------------------------------
C *     Neuladen einstellen
C *     --------------------------------------
C     *BLANKS IFNE RELOAD              
C     *BLANKS ANDEQ REDIRECT              
C     *OFF ANDNE *OFF              
C       SELECT    
C     READWAIT WHENEQ SAVE$              
C       EVAL REFRESH  = '+
C       §<meta http-equiv="Refresh" +
C                 content="1">'
C       OTHER                
C       EVAL REFRESH  = '+
C       §<meta http-equiv="Refresh" +
C                 content="'+%CHAR(TIMEOUT+3)+'">'
C       ENDSL                
C       ENDIF                
C *     --------------------------------------
C *     Neuladen einstellen
C *     --------------------------------------
C     *BLANKS IFEQ RELOAD              
C     *BLANKS ANDNE REDIRECT              
C     *BLANKS ANDEQ REDIRECTX              
C       EVAL BUF2 = BUFV
C       EVAL BUFV = %REPLACE(%TRIMR(SESSIONADDXX)+
C           %TRIMR(SESSION8):SCRIPT:
C                  SESSIONPOSX:
C                  SESSIONLENX)
C     '/.html' IFEQ BUFV              
C       EVAL BUFV = '/'
C       ENDIF                
C       EXSR BUFVFORM              
C       EVAL REFRESH  = '+
C       §<meta http-equiv="Refresh" +
C                 content="0; URL='+BUFV+'">'
C          
C       EVAL BUFV = BUF2
C       ENDIF                
C *     --------------------------------------
C *     Inhaltstyp und Zeichensatz
C *     --------------------------------------
C       EVAL CHARSET  = '+
C       §<meta http-equiv="'+%TRIM(CONTENT) +'" +
C                 content="'+%TRIM(MIMEHTML)+'; +
C                 charset=' +%TRIM(LATIN1)  +'">'
C          
C *     --------------------------------------
C *     Sprache
C *     --------------------------------------
C       EVAL LANGUAGE = LANGUAGE#
C          
C *     --------------------------------------
C *     Sprache
C *     --------------------------------------
C       EVAL LANG = ' lang="'+%TRIM(LANGUAGE)+'"'
C          
C *     --------------------------------------
C *     Seiteninformationen ausgeben
C *     --------------------------------------
C       EVAL BUF = DOCTYPE +'§+
C          
C       §<html'+%TRIMR(LANG)+'>+
C          
C       §<head><title>'+
C               %TRIML(MESSAGE+' ')+
C               %TRIMR(TITLE)+
C           %TRIMR(' '+TITLEX)+
C                   '</title>§'+
C          
C       %TRIM(REFRESH) +
C       %TRIM(CHARSET) +
C          
C          '§<meta name="description" +
C       content="'+BUFV+'">§+
C          
C           §<meta name="language" +
C       content="'+%TRIM(LANGUAGE)+'">+
C          
C           §<meta name="owner" +
C       content="'+%TRIM(OWNER)+'">+
C          
C           §<meta name="author" +
C       content="'+%TRIM(AUTHOR)+'">+
C          
C           §<meta name="publisher" +
C       content="'+%TRIM(PUBLISHER)+'">+
C          
C           §<meta name="generator" +
C       content="'+%TRIM(GENERATOR)+'">+
C          
C           §<meta name="organization" +
C       content="'+%TRIM(ORGANIZATION)+'">+
C          
C           §<meta name="copyright" +
C       content="'+%TRIM(COPYRIGHT)+'">+
C          
C **         §<meta name="date" +
C **     content="'+%TRIM(DATE)+'">+
C          
C           §<meta name="format-detection" +
C       content="'+%TRIM(FORMATDETECTION)+'">+
C          
C           §<meta name="viewport" +
C       content="'+%TRIM(VIEWPORT)+'">+
C          
C           §<meta name="robots" +
C       content="'+%TRIM(ROBOTS)+'">§+
C          
C           §<link rel="icon" +
C             href="/favicon.ico">+
C          
C           §<link rel="icon" +
C                href="/apple-touch-icon.png">+
C          
C           §<link rel="apple-touch-icon" +
C                href="/apple-touch-icon.png">+
C          
C           §<link rel="stylesheet" +
C                href="/stylesheet.css" +
C           type="text/css">+
C          
C           §<link rel="search" +
C                href="/search.osdx" +
C                type="application/+
C            opensearchdescription+xml" +
C               title="TN5250">'
C          
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Seiteninformationen ausgeben
C *     --------------------------------------
C       EVAL BUF = '§'+STYLE+'§§'
C          
C     *BLANKS IFEQ REDIRECT              
C          
C       MOVEL(P) COLBGCOLOR COLX            
C       EXSR COLTAP              
C       EVAL TAPBGCOLOR =  TAPX
C          
C       MOVEL(P) COLGRN COLX            
C       EXSR COLTAP              
C       EVAL TAPGRN     =  TAPX
C       MOVEL(P) COLWHT COLX            
C       EXSR COLTAP              
C       EVAL TAPWHT     =  TAPX
C       MOVEL(P) COLRED COLX            
C       EXSR COLTAP              
C       EVAL TAPRED     =  TAPX
C       MOVEL(P) COLREDBL COLX            
C       EXSR COLTAP              
C       EVAL TAPREDBL   =  TAPX
C       MOVEL(P) COLTRQ COLX            
C       EXSR COLTAP              
C       EVAL TAPTRQ     =  TAPX
C       MOVEL(P) COLYLW COLX            
C       EXSR COLTAP              
C       EVAL TAPYLW     =  TAPX
C       MOVEL(P) COLPNK COLX            
C       EXSR COLTAP              
C       EVAL TAPPNK     =  TAPX
C       MOVEL(P) COLBLU COLX            
C       EXSR COLTAP              
C       EVAL TAPBLU     =  TAPX
C          
C       EVAL BUF =
C       BUF + '-
C          
C         .c33,.c37,§-
C         .c35,.c39x,§-
C         .c41,.c45,§-
C         .c43,.c47x,§-
C         .c49,.c53,§-
C         .c51,.c55x,§-
C         .c57,.c61,§-
C         .c59,.c63x { '+  COLOR+COLBGCOLOR+'; }§§-
C          
C         .c33,.c37,§-
C         .c35,.c39x,§-
C         .c41,.c45,§-
C         .c43,.c47x,§-
C         .c49,.c53,§-
C         .c51,.c55x,§-
C         .c57,.c61,§-
C         .c59,.c63x { '+HICOLOR+TAPBGCOLOR+'; }§§-
C          
C         .c32,.c36  { '+  COLOR+COLGRN  +'; }§-
C         .c34,.c38  { '+  COLOR+COLWHT  +'; }§-
C         .c40,.c44  { '+  COLOR+COLRED  +'; }§-
C         .c42,.c46  { '+  COLOR+COLREDBL+'; }§-
C         .c48,.c52  { '+  COLOR+COLTRQ  +'; }§-
C         .c50,.c54  { '+  COLOR+COLYLW  +'; }§-
C         .c56,.c60  { '+  COLOR+COLPNK  +'; }§-
C         .c58,.c62  { '+  COLOR+COLBLU  +'; }§§-
C          
C         .c33,.c37  { '+BGCOLOR+COLGRN  +'; }§-
C         .c35,.c39x { '+BGCOLOR+COLWHT  +'; }§-
C         .c41,.c45  { '+BGCOLOR+COLRED  +'; }§-
C         .c43,.c47x { '+BGCOLOR+COLREDBL+'; }§-
C         .c49,.c53  { '+BGCOLOR+COLTRQ  +'; }§-
C         .c51,.c55x { '+BGCOLOR+COLYLW  +'; }§-
C         .c57,.c61  { '+BGCOLOR+COLPNK  +'; }§-
C         .c59,.c63x { '+BGCOLOR+COLBLU  +'; }§§-
C          
C         .c36,.c37x { '+BBCOLOR+COLGRN  +'; }§-
C         .c38,.c39x { '+BBCOLOR+COLWHT  +'; }§-
C         .c44,.c45x { '+BBCOLOR+COLRED  +'; }§-
C         .c46,.c47x { '+BBCOLOR+COLREDBL+'; }§-
C         .c52,.c53x { '+BBCOLOR+COLTRQ  +'; }§-
C         .c54,.c55x { '+BBCOLOR+COLYLW  +'; }§-
C         .c60,.c61x { '+BBCOLOR+COLPNK  +'; }§-
C         .c62,.c63x { '+BBCOLOR+COLBLU  +'; }§§-
C          
C         .c32,.c36  { '+HICOLOR+TAPGRN  +'; }§-
C         .c34,.c38  { '+HICOLOR+TAPWHT  +'; }§-
C         .c40,.c44  { '+HICOLOR+TAPRED  +'; }§-
C         .c42,.c46  { '+HICOLOR+TAPREDBL+'; }§-
C         .c48,.c52  { '+HICOLOR+TAPTRQ  +'; }§-
C         .c50,.c54  { '+HICOLOR+TAPYLW  +'; }§-
C         .c56,.c60  { '+HICOLOR+TAPPNK  +'; }§-
C         .c58,.c62  { '+HICOLOR+TAPBLU  +'; }§§-
C          
C         .c39       { '+  COLOR+RGBA    +'; }§-
C         .c47       { '+  COLOR+RGBA    +'; }§-
C         .c55       { '+  COLOR+RGBA    +'; }§-
C         .c63       { '+  COLOR+RGBA    +'; }§-
C        .read       { '+  COLOR+RGBA    +'; }§§-
C          
C         .c39 input { '+BGCOLOR+RGBA    +'; }§-
C         .c47 input { '+BGCOLOR+RGBA    +'; }§-
C         .c55 input { '+BGCOLOR+RGBA    +'; }§-
C         .c63 input { '+BGCOLOR+RGBA    +'; }§-
C        .read input { '+BGCOLOR+RGBA    +'; }§§'
C       ENDIF                
C          
C       EVAL BUF =
C       BUF + '-
C          
C       button.top   { '+BGCOLOR       +COLTOP+'; }§-
C       button.odd   { '+BGCOLOR         +RGBX+'; }§-
C       button.even  { '+BGCOLOR         +RGBB+'; }§-
C       button,input { '+BGCOLOR         +RGBB+'; }§-
C       th,td { border-bottom:1px solid '+RGBA+'; }§-
C       pre b { border-bottom:1px solid '+RGBA+';§§-
C          
C              -webkit-background-clip:content-box;§-
C                 -moz-background-clip:content-box;§-
C          background-clip:content-box; +
C                                    }§§-
C          pre,input { letter-spacing:-1.2px; }§-
C       button,input { touch-action:+
C          manipulation; }§§-
C          
C          pre,input { font-family:'+'+
C          Courier,monospace;§-
C          font-weight:bold;§-
C          font-size:18px; }§-
C        .key,§-
C        .top,§-
C        .odd,§-
C        .even,§-
C         body,th,td { font-family:'+'+
C          Chalkboard SE,+
C          Choco Cooky,+
C          Droid Serif,serif;§-
C          font-weight:bold;§-
C          font-size:16px; }§§-
C          
C **                b { font-style:italic; }§-
C **                b { font-weight:normal; }§§-
C          
C              table { table-layout:fixed;§-
C          cursor:default; }§§-
C          
C               body { margin:8px 0px; }§-
C               form { margin:0px; }§-
C          pre,input { margin:0px; }§-
C              input { border:0px;§-
C          padding:0px; }§-
C       button,input { color:inherit;§-
C                caret-color:inherit;§-
C              -webkit-appearance:none;§-
C              -webkit-border-radius:0px;§-
C                 -moz-border-radius:0px;§-
C          border-radius:0px; }§-
C       button,input {§-
C              -webkit-box-sizing:border-box;§-
C                 -moz-box-sizing:border-box;§-
C          box-sizing:border-box; }§-
C             button {§-
C              -webkit-user-select:none;§-
C                 -moz-user-select:none;§-
C          user-select:none; }§§-
C          
C         #'+ANY+'+
C             :focus { outline:none; }§-
C            a:hover { cursor:pointer; }§§-
C          
C         .c42,.c46,.blink,§-
C         .c43,.c47x,blink {§§-
C          
C              -webkit-'+ANIMATIONBLINK+';§-
C                 -moz-'+ANIMATIONBLINK+';§-
C          '+ANIMATIONBLINK+'; }§§-
C          
C             @-webkit-'+KEYFRAMESBLINK+'§-
C                @-moz-'+KEYFRAMESBLINK+'§-
C         @'+KEYFRAMESBLINK+'§-
C       .overview th,§-
C       .overview td,§-
C       .keyboard th,§-
C       .keyboard td,§-
C       .keyfield th,§-
C       .keyfield td { border:2px solid #000000; +
C          height:32px; }§-
C       .overview th,§-
C       .overview td { border:0px solid #000000; +
C          height:32px; }§§-
C              .key,§-
C              .top,§-
C              .odd,§-
C              .even { border:0px solid #000000; +
C          height:100%; width:100%; }§§-
C          .overview,§-
C          .keyboard,§-
C          .keyfield { border-collapse:collapse; }§§-
C          
C            .screen { width:768px; }§-
C            .header { width:752px; }§-
C            .header { width:316px; }§-
C          .keyboard { width:752px; }§-
C          .keyfield { width:316px; }§-
C             .debugx{ width:316px; }§-
C            .screen { overflow:hidden; }§-
C            .header { margin:-1px 8px; }§-
C          .overview { margin:-1px 8px; }§-
C          .keyboard { margin:-1px 8px; }§-
C          .keyfield { margin:-1px 8px; }§-
C             .break { display:none; }§-
C              .dbcs { line-height:80%; }§-
C             .debug { font-kerning:none; }§-
C             .debugx{ font-kerning:none; }§-
C             .debug { letter-spacing:0px; }§-
C             .debugx{ letter-spacing:0px; }§-
C               .key { letter-spacing:0px; }§-
C               .top { letter-spacing:0px; }§-
C               .odd { letter-spacing:0px; }§-
C              .even { letter-spacing:0px; }§-
C              .dbcs { letter-spacing:1.2px; }§§-
C       '
C     'iPad' SCAN AGENT       77 78  
C     *IN78 IFEQ *OFF              
C   66   EVAL BUF =
C       BUF + '-
C          
C          @media (max-width:320px) {§-
C         .debug { max-width:316px; }§-
C         .debugx{ max-width:316px; }§-
C          .keyboard { width:316px; }§-
C          .keyfield { width:316px; }§-
C            .header { width:316px; }§-
C          .overview { margin:-1px 2px; }§-
C          .keyboard { margin:-1px 2px; }§-
C          .keyfield { margin:-1px 2px; }§-
C            .header { margin:-1px 2px; }§-
C             .break { display:block; }}§§-
C       '
C       ENDIF                
C       EVAL BUF =
C       BUF + '-
C          
C          @media (min-width:978px) {§-
C          .keyboard { width:960px; }§-
C          .keyfield { width:960px; }§-
C            .header { width:960px; }§-
C            .screen { width:960px; }§-
C                img { display:none; }§-
C          pre,input { font-size:20px; }§-
C          pre,input { line-height:0.99; }§-
C          pre,input { letter-spacing:0px; }§-
C              .dbcs { letter-spacing:4px; }}§§-
C          
C         @font-face { font-family:Choco Cooky;§-
C          font-style:normal;§-
C          font-weight:normal;§-
C          src:local(''Choco Cooky''),§-
C          url(/chococooky.woff) +
C          format(''woff'');§-
C          unicode-range: +
C          U+0000-1FFF; }§§'
C          
C     *BLANKS IFEQ REDIRECT              
C     *OFF ANDNE *OFF              
C       EVAL BUF =
C       BUF + '-
C         @font-face { font-family:Terminal;§-
C          font-style:normal;§-
C          font-weight:normal;§-
C          src:local(''Terminal''),§-
C          url(/file/terminal.woff) +
C          format(''woff''),§-
C          url(/file/terminal.ttf)  +
C          format(''truetype'');§-
C          unicode-range: +
C          U+0000-1FFF; }§§'
C       ENDIF                
C       EVAL BUF =
C       BUF + '-
C          
C       '+STYLEX+'+
C          </head>'
C          
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Seiteninformationen ausgeben
C *     --------------------------------------
C       EVAL BUF = '§§+
C       <body text="'+COLTEXT   +'" +
C             link="'+COLLINK   +'" +
C            vlink="'+COLVLINK  +'" +
C            alink="'+COLALINK  +'" +
C          bgcolor="'+COLBGCOLOR+'"'
C          
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Webkit Tap Highlight Color
C *     --------------------------------------
C     *BLANKS IFNE COLALINK              
C       SUBST(P) COLALINK:2 RGB6            
C     LOWER:UPPER XLATE RGB6 RGB6            
C       CALLP(E) CVTCH ( RGB3:RGB6:6)
C       EVAL STYLES =
C       STYLES +    '-webkit-tap-highlight-color:+
C         rgba('+%CHAR(R)+','+
C                %CHAR(G)+','+
C                %CHAR(B)+','+
C                 ALPHA4 +');'
C       ENDIF                
C       EVAL BUF = ' style="'+STYLES+'"><center>§'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL SRC = '/stars.js'
C       EVAL BUF =
C       BUF + '§<script type="text/javascript" +
C                   language="javascript" +
C            src="'+SRC+'" +
C             id="stars">+
C               </script>'
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL SRC = '/sparkle.js'
C       EVAL BUF =
C       BUF + '§<script type="text/javascript" +
C                   language="javascript" +
C            src="'+SRC+'" +
C             id="sparkle">+
C               </script>'
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '§§'
C       EXSR WRSTOUT              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR SENDHTML2              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '-
C          
C       §</form>+
C       §</center>+
C       §</body>+
C       §</html>§'
C          
C       EXSR WRSTOUT              
C          
C       ENDSR                
C          
  X * SENDHTML EXSR TN5250SB    
  X  
C     SENDHTML2 BEGSR                
C          
C       SELECT    
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS WHENEQ REDIRECT              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = SCRIPT
C     '/.html' IFEQ BUFV              
C       EVAL BUFV = '/'
C       ENDIF                
C       EXSR BUFVFORM              
C     ROWS IFGE 1              
C       EVAL BUF = '<div id="header" class="header">+
C              <h2 style="display:none;">'+
C                    %TRIMR(TITLE)+'</h2></div>§§'
C       ELSE                
C       EVAL BUF = '<div id="header" class="header">+
C              <h2>'+%TRIMR(TITLE)+'</h2></div>§§'
C       ENDIF                
C       EVAL BUF =
C       BUF + '<form method="post" +
C                    action="'+BUFV+'" +
C                  onsubmit="Submit()">§§'
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR REPLACE              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL AUTOCOMPLETE   = COMPLETEOFF
C       EVAL AUTOCAPITALIZE = CAPITALIZEOFF
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR SCREEN#              
C       EXSR KEYBOARD#              
C          
C *     --------------------------------------
C *     Zeile 8 Spalte 1 / DSPMSG/WRKMSG
C *     --------------------------------------
C     SCREENLEN MULT 8 POS            
C       MULT COLS POS            
C       SUB COLS POS            
C       ADD 1 POS            
C     CURSOR IFEQ POS              
C       ADD 1 CURSOR            
C       ENDIF                
C *     --------------------------------------
C *     Statuszeile
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       SUB COLS POS            
C       ADD 2 POS            
C     CHAR IFEQ ':'              
C       SUB COLS POS            
C       ADD 3 POS            
C       ENDIF                
C     CURSOR IFEQ POS              
C     *ZERO ADD FMTPOS(FMTX) CURSOR            
C       ENDIF                
C          
C       CLEAR   FOCUSX            
C       CLEAR   CARETX            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       DO FMTX IDX            
C     CURSOR IFGE FMTPOS(IDX)              
C     FMTLEN(IDX) ADD FMTPOS(IDX) SCNPOS2            
C     CURSOR IFLE SCNPOS2              
C     CURSOR SUB FMTPOS(IDX) CARETX            
C     *ZERO ADD IDX FOCUSX            
C     *ZERO ADD FMTX IDX            
C       ENDIF                
C       ENDIF                
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   BUFV            
C       CLEAR   BUF2            
C       CLEAR   BUF3            
C       CLEAR   BUF4            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     PASSWORD IFEQ 1              
C     *IN31 OREQ *ON              
C     *IN32 ANDEQ *ON              
C     'Service Tool' SCAN SCREENXSCAN       77 78  
C     *IN78 IFEQ *OFF              
C       OPEN TN5250P       77  
C     *HIVAL SETGT TN5250P       77  
C   N77   READP TN5250P       77 77  
C     *IN77 DOWEQ *OFF              
C     *BLANKS IFNE RMTIMAGE              
C     *BLANKS ANDNE RMTSYSNAME              
C     ' ' CHECKR RMTSYSNAME LEN     77  
C     RMTSYSNAME:LEN SCAN SCREENXSCAN       77 78  
C     *IN78 IFEQ *ON              
C       EVAL BUFV = %TRIMR ( RMTIMAGE)
C       EXSR BUFVFORM              
C       EVAL BUFV = '§-
C         function image(top,left,src) {§-
C           i=document.createElement("img");§-
C           i.alt="";§-
C           i.src=src;§-
C           i.style.position="absolute";§-
C           i.style.verticalAlign="middle";§-
C           i.style.top=imagetop(top)+"px";§-
C           i.style.left=imageleft(left)+"px";§-
C           i.style.border="8px solid '+COLIMG+'";§-
C           i.style.imageOrientation="from-image";§-
C           document.getElementById("screen").+
C           appendChild(i);§-
C           if (parent != window) +
C           window.setTimeout("imagemove("++
C             top+","+left+")",0);§-
C         }§-
C         function imagetop(top) {§-
C           return top*document.+
C               getElementsByTagName("tr")[0].+
C                    offsetHeight/20;§-
C         }§-
C         function imageleft(left) {§-
C           return left+(§-
C             Math.max(parent.document.+
C               getElementById("screen").+
C                    offsetWidth -§-
C          parent.document.+
C               getElementsByTagName("tr")[0].+
C                    offsetWidth,0)/2);§-
C         }§-
C         function imagemove(top,left) {§-
C           parent.document.+
C           getElementById("iframe").width=§-
C           parent.document.+
C           getElementById("screen").offsetWidth;§-
C           parent.document.+
C           getElementsByTagName("img")[0].style.+
C                  left=imageleft(left)+"px";§-
C                  document.+
C           getElementsByTagName("img")[0].style.+
C                  left=imageleft(left)+"px";§-
C           window.setTimeout("imagemove("++
C             top+","+left+")",1000);§-
C         }§-
C         image('+%CHAR(RMTTOP) +','+
C                 %CHAR(RMTLEFT)+','+
C                   '"'+BUFV+'");§'
C       ENDIF                
C       ENDIF                
C     *BLANKS COMP BUFV       77 77  
C   N77   READP TN5250P       77 77  
C       ENDDO                
C       CLOSE TN5250P       77  
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SELECT    
C     READWAIT WHENEQ SAVE$              
C     READWAIT OREQ NULL$              
C       EVAL BUF2 = '§-
C         fs=document.+
C            getElementById("'+ANY+'");§-
C         fs.setSelectionRange(0,0);§-
C         if (parent == window) fs.focus();§'
C          
C     *ZERO WHENLT FOCUSX              
C       EVAL BUF2 = '§-
C         fs=document.+
C            getElementById("p"+'+%CHAR(FOCUSX)+');§-
C         fs.setSelectionRange(' +%CHAR(CARETX)+','+
C                     %CHAR(CARETX)+');§-
C         if (parent == window) fs.focus();§'
C       OTHER                
C       EVAL BUF2 = '§-
C         fs=document.+
C            getElementsByTagName("input")[0];§-
C            ffw=parseInt(fs.alt|0);§-
C       if ((ffw & ByPass)§-
C               == ByPass) {  fx=fs;§-
C            fs=Jump(+1); if (fx==fs)§-
C         fs=document.+
C            getElementById("'+ANY+'"); }§-
C         fs.setSelectionRange(0,0);§-
C         if (parent == window) fs.focus();§'
C       ENDSL                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE ALARM              
C       EVAL BUF3 = '§-
C         parent.play ( );§-
C         parent.vibrate([500]);§'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE RELOAD              
C       SELECT    
C     READWAIT WHENEQ SAVE$              
C       EVAL BUF4 = '§-
C         function replace() {§-
C           parent.document.+
C           getElementById("'+SAVEX+'").click();§-
C         } window.setTimeout("replace()",0);§'
C       OTHER                
C       EVAL BUF4 = '§-
C       if (window == parent)§-
C           window.location.href =§-
C           window.location.href.split("#")[0]+
C                   .split("?")[0];§§-
C         function replace() {§-
C           window.location.replace(§-
C           window.location.href);§-
C         } window.setTimeout("replace()",'+
C               %CHAR ( TIMEOUT*1000)+');§'
C       ENDSL                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 1 FMTX            
C       SUB MSGX FMTX            
C       EVAL BUF = JAVASCRIPT+'§-
C          
C                  min=1;§-
C                  max='+%CHAR(FMTX)+';§-
C                 step='+%CHAR(STEP)+';§-
C               insert=0;§-
C               close1=0;§-
C               ByPass=8192;§-
C               DupKey=4096;§-
C              NumSign=1024+512+256;§-
C              NumOnly=512+256;§-
C            AutoEnter=128;§-
C            UpperCase=32;§§-
C          
C         function Up ( ) {§-
C                e=Jump(-step);§-
C             e.setSelectionRange(§-
C               fs.selectionStart,§-
C               fs.selectionEnd);§-
C               fs=e; fs.focus();§-
C         }§-
C         function Down() {§-
C                e=Jump(+step);§-
C             e.setSelectionRange(§-
C               fs.selectionStart,§-
C               fs.selectionEnd);§-
C               fs=e; fs.focus();§-
C         }§-
C         function Right() {§-
C            d=(fs.selectionStart<§-
C               fs.selectionEnd?0:§-
C              (fs.selectionEnd<32767?1:0));§-
C            fs.setSelectionRange(§-
C               fs.selectionEnd+d,§-
C               fs.selectionEnd+d);§-
C         }§-
C         function Left() {§-
C            d=(fs.selectionEnd>§-
C               fs.selectionStart?0:§-
C              (fs.selectionStart>0?1:0));§-
C            fs.setSelectionRange(§-
C               fs.selectionStart-d,§-
C               fs.selectionStart-d);§-
C         }§-
C         function Select() {§-
C            fs.setSelectionRange(§-
C               fs.selectionStart,§-
C               fs.selectionEnd);§-
C         }§-
C         '+'+
C         function Next() {§-
C                e=Jump(+1);§-
C             e.setSelectionRange(0,0);§-
C               fs=e; fs.focus();§-
C         }§-
C         function Prev() {§-
C            e=(fs.selectionStart>0?fs:Jump(-1));§-
C             e.setSelectionRange(0,0);§-
C               fs=e; fs.focus();§-
C         }§-
C         function Jump(diff) {§-
C         fe=fs;§-
C                e=Jump2(fs,diff);§-
C         while (e) { ffw=parseInt(e.alt|0);§-
C                if ( ( ffw & ByPass)§-
C            != ByPass) return e;§-
C            if (fe==e) return e;§-
C                e=Jump2(e,Math.sign(diff)); }§-
C                 return fs;§-
C         }§-
C         function Jump2(e,diff) {§-
C          p=e.id.substr(0,1);§-
C             n=parseInt(e.id.substr(1))+diff;§§-
C          
C           if (document.getElementById§-
C           &&  document.getElementById(p+n)) {§-
C             e=document.getElementById(p+n);§-
C                 return e;§-
C           }§-
C              n=(diff<0?max:min);§§-
C          
C           if (document.getElementById§-
C           &&  document.getElementById(p+n)) {§-
C             e=document.getElementById(p+n);§-
C                 return e;§-
C           }§-
C           return null;§-
C         }§-
C         '+'+
C         function Nextx() {§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & AutoEnter)§-
C                 == AutoEnter)§-
C               Key("'+AUTOENTERX+'");§-
C             else Next();§-
C         }§-
C         function None() {§-
C                  Select();§-
C         }§-
C         function FPlus() {§-
C                  FPlusMinus(" ");§-
C         }§-
C         function FMinus() {§-
C              FPlusMinus("-");§-
C         }§-
C         function FPlusMinus(sign) {§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & ByPass)§-
C                 != ByPass) {§-
C         if ((ffw & NumSign)§-
C                 != NumSign) sign="";§-
C         start=fs.selectionStart;§-
C             v=fs.value;§-
C              v=v.substr(0,start)+sign;§-
C              v=v.substr(0,fs.maxLength);§-
C               fs.value=v;§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & NumSign)§-
C                 == NumSign) FNumSign(); }§-
C                  Nextx();§-
C         }§-
C         '+'+
C         function FNumSign() {§-
C        while (fs.maxLength>§-
C               fs.value.length)§-
C               fs.value=" "+§-
C               fs.value;§-
C         }§-
C         function Dup() {§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & ByPass)§-
C                 != ByPass) {§-
C         if ((ffw & DupKey)§-
C                 == DupKey) {§-
C         start=fs.selectionStart;§-
C             v=fs.value;§-
C              v=v.substr(0,start);§-
C              v=v.substr(0,fs.maxLength);§-
C               fs.value=v;§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & DupKey)§-
C                 == DupKey) DupFill(); }}§-
C                  Next();§-
C         }§-
C         function DupFill() {§-
C        while (fs.maxLength>§-
C               fs.value.length)§-
C               fs.value=§-
C               fs.value+"'+DU$X+'";§-
C         }§-
C         function Digit(digit) {§-
C            e=new Image();§-
C            e.keyCode=48+digit;§-
C              keypress(e);§-
C         }§-
C         function Space() {§-
C            e=new Image();§-
C            e.keyCode=32;§-
C              keypress(e);§-
C         }§-
C         function Backspace() {§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & ByPass)§-
C                 != ByPass) {§-
C            d=(fs.selectionEnd>§-
C               fs.selectionStart?0:§-
C              (fs.selectionStart>0?1:0));§-
C         start=fs.selectionStart;§-
C           end=fs.selectionEnd;§-
C             v=fs.value;§-
C              v=v.substr(0,start-d)+§-
C                v.substr(  end);§-
C              v=v.substr(0,fs.maxLength);§-
C               fs.value=v;§-
C               fs.setSelectionRange(start-d,+
C                        start-d); }§-
C         }§-
C         function No ( id) {§-
C         }§-
C         function Opt(id) {§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & ByPass)§-
C                 != ByPass) {§-
C           if (fs.maxLength>=id.length) {§-
C               fs.value=id;   fx=fs;§-
C                  Next(); if (fx==fs)§-
C               fs.setSelectionRange(id.length,+
C                        id.length); }}§-
C         }§-
C         '+'+
C         function MenuOpt(id) {§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & ByPass)§-
C                 != ByPass) {§-
C           if (fs.maxLength>=id.length) {§-
C               fs.value=id;§-
C               fs.setSelectionRange(id.length,+
C                        id.length); }}§-
C         }§-
C         function Command(id) {§-
C         }§-
C         function Parameter(id) {§-
C         }§-
C         function Special(id) {§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & ByPass)§-
C                 != ByPass) {§-
C           if (fs.maxLength>=id.length) {§-
C               fs.value=id;§-
C               fs.setSelectionRange(id.length,+
C                        id.length); }}§-
C         }§-
C         function FKey(id) {§-
C        while (id.substr(1,1)=="0")§-
C            id=id.substr(0,1)+§-
C               id.substr(2);§-
C           Key(id.toLowerCase());§-
C         }§-
C         function Field(id) { if§-
C        (document.getElementById &&§-
C         document.getElementById(id))fs=§-
C         document.getElementById(id);§-
C         }§-
C         function Key(id) { if§-
C        (document.getElementById &&§-
C         document.getElementById(id))§-
C         document.getElementById(id).click();§-
C         }§-
C         function Insert() {§-
C                  insert=§-
C                1-insert;§-
C                  Insertx(); Select();§-
C         }§-
C         function Insertx() {§-
C            Color(insert,"'+INSERT+'",+
C             "'+COLWHT+'","");§-
C         }§-
C         function Close1() {§-
C              if (close1) Close2();§-
C                  close1=1;§-
C                  Close1x(); Select();§-
C         t=window.setTimeout("Close1b()",'+
C            %CHAR(CLOSE1WAIT*1000)+');§-
C         }§-
C         function Close1b() {§-
C                  close1=0;§-
C                  Close1x();§-
C         }§-
C         function Close1x() {§-
C            Color(close1,"'+CLOSE1+'",+
C             "'+COLREDBL+'","blink");§-
C         }§-
C         function Close2() {§-
C           window.clearTimeout(t);§-
C             Key("'+CLOSE2X+'");§-
C         }§-
C         function Color(i,id,color,blink) { if§-
C        (document.getElementById(id) &&§-
C         document.getElementById(id).+
C               parentElement) {§-
C         document.getElementById(id).+
C               parentElement.+
C                  style.color=(i?color:"");§-
C         document.getElementById(id).+
C               parentElement.+
C                  className = (i?blink:""); }§-
C         }§-
C         function Submit() {§-
C         document.getElementById("'+FOCUS+'").+
C                  value=fs.id;§-
C         document.getElementById("'+CARET+'").+
C                  value=fs.selectionStart; +
C               Select();§-
C           return true;§-
C         }§-
C         function load() {§-
C         document.getElementById("audio").load();§-
C           return true;§-
C         }§-
C         function play() {§-
C         document.getElementById("audio").play();§-
C           return true;§-
C         }§-
C         function click() {§-
C           window.onclick=null; load();§-
C           return true;§-
C         }§-
C         function error() {§-
C           return true;§-
C         }§-
C         function keydown(e) {§-
C           code=e.keyCode; id="";§§-
C          
C              if (code ==107) id="'+FPLUS+'";§-
C         else if (code ==109) id="'+FMINUS+'";§-
C         else if (code == 45) id="'+INSERT+'";§-
C         else if (code == 33) id="'+PAGEUP+'";§-
C         else if (code == 34) id="'+PAGEDOWN+'";§§-
C          
C         else if (code ==190)§-
C              id=(e.ctrlKey?"'+CLOSE1+'":"");§§-
C          
C         else if (code ==  9)§-
C              id=(e.shiftKey?"'+PREV+'":+
C                 "'+NEXT+'");§§-
C         else if (code == 27)§-
C              id=(e.shiftKey?"'+SYSREQ+'":+
C                 "'+ATTN+'");§§-
C         else if (code >=112 && code <=123)§-
C            id="f"+(code-112++
C                 (e.shiftKey?12:0)+1);§§-
C          
C         else if (code >=124 && code <=135)§-
C            id="f"+(code-124++
C                 (e.shiftKey?0:12)+1);§§-
C          
C         else if (code == 38)§-
C              id=((e.ctrlKey||e.altKey)?+
C                  "'+PAGEUP+'":"'+UP+'");§§-
C          
C         else if (code == 40)§-
C              id=((e.ctrlKey||e.altKey)?+
C                  "'+PAGEDOWN+'":"'+DOWN+'");§§-
C          
C           if(id){§-
C                  Key(id);§-
C                  return false;§-
C           }§-
C           return true;§-
C         }§-
C         function keypress(e) {§-
C            if (e.keyCode == 13) return true;§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & ByPass)§-
C                 != ByPass) {§-
C         start=fs.selectionStart;§-
C           end=fs.selectionEnd;§-
C             d=(start<end?0:1-insert);§-
C             c=String.fromCharCode(e.keyCode);§-
C              ffw=parseInt(fs.alt|0);§-
C         if ((ffw & UpperCase)§-
C                 == UpperCase)§-
C              c=c.toUpperCase();§-
C             v=fs.value;§-
C              v=v.substr(0,start)+c+§-
C                v.substr(  end+d);§-
C              v=v.substr(0,fs.maxLength);§-
C               fs.value=v;§-
C               fs.setSelectionRange(start+1,+
C                        start+1);§-
C           if (fs.maxLength<=start+1) Nextx(); }§-
C           return false;§-
C         }§-
C         function contextmenu(e) {§-
C           return false;§-
C         }-
C          
C       '+BUFV+'§-
C          
C         window.onclick = click;§-
C         window.onerror = error;§-
C         window.onkeydown = keydown;§-
C         window.onkeypress = keypress;§-
C         window.oncontextmenu = contextmenu;§-
C          
C       '+BUF2+'§-
C          
C         if (parent != window) {§§-
C          
C           if (parent.'+TITLE$+'§-
C                   != '+TITLE$+') {§-
C               parent.'+TITLE$+'§-
C                    = '+TITLE$+';§-
C           }§-
C           if (parent.'+HEAD$+'§-
C                   != '+HEAD$+') {§-
C               parent.'+HEAD$+'§-
C                    = '+HEAD$+';§-
C           }§-
C           if (parent.'+SCREEN$+'§-
C                   != '+SCREEN$+') {§-
C               parent.'+SCREEN$+'§-
C                    = '+SCREEN$+'; pfs();§-
C           }§-
C           if (parent.'+SUBMIT$+'§-
C                   != '+SUBMIT$+') {§-
C               parent.'+SUBMIT$+'§-
C                    = '+SUBMIT$+'; pfs();§-
C           }§-
C           if (parent.'+KEYBOARD$+'§-
C                   != '+KEYBOARD$+') {§-
C               parent.'+KEYBOARD$+'§-
C                    = '+KEYBOARD$+';§-
C           }§-
C           if (parent.'+DEBUG$+'§-
C                   != '+DEBUG$+') {§-
C               parent.'+DEBUG$+'§-
C                    = '+DEBUG$+';§-
C           }§-
C           parent.min=min;§-
C           parent.max=max;§-
C           parent.step=step;§-
C           parent.Insertx();§-
C           parent.Close1x();§-
C         }§-
C         else {§-
C           a=document.createElement("audio");§-
C           a.src="/sound.wav";§-
C           a.width=0;§-
C           a.height=0;§-
C           a.id="audio";§-
C           a.preload="none";§-
C           document.body.appendChild(a);§§-
C          
C           f=document.createElement("iframe");§-
C           f.src=window.location.href.split("#")[0]+
C                         .split("?")[0]+
C                   +"?'+IFRAME+'=1";§-
C           f.width=0;§-
C           f.height=0;§-
C           f.id="iframe";§-
C           f.name="iframe";§-
C           f.frameBorder=0;§-
C           f.width=parent.document.+
C           getElementById("screen").offsetWidth;§-
C                 c=parent.document.+
C           getElementsByTagName("center")[0];§-
C                 c.appendChild(f);§-
C           document.forms[0].action=f.src;§-
C           document.forms[0].target=f.name;§-
C         }§-
C         function pfs() {§-
C           parent.fs =§-
C           parent.document.getElementById(fs.id);§-
C           parent.fs.setSelectionRange(§-
C         fs.selectionStart,§-
C         fs.selectionEnd);§-
C           parent.fs.focus();§-
C         }§-
C         function vibrate(p) {§§-
C          
C              if (navigator.vibrate)§-
C           return navigator.vibrate(p);§§-
C          
C              if (navigator.mozVibrate)§-
C           return navigator.mozVibrate(p);§§-
C          
C              if (navigator.webkitVibrate)§-
C           return navigator.webkitVibrate(p);§§-
C          
C           return true;§-
C         }-
C          
C       '+BUF3+'-
C       '+BUF4+JAVASCRIPTX
C       ADD 1 FMTX            
C       ADD MSGX FMTX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS WHENEQ REDIRECTX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %REPLACE(%TRIMR(SESSIONADDXX)+
C           %TRIMR(SESSION8):SCRIPT:
C                  SESSIONPOSX:
C                  SESSIONLENX)
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     '/.html' IFEQ BUFV              
C       EVAL BUFV = '/'
C       ENDIF                
C       EXSR BUFVFORM              
C       EVAL BUF = '<div id="header">+
C              <h2>'+%TRIMR(TITLE)+'</h2></div>§§'
C          
C       EVAL BUF =
C       BUF + '<form method="post" +
C                    action="'+BUFV+'" +
C                    target="_parent">§'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '§+
C              <table border=0 +
C                cellspacing=0 +
C                cellpadding=0 summary="" +
C          class="keyboard" +
C          width="100%">'
C          
C       EVAL BUF = BUF + '§<tr>'
C          
C       MOVEL(P) SAVE NAME            
C       MOVEL(P) SAVE# VALUE            
C       EXSR SUBMIT              
C          
C       EVAL BUF = BUF + '</tr></table>§'
C       EXSR WRSTOUT              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %REPLACE(%TRIMR(SESSIONADDXX)+
C           %TRIMR(SESSION8):SCRIPT:
C                  SESSIONPOSX:
C                  SESSIONLENX)
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     '/.html' IFEQ BUFV              
C       EVAL BUFV = '/'
C       ENDIF                
C       EXSR BUFVFORMJS              
C       EVAL BUF = JAVASCRIPT+'§-
C          
C         function replace() {§-
C           parent.location.replace("'+BUFV+'");§-
C         } window.setTimeout("replace()",0);§'+
C          
C             JAVASCRIPTX
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       OTHER                
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = SCRIPT
C     '/.html' IFEQ BUFV              
C       EVAL BUFV = '/'
C       ENDIF                
C       EXSR BUFVFORM              
C       EVAL BUF = '<div id="header">+
C              <h2>'+%TRIMR(TITLE)+'</h2></div>§§'
C          
C       EVAL BUF =
C       BUF + '<form method="post" +
C                    action="'+BUFV+'">§§'
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       OPEN TN5250P       77  
C     *HIVAL SETGT TN5250P       77  
C   N77   READP TN5250P       77 77  
C          
C     *IN77 IFEQ *OFF              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = '<table border=0 +
C                cellspacing=0 +
C                cellpadding=0 summary="" +
C          class="overview">'
C          
C       EVAL CHARS = 'even'
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '§<tr><th>'+
C             '<button class="top" +
C                onmousedown="return false" +
C                   disabled><br>'+
C               '</button>'+
C               '</th></tr>'
C     *IN77 DOWEQ *OFF              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE RMTHOST              
C     *ZERO ORNE RMTPORT              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   BUFV            
C       CLEAR   BUF2            
C       CLEAR   BUF3            
C       CLEAR   BUF4            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *OFF IFNE *OFF              
C       EVAL BUF2 = BUF2 + ' align="center"'
C       ENDIF                
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %TRIMR ( RMTCOLOR)
C     *BLANKS IFNE BUFV              
C       EXSR BUFVFORM              
C       EVAL BUF2 = BUF2 + ' style="'+COLOR+BUFV+'"'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE RMTBLINK              
C       EVAL BUF2 = BUF2 + ' class="blink"'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %TRIMR ( RMTKEY)
C     *BLANKS IFNE BUFV              
C       EXSR BUFVFORM              
C       EVAL BUF3 = BUF3 + ' accesskey="'+BUFV+'"'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFEQ RMTHOST              
C       EVAL BUF3 = BUF3 + ' disabled'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %TRIMR ( RMTWEB)
C     *BLANKS IFNE BUFV              
C       EXSR BUFVFORM              
C       EVAL BUF4 = BUF4 + '<a href="http://'+BUFV+'/" +
C            style="display:none;">*</a>'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS COMP RMTNAME       78  
C   78   EVAL BUFV = 'TN5250'
C   N78   EVAL BUFV = %TRIMR ( RMTNAME)
C       EXSR BUFVFORM              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFEQ RMTHOST              
C       EVAL BUFV = NONEX +' '+ BUFV +' '+ NONEX
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '§<tr><th'+ BUF2 +'>'+
C             '<button class="'+%TRIMR(CHARS)+'" +
C                onmousedown="return false" +
C           type="submit" +
C           name="select" +
C             id="select'+
C                   %CHAR(RMTREMOTE)+'" +
C          value="'+%CHAR(RMTREMOTE)+'"'+
C                            BUF3 +'>'+
C                            BUFV +
C               '</button>'+ BUF4 +
C               '</th></tr>'
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     'even' COMP CHARS       77 78  
C   78   EVAL CHARS = 'odd'
C   N78   EVAL CHARS = 'even'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SETOFF         77  
C   N77   READP TN5250P       77 77  
C       ENDDO                
C       CLOSE TN5250P       77  
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</table>§'
C       EXSR WRSTOUT              
C       ENDIF                
C       ENDSL                
C       ENDSR                
C          
  X * SENDHTML2 EXSR TN5250SB    
  X  
C     REPLACE BEGSR                
C     ROWS IFGE 1              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREEN(1) IFEQ ATR$MENU              
C     SCREEN(1) OREQ ATR$NAMEX              
C       MOVEL(P) REPLACE$ SCREEN(1)            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT COLS POS            
C       SUB 9 POS            
C     SCREEN(POS) IFEQ ATR$              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ELSE                
C       SUB 2 POS            
C     SCREEN(POS) IFEQ ATR$              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ELSE                
C       SUB 3 POS            
C     SCREEN(POS) IFEQ ATR$MENU              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT COLS POS            
C       ADD COLS POS            
C       SUB 9 POS            
C     SCREEN(POS) IFEQ ATR$              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ELSE                
C       SUB 2 POS            
C     SCREEN(POS) IFEQ ATR$              
C     SCREEN(POS) OREQ ATR$NAME              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ELSE                
C       SUB 4 POS            
C     SCREEN(POS) IFEQ ATR$              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT COLS POS            
C       ADD COLS POS            
C       ADD 14 POS            
C     SCREEN(POS) IFEQ ATR$MENU              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ELSE                
C       ADD 7 POS            
C     SCREEN(POS) IFEQ ATR$MENU              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       ADD 1 POS            
C     COLS SUBST(P) SCREENX:POS LINE     77  
C     NULL$:' ' XLATE LINE LINE            
C     REPLACE$:' ' XLATE LINE LINE            
C     REPLACE$X:' ' XLATE LINE LINE            
C     REPLACE$XX:' ' XLATE LINE LINE            
C     *BLANKS COMP LINE       26 26  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       ADD 1 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       SUB 40 POS            
C       SUB 1 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       SUB COLS POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       SUB COLS POS            
C       ADD 1 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ADD COLS POS            
C       SUB 1 POS            
C       SUB 2 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       SUB COLS POS            
C       SUB COLS POS            
C       ADD 1 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ADD COLS POS            
C       SUB 1 POS            
C       SUB 2 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS POS            
C       MULT COLS POS            
C       SUB COLS POS            
C       SUB COLS POS            
C       ADD 4 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ADD COLS POS            
C       SUB 4 POS            
C       SUB 5 POS            
C     SCREEN(POS) IFEQ REPLACE$XX              
C       MOVEL(P) REPLACE$ SCREEN(POS)            
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Zeile 1 / DSPJOB/WRKJOB OPTION(*OPNF)
C *     --------------------------------------
C     SCREENLEN MULT 1 POS            
C       MULT COLS POS            
C       SUB COLS POS            
C       ADD 21 POS            
C       SUBST(P) SCREENX:POS CHARS7     77  
C     'Offene ' IFEQ CHARS7              
C     POS ADD 7 POS1            
C       SUBST(P) SCREENX:POS1 CHARS8     77  
C     'Dateien ' IFEQ CHARS8              
C       ADD 8 POS1            
C       SUBST(P) SCREENX:POS1 CHARS8     77  
C     'anzeigen' IFEQ CHARS8              
C       EVAL %SUBST(SCREENX:POS-1:1)   = REPLACE$
C       EVAL %SUBST(SCREENX:POS:23+8)  =
C       %SUBST(SCREENX:POS+23:8)  +
C       %SUBST(SCREENX:POS:23)
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Zeile 7 / DSPJOB/WRKJOB OPTION(*OPNF)
C *     --------------------------------------
C     SCREENLEN MULT 7 POS            
C       MULT COLS POS            
C       SUB COLS POS            
C       ADD 2 POS            
C       SUBST(P) SCREENX:POS CHARS11     77  
C     'Teildatei/ ' IFEQ CHARS11              
C       EVAL %SUBST(SCREENX:POS-1:1)   = REPLACE$
C       EVAL %SUBST(SCREENX:POS:56+22) =
C       %SUBST(SCREENX:POS+56:22) +
C       %SUBST(SCREENX:POS:56)
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     'Zahl . . .' SCAN SCREENX:2 POS     77 78  
C   78   SUB 1 POS            
C   78   EVAL BUF3    =  REPLACE$+'Nummer'+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     'Nombre . . .' SCAN SCREENX:2 POS     77 78  
C   78   SUB 1 POS            
C   78   EVAL BUF3    =  REPLACE$+'Numäro'+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    = 'Anzahl'+NULL$+'. . .'
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   SUB 1 POS            
C   78   EVAL BUF3    =  REPLACE$+'Nummer'+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C     *IN78 IFEQ *ON              
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   SUB 1 POS            
C   78   EVAL BUF3    =  REPLACE$+'Nummer'+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     'Objket ' SCAN SCREENX:2 POS     77 78  
C   78   SUB 1 POS            
C   78   EVAL BUF3    =  REPLACE$+'Objekt'+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C     *IN78 IFEQ *ON              
C     'Objket ' SCAN SCREENX:2 POS     77 78  
C   78   SUB 1 POS            
C   78   EVAL BUF3    =  REPLACE$+'Objekt'+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     DSPF SCAN SCREENX:2       77 78  
C     *IN78 IFEQ *ON              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =           DSPF+' ('
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78 POS COMP COLS       78 78  
C   78   EVAL BUF3    =  REPLACE$+DSPFX+REPLACE$XX+'('
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =           DSPF+' -'
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+DSPFX+REPLACE$XX+'-'
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+DSPF+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+DSPFX+REPLACE$X+NULL$
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+DSPF+NULL$+NULL$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+DSPFX+REPLACE$X+NULL$
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =     '.'+ATR$+DSPF+'  '
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+DSPFX+REPLACE$X+'  '
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =    '.'+NULL$+DSPF+'  '
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+DSPFX+REPLACE$X+'  '
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =      '.'+' '+DSPF+'  '
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+DSPFX+REPLACE$X+'  '
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =      '.'+' '+DSPF+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+DSPFX+REPLACE$X+ATR$
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     RTVCLNUP1 SCAN SCREENX:2       77 78  
C     *IN78 IFEQ *ON              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =       ' '+RTVCLNUP+' ('
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78 POS COMP COLS       78 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPX+REPLACE$XX+'('
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =       ' '+RTVCLNUP+' -'
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPX+REPLACE$XX+'-'
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+RTVCLNUP+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPX+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+RTVCLNUPBAS+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPBASX+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+RTVCLNUPPDM+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPPDMX+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+RTVCLNUPEXT+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPEXTX+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+RTVCLNUP+NULL$+NULL$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPX+REPLACE$X+NULL$
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =     '.'+ATR$+RTVCLNUP+' '
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+RTVCLNUPX+REPLACE$X+''
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =    '.'+NULL$+RTVCLNUP+' '
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+RTVCLNUPX+REPLACE$X+''
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =      '.'+' '+RTVCLNUP+' '
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+RTVCLNUPX+REPLACE$X+''
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =      '.'+' '+RTVCLNUP+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3 = '.'+REPLACE$+RTVCLNUPX+REPLACE$X+''
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    =      ATR$+RTVCLNUP1+NULL$+
C               RTVCLNUP2+NULL$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL BUF3    =  REPLACE$+RTVCLNUPX+REPLACE$X
C   78   EVAL SCREENX = %REPLACE(BUF3:SCREENX:POS:BUF3LEN)
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     'Service Tool' SCAN SCREENX:2       77 78  
C     *IN78 IFEQ *ON              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    = ATR$+'SYSTEM:'+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL %SUBST(SCREENX:POS+8:1) = REPLACE$
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV    = ATR$+'System:'+ATR$+NULL$+ATR$
C     BUFV SCAN SCREENX:2 POS     77 78  
C   78   EVAL %SUBST(SCREENX:POS+10:1) = REPLACE$
C       ENDIF                
C       ENDSR                
C          
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SENDHTML2 EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN#CMDX EXSR TN5250SB    
  X * SCREEN#PARM EXSR TN5250SB    
  X * SCREEN#PARM EXSR TN5250SB    
  X * SCREEN#PARM EXSR TN5250SB    
  X * SCREEN#SPECIAL EXSR TN5250SB    
  X * SCREEN#SPECIAL EXSR TN5250SB    
  X * SCREEN#LINK EXSR TN5250SB    
  X * KEYBOARD# EXSR TN5250SB    
  X  
C     BUFVFORM BEGSR                
C     *BLANKS IFNE BUFV              
C *     --------------------------------------
C *     Zeichen § durch @ ersetzen
C *     --------------------------------------
C     PASSWORD IFEQ 1              
C     *IN31 OREQ *ON              
C     *IN32 ANDEQ *ON              
C     '§':'@' XLATE BUFV BUFV            
C       ENDIF                
C *     --------------------------------------
C *     Zeichen & durch &amp; ersetzen
C *     --------------------------------------
C       CLEAR   CHAR2            
C     '&' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       SUBST(P) BUFV:POS CHAR2            
C     '&#' IFNE CHAR2              
C       EVAL BUFV = %REPLACE('&amp;':BUFV:POS:1)
C       ENDIF                
C       ADD 1 POS            
C     '&' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen @ durch @ ersetzen
C *     --------------------------------------
C     '@' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('@':BUFV:POS:1)
C       ADD 1 POS            
C     '@' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen § durch &sect; ersetzen
C *     --------------------------------------
C     '§' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('&sect;':BUFV:POS:1)
C       ADD 1 POS            
C     '§' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen " durch &quot; ersetzen
C *     --------------------------------------
C     '"' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('&quot;':BUFV:POS:1)
C       ADD 1 POS            
C     '"' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen < durch &lt; ersetzen
C *     --------------------------------------
C     '<' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('&lt;':BUFV:POS:1)
C       ADD 1 POS            
C     '<' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen > durch &gt; ersetzen
C *     --------------------------------------
C     '>' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('&gt;':BUFV:POS:1)
C       ADD 1 POS            
C     '>' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen NULL durch NBSP ersetzen
C *     --------------------------------------
C     NULL$ SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE(NBSP$:BUFV:POS:1)
C **     ADD 1 POS            
C     NULL$ SCAN BUFV:POS POS     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * SENDHTML2 EXSR TN5250SB    
  X  
C     BUFVFORMJS BEGSR                
C     *BLANKS IFNE BUFV              
C *     --------------------------------------
C *     Zeichen \ durch \\ ersetzen
C *     --------------------------------------
C     '\' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('\\':BUFV:POS:1)
C       ADD 2 POS            
C     '\' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen " durch \" ersetzen
C *     --------------------------------------
C     '"' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('\"':BUFV:POS:1)
C       ADD 2 POS            
C     '"' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Zeichen ' durch \' ersetzen
C *     --------------------------------------
C     '''' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('\''':BUFV:POS:1)
C       ADD 2 POS            
C     '''' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X  
C     FMTIDX BEGSR                
C     *ZERO ADD *HIVAL SCNPOS2            
C *     --------------------------------------
C *     Nächstes Feld suchen
C *     --------------------------------------
C       DO FMTX IDX2            
C     FMTPOSX IFLT FMTPOS(IDX2)              
C     SCNPOS2 ANDGT FMTPOS(IDX2)              
C     *ZERO ADD FMTPOS(IDX2) SCNPOS2            
C     *ZERO ADD IDX2 IDX            
C       ENDIF                
C       ENDDO                
C       ENDSR                
C          
  X * FMTIDXSCREENX EXSR TN5250SB    
  X  
C     FMTIDXBYPASSX BEGSR                
C     *ZERO ADD *HIVAL SCNPOS2            
C *     --------------------------------------
C *     Nächstes Feld suchen (ohne ByPass)
C *     --------------------------------------
C       DO FMTX IDX2            
C       TESTB FFW1BYPASS FMTFFW1(IDX2)     78  
C     *IN78 IFEQ *OFF              
C     FMTPOSX IFLT FMTPOS(IDX2)              
C     SCNPOS2 ANDGT FMTPOS(IDX2)              
C     *ZERO ADD FMTPOS(IDX2) SCNPOS2            
C     *ZERO ADD IDX2 IDX            
C       ENDIF                
C       ENDIF                
C       ENDDO                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X  
C     FMTIDXSCREENX BEGSR                
C       CLEAR   IDX            
C     *ZERO ADD *LOVAL FMTPOSX            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR FMTIDXBYPASSX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCREENLEN MULT ROWS LEN            
C       MULT COLS LEN            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     IDX IFGE 1              
C     FMTPOS(IDX) ANDGE 1              
C     FMTPOS(IDX) ANDLE LEN              
C     FMTPOS(IDX) SUB 1 LEN            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN SUBST(P) SCREENX SCREENXSCAN     77  
C   77   CLEAR   SCREENXSCAN            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' 5250 ' SCAN SCREENXSCAN       77 31  
C     'REMOTE' SCAN SCREENXSCAN       77 78  
C   N78 'button' SCAN SCREENXSCAN       77 78  
C   N78 'submit' SCAN SCREENXSCAN       77 78  
C   78   SETOFF         31  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     '(FTP)' SCAN SCREENX       77 33  
C          
C       ENDSR                
C          
  X * SENDHTML2 EXSR TN5250SB    
  X  
C     SCREEN# BEGSR                
C       EXSR FMTIDXSCREENX              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   LEN            
C       CLEAR   LEN1            
C       CLEAR   LEN2            
C       CLEAR   LEN3            
C       CLEAR   LEN6            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   IDX            
C       CLEAR   IDX3            
C       CLEAR   IDX6            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO SUB ROWS ROW            
C     *ZERO SUB ROWS ROW3            
C     *ZERO SUB ROWS ROW6            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD COLS COL            
C     *ZERO ADD COLS COL3            
C     *ZERO ADD COLS COL6            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD 1 STEP            
C     *ZERO ADD 1 SCNPOS            
C     *ZERO ADD *HIVAL SCNPOSX            
C **   *ZERO ADD *LOVAL SCNPOSX            
C     *ZERO ADD *LOVAL FMTPOSX            
C       MOVEL(P) ATR$ LENCHAR            
C     *ZERO ADD LENNUM COLORNUM            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) ' readonly' READONLY3            
C       MOVEL(P) ' readonly' READONLY6            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   PASSWORD            
C       CLEAR   HELPSCREEN            
C       CLEAR   SOURCEDISPLAY            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SETOFF         21  
C       SETOFF         22  
C       SETOFF         27  
C       SETOFF         32  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = '<div id="screen">'
C          
C     ROWS IFGE 1              
C     ROWS SUB 1 ROWX            
C       EXSR SCREEN#CMD              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     COLS IFEQ 80              
C       EVAL BUF = BUF + '§+
C              <div class="screen" +
C                   style="display:block;">'
C       ELSE                
C       EVAL BUF = BUF + '§+
C              <div style="display:block;">'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '§+
C              <table border=0 +
C                cellspacing=0 +
C                cellpadding=0 summary="">'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR FMTIDX              
C     SCNPOS2 COMP COLS       36 36  
C       SETOFF         37  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   26   ADD 1 ROWS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       DO ROWS ROW            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '§<tr><td nowrap><pre>+
C          <b class="c'+%CHAR(COLORNUM)+'">'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       DO COLS COL            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO IFLT IDX              
C     SCNPOS IFEQ FMTPOS(IDX)              
C     *ZERO ADD FMTLEN(IDX) LEN3            
C     COLS SUB COL LEN1            
C       ADD 1 LEN1            
C     LEN1 IFGT LEN3              
C     *ZERO ADD LEN3 LEN1            
C       ENDIF                
C     LEN3 SUB LEN1 LEN2            
C     *ZERO ADD STEP FMTSTEP(IDX)            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD IDX IDX3            
C     *ZERO ADD ROW ROW3            
C     *ZERO ADD COL COL3            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     39 IFEQ COLORNUM              
C     47 OREQ COLORNUM              
C     55 OREQ COLORNUM              
C     63 OREQ COLORNUM              
C       MOVEL(P) 'password' TYPE3            
C       ELSE                
C       MOVEL(P) 'text' TYPE3            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN3 IFEQ 1              
C     TYPE3 ANDEQ 'password'              
C       MOVEL(P) 'text' TYPE3            
C       ADD 1 HELPSCREEN            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %SUBST ( SCREENX:SCNPOS:LEN3)
C     NULL$:NBSP$ XLATE BUFV BUFV            
C     SRC1:SRC2 XLATE BUFV BUFV            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     STEP IFEQ 1              
C     NBSP$ CHECKR BUFV POS            
C       ADD 1 POS            
C     NBSP$:' ' XLATE BUFV:POS BUFV     77  
C       EVAL BUFV = %TRIMR ( BUFV)
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR BUFVFORM              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) FMTFFW(IDX) LENCHAR2            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       TESTB FFW1BYPASS FMTFFW1(IDX)     78  
C   78   MOVEL(P) ' readonly' READONLY3            
C   N78   CLEAR   READONLY3            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     TYPE3 ANDEQ 'password'              
C       MOVEL(P) 'text' TYPE3            
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD IDX3 IDX6            
C     *ZERO ADD ROW3 ROW6            
C     *ZERO ADD COL3 COL6            
C     *ZERO ADD LEN3 LEN6            
C       MOVEL(P) TYPE3 TYPE6            
C       MOVEL(P) READONLY3 READONLY6            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   78 COLORNUM DIV 2 LEN            
C   78   MVR   LEN     78  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   78   EVAL BUF = BUF + '<b class="read">'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<input +
C           type="'+%TRIMR(TYPE3)+'" +
C           name="p'+%CHAR(IDX)+'" +
C             id="p'+%CHAR(IDX)+'" +
C            alt="' +%CHAR(LENNUM2)+'" +
C           size='  +%CHAR(LEN1)+' +
C                  maxlength='  +%CHAR(LEN3)+' +
C                    onfocus="fs=this" +
C          class="c'+%CHAR(COLORNUM)+'" +
C          value="'+       BUFV +'"'+
C                   AUTOCOMPLETE+
C                   AUTOCAPITALIZE+
C                   %TRIMR(READONLY3)+'>'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   78   EVAL BUF = BUF + '</b>'
C          
C       SELECT    
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN3 WHENEQ 10              
C     LEN3 OREQ 72              
C     LEN3 OREQ 128              
C     TYPE3 IFEQ 'password'              
C       ADD 1 PASSWORD            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN3 WHENEQ 30              
C     LEN3 OREQ 40              
C     LEN3 ORGE 60              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN3 IFNE 80              
C     LEN3 ANDNE 100              
C     LEN3 ANDNE 132              
C     LEN3 ANDNE 256              
C     LEN3 ANDNE 512              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     COL IFLE 25              
C       ADD 1 SOURCEDISPLAY            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN3 IFEQ 60              
C **   LEN3 OREQ 67              
C **   LEN3 OREQ 70              
C **   LEN3 OREQ 79              
C     *ZERO ADD 2 STEP            
C          
C       EVAL BUF = BUF + '<!--2-->'
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSL                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD FMTPOS(IDX) FMTPOSX            
C       EXSR FMTIDX              
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     PASSWORD IFEQ 1              
C     *IN31 OREQ *ON              
C     *IN32 ANDEQ *ON              
C       SETON         11  
C       ELSE                
C       SETOFF         11  
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SELECT    
C     LEN1 WHENGE 1              
C       SUB 1 LEN1            
C     LEN2 WHENGE 1              
C       SUB 1 LEN2            
C       EVAL BUF = BUF +   ATRX
C       OTHER                
C       SUBST(P) SCREEN(SCNPOS) CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOS IFEQ CMDPOS              
C     34 ANDEQ COLORNUM              
C       EXSR SCREEN#CMDX              
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     COL IFEQ 35              
C     COL OREQ 41              
C     COL OREQ 50              
C     COL OREQ 66              
C     COL OREQ 67              
C     COL OREQ 68              
C     COL OREQ 69              
C     COL OREQ 70              
C       EXSR SCREEN#PARM              
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SELECT    
C     CHAR WHENEQ SO$              
C       EVAL BUF = BUF +  SO
C       SETON         21  
C       SETOFF         22  
C     CHAR WHENEQ SI$              
C       EVAL BUF = BUF +  SI
C       SETOFF         21  
C       SETOFF         22  
C     *IN21 WHENEQ *ON              
C       EXSR SCREEN#DBCS              
C     CHAR WHENEQ 'f'              
C       EXSR SCREEN#LABEL              
C       EXSR SCREEN#WWW              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ '*'              
C       EXSR SCREEN#LABEL              
C       EXSR SCREEN#SPECIAL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ ':'              
C       EXSR SCREEN#SPECIAL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ '%'              
C       EXSR SCREEN#SPECIAL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ '&'              
C       EXSR SCREEN#SPECIAL              
C       EVAL BUF = BUF + '&amp;'
C     CHAR WHENEQ '#'              
C       EXSR SCREEN#SPECIAL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'q'              
C       EXSR SCREEN#SPECIAL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'm'              
C       EXSR SCREEN#MAILTO              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'i'              
C       EXSR SCREEN#MAIL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 's'              
C       EXSR SCREEN#MAIL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 't'              
C       EXSR SCREEN#MAIL              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'h'              
C       EXSR SCREEN#MAIL              
C       EXSR SCREEN#HTTP              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'w'              
C       EXSR SCREEN#WWW              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'p'              
C       EXSR SCREEN#WWW              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C     CHAR ORGE '0'              
C     CHAR ANDLE '9'              
C       EXSR SCREEN#LABEL              
C       EXSR SCREEN#SPECIAL              
C       EXSR SCREEN#MAILTO              
C       EXSR SCREEN#MAIL              
C       EXSR SCREEN#HTTP              
C       EXSR SCREEN#WWW              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'Ö'              
C   11   EVAL BUF = BUF + '\'
C   N11   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ 'Ü'              
C   11   EVAL BUF = BUF + '!'
C   N11   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ '!'              
C   11   EVAL BUF = BUF + '!'
C   N11   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'6D'              
C   11   EVAL BUF = BUF + '-'
C   N11   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'43'              
C   31   EVAL BUF = BUF + 'ä'
C   N31   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'CC'              
C   31   EVAL BUF = BUF + 'ö'
C   N31   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'DC'              
C   31   EVAL BUF = BUF + 'ü'
C   N31   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'59'              
C   31   EVAL BUF = BUF + 'ß'
C   N31   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'63'              
C   31   EVAL BUF = BUF + 'Ä'
C   N31   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'EC'              
C   31   EVAL BUF = BUF + 'Ö'
C   N31   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'FC'              
C   31   EVAL BUF = BUF + 'Ü'
C   N31   EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ X'90'              
C   11   EVAL BUF = BUF + '-'
C   N11   EVAL BUF = BUF +  X'9B'
C     CHAR WHENEQ X'CA'              
C   11   EVAL BUF = BUF + '%'
C   N11   EVAL BUF = BUF + ' '
C     CHAR WHENEQ '§'              
C   11   EVAL BUF = BUF + '@'
C   N11   EVAL BUF = BUF + '&sect;'
C     CHAR WHENEQ '"'              
C       EVAL BUF = BUF + '&quot;'
C     CHAR WHENEQ '<'              
C       EVAL BUF = BUF + '&lt;'
C     CHAR WHENEQ '>'              
C       EVAL BUF = BUF + '&gt;'
C     CHAR WHENGT ' '              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ ' '              
C       EVAL BUF = BUF +  CHAR
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENEQ X1F$              
C       EVAL BUF = BUF + '%'
C     CHAR WHENEQ X3F$              
C       EVAL BUF = BUF + '%'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENEQ NULL$              
C     *IN22 IFEQ *ON              
C     *IN27 OREQ *OFF              
C     COL ORNE COLS              
C       EVAL BUF = BUF +  NBSP$
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENGE ATR$              
C       MOVEL(P) CHAR LENCHAR            
C     *ZERO ADD LENNUM COLORNUM            
C     *IN22 IFEQ *ON              
C     *IN27 OREQ *OFF              
C     COL ORNE COLS              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><b>'+ATR1+'</b>+
C              <b class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       OTHER                
C       EVAL BUF = BUF +  CTRL
C       ENDSL                
C       ENDSL                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOSX IFLE SCNPOS              
C     SCNPOSX ANDNE *LOVAL              
C     SCNPOSX ANDNE *HIVAL              
C     *ZERO ADD *HIVAL SCNPOSX            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b></a>+
C              <b class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 SCNPOS            
C          
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN22 IFEQ *ON              
C     *IN27 ANDEQ *OFF              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><b>'+ATR2+'</b>+
C              <b class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN22 COMP *ON       27  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOSX IFNE *LOVAL              
C     SCNPOSX ANDNE *HIVAL              
C     *ZERO ADD *HIVAL SCNPOSX            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b></a>+
C              <b class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b></pre></td></tr>'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR WRSTOUT              
C          
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   26   SUB 1 ROWS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</table>'
C       ELSE                
C       EVAL BUF = BUF + '<!---->'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ROWS IFGE 1              
C     COLS IFEQ 80              
C       EVAL BUF = BUF + '</div>'
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</div>§§'
C       EXSR WRSTOUT              
C          
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#DBCS BEGSR                
C          
C       SELECT    
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENGT ' '              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN22 IFEQ *OFF              
C       MOVEL(P) CHAR CHAR21            
C       SETON         22  
C       ELSE                
C       MOVEL(P) CHAR CHAR22            
C       SETOFF         22  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<b class="dbcs">'
C          
C       SELECT    
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR2 WHENEQ X'424B'              
C       EVAL BUF = BUF +  '.'
C     CHAR2 WHENEQ X'424D'              
C       EVAL BUF = BUF +  '('
C     CHAR2 WHENEQ X'425D'              
C       EVAL BUF = BUF +  ')'
C     CHAR2 WHENEQ X'4260'              
C       EVAL BUF = BUF +  '-'
C     CHAR2 WHENEQ X'4261'              
C       EVAL BUF = BUF +  '/'
C     CHAR2 WHENEQ X'426B'              
C       EVAL BUF = BUF +  ','
C     CHAR2 WHENEQ X'426F'              
C       EVAL BUF = BUF +  '?'
C     CHAR2 WHENEQ X'427A'              
C       EVAL BUF = BUF +  ':'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C **   CHAR2 WHENEQ X'4340'              
C     CHAR2 WHENEQ X'4341'              
C       EVAL BUF = BUF +  '。'
C     CHAR2 WHENEQ X'4342'              
C       EVAL BUF = BUF +  '「'
C     CHAR2 WHENEQ X'4343'              
C       EVAL BUF = BUF +  '」'
C     CHAR2 WHENEQ X'4344'              
C       EVAL BUF = BUF +  '、'
C     CHAR2 WHENEQ X'4345'              
C       EVAL BUF = BUF +  '・'
C     CHAR2 WHENEQ X'4346'              
C       EVAL BUF = BUF +  'ヲ'
C     CHAR2 WHENEQ X'4347'              
C       EVAL BUF = BUF +  'ァ'
C     CHAR2 WHENEQ X'4348'              
C       EVAL BUF = BUF +  'ィ'
C     CHAR2 WHENEQ X'4349'              
C       EVAL BUF = BUF +  'ゥ'
C **   CHAR2 WHENEQ X'434A'              
C **   CHAR2 WHENEQ X'434B'              
C **   CHAR2 WHENEQ X'434C'              
C **   CHAR2 WHENEQ X'434D'              
C **   CHAR2 WHENEQ X'434E'              
C **   CHAR2 WHENEQ X'434F'              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C **   CHAR2 WHENEQ X'4350'              
C     CHAR2 WHENEQ X'4351'              
C       EVAL BUF = BUF +  'ェ'
C     CHAR2 WHENEQ X'4352'              
C       EVAL BUF = BUF +  'ォ'
C     CHAR2 WHENEQ X'4353'              
C       EVAL BUF = BUF +  'ャ'
C     CHAR2 WHENEQ X'4354'              
C       EVAL BUF = BUF +  'ュ'
C     CHAR2 WHENEQ X'4355'              
C       EVAL BUF = BUF +  'ョ'
C     CHAR2 WHENEQ X'4356'              
C       EVAL BUF = BUF +  'ッ'
C     CHAR2 WHENEQ X'4357'              
C       EVAL BUF = BUF +  'ヮ'
C     CHAR2 WHENEQ X'4358'              
C       EVAL BUF = BUF +  'ー'
C     CHAR2 WHENEQ X'4359'              
C       EVAL BUF = BUF +  'ヵ'
C     CHAR2 WHENEQ X'435A'              
C       EVAL BUF = BUF +  'ヶ'
C **   CHAR2 WHENEQ X'435B'              
C **   CHAR2 WHENEQ X'435C'              
C **   CHAR2 WHENEQ X'435D'              
C **   CHAR2 WHENEQ X'435E'              
C **   CHAR2 WHENEQ X'435F'              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C **   CHAR2 WHENEQ X'4380'              
C     CHAR2 WHENEQ X'4381'              
C       EVAL BUF = BUF +  'ア'
C     CHAR2 WHENEQ X'4382'              
C       EVAL BUF = BUF +  'イ'
C     CHAR2 WHENEQ X'4383'              
C       EVAL BUF = BUF +  'ウ'
C     CHAR2 WHENEQ X'4384'              
C       EVAL BUF = BUF +  'エ'
C     CHAR2 WHENEQ X'4385'              
C       EVAL BUF = BUF +  'オ'
C     CHAR2 WHENEQ X'4386'              
C       EVAL BUF = BUF +  'カ'
C     CHAR2 WHENEQ X'4387'              
C       EVAL BUF = BUF +  'キ'
C     CHAR2 WHENEQ X'4388'              
C       EVAL BUF = BUF +  'ク'
C     CHAR2 WHENEQ X'4389'              
C       EVAL BUF = BUF +  'ケ'
C     CHAR2 WHENEQ X'438A'              
C       EVAL BUF = BUF +  'コ'
C **   CHAR2 WHENEQ X'438B'              
C     CHAR2 WHENEQ X'438C'              
C       EVAL BUF = BUF +  'サ'
C     CHAR2 WHENEQ X'438D'              
C       EVAL BUF = BUF +  'シ'
C     CHAR2 WHENEQ X'438E'              
C       EVAL BUF = BUF +  'ス'
C     CHAR2 WHENEQ X'438F'              
C       EVAL BUF = BUF +  'セ'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR2 WHENEQ X'4390'              
C       EVAL BUF = BUF +  'ソ'
C     CHAR2 WHENEQ X'4391'              
C       EVAL BUF = BUF +  'タ'
C     CHAR2 WHENEQ X'4392'              
C       EVAL BUF = BUF +  'チ'
C     CHAR2 WHENEQ X'4393'              
C       EVAL BUF = BUF +  'ツ'
C     CHAR2 WHENEQ X'4394'              
C       EVAL BUF = BUF +  'テ'
C     CHAR2 WHENEQ X'4395'              
C       EVAL BUF = BUF +  'ト'
C     CHAR2 WHENEQ X'4396'              
C       EVAL BUF = BUF +  'ナ'
C     CHAR2 WHENEQ X'4397'              
C       EVAL BUF = BUF +  'ニ'
C     CHAR2 WHENEQ X'4398'              
C       EVAL BUF = BUF +  'ヌ'
C     CHAR2 WHENEQ X'4399'              
C       EVAL BUF = BUF +  'ネ'
C     CHAR2 WHENEQ X'439A'              
C       EVAL BUF = BUF +  'ノ'
C **   CHAR2 WHENEQ X'439B'              
C **   CHAR2 WHENEQ X'439C'              
C     CHAR2 WHENEQ X'439D'              
C       EVAL BUF = BUF +  'ハ'
C     CHAR2 WHENEQ X'439E'              
C       EVAL BUF = BUF +  'ヒ'
C     CHAR2 WHENEQ X'439F'              
C       EVAL BUF = BUF +  'フ'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C **   CHAR2 WHENEQ X'43A0'              
C **   CHAR2 WHENEQ X'43A1'              
C     CHAR2 WHENEQ X'43A2'              
C       EVAL BUF = BUF +  'ヘ'
C     CHAR2 WHENEQ X'43A3'              
C       EVAL BUF = BUF +  'ホ'
C     CHAR2 WHENEQ X'43A4'              
C       EVAL BUF = BUF +  'マ'
C     CHAR2 WHENEQ X'43A5'              
C       EVAL BUF = BUF +  'ミ'
C     CHAR2 WHENEQ X'43A6'              
C       EVAL BUF = BUF +  'ム'
C     CHAR2 WHENEQ X'43A7'              
C       EVAL BUF = BUF +  'メ'
C     CHAR2 WHENEQ X'43A8'              
C       EVAL BUF = BUF +  'モ'
C     CHAR2 WHENEQ X'43A9'              
C       EVAL BUF = BUF +  'ヤ'
C     CHAR2 WHENEQ X'43AA'              
C       EVAL BUF = BUF +  'ユ'
C **   CHAR2 WHENEQ X'43AB'              
C     CHAR2 WHENEQ X'43AC'              
C       EVAL BUF = BUF +  'ヨ'
C     CHAR2 WHENEQ X'43AD'              
C       EVAL BUF = BUF +  'ラ'
C     CHAR2 WHENEQ X'43AE'              
C       EVAL BUF = BUF +  'リ'
C     CHAR2 WHENEQ X'43AF'              
C       EVAL BUF = BUF +  'ル'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C **   CHAR2 WHENEQ X'43B0'              
C **   CHAR2 WHENEQ X'43B1'              
C **   CHAR2 WHENEQ X'43B2'              
C **   CHAR2 WHENEQ X'43B3'              
C **   CHAR2 WHENEQ X'43B4'              
C **   CHAR2 WHENEQ X'43B5'              
C **   CHAR2 WHENEQ X'43B6'              
C **   CHAR2 WHENEQ X'43B7'              
C **   CHAR2 WHENEQ X'43B8'              
C **   CHAR2 WHENEQ X'43B9'              
C     CHAR2 WHENEQ X'43BA'              
C       EVAL BUF = BUF +  'レ'
C     CHAR2 WHENEQ X'43BB'              
C       EVAL BUF = BUF +  'ロ'
C     CHAR2 WHENEQ X'43BC'              
C       EVAL BUF = BUF +  'ワ'
C     CHAR2 WHENEQ X'43BD'              
C       EVAL BUF = BUF +  'ン'
C     CHAR2 WHENEQ X'43BE'              
C       EVAL BUF = BUF +  '゛'
C     CHAR2 WHENEQ X'43BF'              
C       EVAL BUF = BUF +  '゜'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR2 WHENEQ X'43C0'              
C       EVAL BUF = BUF +  'ガ'
C     CHAR2 WHENEQ X'43C1'              
C       EVAL BUF = BUF +  'ギ'
C     CHAR2 WHENEQ X'43C2'              
C       EVAL BUF = BUF +  'グ'
C     CHAR2 WHENEQ X'43C3'              
C       EVAL BUF = BUF +  'ゲ'
C     CHAR2 WHENEQ X'43C4'              
C       EVAL BUF = BUF +  'ゴ'
C     CHAR2 WHENEQ X'43C5'              
C       EVAL BUF = BUF +  'ザ'
C     CHAR2 WHENEQ X'43C6'              
C       EVAL BUF = BUF +  'ジ'
C     CHAR2 WHENEQ X'43C7'              
C       EVAL BUF = BUF +  'ズ'
C     CHAR2 WHENEQ X'43C8'              
C       EVAL BUF = BUF +  'ゼ'
C     CHAR2 WHENEQ X'43C9'              
C       EVAL BUF = BUF +  'ゾ'
C     CHAR2 WHENEQ X'43CA'              
C       EVAL BUF = BUF +  'ダ'
C     CHAR2 WHENEQ X'43CB'              
C       EVAL BUF = BUF +  'ヂ'
C     CHAR2 WHENEQ X'43CC'              
C       EVAL BUF = BUF +  'ヅ'
C     CHAR2 WHENEQ X'43CD'              
C       EVAL BUF = BUF +  'デ'
C     CHAR2 WHENEQ X'43CE'              
C       EVAL BUF = BUF +  'ド'
C     CHAR2 WHENEQ X'43CF'              
C       EVAL BUF = BUF +  'バ'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR2 WHENEQ X'43D0'              
C       EVAL BUF = BUF +  'ビ'
C     CHAR2 WHENEQ X'43D1'              
C       EVAL BUF = BUF +  'ブ'
C     CHAR2 WHENEQ X'43D2'              
C       EVAL BUF = BUF +  'ベ'
C     CHAR2 WHENEQ X'43D3'              
C       EVAL BUF = BUF +  'ボ'
C     CHAR2 WHENEQ X'43D4'              
C       EVAL BUF = BUF +  'ヴ'
C     CHAR2 WHENEQ X'43D5'              
C       EVAL BUF = BUF +  'パ'
C     CHAR2 WHENEQ X'43D6'              
C       EVAL BUF = BUF +  'ピ'
C     CHAR2 WHENEQ X'43D7'              
C       EVAL BUF = BUF +  'プ'
C     CHAR2 WHENEQ X'43D8'              
C       EVAL BUF = BUF +  'ペ'
C     CHAR2 WHENEQ X'43D9'              
C       EVAL BUF = BUF +  'ポ'
C     CHAR2 WHENEQ X'43DA'              
C       EVAL BUF = BUF +  'ヰ'
C     CHAR2 WHENEQ X'43DB'              
C       EVAL BUF = BUF +  'ヱ'
C     CHAR2 WHENEQ X'43DC'              
C       EVAL BUF = BUF +  'ヽ'
C     CHAR2 WHENEQ X'43DD'              
C       EVAL BUF = BUF +  'ヾ'
C **   CHAR2 WHENEQ X'43DE'              
C **   CHAR2 WHENEQ X'43DF'              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C **     EVAL BUF = BUF +  'ヷ'
C **     EVAL BUF = BUF +  'ヸ'
C **     EVAL BUF = BUF +  'ヹ'
C **     EVAL BUF = BUF +  'ヺ'
C **     EVAL BUF = BUF +  '゠'
C **     EVAL BUF = BUF +  'ヿ'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       OTHER                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b>'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CHAR21 CHAR            
C       EXSR SCREEN#DBCSX              
C       MOVEL(P) CHAR22 CHAR            
C       EXSR SCREEN#DBCSX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<b>'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   MSG            
C       CALLP(E) CVTHC ( MSG:CHAR2:4)
C       CAT CHAR2:1 MSG            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR21 IFEQ X'40'              
C     CHAR21 OREQ X'41'              
C     CHAR21 OREQ X'42'              
C     CHAR21 OREQ X'43'              
C     CHAR21 OREQ X'44'              
C     MSG DSPLY                
C       ENDIF                
C       ENDSL                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b>'
C          
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENEQ ' '              
C       EVAL BUF = BUF +  CHAR
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENEQ X1F$              
C       EVAL BUF = BUF + '%'
C     CHAR WHENEQ X3F$              
C       EVAL BUF = BUF + '%'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENEQ NULL$              
C     *IN22 IFEQ *ON              
C     *IN27 OREQ *OFF              
C     COL ORNE COLS              
C       EVAL BUF = BUF +  NBSP$
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENGE ATR$              
C       MOVEL(P) CHAR LENCHAR            
C     *ZERO ADD LENNUM COLORNUM            
C     *IN22 IFEQ *ON              
C     *IN27 OREQ *OFF              
C     COL ORNE COLS              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><b>'+ATR3+'</b>+
C              <b class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       OTHER                
C       EVAL BUF = BUF +  CTRL
C       ENDSL                
C       ENDSR                
C          
  X * SCREEN#DBCS EXSR TN5250SB    
  X * SCREEN#DBCS EXSR TN5250SB    
  X  
C     SCREEN#DBCSX BEGSR                
C          
C       SELECT    
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENGE ' '              
C     *BLANKS ANDNE DBCS              
C       EVAL BUF = BUF +  DBCS
C     CHAR WHENEQ X'90'              
C       EVAL BUF = BUF + '-'
C     CHAR WHENEQ X'CA'              
C       EVAL BUF = BUF + '%'
C     CHAR WHENEQ '&'              
C       EVAL BUF = BUF + '&amp;'
C     CHAR WHENEQ '§'              
C       EVAL BUF = BUF + '&sect;'
C     CHAR WHENEQ '"'              
C       EVAL BUF = BUF + '&quot;'
C     CHAR WHENEQ '<'              
C       EVAL BUF = BUF + '&lt;'
C     CHAR WHENEQ '>'              
C       EVAL BUF = BUF + '&gt;'
C     CHAR WHENGT ' '              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ ' '              
C       EVAL BUF = BUF +  CHAR
C     CHAR WHENEQ NULL$              
C       EVAL BUF = BUF +  NBSP$
C       OTHER                
C       EVAL BUF = BUF +  CTRL
C       ENDSL                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#CMD BEGSR                
C     *ZERO ADD *HIVAL CMDPOS            
C     *ZERO ADD *HIVAL CMDPOSX            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD COLS POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWNE ')'              
C     POS ANDGT 1              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ ')'              
C     POS SUB 1 CMDPOSX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWNE '('              
C     POS ANDGT 1              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ '('              
C     POS ADD 1 CMDPOS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C **   CHAR ORGE '0'              
C **   CHAR ANDLE '9'              
C     CHAR OREQ '#'              
C     CHAR OREQ '§'              
C     CHAR OREQ '$'              
C **   CHAR OREQ '_'              
C **   CHAR OREQ '.'              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C     CHAR ORGE '0'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '#'              
C     CHAR OREQ '§'              
C     CHAR OREQ '$'              
C     CHAR OREQ '_'              
C     CHAR OREQ '.'              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDDO                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLE CMDPOSX              
C     *ZERO ADD *HIVAL CMDPOS            
C     *ZERO ADD *HIVAL CMDPOSX            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#CMDX BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD CMDPOSX SCNPOSX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %SUBST ( SCREENX:SCNPOS:
C         SCNPOSX-SCNPOS+1)
C       EXSR BUFVFORM              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Command('''+%TRIMR(BUFV)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><a'+BUF3+BUFV+
C         ' onmousedown="return false" +
C                 class="c'+%CHAR(COLORNUM)+'"><b +
C                 class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#PARM BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS POSX            
C       MOVEL(P) CHAR CHARX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOS SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C     CHAR OREQ '.'              
C     CHAR OREQ ':'              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 2 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHARXX     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ ':'              
C     COL ANDEQ 41              
C     CHAR ORNE ':'              
C     COL ANDNE 41              
C     CHAR OREQ ':'              
C     COL ANDEQ 35              
C     CHARXX ANDGT ' '              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 15 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 2 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C     COL ANDEQ 35              
C     CHAR OREQ '>'              
C     COL ANDEQ 35              
C     CHAR ORGT ' '              
C     COL ANDEQ 41              
C     COL OREQ 50              
C     COL OREQ 66              
C     COL OREQ 67              
C     COL OREQ 68              
C     COL OREQ 69              
C     COL OREQ 70              
C     *IN37 OREQ *ON              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 12 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C **   CHAR ORGE '0'              
C **   CHAR ANDLE '9'              
C     CHAR OREQ '#'              
C     CHAR OREQ '§'              
C     CHAR OREQ '$'              
C **   CHAR OREQ '_'              
C **   CHAR OREQ '.'              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C     CHAR ORGE '0'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '#'              
C     CHAR OREQ '§'              
C     CHAR OREQ '$'              
C     CHAR OREQ '_'              
C     CHAR OREQ '.'              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C     CHAR OREQ '>'              
C     COL OREQ 50              
C     COL OREQ 66              
C     COL OREQ 67              
C     COL OREQ 68              
C     COL OREQ 69              
C     COL OREQ 70              
C       SETON         37  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     COL IFEQ 66              
C     COL OREQ 67              
C     COL OREQ 68              
C     COL OREQ 69              
C     COL ORNE 70              
C     *BLANKS ORNE LABELX$              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 2 POS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS SCNPOSX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     COL IFEQ 66              
C     COL OREQ 67              
C     COL OREQ 68              
C     COL OREQ 69              
C     COL OREQ 70              
C       EVAL BUF3 = ''
C       EVAL BUFV = 'No('''+%TRIM(LABELX$)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %SUBST ( SCREENX:SCNPOS:
C         SCNPOSX-SCNPOS+1)
C       EXSR BUFVFORM              
C       EVAL BUF3 = ''
C       EVAL BUFV = 'No('''+%TRIM(BUFV)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     PASSWORD IFEQ 1              
C **   HELPSCREEN ORGE 1              
C     SOURCEDISPLAY ORGE 1              
C     ROW ORGE ROWX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ELSE                
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     COL IFEQ 66              
C     COL OREQ 67              
C     COL OREQ 68              
C     COL OREQ 69              
C     COL OREQ 70              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p''+max);'+
C              'MenuOpt('''+%TRIMR(LABELX$)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     COL IFEQ 67              
C       EVAL BUFV = %SUBST ( SCREENX:SCNPOS:
C         SCNPOSX-SCNPOS+1)
C       EXSR BUFVFORM              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p''+max);'+
C              'MenuOpt('''+%TRIMR(BUFV)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %SUBST ( SCREENX:SCNPOS:
C         SCNPOSX-SCNPOS+1)
C       EXSR BUFVFORM              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Parameter('''+%TRIMR(BUFV)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><a'+BUF3+BUFV+
C         ' onmousedown="return false" +
C                 class="c'+%CHAR(COLORNUM)+'"><b +
C                 class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POSX POS            
C       MOVEL(P) CHARX CHAR            
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#LABEL BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOS SUB 1 POS            
C     SCREENLEN MULT ROWS POSN            
C       MULT COLS POSN            
C       MOVEL(P) CHAR CHARSAVE            
C       CLEAR   MORE            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR SCREEN#LABEL$              
C       MOVEL(P) LABEL LABELX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR SCREEN#FKEY              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ '='              
C     LABEL IFNE 'SEU'              
C     LABEL1 IFNE 'f'              
C     *BLANKS ORNE FKEY              
C       EXSR SCREEN#OPT              
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ '-'              
C     EXTRAS ANDEQ ' '              
C     LABEL1 IFLT '0'              
C     LABEL1 ORGT '9'              
C     LABEL1 IFNE 'C'              
C     LABEL1 ANDNE 'E'              
C     LABEL1 ANDNE 'I'              
C     LABEL1 ANDNE 'R'              
C     LABEL1 ANDNE 'S'              
C     LABEL1 ANDNE 'T'              
C     LABEL2 IFEQ ' '              
C     *BLANKS ORNE FKEY              
C     LABEL1 IFNE 'f'              
C     *BLANKS ORNE FKEY              
C       EXSR SCREEN#OPT              
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ '.'              
C     CHAR OREQ '-'              
C     CHAR OREQ '*'              
C     LABEL IFNE 'CL'              
C     LABEL ANDNE 'ID'              
C     LABEL ANDNE 'LIC'              
C     LABEL ANDNE 'PEP'              
C     LABEL1 IFNE 'f'              
C       EXSR SCREEN#MENUOPT              
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ ' '              
C     LABEL1 IFNE 'f'              
C     *IN33 IFEQ *OFF              
C     '0123456789 ' CHECK LABEL       77 78  
C     *IN78 IFEQ *OFF              
C       SUB 1 POS            
C       EXSR SCREEN#MENUOPT              
C       ADD 1 POS            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE FKEY              
C       EXSR SCREEN#MENUOPT              
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CHARSAVE CHAR            
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN#LABEL EXSR TN5250SB    
  X * SCREEN#OPT EXSR TN5250SB    
  X  
C     SCREEN#LABEL$ BEGSR                
C       CLEAR   CHAR            
C       CLEAR   LABEL            
C       CLEAR   EXTRAS            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C     CHAR ORGE '0'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '*'              
C     CHAR OREQ 'f'              
C       MOVEL(P) CHAR LABEL1            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C     CHAR ORGE '0'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '*'              
C     CHAR IFEQ '*'              
C     LABEL1 ORNE '*'              
C       MOVEL(P) CHAR LABEL2            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFGE 'A'              
C     CHAR ANDLE 'I'              
C     CHAR ORGE 'J'              
C     CHAR ANDLE 'R'              
C     CHAR ORGE 'S'              
C     CHAR ANDLE 'Z'              
C     CHAR ORGE '0'              
C     CHAR ANDLE '9'              
C     CHAR OREQ '*'              
C     CHAR IFEQ '*'              
C     LABEL1 ORNE '*'              
C       MOVEL(P) CHAR LABEL3            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ '?'              
C       MOVEL(P) 'X' EXTRAS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ 'x'              
C       MOVEL(P) 'X' EXTRAS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ 'x'              
C       MOVEL(P) 'X' EXTRAS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ 'n'              
C       MOVEL(P) 'X' EXTRAS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN#LABEL EXSR TN5250SB    
  X  
C     SCREEN#FKEY BEGSR                
C       CLEAR   FKEY            
C       MOVEL(P) LABELX LABEL            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LABEL1 IFEQ 'f'              
C     LABEL1 OREQ 'F'              
C     LABEL2 IFGE '0'              
C     LABEL2 ANDLE '9'              
C     LABEL3 IFGE '0'              
C     LABEL3 ANDLE '9'              
C     LABEL3 OREQ ' '              
C       MOVEL(P) 'X' FKEY            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN#LABEL EXSR TN5250SB    
  X * SCREEN#LABEL EXSR TN5250SB    
  X  
C     SCREEN#OPT BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS POSX            
C       MOVEL(P) CHAR CHARX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   CHAR            
C       SETOFF         25  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOS SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C     CHAR OREQ '.'              
C     CHAR OREQ ','              
C     CHAR OREQ ':'              
C     CHAR OREQ ';'              
C     CHAR OREQ '='              
C     CHAR OREQ '/'              
C     CHARX ANDEQ '='              
C     CHAR OREQ '('              
C     CHARX ANDEQ '='              
C     CHAR OREQ ')'              
C     CHARX ANDEQ '='              
C     CHAR OREQ '-'              
C     CHAR OREQ '+'              
C     CHAR OREQ '"'              
C     CHAR OREQ ''''              
C     POSX ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE '-'              
C     CHARX OREQ '='              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFGE ATR$              
C     CHAR ANDLT ' '              
C       SUB 2 POS            
C       ELSE                
C       EXSR SCREEN#OPTX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS POS1            
C       CLEAR   LEVEL            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR SCREEN#OPTX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SELECT    
C     *IN25 WHENEQ *ON              
C     CHAR WHENEQ '('              
C       ADD 1 LEVEL            
C     CHAR WHENEQ ')'              
C       SUB 1 LEVEL            
C     POS IFGT POS1              
C       MOVEL(P) ' ' CHAR            
C       ENDIF                
C     CHAR WHENGE ATR$              
C     CHAR ANDLT ' '              
C       MOVEL(P) ' ' CHAR            
C       ENDSL                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWGT ' '              
C     POS ANDLT POSN              
C     *IN25 OREQ *ON              
C     POS ANDLT POSN              
C     CHAR OREQ SO$              
C     POS ANDLT POSN              
C     CHAR OREQ X1F$              
C     POS ANDLT POSN              
C     CHAR OREQ X3F$              
C     POS ANDLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR SCREEN#OPTX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SELECT    
C     *IN25 WHENEQ *ON              
C     CHAR WHENEQ '('              
C       ADD 1 LEVEL            
C     CHAR WHENEQ ')'              
C       SUB 1 LEVEL            
C     LEVEL IFLT 0              
C     POS IFGT POS1              
C       MOVEL(P) ' ' CHAR            
C       ENDIF                
C       ENDIF                
C     CHAR WHENGE ATR$              
C     CHAR ANDLT ' '              
C       MOVEL(P) ' ' CHAR            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR WHENLE ' '              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     CHAR OREQ '.'              
C     CHAR OREQ ','              
C     CHAR OREQ ':'              
C     CHAR OREQ ';'              
C     CHAR OREQ '='              
C     CHAR OREQ '/'              
C       MOVEL(P) CHAR CHARXX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS POSXX            
C       EXSR SCREEN#LABEL$              
C     *ZERO ADD POSXX POS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ '='              
C     LABEL ANDNE ' '              
C     CHAR OREQ '-'              
C     CHARX ANDNE '='              
C     LABEL ANDNE ' '              
C     EXTRAS ANDEQ ' '              
C     CHAR OREQ '-'              
C     CHARX ANDEQ '='              
C     LABEL ANDGE '0'              
C     LABEL ANDLE '9'              
C     LABEL ANDNE '400'              
C     EXTRAS ANDEQ ' '              
C       MOVEL(P) ' ' CHAR            
C     CHARXX IFLE ' '              
C       MOVEL(P) CHARXX CHAR            
C       ENDIF                
C          
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHARXX IFLE ' '              
C     CHARXX ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     CHARXX OREQ '.'              
C     CHARX ANDNE '='              
C     CHARXX OREQ ','              
C     CHARX ANDNE '='              
C     CHARXX OREQ ';'              
C     CHARX ANDNE '='              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SELECT    
C     CHAR WHENEQ '('              
C       ADD 1 LEVEL            
C     CHAR WHENEQ ')'              
C       SUB 1 LEVEL            
C     LEVEL IFLT 0              
C     POS IFGT POS1              
C       MOVEL(P) ' ' CHAR            
C       ENDIF                
C       ENDIF                
C       ENDSL                
C          
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) '+' CHAR            
C          
C       ENDIF                
C       ENDIF                
C       ENDSL                
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ SI$              
C     POS IFGT 2              
C     POS SUB 2 POS3            
C       SUBST(P) SCREENX:POS3 CHARS3     77  
C     X'426B' CAT(P) SI$ CHARDS            
C     CHARS3 IFEQ CHARDS              
C       SUB 1 POS            
C **     SUBST(P) SCREENX:POS CHAR     77  
C       ELSE                
C     X'4344' CAT(P) SI$ CHARDS            
C     CHARS3 IFEQ CHARDS              
C       SUB 1 POS            
C **     SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE SI$              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C       EXSR SCREEN#STOP              
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE SI$              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE SI$              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     CHAR IFLE ' '              
C     POS ANDGT POS1              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE SI$              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     POS IFGT 2              
C     POS SUB 2 POS3            
C       SUBST(P) SCREENX:POS3 CHARS3     77  
C     CHARS3 IFEQ '...'              
C     *BLANKS IFNE FKEY              
C       MOVEL(P) 'X' MORE            
C       ELSE                
C       SUB 3 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE SI$              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     CHAR IFLE ' '              
C     POS ANDGT POS1              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE SI$              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     CHAR IFEQ '.'              
C     CHAR OREQ ','              
C     CHAR OREQ ';'              
C     CHAR OREQ ':'              
C     CHAR OREQ '/'              
C     CHAR OREQ '"'              
C     CHAR OREQ ''''              
C     POS IFGT POS1              
C     *BLANKS IFEQ MORE              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE SI$              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     CHAR IFLE ' '              
C     POS ANDGT POS1              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS SCNPOSX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF3 = ''
C       EVAL BUFV = 'No('''+%TRIM(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE FKEY              
C     ROW SUB 1 LEN#            
C     PASSWORD IFEQ 1              
C     HELPSCREEN ORGE 1              
C     SOURCEDISPLAY ORGE 1              
C     ROW ORGE ROWX              
C     READONLY6 ORNE *BLANKS              
C     LEN6 ORGE 60              
C     LEN6 ANDNE 80              
C     COL6 ORGT COL              
C     SOURCEDISPLAY ANDLT 1              
C     ROW6 ORLT LEN#              
C     LABELX ORNE 'F4'              
C     LABELX ANDNE 'f4'              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'FKey('''+%TRIMR(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ELSE                
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p'+%CHAR(IDX6)+''');'+
C              'FKey('''+%TRIMR(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ELSE                
C     PASSWORD IFEQ 1              
C     HELPSCREEN ORGE 1              
C     SOURCEDISPLAY ORGE 1              
C     ROW ORGE ROWX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ELSE                
C     ' ' CHECKR LABELX LENX            
C     READONLY6 IFNE *BLANKS              
C     LEN6 ORGE 4              
C **   COL6 ORGT COL              
C **   SOURCEDISPLAY ANDLT 1              
C     LEN6 ORLT LENX              
C     LEN6 ORGE 3              
C     LABELX ANDGE '0'              
C     LABELX ANDLE '9'              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Opt('''+%TRIMR(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ELSE                
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p'+%CHAR(IDX6)+''');'+
C              'Special('''+%TRIMR(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><a'+BUF3+BUFV+
C         ' onmousedown="return false" +
C                 class="c'+%CHAR(COLORNUM)+'"><b +
C                 class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POSX POS            
C       MOVEL(P) CHARX CHAR            
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN#OPT EXSR TN5250SB    
  X * SCREEN#OPT EXSR TN5250SB    
  X * SCREEN#OPT EXSR TN5250SB    
  X  
C     SCREEN#OPTX BEGSR                
C       SELECT    
C     CHAR WHENEQ SO$              
C       SETON         25  
C     CHAR WHENEQ SI$              
C       SETOFF         25  
C       ENDSL                
C       ENDSR                
C          
  X * SCREEN#LABEL EXSR TN5250SB    
  X * SCREEN#LABEL EXSR TN5250SB    
  X * SCREEN#LABEL EXSR TN5250SB    
  X  
C     SCREEN#MENUOPT BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS POSX            
C       MOVEL(P) CHAR CHARX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   CHAR            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C     *BLANKS ORNE FKEY              
C     SCNPOS SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWGT ' '              
C     CHAR ANDNE '.'              
C     CHAR ANDNE ','              
C     CHAR ANDNE '-'              
C     CHAR ANDNE '/'              
C     CHAR ANDNE '*'              
C     POS ANDLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS SCNPOSX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' ' CHECKR LABELX LENX            
C     SCNPOSX SUB SCNPOS LEN#            
C       ADD 1 LEN#            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN# IFLE LENX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF3 = ''
C       EVAL BUFV = 'No('''+%TRIM(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE FKEY              
C     ROW SUB 1 LEN#            
C     PASSWORD IFEQ 1              
C     HELPSCREEN ORGE 1              
C     SOURCEDISPLAY ORGE 1              
C     ROW ORGE ROWX              
C     READONLY6 ORNE *BLANKS              
C     LEN6 ORGE 60              
C     LEN6 ANDNE 80              
C     COL6 ORGT COL              
C     SOURCEDISPLAY ANDLT 1              
C     ROW6 ORLT LEN#              
C     LABELX ORNE 'F4'              
C     LABELX ANDNE 'f4'              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'FKey('''+%TRIMR(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ELSE                
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p'+%CHAR(IDX6)+''');'+
C              'FKey('''+%TRIMR(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ELSE                
C     PASSWORD IFEQ 1              
C     HELPSCREEN ORGE 1              
C     SOURCEDISPLAY ORGE 1              
C     ROW ORGE ROWX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ELSE                
C       MOVEL(P) LABELX LABELX$            
C       SETON         32  
C     'DSPF' SCAN SCREENX       77 78  
C   N78 'EDTF' SCAN SCREENX       77 78  
C     *IN78 IFEQ *ON              
C     SOURCEDISPLAY ANDLT 1              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p''+min);'+
C              'MenuOpt('''+%TRIMR(LABELX)+''');'+
C              'Field ( ''p'+%CHAR(IDX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ELSE                
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p''+max);'+
C              'MenuOpt('''+%TRIMR(LABELX)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><a'+BUF3+BUFV+
C         ' onmousedown="return false" +
C                 class="c'+%CHAR(COLORNUM)+'"><b +
C                 class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POSX POS            
C       MOVEL(P) CHARX CHAR            
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#SPECIAL BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C     CHAR IFEQ '*'              
C     CHAR OREQ ':'              
C     CHAR ANDNE ':'              
C     CHAR OREQ '%'              
C     CHAR OREQ '&'              
C     CHAR OREQ 'q'              
C     CHAR OREQ 'Q'              
C     CHAR OREQ '#'              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS POSX            
C       MOVEL(P) CHAR CHARX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       CLEAR   CHAR            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOS SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFLE ' '              
C     CHAR ANDNE X1F$              
C     CHAR ANDNE X3F$              
C     CHAR OREQ ','              
C     CHAR OREQ ';'              
C     CHAR OREQ '/'              
C     CHAR OREQ '('              
C     CHAR OREQ ')'              
C     CHAR OREQ '-'              
C     CHAR OREQ '+'              
C     CHARX OREQ ':'              
C     CHARX OREQ '&'              
C     CHAR OREQ '"'              
C     CHAR OREQ ''''              
C     SCNPOS ADD 1 POS            
C     SCREENLEN MULT ROWS POSN            
C       MULT COLS POSN            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) '-' CHAR21            
C       MOVEL(P) '.' CHAR22            
C       MOVEL(P) '*' CHARXX            
C          
C       SELECT    
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHARX WHENEQ '*'              
C       CLEAR   CHAR21            
C       CLEAR   CHAR22            
C       CLEAR   CHARXX            
C     CHARX WHENEQ ':'              
C       CLEAR   CHAR21            
C     CHARX WHENEQ '&'              
C       CLEAR   CHAR22            
C     CHARX WHENEQ 'q'              
C     CHARX OREQ 'Q'              
C     CHARX OREQ '#'              
C       CLEAR   CHARXX            
C       ENDSL                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHARX IFEQ ':'              
C     CHARX OREQ '&'              
C     CHAR IFGE '0'              
C     CHAR ANDLE '9'              
C       MOVEL(P) CHARX CHAR            
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWGT ' '              
C     CHAR ANDNE ','              
C     CHAR ANDNE ';'              
C     CHAR ANDNE '/'              
C     CHAR ANDNE '('              
C     CHAR ANDNE ')'              
C **   CHAR ANDNE '-'              
C     CHAR ANDNE '+'              
C     CHAR ANDNE ':'              
C     CHAR ANDNE '&'              
C     CHAR ANDNE '¡'              
C     CHAR ANDNE '!'              
C     CHAR ANDNE '¿'              
C     CHAR ANDNE '?'              
C     CHAR ANDNE '^'              
C     CHAR ANDNE '<'              
C     CHAR ANDNE '>'              
C     CHAR ANDNE '='              
C     CHAR ANDNE '"'              
C     CHAR ANDNE ''''              
C     CHAR ANDNE CHAR21              
C     CHAR ANDNE CHAR22              
C     CHAR ANDNE CHARXX              
C     POS ANDLT POSN              
C     CHAR OREQ X1F$              
C     POS ANDLT POSN              
C     CHAR OREQ X3F$              
C     POS ANDLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHARX IFNE '&'              
C     POS IFGT 2              
C     POS SUB 2 POS3            
C       SUBST(P) SCREENX:POS3 CHARS3     77  
C     CHARS3 IFEQ '...'              
C       SUB 3 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHARX COMP '&'       77  
C   77   MOVEL(P) ',' CHAR22            
C   N77   MOVEL(P) '.' CHAR22            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFGT 1              
C     CHAR IFEQ ','              
C     CHAR OREQ ';'              
C     CHAR OREQ '"'              
C     CHAR OREQ ''''              
C     CHAR OREQ CHAR22              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFNE '*'              
C     POS ANDNE SCNPOS              
C     CHAR OREQ '*'              
C     POS ANDEQ SCNPOS              
C     CHAR ORNE CHARX              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS SCNPOSX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %SUBST ( SCREENX:SCNPOS:
C         SCNPOSX-SCNPOS+1)
C       EXSR BUFVFORM              
C       EVAL BUF3 = ''
C       EVAL BUFV = 'No('''+%TRIM(BUFV)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     PASSWORD IFEQ 1              
C     HELPSCREEN ORGE 1              
C     SOURCEDISPLAY ORGE 1              
C     ROW ORGE ROWX              
C     READONLY6 ORNE *BLANKS              
C     LEN6 ORGE 60              
C     LEN6 ANDNE 80              
C     COL6 ORGT COL              
C     SOURCEDISPLAY ANDLT 1              
C     *IN36 ANDEQ *OFF              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ELSE                
C     SCNPOSX SUB SCNPOS LEN#            
C       ADD 1 LEN#            
C     CHAR IFEQ '*'              
C     LEN# ANDEQ 1              
C       ADD 2 LEN#            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     LEN6 IFGE LEN#              
C       EVAL BUFV = %SUBST ( SCREENX:SCNPOS:
C         SCNPOSX-SCNPOS+1)
C       EXSR BUFVFORM              
C       EVAL BUF3 =  SHOWLINK
C       EVAL BUFV = 'Field ( ''p'+%CHAR(IDX6)+''');'+
C              'Special('''+%TRIMR(BUFV)+''')'
C       EVAL BUFV =' onclick="'+BUFV+'"'
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><a'+BUF3+BUFV+
C         ' onmousedown="return false" +
C                 class="c'+%CHAR(COLORNUM)+'"><b +
C                 class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POSX POS            
C       MOVEL(P) CHARX CHAR            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#MAILTO BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C     CHAR IFEQ 'm'              
C     CHAR OREQ 'M'              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CHAR CHARSAVE            
C       SUBST(P) SCREENX:SCNPOS CHARS     77  
C     UPPER:LOWER XLATE(P) CHARS CHARS            
C     'mailto:' IFEQ CHARS7              
C       EVAL BUFV = ''
C       EXSR SCREEN#LINK              
C       ENDIF                
C       MOVEL(P) CHARSAVE CHAR            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#MAIL BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C     CHAR IFEQ 'h'              
C     CHAR OREQ 'H'              
C     CHAR OREQ 'i'              
C     CHAR OREQ 'I'              
C     CHAR OREQ 's'              
C     CHAR OREQ 'S'              
C     CHAR OREQ 't'              
C     CHAR OREQ 'T'              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CHAR CHARSAVE            
C       SUBST(P) SCREENX:SCNPOS CHARS     77  
C     UPPER:LOWER XLATE(P) CHARS CHARS            
C     'help§' IFEQ CHARS5              
C     'help@' OREQ CHARS5              
C     'help(at)' OREQ CHARS8              
C     'info§' OREQ CHARS5              
C     'info@' OREQ CHARS5              
C     'info(at)' OREQ CHARS8              
C     'spider§' OREQ CHARS7              
C     'spider@' OREQ CHARS7              
C     'spider(at)' OREQ CHARS10              
C     'ticket§' OREQ CHARS7              
C     'ticket@' OREQ CHARS7              
C     'ticket(at)' OREQ CHARS10              
C     'scaninfo§' OREQ CHARS9              
C     'scaninfo@' OREQ CHARS9              
C     'scaninfo(at)' OREQ CHARS12              
C     'techinfo§' OREQ CHARS9              
C     'techinfo@' OREQ CHARS9              
C     'techinfo(at)' OREQ CHARS12              
C       EVAL BUFV = 'mailto:'
C       EXSR SCREEN#LINK              
C       ENDIF                
C       MOVEL(P) CHARSAVE CHAR            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#HTTP BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C     CHAR IFEQ 'h'              
C     CHAR OREQ 'H'              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CHAR CHARSAVE            
C       SUBST(P) SCREENX:SCNPOS CHARS     77  
C     UPPER:LOWER XLATE(P) CHARS CHARS            
C     'http://' IFEQ CHARS7              
C     'https://' OREQ CHARS8              
C       EVAL BUFV = ''
C       EXSR SCREEN#LINK              
C       ENDIF                
C       MOVEL(P) CHARSAVE CHAR            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X * SCREEN# EXSR TN5250SB    
  X  
C     SCREEN#WWW BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C     CHAR IFEQ 'f'              
C     CHAR OREQ 'F'              
C     CHAR OREQ 'w'              
C     CHAR OREQ 'W'              
C     CHAR OREQ 'p'              
C     CHAR OREQ 'P'              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CHAR CHARSAVE            
C       SUBST(P) SCREENX:SCNPOS CHARS     77  
C     UPPER:LOWER XLATE(P) CHARS CHARS            
C     'ftp.' IFEQ CHARS4              
C     'web.' OREQ CHARS4              
C     'www.' OREQ CHARS4              
C     'pub400.com' OREQ CHARS10              
C       EVAL BUFV = 'http://'
C       EXSR SCREEN#LINK              
C       ENDIF                
C       MOVEL(P) CHARSAVE CHAR            
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN#MAILTO EXSR TN5250SB    
  X * SCREEN#MAIL EXSR TN5250SB    
  X * SCREEN#HTTP EXSR TN5250SB    
  X * SCREEN#WWW EXSR TN5250SB    
  X  
C     SCREEN#LINK BEGSR                
C     SCNPOSX IFEQ *HIVAL              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     SCNPOS ADD 1 POS            
C     SCREENLEN MULT ROWS POSN            
C       MULT COLS POSN            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR DOWGT ' '              
C     CHAR ANDNE ';'              
C     CHAR ANDNE '>'              
C     CHAR ANDNE '"'              
C     CHAR ANDNE ''''              
C     POS ANDLT POSN              
C       ADD 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     CHAR IFEQ '.'              
C     CHAR OREQ ','              
C     CHAR OREQ ')'              
C       SUB 1 POS            
C       SUBST(P) SCREENX:POS CHAR     77  
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD POS SCNPOSX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV =
C       BUFV + %SUBST ( SCREENX:SCNPOS:
C         SCNPOSX-SCNPOS+1)
C       EXSR BUFVFORM              
C *     --------------------------------------
C *     Text (at) durch @ ersetzen
C *     --------------------------------------
C     '(at)' SCAN BUFV POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL BUFV = %REPLACE('@':BUFV:POS:4)
C       ADD 1 POS            
C     '(at)' SCAN BUFV:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '<!---->'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</b><a href="'+BUFV+'"'+
C         ' onmousedown="return false" +
C                target="_blank" +
C                 class="c'+%CHAR(COLORNUM)+'"><b +
C                 class="c'+%CHAR(COLORNUM)+'">'
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN#OPT EXSR TN5250SB    
  X  
C     SCREEN#STOP BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF2 = %SUBST ( SCREENX:SCNPOS:
C            POS -SCNPOS+1)
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' ' SCAN BUF2 POS2     77 78  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C       SUBST(P) BUF2:POS2 CHARS12     77  
C     ATR$:' ' XLATE(P) CHARS12 CHARS12     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' die Eingabe' IFEQ CHARS12              
C     ' der Positio' OREQ CHARS12              
C     ' zu bestätig' OREQ CHARS12              
C     ' verarbeitet' OREQ CHARS12              
C     ' getroffene ' OREQ CHARS12              
C     ' erscheint ' OREQ CHARS11              
C     ' zur vorh. ' OREQ CHARS11              
C     ' function ' OREQ CHARS10              
C     ' drücken. ' OREQ CHARS10              
C     ' drücken, ' OREQ CHARS10              
C     ' drücken ' OREQ CHARS9              
C     ' drückt. ' OREQ CHARS9              
C     ' Utilize ' OREQ CHARS9              
C     ' Utilice ' OREQ CHARS9              
C     ' premere ' OREQ CHARS9              
C     ' zurück ' OREQ CHARS8              
C     ' to move ' OREQ CHARS9              
C     ' It will ' OREQ CHARS9              
C     ' key or ' OREQ CHARS8              
C     ' key  ' OREQ CHARS6              
C     ' and  ' OREQ CHARS6              
C     ' aktiv ' OREQ CHARS7              
C     ' press ' OREQ CHARS7              
C     ' pulse ' OREQ CHARS7              
C     ' Usare ' OREQ CHARS7              
C     ' Pour ' OREQ CHARS6              
C     ' pour ' OREQ CHARS6              
C     ' Para ' OREQ CHARS6              
C     ' para ' OREQ CHARS6              
C     ' para o ' ANDNE CHARS8              
C     ' sin ' OREQ CHARS5              
C     ' Per ' OREQ CHARS5              
C     ' per ' OREQ CHARS5              
C     ' senza ' OREQ CHARS7              
C     ' prima ' OREQ CHARS7              
C     ' su un ' OREQ CHARS7              
C     ' without ' OREQ CHARS9              
C     ' to return ' OREQ CHARS11              
C     ' is active ' OREQ CHARS11              
C     ' in einer ' OREQ CHARS10              
C     ' Se ' OREQ CHARS4              
C     ' se ' OREQ CHARS4              
C     ' si ' OREQ CHARS4              
C     ' é ' OREQ CHARS3              
C     ' está ' OREQ CHARS6              
C     ' estiver ' OREQ CHARS9              
C     ' ou a ' OREQ CHARS6              
C     ' o la ' OREQ CHARS6              
C     ' ; ' OREQ CHARS3              
C     ' } ' OREQ CHARS3              
C     ' oder  ' OREQ CHARS7              
C     ' or  ' OREQ CHARS5              
C     ' ou  ' OREQ CHARS5              
C     ' o  ' OREQ CHARS4              
C     ' - zur ' OREQ CHARS7              
C     ' ---> ' OREQ CHARS6              
C       EXSR SCREEN#STOPX              
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 POS2            
C     ' ' SCAN BUF2:POS2 POS2     77 78  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C       SUBST(P) BUF2:POS2 CHARS12     77  
C     ATR$:' ' XLATE(P) CHARS12 CHARS12     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' kann der ' IFEQ CHARS10              
C     ' gedrückt, ' OREQ CHARS11              
C     ' drücken. ' OREQ CHARS10              
C     ' drücken, ' OREQ CHARS10              
C     ' drücken ' OREQ CHARS9              
C     ' zeigt ' OREQ CHARS7              
C     ' aktiv ' OREQ CHARS7              
C     ' viene ' OREQ CHARS7              
C     ' puede ' OREQ CHARS7              
C     ' pode ' OREQ CHARS6              
C     ' eine ' OREQ CHARS6              
C     ' help ' OREQ CHARS6              
C     ' It will ' OREQ CHARS9              
C     ' can be ' OREQ CHARS8              
C     ' key to ' OREQ CHARS8              
C     ' key  ' OREQ CHARS6              
C     ' die Eingabe' OREQ CHARS12              
C     ' appuyez ' OREQ CHARS9              
C     ' premere ' OREQ CHARS9              
C     ' prima ' OREQ CHARS7              
C     ' press ' OREQ CHARS7              
C     ' pulse ' OREQ CHARS7              
C     ' è possibile' OREQ CHARS12              
C     ' is active, ' OREQ CHARS12              
C     ' is active ' OREQ CHARS11              
C     ' you ' OREQ CHARS5              
C     ' per ' OREQ CHARS5              
C     ' si ' OREQ CHARS4              
C     ' se ' OREQ CHARS4              
C     ' será ' OREQ CHARS6              
C     ' para ' OREQ CHARS6              
C     ' ---> ' OREQ CHARS6              
C       EXSR SCREEN#STOPX              
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 POS2            
C     ' ' SCAN BUF2:POS2 POS2     77 78  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C       SUBST(P) BUF2:POS2 CHARS12     77  
C     ATR$:' ' XLATE(P) CHARS12 CHARS12     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' is active, ' IFEQ CHARS12              
C     ' is active ' OREQ CHARS11              
C     ' function ' OREQ CHARS10              
C     ' está ' OREQ CHARS6              
C     ' para ' OREQ CHARS6              
C     ' per ' OREQ CHARS5              
C     ' Si ' OREQ CHARS4              
C     ' } ' OREQ CHARS3              
C       EXSR SCREEN#STOPX              
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 POS2            
C     ' ' SCAN BUF2:POS2 POS2     77 78  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C       SUBST(P) BUF2:POS2 CHARS12     77  
C     ATR$:' ' XLATE(P) CHARS12 CHARS12     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' está ' IFEQ CHARS6              
C     ' pour ' OREQ CHARS6              
C       EXSR SCREEN#STOPX              
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ADD 1 POS2            
C     ' ' SCAN BUF2:POS2 POS2     77 78  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C       SUBST(P) BUF2:POS2 CHARS12     77  
C     ATR$:' ' XLATE(P) CHARS12 CHARS12     77  
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' está ' IFEQ CHARS6              
C       EXSR SCREEN#STOPX              
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * SCREEN#STOP EXSR TN5250SB    
  X * SCREEN#STOP EXSR TN5250SB    
  X * SCREEN#STOP EXSR TN5250SB    
  X * SCREEN#STOP EXSR TN5250SB    
  X * SCREEN#STOP EXSR TN5250SB    
  X  
C     SCREEN#STOPX BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SUB BUF2LEN POS            
C       ADD POS2 POS            
C       ENDSR                
C          
  X * SENDHTML2 EXSR TN5250SB    
  X  
C     KEYBOARD# BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     READWAIT COMP SAVE$       78  
C   N78 READWAIT COMP NULL$       78  
C   N78   CLEAR   DISABLED            
C   78   MOVEL(P) ' disabled' DISABLED            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE DISABLED              
C       MOVEL(P) NONEX VALUE            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = '<table border=0 +
C                cellspacing=0 +
C                cellpadding=0 summary="">'
C          
C       EVAL BUF = BUF + '§<tr><td nowrap>§§+
C          
C                    <div id="values" +
C          class="c39">+
C          
C         <input onmousedown="return false" +
C          style="height:1px; +
C                    vertical-align:middle; +
C            text-align:left" +
C           type="text" +
C           name="'+ANY+'" +
C             id="'+ANY+'" +
C          value="" +
C            alt="0" +
C           size=1 +
C                  maxlength=1'+
C                    AUTOCOMPLETE+
C                    AUTOCAPITALIZE+' +
C                    onfocus="fs=this">+
C          
C         <input onmousedown="return false" +
C           type="hidden" +
C           name="'+FOCUS+'" +
C             id="'+FOCUS+'" +
C          value="">+
C          
C         <input onmousedown="return false" +
C           type="hidden" +
C           name="'+CARET+'" +
C             id="'+CARET+'" +
C          value=""></div>§+
C          
C                    <div id="submit" +
C          class="c39">+
C          
C         <input onmousedown="return false" +
C          style="height:0px; +
C                    vertical-align:middle; +
C            text-align:center" +
C           type="submit" +
C           name="'+ENTER+'" +
C             id="'+ENTERX+'" +
C          value="'+ENTER#+'"'+
C          %TRIMR(DISABLED)+'>+
C          
C         <input onmousedown="return false" +
C          style="height:0px; +
C                    vertical-align:middle; +
C            text-align:center" +
C           type="submit" +
C           name="'+AUTOENTER+'" +
C             id="'+AUTOENTERX+'" +
C          value="'+AUTOENTER#+'"'+
C          %TRIMR(DISABLED)+'>+
C          
C         <input onmousedown="return false" +
C          style="height:0px; +
C                    vertical-align:middle; +
C            text-align:center" +
C           type="submit" +
C           name="'+SAVE+'" +
C             id="'+SAVEX+'" +
C          value="'+SAVE#+'">+
C          
C         <input onmousedown="return false" +
C          style="height:0px; +
C                    vertical-align:middle; +
C            text-align:center" +
C           type="submit" +
C           name="'+CLOSE2+'" +
C             id="'+CLOSE2X+'" +
C          value="'+CLOSE2#+'"></div>§§'
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUFV = %TRIMR ( RMTWEB)
C     *BLANKS IFNE BUFV              
C       EXSR BUFVFORM              
C       EVAL BUF =
C       BUF + '<a href="http://'+BUFV+'/" +
C                style="display:none;">*</a>§§'
C       EXSR WRSTOUT              
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = '<div id="keyboard">'
C          
C     ROWS IFGE 1              
C       EVAL BUF = BUF + '§+
C              <table border=0 +
C                cellspacing=0 +
C                cellpadding=0 summary="" +
C          class="keyboard" +
C          width="100%">'
C       ELSE                
C       EVAL BUF = BUF + '§+
C              <table border=0 +
C                cellspacing=0 +
C                cellpadding=0 summary="" +
C          class="keyfield" +
C          width="100%">'
C       ENDIF                
C          
C       EVAL BUF = BUF + '§<tr>'
C       SETOFF         75  
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *ZERO ADD 1 NONENUM            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ROWS IFGE 1              
C       EXSR KEYBOARD#KEYS              
C       ELSE                
C       EXSR KEYBOARD#CLOSE              
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</tr></table>'
C       EVAL BUF = BUF + '</div></td></tr>§§'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF +  '<tr class="debug$">+
C         <td align="center"><br>§§'
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = '<div id="debug">§+
C              <table border=0 +
C                cellspacing=0 +
C                cellpadding=0 summary="">'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ROWS IFGE 1              
C       EVAL BUF = BUF + '§<tr><td +
C          class="debug"'+
C          JSPROMPT +'><strong>'
C       ELSE                
C       EVAL BUF = BUF + '§<tr><td +
C          class="debugx"'+
C          JSPROMPT +'><strong>'
C       ENDIF                
C *     --------------------------------------
C *     Zeichen <bb> durch <br ...> ersetzen
C *     --------------------------------------
C     '<bb>' SCAN RECVSEND POS     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL RECVSEND = %REPLACE('<br class="break">':
C                  RECVSEND:POS:4)
C       ADD 1 POS            
C     '<bb>' SCAN RECVSEND:POS POS     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFEQ RECVSEND              
C       EVAL BUF = BUF + '<!---->'
C       ELSE                
C       EVAL BUF = BUF + '§§'
C       ENDIF                
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ' ' CHECKR RECVSEND POS            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     'iPhone' SCAN AGENT       77 78  
C   N78 'iPod' SCAN AGENT       77 78  
C   N78 'iPad' SCAN AGENT       77 78  
C     *IN78 IFEQ *ON              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFGT RECVSENDMAX              
C     *ZERO ADD RECVSENDMAX POS            
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFGE 1              
C     CHARS4 DOUEQ '<br>'              
C       SUBST(P) RECVSEND:POS CHARS4     77  
C   77   MOVEL(P) '<br>' CHARS4            
C       SUB 1 POS            
C       ENDDO                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     POS IFGE 1              
C       EVAL BUF = %SUBST(RECVSEND:1:POS)
C       EXSR WRSTOUT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = '<!--'+%CHAR(POS)+'-->'
C       EXSR WRSTOUT              
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EVAL BUF = BUF + '</strong>+
C                    </td></tr></table></div>+
C                    </td></tr></table>§'
C       EXSR WRSTOUT              
C       ENDSR                
C          
  X * KEYBOARD# EXSR TN5250SB    
  X  
C     KEYBOARD#KEYS BEGSR                
C     *IN66 COMP *ON       96  
C       SETOFF         66  
C          
C     *IN66 IFEQ *ON              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR KEYS#NEXT              
C       EXSR KEYS#PAGE              
C          
C       EXSR KEYS#PREV              
C       EXSR KEYS#ENTER              
C          
C       EXSR KEYS#F6              
C       EXSR KEYS#F12              
C       EXSR KEYS#F18              
C       EXSR KEYS#F24              
C          
C       EXSR KEYS#SYSREQ              
C       EXSR KEYS#DUP              
C          
C       EXSR KEYS#ATTN              
C       EXSR KEYS#HELP              
C          
C       EXSR KEYS#SPACE              
C       EXSR KEYS#WAIT              
C       ELSE                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR KEYS#F6              
C       EXSR KEYS#F12              
C       EXSR KEYS#PAGE              
C          
C       EXSR KEYS#F18              
C       EXSR KEYS#F24              
C       EXSR KEYS#DUP              
C          
C       EXSR KEYS#NEXT              
C       EXSR KEYS#PREV              
C       EXSR KEYS#SYSREQ              
C       EXSR KEYS#ATTN              
C       EXSR KEYS#ENTER              
C       EXSR KEYS#HELP              
C          
C       EXSR KEYS#DIGITS              
C       EXSR KEYS#SPACE              
C       EXSR KEYS#WAIT              
C       ENDIF                
C          
C     *IN96 COMP *ON       66  
C       ENDSR                
C          
  X * KEYBOARD# EXSR TN5250SB    
  X  
C     KEYBOARD#CLOSE BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR KEYS#CLOSE              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#F6 BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) F1 NAME            
C       MOVEL(P) F1# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F2 NAME            
C       MOVEL(P) F2# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F3 NAME            
C       MOVEL(P) F3# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F4 NAME            
C       MOVEL(P) F4# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F5 NAME            
C       MOVEL(P) F5# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F6 NAME            
C       MOVEL(P) F6# VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   66   EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#F12 BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) F7 NAME            
C       MOVEL(P) F7# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F8 NAME            
C       MOVEL(P) F8# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F9 NAME            
C       MOVEL(P) F9# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F10 NAME            
C       MOVEL(P) F10# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F11 NAME            
C       MOVEL(P) F11# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F12 NAME            
C       MOVEL(P) F12# VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   66   EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#PAGE BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) PAGEUP NAME            
C       MOVEL(P) PAGEUP# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) PAGEDOWN NAME            
C       MOVEL(P) PAGEDOWN# VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#F18 BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) F13 NAME            
C       MOVEL(P) F13# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F14 NAME            
C       MOVEL(P) F14# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F15 NAME            
C       MOVEL(P) F15# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F16 NAME            
C       MOVEL(P) F16# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F17 NAME            
C       MOVEL(P) F17# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F18 NAME            
C       MOVEL(P) F18# VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   66   EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#F24 BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) F19 NAME            
C       MOVEL(P) F19# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F20 NAME            
C       MOVEL(P) F20# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F21 NAME            
C       MOVEL(P) F21# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F22 NAME            
C       MOVEL(P) F22# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F23 NAME            
C       MOVEL(P) F23# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) F24 NAME            
C       MOVEL(P) F24# VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   66   EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#DUP BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) DUP NAME            
C       MOVEL(P) DUP# VALUE            
C       MOVEL(P) DUP#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) INSERT NAME            
C       MOVEL(P) INSERT# VALUE            
C       MOVEL(P) INSERT#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) UP NAME            
C       MOVEL(P) UP# VALUE            
C       MOVEL(P) UP#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) PRINT NAME            
C       MOVEL(P) PRINT# VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#NEXT BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) NEXT NAME            
C       MOVEL(P) NEXT# VALUE            
C       MOVEL(P) NEXT#JS ONCLICK            
C       EXSR BUTTON              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#PREV BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) PREV NAME            
C       MOVEL(P) PREV# VALUE            
C       MOVEL(P) PREV#JS ONCLICK            
C       EXSR BUTTON              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#SYSREQ BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) SYSREQ NAME            
C       MOVEL(P) SYSREQ# VALUE            
C       EXSR SUBMIT              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#ATTN BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) ATTN NAME            
C       MOVEL(P) ATTN# VALUE            
C       EXSR SUBMIT              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#ENTER BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) FPLUS NAME            
C       MOVEL(P) FPLUS# VALUE            
C       MOVEL(P) FPLUS#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) FMINUS NAME            
C       MOVEL(P) FMINUS# VALUE            
C       MOVEL(P) FMINUS#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) ENTER NAME            
C       MOVEL(P) ENTER# VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   66   EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#HELP BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) HELP NAME            
C       MOVEL(P) HELP# VALUE            
C       EXSR SUBMIT              
C       MOVEL(P) LEFT NAME            
C       MOVEL(P) LEFT# VALUE            
C       MOVEL(P) LEFT#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DOWN NAME            
C       MOVEL(P) DOWN# VALUE            
C       MOVEL(P) DOWN#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) RIGHT NAME            
C       MOVEL(P) RIGHT# VALUE            
C       MOVEL(P) RIGHT#JS ONCLICK            
C       EXSR BUTTON              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#DIGITS BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) DIGIT1 NAME            
C       MOVEL(P) DIGIT1# VALUE            
C       MOVEL(P) DIGIT1#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT2 NAME            
C       MOVEL(P) DIGIT2# VALUE            
C       MOVEL(P) DIGIT2#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT3 NAME            
C       MOVEL(P) DIGIT3# VALUE            
C       MOVEL(P) DIGIT3#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT4 NAME            
C       MOVEL(P) DIGIT4# VALUE            
C       MOVEL(P) DIGIT4#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT5 NAME            
C       MOVEL(P) DIGIT5# VALUE            
C       MOVEL(P) DIGIT5#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT6 NAME            
C       MOVEL(P) DIGIT6# VALUE            
C       MOVEL(P) DIGIT6#JS ONCLICK            
C       EXSR BUTTON              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   66   EXSR KEYS#ROW              
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) DIGIT7 NAME            
C       MOVEL(P) DIGIT7# VALUE            
C       MOVEL(P) DIGIT7#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT8 NAME            
C       MOVEL(P) DIGIT8# VALUE            
C       MOVEL(P) DIGIT8#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT9 NAME            
C       MOVEL(P) DIGIT9# VALUE            
C       MOVEL(P) DIGIT9#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) DIGIT0 NAME            
C       MOVEL(P) DIGIT0# VALUE            
C       MOVEL(P) DIGIT0#JS ONCLICK            
C       EXSR BUTTON              
C       MOVEL(P) NONE NAME            
C       MOVEL(P) NONE# VALUE            
C       MOVEL(P) NONE#JS ONCLICK            
C   66   EXSR BUTTON              
C       MOVEL(P) NONE NAME            
C       MOVEL(P) NONE# VALUE            
C       MOVEL(P) NONE#JS ONCLICK            
C   66   EXSR BUTTON              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   66   EXSR KEYS#ROW              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#SPACE BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) SPACE NAME            
C       MOVEL(P) SPACE# VALUE            
C       MOVEL(P) SPACE#JS ONCLICK            
C       EXSR BUTTON              
C       ENDSR                
C          
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X * KEYBOARD#KEYS EXSR TN5250SB    
  X  
C     KEYS#WAIT BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) BACKSPACE NAME            
C       MOVEL(P) BACKSPACE# VALUE            
C       MOVEL(P) BACKSPACE#JS ONCLICK            
C       EXSR BUTTON              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) TESTREQ NAME            
C       MOVEL(P) TESTREQ# VALUE            
C       MOVEL(P) MESSAGE VALUE            
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) RESTART NAME            
C       MOVEL(P) RESTART# VALUE            
C       MOVEL(P) ' ' VALUE            
C     TIMEOUT IFNE TIMEOUT0              
C       EVAL   VALUE = %CHAR(TIMEOUT)
C       ENDIF                
C       EXSR SUBMIT              
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CLOSE1 NAME            
C       MOVEL(P) CLOSE1# VALUE            
C       MOVEL(P) CLOSE1#JS ONCLICK            
C       MOVEL(P) NONEX VALUE            
C       MOVEL(P) '|||' VALUE            
C     READWAIT IFNE NULL$              
C       CLEAR   VALUE            
C       CALLP(E) CVTHC ( VALUE:READWAIT:2)
C       CAT 'x':0 VALUE            
C       ENDIF                
C       EXSR BUTTON              
C       ENDSR                
C          
  X * KEYBOARD#CLOSE EXSR TN5250SB    
  X  
C     KEYS#CLOSE BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) CLOSE1 NAME            
C       MOVEL(P) CLOSE1# VALUE            
C       MOVEL(P) CLOSE1#JS ONCLICK            
C       EXSR BUTTON              
C       ENDSR                
C          
  X * KEYS#F6 EXSR TN5250SB    
  X * KEYS#F12 EXSR TN5250SB    
  X * KEYS#PAGE EXSR TN5250SB    
  X * KEYS#F18 EXSR TN5250SB    
  X * KEYS#F24 EXSR TN5250SB    
  X * KEYS#DUP EXSR TN5250SB    
  X * KEYS#ENTER EXSR TN5250SB    
  X * KEYS#HELP EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X  
C     KEYS#ROW BEGSR                
C       EVAL BUF = BUF + '</tr>§<tr>'
C       SETOFF         75  
C       ENDSR                
C          
  X * SUBMIT EXSR TN5250SB    
  X * BUTTON EXSR TN5250SB    
  X  
C     KEYS#INPUT BEGSR                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) NAME ID            
C     NONE IFEQ NAME              
C       EVAL ID  =   %TRIM ( ID) +
C               %CHAR ( NONENUM)
C       ADD 1 NONENUM            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       SELECT    
C     NONE# WHENEQ VALUE              
C       MOVEL(P) '&nbsp;' VALUE            
C     'Insert' WHENEQ VALUE              
C       MOVEL(P) 'Ins' VALUE            
C     'Backspace' WHENEQ VALUE              
C       MOVEL(P) '&lt;' VALUE            
C     'Links' WHENEQ VALUE              
C       MOVEL(P) '&lt;&lt;&lt;' VALUE            
C     'Rechts' WHENEQ VALUE              
C       MOVEL(P) '&gt;&gt;&gt;' VALUE            
C     'Drucken' WHENEQ VALUE              
C       MOVEL(P) 'Druck' VALUE            
C     'Einfügen' WHENEQ VALUE              
C       MOVEL(P) 'Einf' VALUE            
C     'Rückschritt' WHENEQ VALUE              
C       MOVEL(P) '&lt;' VALUE            
C       ENDSL                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     NEXT COMP NAME       78  
C   N78 PREV COMP NAME       78  
C   N78 ATTN COMP NAME       78  
C   N78 SYSREQ COMP NAME       78  
C   N78 PAGEUP COMP NAME       78  
C   N78 PAGEDOWN COMP NAME       78  
C   N78 ENTER COMP NAME       78  
C   N78 SPACE COMP NAME       78  
C   N78   MOVEL(P) ' colspan=1' COLSPAN            
C   78   MOVEL(P) ' colspan=2' COLSPAN            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     ATTN COMP NAME       78  
C   N78 SYSREQ COMP NAME       78  
C   N78 TESTREQ COMP NAME       78  
C   N78 RESTART COMP NAME       78  
C   N78 INSERT COMP NAME       78  
C   N78 CLOSE1 COMP NAME       78  
C   N78 CLOSE2 COMP NAME       78  
C   N78 SAVE COMP NAME       78  
C   N78   MOVEL(P) DISABLED DISABLEDX            
C   78   CLEAR   DISABLEDX            
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     F1 COMP NAME       78  
C   N78 F3 COMP NAME       78  
C   N78 F4 COMP NAME       78  
C   N78 F5 COMP NAME       78  
C   N78 F9 COMP NAME       78  
C   N78 F10 COMP NAME       78  
C   N78 F11 COMP NAME       78  
C   N78 F12 COMP NAME       78  
C   N78 F21 COMP NAME       78  
C   N78 F22 COMP NAME       78  
C   N78 F23 COMP NAME       78  
C   N78 F24 COMP NAME       78  
C   N78 HELP COMP NAME       78  
C   N78 NEXT COMP NAME       78  
C   N78 PREV COMP NAME       78  
C   N78 ATTN COMP NAME       78  
C   N78 SYSREQ COMP NAME       78  
C   N78 PAGEUP COMP NAME       78  
C   N78 PAGEDOWN COMP NAME       78  
C   N78 TESTREQ COMP NAME       78  
C   N78 ENTER COMP NAME       78  
C   N78   EVAL BUF2 = ''
C   78   EVAL BUF2 = ' style="'+COLOR+COLPNK+'"'
C          
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C     *BLANKS IFNE DISABLEDX              
C       MOVEL(P) NONEX VALUE            
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C   75   EVAL BUF = BUF + '§    '
C       EVAL BUF = BUF + '<td nowrap align="center"'+
C                   %TRIMR(COLSPAN)+
C                          BUF2+'>+
C               <input class="key" +
C                onmousedown="return false" +
C           type="'+%TRIMR(TYPE)+'" +
C           name="'+%TRIMR(NAME)+'" +
C             id="'+%TRIMR(ID)+'" +
C          value="'+%TRIMR(VALUE)+'"'+
C                   %TRIMR(ONCLICK)+
C                   %TRIMR(DISABLEDX)+
C                            '></td>'
C       SETON         75  
C       ENDSR                
C          
  X * SENDHTML2 EXSR TN5250SB    
  X * KEYS#F6 EXSR TN5250SB    
  X * KEYS#F6 EXSR TN5250SB    
  X * KEYS#F6 EXSR TN5250SB    
  X * KEYS#F6 EXSR TN5250SB    
  X * KEYS#F6 EXSR TN5250SB    
  X * KEYS#F6 EXSR TN5250SB    
  X * KEYS#F12 EXSR TN5250SB    
  X * KEYS#F12 EXSR TN5250SB    
  X * KEYS#F12 EXSR TN5250SB    
  X * KEYS#F12 EXSR TN5250SB    
  X * KEYS#F12 EXSR TN5250SB    
  X * KEYS#F12 EXSR TN5250SB    
  X * KEYS#PAGE EXSR TN5250SB    
  X * KEYS#PAGE EXSR TN5250SB    
  X * KEYS#F18 EXSR TN5250SB    
  X * KEYS#F18 EXSR TN5250SB    
  X * KEYS#F18 EXSR TN5250SB    
  X * KEYS#F18 EXSR TN5250SB    
  X * KEYS#F18 EXSR TN5250SB    
  X * KEYS#F18 EXSR TN5250SB    
  X * KEYS#F24 EXSR TN5250SB    
  X * KEYS#F24 EXSR TN5250SB    
  X * KEYS#F24 EXSR TN5250SB    
  X * KEYS#F24 EXSR TN5250SB    
  X * KEYS#F24 EXSR TN5250SB    
  X * KEYS#F24 EXSR TN5250SB    
  X * KEYS#DUP EXSR TN5250SB    
  X * KEYS#SYSREQ EXSR TN5250SB    
  X * KEYS#ATTN EXSR TN5250SB    
  X * KEYS#ENTER EXSR TN5250SB    
  X * KEYS#HELP EXSR TN5250SB    
  X * KEYS#WAIT EXSR TN5250SB    
  X * KEYS#WAIT EXSR TN5250SB    
  X  
C     SUBMIT BEGSR                
C       CLEAR   ONCLICK            
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) 'submit' TYPE            
C       EXSR KEYS#INPUT              
C       ENDSR                
C          
  X * KEYS#DUP EXSR TN5250SB    
  X * KEYS#DUP EXSR TN5250SB    
  X * KEYS#DUP EXSR TN5250SB    
  X * KEYS#NEXT EXSR TN5250SB    
  X * KEYS#PREV EXSR TN5250SB    
  X * KEYS#ENTER EXSR TN5250SB    
  X * KEYS#ENTER EXSR TN5250SB    
  X * KEYS#HELP EXSR TN5250SB    
  X * KEYS#HELP EXSR TN5250SB    
  X * KEYS#HELP EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#DIGITS EXSR TN5250SB    
  X * KEYS#SPACE EXSR TN5250SB    
  X * KEYS#WAIT EXSR TN5250SB    
  X * KEYS#WAIT EXSR TN5250SB    
  X * KEYS#CLOSE EXSR TN5250SB    
  X  
C     BUTTON BEGSR                
C     *BLANKS IFNE ONCLICK              
C       EVAL ONCLICK = ' onclick="'+%TRIMR(ONCLICK)+'"'
C       ENDIF                
C *     --------------------------------------
C *     Bildschirm ausgeben
C *     --------------------------------------
C       MOVEL(P) 'button' TYPE            
C       EXSR KEYS#INPUT              
C       ENDSR                
C          
  X * *MAIN* EXSR TN5250SB    
  X  
C     DATA BEGSR                
C       MOVEL(P) NULL$ AID            
C       MOVEL(P) NULL$ FLAGS1            
C       MOVEL(P) NULL$ FLAGS2            
C       CLEAR   CURSOR2            
C       CLEAR   CURSOR3            
C       CLEAR   RELOAD            
C       CLEAR   REMOTE            
C          
C *     --------------------------------------
C *     Variablen initialisieren
C *     --------------------------------------
C       CLEAR   PATH            
C       CLEAR   HOST            
C       CLEAR   AGENT            
C       CLEAR   SECURE            
C       CLEAR   SCHEME            
C       CLEAR   METHOD            
C       CLEAR   SECHTTP            
C       CLEAR   SCRIPT            
C          
C *     --------------------------------------
C *     Schema ermitteln http/https
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         REQUESTSCHEME:
C         REQUESTSCHEMELN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL SCHEME     = %SUBST(ENVRCV:1:ENVLEN)
C     'https' COMP SCHEME       23  
C       ELSE                
C *     --------------------------------------
C *     Schema ermitteln http/https
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         HTTPS:
C         HTTPSLEN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL SECURE     = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Schema ermitteln http/https
C *     --------------------------------------
C     'ON' COMP SECURE       23  
C       EVAL SECURE     = ''
C   23   EVAL SCHEME     = 'https'
C   N23   EVAL SCHEME     = 'http'
C       ENDIF                
C *     --------------------------------------
C *     Methode ermitteln GET/POST/...
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         REQUESTMETHOD:
C         REQUESTMETHODLN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL METHOD     = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Methode ermitteln GET/POST/...
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         HTTPMETHOVER:
C         HTTPMETHOVERLEN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL METHOD     = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Hostname ermitteln
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         HTTPHOST:
C         HTTPHOSTLEN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL HOST       = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Pfadname ermitteln
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         SCRIPTNAME:
C         SCRIPTNAMELEN:QUSEC)
C          
C       CALLP(E) UTF8X ( ENVRCV:
C         ENVRCVLEN:ENVLEN:'<':' ')
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL SCRIPT     = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Pfadname ermitteln
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         DOCUMENTURI:
C         DOCUMENTURILEN:QUSEC)
C          
C       CALLP(E) UTF8X ( ENVRCV:
C         ENVRCVLEN:ENVLEN:'<':' ')
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL SCRIPT     = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Pfadname ermitteln
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         PATHINFO:
C         PATHINFOLEN:QUSEC)
C          
C       CALLP(E) UTF8X ( ENVRCV:
C         ENVRCVLEN:ENVLEN:'<':' ')
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL SCRIPT     = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Pfadname ermitteln
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         TN5250:
C         TN5250LEN:QUSEC)
C          
C       CALLP(E) UTF8X ( ENVRCV:
C         ENVRCVLEN:ENVLEN:'<':' ')
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL PATH       = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Agent ermitteln
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         HTTPUSERAGENT:
C         HTTPUSERAGENTLN:QUSEC)
C          
C       CALLP(E) UTF8X ( ENVRCV:
C         ENVRCVLEN:ENVLEN:'<':' ')
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL AGENT      = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Verschlüsselungsversion ermitteln
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         SSLPROTVERSION:
C         SSLPROTVERSIONL:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL SECHTTP    = %SUBST(ENVRCV:1:ENVLEN)
C       ENDIF                
C *     --------------------------------------
C *     Übergebene Werte aus QUERY einlesen
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         QUERYSTRING:
C         QUERYSTRINGLEN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C       EVAL INPUT      = %SUBST(ENVRCV:1:ENVLEN)
C       EXSR INPUT1              
C       ENDIF                
C          
C     METHOD IFEQ POST              
C *     --------------------------------------
C *     Übergebene Werte aus CONTENT einlesen
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         CONTENTLENGTH:
C         CONTENTLENGTHLN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C *     --------------------------------------
C *     Länge in numerisch umsetzen
C *     --------------------------------------
C     ENVLEN SUBST(P) ENVRCV STR            
C       EXSR STRNUM              
C     NUM IFGE 1              
C     *ZERO ADD NUM DATALEN            
C          
C *     --------------------------------------
C *     Speicherbereich reservieren
C *     --------------------------------------
C       ALLOC DATALEN DATAPTR     77  
C     *IN77 IFEQ *OFF              
C          
C *     --------------------------------------
C *     Formulardaten einlesen
C *     --------------------------------------
C       CALLP(E) STIN ( DATABUF:
C         DATALEN:
C         DATALEN:QUSEC)
C          
C *     --------------------------------------
C *     Ermitteln wie die Daten kodiert sind
C *     --------------------------------------
C       CALLP(E) GETENV ( ENVRCV:
C         ENVRCVLEN:ENVLEN:
C         CONTENTTYPE:
C         CONTENTTYPELEN:QUSEC)
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C     ENVLEN SUBST(P) ENVRCV FORMTYPE            
C     ENVLEN SUBST(P) ENVRCV DATATYPE            
C     ';' SCAN DATATYPE POS     77 78  
C     *IN78 IFEQ *ON              
C     POS IFGT 1              
C       SUB 1 POS            
C     POS SUBST(P) DATATYPE DATATYPE            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C          
C     DATATYPE IFEQ URLENCODED              
C *     --------------------------------------
C *     Formulardaten übertragen
C *     --------------------------------------
C     *ZERO ADD DATALEN ENVLEN            
C     ENVLEN IFGE 1              
C     DATALEN SUBST DATABUF ENVRCV            
C          
C     ENVLEN IFGE 1              
C     ENVLEN ANDLE ENVRCVLEN              
C *     --------------------------------------
C *     Formulardaten sind am Stück
C *     --------------------------------------
C       EVAL INPUT      = %SUBST(ENVRCV:1:ENVLEN)
C       EXSR INPUT1              
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * INPUT4 EXSR TN5250SB    
  X * INPUT4 EXSR TN5250SB    
  X * INPUT4 EXSR TN5250SB    
  X * INPUT4 EXSR TN5250SB    
  X * DATA EXSR TN5250SB    
  X  
C     STRNUM BEGSR                
C       SETON         70  
C       CLEAR   NUM            
C *     --------------------------------------
C *     Text in Zahl umwandeln
C *     --------------------------------------
C     1 SUBST(P) STR STRPM            
C     '-' IFEQ STRPM              
C       SUBST(P) STR:2 STR            
C       ENDIF                
C     1 SUBST(P) STR STRX            
C     '0' IFNE STRX              
C     ' ' CHECKR STR POSX            
C       MOVEL(P) *ALL'0' STRX            
C     STRXLEN IFGE POSX              
C     STRXLEN SUB POSX POSX     78  
C   78 POSX SUBST(P) STRX STRX            
C   N78   CLEAR   STRX            
C       CAT STR:0 STRX            
C       ENDIF                
C     '0123456789' CHECK STRX       70 70  
C   N70   MOVE (P) STRX NUM            
C       ENDIF                
C     '-' IFEQ STRPM              
C     *ZERO SUB NUM NUM            
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* CALL TN5250SB    
  X * *PSSR CALL TN5250SB    
  X  
C     QCMDPARM PLIST                
C       PARM   CMD            
C       PARM   CMDLEN            
C          
C     *PSSR BEGSR                
C       EVAL CMD        = 'MAIL SUBJECT(*PSSR)'
C       CALL QCMDEXC QCMDPARM     77  
C     '*PSSR' DSPLY                
C       ENDSR '*CANCL'              
C          
C     *ENTRY PLIST                
C       PARM   SESSIONX            
C       PARM   REMOTEX            
C          
C /UNDEFINE    TN5250S1
C /DEFINE      TN5250S2
C /COPY SOURCE,TN5250SEC

6712 ms | Kontakt | Information | Aibo-Bar © 2005-2024