Program BXAIO

© Copyright B.V. Bixoft 1989-2003. All rights reserved.

Static stub for invoking dynamic I/O routine BXAIO00

This software is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
More information is available from the Free Software Foundation or the Open Source Initiative.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this software; if not, write to either of the following:

the Free Software Foundation, Inc.
59 Temple Place, Suite 330
Boston, MA 02111-1307
United States of America
B.V. Bixoft
Rogge 9
7261 JA Ruurlo
The Netherlands
  email: bixoft@bixoft.nl
phone: +31-6-22755401

Remark:
This software - and more programs and macros - are available in a format more suitable for uploading to your mainframe. Please e-mail B.V. Bixoft with your request and you will receive a zipped IEBUPDTE job with the program sources.


*                                                                       00000100
* This program is free software; you can redistribute it and/or modify  00000200
* it under the terms of the GNU General Public License as published by  00000300
* the Free Software Foundation; either version 2 of the License         00000400
* or (at your option) any later version.                                00000500
* The license text is available at the following internet addresses:    00000600
* - http://www.bixoft.com/english/gpl.htm                               00000700
* - http://fsf.org                                                      00000800
* - http://opensource.org                                               00000900
*                                                                       00001000
* This program is distributed in the hope that it will be useful,       00001100
* but WITHOUT ANY WARRANTY; without even the implied warranty of        00001200
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                  00001300
* See the GNU General Public License for more details.                  00001400
*                                                                       00001500
* You should have received a copy of the GNU General Public License     00001600
* along with this program; if not, write to either of the following:    00001700
* the Free Software Foundation, Inc.      B.V. Bixoft                   00001800
* 59 Temple Place, Suite 330              Rogge 9                       00001900
* Boston, MA 02111-1307                   7261 JA Ruurlo                00002000
* United States of America                The Netherlands               00002100
*                                                                       00002200
*                                         e-mail: bixoft@bixoft.nl      00002300
*                                         phone : +31-6-22755401        00002400
*                                                                       00002500
BXAIO    TITLE 'Static stub for dynamic I/O routine BXAIO00'            00010000
*********************************************************************** 00020000
* Start create : 20-03-1989                                             00030000
* 1st delivery : 15-08-1989                                             00040000
* Designer     : AF Kornelis                                            00050000
* Programmer   : AF Kornelis                                            00060000
* Reason       : Untie logical record lay-outs from physical file       00070000
*                structure                                              00080000
*********************************************************************** 00090000
* Change 01    : 21-06-1990                                             00100000
* Programmer   : JB                                                     00110000
* Reason       : Added 2 logical record lay-outs: PDD and CSC           00120000
*********************************************************************** 00130000
* Change 02    : 31-10-1991                                             00140000
* Programmer   : JB                                                     00150000
* Reason       : Added 1 logical record lay-out: CCX                    00160000
*********************************************************************** 00170000
* Change 03    : 31-05-1992                                             00180000
* Programmer   : JB                                                     00190000
* Reason       : Added 1 logical record lay-out: ACD                    00200000
*********************************************************************** 00210000
* Change 04    : 31-05-1996                                             00220000
* Programmer   : JB                                                     00230000
* Reason       : Added 1 logical record lay-out: SVD                    00240000
*********************************************************************** 00250000
* Change 05    : Summer 2001                                            00260000
* Programmer   : Abe F. Kornelis                                        00270000
* Reason       : Replace register numbers with names                    00280000
*                Improve comments                                       00290000
*********************************************************************** 00300000
         EJECT ,                       *                                00310000
         PRINT GEN                     *                                00320000
         ENTRY BXAIOCCD                * Customer Contract Data         00330000
         ENTRY BXAIOCPD                * Customer Personal Data         00340000
         ENTRY BXAIOCCX                * Customer Contract eXtension    00350000
         ENTRY BXAIOPDD                * Product Definition Data        00360000
         ENTRY BXAIOCSC                * Capitalized Savings/Contract   00370000
         ENTRY BXAIOACD                * ACcounting Data                00380000
         ENTRY BXAIOSVD                * SaVings Details                00390000
