;========================================================================
; Menu definition
; Menu is a structure containing a menu text and all information needed
; to interpret characters, to select or deselect items and perform
; necessary actions.
; Menu header
MH$noitems = 0 ; No. of items
MH$entries = 2 ; Ptr to the first entry
MH$text = 4 ; Menu text starts here
; Format of a menu entry
; Its ptr is passed to the all procedures in r0
ME$char = 0 ; Char whose pressing selects the item
ME$type = 1 ; Item type
ME$loc = 2 ; Location of the item
or
ME$length = 4 ; Item length (byte)
; The meaning of the following depends on the item type
; type = 0 - branch to the next menu
ME$menu = 6 ; Ptr to the menu
; type = 1 - call the procedure on the item activation
ME$proc = 6 ; Ptr to the procedure
; type = 2 - the item contains a window to display
; and to update the decimal value
ME$color = 5 ; Color to be set before the window editing
ME$value = 6 ; Ptr to the word containing a value
ME$wloc = 10 ; Window location (col,row) or
; type = 3 - the item needs the special initialization
ME$iproc = 6 ; Ptr to the initializing procedure
ME$aproc = 10 ; Ptr to the activation procedure
.macro mentry char,loc,type,varslot,color=, ?mark ; An menu entry
.byte char,type,loc
.byte ; total entry length
.if b
.byte 0
.iff
.bktext ,
.endc
.word varslot ; variant slot
mark: ; End of the entry mark
.endm