Mercurial > public > mk2
annotate code_part1/OSTC_code_asm_part1/menu_gassetup.asm @ 729:71e88ee8bbf2
battery info updater
author | heinrichsweikamp |
---|---|
date | Sun, 16 Jun 2013 15:50:37 +0200 |
parents | 91ae251d379f |
children | e9b7232b4f56 |
rev | line source |
---|---|
0 | 1 |
2 ; OSTC - diving computer code | |
3 ; Copyright (C) 2008 HeinrichsWeikamp GbR | |
4 | |
5 ; This program is free software: you can redistribute it and/or modify | |
6 ; it under the terms of the GNU General Public License as published by | |
7 ; the Free Software Foundation, either version 3 of the License, or | |
8 ; (at your option) any later version. | |
9 | |
10 ; This program is distributed in the hope that it will be useful, | |
11 ; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 ; GNU General Public License for more details. | |
14 | |
15 ; You should have received a copy of the GNU General Public License | |
16 ; along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 | |
18 | |
19 ; Gas Setup menu | |
20 ; written by: Matthias Heinrichs, info@heinrichsweikamp.com | |
21 ; written: 10/08/07 | |
22 ; last updated: 080906 | |
23 ; known bugs: | |
24 ; ToDo: | |
25 | |
26 menu_gassetup: | |
27 movlw d'1' | |
28 movwf menupos | |
29 | |
30 menu_gassetup_prelist: | |
681 | 31 call DISP_ClearScreen |
47 | 32 call gassetup_sort_gaslist ; Sorts Gaslist according to change depth |
576 | 33 call menu_pre_loop_common ; Clear some menu flags, timeout and switches |
717 | 34 call DISP_divemask_color |
0 | 35 DISPLAYTEXT .106 ; Gas List |
717 | 36 call DISP_standard_color |
0 | 37 clrf decodata+0 ; Here: # of gas 0-4 |
38 clrf divemins+0 ; Here: # of Gas * 4 | |
39 movlw d'5' | |
40 movwf waitms_temp ; here: stores row for gas list | |
41 movlw d'2' | |
42 movwf wait_temp ; here: stores eeprom address for gas list | |
43 | |
44 ; Changed v1.44se | |
45 menu_gassetup_list: | |
46 WIN_LEFT .20 | |
47 movlw d'4' | |
48 addwf wait_temp,F ; Increase eeprom address for gas list | |
49 movlw d'30' | |
50 addwf waitms_temp,F ; Increase row | |
51 movf waitms_temp,W ; Load row into WREG | |
52 movff WREG,win_top | |
53 lfsr FSR2,letter | |
445 | 54 PUTC TXT_GAS_C |
0 | 55 movff decodata+0,lo |
56 incf lo,F | |
57 bsf leftbind | |
58 output_99 | |
123 | 59 PUTC ':' |
0 | 60 |
121
e0f29e20bd24
Mix-type icons: check apnoe/gauge/CF#41, depth=0, and first gas. Changed colors.
JeanDo
parents:
115
diff
changeset
|
61 movf decodata+0,W |
681 | 62 call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases |
0 | 63 call word_processor |
64 WIN_LEFT .40 | |
65 movf waitms_temp,W ; Load row into WREG | |
66 movff WREG,win_top | |
67 lfsr FSR2,letter | |
68 | |
69 movlw d'33' | |
70 movwf EEADR | |
71 call read_eeprom ; Get current startgas 1-5 # into EEDATA | |
72 decf EEDATA,W ; 0-4 | |
73 cpfseq decodata+0 ; =current displayed gas #? | |
74 bra menu_gassetup_Tx ; no, do not display * | |
123 | 75 PUTC '*' ; display * |
0 | 76 |
77 ; New v1.44se | |
78 menu_gassetup_Tx: | |
121
e0f29e20bd24
Mix-type icons: check apnoe/gauge/CF#41, depth=0, and first gas. Changed colors.
JeanDo
parents:
115
diff
changeset
|
79 movf decodata+0,W |
681 | 80 call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases |
0 | 81 call word_processor |
82 | |
83 WIN_LEFT .48 | |
84 movf waitms_temp,W ; Load row into WREG | |
85 movff WREG,win_top | |
86 lfsr FSR2,letter | |
87 | |
88 movff wait_temp, EEADR ; Gas %He - Set address in internal EEPROM | |
89 incf EEADR,F ; Gas %He - Set address in internal EEPROM | |
90 call read_eeprom ; Read He value from EEPROM | |
91 movff EEDATA,lo ; Move EEDATA -> lo | |
92 movf lo,f ; Move lo -> f | |
93 movlw d'0' ; Move 0 -> WREG | |
94 cpfsgt lo ; He > 0? | |
95 bra menu_gassetup_Nx ; NO check o2 | |
96 | |
97 ; YES Write TX 15/55 | |
642 | 98 STRCAT TXT_TX3 |
0 | 99 movff wait_temp, EEADR ; Gas %O2 - Set address in internal EEPROM |
100 call read_eeprom ; O2 value | |
101 movff EEDATA,lo | |
102 output_8 | |
123 | 103 PUTC '/' |
0 | 104 incf EEADR,F ; Gas #hi: %He - Set address in internal EEPROM |
105 call read_eeprom ; He value | |
106 movff EEDATA,lo | |
107 output_8 | |
108 bra menu_gassetup_list0 | |
109 | |
110 ; New v1.44se | |
111 menu_gassetup_Nx: | |
112 movff wait_temp, EEADR ; Gas %O2 - Set address in internal EEPROM | |
113 call read_eeprom ; Read O2 value from EEPROM | |
114 movff EEDATA,lo ; Move EEDATA -> lo | |
115 movf lo,f ; Move lo -> f | |
116 movlw d'21' ; Move 21 -> WREG | |
117 cpfsgt lo ; o2 > 21% | |
118 bra menu_gassetup_Air ; NO AIR | |
119 movlw d'100' ; Move 100 -> WREG | |
120 cpfslt lo ; o2 < 100% | |
121 bra menu_gassetup_O2 ; NO write O2 | |
122 | |
123 ; YES Write NX 32 | |
642 | 124 STRCAT TXT_NX3 |
0 | 125 output_8 |
126 bra menu_gassetup_list0 | |
127 | |
128 ; New v1.44se | |
129 menu_gassetup_O2: | |
445 | 130 STRCAT TXT_O2_3 |
0 | 131 output_8 |
132 bra menu_gassetup_list0 | |
133 | |
134 ; New v1.44se | |
135 menu_gassetup_Air: | |
136 cpfseq lo ; o2 = 21% | |
642 | 137 bra menu_gassetup_Err |
0 | 138 |
445 | 139 STRCAT TXT_AIR4 |
0 | 140 output_8 |
141 bra menu_gassetup_list0 | |
142 | |
143 ; New v1.44se | |
144 menu_gassetup_Err: | |
445 | 145 STRCAT TXT_ERR4 |
0 | 146 output_8 |
147 | |
148 ; Changed v1.44se | |
149 menu_gassetup_list0: | |
121
e0f29e20bd24
Mix-type icons: check apnoe/gauge/CF#41, depth=0, and first gas. Changed colors.
JeanDo
parents:
115
diff
changeset
|
150 movf decodata+0,W |
681 | 151 call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases |
0 | 152 call word_processor |
153 | |
154 WIN_LEFT .105 | |
155 movf waitms_temp,W ; Load row into WREG | |
156 movff WREG,win_top | |
157 lfsr FSR2,letter | |
158 | |
532 | 159 STRCAT TXT_AT4 |
0 | 160 movf decodata+0,W ; read current value |
161 addlw d'28' ; offset in memory | |
162 movwf EEADR | |
163 call read_eeprom ; Low-value | |
164 movff EEDATA,lo | |
644 | 165 |
0 | 166 output_8 |
445 | 167 PUTC TXT_METER_C |
121
e0f29e20bd24
Mix-type icons: check apnoe/gauge/CF#41, depth=0, and first gas. Changed colors.
JeanDo
parents:
115
diff
changeset
|
168 movf decodata+0,W |
681 | 169 call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases |
0 | 170 call word_processor |
171 | |
681 | 172 call DISP_standard_color |
0 | 173 |
174 incf decodata+0,F | |
175 movlw d'5' | |
176 cpfseq decodata+0 | |
177 goto menu_gassetup_list | |
178 | |
337 | 179 DISPLAYTEXT .11 ; Exit |
180 call wait_switches ; Waits until switches are released, resets flag if button stays pressed! | |
681 | 181 call DISP_menu_cursor |
0 | 182 |
183 gassetup_list_loop: | |
184 call check_switches_logbook | |
185 | |
186 btfsc menubit3 | |
337 | 187 bra gassetup_list2 ; move cursor |
0 | 188 |
189 btfsc menubit2 | |
337 | 190 bra do_gassetup_list ; call gas-specific submenu |
0 | 191 |
192 btfsc onesecupdate | |
575 | 193 call menu_check_dive_and_timeout ; "Goto restart" or sets sleepmode flag |
0 | 194 |
337 | 195 bcf onesecupdate ; 1 sec. functions done |
0 | 196 |
197 btfsc sleepmode | |
198 bra exit_gassetup_list | |
199 | |
200 bra gassetup_list_loop | |
201 | |
202 gassetup_list2: | |
203 incf menupos,F | |
204 movlw d'7' | |
205 cpfseq menupos ; =7? | |
206 bra gassetup_list3 ; No | |
207 movlw d'1' | |
208 movwf menupos | |
209 | |
210 gassetup_list3: | |
211 clrf timeout_counter2 | |
681 | 212 call DISP_menu_cursor |
0 | 213 |
214 call wait_switches ; Waits until switches are released, resets flag if button stays pressed! | |
215 | |
216 bcf menubit3 ; clear flag | |
217 bra gassetup_list_loop | |
218 | |
219 exit_gassetup_list: ; exit... | |
220 movlw d'2' | |
221 movwf menupos | |
222 goto menu2 | |
223 | |
224 do_gassetup_list: | |
225 dcfsnz menupos,F | |
226 bra gassetup_list_edit_gas1 | |
227 dcfsnz menupos,F | |
228 bra gassetup_list_edit_gas2 | |
229 dcfsnz menupos,F | |
230 bra gassetup_list_edit_gas3 | |
231 dcfsnz menupos,F | |
232 bra gassetup_list_edit_gas4 | |
233 dcfsnz menupos,F | |
234 bra gassetup_list_edit_gas5 | |
235 bra exit_gassetup_list ; Exit List | |
236 | |
237 gassetup_list_edit_gas1: | |
238 movlw d'0' | |
239 movwf decodata+0 | |
240 movlw d'0' | |
241 movwf divemins+0 | |
242 bra menu_gassetup_page1 | |
243 | |
244 gassetup_list_edit_gas2: | |
245 movlw d'1' | |
246 movwf decodata+0 | |
247 movlw d'4' | |
248 movwf divemins+0 | |
249 bra menu_gassetup_page1 | |
250 | |
251 gassetup_list_edit_gas3: | |
252 movlw d'2' | |
253 movwf decodata+0 | |
254 movlw d'8' | |
255 movwf divemins+0 | |
256 bra menu_gassetup_page1 | |
257 | |
258 gassetup_list_edit_gas4: | |
259 movlw d'3' | |
260 movwf decodata+0 | |
261 movlw d'12' | |
262 movwf divemins+0 | |
263 bra menu_gassetup_page1 | |
264 | |
265 gassetup_list_edit_gas5: | |
266 movlw d'4' | |
267 movwf decodata+0 | |
268 movlw d'16' | |
269 movwf divemins+0 | |
270 bra menu_gassetup_page1 | |
271 | |
272 menu_gassetup_page1: | |
273 movlw d'1' | |
274 movwf menupos | |
275 bcf gas_setup_page2 ; Page 1 of gassetup | |
276 bcf menubit4 | |
277 bcf first_FA ; Here: =1: -, =0: + | |
278 | |
279 menu_gassetup0: | |
681 | 280 call DISP_ClearScreen |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
50
diff
changeset
|
281 DISPLAYTEXT .147 ; More... |
0 | 282 DISPLAYTEXT .11 ; Exit |
283 | |
284 menu_gassetup1: | |
576 | 285 call menu_pre_loop_common ; Clear some menu flags, timeout and switches |
0 | 286 |
287 rcall gassetup_title_bar2 ; Displays the title bar with the current Gas info | |
288 | |
289 WIN_LEFT .20 | |
199 | 290 WIN_TOP .65 |
445 | 291 STRCPY TXT_O2_4 |
0 | 292 |
293 movf divemins+0,W | |
294 addlw 0x06 | |
295 movwf EEADR | |
199 | 296 call read_eeprom ; O2 value |
0 | 297 movff EEDATA,lo |
298 output_8 | |
199 | 299 STRCAT_PRINT "% " |
0 | 300 |
301 ; Show MOD in m | |
199 | 302 WIN_LEFT .90 |
303 lfsr FSR2, letter | |
304 OUTPUTTEXTH .297 ; MOD: | |
305 | |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
306 rcall gassetup_get_mod ; compute MOD based on CF18 into lo:hi |
0 | 307 |
308 output_16 | |
445 | 309 STRCAT_PRINT TXT_METER3 |
0 | 310 |
199 | 311 WIN_LEFT .20 |
0 | 312 WIN_TOP .95 |
445 | 313 STRCPY TXT_HE4 |
0 | 314 movf divemins+0,W |
315 addlw 0x07 | |
316 movwf EEADR | |
199 | 317 call read_eeprom ; He value |
0 | 318 movff EEDATA,lo |
319 output_8 | |
199 | 320 STRCAT_PRINT "% " |
105 | 321 |
322 ; Show END in m | |
199 | 323 lfsr FSR2, letter |
324 WIN_LEFT .90 | |
325 OUTPUTTEXTH .298 ; END: | |
304 | 326 GETCUSTOM8 .18 ; ppO2 warnvalue in WREG |
327 mullw d'10' | |
328 movff PRODL,xA+0 | |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
377
diff
changeset
|
329 movff PRODH,xA+1 ; ppO2 in [0.01bar] * 10 |
304 | 330 movf divemins+0,W |
331 addlw 0x06 | |
332 movwf EEADR | |
333 call read_eeprom ; O2 value | |
334 movff EEDATA,xB+0 | |
335 clrf xB+1 | |
336 call div16x16 ; xA/xB=xC with xA as remainder | |
337 movlw d'10' | |
338 subwf xC+0,F ; Subtract 10m... | |
339 movff xC+0,lo | |
340 movlw d'0' | |
341 subwfb xC+1,F | |
342 movff xC+1,hi ; lo:hi holding MOD in meters | |
105 | 343 movlw d'10' |
344 addwf lo,F | |
345 movlw d'0' | |
199 | 346 addwfc hi,F ; lo:hi holding MOD+10m |
105 | 347 |
348 movf divemins+0,W | |
349 addlw 0x07 | |
350 movwf EEADR | |
199 | 351 call read_eeprom ; He value in % -> EEDATA |
105 | 352 movlw d'100' |
353 movwf xA+0 | |
199 | 354 movf EEDATA,W ; He value in % -> EEDATA |
355 subwf xA+0,F ; xA+0 = 100 - He Value in % | |
105 | 356 clrf xA+1 |
357 movff lo,xB+0 | |
199 | 358 movff hi,xB+1 ; Copy MOD+10 |
359 call mult16x16 ; xA*xB=xC | |
105 | 360 movff xC+0,xA+0 |
361 movff xC+1,xA+1 | |
362 movlw d'100' | |
363 movwf xB+0 | |
364 clrf xB+1 | |
199 | 365 call div16x16 ; xA/xB=xC with xA as remainder |
105 | 366 ; xC:2 = ((MOD+10) * 100 - HE Value in %) / 100 |
367 movlw d'10' | |
199 | 368 subwf xC+0,F ; Subtract 10m... |
105 | 369 movff xC+0,lo |
370 movlw d'0' | |
371 subwfb xC+1,F | |
372 movff xC+1,hi | |
373 output_16 | |
445 | 374 STRCAT_PRINT TXT_METER3 |
0 | 375 |
199 | 376 WIN_LEFT .20 |
0 | 377 WIN_TOP .125 |
123 | 378 STRCPY "+/-: " |
0 | 379 movlw '+' |
380 btfsc first_FA | |
381 movlw '-' | |
382 movwf POSTINC2 | |
383 call word_processor | |
384 | |
385 WIN_TOP .155 | |
386 lfsr FSR2,letter | |
199 | 387 OUTPUTTEXT .89 ; Default: |
0 | 388 movf divemins+0,W |
389 addlw 0x04 | |
390 movwf EEADR | |
199 | 391 call read_eeprom ; Default O2 value |
0 | 392 movff EEDATA,lo |
393 output_8 | |
123 | 394 PUTC '/' |
0 | 395 movf divemins+0,W |
396 addlw 0x05 | |
397 movwf EEADR | |
199 | 398 call read_eeprom ; Default He value |
0 | 399 movff EEDATA,lo |
400 output_8 | |
123 | 401 STRCAT_PRINT " " |
0 | 402 |
403 call wait_switches ; Waits until switches are released, resets flag if button stays pressed! | |
681 | 404 call DISP_menu_cursor |
0 | 405 |
406 gassetup_loop: | |
407 call check_switches_logbook | |
408 | |
409 btfsc menubit3 | |
410 bra gassetup2 ; move cursor | |
411 | |
412 btfsc menubit2 | |
413 bra do_gassetup ; call submenu | |
414 | |
415 btfsc onesecupdate | |
575 | 416 call menu_check_dive_and_timeout ; "Goto restart" or sets sleepmode flag |
0 | 417 |
418 bcf onesecupdate ; 1 sec. functions done | |
419 | |
420 btfsc sleepmode | |
421 bra exit_gassetup | |
422 | |
423 bra gassetup_loop | |
424 | |
425 gassetup2: | |
426 incf menupos,F | |
427 movlw d'7' | |
428 cpfseq menupos ; =7? | |
429 bra gassetup3 ; No | |
430 movlw d'1' | |
431 movwf menupos | |
432 | |
433 gassetup3: | |
434 | |
435 clrf timeout_counter2 | |
681 | 436 call DISP_menu_cursor |
0 | 437 |
438 call wait_switches ; Waits until switches are released, resets flag if button stays pressed! | |
439 | |
440 bcf menubit3 ; clear flag | |
441 bra gassetup_loop | |
442 | |
443 do_gassetup: | |
444 dcfsnz menupos,F | |
445 bra next_gas_page | |
446 dcfsnz menupos,F | |
447 bra adjust_o2 | |
448 dcfsnz menupos,F | |
449 bra adjust_he | |
450 dcfsnz menupos,F | |
451 bra toggle_plus_minus_gassetup | |
452 dcfsnz menupos,F | |
453 bra restore_gas | |
454 exit_gassetup: ; exit... | |
455 movff decodata+0,menupos | |
456 incf menupos,F | |
457 bra menu_gassetup_prelist | |
458 | |
459 toggle_plus_minus_gassetup: | |
460 btg first_FA | |
461 movlw d'4' | |
462 movwf menupos | |
463 bra menu_gassetup1 ; return | |
464 | |
465 next_gas: | |
685
aebb6d039249
Use 4byte in EEPROM for diluents (Same as OC gases)
heinrichsweikamp
parents:
681
diff
changeset
|
466 movlw d'6' |
0 | 467 movwf menupos |
468 bra menu_gassetup0 ; incl. clear screen | |
469 | |
470 adjust_o2: | |
471 movf divemins+0,W ; read current value | |
472 addlw 0x06 | |
473 movwf EEADR | |
474 call read_eeprom ; Low-value | |
475 movff EEDATA,lo | |
476 | |
477 btfsc first_FA ; Minus? | |
478 bra adjust_o2_1 ; yes, minus! | |
479 | |
480 incf lo,F ; increase O2 | |
481 movlw d'101' | |
482 cpfseq lo | |
483 bra adjust_o2_2 | |
484 movlw d'4' ; LOWER O2 Limit | |
485 movwf lo | |
486 bra adjust_o2_2 | |
487 | |
488 adjust_o2_1: | |
489 decf lo,F ; decrease O2 | |
490 movlw d'3' | |
491 cpfseq lo | |
492 bra adjust_o2_2 | |
493 | |
494 movf divemins+0,W | |
495 addlw 0x07 | |
496 movwf EEADR | |
497 call read_eeprom ; read He value | |
498 | |
499 movlw d'100' | |
500 movwf lo | |
501 movf EEDATA,W ; He value | |
502 subwf lo,F ; lo=100% - He% | |
503 | |
504 adjust_o2_2: ; test if O2+He>100... | |
505 movf divemins+0,W | |
506 addlw 0x07 | |
507 movwf EEADR | |
508 call read_eeprom ; read He value | |
509 movf EEDATA,W ; He value | |
510 addwf lo,W ; add O2 value | |
511 movwf hi ; store in temp | |
512 movlw d'101' | |
513 cpfseq hi ; O2 and He > 100? | |
514 bra adjust_o2_3 ; No! | |
515 | |
516 movlw d'4' ; LOWER O2 Limit | |
517 movwf lo | |
518 | |
519 adjust_o2_3: | |
520 movf divemins+0,W ; save current value | |
521 addlw 0x06 | |
522 movwf EEADR | |
523 movff lo,EEDATA | |
524 call write_eeprom ; Low-value | |
525 | |
526 movlw d'2' | |
527 movwf menupos | |
528 bra menu_gassetup1 | |
529 | |
530 adjust_he: | |
531 movf divemins+0,W ; read current value | |
532 addlw 0x07 | |
533 movwf EEADR | |
534 call read_eeprom ; Low-value | |
535 movff EEDATA,lo | |
536 | |
537 btfsc first_FA ; Minus? | |
538 bra adjust_he_1 ; yes, minus! | |
539 | |
540 incf lo,F | |
541 movlw d'92' ; He limited to (useless) 90% | |
542 cpfseq lo | |
543 bra adjust_he_2 | |
544 clrf lo | |
545 bra adjust_he_2 | |
546 | |
547 adjust_he_1: | |
548 decf lo,F ; decrease He | |
549 movlw d'255' | |
550 cpfseq lo | |
551 bra adjust_he_2 | |
552 clrf lo | |
553 | |
554 adjust_he_2: ; test if O2+He>100... | |
555 movf divemins+0,W | |
556 addlw 0x06 | |
557 movwf EEADR | |
558 call read_eeprom ; read He value | |
559 movf EEDATA,W ; He value | |
560 addwf lo,W ; add O2 value | |
561 movwf hi ; store in temp | |
562 movlw d'101' | |
563 cpfseq hi ; O2 and He > 100? | |
564 bra adjust_he_3 ; No! | |
565 ; clrf lo ; Yes, clear He to zero | |
566 decf lo,F ; reduce He again = unchanged after operation | |
567 | |
568 adjust_he_3: | |
569 movf divemins+0,W ; save current value | |
570 addlw 0x07 | |
571 movwf EEADR | |
572 movff lo,EEDATA | |
573 call write_eeprom ; Low-value | |
574 | |
575 movlw d'3' | |
576 movwf menupos | |
577 bra menu_gassetup1 ; | |
578 | |
579 restore_gas: | |
580 movf divemins+0,W ; read Default value | |
581 addlw 0x04 | |
582 movwf EEADR | |
583 call read_eeprom ; Low-value | |
584 movff EEDATA,lo | |
585 movf divemins+0,W | |
586 addlw 0x05 | |
587 movwf EEADR | |
588 call read_eeprom ; High-value | |
589 movff EEDATA,hi | |
590 | |
591 movf divemins+0,W ; save Default value | |
592 addlw 0x06 | |
593 movwf EEADR | |
594 movff lo,EEDATA | |
595 call write_eeprom ; Low-value | |
596 movf divemins+0,W | |
597 addlw 0x07 | |
598 movwf EEADR | |
599 movff hi,EEDATA | |
600 call write_eeprom ; High-value | |
601 | |
602 movlw d'5' | |
603 movwf menupos | |
604 bra menu_gassetup1 ; | |
605 | |
606 | |
607 next_gas_page: | |
681 | 608 call DISP_ClearScreen |
0 | 609 movlw d'1' |
610 movwf menupos | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
611 bcf first_FA ; Here: =1: -, =0: + |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
612 bcf second_FA ; Here: =1: Is first gas |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
613 DISPLAYTEXT .107 ; Depth +/- |
0 | 614 DISPLAYTEXT .11 ; Exit |
615 | |
616 next_gas_page1: | |
576 | 617 call menu_pre_loop_common ; Clear some menu flags, timeout and switches |
0 | 618 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
619 WIN_TOP .65 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
620 WIN_LEFT .20 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
621 lfsr FSR2,letter |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
622 OUTPUTTEXT .88 ; First Gas? |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
623 PUTC ' ' |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
624 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
625 movlw d'33' |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
626 movwf EEADR |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
627 call read_eeprom ; Get current startgas 1-5 # into EEDATA |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
628 decf EEDATA,W ; 0-4 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
629 cpfseq decodata+0 ; =current displayed gas #? |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
630 bra menu_firstgas0 ; no, display three spaces |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
631 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
632 OUTPUTTEXT .96 ; Yes |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
633 bsf second_FA ; Is first gas |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
634 |
376
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
635 ; Do not reset change depth (Kind request from Pascal)! |
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
636 ; movf decodata+0,W ; read current value |
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
637 ; addlw d'28' ; offset in memory |
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
638 ; movwf EEADR |
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
639 ; call read_eeprom ; Low-value |
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
640 ; clrf EEDATA ; Set change depth to zero |
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
641 ; call write_eeprom ; save result in EEPROM |
ed26990716fe
first gas does not reset change depth, display fix with multigas dives in logbook
heinrichsweikamp
parents:
337
diff
changeset
|
642 ; |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
643 bra menu_firstgas1 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
644 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
645 menu_firstgas0: |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
646 bcf second_FA ; Is not first gas |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
647 STRCAT " " ; 3 spaces. |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
648 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
649 menu_firstgas1: |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
650 call word_processor |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
651 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
652 |
0 | 653 rcall gassetup_title_bar2 ; Displays the title bar with the current Gas info |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
654 WIN_TOP .125 |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
655 WIN_LEFT .20 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
656 lfsr FSR2,letter |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
657 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
658 OUTPUTTEXT .108 ; Change: |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
659 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
660 ; lo still holds change depth |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
661 bsf leftbind |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
662 output_8 |
445 | 663 STRCAT_PRINT TXT_METER2 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
664 |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
665 ; Show ppO2 after change depth |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
666 WIN_TOP .125 |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
667 WIN_LEFT .110 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
668 lfsr FSR2,letter |
0 | 669 rcall gassetup_show_ppO2 ; Display the ppO2 of the change depth with the current gas |
670 | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
671 movff xC+0,sub_a+0 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
672 movff xC+1,sub_a+1 |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
377
diff
changeset
|
673 GETCUSTOM8 d'46' ; color-code ppO2 warning [cbar] |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
674 movwf sub_b+0 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
675 clrf sub_b+1 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
676 call sub16 ; sub_c = sub_a - sub_b |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
677 btfss neg_flag |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
678 bra gassetup_color_code_ppo2_1; too high -> Warning Color! |
681 | 679 call DISP_standard_color |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
680 bra gassetup_color_code_ppo2_2 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
681 gassetup_color_code_ppo2_1: |
681 | 682 call DISP_warnings_color |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
683 gassetup_color_code_ppo2_2: |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
684 call word_processor |
681 | 685 call DISP_standard_color |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
686 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
687 WIN_TOP .95 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
688 WIN_LEFT .95 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
689 lfsr FSR2,letter |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
690 movlw '+' |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
691 btfsc first_FA |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
692 movlw '-' |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
693 movwf POSTINC2 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
694 call word_processor |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
695 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
696 ; Show MOD as "default" |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
697 WIN_TOP .155 |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
698 WIN_LEFT .20 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
699 lfsr FSR2, letter |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
700 |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
701 OUTPUTTEXT .109 ; Default: |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
702 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
703 rcall gassetup_get_mod ; compute MOD based on CF18 into lo:hi |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
704 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
705 btfsc second_FA ; Is first gas? |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
706 clrf lo ; Yes, display 0m |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
707 btfsc second_FA ; Is first gas? |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
708 clrf hi ; Yes, display 0m |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
709 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
710 output_16 |
445 | 711 STRCAT_PRINT TXT_METER3 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
712 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
713 WIN_TOP .35 |
0 | 714 WIN_LEFT .20 |
715 lfsr FSR2,letter | |
716 OUTPUTTEXT .105 ; "Active Gas? " | |
717 | |
287 | 718 ; Active gas flags in BIT0:4 .... |
0 | 719 movff decodata+0,lo ; Gas 0-4 |
720 incf lo,F ; Gas 1-5 | |
721 | |
287 | 722 read_int_eeprom d'27' ; read flag register |
0 | 723 active_gas_display: |
724 rrcf EEDATA ; roll flags into carry | |
725 decfsz lo,F ; max. 5 times... | |
726 bra active_gas_display | |
727 | |
728 btfss STATUS,C ; test carry | |
729 bra active_gas_display_no | |
730 | |
731 OUTPUTTEXT .96 ; Yes | |
732 bra active_gas_display_end | |
733 | |
734 active_gas_display_no: | |
123 | 735 STRCAT " " ; three spaces instead of "Yes" |
0 | 736 |
737 active_gas_display_end: | |
738 call word_processor | |
739 | |
740 call wait_switches ; Waits until switches are released, resets flag if button stays pressed! | |
681 | 741 call DISP_menu_cursor |
0 | 742 |
743 next_gas_page_loop: | |
744 call check_switches_logbook | |
745 | |
746 btfsc menubit3 | |
747 bra next_gas_page2 ; move cursor | |
748 | |
749 btfsc menubit2 | |
750 bra do_next_gas_page ; call submenu | |
751 | |
752 btfsc onesecupdate | |
575 | 753 call menu_check_dive_and_timeout ; "Goto restart" or sets sleepmode flag |
0 | 754 |
755 bcf onesecupdate ; 1 sec. functions done | |
756 | |
571
7f5419d4157d
timeout for 2nd page of Gas Setup, ceiling allingment
heinrichsweikamp
parents:
532
diff
changeset
|
757 btfsc sleepmode |
7f5419d4157d
timeout for 2nd page of Gas Setup, ceiling allingment
heinrichsweikamp
parents:
532
diff
changeset
|
758 bra exit_gassetup |
7f5419d4157d
timeout for 2nd page of Gas Setup, ceiling allingment
heinrichsweikamp
parents:
532
diff
changeset
|
759 |
0 | 760 bra next_gas_page_loop |
761 | |
762 next_gas_page2: | |
763 incf menupos,F | |
764 | |
765 movlw d'7' | |
766 cpfseq menupos ; =7? | |
767 bra next_gas_page3 ; No | |
768 movlw d'1' | |
769 movwf menupos | |
770 | |
771 next_gas_page3: | |
772 clrf timeout_counter2 | |
681 | 773 call DISP_menu_cursor |
0 | 774 |
775 call wait_switches ; Waits until switches are released, resets flag if button stays pressed! | |
776 | |
777 bcf menubit3 ; clear flag | |
778 bra next_gas_page_loop | |
779 | |
780 do_next_gas_page: | |
781 dcfsnz menupos,F | |
782 bra toggle_active_gas | |
783 dcfsnz menupos,F | |
784 bra make_first_gas | |
785 dcfsnz menupos,F | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
786 bra change_gas_depth_plus_minus |
0 | 787 dcfsnz menupos,F |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
788 bra change_gas_depth_apply |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
789 dcfsnz menupos,F |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
790 bra change_gas_depth_default |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
791 bra next_gas |
0 | 792 |
793 make_first_gas: | |
794 movff decodata+0,EEDATA ; current gas (0-4) into EEDATA | |
795 incf EEDATA,F ; current gas (1-5) into EEDATA | |
796 movlw d'33' | |
797 movwf EEADR | |
798 call write_eeprom ; store in internal EEPROM | |
115 | 799 |
800 ; Set First gas to "Active" | |
801 read_int_eeprom d'27' ; read flag register | |
802 movff decodata+0,lo ; selected gas 0-4 | |
803 incf lo,F | |
804 dcfsnz lo,F | |
805 bsf EEDATA,0 | |
806 dcfsnz lo,F | |
807 bsf EEDATA,1 | |
808 dcfsnz lo,F | |
809 bsf EEDATA,2 | |
810 dcfsnz lo,F | |
811 bsf EEDATA,3 | |
812 dcfsnz lo,F | |
813 bsf EEDATA,4 | |
814 write_int_eeprom d'27' ; write flag register | |
815 | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
816 movlw d'2' |
0 | 817 movwf menupos |
818 bra next_gas_page1 | |
819 | |
820 toggle_active_gas: | |
821 read_int_eeprom d'27' ; read flag register | |
822 movff decodata+0,lo ; selected gas 0-4 | |
823 incf lo,F | |
824 dcfsnz lo,F | |
825 btg EEDATA,0 | |
826 dcfsnz lo,F | |
827 btg EEDATA,1 | |
828 dcfsnz lo,F | |
829 btg EEDATA,2 | |
830 dcfsnz lo,F | |
831 btg EEDATA,3 | |
832 dcfsnz lo,F | |
833 btg EEDATA,4 | |
834 write_int_eeprom d'27' ; write flag register | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
835 movlw d'1' |
0 | 836 movwf menupos |
837 bra next_gas_page1 | |
838 | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
839 change_gas_depth_apply: ; Apply +1 or -1m |
0 | 840 movf decodata+0,W ; read current value |
841 addlw d'28' ; offset in memory | |
842 movwf EEADR | |
843 call read_eeprom ; Low-value | |
844 movff EEDATA,lo | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
845 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
846 btfsc first_FA ; Minus? |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
847 bra change_gas_depth_minus ; yes, minus! |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
848 ; +1m |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
849 |
0 | 850 incf lo,F ; increase depth |
851 movlw d'100' ; Change depth limit + 1 | |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
852 cpfslt lo ; >99? |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
853 clrf lo ; Yes, set to zero m |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
854 |
0 | 855 change_gas_depth_plus2: |
856 movff lo,EEDATA ; write result | |
857 call write_eeprom ; save result in EEPROM | |
858 movlw d'4' | |
859 movwf menupos | |
860 bra next_gas_page1 | |
861 | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
862 change_gas_depth_minus: |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
863 ; -1m |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
864 decf lo,F ; decrease depth |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
865 btfsc lo,7 ; 255? |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
866 clrf lo ; Yes, stay at zero m |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
867 bra change_gas_depth_plus2 ; exit |
0 | 868 |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
869 change_gas_depth_plus_minus: |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
870 btg first_FA |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
871 movlw d'3' |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
872 movwf menupos |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
873 bra next_gas_page1 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
874 |
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
875 change_gas_depth_default: |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
876 rcall gassetup_get_mod ; compute MOD based on CF18 into lo:hi |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
877 |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
878 movlw d'99' |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
879 cpfslt lo |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
880 movwf lo ; limit to 99m |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
881 |
377
be71e563ac09
First gas can be reset to 0m, test for timer1 race condition
heinrichsweikamp
parents:
376
diff
changeset
|
882 btfsc second_FA ; Is first gas? |
be71e563ac09
First gas can be reset to 0m, test for timer1 race condition
heinrichsweikamp
parents:
376
diff
changeset
|
883 clrf lo ; Yes, set to 0m |
be71e563ac09
First gas can be reset to 0m, test for timer1 race condition
heinrichsweikamp
parents:
376
diff
changeset
|
884 |
0 | 885 movf decodata+0,W ; read current value |
886 addlw d'28' ; offset in memory | |
887 movwf EEADR | |
377
be71e563ac09
First gas can be reset to 0m, test for timer1 race condition
heinrichsweikamp
parents:
376
diff
changeset
|
888 ; call read_eeprom ; Low-value |
0 | 889 movff lo,EEDATA ; write result |
890 call write_eeprom ; save result in EEPROM | |
891 | |
892 movlw d'5' | |
893 movwf menupos | |
894 bra next_gas_page1 | |
895 | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
896 |
0 | 897 ; Changed v1.44se |
898 gassetup_title_bar2: | |
717 | 899 ; call DISP_topline_box |
900 call DISP_divemask_color | |
0 | 901 WIN_TOP .2 |
902 WIN_LEFT .0 | |
903 lfsr FSR2,letter | |
904 OUTPUTTEXT .95 ; Gas# | |
905 movff decodata+0,lo | |
906 incf lo,F | |
907 bsf leftbind | |
908 output_99 | |
123 | 909 STRCAT_PRINT ": " |
0 | 910 |
911 WIN_TOP .2 | |
912 WIN_LEFT .50 | |
913 lfsr FSR2,letter | |
914 | |
915 ;He check | |
916 movf divemins+0,W | |
917 addlw 0x07 | |
918 movwf EEADR | |
919 call read_eeprom ; He value | |
920 movff EEDATA,lo ; Move EEData -> lo | |
921 movf lo,f ; Move lo -> f | |
922 movlw d'0' ; Move 0 -> WREG | |
923 cpfsgt lo ; He > 0? | |
924 bra gassetup_title_bar3 ; NO check o2 | |
925 | |
926 ; YES Write TX 15/55 | |
642 | 927 STRCAT TXT_TX3 |
0 | 928 movf divemins+0,W |
929 addlw 0x06 | |
930 movwf EEADR | |
931 call read_eeprom ; O2 value | |
932 movff EEDATA,lo | |
933 output_8 ; Write O2 | |
123 | 934 PUTC '/' |
0 | 935 movf divemins+0,W |
936 addlw 0x07 | |
937 movwf EEADR | |
938 call read_eeprom ; He value | |
939 movff EEDATA,lo | |
940 output_8 ; Write He | |
941 bra gassetup_title_bar7 | |
942 | |
943 ; New v1.44se | |
944 gassetup_title_bar3: ; O2 Check | |
945 movf divemins+0,W | |
946 addlw 0x06 | |
947 movwf EEADR | |
948 call read_eeprom ; O2 value | |
949 movff EEDATA,lo | |
950 movf lo,f ; Move lo -> f | |
951 movlw d'21' ; Move 21 -> WREG | |
952 cpfseq lo ; o2 = 21 | |
953 cpfsgt lo ; o2 > 21% | |
954 bra gassetup_title_bar5 ; NO AIR | |
955 movlw d'100' ; Move 100 -> WREG | |
956 cpfslt lo ; o2 < 100% | |
957 bra gassetup_title_bar4 ; NO write O2 | |
958 | |
959 ; YES Write NX 32 | |
642 | 960 STRCAT TXT_NX3 |
0 | 961 output_8 |
962 bra gassetup_title_bar7 | |
963 | |
964 ; New v1.44se | |
965 gassetup_title_bar4: | |
445 | 966 STRCAT TXT_O2_3 |
0 | 967 output_8 |
968 bra gassetup_title_bar7 | |
969 | |
970 ; New v1.44se | |
971 gassetup_title_bar5: | |
972 cpfseq lo ; o2 = 21% | |
973 bra gassetup_title_bar6 | |
974 | |
445 | 975 STRCAT TXT_AIR4 |
0 | 976 output_8 |
977 bra gassetup_title_bar7 | |
978 | |
979 ; New v1.44se | |
980 gassetup_title_bar6: ; ERROR | |
445 | 981 STRCAT TXT_ERR4 |
0 | 982 output_8 |
642 | 983 ;bra gassetup_title_bar7 |
0 | 984 |
985 gassetup_title_bar7: | |
532 | 986 STRCAT TXT_AT4 |
0 | 987 movf decodata+0,W ; read current value |
988 addlw d'28' ; offset in memory | |
989 movwf EEADR | |
990 call read_eeprom ; Low-value | |
991 movff EEDATA,lo | |
992 output_8 | |
445 | 993 STRCAT_PRINT TXT_METER2 |
717 | 994 call DISP_standard_color |
0 | 995 return |
996 | |
997 gassetup_show_ppO2: | |
998 movf divemins+0,W | |
999 addlw 0x06 | |
1000 movwf EEADR | |
1001 call read_eeprom ; O2 value | |
1002 movff EEDATA,hi | |
1003 | |
1004 movf decodata+0,W ; read current value | |
1005 addlw d'28' ; offset in memory | |
1006 movwf EEADR | |
1007 call read_eeprom ; Change depth in m | |
1008 movff EEDATA,lo | |
1009 movlw d'10' | |
1010 addwf lo,F ; Depth+10m=lo | |
1011 movf hi,W | |
1012 mulwf lo ; (Depth+10m)*O2 | |
1013 movff PRODL,xA+0 | |
1014 movff PRODH,xA+1 | |
1015 movlw d'10' | |
1016 movwf xB+0 | |
1017 clrf xB+1 | |
1018 call div16x16 ;xA/xB=xC with xA as remainder | |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
377
diff
changeset
|
1019 movff xC+0,lo ; ((Depth+10m)*O2)/10 = [0.01bar] ppO2 |
0 | 1020 movff xC+1,hi |
1021 output_16dp d'3' | |
297
ceedf078b2d8
Gas Setup page 2 reworked, Texts 107, 108, 109,150, 149, 168, 42, 43, 53,54,55, 165 need update in french, spanish and german
Heinrichsweikamp
parents:
290
diff
changeset
|
1022 OUTPUTTEXT d'150' ; bar: |
35 | 1023 return |
1024 | |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1025 gassetup_get_mod: |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1026 GETCUSTOM8 .18 ; ppO2 warnvalue in WREG |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1027 mullw d'10' |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1028 movff PRODL,xA+0 |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
377
diff
changeset
|
1029 movff PRODH,xA+1 ; ppO2 in [0.01bar] * 10 |
299
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1030 movf divemins+0,W |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1031 addlw 0x06 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1032 movwf EEADR |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1033 call read_eeprom ; O2 value |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1034 movff EEDATA,xB+0 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1035 clrf xB+1 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1036 call div16x16 ; xA/xB=xC with xA as remainder |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1037 movlw d'10' |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1038 subwf xC+0,F ; Subtract 10m... |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1039 movff xC+0,lo |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1040 movlw d'0' |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1041 subwfb xC+1,F |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1042 movff xC+1,hi |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1043 return |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1044 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1045 |
eac799f69360
some cleanup, french and german texts updated
heinrichsweikamp
parents:
297
diff
changeset
|
1046 |
227 | 1047 ;============================================================================= |
287 | 1048 ; Make sure first gas is marked active. |
1049 ; Note: - Gas are not soted anymore. | |
1050 ; - Gas with a depth>0 should not be forced active, or it is impossible | |
1051 ; to de-activate them. | |
1052 gassetup_sort_gaslist: | |
286 | 1053 |
287 | 1054 clrf EEADRH ; Select EEPROM lower page. |
1055 read_int_eeprom d'33' ; Get First gas (1-5) | |
1056 movff EEDATA,lo ; into register lo | |
286 | 1057 |
287 | 1058 read_int_eeprom d'27' ; Read selected gases |
286 | 1059 |
287 | 1060 dcfsnz lo,F ; If lo==1 |
1061 bsf EEDATA,0 ; Select Gas1 | |
1062 dcfsnz lo,F ; If lo==2 | |
1063 bsf EEDATA,1 ; Select Gas2 | |
1064 dcfsnz lo,F | |
1065 bsf EEDATA,2 | |
1066 dcfsnz lo,F | |
1067 bsf EEDATA,3 | |
1068 dcfsnz lo,F | |
1069 bsf EEDATA,4 | |
1070 | |
1071 ; Copy result to register: | |
290
4dbff2aa31ee
Hunting for refusing to ignore disabled gas in list...
JeanDo
parents:
287
diff
changeset
|
1072 movff EEDATA,gaslist_active |
287 | 1073 |
1074 ; And write to EEPROM too, to survive next reboot: | |
1075 write_int_eeprom d'27' | |
286 | 1076 |
1077 return | |
281 | 1078 |
287 | 1079 ;============================================================================= |
35 | 1080 ; EEPROM Locations of Gaslist |
1081 ; Gas1: | |
1082 ; O2 Default:4 | |
1083 ; He Default:5 | |
1084 ; O2 Current:6 | |
1085 ; He Current:7 | |
1086 ; Change: 28 | |
1087 ; Active: 27,0 | |
1088 | |
1089 ; Gas2: | |
1090 ; O2 Default:8 | |
1091 ; He Default:9 | |
1092 ; O2 Current:10 | |
1093 ; He Current:11 | |
1094 ; Change: 29 | |
1095 ; Active: 27,1 | |
1096 | |
1097 ; Gas3: | |
1098 ; O2 Default:12 | |
1099 ; He Default:13 | |
1100 ; O2 Current:14 | |
1101 ; He Current:15 | |
1102 ; Change: 30 | |
1103 ; Active: 27,2 | |
1104 | |
1105 ; Gas4: | |
1106 ; O2 Default:16 | |
1107 ; He Default:17 | |
1108 ; O2 Current:18 | |
1109 ; He Current:19 | |
1110 ; Change: 31 | |
1111 ; Active: 27,3 | |
1112 | |
1113 ; Gas5: | |
1114 ; O2 Default:20 | |
1115 ; He Default:21 | |
1116 ; O2 Current:22 | |
1117 ; He Current:23 | |
1118 ; Change: 32 | |
1119 ; Active: 27,4 |