mida 64 ;------------------------------------------------------------- ;aplicación -> flota.prg ;fecha -> julio 23 2003 ;lee por protocolo libre una respuesta, toma los 32 bits y guarda en fflotaf resultado. ;------------------------------------------------------------- ;[reg_relays] ftxaux1r equ 400 ftxaux2r equ 401 ;[reg_integers] fbit1i equ 300 fbit2i equ 301 fbit3i equ 302 fbit4i equ 303 floci equ 310 faux40i equ 311 faux41i equ 312 fbitadi equ 313 fbitadti equ 314 ;[reg_floats] fbit1f equ 320 fbit2f equ 321 fbit3f equ 322 fbit4f equ 323 ftotf equ 330 ftxkf equ 331 f1a2f equ 332 fflotaf equ 333 faux35f equ 335 faux37f equ 337 faux38f equ 338 faux39f equ 339 ffin1f equ 340 ffin2f equ 341 ffin3f equ 342 ffin4f equ 343 ffin5f equ 344 ffin6f equ 345 ffin7f equ 346 ffin8f equ 347 ffin9f equ 348 ffin10f equ 349 ffin11f equ 350 ffin12f equ 351 ffin13f equ 352 ffin14f equ 353 ftxb1 equ 360 ftxb2 equ 361 ;[TIM] ftxtim1 equ 250 ;inicio variables------------------------ ;----------------------------------------------- flocio nop ftx0 jmp flo00 ftx1 reset ftxaux1r reset ftxaux2r ftx2 ld ftxaux1r tim ftxtim1 20 out ftxaux2r set ftxaux1r ld ftxaux2r jz ftx2 flo00 movci 3 stoi floci ld 318 jnz flo1 jmp ffin flo0 ;movri 22 ;clear ;disri 22 5 ;com 0 ;movri 22 ;movci 83 ;cpei flo1 ;jmp ffin flo1 ;clear loc 0 com 9 com 0 ;loc 0 ;lecb 0 1 ;com 0 ;stoi fbitadti ;movri fbitadi ;movri fbitadti ;cpei flo11 ;jmp flo11 flo11 locx floci ;despues de leer aqui se repite la separacion de datos lecb 0 1 stoi fbit1i movif fbit1i stof fbit1f inc floci 1 locx floci lecb 0 1 stoi fbit2i movif fbit2i stof fbit2f inc floci 1 locx floci lecb 0 1 stoi fbit3i movif fbit3i stof fbit3f inc floci 1 locx floci lecb 0 1 stoi fbit4i movif fbit4i stof fbit4f inc floci 1 movrf fbit1f ;comienzan los calculos.... stof f1a2f movrf f1a2f movcf 2 mulf stof f1a2f movrf fbit2f movcf 127 cpgf flo4 jmp flo5 flo4 movrf fbit2f movcf 128 subf stof fbit2f movrf f1a2f movcf 1 addf stof f1a2f ld 301 out 400 flo5 movcf 65536 movrf fbit2f mulf stof fbit2f movcf 256 movrf fbit3f mulf stof fbit3f movcf 1 movrf fbit4f mulf stof fbit4f movrf 0 stof ftotf movrf fbit3f movrf fbit2f addf stof ftotf movrf ftotf movrf fbit4f addf stof ftotf movcf 0.0000001192092896 movrf ftotf mulf stof ftxkf movrf ftxkf stof faux39f movcf 1 movrf ftxkf addf stof ftxkf movcf 1 stof faux38f movrf fbit1f movcf 127 cpgf flo2 jmp flo3 flo2 movcf -1 stof faux38f flo3 movrf f1a2f movcf 127 subf stof f1a2f movrf f1a2f stofi faux40i flo31 movci 0 stoi faux41i movcf 1 stof faux37f flo32 movcf 2 movrf faux37f mulf stof faux37f inc faux41i 1 movri faux41i movri faux40i cpli flo32 movrf faux37f movrf ftxkf mulf stof fflotaf movrf faux38f movrf fflotaf mulf stof fflotaf ;resultado en flotante ;movri floci ;clear ;disri floci 3 ;com 0 flo6 movci 7 comienza el llenado de variables en campos movri floci cpei flo61 jmp flo62 flo61 movrf fflotaf stof ffin1f flo62 movci 11 movri floci cpei flo63 jmp flo64 flo63 movrf fflotaf stof ffin2f flo64 movci 15 movri floci cpei flo65 jmp flo66 flo65 movrf fflotaf stof ffin3f flo66 movci 19 movri floci cpei flo67 jmp flo68 flo67 movrf fflotaf stof ffin4f flo68 movci 23 movri floci cpei flo69 jmp flo610 flo69 movrf fflotaf stof ffin5f flo610 movci 27 movri floci cpei flo611 jmp flo612 flo611 movrf fflotaf stof ffin6f flo612 movci 31 movri floci cpei flo613 jmp flo614 flo613 movrf fflotaf stof ffin7f flo614 movci 35 movri floci cpei flo615 jmp flo616 flo615 movrf fflotaf stof ffin8f flo616 movci 39 movri floci cpei flo617 jmp flo618 flo617 movrf fflotaf stof ffin9f flo618 movci 43 movri floci cpei flo619 jmp flo620 flo619 movrf fflotaf stof ffin10f flo620 movci 47 movri floci cpei flo621 jmp flo622 flo621 movrf fflotaf stof ffin11f flo622 movci 51 movri floci cpei flo623 jmp flo624 flo623 movrf fflotaf stof ffin12f flo624 movci 55 movri floci cpei flo625 jmp flo626 flo625 movrf fflotaf stof ffin13f flo626 movci 59 movri floci cpei flo627 jmp flo628 flo627 movrf fflotaf stof ffin14f flo628 movri floci movci 7 cpli flo11 ffin end