Commit a238970bacbbcd4293d469ece34cef602b0511a0

Authored by Geoffrey PREUD'HOMME
1 parent 2997ffb9

Sauvegarde en RAM des valeurs stockées en RAM

Showing 1 changed file with 19 additions and 12 deletions   Show diff stats
principal.txt
... ... @@ -40,6 +40,12 @@
40 40 .def t0 = r10 ; Secondes / 2
41 41 .def selaff = r11 ; Digit en cours d'affichage
42 42  
  43 +; Nommage des adresses RAM utilisées
  44 +
  45 +.equ assocs = 0x0200 ; Association des modes aux heures
  46 +.equ tempJour = 0x02a8 ; Température du mode jour
  47 +.equ tempNuit = 0x02a9 ; Température du mode nuit
  48 +
43 49 ; Vecteurs d'interruptions
44 50  
45 51 .org 0x000 ; Vecteur RESET
... ... @@ -281,18 +287,18 @@ etatMenuJoursC:
281 287 call boundJour
282 288 jmp etatMenuJoursU
283 289  
284   -etatMenuJoursS:
285   - ; TODO Switch mode nuit ↔ mode jour
286   - reti
287   -
288 290 etatParaJours:
289 291 etat <- etat + 7
290 292 compteur <- 12
291 293 etatParaJoursU:
292 294 d3 <- afficheur@ROM[compteur/10]
293   - d2 <- afficheur@ROM[compteur-(compteur*10)/10]
  295 + d2 <- afficheur@ROM[compteur-(compteur/10)*10]
294 296 d1 <- 0x00
295   - d0 <- 0xFF ; TODO Récupérer le mode
  297 + temp <- (etat - 10) * 24 + compteur
  298 + ; Si la RAM n'est pas initialisée à cet endroit, on préfère afficher un tiret
  299 + d0 <- 0x40
  300 + si assocs[temp] = 0b00000000 alors d0 <- 0x3c
  301 + si assocs[temp] = 0b00000001 alors d0 <- 0x54
296 302 reti
297 303  
298 304 etatParaJoursC:
... ... @@ -300,7 +306,8 @@ etatParaJoursC:
300 306 jmp etatParaJoursU
301 307  
302 308 etatParaJoursS: ; Switch
303   - ; TODO Sauvegarde
  309 + temp <- (etat - 10) * 24 + compteur
  310 + assocs[temp] <- (assocs[temp] + 1) & 0b00000001
304 311 jmp etatParaJoursU
305 312  
306 313 etatMenuTJour:
... ... @@ -313,14 +320,14 @@ etatMenuTJour:
313 320  
314 321 etatParaTJour:
315 322 etat <- 18
316   - compteur <- 0 ; TODO Récupérer la température
  323 + compteur <- tempJour
317 324 etatParaTJourU:
318 325 call afficherTemperature
319 326 reti
320 327  
321 328 etatParaTJourC:
322 329 call boundTemperature
323   - ; TODO Sauvegarde
  330 + tempJour <- compteur
324 331 jmp etatParaTJourU
325 332  
326 333 etatMenuTNuit:
... ... @@ -333,14 +340,14 @@ etatParaTJourC:
333 340  
334 341 etatParaTNuit:
335 342 etat <- 20
336   - compteur <- 0 ; TODO Récupérer la température
  343 + compteur <- tempNuit
337 344 etatParaTNuitU:
338 345 call afficherTemperature
339 346 reti
340 347  
341 348 etatParaTNuitC:
342 349 call boundTemperature
343   - ; TODO Sauvegarde
  350 + tempNuit <- compteur
344 351 jmp etatParaTNuitU
345 352  
346 353 etatMenuHorloge:
... ... @@ -457,7 +464,7 @@ valider:
457 464 si etat <= 1 saut etatMenuAssoc
458 465 si etat = 2 saut etatMenuJours
459 466 si etat <= 9 saut etatParaJours
460   - si etat <= 16 saut etatMenuJoursS
  467 + si etat <= 16 saut etatParaJoursS
461 468 si etat = 17 saut etatParaTJour
462 469 si etat = 18 saut etatMenuTJour
463 470 si etat = 19 saut etatParaTNuit
... ...