Sorry I forgot to put my name on my last post.
So here is the code. Don’t let the Danish lingo disturb.
'*-----------------------------------------------------
'*
'* STYRING AF MENU PÅ LCD-DISPLAY VIA PICAXE18X
'*
'*-----------------------------------------------------
EEPROM 0,(24,4,30)
EEPROM 3,(30,4,63)
EEPROM 6,(40,3,104)
EEPROM 9,(50,3,131)
EEPROM 12,(57,2,161)
EEPROM 15,(104,2,176)
EEPROM 18,(114,2,195)
EEPROM 21,(121,2,214)
EEPROM 24,(0,"Menu",0)
EEPROM 30,(1,"Tilstand",0)
EEPROM 40,(2,"Drifttid",0)
EEPROM 50,(3,"Temp.",0)
EEPROM 57,(4,"Data",0)
EEPROM 63,(31,"Slukket",0)
EEPROM 72,(31,"Manuel",0)
EEPROM 80,(31,"Automatisk",0)
EEPROM 92,(31,"Auto pause",0)
EEPROM 104,(9,"Interval",0)
EEPROM 114,(10,"Snegl",0)
EEPROM 121,(11,"Natsænk.",0)
EEPROM 131,(31,"Maksimum",0)
EEPROM 141,(31,"Minimum",0)
EEPROM 150,(31,"M aut pau",0)
EEPROM 161,(31,"Overfør",0)
EEPROM 170,(31,"Slet",0)
EEPROM 176,(95,"Fyring",0)
EEPROM 184,(95,"Pausefyri",0)
EEPROM 195,(95,"Fyring",0)
EEPROM 203,(95,"Pausefyri",0)
EEPROM 214,(95,"Start",0)
EEPROM 221,(95,"Slut",0)
'*-----------------------------------------------------
symbol MENU = b2
symbol Punkt = b3
symbol Txt = b4
symbol antal = b5
symbol start = b6
symbol i = b7
symbol ChBuf = b8
symbol pos = b9
symbol TxtPos = b10
Symbol M1Start = b12
Symbol M2Start = b13
symbol LCD = 7
pause 50
serout LCD,T2400,(254,1)
pause 50
MAIN:
MENU = 0
Punkt = 1
GOSUB VisMenu
Pause 2000
Punkt = 2
GOSUB VisMenu
Pause 2000
Punkt = 3
GOSUB VisMenu
Pause 2000
Punkt = 4
GOSUB VisMenu
MENU = 1
Punkt = 1
GOSUB VisMenu
Pause 2000
Punkt = 2
GOSUB VisMenu
Pause 2000
Punkt = 3
GOSUB VisMenu
Pause 2000
Punkt = 4
GOSUB VisMenu
debug b1
Goto Main
DoCmd:
VisMenu:
'Hent oplysninger om menuen
pos = MENU * 3
read pos , Txt
pos = pos + 1
read pos , antal
pos = pos + 1
read pos , start
TxtPos = Txt
serout LCD,T2400,(254,128)
Gosub SkrivTilLCD
Bit1=0
If Punkt < antal then Forste 'Så er det ikke sidste punkt
Bit1=1
Punkt = Punkt - 1
Forste:
TxtPos = Start
i=1
If Punkt > 1 then FindPkt
serout LCD,T2400,(254,137)
Gosub SkrivTilLCD
M1Start = Start
Goto VisAndenPkt
FindPkt:
TxtPos = TxtPos + 1
read TxtPos, ChBuf
If ChBuf<>0 then FindPkt
TxtPos = TxtPos + 1
i = i +1
If i<>Punkt then FindPkt
serout LCD,T2400,(254,137)
M2Start = TxtPos
Gosub SkrivTilLCD
VisAndenPkt:
TxtPos=pos + 1
serout LCD,T2400,(254,201)
M2Start = TxtPos
Gosub SkrivTilLCD
SetCursor:
pos=136 + Bit1 * 64
serout LCD,T2400,(254,pos,">"
Return
SkrivTilLCD:
bit0 = 0
'Udskriv menutekst
pos=TxtPos + 1
for i = 1 to 10
read pos,ChBuf
if ChBuf = 0 or bit0 = 1 then Skip1
serout LCD,T2400,(b1)
pos = pos + 1
bit0=1
Skip1:
if bit0 = 0 then Skip2
'Fyld ud med blanke
serout LCD,T2400,(" "
Skip2:
Next
Return