annotate code_part1/OSTC_code_asm_part1/start.asm @ 842:454ef5c2e6aa default tip

Bugfix: Auto-SP did not show >9m for some 2C hardware versions in German language firmware Make year settings until 2040 possible (This is likely the final release for this model)
author heinrichsweikamp
date Sat, 29 Nov 2025 14:11:07 +0100
parents 2750099bf5bb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
815
2a0e5d884fc3 BUGFIX: Fix licence in German
heinrichsweikamp
parents: 807
diff changeset
1 ; OSTC Mk.2, 2N and 2C - diving computer code
807
c50296c3059e BUGFIX: Divetime had unwanted "." behind the minutes
heinrichsweikamp
parents: 796
diff changeset
2 ; Copyright (C) 2015 HeinrichsWeikamp GbR
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
3
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
4 ; This program is free software: you can redistribute it and/or modify
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
5 ; it under the terms of the GNU General Public License as published by
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
6 ; the Free Software Foundation, either version 3 of the License, or
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
7 ; (at your option) any later version.
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
8
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
9 ; This program is distributed in the hope that it will be useful,
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
10 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
11 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
12 ; GNU General Public License for more details.
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
13
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
14 ; You should have received a copy of the GNU General Public License
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
15 ; along with this program. If not, see <http://www.gnu.org/licenses/>.
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
16
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
17
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
18 ; Start and init
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
19 ; written by: Matthias Heinrichs, info@heinrichsweikamp.com
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
20 ; written: 10/13/04
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
21 ; last updated: 06/24/08
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
22 ; known bugs:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
23 ; ToDo:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
24
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
25 start:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
26 movlb b'00000001' ; ram bank 1 selected
521
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
27 movff STKPTR,temp10 ; Save stack pointer, for crash reports.
235
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 233
diff changeset
28 clrf temp10+1
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
29 call init
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
30 btfsc divemode ; Reset from Divemode?
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
31 call DISP_resetdebugger ; Yes! Something went wrong, show reset informations
306
ab1678d98e46 some changes for cf defaults
heinrichsweikamp
parents: 255
diff changeset
32 start3:
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
33 clrf STKPTR ; Clear Stackpointer
359
91352bb698cf Oups... time to sleep !
JeanDo
parents: 344
diff changeset
34 lfsr FSR0,year+1 ; Clear rambank 1-9, do not delete RTC registers
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
35 clear_rambank:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
36 clrf POSTINC0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
37 movlw 0x0A
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
38 cpfseq FSR0H ; Bank 9 done?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
39 bra clear_rambank ; clear...
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
40
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
41 ; Defaults for RTC
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
42 call disable_rs232 ; disable UART module
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
43 call RTCinit ; reset RTC
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
44
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
45 ; Air pressure compensation after reset
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
46 call get_calibration_data ; Get calibration data from pressure sensor
714
b7f7184d800d banksafe sensor init
heinrichsweikamp
parents: 713
diff changeset
47 banksel flag5
713
8c293e76a517 no flicker when powering on
heinrichsweikamp
parents: 685
diff changeset
48 bcf no_sensor_int ; Enable sensor interrupt
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
49 bcf pressure_refresh
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
50 wait_start_pressure:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
51 btfss pressure_refresh ; Air pressure compensation
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
52 bra wait_start_pressure
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
53
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
54 clrf rel_pressure+0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
55 clrf rel_pressure+1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
56 clrf surface_interval+0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
57 clrf surface_interval+1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
58
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
59 bsf sleepmode ; Routine only works in sleepmode...
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
60 call pressuretest_sleep_fast ; Gets pressure without averaging (faster!)
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
61 bcf sleepmode ; Normal mode again
233
2cbaa01dac26 Hunting for NoFly (bug BB13)... not found yet...
JeanDo
parents: 229
diff changeset
62
521
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
63 ; Extra power-up reset (JeanDo emulator)
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
64 Ifdef TESTING
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
65 call reset_gases
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
66 call reset_all_cf
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
67 call reset_external_eeprom
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
68
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
69 movlw LOW(.1000)
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
70 movwf amb_pressure+0
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
71 movlw HIGH(.1000)
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
72 movwf amb_pressure+1
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
73 Endif
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
74
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
75 ; Get real pressure (if not in emulator mode)
33abbc08f01e Minor cleanups for TESTING=1 emulator mode.
JeanDo
parents: 520
diff changeset
76 Ifndef TESTING
507
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
77 SAFE_2BYTE_COPY amb_pressure_avg, amb_pressure ; copy for compatibility
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
78 Endif
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
79
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
80 movff amb_pressure+0,last_surfpressure+0
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
81 movff amb_pressure+1,last_surfpressure+1
341
2144f19fa1eb BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents: 327
diff changeset
82 movff last_surfpressure+0,last_surfpressure_15min+0
2144f19fa1eb BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents: 327
diff changeset
83 movff last_surfpressure+1,last_surfpressure_15min+1
2144f19fa1eb BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents: 327
diff changeset
84 movff last_surfpressure+0,last_surfpressure_30min+0
2144f19fa1eb BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents: 327
diff changeset
85 movff last_surfpressure+1,last_surfpressure_30min+1 ; Rests all airpressure registers
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
86
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
87 ; reset deco data
236
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
88 ostc_debug '0' ; Sends debug-information to screen if debugmode active
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
89
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
90 movlw d'79' ; 79% N2
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
91 movff WREG,char_I_N2_ratio ; No He at the Surface
236
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
92 clrf WREG ; Use as buffer
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
93 movff WREG,char_I_He_ratio ; No He at the Surface
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
94 movff WREG,char_I_step_is_1min ; 2 second deco mode
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
95 GETCUSTOM8 d'11' ; Saturation multiplier %
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
96 movff WREG,char_I_saturation_multiplier
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
97 GETCUSTOM8 d'12' ; Desaturation multiplier %
3dbeacf42e9e BUGFIX missing deko init in reboot code.
JeanDo
parents: 235
diff changeset
98 movff WREG,char_I_desaturation_multiplier
507
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
99 movff amb_pressure+0,int_I_pres_respiration+0 ; copy for deco routine
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
100 movff amb_pressure+1,int_I_pres_respiration+1
ed51a7a89d9a minor cleanups for TESTING mode
JeanDo
parents: 500
diff changeset
101 movff int_I_pres_respiration+0,int_I_pres_surface+0 ; copy for desat routine
341
2144f19fa1eb BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents: 327
diff changeset
102 movff int_I_pres_respiration+1,int_I_pres_surface+1
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
103
513
c9f19a546e64 BUGFIX MISSING movlb for gaslist (simulator).
JeanDo
parents: 508
diff changeset
104 call deco_clear_tissue
c9f19a546e64 BUGFIX MISSING movlb for gaslist (simulator).
JeanDo
parents: 508
diff changeset
105 movlb b'00000001' ; select ram bank 1
c9f19a546e64 BUGFIX MISSING movlb for gaslist (simulator).
JeanDo
parents: 508
diff changeset
106
508
b595569e4bcc BUGFIX char_I_(N2_ratio/He_ratio) array not inited at boot time
JeanDo
parents: 507
diff changeset
107 call divemode_check_decogases ; Setup N2/He ratio array
520
acf4776eec08 BUGFIX bank1 error, deco_calc_wo_deco done twice in start routine.
JeanDo
parents: 513
diff changeset
108
acf4776eec08 BUGFIX bank1 error, deco_calc_wo_deco done twice in start routine.
JeanDo
parents: 513
diff changeset
109 call calc_deko_surfmode ; calculate desaturation for one minute
acf4776eec08 BUGFIX bank1 error, deco_calc_wo_deco done twice in start routine.
JeanDo
parents: 513
diff changeset
110
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents: 98
diff changeset
111 call deco_calc_desaturation_time ; calculate desaturation time
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents: 98
diff changeset
112 call deco_clear_CNS_fraction ; clear CNS
520
acf4776eec08 BUGFIX bank1 error, deco_calc_wo_deco done twice in start routine.
JeanDo
parents: 513
diff changeset
113 movlb b'00000001' ; select ram bank 1
acf4776eec08 BUGFIX bank1 error, deco_calc_wo_deco done twice in start routine.
JeanDo
parents: 513
diff changeset
114
412
b2c9cc018671 small cleanup
heinrichsweikamp
parents: 411
diff changeset
115 clrf nofly_time+0 ; Reset NoFly
b2c9cc018671 small cleanup
heinrichsweikamp
parents: 411
diff changeset
116 clrf nofly_time+1 ; Reset NoFly
b2c9cc018671 small cleanup
heinrichsweikamp
parents: 411
diff changeset
117 bcf nofly_active ; Clear flag
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
118
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
119 ; check firmware and reset Custom Functions after an update
384
904863f96582 Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents: 380
diff changeset
120 movlw d'1'
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
121 movwf EEADR
384
904863f96582 Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents: 380
diff changeset
122 movlw d'1'
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
123 movwf EEADRH
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
124 call read_eeprom ; read current version x
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
125 movff EEDATA,temp1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
126 incf EEADR,F ; set to 0x102
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
127 call read_eeprom ; read current version y
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
128 movff EEDATA,temp2
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
129 clrf EEADRH ; Reset EEADRH
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
130
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
131 movlw softwareversion_x
838
2750099bf5bb 3.15 release
heinrichsweikamp
parents: 817
diff changeset
132 ; cpfseq temp1 ; compare version x
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
133 bra check_firmware_new ; is not equal -> reset CF and store new version in EEPROM
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
134
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
135 movlw softwareversion_y
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
136 cpfseq temp2 ; compare version y
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
137 bra check_firmware_new ; is not equal -> reset CF and store new version in EEPROM
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
138 bra restart ; x and y are equal -> do not reset cf
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
139
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
140 check_firmware_new:
384
904863f96582 Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents: 380
diff changeset
141 movlw d'1' ; store current version in EEPROM
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
142 movwf EEADR
384
904863f96582 Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents: 380
diff changeset
143 movlw d'1'
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
144 movwf EEADRH
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
145 movlw softwareversion_x
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
146 movwf EEDATA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
147 call write_eeprom ; write version x
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
148 incf EEADR,F ; set to 0x102
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
149 movlw softwareversion_y
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
150 movwf EEDATA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
151 call write_eeprom ; write version y
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
152 clrf EEADRH ; Reset EEADRH
392
8e272339fb68 1.91beta RC
heinrichsweikamp
parents: 390
diff changeset
153
500
014b2b1e82dc Reset Brightness after firmware update
heinrichsweikamp
parents: 499
diff changeset
154 ; After update resets
014b2b1e82dc Reset Brightness after firmware update
heinrichsweikamp
parents: 499
diff changeset
155 ; Reset brightness to ECO
578
fbd5e2b75a63 adding access to CF64-CF95
heinrichsweikamp
parents: 576
diff changeset
156 movlw LOW 0x103
500
014b2b1e82dc Reset Brightness after firmware update
heinrichsweikamp
parents: 499
diff changeset
157 movwf EEADR
578
fbd5e2b75a63 adding access to CF64-CF95
heinrichsweikamp
parents: 576
diff changeset
158 movlw HIGH 0x103
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
159 movwf EEADRH ; DISPLAY brightness (=0: Eco, =1: High)
500
014b2b1e82dc Reset Brightness after firmware update
heinrichsweikamp
parents: 499
diff changeset
160 movlw .0
014b2b1e82dc Reset Brightness after firmware update
heinrichsweikamp
parents: 499
diff changeset
161 movwf EEDATA
014b2b1e82dc Reset Brightness after firmware update
heinrichsweikamp
parents: 499
diff changeset
162 call write_eeprom ; write byte
649
ea2bc3b9224e reset 5 diluents after update
heinrichsweikamp
parents: 647
diff changeset
163 clrf EEADRH ; Reset EEADRH
ea2bc3b9224e reset 5 diluents after update
heinrichsweikamp
parents: 647
diff changeset
164
817
e49a35ab7394 auto-SP work, auto-SP data stored in EEADR 116-119
heinrichsweikamp
parents: 815
diff changeset
165 ; Reset Setpoint depths
e49a35ab7394 auto-SP work, auto-SP data stored in EEADR 116-119
heinrichsweikamp
parents: 815
diff changeset
166 clrf EEDATA
e49a35ab7394 auto-SP work, auto-SP data stored in EEADR 116-119
heinrichsweikamp
parents: 815
diff changeset
167 write_int_eeprom d'117'
e49a35ab7394 auto-SP work, auto-SP data stored in EEADR 116-119
heinrichsweikamp
parents: 815
diff changeset
168 write_int_eeprom d'118'
e49a35ab7394 auto-SP work, auto-SP data stored in EEADR 116-119
heinrichsweikamp
parents: 815
diff changeset
169 write_int_eeprom d'119'
e49a35ab7394 auto-SP work, auto-SP data stored in EEADR 116-119
heinrichsweikamp
parents: 815
diff changeset
170 ; SP Mode (Manual)
e49a35ab7394 auto-SP work, auto-SP data stored in EEADR 116-119
heinrichsweikamp
parents: 815
diff changeset
171 write_int_eeprom d'116'
838
2750099bf5bb 3.15 release
heinrichsweikamp
parents: 817
diff changeset
172 call reset_all_cf_bank2 ; Reset CF64-93 with this update....
796
87d9d5bfc49b 2.95beta release
heinrichsweikamp
parents: 776
diff changeset
173
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
174 restart:
720
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
175 ; check for time/date vault
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
176 movlw .1
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
177 movwf EEADRH
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
178 read_int_eeprom .5
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
179 movlw 0xAA
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
180 cpfseq EEDATA ; 0xAA in EEPROM Bank1, Byte 5?
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
181 bra restart0 ; No
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
182
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
183 movlw 0x00
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
184 movwf EEDATA
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
185 write_int_eeprom d'5' ; clear flag
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
186 read_int_eeprom .6
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
187 movff EEDATA,year
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
188 read_int_eeprom .7
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
189 movff EEDATA,month
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
190 read_int_eeprom .8
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
191 movff EEDATA,day
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
192 read_int_eeprom .9
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
193 movff EEDATA,hours
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
194 read_int_eeprom .10
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
195 movff EEDATA,mins
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
196 read_int_eeprom .11
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
197 movff EEDATA,secs
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
198 call RTCinit ; Check limits
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
199 restart0:
4452837aff37 Vault date and time during update
heinrichsweikamp
parents: 714
diff changeset
200 clrf EEADRH
390
a847f416e67e Debugging timer1
heinrichsweikamp
parents: 384
diff changeset
201 movlw b'00000011'
a847f416e67e Debugging timer1
heinrichsweikamp
parents: 384
diff changeset
202 movwf T3CON ; Timer3 with 32768Hz clock running
a847f416e67e Debugging timer1
heinrichsweikamp
parents: 384
diff changeset
203 clrf TMR3L
537
3091628b2742 BUGFIX: Spurious logbook read issue
heinrichsweikamp
parents: 521
diff changeset
204 nop
390
a847f416e67e Debugging timer1
heinrichsweikamp
parents: 384
diff changeset
205 clrf TMR3H
21
73014f788032 1.60 stable rc1
heinrichsweikamp
parents: 15
diff changeset
206 bcf LED_red
73014f788032 1.60 stable rc1
heinrichsweikamp
parents: 15
diff changeset
207 bcf LED_blue ; all LEDs off
43
65d5b0c8da41 New CF48, changed CF15
heinrichsweikamp
parents: 33
diff changeset
208 GETCUSTOM8 d'48' ; time correction value
65d5b0c8da41 New CF48, changed CF15
heinrichsweikamp
parents: 33
diff changeset
209 movff WREG, time_correction_value ; store in Bank0 register
15
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
210
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
211 clrf flag1 ; clear all flags
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
212 clrf flag2
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
213 clrf flag3
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
214 clrf flag4
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
215 clrf flag5
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
216 clrf flag6
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
217 clrf flag7
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
218 clrf flag8
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
219 clrf flag9
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
220 clrf flag10
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
221 clrf flag11
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
222 clrf flag12
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
223 clrf flag13
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
224 clrf flag14
6d1177291d38 1.54beta rc1
heinrichsweikamp
parents: 12
diff changeset
225 clrf flag15
730
ae641bcb0d02 store a bailout event in the logbook
heinrichsweikamp
parents: 720
diff changeset
226 clrf flag16
153
17de42ab02b6 realtime clock defaults
heinrichsweikamp
parents: 142
diff changeset
227
169
e26f49674956 Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents: 167
diff changeset
228 ; Should we set win_flip_screen ?
e26f49674956 Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents: 167
diff changeset
229 bsf flag1,0 ; Precondition to yes
153
17de42ab02b6 realtime clock defaults
heinrichsweikamp
parents: 142
diff changeset
230 clrf EEADRH ; Reset EEADRH
17de42ab02b6 realtime clock defaults
heinrichsweikamp
parents: 142
diff changeset
231 read_int_eeprom d'1'
17de42ab02b6 realtime clock defaults
heinrichsweikamp
parents: 142
diff changeset
232 movlw .7
169
e26f49674956 Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents: 167
diff changeset
233 cpfsgt EEDATA ; serial > 2048 (Mk2n hardware) ?
153
17de42ab02b6 realtime clock defaults
heinrichsweikamp
parents: 142
diff changeset
234 bcf flag1,0
169
e26f49674956 Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents: 167
diff changeset
235 incf EEDATA,W ; serial == 65535 (emulation) ?
e26f49674956 Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents: 167
diff changeset
236 btfsc STATUS,Z
e26f49674956 Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents: 167
diff changeset
237 bcf flag1,0
153
17de42ab02b6 realtime clock defaults
heinrichsweikamp
parents: 142
diff changeset
238 movff flag1,win_flags ; store in Bank0 register
17de42ab02b6 realtime clock defaults
heinrichsweikamp
parents: 142
diff changeset
239 clrf flag1 ; Clear flag1 (again)
239
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
240
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
241 ; Select high altitude (Fly) mode?
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
242 movff last_surfpressure_30min+0,sub_b+0
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
243 movff last_surfpressure_30min+1,sub_b+1
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
244 movlw HIGH d'880'
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
245 movwf sub_a+1
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
246 movlw LOW d'880' ; Hard-wired 880mBar
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
247 movwf sub_a+0
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
248 call sub16 ; sub_c = sub_a - sub_b
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
249 btfss neg_flag ; Result negative (Ambient>880mBar)?
3ed240d60341 High altitude (Plane/Fly) mode added
heinrichsweikamp
parents: 236
diff changeset
250 bsf high_altitude_mode ; No, Set Flag!
169
e26f49674956 Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents: 167
diff changeset
251
142
8b75ba28d641 Screen-flipping custom function.
JeanDo
parents: 137
diff changeset
252 call gassetup_sort_gaslist ; Sorts Gaslist according to change depth
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
253 WIN_TOP .0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
254 WIN_LEFT .0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
255 WIN_FONT FT_SMALL
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
256 WIN_INVERT .0 ; Init new Wordprocessor
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
257 setf WREG
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
258 movff WREG,win_color1 ; Beware: win_color1 is bank0, and we are bank1 currently
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
259 movff WREG,win_color2
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
260 call I2CReset ; Just in Case any I2C device blocks the Bus
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
261 movff last_surfpressure_30min+0,last_surfpressure+0 ; Use 30min old airpressure
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
262 movff last_surfpressure_30min+1,last_surfpressure+1 ; Use 30min old airpressure
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
263
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
264 ; Check if new CF were added in the last firmware version
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
265 clrf EEADRH
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
266 read_int_eeprom d'92' ; Read number of CF used in this firmware
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
267 movlw max_custom_number ; Defined in definitions.asm
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
268 cpfseq EEDATA ; Compare with last version
605
c3336f944e53 reset CFIII properly
heinrichsweikamp
parents: 595
diff changeset
269 bra restart1 ; New CF, show warning and store new number
c3336f944e53 reset CFIII properly
heinrichsweikamp
parents: 595
diff changeset
270 bra restart2 ; No new CF, continue with boot
c3336f944e53 reset CFIII properly
heinrichsweikamp
parents: 595
diff changeset
271
c3336f944e53 reset CFIII properly
heinrichsweikamp
parents: 595
diff changeset
272 restart1:
622
f87205426add 2.50 rc1
heinrichsweikamp
parents: 605
diff changeset
273 ; Reset all CF and Gases
776
heinrichsweikamp
parents: 733
diff changeset
274 ; call reset_gases
heinrichsweikamp
parents: 733
diff changeset
275 ; call reset_all_cf
605
c3336f944e53 reset CFIII properly
heinrichsweikamp
parents: 595
diff changeset
276 ; Show info screen
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
277 call DISPLAY_boot ; DISP boot (Incl. Clear Screen!)
605
c3336f944e53 reset CFIII properly
heinrichsweikamp
parents: 595
diff changeset
278 rcall display_new_cf_installed; Show info screen
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
279 ; Save new number of current CF count
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
280 movlw max_custom_number ; Defined in definitions.asm
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
281 movwf EEDATA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
282 write_int_eeprom d'92' ; Store number of CF used in this firmware
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
283
605
c3336f944e53 reset CFIII properly
heinrichsweikamp
parents: 595
diff changeset
284 restart2:
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
285 ; Set Debug mode?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
286 read_int_eeprom d'39'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
287 bsf debug_mode
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
288 movlw d'1'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
289 cpfseq EEDATA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
290 bcf debug_mode ; clear flag if <> 1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
291
362
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
292 ; Check if logbook has been converted already (Internal EEPROM 0x100=0xAA)
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
293 movlw LOW 0x100
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
294 movwf EEADR
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
295 movlw HIGH 0x100
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
296 movwf EEADRH
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
297 call read_eeprom ; read byte
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
298 movlw 0xAA
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
299 cpfseq EEDATA ; is 0xAA already?
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
300 call logbook_convert_64k ; No, convert now (And write 0xAA to internal EEPROM 0x100)
64da813d4726 Logbook converter (Needs ~8Minutes and is called one time). Backup your dives before use!!
Heinrichsweikamp
parents: 359
diff changeset
301
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
302 ; Set DISPLAY brightness flag
578
fbd5e2b75a63 adding access to CF64-CF95
heinrichsweikamp
parents: 576
diff changeset
303 movlw LOW 0x103
499
2ac77db9c150 Added OLED brightness setting, texts 280, 312 and 313 need update
heinrichsweikamp
parents: 493
diff changeset
304 movwf EEADR
578
fbd5e2b75a63 adding access to CF64-CF95
heinrichsweikamp
parents: 576
diff changeset
305 movlw HIGH 0x103
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
306 movwf EEADRH ; DISPLAY brightness (=0: Eco, =1: High)
499
2ac77db9c150 Added OLED brightness setting, texts 280, 312 and 313 need update
heinrichsweikamp
parents: 493
diff changeset
307 call read_eeprom ; read byte
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
308 bcf DISPLAY_brightness_high ; Eco mode
499
2ac77db9c150 Added OLED brightness setting, texts 280, 312 and 313 need update
heinrichsweikamp
parents: 493
diff changeset
309 movlw .0
2ac77db9c150 Added OLED brightness setting, texts 280, 312 and 313 need update
heinrichsweikamp
parents: 493
diff changeset
310 cpfseq EEDATA ; High?
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
311 bsf DISPLAY_brightness_high ; Yes!
499
2ac77db9c150 Added OLED brightness setting, texts 280, 312 and 313 need update
heinrichsweikamp
parents: 493
diff changeset
312
2ac77db9c150 Added OLED brightness setting, texts 280, 312 and 313 need update
heinrichsweikamp
parents: 493
diff changeset
313 clrf EEADRH ; Reset EEADRH
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
314 goto surfloop ; Jump to Surfaceloop!
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
315
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
316
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
317 display_new_cf_installed:
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
318 call DISP_new_cf_warning ; Display new CF warning screen
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
319 movlw d'20' ; timeout for warning screen
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
320 bra startup_screen3a ; Will RETURN after timeout or button press
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
321
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
322 ;=============================================================================
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
323 ; Setup all flags and parameters for divemode and simulator computations.
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
324 ;
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
325 restart_set_modes_and_flags: ; "Call"ed from divemode, as well!
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
326 bcf gauge_mode
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
327 bcf FLAG_const_ppO2_mode
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
328 bcf FLAG_apnoe_mode
45
985607cfb813 1.65beta
heinrichsweikamp
parents: 43
diff changeset
329
985607cfb813 1.65beta
heinrichsweikamp
parents: 43
diff changeset
330 ; Pre-load modes for OC, GF 90/90 and no Aponoe or Gauge.
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
331 bcf no_deco_customviews ; Clear no-deco-mode-flag
45
985607cfb813 1.65beta
heinrichsweikamp
parents: 43
diff changeset
332 movlw d'0'
469
f53aa96ff2f4 SPI for sensor in 32MHz
heinrichsweikamp
parents: 466
diff changeset
333 movff WREG,char_I_deco_model ; ZH-L16
45
985607cfb813 1.65beta
heinrichsweikamp
parents: 43
diff changeset
334 ; Load GF values into RAM
985607cfb813 1.65beta
heinrichsweikamp
parents: 43
diff changeset
335 movlw d'90'
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
336 movff WREG,char_I_GF_Low_percentage
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
337 movff WREG,char_I_GF_High_percentage ; Set to 90/90...
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
338 clrf EEADRH
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
339 read_int_eeprom d'34' ; Read deco data
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
340 movlw d'1' ; Gauge mode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
341 cpfseq EEDATA
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
342 bra restart_3_test_ppO2_mode ; check for ppO2 mode
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
343 bsf gauge_mode ; Set flag for gauge mode
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
344 bsf no_deco_customviews ; Set no-deco-mode-flag
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
345 return ; start in Surfacemode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
346 restart_3_test_ppO2_mode:
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
347 movlw d'2' ; const ppO2 mode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
348 cpfseq EEDATA
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
349 bra restart_3_test_apnoe_mode; check for apnoe mode
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
350 bsf FLAG_const_ppO2_mode ; Set flag for ppO2 mode
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
351 return ; start in Surfacemode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
352 restart_3_test_apnoe_mode:
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
353 movlw d'3' ; Apnoe mode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
354 cpfseq EEDATA
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
355 bra restart_4_test_gf_mode ; check for GF OC mode
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
356 bsf FLAG_apnoe_mode ; Set flag for Apnoe Mode
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
357 bsf no_deco_customviews ; Set no-deco-mode-flag
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
358 return ; start in Surfacemode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
359 restart_4_test_gf_mode:
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
360 movlw d'4' ; GF OC mode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
361 cpfseq EEDATA
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
362 bra restart_5_test_gfO2_mode ; check for GF CC mode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
363 movlw d'1'
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
364 movff WREG,char_I_deco_model ; Set Flagbyte for GF method
45
985607cfb813 1.65beta
heinrichsweikamp
parents: 43
diff changeset
365 ; Load GF values into RAM
667
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
366 rcall restart_load_gf
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
367 return ; start in Surfacemode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
368 restart_5_test_gfO2_mode:
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
369 movlw d'5' ; GF CC mode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
370 cpfseq EEDATA
592
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
371 bra restart_5_test_pSCR_mode ; check for pSCR-GF
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
372 bsf FLAG_const_ppO2_mode ; Set flag for ppO2 mode
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
373 movlw d'1'
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
374 movff WREG,char_I_deco_model ; Set Flagbyte for GF method
137
e6aa4a74c3c2 Fix: Customviews for Apnoe and Gauge mode
mh <>
parents: 119
diff changeset
375 ; Load GF values into RAM
667
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
376 rcall restart_load_gf
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
377 return ; start in Surfacemode
592
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
378 restart_5_test_pSCR_mode:
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
379 movlw d'6' ; pSCR-GF
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
380 cpfseq EEDATA
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
381 return ; start in Surfacemode
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
382 bcf FLAG_const_ppO2_mode ; Clear flag for ppO2 mode
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
383 movlw d'1'
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
384 movff WREG,char_I_deco_model ; Set Flagbyte for GF method
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
385 ; Load GF values into RAM
667
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
386 rcall restart_load_gf
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
387 return ; start in Surfacemode
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
388
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
389 restart_load_gf:
668
8f8d39117ff7 always start with normal GF
heinrichsweikamp
parents: 667
diff changeset
390 btfsc use_aGF
667
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
391 bra restart_load_gf2 ; Use aGf
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
392 ; Use normal GF
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
393 ; Load GF values into RAM
592
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
394 GETCUSTOM8 d'32' ; GF low
667
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
395 movff EEDATA,char_I_GF_Low_percentage
592
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
396 GETCUSTOM8 d'33' ; GF high
667
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
397 movff EEDATA,char_I_GF_High_percentage
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
398 return ; Done.
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
399 restart_load_gf2: ; Use aGf
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
400 ; Load GF values into RAM
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
401 GETCUSTOM8 d'67' ; aGF low
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
402 movff EEDATA,char_I_GF_Low_percentage
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
403 GETCUSTOM8 d'68' ; aGF high
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
404 movff EEDATA,char_I_GF_High_percentage
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
405 return ; Done.
8a8124f6b389 aGF handling during deco init
heinrichsweikamp
parents: 649
diff changeset
406
592
cda5b45b953f NEW: Deco mode "pSCR-GF": Computes deco and CNS based on pSCR parameters (CF62/63)
heinrichsweikamp
parents: 578
diff changeset
407
197
f15e804ff67f Gas switch delay
JeanDo
parents: 169
diff changeset
408 ;=============================================================================
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
409
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
410 startup_screen1:
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
411 call DISP_ClearScreen
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
412 call DISP_startupscreen1 ; show startup sreen
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
413 startup_screen1_2:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
414 movlw d'10' ; timeout for startup screen
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
415 movwf temp1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
416 WAITMS d'200'
576
ab2686087bce faster font display, code cleaning
heinrichsweikamp
parents: 537
diff changeset
417 call wait_switches ; Waits until switches are released, resets flag if button stays pressed!
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
418 screen1_loop:
337
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
419 btfsc uart_dump_screen ; Asked to dump screen contains ?
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
420 call dump_screen ; Yes!
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
421
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
422 btfsc onesecupdate ; do every second tasks?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
423 call set_dive_modes ; tests if depth>threshold
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
424 btfsc onesecupdate ; do every second tasks?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
425 decf temp1,F
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
426 bcf onesecupdate ; every second tasks done
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
427
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
428 tstfsz temp1 ; timout occured?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
429 bra screen1_loop2 ; no
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
430 return
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
431
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
432 screen1_loop2:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
433 btfsc divemode ; Divemode active?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
434 return
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
435 btfsc switch_left ; Ack?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
436 return
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
437 btfsc switch_right ; Ack?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
438 return
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
439 bra screen1_loop ; loop screen
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
440
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
441 startup_screen2:
681
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
442 call DISP_ClearScreen ; Page 1
6e456a6398e0 Hardware4 support
heinrichsweikamp
parents: 677
diff changeset
443 call DISP_startupscreen2 ; show startup sreen
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
444 bra startup_screen1_2
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
445
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
446 startup_screen3a:; WARNING: Also used for decodescriptions and CF Warning screen!
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
447 movwf temp1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
448 WAITMS d'200'
576
ab2686087bce faster font display, code cleaning
heinrichsweikamp
parents: 537
diff changeset
449 call wait_switches ; Waits until switches are released, resets flag if button stays pressed!
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
450 screen3_loop:
337
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
451 btfsc uart_dump_screen ; Asked to dump screen contains ?
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
452 call dump_screen ; Yes!
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
453
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
454 btfsc onesecupdate ; do every second tasks?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
455 call set_dive_modes ; tests if depth>threshold
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
456
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
457 btfsc onesecupdate ; do every second tasks?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
458 decf temp1,F
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
459 bcf onesecupdate ; every second tasks done
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
460
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
461 tstfsz temp1 ; timout occured?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
462 bra screen3_loop2 ; no
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
463 return
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
464 screen3_loop2:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
465 btfsc switch_left ; Ack?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
466 return
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
467 btfsc switch_right ; Ack?
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
468 return
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
469 bra screen3_loop ; loop screen
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
470
337
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
471 ;=============================================================================
6bdf80d7276c Added screen dumps of general menus.
JeanDo
parents: 327
diff changeset
472
306
ab1678d98e46 some changes for cf defaults
heinrichsweikamp
parents: 255
diff changeset
473 first_start:
ab1678d98e46 some changes for cf defaults
heinrichsweikamp
parents: 255
diff changeset
474 movlw max_custom_number ; Defined in definitions.asm
ab1678d98e46 some changes for cf defaults
heinrichsweikamp
parents: 255
diff changeset
475 movwf EEDATA
ab1678d98e46 some changes for cf defaults
heinrichsweikamp
parents: 255
diff changeset
476 write_int_eeprom d'92' ; Store number of CF used in this firmware
ab1678d98e46 some changes for cf defaults
heinrichsweikamp
parents: 255
diff changeset
477 bra start3 ; continue with normal start
ab1678d98e46 some changes for cf defaults
heinrichsweikamp
parents: 255
diff changeset
478
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
479 init:
466
67d908f51e80 cleanup
heinrichsweikamp
parents: 465
diff changeset
480 movlw OSCCON_VALUE
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
481 movwf OSCCON
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
482
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
483 movlw b'00010001' ; I/O Ports
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
484 movwf TRISA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
485 clrf PORTA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
486 movlw b'00000011'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
487 movwf TRISB
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
488 clrf PORTB
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
489 movlw b'11011101' ; UART
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
490 movwf TRISC
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
491 clrf PORTC
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
492 movlw b'00000000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
493 movwf TRISE
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
494 clrf PORTE
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
495 movlw b'00000000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
496 movwf TRISD
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
497 clrf PORTD
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
498
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
499 movlw b'01000000' ; Bit6: PPL enable
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
500 movwf OSCTUNE
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
501
466
67d908f51e80 cleanup
heinrichsweikamp
parents: 465
diff changeset
502 movlw T0CON_VALUE ; Timer0
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
503 movwf T0CON
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
504
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
505 movlw b'00000111' ; Timer1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
506 movwf T1CON
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
507
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
508 movlw b'11010000' ; Interrups
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
509 movwf INTCON
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
510 movlw b'00000101'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
511 movwf INTCON2
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
512 movlw b'00001000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
513 movwf INTCON3
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
514 movlw b'00100001'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
515 movwf PIE1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
516 movlw b'00000000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
517 movwf PIE2
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
518 clrf RCON
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
519
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
520 movlw b'00000000' ; A/D Converter
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
521 movwf ADCON0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
522 movlw b'00001110'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
523 movwf ADCON1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
524 movlw b'10001010' ; Right justified
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
525 movwf ADCON2
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
526
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
527 clrf SSPCON1 ; Set I²C Mode
537
3091628b2742 BUGFIX: Spurious logbook read issue
heinrichsweikamp
parents: 521
diff changeset
528 movlw SSPSTAT_VALUE
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
529 movwf SSPSTAT
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
530 movlw b'00101000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
531 movwf SSPCON1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
532 movlw b'00000000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
533 movwf SSPCON2
466
67d908f51e80 cleanup
heinrichsweikamp
parents: 465
diff changeset
534 movlw SSPADD_VALUE ; I²C Speed
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
535 movwf SSPADD
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
536
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
537 clrf CCP1CON ; PWM Module off
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
538 clrf ECCP1CON ; PWM Module off
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
539
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
540 movlw b'00000111' ; Comperator Module off
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
541 movwf CMCON
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
542
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
543 movlw b'00100000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
544 movwf CANCON ; ECAN Module OFF
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
545
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
546 movlw b'00100100' ; UART
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
547 movwf TXSTA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
548 movlw b'10010000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
549 movwf RCSTA
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
550 movlw b'00001000'
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
551 movwf BAUDCON
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
552 clrf SPBRGH
466
67d908f51e80 cleanup
heinrichsweikamp
parents: 465
diff changeset
553 movlw SPBRG_VALUE
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
554 movwf SPBRG
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
555 clrf RCREG
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
556 clrf PIR1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
557 return