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 / MBUG / MBUG123.ARC / BOOK1.LBR / BOOKS.PQG / BOOKS.PRG
Text File  |  1979-12-31  |  9KB  |  237 lines

  1. * DATE 04/01/85  17:23
  2. * BOOKS.PRG
  3. * NOTE - this program is written for dBASEII version 2.4. You can adjust
  4. * it for 2.3 by taking out the "TEXT" commands and making them "@ nn,nn SAY"
  5. * and/or eliminating them.
  6. *
  7. * It will run under CP/M 80, CP/M 86 and MSDOS. Just change the
  8. * name of manage.prg to manage.cmd to run under CP/M 80.
  9. *
  10. * The program is self initializing and documented throughout with help menus.
  11. *
  12. * Program formatting and syntax checking was done using CHECK, from HILCO
  13. * Software, 305 N. 17th St., Mt. Vernon, WA 98273 (206) 428-0475.
  14. *
  15. * This is a highly complicated program and your help in both clearing
  16. * up the bugs and making suggestions will be appreciated. If you find a
  17. * bug or a requirement for the program, please let us know.
  18. *
  19. * Please contact:
  20. *                   Stephen M. Leon
  21. *                   200 Winston Drive
  22. *                   Cliffside Park, NJ 07010
  23. *                   (201) 886-1658
  24. *                         or
  25. *                   Department of Law
  26. *                   2 World Trade Center
  27. *                   New York, NY 10047
  28. *                   (212) 488-7677
  29. *******************************************************************************
  30. *                                                                             *
  31. *                    N O T I C E                                              *
  32. *                                                                             *
  33. * Copyright 1985 by STEPHEN M.LEON.  Non-commercial use or distribution       *
  34. * of the program is authorized only if this notice is retained together with  *
  35. * the text relating to acceptance of the terms of this notice, and the person *
  36. * or persons using the program or benefiting therefrom assume all direct or   *
  37. * indirect risks of such use and agree to indemnify the author and the not-   *
  38. * for-profit computer clubs distributing this program, from any direct or     *
  39. * or indirect expenses incurred by them as a result of their use thereof.     *
  40. * Expenses shall include reasonable counsel fees including reasonable fees    *
  41. * of the author in his capacity as an attorney for services on a reasonable   *
  42. * billing time basis rendered to himself in his capacity as the holder of     *
  43. * the copyright.  Any use of this program constitutes an agreement to the     *
  44. * conditions of this license.  Any other use or distribution is unauthorized  *
  45. * and prohibited  without the express written consent of the author.          *
  46. *                                                                             *
  47. * This program is distributed free (for a nominal media charge) by SIG/M      *
  48. * Special Interest Group/Microcomputers, Box 97, Iselin, NJ 08830.            *
  49. * SIG/M is a not-for-profit undertaking of the Amateur Computer Group of New  *
  50. * Jersey and the New York Amateur Computer Club. This program is also made    *
  51. * available for PC users via PC/BLUE SOFTWARE, also a not-for profit under-   *
  52. * taking of the New Jersey and New York clubs. Permission is granted to any   *
  53. * other not-for-profit group to include this program in their library so long *
  54. * as this notice is retained and the conditions set forth herein are complied *
  55. * with.
  56. *******************************************************************************
  57. ERAS
  58. SET TALK OFF
  59. IF .NOT. file ("BOOKS.DAT")
  60.  DO INIT.BK
  61. ENDI .NOT. file
  62. REST from books.dat additive
  63. IF escap = 'N'
  64.  SET ESCAPE OFF
  65. ENDI excap = 'Y'
  66. IF bells = 'N'
  67.  SET BELL OFF
  68. ENDI bells
  69. IF bright = 'I'
  70.  SET INTENSITY OFF
  71. ENDI brght = 'I'
  72. TEXT
  73.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  74.  *                                                                           *
  75.  *            SIG/M - SPECIAL INTEREST GROUP FOR MICROCOMPUTERS              *
  76.  *                   AMATEUR COMPUTER GROUP OF NEW JERSEY                    *
  77.  *                                                                           *
  78.  *                                                                           *
  79.  *                                                                           *
  80.  *                                                                           *
  81.  *                                                                           *
  82.  *                                                                           *
  83.  *                                                                           *
  84.  *                                                                           *
  85.  *                                                                           *
  86.  *                                                                           *
  87.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  88.           
  89.  
  90.  
  91.  
  92.  
  93.  
  94. ENDT
  95. @ 6,23 SAY "L I B R A R Y    M A N A G E R"
  96. STOR 53 TO length
  97. STOR 23 TO  times
  98. DO WHIL times < length
  99.  @ 7,times SAY '_'
  100.  STOR times + 1 TO times
  101.  LOOP
  102. ENDD
  103. TEXT
  104.  *                                                                           *
  105.  *                   A dBASEII DATA MANAGEMENT PROGRAM                       *
  106.  *                          FOR BIBLIOGRAPHIC DATA                           *
  107.  *                             by Stephen M. Leon                            *
  108.  *                                                                           *
  109.  *                                        Vers 1.0   Mar 1985 (c) 1985       *
  110.  *                                                                           *
  111.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. ENDT
  119. RELE times, length
  120. IF C = 'Y'
  121.  STOR 41984 TO adr
  122. *in cp/m 80 there is a jmp at location 0 & 5
  123.  IF (PEEK(0)=195 .AND. PEEK(5)=195)
  124. *use 8080 code
  125.   POKE adr ,35,17,37,164,14,6,6,2,26,19,198,16,211,90,254,21,219,91,194,23,164,214,8,198,48,119,35,5,194,8,164,35,13,194,6,164,201,10,9,8,7,12,11,5,4,3,2,1,0
  126.  ELSE
  127. *use 8086 code
  128.   POKE adr ,67,190,38,164,177,6,181,2,138,4,70,4,16,230,90,60,21,228,91,117,2,44,8,4,48,136,7,67,254,205,117,232,67,254,201,117,225,195,10,9,8,7,12,11,5,4,3,2,1,0
  129.  ENDI (PEEK)
  130.  SET CALL TO adr
  131.  STOR '  /  /  ,  :  :  ' TO mem:var
  132.  CALL mem:var
  133.  STOR $(mem:var,1,8) TO mdate
  134.  STOR $(mem:var,10,8) TO mtime
  135.  SET DATE  TO &mdate
  136.  @ 17,10 SAY 'Today is ' + mdate
  137.  @ 17,32 SAY '....and the time is  ' + mtime
  138.  @ 19,22 SAY 'Hit any key to start the program'
  139.  SET CONSOLE OFF
  140.  WAIT
  141.  SET CONSOLE ON
  142. * Regular date program
  143. ENDI C='Y'
  144. IF I = 'N'
  145.  STOR '                                                  ' TO BLNKS
  146.  IF DATE() = '00/00/00'
  147.   STOR F   TO OK
  148.  ELSE
  149.   STOR T   TO OK
  150.   STOR 0   TO MM
  151.  ENDI
  152.  DO WHIL .NOT. OK
  153.   STOR $(BLNKS,1,8)            TO DATE:VAR
  154.   STOR $(BLNKS,1,42)       TO ERRX
  155.   @ 18,15 SAY 'Enter Date as MM/DD/YY '
  156.   @ 18,43 GET DATE:VAR  picture '##/##/##'
  157.   READ
  158.   STOR val($(DATE:VAR,1,2))    TO MM
  159.   STOR val($(DATE:VAR,4,2))    TO DD
  160.   STOR val($(DATE:VAR,7,2))    TO YY
  161.   DO CASE
  162.   CASE MM<1 .or. MM>12 .or. DD<1 .or. DD>31 .or. YY<80
  163.    STOR '       Invalid Date - Reenter'   to ERRX
  164.   CASE MM=4 .or. MM=6 .or. MM=9 .or. MM=11
  165.    IF DD>30
  166.     STOR 'Thirty Days hath September, etc. - Reenter'   to ERRX
  167.    ELSE
  168.     STOR T TO OK
  169.    ENDI dd
  170.   CASE MM=2 .and. DD>28 .and. ((1900 + YY)/4)<>int(((1900 + YY)/4))
  171.    STOR '     Not a leap year - Try Again'   TO ERRX
  172.   CASE MM=2 .and. DD>29
  173.    STOR 'February has a Maximum of 29 Days - Reenter' TO ERRX
  174.   OTHE
  175.    @ 20,00
  176.    STOR T   TO OK
  177.    LOOP
  178.   ENDC
  179.   @ 20,00
  180.   @ 20,15 SAY ERRX
  181.  ENDD (.not. OK)
  182.  IF MM>0
  183.   RELE ERRX, OK, MM, DD, YY
  184.   SET date TO &DATE:VAR
  185.   CLEA GETS
  186.  ENDI mm
  187. ENDI I = 'N'
  188. * poke drive letter into memory 039 hex
  189. POKE 063,(64+@(dr,'ABCDEFGHIJKLMNOPQRSTUVWXYZ'))
  190. * select database
  191. RELE ALL
  192. STOR CHR(PEEK(063)) TO dr
  193. ERAS
  194. IF .NOT. FILE ("BDATA.MEM")
  195.  STOR '            ' TO base
  196. ELSE
  197.  REST from bdata additive
  198.  DO WHIL LEN(base) < 8
  199.   STOR ' ' TO add
  200.   STOR base + add TO base
  201.  ENDD
  202.  STOR base + '.DBF' TO base
  203. ENDI
  204. @ 02,00 SAY "You can use different databases for different kinds of books if each"                    
  205. @ 03,00 SAY "database starts with the letters 'BK'. You can then select any of them."
  206. @ 05,05 SAY 'The following databases are available for use by this program:'
  207. @ 06,05 SAY '  '
  208. DISP FILES ON &dr LIKE BK??????.DBF
  209. @ 15,15 SAY 'Which data base shall we use ? '
  210. @ 15,50 GET base PICTURE '!!!!!!!!.DBF'
  211. READ
  212. DO WHIL .NOT. FILE (base)
  213.  @ 15,50 GET base PICTURE '!!!!!!!!.DBF'
  214.  READ
  215. ENDD
  216. STOR 'T' +TRIM($(base,1,7)) TO tindex
  217. STOR 'A' +TRIM($(base,1,7)) TO aindex
  218. STOR TRIM($(base,1,8)) TO base
  219. SAVE TO bdata
  220. STOR '.NDX' TO nd
  221. IF .NOT. FILE ("&dr.:&tindex&nd") .OR. (.NOT. FILE ("&dr.:&aindex&nd"))
  222.  ERAS
  223.  @ 10,10 SAY 'The file you selected is not properly indexed, I will do that now.'
  224.  @ 11,10 SAY 'Please be patient for a few minutes.'
  225.  @ 12,10 SAY ' '
  226.  SET TALK ON
  227.  SET ECHO ON
  228.  USE &base
  229.  INDE ON !(title) TO &dr.:&tindex
  230.  INDE ON !(auth1) TO &dr.:&aindex
  231.  SET TALK OFF
  232.  SET ECHO OFF
  233.  SET INDEX TO &dr.:&tindex
  234. ENDI
  235.  RELE ALL
  236.  DO main.bk
  237.