|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00) Types: TextFile Names: »extatomic«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦58ca399f1⟧ »extbib« └─⟦this⟧
atomic=algol list.yes index.no external boolean procedure atomic(mass,Na); value Na; integer Na; array mass; begin integer i,j,l,c,M; procedure alarm; begin write(out,<:<10>***atomic symbol no.:>,<<dd>,i, <<ddddd>,M,false add (c+64),1,false add l,1,<: illegal:>); atomic:= true; goto stop end; atomic:= false; for i:=1 step 1 until Na do begin c:= M:= 0; for l:=c while (c<65 or c>90) and c<>46 and M<>-1 do begin readchar(in,c); if M=12 and l<>50 and c<>67 then begin repeatchar(in); c:= 67 end; if c>=48 and c<=57 then M:= M*10+c-48; if c=49 and l=45 then M:= -1 end; if M=-1 then mass(i):= mass(i-1) else if c=46 then begin repeatchar(in); read(in,mass(i)); mass(i):= mass(i)+M end else begin readchar(in,l); if l<97 then begin l:= 0; repeatchar(in) end; c:= c-64; if c>19 then alarm; case c of begin begin if l<>108 or -,(M=27 or M=0) then alarm; mass(i):= 26.981535 end; begin j:= if l=0 then M-9 else if l=114 then M//2-36 else 0; if j<1 or j>4 then alarm; mass(i):= case j of (10.012939,11.009305, 78.91835,80.91634) end; begin j:= if l=0 then M-11 else if l=108 then M//2-14 else 0; if j=-11 then j:= 1; if j<1 or j>4 then alarm; mass(i):= case j of (12,13.003354, 34.968855,36.965896) end; mass(i):= 2.014102; alarm; mass(i):= 18.998405; alarm; begin j:= if M=0 then 1 else M; if j<1 or j>2 then alarm; mass(i):= case j of (1.007825,2.014102) end; begin if -,(M=127 or M=0) then alarm; mass(i):= 126.90435 end; begin if -,(M=127 or M=0) then alarm; mass(i):= 126.90435 end; alarm; alarm; alarm; begin j:= if M=0 then 1 else M-13; if j<1 or j>2 then alarm; mass(i):= case j of (14.003074,15.000108) end; begin j:= if M=0 then 1 else M-15; if j<1 or j>3 then alarm; mass(i):= case j of (15.994915,16.999133,17.999160) end; begin if -,(M=31 or M=0) then alarm; mass(i):= 30.973763 end; alarm; if i>1 then mass(i):= mass(i-1) else alarm; begin j:= if l=0 then (if M=0 then 1 else M-31) else if l=105 then (if M=0 then 4 else M-24) else 0; if j<1 or j>6 then alarm; mass(i):= case j of (31.972074,32.971460,33.967864, 27.976927,28.976491,29.973761) end; end c end end i; stop: end; end ▶EOF◀