> Aha. I never stop learning. That was completly new for me... > For Acorn emulation I currently use Beeb. Just requested from the authors to > have a binary PC file import and export-function for one of the next > versions, like Sim Coupé. I have never heard about your emulator. Is there a > Acorn Electron screen interpreter/viewer available? I should test the export > of my screen converter, how it works on a emulator, but without binary > import it is a bit hard.
Oh, my emulator is ElectrEm, at http://electrem.acornelectron.co.uk, though it doesn't import or export binary files at present. That's probably a more startling revelation if I also reveal that it does import and export ASCII text format BASIC programs. I've been doing some work to it in the last few days anyway, to improve printer emulation (I catch and interpret Epson FX80 typographic codes but so far haven't been doing graphics) and to fix up some bugs that have crept in while I was adding various other improvements, so I'll look into that. In the meantime, I can provide a little assembly sourcefile compatible with BeebAsm (roughly analogous to JAM or pyz80 in that it assembles code directly to an emulator-friendly media image — see http://www.retrosoftware.co.uk/wiki/index.php/BeebAsm) that will use the contents of a binary file to assemble such that when you run the resulting DFS it just puts the contents on screen. So you'd just have to put the binary output of RetroX with the asm, run the assembler, then launch the emulator to test. I'm clueless about the BBC hardware (apart from the CPU, the Electron shares nothing with the BBC on a component level), but hopefully there's a BBC emulator that does the binary loading/saving you want. > BTW. Do you use API calls in your emulator? I'm looking for a reference of > Linux and Mac API calls online. There are a lot of Windows API calls > documented, but no Linux and Mac calls. I looking for example for the > eqivalent of GetAsyncKeyState(). There is a demand for Retro-X on Mac and > Linux... There are some direct Cocoa API calls, but it's very limited. ElectrEm is primarily built around SDL, and uses that for the main display window, for reading the keyboard and for outputting sound. On the Windows version I run a bit of code after the SDL window has been created to add a menubar and catch all incoming messages as a result of that. On OS X, I load a custom menubar before the SDL window is created, then I've got everything wired up in Interface Builder so that the various things in the menu trigger other dialogues. Cocoa isn't like an MFC-on-top-of-Win32 type thing where an invisible C interface runs some message map stuff and maps that to a C++ interface, it's a full Objective-C system. Objective-C is 'bound' (i.e. linked) at runtime, not compile time so you put the names of the methods that you want the various GUI elements to call directly into the graphically created interface, and if you've actually implemented methods with those names then they end up being called. It's all an automatic part of the language, not a cleanliness hack. I think this is partly why Apple have stuck with Objective C even though C++ became the defacto object oriented variant of C, because it binds at runtime it avoids all the ABI compatibility problems that partly contribute to the DLL hell of Windows past. There are a few places where I've used Cocoa methods to launch the standard file open/save dialogue, get the path to the application bundle's resources folder, etc, but it really is just a few hundred lines of the most basic GUI programming stuff while all the more demanding game stuff is through SDL. I think SDL itself might still be using some of the libraries that OS X inherited from all the OSs before it, which are all deprecated now and generally not a good idea. http://developer.apple.com/documentation/Cocoa/ is probably the best reference resource, but I wouldn't describe myself as an unadulterated fan. > Thats right... I also use ithe Internet to do some research about graphics > formats and image preprocessing. Asking people to help, helping other > people... In the 80 my programs are just simple and small games, and > Utilitys, in the 90 I learned to code better games and used first time my > own graphics converter that I wrote on Amiga. And now with PC I'm stick to > internet having not much free time to finish coding my projects. I don't know if I even had a computer in the 80s... I think probably not. I was only born in 1980, so I guess my parents wanted me running around outside instead, which I did and seem to remember very much enjoying. I had a secondhand Electron for about a year before my Sam, then skipped the 16 bits entirely to go PC and then Mac. The internet, which I think we first got a link to in 1996 or 1997, was a revelation. I think the only thing of any length I ever wrote on my real Sam was an Outwrite clone in BASIC. It was very slow indeed, and couldn't print.