1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 dir_dump: proc (a_dp, a_cur_len);
17
18 dcl (dp, a_dp, print_ptr) ptr,
19 i fixed bin (18),
20 (cur_len, a_cur_len, start) fixed bin (17),
21 for_vtoce bit (1) aligned,
22 w (8) fixed bin (35) based (print_ptr),
23 zero_line bit (36*8) based (print_ptr),
24 (t_line, char_fmt) char (32) aligned,
25 1 pad_stg aligned int static,
26 2 pd1 bit (4*36) init ((16) "001111111"b),
27 2 pd2 bit (4*36) init ((16) "001111111"b),
28 tb_line bit (8*36) based (addr (t_line)),
29 salv_err_msg ext entry options (variable),
30 (addr, fixed, rel, ptr, translate, unspec, collate, substr) builtin;
31
32 dcl first bit (1) aligned int static init ("1"b);
33 dcl map_string char (128) int static;
34
35 %include salv_data;
36 %include salvager_severities;
37
38 dp = a_dp;
39 cur_len = a_cur_len * 1024;
40 for_vtoce = "0"b;
41
42 doub:
43
44
45
46 if first then do;
47 map_string = collate ();
48 substr (map_string, 1, 32) = (32) ".";
49 substr (map_string, 128, 1) = ".";
50 first = "0"b;
51 end;
52 if salv_data$on_line then return;
53 if ^salv_data$dump then return;
54
55 start = fixed (rel (dp));
56
57 do i = start to (cur_len + start) -8 by 8;
58 print_ptr = ptr (dp, i);
59 if zero_line ^= "0"b then do;
60 call salv_err_msg (SALV_DEBUG, "^6o^4x^w^2x^w^2x^w^2x^w^2x^w^2x^w^2x^w^2x^w",
61 i, w (1), w (2), w (3), w (4), w (5), w (6), w (7), w (8));
62 tb_line = zero_line & unspec (pad_stg);
63 char_fmt = translate (t_line, map_string);
64 call salv_err_msg (SALV_DEBUG, "^88x^a", char_fmt);
65 end;
66 loop_c: end;
67
68 return;
69
70 vtoce: entry(a_vtocep);
71
72 dcl a_vtocep ptr;
73
74 for_vtoce = "1"b;
75 dp = a_vtocep;
76 cur_len = 192;
77 goto doub;
78
79
80 end dir_dump;