*********************************************************************** 00400000
* Change implemented on 9-7-2001: use DSECT for entry parm lay-out      00410000
HDRDATA  DSECT ,                       * HeaDeR DATA                    00420000
         B     0                       * Skip header: dummy instruction 00430000
         DS    AL1,CL24                * Entry Point descriptor         00440000
MOVEIN   DS    A                       * Setup routine for parameter 2  00450000
MOVEOUT  DS    A                       * Output conversion routine      00460000
* End of change d.d. 9-7-2001                                           00470000
*********************************************************************** 00480000
* Change implemented on 9-7-2001: use register equates                  00490000
R0       EQU   0                                                        00500000
R1       EQU   1                                                        00510000
R2       EQU   2                                                        00520000
R3       EQU   3                                                        00530000
R4       EQU   4                                                        00540000
R5       EQU   5                                                        00550000
R6       EQU   6                                                        00560000
R7       EQU   7                                                        00570000
R8       EQU   8                                                        00580000
R9       EQU   9                                                        00590000
R10      EQU   10                                                       00600000
R11      EQU   11                                                       00610000
R12      EQU   12                                                       00620000
R13      EQU   13                                                       00630000
R14      EQU   14                                                       00640000
R15      EQU   15                                                       00650000
* End of change d.d. 9-7-2001                                           00660000
*********************************************************************** 00670000
BXAIO    START 0                       *                                00680000
BXAIO    AMODE ANY                                                      00690000
BXAIO    RMODE ANY                                                      00700000
*********************************************************************** 00710000
* Change implemented on 10-7-2001: add error message and abend          00720000
         USING BXAIO,R15               * Establish addressability       00730000
         B     BXAIO_GO                * Skip header data               00740000
         DC    AL1(24),CL24'BXAIO    &SYSDATE &SYSTIME'                 00750000
         DC    A(0)                    * Setup routine for parameter 2  00760000
         DC    A(0)                    * Output conversion routine      00770000
BXAIO_GO EQU   *                                                        00780000
         LR    R12,R15                 * Copy base address              00790000
         DROP  R15                     * No longer needed               00800000
         USING BXAIO,R12               * Re-establish addressability    00810000
         WTO   'BXAIO - Illegal entry point into mudule',              *00820000
               ROUTCDE=11,DESC=7                                        00830000
         DC    X'0000'                 * Force a S0C1 abend             00840000
         CNOP  0,8                     * Re-align on doubleword         00850000
         DROP  R12                     * End of error logic             00860000
* End of change d.d. 9-7-2001                                           00870000
*********************************************************************** 00880000
         SPACE 2                                                        00890000
         USING BXAIOCCD,R15            * Establish addressability (CCD) 00900000
BXAIOCCD B     IOCCD_GO                * Skip header data               00910000
         DC    AL1(24),CL24'BXAIOCCD &SYSDATE &SYSTIME'                 00920000
         DC    A(CCDIN)                * Setup routine for parameter 2  00930000
         DC    A(CCDOUT)               * Output conversion routine      00940000
*                                                                       00950000
IOCCD_GO EQU   *                                                        00960000
         STM   R14,R12,12(R13)         * Save caller's registers        00970000
         LA    R3,BXAIOGO              * Set base register              00980000
         BR    R3                      * and execute main line          00990000
         CNOP  0,8                     * Re-align on doubleword         01000000
         DROP  R15                     * End of entry logic for CCD     01010000
*                                                                       01020000
         SPACE 2                                                        01030000
         USING BXAIOCPD,R15            * Establish addressability (CPD) 01040000
BXAIOCPD B     IOCPD_GO                * Skip header data               01050000
         DC    AL1(24),CL24'BXAIOCPD &SYSDATE &SYSTIME'                 01060000
         DC    A(CPDIN)                * Setup routine for parameter 2  01070000
         DC    A(CPDOUT)               * Output conversion routine      01080000
*                                                                       01090000
IOCPD_GO EQU   *                                                        01100000
         STM   R14,R12,12(R13)         * Save caller's registers        01110000
         LA    R3,BXAIOGO              * Set base register              01120000
         BR    R3                      * and execute main line          01130000
         CNOP  0,8                     * Re-align on doubleword         01140000
         DROP  R15                     * End of entry logic for CPD     01150000
*                                                                       01160000
         SPACE 2                                                        01170000
         USING BXAIOCCX,R15            * Establish addressability (CCX) 01180000
