//MCollect.bcpl -- machine-independept code to collect list of addresses // Last edited: 24 July 1979 get "mdecl.d" external [ // MTXTBUF InputTextBuffer // MSYM EvalAText // MCMD ErrorAbort // Machine-dependent table file @MEMNAM // Defined here CollectLDR ] let CollectLDR(AV,MemX) = valof [ let Count,X,AVal = 0,1,vec size AVal/16 for J = 0 to 5 do [ if X > InputTextBuffer!0 then break unless EvalAText(InputTextBuffer,lv X,AVal,true) do [ ErrorAbort() ] if (AVal>>AVal.TypeStorage ne MemTypeStorage) % (MemX ne AVal>>AVal.X) do [ ErrorAbort("Required args are addresses in ",MEMNAM!MemX) ] Count = Count+1; AV!J = (lv AVal>>AVal.Addr)!1 ] if X le InputTextBuffer!0 do ErrorAbort("Limited to six addresses in ",MEMNAM!MemX) if Count eq 0 then ErrorAbort("Requires addresses in ",MEMNAM!MemX) resultis Count ]