Mercurial > public > hwos_code
annotate src/simulator.asm @ 567:4ce70e3f00be
minor
| author | heinrichsweikamp |
|---|---|
| date | Thu, 08 Feb 2018 13:23:53 +0100 |
| parents | b7eb98dbd800 |
| children | b455b31ce022 |
| rev | line source |
|---|---|
| 0 | 1 ;============================================================================= |
| 2 ; | |
| 560 | 3 ; File simulator.asm REFACTORED VERSION V2.95a1 |
| 0 | 4 ; |
| 5 ; Decoplan interface to C model code. | |
| 6 ; | |
| 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | |
| 8 ;============================================================================= | |
| 9 ; HISTORY | |
| 10 ; 2011-07-09 : [jDG] Creation... | |
| 11 | |
| 560 | 12 #include "hwos.inc" ; Mandatory include |
| 0 | 13 #include "convert.inc" ; output_* |
| 14 #include "shared_definitions.h" ; Mailbox from/to p2_deco.c | |
| 15 #include "strings.inc" ; STRCPY,... | |
| 16 #include "tft.inc" ; WIN_LEFT,... | |
| 17 #include "wait.inc" ; speed_* | |
| 18 #include "start.inc" | |
| 19 #include "divemode.inc" | |
| 20 #include "math.inc" | |
| 21 #include "eeprom_rs232.inc" | |
| 50 | 22 #include "tft_outputs.inc" |
|
298
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
23 #include "gaslist.inc" |
| 0 | 24 |
| 25 gui CODE | |
| 26 | |
| 27 extern deco_clear_tissue | |
| 28 extern deco_push_tissues_to_vault | |
| 29 extern deco_calc_dive_interval | |
| 30 extern deco_calc_hauptroutine | |
| 31 extern deco_pull_tissues_from_vault | |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
32 extern TFT_display_decotype_surface1 |
| 560 | 33 extern get_first_dil_to_WREG |
| 34 extern get_first_gas_to_WREG | |
| 35 extern setup_dil_registers | |
| 36 extern setup_gas_registers | |
| 37 extern deco_setup_cc_diluents | |
| 38 extern deco_setup_oc_gases | |
| 39 | |
| 0 | 40 |
| 41 extern log_screendump_and_onesecond, logbook_preloop_tasks | |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
42 extern do_planner_menu |
| 0 | 43 |
| 44 ;---- Private temp variables ------------------------------------------------- | |
| 45 | |
| 560 | 46 CBLOCK tmp+0x12 ; Reserved space for word processor and convert |
| 47 decoplan_index ; within each page | |
| 48 decoplan_gindex ; global index | |
| 49 decoplan_last ; Depth of last stop (CF#29) | |
| 50 decoplan_flags ; Various private flags. | |
| 51 decoplan_page ; page number | |
| 52 decoplan_warnings ; deco engine warnings (ex reserved to tmp+0x18...) | |
| 53 ENDC | |
| 54 | |
| 55 ;---- Defines ---------------------------------------------------------------- | |
| 56 | |
| 57 #define decoplan_last_ceiling_shown decoplan_flags,0 | |
| 58 #define decoplan_abort decoplan_flags,1 | |
| 59 | |
| 60 ;---- Demo deco planner ------------------------------------------------------ | |
| 61 global do_demo_planner | |
| 0 | 62 |
| 63 do_demo_planner: | |
| 560 | 64 btfsc FLAG_gauge_mode ; =1: In Gauge mode |
| 65 goto do_planner_menu | |
| 66 btfsc FLAG_apnoe_mode ; =1: In Apnea mode | |
| 67 goto do_planner_menu | |
| 68 bcf decoplan_abort ; initialize (clear) abort flag | |
| 69 bcf is_bailout ; clear bailout condition (may have remained set from last invocation) | |
| 70 rcall deco_planer | |
| 71 btfss decoplan_abort ; skip recall deco_show_plan if calculations were aborted | |
| 72 rcall deco_show_plan | |
| 73 goto do_planner_menu | |
| 0 | 74 |
| 75 | |
| 560 | 76 global deco_setup |
| 0 | 77 deco_setup: |
| 560 | 78 banksel common |
| 79 btfsc FLAG_ccr_mode | |
| 80 bra deco_setup_cc | |
| 81 btfsc FLAG_pscr_mode | |
| 82 bra deco_setup_cc | |
| 83 deco_setup_oc: | |
| 84 call get_first_gas_to_WREG ; gets first gas (1-5) into WREG | |
| 85 call setup_gas_registers ; with WREG=Gas 1-5 | |
| 86 call deco_setup_oc_gases ; setup OC/Bailout Gases and configure for OC deco calculation | |
| 87 bra deco_setup_cont | |
| 88 deco_setup_cc: | |
| 89 call get_first_dil_to_WREG ; gets first gas (1-5) into WREG | |
| 90 call setup_dil_registers ; with WREG=Gas 1-5 | |
| 91 call deco_setup_cc_diluents ; setup CCR/pSCR diluents and configure for CCR/pSCR deco calculation | |
| 92 deco_setup_cont: | |
| 93 ; use ambient conditions for simulation ## V2.94 | |
| 94 #include "isr.inc" | |
| 95 SAFE_2BYTE_COPY last_surfpressure_30min, int_I_pres_surface ; copy surface pressure to deco routine | |
| 548 | 96 |
| 560 | 97 movlw deco_distance |
| 98 movff WREG,char_I_deco_distance | |
| 0 | 99 |
| 560 | 100 movff opt_last_stop,char_I_depth_last_deco |
| 101 movff opt_GF_low,char_I_GF_Low_percentage | |
| 102 movff opt_GF_high,char_I_GF_High_percentage | |
| 103 | |
| 104 ; overwrite GF if aGF is wanted | |
| 105 bsf use_agf | |
| 106 TSTOSS opt_sim_use_aGF | |
| 107 bcf use_agf | |
| 0 | 108 |
| 560 | 109 btfsc use_agf ; =1: Use aGF |
| 110 movff opt_aGF_low,char_I_GF_Low_percentage | |
| 111 btfsc use_agf ; =1: Use aGF | |
| 112 movff opt_aGF_high,char_I_GF_High_percentage | |
| 0 | 113 |
| 560 | 114 bcf is_bailout |
| 115 | |
| 116 ; setup char_I_const_ppO2 for CC modes | |
| 117 clrf WREG | |
| 118 btfsc FLAG_pscr_mode | |
| 119 movff WREG,char_I_const_ppO2 ; configure pSCR computations to calculated ppO2 | |
| 120 btfss FLAG_ccr_mode | |
| 121 return ; done if not in CCR mode | |
| 122 movff opt_sim_setpoint_number,WREG ; configure CCR computations to selected setpoint | |
| 123 decf WREG,W ; 1-5 -> 0-4 | |
| 124 lfsr FSR1,char_I_setpoint_cbar ; load base address of setpoint list | |
| 125 movff PLUSW1,char_I_const_ppO2 ; setup setpoint | |
| 126 return | |
| 127 | |
| 0 | 128 ;============================================================================= |
| 560 | 129 ; Launch deco planning |
| 0 | 130 ; |
| 560 | 131 global deco_planer |
| 0 | 132 deco_planer: |
| 560 | 133 call speed_fastest ; Quick ! |
| 134 call deco_push_tissues_to_vault | |
| 135 rcall deco_setup ; Setup all model parameters. | |
| 0 | 136 |
| 137 ;---- Specific settings ------------------------------------------------------ | |
| 560 | 138 |
| 139 ; configure the deco engine for normal plan, CNS & gas volume calculation and no delayed ascent | |
| 140 movff char_O_deco_status,WREG ; bank-safe copy | |
| 141 bcf WREG,DECO_PLAN_FLAG ; normal plan mode, | |
| 142 bsf WREG,DECO_CNS_FLAG ; enable CNS calculation (CNS at end of dive), | |
| 143 bsf WREG,DECO_VOLUME_FLAG ; enable gas volume calculation, and | |
| 144 bcf WREG,DECO_ASCENT_FLAG ; disable delayed ascent calculation | |
| 145 movff WREG,char_O_deco_status ; bank-safe copy back | |
| 146 | |
| 147 ; configure the deco engine for total-dive gas volume calculation | |
| 148 movff char_O_main_status,WREG ; bank-safe copy | |
| 149 bsf WREG,DECO_BOTTOM_FLAG ; set bottom flag | |
| 150 movff WREG,char_O_main_status ; bank-safe copy back | |
| 151 | |
|
295
7027d735ac62
NEW CCR decoplan: 2nd pass to display bailout stops and gas volumes
jDG
parents:
294
diff
changeset
|
152 deco_planer_redo: |
| 560 | 153 |
| 154 ; show deco calculation is in progress | |
| 155 call TFT_ClearScreen | |
| 156 WIN_COLOR color_greenish | |
| 157 TEXT_SMALL .20,.40, tCalculating | |
| 158 WIN_COLOR color_lightblue | |
| 159 WIN_SMALL .1,.215 | |
| 160 STRCPY_TEXT_PRINT tAbort | |
| 161 | |
| 162 ; configure the deco engine for restart: | |
| 163 movff char_O_deco_status,WREG ; bank-safe copy | |
| 164 bsf WREG,DECO_STATUS_0_FLAG ; configure init ... | |
| 165 bsf WREG,DECO_STATUS_1_FLAG ; ... state, | |
| 166 movff WREG,char_O_deco_status ; bank-safe copy back | |
| 0 | 167 |
| 168 ;---- Add delay at surface, if needed ---------------------------------------- | |
| 560 | 169 |
| 170 banksel char_I_dive_interval | |
| 0 | 171 tstfsz char_I_dive_interval |
| 172 call deco_calc_dive_interval | |
| 173 | |
| 174 ;---- Dive loop -------------------------------------------------------------- | |
| 175 | |
| 560 | 176 ; Compute dive ambient conditions |
| 0 | 177 banksel char_I_bottom_depth |
| 178 movf char_I_bottom_depth,W | |
| 179 mullw .100 | |
| 180 movlw LOW(.1000) | |
| 181 addwf PRODL,W | |
| 182 movwf int_I_pres_respiration+0 | |
| 183 movlw HIGH(.1000) | |
| 184 addwfc PRODH,W | |
| 185 movwf int_I_pres_respiration+1 | |
| 560 | 186 |
| 187 banksel common | |
| 0 | 188 |
| 560 | 189 movff char_I_bottom_time,char_I_sim_advance_time |
| 190 | |
| 191 clrf TMR5L | |
| 192 clrf TMR5H ; 30,51757813µs/bit in TMR5L:TMR5H | |
| 0 | 193 |
| 560 | 194 call deco_calc_hauptroutine ; initialization + complete bottom time part |
| 195 banksel common | |
| 196 | |
| 197 ;---- BAILOUT: Switch to OC gases for ascent cycles -------------------------- | |
| 0 | 198 |
| 560 | 199 btfss is_bailout ; Doing a bailout deco plan ? |
| 200 bra deco_planer_finishing ; NO - keep gases | |
| 201 ; YES - switch to OC gas | |
| 111 | 202 |
| 560 | 203 ; reconfigure the deco engine for delayed ascent mode |
| 204 movff char_O_deco_status,lo ; bank-safe copy | |
| 205 bsf lo,DECO_ASCENT_FLAG ; set flag for delayed ascent calculation | |
| 206 movff lo,char_O_deco_status ; bank-safe copy back | |
| 207 | |
| 208 ; configure the deco engine for delayed ascent part gas volume calculation | |
| 209 movff char_O_main_status,WREG ; bank-safe copy | |
| 210 bcf WREG,DECO_BOTTOM_FLAG ; set bottom flag | |
| 211 movff WREG,char_O_main_status ; bank-safe copy back | |
| 0 | 212 |
| 560 | 213 ; reconfigure gas settings to OC gases |
| 214 call get_first_gas_to_WREG ; get first gas (1-5) into WREG | |
| 215 call setup_gas_registers ; With WREG=Gas 1-5 (or 6, not applicable here) | |
| 216 call deco_setup_oc_gases ; With WREG=Gas 1-5 (or 6, not applicable here) | |
| 217 | |
| 218 ; set the gas change override flag to allow gas changes before deco stops as done in alternative plan | |
| 219 movff char_O_main_status,lo ; bank-safe copy | |
| 220 bsf lo,DECO_GASCHANGE_OVRD ; set flag for gas change override | |
| 221 movff lo,char_O_main_status ; bank-safe copy back | |
| 222 | |
| 223 ;---- Wait until status reaches zero ------------------------------------------- | |
| 0 | 224 |
| 225 deco_planer_finishing: | |
| 560 | 226 call deco_calc_hauptroutine ; Simulate more dive time to trigger the deco calculations |
| 227 banksel common | |
| 228 | |
| 229 btfss switch_left ; check if left button was pressed | |
| 230 bra deco_planer_finishing_1 ; NO - continue calculations | |
| 231 bsf decoplan_abort ; YES - set abort flag so that deco_show_plan will not be called | |
| 232 bra deco_planer_finishing_2 ; do some clean-up and return | |
| 233 deco_planer_finishing_1: | |
| 234 movff char_O_deco_status,lo ; working copy of char_O_deco_status in bank common | |
| 235 movlw DECO_STATUS_MASK ; bit mask for deco status bit set | |
| 236 andwf lo,W ; mask out bits showing state of computation | |
| 237 tstfsz WREG ; check if a compute cycle is finished (bits 1 and 0 == 0) | |
| 238 bra deco_planer_finishing ; NO - needs more computation cycles | |
|
295
7027d735ac62
NEW CCR decoplan: 2nd pass to display bailout stops and gas volumes
jDG
parents:
294
diff
changeset
|
239 |
|
296
af13a18a233b
Slight more efficient bail deco, Test with 2 bail tanks.
jDG
parents:
295
diff
changeset
|
240 ;---- Done: add CNS from decoplan, and restore tissues |
| 560 | 241 |
| 242 deco_planer_finishing_2: | |
| 243 | |
| 244 movff char_O_deco_warnings,decoplan_warnings ; copy warnings | |
| 245 | |
| 246 call deco_pull_tissues_from_vault ; restore "real" deco data | |
| 247 banksel common ; back to bank 1 | |
| 248 | |
| 249 movlw b'00111000' ; 1:8 Prescaler -> 65,536ms@16MHz | |
| 250 movwf T3CON | |
| 251 goto speed_normal ;(and return) | |
| 0 | 252 |
| 253 ;----------------------------------------------------------------------------- | |
| 254 ; Draw a stop of the deco plan (simulator or dive). | |
| 255 ; Inputs: lo = depth. Range 3m...93m | |
| 560 | 256 ; + 0x80 if this is a switch-gas stop. |
| 0 | 257 ; up = minutes. range 1'..240'. |
| 258 ; win_top = line to draw on screen. | |
| 259 ; Trashed: up, lo, win_height, win_leftx2, win_width, win_color*, | |
| 260 ; WREG, PROD, TBLPTR TABLAT. | |
| 261 ; | |
| 262 deco_plan_show_stop: | |
| 263 | |
| 560 | 264 ;---- Print depth ---------------------------------------------------- |
| 265 bcf lo,7 ; clear gas-switch flag (not used any more anyhow) | |
| 266 lfsr FSR2,char_O_deco_gas | |
| 267 movf decoplan_gindex,W ; index | |
| 268 movff PLUSW2,WREG ; get current gas | |
| 269 rcall simulator_color_gas ; set output color dependent on gas (1-5) | |
| 0 | 270 |
| 271 lfsr FSR2,buffer | |
| 272 | |
| 560 | 273 TSTOSS opt_units ; 0=Meters, 1=Feets |
| 0 | 274 bra deco_plan_show_nstd_stop_metric |
| 275 | |
| 276 WIN_LEFT .85 | |
| 277 movf lo,W ; lo = m | |
| 278 mullw .100 ; PRODL:PRODH = mbar | |
| 279 movff PRODL,lo | |
| 280 movff PRODH,hi | |
| 560 | 281 ; Convert with 334feet/100m to have 10ft, 20ft, 30ft stops... |
| 0 | 282 movff lo,xA+0 |
| 283 movff hi,xA+1 | |
| 284 movlw LOW d'334' ; 334feet/100m | |
| 285 movwf xB+0 | |
| 286 movlw HIGH d'334' | |
| 287 movwf xB+1 | |
| 288 call mult16x16 ; xA*xB=xC (lo:hi * 328) | |
| 289 movlw d'50' ; round up | |
| 290 addwf xC+0,F | |
| 291 movlw 0 | |
| 292 addwfc xC+1,F | |
| 293 addwfc xC+2,F | |
| 294 addwfc xC+3,F | |
| 295 movlw d'100' | |
| 296 movwf xB+0 | |
| 297 clrf xB+1 | |
| 298 call div32x16 ; xC:4 / xB:2 = xC+3:xC+2 with xC+1:xC+0 as remainder | |
| 299 movff xC+0,lo | |
| 300 movff xC+1,hi ; restore lo and hi with updated value | |
| 301 bsf leftbind | |
| 302 bsf ignore_digit4 ; Only full feet | |
| 303 output_16 | |
| 560 | 304 bcf leftbind |
| 0 | 305 STRCAT_PRINT "ft " |
| 306 bra deco_plan_show_nstd_stop_common | |
| 307 | |
| 308 deco_plan_show_nstd_stop_metric: | |
| 309 WIN_LEFT .90 | |
| 310 bsf leftbind | |
| 311 output_8 ; outputs into Postinc2! | |
| 560 | 312 bcf leftbind |
| 0 | 313 STRCAT_PRINT "m " |
| 314 deco_plan_show_nstd_stop_common: | |
| 315 ;---- Print duration ------------------------------------------------- | |
| 316 WIN_LEFT .135 | |
| 317 lfsr FSR2,buffer | |
| 318 | |
| 319 movf lo,W ; Swap up & lo | |
| 320 movff up,lo | |
| 321 movwf up | |
| 322 | |
| 323 output_8 ; Allow up to 240' | |
| 371 | 324 STRCAT "' " ; 1 to 3 chars for depth. |
| 325 clrf WREG | |
| 326 movff WREG,buffer+.3 ; limit to 4 chars | |
| 327 STRCAT_PRINT "" | |
| 0 | 328 |
| 329 movf lo,W ; Swap back up & lo | |
| 330 movff up,lo | |
| 331 movwf up | |
| 332 | |
| 333 ;--------------------------------------------------------------------- | |
| 560 | 334 ; Draw the bar graph used for deco stops (deco plan in simulator or dive). |
| 0 | 335 incf win_top,F |
| 336 movlw .19 | |
| 337 movwf win_height | |
| 338 movlw .118 | |
| 339 movwf win_leftx2 ; column left (0-159) | |
| 340 movlw .16 | |
| 432 | 341 movwf win_width+0 ; column max width. |
| 560 | 342 clrf win_width+1 |
| 0 | 343 |
| 344 ; Draw used area (up = minutes): | |
| 345 movlw .16 ; Limit length (16min) | |
| 346 cpfslt up | |
| 347 movwf up | |
| 348 movff up,win_bargraph ; Active width, the rest is cleared. | |
| 349 call TFT_box | |
| 350 | |
| 351 ; Restore win_top | |
| 50 | 352 call TFT_standard_color |
| 0 | 353 decf win_top,F ; Restore win_top |
| 354 return | |
| 355 | |
| 356 ;----------------------------------------------------------------------------- | |
| 560 | 357 ; Clear unused area below last stop |
| 0 | 358 ; Inputs: win_top : last used area... |
| 359 deco_plan_show_clear_bottom: | |
| 360 movf win_top,W ; Get back from bank0 | |
| 371 | 361 sublw .239 ; No: bottom row in planning |
| 0 | 362 movwf win_height |
| 363 | |
| 560 | 364 WIN_LEFT .85 ; Full dive menu width |
| 371 | 365 movlw .159-.85+1 |
| 432 | 366 movwf win_width+0 |
| 560 | 367 clrf win_width+1 |
| 0 | 368 |
| 369 clrf win_color1 ; Fill with black | |
| 370 clrf win_color2 | |
| 371 | |
| 560 | 372 goto TFT_box ; and return |
| 0 | 373 |
| 374 ;----------------------------------------------------------------------------- | |
| 560 | 375 ; Display the deco plan (simulator). |
| 0 | 376 ; Inputs: char_O_deco_table (array of stop times, in minutes) |
| 377 ; decoplan_page = page number. | |
| 378 ; | |
| 379 deco_show_plan_page: | |
|
189
e79bc535ef9e
ignore un-calibrated sensors even if they become valid
heinrichsweikamp
parents:
178
diff
changeset
|
380 bcf win_invert ; Reset invert flag |
| 0 | 381 |
| 382 ;---- Is there deco stops ? ------------------------------------------ | |
| 383 movff char_O_first_deco_depth,WREG | |
| 384 iorwf WREG | |
| 385 bnz deco_plan_show_1 | |
| 386 | |
| 387 ;---- No Deco -------------------------------------------------------- | |
| 50 | 388 call TFT_standard_color |
| 0 | 389 TEXT_SMALL .80, .0, tNoDeco |
| 390 bsf decoplan_last_ceiling_shown | |
| 391 return | |
| 392 | |
| 393 deco_plan_show_1: | |
| 394 lfsr FSR0,char_O_deco_depth ; Initialize indexed addressing. | |
| 395 lfsr FSR1,char_O_deco_time | |
| 396 | |
| 397 clrf decoplan_index ; Start with index = 0 | |
| 398 clrf win_top ; and row = 0 | |
| 399 | |
| 400 ; Read stop parameters, indexed by decoplan_index and decoplan_page | |
| 401 movf decoplan_page,W ; decoplan_gindex = 6*decoplan_page + decoplan_index | |
| 560 | 402 mullw .8 ; 8 lines/page in deco plan |
| 0 | 403 movf decoplan_index,W |
| 404 addwf PRODL,W | |
| 405 movwf decoplan_gindex ; --> decoplan_gindex | |
| 406 | |
| 407 bcf decoplan_last_ceiling_shown ; Not finished yet... | |
| 408 | |
| 409 deco_plan_show_2: | |
| 410 btfsc decoplan_gindex,5 ; Reached table length (32) ? | |
| 411 bra deco_plan_show_99 ; YES: finished... | |
| 412 | |
| 413 ; Read stop parameters, indexed by decoplan_index | |
| 414 movf decoplan_gindex,W ; index | |
| 415 movff PLUSW1,up ; char_O_deco_time [gindex] --> up | |
| 416 movff PLUSW0,lo ; char_O_deco_depth[gindex] | |
| 417 movf lo,W | |
| 418 bz deco_plan_show_99 ; depth == 0 : finished. | |
| 419 | |
| 420 ; Display the stop line | |
| 421 rcall deco_plan_show_stop | |
| 422 | |
| 423 ; Next | |
| 424 movlw .24 | |
| 560 | 425 addwf win_top,F ; row: += 24 |
| 426 incf decoplan_index,F ; local index += 1 | |
| 427 incf decoplan_gindex,F ; global index += 1 | |
| 0 | 428 |
| 429 ; Max number of lines/page reached ? | |
| 560 | 430 movlw .8 ; 8 lines/page in deco plan |
| 0 | 431 cpfseq decoplan_index |
| 560 | 432 bra deco_plan_show_2 ; NO: loop |
| 0 | 433 |
| 560 | 434 ; Check if next stop is end-of-list ? |
| 0 | 435 movf decoplan_gindex,W |
| 560 | 436 movf PLUSW0,W ; char_O_deco_depth[gindex] |
| 437 bz deco_plan_show_99 ; End of list... | |
| 0 | 438 |
| 439 ; Display the message "more..." | |
| 440 rcall deco_plan_show_clear_bottom ; Clear from next line | |
| 441 | |
| 50 | 442 call TFT_standard_color |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
443 TEXT_SMALL .88, .220, tMore |
| 0 | 444 return |
| 445 | |
| 446 deco_plan_show_99: | |
| 447 bsf decoplan_last_ceiling_shown ; Nothing more in table to display. | |
| 448 rcall deco_plan_show_clear_bottom ; Clear from next line | |
| 449 return | |
| 450 | |
| 451 ;----------------------------------------------------------------------------- | |
| 560 | 452 ; Loop to show all pages of the deco plan (surface mode) |
| 0 | 453 |
| 454 global deco_show_plan | |
| 455 deco_show_plan: | |
| 456 clrf decoplan_page | |
| 457 call TFT_ClearScreen | |
| 458 WIN_COLOR color_greenish | |
| 560 | 459 btfsc is_bailout |
| 460 bra deco_show_plan_bail_title | |
| 0 | 461 TEXT_SMALL .1,.1, tDivePlan |
| 560 | 462 bra deco_show_plan2 |
|
462
1eeafeeb9287
CHANGE: Indicate "Bailout" for bailout deco plan in internal deco planer
heinrichsweikamp
parents:
432
diff
changeset
|
463 deco_show_plan_bail_title: |
| 560 | 464 TEXT_SMALL .1,.1, tDiveBailout |
|
462
1eeafeeb9287
CHANGE: Indicate "Bailout" for bailout deco plan in internal deco planer
heinrichsweikamp
parents:
432
diff
changeset
|
465 deco_show_plan2: |
| 560 | 466 call TFT_standard_color |
| 467 ;---- Display Plan Parameters | |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
468 WIN_SMALL .0,.25 |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
469 STRCPY "Int:" |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
470 movff char_I_dive_interval,lo |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
471 bsf leftbind |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
472 output_8 |
| 560 | 473 bcf leftbind |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
474 STRCAT_PRINT "'" |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
475 WIN_SMALL .0,.50 |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
476 STRCPY_TEXT tBtTm_short |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
477 movff char_I_bottom_time,lo |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
478 bsf leftbind |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
479 output_8 |
| 560 | 480 bcf leftbind |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
481 STRCAT_PRINT "'" |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
482 WIN_SMALL .0,.75 |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
483 STRCPY_TEXT tDepth |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
484 PUTC ":" |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
485 movff char_I_bottom_depth,lo |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
486 bsf leftbind |
|
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
487 output_8 |
| 560 | 488 bcf leftbind |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
489 STRCAT_PRINT "m" |
| 560 | 490 |
| 491 WIN_SMALL .0,.105 ; set position for warnings or sat/dsat factors | |
| 492 | |
| 493 ;---- Check for Stop Table Overflow | |
| 494 btfss decoplan_warnings,stoptable_overflow ; check if we have a overflow warning | |
| 495 bra deco_show_plan2a ; NO - skip | |
| 496 ;---- Display Overflow warning | |
| 497 call TFT_warnings_color ; YES - show overflow warning | |
| 498 STRCAT_PRINT "incomplete" ; max 10 characters | |
| 499 bra deco_show_plan_m1 ; skip displaying sat/dsat factors | |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
500 |
| 560 | 501 deco_show_plan2a: |
| 502 ;---- Check for IBCD Warning | |
| 503 btfss decoplan_warnings,IBCD_warning_lock ; check if we have a locked IBCD warning | |
| 504 bra deco_show_plan2b ; NO - skip | |
| 505 ;---- Display IBCD warning | |
| 506 call TFT_attention_color ; YES - show IBCD warning | |
| 507 STRCAT_PRINT "IBCD!" ; max 10 characters | |
| 508 bra deco_show_plan_m1 ; skip displaying sat/dsat factors | |
| 509 | |
| 510 deco_show_plan2b: | |
| 511 ;---- Display Sat/Desat Factors --> is skipped if there were warnings | |
| 512 STRCAT_PRINT "SD:" | |
| 513 WIN_SMALL .25,.105 | |
| 514 movff char_I_saturation_multiplier,lo | |
| 515 output_8 | |
| 516 STRCAT "/" | |
| 0 | 517 movff char_I_desaturation_multiplier,lo |
| 518 output_8 | |
| 560 | 519 STRCAT_PRINT "" |
| 520 | |
| 521 deco_show_plan_m1: | |
| 522 call TFT_standard_color ; clean-up from warnings | |
| 0 | 523 |
| 560 | 524 ;---- Get Model |
| 525 movff char_I_deco_model,WREG | |
| 526 iorwf WREG | |
| 527 bz deco_show_plan_m2 | |
| 528 | |
| 529 ;---- Display GF low/high values | |
| 530 WIN_SMALL .0,.130 | |
| 531 STRCAT_PRINT "GF:" | |
| 532 WIN_SMALL .25,.130 | |
| 0 | 533 movff char_I_GF_Low_percentage,lo |
| 534 output_99x | |
| 560 | 535 STRCAT "/" |
| 0 | 536 movff char_I_GF_High_percentage,lo |
| 537 output_99x | |
| 560 | 538 STRCAT_PRINT "" |
| 539 | |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
540 deco_show_plan_m2: |
| 560 | 541 ;---- Display Deco Mode |
| 542 WIN_SMALL .0,.155 | |
| 543 lfsr FSR2,buffer | |
| 544 movff opt_dive_mode,lo ; 0=OC, 1=CC, 2=Gauge, 3=Apnea, 4=PSCR | |
| 545 call TFT_display_decotype_surface1 | |
| 546 btfss FLAG_ccr_mode ; current dive mode = CCR ? | |
| 547 bra deco_show_plan2c ; NO - branch | |
| 548 WIN_SMALL .25,.155 | |
| 549 STRCPY "SP:" ; output setpoint used for calculation | |
| 550 movff opt_sim_setpoint_number,lo | |
| 551 bsf leftbind | |
| 552 output_8 | |
| 553 bcf leftbind | |
| 554 STRCAT_PRINT "" | |
| 0 | 555 |
| 560 | 556 deco_show_plan2c: |
| 0 | 557 ;---- Display TTS result |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
558 WIN_SMALL .0,.180 |
| 0 | 559 STRCPY_TEXT tTTS |
| 560 STRCAT ": " | |
| 561 movff int_O_ascenttime+0,lo | |
| 562 movff int_O_ascenttime+1,hi | |
| 563 bsf leftbind | |
| 564 output_16 | |
| 560 | 565 bcf leftbind |
| 0 | 566 STRCAT_PRINT "'" |
| 567 | |
| 568 ;---- Display CNS result | |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
569 WIN_TOP .205 |
|
471
9edb1359ce43
NEW: New Customview 11 in dive mode shows ppO2, EAD/END and CNS
heinrichsweikamp
parents:
462
diff
changeset
|
570 STRCPY_TEXT tCNS2 ; "CNS:" |
| 0 | 571 movff int_O_CNS_fraction+0,lo |
| 572 movff int_O_CNS_fraction+1,hi | |
| 560 | 573 TFT_color_code warn_cns ; Color-code CNS output |
| 574 bsf leftbind | |
| 575 output_16_3 ; limit to 999 and display only (0-999) | |
| 576 bcf leftbind | |
| 577 STRCAT "%\x92" ; "->" | |
| 578 movff int_O_normal_CNS_fraction+0,lo | |
| 579 movff int_O_normal_CNS_fraction+1,hi | |
| 580 TFT_color_code warn_cns ; Color-code CNS output | |
| 581 bsf leftbind | |
| 582 output_16_3 ; limit to 999 and display only (0-999) | |
| 583 bcf leftbind | |
| 0 | 584 STRCAT_PRINT "%" |
| 560 | 585 call TFT_standard_color |
| 0 | 586 |
| 587 ;---- Loop through pages | |
| 588 deco_show_plan_1: | |
| 560 | 589 ; Clear the complete stop result column: |
| 590 WIN_BOX_BLACK .0, .239, .80, .159 ; top, bottom, left, right | |
| 591 | |
| 0 | 592 rcall deco_show_plan_page |
| 593 incf decoplan_page,F | |
| 594 call logbook_preloop_tasks | |
| 595 deco_show_plan_2: | |
| 596 btfsc switch_right | |
| 597 bra deco_show_plan_3 | |
| 598 btfsc switch_left | |
|
208
53771bd3d567
NEW: Show plan parameters in decoplan result page
heinrichsweikamp
parents:
197
diff
changeset
|
599 return ; Return to simulator menu |
| 560 | 600 call log_screendump_and_onesecond ; Check if we need to make a screen shot and check for new second |
| 0 | 601 btfsc sleepmode ; Timeout? |
| 9 | 602 goto restart |
| 0 | 603 bra deco_show_plan_2 |
| 604 | |
| 605 deco_show_plan_3: | |
| 606 btfss decoplan_last_ceiling_shown | |
| 607 bra deco_show_plan_1 | |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
608 ; All stops shown |
| 560 | 609 |
| 610 ;---- In CCR and pSCR mode, compute a BAILOUT deco plan ----------------------- | |
|
295
7027d735ac62
NEW CCR decoplan: 2nd pass to display bailout stops and gas volumes
jDG
parents:
294
diff
changeset
|
611 |
| 560 | 612 banksel common |
| 613 movff char_O_deco_status,WREG ; get deco calculation status | |
| 614 btfss WREG,DECO_MODE_LOOP_FLAG ; check if in CCR or pSCR mode | |
| 615 bra simulator_show_decoplan5_0 ; NO - normal OC mode: just display | |
| 616 bsf is_bailout ; YES - redo 2nd deco-plan in bailout mode | |
| 617 rcall deco_planer_redo ; redo plan computation | |
|
295
7027d735ac62
NEW CCR decoplan: 2nd pass to display bailout stops and gas volumes
jDG
parents:
294
diff
changeset
|
618 |
| 560 | 619 btfss decoplan_abort ; shall we abort? |
| 620 bra deco_show_plan ; NO - display bailout stops | |
| 621 return ; YES | |
| 622 | |
|
295
7027d735ac62
NEW CCR decoplan: 2nd pass to display bailout stops and gas volumes
jDG
parents:
294
diff
changeset
|
623 |
|
7027d735ac62
NEW CCR decoplan: 2nd pass to display bailout stops and gas volumes
jDG
parents:
294
diff
changeset
|
624 ;---- In OC+BAIL modes, show the gas Usage special page ----------------------- |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
625 simulator_show_decoplan5_0: |
| 560 | 626 |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
627 movlb .1 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
628 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
629 ; Clear the complete stop result column: |
| 294 | 630 WIN_BOX_BLACK .0, .239, .80, .159 ; top, bottom, left, right |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
631 |
| 292 | 632 movlw .25 |
| 633 movwf waitms_temp ; Row for gas list is .25+.25 | |
| 634 clrf wait_temp ; Gas counter | |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
635 lfsr FSR0,int_O_gas_volumes ; Initialize indexed addressing. |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
636 |
| 292 | 637 WIN_LEFT .80 ; Set column |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
638 call TFT_standard_color |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
639 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
640 simulator_show_decoplan5_loop: |
|
298
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
641 movff wait_temp,PRODL ; Copy to PRODL first |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
642 incf wait_temp,F ; Increment gas # |
| 560 | 643 |
| 644 movff wait_temp,WREG | |
| 645 rcall simulator_color_gas ; set output color according to gas (number 1-5 in WREG) | |
| 646 | |
|
298
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
647 lfsr FSR2,buffer |
|
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
648 bsf short_gas_decriptions |
|
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
649 bsf divemode ; Tweak "customview_show_mix:" |
|
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
650 call gaslist_strcat_gas ; Input: PRODL : gas number (0..4), Output: "Nxlo", "Txlo/hi", "Air" or "O2" into Postinc2 |
|
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
651 bcf divemode ; Tweak "customview_show_mix:" |
| 292 | 652 |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
653 movlw .25 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
654 addwf waitms_temp,F ; Increase row position |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
655 movff waitms_temp,win_top ; Set Row |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
656 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
657 movff POSTINC0,lo ; Read (16bit) result, low first, |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
658 movff POSTINC0,hi ; then high. |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
659 |
| 560 | 660 movf lo,W |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
661 andwf hi,W |
| 560 | 662 incf WREG ; > 65535? |
| 663 bnz simulator_show_decoplan5_2 ; NO | |
| 664 STRCAT_PRINT ">65500" ; YES | |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
665 bra simulator_show_decoplan5_1 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
666 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
667 simulator_show_decoplan5_2: |
|
298
2fe34fc0e2ae
new submenu for gas consumption, show actual mix instead of GAS1-GAS5 in deco planner
heinrichsweikamp
parents:
296
diff
changeset
|
668 PUTC ":" |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
669 bsf leftbind |
| 560 | 670 output_16 ; No decimal anymore. |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
671 bcf leftbind |
| 560 | 672 STRCAT_PRINT "" ; No unit: can be bars or litters. |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
673 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
674 ; Loop for all 5 gas |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
675 simulator_show_decoplan5_1: |
| 560 | 676 movlw d'5' ; list all five gases |
| 677 cpfseq wait_temp ; All gases shown? | |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
678 bra simulator_show_decoplan5_loop ; No |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
679 |
| 292 | 680 WIN_COLOR color_greenish |
| 681 WIN_SMALL .80,.25 | |
| 560 | 682 STRCPY_TEXT tGasUsage ; OC: "Gas Usage" |
| 292 | 683 STRCAT_PRINT ":" |
| 684 call TFT_standard_color | |
| 560 | 685 call logbook_preloop_tasks |
|
284
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
686 |
|
d1117b99fd99
preperations to compute gas consumtion in simulator
heinrichsweikamp
parents:
275
diff
changeset
|
687 simulator_show_decoplan5_3: |
| 560 | 688 btfss switch_right |
| 689 bra simulator_show_decoplan5_3a | |
| 690 bcf switch_right | |
| 691 clrf decoplan_page | |
| 692 bra deco_show_plan_1 ; toggle between stops plan and gas usage | |
| 693 simulator_show_decoplan5_3a: | |
| 694 btfss switch_left | |
| 695 bra simulator_show_decoplan5_4 | |
| 696 bcf is_bailout ; Back to normal | |
| 697 bcf ccr_diluent_setup ; init for OC/Bailout | |
| 292 | 698 return ; Return to simulator menu |
| 560 | 699 |
| 700 simulator_show_decoplan5_4: | |
| 701 call log_screendump_and_onesecond ; Check if we need to make a screen shot and check for new second | |
| 292 | 702 btfsc sleepmode ; Timeout? |
| 703 goto restart | |
| 704 bra simulator_show_decoplan5_3 | |
| 0 | 705 |
| 560 | 706 |
| 707 simulator_color_gas: ; set output color dependent on gas (1-5, in WREG) | |
| 708 movwf tft_temp1 ; used in TFT_set_color anyway | |
| 709 dcfsnz tft_temp1,F | |
| 710 movlw color_white ; color for Gas 1 | |
| 711 dcfsnz tft_temp1,F | |
| 712 movlw color_green ; color for Gas 2 | |
| 713 dcfsnz tft_temp1,F | |
| 714 movlw color_red ; Color for Gas 3 | |
| 715 dcfsnz tft_temp1,F | |
| 716 movlw color_yellow ; color for Gas 4 | |
| 717 dcfsnz tft_temp1,F | |
| 718 movlw color_cyan ; color for Gas 5 | |
| 719 goto TFT_set_color ; set color and return... | |
| 720 | |
| 0 | 721 ;============================================================================= |
| 722 ; | |
| 723 global do_demo_divemode | |
| 724 do_demo_divemode: | |
| 725 extern option_save_all | |
| 560 | 726 call option_save_all ; Save all settings into EEPROM before starting simulation |
| 0 | 727 call deco_push_tissues_to_vault |
| 560 | 728 banksel common ; Bank1 |
| 0 | 729 |
| 560 | 730 ; +++ COMMENTED OUT FOR TESTING PURPOSE ONLY !!! +++ |
| 731 ; +++ DO NOT COMMENT OUT IN OPERATIONAL USE !!! +++ | |
| 732 bsf restore_deco_data ; Restore tissue and CNS after simulator use | |
| 0 | 733 |
| 560 | 734 bcf pressure_refresh |
| 735 btfss pressure_refresh ; Wait for sensor | |
| 736 bra $-2 | |
| 737 | |
| 738 bsf simulatormode_active ; Set Flag | |
|
132
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
739 ; Compute dive ambient conditions |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
740 banksel char_I_bottom_depth |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
741 movf char_I_bottom_depth,W |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
742 mullw .100 |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
743 movff PRODL,rel_pressure+0 |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
744 movff PRODH,rel_pressure+1 |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
745 movlw LOW(.1000) |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
746 addwf PRODL,W |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
747 movff WREG,sim_pressure+0 |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
748 movlw HIGH(.1000) |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
749 addwfc PRODH,W |
|
ec0b1e829399
Bugfix: Start dive mode simulator in correct depth
heinrichsweikamp
parents:
111
diff
changeset
|
750 movff WREG,sim_pressure+1 |
| 0 | 751 |
| 560 | 752 banksel common ; Bank1 |
| 0 | 753 bsf divemode |
| 560 | 754 goto diveloop ; Switch into Divemode! |
| 0 | 755 |
| 756 | |
| 757 END |
