'===========================================================================
' Subject: ARROWHEAD CO. ADDRESS BOOK         Date: 07-19-97 (14:43)       
'  Author: Michael G. Stewart                 Code: QB, QBasic, PDS        
'  Origin: mikegs@juno.com                  Packet: MISC.ABC
'===========================================================================
DECLARE SUB edits ()
DECLARE SUB views ()
DECLARE FUNCTION incen$ (row%, text$)
DECLARE SUB enters ()
DECLARE SUB drawformat ()
DECLARE SUB center (row%, text$)
DECLARE SUB intro ()
DECLARE SUB mainmenu ()
DECLARE SUB coolbox ()
DECLARE FUNCTION key$ ()
DECLARE SUB opens ()
DECLARE SUB new ()
CONST true = 1
CONST false = NOT true
TYPE newfile
 person AS STRING * 7
 names AS INTEGER
 adds AS INTEGER
 csz AS INTEGER
 phone AS INTEGER
 mail AS INTEGER
END TYPE
TYPE info
 names AS STRING * 36
 address AS STRING * 30
 city AS STRING * 10
 state AS STRING * 2
 zip AS STRING * 10
 phonearea AS STRING * 3
 phonepre AS STRING * 3
 phonesuf AS STRING * 4
 phoneext AS STRING * 4
 mail AS STRING * 36
END TYPE
DIM SHARED options AS newfile
DIM SHARED form AS info
intro
mainmenu

SUB center (row%, text$)
LOCATE row%, 41 - (LEN(text$) / 2)
PRINT text$
END SUB

SUB coolbox
LOCATE 1
PRINT "    Û"; STRING$(70, "ß"); "Û"
PRINT "  ÛßÛ"; STRING$(70, "ß"); "ÛßÛ"
PRINT "ÛßÛßß"; SPACE$(70); "ßßÛßÛ"
FOR a% = 4 TO 20
 LOCATE a%, 1: PRINT "Û Û"; SPACE$(74); "Û Û"
NEXT a%
PRINT "ÛÜÛÜÜ"; SPACE$(70); "ÜÜÛÜÛ"
PRINT "  ÛÜÛ"; STRING$(70, "Ü"); "ÛÜÛ"
PRINT "    Û"; STRING$(70, "Ü"); "Û"
END SUB

SUB drawformat
title$ = "Address Book For " + options.person
center 4, title$
IF options.names = true THEN
 LOCATE 6, 20
 PRINT "Name: ____________________________________"
END IF
IF options.adds = true THEN
 LOCATE 7, 20
 PRINT "Address: _________________________________"
END IF
IF options.csz = true THEN
 LOCATE 8, 20
 PRINT "City: __________ State: __ Zip: _____-____"
END IF
IF options.phone = true THEN
 LOCATE 9, 20
 PRINT "Phone: (___) ___-____ Ext. ____"
END IF
IF options.mail = true THEN
 LOCATE 10, 20
 PRINT "E-Mail: __________________________________"
END IF
END SUB

SUB edits
COLOR 12
coolbox
COLOR 13
OPEN "files.add" FOR RANDOM AS #1 LEN = LEN(options) * 10
a$ = incen$(4, "Your Name: ")
DO
 a% = a% + 1
 GET #1, a%, options
 IF options.person = a$ THEN EXIT DO
LOOP
COLOR 12
coolbox
CLOSE #1
filename$ = options.person + ".add"
OPEN filename$ FOR RANDOM AS #1 LEN = LEN(form) * 100
DO
 COLOR 13
 drawformat
 a$ = incen$(5, "Number To Change: ")
 a% = VAL(a$)
 COLOR 14
 IF options.names = true THEN
  LOCATE 6, 20: INPUT "Name: ", name$
  form.names = name$
 END IF
 IF options.adds = true THEN
  LOCATE 7, 20: INPUT "Address: ", address$
  form.address = address$
 END IF
 IF options.csz = true THEN
  LOCATE 8, 20: INPUT "City: ", city$
  form.city = city$
  LOCATE 8, 37: INPUT "State: ", state$
  form.state = state$
  LOCATE 8, 47: INPUT "Zip: ", zip$
  form.zip = zip$
 END IF
 IF options.phone = true THEN
  LOCATE 9, 20: INPUT "Phone: (", phone$
  form.phonearea = phone$
  LOCATE 9, 31: INPUT ") ", phone$
  form.phonepre = phone$
  LOCATE 9, 36: INPUT "-", phone$
  form.phonesuf = phone$
  LOCATE 9, 41: INPUT " Ext. ", phone$
  form.phoneext = phone$
 END IF
 IF options.mail = true THEN
  LOCATE 10, 20: INPUT "E-Mail: ", mail$
  form.mail = mail$
 END IF
 PUT #1, a%, form
 center 12, "<E>dit Another | <N>ew Entry | <M>ain Menu"
 DO
  a$ = UCASE$(key$)
  IF a$ = "E" THEN EXIT DO
  IF a$ = "N" THEN enters
  IF a$ = "M" THEN CLOSE #1: mainmenu
 LOOP
