Commit a238970bacbbcd4293d469ece34cef602b0511a0
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,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 |