|
1986, on the venerable Apple ][ machines. I got a ][gs at home but i did most of my coding at school labs at the time. I was 8 so there was no programming classes at the time, but we at least had apple labs. Most of the kids played Oregon Trail. I was still into building frankenbikes and stuff in my off time before i really caught the coding bug so like i said, mostly i did it at school to kill time, a bit at home too though, especially as I gained interest.
I learned on my own starting with the BASIC programming manual that came with the Apple ][gs. I was using it in 8-bit 6502 compatibility mode until like a year later.
raddevus wrote: What was your programming rig?
Apple ][gs in 8-bit mode, and Apple ][e's mostly. Though a friend had a ][c, and later i got a commodore.
raddevus wrote: IDE?
Surely you jest! I eventually picked up TML pascal on the ][gs but before that I had no IDE. Just a prompt and either BASIC, asm, or manual machine code (before i learned about the mini assembler)
raddevus wrote: Device programmer?
First one was an Arduino board in more recent years.
raddevus wrote: I'm thinking you learned this back in the 80s or 90s maybe and I'm curious how you had access to that stuff?
Yeah, my parents bought a ][gs as soon as it was released, and we had apple labs at our very well funded schools.
Libraries gave me access to computer mags like Byte. I learned machine code by more or less reverse engineering the code I'd find in magazines. I can't remember it now because I switched to asm as soon as I discovered the ][c and later had it.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Wow! You were extremely young to begin learning to code like that.
Yeah, the question about IDE was a bit off
Fantastic information. Thanks for sharing!
|
|
|
|
|
FWIW I learned 6502 assembler in the '80s on my Acorn Atom, that had a BASIC with a brilliant inline 6502 Assembler; you could seamlessly interleave BASIC and 6502 code. The manual documented lots of information about the internals and OS API which was also very useful.
The Atom, for those who aren't familiar, was the predecessor to the BBC Micro, itself the predecessor to the Acorn Archimedes (which was technically way ahead of the Lisa and Macintosh) and Acorn Computers begat ARM. Heady days! "Acorn Computers" was a prescient name for something small that grew so big and strong, doncha think?
I still have my Acorn Atom, with manuals, but no suitable TV for video output.☹️
|
|
|
|
|
FWIW I learned 6502 assembler in the '80s on my Acorn Atom, that had a BASIC with a brilliant inline 6502 Assembler; you could seamlessly interleave BASIC and 6502 code. The manual documented lots of information about the internals and OS API which was also very useful.
The Atom, for those who aren't familiar, was the predecessor to the BBC Micro, itself the predecessor to the Acorn Archimedes (which was technically way ahead of the Lisa and Macintosh) and Acorn Computers begat ARM. Heady days! "Acorn Computers" was a prescient name for something small that grew so big and strong, doncha think?
I still have my Acorn Atom, with manuals, but no suitable TV for video output.☹️
|
|
|
|
|
I had the later 6510 to start with... Which is different but not on the instruction level...
"If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." ― Gerald Weinberg
|
|
|
|
|
His channel is awesome. Since the NES used the 6502 chip too, this channel covers some 6502 ASM as it pertains to NES development, as well.
Jeremy Falcon
|
|
|
|
|
Yeah, definitely. He has an amazing set of skills that I think are actually quite difficult to obtain.
and, his videos are really informative and entertaining and well edited too.
|
|
|
|
|
Happy days... I was already using Cobol, Fortran and Basic then (1979/80) but bought myself a UK101 kit, which used the 6502. Frustrated by the slowness of Basic, I bought myself a "Learn 6502 assembler" book and dived in. The UK101 ROM included a very simple "monitor" which allowed you to type in machine instructions address-by-address, and display blocks of memory in hex. However you could also call assembler code from Basic, so when experimenting with 6502 the trick was to write a "loader" in Basic and then you could simply save and load your code to/from cassette tape.
I lived 5 doors away from a fledgling home computer shop (it was just his front room initially, he later moved and it became a pretty well-known source for computer stuff in the UK in the 80s). But it meant I had a ready (and cheap) supply of hardware, so plenty of extensions on the UK101 - doubling CPU speed, quadrupling cassette i/o, doubling screen resolution, doubling memory... and later adding a soundcard.
|
|
|
|
|
I remember something like 'Commodore VC 64' which had a variant of that cpu
|
|
|
|
|
Finally got a minute to watch through the video. Side note, the trick about using the bit shifts to multiply and divide by two, is also why older video cards wanted texture dimensions to be in powers of two. So much in fact, they had their own acronym for it: POT. On older cards, using non-POT textures would slow things dddooooooooowwwwwnnnn.
Jeremy Falcon
|
|
|
|
|
For reasons I have to hand implement a parser for JSON numbers that can operate over a stream parsing part of the number with each fetch. It's kind of difficult, so I fired up my Visual FA C# project and fed it this code
var number = FA.Parse(@"(0|-?([1-9][0-9]*))((\.[0-9]+[Ee]\-?[1-9][0-9]*)?|\.[0-9]+)");
var dgo = new FADotGraphOptions();
dgo.HideAcceptSymbolIds = true;
number = number.ToMinimizedDfa();
number.RenderToFile(@"..\..\..\number.jpg",dgo);
which gave me this which I can use to guide my hand rolled implementation:
DFA state diagram[^]
Bam! Now it makes it easy to write what is pretty complicated code by following this graph.
The code that I need to write to be clear, must be able to parse a very long number. For example 3.14159265358979462643 and parse it using say, 8 bytes of memory for the capture, so it can parse 8 characters at a time. Real world those figures would be larger, but the principle is the same.
If you have an easier way, put it in the replies. I'd love to hear them, honestly. Otherwise I'm sticking with my regex solution because I can't think of a more direct route from A to B.
Edit: Aaand my regex was wrong (not quite JSON spec) so I since fixed it but haven't updated this post to reflect the changes. Still, it was easy to change.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
modified 21hrs ago.
|
|
|
|
|
I'm with you - I use regex a lot if I can...
"If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." ― Gerald Weinberg
|
|
|
|
|
Is indeed astounding about the brain which first conceived the regex. And the first coder who implemented it.
Ordinary users like me make mistakes in formulating regular expressions; just imagine how rock solid must be the code which does the parsing.
|
|
|
|
|
|
I find their railway diagram to be much harder to follow than my state diagram.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Ha! That's proof positive that you didn't play enough with model trains when you were little.
Mircea
|
|
|
|
|
I hate regexp.
Mostly because I only have a need for it once every decade and I forget about it.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
I like your Visual FA project.
You don't want to allow -0.xxx ?
|
|
|
|
|
That regex is in error, and I've since updated it, but not the post.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I only hate it because I can't understand it. I have yet to find the tutorial that explains it in a way I can understand it.
There are no solutions, only trade-offs. - Thomas Sowell
A day can really slip by when you're deliberately avoiding what you're supposed to do. - Calvin (Bill Watterson, Calvin & Hobbes)
|
|
|
|
|
I think I would have probably created the state machine from scratch instead of trying to describe the valid input with that regex!
FormerBIOSGuy
|
|
|
|
|
It's nothing to do with love or hate. I recognise regular expressions' utility, but simply don't use (or need) them often enough to be comfortable with them.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
You wouldn't be one of the haters I was referring to then.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
(not read all replies so it might been discussed already)
How about being able to parse leading zero's?
They do not occur often, but these are valid ascii representations of numbers.
E.g. -000123.456 or 0000042 may not be efficient but very well parsable.
Supporting leading zeros would add two edges to your dfa.
|
|
|
|
|
I see in my mailbox the last weekly news letter is from January 2024.
Is this now abandoned?
|
|
|
|