Skip to content
forked from hifi/woolshed

a naive attempt to emulate Classic MacOS runtime

License

Notifications You must be signed in to change notification settings

polluks/woolshed

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Woolshed

a naive attempt to emulate Classic MacOS runtime

NOTE: This is a hacky experiment and is by no means pretty.

Caveats

  • This is an ugly hack that hasn't been completely refactored
  • 64MB of RAM is allocated for the process and there's no real memory management
  • There's very little sanity checks anywhere so it will cause buffer overflows
  • It only runs on Little Endian systems but it should be easy to fix it
  • It only builds on 64-bit Linux so far, I guess

Quick Start

Depends on Qt5.

$ make
$ ./woolshed run examples/hello

You can see quite a bit of information about the PEF image with:

$ ./woolshed dump examples/hello

Hacking

Most of the runtime initialization code is in src/run.c and in src/pef.c except the CPU emulation.

System libraries are in lib/ and all library function calls take the CPU state as their sole argument.

Acks

Resources used to write this hack:

About

a naive attempt to emulate Classic MacOS runtime

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 89.3%
  • C++ 9.5%
  • Makefile 1.2%