Refactored, manual preservation no longer needed.
This commit is contained in:
parent
df4a0bb314
commit
87f7347c0c
1 changed files with 25 additions and 78 deletions
103
WOPO.COB
103
WOPO.COB
|
@ -47,6 +47,8 @@
|
||||||
88 IS-COMMAND VALUE "$$".
|
88 IS-COMMAND VALUE "$$".
|
||||||
03 WORK-PTR PIC 999 USAGE COMPUTATIONAL.
|
03 WORK-PTR PIC 999 USAGE COMPUTATIONAL.
|
||||||
03 PARAM PIC X(480) OCCURS 5 TIMES.
|
03 PARAM PIC X(480) OCCURS 5 TIMES.
|
||||||
|
03 WOPO-PARAMS PIC 9.
|
||||||
|
03 WOPO-COUNTER PIC 9.
|
||||||
03 REG PIC X(480) OCCURS 5 TIMES.
|
03 REG PIC X(480) OCCURS 5 TIMES.
|
||||||
03 MSG-BODY-TMP PIC X(999).
|
03 MSG-BODY-TMP PIC X(999).
|
||||||
|
|
||||||
|
@ -176,10 +178,11 @@
|
||||||
CALL "DECODE-STRING" USING ASCII-MSG.
|
CALL "DECODE-STRING" USING ASCII-MSG.
|
||||||
IF NOT SUCCESS THEN DISPLAY MSG-BODY
|
IF NOT SUCCESS THEN DISPLAY MSG-BODY
|
||||||
GO TO DIE.
|
GO TO DIE.
|
||||||
CALL "PARSE-IRC-MSG" USING MSG-BODY, IRC-PARAMETERS.
|
|
||||||
PERFORM GET-IRC-STATE.
|
PERFORM GET-IRC-STATE.
|
||||||
|
PERFORM GET-PARAMS.
|
||||||
|
|
||||||
GET-IRC-STATE.
|
GET-IRC-STATE.
|
||||||
|
CALL "PARSE-IRC-MSG" USING MSG-BODY, IRC-PARAMETERS.
|
||||||
IF GOT-PREFIX THEN
|
IF GOT-PREFIX THEN
|
||||||
MOVE MSG-SRC TO WORK-PTR
|
MOVE MSG-SRC TO WORK-PTR
|
||||||
UNSTRING MSG-BODY
|
UNSTRING MSG-BODY
|
||||||
|
@ -212,18 +215,22 @@
|
||||||
MOVE 1 TO WORK-PTR.
|
MOVE 1 TO WORK-PTR.
|
||||||
PERFORM BLANK-PARAM VARYING WORK-PTR FROM 1, BY 1,
|
PERFORM BLANK-PARAM VARYING WORK-PTR FROM 1, BY 1,
|
||||||
UNTIL WORK-PTR IS NOT LESS THAN 5.
|
UNTIL WORK-PTR IS NOT LESS THAN 5.
|
||||||
|
MOVE 0 TO WOPO-PARAMS.
|
||||||
UNSTRING WORK DELIMITED BY SPACE
|
UNSTRING WORK DELIMITED BY SPACE
|
||||||
INTO PARAM(1)
|
INTO PARAM(1)
|
||||||
PARAM(2)
|
PARAM(2)
|
||||||
PARAM(3)
|
PARAM(3)
|
||||||
PARAM(4)
|
PARAM(4)
|
||||||
PARAM(5).
|
PARAM(5)
|
||||||
|
TALLYING IN WOPO-PARAMS.
|
||||||
|
|
||||||
BLANK-PARAM.
|
BLANK-PARAM.
|
||||||
MOVE SPACES TO PARAM(WORK-PTR).
|
MOVE SPACES TO PARAM(WORK-PTR).
|
||||||
|
|
||||||
VALIDATE-USER.
|
VALIDATE-USER.
|
||||||
D DISPLAY "ENTERED VALIDATE-USER".
|
D DISPLAY "ENTERED VALIDATE-USER".
|
||||||
|
* SAVE MESSAGE.
|
||||||
|
MOVE MSG-BODY TO MSG-BODY-TMP.
|
||||||
MOVE NICK TO USER-NAME.
|
MOVE NICK TO USER-NAME.
|
||||||
READ USERS RECORD
|
READ USERS RECORD
|
||||||
INVALID KEY MOVE 0 TO USER-LEVEL.
|
INVALID KEY MOVE 0 TO USER-LEVEL.
|
||||||
|
@ -243,10 +250,12 @@
|
||||||
D ELSE
|
D ELSE
|
||||||
D DISPLAY "USER NOT VALIDATED."
|
D DISPLAY "USER NOT VALIDATED."
|
||||||
.
|
.
|
||||||
|
* RESTORE AND REPARSE MESSAGE.
|
||||||
|
MOVE MSG-BODY-TMP TO MSG-BODY.
|
||||||
|
PERFORM GET-IRC-STATE.
|
||||||
|
|
||||||
WAIT-FOR-ACC.
|
WAIT-FOR-ACC.
|
||||||
PERFORM WAIT-FOR-COMMAND.
|
PERFORM WAIT-FOR-COMMAND.
|
||||||
PERFORM GET-PARAMS.
|
|
||||||
IF PARAM(1) EQUALS USER-NAME AND PARAM(2) EQUALS "ACC" THEN
|
IF PARAM(1) EQUALS USER-NAME AND PARAM(2) EQUALS "ACC" THEN
|
||||||
MOVE 99 TO STATE
|
MOVE 99 TO STATE
|
||||||
IF PARAM(3) IS NOT EQUAL TO "3" THEN
|
IF PARAM(3) IS NOT EQUAL TO "3" THEN
|
||||||
|
@ -310,7 +319,6 @@
|
||||||
PERFORM SEND-LINE.
|
PERFORM SEND-LINE.
|
||||||
|
|
||||||
HANDLE-KICK.
|
HANDLE-KICK.
|
||||||
PERFORM GET-PARAMS.
|
|
||||||
IF PARAM(1) IS EQUAL TO WOPO-NICK THEN
|
IF PARAM(1) IS EQUAL TO WOPO-NICK THEN
|
||||||
MOVE SPACES TO MSG-BODY
|
MOVE SPACES TO MSG-BODY
|
||||||
STRING "JOIN " DELIMITED BY SIZE,
|
STRING "JOIN " DELIMITED BY SIZE,
|
||||||
|
@ -338,7 +346,6 @@
|
||||||
PERFORM SEND-LINE.
|
PERFORM SEND-LINE.
|
||||||
|
|
||||||
HANDLE-MESSAGE.
|
HANDLE-MESSAGE.
|
||||||
PERFORM GET-PARAMS.
|
|
||||||
IF IS-COMMAND THEN
|
IF IS-COMMAND THEN
|
||||||
MOVE 3 TO WORK-PTR
|
MOVE 3 TO WORK-PTR
|
||||||
UNSTRING PARAM(1) INTO WORK
|
UNSTRING PARAM(1) INTO WORK
|
||||||
|
@ -409,40 +416,24 @@
|
||||||
PERFORM SEND-LINE.
|
PERFORM SEND-LINE.
|
||||||
|
|
||||||
HANDLE-JOIN.
|
HANDLE-JOIN.
|
||||||
MOVE PARAM(2) TO REG(1).
|
|
||||||
* PRESERVE VARIABLES FOR REPLY
|
|
||||||
MOVE NICK TO REG(2).
|
|
||||||
MOVE COMMAND OF IRC-STATE TO REG(3).
|
|
||||||
MOVE TARGET TO REG(4).
|
|
||||||
PERFORM VALIDATE-USER.
|
PERFORM VALIDATE-USER.
|
||||||
IF USER-LEVEL IS GREATER THAN 80 AND
|
IF USER-LEVEL IS GREATER THAN 80 AND
|
||||||
REG(1) IS NOT EQUAL TO "0" THEN
|
PARAM(2) IS NOT EQUAL TO "0" THEN
|
||||||
MOVE SPACES TO MSG-BODY
|
MOVE SPACES TO MSG-BODY
|
||||||
STRING "JOIN ", DELIMITED BY SIZE,
|
STRING "JOIN ", DELIMITED BY SIZE,
|
||||||
REG(1), DELIMITED BY SPACES,
|
PARAM(2), DELIMITED BY SPACES,
|
||||||
"$NUL$"
|
"$NUL$"
|
||||||
INTO MSG-BODY
|
INTO MSG-BODY
|
||||||
PERFORM SEND-LINE
|
PERFORM SEND-LINE
|
||||||
* RESTORE NICK AND TARGET, THEN REPLY.
|
|
||||||
MOVE REG(2) TO NICK
|
|
||||||
MOVE REG(3) TO COMMAND OF IRC-STATE
|
|
||||||
MOVE REG(4) TO TARGET
|
|
||||||
PERFORM REPLY-ACK.
|
PERFORM REPLY-ACK.
|
||||||
|
|
||||||
HANDLE-PART.
|
HANDLE-PART.
|
||||||
MOVE PARAM(2) TO REG(1).
|
IF WOPO-PARAMS IS LESS THAN 2 THEN
|
||||||
* PRESERVE VARIABLES FOR REPLY
|
MOVE TARGET TO REG(1)
|
||||||
MOVE NICK TO REG(2).
|
ELSE
|
||||||
MOVE COMMAND OF IRC-STATE TO REG(3).
|
MOVE PARAM(2) TO REG(1)
|
||||||
MOVE TARGET TO REG(4).
|
|
||||||
IF REG(1) EQUALS SPACES THEN
|
|
||||||
MOVE TARGET TO REG(1).
|
|
||||||
PERFORM VALIDATE-USER.
|
PERFORM VALIDATE-USER.
|
||||||
IF USER-LEVEL IS GREATER THAN 80 THEN
|
IF USER-LEVEL IS GREATER THAN 80 THEN
|
||||||
* RESTORE NICK AND TARGET, THEN REPLY.
|
|
||||||
MOVE REG(2) TO NICK
|
|
||||||
MOVE REG(3) TO COMMAND OF IRC-STATE
|
|
||||||
MOVE REG(4) TO TARGET
|
|
||||||
PERFORM REPLY-ACK
|
PERFORM REPLY-ACK
|
||||||
MOVE SPACES TO MSG-BODY
|
MOVE SPACES TO MSG-BODY
|
||||||
STRING "PART " DELIMITED BY SIZE,
|
STRING "PART " DELIMITED BY SIZE,
|
||||||
|
@ -452,19 +443,11 @@
|
||||||
PERFORM SEND-LINE.
|
PERFORM SEND-LINE.
|
||||||
|
|
||||||
HANDLE-QUIT.
|
HANDLE-QUIT.
|
||||||
* PRESERVE VARIABLES FOR REPLY
|
|
||||||
MOVE NICK TO REG(1).
|
|
||||||
MOVE COMMAND OF IRC-STATE TO REG(2).
|
|
||||||
MOVE TARGET TO REG(3).
|
|
||||||
MOVE "QUIT-MESSAGE" TO CONFIG-KEY.
|
MOVE "QUIT-MESSAGE" TO CONFIG-KEY.
|
||||||
READ CONFIG RECORD
|
READ CONFIG RECORD
|
||||||
INVALID KEY MOVE SPACES TO CONFIG-VALUE.
|
INVALID KEY MOVE SPACES TO CONFIG-VALUE.
|
||||||
PERFORM VALIDATE-USER.
|
PERFORM VALIDATE-USER.
|
||||||
IF USER-LEVEL IS GREATER THAN 90 THEN
|
IF USER-LEVEL IS GREATER THAN 90 THEN
|
||||||
* RESTORE NICK AND TARGET, THEN REPLY.
|
|
||||||
MOVE REG(1) TO NICK
|
|
||||||
MOVE REG(2) TO COMMAND OF IRC-STATE
|
|
||||||
MOVE REG(3) TO TARGET
|
|
||||||
PERFORM REPLY-ACK
|
PERFORM REPLY-ACK
|
||||||
MOVE SPACES TO MSG-BODY
|
MOVE SPACES TO MSG-BODY
|
||||||
STRING "QUIT $COLN$" DELIMITED BY SIZE,
|
STRING "QUIT $COLN$" DELIMITED BY SIZE,
|
||||||
|
@ -474,24 +457,14 @@
|
||||||
GO TO QUIT.
|
GO TO QUIT.
|
||||||
|
|
||||||
HANDLE-RELEVEL.
|
HANDLE-RELEVEL.
|
||||||
MOVE PARAM(2) TO REG(1).
|
|
||||||
MOVE PARAM(3) TO REG(2).
|
|
||||||
* PRESERVE VARIABLES FOR REPLY
|
|
||||||
MOVE NICK TO REG(3).
|
|
||||||
MOVE COMMAND OF IRC-STATE TO REG(4).
|
|
||||||
MOVE TARGET TO REG(5).
|
|
||||||
PERFORM VALIDATE-USER.
|
PERFORM VALIDATE-USER.
|
||||||
MOVE REG(1) TO USER-NAME.
|
MOVE PARAM(2) TO USER-NAME.
|
||||||
IF USER-LEVEL IS EQUAL TO 99 THEN
|
IF USER-LEVEL IS EQUAL TO 99 THEN
|
||||||
MOVE REG(2) TO USER-LEVEL
|
MOVE PARAM(3) TO USER-LEVEL
|
||||||
REWRITE USER-RECORD
|
REWRITE USER-RECORD
|
||||||
INVALID KEY WRITE USER-RECORD.
|
INVALID KEY WRITE USER-RECORD.
|
||||||
READ USERS RECORD
|
READ USERS RECORD
|
||||||
INVALID KEY MOVE 0 TO USER-LEVEL.
|
INVALID KEY MOVE 0 TO USER-LEVEL.
|
||||||
* RESTORE NICK AND TARGET, THEN REPLY.
|
|
||||||
MOVE REG(3) TO NICK.
|
|
||||||
MOVE REG(4) TO COMMAND OF IRC-STATE.
|
|
||||||
MOVE REG(5) TO TARGET.
|
|
||||||
PERFORM BEGIN-REPLY.
|
PERFORM BEGIN-REPLY.
|
||||||
STRING USER-RECORD
|
STRING USER-RECORD
|
||||||
INTO MSG-BODY
|
INTO MSG-BODY
|
||||||
|
@ -499,7 +472,7 @@
|
||||||
PERFORM SEND-LINE.
|
PERFORM SEND-LINE.
|
||||||
|
|
||||||
HANDLE-BF-CODE.
|
HANDLE-BF-CODE.
|
||||||
IF PARAM(2) IS EQUAL TO SPACES THEN
|
IF WOPO-PARAMS IS LESS THAN 2 THEN
|
||||||
PERFORM BEGIN-REPLY
|
PERFORM BEGIN-REPLY
|
||||||
STRING "CODE. " DELIMITED BY SIZE,
|
STRING "CODE. " DELIMITED BY SIZE,
|
||||||
BF-CODE DELIMITED BY "$$",
|
BF-CODE DELIMITED BY "$$",
|
||||||
|
@ -509,23 +482,14 @@
|
||||||
D DISPLAY "BF-CODE. ", BF-CODE
|
D DISPLAY "BF-CODE. ", BF-CODE
|
||||||
PERFORM SEND-LINE
|
PERFORM SEND-LINE
|
||||||
ELSE
|
ELSE
|
||||||
MOVE PARAM(2) TO REG(1)
|
|
||||||
* PRESERVE VARIABLES FOR REPLY.
|
|
||||||
MOVE NICK TO REG(2)
|
|
||||||
MOVE COMMAND OF IRC-STATE TO REG(3)
|
|
||||||
MOVE TARGET TO REG(4)
|
|
||||||
PERFORM VALIDATE-USER
|
PERFORM VALIDATE-USER
|
||||||
IF USER-LEVEL > 60 THEN
|
IF USER-LEVEL > 60 THEN
|
||||||
* RESTORE NICK AND TARGET, THEN REPLY.
|
|
||||||
MOVE REG(2) TO NICK
|
|
||||||
MOVE REG(3) TO COMMAND OF IRC-STATE
|
|
||||||
MOVE REG(4) TO TARGET
|
|
||||||
MOVE SPACES TO BF-CODE
|
MOVE SPACES TO BF-CODE
|
||||||
MOVE REG(1) TO BF-CODE
|
MOVE PARAM(2) TO BF-CODE
|
||||||
PERFORM REPLY-ACK.
|
PERFORM REPLY-ACK.
|
||||||
|
|
||||||
HANDLE-BF-INPUT.
|
HANDLE-BF-INPUT.
|
||||||
IF PARAM(2) IS EQUAL TO SPACES THEN
|
IF WOPO-PARAMS IS LESS THAN 2 THEN
|
||||||
PERFORM BEGIN-REPLY
|
PERFORM BEGIN-REPLY
|
||||||
STRING "INPUT. ",
|
STRING "INPUT. ",
|
||||||
BF-INPUT
|
BF-INPUT
|
||||||
|
@ -542,16 +506,8 @@
|
||||||
UNSTRING MSG-BODY
|
UNSTRING MSG-BODY
|
||||||
INTO REG(1)
|
INTO REG(1)
|
||||||
WITH POINTER WORK-PTR
|
WITH POINTER WORK-PTR
|
||||||
* PRESERVE VARIABLES FOR REPLY.
|
|
||||||
MOVE NICK TO REG(2)
|
|
||||||
MOVE COMMAND OF IRC-STATE TO REG(3)
|
|
||||||
MOVE TARGET TO REG(4)
|
|
||||||
PERFORM VALIDATE-USER
|
PERFORM VALIDATE-USER
|
||||||
IF USER-LEVEL > 50 THEN
|
IF USER-LEVEL > 50 THEN
|
||||||
* RESTORE NICK AND TARGET, THEN REPLY
|
|
||||||
MOVE REG(2) TO NICK
|
|
||||||
MOVE REG(3) TO COMMAND OF IRC-STATE
|
|
||||||
MOVE REG(4) TO TARGET
|
|
||||||
MOVE REG(1) TO BF-INPUT
|
MOVE REG(1) TO BF-INPUT
|
||||||
PERFORM REPLY-ACK.
|
PERFORM REPLY-ACK.
|
||||||
|
|
||||||
|
@ -569,21 +525,12 @@
|
||||||
|
|
||||||
HANDLE-BF-RUN.
|
HANDLE-BF-RUN.
|
||||||
D DISPLAY "HANDLING BF-RUN".
|
D DISPLAY "HANDLING BF-RUN".
|
||||||
MOVE PARAM(2) TO REG(1).
|
|
||||||
* PRESERVE VARIABLES FOR REPLY
|
|
||||||
MOVE NICK TO REG(2).
|
|
||||||
MOVE COMMAND OF IRC-STATE TO REG(3).
|
|
||||||
MOVE TARGET TO REG(4).
|
|
||||||
PERFORM VALIDATE-USER.
|
PERFORM VALIDATE-USER.
|
||||||
IF REG(1) IS EQUAL TO SPACES THEN
|
IF WOPO-PARAMS IS LESS THAN 2 THEN
|
||||||
MOVE 999 TO MAYBE-CYCLE-LIMIT
|
MOVE 999 TO MAYBE-CYCLE-LIMIT
|
||||||
ELSE
|
ELSE
|
||||||
UNSTRING REG(1) INTO MAYBE-CYCLE-LIMIT.
|
UNSTRING PARAM(2) INTO MAYBE-CYCLE-LIMIT.
|
||||||
D DISPLAY "CYCLE LIMIT. ", CYCLE-LIMIT.
|
D DISPLAY "CYCLE LIMIT. ", CYCLE-LIMIT.
|
||||||
* RESTORE NICK AND TARGET, THEN REPLY.
|
|
||||||
MOVE REG(2) TO NICK
|
|
||||||
MOVE REG(3) TO COMMAND OF IRC-STATE
|
|
||||||
MOVE REG(4) TO TARGET
|
|
||||||
IF USER-LEVEL > 50 THEN
|
IF USER-LEVEL > 50 THEN
|
||||||
PERFORM REPLY-ACK
|
PERFORM REPLY-ACK
|
||||||
MOVE MAYBE-CYCLE-LIMIT TO CYCLE-LIMIT
|
MOVE MAYBE-CYCLE-LIMIT TO CYCLE-LIMIT
|
||||||
|
|
Loading…
Reference in a new issue