Hacker News new | past | comments | ask | show | jobs | submit | zabzonk's comments login

For those of you that might be interested, the Rainbow was an attempt by DEC to make an IBM-compatible AND a CP/M compatible in one box - it was a very nice box, and made a great VT200 terminal, but the compatibility was just not there.

The Apricot was another attempt at an IBM PC compatible, this time from a UK company. It was awful. You could not fit an Ethernet card into it without using an expansion box, much like the RAM pack on a Sinclair ZX81, and with similar reliability.


The Apricot PC [1] was not an IBM PC compatible, it was a Victor 9000/Sirius 1 compatible.

[1] https://en.wikipedia.org/wiki/Apricot_PC


We (at the BBC) had the later 286 versions which claimed compatibility, and could run Windows 2.0 - they were still crap, and in fact so unreliable that we trashed them all and replaced them with Compaq, as doing so was so much cheaper in support, development and other costs.

Original reason for buying them was of course because they were "British". This was in the late 1980s - luckily things have changed since.


If Douglas Adams owned the Apricot before the Macintosh then it would have been an 8086+8089 one, they were reliable. His writing suggested that he only used Macs after getting the first one.

Yes, it was one of those MS-DOS machines that wasn't a full IBM compatible -- another one briefly popular in the US and Japan was the Sanyo MBC-550 (or "Silver Box"). The idea was that people would write software that just used the MS-DOS API (the way they did for CP/M machines). But unfortunately they didn't -- most software assumed that it was running on an IBM PC so machines that didn't convincingly appear to be IBM PCs failed.

i think you mean void pointers. the callee will then cast those pointers to an actual type it knows about (and then possibly go horribly wrong)

No, I don't mean void pointers, I'm talking about just pointers to some unknown type T.

What's inside a T? How can we make one? We don't know, but that's fine since we have been provided with APIs which give us a pointer-to-T and which take a pointer-to-T so it delivers the opacity required.


No, you can just use a pointer to struct S without ever defining the fields of S, no void pointers required.

Incomplete types. Void is just a special kind of incomplete type.

> take into account 100’s of datapoints, such as customer and payment metadata as well as internal classifiers of error codes and messages

and your customers are happy with you using 100s of this data?


THey're happy with the increased revenue and reduced churn. Separate to powering the decisions we don't save any personal information and have a clear/transparent data processing agreement. For those with further restrictions, such as HIPAA compliance, we can limit certain inputs.

A Brief History Of Time?

Some of the things I learned from implementing a FORTH on a CP/M box back in the early 1980s were

- writing Z80 assembler

- using the assembler and linker

