home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!news.univie.ac.at!scsing.switch.ch!univ-lyon1.fr!ghost.dsi.unimi.it!rpi!gatech!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!uknet!comlab.ox.ac.uk!newshost!rpb
- From: rpb@psy.ox.ac.uk (Ray Bellis)
- Newsgroups: comp.sys.m6809
- Subject: PD m6809 simulator to be available soon
- Message-ID: <RPB.93Jan27125133@brain.psy.ox.ac.uk>
- Date: 27 Jan 93 12:51:33 GMT
- References: <C0v2us.3Ko@shograf.com>
- <RPB.93Jan16141030@brain.psy.ox.ac.uk><74017@cup.portal.com>
- <RPB.93Jan22121602@brain.psy.ox.ac.uk> <74389@cup.portal.com>
- Organization: Dept. of Experimental Psychology, Oxford, England.
- Lines: 62
- In-reply-to: blackbelt@cup.portal.com's message of 26 Jan 93 06:15:49 GMT
-
-
- In article <74389@cup.portal.com> blackbelt@cup.portal.com (Ben - Williams) writes:
-
- That's not too bad a speed! You do have a bit of horsepower, though. :^)
-
- I'm not too worried about coding efficiency, I'll be running it on a
- 150 MHz Alpha very shortly :-)
-
- I can get almost realtime for the loop you show in the NON debug version
- of my emulator; about 900k/sec, same instructions. That's on a 25 mhz 68040,
- all caches on.
-
- My code is a great deal simpler than yours, though, and involves no
- function calls to anything, anywhere, other than one call to execute the
- instruction itself. All the non-indexed modes are coded completely inline,
- your example being an immediate mode, it falls in that group.
-
- My example wasn't immediate mode. The `fetch_operand' function call
- handles operands for all modes except inherent. My `execute' function
- first of all decodes the addressing mode and then uses a huge `switch'
- to find the function that implements the instruction. I suspect that
- a lot of my CPU time is `wasted' by the C++ implememtation, and by the
- virtual functions that implement read/write `memory cycles'.
-
- Emulators are a kick, eh? <grin>
-
- Yeah, I got quite a kick the first time I put that simple 2 byte
- counter into the system and traced the registers being incremented
- etc.
-
- ------------
- Announcement:
- ------------
-
- My C++ source code emulator of the MC6809 will be available to all
- and sundry very shortly. If people are interested in Beta testing,
- please contact me, as I'm not sure if my interpretation of how things
- like the `C' flag is set are correct, so I'd really like people to
- verify the accuracy of my simulation. At the moment, the only un-
- implemented facilities are asynchronous interrupts, as I haven't
- figured out a good mechanism for handling these yet.
-
- I have a simple `machine' derived from the mc6809 base class which
- provides a read/write port at address 0xc000 and either gets or puts
- a character to stdin/stdout. This derived class is written using
- POSIX `tc' functions to put the tty into `raw' mode but could easily
- be rewritten to use DOS `conio' functions.
-
- Now all I've got to do is write an operating system, as the emulator
- was orignally just a tool for developing the OS for a simple MC6809
- based controller that I'm designing...
-
- Ray.
-
- --
- ------------------------------------------------------------------------------
- R. P. Bellis E-Mail: <rpb@psy.ox.ac.uk>
- Dept. of Experimental Psychology Whois: (RB83)
- University of Oxford Tel: +44 865 271419
- South Parks Road Fax: +44 865 310447
- Oxford OX1 3UD
- ------------------------------------------------------------------------------
-