Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Self-modifying code
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==References== {{Reflist|refs= <ref name="Massalin_1992_Synthesis">{{Cite thesis |author-first1=Calton |author-last1=Pu |author-link1=Calton Pu |author-first2=Henry |author-last2=Massalin |author-link2=Henry Massalin |author-first3=John |author-last3=Ioannidis |degree=PhD |title=Synthesis: An Efficient Implementation of Fundamental Operating System Services |publisher=Department of Computer Sciences, [[Columbia University]] |location=New York, USA |id=UMI Order No. GAX92-32050 |date=1992 |url=https://www.scs.stanford.edu/nyu/04fa/sched/readings/synthesis.pdf |access-date=2023-04-25}} [https://www.cs.columbia.edu/~library/TR-repository/reports/reports-1992/cucs-039-92.ps.gz]</ref> <ref name="Henson_2008">{{cite news |title=KHB: Synthesis: An Efficient Implementation of Fundamental Operating Systems Services |author-first=Valerie |author-last=Henson |author-link=Valerie Henson |date=2008-02-20 |work=LWN.net |url=https://lwn.net/Articles/270081/ |access-date=2022-05-19 |url-status=live |archive-url=https://web.archive.org/web/20210817175159/https://lwn.net/Articles/270081/ |archive-date=2021-08-17}}</ref> <ref name="Haeberli_1994_GraficaObscura">{{cite web |author-first1=Paul |author-last1=Haeberli |author-link1=Paul Haeberli |author-first2=Bruce |author-last2=Karsh |title=Io Noi Boccioni - Background on Futurist Programming |work=Grafica Obscura |date=1994-02-03 |url=https://www.graficaobscura.com/future/index.html |access-date=2023-04-25}}</ref> <ref name="Bashe-Buchholz-Hawkins-Ingram-Rochester_1981">{{cite journal |title=The Architecture of IBM's Early Computers |author-first1=Charles J. |author-last1=Bashe |author-first2=Werner |author-last2=Buchholz |author-link2=Werner Buchholz |author-first3=George V. |author-last3=Hawkins |author-first4=J. James |author-last4=Ingram |author-first5=Nathaniel |author-last5=Rochester |journal=[[IBM Journal of Research and Development]] |issn=0018-8646 |date=September 1981 |volume=25 |issue=5 |pages=363–376 |doi=10.1147/rd.255.0363 |citeseerx=10.1.1.93.8952 |url=https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC272/S2005/Papers/IBM-Architecture-Bashe_sep81.pdf |access-date=2023-04-25 |quote-page=365 |quote=The SSEC was the first operating computer capable of treating its own stored instructions exactly like data, modifying them, and acting on the result.}}</ref> <ref name="Miller_2006">{{cite web |title=Binary Code Patching: An Ancient Art Refined for the 21st Century. |author-first=Barton P. |author-last=Miller |date=2006-10-30 |publisher=[[NC State University]], Computer Science Department |series=Triangle Computer Science Distinguished Lecturer Series - Seminars 2006–2007 |url=https://arcb.csc.ncsu.edu/~mueller/seminar/fall06/miller.html |access-date=2023-04-25}}</ref> <ref name="Wenzl-Merzdovnik-Ullrich-Weippl_2019">{{cite journal |title=From hack to elaborate technique - A survey on binary rewriting |author-first1=Matthias |author-last1=Wenzl |author-first2=Georg |author-last2=Merzdovnik |author-first3=Johanna |author-last3=Ullrich |author-first4=Edgar R. |author-last4=Weippl |location=Vienna, Austria |journal=[[ACM Computing Surveys]] |volume=52 |number=3 |id=Article 49 |date=June 2019 |orig-date=<!-- accepted -->February 2019, <!-- revised -->November 2018, May 2018 |doi=10.1145/3316415 |pages=49:1–49:36 [49:1] |s2cid=195357367 |url=https://publications.sba-research.org/publications/201906%20-%20GMerzdovnik%20-%20From%20hack%20to%20elaborate%20technique.pdf |access-date=2021-11-28 |url-status=live |archive-url=https://web.archive.org/web/20210115224807/https://publications.sba-research.org/publications/201906%20-%20GMerzdovnik%20-%20From%20hack%20to%20elaborate%20technique.pdf |archive-date=2021-01-15 |quote-page=49:1 |quote=[…] Originally, [[binary rewriting]] was motivated by the need to change parts of a program during execution (e.g., run-time patching on the [[PDP-1]] in the 1960's) […]}} (36 pages)</ref> <ref name="Knuth_MMIX">{{cite web |title=MMIX 2009 - a RISC computer for the third millennium |author-first=Donald Ervin |author-last=Knuth |author-link=Donald Ervin Knuth |date=2009 |orig-date=1997 |url=https://www-cs-faculty.stanford.edu/~knuth/mmix.html |access-date=2021-11-28 |url-status=live |archive-url=https://web.archive.org/web/20211127194354/https://www-cs-faculty.stanford.edu/~knuth/mmix.html |archive-date=2021-11-27}}</ref> <ref name="Ortiz_2015">{{cite web |title=On Self-Modifying Code and the Space Shuttle OS |author-first=Carlos Enrique |author-last=Ortiz |date=2015-08-29 |orig-date=2007-08-18 |url=https://weblog.cenriqueortiz.com/computing/2007/08/18/on-self-modifying-code-and-the-space-shuttle-os/ |access-date=2023-04-25}}</ref> <ref name="MicroFocus_ALTER">{{cite book |chapter=The ALTER Statement |publisher=[[Micro Focus]] |title=COBOL Language Reference |url=https://www.microfocus.com/documentation/visual-cobol/vc80/VS2022/HRLHLHPDF803.html}}</ref> <ref name="Push">{{cite web |title=Evolutionary Computing with Push: Push, PushGP, and Pushpop |author-first=Lee |author-last=Spector |date= |publisher= |url=https://faculty.hampshire.edu/lspector/push.html |access-date=2023-04-25}}</ref> <ref name="Schmidhuber">[[Jürgen Schmidhuber]]'s publications on [https://people.idsia.ch/~juergen/metalearner.html self-modifying code for self-referential machine learning systems]</ref> <ref name="Fosdal_2001">{{cite web |title=Self-modifying Batch File |author-first=Lars |author-last=Fosdal |date=2001 |url=http://www.csd.net/~cgadd/knowbase/DOS0019.HTM |url-status=dead |archive-url=https://web.archive.org/web/20080421173331/http://www.csd.net/~cgadd/knowbase/DOS0019.HTM |archive-date=2008-04-21}}</ref> <ref name="Paul_1996">{{cite book |title=Konzepte zur Unterstützung administrativer Aufgaben in PC-Netzen und deren Realisierung für eine konkrete Novell-LAN-Umgebung unter Benutzung der Batchsprache von DOS |language=de |author-first=Matthias R. |author-last=Paul |version=3.11 |date=1996-10-13 |orig-date=1996-08-21<!-- v3.05-->, 1994 |location=Aachen, Germany |publisher=Lehrstuhl für Kommunikationsnetze ([[ComNets]]) & [[Institut für Kunststoffverarbeitung]] (IKV), RWTH |pages=51, 71–72}} (110+3 pages, diskette) (NB. Design and implementation of a centrally controlled modular distributed management system for automatic [[client (computing)|client]] configuration and [[software deployment]] with [[self-management (computer science)|self-healing]] update mechanism in [[local area network|LAN]] environments based on [[self-replication|self-replicating]] and indirectly self-modifying batchjobs with zero memory footprint instead of a need for [[terminate and stay resident|resident]] management software on the clients.)</ref> <ref name="Wilkinson_1996">{{cite web |title=The H89 Worm: Memory Testing the H89 |author-first=William "Bill" Albert |author-last=Wilkinson |date=2003 |orig-date=1996, 1984 |work=Bill Wilkinson's Heath Company Page |url=https://www.heco.wxwilki.com/h89worm.html |access-date=2021-12-13 |url-status=live |archive-url=https://web.archive.org/web/20211213130013/https://www.heco.wxwilki.com/h89worm.html |archive-date=2021-12-13 |quote=[…] Besides fetching an instruction, the [[Z80]] uses half of the cycle to [[RAM refresh|refresh]] the [[dynamic RAM]]. […] since the Z80 must spend half of each [[instruction fetch]] cycle performing other chores, it doesn't have as much time to fetch an [[instruction byte]] as it does a data byte. If one of the [[RAM chip]]s 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 fetches are from the [[ROM]], not from RAM […] result[ing] in the [[Heath H89|H89]] 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 [[cathode-ray tube|CRT]] 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 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 worm test 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 [[relocation (computing)|relocation]]. Incidentally, the program is called a [[computer worm|worm]] test because, as the RST 7 instruction moves up through memory, it leaves behind a [[NOP trail|slime trail]] of [[NOP (code)|NOP]]s (NO OPERATION). […]}}</ref> <ref name="Caldera_1997_DOSSRC">{{cite web |title=Caldera OpenDOS Machine Readable Source Kit (M.R.S) 7.01 |publisher=[[Caldera (company)|Caldera, Inc.]] |date=1997-05-01 |url=https://archive.sundby.com/retro/DR-DOS/dossrc.zip |access-date=2022-01-02 |url-status=dead |archive-url=https://web.archive.org/web/20210807095409/https://archive.sundby.com/retro/DR-DOS/dossrc.zip |archive-date=2021-08-07}} [https://web.archive.org/web/20220102102656/https://archive.sundby.com/retro/OpenDOS/OPENDOS_7.01_CODE.ZIP]</ref> <ref name="Paul_1997_OD-A3">{{cite web |author-first=Matthias R. |author-last=Paul |title=Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT |url=http://www.uni-bonn.de/~uzs180/download/ibmbioa3.zip |date=1997-10-02 |access-date=2009-03-29 |url-status=dead |archive-url=https://web.archive.org/web/20031004074600/http://www-student.informatik.uni-bonn.de/~frinke/ibmbioa3.zip |archive-date=2003-10-04}} [https://web.archive.org/web/20181225154705/http://mirror.macintosharchive.org/max1zzz.co.uk/+Windows%20&%20DOS/DOS/System/Novell/Support/Bins/Op702src.zip<!-- Op702src.zip is an unofficial renamed distribution of the ibmbioa3.zip file -->]</ref> <ref name="HP9100A_1998">{{cite web |title=HP 9100A/B |date=1998 |work=MoHPC - The Museum of HP Calculators |at=Overlapped Data and Program Memory / Self-Modifying Code|url=https://www.hpmuseum.org/hp9100.htm |access-date=2023-09-23 |url-status=live |archive-url=https://web.archive.org/web/20230923125424/https://www.hpmuseum.org/hp9100.htm |archive-date=2023-09-23}}</ref> }}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)