UC San Diego taught a Spectrum coding class

Y'know, other stuff, Sinclair related.
Post Reply
User avatar
PROSM
Manic Miner
Posts: 476
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

UC San Diego taught a Spectrum coding class

Post by PROSM »

I can't tell if this has been mentioned before, but seeing as the following has not been archived, I doubt it.
It would seem that UC San Diego ran a class in winter 2017, teaching their computer science students the one true religion - the ZX Spectrum. ;)

https://hovav.net/ucsd/cse0175-wi17/

Students were tasked with producing a program for the machine that was "as impressive as possible", and were given a reading list featuring Jonathan Cauldwell's machine code tutorial, Chris Smith's ULA book, SkoolKit disassemblies and more.

I've been able to find one of the projects produced during the course, a remake of the Chrome Dino game (your wish finally came true [mention]Juan F. Ramirez[/mention]!) Note that an assembled tape file is not provided in the repository; instead, this can be found here.

If only more universities followed UC San Diego's lead! :mrgreen:
All software to-date
Working on something, as always.
User avatar
djnzx48
Manic Miner
Posts: 730
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: UC San Diego taught a Spectrum coding class

Post by djnzx48 »

I remember seeing something about this a few years ago, but I can't find the place where it was mentioned originally. This project seems to be from the same course: https://github.com/kbuzsaki/zdefense
User avatar
Morkin
Bugaboo
Posts: 3269
Joined: Mon Nov 13, 2017 8:50 am
Location: Bristol, UK

Re: UC San Diego taught a Spectrum coding class

Post by Morkin »

Looks cool.. :)

Though minus 1 mark for using WASD keys :lol:
My Speccy site: thirdharmoniser.com
User avatar
PROSM
Manic Miner
Posts: 476
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: UC San Diego taught a Spectrum coding class

Post by PROSM »

djnzx48 wrote: Mon Jun 08, 2020 3:54 pm I remember seeing something about this a few years ago, but I can't find the place where it was mentioned originally. This project seems to be from the same course: https://github.com/kbuzsaki/zdefense
That project looks better than the Dino clone. Quite fun to play too, but I have to agree with Morkin, the WASD keys detract from the experience. I guess they don't know any better though :mrgreen:.

The game over screen is a nice touch too: "You died. Congratulations."

EDIT: Just found this one too: https://github.com/dim007/cse190_8_bit

EDIT 2: And two more: https://github.com/ohseanhands/cse0175-demo and https://github.com/JohnWishon/cse_0175_joalch
All software to-date
Working on something, as always.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2641
Joined: Mon Nov 13, 2017 3:16 pm

Re: UC San Diego taught a Spectrum coding class

Post by Ast A. Moore »

PROSM wrote: Mon Jun 08, 2020 3:25 pm teaching their computer science students the one true religion - the ZX Spectrum.
Amen! :D
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
User avatar
Ivanzx
Manic Miner
Posts: 736
Joined: Tue Nov 14, 2017 9:51 am

Re: UC San Diego taught a Spectrum coding class

Post by Ivanzx »

Thanks for the info! Intetesting stuff here!

There are a couple of games I couldn´t get them working, the TRex clone and SnorlaxMad, could anyone make them available as a working tap? Thanks!
User avatar
PROSM
Manic Miner
Posts: 476
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: UC San Diego taught a Spectrum coding class

Post by PROSM »

Ivanzx wrote: Mon Jun 08, 2020 4:57 pm Thanks for the info! Intetesting stuff here!

There are a couple of games I couldn´t get them working, the TRex clone and SnorlaxMad, could anyone make them available as a working tap? Thanks!
I've assembled the T-Rex game myself, and it's available here from Connosoft. For SnorlaxMad, the TAP file is in the repository (link here)
All software to-date
Working on something, as always.
User avatar
Ivanzx
Manic Miner
Posts: 736
Joined: Tue Nov 14, 2017 9:51 am

Re: UC San Diego taught a Spectrum coding class

Post by Ivanzx »

PROSM wrote: Mon Jun 08, 2020 5:00 pm
Ivanzx wrote: Mon Jun 08, 2020 4:57 pm Thanks for the info! Intetesting stuff here!

There are a couple of games I couldn´t get them working, the TRex clone and SnorlaxMad, could anyone make them available as a working tap? Thanks!
I've assembled the T-Rex game myself, and it's available here from Connosoft. For SnorlaxMad, the TAP file is in the repository (link here)
Thanks for the T-Rex :)
regarding the other one, after loading it nothing happens :/
User avatar
PROSM
Manic Miner
Posts: 476
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: UC San Diego taught a Spectrum coding class

Post by PROSM »

Ivanzx wrote: Mon Jun 08, 2020 5:21 pm
PROSM wrote: Mon Jun 08, 2020 5:00 pm I've assembled the T-Rex game myself, and it's available here from Connosoft. For SnorlaxMad, the TAP file is in the repository (link here)
Thanks for the T-Rex :)
regarding the other one, after loading it nothing happens :/
Sorry, I forgot to mention, you need to type RANDOMIZE USR 33000 after it has loaded to start the game.
All software to-date
Working on something, as always.
User avatar
Ivanzx
Manic Miner
Posts: 736
Joined: Tue Nov 14, 2017 9:51 am

Re: UC San Diego taught a Spectrum coding class

Post by Ivanzx »

