home *** CD-ROM | disk | FTP | other *** search
- *** 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
-