- getting a clue about how the CP/M file system worked (it didn't, very well)

- writing a number of utilities (VT52 emulator, PacMan clone & stuff) in FORTH, which was fun

- macro programming at compile/runtime using things like BUILDS/DOES

It's a lot of fun and you don't need to invest much time in it to get things done.


I remember back in the 1980s that if you had a cheap microcomputer (I had a Dragon32) you actually needed a cheap, low-quality cassette deck to save/load your code/data successfully - the higher-fi ones would simply not work well, for reasons I never understood but can definitely attest to from experience.

Perhaps the HiFi ones used some additional processing like Dolby Noise Reduction, which interfered with whatever signal modulation method was used by your computer to save digital data on cassettes.

The received wisdom of the time was that a hi-fi was simply too powerful and would blow up the computer (or at least damage the mic/ear circuits). Also quite inconvenient dragging your Speccy next to the family hi-fi, compared to attaching a cheapo portable cassette deck.

I suppose these might have been attractive to very well-heeled musicians because of the MIDI ports, which was one of the reasons that the full-sized ST was popular with them.

Yes, the mini-MIDI port on a 1991 laptop is truly unique.

But probably there wouldn't have been much of a market for that. Computer-driven live music performance was still very exotic. Laptop jockeys were a decade away.


It was due to their rock solid MIDI Sequencing with the advent of the AKAI S1000 Sampler and the move away from the Amiga dominated 'Tracker' scene with the introduction of Cubase as primary DAW.

Computer-driven live music performance was very much a thing long before 1991. The 'computers' in question were Analog sequencers using control voltages, and things like the LinnDrum providing click tracks to trigger sync. Roland expanded on this with the release of their TR-808 drum machine and sequencer in 1980, utilising a precursor to MIDI known colloquially as DIN-Sync or Sync24 https://en.wikipedia.org/wiki/DIN_sync

This gave way with MIDI to the sequencing of outboard gear via a variety of hardware sequencers and computer/DAW combos - bringing us to the Atari ST and the first few generations of PPC and G3 Towers as we entered the true age of the PC DAW.


Zappa even took his Synclavier on the road in 1988. You can hear it all over the albums from that tour. It was almost certainly the most expanded (and expensive) unit on the planet. By 1991 it had an astounding 768MB of RAM.

Speaking of Synclavier, Kraftwerk's crashed live in 1991... https://www.setlist.fm/setlist/kraftwerk/1991/philipshalle-d...


Synclavier was a serious powerhouse that straddled the analog/digital era - additive, digital, and FM synthesis with unique sampling features. They were lucky with the cross-pollination in the US University scene at the time.

It was originally envisaged to be the 'Dartmouth Digital Synthesizer', borrowing the then innovative FM synthesis technology from Stanford which was eventually the basis for the Yamaha DX line of synths, with the DX7 being the indisputable king of late 80s popular music.

That 24-bit, 50kHz sample rate and the AD/DA converters were glorious, but even the workflow and palette editing functionality were so unique and revolutionary that there's value in a full 1:1 software emulation. I've had a lot of fun playing 'guess the hit single' with the Synclavier and Fairlight emulations in the Arturia Collection

https://www.arturia.com/products/software-instruments/syncla...


> Computer-driven live music performance was very much a thing long before 1991. The 'computers' in question were Analog sequencers using control voltages, and things like the LinnDrum providing click tracks to trigger sync. Roland expanded on this with the release of their TR-808 drum machine and sequencer in 1980, utilising a precursor to MIDI known colloquially as DIN-Sync or Sync24 https://en.wikipedia.org/wiki/DIN_sync

On one level, I'm absolutely onboard with this perspective. On the other hand I think this is bending the definition a little bit too far. What we're specifically discussing here is using general purpose portable computers as part of a live performance.

The Fairlight CMI falls into an interesting middle ground because, at least in theory, you could probably have created and run general purpose software applications on it. Would have made a pretty wild (and ludicrously overpriced) word processor or spreadsheet station. But, of course, the software it ran was all geared towards music production, and is a very direct forerunner of the kinds of music production software that would become increasingly available for general purpose computers.

Definitely a wild and innovative time.


Definitely fair points re: the Synclavier and the Fairlight.

That said, from memory I'm pretty positive there's a few 'sidenotes' in the era which would have utilised general purpose portable computers as part of a live performance. The UK synthpop acts cobbling together gear post-Depeche Mode's 1981 'Speak and Spell' Album, with stuff like the Alpha Syntauri setup for the Apple II used by Herbie Hancock and Laurie Spiegel coming to mind.

https://www.vintagesynth.com/syntauri/alphasyntauri

You then went even more niche, for the sake of academic argument, with the Amiga demo and modscene which often focused on the use of Tracker MODs for live performance and 'DJing' on COTS consumer PC hardware.

I'd also eat my hat if there weren't Jazz and new-wave artists utilising the FM Chips in the early NEC and PC-88 style line at the time - i.e. the natural progression of the chiptune scene going full polyphony and fidelity from the MOS chip in the C64.


Well, Jean Michel Jarre had 11 (eleven) Ataris on stage in 1990... but he'd always been ahead of the curve, e.g. having his own custom sequencer HW.

The Atari ST wouldn't have been so onerous to bring on tour. Even the display wouldn't be the biggest/heaviest piece of gear a band would bring with them.

Here we see Atari Teenage Riot using their namesake live (even in 2010): https://www.flickr.com/photos/clintjcl/5076088906


I remember being called in to make my screaming little brother (he was 5 to my 9) eat this horrible crap. My brotherly advice - "Eat it or I will kill you". Frankly, it didn't work, and I could hardly eat the stuff myself.

Or as Philip K Dick knew him - "Serious constricting path".


Citation?


Galactic Pot Healer


Please explain what you mean by "a separate instruction".


Some idiomatic C code to copy a string (I'm not saying this is good C code, but it's just an example):

    while(*d++ = *s++)
      ;
 
On the Motorola 68000 (based somewhat on the PDP-11) the code would look like:

    loop:       move.b  (a0)+,d0
                move.b  d0,(a1)+
                bne     loop
 
while on the x86 line, it would be:

    loop:       mov     al,[rsi]
                mov     [rdi],al
                inc     rsi     ; extra instruction!
                inc     rdi     ; extra instruction!
                cmp     al,0
                jne     loop
 
Yes, there are better ways to write that code for both the 68K and x86, but I hope this gets the point across.


> loop: move.b (a0)+,d0 move.b d0,(a1)+

...

> loop: mov al,[rsi] mov [rdi],al

This hurts my brain. When we invent time machines I'm going to use it to go back and slap whoever at intel came up with that operand order.


memcpy etc also take the destination as their first argument, and it mirrors the usual way we write assignments. Personally I always found Intel syntax to be more straightforward, but I think it's ultimately down to whatever one was exposed to first.

I wonder sometimes why we keep insisting on the "OP ARG, ARG" format in general for assembly. Why not something like `MOV X -> Y` that would make it absolutely clear and unambiguous? For that matter, why not `COPY X -> Y`, since that's what it actually does?


It hurts less if you think of it like assignment:

    al = [rsi]
    [rdi] = al


A MOV and an INC, as opposed to just the MOV.


Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: