Running the Amiga SAS C 6.58 compiler with vamos

Well, the vamos project is progressing really, really well… And while I’m working at bringing more and more native Amiga tools to life on my Mac, I almost overlooked the first major milestone (and actually its primary initial goal) of the project: running the SAS C Compiler…

This posts interrupts the rather technical series of articles describing the internals of vamos and simply shows you how to actually use vamos the way its intended to be 😉

Fasten your seatbelts, grab your old SAS C compiler disks and read on!

Continue reading

vamos runs Amiga CLI programs on my Mac

I did some classic m68k Amiga code development that uses the SAS C compiler recently (see plip2slip). Everything was set up in a P-UAE-based AmigaOS 3.9 environment and worked fairly confortable. While switching between TextMate on my Mac I used for editing the code and the CLI window in P-UAE I had a thought: “It would be fairly cool to have something like Wine for AmigaOS… Then I’d simply run the SAS C compiler Amiga binary on my Mac directly…”

That was the beginning of my newes project: vamos – The Virtual AMiga OS emulator.

Read on to learn more about the birth of vamos and its first major milestone: run the SAS C compiler in my new “Developer’s Diary” series 😉

Continue reading

plip2slip 0.1 released

While playing with my A500 recently, I had the idea to try out the TCP Stacks available for this platform. Since the little Amiga lacks a decent ethernet card I had to get along with the internal serial port and a SLIP connection. With 9600 Baud this is very slooow. So I kept on searching for a faster solution and found a PLIP implementation on Aminet. PLIP using the parallel port is much faster than SLIP, but you need a peer with a parallel port, too… and that’s the hard part today 😉

Following  the same approach as found in my dtv2ser project, I just attached an AVR ATmega microcontroller to the parallel lines of my Amiga and implemented the PLIP counterpart there. The ATmega on the popular Arduino 2009 boards has a fast serial connection that maps to a USB port via a FTDI 232. This is the ideal data channel for transporting the PLIP packets to your host Mac or PC. With baudrates up to 500 kBaud (~50 KiB/s) and hardware handshaking with RTS/CTS you can easily transfer the data packets very fast to your PC and encapsulate them again in SLIP.

With this idea I started to implement the plip2slip firmware. Fortunately, the magPLIP driver for the Amiga comes with source and so I could port the code to the AVR. With slight modifications on the Amiga part (patch included) I was able to receive the first packets from the Amiga on the Arduino. Then I implemented a simple Ping mode that receives ICMP Ping Requests transforms them to Replies and returns them to the Amiga: plip2slip soon was a ping machine 😉 I repeated the same thing for the SLIP side and with a patched slattach tool on Ubuntu Linux I was soon able to ping the AVR from this side, too.

With the basic parts of plip2slip in place and working I finally added the transport/bridging mode that transfers all received PLIP packets to SLIP and vice versa. With this mode running I could ping the Ubuntu host from my Amiga! After some IP forward configuration on Ubuntu I was able to reach my home network and also the Internet with the A500.

And its real fast! An FTP download on my Amiga reaches 25 KiB/s when transferring 10k from Linux! So compared to SLIP with 9600 Baud its a real break through and worth the little hardware effort needed to build the Arduino device…

There is still lots of potential for tuning and optimizing, but I wanted to share this little project as soon as possible with you. So I crammed up everything you need into a little 0.1 release that is available on my shiny new plip2slip homepage. I hope you enjoy it and bring lots of your classic machines back to the net with decent speed…

vbcc 0.9b: An Amiga Cross Compiler for Mac OS X


On my neverending quest to have a powerful cross compiler for m68k Classic Amiga (i.e. OS <= 3.x) for my Mac I had a closer look on the fresh new release of Volker Barthelmann’s C Compiler.

In this post I’ll describe how to install this nice piece of code on your machine in a few easy steps!
Continue reading

Updated OpenCBM and Nibtools Portfiles

If you are using OpenCBM or Nibtools with the MacPort Portfiles I offer here on my site then you can now find an update of both Portfiles on the following pages:

What has changed? Until now I had Portfiles that pick the source from a Snapshot tarball I have stored on my site. This was the release version that made it to the public in January 2011. Now I added Portfiles that directly build the HEAD revision of the associated Source Repositories. With these ports you are always up to date,but they are development snapshots that might not work sometimes…You have been warned ;)

What I’ve done lately…

