[comp.sys.apple] TEST for write protection

neighbor@csd4.milw.wisc.edu (Jeffrey Alan Ding) (03/06/88)

Here is a test for you people who still think that write protection
is software.

I patched my DOS 3.3 to ignore the write protect sense.  There are two
areas in DOS where it checks for the write protect, once in the
write a byte subroutine and once in the write an address field.

The code to sense write protect in a diskII device is as follows.

LDA $C08D,X      X is slot # * 16
LDA $C08E,X
BMI $YYYY        YYYY is memory address of exit routine for
		 a write protect being detected.

This code appears in DOS 3.3 at locations $B830 and $BC57 (on 48k or greater
machine) The code is as follows:

$B830:BD 8D C0  LDA $C08D,X
$B833:BD 8E C0  LDA $C08E,X
$B836:30 70     BMI $B8B4

$BC57:BD 8D C0  LDA $C08D,X
$BC5A:BD 8E C0  LDA $C08E,X
$BC5D:30 5E     BMI $BCBD

What you have to do to ignore the write protect switch is to remove the
branches.  Change the following bytes: $B836,$B837,$BC5D,$BC5E  to:  $EA
It should look like this then:

$B836:EA        NOP
$B837:EA        NOP

$B85D:EA        NOP
$B85E:EA        NOP

Type in this from basic after booting a DOS 3.3 disk to apply patches:

]CALL-151
*B836:EA EA N B85D:EA EA N 3D0G

BE SURE YOU HAVE A WRITE PROTECT TAB ON YOUR DISK AND THAT IT IS NOT
TRANSPARENT (FOR THOSE WITH OPTICAL SENSORS.)

Then type the following:

]CATALOG
]INIT HELLO
]CATALOG

If your HELLO program is locked on the disk, you will get a FILE LOCKED
error message.

If the hardware on your computer is working properly and if you followed
my instructions your disk should be unchanged.

Please let me know if you have had any negative effects....


neighbor@csd4.milw.wisc.edu

P.S.  I DO recommend you do this to an original disk.  Because nothing
      will happen!!!!!!!!!!!!