Code Monkey home page Code Monkey logo

Comments (7)

SteveFosdick avatar SteveFosdick commented on June 12, 2024

That looks like an oversight. I can see I modified osfile_load to load files with tube addresses into the tube processor if one is enabled but I have forgotten to do that for run_file. As you say that does leave the question of how to start the tube processor running in the right place. The modules to emulate the tube processors are all part of b-em so it should be possible host-side but I don't know if there is anything the tube processor should do before jumping to the newly loaded code.

from b-em.

davidgiven avatar davidgiven commented on June 12, 2024

I had a look at beebem's version, but it all works quite differently. I think it's loading the data directly, but then returning a status code to the I/O processor ROM to tell it to start running. Does the beebem version use the same ROM as b-em? In which case the functionality might already be there.

from b-em.

SteveFosdick avatar SteveFosdick commented on June 12, 2024

The history to this is that, as far as I know, J.G Harston wrote the ROM, based on some work by Sprow, for use in a completely different emulator, probably not even PC-based. He published the source code for the ROM and nothing happened for a while. I had the idea to implement VDFS in B-em after discovering the ROM and set about it. Once I had finished, or nearly so - I can't quite remember, J.G.Harston decided to implement it for BeebEm too but did it his own way.

I know I have tweaked the ROM a little and maybe he has too so the two versions will now not be the same but they should be a lot more similar than the host-side code is and it should be possible to do something similar to what he has done to start execution in a tube processor.

from b-em.

SteveFosdick avatar SteveFosdick commented on June 12, 2024

Looking at the tube documentation JGH had kindly made available on his website it would certainly be possible for the host-side VDFS code to set a flag for the code in the VDFS ROM to initiate tube execution. That code would need to acquire the tube (call &0406 with A=C0 + FS number) then call the same tube entry point &0406 with A=4 and XY=address in IO memory of 4 bytes containing the address in tube memory at which to start execution. I will see if I can get round to implementing this soon.

from b-em.

SteveFosdick avatar SteveFosdick commented on June 12, 2024

I have committed a change to branch issue28 which I think works correctly. I haven't written anything that runs in the tube 6502 so I tried saving a copy of the HiBasic ROM with the correct load/exec addresses and *RUNning that. It seemed to work. Do you have a better test case?

from b-em.

davidgiven avatar davidgiven commented on June 12, 2024

It looks like this works fine --- I built most of a program with Cowgol on VDFS (which is what I mainly want to use it for) and it ran all the binaries properly.

It did then fail for other reasons, but this at least I believe is fixed. Thank you very much!

from b-em.

SteveFosdick avatar SteveFosdick commented on June 12, 2024

Thanks, David.

from b-em.

Related Issues (20)

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.