home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / workdb.zip / SIG-M.PRG < prev    next >
Text File  |  1988-08-15  |  11KB  |  237 lines

  1. *!!* dBASE CONVERT - dBASE III File Conversion Aid  v2.01  1/10/86
  2. *
  3. SET HEADING OFF
  4. SET SAFETY OFF
  5. * SIG/M.CMD  08/18/83
  6. * THIS IS THE STARTING PROGRAM IN A RATHER COMPREHENSIVE DUAL DATA
  7. * BASE. THE KEY PROGRAMS ARE MAIN.SIG AND MAIN.INV. MENU.SIG IS
  8. * THE "TRAFFIC COP." THE ORDERS DATA BASE IS CALLED SIG/M. THE
  9. * INVENTORY DATA BASE IS CALLED STOCK. WHEN AN ORDER IS ENTERED
  10. * THE PROGRAM DETERMINES IT VALIDITY, DELETES IT FROM INVENTORY
  11. * OR BACKORDERS IT. IT PRINTS ALL SORTS OF REPORTS, ETC.
  12. * A TUTORIAL DATA BASE WAS ISSUED ON SIG/M VOLUME 110. BECAUSE OF THE
  13. * LARGE NUMBER OF REQUESTS FOR THAT VOLUME (COUPLED WITH A SIG/M RE-
  14. * QUIREMENT FOR AN INVENTORY DATA BASE) WITH THE SIGNIFICANT HELP OF
  15. * HARRY VAN TASSELL I WROTE THIS PROGRAM. THE VOLUME 110 DATA BASE
  16. * IS NOT MAXIMIZED FOR SPEED - THIS IS. ON OUR WORKING VERSION OF THIS PROGRAM
  17. * WE REMOVED ALL COMMENTS AND SET UP EVERYTHING USING FASTBASE. IN THIS
  18. * LIBRARY FILE WE HAVE LEFT IT AS PRETTY PRINTED BY FASTBASE FOR EASE IN
  19. * UNDERSTANDING. SPEAKING OF FASTBASE, I HAVE TRIED MOST OF THE dBASE
  20. * GENERATORS AND EXCEPT FOR ZIP FIND THEM OF LITTLE VALUE. I RECENTLY
  21. * PURCHASED FASTBASE FROM FOURCOLOR DATA SYSTEMS IN DAYTON AND WAS
  22. * SO IMPRESSED WITH SOME OF THE THINGS IT COULD DO THAT I INCLUDED AS
  23. * SEARCH1.SIG THE SEARCH FILE IT GENERATED. IT FINDS ANY STRING ANY
  24. * PLACE IN ANY FIELD AND IN EVERY RECORD. ITS INDEX SEARCH IS ALSO
  25. * EXCELLENT AND THE DISPLAY IN SO-CALLED FAST MODE IF FAR BETTER
  26. * THAN THE dBASE NORMAL DISPLAY.
  27. * THE PROGRAM IS PRETTY MUCH SELF EXPLANATORY. TRY IT - SEE HOW IT
  28. * WORKS AND ADJUST IT FOR YOUR OWN REQUIREMENTS.  PLEASE LET US KNOW OF
  29. * ANY PROBLEMS AND SEND US ANY IMPROVEMENTS.
  30. *                                        Steve Leon
  31. *                                        200 Winston Drive
  32. *                                        Cliffside Park, NJ 07010
  33. *                                        (201) 886-1658
  34. * This initialization program is run once, when the program is first started
  35. * it will initialize the variables, set up environment and do a sign-on.
  36. * Place all command which affect the entire system here.
  37. * place your choice of intensity, confirm, etc. here.
  38. * If you want to use highlighting, we suggest you not do it
  39. * here. Do it in connection with the "IF FIRST" on the main
  40. * screen calls. See MAIN.SIG and MAIN.INV
  41. SET TALK OFF
  42. SET INTENSITY OFF
  43. * THIS PROGRAM RUNS FINE UNDER CPM/86. JUST CHANGE ITS NAME TO SIG/M.PRG
  44. * WE ARE ABLE TO DISTINGUISH BETWEEN CP/M 80 AND CPM/86 ON ALL
  45. * SYSTEMS WE HAVE TRIED.  IF YOU HAVE A PROBLEM WITH YOUR SYSTEM
  46. * JUST TAKE OUT THE AUTOMATIC RECOGNITION AND/OR AUTOMATIC INPUT.
  47. * HOWEVER, NEVER USE A CP/M 80 MEMORY FILE ON CP/86 AND VICE
  48. * VERSA. JUST DELETE IT - THE PROGRAM WILL CREATE A NEW ONE
  49. * HERE WE CREATE OUR VARIABLES FOR ADDING RECORDS TO THE .SIG FILES
  50. IF .NOT. FILE("add.mem")
  51.    STORE '         ' TO MORDER
  52.    STORE ' ' TO MCOMP
  53.    STORE '                    ' TO MLNAME
  54.    STORE '               ' TO MFNAME
  55.    STORE '                                   ' TO MADDR1
  56.    STORE '                                   ' TO MADDR2
  57.    STORE '                                   ' TO MADDR3
  58.    STORE '                         ' TO MCITY
  59.    STORE '  ' TO MSTATE
  60.    STORE '     ' TO MZIP
  61.    STORE 000.00 TO MAMT
  62.    STORE 999 TO MVOL
  63.    STORE '            ' TO MSTATUS
  64.    STORE '
  65.    STORE '        ' TO MENTERED
  66.    STORE '        ' TO MSHIPPED
  67.    STORE '                                                                  ' TO MREM1
  68.    STORE '                                                                  ' TO MREM2
  69.    STORE '
  70.    STORE ' ' TO MCATALOG
  71.    STORE '        ' TO MBO_SHIP
  72.    STORE '        ' TO MBO2_SHIP
  73.    STORE '        ' TO MDAYU
  74.    STORE '             ' TO MSTATUS
  75.    SAVE TO ADD
  76.    RELEASE ALL
  77. ENDIF
  78. CLEAR
  79. ? '   *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'
  80. ? '   *                                                                      *'
  81. ? '   *               AMATEUR COMPUTER GROUP OF NEW JERSEY                   *'
  82. ? '   *                                                                      *'
  83. ? '   *                              SIG/M                                   *'
  84. ? '   *                 LIBRARY OF PUBLIC DOMAIN SOFTWARE                    *'
  85. ? '   *                                                                      *'
  86. ? '   *           A dBASEII Program by Steve Leon for..........              *'
  87. ? '   *                                                                      *'
  88. ? '   *              DISK INVENTORY            ORDER PROCESSING              *'
  89. ? '   *                 SHIPPING                  DISK LABELS                *'
  90. ? '   *                                                                      *'
  91. ? '   *                                              Vers 1.0 Aug. 25, 1983  *'
  92. ? '   *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*'
  93. * If you have a Compupro System Support Board leave the following code in.
  94. * It automatically sets the date. Otherwise, since the program requires
  95. * that the date be entered, you will have to manually enter the date in
  96. * response to the prompt.
  97. * Read date from Compupro System Support board, store the date into DBASE
  98. * DATE() function.  See file DATETIME.ASM for assembly language source code
  99. * from which the POKE list values are determined.
  100. *
  101. *
  102. *STORE 41984 TO adr
  103. *IN cp/m 80 there is a jmp at location 0 & 5
  104. *IF (PEEK(0)=195 .AND. PEEK(5)=195)
  105. *USE 8080 code
  106. *POKE adr ,35,17,37,164,14,6,6,2,26,19,198,16,211,90,254,21,219,91,194;
  107. *,23,164,214,8,198,48,119,35,5,194,8,164,35,13,194,6,164;
  108. *,201,10,9,8,7,12,11,5,4,3,2,1,0
  109. *ELSE
  110. *USE 8086 code
  111. *POKE adr ,67,190,38,164,177,6,181,2,138,4,70,4,16,230,90,60,21,228,91,117;
  112. *,2,44,8,4,48,136,7,67,254,205,117,232,67,254,201,117,225,195,10,9;
  113. *,8,7,12,11,5,4,3,2,1,0
  114. *ENDIF
  115. *SET CALL TO adr
  116. *STORE '  /  /  ,  :  :  ' TO mem:var
  117. *CALL mem:var
  118. *STORE $(mem:var,1,8) TO mdate
  119. *STORE $(mem:var,10,8) TO mtime
  120. *SET DATE  TO &mdate
  121. ***************************************************************************
  122. *@ 17,10 SAY 'Today is ' + mdate
  123. *@ 17,32 SAY '....and the time is  ' + mtime
  124. ****************************************************************************
  125. * IF YOU DO NOT HAVE AUTOMATIC DATE READ - YOU WILL HAVE TO INPUT DATENPU
  126. * THE PROGRAM REQUIRES THAT YOU INPUT A DATE AND A DATE VALIDATION PROGRAM
  127. * BY WILLIAM G. HURST WE FOUND IN dNEWS IS INCLUDED.
  128. DO WHILE SUBSTR(DTOC(DATE()),1,2)='00'
  129.    STORE '        ' TO DATE_VAR
  130.    @ 18,15 SAY 'ENTER DATE AS MM/DD/YY '
  131.    @ 18,43 GET DATE_VAR  PICTURE '##/##/##'
  132.    READ
  133.    CLEAR GETS
  134.    * flag set to'1'
  135.    STORE '1' TO INVALID
  136.    DO WHILE INVALID = '1'
  137.       STORE SUBSTR(date_var,1,2) TO mm1
  138.       STORE VAL(mm1) TO mm
  139.       STORE SUBSTR(date_var,4,2) to dd1
  140.       STORE VAL(dd1) to dd
  141.       STORE SUBSTR(date_var,7,2) TO yy1
  142.       STORE VAL(yy1) TO yy
  143.       * Each case below is a negative test. Date is valid
  144.       * if none of the tests prove true.
  145.       DO CASE
  146.               * check for improper month, day or year
  147.          CASE MM<1 .OR. MM>12 .OR. DD<1 .OR. DD>31 .OR. YY<83
  148.               STORE '        ' TO DATE_VAR
  149.               @ 20,00
  150.               @ 20,15 SAY 'NO SUCH DATE - PLEASE TRY AGAIN'
  151.               @ 18,43 GET DATE_VAR PICTURE '##/##/##'
  152.               READ
  153.               CLEAR GETS
  154.               * check for 31 days in 30 day month
  155.          CASE((mm<8.AND.mm/2=INT(mm/2)).OR.(mm>7.AND.;
  156.               mm/2<>INT(mm/2))).AND.dd>30
  157.               * invalid date:user is prompted for reentry
  158.               STORE '        ' TO DATE_VAR
  159.               @ 20,00
  160.               @ 20,15 SAY 'SORRY - WRONG NUMBER OF DAYS FOR THE MONTH - TRY AGAIN'
  161.               @ 18,43 GET DATE_VAR PICTURE '##/##/##'
  162.               READ
  163.               CLEAR GETS
  164.               * test for February, if month is not Feb, and it has
  165.               * 'failed' the tests so far the date is OK
  166.          CASE MM<>2
  167.               *DATE is OK;invalid = '0' drops out of DO WHILE LOOP
  168.               STORE '0' TO INVALID
  169.               * if month is Feb., check number of days in non-leap year
  170.               * does not exceed 28
  171.          CASE(yy/4<>INT(yy/4).OR.(yy/100=INT(yy/100).AND.;
  172.               YY/400<>INT(YY/400))).AND. dd>28
  173.               * invalid date, user is prompted for reentry
  174.               STORE '        ' TO DATE_VAR
  175.               @ 20,00
  176.               @ 20,15 SAY 'REMEMBER - FEBRUARY IS A SHORT MONTH! - PLEASE TRY AGAIN'
  177.               @ 18,43 GET DATE_VAR PICTURE '##/##/##'
  178.               READ
  179.               CLEAR GETS
  180.               * finally, check days in leap year February <30
  181.          CASE DD=30
  182.               * invalid date; user is prompted for reentry
  183.               STORE '        ' TO DATE_VAR
  184.               @ 20,00
  185.               @ 20,43 'EVEN A LEAP YEAR FEBRUARY ONLY HAS 29 DAYS - PLEASE REENTER'
  186.               @ 18,43  GET DATEVAR PICTURE '##/##/##'
  187.               READ
  188.               CLEAR GETS
  189.          OTHERWISE
  190.               @ 20,00
  191.               STORE '0' TO INVALID
  192.       ENDCASE
  193.       * end of DO WHILE loop if valid = '0' program terminates
  194.       * if invalid #'0'loop repeats
  195.    ENDDO WHILE INVALID
  196.    RELEASE NN1,DD1,YY1,DD,YY
  197.    *!! 'SET DATE TO &date:var' is no longer valid.
  198.    *!!     SET DATE TO &date:var
  199. ENDDO WHILE DATE
  200. * set up bell
  201. STORE 'Y' TO COMMAND
  202. @ 20,00   
  203. @ 19,15 SAY'DO YOU WISH TO USE SIGNAL BEEP ? ' GET COMMAND PICTURE '!'
  204. READ
  205. IF COMMAND = 'N'
  206.    SET BELL OFF
  207. ENDIF COMMAND = N
  208. * set up drive for data disk
  209. * Thanks to Harry Van Tassell we store the default drive to dr
  210. * However, if you do not keep the data on the default drive we suggest
  211. * you change the code to eliminate the drives you do not have. This
  212. * way you cannot accidentally select a drive
  213. STORE 41984 TO ADDRESS
  214. STORE ' ' TO DR
  215. * find out if you are running under CP/M 80
  216. IF (PEEK(0) = 195 .AND. PEEK(5) = 195)
  217.    *8080 code
  218.    POKE ADDRESS ,35,229,14,25,205,5,0,225,198,65,119,201
  219. ELSE
  220.    *8086 code
  221.    POKE ADDRESS,67,83,177,25,205,224,4,65,91,136,7,195
  222. ENDIF PEEK
  223. SET CALL TO ADDRESS
  224. CALL DR
  225. RELEASE ADDRESS
  226. @ 20,15 SAY 'IN WHICH DRIVE IS THE DATA DISK ? ' GET DR PICTURE '!'
  227. READ
  228. DO WHILE AT(dr,'ABCDM') = 0
  229.    @ 20,15 SAY 'IN WHICH DRIVE IS THE DATA DISK ? ' GET DR PICTURE '!'
  230.    READ
  231. ENDDO WHILE @DR
  232. * poke drive letter into memory 039 hex
  233. POKE 063,(64+AT(dr,'ABCDM'))
  234. RELEASE ALL
  235. DO MENU.PRG
  236.  
  237.