[comp.sys.apple] Prodos update

delaney@wnre.aecl.CDN (Grant Delaney) (04/28/87)

From my experience with Prodos 1.3 on both a ][+ and IIgs I found that the 
drive bug is still present when used with 2 drives on the ][+.  In fact it 
seems to be worse.  However a fix is available for both versions see below.
I haven't yet yet had any problem with or with out the fix on IIgs but maybe
I'm pushing it.  This Version also fixes a bug on the yet to be generally
available Version 1.4.  Can't APPLE test these things properly before releasing 
them.  I wonder if we are all considered a beta test site instead of consumers.

------------------------------ cut here ----------------------------------
NEW
10REM----------------------------------
11REMStop ProDOS track 0 trashing
12REMpatches by Stephen Thomas
13REM  MacLagan Wright & Associates
14REM  West Heidelberg, VIC Australia
15REM
16REMModified by G. Bredon to patch
17REMPRODOS 1.2, 1.3, 1.4 as well as
18REMPRODOS 1.1.1.  On 1.3 another bug
19REMwhich makes 1.3 incompatible with
20REMolder machines still using a 6502
21REMprocessor is also fixed.  On 1.4
22REMa new bug is also fixed.
23REM----------------------------------
24REM
150TEXT:?:HOME:E=0
160VTAB12:?"Now patching ProDOS."
170ONERRGOTO470
180IFPEEK(116)<128THENE=1:GOTO470:REMIs mem free?
190?CHR$(4)"unlock prodos"
200?CHR$(4)"bload prodos,tsys,a$2000"
210ADR=4*4096
220P=0:FORI=4TO8:IFPEEK(ADR+I)<>234THENP=1
230NEXTI
240IFPEEK(ADR+4)=189ANDPEEK(ADR+5)=156ANDPEEK(ADR+6)=192THENPOKEADR+5,142:GOTO440
250IFADR>6*4096THENE=3:GOTO470
260IFPTHENADR=ADR+256:GOTO220
270POKEADR+4,189:POKEADR+5,142:POKEADR+6,192:REMLDA $C08E,X
280ADR=PEEK(ADR+2)+256*PEEK(ADR+3)-13*4096+ADR+5:IFADR>6*4096ORADR<4*4096THENE=3:GOTO470
290FORI=0TO9STEP3
300IFPEEK(ADR+I)<>157THENE=3:GOTO340
310POKEADR+I,189:REM4 STAs changed to LDAs
320NEXTI
330GOTO440
340FORI=0TO12
350READBYTE:IFPEEK(ADR+I)<>BYTETHEN470
360NEXTI
370FORI=0TO12
380READBYTE:POKEADR+I,BYTE
390NEXTI
400ADR=4*4096+12*256+12*16+13
410FORI=0TO3:READBYTE:IFPEEK(ADR+I)<>BYTETHEN470
420NEXTI
430POKEADRS,15*16
440?CHR$(4)"bsave prodos,a$2000,tsys"
450?:?"Patches completed."
460END
470?CHR$(7)"Error! No patches were made."
480ONEGOTO500,510,520
490?"PRODOS file not found.":END
500?"Insufficient memory to load PRODOS.":END
510?"Patch location not found."
520?"PRODOS file may have been patched"
530?"already, or is not a compatible version."
540END
550DATA160,8,189,128,192,232,232,136,208,248,234,234,96
560DATA189,128,192,189,130,192,189,132,192,189,134,192,96
570DATA128,6,190,0
SAVE PATCH.PRODOS