IMD 1.16: 29/05/2007 12:24:37 FOGCPM.029 --FOGCPM029EXPLORE CMD/GEN DOC GEN DOC1-02-00 86 EXPLORE1CMD) !"#$%NEWINDEXCMD&NS CMD'()*STORY CMD+,TESTSW CMD-.FATHER NDX/MOTHER NDX0NAME NDX123PERSONS DBF4567REF NDX8STORIES DBF 9:;<STORYREFNDX=GHOST FMT>?GHOST ZIP@AGHOST ZPR BCHELPEXP FMT DEHELPEXP ZIPFGHELPEXP ZPRHHELPEXP2FMTIJHELPEXP2ZIPKLHELPEXP2ZPR MNHELPEXP3FMT OPHELPEXP3ZIPQRHELPEXP3ZPRSHELPEXP4FMT TUHELPEXP4ZIPVWHELPEXP4ZPRXLIST FMTYLIST ZIPZ[LIST ZPR\GENLGY DOC]^_FAMTREE BAS`abcdefghijklmnoFAMTREE BAS:pqrstuvw-CPM029 DOCTREE COMxyz{|}~TREE COMTTREE DOCNEWGENEABASuThis is the disk name. *** EXPLORE.CMD - ROOT PROGRAM FOR THE EXPLORATION ON THE GENEOLOGICAL DATA BASE. *** version 1.0 *** change the following line to suit your installation *** SET DEFAULT TO B: *** GETTING STARTED *** RELEASE ALL USE PERSONS INDEX REF,FATHER,MOTHER,NAME SET TALK OFF SET BELL OFF erase store '0000' to curper store '1111' to m1 store t to cont store "N" to command store f to didhelp @ 12,0 say "type (H)elp to see what the commands listed below" @ 14,11 say "allow you do." @ 4,10 say "G E N E A L O G Y " @ 6,0 SAY "copyright 1984 by S. Washburn" @ 7,0 say "for public domain use only" *** main loop *** do while cont set intensity on If .not. didhelp *** see what he wants to do. *** @ 22,0 @ 22,0 say 'ENTER A COMMAND ->NRGBFMSCAELQ 8426<- H = Help ?' GET COMMAND PICTURE '!' read endif store F to didhelp do case Case command ="A" set carry on append store ref:no to m1 store ref:no to curper if val(curper) do explore1 endif set carry off case command = "R" set intensity on if val(curper)<>0 store curper to M1 endif @ 22,0 @ 22,0 say "enter a person's reference number?" get M1 picture "9999" read store M1 to curper if val(m1)<>0 do explore1 endif case command ="N" DO NS case command ="C" if val(m7)>0 .and. childcount>0 store M7 to curper store M7 to M1 do explore1 endif case command ="Q" store f to cont case command ="G" if val(curper)<>0 store curper to m1 do explore1 endif case command ="E" find &curper if # store str(#,4) to line edit &line store ref:no to m1 store ref:no to curper endif if val(curper) do explore1 endif case command ="F" if val(m2) store m2 to curper store m2 to M1 do explore1 endif case command = "L" store " "to command set format to list read set format to screen if command $ "Nn" erase set print on set index to name list last:name, first:name,"B:",$(str(birth:date,8),1,4),"ref=",ref:no off set print off endif if command $ "Rr" erase set print on set index to ref list ref:no, trim(last:name), trim(first:name),"B:",$(str(birth:date,8),1,4) off set print off endif set index to ref,father,mother,name if val(curper) do explore1 endif case command ="M" if val(m3) store m3 to curper store M3 to m1 do explore1 endif case command ="S" if val(m4) store m4 to curper store m4 to M1 do explore1 endif case command ="B" if val(curper) do story endif case command $ "H?," set intensity off do while command $ "Hh?," store " " to command set format to helpexp read if command $ "?," store " "to command set format to helpexp2 read if command $ "?," store " " to command set format to helpexp3 read if command $ "?," store " " to command set format to helpexp4 read endif  endif endif enddo set format to screen if val(curper) do explore1 endif if command <> " " store T to didhelp endif store !(command) to command case command = "I" do newindex if val(curper) do explore1 endif case command $ "8426!'{]" store row to nrow store col to ncol *** calculate new row and collumn *** if command $ "8!" store row-1 to nrow else if command $ "2{" store row+1 to nrow else if command $ "4'" store col-1 to ncol else if command $ "6]" store col+1 to ncol endif endif endif endif *** continue only if new position is on screen *** if ncol>0 .and. Nrow>0 .and. ncol<5 .and. nrow<7 if .not. (nrow=1 .and. Ncol>2) *** figure out the memory variable in the new cell *** if nrow=1 if ncol=1 store M2 to nref else store m3 to nref endif else if nrow=2 if ncol=1 store M1 to nref else if ncol=2 store m4 to nref else if ncol=3 store m5 to nref else if ncol=4 store m6 to nref endif endif endif endif else if nrow>2 *set echo on *set step on store (ncol-1)*4+nrow-2 to child1 if child1>childcount store "0" to nref else store str(child1+6,2) to child if val(child)<10 store $(child,2,1) to child endif store m&child to nref endif endif endif endif **** DEBUG LINES *set echo off *set step off *** continue only if cell is occupied *** if val(nref)<>0 *** display marker at new position *** @ &prow, &pcol say " " store str((ncol-1)*26,2) to pcol if nrow=1 store "2" to prow else if nrow=2 store "6" to prow else if nrow>2 store str(10+(nrow-3)*3,2) to prow endif endif endif set intensity off @ &prow,&pcol say '*' store nrow to row store ncol to col store nref to curper endif endif endif ***** DEBUG LINES ** @ 23,0 say 'nref='+nref+' curper='+curper+' chcnt='; ** +str(childcount,2)+' '+str(row,2)+' '+str(col,2) case command="Z" set format to ghost read set format to screen if val(curper) do explore1 endif otherwise @ 22,0 @ 22,0 say command+" command unknown. Type any key" wait endcase if .not. didhelp store " " to command endif enddo return INES *set echo off *set step off *** continue only if cell is occupied *** if val(nref)<>0 *** display marker at.he G E N E A L O G Y D O C U M E N T A T I O N Page # 0. Table of contents: 1. Overview 2. Installation 2.0 Cop th distributio dis. 2.1 Operating from a diskette on drive B: 2.2 Operatin fro diskett o driv othe tha B: 2.3 Operating from a hard disk: 3. User's guide 3.1 Getting started: 3.2 Adding new people or editing existing people: 3.2.1 Advice on adding new families and assigning reference numbers: 3.3 Adding and editing the biographie for a person. 3.3.1 Adding or appending to a biographie. 3.3.2 Editing an existing biographie. 3.4 Exploring your genealogy: 4. Miscellaneous notes 4.1 Disk space requirements 4.2 Execution speed: 4.3 Known bugs: 4.3.1 Index problems:  4.3.2 Too many memory variables: 4.3.3 Errors when you (Q)uit: 5. Files 5.1 Command files: 5.2 Format files: 5.3 Data base files: 6.Copies of help screens .pa 1. Overview: Th genealogica dat bas progra "EXPLORE allow yo t maintai dat bas o peopl wh ar relate t eac other Yo ca ad ne peopl t th dat bas an the lin the togethe b indicatin th direc relationship betwee th people B direc relationship mea tha yo indicat fo eac perso wh hi parent an spouse ar (were) B followin th link betwee childre an parents an betwee spouses th syste i abl t determin th ho an tw peopl ar related. Onc yo hav loade i you famil tre yo ca "EXPLORE o navigat th genealog o th screen Yo pic perso t star with Th syste wil the displa hi immediat famil o th scree wit hi i th box Usin th command availiabl yo ca the positio th sta (* t th perso o th scree tha yo ar intereste i an vi th (G) comman displa hi immediat family o vi th (B)iograph comman displa hi biograpy. B repetitivle movin th sta (* t th fathe o th famil o th scree an usin th (G) comman yo wil clim th famil tre toward it source I yo d thi i th directio o th childre o th scree yo wil follo on o th path o descendant o栠 th origina person Yo ca als explor horizontall b repetivel movin t th spous o th srceen. Th dat bas o th distributio dis contain severa generation o th famil o Willia th conquerer Tr explorin i t ge fee fo wha yo ca do Not tha i th fil William' las nam i "o Normandie" You'l nee hi las nam t ge started. Ther ar command i th explor progra tha allo yo t ad an edi th peopl i you genealog an thei biographies Thes command us certai o th dbaseI function (edit browse append s yo wil nee t kno th contro key tha ar use i thes comand ^Y,^Q,^W etc Otherwis th progra i designe fo novic compute user Ther ar fou hel screens Whe yo firs star u i i usefu t pag throug th hel screen a the contai informatio tha i wort knowin righ away. .pa 2.Installation: 2.0 Cop th distributio dis an stor th origina i saf place 2.1 Operating from a diskette on drive B: Th system i pre-configure t operat fro dis b: S pu th genealog diskett i driv b: Pu you dbaseI diskett i driv A an ru dbaseII A th do (. promp type "D B:EXPLORE an you o you way. 2.2 Operatin fro diskett o driv othe tha B: I yo wan t ru fro anothe drive yo mus modif on lin o th comman fil "EXPLORE.CMD" It' a obviou chang s don' panic A th ver beginnin o th comman fil (lin think i lin tha say "SE DEFAUL T B: Yo mus chang th B t C: D o whateve driv yo ar plannin t ru from Us th comman i wordsta t mak th modification I yo wil no alway ru fro th sam drive Pu sta a th beginnin o th "SE DEFAULT lin i EXPLORE.CM t mak i commen s i wil no execute I thi cas eac tim yo us th genealog syste yo mus typ th comman SE DEFAUL T _ befor yo typ th D EXPLOR command Th bein th driv yo ar usin fo th session. 2.3 Operating from a hard disk: Cop th distributio diskett t th logica driv o you choic o you har disk The mak th sam modificatio describe i paragrap 2. above You'l fin th dela tim i executin command i muc reduce o fas har disk. .pa 3. User's guide: 3.1 Getting started: Star dbaseIɠ an typ "D _:EXPLORE wher _ i th driv wher yo pu th genealog system. Yo wil b immediatel prompte fo command I yo ar novic user typ t displa th firs hel screen Fro i yo ca displa others Ther ar i all Fo referenc the ar include i sectio o thi manual Rea the carefully. 3.2 Adding new people or editing existing people: Whe yo ad o edi peopl vi th o commandes yo mus understan th significanc o th field i th person' record Th fil structur tha follow an th explanatio afte i shoul clarif this. FLD NAME TYPE WIDTH FORMAT COMMENT 001 REF:NO C 4 NNNN Unique code of person 002 FATHER:REF C 4 NNNN his father's ref:no 003 MOTHER:REF C 4 NNNN his mother's ref:no 004 FIRST:NAME C 15 TEXTE 005 MID:NAME C 15 TEXTE 006 LAST:NAME C 25 TEXTE 007 NICK:NAME C 15 TEXTE 00 BIRTH:DAT YYYYMMDD 009 DEATH:DAT YYYYMMDD put 0 if he's not dead 010 SEX C 1 F or M this is important 011 SPSE1:REF C 4 NNNN his 1st spouses ref:no 012 SPSE1:DATE N 8 YYYYMMDD marriage date 013 SPSE1:CHIL N 2 NN children by spouse No1 014 SPSE2:REF C 4 NNNN his 2nd spouses ref:no 015 SPSE2:DATE N 8 YYYYMMDD marriage date 01 SPSE2:CHI N childre b spous No2 01 SPSE3:RE NNN hi 3r spouse ref:no 01 SPSE3:DAT YYYYMMD marriag date 01 SPSE3:CHI N childre b spous No3 A yo ca se b th comment al th field tha contai referenc numbe ar ver importan becaus the establis fo th syste wh th perso i relate to Yo ma ad o chang an o th reference number later Howeve yo mus neve chang th numbe i fiel 001 I yo do th peopl wh ar relate t hi wil becom orphan an widows! I won' caus an proble i yo leav field blan o zero (Fo exampl i h wa onl marrie once th field fo spous an shoul b lef empty.) .pa 3.2.1 Advice on adding new families and assigning reference numbers: You onl constrain i choosin referenc numbe fo ne perso i tha i mus b unique Therefor kee lis startin a 100 o th number you'v alread used You othe proble whe yo ad ne peopl i t kno th referenc number o thei parent an spouses I i therefor i you interes t ge organise befor yo star actuall addin th people Mak char o pape an assig th referenc number t th peopl befor yo start Tha wa yo won' ge confuse an mak mistakes Remebe als tha yo ca leav th spous an paren reference blan i ne person recor an fil the i later You'l b force t d thi fro tim t tim becaus o th chicke o th eg syndrome. T hel yo ou th comman wil prin lis o al th peopl i th geneolg i orde b nam wit th referenc numbe nex t eac name Eac tim yo ad famil t th fil it' wort i t prin thi ou an kee i hand fo you nex updat session. 3.3 Adding and editing the biographie for a person. Firs displa th person' famil o th scree an mak sur yo hav move th sta (* t hi nam o th screen The execut th (B)iographi command I h alread ha biographi yo ca modif o ad t it I no yo ca creat one Jus follo th instruction o th screen Th biographie ar al store i th sam fil (stories.dbf) Th record i thi fil hav jus tw fields: 001 REF:CODE C 4 002 TEXT C 45 Th REF:CODŠ fiel i indexe an thu allow th syste t rapdil acces th stor o perso an t distinguis on person' stor line fro another's. 3.3.1 Adding or appending to a biographie. Th syste wil thro yo int appen mod o thi storie file Bu befor doin s wil tel yo th REF:COD o th perso concerned B sur t us i fo th firs lin o th biographi yo create Fo subsequen line th "carr on featur wil repea i automatically Unfortunatel whe you'r addin t biographi yo ca onl se on lin a tim (no exactl ful scree wor processing) S yo shoul hav you thought organise i advance Howeve onc entere yo ca edi th existin line i ful scree mode (Se th followin paragrap 3.3.2). .pa 3.3.2 Editing an existing biographie. Th syste wil thro yo int brows mod i th storie fil wit th stor line o th perso concerne startin a th to o th screen Usin th brows command documente i th dbaseI manue yo ca modif th tex i thes line o delet lin completely Yo canno howeve ad ne line Some rules: Don' chang th firs fiel o th lef unles yo wan t delet th lin fro th story It' th REF:CODE. T delet lin competely chang th REF:COD t blanks Thes blank wil disappea immediatel fro th stor an brows wil unfortunatel jum t th beginnin o th file You'l hav t advanc forwar t th stor you'r editin wit th ^ command M advic i t mak al you othe modification befor yo delet lines. Th line o othe people storie ca b o th brows scree befor an afte th line o th perso yo ar editing B carefu no t chang the b mistake. Whe you'r finished b sur t exi vi th ^ comman s you change ar writte t disk. 3.4 Exploring your genealogy: Yo alway explor relativ t famil displaye o th screen Thu whe yo star up yo mus ge famil o th screen Us th Π o commande t d this Th famil displaye alway ha centra perso (he' i th bo a lef center) Abov hi ar displaye hi parents t hi righ hi spouse ( maximum) an belo hi childre (1 maximum) Ther i als alway sta (* nex t on o th name o th screen W cal thi perso th sta person Thi sta perso i on wh wil b th subjec o th variou command yo ca execute t displa hi biography t g displa hi immediat family etc. You move the star to a new person on the screen via the four keys: 8 4 6 2 Eac ke move th curse i th directio indicated Not tha whe ne famil i displaye th sta i alway pu o th perso i th box .PA A a exampl o climbin th genealogica tree yo woul displa family the pres th ke t mov th curse t th fathe o th family The pres th ke t g displa th famil o th father Th ne famil displaye woul hav th fathe fro th firs famil i th bo an th perso previousl i th bo a on o th children B repeatin thes step yo ca continu u throug th generation stoppin a an poin t displa th biograph o an peopl wh interes you.  Not tha ther ar fou shor cu command tha eliminat havin t mov th sta t perso an the typ G Thes command are: (F)ather (M)other (S)pouse - first only (C)hild - oldest only These commands display directly the family of the person indicated. .pa 4. Notes 4.1 Disk space requirements CMD and FMT files: 32k DBF and NDX files: .5k per person Result: about 100 people on a 95K diskette, 320 people on a 195k diskette. Thes figure wer calculate base o a averag o line o biograph pe person. 4.2 Execution speed: Whe runnin o diskett syste respons tim i littl slow Thi i becaus dbaseI doe no eve kee th entir comman fil i memor a on time O har dis i run t time faster O RA dis i woul probabl b lik lightin althoug hav no trie it. 4.3 Known bugs: 4.3.1 Index problems: I yo mak al you modification t th genealog vi th explor program yo shouldn' hav an problem wit th inde files Howeve don' trus dbaseI 100 an yo ma wan t mak som change directl fro th dbas do (. prompt I thi cas o i yo hav an strang problems us th comman t rebuil al th indexes I wil als purg al record marke fo deletio an eliminat record wit blan REF:CODE fro th storie file. 4.3.2 Too many memory variables: dbaseI onl allow th us o 6 memor variable a on time I yo hav famil wit mor tha 1 childre displaye o th scree yo ma ge thi error There' probabl wa aroun i bu I' to laz t fi it I shouldn' happe ofte an i cause n problem whe i does 4.3.3 Errors when you (Q)uit: Sometime i yo star u an the qui righ awa withou havin don anything yo ma ge systa erro message Thi becaus certai memor variable tha ar checke o exitin hav no bee initialise sinc yo di nothing Don' worr i won' caus an har jus hi escape. .pa 5. Files: 5.1 Command files: NAME SIZE FUNCTION EXPLORE 6 Mai program Execute som functions Call su program fo others. EXPLORE1 6 Displays a family on the screen. NEWINDEX 1 Packs files and rebuilds indexes. NS 4 Allows lookup of people by name. STORY 2 Displays biography of a person. 5.2 Format files: NAME SIZE FUNCTION HELPEXP 2 HELP SCREEN NO 1 HELPEXP2 2 HELP SCREEN NO 2 HELPEXP3 2 HELP SCREEN NO 3 HELPEXP4 2 HELP SCREEN NO 4 LIST 1 Used when listing people on printer. GHOST 2 ????? 5.3 Data base files: NAME SIZE FUNCTION PERSONS ?? CONTAINS THE PEOPLE. STORIES ?? CONTAINS THE BIOGRAPHIES. 5.4 Index files: NAME SIZE FUNCTION FATHER ?? to find all the children of a father. MOTHER ?? to find all the children of a mother. NAME ?? to find people by name. REF ?? to find people by reference number. STORYREF ?? to find the lines of a persons biography. 5.5 Miscellaneous files: NAME SIZE FUNCTION GEN.DOC 20 This manuel *.ZIP 12 ZIP work files for FMT files. *.ZPR 8 ZIP print files for FMT files. Not tha thes miscellaneou file ar no neede o th executio disk Yo shoul kee the o anothe diskett s you'l hav mor spac t us o you executio diskette. .pa 6. Help screens: The following are copies of the help screens availiable on the system. *** File B:HELPEXP.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : Valid responses to the ENTER COMMAND: : : : -- TO GET STARTED --- : : N to find someone via his (N)ame. : : R to find someone via his (R)eference No. : : : -- AFTER YOU HAVE A FAMILY DISPLAYED -- : : G (G)o display family of the * person. : : B display the (B)iography of the * person : : F display the family of the (F)ather, : : M or (M)other, : : S or first (S)pouse, : : C or first (C)hild. : : Q to (Q)uit. : : -- TO MOVE THE * TO A NEW PERSON ON SCREEN -- : : 8 these keys move the * in the : : 4 6 direction indicated. : : 2 : : -- YOU MAY NOW TYPE : : : -> one of the above commandes; OR : : -> ? to display next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : *** File B:HELPEXP2.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 2. : : -- COMMANDS TO MODIFY YOUR GENEALOGY -- : : E to (E)dit the person at screen center. : : A to (A)dd new people. : : I to rebuild the (I)ndexes after a problm : : L to print a List of people in the genlgy : : Z to communicate with the author's ghost! : : NOTE: It is better to execute these functions : : via the above commands while you are in the : : genealogy program than to do them directly : : from the dbaseII dot (.) prompt. : : This is because when you are in the : : genealogy program, the four indexes are : : always correctly SET and thus you won't : : foul them up. : : : : -- YOU MAY NOW TYPE : : : -> one of the above commands; OR : : -> ? to display the next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : .pa *** File B:HELPEXP3.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 3. : : -- HINTS ABOUT LOADING YOUR GENEALOGY (part 1) : : : : Each person you add must have a unique : : REF:NO. This allows the system to uniquely : : identify each person. When you relate a person : : to others in the genealogy, you use his REF:NO : : to do it. : : For example if person 1000 is the father of : : person 1005, you must put 1000 in the field : : FATHER:REF of person 1005's record. : : To help you keep track of the reference : : numbers of the people in your geneology the L : : command will print a list of all the people and : : their refer ence numbers. : : : : -- YOU MAY NOW TYPE : : : -> one of the above commands; OR : : -> ? to display the next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : *** File B:HELPEXP4.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 4. : : -- HINTS ABOUT LOADING YOUR GENEALOGY (part 2) : : : : Since a person's REF:NO is used to relate : : other people to him, there are a few : : important rules to follow: : : 1. Make sure each person's REF:NO is unique. : : : : 2. Never change a person's REF:NO. : : : : 3. When you add a story for a person, be : : sure to put his REF:NO in the first field : : of each story line. : : : : 4. The format of all date fields is YYYYMMDD : : : : -- YOU MAY NOW TYPE : : : -> any valid command; OR : : -> H to display the first help screen OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : .pa  next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : *** File B:HELPEXP4.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 4. : : -- HINTS ABOUT LOADING YOUR GENEALOGY (part 2) : : : : Since a person's REF:NO is used to relate : : other people to him, there are a few : : important rules to follow: : : 1. Make sure each person's REF:NO is unique. : : : : 2. Never change a person's REF:NO. : : : : 3. When you add a story for a person, be : : sure to put his REF:NO in the first field : : of each story line. : : : : 4. The format of all date fields is YYYYMMDD : : : : -- YOU MAY NOW TYPE : : : -> any valid command; OR : : -> H to display the**** EXPLORE1.CMD - DISPLAY FAMILLY ON SCREEN WITH CODE IN M1 AS PRIME PERSON. *** **** version 1.0 *** getting started. ERASE set intensity on @ 1,0 SAY 'vvvvvvvvvvv PARENTS vvvvvvvvvvvvvvv' @ 4,0 SAY '------------------------- vvvvvvvvvvvvv SPOUSES vvvvvvvvvvvvvv' @ 8,0 SAY '-------------------------' @ 5,25 say ')' @ 6,25 say ")" @ 7,25 say ')' set intensity off *** look up prime person *** FIND &M1 IF # = 0 @ 23,0 @ 23,0 SAY m1+' NOT FOUND IN DATA BASE. TRY AGAIN !!' STORE f to notfirst store 'C' to command set intensity on RETURN ENDIF store t to notfirst *** display prime person  @ 7,1 SAY BIRTH:DATE USING '#### ##/##' IF DEATH:DATE<>0 @ 7,12 SAY '-' @ 7,14 SAY DEATH:DATE USING '#### ##/##' ENDIF @ 5,1 SAY FIRST:NAME @ 6,1 SAY trim(LAST:NAME) set intensity on @ 6,25 say ')' set intensity off *** save data of prime person *** STORE FATHER:REF TO M2 STORE MOTHER:REF TO M3 store spse1:ref to m4 store spse2:ref to m5 store spse3:ref to m6 store str(spse1:date,8) to mdate4 store str(spse2:date,8) to mdate5 store str(spse3:date,8) to mdate6 STORE SEX TO MSEX *** find and display father *** FIND &M2 IF #=0 @ 2,0 SAY "father not found" STORE "0000" TO M2 ELSE @ 2,1 SAY FIRST:NAME @ 3,1 SAY LAST:NAME ENDIF *** find and display mother *** fIND &M3 IF #=0 @ 2,26 SAY "Mother not found" store "0000" to m3 else @ 2,27 say first:name @ 3,27 say last:name endif store 2 to row store 2 to col store 1 to l store t to true *** find and display spouses *** do while l<4 store str(3+l,1) to element if val(m&element)<>0 store str((col-1)*26+1,2) to pcol store str((row-2)*4+5,2) to prow store f to true find &m&element if #<>0 @ &prow,&pcol say trim(first:name)+' '+$(mdate&element,1,4) store str(val(prow)+1,2)to prow @ &prow,&pcol say last:name else @ &prow,&pcol say m&element+" not found" endif store col+1 to col endif store l+1 to l enddo if true @ 6,30 say "not married or spouse unknown" endif store 1 to col store row+1 to row **** display children ****************** set intensity on @ 9,0 say "CHILDREN:" set intensity off if msex="m" .OR. msex="M" store "father" to indx else store "mother" to indx endif set index to &indx store "6" to child *** look up first occurance of prime person in the *** parent index se lected. find &m1 if #<>0 store "7" to child store t to true do while true *** display current child *** store str((col-1)*26+1,2)to pcol store str((row-3)*3+10,2) to prow @ &prow,&pcol say trim(first:name)+' '+$(str(birth:date,8),1,4) store str(val(prow)+1,2)to prow @ &prow,&pcol say last:name *** save childs reference number to child array *** store ref:no to m&child *** increment screen position *** if (row-2)/4 = int((row-2)/4) store 3 to row store col+1 to col else store row+1 to row endif  *** look for next child *** skip if eof .OR. &indx.:ref<>M1 .OR. val(child)=22 store f to true else *** increment child array element *** store str(val(child)+1,2) to child if val(child)<10 store $(child,2,1) to child endif endif enddo *** back up to display next child *** else @ 12,5 say "no children" endif store val(child)-6 to childcount store '6' to prow store '0' to pcol @ &prow,&pcol say "*" store 2 to row store 1 to col set index to ref,father,mother,name set intensity on return  *** look for next child *** skip if eof .OR. &indx.:ref<>M1 .OR. val(child)=22 store f to true else *** increment child array element *** store str(val(child)+1,2) to child if val(child)<10 store $(child,2,1) to child endif endif enddo *** back up to display next child *** else @ 12,5 say "no children" endif store val(child)-6 to childcount store '6' to prow store '0' to pcol @ &prow,&pc** COMMAND FILE TO BUILD COMPLETELY NEW INDEXES FOR THE GENEOLOGICAL DATA BASE ** * * * NEWINDEX.CMD version 1.0 ********************************************************************************* USE PERSONS ERASE ? "*** BE PATIENT THIS TAKES A WHILE ***" PACK ? ? "BUILDING REF:NO INDEX" INDEX ON REF:NO TO REF ? " COMPLETE." ? ? "BUILDING FATHER INDEX" INDEX ON FATHER:REF+STR(BIRTH:DATE,8) TO FATHER ? " COMPLETE." ? ? "BUILDING MOTHER INDEX" INDEX ON MOTHER:REF+STR(BIRTH:DATE,8) TO MOTHER ? " COMPLETE." ? ? "BUILDING NAME INDEX" INDEX ON !(LAST:NAME+FIRST:NAME) TO NAME ? " COMPLETE." ? ? "CLEANING UP STORY FILE" USE STORIES DELETE ALL FOR REF:CODE = " " PACK ? "BUILDING STORY FILE INDEX" INDEX ON REF:CODE TO STORYREF ? " COMPLETE." ? ? "ALL INDEXES REBUILT" USE PERSONS SET INDEX TO REF,FATHER,MOTHER,NAME ** END OF PROGRAM ****** NS.CMD - COMMAND FILE TO PROMPT FOR AND FIND A PERSON BY NAME. **** **** version 1.0 STORE T TO TRUE STORE 0 TO CHOICE **** MAIN LOOP OF SUBROUTINE. * LOOP UNTIL HE CHOOSES ONE OF THE NAMES DISPLAYED OR SAYS HE * WANTS TO QUIT. DO WHILE TRUE *** ASK FOR LAST NAME STORE " " TO LNAME @ 22,0 @ 23,0 @ 22,0 SAY 'ENTER ALL OR PART OF LAST NAME OF PERSON TO FIND (Q=>QUIT)' GET LNAME PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!' READ IF TRIM(LNAME) = "Q" .OR. $(LNAME,1,1)=" " STORE F TO TRUE ENDIF SET INDEX TO NAME STORE T TO FIRST **** LOOP2 OF SUBROUTINE DO WHILE TRIM(LNAME) <> "Q" .AND. $(LNAME,1,1)<>" " STORE " " TO FNAME @ 23,0 SAY 'ENTER A FIRST NAME TOO IF YOU WANT' GET FNAME PICTURE '!!!!!!!!!!!!!!!' READ ** BUILD THE LOOKUP KEY. FILE KEY IS : LAST:NAME + FIRST:NAME. * NOTE THAT THE LAST NAME IS PADDED WITH SPACES TO A LENGTH OF 25. IF $(FNAME,1,1) = " " STORE TRIM(LNAME) TO NAMEKEY ELSE  STORE LNAME+TRIM(FNAME) TO NAMEKEY ENDIF STORE 1 TO MAX STORE 99 TO CHOICE **** LOOP3 OF SUBROUTINE. * IT DISPLAYS THE NAMES OF PEOPLE WHO MATCH THE NAME HE GAVE. * AND ALLOWS THE USER TO SELECT THE ONE HE WANTS TO DISPLAY. DO WHILE MAX STORE 0 TO MAX ERASE SET INTENSITY OFF **** LOOP4 OF SUBROUTINE. * IT FILLS UP THE SCREEN WITH PEOPLE WHOSE NAME MATCHES THE ONE * HE GAVE. DO WHILE CHOICE = 99 IF FIRST STORE F TO FIRST FIND &NAMEKEY ELSE SKIP ENDIF IF #<>0 .AND. (.NOT. EOF) .AND. NAMEKEY=$(!(LAST:NAME+FIRST:NAME),1,LEN(NAMEKEY)) STORE MAX+1 TO MAX IF MAX>9 STORE STR(MAX,2) TO MAXS ELSE STORE STR(MAX,1) TO MAXS ENDIF STORE REF:NO TO REF&MAXS @ &MAXS,0 SAY MAXS+" "+TRIM(LAST:NAME)+', '+TRIM(FIRST:NAME)+" b: "+$(STR(BIRTH:DATE,8),1,4)+" ref= "+REF:NO ELSE STORE 0 TO CHOICE ENDIF IF MAX = 20  STORE 0 TO CHOICE ENDIF ENDDO SET INTENSITY ON IF MAX STORE -1 TO CHOICE DO WHILE (CHOICE<0 .OR. CHOICE>MAX) .AND. CHOICE<>99 @ 22,0 SAY 'SELECT A PERSON (0=QUIT, 99=CONTINUE DISPLAYING)' GET CHOICE PICTURE '99' READ ENDDO IF CHOICE <> 0 .AND. CHOICE <> 99 STORE 0 TO MAX STORE "Q" TO LNAME STORE F TO TRUE ELSE IF CHOICE=0 STORE 0 TO MAX ELSE ERASE ENDIF ENDIF ENDIF ENDDO STORE "Q" TO LNAME ENDDO ENDDO **** DISPLAY EITHER THE PERSON HE CHOSE OR OR LAST PERSON DISPLAYED BEFORE HE * SELECTED OPTION N IF AFTER ALL HE DIDN'T CHOOSE ANYONE. SET INDEX TO REF,FATHER,MOTHER,NAME ERASE IF CHOICE > 0 .AND. CHOICE <> 99 IF CHOICE>9 STORE STR(CHOICE,2) TO CHOICES ELSE STORE STR(CHOICE,1) TO CHOICES ENDIF STORE REF&CHOICES TO M1 STORE M1 TO CURPER DO EXPLORE1 ELSE IF VAL(CURPER) <> 0 DO EXPLORE1 ENDIF ENDIF *** LOOP TO RELEASE MEMORY VARIBLES. *** STORE 1 TO MAX DO WHILE MAX<21 IF MAX<10 STORE STR(MAX,1) TO MAXS ELSE STORE STR(MAX,2) TO MAXS ENDIF RELEASE REF&MAXS STORE MAX+1 TO MAX ENDDO RETURN CTURE '99' READ ENDDO IF CHOICE <> 0 .AND. CHOICE <> 99 STORE 0 TO MAX STORE "Q" TO LNAME STORE F TO TRUE ELSE IF CHOICE=0 STORE 0 TO MAX ELSE ERASE ENDIF ENDIF ENDIF ENDDO STORE "Q" TO LNAME ENDDO ENDDO **** DISPLAY EITHER THE PERSON HE CHOSE OR OR LAST PERSON DISPLAYED BEFORE HE * SELECTED OPTION N IF AFTER ALL HE DIDN'T CHOOSE ANYONE. SET INDEX TO REF,FATHER,MOTHER,NAME ERASE IF CHOICE > 0 .AND. CHOICE <> 99 IF CHOICE>9 STORE STR(CHOICE,2) TO CHOICES ELSE STORE STR(CHOICE,1) TO CHOICES ENDIF STORE REF&CHOICES TO M1 STORE M1 TO CURPER DO EXPLORE1 ELSE IF VAL(CURPER) <> 0 DO EXPLORE1 ENDIF ENDIF *** LOOP TO RELEASE MEMOR***************************************************** * * * STORY.CMD Display story of * person and * * version 1.0 allow editing or appending. * ***************************************************** *** DISPLAY SCREEN HEADER *** FIND &CURPER ERASE @ 1,18 SAY "S T O R Y O F " @ 2,15 SAY TRIM(FIRST:NAME)+" "+ TRIM(MID:NAME)+' '+TRIM(LAST:NAME)+' ('+REF:NO+')' @ 3,18 SAY "Born:" @ 3,24 SAY BIRTH:DATE USING "#### ##/##" IF DEATH:DATE @ 3,36 SAY "Died:" @ 3,42 SAY DEATH:DATE USING "#### ##/##" ENDIF @ 4,0 SAY "__________________________________________________" *** SEE IF THERE'S A STORY ON FILE *** USE STORIES INDEX STORYREF FIND &CURPER IF #=0 @ 22,0 SAY "No story on file for this person. TYPE ANY KEY" WAIT ELSE *** DISPLAY THE STORY ON THE SCREEN STORE 6 TO MAX @ 6,0 DO WHILE MAX ? TEXT SKIP IF CURPER<>REF:CODE .OR. EOF STORE 0 TO MAX ELSE IF MAX=19 @ 22,0 SAY "TYPE ANY KEY TO CONTINUE" WAIT STORE 6 TO MAX  DO WHILE MAX<22 STORE STR(MAX,2) TO LINE @ &LINE,0 STORE MAX+1 TO MAX ENDDO @ 6,0 ELSE STORE MAX+1 TO MAX ENDIF ENDIF ENDDO ENDIF *** OFFER TO LET HIM QUIT EDIT OR APPEND *** STORE "Q" TO COMMAND @ 22,0 SAY "(Q)uit, (E)dit story, or (A)ppend to story? " get command picture '!' READ IF COMMAND="E" IF # FIND &CURPER BROWSE ELSE @ 22,0 @ 22,0 SAY "SORRY I CAN'T EDIT A STORY THAT DOESN'T EXIST. Type any key." WAIT ENDIF ELSE IF COMMAND="A" ERASE SET INTENSITY OFF @ 11,10 SAY "Remember. When appending for this person," @ 13,20 SAY " REF:CODE = "+CURPER SET INTENSITY ON @ 22,0 SAY "TYPE ANY KEY TO CONTINUE" WAIT SET CARRY ON APPEND ENDIF ENDIF *** FINISH UP BY OPENING UP FILES AND REDISPLAYING OLD FAMILY *** STORE M1 TO CURPER USE PERSONS INDEX REF,FATHER,MOTHER,NAME DO EXPLORE1 RETURNSTORE 0 TO MAX ELSE IF MAX=19 @ 22,0 SAY "TYPE ANY KEY TO CONTINUE" WAIT STORE 6 TO  store 1 to cont do case case 1=1 ? "this should print" case 1=2 do case case 1=1 ? "it made it to second level case" store cont+1 to cont endcase ? "this should not print" otherwise ? "wrong. It did the otherwise." endcase Return MIKE SALLY SAMUEL WILLIAM WILLIAM P/`P/ _P/ Po P/ P/ Po _P _0_P _P_P P/ _P_Po _P _0_P _ CCC C CC o _P _0_P _ CCC C CC p/ p/ po _p/ p`PO`_p/ ?Po _po _Po _P/ _Po ?p/0?P/ p/ / P/`P/ ?P/ / P/ 0/ P/`/ po`p/`po po`p/ _Pp`?P _P/_0 _PO _P`po _Pop/ _/ _P/ P/ _P/ P/ _P/ P/ _? _P/`P/ _P/ Po P/ P/ Po _P _0_P _P_P P/ _P_P_P/ P/_P/_Po_P/ P/ _Po _P/ SALLY SAMUEL WILLIAM WILLIAM P/`P/ _P/ Po P/ P/ Po _P _0_P _P_P P/ _Pre 1 to cont do case case 1=1 ? "this should print case 1=2 do case case 1=1 ? "it made it to second level case" store cont+1 to cont endcase ? "this should not print" otherwise ? "wrong. It did the otherwise." endcase Return MIKE SALLY SAMUEL WILLIAM WILLIAM P/`P/ _P/ Po P/ P/ Po _P _0_P _P_P P/ _P_Po _P _0_P _ CCC C CFATHER:REF+STR(BIRTH:DATE,8)Pp_pπppϠpπ_P_p_pp_P_POp_P__P_PD1100110111021103110411051106 1107 1108 11091110 111111121113111411151116 11171117{11171117120012011202 1203 1204 1210 1300 1400"1401#1402$1403!1500160016011602000010280201000010300101000010500101000010700101 000010700101000010700101 000010800101 000010990101000011050101110010510101110010540101110010560101 110010600101 110010680101110211020101110610940101110811070101110811080101111111140101 1800180118021803180418211900190119021903191020002600450155501665017750188501995020:5021;5022<5023=5024>5025?5026@502MOTHER:REF+STR(BIRTH:DATE,8)Pp_pπppϠpπ_P_p_pp_P_POp_P__P_PD000010280201000010300101000010500101000010700101 000010700101000010700101 000010800101 000010990101000011050101110010510101110010540101110010560101 110010600101 110010680101110211020101110610940101110811070101110811080101000010280201000010300101000010500101000010700101 000010700101000010700101 000010800101 000010990101000011050101110110510101110110540101110110560101 110110600101 110110680101110311020101110510940101110911070101110911080101111211140101 1800180118021803180418211900190119021903191020002600450155501665017750188501995020:5021;5022<5023=5024>5025?5026@502*, !(LAST:NAME+FIRST:NAME)E,8)Pp_pπppϠpπ_P_p_pp_P_POp_P__P_PDOF ENGLAND MATHILDA  OF NORMANDIE WILLIAM II OF NORMANDY ROBERT OF NORMANDY WILLIAM OF NORMANDY WILLIAM I OF SCOTLAND MATHILDA OF NORMANDY  OF ????? MATHILDA OF ANJOU GEOFFREY OF BLOIS EUSTACE OF BLOIS STEPHAN I OF BLOIS STEPHEN OF CONVERSANA SYBIL OF ENGLAND MATHILDA OF FLANDERS MATHILDA OF GERMANY HENRY V OF LOUVAIN ADELICIA OF NORMANDIE HENRY I OF NORMANDIE  OF NORMANDY ADELE OF NORMANDY RICHARD OF NORMANDY ROBERT OF NORMANDY WILLIAM OF NORMANDY WILLIAM I OF SCOTLAND MATHILDA OF NORMANDY ADELE OF NORMANDY RICHARD OF NORMANDY ROBERT OF NORMANDY WILLIAM OF NORMANDY WILLIAM I OF SCOTLAND OF ENGLAND MATHILDA  OF NORMANDIE WILLIAM II OF NORMANDY ROBERT OF NORMANDY WILLIAM OF NORMANDY WILLIAM I OF SCOTLAND MATHILDA OF NORMANDY ADELE OF NORMANDY RICHARD OF NORMANDY ROBERT OF NORMANDY WILLIAM OF NORMANDY WILLIAM I OF SCOTLAND OF ENGLAND WILLIAM OF FLANDERS MATHILDA OF GERMANY HENRY V OF LOUVAIN ADELICIA OF NORMANDIE HENRY I OF NORMANDIE WILLIAM II OF ENGLAND WILLIAM OF FLANDERS MATHILDA OF GERMANY HENRY V OF LOUVAIN ADELICIA OF NORMANDIE HENRY I OF NORMANDIE OF ENGLAND MATHILDA  OF NORMANDIE WILLIAM II OF NORMANDY ROBERT OF NORMANDY WILLIAM OF NORMANDY WILLIAM I OF SCOTLAND MATHILDA OF NORMANDY ADELE OF NORMANDY RICHARD OF NORMANDY ROBERT OF NORMANDY WILLIAM OF NORMANDY WILLIAM I OF SCOTLAND REF:NOC٪FATHER:REFCݪMOTHER:REFCFIRST:NAMECMID:NAMECLAST:NAMECNICK:NAMECBIRTH:DATEN+DEATH:DATEN3SEXC;SPSE1:REFC<SPSE1:DATEN@SPSE1:CHILNHSPSE2:REFCJSPSE2:DATENNSPSE2:CHILNVSPSE3:REFCXSPSE3:DATEN\SPSE3:CHILNd 110000000000William I of Normandy the Conqueror 1028020110870401m11011049010110 0 110100000000Mathilda of Flanders 1030010110910101f11001049010110 0 110200000000Sybil of Conversana 1070010111250101f110311000101 3 0 110311001101Robert of Normandy Curthose  1051010111340101m110211000101 3 0 111011021103William Clito of Normandy 1102010111100101m 0 0 0 110411001101Richard of Normandy 1054010110810101m 0 0 0 110511001101Adele of Normandy 1056010111240101f110611800101 5 0 110600000000Stephen of Blois 1050010111200101m110511800101 5 0 110711001101William II of Normandie Rufus 1060010111000901m 0 0 0 110811001101Henry I of Normandie 1068010111360101m110910950101 2111711200101 0 110900000000Mathilda of Scotland 1070010111180101f110810950101 2 0 0 111700000000Adelicia of Louvain 1080010111400101f110810200101 0 0 0 111100000000Mathilda of ????? 1099010111500101f111210250101 5 0 0 111211061105Stephan I of Blois 1094010111540101m111110250101 5 0 0 111311081109William of England 1107010111201125m 0 0 0 0 111411081109Mathilda of England 1108010111600101f111511200101 1111611250101 2 111500000000Henry V of Germany Emperor 1070010111250101m111411200101 1 0 0 111600000000Geoffrey of Anjou Count 1105010111660101m111411200101 2 0 0  111711111112Eustace of Blois 1114010111300101m 0 0 0 0 1102010111100101m 0 0 0 110411001101Richard of Normandy 1054010110810101m 0 0 0 110511001101Adele of Normandy 1056010111240101f110611800101 5 0 110600000000Stephen nd 1107010111201125m 0 0 0 0 111411081109Mathilda of England 1108010111600101f111511200101 1111611250101 2 111500000000Henry V of Germany Emperor 1070010111250101m111411200101 1 0 0 111600000000Geoffrey of Anjou Count 1105010111660101m111411200101 2 0 0 ?REF:NOME+FIRST:NAMEAMEpPp_pπppϠpπ_P_p_pp_P_POp_P__P_PD1100110111021103110411051106 1107 1108 11091110 111111121113111411151116 11171117{11171117120012011202 1203 1204 1210 1300 1400"1401#1402$1403!15001600160116021100110111021103110411051106 1107 1108 11091110 111111121113111411151116 11171117{11171117120012011202 1203 1204 1210 1300 1400"1401#1402$1403!150016001601160216031700 1800180118021803180418211900190119021903191020002600450155501665017750188501995020:5021;5022<5023=5024>5025?5026@5024T2REF:CODECpTEXTC-p 1100William inherited the duchy of Normandy at th 1100age of 7 when his father left and died while 1100on a pilgrimmage to the holy land. He spent 1100the first few years hiding from the barons 1100who were trying to kill him. Finally in 1047 1100after recruiting the help of the king of 1100France he defeated the barons at the battle 1100Val es dunes. He spent the next few years 1100consolidating his power in Normandie. 1100William's uncle Edward the Confessor was king 1100England and William felt this gave him the 1100right to the English crown. However he had to 1100defeat Harold at the battle of Hastings in 1100order to finally become king in 1066. He 1100changed the course of english history by 1100doing this. 1100He was s shrewd, courageous, ruthless man, 1100capable of mercy but also of inflicting 1100torture when diplomacy wouldn't work. 1100William died as he lived from injuries 1100received on his way to paris to attack the 1100king of france for having insulted him. 1107William, called rufus because of his ruddy 1107complexion, was a man illtempered little both 1107in mind and stature. By his oppression and 1107cruelty he was loathsome to well nigh all his 1107people. He was at least a brave and capable 1107warrior. Malcolm of scotland paid him hommage 1107and he fought successfully in France. He was 1107killed by accident while hunting. He was so 1107disliked that the church refused religious 1107rites to his remains. There are those who say 1107he was a flamming homosexuel. 1108Henry "Beauclerc" was scholarly and well 1108educated. He preferred craft to force. His 1108marriage to the scottish princess won him 1108much support among his people. He also won 1108back the support of the church and abbeys 1108by allowing them to collect their rents 1108normally. He defeated his brother Robert at 1108at the battle of Tinchebray in Normandie and 1108imprisoned him for life in England. This gave 1108him title to all England and Normandie making 1108him and his descendants very powerful among 1108the european monarchs. He left no heirs as 1108his only son was drowned in a shipwreck. 1112Stephen became king by breaking a promise to 1112his uncle after his death. He took the throne 1112instead of giving it to his cousin Mathilda. 1112His reign was a dismal succesion of civil 1112wars, rebellions, squabbles, principally 1112about Mathilda.  normally. He defeated his brother Robert at 1108at the battle of Tinchebray in Normandie and 1108imprisoned him for life in England. This gave 1108him title to all England and Normandie making 1108him and his descendants very powerful among 1108the european monarchs. He left no heirs as 1108his only son was drowned in a shipwreck. 1112Stephen became king by breaking a promise to 1112his uncle after his death. He took the throne 1112instead of giving it to his cousin Mathilda. 1112His reign was a dismal succesion of civil 1112wars, rebellions, squabbles, principally 1112about Mathilda.  of 10 years old. 1800From there he went on to Milton academy 1800where he was an average student but a great 1800athlete following in his father's tradition. 1800He had a one-hitter for the varsity baseball 1800team among other exploits. 1203John was born in Bogata Colombia. 12?REF:CODEME+FIRST:NAME)E,8)Pp_pπppϠpπ_P_p_pp_P_POp_P__P_PD OF ????? MATHILDA OF ANJOU GEOFFREY OF BLOIS EUSTACE OF BLOIS STEPHAN I OF BLOIS STEPHEN OF CONVERSANA SYBIL OF ENGLAND 411001100110011001100110011001100 1100 1100 1100 1100 1100110011001100110011001100110011001100110711071107110711071107110711071107 1107!1107"1108#1108$1108%1108&1108'1108(1108)1108*1108+1108,1108-1108.1108/11120111211112211123111241112 ADELICIA OF NORMANDIE HENRY I OF NORMANDIE  * GHOST.FMT @ 0, 0 SAY "+-------------------------------------------------" @ 0,50 SAY "+" @ 1, 0 SAY ": -- MESSAGE FROM THE AUTHOR'S GHOST --" @ 1,50 SAY ":" @ 2, 0 SAY ": I wrote this program because I'm interested in" @ 2,50 SAY ":" @ 3, 0 SAY ": genealogies and computers. Being on a computer" @ 3,50 SAY ":" @ 4, 0 SAY ": should make it easier to pass on to following" @ 4,50 SAY ":" @ 5, 0 SAY ": generations because updating and distributing" @ 5,50 SAY ":" @ 6, 0 SAY ": it becomes so easy. I only wonder whether" @ 6,50 SAY ":" @ 7, 0 SAY ": dbaseII and cpm will still exist when it's my" @ 7,50 SAY ":" @ 8, 0 SAY ": grand childrens turn to keep the thing up to" @ 8,50 SAY ":" @ 9, 0 SAY ": date!! They'll probobly be updating it on their" @ 9,50 SAY ":" @ 10, 0 SAY ": wristwatch or god knows what else." @ 10,50 SAY ":" @ 11, 0 SAY ": Well I wrote this thing while living in Paris" @ 11,50 SAY ":" @ 12, 0 SAY ": in 1983 and Bill Graham who organised the first" @ 12,50 SAY ":" @ 13, 0 SAY ": French Osborne user's group (Osborne was the" @ 13,50 SAY ":" @ 14, 0 SAY ": first portable computer) suggested I toss it," @ 14,50 SAY ":" @ 15, 0 SAY ": like a note in a bottle, into the seas and" @ 15,50 SAY ":" @ 16, 0 SAY ": rivers of public domaine software. Since you're" @ 16,50 SAY ":" @ 17, 0 SAY ": reading this now, it must have washed up on the" @ 17,50 SAY ":" @ 18, 0 SAY ": distant shore of your computer. If you like it," @ 18,50 SAY ":" @ 19, 0 SAY ": hate it, use it or whatever I'd like to know so" @ 19,50 SAY ":" @ 20, 0 SAY ": please send me a note in a bottle: SAM WASHBURN" @ 20,50 SAY ":" @ 21, 0 SAY ": 3 Temple Place, Andover, Ma. 01810 U.S.A." @ 21,50 SAY ":" @ 22, 0 SAY ": TYPE ANY COMMAND" @ 22,24 GET COMMAND @ 22,50 SAY ":": Well I wrote this thing while living in Paris" @ 11,50 SAY ":" @ 12, 0 SAY ": in 1983 and Bill Graham who organised the fir+-------------------------------------------------+ : -- MESSAGE FROM THE AUTHOR'S GHOST -- : : I wrote this program because I'm interested in : : genealogies and computers. Being on a computer : : should make it easier to pass on to following : : generations because updating and distributing : : it becomes so easy. I only wonder whether : : dbaseII and cpm will still exist when it's my : : grand childrens turn to keep the thing up to : : date!! They'll probobly be updating it on their : : wristwatch or god knows what else. : : Well I wrote this thing while living in Paris : : in 1983 and Bill Graham who organised the first :  : French Osborne user's group (Osborne was the : : first portable computer) suggested I toss it, : : like a note in a bottle, into the seas and : : rivers of public domaine software. Since you're : : reading this now, it must have washed up on the : : distant shore of your computer. If you like it, : : hate it, use it or whatever I'd like to know so : : please send me a note in a bottle: SAM WASHBURN : : 3 Temple Place, Andover, Ma. 01810 U.S.A. : : TYPE ANY COMMAND #COMMAND : this thing while living in Paris : : in 1983 and Bill Graham who organised the first :  *** File B:GHOST.ZPR *** +-------------------------------------------------+ : -- MESSAGE FROM THE AUTHOR'S GHOST -- : : I wrote this program because I'm interested in : : genealogies and computers. Being on a computer : : should make it easier to pass on to following : : generations because updating and distributing : : it becomes so easy. I only wonder whether : : dbaseII and cpm will still exist when it's my : : grand childrens turn to keep the thing up to : : date!! They'll probobly be updating it on their : : wristwatch or god knows what else. : : Well I wrote this thing while living in Paris : : in 1983 and Bill Graham who organised the first : : French Osborne user's group (Osborne was the : : first portable computer) suggested I toss it, : : like a note in a bottle, into the seas and : : rivers of public domaine software. Since you're : : reading this now, it must have washed up on the : : distant shore of your computer. If you like it, : : hate it, use it or whatever I'd like to know so : : please send me a note in a bottle: SAM WASHBURN : : 3 Temple Place, Andover, Ma. 01810 U.S.A. : : TYPE ANY COMMAND #COMMAND : to pass on to following : : generations because updating and distributing : : it becomes so easy. I only wonder whether : : dbaseII and cpm will still exist when it's my : : grand childrens turn to keep the thing up to : : date!! They'll probobly be updating it on their : : wristwatch or god knows what else. : : Well I wrote this thing while living in Paris : : in 1983 and Bill Graham who organised the first : : French Osborne user's group (Osborne was the : : first portable computer) suggested I toss it, : : like a note in a bottle, into the seas and : : rivers of public domaine software. Since you're : : reading this now, it must have washed up on the : : distant shore of your computer. If you like it, : : hate it, use i * HELPEXP.FMT @ 0, 0 SAY "+-------------------------------------------------" @ 0,50 SAY "+" @ 1, 0 SAY ": E X P L O R E T H E G E N E A L O G Y." @ 1,50 SAY ":" @ 2, 0 SAY ": Valid responses to the ENTER COMMAND: :" @ 2,50 SAY ":" @ 3, 0 SAY ": -- TO GET STARTED ---" @ 3,50 SAY ":" @ 4, 0 SAY ": N to find someone via his (N)ame." @ 4,50 SAY ":" @ 5, 0 SAY ": R to find someone via his (R)eference No." @ 5,50 SAY ": :" @ 6, 0 SAY ": -- AFTER YOU HAVE A FAMILY DISPLAYED --" @ 6,50 SAY ":" @ 7, 0 SAY ": G (G)o display family of the * person." @ 7,50 SAY ":" @ 8, 0 SAY ": B display the (B)iography of the * person" @ 8,50 SAY ":" @ 9, 0 SAY ": F display the family of the (F)ather," @ 9,50 SAY ":" @ 10, 0 SAY ": M or (M)other," @ 10,50 SAY ":" @ 11, 0 SAY ": S or first (S)pouse," @ 11,50 SAY ":" @ 12, 0 SAY ": C or first (C)hild." @ 12,50 SAY ":" @ 13, 0 SAY ": Q to (Q)uit." @ 13,50 SAY ":" @ 14, 0 SAY ": -- TO MOVE THE * TO A NEW PERSON ON SCREEN --" @ 14,50 SAY ":" @ 15, 0 SAY ": 8 these keys move the * in the" @ 15,50 SAY ":" @ 16, 0 SAY ": 4 6 direction indicated." @ 16,50 SAY ":" @ 17, 0 SAY ": 2" @ 17,50 SAY ":" @ 18, 0 SAY ": -- YOU MAY NOW TYPE :" @ 18,50 SAY ":" @ 19, 0 SAY ": -> one of the above commandes; OR" @ 19,50 SAY ":" @ 20, 0 SAY ": -> ? to display next help screen; OR" @ 20,50 SAY ":" @ 21, 0 SAY ": -> RETURN key to go back to your family." @ 21,50 SAY ":" @ 22, 0 SAY ": ENTER YOUR COMMAND" @ 22,22 GET COMMAND @ 22,50 SAY ":" B display the (B)iography of the * person" @ 8,50 SAY ":" @ 9, 0 SAY ": F display the family of the (F)ather," @ 9,50 SAY ":" @ 10, 0 SAY ": M or (M)other," @ 10,50 SAY ":" @ 11, 0 SAY ": S or first (S)pouse," @ 11,50 SAY ":" @ 12, 0 SAY ": C or first (C)hild." @ 12,50 SAY ":" @ 13, 0 SAY ": Q to (Q)uit." @ 13,50 SAY ":" @ 14, 0 SAY +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : Valid responses to the ENTER COMMAND: : : : -- TO GET STARTED --- : : N to find someone via his (N)ame. : : R to find someone via his (R)eference No. : : : -- AFTER YOU HAVE A FAMILY DISPLAYED -- : : G (G)o display family of the * person. : : B display the (B)iography of the * person : : F display the family of the (F)ather, : : M or (M)other, : : S or first (S)pouse, : : C or first (C)hild. :  : Q to (Q)uit. : : -- TO MOVE THE * TO A NEW PERSON ON SCREEN -- : : 8 these keys move the * in the : : 4 6 direction indicated. : : 2 : : -- YOU MAY NOW TYPE : : : -> one of the above commandes; OR : : -> ? to display next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : st (S)pouse, : : C or first (C)hild. :  *** File B:HELPEXP.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : Valid responses to the ENTER COMMAND: : : : -- TO GET STARTED --- : : N to find someone via his (N)ame. : : R to find someone via his (R)eference No. : : : -- AFTER YOU HAVE A FAMILY DISPLAYED -- : : G (G)o display family of the * person. : : B display the (B)iography of the * person : : F display the family of the (F)ather, : : M or (M)other, : : S or first (S)pouse, : : C or first (C)hild. : : Q to (Q)uit. : : -- TO MOVE THE * TO A NEW PERSON ON SCREEN -- : : 8 these keys move the * in the : : 4 6 direction indicated. : : 2 : : -- YOU MAY NOW TYPE : : : -> one of the above commandes; OR : : -> ? to display next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND :  * HELPEXP2.FMT @ 0, 0 SAY "+-------------------------------------------------" @ 0,50 SAY "+" @ 1, 0 SAY ": E X P L O R E T H E G E N E A L O G Y." @ 1,50 SAY ":" @ 2, 0 SAY ": HELP SCREEN No 2." @ 2,50 SAY ":" @ 3, 0 SAY ": -- COMMANDS TO MODIFY YOUR GENEALOGY --" @ 3,50 SAY ":" @ 4, 0 SAY ": E to (E)dit the person at screen center." @ 4,50 SAY ":" @ 5, 0 SAY ": A to (A)dd new people." @ 5,50 SAY ":" @ 6, 0 SAY ": I to rebuild the (I)ndexes after a problm" @ 6,50 SAY ":" @ 7, 0 SAY ": L to print a List of people in the genlgy" @ 7,50 SAY ":" @ 8, 0 SAY ": Z to communicate with the author's ghost!" @ 8,50 SAY ":" @ 9, 0 SAY ": NOTE: It is better to execute these functions" @ 9,50 SAY ":" @ 10, 0 SAY ": via the above commands while you are in the" @ 10,50 SAY ":" @ 11, 0 SAY ": genealogy program than to do them directly" @ 11,50 SAY ":" @ 12, 0 SAY ": from the dbaseII dot (.) prompt." @ 12,50 SAY ":" @ 13, 0 SAY ": This is because when you are in the" @ 13,50 SAY ":" @ 14, 0 SAY ": genealogy program, the four indexes are" @ 14,50 SAY ":" @ 15, 0 SAY ": always correctly SET and thus you won't" @ 15,50 SAY ":" @ 16, 0 SAY ": foul them up." @ 16,50 SAY ":" @ 17, 0 SAY ":" @ 17,50 SAY ":" @ 18, 0 SAY ": -- YOU MAY NOW TYPE :" @ 18,50 SAY ":" @ 19, 0 SAY ": -> one of the above commands; OR" @ 19,50 SAY ":" @ 20, 0 SAY ": -> ? to display the next help screen; OR" @ 20,50 SAY ":" @ 21, 0 SAY ": -> RETURN key to go back to your family." @ 21,50 SAY ":" @ 22, 0 SAY ": ENTER YOUR COMMAND" @ 22,25 GET COMMAND @ 22,50 SAY ":"" @ 9,50 SAY ":" @ 10, 0 SAY ": via the above commands while you are in the" @ 10,50 SAY ":" @ 11, 0 SAY ": genealogy program than to do them directly" @ 11,50 SAY ":" @ 12, 0 SAY ": from the dbaseII dot (.) prompt." @ 12,50 SAY ":" @ 13,+-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 2. : : -- COMMANDS TO MODIFY YOUR GENEALOGY -- : : E to (E)dit the person at screen center. : : A to (A)dd new people. : : I to rebuild the (I)ndexes after a problm : : L to print a List of people in the genlgy : : Z to communicate with the author's ghost! : : NOTE: It is better to execute these functions : : via the above commands while you are in the : : genealogy program than to do them directly : : from the dbaseII dot (.) prompt. :  : This is because when you are in the : : genealogy program, the four indexes are : : always correctly SET and thus you won't : : foul them up. : : : : -- YOU MAY NOW TYPE : : : -> one of the above commands; OR : : -> ? to display the next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : rogram than to do them directly : : from the dbaseII dot (.) prompt. :  *** File B:HELPEXP2.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 2. : : -- COMMANDS TO MODIFY YOUR GENEALOGY -- : : E to (E)dit the person at screen center. : : A to (A)dd new people. : : I to rebuild the (I)ndexes after a problm : : L to print a List of people in the genlgy : : Z to communicate with the author's ghost! : : NOTE: It is better to execute these functions : : via the above commands while you are in the : : genealogy program than to do them directly : : from the dbaseII dot (.) prompt. : : This is because when you are in the : : genealogy program, the four indexes are : : always correctly SET and thus you won't : : foul them up. : : : : -- YOU MAY NOW TYPE : : : -> one of the above commands; OR : : -> ? to display the next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND :  Y. : : HELP SCREEN No 2. : : -- COMMANDS TO MODIFY YOUR GENEALOGY -- : : E to (E)dit the person at screen center. : : A to (A)dd new people. : : I to rebuild the (I)ndexes after a problm : : L to print a List of people in the genlgy : : Z to communicate with the author's ghost! : : NOTE: It is better to execute these functions : : via the above commands while you are in the : : genealogy program than to do them directly : : from the dbaseII dot (.) prompt. : : This is because when you are in the : : genealogy program, the four indexes are : : always correctly SET and thus you won't : : foul them up. : : : : -- YOU MAY NOW TYPE : : : -> one of the above commands; OR : : -> ? to display the next help screen; OR : : -> RETURN key to go back to your family. : : ENTE * HELPEXP3.FMT @ 0, 0 SAY "+-------------------------------------------------" @ 0,50 SAY "+" @ 1, 0 SAY ": E X P L O R E T H E G E N E A L O G Y." @ 1,50 SAY ":" @ 2, 0 SAY ": HELP SCREEN No 3." @ 2,50 SAY ":" @ 3, 0 SAY ": -- HINTS ABOUT LOADING YOUR GENEALOGY (part 1)" @ 3,50 SAY ":" @ 4, 0 SAY ":" @ 4,50 SAY ":" @ 5, 0 SAY ": Each person you add must have a unique" @ 5,50 SAY ":" @ 6, 0 SAY ": REF:NO. This allows the system to uniquely" @ 6,50 SAY ":" @ 7, 0 SAY ": identify each person. When you relate a person" @ 7,50 SAY ":" @ 8, 0 SAY ": to others in the genealogy, you use his REF:NO" @ 8,50 SAY ":" @ 9, 0 SAY ": to do it." @ 9,50 SAY ":" @ 10, 0 SAY ": For example if person 1000 is the father of" @ 10,50 SAY ":" @ 11, 0 SAY ": person 1005, you must put 1000 in the field" @ 11,50 SAY ":" @ 12, 0 SAY ": FATHER:REF of person 1005's record." @ 12,50 SAY ":" @ 13, 0 SAY ": To help you keep track of the reference" @ 13,50 SAY ":" @ 14, 0 SAY ": numbers of the people in your geneology the L" @ 14,50 SAY ":" @ 15, 0 SAY ": command will print a list of all the people and" @ 15,50 SAY ":" @ 16, 0 SAY ": their reference numbers." @ 16,50 SAY ":" @ 17, 0 SAY ":" @ 17,50 SAY ":" @ 18, 0 SAY ": -- YOU MAY NOW TYPE :" @ 18,50 SAY ":" @ 19, 0 SAY ": -> one of the above commands; OR" @ 19,50 SAY ":" @ 20, 0 SAY ": -> ? to display the next help screen; OR" @ 20,50 SAY ":" @ 21, 0 SAY ": -> RETURN key to go back to your family." @ 21,50 SAY ":" @ 22, 0 SAY ": ENTER YOUR COMMAND" @ 22,25 GET COMMAND @ 22,50 SAY ":"e his REF:NO" @ 8,50 SAY ":" @ 9, 0 SAY ": to do it." @ 9,50 SAY ":" @ 10, 0 SAY ": For example if person 1000 is the father of" @ 10,50 SAY ":" @ 11, 0 SAY ": person 1005, you must put 1000 in the field" @ 11,50 SAY ":" @ 12, 0 SAY ": FATHER:REF of person 1005's record." @ 12,50 SAY ":" @ 13, 0 SAY ": To help you keep track of the reference" @ 13,50 SAY ":" @+-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 3. : : -- HINTS ABOUT LOADING YOUR GENEALOGY (part 1) : : : : Each person you add must have a unique : : REF:NO. This allows the system to uniquely : : identify each person. When you relate a person : : to others in the genealogy, you use his REF:NO : : to do it. : : For example if person 1000 is the father of : : person 1005, you must put 1000 in the field : : FATHER:REF of person 1005's record. :  : To help you keep track of the reference : : numbers of the people in your geneology the L : : command will print a list of all the people and : : their reference numbers. : : : : -- YOU MAY NOW TYPE : : : -> one of the above commands; OR : : -> ? to display the next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : ou must put 1000 in the field : : FATHER:REF of person 1005's record. :  *** File B:HELPEXP3.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 3. : : -- HINTS ABOUT LOADING YOUR GENEALOGY (part 1) : : : : Each person you add must have a unique : : REF:NO. This allows the system to uniquely : : identify each person. When you relate a person : : to others in the genealogy, you use his REF:NO : : to do it. : : For example if person 1000 is the father of : : person 1005, you must put 1000 in the field : : FATHER:REF of person 1005's record. : : To help you keep track of the reference : : numbers of the people in your geneology the L : : command will print a list of all the people and : : their reference numbers. : : : : -- YOU MAY NOW TYPE : : : -> one of the above commands; OR : : -> ? to display the next help screen; OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND :  * HELPEXP4.FMT @ 0, 0 SAY "+-------------------------------------------------" @ 0,50 SAY "+" @ 1, 0 SAY ": E X P L O R E T H E G E N E A L O G Y." @ 1,50 SAY ":" @ 2, 0 SAY ": HELP SCREEN No 4." @ 2,50 SAY ":" @ 3, 0 SAY ": -- HINTS ABOUT LOADING YOUR GENEALOGY (part 2)" @ 3,50 SAY ":" @ 4, 0 SAY ":" @ 4,50 SAY ":" @ 5, 0 SAY ": Since a person's REF:NO is used to relate" @ 5,50 SAY ":" @ 6, 0 SAY ": other people to him, there are a few" @ 6,50 SAY ":" @ 7, 0 SAY ": important rules to follow:" @ 7,50 SAY ":" @ 8, 0 SAY ": 1. Make sure each person's REF:NO is unique." @ 8,50 SAY ":" @ 9, 0 SAY ":" @ 9,50 SAY ":" @ 10, 0 SAY ": 2. Never change a person's REF:NO." @ 10,50 SAY ":" @ 11, 0 SAY ":" @ 11,50 SAY ":" @ 12, 0 SAY ": 3. When you add a story for a person, be" @ 12,50 SAY ":" @ 13, 0 SAY ": sure to put his REF:NO in the first field" @ 13,50 SAY ":" @ 14, 0 SAY ": of each story line." @ 14,50 SAY ":" @ 15, 0 SAY ":" @ 15,50 SAY ":" @ 16, 0 SAY ": 4. The format of all date fields is YYYYMMDD" @ 16,50 SAY ":" @ 17, 0 SAY ":" @ 17,50 SAY ":" @ 18, 0 SAY ": -- YOU MAY NOW TYPE :" @ 18,50 SAY ":" @ 19, 0 SAY ": -> any valid command; OR" @ 19,50 SAY ":" @ 20, 0 SAY ": -> H to display the first help screen OR" @ 20,50 SAY ":" @ 21, 0 SAY ": -> RETURN key to go back to your family." @ 21,50 SAY ":" @ 22, 0 SAY ": ENTER YOUR COMMAND" @ 22,25 GET COMMAND @ 22,50 SAY ":" 0 SAY ": important rules to follow:" @ 7,50 SAY ":" @ 8, 0 SAY ": 1. Make sure each person's REF:NO is unique." @ 8,50 SAY ":" @ 9, 0 SAY ":" @ 9,50 SAY ":" @ 10, 0 SAY ": 2. Never change a person's REF:NO." @ 10,50 SAY ":" @ 11, 0 SAY ":" @ 11,50 SAY ":" @ 12, 0 SAY ": 3. When you add a story for a person, be" @ 12,50 SAY ":" @ 13, 0 SAY ": sure to put his REF:NO in the first field" @ 13,50 SAY ":" @ 14, 0 SAY ": of each story line." @ 14,50 SAY ":" @ 15, 0 SAY ":+-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 4. : : -- HINTS ABOUT LOADING YOUR GENEALOGY (part 2) : : : : Since a person's REF:NO is used to relate : : other people to him, there are a few : : important rules to follow: : : 1. Make sure each person's REF:NO is unique. : : : : 2. Never change a person's REF:NO. : : : : 3. When you add a story for a person, be :  : sure to put his REF:NO in the first field : : of each story line. : : : : 4. The format of all date fields is YYYYMMDD : : : : -- YOU MAY NOW TYPE : : : -> any valid command; OR : : -> H to display the first help screen OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND :  : : 3. When you add a story for a person, be :  *** File B:HELPEXP4.ZPR *** +-------------------------------------------------+ : E X P L O R E T H E G E N E A L O G Y. : : HELP SCREEN No 4. : : -- HINTS ABOUT LOADING YOUR GENEALOGY (part 2) : : : : Since a person's REF:NO is used to relate : : other people to him, there are a few : : important rules to follow: : : 1. Make sure each person's REF:NO is unique. : : : : 2. Never change a person's REF:NO. : : : : 3. When you add a story for a person, be : : sure to put his REF:NO in the first field : : of each story line. : : : : 4. The format of all date fields is YYYYMMDD : : : : -- YOU MAY NOW TYPE : : : -> any valid command; OR : : -> H to display the first help screen OR : : -> RETURN key to go back to your family. : : ENTER YOUR COMMAND #COMMAND : HELPEXP4FMT TUHELPEXP4ZIPVWHELPEXP4$$$ * LIST.FMT @ 1, 7 SAY "L I S T T H E G E N E O L O G Y" @ 3, 0 SAY "Please turn the printer on and warn your wife that" @ 4, 0 SAY "you'll be making a lot of noise for a while !!" @ 6, 0 SAY "These listings can be helpful when you're adding" @ 7, 0 SAY "new people to the geneology because you'll need to" @ 8, 0 SAY "know the reference numbers of their parents, and" @ 9, 0 SAY "spouses." @ 12, 5 SAY "The list can be sorted by :" @ 14,15 SAY "(N)ame" @ 16,17 SAY "or" @ 18,15 SAY "(R)eference number." @ 20, 0 SAY "ENTER YOUR CHOICE --> N,R, or x to exit ?" @ 20,42 GET commandHELPEXP ZIPFGHELPEXP ZPRHHELPEXP2FMTIJHELPEXP2ZIPKLHELPEXP2ZPR MNHELPEXP3FMT OPHELPEXP3ZIPQRHELPEXP3ZPRSHELPEXP4FMT TUHELPEXP4ZIPVWHELPEXP4ZPRXLIST $$$ L I S T T H E G E N E O L O G Y Please turn the printer on and warn your wife that you'll be making a lot of noise for a while !! These listings can be helpful when you're adding new people to the geneology because you'll need to know the reference numbers of their parents, and spouses. The list can be sorted by :  (N)ame or (R)eference number. ENTER YOUR CHOICE --> N,R, or x to exit ? #command  The list can be sorted by :  *** File B:LIST.ZPR *** L I S T T H E G E N E O L O G Y Please turn the printer on and warn your wife that you'll be making a lot of noise for a while !! These listings can be helpful when you're adding new people to the geneology because you'll need to know the reference numbers of their parents, and spouses. The list can be sorted by : (N)ame or (R)eference number. ENTER YOUR CHOICE --> N,R, or x to exit ? #command  G E N E A L O G Y P R O G R A M D O C U M E N T A T I O N ================================================================ This program was downloaded from CP/M SIG on CompuServe by David Whorf, FOG #251 and submitted to the FOG Files 6/2/85. This represents a considerable `find' and I hope you enjoy it as much as I have. Thanks to its crerator San Washburn! This program is from SIG/M volume 227 and is a library file stored in binar format yo wil nee th USQ.CO utilit t unsqueez th DO fil onc yo hav use librar utilit lik LU.CO t extrac the member files. You will need dBASEII to run the program GENLGY.LBR 75k actual size of the library file Library file members for : GENLGY.LBR, file size is in 128 byte sectors EXPLORE .CMD 47s | EXPLORE1.CMD 41s | FATHER .NDX 8s | GEN .DQC 113s GHOST .FMT 15s | GHOST .ZIP 15s | GHOST .ZPR 10s | HELPEXP .FMT 13s HELPEXP .ZIP 15s | HELPEXP .ZPR 8s | HELPEXP2.FMT 14s | HELPEXP2.ZIP 15s HELPEXP2.ZPR 9s | HELPEXP3.FMT 13s | HELPEXP3.ZIP 15s | HELPEXP3.ZPR 8s HELPEXP4.FMT 12s | HELPEXP4.ZIP 15s | HELPEXP4.ZPR 7s | LIST .FMT 5s LIST .ZIP 14s | LIST .ZPR 4s | MOTHER .NDX 8s | NAME .NDX 20s NEWINDEX.CMD 8s | NS .CMD 26s | PERSONS .DBF 28s | REF .NDX 8s STORIES .DBF 32s | STORY .CMD 16s | STORYREF.NDX 8s | TESTSW .CMD 16s There are 32 Member Files in Library Thi GENEALOG SYSTE wa obtaine fro th OU (Pari Franc Osborn User Group an writte b Sa Washburn a America i Paris Th DOà fil i i rathe extensiv an ver wel written I i extremel eas fo th novic t use Pu dBAS i driv A pu thi dis i Driv B: Afte yo ente dBAS the se defaul t B an typ th comman D EXPLORE Yo wil no ge scree enter an the ente 1100 Yo shoul no se th famil tre o Willia th Conqueror Th genealogica dat bas progra "EXPLORE allow yo t maintai dat bas o peopl wh ar relate t eac other Yo ca ad ne peopl t th databas an the lin the togethe b indicatin th direc relationship betwee th people Ther ar command i th EXPLORŠ progra tha allo yo t ad an edi th peopl i you genealog an thei biographies Thes command us certai o th dBAS I function (edit browse append s yo wil nee t kno th contro key tha ar use i thes command ^Y,^Q,^W etc Otherwis th progra i designe fo novic compute user Ther ar fou help-screens Whe yo firs star u i i usefu t pag throug th help-screen a the contai informatio tha i wort knowin righ away. [end of file]  se defaul t B an typ th comman D EXPLORE Yo wil no ge scree enter an the ente 1100 Yo shoul no se th famil tre o Willia th Conqueror Th genealogica dat bas progra "EXPLORE allow yo t maintai1 '************************************************************************** 2 '* ADDED A ROUTINE TO ENTER DATA * 3 '* MARCH 26, 1983 * 4 '* PAT KING - KATY, TX * 5 '************************************************************************** 10 REM --FAMILY TREE PROGRAM-- JOHN J. ARMSTRONG - MOBILE, AL 20 REM COMPUTER SYSTEM: CROMEMCO Z-2 64K RAM DISK PRINTER 21 DEFINT A-Z:CLEAR 8000:B1$=" ":B2$=" " 22 INPUT "WHICH FAMILY TREE (3 CHARACTERS)";TR$ 23 OPEN "R",#1,"FAMILY ."+TR$ 24 OPEN "R",#2,"FAMILY2 ."+TR$ 40 DEF FN D$(B$)=LEFT$(B$,2)+"-"+MID$(B$,3,2)+"-"+MID$(B$,5) 50 DIM NL$(LOF(1)),NF$(LOF(1)),NM$(LOF(1)),C$(13),C(13),CI(28) 55 DIM C0(13),C1(13),C2(13),C3(13),C4(13),C5(13),C6(13),C7(13),C8(13),C9(13),CA(13),CB(13) 56 PRINT LOF(1),LOF(2) 60 FOR X=1 TO LOF(1) 70 FIELD #1,126 AS DU$:FIELD #2,56 AS D$,16 AS NL$,24 AS NF$,16 AS NM$ 80 GET #1,X:Z=X:GET #2,Z 90 Y=INSTR(NL$,B1$):GOSUB 3350:NL$(X)=LEFT$(NL$,Y):Y=INSTR(NF$,B2$):GOSUB 3350:NF$(X)=LEFT$(NF$,Y) 100 Y=INSTR(NM$,B1$):GOSUB 3350:NM$(X)=LEFT$(NM$,Y) 110 PRINT X;" ";NF$(X);" ";NL$(X);" ";NM$(X) 120 NEXT X 130 H$(1)="EDIT":H$(2)="DISPLAY ON VIDEO":H$(3)="PRINT ON PRINTER" 140 H$(4)="PRINT FAMILY TREE":H$(5)="EXIT PROGRAM":H$(6)="ENTER DATA" 150 H1$(1)="LAST NAME AT BIRTH":H1$(2)="FIRST OR MIDDLE NAME OR INITIAL" 160 H1$(3)="MARRIED LAST NAME":H1$(4)="ALL ENTRIES" 170 H1$(5)="LIVING IN YEAR...":H1$(6)="ALL MENTIONS OF PERSON" 180 C1=0:C2=0:C3=0:PRINT CHR$(12):FOR X=1 TO 6:PRINT "(";X;")";H$(X):NEXT X 190 INPUT "CHOICE";C1:IF C1<1 OR C1>6 THEN 190 195 IF C1=6 THEN 8000 200 IF C1=5 THEN GOTO 3400 ELSE IF C1=4 OR C1=1 THEN 220 210 GOSUB 3300 220 PRINT H$(C1);" BY:" 230 FOR X=1 TO 6:PRINT "(";X;")";H1$(X): NEXT X 240 INPUT "CHOICE";C3: IF C3<1 OR C3>6 THEN 240 ELSE 250 250 ON C3 GOSUB 270, 350, 430, 510, 580, 680: GOTO 180 260 REM 270 REM SUBROUTINE--LAST NAME AT BIRTH 280 REM 290 PRINT CHR$(12):L=0:PRINT H$(C1):PRINT TAB(5) H1$(1):INPUT NL$:T$=H1$(1)+": '"+NL$+"'" 300 IF C1=3 OR C1=4 THEN GOSUB 3340 ELSE PRINT CHR$(12): PRINT T$ 310 FOR X1=1 TO LOF(1) 311 IF NL$=NL$(X1) THEN X=X1 312 GOSUB 1970 313 GOSUB 2020 314 ELSE 330 320 ON C1 GOSUB 830,1440,1680,2110 321 IF L>13 THEN L=0 322 INPUT "CONTINUE";YN$ 323 PRINT T$ 330 IF X10 THEN X=X1:GOSUB 1970:GOSUB 2020 ELSE 410 400 ON C1 GOSUB 830,1440,1680,2110: IF L>13 THEN L=0: INPUT "CONTINUE";YN$: PRINT T$ 410 IF X113 THEN L=0: INPUT "CONTINUE";YN$: PRINT T$ 490 IF X113 THEN L=0: INPUT "CONTINUE";YN$: PRINT T$ 560 IF X11500 AND (VAL(MID$(DD$,5,4))>1500 OR LEFT$(DD$,6)="LIVING") THEN 640 ELSE 660 640 IF YD$>=MID$(BD$,5,4) AND (YD$<=MID$(DD$,5,4) OR LEFT$(DD$,6)="LIVING") THEN 650 ELSE 660 650 ON C1 GOSUB 830, 1440, 1680, 2110:IF L>13 THEN L=0: INPUT "CONTINUE";YN$: PRINT T$ 660 IF X10 THEN GOSUB 740 730 IF X1X5 THEN 760 ELSE 770 760 T$="'"+NF$(X1)+" "+NL$(X1)+" "+NM$(X1)+"' IS LISTED UNDER:": IF C1=3 OR C1=4 THEN GOSUB 3340: X5=X1 ELSE PRINT T$:X5=X1 770 GOSUB 1970: GOSUB 2020 780 IF X1=SP(1) OR X1=SP(2) OR X1=C(1) OR X1=C(2) OR X1=C(3) OR X1=C(4) OR X1=C(5) OR X1=C(6) OR X1=C(7) OR X1=C(8) OR X1=C(9) OR X1=C(10) OR X1=C(11) OR X1=C(12) OR X1=C(13) OR X1=M OR X1=F THEN 790 ELSE 800 790 ON C1 GOSUB 830, 1440, 1680, 2110:IF L>13 THEN L=0: PRINT T$ 800 IF X228 THEN PRINT CH; " IS AN INCORRECT NUMBER OF CHANGES";:GOTO 1010 1030 GOSUB 1370:FOR X3=1 TO CH 1040 INPUT "CHANGE ITEM # ";CI(X3):IF CI(X3)<1 OR CI(X3)>28 THEN 1045 ELSE 1050 1045 PRINT CI(X3);" IS AN INVALID ITEM # ";:GOSUB 1370:GOTO 1040 1050 GOSUB 1370:NEXT X3:GOSUB 1370 1060 FOR X3=1 TO CH 1070 ON CI(X3) GOSUB 1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360 1080 NEXT X3:RETURN 1090 GOSUB 1970:INPUT "BIRTH DATE (MMDDYYYY)";A$:LSET BD$=A$:PUT #1,X:GOTO 1370 1100 GOSUB 1970:LINE INPUT "BIRTH PLACE ";A$:LSET PB$=A$:PUT #1,X:GOTO 1370 1110 GOSUB 1970:INPUT "DATE OF MARRIAGE (MMDDYYYY)";A$:LSET MD$(1)=A$:PUT #1,X:GOTO 1370 1120 GOSUB 1970:PRINT "SPOUSE ID NUMBER ";:GOSUB 1380:LSET S1$=MKI$(A):PUT #1,X:GOTO 1370 1130 GOSUB 1970:LINE INPUT "MARRIED AT ";A$:LSET PM$(1)=A$:PUT #1,X:GOTO 1370 1140 GOSUB 1970:INPUT "MARITAL STATUS ";A$:LSET MS$(1)=A$:PUT #1,X:GOTO 1370 1150 GOSUB 1970:INPUT "DATE OF SECOND MARRIAGE (MMDDYYYY) ";A$:LSET MD$(2)=A$:PUT #1,X:GOTO 1370 1160 GOSUB 1970:PRINT "SECOND SPOUSE ID NUMBER ":GOSUB 1380:LSET S2$=MKI$(A):PUT #1,X:GOTO 1370 1170 GOSUB 1970:LINE INPUT "REMARRIED AT ";A$:LSET PM$(2)=A$:PUT #1,X:GOTO 1370 1180 GOSUB 1970:INPUT "MARITAL STATUS ";A$:LSET MS$(2)=A$:PUT #1,X:GOTO 1370 1190 GOSUB 1970:INPUT "'LIVING' OR DATE OF DEATH (MMDDYYYY)";A$:LSET DD$=A$:PUT #1,X:GOTO 1370 1200 GOSUB 2020:LINE INPUT "PLACE OF DEATH OR 'LIVING' ";A$:LSET PD$=A$:PUT #2,Z:GOTO 1370 1210 GOSUB 2020:INPUT "NUMBER OF CHILDREN ";CN:LSET CN$=MKI$(CN):PUT #2,Z:GOTO 1370 1220 GOSUB 2020:PRINT "CHILD #1 ID NUMBER ";:GOSUB 1380:LSET C$(1)=MKI$(A):PUT #2,Z:GOTO 1370 1230 GOSUB 2020:PRINT "CHILD #2 ID NUMBER ";:GOSUB 1380:LSET C$(2)=MKI$(A):PUT #2,Z:GOTO 1370 1240 GOSUB 2020:PRINT "CHILD #3 ID NUMBER ";:GOSUB 1380:LSET C$(3)=MKI$(A):PUT #2,Z:GOTO 1370 1250 GOSUB 2020:PRINT "CHILD #4 ID NUMBER ";:GOSUB 1380:LSET C$(4)=MKI$(A):PUT #2,Z:GOTO 1370 1260 GOSUB 2020:PRINT "CHILD #5 ID NUMBER ";:GOSUB 1380:LSET C$(5)=MKI$(A):PUT #2,Z:GOTO 1370 1270 GOSUB 2020:PRINT "CHILD #6 ID NUMBER ";:GOSUB 1380:LSET C$(6)=MKI$(A):PUT #2,Z:GOTO 1370 1280 GOSUB 2020:PRINT "CHILD #7 ID NUMBER ";:GOSUB 1380:LSET C$(7)=MKI$(A):PUT #2,Z:GOTO 1370 1290 GOSUB 2020:PRINT "CHILD #8 ID NUMBER ";:GOSUB 1380:LSET C$(8)=MKI$(A):PUT #2,Z:GOTO 1370 1300 GOSUB 2020:PRINT "CHILD #9 ID NUMBER ";:GOSUB 1380:LSET C$(9)=MKI$(A):PUT #2,Z:GOTO 1370 1310 GOSUB 2020:PRINT "CHILD #10 ID NUMBER ";:GOSUB 1380:LSET C$(10)=MKI$(A):PUT #2,Z:GOTO 1370 1320 GOSUB 2020:PRINT "CHILD #11 ID NUMBER ";:GOSUB 1380:LSET C$(11)=MKI$(A):PUT #2,Z:GOTO 1370 1330 GOSUB 2020:PRINT "CHILD #12 ID NUMBER ";:GOSUB 1380:LSET C$(12)=MKI$(A):PUT #2,Z:GOTO 1370 1340 GOSUB 2020:PRINT "CHILD #13 ID NUMBER ";:GOSUB 1380:LSET C$(13)=MKI$(A):PUT #2,Z:GOTO 1370 1350 GOSUB 2020:PRINT "MOTHER'S ID NUMBER ";:GOSUB 1380:LSET M$=MKI$(A):PUT #2,Z:GOTO 1370 1360 GOSUB 2020:PRINT "FATHER'S ID NUMBER ";:GOSUB 1380:LSET F$=MKI$(A):PUT #2,Z:GOTO 1370 1370 A=0:A$="":PRINT CHR$(20);CHR$(21);CHR$(0);:PRINT CHR$(30);:RETURN 1380 Y=POS(0) 1390 INPUT A 1400 IF A>=0 AND A<=LOF(1) THEN RETURN 1410 PRINT A;" IS AN INVALID PERSON ID # "; 1420 PRINT CHR$(20);CHR$(21);CHR$(0);:PRINT CHR$(30);:GOTO 1070 1430 REM 1440 REM SUBROUTINE---OPTION TO DISPLAY ON VIDEO 1450 REM 1455 GOSUB 3380 1460 ON C2 GOSUB 1480,1520:RETURN 1470 REM 1480 REM SUBROUTINE--DISPLAY NAMES ONLY 1490 REM 1500 PRINT TAB(5) X;" ";NF$(X);" "NL$(X);" ";NM$(X):L=L+1:RETURN 1510 REM 1520 REM SUBROUTINE--DISPLAY WHOLE ENTRY 1530 REM 1540 PRINT X;" ";NF$(X);" ";NL$(X);" ";NM$(X):GOSUB 3300 1550 PRINT "B.: ";DATE$;:PRINT TAB(36)" AT ";PB$:GOSUB 3310 1560 PRINT "M.: ";DATE$;:PRINT TAB(36)" TO ";NF$(SP(1));" ";NL$(SP(1)) 1570 PRINT "AT ";PM$(1);:PRINT TAB(36) MS$(1):GOSUB 3320 1580 PRINT "RM.: ";DATE$;:PRINT TAB(36)" TO ";NF$(SP(2));" ";NL$(SP(2)) 1590 PRINT "AT ";PM$(2);:PRINT TAB(36) MS$(2) 1600 IF LEFT$(DD$,6)="LIVING" THEN PRINT DD$;:PRINT TAB(36) " AT ";PD$:GOTO 1620 1610 GOSUB 3330:PRINT "D.: ";DATE$;:PRINT TAB(36)" AT ";PD$ 1620 PRINT "# CHILDREN:";CN; 1630 IF CN=0 THEN 1645 ELSE FOR X3=1 TO CN:X4=C(X3):U=X3 MOD 2:IF U=1 THEN L1=37 ELSE L1=0 1640 PRINT TAB(L1 * 1)MID$(STR$(X3),2);")";NF$(X4);" ";NL$(X4);:NEXT X3 1645 PRINT " " 1650 PRINT TAB(0)" MOTHER: ";NF$(M);" ";NL$(M);:PRINT TAB(36)" FATHER: ";NF$(F);" ";NL$(F) 1660 PRINT CHR$(20);CHR$(21);CHR$(0);:INPUT "CONTINUE";YN$:PRINT CHR$(12):RETURN 1670 REM 1680 REM SUBROUTINE--OPTION TO PRINT ON PRINTER 1690 REM 1695 GOSUB 3380 1700 ON C2 GOSUB 1720, 1760:RETURN 1710 REM 1720 REM SUBROUTINE--PRINT NAMES ONLY 1730 REM 1740 LPRINT X;" ";NF$(X);" ";NL$(X);" "NM$(X):RETURN 1750 REM 1760 REM SUBROUTINE--PRINT WHOLE ENTRY 1770 REM 1780 LPRINT X;" "NF$(X);" ";NL$(X);" ";NM$(X):TP$=PB$:GOSUB 3360:PB$=TP$ 1790 GOSUB 3300:LPRINT TAB(5)"B.: ";DATE$;" AT ";PB$ 1800 TP$=PM$(1):GOSUB 3360:PM$(1)=TP$ 1810 IF VAL(MD$(1))>0 OR LEFT$(MD$(1),1)="?" THEN GOSUB 3310:GOTO 1830 1820 LPRINT TAB(5) MS$(1):GOTO 1870 1830 LPRINT TAB(5)"M.: ";DATE$;" TO ";NF$(SP(1));" ";NL$(SP(1));" AT ";PM$(1);" ";MS$(1) 1840 TP$=PM$(2):GOSUB 3360:PM$(2)=TP$ 1850 IF VAL(MD$(2))>0 OR LEFT$(MD$(2),1)="?" THEN GOSUB 3320 ELSE 1870 1860 LPRINT TAB(5)"RM.: ";DATE$;" TO ";NF$(SP(2));" ";NL$(SP(2));" AT ";PM$(2);" ";MS$(2) 1870 TP$=PD$:GOSUB 3360:PD$=TP$ 1880 IF LEFT$(DD$,6)="LIVING" THEN LPRINT TAB(5)DD$;" AT ";PD$:GOTO 1900 1890 GOSUB 3330:LPRINT TAB(5)"D.: ";DATE$;" AT ";PD$ 1900 IF CN=0 THEN 1930 1910 LPRINT TAB(5)"# CHILDREN: ";CN 1920 FOR X3=1 TO CN:X4=C(X3):LPRINT TAB(10)X3;")";NF$(X4);" "NL$(X4):NEXT X3 1930 LPRINT TAB(5)"MOTHER: ";NF$(M);" ";NL$(M) 1940 LPRINT TAB(5)"FATHER: ";NF$(F);" "NL$(F) 1950 LPRINT " ":RETURN 1960 REM 1970 REM SUBROUTINE--FIELD DATA BUFFER 1 1980 REM 1990 FIELD #1,8 AS BD$,24 AS PB$,8 AS MD$(1),2 AS S1$,24 AS PM$(1),9 AS MS$(1),8 AS MD$(2),2 AS S2$,24 AS PM$(2),9 AS MS$(2),8 AS DD$ 2000 Z=X:GET #1,X 2010 SP(1)=CVI(S1$):SP(2)=CVI(S2$):RETURN 2020 FIELD #2,24 AS PD$,2 AS CN$,2 AS C$(1),2 AS C$(2),2 AS C$(3),2 AS C$(4),2 AS C$(5),2 AS C$(6),2 AS C$(7),2 AS C$(8),2 AS C$(9),2 AS C$(10),2 AS C$(11),2 AS C$(12),2 AS C$(13),2 AS M$,2 AS F$ 2030 GET #2,Z 2040 CN=CVI(CN$):C(1)=CVI(C$(1)):C(2)=CVI(C$(2)):C(3)=CVI(C$(3)):C(4)=CVI(C$(4)):C(5)=CVI(C$(5)):C(6)=CVI(C$(6)):C(7)=CVI(C$(7)):C(8)=CVI(C$(8)):C(9)=CVI(C$(9)):C(10)=CVI(C$(10)):C(11)=CVI(C$(11)):C(12)=CVI(C$(12)):C(13)=CVI(C$(13)):M=CVI(M$):F=CVI(F$) 2050 RETURN 2100 REM 2110 REM SUBROUTINE--START/END TREE 2120 REM 2130 PRINT CHR$(12):PRINT X;" ";NF$(X);" ";NL$(X);" ";NM$(X) 2140 PRINT "1) DESCENDENTS 2) PREDECESSORS":INPUT "CHOICE";DP:IF DP <>1 AND DP<>2 THEN 2140 2150 GOSUB 3380 2160 IF DP=1 THEN DP$="DESCENDENTS OF ":CP$="CHILDREN" ELSE DP$="PREDECESSORS OF ":CP$="PARENTS" 2170 LPRINT TAB(15) DP$;NF$(X);" ";NL$(X);" ";NM$(X):LPRINT " ":LPRINT " " 2180 FOR X7=60 TO 30 STEP -10 2190 FOR X8=X7 TO 60 STEP 10 2200 LPRINT TAB(X8)"GREAT"; 2210 NEXT X8:LPRINT" ":NEXT X7 2220 FOR X7=20 TO 60 STEP 10:LPRINT TAB(X7)"GRAND";:NEXT X7:LPRINT" " 2230 LPRINT TAB(0)"PERSON"; 2240 FOR X7=10 TO 60 STEP 10:LPRINT TAB(X7) CP$;:NEXT X7:LPRINT" " 2250 T=60:GOSUB 3080:LPRINT " " 2260 ON DP GOSUB 2320,3120 2270 INPUT "CONTINUE";YN$ 2280 RETURN 2310 REM 2320 REM SUBROUTINE--COLLECT INFO FOR DESCENDENTS TREE 2330 REM 2340 GOSUB 1970:GOSUB 2020:T=0:GOSUB 2830:S(1)=SP(1):S(2)=SP(2):OA=CN:FOR AA=1 TO OA:C0(AA)=C(AA):NEXT AA 2350 FOR S=1 TO 2:T=0:X=S(S): IF X>0 THEN GOSUB 2370 2360 NEXT S:RETURN 2370 GOSUB 1970:GOSUB 2020:T=T+5:GOSUB 2830:OB=CN:FOR AB=1 TO OB:C1(AB)=C(AB):NEXT AB:GOSUB 2380:RETURN 2380 IF OB=0 THEN T=0:RETURN 2390 FOR AA=1 TO OA: FOR AB=1 TO OB: IF C0(AA)=C1(AB) AND C0(AA)>0 THEN X=C0(AA):GOSUB 2410 2400 NEXT AB:NEXT AA:RETURN 2410 GOSUB 1970:GOSUB 2020:T=10:GOSUB 2830:S1(1)=SP(1):S1(2)=SP(2):OC=CN:FOR AC=1 TO OC:C2(AC)=C(AC):NEXT AC 2420 GOSUB 2430:RETURN 2430 FOR S1=1 TO 2:X=S1(S1):IF X>0 THEN GOSUB 2450 2440 NEXT S1:RETURN 2450 GOSUB 1970:GOSUB 2020:T=T+5:GOSUB 2830:OD=CN:FOR AD=1 TO OD:C3(AD)=C(AD):NEXT AD:GOSUB 2460:RETURN 2460 IF OD=0 THEN T=10:RETURN 2470 FOR AC=1 TO OC:FOR AD=1 TO OD:IF C2(AC)=C3(AD) AND C2(AC)>0 THEN X=C2(AC):GOSUB 2490 2480 NEXT AD:NEXT AC:T=10:RETURN 2490 GOSUB 1970:GOSUB 2020:T=20:GOSUB 2830:S2(1)=SP(1):S2(2)=SP(2):OE=CN:FOR AE=1 TO OE:C4(AE)=C(AE):NEXT AE 2500 GOSUB 2510:RETURN 2510 FOR S2=1 TO 2:X=S2(S2):IF X>0 THEN GOSUB 2530 2520 NEXT S2:RETURN 2530 GOSUB 1970:GOSUB 2020:T=T+5:GOSUB 2830:OF=CN:FOR AF=1 TO OF:C5(AF)=C(AF):NEXT AF:GOSUB 2540:RETURN 2540 IF OF=0 THEN T=20:RETURN 2550 FOR AE=1 TO OE:FOR AF=1 TO OF:IF C4(AE)=C5(AF) AND C4(AE)>0 THEN X=C4(AE):GOSUB 2570 2560 NEXT AF:NEXT AE:T=20:RETURN 2570 GOSUB 1970:GOSUB 2020:T=30:GOSUB 2830:S3(1)=SP(1):S3(2)=SP(2):OG=CN:FOR AG=1 TO OG:C6(AG)=C(AG):NEXT AG 2580 GOSUB 2590:RETURN 2590 FOR S3=1 TO 2:X=S3(S3):IF X>0 THEN GOSUB 2610 2600 NEXT S3:RETURN 2610 GOSUB 1970:GOSUB 2020:T=T+5:GOSUB 2830:OH=CN:FOR AH=1 TO OH:C7(AH)=C(AH):NEXT AH:GOSUB 2620:RETURN 2620 IF OH=0 THEN T=30:RETURN 2630 FOR AG=1 TO OG:FOR AH=1 TO OH:IF C6(AG)=C7(AH) AND C6(AG)>0 THEN X=C6(AG):GOSUB 2650 2640 NEXT AH:NEXT AG:T=30:RETURN 2650 GOSUB 1970:GOSUB 2020:T=40:GOSUB 2830:S4(1)=SP(1):S4(2)=SP(2):OI=CN:FOR AI=1 TO OI:C8(AI)=C(AI):NEXT AI 2660 GOSUB 2670:RETURN 2670 FOR S4=1 TO 2:X=S4(S4):IF X>0 THEN GOSUB 2690 2680 NEXT S4:RETURN 2690 GOSUB 1970:GOSUB 2020:T=T+5:GOSUB 2830:OJ=CN:FOR AJ=1 TO OJ:C9(AJ)=C(AJ):NEXT AJ:GOSUB 2700:RETURN 2700 IF OJ=0 THEN T=40:RETURN 2710 FOR AI=1 TO OI:FOR AJ=1 TO OJ:IF C8(AI)=C9(AJ) AND C8(AI)>0 THEN X=C8(AI):GOSUB 2730 2720 NEXT AJ:NEXT AI:T=40:RETURN 2730 GOSUB 1970:GOSUB 2020:T=50:GOSUB 2830:S5(1)=SP(1):S5(2)=SP(2):OK=CN:FOR AK=1 TO OK:CA(AK)=C(AK):NEXT AK 2740 GOSUB 2750:RETURN 2750 FOR S5=1 TO 2:X=S5(S5):IF X>0 THEN GOSUB 2770 2760 NEXT S5:RETURN 2770 GOSUB 1970:GOSUB 2020:T=T+5:GOSUB 2830:OL=CN:FOR AL=1 TO OL:CB(AL)=C(AL):NEXT AL:GOSUB 2780:RETURN 2780 IF OL=0 THEN T=50 : RETURN 2790 FOR AK=1 TO OK:FOR AL=1 TO OL:IF CA(AK)=CB(AL) AND CA(AK)>0 THEN X=CA(AK):GOSUB 2810 2800 NEXT AL:NEXT AK:T=50:RETURN 2810 GOSUB 1970:GOSUB 2020:T=60:GOSUB 2830:RETURN 2820 REM 2830 REM SUBROUTINE--PRINT TREE 2840 REM 2850 ON C2 GOSUB 2870,2910:RETURN 2860 REM 2870 REM SUBROUTINE--PRINT NAMES ONLY IN TREE FORM 2880 REM 2890 GOSUB 3080:LPRINT TAB(T)NF$(X);" "NL$(X):RETURN 2900 REM 2910 REM SUBROUTINE--PRINT WHOLE ENTRY IN TREE FORM 2920 REM 2930 GOSUB 3080:LPRINT TAB(T)NF$(X);" ";NL$(X):TP$=PB$:GOSUB 3360:PB$=TP$:GOSUB 3300 2940 GOSUB 3080:LPRINT STRING$(5,32)"B.: ";DATE$;" AT ";PB$ 2950 IF VAL(MD$(1))>0 OR LEFT$(MD$(1),1)="?" THEN GOSUB 3310:GOTO 2960 ELSE 2980 2960 TP$=PM$(1):GOSUB 3360:PM$(1)=TP$ 2970 GOSUB 3080:LPRINT STRING$(5,32)"M.: ";DATE$;" TO ";NF$(SP(1));" ";NL$(SP(1));" AT ";PM$(1) 2980 GOSUB 3080:LPRINT STRING$(5,32)MS$(1) 2990 IF VAL(MD$(2))>0 OR LEFT$(MD$(2),1)="?" THEN GOSUB 3320:GOTO 3000 ELSE 3030 3000 TP$=PM$(2):GOSUB 3360:PM$(2)=TP$ 3010 GOSUB 3080:LPRINT STRING$(5,32)"RM.: ";DATE$;" TO ";NF$(SP(2));" ";NL$(SP(2));" AT ";PM$(2) 3020 GOSUB 3080:LPRINT STRING$(5,32)MS$(2) 3030 TP$=PD$:GOSUB 3360:PD$=TP$ 3040 GOSUB 3080:IF LEFT$(DD$,6)="LIVING" THEN LPRINT STRING$(5,32)DD$;" AT ";PD$:GOTO 3060 3050 GOSUB 3330:LPRINT STRING$(5,32)"D.: ";DATE$;" AT ";PD$ 3060 RETURN 3070 REM 3080 REM SUBROUTINE--PRINT EXCLAMATION POINTS 3090 REM 3100 FOR E=0 TO T STEP 10:LPRINT TAB(E)"!";:NEXT E:RETURN 3110 REM 3120 REM SUBROUTINE--COLLECT INFO FOR PREDECESSORS TREE 3130 REM 3140 GOSUB 1970:GOSUB 2020:X1=X:GOSUB 3150:RETURN 3150 P0(1)=F:P0(2)=M:FOR P0=1 TO 2:X=P0(P0):IF X>0 THEN GOSUB 3170 3160 T=0:X=X1:IF P0=1 THEN GOSUB 1970:GOSUB 2020:GOSUB 2830:NEXT P0:RETURN ELSE RETURN 3170 GOSUB 1970:GOSUB 2020:P1(1)=F:P1(2)=M:FOR P1=1 TO 2:X=P1(P1):IF X>0 THEN GOSUB 3190 3180 T=10:X=P0(P0):IF P1=1 THEN GOSUB 1970:GOSUB 2020:GOSUB 2830:NEXT P1:RETURN ELSE RETURN 3190 GOSUB 1970:GOSUB 2020:P2(1)=F:P2(2)=M:FOR P2=1 TO 2:X=P2(P2):IF X>0 THEN GOSUB 3210 3200 T=20:X=P1(P1):IF P2=1 THEN GOSUB 1970:GOSUB 2020:GOSUB 2830:NEXT P2:RETURN ELSE RETURN 3210 GOSUB 1970:GOSUB 2020:P3(1)=F:P3(2)=M:FOR P3=1 TO 2:X=P3(P3):IF X>0 THEN GOSUB 3230 3220 T=30:X=P2(P2):IF P3=1 THEN GOSUB 1970:GOSUB 2020:GOSUB 2830:NEXT P3:RETURN ELSE RETURN 3230 GOSUB 1970:GOSUB 2020:P4(1)=F:P4(2)=M:FOR P4=1 TO 2:X=P4(P4):IF X>0 THEN GOSUB 3250 3240 T=40:X=P3(P3):IF P4=1 THEN GOSUB 1970:GOSUB 2020:GOSUB 2830:NEXT P4:RETURN ELSE RETURN 3250 GOSUB 1970:GOSUB 2020:P5(1)=F:P5(2)=M:FOR P5=1 TO 2:X=P5(P5):IF X>0 THEN GOSUB 3270 3260 T=50:X=P4(P4):IF P5=1 THEN GOSUB 1970:GOSUB 2020:GOSUB 2830:NEXT P5:RETURN ELSE RETURN 3270 GOSUB 1970:GOSUB 2020:P6(1)=F:P6(2)=M:FOR P6=1 TO 2:X=P6(P6):IF X>0 THEN GOSUB 3290 3280 T=60:X=P5(P5):IF P6=1 THEN GOSUB 1970:GOSUB 2020:GOSUB 2830:NEXT P6:RETURN ELSE RETURN 3290 RETURN 3300 DATE$=FND$(BD$):RETURN 3310 DATE$=FND$(MD$(1)):RETURN 3320 DATE$=FND$(MD$(2)):RETURN 3330 DATE$=FND$(DD$):RETURN 3340 LPRINT " ":LPRINT T$:LPRINT " ":RETURN 3350 IF Y>=1 THEN Y=Y-1: RETURN ELSE RETURN 3360 Y=INSTR(TP$,B2$):IF Y=0 THEN Y=24 3370 TP$=LEFT$(TP$,Y):RETURN 3380 PRINT "(1) NAMES ONLY (2) WHOLE ENTRY":INPUT "CHOICE";C2 3390 IF C2=1 OR C2=2 THEN RETURN ELSE 3380 3400 CLOSE:PRINT CHR$(12): PRINT "FILES HAVE BEEN CLOSED AND PROGRAM ENDED.":END 8000 REM 8010 X=LOF(1) + 1 8020 Z=X 8030 GOSUB 8520 8040 FIELD #1,126 AS DU$:FIELD #2,56 AS D$,16 AS NL$,24 AS NF$,16 AS NM$ 8050 LSET DU$=" ":LSET D$=" ":LSET NL$=" ":LSET NF$=" ":LSET NM$=" " 8060 FOR X7=1 TO 13:LSET C$(X7)=MKI$(0):NEXT X7 8070 LSET M$=MKI$(0):LSET F$=MKI$(0) 8080 LSET S1$=MKI$(0):LSET S2$=MKI$(0):LSET CN$=MKI$(0) 8090 INPUT "LAST NAME {OR 'END' TO STOP} AT BIRTH";A$:LSET NL$=A$ 8100 IF A$="END" OR A$= " " THEN PRINT CHR$(12):GOTO 60 8110 INPUT "MARRIED LAST NAME";A$:LSET NM$=A$ 8120 INPUT "FIRST (AND MIDDLE) NAME";A$:LSET NF$=A$:PUT 2,X 8130 GOSUB 8510:INPUT "BIRTH DATE (MMDDYYYY)";A$:LSET BD$=A$:PUT #1,X 8140 GOSUB 8510:LINE INPUT "BIRTH PLACE ";A$:LSET PB$=A$:PUT #1,X 8150 GOSUB 8510:INPUT "DATE OF MARRIAGE (MMDDYYYY)";A$:LSET MD$(1)=A$:PUT #1,X 8160 GOSUB 8510:PRINT "SPOUSE ID NUMBER ";:GOSUB 8430:LSET S1$=MKI$(A):PUT #1,X 8170 GOSUB 8510:LINE INPUT "MARRIED AT ";A$:LSET PM$(1)=A$:PUT #1,X 8180 GOSUB 8510:INPUT "MARITAL STATUS ";A$:LSET MS$(1)=A$:PUT #1,X 8190 IF LEFT$(A$,3)="MAR" THEN 8240 8200 GOSUB 8510:INPUT "DATE OF SECOND MARRIAGE (MMDDYYYY) ";A$:LSET MD$(2)=A$:PUT #1,X 8210 GOSUB 8510:PRINT "SECOND SPOUSE ID NUMBER ":GOSUB 8430:LSET S2$=MKI$(A):PUT #1,X 8220 GOSUB 8510:LINE INPUT "REMARRIED AT ";A$:LSET PM$(2)=A$:PUT #1,X 8230 GOSUB 8510:INPUT "MARITAL STATUS ";A$:LSET MS$(2)=A$:PUT #1,X 8240 GOSUB 8510:INPUT "'LIVING' OR DATE OF DEATH (MMDDYYYY)";A$:LSET DD$=A$:PUT #1,X 8250 GOSUB 8560:LINE INPUT "PLACE OF DEATH OR 'LIVING' ";A$:LSET PD$=A$:PUT #2,Z  8260 GOSUB 8560:INPUT "NUMBER OF CHILDREN ";CN:LSET CN$=MKI$(CN):PUT #2,Z 8270 GOSUB 8560:PRINT "CHILD #1 ID NUMBER ";:GOSUB 8430:LSET C$(1)=MKI$(A):PUT #2,Z 8280 GOSUB 8560:PRINT "CHILD #2 ID NUMBER ";:GOSUB 8430:LSET C$(2)=MKI$(A):PUT #2,Z 8290 GOSUB 8560:PRINT "CHILD #3 ID NUMBER ";:GOSUB 8430:LSET C$(3)=MKI$(A):PUT #2,Z 8300 GOSUB 8560:PRINT "CHILD #4 ID NUMBER ";:GOSUB 8430:LSET C$(4)=MKI$(A):PUT #2,Z 8310 GOSUB 8560:PRINT "CHILD #5 ID NUMBER ";:GOSUB 8430:LSET C$(5)=MKI$(A):PUT #2,Z 8320 GOSUB 8560:PRINT "CHILD #6 ID NUMBER ";:GOSUB 8430:LSET C$(6)=MKI$(A):PUT #2,Z 8330 GOSUB 8560:PRINT "CHILD #7 ID NUMBER ";:GOSUB 8430:LSET C$(7)=MKI$(A):PUT #2,Z 8340 GOSUB 8560:PRINT "CHILD #8 ID NUMBER ";:GOSUB 8430:LSET C$(8)=MKI$(A):PUT #2,Z 8350 GOSUB 8560:PRINT "CHILD #9 ID NUMBER ";:GOSUB 8430:LSET C$(9)=MKI$(A):PUT #2,Z 8360 GOSUB 8560:PRINT "CHILD #10 ID NUMBER ";:GOSUB 8430:LSET C$(10)=MKI$(A):PUT #2,Z 8370 GOSUB 8560:PRINT "CHILD #11 ID NUMBER ";:GOSUB 8430:LSET C$(11)=MKI$(A):PUT #2,Z 8380 GOSUB 8560:PRINT "CHILD #12 ID NUMBER ";:GOSUB 8430:LSET C$(12)=MKI$(A):PUT #2,Z 8390 GOSUB 8560:PRINT "CHILD #13 ID NUMBER ";:GOSUB 8430:LSET C$(13)=MKI$(A):PUT #2,Z 8400 GOSUB 8560:PRINT "MOTHER'S ID NUMBER ";:GOSUB 8430:LSET M$=MKI$(A):PUT #2,Z 8410 GOSUB 8560:PRINT "FATHER'S ID NUMBER ";:GOSUB 8430:LSET F$=MKI$(A):PUT #2,Z 8415 X=X+1:Z=Z+1 8420 GOTO 8050 8430 REM 8440 INPUT A 8450 IF A>=0 AND A<=LOF(1) THEN RETURN 8460 PRINT A;" IS AN INVALID PERSON ID # " 8470 INPUT "WILL YOU ADD HIM LATER ";A8$ 8480 IF A8$="Y" THEN RETURN 8490 PRINT "ID NUMBER = ":GOTO 8440 8500 RETURN 8510 REM SUBROUTINE--FIELD DATA BUFFER 1 8520 REM 8530 FIELD #1,8 AS BD$,24 AS PB$,8 AS MD$(1),2 AS S1$,24 AS PM$(1),9 AS MS$(1),8 AS MD$(2),2 AS S2$,24 AS PM$(2),9 AS MS$(2),8 AS DD$ 8540 Z=X:GET #1,X 8550 SP(1)=CVI(S1$):SP(2)=CVI(S2$):RETURN 8560 FIELD #2,24 AS PD$,2 AS CN$,2 AS C$(1),2 AS C$(2),2 AS C$(3),2 AS C$(4),2 AS C$(5),2 AS C$(6),2 AS C$(7),2 AS C$(8),2 AS C$(9),2 AS C$(10),2 AS C$(11),2 AS C$(12),2 AS C$(13),2 AS M$,2 AS F$ 8570 RETURN $(5)SUB 8560:PRINT "CHILD #13 ID NUMBER ";:GOSUB 8430:LSET C$(13)=MKI$(A):PUT #2,Z 8400 GOSUB 8560:PRINT "MOTHER'S ID NUMBER ";:GOSUB 8430:LSET M$=MKI$(A):PUT #2,Z 8410 GOSUB 8560:PRINT "FATHER'S ID NUMBER ";:GOSUB 8430:LSET F$=MKI$(A):PUT #2,Z 8415 X=X+1:Z=Z+1 8420 GOTO 8050 8430 REM 8440 INPUT A 8450 IF A>=0 AND A<=LOF(1) THEN RETURN 8460 PRINT A;" IS AN INVALID PERSON ID # " 8470 INPUT "WILL YOU ADD HIM LATER ";A8$ 8480 IF A8$="Y" THEN RETURN 8490 PRINT "ID NUMBER = ":GOTO 8440 8500 RETURN 8510 REM SUBROUTINE--FIELD DATA BUFFER 1 8520 REM 8530 FIELD #1,8 AS BD$,24 AS PB$,8 AS MD$(1),2 AS S1$,24 AS PM$(1),9 AS MS$(1),8 AS MD$(2),2 AS S2$,24 AS PM$(2),9 AS MS$(2),8 AS DD$ 8540 Z=X:GET #1,X 85ͫCopyright (C) 1984 BORLAND IncA Osborne 1al selectedP)(= ERT()~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!jͲ6i"ɳ"˳*!aE *˳"ųR͐ŔTURBO-access I/O error *!͐Ŕfile *ų n&!@!:*ų !q!.*ų!q́ record *ɳ!͐ŔProgram terminated͐"""ó*ó**ó8*ͳ5"*ó*"""***[*5"**"!Ͳ"*! =*5"*!NE|!!}2!*!**s#r*!s#r*!s#r*!s#r*!s#r*!1! *!!1 !}2"!Ͳ"*! =*5"*!N*!N}o}2*&Eʊ"**s#r*!!1 !1*! "*!1! *!!1 *-5"*!"w"y"{*{^#V!NE #*{^#V*ys#ra#*{^#V*ys#r*{*y^#V!1 !1*{! *{*{^#V!Rs#r*{*y^#V*w "o"q*q!1! *q*o!1 *q*os#r*q*q^#V!s#r"g*g^#V"i*i"_*_^#V*_^#VR!R"a*a!! 5zʚ$"U!*U+)))))))))!s#r!*U+)))))))))!s!ͳ*U+)*Us#r*U#*$"Q"S*Q!#aE%!!5z%"K*S*K+)))))*S*K!R*Q!!*Q! *K#$"G"I*G!#aEʢ%!!Ezʢ%"A*I*A!R*G!!*I*A+)))))*G! *A+F%",".!0Ͳ"?*.!!!"&*?!0 *&2!*?*,!as*?*.s#r*?!s#r*?!s#r""!Ͳ"$*!!!" *$! * "*$*!as*$*s#r*$*$^#Vs#r*$!s#r" !! 5za'"!*+)))))))))"*^#V* NEX'*!s#r*n&EX'** ^#V͛$* *^#V* *#&* * ^#Vs#r* ͋""!"!ͳ*+)^#V*a*! ͯ}oE'*!"Ï'*! !R5z("!ͳ*+)!ͳ*!+)^#Vs#r*#'!ͳ! +)*s#r"""!}2!! 5z("*&}oEʽ(!*+)))))))))"*^#V*N*^#V*N}oEʽ(*"!}2*#M(*&}oEʛ)!ͳ!+)^#V"!*+)))))))))"*n&EK)**^#V^#V͛$*^#V*^#V* *** **^#V%**s#r**s#r*!s*́'!*+)))))))))*s#r"""!ͳ!+)^#V"ܲ!*ܲ+)))))))))"޲*޲n&EJ**޲*޲^#V^#V͛$*޲^#V*޲^#V*޲ ***޲"*޲*s#r*޲*^#Vs#r*޲!s*ܲ́'!*ܲ+)))))))))*s#r"ڲ*ڲ!s"Բ*Բ^#V"в*в^#V*в^#Vu#*в!s#r*в!s"̲"β*β!n&*̲͛EK+*β!*̲s}2"""²"IJ*IJ *² \Eʞ+*&Eʕ+**R"ƲÛ+!"Ʋ+*IJ *² ͪEʻ+!"Ʋ+!"Ʋ*Ʋ"*!s#r"""*"*^#V!NE,*^#V"t,**^#V+))"**^#V!+(**^#V+)))))^#V"*!aE,**^#V!s#r**^#V+))"**s#r*!s#r**!+(*^#V"t,*^#V!aE`.*^#V!͛**^#V+))^#V*n&N}oEʣ-**^#V!Rs#r***^#V+))^#V!+(-**^#V+))^#V*n&ͯEP.**^#V+))"**^#V!s#r**^#V+)))))"* #*Ͳ*^#V*s#r`.*!s#r*^#V!a}2"""*"*^#V!NEʷ.*^#V"X/**^#V+))"**^#V!+(**^#V!Rs#r*^#V!NE//*^#V"X/**^#V+)))))^#V"*!aE/**!+(**^#V!s#r**^#V+))"**s#r**n&s#r*"**n&+)))))^#V"X/*^#V!aE91*^#V!͛**^#V+))^#V!N}oEʣ0**^#V!Rs#r***^#V+))^#V!+(0**^#V+))^#V!͛E)1***^#V+))^#V+)))))"* #*Ͳ*^#V*s#r91*!s#r*^#V!a}2"""*"**^#V+!}2*!s#r*^#V"*!a*&}o}oE3**^#V!s#r**^#V+))*s#r**!W+(*W"!"*n&"}**}!"***+)))))!**+)))))^#V*n&L+"*!͇Eʢ2*!R"}*!tEʾ2*!"*}*ͯE 2**}R!͛E3**+)))))^#V*s#r*"}!}2*}!NE63*^#V"W3**}+)))))^#V"**^#V+))*}s#rß1*&}o*^#V!͛}oEK4*^#V!͛**^#V+))^#V!N}oE4**^#V!Rs#rå3**^#V+))^#V!NEK4*!s#r"Q"S"U*U*S*QQ1*&}o*Un&}oE4*Q #!'Ͳ*U*S*Q+*&*Q !' \}o}2"!"#"%*%*#*!Q1*&}oE4*%*#*!+:^8**!+(*"*n&!ͯE5*n&!*s*n&*!Ezʡ5" ** +)))))** !R+)))))(* +S5**!+)))))!ر(!}2V8*! !)*!͇E 7*!NE6!ر(ñ6*!+)))))(!*!Ezʋ6" ** +)))))** !R+)))))(* +=6**!+)))))!ر(!!5z7" ** +)))))** !+)))))(* #ü68*!R"*!!+)))))(!*!R5zʢ7" ** +)))))** !!+)))))(* #Q7**+)))))!ر(*!!5z8" ** +)))))** !+)))))(* #7!*s!*s**s#r* "!ر(*ͳ**ͳ*!"*!NE8!}2!ر"** #*^#V*s#r*!s#r:**!+(*"!"*n&"**!"***+)))))*^#V**+)))))^#V*n&L+" * !͇Ej9*!R"* !tEʆ9*!"**ͯE8**R!͛E9!}2!}2:*!NE9*^#V5:**+)))))^#V5*&E:5"""*"**^#V+!}2*^#V5*&E:*^#V"**!)*"!*s**s#r*!+)))))!ر(*ͳ*oEC"}""**!o+(**!m+(*}*on&ͯEG>*}!"}*o*}+)))))^#V"q**q!k+(*kn&!R!!"u*m!+)))))*o*}+)))))(*m!+)))))*k^#Vs#r*u!͛EP=!*u!R5z:<"w*m*w!+)))))*k*w+)))))(*w#;*o*}+)))))*k*u+)))))(*o*}+)))))*qs#r*k*k*u+)))))^#Vs#r*kn&*uR*ks!*kn&5z(="w*k*w+)))))*k*w*u+)))))(*w#!!5zʦ="w*m*w!+)))))*k*w+)))))(*w#[=*}*on&!R5z>"w*o*w+)))))*o*w!+)))))(*w#ý=!*ms*on&!R*os!k**on&!ͯ}2*mͳ*õA*}!NEh>*o^#V"qÒ>*o*}!R+)))))^#V"q**q!k+(*kn&!"s*s!R!"u*u!͛Eʼ@!!R!Ez6?"w*m*w*u+)))))*m*w+)))))(*w+>*m*u+)))))*o*}+)))))(*m*u+)))))*m^#Vs#r*s*uR"s*u!R!Ez@"w*m*w+)))))*k*w*s+)))))(*w+÷?*m*k*s+)))))^#Vs#r*o*}+)))))*k*s+)))))(*o*}+)))))*s#r*s!R*ks!!R*u*ms!}2*mͳ*îA*k*s+)))))*o*}+)))))(*k*s+)))))*m^#Vs#r!!!R5zyA"w*k*w*s+)))))*m*w+)))))(*w#.A!*ks*on&!R*os!m**on&!ͯ}2*kͳ**oͳ* !_"i**i!_+(*_"e*e*en&+)))))^#V"a*a!aECB*en&"c*aͽA*&E@B*i*a*c:B**!+(*e*en&+)))))**+)))))^#Vs#r**+)))))*e*en&+)))))(*en&!R*es*en&!ͯ}2*ͳ**_ͳ* _!"*!NE8C!}2!}2fE**!+(*"!"*n&"**!"***+)))))*^#V**+)))))^#V*n&L+"*!͇EC*!R"*!tEC*!"**͛E\C*!NE/D*^#V"PD**+)))))^#V"**R!͛EFE**+)))))^#V*s#r*!NE#E*n&!R*s*n&!ͯ}2**n&5zE"**+)))))**!+)))))(*#D*ͳ*CE*ͽA*&ECE***:fE*:*&EfE***:"""*"**^#V+!}2*^#V:*&EF**^#V!+(*n&!NEF**^#Vs#r!**F!+)))))))!'+!s!&!(5zdF}2*F!+)))))))*&+!s*&#.F!%!)5zʥF}2*F!+)))))))*&+!s*&#oF!$!*5zF}2*F!+)))))))*&+!s*&#ðF!#!+5z'G}2*F!+)))))))*&+!s*&#F!"!,5zhG}2*F! +)))))))*&+!s*&#2G!!!-5zʩG}2*F! +)))))))*&+!s*&#sG! !.5zG}2*F! +)))))))*&+!s*&#ôG!!/5z+H}2*F! +)))))))*&+!s*&#G!!05zlH}2*F! +)))))))*&+!s*&#6H!!15zʭH}2*F!+)))))))*&+!s*&#wH!&!(5zH}2*F!+)))))))*&+!s*&#øH!&!(5z/I}2*F!+)))))))*&+!s*&#H!&!(5zpI}2*F!+)))))))*&+!s*&#:I*F!+)))))))!%+! s*F!+)))))))!)+!s!!Ŕ)́ T H E F A M I L Y T R E E ́(b"*FJ#~aI{I wI*&E.J!*ү! LJ!!ү!"!ԯ!ү!5!!!!̮ #!Ͳ!ԯ!ү!L4*&EʑJ!*ү! Ŕ (M)ale or (F)emale: b!8!b*&(}2*&!MN*&!FN}o*&! N}oEʲJ*&! aE)K*&R!b}2!"ݬ!!ͽŔChild #*&!́: *ݬ !qb! !!+#.b!I*ݬ \EK*ݬ*&e.! oE;L! ! e.\EK*ݬ#;L͒J*&! aE*L*ݬ! #;L*ݬ#*&!MNEvL*ݬ(! #*ݬL!< #ÜL*ݬ(!< #*ݬL! #J!"٬*٬ #!Ͳ*٬ ` }2!!ͽŔSpouse: *٬p !qb! !!<+#.b!U*3L!` #!` ! e.\EdU*3L#*3L #!`ͲJ! oEU! #!̮ͲMJ*3p!` #*3! #*3!Me.J!` oE9V!` #!̮ͲMJ*3p! #*3! #*3!Fe.J! #!̮ͲMJ!!ͽŔName: *3 !qb!*ү! !"/*&*&*/( R!qb*&*&*/L R!qbŔ#___________________________________bc*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F! +)))))))!+!|s*F! +)))))))!+!|s*F! +)))))))!+!|s*F! +)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s*F!+)))))))!+!|s!!V!!V!!V!!Ŕ____________________b!!V!!R!|bV!! V!! Ŕ____________________b!! V!!V!!V!!Ŕ|____________________b!!V!!R!|bV!!V*&}oEsZ!^!"'!! *' R!qb!!*'( R!qb!!*'L R!qb*'L #!ЭͲ!ԯ!ү*'(L4*&Eʈ\!}2!}2!}2xV*'L #!Ͳ!ԯ!ү*'(L4*&E[!}2!}2!}2xV*'L #!dͲ!ԯ!ү*'(L4*&Eʮ[!8}2!}2!}2xV!ԯ!ү!dL4*&E[!8}2!}2!}2xV!ԯ!ү!L4*&Eʈ\!}2!}2! }2xV*'L #!@Ͳ!ԯ!ү*'(L4*&EW\!8}2!}2!}2xV!ԯ!ү!@L4*&Eʈ\!8}2! }2! }2xV!ԯ!ү!ЭL4*&E!^!}2!}2!}2xV*'L #!Ͳ!ԯ!ү*'(L4*&Ex]!}2! }2!}2xV*'L #!Ͳ!ԯ!ү*'(L4*&EG]!8}2! }2!}2xV!ԯ!ү!L4*&Ex]!8}2!}2!}2xV!ԯ!ү!L4*&E!^!}2!}2!}2xV*'L #!Ͳ!ԯ!ү*'(L4*&E]!8}2!}2!}2xV!ԯ!ү!L4*&E!^!8}2!}2!}2xVc!}2"!}2!!ԯ+!"#*"&!NE _!}2"*!&!(NE_!}2!!!Ŕ$ESC to leave... RETURN for more...b!!!8!b*&!N*&! N}oEʴ^*&!NE^j__c _!(}2!!ԯ!ү*#+*&EM_*!&*"&*# R!qb*"&!}2"*&}oE@^!"!!ͽŔName to delete: b!̮+#.b!̮ oE,`!̮I*!̮ #!ԯ!ү*:*&E_!*үu#,`Ŕ% Sorry, I couldn't find that name...b!!ͽŔ8Press RETURN when printer is ready (or ESC to cancel)...b!!!8!b*&! N*&!N}oEʆ`c!!Ŕ5Press RETURN at the "Name:" prompt to end the program͐bŔ1Type "list" and press RETURN to see list of names͐bŔ?Type "delete" and press RETURN to get a prompt to delete a name͐bŔ" prompt. At the "Name:" prompt, write in a name (Upper- or lower-case; 35 letters can be saved) and press RETURN. Use CTRL-H to backspace and erase a letter, or CTRL-X to erase the whole name. To cancel a new name input, press RETURN at the "(M)ale or (F)emale:" prompt. To see a list of names you have entered, at the "Name:" prompt write "list" and press RETURN. The list is alphabetized by first names. To delete a name, at the "Name:" prompt write "delete" and press RETURN, and the next prompt will ask the name to delete. If you don't want to delete a name after all, press RETURN. When in the Edit Mode, if there is a name following the "Father:" or "Mother:" or "Spouse:" or "Child:" prompt, just type a change over that name, or press RETURN if you don't want to change it. To remove a parent's or spouse's or child's name, just type a SPACE and press RETURN after the prompt. You'll also have to DELETE that name from the main list. Be CAREFUL not to use the same name twice. It will really confuse the tree structure. If a person has been married more than once, I recommend using the same name with an asterisk following it, when entering that person in connection with a different spouse and children. If there is more than one person with the same name, add a number after the name (or whatever). I hope everything else is self-explanatory. I hope this program will be of use to you. If you have any questions or commnets, write: Doug Cox 488 University Ave, #611, Palo Alto, Ca. 94301 (soon to change, I'm afraid) If you are able to get much use from this program, I wouldn't mind a donation of $10, as an indication of your appreciation. Thank you. Doug Cox prompt, just type a change over that name, or press RETURN if you don't want to change it. To remove a parent's or spouse's or child's name, just type a SPACE and press RETURN after the prompt. You'll also have to DELETE that name from the main list. Be CAREFUL not to use the same name twice. It will really confuse the tree structure. If a person has been married more than once, I recommend using the same name with an asterisk following it, when entering that person in connection with a different spouse and children. If there is more than one person with the same name, add a number after the name (or whatever).!1 ON ERROR GOTO 15100 2 'This program is adapted from Diane Dieterle's book 3 'Basic Programming for Genealogists by David Haldeman 4 'of the Cincinnati Osborne Group. It is designed to 5 'print on the C. Itoh or NEC 8510 dot matrix printer 6 ' Adaptations may be made to print on MX-80 or other 7 'printers, but they may not be able to print exactly 8 'on the Everton Publishers Fanily Group Sheet which is 9 'available through the Genealogical Helper. 10 '---FAMILY GROUP SHEET PRINTING----- 20 '-------GENEALOGY PROGRAM----------- 25 DIM A$(49) 30 PRINT CHR$(26) 40 FOR G=1 TO 52 50 PRINT CHR$(127); 60 NEXT G 65 PRINT 70 PRINT TAB(0)CHR$(127);TAB(18)"GENEALOGY PROGRAM";TAB(52)CHR$(127) 80 PRINT TAB(0)CHR$(127);TAB(18)"FAMILY GROUP SHEET";TAB(52)CHR$(127) 90 PRINT TAB(0)CHR$(127);TAB(22)"PRINTER";TAB(52)CHR$(127) 100 FOR G=1 TO 52:PRINT CHR$(127);:NEXT G: 110 PRINT 120 PRINT 130 PRINT 1000 PRINT"PRINTING A FAMILY GROUP SHEET" 1010 PRINT 1020 PRINT 1030 PRINT 1040 PRINT"THIS PROGRAM WILL ASK FOR THE HUSBAND," 1050 PRINT"WIFE AND CHILDREN ON A FAMILY GROUP SHEET," 1060 PRINT"AND WILL THEN PRINT IT OUT FOR YOU." 1070 PRINT 1080 PRINT"IT WILL ALLOW YOU TO PRINT SEVERAL COPIES" 1090 PRINT"OF THE SAME FAMILY GROUP SHEET OR YOU MAY" 1100 PRINT"MAKE CHANGES IN THE ORIGINAL AS NEEDED." 1110 PRINT 1120 INPUT"PRESS RETURN TO CONTINUE";CR 1130 PRINT CHR$(26) 1140 PRINT"DO YOU WISH TO:" 1150 PRINT 1160 PRINT" Write a new family group sheet.............1 1170 PRINT" Update an old family group sheet...........2 1180 PRINT" See a list of all families on this disk....3 1190 PRINT" Print a file...............................4" 1195 PRINT 1200 INPUT"Enter a number a press RETURN.....";N 1210 ON N GOTO 2000,17000,20000,3015 2000 PRINT CHR$(26) 2010 PRINT"ENTER THE INFORMATION FOR THE" 2020 PRINT"FAMILY GROUP SHEET" 2030 PRINT:PRINT"PLEASE USE NO COMMAS OR SEMICOLONS WHEN" 2031 PRINT"ENTERING INFORMATION - THANKS!":PRINT 2040 INPUT"HUSBAND'S LAST NAME ";A$(0) 2045 INPUT"HUSBAND'S 1ST AND MIDDLE NAMES ";A$(1) 2050 PRINT 2060 PRINT"ENTER ALL DATES LIKE THIS:" 2070 PRINT 2080 PRINT"DAY MONTH YEAR" 2090 PRINT"26 JAN 1945" 2100 PRINT" DA MON YEAR" 2110 INPUT"BIRTH DATE ";A$(2) 2120 INPUT"BIRTH PLACE ";A$(3) 2130 INPUT"MARRIAGE DATE ";A$(4) 2140 INPUT"MARRIAGE PLACE ";A$(5) 2150 INPUT"DEATH DATE ";A$(6) 2160 INPUT"DEATH PLACE ";A$(7) 2170 PRINT"BURIAL PLACE (LIST THE CEMETERY," 2180 INPUT"THEN CITY,COUNTY,STATE) ";A$(8) 2185 INPUT"PLACES OF RESIDENCE (BE BRIEF)";A$(9) 2186 INPUT"PRINCIPAL OCCUPATION";A$(10) 2187 INPUT"CHURCH AFFILIATION";A$(11) 2188 INPUT"MILITARY RECORD (BRANCH)";A$(12) 2190 INPUT"NAME OF FATHER ";A$(14) 2200 INPUT"NAME OF MOTHER ";A$(15) 2202 IF LEN(A$(15))>17 THEN 2203 ELSE 2210 2203 PRINT CHR$(7):PRINT"NAME TOO LONG-SHORTEN TO 17 CHARACTERS OR LESS" 2204 PRINT:GOTO 2200 2210 INPUT"OTHER WIVES (DATE OF MARRIAGE,NAME) ";A$(13) 2220 PRINT" 2230 INPUT "WIFE'S LAST NAME (MAIDEN)";A$(17) 2235 INPUT "WIFE'S 1ST AND MIDDLE NAMES ";A$(18) 2240 INPUT "BIRTH DATE ";A$(19) 2250 INPUT "BIRTH PLACE ";A$(20) 2260 INPUT "DEATH DATE ";A$(21) 2270 INPUT "DEATH PLACE ";A$(22) 2280 PRINT "BURIAL PLACE (CEMETERY, THEN CITY," 2290 INPUT "COUNTY,STATE) ";A$(23) 2295 INPUT"PLACES OF RESIDENCE (BE BRIEF)";A$(24) 2296 INPUT"OCCUPATION IF OTHER THAN HOUSEWIFE";A$(25) 2297 INPUT"CHURCH AFFILIATION";A$(26) 2300 INPUT "FATHER'S NAME ";A$(28) 2310 INPUT "MOTHER'S NAME ";A$(29) 2312 IF LEN(A$(29))>18 THEN 2313 ELSE 2320 2313 PRINT CHR$(7):PRINT"NAME TOO LONG-SHORTEN TO 18 CHARACTERS OR LESS" 2314 PRINT:GOTO 2310 2320 INPUT "OTHER HUSBANDS(DATE OF MARRIAGE,NAME) ";A$(27) 2330 PRINT 2340 INPUT "HOW MANY CHILDREN";T 2350 FOR J=1 TO T 2360 INPUT "FULL NAME OF CHILD ";C$(J) 2370 INPUT "SEX ";D$(J) 2380 INPUT "BIRTH DATE ";E$(J) 2390 INPUT "BIRTH PLACE ";F$(J) 2400 INPUT "MARRIAGE DATE ";G$(J) 2410 INPUT "MARRIAGE PLACE ";H$(J) 2420 INPUT "NAME OF SPOUSE ";I$(J) 2430 INPUT "DEATH DATE ";J$(J) 2440 INPUT "DEATH PLACE ";K$(J) 2445 INPUT "BURIAL PLACE ";L$(J) 2450 PRINT:NEXT J 2460 PRINT 2470 PRINT 2475 PRINT"FOR THE FOLLOWING ENTRIES," 2480 PRINT"PLEASE LIMIT LINE LENGTH TO 33 CHARACTERS" 2481 PRINT 2489 PRINT" 1 2 3 3" 2490 PRINT" 123456789012345678901234567890123" 2500 PRINT 2505 PRINT 2506 PRINT"TYPE END WHEN FINISHED" 2520 FOR X=30 TO 45 2530 INPUT"SOURCE OF INFORMATION";A$(X) 2540 IF A$(X)="END" GOTO 2551 2550 NEXT X 2551 PRINT "COMPILER'S NAME WILL BE LISTED:" 2552 PRINT:A$(46)="DAVID J. HALDEMAN":PRINT A$(46) 2553 A$(47)="6404 COFFEY STREET":PRINT A$(47) 2554 A$(48)="CINCINNATI OHIO 45230":PRINT A$(48) 2555 PRINT:INPUT"PRESS RETURN IF OK OR NO IF YOU WANT TO CHANGE...";CR$ 2556 IF CR$="NO" GOTO 2560 ELSE 2600 2560 INPUT"YOUR NAME";A$(46) 2570 INPUT"ADDRESS (STREET - LESS THAN 25 CHARACTERS)";A$(47) 2580 INPUT"CITY STATE ZIP";A$(48) 2590 INPUT"TODAY'S DATE";DAT$ 2600 GOSUB 10000 '---CREATE FILE FOR THIS SHEET----- 2610 PRINT 2620 PRI"NT"FILE SUCESSFULLY RECORDED" 2630 PRINT 3000 PRINT"DO YOU WISH TO:" 3002 PRINT 3004 PRINT" Print this family group sheet........1" 3006 PRINT" Return to menu.......................2" 3008 PRINT" Print another family group sheet.....3" 3009 PRINT 3010 INPUT"Enter number and press RETURN...";NUM 3012 ON NUM GOTO 3020,1130,3015 3015 GOSUB 15000 3020 PRINT"ADJUST PRINTER TO TOP OF THE FORM" 3030 INPUT "PRESS ENTER TO CONTINUE...";CR 3040 PRINT CHR$(26) 3050 PRINT"PRINTING FAMILY GROUP SHEET FOR........" 3060 PRINT 3070 PRINT TAB(15)A$(1)+" "+A$(0) 3080 PRINT TAB(22)"AND" 3090 PRINT TAB(15)A$(18)+" "+A$(17) 3095 PRINT 3100 LPRINT CHR$(27);"Q" 3110 LPRINT CHR$(27);"r" 3120 LPRINT:LPRINT 3130 LPRINT CHR$(27);"f" 3150 FOR X=30 TO 45 3160 IF A$(X)="END" THEN 3180 3165 LPRINT TAB(10)A$(X) 3170 NEXT X 3180 LPRINT CHR$(27);"r" 3190 FOR L=1 TO X-30 3200 LPRINT 3210 NEXT L 3220 LPRINT CHR$(27);"N" 3230 LPRINT TAB(49)A$(0);TAB(LEN(A$(0))+50);","+A$(1) 3240 LPRINT CHR$(27);"f":LPRINT 3250 LPRINT CHR$(27);"Q" 3260 LPRINT TAB(53)A$(2);TAB(71)A$(3) 3270 LPRINT 3280 LPRINT TAB(53)A$(4);TAB(71)A$(5) 3290 LPRINT TAB(53)A$(6);TAB(71)A$(7) 3300 LPRINT TAB(71)A$(8) 3310 LPRINT TAB(66)A$(9) 3320 LPRINT TAB(56)A$(10);TAB(91)A$(11);TAB(121)A$(12) 3330 LPRINT TAB(71)A$(13) 3340 LPRINT TAB(56)A$(14);TAB(110)A$(15) 3360 LPRINT CHR$(27);"N" 3370 LPRINT TAB(53)A$(18);TAB(LEN(A$(18))+54);","+A$(17) 3380 LPRINT CHR$(27);"Q" 3400 LPRINT TAB(53)A$(19);TAB(71)A$(20) 3410 LPRINT 3420 LPRINT TAB(53)A$(21);TAB(71)A$(22) 3430 LPRINT TAB(71)A$(23) 3440 LPRINT TAB(20)A$(46);TAB(66)A$(24) 3450 LPRINT TAB(19)A$(47);TAB(78)A$(25);TAB(111)A$(26) 3460 LPRINT TAB(22)A$(48);TAB(73)A$(27) 3470 LPRINT TAB(17)DAT$;TAB(57)A$(28); 3480 LPRINT TAB(111)A$(29) 3500 LPRINT CHR$(27);"T12":LPRINT CHR$(27);"T24" 3510 FOR J=1 TO T 3520 LPRINT TAB(12)C$(J);TAB(53)E$(J);TAB(71)F$(J) 3530 LPRINT TAB(6)D$(J);TAB(53)G$(J);TAB(71)H$(J) 3540 LPRINT TAB(53)J$(J);TAB(71)K$(J) 3550 LPRINT TAB(12)I$(J);TAB(71)L$(J) 3560 NEXT J 3570 PRINT"FAMILY GROUP SHEET NOW PRINTED" 3580 GOTO 1110 10000 PRINT:'-------CREATE FILE IN FOR THIS SHEET--------- 10001 PRINT"THE NAME OF A FILE SHOULD CONTAIN UP TO 8 LETTERS" 10002 PRINT"FOLLOWED BY A PERIOD AND UP TO 3 MORE LETTERS FOR" 10003 PRINT"FIRST INITIALS. A SUGGESTED FORMAT WOULD BE" 10004 PRINT 10005 PRINT" IF NAME IS WARREN G. HARDING" 10006 PRINT" ENTER 10007 PRINT" HARDING.WG 10008 PRINT:PRINT:INPUT"FILE NAME YOU WISH";F$ 10009 INPUT"FILE NUMBER (UP TO 15)";F:PRINT 10010 OPEN "O",F,F$ 10020 FOR X=0 TO 49 10030 PRINT #F,A$(X) 10040 NEXT X 10050 PRINT #F,T;",";DAT$ 10110 FOR J=1 TO T 10120 PRINT #F,C$(J);",";D$(J);",";E$(J);",";F$(J);",";G$(J);",";H$(J);",";I$(J);",";J$(J);",";K$(J);",";L$(J) 10130 NEXT J 10175 CLOSE F 10180 RETURN 10190 '----------------------------------------------- 10199 '----GET INFO FROM FILE SPECIFIED AT 15000------ 11000 ' 11010 FOR X=0 TO 49 11020 INPUT #F,A$(X) 11030 NEXT X 11040 INPUT #F,T,DAT$ 11100 FOR J=1 TO T 11110 INPUT #F,C$(J),D$(J),E$(J),F$(J),G$(J),H$(J),I$(J),J$(J),K$(J),L$(J) 11120 NEXT J 11180 CLOSE F 11190 RETURN 15000 '-----ROUTINE TO RETRIEVE A CERTAIN FILE NAME----- 15010 INPUT"NAME OF FILE";F$ 15030 INPUT "FILE NUMBER";F 15040 OPEN "I",F,F$ 15050 GOSUB 11000 15060 RETURN 15099 '--------ERROR TRAPS--------------- 15100 IF ERR=53 AND ERL=15040 THEN 15105 ELSE 15150 15105 PRINT"NO FILE BY THAT NAME ON THIS DISC." 15110 PRINT"CHECK INDEX OR OTHER DISCS..." 15120 INPUT"PRESS 1 TO RE-ENTER OR 2 TO RETURN TO MENU";CR 15130 ON CR GOTO 15000,1130 15140 STOP 15150 IF ERR=1 AND ERL=17560 THEN 17460 ELSE 15160 15160 PRINT"ERROR- CLOSING FILES AND RETURNING TO MENU" 15180 CLOSE: GOTO 1140 15190 '--------END OF ERROR TRAPS--------------- 17000 '------------UPDATING AN OLD FILE------------------ 17020 ' 17030 ' 17040 ' 17050 ' 17060 ' 17070 ' 17080 ' 17090 ' 17100 PRINT"UPDATING AN OLD FILE" 17110 PRINT:CLOSE F 17120 GOSUB 15010 '---RETRIEVE NAME--- 17130 PRINT:GOSUB 25000 '-----CREATE DUMMY FILE--- 17140 PRINT"0. HUSBANDS LAST NAME ";A$(0) 17150 PRINT"1.HUSBANDS FIRST AND MIDDLE NAMES: ";A$(1) 17160 PRINT"2.HUSBANDS BIRTH DATE: ";A$(2) 17170 PRINT"3.BIRTHPLACE: ";A$(3) 17180 PRINT"4.MARRIAGE DATE: ";A$(4) 17190 PRINT"5.MARRIAGE PLACE: ";A$(5) 17200 PRINT"6.DEATH DATE: ";A$(6) 17210 PRINT"7.DEATH PLACE: ";A$(7) 17220 PRINT"8.BURIAL PLACE: ";A$(8) 17230 PRINT"9.PLACES OF RESIDENCE: ";A$(9) 17240 PRINT"10.OCCUPATION: ";A$(10) 17250 PRINT"11.CHURCH AFFILIATION: ";A$(11) 17260 PRINT"12.MILITARY RECORD: ";A$(12) 17270 PRINT"13.OTHER WIVES: ";A$(13) 17280 PRINT"14.HUSBANDS FATHER: ";A$(14) 17290 PRINT"15.HUSBAND'S MOTHER: ";A$(15) 17300 PRINT:GOTO 17570 17310 PRINT"17.WIFES LAST NAME (MAIDEN): ";A$(17) 17320 PRINT"18.WIFES FIRST AND MIDDLE NAMES: ";A$(18) 17330 PRINT"19.WIFES BIRTH DATE: ";A$(19) 17340 PRINT"20.BIRTHPLACE: ";A$(20) 17350 PRINT"21.DEATH DATE: ";A$(21) 17360 PRINT"22.DEATH PLACE: ";A$(22) 17370 PRINT"23.BURIAL PLACE: ";A#$(23) 17380 PRINT"24.PLACES OF RESIDENCE: ";A$(24) 17390 PRINT"25.OCCUPATION IF OTHER THAN HOUSEWIFE: ";A$(25) 17400 PRINT"26.CHURCH AFFILIATION: ";A$(26) 17410 PRINT"27.OTHER HUSBANDS: ";A$(27) 17420 PRINT"28.HER FATHER: ";A$(28) 17430 PRINT"29.HER MOTHER: ";A$(29) 17440 PRINT:GOTO 17570 17450 PRINT"50. NUMBER OF CHILDREN: ";T 17460 GOTO 26000 17470 PRINT"51."J". CHILD'S NAME: ";C$(J) 17475 PRINT"52."J". SEX: ";D$(J) 17480 PRINT"53."J". BIRTHDATE: ";E$(J) 17490 PRINT"54."J". BIRTHPLACE: ";F$(J) 17500 PRINT"55."J". MARRIAGE DATE: ";G$(J) 17510 PRINT"56."J". MARRIAGE PLACE: ";H$(J) 17515 PRINT"37."J". NAME OF SPOUSE: ";I$(J) 17520 PRINT"58."J". DEATH DATE: ";J$(J) 17530 PRINT"59."J". DEATH PLACE: ";K$(J) 17540 PRINT"60."J". BURIAL PLACE: ";L$(J) 17545 GOTO 17570 17550 PRINT 17561 FOR X=30 TO 45 17562 PRINT X;". ";A$(X) 17563 NEXT X 17564 PRINT"YOUR NAME: ";A$(46) 17565 PRINT"ADDRESS: ";A$(47) 17566 PRINT"CITY STATE ZIP: ";A$(48) 17570 PRINT 17580 PRINT"WHICH LINE NUMBER DO YOU WISH TO CHANGE?" 17581 INPUT"(ENTER 99 IF NONE OF THESE): ";N 17590 GOTO 18000 17600 PRINT"LINE NOW READS:";A$(N) 17610 PRINT 17620 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 17630 INPUT A$(N) 17690 PRINT 17710 PRINT 17740 PRINT"DO YOU WISH TO:" 17750 PRINT" CHANGE ANOTHER LINE" 17751 PRINT" HUSBAND info..........1" 17752 PRINT" WIFE info.............2" 17753 PRINT" CHILD'S info..........3" 17755 PRINT" COMPILER info.........4" 17756 PRINT" NUMBER OF CHILDREN....5" 17760 PRINT" RETURN TO MAIN MENU......6" 17770 INPUT CHOICE 17780 ON CHOICE GOTO 17140,17310,26060,17561,17450,25070 18000 '----------TESTS FOR LINE INPUT---------------- 18010 IF N=50 GOTO 26000 18020 IF N=99 GOTO 17740 18025 L=INT(N) 18026 R=(N-L)*10 18030 FOR J=1 TO T 18040 IF L=51 GOTO 30010 18050 IF L=52 GOTO 30100 18060 IF L=53 GOTO 30200 18070 IF L=54 GOTO 30300 18080 IF L=55 GOTO 30400 18090 IF L=56 GOTO 30500 18100 IF L=57 GOTO 30600 18110 IF L=58 GOTO 30700 18120 IF L=59 GOTO 30800 18130 IF L=60 GOTO 30900 18140 NEXT J 18150 GOTO 17600 19999 STOP 20000 PRINT:PRINT 20005 PRINT 20010 FILES "*.*" 20020 PRINT:PRINT:PRINT"USE CTRL AND ARROW KEYS TO SEE ALL FILES":PRINT 20030 GOTO 1200 25000 '-------CREATE DUMMY FILE TO UPDATE------- 25005 CLOSE 2 25010 OPEN "O",2,"DUMMY.DAT" 25020 OPEN "I",F,F$ 25030 GOSUB 11000 25040 KILL F$ 25050 RETURN 25060 '------------------------------------------ 25070 '-------RENAME DUMMY FILE TO OLD NAME------ 25075 OPEN "O",F,"DUMMY.DAT":GOSUB 10020 25080 NAME "DUMMY.DAT" AS F$ 25090 GOTO 1130 25100 '------------------------------------------ 26000 '--------ROUTINE TO CHANGE NUMBER OF CHILDREN------ 26010 PRINT:PRINT"LINE 50 NOW READS:" 26020 PRINT"NUMBER OF CHILDREN? ";T 26030 PRINT:PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 26040 INPUT T 26050 GOTO 17690 26060 '-------SELECT CHILD TO EDIT---------- 26070 INPUT"CHILD NUMBER: ";J 26080 GOTO 17470 26100 '--------ROUTINE TO CHANGE CHILDREN'S DATA---- 26110 'NEED TO WRITE THIS----- 26120 PRINT"CAN'T CHANGE CHILDREN'S DATA YET..." 26130 INPUT"PRESS RETURN TO CONTINUE";CR 26140 GOTO 17580 30000 '-----ROUTINE TO UPDATE CHILDREN'S INFORMATION----- 30010 J=R:PRINT"LINE NOW READS: ";C$(J) 30020 PRINT"WNAT WOULD YOU LIKE TO CHANGE IT TO?" 30030 INPUT C$(J) 30040 GOTO 17740 30100 J=R:PRINT"LINE NOW READS: ";D$(J) 30110 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30120 INPUT D$(J) 30130 GOTO 17740 30200 J=R 30210 PRINT"LINE NOW READS: ";E$(J) 30220 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30230 INPUT E$(J) 30240 GOTO 17740 30300 J=R:PRINT"LINE NOW READS: ";F$(J) 30310 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30320 INPUT F$(J) 30330 GOTO 17740 30400 J=R 30420 PRINT"LINE NOW READS: ";G$(J) 30440 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30460 INPUT G$(J) 30480 GOTO 17740 30500 J=R 30520 PRINT"LINE NOW READS: ";H$(J) 30540 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30560 INPUT H$(J) 30580 GOTO 17740 30600 J=R 30620 PRINT"LINE NOW READS: ";I$(J) 30640 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30660 INPUT I$(J) 30680 GOTO 17740 30700 J=R 30720 PRINT"LINE NOW READS: ";J$(J) 30740 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30760 INPUT J$(J) 30780 GOTO 17740 30800 J=R 30820 PRINT"LINE NOW READS: ";K$(J) 30840 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30860 INPUT K$(J) 30880 GOTO 17740 30900 J=R 30920 PRINT"LINE NOW READS: ";L$(J) 30940 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30960 INPUT L$(J) 30980 GOTO 17740 31000 '--------------END CHILDRENS EDIT--------------  WOULD YOU LIKE TO CHANGE IT TO?" 30960 INPUT L$(J) 30980 GOTO 17740 31000 '----------- LIKE TO CHANGE IT TO?" 30320 INPUT F$(J) 30330 GOTO 17740 30400 J=R 30420 PRINT"LINE NOW READS: ";G$(J) 30440 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30460 INPUT G$(J) 30480 GOTO 17740 30500 J=R 30520 PRINT"LINE NOW READS: ";H$(J) 30540 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?" 30560 INPUT H$(J) 30580 GOTO 17740 30600 J=R 30620 PRINT"LINE NOW READS: ";I$(J) 30$ This is the release date of the disk. GHOST ZIP @GHOST ZPR BHELPEXP FMT DHELPEXP ZIP FHELPEXP ZPR HHELPEXP2FMT IHELPEXP2ZIP KHELPEXP2ZPR MHELPEXP3FMT OHELPEXP3ZIP QHELPEXP3ZPR SHELPEXP4FMT THELPEXP4ZIP VHELPEXP4ZPR XNAME .NDX 2C 66 2560 20 PERSONS .DBF FA BB 3584 28 REF .NDX E3 9B 1024 8 STORIES .DBF DE AE 4096 32 STORYREF.NDX 64 BF 1024 8 GHOST .FMT BB 9D 1920 15 GHOST .ZIP 84 81 1920 15 GHOST .ZPR 38 09 1280 10 HELPEXP .FMT 55 5F 1664 13 HELPEXP .ZIP 3E 3C 1920 15 HELPEXP .ZPR 94 26 1024 8 HELPEXP2.FMT D4 FE 1792 14 HELPEXP2 Fog Library Disk FOG-CPM.029 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Genealogy is the focus of these programs. Filename Description -02-00 .86 This is the release date of the disk. -CPM029 .DOC This is the description of the disk contents. EXPLORE .CMD E1E6 6K [Exploration 1 of 33] a genealogical program written with dBASE II. Includes sample data to make getting started easier. GEN .DOC DE82 23K [Exploration 2 of 33] EXPLORE1.CMD 8D5C 6K [Exploration 3 of 33] NEWINDEX.CMD 3134 1K [Exploration 4 of 33] NS .CMD A94E 4K [Exploration 5 of 33] STORY .CMD E928 2K [Exploration 6 of 33] TESTSW .CMD A0EE 2K [Exploration 7 of 33] FATHER .NDX 661E 1K [Exploration 8 of 33] MOTHER .NDX B9D2 1K [Exploration 9 of 33] NAME .NDX 2C66 3K [Exploration 10 of 33] PERSONS .DBF FABB 4K [Exploration 11 of 33] REF .NDX E39B 1K [Exploration 12 of 33] STORIES .DBF DEAE 4K [Exploration 13 of 33] STORYREF.NDX 64BF 1K [Exploration 14 of 33]  GHOST .FMT BB9D 2K [Exploration 15 of 33] GHOST .ZIP 8481 2K [Exploration 16 of 33] GHOST .ZPR 3809 2K [Exploration 17 of 33] HELPEXP .FMT 555F 2K [Exploration 18 of 33] HELPEXP .ZIP 3E3C 2K [Exploration 19 of 33] HELPEXP .ZPR 9426 1K [Exploration 20 of 33] HELPEXP2.FMT D4FE 2K [Exploration 21 of 33] HELPEXP2.ZIP D9F6 2K [Exploration 22 of 33] HELPEXP2.ZPR D027 2K [Exploration 23 of 33] HELPEXP3.FMT 91EC 2K [Exploration 24 of 33] HELPEXP3.ZIP 6AD6 2K [Exploration 25 of 33] HELPEXP3.ZPR C4B2 1K [Exploration 26 of 33] HELPEXP4.FMT E536 2K [Exploration 27 of 33] HELPEXP4.ZIP 3C86 2K [Exploration 28 of 33] HELPEXP4.ZPR EB39 1K [Exploration 29 of 33] LIST .FMT 8971 1K [Exploration 30 of 33] LIST .ZIP BA28 2K [Exploration 31 of 33] LIST .ZPR 950A 1K [Exploration 32 of 33] GENLGY .DOC 88F0 3K [Exploration 33 of 33] FAMTREE .BAS 4D70 24K Genealogical (Family Tree) program which requires MBasic and needs some work. TREE .COM ADE6 27K [FamilyTree 1 of 2] Genealogical program for Osborne 1 or Vixen computers. TREE .DOC A96E 3K [FamilyTree 2 of 2] NEWGENEA.BAS 9116 15K Genealogical program written with MBasic and set for NEC8510 printer. A 1K [Exploration 32 of 33] GENLGY .DOC 88F0 3K [Exploration 33 of 33] FAMTREE .BAS 4D70 24K Genealogical (Family Tree) program which requires MBasic and needs some work. TREE .COM ADE6 27K [FamilyTree 1 of 2] Genealogical program for Osborne 1 or Vixen computers. TREE .DOC A96E 3K [FamilyTree 2 of 2] NEWGENEA.BAS 9116 15K Genealogical program written with MBasic and set for NEC851%&'