home *** CD-ROM | disk | FTP | other *** search
- 10 ;"OPEN15,9,15,"S0:U.M*":PRINT#15,"I":SAVE"U.MREADERS",9:VERIFY"U.M*",9
- 15 ;
- 20 ; U.M[135]ERS
- 25 ;
- 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]
- 35 ;
- 40 PSTN .BYTE 0
- 45 ;
- 50 GEMOS JSR RET2
- 55 U0 LDA M[145]TH:[175] #15:STA M[145]TH
- 60 JSR U19:LDX #1
- 65 U1 CPX M[145]TH:BEQ U3
- 70 U2 INY:LDA MNT,Y:BPL U2
- 75 INX:BNE U1
- 80 ;
- 85 U3 LDA MNT,Y:STY TRY:BNE U6
- 90 U7 JSR CHAR; [153] CHAR
- 95 ;
- 100 U4 LDY TRY:LDA MNT,Y:BMI U5
- 105 U6 INC TRY:BNE U7
- 110 ;
- 115 U5 JSR SPC
- 120 ;
- 125 LDA DATE:[175] #31:JSR [198]I
- 130 LDA TENS:CMP #48:BEQ U8
- 135 JSR CHAR
- 140 U8 LDA [145]ES:JSR CHAR
- 145 LDA #44:JSR CHAR:JSR SPC
- 150 ;
- 155 NY1 LDA #"1":JSR CHAR
- 160 NY2 LDA #"9":JSR CHAR
- 165 LDA YEAR:JSR [198]I
- 170 LDA TENS:JSR CHAR
- 175 LDA [145]ES:JSR CHAR:JMP RET1
- 180 ;
- 185 MNT .BYTE "MID$ANUARYASCEBRUARY(null)ARCHATNPRIL(null)AYMID$UNEMID$ULYATNUGUST(null)EPTEMBER(null)CTOBER"
- 190 .BYTE "(null)OVEMBERSTR$ECEMBER(null)
- 195 ;
- 200 MXM .BYTE 31 28 31 30 31 30 31 31 30 31 30 31
- 205 ;
- 210 ;**********************************
- 215 ;
- 220 ; SHOW MESSAGE TITLE
- 225 ;
- 230 STIT LDY SERCH:LDA SERCH+1
- 235 JSR ROMNUM
- 240 ;
- 245 U24 LDY TRY:CPY #6:BEQ U23
- 250 JSR SPC:INC TRY:BNE U24
- 255 ;
- 260 U23 LDA #58:JSR CHAR
- 265 ;
- 270 JSR U19
- 275 UB LDY TRY:CPY #28:BEQ U25
- 280 LDA TITL,Y:BEQ U25
- 285 JSR CHAR:INC TRY:BNE UB
- 290 ;
- 295 U25 LDA RPLI:BEQ U26
- 300 JSR RET1:LDA #<XREP:LDX #>XREP
- 305 JSR U39
- 310 ;
- 315 U26 LDA PAGE:CMP #1:BEQ UA
- 320 JSR RET1:LDA #<XPGG:LDX #>XPGG
- 325 JSR U39
- 330 ;
- 335 LDA PAGE:ORA #48; PAGE #
- 340 JSR CHAR:JMP RET1
- 345 ;
- 350 U39 STX RATS:JSR STRING:JMP RATF
- 355 ;
- 360 ;********************************
- 365 ;
- 370 ; SHOW SENDER OF MESSAGE
- 375 ;
- 380 SHSN LDA #<XSBY:LDX #>XSBY:STX RATS
- 385 JSR STRING:JSR U19
- 390 ;
- 395 UC LDY TRY:CPY #12:BEQ UA
- 400 LDA MALE,Y:BEQ UA
- 405 JSR CHAR:INC TRY:BNE UC
- 410 ;
- 415 UA JMP RET1
- 420 ;
- 425 ;********************************
- 430 ;
- 435 HDNS LDA #1; COMPLETE MSG HEADER
- 440 .BYTE 44
- 445 TTLS LDA #0; TITLE ONLY
- 450 STA HFLG
- 455 ;
- 460 JSR LOOK:BCC UD; GET START PT
- 465 UF JMP EMAIL
- 470 ;
- 475 UD LDA #43:STA MODE; CONT. MODE
- 480 JSR MCAT:BCS UF; NOT FOUND
- 485 ;
- 490 UE JSR HC0M:BCS U21; CHECK ACCSS
- 495 ;
- 500 JSR RET1:JSR STIT
- 505 LDA HFLG:BEQ U28; TTLS
- 510 ;
- 515 LDA PAGE:CMP #1:BNE U28
- 520 JSR SHSN; SENDER
- 525 LDA #<XSON:LDX #>XSON; DATE
- 530 JSR U39:JSR U0
- 535 ;
- 540 U28 LDA #10:STA TRY
- 545 U27 JSR BROK:LDA RATS:BNE UF
- 550 DEC TRY:BNE U27
- 555 ;
- 560 U21 JSR CKMO:CMP #255:BEQ UF
- 565 BNE UE
- 570 ;
- 575 ;********************************
- 580 ;
- 585 ; SEND A SPACE
- 590 ;
- 595 SPC LDA #32:JMP CHAR
- 600 ;
- 605 ;********************************
- 610 ;
- 615 ; ENTER MESSAGE NUMBER AND LOCATE
- 620 ; POSITON IN BUFFER WITH IT
- 625 ;
- 630 LOOK LDA #<XENU:LDX #>XENU
- 635 JSR U39; RATS ON/STRING/RATS OFF
- 640 ;
- 645 STA SERCH:STA SERCH+1:STA MODE
- 650 ;
- 655 LDX #6:STX MIN+1
- 660 JSR GEB:LDA RAPR:BEQ UG
- 665 ;
- 670 JSR COTEMP; ASCI TO MISC
- 675 ;
- 680 LDY #0:STY LNTH
- 685 U29 LDA MISC,Y:CMP #48:BCC U30
- 690 CMP #58:BCS U30
- 695 INY:BNE U29
- 700 ;
- 705 U30 STA MODE
- 710 STY LNTH:BEQ UG
- 715 CPY #5:BCC U34; NORMAL EXIT
- 720 LDA MODE:CMP #48:BCC U34
- 725 CMP #58:BCS U34
- 730 LDA MISC:CMP #"3":BCS UG
- 735 ;
- 740 U34 JSR ASCN:JSR RET2:CLC:RTS
- 745 UG SEC:RTS
- 750 ;
- 755 ;*******
- 760 ;
- 765 ; FIND BUFFER POSITON USING LINE
- 770 ; NUMBER LO/HI IN SERCH+1/LO
- 775 ;
- 780 MCAT LDA #0:STA PSTN:LDY #99
- 785 UI LDA NUMHI,Y:CMP SERCH+1:BNE UH
- 790 LDA NUMLO,Y:CMP SERCH:BNE UH
- 795 ;
- 800 U22 STY PSTN:CLC:RTS
- 805 UH DEY:BPL UI
- 810 JSR L0ST:SEC:RTS
- 815 ;
- 820 ;*******************************
- 825 ;
- 830 ; CHECK FOR CONTINUOUS READ UP OR
- 835 ; DOWN
- 840 ;
- 845 CKMO LDA MODE:BEQ UJ
- 850 CMP #43:BEQ UK
- 855 CMP #45:BNE UJ
- 860 LDA SERCH:BNE U17; WAS DEC SERCH
- 865 DEC SERCH+1
- 870 U17 DEC SERCH
- 875 LDA PSTN:SEC:SBC #1:BCS U12
- 880 ;
- 885 UJ LDA #255
- 890 U12 STA PSTN:RTS
- 895 ;
- 900 UK INC SERCH:BNE U18
- 905 INC SERCH+1
- 910 U18 LDA PSTN:CLC:ADC #1
- 915 CMP #100:BCC U12:BCS UJ
- 920 ;
- 925 ;*******************************
- 930 ;
- 935 ; CHECK FOR LIVE MESSAGE, AND
- 940 ; WHETHER USER SHOULD HAVE ACCESS
- 945 ; TO IT IF PRIVATE
- 950 ;
- 955 HC0M JSR KRNLOFF:LDX PSTN
- 960 LDA HIHEAD,X:STA $FE
- 965 LDA LOHEAD,X:STA $FD:JSR PRQ
- 970 ;
- 975 LDA LIVE:CMP #1:BNE U13
- 980 LDA PRIVT:BEQ U14
- 985 LDA FROM:CMP UNUM:BEQ U14
- 990 LDA TO:CMP UNUM:BEQ U14
- 995 LDA ACSS:CMP #64:BCC U13
- 1000 LDA ACSS+1:AND #16:BEQ U13
- 1005 BNE U14
- 1010 U13 SEC:RTS
- 1015 U14 CLC:RTS
- 1020 ;
- 1025 ;*******************************
- 1030 ;
- 1035 ; DROP MESSAGE HEADER INTO FIELDS
- 1040 ;
- 1045 PRQ LDY #59
- 1050 UM LDA ($FD),Y:STA LIVE,Y
- 1055 DEY:BPL UM
- 1060 JMP KRNLON
- 1065 ;
- 1070 ;*******************************
- 1075 ;
- 1080 ; ALLOW USER TO INPUT NUMBER UP TO
- 1085 ; 32767, THEN CONVERT TO 2 BYTE
- 1090 ; NUMBER IN SERCH+1/LO
- 1095 ;
- 1100 ASCN LDA #0:STA 13
- 1105 LDA #<MISC:STA 34:STA 100
- 1110 LDA #>MISC:STA 35:STA 101
- 1115 ;
- 1120 LDA LNTH:TAY
- 1125 ;
- 1130 JSR FAC1:JSR SWCH
- 1135 STY SERCH:STA SERCH+1:RTS
- 1140 ;
- 1145 ;*******************************
- 1150 ;
- 1155 ; INITIALIZE READER BUFFER
- 1160 ;
- 1165 IDIT LDY #99:LDA #0:STA NCNT
- 1170 UN STA READER,Y:DEY:BPL UN
- 1175 RTS
- 1180 ;
- 1185 ; STORE BUFFER PSTN OF LOCATED
- 1190 ; MESSAGES
- 1195 ;
- 1200 IDCM TYA:LDX NCNT
- 1205 STA READER,X:INC NCNT:RTS
- 1210 ;
- 1215 ;*******************************
- 1220 ;
- 1225 ; STORE NEW MESSAGES IN READER
- 1230 ;
- 1235 FNOO JSR IDIT:LDY #0:STY F1L
- 1240 UO LDA GETTO,Y:CMP #251:BCS UP
- 1245 CMP UNUM:BNE UQ
- 1250 INC F1L; COUNT ALL BUT JUNK MAIL
- 1251 ;
- 1255 UP INY:JSR IDCM:DEY
- 1260 UQ INY:CPY #100:BNE UO
- 1265 RTS
- 1270 ;
- 1275 ;*******************************
- 1280 ;
- 1285 ;LOCATE MESSAGE THREADS. OWNR/HI
- 1290 ;IS SET BY A READ OR INPUT BY USER
- 1295 ; IF FROM MENU
- 1300 ;
- 1305 THRD LDA OWNR:BNE UR
- 1310 LDA OWNR+1:BNE UR
- 1315 ;
- 1320 JSR LOOK:STA OWNR+1:STY OWNR
- 1325 ;
- 1330 UR JSR KRNLOFF:JSR IDIT
- 1335 ;
- 1340 LDA #224:STA $FE
- 1345 LDX #0:STX $FD; X IS PSTN BYTE
- 1350 ;
- 1355 UT LDY #0:LDA ($FD),Y
- 1360 CMP #1:BNE US
- 1365 ;
- 1370 LDY #4:LDA ($FD),Y
- 1375 CMP OWNR:BNE US
- 1380 INY:LDA ($FD),Y
- 1385 CMP OWNR+1:BNE US
- 1390 ;
- 1395 STX TEMP:TXA:TAY
- 1400 INY:JSR IDCM:DEY:LDX TEMP
- 1405 ;
- 1410 US LDA $FD:CLC:ADC #60:STA $FD
- 1415 JSR AFE
- 1420 INX:CPX #100:BNE UT
- 1425 JMP KRNLON
- 1430 ;
- 1435 ;******************************
- 1440 ;
- 1445 ; DROP HEADER BUFFER TILL 1ST POS
- 1450 ; IS PAGE 1
- 1455 ;
- 1460 BUMP JSR KRNLOFF:JSR ROTT
- 1465 LDA #224:STA $FE:STA $FC
- 1470 LDA #60:STA $FD
- 1475 LDA #0:STA $FB:TAX:TAY
- 1480 ;
- 1485 UU LDA ($FD),Y:STA ($FB),Y
- 1490 LDA #0:STA ($FD),Y; INIT TOP BLOK
- 1495 INY:CPY #60:BNE UU
- 1500 ;
- 1505 LDA $FE:STA $FC
- 1510 LDA $FD:STA $FB
- 1515 CLC:ADC #60:STA $FD:JSR AFE
- 1520 ;
- 1525 INX:CPX #100:BEQ UV
- 1530 LDY #0:BEQ UU
- 1535 ;
- 1540 UV LDA 57345:CMP #1:BNE BUMP
- 1545 ;DON'T SAVE MULTI+PAGE MSGS IN EVENT OF A BUMP
- 1550 ;
- 1555 JMP KRNLON
- 1560 ;
- 1565 ;********************************
- 1570 ;
- 1575 ; DROP ALL POINTER TABLES 1+ BYTES
- 1580 ;
- 1585 ROTT LDY #0
- 1590 UW LDA NUMHI+1,Y:STA NUMHI,Y
- 1595 LDA NUMLO+1,Y:STA NUMLO,Y
- 1600 LDA GETTO+1,Y:STA GETTO,Y
- 1605 INY:CPY #99:BNE UW
- 1610 ;
- 1615 LDA #0
- 1620 STA NUMHI,Y:STA NUMLO,Y
- 1625 STA GETTO,Y:RTS
- 1630 ;
- 1635 ;******************************
- 1640 ;
- 1645 AFC LDA #0:ADC $FC:STA $FC:RTS
- 1650 AFE LDA #0:ADC $FE:STA $FE:RTS
- 1655 ;
- 1660 ;******************************
- 1665 ;
- 1670 ; ENTER W/A LOW Y HI
- 1675 ;
- 1680 ROMNUM JSR BSET:JSR BSHO
- 1685 STA $FB:STY $FC:LDY #1:STY TRY
- 1690 U15 LDY TRY:LDA ($FB),Y:BEQ U16
- 1695 JSR CHAR:INC TRY:BNE U15
- 1700 U16 JMP SPC
- 1705 ;
- 1710 ;
- 1715 ; SET MAX DAYS/MONTH
- 1720 ;
- 1725 LEAP LDA BMO:CMP #2:BNE UX
- 1730 ;
- 1735 LDA BYR:AND #1:BNE UX
- 1740 ;
- 1745 LDA BYR:SEC:SBC #80:BEQ UZ
- 1750 UY SBC #4:BEQ UZ:BCS UY
- 1755 ;
- 1760 UX LDX BMO:DEX:LDA MXM,X
- 1765 U11 STA MXDA
- 1770 RTS
- 1775 UZ LDA #29:BNE U11
- 1780 ;
- 1785 U19 LDY #0:STY TRY:STY RATS:RTS
- 1790 ;
- 1795 XSBY .BYTE "[198]ROM ":.BYTE 58 0
- 1800 XSON .BYTE "[211]ENT ":.BYTE 58 0
- 1805 XREP .BYTE " ** [210]EPLY ** ":.BYTE 0
- 1810 XPGG .BYTE "[208]AGE ":.BYTE 58 18 32 0
- 1815 ;
- 1820 .FILE 0:V.TEXT
-