Giter VIP home page Giter VIP logo

Comments (2)

dbanay avatar dbanay commented on July 17, 2024

Hi Alan,
Super excited to hear you are making a Smalltalk for the Amiga!

So, that assert is NOT firing for me. I don't know much about programming on the Amiga or the C compiler used, but hope I can help.

The image I am loading from is the one named "snapshot.img" in the "files" folder. The original Xerox image was in big endian format, so I wrote a small tool to byteswap the image as necessary for work on my little endian intel system. Your system is most likely BIG endian, so you will need to use the original Xerox snapshot and sources files located in the "org" folder (the image VirtualImageLSB, which you can rename to snapshot.im). The good news is all the loading code on ObjectMemory.cpp "should" still work fine when run on a big endian machine. NB, I am assuming an int is 32 bits. I am not sure what your compiler treats it as.

Some unsolicited advice:

  1. You will want to head over to http://www.wolczko.com/st80/ and grab the original Xerox distribution and the porting guide. The trace files will be invaluable when debugging your VM and verifying you are loading objects correctly.

  2. When you get the interpreter up and running, you might find some of the debugging tools I used in Interpreter::sendSelector_argumentCount to be helpful.

  3. I don't know how good your C compiler is, but clang is really good at optimizing and inlining things, so I could get away with not having to write macros to inline stuff like we had to back in the day. You will probably need to do so, but I am sure you know that already. :-)

Good luck, and feel free to send any future questions to [email protected]!

from smalltalk.

acf avatar acf commented on July 17, 2024

Hi Dan,

Just wanted to follow up and say thanks for all this. I finally got it working last week based largely on your code and spotted some errors in ours. To start with we had the ObjectTable in segment 0 and also tried to load objects into segment 0, so that's where the asserts were hitting, loading OOP n+2 was corrupting there OT entry for OOP n. I also had extracted a method or two as I was trying to understand how the code worked and so I ended up doing things like checking the size bits on a free OOP instead of only doing that for non-free OOPs when writing out the objects. Anyhoo, all good, and thanks again for blazing the trail in a way that's very useful to those following :-)

from smalltalk.

Related Issues (8)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.