type
ByteArray16 = array[0..15] of Byte;
ByteArray496 = array[0..495] of Byte;
var
MultiTxBase: array[0..31] of ^ByteArray16;
MultiRxBase: array[0..31] of ^ByteArray16;
MultiTxBuff: array[0..31] of ^ByteArray496;
MultiRxBuff: array[0..31] of ^ByteArray496;
// 아래 부분이 무슨 일을 하는 내용인지..
// 특히 Ptr 인수에서 $ 는 왜 붙이는지..
MultiTxBase[port] := Ptr($00D8000 + port * 1024 + 0);
MultiRxBase[port] := Ptr($00D8000 + port * 1024 + 256);
MultiTxBuff[port] := Ptr($00D8000 + port * 1024 + 16);
MultiRxBuff[port] := Ptr($00D8000 + port * 1024 + 256 + 16);
// 델파이는 처음 보는 거라 생짜입니다.
// 부탁드립니다.
var
MultiTxBase: array[0..31] of ^ByteArray16;
이 뜻은 16바이트의 바이트어레이(ByteArray16)의 해당 포인터를
32개의 어레이로 관리하겠다는 뜻입니다.
즉, MultiTxBase[0] <- 여기에는 16바이트의 바이트어레이를 지정한곳의
포인터(4바이트)를 가지고 있는것입니다.
참고로 포인터는 4바이트 입니다
마지막으로 $표시는 값을 16진수로 표현된것입니다.
보통 어드레스를 핸들링 할때는 헥사로 표현하고 관리하는것이
편하기 때문입니다.