Classic Computer Magazine Archive PROGRAM LISTING: 87-06/MAIL.LGO


TO ADDRESS
CS CT TS
SETCURSOR [12 10] PRINT [LOGO ADDRESS BOOK]
SETCURSOR [18 14] PRINT [by]
SETCURSOR [9 16] PRINT [M. Lorenz / A. Moose]
SETCURSOR [11 18] PRINT [December , 1986]
SETCURSOR [7 20] PRINT [c.1986, Antic Publishing]
PRESS.C
END

TO PRESS.C
SETCURSOR [4 22] PRINT [Press C to continue]
CHOOSE
END

TO CHOOSE
MAKE "CHOICE ( RC )
IF :CHOICE = "C [CT MENU]
IF :CHOICE = "1 [CT MAKE "DATA [] INPUT MENU]
IF :CHOICE = "2 [CT ADD MENU]
IF :CHOICE = "3 [CT MAKE "DATA [] UPDATE MENU]
IF :CHOICE = "4 [CT GETMAIL PRINT.ALL MENU]
IF :CHOICE = "5 [CT SELECT MENU]
IF :CHOICE = "6 [CT QUIT STOP]
CT PR [YOU ENTERED AN INCORRECT NUMBER]
WAIT 100 MENU
END

TO MENU
CT
PR [YOUR CHOICES ARE...]
PR []
PR [* 1 - CREATE A NEW MAILING LIST]
PR []
PR [* 2 - ADD TO THE EXISTING LIST]
PR []
PR [* 3 - UPDATE AN ENTRY]
PR []
PR [* 4 - PRINT OUT THE WHOLE LIST]
PR []
PR [* 5 - PRINT OUT A SELECTED NAME]
PR []
PR [* 6 - QUIT]
PR []
CHOOSE
END

TO ADD
GETMAIL
MAKE "DATA BL :NEWDATA
INPUT
END

TO UPDATE
GETMAIL
MAKE "NEWDATA BL :NEWDATA
PR [GIVE FIRST AND LAST NAME]
MAKE "TAG ( RL )
FIND
END

TO INPUT
CT
PR [ENTER FIRST AND LAST NAME]
PR [( Or END for Main Menu )]
MAKE "NAMELIST RL
IF EQUALP :NAMELIST [END] [DATASAVE STOP]
PR [ENTER STREET ADDRESS]
MAKE "STLIST RL
PR [ENTER CITY, STATE ZIP]
MAKE "CITYLIST RL
PR [DO YOU WANT TO MAKE CORRECTIONS? ( Y / N )]
MAKE "CHOICE RC
IF EQUALP :CHOICE "Y [INPUT STOP]
MAKE "DATA LPUT :NAMELIST :DATA
MAKE "DATA LPUT :STLIST :DATA
MAKE "DATA LPUT :CITYLIST :DATA
INPUT
END

TO PRINT.ALL
SETWRITE "P:
PR FIRST :NEWDATA
PR FIRST BF :NEWDATA
PR FIRST BF BF :NEWDATA
PR []
MAKE "NEWDATA BF BF BF :NEWDATA
IF EQUALP FIRST :NEWDATA "* [SETWRITE [] PRESS.C STOP]
PRINT.ALL
END

TO GETMAIL
SETREAD "D:MAILIST"
MAKE "NEWDATA RL
SETREAD []
END

TO SELECT
PR [GIVE FIRST AND LAST NAME]
MAKE "TAG RL
GETMAIL
SELECTPRNT
END

TO QUIT
CT
PR [THAT IS ALL, FOLKS]
WAIT 50
CT
END

TO FIND
IF EQUALP :TAG FIRST :NEWDATA [CORRECT STOP]
MAKE "DATA LPUT FIRST :NEWDATA :DATA
MAKE "DATA LPUT FIRST BF :NEWDATA :DATA
MAKE "DATA LPUT FIRST BF BF :NEWDATA :DATA
MAKE "NEWDATA BF BF BF :NEWDATA
IF EMPTYP :NEWDATA [PR [NO MATCHING NAME] WAIT 100 STOP]
FIND
END

TO CORRECT
PR [HERE IS THE CURRENT ENTRY]
PR []
PR FIRST :NEWDATA
PR FIRST BF :NEWDATA
PR FIRST BF BF :NEWDATA
PR []
PR [ENTER NAME]
MAKE "NAMELIST RL
PR [ENTER STREET ADDRESS]
MAKE "STLIST RL
PR [ENTER CITY, STAT ZIP]
MAKE "CITYLIST RL
PR []
PR [DO YOU WANT TO MAKE CORRECTIONS? ( Y / N )]
MAKE "CHOICE RC
IF EQUALP :CHOICE "Y [CORRECT STOP]
MAKE "NEWDATA BF BF BF :NEWDATA
MAKE "NEWDATA FPUT :CITYLIST :NEWDATA
MAKE "NEWDATA FPUT :STLIST :NEWDATA
MAKE "NEWDATA FPUT :NAMELIST :NEWDATA
CREATELIST
END

TO DATASAVE
MAKE "FILEND "*
MAKE "DATA LPUT :FILEND :DATA
SETWRITE "D:MAILIST
PR :DATA
SETWRITE []
QUIT
END

TO CREATELIST
MAKE "DATA LPUT FIRST :NEWDATA :DATA
MAKE "DATA LPUT FIRST BF :NEWDATA :DATA
MAKE "DATA LPUT FIRST BF BF :NEWDATA :DATA
MAKE "NEWDATA BF BF BF :NEWDATA
IF EMPTYP :NEWDATA [DATASAVE STOP]
CREATELIST
END

TO PRINT.SOME
SETWRITE "P:
PR FIRST :NEWDATA
PR FIRST BF :NEWDATA
PR FIRST BF BF :NEWDATA
SETWRITE []
END

TO SELECTPRNT
IF EQUALP :TAG FIRST :NEWDATA [PRINT.SOME PRESS.C STOP]
MAKE "NEWDATA BF BF BF :NEWDATA
IF EQUALP FIRST :NEWDATA "* [PR [NO MATCHING NAME FOUND] PRESS.C STOP]
SELECTPRNT
END

Back to previous page