We're on Discord! Please join our server now if you don't want to miss anything! (More info) | Join the UCC4 contest! (More info)

* WalrusIRC (More rooms available on our Discord server)

Author Topic: Hardest platforms to program/work for ?  (Read 1672 times)

0 Members and 1 Guest are viewing this topic.

Offline Jean-Baptiste Boric

  • Full User
  • Join Date: Jan 2016
  • Location:
  • Posts: 39
  • Post Rating Ratio: +2/-0
Re: Hardest platforms to program/work for ?
« on: November 22, 2018, 06:05:52 pm »
PlayStation 2

My take on this is somewhat atypical because I once tried to port back NetBSD to it, so I did not care about all the insane Sony proprietary bits. Turns out the CPU is one of the most insane things about it : from what I can recall, it's a MIPS-III with most MIPS-IV instructions, a couple of MIPS-V instructions, 128 bits registers, 64 bits virtual addresses like MIPS64, 32 bits physical addresses like MIPS32, FPU units almost but not quite IEEE 754-compliant and a 64 byte cache line.

WHY?! :banghead:

It's technically a MIPS CPU, but that's the weirdest MIPS ever made by far. It's like they've decided to make a hybrid of five different MIPS ISA because they could and piled on more insanity on top of it...

I haven't even talked about things a general-purpose UNIX-like OS does not care about, but the heterogeneous computing with the PS1 CPU bolted-on (or the PowerPC core on later models) on the bus would've yielded even more insanity to exploit.

HP Prime G1

It's not hard because of the hardware (it's fairly standard), but the firmware' OS is quite odd from what I've heard (early versions actually relied on the RAM mirroring to boot, which screams sloppy programming to me), the flashing protocol is proprietary and the utilities are Windows-only, the calculator will be bricked if the beginning of the NAND gets corrupted or overwritten and the touch chip is proprietary. That makes for a very, very frustrating platform to work on for homebrews.

Hopefully the G2 will not be such a pain in the ass to work with.

Good examples

The NumWorks calculator: extremely standard and boring hardware/flashing protocol/debugging interfaces, thoroughly documented, the source code of the firmware is available. The only real downsides are the limited amount of RAM/Flash on an unmodified model, the frame-buffer not being memory-mapped and the inability to act as a USB host, but man it is easy to work with.

I heard Google is working on a new OS to replace Android because its design is just getting plain outdated and is a pain to support the new features that came out since, say, Android 2. Looking forward to it, just to see how better it'll be or if it's gonna replace Android at all.

That's Google Fuchsia. They'll probably use it in an embedded product like Google Home or Google WiFi first, but one of the main development platform is the Google Pixelbook and they do have a nice looking, hardware-accelerated UI on it based on Flutter. I'm getting familiar with the microkernel Zircon (previously Magenta), which is the best designed micro-kernel I've seen in a long time (I've done my share of hacking and pull requests on MINIX3). So much that I'm itching to do things with it, if only I could scrape together enough free time for such an endeavor...

By the way, some guys at the NSA are interested by it at the cyber-security level. They've done an informal audit of the system to evaluate how things are going even though it's still deep into development and even made a presentation on their findings (https://youtu.be/Jov4dTnjm2o?list=PLbzoR-pLrL6rOT6m50HdJFYUHyvA9lurI&t=1430).
« Last Edit: November 22, 2018, 06:26:16 pm by Jean-Baptiste Boric »


You can also use the following HTML or bulletin board code to share it on your page or forum signature!

Also do not forget to check our affiliates below.
Planet Casio TI-Planet Calc.news BroniesQC BosaikNet Velocity Games