mirror of
https://github.com/open-simh/simtools.git
synced 2026-01-13 23:36:03 +00:00
103 lines
6.9 KiB
Plaintext
103 lines
6.9 KiB
Plaintext
1 ;;;;;
|
|
2 ;
|
|
3 ; Test floating point numbers.
|
|
4 ;
|
|
5 ; The values in the comments are the reference values from MACRO V05.05.
|
|
6 ;
|
|
7 000000 040200 .word ^F 1.0 ; 040200
|
|
8 000002 140200 .word ^F-1.0 ; 140200
|
|
9 000004 137600 .word -^F 1.0 ; 137600
|
|
10 000006 037600 .word -^F-1.0 ; 037600
|
|
11
|
|
12 000010 040706 .word ^F6.2 ; 040706
|
|
13 000012 137071 .word ^C^F6.2 ; 137071
|
|
14 000014 137071 .word ^C<^F6.2> ; 137071
|
|
15
|
|
16 000016 040706 063146 .flt2 6.2 ; 040706 063146
|
|
17 000022 040706 063146 063146 .flt4 6.2 ; 040706 063146 063146 063146
|
|
000030 063146
|
|
18
|
|
19 000032 040300 000000 .flt2 1.5 ; 040300 000000
|
|
20 000036 040300 000000 000000 .flt4 1.5 ; 040300 000000 000000 000000
|
|
000044 000000
|
|
21
|
|
22 000046 040511 .word ^F 3.1415926535897932384626433 ; 040511
|
|
23 000050 040511 007733 .flt2 3.1415926535897932384626433 ; 040511 007733
|
|
24 000054 040511 007732 121041 .flt4 3.1415926535897932384626433 ; 040511 007732 121041 064302
|
|
000062 064302
|
|
25
|
|
26 ; Test some large numbers at the edge of the exactly representable
|
|
27 ; integers.
|
|
28 ; 1 << 56 just barely fits: it uses 57 bits but the lsb is 0 so
|
|
29 ; when it is cut off, we don't notice.
|
|
30 ; 1 << 56 + 1 R the lsb are 01 and is cut off.
|
|
31 ; 1 << 56 + 2 the lsb are 10 and the missing 0 goes unnoticed.
|
|
32
|
|
33 ; 1 << 56 - 1 consists of 56 1 bits. This value and all smaller ints
|
|
34 ; 1 << 56 - 2 get represented exactly.
|
|
35
|
|
36 ; Going up, to rounding steps of 4:
|
|
37 ;
|
|
38 ; 1 << 57
|
|
39 ; 1 << 57 + 4 next higher available representation
|
|
40 ; 1 << 57 + 8 next higher available representation
|
|
41
|
|
42 ; 1 << 56 - 3
|
|
43 000064 056177 177777 177777 .flt4 72057594037927933 ; 056177 177777 177777 177775
|
|
000072 177775
|
|
44 ; 1 << 56 - 2
|
|
45 000074 056177 177777 177777 .flt4 72057594037927934 ; 056177 177777 177777 177776
|
|
000102 177776
|
|
46
|
|
47 ; 1 << 56 - 1
|
|
48 000104 056200 .word ^F 72057594037927935 ; 056200 (rounded!)
|
|
49 000106 056200 000000 .flt2 72057594037927935 ; 056200 000000 (rounded!)
|
|
50 000112 056177 177777 177777 .flt4 72057594037927935 ; 056177 177777 177777 177777
|
|
000120 177777
|
|
51
|
|
52 ; 1 << 56
|
|
53 000122 056200 .word ^F 72057594037927936 ; 056200
|
|
54 000124 056200 000000 .flt2 72057594037927936 ; 056200 000000
|
|
55 000130 056200 000000 000000 .flt4 72057594037927936 ; 056200 000000 000000 000000
|
|
000136 000000
|
|
56
|
|
57 000140 056200 000000 000000 .flt4 72057594037927938 ; 1 << 56 + 2
|
|
000146 000001
|
|
58 ; 056200 000000 000000 000001
|
|
59
|
|
60 000150 056400 000000 000000 .flt4 144115188075855872 ; 1 << 57
|
|
000156 000000
|
|
61 ; 056400 000000 000000 000000
|
|
62 000160 056400 000000 000000 .flt4 144115188075855873 ; 1 << 57 + 1
|
|
000166 000000
|
|
63 ; 056400 000000 000000 000000 (inexact)
|
|
64 000170 056400 000000 000000 .flt4 144115188075855874 ; 1 << 57 + 2
|
|
000176 000001
|
|
65 ; 056400 000000 000000 000001 (inexact)
|
|
66 000200 056400 000000 000000 .flt4 144115188075855875 ; 1 << 57 + 3
|
|
000206 000001
|
|
67 ; 056400 000000 000000 000001 (inexact)
|
|
68 000210 056400 000000 000000 .flt4 144115188075855876 ; 1 << 57 + 4
|
|
000216 000001
|
|
69 ; 056400 000000 000000 000001 (exact!)
|
|
70 000220 056400 000000 000000 .flt4 144115188075855880 ; 1 << 57 + 8
|
|
000226 000002
|
|
71 ; 056400 000000 000000 000002 (exact!)
|
|
72
|
|
73 ; This one triggers rounding up (round == 1)
|
|
74 000230 040725 052507 055061 .flt4 6.66666 ; 040725 052507 055061 122276
|
|
000236 122276
|
|
75
|
|
75
|
|
|
|
|
|
Symbol table
|
|
|
|
. ******R 001
|
|
|
|
|
|
Program sections:
|
|
|
|
. ABS. 000000 000 (RW,I,GBL,ABS,OVR,NOSAV)
|
|
000240 001 (RW,I,LCL,REL,CON,NOSAV)
|