comment A5 -- Genuine library A5 taken from KQX, but with P291 from Walgol;

procedure write(device,form,value); value device,form,value;
        real value; integer device,form;
        kdf9 12/9/14/0;
        {value}; {form};  {device}; JSP291; exit;


P291V28;      (PROCEDURE WRITE);
        V1=B1212121212121212;
        V2=B2020202020202020;
        V3=B2030446722743250; (1.024 TO 1I.P.);
        V4=B175/8; (1000/1024 TO 1I.P.);
        V5=B1463 1463 1463 1463; (.8 TO 1I.P.);
        V6=B2400 0000 0000 0000; (10/8 TO 1I.P.);
        V7=Q0/3/3; (INITIAL SPACES/SIGN/EXP SIGN);
        V8=B0013573716200001; (FORMAT/DS/ZS/DPM/APM/;/C/NDP);
        V9=B0314631463146315; (.1);
        V10=B0024365605075341; (.01);
        V11=B0000150667056544; (.0001);
        V12=B0000000005274617; (.00000001);
        V13=B12; (10);
        V14=B144; (100);
        V15=B23420; (10000);
        V16=B575360400; (100000000);
        V20=Q12/11/1; (S/F/E);
        V25=B0000 0003 7777 7775;
        V26=B0000 0001 7777 7777;


101;    PERM;
102;    =V21;
103;    =V22; JS12P295; ZERO; =V28;
        V21; ZERO; SHLD+24;
        REV; ZERO; SHLD+4; =C10; ZERO;
        SHLD+2; =I10; ZERO; SHLD+5; NEG;
        =C7; ZERO; SHLD+4; =C11; ZERO;
        SHLD+2; =M10; ZERO; SHLD+4; =M7;
        SHC+3; =I7; DUP; ZERO; REV;
        SHLDC7; BITS; NEG; NOT; =I11;
        BITS; =M11; V22;
        I13=+1; DUP; J5>=Z;
        NEGF; I13=-1; I10; J5#Z;
        SET135; JS100;
1;      JS80;
70;     M7; SHC-2; J95<Z;
        I7; ZERO; =V27; J4#Z;
        C10; I10; J2=Z;
        NOT; NEG;
2;      M10; J3=Z;
        SET4; +;
3;      M7; SHC-1; SHL-47; +;
        M7; SETB4; AND; SHL-2; +;
        CAB; DUP; SHL+23; SET23; FLOAT;
        FIX; REV; ERASE; CAB;
        +; V31P295; SHL-24; C9; -; +;
        =V27; REV;
4;      I7; NOT; =C13; V31P295; SHL-24; C9;
        -; J167=Z;
        SET2; JS18P295;
167;    V20; =Q11; V7; =Q10; REV;
        ERASE; V8; ZERO; SHLD+24; PERM;
        ZERO; SHLD+5; =M7; ZERO; SHLD+3;
        =I7; SHL-32; =C7; SET11; =M13;
        J7;
5;      NC7; JS80;
        C11; NEG; NOT; =M13; M10;
        J7#Z;
        M14; M11; -; J69>=Z;
117;    M14; I11; +; DUP; =M15;
        M13; REV; -; J7<Z;
        M15TOQ13; M13; J7>=Z;
        M13; NOT; J6#Z;
        SET5; SHA+43; M13; NOT; NEG; =M13; ZERO;
        NOT; =TR; J10;
6;      ERASE; ZERO; J12;
7;      SET4; =RC15; ZERO; NOT; NEG;
        SHC-2; M13;
8;      SHC-1; DUP; J9>=Z;
        REV; V9M15; *; REV;
9;      M+I15; DC15; J8C15NZ;
        ERASE; SHA-4;
10;     +;
11;     DUP; SHL-43; SET10; -; J113<Z;
        STR; SET10; %D; M+I14; M10;
        J12#Z;
        M13; NOT; NEG; C11; NEV;
        J110=Z;
        J110TR;
        SET1; =+M13;
110;    M14; M11; -; J71>=Z;
12;     ZERO; DUP; =TR; NOT; NEG; M13;
        SET4; =RC15;
13;     SHC-1; DUP; J14>=Z;
        REV; V13M15; *D; CONT; REV;
14;     M+I15; DC15; J13C15NZ;
        ERASE; *D; SHAD+4; REV; ERASE;
        DUP; =V0; JS90;
        =V23; =V24; I10; NEG; NOT;
        SHL-1; J15#Z;
        SETB20; M7; OR; =M7;