So many month passed by and no update here… I wasn’t lazy (at least not all the time 😉 and so I’ll give you a short summary what retro projects I’ve been involved with lately:

  • DiskFreeezerX – My pet project that aims to build a standalone disk capture device… Should come very handy for partys or meeting people that don’t want to leave their precious disks… Take the device with you, slip in a disk, press a button and some time later you have a shiny exact clone of the disk on your SD card… That’s the goal!
    The current state here is: The device is built and functional as a prototype and as a first Rev A PCB… See my shiny new dfx hardware page for all the glory details and lots of photos…
  • MacVICE – Not much own contribs done here lately. But always following the flow of new features and busy building current snapshots. And before I forget it: With MagerValp’s help I finally fixed the dreaded “black-screen” display problem when the fine blended display is enabled… So enjoy temporal filtering with no more black outs!
  • PUAE – I am really happy that GnoStiC is now bringing together the current WinUAE and the already dated E-UAE code base to create finally a greate Amiga emualator for all *nix, Linux and Mac users… I really appreciate that and help by submitting small patches. I’ve created my own little fork/clone of the repository at GitHub: You can check this out if you want to have a look what I am patching lately: PUAE/cnvogelg
  • amitools – Another little crazy project started by me. Its a python library that allows you to read and parse Amiga’s Hunk-based binary format. With all the memory on the good ol’ times fading away and with UAE refreshing my old desire for the Amiga I wrote this lib to refresh and to store the old knowledge in readable python code. Currently, there is not much docs there. But a real hacker will find his/her way… I wrote a small sample that scans your harddrive for amiga files (even in adf, lha containers) and tries to parse the exe with the lib… The lib got a new push with the introduction of the AROS m68k Port (yay!!).. This port uses a decent gcc compiler to generate m68k-elf binaries. So I added ELF parsing to amitools. The only thing still missing is now the converter elf to hunk and back again in python (similar to elf2hunk)…

That’s it! See you soon with more updates…

Nibtools on Mac added and OpenCBM on Mac updated

Now with ZoomFloppy device hitting the streets and a growing number of Mac users that own this device its about time to give them decent software packages to work with. I already started the OpenCBM on Mac page quite some time ago when I started to help porting the code for Macs. I reworked the full page and simplified a lot of things. Here it is the shiny new OpenCBM on Mac page with special attention for easy setup of ZoomFloppy users!

The OpenCBM tools are really useful for day-to-day normal disk transfers. But when it comes to copy-protected disks the only tool there is Nibtools from C64Preservation. These tools use the OpenCBM libraries and I soon got them to compile on my machine. The only thing missing there was writing a Portfile and setting up a page similar to the OpenCBM on Mac one. Here we go: I added a shiny new Portfile for Nibtools and described its installation on the Nibtools on Mac page.

Enjoy installing all the nice tools on your Mac and have lots of fun capturing your old treasures to disk images…

MacVICE News: Introducing IO Tree

While the last added debugging features to MacVICE are all well-known and mostly ported from WinVICE this one is a new and currently mac-only debugging feature: The IO Tree. “What’s this?”, you might ask.

The IO Tree is actually an anotated dump of the memory-mapped IO registers from your beloved cbm platform. All is packed into a GUI Tree to make it hierarchical and let you control the vast amount of information that is kept there. But IO Tree is not only a register dump with descriptions, it also allows to combine and format the register values to make most sense and to reflect the actual function they represent. So the IO Tree can combine LO-/HI-Addr registers to show a 16 Bit address, can mask out a bit flag and show its state, maps a masked value set to a set of string descriptions or even do very special things like decoding VIC II color values…

The nice thing about the IO Tree is, that it is actually not stored in the MacVICE binary but in a text PList called IOTree.plist. This allows to extend the tree with new custom registers for every user. Currently, I have typed in all VIC II, SID, CIA 1, CIA 2 and 6510 On-Chip registers right out of AYY64 (Thanks Ninja/The Dreams for this great resource!). If you find errors or have something to add then drop me a comment… Currently the syntax of the plist is not documented but simply have a look at the existing tree and you’ll find out how it works…

If you want to try out IO Tree then have a look at the latest MacVICE snapshot (at least revision 23154 is required). While waiting for its upload/download enjoy a screenshot:

MacVICE News: New Debug Windows

I am currently working on extending MacVICE with some fancy debugging features. Users of WinVICE already know the memory, register and disassemlby windows that exist besides the monitor view.

I adopted all of these window types with a slight make-it-the-mac-way style attached 😉 My debug windows are tied to the main or drive CPU and need no switching. Currently, only the CPU windows are available.

The windows are available in the current MacVICE snapshots:

I hope you like them…

BTW: If you don’t find this feature have a look in the “Window/Debugger Windows” menu 😉

XUM1541 and OpenCBM for Mac

With christmas time the presents arrive… Nate Lawson presented the beta of his incredible XUM1541 USB to IEC/parallel adapter for OpenCBM. I was immediately amazed by this project and built my own version of the XUM1541. I had the chance to help out testing the software on Macs even in its early stages, so everything will work smoothly on our favorite platform…

Lallafa's XUM1541 Prototype

Now with the beta of XUM1541 online, I have another present for you: The OpenCBM on Mac page on my site. This page describes how to compile and set up the OpenCBM software yourself and how to get your device running on your Mac. Have fun!