!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 non-digits ); ZERO; 5; ERASE; 51; JS5P295; SETB20; -; DUP; J5=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; (+ 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; ****