annotate code_part1/OSTC_code_asm_part1/strings.inc @ 186:57a654c199ae

BUGFIX Gradient Factor algo. + Fix calc_hauptroutine_update_tissues() crazzy calculation in GF mode for deco limit. + Backup lock/GF_step/deco_pointer during ascent simulation.
author JeanDo
date Wed, 02 Feb 2011 00:09:30 +0100
parents 6a94f96e9cea
children cdba979821ee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
97
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
1 ;=============================================================================
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
2 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
3 ; File strings.inc
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
4 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
5 ; Implementation code various string functions.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
6 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
7 ; This program is free software: you can redistribute it and/or modify
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
8 ; it under the terms of the GNU General Public License as published by
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
9 ; the Free Software Foundation, either version 3 of the License, or
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
10 ; (at your option) any later version.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
11 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
12 ; This program is distributed in the hope that it will be useful,
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
13 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
14 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
15 ; GNU General Public License for more details.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
16 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
17 ; You should have received a copy of the GNU General Public License
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
18 ; along with this program. If not, see <http://www.gnu.org/licenses/>.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
19 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
20 ; Copyright (c) 2010, JD Gascuel.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
21 ;=============================================================================
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
22 ; HISTORY
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
23 ; 2010-12-02 : [jDG] Creation...
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
24 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
25 ; RATIONALS for STRCAT / STRCPY / STRCAT_PRINT / STRCPY_PRINT:
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
26 ; * Gain PROM space: each time a string operation is done, we have a bunch
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
27 ; of lines in the style:
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
28 ; movlw '+'
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
29 ; movwf POSTINC2
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
30 ; movlw '/'
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
31 ; movwf POSTINC2
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
32 ; movlw '-'
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
33 ; movwf POSTINC2
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
34 ; movlw ':'
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
35 ; movwf POSTINC2
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
36 ; call word_processor
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
37 ; which takes 20 bytes of PROM space (eg. 4 + chars/4). Whereas :
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
38 ; STRCAT_PRINT "+/-:"
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
39 ; takes just 10 bytes (4 + chars + 1, even rounded up).
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
40 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
41 ; Note that the other common sequence :
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
42 ; OUTPUTTEXT .113
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
43 ; does compile in (6 bytes per call), plus (1 + chars, even rouded up)
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
44 ; once it the whole code. Also, it is slower to execute, because it have
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
45 ; to roll through the string table.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
46 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
47 ; RATIONALS for a formating variant... not yet done...
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
48 ; * Embeding formatting commands into the string allows even mode compact
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
49 ; sequence.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
50 ; Possible commandes:
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
51 ; \xF0 output_8 ; arg in hi, and move lo to hi,
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
52 ; \xF1 output_9 ; so we can have two 8bits concertion
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
53 ; \xF2 output_99 ; in a single sequence...
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
54 ; \xF3 output_99x
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
55 ; \xF4 output_16 ; arg in hi:lo
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
56 ; \xF5 output_16dp 1
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
57 ; \xF6 output_16dp 2
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
58 ; \xF7 output_16dp 3
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
59 ; ....
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
60 ; Usage:
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
61 ; movff apnoe_min, hi
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
62 ; movff apnoe_sec, lo
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
63 ; FORMAT_PRINT "Time: \xF3:\xF3"
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
64 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
65 ; * Cons: code redeability is poor: reader have to remember exactly what
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
66 ; each cryptic hexa code is doing...
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
67 ; No-macro-syntax:
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
68 ; call format_print_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
69 ; DB "Time: ", FORMAT_99x, ':', FORMAT_99x, 0
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
70 ; is denitively more secure in that respect...
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
71
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
72 ;=============================================================================
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
73 ; Copy a short embebed string at start of the string buffer (letter)
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
74 ; Input: (nothing)
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
75 ; Output: chars are copied into letter, starting at the beginning.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
76 ; FSR2 point to the first unused char (the NULL termination).
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
77 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
78 ; Trashed: WREG, TBLPTR, TABLAT, PRODL
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
79 ; Note: This are all bank-safe call.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
80 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
81 STRCPY macro string
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
82 call strcpy_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
83 DB string, 0
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
84 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
85
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
86 ;=============================================================================
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
87 ; A variant of STRCPY that appends chars to the current FSR2 pointer.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
88 ; Input/Output/Trashed : see STRCPY.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
89 STRCAT macro string
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
90 call strcat_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
91 DB string, 0
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
92 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
93
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
94 ;=============================================================================
123
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
95 ; A variant of STRCAT when there is just on char to output
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
96 ; Input/Output/Trashed : none.
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
97 PUTC macro char
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
98 movlw char
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
99 movwf POSTINC2
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
100 endm
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
101
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
102 ;=============================================================================
97
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
103 ; A variant of STRCPY that send the string to the word processor afterwards.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
104 ; Input/Output: see STRCPY.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
105 ; Trashed: See STRCPY + word_processor. In particular, switch RAM to Bank1
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
106 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
107 STRCPY_PRINT macro string
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
108 call strcpy_block_print
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
109 DB string, 0
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
110 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
111
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
112 ; Trashed: See STRCPY + word_processor. In particular, switch RAM to Bank1
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
113 STRCAT_PRINT macro string
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
114 call strcat_block_print
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
115 DB string, 0
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
116 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
117
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
118 ;=============================================================================
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
119 ; A shortcut for the macros WIN_TOP + WIN_LEFT + WIN_FONT + WIN_INVERT.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
120 ; The idea is to replace a 4x6=24 bytes sequence by a more compact 6bytes one.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
121 ;
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
122 ; Trashed: TBLPTR, TABLAT, WREG.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
123 ; Note: This are all bank-safe call.
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
124
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
125 WIN_SMALL macro x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
126 call start_small_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
127 DB x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
128 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
129
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
130 WIN_SMALL_INVERT macro x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
131 call start_small_invert_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
132 DB x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
133 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
134
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
135 WIN_MEDIUM macro x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
136 call start_medium_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
137 DB x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
138 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
139
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
140 WIN_MEDIUM_INVERT macro x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
141 call start_medium_invert_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
142 DB x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
143 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
144
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
145 WIN_LARGE macro x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
146 call start_large_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
147 DB x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
148 endm
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
149
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
150 WIN_LARGE_INVERT macro x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
151 call start_large_invert_block
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
152 DB x, y
dc349e4264bb Cleanup CF for bad 15bits value display
JeanDo
parents:
diff changeset
153 endm
123
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
154
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
155 ;=============================================================================
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
156 ; A shortcut for PLED_box and PLED_frame call sequences.
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
157 ;
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
158 ; Erase a given screen area.
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
159 WIN_BOX_BLACK macro top, bottom, left, right
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
160 call box_black_block
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
161 db top, (bottom)-(top)+1, left, (right)-(left)+1
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
162 endm
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
163
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
164 ; Fill a given screen area with standard color (CF35).
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
165 WIN_BOX_STD macro top, bottom, left, right
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
166 call box_std_block
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
167 db top, (bottom)-(top)+1, left, (right)-(left)+1
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
168 endm
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
169
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
170 ; Fill a given screen area with color from WREG (8bits rrrgggbb)
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
171 WIN_BOX_COLOR macro top, bottom, left, right
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
172 call box_color_block
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
173 db top, (bottom)-(top)+1, left, (right)-(left)+1
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
174 endm
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
175
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
176 ; Draw a frame in standard color (CF35).
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
177 WIN_FRAME_STD macro top, bottom, left, right
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
178 call box_frame_std
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
179 db top, (bottom)-(top)+1, left, (right)-(left)+1
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
180 endm
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
181
6a94f96e9cea The big cleanup, again.
JeanDo
parents: 97
diff changeset
182