Вот облегчённая версия
тип Int
размерность -2
;created by impersonalis (b00lean team)
;impersonalis[@]boolean.name
;
;http://community.boolean.name/index.php
;http://boolean.name/index.php
Type SpecialArray2d
Field PrivateArray%
Field PrivateINIT_STRo%; size0f
Field PrivateINIT_STRt%
End Type
Function SA_Create2d.SpecialArray2d(one%,two%)
S.SpecialArray2d=New SpecialArray2d
S\PrivateINIT_STRo=one
S\PrivateINIT_STRt=two
S\PrivateArray=CreateBank(one*two*4)
Return S
End Function
Function SA_Private_ReturnIndex2d(S.SpecialArray2d,one%,two%)
Local c=1
Local ptr=(S\PrivateINIT_STRo-1)*(one%)+two-1
ptr=ptr*4
Return ptr
End Function
Function SA_OUT2d(S.SpecialArray2d,one%,two%)
Local ptr=SA_Private_ReturnIndex2d(S,one%,two%)
Return PeekInt(S\PrivateArray,ptr)
End Function
Function SA_IN2d(S.SpecialArray2d,one%,two%,inputZ%)
Local ptr=SA_Private_ReturnIndex2d(S,one%,two%)
PokeInt(S\PrivateArray,ptr,inputZ)
End Function
Function SA_Delete2d(S.SpecialArray2d)
FreeBank S\PrivateArray
Delete S
End Function
Вообще - тема не вызвала энтузиазма.
Вероятно - решение на любителя.