APRS Digipeatersoftware DIGI_NED |
|
|
|
Developers Information
Program-InterfaceThe communication with AX25_MAC is done using a software-interrupt. There are several sub-functions which are selected by the value in register AH. Parameters are passed in the AL and ES:DI registers when needed. On return register AX will hold the result or 0xFFFF when an unknown sub-function was selected. All input characters have to be read before the output can be send again.
Frame dataThe layout of the "Frame data" moved between the application and AX25_MAC is as follows:
offset | type
| name |
---|
0 | word
| data-length
| 2
| byte | port-number | 3
| byte[400] | data
| 403
|
|
|
Where:
- data-length: number of bytes in "data" for this AX.25 frame excluding the 16 bit CRC (low-byte first)
- port-number: port on which this frame was received or has to be transmitted, WARNING: zero based (0 = first port)
- data: the raw AX.25 frame without CRC which was received or shall be transmitted
AX25_MAC-Interface Sub functions:
AH = 1 Check, whether an AX.25 frame is available on the input Returns :
- AX = 0 No AX.25 frame available on the input
- AX = 1 AX.25 frame available on the input
AH = 2 AX.25 frame read (call only if sub function 1 reported the availability of an AX.25 frame on the input) Parameter:
- ES:DI Pointer to a storage area to put the the "Frame data" in.
Returns:
- AL = 0 Frame copied to storage area
- AL = -1 Error
AH = 3 Output an AX.25 frame Parameter:
- ES:DI Pointer to a storage area which contains the "Frame data" to transmit
Returns:
- AL = 0 Frame read and queued for transmission
- AL = -1 Error
AH = 0xFB Request number of Ports Returns:
- AL Number of used ports (0 to 8)
Eight bytes behind the entry of the AX25_MAC interrupt routine a recognition string 'AX25_MAC'is available, which can be used to find out which interrupt is used by AX25_MAC.
Other functions may do something but are used for debugging and may be removed in the future. That's why I regard these additions as 'undocumented features'. Look in the source to find out what these functions currently do.
|
|
|
|
powered by cmsimple.dk
| cmsimple-styles.com template modified by PE1MEW
|