[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | Mathematics at DEC |
|
Moderator: | RUSURE::EDP |
|
Created: | Mon Feb 03 1986 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 2083 |
Total number of notes: | 14613 |
123.0. "Floating Point; IBM to VAX" by HARE::STAN () Wed Aug 08 1984 23:14
Here's a program by Yuichi Inasawa for converting a floating point number
from IBM hexadecimal format to VAX-11 binary format:
8-AUG-1984 00:32 TKOV60::INASAWA
============================================================================
.title cvtfhb
;++
; subroutine cvtfhb (data,nofd)
; real data(*)
; integer nofd
;
; purpose - to convert single floating point
; from Hexadecimal(IBM) to Binary(VAX-11)
;
; last edit - 2-DEC-1981
;
; programed by Inasawa, Yuichi
;
;
; --- VAX-11 single floating format ---
;
; 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
; +---------------+---------------+
; :s: exp : frac_2 :
; :---------------+---------------+
; : frac_1 : frac_0 :
; +---------------+---------------+
; exp
; s=0 + (0.1|frac_2|frac_1|frac_0) * 2
; 1 -
;
; --- IBM single floating format ---
;
; 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
; +---------------+---------------+
; : frac_1 : frac_0 :
; :---------------+---------------+
; :s: exp : frac_2 :
; +---------------+---------------+
; exp
; s=0 + (0.|frac_2|frac_1|frac_0) * 16
; 1 -
;--
data = 4
nofd = 8
.entry cvtfhb, ^m<r2,r3,r4>
movl #1,r0
cmpb #2,(ap)
bneq 1$
movl @nofd(ap),r0
bleq return
1$:
movl data(ap),r1
next: ; +---+---+---+---+
movb 0(r1),-(sp) ; ! 0 ! 1 ! 2 ! 3 !
movb 1(r1),-(sp) ; +---+---+---+---+
movb 2(r1),-(sp) ;
movb 3(r1),-(sp) ; +---+---+---+---+
movl (sp)+,r2 ; ! 3 ! 2 ! 1 ! 0 !
; +---+---+---+---+
extzv #24,#7,r2,r3
subl2 #^x40,r3
ashl #2,r3,r3
bicl3 #^xFF000000,r2,r4
bneq 1$
clrl r3
brb mov
1$:
bbs #23,r4,2$
ashl #1,r4,r4
decl r3
brb 1$
2$:
addl2 #^x80,r3
ashl #7,r3,r3
insv r4,#16,#16,r3
ashl #-16,r4,r4
insv r4,#0,#7,r3
bbc #31,r2,mov
bisl #^x8000,r3
mov:
movl r3,(r1)+
sobgtr r0,next
return:
ret
.end
T.R | Title | User | Personal Name | Date | Lines
|
---|