First game with a non standard loader ?

Y'know, other stuff, Sinclair related.
Post Reply
User avatar
spider
Dynamite Dan
Posts: 1107
Joined: Wed May 01, 2019 10:59 am
Location: Derby, UK
Contact:

First game with a non standard loader ?

Post by spider »

A two part question really.

What was the first game (or any tape file, does not have to be a game) that had something other than a regular loader with a header and codeblock ?

Secondly what was the first game/tape that used something other than the standard loader ? Perhaps a higher speed, different border colour etc.

I'm aware of Speedlock in 1984 I think but there must of been something earlier.


For the first part of the question, I think Horace/Skiing may (just) qualify for this as although it appears normal, its not:

Basic 1 which is just a LOAD (basic)

Basic 2 which ignoring the variables and nonsense is a CLEAR / LOAD (screen) / LOAD (code) and a USR 24576

Problem is there are actually two pieces of code both with loading header info at 24576. The first one which is executed by the USR does the following:

Load the header at 24576 (of blank bytes) + load the code at 23760 then jump to 24462

Code: Select all

  LD IX,0
  LD DE,16
  XOR A
  SCF
  CALL ld_bytes
  LD IX,23760
  LD DE,694
  LD A,255
  SCF
  CALL ld_bytes
  JP 24432
^ I -think- that counts as "not normal" as in its doing more than using Basic to load it. I see why because its so low in memory for the second piece.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2643
Joined: Mon Nov 13, 2017 3:16 pm

Re: First game with a non standard loader ?

Post by Ast A. Moore »

Well, a lot of earlier titles required that you type LOAD "" CODE, rather than just LOAD "". I covered it a few years back.

Does that count?
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
spider
Dynamite Dan
Posts: 1107
Joined: Wed May 01, 2019 10:59 am
Location: Derby, UK
Contact:

Re: First game with a non standard loader ?

Post by spider »

Ast A. Moore wrote: Sat Jul 23, 2022 7:32 am Well, a lot of earlier titles required that you type LOAD "" CODE, rather than just LOAD "". I covered it a few years back.

Does that count?
No not really :D

But I appreciate your reply. I may of badly worded the topic so it is my fault, I'm sorry.

I'd count that as a standard loader. Indeed when I got Urban Upstart 'back then' as such that was the first game I'd got that had a LOAD CODE to start with, yeah a vague attempt to protect the basic. Come to think of it, that was how I found out how to do that trick itself.

What I suppose I meant to the first part of the question was something that loaded other than using a standard Basic LOAD command perhaps. Horace being the initial example. To be honest I don't think there's going to be much earlier than that.

The second part was about anything that used anything else non standard, by this I mean perhaps they just copied the ROM code into higher memory and used it maybe with just removing the 'check for break' , either with or without colour or speed changes.

Although unrelated I've never really been sure why you can interrupt a load with space/break but not during save on the header, unsure if it was an oversight or purposely done. Same as it checks for space rather than a forceful "break" , imo it should of checked for caps+space aka 'break' not just space but that's something for another topic! :D
Journeyman
Microbot
Posts: 158
Joined: Mon Jun 27, 2022 6:03 pm
Location: West Lothian, Scotland
Contact:

Re: First game with a non standard loader ?

Post by Journeyman »

spider wrote: Fri Jul 22, 2022 7:31 pm For the first part of the question, I think Horace/Skiing may (just) qualify for this as although it appears normal, its not:

Basic 1 which is just a LOAD (basic)

Basic 2 which ignoring the variables and nonsense is a CLEAR / LOAD (screen) / LOAD (code) and a USR 24576

Problem is there are actually two pieces of code both with loading header info at 24576. The first one which is executed by the USR does the following:

Load the header at 24576 (of blank bytes) + load the code at 23760 then jump to 24462

Code: Select all

  LD IX,0
  LD DE,16
  XOR A
  SCF
  CALL ld_bytes
  LD IX,23760
  LD DE,694
  LD A,255
  SCF
  CALL ld_bytes
  JP 24432
^ I -think- that counts as "not normal" as in its doing more than using Basic to load it. I see why because its so low in memory for the second piece.
I was intrigued to discover the Horace Goes Skiing loader when I wanted to transfer the program to a (vDriveZX) Microdrive cartridge - it certainly wasn't the way it looked, and I needed to Multiface it instead of just transferring the code blocks. Is this the first ever example of copy protection?
Wrestling with useless old junk since 1974.
Vintage computers: ZX81, Spectrum +2, TRS-80 Model 100, Z88, Amstrad NC100
http://journeyman.online
User avatar
spider
Dynamite Dan
Posts: 1107
Joined: Wed May 01, 2019 10:59 am
Location: Derby, UK
Contact:

Re: First game with a non standard loader ?

Post by spider »

Journeyman wrote: Mon Oct 17, 2022 11:39 pm I was intrigued to discover the Horace Goes Skiing loader when I wanted to transfer the program to a (vDriveZX) Microdrive cartridge - it certainly wasn't the way it looked, and I needed to Multiface it instead of just transferring the code blocks. Is this the first ever example of copy protection?
Its not really copy protection as such (as I see it) as it is loaded to a different address as the one in the header. It could be I suppose but I view it as "its so low in memory it needs to be loaded outside of Basic" :)
Post Reply