home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug105.arc / CMD-PRG.LQR / CMD-PRG.LBR / MAKEFLIP.XXX < prev   
Text File  |  1979-12-31  |  4KB  |  158 lines

  1. *
  2. *    Another dBASE II goody from:
  3. *
  4. *        Head Quarters
  5. *
  6. *        Gene Head
  7. *        2860 NW Skyline Drive
  8. *        Corvallis, Oregon  97330
  9. *        (503)  758-0279
  10. *
  11. *    For non-commercial use only.  If you use this utility
  12. *    to help you develop any software that earns you money
  13. *       (even in your own business) send me $5.00.
  14. *    It's a fair price to pay and worth a clear conscience.
  15. *
  16. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *    
  17. *
  18. *   
  19. *   Program name --> MAKEFLIP.XXX
  20. *
  21. *          (DO NOT change the name of this command file)
  22. *          (Execute it as .DO MAKEFLIP.XXX or it may not work)
  23. *
  24. *   * * *  This program generates the command file FLIP.IT  * * *
  25. *       
  26. *   You only need to run this program ONCE to create FLIP.IT.
  27. *   After you create FLIP.IT put a copy on your dBASE II disk.
  28. *   Then when you wish to change default command file extension
  29. *   type .DO FLIP.IT
  30. *
  31. *   Example:
  32. *
  33. *   To run CP/M command files defaulted to .CMD under MS-DOS simply
  34. *   type .DO FLIP.IT.  To change back to the .PRG default, type the
  35. *   same thing again, .DO FLIP.IT.
  36. *
  37. *   Likewise, to run MS-DOS command files defaulted to .PRG under
  38. *   CP/M, type .DO FLIP.IT.  To change back to .CMD default, again
  39. *   type .DO FLIP.IT.
  40. *
  41. *
  42.  
  43.  
  44. SET TALK OFF
  45.  
  46. *  This range works well for dBASE II versions 2.4,
  47. *  2.41 and Z-80 2.41.  For other versions you may have to experiment.
  48. STORE '12300' TO LOW
  49. STORE '12500' TO HIGH
  50.  
  51. *  First get the range of program RAM to search
  52. *     for the default extension
  53.  
  54. STORE 'Y' TO CHOICE
  55. DO WHILE CHOICE = 'Y'
  56.  
  57.     STORE T TO RANGE
  58.     ERASE
  59.     DO WHILE RANGE
  60.       @ 12,10 SAY 'Enter START of search area.  Suggest --> ';
  61.       GET LOW PICTURE '99999'
  62.       @ 14,10 SAY '  Enter END of search area.  Suggest --> ';
  63.       GET HIGH PICTURE '99999'
  64.       READ
  65.  
  66.       STORE VAL(LOW) TO MLOW
  67.       STORE VAL(HIGH) TO MHIGH
  68.  
  69.         IF MLOW >= MHIGH .OR. MHIGH > 65000 .OR. MLOW < 100
  70.            @ 20,10 SAY 'SEARCH AREA OUT OF RANGE.  TRY AGAIN . . .'
  71.         ELSE
  72.            STORE F TO RANGE
  73.         ENDIF MLOW >= MHIGH .OR. MHIGH > 65000 .OR. MLOW < 100
  74.  
  75. ENDDO WHILE RANGE
  76.  
  77. ERASE
  78.  
  79. *  This is not the most accurate testing but the chances are
  80. *    very high that it will only find what we are looking for.
  81.  
  82. @ 12,10 SAY 'SEARCHING'
  83. STORE F TO FOUND
  84.  
  85. DO WHILE (.NOT. FOUND) .AND. MLOW < MHIGH
  86.  
  87.     IF PEEK(MLOW) <> 67 .AND. PEEK(MLOW) <> 80
  88.      STORE MLOW+1 TO MLOW
  89.      LOOP
  90.     ELSE
  91.       IF PEEK(MLOW+1) <> 77 .AND. PEEK(MLOW) <> 82
  92.     STORE MLOW+1 TO MLOW
  93.     LOOP
  94.       ELSE
  95.         IF PEEK(MLOW+2) <> 68 .AND. PEEK(MLOW) <> 71
  96.         STORE MLOW+1 TO MLOW
  97.         LOOP
  98.         ELSE
  99.         STORE T TO FOUND
  100.         LOOP
  101.         ENDIF PEEK(MLOW+2) <> 68 .AND. PEEK(MLOW) <> 71
  102.       ENDIF PEEK(MLOW+1) <> 77 .AND. PEEK(MLOW) <> 82
  103.     ENDIF PEEK(MLOW) <> 67 .AND. PEEK(MLOW) <> 80
  104.  
  105. ENDDO WHILE (.NOT. FOUND) .AND. MLOW < MHIGH
  106.  
  107. * If we found our patch area then create a command file called FLIP.IT
  108. IF FOUND
  109. @ 12,10 SAY 'CREATING COMMAND FILE --> FLIP.IT '
  110. STORE STR(MLOW,5) TO PATCH
  111. SET ALTERNATE TO FLIP.IT
  112. SET ALTERNATE ON
  113. SET CONSOLE OFF
  114. ? [*  FLIP.IT]
  115. ? [*]
  116. ? [*  FLIP.IT WILL FLIP DEFAULT COMMAND FILE EXTENSION  .CMD <--> .PRG]
  117. ? [*]
  118. ? [*  FLIP.IT IS DESIGNED FOR THOSE WHO DEVELOP PROGRAMS USING CP/M]
  119. ? [*  dBASE II TO RUN UNDER MS-DOS dBASE II AND GET TIRED CHANGING]
  120. ? [*  THE COMMAND FILE EXTENSIONS FROM .CMD TO .PRG AND VICE-VERSA!]
  121. ? [*]
  122. ? [*  FLIP.IT CAUSES YOUR CP/M dBASE II TO ACCEPT .PRG AS THE DEFAULT]
  123. ? [*  COMMAND FILE EXTENSION.  IT CAN ALSO LET YOUR MS-DOS dBASE II]
  124. ? [*  ACCEPT .CMD AS THE DEFAULT COMMAND FILE EXTENSION.]
  125. ? [*]
  126. ? [*  IN EITHER CASE JUST TYPE .DO FLIP.IT]
  127. ? [*]
  128. ? [IF PEEK(]+PATCH+[) = 67]
  129. ? [ POKE ]+PATCH+[, 80, 82, 71]
  130. ? [ ? 'DEFAULT COMMAND EXTENSION --> .PRG']
  131. ? [ELSE]
  132. ? [    IF PEEK(]+PATCH+[) = 80]
  133. ? [       POKE ]+PATCH+[, 67, 77, 68]
  134. ? [       ? 'DEFAULT COMMAND EXTENSION --> .CMD']
  135. ? [    ELSE]
  136. ? [       ? 'ERROR CHANGING DEFAULT EXTENSION']
  137. ? [    ENDIF]
  138. ? [ENDIF]
  139. ?
  140. SET ALTERNATE OFF
  141. SET ALTERNATE TO
  142. SET CONSOLE ON
  143.  
  144. STORE 'N' TO CHOICE
  145.  
  146. ELSE
  147.  
  148. @ 12,10 SAY 'CAN NOT LOCATE PATCH AREA WITHIN THE SPECIFIED RANGE.'
  149. @ 14,10 SAY 'TRY AGAIN? (Y/N) ' GET CHOICE
  150. READ
  151.  
  152. ENDIF  FOUND
  153.        
  154. ENDDO while CHOICE = 'Y'
  155.  
  156. @ 12, 10
  157.