15;     I11; M11; +; C11; -;
        ZERO; =RM15; I11; NOT; NEG;
        NOT; NEG; =M13; J18<=Z;
        M14; C11; -; NOT; NEG;
        DUP; J32<Z;
        I11; +;
72;     =C15;
18;     SET8; =RC11; M+I11; SET24; =C13;
        SHL+24;
$16;    DUP; J17<Z;
        SHL+1; DC13; J16C13NZS;
        ERASE; SET136; J74;
113;    J12NTR;
        J6;
32;     I11; +; DUP; J72>=Z;
        ERASE; ZERO; J72;
17;     DC13; SHL+1; J73C13Z;
        C0TOQ14; SET8; =RC12;
19;     DUP; J21<Z;
98;     SETB76; SHC-6; J26;
22;     SETB77; SHC-6;
26;     V17M12; SHLD+6; DC12; =V17M12; ERASE;
        J24C12NZ;
        M+I12; SET8; =C12;
24;     DC14;
29;     DC13; SHL+1; J19C13NZ;
20;     M11; J28=Z;
        V23M11; M-I11; NOT; J20=Z;
        ERASE; SET137; J74;
21;     M13; J107=Z;
        M13; NEG; NOT; =M13;
107;    J31C15Z;
        DC15; M13; SET2; -; J98>=Z;
        ZERO; J26;
31;     ZERO; V23M11; DC11; SHAD-6; =V23M11;
        J25C11NZ;
        M-I11; SET8; =C11;
25;     SHL+1; M7; SETB10; AND; J27#Z;
        SETB77; SHL+42; J26#;
        ERASE; ZERO; J26;
27;     SETB77; SHL+42; J30#;
        M13; J96=Z;
        ERASE; ZERO; J26;
96;     ERASE; M7; SHL-4; J98=Z;
        M+I15; J29;
30;     M7; SHL-4; J26=Z;
        M15; J26=Z;
        ERASE; ERASE; SET138; J74;
28;     ERASE; M15; DUP; =+C10; NEG;
        =+C7; I10; J35=Z;
        I13; J34<Z;
        I10; SHC-1; J33<Z;
        SETB236; J36;
33;     SETB301; J36;
34;     SETB321; J36;
35;     ZERO; NOT;
36;     =I10; NC14; C14; C7; -; M7;
        SHC-3; J67>=Z;
        SETB13; =M13; J77<=Z;
68;     M10; J75=Z;
        V0; J64=Z;
        C0TOQ13; M14; DUP; J37>=Z;
        NEG; DC13;
37;     JS90;
        NOT; J78#Z;
        ZERO; REV; SHAD-12; NOT; J79#Z;
        ZERO; SHLD+7; JS40;
        SETB12; JS14P295;
        SETB77; J51=;
        C13; J38<Z;
        M10; NEG; NOT; NEG; NOT; J50#Z;
        ZERO; JS18P295;
        J39;
38;     SETB321; JS14P295;
        J39;
50;     SETB301; JS14P295;
        J39;
51;     M10; SET3; J52=;
        ZERO; JS18P295;
        C13; J55<Z;
        NEG; NOT; J56=Z;
53;     ERASE; ZERO; JS18P295;
        J58;
52;     ERASE; C13; J54<Z;
        SETB301; JS14P295;
        J53;
54;     SETB321; JS14P295;
        J53;
55;     ERASE; ERASE; SETB321; J39;
56;     ERASE; SETB301;
39;     JS14P295;
58;     SHC+6; JS14P295;
66;     M7; SHC-1; J57>=Z;
        SETB230; JS14P295;
57;     I7; SHL-2; J63#Z;
        I7; =C7; J60C7Z;
59;     SET2; JS18P295;
        DC7; J59C7NZ;
60;     M7; SHC-2; J62>=Z;
        V27; DUP; =C14; J62<Z;
        J62C14Z;
61;     DC14; ZERO; JS18P295;
        J61C14NZ;
62;     JS16P295;
        V28; J111=Z;
        V28; JSP299;
111;    EXIT 1;
63;     SET3; JS18P295;
        J60;
64;     JS40;
        SET4; =C14;
65;     ZERO; JS18P295;
        DC14; J65C14NZ;
        J66;
