{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathagenda_plan.inc
More file actions
2136 lines (2122 loc) · 83.5 KB
/
Copy pathagenda_plan.inc
File metadata and controls
2136 lines (2122 loc) · 83.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*---------------------------------------------------------------
.
. Module Name: agenda_plan.inc
. Description: Meeting Planner Module
.
. Revision History:
.
.Open the Appointment Files as Needed
.
PLAN
MOVE ZERO,AGENDASW
MOVE OPENFLAG,REPLY
AND 0100,REPLY
GOTO PLAN1 IF NOT ZERO
TRAP TRAPIO IF IO // Can't open a file
OPEN GRAPH,FSG,SHARE
OPEN AGENDA,FSA,SHARE
OPEN AGENDAIM,FSA,SHARE
OR 0100,OPENFLAG
TRAPCLR IO
*
.Open the Planning Files as Needed
.
PLAN1 MOVE OPENFLAG,REPLY
AND 004,REPLY
GOTO PLAN2 IF NOT EQUAL
.
TRAP TRAPIO IF IO
OPEN PLAN,FSP,SHARE
OPEN PLAN1,FSP1,SHARE
OR 004,OPENFLAG
TRAPCLR IO
*
.Display the User's Outstanding Meetings
.
PLAN2 CALL CLOCKDT
MOVE ZERO,MSGSW
CALL SHOWBOX1
DISPLAY *P30:1,MEETPL;
*
.Turn Off His Meeting Flag
.
PACK KEY9 WITH X02,CURRUSER
FILEPI 3;USRFILE
READTAB USRFILE,KEY9;REPLY;
CALL INTERR IF OVER
.
UPDATAB USRFILE;*91,ZERO
*
.Position the Meeting File to the Current User/Date/Time
.
PLAN3
NORETURN
CALL CLOCKDT
PACK KEYWORK WITH USRNO,YEARWORK,JDAYWORK
FILEPI 1;PLAN
READ PLAN,KEYWORK;;
.
MOVE USRNO,KEY6
MOVE ZERO,DTLCOUNT
MOVE ZERO,EOFSW
.
CALL SETSW01
DISPLAY *HD,*EL:
*P6:4,ALMSG1,*H 18,ALMSG2,*H 30,SCHBY:
*H 54,PLLOC,*H 70,PLCON:
*P3:5,*RPTCHAR HB:11,*H 16,*RPTCHAR HB:8:
*H 26,*RPTCHAR HB:20,*H 48,*RPTCHAR HB:20:
*H 70,*RPTCHAR HB:9
*
.Display a Screen of His Outstanding Meetings
.
PLAN4
FILEPI 1;PLAN
READKS PLAN;KEY17,USRNO2,ENDHOUR,ENDMIN,DATE:
STIME,ETIME,USRNAME1,LOCATION,CONFIRM,DATA
GOTO PLAN5 IF OVER
*
.Right User ?
.
MATCH KEY6,KEY17
GOTO PLAN5 IF NOT EQUAL
*
.Save the Record's Key
.
ADD ONE,DTLCOUNT
STORE KEY17 BY DTLCOUNT INTO KEYA,KEYB,KEYC,KEYD,KEYE,KEYF:
KEYG,KEYH,KEYI,KEYJ,KEYK,KEYL,KEYM,KEYN,KEYO,KEYP,KEYQ
*
.Display the Meeting Info
.
DISPLAY *H 3,DATE,*H 16,STIME,*H 26,USRNAME1:
*H 48,LOCATION,*H 73,CONFIRM
.
COMPARE "16",DTLCOUNT
GOTO PLAN4 IF NOT EQUAL
GOTO MP$CMD1
*
.Indicate We Encountered the End of File
.
PLAN5
MOVE ONE,EOFSW
+..............................................................................
.
. M E E T I N G P L A N N E R C O M M A N D H A N D L E R
...............................................................................
.
.
MP$CMD1 NORETURN
MOVE ZERO,CMDTRAP
TRAP LOGON IF ESCAPE
TRAP LOGON IF F27
DISPLAY *HD,*EL,SPACE,MPFUNC2,SPACE,MPFUNC4,SPACE:
MPFUNC3,SPACE,NFUNC1;
CLEAR FUNCDESC // Clear the functions.
MOVE ZERO,FLAG1 // Flag1 = 0
CALL CHKALRM // Check for alarm,plan,message.
MOVE ZERO,FLAG2
*
.Highlight the Correct Function
.
MP$CMD2 LOAD FUNCDESC BY BFUNC FROM MPFUNC2,MPFUNC4,MPFUNC3,NFUNC1
MOVE BFUNC,NWORK2
SUB ONE,NWORK2
MULT TWO,NWORK2
ADD ONE,NWORK2
RESET BFPOS,NWORK2
MOVE BFPOS,DIM2
MOVE DIM2,HPOS
*
.Get a Command
.
MP$CMD3 DISPLAY *PHPOS:24,*HON,*+,FUNCDESC,*HOFF;
KEYIN *H HPOS,*HA -1,*T60,*+,*RV,REPLY;
IF LEFT
CMOVE LEFT,REPLY
ENDIF
IF RIGHT
CMOVE RIGHT,REPLY
ENDIF
GOTO MP$CMD8 IF F5
GOTO MP$CMD8 IF F9
GOTO MP$CMD7 IF LESS
GOTO MP$CMD6 IF EOS
DISPLAY *H HPOS,*HA -1,SPACE,*+,FUNCDESC;
*
.Check for a Direction Command
.
CMATCH 066 TO REPLY
GOTO MP$CMD4 IF EQUAL
CMATCH 064 TO REPLY
GOTO MP$CMD5 IF EQUAL
CMATCH " ",REPLY
GOTO MP$CMD4 IF EQUAL
*
.Check for a Function Letter
.
RESET BLETS
SCAN REPLY,BLETS
IF NOT EQUAL // Lower Case
RESET BLETS2
SCAN REPLY,BLETS2
GOTO MP$CMD3 IF NOT EQUAL
MOVEFPTR BLETS2,BFUNC
GOTO MP$CMD2
ENDIF
MOVEFPTR BLETS,BFUNC
GOTO MP$CMD2
*
.Move Right to the Next Function
.
MP$CMD4 ADD ONE,BFUNC
COMPARE FIVE,BFUNC
GOTO MP$CMD2 IF NOT EQUAL
MOVE ONE,BFUNC
GOTO MP$CMD2
*
.Move Left to the Next Function
.
MP$CMD5 SUB ONE,BFUNC
GOTO MP$CMD2 IF NOT ZERO
MOVE FOUR,BFUNC
GOTO MP$CMD2
*
.We Have a Selected Function
MP$CMD6 BRANCH BFUNC TO MPADD,MPCONFRM,MPCAN,MPNEXT
CALL INTERR
*
.A Timeout Occurred - Check Alarm & Messages
.
MP$CMD7 MOVE ZERO,FLAG1
CALL CHKALRM
DISPLAY *P59:1,DATE,SPACE2,TIME;
GOTO MP$CMD3
*
.Help Requested
.
MP$CMD8 MOVE TEN,HMENU
MOVE BFUNC,HFUNCNO
CALL HELP
CALL SHOWBOX1
GOTO PLAN3
+..............................................................................
.
. N E X T P A G E O F M E E T I N G S
...............................................................................
.
.
MPNEXT BRANCH EOFSW TO MPNEXT1 We're at the End of File
.
TRAPCLR ESCAPE
TRAPCLR F27
CALL SETTOP06
CALL SETSW01
DISPLAY *V 6;
.
FILEPI 1;PLAN
READ PLAN,KEY17;;
MOVE ZERO,DTLCOUNT
GOTO PLAN4
*
.If End of File and 1st Screen, Just Return to Command Line
.
MPNEXT1 BRANCH PAGE TO MP$CMD3
*
.Rewind to the 1st Screen of Meetings
.
CALL SETSW01
GOTO PLAN3
+..............................................................................
.
. S C H E D U L E A M E E T I N G
...............................................................................
.
.
MPADD NORETURN
MOVE THIRTY8,CMDTRAP
TRAP PLAN3 IF ESCAPE
TRAP PLAN3 IF F27
.
CALL SETSW01
DISPLAY *P5:4,SCHM1:
*N,*N,*H 5,SCHM2:
*N,*H 2,SCHM3,SCHM4:
*N,*H 2,SCHM5:
*N,*N,*H 5,SCHM6:
*N,*H 2,SCHM7,SCHM8:
*N,*H 2,SCHM9,SCHM10:
*N,*H 2,SCHM11,SCHM12;
*
.See Which Mode They Want
.
MPADD1 CMOVE "1",REPLY
KEYIN *HD,*EL,*DV,PLANMODE,*HA -1,*RV,REPLY;
CMATCH "1",REPLY
GOTO MPADDA IF EQUAL
GOTO PLAN3 IF EOS
CMATCH "2",REPLY
GOTO MPADD1 IF NOT EQUAL
GOTO MPADDB
*
.Delete the Work File and Return to the Command Line
.
MPADD2 COMPARE ONE,SWITCHI IS SCRATCHI FILE OPEN ?
GOTO PLAN3 IF NOT EQUAL
CALL AG9005
MOVE ZERO TO MSGSW RE-SET MSGSW AFTER CANELLING MEETING
GOTO PLAN3
+..............................................................................
.
.Meeting Planner Mode 1 (Check Availability)
.
.
MPADDA MOVE THIRTY9,CMDTRAP
TRAP MPADD IF ESCAPE
TRAP MPADD IF F27
CALL SETSW01
DISPLAY *PMEETPOS:4,PLMEET,ALMSG1,COLON:
*PSTPOS:6,PLST,ALMSG2,COLON:
*PENDPOS:7,PLEND:
*P19:8,*RPTCHAR HB:37:
*PDURPOS:9,PLDUR:
*P8:12,PLATT,*H 46,PLSTAT:
*P2:13,*RPTCHAR HB:20,*H 24,*RPTCHAR HB:54;
*
.Get the Meeting Date
.
MPADDA1 MOVE MON,MONWORK
MOVE DAY,DAYWORK
MOVE YEAR,YEARWORK
CALL GREGJUL
CALL JULGREG // Set up 'DATE' for display
DISPLAY *HD,*EL,LITENT,PLMEET,ALMSG1,PERIOD:
*P45:4,DATE:
*P59:4,*RPTCHAR " ":9;
MOVE ZERO,REQFLAG // Allow Null Entry
MOVE ONE,MASKSW // Do Not Display Mask
MOVE FORTY5,HPOS // Horizontal Position
MOVE FOUR,VPOS // Vertical Position
CALL GETDATE // DATE JDAYWORK YEARWORK DAYWORK MONWORK
BRANCH FLAG1 TO MPADD // F5 Key Pressed (Date Vars Invalid)
.
CALL CHECKDT // Make Sure That the Date Entered
. // is the Same or after the Current Date
GOTO MPADDA1 IF NOT EQUAL // Invalid Date
.
CALL FINDOW
LOAD DIM11 BY NWORK2 FROM SUNDAY,MONDAY,TUESDAY:
WEDNESDY,THURSDAY,FRIDAY,SATURDY
DISPLAY *P59:4,DIM11;
*
.Get the Meeting Starting Time
.
MPADDA2 DISPLAY *HD,*EL,LITENT,LITST;
MOVE FORTY5,HPOS
MOVE SIX,VPOS
MOVE ONE,REQFLAG // Don't Allow Null Entry
MOVE ZERO,MASKSW // Display Mask
CALL GETIME
.
BRANCH FLAG1 TO MPADDA1
.
BRANCH SAMEDAY TO MPADDA3 Different Day, No Checking
CALL CHECKTM
GOTO MPADDA2 IF NOT EQUAL
.
MPADDA3 MOVE HOURWORK,HOUR
MOVE MINWORK,MIN
*
.Get the Meeting Ending Time
.
MPADDA4 DISPLAY *HD,*EL,LITENT,LITET;
MOVE FORTY5,HPOS
MOVE SEVEN,VPOS
CALL GETIME
BRANCH FLAG1 TO MPADDA2
.
MOVE HOURWORK,ENDHOUR
MOVE MINWORK,ENDMIN
*
.Make Sure the Starting Time is Before the Ending Time
.
CALL CHECKEND
BRANCH FLAG1 TO MPADDA4
*
.Save the Date & Times
.
MOVE HOUR,HOURSAV
MOVE MIN,MINSAV
MOVE ENDHOUR,EHOURSAV
MOVE ENDMIN,EMINSAV
*
.Set up the Day Table
.
CALL PACK01
.
CALL POSITABL
CALL COMPUTE
MOVE F,REPLY
CALL ADDTABLE
*
.Compute the Meeting Duration
.
MOVE ENDMIN,NWORK1
MOVE ENDHOUR,HOURWRK1
.
SUB MIN,NWORK1
GOTO MPADDA5 IF NOT LESS
ADD SIXTY,NWORK1
SUB ONE,HOURWRK1
.
MPADDA5 SUB HOUR,HOURWRK1
.
MOVE NWORK1,MINWRK1
MOVE MINWRK1,DIM2
REP SPACZERO,DIM2
DISPLAY *P45:9,HOURWRK1,":",DIM2;
*
.Ready the Work File
.
MOVE FOURTEEN,VPOS
CALL AG9000
MOVE FORTY,CMDTRAP
TRAP MPADD2 IF ESCAPE
TRAP MPADD2 IF F27
*
................................................................................
. .
. The following new code was added to include the new command handler for .
. the two new options, Single person entry and Group entry. I copied the .
. code from the above command handler and modified it to fit this purpose. .
. .
................................................................................
MPCMD0 MOVE ZERO,CMDTRAP
TRAP PLAN2 IF ESCAPE
TRAP PLAN2 IF F27
DISPLAY *HD,*EL,SPACE,MPFUNC5,SPACE,SPACE,MPFUNC6,SPACE;
MOVE ZERO,FLAG2
.
.Highlight the Correct Function
.
MPCMD1 LOAD FUNCDESC BY MPFUNC FROM MPFUNC5,MPFUNC6
MOVE MPFUNC,NWORK2
SUB ONE,NWORK2
MULT TWO,NWORK2
ADD ONE,NWORK2
RESET MPPOS,NWORK2
MOVE MPPOS,DIM2
MOVE DIM2,HPOS
*
.Get a Command
.
MPCMD2 DISPLAY *PHPOS:24,*HON,*+,FUNCDESC,*HOFF;
KEYIN *H HPOS,*HA -1,*T60,*+,*RV,REPLY;
IF LEFT
CMOVE LEFT,REPLY
ENDIF
IF RIGHT
CMOVE RIGHT,REPLY
ENDIF
GOTO MPCMD7 IF F5
GOTO MPCMD7 IF F9
GOTO MPCMD6 IF LESS
GOTO MPCMD5 IF EOS
DISPLAY *H HPOS,*HA -1,SPACE,*+,FUNCDESC;
*
.Check for a Direction Command
.
CMATCH 066 TO REPLY
GOTO MPCMD3 IF EQUAL
CMATCH 064 TO REPLY
GOTO MPCMD4 IF EQUAL
CMATCH " ",REPLY
GOTO MPCMD3 IF EQUAL
*
.Check for a Function Letter
.
RESET MPLETS
SCAN REPLY,MPLETS
IF NOT EQUAL // Lower Case
RESET MPLETS2
SCAN REPLY,MPLETS2
GOTO MPCMD2 IF NOT EQUAL
MOVEFPTR MPLETS2,MPFUNC
GOTO MPCMD1
ENDIF
MOVEFPTR MPLETS,MPFUNC
GOTO MPCMD1
*
.Move Right to the Next Function
.
MPCMD3 ADD ONE,MPFUNC
COMPARE THREE,MPFUNC
GOTO MPCMD1 IF NOT EQUAL
MOVE ONE,MPFUNC
GOTO MPCMD1
*
.Move Left to the Next Function
.
MPCMD4 SUB ONE,MPFUNC
GOTO MPCMD1 IF NOT ZERO
MOVE TWO,MPFUNC
GOTO MPCMD1
*
.We Have a Selected Function
.
MPCMD5 COMPARE ONE,PLANFLG
IF EQUAL
BRANCH MPFUNC TO MPADDA6,MPADDGRP
ELSE
BRANCH MPFUNC TO MPADDB10,MPADDGRP
ENDIF
CALL INTERR
*
.A Timeout Occurred - Check Alarm & Messages
.
MPCMD6 MOVE ZERO,FLAG1
CALL CHKALRM
DISPLAY *P59:1,DATE,SPACE2,TIME;
GOTO MPCMD2
*
.Help Requested
.
MPCMD7 MOVE TEN,HMENU
MOVE MPFUNC,HFUNCNO
CALL HELP
CALL SHOWBOX1
GOTO PLAN3
*
................................................................................
. .
. End of the added code for the new command selection portion. .
. .
................................................................................
*
.Get the Attendees
.
MPADDA6 MOVE TWO,HPOS
MOVE ONE,FLAG1 // Any User
MOVE ZERO,FLAG4
CALL FINDUSER
BRANCH EOSFLAG TO MPADDA9
COMPARE ZERO,FLAG1
GOTO MPADDA7 IF EQUAL
*
.To Backup, Delete the Work File First
.
CALL AG9005 // CLOSE SCRATCH FILE
CALL SETTOP14
CALL SETSW01
DISPLAY *HD,*EL,*P45:9,*RPTCHAR " ":5;
GOTO MPADDA4
*
.Check for Duplicate Requests
.
MPADDA7 MOVE USRNO1,KEY6
READ SCRATCHI,KEY6;REPLY
GOTO MPADDA71 IF OVER
.
KEYIN *CLICK,*HD,*EL,*DV,USRREQ,REPLY;
GOTO MPADDA6
*
.Write the User Number to the Scratch File
.
MPADDA71 DISPLAY *P2:VPOS,USRNAME1,*H 24,PLREQ;
WRITE SCRATCHI,KEY6;USRNO1,USRNAME1
.
COMPARE TWENTY1,VPOS
GOTO MPADDA8 IF NOT EQUAL
*
.Roll the Window Up One
.
CALL SETTOP14
CALL SETSW03
DISPLAY *HD,*R,*SETSWALL=1:24:1:80;
GOTO MPADDA6
*
.Position to the Next Line Down
.
MPADDA8 ADD ONE,VPOS
GOTO MPADDA6
*
.All Users are Entered
.
MPADDA9 REPOSIT SCRATCHI,ZERO
.
MPADDA10 CALL DISPCAA
CALL SETTOP14
CALL SETSW02
DISPLAY *HU;
.
MOVE ZERO,COUNT
*
.Get a User Name
.
MPADDA11 READ SCRATCHI,SEQ;USRNO1,USRNAME1
GOTO MPADDA15 IF OVER
.
DISPLAY *H 1,USRNAME1,*H 24,PLCHK;
*
.Position to the Correct Day
.
PACK DIM11 WITH USRNO1,YEARWORK,JDAYWORK
FILEPI 1;GRAPH
READ GRAPH,DIM11;DIM11,COUNTER,TABLE
GOTO MPADDA12 IF NOT OVER // Possible Conflict
CALL CHECKMEET // Check for conflicting meeting.
GOTO MPADDA14 IF EQUAL // No conflict.
.See if the Appointment Conflicts
.
. Establish TPOS and NBLOCKS prior to calling CHECK
MPADDA12
CALL CHECK
GOTO MP12A IF EQUAL // No Problem
GOTO MP12B
MP12A CALL CHECKMEET // Check for conflicting meeting.
GOTO MPADDA14 IF EQUAL // No Problem
*
.User Can't Attend
.
MP12B CMATCH SPACE,SECFLAG // Confidential?
GOTO MPADDA13 IF EQUAL // No...
MOVE CONMSG,DATA
.
MPADDA13 DISPLAY *H 24,PLUNAV,PAROP,TFLAG,PARCL,SPACE
ADD ONE,COUNT
GOTO MPADDA11
*
.User Can Attend
.
MPADDA14 DISPLAY *H 24,PLAVAIL
GOTO MPADDA11
*
................................................................................
. .
. GROUP BROADCAST FOR THE MEETING PLANNER .
. .
. This is the new code added for the GROUP option in the meeting planner. It .
. was copied from the broadcast in the message section and modified to fit .
. meeting section design. .
. The code checks the group name, gathers all the users in that group, .
. checks thier schedules, and either confirms or displays that they are not .
. able to attend. .
. .
................................................................................
MPADDGRP CALL AG9000
MOVE ZERO,COUNT
MOVE SEVNTEEN,CMDTRAP
TRAP MPADDG11 IF ESCAPE
TRAP MPADDG11 IF F27
MOVE ZERO,NWORK1
.
MPADDGR1 COMPARE ONE,PLANFLG
IF EQUAL
KEYIN *HD,*EL,*DV,LITENT,*DV,PLGRP:
*P2:14,*RPTCHAR "_":6,*H 2,DIM6;
ELSE
KEYIN *HD,*EL,*DV,LITENT,*DV,PLGRP:
*P30:16,*RPTCHAR "_":6,*H 30,DIM6;
ENDIF
GOTO MPADDG11 IF F5
.
CMATCH " ",DIM6
GOTO MPADDA16 IF EQUAL
*
.See If He Wants the Entire Group or Pick & Choose
.
DISPLAY *HD,*EL,PLSEL;
CALL KREPLYN
GOTO MPADDGR1 IF F5
.
REP PLREP,REPLY
MOVE ZERO,INDEX
MOVE REPLY,INDEX
*
.Branch to the Correct Routine
.
BUMP DIM6,0
GOTO MPADDGR7 IF EOS
*
.Pull All Users for the Specified Group
.
PACK AKEY2 WITH L04,DIM6
.
TRAP MPADDGR2 IF IO
FILEPI 1;USRFILE
READTAB USRFILE,AKEY2;*11,USRNO1,USRNAME1
TRAPCLR IO
GOTO MPADDGR4 IF NOT OVER
.
KEYIN *CLICK,*HD,*EL,*DV,GRNFND,REPLY;
GOTO MPADDGR1
*
.Invalid Key Specification
.
MPADDGR2 NORETURN
KEYIN *CLICK,*HD,*EL,*DV,IGRPSPEC,REPLY;
GOTO MPADDGR1
*
.Read Generically Through the File
.
MPADDGR3 FILEPI 1;USRFILE
READKGTB USRFILE;*11,USRNO1,USRNAME1
GOTO MPADDGR6 IF OVER
*
.Include This User ?
.
MPADDGR4 COMPARE ONE,PLANFLG
IF EQUAL
DISPLAY *P2:VPOS,USRNAME1;
ELSE 058
DISPLAY *P30:VPOS,USRNAME1;
ENDIF 058
BRANCH INDEX TO MPADDGR5 // All Users Selected
DISPLAY *HD,*EL,INCUSR;
CALL KREPLYN
GOTO MPADDGR1 IF F5
CMATCH YES,REPLY
GOTO MPADDGR3 IF NOT EQUAL
*
.Write the Info to the Work File
.
MPADDGR5 CALL MPADDG93
GOTO MPADDGR3
*
.Allow Multiple Specifications
.
MPADDGR6
COMPARE ONE,PLANFLG
IF EQUAL
DISPLAY *P2:VPOS,*RPTCHAR SPACE:20;
ELSE
DISPLAY *P30:VPOS,*RPTCHAR SPACE:20;
ENDIF
DISPLAY *HD,*EL,SPECMR;
CALL KREPLYN
CMATCH YES,REPLY
IF EQUAL
COMPARE ONE,PLANFLG
IF EQUAL
MOVE ZERO,MPCOUNT
GOTO MPADDA6
ELSE
GOTO MPADDB10
ENDIF
ENDIF
COMPARE TWO,PLANFLG
GOTO MPADDB95 IF EQUAL
MOVE ZERO,MPCOUNT
.
COMPARE ZERO,NWORK1
GOTO MPADDG10 IF EQUAL // No User's Selected
*
.Go to Confirmation and Scheduling
.
WEOF SCRATCHI,SEQ
REPOSIT SCRATCHI,ZERO
MOVE FOUR,MSGSW
MOVE ZERO,NWORKSV
MOVE THIRTEEN,VPOS
GOTO MPADDG12
*
.Broadcast the Meeting to All System Users
.
MPADDGR7 FILEPI 2;USRFILE
REPOSIT USRFILE,ZERO
READ USRFILE,SEQ;REPLY
*
.Read Through the User File
.
MPADDGR8 FILEPI 1;USRFILE
READTAB USRFILE,SEQ;USERID,USRNO1,USRNAME1
GOTO MPADDGR6 IF OVER
*
.Primary Group Records Only
.
MATCH BLANKS,USERID
GOTO MPADDGR8 IF EQUAL
*
.Include This User ?
.
COMPARE ONE,PLANFLG
IF EQUAL
DISPLAY *P2:VPOS,USRNAME1;
ELSE
DISPLAY *P30:VPOS,USRNAME1;
ENDIF
BRANCH INDEX TO MPADDGR9 // All Users Selected
DISPLAY *HD,*EL,INCUSR;
CALL KREPLYN
GOTO MPADDGR1 IF F5
CMATCH YES,REPLY
GOTO MPADDGR8 IF NOT EQUAL
*
.Write the Info to the Work File
.
MPADDGR9 CALL MPADDG93
GOTO MPADDGR8
*
.No User's Selected
.
MPADDG10 KEYIN *HD,*EL,*DV,NOUSRSL,REPLY;
*
.Abort the Meeting Broadcast
.
MPADDG11
CALL AG9005
MOVE ONE,PLANFLG
GOTO PLAN2
*
.Add This User to the List, Excluding Duplicates
.
MPADDG93 MOVE USRNO1,KEY6
READ SCRATCHI,KEY6;REPLY
GOTO MPADDG94 IF OVER
.
KEYIN *CLICK,*HD,*EL,*DV,ALREQ,REPLY;
RETURN
*
.Write the User Number to the Scratch File
.
MPADDG94 COMPARE ONE,PLANFLG
IF EQUAL
DISPLAY *P2:VPOS,USRNAME1,*H 24,PLREQ;
ENDIF 058
WRITE SCRATCHI,KEY6;USRNO1,USRNAME1
ADD ONE,NWORK1
ADD ONE,VPOS
COMPARE ONE,PLANFLG
IF EQUAL
COMPARE EIGHT,NWORK1
RETURN IF LESS
SUB ONE,VPOS
CALL SETTOP14
ELSE 058
ADD ONE,MPCOUNT
COMPARE SIX,NWORK1
RETURN IF LESS
SUB ONE,VPOS
CALL SETTOP16
ENDIF 058
CALL SETSW03
DISPLAY *HD,*R,*SETSWALL=1:24:1:80;
RETURN
.Get a User Name
.
MPADDG12 READ SCRATCHI,SEQ;USRNO1,USRNAME1
GOTO MPADDA15 IF OVER
.
ADD ONE,NWORKSV
ADD ONE,VPOS
COMPARE SEVEN,NWORKSV
GOTO MPDISP IF LESS
SUB ONE,VPOS
CALL SETTOP14
CALL SETSW03
DISPLAY *HD,*R,*SETSWALL=1:24:1:80;
MPDISP DISPLAY *P2:VPOS,USRNAME1,*H 24,PLCHK;
PACK DIM11 WITH USRNO1,YEARWORK,JDAYWORK
FILEPI 1;GRAPH
READ GRAPH,DIM11;DIM11,COUNTER,TABLE
GOTO MPADDG14 IF OVER // No Conflict
.See if the Appointment Conflicts
.
. Establish TPOS and NBLOCKS prior to calling CHECK
CALL CHECK
GOTO MPADDG14 IF EQUAL // No Problem
*
.User Can't Attend
.
CMATCH SPACE,SECFLAG // Confidential?
GOTO MPADDG13 IF EQUAL // No...
MOVE CONMSG,DATA
.
MPADDG13 DISPLAY *H 24,PLUNAV,PAROP,TFLAG,PARCL;
ADD ONE,COUNT
GOTO MPADDG12
*
.User Can Attend
.
MPADDG14 DISPLAY *H 24,PLAVAIL
GOTO MPADDG12
*
................................................................................
. .
. End of group broadcast for the meeting planner. .
. .
................................................................................
*
.Checking Complete - Display the Conflict Count
.
MPADDA15 DISPLAY *N,*H 24,COUNT,SCHCON2,*SETSWALL=1:24:1:80;
.
*
.Schedule Everyone ?
.
MPADDA16
DISPLAY *HD,*EL,SCHMEET;
CALL KREPLYN
CMATCH YES,REPLY
GOTO MPADDA25 IF NOT EQUAL
*
.Get the Meeting Information
.
MPADDA17 KEYIN *HD,*EL,*DV,PLINFO,*RPTCHAR "_":55,*HA -55,*IT,DATA;
DISPLAY *IN,*H 7,DATA;
GOTO MPADDA16 IF F5
.
CMATCH " ",DATA
GOTO MPADDA17 IF EQUAL
GOTO MPADDA17 IF EOS
*
.Get the Meeting Location
.
MPADDA18 KEYIN *HD,*EL,*DV,PLLOC2,*RPTCHAR "_":20,*HA -20,*IT,LOCATION;
DISPLAY *IN,*H 11,LOCATION;
GOTO MPADDA17 IF F5
.
CMATCH " ",LOCATION
GOTO MPADDA18 IF EQUAL
GOTO MPADDA18 IF EOS
*
.Rewind the Work File
.
TRAPCLR ESCAPE
TRAPCLR F27
REPOSIT SCRATCHI,ZERO
DISPLAY *HD,*EL,PLSCH;
*
.Get the Next Meeting Number
.
FILEPI 3;CNTFILE
READ CNTFILE,ZERO;MAXUSRNO,COUNTER
ADD ONE,COUNTER
WRITE CNTFILE,ZERO;MAXUSRNO,COUNTER
*
.Format the Data
.
MOVE HOURSAV,HOURWORK
MOVE MINSAV,MINWORK
CALL NICETIME
MOVE TIME,STIME
.
MOVE EHOURSAV,HOURWORK
MOVE EMINSAV,MINWORK
CALL NICETIME
MOVE TIME,ETIME
.
MOVE ZERO,FLAG1
*
.Add the Meeting to Each User
.
MPADDA19 READ SCRATCHI,SEQ;USRNO1,USRNAME1
GOTO MPADDA22 IF OVER
DISPLAY *H 50,*EL,USRNAME1;
*
.Automatically Confirm Your Own Meetings
.
MOVE CN,CONFIRM
COMPARE USRNO1,CURRUSER
GOTO MPADDA21 IF NOT EQUAL
.
MPADDA20 MOVE SCH,CONFIRM
MOVE ONE,FLAG1
*
.Check for Duplicates
.
MPADDA21 PACK KEY17 WITH USRNO1,YEARWORK,JDAYWORK,HOURSAV,MINSAV,COUNTER
FILEPI 1;PLAN
READ PLAN,KEY17;REPLY
GOTO MPADDA19 IF NOT OVER
*
.Add the Meeting
.
PACK DIM30 WITH CURRUSER,YEARWORK,JDAYWORK,HOURSAV:
MINSAV,COUNTER,USRNO1
FILEPI 2;PLAN
WRITE PLAN,KEY17;KEY17,CURRUSER,EHOURSAV,EMINSAV,DATE:
STIME,ETIME,CURRNAME,LOCATION,CONFIRM,DATA
INSERT PLAN1,DIM30
*
.Turn on the Attendee's Meeting Flag
.
COMPARE CURRUSER,USRNO1
GOTO MPADDA19 IF EQUAL // But Not Your Own...
.
PACK KEY9 WITH X02,USRNO1
FILEPI 3;USRFILE
READTAB USRFILE,KEY9;REPLY
CALL INTERR IF OVER
.
UPDATAB USRFILE;*91,ONE
GOTO MPADDA19
*
.Make Sure The Author is Included
.
MPADDA22 BRANCH FLAG1 TO MPADDA23
MOVE CURRUSER,USRNO1
GOTO MPADDA20
*
.Send a Message to Everyone ?
.
MPADDA23 MOVE YEARWORK,YEAR
MOVE JDAYWORK,JULDAY
.
MOVE THIRTY8,CMDTRAP
TRAP PLAN3 IF ESCAPE
TRAP PLAN3 IF F27
DISPLAY *HD,*EL,PLMSG;
CALL KREPLYN
CMATCH YES,REPLY
GOTO MPADDA24 IF NOT EQUAL
*
.Don't Send a Message to the Author
.
MOVE CURRUSER,KEY6
DELETE SCRATCHI,KEY6
*
.Exit to the Message Routine
.
REPOSIT SCRATCHI,ZERO
MOVE FORTY1,CMDTRAP
TRAP PLAN IF ESCAPE
TRAP PLAN IF F27
GOTO MPGOMSG // Go to MESSAGE routine
*
.Planning Mode 1 Complete
.
MPADDA24
You can’t perform that action at this time.
