Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathagenda.pls
More file actions
1321 lines (1317 loc) · 57.6 KB
/
agenda.pls
File metadata and controls
1321 lines (1317 loc) · 57.6 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
*---------------------------------------------------------------
.
. Program Name: A G E N D A
. Description: The Desk Management System
.
. Version 3.0.A
. Author: Bud Hutchison
.
. Revision History:
.
.
...............................................................................
. When Modifying AGENDA please check the following. This is not intended to
. be a complete list of things to check, but is a list of some basic items.
. Please feel free to add to this list.
...............................................................................
.
. ************* CAUTION ******************
.
. LINE 23 SHOULD BE RESERVED FOR:
. PAGE #
. ALARM notification
. MESSAGE notification
. PLAN notification
.
...............................................................................
*
. REVISION LOG:
*
...............................................................................
+
.
.Program Compilation Equates
.
.
. The following equates are designed for the Databus programmer interested
. in debugging or modifying the Agenda system. Each equate refers to a
. particular section of the program. The equates have three (3) meaningful
. values:
. 0 - The Normal Setting
.
. In this setting the section will compile and appear
. on any listings requested.
.
. 1 - No Compilation
.
. In this setting the section will be neither compiled or
. listed. Necessary labels will be supplied for compilation
. purposes, but all will simply return to the system menu.
.
. 2 - Compile, Without Listing
.
. In this setting, the section will compile, but the listing
. will be disabled. This will allow a complete program to be
. generated, but with a much smaller listing.
.
. Note, that a value of One (No Compilation) is not valid for UDA,LOGON,
. EXIT, or SUBS. The result would be a program which would not compile.
.
.
. For Normal use, all values should be Zero (0).
.
.
UDA EQU 0 // User Data Area
LOGON EQU 0 // Log on Module
CAL EQU 0 // Calendar Module
MSG EQU 0 // Telephone Messages Module
USER EQU 0 // User Status Section
DIRECTRY EQU 0 // Telephone Directory Module
NOTEPAD EQU 0 // Notepad Module
MEETINGS EQU 0 // Meeting Planner Module
ALARM EQU 0 // Alarm Module
EXIT EQU 0 // Log Off Module
SUBS EQU 0 // Common Subroutines Module
LISTOFF
.
IFEQ UDA,0
LISTON
XIF
*..............................................................................
.
.Common Program Data
.
*
. COMMON DATA AREA FOR 'AGENDA2'
.
UNTRAPER DIM *30 // Untrappable error field 022
ENTEROK INIT *"ok" // "ok" IF WE CHAINED IN FROM AGENDA *dsh
TIMESWCH FORM *"0" // 0=12HR FORMAT; 1=24HR FORMAT *dsh
DATESWCH FORM *"0" // 0=American; 1=European *dsh
MANAGESW FORM *"0" // 0=Unmanaged; 1=Managed Files *dsh
EXITFLAG FORM *"0" // Use an exit program? (0-No, 1-Yes) 022
EXITPROG DIM *26 // Name of possible exit program. 022
.
. This switch is set by the AGENDA4 program upon the user requesting to view
. messages or meetings. The switch will cause the program to enter the
. appropriate module, once the log-on sequence is complete.
.
AGENDASW FORM *1 // Entry Controller
. 0 - Normal Entry
. 1 - Proceed Directly to Messages
. 2 - Proceed Directly to Meeting Planner
.
. End of common data area
...............................................................................
.
PASSWORD INIT "AGENDA" // Security Password
. 1<4 = Meeting Deletion Password Known
. 1<3 = System Shutdown Password Known
. 1<2 = User Addition Password Known
. 1<1 = User Change Password Known
. 1<0 = User Deletion Password Known
. IF ANY DATANAMES ARE INSERTED PRIOR TO 'PASSWORD'
. AGENDAPASS WILL NEED TO BE MODIFIED TO HANDLE THIS CHANGE.
...............................................................................
.
. Misc Data Names
.
. Used in searches and must be maintained
.
DAY1 FORM 3
DAY2 FORM 3
DAY3 FORM 3
DAY4 FORM 3
DAY5 FORM 3
DAY6 FORM 3
DAY7 FORM 3
.
. End of search data
.
.Cursor Movement Values
.
UP EQU 070 // Cursor Up
DOWN EQU 062 // Cursor Down
RIGHT EQU 066 // Cursor Right
LEFT EQU 064 // Cursor Left
CMDKEY INIT "\" // Command Key
.
.Graphic Characters
.
ULC INIT "+" // Upper Left Corner
URC INIT "+" // Upper Right Corner
LLC INIT "+" // Lower Left Corner
LRC INIT "+" // Lower Right Corner
HE INIT "-" // Horizontal Edge
HB INIT "-" // Horizontal Bar
VE INIT "|" // Vertical Edge
VB INIT "|" // Vertical Bar
RA EQU ">" // Right Arrow
.
.Currently Logged On User's Information
.
CURRUSER FORM 6 // User Number
CURRNAME DIM 20 // User Name
CURRGRP DIM 5 // User Group
CURRSTAT DIM 3 // User Status
CURREXT DIM 5 // User Phone
AYEAR FORM 2 // Alarm Year
ADAY FORM 3 // Alarm Julian Day
AHOUR FORM 2 // Alarm Hour
AMIN FORM 2 // Alarm Minute
ASEC FORM 2 // Alarm Second
ADATE DIM 11 // Alarm Date
ATIME DIM 8 // Alarm Time
ALARMSG DIM 40 // Alarm Message
.
. The balance of the data names are in alphabetical order.
.
ADDRESS1 DIM 30 // Directory Print - 2nd Entry AddressAGENDA2 INIT "agenda2"
AKEY1 DIM 23 // User File Name Key
AKEY2 DIM 9 // User File Group Key
ALRMFLG FORM "0"
BLANKS INIT " " (30 SPACES)
BLANK20 INIT " " // 20 Blanks for clearing.
BN INIT " N" Used to replace blanks with N's
CA INIT "A"
CALRINF1 INIT "AGENDA " // Must stay 30 char long.
CAPREP INIT "AaBbCcDdEeFfGgHhIiJjKkLlMm":
"NnOoPpQqRrSsTtUuVvWwXxYyZz"
CD INIT "D"
CE INIT "E"
C$ INIT "$"
CI INIT "I"
CITYST1 DIM 30
CLICKSW FORM 1 // Clicking Enabled/Disabled Switch
CMDTRAP FORM 2 // Current ESCAPE Trap
CN INIT "N"
COLON INIT ":" // SEPARATES FILE EXTENSION:ENVIRONMENT
COMMA INIT ","
COUNTDWN FORM "0" *** JLS COUNTDOWN VARIABLE
COUNTST INIT "COUNT=" JLS
CS INIT "S"
CTWO INIT "2"
CURDAY FORM "0" // Column position of the current day.
CY INIT "Y"
DASH INIT " - "
DASHES INIT " - - - - - - - - - - - - - - - - - - - -"
DATE DIM 11 // Formatted Date Variable
DAY FORM 2 // Currently Selected Day
DAYFEB FORM "28" // Number of Days in Selected Year's February
DAYWORK FORM 2 // Gregorian Day Work Variable
DIM1 DIM 1
DIM11 DIM 11
DIM15 DIM 15
DIM17 DIM 17
DIM2 DIM 2
DIM20 DIM 20
DIM20A DIM 20 // Used to hold input name from user.
DIM20B DIM 20 // Used to hold username that is found.
DIM25 DIM 25
DIM26 DIM 26
DIM3 DIM 3
DIM30 DIM 30
DIM3A DIM 3
DIM40 DIM 40
DIM6 DIM 6
DIM7 DIM 7
DIM9 DIM 9
DTLCOUNT FORM 3 // Detail Record Counter
EHOURSAV FORM 2 // Ending Hour Save Area
EIGHT FORM "8"
EIGHTEEN FORM "18"
EIGHTY FORM "80"
ELEVEN FORM "11"
EMINSAV FORM 2 // Ending Minute Save Area
.EMPTY INIT "NNNNNNNNNNNNNNNNNNNNNNNN"
ENDDAY FORM 2 // Number of Days in the Selected Month
ENDHOUR2 FORM 2 // Ending Hour Save Area
ENDMIN2 FORM 2 // Ending Minute Save Area
EOFSW FORM 1 // End of File Encountered Indicator
EOSFLAG FORM 1 // End of String Indicator
ERRMSG DIM 75
F INIT "F"
F03 INIT "03F"
F1HIT FORM 1 // 1 ==> Redraw screen & force Highlighting
FIFTEEN FORM "15"
FIRSTTM FORM "0" // First time through - stop Welcome
FIVE FORM "5"
FIFTY FORM "50"
FIFTY2 FORM "52"
FIFTY5 FORM "55"
FLAG1 FORM 1 // Universal Flag Byte 1
FLAG2 FORM 1 // Universal Flag Byte 2
FLAG3 FORM 1 // Universal Flag Byte 3
FLAG4 FORM 1 // Universal Flag Byte 4
FLAG5 FORM "0"
FORM1 FORM 1
FORTY FORM "40"
FORTY1 FORM "41"
FORTY2 FORM "42"
FORTY3 FORM "43"
FORTY4 FORM "44"
FORTY5 FORM "45"
FORTY6 FORM "46"
FORTY7 FORM "47"
FORTY8 FORM "48"
FORTY9 FORM "49"
FOUR FORM "4"
FOURTEEN FORM "14"
FREQ FORM 2 // Appointment Frequency
FSTDAY FORM "0" // Column pos. of the 1st day of the month.
GRAPHPOS FORM "2" // Graph Starting Hour (See GRAPH Routine)
GRAPHSW FORM 1 // Graph Forcing Flag
GROUPFLG FORM 1 // Primary or Secondary Group Indicator
HILITE FORM "0" // "1" ==> Highlight Calendar
HLINE FORM 2 // HELP Function line counter
HOURSAV FORM 2 // Starting Hour Save Area
HOURWORK FORM 2 // Hour
HOURWRK1 FORM 2 // Hour Work Area
HPOS FORM 2 // Horizontal Position
HPOS1 FORM 2 // Horizontal Position
HPOSDAY FORM 2 // Horizontal Position of Selected Day
HPOSEND FORM 2 // Vertical Position of Last Day of the Month
INDEX FORM 2 // Numeric Work Variable
INQSW FORM 1 // Inquiry Active Flag
JDAYWORK FORM 3 // Julian Day Work Variable
JDAYWRK1 FORM 3 // Julian Day Work Variable
JDAYOLD FORM 3 // Old Julian Day to compare rollover
JULDAY FORM 3 // Currently Selected Julian Date
KEY DIM 23 // Key for Telephone Message File
KEY11 DIM 11 // Key for Appointment Graph File
KEY17 DIM 17 // Key for Appointment File
KEY17B DIM 17 // Dummy key for appointment file.
KEY18 DIM 18 // Key for Messages
KEY20 DIM 20 // Key for Notepad & Alarm File
KEY6 DIM 6 // Key for ???
KEY9 DIM 9 // Key for User File
KEYA DIM 60
KEYB DIM 35
KEYC DIM 20
KEYD DIM 20
KEYE DIM 20
KEYF DIM 20
KEYG DIM 20
KEYH DIM 20
KEYI DIM 20
KEYJ DIM 20
KEYK DIM 20
KEYL DIM 20
KEYM DIM 20
KEYN DIM 20
KEYO DIM 20
KEYP DIM 20
KEYPTR FORM 2 // Saved Keys Pointer
KEYQ DIM 20
KEYR DIM 20
KEYWORK DIM 20 // Scratch Key Area
KEYWORK2 DIM 20 // Scratch Key Area Two
L04 INIT "04L"
LASTDAY FORM 3 // Ending Day
LASTYR FORM 2 // Ending Year
LINE FORM 2 // Line Counter for Print Routines
LOOPFLG FORM "0" // Flag to prevent going through loop twice 016
LOGONSW FORM 1 // Logged On Switch
LOWA INIT "a"
LOWE INIT "e"
LOWP INIT "p"
MASKSW FORM 1 // Mask Display Switch
MBOT FORM "21"
MDESC DIM 20
MEETHOUR FORM 2 // Meeting Hour
MEETMIN FORM 2 // Meeting Minute
MINSAV FORM 2 // Starting Minute Save Area
MINWORK FORM 2 // Minute
MINWRK1 FORM 2 // Minute Work Area
MLEFT FORM "02"
MON FORM 2 // Currently Selected Month
MONSV FORM 2 // Var to save month on entry
MONTABLE INIT "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN" // Month Table
MONTH DIM 3
MONWORK FORM 2 // Gregorian Month Work Variable
MPCOUNT FORM 3 // Number of Attendees requested in PLAN
MRIGHT FORM "79"
MSGSW FORM 1 // Message Switch
. 0-
. 1-
. 2-
. 3-
. 4-
. 5-Got to message from plan
MTOP FORM "03"
NEWUSRSW FORM "1" // New User Switch
NINE FORM "9"
NINE9 FORM "999999999"
NINETEEN FORM "19"
YEARPREFIX FORM "20"
NINTY9 FORM "99"
NINTY99 FORM "999"
NOMORE FORM 1 // No Succeeding Records Flag
NOPREV FORM 1 // No Precceeding Records Flag
NOTE1 DIM 30 // Directory Print - 2nd Entry Note
NUMWKS FORM "0" // Number of weeks to advance day.
NUMDAYS FORM "00" // Number of days in month.
NWORK1 FORM 5
NWORKSV FORM 5
NWORK2 FORM 5
NWORK2A FORM 2
NWORK2B FORM 2
NWORK3 FORM 5
ONE FORM "1"
OPENFLAG INIT 000 // File Open Flag
. 1<6 = Appointment Files Open
. 1<5 = Message File Open
. 1<4 = Directory File Open
. 1<3 = Notepad Files Open
. 1<2 = Planning Files Open
. 1<1 = Help File Open
PAGE FORM 3 // Page Counter for Print Routines
PAROP INIT " ("
PARCL INIT ")"
PERIOD INIT "."
PHONE1 DIM 20 // Directory Print - 2nd Entry Phone Number
PLANFLG FORM "1"
PLANFLAG FORM "0" // Flag to check if entering from Plan.
PRTSW FORM "0"
PRTFLAG FORM "0" // Check if we have a Alternate PRT defined
PRTNAME DIM 26 // Name of alternate system printer
PRINTREP INIT " XN ",031,"|",06,"|"
PYEARLEN FORM 3 // Prior Year's Length in Days
REPLY DIM 1 // Response Variable
REPLYH DIM 1 // Response Variable
REQFLAG FORM 1 // Entry Required Flag
ROFLAG FORM "1" // Flag to detect if Day option is chosen.
RODAY FORM 3 // Julian day for reoccuring option.
RULE1 INIT "12a..1...2...3...4...5...6...7...8...9..10..11..12p"
RULE2 INIT " 7...8...9..10..11..12p..1...2...3...4...5...6...7 "
RULE3 INIT "12p..1...2...3...4...5...6...7...8...9..10..11..12a"
SAMEDAY FORM 1 // Flag Passed Between CHECKDT & CHECKTM
SAVEDAY FORM 3 // Place to save JULDAY 25N+
SAVEYR FORM 2 // Place to save JULDAY 25N+
SCNDAY FORM "0" // Column Pos. for second longest column.
SDAYSAV FORM 2 // "
SEQ FORM "-1" // Sequential Access Variable
SEVEN FORM "7"
SEVNTEEN FORM "17"
SEVENTY7 FORM "77"
SEVENTY9 FORM "79"
SIX FORM "6"
SIX0 FORM "000000"
SIXTEEN FORM "16"
SIXTY FORM "60"
SLASH INIT "/" // SEPARATES FILE NAME/EXTENSION
SMONSAV FORM 2 // PRINT Routine 1st day of current week
SPACE INIT " "
SPACE2 INIT " "
SPACZERO INIT " 0"
SPLFLAG FORM 1 // Printed Output is Being Spooled
SPLNAME INIT "123456789012.1234:12345678" // Spool File Name
STAR INIT "*"
STARTDAY FORM 3 // Starting Day
STARTYR FORM 2 // Starting Year
SWITCH FORM 1 // Universal Switch Byte
SWITCHI FORM "0" // 0/1 => SCRATCHI IS CLOSED/OPEN
SYRSAV FORM 2 // "
SYSOPEN FORM "0" // "1" IF SYSTEM FILES ARE OPEN
TDDATE FORM "0"
TEN FORM "10"
TERMTYPE FORM "1" // Terminal Type Indicator
. 0 - Advanced Video Features Available
. 1 - Advanced Video Features Unavailable
THIRTEEN FORM "13"
THIRTY FORM "30"
THIRTY1 FORM "31"
THIRTY2 FORM "32"
THIRTY3 FORM "33"
THIRTY4 FORM "34"
THIRTY5 FORM "35"
THIRTY6 FORM "36"
THIRTY7 FORM "37"
THIRTY8 FORM "38"
THIRTY9 FORM "39"
THREE FORM "3"
THREE65 FORM "365"
THIRTY38 FORM "338"
THRDAY FORM "0" // Column pos for third longest column 016
TIME DIM 8 // Formatted Time (hh:mm ?m)
TIMEDIF FORM "00"
TMFLAG FORM "0" // Flag for transfer from MSG to DIR. 015
TOCOUNT FORM 1 // Timeout Counter
TWELVE FORM "12"
TWENTY FORM "20"
TWENTY1 FORM "21"
TWENTY2 FORM "22"
TWENTY3 FORM "23"
TWENTY4 FORM "24"
TWENTY5 FORM "25"
TWENTY6 FORM "26"
TWENTY7 FORM "27"
TWENTY8 FORM "28"
TWENTY9 FORM "29"
TWO FORM "2"
UGROUP1 DIM 5 // User's Group Work Variable
USRNAME1 DIM 20 // User Name Work Variable
USRNO1 FORM 6 // User Number Work Variable
USRNO2 FORM 6 // User Number Work Variable
USRNOSV FORM 6
VPOS FORM 2 // Vertical Position
VPOSDAY FORM 2 // Vertical Position of Selected Day
VPOSEND FORM 2 // Vertical Position of Last Day of the Month
WRKJUL FORM 3 // Starting day of "current" week
WRKJULX FORM 3 // Starting day of "current" week
WRKYR FORM 2 // Starting year of "current" week
WRKYRX FORM 2 // Starting year of "current" week
X01 INIT "01X"
X02 INIT "02X"
YEAR FORM 2 // Currently Selected Year
YEAREND FORM 2 // Graph Ending Year
YEARLEN FORM 3 // Selected Year's Length in Days
YEARSTR FORM 2 // Graph Starting Year
YEARWORK FORM 2 // Year Work Variable
YEARWRK1 FORM 2 // Year Work Variable
.YEARWRK2 FORM 2 // Year Work Variable
ZERO5SP INIT "0 "
ZERO FORM "0"
ZIPCODE1 DIM 10 // Directory Print - 2nd Entry Zipcode
.
. End Misc Data Names
.
. Include the Tranlated data file.
.
INCLUDE agenda_tran.inc
.
. Include the file specifications.
.
INCLUDE agenda_file.inc
*..............................................................................
.
LISTOFF
IFEQ LOGON,0
LISTON
XIF
+.............................................................................
.
. L O G - O N S E Q U E N C E
..............................................................................
DISPLAY *SETSWALL=1:24:1:80
MOVE "ok" TO ENTEROK
CALL PROFILE // GET TIME FORMAT FROM SYSTEM PROFILE
*
.Check for a Shutdown System
.
TRAP START1 IF IO
OPEN CNTFILE,AGCTRL
OPEN CONTROL,AGDCONT,SHARE
.
FILEPI 1;CONTROL
READTAB CONTROL,ZERO;REPLY
.
CMATCH SPACE,REPLY
GOTO START1A IF EQUAL
*
.System is Shutdown
.
START
TRAP CFAIL IF CFAIL
CHAIN AGENDA2
COMPARE ZERO,EXITFLAG // Use the exit program?
IF EQUAL
SHUTDOWN
ELSE
CHAIN EXITPROG // Chain to the exit program.
ENDIF
.
CFAIL
KEYIN *B,*HD,*EL,*DV,ERRAG2,*T10,REPLY;
COMPARE ZERO,EXITFLAG // Use the exit program?
IF EQUAL
SHUTDOWN
ELSE
CHAIN EXITPROG // Chain to the exit program.
ENDIF
*
.Open the System Files
.
START1
NORETURN
* SET TERMTYPE = 0 IF HIGHLIGHTING OK
START1A
MOVE ZERO,TERMTYPE
VIDSKIP
BRANCH SYSOPEN OF LOGON
MOVE ONE,SYSOPEN
TRAP TRAPIO GIVING ERRMSG IF IO // Can't open a file
.
ST1M
OPEN USRFILE,FSU,SHARE
OPEN NOTEFILE,FSN,SHARE
OPEN MESSAGE,FSM,SHARE
TRAPCLR IO
*
.Display the Signon
.
LOGON
NORETURN
TRAPCLR IO // Clear general IO trap
TRAP FASTEXIT IF F3
CALL CLOCKDT
.
DISPLAY *CURSOFF,*HOFF,*ES,*N:
*N,*RPTCHAR CD:15:
*N,*RPTCHAR CD:6,*H 10,*RPTCHAR CD:10:
*N,*RPTCHAR CD:6,*H 13,*RPTCHAR CD:10:
*N,*RPTCHAR CD:6,*H 16,*RPTCHAR CD:8:
*N,*RPTCHAR CD:6,*H 19,*RPTCHAR CD:5:
*N,*RPTCHAR CD:6,*H 22,*RPTCHAR CD:3:
*N,*RPTCHAR CD:6,*H 24,CD:
*N,*RPTCHAR CD:6,*H 22,*RPTCHAR CD:3:
*N,*RPTCHAR CD:6,*H 19,*RPTCHAR CD:5:
*N,*RPTCHAR CD:6,*H 16,*RPTCHAR CD:8:
*N,*RPTCHAR CD:6,*H 13,*RPTCHAR CD:10:
*N,*RPTCHAR CD:6,*H 10,*RPTCHAR CD:10:
*N,*RPTCHAR CD:15:
*V 5,*H 43,ULC,*RPTCHAR HE:19,URC:
*N,*H 43,VE,DATEST,*H 51,DATE,*H 63,VE:
*N,*H 43,VE,*H 63,VE:
*N,*H 43,VE,TIMEST,*H 51,TIME,*H 63,VE:
*N,*H 43,LLC,*RPTCHAR HE:19,LRC
BRANCH FIRSTTM TO LOGON1
MOVE ONE TO FIRSTTM
DISPLAY *P31:3,CALLER1,SPACE,AGNINM,SPACE,VERSION;
.
LOGON1
*
.Reset the function pointers to 1, to default to the 1st function in ring menus
.
MOVE ONE,FUNC // Initialize Calendar menu.
MOVE ONE,PFUNC // Initialize Cleanup menu.
MOVE ONE,MFUNC // Initialize Message menu.
MOVE ONE,MRFUNC // Initialize Review menu.
MOVE ONE,CFUNC // Initialize User status menu.
MOVE ONE,TDFUNC // Initialize Directory menu.
MOVE ONE,NFUNC // Initialize Notepad menu.
MOVE ONE,AFUNC // Initialize Alarm menu.
MOVE ONE,BFUNC // Initialize Planner menu.
MOVE ONE,HFUNC // Initialize Help menu.
BRANCH LOGONSW TO LOGON15
.
*
.Logging on Another User ?
.
COMPARE EIGHT,SFUNC
GOTO LOGON2 IF NOT EQUAL
BRANCH NEWUSRSW TO LOGON11
*
.Get the User ID From the ID File, If Present
.
LOGON2
TRAP LOGON11 IF IO
OPEN SCRATCH,AGENDAID,READ
TRAPCLR IO
*
.Read Through the ID File
.
MOVE ZERO,DTLCOUNT
LOGON3
READ SCRATCH,SEQ;USERID,DIM26
GOTO LOGON4 IF OVER
.
CMATCH SPACE,USERID
GOTO LOGON3 IF EQUAL
GOTO LOGON3 IF EOS
MATCH HILITEST,USERID
GOTO LOGON3B IF NOT EQUAL // Check for printer.
MOVE ONE,HILITE // Remember we got highlighting req.
GOTO LOGON3
*
.Check for System printer.
.
LOGON3B
MATCH COUNTST,USERID
IF EQUAL
MOVELPTR USERID TO SEVEN
RESET USERID TO SEVEN
MOVE USERID,COUNTDWN
RESET USERID
GOTO LOGON3
ENDIF
MATCH SYSTPRT,USERID // Do we have a system prt?
GOTO LOGON3A IF NOT EQUAL // No, continue reading.
MOVE ONE,PRTFLAG // Yes, move one to flag.
MOVE DIM26,PRTNAME // Save off the name.
GOTO LOGON3 // Continue reading.
*
.Save the User Identification Number
.
LOGON3A
ADD ONE,DTLCOUNT
STORE USERID BY DTLCOUNT INTO KEYA,KEYB,KEYC,KEYD,KEYE:
KEYF,KEYG,KEYH,KEYI,KEYJ // Five more USERID's
COMPARE TEN,DTLCOUNT
GOTO LOGON3 IF NOT EQUAL
*
.We Have Either All ID's or 10 of 'Em
.
LOGON4
CLOSE SCRATCH
TRAPCLR IO
.
BRANCH TERMTYPE OF LOGON4A // CAN'T DO HIGHLIGHTING
BRANCH HILITE OF LOGON4A // ONE MEANS DO HILITE IF POSSIBLE
MOVE ONE,TERMTYPE // IF WE'RE HERE, WE DON'T WANT IT
.
LOGON4A
MOVE ONE,KEYPTR
COMPARE ONE,DTLCOUNT // Null User ID File
GOTO LOGON11 IF LESS
GOTO LOGON9 IF EQUAL // Only One...
*
.Show 'Em the List of User's
.
MOVE ZERO,NEWUSRSW
MOVE ONE,KEYPTR
DISPLAY *V 11;
*
.Get a User's Key
.
LOGON5
CALL LOAD07
PACK KEYWORK WITH X01,USERID
*
.Look Up the User's Name
.
FILEPI 1;USRFILE
READTAB USRFILE,KEYWORK;*17,USRNAME
GOTO LOGON6 IF NOT OVER
.
MOVE INVID TO USRNAME
*
.Show 'Em the Name
.
LOGON6
COMPARE KEYPTR,FIVE
IF LESS // Show all 10 User Names.
ADD FIVE,KEYPTR
DISPLAY *P 57:KEYPTR,USRNAME // Display 2nd column.
SUB FIVE,KEYPTR
ELSE
DISPLAY *H 33,USRNAME // Display 1st column.
ENDIF
ADD ONE,KEYPTR
COMPARE KEYPTR,DTLCOUNT
GOTO LOGON5 IF NOT LESS
*
.All the User's are on the Screen; Allow Selection
.
CALL BANNER01
DISPLAY *P60:21,ENTUSR,*HOFF:
*HD,*EL,UPDWNCMD;
MOVE ONE,KEYPTR
.
LOGON7
MOVE KEYPTR,VPOS
TRAP LOGON11 IF F5
COMPARE KEYPTR,FIVE // Allow cursor to move to all
IF LESS // User id's.
ADD FIVE,VPOS // Move to 2nd Column.
KEYIN *P55:VPOS,RA,*H 55,*T60,*+,*RV,REPLY:
*HA -1," ";
SUB FIVE,VPOS
ELSE
ADD TEN,VPOS // Move to 1st column.
KEYIN *P31:VPOS,RA,*H 31,*T60,*+,*RV,REPLY:
*HA -1," ";
ENDIF
IF UP
CMOVE UP,REPLY
DISPLAY *HA -1,SPACE,SPACE;
ENDIF
IF DOWN
CMOVE DOWN,REPLY
DISPLAY *HA -1,SPACE,SPACE;
ENDIF
GOTO LOGON10 IF LESS
TRAPCLR F5
GOTO LOGON9 IF EOS
.
CMATCH 070,REPLY
GOTO LOGON8 IF EQUAL
CMATCH SPACE,REPLY
GOTO LOGON7D IF EQUAL
CMATCH 062,REPLY
GOTO LOGON7 IF NOT EQUAL
*
.Move Down a User
.
LOGON7D
ADD ONE,KEYPTR
COMPARE KEYPTR,DTLCOUNT
GOTO LOGON7 IF NOT LESS
MOVE ONE,KEYPTR
GOTO LOGON7
*
.Move Up a User
.
LOGON8
SUB ONE,KEYPTR
GOTO LOGON7 IF NOT ZERO
MOVE DTLCOUNT,KEYPTR
GOTO LOGON7
*
.We Have the Selected User
.
LOGON9
CALL LOAD07
PACK KEYWORK WITH X01,USERID
.
FILEPI 1;USRFILE
READ USRFILE,KEYWORK;USERID,CURRUSER,CURRNAME,CURREXT,LOFLAG:
CURRGRP,STATDATE,STATTIME,CURRSTAT,STATMSG,FMTIME,MEETFLG
CALL BADID IF OVER
GOTO LOGON14
.
BADID
KEYIN *B,*HD,*EL,*DV,INVID2,*DV,USERID,". ",REPLY;
GOTO LOGON11
*
.A Timeout Occurred
.
LOGON10
CLEAR FUNCDESC
MOVE TWO,FLAG1
GOTO LOGON7
*
.Allow Entry of the ID Number
.
LOGON11
NORETURN
CALL BANNER // Display banner line
MOVE TEN TO MTOP
MOVE SIXTEEN TO MBOT
MOVE THIRTY5 TO MLEFT
MOVE EIGHTY TO MRIGHT
CALL SETSW01
DISPLAY *HD,*EL,*P1:17,*EL,PLUSR;
BRANCH TERMTYPE OF LOGON12 // CAN'T DO HIGHLIGHTING
BRANCH HILITE OF LOGON12 // ONE MEANS DO HILITE IF POSSIBLE
MOVE ONE,TERMTYPE // IF WE'RE HERE, WE DON'T WANT IT
.
LOGON12
KEYIN *P32:17,*T60,*RV,*ESON,USERID,*ESOFF;
GOTO LOGON13 IF LESS
IF EOS
COMPARE ZERO,EXITFLAG // Use the exit program?
IF EQUAL // No, just stop.
STOP
ELSE // Yes,
CHAIN EXITPROG // Chain to the exit program.
ENDIF // End of If.
ENDIF
*
.See If We Know Who He Is
.
PACK KEYWORK WITH X01,USERID
.
FILEPI 1;USRFILE
READ USRFILE,KEYWORK;USERID,CURRUSER,CURRNAME,CURREXT,LOFLAG:
CURRGRP,STATDATE,STATTIME,CURRSTAT,STATMSG,FMTIME,MEETFLG
GOTO LOGON14 IF NOT OVER
*
.Invalid User ID
.
DISPLAY *B,*H 50,INVID,*W;
GOTO LOGON11
*
.A Timeout Occurred
.
LOGON13
CLEAR FUNCDESC
MOVE TWO,FLAG1
COMPARE ONE,FLAG2
GOTO LOGON12 IF NOT EQUAL
DISPLAY *HD,*EL;
GOTO LOGON12
*
.Log the Known User Onto the System
.
LOGON14
FILEPI 1;USRFILE
UPDATAB USRFILE;*42,STAR
*
.Display the Current User
.
LOGON15
CALL BANNER
DISPLAY *P1:17,*EL:
*HON,*P35:21,CURRNAME,*HOFF;
TRAP FASTEXIT IF F3
*
.Ensure that the First Message Time is Set Correctly
.
MOVE CURRUSER,DIM6
CALL FMTIME
*
.If the User is Logged Out or Not Available, Allow Change
.
BRANCH LOGONSW TO LOGON17
CMATCH CI,CURRSTAT
GOTO LOGON16 IF NOT EQUAL
*
.If the User is Logged In But the Date is Different, Allow Change
.
CALL CLOCKDT
MOVE DATE,KEY6 // Truncate for good MATCH
MATCH KEY6,DATE
GOTO LOGON17 IF EQUAL
*
.See if He Wants to Refresh the Status
.
LOGON16
KEYIN *CLICK,*HD,*EL,*DV,CHSTAT:
*HA -1,*T60,REPLY,*HD,*EL;
CMATCH NO,REPLY
GOTO LOGON17 IF EQUAL
*
.Update the Status
.
.LO17
CALL CLOCKDT
MOVE IN,CURRSTAT
MOVE DATE,STATDATE
MOVE TIME,STATTIME
CLEAR STATMSG
.
FILEPI 1;USRFILE
UPDATAB USRFILE;*48,STATDATE,STATTIME,CURRSTAT,STATMSG
*
.Set Up the User's Alarm Information
.
LOGON17
CALL FATIME
*
.Check for Special Entry Points
.
COMPARE ZERO,AGENDASW
GOTO LOGON18 IF EQUAL
.
MOVE CURRUSER,USRNO
MOVE CURRNAME,USRNAME
.
COMPARE TWO,AGENDASW
GOTO PLAN IF EQUAL
.
MOVE ONE,MSGSW
GOTO MESSAGE
*
.See if Any New Messages
.
LOGON18
MOVE CURRUSER,USRNO
MOVE CURRNAME,USRNAME
MOVE ONE,LOGONSW
CLEAR FUNCDESC
MOVE ZERO,FLAG1
+..............................................................................
.
. S Y S T E M M E N U
...............................................................................
.
.
.Restore the Original User
.
TRAP FASTEXIT IF F3
TRAP QUITKEY IF F27
TRAP QUITKEY IF ESCAPE
MOVE ZERO,INQSW
MOVE CURRUSER,USRNO
MOVE CURRNAME,USRNAME
*
.Reset the Selected Date
.
CALL CLOCKDT
MOVE JDAYWORK,JULDAY
MOVE JDAYWORK,JDAYOLD // For rollover comparison
MOVE YEARWORK,YEAR
MOVE MONWORK,MON
MOVE DAYWORK,DAY
*
.Draw the Screen
.
CALL SHOWAPTS // Display next appointment.
DISPLAY *P1:21,*HON,*EL,VISAGNI,VERSION:
*H 35,CURRNAME,PAROP,CURRSTAT,PARCL:
*H HELPPSNI,HELPSTNI,*HOFF,*HD,*EL,LRCMD; // CURRSTAT added to display band.
.
.See If He Has Any Alarms or Meetings
.
CLEAR FUNCDESC
MOVE ZERO,FLAG1
CALL CHKALRM
DISPLAY *HD,*EL,LRCMD; // redisplay line 24 message
*
.Display the Available Functions
.
MENU1
MOVE ZERO,FLAG2
DISPLAY *P2:22,SFUNC1,SFUNC2,SFUNC3:
SFUNC4,SFUNC5,SFUNC6:
SFUNC7,SFUNC8,SFUNC9;
*
.Position to the Correct Function
.
MENU2
LOAD FUNCDESC BY SFUNC FROM SFUNC1,SFUNC2:
SFUNC3,SFUNC4,SFUNC5,SFUNC6,SFUNC7,SFUNC8,SFUNC9
.
MOVE SFUNC,NWORK2
SUB ONE,NWORK2
MULT TWO,NWORK2
ADD ONE,NWORK2
RESET SFPOS,NWORK2
MOVE SFPOS,DIM2
MOVE DIM2,HPOS
*
.Allow Entry of a Command
.
DISPLAY *PHPOS:22,*HON,*+,FUNCDESC,*HOFF;
KEYIN *H HPOS,*HA -1,*T60,*+,*RV,REPLY;
IF LEFT
CMOVE LEFT,REPLY
DISPLAY SPACE,*+,FUNCDESC;
GOTO MENU21
ENDIF 032
IF RIGHT
CMOVE RIGHT,REPLY
DISPLAY SPACE,*+,FUNCDESC;
GOTO MENU21
ENDIF 032
GOTO MENU1 IF F26
GOTO MENU8 IF F1
GOTO MENU8 IF F2
GOTO MENU8 IF F4
GOTO MENU7 IF F5
GOTO MENU7 IF F9
GOTO MENU6 IF LESS
GOTO MENU5 IF EOS
DISPLAY *HA -1,SPACE,*+,FUNCDESC;
*
.Check for a Direction Command
You can’t perform that action at this time.
