Mercurial > public > mk2
annotate code_part1/OSTC_code_asm_part1/simulator.asm @ 379:cf1023a53d0c 64kByte Logbook
clean up
author | heinrichsweikamp |
---|---|
date | Tue, 14 Jun 2011 19:25:09 +0200 |
parents | 61742b3ef842 |
children | af703be9ead2 |
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 ; menu "Simulator" | |
20 ; written by: Matthias Heinrichs, info@heinrichsweikamp.com | |
21 ; written: 081210 | |
22 ; last updated: 081210 | |
23 ; known bugs: | |
24 ; ToDo: | |
25 | |
26 menu_simulator: | |
352
544a96faa9f3
New "Quit sim" option in simulated dive mode, CF02 now allows more then 240seconds, Bugfix with runtime=1min in runtime simulator
Heinrichsweikamp
parents:
344
diff
changeset
|
27 movlw d'3' |
0 | 28 movwf logbook_temp1 ; Bottom time |
29 movlw d'15' | |
30 movwf logbook_temp2 ; Max. Depth | |
31 movlw d'1' | |
32 movwf menupos | |
369 | 33 clrf WREG ; Interval |
34 movff WREG,char_I_dive_interval | |
0 | 35 |
36 menu_simulator1: | |
37 clrf timeout_counter2 | |
38 bsf menubit | |
39 bsf cursor | |
49 | 40 call PLED_brightness_full ;max. brightness |
0 | 41 call PLED_ClearScreen |
42 call PLED_simulator_mask | |
43 | |
44 menu_simulator2: | |
45 bcf switch_left | |
46 bcf switch_right | |
47 bcf menubit2 | |
48 bcf menubit3 | |
49 call PLED_simulator_data | |
50 call PLED_menu_cursor | |
51 | |
52 menu_simulator_loop: | |
53 call check_switches_menu | |
54 menu_simulator_loop2: | |
55 btfss onesecupdate | |
56 bra menu_simulator_loop3 | |
57 | |
58 call timeout_surfmode | |
59 call set_dive_modes | |
60 call test_charger ; check if charger IC is active | |
61 call get_battery_voltage ; get battery voltage | |
62 | |
63 bcf onesecupdate ; End of one second tasks | |
64 | |
65 menu_simulator_loop3: | |
66 btfsc menubit2 | |
67 goto menu_simulator_do ; call submenu | |
68 | |
69 btfss menubit | |
35 | 70 goto menu_simulator_exit |
0 | 71 |
72 btfsc sleepmode | |
35 | 73 goto menu_simulator_exit |
0 | 74 |
75 btfsc divemode | |
76 goto restart ; exit menu, restart and enter divemode | |
77 | |
78 bra menu_simulator_loop | |
79 | |
80 menu_simulator_do: ; calls submenu | |
81 dcfsnz menupos,F | |
369 | 82 bra simulator_inc_interval |
83 dcfsnz menupos,F | |
0 | 84 bra simulator_startdive |
85 dcfsnz menupos,F | |
86 bra simulator_inc_bottomtime | |
87 dcfsnz menupos,F | |
88 bra simulator_inc_maxdepth | |
89 dcfsnz menupos,F | |
90 bra simulator_calc_deco | |
369 | 91 |
35 | 92 menu_simulator_exit: |
0 | 93 movlw d'4' |
94 movwf menupos | |
369 | 95 goto more_menu2 ; exit... |
0 | 96 |
369 | 97 simulator_inc_interval: |
98 movff char_I_dive_interval,PRODL | |
99 incf PRODL,F | |
100 movlw .24*6 ; Max 24h delay. | |
101 cpfslt PRODL | |
102 clrf PRODL | |
103 movff PRODL,char_I_dive_interval | |
104 | |
105 movlw d'1' | |
106 movwf menupos | |
107 bra menu_simulator2 | |
108 | |
0 | 109 simulator_inc_bottomtime: |
110 movlw d'2' | |
111 addwf logbook_temp1,F ; Here: Bottomtime in m | |
112 movlw d'199' | |
113 cpfslt logbook_temp1 | |
114 movwf logbook_temp1 | |
369 | 115 movlw d'3' |
0 | 116 movwf menupos |
117 bra menu_simulator2 | |
118 | |
119 simulator_inc_maxdepth: | |
120 movlw d'3' | |
121 addwf logbook_temp2,F ; Here: Maxdepth in m | |
122 movlw d'99' | |
123 cpfslt logbook_temp2 | |
124 movwf logbook_temp2 | |
369 | 125 movlw d'4' |
0 | 126 movwf menupos |
127 bra menu_simulator2 | |
128 | |
369 | 129 ;============================================================================= |
130 | |
0 | 131 simulator_startdive: |
33 | 132 ; Descent to -15m depth |
0 | 133 ; Set standalone_simulator flag (Displays Simulator menu during simulation by pressing ENTER button) |
134 ; Clear standalone_simulator after (any) dive | |
135 bsf simulatormode_active ; normal simulator mode | |
136 bsf standalone_simulator ; Standalone Simulator active | |
369 | 137 |
0 | 138 movff logbook_temp2,xA+0 |
139 clrf xA+1 | |
140 movlw d'100' | |
141 movwf xB+0 | |
142 clrf xB+1 | |
143 call mult16x16 ;xA*xB=xC ; Depth in m*100 | |
144 | |
62 | 145 movlw LOW d'1000' |
0 | 146 addwf xC+0,F |
62 | 147 movlw HIGH d'1000' |
148 addwfc xC+1,F ; add 1000mBar | |
149 | |
0 | 150 movff xC+0,sim_pressure+0 |
151 movff xC+1,sim_pressure+1 | |
341
2144f19fa1eb
BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents:
292
diff
changeset
|
152 |
2144f19fa1eb
BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents:
292
diff
changeset
|
153 ; This override is done in ISR too, but do it right now also: |
2144f19fa1eb
BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents:
292
diff
changeset
|
154 movff sim_pressure+0,amb_pressure+0 |
0 | 155 movff sim_pressure+1,amb_pressure+1 |
156 | |
157 bcf menubit2 | |
158 bcf menubit3 | |
159 bcf menubit | |
160 bcf switch_left | |
161 bcf switch_right | |
162 | |
369 | 163 call simulator_save_tissue_data ; Stores 32 floats "pre_tissue" into bank3 |
0 | 164 |
369 | 165 movff char_I_dive_interval,WREG ; Any interval ? |
166 iorlw 0 ; Test for null | |
167 btfss STATUS,Z | |
168 call deco_calc_dive_interval ; NZ: call interval subroutine. | |
169 movlb 1 | |
170 | |
171 movlw d'3' ; Begin of deco cycle (reset table). | |
172 movff WREG,char_O_deco_status ; Reset Deco module. | |
200 | 173 |
369 | 174 bsf divemode ; Set divemode flag |
175 ostc_debug 'P' ; Sends debug-information to screen if debugmode active | |
176 goto diveloop ; Start Divemode | |
0 | 177 |
279
8514588eb6a2
Mark gas-switch stops for decoplans, displayed in yellow.
JeanDo
parents:
278
diff
changeset
|
178 ;============================================================================= |
8514588eb6a2
Mark gas-switch stops for decoplans, displayed in yellow.
JeanDo
parents:
278
diff
changeset
|
179 ; Show decoplanning result. |
8514588eb6a2
Mark gas-switch stops for decoplans, displayed in yellow.
JeanDo
parents:
278
diff
changeset
|
180 ; |
0 | 181 simulator_show_decoplan: |
124 | 182 call PLED_ClearScreen |
183 call PLED_simdata_screen | |
184 call divemenu_see_decoplan | |
185 | |
184 | 186 WIN_LEFT .0 |
187 call PLED_standard_color | |
188 | |
124 | 189 ; Display TTS, if any... |
168 | 190 movff int_O_ascenttime+0,lo |
191 movff int_O_ascenttime+1,hi | |
192 movf lo,W | |
193 iorwf hi,W | |
124 | 194 bz simulator_decoplan_notts |
184 | 195 |
292 | 196 WIN_TOP .162 |
184 | 197 lfsr FSR2, letter |
279
8514588eb6a2
Mark gas-switch stops for decoplans, displayed in yellow.
JeanDo
parents:
278
diff
changeset
|
198 OUTPUTTEXT .85 ; TTS |
184 | 199 STRCAT ": " |
200 bsf leftbind | |
201 output_16 | |
202 STRCAT_PRINT "'" | |
203 | |
204 simulator_decoplan_notts: | |
292 | 205 WIN_TOP .190 ; Print calculated CNS before and after dive |
206 STRCPY "CNS:" | |
207 movff char_O_CNS_fraction,lo ; Current CNS, before dive. | |
208 output_8 | |
184 | 209 |
292 | 210 STRCAT "%\x92" ; Right-arrow |
211 movff logbook_temp3,lo ; Get back CNS value. | |
212 output_8 ; CNS after dive. | |
213 STRCAT_PRINT "%" | |
124 | 214 |
215 WIN_INVERT .1 ; Init new Wordprocessor | |
216 DISPLAYTEXT .188 ; Sim. Results: | |
217 WIN_INVERT .0 ; Init new Wordprocessor | |
34 | 218 |
64 | 219 simulator_show_decoplan1: |
369 | 220 bcf switch_left |
221 bcf switch_right | |
0 | 222 simulator_show_decoplan2: |
369 | 223 btfsc uart_dump_screen ; Asked to dump screen contains ? |
224 call dump_screen ; Yes! | |
225 | |
226 btfss onesecupdate | |
227 bra simulator_show_decoplan3 | |
228 | |
229 call timeout_surfmode | |
230 call set_dive_modes | |
231 call test_charger ; check if charger IC is active | |
232 call get_battery_voltage ; get battery voltage | |
233 | |
234 bcf onesecupdate ; End of one second tasks | |
0 | 235 |
236 simulator_show_decoplan3: | |
64 | 237 btfsc switch_right |
369 | 238 bra menu_simulator1 ; Quit display |
0 | 239 |
64 | 240 btfsc switch_left |
224 | 241 bra simulator_show_decoplan5 ; Next decoplan-page. |
0 | 242 |
243 btfsc sleepmode | |
244 goto more_menu | |
245 | |
246 btfsc divemode | |
247 goto restart ; exit menu, restart and enter divemode | |
248 | |
249 bra simulator_show_decoplan2 | |
250 | |
64 | 251 simulator_show_decoplan5: |
124 | 252 incf decoplan_page,F |
64 | 253 btfsc last_ceiling_gf_shown ; last ceiling shown? |
254 bra simulator_show_decoplan5_0 ; All done, clear and return | |
255 | |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
168
diff
changeset
|
256 call PLED_decoplan ; Re-Draw Current page of GF Decoplan |
64 | 257 bra simulator_show_decoplan1 |
258 | |
231
f9d42f8ff97b
BUGFIX Don't show (nosense) gas consumption in CCR mode (bug BB20).
JeanDo
parents:
230
diff
changeset
|
259 ;---- In OCR mode, show the gas Usage special page --------------------------- |
f9d42f8ff97b
BUGFIX Don't show (nosense) gas consumption in CCR mode (bug BB20).
JeanDo
parents:
230
diff
changeset
|
260 simulator_show_decoplan5_0: |
f9d42f8ff97b
BUGFIX Don't show (nosense) gas consumption in CCR mode (bug BB20).
JeanDo
parents:
230
diff
changeset
|
261 btfss display_see_deco ; Already displayed ? |
369 | 262 bra menu_simulator1 ; Exit to menu. |
231
f9d42f8ff97b
BUGFIX Don't show (nosense) gas consumption in CCR mode (bug BB20).
JeanDo
parents:
230
diff
changeset
|
263 |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
168
diff
changeset
|
264 bcf display_see_deco ; clear flag |
224 | 265 |
231
f9d42f8ff97b
BUGFIX Don't show (nosense) gas consumption in CCR mode (bug BB20).
JeanDo
parents:
230
diff
changeset
|
266 btfsc FLAG_const_ppO2_mode ; In CCR mode ? |
369 | 267 bra menu_simulator1 ; YES: finished. |
231
f9d42f8ff97b
BUGFIX Don't show (nosense) gas consumption in CCR mode (bug BB20).
JeanDo
parents:
230
diff
changeset
|
268 |
290
4dbff2aa31ee
Hunting for refusing to ignore disabled gas in list...
JeanDo
parents:
279
diff
changeset
|
269 ; Make sure to pass first gas |
240
d995e220ddac
BUGFIX Gas Usage when first gas is not #1 (bug BB22).
JeanDo
parents:
236
diff
changeset
|
270 clrf EEADRH |
290
4dbff2aa31ee
Hunting for refusing to ignore disabled gas in list...
JeanDo
parents:
279
diff
changeset
|
271 read_int_eeprom .33 ; First gas. |
240
d995e220ddac
BUGFIX Gas Usage when first gas is not #1 (bug BB22).
JeanDo
parents:
236
diff
changeset
|
272 movff EEDATA,char_I_first_gas |
225 | 273 |
274 ; Compute gas consumption for each tank. | |
224 | 275 call deco_gas_volumes |
276 movlb 1 | |
277 | |
230
9406a5b0ba5e
BUGFIX Clear bottom stops when display gas usage (bug BB23)
JeanDo
parents:
229
diff
changeset
|
278 ; Clear the complete stop result column: |
292 | 279 WIN_BOX_BLACK .0, .239, .85, .160 ;top, bottom, left, right |
224 | 280 |
281 movlw d'10' | |
282 movwf waitms_temp ; Row for gas list is .10+.25 | |
283 clrf wait_temp ; Gas counter | |
284 lfsr FSR0,int_O_gas_volumes ; Initialize indexed addressing. | |
285 | |
286 WIN_LEFT .90 ; Set column | |
270
fda90f19486a
Don't show gas 1 usage black on back (bb28 followup)
JeanDo
parents:
269
diff
changeset
|
287 call PLED_standard_color |
224 | 288 |
289 simulator_show_decoplan5_loop: | |
290 incf wait_temp,F ; Increment gas # | |
291 | |
292 movlw .25 | |
293 addwf waitms_temp,F ; Increase row position | |
294 movff waitms_temp,win_top ; Set Row | |
295 | |
296 movff POSTINC0,lo ; Read (16bit) result, low first, | |
297 movff POSTINC0,hi ; then high. | |
298 movf lo,W ; Null ? | |
299 iorwf hi,W | |
300 bz simulator_show_decoplan5_1 ; Skip printing. | |
301 | |
302 movf lo,W ; == 65535 (saturated ?) | |
225 | 303 andwf hi,W |
224 | 304 incf WREG |
305 bnz simulator_show_decoplan5_2 | |
306 call PLED_warnings_color | |
265 | 307 STRCPY_PRINT "= xxxx.x" |
308 call PLED_standard_color | |
309 bra simulator_show_decoplan5_1 | |
224 | 310 |
311 simulator_show_decoplan5_2: | |
312 STRCPY "= " | |
313 | |
232 | 314 bsf leftbind |
224 | 315 output_16dp .4 ; 1 decimal. |
232 | 316 bcf leftbind |
224 | 317 call word_processor ; No unit: can be bars or litters. |
318 | |
319 ; Loop for all 5 gas | |
320 simulator_show_decoplan5_1: | |
321 movlw d'5' ; list all five gases | |
322 cpfseq wait_temp ; All gases shown? | |
323 bra simulator_show_decoplan5_loop ; No | |
324 | |
325 WIN_INVERT 1 | |
231
f9d42f8ff97b
BUGFIX Don't show (nosense) gas consumption in CCR mode (bug BB20).
JeanDo
parents:
230
diff
changeset
|
326 DISPLAYTEXTH .301 ; OCR Gas Usage: |
224 | 327 WIN_INVERT 0 |
328 | |
329 bra simulator_show_decoplan1 | |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
168
diff
changeset
|
330 |
271 | 331 ;============================================================================= |
332 ; OSTC Simulator: compute a new runtime | |
333 ; | |
0 | 334 simulator_calc_deco: |
269
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
335 call simulator_save_tissue_data ; Stores 32 floats "pre_tissue" into bank3 |
0 | 336 |
369 | 337 movff char_I_dive_interval,WREG ; Any interval ? |
338 iorlw 0 ; Test for null | |
339 btfss STATUS,Z | |
340 call deco_calc_dive_interval ; NZ: call interval subroutine. | |
341 movlb 1 | |
342 | |
292 | 343 bsf simulatormode_active ; normal simulator mode |
344 bsf standalone_simulator ; Standalone Simulator active | |
345 bsf no_sensor_int ; Disable sensor interrupt | |
346 clrf T3CON ; Restart time3 counter, | |
347 clrf TMR3L ; so the simu won't stop right away. | |
269
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
348 clrf TMR3H |
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
349 |
292 | 350 call diveloop_boot ; configure gases, etc. |
269
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
351 |
224 | 352 ; Save dive parameters for gas volume estimation: |
353 movff logbook_temp2,char_I_bottom_depth | |
354 movff logbook_temp1,char_I_bottom_time | |
355 | |
292 | 356 movff logbook_temp2,xA+0 ; Bottom depth. |
0 | 357 clrf xA+1 |
358 movlw d'100' | |
359 movwf xB+0 | |
360 clrf xB+1 | |
292 | 361 call mult16x16 ;xA*xB=xC, Depth in m*100 |
0 | 362 |
62 | 363 movlw LOW d'1000' |
0 | 364 addwf xC+0,F |
62 | 365 movlw HIGH d'1000' |
292 | 366 addwfc xC+1,F ; add 1000mBar |
62 | 367 |
0 | 368 movff xC+0,sim_pressure+0 |
369 movff xC+1,sim_pressure+1 | |
370 | |
124 | 371 call PLED_topline_box |
0 | 372 WIN_INVERT .1 |
292 | 373 DISPLAYTEXT .12 ; "Wait..." |
0 | 374 WIN_INVERT .0 |
375 | |
341
2144f19fa1eb
BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents:
292
diff
changeset
|
376 ; This override is done in ISR too, but do it right now also: |
2144f19fa1eb
BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents:
292
diff
changeset
|
377 movff sim_pressure+0,amb_pressure+0 |
269
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
378 movff sim_pressure+1,amb_pressure+1 |
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
379 |
197 | 380 call divemode_check_decogases ; Checks for decogases and sets the gases |
381 call divemode_prepare_flags_for_deco | |
292 | 382 call set_first_gas ; Set current N2/He/O2 ratios. |
383 call set_actual_ppo2 ; Then configure char_I_actual_ppO2 | |
269
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
384 |
278 | 385 ; First minute is special: init everything. |
200 | 386 movlw d'3' ; Begin of deco cycle (reset table). |
197 | 387 movff WREG,char_O_deco_status ; Reset Deco module. |
388 | |
278 | 389 movlw d'1' |
390 movff WREG,char_I_step_is_1min ; 1 minute mode. | |
269
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
391 |
278 | 392 call deco_calc_hauptroutine ; Reset table + sim one minute for descent. |
292 | 393 call deco_calc_CNS_fraction ; Also calculate CNS (in 1min loop) |
197 | 394 movlb b'00000001' ; rambank 1 selected |
32 | 395 |
278 | 396 decf logbook_temp1,F ; One minute done. |
0 | 397 |
278 | 398 ; Loop for bottom time duration |
32 | 399 simulator_calc_deco_loop2: |
292 | 400 call PLED_simulator_data ; Update display of bottom time. |
32 | 401 |
292 | 402 call deco_calc_tissue ; JUST calc tissue (faster). |
403 call deco_calc_CNS_fraction ; Also calculate CNS (in 1min loop) | |
404 movlb b'00000001' ; rambank 1 selected | |
405 ostc_debug 'C' ; Sends debug-information to screen if debugmode active | |
197 | 406 |
278 | 407 decfsz logbook_temp1,F ; Decrement bottom time, |
408 bra simulator_calc_deco_loop2 ; and loop while not finished. | |
32 | 409 |
278 | 410 ; No the bottom time is finish, restart a full ascent simulation, |
32 | 411 movlw d'0' |
278 | 412 movff WREG,char_I_step_is_1min ; Back to 2 second deco mode |
197 | 413 |
271 | 414 clrf timeout_counter2 ; timeout used as maxloop here |
278 | 415 movff char_I_bottom_depth,char_O_deco_last_stop |
416 | |
197 | 417 simulator_calc_deco2: |
418 call deco_calc_hauptroutine ; calc_tissue | |
419 movlb b'00000001' ; rambank 1 selected | |
0 | 420 |
278 | 421 movff char_O_deco_last_stop,logbook_temp2 |
422 call PLED_simulator_data ; Animate ascent simu. | |
423 | |
271 | 424 dcfsnz timeout_counter2,F ; Abort loop (max. 256 tries)? |
262 | 425 bra simulator_calc_deco3 ; Yes... |
426 | |
197 | 427 movff char_O_deco_status,WREG |
278 | 428 iorwf WREG ; deco_status=0 if decompression calculation done |
429 bnz simulator_calc_deco2 ; Not finished | |
0 | 430 |
292 | 431 ; Finished |
262 | 432 simulator_calc_deco3: |
292 | 433 movff char_O_CNS_fraction,logbook_temp3 ; Save calculated CNS. |
434 rcall simulator_restore_tissue_data ; Restore CNS & 32 floats "pre_tissue" from vault | |
0 | 435 |
197 | 436 bcf simulatormode_active ; normal simulator mode |
437 bcf standalone_simulator ; Standalone Simulator active | |
269
be06783f533b
hunting for bug#30 - solved by disabling timer3 (?)
heinrichsweikamp
parents:
265
diff
changeset
|
438 bcf no_sensor_int ; Re-enable sensor interrupt |
0 | 439 |
440 WAITMS d'250' | |
441 WAITMS d'250' | |
197 | 442 WAITMS d'250' ; Wait for Pressure Sensor to get real pressure again... |
0 | 443 |
335 | 444 movlw d'5' ; Pre-Set Cursor to "Show Decoplan" |
197 | 445 movwf menupos |
278 | 446 movff char_I_bottom_time,logbook_temp1 ; Restore bottom time, |
447 movff char_I_bottom_depth,logbook_temp2 ; and depth. | |
369 | 448 |
449 clrf timeout_counter2 ; Restart menu timeout. | |
450 bra simulator_show_decoplan ; Done. | |
49 | 451 |
452 simulator_save_tissue_data: | |
335 | 453 bsf restore_deco_data ; Set restore flag |
454 ostc_debug 'S' ; Sends debug-information to screen if debugmode active | |
116 | 455 call deco_push_tissues_to_vault |
335 | 456 movlb 0x01 ; Back to RAM Bank1 |
457 ostc_debug 'T' ; Sends debug-information to screen if debugmode active | |
49 | 458 return |
459 | |
460 simulator_restore_tissue_data: | |
229
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
225
diff
changeset
|
461 bcf restore_deco_data ; clear restore flag |
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
225
diff
changeset
|
462 ostc_debug 'S' ; Sends debug-information to screen if debugmode active |
292 | 463 call deco_pull_tissues_from_vault ; Restore CNS too... |
49 | 464 movlb 0x01 ; Back to RAM Bank1 |
229
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
225
diff
changeset
|
465 ostc_debug 'T' ; Sends debug-information to screen if debugmode active |
49 | 466 |
467 ostc_debug 'G' ; Sends debug-information to screen if debugmode active | |
116 | 468 call deco_calc_desaturation_time ; calculate desaturation time |
229
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
225
diff
changeset
|
469 movlb b'00000001' ; select ram bank 1 |
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
225
diff
changeset
|
470 |
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
225
diff
changeset
|
471 ; Note: should not reset nofly-time here: the true value have continued to be decremented |
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
225
diff
changeset
|
472 ; during simulation, which is the right thing to do... |
49 | 473 ostc_debug 'H' ; Sends debug-information to screen if debugmode active |
474 | |
475 return |