Migracja z Delphi 1.x wyżej

0

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

0

Wypadałoby wstawić wszędzie za pętlą wartości tego "L". Projekt pierwotny nie był dobry, bo od początku Pascala aż do teraz zmienna sterująca pętli "for" może mieć wartość nieokreśloną (dowolną) po zakończeniu pętli. Jak już, to trzeba było użyć pętli while do albo repeat until.

1 użytkowników online, w tym zalogowanych: 0, gości: 1