Jump to content

sharpjon

6502
  • Content Count

    6
  • Joined

  • Last visited

Recent Profile Visitors

145 profile views
  1. sharpjon

    Bare-metal Mac project

    Ok, folks... Here's part 2: http://jonsharp.net/retrocomputing/bare-metal-macintosh-programming-part-2/ I'm still playing catch-up, documenting the things I'd done a while back now. As I mentioned above, I managed to get some of the newlib stuff working. But this write-up covers the font, character routines, loading code off disk into memory, building relocatable code, etc. The next thing on my agenda is revamping my keyboard input stuff to I can get a working _read() implementation for my newlib port. Anyway, let me know what you think. -- Jon
  2. sharpjon

    Bare-metal Mac project

    Bunsen, Man, you're right there with me. I've been wanting to do a simple FreeRTOS example for this once I have the newlib stuff working properly. I had seen MBOW's uclinux work for his homebrew machine and had in fact taken some of my inspiration from that project. It at least demonstrated the possibilities. Having basic screen/terminal I/O working using newlib will open up a host of possibilities, I think. One thing I'd like to do is port some kind of portable Forth over, (pforth seems like a good candidate) so it can provide a real operating environment upon which to build new and unique apps. (Forth is of course what the Canon Cat was built on) Also, since Open Firmware is a Forth environment itself, this would be a kind of "Open Firmware for classic 68k Macs," which might be interesting. That bit about Infocom is very interesting indeed, as one of my more immediate plans was to attempt to get the Frotz z-code interpreter to work within my terminal environment. (Their "dumb" terminal option looks suitable) Eventually, this could lead to Zork I/II/III in ROM. But... I have good news as far as my status goes, I've made some good progress of late and now have a working _write implementation, allowing one to use things like 'puts()'. My latest commits to the 'experimental' branch demonstrate this. (BTW, if you don't have an m68k toolchain installed, the 'floppy.img' file is being updated with each commit if you just want to download and fire it up in an emulator. I'll be writing up my 'part 2' soon, and will try to get into all of the compiler optimization issues I've run into, etc. In the meantime, I'd love any more feedback/help on things at this point. Fork away! -- Jon
  3. sharpjon

    Bare-metal Mac project

    Hey all, Thanks for the feedback! Bunsen: a vt100 terminal is precisely one of the ideas I had. It's non-trivial, but not terribly sophisticated, either. I've got a few other ideas, too. And I like the idea of loading more code over the serial port. MidnightCommando: Yes, I've been relying on the available docs. I've even got a fairly complete set of Inside Macintosh volumes that I've pored over as part of this effort, as well. As far as Newlib is concerned, I just managed to punch through my issues with relocatable code and managed to get enough of the Newlib stubs put together to get puts() working to output a string to the Mac framebuffer using my lower-level assembly routines. (This is all in the latest commit of the 'experimental' branch of the HappyJon repo) I've still got a lot of work to do here, but I'm pretty excited to have the newlib stuff working at a proof-of-concept level. rickyzhang: Yeah, I've dumped the annotated ROM using FDisasm. My eventual goal might be to replace the ROM entirely, or at least in part... I won't need all of the Toolbox stuff, but as BMOW points out, I wouldn't mind hanging onto the keyboard "driver" and disk drivers.... Guys, feel free to download/fork the latest commits and check out the stuff I'm working on currently. I'm anxious to get my "Part 2" written up, where I go into the font and low-level assembly routines for character/sting handling where I create a 102x25 character terminal out of the Plus display... Stay tuned...
  4. sharpjon

    Bare-metal Mac project

    techknight: you are probably right about the hacks/development section... Maybe I'll start a new thread there detailing more of the font routines, etc., and the linker issues I'm experiencing now...
  5. sharpjon

    Bare-metal Mac project

    Thanks everyone, I appreciate the feedback. Elfen: Yes, I'm not sure exactly what bootstrapping of the framebuffer the ROM startup code is doing. It was an open question for me. And it's partly why I said "with any *real* help from the ROM/System..." My end goal would actually be to create a replacement ROM in which *zero* Apple code was involved. Of course, this may not quite be possible, or rather, there really may only be one way to initialize certain peripherals, etc. For now, I'm content to leverage the ROM, both for the framebuffer setup, but also for that initial disk booting, as this is the most convenient way to test any code in development. (that is, until I get BMOW's ROM adapter: http://www.bigmessowires.com/2014/12/20/rewritable-rom-disk-for-mac-plus/) As far as the fonts, character routines, etc., they are all independent of Toolbox functions -- aside from assuming I have a memory-mapped bitmap display at ScrnBase. But again, that's all in the 'experimental' branch and I haven't written all of that up yet.
  6. sharpjon

    Bare-metal Mac project

    Hello fellow 68k enthusiasts, I'd like to share a Mac project I've been working on for a bit now. I've been exploring "bare-metal" programming on the original Macs (128k/512k/Plus) and just got around to writing up my initial efforts here: http://jonsharp.net/retrocomputing/bare-metal-macintosh-programming-part-1/ But perhaps more importantly, I'd like to solicit some help in the next stages of my efforts to produce something modestly useful/interesting on the Mac hardware, without any real help from the ROM/System. I've got an 'experimental' branch in my 'HappyJon' repo that carries things further than the initial demo in my writeup. This branch demonstrates a compact font, character and string assembly routines, and the beginnings of porting newlib. And it's this last part that I'm hoping to get some help with. I'm having some difficulty with pc-relative code and linking... Anyway, would love some feedback on this or any other aspect of the project. Here's the repo: https://github.com/jrsharp/HappyJon Thanks all! -- Jon
×