frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

ZX Spectrum graphics magic

https://zxonline.net/zx-spectrum-graphics-magic-the-basics-every-spectrum-fan-should-know/
62•ibobev•1d ago

Comments

77pt77•3h ago
It's still inconceivable to me how people developed for these platforms.

A good discussion about the setup for Manic Miner by the author is here:

https://www.youtube.com/watch?v=LymCezUg7HI

nine_k•2h ago
ZX Spectrum was one of the few inexpensive options, especially with color support. However terrible it was, it was also very enticing, or just the only thing you had at home, and could tinker with.
stas2k•20m ago
I still remember getting a USSR clone(Leningrad) at 5 years old. It is probably earliest memory I have.

Did not know English, could not read anything, but still spent hundreds of hours first playing, and then tinkering with it.

There was no OS to mess up, and it booted instantly to a Sinclair BASIC prompt.

pjmlp•1h ago
We had no alternatives, it was either whatever we managed to get hold of, with whatever information that we could gather from the provided manuals, a few magazines, and if lucky, the local library.

Ironically, the BASIC + Assembly combo continues to this day, even if done in different tongues.

js8•1h ago
Playing a devil's advocate - if you have to scrap by with little memory and few services, you focus on your mission, not distractions like code elegance, library choices and build systems.
MichaelRo•25m ago
I was in high school (about 14-15 years old) when I recall drawing lines and circles with BASIC on ZX-Spectrum and it was horribly slow. Was thinking of making some simple games and tried graphics mode but it was just too slow to achieve anything.

So I switched to HiSoft Pascal and line and circle became instantaneous but still I didn't dare program Tetris in graphics mode. So I used text/character mode, compiled from Pascal and was fast enough to play. (In regular BASIC, I couldn't make it work).

Then I installed HiSoft BASIC compiler and my regular BASIC was now fast enough for TETRIS. On the other hand if you think that in 48Kb of RAM they had to fit the video RAM about 8 Kb, the BASIC compiler, my BASIC code, the compiled code and use some RAM for stack and variables ... crazy. Fun times...

mdtrooper•2h ago
There is some bug in the article, because it shows:

MD content is not available

utopcell•2m ago
We can probably trace a ton of greatly influential programmers back to Sinclair machines (Linus Torvalds used a Sinclair QL for example, I think Demis Hasabis had a Speccy.. maybe), but the original ZX Spectrum 48k stands separate from all the rest. The whole hardware architecture was a series of hacks to make the machine as cheap as possible. A few fascinating facts that come to mind:

(1) the 48k Speccy had a total of ..96KiB of memory: 16KiB of "proper" DRAM, 16KiB of ROM for its BASIC and ..64KiB of DRAM of which half of was non-functional! Sinclair was buying broken memory chips and binning them to get sets whose either the top or the bottom 32KiB worked. They could get these chips for way cheaper. Each machine would have a jumper to select either the top or the bottom 32KiB working region.

(2) Both the "graphics card" chip (the ULA, or Uncommitted Logic Array, an early form of an FPGA) and the Z80 CPU needed to read from memory. Instead of having multiplexers, the ZX Spectrum just connected the two address buses with resistors, such that the ULA would overpower the Z80 if both tried to set an address to read from. The CPU was completely unaware of this: the ULA would ..freeze its clock signal for a few clock cycles, do its thing, and then let the CPU continue with its read. It was actually slower to read from a specific region of RAM that contained the framebuffer because of this.

(3) the article describes the weird out-of-order memory layout for the screen. The reason it was done this way was because of the 4116 DRAM chips the machine was using. These were 16,384 (2^14) 1-bit memories, arranged in 2^7 rows and 2^7 columns. To address a random location, one would need to first clock in the 7-bit row, followed by clocking in the 7-bit column. If you wanted to access consecutive memory locations with the same row address, the chips had a "fast page mode", where you would only need to clock in the next 7-bit column address. The memory was laid out in such a way that would minimize row address settings.

Hacks, all the way down to the core.

What happens when clergy take psilocybin

https://nautil.us/clergy-blown-away-by-psilocybin-1217112/
148•bookofjoe•9h ago•175 comments

How Frogger 2’s source code was recovered from a destroyed tape [video]

https://www.youtube.com/watch?v=lvEO4IaEJlw
75•perching_aix•1d ago•7 comments

Show HN: Chawan TUI web browser

https://chawan.net/news/chawan-0-2-0.html
247•shiomiru•10h ago•42 comments

The Humble Programmer (1972)

https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html
38•squircle•6h ago•2 comments

Selfish reasons for building accessible UIs

https://nolanlawson.com/2025/06/16/selfish-reasons-for-building-accessible-uis/
66•feross•6h ago•23 comments

WhatsApp introduces ads in its app

https://www.nytimes.com/2025/06/16/technology/whatsapp-ads.html
372•greenburger•17h ago•489 comments

Show HN: I recreated 90s Mode X demoscene effects in JavaScript and Canvas

https://jdfio.com/pages-output/demos/x-mode/
78•gneissguise•3h ago•21 comments

