Short answer
The distinguisher is only given the output of the generator on a uniformly chosen seed of appropriate length, along with a truly random string of the same length as the output of the generator. So, no, the distinguisher is not given $a$, $b$ and $m$. However, as you note we can still consider an algorithm in which those values are hardcoded, this problem is solved by randomly choosing new parameters on each run of the generator (see also the last paragraph below).
Long answer (my definitions come from the book of Goldreich)
First, computational indistinguishability. Remember that a probability ensemble is a sequence of random variables $X_0,X_1,X_2,\dots$, which we note $\{X_n\}_{n\in \mathbf{N}}$. In general, $X_n$ represents the output of some probabilistic algorithm on some input of length $n$ (typically either equal to $1^n$ or uniformly chosen).
Two probability ensembles $X = \{X_n\}_{n\in \mathbf{N}}$ and $Y = \{Y_n\}_{n\in \mathbf{N}}$ are computationally indistinguishable (in polynomial time) if for every probabilistic polynomial-time algorithm $D$, every polynomial $p$ and all sufficiently large $n$, we have
$$\left|\mathrm{Pr}[D(X_n,1^n) = 1] - \mathrm{Pr}[D(Y_n,1^n) = 1]\right| < \frac{1}{p(n)}.$$
We have not yet given a "meaning" to the random variables $X_n$ and $Y_n$, but jumping ahead we can say that the definition informally means the following. On an integer $n$, the distinguisher is given the output of the "algorithm" $X$ or $Y$ on an input of length $n$ (as well as $n$ itself in unary form), and tries to guess whether the string was the output of $X$ or the output of $Y$. We can say without loss of generality that the algorithm outputs $1$ if it guesses that the string is the output of $X$, and $0$ otherwise. Then clearly an algorithm which can reliably tell apart outputs of $X$ and outputs of $Y$ would violate the definition.
In the following, $U_n$ denotes a random variable with uniform distribution over all strings of length $n$.
A probability ensemble $X = \{X_n\}_{n\in\mathbf{N}}$ is pseudorandom if there is a function $\ell : \mathbf{N}\to\mathbf{N}$ such that $X$ and $\{U_{\ell(n)}\}_{n\in\mathbf{N}}$ are computationally indistinguishable.
Note that here, in the distinguishing experiment for $n$, $D$ is given $(X_n,1^n)$ on one side and $(U_{\ell(n)},1^n)$ on the other. Jumping ahead, $\ell(n)$ will be the length of the output of the pseudorandom generator on a seed of length $n$, and $X_n$ will be the output itself. Then $D$ must distinguish between $X_n$, the output of the generator, and $U_{\ell(n)}$, a uniform string of length equal to that of the output (as opposed to $U_n$, which is a uniform string of length equal to that of the seed).
A pseudorandom generator is a deterministic polynomial-time algorithm $G$ which satisfies the following two conditions.
Expansion of input. There is a function $\ell:\mathbf{N}\to\mathbf{N}$ such that $\ell(n) > n$ for all integers $n$ and $|G(s)| = \ell(|s|)$ for all strings $s$.
Pseudorandomness of output. The probability ensembles $\{G(U_n)\}_{n\in\mathbf{N}}$ and $\{U_{\ell(n)}\}_{n\in\mathbf{N}}$ are computationally indistinguishable.
The input of $G$ is the seed, so on a seed of length $n$ $G$ produces a "pseudorandom string" of length $\ell(n)$. As long as $s$ is uniformly chosen, $G(s)$ is computationally indistinguishable from a uniform string of length $\ell(|s|)$. And the distinguisher is only given $G(U_n)$ (i.e., $G(s)$ for a uniformly chosen $s$ of length $n$) and $1^n$, nothing else.
Note also that in this definition, there is no limit on the size of the input of $G$, but if you use a fixed modulus $m$, you cannot meaningfully handle seeds larger than $m$. Here too the solution is to generate parameters of appropriate length on each run of the generator.