BBC Micro Mega Upgrade Project - Gotek, 1770 ADFS, PiTubeDirect.
I upgrade my BBC Micro so that it can run DOS using a Raspberry Pi, a Gotek floppy emulator and replacement floppy drive controller. Mostly this is a video about me learning how to troubleshoot random problems.
25 years ago I was in college doing my A-Levels. Now I'm a teacher teaching A-Levels. I recently found my old programming project from my A-Level computer science course. Let's review it as if it was done by one of my own students.
Is it any good? Does it match up to the quality they produce today? Was it really better back in the old days of DOS and Windows 3.1 where we had to use Pascal rather than Python?
Let's find out in this relaxed ramble through the code I wrote and the documentation I had to write to accompany it.
...
https://www.youtube.com/watch?v=nezx2DI4sjs
After the fun I had last time creating a game in Z80 assembly language, I thought it'd be good to have a go at writing Conway's Life in z80.
While "fun" is one of the words I could use to describe the process, there are several more, but writing them here would upset YouTube. Let's just say I learnt a lot about debugging assembly language!
Github Repository: https://github.com/ncot-tech/z80-life
Website: https://ncot.uk/z80-homebrew-computer/conways-life-in-z80-assembly/
Support me: https://ko-fi.com/C0C116W2L
Video Sections
============
0:00 - Intro
0:44 - What is Life?
1:29 - Rules
2:34 - Overall algorithm
3:05 - Double buffering
7:19 - How the data is stored
8:19 - Maths on a Z80 is difficult
9:53 - Asteroids?
12:05 - Code
15:20 - Outro
...
https://www.youtube.com/watch?v=DelPw_fY1J0
In this video I will be showing how I use data driven programming by creating tools in Python. These tools generate C code from JSON that is created by the sprite editor I am using. The idea is that by generating C code automatically, I can more easily incorporate sprites into my code without needing to hard code anything relating to them.
Data driven design is a good way to think about your code, it makes you less likely to put "magic" numbers in your source, and also forces you to think about how to handle multiple pieces of data, rather than just single items. For example once this tool has been created, I can load as many sprites as I like into my engine and it takes no more effort than doing a single sprite. It is also repeatable meaning I can automate the process of incorporating sprite data into the build process, creating an asset pipeline.
Chapters
---------------
00:29:58 Intro
02:02:50 how sprites are created
03:39:31 TODO list
05:57:31 Creating C using Python
09:54:57 defining enums for sprite state
10:27:19 Animation Definitions
12:19:24 Bug fixing part 1
13:41:18 Bug fixing part 2
13:56:46 Generating code using tools
14:49:20 Data driven design
15:26:30 Creating sprite animation definitions
18:18:46 Dodgy Python code!
19:31:29 Tidying up the Python
20:36:07 Next TODO list
21:02:42 Bug fixing part 3
22:19:47 Coping with multiple sprites
26:15:57 Broken code
26:35:55 Back to the beginning
26:46:55 Summary of what the code now does
28:11:23 The point of all of this
30:21:52 How I will use this code
31:05:58 Test animation code
32:32:19 Animation!
32:51:50 Plan for next time
34:05:40 Final summary
...
https://www.youtube.com/watch?v=SU4R0eKpZCE
Let's look at FORTH, the obscure stack based programming language that nobody seems to use. Or do they?
After getting an Agon Light Z80 computer and discovering it can do things other than run BBC BASIC I went looking at other programs to run on it. I came across Agon-Forth and that got me thinking.
What's the point of FORTH, why's it barely used and is it really as awkward and strange as it appears? In this video I set off to find out for myself what FORTH was like.
This is not a history video or a programming video, this is a video of an experienced programmer trying to figure this bizarre language out. It uses both stacks and reverse polish notation and requires the programmer to keep track of the state of the stack as they're programming. Not unlike how assembly programmers need to keep track of the registers.
I discovered it is indeed much quicker than BASIC, but that it's so awkward to use I can see why it didn't catch on and why computers such as the Jupiter Ace failed. When you've got a choice between slow but readable BASIC and quick but hard to understand FORTH, I can see why people chose BASIC.
But that doesn't make it a bad language at all. On slow hardware FORTH is amazingly fast, and to the people who did use it the inconvenience of thinking in stacks and RPN probably wasn't an issue. It seemed popular amongst science and academic computer users who wouldn't have wanted to learn assembly, but would have been quite OK with learning RPN - their scientific calculators already used that style of data entry.
...
https://www.youtube.com/watch?v=UBEDvuIJxaI
Demonstration of the 0030 error code on a DaVinci Junior 3D printer. This is caused by the sensor on the X axis not being able to tell where the print head is.
...
https://www.youtube.com/watch?v=iF-x78r8KtY
Let’s briefly look back at last year and see what things were like, then look forward to the coming year and what I want to achieve. I did this last year too, and I’ve just been reading that.
So previously I was quite pleased at hitting 1000 subscribers on my YouTube channel, and by the end of the year had 1300 or so. This year I seem to have gained another 1000 as I’m somewhere around 2300.
Most of my videos last year were Spectrum Next related as I tried to work out how to program it, and then explain what I’d learnt to others who might be interested. I quite like learning things and then explaining what I know, I also seem to like telling stories of how things were.
It doesn’t feel like I did much else. I know I did far too much sitting in front of my TV watching YouTube, rather than making my own content but I guess that’s what happens when you do a full time job during the day. Doing more work at home seems like too much effort. Especially when it’s dark in the evenings and the space you work in is a bit of a complete mess.
So let’s look forwards then and see what I want to do in the coming year.
Making things easier is a goal. I’ve ditched my Hugo powered static website and moved everything back to WordPress. It’s just easier being able to type directly into the editor and hit “Publish” compared to the equivalent of compiling my text into a site.
I also really need to improve the place I work in for these videos and my own projects. The desk is all wrong, things are randomly put on the walls with no actual thought, it’s just sort of evolved over time.
Something I did do last year was tidy up my main workshed and put in better benches, and that’s improved things a lot. I will do the same in here.
I also find it really hard to make videos on a consistent schedule because most of my content is based on me explaining something I’ve been learning. Trying to figure something out can take weeks or months to complete, and I never liked releasing half finished videos.
I’m going to change things a bit this year and have a bunch of background, long term projects that I’ll make videos on as and when I feel the need, and then some easier to make videos each month.
Another thing I’m doing is resurrecting my blog and website to make it more useful. Previously it was just a place to dump the video description and a link to my videos in the hope someone Googling would find my content.
Now I want to actually write proper posts here. They might take the form of random waffle like this, or notes from the projects I’m working on. I can also use my site as a place to put the detailed, complex information I sometimes need to explain without trying to put it in a video. Yes, I’m just as annoyed as you are when Google directs me to a video on something I want to know, and I have to sit through ten minutes of YouTube fluff when a 30 second blog post could have told me the same thing.
I also want to try less structured vlog style videos on random topics that I’ve found interesting. I think I’ve figured out how to read a script to the camera, now I want to learn how to just switch one on and talk at it without going off topic or forgetting what I was trying to say.
Blog Post: https://ncot.uk/2022-review/
...
https://www.youtube.com/watch?v=rcRx8TRpe_M
How did the 1880 US Census and the end of World War 2 lead to the invention of the computer? What was it that kickstarted the Information Age? Come with me as we find out how the need to count everyone in 1800s America directly lead to the modern information age and all the technology we take for granted.
So just how do you count everyone in a large country like the US, and once you've gathered all that data, how can a machine be instructed to sort and organise the information so it makes sense to someone?
In fact, how do we even program computers to sort data? Sorting is a fairly easy thing for people to do, we do it every time we want to play a game using cards. However what process would we take when using a computer?
In this video I go through the history of why it's necessary to automate this task, the people involved and then look at several sorting algorithms - bubble sort, insertion sort, quick sort and merge sort.
...
https://www.youtube.com/watch?v=mHRkDezkRps