{ TURBO PASCAL SOURCE } { JOAO PAULO SCHWARZ SCHULER } uses dos,crt; type TCaos = object { class that generate CHAOTIC NUMBERS } { classe que gera numeros caoticos } private L:extended; { Lambda } T:extended; { valor / value } public procedure SetValues(PLAMBDA,PT:extended); { set Lambda value and initial T value } { seta valores iniciais para Lambda e T } function Get:extended; { get next value / devolve proximo valor } function GetCentered:extended; { devolve proximo valor com atrator no centro} end; { of object declaration } procedure TCaos.SetValues(PLAMBDA,PT:extended); {set Lambda value} begin L:=PLAMBDA; T:=PT; end; function TCaos.Get:extended; { get next value / devolve proximo valor } begin {T:=L*T*(1-T);} T:=abs(sin(L*T*(1-T))); {T:=abs(sin(L*T*cos(T)));} Get:=T; end; function TCaos.GetCentered:extended; { get next value / devolve proximo valor } begin GetCentered:=(Get+(1-Get))/2; end; procedure SETPALREG(COR:WORD;re,g,b:byte); {set color registers} VAR R:REGISTERS; BEGIN R.AL:=$10; R.AH:=$10; R.BX:=COR; R.DH:=RE; R.CH:=G; R.CL:=B; INTR($10,R); END; procedure GETPALREG(COR:WORD;VAR re,g,b:byte); VAR R:REGISTERS; BEGIN R.AL:=$15; R.AH:=$10; R.BX:=COR; INTR($10,R); RE:=R.DH; G:=R.CH; B:=R.CL; END; procedure DMG(b:BYTE); VAR R:REGISTERS; BEGIN R.AL:=B; R.AH:=0; INTR($10,R); END; type TVIDEO = array[0..199,0..319] of byte; type TVIDEOPtr = ^TVideo; var RVIDEO: TVIDEO absolute $a000:0000; procedure CLS; var X,Y:integer; begin for X:=0 to 319 do for Y:=0 to 199 do RVIDEO[Y,X]:=0; end; var E,I:integer; C1,C2:TCaos; X,Y:word; C:char; begin DMG($13); for I:=0 to 63 do SetPalReg(I,0,0,I); for I:=0 to 63 do SetPalReg(64+I,0,I,63); for I:=0 to 63 do SetPalReg(128+I,I,63,63); for I:=0 to 63 do SetPalReg(192+I,63-I,63-I,63-I); C1.SetValues(1000000,0.2); repeat X:=Round(C1.GetCentered*319); Y:=Round(C1.GetCentered*199); inc(RVIDEO[Y,X]); until keypressed; DMG($2); end.
Return to the Home Page
Return to the Fontes em Pascal Page
I want to read your E-Mail