DK2:MSG.BAS[30,2] 03-Sep-75 07:00 PM 1 REM MSG<232> RAINER VON SALESKI NOV. 74 100 REM CONSTANTS 110 F2$="[30,2]MAIL.BOX" 120 R9%=20% ! MAXIMUM SIZE OF MAIL.BOX 130 L$=CHR$(10%)+CHR$(13%)+CHR$(0%) ! LINE FEED 140 R$=CHR$(13%)+CHR$(10%) ! CARRIAGE RETURN 150 Z$=CHR$(26%) ! END OF FILE 200 REM FETCH AND ANALYZE CORE COMMON STRING 210 G$=SYS(CHR$(7%)) ! GET CORE COMMON STRING 220 Z1%=INSTR(1%,G$,Z$): Z2%=INSTR(Z1%+1%,G$,Z$) 230 IF Z2%=0% OR LEFT(G$,4%)<>"MESG" THEN PRINT "TO LEAVE A MESSAGE, RUN HELPER[30,2], AND USE THE COMMAND "; "MES/ ...": GO TO 999 240 F1$=MID(G$,5%,Z1%-5%) ! NAME OF FILE CONTAINING MESSAGE 250 FOR I%=1% TO 11%: GO TO 255 IF INSTR(1%,F1$,MID("()[]:@!#$%&",I%,1%)): NEXT I%: GO TO 260 255 PRINT "NO WAY, CHARLIE": GO TO 999 260 H$=MID(G$,Z1%+1%,Z2%-Z1%-1%) ! NAME OF CALLING PROGRAM 270 G$=RIGHT(G$,Z2%+1%) ! NEW CORE COMMON STRING 300 REM GET MESSAGE TEXT FROM F1$ 310 OPEN F1$ FOR INPUT AS FILE 1% 320 FIELD #1%, 512% AS A0$: FIELD #1%, 511% AS A1$, 1% AS A2$ 330 GET #1%, RECORD 1%: LSET A2$=Z$ 340 A$=LEFT(A0$,INSTR(1%,A0$,Z$)-1%) 350 CLOSE 1% 400 REM BUILD ID STRING, I$ 410 K%=ASCII(RIGHT(SYS(CHR$(6%)+CHR$(9%)),2%))/2% ! KEYBOARD NUMBER 420 M%=CVT$%(RIGHT(SYS(CHR$(6%)+CHR$(14%)),7%)) ! PPN OF USER 430 DEF FNN$(N%) = MID(NUM$(N%),2%,LEN(NUM$(N%))-2%) 440 I$=DATE$(0%)+" "+TIME$(0%)+" ["+FNN$(M% AND 255%)+","+ FNN$(SWAP%(M%) AND 255%)+"] KB"+FNN$(K%)+":"+L$ 500 REM FIND END OF F2$ 510 ON ERROR GO TO 900 520 OPEN F2$ AS FILE 2% 530 FIELD #2%, 512% AS B$ 540 R%=1% 550 IF R%>R9% THEN PRINT "SORRY, THE MAIL.BOX IS FULL.": GO TO 700 560 GET #2%, RECORD R% 570 B%=INSTR(1%,B$,Z$) 580 IF B%=0% THEN R%=R%+1%: GO TO 550 600 REM PUT ID STRING AND MESSAGE INTO F2$ 610 C$=LEFT(B$,B%-1%)+I$+A$+L$+R$+Z$ 620 LSET B$=C$ 630 PUT #2%, RECORD R% 640 IF LEN(C$)>512% THEN LSET B$=RIGHT(C$,513%): PUT #2%, RECORD R%+1% 650 PRINT "MESSAGE RECORDED" 700 REM RETURN TO CALLER 705 CLOSE 2% 710 V$=SYS(CHR$(6%)+CHR$(-21%)) ! DROP PRIVILEGES 715 KILL F1$ 720 C$=SYS(CHR$(8%)+G$) ! SET NEW CORE COMMON STRING 730 CHAIN H$ 5 900 REM TRAP ERROR FOR END OF FILE ON F2$ 910 IF ERR=11% THEN B%=1%: RESUME 600 920 ON ERROR GO TO 0 999 END U$