AmigaChromeA new chapter for the Amiga

API docs / Open libraries / commodities.library

API · Libraries

commodities.library jump table

Our open commodities.library: 26 calls with the same LVOs and registers as AmigaOS 3.2's, checked against the NDK 3.2 .fd file.

commodities.library's jump table, as OpenCommodities builds it: LVO, call, registers. build-amiga.sh (with ../common/check_fd.py) checks this against the NDK 3.2 commodities_lib.fd in the stove and stops on any difference; opencommodities_lib.c's lib_vectors[] follows it line for line. The fd keeps -108 and -186..-198 private; ours are, in order, a slot that answers 0, then CopyBrokerList(list)(a0), FreeBrokerList(list)(a0) and BrokerCommand(name,id)(a0/d0), the calls Exchange makes. Core class (OPEN_LIBRARIES.md, section 5): ParseIX, MatchIX, CxMsgType, CxMsgData, CxMsgID and InvertKeyMap are pure; every other call is locked (the object tree and the broker list, one semaphore); the input handler that routes events runs on input.device's task (anchored).

35 slots, 26 public
LVOCallRegistersNotes
-30CreateCxObjd0, a0, a1
-36CxBrokera0, d0
-42ActivateCxObja0, d0
-48DeleteCxObja0
-54DeleteCxObjAlla0
-60CxObjTypea0
-66CxObjErrora0
-72ClearCxObjErrora0
-78SetCxObjPria0, d0
-84AttachCxObja0, a1
-90EnqueueCxObja0, a1
-96InsertCxObja0, a1, a2
-102RemoveCxObja0
-108privatenone
-114SetTranslatea0, a1
-120SetFiltera0, a1
-126SetFilterIXa0, a1
-132ParseIXa0, a1
-138CxMsgTypea0
-144CxMsgDataa0
-150CxMsgIDa0
-156DivertCxMsga0, a1, a2
-162RouteCxMsga0, a1
-168DisposeCxMsga0
-174InvertKeyMapd0, a0, a1
-180AddIEventsa0
-186privatea0
-192privatea0
-198privatea0, d0
-204MatchIXa0, a1
-210privatenonethe NDK 3.2 fd's; answers 0 (lib_null)
-216privatenonethe NDK 3.2 fd's; answers 0 (lib_null)
-222privatenonethe NDK 3.2 fd's; answers 0 (lib_null)
-228privatenonethe NDK 3.2 fd's; answers 0 (lib_null)
-234privatenonethe NDK 3.2 fd's; answers 0 (lib_null)