rename 'gamelogic' to 'collisions' since that's really all it was.  'gamelogic' is still to be written, whatever it winds up being named.
fix up momentum to make sense.  now player[xy]speed is signed, but player[xy] and player[xy]lo are both unsigned.  more tests for that.
move _collisions' definition up before it gets invoked so that dasm knows about it when it sees it, and actually invoke it.
this is the order things happen in currently:
       _readstick optimistically modifies playeryspeed and playerzspeed
       _collisions zeros, reverses or otherwise modifies playeryspeed or playerzspeed
       _momentum adds playeryspeed and playerzspeed
that's the order, but the described effects aren't exactly that yet.