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
@@ -40,6 +40,12 @@ @@ -40,6 +40,12 @@
40 .def t0 = r10 ; Secondes / 2 40 .def t0 = r10 ; Secondes / 2
41 .def selaff = r11 ; Digit en cours d'affichage 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 ; Vecteurs d'interruptions 49 ; Vecteurs d'interruptions
44 50
45 .org 0x000 ; Vecteur RESET 51 .org 0x000 ; Vecteur RESET
@@ -281,18 +287,18 @@ etatMenuJoursC: @@ -281,18 +287,18 @@ etatMenuJoursC:
281 call boundJour 287 call boundJour
282 jmp etatMenuJoursU 288 jmp etatMenuJoursU
283 289
284 -etatMenuJoursS:  
285 - ; TODO Switch mode nuit ↔ mode jour  
286 - reti  
287 -  
288 etatParaJours: 290 etatParaJours:
289 etat <- etat + 7 291 etat <- etat + 7
290 compteur <- 12 292 compteur <- 12
291 etatParaJoursU: 293 etatParaJoursU:
292 d3 <- afficheur@ROM[compteur/10] 294 d3 <- afficheur@ROM[compteur/10]
293 - d2 <- afficheur@ROM[compteur-(compteur*10)/10] 295 + d2 <- afficheur@ROM[compteur-(compteur/10)*10]
294 d1 <- 0x00 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 reti 302 reti
297 303
298 etatParaJoursC: 304 etatParaJoursC:
@@ -300,7 +306,8 @@ etatParaJoursC: @@ -300,7 +306,8 @@ etatParaJoursC:
300 jmp etatParaJoursU 306 jmp etatParaJoursU
301 307
302 etatParaJoursS: ; Switch 308 etatParaJoursS: ; Switch
303 - ; TODO Sauvegarde 309 + temp <- (etat - 10) * 24 + compteur
  310 + assocs[temp] <- (assocs[temp] + 1) & 0b00000001
304 jmp etatParaJoursU 311 jmp etatParaJoursU
305 312
306 etatMenuTJour: 313 etatMenuTJour:
@@ -313,14 +320,14 @@ etatMenuTJour: @@ -313,14 +320,14 @@ etatMenuTJour:
313 320
314 etatParaTJour: 321 etatParaTJour:
315 etat <- 18 322 etat <- 18
316 - compteur <- 0 ; TODO Récupérer la température 323 + compteur <- tempJour
317 etatParaTJourU: 324 etatParaTJourU:
318 call afficherTemperature 325 call afficherTemperature
319 reti 326 reti
320 327
321 etatParaTJourC: 328 etatParaTJourC:
322 call boundTemperature 329 call boundTemperature
323 - ; TODO Sauvegarde 330 + tempJour <- compteur
324 jmp etatParaTJourU 331 jmp etatParaTJourU
325 332
326 etatMenuTNuit: 333 etatMenuTNuit:
@@ -333,14 +340,14 @@ etatParaTJourC: @@ -333,14 +340,14 @@ etatParaTJourC:
333 340
334 etatParaTNuit: 341 etatParaTNuit:
335 etat <- 20 342 etat <- 20
336 - compteur <- 0 ; TODO Récupérer la température 343 + compteur <- tempNuit
337 etatParaTNuitU: 344 etatParaTNuitU:
338 call afficherTemperature 345 call afficherTemperature
339 reti 346 reti
340 347
341 etatParaTNuitC: 348 etatParaTNuitC:
342 call boundTemperature 349 call boundTemperature
343 - ; TODO Sauvegarde 350 + tempNuit <- compteur
344 jmp etatParaTNuitU 351 jmp etatParaTNuitU
345 352
346 etatMenuHorloge: 353 etatMenuHorloge:
@@ -457,7 +464,7 @@ valider: @@ -457,7 +464,7 @@ valider:
457 si etat <= 1 saut etatMenuAssoc 464 si etat <= 1 saut etatMenuAssoc
458 si etat = 2 saut etatMenuJours 465 si etat = 2 saut etatMenuJours
459 si etat <= 9 saut etatParaJours 466 si etat <= 9 saut etatParaJours
460 - si etat <= 16 saut etatMenuJoursS 467 + si etat <= 16 saut etatParaJoursS
461 si etat = 17 saut etatParaTJour 468 si etat = 17 saut etatParaTJour
462 si etat = 18 saut etatMenuTJour 469 si etat = 18 saut etatMenuTJour
463 si etat = 19 saut etatParaTNuit 470 si etat = 19 saut etatParaTNuit