10 DIM INSTR$(5),DRIVE$(15),BUFFER$(128),OUTSTR$(7)›20 DIM A$(1),FILE$(12),TRANSFER$(20000)›30 POKE 712,148:POKE 752,1›40 FOR X=1 TO 5:READ A:INSTR$(X)=CHR$(A):NEXT X›50 DATA 104,32,83,228,96›60 FOR X=1 TO 7:READ A:OUTSTR$(X)=CHR$(A):NEXT X›70 DATA 104,104,104,170,76,86,228›80 BUFFER$=" ":BUFFER$(128)=" ":BUFFER$(2)=BUFFER$›90 POS=ADR(BUFFER$)›100 POSHI=INT(POS/256)›110 POSLO=POS-POSHI*256›120 POKE 772,POSLO›130 POKE 773,POSHI›140 FOR SECTOR=363 TO 371›150 SECTORHI=INT(SECTOR/256)›160 SECTORLO=SECTOR-SECTORHI*256›170 POKE 778,SECTORLO:POKE 779,SECTORHI›180 POKE 770,82:POKE 769,1›190 IN=USR(ADR(INSTR$))›200 ? CHR$(125):POSITION 0,0:? " ";CHR$(8);"ÌÅÔÔÅÒ ÐÅÒÆÅÃÔ ÄÉÒÅÃÔÏÒÙ";CHR$(10)›210 ? "ÆÉÌÅ ÎÁÍÅ      ÓÔÁÒÔÉÎÇ       ÎÕÍÂÅÒ"›220 INDEX=1›230 FOR ENTRY=1 TO 8›240 IF ASC(BUFFER$(ENTRY*16-10,ENTRY*16-10))=0 THEN 300›250 IF BUFFER$(ENTRY*16-15,ENTRY*16-15)=" " THEN 300›260 ? BUFFER$(ENTRY*16-10,ENTRY*16);›270 POSITION 18,INDEX+1:? ASC(BUFFER$(ENTRY*16-12))+256*ASC(BUFFER$(ENTRY*16-11));" ";›280 POSITION 33,INDEX+1:? ASC(BUFFER$(ENTRY*16-14))+256*ASC(BUFFER$(ENTRY*16-13))›290 INDEX=INDEX+1›300 NEXT ENTRY›310 POSITION 2,10:? " PRESS RETURN FOR NEXT SECTOR":? "ENTER C TO CONVERT A DISPLAYED FILE";›320 INPUT A$:IF A$="C" THEN 370›330 NEXT SECTOR›340 ? CHR$(125):POSITION 8,10:? " END OF DIRECTORY ":? " PRESS ÒÅÔÕÒÎ TO BEGIN AGAIN"›350 ? " ENTER E TO END";:INPUT A$:IF A$="E" THEN END ›360 GOTO 80›370 ? :? "FILE TO CONVERT====>";:INPUT FILE$›380 FOR X=1 TO LEN(FILE$):IF FILE$(X,X)="." THEN FILE$=FILE$(1,X-1):GOTO 400›390 NEXT X›400 ? "INPUT STARTING SECTOR===>";:INPUT SS›410 ? "INPUT NUMBER OF SECTORS=>";:INPUT SECNUM›420 ? :? "FILENAME IS========>";FILE$›430 ? "STARTING SECTOR====>";SS›440 ? "NUMBER OF SECTORS==>";SECNUM›450 ? "IS THIS CORRECT Y/N";:INPUT A$:IF A$="Y" THEN 480›460 POSITION 2,12:FOR X=1 TO 13:PRINT CHR$(156);:NEXT X›470 POSITION 2,12:GOTO 370›480 POSITION 2,12:FOR X=1 TO 13:? CHR$(156);:NEXT X›490 POSITION 2,13:? " CONVERTING FILE ";FILE$;" PLEASE WAIT"›500 TRANSFER$=""›510 MOVESIZE=(SECNUM-1)*128:IF MOVESIZE<128 THEN MOVESIZE=128›520 TRANSFER$=" ":TRANSFER$(MOVESIZE)=" ":TRANSFER$(2)=TRANSFER$›530 POS=ADR(TRANSFER$)-128›540 FOR SECTOR=SS+1 TO SS+SECNUM-1›550 POS=POS+128›560 POSHI=INT(POS/256)›570 POSLO=POS-POSHI*256›580 POKE 772,POSLO:POKE 773,POSHI›590 SECTORHI=INT(SECTOR/256)›600 SECTORLO=SECTOR-SECTORHI*256›610 POKE 778,SECTORLO:POKE 779,SECTORHI›620 POKE 770,82:POKE 769,1›630 IN=USR(ADR(INSTR$))›640 NEXT SECTOR:EFLAG=0:FOR ADDR=POS TO POS+127:BYTE=PEEK(ADDR):IF BYTE=27 THEN EFLAG=1›644 IF EFLAG THEN BYTE=32›645 POKE ADDR,BYTE:NEXT ADDR›650 ? CHR$(125):POSITION 3,10:? "SEND NEW FILE TO WHICH DRIVE D1-D2?":? :? " ÒÅÔÕÒÎ FOR D2"›660 ? :? " ==>";:INPUT DRIVE$›670 IF DRIVE$<>"D1" THEN DRIVE$="D2"›680 DRIVE$(3)=":":DRIVE$(4)=FILE$:DRIVE$(LEN(DRIVE$)+1)=".CON"›690 ON DRIVE$(1,2)="D2" GOTO 720:? CHR$(125):POSITION 8,10:? "PLEASE REMOVE THE TEXT DISC"›700 ? " AND INSERT AN ATARI FORMATTED":? " DESTINATION DISC IN DRIVE 1":? ›710 ? " PRESS ÒÅÔÕÒÎ WHEN READY";:INPUT A$›720 OPEN #1,8,0,DRIVE$:POS=ADR(TRANSFER$)›730 SIZE=LEN(TRANSFER$):SIZEHB=INT(SIZE/256):SIZELB=SIZE-SIZEHB*256›740 STARTHB=INT(POS/256):STARTLB=POS-STARTHB*256›750 POKE 852,STARTLB:POKE 853,STARTHB›760 POKE 856,SIZELB:POKE 857,SIZEHB›770 POKE 850,11›780 OUT=USR(ADR(OUTSTR$),16):CLOSE #1›790 ? CHR$(125):POSITION 10,8:? " CONVERSION COMPLETE ":? :? ›800 ON DRIVE$(1,2)="D2" GOTO 820:? " PLEASE REMOVE THE CONVERSION DISC":? " FROM DRIVE #1 AND REINSERT THE"›810 ? " LETTER PERFECT TEXT DISC":? ›820 ? " PRESS ÒÅÔÕÒÎ TO CONTINUE":? " ENTER E TO END";:INPUT A$:IF A$="E" THEN END ›830 GOTO 80›