216B SetObjectEntry¶
Stub MON 216B (142 decimal) · Mnemonic DWOBJ · Group: File System Operations (manual section 2.9)
Available from: All programs (manual compatibility box)
Emulation source: src/handlers/mon_216B_SetObjectEntry.c
Description¶
Changes the description of a file. An object entry describes each file. It contains the file name, the access rights, the date it was last opened for read and write, the size, and more. You may use GetObjectEntry to read an object entry, change parts of it, then write it back with SetObjectEntry.
- You specify the directory index, the user index, and the object index.
- There is one object entry for each version of a file.
- Only user SYSTEM can change the object entry of a file without read or write access to the file.
- On the ND-100 you may access files on remote computer systems if the computers are connected through a COSMOS network.
Parameters¶
| Name | Type | Direction | Description |
|---|---|---|---|
Buffer |
INTEGER2[32] | In | The 64 byte object entry. See appendix C. |
DirIndex |
INTEGER2 | In | The directory index. See GetAllFileIndexes. |
UserIndex |
INTEGER2 | In | The user index. See GetAllFileIndexes. |
ObjectIndex |
INTEGER2 | In | The object index. See GetAllFileIndexes. |
SystemId |
STRING | In | Remote system identification if bit 7 in DirIndex is set. |
Direction: In = the program supplies the value, Out = the call returns it, In/Out = both.
See also¶
GetObjectEntry, GetAllFileIndexes, and @CHANGE-OBJECT-ENTRY
Compatibility¶
| Machines | Users | Programs |
|---|---|---|
| ND-100 and ND-500 | All users | All programs |
The manual's compatibility box for this call, word for word.
Yes/no fields from the YAML extraction (not in the manual's words):
| ND-100 | ND-500 | User programs | RT programs | System programs |
|---|---|---|---|---|
| Yes | Yes | Yes | Yes | No |
Examples¶
From the manual (OCR text, not corrected).
BYTES : Buff(0:63)
INTEGER : DirIndex, UserIndex, ObjIndex, RemoteFlag
BYTES : RemoteSystem(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetObjectEntry', Buff(0), DirIndex, UserIndex, ObjIndex,&
RemoteFlag, RemoteSystem)
INTEGER Buff(32)
INTEGER DirIndex, UserIndex, ObjIndex, RemoteFlag
CHARACTER RemoteSystem*64
...
Monitor_Call('SetObjectEntry', Buff(1), DirIndex, UserIndex, ObjIndex,
RemoteFlag, RemoteSystem(1:64))
IF (ErrCode .NE. 0) THEN ...
Buff : ARRAY [0..1] OF RECORD...END;
DirIndex, UserIndex, ObjectIndex : INTEGER2;
...
SetObjectEntry(Buff, DirIndex, UserIndex, ObjectIndex);
IF ErrCode <> 0 THEN ...
01 Buff.
02 array COMP OCCURS 32 TIMES.
01 DirIndex COMP.
01 UserIndex COMP.
01 ObjectIndex COMP.
01 RemoteFlag COMP.
01 RemoteSystem PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "SetObjectEntry" USING Buff, DirIndex, UserIndex, ObjIndex,
RemoteFlag, RemoteSystem.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Buff : H BLOCK 32
DirIndex : W BLOCK 1 %SysId used if bit 7 is set to 1.
UserIndex : W BLOCK 1
ObjIndex : W BLOCK 1
SysId : STRING 20B %Dummy if not remote system
ErrCode : W BLOCK 1
SetObjectEntry : EQU 3789 + 216B
...
CALLG SetObjectEntry, 5, Buff, DirIndex, UserIndex, ObjIndex, SysId
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
LDA (REMID) %Remote identification in register D.
COPY SA DD %Used if bit 15 in register X is set.
LDA (BUFF) %Address of buffer containing source object entry.
LDT INDEX %Left byte: Dir. index, right byte: User index.
LDX OBJIX %Object index.
MON 216 %Monitor call SetObjectEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
BUFF, 0 %
*+40/ %Make a buffer of 32 words.
INDEX, ... %Set bit 15 if remote file.
OBJIX, ...
REMID, 0 %Remote system identification string.
*+32/ %Space for the string.
ndmonlib implementation¶
Stub Registered MON_STATUS_NOT_IMPLEMENTED: the handler is a stub. mon_dispatch() in src/core/mon_dispatch.c reports the call as unimplemented without calling it.
| Handler | mon_216B_SetObjectEntry |
| Code lines | 10 (non-blank, non-comment lines in the file) |
Source¶
SINTRAN III Monitor Calls (ND-860228.2 EN), page 453.