67;     M0TOQ13; J68=Z;
        SET139; J74;
69;     DUP; J116=Z; SET140; JS100;
        J70;
116;    ZERO; NOT; =M14; J117;
71;     ERASE; ZERO; =TR; SET141; JS100;
        V22; J1;
73;     ERASE; SET142;
74;     JS100;
        V21; SHL-24; V22; J1;
75;     JS40; J66;
77;     SET143; J74;
78;     ERASE; SET144; J74;
79;     ERASE; SET145; J74;
95;     SET146; JP299;
40;     J42C10Z;
41;     DC10; ZERO; JS18P295;
        J41C10NZ;
42;     M7; SHC-2; J43>=Z;
        SETB216; JS14P295;
43;     I10; J44<Z;
        I10; JS14P295;
44;     SET8; C12; -; =C12;
        M13; J88=Z;
        J112C7Z;
46;     J45C12NZ;
        M-I12; SET8; =C12;
45;     ZERO; V17M12; SHLD-6; =V17M12; SHC+6;
        M13; J93=Z;
        C7; NEG; NOT; J93=Z;
        SETB77; J47=;
94;     SETB76; J47=;
97;     JS14P295;
48;     DC14; DC12; DC7; J46C7NZ;
        M13; J49=Z;
112;    M13; JS14P295;
        M0TOQ13; C14TOQ7; J46;
47;     ERASE; ZERO; JS18P295;
        J48;
93;     SETB77; J94#;
        ERASE; ZERO; J97;
49;     EXIT1;
88;     J89C12NZ;
        M-I12; SET8; =C12;
89;     ZERO; V17M12; SHLD-6; =V17M12; SHC+6;
        SETB76; J99=;
        SETB77; J104=;
105;    JS14P295;

106;    DC14; DC12; DC7; J88C7NZ;
        EXIT1;
99;     ERASE; ZERO; JS18P295; J106;
104;    ERASE; ZERO; J105;
80;     DUP; =TR; ABSF; FIX; DUP;
        SHL-47; =M14; ABS; =C14; SETAV25;
        =RM15; SHA-1; DUP; J109=Z;
        SET-10;
81;     =I14; M15M14H; SHA-24; =I15;
82;     C14; I14; DUP; PERM; +;
        J83<Z;
        =+C14; I15; =+C15; V3M14; *D;
        SHAD+1; ROUND; J82;
83;     SHA-3; J84=Z;
        SET2; =+M14; SET-3; J81;
84;     M14; SHC-1; J85<Z;
        NC14;
85;     DC14; NC14; STR; SHADC14; J87;
86;     ERASE; SET10; *D; DC15;
87;     DUP; J86=Z;
        SHAD-4; ERASE;
109;    C15; =M14; I14=+1; J108NTR;
        NEG;
108;    EXIT1;
90;     DUP; J76#Z;
        NOT; DUP; SHL+6; J92;
76;     V16; NEG; DUPD; +; J91<Z;
        NEG; %I; V1; REV; FRB;
91;     REV; V1; REV; FRB; V2;
        DUPD; REV; -; AND; V2;
        NEV; ZERO; FLOAT; FIX; NOT;
        NEG; =C15; ERASE; ZERO; NOT;
        STR; NEV; SHAC15; OR; REV;
        DUP; J92>=Z;
        SHA-27; REV;
92;     REV; EXIT1;
100;    =V28; EXIT1;
       algol;

integer procedure format(lay out);
        string lay out;
        kdf9 12/9/14/6;
        (format);
        V2=B0013573703034671;
        V5=B4321221604215035;
        V6=B4720000000000000;
        {lay out};
        DUP; =V1; =RM14; SET2; SHC-8;
        =V0; Q0TOQ15; SET24; DUP; =C12;
        SHA-1; =C11; Q0TOQ13; IM0TOQ12; IM0TOQ11;
        Q12TOQ10; Q0TOQ9; ZERO; JS27;
        SETB215; J32#;
        ERASE; J2;
1;      REV; DUP; SHA+2; +; SHA+1;
        +;
2;      JS27;
        DUP; SET10; -; J1<Z;
        SETB70; (s); J26#;
        ERASE; DUP; SHL-4; J33#Z;
        DUP; J23=Z;
        =V3; DC15;
3;      ZERO; DUP; NOT; NEG;
4;      JS27;
        J22C15Z;
        SETB70; (s); J13=;