BXAIOCCX B     IOCCX_GO                * Skip header data               01190000
         DC    AL1(24),CL24'BXAIOCCX &SYSDATE &SYSTIME'                 01200000
         DC    A(CCXIN)                * Setup routine for parameter 2  01210000
         DC    A(CCXOUT)               * Output conversion routine      01220000
*                                                                       01230000
IOCCX_GO EQU   *                                                        01240000
         STM   R14,R12,12(R13)         * Save caller's registers        01250000
         LA    R3,BXAIOGO              * Set base register              01260000
         BR    R3                      * and execute main line          01270000
         CNOP  0,8                     * Re-align on doubleword         01280000
         DROP  R15                     * End of entry logic for CCX     01290000
*                                                                       01300000
         SPACE 2                                                        01310000
         USING BXAIOPDD,R15            * Establish addressability (PDD) 01320000
BXAIOPDD B     IOPDD_GO                * Skip header data               01330000
         DC    AL1(24),CL24'BXAIOPDD &SYSDATE &SYSTIME'                 01340000
         DC    A(PDDIN)                * Setup routine for parameter 2  01350000
         DC    A(PDDOUT)               * Output conversion routine      01360000
*                                                                       01370000
IOPDD_GO EQU   *                                                        01380000
         STM   R14,R12,12(R13)         * Save caller's registers        01390000
         LA    R3,BXAIOGO              * Set base register              01400000
         BR    R3                      * and execute main line          01410000
         CNOP  0,8                     * Re-align on doubleword         01420000
         DROP  R15                     * End of entry logic for PDD     01430000
*                                                                       01440000
         SPACE 2                                                        01450000
         USING BXAIOCSC,R15            * Establish addressability (CSC) 01460000
BXAIOCSC B     IOCSC_GO                * Skip header data               01470000
         DC    AL1(24),CL24'BXAIOCSC &SYSDATE &SYSTIME'                 01480000
         DC    A(CSCIN)                * Setup routine for parameter 2  01490000
         DC    A(CSCOUT)               * Output conversion routine      01500000
*                                                                       01510000
IOCSC_GO EQU   *                                                        01520000
         STM   R14,R12,12(R13)         * Save caller's registers        01530000
         LA    R3,BXAIOGO              * Set base register              01540000
         BR    R3                      * and execute main line          01550000
         CNOP  0,8                     * Re-align on doubleword         01560000
         DROP  R15                     * End of entry logic for CSC     01570000
*                                                                       01580000
         SPACE 2                                                        01590000
         USING BXAIOACD,R15            * Establish addressability (ACD) 01600000
BXAIOACD B     IOACD_GO                * Skip header data               01610000
         DC    AL1(24),CL24'BXAIOACD &SYSDATE &SYSTIME'                 01620000
         DC    A(ACDIN)                * Setup routine for parameter 2  01630000
         DC    A(ACDOUT)               * Output conversion routine      01640000
*                                                                       01650000
IOACD_GO EQU   *                                                        01660000
         STM   R14,R12,12(R13)         * Save caller's registers        01670000
         LA    R3,BXAIOGO              * Set base register              01680000
         BR    R3                      * and execute main line          01690000
         CNOP  0,8                     * Re-align on doubleword         01700000
         DROP  R15                     * End of entry logic for ACD     01710000
*                                                                       01720000
         SPACE 2                                                        01730000
         USING BXAIOSVD,R15            * Establish addressability (SVD) 01740000
BXAIOSVD B     IOSVD_GO                * Skip header data               01750000
         DC    AL1(24),CL24'BXAIOSVD &SYSDATE &SYSTIME'                 01760000
         DC    A(SVDIN)                * Setup routine for parameter 2  01770000
         DC    A(SVDOUT)               * Output conversion routine      01780000
*                                                                       01790000
IOSVD_GO EQU   *                                                        01800000
         STM   R14,R12,12(R13)         * Save caller's registers        01810000
         LA    R3,BXAIOGO              * Set base register              01820000
         BR    R3                      * and execute main line          01830000
         CNOP  0,8                     * Re-align on doubleword         01840000
         DROP  R15                     * End of entry logic for SVD     01850000
