Not too difficult to check for key release to act on.

Right now you are checking a keypress when the portb value is different from $78

Key release is simply getting the transition from (Not $78) to $78

What caused it to be Not $78 is the key that got released.

For easy implementation in case of short keypresses, a tight blocking loop doing the above test is fine. In case you anticipate the user will have a button down for a long while, then a different approach using a software timer may give better results.

Just a short pseudo code as I am not well oiled in PBP these days

Code:
while 1
    key = ~portb & $78
    if (key <> $78) then
         savedkey = key
    else
         if savedkey <> $78 then
              ' saved key is the one that was released
              ' act on saved key
         endif
    endif
wend
If you wish to have a keyboard that has buttons that give pressed, hold, repeat and release states, I suggest you look at some arduino code that shows such an implementation using a finite state machine