of COURSE this was EXACTLY what we all used our Commodore 64s to do, to balance our budget

also to improve our hand/eye dexterity

Follow

Siri, what were the very first RAM addresses we all POKEd

Stuff we don't tend to see in 'Introductory Javascript' books today

@natecull Anyone who didn't grow up with peek and poke is at a serious disadvantage understanding what computers, ultimately, are about.

@beadsland Yeah, there was something really satisfying about knowing that at the end of the day everything on a computer was all just 'a bunch of same size numbers in numbered slots'.

@beadsland And when your programming language/environment doesn't give you something with the same sort of clean feel to it, you feel... a bit lost and stranded. It's all 'objects', okay, but how big are my objects? What can I put in them? How many is too many? Will they always be there? Do they change when I'm not looking at them?

@beadsland This is probably an argument for C and I wish C weren't evil

Derail 

@natecull @beadsland My favorite trick in Atari BASIC was that "strings" were fixed-size byte arrays, unlike Microsoft BASIC. And you could make them map to a page boundary by DIM JUNK$(1) and then JUNK2$ by the remainder of ADR(JUNK$) to 256 bytes, and then your memory map. Then just assign strings and use fast string copying to move sprites, or character sets, or draw graphics.
#basic

@beadsland @natecull well I grew up with a bunch of Beagle Bros charts and shit and it didn't help me none

@natecull

I remember a classmate at school messing about with poke on an apple ii.

It ended up with smoke coming out the floppy drive.

@algorev @alanz

POKE put raw data into raw RAM addesses.

Most of the Commodore hardware chips were directly controlled by RAM addresses. No OS preventing you from doing anything.

On early PETs you could actually blow up the screen by setting some kind of refresh rate to the wrong speed or voltage.

Doesn't surprise me you could do the same to a disk drive.

@algorev @alanz In fact I think even on my first Red Hat Linux box around 1997, X could set arbitrary CRT refresh rates and potentially permanently damage the screen? that was fun

made a sort of

*fwuffh fwuffh ziiiiiing sponnnng* sound

a distressed CRT tube is not a nice thing to listen to

@natecull @algorev @alanz Oh god, yes, it was always exciting trying to get good screen performance.

Only a decade ago, I saw an american plug her PC laptop into a step-down converter that gave her 110 power at 50 Hz and her screen turned to plaid.

@celesteh

There was a Plassey factory in Cape Town that burned down from a monitor being driven too hard, so the coils caught fire.

This was before they built in protection because of this sort of thing.

@natecull @algorev

@natecull @alanz @algorev Especially given just how much software control the Apple II had over its drives.

Maybe just leave all four phases of the head stepper motor on? That might be enough to smoke a weak drive...

Also worth noting that a lot of Apple II I/O works on reads (PEEK), not writes.

So, if I wanted to smoke a drive from BASIC, I might try...

10 PEEK(C0EA): REM SELECT DRIVE 1
20 PEEK(C0E1): REM PH0 ON
30 PEEK(C0E3): REM PH1 ON
40 PEEK(C0E5): REM PH2 ON
50 PEEK(C0E7): REM PH3 ON
60 PEEK(C0E9): REM MOTOR ON
RUN

Then just let it sit for a while.

@bhtooefr @alanz @algorev

Yikes I did not know that about Apple II using PEEK to trigger hardware events.

@bhtooefr @alanz @algorev

cos like I used to write

FOR J = 0 TO 65535: PRINT PEEK(J);: NEXT

all the time on Commodore and IBM PC.

Terrifying to think what I could have done with a small FOR loop on an Apple.

@natecull @alanz @algorev I'd want to turn the motor on first, then enable the stepper phases now that I think about it - IIRC that order is needed for it actually select the drive.

The flexibility enabled by the CPU having direct control of the stepper motor phases has created... interesting... results. Quarter-tracking was common in copy protection, and more recently, @JBrooksBSI@twitter.com figured out how to do shingled magnetic recording.

With a disk controller and drive from 1978 (IIRC writing does need more CPU, though, to keep up with the drive).

@bhtooefr @alanz @algorev

tfw your 8-bit computer simulation needs to have an entire quantum physics subsystem to correctly model the magnetic domains of the disk drive just so you can read the copy-protection / demoscene intro / quantum cryptography / hyperspace portal used by Super Retro Space Smashers III

Sign in to participate in the conversation
Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!