home *** CD-ROM | disk | FTP | other *** search
- 100 DEFINT A-Z
- 110 CHARSET$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
- 120 DIM T(255),SEXTET(4)
- 130 FOR N=0 TO 255
- 140 T(N)=-1
- 150 NEXT N
- 160 FOR N=0 TO 63
- 170 I=ASC(MID$(CHARSET$,N+1,1))
- 180 T(I)=N
- 190 NEXT N
- 200 PRINT "INPUT? ";
- 210 LINE INPUT INPUT.FILE.NAME$
- 220 OPEN INPUT.FILE.NAME$ FOR INPUT AS 1
- 230 PRINT "OUTPUT? ";
- 240 LINE INPUT OUTPUT.FILE.NAME$
- 250 OPEN OUTPUT.FILE.NAME$ FOR OUTPUT AS 2
- 260 PRINT #2," ";
- 270 CLOSE 2
- 280 KILL OUTPUT.FILE.NAME$
- 290 OPEN "R",2,OUTPUT.FILE.NAME$,1
- 300 FIELD #2,1 AS BYTE$
- 310 INPUT.LINE$=""
- 320 INPUT.LINE.INDEX=81
- 330 INPUT.EOF=0
- 340 INPUT.EOF.PENDING=0
- 350 WHILE (INPUT.EOF = 0)
- 360 SEXTET.NUM=1
- 370 NUM.BITS=0
- 380 WHILE(SEXTET.NUM <= 4)
- 390 WHILE((INPUT.EOF = 0) AND (INPUT.LINE.INDEX > LEN(INPUT.LINE$)))
- 400 IF INPUT.EOF.PENDING = 0 THEN 430
- 410 INPUT.EOF=-1
- 420 GOTO 460
- 430 LINE INPUT #1,INPUT.LINE$
- 440 INPUT.LINE.INDEX=1
- 450 IF EOF(1) THEN INPUT.EOF.PENDING=-1
- 460 WEND
- 470 IF INPUT.EOF = 0 THEN 510
- 480 SEXTET(SEXTET.NUM)=0
- 490 SEXTET.NUM=SEXTET.NUM+1
- 500 GOTO 580
- 510 I=ASC(MID$(INPUT.LINE$,INPUT.LINE.INDEX,1))
- 520 INPUT.LINE.INDEX=INPUT.LINE.INDEX+1
- 530 T1=T(I)
- 540 IF T1 < 0 THEN 580
- 550 SEXTET(SEXTET.NUM)=T1
- 560 NUM.BITS=NUM.BITS+6
- 570 SEXTET.NUM=SEXTET.NUM+1
- 580 WEND
- 590 IF NUM.BITS < 8 THEN 660
- 600 T1=SEXTET(1)
- 610 T2=SEXTET(2)
- 620 TEM$=CHR$(4*T1+(T2\16))
- 630 LSET BYTE$=TEM$
- 640 PUT #2
- 650 NUM.BITS=NUM.BITS-8
- 660 IF NUM.BITS < 8 THEN 720
- 670 T1=SEXTET(3)
- 680 TEM$=CHR$(16*(T2 MOD 16)+(T1\4))
- 690 LSET BYTE$=TEM$
- 700 PUT #2
- 710 NUM.BITS=NUM.BITS-8
- 720 IF NUM.BITS < 8 THEN 770
- 730 T2=SEXTET(4)
- 740 TEM$=CHR$(64*(T1 MOD 4)+T2)
- 750 LSET BYTE$=TEM$
- 760 PUT #2
- 770 WEND
- 780 CLOSE 2
- 790 CLOSE 1
- 800 END