PROSM wrote: Mon Jun 08, 2020 5:30 pm
Ivanzx wrote: Mon Jun 08, 2020 5:21 pm Thanks for the T-Rex :)
regarding the other one, after loading it nothing happens :/
Sorry, I forgot to mention, you need to type RANDOMIZE USR 33000 after it has loaded to start the game.
I have tried in the 128k mode and nothing happened, I also got an error message, how is the E (for USR) mode entered in the emulator (Spectaculator)? :|
User avatar
PROSM
Manic Miner
Posts: 476
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: UC San Diego taught a Spectrum coding class

Post by PROSM »

Ivanzx wrote: Mon Jun 08, 2020 5:39 pm I have tried in the 128k mode and nothing happened, I also got an error message, how is the E (for USR) mode entered in the emulator (Spectaculator)? :|
Sent you a PM.
All software to-date
Working on something, as always.
User avatar
djnzx48
Manic Miner
Posts: 730
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: UC San Diego taught a Spectrum coding class

Post by djnzx48 »

One interesting thing about these projects is that they are written by teams consisting of multiple programmers. While Spectrum games can still have multiple contributors, I get the impression that the majority of the programming is usually done by one person (plus Jonathan Cauldwell). Team projects don't seem to be so common.

I once handed in a Spectrum program as part of an assignment, although doing so wasn't formally required. (It was a programming assignment where you could choose whatever language you wanted to use.) Needless to say, I failed it dismally.
User avatar
PROSM
Manic Miner
Posts: 476
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: UC San Diego taught a Spectrum coding class

Post by PROSM »

djnzx48 wrote: Tue Jun 09, 2020 9:57 am One interesting thing about these projects is that they are written by teams consisting of multiple programmers. While Spectrum games can still have multiple contributors, I get the impression that the majority of the programming is usually done by one person (plus Jonathan Cauldwell). Team projects don't seem to be so common.
With how low-level Spectrum programming is, it tends to be beneficial to have a sole individual working on the entire project. They can keep the whole structure in their head, and are able to work simultaneously on the bigger picture and the minute details. Teams have to keep everyone synchronized with a set structure, which is probably more hassle than it's worth for something as small as an 8-bit game.
djnzx48 wrote: Tue Jun 09, 2020 9:57 am I once handed in a Spectrum program as part of an assignment, although doing so wasn't formally required. (It was a programming assignment where you could choose whatever language you wanted to use.) Needless to say, I failed it dismally.
Don't leave us on tenterhooks, now! What was the program's purpose? Was it written in machine code or BASIC?
All software to-date
Working on something, as always.
User avatar
Morkin
Bugaboo
Posts: 3269
Joined: Mon Nov 13, 2017 8:50 am
Location: Bristol, UK

Re: UC San Diego taught a Spectrum coding class

Post by Morkin »

"The true story of Sqij!" ?
My Speccy site: thirdharmoniser.com
User avatar
djnzx48
Manic Miner
Posts: 730
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: UC San Diego taught a Spectrum coding class

Post by djnzx48 »

PROSM wrote: Wed Jun 10, 2020 10:09 am With how low-level Spectrum programming is, it tends to be beneficial to have a sole individual working on the entire project. They can keep the whole structure in their head, and are able to work simultaneously on the bigger picture and the minute details. Teams have to keep everyone synchronized with a set structure, which is probably more hassle than it's worth for something as small as an 8-bit game.
I guess that's true. Maybe I'm too optimistic, but I think that programming teams can still be viable. Spectrum games have the potential to grow relatively large (especially if you consider disk drives or external storage), and can take a long time to develop if it's only one person doing the work. Even for a single-person project, I have trouble keeping the structure consistent throughout the entire program (since it changes along with development!) but maybe that's just me.

A team would still need a designated leader to be effective, who would decide what the overall structure would look like. Ideally everything would be modularised so people can work on different tasks without interfering with each other. For example, the design could include all the major subroutines needed by other parts of the program and what registers they operate on, which then get implemented based on the specifications.

I'm sure a lot of games from the Spectrum's commercial period were written by multiple programmers (although I don't know if there's a simple way of searching for them). To make things considerably more difficult, they weren't likely to be using version control software, which happens to be widely available now.
PROSM wrote: Wed Jun 10, 2020 10:09 am Don't leave us on tenterhooks, now! What was the program's purpose? Was it written in machine code or BASIC?
Better not show it here! I sent you a PM.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2641
Joined: Mon Nov 13, 2017 3:16 pm

Re: UC San Diego taught a Spectrum coding class

Post by Ast A. Moore »

PROSM wrote: Wed Jun 10, 2020 10:09 am it tends to be beneficial to have a sole individual working on the entire project. They can keep the whole structure in their head, and are able to work simultaneously on the bigger picture and the minute details.
That’s only true if you work on a project nonstop. For me, a lunch break is usually enough to completely lose track of what I was doing. Short smoke breaks are okay, though (and often beneficial). :lol:
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
User avatar
PROSM
Manic Miner
Posts: 476
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: UC San Diego taught a Spectrum coding class

Post by PROSM »

Ast A. Moore wrote: Wed Jun 10, 2020 8:46 pm
PROSM wrote: Wed Jun 10, 2020 10:09 am it tends to be beneficial to have a sole individual working on the entire project. They can keep the whole structure in their head, and are able to work simultaneously on the bigger picture and the minute details.
That’s only true if you work on a project nonstop. For me, a lunch break is usually enough to completely lose track of what I was doing. Short smoke breaks are okay, though (and often beneficial). :lol:
That's a good point. I think I've only ever written one program where everything has fallen into place at each step of the way with no tricky bugs being encountered, and that program was Trace It, but that's because I worked on it for four days straight.
All software to-date
Working on something, as always.
Post Reply