home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #3.1 / RBBSIABOX31.cdr / scrg / sconvert.bas < prev    next >
Encoding:
BASIC Source File  |  1990-09-29  |  4.4 KB  |  77 lines

  1. 10 ' COPYRIGHT 1982, RICHARD M. SCHINNELL
  2. 20 ' This Program is called CONVERT.BAS VER 1.1 (11-12-83)
  3. 30 DEFINT A-Z:FALSE=0:TRUE = NOT FALSE:ON ERROR GOTO 680
  4. 40 KEY OFF:CLS:LOCATE 12,1
  5. 50 PRINT"COPYRIGHT 1982, Richard Schinnell Rockville,Maryland 301 949-8848 "
  6. 60 PRINT"This program will convert EXE/COM files to a basic program which"
  7. 70 PRINT"you then can transmit to someone over your Modem. They
  8. 80 PRINT"can then run the basic program and it will re-create the EXE/COM pgm.
  9. 90 PRINT"just like you had it.       E N J O Y   RICH......":PRINT
  10. 100 INPUT "Name of the COM or EXE File to convert ?: ";FIL1$
  11. 110 PRINT "To call the program with the same name with .BAS ext hit C/R"
  12. 120 INPUT "WHAT do you wish to call the basic program  (.BAS): ";FIL2$
  13. 130 IF LEN(FIL2$)<1 THEN FIL2$=MID$(FIL1$,1,(INSTR(FIL1$,".")-1))+".BAS"
  14. 140 NUMLIN=1001:X=0:GRAND#=0:CNT=1
  15. 150 IF FIL1$=FIL2$ THEN CLS:LOCATE 12,15:PRINT "DUPLICATE FILE NAMES ":GOTO 10
  16. 160 OPEN FIL1$ FOR INPUT AS #1:CLOSE #1 ' just checking to make sure its there
  17. 170 OPEN  FIL1$  AS #1 LEN=1 ' opening the .COM file
  18. 180 'the file input size should not be longer than 10-15k at
  19. 190 'the largest or you will build too big a program....Rich
  20. 200 L1=LOF(1)  ' this gets the filesize in bytes
  21. 210 LIMIT = L1 ' THIS IS THE LIMIT FOR THE FILE SIZE
  22. 220 OPEN  FIL2$  FOR OUTPUT AS #2 ' opening up the .bas file this pgm creates
  23. 230 GOSUB 470
  24. 240 PRINT #2,"1000 DATA ";STR$(LIMIT):
  25. 250 LIN$=RIGHT$(STR$(NUMLIN),4)
  26. 260 RICH2$=LIN$+" DATA "
  27. 270 FIELD #1,1 AS GETS$
  28. 280 X =X +1:IF X =< LIMIT THEN GET #1,X ELSE 400
  29. 290 RICH1$=HEX$(ASC(GETS$)):IF LEN(RICH1$)<2 THEN RICH1$="0"+RICH1$
  30. 300 IF CNT <29 THEN RICH2$=RICH2$+RICH1$:CNT=CNT+1:GRAND#=GRAND#+ASC(GETS$):GOTO 280
  31. 310 GOTO 400
  32. 320 RICH2$=LIN$+" DATA 000000,9999"
  33. 330 PRINT #2,RICH2$
  34. 340 PRINT #2,"5000 PRINT ";CHR$(34);"* * ERROR VERIFY FOLLOWING DATA * * * ";CHR$(34)
  35. 350 PRINT #2,"5005 PRINT X$;";CHR$(34);", in line ";CHR$(34);";I"
  36. 360 PRINT #2,"5010 KEY ON:CLOSE:END"
  37. 370 'JUST A COMMENT LINE. BE CAREFULL IF YOU CHANGE ANYTHING IN THIS PGM...
  38. 380 LOCATE 20,1:PRINT" You have sucessfully created file named ";FIL2$
  39. 390 CLOSE:KEY ON:END
  40. 400 GRAND$=MID$(STR$(GRAND#),2,4) 'THIS IS WHERE IT ALL HAPPENS
  41. 410 CNT=2:PRINT #2,RICH2$;",";GRAND$:NUMLIN=NUMLIN+1
  42. 420 LOCATE 18,1:PRINT SPC(78);:LOCATE 18,1:PRINT RICH2$;",";GRAND#;
  43. 425 LOCATE 16,51:PRINT CINT(((LIMIT/28)+1)-(X/28));" LINES LEFT";
  44. 430 LIN$=RIGHT$(STR$(NUMLIN),4)
  45. 440 IF X>LIMIT THEN GOTO 320
  46. 450 RICH2$=LIN$+" DATA "+RICH1$:GRAND#=ASC(GETS$)
  47. 460 GOTO 280
  48. 470 PRINT #2," 10 CLS:PRINT";CHR$(34);"This basic program was created by CONVERT.BAS";CHR$(34);":KEY OFF:DEFINT A-Z:FALSE=0:TRUE=NOT FALSE"
  49. 480 IF INSTR(FIL1$,":")=2 THEN FIL3$=MID$(FIL1$,3,13) ELSE FIL3$=FIL1$
  50. 490 GOSUB 720
  51. 500 PRINT #2," 20 PRINT";CHR$(34);"Copyright 1983 ,Rich Schinnell Rockville,MD. Not for Sale.";CHR$(34)
  52. 510 PRINT #2," 30 PRINT ";CHR$(34);"This program will create  you a program named ";FIL3$;CHR$(34);":PRINT "
  53. 520 PRINT #2," 40 ON ERROR GOTO 5000"
  54. 530 PRINT #2," 50 INPUT ";CHR$(34);"PLACE the disk to write the file TO in Drive A: Press <ENTER> ";CHR$(34);"; CAPITAL$"
  55. 540 PRINT#2," 90 CLS:LOCATE 12,5:PRINT ";CHR$(34);"Now writing file named ";FIL3$;" standby please  ";CHR$(34)
  56. 550 PRINT #2,"100 RESTORE"
  57. 560 PRINT #2,"110 OPEN ";CHR$(34);"R";CHR$(34);", #1,";CHR$(34);FIL3$;CHR$(34);",1 "
  58. 570 PRINT #2,"120 FIELD #1, 1 AS N$
  59. 580 PRINT #2,"130 READ N:LL=(N/28)+1"
  60. 590 PRINT #2,"140 FOR I = 1 TO N
  61. 600 PRINT #2,"150 READ X$,CHECK:FOR C=1 TO LEN(X$) STEP 2:CC$=";CHR$(34);"&H";CHR$(34);"+MID$(X$,C,2):IF CHECK=9999 THEN 170"
  62. 610 PRINT #2,"155 LSET N$=CHR$(VAL(CC$)):PUT #1:CHECK=CHECK-VAL(CC$):NEXT C:IF CHECK<>0 THEN 5000
  63. 620 PRINT #2,"160 LOCATE 14,5:PRINT TIME$;";CHR$(34);" Reading data line #";CHR$(34);";(1000+I);";CHR$(34);" lines left=";CHR$(34);";LL-I;:NEXT I:CLOSE"
  64. 630 PRINT #2,"170 LOCATE 16,5:PRINT ";CHR$(34); FIL3$;" CREATED * *";CHR$(34);":GOTO 5010"
  65. 640 CLS:LOCATE 12,5:PRINT "Reading file named ";FIL1$
  66. 650 LOCATE 14,5:PRINT     "Writing file named ";FIL2$
  67. 660 LOCATE 16,5:PRINT     "The file size of the input file is ";LIMIT
  68. 670 RETURN
  69. 680 PRINT " you had an error ";ERR;" in line # ";ERL
  70. 690 PRINT "Probably you named a file which does not exist "
  71. 700 PRINT "try again Charlie........
  72. 710 KEY ON:END
  73. 720 FOR I = 1 TO LEN(FIL3$)
  74. 730 IF ASC(MID$(FIL3$,I,1))>90 THEN MID$(FIL3$,I,1)=CHR$(ASC(MID$(FIL3$,I,1))-32)
  75. 740 NEXT I
  76. 750 RETURN
  77.