Am 10.06.2015 um 01:21 schrieb Cormac O'Brien i.am.cormac.obrien@gmail.com:
This patch modifies the adler32 word to set an Apple copyright string in the device tree in order to allow Mac OS 9 to boot.
Signed-off-by: Cormac O'Brien i.am.cormac.obrien@gmail.com
arch/ppc/qemu/init.c | 2 +- arch/ppc/qemu/qemu.fs | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/arch/ppc/qemu/init.c b/arch/ppc/qemu/init.c index d31b8ba..a5073a3 100644 --- a/arch/ppc/qemu/init.c +++ b/arch/ppc/qemu/init.c @@ -1003,7 +1003,7 @@ arch_of_init(void) /* Implementation of filll word (required by BootX) */ bind_func("filll", ffilll);
- bind_func("adler32", adler32);
bind_func("(adler32)", adler32);
bind_func("platform-boot", boot); bind_func("(go)", go);
diff --git a/arch/ppc/qemu/qemu.fs b/arch/ppc/qemu/qemu.fs index 458af1b..939985a 100644 --- a/arch/ppc/qemu/qemu.fs +++ b/arch/ppc/qemu/qemu.fs @@ -93,3 +93,31 @@ variable keyboard-phandle 0 keyboard-phandle ! :noname set-defaults ; PREPOST-initializer
+\ ------------------------------------------------------------------------- +\ Adler-32 wrapper +\ -------------------------------------------------------------------------
+: adler32 ( adler buf len -- checksum )
- \ Since Mac OS 9 is the only system using this word, we take this
- \ opportunity to inject a copyright message that is necessary for the
- \ system to boot.
- " /" find-package if
- " set-property" $find if
( adler buf len phandle xt )
>r >r
" Copyright 1983-2001 Apple Computer, Inc. THIS MESSAGE FOR COMPATIBILITY ONLY"
Segher suggested that the code doesn't verify the year part, so you could make this "Copyright not-by Apple Computer, Inc."
Alex
encode-string " copyright"
r> r> execute
- else
." Can't find " type cr
- then
- then
- " (adler32)" $find if
- execute
- else
- 3drop 0
- ." Can't find" type cr
- then
+;
2.4.2