home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 601-625 / apd602 / contactbase.amos / contactbase.amosSourceCode < prev    next >
AMOS Source Code  |  1993-02-25  |  12KB  |  283 lines

  1. Rem:******CONTACTBASE V2.1 MAY 1993 STEVE BYE************* 
  2. Rem
  3. Rem please note I am no longer developing this program 
  4. Rem
  5. WARN=0 : Music 1 : MS=1
  6. WIBB:
  7. If WARN=1 Then WARN=0 : Goto _MENU
  8. Screen Open 0,320,200,16,Lowres
  9. Hide : Flash Off : Curs Off : Cls 0
  10. Unpack 4 To 0 : _BOUNCE : Wait 80
  11. Fade 4 : Wait 60
  12. Rem:************************************ 
  13. Global RECORD,NAME$,DRESS$,PHONE$,MESSAGE$,DAT$,RECORDS,MON,Y$,X,SW$,Q$,WARN,KC
  14. Open Random 1,"contactlist"
  15. Field 1,40 As NAME$,160 As DRESS$,20 As PHONE$,240 As MESSAGE$,10 As DAT$
  16. RECLEN=470
  17. RECORDS=Lof(1)/RECLEN
  18. If RECORDS=0 Then Goto _MENU
  19. RECORD=1
  20. Get 1,RECORD
  21. Rem:***************menu*********************** 
  22. _MENU:
  23. Cls 0
  24. Unpack 5 To 0
  25. Paper 0 : Pen 1 : Curs Off : Show On : Change Mouse 2
  26. Reserve Zone 5
  27. Set Zone 1,80,95 To 217,111
  28. Set Zone 2,76,113 To 220,130
  29. Set Zone 3,77,132 To 216,148
  30. Set Zone 4,91,150 To 201,162
  31. Set Zone 5,129,168 To 162,180
  32. Pen 5
  33. KEEY:
  34. _TXTSCR
  35. While Mouse Key=0
  36. Wend 
  37. MZ=Mouse Zone
  38. If MZ=1 Then _SHUTTER : _INFO : Goto _MENU
  39. If MZ=3 Then _SHUTTER : _INPUT : Goto WIBB
  40. If MZ=2 and RECORDS>0 Then Pen 12 : _SHUTTER : Gosub _PRINTDATA : Goto _MENU
  41. If MZ=2 and RECORDS=0 Then Cls 0 : Locate 0,10 : Pen 3 : Centre "NO RECORDS AVAILABLE" : Print : Centre "THE RECORDS FILE IS MISSING," : Print : Centre "START A NEW FILE BY JOINING CONTACTBASE" : Wait 60 : While Mouse Key=0 : Wend : Goto _MENU
  42. If MZ=5 Then Stop 
  43. If MZ=4 and MS=1 Then Music Off : MS=0 : Wait 20 : Goto KEEY
  44. If MZ=4 and MS=0 Then Music 1 : MS=1 : Wait 20 : Goto KEEY
  45. Goto KEEY
  46. Rem:***************join list*********************
  47. Shared Y$,MX,DW
  48. Procedure _INPUT
  49. NAM:
  50. Screen Open 0,640,200,16,Hires
  51. NE=0
  52. Inverse Off : Paper 0 : Pen 5 : Curs Off : Cls 0 : Home 
  53. Centre "PLEASE TYPE YOUR MESSAGE, ONLY PRESS RETURN WHEN FINISHED ON EACH SECTION."
  54. Print : Centre "ALL YOUR TEXT WILL BE CONVERTED TO UPPER CASE. USE BACKSPACE TO DELETE"
  55. Print : Centre "YOU WILL BE ENTRY NUMBER "+Str$(RECORDS+1)
  56. Pen 15 : Locate 0,5 : Centre "SECTION 1: Your name/handle (Max 40 chars)" : Pen 4 : Print : MX=40 : DW=6 : _GK : _SWEAR
  57. If WARN=1 Then Pop Proc
  58. NAME$=Upper$(Y$)
  59. If Len(NAME$)=0 Then NAME$="* No entry made *" : Inc NE
  60. _ADDR:
  61. Pen 15 : Locate 0,8 : Centre "SECTION 2: Address (Max 2 lines)" : Pen 4 : DW=9 : MX=160 : _GK : _SWEAR
  62. If WARN=1 Then Pop Proc
  63. DRESS$=Upper$(Y$)
  64. If Len(DRESS$)=0 Then DRESS$="* No entry made *" : Inc NE
  65. _FONE:
  66. Print 
  67. Pen 15 : Locate 0,11 : Centre "SECTION 3: Phone No.(Max 20 chars)" : Pen 4 : Print : MX=20 : DW=12 : KC=0 : _GK : _SWEAR
  68. If WARN=1 Then Pop Proc
  69. PHONE$=Upper$(Y$)
  70. If PHONE$="" Then PHONE$="*No entry made*" : Inc NE
  71. MESS:
  72. Pen 15 : Locate 0,14 : Centre "SECTION 4: MESSAGE (Max 3 lines)" : Pen 4 : Print : MX=240 : DW=15 : _GK : _SWEAR
  73. If WARN=1 Then Pop Proc
  74. MESSAGE$=Upper$(Y$)
  75. If MESSAGE$="" Then MESSAGE$="* No entry made *" : Inc NE
  76. _DAT:
  77. Print 
  78. Pen 15 : Locate 0,18 : Centre "SECTION 5: DATE (Max 10 chars)" : Print : Pen 4 : MX=10 : DW=19 : _GK : _SWEAR
  79. If WARN=1 Then Pop Proc
  80. DAT$=Upper$(Y$)
  81. If DAT$="" Then DAT$="*No entry*" : Inc NE
  82. Clear Key : Cls 0 : Home : Curs Off : Print : Print : Print : Centre NAME$ : Print : Print : Centre DRESS$
  83. Print : Print : Centre PHONE$ : Print : Print : Centre MESSAGE$ : Print : Print : Centre DAT$
  84. Clear Key : Locate 0,20 : Inverse On : Print : Print : Print : Centre "Are you happy with this? Y/N"
  85. KK$="" : While KK$="" : KK$=Inkey$ : Wend 
  86. KK$=Upper$(KK$)
  87. If KK$="Y" Then Goto UDS
  88. If KK$="N" Then Goto NAM
  89. UDS:
  90. If NE>=4 Then Boom : Close 1 : Cls 3 : Locate 0,10 : Pen 3 : Centre "SORRY ENTRY REJECTED" : Wait Key : Goto REW
  91. If RECORD=0 Then Inc RECORD
  92. Put 1,RECORDS+1
  93. Close 1
  94. Inc RECORDS
  95. REW:
  96. NAME$="" : DRESS$="" : PHONE$="" : MESSAGE$="" : DAT$=""
  97. End Proc
  98. Rem:***********************show list************** 
  99. _PRINTDATA:
  100. RECORD=1
  101. FF:
  102. If RECORD>RECORDS Then Boom : Return 
  103. MMM:
  104. Screen Open 0,640,200,16,Hires
  105. Curs Off : Cls 0 : Paper 0 : Home : Pen 5
  106. Reserve Zone 11
  107. Locate 1,1 : Print Border$(Zone$("FIRST",1),1)
  108. Locate 8,1 : Print Border$(Zone$("LAST",2),1)
  109. Locate 14,1 : Print Border$(Zone$("NEXT",3),1)
  110. Locate 20,1 : Print Border$(Zone$("-1",4),1)
  111. Locate 24,1 : Print Border$(Zone$("+10",5),1)
  112. Locate 29,1 : Print Border$(Zone$("-10",6),1)
  113. Locate 34,1 : Print Border$(Zone$("+100",7),1)
  114. Locate 40,1 : Print Border$(Zone$("-100",8),1)
  115. Locate 46,1 : Print Border$(Zone$("PRINT RECORD",9),1)
  116. Locate 60,1 : Print Border$(Zone$("MUSIC TOG",10),1)
  117. Locate 71,1 : Print Border$(Zone$("EXIT",11),1)
  118. Get 1,RECORD
  119. Locate 0,4
  120. Pen 4 : Curs Off : Under On : Print "NAME:" : Under Off 
  121. Pen 15 : Print NAME$
  122. Pen 4 : Under On : Print : Print "ADDRESS:" : Pen 15 : Under Off : Print DRESS$
  123. Pen 4 : Under On : Print : Print "PHONE:" : Pen 15 : Under Off : Print PHONE$
  124. Pen 4 : Under On : Print : Print "MESSAGE:" : Under Off : Pen 15 : Print MESSAGE$
  125. Pen 4 : Under On : Print : Print "DATE:" : Under Off : Pen 15 : Print DAT$
  126. Under On : Print : Pen 3 : Centre "CONTACT "+Str$(RECORD)+" OF"+Str$(RECORDS) : Under Off 
  127. KEE:
  128. While Mouse Key=0 : Wend 
  129. KK=Mouse Zone
  130. If KK=3 and RECORD<RECORDS Then Fade 2 : Wait 15 : Goto CUNTINE : Rem:next record
  131. If KK=11 Then Return 
  132. If KK=1 Then Goto _PRINTDATA : Rem:1st record 
  133. If KK=4 and RECORD>1 Then Dec RECORD : Fade 2 : Wait 15 : Goto MMM : Rem:back one record
  134. If KK=5 and RECORD+10<=RECORDS Then RECORD=RECORD+10 : Fade 2 : Wait 15 : Goto MMM : Rem:forward +10
  135. If KK=7 and RECORD+100<=RECORDS Then RECORD=RECORD+100 : Fade 2 : Wait 15 : Goto MMM
  136. If KK=8 and RECORD-100>=1 Then RECORD=RECORD-100 : Fade 2 : Wait 15 : Goto MMM
  137. If KK=6 and RECORD-10>=1 Then RECORD=RECORD-10 : Fade 2 : Wait 15 : Goto MMM : Rem back 10 recs 
  138. If KK=2 Then RECORD=RECORDS : Fade 2 : Wait 15 : Goto MMM : Rem: last record 
  139. If KK=9 Then Lprint "NAME: ";NAME$ : Lprint "ADDRESS: ";DRESS$ : Lprint "PHONE: ";PHONE$ : Lprint MESSAGE$ : Lprint DAT$ : Goto KEE
  140. If KK=10 and MS=1 Then Music Off : MS=0 : Wait 60 : Goto KEE
  141. If KK=10 and MS=0 Then Music 1 : MS=1 : Wait 60
  142. Goto KEE
  143. CUNTINE:
  144. Inc RECORD : Goto FF
  145. Procedure _INFO
  146. Screen Open 0,640,200,8,Hires
  147. Curs Off : Hide : Paper 0 : Pen 4 : Cls 0
  148. Inverse On : Centre "CONTACTBASE VERSION 2.1     INFORMATION" : Inverse Off 
  149. Pen 5 : Locate 0,3 : Print "Thankyou for taking the trouble to look here, the idea behind CONTACTBASE"
  150. Print "is quite simple, it is like a roving notice board which, hopefully you and many"
  151. Print "other AMIGA users can use to get in touch with each other to swap software"
  152. Print "ideas,help leave messages,greetings or advertise a service  etc.........."
  153. Print "Commercial companys, P.D Librarys and magazines are welcome to use CONTACTBASE"
  154. Print "In fact this software is for EVERYONE'S use, all I ask is keep the language"
  155. Print "to a reasonable minimum and please no slagging off of people!!!"
  156. Print : Print "If you would like to enter your details on CONTACTBASE it couldn't be simpler"
  157. Print "From the main menu select JOIN CONTACTBASE by clicking on it with the mouse."
  158. Print "and type in your details as requested in each section, but dont press return "
  159. Print "until you have completed a section.  When you have filled your details you will"
  160. Print "be shown what you have typed and asked if you are happy with it if yes press Y"
  161. Print "If you want to redo it then press N."
  162. Print : Print "Make sure this disk is NOT write protected, your data needs to be saved to disk"
  163. Print "To view all the entries click on VIEW CONTACTBASE, once there click on the "
  164. Print "appropiate boxes at the top of the screen."
  165. Print : Print "I think all the other options are self explanatory, really."
  166. Locate 0,23 : Pen 3 : Centre "PRESS A MOUSE KEY"
  167. While Mouse Key=0 : Wend 
  168. Cls 0 : Home : 
  169. Pen 4 : Inverse On : Centre "CONTACTBASE VERSION 2.1     INFORMATION    CONT...." : Inverse Off 
  170. Pen 7 : Print : Print : Centre "Some new features since V1.0......."
  171. Print : Print : Centre "Bug fixed, where crashes if view list straight after entering data."
  172. Print : Centre "Bug fixed, where music restarted after input."
  173. Print : Centre "Rewritten info screens. Your reading it."
  174. Print : Centre "Now point and click driven menu's on most screens."
  175. Print : Centre "Much larger fields for messages etc."
  176. Print : Centre "Uses proper backspace key instead of \ during input."
  177. Print : Centre "New front end/menu screen and music"
  178. Print : Centre "Print record option and music toggle while on view list."
  179. Print : Centre "Swear word filter"
  180. Print : Centre "All input now converts to uppercase and no line overlap."
  181. Print : Centre "Rewritten in AMOS V1.35 so apparently is compatible with ALL AMIGAS"
  182. Print : Centre "A lot of cosmetic changes and frills!!!"
  183. Locate 0,23 : Pen 3 : Centre "PRESS MOUSE"
  184. While Mouse Key=0 : Wend 
  185. Cls 0 : Home : 
  186. Pen 4 : Inverse On : Centre "CONTACTBASE VERSION 2.1     INFORMATION    CONT...." : Inverse Off 
  187. Pen 5 : Print : Print : Print : Print : Centre "If you have any suggetions/found bugs/ideas/constructive crits"
  188. Print : Centre "then get in touch with me, my address is entry number one....of course."
  189. Print : Print : Centre "If you write to me please send your copy of CONTACTBASE so I can update a master"
  190. Print : Centre "copy and you will recieve back your disk with the master copied onto it."
  191. Print : Print : Centre "IMPORTANT, PLEASE SEND STAMPED ADDRESSSED ENVELOPE IF YOU WANT A REPLY"
  192. Print : Print : Centre "If you want to contact me for normal swapping then no sae required"
  193. Print : Centre "but still send CONTACTBASE if you can...."
  194. Print : Print : Print : Centre "PLEASE DO NOT PUT THIS PROGRAM ON A COMPILATION "
  195. Print : Centre "AS IT NEEDS ALL THE DISK SPACE POSSIBLE"
  196. Locate 0,23 : Pen 3 : Centre "PRESS MOUSE"
  197. While Mouse Key=0 : Wend 
  198. Cls 0 : Home : 
  199. Pen 7 : Print : Print : Centre "-=CREDITS=-"
  200. Print : Print : Centre "ORIGINAL CONCEPT/PROGRAMMING V1.0...............STEVE BYE."
  201. Print : Print : Centre "V2.0............................................A.POSTHILL"
  202. Print : Print : Centre "V2.1............................................STEVE.BYE"
  203. Print : Centre "(using some ideas from A.POSTHILL)"
  204. Print : Print : Centre "MUSIC, HYPNOTIC HAMMER...........................EXTENSORS"
  205. Print : Centre "(FROM A PD DISK OF MODS)"
  206. Print : Print : Print : Centre "THE PROGRAMMER CANNOT BE HELD RESPONSIBLE FOR ANY ACTION(S) OR INACTION"
  207. Print : Centre "THROUGH THE USE OF CONTACTBASE OR ANY OF IT'S VARIANTS."
  208. Print : Centre "NO ENTRY WHAT SO EVER IS RECOMMENDED BY THE AUTHOR IN ANY WAY, AND NO"
  209. Print : Centre "RESPONSIBILITY CAN BE TAKEN FOR ANY MESSAGE OR IT'S CONTENTS."
  210. Wait 50
  211. Locate 0,23 : Pen 3 : Centre "PRESS MOUSE"
  212. While Mouse Key=0 : Wend 
  213. End Proc
  214. Procedure _GK
  215. Curs Off 
  216. KC=0
  217. Y$=""
  218. EEE:
  219. KK$="" : While KK$="" : KK$=Inkey$ : Wend 
  220. If KK$=Chr$(13) Then Goto UU
  221. If Scancode=65 and KC>0 Then Y$=Left$(Y$,KC-1) : Dec KC : Locate 0,DW : Print Y$+" " : Goto EEE
  222. Locate 0,5 : Print "COUNT:";KC;"  "
  223. If KC>=MX Then Bell : Goto EEE
  224. YT:
  225. Y$=Y$+KK$ : Locate 0,DW : Inc KC : Print Y$ : Goto EEE
  226. UU: KC=0
  227. End Proc
  228. Procedure _SWEAR
  229. SW$="cunt" : _LOOK : SW$="shit" : _LOOK : SW$="piss" : _LOOK : SW$="bollocks" : _LOOK
  230. SW$="barstard" : _LOOK : SW$="fuck" : _LOOK
  231. SW$="wank" : _LOOK
  232. End Proc
  233. Procedure _LOOK
  234. Q$=Lower$(Y$)
  235. X=Instr(Q$,SW$)
  236. If X<>0 Then Cls 0 : Pen 3 : Locate 10,0 : Centre "AHA! THE "+SW$+" WORD SPOTTED, NAUGHTY, NAUGHTY!" : Clear Key : Wait Key : WARN=1 : Pop Proc
  237. End Proc
  238. Procedure _SHUTTER
  239. For WB=0 To 24 : Ink 0
  240. For WBL=0 To 175 Step 25
  241. Draw 0,WB+WBL To 319,WB+WBL : Next WBL
  242. Wait 2 : Next WB
  243. End Proc
  244. Procedure _BOUNCE
  245. T=Timer
  246. Y=24 : D=1 : R=1 : COUNT=0 : COUNT2=0
  247. LPY:
  248. If COUNT>3 Then D=D+R : COUNT=0 : Inc COUNT2
  249. If COUNT2>5 Then R=-R : COUNT2=0
  250. Screen Display 0,128,Y,,
  251. Wait Vbl 
  252. Y=Y+D
  253. If Y>81 or Y<3 Then Inc COUNT : D=-D
  254. If Mouse Key=1 Then Goto FGRL
  255. Goto LPY
  256. FGRL:
  257. End Proc
  258. Procedure _TXTSCR
  259. Rem do a | then any letter to end messagea ^ is a pause
  260. Pen 13
  261. AE=Dfree/470
  262. M$="CONTACTBASE  VERSION 2.1        "+Chr$(13)
  263. D$="DISK SPACE "+Str$(Dfree)+" BYTES      "+Chr$(13)
  264. M$=M$+D$
  265. D$="       CHIP MEM "+Str$(Chip Free)+"              "+Chr$(13) : M$=M$+D$
  266. D$="       FAST MEM "+Str$(Fast Free)+"              "+Chr$(13)+"    SPACE AVALIABLE FOR ENTRIES="+Str$(AE)+"  "+Chr$(13)+"                ENTRIES ON THIS DISK="+Str$(RECORDS)+"          "+Chr$(13)
  267. M$=M$+D$
  268. M$=M$+Space$(39)
  269. EDC=1 : Def Scroll 1,0,192 To 320,200,-4,0
  270. 60
  271. CC=0
  272. Repeat 
  273. Scroll 1 : Inc CC : Wait Vbl 
  274. Until CC=2
  275.  CC=0
  276. Pen Rnd(14)+1
  277. CX$=Mid$(M$,EDC,1) : Locate 39,24 : Print CX$
  278. If CX$=Chr$(13) Then Wait 15
  279. Inc EDC
  280. If EDC=Len(M$) Then EDC=1
  281. If Mouse Key<>0 Then Locate 39,24 : Cline : Pop Proc
  282. Goto 60
  283. End Proc