diff code_part1/OSTC_code_asm_part1/outputs.asm @ 765:aac1379d6983

BUGFIX: Show bailout list if first bailout gas <> gas
author heinrichsweikamp
date Mon, 16 Dec 2013 20:50:34 +0100
parents cc997dde80cf
children b23b43d6d50d
line wrap: on
line diff
--- a/code_part1/OSTC_code_asm_part1/outputs.asm	Mon Dec 09 14:05:41 2013 +0100
+++ b/code_part1/OSTC_code_asm_part1/outputs.asm	Mon Dec 16 20:50:34 2013 +0100
@@ -1478,16 +1478,27 @@
     call	word_processor
 	WIN_TOP		.50
 	WIN_LEFT	.90
+	read_int_eeprom 	d'33'	; Read start gas (1-5)
+	movff	EEDATA,hi       ; Store start gas
     bsf		leftbind
     lfsr	FSR2,letter
-	STRCAT  TXT_G1_3
-	movlw   .6              ; Gas #1: %O2 - Set address in internal EEPROM
+	STRCPY  TXT_GAS1
+	movff	hi,lo			; copy gas number
+	output_8				; display gas number
+	STRCAT  ": "
+    movlw   .4
+    mulwf   hi              ; 1-5
+    movf    PRODL,W
+	addlw   .2              ; Gas #x: %O2 - Set address in internal EEPROM
     movwf   EEADR
 	call	read_eeprom		; get byte (stored in EEDATA)
 	movff	EEDATA,lo		; copy to lo
 	output_8				; outputs into Postinc2!
 	PUTC    '/'
-	movlw   .7              ; Gas #1: %He - Set address in internal EEPROM
+    movlw   .4
+    mulwf   hi,W            ; 1-5
+    movf    PRODL,W
+	addlw   .3              ; Gas #x: %He - Set address in internal EEPROM
     movwf   EEADR
 	call	read_eeprom		; get byte (stored in EEDATA)
 	movff	EEDATA,lo		; copy to lo
@@ -1514,11 +1525,10 @@
 	WIN_LEFT	.90
 	WIN_FONT	FT_SMALL
 	bsf		leftbind
-	
 	movlw	d'2'
 	movwf	wait_temp			; here: stores eeprom address for gas list
 	movlw	d'0'
-	movwf	waitms_temp		; here: stores row for gas list
+	movwf	waitms_temp         ; here: stores row for gas list
 	clrf	hi					; here: Gas counter
 
 DISP_pre_dive_screen2_loop:
@@ -1543,25 +1553,25 @@
     decf    hi,W            ; Gas # in 0..4
 	call    DISP_grey_inactive_gas
 
-	read_int_eeprom 	d'33'			; Read start gas (1-5)
+	read_int_eeprom 	d'33'	; Read start gas (1-5)
 	movf	EEDATA,W
-	cpfseq	hi				; Current Gas the active gas?
-	bra		DISP_pre_dive_screen2a
-	bra		DISP_pre_dive_screen2b
+	cpfseq	hi                  ; Current Gas the start gas?
+	bra		DISP_pre_dive_screen2a  ; Yes
+	bra		DISP_pre_dive_screen2b  ; No
 
 DISP_pre_dive_screen2a:
 	movlw	d'25'
 	addwf	waitms_temp,F		; Increase row
 	WIN_LEFT	.90
 	movff	waitms_temp,win_top ; Set Row
-	call	word_processor	; No, display gas
+	call	word_processor      ; Display gas
 
 DISP_pre_dive_screen2b:
-	movlw	d'5'			; list all four (remaining) gases
-	cpfseq	hi				; All gases shown?
+	movlw	d'5'                ; list all four (remaining) gases
+	cpfseq	hi                  ; All gases shown?
 	bra		DISP_pre_dive_screen2_loop	; No
 	
-	return							; No, return (OC mode)
+	return						; No, return (OC mode)
 
 DISP_pre_dive_screen3:	
 	WIN_LEFT	.90