home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib26b.dsk / BASIC.DISAS.AUX.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  68 lines

  1. 10  REM  **********************
  2. 20  REM  *  BASIC.DISAS.AUX   *
  3. 30  REM  * BY GARRETT P SMITH *
  4. 40  REM  * COPYRIGHT (C) 1985 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA. 01742 *
  7. 70  REM  **********************
  8. 80  REM  CLEAN UP AND COMBINE FILES
  9. 90  DIM P$(41)
  10. 100 GH = 0:GL = 0:I = 0:J = 0:JJ = 0:PI = 768
  11. 120 D$ =  CHR$(4):F$ = ""
  12. 130 DN =  PEEK(PI): REM  CHECK PAGE 3 FOR FILE NAME
  13. 140  IF DN < >1  AND DN < >2  THEN 220
  14. 150 J =  PEEK(PI +1)
  15. 160  IF J <1  OR J >10  THEN 220
  16. 170  FOR I = 1 TO J
  17. 180 F$ = F$ + CHR$( PEEK(PI +I +1))
  18. 190 JJ = JJ + PEEK(PI +I +1)
  19. 200  NEXT I
  20. 210  IF JJ =  PEEK(PI +J +2) +256 * PEEK(PI +J +3)  AND JJ < >0  THEN  POKE PI,(256 -DN): GOTO 350
  21. 220  HOME 
  22. 240  HTAB 11: INVERSE : PRINT "BASIC DISASSEMBLER": NORMAL 
  23. 250  NORMAL : PRINT 
  24. 260  PRINT "THIS 2ND SEGMENT OF B.D. COMBINES TWO ": PRINT "TEXT FILES CREATED BY THE 1ST SEGMENT": PRINT : PRINT "  XXX.TEXT + XXX.TEMP  ---->  XXX.TEXT": PRINT : PRINT "WHERE 'XXX' IS THE FIRST TEN LETTERS OF";"THE ORIGINAL BINARY FILE NAME."
  25. 270  VTAB 12: CALL  -868: PRINT "ARE YOU USING DRIVE 1 OR 2? (1/2) ";: GET A$: PRINT A$
  26. 280 DN =  VAL(A$): IF DN < >1  AND DN < >2  THEN  GOTO 270
  27. 290  HOME : VTAB 22: PRINT "<RETURN> WITH NO FILE NAME FOR CATALOG": VTAB 1: HTAB 6: INVERSE : PRINT "PLACE TEXT FILES IN DRIVE ";DN: NORMAL 
  28. 300  VTAB 11: PRINT : CALL  -868: INPUT "ORIGINAL BINARY FILE NAME: ";F$
  29. 310  VTAB 22: CALL  -868: IF F$ < >""  THEN 340
  30. 320  HOME 
  31. 330  PRINT  CHR$(4);"CATALOG,D";DN: PRINT "HIT SPACE BAR TO CONTINUE ";: GET A$: PRINT A$: HOME : GOTO 290
  32. 340 F$ =  LEFT$(F$,10)
  33. 350 I =  FRE(0): POKE PI,(256 -DN)
  34. 360 GH =  PEEK(112):GL =  PEEK(111)
  35. 370  ONERR  GOTO 630
  36. 380  PRINT D$"VERIFY "F$".TEXT,D";DN
  37. 390  PRINT D$"VERIFY "F$".TEMP,D";DN
  38. 400  PRINT D$"APPEND "F$".TEXT,D";DN
  39. 410  PRINT D$"OPEN "F$".TEMP,D";DN
  40. 420  ONERR  GOTO 600
  41. 430  POKE 111,GL: POKE 112,GH: REM  TRASH GARBAGE
  42. 440  PRINT D$"READ "F$".TEMP"
  43. 450  FOR J = 0 TO 41
  44. 460  GET P$(J)
  45. 470  IF  ASC(P$(J)) = 13  THEN JJ = J -1:J = 41
  46. 480  NEXT 
  47. 490  PRINT : VTAB 21: PRINT D$"WRITE "F$".TEXT"
  48. 500  FOR J = 0 TO JJ: PRINT P$(J);: NEXT 
  49. 510  PRINT 
  50. 520  GOTO 430: REM  ESCAPE LOOP THROUGH ONERR
  51. 530  PRINT D$: PRINT D$"CLOSE"
  52. 540  PRINT D$"DELETE "F$".TEMP"
  53. 550  POKE 216,0
  54. 560  PRINT D$"CLOSE"
  55. 570  POKE 34,0
  56. 580  TEXT : HOME : END 
  57. 590  REM  WRAP-UP ONERR
  58. 600  IF  PEEK(222) < >5  THEN 670
  59. 610  GOTO 530
  60. 620  REM  FILE NOT FOUND ERROR
  61. 630  IF  PEEK(222) < >6  THEN  GOTO 670
  62. 640  POKE 216,0
  63. 650  HOME : VTAB 8: PRINT "FILE '";F$;".????' NOT FOUND": GOTO 700
  64. 660  REM  GENERAL ERROR
  65. 670  HOME : IF  PEEK(222) = 4  THEN  VTAB 20: PRINT "DISK IS WRITE-PROTECTED.": GOTO 700
  66. 680  IF  PEEK(222) = 8  THEN  VTAB 20: PRINT "I/O ERROR--CHECK DRIVE DOOR.": GOTO 700
  67. 690  VTAB 20: PRINT "ERROR #"; PEEK(222);" DETECTED AT LINE "; PEEK(218) + PEEK(219) *256: POKE 216,0: GOTO 220
  68. 700  VTAB 22: HTAB 1: POKE 49168,0: PRINT "PRESS SPACE BAR TO CONTINUE": GET Z$: PRINT : HOME : GOTO 100