Search the web
Sign In
New User? Sign Up
staticrecompilers · Static Binary Translation
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Show off your group to the world. Share a photo of your group with us.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
6502 recompiler news   Message List  
Reply | Forward Message #315 of 326 |
Michael Steil, the guy who did the Pear dynarec for Macs and who discussed the
recompiler howto in his document, has written a recompiler for Apple I and
Commodore. I discovered this when reading about the restoration of Apple I
basic ( http://www.pagetable.com/?p=35 ) which led to a similar article about
Commodore basic. Steil hasn't posted the Apple basic translation online but he
does have the Commodore one online at Sourceforge
(http://cbmbasic.sourceforge.net/ ) which you can fetch and look at with svn.

He hasn't posted the recompiler, but looking at the translated code it would
appear that he is using LLVM ( http://llvm.org/ ) as a back end.

Not that the translated code looks all that great yet, but using an optimising
compiler backend is exactly the way to go. You can tell from the comments that
he is handling a proper data flow graph which should allow for global
optimisation (the clue is the references to 'phi nodes', which won't mean much
unless you've done some advanced compiler reading)

Apple 1 basic is a 4K file. He hasn't posted the source of the translated
version, though a lot of people are asking for it. I thought it might be fun to
push it through Orion and see what it looks like. There are a couple of partial
disassemblies of apple1 basic out there already (although reportedly not 100%
accurate copies of the code) which will give most of the labels and jumps.

G




Fri Jul 3, 2009 8:50 pm

graham_toal
Offline Offline
Send Email Send Email

Forward
Message #315 of 326 |
Expand Messages Author Sort by Date

Michael Steil, the guy who did the Pear dynarec for Macs and who discussed the recompiler howto in his document, has written a recompiler for Apple I and...
Graham Toal
graham_toal
Offline Send Email
Jul 3, 2009
8:51 pm

... As far as I understand it, SSA is part of LLVM so using LLVM provides you with SSA optimised code for free, which is good. On the other hand, I prefer a...
Laurent DESNOGUES
ldesnogu
Offline Send Email
Jul 4, 2009
11:15 am

... Are you referring to AST + target or just target? I would think the AST route is the way to go. ... Does someone have a copy of the Apple 1 EPROM? I'd be...
Neil Bradley
nb@...
Send Email
Jul 4, 2009
6:59 pm

... Of course! LLVM is a compiler back-end - you feed it your AST and it does all the optimisations on the AST for you, and has a choice of target code ...
Graham Toal
graham_toal
Offline Send Email
Jul 4, 2009
9:00 pm

... It's looking for the vectors at 0xfff8-0xffff, which is probably all 0s unless you load something there. Try adding: loadimage 0xf000,...
Neil Bradley
nb@...
Send Email
Jul 4, 2009
9:04 pm

... Well, that wouldn't have worked as it hit several opcodes that weren't implemented. Here is a new recomp.exe, template, and ROM image for the Apple1: ...
Neil Bradley
nb@...
Send Email
Jul 4, 2009
10:10 pm

... That's pretty good! Comparing it manually to http://www.brouhaha.com/~eric/retrocomputing/apple/apple1/basic/a1basic.dis all I've seen so far is a missing...
Graham Toal
graham_toal
Offline Send Email
Jul 5, 2009
12:06 am

... and when I made the $FF opcode into data, it generated an output file just fine, and the few missing code sections all look to be there now... My copy of...
Graham Toal
graham_toal
Offline Send Email
Jul 5, 2009
12:41 am

... Sweet! Can you send me the latest template? ... I haven't implemented the opcodes for anything more than a disassembly, so if you try to emit C code,...
Neil Bradley
nb@...
Send Email
Jul 5, 2009
12:50 am

... just ... http://www.gtoal.com/apple1/template.apple1 The updated disassembly is http://www.gtoal.com/apple1/apple1.asm.txt ... so ... Well, first priority...
Graham Toal
graham_toal
Offline Send Email
Jul 5, 2009
1:53 am

... Well, that's lucky! Usually it completely goes off into the weeds when it attempts to disassemble data. ... The 6502 module wasn't complete and probably...
Neil Bradley
nb@...
Send Email
Jul 5, 2009
12:44 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help