*                                                                       01860000
         EJECT                                                          01870000
         USING BXAIOGO,R3              * Declare base register          01880000
BXAIOGO  EQU   *                                                        01890000
         LA    R14,SAVEAREA            * Retrieve address of save-area  01900000
         ST    R13,4(R14)              * Set backward pointer           01910000
         XR    R0,R0                   * Set to zero for compare        01920000
         C     R0,0(R13)               * Old save-area is PL/I ??       01930000
         BNE   *+8                     * Yes: no forward pointer !!     01940000
         ST    R14,8(R13)              * Set forward pointer            01950000
         LR    R13,R14                 * and switch to new save-area    01960000
*                                                                       01970000
         SPACE 3                                                        01980000
         LR    R4,R15                  * Set base reg to entry point    01990000
         USING HDRDATA,R4              * Inserted 7-9-2001              02000000
*                                                                       02010000
         OI    PLIST+4,X'80'           * Set end-of-plist               02020000
         LTR   R1,R1                   * Plist ??                       02030000
         BZ    NOPARM                  * No: no conversion              02040000
*  Sometimes end-of-plist marker is missing.                            02050000
**       TM    0(1),X'80'              * End-of-plist correct ??        02060000
**       BNO   NOPARM                  * No: no conversion              02070000
         L     R1,0(R1)                * Get address of parameter       02080000
         LA    R1,0(R1)                * Strip end-of-plist bit         02090000
         LTR   R1,R1                   * Address is valid ??            02100000
         BZ    NOPARM                  * No: no conversion              02110000
         ST    R1,PLIST                * Store address of input-parm    02120000
*                                                                       02130000
         L     R15,MOVEIN              * Get addr of move-input routine 02140000
         BASR  R14,R15                 * and execute it                 02150000
*                                                                       02160000
LOAD     ICM   R15,B'1111',ENTRY       * First time: load BXAIO00       02170000
         BNZ   BXAIO00                 * thereafter: execute immediate  02180000
*                                                                       02190000
         SPACE 3                                                        02200000
         LOAD  EP=BXAIO00,ERRET=ERROR  * Load dynamic I/O routine       02210000
         B     LOADOK                  * I/O routine correctly loaded   02220000
*                                                                       02230000
ERROR    WTO   'BXAIO - 68 - Cannot load dynamic module BXAIO00',      *02240000
               ROUTCDE=11,DESC=7                                        02250000
         LA    R10,68                  * Load reasoncode                02260000
         L     R1,PLIST                * Get address of parameter       02270000
         LTR   R1,R1                   * Valid ??                       02280000
         BZ    EXITERR                 * No: quit                       02290000
         MVI   2(R1),C'5'              * Set retcode in caller's parm   02300000
         B     EXITERR                                                  02310000
*                                                                       02320000
LOADOK   ST    R0,ENTRY                * Save address of load module    02330000
         XC    LNSUAPTR,LNSUAPTR       * Set user-area pointer to zeros 02340000
         LR    R15,R0                  * Copy entry point address       02350000
*                                                                       02360000
         SPACE 3                                                        02370000
BXAIO00  EQU   *                                                        02380000
         LA    R1,PLIST                * Get addr of plist for BXAIO00  02390000
         BASSM R14,R15                 * and execute BXAIO00            02400000
*                                                                       02410000
         LTR   R10,R15                 * BXAIO00 was ok ??              02420000
         BZ    CONTINUE                * Yes: fill caller's parameter   02430000
         L     R1,PLIST                * Retrieve address of parm       02440000
         LTR   R1,R1                   * Is it valid ??                 02450000
         BZ    CONTINUE                * No: cannot process the error   02460000
*                                                                       02470000
         CLI   2(R1),C'1'              * EOF / record not found ??      02480000
         BE    CONTINUE                * Yes: use exit after error      02490000
*                                                                       02500000
         CH    R10,=H'025'             * If userarea could not be freed 02510000
         BNE   NOWIPEUA                * then LNSUAPTR may be invalid   02520000
         XC    LNSUAPTR,LNSUAPTR       * and is therefore to be cleared 02530000
