Nice work MMcLaren, looks good. Is it possible to change the label RA5 to MCLR?
Farscape:
I spotted a few things:
It is clearer to put portA, 2 than portA, b'10'.
You are only checking portA, 2 so you need another copy of those 2 lines to check portA, 3.
In the flash subroutine you are changing pins 1 and 2 instead of 3 and 4.
You haven't put the code in yet for checking if the countdown has finished.
There is nothing in the doNothing loop so the program will hang when it gets there - I suppose you could put input checking code in there which would solve my previous point.
This last one you don't really have to worry about but deserves a mention. Because there are calls which never get returned from, the stack which stores where to return to will grow. This would create problems if the chip wasn't being reset every game. If for example you later wanted to expand the game to keep scores or use a pin other than the reset pin it could cause headaches later.
Farscape:
I spotted a few things:
It is clearer to put portA, 2 than portA, b'10'.
You are only checking portA, 2 so you need another copy of those 2 lines to check portA, 3.
In the flash subroutine you are changing pins 1 and 2 instead of 3 and 4.
You haven't put the code in yet for checking if the countdown has finished.
There is nothing in the doNothing loop so the program will hang when it gets there - I suppose you could put input checking code in there which would solve my previous point.
This last one you don't really have to worry about but deserves a mention. Because there are calls which never get returned from, the stack which stores where to return to will grow. This would create problems if the chip wasn't being reset every game. If for example you later wanted to expand the game to keep scores or use a pin other than the reset pin it could cause headaches later.