home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / ATARI / BINHEX.BAS < prev    next >
BASIC Source File  |  2000-06-30  |  2KB  |  49 lines

  1. 1 REM BINHEX 1.0, OCTOBER 1984
  2. 2 REM -- BY DAN FLEYSHER --
  3. 3 REM (FLEYSHER.WBST@XEROX)
  4. 4 REM THIS BASIC PROGRAM CONVERTS A
  5. 5 REM BINARY DISK FILE TO THE EQUIV-
  6. 6 REM VALENT TEXT FILE CONTAINING
  7. 7 REM HEXIDECIMAL CHARACTERS.  THIS
  8. 8 REM FILE IS SUITABLE FOR LONG
  9. 9 REM DISTANCE (MODEM) TRANSMISSION,
  10. 10 REM AND CONTAINS A FULL CHECKSUM.
  11. 11 REM A COMPANION PROGRAM, HEXBIN,
  12. 12 REM CONVERTS THE HEX FILE BACK TO
  13. 13 REM THE ORIGINAL BINARY FORMAT.
  14. 14 REM 
  15. 20 DIM FILEIN$(15),FILEOUT$(15),BYTE$(2)
  16. 30 BUFSIZ=37:DIM BUF$(BUFSIZ),HEX$(16)
  17. 40 HEX$="0123456789ABCDEF"
  18. 50 ? "}             BINHEX 1.0":? :? 
  19. 60 TRAP 60:? "INPUT FILENAME";:INPUT FILEOUT$
  20. 70 GOSUB 1000:FILEIN$=FILEOUT$:? 
  21. 80 TRAP 80:? "OUTPUT FILENAME";:INPUT FILEOUT$
  22. 90 IF FILEOUT$<>"" THEN 110
  23. 100 FILEOUT$="D:HEXFILE.TXT":? "                ";FILEOUT$:GOTO 120
  24. 110 GOSUB 1000:? 
  25. 120 TRAP 40000:SUM=0
  26. 130 OPEN #4,4,0,FILEIN$:OPEN #5,8,0,FILEOUT$
  27. 140 PRINT #5:PRINT #5;".START."
  28. 150 BUF$=""
  29. 160 TRAP 300:FOR I=1 TO INT(BUFSIZ/2)
  30. 170 GET #4,BYTE:SUM=SUM+BYTE
  31. 180 NIBBLE=INT(BYTE/16)
  32. 190 INDEX=1+NIBBLE
  33. 200 BYTE$(1)=HEX$(INDEX,INDEX)
  34. 210 INDEX=1+BYTE-(16*NIBBLE)
  35. 220 BYTE$(2)=HEX$(INDEX,INDEX)
  36. 230 BUF$(LEN(BUF$)+1)=BYTE$
  37. 240 NEXT I:TRAP 40000
  38. 250 ? BUF$:PRINT #5;BUF$:GOTO 150
  39. 300 ? BUF$:PRINT #5;BUF$:POP 
  40. 310 ? "CHECK SUM = ";SUM
  41. 320 PRINT #5;".STOP.";SUM
  42. 330 CLOSE #4:CLOSE #5
  43. 340 END 
  44. 1000 IF LEN(FILEOUT$)<3 THEN GOTO 1040
  45. 1010 IF FILEOUT$(1,2)="D:" THEN RETURN 
  46. 1020 IF LEN(FILEOUT$)<4 THEN GOTO 1040
  47. 1030 IF FILEOUT$(1,1)="D" AND FILEOUT$(3,3)=":" THEN RETURN 
  48. 1040 BUF$=FILEOUT$:FILEOUT$="D:":FILEOUT$(3)=BUF$:RETURN 
  49.