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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.