Mercurial > public > mk2
comparison code_part1/OSTC_code_asm_part1/dive_icons.asm @ 110:8aa8acada0fd
Display deco-type icon in surface mode.
| author | JeanDo |
|---|---|
| date | Wed, 22 Dec 2010 03:23:55 +0100 |
| parents | |
| children | e0f29e20bd24 |
comparison
equal
deleted
inserted
replaced
| 109:6e635bf5b7a7 | 110:8aa8acada0fd |
|---|---|
| 1 ;============================================================================= | |
| 2 ; | |
| 3 ; File dive_icons.asm | |
| 4 ; | |
| 5 ; Draw Air/Nitrox/Trimix colored icon on surface mode. | |
| 6 ; | |
| 7 ; This program is free software: you can redistribute it and/or modify | |
| 8 ; it under the terms of the GNU General Public License as published by | |
| 9 ; the Free Software Foundation, either version 3 of the License, or | |
| 10 ; (at your option) any later version. | |
| 11 ; | |
| 12 ; This program is distributed in the hope that it will be useful, | |
| 13 ; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 ; GNU General Public License for more details. | |
| 16 ; | |
| 17 ; You should have received a copy of the GNU General Public License | |
| 18 ; along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 19 ; | |
| 20 ; Copyright (c) 2010, JD Gascuel. | |
| 21 ;============================================================================= | |
| 22 ; HISTORY | |
| 23 ; 2010-12-21 : [jDG] Creation | |
| 24 ; | |
| 25 ; RATIONALS: Enabled gazes are used to predict TTS in divemode, hence they | |
| 26 ; are a critical aspect that should be double-checked before dive. | |
| 27 ; | |
| 28 ;============================================================================= | |
| 29 ; Display either Air, Nitrox, or Trimix icon (in surface mode). | |
| 30 ; Inputs: None: explore the gaz list. | |
| 31 ; Ouputs: None. | |
| 32 ; Trashed: hi:lo, PROD, and registers trashed by color_processor.asm | |
| 33 dive_type_icons: | |
| 34 ;---- Common setup ----------------------------------------------- | |
| 35 movlw .170 | |
| 36 movff WREG, img_top | |
| 37 movlw .110 | |
| 38 movff WREG, img_left | |
| 39 movlw UPPER(dive_air_block) | |
| 40 movwf TBLPTRU | |
| 41 | |
| 42 ;---- Explore gazlist -------------------------------------------- | |
| 43 ; EEADR+0 = O2% | |
| 44 ; EEADR+1 = He% | |
| 45 ; EEADR+4 = next gaz O2% | |
| 46 | |
| 47 read_int_eeprom d'27' ; read gas flag register --> hi | |
| 48 movff EEDATA,hi | |
| 49 movlw 5 ; Number of gas to check --> lo | |
| 50 movwf lo | |
| 51 movlw 6-4 ; Gas list start in eeprom. | |
| 52 movwf EEADR | |
| 53 clrf PRODL ; =0 : no nitrox found yet. | |
| 54 | |
| 55 dive_type_loop: | |
| 56 movlw 4 ; Advance to next gas data in EEPROM. | |
| 57 addwf EEADR,F | |
| 58 rrcf hi ; Check next enabled flag ? | |
| 59 bnc dive_type_loop_9 ; Disabled. | |
| 60 | |
| 61 call read_eeprom ; Read O2 % | |
| 62 movlw .21 | |
| 63 cpfseq EEDATA ; O2 == 21% ? | |
| 64 setf PRODL ; NO: not simple air ! | |
| 65 | |
| 66 incf EEADR ; Read He % | |
| 67 call read_eeprom | |
| 68 decf EEADR | |
| 69 clrf WREG ; H2 == 0% ? | |
| 70 cpfseq EEDATA | |
| 71 bra dive_trimix_icon ; No: go for the Tx icon, now. | |
| 72 | |
| 73 dive_type_loop_9: | |
| 74 decfsz lo ; More gas ? | |
| 75 bra dive_type_loop ; YES: loop... | |
| 76 | |
| 77 btfsc PRODL,0 ; Did we find a nitrox gaz ? | |
| 78 bra dive_nitrox_icon ; YES: display nitrox icon.;. | |
| 79 | |
| 80 ;---- Draw air --------------------------------------------------- | |
| 81 dive_air_icon: | |
| 82 movlw HIGH(dive_air_block) | |
| 83 movwf TBLPTRH | |
| 84 movlw LOW(dive_air_block) | |
| 85 movwf TBLPTRL | |
| 86 bra dive_gaz_99 | |
| 87 | |
| 88 dive_nitrox_icon: | |
| 89 movlw HIGH(dive_nitrox_block) | |
| 90 movwf TBLPTRH | |
| 91 movlw LOW(dive_nitrox_block) | |
| 92 movwf TBLPTRL | |
| 93 bra dive_gaz_99 | |
| 94 | |
| 95 dive_trimix_icon: | |
| 96 movlw HIGH(dive_trimix_block) | |
| 97 movwf TBLPTRH | |
| 98 movlw LOW(dive_trimix_block) | |
| 99 movwf TBLPTRL | |
| 100 | |
| 101 dive_gaz_99: | |
| 102 rcall color_image | |
| 103 movlb 1 ; Back to bank 1. | |
| 104 return | |
| 105 | |
| 106 ;============================================================================= | |
| 107 | |
| 108 #include dive_air.inc | |
| 109 #include dive_nitrox.inc | |
| 110 #include dive_trimix.inc | |
| 111 |
