223:) and then relocate only its (typically much smaller) resident portion into a suitable free memory area in upper memory. In addition, advanced self-relocating TSRs (even if already loaded into upper memory by the operating system) can relocate over most of their own PSP segment and command line buffer and free their environment segment in order to further reduce the resulting
1281:) It's basically a tricky file header, a different code to parse the command line, a different entry point and exit line, and some segment magics to overcome the ORG 0 / ORG 100h difference. Self-loadhighing a device driver is a bit more tricky as you have to leave the driver header where it is and only relocate the remainder of the driver
1265:= directives prior to any INSTALL= statements, regardless of their order in the file. software may require the mouse driver to be present as a device driver, as mouse drivers have always been device drivers back in the old times. These mouse drivers have had specific device driver names depending on which protocol they used ("
66:
One form of self-relocation occurs when a program copies the code of its instructions from one sequence of locations to another sequence of locations within the main memory of a single computer, and then transfers processor control from the instructions found at the source locations of memory to the
210:
etc. since DOS 5) in order to maximize the memory available for applications. This is down to the fact that the operating system has no knowledge of the inner workings of a driver to be loaded and thus has to load it into a free memory area large enough to hold the whole driver as a block including
1550:
at the memory location being accessed is a little slow, the Z80 may get the wrong bit pattern when it fetches an instruction, but get the right one when it reads data. the built-in memory test won't catch this type of problem it's strictly a data read/write test. During the test, all instruction
915:
and a 47K CP/M. It'd just be ridiculous to have a hard compile in the addresses. So Gary figured this out one night, probably in the middle of the night thinking about some coding thing, and this really made CP/M possible to commercialize. I really think that without that relocation it would have
1564:
and then fetches the instruction at that address. If the RAM ICs are okay at that address, the CPU relocates the test program to the next memory location, prints the new address, and repeats the procedure. But, if one of the RAM ICs is slow enough to return an incorrect bit pattern, the CPU will
255:
to remain in conventional or upper memory in order to coordinate the access to the relocation target area, and in the case of device drivers also because the driver's header must always remain in the first megabyte. In order to achieve this, the drivers must be specially designed to support
1565:
misinterpret the instruction and behave unpredictably. However, it's likely that the display will lock up showing the address of faulty IC. This narrows the problem down eight ICs, which is an improvement over having to check as much as 32. The program will perform a
231:. Some self-relocating TSRs can also dynamically change their "nature" and morph into device drivers even if originally loaded as TSRs, thereby typically also freeing some memory. Finally, it is technically impossible for an external loader to relocate drivers into
306:
As an extreme example of (many-time) self-relocation, also called dynamic self-relocation, it is possible to construct a computer program so that it does not stay at a fixed address in memory, even as it executes, as for example used in
911:. it didn't matter how much memory the computer had, the operating system could always be moved into the high memory. Therefore, you could commercialize this on machines of different amounts of memory. you couldn't be selling a 64K
1569:
by pushing an RST 7 (RESTART 7) instruction from the low end of memory on up to the last working address. The rest of the program remains stationary and handles the display of the current location of the RST 7 command and its
219:. This might cause the driver not to be loaded into the most suitable free memory area or even prevent it from being loaded high at all. In contrast to this, a self-relocating driver can be loaded anywhere (including into
1600:
1559:
passing the memory test but still operating erratically on some programs. This is a program that tests memory by relocating itself through RAM. As it does so, the CPU prints the current address of the program on the
410:
logic, however, as this condition isn't met in general, generic DOS drivers cannot take advantage of it (unless they would explicitly test on this condition beforehand). Otherwise, a stub is also not necessary under
74:(after the operating system has loaded the software and passed control to it, but still before its initialization has finished), sometimes also when changing the program's configuration at a later stage during
259:
Some advanced DOS drivers also contain both a device driver (which would be loaded at offset +0000h by the operating system) and TSR (loaded at offset +0100h) sharing a common code portion internally as
684:
1273:
for example), and some software may search for these drivers in order to find out the correct type of mouse to be used. Another advantage would be that device drivers usually consume less memory (no
272:
already; this is similar to the fix-up stage of self-relocation but with the code already being loaded at the target location by the operating system's loader (instead of done by the driver itself).
31:
its own address-dependent instructions and data when run, and is therefore capable of being loaded into memory at any address. In many cases, self-relocating code is also a form of
719:
67:
instructions found at the destination locations of memory. As such, the data operated upon by the algorithm of the program is the sequence of bytes which define the program.
928:, to be precise. You could therefore always relocate it with just a bitmap of where those Laws: Certainly the most eloquent explanation I've ever had of dynamic relocation
427:
so that the kernel's gate A20 handler will provide the functionality of the stub. Still, the driver has to perform self-relocation in order to function correctly in the HMA.
1694:
1439:
problem programs self-relocating. DOSRELO accomplishes the self-relocation capability for all programs, regardless of the language, by adding entry point logic to the
868:
717:
534:
294:
relocated executable programs when they were loaded into memory. Only one copy of the program was required, but once loaded the program could not be moved (so called
916:
been a very tough problem. To get people to buy it, it'd seem complicated to them, and if you added more memory you'd have to go get a different operating system.
286:
did not have the ability to relocate programs during loading. Sometimes multiple versions of a program were maintained, each built for a different load address (
826:
offset relocation method based on a somewhat similar approach was independently conceived and implemented by
Matthias R. Paul and Axel C. Frinke for their
1361:
1832:
1811:
480:
647:
to minimize its memory footprint depending on the hardware, operating system and driver configuration as well as the selected feature set and locale.)
55:
when a program is copied from external storage into main memory; the difference is that it is the loaded program itself rather than the loader in the
1423:
1476:
1629:
530:
476:
287:
1221:
1238:
179:
1878:
1174:
1118:
1071:
295:
75:
1302:
211:
its initialization code, even if that would be freed after the initialization. For TSRs, the operating system also has to allocate a
1680:
701:
520:
466:
423:) only hook the multiplex interrupt INT 2Fh, because they can then utilize a backdoor interface to hook into the interrupt chain in
1795:
1613:
1574:. Incidentally, the program is called a worm test because, as the RST 7 instruction moves up through memory, it leaves behind a
715:
1793:
1640:
1394:
1856:
1653:
1069:
91:
As an example, self-relocation is often employed in the early stages of bootstrapping operating systems on architectures like
1246:
1116:
733:
Conference Record: Tenth Annual
Asilomar Conference on Circuits, Systems and Computers: Papers Presented November 22–24, 1976
335:
1067:
857:
1737:
1114:
1902:
1262:
827:
795:
632:
577:
386:
324:
44:
28:
1024:
736:. Asilomar Hotel and Conference Grounds, Pacific Grove, California, USA: Western Periodicals Company. pp. 420–424.
693:
1514:
1163:
1135:
1088:
1041:
996:
951:
1022:
290:). A special class of programs, called self-relocating programs, were coded to relocate themselves after loading. IBM
244:
1161:
979:
1719:
1140:. Z-System Corner - Some New Applications of Type-4 Programs (55). S. Plainfield, New Jersey, USA: Socrates Press:
977:
562:
1672:
896:
727:
175:
754:
136:
268:, it requires some form of internal address fix-up similar to what would otherwise have been carried out by a
1826:
1801:
1807:
1609:
1349:
1274:
931:
864:
502:
448:
248:
1571:
1323:
1319:
1278:
900:
778:
774:
624:
600:
374:
212:
140:
124:
1241:
and a device driver - similar to our FreeKEYB advanced keyboard driver. This is not really needed under
924:, right, for the memory addresses. But they were always in the same place, so you could relocate it on a
1595:
1141:
1047:
1002:
957:
849:
815:
679:
420:
1463:
1094:
584:
as well as a framework of automatic pre- and post-processing analysis tools to generate dependency and
1724:"Computer Recreations - A Core War bestiary of viruses, worms and other threats to computer memories"
845:
265:
228:
20:
1728:
1668:
1419:
1378:
811:
644:
640:
628:
416:
220:
216:
32:
731:
1763:
1625:
1448:
1270:
892:
884:
807:
782:
723:
675:
616:
128:
104:
100:
52:
48:
1294:
992:"Z3PLUS & Relocation - Information on ZCPR3PLUS, and how to write self relocating Z80 code"
1777:
1686:
1676:
1617:
1539:
1145:
1098:
1051:
1006:
961:
925:
781:(DDT) to relocate itself into higher memory. The same approach was independently developed by
737:
697:
604:
526:
516:
506:
472:
462:
452:
403:
350:
269:
92:
60:
1870:
1561:
1543:
1492:
1408:
1390:
1353:
830:
to dynamically minimize the runtime footprint of resident drivers and TSRs (like FreeKEYB).)
803:
512:
458:
399:
340:
308:
236:
224:
56:
1186:
904:
726:(1977) . "A Simple Technique for Static Relocation of Absolute Machine Code". Written at
592:
581:
569:
370:
252:
240:
232:
1357:
1213:
1472:
1444:
1295:"Re: [fd-dev] On GRAFTABL and DISPLAY.SYS (Was: Changing codepages in FreeDOS)"
888:
841:
823:
786:
345:
1130:
1083:
1036:
991:
946:
332:- a DR-DOS API to assist remote/network boot code in relocating itself while DOS boots
1896:
1773:
1413:
1182:
921:
853:
608:
585:
171:
1848:
768:
620:
424:
382:
183:
1723:
1535:
1531:
1440:
1330:
596:
195:
96:
398:
There are two exceptions to the stub requirement for a driver to load into the
16:
Program that relocates its own address-dependent instructions and data when run
1664:
1579:
1373:(NB. Gives an overview on load-high methods under DOS, including the usage of
1315:
1250:
1249:= is supported since DR DOS 3.41+ and DR DOS preserves the order of
1234:
933:
903:. He took advantage of the fact that the only byte was always going to be the
819:
612:
412:
312:
261:
203:
1781:
1621:
1149:
1102:
1055:
1010:
965:
741:
611:
and it implements advanced self-relocation techniques (including into normal
1575:
1566:
1556:
1506:
1418:(advertisement). Vol. VI, no. 44. San Francisco, California, USA:
636:
588:
573:
199:
186:
more effectively than possible for externally provided "high"-loaders (like
111:) move themselves out of place in order to load the next stage into memory.
71:
777:
for programs to run. It was also utilized dynamically by the CP/M debugger
1266:
607:, the driver supports to be variously loaded and install itself as TSR or
1768:
1547:
1374:
407:
329:
207:
187:
151:
1542:
cycle performing other chores, it doesn't have as much time to fetch an
1093:. Z-System Corner (54). S. Plainfield, New Jersey, USA: Socrates Press:
1436:
1233:
Add a SYS device driver header to the driver, so that CTMOUSE could be
1082:
Sage, Jay (January–February 1992). Carlson, Art; McEwen, Chris (eds.).
759:
565:
283:
158:
programs which were self-relocatable through an embedded stub as well.
1654:"III. Useful 68000 Routines and Techniques, 16. The Worm Memory Test"
1382:
1258:
1254:
1242:
908:
899:
he came bouncing into the lab and he said, I have figured out how to
887:" of the OS. Can you tell us what that is and why it was important?
763:
378:
291:
191:
1601:
Dr. Dobb's
Journal of Software Tools for the Professional Programmer
1594:
Steinman, Jan W. (1986-09-01). Written at West Linn, Oregon, USA.
680:"A simple technique for static relocation of absolute machine code"
1037:"More on relocatable code, PRL files, ZCPR34, and Type-4 programs"
917:
1803:
RISC OS Application Image Format (previously Arthur Image Format)
1326:
segment (offset +60h and upwards) to minimize its resident size.
662:
FreeKEYB - Advanced international DOS keyboard and console driver
1690:
1129:
Sage, Jay (May–June 1992) . Carlson, Art; McEwen, Chris (eds.).
912:
790:
147:
120:
1552:
1527:
280:
167:
108:
685:
Dr. Dobb's
Journal of Computer Calisthenics & Orthodontia
858:"Legacy of Gary Kildall: The CP/M IEEE Milestone Dedication"
107:(VBR) and initial boot stages of operating systems such as
990:
Mitchell, Bridger (July–August 1988). Carlson, Art (ed.).
170:, self-relocation is sometimes also used by more advanced
1409:"Throughput - Are you getting all you deserve? - DOSRELO"
1333:
GRAFTABL 2.00+ supports dynamic self-relocation as well.)
1035:
Sage, Jay (September–October 1988). Carlson, Art (ed.).
863:(video transscription). Pacific Grove, California, USA:
730:, Monterey, California, USA. In Titus, Harold A. (ed.).
1806:(Technical Memorandum) (1.00 ed.). Cambridge, UK:
568:-based dynamically configurable driver supporting most
251:), because these methods require small driver-specific
1253:
directives but it would improve the flexibility on
1214:"Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1"
1343:
1341:
1339:
1207:
1205:
1203:
1001:. Advanced CP/M (33). Columbia Falls, Montana, USA:
895:
did was mind boggling. I remember the day at the
655:
653:
1352:[Loading drivers dynamically] (in German).
1046:. ZCPR3 Corner (34). Columbia Falls, Montana, USA:
956:. ZCPR3 Corner (32). Columbia Falls, Montana, USA:
558:
FreeKEYB - Enhanced DOS keyboard and console driver
369:An exception to the requirement for a stub is when
556:Paul, Matthias R.; Frinke, Axel C. (1997-10-13) ,
415:and higher, when resident system extensions (like
802:of this method was later utilized by dynamically
660:Paul, Matthias R.; Frinke, Axel C. (2006-01-16),
848:; Laws, David; Michel, Howard E.; Halla, Brian;
146:In 1988, the alternative command line processor
1377:etc. commands and self-relocating methods into
1138:(TCJ) - Programming, User Support, Applications
1091:(TCJ) - Programming, User Support, Applications
1044:(TCJ) - Programming, User Support, Applications
999:(TCJ) - Programming, User Support, Applications
954:(TCJ) - Programming, User Support, Applications
945:Sage, Jay (May–June 1988). Carlson, Art (ed.).
856:; Kampe, Bill (2014-04-25). Laws, David (ed.).
8:
70:Static self-relocation typically happens at
1416:- The Newsweekly For The Computer Community
508:Operating Systems: A Concept-based Approach
406:is permanently enabled on machines without
264:. If the shared code is not designed to be
1849:"Nachladbare Treiber unter CP/M - PRL2COM"
1800:Smith, Lee; Haines, Lionel (1989-02-02) .
1505:Wilkinson, William "Bill" Albert (2003) .
822:and higher. A much more sophisticated and
752:(609 pages). (This "resize" method, named
1538:. since the Z80 must spend half of each
454:Systems Programming and Operating Systems
381:, and thus it is effectively accessed as
1810:, Programming Languages Group. PLG-AIF.
1661:Dr. Dobb's Toolbook of 68000 Programming
1407:Boothe Management Systems (1972-11-01).
1389:necessary for TSRs to relocate into the
664:(User Manual) (7 (preliminary) ed.)
1386:
631:recombination) and byte-level granular
440:
362:
135:to the top of available memory through
1659:. Written at West Linn, Oregon, USA.
1546:as it does a data byte. If one of the
1507:"The H89 Worm: Memory Testing the H89"
182:(TSRs) loading themselves "high" into
1762:Harrell III, John B. (October 1983).
1526:Besides fetching an instruction, the
799:
315:is a dynamic self-relocator as well.
7:
1608:(9). Redwood City, California, USA:
1435:DOSRELO provides a method of making
867:. CHM Reference number: X7170.2014.
180:terminate-and-stay-resident programs
1511:Bill Wilkinson's Heath Company Page
1322:relocates itself over parts of its
758:, could be applied statically to a
296:one-time position-independent code
256:self-relocation into these areas.
43:Self-relocation is similar to the
14:
1598:. The Right to Assemble (TRTA).
1348:Paul, Matthias R. (2002-02-02).
1293:Paul, Matthias R. (2001-08-18).
1212:Paul, Matthias R. (2002-04-06).
1881:from the original on 2020-02-21
1869:Pohlers, Volker (2017-04-24) .
1859:from the original on 2020-02-21
1835:from the original on 2017-08-31
1814:from the original on 2017-08-30
1740:from the original on 2017-07-04
1700:from the original on 2021-12-13
1517:from the original on 2021-12-13
1482:from the original on 2019-05-15
1426:from the original on 2020-02-06
1395:intra-segment offset relocation
1364:from the original on 2017-09-09
1305:from the original on 2017-09-04
1261:systems, which always execute
1224:from the original on 2020-02-07
874:from the original on 2014-12-27
623:, or raw memory also utilizing
537:from the original on 2020-02-20
511:. Education. New Delhi, India:
483:from the original on 2020-02-01
457:. Education. New Delhi, India:
402:: A stub is not necessary when
276:IBM DOS/360 and OS/360 programs
1828:Properties of ARM Image Format
1555:, not from RAM result in the
1179:Caldera DR-DOS 7.02 User Guide
143:(TPA) for programs to run in.
63:that performs the relocation.
1:
1624:. #119. ark:/13960/t74v34p9p
1614:The People's Computer Company
1350:"Treiber dynamisch nachladen"
828:dynamic dead-code elimination
796:paragraph boundary relocation
633:dynamic dead code elimination
580:. Utilizing an off-the-shelf
325:Dynamic dead code elimination
1175:"Chapter 10 Managing Memory"
1131:"Type-3 and Type-4 Programs"
947:"ZCPR 3.4 - Type-4 Programs"
852:; Berg, Brian; Su, Weilian;
560:(User Manual) (6.5 ed.)
1720:Dewdney, Alexander Keewatin
846:Rolander, Thomas "Tom" Alan
721:. Originally presented at:
1919:
1776:: 160, 162, 164–168, 170.
1673:Simon & Schuster, Inc.
1530:uses half of the cycle to
1443:of the program before the
1387:more sophisticated methods
806:self-relocating TSRs like
706:. #22 ark:/13960/t8hf1g21p
377:by the memory manager via
176:resident system extensions
95:, where lower-level chain
27:program is a program that
1847:Huck, Alex (2016-08-14).
1652:Steinman, Jan W. (1986).
773:in order to maximize the
728:Naval Postgraduate School
694:People's Computer Company
643:and reconfigurability at
139:in order to maximize the
1610:M&T Publishing, Inc.
755:page boundary relocation
591:to be embedded into the
137:page boundary relocation
47:process employed by the
1808:Acorn Computers Limited
1385:API. It also discusses
865:Computer History Museum
789:to produce relocatable
599:and a self-discarding,
503:Dhamdhere, Dhananjay M.
449:Dhamdhere, Dhananjay M.
1784:. ark:/13960/t8z906r42
1596:"The Worm Memory Test"
1491:(3 pages) (NB. From a
1152:. ark:/13960/t4dn54d22
1105:. ark:/13960/t89g6n689
1058:. ark:/13960/t0ks7pc39
1013:. ark:/13960/t36121780
968:. ark:/13960/t1wd4v943
907:. And so he created a
850:Wharton, John Harrison
779:Dynamic Debugging Tool
625:program segment prefix
375:permanent upper memory
213:Program Segment Prefix
141:Transient Program Area
125:Dynamic Debugging Tool
1616:: 114–115 (662–663).
1551:fetches are from the
1251:[D]CONFIG.SYS
1185:1998 . Archived from
154:introduced so called
1903:Computer programming
1465:The Worm Memory Test
1136:The Computer Journal
1089:The Computer Journal
1042:The Computer Journal
997:The Computer Journal
952:The Computer Journal
266:position-independent
21:computer programming
1729:Scientific American
1669:Prentice Hall Press
1447:catalogs it on the
1420:Computerworld, Inc.
1084:"Ten Years of ZCPR"
824:byte-level granular
724:Kildall, Gary Arlen
676:Kildall, Gary Arlen
641:self-modifying code
629:environment segment
564:(NB. FreeKEYB is a
221:conventional memory
217:environment segment
33:self-modifying code
1675:pp. 341–350.
1449:Core Image Library
1271:Mouse Systems Mode
885:dynamic relocation
783:Bruce H. Van Natta
678:(February 1978) .
373:is converted into
336:Garbage collection
105:volume boot record
101:master boot record
93:IBM PC compatibles
1663:. New York, USA:
1540:instruction fetch
926:256 byte boundary
762:disk image using
696:: 10–13 (66–69).
605:relocating loader
531:978-0-07-061194-8
477:978-0-07-463579-7
351:Quine (computing)
309:worm memory tests
270:relocating loader
1910:
1889:
1887:
1886:
1875:Homecomputer DDR
1867:
1865:
1864:
1853:Homecomputer DDR
1843:
1841:
1840:
1822:
1820:
1819:
1792:
1790:
1789:
1749:
1748:
1746:
1745:
1716:
1710:
1709:(1+5+10+1 pages)
1708:
1706:
1705:
1699:
1658:
1649:
1643:
1639:
1637:
1636:
1591:
1585:
1584:
1582:(NO OPERATION).
1544:instruction byte
1523:
1522:
1502:
1496:
1495:service manual.)
1493:Vector Graphic 3
1490:
1488:
1487:
1481:
1470:
1460:
1454:
1453:
1432:
1431:
1404:
1398:
1372:
1370:
1369:
1358:de.comp.os.msdos
1345:
1334:
1328:
1311:
1310:
1290:
1284:
1283:
1230:
1229:
1209:
1198:
1197:
1195:
1194:
1171:
1165:
1160:
1158:
1157:
1126:
1120:
1113:
1111:
1110:
1079:
1073:
1066:
1064:
1063:
1032:
1026:
1021:
1019:
1018:
987:
981:
976:
974:
973:
942:
936:
930:
880:
879:
873:
862:
837:
831:
772:
751:
749:
748:
714:
712:
711:
672:
666:
665:
657:
648:
627:overloading and
570:keyboard layouts
561:
553:
547:
545:
543:
542:
513:Tata McGraw-Hill
499:
493:
491:
489:
488:
459:Tata McGraw-Hill
445:
428:
396:
390:
367:
341:Self-replication
237:high memory area
225:memory footprint
57:operating system
1918:
1917:
1913:
1912:
1911:
1909:
1908:
1907:
1893:
1892:
1884:
1882:
1868:
1862:
1860:
1846:
1838:
1836:
1825:
1817:
1815:
1799:
1787:
1785:
1772:. Review (45).
1761:
1758:
1756:Further reading
1753:
1752:
1743:
1741:
1718:
1717:
1713:
1703:
1701:
1697:
1683:
1656:
1651:
1650:
1646:
1634:
1632:
1593:
1592:
1588:
1520:
1518:
1504:
1503:
1499:
1485:
1483:
1479:
1468:
1462:
1461:
1457:
1429:
1427:
1406:
1405:
1401:
1367:
1365:
1347:
1346:
1337:
1308:
1306:
1292:
1291:
1287:
1227:
1225:
1211:
1210:
1201:
1192:
1190:
1173:
1172:
1168:
1155:
1153:
1128:
1127:
1123:
1108:
1106:
1081:
1080:
1076:
1061:
1059:
1034:
1033:
1029:
1016:
1014:
989:
988:
984:
971:
969:
944:
943:
939:
905:high order byte
877:
875:
871:
860:
842:Eubanks, Gordon
840:Huitt, Robert;
839:
838:
834:
820:DR DOS 6.0
800:another variant
766:
746:
744:
722:
709:
707:
704:
674:
673:
669:
659:
658:
651:
593:executable file
582:macro assembler
555:
554:
550:
540:
538:
523:
515:. p. 231.
501:
500:
496:
486:
484:
469:
461:. p. 232.
447:
446:
442:
437:
432:
431:
397:
393:
371:expanded memory
368:
364:
359:
321:
304:
278:
241:extended memory
233:expanded memory
164:
162:x86 DOS drivers
123:, the debugger
117:
115:CP/M extensions
89:
84:
41:
25:self-relocating
17:
12:
11:
5:
1916:
1914:
1906:
1905:
1895:
1894:
1891:
1890:
1844:
1823:
1797:
1757:
1754:
1751:
1750:
1722:(March 1985).
1711:
1681:
1644:
1586:
1497:
1475:. 2015-10-21.
1473:Vector Graphic
1455:
1445:Linkage Editor
1399:
1381:utilizing the
1335:
1285:
1199:
1166:
1121:
1074:
1027:
982:
937:
922:bytes reversed
854:Kildall, Scott
832:
787:IMS Associates
702:
667:
649:
595:alongside the
548:
521:
494:
467:
439:
438:
436:
433:
430:
429:
391:
361:
360:
358:
355:
354:
353:
348:
346:Self-reference
343:
338:
333:
327:
320:
317:
303:
302:Other examples
300:
277:
274:
163:
160:
116:
113:
88:
85:
83:
80:
40:
37:
15:
13:
10:
9:
6:
4:
3:
2:
1915:
1904:
1901:
1900:
1898:
1880:
1877:(in German).
1876:
1872:
1858:
1855:(in German).
1854:
1850:
1845:
1834:
1830:
1829:
1824:
1813:
1809:
1805:
1804:
1798:
1796:
1794:
1783:
1779:
1775:
1774:1001001, Inc.
1771:
1770:
1765:
1764:"DOSPLUS 3.5"
1760:
1759:
1755:
1739:
1735:
1731:
1730:
1725:
1721:
1715:
1712:
1696:
1692:
1688:
1684:
1682:0-13-216649-6
1678:
1674:
1670:
1666:
1662:
1655:
1648:
1645:
1641:
1631:
1627:
1623:
1619:
1615:
1611:
1607:
1603:
1602:
1597:
1590:
1587:
1583:
1581:
1577:
1573:
1568:
1563:
1558:
1554:
1549:
1545:
1541:
1537:
1533:
1529:
1516:
1512:
1508:
1501:
1498:
1494:
1478:
1474:
1467:
1466:
1459:
1456:
1452:
1450:
1446:
1442:
1438:
1425:
1421:
1417:
1415:
1414:Computerworld
1410:
1403:
1400:
1396:
1392:
1388:
1384:
1380:
1376:
1363:
1359:
1355:
1351:
1344:
1342:
1340:
1336:
1332:
1327:
1325:
1321:
1317:
1314:At least the
1304:
1300:
1296:
1289:
1286:
1282:
1280:
1276:
1272:
1268:
1264:
1260:
1256:
1252:
1248:
1244:
1240:
1236:
1223:
1219:
1215:
1208:
1206:
1204:
1200:
1189:on 2017-08-30
1188:
1184:
1183:Caldera, Inc.
1180:
1176:
1170:
1167:
1164:
1162:
1151:
1147:
1143:
1139:
1137:
1132:
1125:
1122:
1119:
1117:
1115:
1104:
1100:
1096:
1092:
1090:
1085:
1078:
1075:
1072:
1070:
1068:
1057:
1053:
1049:
1045:
1043:
1038:
1031:
1028:
1025:
1023:
1012:
1008:
1004:
1000:
998:
993:
986:
983:
980:
978:
967:
963:
959:
955:
953:
948:
941:
938:
934:
932:
929:
927:
923:
919:
914:
910:
906:
902:
898:
894:
890:
886:
870:
866:
859:
855:
851:
847:
843:
836:
833:
829:
825:
821:
817:
813:
809:
805:
801:
798:
797:
792:
788:
784:
780:
776:
770:
765:
761:
757:
756:
743:
739:
735:
734:
729:
725:
720:
718:
716:
705:
703:0-8104-5490-4
699:
695:
691:
687:
686:
681:
677:
671:
668:
663:
656:
654:
650:
646:
642:
638:
634:
630:
626:
622:
618:
614:
610:
609:device driver
606:
602:
598:
594:
590:
587:
586:code morphing
583:
579:
578:country codes
575:
571:
567:
563:
559:
552:
549:
536:
532:
528:
524:
522:0-07-061194-7
518:
514:
510:
509:
504:
498:
495:
482:
478:
474:
470:
468:0-07-463579-4
464:
460:
456:
455:
450:
444:
441:
434:
426:
422:
418:
414:
409:
405:
401:
395:
392:
388:
384:
380:
376:
372:
366:
363:
356:
352:
349:
347:
344:
342:
339:
337:
334:
331:
328:
326:
323:
322:
318:
316:
314:
310:
301:
299:
297:
293:
289:
285:
282:
275:
273:
271:
267:
263:
257:
254:
250:
246:
242:
238:
234:
230:
229:fragmentation
226:
222:
218:
215:(PSP) and an
214:
209:
205:
201:
197:
193:
189:
185:
181:
177:
173:
169:
161:
159:
157:
153:
149:
144:
142:
138:
134:
130:
126:
122:
114:
112:
110:
106:
102:
98:
94:
86:
81:
79:
77:
73:
68:
64:
62:
58:
54:
50:
46:
38:
36:
34:
30:
26:
22:
1883:. Retrieved
1874:
1861:. Retrieved
1852:
1837:. Retrieved
1827:
1816:. Retrieved
1802:
1786:. Retrieved
1767:
1742:. Retrieved
1733:
1727:
1714:
1702:. Retrieved
1660:
1647:
1633:. Retrieved
1605:
1599:
1589:
1525:
1519:. Retrieved
1510:
1500:
1484:. Retrieved
1464:
1458:
1434:
1428:. Retrieved
1412:
1402:
1366:. Retrieved
1329:(NB. A post-
1313:
1307:. Retrieved
1298:
1288:
1232:
1226:. Retrieved
1217:
1191:. Retrieved
1187:the original
1178:
1169:
1154:. Retrieved
1134:
1124:
1107:. Retrieved
1087:
1077:
1060:. Retrieved
1040:
1030:
1015:. Retrieved
995:
985:
970:. Retrieved
950:
940:
882:
876:. Retrieved
835:
794:
753:
745:. Retrieved
732:
708:. Retrieved
689:
683:
670:
661:
621:video memory
557:
551:
539:. Retrieved
507:
497:
485:. Retrieved
453:
443:
425:kernel space
394:
383:upper memory
365:
305:
279:
258:
184:upper memory
165:
155:
150:3.4 for the
145:
132:
118:
97:boot loaders
90:
87:Boot loaders
69:
65:
42:
24:
18:
1576:slime trail
1536:dynamic RAM
1441:object code
1422:p. 9.
1331:DR-DOS 7.03
1299:freedos-dev
1275:environment
1259:PC DOS
1243:DR DOS
1237:, a normal
1235:both in one
1218:freedos-dev
767: [
639:as well as
597:binary code
546:(799 pages)
492:(658 pages)
404:high memory
235:(EMS), the
196:INSTALLHIGH
129:dynamically
1885:2020-02-21
1863:2020-02-21
1839:2017-08-31
1818:2017-08-30
1788:2020-02-06
1744:2017-07-04
1704:2021-12-13
1665:Brady Book
1635:2021-12-13
1572:relocation
1521:2021-12-13
1486:2021-12-13
1430:2020-02-07
1393:utilizing
1368:2017-07-02
1316:MS-DOS 6.0
1309:2017-09-04
1228:2020-02-07
1193:2017-08-30
1156:2021-11-29
1109:2021-11-29
1062:2020-02-09
1017:2020-02-09
972:2021-11-29
935:(33 pages)
878:2020-01-19
747:2021-12-06
710:2017-08-19
613:DOS memory
574:code pages
541:2020-02-20
487:2011-11-08
435:References
413:DR DOS 6.0
385:, not via
313:Apple Worm
262:fat binary
227:and avoid
204:DEVICEHIGH
178:(RSXs) or
131:relocated
99:(like the
45:relocation
1871:"PRL2COM"
1782:0744-7868
1736:: 38–39.
1642:(2 pages)
1622:1044-789X
1567:worm test
1548:RAM chips
1354:Newsgroup
1267:PC$ MOUSE
1150:0748-9331
1103:0748-9331
1056:0748-9331
1011:0748-9331
966:0748-9331
793:code. As
742:1058-6393
637:load-time
619:, unused
589:meta data
288:partition
239:(HMA) or
200:HIINSTALL
72:load-time
29:relocates
1897:Category
1879:Archived
1857:Archived
1833:Archived
1831:. 1993.
1812:Archived
1769:80 Micro
1738:Archived
1695:Archived
1691:86-25308
1515:Archived
1477:Archived
1424:Archived
1375:LOADHIGH
1362:Archived
1320:GRAFTABL
1303:Archived
1245:because
1222:Archived
920:had the
901:relocate
891:: what
883:Laws: "
869:Archived
645:run-time
601:relaxing
535:Archived
505:(2006).
481:Archived
451:(1999).
408:gate A20
330:RPLOADER
319:See also
249:CLOAKING
208:HIDEVICE
188:LOADHIGH
152:Z-System
82:Examples
39:Overview
1532:refresh
1356::
1247:INSTALL
889:Eubanks
816:NLSFUNC
760:CP/M-80
566:Unicode
421:NLSFUNC
284:DOS/360
172:drivers
103:(MBR),
76:runtime
1780:
1689:
1679:
1630:DDJOEB
1628:
1620:
1383:XMSUMB
1269:" for
1263:DEVICE
1255:MS-DOS
1148:
1101:
1054:
1009:
964:
909:bitmap
897:school
818:under
814:, and
764:MOVCPM
740:
700:
576:, and
529:
519:
475:
465:
379:EMSUMB
311:. The
292:OS/360
192:HILOAD
166:Under
156:type-4
133:itself
127:(DDT)
119:Under
53:loader
49:linker
1698:(PDF)
1657:(PDF)
1626:CODEN
1480:(PDF)
1469:(PDF)
1277:, no
1144:–19.
1050:–25.
1005:–15.
960:–17.
918:Intel
872:(PDF)
861:(PDF)
812:SHARE
771:]
692:(2).
417:SHARE
357:Notes
253:stubs
243:(via
61:shell
1778:ISSN
1687:LCCN
1677:ISBN
1618:ISSN
1580:NOPs
1534:the
1379:UMBs
1146:ISSN
1099:ISSN
1097:–7.
1052:ISSN
1007:ISSN
962:ISSN
913:CP/M
893:Gary
808:KEYB
791:PL/M
738:ISSN
698:ISBN
617:UMBs
603:and
527:ISBN
517:ISBN
473:ISBN
463:ISBN
419:and
245:DPMS
174:and
148:ZCPR
121:CP/M
23:, a
1734:285
1578:of
1562:CRT
1557:H89
1553:ROM
1528:Z80
1437:DOS
1391:HMA
1324:PSP
1279:PSP
1239:TSR
804:HMA
785:of
775:TPA
635:at
400:HMA
387:EMS
298:).
281:IBM
247:or
202:or
168:DOS
109:DOS
59:or
19:In
1899::
1873:.
1851:.
1766:.
1732:.
1726:.
1693:.
1685:.
1671:/
1667:/
1612:/
1606:11
1604:.
1524:.
1513:.
1509:.
1471:.
1451:.
1433:.
1411:.
1397:.)
1360:.
1338:^
1318:+
1312:.
1301:.
1297:.
1231:.
1220:.
1216:.
1202:^
1181:.
1177:.
1142:13
1133:.
1086:.
1048:20
1039:.
994:.
958:10
949:.
881:.
844:;
810:,
769:pl
688:.
682:.
652:^
615:,
572:,
533:.
525:.
479:.
471:.
194:,
78:.
35:.
1888:.
1866:;
1842:.
1821:.
1791:.
1747:.
1707:.
1638:.
1489:.
1371:.
1257:/
1196:.
1159:.
1112:.
1095:3
1065:.
1020:.
1003:9
975:.
750:.
713:.
690:3
544:.
490:.
389:.
206:/
198:/
190:/
51:-
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.