All MS transmit on same frequency but with different PN codes to create different logical channels. Some channels marked for Access are used for signaling and control.
While Walsh Codes identifies different channels, PN codes are used to identify Cells (by 15 bit code) and MS’s (by 42 bit codes).
As each MS receives a bundle of signals from a BTS, which is meant for all the channels (maximum 64) for that BTS, it identifies which one to accept depending on the Walsh Code.
The MS could also be receiving similar bundles from more than one BTS’s. Which BTS should it talk to? That is identified by a PN Code (called Short code), an unique sequence of codes allotted to each BTS.
Similarly a BTS may be receiving two or more MS’s transmitting with same Walsh Code (because a BTS can hear a MS of a neighboring cell talking to the neighboring BTS using the same Walsh code it has allotted to a MS within it’s cell). The BTS identifies which MS’s are talking to it by another set of PN code (called Long code). Long PN codes are another unique sequence of codes identifying the MS’s.