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
****