- a lot of DSP stuff is pretty magical in it's various applications - digital filtering, modulation/demodulation, recovery of weak signals in noisy environments, beam-forming etc
There's a lot of really amazing, largely mathematical, foundation work that we now tend to take for granted and without which we'd be back in the relative dark ages.
I think it's probably about the timing. I'm not an expert, but I believe that opening the side borders requires cycle exact timing at both edges of the screen, and when you have characters enabled on the screen, the VIC-II graphics chip ends up 'stealing' memory cycles from the CPU every 8 scanlines to fetch character and font data from RAM. These lines are known as 'badlines'.
Across an entire scanline I think you normally get something like 63 6510 cpu cycles to do 'work' in, but only 23 if you hit a badline - keeping in mind that some instructions take multiple cycles to execute. This probably makes the timing difficult or impossible to manage with the characters turned on.
It's not just that the 'badlines' steal 40 cycles. They steal a solid block of 40 cycles that cover most of the screen, from end of hblank until just before the right border starts. This blog post [1] has a nice interactive demo showing badline timings.
During a badline it's simply impossible write to the VIC-II's registers during the left border. Though, this seems to indicate it's still possible to open the right border during a bad line, but it's a 1 cycle window (maybe 2).
> The amount of effort to do a single 30 minute video of this sort when scaled out to a half or full year math class is significant.
This is true if Grant is the only person doing the work, however having a well educated and scientifically engaged populace seems important enough that we (the human race) should devote a few more resources to creating high quality (and freely available) courseware for all curricula/year levels.
Start paying attention to the things that bog you down when working on code, and the things that your users (ought to) expect to be easy but that are inscrutably difficult to achieve with your existing codebase. Find high quality open source projects and study them. Read books (eg. Domain driven design [distilled]). Stay somewhere long enough to feel the impact of your own bad design decisions. Take some time occasionally to pause and reflect on what isn't working and could have been done better in hindsight. Consider whether you could have done anything differently earlier in the process to avoid needing hindsight at all.
Kung Fu flash is probably all you need, with a few caveats (eg. With KFF the drive is "emulated" by intercepting kernal vectors rather than acting as a 1541 on the serial bus, so some software that eg. uses fast loaders or relies on the disk drive for offloading computation won't work).
If you want to get fancy you could go for something like an Ultimate II+ and a usb key, which will get you a bunch of extra functionally like network connectivity, extra SID support, pretty solid compatibility, REU emulation etc (but UII+ will also cost a lot more).
Given you've got a real 1541, maybe you could just copy files/disk images across to the real thing if KFF doesn't work for a particular program I guess?
I credit the C64 that I had as a kid and magazines like COMPUTE! / Compute's Gazette for my career in software. I taught myself 6510 assembler and started writing some simple demo-like things on that machine, and got hooked on the feeling of creativity that it unlocked.
Funnily enough I'd been thinking that it's about time I tried (again, as an older person) to write a game or a demo for the old 64.
It's absolutely amazing what people are able to get out of these 40+ year old machines now, and I love that there's still a vibrant scene.
In addition to the tools specified in the article, I would also recommend "retro debugger", it's an amazing tool for single stepping through code and seeing what's going on, even letting you follow the raster down the screen to see what code is executing on given scaliness.
Also, there are some really good youtubers out there helping to demystify how various games/demos work.. Martin Piper comes to mind as a good example.
I credit the BASIC and machine language byte code type-in programs for reinforcing my attention to detail and being able to track down software problems.
Kids these days[0] will never know the "pleasure" of spending hours typing in some cheesy BASIC game only to have to track down any number of syntax errors!
It's amazing that I still remember some opcodes like the ones you posted (and others, such as 0xAD for LDA$, 0x78 for SEI, 0x58 for CLI) after all these years. Brains are weird.
I had a C64 as well. My school had a programming class and we all shared a TRS80 (I think). I remember writing a program to find prime numbers and thinking about various optimizations. Mine was fastest, and I was proud. Then the boy that wrote directly in assembly ran his... That was the moment I decided to get good. :-)
I have similar experiences and sentiments myself. One difference is I was into Apple and Atari computers, but that does not seem to matter all that much.
As a younger person, I did demos and explored the tech plenty without actually building finished applications and or games.
Learned a ton! And had major league fun. Great times filled with bits of understanding I draw on all the time.
And YES! Good grief, the pixels are dancing in ways nobody would have predicted back then.
When I hop on the machines today I find them simpler than I remember and fun to program.
My experience as well but using the ZX-Spectrum. Trying to figure out why the machine code I hand translated from Z80 assembler crash the computer taught me a lot. No internet to ask for help. Just a book explaining how to program the ZX-Spectrum using machine code. I was 11 at the time.
This reminds of the corporate adage: "You can choose to invest in your people and run the risk that they leave, or you can choose not to invest in your people and run the risk that they stay".
It seems to me that the smartest people would be far more motivated to leave a country where they are unable to find other people like themselves to collaborate with.
And they'd be far more likely to come back in future and reinvest their overseas earnings in a country that they felt warmth towards than one that had forced them to play life in hard mode and was actively hostile towards them.
>This reminds of the corporate adage: "You can choose to invest in your people and run the risk that they leave, or you can choose not to invest in your people and run the risk that they stay".
Yes. I've seen it like this in a LinkedIn post:
CFO to CEO: What if we train our people, and they leave?
CEO to CFO: What if we don't train them, and they stay?
My wife worked for a company that really trained their sales people. However, they also payed very poorly compared to their peers. So people would get trained stay for a year and then go to another company that was happy to such well trained employees and pay them better.
It is practically guaranteed for all the prospective super geniuses working there for the first year, because the bar is set to be intentionally easy relative to their potential. Sometimes it is even literally guaranteed in writing for the most desirable hires.
> And they'd be far more likely to come back in future and reinvest their overseas earnings in a country that they felt warmth towards than one that had forced them to play life in hard mode and was actively hostile towards them.
A country can't live off a few expats making it big. It doesn't need investors so much as it needs doctors, good administrators, good managers, good financiers, good builders, good plumbers and so on.
Sure, this requires money, but just coming in and throwing money at a country dominated by idiots won't make anything better, it will just lead to corruption. Idiots in positions of power actively discourage better people coming in even more so than a lack of resources. It's one thing to take a low paying job to hope to improve conditions for your parents and extended family. It's another thing to fight with a boss who has no idea what they're doing but still thinks they're better than you every single day. Plus idiotic regulations from others like him in other places of the administrative state.
Only you can decide where your moral compass points, and how far you're prepared to go in an opposing direction for wealth and/or fame.
I think most people will feel better working in a position that is aligned with their values, but a lot of people can also tolerate/justify a surprising amount of cognitive dissonance in aid of supporting themselves and their families.
Whether it's convincing oneself that one's work will only be used militarily against baddies that deserve it, that the people one is putting out of work with automation/AI will fall on their feet into much better jobs, or that manipulating people into spending more time in one's app is actually a public service because the app itself does some good, people will find ways of compartmentalising and living with what they do since the alternative of having a family less well provided for is seen as the bigger failure. "Suck it up princess and get on with it, you can't bear the weight of the whole world on your shoulders, and you've got kids who need to go to college"...
My main advice would be to try not to stray so far from your moral compass that you can no longer recognise yourself. No amount of therapy or donating to charity is going to fix you at that point.
I'm really glad there are people like yourself out there, asking questions like these. I wish more were like you, and I wish you good luck and happiness whatever you choose to do.
I'd love to hear about your recovery journey.. it seems like quite the gravity-well to have escaped from. Would you consider writing a blog post or sharing here?
Nothing exciting. I have always liked changing my opinions and views as I get more information. Thankfully I have an IQ that's high enough to remain curious and I don't engage in hero worship. All authority is suspect and to be tested and held accountable, in my view. I had to also pry myself out of a fundamentalist Christian upbringing before that, so...
I'm an oddball, don't get excited about any hope for humanity. We have about 100 years to build the cylons before it's too late.
There are a lot of weird and wonderful tax breaks in Australia likely helping to drive up the sales of utes*. I don't think it's necessarily that Aussies love driving them as much as Aussies dislike handing over more than they need to to the tax man..
- cryptography in general
- data compression
- a lot of DSP stuff is pretty magical in it's various applications - digital filtering, modulation/demodulation, recovery of weak signals in noisy environments, beam-forming etc
There's a lot of really amazing, largely mathematical, foundation work that we now tend to take for granted and without which we'd be back in the relative dark ages.
reply