Skip to content

147B CAMACFunction

Stub   MON 147B (103 decimal) · Mnemonic CAMAC · Group: Device Handling (manual section 2.11)

Available from: not known - no compatibility box captured from the manual

Emulation source: src/handlers/mon_147B_CAMACFunction.c

Description

Operates the CAMAC, i.e. executes the NAF register. CAMAC is a standardized way to connect peripheral equipment to a computer.

NAF data looks like this:

15   13     9 8     5 4    0
-----------------------------
|  Q  X  | STATION | SUBADDRESS | FUNCTION |
-----------------------------

If Q=1 and/or X=1, then Q and X responses from the station are automatically checked.

A Control/Status register (COST register) holds some extra information. If the Function parameter is 3 (clear), the contents of COST are returned in the Value parameter. If Function=0 (read), data is returned in Value. For both these functions, parameter 2 must be >=0 on entry. If Function=1 (write) parameter 2 must be <0 before the call.

If bit 15 in Crate Number is set to 1, Value is treated as an integer instead of floating point.

Parameters

Name Type Direction Description
DataWord INTEGER2 In/Out Input of data if write, output if read.
RetStatus INTEGER2 Out Return status (0 if OK, 24 if not OK).
CrateNo INTEGER2 In Crate number.
StationNo INTEGER2 In Station number.
Subaddress INTEGER2 In Subaddress.
Func INTEGER2 In Function:
- 0 All registers - Read
- 1 All registers - Write
- 3 Selected Bit Clear
- 5 Selected Bit Set
- 7 Execute Dataway Cycle

Direction: In = the program supplies the value, Out = the call returns it, In/Out = both.

See also

AssignCAMACLAM, BCNAFCAMAC, BCNAF1CAMAC, CAMACIOInstruction, CAMACGLRegister

Compatibility

ND-100 ND-500 User programs RT programs System programs
Yes Yes Yes Yes No

From the YAML extraction; this call's page in the manual had no compatibility box that was captured.

Examples

From the manual (OCR text, not corrected).

INTEGER : DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func
...
Monitor_Call('CAMACfunction', DataWord, RetStatus, CrateNo, &
             StationNo, Subaddress, Func)
INTEGER DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func
...
Monitor_Call('CAMACfunction', DataWord, RetStatus, CrateNo,
             StationNo, Subaddress, Func)
DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func : INTEGER2;
...
CAMACFunction(DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func);
01 DataWord COMP.
01 RetStatus COMP.
01 CrateNo COMP.
01 StationNo COMP.
01 Subaddress COMP.
01 Func COMP.
...
MONITOR-CALL "CAMACFunction" USING DataWord, RetStatus,
CrateNo, StationNo, Subaddress, Func.
DataWord     : W BLOCK 1
RetStatus    : W BLOCK 1
CrateNo      : W BLOCK 1
StationNo    : W BLOCK 1
Subaddress   : W BLOCK 1
Func         : W BLOCK 1
ErrCode      : W BLOCK 1
CAMACfunction: EQU 37B9 + 147B
...
CALLG CAMACfunction, 6, DataWord, RetStatus, CrateNo, &
      StationNo, Subaddress, Func
IF K GO Error
...
Error, W1 =: ErrCode
LDT DATA   %Data if write.
LDA CRATE  %Crate number.
COPY SA DD
LDA CTRL   %Load register A.
MON 147    %Monitor call CAMACfunction.
STT DATA   %Store data if read.
STX STAT   %Store status.
...
STAT, 0
DATA, ...
CRATE, ...
CTRL, ...  %CAMAC control: station number/subaddress/function.

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_147B_CAMACFunction
Code lines 10 (non-blank, non-comment lines in the file)

Source

SINTRAN III Monitor Calls (ND-860228.2 EN), page 100.