diff code_part1/OSTC_code_asm_part1/menu_ppO2.asm @ 817:e49a35ab7394

auto-SP work, auto-SP data stored in EEADR 116-119
author heinrichsweikamp
date Sat, 06 Jun 2015 14:46:27 +0200
parents df8cd5ffd993
children 69bc5feca5da
line wrap: on
line diff
--- a/code_part1/OSTC_code_asm_part1/menu_ppO2.asm	Sat May 16 14:48:26 2015 +0200
+++ b/code_part1/OSTC_code_asm_part1/menu_ppO2.asm	Sat Jun 06 14:46:27 2015 +0200
@@ -125,10 +125,10 @@
     read_int_eeprom .116        ; SP Mode
     tstfsz  EEDATA              ; =0?
 	bra		show_sp_mode2       ; No
-	DISPLAYTEXTH	.312		; =0: Manual
+	DISPLAYTEXTH	.363		; =0: Manual
 	return
 show_sp_mode2:
-	DISPLAYTEXTH	.313		; =1: Auto
+	DISPLAYTEXTH	.364		; =1: Auto
 	return
 
 
@@ -867,31 +867,46 @@
 	clrf	hi
 	bsf		leftbind
 	output_16dp	d'3'
+	STRCAT  TXT_BAR4
+	movf	decodata+0,W
+	addlw	d'117'				; offset in eeprom
+    movwf	EEADR
+	call	read_eeprom		; Change depth
+	movff	EEDATA,lo
+    output_8
 	bcf		leftbind
-	STRCAT_PRINT TXT_BAR4
+    STRCAT_PRINT    "m "
 
 	WIN_LEFT 	.20
 	WIN_TOP		.95
-
 	lfsr	FSR2,letter
 	OUTPUTTEXT	d'190'			; ppO2 +
 	call	word_processor		
 
 	WIN_LEFT 	.20
 	WIN_TOP		.125
-
 	lfsr	FSR2,letter
-	OUTPUTTEXT	d'191'			; ppO2 -
+	OUTPUTTEXT	d'250'			; +1 m
 	call	word_processor		
 
 	WIN_LEFT 	.20
 	WIN_TOP		.155
+	lfsr	FSR2,letter
+	OUTPUTTEXT	.251			; -1 m
+    call	word_processor
 
+	WIN_LEFT 	.20
+	WIN_TOP		.185
 	lfsr	FSR2,letter
 	OUTPUTTEXT	.89			; "Default: "
-	STRCAT_PRINT "1.00"
+	STRCAT_PRINT "1.00 / 0m"
 
-	DISPLAYTEXT	.11			; Exit
+	WIN_LEFT 	.20
+	WIN_TOP		.215
+    lfsr	FSR2,letter
+	OUTPUTTEXT   .11		; Exit
+    call	word_processor
+
 	call	wait_switches		; Waits until switches are released, resets flag if button stays pressed!
 	call	menu_pre_loop_common		; Clear some menu flags, timeout and switches
 	call	DISP_menu_cursor
@@ -924,8 +939,8 @@
 	incf	menupos,F			; Skip pos. 2
 
 menu_const_ppO22a:
-	movlw	d'7'
-	cpfseq	menupos			; =7?
+	movlw	d'8'
+	cpfseq	menupos			; =8?
 	bra		menu_const_ppO23	; No
 	movlw	d'1'
 	movwf	menupos
@@ -943,13 +958,51 @@
 	dcfsnz	menupos,F
 	bra		change_ppo2_plus
 	dcfsnz	menupos,F
-	bra		change_ppo2_minus
+	bra		change_ppo2_depth_plus
+	dcfsnz	menupos,F
+	bra		change_ppo2_depth_minus
 	dcfsnz	menupos,F
 	bra		change_ppo2_reset
 	movlw	d'2'
 	movwf	menupos
     goto    menu_const_ppO2_return
 
+change_ppo2_depth_plus:
+	movf	decodata+0,W
+	addlw	d'117'				; offset in eeprom
+    movwf	EEADR
+	call	read_eeprom		; Change depth
+	movff	EEDATA,lo
+    incf    lo,F
+	movlw	d'99'
+	cpfsgt	lo
+	bra		change_ppo2_depth_plus2
+    clrf    lo
+change_ppo2_depth_plus2:
+	movff	lo,EEDATA			; write result
+	call	write_eeprom		; save result in EEPROM
+	movlw	d'4'
+	movwf	menupos
+	bra		menu_const_ppO21
+
+change_ppo2_depth_minus:
+	movf	decodata+0,W
+	addlw	d'117'				; offset in eeprom
+    movwf	EEADR
+	call	read_eeprom		; Change depth
+	movff	EEDATA,lo
+    decf    lo,F
+	movlw	d'100'
+	cpfsgt	lo
+	bra		change_ppo2_depth_minus2
+    clrf    lo
+change_ppo2_depth_minus2:
+	movff	lo,EEDATA			; write result
+	call	write_eeprom		; save result in EEPROM
+	movlw	d'5'
+	movwf	menupos
+	bra		menu_const_ppO21
+
 change_ppo2_plus:
 	movf	decodata+0,W		; read current value 
 	addlw	d'36'				; offset in memory
@@ -957,11 +1010,12 @@
 	call	read_eeprom			; Low-value
 	movff	EEDATA,lo
 	
-	incf	lo,F				; increase depth
-	movlw	d'201'
-	cpfseq	lo
+    movlw   .10
+    addwf   lo,F                ; increase ppO2
+	movlw	d'200'
+	cpfsgt	lo
 	bra		change_ppo2_plus2
-	movlw	d'200'
+	movlw	d'30'
 	movwf	lo
 change_ppo2_plus2:
 	movff	lo,EEDATA			; write result
@@ -970,36 +1024,21 @@
 	movwf	menupos
 	bra		menu_const_ppO21
 
-change_ppo2_minus:
-	movf	decodata+0,W		; read current value 
-	addlw	d'36'				; offset in memory
-	movwf	EEADR
-	call	read_eeprom			; Low-value
-	movff	EEDATA,lo
-	
-	decf	lo,F				; decrease depth
-	movlw	d'29'
-	cpfseq	lo
-	bra	change_ppo2_minus2
-	movlw	d'30'
-	movwf	lo
-
-change_ppo2_minus2:
-	movff	lo,EEDATA			; write result
-	call	write_eeprom		; save result in EEPROM
-
-	movlw	d'4'
-	movwf	menupos
-	bra		menu_const_ppO21
-
-change_ppo2_reset:				; reset to 1.00Bar
+change_ppo2_reset:				; reset to 1.00bar and 0m depth
 	movf	decodata+0,W		; read current value 
 	addlw	d'36'				; offset in memory
 	movwf	EEADR
 	movlw	d'100'
 	movwf	EEDATA
 	call	write_eeprom		; save result in EEPROM
-	movlw	d'5'
+
+	movf	decodata+0,W
+	addlw	d'117'				; offset in eeprom
+    movwf	EEADR
+    clrf    EEDATA              ; 0m default
+    call	write_eeprom		; save result in EEPROM
+
+	movlw	d'6'
 	movwf	menupos
 	bra	menu_const_ppO21