LOOP


END SUB

SUB enters
COLOR 12
coolbox
COLOR 13
OPEN "files.add" FOR RANDOM AS #1 LEN = LEN(options) * 10
a$ = incen$(4, "Your Name: ")
DO
 a% = a% + 1
 GET #1, a%, options
 IF options.person = a$ THEN EXIT DO
LOOP
COLOR 12
coolbox
CLOSE #1
filename$ = options.person + ".add"
OPEN filename$ FOR RANDOM AS #1 LEN = LEN(form) * 100
a% = 1
DO
 COLOR 13
 drawformat
 COLOR 14
 IF options.names = true THEN
  LOCATE 6, 20: INPUT "Name: ", name$
  form.names = name$
 END IF
 IF options.adds = true THEN
  LOCATE 7, 20: INPUT "Address: ", address$
  form.address = address$
 END IF
 IF options.csz = true THEN
  LOCATE 8, 20: INPUT "City: ", city$
  form.city = city$
  LOCATE 8, 37: INPUT "State: ", state$
  form.state = state$
  LOCATE 8, 47: INPUT "Zip: ", zip$
  form.zip = zip$
 END IF
 IF options.phone = true THEN
  LOCATE 9, 20: INPUT "Phone: (", phone$
  form.phonearea = phone$
  LOCATE 9, 31: INPUT ") ", phone$
  form.phonepre = phone$
  LOCATE 9, 36: INPUT "-", phone$
  form.phonesuf = phone$
  LOCATE 9, 41: INPUT " Ext. ", phone$
  form.phoneext = phone$
 END IF
 IF options.mail = true THEN
  LOCATE 10, 20: INPUT "E-Mail: ", mail$
  form.mail = mail$
 END IF
 PUT #1, a%, form
 a% = a% + 1
 center 12, "<N>ew Entry | <E>dit Entry | <M>ain Menu"
 DO
  a$ = UCASE$(key$)
  IF a$ = "N" THEN EXIT DO
  IF a$ = "E" THEN edits
  IF a$ = "M" THEN CLOSE #1: mainmenu
 LOOP
LOOP
END SUB

FUNCTION incen$ (row%, text$)
LOCATE row%, 41 - ((LEN(text$) + 5) / 2)
PRINT text$;
INPUT "", temp$
incen$ = temp$
END FUNCTION

SUB intro
CLS
COLOR 1
coolbox
COLOR 2
center 5, "Arrowhead Corporation's"
COLOR 3
center 7, "ÜÜÜÜÜ ÜÜÜÜ  ÜÜÜÜ  ÜÜÜÜ  ÜÜÜÜÜ  ÜÜÜÜ  ÜÜÜÜ"
center 8, "Û   Û Û   Û Û   Û Û   Û Û     Û     Û    "
center 9, "ÛßßßÛ Û   Û Û   Û ÛÛßß  Ûßßß   ßßßÜ  ßßßÜ"
center 10, "Û   Û Û   Û Û   Û Û ßÜ  Û         Û     Û"
center 11, "ß   ß ßßßß  ßßßß  ß   ß ßßßßß ßßßß  ßßßß "
center 13, "ÜÜÜÜ   ÜÜÜ   ÜÜÜ  Ü   Ü"
center 14, "Û   Û Û   Û Û   Û Û Üß "
center 15, "ÛßßßÜ Û   Û Û   Û ÛÛ   "
center 16, "Û   Û Û   Û Û   Û Û ßÜ "
center 17, "ßßßß   ßßß   ßßß  ß   ß"
COLOR 20
center 19, "Press Any Key"
DO WHILE INKEY$ = "": LOOP
END SUB