Show HN: Canine – A Heroku alternative built on Kubernetes

https://github.com/czhu12/canine
207•czhu12•12h ago•90 comments

Benzene at 200

https://www.chemistryworld.com/opinion/benzene-at-200/4021504.article
195•Brajeshwar•16h ago•96 comments

Photon transport through the entire adult human head

https://www.spiedigitallibrary.org/journals/neurophotonics/volume-12/issue-02/025014/Photon-transport-through-the-entire-adult-human-head/10.1117/1.NPh.12.2.025014.full
8•gnabgib•3d ago•2 comments

Iron nitride permanent magnets made with DIY ball mill [video]

https://www.youtube.com/watch?v=M6XIgdS1rzs
40•xqcgrek2•1d ago•4 comments

Battle to eradicate invasive pythons in Florida achieves milestone

https://phys.org/news/2025-06-eradicate-invasive-pythons-florida-stunning.html
43•wglb•9h ago•37 comments

OpenAI wins $200M U.S. defense contract

https://www.cnbc.com/2025/06/16/openai-wins-200-million-us-defense-contract.html
150•erikrit•8h ago•89 comments

The drawbridges come up: the dream of a interconnected context ecosystem is over

https://www.dbreunig.com/2025/06/16/drawbridges-go-up.html
27•dbreunig•7h ago•3 comments

Show HN: Nexus.js - Fabric.js for 3D

https://punk.cam/lab/nexus
57•ges•10h ago•19 comments

ZX Spectrum graphics magic

https://zxonline.net/zx-spectrum-graphics-magic-the-basics-every-spectrum-fan-should-know/
62•ibobev•1d ago•8 comments

Dull Men’s Club

https://www.theguardian.com/society/2025/jun/09/meet-the-members-of-the-dull-mens-club-some-of-them-would-bore-the-ears-off-you
117•herbertl•13h ago•64 comments

Generative AI coding tools and agents do not work for me

https://blog.miguelgrinberg.com/post/why-generative-ai-coding-tools-and-agents-do-not-work-for-me
199•nomdep•6h ago•201 comments

Natural rubber with high resistance to crack growth

https://www.nature.com/articles/s41893-025-01559-z.epdf?sharing_token=SST16F7yBaUkRDb702ZphtRgN0jAjWel9jnR3ZoTv0P9y52VPdTYScQoHBinE3JzdSvQ1aN3fhS4SSECYXRnvZ77nkrWJA2412S2E-26Il-ncine3ET1t1GzNaX2Oo2cK9GYzFNCrKSRycPCrQKJZ8QvfBeSTNR5d12_ZHLvyYkt26oAnSVTBuopgCE4tHIVPnWtjLZS3OhBz1H2OhtXQMmNFMhf-2lYu5vkTl596uaKjxxqTFBbSZj1phjSIDRELkwyRfUsM77Gu7S0VF_fPvJZAYxvV_2Hduld7MbfF1M4RO8vHe5OtCz383c2iHBjxkZ4gU59FErIjNBnLDPDT79Jaj04hbpqLWqUoVxoYCs%3D
8•cocoggu•3d ago•0 comments

Nanonets-OCR-s – OCR model that transforms documents into structured markdown

https://huggingface.co/nanonets/Nanonets-OCR-s
305•PixelPanda•1d ago•68 comments

Show HN: Zeekstd – Rust Implementation of the ZSTD Seekable Format

https://github.com/rorosen/zeekstd
191•rorosen•1d ago•43 comments

Open-Source RISC-V: Energy Efficiency of Superscalar, Out-of-Order Execution

https://arxiv.org/abs/2505.24363
77•PaulHoule•14h ago•20 comments

Snorting the AGI with Claude Code

https://kadekillary.work/blog/#2025-06-16-snorting-the-agi-with-claude-code
276•beigebrucewayne•20h ago•170 comments

OpenTelemetry for Go: Measuring overhead costs

https://coroot.com/blog/opentelemetry-for-go-measuring-the-overhead/
116•openWrangler•16h ago•36 comments

Blaze (YC S24) Is Hiring

https://www.ycombinator.com/companies/blaze-2/jobs/dzNmNuw-junior-software-engineer
1•faiyamrahman•10h ago

Working on databases from prison

https://turso.tech/blog/working-on-databases-from-prison
755•dvektor•18h ago•480 comments

Breaking Quadratic Barriers: A Non-Attention LLM for Ultra-Long Context Horizons

https://arxiv.org/abs/2506.01963
54•PaulHoule•12h ago•22 comments

Is gravity just entropy rising? Long-shot idea gets another look

https://www.quantamagazine.org/is-gravity-just-entropy-rising-long-shot-idea-gets-another-look-20250613/
284•pseudolus•1d ago•241 comments

Retrobootstrapping Rust for some reason

https://graydon2.dreamwidth.org/317484.html
120•romac•11h ago•41 comments

Privacy implications of browsers’ (mis)implementations of Widevine EME (2023)

https://hal.science/hal-04179324v1/document
101•exceptione•9h ago•57 comments