Remove WORK, WORK-PTR. Add REGISTER-FILE.

This commit is contained in:
Quinn Evans 2017-03-07 21:02:29 -07:00
parent 421971ec62
commit e49145cb03
1 changed files with 134 additions and 130 deletions

264
WOPO.COB
View File

@ -49,12 +49,16 @@
05 ASCII-CELL PIC 999 OCCURS 999 TIMES. 05 ASCII-CELL PIC 999 OCCURS 999 TIMES.
01 WOPO. 01 WOPO.
03 WOPO-NICK PIC X(40). 03 WOPO-NICK PIC X(40).
03 WORK PIC X(999). 03 REGISTER-FILE.
03 WORK-PREFIX REDEFINES WORK PIC XX. 05 REGISTER OCCURS 8 TIMES.
88 IS-COMMAND VALUE "$$". 07 R PIC X(999).
03 WORK-CTCP REDEFINES WORK PIC X(5). 07 R-COMMAND REDEFINES R PIC XX.
88 IS-CTCP VALUE "$SOH$". 88 IS-COMMAND VALUE "$$".
03 WORK-PTR PIC 999 USAGE COMPUTATIONAL. 07 R-CTCP REDEFINES R PIC X(5).
88 IS-CTCP VALUE "$SOH$".
07 PTR PIC 999.
05 SRC PIC 9.
05 DEST PIC 9.
03 PARAM PIC X(480) OCCURS 5 TIMES. 03 PARAM PIC X(480) OCCURS 5 TIMES.
03 NUM-PARAMS PIC 9. 03 NUM-PARAMS PIC 9.
03 WOPO-COUNTER PIC 9. 03 WOPO-COUNTER PIC 9.
@ -143,22 +147,22 @@
INTO MSG-BODY. INTO MSG-BODY.
PERFORM SEND-LINE. PERFORM SEND-LINE.
MOVE SPACES TO MSG-BODY. MOVE SPACES TO MSG-BODY.
MOVE 1 TO WORK-PTR. MOVE 1 TO PTR(1).
STRING "USER " DELIMITED BY SIZE STRING "USER " DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
MOVE "IDENT" TO CONFIG-KEY. MOVE "IDENT" TO CONFIG-KEY.
PERFORM READ-CONFIG-ENTRY. PERFORM READ-CONFIG-ENTRY.
STRING CONFIG-VALUE DELIMITED BY SPACE, STRING CONFIG-VALUE DELIMITED BY SPACE,
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
ADD 1 TO WORK-PTR. ADD 1 TO PTR(1).
MOVE "REAL-NAME" TO CONFIG-KEY. MOVE "REAL-NAME" TO CONFIG-KEY.
PERFORM READ-CONFIG-ENTRY. PERFORM READ-CONFIG-ENTRY.
STRING "BOGUS HOST $COLN$" DELIMITED BY SIZE, STRING "BOGUS HOST $COLN$" DELIMITED BY SIZE,
CONFIG-VALUE DELIMITED BY " ", CONFIG-VALUE DELIMITED BY " ",
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
OPEN INPUT CHANNELS. OPEN INPUT CHANNELS.
PERFORM AUTOJOIN-CHANNELS UNTIL DONE. PERFORM AUTOJOIN-CHANNELS UNTIL DONE.
@ -206,22 +210,22 @@
GET-IRC-STATE. GET-IRC-STATE.
CALL "PARSE-IRC-MSG" USING MSG-BODY, IRC-PARAMS. CALL "PARSE-IRC-MSG" USING MSG-BODY, IRC-PARAMS.
IF GOT-PREFIX THEN IF GOT-PREFIX THEN
MOVE MSG-SRC TO WORK-PTR MOVE MSG-SRC TO PTR(1)
UNSTRING MSG-BODY UNSTRING MSG-BODY
DELIMITED BY "$EXC$" OR "$AT$" OR SPACES DELIMITED BY "$EXC$" OR "$AT$" OR SPACES
INTO NICK INTO NICK
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
MOVE COMMAND OF IRC-PARAMS TO WORK-PTR. MOVE COMMAND OF IRC-PARAMS TO PTR(1).
UNSTRING MSG-BODY UNSTRING MSG-BODY
DELIMITED BY SPACES DELIMITED BY SPACES
INTO COMMAND OF IRC-STATE INTO COMMAND OF IRC-STATE
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
IF NUM-PARAMS OF IRC-PARAMS IS NOT LESS THAN 1 THEN IF NUM-PARAMS OF IRC-PARAMS IS NOT LESS THAN 1 THEN
MOVE PARAM OF IRC-PARAMS(1) TO WORK-PTR MOVE PARAM OF IRC-PARAMS(1) TO PTR(1)
UNSTRING MSG-BODY UNSTRING MSG-BODY
DELIMITED BY SPACES DELIMITED BY SPACES
INTO TARGET INTO TARGET
WITH POINTER WORK-PTR WITH POINTER PTR(1)
ELSE ELSE
MOVE SPACES TO TARGET. MOVE SPACES TO TARGET.
@ -231,22 +235,22 @@
GET-PARAMS. GET-PARAMS.
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS) MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR. TO PTR(1).
UNSTRING MSG-BODY DELIMITED BY "$NUL$" UNSTRING MSG-BODY DELIMITED BY "$NUL$"
INTO WORK INTO R(1)
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
MOVE 1 TO WORK-PTR. MOVE 1 TO PTR(1).
PERFORM BLANK-PARAM VARYING WORK-PTR FROM 1, BY 1, PERFORM BLANK-PARAM VARYING PTR(1) FROM 1, BY 1,
UNTIL WORK-PTR IS NOT LESS THAN 5. UNTIL PTR(1) IS NOT LESS THAN 5.
MOVE 0 TO NUM-PARAMS OF WOPO, STATE. MOVE 0 TO NUM-PARAMS OF WOPO, STATE.
MOVE 1 TO WORK-PTR. MOVE 1 TO PTR(1).
PERFORM UNSTRING-PARAM UNTIL DONE. PERFORM UNSTRING-PARAM UNTIL DONE.
UNSTRING-PARAM. UNSTRING-PARAM.
ADD 1 TO NUM-PARAMS OF WOPO. ADD 1 TO NUM-PARAMS OF WOPO.
UNSTRING WORK DELIMITED BY SPACE UNSTRING R(1) DELIMITED BY SPACE
INTO PARAM OF WOPO(NUM-PARAMS OF WOPO) INTO PARAM OF WOPO(NUM-PARAMS OF WOPO)
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
IF PARAM OF WOPO(NUM-PARAMS OF WOPO) IS EQUAL TO SPACES THEN IF PARAM OF WOPO(NUM-PARAMS OF WOPO) IS EQUAL TO SPACES THEN
SUBTRACT 1 FROM NUM-PARAMS OF WOPO SUBTRACT 1 FROM NUM-PARAMS OF WOPO
MOVE 99 TO STATE. MOVE 99 TO STATE.
@ -254,7 +258,7 @@
MOVE 99 TO STATE. MOVE 99 TO STATE.
BLANK-PARAM. BLANK-PARAM.
MOVE SPACES TO PARAM OF WOPO(WORK-PTR). MOVE SPACES TO PARAM OF WOPO(PTR(1)).
PRESERVE-MESSAGE. PRESERVE-MESSAGE.
MOVE MSG-BODY TO MSG-BODY-TMP. MOVE MSG-BODY TO MSG-BODY-TMP.
@ -314,40 +318,40 @@
*THE REPLY FUNCTIONS NEED NICK, COMMAND, AND TARGET PRESERVED. *THE REPLY FUNCTIONS NEED NICK, COMMAND, AND TARGET PRESERVED.
BEGIN-REPLY. BEGIN-REPLY.
MOVE SPACES TO MSG-BODY. MOVE SPACES TO MSG-BODY.
MOVE 1 TO WORK-PTR. MOVE 1 TO PTR(1).
STRING COMMAND OF IRC-STATE DELIMITED BY SPACES STRING COMMAND OF IRC-STATE DELIMITED BY SPACES
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
ADD 1 TO WORK-PTR. ADD 1 TO PTR(1).
IF TARGET IS EQUAL TO WOPO-NICK THEN IF TARGET IS EQUAL TO WOPO-NICK THEN
STRING NICK DELIMITED BY SPACE STRING NICK DELIMITED BY SPACE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
ELSE ELSE
STRING TARGET DELIMITED BY SPACE STRING TARGET DELIMITED BY SPACE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
STRING " $COLN$" DELIMITED BY SIZE STRING " $COLN$" DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
BEGIN-STANDARD-REPLY. BEGIN-STANDARD-REPLY.
PERFORM BEGIN-REPLY. PERFORM BEGIN-REPLY.
STRING "$226$$128$$139$" STRING "$226$$128$$139$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
IF TARGET IS NOT EQUAL TO WOPO-NICK THEN IF TARGET IS NOT EQUAL TO WOPO-NICK THEN
STRING NICK DELIMITED BY SPACES STRING NICK DELIMITED BY SPACES
". " DELIMITED BY SIZE ". " DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
REPLY-ACK. REPLY-ACK.
PERFORM PRESERVE-MESSAGE. PERFORM PRESERVE-MESSAGE.
PERFORM BEGIN-STANDARD-REPLY. PERFORM BEGIN-STANDARD-REPLY.
STRING "OK.$NUL$" STRING "OK.$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
PERFORM RESTORE-MESSAGE. PERFORM RESTORE-MESSAGE.
@ -355,7 +359,7 @@
PERFORM BEGIN-STANDARD-REPLY. PERFORM BEGIN-STANDARD-REPLY.
STRING "ACCESS DENIED.$NUL$" STRING "ACCESS DENIED.$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
PONG. PONG.
@ -365,12 +369,12 @@
HANDLE-KICK. HANDLE-KICK.
D DISPLAY "DETECTED KICK.". D DISPLAY "DETECTED KICK.".
MOVE SPACES TO WORK. MOVE SPACES TO R(1).
MOVE PARAM OF IRC-PARAMS(2) TO WORK-PTR. MOVE PARAM OF IRC-PARAMS(2) TO PTR(1).
UNSTRING MSG-BODY DELIMITED BY SPACE UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK INTO R(1)
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
IF WORK IS EQUAL TO WOPO-NICK THEN IF R(1) IS EQUAL TO WOPO-NICK THEN
D DISPLAY "KICK WAS ME." D DISPLAY "KICK WAS ME."
MOVE MSG-BODY TO MSG-BODY-TMP MOVE MSG-BODY TO MSG-BODY-TMP
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
@ -380,18 +384,18 @@
INTO MSG-BODY INTO MSG-BODY
PERFORM SEND-LINE PERFORM SEND-LINE
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS) MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR TO PTR(1)
UNSTRING MSG-BODY-TMP UNSTRING MSG-BODY-TMP
INTO WORK INTO R(1)
WITH POINTER WORK-PTR WITH POINTER PTR(1)
IF WORK IS NOT EQUAL TO WOPO-NICK THEN IF R(1) IS NOT EQUAL TO WOPO-NICK THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
STRING "PRIVMSG " DELIMITED BY SIZE, STRING "PRIVMSG " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES, TARGET DELIMITED BY SPACES,
" $COLN$" DELIMITED BY SIZE, " $COLN$" DELIMITED BY SIZE,
NICK DELIMITED BY SPACES, NICK DELIMITED BY SPACES,
". " DELIMITED BY SIZE, ". " DELIMITED BY SIZE,
WORK DELIMITED BY "$NUL$", R(1) DELIMITED BY "$NUL$",
"$NUL$" "$NUL$"
INTO MSG-BODY INTO MSG-BODY
PERFORM SEND-LINE. PERFORM SEND-LINE.
@ -406,13 +410,13 @@
D VARYING DEBUG-PTR D VARYING DEBUG-PTR
D FROM 1, BY 1 D FROM 1, BY 1
D UNTIL DEBUG-PTR IS GREATER THAN NUM-PARAMS OF WOPO D UNTIL DEBUG-PTR IS GREATER THAN NUM-PARAMS OF WOPO
IF IS-CTCP THEN IF IS-CTCP(1) THEN
PERFORM HANDLE-CTCP PERFORM HANDLE-CTCP
ELSE IF IS-COMMAND THEN ELSE IF IS-COMMAND(1) THEN
MOVE 3 TO WORK-PTR MOVE 3 TO PTR(1)
UNSTRING PARAM OF WOPO(1) INTO WORK UNSTRING PARAM OF WOPO(1) INTO R(1)
WITH POINTER WORK-PTR WITH POINTER PTR(1)
MOVE WORK TO PARAM OF WOPO(1) MOVE R(1) TO PARAM OF WOPO(1)
D DISPLAY "COMMAND BODY ", PARAM OF WOPO(1) D DISPLAY "COMMAND BODY ", PARAM OF WOPO(1)
IF PARAM OF WOPO(1) IS EQUAL TO "BF-CODE" THEN IF PARAM OF WOPO(1) IS EQUAL TO "BF-CODE" THEN
PERFORM HANDLE-BF-CODE PERFORM HANDLE-BF-CODE
@ -463,7 +467,7 @@
- "GOD HELPS THOSE WHO HELP THEMSELVES, COMMIE. " - "GOD HELPS THOSE WHO HELP THEMSELVES, COMMIE. "
- "$240$$159$$142$$134" - "$240$$159$$142$$134"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
ELSE ELSE
STRING "COMMANDS$COLN$ " STRING "COMMANDS$COLN$ "
- "$$BF-CODE $$BF-INPUT $$BF-OUTPUT $$BF-RUN " - "$$BF-CODE $$BF-INPUT $$BF-OUTPUT $$BF-RUN "
@ -472,7 +476,7 @@
- "$$SHOW-ESCAPES $$SOURCE $$STRESS $$VOICE " - "$$SHOW-ESCAPES $$SOURCE $$STRESS $$VOICE "
- "$NUL$" - "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-SHITFED. HANDLE-SHITFED.
@ -480,14 +484,14 @@
STRING "$002$LEAVE MY CASE ALONE, " STRING "$002$LEAVE MY CASE ALONE, "
- "$226$$156$$168$ASSHOL$LOWE$$226$$156$$168$." - "$226$$156$$168$ASSHOL$LOWE$$226$$156$$168$."
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-SOURCE. HANDLE-SOURCE.
PERFORM BEGIN-STANDARD-REPLY. PERFORM BEGIN-STANDARD-REPLY.
STRING "HTTPS$COLN$//GITHUB.COM/HEDDWCH/WOPO" STRING "HTTPS$COLN$//GITHUB.COM/HEDDWCH/WOPO"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-STRESS. HANDLE-STRESS.
@ -495,20 +499,20 @@
STRING "$SOH$ACTION PUNCHES A " STRING "$SOH$ACTION PUNCHES A "
- "$226$$156$$168$BABY$226$$156$$168$.$SOH$$NUL$" - "$226$$156$$168$BABY$226$$156$$168$.$SOH$$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-LICK. HANDLE-LICK.
IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE NICK TO WORK MOVE NICK TO R(1)
ELSE ELSE
MOVE PARAM OF WOPO(2) TO WORK. MOVE PARAM OF WOPO(2) TO R(1).
PERFORM BEGIN-REPLY. PERFORM BEGIN-REPLY.
STRING "$SOH$ACTION VIGOROUSLY LICKS " DELIMITED BY SIZE, STRING "$SOH$ACTION VIGOROUSLY LICKS " DELIMITED BY SIZE,
WORK DELIMITED BY SPACES, R(1) DELIMITED BY SPACES,
".$SOH$$NUL$" DELIMITED BY SIZE ".$SOH$$NUL$" DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-LEVEL. HANDLE-LEVEL.
@ -522,18 +526,18 @@
MOVE 0 TO WOPO-COUNTER. MOVE 0 TO WOPO-COUNTER.
IF SHOULD-SHOW-ESCAPES THEN IF SHOULD-SHOW-ESCAPES THEN
D DISPLAY "USER NAME. ", USER-NAME D DISPLAY "USER NAME. ", USER-NAME
MOVE USER-NAME TO WORK MOVE USER-NAME TO R(1)
CALL "RE-ESCAPE" USING WORK, WOPO-COUNTER CALL "RE-ESCAPE" USING R(1), WOPO-COUNTER
MOVE WORK TO USER-NAME MOVE R(1) TO USER-NAME
D DISPLAY "USER NAME. ", USER-NAME D DISPLAY "USER NAME. ", USER-NAME
. .
STRING USER-NAME STRING USER-NAME
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
ADD WOPO-COUNTER TO WORK-PTR. ADD WOPO-COUNTER TO PTR(1).
STRING USER-LEVEL STRING USER-LEVEL
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-LIST-USERS. HANDLE-LIST-USERS.
@ -541,7 +545,7 @@
OPEN INPUT USERS. OPEN INPUT USERS.
MOVE 0 TO STATE. MOVE 0 TO STATE.
PERFORM BEGIN-STANDARD-REPLY. PERFORM BEGIN-STANDARD-REPLY.
STRING USERS-HEADER INTO MSG-BODY WITH POINTER WORK-PTR. STRING USERS-HEADER INTO MSG-BODY WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
PERFORM LIST-USER-RECORD UNTIL DONE. PERFORM LIST-USER-RECORD UNTIL DONE.
CLOSE USERS. CLOSE USERS.
@ -552,20 +556,20 @@
MOVE 0 TO WOPO-COUNTER. MOVE 0 TO WOPO-COUNTER.
IF SHOULD-SHOW-ESCAPES THEN IF SHOULD-SHOW-ESCAPES THEN
D DISPLAY "USER NAME. ", USER-NAME D DISPLAY "USER NAME. ", USER-NAME
MOVE USER-NAME TO WORK MOVE USER-NAME TO R(1)
CALL "RE-ESCAPE" USING WORK, WOPO-COUNTER CALL "RE-ESCAPE" USING R(1), WOPO-COUNTER
MOVE WORK TO USER-NAME MOVE R(1) TO USER-NAME
D DISPLAY "USER NAME. ", USER-NAME D DISPLAY "USER NAME. ", USER-NAME
. .
IF NOT DONE THEN IF NOT DONE THEN
PERFORM BEGIN-STANDARD-REPLY PERFORM BEGIN-STANDARD-REPLY
STRING USER-NAME STRING USER-NAME
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
ADD WOPO-COUNTER TO WORK-PTR ADD WOPO-COUNTER TO PTR(1)
STRING USER-LEVEL STRING USER-LEVEL
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-JOIN. HANDLE-JOIN.
@ -586,13 +590,13 @@
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE TARGET TO WORK MOVE TARGET TO R(1)
ELSE ELSE
MOVE PARAM OF WOPO(2) TO WORK MOVE PARAM OF WOPO(2) TO R(1)
IF USER-LEVEL IS NOT LESS THAN 80 THEN IF USER-LEVEL IS NOT LESS THAN 80 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
STRING "PART " DELIMITED BY SIZE, STRING "PART " DELIMITED BY SIZE,
WORK DELIMITED BY SPACES, R(1) DELIMITED BY SPACES,
"$NUL$" "$NUL$"
INTO MSG-BODY INTO MSG-BODY
PERFORM SEND-LINE PERFORM SEND-LINE
@ -600,16 +604,13 @@
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
STRING-LOWVS. STRING-LOWVS.
STRING "$LOWV$" INTO MSG-BODY WITH POINTER WORK-PTR. STRING "$LOWV$" INTO MSG-BODY WITH POINTER PTR(1).
STRING-LOWOS.
STRING "$LOWO$" INTO MSG-BODY WITH POINTER WORK-PTR.
STRING-PARAMS. STRING-PARAMS.
STRING PARAM OF WOPO(WOPO-COUNTER) DELIMITED BY SPACES STRING PARAM OF WOPO(WOPO-COUNTER) DELIMITED BY SPACES
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
ADD 1 TO WORK-PTR. ADD 1 TO PTR(1).
HANDLE-VOICE. HANDLE-VOICE.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
@ -619,18 +620,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 60 THEN IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE, STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES, TARGET DELIMITED BY SPACES,
" +" DELIMITED BY SIZE " +" DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM STRING-LOWVS PERFORM STRING-LOWVS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO PTR(1)
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
@ -638,7 +639,7 @@
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM SEND-LINE PERFORM SEND-LINE
ELSE ELSE
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
@ -651,18 +652,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 60 THEN IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE, STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES, TARGET DELIMITED BY SPACES,
" -" DELIMITED BY SIZE " -" DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM STRING-LOWVS PERFORM STRING-LOWVS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO PTR(1)
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
@ -670,11 +671,14 @@
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM SEND-LINE PERFORM SEND-LINE
ELSE ELSE
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
STRING-LOWOS.
STRING "$LOWO$" INTO MSG-BODY WITH POINTER PTR(1).
HANDLE-OP. HANDLE-OP.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
@ -683,18 +687,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 70 THEN IF USER-LEVEL IS NOT LESS THAN 70 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE, STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES, TARGET DELIMITED BY SPACES,
" +" DELIMITED BY SIZE " +" DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM STRING-LOWOS PERFORM STRING-LOWOS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO PTR(1)
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
@ -702,7 +706,7 @@
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM SEND-LINE PERFORM SEND-LINE
ELSE ELSE
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
@ -715,18 +719,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 70 THEN IF USER-LEVEL IS NOT LESS THAN 70 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE, STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES, TARGET DELIMITED BY SPACES,
" -" DELIMITED BY SIZE " -" DELIMITED BY SIZE
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM STRING-LOWOS PERFORM STRING-LOWOS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO PTR(1)
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
@ -734,7 +738,7 @@
NUM-PARAMS OF WOPO NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
PERFORM SEND-LINE PERFORM SEND-LINE
ELSE ELSE
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
@ -771,10 +775,10 @@
ELSE ELSE
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
PERFORM BEGIN-STANDARD-REPLY. PERFORM BEGIN-STANDARD-REPLY.
STRING "SHOW-ESCAPES " INTO MSG-BODY WITH POINTER WORK-PTR. STRING "SHOW-ESCAPES " INTO MSG-BODY WITH POINTER PTR(1).
IF SHOULD-SHOW-ESCAPES THEN IF SHOULD-SHOW-ESCAPES THEN
STRING "ON." INTO MSG-BODY WITH POINTER WORK-PTR STRING "ON." INTO MSG-BODY WITH POINTER PTR(1)
ELSE STRING "OFF." INTO MSG-BODY WITH POINTER WORK-PTR. ELSE STRING "OFF." INTO MSG-BODY WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-RELEVEL. HANDLE-RELEVEL.
@ -796,7 +800,7 @@
PERFORM BEGIN-STANDARD-REPLY. PERFORM BEGIN-STANDARD-REPLY.
STRING USER-RECORD STRING USER-RECORD
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-BF-CODE. HANDLE-BF-CODE.
@ -806,22 +810,22 @@
BF-CODE, BF-CODE,
"$NUL$" "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
D DISPLAY "BF-CODE. ", BF-CODE D DISPLAY "BF-CODE. ", BF-CODE
PERFORM SEND-LINE PERFORM SEND-LINE
ELSE ELSE
PERFORM REPLY-ACK PERFORM REPLY-ACK
PERFORM VALIDATE-USER PERFORM VALIDATE-USER
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS) MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR TO PTR(1)
UNSTRING MSG-BODY DELIMITED BY SPACE UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK, INTO R(1),
WITH POINTER WORK-PTR WITH POINTER PTR(1)
UNSTRING MSG-BODY UNSTRING MSG-BODY
INTO WORK INTO R(1)
WITH POINTER WORK-PTR WITH POINTER PTR(1)
IF USER-LEVEL IS NOT LESS THAN 60 THEN IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE WORK TO BF-CODE MOVE R(1) TO BF-CODE
ELSE ELSE
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
@ -831,7 +835,7 @@
STRING "INPUT. ", STRING "INPUT. ",
BF-INPUT BF-INPUT
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER PTR(1)
D DISPLAY "INPUT. ", BF-INPUT D DISPLAY "INPUT. ", BF-INPUT
D DISPLAY "MSG-BODY. ", MSG-BODY D DISPLAY "MSG-BODY. ", MSG-BODY
PERFORM SEND-LINE PERFORM SEND-LINE
@ -839,15 +843,15 @@
PERFORM REPLY-ACK PERFORM REPLY-ACK
PERFORM VALIDATE-USER PERFORM VALIDATE-USER
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS) MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR TO PTR(1)
UNSTRING MSG-BODY DELIMITED BY SPACE UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK, INTO R(1),
WITH POINTER WORK-PTR WITH POINTER PTR(1)
UNSTRING MSG-BODY UNSTRING MSG-BODY
INTO WORK INTO R(1)
WITH POINTER WORK-PTR WITH POINTER PTR(1)
IF USER-LEVEL IS NOT LESS THAN 50 THEN IF USER-LEVEL IS NOT LESS THAN 50 THEN
MOVE WORK TO BF-INPUT MOVE R(1) TO BF-INPUT
ELSE ELSE
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
@ -860,7 +864,7 @@
STRING "OUTPUT. " DELIMITED BY SIZE, STRING "OUTPUT. " DELIMITED BY SIZE,
BF-OUTPUT DELIMITED BY "$NUL$" BF-OUTPUT DELIMITED BY "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
D DISPLAY "SENDING LINE". D DISPLAY "SENDING LINE".
PERFORM SEND-LINE. PERFORM SEND-LINE.
D DISPLAY "SENT LINE". D DISPLAY "SENT LINE".
@ -900,7 +904,7 @@
CYCLE-LIMIT CYCLE-LIMIT
"." "."
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-CTCP. HANDLE-CTCP.
@ -908,12 +912,12 @@
IF NOTICE AND TARGET IS NOT EQUAL TO WOPO-NICK THEN IF NOTICE AND TARGET IS NOT EQUAL TO WOPO-NICK THEN
NEXT SENTENCE NEXT SENTENCE
ELSE ELSE
MOVE 6 TO WORK-PTR MOVE 6 TO PTR(1)
UNSTRING PARAM OF WOPO(1) DELIMITED BY SPACE OR "$SOH$" UNSTRING PARAM OF WOPO(1) DELIMITED BY SPACE OR "$SOH$"
INTO WORK INTO R(1)
WITH POINTER WORK-PTR WITH POINTER PTR(1)
D DISPLAY "CTCP PARAM. ", WORK D DISPLAY "CTCP PARAM. ", R(1)
MOVE WORK TO PARAM OF WOPO(1) MOVE R(1) TO PARAM OF WOPO(1)
IF PARAM OF WOPO(1) IS EQUAL TO "PING" THEN IF PARAM OF WOPO(1) IS EQUAL TO "PING" THEN
PERFORM HANDLE-PING PERFORM HANDLE-PING
ELSE IF PARAM OF WOPO(1) IS EQUAL TO "VERSION" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "VERSION" THEN
@ -924,15 +928,15 @@
HANDLE-PING. HANDLE-PING.
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS) MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR. TO PTR(1).
ADD 5 TO WORK-PTR ADD 5 TO PTR(1)
UNSTRING MSG-BODY DELIMITED BY "$NUL$" UNSTRING MSG-BODY DELIMITED BY "$NUL$"
INTO WORK INTO R(1)
WITH POINTER WORK-PTR. WITH POINTER PTR(1).
STRING "NOTICE " DELIMITED BY SIZE, STRING "NOTICE " DELIMITED BY SIZE,
NICK DELIMITED BY SPACES, NICK DELIMITED BY SPACES,
" $COLN$$SOH$" DELIMITED BY SIZE, " $COLN$$SOH$" DELIMITED BY SIZE,
WORK DELIMITED BY "$SOH$", R(1) DELIMITED BY "$SOH$",
"$SOH$$NUL$" DELIMITED BY SIZE "$SOH$$NUL$" DELIMITED BY SIZE
INTO MSG-BODY. INTO MSG-BODY.
D DISPLAY MSG-BODY. D DISPLAY MSG-BODY.