record largint(coeff,nextl)

procedure mpy(g1,g2)
   local prod
   if /(g1 | g2) then return &null	# zero product
   prod := g1.coeff * g2.coeff
   return largint(prod % base,
      add(mpy(largint(g1.coeff),g2.nextl),mpy(g1.nextl,g2),
      largint(prod / base)))
end