FUNCTION key$
DO
 kbd$ = ""
 kbd$ = INKEY$
 IF kbd$ <> "" THEN EXIT DO
LOOP
key$ = kbd$
END FUNCTION

SUB mainmenu
COLOR 5
coolbox
COLOR 6
center 4, "MAIN MENU"
center 5, "-------------"
COLOR 7
center 6, "<N>ew "
center 7, "<O>pen"
center 8, "<Q>uit"
DO
 a$ = UCASE$(key$)
 IF a$ = "N" THEN new
 IF a$ = "O" THEN opens
 IF a$ = "Q" THEN COLOR 8: coolbox: center 12, "Copyright (C) 1997, Arowhead Corporation": SYSTEM
 BEEP
LOOP
END SUB

SUB new
COLOR 8
coolbox
COLOR 9
center 4, "New Address Book"
center 5, "--------------------"
COLOR 10
person$ = incen$(6, "Your Name: ")
options.person = person$
name$ = LCASE$(incen$(7, "Name Line? [y,n] "))
IF name$ = "y" THEN
 options.names = true
ELSE
 options.names = false
END IF
add$ = LCASE$(incen$(8, "Address Line? [y,n] "))
IF add$ = "y" THEN
 options.adds = true
ELSE
 options.adds = false
END IF
ctstzp$ = LCASE$(incen$(9, "City,State,Zip Line? [y,n] "))
IF ctstzp$ = "y" THEN
 options.csz = true
ELSE
 options.csz = false
END IF
phone$ = LCASE$(incen$(10, "Phone Line? [y,n] "))
IF phone$ = "y" THEN
 options.phone = true
ELSE
 options.phone = false
END IF
mail$ = LCASE$(incen$(11, "E-Mail Line? [y,n] "))
IF mail$ = "y" THEN
 options.mail = true
ELSE
 options.mail = false
END IF
OPEN "files.add" FOR RANDOM AS #1 LEN = LEN(options) * 10
DO
 a% = a% + 1
 GET #1, a%, a$
 IF a$ = "" THEN EXIT DO
LOOP
PUT #1, a%, options
CLOSE #1
COLOR 11
coolbox
COLOR 12
center 12, "File Created!"
center 13, "Press Any Key To Begin Entering People"
a$ = key$
enters

END SUB

SUB opens
COLOR 12
coolbox
COLOR 13
OPEN "files.add" FOR RANDOM AS #1 LEN = LEN(options) * 10
a$ = incen$(4, "Your Name: ")
DO
 a% = a% + 1
 GET #1, a%, options
 IF options.person = a$ THEN EXIT DO
LOOP
COLOR 12
coolbox
CLOSE #1
filename$ = options.person + ".add"
OPEN filename$ FOR RANDOM AS #1 LEN = LEN(form) * 100
a% = 1
DO
 GET #1, a%, form
 COLOR 13
 drawformat
 COLOR 14
 IF options.names = true THEN
  LOCATE 6, 26
  PRINT form.names
 END IF
 IF options.adds = true THEN
  LOCATE 7, 29
  PRINT form.address
 END IF
 IF options.csz = true THEN
  LOCATE 8, 26
  PRINT form.city
  LOCATE 8, 44
  PRINT form.state
  LOCATE 8, 52
  PRINT form.zip
 END IF
 IF options.phone = true THEN
  LOCATE 9, 28
  PRINT form.phonearea
  LOCATE 9, 33
  PRINT form.phonepre
  LOCATE 9, 37
  PRINT form.phonesuf
  LOCATE 9, 47
  PRINT form.phoneext
 END IF
 IF options.mail = true THEN
  LOCATE 10, 28
  PRINT form.mail
 END IF
 center 12, "<N>ext Entry | <P>revious Entry | <M>ain Menu"
 DO
  a$ = UCASE$(key$)
  IF a$ = "N" THEN a% = a% + 1: EXIT DO
  IF a$ = "P" THEN
   a% = a% - 1
   IF a% = 0 THEN a% = 1
   EXIT DO
  END IF
  IF a$ = "M" THEN CLOSE #1: mainmenu
 LOOP
LOOP
END SUB
