home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_BAS / PRO98SRC.ZIP / EDITCOMM.BAS < prev    next >
BASIC Source File  |  1994-01-08  |  4KB  |  116 lines

  1. SUB EditComment (TAX$)
  2. $IF NOT %NOCOMMENTS
  3. SHARED MailPath$
  4. DIM Comline$(9)
  5. CALL PROZOL("Print '^0@CLS()^yLINE EDITOR: ^c9 Lines maximum.  Press ^rENTER^c on a new line to finish.'")
  6. CALL PROZOL("PRINT '^0'")
  7. FOR x = 1 TO 9
  8. CALL PROZOL("Prompt '^0^B^g" + MID$(STR$(x), 2) + ": ^r'")
  9.  
  10. DO
  11.   LET dropout# = TIMER + 300
  12.   DO
  13.   IF NOT VIDFLAG% THEN Value$=PROZOINKEY$
  14. $IF NOT %NOTASKS
  15. CALL TASKMAN
  16. $ENDIF
  17. REM FORK WENT HERE
  18.   IF TIMER > dropout# OR TIMER > UserTime# THEN CALL PROZOL("PRINT '@CHR(7)'"): CALL TIMEOUT
  19.   LOOP WHILE VALUE$=""
  20. CharCode%=ASCII(Value$)
  21. A$ = CHR$(CharCode%)
  22.  
  23. IF CharCode% < 128 AND CharCode% > 31 THEN
  24.  
  25.         Comline$(x) = Comline$(x) + A$: PROZOPRINT A$
  26. ELSE
  27.         IF CharCode% = 13 THEN PROZOPRINT CrLf$: EXIT DO
  28.         IF CharCode% = 8 THEN IF LEN(Comline$(x)) THEN Comline$(x) = LEFT$(Comline$(x), LEN(Comline$(x)) - 1): PROZOPRINT CHR$(8) + CHR$(32) + CHR$(8)
  29.     IF CharCode% = 3 OR CharCode% = 27 THEN EXIT DO
  30. END IF
  31. IF LEN(Comline$(x)) > 60 AND CharCode% = 32 THEN PROZOPRINT CrLf$: EXIT DO
  32. IF INSTR(Comline$(x), "++") THEN ERROR 1
  33. LOOP
  34.     IF LEN(Comline$(x)) = 0 THEN EXIT FOR
  35.     IF CharCode% = 3 OR CharCode% = 27 THEN EXIT FOR
  36. NEXT x
  37.     IF CharCode% = 3 THEN CALL SYSRESET
  38.  
  39. sopt:
  40. CALL PROZOL("Print '^0'")
  41. CALL PROZOL("Prompt '^B^c(^bS^c)ave (^bA^c)bort or enter line number (^b1-9^c) to ^redit^c --> ^g'")
  42. Value$ = UCASE$(PROZOINPUT$)
  43. IF VAL(Value$) AND VAL(Value$) < 10 THEN
  44. x = VAL(Value$)
  45. CALL PROZOL("Print '^0^B^g" + MID$(STR$(x), 2) + ": ^r" + Comline$(x) +"'")
  46. Comline$ = Comline$(x): Comline$(x) = ""
  47. CALL PROZOL("Prompt '^0^B^g" + MID$(STR$(x), 2) + ": ^r'")
  48. DO
  49.   LET dropout# = TIMER + 500
  50.   DO
  51. IF NOT VidFlag% THEN VALUE$=PROZOINKEY$
  52. $IF NOT %NOTASKS
  53. CALL TASKMAN
  54. $ENDIF
  55. REM FORK WENT HERE
  56.   IF TIMER > dropout# OR TIMER > UserTime# THEN CALL PROZOL("PRINT '@CHR(7)'"): CALL TIMEOUT
  57.   LOOP WHILE VALUE$=""
  58. CharCode%=ASCII(VALUE$)
  59. A$ = CHR$(CharCode%)
  60. IF CharCode% < 128 AND CharCode% > 31 THEN
  61.  
  62.         Comline$(x) = Comline$(x) + A$: PROZOPRINT A$
  63. ELSE
  64.         IF CharCode% = 13 THEN PROZOPRINT CrLf$: EXIT DO
  65.         IF CharCode% = 8 THEN IF LEN(Comline$(x)) THEN Comline$(x) = LEFT$(Comline$(x), LEN(Comline$(x)) - 1): PROZOPRINT CHR$(8) + CHR$(32) + CHR$(8)
  66.     IF CharCode% = 3 OR CharCode% = 27 THEN EXIT DO
  67. END IF
  68.  
  69. IF LEN(Comline$(x)) > 75 AND CharCode% = 32 THEN EXIT DO
  70. IF INSTR(Comline$(x), "++") THEN ERROR 1
  71. LOOP
  72. IF Comline$(x) = "" THEN Comline$(x) = Comline$
  73. IF CharCode% = 3 THEN CALL SYSRESET
  74. CALL PROZOL("CLS")
  75. FOR x = 1 TO 9
  76. CALL PROZOL("Print '^0^B^g" + MID$(STR$(x), 2) + ": ^r" + Comline$(x) +"'")
  77. NEXT x
  78. GOTO sopt
  79. ELSEIF Value$ = "S" THEN
  80. LET Comment.ComUser = Global$(1)
  81. LET Comment.ComTime = TIME$
  82. LET Comment.ComDate = DATE$
  83. LET Comment.TaxID$ = TAX$
  84. LET Comment.Line1 = Comline$(1)
  85. LET Comment.Line2 = Comline$(2)
  86. LET Comment.Line3 = Comline$(3)
  87. LET Comment.Line4 = Comline$(4)
  88. LET Comment.Line5 = Comline$(5)
  89. LET Comment.Line6 = Comline$(6)
  90. LET Comment.Line7 = Comline$(7)
  91. LET Comment.Line8 = Comline$(8)
  92. LET Comment.Line9 = Comline$(9)
  93. LET CommentIndex.TaxID$ = TAX$
  94. LET BUF = FREEFILE
  95. OPEN MailPath$ + "COMMENT.RAF" FOR RANDOM aCCESS READ WRITE SHARED as #BUF LEN = LEN(Comment)
  96. x = LOF(BUF) / LEN(Comment)
  97. CommentIndex.RecordNumber = x + 1
  98. PUT #BUF, CommentIndex.RecordNumber, Comment
  99. CLOSE #BUF
  100. OPEN MailPath$ + "COMMENT.IX" FOR RANDOM ACCESS READ WRITE SHARED AS #BUF LEN = LEN(CommentIndex)
  101. x = LOF(BUF) / LEN(CommentIndex) + 1
  102. PUT #BUF, x, CommentIndex
  103. CLOSE #BUF
  104.  
  105. CALL PROZOL("Print")
  106. CALL PROZOL("Print '^0^B^r** COMMENT SAVED **^0'")
  107. ELSEIF Value$ = "A" THEN
  108. CALL PROZOL("Print")
  109. CALL PROZOL("Print '^B^r** ABORTED **^0'")
  110. ELSE
  111. GOTO sopt
  112. END IF
  113. $ENDIF
  114. END SUB
  115.  
  116.