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 | 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 | ... | ... |