NOWIPEUA EQU   *                                                        02540000
         CLI   2(R1),C'2'              * Error is just a warning ??     02550000
         BE    CONTINUE                * Yes: return output to caller   02560000
         CLI   2(R1),C'0'              * Errorcode set ??               02570000
         BNE   EXITERR                 * Yes: use exit-after-error      02580000
*                                      * Returncode not set: set it     02590000
         CH    R10,=H'025'             * Userarea freeing error ??      02600000
         BNE   NOTERR25                * No: skip setting code 2        02610000
         MVI   2(R1),C'2'              * Set error level to two         02620000
         B     CONTINUE                * and carry on accordingly       02630000
NOTERR25 EQU   *                                                        02640000
*                                                                       02650000
         CH    R10,=H'026'             * No parameter-error ??          02660000
         BNE   NOTERR26                * No: skip setting code 3        02670000
         MVI   2(R1),C'3'              * Set error level to three       02680000
         B     EXITERR                 * And use exit-after-error       02690000
NOTERR26 EQU   *                                                        02700000
*                                                                       02710000
         MVI   2(R1),C'5'              * Other error: set RCODE to 5    02720000
         B     EXITERR                 * and use exit-after-error       02730000
*                                                                       02740000
         EJECT                                                          02750000
CONTINUE EQU   *                       * Statements disabled:no moveout 02760000
*                                                                       02770000
**!!     L     R1,PLIST                * Get address of parm in caller  02780000
**!!     L     R15,MOVEOUT             * Get addr of move-output routin 02790000
**!!     BASR  R14,R15                 * and execute it                 02800000
*                                                                       02810000
         CLC   LNSUAPTR,=F'0'          * USERAREA de-allocated ??       02820000
         BNE   EXITERR                 * No: leave BXAIO00 in storage   02830000
         DELETE EP=BXAIO00             * Remove dynamic mod from memory 02840000
         LTR   R15,R15                 * Delete was ok ??               02850000
         BNE   DELETERR                * No: issue delete error         02860000
         XC    ENTRY,ENTRY             * Next call: reload dynamic mod  02870000
*                                                                       02880000
EXITERR  EQU   *                                                        02890000
         LR    R15,R10                 * Restore saved reasoncode       02900000
*                                                                       02910000
EXIT     EQU   *                                                        02920000
         L     R13,4(R13)              * Retrieve addr of old save-area 02930000
         L     R14,12(R13)             * Restore return address         02940000
         LM    R0,R12,20(R13)          * Restore all other registers    02950000
         BR    R14                     * and return with retcode        02960000
*                                                                       02970000
DELETERR WTO   'BXAIO - 74 - Cannot remove dymanic module BXAIO00',    *02980000
               ROUTCDE=11,DESC=7                                        02990000
         LA    R10,74                  * Load reasoncode                03000000
         L     R1,PLIST                * Get address of parameter       03010000
         LTR   R1,R1                   * Valid ??                       03020000
         BZ    EXITERR                 * No: quit                       03030000
         MVI   2(R1),C'5'              * Set retcode in caller's parm   03040000
         B     EXITERR                                                  03050000
*                                                                       03060000
         SPACE 3                                                        03070000
* Reset end-of-plist bit to cause error - to be issued by BXAIO00       03080000
NOPARM   EQU   *                       * No parameter given by applic.  03090000
         NI    PLIST+4,X'7F'           * Reset end-of-plist bit         03100000
         B     LOAD                    * And go call to issue error     03110000
         DROP  4                       * Inserted 7-9-2001              03120000
*                                                                       03130000
         EJECT                                                          03140000
CCDIN    EQU   *                       * Movein of BXAIOCCD             03150000
         MVC   LNSVERSI,=C'01'         * Set parameter version to 01    03160000
         MVC   LNSFILES,=C'10000000'   * Select all files for CCD-parm  03170000
         BR    R14                     * Return to mainline             03180000
*                                                                       03190000
CCDOUT   EQU   *                       * Moveout of BXAIOCCD            03200000
         BR    R14                     * Return to mainline             03210000
*                                                                       03220000
         SPACE 2                                                        03230000
CPDIN    EQU   *                       * Movein of BXAIOCPD             03240000
         MVC   LNSVERSI,=C'02'         * Set parameter version to 02    03250000
         MVC   LNSFILES,=C'01000000'   * Select all files for CPD-parm  03260000
         BR    R14                     * Return to mainline             03270000
