home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug073.arc / GENELOGY.LBR / DESCEND.CMD < prev    next >
OS/2 REXX Batch file  |  1979-12-31  |  4KB  |  171 lines

  1. * DESCEND.CMD  Produces a Descendants Chart via various sub-.cmd files
  2. STORE CHR(27)+'P' TO propnl
  3. STORE CHR(27)+'Q' TO compr
  4. STORE "Child   " TO ch
  5. STORE "Grand   " TO gd
  6. STORE "Great   " TO gt
  7. STORE "|" TO vert
  8. STORE vert+"       " TO l
  9. STORE vert+"         "+l+l+l+l+l+l+l+l+l+l TO fence
  10. STORE $(STR(0,137),1,136) TO mblank
  11. STORE $(mblank,1,4) TO tab1
  12. STORE $(mblank,1,8) TO spc
  13. STORE $(mblank,1,1) TO spc1
  14. STORE $(mblank,1,9) TO spc2
  15. STORE $(mblank,1,17) TO spc3
  16. STORE $(mblank,1,25) TO spc4
  17. STORE $(mblank,1,33) TO spc5
  18. STORE $(mblank,1,41) TO spc6
  19. STORE $(mblank,1,49) TO spc7
  20. STORE $(mblank,1,57) TO spc8
  21. STORE $(mblank,1,65) TO spc9
  22. STORE &mno TO msubj,mstart
  23. STORE '0' TO g
  24. STORE 1 TO page
  25. STORE t TO mflag
  26. STORE 0 TO lines,mstop
  27. STORE "?? 'm. '+TRIM(weddate)+' ' " TO wedprint
  28. IF xpaper = 'A'
  29.    STORE 70 TO mlength
  30. ELSE
  31.    STORE 66 TO mlength
  32. ENDIF
  33. IF myprnt = "P"
  34.       @ 5,1 SAY CHR(27)+"Y"
  35.       @ 9,30 say xinv+"Turn Printer ON"+xnor
  36.       SET PRINT ON
  37.       ?? "  "
  38.       SET MARGIN TO 2
  39.       @ 9,30
  40. ENDIF
  41. GO msubj
  42. ERASE
  43. IF spouse1 = 0
  44.    SET PRINT OFF
  45.    @ 12,20 SAY "No Descendants of "+trim(firstnms)+" "+trim(surname)+" on File"
  46.    ?
  47.    ? "                      Press <RETURN> when ready "
  48.    SET CONSOLE OFF
  49.    WAIT
  50.    SET CONSOLE ON
  51.    ERASE
  52.    RETURN
  53. ENDIF
  54. ?? chr(27)+"N"
  55. ?? spc3+"DESCENDANTS OF "+chr(27)+"X"+!(trim(firstnms))+" "+trim(surname)+;
  56.    chr(27)+"Y"
  57. ? propnl
  58. ? " Notes:  b. = born,  d. = died,  m. = married,  * = baptised,  c. = circa"
  59. ? compr
  60. STORE lines+4 TO lines
  61. ? propnl+"Printed "+date()
  62. ?? $(STR(0,130),1,125)+"Page "+STR(page,2)+compr
  63. ? spc1+spc4+"1x      "+"2x      "+"3x      "+"4x      "+;
  64.   "5x      "+"6x      "+"7x      "+"8x"
  65. ? spc1+spc4+gt+gt+gt+gt+gt+gt+gt+gt
  66. ? spc1+spc3+gd+gd+gd+gd+gd+gd+gd+gd+gd
  67. ? "Person    "+ch+ch+ch+ch+ch+ch+ch+ch+ch+ch
  68. ? fence
  69. STORE lines+6 TO lines
  70. STORE STR(VAL(g)+1,1) TO g
  71. STORE 'mpar'+STR(VAL(g),1) TO mpar&g
  72. STORE # TO mpar&g
  73. DO CASE
  74.    CASE spouse1 > 0 .AND. kid = 0 .AND. spouse2 = 0
  75.       ?
  76.       DO dprint
  77.       STORE lines+1 TO lines
  78.       GO spouse1
  79.       IF spouse2 = 0
  80.          ? tab1
  81.          &wedprint
  82.          DO dprint
  83.       ELSE
  84.          GO msubj
  85.          ? tab1
  86.          &wedprint
  87.          GO spouse1
  88.          DO dprint
  89.       ENDIF
  90.       ? "No descendants on file"
  91.       ?
  92.       SET PRINT OFF
  93.       ?
  94.       ? "                      Press <RETURN> when ready "
  95.       SET CONSOLE OFF
  96.       WAIT
  97.       SET CONSOLE ON
  98.       ERASE
  99.       RETURN
  100.    CASE spouse1 > 0 .AND. kid > 0 .AND. spouse2 = 0
  101.       ?
  102.       DO dprint
  103.       STORE lines+1 TO lines
  104.       GO spouse1
  105.       IF spouse2 = 0
  106.          ? tab1
  107.          &wedprint
  108.          DO dprint
  109.       ELSE
  110.          GO msubj
  111.          ? tab1
  112.          &wedprint
  113.          GO spouse1
  114.          DO dprint
  115.       ENDIF
  116.       STORE lines+1 TO lines
  117.       IF spouse2 > 0
  118.          GO msubj
  119.       ENDIF
  120.       IF kid > 0
  121.          GO kid
  122.          STORE # TO msubj
  123.          ? spc+spc&g
  124.          DO dprint
  125.          STORE lines+1 TO lines
  126.          IF sib > 0
  127.             DO WHILE sib>0
  128.                GO sib
  129.                ? spc+spc&g
  130.                DO dprint
  131.                STORE lines+1 TO lines
  132.                IF spouse1>0 .AND. VAL(g)=1
  133.                   STORE # TO mstop
  134.                ENDIF
  135.                IF mstop=0
  136.                   STORE mpar&g TO mstop
  137.                ENDIF
  138.             ENDDO
  139.          ENDIF
  140.       ENDIF
  141.       ? fence
  142.       STORE lines+1 TO lines
  143.       DO dnext
  144.    CASE spouse1 > 0 .AND. spouse2 > 0
  145.       DO dtwowife
  146.       IF end > 0
  147.          GO end
  148.          STORE # TO msubj
  149.          STORE STR(VAL(g)+1,1) TO g
  150.          DO dnext
  151.       ENDIF
  152. ENDCASE
  153. ?
  154. IF myprnt = 'P'
  155.    SET CONSOLE OFF
  156.    DO WHILE mlength-lines > 0
  157.       ?
  158.       STORE lines+1 TO lines
  159.    ENDDO
  160.    STORE 0 TO lines
  161.    STORE page+1 TO page
  162.    SET CONSOLE ON
  163. ENDIF
  164. SET PRINT OFF
  165. ? "                         Press <RETURN> when ready "
  166. SET CONSOLE OFF
  167. WAIT
  168. SET CONSOLE ON
  169. ERASE
  170. RETURN
  171.