TIP: Click on subject to list as thread! ANSI
echo: cis.general_interest
to: John Semler 70324,633 (X)
from: Bob Santy 76417,714
date: 1992-01-18 15:57:06
subject: #13989-#Fast 6809 emulator!

#: 13991 S1/General Interest
    18-Jan-92  15:57:06
Sb: #13989-#Fast 6809 emulator!
Fm: Bob Santy 76417,714
To: John Semler 70324,633 (X)

John:

Sounds like you've been busy!  The execution times are impressive!  Maybe a few
comments will help you out some more.

  >Almost all of the 6809 opcodes have been implemented.  The
  >exceptions are "sync", "daa", "abx", "rti", "cwai", "swi",
  >"swi2" (the real kind), and "swi3". Have not encountered them
  >yet.

Looks like you can continue for a long time without "sync", "cwai", "swi" and
"swi3".  Although support of OS9 DEBUG would require "swi".

"daa" and "abx" are definite MUSTS!  Incidentally, "daa" is the only
instruction that requires the half-carry to be correct.

  >Almost none of the OS9 system calls have been implemented.
  >Just enough to get "ALMANAC" running for the timing studies.
  >Had to fake out the "I$GetStt" call, the one which returned a
  >32 byte pat  option packet.  Otherwise, it seems relatively
  >easy to map OS9/6809 I/O calls with OS9/680X0 calls.

  >I believe a decent CoCo2 simulator that runs OS9 Level One
  >[programs] is possible.

"swi2" emulatihn for most OS9 programs can be limited to the subset of: F$Link,
F$Load, F$UnLink, F$Fork, F$Chain, F$Wait, F$Exit, F$Mem, F$Send, F$Icpt,
F$Sleep, F$ID, F$SPrior, F$Perr, F$PrsNam, F$CmpNam, F$Time, F$CRC, F$SFser,
F$UnLoad, F$NmLink, I$Dup, I$Create, I$Open, I$MakDir, I$ChgDir, I$Delete,
I$Seek, I$Read, I$ReadLn, I$Write, I$WritLn, I$GetStt, I$SetStt, I$Close and
I$DeletX.

The GetStt subset can be limited to SS.Opt, SS.Ready, SS.Size, SS.Pos, SS.EOF,
SS.DevNm, SS.FD, SS.ScSiz and SS.ScTyp.

The SetStt subset can be limited to SS.Opt, SS.Size, SS.FD, SS.SSig and
SS.Relea.

  >Unfortunately, this emulator is sprinkled profusely with 68020
  >machine language idioms. [bitfields]

If you intend to eventually port to the 68000, wouldn't "bset", "bclr" and
"btst" do?

I suspect that just as (or more) common is the access of words at odd addresses
which the 68020 will do at the expense of extra bus cycles but the 68000 will
NOT do.  Am I correct?

Again, looks like you've gotten off to a great start!!

Bob Santy



There are 2 Replies.

SOURCE: compuserve via textfiles.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.