A hidden object is an object the player cannot found until she does something (like examine another object, open an object write a etc.). There are several ways to manage hidden objects. You can use flags, you can use the status bits, you can use and additional vector for the status of each object, etc.
At my first try, I wanted to use status bits to mark hidden objects. I used a different approach at in the end. I store hidden objects in a special location. When the player finds and object, I will move it from the hidden location to the actual location.
I use a location that does not exist in the game as the hidden location.
;---
; Param x object index
Item_is_Hidden
jsr Lda_Obj_Status
cmp #LOC_HIDDEN
; If Z = 0 is in hidden loc
; So it is a hidden object
rts