Menusystem

Menusystemet är uppbyggt enligt:

<mode> Är uppbyggd av 4 bytes där dom 3 första är till för framtida expandering och det sista anger om och var klockan skall visas. ($ff = klocka av, annars anger den klockpositionen på displayen)
<knapp *> Visar vad som ska händ om man trycker på knapperna med samma namn, antigen så pekar dom på en ny menustruktur eller så pekar dom på en rutin som vi hoppar till när man trycker på knappen (om översta biten är satt). Detta gör att man kan skapa menyer som utför rutiner när man tex trycker på någon av knapparna.
<text *> Visar text på den aktuella positionen på displayen.
<Action Init> I detta fält fylles eventuella Init rutiner i, rutinen körs när menun startas
<Action Run> I detta fält fylles eventuellt en rutin som ska köras rn gång i varje loop.

Till exempel ställa klockan menun:

SetClock: dc.b 0,0,0,DM_POS_CLK ;Sätt klockan i övre höger hörn
dc.l 0,menu2_sub2,sys_menu2,Save_clock+IS_CODE ;upp: ingen menu
;ner: Nästa inställning
;vänster: (avbryt) tillbaka till huvudmenun
;höger: Kodsnutt som sätter klockan till det inställda värdet
dc.l Time_txt,avbryt_txt,empty_time_txt ;texter som visas
dc.l Set_cur_at_clkpos,Set_Clock ;Initiera klockinställningen, kör en knappavkodning som skriver ut den klocktid som matas in i nedre vänstra hörnet

Som ger följande resultat:

1 (Vid start) 2 (tryckt på 1) 3 (tryckt på 344) 4 (Tryckt på höger
Ställ kockan)
SetTime 19:15:33
Avbryt    :  :
SetTime 19:15:32
Avbryt  1 :  :
SetTime 19:15:34
Avbryt  13:44:
SetTime 13:44:35
Avbryt    :  :