The Oric IDE Interface was a 1990s attempt to connect Oric micros to IDE disks. The project is obsolete in our days of cheap, gigantic (by 8-bit micro standards) SD cards, dirt-cheap microcontrollers, FPGAs and CPLDs. The whole project could be coded in VHDL or Verilog and implemented on the smallest FPGA chip available without any other integrated circuits on the board. But then, where's the fun in that?
oric
The Oric Logo in Vector Format
Back in 1996 or 1997, the Oric Project had a number of logos in use, most of which were hand-made bitmaps or badly scanned from Oric documents or photos. When I took over the Oric Software Page for a brief time, I decided I needed a decent logo, and made one. I used a scanned document (I forget which), which I then traced with a nascent pre-1.0 Gimp. I made it into a TIF and released it to the Oric Project. Now, I find myself needing a vector one, so I traced the original again. This time in Inkscape. Here are the results. I have made my best to keep the Persian Flaws of the original, but couldn't help but correct a few issues here and there. Here it is; enjoy!
Unions
Okay, this is a difficult one to explain. I've tried it twice. I've failed twice. Here goes anyway! It all boils down to the fact that information is only bytes which we interpret to suit our needs. The hex number #60 (0x60 for us C freaks) can be interpreted in a number of ways: in 6502 machine language, it's interpreted as RTS.
Name It!
All this business with struct this and enum that is getting annoying, right? Why should you have to stick struct or enum before the name of your data type? Well, one reason is that you can easily have both a struct x and an enum x without C getting confused. But it's still annoying. This is why you can name your own data types using the typedef keyword:
Enumerated Types
The struct ceo_member we discussed previously takes quite a lot of memory. For example, why do we allocate a ten byte string for the machine type, since we've only got three different machines? You'd argue that we could use a single byte to store this information. You'd be right! We can and should do this. One way to do it is by making machine a char. Then, different values would ‘mean’ different machines. There's a nicer way: an enumerated data type, known as an enum in C:
