NEW 10REM ProDOS patch program. 20REM patches vers. 1.1.1 to 1.4 30REM from Apple Assembly Line, May, 1987 40REM V7,#8 100TEXT:HOME:E=0:?"PRODOS PATCH PROGRAM" 110IFPEEK(116)<128THENE=1:GOTO900:REM enuf mem? 120ONERRGOTO900 130REM ----Read ProDOS file---- 140?CHR$(4)"UNLOCK PRODOS" 150?CHR$(4)"BLOAD PRODOS,TSYS,A$2000" 200REM ----Search $4000-$60FF for pattern---- 210V=1:FORB=64TO96:A=B*256 220IFPEEK(A+4)<>189THEN250 230IFPEEK(A+5)<>156THEN290 240IFPEEK(A+6)=192THENV=3:B=96:GOTO290:REM Version 1.4 250IFPEEK(A+4)<>234THEN290 260IFPEEK(A+5)<>234ORPEEK(A+6)<>234THEN290 270IFPEEK(A+7)<>234ORPEEK(A+8)<>234THEN290 280V=2:B=96:REM Version before 1.4 290NEXTB:E=2:ONVGOTO900,300,700 300REM ----Found version before 1.4---- 310POKEA+4,189:POKEA+5,142:POKEA+6,192:REM "LDA $C08E,X" 400REM ----Look for other patch area---- 410A=PEEK(A+2)+256*PEEK(A+3)-13*4096+A+5 420E=3:IFA<4*4096ORA>6*4096THEN900 430IFPEEK(A)<>157ORPEEK(A+3)<>157THEN500 440IFPEEK(A+6)<>157ORPEEK(A+9)<>157THEN500 450REM ----Found version 1.1.1 or 1.2, so change "STA" to "LDA"---- 460FORI=0TO9STEP3:POKEA+I,189:NEXTI 470V$="1.1.1":GOTO800 500REM ----Version 1.3---- 510FORI=0TO12:READB:IFPEEK(A+I)<>BTHENGOTO900 520NEXTI:DATA 160,8,189,128,192,232,232,136,208,248,234,234,96 530FORI=0TO11:READB:POKEA+I,B:NEXTI 540DATA 189,128,192,189,130,192,189,132,192,189,134,192 550A=4*4096+12*256+12*16+13:REM Address = $4CCD 560FORI=0TO3:READB:IFPEEK(A+I)<>BTHEN900 570NEXTI:POKEA,240:REM Change "BRA" to "BEQ" 580V$="1.3":GOTO800 590DATA 128,6,190,0 700REM ----Version 1.4---- 710POKEA+5,142:REM "LDA $C09C,X" to "LDA $C08E,X" 720V$="1.4" 800REM ----Write patched version on disk---- 810?CHR$(4)"BSAVE PRODOS,TSYS,A$2000" 820?CHR$(4)"LOCK PRODOS" 830?"Patches completed to Version "V$:END 900REM ----Error handler---- 910?CHR$(7)"Error! No patches were made." 915ONEGOTO930,940,950 920?"ProDOS File Not Found.":END 930?"Not enough room to load ProDOS.":END 940?"Patch location not found.":END 950?"ProDOS file may have been patched" 960?"already, or is not a compatible version." 970END SAVE PPATCHER