[comp.binaries.apple2] Prodos Patcher ALL ]['s

nakada@husc7.HARVARD.EDU (Paul Nakada) (04/18/88)

Comments:     Originally-From: SEWALL@UCONNVM
Subject:      ProDOS patch program

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
245IFPEEK(ADR+4)=189ANDPEEK(ADR+5)=156ANDPEEK(ADR+6)=192THENGOTO440
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
285IFADR>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