home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / EGBBBS.ARC / U.MREADERS (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  7.3 KB  |  365 lines

  1. 10 ;"OPEN15,9,15,"S0:U.M*":PRINT#15,"I":SAVE"U.MREADERS",9:VERIFY"U.M*",9
  2. 15 ;
  3. 20 ;     U.M[135]ERS
  4. 25 ;
  5. 30 ;[172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172][172]
  6. 35 ;
  7. 40 PSTN .BYTE 0
  8. 45 ;
  9. 50 GEMOS JSR RET2
  10. 55 U0 LDA M[145]TH:[175] #15:STA M[145]TH
  11. 60 JSR U19:LDX #1
  12. 65 U1 CPX M[145]TH:BEQ U3
  13. 70 U2 INY:LDA MNT,Y:BPL U2
  14. 75 INX:BNE U1
  15. 80 ;
  16. 85 U3 LDA MNT,Y:STY TRY:BNE U6
  17. 90 U7 JSR CHAR;  [153] CHAR
  18. 95 ;
  19. 100 U4 LDY TRY:LDA MNT,Y:BMI U5
  20. 105 U6 INC TRY:BNE U7
  21. 110 ;
  22. 115 U5 JSR SPC
  23. 120 ;
  24. 125 LDA DATE:[175] #31:JSR [198]I
  25. 130 LDA TENS:CMP #48:BEQ U8
  26. 135 JSR CHAR
  27. 140 U8 LDA [145]ES:JSR CHAR
  28. 145 LDA #44:JSR CHAR:JSR SPC
  29. 150 ;
  30. 155 NY1 LDA #"1":JSR CHAR
  31. 160 NY2 LDA #"9":JSR CHAR
  32. 165 LDA YEAR:JSR [198]I
  33. 170 LDA TENS:JSR CHAR
  34. 175 LDA [145]ES:JSR CHAR:JMP RET1
  35. 180 ;
  36. 185 MNT .BYTE "MID$ANUARYASCEBRUARY(null)ARCHATNPRIL(null)AYMID$UNEMID$ULYATNUGUST(null)EPTEMBER(null)CTOBER"
  37. 190 .BYTE "(null)OVEMBERSTR$ECEMBER(null)
  38. 195 ;
  39. 200 MXM .BYTE 31 28 31 30 31 30 31 31 30 31 30 31
  40. 205 ;
  41. 210 ;**********************************
  42. 215 ;
  43. 220 ; SHOW MESSAGE TITLE
  44. 225 ;
  45. 230 STIT LDY SERCH:LDA SERCH+1
  46. 235 JSR ROMNUM
  47. 240 ;
  48. 245 U24 LDY TRY:CPY #6:BEQ U23
  49. 250 JSR SPC:INC TRY:BNE U24
  50. 255 ;
  51. 260 U23 LDA #58:JSR CHAR
  52. 265 ;
  53. 270 JSR U19
  54. 275 UB LDY TRY:CPY #28:BEQ U25
  55. 280 LDA TITL,Y:BEQ U25
  56. 285 JSR CHAR:INC TRY:BNE UB
  57. 290 ;
  58. 295 U25 LDA RPLI:BEQ U26
  59. 300 JSR RET1:LDA #<XREP:LDX #>XREP
  60. 305 JSR U39
  61. 310 ;
  62. 315 U26 LDA PAGE:CMP #1:BEQ UA
  63. 320 JSR RET1:LDA #<XPGG:LDX #>XPGG
  64. 325 JSR U39
  65. 330 ;
  66. 335 LDA PAGE:ORA #48; PAGE #
  67. 340 JSR CHAR:JMP RET1
  68. 345 ;
  69. 350 U39 STX RATS:JSR STRING:JMP RATF
  70. 355 ;
  71. 360 ;********************************
  72. 365 ;
  73. 370 ; SHOW SENDER OF MESSAGE
  74. 375 ;
  75. 380 SHSN LDA #<XSBY:LDX #>XSBY:STX RATS
  76. 385 JSR STRING:JSR U19
  77. 390 ;
  78. 395 UC LDY TRY:CPY #12:BEQ UA
  79. 400 LDA MALE,Y:BEQ UA
  80. 405 JSR CHAR:INC TRY:BNE UC
  81. 410 ;
  82. 415 UA JMP RET1
  83. 420 ;
  84. 425 ;********************************
  85. 430 ;
  86. 435 HDNS LDA #1; COMPLETE MSG HEADER
  87. 440 .BYTE 44
  88. 445 TTLS LDA #0; TITLE ONLY
  89. 450 STA HFLG
  90. 455 ;
  91. 460 JSR LOOK:BCC UD; GET START PT
  92. 465 UF JMP EMAIL
  93. 470 ;
  94. 475 UD LDA #43:STA MODE; CONT. MODE
  95. 480 JSR MCAT:BCS UF; NOT FOUND
  96. 485 ;
  97. 490 UE JSR HC0M:BCS U21; CHECK ACCSS
  98. 495 ;
  99. 500 JSR RET1:JSR STIT
  100. 505 LDA HFLG:BEQ U28; TTLS
  101. 510 ;
  102. 515 LDA PAGE:CMP #1:BNE U28
  103. 520 JSR SHSN;              SENDER
  104. 525 LDA #<XSON:LDX #>XSON; DATE
  105. 530 JSR U39:JSR U0
  106. 535 ;
  107. 540 U28 LDA #10:STA TRY
  108. 545 U27 JSR BROK:LDA RATS:BNE UF
  109. 550 DEC TRY:BNE U27
  110. 555 ;
  111. 560 U21 JSR CKMO:CMP #255:BEQ UF
  112. 565 BNE UE
  113. 570 ;
  114. 575 ;********************************
  115. 580 ;
  116. 585 ; SEND A SPACE
  117. 590 ;
  118. 595 SPC LDA #32:JMP CHAR
  119. 600 ;
  120. 605 ;********************************
  121. 610 ;
  122. 615 ; ENTER MESSAGE NUMBER AND LOCATE
  123. 620 ; POSITON IN BUFFER WITH IT
  124. 625 ;
  125. 630 LOOK LDA #<XENU:LDX #>XENU
  126. 635 JSR U39; RATS ON/STRING/RATS OFF
  127. 640 ;
  128. 645 STA SERCH:STA SERCH+1:STA MODE
  129. 650 ;
  130. 655 LDX #6:STX MIN+1
  131. 660 JSR GEB:LDA RAPR:BEQ UG
  132. 665 ;
  133. 670 JSR COTEMP; ASCI TO MISC
  134. 675 ;
  135. 680 LDY #0:STY LNTH
  136. 685 U29 LDA MISC,Y:CMP #48:BCC U30
  137. 690 CMP #58:BCS U30
  138. 695 INY:BNE U29
  139. 700 ;
  140. 705 U30 STA MODE
  141. 710 STY LNTH:BEQ UG
  142. 715 CPY #5:BCC U34;     NORMAL EXIT
  143. 720 LDA MODE:CMP #48:BCC U34
  144. 725 CMP #58:BCS U34
  145. 730 LDA MISC:CMP #"3":BCS UG
  146. 735 ;
  147. 740 U34 JSR ASCN:JSR RET2:CLC:RTS
  148. 745 UG SEC:RTS
  149. 750 ;
  150. 755 ;*******
  151. 760 ;
  152. 765 ; FIND BUFFER POSITON USING LINE
  153. 770 ; NUMBER LO/HI IN SERCH+1/LO
  154. 775 ;
  155. 780 MCAT LDA #0:STA PSTN:LDY #99
  156. 785 UI LDA NUMHI,Y:CMP SERCH+1:BNE UH
  157. 790 LDA NUMLO,Y:CMP SERCH:BNE UH
  158. 795 ;
  159. 800 U22 STY PSTN:CLC:RTS
  160. 805 UH DEY:BPL UI
  161. 810 JSR L0ST:SEC:RTS
  162. 815 ;
  163. 820 ;*******************************
  164. 825 ;
  165. 830 ; CHECK FOR CONTINUOUS READ UP OR
  166. 835 ; DOWN
  167. 840 ;
  168. 845 CKMO LDA MODE:BEQ UJ
  169. 850 CMP #43:BEQ UK
  170. 855 CMP #45:BNE UJ
  171. 860 LDA SERCH:BNE U17;  WAS DEC SERCH
  172. 865 DEC SERCH+1
  173. 870 U17 DEC SERCH
  174. 875 LDA PSTN:SEC:SBC #1:BCS U12
  175. 880 ;
  176. 885 UJ LDA #255
  177. 890 U12 STA PSTN:RTS
  178. 895 ;
  179. 900 UK INC SERCH:BNE U18
  180. 905 INC SERCH+1
  181. 910 U18 LDA PSTN:CLC:ADC #1
  182. 915 CMP #100:BCC U12:BCS UJ
  183. 920 ;
  184. 925 ;*******************************
  185. 930 ;
  186. 935 ; CHECK FOR LIVE MESSAGE, AND
  187. 940 ; WHETHER USER SHOULD HAVE ACCESS
  188. 945 ; TO IT IF PRIVATE
  189. 950 ;
  190. 955 HC0M JSR KRNLOFF:LDX PSTN
  191. 960 LDA HIHEAD,X:STA $FE
  192. 965 LDA LOHEAD,X:STA $FD:JSR PRQ
  193. 970 ;
  194. 975 LDA LIVE:CMP #1:BNE U13
  195. 980 LDA PRIVT:BEQ U14
  196. 985 LDA FROM:CMP UNUM:BEQ U14
  197. 990 LDA TO:CMP UNUM:BEQ U14
  198. 995 LDA ACSS:CMP #64:BCC U13
  199. 1000 LDA ACSS+1:AND #16:BEQ U13
  200. 1005 BNE U14
  201. 1010 U13 SEC:RTS
  202. 1015 U14 CLC:RTS
  203. 1020 ;
  204. 1025 ;*******************************
  205. 1030 ;
  206. 1035 ; DROP MESSAGE HEADER INTO FIELDS
  207. 1040 ;
  208. 1045 PRQ LDY #59
  209. 1050 UM LDA ($FD),Y:STA LIVE,Y
  210. 1055 DEY:BPL UM
  211. 1060 JMP KRNLON
  212. 1065 ;
  213. 1070 ;*******************************
  214. 1075 ;
  215. 1080 ; ALLOW USER TO INPUT NUMBER UP TO
  216. 1085 ; 32767, THEN CONVERT TO 2 BYTE
  217. 1090 ; NUMBER IN SERCH+1/LO
  218. 1095 ;
  219. 1100 ASCN LDA #0:STA 13
  220. 1105 LDA #<MISC:STA 34:STA 100
  221. 1110 LDA #>MISC:STA 35:STA 101
  222. 1115 ;
  223. 1120 LDA LNTH:TAY
  224. 1125 ;
  225. 1130 JSR FAC1:JSR SWCH
  226. 1135 STY SERCH:STA SERCH+1:RTS
  227. 1140 ;
  228. 1145 ;*******************************
  229. 1150 ;
  230. 1155 ; INITIALIZE READER BUFFER
  231. 1160 ;
  232. 1165 IDIT LDY #99:LDA #0:STA NCNT
  233. 1170 UN STA READER,Y:DEY:BPL UN
  234. 1175 RTS
  235. 1180 ;
  236. 1185 ; STORE BUFFER PSTN OF LOCATED
  237. 1190 ; MESSAGES
  238. 1195 ;
  239. 1200 IDCM TYA:LDX NCNT
  240. 1205 STA READER,X:INC NCNT:RTS
  241. 1210 ;
  242. 1215 ;*******************************
  243. 1220 ;
  244. 1225 ; STORE NEW MESSAGES IN READER
  245. 1230 ;
  246. 1235 FNOO JSR IDIT:LDY #0:STY F1L
  247. 1240 UO LDA GETTO,Y:CMP #251:BCS UP
  248. 1245 CMP UNUM:BNE UQ
  249. 1250 INC F1L; COUNT ALL BUT JUNK MAIL
  250. 1251 ;
  251. 1255 UP INY:JSR IDCM:DEY
  252. 1260 UQ INY:CPY #100:BNE UO
  253. 1265 RTS
  254. 1270 ;
  255. 1275 ;*******************************
  256. 1280 ;
  257. 1285 ;LOCATE MESSAGE THREADS. OWNR/HI
  258. 1290 ;IS SET BY A READ OR INPUT BY USER
  259. 1295 ; IF FROM MENU
  260. 1300 ;
  261. 1305 THRD LDA OWNR:BNE UR
  262. 1310 LDA OWNR+1:BNE UR
  263. 1315 ;
  264. 1320 JSR LOOK:STA OWNR+1:STY OWNR
  265. 1325 ;
  266. 1330 UR JSR KRNLOFF:JSR IDIT
  267. 1335 ;
  268. 1340 LDA #224:STA $FE
  269. 1345 LDX #0:STX $FD; X IS PSTN BYTE
  270. 1350 ;
  271. 1355 UT LDY #0:LDA ($FD),Y
  272. 1360 CMP #1:BNE US
  273. 1365 ;
  274. 1370 LDY #4:LDA ($FD),Y
  275. 1375 CMP OWNR:BNE US
  276. 1380 INY:LDA ($FD),Y
  277. 1385 CMP OWNR+1:BNE US
  278. 1390 ;
  279. 1395 STX TEMP:TXA:TAY
  280. 1400 INY:JSR IDCM:DEY:LDX TEMP
  281. 1405 ;
  282. 1410 US LDA $FD:CLC:ADC #60:STA $FD
  283. 1415 JSR AFE
  284. 1420 INX:CPX #100:BNE UT
  285. 1425 JMP KRNLON
  286. 1430 ;
  287. 1435 ;******************************
  288. 1440 ;
  289. 1445 ; DROP HEADER BUFFER TILL 1ST POS
  290. 1450 ; IS PAGE 1
  291. 1455 ;
  292. 1460 BUMP JSR KRNLOFF:JSR ROTT
  293. 1465 LDA #224:STA $FE:STA $FC
  294. 1470 LDA #60:STA $FD
  295. 1475 LDA #0:STA $FB:TAX:TAY
  296. 1480 ;
  297. 1485 UU LDA ($FD),Y:STA ($FB),Y
  298. 1490 LDA #0:STA ($FD),Y; INIT TOP BLOK
  299. 1495 INY:CPY #60:BNE UU
  300. 1500 ;
  301. 1505 LDA $FE:STA $FC
  302. 1510 LDA $FD:STA $FB
  303. 1515 CLC:ADC #60:STA $FD:JSR AFE
  304. 1520 ;
  305. 1525 INX:CPX #100:BEQ UV
  306. 1530 LDY #0:BEQ UU
  307. 1535 ;
  308. 1540 UV LDA 57345:CMP #1:BNE BUMP
  309. 1545 ;DON'T SAVE MULTI+PAGE MSGS IN EVENT OF A BUMP
  310. 1550 ;
  311. 1555 JMP KRNLON
  312. 1560 ;
  313. 1565 ;********************************
  314. 1570 ;
  315. 1575 ; DROP ALL POINTER TABLES 1+ BYTES
  316. 1580 ;
  317. 1585 ROTT LDY #0
  318. 1590 UW LDA NUMHI+1,Y:STA NUMHI,Y
  319. 1595 LDA NUMLO+1,Y:STA NUMLO,Y
  320. 1600 LDA GETTO+1,Y:STA GETTO,Y
  321. 1605 INY:CPY #99:BNE UW
  322. 1610 ;
  323. 1615 LDA #0
  324. 1620 STA NUMHI,Y:STA NUMLO,Y
  325. 1625 STA GETTO,Y:RTS
  326. 1630 ;
  327. 1635 ;******************************
  328. 1640 ;
  329. 1645 AFC LDA #0:ADC $FC:STA $FC:RTS
  330. 1650 AFE LDA #0:ADC $FE:STA $FE:RTS
  331. 1655 ;
  332. 1660 ;******************************
  333. 1665 ;
  334. 1670 ; ENTER W/A LOW  Y HI
  335. 1675 ;
  336. 1680 ROMNUM JSR BSET:JSR BSHO
  337. 1685 STA $FB:STY $FC:LDY #1:STY TRY
  338. 1690 U15 LDY TRY:LDA ($FB),Y:BEQ U16
  339. 1695 JSR CHAR:INC TRY:BNE U15
  340. 1700 U16 JMP SPC
  341. 1705 ;
  342. 1710 ;
  343. 1715 ; SET MAX DAYS/MONTH
  344. 1720 ;
  345. 1725 LEAP LDA BMO:CMP #2:BNE UX
  346. 1730 ;
  347. 1735 LDA BYR:AND #1:BNE UX
  348. 1740 ;
  349. 1745 LDA BYR:SEC:SBC #80:BEQ UZ
  350. 1750 UY SBC #4:BEQ UZ:BCS UY
  351. 1755 ;
  352. 1760 UX LDX BMO:DEX:LDA MXM,X
  353. 1765 U11 STA MXDA
  354. 1770 RTS
  355. 1775 UZ LDA #29:BNE U11
  356. 1780 ;
  357. 1785 U19 LDY #0:STY TRY:STY RATS:RTS
  358. 1790 ;
  359. 1795 XSBY .BYTE "[198]ROM  ":.BYTE 58 0
  360. 1800 XSON .BYTE "[211]ENT  ":.BYTE 58 0
  361. 1805 XREP .BYTE "       ** [210]EPLY **     ":.BYTE 0
  362. 1810 XPGG .BYTE "[208]AGE  ":.BYTE 58 18 32 0
  363. 1815 ;
  364. 1820 .FILE 0:V.TEXT
  365.