Well your problem is actually on this line here
parallel.waitForAny(advert(spd,cl1,cl2,cl3,cl4,cl5),coined(pside))
the parallel function requires that you give it function pointers. As it stands you're giving it the return result of the functions. The reason that one runs and the other doesn't is because before parallel.waitForAny will run it first must evaluate the functions inside its function call, so whichever function is the first parameter will run, when it finishes the other will run, then once that one finishes the parallel.waitForAny will finally run, off the return values of the advert and coined functions, which I would say are both nil…
Obviously because you need to pass the function pointer it means that you cannot specify any arguments for the function either. So to resolve this problem we use anonymous functions, like so…
parallel.waitForAny( function() advert(spd,cl1,cl2,cl3,cl4,cl5) end, function() coined(pside) end)
Don't consider me a expert or even knowing what im talking about… but from a quick glance over the code i noticed that on line 285 you have
local function advert(speed,col1,col2,col3,col4,col5)
while on line 357 you call the variable "speed" "spd"
parallel.waitForAny(advert(spd,cl1,cl2,cl3,cl4,cl5),coined(pside))
I really don't know if this means anything as this is more advanced then anything i do
Since this is actually not a bug, and in fact just how programming languages work, I suggest that you read up on Lua using the PIL (google it `Lua PIL`) and the ComputerCraft wiki, before attempting to make suggestions that even you admit you have no idea about…
The reason this is not the problem
local function name( id, time, balance )
This line tells Lua that you're creating a function called `name` and then you define the names of the variables it can accept and what you will refer to them by in the function.
Then when you're calling the function
name( 5, "14:30", 56.7 )
As you can see by this we are passing hard coded values to the function, the first value (5) we refer to in the function by `arg1` etc etc for the other values. Now obviously in the sense of what thedriver has done, he has given variables to the function. Which is the same thing as what we did above, except that a variable is not hard coded, it can be changed and used all over the place.
someVar = "hello"
print( someVar )
name( someVar, "14:30", 23 )
EDIT: Also, I suggest that you take my previous suggestions to you and try to use functions to reduce the amount of duplicate code that you type, for example your entire advert function I refactored for you and it comes up with this
http://pastebin.com/Vksi0ZbR now the good thing about splitting out these functions, is it also made you able to use these in other sections of your code too. this concept is known in programming as Functional Decomposition and it is a very handy thing to get used to doing! Also notice how to make it more compatible with the rest of your script I made all the calls to `term.` instead of `mon.`, now all that is needed to print on the monitor is a terminal redirect, which can be seen at the bottom of the example script. Hope this helps, and as always, any questions just ask here or in the PM we have going.