Knowledge

Overlay (programming)

Source 📝

1270:
up the absolute address of the segment, and forward the call, after having done its virtual memory loading thing... Return from the call will also pass through the corresponding unlocking code. The low nibble of the interrupt vector (80h–8Fh) holds bit 4 through 7 of the segment handle. Bit 0 to 3 of a segment handle are (by definition of a Geos handle) always 0. all Geos API run through the "overlay" scheme : when a Geos application is loaded into memory, the loader will automatically replace calls to functions in the system libraries by the corresponding INT-based calls. Anyway, these are not constant, but depend on the handle assigned to the library's code segment. Geos was originally intended to be converted to
155:+--------------+ | Root Segment | | MOD1, MOD2 | +--------------+ | +----------+----------+ | | +-------------+ +-------------+ | Overlay A | | Overlay B | | MOD3 | | MOD7 | +-------------+ +-------------+ | +--------+--------+ | | +-------------+ +-------------+ | Overlay AA | | Overlay AB | | MOD4, MOD5 | | MOD6 | +-------------+ +-------------+ 1261:-> 9A <offlow><offhigh><seglow><seghigh> with <seglow><seghigh> normally being defined as an address that must be fixed up at load time depending on the address where the code has been placed. 2. The Geos linker turns this into something else: INT 8xh -> CD 8x DB <seghigh>,<offlow>,<offhigh> Note that this is again five bytes, so it can be fixed up "in place". Now the problem is that an interrupt requires two bytes, while a CALL FAR instruction only needs one. As a result, the 32-bit vector (<seg><ofs>) must be 38: 1269:
is always zero. This saves four bits. In addition the remaining four bits go into the low nibble of the interrupt vector, thus creating anything from INT 80h to 8Fh. The interrupt handler for all those vectors is the same. It will "unpack" the address from the three-and-a-half byte notation, look
1044:
the OS interface in WordStar is quite narrow and well abstracted the WordStar 3.2x overlays are 100% identical between the DOS and CP/M-86 versions. There is a runtime switch which chooses between calling INT 21h (DOS) and INT E0h (CP/M-86). WS.COM is not the same between DOS and CP/M-86, although
185:
exceeds the available physical memory. Most importantly, the architect can focus on the problem being solved without the added design difficulty of forcing the processing into steps constrained by the overlay size. Thus, the designer can use higher-level programming languages that do not allow the
1247:
needs 16 interrupts is because the scheme is used to convert inter-segment ("far") function calls into interrupts, without changing the size of the code. The reason this is done so that "something" (the kernel) can hook itself into every inter-segment call made by a Geos application and make sure
1084:
Version 1.1 has a new dynamic Memory Management System (dMMS) that handles overlays more efficiently: the product requires less memory, which results in more applications space availability. The product's lower memory requirements of only 450K of RAM provide improved network support because
162:, and two overlays A and B which will be loaded following the end of MOD2. Overlay A itself consists of two overlay segments, AA, and AB. At execution time overlays A and B will both utilize the same memory locations; AA and AB will both utilize the same locations following the end of MOD3. 1256:
terms, this would be comparable to an overlay loader, but one that can be added without requiring explicit support from the compiler or the application. What happens is something like this: 1. The real mode compiler generates an instruction like this: CALL
1085:
supplemental hardware memory is no longer required to support networks. By speeding up areas of dBASE IV that are overlay-dependent, the new dMMS improves performance when working at the Control Center and in programs that use menus and windows.
151:
INCLUDE SYSLIB(MOD1) INCLUDE SYSLIB(MOD2) OVERLAY A INCLUDE SYSLIB(MOD3) OVERLAY AA INCLUDE SYSLIB(MOD4) INCLUDE SYSLIB(MOD5) OVERLAY AB INCLUDE SYSLIB(MOD6) OVERLAY B INCLUDE SYSLIB(MOD7)
894:. There are several file formats which use versions of PRL: SPR (System PRL), RSP (Resident System Process). LINK-80 can also produce OVL (overlay) files, which have a PRL header but are not relocatable. 1186: 290:
era overlays were popular because the operating system and many of the computer systems it ran on lacked virtual memory and had very little RAM by current standards: the original
261:. The program had to explicitly call the CHAIN subroutine to load a new link, and the new link replaced all of the old link's storage except for the Fortran COMMON area. 1231: 1103: 279:
by allowing an overlay program to have independent overlay regions, each with its own overlay tree. OS/360 also had a simpler overlay system for transient
1058: 597: 1173: 537: 1036:
and CP/M-86, only the main executable is different) the .OVR files are 100% identical between DOS and CP/M-86, with a flag (clearly shown in the
1144: 805: 585: 747: 1016: 658: 1265:
into 24 bits. This is achieved by two things: First, the <seg> address is encoded as a "handle" to the segment, whose lowest
1134:
Eßer, Hans-Georg (June 2009). "Chapter 6. Speicherverwaltung und Dateisysteme - Teil 5: Nicht-zusammenhängende Speicherzuordnung".
939: 276: 696: 957: 499: 927: 236: 181:. A developer on such a platform can design a program as if the memory constraint does not exist unless the program's 1118: 1041: 991: 629: 1219: 862: 305:
linkers in the 1980s supported in a form nearly identical to that used 25 years earlier on mainframe computers."
1258: 148:
to link an overlay program containing a single region, indented to show structure (segment names are arbitrary):
1069: 672: 668: 418: 727: 503: 240: 187: 549:
This lets you run programs which are, in effect, much larger than the amount of memory in your computer.
531: 1290: 983: 621: 635: 899: 895: 368: 1209: 1135: 835: 792: 777: 567: 734: 581: 1305: 1108: 442: 129:
into its destination region when it is needed; this may be automatic or via explicit code. Often
875: 206: 17: 905: 1008: 662: 455: 363: 228: 58: 50: 294:
had between 16K and 64K, depending on configuration. Overlays were a popular technique in
158:
These statements define a tree consisting of the permanently resident segment, called the
8: 210: 93:
Constructing an overlay program involves manually dividing a program into self-contained
1278:
only being a "legacy option" almost every single line of assembly code is ready for it
1175:
IBM OS Linkage Editor and Loader - Program Numbers 360S-ED-510, 360S-ED-521, 360S-LD-547
272:, including a tree structure and automatic loading of links as part of CALL processing. 1197: 823: 765: 555: 130: 21: 1227: 1114: 987: 702: 692: 625: 201:
Still, overlays remain useful in embedded systems. Some low-cost processors used in
1223: 684: 676: 202: 126: 122: 25: 1218:
Groeber, Marcus; Di Geronimo, Jr., Edward "Ed"; Paul, Matthias R. (2002-03-02) .
1182: 951: 801: 743: 527: 392: 295: 280: 74: 70: 66: 1271: 1249: 611: 413: 398: 178: 145: 106: 82: 78: 794:
IBM 7090/7094 Programming Systems – IBJOB Processor – Overlay feature of IBLDR
1299: 1037: 922: 403: 287: 218: 177:
As of 2015, most business applications are intended to run on platforms with
917: 688: 376: 165:
All the segments between the root and a given overlay segment are called a
1028:
The reason to suspect such difference is that version 3.2x also supported
1262: 1065: 891: 306: 182: 94: 62: 54: 29: 854: 350: 258: 113:
segments, those at the same depth level, share the same memory, called
918:"Platz schaffen durch Überlagern - Overlay-Strukturen in Turbo Pascal" 325:, etc. for subsequent files). This file type was used among others by 37: 1275: 887: 883: 380: 253: 195: 141:
The following example shows the control statements that instruct the
1291:
http://computer-programming-forum.com/29-pascal/45df7513ab22cf7e.htm
664:
An Assessment of Space Shuttle Flight Software Development Processes
326: 680: 1244: 1029: 950:
Gavin, Bruce. "Create Program Overlays". In Pearson, Dave (ed.).
746:. August 1963. pp. 34–35. Form C28-6054-4 File No. 7090-25. 372: 354: 213:
systems and overlays provide more determinate response-time than
706: 125:
or part of the overlay program, loads the required overlay from
1266: 472: 408: 291: 214: 142: 647: 353:" overlay files were even binary identical in their ports for 358: 269: 265: 232: 191: 61:
method that allows programs to be larger than the computer's
309:
containing memory overlays had de facto standard extensions
1217: 879: 1050: 926:(in German). Vol. 90, no. 12. pp. 124–130. 736:
IBM 7090/7094 Programming Systems – FORTRAN II Programming
615: 471:
The nomenclature varies depending on the system, e.g., in
1253: 1181:. Release 21 (10 ed.). White Plains, New York, USA: 1033: 657: 302: 69:
would normally use overlays because of the limitation of
1185:. March 1972 . Order No. GC28-6538-9, File No. S360-31. 1091: 1057:
Sidnam-Wright, Liz; Stevens, Brad, eds. (1990-07-31).
1000: 57:, replacing what is already stored". Overlaying is a 1098:
Herschel, Rudolf; Dieterich, Ernst-Wolfgang (2000).
1056: 980:
Getting started with WordStar, MailMerge + SpellStar
890:. The file format is also used for FID files on the 582:"The GNU Linker documentation: Overlay Description" 1143:(in German). Munich, Germany: Hochschule München. 522: 520: 1097: 1297: 275:In OS/360, IBM extended the overlay facility of 264:IBM introduced more general overlay handling in 720: 517: 283:routines, using 1024-byte SVC transient areas. 1248:that the proper code segments are loaded from 848: 846: 785: 317:(but also used numerical file extensions like 606: 604: 209:(MMU). In addition many embedded systems are 804:. May 1963. Form C28-6331 File No. 7090-27. 367:DOS office automation software package from 971: 909: 843: 800:(1 ed.). Poughkeepsie, New York, USA: 574: 526: 601: 383:compiler were able to produce .OVL files. 1127: 1045:it's probably not very different either. 530:, ed. (June 1986). "Part 4: Overlaying". 121:. An overlay manager, either part of the 1059:"Ashton-Tate ships dBASE IV Version 1.1" 462:each containing a complete overlay tree. 186:programmer much control over size (e.g. 36: 1006: 977: 852: 651: 492: 227:Even on platforms with virtual memory, 222:Primary Avionics System Software (PASS) 1298: 915: 610: 533:Loading And Linking Commodore Programs 943: 437:This has nothing to do with the term 49:means "the process of transferring a 1133: 1032:(the overlays are identical between 667:(2 ed.). Washington, DC, USA: 329:(consisting of the main executable 53:of program code or other data into 13: 1166: 1040:manual) switching between them at 898:drivers are in PRL format; so are 14: 1317: 1284: 949: 478:refers to an entire overlay tree. 246: 1192:from the original on 2022-07-10. 853:Elliott, John C. (2012-06-05) . 251:IBM introduced the concept of a 1234:from the original on 2019-04-20 1150:from the original on 2022-05-08 1068:. p. 2-2-2. Archived from 1019:from the original on 2019-07-28 1007:Necasek, Michal (2018-01-30) . 960:from the original on 2022-08-04 930:from the original on 2022-08-04 886:for various modules other than 865:from the original on 2020-01-26 811:from the original on 2022-03-15 753:from the original on 2022-03-15 742:. Poughkeepsie, New York, USA: 638:from the original on 2022-04-06 588:from the original on 2022-06-23 540:from the original on 2022-07-10 239:to the point where they can be 172: 1259:<segment>:<offset> 465: 448: 431: 133:provide support for overlays. 45:In a general computing sense, 1: 1064:. Torrance, California, USA: 485: 673:The National Academies Press 669:National Academy of Sciences 502:. 2015-11-26. Archived from 7: 1220:"GEOS/NDO info for RBIL62?" 953:Turbo Pascal - Norton Guide 728:"Chapter 12: The Chain Job" 386: 241:loaded in and out as needed 10: 1322: 1102:(in German) (2 ed.). 984:Cambridge University Press 900:Resident System Extensions 622:Morgan Kaufmann Publishers 298:to load graphics screens. 224:uses programmed overlays. 136: 105:, generally laid out in a 15: 659:National Research Council 916:Dohmen, Norbert (1990). 528:Butterfield, James "Jim" 458:, there may be multiple 424: 333:and the overlay modules 88: 16:Not to be confused with 1228:comp.os.geos.programmer 978:Mabbett, Alan (1985). 207:memory management unit 42: 18:Overload (programming) 1274:very early on , with 878:binary file, used by 617:Linkers & Loaders 500:"Oxford Dictionaries" 456:OS/360 and successors 40: 1252:and locked down. In 1104:R. Oldenbourg Verlag 956:. v3. p. 149. 445:storage management. 229:software components 217:. For example, the 661:(November 1993) . 119:destination region 81:, and the lack of 43: 22:Exec (system call) 1137:Betriebssysteme I 855:"PRL file format" 698:978-0-309-04880-4 205:do not provide a 1313: 1280: 1240: 1239: 1213: 1207: 1203: 1201: 1193: 1191: 1180: 1160: 1158: 1156: 1155: 1149: 1142: 1131: 1125: 1124: 1112: 1100:Turbo Pascal 7.0 1095: 1089: 1087: 1081: 1080: 1074: 1063: 1054: 1048: 1047: 1025: 1024: 1009:"WordStar Again" 1004: 998: 997: 975: 969: 968: 966: 965: 947: 941: 938: 936: 935: 913: 907: 904: 874:A PRL file is a 871: 870: 850: 841: 839: 833: 829: 827: 819: 817: 816: 810: 799: 789: 783: 781: 775: 771: 769: 761: 759: 758: 752: 741: 732: 724: 718: 716: 714: 713: 689:2060/19930019745 655: 649: 646: 644: 643: 608: 599: 596: 594: 593: 578: 572: 571: 565: 561: 559: 551: 546: 545: 524: 515: 514: 512: 511: 496: 479: 469: 463: 452: 446: 435: 348: 344: 340: 336: 332: 203:embedded systems 123:operating system 26:Overlapping code 1321: 1320: 1316: 1315: 1314: 1312: 1311: 1310: 1296: 1295: 1287: 1237: 1235: 1214:(2+244+4 pages) 1205: 1204: 1195: 1194: 1189: 1183:IBM Corporation 1178: 1172: 1169: 1167:Further reading 1164: 1163: 1153: 1151: 1147: 1140: 1132: 1128: 1121: 1113:. p. 249. 1106: 1096: 1092: 1078: 1076: 1072: 1061: 1055: 1051: 1022: 1020: 1005: 1001: 994: 976: 972: 963: 961: 948: 944: 933: 931: 914: 910: 868: 866: 851: 844: 831: 830: 821: 820: 814: 812: 808: 802:IBM Corporation 797: 791: 790: 786: 773: 772: 763: 762: 756: 754: 750: 744:IBM Corporation 739: 730: 726: 725: 721: 711: 709: 699: 656: 652: 641: 639: 632: 624:. p. 177. 612:Levine, John R. 609: 602: 591: 589: 580: 579: 575: 564:|magazine= 563: 562: 553: 552: 543: 541: 525: 518: 509: 507: 498: 497: 493: 488: 483: 482: 470: 466: 453: 449: 436: 432: 427: 393:Expanded memory 389: 369:Enable Software 346: 342: 338: 334: 330: 296:Commodore BASIC 249: 175: 156: 153: 139: 127:external memory 91: 75:internal memory 71:physical memory 67:embedded system 33: 12: 11: 5: 1319: 1309: 1308: 1306:Virtual memory 1294: 1293: 1286: 1285:External links 1283: 1282: 1281: 1272:protected mode 1250:virtual memory 1215: 1168: 1165: 1162: 1161: 1126: 1119: 1090: 1049: 999: 992: 970: 942: 908: 842: 784: 719: 697: 650: 630: 600: 584:. 2008-06-03. 573: 536:. p. 74. 516: 490: 489: 487: 484: 481: 480: 464: 447: 429: 428: 426: 423: 422: 421: 416: 414:Bank switching 411: 406: 401: 399:Virtual memory 396: 388: 385: 248: 247:Historical use 245: 179:virtual memory 174: 171: 154: 150: 146:Linkage Editor 138: 135: 115:overlay region 107:tree structure 97:blocks called 90: 87: 83:virtual memory 79:system-on-chip 9: 6: 4: 3: 2: 1318: 1307: 1304: 1303: 1301: 1292: 1289: 1288: 1279: 1277: 1273: 1268: 1264: 1260: 1255: 1251: 1246: 1233: 1229: 1225: 1221: 1216: 1211: 1199: 1188: 1184: 1177: 1176: 1171: 1170: 1146: 1139: 1138: 1130: 1122: 1120:3-486-25499-5 1116: 1110: 1105: 1101: 1094: 1086: 1075:on 2017-04-04 1071: 1067: 1060: 1053: 1046: 1043: 1039: 1038:WordStar 3.20 1035: 1031: 1018: 1014: 1010: 1003: 995: 993:0-521-31805-X 989: 985: 981: 974: 959: 955: 954: 946: 940: 929: 925: 924: 919: 912: 906: 903: 901: 897: 893: 889: 885: 881: 877: 864: 860: 856: 849: 847: 837: 825: 807: 803: 796: 795: 788: 779: 767: 749: 745: 738: 737: 729: 723: 708: 704: 700: 694: 690: 686: 682: 681:10.17226/2222 678: 674: 670: 666: 665: 660: 654: 648: 637: 633: 631:1-55860-496-0 627: 623: 619: 618: 613: 607: 605: 598: 587: 583: 577: 569: 557: 550: 539: 535: 534: 529: 523: 521: 506:on 2022-07-10 505: 501: 495: 491: 477: 474: 468: 461: 457: 451: 444: 440: 434: 430: 420: 417: 415: 412: 410: 407: 405: 404:Chain loading 402: 400: 397: 394: 391: 390: 384: 382: 378: 374: 370: 366: 365: 360: 357:and MS-DOS), 356: 352: 349:, where the " 343:MAILMERGE.OVR 328: 324: 320: 316: 312: 308: 304: 299: 297: 293: 289: 288:home computer 284: 282: 278: 273: 271: 267: 262: 260: 256: 255: 244: 242: 238: 234: 230: 225: 223: 220: 219:Space Shuttle 216: 212: 208: 204: 199: 197: 193: 189: 184: 180: 170: 168: 163: 161: 149: 147: 144: 134: 132: 128: 124: 120: 116: 112: 108: 104: 100: 96: 86: 84: 80: 76: 72: 68: 64: 60: 56: 52: 48: 39: 35: 31: 27: 23: 19: 1242: 1236:. Retrieved 1174: 1152:. Retrieved 1136: 1129: 1099: 1093: 1083: 1077:. Retrieved 1070:the original 1052: 1027: 1021:. Retrieved 1012: 1002: 979: 973: 962:. Retrieved 952: 945: 932:. Retrieved 921: 911: 873: 867:. Retrieved 858: 813:. Retrieved 793: 787: 755:. Retrieved 735: 722: 710:. Retrieved 663: 653: 640:. Retrieved 616: 590:. Retrieved 576: 548: 542:. Retrieved 532: 508:. Retrieved 504:the original 494: 475: 467: 459: 450: 438: 433: 377:Turbo Pascal 362: 347:SPELSTAR.OVR 322: 318: 314: 310: 307:Binary files 300: 285: 274: 263: 252: 250: 226: 221: 200: 176: 173:Applications 166: 164: 159: 157: 140: 118: 114: 110: 102: 98: 92: 85:facilities. 46: 44: 34: 1243:The reason 1206:|work= 1107: [ 1066:Ashton Tate 1013:OS/2 Museum 892:Amstrad PCW 876:relocatable 859:seasip.info 832:|work= 774:|work= 717:(208 pages) 339:WSOVLY1.OVR 183:working set 95:object code 73:, which is 63:main memory 59:programming 55:main memory 30:Shared code 1263:compressed 1238:2019-04-20 1154:2014-02-13 1079:2014-02-13 1023:2019-07-28 964:2022-08-04 934:2022-08-04 888:.COM files 869:2020-01-26 815:2021-12-26 782:(52 pages) 757:2022-07-10 712:2012-10-29 642:2022-07-10 592:2022-07-10 544:2022-07-10 510:2022-07-10 486:References 361:, and the 335:WSMSGS.OVR 259:FORTRAN II 47:overlaying 1276:real mode 1224:Newsgroup 1208:ignored ( 1198:cite book 1159:(9 pages) 1088:(5 pages) 884:CP/M Plus 840:(8 pages) 834:ignored ( 824:cite book 776:ignored ( 766:cite book 566:ignored ( 556:cite book 419:Recursion 381:GFA BASIC 301:"Several 254:chain job 237:decoupled 211:real-time 196:Smalltalk 41:Schematic 1300:Category 1232:Archived 1187:Archived 1145:Archived 1017:Archived 958:Archived 928:Archived 902:(.RSX). 863:Archived 806:Archived 748:Archived 707:93-84549 636:Archived 614:(2000). 586:Archived 538:Archived 387:See also 379:and the 327:WordStar 231:such as 99:overlays 1226::  1042:runtime 1030:CP/M-86 460:regions 373:Borland 355:CP/M-86 286:In the 235:may be 137:Example 131:linkers 111:Sibling 1267:nibble 1117:  990:  705:  695:  628:  476:region 473:OS/360 439:region 409:Paging 364:Enable 331:WS.COM 292:IBM PC 233:codecs 215:paging 143:OS/360 77:for a 1190:(PDF) 1179:(PDF) 1148:(PDF) 1141:(PDF) 1111:] 1073:(PDF) 1062:(PDF) 809:(PDF) 798:(PDF) 751:(PDF) 740:(PDF) 731:(PDF) 425:Notes 395:(EMS) 359:dBase 277:IBLDR 270:IBJOB 266:IBSYS 103:links 89:Usage 65:. An 51:block 28:, or 1245:Geos 1210:help 1115:ISBN 988:ISBN 882:and 880:MP/M 836:help 778:help 703:LCCN 693:ISBN 626:ISBN 568:help 345:and 323:.001 319:.000 315:.OVR 311:.OVL 188:Java 167:path 160:root 1254:DOS 1034:DOS 896:GSX 685:hdl 677:doi 454:In 443:MVT 441:in 375:'s 351:fat 313:or 303:DOS 281:SVC 257:in 198:). 192:C++ 117:or 101:or 1302:: 1241:. 1230:. 1222:. 1202:: 1200:}} 1196:{{ 1109:de 1082:. 1026:. 1015:. 1011:. 986:. 982:. 923:mc 920:. 872:. 861:. 857:. 845:^ 828:: 826:}} 822:{{ 770:: 768:}} 764:{{ 733:. 701:. 691:. 683:. 675:. 671:, 634:. 620:. 603:^ 560:: 558:}} 554:{{ 547:. 519:^ 371:. 341:, 337:, 321:, 243:. 194:, 190:, 169:. 109:. 24:, 20:, 1212:) 1157:. 1123:. 996:. 967:. 937:. 838:) 818:. 780:) 760:. 715:. 687:: 679:: 645:. 595:. 570:) 513:. 268:/ 32:.

Index

Overload (programming)
Exec (system call)
Overlapping code
Shared code

block
main memory
programming
main memory
embedded system
physical memory
internal memory
system-on-chip
virtual memory
object code
tree structure
operating system
external memory
linkers
OS/360
Linkage Editor
virtual memory
working set
Java
C++
Smalltalk
embedded systems
memory management unit
real-time
paging

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.