Hacker Newsnew | past | comments | ask | show | jobs | submit | pjmlp's commentslogin

Great work.

The experience programming with handwritten code in tablets keeps being a pain, when it would be ideal as digital executable paper.


Assembly was never portable, or do you think 6502 on Apple would work out of the box in a Gameboy or C64?

Would be tricky to have your 6502 code running on a Game Boy as it has a Z80/8080.

In 1981, one could write a z80 assembly program for cp/m and it would run on thousands of different computer models.

As someone that was alive back then already, only if you never touched the hardware directly outside the CPU.

Even the PC clones didn't had something like portable Assembly if you ventured outside 0x10h and 0x21h interrupts.


I did it many times on CP/M and also DOS.

Never ‘touching the hardware’ was attainable for a great deal many assembly programs.

You could do a lot with 0x10h and 0x21h on DOS.


Yes, not much for games though.

Right. I am saying there is a difference between portable and non portable assembly code. If you interacted with the machine via call 05h interface, it was portable. If you accessed computer’s video memory buffer directly it wasn’t.

Good portable assembly would stub the system stuff off, anyway, and once that was done for the cpu class in focus, it was very possible to have a thin HAL and write portable code. A great deal many successful products of the era were written in pure assembly this way.

In any case, you could also get high performance multiplatform video/io assembly libraries on the market, soon enough, back in the day .. it begat a lot of Delphi units too, I seem to recall ..


of different CP/M computer models though, no?

The article is perfectly clear:

> The good news is that it is very easy to write assembly which targets Apple’s computers as well as the other 64-bit ARM devices running operating systems other than Darwin.


As long as nothing outside the CPU itself gets used.

Obviously. Who could possibly be writing ARM assembly code who is not also aware that system calls, etc. will vary across platforms?

Sometimes you do seem to make negative comments just for the sake of it.


So it isn't portable after all...

If you can understand what someone means when they talk about a “small elephant”, then you can understand what they mean when they talk about “portable assembly”. In this case, the relevant point is that you can write ARM64 assembly routines that do useful work (e.g optimized matrix multiplication, or something like that) in such a way that they’ll work correctly on a number of different ARM64 platforms.

This is the kind of content that one comes to HN, great stuff!

Tabs are great, especially in laptops.

Modern Explorer is a WinUI/UWP app, nothing to do with Electron, it could be worse.


And then to make it worse, plenty of devs see no issue shipping it with their applications instead of proper OS frameworks.

Are there even any proper OS frameworks any more?

Yes, one only needs to bother to learn beyond JavaScript.

Besides FreePascal, I think those of us that like such languages are probably better playing with Ada or Modula-2.

Ada, as it continues to evolve as ISO standard, and there is an official open source compiler (among 7 vendors), and Modula-2 as it got added to the set of GCC frontends, and being the language Wirth actually designed for systems stuff (the uppercase keywords are a downer if not using a proper IDE though).

Naturally Delphi still has lots of goodies.


Well, according to the legend the main reason for MS-DOS 4.x failure was the attempt to rewrite it to be multitasking proper.

https://en.wikipedia.org/wiki/MS-DOS_4.0_(multitasking)


> Clojure makes a big point of being a hosted language, that is, a language that runs on a premade runtime.

This is why I am found of the community, the symbiotic approach of two language communities working together.


UNIX and Windows aren't the only OSes on the planet, even though UNIX folks tend to assume that.

Heck many mistake UNIX with GNU/Linux even, and then complain when given a UNIX that isn't a Linux distro.


Inspired by the ways of Xerox, Genera and ETHZ.

It can be verbose, but the object approach, and having .NET, DLLs and COM as first class primitives is quite flexible.

Naturally you can have a similar experience on UNIX, e.g. fish, but very few do it.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: