old_ovl.ps
来自「开放源码的编译器open watcom 1.6.0版的源代码」· PS 代码 · 共 679 行 · 第 1/3 页
PS
679 行
@fs3 1500 6556 am (2.7 GET_MOVED_SECTION) shwd
@fs6 2050 6139 am (Inputs:) shwd 4450 (Outputs:) sd 2050 6000 am (AX = request\
number \(6\)) shwd 4450 (AX = 1 if the section exists) sd 2050 5861 am (CX:BX\
= far pointer to) shwd 4825 (0 otherwise) sd 2650 5722 am (overlay address)
shwd
@fs0 1500 5388 am (With) shwd 1825 (the) sd 2041 (dynamic) sd 2567 (overlay)
sd 3032 (manager,) sd 3594 (sections) sd 4088 (may) sd 4372 (be) sd 4548 (load\
ed,) sd 5002 (or) sd 5163 (moved,) sd 5624 (to) sd 5777 (positions) sd 6326 (o\
ther) sd 6658 (than) sd 6943 (where) sd 7329 (the) sd 1500 5221 am (linker)
shwd 1873 (originally) sd 2464 (placed) sd 2875 (them.) sd 3255 (The) sd 3518
(debugger) sd 4084 (must) sd 4400 (be) sd 4577 (informed) sd 5135 (of) sd 5297
(the) sd 5513 (new) sd 5791 (positions) sd 6341 (so) sd 6510 (that) sd 6765 (i\
t) sd 6888 (can) sd 7127 (update) sd 1500 5054 am (the locations of its sy\
mbolic information. The GET_MOVED_SECTION request is responsible) shwd
7336 (for) sd 1500 4887 am (informing) shwd 2109 (the) sd 2329 (debugger) sd
2899 (what) sd 3220 (sections) sd 3719 (have) sd 4032 (moved) sd 4461 (and) sd
4712 (their) sd 5017 (new) sd 5298 (locations.) sd 5948 (The) sd 6213 (debugge\
r) sd 6782 (will) sd 7048 (call) sd 7298 (this) sd 1500 4720 am (request) shwd
1945 (after) sd 2243 (the) sd 2455 (hook) sd 2776 (routine) sd 3214 (has) sd
3440 (been) sd 3744 (called,) sd 4154 (or) sd 4311 (the) sd 4522 (debugger) sd
5083 (has) sd 5309 (invoked) sd 5800 (the) sd 6011 (SET_OVERLAY_STATE) sd 1500
4553 am (request.) shwd 1989 (The) sd 2246 (request) sd 2690 (returns) sd 3119
(the) sd 3330 (first) sd 3596 (section) sd 4032 (whose) sd 4429 (id) sd 4578 (\
larger) sd 4945 (than) sd 5226 (the) sd 5437 (section) sd 5873 (number) sd 6340
(that) sd 6590 (is) sd 6722 (in) sd 6870 (the) sd 7080 (overlay) sd 1500 4386
am (address) shwd 1959 (being) sd 2310 (passed) sd 2722 (in.) sd 2915 (The) sd
3172 (overlay) sd 3632 (manager) sd 4153 (will) sd 4411 (fill) sd 4615 (in) sd
4764 (the) sd 4974 (overlay) sd 5433 (address) sd 5891 (with) sd 6179 (the) sd
6389 (section) sd 6824 (number) sd 7290 (that) sd 1500 4219 am (has) shwd 1728
(moved) sd 2150 (and) sd 2394 (its) sd 2568 (new) sd 2843 (segment) sd 3350 (a\
ddress.) sd 3860 (The) sd 4119 (offset) sd 4480 (portion) sd 4927 (of) sd 5085
(the) sd 5297 (overlay) sd 5758 (address) sd 6218 (is) sd 6352 (unused.) sd
6838 (The) sd 7096 (request) sd 1500 4052 am (will) shwd 1768 (return) sd 2153
(a) sd 2265 (one) sd 2517 (in) sd 2676 (AX.) sd 2991 (If) sd 3134 (there) sd
3463 (are) sd 3683 (no) sd 3872 (sections) sd 4371 (numbers) sd 4901 (larger)
sd 5277 (than) sd 5567 (the) sd 5787 (one) sd 6038 (being) sd 6398 (passed) sd
6819 (in) sd 6977 (that) sd 7236 (have) sd 1500 3885 am (moved, a zero is retu\
rned.) shwd 1500 3551 am (Here is some example debugger code:) shwd
@fs6 1750 3134 am (void CheckMovedSections\(\)) shwd 1750 2995 am ({) shwd 2050
2856 am (overlay_address addr;) shwd 2050 2551 am (addr.sect_id = 0;)
shwd 2050 2412 am (while\( OvlHandler\( GET_MOVED_SECTION, &addr \) \) {) shwd
2350 2273 am (HandleMovedSection\( addr.sect_id, addr.segment \);) shwd 2050
2134 am (}) shwd 1750 1995 am (}) shwd
@fs0 1500 1340 am (Overlay manager interface) shwd 7430 (4) sd
pageobj restore
showpage
%%Page: # 8
/pageobj save def
.072 .072 scale
2 setlinecap
@fs0
@fs3 1500 9839 am (2.8 GET_SECTION_DATA) shwd
@fs6 2050 9422 am (Inputs:) shwd 4450 (Outputs:) sd 2050 9283 am (AX = request\
number \(7\)) shwd 4450 (AX = 1 if the section exists) sd 2050 9144 am (CX:BX\
= far pointer to) shwd 4825 (0 otherwise) sd 2650 9005 am (overlay address)
shwd
@fs0 1500 8671 am (This) shwd 1800 (request) sd 2256 (returns) sd 2697 (inform\
ation) sd 3410 (on) sd 3602 (the) sd 3825 (current) sd 4273 (location) sd 4775
(of) sd 4943 (a) sd 5056 (section) sd 5503 (while) sd 5865 (it) sd 5994 (is)
sd 6138 (in) sd 6298 (memory) sd 6814 (\(or) sd 7029 (where) sd 7422 (it) sd
1500 8504 am (would) shwd 1892 (be) sd 2066 (if) sd 2194 (it) sd 2314 (was) sd
2573 (loaded\).) sd 3081 (The) sd 3339 (section) sd 3776 (number) sd 4244 (por\
tion) sd 4690 (of) sd 4848 (the) sd 5060 (overlay) sd 5521 (address) sd 5981 (\
is) sd 6115 (filled) sd 6452 (in) sd 6602 (with) sd 6892 (the) sd 7104 (sectio\
n) sd 1500 8337 am (id) shwd 1650 (that) sd 1901 (information) sd 2603 (is) sd
2737 (being) sd 3089 (requested) sd 3666 (about) sd 4018 (before) sd 4416 (the)
sd 4627 (request) sd 5071 (is) sd 5204 (made.) sd 5592 (The) sd 5849 (overlay)
sd 6309 (manager) sd 6830 (returns) sd 7259 (zero) sd 1500 8170 am (in) shwd
1665 (AX) sd 1923 (if) sd 2065 (the) sd 2292 (section) sd 2744 (does) sd 3056
(not) sd 3291 (exist.) sd 3688 (Otherwise) sd 4319 (it) sd 4453 (returns) sd
4898 (one) sd 5156 (and) sd 5413 (fills) sd 5686 (in) sd 5850 (the) sd 6076 (o\
verlay) sd 6551 (address) sd 7025 (with) sd 7329 (the) sd 1500 8003 am (locati\
on) shwd 1993 (that) sd 2245 (the) sd 2458 (section) sd 2896 (is) sd 3030 (in)
sd 3180 (memory,) sd 3722 (or) sd 3880 (where) sd 4263 (it) sd 4382 (would) sd
4773 (currently) sd 5320 (go) sd 5501 (if) sd 5628 (it) sd 5747 (was) sd 6005
(loaded) sd 6419 (at) sd 6561 (that) sd 6812 (time.) sd 7148 (It) sd 7275 (als\
o) sd 1500 7836 am (fills in the section number portion of the address with th\
e size of the section in paragraphs.) shwd
@fs3 1500 7335 am (3) shwd
@fs2 ( Overlay Table Structure) shwd
@fs0 1500 6834 am (The pointer returned by the GET_OVL_TBL_ADDR request has th\
e following format:) shwd
@fs6 1750 6417 am (typedef struct ovl_table {) shwd 2050 6278 am (unsigned_8 \
major;) shwd 2050 6139 am (unsigned_8 minor;) shwd 2050 6000 am (void)
shwd 3250 (far *start;) sd 2050 5861 am (unsigned_16 delta;) shwd 2050
5722 am (unsigned_16 ovl_size;) shwd 2050 5583 am (ovltab_entry entries\
[ 1 ];) shwd 1750 5444 am (} ovl_table;) shwd
@fs0 1535 5110 am (The) shwd 1791 (fields) sd 2141 () sd
@fs6 (major) shwd
@fs0 2554 (and) sd 2794 () sd
@fs6 (minor) shwd
@fs0 3207 (field) sd 3502 (contain) sd 3952 (version) sd 4402 (numbers) sd 4921
(for) sd 5123 (the) sd 5332 (overlay) sd 5790 (table) sd 6100 (structure.) sd
6669 (If) sd 6801 (an) sd 6971 (upwardly) sd 1500 4943 am (compatible) shwd
2171 (change) sd 2617 (in) sd 2776 (the) sd 2997 (structures) sd 3591 (is) sd
3734 (made,) sd 4125 (the) sd 4346 (minor) sd 4730 (number) sd 5207 (will) sd
5474 (be) sd 5655 (incremented.) sd 6460 (If) sd 6603 (a) sd 6714 (non-upwardl\
y) sd 1500 4776 am (compatible) shwd 2180 (change) sd 2635 (to) sd 2803 (the)
sd 3032 (structures) sd 3634 (is) sd 3785 (made,) sd 4185 (the) sd 4414 (major)
sd 4798 (field) sd 5113 (will) sd 5389 (be) sd 5579 (incremented.) sd 6444 (T\
he) sd 6719 (current) sd 7174 (major) sd 1500 4609 am (version) shwd 1962 (is)
sd 2105 (three,) sd 2473 (the) sd 2694 (current) sd 3140 (minor) sd 3523 (vers\
ion) sd 3984 (is) sd 4126 (zero.) sd 4514 (The) sd
@fs6 4780 (start) sd
@fs0 5204 (field) sd 5510 (contains) sd 6025 (a) sd 6136 (32-bit) sd 6520 (far)
sd 6725 (pointer) sd 7171 (to) sd 7329 (the) sd 1500 4442 am ("actual") shwd
1994 (starting) sd 2460 (address) sd 2925 (of) sd 3088 (the) sd 3305 (program.)
sd 3882 (The) sd 4145 (overlay) sd 4611 (manager) sd 5138 (jumps) sd 5525 (to)
sd 5680 (this) sd 5928 (address) sd 6393 (after) sd 6695 (it) sd 6818 (has)
sd 7049 (finished) sd 1500 4275 am (initializing.) shwd 2179 (\(If) sd 2356 (a)
sd 2454 (debugger/sampler) sd 3492 (is) sd 3621 (present) sd 4061 (then) sd
4338 (the) sd 4545 (overlay) sd 5001 (manager calls into the hook routine with\
this) sd 1500 4108 am (address) shwd 1980 (on) sd 2181 (the) sd 2413 (return)
sd 2809 (stack.\)) sd 3238 (The) sd 3515 () sd
@fs6 (delta) shwd
@fs0 3950 (field) sd 4267 (contains) sd 4793 (the) sd 5024 (value) sd 5387 (to)
sd 5556 (be) sd 5748 (added) sd 6142 (to) sd 6311 (each) sd 6627 (of) sd 6804
(the) sd 7035 (segment) sd 1500 3941 am (relocations) shwd 2150 (when) sd 2489
(a) sd 2587 (section) sd 3019 (is) sd 3148 (loaded) sd 3557 (into) sd 3811 (me\
mory) sd 4312 (\(it) sd 4473 (contains) sd 4975 (the segment value for the fir\
st segment in the) sd 1500 3774 am (program.\)) shwd 2109 (The) sd 2379 () sd
@fs6 (ovl_size) shwd
@fs0 3032 (field) sd 3342 (contains) sd 3861 (the) sd 4085 (size) sd 4355 (of)
sd 4525 (the) sd 4749 (overlay) sd 5222 (area.) sd 5579 (This) sd 5880 (is) sd
6026 (only) sd 6327 (used) sd 6635 (in) sd 6796 (the) sd 7019 (dynamic) sd 1500
3607 am (overlay) shwd 1958 (manager.) sd 2551 (The) sd 2806 (final) sd 3101
(field,) sd 3431 () sd
@fs6 (entries) shwd
@fs0 (,) shwd 4028 (is) sd 4158 (a) sd 4257 (variable) sd 4745 (sized) sd 5069
(array) sd 5394 (containing) sd 6022 (one) sd 6261 (entry) sd 6586 (for) sd
6787 (each) sd 7080 (overlay) sd 1500 3440 am (section) shwd 1933 (in) sd 2079
(the) sd 2287 (program) sd 2798 (\(e.g.) sd 3087 (the) sd 3295 (tenth) sd 3612
(element) sd 4090 (in) sd 4235 (the) sd 4442 (array) sd 4766 (describes) sd
5322 (overlay) sd 5778 (section) sd 6210 (10.\)) sd 6468 (Each) sd 6783 (entry)
sd 7107 (has) sd 7329 (the) sd 1500 3273 am (following form:) shwd 1500 1340
am (Overlay manager interface) shwd 7430 (5) sd
pageobj restore
showpage
%%Page: # 9
/pageobj save def
.072 .072 scale
2 setlinecap
@fs0
@fs6 1750 10201 am (typedef struct ovltab_entry {) shwd 2050 10062 am (unsigne\
d_16 ) shwd 3099 (flags_anc;) sd 2050 9923 am (unsigned_16 ) shwd 3099 (relocs\
;) sd 2050 9784 am (unsigned_16 ) shwd 3099 (start_para;) sd 2050 9645 am (uns\
igned_16 ) shwd 3099 (code_handle;) sd 2050 9506 am (unsigned_16 ) shwd 3099 (\
num_paras;) sd 2050 9367 am (unsigned_16 ) shwd 3099 (fname;) sd 2050 9228 am
(unsigned_32 ) shwd 3099 (disk_addr;) sd 1750 9089 am (} ovltab_entry;) shwd
@fs0 1500 8755 am (The) shwd 1771 (top) sd 2004 (bit) sd 2206 (of) sd 2377 (th\
e) sd 2602 () sd
@fs6 (flag_anc) shwd
@fs0 3256 (field) sd 3567 (contains) sd 4087 (an) sd 4273 (indicator,) sd 4865
(while) sd 5229 (the) sd 5453 (program) sd 5980 (is) sd 6126 (running,) sd 6655
(of) sd 6825 (whether) sd 7329 (the) sd 1500 8588 am (overlay) shwd 1959 (sec\
tion) sd 2394 (is) sd 2526 (in) sd 2674 (memory) sd 3178 (\(value) sd 3567 (on\
e\)) sd 3855 (or) sd 4011 (must) sd 4321 (be) sd 4492 (loaded) sd 4904 (from)
sd 5215 (disk) sd 5487 (\(value) sd 5876 (zero\).) sd 6245 (The) sd 6500 (next)
sd 6779 (highest) sd 7221 (bit) sd 7407 (is) sd 1500 8421 am (filled) shwd
1837 (in) sd 1987 (by) sd 2168 (the) sd 2380 (linker) sd 2748 (and) sd 2991 (i\
nforms) sd 3467 (the) sd 3679 (overlay) sd 4140 (manager) sd 4662 (that) sd
4913 (the) sd 5125 (section) sd 5562 (must) sd 5874 (be) sd 6047 (loaded) sd
6461 (during) sd 6868 (the) sd 7080 (overlay) sd 1500 8254 am (manager) shwd
2018 (initialization.) sd 2802 (The) sd 3056 (remaining) sd 3660 (bits) sd 3899
(contain) sd 4348 (the) sd 4556 (overlay) sd 5013 (number) sd 5477 (for) sd
5678 (the) sd 5886 (ancestor) sd 6389 (of) sd 6542 (this) sd 6780 (section) sd
7212 (\(zero) sd 1500 8087 am (if) shwd 1638 (there) sd 1970 (is) sd 2115 (non\
e\).) sd 2590 (The) sd 2859 () sd
@fs6 (relocs) shwd
@fs0 3361 (field) sd 3670 (say) sd 3908 (how) sd 4201 (many) sd 4563 (segment)
sd 5080 (relocation) sd 5692 (items) sd 6046 (there) sd 6378 (are) sd 6601 (fo\
r) sd 6816 (this) sd 7069 (section,) sd 1500 7920 am (while) shwd 1861 (the)
sd 2082 () sd
@fs6 (start_para) shwd
@fs0 2882 (field) sd 3189 (gives) sd 3534 (the) sd 3755 (location) sd 4256 (in)
sd 4415 (memory) sd 4930 (\(relative) sd 5446 (to) sd 5604 (the) sd 5824 (sta\
rt) sd 6114 (of) sd 6280 (the) sd 6500 (program\)) sd 7070 (that) sd 7329 (the)
sd 1500 7753 am (section) shwd 1932 (should) sd 2341 (be) sd 2509 (placed) sd
2910 (when) sd 3249 (loaded.) sd 3695 (The) sd 3948 () sd
@fs6 (num_paras) shwd
@fs0 4659 (field) sd 4952 (contains) sd 5454 (the) sd 5661 (size) sd 5914 (of)
sd 6067 (the) sd 6274 (section) sd 6706 (in) sd 6851 (paragraphs,) sd 1500 7586
am (and) shwd 1748 (the) sd 1965 () sd
@fs6 (code_handle) shwd
@fs0 2836 (field) sd 3139 (is) sd 3278 (used) sd 3580 (for) sd 3790 (various)
sd 4248 (purposes) sd 4791 (inside) sd 5170 (the) sd 5386 (dynamic) sd 5912 (o\
verlay) sd 6377 (loader.) sd 6863 (The) sd 7125 () sd
@fs6 (fname) shwd
@fs0 1500 7419 am (field) shwd 1794 (has) sd 2017 (the) sd 2225 (offset) sd
2581 (of) sd 2735 (the) sd 2943 (address) sd 3399 (of) sd 3553 (a) sd 3652 (ze\
ro) sd 3929 (terminated) sd 4563 (string) sd 4918 (for) sd 5118 (the) sd 5325
(name) sd 5663 (of) sd 5816 (the) sd 6023 (file) sd 6246 (containing) sd 6873
(the) sd 7080 (overlay) sd 1500 7252 am (section) shwd 1932 (data) sd 2201 (an\
d) sd 2439 (relocations) sd 3089 (\(The) sd 3389 (segment) sd 3890 (value) sd
4229 (is) sd 4358 (the) sd 4565 (same) sd 4887 (as) sd 5039 (the) sd 5246 (ove\
rlay table\).) sd 6091 (If the top bit of the offset) sd 1500 7085 am (is)
shwd 1644 (on,) sd 1874 (then) sd 2166 (the) sd 2388 (file) sd 2626 (is) sd
2770 (the) sd 2992 (original) sd 3479 (EXE) sd 3801 (file) sd 4039 (rather) sd
4417 (than) sd 4709 (a) sd 4822 (separate) sd 5330 (overlay) sd 5800 (file,)
sd 6076 (and) sd 6328 (the) sd 6549 (overlay) sd 7019 (manager) sd 1500 6918
am (should) shwd 1920 (use) sd 2153 (the) sd 2371 (program) sd 2892 (file) sd
3126 (name) sd 3474 (obtained) sd 4002 (from) sd 4320 (DOS) sd 4646 (\(if) sd
4825 (the) sd 5042 (version) sd 5500 (is) sd 5639 (3.0) sd 5860 (or) sd 6023 (\
greater\).) sd 6562 (The) sd 6825 () sd
@fs6 (disk_addr) shwd
@fs0 1500 6751 am (field) shwd 1833 (gives) sd 2204 (the) sd 2451 (starting)
sd 2947 (offset) sd 3342 (the) sd 3589 (overlay) sd 4085 (data) sd 4393 (in)
sd 4577 (the) sd 4823 (overlay) sd 5318 (file.) sd 5731 (The) sd 6023 (segment)
sd 6563 (relocation) sd 7198 (items) sd 1500 6584 am (immediately follow the \
data.) shwd 1500 6250 am (The) shwd 1759 (end) sd 2003 (of) sd 2162 (the) sd
2375 () sd
@fs6 (entries) shwd
@fs0 2942 (array) sd 3271 (is) sd 3405 (indicated) sd 3959 (when) sd 4303 (an)
sd 4476 (element's) sd
@fs6 5060 (flags_anc) sd
@fs0 5776 (field) sd 6074 (contains) sd 6581 (the) sd 6793 (value) sd 7137 (0x\
ffff.) sd 1500 6083 am (The remaining fields in that element contain garbage v\
alues.) shwd 1500 1340 am (Overlay manager interface) shwd 7430 (6) sd
pageobj restore
showpage
%%Trailer
%%Pages: 9
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?