comment A4 -- DH's version;

real procedure read(dv);  value dv;  integer dv;
kdf9 12/9/14/0;
   {dv}; JSP294; exit 

P294V1; ( Read Number );
   V1=F0.1;
   JS3P295;    (+ initialise character fetch );
   SETB2014; =V0; ZERO;
1; ERASE; JS5P295; SETB35; J2=; SETB36; J3=; SETB37; J4=;
   SETB20; -; DUP; J1<Z;     (+ skip space etc );
   DUP; SET10; -; J1>=Z;     (+ skip non-digits );
   ZERO;
5; ERASE;
51; JS5P295; SETB20; -; DUP; J5<Z;  (+ skip spaces etc );
   DUP; SET10; -; J6>=Z;     (+ non-digits terminate );
   REV; SET10; ×D; CONT; +; J51;

3; SETB6000; = V0;
2; ERASE; ZERO; J51;

6; SETB17; NEV; J7=Z;        (+ decimal point );
   SET47; FLOAT;
8; V0; SHC-12; ×F;       ;   (+ incorporate sign );
   J7P295;                   (+ freeze character fetch and exit );

4; ERASE; ZERO;              (+ starts with decimal point );
7; SET47; FLOAT;
   SETB2014; SHC-12; ZERO; ZERO;   (+ N1/2 rubbish,  N3 multiplier of previous digit, N4 accumulated number );
9; ERASE; ERASE;
10; V1; ×F; DUP; PERM; JS5P295;
   SETB20; -; DUP; J9<Z;     (+ skip space etc );
   DUP; SET10; -; J11>=Z;    (+ terminator );
   SET47; FLOAT; ×F; +F;
   REV; J10;
11; ERASE; ERASE; REV; ERASE; J8;

algol 

real procedure read boolean(dv);  value dv;  integer dv;
kdf9 12/9/14/0;
   {dv}; SET4; SET99; JP299; exit 
algol 
****