Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/rsx11s/drgcl.list
There are no other files named drgcl.list in the archive.
DRGCL MACRO M1110 22-AUG-79 06:59 PAGE 3
1 .TITLE DRGCL
2 .IDENT /03/
3
4 ;
5 ; COPYRIGHT (C) 1974, 1976
6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
7 ;
8 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
9 ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
10 ;
11 ; VERSION 03
12 ;
13 ; D. N. CUTLER 20-SEP-73
14 ;
15 ; PREVIOUSLY MODIFIED BY:
16 ;
17 ; D. N. CUTLER
18 ;
19 ; MODIFIED BY:
20 ;
21 ;+
22 ; **-$DRGCL-GET MCR COMMAND LINE
23 ;
24 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO TRANSFER A 1 TO 80. BYTE COMMAND LINE
25 ; TO THE LAST MCR FUNCTION TASK REQUESTED BY THE MCR DISPATCHER.
26 ;
27 ; DPB FORMAT:
28 ;
29 ; WD. 00 -- DIC(127.),DPB SIZE(41.).
30 ; WD. 01 -- FIRST WORD OF 80. BYTE BUFFER.
31 ; .
32 ; .
33 ; .
34 ; WD. 50 -- LAST WORD OF 80. BYTE BUFFER.
35 ;
36 ; INPUTS:
37 ;
38 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
39 ; R3=ADDRESS OF THE 80. BYTE BUFFER IN THE DPB.
40 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
41 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
42 ;
43 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
44 ;
45 ; C=0 IF DIRECTIVE IS SUCCESSFULLY COMPLETED.
46 ; DIRECTIVE STATUS EQUAL TO THE LENGTH OF THE COMMAND LINE
47 ; IN BYTES IS RETURNED.
48 ; C=1 IF DIRECTIVE IS REJECTED.
49 ; DIRECTIVE STATUS OF 'D.RS80' IS RETURNED IF THE ISSUING
50 ; TASK IS NOT THE LAST TASK THAT WAS REQUESTED
51 ; BY THE MCR DISPATCHER.
52 ;-
53
54
55 .IF DF M$$CRX
56
57 .ENABL LSB
DRGCL MACRO M1110 22-AUG-79 06:59 PAGE 3-1
58 $DRGCL::CALL 30$ ;SEARCH FOR TASK COMMAND BUFFER
59 BCC 10$ ;IF CC ONE FOUND
60 DRSTS D.RS80 ;SET DIRECTIVE STATUS
61 10$: CMP (R0)+,(R0)+ ;POINT TO COMMAND TEXT
62 20$: INC 2(SP) ;INCREMENT BYTE COUNT
63 MOVB (R0),(R3) ;INSERT BYTE INTO USER BUFFER
64 CMPB #33,(R0)+ ;ALTMODE TERMINATOR?
65 BEQ 25$ ;IF EQ YES
66 CMPB #15,(R3)+ ;CARRIAGE RETURN?
67 BNE 20$ ;IF NE NO
68 25$: SUB #2,2(SP) ;ADJUST TO PROPER BYTE COUNT
69
70 ;+
71 ; **-$RLMCB-RELEASE MCR COMMAND BUFFER
72 ;
73 ; INPUTS:
74 ;
75 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
76 ;
77 ; OUTPUTS:
78 ;
79 ; IF THE COMMAND LINE CURRENTLY IN THE MCR COMMAND BUFFER IS
80 ; FOR THE CURRENT TASK, THEN THE BUFFER IS RELEASED AND $MCRTN
81 ; IS CLEARED.
82 ;-
83
84 $RLMCB::CALL 30$ ;SEARCH FOR TASK COMMAND BUFFER
85 BCS 50$ ;IF CS NONE FOUND
86 MOV (R0),(R1) ;REMOVE BUFFER FROM LIST
87 MOV #84.,R1 ;SET LENGTH OF BUFFER TO RELEASE
88 CALLR $DEACB ;DEALLOCATE BUFFER
89
90 ;
91 ; SUBROUTINE TO SEARCH FOR COMMAND BUFFER FOR CURRENT TASK
92 ;
93
94 30$: MOV #$MCRCB,R0 ;POINT TO COMMAND BUFFER LISTHEAD
95 40$: MOV R0,R1 ;SAVE ADDRESS OF PREVIOUS BUFFER
96 MOV (R1),R0 ;GET ADDRESS OF NEXT BUFFER
97 SEC ;ASSUME END OF LIST
98 BEQ 50$ ;IF EQ YES
99 CMP R5,2(R0) ;TCB ADDRESS MATCH?
100 BNE 40$ ;IF NE NO
101 50$: RETURN ;
102 .DSABL LSB
103
104 .ENDC
105
106
107 000001 .END
DRGCL MACRO M1110 22-AUG-79 06:59 PAGE 3-2
SYMBOL TABLE
A$$CHK= 000000 I$$RDN= 000000 L$$ASG= 000000 N$$LDV= 000001 R$$11M= 000000
A$$CPS= 000000 K$$CNT= 177546 L$$DRV= 000000 P$$RTY= 000000 R$$11S= 000000
A$$TRP= 000000 K$$CSR= 177546 M$$CRB= 000124 P$$TPT= 000000 S$$YSZ= 001740
C$$ORE= 002000 K$$IEN= 000115 M$$MGE= 000000 R$$DER= 000000 V$$CTR= 001200
G$$TPP= 000000 K$$LDC= 000001 M$$NET= 000000 R$$EXV= 000000 V$$RSN= 000031
G$$TTK= 000000 K$$TPS= 000074 M$$NT2= 000000 R$$SND= 000000 X$$DBT= 000000
H$$RTZ= 000074
. ABS. 000000 000
000000 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 1140 WORDS ( 5 PAGES)
DYNAMIC MEMORY: 2980 WORDS ( 11 PAGES)
ELAPSED TIME: 00:00:08
[11,24]DRGCL,SY0:[11,34]DRGCL/-SP=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,DRGCL