NEW 1REM APPBIN.TO 2REM Here are two program that allow the creation and 4REM unpacking of Binary II files. (aka .BNY files, 6REM aka .BIN2 files, and anything that recommends 8REM using BLU to unpack it.) 10NORMAL:TEXT:NOTRACE:HOME 15D$=CHR$(4) 18CD=8192:REM CODE START 20EC=CD+18:REM ERROR CODE LOCATION 25PN=CD+19:REM PATHNAME LOCATION 30DT=10752:REM BLOCK BUFFER ADDRESS ($2A00) 32DIMF$(255):REM FILENAMES 33FORI=CDTOCD+296:READX:POKEI,X:NEXT 35?"PRODOS TO APPBINARY FILE CONVERTER" 37?"(VERSION 1.00 --- NOVEMBER 10, 1986)" 40?"BY GARY B. LITTLE" 42?:?"THIS IS A PUBLIC DOMAIN PROGRAM.":? 45?"THIS PROGRAM CREATES AN APPBINARY" 46?"FILE FROM A GROUP OF PRODOS FILES." 50?:?"ENTER THE NAME OF THE DIRECTORY IN" 60?"WHICH THE PRODOS FILES ARE STORED" 70?"( E.G. /MYDISK/MYFILES/ ):":? 80INPUT"";PF$:IFPF$=""THENHOME:END 90ONERRGOTO110 100?D$;"PREFIX";PF$:POKE216,0:GOTO190 110?:?"THAT DIRECTORY DOES NOT EXIST." 120?"PRESS ANY KEY TO CONTINUE:";:GETA$:?A$:?:GOTO50 190HOME:?"ENTER THE NAMES OF THE PRODOS FILES" 192?"(PRESS [RETURN] WHEN DONE):" 195NF=1 200?:?"ENTER THE NAME OF PRODOS FILE #";NF;": "; 210INPUT"";F$(NF) 215IFLEN(F$(NF))>15THEN?"ERROR: ILLEGAL FILENAME.":GOTO200 220IFF$(NF)<>""THENNF=NF+1:GOTO200 230NF=NF-1:IFNF=0THENHOME:END 232?:?"ENTER A NAME FOR THE APPBINARY FILE: ";:INPUT"";AB$ 234IFAB$=""THENHOME:END 236L=LEN(AB$):IFL>15THEN232 238ONERRGOTO242 240?D$;"CREATE";AB$;",TBIN":POKE216,0:GOTO245 242IFPEEK(222)=19THEN?D$;"DELETE";AB$:GOTO240 243GOTO600 245POKEPN,L:FORI=1TOL:POKEPN+I,ASC(MID$(AB$,I,1)):NEXT 250CALLCD+0:GOSUB5000:REM OPEN APPBINARY FILE 260HOME 270FORJ=1TONF 280L=LEN(F$(J)) 290POKEPN,L:FORI=1TOL:POKEPN+I,ASC(MID$(F$(J),I,1)):NEXT 300?"STORING... "; 310FORI=1TOL 320CH=ASC(MID$(F$(J),I,1)):IFCH<128THENCH=CH+128 330?CHR$(CH);:NEXT:? 340REM CREATE THE HEADER 350CALLCD+3:GOSUB5000:REM OPEN/FORM HEADER 360POKEDT+127,NF-J:REM FILES TO FOLLOW 370REM WRITE THE HEADER 380CALLCD+9:GOSUB5000 390EF=PEEK(DT+20)+256*PEEK(DT+21)+65536*PEEK(DT+22) 400IFEF=0THEN460 420CALLCD+6:REM READ 128 BYTES 425IFPEEK(EC)=76THEN460:REM BRANCH IF EOF 430GOSUB5000 440CALLCD+9:GOSUB5000:REM WRITE 128 BYTES 450GOTO420 460CALLCD+15:GOSUB5000:REM CLOSE PRODOS FILE 470NEXTJ 480CALLCD+12:REM CLOSE APPBINARY FILE 500?:?"THE APPBINARY FILE, ";AB$;"," 510?"HAS HOW BEEN CREATED.":END 600?:?"ERROR: CAN'T CREATE ";AB$ 610?"APPLESOFT ERROR #";PEEK(222):END 5000EN=PEEK(EC):REM GET ERROR CODE 5010IFEN=0THENRETURN 5015IFEN=70OREN=64THEN?:?"ERROR: FILE NOT FOUND":END 5020POP:?:?"ERROR: MLI CODE #";EN:END 6000DATA 76,84,32,76,100,32,76,203,32,76,223,32,76,233,32,76,239 6001DATA 32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6002DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6003DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6004DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32 6005DATA 0,191,200,13,33,32,251,32,173,18,33,141,34,33,96,32,192 6006DATA 32,169,10,141,0,42,169,2,141,18,42,169,23,141,1,42,169 6007DATA 42,141,2,42,174,19,32,189,19,32,157,23,42,202,16,247,32 6008DATA 0,191,196,0,42,32,251,32,169,71,141,1,42,169,76,141,2 6009DATA 42,173,4,42,201,15,240,30,32,0,191,200,19,33,32,251,32 6010DATA 173,24,33,141,26,33,141,12,33,141,19,42,32,0,191,209,18 6011DATA 42,32,251,32,96,162,127,169,0,157,0,42,202,16,250,96,32 6012DATA 192,32,32,0,191,202,25,33,144,5,201,76,208,1,24,32,251 6013DATA 32,96,32,0,191,203,33,33,32,251,32,96,169,0,56,32,251 6014DATA 32,169,0,141,18,32,32,0,191,204,11,33,96,141,18,32,144 6015DATA 8,104,104,32,0,191,204,9,33,96,1,0,1,0,3,19,32 6016DATA 0,34,0,3,19,32,0,38,0,4,0,0,42,128,0,0,0 6017DATA 4,0,0,42,128,0,0,0 SAVE TO.BNY REM REM NEW 1REM BINARY.DWN 2REM Here are two program that allow the creation and 4REM unpacking of Binary II files. (aka .BNY files, 6REM aka .BIN2 files, and anything that recommends 8REM using BLU to unpack it.) 10NORMAL:TEXT:NOTRACE:HOME 12IFPEEK(48896)=76THEN15 13?"THIS PROGRAM REQUIRES PRODOS.":END 15D$=CHR$(4) 18CD=8192:REM CODE START 20EC=CD+21:REM ERROR CODE LOCATION 25PN=CD+22:REM PATHNAME LOCATION 30DT=10752:REM BLOCK BUFFER ADDRESS ($2A00) 32LL=DT+20:REM EOF LOCATION 35?"BINARY II TO PRODOS FILE CONVERTER" 37?"(VERSION 1.20 --- NOVEMBER 19, 1986)" 40?"BY GARY B. LITTLE":? 45?"THIS PROGRAM EXTRACTS PRODOS FILES" 46?"FROM A FILE IN BINARY II FORM." 48?:?"THIS PROGRAM IS IN THE PUBLIC DOMAIN." 50?:?"ENTER THE NAME OF THE DIRECTORY IN" 60?"WHICH THE BINARY II FILE IS STORED" 70?"(E.G., /MYDISK/MYFILES/ ):":? 80INPUT"";PF$:IFPF$=""THENHOME:END 90ONERRGOTO5100 100?D$;"PREFIX";PF$:POKE216,0 150FORI=0TO297:READX:POKECD+I,X:NEXT 200?:?"ENTER THE NAME OF THE BINARY II FILE" 210?"YOU WANT TO CONVERT:";:INPUT"";F$ 220IFF$=""THENHOME:END 230L=LEN(F$):IFL>15THEN5200 235POKEPN,L 240FORI=1TOL:POKEPN+I,ASC(MID$(F$,I,1)):NEXT 250HOME 300CALLCD+0:GOSUB5000:REM OPEN BINARY II FILE 305?"SCANNING THE BINARY II FILE:":? 310REM READ HEADER AND CHECK ID BYTES 320CALLCD+6:GOSUB5000:REM READ 128 BYTES 330I1=PEEK(DT+0):I2=PEEK(DT+1) 335I3=PEEK(DT+2):I4=PEEK(DT+18) 340IFI1<>10ORI2<>71ORI3<>76ORI4<>2THEN1000 345FT=PEEK(DT+4):REM FILE TYPE 347DF=PEEK(DT+125):REM DATA FLAGS 350REM CALCULATE NUMBER OF BLOCKS TO READ 360EF=PEEK(LL)+256*PEEK(LL+1)+65536*PEEK(LL+2) 370NB=INT(EF/128)+((EF-128*INT(EF/128))<>0) 380REM DISPLAY NAME OF FILE 383L=PEEK(DT+23):FORI=1TOL 384CH=PEEK(DT+23+I):IFCH<128THENCH=CH+128 385?CHR$(CH);:NEXT:HTAB17 386IFDF>127THENDF=DF-128:?"COMPRESSED "; 387IFDF>63THENDF=DF-64:?"ENCRYPTED "; 388IFDF=1THEN?"PACKED "; 389? 390TF=PEEK(DT+127):REM NUMBER OF FILES TO FOLLOW 400CALLCD+3:GOSUB5000:REM OPEN PRODOS FILE 405IFNB=0ORFT=15THEN460 410FORI=1TONB 420CALLCD+6:GOSUB5000:REM READ 128 BYTES 430CALLCD+9:GOSUB5000:REM WRITE 128 BYTES 440NEXTI 450CALLCD+18:GOSUB5000:REM SET EXACT EOF 460CALLCD+15:GOSUB5000:REM CLOSE PRODOS FILE 470IFTF<>0THEN320 480CALLCD+12:REM CLOSE BINARY II FILE 500?:?"CONVERSION COMPLETED.":END 1000CALLCD+12:REM CLOSE BINARY II FILE 1010HOME:?"ERROR: ";F$;" IS NOT A BINARY II FILE":END 5000EN=PEEK(EC):REM GET ERROR CODE 5010IFEN=0THENRETURN 5020POP:?:?"ERROR: MLI CODE #";EN 5030IFEN=70THEN?"FILE NOT FOUND" 5040IFEN=71THEN?"DUPLICATE FILENAME" 5050END 5100HOME:?"ERROR: DIRECTORY NOT FOUND.":POKE216,0:END 5200HOME:?"ERROR: ILLEGAL FILE NAME.":POKE216,0:END 6000DATA 76,87,32,76,103,32,76,199,32,76,209,32,76,219,32,76,225 6001DATA 32,76,237,32,0,0,0,0,0,0,0,0,0,0,0,0,0 6002DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6003DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6004DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6005DATA 0,0,32,0,191,200,9,33,32,247,32,173,14,33,141,22,33 6006DATA 96,169,7,141,0,42,169,23,141,1,42,169,42,141,2,42,173 6007DATA 3,42,9,2,141,3,42,162,2,189,20,42,157,39,33,202,16 6008DATA 247,48,23,162,3,189,14,42,157,8,42,202,16,247,32,0,191 6009DATA 192,0,42,32,247,32,76,170,32,32,0,191,195,0,42,176,21 6010DATA 32,0,191,200,15,33,176,13,173,20,33,141,30,33,141,38,33 6011DATA 141,8,33,96,201,70,240,200,56,32,247,32,32,0,191,202,21 6012DATA 33,32,247,32,96,32,0,191,203,29,33,32,247,32,96,169,0 6013DATA 56,32,247,32,169,0,141,21,32,32,0,191,204,7,33,96,32 6014DATA 0,191,208,37,33,32,247,32,96,141,21,32,144,8,104,104,32 6015DATA 0,191,204,5,33,96,1,0,1,0,3,22,32,0,34,0,3 6016DATA 23,42,0,38,0,4,0,0,42,128,0,0,0,4,0,0,42 6017DATA 128,0,0,0,2,0,0,0,0 SAVE UNDO.BIN2