*                                                                       03280000
CPDOUT   EQU   *                       * Moveout of BXAIOCPD            03290000
         BR    R14                     * Return to mainline             03300000
*                                                                       03310000
         SPACE 2                                                        03320000
CCXIN    EQU   *                       * Movein of BXAIOCCX             03330000
         MVC   LNSVERSI,=C'03'         * Set parameter version to 03    03340000
         MVC   LNSFILES,=C'00100000'   * Select all files for CCX-parm  03350000
         BR    R14                     * Return to mainline             03360000
*                                                                       03370000
CCXOUT   EQU   *                       * Moveout of BXAIOCCX            03380000
         BR    R14                     * Return to mainline             03390000
*                                                                       03400000
         SPACE 2                                                        03410000
PDDIN    EQU   *                       * Movein of BXAIOPDD             03420000
         MVC   LNSVERSI,=C'04'         * Set parameter version to 04    03430000
         MVC   LNSFILES,=C'00010000'   * Select all files for PDD-parm  03440000
         BR    R14                     * Return to mainline             03450000
*                                                                       03460000
PDDOUT   EQU   *                       * Moveout of BXAIOPDD            03470000
         BR    R14                     * Return to mainline             03480000
*                                                                       03490000
         SPACE 2                                                        03500000
CSCIN    EQU   *                       * Movein of BXAIOCSC             03510000
         MVC   LNSVERSI,=C'05'         * Set parameter version to 05    03520000
         MVC   LNSFILES,=C'00001000'   * Select all files for CSC-parm  03530000
         BR    R14                     * Return to mainline             03540000
*                                                                       03550000
CSCOUT   EQU   *                       * Moveout of BXAIOCSC            03560000
         BR    R14                     * Return to mainline             03570000
*                                                                       03580000
         SPACE 2                                                        03590000
ACDIN    EQU   *                       * Movein of BXAIOACD             03600000
         MVC   LNSVERSI,=C'06'         * Set parameter version to 06    03610000
         MVC   LNSFILES,=C'00000100'   * Select all files for ACD-parm  03620000
         BR    R14                     * Return to mainline             03630000
*                                                                       03640000
ACDOUT   EQU   *                       * Moveout of BXAIOACD            03650000
         BR    R14                     * Return to mainline             03660000
*                                                                       03670000
         SPACE 2                                                        03680000
SVDIN    EQU   *                       * Movein of BXAIOSVD             03690000
         MVC   LNSVERSI,=C'07'         * Set parameter version to 07    03700000
         MVC   LNSFILES,=C'00000010'   * Select all files for SVD-parm  03710000
         BR    R14                     * Return to mainline             03720000
*                                                                       03730000
SVDOUT   EQU   *                       * Moveout of BXAIOSVD            03740000
         BR    R14                     * Return to mainline             03750000
*                                                                       03760000
         EJECT                                                          03770000
SAVEAREA DS    9D                      * Save-area for all entry points 03780000
ENTRY    DS    F                       * Entry point of dynamic module  03790000
PLIST    DC    A(0)                    * Parameter in application       03800000
         DC    A(LNSPRM2)              * Extra parameter                03810000
*                                                                       03820000
         DS    0D                                                       03830000
LNSPRM2  DS    0CL16                                                    03840000
LNSUAPTR DS    A                       * Address of user-area           03850000
LNSVERSI DS    CL2                     * Parameter version number       03860000
LNSFILES DS    CL8                     * Logical files to be used       03870000
         DS    CL2                     * Reserved                       03880000
*                                                                       03890000
         LTORG                                                          03900000
*                                                                       03910000
         END                                                            03920000

 

This site is a member of WebRing.
You are invited to browse the list of mainframe-loving sites.
Running
    Tyrannosaurus Rex Dinos are not dead. They are alive and well and living in data centers all around you. They speak in tongues and work strange magics with computers. Beware the dino! And just in case you're waiting for the final demise of these dino's: remember that dinos ruled the world for 155-million years!
Dinos and other anachronisms
[ Join Now | Ring Hub | Random | << Prev | Next >> ]
 

Below you find the logo of our sponsor and logos of the web-standards that this page adheres to.