AmigaChromeA new chapter for the Amiga

API docs / Open libraries / mpega.library

API · Libraries

mpega.library jump table

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

mpega.library's jump table, as OpenMPEGA builds it: LVO, call, registers, from the library's public mpega_lib.fd as documented (##bias 30). The fd is not in the NDK: build-amiga.sh (with ../common/check_fd.py) checks this table against it when FD= names the original archive's fd/mpega_lib.fd, and stops on any difference (ABI test until it has). openmpega_lib.c's lib_vectors[] follows it line for line. Core class (OPEN_LIBRARIES.md, section 5): every call is locked per stream (the caller's own MPEGA_STREAM, all its state in its own allocation); MPEGA_find_sync is pure. MPEGA_open, MPEGA_close, MPEGA_decode_frame and MPEGA_seek reach the bitstream through the caller's hook or dos.library, from the calling task.

7 slots, 7 public
LVOCallRegistersNotes
-30MPEGA_opena0, a1
-36MPEGA_closea0
-42MPEGA_decode_framea0, a1
-48MPEGA_seeka0, d0
-54MPEGA_timea0, a1
-60MPEGA_find_synca0, d0
-66MPEGA_scalea0, d0