Witam
buduję oscyloskop wg otwartego projektu ze strony http://www.alternatezone.com/electronics/dsoamk3.htm, jednak oprogramowanie do tego urządzenia zostało napisane w epoce Turbo Pascala i Delphi 1.x chciałbym to przerzucić na 32-bity
i jest kilka problemów do rozwiązania np zmiana bezpośredniej obsługi portu LPT ( polecenie port nieobecne w już od >= Delphi 2)
ale utknąłem na wydawałoby się prostej sprawie - pętli FOR:
var cnt,c,kc,d,l,l0,x,t,yh1,yh2,yl1,yl2,x0,p0,xinc:word;
{*************************************************}
{ 40 Samples / Div = 4 Samples to 5 pixels }
{*************************************************}
40: begin
for l := 0 to 3 do begin
disp[1,c+l] := data[1,x+l];
disp[2,c+l] := data[2,x+l];
end;
disp[1,c+l+1] := disp[1,c+l];{round(data[1,x+l]+((data[1,x+l+1]-data[1,x+l])/2));}
disp[2,c+l+1] := disp[2,c+l];{round(data[2,x+l]+((data[2,x+l+1]-data[2,x+l])/2));}
end;
w Turbo Pascalu i Delphi 1.x zmienna 'l' po wykonaniu pętli przyjmuje wartość 3, natomiast od Delphi 2.0 l=4
powoduje to przepełnienie 'c' które jest typu array (nie pomoże $R- bo i tak mam deformację wynikowego obrazu z oscyloskopu) Czy jest na to jakieś proste obejście czy trzeba przerabiać kod, od razu zaznaczę że nie wystarczy po
zakończeniu pętli wstawić l:=l-1 - bo o ile tu zadziała to dalej w kodzie są bardziej skomplikowane obliczenia - pętle zagnieżdżone
za wszelką pomoc z góry wielkie podziękowania