<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 22 May 2006 21:15:21 +0100
From   : "Ian Wolstenholme" <BBCMailingList@...>
Subject: Re: 8271/1770 Opcodes

Thanks for the list, just what I needed.

My request for the command list was related to my other post about the
Boxford lathe software disc.  I have been sent an original version
6.04 disc to try to fix, the problem being that it works most of the time
but as it is 17 years old, the owner wants to make a copy as a backup
but can't because a disc error results when trying to copy.

I am in two minds as to whether the disc is copy protected or genuinely
has developed a fault over the years.

Track 1 cannot be accessed and there is a file which starts at track 1,
sector 0 and is 9 and a bit sectors long, so it takes up the whole of track
1, but this file does not seem to be used by any of the other files on
the disc.

There is some hidden 6502 code in a REM line in the start-up programme
which calls OSWORD &7F four times to do the following:

Seek track 1 (command &69, param &01)
Write special registers (command &7A, params &12, &1E)
Read sector 0 of track &1E into RAM at &1200 (command &53, params &1E,
 &00, &21)
Write special registers (command &7A, params &12, &01)

So it looks as if the bad track is a copy protection measure, presumably
changing the ID of track 1 to 30 and then reading from track 30 and then
changing it back again.

Any ideas how to copy it?  Ripoff IX and Locksmith get confused at track 1
and write its ID as 30 so the copy doesn't work.

Best wishes,



Ian


----- Original Message -----
From: Eelco Huininga
To:  bbc-micro@...
Sent:  Mon, 22 May 2006 21:33:31 +0200
Subject: Re: [BBC-Micro] 8271/1770 Opcodes


Hi Ian,

Actually they're not called opcodes, but commands :-)

The 8271 commands are:

Command  No of params  Description
&4A      2             Write sector
&4B      3             Write sectors
&4E      2             Write deleted sector
&4F      3             Write deleted sectors
&52      2             Read sector
&53      3             Read sectors
&56      2             Read deleted sectors
&57      3             Read deleted sectors
&5B      3             Read sector ID's
&5E      2             Verify sector
&5F      3             Verify sectors
&63      3             Format
&69      1             Seek
&6C      0             Read drive status
&7A      2             Write special registers
&7D      1             Read special registers

As you can see &7A is used to write a value to one of the 8271's special
registers. It is mostly
used to write a value to the track register in copy protection schemes.

Cheers,
Eelco



Ian Wolstenholme wrote:
> Is there a list of 8271 or 1770 opcodes anywhere?  The 8271 data
> sheet isn't much help especially if you are not fluent in binary without
> resorting to bits of paper and calculators and doing 1+2+4+8+16+32+64+128
> etc all over the place.
> 
> I'm trying to find out what opcode &7A does.
> 
> Best wishes,
> 
> 
> 
> Ian
> 



<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>