Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 1 ST6 MACRO-ASSEMBLER version 4.10 - August 1993 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 2 --- SOURCE FILE : c:\st6\data\regul\vide6\vide6.asm --- 1 1 ;===================================================================== 2 2 ; vide6.ASM - DIGIPRESS 96 - REGULATEUR DE POMPE A VIDE 3 3 ;===================================================================== 4 4 ;premiere version : 02-05-1996. 5 5 ;pour ST6210 (le 20 pattes 2K ROM) 6 6 ;attention: espace mémoire ROM différent sur ST62T20 7 7 ;affichage sur AFFICHEUR LCD 16 caractères 8 8 ;ATTENTION Qx = 3,2768 Mhz 9 9 10 10 ;MODIF: 20-03-97 : (suppression de la fonction METEO) 11 11 ;MODIF: 21-05-97 : (Hystérésis = 1 au lieu de 2) 12 12 ;MODIF: 26-05-97 : Qx = 3,2768 Mhz au lieu de 4,000 Mhz 13 13 14 14 ;--------------------------------------------------------------------- 15 15 ;Directives d'assemblage 16 16 17 17 .title "VIDE5" 18 18 .vers "st6210" 19 19 .romsize 4 20 20 .input "6215_reg.asm" --- SOURCE FILE : 6215_reg.asm --- 21 1 1 ;|---------------------------------------------------------------------------| 22 1 2 ;| ST6210/15 and ST6220/25 Registers Declaration | 23 1 3 ;| Use this file with the .input directive. | 24 1 4 ;|---------------------------------------------------------------------------| 25 1 5 26 1 6 x .def 80h!m ; Index register. 27 1 7 y .def 81h!m ; Index register. 28 1 8 v .def 82h ; Short direct register. 29 1 9 w .def 83h ; Short direct register. 30 1 10 31 1 11 a .def 0ffh!m ; Accumulator. 32 1 12 33 1 13 dra .def 0c0h ; Port a data register. 34 1 14 drb .def 0c1h ; Port b data register. 35 1 15 drc .def 0c2h ; Port c data register. 36 1 16 37 1 17 ddra .def 0c4h ; Port a direction register. 38 1 18 ddrb .def 0c5h ; Port b direction register. 39 1 19 ddrc .def 0c6h ; Port c direction register. 40 1 20 41 1 21 ior .def 0c8h ; Interrupt option register. 42 1 22 drwr .def 0c9h ; Data rom window register. 43 1 23 44 1 24 ora .def 0cch ; Port a option register. 45 1 25 orb .def 0cdh ; Port b option register. 46 1 26 orc .def 0ceh ; Port c option register. 47 1 27 48 1 28 adr .def 0d0h ; A/D data register. 49 1 29 adcr .def 0d1h ; A/D control register. 50 1 30 51 1 31 psc .def 0d2h ; Timer prescaler register. 52 1 32 tcr .def 0d3h ; Timer counter register. 53 1 33 tscr .def 0d4h ; Timer status control register. 54 1 34 55 1 35 wdr .def 0d8h ; Watchdog register. Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 3 VIDE5 --- SOURCE FILE : c:\st6\data\regul\vide6\vide6.asm --- 56 21 .w_on 57 22 58 23 ;Constantes 59 24 60 25 os .equ 0FEh 61 26 duree .equ 24 ;24 heures au départ 62 27 63 28 ;adresses registres 64 29 ;Les données en RAM commencent à l'adresse 84h (=132). voir p:15 65 30 ;FIN à BFh (=191) soit 60 octets. 66 31 ; de 80h à 84h, ce sont les registres X, Y, V, W 67 32 68 33 BB .def 84h ;pour opérations en bit unique sur port B 69 34 AA .def 85h ;sauvegarde de A 70 35 VV .def 86h 71 36 rom .def 87h ;copie du drwr voir p:64 72 37 Aff1 .def 88h ;copie mémoire d'un digit 73 38 Aff2 .def 89h 74 39 Aff3 .def 8Ah 75 40 Aff4 .def 8Bh 76 41 delai1 .def 8Ch 77 42 delai2 .def 8Dh 78 43 memo0 .def 8Eh 79 44 memo1 .def 8Fh 80 45 memo2 .def 90h 81 46 memo3 .def 91h 82 47 valbin0 .def 92h 83 48 valbin1 .def 93h 84 49 unit .def 94h 85 50 cent .def 95h 86 51 compte .def 96h 87 52 tm .def 97h ;pour mesure temps moteur 88 53 mode .def 98h 89 54 tare .def 99h 90 55 depress .def 9Ah 91 56 consign .def 9Bh 92 57 caract .def 9Ch ;caractere a afficher 93 58 nombre .def 9Dh 94 59 data .def 9Eh ;data vers afficheur LCD 95 60 decal .def 9Fh ;decallage adresses en ROM 96 61 bitn .def 0A0h 97 62 digit .def 0A1h 98 63 decal_m .def 0A2h 99 64 negatif .def 0A3h ;pour afficher signe (-) 100 65 consi_m .def 0A4h 101 66 tarvrai .def 0A5h ;valeur tare sans non corrigée 102 67 div67 .def 0A6h 103 68 heures .def 0A7h 104 69 minutes .def 0A8h 105 70 secondes .def 0A9h 106 71 tot .def 0AAh ;pour totaliser temps moteur 107 72 h_m .def 0ABh ;pour totaliser temps moteur 108 73 mn_m .def 0ACh ;pour totaliser temps moteur 109 74 s_m .def 0ADh ;pour totaliser temps moteur 110 75 top .def 0AEh ;memorise le plus grand 'tm' 111 76 on .def 0AFh ;on=0 -> arret on=1 ->marche 112 77 113 78 ;------------------------------------------------------------------ Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 4 VIDE5 114 79 .org 880h ;espace memoire pour ST6210 p:14 115 80 ;(adresse en ROM !) 116 81 ;=================================== 117 82 ;ATTENTION ORG=080h POUR LE ST62T20 118 83 ;=================================== 119 84 120 P00 0880 P00 0880 85 string1 .ascii " PRESSION: " ;0 121 86 .ascii "DEPRESSION: " ;12 122 87 .ascii " CONSIGNE: " ;24 123 88 .ascii " PB TARAGE! " ;36 124 89 .ascii " FUITE !!! " ;48 125 90 .ascii "----" ;pour éviter brisure de page à 64 126 91 .ascii " " ;64 127 92 .ascii " BONJOUR ! " ;76 128 93 .ascii "Surpression!" ;88 129 94 .ascii "Reste " ;100 130 95 .ascii " -- FIN -- " ;112 131 96 .ascii "----" ;pour éviter brisure de page à 128 132 97 .ascii "Taux Fuite: " ;128 133 98 .ascii "T.Mot " ;140 134 99 .ascii "DIGIPRESS 96" ;152 135 100 .ascii "Tarage.... " ;164 136 101 .ascii "Ouvrir tube " ;176 137 102 .ascii "----" ;pour éviter brisure de page à 192 138 P00 0940 P00 0940 103 string2 .ascii "0123456789" 139 104 140 105 ;================================================================= 141 106 ; RAPPEL 142 107 ;000 E + R 143 108 ;001 E 144 109 ;010 E + R + int 145 110 ;011 E (PA0-3) ; E analogique (autres; 1 seule à la fois !) 146 111 ;10x S drain ouvert 10mA (PA0-3) ; drain ouvert 5mA (autres) 147 112 ;11x S sym 148 113 ;================================================================= 149 P00 094A 0DD8FE P00 094A 114 reset ldi wdr,os ;chargt chien de garde 150 115 151 P00 094D 0DC4FF P00 094D 116 ldi ddra,11111111b 152 P00 0950 0DCCFF P00 0950 117 ldi ora, 11111111b 153 P00 0953 0DC00F P00 0953 118 ldi dra, 00001111b 154 119 155 P00 0956 0DC50F P00 0956 120 ldi ddrb,00001111b 156 P00 0959 0DCD8F P00 0959 121 ldi orb, 10001111b ;entrée PB7 analog 157 P00 095C 0D84C0 P00 095C 122 ldi BB, 11000000b 158 P00 095F 1F84 P00 095F 123 ld A,BB 159 P00 0961 9FC1 P00 0961 124 ld drb,A 160 125 161 P00 0963 0DC600 P00 0963 126 clr ddrc 162 P00 0966 0DCE00 P00 0966 127 clr orc 163 P00 0969 0DC200 P00 0969 128 clr drc 164 129 165 P00 096C 0DC800 P00 096C 130 ldi ior, 00000000b ;interruptions interdites p:98 166 P00 096F 0DD45C P00 096F 131 ldi tscr,01011100b ;quartz/16 p:99 167 P00 0972 0DD30A P00 0972 132 ldi tcr,10 168 133 169 P00 0975 0DA643 P00 0975 134 ldi div67,67 170 P00 0978 0DA93C P00 0978 135 ldi secondes,60 171 P00 097B 0DA83C P00 097B 136 ldi minutes,60 172 P00 097E 0DA718 P00 097E 137 ldi heures,duree 173 138 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 5 VIDE5 174 P00 0981 0D9200 P00 0981 139 clr valbin0 175 P00 0984 0D9300 P00 0984 140 clr valbin1 176 P00 0987 0D9801 P00 0987 141 ldi mode,1 177 P00 098A 0D9600 P00 098A 142 ldi compte,0 178 P00 098D 0D995A P00 098D 143 ldi tare,90 ;par défaut 179 P00 0990 0D9700 P00 0990 144 clr tm 180 P00 0993 0DAA03 P00 0993 145 ldi tot,3 181 P00 0996 0DAB01 P00 0996 146 ldi h_m,1 182 P00 0999 0DAC01 P00 0999 147 ldi mn_m,1 183 P00 099C 0DAD01 P00 099C 148 ldi s_m,1 184 P00 099F 0DAE00 P00 099F 149 clr top 185 P00 09A2 0DAF00 P00 09A2 150 clr on 186 P00 09A5 0DA300 P00 09A5 151 clr negatif 187 152 188 P00 09A8 DFFF P00 09A8 153 clr A ;efface le bit de retenue 189 154 190 P00 09AA 4D P00 09AA 155 reti ;retour au mode normal p:99 191 156 192 157 ;*********************************************************************** 193 158 ;Corps du programme principal 194 159 195 P00 09AB 0DC810 P00 09AB 160 debut ldi ior,00010000b ;interruptions autorisées p:89; 98 196 P00 09AE 0DD110 P00 09AE 161 ldi adcr,00010000b ;CAN ACTIF p:50 197 P00 09B1 D1CE P00 09B1 162 call tempo10 198 163 199 164 ;RAZ LCD 200 P00 09B3 D1D2 P00 09B3 165 call dspclr 201 P00 09B5 91D3 P00 09B5 166 call home 202 P00 09B7 11D2 P00 09B7 167 call fset 203 P00 09B9 41D4 P00 09B9 168 call setmode 204 P00 09BB 01D5 P00 09BB 169 call dsp10 205 170 206 171 ;message de bienvenue 207 P00 09BD D1B3 P00 09BD 172 call vert ;allume LED verte 208 173 209 P00 09BF 0D9F98 P00 09BF 174 ldi decal,152 ;DIGIPRESS 96 210 P00 09C2 11DA P00 09C2 175 call affitxt 211 P00 09C4 D1D0 P00 09C4 176 call tempo1s 212 177 213 P00 09C6 0D9F4C P00 09C6 178 ldi decal,76 ;bonjour 214 P00 09C9 11DA P00 09C9 179 call affitxt 215 P00 09CB D1D0 P00 09CB 180 call tempo1s 216 181 217 P00 09CD D1B8 P00 09CD 182 call lirecns ;lit pot. de consigne 1ere fois 218 183 219 P00 09CF 0DD8FE P00 09CF 184 boucle ldi wdr,os 220 185 221 P00 09D2 11C7 P00 09D2 186 call tarbute ;évite valeur abérante si mega parasite ! 222 P00 09D4 1FA7 P00 09D4 187 ld A,heures 223 P00 09D6 3718 P00 09D6 188 cpi A,duree 224 P00 09D8 1E P00 09D8 189 jrc suite11 225 P00 09D9 0DA718 P00 09D9 190 ldi heures,duree ;évite nb d'heures > 10 226 191 227 P00 09DC 1F9B P00 09DC 192 suite11 ld A,consign 228 P00 09DE 9FA4 P00 09DE 193 ld consi_m,A 229 P00 09E0 D1B8 P00 09E0 194 call lirecns ;lit pot. de consigne 230 P00 09E2 DFA4 P00 09E2 195 sub A,consi_m 231 P00 09E4 3702 P00 09E4 196 cpi A,2 232 P00 09E6 5E P00 09E6 197 jrc suite12 ;saut si consign inchangé (diff <2 ) 233 P00 09E7 37FD P00 09E7 198 cpi A,253 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 6 VIDE5 234 P00 09E9 42 P00 09E9 199 jrnc suite12 ;saut si consign inchangé (diff > 253 ) 235 200 236 P00 09EA 1F98 P00 09EA 201 ld A,mode 237 P00 09EC 3709 P00 09EC 202 cpi A,9 238 P00 09EE 1C P00 09EE 203 jrz suite12 ;saut si FUITE. (Maintient mode alarme) 239 P00 09EF 0D9802 P00 09EF 204 ldi mode,2 ;on a touché au potentiomètre 240 205 241 206 242 207 ;touche MODE (verte) ----------------------------- 243 P00 09F2 33C11D P00 09F2 208 suite12 jrs 4,drb,suite20 ;saut si touche non détectée 244 P00 09F5 0D9700 P00 09F5 209 clr tm ;stop ALERTE éventuelle 245 P00 09F8 CB84 P00 09F8 210 res 3,BB ;stop BUZZER 246 P00 09FA 1F84 P00 09FA 211 ld A,BB 247 P00 09FC 9FC1 P00 09FC 212 ld drb,A 248 P00 09FE 7F98 P00 09FE 213 inc mode 249 P00 0A00 1F98 P00 0A00 214 ld A,mode 250 P00 0A02 3707 P00 0A02 215 cpi A,7 ;mode = 1..6 251 P00 0A04 1E P00 0A04 216 jrc att1 252 P00 0A05 0D9801 P00 0A05 217 ldi mode,1 253 218 254 P00 0A08 0DD8FE P00 0A08 219 att1 ldi wdr,os 255 P00 0A0B D1CE P00 0A0B 220 call tempo10 256 P00 0A0D 21A8 P00 0A0D 221 call modes 257 P00 0A0F 23C1F6 P00 0A0F 222 jrr 4,drb,att1 ;attend relachement touche 258 223 259 224 ;touche JAUNE ------------------------------------------------------- 260 P00 0A12 B3C12C P00 0A12 225 suite20 jrs 5,drb,suite30 ;saut si touche non détectée 261 P00 0A15 0D9700 P00 0A15 226 clr tm ;stop ALERTE éventuelle 262 227 263 P00 0A18 1F98 P00 0A18 228 ld A,mode 264 P00 0A1A 3701 P00 0A1A 229 cpi A,1 ;en mode DEPRESSION 265 P00 0A1C 40 P00 0A1C 230 jrnz suite22 266 P00 0A1D D1CA P00 0A1D 231 call arret 267 P00 0A1F 61B4 P00 0A1F 232 call rouge 268 P00 0A21 51C0 P00 0A21 233 call tarage 269 P00 0A23 99A3 P00 0A23 234 jp att2 270 235 271 P00 0A25 1F98 P00 0A25 236 suite22 ld A,mode 272 P00 0A27 3704 P00 0A27 237 cpi A,4 273 P00 0A29 20 P00 0A29 238 jrnz suite25 274 P00 0A2A 81BC P00 0A2A 239 call decTps ;en mode chrono 275 P00 0A2C 99A3 P00 0A2C 240 jp att2 276 241 277 P00 0A2E 1F98 P00 0A2E 242 suite25 ld A,mode 278 P00 0A30 3705 P00 0A30 243 cpi A,5 ;en mode Taux de fuite 279 P00 0A32 28 P00 0A32 244 jrnz suite27 280 P00 0A33 0DAE00 P00 0A33 245 clr top 281 P00 0A36 99A3 P00 0A36 246 jp att2 282 247 283 P00 0A38 04 P00 0A38 248 suite27 nop ;si autres modes 284 249 285 P00 0A39 0DD8FE P00 0A39 250 att2 ldi wdr,os 286 P00 0A3C D1CE P00 0A3C 251 call tempo10 287 P00 0A3E A3C1F8 P00 0A3E 252 jrr 5,drb,att2 ;attend relachement touche 288 253 289 254 ;------------------------------------------------------------------- 290 P00 0A41 F1B4 P00 0A41 255 suite30 call lireprs ;lit pression sur MPX100 291 256 292 P00 0A43 E1C9 P00 0A43 257 call pompe ;asservissement moteur 293 258 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 7 VIDE5 294 P00 0A45 1FAF P00 0A45 259 ld A,on 295 P00 0A47 10 P00 0A47 260 jrnz suite31 ;saut si le moteur tourne 296 P00 0A48 69A6 P00 0A48 261 jp suite40 ;saut si moteur à l'arret 297 P00 0A4A FFAA P00 0A4A 262 suite31 dec tot 298 P00 0A4C 28 P00 0A4C 263 jrnz suite32 299 P00 0A4D 0DAA03 P00 0A4D 264 ldi tot,3 300 P00 0A50 71C8 P00 0A50 265 call inc_tpm 301 P00 0A52 7F97 P00 0A52 266 suite32 inc tm ;mesure rapport cyclique de marche 302 P00 0A54 1F97 P00 0A54 267 ld A,tm 303 P00 0A56 3FAE P00 0A56 268 cp A,top 304 P00 0A58 26 P00 0A58 269 jrc suite34 ;saut si tm < top 305 P00 0A59 9FAE P00 0A59 270 ld top,A ;si tm > top on fait: top:=tm 306 P00 0A5B 1F97 P00 0A5B 271 ld A,tm 307 P00 0A5D 3764 P00 0A5D 272 suite34 cpi A,100 308 P00 0A5F 36 P00 0A5F 273 jrc suite40 309 P00 0A60 0D9809 P00 0A60 274 ldi mode,9 ;ALERTE BUZZER: tps de pompage trop long 310 P00 0A63 0DAE00 P00 0A63 275 clr top 311 276 312 P00 0A66 21A8 P00 0A66 277 suite40 call modes 313 278 314 P00 0A68 31CC P00 0A68 279 call mult 315 P00 0A6A 61E3 P00 0A6A 280 call affnb 316 281 317 P00 0A6C 1F98 P00 0A6C 282 suite50 ld A,mode 318 P00 0A6E 3704 P00 0A6E 283 cpi A,4 319 P00 0A70 12 P00 0A70 284 jrnc suite55 ;pour ne pas afficher 0000 si mode > 3 320 285 321 P00 0A71 31E0 P00 0A71 286 call affi4 322 287 323 P00 0A73 7F96 P00 0A73 288 suite55 inc compte 324 P00 0A75 1F96 P00 0A75 289 ld A,compte 325 P00 0A77 37FA P00 0A77 290 cpi A,250 326 P00 0A79 30 P00 0A79 291 jrnz suite60 327 292 328 P00 0A7A 0D9700 P00 0A7A 293 clr tm ;pour mesurer le temps de marche 329 P00 0A7D 0D9600 P00 0A7D 294 clr compte 330 295 331 P00 0A80 F99C P00 0A80 296 suite60 jp boucle 332 297 333 298 ;********************************************************************** 334 299 ;début des procédures 335 300 ;********************************************************************** 336 301 ;========== traitement modes ================== 337 302 ;----- dépression ----------------------------- 338 P00 0A82 04 P00 0A82 303 modes nop ;os ? 339 P00 0A83 1F98 P00 0A83 304 mode1 ld A,mode 340 P00 0A85 3701 P00 0A85 305 cpi A,1 341 P00 0A87 14 P00 0A87 306 jrz md11 342 P00 0A88 A9A9 P00 0A88 307 jp mode2 343 P00 0A8A 0D9F0C P00 0A8A 308 md11 ldi decal,12 344 P00 0A8D 1FA3 P00 0A8D 309 ld A,negatif 345 P00 0A8F 1C P00 0A8F 310 jrz md12 346 P00 0A90 0D9F58 P00 0A90 311 ldi decal,88 347 P00 0A93 11DA P00 0A93 312 md12 call affitxt 348 P00 0A95 D1B3 P00 0A95 313 call vert 349 P00 0A97 1F9A P00 0A97 314 ld A,depress 350 P00 0A99 CD P00 0A99 315 ret 351 316 ;------ consigne ------------------------------- 352 P00 0A9A 1F98 P00 0A9A 317 mode2 ld A,mode 353 P00 0A9C 3702 P00 0A9C 318 cpi A,2 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 8 VIDE5 354 P00 0A9E 14 P00 0A9E 319 jrz md21 355 P00 0A9F B9AA P00 0A9F 320 jp mode3 356 P00 0AA1 0D9F18 P00 0AA1 321 md21 ldi decal,24 357 P00 0AA4 11DA P00 0AA4 322 call affitxt 358 P00 0AA6 D1B3 P00 0AA6 323 call vert 359 P00 0AA8 1F9B P00 0AA8 324 ld A,consign 360 P00 0AAA CD P00 0AAA 325 ret 361 326 362 327 ;----- pression absolue ------------------------- 363 328 ;pres abs =10 (101 - depress + 90 - tare) = 10 ( 191 -depress - tare) 364 P00 0AAB 1F98 P00 0AAB 329 mode3 ld A,mode 365 P00 0AAD 3703 P00 0AAD 330 cpi A,3 366 P00 0AAF 70 P00 0AAF 331 jrnz mode4 367 P00 0AB0 0D9F00 P00 0AB0 332 ldi decal,0 368 P00 0AB3 11DA P00 0AB3 333 call affitxt 369 P00 0AB5 D1B3 P00 0AB5 334 call vert 370 P00 0AB7 17BF P00 0AB7 335 ldi A,191 371 P00 0AB9 DF99 P00 0AB9 336 sub A,tare 372 P00 0ABB DF9A P00 0ABB 337 sub A,depress 373 P00 0ABD CD P00 0ABD 338 ret 374 339 375 340 ;---------- chrono ---------------- 376 P00 0ABE 1F98 P00 0ABE 341 mode4 ld A,mode 377 P00 0AC0 3704 P00 0AC0 342 cpi A,4 378 P00 0AC2 50 P00 0AC2 343 jrnz mode5 379 P00 0AC3 0D9F64 P00 0AC3 344 ldi decal,100 380 P00 0AC6 11DA P00 0AC6 345 call affitxt 381 P00 0AC8 D1B3 P00 0AC8 346 call vert 382 P00 0ACA 31E8 P00 0ACA 347 call affitps 383 P00 0ACC CD P00 0ACC 348 ret 384 349 ;- taux de fuite ------------------ 385 P00 0ACD 1F98 P00 0ACD 350 mode5 ld A,mode 386 P00 0ACF 3705 P00 0ACF 351 cpi A,5 387 P00 0AD1 60 P00 0AD1 352 jrnz mode6 388 P00 0AD2 0D9F80 P00 0AD2 353 ldi decal,128 389 P00 0AD5 11DA P00 0AD5 354 call affitxt 390 P00 0AD7 D1B3 P00 0AD7 355 call vert 391 P00 0AD9 D1CE P00 0AD9 356 call tempo10 392 P00 0ADB 11E2 P00 0ADB 357 call affitf 393 P00 0ADD CD P00 0ADD 358 ret 394 359 395 360 ;- T. moteur total -------------------------------- 396 P00 0ADE 1F98 P00 0ADE 361 mode6 ld A,mode 397 P00 0AE0 3706 P00 0AE0 362 cpi A,6 398 P00 0AE2 50 P00 0AE2 363 jrnz mode7 399 P00 0AE3 0D9F8C P00 0AE3 364 ldi decal,140 400 P00 0AE6 11DA P00 0AE6 365 call affitxt 401 P00 0AE8 D1B3 P00 0AE8 366 call vert 402 P00 0AEA E1EC P00 0AEA 367 call affitpm 403 P00 0AEC CD P00 0AEC 368 ret 404 369 405 370 ;------ PB DE TARAGE ------------------------------ 406 P00 0AED 1F98 P00 0AED 371 mode7 ld A,mode 407 P00 0AEF 3707 P00 0AEF 372 cpi A,7 408 P00 0AF1 14 P00 0AF1 373 jrz mode7_1 409 P00 0AF2 E9AF P00 0AF2 374 jp mode8 410 P00 0AF4 0D9F24 P00 0AF4 375 mode7_1 ldi decal,36 411 P00 0AF7 11DA P00 0AF7 376 call affitxt 412 P00 0AF9 61B4 P00 0AF9 377 call rouge 413 P00 0AFB 1FA5 P00 0AFB 378 ld A,tarvrai Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 9 VIDE5 414 P00 0AFD CD P00 0AFD 379 ret 415 380 ;------ FIN ------------------------------ 416 P00 0AFE 0DD8FE P00 0AFE 381 mode8 ldi wdr,os ;parce que c'est une boucle 417 P00 0B01 1F98 P00 0B01 382 ld A,mode 418 P00 0B03 3708 P00 0B03 383 cpi A,8 419 P00 0B05 14 P00 0B05 384 jrz mode8_1 420 P00 0B06 29B2 P00 0B06 385 jp mode9 421 P00 0B08 0D9F70 P00 0B08 386 mode8_1 ldi decal,112 422 P00 0B0B 11DA P00 0B0B 387 call affitxt 423 P00 0B0D 61B4 P00 0B0D 388 call rouge 424 P00 0B0F 4B84 P00 0B0F 389 res 2,BB ;stop moteur 425 P00 0B11 1F84 P00 0B11 390 ld A,BB 426 P00 0B13 9FC1 P00 0B13 391 ld drb,A 427 P00 0B15 1700 P00 0B15 392 ldi A,0 ;pour afficher 0000 428 P00 0B17 31CC P00 0B17 393 call mult 429 P00 0B19 61E3 P00 0B19 394 call affnb 430 P00 0B1B 31E0 P00 0B1B 395 call affi4 431 P00 0B1D E9AF P00 0B1D 396 jp mode8 ;BOUCLE 432 397 433 P00 0B1F 1FA5 P00 0B1F 398 ld A,tarvrai 434 P00 0B21 CD P00 0B21 399 ret 435 400 436 401 437 402 ;------- FUITE: ALARME BUZZER ---------------------- 438 P00 0B22 1F98 P00 0B22 403 mode9 ld A,mode 439 P00 0B24 3709 P00 0B24 404 cpi A,9 440 P00 0B26 14 P00 0B26 405 jrz mode9_1 441 P00 0B27 99B3 P00 0B27 406 jp mode10 442 P00 0B29 0D9F30 P00 0B29 407 mode9_1 ldi decal,48 443 P00 0B2C 11DA P00 0B2C 408 call affitxt 444 P00 0B2E 61B4 P00 0B2E 409 call rouge 445 P00 0B30 DB84 P00 0B30 410 set 3,BB 446 P00 0B32 1F84 P00 0B32 411 ld A,BB 447 P00 0B34 9FC1 P00 0B34 412 ld drb,A ;commande du buzzer 448 P00 0B36 1F9A P00 0B36 413 ld A,depress 449 P00 0B38 CD P00 0B38 414 ret 450 415 451 P00 0B39 0D9801 P00 0B39 416 mode10 ldi mode,1 ;au cas ou mode > 9... 452 P00 0B3C CD P00 0B3C 417 ret 453 418 454 419 ;====fin des modes ================================== 455 420 ;------------------------------------------------------------------------ 456 P00 0B3D 0B84 P00 0B3D 421 vert res 0,BB ;éteint led rouge 457 P00 0B3F 9B84 P00 0B3F 422 set 1,BB ;allume led verte 458 P00 0B41 1F84 P00 0B41 423 ld A,BB 459 P00 0B43 9FC1 P00 0B43 424 ld drb,A 460 P00 0B45 CD P00 0B45 425 ret 461 426 462 427 ;------------------------------------------------------------------------ 463 P00 0B46 8B84 P00 0B46 428 rouge res 1,BB ;éteint led verte 464 P00 0B48 1B84 P00 0B48 429 set 0,BB ;allume led rouge 465 P00 0B4A 1F84 P00 0B4A 430 ld A,BB 466 P00 0B4C 9FC1 P00 0B4C 431 ld drb,A 467 P00 0B4E CD P00 0B4E 432 ret 468 433 ;------------------------------------------------------------------------ 469 434 ;conversion analogique -> binaire (résultat -> A) 470 435 ;256 acquisitions cumulées dans valbin0 et valbin1 471 436 ;cumul div 256 -> A 472 437 ;cette technique permet d'obtenir une valeur stable (instabilité du CAN...) 473 P00 0B4F 0DCD8F P00 0B4F 438 lireprs ldi orb, 10001111b ;entrée PB7 analog Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 10 VIDE5 474 P00 0B52 0D82FF P00 0B52 439 ldi V,255 475 P00 0B55 0D9200 P00 0B55 440 clr valbin0 476 P00 0B58 0D9300 P00 0B58 441 clr valbin1 477 P00 0B5B 0DA300 P00 0B5B 442 clr negatif 478 443 479 P00 0B5E BBD1 P00 0B5E 444 anl1 set 5,adcr ;depart acquisition p:50 et 111 480 445 481 P00 0B60 0DD8FE P00 0B60 446 attente ldi wdr,os 482 P00 0B63 63D1FA P00 0B63 447 jrr 6,adcr,attente ;attend fin acqui 483 448 484 P00 0B66 ABD1 P00 0B66 449 res 5,adcr ;pret pour acqui suivante 485 P00 0B68 1FD0 P00 0B68 450 ld A,adr ;cumul resultat -> A 486 451 487 P00 0B6A DF99 P00 0B6A 452 sub A,tare ;offset. soit 1,76 V pour 1013mb -> affi 0 488 P00 0B6C 37FA P00 0B6C 453 cpi A,250 489 P00 0B6E 16 P00 0B6E 454 jrc anl2 490 P00 0B6F 1700 P00 0B6F 455 ldi A,0 ;zone de neutre 491 456 492 P00 0B71 37C8 P00 0B71 457 anl2 cpi A,200 493 P00 0B73 26 P00 0B73 458 jrc anl3 494 P00 0B74 0DA301 P00 0B74 459 ldi negatif,1 ;SURPRESSION ! 495 P00 0B77 2D P00 0B77 460 com A ;A:=255-A 496 461 497 P00 0B78 FD P00 0B78 462 anl3 ld W,A 498 P00 0B79 1F92 P00 0B79 463 ld A,valbin0 499 P00 0B7B 5F83 P00 0B7B 464 add A,W 500 465 501 P00 0B7D 9F92 P00 0B7D 466 ld valbin0,A 502 P00 0B7F 1700 P00 0B7F 467 ldi A,0 ;A=0 503 P00 0B81 AD P00 0B81 468 rlc A ;A=retenue1 504 P00 0B82 5F93 P00 0B82 469 add A,valbin1 505 P00 0B84 9F93 P00 0B84 470 ld valbin1,A 506 P00 0B86 9D P00 0B86 471 dec V 507 P00 0B87 14 P00 0B87 472 jrz finAnl 508 P00 0B88 E9B5 P00 0B88 473 jp anl1 509 474 510 P00 0B8A 1F93 P00 0B8A 475 finAnl ld A,valbin1 ;revient à diviser par 256 511 P00 0B8C CD P00 0B8C 476 ret 512 477 513 478 ;---------------------------------------------------------------------- 514 479 ;lecture pot. de consigne 515 480 ;conversion analogique -> binaire (résultat -> A) 516 481 ;256 acquisitions cumulées dans valbin0 et valbin1 517 482 ;sortie div 256 -> A 518 483 519 P00 0B8D 0DCD4F P00 0B8D 484 lirecns ldi orb, 01001111b ;entrée PB6 analog 520 P00 0B90 0D82FF P00 0B90 485 ldi V,255 521 P00 0B93 0D9200 P00 0B93 486 clr valbin0 522 P00 0B96 0D9300 P00 0B96 487 clr valbin1 523 488 524 P00 0B99 BBD1 P00 0B99 489 cns1 set 5,adcr ;depart acquisition p:50 et 111 525 490 526 P00 0B9B 0DD8FE P00 0B9B 491 att3 ldi wdr,os 527 P00 0B9E 63D1FA P00 0B9E 492 jrr 6,adcr,att3 ;attend fin acqui 528 493 529 P00 0BA1 ABD1 P00 0BA1 494 res 5,adcr ;pret pour acqui suivante 530 P00 0BA3 1FD0 P00 0BA3 495 ld A,adr ;cumul resultat -> A 531 496 532 P00 0BA5 FD P00 0BA5 497 cns2 ld W,A 533 P00 0BA6 1F92 P00 0BA6 498 ld A,valbin0 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 11 VIDE5 534 P00 0BA8 5F83 P00 0BA8 499 add A,W 535 500 536 P00 0BAA 9F92 P00 0BAA 501 ld valbin0,A 537 P00 0BAC 1700 P00 0BAC 502 ldi A,0 ;A=0 538 P00 0BAE AD P00 0BAE 503 rlc A ;A=retenue1 539 P00 0BAF 5F93 P00 0BAF 504 add A,valbin1 540 P00 0BB1 9F93 P00 0BB1 505 ld valbin1,A 541 P00 0BB3 9D P00 0BB3 506 dec V 542 P00 0BB4 14 P00 0BB4 507 jrz fincns 543 P00 0BB5 99B9 P00 0BB5 508 jp cns1 544 509 545 P00 0BB7 1F93 P00 0BB7 510 fincns ld A,valbin1 ;revient à diviser par 256 546 P00 0BB9 91F3 P00 0BB9 511 call div2A ;0..255 -> 0..128 (=0..-1280 mb max) 547 512 ;(en fait -1 atm max bien sur !) 548 P00 0BBB 3703 P00 0BBB 513 butee cpi A,3 549 P00 0BBD 12 P00 0BBD 514 jrnc butee1 550 P00 0BBE 1703 P00 0BBE 515 ldi A,3 ;-30 mb mini 551 P00 0BC0 3750 P00 0BC0 516 butee1 cpi A,80 552 P00 0BC2 16 P00 0BC2 517 jrc butee2 553 P00 0BC3 1750 P00 0BC3 518 ldi A,80 ;-800 mb maxi 554 P00 0BC5 9F9B P00 0BC5 519 butee2 ld consign,A 555 P00 0BC7 CD P00 0BC7 520 ret 556 521 ;---------------------------------------------------------------------- 557 522 ;décrémente la durée totale 30 mn par 30 mn 558 P00 0BC8 1FA8 P00 0BC8 523 decTps ld A,minutes 559 P00 0BCA 3720 P00 0BCA 524 cpi A,32 560 P00 0BCC 26 P00 0BCC 525 jrc dec_h1 ;saut si minutes < 32 561 526 562 P00 0BCD 0DA81F P00 0BCD 527 min30 ldi minutes,31 ;affichera 31-1 = 30 563 P00 0BD0 CD P00 0BD0 528 ret 564 529 565 P00 0BD1 1FA7 P00 0BD1 530 dec_h1 ld A,heures 566 P00 0BD3 3702 P00 0BD3 531 cpi A,2 567 P00 0BD5 16 P00 0BD5 532 jrc dec11 ;saut si heures < 2 568 P00 0BD6 99BE P00 0BD6 533 jp dec_h2 ;saut si heures >= 2 (affichée >= 1 ) 569 P00 0BD8 1FA8 P00 0BD8 534 dec11 ld A,minutes 570 P00 0BDA 3701 P00 0BDA 535 cpi A,1 571 P00 0BDC 10 P00 0BDC 536 jrnz dec12 572 P00 0BDD B9BF P00 0BDD 537 jp plein ;saut si h < 2 et mn = 1 (affi 0) 573 P00 0BDF 0DA701 P00 0BDF 538 dec12 ldi heures,1 ;affi 0 574 P00 0BE2 0DA801 P00 0BE2 539 ldi minutes,1 ;affi 0 575 P00 0BE5 0DA93C P00 0BE5 540 ldi secondes,60 ;affi 59 576 P00 0BE8 CD P00 0BE8 541 ret 577 P00 0BE9 1FA8 P00 0BE9 542 dec_h2 ld A,minutes 578 P00 0BEB 3702 P00 0BEB 543 cpi A,2 579 P00 0BED 3E P00 0BED 544 jrc dec_h3 ;saut si minutes < 2 (mn =1 ou mn =0 ) 580 P00 0BEE 0DA801 P00 0BEE 545 ldi minutes,1 ;si mn >=2 581 P00 0BF1 0DA93C P00 0BF1 546 ldi secondes,60 582 P00 0BF4 CD P00 0BF4 547 ret 583 548 584 P00 0BF5 FFA7 P00 0BF5 549 dec_h3 dec heures 585 P00 0BF7 0DA81F P00 0BF7 550 ldi minutes,31 586 P00 0BFA CD P00 0BFA 551 ret 587 552 588 P00 0BFB 0DA93C P00 0BFB 553 plein ldi secondes,60 ;le plein SVP, vérifiez la pression des pneus 589 P00 0BFE 0DA83C P00 0BFE 554 ldi minutes,60 590 P00 0C01 0DA718 P00 0C01 555 ldi heures,duree 591 P00 0C04 CD P00 0C04 556 ret 592 557 593 558 ;---------------------------------------------------------------------- Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 12 VIDE5 594 559 ;tare sera = 90 environ pour 1,76 V sur entrée A/D 595 560 ;c.a.d pour 1013 mb si l'ampli est bien réglé 596 561 ;si la pression athmospérique est < 1013 mb, tare sera > 90 597 562 ;si la pression athmospérique est > 1013 mb, tare sera < 90 598 563 599 P00 0C05 0D9FA4 P00 0C05 564 tarage ldi decal,164 ;"Tarage..." 600 P00 0C08 11DA P00 0C08 565 call affitxt 601 P00 0C0A D1D0 P00 0C0A 566 call tempo1s 602 P00 0C0C D1D0 P00 0C0C 567 call tempo1s 603 P00 0C0E 0D9FB0 P00 0C0E 568 ldi decal,176 ;"Ouvrir tube" 604 P00 0C11 11DA P00 0C11 569 call affitxt 605 P00 0C13 1744 P00 0C13 570 ldi A,68 606 P00 0C15 C1D5 P00 0C15 571 call ddras ;adresse 68 (position 1er chiffre) 607 P00 0C17 0D9C20 P00 0C17 572 ldi caract,' ' ;(efface nbr déja affiché) 608 P00 0C1A C1D6 P00 0C1A 573 call ecrire 609 P00 0C1C 0D9C20 P00 0C1C 574 ldi caract,' ' 610 P00 0C1F C1D6 P00 0C1F 575 call ecrire 611 P00 0C21 0D9C20 P00 0C21 576 ldi caract,' ' 612 P00 0C24 C1D6 P00 0C24 577 call ecrire 613 P00 0C26 0D9C20 P00 0C26 578 ldi caract,' ' ;espace (efface nbr déja affiché) 614 P00 0C29 C1D6 P00 0C29 579 call ecrire 615 580 616 P00 0C2B 0D8228 P00 0C2B 581 ldi V,40 617 P00 0C2E 1744 P00 0C2E 582 boucle2 ldi A,68 618 P00 0C30 C1D5 P00 0C30 583 call ddras ;adresse 68 (position 1er chiffre) 619 P00 0C32 0D9C7C P00 0C32 584 ldi caract,'|' 620 P00 0C35 C1D6 P00 0C35 585 call ecrire 621 P00 0C37 91CF P00 0C37 586 call tp100ms 622 P00 0C39 1744 P00 0C39 587 ldi A,68 623 P00 0C3B C1D5 P00 0C3B 588 call ddras ;adresse 68 (position 1er chiffre) 624 P00 0C3D 0D9C2F P00 0C3D 589 ldi caract,'/' 625 P00 0C40 C1D6 P00 0C40 590 call ecrire 626 P00 0C42 91CF P00 0C42 591 call tp100ms 627 P00 0C44 1744 P00 0C44 592 ldi A,68 628 P00 0C46 C1D5 P00 0C46 593 call ddras ;adresse 68 (position 1er chiffre) 629 P00 0C48 0D9C2D P00 0C48 594 ldi caract,'-' 630 P00 0C4B C1D6 P00 0C4B 595 call ecrire 631 P00 0C4D 91CF P00 0C4D 596 call tp100ms 632 P00 0C4F 1744 P00 0C4F 597 ldi A,68 633 P00 0C51 C1D5 P00 0C51 598 call ddras ;adresse 68 (position 1er chiffre) 634 P00 0C53 0D9C60 P00 0C53 599 ldi caract,96 ;` 635 P00 0C56 C1D6 P00 0C56 600 call ecrire 636 P00 0C58 91CF P00 0C58 601 call tp100ms 637 P00 0C5A 9D P00 0C5A 602 dec V 638 P00 0C5B 14 P00 0C5B 603 jrz suite80 639 P00 0C5C E9C2 P00 0C5C 604 jp boucle2 640 605 641 P00 0C5E 0D9900 P00 0C5E 606 suite80 ldi tare,0 ;important 642 P00 0C61 F1B4 P00 0C61 607 call lireprs 643 P00 0C63 9F99 P00 0C63 608 ld tare,A 644 P00 0C65 9FA5 P00 0C65 609 ld tarvrai,A 645 P00 0C67 11C7 P00 0C67 610 call tarbute 646 P00 0C69 7FFF P00 0C69 611 inc A ;affi zéro garanti 647 P00 0C6B 9F99 P00 0C6B 612 ld tare,A 648 P00 0C6D 0D9801 P00 0C6D 613 ldi mode,1 649 P00 0C70 CD P00 0C70 614 ret 650 615 651 616 ;---------------------------------------------------------------------- 652 P00 0C71 1F99 P00 0C71 617 tarbute ld A,tare 653 P00 0C73 375F P00 0C73 618 cpi A,95 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 13 VIDE5 654 P00 0C75 3E P00 0C75 619 jrc tb1 ;saut si A < 95 655 P00 0C76 0D995A P00 0C76 620 ldi tare,90 ;par défaut 656 P00 0C79 0D9807 P00 0C79 621 ldi mode,7 ;pb de tarage 657 P00 0C7C CD P00 0C7C 622 ret 658 P00 0C7D 3755 P00 0C7D 623 tb1 cpi A,85 659 P00 0C7F 32 P00 0C7F 624 jrnc tb2 ;saut si A > 85 660 P00 0C80 0D995A P00 0C80 625 ldi tare,90 661 P00 0C83 0D9807 P00 0C83 626 ldi mode,7 ;pb de tarage 662 P00 0C86 CD P00 0C86 627 tb2 ret 663 628 ;----------------------------------------------------------------------- 664 629 ;Incrémente temps moteur 665 P00 0C87 7FAD P00 0C87 630 inc_tpm inc s_m 666 P00 0C89 1FAD P00 0C89 631 ld A,s_m 667 P00 0C8B 373D P00 0C8B 632 cpi A,61 668 P00 0C8D 7E P00 0C8D 633 jrc fininc 669 P00 0C8E 0DAD01 P00 0C8E 634 ldi s_m,1 670 P00 0C91 7FAC P00 0C91 635 inc mn_m 671 P00 0C93 1FAC P00 0C93 636 ld A,mn_m 672 P00 0C95 373D P00 0C95 637 cpi A,61 673 P00 0C97 2E P00 0C97 638 jrc fininc 674 P00 0C98 0DAC01 P00 0C98 639 ldi mn_m,1 675 P00 0C9B 7FAB P00 0C9B 640 inc h_m 676 P00 0C9D CD P00 0C9D 641 fininc ret 677 642 678 643 ;----------------------------------------------------------------------- 679 644 ;sortie pompe 680 645 681 P00 0C9E 9F9A P00 0C9E 646 pompe ld depress,A 682 P00 0CA0 1F9B P00 0CA0 647 ld A,consign 683 P00 0CA2 3F9A P00 0CA2 648 cp A,depress 684 P00 0CA4 46 P00 0CA4 649 jrc arret ;si consign < depress 685 P00 0CA5 1F9B P00 0CA5 650 ld A,consign 686 P00 0CA7 D701 P00 0CA7 651 subi A,1 ;hystérésis 687 P00 0CA9 3F9A P00 0CA9 652 cp A,depress 688 P00 0CAB 6A P00 0CAB 653 jrnc marche ;si consign-hystérésis > depress 689 P00 0CAC CD P00 0CAC 654 ret 690 P00 0CAD 4B84 P00 0CAD 655 arret res 2,BB 691 P00 0CAF 1F84 P00 0CAF 656 ld A,BB 692 P00 0CB1 9FC1 P00 0CB1 657 ld drb,A 693 P00 0CB3 D1CE P00 0CB3 658 call tempo10 694 P00 0CB5 0DAF00 P00 0CB5 659 ldi on,0 695 P00 0CB8 CD P00 0CB8 660 ret 696 P00 0CB9 5B84 P00 0CB9 661 marche set 2,BB 697 P00 0CBB 1F84 P00 0CBB 662 ld A,BB 698 P00 0CBD 9FC1 P00 0CBD 663 ld drb,A 699 P00 0CBF 0DAF01 P00 0CBF 664 ldi on,1 700 P00 0CC2 CD P00 0CC2 665 ret 701 666 ;------------------------------------------------------------------------ 702 667 ;multiplie la valeur de A range dans valbin0 et valbin1 703 P00 0CC3 0D820A P00 0CC3 668 mult ldi V,10 ;facteur de x 704 P00 0CC6 9F91 P00 0CC6 669 ld memo3,A 705 P00 0CC8 0D9200 P00 0CC8 670 clr valbin0 706 P00 0CCB 0D9300 P00 0CCB 671 clr valbin1 707 672 708 P00 0CCE 04 P00 0CCE 673 nf nop ;ldi wdr,os 709 P00 0CCF 1F92 P00 0CCF 674 ld A,valbin0 710 P00 0CD1 5F91 P00 0CD1 675 add A,memo3 ;retenue possible par débordement 711 P00 0CD3 9F92 P00 0CD3 676 ld valbin0,A 712 P00 0CD5 1700 P00 0CD5 677 ldi A,0 ;A=0 713 P00 0CD7 AD P00 0CD7 678 rlc A ;A=retenue1 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 14 VIDE5 714 P00 0CD8 5F93 P00 0CD8 679 add A,valbin1 715 P00 0CDA 9F93 P00 0CDA 680 ld valbin1,A 716 P00 0CDC 9D P00 0CDC 681 dec V 717 P00 0CDD 14 P00 0CDD 682 jrz sortie0 718 P00 0CDE E9CC P00 0CDE 683 jp nf 719 P00 0CE0 CD P00 0CE0 684 sortie0 ret 720 685 721 686 ;------------------------------------------------------------------------- 722 687 ;TEMPO 1ms (avec Qx=3.2768 MHz) 723 688 ;n'utilise pas le TIMER, et ne modifie pas les registres 724 689 ;cette tempo est OK. mesuree le 30-1-95 725 690 726 P00 0CE1 0D8C12 P00 0CE1 691 tp1ms ldi delai1,18 727 692 728 P00 0CE4 0DD8FE P00 0CE4 693 tp1m2 ldi wdr,os ;4 chargt chien de garde 729 P00 0CE7 FF8C P00 0CE7 694 dec delai1 ;4 730 P00 0CE9 14 P00 0CE9 695 jrz fin1ms ;2 731 P00 0CEA 49CE P00 0CEA 696 jp tp1m2 ;4 732 P00 0CEC CD P00 0CEC 697 fin1ms ret 733 698 734 699 ;3.2768 MHz/13 /(18 x 14 ) = 1000.2442 Hz 735 700 ;------------------------------------------------------------------------- 736 701 ;TEMPO 10ms (avec Qx=3.2768 MHz) 737 702 ;n'utilise pas le TIMER, et ne modifie pas les registres 738 703 ;cette tempo est OK. mesuree le 30-1-95 739 704 740 P00 0CED 0D8CB4 P00 0CED 705 tempo10 ldi delai1,180 741 706 742 P00 0CF0 0DD8FE P00 0CF0 707 bcl2 ldi wdr,os ;4 chargt chien de garde 743 P00 0CF3 FF8C P00 0CF3 708 dec delai1 ;4 744 P00 0CF5 14 P00 0CF5 709 jrz suiteTP ;2 745 P00 0CF6 09CF P00 0CF6 710 jp bcl2 ;4 746 P00 0CF8 CD P00 0CF8 711 suiteTP ret 747 712 748 713 ;3.2768 MHz/13 /(180 x 14 ) = 100,02442 Hz 749 714 ;------------------------------------------------------------------------- 750 715 ;TEMPO 100ms (avec Qx=3.2768 MHz) 751 716 ;n'utilise pas le TIMER, et ne modifie pas les registres 752 717 ;évite de faire un call supplémentaire 753 718 754 P00 0CF9 0D8D0A P00 0CF9 719 tp100ms ldi delai2,10 755 P00 0CFC 0D8CB4 P00 0CFC 720 ldi delai1,180 756 721 757 P00 0CFF 0DD8FE P00 0CFF 722 tp1 ldi wdr,os ;4 chargt chien de garde 758 P00 0D02 FF8C P00 0D02 723 dec delai1 ;4 759 P00 0D04 14 P00 0D04 724 jrz tp2 ;2 760 P00 0D05 F9CF P00 0D05 725 jp tp1 ;4 761 726 762 P00 0D07 FF8D P00 0D07 727 tp2 dec delai2 763 P00 0D09 14 P00 0D09 728 jrz fintp 764 P00 0D0A F9CF P00 0D0A 729 jp tp1 765 730 766 P00 0D0C CD P00 0D0C 731 fintp ret 767 732 768 733 ;------------------------------------------------------------------------- 769 734 ;TEMPO 1/2 s (avec Qx=3.2768 MHz) 770 735 ;n'utilise pas le TIMER, et ne modifie pas les registres 771 736 ;évite de faire un call supplémentaire 772 737 773 P00 0D0D 0D8D32 P00 0D0D 738 tempo1s ldi delai2,50 Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 15 VIDE5 774 P00 0D10 0D8CB4 P00 0D10 739 ldi delai1,180 775 740 776 P00 0D13 0DD8FE P00 0D13 741 bcl1s1 ldi wdr,os ;4 chargt chien de garde 777 P00 0D16 FF8C P00 0D16 742 dec delai1 ;4 778 P00 0D18 14 P00 0D18 743 jrz bcl1s2 ;2 779 P00 0D19 39D1 P00 0D19 744 jp bcl1s1 ;4 780 745 781 P00 0D1B FF8D P00 0D1B 746 bcl1s2 dec delai2 782 P00 0D1D 14 P00 0D1D 747 jrz fin1s 783 P00 0D1E 39D1 P00 0D1E 748 jp bcl1s1 784 749 785 P00 0D20 CD P00 0D20 750 fin1s ret 786 751 787 752 ;------------------------------------------------------------------------ 788 753 ;début des procédures d'affichage LCD 789 754 ;---------------------------------------------------------------------- 790 755 ;FUNCTION SET 791 756 ;utilisation de res et de set sur dra permises because port entier en sortie 792 757 793 P00 0D21 4BC0 P00 0D21 758 fset res 2,dra ;E=0 794 P00 0D23 CBC0 P00 0D23 759 res 3,dra ;R/S=0 795 760 796 P00 0D25 0D9E38 P00 0D25 761 ldi data,32+16+8 797 P00 0D28 B1D8 P00 0D28 762 call dataout ;transmission série vers 4015 -> DATA // LCD 798 P00 0D2A 01D8 P00 0D2A 763 call impuls 799 P00 0D2C CD P00 0D2C 764 ret 800 765 ;---------------------------------------------------------------------- 801 766 ;DISPLAY CLEAR 802 P00 0D2D 4BC0 P00 0D2D 767 dspclr res 2,dra ;E=0 803 P00 0D2F CBC0 P00 0D2F 768 res 3,dra ;R/S=0 804 769 805 P00 0D31 0D9E01 P00 0D31 770 ldi data,1 806 P00 0D34 B1D8 P00 0D34 771 call dataout 807 P00 0D36 01D8 P00 0D36 772 call impuls 808 P00 0D38 CD P00 0D38 773 ret 809 774 ;---------------------------------------------------------------------- 810 775 ;RETURN HOME 811 P00 0D39 0DC000 P00 0D39 776 home ldi dra,0 812 P00 0D3C 0D9E02 P00 0D3C 777 ldi data,2 813 P00 0D3F B1D8 P00 0D3F 778 call dataout 814 P00 0D41 01D8 P00 0D41 779 call impuls 815 P00 0D43 CD P00 0D43 780 ret 816 781 ;---------------------------------------------------------------------- 817 782 ;ENTRY MODE SET 818 P00 0D44 4BC0 P00 0D44 783 setmode res 2,dra ;E=0 819 P00 0D46 CBC0 P00 0D46 784 res 3,dra ;R/S=0 820 785 821 P00 0D48 0D9E06 P00 0D48 786 ldi data,4+2 ;sens inverse si 4+0 822 P00 0D4B B1D8 P00 0D4B 787 call dataout 823 P00 0D4D 01D8 P00 0D4D 788 call impuls 824 P00 0D4F CD P00 0D4F 789 ret 825 790 826 791 ;---------------------------------------------------------------------- 827 792 ;DISPLAY ON OFF 828 P00 0D50 4BC0 P00 0D50 793 dsp10 res 2,dra ;E=0 829 P00 0D52 CBC0 P00 0D52 794 res 3,dra ;R/S=0 830 795 831 P00 0D54 0D9E0C P00 0D54 796 ldi data,8+4 832 P00 0D57 B1D8 P00 0D57 797 call dataout 833 P00 0D59 01D8 P00 0D59 798 call impuls Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 16 VIDE5 834 P00 0D5B CD P00 0D5B 799 ret 835 800 ;---------------------------------------------------------------------- 836 801 ;DDRAM ADRESS SET (A) 837 802 ;A doit contenir l'adresse (position d'affichage. voir doc) 838 P00 0D5C 4BC0 P00 0D5C 803 ddras res 2,dra ;E=0 839 P00 0D5E CBC0 P00 0D5E 804 res 3,dra ;R/S=0 840 P00 0D60 0D9E80 P00 0D60 805 ldi data,128 841 P00 0D63 5F9E P00 0D63 806 add A,data 842 P00 0D65 9F9E P00 0D65 807 ld data,A 843 P00 0D67 B1D8 P00 0D67 808 call dataout 844 P00 0D69 01D8 P00 0D69 809 call impuls 845 P00 0D6B CD P00 0D6B 810 ret 846 811 ;---------------------------------------------------------------------- 847 812 ;ECRIRE 848 P00 0D6C 04 P00 0D6C 813 ecrire nop ;ldi wdr,os 849 P00 0D6D 4BC0 P00 0D6D 814 res 2,dra ;E=0 850 P00 0D6F DBC0 P00 0D6F 815 set 3,dra ;R/S=1 851 816 852 P00 0D71 1F9C P00 0D71 817 ld A,caract 853 P00 0D73 9F9E P00 0D73 818 ld data,A 854 P00 0D75 B1D8 P00 0D75 819 call dataout 855 820 856 P00 0D77 5BC0 P00 0D77 821 set 2,dra ;impuls E à 1 avec RS=1 857 P00 0D79 D1CE P00 0D79 822 call tempo10 858 P00 0D7B 4BC0 P00 0D7B 823 res 2,dra ;fin impulsion 859 P00 0D7D 11CE P00 0D7D 824 call tp1ms 860 P00 0D7F CD P00 0D7F 825 ret 861 826 862 827 ;---------------------------------------------------------------------- 863 828 ;impulsion E à 1 avec RS=0 864 P00 0D80 CBC0 P00 0D80 829 impuls res 3,dra ;R/S=0 865 P00 0D82 5BC0 P00 0D82 830 set 2,dra ;impulsion E à 1 866 P00 0D84 D1CE P00 0D84 831 call tempo10 867 P00 0D86 4BC0 P00 0D86 832 res 2,dra ;fin impulsion 868 P00 0D88 D1CE P00 0D88 833 call tempo10 869 P00 0D8A CD P00 0D8A 834 ret 870 835 871 836 ;---------------------------------------------------------------------- 872 837 ;SORTIE DATA (8 bits) en série sur PA0 vers CD4015. PA1=Clock 4015. 873 838 ;ne pas utiliser V dans cett procédure ! 874 P00 0D8B 0DA008 P00 0D8B 839 dataout ldi bitn,8 875 P00 0D8E 1F9E P00 0D8E 840 ld A,data 876 P00 0D90 5FFF P00 0D90 841 dtbcl sla A 877 P00 0D92 26 P00 0D92 842 jrc dt1 878 P00 0D93 0BC0 P00 0D93 843 res 0,dra ;bit = 0 879 P00 0D95 99D9 P00 0D95 844 jp out 880 P00 0D97 1BC0 P00 0D97 845 dt1 set 0,dra ;bit = 1 881 846 882 P00 0D99 9BC0 P00 0D99 847 out set 1,dra ;clock 4015 883 P00 0D9B 8BC0 P00 0D9B 848 res 1,dra ;fin clock 884 P00 0D9D FFA0 P00 0D9D 849 dec bitn 885 P00 0D9F 80 P00 0D9F 850 jrnz dtbcl 886 P00 0DA0 CD P00 0DA0 851 ret 887 852 888 853 ;------------------------------------------------------------------------- 889 854 ;AFFICHAGE MESSAGE EN ROM 890 855 ;l'afficheur est structuré en 2 'lignes' (situées cote à cote) 891 P00 0DA1 04 P00 0DA1 856 affitxt nop ;ldi wdr,os 892 P00 0DA2 1F9F P00 0DA2 857 ld A,decal 893 P00 0DA4 3FA2 P00 0DA4 858 cp A,decal_m Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 17 VIDE5 894 P00 0DA6 08 P00 0DA6 859 jrnz suiteaf ;affichage uniquement si decal a changé 895 P00 0DA7 CD P00 0DA7 860 ret 896 861 897 P00 0DA8 1F9F P00 0DA8 862 suiteaf ld A,decal 898 P00 0DAA 9FA2 P00 0DAA 863 ld decal_m,A 899 P00 0DAC 91D3 P00 0DAC 864 call home 900 P00 0DAE 0D8722 P00 0DAE 865 ldi rom,string1.W 901 P00 0DB1 1F87 P00 0DB1 866 ld A,rom ;on fait une copie voir p:64 902 P00 0DB3 9FC9 P00 0DB3 867 ld drwr,A 903 P00 0DB5 1F9F P00 0DB5 868 ld A,decal ;decallage dans le tableau en ROM 904 869 905 870 ;on va ajuster le nº de la page de 64 octets lus en ROM 906 P00 0DB7 3740 P00 0DB7 871 page cpi A,64 907 P00 0DB9 66 P00 0DB9 872 jrc suitepg 908 P00 0DBA BD P00 0DBA 873 ld V,A 909 P00 0DBB 7F87 P00 0DBB 874 inc rom 910 P00 0DBD 1F87 P00 0DBD 875 ld A,rom 911 P00 0DBF 9FC9 P00 0DBF 876 ld drwr,a 912 P00 0DC1 B5 P00 0DC1 877 ld A,V 913 P00 0DC2 D740 P00 0DC2 878 subi A,64 914 P00 0DC4 79DB P00 0DC4 879 jp page 915 880 916 P00 0DC6 0D8240 P00 0DC6 881 suitepg ldi V,string1.D ;voir p:65 917 P00 0DC9 5F82 P00 0DC9 882 add A,V 918 P00 0DCB 3D P00 0DCB 883 ld X,A 919 P00 0DCC 0D9D08 P00 0DCC 884 ldi nombre,8 ;affi 8 caract 920 P00 0DCF 1700 P00 0DCF 885 ldi A,0 921 P00 0DD1 C1D5 P00 0DD1 886 call ddras ;adresse 0 (à gauche de l'affichage) 922 P00 0DD3 07 P00 0DD3 887 bcl70 ld A,(X) ;lit 1 caractère dans le tableau 923 P00 0DD4 9F9C P00 0DD4 888 ld caract,A 924 P00 0DD6 C1D6 P00 0DD6 889 call ecrire 925 P00 0DD8 15 P00 0DD8 890 inc X 926 P00 0DD9 FF9D P00 0DD9 891 dec nombre 927 P00 0DDB B8 P00 0DDB 892 jrnz bcl70 928 893 929 P00 0DDC 0D9D04 P00 0DDC 894 ldi nombre,4 ;affi 4 car suivants 930 P00 0DDF 1740 P00 0DDF 895 ldi A,64 931 P00 0DE1 C1D5 P00 0DE1 896 call ddras ;adresse 64 (2eme partie de l'affichage) 932 P00 0DE3 07 P00 0DE3 897 bcl80 ld A,(X) ;lit 1 caractère dans le tableau 933 P00 0DE4 9F9C P00 0DE4 898 ld caract,A 934 P00 0DE6 C1D6 P00 0DE6 899 call ecrire 935 P00 0DE8 15 P00 0DE8 900 inc X 936 P00 0DE9 FF9D P00 0DE9 901 dec nombre 937 P00 0DEB B8 P00 0DEB 902 jrnz bcl80 938 903 939 P00 0DEC CD P00 0DEC 904 ret 940 905 ;------------------------------------------------------------------------- 941 906 ;AFFICHAGE 1 DIGIT (nombre) sur afficheur LCD 942 907 ;digit doit contenir ce nombre 943 P00 0DED 04 P00 0DED 908 affi nop ;ldi wdr,os 944 P00 0DEE 0D8725 P00 0DEE 909 ldi rom,string2.W 945 P00 0DF1 1F87 P00 0DF1 910 ld A,rom ;on fait une copie voir p:64 946 P00 0DF3 9FC9 P00 0DF3 911 ld drwr,A 947 P00 0DF5 1FA1 P00 0DF5 912 ld A,digit ;decall dans le tableau de chiffres en ROM 948 P00 0DF7 0D8240 P00 0DF7 913 ldi V,string2.D ;voir p:65 949 P00 0DFA 5F82 P00 0DFA 914 add A,V 950 P00 0DFC 3D P00 0DFC 915 ld X,A 951 P00 0DFD 07 P00 0DFD 916 ld A,(X) ;lit 1 caractère dans le tableau 952 P00 0DFE 9F9C P00 0DFE 917 ld caract,A 953 P00 0E00 C1D6 P00 0E00 918 call ecrire Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 18 VIDE5 954 P00 0E02 CD P00 0E02 919 ret 955 920 956 921 ;------------------------------------------------------------------------- 957 922 ;AFFICHAGE 4 DIGITS sur afficheur LCD 958 P00 0E03 04 P00 0E03 923 affi4 nop ;ldi wdr,os 959 P00 0E04 1744 P00 0E04 924 ldi A,68 960 P00 0E06 C1D5 P00 0E06 925 call ddras ;adresse 68 (position 1er chiffre) 961 P00 0E08 1F8B P00 0E08 926 ld A,Aff4 962 P00 0E0A 9FA1 P00 0E0A 927 ld digit,A 963 P00 0E0C D1DE P00 0E0C 928 call affi 964 P00 0E0E 1F8A P00 0E0E 929 ld A,Aff3 965 P00 0E10 9FA1 P00 0E10 930 ld digit,A 966 P00 0E12 D1DE P00 0E12 931 call affi 967 932 ;-------- 968 P00 0E14 1F89 P00 0E14 933 affi2 ld A,Aff2 969 P00 0E16 9FA1 P00 0E16 934 ld digit,A 970 P00 0E18 D1DE P00 0E18 935 call affi 971 P00 0E1A 1F88 P00 0E1A 936 ld A,Aff1 972 P00 0E1C 9FA1 P00 0E1C 937 ld digit,A 973 P00 0E1E D1DE P00 0E1E 938 call affi 974 P00 0E20 CD P00 0E20 939 ret 975 940 ;----------------------------------------------------------------------- 976 941 ;AFFICHAGE taux de fuite 977 942 ;2 DIGITS et de % sur afficheur LCD 978 943 ;seuls Aff2 et Aff1 sont pris en compte 979 P00 0E21 1744 P00 0E21 944 affitf ldi A,68 980 P00 0E23 C1D5 P00 0E23 945 call ddras ;adresse 68 (position 1er chiffre) 981 946 982 P00 0E25 0D9C20 P00 0E25 947 ldi caract,' ' ;espace (efface nbr déja affiché) 983 P00 0E28 C1D6 P00 0E28 948 call ecrire 984 949 985 P00 0E2A 1FAE P00 0E2A 950 ld A,top 986 P00 0E2C 31E6 P00 0E2C 951 call affi_A 987 P00 0E2E 41E1 P00 0E2E 952 call affi2 988 953 989 P00 0E30 0D9C25 P00 0E30 954 ldi caract,'%' 990 P00 0E33 C1D6 P00 0E33 955 call ecrire 991 956 992 P00 0E35 CD P00 0E35 957 ret 993 958 994 959 995 960 ;----------------------------------------------------------------------- 996 961 ;affichage nombre 0..9999 997 962 ;valbin0 et valbin1 contiennent un nb 0..9999 998 P00 0E36 1F92 P00 0E36 963 affnb ld A,valbin0 999 P00 0E38 91F2 P00 0E38 964 call cvBCU ;convertit valbin0 en BCD 1000 P00 0E3A B5 P00 0E3A 965 ld A,V 1001 P00 0E3B 9F94 P00 0E3B 966 ld unit,A 1002 P00 0E3D F5 P00 0E3D 967 ld A,W 1003 P00 0E3E 9F95 P00 0E3E 968 ld cent,A 1004 969 1005 970 ;on va ajouter valbin1 x 256 1006 971 1007 P00 0E40 1F93 P00 0E40 972 ld A,valbin1 1008 P00 0E42 9F91 P00 0E42 973 ld memo3,A ;pour ne pas toucher valbin1 1009 974 1010 P00 0E44 7F91 P00 0E44 975 inc memo3 ;hors boucle 1011 P00 0E46 FF91 P00 0E46 976 bcl1 dec memo3 1012 P00 0E48 10 P00 0E48 977 jrnz ici1 1013 P00 0E49 09E6 P00 0E49 978 jp suitef Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 19 VIDE5 1014 P00 0E4B 1F94 P00 0E4B 979 ici1 ld A,unit 1015 P00 0E4D 5738 P00 0E4D 980 addi A,56 ;(+56) retenue decimale possible 1016 P00 0E4F 3764 P00 0E4F 981 cpi A,100 1017 P00 0E51 26 P00 0E51 982 jrc st1 1018 P00 0E52 D764 P00 0E52 983 subi A,100 1019 P00 0E54 7F95 P00 0E54 984 inc cent ;ajout retenue decimale 1020 P00 0E56 9F94 P00 0E56 985 st1 ld unit,A 1021 P00 0E58 1F95 P00 0E58 986 ld A,cent 1022 P00 0E5A 5702 P00 0E5A 987 addi A,2 ;(+200) soit en tout +256 1023 P00 0E5C 9F95 P00 0E5C 988 ld cent,A 1024 P00 0E5E 69E4 P00 0E5E 989 jp bcl1 1025 990 1026 P00 0E60 E1E6 P00 0E60 991 suitef call affdeci 1027 P00 0E62 CD P00 0E62 992 ret 1028 993 1029 994 ;------------------------------------------------------------------------ 1030 995 ; A doit contenir un octet binaire 0..255 1031 P00 0E63 91F2 P00 0E63 996 affi_A call cvBCU ;fractionne l'octet en deux: 0..2 et 0..99 1032 P00 0E65 B5 P00 0E65 997 ld A,V 1033 P00 0E66 9F94 P00 0E66 998 ld unit,A 1034 P00 0E68 F5 P00 0E68 999 ld A,W 1035 P00 0E69 9F95 P00 0E69 1000 ld cent,A 1036 P00 0E6B E1E6 P00 0E6B 1001 call affdeci 1037 P00 0E6D CD P00 0E6D 1002 ret 1038 1003 1039 1004 ;------------------------------------------------------------------------ 1040 1005 ;nb decimaux dans unit et cent au préalable 1041 P00 0E6E 1F94 P00 0E6E 1006 affdeci ld A,unit ;0..99 1042 P00 0E70 91F1 P00 0E70 1007 call cvBDU 1043 P00 0E72 B5 P00 0E72 1008 ld A,V 1044 P00 0E73 9F88 P00 0E73 1009 ld Aff1,A 1045 P00 0E75 F5 P00 0E75 1010 ld A,W 1046 P00 0E76 9F89 P00 0E76 1011 ld Aff2,A 1047 P00 0E78 1F95 P00 0E78 1012 ld A,cent ;0..99 1048 P00 0E7A 91F1 P00 0E7A 1013 call cvBDU 1049 P00 0E7C B5 P00 0E7C 1014 ld A,V 1050 P00 0E7D 9F8A P00 0E7D 1015 ld Aff3,A 1051 P00 0E7F F5 P00 0E7F 1016 ld A,W 1052 P00 0E80 9F8B P00 0E80 1017 ld Aff4,A 1053 P00 0E82 CD P00 0E82 1018 ret 1054 1019 ;-------------------------------------------------------------------- 1055 1020 ;AFFICHAGE temps: HEURES:MINUTES:SECONDES 1056 P00 0E83 1740 P00 0E83 1021 affitps ldi A,64 ;adresse 1er pos affi à droite 1057 P00 0E85 C1D5 P00 0E85 1022 call ddras 1058 P00 0E87 1FA7 P00 0E87 1023 ld A,heures 1059 P00 0E89 FFFF P00 0E89 1024 dec A 1060 P00 0E8B 91F1 P00 0E8B 1025 call cvBDU 1061 P00 0E8D B5 P00 0E8D 1026 ld A,V 1062 P00 0E8E 9F86 P00 0E8E 1027 ld VV,A 1063 P00 0E90 F5 P00 0E90 1028 ld A,W 1064 P00 0E91 9FA1 P00 0E91 1029 ld digit,A 1065 P00 0E93 D1DE P00 0E93 1030 call affi ;attention: affi touche V 1066 P00 0E95 1F86 P00 0E95 1031 ld A,VV 1067 P00 0E97 9FA1 P00 0E97 1032 ld digit,A 1068 P00 0E99 D1DE P00 0E99 1033 call affi 1069 1034 1070 P00 0E9B 0D9C68 P00 0E9B 1035 ldi caract,'h' 1071 P00 0E9E C1D6 P00 0E9E 1036 call ecrire 1072 1037 1073 P00 0EA0 1FA8 P00 0EA0 1038 ld A,minutes Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 20 VIDE5 1074 P00 0EA2 FFFF P00 0EA2 1039 dec A 1075 P00 0EA4 91F1 P00 0EA4 1040 call cvBDU 1076 P00 0EA6 B5 P00 0EA6 1041 ld A,V 1077 P00 0EA7 9F86 P00 0EA7 1042 ld VV,A 1078 P00 0EA9 F5 P00 0EA9 1043 ld A,W 1079 P00 0EAA 9FA1 P00 0EAA 1044 ld digit,A 1080 P00 0EAC D1DE P00 0EAC 1045 call affi 1081 P00 0EAE 1F86 P00 0EAE 1046 ld A,VV 1082 P00 0EB0 9FA1 P00 0EB0 1047 ld digit,A 1083 P00 0EB2 D1DE P00 0EB2 1048 call affi 1084 1049 1085 P00 0EB4 0D9C27 P00 0EB4 1050 ldi caract,39 ;(') 1086 P00 0EB7 C1D6 P00 0EB7 1051 call ecrire 1087 1052 1088 P00 0EB9 1FA9 P00 0EB9 1053 ld A,secondes 1089 P00 0EBB FFFF P00 0EBB 1054 dec A 1090 P00 0EBD 91F1 P00 0EBD 1055 call cvBDU 1091 P00 0EBF B5 P00 0EBF 1056 ld A,V 1092 P00 0EC0 9F86 P00 0EC0 1057 ld VV,A 1093 P00 0EC2 F5 P00 0EC2 1058 ld A,W 1094 P00 0EC3 9FA1 P00 0EC3 1059 ld digit,A 1095 P00 0EC5 D1DE P00 0EC5 1060 call affi 1096 P00 0EC7 1F86 P00 0EC7 1061 ld A,VV 1097 P00 0EC9 9FA1 P00 0EC9 1062 ld digit,A 1098 P00 0ECB D1DE P00 0ECB 1063 call affi 1099 1064 1100 P00 0ECD CD P00 0ECD 1065 ret 1101 1066 ;-------------------------------------------------------------------- 1102 1067 ;AFFICHAGE TEMPS MOTEUR: HEURES,MINUTES,SECONDES 1103 P00 0ECE 1740 P00 0ECE 1068 affitpm ldi A,64 ;adresse 1er pos affi à droite 1104 P00 0ED0 C1D5 P00 0ED0 1069 call ddras 1105 P00 0ED2 1FAB P00 0ED2 1070 ld A,h_m 1106 P00 0ED4 FFFF P00 0ED4 1071 dec A 1107 P00 0ED6 91F1 P00 0ED6 1072 call cvBDU 1108 P00 0ED8 B5 P00 0ED8 1073 ld A,V 1109 P00 0ED9 9F86 P00 0ED9 1074 ld VV,A 1110 P00 0EDB F5 P00 0EDB 1075 ld A,W 1111 P00 0EDC 9FA1 P00 0EDC 1076 ld digit,A 1112 P00 0EDE D1DE P00 0EDE 1077 call affi ;attention: affi touche V 1113 P00 0EE0 1F86 P00 0EE0 1078 ld A,VV 1114 P00 0EE2 9FA1 P00 0EE2 1079 ld digit,A 1115 P00 0EE4 D1DE P00 0EE4 1080 call affi 1116 1081 1117 P00 0EE6 0D9C68 P00 0EE6 1082 ldi caract,'h' 1118 P00 0EE9 C1D6 P00 0EE9 1083 call ecrire 1119 1084 1120 P00 0EEB 1FAC P00 0EEB 1085 ld A,mn_m 1121 P00 0EED FFFF P00 0EED 1086 dec A 1122 P00 0EEF 91F1 P00 0EEF 1087 call cvBDU 1123 P00 0EF1 B5 P00 0EF1 1088 ld A,V 1124 P00 0EF2 9F86 P00 0EF2 1089 ld VV,A 1125 P00 0EF4 F5 P00 0EF4 1090 ld A,W 1126 P00 0EF5 9FA1 P00 0EF5 1091 ld digit,A 1127 P00 0EF7 D1DE P00 0EF7 1092 call affi 1128 P00 0EF9 1F86 P00 0EF9 1093 ld A,VV 1129 P00 0EFB 9FA1 P00 0EFB 1094 ld digit,A 1130 P00 0EFD D1DE P00 0EFD 1095 call affi 1131 1096 1132 P00 0EFF 0D9C27 P00 0EFF 1097 ldi caract,39 ;(') 1133 P00 0F02 C1D6 P00 0F02 1098 call ecrire Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 21 VIDE5 1134 1099 1135 P00 0F04 1FAD P00 0F04 1100 ld A,s_m 1136 P00 0F06 FFFF P00 0F06 1101 dec A 1137 P00 0F08 91F1 P00 0F08 1102 call cvBDU 1138 P00 0F0A B5 P00 0F0A 1103 ld A,V 1139 P00 0F0B 9F86 P00 0F0B 1104 ld VV,A 1140 P00 0F0D F5 P00 0F0D 1105 ld A,W 1141 P00 0F0E 9FA1 P00 0F0E 1106 ld digit,A 1142 P00 0F10 D1DE P00 0F10 1107 call affi 1143 P00 0F12 1F86 P00 0F12 1108 ld A,VV 1144 P00 0F14 9FA1 P00 0F14 1109 ld digit,A 1145 P00 0F16 D1DE P00 0F16 1110 call affi 1146 P00 0F18 CD P00 0F18 1111 ret 1147 1112 1148 1113 ;-------------------------------------------------------------------- 1149 1114 ;CONVERSION BINAIRE (1 octet incomplet 0..99 et pas 0..255) --> BCD 1150 1115 1151 1116 ;nombre à convertir dans A 1152 1117 ;resultat dans W (dizaines) et dans V (unités) 1153 1118 ;ex: A=28 -> W=2 et V=8 1154 1119 1155 P00 0F19 0D8200 P00 0F19 1120 cvBDU ldi V,0 1156 P00 0F1C 0D8300 P00 0F1C 1121 ldi W,0 1157 P00 0F1F 370A P00 0F1F 1122 conv2 cpi A,10 1158 P00 0F21 2E P00 0F21 1123 jrc conv3 ;saut si A<10 1159 P00 0F22 D70A P00 0F22 1124 subi A,10 ;en boucle : revient à diviser A par 10 1160 P00 0F24 D5 P00 0F24 1125 inc W 1161 P00 0F25 F9F1 P00 0F25 1126 jp conv2 ;9 passages au max si nb <= 99 1162 P00 0F27 BD P00 0F27 1127 conv3 ld V,A ;reste de la division 1163 P00 0F28 CD P00 0F28 1128 ret 1164 1129 ;-------------------------------------------------------------------- 1165 1130 ;CONVERSION BINAIRE (1 octet complet 0..255) --> DECIMAL 2 octets (0..99) 1166 1131 ;nombre à convertir dans A 1167 1132 ;resultat dans W (centaines) et dans V (unités) 1168 1133 ;ex A=236 -> W=2 et V=36 1169 1134 1170 P00 0F29 0D8200 P00 0F29 1135 cvBCU ldi V,0 1171 P00 0F2C 0D8300 P00 0F2C 1136 ldi W,0 1172 P00 0F2F 3764 P00 0F2F 1137 cv2 cpi A,100 1173 P00 0F31 2E P00 0F31 1138 jrc cv3 ;saut si A<100 1174 P00 0F32 D764 P00 0F32 1139 subi A,100 ;en boucle : revient à diviser A par 100 1175 P00 0F34 D5 P00 0F34 1140 inc W 1176 P00 0F35 F9F2 P00 0F35 1141 jp cv2 ;2 passages au max puisque A<=255 1177 P00 0F37 BD P00 0F37 1142 cv3 ld V,A ;reste de la division 1178 P00 0F38 CD P00 0F38 1143 ret 1179 1144 1180 1145 ;------------------------------------------------------------------------ 1181 1146 ;fait a div 2 --> A (equ à rrc A qui n'existe pas) 1182 P00 0F39 AD P00 0F39 1147 div2A rlc A 1183 P00 0F3A AD P00 0F3A 1148 rlc A 1184 P00 0F3B AD P00 0F3B 1149 rlc A 1185 P00 0F3C AD P00 0F3C 1150 rlc A 1186 P00 0F3D AD P00 0F3D 1151 rlc A 1187 P00 0F3E AD P00 0F3E 1152 rlc A 1188 P00 0F3F AD P00 0F3F 1153 rlc A 1189 P00 0F40 AD P00 0F40 1154 rlc A 1190 P00 0F41 EBFF P00 0F41 1155 res 7,A 1191 P00 0F43 CD P00 0F43 1156 ret 1192 1157 ;----------------------------------------------------------------------- 1193 1158 ;GESTION INT TIMER Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 22 VIDE5 1194 1159 ;ATTENTION Qx = 3.2768 Mhz 1195 1160 1196 P00 0F44 04 P00 0F44 1161 IntTimer nop ;ldi wdr,os 1197 P00 0F45 9F85 P00 0F45 1162 ld AA,A 1198 P00 0F47 EBD4 P00 0F47 1163 res 7,tscr ;RAZ du bit du TMZ voir page 104 et p:90 1199 P00 0F49 1FA7 P00 0F49 1164 ld A,heures 1200 P00 0F4B 10 P00 0F4B 1165 jrnz decompte ;on sort si heures non initialisees 1201 P00 0F4C F9F6 P00 0F4C 1166 jp finint 1202 1167 1203 P00 0F4E FFA6 P00 0F4E 1168 decompte dec div67 ;67 tops ecoules ? 1204 P00 0F50 14 P00 0F50 1169 jrz bip ;toutes les secondes 1205 P00 0F51 F9F6 P00 0F51 1170 jp finint ;non : fin interruption 1206 1171 1207 P00 0F53 0DA643 P00 0F53 1172 bip ldi div67,67 ;rechargement diviseur 1208 1173 ;3.2768Mhz/12/16/255/67 = 0.9989s 1209 P00 0F56 FFA9 P00 0F56 1174 dec secondes ;1 mn = 60 s 1210 P00 0F58 14 P00 0F58 1175 jrz topmn 1211 P00 0F59 F9F6 P00 0F59 1176 jp finint 1212 1177 1213 P00 0F5B 0DA93C P00 0F5B 1178 topmn ldi secondes,60 ;rechargement 1214 P00 0F5E FFA8 P00 0F5E 1179 dec minutes 1215 P00 0F60 14 P00 0F60 1180 jrz toph 1216 P00 0F61 F9F6 P00 0F61 1181 jp finint 1217 1182 1218 P00 0F63 0DA83C P00 0F63 1183 toph ldi minutes,60 1219 1184 1220 P00 0F66 FFA7 P00 0F66 1185 dec heures 1221 P00 0F68 30 P00 0F68 1186 jrnz finint 1222 1187 1223 P00 0F69 0DA700 P00 0F69 1188 eteint clr heures 1224 P00 0F6C 0D9808 P00 0F6C 1189 ldi mode,8 ;FIN 1225 1190 1226 P00 0F6F 1F85 P00 0F6F 1191 finint ld A,AA ;fin d interruption 1227 P00 0F71 4D P00 0F71 1192 reti 1228 1193 1229 1194 ;-------------------------------------------------------------------- 1230 1195 ;VECTEURS D'INTERRUPTION 1231 1196 1232 1197 .org 0FF0h ;conv A/D p:88 1233 P00 0FF0 04 P00 0FF0 1198 nop 1234 P00 0FF1 4D P00 0FF1 1199 reti 1235 1200 1236 1201 .org 0FF2h ;TIMER 1237 P00 0FF2 49F4 P00 0FF2 1202 jp IntTimer 1238 1203 1239 1204 .org 0FF4h ;ports B et C 1240 P00 0FF4 04 P00 0FF4 1205 nop 1241 P00 0FF5 4D P00 0FF5 1206 reti 1242 1207 1243 1208 .org 0FF6h ;port A 1244 P00 0FF6 04 P00 0FF6 1209 nop 1245 P00 0FF7 4D P00 0FF7 1210 reti 1246 1211 1247 1212 .org 0FFCh 1248 P00 0FFC 04 P00 0FFC 1213 nmi nop 1249 P00 0FFD 4D P00 0FFD 1214 reti 1250 1215 1251 1216 .org 0FFEh 1252 P00 0FFE A994 P00 0FFE 1217 res jp reset Fri Mar 20 18:52:22 1998 file c:\st6\data\regul\vide6\vide6.lis page 23 VIDE5 ** SPACE 'PAGE_0' SECTION MAP ** _______________________________________ | name | type | size | |-----------------|--------|----------| | PG0_0 | TEXT | 6F2 | | PG0_1 | TEXT | 2 | | PG0_2 | TEXT | 2 | | PG0_3 | TEXT | 2 | | PG0_4 | TEXT | 2 | | PG0_5 | TEXT | 2 | | PG0_6 | TEXT | 2 | |_________________|________|__________| No error detected No warning