BBC BASIC for Windows
General >> General Board >> Possible new projects for the New Year http://bb4w.conforums.com/index.cgi?board=general&action=display&num=1511722610 Possible new projects for the New Year
Post by David Williams on Nov 26th, 2017, 5:56pm
Sometime in early 2018 I'm thinking of embarking on some new projects:
* An ARM instruction interpreter (not emulator!) for BB4W allowing you to run some limited ARM machine code binaries under BB4W. At minimum it would run ARMv2 binaries (in User mode).
* If not an ARM instruction interpreter, then an ARM-to-x86 instruction translator. Yes of course the resulting x86 code is likely to be inefficient, but so what? It would be fast enough for certain applications, and too slow for others.
* Possibly an ARM assembler so you can write ARM assembler code within the BB4W IDE (or import from a text file), assemble it, and run the binary code with the proposed ARMLIB (or whatever it's going to be eventually called).
* An OS_SpriteOp emulator, so you can load in RISC OS Sprite files and display them using emulated SYS OS_SpriteOp calls.
Anyone interested in these projects? I really wish that I had undertaken and completed them 10-or-so years ago! The ARM instruction interpreter/translator would have come in very handy in recent months.
David. --
Re: Possible new projects for the New Year
Post by hellomike on Nov 30th, 2017, 6:10pm
Pretty challenging projects David. Both an ARMLIB as well as a ROSPRITELIB would be welcome in my humble opinion.
Regards,
Mike
Re: Possible new projects for the New Year
Post by David Williams on Nov 30th, 2017, 8:33pm
Pretty challenging projects David. Both an ARMLIB as well as a ROSPRITELIB would be welcome in my humble opinion.
As long as I limit my ambitions to the ARMv2 32-bit instruction set, then due to its overall simplicity and orthogonality, it shouldn't be too challenging to create an ARM binary 'interpreter' and hopefully an ARM-to-x86 instruction translator. The former could be fully prototyped in BASIC, then subsequently implemented in ASM or C, and the translator could be written entirely in BASIC. I think going beyond, say, ARMv4, would likely elicit an unpleasant letter from ARM Holdings Ltd.'s legal department! The OS_SpriteOp emulator would probably be restricted to handling colour depths of 4, 8, 24 and 32 bits-per-pixel, which would cover most cases. Certain SpriteOp functions could be tricky to emulate (or at least achieve identical results to those obtained with real SpriteOp), especially the ones involving transforms - e.g. OS_SpriteOp 56 (Plot Sprite Transformed). In any case, these projects will hopefully get underway in early January. It's not lost on me that SpriteOp was created by top-flight engineers, in particular Richard Manby. So I realise that I'm probably biting off more than I can chew!
David. --
Re: Possible new projects for the New Year
Post by Ric on Dec 3rd, 2017, 9:07pm
Hi David
I am very interested in anything to do with ARM, as I would like to translate my current project into it and be able to run on Android etc...
Bring it on.
Ric
Re: Possible new projects for the New Year
Post by David Williams on Dec 3rd, 2017, 11:05pm
I am very interested in anything to do with ARM, as I would like to translate my current project into it and be able to run on Android etc...
I don't think my ARM-related projects, which will be of limited scope, would be of much use to your 3D game project. It is intended that the binary interpreter will run some 'old' 32-bit ARMv2 machine code binaries (no floating point instructions!). Similarly, the ARM-to-x86 translator will translate ARM assembler code into x86 assembler code. I can't say at the moment how good a job it will do. This is going to take a lot of research, of which I've currently done very little!
David. --
Re: Possible new projects for the New Year
Post by Ric on Dec 4th, 2017, 8:32pm