5;      SETB51; (d); J11=;
        SETB301; (+); J14=;
        SETB321; (-); J14=;
        SETB322; (#); J14=;
        SETB13; (.); J16=;
        DUP; (zero); J17=Z;
        SETB63; (n); J10=;
        SETB12; (10); J18=;
        SETB230; (;); J19=;
        SETB50; (c); J20=;
        SETB65; (p); J21=;
        SETB235; J31#;
6;      I12; J7#Z;
        SET24; C12; -; J31=Z;
        ERASE; OR; =V4; J8;

7;      C12; NEG; NOT; J31#Z;

        M11; J31=Z;
        ERASE; ERASE; SETB3; DUP; PERM;
        AND; NEV; J34#Z;
8;      ZERO; M10; SHLD-3; ERASE; I9;
        SHLD-1; ERASE; SHL-1;
        I10; SHLD-1; ERASE;
        I13; SHLD-1; ERASE;
        M11; SHLD-2; ERASE;
        SET12; C11; -; SHLD-4; ERASE;
        SET24; C10; -; SHLD-5; ERASE;
        I11; SHLD-2; ERASE;
        V3; SHLD-4; ERASE;
        V4; SHLD-24; ERASE;
9;      exit;
10;     (n); C11; SET12; -; J11#Z;
        I13=+1;
11;     J31C9NZ; (d, zero or terminator);
        I12; J12#Z; (EXM);
        J31C11Z; (SFC>12);
        DC11;
12;     PERM; DUP; PERM; OR; REV;
        CAB; (insert digit in field lay out);
13;     ERASE; SHL+1; DC12; J32C12Z; (EFC>24);
        I10; J4#Z; (DPM);
        DC10; J4C10NZ; (NDP);
        J32;
14;     (+-#); SHC-4; DUP; SHL+46; REV;
        SHL-44; ROUND; (1=+, 2=-, 3=#);
        I12; J15#Z; (EXM);
        C12; SET24; -; J31#Z; (SFC=0);
        I11; J31#Z; (first sign);
        =I11; J4;
15;     (EXP SIGN); SET3; C12; -; J31#Z;
        M11; J31#Z;
        = M11; J4;
16;     I10; J31#Z; (DPM);
        ERASE; I10=+1; J4;
17;     (zero); J12C9NZ;
        C11; SET12; -; J31=Z;
        DC9; J12;
18;     (subten); I12; J31#Z;
        I10; J31=Z;
        I12=+1; ERASE; OR; DUP; =V4;
        SHLC10; SHL+24; BITS; NEG; NOT; J34#Z;
        SET3; =C12; J3;
19;     (;); I9; J31#Z;
        I9=+1; DC9; ERASE; J4;
20;     (c); M10; SHL-2; J31#Z;
        DC9; ZERO; NOT; NEG; =+M10;
        ERASE; J4;
21;     (p); M10; J31#Z;
        DC9; SET4; =M10; ERASE; J4;
22;     SETB70; (s); J24#;
        ERASE; ERASE;
23;     NOT; NEG; DUP; DUP; SHL-4;
        J4=Z;
        NEG; NOT; =V3; DC15; ZERO;
        DUP; NOT; NEG; CAB; J13;
24;     PERM; ERASE;
25;     =V3; DC15; ZERO; DUP; NOT;
        NEG; CAB; J5;
26;     REV; DUP; J25=Z;
        J32;

27;     ZERO; V0;
28;     ZERO; SHLD+8; PERM; OR; DUP;
        J29=Z;
        =V0; EXIT1;
29;     ERASE; M0M14Q; J28;
30;     ERASE;
31;     ERASE;
32;     ERASE;
33;     ERASE;
34;     SETAV5; V0P299; JSP288; V1; V0P299;
        JSP288; V2; J9;
        algol;

procedure output(device,value); value device,value;
        real value; integer device;
        kdf9 12/9/14/0;
        {value}; V0; {device}; JSP291; exit;
        V0=B0013573703034651;
        algol;

procedure write boolean(device,boolean);
        value device,boolean; integer device;
        boolean boolean;
        kdf9 12/9/14/0;
        {boolean}; {device};
        (write boolean);
        JS12P295;
        J2<Z;
        SETB315;
1;      JS14P295;
        JS16P295;
        exit;
2;      SETB335; J1;
        algol;
****