Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yup, ISRs are the solution for 6800 and 6502 chips.

Data I/O's LogicPak (powered by a 6502) used polling, and would now and then lose data because of that. I advised the engineer working on it to just write an ISR. Months went by, while he was convinced he could make the polling work.

Finally, the manager dropped by and asked if I could just fix it. In a couple hours had it fixed with an ISR. No more problems.



The Amiga's built in serial port was particularly atrocious as the hardware could only buffer 1 character at a time. This meant that it did not work particularly well at baud rates above 9600. Combined with the CPU being starved from accessing RAM when running in hires 16 colour modes (used when emulating ANSI "graphics" common at BBSes back then), this made it rather unpleasant as a terminal emulator.


The Amiga supported both chip and fast RAM, precisely to solve the problem you're talking about. What you mention here was at most an issue with your particular machine, not a limit of the platform itself.


No, that doesn't solve the problem -- I had a few megabytes of fast RAM, and it still sucked. The chipset bus is completely contended in 4 bitplane high res graphics in OCS/ECS, so any attempt to access the serial port registers is blocked until the horizontal blanking interval (as is chip or slow RAM). The faster and wider data path in the AGA chipset improved this substantially, but that data path was only used for video DMA, not for the blitter or other chipset register accesses. The only real solution was to use an aftermarket serial port card that wasn't on the chipset bus and used a real UART like the 16550 that had a 16 byte FIFO.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: