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.